BinaryNinja::MediumLevelILFunction Class Reference

Public Member Functions

 MediumLevelILFunction (Architecture *arch, Function *func=nullptr)
 
 MediumLevelILFunction (BNMediumLevelILFunction *func)
 
Ref< FunctionGetFunction () const
 
Ref< ArchitectureGetArchitecture () const
 
uint64_t GetCurrentAddress () const
 
void SetCurrentAddress (Architecture *arch, uint64_t addr)
 
size_t GetInstructionStart (Architecture *arch, uint64_t addr)
 
void PrepareToCopyFunction (MediumLevelILFunction *func)
 
void PrepareToCopyBlock (BasicBlock *block)
 
BNMediumLevelILLabelGetLabelForSourceInstruction (size_t i)
 
ExprId AddExpr (BNMediumLevelILOperation operation, size_t size, ExprId a=0, ExprId b=0, ExprId c=0, ExprId d=0, ExprId e=0)
 
ExprId AddExprWithLocation (BNMediumLevelILOperation 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 (BNMediumLevelILOperation 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 SetVar (size_t size, const Variable &dest, ExprId src, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId SetVarField (size_t size, const Variable &dest, uint64_t offset, ExprId src, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId SetVarSplit (size_t size, const Variable &high, const Variable &low, ExprId src, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId SetVarSSA (size_t size, const SSAVariable &dest, ExprId src, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId SetVarSSAField (size_t size, const Variable &dest, size_t newVersion, size_t prevVersion, uint64_t offset, ExprId src, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId SetVarSSASplit (size_t size, const SSAVariable &high, const SSAVariable &low, ExprId src, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId SetVarAliased (size_t size, const Variable &dest, size_t newMemVersion, size_t prevMemVersion, ExprId src, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId SetVarAliasedField (size_t size, const Variable &dest, size_t newMemVersion, size_t prevMemVersion, uint64_t offset, ExprId src, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId Load (size_t size, ExprId src, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId LoadStruct (size_t size, ExprId src, uint64_t offset, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId LoadSSA (size_t size, ExprId src, size_t memVersion, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId LoadStructSSA (size_t size, ExprId src, uint64_t offset, size_t memVersion, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId Store (size_t size, ExprId dest, ExprId src, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId StoreStruct (size_t size, ExprId dest, uint64_t offset, ExprId src, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId StoreSSA (size_t size, ExprId dest, size_t newMemVersion, size_t prevMemVersion, ExprId src, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId StoreStructSSA (size_t size, ExprId dest, uint64_t offset, size_t newMemVersion, size_t prevMemVersion, ExprId src, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId Var (size_t size, const Variable &src, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId VarField (size_t size, const Variable &src, uint64_t offset, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId VarSplit (size_t size, const Variable &high, const Variable &low, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId VarSSA (size_t size, const SSAVariable &src, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId VarSSAField (size_t size, const SSAVariable &src, uint64_t offset, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId VarAliased (size_t size, const Variable &src, size_t memVersion, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId VarAliasedField (size_t size, const Variable &src, size_t memVersion, uint64_t offset, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId VarSplitSSA (size_t size, const SSAVariable &high, const SSAVariable &low, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId AddressOf (const Variable &var, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId AddressOfField (const Variable &var, uint64_t offset, 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 Jump (ExprId dest, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId JumpTo (ExprId dest, const std::map< uint64_t, BNMediumLevelILLabel * > &targets, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId ReturnHint (ExprId dest, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId Call (const std::vector< Variable > &output, ExprId dest, const std::vector< ExprId > &params, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId CallUntyped (const std::vector< Variable > &output, ExprId dest, const std::vector< Variable > &params, ExprId stack, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId Syscall (const std::vector< Variable > &output, const std::vector< ExprId > &params, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId SyscallUntyped (const std::vector< Variable > &output, const std::vector< Variable > &params, ExprId stack, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId TailCall (const std::vector< Variable > &output, ExprId dest, const std::vector< ExprId > &params, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId TailCallUntyped (const std::vector< Variable > &output, ExprId dest, const std::vector< Variable > &params, ExprId stack, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId CallSSA (const std::vector< SSAVariable > &output, ExprId dest, const std::vector< ExprId > &params, size_t newMemVersion, size_t prevMemVersion, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId CallUntypedSSA (const std::vector< SSAVariable > &output, ExprId dest, const std::vector< SSAVariable > &params, size_t newMemVersion, size_t prevMemVersion, ExprId stack, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId SyscallSSA (const std::vector< SSAVariable > &output, const std::vector< ExprId > &params, size_t newMemVersion, size_t prevMemVersion, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId SyscallUntypedSSA (const std::vector< SSAVariable > &output, const std::vector< SSAVariable > &params, size_t newMemVersion, size_t prevMemVersion, ExprId stack, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId TailCallSSA (const std::vector< SSAVariable > &output, ExprId dest, const std::vector< ExprId > &params, size_t newMemVersion, size_t prevMemVersion, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId TailCallUntypedSSA (const std::vector< SSAVariable > &output, ExprId dest, const std::vector< SSAVariable > &params, size_t newMemVersion, size_t prevMemVersion, ExprId stack, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId Return (const std::vector< ExprId > &sources, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId NoReturn (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 (const std::vector< Variable > &outputs, uint32_t intrinsic, const std::vector< ExprId > &params, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId IntrinsicSSA (const std::vector< SSAVariable > &outputs, uint32_t intrinsic, const std::vector< ExprId > &params, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId FreeVarSlot (const Variable &var, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId FreeVarSlotSSA (const Variable &var, size_t newVersion, size_t prevVersion, 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 VarPhi (const SSAVariable &dest, const std::vector< SSAVariable > &sources, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId MemoryPhi (size_t destMemVersion, const std::vector< size_t > &sourceMemVersions, 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())
 
ExprId Goto (BNMediumLevelILLabel &label, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId If (ExprId operand, BNMediumLevelILLabel &t, BNMediumLevelILLabel &f, const ILSourceLocation &loc=ILSourceLocation())
 
void MarkLabel (BNMediumLevelILLabel &label)
 
ExprId AddInstruction (ExprId expr)
 
std::vector< uint64_t > GetOperandList (ExprId i, size_t listOperand)
 
ExprId AddLabelMap (const std::map< uint64_t, BNMediumLevelILLabel * > &labels)
 
ExprId AddOperandList (const std::vector< ExprId > operands)
 
ExprId AddIndexList (const std::vector< size_t > &operands)
 
ExprId AddVariableList (const std::vector< Variable > &vars)
 
ExprId AddSSAVariableList (const std::vector< SSAVariable > &vars)
 
BNMediumLevelILInstruction GetRawExpr (size_t i) const
 
MediumLevelILInstruction operator[] (size_t i)
 
MediumLevelILInstruction GetInstruction (size_t i)
 
MediumLevelILInstruction GetExpr (size_t i)
 
size_t GetIndexForInstruction (size_t i) const
 
size_t GetInstructionForExpr (size_t expr) const
 
size_t GetInstructionCount () const
 
size_t GetExprCount () const
 
void UpdateInstructionOperand (size_t i, size_t operandIndex, ExprId value)
 
void MarkInstructionForRemoval (size_t i)
 
void ReplaceInstruction (size_t i, ExprId expr)
 
void ReplaceExpr (size_t expr, size_t newExpr)
 
void Finalize ()
 
void GenerateSSAForm (bool analyzeConditionals=true, bool handleAliases=true, const std::set< Variable > &knownNotAliases=std::set< Variable >(), const std::set< Variable > &knownAliases=std::set< Variable >())
 
bool GetExprText (Architecture *arch, ExprId expr, std::vector< InstructionTextToken > &tokens, DisassemblySettings *settings=nullptr)
 
bool GetInstructionText (Function *func, Architecture *arch, size_t i, std::vector< InstructionTextToken > &tokens, DisassemblySettings *settings=nullptr)
 
void VisitInstructions (const std::function< void(BasicBlock *block, const MediumLevelILInstruction &instr)> &func)
 
void VisitAllExprs (const std::function< bool(BasicBlock *block, const MediumLevelILInstruction &expr)> &func)
 
std::vector< Ref< BasicBlock > > GetBasicBlocks () const
 
Ref< BasicBlockGetBasicBlockForInstruction (size_t i) const
 
Ref< MediumLevelILFunctionGetSSAForm () const
 
Ref< MediumLevelILFunctionGetNonSSAForm () 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
 
std::set< size_t > GetVariableDefinitions (const Variable &var) const
 
std::set< size_t > GetVariableUses (const Variable &var) const
 
RegisterValue GetSSAVarValue (const SSAVariable &var)
 
RegisterValue GetExprValue (size_t expr)
 
RegisterValue GetExprValue (const MediumLevelILInstruction &expr)
 
PossibleValueSet GetPossibleSSAVarValues (const SSAVariable &var, size_t instr, const std::set< BNDataFlowQueryOption > &options=std::set< BNDataFlowQueryOption >())
 
PossibleValueSet GetPossibleExprValues (size_t expr, const std::set< BNDataFlowQueryOption > &options=std::set< BNDataFlowQueryOption >())
 
PossibleValueSet GetPossibleExprValues (const MediumLevelILInstruction &expr, const std::set< BNDataFlowQueryOption > &options=std::set< BNDataFlowQueryOption >())
 
size_t GetSSAVarVersionAtInstruction (const Variable &var, size_t instr) const
 
size_t GetSSAMemoryVersionAtInstruction (size_t instr) const
 
Variable GetVariableForRegisterAtInstruction (uint32_t reg, size_t instr) const
 
Variable GetVariableForFlagAtInstruction (uint32_t flag, size_t instr) const
 
Variable GetVariableForStackLocationAtInstruction (int64_t offset, size_t instr) const
 
RegisterValue GetRegisterValueAtInstruction (uint32_t reg, size_t instr)
 
RegisterValue GetRegisterValueAfterInstruction (uint32_t reg, size_t instr)
 
PossibleValueSet GetPossibleRegisterValuesAtInstruction (uint32_t reg, size_t instr, const std::set< BNDataFlowQueryOption > &options=std::set< BNDataFlowQueryOption >())
 
PossibleValueSet GetPossibleRegisterValuesAfterInstruction (uint32_t reg, size_t instr, const std::set< BNDataFlowQueryOption > &options=std::set< BNDataFlowQueryOption >())
 
RegisterValue GetFlagValueAtInstruction (uint32_t flag, size_t instr)
 
RegisterValue GetFlagValueAfterInstruction (uint32_t flag, size_t instr)
 
PossibleValueSet GetPossibleFlagValuesAtInstruction (uint32_t flag, size_t instr, const std::set< BNDataFlowQueryOption > &options=std::set< BNDataFlowQueryOption >())
 
PossibleValueSet GetPossibleFlagValuesAfterInstruction (uint32_t flag, size_t instr, const std::set< BNDataFlowQueryOption > &options=std::set< BNDataFlowQueryOption >())
 
RegisterValue GetStackContentsAtInstruction (int32_t offset, size_t len, size_t instr)
 
RegisterValue GetStackContentsAfterInstruction (int32_t offset, size_t len, size_t instr)
 
PossibleValueSet GetPossibleStackContentsAtInstruction (int32_t offset, size_t len, size_t instr, const std::set< BNDataFlowQueryOption > &options=std::set< BNDataFlowQueryOption >())
 
PossibleValueSet GetPossibleStackContentsAfterInstruction (int32_t offset, size_t len, size_t instr, const std::set< BNDataFlowQueryOption > &options=std::set< BNDataFlowQueryOption >())
 
BNILBranchDependence GetBranchDependenceAtInstruction (size_t curInstr, size_t branchInstr) const
 
std::unordered_map< size_t, BNILBranchDependenceGetAllBranchDependenceAtInstruction (size_t instr) const
 
Ref< LowLevelILFunctionGetLowLevelIL () const
 
size_t GetLowLevelILInstructionIndex (size_t instr) const
 
size_t GetLowLevelILExprIndex (size_t expr) const
 
std::set< size_t > GetLowLevelILExprIndexes (size_t expr) const
 
Ref< HighLevelILFunctionGetHighLevelIL () const
 
size_t GetHighLevelILInstructionIndex (size_t instr) const
 
size_t GetHighLevelILExprIndex (size_t expr) const
 
std::set< size_t > GetHighLevelILExprIndexes (size_t expr) const
 
Confidence< Ref< Type > > GetExprType (size_t expr)
 
Confidence< Ref< Type > > GetExprType (const MediumLevelILInstruction &expr)
 
Ref< FlowGraphCreateFunctionGraph (DisassemblySettings *settings=nullptr)
 
- Public Member Functions inherited from BinaryNinja::CoreRefCountObject< BNMediumLevelILFunction, BNNewMediumLevelILFunctionReference, BNFreeMediumLevelILFunction >
 CoreRefCountObject ()
 
virtual ~CoreRefCountObject ()
 
BNMediumLevelILFunction * GetObject () const
 
void AddRef ()
 
void Release ()
 
void AddRefForRegistration ()
 
void ReleaseForRegistration ()
 

Static Public Member Functions

static bool IsConstantType (BNMediumLevelILOperation op)
 
- Static Public Member Functions inherited from BinaryNinja::CoreRefCountObject< BNMediumLevelILFunction, BNNewMediumLevelILFunctionReference, BNFreeMediumLevelILFunction >
static BNMediumLevelILFunction * GetObject (CoreRefCountObject *obj)
 

Additional Inherited Members

- Public Attributes inherited from BinaryNinja::CoreRefCountObject< BNMediumLevelILFunction, BNNewMediumLevelILFunctionReference, BNFreeMediumLevelILFunction >
std::atomic< int > m_refs
 
bool m_registeredRef
 
BNMediumLevelILFunction * m_object
 

Constructor & Destructor Documentation

◆ MediumLevelILFunction() [1/2]

MediumLevelILFunction::MediumLevelILFunction ( Architecture arch,
Function func = nullptr 
)

◆ MediumLevelILFunction() [2/2]

MediumLevelILFunction::MediumLevelILFunction ( BNMediumLevelILFunction *  func)

Member Function Documentation

◆ Add()

ExprId MediumLevelILFunction::Add ( size_t  size,
ExprId  left,
ExprId  right,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ AddExpr()

ExprId MediumLevelILFunction::AddExpr ( BNMediumLevelILOperation  operation,
size_t  size,
ExprId  a = 0,
ExprId  b = 0,
ExprId  c = 0,
ExprId  d = 0,
ExprId  e = 0 
)

◆ AddExprWithLocation() [1/2]

ExprId MediumLevelILFunction::AddExprWithLocation ( BNMediumLevelILOperation  operation,
const ILSourceLocation loc,
size_t  size,
ExprId  a = 0,
ExprId  b = 0,
ExprId  c = 0,
ExprId  d = 0,
ExprId  e = 0 
)

◆ AddExprWithLocation() [2/2]

ExprId MediumLevelILFunction::AddExprWithLocation ( BNMediumLevelILOperation  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 
)

◆ AddIndexList()

ExprId MediumLevelILFunction::AddIndexList ( const std::vector< size_t > &  operands)

◆ AddInstruction()

ExprId MediumLevelILFunction::AddInstruction ( ExprId  expr)

◆ AddLabelMap()

ExprId MediumLevelILFunction::AddLabelMap ( const std::map< uint64_t, BNMediumLevelILLabel * > &  labels)

◆ AddOperandList()

ExprId MediumLevelILFunction::AddOperandList ( const std::vector< ExprId operands)

◆ AddOverflow()

ExprId MediumLevelILFunction::AddOverflow ( size_t  size,
ExprId  left,
ExprId  right,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ AddressOf()

ExprId MediumLevelILFunction::AddressOf ( const Variable var,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ AddressOfField()

ExprId MediumLevelILFunction::AddressOfField ( const Variable var,
uint64_t  offset,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ AddSSAVariableList()

ExprId MediumLevelILFunction::AddSSAVariableList ( const std::vector< SSAVariable > &  vars)

◆ AddVariableList()

ExprId MediumLevelILFunction::AddVariableList ( const std::vector< Variable > &  vars)

◆ AddWithCarry()

ExprId MediumLevelILFunction::AddWithCarry ( size_t  size,
ExprId  left,
ExprId  right,
ExprId  carry,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ And()

ExprId MediumLevelILFunction::And ( size_t  size,
ExprId  left,
ExprId  right,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ ArithShiftRight()

ExprId MediumLevelILFunction::ArithShiftRight ( size_t  size,
ExprId  left,
ExprId  right,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ BoolToInt()

ExprId MediumLevelILFunction::BoolToInt ( size_t  size,
ExprId  src,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ Breakpoint()

ExprId MediumLevelILFunction::Breakpoint ( const ILSourceLocation loc = ILSourceLocation())

◆ Call()

ExprId MediumLevelILFunction::Call ( const std::vector< Variable > &  output,
ExprId  dest,
const std::vector< ExprId > &  params,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ CallSSA()

ExprId MediumLevelILFunction::CallSSA ( const std::vector< SSAVariable > &  output,
ExprId  dest,
const std::vector< ExprId > &  params,
size_t  newMemVersion,
size_t  prevMemVersion,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ CallUntyped()

ExprId MediumLevelILFunction::CallUntyped ( const std::vector< Variable > &  output,
ExprId  dest,
const std::vector< Variable > &  params,
ExprId  stack,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ CallUntypedSSA()

ExprId MediumLevelILFunction::CallUntypedSSA ( const std::vector< SSAVariable > &  output,
ExprId  dest,
const std::vector< SSAVariable > &  params,
size_t  newMemVersion,
size_t  prevMemVersion,
ExprId  stack,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ Ceil()

ExprId MediumLevelILFunction::Ceil ( size_t  size,
ExprId  a,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ CompareEqual()

ExprId MediumLevelILFunction::CompareEqual ( size_t  size,
ExprId  left,
ExprId  right,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ CompareNotEqual()

ExprId MediumLevelILFunction::CompareNotEqual ( size_t  size,
ExprId  left,
ExprId  right,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ CompareSignedGreaterEqual()

ExprId MediumLevelILFunction::CompareSignedGreaterEqual ( size_t  size,
ExprId  left,
ExprId  right,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ CompareSignedGreaterThan()

ExprId MediumLevelILFunction::CompareSignedGreaterThan ( size_t  size,
ExprId  left,
ExprId  right,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ CompareSignedLessEqual()

ExprId MediumLevelILFunction::CompareSignedLessEqual ( size_t  size,
ExprId  left,
ExprId  right,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ CompareSignedLessThan()

ExprId MediumLevelILFunction::CompareSignedLessThan ( size_t  size,
ExprId  left,
ExprId  right,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ CompareUnsignedGreaterEqual()

ExprId MediumLevelILFunction::CompareUnsignedGreaterEqual ( size_t  size,
ExprId  left,
ExprId  right,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ CompareUnsignedGreaterThan()

ExprId MediumLevelILFunction::CompareUnsignedGreaterThan ( size_t  size,
ExprId  left,
ExprId  right,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ CompareUnsignedLessEqual()

ExprId MediumLevelILFunction::CompareUnsignedLessEqual ( size_t  size,
ExprId  left,
ExprId  right,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ CompareUnsignedLessThan()

ExprId MediumLevelILFunction::CompareUnsignedLessThan ( size_t  size,
ExprId  left,
ExprId  right,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ Const()

ExprId MediumLevelILFunction::Const ( size_t  size,
uint64_t  val,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ ConstPointer()

ExprId MediumLevelILFunction::ConstPointer ( size_t  size,
uint64_t  val,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ CreateFunctionGraph()

Ref< FlowGraph > MediumLevelILFunction::CreateFunctionGraph ( DisassemblySettings settings = nullptr)

◆ DivDoublePrecSigned()

ExprId MediumLevelILFunction::DivDoublePrecSigned ( size_t  size,
ExprId  left,
ExprId  right,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ DivDoublePrecUnsigned()

ExprId MediumLevelILFunction::DivDoublePrecUnsigned ( size_t  size,
ExprId  left,
ExprId  right,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ DivSigned()

ExprId MediumLevelILFunction::DivSigned ( size_t  size,
ExprId  left,
ExprId  right,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ DivUnsigned()

ExprId MediumLevelILFunction::DivUnsigned ( size_t  size,
ExprId  left,
ExprId  right,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ ExternPointer()

ExprId MediumLevelILFunction::ExternPointer ( size_t  size,
uint64_t  val,
uint64_t  offset,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ Finalize()

void MediumLevelILFunction::Finalize ( )

◆ FloatAbs()

ExprId MediumLevelILFunction::FloatAbs ( size_t  size,
ExprId  a,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ FloatAdd()

ExprId MediumLevelILFunction::FloatAdd ( size_t  size,
ExprId  a,
ExprId  b,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ FloatCompareEqual()

ExprId MediumLevelILFunction::FloatCompareEqual ( size_t  size,
ExprId  a,
ExprId  b,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ FloatCompareGreaterEqual()

ExprId MediumLevelILFunction::FloatCompareGreaterEqual ( size_t  size,
ExprId  a,
ExprId  b,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ FloatCompareGreaterThan()

ExprId MediumLevelILFunction::FloatCompareGreaterThan ( size_t  size,
ExprId  a,
ExprId  b,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ FloatCompareLessEqual()

ExprId MediumLevelILFunction::FloatCompareLessEqual ( size_t  size,
ExprId  a,
ExprId  b,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ FloatCompareLessThan()

ExprId MediumLevelILFunction::FloatCompareLessThan ( size_t  size,
ExprId  a,
ExprId  b,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ FloatCompareNotEqual()

ExprId MediumLevelILFunction::FloatCompareNotEqual ( size_t  size,
ExprId  a,
ExprId  b,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ FloatCompareOrdered()

ExprId MediumLevelILFunction::FloatCompareOrdered ( size_t  size,
ExprId  a,
ExprId  b,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ FloatCompareUnordered()

ExprId MediumLevelILFunction::FloatCompareUnordered ( size_t  size,
ExprId  a,
ExprId  b,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ FloatConstDouble()

ExprId MediumLevelILFunction::FloatConstDouble ( double  val,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ FloatConstRaw()

ExprId MediumLevelILFunction::FloatConstRaw ( size_t  size,
uint64_t  val,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ FloatConstSingle()

ExprId MediumLevelILFunction::FloatConstSingle ( float  val,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ FloatConvert()

ExprId MediumLevelILFunction::FloatConvert ( size_t  size,
ExprId  a,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ FloatDiv()

ExprId MediumLevelILFunction::FloatDiv ( size_t  size,
ExprId  a,
ExprId  b,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ FloatMult()

ExprId MediumLevelILFunction::FloatMult ( size_t  size,
ExprId  a,
ExprId  b,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ FloatNeg()

ExprId MediumLevelILFunction::FloatNeg ( size_t  size,
ExprId  a,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ FloatSqrt()

ExprId MediumLevelILFunction::FloatSqrt ( size_t  size,
ExprId  a,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ FloatSub()

ExprId MediumLevelILFunction::FloatSub ( size_t  size,
ExprId  a,
ExprId  b,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ FloatToInt()

ExprId MediumLevelILFunction::FloatToInt ( size_t  size,
ExprId  a,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ FloatTrunc()

ExprId MediumLevelILFunction::FloatTrunc ( size_t  size,
ExprId  a,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ Floor()

ExprId MediumLevelILFunction::Floor ( size_t  size,
ExprId  a,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ FreeVarSlot()

ExprId MediumLevelILFunction::FreeVarSlot ( const Variable var,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ FreeVarSlotSSA()

ExprId MediumLevelILFunction::FreeVarSlotSSA ( const Variable var,
size_t  newVersion,
size_t  prevVersion,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ GenerateSSAForm()

void MediumLevelILFunction::GenerateSSAForm ( bool  analyzeConditionals = true,
bool  handleAliases = true,
const std::set< Variable > &  knownNotAliases = std::set<Variable>(),
const std::set< Variable > &  knownAliases = std::set<Variable>() 
)

◆ GetAllBranchDependenceAtInstruction()

unordered_map< size_t, BNILBranchDependence > MediumLevelILFunction::GetAllBranchDependenceAtInstruction ( size_t  instr) const

◆ GetArchitecture()

Ref< Architecture > MediumLevelILFunction::GetArchitecture ( ) const

◆ GetBasicBlockForInstruction()

Ref< BasicBlock > MediumLevelILFunction::GetBasicBlockForInstruction ( size_t  i) const

◆ GetBasicBlocks()

vector< Ref< BasicBlock > > MediumLevelILFunction::GetBasicBlocks ( ) const

◆ GetBranchDependenceAtInstruction()

BNILBranchDependence MediumLevelILFunction::GetBranchDependenceAtInstruction ( size_t  curInstr,
size_t  branchInstr 
) const

◆ GetCurrentAddress()

uint64_t MediumLevelILFunction::GetCurrentAddress ( ) const

◆ GetExpr()

MediumLevelILInstruction MediumLevelILFunction::GetExpr ( size_t  i)

◆ GetExprCount()

size_t MediumLevelILFunction::GetExprCount ( ) const

◆ GetExprText()

bool MediumLevelILFunction::GetExprText ( Architecture arch,
ExprId  expr,
std::vector< InstructionTextToken > &  tokens,
DisassemblySettings settings = nullptr 
)

◆ GetExprType() [1/2]

Confidence< Ref< Type > > MediumLevelILFunction::GetExprType ( const MediumLevelILInstruction expr)

◆ GetExprType() [2/2]

Confidence< Ref< Type > > MediumLevelILFunction::GetExprType ( size_t  expr)

◆ GetExprValue() [1/2]

RegisterValue MediumLevelILFunction::GetExprValue ( const MediumLevelILInstruction expr)

◆ GetExprValue() [2/2]

RegisterValue MediumLevelILFunction::GetExprValue ( size_t  expr)

◆ GetFlagValueAfterInstruction()

RegisterValue MediumLevelILFunction::GetFlagValueAfterInstruction ( uint32_t  flag,
size_t  instr 
)

◆ GetFlagValueAtInstruction()

RegisterValue MediumLevelILFunction::GetFlagValueAtInstruction ( uint32_t  flag,
size_t  instr 
)

◆ GetFunction()

Ref< Function > MediumLevelILFunction::GetFunction ( ) const

◆ GetHighLevelIL()

Ref< HighLevelILFunction > MediumLevelILFunction::GetHighLevelIL ( ) const

◆ GetHighLevelILExprIndex()

size_t MediumLevelILFunction::GetHighLevelILExprIndex ( size_t  expr) const

◆ GetHighLevelILExprIndexes()

set< size_t > MediumLevelILFunction::GetHighLevelILExprIndexes ( size_t  expr) const

◆ GetHighLevelILInstructionIndex()

size_t MediumLevelILFunction::GetHighLevelILInstructionIndex ( size_t  instr) const

◆ GetIndexForInstruction()

size_t MediumLevelILFunction::GetIndexForInstruction ( size_t  i) const

◆ GetInstruction()

MediumLevelILInstruction MediumLevelILFunction::GetInstruction ( size_t  i)

◆ GetInstructionCount()

size_t MediumLevelILFunction::GetInstructionCount ( ) const

◆ GetInstructionForExpr()

size_t MediumLevelILFunction::GetInstructionForExpr ( size_t  expr) const

◆ GetInstructionStart()

size_t MediumLevelILFunction::GetInstructionStart ( Architecture arch,
uint64_t  addr 
)

◆ GetInstructionText()

bool MediumLevelILFunction::GetInstructionText ( Function func,
Architecture arch,
size_t  i,
std::vector< InstructionTextToken > &  tokens,
DisassemblySettings settings = nullptr 
)

◆ GetLabelForSourceInstruction()

BNMediumLevelILLabel * MediumLevelILFunction::GetLabelForSourceInstruction ( size_t  i)

◆ GetLowLevelIL()

Ref< LowLevelILFunction > MediumLevelILFunction::GetLowLevelIL ( ) const

◆ GetLowLevelILExprIndex()

size_t MediumLevelILFunction::GetLowLevelILExprIndex ( size_t  expr) const

◆ GetLowLevelILExprIndexes()

set< size_t > MediumLevelILFunction::GetLowLevelILExprIndexes ( size_t  expr) const

◆ GetLowLevelILInstructionIndex()

size_t MediumLevelILFunction::GetLowLevelILInstructionIndex ( size_t  instr) const

◆ GetNonSSAExprIndex()

size_t MediumLevelILFunction::GetNonSSAExprIndex ( size_t  instr) const

◆ GetNonSSAForm()

Ref< MediumLevelILFunction > MediumLevelILFunction::GetNonSSAForm ( ) const

◆ GetNonSSAInstructionIndex()

size_t MediumLevelILFunction::GetNonSSAInstructionIndex ( size_t  instr) const

◆ GetOperandList()

vector< uint64_t > MediumLevelILFunction::GetOperandList ( ExprId  i,
size_t  listOperand 
)

◆ GetPossibleExprValues() [1/2]

PossibleValueSet BinaryNinja::MediumLevelILFunction::GetPossibleExprValues ( const MediumLevelILInstruction expr,
const std::set< BNDataFlowQueryOption > &  options = std::set< BNDataFlowQueryOption >() 
)

◆ GetPossibleExprValues() [2/2]

PossibleValueSet BinaryNinja::MediumLevelILFunction::GetPossibleExprValues ( size_t  expr,
const std::set< BNDataFlowQueryOption > &  options = std::set< BNDataFlowQueryOption >() 
)

◆ GetPossibleFlagValuesAfterInstruction()

PossibleValueSet MediumLevelILFunction::GetPossibleFlagValuesAfterInstruction ( uint32_t  flag,
size_t  instr,
const std::set< BNDataFlowQueryOption > &  options = std::set<BNDataFlowQueryOption>() 
)

◆ GetPossibleFlagValuesAtInstruction()

PossibleValueSet MediumLevelILFunction::GetPossibleFlagValuesAtInstruction ( uint32_t  flag,
size_t  instr,
const std::set< BNDataFlowQueryOption > &  options = std::set<BNDataFlowQueryOption>() 
)

◆ GetPossibleRegisterValuesAfterInstruction()

PossibleValueSet MediumLevelILFunction::GetPossibleRegisterValuesAfterInstruction ( uint32_t  reg,
size_t  instr,
const std::set< BNDataFlowQueryOption > &  options = std::set<BNDataFlowQueryOption>() 
)

◆ GetPossibleRegisterValuesAtInstruction()

PossibleValueSet MediumLevelILFunction::GetPossibleRegisterValuesAtInstruction ( uint32_t  reg,
size_t  instr,
const std::set< BNDataFlowQueryOption > &  options = std::set<BNDataFlowQueryOption>() 
)

◆ GetPossibleSSAVarValues()

PossibleValueSet MediumLevelILFunction::GetPossibleSSAVarValues ( const SSAVariable var,
size_t  instr,
const std::set< BNDataFlowQueryOption > &  options = std::set<BNDataFlowQueryOption>() 
)

◆ GetPossibleStackContentsAfterInstruction()

PossibleValueSet MediumLevelILFunction::GetPossibleStackContentsAfterInstruction ( int32_t  offset,
size_t  len,
size_t  instr,
const std::set< BNDataFlowQueryOption > &  options = std::set<BNDataFlowQueryOption>() 
)

◆ GetPossibleStackContentsAtInstruction()

PossibleValueSet MediumLevelILFunction::GetPossibleStackContentsAtInstruction ( int32_t  offset,
size_t  len,
size_t  instr,
const std::set< BNDataFlowQueryOption > &  options = std::set<BNDataFlowQueryOption>() 
)

◆ GetRawExpr()

BNMediumLevelILInstruction MediumLevelILFunction::GetRawExpr ( size_t  i) const

◆ GetRegisterValueAfterInstruction()

RegisterValue MediumLevelILFunction::GetRegisterValueAfterInstruction ( uint32_t  reg,
size_t  instr 
)

◆ GetRegisterValueAtInstruction()

RegisterValue MediumLevelILFunction::GetRegisterValueAtInstruction ( uint32_t  reg,
size_t  instr 
)

◆ GetSSAExprIndex()

size_t MediumLevelILFunction::GetSSAExprIndex ( size_t  instr) const

◆ GetSSAForm()

Ref< MediumLevelILFunction > MediumLevelILFunction::GetSSAForm ( ) const

◆ GetSSAInstructionIndex()

size_t MediumLevelILFunction::GetSSAInstructionIndex ( size_t  instr) const

◆ GetSSAMemoryDefinition()

size_t MediumLevelILFunction::GetSSAMemoryDefinition ( size_t  version) const

◆ GetSSAMemoryUses()

set< size_t > MediumLevelILFunction::GetSSAMemoryUses ( size_t  version) const

◆ GetSSAMemoryVersionAtInstruction()

size_t MediumLevelILFunction::GetSSAMemoryVersionAtInstruction ( size_t  instr) const

◆ GetSSAVarDefinition()

size_t MediumLevelILFunction::GetSSAVarDefinition ( const SSAVariable var) const

◆ GetSSAVarUses()

set< size_t > MediumLevelILFunction::GetSSAVarUses ( const SSAVariable var) const

◆ GetSSAVarValue()

RegisterValue MediumLevelILFunction::GetSSAVarValue ( const SSAVariable var)

◆ GetSSAVarVersionAtInstruction()

size_t MediumLevelILFunction::GetSSAVarVersionAtInstruction ( const Variable var,
size_t  instr 
) const

◆ GetStackContentsAfterInstruction()

RegisterValue MediumLevelILFunction::GetStackContentsAfterInstruction ( int32_t  offset,
size_t  len,
size_t  instr 
)

◆ GetStackContentsAtInstruction()

RegisterValue MediumLevelILFunction::GetStackContentsAtInstruction ( int32_t  offset,
size_t  len,
size_t  instr 
)

◆ GetVariableDefinitions()

set< size_t > MediumLevelILFunction::GetVariableDefinitions ( const Variable var) const

◆ GetVariableForFlagAtInstruction()

Variable MediumLevelILFunction::GetVariableForFlagAtInstruction ( uint32_t  flag,
size_t  instr 
) const

◆ GetVariableForRegisterAtInstruction()

Variable MediumLevelILFunction::GetVariableForRegisterAtInstruction ( uint32_t  reg,
size_t  instr 
) const

◆ GetVariableForStackLocationAtInstruction()

Variable MediumLevelILFunction::GetVariableForStackLocationAtInstruction ( int64_t  offset,
size_t  instr 
) const

◆ GetVariableUses()

set< size_t > MediumLevelILFunction::GetVariableUses ( const Variable var) const

◆ Goto()

ExprId MediumLevelILFunction::Goto ( BNMediumLevelILLabel label,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ If()

ExprId MediumLevelILFunction::If ( ExprId  operand,
BNMediumLevelILLabel t,
BNMediumLevelILLabel f,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ ImportedAddress()

ExprId MediumLevelILFunction::ImportedAddress ( size_t  size,
uint64_t  val,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ Intrinsic()

ExprId MediumLevelILFunction::Intrinsic ( const std::vector< Variable > &  outputs,
uint32_t  intrinsic,
const std::vector< ExprId > &  params,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ IntrinsicSSA()

ExprId MediumLevelILFunction::IntrinsicSSA ( const std::vector< SSAVariable > &  outputs,
uint32_t  intrinsic,
const std::vector< ExprId > &  params,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ IntToFloat()

ExprId MediumLevelILFunction::IntToFloat ( size_t  size,
ExprId  a,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ IsConstantType()

static bool BinaryNinja::MediumLevelILFunction::IsConstantType ( BNMediumLevelILOperation  op)
inlinestatic

◆ IsSSAVarLive()

bool MediumLevelILFunction::IsSSAVarLive ( const SSAVariable var) const

◆ Jump()

ExprId MediumLevelILFunction::Jump ( ExprId  dest,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ JumpTo()

ExprId MediumLevelILFunction::JumpTo ( ExprId  dest,
const std::map< uint64_t, BNMediumLevelILLabel * > &  targets,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ Load()

ExprId MediumLevelILFunction::Load ( size_t  size,
ExprId  src,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ LoadSSA()

ExprId MediumLevelILFunction::LoadSSA ( size_t  size,
ExprId  src,
size_t  memVersion,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ LoadStruct()

ExprId MediumLevelILFunction::LoadStruct ( size_t  size,
ExprId  src,
uint64_t  offset,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ LoadStructSSA()

ExprId MediumLevelILFunction::LoadStructSSA ( size_t  size,
ExprId  src,
uint64_t  offset,
size_t  memVersion,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ LogicalShiftRight()

ExprId MediumLevelILFunction::LogicalShiftRight ( size_t  size,
ExprId  left,
ExprId  right,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ LowPart()

ExprId MediumLevelILFunction::LowPart ( size_t  size,
ExprId  src,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ MarkInstructionForRemoval()

void MediumLevelILFunction::MarkInstructionForRemoval ( size_t  i)

◆ MarkLabel()

void MediumLevelILFunction::MarkLabel ( BNMediumLevelILLabel label)

◆ MemoryPhi()

ExprId MediumLevelILFunction::MemoryPhi ( size_t  destMemVersion,
const std::vector< size_t > &  sourceMemVersions,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ ModDoublePrecSigned()

ExprId MediumLevelILFunction::ModDoublePrecSigned ( size_t  size,
ExprId  left,
ExprId  right,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ ModDoublePrecUnsigned()

ExprId MediumLevelILFunction::ModDoublePrecUnsigned ( size_t  size,
ExprId  left,
ExprId  right,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ ModSigned()

ExprId MediumLevelILFunction::ModSigned ( size_t  size,
ExprId  left,
ExprId  right,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ ModUnsigned()

ExprId MediumLevelILFunction::ModUnsigned ( size_t  size,
ExprId  left,
ExprId  right,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ Mult()

ExprId MediumLevelILFunction::Mult ( size_t  size,
ExprId  left,
ExprId  right,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ MultDoublePrecSigned()

ExprId MediumLevelILFunction::MultDoublePrecSigned ( size_t  size,
ExprId  left,
ExprId  right,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ MultDoublePrecUnsigned()

ExprId MediumLevelILFunction::MultDoublePrecUnsigned ( size_t  size,
ExprId  left,
ExprId  right,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ Neg()

ExprId MediumLevelILFunction::Neg ( size_t  size,
ExprId  src,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ Nop()

ExprId MediumLevelILFunction::Nop ( const ILSourceLocation loc = ILSourceLocation())

◆ NoReturn()

ExprId MediumLevelILFunction::NoReturn ( const ILSourceLocation loc = ILSourceLocation())

◆ Not()

ExprId MediumLevelILFunction::Not ( size_t  size,
ExprId  src,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ operator[]()

MediumLevelILInstruction MediumLevelILFunction::operator[] ( size_t  i)

◆ Or()

ExprId MediumLevelILFunction::Or ( size_t  size,
ExprId  left,
ExprId  right,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ PrepareToCopyBlock()

void MediumLevelILFunction::PrepareToCopyBlock ( BasicBlock block)

◆ PrepareToCopyFunction()

void MediumLevelILFunction::PrepareToCopyFunction ( MediumLevelILFunction func)

◆ ReplaceExpr()

void MediumLevelILFunction::ReplaceExpr ( size_t  expr,
size_t  newExpr 
)

◆ ReplaceInstruction()

void MediumLevelILFunction::ReplaceInstruction ( size_t  i,
ExprId  expr 
)

◆ Return()

ExprId MediumLevelILFunction::Return ( const std::vector< ExprId > &  sources,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ ReturnHint()

ExprId MediumLevelILFunction::ReturnHint ( ExprId  dest,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ RotateLeft()

ExprId MediumLevelILFunction::RotateLeft ( size_t  size,
ExprId  left,
ExprId  right,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ RotateLeftCarry()

ExprId MediumLevelILFunction::RotateLeftCarry ( size_t  size,
ExprId  left,
ExprId  right,
ExprId  carry,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ RotateRight()

ExprId MediumLevelILFunction::RotateRight ( size_t  size,
ExprId  left,
ExprId  right,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ RotateRightCarry()

ExprId MediumLevelILFunction::RotateRightCarry ( size_t  size,
ExprId  left,
ExprId  right,
ExprId  carry,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ RoundToInt()

ExprId MediumLevelILFunction::RoundToInt ( size_t  size,
ExprId  a,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ SetCurrentAddress()

void MediumLevelILFunction::SetCurrentAddress ( Architecture arch,
uint64_t  addr 
)

◆ SetVar()

ExprId MediumLevelILFunction::SetVar ( size_t  size,
const Variable dest,
ExprId  src,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ SetVarAliased()

ExprId MediumLevelILFunction::SetVarAliased ( size_t  size,
const Variable dest,
size_t  newMemVersion,
size_t  prevMemVersion,
ExprId  src,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ SetVarAliasedField()

ExprId MediumLevelILFunction::SetVarAliasedField ( size_t  size,
const Variable dest,
size_t  newMemVersion,
size_t  prevMemVersion,
uint64_t  offset,
ExprId  src,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ SetVarField()

ExprId MediumLevelILFunction::SetVarField ( size_t  size,
const Variable dest,
uint64_t  offset,
ExprId  src,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ SetVarSplit()

ExprId MediumLevelILFunction::SetVarSplit ( size_t  size,
const Variable high,
const Variable low,
ExprId  src,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ SetVarSSA()

ExprId MediumLevelILFunction::SetVarSSA ( size_t  size,
const SSAVariable dest,
ExprId  src,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ SetVarSSAField()

ExprId MediumLevelILFunction::SetVarSSAField ( size_t  size,
const Variable dest,
size_t  newVersion,
size_t  prevVersion,
uint64_t  offset,
ExprId  src,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ SetVarSSASplit()

ExprId MediumLevelILFunction::SetVarSSASplit ( size_t  size,
const SSAVariable high,
const SSAVariable low,
ExprId  src,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ ShiftLeft()

ExprId MediumLevelILFunction::ShiftLeft ( size_t  size,
ExprId  left,
ExprId  right,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ SignExtend()

ExprId MediumLevelILFunction::SignExtend ( size_t  size,
ExprId  src,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ Store()

ExprId MediumLevelILFunction::Store ( size_t  size,
ExprId  dest,
ExprId  src,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ StoreSSA()

ExprId MediumLevelILFunction::StoreSSA ( size_t  size,
ExprId  dest,
size_t  newMemVersion,
size_t  prevMemVersion,
ExprId  src,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ StoreStruct()

ExprId MediumLevelILFunction::StoreStruct ( size_t  size,
ExprId  dest,
uint64_t  offset,
ExprId  src,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ StoreStructSSA()

ExprId MediumLevelILFunction::StoreStructSSA ( size_t  size,
ExprId  dest,
uint64_t  offset,
size_t  newMemVersion,
size_t  prevMemVersion,
ExprId  src,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ Sub()

ExprId MediumLevelILFunction::Sub ( size_t  size,
ExprId  left,
ExprId  right,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ SubWithBorrow()

ExprId MediumLevelILFunction::SubWithBorrow ( size_t  size,
ExprId  left,
ExprId  right,
ExprId  carry,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ Syscall()

ExprId MediumLevelILFunction::Syscall ( const std::vector< Variable > &  output,
const std::vector< ExprId > &  params,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ SyscallSSA()

ExprId MediumLevelILFunction::SyscallSSA ( const std::vector< SSAVariable > &  output,
const std::vector< ExprId > &  params,
size_t  newMemVersion,
size_t  prevMemVersion,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ SyscallUntyped()

ExprId MediumLevelILFunction::SyscallUntyped ( const std::vector< Variable > &  output,
const std::vector< Variable > &  params,
ExprId  stack,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ SyscallUntypedSSA()

ExprId MediumLevelILFunction::SyscallUntypedSSA ( const std::vector< SSAVariable > &  output,
const std::vector< SSAVariable > &  params,
size_t  newMemVersion,
size_t  prevMemVersion,
ExprId  stack,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ TailCall()

ExprId MediumLevelILFunction::TailCall ( const std::vector< Variable > &  output,
ExprId  dest,
const std::vector< ExprId > &  params,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ TailCallSSA()

ExprId MediumLevelILFunction::TailCallSSA ( const std::vector< SSAVariable > &  output,
ExprId  dest,
const std::vector< ExprId > &  params,
size_t  newMemVersion,
size_t  prevMemVersion,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ TailCallUntyped()

ExprId MediumLevelILFunction::TailCallUntyped ( const std::vector< Variable > &  output,
ExprId  dest,
const std::vector< Variable > &  params,
ExprId  stack,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ TailCallUntypedSSA()

ExprId MediumLevelILFunction::TailCallUntypedSSA ( const std::vector< SSAVariable > &  output,
ExprId  dest,
const std::vector< SSAVariable > &  params,
size_t  newMemVersion,
size_t  prevMemVersion,
ExprId  stack,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ TestBit()

ExprId MediumLevelILFunction::TestBit ( size_t  size,
ExprId  left,
ExprId  right,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ Trap()

ExprId MediumLevelILFunction::Trap ( int64_t  vector,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ Undefined()

ExprId MediumLevelILFunction::Undefined ( const ILSourceLocation loc = ILSourceLocation())

◆ Unimplemented()

ExprId MediumLevelILFunction::Unimplemented ( const ILSourceLocation loc = ILSourceLocation())

◆ UnimplementedMemoryRef()

ExprId MediumLevelILFunction::UnimplementedMemoryRef ( size_t  size,
ExprId  target,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ UpdateInstructionOperand()

void MediumLevelILFunction::UpdateInstructionOperand ( size_t  i,
size_t  operandIndex,
ExprId  value 
)

◆ Var()

ExprId MediumLevelILFunction::Var ( size_t  size,
const Variable src,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ VarAliased()

ExprId MediumLevelILFunction::VarAliased ( size_t  size,
const Variable src,
size_t  memVersion,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ VarAliasedField()

ExprId MediumLevelILFunction::VarAliasedField ( size_t  size,
const Variable src,
size_t  memVersion,
uint64_t  offset,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ VarField()

ExprId MediumLevelILFunction::VarField ( size_t  size,
const Variable src,
uint64_t  offset,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ VarPhi()

ExprId MediumLevelILFunction::VarPhi ( const SSAVariable dest,
const std::vector< SSAVariable > &  sources,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ VarSplit()

ExprId MediumLevelILFunction::VarSplit ( size_t  size,
const Variable high,
const Variable low,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ VarSplitSSA()

ExprId MediumLevelILFunction::VarSplitSSA ( size_t  size,
const SSAVariable high,
const SSAVariable low,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ VarSSA()

ExprId MediumLevelILFunction::VarSSA ( size_t  size,
const SSAVariable src,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ VarSSAField()

ExprId MediumLevelILFunction::VarSSAField ( size_t  size,
const SSAVariable src,
uint64_t  offset,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ VisitAllExprs()

void MediumLevelILFunction::VisitAllExprs ( const std::function< bool(BasicBlock *block, const MediumLevelILInstruction &expr)> &  func)

◆ VisitInstructions()

void MediumLevelILFunction::VisitInstructions ( const std::function< void(BasicBlock *block, const MediumLevelILInstruction &instr)> &  func)

◆ Xor()

ExprId MediumLevelILFunction::Xor ( size_t  size,
ExprId  left,
ExprId  right,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ ZeroExtend()

ExprId MediumLevelILFunction::ZeroExtend ( size_t  size,
ExprId  src,
const ILSourceLocation loc = ILSourceLocation() 
)

The documentation for this class was generated from the following files: