MCPcopy Create free account
hub / github.com/Vector35/binaryninja-api / _get_reg_stack_adjust

Method _get_reg_stack_adjust

python/lowlevelil.py:1051–1065  ·  view source on GitHub ↗
(self, operand_index: int)

Source from the content-addressed store, hash-verified

1049 return LowLevelILInstruction.create(self.function, self.instr.operands[operand_index], self.instr_index)
1050
1051 def _get_reg_stack_adjust(self, operand_index: int) -> Dict['architecture.RegisterStackName', int]:
1052 count = ctypes.c_ulonglong()
1053 operand_list = core.BNLowLevelILGetOperandList(self.function.handle, self.expr_index, operand_index, count)
1054 assert operand_list is not None, "core.BNLowLevelILGetOperandList returned None"
1055 result: Dict['architecture.RegisterStackName', int] = {}
1056 try:
1057 for j in range(count.value // 2):
1058 reg_stack = operand_list[j * 2]
1059 adjust = operand_list[(j*2) + 1]
1060 if adjust & 0x80000000:
1061 adjust |= ~0x80000000
1062 result[self.function.arch.get_reg_stack_name(reg_stack)] = adjust
1063 return result
1064 finally:
1065 core.BNLowLevelILFreeOperandList(operand_list)
1066
1067 def _get_flag_ssa(self, operand_index1: int, operand_index2: int) -> SSAFlag:
1068 return SSAFlag(

Callers 1

reg_stack_adjustmentsMethod · 0.80

Calls 1

get_reg_stack_nameMethod · 0.80

Tested by

no test coverage detected