'Scan a basic block starting at a specific address
:param int addr: The address to begin scanning
:param int current_function_addr: Address of the current function
:param str previous_jumpkind: The jumpkind of the edge going to this node
:param CFGNode previous_src_node: The previous CFGNode
:return: a list of successors
:rtype: list'

def _scan_block(self, addr, current_function_addr, previous_jumpkind, previous_src_node, previous_src_ins_addr, previous_src_stmt_idx):

    if (addr in self._function_addresses_from_symbols):
        current_function_addr = addr
    if self._addr_hooked_or_syscall(addr):
        entries = self._scan_procedure(addr, current_function_addr, previous_jumpkind, previous_src_node, previous_src_ins_addr, previous_src_stmt_idx)
    else:
        entries = self._scan_irsb(addr, current_function_addr, previous_jumpkind, previous_src_node, previous_src_ins_addr, previous_src_stmt_idx)
    return entries
