'Registers an edge between the caller basic block and callee function.
:param from_addr:   The basic block that control flow leaves during the transition.
:type  from_addr:   angr.knowledge.CodeNode
:param to_func:     The function that we are calling
:type  to_func:     Function
:param ret_node     The basic block that control flow should return to after the
function call.
:type  to_func:     angr.knowledge.CodeNode or None
:param stmt_idx:    Statement ID of this call.
:type  stmt_idx:    int, str or None
:param ins_addr:    Instruction address of this call.
:type  ins_addr:    int or None'

def _call_to(self, from_node, to_func, ret_node, stmt_idx=None, ins_addr=None):

    self._register_nodes(True, from_node)
    if to_func.is_syscall:
        self.transition_graph.add_edge(from_node, to_func, type='syscall', stmt_idx=stmt_idx, ins_addr=ins_addr)
    else:
        self.transition_graph.add_edge(from_node, to_func, type='call', stmt_idx=stmt_idx, ins_addr=ins_addr)
        if (ret_node is not None):
            self._fakeret_to(from_node, ret_node)
    self._local_transition_graph = None
