'Pre-process the acyclic CFG by changing all FakeRet edges to normal edges when necessary (e.g. the normal return
edge does not exist)'

def _pre_process_cfg(self):

    for (src, dst, data) in self._acyclic_cfg.graph.edges(data=True):
        if (('jumpkind' in data) and (data['jumpkind'] == 'Ijk_FakeRet')):
            all_edges_to_dst = self._acyclic_cfg.graph.in_edges([dst], data=True)
            if (not any(((s, d) for (s, d, da) in all_edges_to_dst if (da['jumpkind'] != 'Ijk_FakeRet')))):
                for (_, _, data) in all_edges_to_dst:
                    data['jumpkind'] = 'Ijk_Boring'
