'Iterate through all call edges in transition graph. For each call a non-returning function, mark the source
basic block as an endpoint.
This method should only be executed once all functions are recovered and analyzed by CFG recovery, so we know
whether each function returns or not.
:return: None'

def mark_nonreturning_calls_endpoints(self):

    for (src, dst, data) in self.transition_graph.edges_iter(data=True):
        if (('type' in data) and (data['type'] == 'call')):
            func_addr = dst.addr
            if (func_addr in self._function_manager):
                function = self._function_manager[func_addr]
                if (function.returning is False):
                    the_node = self.get_node(src.addr)
                    self._callout_sites.add(the_node)
                    self._add_endpoint(the_node, 'call')
