(self)
return None
Find the AIL statement that saves the base pointer to a stack slot.

        :return:    A tuple of (block_addr, statement_idx, save_dst) or None if not found.
        :rtype:     tuple|None
Find the AIL statement that saves the base pointer to a stack slot.
Find the AIL statement that saves the base pointer to a stack slot .
def _find_baseptr_save_stmt(self):
        """
        Find the AIL statement that saves the base pointer to a stack slot.

        :return:    A tuple of (block_addr, statement_idx, save_dst) or None if not found.
        :rtype:     tuple|None
        """

        first_block = self._get_block(self._func.addr)
        if first_block is None:
            return None

        for idx, stmt in enumerate(first_block.statements):
            if isinstance(stmt, ailment.Stmt.Store) \
                    and isinstance(stmt.addr, ailment.Expr.StackBaseOffset) \
                    and isinstance(stmt.data, ailment.Expr.Register) \
                    and stmt.data.reg_offset == self.project.arch.bp_offset \
                    and stmt.addr.offset < 0:
                return first_block, idx, stmt.addr
            if isinstance(stmt, ailment.Stmt.Store) \
                    and isinstance(stmt.addr, ailment.Expr.StackBaseOffset) \
                    and isinstance(stmt.data, ailment.Expr.StackBaseOffset) \
                    and stmt.data.offset == 0 \
                    and stmt.addr.offset < 0:
                return first_block, idx, stmt.addr

        # Not found
        return None
def _find_baseptr_save_stmt ( self ) : first_block = self . _get_block ( self . _func . addr ) if first_block is None : return None for idx , stmt in enumerate ( first_block . statements ) : if isinstance ( stmt , ailment . Stmt . Store ) and isinstance ( stmt . addr , ailment . Expr . StackBaseOffset ) and isinstance ( stmt . data , ailment . Expr . Register ) and stmt . data . reg_offset == self . project . arch . bp_offset and stmt . addr . offset < 0 : return first_block , idx , stmt . addr if isinstance ( stmt , ailment . Stmt . Store ) and isinstance ( stmt . addr , ailment . Expr . StackBaseOffset ) and isinstance ( stmt . data , ailment . Expr . StackBaseOffset ) and stmt . data . offset == 0 and stmt . addr . offset < 0 : return first_block , idx , stmt . addr # Not found return None