docs: def _update_function_callsites(self, noreturns):
          """
          Update the callsites of functions (remove return targets) that are calling functions that are just deemed not
          returning.
  
          :param iterable func_addrs: A collection of functions for newly-recovered non-returning functions.
          :return:                    None
          """
  
          for callee_func in noreturns:
              # consult the callgraph to find callers of each function
              if callee_func.addr not in self.functions.callgraph:
                  continue
              caller_addrs = self.functions.callgraph.predecessors(callee_func.addr)
              for caller_addr in caller_addrs:
                  caller = self.functions[caller_addr]
                  if callee_func not in caller.transition_graph:
                      continue
                  callsites = caller.transition_graph.predecessors(callee_func)
                  for callsite in callsites:
                      caller._add_call_site(callsite.addr, callee_func.addr, None)