Ghidra Decompiler Analysis Engine
Class List
Here are the classes, structs, unions and interfaces with brief descriptions:
[detail level 12]
 CActionLarge scale transformations applied to the varnode/op graph
 CActionActiveParamDetermine active parameters to sub-functions
 CActionActiveReturnDetermine which sub-functions have active output Varnodes
 CActionAssignHighAssign initial high-level HighVariable objects to each Varnode
 CActionBlockStructureStructure control-flow using standard high-level code constructs
 CActionConditionalConstPropagate conditional constants
 CActionConditionalExeSearch for and remove various forms of redundant CBRANCH operations
 CActionConstantPtrCheck for constants, with pointer type, that correspond to global symbols
 CActionConstbaseSearch for input Varnodes that have been officially provided constant values
 CActionCopyMarkerMark COPY operations between Varnodes representing the object as non-printing
 CActionDatabaseDatabase of root Action objects that can be used to transform a function
 CActionDeadCodeDead code removal. Eliminate dead p-code ops
 CActionDefaultParamsFind a prototype for each sub-function
 CActionDeindirectEliminate locally constant indirect calls
 CActionDeterminedBranchRemove conditional branches if the condition is constant
 CActionDirectWriteMark Varnodes built out of legal parameters
 CActionDominantCopyReplace COPYs from the same source with a single dominant COPY
 CActionDoNothingRemove blocks that do nothing
 CActionDynamicMappingAttach dynamically mapped symbols to Varnodes in time for data-type propagation
 CActionDynamicSymbolsMake final attachments of dynamically mapped symbols to Varnodes
 CActionExtraPopSetupDefine formal link between stack-pointer values before and after sub-function calls
 CActionFinalStructurePerform final organization of the control-flow structure
 CActionForceGotoApply any overridden forced gotos
 CActionFuncLinkPrepare for data-flow analysis of function parameters
 CActionFuncLinkOutOnlyPrepare for data-flow analysis of function parameters, when recovery isn't required
 CActionGroupA group of actions (generally) applied in sequence
 CActionGroupListThe list of groups defining a root Action
 CActionHeritageBuild Static Single Assignment (SSA) representation for function
 CActionHideShadowLocate shadow Varnodes and adjust them so they are hidden
 CActionInferTypesInfer and propagate data-types
 CActionInputPrototypeCalculate the prototype for the function
 CActionLaneDivideFind Varnodes with a vectorized lane scheme and attempt to split the lanes
 CActionLikelyTrashGet rid of registers with trash values
 CActionMapGlobalsCreate symbols for any discovered global variables in the function
 CActionMarkExplicitFind explicit Varnodes: Varnodes that have an explicit token representing them in the output
 CActionMarkImpliedMark all the implied Varnode objects, which will have no explicit token in the output
 CActionMarkIndirectOnlyMark illegal Varnode inputs used only in CPUI_INDIRECT ops
 CActionMergeAdjacentTry to merge an op's input Varnode to its output, if they are at the same storage location
 CActionMergeCopyTry to merge the input and output Varnodes of a CPUI_COPY op
 CActionMergeMultiEntryTry to merge Varnodes specified by Symbols with multiple SymbolEntrys
 CActionMergeRequiredMake required Varnode merges as dictated by CPUI_MULTIEQUAL, CPUI_INDIRECT, and addrtied property
 CActionMergeTypeTry to merge Varnodes of the same type (if they don't hold different values at the same time)
 CActionMultiCsePerform Common Sub-expression Elimination on CPUI_MULTIEQUAL ops
 CActionNameVarsChoose names for all high-level variables (HighVariables)
 CActionNodeJoinLook for conditional branch expressions that have been split and rejoin them
 CActionNonzeroMaskCalculate the non-zero mask property on all Varnode objects
 CActionNormalizeBranchesFlip conditional control-flow so that preferred comparison operators are used
 CActionNormalizeSetupPrepare function prototypes for "normalize" simplification
 CActionOutputPrototypeSet the (already) recovered output data-type as a formal part of the prototype
 CActionParamDoubleDeal with situations that look like double precision parameters
 CActionPoolA pool of Rules that apply simultaneously
 CActionPreferComplementAttempt to normalize symmetric block structures
 CActionPrototypeTypesLay down locked input and output data-type information
 CActionPrototypeWarningsAdd warnings for prototypes that aren't modeled properly
 CActionRedundBranchGet rid of redundant branches: duplicate edges between the same input and output block
 CActionRestartGroupAction which checks if restart (sub)actions have been generated and restarts itself
 CActionRestrictLocalRestrict possible range of local variables
 CActionRestructureHighCreate symbols that map out the local stack-frame for the function
 CActionRestructureVarnodeCreate symbols that map out the local stack-frame for the function
 CActionReturnRecoveryDetermine data-flow holding the return value of the function
 CActionReturnSplitSplit the epilog code of the function
 CActionSegmentizeMake sure pointers into segmented spaces have the correct form
 CActionSetCastsFill-in CPUI_CAST p-code ops as required by the casting strategy
 CActionShadowVarCheck for one CPUI_MULTIEQUAL input set defining more than one Varnode
 CActionSpacebaseMark Varnode objects that hold stack-pointer values and set-up special data-type
 CActionStackPtrFlowAnalyze change to the stack pointer across sub-function calls
 CActionStartGather raw p-code for a function
 CActionStartCleanUpStart clean up after main transform phase
 CActionStartTypesAllow type recovery to start happening
 CActionStopDo any post-processing after decompilation
 CActionStructureTransformGive each control-flow structure an opportunity to make a final transform
 CActionSwitchNormNormalize jump-table construction
 CActionUnjustifiedParamsAdjust improperly justified parameters
 CActionUnreachableRemove unreachable blocks
 CActionVarnodePropsTransform based on Varnode properties, such as read-only and volatile
 CAddForm
 CAddressA low-level machine address for labelling bytes and data
 CAddressResolverAbstract class for converting native constants to addresses
 CAddrLink
 CAddrSpaceA region where processor data is stored
 CAddrSpaceManagerA manager for different address spaces
 CAddTreeStateStructure for sorting out pointer expression trees
 CAliasCheckerA light-weight class for analyzing pointers and aliasing on the stack
 CAncestorRealisticHelper class for determining if Varnodes can trace their value from a legitimate source
 CAndExpression
 CArchitectureManager for all the major decompiler subsystems
 CArchitectureCapabilityAbstract extension point for building Architecture objects
 CArchitectureGhidraAn implementation of the Architecture interface and connection to a Ghidra client
 CArchOptionBase class for options classes that affect the configuration of the Architecture object
 CArrayModifier
 CAssemblyEmitAbstract class for emitting disassembly to an application
 CAssemblyRaw
 CAttributesThe attributes for a single XML element
 CBadDataErrorException for bad instruction data
 CBfdArchitectureArchitecture that reads executable files using GNU BFD libraries
 CBfdArchitectureCapabilityExtension point for building a GNU BFD capable Architecture
 CBinaryExpression
 CBitrangeSymbol
 CBlockBasicA basic block for p-code operations
 CBlockConditionTwo conditional blocks combined into one conditional using BOOL_AND or BOOL_OR
 CBlockCopyThis class is used to mirror the BlockBasic objects in the fixed control-flow graph for a function
 CBlockDoWhileA loop structure where the condition is checked at the bottom
 CBlockEdgeA control-flow edge between blocks (FlowBlock)
 CBlockGotoA block that terminates with an unstructured (goto) branch to another block
 CBlockGraphA control-flow block built out of sub-components
 CBlockIfA basic "if" block
 CBlockInfLoopAn infinite loop structure
 CBlockListA series of blocks that execute in sequence
 CBlockMapHelper class for resolving cross-references while deserializing BlockGraph objects
 CBlockMultiGotoA block with multiple edges out, at least one of which is an unstructured (goto) branch
 CBlockSwitchA structured switch construction
 CBlockVarnodeHelper class associating a Varnode with the block where it is defined
 CBlockWhileDoA loop structure where the condition is checked at the top
 CBreakCallBackA breakpoint object
 CBreakTableA collection of breakpoints for the emulator
 CBreakTableCallBackA basic instantiation of a breakpoint table
 CCallGraph
 CCallGraphEdge
 CCallGraphNode
 CCapabilityPointClass for automatically registering extension points to the decompiler
 CCastStrategyA strategy for applying type casts
 CCastStrategyCCasting strategies that are specific to the C language
 CCastStrategyJavaCasting strategies that are specific to the Java language
 CCircleRangeA class for manipulating integer value ranges
 CcircularqueueA circular buffer template
 CCodeDataAnalysis
 CCodeUnit
 CCollapseStructureBuild a code structure from a control-flow graph (BlockGraph)
 CCombinePattern
 CCommentA comment attached to a specific function and code address
 CCommentDatabaseAn interface to a container of comments
 CCommentDatabaseGhidraAn implementation of CommentDatabase backed by a Ghidra client
 CCommentDatabaseInternalAn in-memory implementation of the CommentDatabase API
 CCommentOrderCompare two Comment pointers
 CCommentSorterA class for sorting comments into and within basic blocks
 CCompilerTagContents of a <compiler> tag in a .ldefs file
 CConditionalExecutionA class for simplifying a series of conditionally executed statements
 CConditionalJoinDiscover and eliminate split conditions
 CConditionMarkerA helper class for describing the similarity of the boolean condition between 2 CBRANCH operations
 CConsistencyChecker
 CConsoleCommandsA console command run as part of a test sequence
 CConstantAbsolute
 CConstantConsumed
 CConstantExpression
 CConstantHeritageKnown
 CConstantIsConstant
 CConstantNamed
 CConstantNZMask
 CConstantOffset
 CConstantPoolAn interface to the pool of constant objects for byte-code languages
 CConstantPoolGhidraAn implementation of ConstantPool using a Ghidra client as the backing storage
 CConstantPoolInternalAn implementation of the ConstantPool interface storing records internally in RAM
 CConstantSpaceSpecial AddrSpace for representing constants during analysis
 CConstantValue
 CConstantVarnodeSize
 CConstraintBoolean
 CConstraintConstCompare
 CConstraintDef
 CConstraintDescend
 CConstraintGroup
 CConstraintLoneDescend
 CConstraintNamedExpression
 CConstraintNewOp
 CConstraintNewUniqueOut
 CConstraintOpcode
 CConstraintOpCompare
 CConstraintOpCopy
 CConstraintOpInput
 CConstraintOpInputAny
 CConstraintOpOutput
 CConstraintOr
 CConstraintOtherInput
 CConstraintParamConst
 CConstraintParamConstVal
 CConstraintRemoveInput
 CConstraintSetInput
 CConstraintSetInputConstVal
 CConstraintSetOpcode
 CConstraintVarCompare
 CConstraintVarConst
 CConstraintVarnodeCopy
 CConstructor
 CConstructState
 CConstructTpl
 CConstTpl
 CContentHandlerThe SAX interface for parsing XML documents
 CContextBitRangeDescription of a context variable within the disassembly context blob
 CContextCacheA helper class for caching the active context blob to minimize database lookups
 CContextChange
 CContextCommit
 CContextDatabaseAn interface to a database of disassembly/decompiler context information
 CContextField
 CContextGhidraAn implementation of a ContextDatabase obtaining context information via a Ghidra client
 CContextInternalAn in-memory implementation of the ContextDatabase interface
 CContextOp
 CContextPattern
 CContextSet
 CContextSymbol
 CCoverA description of the topological scope of a single variable object
 CCoverBlockThe topological scope of a variable within a basic block
 CCParse
 CCPoolRecordA description of a byte-code object referenced by a constant
 CDatabaseA manager for symbol scopes for a whole executable
 CDatatypeThe base datatype class for the decompiler
 CDatatypeCompareCompare two Datatype pointers for equivalence of their description
 CDatatypeNameCompareCompare two Datatype pointers: first by name, then by id
 CDataUnavailErrorException indicating data was not available
 CDecisionNode
 CDecisionProperties
 CDecompileAtCommand to decompile a specific function
 CDeregisterProgramCommand to release all resources associated with a Program (executable) in the decompiler
 CDisassemblyCacheA container for disassembly context used by the SLEIGH engine
 CDisassemblyEngine
 CDisassemblyResult
 CDisjointPattern
 CDivExpression
 CDocumentA complete in-memory XML document
 CDocumentStorageA container for parsed XML documents
 CDummyConstConstraint
 CDummyOpConstraint
 CDummyTranslate
 CDummyVarnodeConstraint
 CDynamicHashA hash utility to uniquely identify a temporary Varnode in data-flow
 CDynamicRecommendA name recommendation for a particular dynamic storage location
 CEffectRecordDescription of the indirect effect a sub-function has on a memory range
 CElementAn XML element. A node in the DOM tree
 CEmitNoXmlA trivial emitter that outputs syntax straight to the stream
 CEmitPrettyPrintA generic source code pretty printer
 CEmitXmlBase class (and interface) for pretty printing and XML markup of tokens
 CEmulateA pcode-based emulator interface
 CEmulateFunctionA light-weight emulator to calculate switch targets from switch variables
 CEmulateMemoryAn abstract Emulate class using a MemoryState object as the backing machine state
 CEmulatePcodeCacheA SLEIGH based implementation of the Emulate interface
 CEmulatePcodeOpEmulation based on (existing) PcodeOps and Varnodes
 CEmulateSnippetEmulate a snippet of PcodeOps out of a functional context
 CEndInstructionValue
 CEndSymbol
 CEnumerator
 CEpsilonSymbol
 CEqual1Form
 CEqual2Form
 CEqual3Form
 CEqualEquation
 CEquateSymbolA Symbol that holds equate information for a constant
 CEquationAnd
 CEquationCat
 CEquationLeftEllipsis
 CEquationOr
 CEquationRightEllipsis
 CEvaluationError
 CExecutablePcodeA snippet of p-code that can be executed outside of normal analysis
 CExecutablePcodeGhidraA p-code script that uses a Ghidra client to generate the p-code ops
 CExecutablePcodeSleigh
 CExprTree
 CExternRefSymbolA function Symbol referring to an external location
 CFamilySymbol
 CFieldContext
 CFieldQuality
 CFileManage
 CFileStreamState
 CFixedHandle
 CFloatFormatEncoding information for a single floating-point format
 CFloatingEdgeClass for holding an edge while the underlying graph is being manipulated
 CFlowBlockDescription of a control-flow block containing PcodeOps
 CFlowDestSymbol
 CFlowInfoA class for generating the control-flow structure for a single function
 CFlowRefSymbol
 CFlushNativeCommand to flush all symbols associated with a Program (executable)
 CFspecSpaceA special space for encoding FuncCallSpecs
 CFuncCallSpecsA class for analyzing parameters to a sub-function call
 CFuncdataContainer for data structures associated with a single function
 CFuncProtoA function prototype
 CFunctionModifier
 CFunctionSymbolA Symbol representing an executable function
 CFunctionTestCollectionA collection of tests around a single program/function
 CFunctionTestPropertyA single property to be searched for in the output of a function decompilation
 CGhidraCapabilityRegistration point and dispatcher for commands sent to the decompiler
 CGhidraCommandBase class for a command to the decompiler as issued by a Ghidra client
 CGhidraDecompCapabilityThe core decompiler commands capability
 CGhidraStringManagerImplementation of the StringManager that queries through the ghidra client
 CGhidraTranslateAn implementation of Translate that queries a Ghidra client for p-code information
 CGrammarLexer
 CGrammarToken
 CGreaterEqualEquation
 CGreaterEquation
 CGuardRecordA (putative) switch variable Varnode and a constraint imposed by a CBRANCH
 CHandleTpl
 CHeritageManage the construction of Static Single Assignment (SSA) form
 CHeritageInfoInformation about heritage passes performed for a specific address space
 CHighEdgeA record for caching a Cover intersection test between two HighVariable objects
 CHighVariableA high-level variable modeled as a list of low-level variables, each written once
 CIdentRec
 CIfaceAssemblyEmitDisassembly emitter that prints to a console stream
 CIfaceBaseCommandA root class for a basic set of commands
 CIfaceCapabilityGroups of console commands that are discovered by the loader
 CIfaceCodeDataCapability
 CIfaceCodeDataCommand
 CIfaceCommandA command that can be executed from the command line
 CIfaceCommandDummyA dummy command used during parsing
 CIfaceDataData specialized for a particular command module
 CIfaceDecompCapabilityInterface capability point for all decompiler commands
 CIfaceDecompCommandRoot class for all decompiler specific commands
 CIfaceDecompDataCommon data shared by decompiler commands
 CIfaceErrorAn exception specific to the command line interface
 CIfaceExecutionErrorAn exception throw during the execution of a command
 CIfaceParseErrorAn exception describing a parsing error in a command line
 CIfaceStatusA generic console mode interface and command executor
 CIfaceTermImplement the command-line interface on top of a specific input stream
 CIfcAddpath
 CIfcAddrrangeLoadCreate a new function at an address: load addr <address> [<funcname>]
 CIfcAdjustVmaChange the base address of the load image: adjust vma 0xabcd0123
 CIfcAnalyzeRangeRun value-set analysis on the current function: analyze range full|partial <varnode>
 CIfcBreakactionSet a breakpoint when a Rule or Action executes: break action <actionname>
 CIfcBreakstartSet a break point at the start of an Action: break start <actionname>
 CIfcCallFixupAdd a new call fix-up to the program: fixup call ...
 CIfcCallGraphBuildBuild the call-graph for the architecture/program: callgraph build
 CIfcCallGraphBuildQuickBuild the call-graph using quick analysis: callgraph build quick
 CIfcCallGraphDumpWrite the current call-graph to a file: callgraph dump <filename>
 CIfcCallGraphListList all functions in leaf order: callgraph list
 CIfcCallGraphLoadLoad the call-graph from a file: callgraph load <filename>
 CIfcCallOtherFixupAdd a new callother fix-up to the program: fixup callother ...
 CIfcCleararchClear the current architecture/program: clear architecture
 CIfcClosefileClose command, closing the current bulk output file
 CIfcCodeDataDumpCrossRefs
 CIfcCodeDataDumpModelHits
 CIfcCodeDataDumpStarts
 CIfcCodeDataDumpTargetHits
 CIfcCodeDataDumpUnlinked
 CIfcCodeDataInit
 CIfcCodeDataRun
 CIfcCodeDataTarget
 CIfcCommentA comment within a command script: % A comment in a script
 CIfcCommentInstrAttach a comment to an address: comment <address> comment text...
 CIfcContinueContinue decompilation after a break point: continue
 CIfcCountPcodeCount p-code in the current function: count pcode
 CIfcDeadcodedelayChange when dead code elimination starts: deadcode delay <name> <delay>
 CIfcDecompileDecompile the current function: decompile
 CIfcDumpDisplay bytes in the load image: dump <address+size>
 CIfcDumpbinaryDump a memory to file: binary <address+size> <filename>
 CIfcDuplicateHashCheck for duplicate hashes in functions: duplicate hash
 CIfcEchoEcho command to echo the current command line to the bulk output stream
 CIfcFlowOverrideCreate a control-flow override: override flow <address> branch|call|callreturn|return
 CIfcForceDecMark a constant to be printed in decimal format: force dec <varnode>
 CIfcForcegotoForce a branch to be an unstructured goto: force goto <branchaddr> <targetaddr>
 CIfcForceHexMark a constant to be printed in hex format: force hex <varnode>
 CIfcFuncloadMake a specific function current: load function <functionname>
 CIfcGlobalAddAdd a memory range as discoverable global variables: global add <address+size>
 CIfcGlobalifyTreat all normal memory as discoverable global variables: global spaces
 CIfcGlobalRegistersName global registers: global registers
 CIfcGlobalRemoveRemove a memory range from discoverable global variables: global remove <address+size>
 CIfcGraphControlflowWrite a graph representation of control-flow to a file: graph controlflow <filename>
 CIfcGraphDataflowWrite a graph representation of data-flow to a file: graph dataflow <filename>
 CIfcGraphDomWrite the forward dominance graph to a file: graph dom <filename>
 CIfcHistoryHistory command to list the most recent successful commands
 CIfcJumpOverrideProvide an overriding jump-table for an indirect branch: override jumptable ...
 CIfcListactionList all current actions and rules for the decompiler: list action
 CIfcListOverrideDisplay any overrides for the current function: list override
 CIfcListprototypesList known prototype models: list prototypes
 CIfcLoadFile
 CIfcLockPrototypeLock in the current function's prototype: prototype lock
 CIfcMapaddressMap a new symbol into the program: map address <address> <typedeclaration>
 CIfcMapexternalrefCreate an external ref symbol map externalref <address> <refaddress> [<name>]
 CIfcMapfunctionCreate a new function: map function <address> [<functionname>] [nocode]
 CIfcMaphashAdd a dynamic symbol to the current function: map hash <address> <hash> <typedeclaration>
 CIfcMaplabelCreate a code label: map label <name> <address>
 CIfcNameVarnodeAttach a named symbol to a specific Varnode: name varnode <varnode> <name>
 CIfcOpenfileOpen file command to redirect bulk output to a specific file stream
 CIfcOpenfileAppendOpen file command directing bulk output to be appended to a specific file
 CIfcOptionAdjust a decompiler option: option <optionname> [<param1>] [<param2>] [<param3>]
 CIfcParseFileParse a file with C declarations: parse file <filename>
 CIfcParseLineParse a line of C syntax: parse line ...
 CIfcPreferSplitMark a storage location to be split: prefersplit <address+size> <splitsize>
 CIfcPrintActionstatsPrint transform statistics for the decompiler engine: print actionstats
 CIfcPrintBlocktreePrint a description of the current functions control-flow: print tree block
 CIfcPrintCFlatPrint current function without control-flow: print C flat
 CIfcPrintCGlobalsPrint declarations for any known global variables: print C globals
 CIfcPrintCoverPrint cover info about a HighVariable: print cover high <name>
 CIfcPrintCStructPrint the current function using C syntax:print C
 CIfcPrintCTypesPrint any known type definitions: print C types
 CIfcPrintCXmlPrint the current function with C syntax and XML markup:print C xml
 CIfcPrintdisasmPrint disassembly of a memory range: disassemble [<address1> <address2>]
 CIfcPrintExtrapopPrint change to stack pointer for called function: print extrapop [<functionname>]
 CIfcPrintHighDisplay all Varnodes in a HighVariable: print high <name>
 CIfcPrintInputsPrint info about the current function's input Varnodes: print inputs
 CIfcPrintInputsAllPrint info about input Varnodes for all functions: print inputs all
 CIfcPrintLanguagePrint current output using a specific language: print language <langname>
 CIfcPrintLocalrangePrint range of locals on the stack: print localrange
 CIfcPrintMapPrint info about a scope/namespace: print map <name>
 CIfcPrintParamMeasuresPerform parameter-id analysis on the current function: print parammeasures
 CIfcPrintRawPrint the raw p-code for the current function: print raw
 CIfcPrintSpacesPrint all address spaces: print spaces
 CIfcPrintTreePrint all Varnodes in the current function: print tree varnode
 CIfcPrintVarnodePrint information about a Varnode: print varnode <varnode>
 CIfcProduceCWrite decompilation for all functions to a file: produce C <filename>
 CIfcProducePrototypesDetermine the prototype model for all functions: produce prototypes
 CIfcProtooverrideOverride the prototype of a called function: override prototype <address> <declaration>
 CIfcQuitQuit command to terminate processing from the given interface
 CIfcReadonlyMark a memory range as read-only: readonly <address+size>
 CIfcReadSymbolsRead in symbols from the load image: read symbols
 CIfcRemoveRemove a symbol by name: remove <varname>
 CIfcRenameRename a variable: rename <oldname> <newname>
 CIfcResetActionstatsReset transform statistics for the decompiler engine: reset actionstats
 CIfcRestore
 CIfcRetypeChange the data-type of a symbol: retype <varname> <typedeclaration>
 CIfcSave
 CIfcSetcontextrangeSet a context variable: set context <name> <value> [<startaddress> <endaddress>]
 CIfcSettrackedrangeSet the value of a register: set track <name> <value> [<startaddress> <endaddress>]
 CIfcSourceExecute a command script : source <filename>
 CIfcStructureBlocksStructure an external control-flow graph: structure blocks <infile> <outfile>
 CIfcTypeVarnodeAttach a typed symbol to a specific Varnode: type varnode <varnode> <typedeclaration>
 CIfcUnlockPrototypeUnlock the current function's prototype: prototype unlock
 CIfcVarnodeCoverPrint cover information about a Varnode: print cover varnode <varnode>
 CIfcVarnodehighCoverPrint cover info about a HighVariable: print cover varnodehigh <varnode>
 CIfcVolatileMark a memory range as volatile: volatile <address+size>
 CImportRecord
 CIndirectForm
 CInjectCallfixupGhidraA call-fixup injection that uses a Ghidra client to generate the p-code ops
 CInjectCallotherGhidraA callother-fixup injection that uses a Ghidra client to generate the p-code ops
 CInjectContextContext needed to emit a p-code injection as a full set of p-code operations
 CInjectContextGhidraAn injection context that can be serialized and sent to the Ghidra client
 CInjectContextSleigh
 CInjectedUserOpA user defined operation that is injected with other p-code
 CInjectParameterAn input or output parameter to a p-code injection payload
 CInjectPayloadAn active container for a set of p-code operations that can be injected into data-flow
 CInjectPayloadCallfixup
 CInjectPayloadCallother
 CInjectPayloadDynamic
 CInjectPayloadGhidraAn injection payload that uses a Ghidra client to generate the p-code ops
 CInjectPayloadSleigh
 CInstructionPattern
 CIopSpaceSpace for storing internal PcodeOp pointers as addresses
 CJavaErrorException that mirrors exceptions thrown by the Ghidra client
 CJoinRecordA record describing how logical values are split
 CJoinRecordCompareComparator for JoinRecord objects
 CJoinSpaceThe pool of logically joined variables
 CJumpAssistedA jump-table model assisted by pseudo-op directives in the code
 CJumpAssistOpA user defined p-code op for assisting the recovery of jump tables
 CJumpBasicThe basic switch model
 CJumpBasic2A basic jump-table model with an added default address path
 CJumpBasicOverrideA basic jump-table model incorporating manual override information
 CJumpModelA jump-table execution model
 CJumpModelTrivialA trivial jump-table model, where the BRANCHIND input Varnode is the switch variable
 CJumpTableA map from values to control-flow targets within a function
 CJumptableNotReachableErrorException thrown is there are no legal flows to a switch
 CJumptableThunkErrorException thrown for a thunk mechanism that looks like a jump-table
 CJumpValuesAn iterator over values a switch variable can take
 CJumpValuesRangeSingle entry switch variable that can take a range of values
 CJumpValuesRangeDefaultA jump-table starting range with two possible execution paths
 CLabelSymbol
 CLabSymbolA Symbol that labels code internal to a function
 CLaneDescriptionDescription of logical lanes within a big Varnode
 CLaneDivideClass for splitting data-flow on laned registers
 CLanedRegisterDescribes a (register) storage location and the ways it might be split into lanes
 CLanguageDescriptionContents of the <language> tag in a .ldefs file
 CLeafIterator
 CLeftShiftExpression
 CLessConstForm
 CLessEqualEquation
 CLessEquation
 CLessThreeWay
 CLoadGuardDescription of a LOAD operation that needs to be guarded
 CLoadImageAn interface into a particular binary executable image
 CLoadImageBfd
 CLoadImageFuncA record indicating a function symbol
 CLoadImageGhidraAn implementation of the LoadImage interface using a Ghidra client as the back-end
 CLoadImageSectionA record describing a section bytes in the executable
 CLoadImageXmlImplementation of the LoadImage interface using underlying data stored in an XML format
 CLoadTableA description where and how data was loaded from memory
 CLocation
 CLocationMapMap object for keeping track of which address ranges have been heritaged
 CLogicalForm
 CLoopBodyA description of the body of a loop
 CLowlevelErrorThe lowest level error generated by the decompiler
 CMacroBuilder
 CMacroSymbol
 CMapIteratorAn iterator over SymbolEntry objects in multiple address spaces
 CMapStateA container for hints about the data-type layout of an address space
 CMemoryBankMemory storage/state for a single AddressSpace
 CMemoryHashOverlayA memory bank that implements reads and writes using a hash table
 CMemoryImageA kind of MemoryBank which retrieves its data from an underlying LoadImage
 CMemoryPageOverlayMemory bank that overlays some other memory bank, using a "copy on write" behavior
 CMemoryStateAll storage/state for a pcode machine
 CMergeClass for merging low-level Varnodes into high-level HighVariables
 CMinusExpression
 CMultExpression
 CMultForm
 CMyLoadImage
 CNameRecommendA symbol name recommendation with its associated storage location
 CNameSymbol
 CNameValueA parsed name/value pair
 CNotEqualEquation
 CNotExpression
 COpBehaviorClass encapsulating the action/behavior of specific pcode opcodes
 COpBehaviorBoolAndCPUI_BOOL_AND behavior
 COpBehaviorBoolNegateCPUI_BOOL_NEGATE behavior
 COpBehaviorBoolOrCPUI_BOOL_OR behavior
 COpBehaviorBoolXorCPUI_BOOL_XOR behavior
 COpBehaviorCopyCPUI_COPY behavior
 COpBehaviorEqualCPUI_INT_EQUAL behavior
 COpBehaviorFloatAbsCPUI_FLOAT_ABS behavior
 COpBehaviorFloatAddCPUI_FLOAT_ADD behavior
 COpBehaviorFloatCeilCPUI_FLOAT_CEIL behavior
 COpBehaviorFloatDivCPUI_FLOAT_DIV behavior
 COpBehaviorFloatEqualCPUI_FLOAT_EQUAL behavior
 COpBehaviorFloatFloat2FloatCPUI_FLOAT_FLOAT2FLOAT behavior
 COpBehaviorFloatFloorCPUI_FLOAT_FLOOR behavior
 COpBehaviorFloatInt2FloatCPUI_FLOAT_INT2FLOAT behavior
 COpBehaviorFloatLessCPUI_FLOAT_LESS behavior
 COpBehaviorFloatLessEqualCPUI_FLOAT_LESSEQUAL behavior
 COpBehaviorFloatMultCPUI_FLOAT_MULT behavior
 COpBehaviorFloatNanCPUI_FLOAT_NAN behavior
 COpBehaviorFloatNegCPUI_FLOAT_NEG behavior
 COpBehaviorFloatNotEqualCPUI_FLOAT_NOTEQUAL behavior
 COpBehaviorFloatRoundCPUI_FLOAT_ROUND behavior
 COpBehaviorFloatSqrtCPUI_FLOAT_SQRT behavior
 COpBehaviorFloatSubCPUI_FLOAT_SUB behavior
 COpBehaviorFloatTruncCPUI_FLOAT_TRUNC behavior
 COpBehaviorInt2CompCPUI_INT_2COMP behavior
 COpBehaviorIntAddCPUI_INT_ADD behavior
 COpBehaviorIntAndCPUI_INT_AND behavior
 COpBehaviorIntCarryCPUI_INT_CARRY behavior
 COpBehaviorIntDivCPUI_INT_DIV behavior
 COpBehaviorIntLeftCPUI_INT_LEFT behavior
 COpBehaviorIntLessCPUI_INT_LESS behavior
 COpBehaviorIntLessEqualCPUI_INT_LESSEQUAL behavior
 COpBehaviorIntMultCPUI_INT_MULT behavior
 COpBehaviorIntNegateCPUI_INT_NEGATE behavior
 COpBehaviorIntOrCPUI_INT_OR behavior
 COpBehaviorIntRemCPUI_INT_REM behavior
 COpBehaviorIntRightCPUI_INT_RIGHT behavior
 COpBehaviorIntSborrowCPUI_INT_SBORROW behavior
 COpBehaviorIntScarryCPUI_INT_SCARRY behavior
 COpBehaviorIntSdivCPUI_INT_SDIV behavior
 COpBehaviorIntSextCPUI_INT_SEXT behavior
 COpBehaviorIntSlessCPUI_INT_SLESS behavior
 COpBehaviorIntSlessEqualCPUI_INT_SLESSEQUAL behavior
 COpBehaviorIntSremCPUI_INT_SREM behavior
 COpBehaviorIntSrightCPUI_INT_SRIGHT behavior
 COpBehaviorIntSubCPUI_INT_SUB behavior
 COpBehaviorIntXorCPUI_INT_XOR behavior
 COpBehaviorIntZextCPUI_INT_ZEXT behavior
 COpBehaviorNotEqualCPUI_INT_NOTEQUAL behavior
 COpBehaviorPieceCPUI_PIECE behavior
 COpBehaviorPopcountCPUI_POPCOUNT behavior
 COpBehaviorSubpieceCPUI_SUBPIECE behavior
 COperandEquation
 COperandResolve
 COperandSymbol
 COperandValue
 COpFollowA simple node used to dynamically define a sequence of operations
 COptionAliasBlockSet how locked data-types on the stack affect alias heuristics
 COptionAllowContextSetToggle whether the disassembly engine is allowed to modify context
 COptionCommentHeaderToggle whether different comment types are emitted by the decompiler in the header for a function
 COptionCommentIndentHow many characters to indent comment lines
 COptionCommentInstructionToggle whether different comment types are emitted by the decompiler in the body of a function
 COptionCommentStyleSet the style of comment emitted by the decompiler
 COptionConventionPrintingToggle whether the calling convention is printed when emitting function prototypes
 COptionCurrentActionToggle a sub-group of actions within a root Action
 COptionDatabaseA Dispatcher for possible ArchOption commands
 COptionDefaultPrototypeSet the default prototype model for analyzing unknown functions
 COptionErrorReinterpretedToggle whether off-cut reinterpretation of an instruction is a fatal error
 COptionErrorTooManyInstructionsToggle whether too many instructions in one function body is considered a fatal error
 COptionErrorUnimplementedToggle whether unimplemented instructions are treated as a fatal error
 COptionExtraPopSet the extrapop parameter used by the (default) prototype model
 COptionForLoopsToggle whether the decompiler attempts to recover for-loop variables
 COptionHideExtensionsToggle whether implied extensions (ZEXT or SEXT) are printed
 COptionIgnoreUnimplementedToggle whether unimplemented instructions are treated as a no-operation
 COptionIndentIncrementSet the number of characters to indent per nested scope
 COptionInferConstPtrToggle whether the decompiler attempts to infer constant pointers
 COptionInlineMark/unmark a specific function as inline
 COptionInPlaceOpsToggle whether in-place operators (+=, *=, &=, etc.) are emitted by the decompiler
 COptionIntegerFormatSet the formatting strategy used by the decompiler to emit integers
 COptionJumpLoadToggle whether the decompiler should try to recover the table used to evaluate a switch
 COptionMaxInstructionMaximum number of instructions that can be processed in a single function
 COptionMaxLineWidthSet the maximum number of characters per decompiled line
 COptionNamespaceStrategyHow should namespace tokens be displayed
 COptionNoCastPrintingToggle whether cast syntax is emitted by the decompiler or stripped
 COptionNoReturnMark/unmark a specific function with the noreturn property
 COptionNullPrintingToggle whether null pointers should be printed as the string "NULL"
 COptionProtoEvalSet the prototype model to use when evaluating the parameters of the current function
 COptionReadOnlyToggle whether read-only memory locations have their value propagated
 COptionSetActionEstablish a new root Action for the decompiler
 COptionSetLanguageSet the current language emitted by the decompiler
 COptionStructAlignAlter the "structure alignment" data organization setting
 COptionToggleRuleToggle whether a specific Rule is applied in the current Action
 COptionWarningToggle whether a warning should be issued if a specific action/rule is applied
 COpTokenA token representing an operator in the high-level language
 COpTpl
 COrExpression
 COrPattern
 COtherSpaceSpecial AddrSpace for special/user-defined address spaces
 COverlaySpaceAn overlay space
 COverrideA container of commands that override the decompiler's default behavior for a single function
 CParamActiveContainer class for ParamTrial objects
 CParamEntryA contiguous range of memory that can be used to pass parameters
 CParamEntryRangeClass for storing ParamEntry objects in an interval range (rangemap)
 CParameterBasicA stand-alone parameter with no backing symbol
 CParameterPiecesBasic elements of a parameter: address, data-type, properties
 CParameterSymbolA parameter with a formal backing Symbol
 CParamIDAnalysis
 CParamList
 CParamListMergedA union of other input parameter passing models
 CParamListRegisterAn unstructured model for passing input parameters to a function
 CParamListStandardA standard model for parameters as an ordered list of storage resources
 CParamListStandardOutA standard model for passing back return values from a function
 CParamMeasure
 CParamTrialA register or memory register that may be used to pass a parameter or return value
 CParamUnassignedErrorException thrown when a prototype can't be modeled properly
 CParseErrorAn error generated while parsing a command or language
 CParserContext
 CParserWalker
 CParserWalkerChange
 CPartialSymbolEntryA structure for pushing nested fields to the RPN stack
 CPartitionA range of nodes (within the weak topological ordering) that are iterated together
 CpartmapA map from a linear space to value objects
 CPathMeldAll paths from a (putative) switch variable to the CPUI_BRANCHIND
 CPattern
 CPatternBlock
 CPatternEquation
 CPatternExpression
 CPatternlessSymbol
 CPatternValue
 CPcodeBuilder
 CPcodeCacherClass for caching a chunk of p-code, prior to emitting
 CPcodeCompile
 CPcodeDataData for building one p-code instruction
 CPcodeEmitAbstract class for emitting pcode to an application
 CPcodeEmitCacheP-code emitter that dumps its raw Varnodes and PcodeOps to an in memory cache
 CPcodeEmitFdA p-code emitter for building PcodeOp objects
 CPcodeInjectLibraryA collection of p-code injection payloads
 CPcodeInjectLibraryGhidraA p-code injection library that uses a Ghidra client to generate/compile the injection p-code
 CPcodeInjectLibrarySleigh
 CPcodeLexer
 CPcodeOpLowest level operation of the p-code language
 CPcodeOpBankContainer class for PcodeOps associated with a single function
 CPcodeOpEdgeClass representing a term in an additive expression
 CPcodeOpNodeAn edge in a data-flow path or graph
 CPcodeOpRawA low-level representation of a single pcode operation
 CPcodeRawOut
 CPcodeSnippet
 CPhiForm
 CPlusExpression
 CPointerModifier
 CPreferSplitManager
 CPreferSplitRecord
 CPrintCThe c-language token emitter
 CPrintCCapabilityFactory and static initializer for the "c-language" back-end to the decompiler
 CPrintfCallBack
 CPrintJavaThe java-language token emitter
 CPrintJavaCapabilityFactory and static initializer for the "java-language" back-end to the decompiler
 CPrintLanguageThe base class API for emitting a high-level language
 CPrintLanguageCapabilityBase class for high-level language capabilities
 CPriorityQueuePriority queue for the phi-node (MULTIEQUAL) placement algorithm
 CPropagationStateA class that holds a data-type traversal state during type propagation
 CProtoModelA prototype model: a model for passing parameters between functions
 CProtoModelMergedA prototype model made by merging together other models
 CProtoParameterA function parameter viewed as a name, data-type, and storage address
 CProtoStoreA collection parameter descriptions making up a function prototype
 CProtoStoreInternalA collection of parameter descriptions without backing symbols
 CProtoStoreSymbolA collection of parameter descriptions backed by Symbol information
 CPrototypePiecesRaw components of a function prototype (obtained from parsing source code)
 CPutsCallBack
 CRangeA contiguous range of bytes in some address space
 CRangeHintPartial data-type information mapped to a specific range of bytes
 CRangeListA disjoint set of Ranges, possibly across multiple address spaces
 CrangemapAn interval map container
 CRawBinaryArchitectureArchitecture that reads its binary as a raw file
 CRawBinaryArchitectureCapabilityExtension point for building an Architecture that reads in raw images
 CRawLoadImageA simple raw binary loadimage
 CRecovErrorA generic recoverable error
 CRegisterProgramCommand to register a new Program (executable) with the decompiler
 CRelativeRecordClass for describing a relative p-code branch destination
 CRHSConstant
 CRightShiftExpression
 CRtlPair
 CRuleClass for performing a single transformation on a PcodeOp or Varnode
 CRule2Comp2MultEliminate INT_2COMP: -V => V * -1
 CRule2Comp2SubCleanup: Convert INT_ADD back to INT_SUB: V + -W ==> V - W
 CRuleAddMultCollapseCollapse constants in an additive or multiplicative expression
 CRuleAddUnsignedCleanup: Convert INT_ADD of constants to INT_SUB: V + 0xff... => V - 0x00...
 CRuleAndCommuteCommute INT_AND with INT_LEFT and INT_RIGHT: (V << W) & d => (V & (W >> c)) << c
 CRuleAndCompareSimplify INT_ZEXT and SUBPIECE in masked comparison: zext(V) & c == 0 => V & (c & mask) == 0
 CRuleAndDistributeDistribute INT_AND through INT_OR if result is simpler
 CRuleAndMaskCollapse unnecessary INT_AND
 CRuleAndOrLumpCollapse constants in logical expressions: (V & c) & d => V & (c & d)
 CRuleAndPieceConvert PIECE to INT_ZEXT where appropriate: V & concat(W,X) => zext(X)
 CRuleBitUndistributeUndo distributed operations through INT_AND, INT_OR, and INT_XOR
 CRuleBooleanNegateSimplify comparisons with boolean values: V == false => !V, V == true => V
 CRuleBoolNegateApply a set of identities involving BOOL_NEGATE
 CRuleBoolZextSimplify boolean expressions of the form zext(V) * -1
 CRuleBxor2NotEqualEliminate BOOL_XOR: V ^^ W => V != W
 CRuleCarryElimTransform INT_CARRY using a constant: carry(V,c) => -c <= V
 CRuleCollapseConstantsCollapse constant expressions
 CRuleCollectTermsCollect terms in a sum: V * c + V * d => V * (c + d)
 CRuleCompile
 CRuleConcatCommuteCommute PIECE with INT_AND, INT_OR, and INT_XOR
 CRuleConcatLeftShiftSimplify concatenation of extended value: concat(V, zext(W) << c) => concat( concat(V,W), 0)
 CRuleConcatShiftSimplify INT_RIGHT canceling PIECE: concat(V,W) >> c => zext(V)
 CRuleConcatZeroSimplify concatenation with zero: concat(V,0) => zext(V) << c
 CRuleConcatZextCommute PIECE with INT_ZEXT: concat(zext(V),W) => zext(concat(V,W))
 CRuleConditionalMoveSimplify various conditional move situations
 CRuleCondNegateFlip conditions to match structuring cues
 CRuleDivOptConvert INT_MULT and shift forms into INT_DIV or INT_SDIV
 CRuleDivTermAddSimplify expressions associated with optimized division expressions
 CRuleDivTermAdd2Simplify another expression associated with optimized division
 CRuleDoubleArithShiftSimplify two sequential INT_SRIGHT: (x s>> #c) s>> #d => x s>> saturate(#c + #d)
 CRuleDoubleIn
 CRuleDoubleLoad
 CRuleDoubleShiftSimplify chained shifts INT_LEFT and INT_RIGHT
 CRuleDoubleSubSimplify chained SUBPIECE: sub( sub(V,c), d) => sub(V, c+d)
 CRuleDumptyHumpSimplify join and break apart: sub( concat(V,W), c) => sub(W,c)
 CRuleEarlyRemovalGet rid of unused PcodeOp objects where we can guarantee the output is unused
 CRuleEmbedSimplify PIECE intended as embedding: concat(V, sub(W,0)) => W & 0xff | (zext(W) << 8)
 CRuleEqual2ConstantSimplify INT_EQUAL applied to arithmetic expressions
 CRuleEqual2ZeroSimplify INT_EQUAL applied to 0: 0 == V + W * -1 => V == W or 0 == V + c => V == -c
 CRuleEqualityCollapse INT_EQUAL and INT_NOTEQUAL: f(V,W) == f(V,W) => true
 CRuleFloatCastReplace (casttosmall)(casttobig)V with identity or with single cast
 CRuleFloatRangeMerge range conditions of the form: V f< c, c f< V, V f== c etc
 CRuleFuncPtrEncodingEliminate ARM/THUMB style masking of the low order bits on function pointers
 CRuleGeneric
 CRuleHighOrderAndSimplify INT_AND when applied to aligned INT_ADD: (V + c) & 0xfff0 => V + (c & 0xfff0)
 CRuleHumptyDumptySimplify break and rejoin: concat( sub(V,c), sub(V,0) ) => V
 CRuleHumptyOrSimplify masked pieces INT_ORed together: (V & ff00) | (V & 00ff) => V
 CRuleIdentityElCollapse operations using identity element: V + 0 => V
 CRuleIgnoreNanTreat FLOAT_NAN as always evaluating to false
 CRuleIndirectCollapseRemove a CPUI_INDIRECT if its blocking PcodeOp is dead
 CRuleIntLessEqualConvert LESSEQUAL to LESS: V <= c => V < (c+1)
 CRuleLeftRightTransform canceling INT_RIGHT or INT_SRIGHT of INT_LEFT
 CRuleLess2ZeroSimplify INT_LESS applied to extremal constants
 CRuleLessEqualSimplify 'less than or equal': V < W || V == W => V <= W
 CRuleLessEqual2ZeroSimplify INT_LESSEQUAL applied to extremal constants
 CRuleLessNotEqualSimplify INT_LESSEQUAL && INT_NOTEQUAL: V <= W && V != W => V < W
 CRuleLessOneTransform INT_LESS of 0 or 1: V < 1 => V == 0, V <= 0 => V == 0
 CRuleLexer
 CRuleLoadVarnodeConvert LOAD operations using a constant offset to COPY
 CRuleLogic2BoolConvert logical to boolean operations: V & W => V && W, V | W => V || W
 CRuleModOptSimplify expressions that optimize INT_REM and INT_SREM
 CRuleMultiCollapseCollapse MULTIEQUAL whose inputs all trace to the same value
 CRuleMultNegOneCleanup: Convert INT_2COMP from INT_MULT: V * -1 => -V
 CRuleNegateIdentityApply INT_NEGATE identities: V & ~V => #0, V | ~V -> #-1
 CRuleNegateNegateSimplify INT_NEGATE chains: ~~V => V
 CRuleNotDistributeDistribute BOOL_NEGATE: !(V && W) => !V || !W
 CRuleOrCollapseCollapse unnecessary INT_OR
 CRuleOrConsumeSimply OR with unconsumed input: `V = A | B => V = B if nzm(A) & consume(V) == 0
 CRuleOrMaskSimplify INT_OR with full mask: V = W | 0xffff => V = W
 CRuleOrPredicateSimplify predication constructions involving the INT_OR operator
 CRulePiece2SextConcatenation with sign bits becomes an extension: concat( V s>> #0x1f , V) => sext(V)
 CRulePiece2ZextConcatenation with 0 becomes an extension: V = concat(#0,W) => V = zext(W)
 CRulePiecePathologySearch for concatenations with unlikely things to inform return/parameter consumption calculation
 CRulePopcountBoolXorSimplify boolean expressions that are combined through POPCOUNT
 CRulePositiveDivSigned division of positive values is unsigned division
 CRulePropagateCopyPropagate the input of a COPY to all the places that read the output
 CRulePtraddUndoRemove PTRADD operations with mismatched data-type information
 CRulePtrArithTransform pointer arithmetic
 CRulePtrFlowMark Varnode and PcodeOp objects that are carrying or operating on pointers
 CRulePtrsubCharConstantCleanup: Set-up to print string constants
 CRulePtrsubUndoRemove PTRSUB operations with mismatched data-type information
 CRulePullsubIndirectPull-back SUBPIECE through INDIRECT
 CRulePullsubMultiPull SUBPIECE back through MULTIEQUAL
 CRulePushMultiSimplify MULTIEQUAL operations where the branches hold the same value
 CRulePushPtrPush a Varnode with known pointer data-type to the bottom of its additive expression
 CRuleRangeMeldMerge range conditions of the form: V s< c, c s< V, V == c, V != c
 CRuleRightShiftAndSimplify INT_RIGHT and INT_SRIGHT ops where an INT_AND mask becomes unnecessary
 CRuleSborrowSimplify signed comparisons using INT_SBORROW
 CRuleSegmentPropagate constants through a SEGMENTOP
 CRuleSelectCseLook for common sub-expressions (built out of a restricted set of ops)
 CRuleShift2MultConvert INT_LEFT to INT_MULT: V << 2 => V * 4
 CRuleShiftAndEliminate any INT_AND when the bits it zeroes out are discarded by a shift
 CRuleShiftBitopsShifting away all non-zero bits of one-side of a logical/arithmetic op
 CRuleShiftCompareTransform shifts in comparisons: V >> c == d => V == (d << c)
 CRuleShiftPieceConvert "shift and add" to PIECE: (zext(V) << 16) + zext(W) => concat(V,W)
 CRuleShiftSubSimplify SUBPIECE applied to INT_LEFT: sub( V << 8*c, c) => sub(V,0)
 CRuleSignDiv2Convert INT_SRIGHT form into INT_SDIV: (V + -1*(V s>> 31)) s>> 1 => V s/ 2
 CRuleSignFormNormalize sign extraction: sub(sext(V),c) => V s>> 31
 CRuleSignNearMultSimplify division form: (V + (V s>> 0x1f)>>(32-n)) & (-1<<n) => (V s/ 2^n) * 2^n
 CRuleSignShiftNormalize sign-bit extraction: V >> 0x1f => (V s>> 0x1f) * -1
 CRuleSLess2ZeroSimplify INT_SLESS applied to 0 or -1
 CRuleSlessToLessConvert INT_SLESS to INT_LESS when comparing positive values
 CRuleSplitFlowTry to detect and split artificially joined Varnodes
 CRuleStoreVarnodeConvert STORE operations using a constant offset to COPY
 CRuleStructOffset0Convert a LOAD or STORE to the first element of a structure to a PTRSUB
 CRuleSub2AddEliminate INT_SUB: V - W => V + W * -1
 CRuleSubCancelSimplify composition of SUBPIECE with INT_ZEXT or INT_SEXT
 CRuleSubCommuteCommute SUBPIECE operations with earlier operations where possible
 CRuleSubExtCommCommute SUBPIECE and INT_ZEXT: sub(zext(V),c) => zext(sub(V,c))
 CRuleSubfloatConvertPerform SubfloatFlow analysis triggered by FLOAT_FLOAT2FLOAT
 CRuleSubNormalPull-back SUBPIECE through INT_RIGHT and INT_SRIGHT
 CRuleSubRightCleanup: Convert truncation to cast: sub(V,c) => sub(V>>c*8,0)
 CRuleSubvarAndPerform SubVariableFlow analysis triggered by INT_AND
 CRuleSubvarCompZeroPerform SubvariableFlow analysis triggered by testing of a single bit
 CRuleSubvarSextPerform SubvariableFlow analysis triggered by INT_SEXT
 CRuleSubvarShiftPerform SubvariableFlow analysis triggered by INT_RIGHT
 CRuleSubvarSubpiecePerform SubVariableFlow analysis triggered by SUBPIECE
 CRuleSubvarZextPerform SubvariableFlow analysis triggered by INT_ZEXT
 CRuleSubZextSimplify INT_ZEXT applied to SUBPIECE expressions
 CRuleSwitchSingleConvert BRANCHIND with only one computed destination to a BRANCH
 CRuleTermOrderOrder the inputs to commutative operations
 CRuleTestSignConvert sign-bit test to signed comparison: (V s>> 0x1f) != 0 => V s< 0
 CRuleThreeWayCompareSimplify expressions involving three-way comparisons
 CRuleTransformCpoolTransform CPOOLREF operations by looking up the value in the constant pool
 CRuleTrivialArithSimplify trivial arithmetic expressions
 CRuleTrivialBoolSimplify boolean expressions when one side is constant
 CRuleTrivialShiftSimplify trivial shifts: V << 0 => V, V << #64 => 0
 CRuleXorCollapseEliminate INT_XOR in comparisons: (V ^ W) == 0 => V == W
 CRuleXorSwapSimplify limited chains of XOR operations
 CRuleZextCommuteCommute INT_ZEXT with INT_RIGHT: zext(V) >> W => zext(V >> W)
 CRuleZextEliminateEliminate INT_ZEXT in comparisons: zext(V) == c => V == c
 CRuleZextShiftZextSimplify multiple INT_ZEXT operations: zext( zext(V) << c ) => zext(V) << c
 CRuleZextSlessTransform INT_ZEXT and INT_SLESS: zext(V) s< c => V < c
 CScopeA collection of Symbol objects within a single (namespace or functional) scope
 CScopeGhidraAn implementation of the Scope interface by querying a Ghidra client for Symbol information
 CScopeGhidraNamespaceA global namespace Scope
 CScopeInternalAn in-memory implementation of the Scope interface
 CScopeLocalA Symbol scope for local variables of a particular function
 CScopeMapperAn Address range associated with the symbol Scope that owns it
 CScoreProtoModelClass for calculating "goodness of fit" of parameter trials against a prototype model
 CSectionSymbol
 CSectionVector
 CSegmentedResolverA resolver for segmented architectures
 CSegmentOpThe segmented address operator
 CSeqNumA class for uniquely labelling and comparing PcodeOps
 CSetActionCommand to set the root Action used by the decompiler or toggle output components
 CSetOptionsCommand to toggle options within the decompiler
 CShiftForm
 CSizePassLabel for describing extent of address range that has been heritaged
 CSleighA full SLEIGH engine
 CSleighArchitectureAn Architecture that uses the decompiler's native SLEIGH translation engine
 CSleighBaseCommon core of classes that read or write SLEIGH specification files natively
 CSleighBuilderBuild p-code from a pre-parsed instruction
 CSleighCompile
 CSleighError
 CSleighPcode
 CSleighSymbol
 CSourceFileIndexerClass for recording source file information for SLEIGH constructors
 CSpacebaseSpaceA virtual space stack space
 CSpaceQuality
 CSpaceSymbol
 CSpecificSymbol
 CSplitFlowClass for splitting up Varnodes that hold 2 logical variables
 CSplitVarnode
 CStackEqnA stack equation
 CStackSolverA class that solves for stack-pointer changes across unknown sub-functions
 CStarQuality
 CStartInstructionValue
 CStartSymbol
 CStringManagerStorage for decoding and storing strings associated with an address
 CStringManagerUnicodeAn implementation of StringManager that understands terminated unicode strings
 CStructureGraphCommand to structure a control-flow graph
 CSubExpression
 CSubfloatFlowClass for tracing changes of precision in floating point variables
 CSubForm
 CSubtableSymbol
 CSubvariableFlowClass for shrinking big Varnodes carrying smaller logical values
 CSymbolThe base class for a symbol in a symbol table or scope
 CSymbolCompare
 CSymbolCompareNameComparator for sorting Symbol objects by name
 CSymbolEntryA storage location for a particular Symbol
 CSymbolScope
 CSymbolTable
 CTargetFeature
 CTargetHit
 CTerminateCallBack
 CTermOrderA class for ordering Varnode terms in an additive expression
 CTermPatternOpA user defined p-code op that has a dynamically defined procedure
 CToken
 CTokenField
 CTokenPattern
 CTokenSplitA token/command object in the pretty printing stream
 CTokenSymbol
 CToOpEdgeAn edge between a Varnode and a PcodeOp
 CTraceDAGAlgorithm for selecting unstructured edges based an Directed Acyclic Graphs (DAG)
 CTrackedContextA tracked register (Varnode) and the value it contains
 CTransformManagerClass for splitting larger registers holding smaller logical lanes
 CTransformOpPlaceholder node for PcodeOp that will exist after a transform is applied to a function
 CTransformVarPlaceholder node for Varnode that will exist after a transform is applied to a function
 CTranslateThe interface to a translation engine for a processor
 CTraverseConstraint
 CTraverseCountState
 CTraverseDescendState
 CTraverseGroupState
 CTreeHandlerA SAX interface implementation for constructing an in-memory DOM model
 CTripleSymbol
 CTruncationTagObject for describing how a space should be truncated
 CTypeArrayDatatype object representing an array of elements
 CTypeBaseBase class for the fundamental atomic types
 CTypeCharBase type for character data-types: i.e. char
 CTypeCodeDatatype object representing executable code
 CTypeDeclarator
 CTypeEnumAn enumerated Datatype object: an integer with named values
 CTypeFactoryContainer class for all Datatype objects in an Architecture
 CTypeFactoryGhidraAn implementation of the TypeFactory interface, query a Ghidra client for data-type information
 CTypeFieldSpecifies subfields of a structure or what a pointer points to
 CTypeModifier
 CTypeOpAssociate data-type and behavior information with a specific p-code op-code
 CTypeOpBinaryA generic binary operator: two inputs and one output
 CTypeOpBoolAndInformation about the BOOL_AND op-code
 CTypeOpBoolNegateInformation about the BOOL_NEGATE op-code
 CTypeOpBoolOrInformation about the BOOL_OR op-code
 CTypeOpBoolXorInformation about the BOOL_XOR op-code
 CTypeOpBranchInformation about the BRANCH op-code
 CTypeOpBranchindInformation about the BRANCHIND op-code
 CTypeOpCallInformation about the CALL op-code
 CTypeOpCallindInformation about the CALLIND op-code
 CTypeOpCallotherInformation about the CALLOTHER op-code (user defined p-code operations)
 CTypeOpCastInformation about the CAST op-code
 CTypeOpCbranchInformation about the CBRANCH op-code
 CTypeOpCopyInformation about the COPY op-code
 CTypeOpCpoolrefInformation about the CPOOLREF op-code
 CTypeOpEqualInformation about the INT_EQUAL op-code
 CTypeOpExtractInformation about the EXTRACT op-code
 CTypeOpFloatAbsInformation about the FLOAT_ABS op-code
 CTypeOpFloatAddInformation about the FLOAT_ADD op-code
 CTypeOpFloatCeilInformation about the FLOAT_CEIL op-code
 CTypeOpFloatDivInformation about the FLOAT_DIV op-code
 CTypeOpFloatEqualInformation about the FLOAT_EQUAL op-code
 CTypeOpFloatFloat2FloatInformation about the FLOAT_FLOAT2FLOAT op-code
 CTypeOpFloatFloorInformation about the FLOAT_FLOOR op-code
 CTypeOpFloatInt2FloatInformation about the FLOAT_INT2FLOAT op-code
 CTypeOpFloatLessInformation about the FLOAT_LESS op-code
 CTypeOpFloatLessEqualInformation about the FLOAT_LESSEQUAL op-code
 CTypeOpFloatMultInformation about the FLOAT_MULT op-code
 CTypeOpFloatNanInformation about the FLOAT_NAN op-code
 CTypeOpFloatNegInformation about the FLOAT_NEG op-code
 CTypeOpFloatNotEqualInformation about the FLOAT_NOTEQUAL op-code
 CTypeOpFloatRoundInformation about the FLOAT_ROUND op-code
 CTypeOpFloatSqrtInformation about the FLOAT_SQRT op-code
 CTypeOpFloatSubInformation about the FLOAT_SUB op-code
 CTypeOpFloatTruncInformation about the FLOAT_TRUNC op-code
 CTypeOpFuncA generic functional operator
 CTypeOpIndirectInformation about the INDIRECT op-code
 CTypeOpInsertInformation about the INSERT op-code
 CTypeOpInt2CompInformation about the INT_2COMP op-code
 CTypeOpIntAddInformation about the INT_ADD op-code
 CTypeOpIntAndInformation about the INT_AND op-code
 CTypeOpIntCarryInformation about the INT_CARRY op-code
 CTypeOpIntDivInformation about the INT_DIV op-code
 CTypeOpIntLeftInformation about the INT_LEFT op-code
 CTypeOpIntLessInformation about the INT_LESS op-code
 CTypeOpIntLessEqualInformation about the INT_LESSEQUAL op-code
 CTypeOpIntMultInformation about the INT_MULT op-code
 CTypeOpIntNegateInformation about the INT_NEGATE op-code
 CTypeOpIntOrInformation about the INT_OR op-code
 CTypeOpIntRemInformation about the INT_REM op-code
 CTypeOpIntRightInformation about the INT_RIGHT op-code
 CTypeOpIntSborrowInformation about the INT_SBORROW op-code
 CTypeOpIntScarryInformation about the INT_SCARRY op-code
 CTypeOpIntSdivInformation about the INT_SDIV op-code
 CTypeOpIntSextInformation about the INT_SEXT op-code
 CTypeOpIntSlessInformation about the INT_SLESS op-code
 CTypeOpIntSlessEqualInformation about the INT_SLESSEQUAL op-code
 CTypeOpIntSremInformation about the INT_SREM op-code
 CTypeOpIntSrightInformation about the INT_SRIGHT op-code
 CTypeOpIntSubInformation about the INT_SUB op-code
 CTypeOpIntXorInformation about the INT_XOR op-code
 CTypeOpIntZextInformation about the INT_ZEXT op-code
 CTypeOpLoadInformation about the LOAD op-code
 CTypeOpMultiInformation about the MULTIEQUAL op-code
 CTypeOpNewInformation about the NEW op-code
 CTypeOpNotEqualInformation about the INT_NOTEQUAL op-code
 CTypeOpPieceInformation about the PIECE op-code
 CTypeOpPopcountInformation about the POPCOUNT op-code
 CTypeOpPtraddInformation about the PTRADD op-code
 CTypeOpPtrsubInformation about the PTRSUB op-code
 CTypeOpReturnInformation about the RETURN op-code
 CTypeOpSegmentInformation about the SEGMENTOP op-code
 CTypeOpStoreInformation about the STORE op-code
 CTypeOpSubpieceInformation about the SUBPIECE op-code
 CTypeOpUnaryA generic unary operator: one input and one output
 CTypePointerDatatype object representing a pointer
 CTypeRecommendData-type for a storage location when there is no Symbol (yet)
 CTypeSpacebaseSpecial Datatype object used to describe pointers that index into the symbol table
 CTypeSpecifiers
 CTypeStructA composite Datatype object: A "structure" with component "fields"
 CTypeUnicodeThe unicode data-type: i.e. wchar
 CTypeVoidFormal "void" data-type object
 CUnaryExpression
 CUnconstrainedEquation
 CUnifyConstraint
 CUnifyCPrinter
 CUnifyDatatype
 CUnifyState
 CUnimplErrorException for encountering unimplemented pcode
 CUniqueSpaceThe pool of temporary storage registers
 CUnitTestSimple unit test class
 CUnspecializedPcodeOpA user defined p-code op with no specialization
 CUserOpManageManager/container for description objects (UserPcodeOp) of user defined p-code ops
 CUserOpSymbol
 CUserPcodeOpThe base class for a detailed definition of a user-defined p-code operation
 CValExpressEquation
 CValueMapSymbol
 CValueSetA range of values attached to a Varnode within a data-flow subsystem
 CValueSetReadA special form of ValueSet associated with the read point of a Varnode
 CValueSetSolverClass that determines a ValueSet for each Varnode in a data-flow system
 CValueSymbol
 CVarnodeA low-level variable or contiguous set of bytes described by an Address and a size
 CVarnodeBankA container for Varnode objects from a specific function
 CVarnodeCompareDefLocCompare two Varnode pointers by definition then location
 CVarnodeCompareLocDefCompare two Varnode pointers by location then definition
 CVarnodeDataData defining a specific memory location
 CVarnodeListSymbol
 CVarnodeSymbol
 CVarnodeTpl
 CVolatileOpA base class for operations that access volatile memory
 CVolatileReadOpAn operation that reads from volatile memory
 CVolatileWriteOpAn operation that writes to volatile memory
 CWidenerClass holding a particular widening strategy for the ValueSetSolver iteration algorithm
 CWidenerFullClass for doing normal widening
 CWidenerNoneClass for freezing value sets at a specific iteration (to accelerate convergence)
 CWithBlock
 CXmlArchitectureAn Architecture that loads executables using an XML format
 CXmlArchitectureCapabilityExtension for building an XML format capable Architecture
 CXmlErrorAn exception thrown by the XML parser
 CXmlScanThe XML character scanner
 CXorExpression
 Cyy_buffer_state
 Cyy_trans_info
 Cyyalloc
 CYYSTYPE