(self, richr_addr: RichR, data: RichR, size, stmt=None)
:param RichR addr:
        :param RichR data:
        :param int size:
        :return:
def _store(self, richr_addr: RichR, data: RichR, size, stmt=None):  # pylint:disable=unused-argument
        """

        :param RichR addr:
        :param RichR data:
        :param int size:
        :return:
        """

        addr: claripy.ast.Base = richr_addr.data
        stored = False

        if addr.concrete:
            # fully concrete. this is a global address
            self._store_to_global(addr._model_concrete.value, data, size, stmt=stmt)
            stored = True
        elif self._addr_has_concrete_base(addr) and self._parse_offseted_addr(addr) is not None:
            # we are storing to a concrete global address with an offset
            base_addr, offset, elem_size = self._parse_offseted_addr(addr)
            self._store_to_global(base_addr._model_concrete.value, data, size,
                                  stmt=stmt, offset=offset, elem_size=elem_size)
            stored = True
        else:
            if self.state.is_stack_address(addr):
                stack_offset = self.state.get_stack_offset(addr)
                if stack_offset is not None:
                    # Storing data to stack
                    self._store_to_stack(stack_offset, data, size, stmt=stmt)
                    stored = True

        if not stored:
            # storing to a location specified by a pointer whose value cannot be determined at this point
            self._store_to_variable(richr_addr, size, stmt=stmt)
def _store ( self , richr_addr : RichR , data : RichR , size , stmt = None ) : # pylint:disable=unused-argument addr : claripy . ast . Base = richr_addr . data stored = False if addr . concrete : # fully concrete. this is a global address self . _store_to_global ( addr . _model_concrete . value , data , size , stmt = stmt ) stored = True elif self . _addr_has_concrete_base ( addr ) and self . _parse_offseted_addr ( addr ) is not None : # we are storing to a concrete global address with an offset base_addr , offset , elem_size = self . _parse_offseted_addr ( addr ) self . _store_to_global ( base_addr . _model_concrete . value , data , size , stmt = stmt , offset = offset , elem_size = elem_size ) stored = True else : if self . state . is_stack_address ( addr ) : stack_offset = self . state . get_stack_offset ( addr ) if stack_offset is not None : # Storing data to stack self . _store_to_stack ( stack_offset , data , size , stmt = stmt ) stored = True if not stored : # storing to a location specified by a pointer whose value cannot be determined at this point self . _store_to_variable ( richr_addr , size , stmt = stmt )