'Applies concretization strategies on the address until one of them succeeds.'

def _apply_concretization_strategies(self, addr, strategies, action):

    for s in strategies:
        e = addr
        self.state._inspect('address_concretization', BP_BEFORE, address_concretization_strategy=s, address_concretization_action=action, address_concretization_memory=self, address_concretization_expr=e, address_concretization_add_constraints=True)
        s = self.state._inspect_getattr('address_concretization_strategy', s)
        e = self.state._inspect_getattr('address_concretization_expr', addr)
        if (s is None):
            continue
        try:
            a = s.concretize(self, e)
        except SimUnsatError:
            a = None
        self.state._inspect('address_concretization', BP_AFTER, address_concretization_result=a)
        a = self.state._inspect_getattr('address_concretization_result', a)
        if (a is not None):
            return a
    raise SimMemoryAddressError(('Unable    to    concretize    address    for    %s    with    the    provided    strategies.' % action))
