// File: xnevs[P]bullimp/examples/../graph/ullimp_sub_graph_iso.hpp
// Function: ullimp::detail::UllImp<boost::adjacency_list<boost::setS, boost::vecS, boost::bidirectionalS, boost::no_property, Color, boost::no_property, boost::listS>, boost::adjacency_list<boost::setS, boost::vecS, boost::bidirectionalS, boost::no_property, Color, boost::no_property, boost::listS>, boost::vec_adj_list_vertex_id_map<boost::no_property, unsigned long>, boost::vec_adj_list_vertex_id_map<boost::no_property, unsigned long>, std::vector<unsigned long, std::allocator<unsigned long>>, main::$_0, boost::always_equivalent, main::$_1>::nextCol(unsigned long)
vertex_large_type nextCol(vertex_small_type row) { //TODO glej nextCol1 v mici ullimp
            if(iso[row] != graph_traits<GraphLarge>::null_vertex())
                isoinv[iso[row]] = graph_traits<GraphSmall>::null_vertex();
            
            /*
            auto col = vertex(index_map_large[iso[row]]+1, h);
            while (col < m &&    // TODO pazi col je vertex descriptor
                    (!map(row, col) ||
                     isoinv[col] != graph_traits<GraphSmall>::null_vertex() ||
                     !vertex_comp(row, col) ||
                     !checkEdges(row, col)))
                col += 1;
            return (col < m ? col : graph_traits<GraphLarge>::null_vertex());
            */
            
            vertex_small_iter_type col_it, last_it;
            std::tie(col_it, last_it) = vertices(h);
            std::advance(col_it, index_map_large[iso[row]]+1);
            while(col_it != last_it &&
                   (!map(row, *col_it) ||
                    isoinv[*col_it] != graph_traits<GraphSmall>::null_vertex() ||
                    !vertex_comp(row, *col_it) ||
                    !checkEdges(row, *col_it)))
                ++col_it;

            return (col_it != last_it ? *col_it : graph_traits<GraphLarge>::null_vertex());
        }

// Assembly:
subq $0xb8, %rsp
movq %rdi, 0xb0(%rsp)
movq %rsi, 0xa8(%rsp)
movq 0xb0(%rsp), %rdi
movq %rdi, 0x60(%rsp)
addq $0x2c0, %rdi            # imm = 0x2C0
movq 0xa8(%rsp), %rsi
callq 0x10070
movq (%rax), %rax
movq %rax, 0x68(%rsp)
callq 0xb980
movq %rax, %rcx
movq 0x68(%rsp), %rax
cmpq %rcx, %rax
je 0x4d98
callq 0xb980
movq 0x60(%rsp), %rdi
movq %rax, 0x58(%rsp)
movq %rdi, %rax
addq $0x2e8, %rax            # imm = 0x2E8
movq %rax, 0x50(%rsp)
addq $0x2c0, %rdi            # imm = 0x2C0
movq 0xa8(%rsp), %rsi
callq 0x10070
movq 0x50(%rsp), %rdi
movq (%rax), %rsi
callq 0x10070
movq 0x58(%rsp), %rcx
movq %rcx, (%rax)
leaq 0xa0(%rsp), %rdi
callq 0x11f80
leaq 0x98(%rsp), %rdi
callq 0x11f80
movq 0x60(%rsp), %rax
movq 0x8(%rax), %rdi
callq 0xaf50
movq %rax, 0x88(%rsp)
movq %rdx, 0x90(%rsp)
leaq 0x78(%rsp), %rdi
leaq 0xa0(%rsp), %rsi
leaq 0x98(%rsp), %rdx
callq 0x11fa0
leaq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rsi
callq 0x11fe0
movq 0x60(%rsp), %rdi
movq %rdi, %rax
addq $0x241, %rax            # imm = 0x241
movq %rax, 0x48(%rsp)
addq $0x2c0, %rdi            # imm = 0x2C0
movq 0xa8(%rsp), %rsi
callq 0x10070
movq 0x48(%rsp), %rdi
movq (%rax), %rsi
callq 0xd470
movq %rax, %rsi
addq $0x1, %rsi
leaq 0xa0(%rsp), %rdi
callq 0x12050
leaq 0xa0(%rsp), %rdi
leaq 0x98(%rsp), %rsi
callq 0xafe0
movb %al, %cl
xorl %eax, %eax
testb $0x1, %cl
movb %al, 0x47(%rsp)
jne 0x4e6b
jmp 0x4f85
movq 0x60(%rsp), %rax
addq $0x2f8, %rax            # imm = 0x2F8
movq %rax, 0x30(%rsp)
movq 0xa8(%rsp), %rax
movq %rax, 0x38(%rsp)
leaq 0xa0(%rsp), %rdi
callq 0xb030
movq 0x30(%rsp), %rdi
movq 0x38(%rsp), %rsi
movq %rax, %rdx
callq 0x46e0
movq %rax, %rcx
movb $0x1, %al
testb $0x1, (%rcx)
movb %al, 0x46(%rsp)
je 0x4f7d
movq 0x60(%rsp), %rax
addq $0x2e8, %rax            # imm = 0x2E8
movq %rax, 0x20(%rsp)
leaq 0xa0(%rsp), %rdi
callq 0xb030
movq 0x20(%rsp), %rdi
movq %rax, %rsi
callq 0x10070
movq (%rax), %rax
movq %rax, 0x28(%rsp)
callq 0xb980
movq 0x28(%rsp), %rcx
movq %rax, %rdx
movb $0x1, %al
cmpq %rdx, %rcx
movb %al, 0x46(%rsp)
jne 0x4f7d
movq 0x60(%rsp), %rax
addq $0x280, %rax            # imm = 0x280
movq %rax, 0x18(%rsp)
leaq 0xa0(%rsp), %rdi
callq 0xb030
movq 0x18(%rsp), %rdi
movq %rax, 0x70(%rsp)
leaq 0xa8(%rsp), %rsi
leaq 0x70(%rsp), %rdx
callq 0x11f60
movb %al, %cl
movb $0x1, %al
testb $0x1, %cl
movb %al, 0x46(%rsp)
jne 0x4f4b
jmp 0x4f7d
movq 0xa8(%rsp), %rax
movq %rax, 0x10(%rsp)
leaq 0xa0(%rsp), %rdi
callq 0xb030
movq 0x60(%rsp), %rdi
movq 0x10(%rsp), %rsi
movq %rax, %rdx
callq 0x5c30
xorb $-0x1, %al
movb %al, 0x46(%rsp)
movb 0x46(%rsp), %al
movb %al, 0x47(%rsp)
movb 0x47(%rsp), %al
testb $0x1, %al
jne 0x4f8f
jmp 0x4fa1
leaq 0xa0(%rsp), %rdi
callq 0xb820
jmp 0x4e44
leaq 0xa0(%rsp), %rdi
leaq 0x98(%rsp), %rsi
callq 0xafe0
testb $0x1, %al
jne 0x4fbc
jmp 0x4fd0
leaq 0xa0(%rsp), %rdi
callq 0xb030
movq %rax, 0x8(%rsp)
jmp 0x4fda
callq 0xb980
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
addq $0xb8, %rsp
retq
nopw (%rax,%rax)