(job, indirect_jump_targets)
return successors
Convert each concrete indirect jump target into a SimState. If there are non-zero successors and the original
        jumpkind is a call, we also generate a fake-ret successor.

        :param job:                     The CFGJob instance.
        :param indirect_jump_targets:   A collection of concrete jump targets resolved from a indirect jump.
        :return:                        A list of SimStates.
        :rtype:                         list
Convert each concrete indirect jump target into a SimState. If there are non-zero successors and the original
        jumpkind is a call, we also generate a fake-ret successor.
Convert each concrete indirect jump target into a SimState . If there are non - zero successors and the original jumpkind is a call we also generate a fake - ret successor .
def _convert_indirect_jump_targets_to_states(job, indirect_jump_targets):
        """
        Convert each concrete indirect jump target into a SimState. If there are non-zero successors and the original
        jumpkind is a call, we also generate a fake-ret successor.

        :param job:                     The CFGJob instance.
        :param indirect_jump_targets:   A collection of concrete jump targets resolved from a indirect jump.
        :return:                        A list of SimStates.
        :rtype:                         list
        """

        first_successor = job.sim_successors.all_successors[0]
        successors = [ ]
        for t in indirect_jump_targets:
            # Insert new successors
            a = first_successor.copy()
            a.ip = t
            successors.append(a)
        # special case: if the indirect jump is in fact an indirect call, we should create a FakeRet successor
        if successors and first_successor.history.jumpkind == 'Ijk_Call':
            a = first_successor.copy()
            a.ip = job.cfg_node.addr + job.cfg_node.size
            a.history.jumpkind = 'Ijk_FakeRet'
            successors.append(a)
        return successors
def _convert_indirect_jump_targets_to_states ( job , indirect_jump_targets ) : first_successor = job . sim_successors . all_successors [ 0 ] successors = [ ] for t in indirect_jump_targets : # Insert new successors a = first_successor . copy ( ) a . ip = t successors . append ( a ) # special case: if the indirect jump is in fact an indirect call, we should create a FakeRet successor if successors and first_successor . history . jumpkind == 'Ijk_Call' : a = first_successor . copy ( ) a . ip = job . cfg_node . addr + job . cfg_node . size a . history . jumpkind = 'Ijk_FakeRet' successors . append ( a ) return successors