|
| HighLevelILFunction (Architecture *arch, Function *func=nullptr) |
|
| HighLevelILFunction (BNHighLevelILFunction *func) |
|
Ref< Function > | GetFunction () const |
|
Ref< Architecture > | GetArchitecture () const |
|
uint64_t | GetCurrentAddress () const |
|
void | SetCurrentAddress (Architecture *arch, uint64_t addr) |
|
HighLevelILInstruction | GetRootExpr () |
|
void | SetRootExpr (ExprId expr) |
|
void | SetRootExpr (const HighLevelILInstruction &expr) |
|
ExprId | AddExpr (BNHighLevelILOperation operation, size_t size, ExprId a=0, ExprId b=0, ExprId c=0, ExprId d=0, ExprId e=0) |
|
ExprId | AddExprWithLocation (BNHighLevelILOperation operation, uint64_t addr, uint32_t sourceOperand, size_t size, ExprId a=0, ExprId b=0, ExprId c=0, ExprId d=0, ExprId e=0) |
|
ExprId | AddExprWithLocation (BNHighLevelILOperation operation, const ILSourceLocation &loc, size_t size, ExprId a=0, ExprId b=0, ExprId c=0, ExprId d=0, ExprId e=0) |
|
ExprId | Nop (const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | Block (const std::vector< ExprId > &exprs, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | If (ExprId condition, ExprId trueExpr, ExprId falseExpr, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | While (ExprId condition, ExprId loopExpr, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | WhileSSA (ExprId conditionPhi, ExprId condition, ExprId loopExpr, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | DoWhile (ExprId loopExpr, ExprId condition, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | DoWhileSSA (ExprId loopExpr, ExprId conditionPhi, ExprId condition, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | For (ExprId initExpr, ExprId condition, ExprId updateExpr, ExprId loopExpr, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | ForSSA (ExprId initExpr, ExprId conditionPhi, ExprId condition, ExprId updateExpr, ExprId loopExpr, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | Switch (ExprId condition, ExprId defaultExpr, const std::vector< ExprId > &cases, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | Case (const std::vector< ExprId > &condition, ExprId expr, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | Break (const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | Continue (const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | Jump (ExprId dest, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | Return (const std::vector< ExprId > &sources, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | NoReturn (const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | Goto (uint64_t target, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | Label (uint64_t target, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | VarDeclare (const Variable &var, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | VarInit (size_t size, const Variable &dest, ExprId src, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | VarInitSSA (size_t size, const SSAVariable &dest, ExprId src, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | Assign (size_t size, ExprId dest, ExprId src, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | AssignUnpack (const std::vector< ExprId > &output, ExprId src, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | AssignMemSSA (size_t size, ExprId dest, size_t destMemVersion, ExprId src, size_t srcMemVersion, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | AssignUnpackMemSSA (const std::vector< ExprId > &output, size_t destMemVersion, ExprId src, size_t srcMemVersion, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | Var (size_t size, const Variable &src, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | VarSSA (size_t size, const SSAVariable &src, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | VarPhi (const SSAVariable &dest, const std::vector< SSAVariable > &sources, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | MemPhi (size_t dest, const std::vector< size_t > &sources, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | StructField (size_t size, ExprId src, uint64_t offset, size_t memberIndex, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | ArrayIndex (size_t size, ExprId src, ExprId idx, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | ArrayIndexSSA (size_t size, ExprId src, size_t srcMemVersion, ExprId idx, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | Split (size_t size, ExprId high, ExprId low, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | Deref (size_t size, ExprId src, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | DerefField (size_t size, ExprId src, uint64_t offset, size_t memberIndex, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | DerefSSA (size_t size, ExprId src, size_t srcMemVersion, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | DerefFieldSSA (size_t size, ExprId src, size_t srcMemVersion, uint64_t offset, size_t memberIndex, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | AddressOf (ExprId src, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | Const (size_t size, uint64_t val, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | ConstPointer (size_t size, uint64_t val, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | ExternPointer (size_t size, uint64_t val, uint64_t offset, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | FloatConstRaw (size_t size, uint64_t val, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | FloatConstSingle (float val, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | FloatConstDouble (double val, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | ImportedAddress (size_t size, uint64_t val, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | Add (size_t size, ExprId left, ExprId right, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | AddWithCarry (size_t size, ExprId left, ExprId right, ExprId carry, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | Sub (size_t size, ExprId left, ExprId right, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | SubWithBorrow (size_t size, ExprId left, ExprId right, ExprId carry, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | And (size_t size, ExprId left, ExprId right, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | Or (size_t size, ExprId left, ExprId right, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | Xor (size_t size, ExprId left, ExprId right, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | ShiftLeft (size_t size, ExprId left, ExprId right, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | LogicalShiftRight (size_t size, ExprId left, ExprId right, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | ArithShiftRight (size_t size, ExprId left, ExprId right, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | RotateLeft (size_t size, ExprId left, ExprId right, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | RotateLeftCarry (size_t size, ExprId left, ExprId right, ExprId carry, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | RotateRight (size_t size, ExprId left, ExprId right, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | RotateRightCarry (size_t size, ExprId left, ExprId right, ExprId carry, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | Mult (size_t size, ExprId left, ExprId right, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | MultDoublePrecSigned (size_t size, ExprId left, ExprId right, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | MultDoublePrecUnsigned (size_t size, ExprId left, ExprId right, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | DivSigned (size_t size, ExprId left, ExprId right, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | DivUnsigned (size_t size, ExprId left, ExprId right, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | DivDoublePrecSigned (size_t size, ExprId left, ExprId right, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | DivDoublePrecUnsigned (size_t size, ExprId left, ExprId right, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | ModSigned (size_t size, ExprId left, ExprId right, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | ModUnsigned (size_t size, ExprId left, ExprId right, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | ModDoublePrecSigned (size_t size, ExprId left, ExprId right, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | ModDoublePrecUnsigned (size_t size, ExprId left, ExprId right, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | Neg (size_t size, ExprId src, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | Not (size_t size, ExprId src, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | SignExtend (size_t size, ExprId src, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | ZeroExtend (size_t size, ExprId src, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | LowPart (size_t size, ExprId src, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | Call (ExprId dest, const std::vector< ExprId > ¶ms, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | Syscall (const std::vector< ExprId > ¶ms, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | TailCall (ExprId dest, const std::vector< ExprId > ¶ms, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | CallSSA (ExprId dest, const std::vector< ExprId > ¶ms, size_t destMemVersion, size_t srcMemVersion, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | SyscallSSA (const std::vector< ExprId > ¶ms, size_t destMemVersion, size_t srcMemVersion, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | CompareEqual (size_t size, ExprId left, ExprId right, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | CompareNotEqual (size_t size, ExprId left, ExprId right, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | CompareSignedLessThan (size_t size, ExprId left, ExprId right, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | CompareUnsignedLessThan (size_t size, ExprId left, ExprId right, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | CompareSignedLessEqual (size_t size, ExprId left, ExprId right, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | CompareUnsignedLessEqual (size_t size, ExprId left, ExprId right, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | CompareSignedGreaterEqual (size_t size, ExprId left, ExprId right, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | CompareUnsignedGreaterEqual (size_t size, ExprId left, ExprId right, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | CompareSignedGreaterThan (size_t size, ExprId left, ExprId right, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | CompareUnsignedGreaterThan (size_t size, ExprId left, ExprId right, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | TestBit (size_t size, ExprId left, ExprId right, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | BoolToInt (size_t size, ExprId src, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | AddOverflow (size_t size, ExprId left, ExprId right, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | Breakpoint (const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | Trap (int64_t vector, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | Intrinsic (uint32_t intrinsic, const std::vector< ExprId > ¶ms, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | IntrinsicSSA (uint32_t intrinsic, const std::vector< ExprId > ¶ms, size_t destMemVersion, size_t srcMemVersion, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | Undefined (const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | Unimplemented (const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | UnimplementedMemoryRef (size_t size, ExprId target, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | FloatAdd (size_t size, ExprId a, ExprId b, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | FloatSub (size_t size, ExprId a, ExprId b, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | FloatMult (size_t size, ExprId a, ExprId b, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | FloatDiv (size_t size, ExprId a, ExprId b, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | FloatSqrt (size_t size, ExprId a, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | FloatNeg (size_t size, ExprId a, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | FloatAbs (size_t size, ExprId a, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | FloatToInt (size_t size, ExprId a, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | IntToFloat (size_t size, ExprId a, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | FloatConvert (size_t size, ExprId a, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | RoundToInt (size_t size, ExprId a, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | Floor (size_t size, ExprId a, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | Ceil (size_t size, ExprId a, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | FloatTrunc (size_t size, ExprId a, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | FloatCompareEqual (size_t size, ExprId a, ExprId b, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | FloatCompareNotEqual (size_t size, ExprId a, ExprId b, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | FloatCompareLessThan (size_t size, ExprId a, ExprId b, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | FloatCompareLessEqual (size_t size, ExprId a, ExprId b, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | FloatCompareGreaterEqual (size_t size, ExprId a, ExprId b, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | FloatCompareGreaterThan (size_t size, ExprId a, ExprId b, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | FloatCompareOrdered (size_t size, ExprId a, ExprId b, const ILSourceLocation &loc=ILSourceLocation()) |
|
ExprId | FloatCompareUnordered (size_t size, ExprId a, ExprId b, const ILSourceLocation &loc=ILSourceLocation()) |
|
std::vector< uint64_t > | GetOperandList (ExprId i, size_t listOperand) |
|
ExprId | AddOperandList (const std::vector< ExprId > &operands) |
|
ExprId | AddIndexList (const std::vector< size_t > &operands) |
|
ExprId | AddSSAVariableList (const std::vector< SSAVariable > &vars) |
|
BNHighLevelILInstruction | GetRawExpr (size_t i) const |
|
BNHighLevelILInstruction | GetRawNonASTExpr (size_t i) const |
|
HighLevelILInstruction | operator[] (size_t i) |
|
HighLevelILInstruction | GetInstruction (size_t i) |
|
HighLevelILInstruction | GetExpr (size_t i, bool asFullAst=true) |
|
size_t | GetIndexForInstruction (size_t i) const |
|
size_t | GetInstructionForExpr (size_t expr) const |
|
size_t | GetInstructionCount () const |
|
size_t | GetExprCount () const |
|
std::vector< Ref< BasicBlock > > | GetBasicBlocks () const |
|
Ref< BasicBlock > | GetBasicBlockForInstruction (size_t i) const |
|
Ref< HighLevelILFunction > | GetSSAForm () const |
|
Ref< HighLevelILFunction > | GetNonSSAForm () const |
|
size_t | GetSSAInstructionIndex (size_t instr) const |
|
size_t | GetNonSSAInstructionIndex (size_t instr) const |
|
size_t | GetSSAExprIndex (size_t instr) const |
|
size_t | GetNonSSAExprIndex (size_t instr) const |
|
size_t | GetSSAVarDefinition (const SSAVariable &var) const |
|
size_t | GetSSAMemoryDefinition (size_t version) const |
|
std::set< size_t > | GetSSAVarUses (const SSAVariable &var) const |
|
std::set< size_t > | GetSSAMemoryUses (size_t version) const |
|
bool | IsSSAVarLive (const SSAVariable &var) const |
|
bool | IsSSAVarLiveAt (const SSAVariable &var, const size_t instr) const |
|
bool | IsVarLiveAt (const Variable &var, const size_t instr) const |
|
std::set< size_t > | GetVariableDefinitions (const Variable &var) const |
|
std::set< size_t > | GetVariableUses (const Variable &var) const |
|
size_t | GetSSAVarVersionAtInstruction (const Variable &var, size_t instr) const |
|
size_t | GetSSAMemoryVersionAtInstruction (size_t instr) const |
|
Ref< MediumLevelILFunction > | GetMediumLevelIL () const |
|
size_t | GetMediumLevelILExprIndex (size_t expr) const |
|
std::set< size_t > | GetMediumLevelILExprIndexes (size_t expr) const |
|
void | UpdateInstructionOperand (size_t i, size_t operandIndex, ExprId value) |
|
void | ReplaceExpr (size_t expr, size_t newExpr) |
|
void | Finalize () |
|
void | GenerateSSAForm (const std::set< Variable > &aliases=std::set< Variable >()) |
|
std::vector< DisassemblyTextLine > | GetExprText (ExprId expr, bool asFullAst=true, DisassemblySettings *settings=nullptr) |
|
std::vector< DisassemblyTextLine > | GetExprText (const HighLevelILInstruction &instr, bool asFullAst=true, DisassemblySettings *settings=nullptr) |
|
std::vector< DisassemblyTextLine > | GetInstructionText (size_t i, bool asFullAst=true, DisassemblySettings *settings=nullptr) |
|
Confidence< Ref< Type > > | GetExprType (size_t expr) |
|
Confidence< Ref< Type > > | GetExprType (const HighLevelILInstruction &expr) |
|
void | VisitAllExprs (const std::function< bool(const HighLevelILInstruction &expr)> &func) |
|
Ref< FlowGraph > | CreateFunctionGraph (DisassemblySettings *settings=nullptr) |
|
size_t | GetExprIndexForLabel (uint64_t label) |
|
std::set< size_t > | GetUsesForLabel (uint64_t label) |
|
| CoreRefCountObject () |
|
virtual | ~CoreRefCountObject () |
|
BNHighLevelILFunction * | GetObject () const |
|
void | AddRef () |
|
void | Release () |
|
void | AddRefForRegistration () |
|
void | ReleaseForRegistration () |
|