'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'

def _process_value(self, d, from_where):

    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
