BinaryNinja::LowLevelILFunction Class Reference

Public Member Functions

 LowLevelILFunction (Architecture *arch, Function *func=nullptr)
 
 LowLevelILFunction (BNLowLevelILFunction *func)
 
Ref< FunctionGetFunction () const
 
Ref< ArchitectureGetArchitecture () const
 
void PrepareToCopyFunction (LowLevelILFunction *func)
 
void PrepareToCopyBlock (BasicBlock *block)
 
BNLowLevelILLabelGetLabelForSourceInstruction (size_t i)
 
uint64_t GetCurrentAddress () const
 
void SetCurrentAddress (Architecture *arch, uint64_t addr)
 
size_t GetInstructionStart (Architecture *arch, uint64_t addr)
 
void ClearIndirectBranches ()
 
void SetIndirectBranches (const std::vector< ArchAndAddr > &branches)
 
ExprId AddExpr (BNLowLevelILOperation operation, size_t size, uint32_t flags, ExprId a=0, ExprId b=0, ExprId c=0, ExprId d=0)
 
ExprId AddExprWithLocation (BNLowLevelILOperation operation, uint64_t addr, uint32_t sourceOperand, size_t size, uint32_t flags, ExprId a=0, ExprId b=0, ExprId c=0, ExprId d=0)
 
ExprId AddExprWithLocation (BNLowLevelILOperation operation, const ILSourceLocation &loc, size_t size, uint32_t flags, ExprId a=0, ExprId b=0, ExprId c=0, ExprId d=0)
 
ExprId AddInstruction (ExprId expr)
 
ExprId Nop (const ILSourceLocation &loc=ILSourceLocation())
 
ExprId SetRegister (size_t size, uint32_t reg, ExprId val, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId SetRegisterSplit (size_t size, uint32_t high, uint32_t low, ExprId val, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId SetRegisterSSA (size_t size, const SSARegister &reg, ExprId val, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId SetRegisterSSAPartial (size_t size, const SSARegister &fullReg, uint32_t partialReg, ExprId val, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId SetRegisterSplitSSA (size_t size, const SSARegister &high, const SSARegister &low, ExprId val, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId SetRegisterStackTopRelative (size_t size, uint32_t regStack, ExprId entry, ExprId val, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId RegisterStackPush (size_t size, uint32_t regStack, ExprId val, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId SetRegisterStackTopRelativeSSA (size_t size, uint32_t regStack, size_t destVersion, size_t srcVersion, ExprId entry, const SSARegister &top, ExprId val, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId SetRegisterStackAbsoluteSSA (size_t size, uint32_t regStack, size_t destVersion, size_t srcVersion, uint32_t reg, ExprId val, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId SetFlag (uint32_t flag, ExprId val, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId SetFlagSSA (const SSAFlag &flag, ExprId val, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId Load (size_t size, ExprId addr, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId LoadSSA (size_t size, ExprId addr, size_t sourceMemoryVer, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId Store (size_t size, ExprId addr, ExprId val, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId StoreSSA (size_t size, ExprId addr, ExprId val, size_t newMemoryVer, size_t prevMemoryVer, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId Push (size_t size, ExprId val, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId Pop (size_t size, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId Register (size_t size, uint32_t reg, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId RegisterSSA (size_t size, const SSARegister &reg, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId RegisterSSAPartial (size_t size, const SSARegister &fullReg, uint32_t partialReg, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId RegisterSplit (size_t size, uint32_t high, uint32_t low, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId RegisterSplitSSA (size_t size, const SSARegister &high, const SSARegister &low, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId RegisterStackTopRelative (size_t size, uint32_t regStack, ExprId entry, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId RegisterStackPop (size_t size, uint32_t regStack, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId RegisterStackFreeReg (uint32_t reg, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId RegisterStackFreeTopRelative (uint32_t regStack, ExprId entry, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId RegisterStackTopRelativeSSA (size_t size, const SSARegisterStack &regStack, ExprId entry, const SSARegister &top, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId RegisterStackAbsoluteSSA (size_t size, const SSARegisterStack &regStack, uint32_t reg, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId RegisterStackFreeTopRelativeSSA (uint32_t regStack, size_t destVersion, size_t srcVersion, ExprId entry, const SSARegister &top, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId RegisterStackFreeAbsoluteSSA (uint32_t regStack, size_t destVersion, size_t srcVersion, uint32_t reg, 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 Flag (uint32_t flag, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId FlagSSA (const SSAFlag &flag, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId FlagBit (size_t size, uint32_t flag, size_t bitIndex, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId FlagBitSSA (size_t size, const SSAFlag &flag, size_t bitIndex, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId Add (size_t size, ExprId a, ExprId b, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId AddCarry (size_t size, ExprId a, ExprId b, ExprId carry, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId Sub (size_t size, ExprId a, ExprId b, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId SubBorrow (size_t size, ExprId a, ExprId b, ExprId carry, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId And (size_t size, ExprId a, ExprId b, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId Or (size_t size, ExprId a, ExprId b, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId Xor (size_t size, ExprId a, ExprId b, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId ShiftLeft (size_t size, ExprId a, ExprId b, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId LogicalShiftRight (size_t size, ExprId a, ExprId b, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId ArithShiftRight (size_t size, ExprId a, ExprId b, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId RotateLeft (size_t size, ExprId a, ExprId b, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId RotateLeftCarry (size_t size, ExprId a, ExprId b, ExprId carry, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId RotateRight (size_t size, ExprId a, ExprId b, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId RotateRightCarry (size_t size, ExprId a, ExprId b, ExprId carry, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId Mult (size_t size, ExprId a, ExprId b, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId MultDoublePrecUnsigned (size_t size, ExprId a, ExprId b, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId MultDoublePrecSigned (size_t size, ExprId a, ExprId b, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId DivUnsigned (size_t size, ExprId a, ExprId b, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId DivDoublePrecUnsigned (size_t size, ExprId a, ExprId b, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId DivSigned (size_t size, ExprId a, ExprId b, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId DivDoublePrecSigned (size_t size, ExprId a, ExprId b, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId ModUnsigned (size_t size, ExprId a, ExprId b, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId ModDoublePrecUnsigned (size_t size, ExprId a, ExprId b, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId ModSigned (size_t size, ExprId a, ExprId b, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId ModDoublePrecSigned (size_t size, ExprId a, ExprId b, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId Neg (size_t size, ExprId a, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId Not (size_t size, ExprId a, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId SignExtend (size_t size, ExprId a, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId ZeroExtend (size_t size, ExprId a, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId LowPart (size_t size, ExprId a, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId Jump (ExprId dest, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId JumpTo (ExprId dest, const std::map< uint64_t, BNLowLevelILLabel * > &targets, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId Call (ExprId dest, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId CallStackAdjust (ExprId dest, int64_t adjust, const std::map< uint32_t, int32_t > &regStackAdjust, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId TailCall (ExprId dest, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId CallSSA (const std::vector< SSARegister > &output, ExprId dest, const std::vector< ExprId > &params, const SSARegister &stack, size_t newMemoryVer, size_t prevMemoryVer, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId SystemCallSSA (const std::vector< SSARegister > &output, const std::vector< ExprId > &params, const SSARegister &stack, size_t newMemoryVer, size_t prevMemoryVer, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId TailCallSSA (const std::vector< SSARegister > &output, ExprId dest, const std::vector< ExprId > &params, const SSARegister &stack, size_t newMemoryVer, size_t prevMemoryVer, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId Return (size_t dest, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId NoReturn (const ILSourceLocation &loc=ILSourceLocation())
 
ExprId FlagCondition (BNLowLevelILFlagCondition cond, uint32_t semClass=0, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId FlagGroup (uint32_t semGroup, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId CompareEqual (size_t size, ExprId a, ExprId b, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId CompareNotEqual (size_t size, ExprId a, ExprId b, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId CompareSignedLessThan (size_t size, ExprId a, ExprId b, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId CompareUnsignedLessThan (size_t size, ExprId a, ExprId b, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId CompareSignedLessEqual (size_t size, ExprId a, ExprId b, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId CompareUnsignedLessEqual (size_t size, ExprId a, ExprId b, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId CompareSignedGreaterEqual (size_t size, ExprId a, ExprId b, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId CompareUnsignedGreaterEqual (size_t size, ExprId a, ExprId b, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId CompareSignedGreaterThan (size_t size, ExprId a, ExprId b, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId CompareUnsignedGreaterThan (size_t size, ExprId a, ExprId b, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId TestBit (size_t size, ExprId a, ExprId b, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId BoolToInt (size_t size, ExprId a, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId SystemCall (const ILSourceLocation &loc=ILSourceLocation())
 
ExprId Intrinsic (const std::vector< RegisterOrFlag > &outputs, uint32_t intrinsic, const std::vector< ExprId > &params, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId IntrinsicSSA (const std::vector< SSARegisterOrFlag > &outputs, uint32_t intrinsic, const std::vector< ExprId > &params, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId Breakpoint (const ILSourceLocation &loc=ILSourceLocation())
 
ExprId Trap (int64_t num, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId Undefined (const ILSourceLocation &loc=ILSourceLocation())
 
ExprId Unimplemented (const ILSourceLocation &loc=ILSourceLocation())
 
ExprId UnimplementedMemoryRef (size_t size, ExprId addr, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId RegisterPhi (const SSARegister &dest, const std::vector< SSARegister > &sources, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId RegisterStackPhi (const SSARegisterStack &dest, const std::vector< SSARegisterStack > &sources, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId FlagPhi (const SSAFlag &dest, const std::vector< SSAFlag > &sources, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId MemoryPhi (size_t dest, const std::vector< size_t > &sources, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId FloatAdd (size_t size, ExprId a, ExprId b, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId FloatSub (size_t size, ExprId a, ExprId b, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId FloatMult (size_t size, ExprId a, ExprId b, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId FloatDiv (size_t size, ExprId a, ExprId b, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId FloatSqrt (size_t size, ExprId a, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId FloatNeg (size_t size, ExprId a, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId FloatAbs (size_t size, ExprId a, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId FloatToInt (size_t size, ExprId a, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId IntToFloat (size_t size, ExprId a, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId FloatConvert (size_t size, ExprId a, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId RoundToInt (size_t size, ExprId a, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId Floor (size_t size, ExprId a, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId Ceil (size_t size, ExprId a, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId FloatTrunc (size_t size, ExprId a, uint32_t flags=0, 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 (BNLowLevelILLabel &label, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId If (ExprId operand, BNLowLevelILLabel &t, BNLowLevelILLabel &f, const ILSourceLocation &loc=ILSourceLocation())
 
void MarkLabel (BNLowLevelILLabel &label)
 
std::vector< uint64_t > GetOperandList (ExprId i, size_t listOperand)
 
ExprId AddLabelMap (const std::map< uint64_t, BNLowLevelILLabel * > &labels)
 
ExprId AddOperandList (const std::vector< ExprId > operands)
 
ExprId AddIndexList (const std::vector< size_t > operands)
 
ExprId AddRegisterOrFlagList (const std::vector< RegisterOrFlag > &regs)
 
ExprId AddSSARegisterList (const std::vector< SSARegister > &regs)
 
ExprId AddSSARegisterStackList (const std::vector< SSARegisterStack > &regStacks)
 
ExprId AddSSAFlagList (const std::vector< SSAFlag > &flags)
 
ExprId AddSSARegisterOrFlagList (const std::vector< SSARegisterOrFlag > &regs)
 
ExprId GetExprForRegisterOrConstant (const BNRegisterOrConstant &operand, size_t size)
 
ExprId GetNegExprForRegisterOrConstant (const BNRegisterOrConstant &operand, size_t size)
 
ExprId GetExprForFlagOrConstant (const BNRegisterOrConstant &operand)
 
ExprId GetExprForRegisterOrConstantOperation (BNLowLevelILOperation op, size_t size, BNRegisterOrConstant *operands, size_t operandCount)
 
ExprId Operand (size_t n, ExprId expr)
 
BNLowLevelILInstruction GetRawExpr (size_t i) const
 
LowLevelILInstruction operator[] (size_t i)
 
LowLevelILInstruction GetInstruction (size_t i)
 
LowLevelILInstruction 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 ReplaceExpr (size_t expr, size_t newExpr)
 
void AddLabelForAddress (Architecture *arch, ExprId addr)
 
BNLowLevelILLabelGetLabelForAddress (Architecture *arch, ExprId addr)
 
void Finalize ()
 
void GenerateSSAForm ()
 
bool GetExprText (Architecture *arch, ExprId expr, std::vector< InstructionTextToken > &tokens)
 
bool GetInstructionText (Function *func, Architecture *arch, size_t i, std::vector< InstructionTextToken > &tokens)
 
uint32_t GetTemporaryRegisterCount ()
 
uint32_t GetTemporaryFlagCount ()
 
std::vector< Ref< BasicBlock > > GetBasicBlocks () const
 
Ref< BasicBlockGetBasicBlockForInstruction (size_t i) const
 
Ref< LowLevelILFunctionGetSSAForm () const
 
Ref< LowLevelILFunctionGetNonSSAForm () 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 GetSSARegisterDefinition (const SSARegister &reg) const
 
size_t GetSSAFlagDefinition (const SSAFlag &flag) const
 
size_t GetSSAMemoryDefinition (size_t version) const
 
std::set< size_t > GetSSARegisterUses (const SSARegister &reg) const
 
std::set< size_t > GetSSAFlagUses (const SSAFlag &flag) const
 
std::set< size_t > GetSSAMemoryUses (size_t version) const
 
RegisterValue GetSSARegisterValue (const SSARegister &reg)
 
RegisterValue GetSSAFlagValue (const SSAFlag &flag)
 
RegisterValue GetExprValue (size_t expr)
 
RegisterValue GetExprValue (const LowLevelILInstruction &expr)
 
PossibleValueSet GetPossibleExprValues (size_t expr, const std::set< BNDataFlowQueryOption > &options=std::set< BNDataFlowQueryOption >())
 
PossibleValueSet GetPossibleExprValues (const LowLevelILInstruction &expr, const std::set< BNDataFlowQueryOption > &options=std::set< BNDataFlowQueryOption >())
 
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 >())
 
Ref< MediumLevelILFunctionGetMediumLevelIL () const
 
Ref< MediumLevelILFunctionGetMappedMediumLevelIL () const
 
size_t GetMediumLevelILInstructionIndex (size_t instr) const
 
size_t GetMediumLevelILExprIndex (size_t expr) const
 
std::set< size_t > GetMediumLevelILExprIndexes (size_t expr) const
 
size_t GetMappedMediumLevelILInstructionIndex (size_t instr) const
 
size_t GetMappedMediumLevelILExprIndex (size_t expr) const
 
Ref< FlowGraphCreateFunctionGraph (DisassemblySettings *settings=nullptr)
 
- Public Member Functions inherited from BinaryNinja::CoreRefCountObject< BNLowLevelILFunction, BNNewLowLevelILFunctionReference, BNFreeLowLevelILFunction >
 CoreRefCountObject ()
 
virtual ~CoreRefCountObject ()
 
BNLowLevelILFunction * GetObject () const
 
void AddRef ()
 
void Release ()
 
void AddRefForRegistration ()
 
void ReleaseForRegistration ()
 

Static Public Member Functions

static bool IsConstantType (BNLowLevelILOperation type)
 
- Static Public Member Functions inherited from BinaryNinja::CoreRefCountObject< BNLowLevelILFunction, BNNewLowLevelILFunctionReference, BNFreeLowLevelILFunction >
static BNLowLevelILFunction * GetObject (CoreRefCountObject *obj)
 

Additional Inherited Members

- Public Attributes inherited from BinaryNinja::CoreRefCountObject< BNLowLevelILFunction, BNNewLowLevelILFunctionReference, BNFreeLowLevelILFunction >
std::atomic< int > m_refs
 
bool m_registeredRef
 
BNLowLevelILFunction * m_object
 

Constructor & Destructor Documentation

◆ LowLevelILFunction() [1/2]

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

◆ LowLevelILFunction() [2/2]

LowLevelILFunction::LowLevelILFunction ( BNLowLevelILFunction *  func)

Member Function Documentation

◆ Add()

ExprId LowLevelILFunction::Add ( size_t  size,
ExprId  a,
ExprId  b,
uint32_t  flags = 0,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ AddCarry()

ExprId LowLevelILFunction::AddCarry ( size_t  size,
ExprId  a,
ExprId  b,
ExprId  carry,
uint32_t  flags = 0,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ AddExpr()

ExprId LowLevelILFunction::AddExpr ( BNLowLevelILOperation  operation,
size_t  size,
uint32_t  flags,
ExprId  a = 0,
ExprId  b = 0,
ExprId  c = 0,
ExprId  d = 0 
)

◆ AddExprWithLocation() [1/2]

ExprId LowLevelILFunction::AddExprWithLocation ( BNLowLevelILOperation  operation,
const ILSourceLocation loc,
size_t  size,
uint32_t  flags,
ExprId  a = 0,
ExprId  b = 0,
ExprId  c = 0,
ExprId  d = 0 
)

◆ AddExprWithLocation() [2/2]

ExprId LowLevelILFunction::AddExprWithLocation ( BNLowLevelILOperation  operation,
uint64_t  addr,
uint32_t  sourceOperand,
size_t  size,
uint32_t  flags,
ExprId  a = 0,
ExprId  b = 0,
ExprId  c = 0,
ExprId  d = 0 
)

◆ AddIndexList()

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

◆ AddInstruction()

ExprId LowLevelILFunction::AddInstruction ( ExprId  expr)

◆ AddLabelForAddress()

void LowLevelILFunction::AddLabelForAddress ( Architecture arch,
ExprId  addr 
)

◆ AddLabelMap()

ExprId LowLevelILFunction::AddLabelMap ( const std::map< uint64_t, BNLowLevelILLabel * > &  labels)

◆ AddOperandList()

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

◆ AddRegisterOrFlagList()

ExprId LowLevelILFunction::AddRegisterOrFlagList ( const std::vector< RegisterOrFlag > &  regs)

◆ AddSSAFlagList()

ExprId LowLevelILFunction::AddSSAFlagList ( const std::vector< SSAFlag > &  flags)

◆ AddSSARegisterList()

ExprId LowLevelILFunction::AddSSARegisterList ( const std::vector< SSARegister > &  regs)

◆ AddSSARegisterOrFlagList()

ExprId LowLevelILFunction::AddSSARegisterOrFlagList ( const std::vector< SSARegisterOrFlag > &  regs)

◆ AddSSARegisterStackList()

ExprId LowLevelILFunction::AddSSARegisterStackList ( const std::vector< SSARegisterStack > &  regStacks)

◆ And()

ExprId LowLevelILFunction::And ( size_t  size,
ExprId  a,
ExprId  b,
uint32_t  flags = 0,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ ArithShiftRight()

ExprId LowLevelILFunction::ArithShiftRight ( size_t  size,
ExprId  a,
ExprId  b,
uint32_t  flags = 0,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ BoolToInt()

ExprId LowLevelILFunction::BoolToInt ( size_t  size,
ExprId  a,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ Breakpoint()

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

◆ Call()

ExprId LowLevelILFunction::Call ( ExprId  dest,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ CallSSA()

ExprId LowLevelILFunction::CallSSA ( const std::vector< SSARegister > &  output,
ExprId  dest,
const std::vector< ExprId > &  params,
const SSARegister stack,
size_t  newMemoryVer,
size_t  prevMemoryVer,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ CallStackAdjust()

ExprId LowLevelILFunction::CallStackAdjust ( ExprId  dest,
int64_t  adjust,
const std::map< uint32_t, int32_t > &  regStackAdjust,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ Ceil()

ExprId LowLevelILFunction::Ceil ( size_t  size,
ExprId  a,
uint32_t  flags = 0,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ ClearIndirectBranches()

void LowLevelILFunction::ClearIndirectBranches ( )

◆ CompareEqual()

ExprId LowLevelILFunction::CompareEqual ( size_t  size,
ExprId  a,
ExprId  b,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ CompareNotEqual()

ExprId LowLevelILFunction::CompareNotEqual ( size_t  size,
ExprId  a,
ExprId  b,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ CompareSignedGreaterEqual()

ExprId LowLevelILFunction::CompareSignedGreaterEqual ( size_t  size,
ExprId  a,
ExprId  b,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ CompareSignedGreaterThan()

ExprId LowLevelILFunction::CompareSignedGreaterThan ( size_t  size,
ExprId  a,
ExprId  b,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ CompareSignedLessEqual()

ExprId LowLevelILFunction::CompareSignedLessEqual ( size_t  size,
ExprId  a,
ExprId  b,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ CompareSignedLessThan()

ExprId LowLevelILFunction::CompareSignedLessThan ( size_t  size,
ExprId  a,
ExprId  b,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ CompareUnsignedGreaterEqual()

ExprId LowLevelILFunction::CompareUnsignedGreaterEqual ( size_t  size,
ExprId  a,
ExprId  b,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ CompareUnsignedGreaterThan()

ExprId LowLevelILFunction::CompareUnsignedGreaterThan ( size_t  size,
ExprId  a,
ExprId  b,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ CompareUnsignedLessEqual()

ExprId LowLevelILFunction::CompareUnsignedLessEqual ( size_t  size,
ExprId  a,
ExprId  b,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ CompareUnsignedLessThan()

ExprId LowLevelILFunction::CompareUnsignedLessThan ( size_t  size,
ExprId  a,
ExprId  b,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ Const()

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

◆ ConstPointer()

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

◆ CreateFunctionGraph()

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

◆ DivDoublePrecSigned()

ExprId LowLevelILFunction::DivDoublePrecSigned ( size_t  size,
ExprId  a,
ExprId  b,
uint32_t  flags = 0,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ DivDoublePrecUnsigned()

ExprId LowLevelILFunction::DivDoublePrecUnsigned ( size_t  size,
ExprId  a,
ExprId  b,
uint32_t  flags = 0,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ DivSigned()

ExprId LowLevelILFunction::DivSigned ( size_t  size,
ExprId  a,
ExprId  b,
uint32_t  flags = 0,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ DivUnsigned()

ExprId LowLevelILFunction::DivUnsigned ( size_t  size,
ExprId  a,
ExprId  b,
uint32_t  flags = 0,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ ExternPointer()

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

◆ Finalize()

void LowLevelILFunction::Finalize ( )

◆ Flag()

ExprId LowLevelILFunction::Flag ( uint32_t  flag,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ FlagBit()

ExprId LowLevelILFunction::FlagBit ( size_t  size,
uint32_t  flag,
size_t  bitIndex,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ FlagBitSSA()

ExprId LowLevelILFunction::FlagBitSSA ( size_t  size,
const SSAFlag flag,
size_t  bitIndex,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ FlagCondition()

ExprId LowLevelILFunction::FlagCondition ( BNLowLevelILFlagCondition  cond,
uint32_t  semClass = 0,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ FlagGroup()

ExprId LowLevelILFunction::FlagGroup ( uint32_t  semGroup,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ FlagPhi()

ExprId LowLevelILFunction::FlagPhi ( const SSAFlag dest,
const std::vector< SSAFlag > &  sources,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ FlagSSA()

ExprId LowLevelILFunction::FlagSSA ( const SSAFlag flag,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ FloatAbs()

ExprId LowLevelILFunction::FloatAbs ( size_t  size,
ExprId  a,
uint32_t  flags = 0,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ FloatAdd()

ExprId LowLevelILFunction::FloatAdd ( size_t  size,
ExprId  a,
ExprId  b,
uint32_t  flags = 0,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ FloatCompareEqual()

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

◆ FloatCompareGreaterEqual()

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

◆ FloatCompareGreaterThan()

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

◆ FloatCompareLessEqual()

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

◆ FloatCompareLessThan()

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

◆ FloatCompareNotEqual()

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

◆ FloatCompareOrdered()

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

◆ FloatCompareUnordered()

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

◆ FloatConstDouble()

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

◆ FloatConstRaw()

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

◆ FloatConstSingle()

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

◆ FloatConvert()

ExprId LowLevelILFunction::FloatConvert ( size_t  size,
ExprId  a,
uint32_t  flags = 0,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ FloatDiv()

ExprId LowLevelILFunction::FloatDiv ( size_t  size,
ExprId  a,
ExprId  b,
uint32_t  flags = 0,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ FloatMult()

ExprId LowLevelILFunction::FloatMult ( size_t  size,
ExprId  a,
ExprId  b,
uint32_t  flags = 0,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ FloatNeg()

ExprId LowLevelILFunction::FloatNeg ( size_t  size,
ExprId  a,
uint32_t  flags = 0,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ FloatSqrt()

ExprId LowLevelILFunction::FloatSqrt ( size_t  size,
ExprId  a,
uint32_t  flags = 0,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ FloatSub()

ExprId LowLevelILFunction::FloatSub ( size_t  size,
ExprId  a,
ExprId  b,
uint32_t  flags = 0,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ FloatToInt()

ExprId LowLevelILFunction::FloatToInt ( size_t  size,
ExprId  a,
uint32_t  flags = 0,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ FloatTrunc()

ExprId LowLevelILFunction::FloatTrunc ( size_t  size,
ExprId  a,
uint32_t  flags = 0,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ Floor()

ExprId LowLevelILFunction::Floor ( size_t  size,
ExprId  a,
uint32_t  flags = 0,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ GenerateSSAForm()

void LowLevelILFunction::GenerateSSAForm ( )

◆ GetArchitecture()

Ref< Architecture > LowLevelILFunction::GetArchitecture ( ) const

◆ GetBasicBlockForInstruction()

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

◆ GetBasicBlocks()

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

◆ GetCurrentAddress()

uint64_t LowLevelILFunction::GetCurrentAddress ( ) const

◆ GetExpr()

LowLevelILInstruction LowLevelILFunction::GetExpr ( size_t  i)

◆ GetExprCount()

size_t LowLevelILFunction::GetExprCount ( ) const

◆ GetExprForFlagOrConstant()

ExprId LowLevelILFunction::GetExprForFlagOrConstant ( const BNRegisterOrConstant operand)

◆ GetExprForRegisterOrConstant()

ExprId LowLevelILFunction::GetExprForRegisterOrConstant ( const BNRegisterOrConstant operand,
size_t  size 
)

◆ GetExprForRegisterOrConstantOperation()

ExprId LowLevelILFunction::GetExprForRegisterOrConstantOperation ( BNLowLevelILOperation  op,
size_t  size,
BNRegisterOrConstant operands,
size_t  operandCount 
)

◆ GetExprText()

bool LowLevelILFunction::GetExprText ( Architecture arch,
ExprId  expr,
std::vector< InstructionTextToken > &  tokens 
)

◆ GetExprValue() [1/2]

RegisterValue LowLevelILFunction::GetExprValue ( const LowLevelILInstruction expr)

◆ GetExprValue() [2/2]

RegisterValue LowLevelILFunction::GetExprValue ( size_t  expr)

◆ GetFlagValueAfterInstruction()

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

◆ GetFlagValueAtInstruction()

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

◆ GetFunction()

Ref< Function > LowLevelILFunction::GetFunction ( ) const

◆ GetIndexForInstruction()

size_t LowLevelILFunction::GetIndexForInstruction ( size_t  i) const

◆ GetInstruction()

LowLevelILInstruction LowLevelILFunction::GetInstruction ( size_t  i)

◆ GetInstructionCount()

size_t LowLevelILFunction::GetInstructionCount ( ) const

◆ GetInstructionForExpr()

size_t LowLevelILFunction::GetInstructionForExpr ( size_t  expr) const

◆ GetInstructionStart()

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

◆ GetInstructionText()

bool LowLevelILFunction::GetInstructionText ( Function func,
Architecture arch,
size_t  i,
std::vector< InstructionTextToken > &  tokens 
)

◆ GetLabelForAddress()

BNLowLevelILLabel * LowLevelILFunction::GetLabelForAddress ( Architecture arch,
ExprId  addr 
)

◆ GetLabelForSourceInstruction()

BNLowLevelILLabel * LowLevelILFunction::GetLabelForSourceInstruction ( size_t  i)

◆ GetMappedMediumLevelIL()

Ref< MediumLevelILFunction > LowLevelILFunction::GetMappedMediumLevelIL ( ) const

◆ GetMappedMediumLevelILExprIndex()

size_t LowLevelILFunction::GetMappedMediumLevelILExprIndex ( size_t  expr) const

◆ GetMappedMediumLevelILInstructionIndex()

size_t LowLevelILFunction::GetMappedMediumLevelILInstructionIndex ( size_t  instr) const

◆ GetMediumLevelIL()

Ref< MediumLevelILFunction > LowLevelILFunction::GetMediumLevelIL ( ) const

◆ GetMediumLevelILExprIndex()

size_t LowLevelILFunction::GetMediumLevelILExprIndex ( size_t  expr) const

◆ GetMediumLevelILExprIndexes()

set< size_t > LowLevelILFunction::GetMediumLevelILExprIndexes ( size_t  expr) const

◆ GetMediumLevelILInstructionIndex()

size_t LowLevelILFunction::GetMediumLevelILInstructionIndex ( size_t  instr) const

◆ GetNegExprForRegisterOrConstant()

ExprId LowLevelILFunction::GetNegExprForRegisterOrConstant ( const BNRegisterOrConstant operand,
size_t  size 
)

◆ GetNonSSAExprIndex()

size_t LowLevelILFunction::GetNonSSAExprIndex ( size_t  instr) const

◆ GetNonSSAForm()

Ref< LowLevelILFunction > LowLevelILFunction::GetNonSSAForm ( ) const

◆ GetNonSSAInstructionIndex()

size_t LowLevelILFunction::GetNonSSAInstructionIndex ( size_t  instr) const

◆ GetOperandList()

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

◆ GetPossibleExprValues() [1/2]

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

◆ GetPossibleExprValues() [2/2]

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

◆ GetPossibleFlagValuesAfterInstruction()

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

◆ GetPossibleFlagValuesAtInstruction()

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

◆ GetPossibleRegisterValuesAfterInstruction()

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

◆ GetPossibleRegisterValuesAtInstruction()

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

◆ GetPossibleStackContentsAfterInstruction()

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

◆ GetPossibleStackContentsAtInstruction()

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

◆ GetRawExpr()

BNLowLevelILInstruction LowLevelILFunction::GetRawExpr ( size_t  i) const

◆ GetRegisterValueAfterInstruction()

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

◆ GetRegisterValueAtInstruction()

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

◆ GetSSAExprIndex()

size_t LowLevelILFunction::GetSSAExprIndex ( size_t  instr) const

◆ GetSSAFlagDefinition()

size_t LowLevelILFunction::GetSSAFlagDefinition ( const SSAFlag flag) const

◆ GetSSAFlagUses()

set< size_t > LowLevelILFunction::GetSSAFlagUses ( const SSAFlag flag) const

◆ GetSSAFlagValue()

RegisterValue LowLevelILFunction::GetSSAFlagValue ( const SSAFlag flag)

◆ GetSSAForm()

Ref< LowLevelILFunction > LowLevelILFunction::GetSSAForm ( ) const

◆ GetSSAInstructionIndex()

size_t LowLevelILFunction::GetSSAInstructionIndex ( size_t  instr) const

◆ GetSSAMemoryDefinition()

size_t LowLevelILFunction::GetSSAMemoryDefinition ( size_t  version) const

◆ GetSSAMemoryUses()

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

◆ GetSSARegisterDefinition()

size_t LowLevelILFunction::GetSSARegisterDefinition ( const SSARegister reg) const

◆ GetSSARegisterUses()

set< size_t > LowLevelILFunction::GetSSARegisterUses ( const SSARegister reg) const

◆ GetSSARegisterValue()

RegisterValue LowLevelILFunction::GetSSARegisterValue ( const SSARegister reg)

◆ GetStackContentsAfterInstruction()

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

◆ GetStackContentsAtInstruction()

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

◆ GetTemporaryFlagCount()

uint32_t LowLevelILFunction::GetTemporaryFlagCount ( )

◆ GetTemporaryRegisterCount()

uint32_t LowLevelILFunction::GetTemporaryRegisterCount ( )

◆ Goto()

ExprId LowLevelILFunction::Goto ( BNLowLevelILLabel label,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ If()

ExprId LowLevelILFunction::If ( ExprId  operand,
BNLowLevelILLabel t,
BNLowLevelILLabel f,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ Intrinsic()

ExprId LowLevelILFunction::Intrinsic ( const std::vector< RegisterOrFlag > &  outputs,
uint32_t  intrinsic,
const std::vector< ExprId > &  params,
uint32_t  flags = 0,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ IntrinsicSSA()

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

◆ IntToFloat()

ExprId LowLevelILFunction::IntToFloat ( size_t  size,
ExprId  a,
uint32_t  flags = 0,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ IsConstantType()

static bool BinaryNinja::LowLevelILFunction::IsConstantType ( BNLowLevelILOperation  type)
inlinestatic

◆ Jump()

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

◆ JumpTo()

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

◆ Load()

ExprId LowLevelILFunction::Load ( size_t  size,
ExprId  addr,
uint32_t  flags = 0,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ LoadSSA()

ExprId LowLevelILFunction::LoadSSA ( size_t  size,
ExprId  addr,
size_t  sourceMemoryVer,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ LogicalShiftRight()

ExprId LowLevelILFunction::LogicalShiftRight ( size_t  size,
ExprId  a,
ExprId  b,
uint32_t  flags = 0,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ LowPart()

ExprId LowLevelILFunction::LowPart ( size_t  size,
ExprId  a,
uint32_t  flags = 0,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ MarkLabel()

void LowLevelILFunction::MarkLabel ( BNLowLevelILLabel label)

◆ MemoryPhi()

ExprId LowLevelILFunction::MemoryPhi ( size_t  dest,
const std::vector< size_t > &  sources,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ ModDoublePrecSigned()

ExprId LowLevelILFunction::ModDoublePrecSigned ( size_t  size,
ExprId  a,
ExprId  b,
uint32_t  flags = 0,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ ModDoublePrecUnsigned()

ExprId LowLevelILFunction::ModDoublePrecUnsigned ( size_t  size,
ExprId  a,
ExprId  b,
uint32_t  flags = 0,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ ModSigned()

ExprId LowLevelILFunction::ModSigned ( size_t  size,
ExprId  a,
ExprId  b,
uint32_t  flags = 0,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ ModUnsigned()

ExprId LowLevelILFunction::ModUnsigned ( size_t  size,
ExprId  a,
ExprId  b,
uint32_t  flags = 0,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ Mult()

ExprId LowLevelILFunction::Mult ( size_t  size,
ExprId  a,
ExprId  b,
uint32_t  flags = 0,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ MultDoublePrecSigned()

ExprId LowLevelILFunction::MultDoublePrecSigned ( size_t  size,
ExprId  a,
ExprId  b,
uint32_t  flags = 0,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ MultDoublePrecUnsigned()

ExprId LowLevelILFunction::MultDoublePrecUnsigned ( size_t  size,
ExprId  a,
ExprId  b,
uint32_t  flags = 0,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ Neg()

ExprId LowLevelILFunction::Neg ( size_t  size,
ExprId  a,
uint32_t  flags = 0,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ Nop()

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

◆ NoReturn()

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

◆ Not()

ExprId LowLevelILFunction::Not ( size_t  size,
ExprId  a,
uint32_t  flags = 0,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ Operand()

ExprId LowLevelILFunction::Operand ( size_t  n,
ExprId  expr 
)

◆ operator[]()

LowLevelILInstruction LowLevelILFunction::operator[] ( size_t  i)

◆ Or()

ExprId LowLevelILFunction::Or ( size_t  size,
ExprId  a,
ExprId  b,
uint32_t  flags = 0,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ Pop()

ExprId LowLevelILFunction::Pop ( size_t  size,
uint32_t  flags = 0,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ PrepareToCopyBlock()

void LowLevelILFunction::PrepareToCopyBlock ( BasicBlock block)

◆ PrepareToCopyFunction()

void LowLevelILFunction::PrepareToCopyFunction ( LowLevelILFunction func)

◆ Push()

ExprId LowLevelILFunction::Push ( size_t  size,
ExprId  val,
uint32_t  flags = 0,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ Register()

ExprId LowLevelILFunction::Register ( size_t  size,
uint32_t  reg,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ RegisterPhi()

ExprId LowLevelILFunction::RegisterPhi ( const SSARegister dest,
const std::vector< SSARegister > &  sources,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ RegisterSplit()

ExprId LowLevelILFunction::RegisterSplit ( size_t  size,
uint32_t  high,
uint32_t  low,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ RegisterSplitSSA()

ExprId LowLevelILFunction::RegisterSplitSSA ( size_t  size,
const SSARegister high,
const SSARegister low,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ RegisterSSA()

ExprId LowLevelILFunction::RegisterSSA ( size_t  size,
const SSARegister reg,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ RegisterSSAPartial()

ExprId LowLevelILFunction::RegisterSSAPartial ( size_t  size,
const SSARegister fullReg,
uint32_t  partialReg,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ RegisterStackAbsoluteSSA()

ExprId LowLevelILFunction::RegisterStackAbsoluteSSA ( size_t  size,
const SSARegisterStack regStack,
uint32_t  reg,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ RegisterStackFreeAbsoluteSSA()

ExprId LowLevelILFunction::RegisterStackFreeAbsoluteSSA ( uint32_t  regStack,
size_t  destVersion,
size_t  srcVersion,
uint32_t  reg,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ RegisterStackFreeReg()

ExprId LowLevelILFunction::RegisterStackFreeReg ( uint32_t  reg,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ RegisterStackFreeTopRelative()

ExprId LowLevelILFunction::RegisterStackFreeTopRelative ( uint32_t  regStack,
ExprId  entry,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ RegisterStackFreeTopRelativeSSA()

ExprId LowLevelILFunction::RegisterStackFreeTopRelativeSSA ( uint32_t  regStack,
size_t  destVersion,
size_t  srcVersion,
ExprId  entry,
const SSARegister top,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ RegisterStackPhi()

ExprId LowLevelILFunction::RegisterStackPhi ( const SSARegisterStack dest,
const std::vector< SSARegisterStack > &  sources,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ RegisterStackPop()

ExprId LowLevelILFunction::RegisterStackPop ( size_t  size,
uint32_t  regStack,
uint32_t  flags = 0,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ RegisterStackPush()

ExprId LowLevelILFunction::RegisterStackPush ( size_t  size,
uint32_t  regStack,
ExprId  val,
uint32_t  flags = 0,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ RegisterStackTopRelative()

ExprId LowLevelILFunction::RegisterStackTopRelative ( size_t  size,
uint32_t  regStack,
ExprId  entry,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ RegisterStackTopRelativeSSA()

ExprId LowLevelILFunction::RegisterStackTopRelativeSSA ( size_t  size,
const SSARegisterStack regStack,
ExprId  entry,
const SSARegister top,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ ReplaceExpr()

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

◆ Return()

ExprId LowLevelILFunction::Return ( size_t  dest,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ RotateLeft()

ExprId LowLevelILFunction::RotateLeft ( size_t  size,
ExprId  a,
ExprId  b,
uint32_t  flags = 0,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ RotateLeftCarry()

ExprId LowLevelILFunction::RotateLeftCarry ( size_t  size,
ExprId  a,
ExprId  b,
ExprId  carry,
uint32_t  flags = 0,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ RotateRight()

ExprId LowLevelILFunction::RotateRight ( size_t  size,
ExprId  a,
ExprId  b,
uint32_t  flags = 0,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ RotateRightCarry()

ExprId LowLevelILFunction::RotateRightCarry ( size_t  size,
ExprId  a,
ExprId  b,
ExprId  carry,
uint32_t  flags = 0,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ RoundToInt()

ExprId LowLevelILFunction::RoundToInt ( size_t  size,
ExprId  a,
uint32_t  flags = 0,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ SetCurrentAddress()

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

◆ SetFlag()

ExprId LowLevelILFunction::SetFlag ( uint32_t  flag,
ExprId  val,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ SetFlagSSA()

ExprId LowLevelILFunction::SetFlagSSA ( const SSAFlag flag,
ExprId  val,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ SetIndirectBranches()

void LowLevelILFunction::SetIndirectBranches ( const std::vector< ArchAndAddr > &  branches)

◆ SetRegister()

ExprId LowLevelILFunction::SetRegister ( size_t  size,
uint32_t  reg,
ExprId  val,
uint32_t  flags = 0,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ SetRegisterSplit()

ExprId LowLevelILFunction::SetRegisterSplit ( size_t  size,
uint32_t  high,
uint32_t  low,
ExprId  val,
uint32_t  flags = 0,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ SetRegisterSplitSSA()

ExprId LowLevelILFunction::SetRegisterSplitSSA ( size_t  size,
const SSARegister high,
const SSARegister low,
ExprId  val,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ SetRegisterSSA()

ExprId LowLevelILFunction::SetRegisterSSA ( size_t  size,
const SSARegister reg,
ExprId  val,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ SetRegisterSSAPartial()

ExprId LowLevelILFunction::SetRegisterSSAPartial ( size_t  size,
const SSARegister fullReg,
uint32_t  partialReg,
ExprId  val,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ SetRegisterStackAbsoluteSSA()

ExprId LowLevelILFunction::SetRegisterStackAbsoluteSSA ( size_t  size,
uint32_t  regStack,
size_t  destVersion,
size_t  srcVersion,
uint32_t  reg,
ExprId  val,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ SetRegisterStackTopRelative()

ExprId LowLevelILFunction::SetRegisterStackTopRelative ( size_t  size,
uint32_t  regStack,
ExprId  entry,
ExprId  val,
uint32_t  flags = 0,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ SetRegisterStackTopRelativeSSA()

ExprId LowLevelILFunction::SetRegisterStackTopRelativeSSA ( size_t  size,
uint32_t  regStack,
size_t  destVersion,
size_t  srcVersion,
ExprId  entry,
const SSARegister top,
ExprId  val,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ ShiftLeft()

ExprId LowLevelILFunction::ShiftLeft ( size_t  size,
ExprId  a,
ExprId  b,
uint32_t  flags = 0,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ SignExtend()

ExprId LowLevelILFunction::SignExtend ( size_t  size,
ExprId  a,
uint32_t  flags = 0,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ Store()

ExprId LowLevelILFunction::Store ( size_t  size,
ExprId  addr,
ExprId  val,
uint32_t  flags = 0,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ StoreSSA()

ExprId LowLevelILFunction::StoreSSA ( size_t  size,
ExprId  addr,
ExprId  val,
size_t  newMemoryVer,
size_t  prevMemoryVer,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ Sub()

ExprId LowLevelILFunction::Sub ( size_t  size,
ExprId  a,
ExprId  b,
uint32_t  flags = 0,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ SubBorrow()

ExprId LowLevelILFunction::SubBorrow ( size_t  size,
ExprId  a,
ExprId  b,
ExprId  carry,
uint32_t  flags = 0,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ SystemCall()

ExprId LowLevelILFunction::SystemCall ( const ILSourceLocation loc = ILSourceLocation())

◆ SystemCallSSA()

ExprId LowLevelILFunction::SystemCallSSA ( const std::vector< SSARegister > &  output,
const std::vector< ExprId > &  params,
const SSARegister stack,
size_t  newMemoryVer,
size_t  prevMemoryVer,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ TailCall()

ExprId LowLevelILFunction::TailCall ( ExprId  dest,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ TailCallSSA()

ExprId LowLevelILFunction::TailCallSSA ( const std::vector< SSARegister > &  output,
ExprId  dest,
const std::vector< ExprId > &  params,
const SSARegister stack,
size_t  newMemoryVer,
size_t  prevMemoryVer,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ TestBit()

ExprId LowLevelILFunction::TestBit ( size_t  size,
ExprId  a,
ExprId  b,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ Trap()

ExprId LowLevelILFunction::Trap ( int64_t  num,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ Undefined()

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

◆ Unimplemented()

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

◆ UnimplementedMemoryRef()

ExprId LowLevelILFunction::UnimplementedMemoryRef ( size_t  size,
ExprId  addr,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ UpdateInstructionOperand()

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

◆ Xor()

ExprId LowLevelILFunction::Xor ( size_t  size,
ExprId  a,
ExprId  b,
uint32_t  flags = 0,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ ZeroExtend()

ExprId LowLevelILFunction::ZeroExtend ( size_t  size,
ExprId  a,
uint32_t  flags = 0,
const ILSourceLocation loc = ILSourceLocation() 
)

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