docs: def _process_value(self, d, from_where):
          """
          Pre-process an AST for insertion into unicorn.
  
          :param d: the AST
          :param from_where: the ID of the memory region it comes from ('mem' or 'reg')
          :returns: the value to be inserted into Unicorn, or None
          """
          if len(d.annotations):
              l.debug("Blocking annotated AST.")
              return None
          elif not d.symbolic:
              return d
          else:
              l.debug("Processing AST with variables %s.", d.variables)
  
          dd = self._symbolic_passthrough(d)
  
          if not dd.symbolic:
              if d.symbolic:
                  l.debug("... concretized")
              return dd
          elif from_where == 'reg' and options.UNICORN_SYM_REGS_SUPPORT in self.state.options:
              l.debug("... allowing symbolic register")
              return dd
          else:
              l.debug("... denied")
              return None