docs: def _function_add_fakeret_edge(self, addr, src_node, src_func_addr, confirmed=None):
          """
          Generate CodeNodes for target and source, if no source node add node
          for function, otherwise creates fake return to in function manager
  
          :param int addr: target address
          :param angr.analyses.CFGNode src_node: source node
          :param int src_func_addr: address of function
          :param confirmed: used as attribute on eventual digraph
          :return: None
          """
  
          target_node = self._nodes.get(addr, None)
          if target_node is None:
              target_snippet = self._to_snippet(addr=addr, base_state=self._base_state)
          else:
              target_snippet = self._to_snippet(cfg_node=target_node)
  
          if src_node is None:
              self.kb.functions._add_node(src_func_addr, target_snippet)
          else:
              src_snippet = self._to_snippet(cfg_node=src_node)
              self.kb.functions._add_fakeret_to(src_func_addr, src_snippet, target_snippet, confirmed=confirmed)