code: def _apply_object_to_page(self, page_base, mo, page=None, overwrite=True):
          
          page_num = page_base // self._page_size
          try:
              page = self._get_page(page_num,
                                    write=True,
                                    create=not self.allow_segv) if page is None else page
          except KeyError:
              if self.allow_segv:
                  raise SimSegfaultError(mo.base, 'write-miss')
              else:
                  raise
          if self.allow_segv and not page.concrete_permissions & Page.PROT_WRITE:
              raise SimSegfaultError(mo.base, 'non-writable')
  
          page.store_mo(self.state, mo, overwrite=overwrite)
          return True
docs: Writes a memory object to a `page`
  
          :param page_base:   The base address of the page.
          :param mo:          The memory object.
          :param page:        (optional) the page to use.
          :param overwrite:   (optional) If False, only write to currently-empty memory.