// File: /workspace/github_cpp_makefile_star2_O1/xnevs[P]bullimp/examples/colored_vertices.cpp
// Function: main
int main() { 
    using namespace boost;
    using namespace ullimp;

    graph_type pattern;
    auto u0 = add_vertex(pattern);
    auto u1 = add_vertex(pattern);
    auto u2 = add_vertex(pattern);
    add_edge(u0, u1, pattern);
    add_edge(u1, u2, pattern);
    add_edge(u2, u0, pattern);

    pattern[u0].color = "red";
    pattern[u1].color = "blue";
    pattern[u2].color = "green";

    graph_type graph;
    auto v0 = add_vertex(graph);
    auto v1 = add_vertex(graph);
    auto v2 = add_vertex(graph);
    auto v3 = add_vertex(graph);
    add_edge(v0, v1, graph);
    add_edge(v1, v2, graph);
    add_edge(v2, v0, graph);
    add_edge(v1, v3, graph);
    add_edge(v3, v0, graph);

    graph[v0].color = "red";
    graph[v1].color = "blue";
    graph[v2].color = "green";
    graph[v3].color = "green";

    auto index_map_p = get(vertex_index, pattern);
    auto index_map_g = get(vertex_index, graph);

    int count = 0;

    ullimp_subgraph_iso(pattern,
                        graph,
                        [&count, &pattern, &index_map_p, &index_map_g](auto const & iso, auto const & isoInv) {
                            std::cout << "found isomorphism:" << std::endl;
                            BGL_FORALL_VERTICES(u, pattern, graph_type) {
                                std::cout << "  " << index_map_p[u] << " -> " << index_map_g[iso[u]] << std::endl;
                            }
                            ++count;
                            return true;
                        },
                        get(vertex_index, pattern),
                        get(vertex_index, graph),
                        vertex_order_RDEG_CNC(pattern),
                        always_equivalent(),
                        [&pattern, &graph](auto const & u, auto const & v) {
                            return pattern[u].color == graph[v].color;
                        });

    std::cout << "isomorphism count = " << count << std::endl;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x578, %rsp            # imm = 0x578
leaq 0xf8(%rsp), %rdi
leaq 0x1a0(%rsp), %rsi
callq 0x41ba
leaq 0x110(%rsp), %rbx
movq 0x8(%rbx), %rsi
subq (%rbx), %rsi
sarq $0x7, %rsi
incq %rsi
movq %rbx, %rdi
callq 0x435c
movq 0x118(%rsp), %r15
subq 0x110(%rsp), %r15
sarq $0x7, %r15
leaq 0x1(%r15), %rsi
movq %rbx, %rdi
callq 0x435c
movq 0x118(%rsp), %r14
subq 0x110(%rsp), %r14
sarq $0x7, %r14
leaq 0x1(%r14), %rsi
movq %rbx, %rdi
callq 0x435c
decq %r15
decq %r14
leaq 0xf8(%rsp), %r8
movq 0x20(%r8), %rbx
subq 0x18(%r8), %rbx
leaq 0x1a0(%rsp), %rdi
leaq 0x98(%rsp), %rcx
movq %r15, %rsi
movq %r14, %rdx
callq 0x46ca
sarq $0x7, %rbx
decq %rbx
leaq 0x1a0(%rsp), %rdi
leaq 0x98(%rsp), %rcx
leaq 0xf8(%rsp), %r8
movq %r14, %rsi
movq %rbx, %rdx
callq 0x46ca
leaq 0x1a0(%rsp), %rdi
leaq 0x98(%rsp), %rcx
leaq 0xf8(%rsp), %r8
movq %rbx, %rsi
movq %r15, %rdx
callq 0x46ca
movq 0x110(%rsp), %rax
shlq $0x7, %r15
leaq 0x60(%rax,%r15), %rdi
movq 0x8(%rdi), %rdx
leaq 0x3bee(%rip), %rcx      # 0x6088
movl $0x3, %r8d
xorl %esi, %esi
callq 0x21a0
movq 0x110(%rsp), %rax
shlq $0x7, %r14
leaq 0x60(%rax,%r14), %rdi
movq 0x8(%rdi), %rdx
leaq 0x3bc9(%rip), %rcx      # 0x608c
movl $0x4, %r8d
xorl %esi, %esi
callq 0x21a0
movq 0x110(%rsp), %rax
shlq $0x7, %rbx
leaq 0x60(%rax,%rbx), %rdi
movq 0x8(%rdi), %rdx
leaq 0x3ba5(%rip), %rcx      # 0x6091
movl $0x5, %r8d
xorl %esi, %esi
callq 0x21a0
leaq 0x98(%rsp), %rdi
leaq 0x1a0(%rsp), %rsi
callq 0x41ba
leaq 0xb0(%rsp), %rbx
movq 0x8(%rbx), %rsi
subq (%rbx), %rsi
sarq $0x7, %rsi
incq %rsi
movq %rbx, %rdi
callq 0x435c
movq 0xb8(%rsp), %r12
subq 0xb0(%rsp), %r12
sarq $0x7, %r12
leaq 0x1(%r12), %rsi
movq %rbx, %rdi
callq 0x435c
movq 0xb8(%rsp), %r15
subq 0xb0(%rsp), %r15
sarq $0x7, %r15
leaq 0x1(%r15), %rsi
movq %rbx, %rdi
callq 0x435c
movq 0xb8(%rsp), %r14
subq 0xb0(%rsp), %r14
sarq $0x7, %r14
leaq 0x1(%r14), %rsi
movq %rbx, %rdi
callq 0x435c
decq %r12
decq %r15
leaq 0x98(%rsp), %r8
movq 0x20(%r8), %rbx
subq 0x18(%r8), %rbx
leaq 0x1a0(%rsp), %rdi
leaq 0x80(%rsp), %rcx
movq %r12, %rsi
movq %r15, %rdx
callq 0x46ca
decq %r14
leaq 0x1a0(%rsp), %rdi
leaq 0x80(%rsp), %rcx
leaq 0x98(%rsp), %r8
movq %r15, %rsi
movq %r14, %rdx
callq 0x46ca
leaq 0x1a0(%rsp), %rdi
leaq 0x80(%rsp), %rcx
leaq 0x98(%rsp), %r8
movq %r14, %rsi
movq %r12, %rdx
callq 0x46ca
sarq $0x7, %rbx
decq %rbx
leaq 0x1a0(%rsp), %rdi
leaq 0x80(%rsp), %rcx
leaq 0x98(%rsp), %r8
movq %r15, %rsi
movq %rbx, %rdx
callq 0x46ca
leaq 0x1a0(%rsp), %rdi
leaq 0x80(%rsp), %rcx
leaq 0x98(%rsp), %r13
movq %rbx, %rsi
movq %r12, %rdx
movq %r13, %r8
callq 0x46ca
movq 0xb0(%rsp), %rax
shlq $0x7, %r12
leaq 0x60(%rax,%r12), %rdi
movq 0x8(%rdi), %rdx
leaq 0x3a15(%rip), %rcx      # 0x6088
movl $0x3, %r8d
xorl %esi, %esi
callq 0x21a0
movq 0xb0(%rsp), %rax
shlq $0x7, %r15
leaq 0x60(%rax,%r15), %rdi
movq 0x8(%rdi), %rdx
leaq 0x39f0(%rip), %rcx      # 0x608c
movl $0x4, %r8d
xorl %esi, %esi
callq 0x21a0
movq 0xb0(%rsp), %rax
shlq $0x7, %r14
leaq 0x60(%rax,%r14), %rdi
movq 0x8(%rdi), %rdx
leaq 0x39cc(%rip), %rcx      # 0x6091
movl $0x5, %r8d
xorl %esi, %esi
callq 0x21a0
movq 0xb0(%rsp), %rax
shlq $0x7, %rbx
leaq 0x60(%rax,%rbx), %rdi
movq 0x8(%rdi), %rdx
leaq 0x39a3(%rip), %rcx      # 0x6091
movl $0x5, %r8d
xorl %esi, %esi
callq 0x21a0
movl $0x0, 0x7c(%rsp)
leaq 0x140(%rsp), %rdi
leaq 0xf8(%rsp), %rbx
movq %rbx, %rsi
callq 0x48df
leaq 0x1b0(%rsp), %rdi
movq %rbx, -0x10(%rdi)
movq %r13, -0x8(%rdi)
movq %rbx, %rsi
callq 0x521e
leaq 0x2c8(%rsp), %rdi
leaq 0x98(%rsp), %r14
movq %r14, %rsi
callq 0x521e
movq 0x118(%rsp), %rax
subq 0x110(%rsp), %rax
sarq $0x7, %rax
leaq 0x3f8(%rsp), %rdi
movq %rax, -0x10(%rdi)
movq 0xb8(%rsp), %rax
subq 0xb0(%rsp), %rax
sarq $0x7, %rax
movq %rax, -0x8(%rdi)
leaq 0x140(%rsp), %rsi
callq 0x55e2
leaq 0x448(%rsp), %rdi
movq %rbx, -0x30(%rdi)
movq %r14, -0x28(%rdi)
leaq 0x7c(%rsp), %rax
movq %rax, -0x20(%rdi)
movq %rbx, -0x18(%rdi)
leaq 0x4f(%rsp), %rax
movq %rax, -0x10(%rdi)
leaq 0x4e(%rsp), %rax
movq %rax, -0x8(%rdi)
movq -0x60(%rdi), %rsi
leaq 0x80(%rsp), %rdx
movq $-0x1, (%rdx)
leaq 0x18(%rsp), %rcx
callq 0x5664
leaq 0x470(%rsp), %rdi
movq -0x80(%rdi), %rsi
movq -0x28(%rdi), %rax
movq %rax, -0x10(%rdi)
leaq 0x80(%rsp), %rdx
movq $-0x1, (%rdx)
leaq 0x18(%rsp), %rcx
callq 0x5664
movq 0x470(%rsp), %rax
movq %rax, 0x488(%rsp)
movq 0x3e8(%rsp), %rbx
movq 0x3f0(%rsp), %r14
movq %rbx, 0x498(%rsp)
movq %r14, 0x4a0(%rsp)
imulq %rbx, %r14
movq %r14, %rdi
callq 0x2030
movq %rax, 0x4b0(%rsp)
movq %r14, %rax
shrq $0x3e, %rax
shlq $0x2, %r14
negq %rax
sbbq %r15, %r15
orq %r14, %r15
movq %r15, %rdi
callq 0x2030
movq %rax, 0x4b8(%rsp)
movq $-0x1, 0x4c0(%rsp)
movq %r15, %rdi
callq 0x2030
leaq 0x4d8(%rsp), %r14
movq %rax, -0x10(%r14)
movl $0xffffffff, -0x8(%r14) # imm = 0xFFFFFFFF
leaq 0x80(%rsp), %rdx
movq %r14, %rdi
movq %rbx, %rsi
callq 0x5730
leaq 0x4f0(%rsp), %rbx
movq -0x108(%rbx), %rsi
leaq 0x80(%rsp), %rdx
movq %rbx, %rdi
callq 0x5730
leaq 0x508(%rsp), %r12
movq -0x120(%r12), %rsi
leaq 0x80(%rsp), %rdx
movq %r12, %rdi
callq 0x5730
leaq 0x520(%rsp), %r13
movq -0x138(%r13), %rsi
leaq 0x80(%rsp), %rdx
movq %r13, %rdi
callq 0x5730
movq 0x3e8(%rsp), %rsi
movq 0x4d8(%rsp), %rax
movq %rax, 0x538(%rsp)
movq 0x4f0(%rsp), %rax
movq %rax, 0x548(%rsp)
movq 0x508(%rsp), %rax
movq %rax, 0x558(%rsp)
movq 0x520(%rsp), %rax
movq %rax, 0x568(%rsp)
leaq 0x80(%rsp), %rdi
leaq 0x18(%rsp), %rdx
callq 0x4c40
movq 0x80(%rsp), %r15
cmpq $0x0, 0x3e8(%rsp)
je 0x2996
movq 0x140(%rsp), %rax
xorl %ecx, %ecx
movq (%rax,%rcx,8), %rdx
movq %rcx, (%r15,%rdx,8)
incq %rcx
cmpq %rcx, 0x3e8(%rsp)
ja 0x2981
movq 0x118(%rsp), %rcx
movq 0x110(%rsp), %rax
subq %rax, %rcx
movq %rcx, 0x8(%rsp)
je 0x2b33
sarq $0x7, 0x8(%rsp)
xorl %ebp, %ebp
movq (%r15,%rbp,8), %rbx
movq 0x288(%rsp), %rax
leaq (%rbp,%rbp,2), %r14
movq (%rax,%r14,8), %r12
movq 0x8(%rax,%r14,8), %r13
cmpq %r13, %r12
je 0x2a1d
movq (%r12), %rax
movq %rax, 0x18(%rsp)
cmpq %rbx, (%r15,%rax,8)
jbe 0x2a17
movq 0x538(%rsp), %rcx
leaq (%rcx,%r14,8), %rdi
movq 0x8(%rdi), %rsi
cmpq 0x10(%rdi), %rsi
je 0x2a0d
movq %rax, (%rsi)
addq $0x8, %rsi
movq %rsi, 0x8(%rdi)
jmp 0x2a17
leaq 0x18(%rsp), %rdx
callq 0x595e
addq $0x8, %r12
jmp 0x29d6
movq 0x298(%rsp), %rax
movq (%rax,%r14,8), %r12
movq 0x8(%rax,%r14,8), %r13
cmpq %r13, %r12
je 0x2a75
movq (%r12), %rax
movq %rax, 0x18(%rsp)
cmpq %rbx, (%r15,%rax,8)
jbe 0x2a6f
movq 0x548(%rsp), %rcx
leaq (%rcx,%r14,8), %rdi
movq 0x8(%rdi), %rsi
cmpq 0x10(%rdi), %rsi
je 0x2a65
movq %rax, (%rsi)
addq $0x8, %rsi
movq %rsi, 0x8(%rdi)
jmp 0x2a6f
leaq 0x18(%rsp), %rdx
callq 0x595e
addq $0x8, %r12
jmp 0x2a2e
movq 0x2a8(%rsp), %rax
movq (%rax,%r14,8), %r12
movq 0x8(%rax,%r14,8), %r13
cmpq %r13, %r12
je 0x2acd
movq (%r12), %rax
movq %rax, 0x18(%rsp)
cmpq %rbx, (%r15,%rax,8)
jbe 0x2ac7
movq 0x558(%rsp), %rcx
leaq (%rcx,%r14,8), %rdi
movq 0x8(%rdi), %rsi
cmpq 0x10(%rdi), %rsi
je 0x2abd
movq %rax, (%rsi)
addq $0x8, %rsi
movq %rsi, 0x8(%rdi)
jmp 0x2ac7
leaq 0x18(%rsp), %rdx
callq 0x595e
addq $0x8, %r12
jmp 0x2a86
movq 0x2b8(%rsp), %rax
movq (%rax,%r14,8), %r12
movq 0x8(%rax,%r14,8), %r13
cmpq %r13, %r12
je 0x2b25
movq (%r12), %rax
movq %rax, 0x18(%rsp)
cmpq %rbx, (%r15,%rax,8)
jbe 0x2b1f
movq 0x568(%rsp), %rcx
leaq (%rcx,%r14,8), %rdi
movq 0x8(%rdi), %rsi
cmpq 0x10(%rdi), %rsi
je 0x2b15
movq %rax, (%rsi)
addq $0x8, %rsi
movq %rsi, 0x8(%rdi)
jmp 0x2b1f
leaq 0x18(%rsp), %rdx
callq 0x595e
addq $0x8, %r12
jmp 0x2ade
incq %rbp
cmpq 0x8(%rsp), %rbp
jne 0x29bc
movq 0x80(%rsp), %rdi
testq %rdi, %rdi
je 0x2b50
movq 0x90(%rsp), %rsi
subq %rdi, %rsi
callq 0x2120
movq 0x1a0(%rsp), %rax
movq 0x18(%rax), %rcx
movq 0x20(%rax), %rax
movq %rcx, 0x68(%rsp)
subq %rcx, %rax
movq %rax, 0x58(%rsp)
leaq 0xb0(%rsp), %rbp
je 0x2e27
sarq $0x7, 0x58(%rsp)
movq 0x1a8(%rsp), %rcx
movq 0x18(%rcx), %rax
movq 0x20(%rcx), %rcx
movq %rcx, %rdx
subq %rax, %rdx
sarq $0x7, %rdx
movq 0x4b0(%rsp), %rsi
movq 0x4a0(%rsp), %rdi
leaq 0x58(%rax), %r8
xorl %r9d, %r9d
cmpq %rax, %rcx
je 0x2bf4
movq %r9, %r11
shlq $0x7, %r11
movq 0x68(%rsp), %rbx
movq 0x28(%rbx,%r11), %r10
movq 0x58(%rbx,%r11), %r11
movq %r8, %rbx
xorl %r14d, %r14d
cmpq %r11, (%rbx)
jae 0x2bdc
xorl %ebp, %ebp
jmp 0x2be4
cmpq %r10, -0x30(%rbx)
setae %bpl
movb %bpl, (%rsi,%r14)
incq %r14
subq $-0x80, %rbx
cmpq %r14, %rdx
jne 0x2bd3
incq %r9
addq %rdi, %rsi
cmpq 0x58(%rsp), %r9
jne 0x2bb2
movq 0x1a8(%rsp), %rax
movq 0x18(%rax), %rcx
movq 0x20(%rax), %rax
movq %rax, 0xe0(%rsp)
movq %rax, %rdx
movq %rcx, 0x40(%rsp)
subq %rcx, %rdx
sarq $0x7, %rdx
leaq 0xb0(%rsp), %rbp
movq %rdx, 0x70(%rsp)
movq 0x4a0(%rsp), %rax
movq %rax, 0x30(%rsp)
movq 0x4b0(%rsp), %rax
movq %rax, 0x50(%rsp)
movq $0x0, 0x60(%rsp)
xorl %ecx, %ecx
movq 0xe0(%rsp), %rax
cmpq 0x40(%rsp), %rax
movq %rcx, 0x10(%rsp)
je 0x2e09
movq %rcx, %r13
imulq 0x30(%rsp), %r13
addq 0x50(%rsp), %r13
movq %rcx, %rax
shlq $0x7, %rax
movq 0x68(%rsp), %rcx
leaq (%rcx,%rax), %rsi
movq %rsi, 0x20(%rsp)
leaq 0x8(%rcx,%rax), %rsi
movq %rsi, 0x8(%rsp)
leaq 0x38(%rcx,%rax), %rax
movq %rax, 0xe8(%rsp)
xorl %r12d, %r12d
cmpb $0x1, (%r13,%r12)
jne 0x2dfd
movq 0x20(%rsp), %rax
movq 0x18(%rax), %rbx
cmpq 0x8(%rsp), %rbx
je 0x2d52
movq %r12, %rax
shlq $0x7, %rax
movq 0x40(%rsp), %rcx
leaq 0x8(%rcx,%rax), %r14
movq 0x10(%r14), %rbp
cmpq %r14, %rbp
je 0x2de3
movq 0x4a0(%rsp), %rax
movq %rax, 0x38(%rsp)
movq 0x4b0(%rsp), %rax
movq %rax, 0x28(%rsp)
movq 0x20(%rbx), %r15
imulq 0x38(%rsp), %r15
addq 0x28(%rsp), %r15
movq %rbp, %rax
movq 0x20(%rax), %rcx
cmpb $0x0, (%r15,%rcx)
jne 0x2d36
movq %rax, %rdi
callq 0x2160
cmpq %r14, %rax
jne 0x2d19
jmp 0x2de3
movq %rbx, %rdi
callq 0x2160
cmpq 0x8(%rsp), %rax
je 0x2d52
movq %rax, %rbx
cmpq %r14, %rbp
jne 0x2d07
jmp 0x2de3
movq 0x8(%rsp), %rax
movq 0x40(%rax), %rbx
cmpq 0xe8(%rsp), %rbx
je 0x2df0
movq %r12, %rax
shlq $0x7, %rax
movq 0x40(%rsp), %rcx
leaq 0x38(%rcx,%rax), %r14
movq 0x10(%r14), %rbp
cmpq %r14, %rbp
je 0x2de3
movq 0x4a0(%rsp), %rax
movq %rax, 0x38(%rsp)
movq 0x4b0(%rsp), %rax
movq %rax, 0x28(%rsp)
movq 0x20(%rbx), %r15
imulq 0x38(%rsp), %r15
addq 0x28(%rsp), %r15
movq %rbp, %rax
movq 0x20(%rax), %rcx
cmpb $0x0, (%r15,%rcx)
jne 0x2dc9
movq %rax, %rdi
callq 0x2160
cmpq %r14, %rax
jne 0x2daf
jmp 0x2de3
movq %rbx, %rdi
callq 0x2160
cmpq 0xe8(%rsp), %rax
je 0x2df0
movq %rax, %rbx
cmpq %r14, %rbp
jne 0x2d9d
movb $0x0, (%r13,%r12)
movb $0x1, %al
movq %rax, 0x60(%rsp)
leaq 0xb0(%rsp), %rbp
movq 0x70(%rsp), %rdx
incq %r12
cmpq %rdx, %r12
jne 0x2caf
movq 0x10(%rsp), %rcx
incq %rcx
cmpq 0x58(%rsp), %rcx
jne 0x2c5a
testb $0x1, 0x60(%rsp)
jne 0x2c35
leaq 0x1a0(%rsp), %rax
movq 0x258(%rax), %r9
xorl %ecx, %ecx
movq 0x460(%rsp), %r10
movq 0x488(%rsp), %rax
movq %rax, 0x68(%rsp)
movq 0x1a8(%rsp), %rax
movq %rax, 0x138(%rsp)
movq 0x3a0(%rsp), %rax
movq %rax, 0x190(%rsp)
movq 0x4b0(%rsp), %r11
movq 0x4c8(%rsp), %rax
movq %rax, 0xf0(%rsp)
movq 0x538(%rsp), %rax
movq %rax, 0x188(%rsp)
movq 0x3c0(%rsp), %rax
movq %rax, 0x170(%rsp)
movq 0x548(%rsp), %rax
movq %rax, 0x180(%rsp)
movq 0x3d0(%rsp), %rax
movq %rax, 0x168(%rsp)
movq 0x558(%rsp), %rax
movq %rax, 0x160(%rsp)
movq 0x3b0(%rsp), %rax
movq %rax, 0x178(%rsp)
movq 0x568(%rsp), %rax
movq %rax, 0x158(%rsp)
movq 0x4b8(%rsp), %rbx
movq %r10, 0xd8(%rsp)
movq %r11, 0xd0(%rsp)
movq %rbx, 0x130(%rsp)
movq %rcx, 0x30(%rsp)
movq 0x3e8(%rsp), %rax
decq %rax
movq (%r9), %rdx
cmpq %rax, %rcx
movq %rdx, 0x10(%rsp)
movq %r9, 0x50(%rsp)
jae 0x3699
movq (%r10,%rdx,8), %rax
cmpq $-0x1, %rax
je 0x2f52
movq 0x68(%rsp), %rcx
movq $-0x1, (%rcx,%rax,8)
movq 0x138(%rsp), %rax
movq 0x20(%rax), %rbx
subq 0x18(%rax), %rbx
sarq $0x7, %rbx
movq 0x10(%rsp), %rax
movq (%r10,%rax,8), %r14
leaq 0x1(%r14), %r12
movq $-0x1, %r13
cmpq %rbx, %r12
je 0x304a
movq 0x4a0(%rsp), %r15
imulq %rax, %r15
addq %r11, %r15
movq 0x488(%rsp), %r13
movq 0x418(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x420(%rsp), %rbp
shlq $0x4, %r14
addq $0x1d, %r14
cmpb $0x1, (%r15,%r12)
jne 0x301f
cmpq $-0x1, (%r13,%r12,8)
jne 0x301f
movq 0x8(%rsp), %rax
movq 0x18(%rax), %rax
movq 0x10(%rsp), %rcx
shlq $0x7, %rcx
movq 0x18(%rbp), %rsi
movq 0x68(%rax,%rcx), %rdx
cmpq (%rsi,%r14,8), %rdx
jne 0x301f
testq %rdx, %rdx
je 0x3002
leaq 0x60(%rax,%rcx), %rax
movq -0x8(%rsi,%r14,8), %rsi
movq (%rax), %rdi
callq 0x2130
testl %eax, %eax
jne 0x301f
leaq 0x1a0(%rsp), %rdi
movq 0x10(%rsp), %rsi
movq %r12, %rdx
callq 0x4028
testb %al, %al
jne 0x3679
incq %r12
addq $0x10, %r14
cmpq %r12, %rbx
jne 0x2fb7
leaq 0xb0(%rsp), %rbp
movq 0xd8(%rsp), %r10
movq 0xd0(%rsp), %r11
movq $-0x1, %r13
cmpq $-0x1, %r13
movq 0x10(%rsp), %rsi
je 0x3575
movq %r13, (%r10,%rsi,8)
movq 0x68(%rsp), %rax
movq %rsi, (%rax,%r13,8)
movl 0x4c0(%rsp), %eax
movslq 0x4d0(%rsp), %rcx
leaq 0x1(%rcx), %rdx
movl %edx, 0x4d0(%rsp)
movq 0xf0(%rsp), %rdx
movl %eax, 0x4(%rdx,%rcx,4)
movl 0x4c0(%rsp), %eax
movl %eax, 0x4c4(%rsp)
leaq (%rsi,%rsi,2), %rax
movq 0x188(%rsp), %rcx
movq (%rcx,%rax,8), %rdx
movq 0x8(%rcx,%rax,8), %r12
movq %rdx, 0x20(%rsp)
cmpq %r12, %rdx
je 0x3148
leaq (%r13,%r13,2), %rdx
movq 0x170(%rsp), %rsi
movq (%rsi,%rdx,8), %rcx
movq 0x8(%rsi,%rdx,8), %rdx
movq 0x488(%rsp), %rsi
movq 0x20(%rsp), %rdi
cmpq %rdx, %rcx
je 0x313f
movq 0x4a0(%rsp), %r8
movq 0x4b0(%rsp), %r9
imulq (%rdi), %r8
movq 0x4b8(%rsp), %r10
movq %rcx, %r11
movq (%r11), %rbx
cmpq $-0x1, (%rsi,%rbx,8)
jne 0x3136
addq %r8, %rbx
cmpb $0x1, (%r9,%rbx)
jne 0x3136
movb $0x0, (%r9,%rbx)
movslq 0x4c0(%rsp), %r14
leaq 0x1(%r14), %r15
movl %r15d, 0x4c0(%rsp)
movl %ebx, 0x4(%r10,%r14,4)
addq $0x8, %r11
cmpq %rdx, %r11
jne 0x3104
addq $0x8, %rdi
cmpq %r12, %rdi
jne 0x30e0
movq %r12, 0xe0(%rsp)
movq 0x180(%rsp), %rcx
movq (%rcx,%rax,8), %rdx
movq 0x8(%rcx,%rax,8), %rbp
movq %rdx, 0x28(%rsp)
cmpq %rbp, %rdx
je 0x31fa
leaq (%r13,%r13,2), %rdx
movq 0x168(%rsp), %rsi
movq (%rsi,%rdx,8), %rcx
movq 0x8(%rsi,%rdx,8), %rdx
movq 0x488(%rsp), %rsi
movq 0x28(%rsp), %rdi
cmpq %rdx, %rcx
je 0x31f1
movq 0x4a0(%rsp), %r8
movq 0x4b0(%rsp), %r9
imulq (%rdi), %r8
movq 0x4b8(%rsp), %r10
movq %rcx, %r11
movq (%r11), %rbx
cmpq $-0x1, (%rsi,%rbx,8)
jne 0x31e8
addq %r8, %rbx
cmpb $0x1, (%r9,%rbx)
jne 0x31e8
movb $0x0, (%r9,%rbx)
movslq 0x4c0(%rsp), %r14
leaq 0x1(%r14), %r15
movl %r15d, 0x4c0(%rsp)
movl %ebx, 0x4(%r10,%r14,4)
addq $0x8, %r11
cmpq %rdx, %r11
jne 0x31b6
addq $0x8, %rdi
cmpq %rbp, %rdi
jne 0x3192
movq %r13, 0x198(%rsp)
leaq (%r13,%r13,2), %rcx
movq 0x190(%rsp), %rdx
movq (%rdx,%rcx,8), %rsi
movq 0x8(%rdx,%rcx,8), %r13
movq %rsi, 0x60(%rsp)
cmpq %r13, %rsi
je 0x329c
movq 0x160(%rsp), %rsi
movq (%rsi,%rax,8), %rdx
movq 0x8(%rsi,%rax,8), %rsi
movq 0x4a0(%rsp), %rdi
movq 0x4b0(%rsp), %r8
movq 0x60(%rsp), %r9
cmpq %rsi, %rdx
je 0x3293
movq (%r9), %r10
movq 0x4b8(%rsp), %r11
movq %rdx, %rbx
movq (%rbx), %r14
imulq %rdi, %r14
addq %r10, %r14
cmpb $0x1, (%r8,%r14)
jne 0x328a
movb $0x0, (%r8,%r14)
movslq 0x4c0(%rsp), %r15
leaq 0x1(%r15), %r12
movl %r12d, 0x4c0(%rsp)
movl %r14d, 0x4(%r11,%r15,4)
addq $0x8, %rbx
cmpq %rsi, %rbx
jne 0x325b
addq $0x8, %r9
cmpq %r13, %r9
jne 0x3248
movq %rbp, 0x58(%rsp)
movq 0x178(%rsp), %rdx
movq (%rdx,%rcx,8), %rsi
movq 0x8(%rdx,%rcx,8), %rbp
movq %rsi, 0x40(%rsp)
cmpq %rbp, %rsi
je 0x3336
movq 0x158(%rsp), %rdx
movq (%rdx,%rax,8), %rcx
movq 0x8(%rdx,%rax,8), %rax
movq 0x4a0(%rsp), %rdx
movq 0x4b0(%rsp), %rsi
movq 0x40(%rsp), %rdi
cmpq %rax, %rcx
je 0x332d
movq (%rdi), %r8
movq 0x4b8(%rsp), %r9
movq %rcx, %r10
movq (%r10), %r11
imulq %rdx, %r11
addq %r8, %r11
cmpb $0x1, (%rsi,%r11)
jne 0x3324
movb $0x0, (%rsi,%r11)
movslq 0x4c0(%rsp), %rbx
leaq 0x1(%rbx), %r14
movl %r14d, 0x4c0(%rsp)
movl %r11d, 0x4(%r9,%rbx,4)
addq $0x8, %r10
cmpq %rax, %r10
jne 0x32f5
addq $0x8, %rdi
cmpq %rbp, %rdi
jne 0x32e2
movq 0x3e8(%rsp), %rax
shrq %rax
cmpq %rax, 0x30(%rsp)
ja 0x3523
movq 0xe0(%rsp), %rax
cmpq %rax, 0x20(%rsp)
je 0x3441
movq 0x488(%rsp), %r14
cmpq %r13, 0x60(%rsp)
je 0x3425
movq 0x20(%rsp), %rax
movq (%rax), %rax
movq 0x4b0(%rsp), %rcx
movq 0x4b8(%rsp), %rdx
movq %rdx, 0xe8(%rsp)
movq 0x4a0(%rsp), %rdx
movq %rax, 0x8(%rsp)
imulq %rax, %rdx
movq %rcx, 0x38(%rsp)
movq %rdx, 0x70(%rsp)
leaq (%rcx,%rdx), %rbx
movq 0x60(%rsp), %r12
movq (%r12), %r15
cmpq $-0x1, (%r14,%r15,8)
jne 0x341c
cmpb $0x1, (%rbx,%r15)
jne 0x341c
leaq 0x1a0(%rsp), %rdi
movq 0x8(%rsp), %rsi
movq %r15, %rdx
callq 0x3eac
testb %al, %al
jne 0x341c
addq 0x70(%rsp), %r15
movq 0x38(%rsp), %rax
cmpb $0x1, (%rax,%r15)
jne 0x341c
movq 0x38(%rsp), %rax
movb $0x0, (%rax,%r15)
movslq 0x4c0(%rsp), %rax
leaq 0x1(%rax), %rcx
movl %ecx, 0x4c0(%rsp)
movq 0xe8(%rsp), %rcx
movl %r15d, 0x4(%rcx,%rax,4)
addq $0x8, %r12
cmpq %r13, %r12
jne 0x33b6
movq 0x20(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x20(%rsp)
cmpq 0xe0(%rsp), %rax
jne 0x3367
movq 0x58(%rsp), %rax
cmpq %rax, 0x28(%rsp)
je 0x3523
movq 0x488(%rsp), %rbx
cmpq %rbp, 0x40(%rsp)
je 0x350a
movq 0x28(%rsp), %rax
movq (%rax), %r12
movq 0x4b0(%rsp), %rax
movq 0x4b8(%rsp), %rcx
movq %rcx, 0x20(%rsp)
movq 0x4a0(%rsp), %rcx
imulq %r12, %rcx
movq %rax, 0x8(%rsp)
movq %rcx, 0x38(%rsp)
leaq (%rax,%rcx), %r14
movq 0x40(%rsp), %r13
movq (%r13), %r15
cmpq $-0x1, (%rbx,%r15,8)
jne 0x3501
cmpb $0x1, (%r14,%r15)
jne 0x3501
leaq 0x1a0(%rsp), %rdi
movq %r12, %rsi
movq %r15, %rdx
callq 0x3eac
testb %al, %al
jne 0x3501
addq 0x38(%rsp), %r15
movq 0x8(%rsp), %rax
cmpb $0x1, (%rax,%r15)
jne 0x3501
movq 0x8(%rsp), %rax
movb $0x0, (%rax,%r15)
movslq 0x4c0(%rsp), %rax
leaq 0x1(%rax), %rcx
movl %ecx, 0x4c0(%rsp)
movq 0x20(%rsp), %rcx
movl %r15d, 0x4(%rcx,%rax,4)
addq $0x8, %r13
cmpq %rbp, %r13
jne 0x34a0
movq 0x28(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x28(%rsp)
cmpq 0x58(%rsp), %rax
jne 0x3459
leaq 0x1a0(%rsp), %rdi
movq 0x10(%rsp), %rsi
movq 0x198(%rsp), %rdx
callq 0x3eac
testb %al, %al
je 0x35f5
movq 0x30(%rsp), %rcx
incq %rcx
movq 0x50(%rsp), %r9
addq $0x8, %r9
movb $0x1, %al
leaq 0xb0(%rsp), %rbp
movq 0xd8(%rsp), %r10
movq 0xd0(%rsp), %r11
jmp 0x366c
cmpq $-0x1, %rsi
je 0x3583
movq $-0x1, (%r10,%rsi,8)
movq 0x30(%rsp), %rax
leaq -0x1(%rax), %rcx
testq %rax, %rax
movq 0x50(%rsp), %r9
movq 0x130(%rsp), %rbx
je 0x366a
addq $-0x8, %r9
movslq 0x4d0(%rsp), %rax
leal -0x1(%rax), %edx
movl %edx, 0x4d0(%rsp)
movq 0xf0(%rsp), %rdx
movslq (%rdx,%rax,4), %rdx
movslq 0x4c0(%rsp), %rsi
movb $0x1, %al
cmpl %edx, %esi
jle 0x366c
leal -0x1(%rsi), %edi
movl %edi, 0x4c0(%rsp)
movslq (%rbx,%rsi,4), %r8
decq %rsi
movb $0x1, (%r11,%r8)
decl %edi
cmpq %rdx, %rsi
jg 0x35d9
jmp 0x366c
movslq 0x4d0(%rsp), %rax
leal -0x1(%rax), %ecx
movl %ecx, 0x4d0(%rsp)
movq 0xf0(%rsp), %rcx
movslq (%rcx,%rax,4), %rcx
movslq 0x4c0(%rsp), %rdx
movb $0x1, %al
cmpl %ecx, %edx
leaq 0xb0(%rsp), %rbp
movq 0x50(%rsp), %r9
movq 0xd8(%rsp), %r10
movq 0xd0(%rsp), %r11
movq 0x130(%rsp), %rbx
jle 0x3663
leal -0x1(%rdx), %esi
movl %esi, 0x4c0(%rsp)
movslq (%rbx,%rdx,4), %rdi
decq %rdx
movb $0x1, (%r11,%rdi)
decl %esi
cmpq %rcx, %rdx
jg 0x3649
movq 0x30(%rsp), %rcx
jmp 0x366c
xorl %eax, %eax
testb %al, %al
jne 0x2f15
jmp 0x3912
movq %r12, %r13
leaq 0xb0(%rsp), %rbp
movq 0xd8(%rsp), %r10
movq 0xd0(%rsp), %r11
jmp 0x304a
movq 0x138(%rsp), %rax
movq 0x20(%rax), %rbx
movq 0x18(%rax), %rax
subq %rax, %rbx
je 0x38a5
sarq $0x7, %rbx
xorl %r14d, %r14d
movq 0x488(%rsp), %r15
cmpq $-0x1, (%r15,%r14,8)
jne 0x3899
movq 0x4a0(%rsp), %rax
imulq 0x10(%rsp), %rax
addq 0x4b0(%rsp), %rax
cmpb $0x1, (%r14,%rax)
jne 0x3899
movq 0x418(%rsp), %rax
movq 0x420(%rsp), %rdx
movq 0x18(%rax), %rax
movq 0x10(%rsp), %rcx
shlq $0x7, %rcx
movq 0x18(%rdx), %rsi
movq %r14, %rdi
shlq $0x7, %rdi
movq 0x68(%rax,%rcx), %rdx
cmpq 0x68(%rsi,%rdi), %rdx
jne 0x3899
testq %rdx, %rdx
je 0x3747
leaq 0x60(%rax,%rcx), %rax
leaq 0x60(%rsi,%rdi), %rcx
movq (%rcx), %rsi
movq (%rax), %rdi
callq 0x2130
testl %eax, %eax
jne 0x3899
leaq 0x1a0(%rsp), %rdi
movq 0x10(%rsp), %rsi
movq %r14, %rdx
callq 0x4028
testb %al, %al
je 0x3899
movq 0x460(%rsp), %rax
movq 0x10(%rsp), %rcx
movq %r14, (%rax,%rcx,8)
movq %rcx, (%r15,%r14,8)
movl $0x12, %edx
movq 0x5853(%rip), %rdi      # 0x8fd8
leaq 0x2995(%rip), %rsi      # 0x6121
callq 0x2150
movq 0x5840(%rip), %rcx      # 0x8fd8
movq (%rcx), %rax
movq -0x18(%rax), %rdi
addq %rcx, %rdi
movl $0xa, %esi
callq 0x2100
movsbl %al, %esi
movq 0x5822(%rip), %rdi      # 0x8fd8
callq 0x2040
movq %rax, %rdi
callq 0x20d0
movq 0x430(%rsp), %rax
movq 0x20(%rax), %r13
movq 0x18(%rax), %rax
subq %rax, %r13
je 0x386b
sarq $0x7, %r13
xorl %r12d, %r12d
movl $0x2, %edx
movq 0x57e9(%rip), %rdi      # 0x8fd8
leaq 0x293e(%rip), %rsi      # 0x6134
callq 0x2150
movq 0x57d6(%rip), %rdi      # 0x8fd8
movq %r12, %rsi
callq 0x20c0
movq %rax, %r15
movl $0x4, %edx
movq %rax, %rdi
leaq 0x291b(%rip), %rsi      # 0x6137
callq 0x2150
movq 0x460(%rsp), %rax
movq (%rax,%r12,8), %rsi
movq %r15, %rdi
callq 0x20c0
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x2100
movsbl %al, %esi
movq %r15, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x20d0
incq %r12
cmpq %r12, %r13
jne 0x37e3
movq 0x428(%rsp), %rax
incl (%rax)
movq 0x460(%rsp), %rax
movq $-0x1, %rcx
movq 0x10(%rsp), %rdx
movq %rcx, (%rax,%rdx,8)
movq 0x488(%rsp), %rax
movq %rcx, (%rax,%r14,8)
incq %r14
cmpq %rbx, %r14
jne 0x36b9
movq 0x4c8(%rsp), %rax
movslq 0x4d0(%rsp), %rcx
leal -0x1(%rcx), %edx
movl %edx, 0x4d0(%rsp)
movslq (%rax,%rcx,4), %rax
movslq 0x4c0(%rsp), %rcx
cmpl %eax, %ecx
jle 0x38fc
movq 0x4b0(%rsp), %rdx
movq 0x4b8(%rsp), %rsi
leal -0x1(%rcx), %edi
movl %edi, 0x4c0(%rsp)
movslq (%rsi,%rcx,4), %r8
decq %rcx
movb $0x1, (%rdx,%r8)
decl %edi
cmpq %rax, %rcx
jg 0x38e2
movq 0x50(%rsp), %r9
addq $-0x8, %r9
movq 0x30(%rsp), %rcx
decq %rcx
jmp 0x2e38
leaq 0x1a0(%rsp), %rdi
callq 0x3cf6
movq 0x140(%rsp), %rdi
testq %rdi, %rdi
je 0x393c
movq 0x150(%rsp), %rsi
subq %rdi, %rsi
callq 0x2120
movq 0x5695(%rip), %rdi      # 0x8fd8
leaq 0x274d(%rip), %rsi      # 0x6097
movl $0x14, %edx
callq 0x2150
movl 0x7c(%rsp), %esi
movq 0x5679(%rip), %rdi      # 0x8fd8
callq 0x21e0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2100
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x20d0
movq 0xc8(%rsp), %rdi
testq %rdi, %rdi
je 0x39a5
movl $0x1, %esi
callq 0x2120
movq %rbp, %rdi
callq 0x427c
movq 0x98(%rsp), %rdi
leaq 0x98(%rsp), %r14
cmpq %r14, %rdi
je 0x39d7
movq (%rdi), %rbx
movl $0x28, %esi
callq 0x2120
movq %rbx, %rdi
cmpq %r14, %rbx
jne 0x39c2
movq 0x128(%rsp), %rdi
testq %rdi, %rdi
leaq 0xf8(%rsp), %r14
je 0x39f6
movl $0x1, %esi
callq 0x2120
leaq 0x110(%rsp), %rdi
callq 0x427c
movq 0xf8(%rsp), %rdi
cmpq %r14, %rdi
je 0x3a25
movq (%rdi), %rbx
movl $0x28, %esi
callq 0x2120
movq %rbx, %rdi
cmpq %r14, %rbx
jne 0x3a10
xorl %eax, %eax
addq $0x578, %rsp            # imm = 0x578
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %r15
jmp 0x3b0c
movq %rax, %r15
jmp 0x3b14
movq %rax, %r15
jmp 0x3b1c
movq %rax, %r15
jmp 0x3b24
movq %rax, %r15
jmp 0x3b2c
movq %rax, %r15
jmp 0x3b56
movq %rax, %r15
jmp 0x3b73
movq %rax, %r15
jmp 0x3b90
movq %rax, %r15
jmp 0x3c1a
movq %rax, %r15
jmp 0x3cb6
jmp 0x3abe
jmp 0x3abe
jmp 0x3abe
jmp 0x3abe
jmp 0x3abe
jmp 0x3abe
jmp 0x3abe
jmp 0x3abe
jmp 0x3abe
jmp 0x3ab4
jmp 0x3ab4
jmp 0x3ab4
jmp 0x3ab4
jmp 0x3ab4
jmp 0x3ab4
jmp 0x3ca6
movq %rax, %r15
jmp 0x3b39
movq %rax, %r15
jmp 0x3ce0
jmp 0x3abe
movq %rax, %r15
jmp 0x3cd3
jmp 0x3acc
jmp 0x3acc
jmp 0x3acc
movq %rax, %r15
leaq 0x4d8(%rsp), %r14
leaq 0x4f0(%rsp), %rbx
leaq 0x508(%rsp), %r12
leaq 0x520(%rsp), %r13
movq 0x80(%rsp), %rdi
testq %rdi, %rdi
je 0x3b0c
movq 0x90(%rsp), %rsi
subq %rdi, %rsi
callq 0x2120
movq %r13, %rdi
callq 0x57ba
movq %r12, %rdi
callq 0x57ba
movq %rbx, %rdi
callq 0x57ba
movq %r14, %rdi
callq 0x57ba
leaq 0x498(%rsp), %rdi
callq 0x3e7a
movq 0x470(%rsp), %rdi
testq %rdi, %rdi
je 0x3b56
movq 0x480(%rsp), %rsi
subq %rdi, %rsi
callq 0x2120
movq 0x448(%rsp), %rdi
testq %rdi, %rdi
je 0x3b73
movq 0x458(%rsp), %rsi
subq %rdi, %rsi
callq 0x2120
movq 0x3f8(%rsp), %rdi
testq %rdi, %rdi
je 0x3b90
movq 0x408(%rsp), %rsi
subq %rdi, %rsi
callq 0x2120
leaq 0x388(%rsp), %rdi
callq 0x57ba
leaq 0x370(%rsp), %rdi
callq 0x57ba
leaq 0x358(%rsp), %rdi
callq 0x57ba
leaq 0x340(%rsp), %rbx
movq %rbx, %rdi
callq 0x57ba
movq -0x38(%rbx), %rdi
testq %rdi, %rdi
je 0x3be0
movq 0x318(%rsp), %rsi
subq %rdi, %rsi
callq 0x2120
movq 0x2f0(%rsp), %rdi
testq %rdi, %rdi
je 0x3bfd
movq 0x300(%rsp), %rsi
subq %rdi, %rsi
callq 0x2120
movq 0x2d8(%rsp), %rdi
testq %rdi, %rdi
je 0x3c1a
movq 0x2e8(%rsp), %rsi
subq %rdi, %rsi
callq 0x2120
leaq 0x270(%rsp), %rdi
callq 0x57ba
leaq 0x258(%rsp), %rdi
callq 0x57ba
leaq 0x240(%rsp), %rdi
callq 0x57ba
leaq 0x228(%rsp), %rbx
movq %rbx, %rdi
callq 0x57ba
movq -0x38(%rbx), %rdi
testq %rdi, %rdi
je 0x3c6a
movq 0x200(%rsp), %rsi
subq %rdi, %rsi
callq 0x2120
movq 0x1d8(%rsp), %rdi
testq %rdi, %rdi
je 0x3c87
movq 0x1e8(%rsp), %rsi
subq %rdi, %rsi
callq 0x2120
movq 0x1c0(%rsp), %rdi
testq %rdi, %rdi
je 0x3cb6
movq 0x1d0(%rsp), %rsi
subq %rdi, %rsi
callq 0x2120
jmp 0x3cb6
movq %rax, %r15
leaq 0x1a0(%rsp), %rdi
callq 0x3cf6
movq 0x140(%rsp), %rdi
testq %rdi, %rdi
je 0x3cd3
movq 0x150(%rsp), %rsi
subq %rdi, %rsi
callq 0x2120
leaq 0x98(%rsp), %rdi
callq 0x41fe
leaq 0xf8(%rsp), %rdi
callq 0x41fe
movq %r15, %rdi
callq 0x21f0
nop