def _get_pending_entry(self):
        """
        Retrieve a pending entry from all pended ones.

        :return: An EntryWrapper instance or None
        """

        pending_exit_tuple = self._pending_entries.keys()[0]
        pending_exit = self._pending_entries.pop(pending_exit_tuple)
        pending_exit_state = pending_exit.state
        pending_exit_call_stack = pending_exit.call_stack
        pending_exit_bbl_stack = pending_exit.bbl_stack
        pending_entry_src_simrun_key = pending_exit.src_simrun_key
        pending_entry_src_exit_stmt_idx = pending_exit.src_exit_stmt_idx

        # Let's check whether this address has been traced before.
        if pending_exit_tuple in self._nodes:
            node = self._nodes[pending_exit_tuple]
            if node in self.graph:
                pending_exit_addr = self._simrun_key_addr(pending_exit_tuple)
                # That block has been traced before. Let's forget about it
                l.debug("Target 0x%08x has been traced before. " + "Trying the next one...", pending_exit_addr)

                # However, we should still create the FakeRet edge
                self._graph_add_edge(pending_entry_src_simrun_key, pending_exit_tuple, jumpkind="Ijk_FakeRet",
                                     exit_stmt_idx=pending_entry_src_exit_stmt_idx)

                return None

        pending_exit_state.scratch.jumpkind = 'Ijk_FakeRet'

        path = self.project.factory.path(pending_exit_state)
        entry = EntryWrapper(path,
                                    self._context_sensitivity_level,
                                    pending_entry_src_simrun_key,
                                    pending_entry_src_exit_stmt_idx,
                                    call_stack=pending_exit_call_stack,
                                    bbl_stack=pending_exit_bbl_stack
                                    )
        l.debug("Tracing a missing return exit %s", self._simrun_key_repr(pending_exit_tuple))

        return entry
dataset/ETHPy150Open angr/angr/angr/analyses/cfg_accurate.py/CFGAccurate._get_pending_entry/original