(self, src_addr, target_addr, current_function_addr)
return to_outside, target_func_addr
Determine if a branch is branching to a different function (i.e., branching to outside the current function).

        :param int src_addr:    The source address.
        :param int target_addr: The destination address.
        :param int current_function_addr:   Address of the current function.
        :return:    A tuple of (to_outside, target_func_addr)
        :rtype:     tuple
Determine if a branch is branching to a different function (i.e., branching to outside the current function).
Determine if a branch is branching to a different function ( i . e . branching to outside the current function ) .
def _is_branching_to_outside(self, src_addr, target_addr, current_function_addr):
        """
        Determine if a branch is branching to a different function (i.e., branching to outside the current function).

        :param int src_addr:    The source address.
        :param int target_addr: The destination address.
        :param int current_function_addr:   Address of the current function.
        :return:    A tuple of (to_outside, target_func_addr)
        :rtype:     tuple
        """

        if not self._addrs_belong_to_same_section(src_addr, target_addr):
            # if the target address is at another section, it has to be jumping to a new function
            target_func_addr = target_addr
            to_outside = True
        else:
            # it might be a jumpout
            target_func_addr = None
            real_target_addr = get_real_address_if_arm(self.project.arch, target_addr)
            if real_target_addr in self._traced_addresses:
                node = self.model.get_any_node(target_addr)
                if node is not None:
                    target_func_addr = node.function_address
            if target_func_addr is None:
                target_func_addr = current_function_addr

            to_outside = not target_func_addr == current_function_addr

        return to_outside, target_func_addr
def _is_branching_to_outside ( self , src_addr , target_addr , current_function_addr ) : if not self . _addrs_belong_to_same_section ( src_addr , target_addr ) : # if the target address is at another section, it has to be jumping to a new function target_func_addr = target_addr to_outside = True else : # it might be a jumpout target_func_addr = None real_target_addr = get_real_address_if_arm ( self . project . arch , target_addr ) if real_target_addr in self . _traced_addresses : node = self . model . get_any_node ( target_addr ) if node is not None : target_func_addr = node . function_address if target_func_addr is None : target_func_addr = current_function_addr to_outside = not target_func_addr == current_function_addr return to_outside , target_func_addr