# binaryninja.mediumlevelil.MediumLevelILInstruction

class `binaryninja.mediumlevelil.``MediumLevelILInstruction`(func, expr_index, instr_index=None)

  `class MediumLevelILInstruction` Medium Level Intermediate Language Instructions are infinite length tree-based instructions. Tree-based instructions use infix notation with the left hand operand being the destination operand. Infix notation is thus more natural to read than other notations (e.g. x86 `mov eax, 0` vs. MLIL `eax = 0`).

  `__init__`(func, expr_index, instr_index=None)

  Methods

  `__init__`(func, expr_index[, instr_index]) |
  `get_branch_dependence`(branch_instr) |
  `get_flag_value`(flag) |
  `get_flag_value_after`(flag) |
  `get_possible_flag_values`(flag) |
  `get_possible_flag_values_after`(flag) |
  `get_possible_reg_values`(reg) |
  `get_possible_reg_values_after`(reg) |
  `get_possible_stack_contents`(offset, size) |
  `get_possible_stack_contents_after`(offset, size) |
  `get_reg_value`(reg) |
  `get_reg_value_after`(reg) |
  `get_ssa_var_possible_values`(ssa_var) |
  `get_ssa_var_version`(var) |
  `get_stack_contents`(offset, size) |
  `get_stack_contents_after`(offset, size) |
  `get_var_for_flag`(flag) |
  `get_var_for_reg`(reg) |
  `get_var_for_stack_location`(offset) |

  Attributes

  `ILOperations` |
  `branch_dependence` | Set of branching instructions that must take the true or false path to reach this instruction
  `expr_type` | Type of expression
  `low_level_il` | Low level IL form of this expression
  `non_ssa_form` | Non-SSA form of expression (read-only)
  `possible_values` | Possible values of expression using path-sensitive static data flow analysis (read-only)
  `postfix_operands` | All operands in the expression tree in postfix order
  `prefix_operands` | All operands in the expression tree in prefix order
  `ssa_form` | SSA form of expression (read-only)
  `ssa_memory_version` | Version of active memory contents in SSA form for this instruction
  `tokens` | MLIL tokens (read-only)
  `value` | Value of expression if constant or a known value (read-only)
  `vars_read` | List of variables read by instruction
  `vars_written` | List of variables written by instruction