For the complete documentation index, see llms.txt. This page is also available as Markdown.

Decompiler Actions

The decompiler provides three primary views: Pseudocode, Microcode, and CTree Viewer, each with its own set of actions. These actions are accessible either from the top menu bar or through context menus.

To explore which actions are available from the top menu bar for each view, refer to Menu Bar Actions.

Most actions are context-sensitive and are only available when the cursor is positioned on specific elements.

Pseudocode Actions

Below is an overview of all decompiler-related actions available in the Pseudocode Actions.

UI Action Name
Action Name
Description

hx:AddEmptyLine

This action is invoked when the user presses Enter at the end of a line.

hx:AddCast

This command overrides the pointer type of the current expression. It appears in the context menu when the cursor is on an expression with a pointer type.

hx:AddPseudoCmt

Add pseudocode comments.

hx:AddVarArg

Add an argument of a variadic call.

hx:BitwiseNegate

hx:Char

Switch to character constant representation. See also Number representation.

hx:CollapseDecls

This command collapses the current statement into one line. It can be applied to multiline statements (if, while, for, do, switch, blocks).

hx:CollapseElse

Collapse the else-branch of the current if statement into a single line, leaving the then-branch untouched.

hx:CollapseItem

Collapse the selected multiline C statement into one line.

hx:CollapseThen

Collapse the then-branch of the current if statement into a single line, leaving the else-branch (if any) untouched.

hx:Cvt2StrucPtr

Specify the current variable as a pointer to a selected structure.

hx:Copy2Asm

Copy the pseudocode text to the disassembly window.

hx:CreateCFile

Create C file.

hx:NewStruc

Convert the current local variable from a non-pointer type to a pointer to a newly created structure type.

hx:UserDefinedCall

Decompile as call.

hx:DelOrphanCmts

hx:DelPseudoCmt

Delete pseudocode comments.

hx:DelVarArg

Remove an argument of a variadic call.

hx:EditBlockCmt

Edits the block comment for the current line. The entered comment will be displayed before the current line.

hx:EditCmt

This command edits the indented comment for the current line or the current variable. It can be applied to the local variable definition area (at the top of the output) and to the function statement area (at the bottom of the output).

hx:EditType

Edit type

hx:Enum

Switch to enumeration (symbolic constant) representation. See also Number representation.

hx:ExtractFunc

Extract function.

hx:NopropVar

Disable propagation of the assignments of the specified local variable.

hx:ForceCallType

Tell the decompiler to skip analyzing the call arguments and instead use the type of the called object as-is.

hx:GenHtml

Generate an HTML file with the pseudocode of the current function.

hx:GenPseudo

This command decompiles the current function.

hx:ToggleShowCasts

Hide all cast operators from the output listing.

hx:JmpLocalType

hx:ToggleSSEIntrinsics

hx:InvertSign

It negates the constant and resets the enum/char flag if it was set.

hx:InvertIf

Swap the then- and else-branches of an if statement and negate the condition, leaving behavior unchanged.

hx:JumpNextParen

This command jumps to the matching parenthesis.

hx:JumpPseudo

Jump to pseudocode.

hx:JumpGlobalXref

Decompile all non-trivial functions in the database and look for xrefs in them.

hx:JmpXref

Open the standard dialog box with the cross references to the current item.

hx:Map2OtherVar

Replace all occurrences of a variable by another variable.

hx:MarkDecompiled

Mark the current function as decompiled.

hx:Oct

Convert to an octal number. See also Number representation.

hx:QuickRename

hx:RemoveArg

Remove an argument or the return type from a function prototype.

hx:AddRemoveReturn

Remove the return type from the function prototype.

hx:Rename

Rename the current item.

hx:ResTypeInfo

Reset decompiler information.

hx:ResetPtrType

Reset the type of the current local variable from a pointer type to an integer type.

hx:DelContainingRecord

hx:SelUnionField

Select the desired union field.

hx:SendIDB

Send current database to our server.

hx:SetCallType

Set the type of the current function call without changing the type of the called function itself.

hx:SetType

hx:CallDecomp

Decompile all functions that call the selected function and display their call sites.

hx:XrefDecomp

Decompile all functions that reference the selected global variable and display the relevant code snippets in a separate window.

hx:SplitExpr

Split the current expression into multiple expressions.

hx:SplitMemAccess

hx:SplitVar

Forces the decompiler to create a new variable from the current point when the same stack slot is used for different purposes.

hx:StockComments

Manage the "stock comments" (creating, deleting, and editing), and apply them to the listing.

hx:StrucOffset

Apply struct offset.

hx:HexDec

Toggle between hexadecimal and decimal representations. See also Number representation.

hx:ToggleSkippableInsn

Toggle skippable instructions.

hx:ExpandDecls

Uncollapse the hidden item.

hx:ExpandElse

Expand a previously collapsed else-branch back to its full form.

hx:ExpandItem

Expand a previously collapsed statement or declaration back to its full multiline form

hx:ExpandThen

Expand a previously collapsed then-branch back to its full form.

hx:UnmarkDecompiled

Reset the decompiled status of the current function.

hx:UnsplitExpr

Reverse a previous Split operation, removing all effects of the Split command.

hx:UnsplitMemAccess

hx:UnsplitVar

Revert a split variable back to a single variable by removing the split point

Microcode Actions

Below is an overview of all decompiler-related actions available in the Microcode Actions.

UI Action Name
Action Name
Description

mv:DeleteInsn

Delete microcode instruction.

mv:DisplayChains

Display chains

mv:DisplayCTree

mv:DisplayVdTypes

Display local types

mv:DisplayMCGraph

Display microcode graph

mv:EditBlockCmt

Edit block comment

mv:EditCmt

Edit comment of microcode line

mv:GenMicro

This command opens the Microcode view for the current function, displaying the decompiler's intermediate representation at various maturity levels. See subviews for more.

mv:ToggleDisplayValnums

Hide value numbers

mv:HighestMicro

Highest maturity level

mv:InsertInsn

Insert assertion

mv:JumpToDisasm

Jump to disassembly

mv:JmpXrefFrom

List cross references from

mv:LowerMicro

Lower maturity level

mv:RaiseMicro

Raise maturity level

mv:Refresh

Refresh

mv:ToggleViewShort

Short view

mv:ToggleDisplayEA

Show addresses

mv:ToggleDisplayNumorig

Show number origins

mv:StructuralAna

Structural analysis

CTree Viewer Actions

Below is an overview of all decompiler-related actions available in the CTree Viewer Actions.

UI Action Name
Action Name
Description

cv:GenCTree

Open the CTree view that renders the decompiler's C-level AST (ctree) for the current function.

cv:JumpToDisasm

From the CTree view, jump to the instruction in the IDA View that corresponds to the ctree node under the cursor.

cv:JumpToPseudo

From the CTree view, jump to the line in the Pseudocode view that corresponds to the ctree node under the cursor.

cv:Refresh

Regenerate the ctree for the current function and redisplay it in the CTree view. Use this after changes to the pseudocode (rename, retype, comments, etc.) that may affect the underlying ctree.

Last updated

Was this helpful?