// File: /workspace/github_cpp_makefile_star2_O3/xnevs[P]bullimp/examples/simple.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);

    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);

    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;
                        });

    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 0x100(%rsp), %rdi
leaq 0x1b0(%rsp), %rsi
callq 0x2f3e
leaq 0x118(%rsp), %r14
movabsq $0x4ec4ec4ec4ec4ec5, %r13 # imm = 0x4EC4EC4EC4EC4EC5
movq 0x8(%r14), %rsi
subq (%r14), %rsi
sarq $0x3, %rsi
imulq %r13, %rsi
incq %rsi
movq %r14, %rdi
callq 0x30b8
movq 0x120(%rsp), %rbx
subq 0x118(%rsp), %rbx
sarq $0x3, %rbx
imulq %r13, %rbx
leaq 0x1(%rbx), %rsi
movq %r14, %rdi
callq 0x30b8
movq %r14, %rdi
movq 0x120(%rsp), %r14
subq 0x118(%rsp), %r14
sarq $0x3, %r14
imulq %r13, %r14
leaq 0x1(%r14), %rsi
callq 0x30b8
leaq 0x100(%rsp), %r8
decq %rbx
decq %r14
movq 0x20(%r8), %r15
subq 0x18(%r8), %r15
leaq 0x1b0(%rsp), %rdi
leaq 0xb8(%rsp), %rcx
movq %rbx, %rsi
movq %r14, %rdx
callq 0x33b1
sarq $0x3, %r15
imulq %r13, %r15
decq %r15
leaq 0x1b0(%rsp), %rdi
leaq 0xb8(%rsp), %rcx
leaq 0x100(%rsp), %r8
movq %r14, %rsi
movq %r15, %rdx
callq 0x33b1
leaq 0x1b0(%rsp), %rdi
leaq 0xb8(%rsp), %rcx
leaq 0x100(%rsp), %r8
movq %r15, %rsi
movq %rbx, %rdx
callq 0x33b1
leaq 0xb8(%rsp), %rdi
leaq 0x1b0(%rsp), %rsi
callq 0x2f3e
leaq 0xd0(%rsp), %r15
movq 0x8(%r15), %rsi
subq (%r15), %rsi
sarq $0x3, %rsi
imulq %r13, %rsi
incq %rsi
movq %r15, %rdi
callq 0x30b8
movq 0xd8(%rsp), %rbx
subq 0xd0(%rsp), %rbx
sarq $0x3, %rbx
imulq %r13, %rbx
leaq 0x1(%rbx), %rsi
movq %r15, %rdi
callq 0x30b8
movq 0xd8(%rsp), %r14
subq 0xd0(%rsp), %r14
sarq $0x3, %r14
imulq %r13, %r14
leaq 0x1(%r14), %rsi
movq %r15, %rdi
callq 0x30b8
movq 0xd8(%rsp), %r12
subq 0xd0(%rsp), %r12
sarq $0x3, %r12
imulq %r13, %r12
leaq 0x1(%r12), %rsi
movq %r15, %rdi
callq 0x30b8
leaq 0xb8(%rsp), %r8
decq %rbx
decq %r14
movq 0x20(%r8), %r15
subq 0x18(%r8), %r15
leaq 0x1b0(%rsp), %rdi
leaq 0x80(%rsp), %rcx
movq %rbx, %rsi
movq %r14, %rdx
callq 0x33b1
decq %r12
leaq 0x1b0(%rsp), %rdi
leaq 0x80(%rsp), %rcx
leaq 0xb8(%rsp), %r8
movq %r14, %rsi
movq %r12, %rdx
callq 0x33b1
leaq 0x1b0(%rsp), %rdi
leaq 0x80(%rsp), %rcx
leaq 0xb8(%rsp), %r8
movq %r12, %rsi
movq %rbx, %rdx
callq 0x33b1
sarq $0x3, %r15
imulq %r13, %r15
decq %r15
leaq 0x1b0(%rsp), %rdi
leaq 0x80(%rsp), %rcx
leaq 0xb8(%rsp), %r8
movq %r14, %rsi
movq %r15, %rdx
callq 0x33b1
leaq 0xb8(%rsp), %r14
leaq 0x1b0(%rsp), %rdi
leaq 0x80(%rsp), %rcx
movq %r15, %rsi
movq %rbx, %rdx
movq %r14, %r8
callq 0x33b1
movl $0x0, 0x7c(%rsp)
leaq 0x138(%rsp), %rdi
leaq 0x100(%rsp), %rsi
callq 0x3f5b
leaq 0x100(%rsp), %rbx
leaq 0x1c0(%rsp), %rdi
movq %rbx, -0x10(%rdi)
movq %r14, -0x8(%rdi)
movq %rbx, %rsi
callq 0x35d0
leaq 0x2d8(%rsp), %rdi
leaq 0xb8(%rsp), %rsi
callq 0x35d0
movq 0x120(%rsp), %rax
movq 0xd8(%rsp), %rcx
leaq 0x408(%rsp), %rdi
subq 0x118(%rsp), %rax
subq 0xd0(%rsp), %rcx
sarq $0x3, %rax
sarq $0x3, %rcx
imulq %r13, %rax
imulq %r13, %rcx
movq %rax, -0x10(%rdi)
movq %rcx, -0x8(%rdi)
leaq 0x138(%rsp), %rsi
callq 0x3a0e
leaq 0x7c(%rsp), %rax
leaq 0x448(%rsp), %rdi
leaq 0x5f(%rsp), %rsi
leaq 0x5e(%rsp), %rdx
movq %rax, -0x20(%rdi)
movq %rbx, -0x18(%rdi)
movq %rsi, -0x10(%rdi)
movq %rdx, -0x8(%rdi)
leaq 0x80(%rsp), %rdx
movq -0x50(%rdi), %rsi
movq $-0x1, (%rdx)
leaq 0x20(%rsp), %rcx
callq 0x3a90
leaq 0x470(%rsp), %rdi
leaq 0x80(%rsp), %rdx
movq -0x28(%rdi), %rax
movq -0x70(%rdi), %rsi
movq $-0x1, (%rdx)
movq %rax, -0x10(%rdi)
leaq 0x20(%rsp), %rcx
callq 0x3a90
movq 0x470(%rsp), %r14
movq %r14, 0x488(%rsp)
movq 0x3f8(%rsp), %rbx
movq 0x400(%rsp), %r15
movq %rbx, 0x498(%rsp)
movq %r15, 0x4a0(%rsp)
imulq %rbx, %r15
movq %r15, %rdi
callq 0x1030
movq %rax, 0x4b0(%rsp)
movq %r15, %rax
shrq $0x3e, %rax
shlq $0x2, %r15
negq %rax
sbbq %r12, %r12
orq %r15, %r12
movq %r12, %rdi
callq 0x1030
movq %rax, 0x4b8(%rsp)
movq $-0x1, 0x4c0(%rsp)
movq %r12, %rdi
callq 0x1030
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 0x3b66
leaq 0x4f0(%rsp), %r15
movq -0xf8(%r15), %rsi
leaq 0x80(%rsp), %rdx
movq %r15, %rdi
callq 0x3b66
leaq 0x508(%rsp), %r12
movq -0x110(%r12), %rsi
leaq 0x80(%rsp), %rdx
movq %r12, %rdi
callq 0x3b66
leaq 0x520(%rsp), %r13
movq -0x128(%r13), %rsi
leaq 0x80(%rsp), %rdx
movq %r13, %rdi
callq 0x3b66
movq 0x4d8(%rsp), %rax
movq 0x3f8(%rsp), %rsi
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 0x20(%rsp), %rdx
callq 0x3be8
movq 0x80(%rsp), %rbp
cmpq $0x0, 0x3f8(%rsp)
je 0x1878
movq 0x138(%rsp), %rax
xorl %ecx, %ecx
movq (%rax,%rcx,8), %rdx
movq %rcx, (%rbp,%rdx,8)
incq %rcx
cmpq %rcx, 0x3f8(%rsp)
ja 0x1862
movq 0x120(%rsp), %rcx
movq 0x118(%rsp), %rax
subq %rax, %rcx
je 0x1a22
sarq $0x3, %rcx
movabsq $0x4ec4ec4ec4ec4ec5, %rax # imm = 0x4EC4EC4EC4EC4EC5
xorl %r12d, %r12d
imulq %rax, %rcx
movq %rcx, 0x18(%rsp)
movq 0x298(%rsp), %rax
leaq (%r12,%r12,2), %r14
movq (%rbp,%r12,8), %r13
movq (%rax,%r14,8), %r15
movq 0x8(%rax,%r14,8), %rbx
cmpq %rbx, %r15
je 0x190c
movq (%r15), %rax
movq %rax, 0x20(%rsp)
cmpq %r13, (%rbp,%rax,8)
jbe 0x1906
movq 0x538(%rsp), %rcx
leaq (%rcx,%r14,8), %rdi
movq 0x8(%rdi), %rsi
cmpq 0x10(%rdi), %rsi
je 0x18fc
movq %rax, (%rsi)
addq $0x8, %rsi
movq %rsi, 0x8(%rdi)
jmp 0x1906
leaq 0x20(%rsp), %rdx
callq 0x3e44
addq $0x8, %r15
jmp 0x18c5
movq 0x2a8(%rsp), %rax
movq (%rax,%r14,8), %r15
movq 0x8(%rax,%r14,8), %rbx
cmpq %rbx, %r15
je 0x1964
movq (%r15), %rax
movq %rax, 0x20(%rsp)
cmpq %r13, (%rbp,%rax,8)
jbe 0x195e
movq 0x548(%rsp), %rcx
leaq (%rcx,%r14,8), %rdi
movq 0x8(%rdi), %rsi
cmpq 0x10(%rdi), %rsi
je 0x1954
movq %rax, (%rsi)
addq $0x8, %rsi
movq %rsi, 0x8(%rdi)
jmp 0x195e
leaq 0x20(%rsp), %rdx
callq 0x3e44
addq $0x8, %r15
jmp 0x191d
movq 0x2b8(%rsp), %rax
movq (%rax,%r14,8), %r15
movq 0x8(%rax,%r14,8), %rbx
cmpq %rbx, %r15
je 0x19bc
movq (%r15), %rax
movq %rax, 0x20(%rsp)
cmpq %r13, (%rbp,%rax,8)
jbe 0x19b6
movq 0x558(%rsp), %rcx
leaq (%rcx,%r14,8), %rdi
movq 0x8(%rdi), %rsi
cmpq 0x10(%rdi), %rsi
je 0x19ac
movq %rax, (%rsi)
addq $0x8, %rsi
movq %rsi, 0x8(%rdi)
jmp 0x19b6
leaq 0x20(%rsp), %rdx
callq 0x3e44
addq $0x8, %r15
jmp 0x1975
movq 0x2c8(%rsp), %rax
movq (%rax,%r14,8), %r15
movq 0x8(%rax,%r14,8), %rbx
cmpq %rbx, %r15
je 0x1a14
movq (%r15), %rax
movq %rax, 0x20(%rsp)
cmpq %r13, (%rbp,%rax,8)
jbe 0x1a0e
movq 0x568(%rsp), %rcx
leaq (%rcx,%r14,8), %rdi
movq 0x8(%rdi), %rsi
cmpq 0x10(%rdi), %rsi
je 0x1a04
movq %rax, (%rsi)
addq $0x8, %rsi
movq %rsi, 0x8(%rdi)
jmp 0x1a0e
leaq 0x20(%rsp), %rdx
callq 0x3e44
addq $0x8, %r15
jmp 0x19cd
incq %r12
cmpq 0x18(%rsp), %r12
jne 0x18ab
movq 0x80(%rsp), %rdi
testq %rdi, %rdi
je 0x1a3f
movq 0x90(%rsp), %rsi
subq %rdi, %rsi
callq 0x1120
movq 0x1b0(%rsp), %rax
movq 0x18(%rax), %rcx
movq 0x20(%rax), %rax
subq %rcx, %rax
movq %rcx, 0x60(%rsp)
je 0x1d04
movq 0x1b8(%rsp), %rcx
sarq $0x3, %rax
movabsq $0x4ec4ec4ec4ec4ec5, %r15 # imm = 0x4EC4EC4EC4EC4EC5
movq 0x4a0(%rsp), %rsi
movq 0x4b0(%rsp), %rdi
xorl %r9d, %r9d
imulq %r15, %rax
movq %rax, 0x28(%rsp)
movq 0x18(%rcx), %rax
movq 0x20(%rcx), %rcx
movq %rcx, %rdx
subq %rax, %rdx
leaq 0x58(%rax), %r8
sarq $0x3, %rdx
imulq %r15, %rdx
cmpq %rax, %rcx
je 0x1ae8
movq 0x60(%rsp), %rbx
imulq $0x68, %r9, %r11
xorl %r14d, %r14d
movq 0x28(%rbx,%r11), %r10
movq 0x58(%rbx,%r11), %r11
movq %r8, %rbx
cmpq %r11, (%rbx)
jae 0x1ad0
xorl %ebp, %ebp
jmp 0x1ad8
cmpq %r10, -0x30(%rbx)
setae %bpl
movb %bpl, (%rdi,%r14)
incq %r14
addq $0x68, %rbx
cmpq %r14, %rdx
jne 0x1ac7
incq %r9
addq %rsi, %rdi
cmpq 0x28(%rsp), %r9
jne 0x1aa9
movq 0x1b8(%rsp), %rax
movq 0x18(%rax), %rcx
movq 0x20(%rax), %rax
movq %rax, %rdx
subq %rcx, %rdx
movq %rax, 0x40(%rsp)
movq %rcx, 0x38(%rsp)
sarq $0x3, %rdx
imulq %r15, %rdx
movq %rdx, 0x8(%rsp)
movq 0x4a0(%rsp), %rax
movq 0x4b0(%rsp), %rsi
xorl %ecx, %ecx
movq $0x0, 0x50(%rsp)
movq %rax, 0xb0(%rsp)
movq %rsi, 0x68(%rsp)
movq 0x40(%rsp), %rax
movq %rcx, 0x70(%rsp)
cmpq 0x38(%rsp), %rax
je 0x1ce6
movq %rcx, %rdi
imulq 0xb0(%rsp), %rdi
movq 0x60(%rsp), %r9
imulq $0x68, %rcx, %rax
xorl %r12d, %r12d
addq 0x68(%rsp), %rdi
leaq (%r9,%rax), %rsi
leaq 0x8(%r9,%rax), %r8
leaq 0x38(%r9,%rax), %rax
movq %rsi, 0x98(%rsp)
movq %r8, 0x18(%rsp)
movq %rax, 0x30(%rsp)
movq %rdi, 0x10(%rsp)
cmpb $0x1, (%rdi,%r12)
jne 0x1cda
movq 0x98(%rsp), %rax
movq 0x18(%rax), %rbx
cmpq 0x18(%rsp), %rbx
je 0x1c37
movq 0x38(%rsp), %rcx
imulq $0x68, %r12, %rax
leaq 0x8(%rcx,%rax), %r14
movq 0x10(%r14), %rbp
cmpq %r14, %rbp
je 0x1cc4
movq 0x4a0(%rsp), %rax
movq 0x4b0(%rsp), %rcx
movq %rax, 0x48(%rsp)
movq 0x20(%rbx), %r15
movq %rcx, %r13
imulq %rax, %r15
movq %rbp, %rax
addq %rcx, %r15
movq 0x20(%rax), %rcx
cmpb $0x0, (%r15,%rcx)
jne 0x1c1d
movq %rax, %rdi
callq 0x1150
cmpq %r14, %rax
jne 0x1c00
jmp 0x1cc4
movq %rbx, %rdi
callq 0x1150
movq %rax, %rbx
movq %r13, %rcx
cmpq 0x18(%rsp), %rax
movq 0x48(%rsp), %rax
jne 0x1bef
movq 0x18(%rsp), %rax
movq 0x40(%rax), %rbx
cmpq 0x30(%rsp), %rbx
je 0x1cb8
movq 0x38(%rsp), %rcx
imulq $0x68, %r12, %rax
leaq 0x38(%rcx,%rax), %r14
movq 0x10(%r14), %rbp
cmpq %r14, %rbp
je 0x1cc4
movq 0x4a0(%rsp), %rcx
movq 0x4b0(%rsp), %rax
movq %rcx, 0x48(%rsp)
movq 0x20(%rbx), %r15
movq %rax, %r13
imulq %rcx, %r15
addq %rax, %r15
movq %rbp, %rax
movq 0x20(%rax), %rcx
cmpb $0x0, (%r15,%rcx)
jne 0x1c9e
movq %rax, %rdi
callq 0x1150
cmpq %r14, %rax
jne 0x1c84
jmp 0x1cc4
movq %rbx, %rdi
callq 0x1150
movq 0x48(%rsp), %rcx
movq %rax, %rbx
cmpq 0x30(%rsp), %rax
movq %r13, %rax
jne 0x1c73
movq 0x8(%rsp), %rdx
movq 0x10(%rsp), %rdi
jmp 0x1cda
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rdx
movb $0x1, %al
movq %rax, 0x50(%rsp)
movb $0x0, (%rdi,%r12)
incq %r12
cmpq %rdx, %r12
jne 0x1ba1
movq 0x70(%rsp), %rcx
incq %rcx
cmpq 0x28(%rsp), %rcx
jne 0x1b4a
testb $0x1, 0x50(%rsp)
jne 0x1b22
leaq 0x1b0(%rsp), %rax
xorl %edi, %edi
movq 0x258(%rax), %rbp
movq 0x3f8(%rsp), %rcx
movq 0x1b8(%rsp), %rax
decq %rcx
cmpq %rcx, %rdi
jae 0x24f9
movq 0x488(%rsp), %rcx
movq 0x18(%rax), %rdx
movq 0x4c8(%rsp), %rsi
movq 0x460(%rsp), %r8
movq %rcx, 0xf0(%rsp)
movq 0x20(%rax), %rcx
movq %rdx, 0x158(%rsp)
movq %rsi, 0x60(%rsp)
movq 0x3d0(%rsp), %rsi
movabsq $0x4ec4ec4ec4ec4ec5, %rax # imm = 0x4EC4EC4EC4EC4EC5
movq %r8, 0x68(%rsp)
movq %rcx, 0x150(%rsp)
subq %rdx, %rcx
movq 0x4b0(%rsp), %rdx
movq %rsi, 0x178(%rsp)
movq 0x3e0(%rsp), %rsi
sarq $0x3, %rcx
imulq %rax, %rcx
movq %rdx, 0x70(%rsp)
movq 0x538(%rsp), %rdx
movq %rsi, 0x170(%rsp)
movq 0x3c0(%rsp), %rsi
movq %rcx, 0x98(%rsp)
movq %rdx, 0x1a0(%rsp)
movq 0x548(%rsp), %rdx
movq %rsi, 0x188(%rsp)
movq 0x568(%rsp), %rsi
movq %rdx, 0x198(%rsp)
movq 0x3b0(%rsp), %rdx
movq %rsi, 0x160(%rsp)
movq %rdx, 0x190(%rsp)
movq 0x558(%rsp), %rdx
movq %rdx, 0x168(%rsp)
movq 0x4b8(%rsp), %rdx
movq %rdx, 0xf8(%rsp)
movq (%rbp), %rsi
movq %rbp, 0x10(%rsp)
movq %rdi, 0x8(%rsp)
movq (%r8,%rsi,8), %rax
cmpq $-0x1, %rax
je 0x1e61
movq 0xf0(%rsp), %rdx
movq %rsi, %r13
movq $-0x1, (%rdx,%rax,8)
movq (%r8,%rsi,8), %r15
incq %r15
jmp 0x1e67
movq %rsi, %r13
xorl %r15d, %r15d
cmpq %rcx, %r15
je 0x1ec7
movq 0x4a0(%rsp), %r14
movq 0x488(%rsp), %r12
leaq 0x1(%r15,%r15,2), %rbx
imulq %r13, %r14
addq 0x70(%rsp), %r14
cmpb $0x1, (%r14,%r15)
jne 0x1ebb
cmpq $-0x1, (%r12,%r15,8)
jne 0x1ebb
leaq 0x1b0(%rsp), %rdi
movq %r13, %rsi
movq %r15, %rdx
callq 0x2e02
movq 0x98(%rsp), %rcx
testb %al, %al
jne 0x1f64
incq %r15
addq $0x3, %rbx
cmpq %r15, %rcx
jne 0x1e8a
movq 0x68(%rsp), %r8
cmpq $-0x1, %r13
je 0x1eda
movq $-0x1, (%r8,%r13,8)
movq 0x8(%rsp), %rdi
movq 0x10(%rsp), %rbp
movq 0x70(%rsp), %r9
movq 0xf8(%rsp), %r10
subq $0x1, %rdi
jb 0x275b
movslq 0x4d0(%rsp), %rax
movq 0x60(%rsp), %rdx
addq $-0x8, %rbp
leal -0x1(%rax), %ecx
movl %ecx, 0x4d0(%rsp)
movslq (%rdx,%rax,4), %rax
movslq 0x4c0(%rsp), %rcx
cmpl %eax, %ecx
jle 0x1f43
leal -0x1(%rcx), %edx
movl %edx, 0x4c0(%rsp)
decl %edx
movslq (%r10,%rcx,4), %rsi
decq %rcx
movb $0x1, (%r9,%rsi)
cmpq %rax, %rcx
jg 0x1f29
movq 0x3f8(%rsp), %rax
movq 0x98(%rsp), %rcx
decq %rax
cmpq %rax, %rdi
jb 0x1e2d
jmp 0x2525
cmpq $-0x1, %r15
je 0x1ec7
movq 0x68(%rsp), %rax
movq 0x60(%rsp), %rsi
movq %r13, 0x180(%rsp)
movq %r15, (%rax,%r13,8)
movq 0xf0(%rsp), %rax
movq %r13, (%rax,%r15,8)
movslq 0x4d0(%rsp), %rcx
movl 0x4c0(%rsp), %eax
leaq 0x1(%rcx), %rdx
movl %edx, 0x4d0(%rsp)
movl %eax, 0x4(%rsi,%rcx,4)
movq 0x1a0(%rsp), %rsi
movl %eax, 0x4c4(%rsp)
leaq (%r13,%r13,2), %rax
movq (%rsi,%rax,8), %rdx
movq 0x8(%rsi,%rax,8), %rcx
movq %rdx, 0x40(%rsp)
movq %rcx, 0x30(%rsp)
cmpq %rcx, %rdx
je 0x2067
movq 0x178(%rsp), %rdx
movq 0x488(%rsp), %rsi
movq 0x40(%rsp), %rdi
movq -0x8(%rdx,%rbx,8), %rcx
movq (%rdx,%rbx,8), %rdx
cmpq %rdx, %rcx
je 0x205c
movq 0x4a0(%rsp), %r8
movq 0x4b0(%rsp), %r9
movq 0x4b8(%rsp), %r10
movq %rcx, %r11
imulq (%rdi), %r8
movq (%r11), %r14
cmpq $-0x1, (%rsi,%r14,8)
jne 0x2053
addq %r8, %r14
cmpb $0x1, (%r9,%r14)
jne 0x2053
movb $0x0, (%r9,%r14)
movslq 0x4c0(%rsp), %r12
leaq 0x1(%r12), %r13
movl %r13d, 0x4c0(%rsp)
movl %r14d, 0x4(%r10,%r12,4)
addq $0x8, %r11
cmpq %rdx, %r11
jne 0x2020
addq $0x8, %rdi
cmpq 0x30(%rsp), %rdi
jne 0x1ffc
movq 0x198(%rsp), %rcx
movq (%rcx,%rax,8), %rdx
movq 0x8(%rcx,%rax,8), %rcx
movq %rdx, 0x28(%rsp)
movq %rcx, 0x48(%rsp)
cmpq %rcx, %rdx
je 0x2114
movq 0x170(%rsp), %rdx
movq 0x488(%rsp), %rsi
movq 0x28(%rsp), %rdi
movq -0x8(%rdx,%rbx,8), %rcx
movq (%rdx,%rbx,8), %rdx
cmpq %rdx, %rcx
je 0x2109
movq 0x4a0(%rsp), %r8
movq 0x4b0(%rsp), %r9
movq 0x4b8(%rsp), %r10
movq %rcx, %r11
imulq (%rdi), %r8
movq (%r11), %r14
cmpq $-0x1, (%rsi,%r14,8)
jne 0x2100
addq %r8, %r14
cmpb $0x1, (%r9,%r14)
jne 0x2100
movb $0x0, (%r9,%r14)
movslq 0x4c0(%rsp), %r12
leaq 0x1(%r12), %r13
movl %r13d, 0x4c0(%rsp)
movl %r14d, 0x4(%r10,%r12,4)
addq $0x8, %r11
cmpq %rdx, %r11
jne 0x20cd
addq $0x8, %rdi
cmpq 0x48(%rsp), %rdi
jne 0x20a9
movq 0x190(%rsp), %rcx
movq -0x8(%rcx,%rbx,8), %rdx
movq (%rcx,%rbx,8), %r12
movq %rdx, 0xa0(%rsp)
cmpq %r12, %rdx
je 0x21ae
movq 0x168(%rsp), %rdx
movq 0x4a0(%rsp), %rsi
movq 0x4b0(%rsp), %rdi
movq 0xa0(%rsp), %r8
movq (%rdx,%rax,8), %rcx
movq 0x8(%rdx,%rax,8), %rdx
cmpq %rdx, %rcx
je 0x21a5
movq (%r8), %r9
movq 0x4b8(%rsp), %r10
movq %rcx, %r11
movq (%r11), %r14
imulq %rsi, %r14
addq %r9, %r14
cmpb $0x1, (%rdi,%r14)
jne 0x219c
movb $0x0, (%rdi,%r14)
movslq 0x4c0(%rsp), %r13
leaq 0x1(%r13), %rbp
movl %ebp, 0x4c0(%rsp)
movl %r14d, 0x4(%r10,%r13,4)
addq $0x8, %r11
cmpq %rdx, %r11
jne 0x216e
addq $0x8, %r8
cmpq %r12, %r8
jne 0x215b
movq 0x188(%rsp), %rcx
movq -0x8(%rcx,%rbx,8), %rdx
movq (%rcx,%rbx,8), %rcx
movq %rdx, 0xa8(%rsp)
movq %rcx, 0x18(%rsp)
cmpq %rcx, %rdx
je 0x2250
movq 0x160(%rsp), %rdx
movq 0x4b0(%rsp), %rsi
movq 0xa8(%rsp), %rdi
movq (%rdx,%rax,8), %rcx
movq 0x8(%rdx,%rax,8), %rax
movq 0x4a0(%rsp), %rdx
cmpq %rax, %rcx
je 0x2245
movq (%rdi), %r8
movq 0x4b8(%rsp), %r9
movq %rcx, %r10
movq (%r10), %r11
imulq %rdx, %r11
addq %r8, %r11
cmpb $0x1, (%rsi,%r11)
jne 0x223c
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 0x220d
addq $0x8, %rdi
cmpq 0x18(%rsp), %rdi
jne 0x21fa
movq 0x3f8(%rsp), %rax
shrq %rax
cmpq %rax, 0x8(%rsp)
ja 0x2459
movq 0x30(%rsp), %rax
cmpq %rax, 0x40(%rsp)
je 0x235f
movq 0x488(%rsp), %r13
cmpq %r12, 0xa0(%rsp)
je 0x2346
movq 0x40(%rsp), %rax
movq 0x4b8(%rsp), %rdx
movq 0x4b0(%rsp), %rcx
movq 0xa0(%rsp), %rbp
movq (%rax), %rax
movq %rdx, 0x1a8(%rsp)
movq 0x4a0(%rsp), %rdx
movq %rcx, 0x50(%rsp)
imulq %rax, %rdx
movq %rax, 0x38(%rsp)
leaq (%rcx,%rdx), %r14
movq %rdx, 0xb0(%rsp)
movq (%rbp), %rbx
cmpq $-0x1, (%r13,%rbx,8)
jne 0x233d
cmpb $0x1, (%r14,%rbx)
jne 0x233d
movq 0x38(%rsp), %rsi
leaq 0x1b0(%rsp), %rdi
movq %rbx, %rdx
callq 0x2cf0
testb %al, %al
jne 0x233d
addq 0xb0(%rsp), %rbx
movq 0x50(%rsp), %rax
cmpb $0x1, (%rax,%rbx)
jne 0x233d
movq 0x50(%rsp), %rax
movq 0x1a8(%rsp), %rdx
movb $0x0, (%rax,%rbx)
movslq 0x4c0(%rsp), %rax
leaq 0x1(%rax), %rcx
movl %ecx, 0x4c0(%rsp)
movl %ebx, 0x4(%rdx,%rax,4)
addq $0x8, %rbp
cmpq %r12, %rbp
jne 0x22d6
movq 0x40(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x40(%rsp)
cmpq 0x30(%rsp), %rax
jne 0x227e
movq 0x48(%rsp), %rax
cmpq %rax, 0x28(%rsp)
je 0x2459
movq 0x488(%rsp), %r12
movq 0x18(%rsp), %rax
cmpq %rax, 0xa8(%rsp)
je 0x2440
movq 0x28(%rsp), %rax
movq 0x4b8(%rsp), %rdx
movq 0x4b0(%rsp), %rcx
movq 0xa8(%rsp), %rbp
movq (%rax), %r14
movq %rdx, 0x30(%rsp)
movq 0x4a0(%rsp), %rdx
movq 0x18(%rsp), %rax
movq %rcx, 0x38(%rsp)
imulq %r14, %rdx
leaq (%rcx,%rdx), %r13
movq %rdx, 0x50(%rsp)
movq (%rbp), %rbx
cmpq $-0x1, (%r12,%rbx,8)
jne 0x2437
cmpb $0x1, (%r13,%rbx)
jne 0x2437
leaq 0x1b0(%rsp), %rdi
movq %r14, %rsi
movq %rbx, %rdx
callq 0x2cf0
testb %al, %al
movq 0x18(%rsp), %rax
jne 0x2437
addq 0x50(%rsp), %rbx
movq 0x38(%rsp), %rcx
cmpb $0x1, (%rcx,%rbx)
jne 0x2437
movq 0x38(%rsp), %rax
movq 0x30(%rsp), %rdx
movb $0x0, (%rax,%rbx)
movslq 0x4c0(%rsp), %rax
leaq 0x1(%rax), %rcx
movl %ecx, 0x4c0(%rsp)
movl %ebx, 0x4(%rdx,%rax,4)
movq 0x18(%rsp), %rax
addq $0x8, %rbp
cmpq %rax, %rbp
jne 0x23ce
movq 0x28(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x28(%rsp)
cmpq 0x48(%rsp), %rax
jne 0x2377
movq 0x180(%rsp), %rsi
leaq 0x1b0(%rsp), %rdi
movq %r15, %rdx
callq 0x2cf0
testb %al, %al
je 0x2490
movq 0x8(%rsp), %rdi
movq 0x10(%rsp), %rbp
movq 0x68(%rsp), %r8
incq %rdi
addq $0x8, %rbp
jmp 0x1f43
movslq 0x4d0(%rsp), %rax
movq 0x60(%rsp), %rdx
movq 0x10(%rsp), %rbp
movq 0x8(%rsp), %rdi
movq 0x68(%rsp), %r8
movq 0x70(%rsp), %r9
movq 0xf8(%rsp), %r10
leal -0x1(%rax), %ecx
movl %ecx, 0x4d0(%rsp)
movslq (%rdx,%rax,4), %rax
movslq 0x4c0(%rsp), %rcx
cmpl %eax, %ecx
jle 0x1f43
leal -0x1(%rcx), %edx
movl %edx, 0x4c0(%rsp)
decl %edx
movslq (%r10,%rcx,4), %rsi
decq %rcx
movb $0x1, (%r9,%rsi)
cmpq %rax, %rcx
jg 0x24da
jmp 0x1f43
movq 0x18(%rax), %rdx
movq 0x20(%rax), %rax
movabsq $0x4ec4ec4ec4ec4ec5, %rsi # imm = 0x4EC4EC4EC4EC4EC5
movq %rdi, 0x8(%rsp)
movq %rbp, 0x10(%rsp)
movq %rax, %rcx
subq %rdx, %rcx
sarq $0x3, %rcx
imulq %rsi, %rcx
jmp 0x253f
movq 0x158(%rsp), %rdx
movq 0x150(%rsp), %rax
movq %rdi, 0x8(%rsp)
movq %rbp, 0x10(%rsp)
cmpq %rdx, %rax
je 0x26ee
movq 0x10(%rsp), %rax
xorl %r12d, %r12d
movq (%rax), %r15
movq 0x488(%rsp), %rbx
cmpq $-0x1, (%rbx,%r12,8)
jne 0x26e2
movq 0x4a0(%rsp), %rax
imulq %r15, %rax
addq 0x4b0(%rsp), %rax
cmpb $0x1, (%r12,%rax)
jne 0x26e2
leaq 0x1b0(%rsp), %rdi
movq %r15, %rsi
movq %r12, %rdx
movq %rcx, %rbp
callq 0x2e02
movq %rbp, %rcx
testb %al, %al
je 0x26e2
movq 0x460(%rsp), %rax
movq %r12, (%rax,%r15,8)
movq %r15, (%rbx,%r12,8)
movq 0x5a1b(%rip), %rdi      # 0x7fd8
movl $0x12, %edx
leaq 0x2b49(%rip), %rsi      # 0x5112
callq 0x1140
movq 0x5a03(%rip), %rcx      # 0x7fd8
movq (%rcx), %rax
movq -0x18(%rax), %rdi
addq %rcx, %rdi
movl $0xa, %esi
callq 0x1100
movq 0x59e8(%rip), %rdi      # 0x7fd8
movsbl %al, %esi
callq 0x1040
movq %rax, %rdi
callq 0x10d0
movq 0x430(%rsp), %rax
movq 0x20(%rax), %r13
movq 0x18(%rax), %rax
subq %rax, %r13
je 0x26b6
sarq $0x3, %r13
movabsq $0x4ec4ec4ec4ec4ec5, %rax # imm = 0x4EC4EC4EC4EC4EC5
xorl %r14d, %r14d
imulq %rax, %r13
movq 0x59a3(%rip), %rdi      # 0x7fd8
movl $0x2, %edx
leaq 0x2ae4(%rip), %rsi      # 0x5125
callq 0x1140
movq 0x598b(%rip), %rdi      # 0x7fd8
movq %r14, %rsi
callq 0x10c0
movl $0x4, %edx
leaq 0x2ac7(%rip), %rsi      # 0x5128
movq %rax, %rdi
movq %rax, %rbx
callq 0x1140
movq 0x460(%rsp), %rax
movq (%rax,%r14,8), %rsi
movq %rbx, %rdi
callq 0x10c0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x1100
movsbl %al, %esi
movq %rbx, %rdi
callq 0x1040
movq %rax, %rdi
callq 0x10d0
incq %r14
cmpq %r14, %r13
jne 0x262e
movq 0x428(%rsp), %rax
movq $-0x1, %rcx
incl (%rax)
movq 0x460(%rsp), %rax
movq %rcx, (%rax,%r15,8)
movq 0x488(%rsp), %rax
movq %rcx, (%rax,%r12,8)
movq %rbp, %rcx
incq %r12
cmpq %rcx, %r12
jne 0x2553
movslq 0x4d0(%rsp), %rcx
movq 0x4c8(%rsp), %rax
leal -0x1(%rcx), %edx
movl %edx, 0x4d0(%rsp)
movslq (%rax,%rcx,4), %rax
movslq 0x4c0(%rsp), %rcx
cmpl %eax, %ecx
jle 0x2745
movq 0x4b0(%rsp), %rdx
movq 0x4b8(%rsp), %rsi
leal -0x1(%rcx), %edi
movl %edi, 0x4c0(%rsp)
decl %edi
movslq (%rsi,%rcx,4), %r8
decq %rcx
movb $0x1, (%rdx,%r8)
cmpq %rax, %rcx
jg 0x272b
movq 0x10(%rsp), %rbp
movq 0x8(%rsp), %rdi
addq $-0x8, %rbp
decq %rdi
jmp 0x1d15
leaq 0x1b0(%rsp), %rdi
callq 0x2b3a
movq 0x138(%rsp), %rdi
testq %rdi, %rdi
je 0x2785
movq 0x148(%rsp), %rsi
subq %rdi, %rsi
callq 0x1120
movq 0x584c(%rip), %rdi      # 0x7fd8
leaq 0x28f5(%rip), %rsi      # 0x5088
movl $0x14, %edx
callq 0x1140
leaq 0xb8(%rsp), %r14
movl 0x7c(%rsp), %esi
movq 0x5828(%rip), %rdi      # 0x7fd8
callq 0x11a0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x1100
movsbl %al, %esi
movq %rbx, %rdi
callq 0x1040
movq %rax, %rdi
callq 0x10d0
movq 0xe8(%rsp), %rdi
movl $0x1, %esi
callq 0x1120
leaq 0xd0(%rsp), %rdi
callq 0x2ffc
movq 0xb8(%rsp), %rdi
cmpq %r14, %rdi
je 0x2820
movq (%rdi), %rbx
movl $0x28, %esi
callq 0x1120
movq %rbx, %rdi
cmpq %r14, %rbx
jne 0x280b
movq 0x130(%rsp), %rdi
movl $0x1, %esi
callq 0x1120
leaq 0x118(%rsp), %rdi
callq 0x2ffc
movq 0x100(%rsp), %rdi
leaq 0x100(%rsp), %r14
cmpq %r14, %rdi
je 0x2869
movq (%rdi), %rbx
movl $0x28, %esi
callq 0x1120
movq %rbx, %rdi
cmpq %r14, %rbx
jne 0x2854
xorl %eax, %eax
addq $0x578, %rsp            # imm = 0x578
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
jmp 0x294e
movq %rax, %rbx
jmp 0x2956
movq %rax, %rbx
jmp 0x295e
movq %rax, %rbx
jmp 0x2966
movq %rax, %rbx
jmp 0x296e
movq %rax, %rbx
jmp 0x299a
movq %rax, %rbx
jmp 0x29b7
movq %rax, %rbx
jmp 0x29d4
movq %rax, %rbx
jmp 0x2a5e
movq %rax, %rbx
jmp 0x2afa
jmp 0x28fb
jmp 0x28fb
jmp 0x28fb
jmp 0x28fb
jmp 0x28fb
jmp 0x28fb
jmp 0x28fb
jmp 0x28fb
jmp 0x28fb
jmp 0x28eb
jmp 0x28eb
jmp 0x28eb
jmp 0x28eb
jmp 0x28eb
jmp 0x28eb
movq %rax, %rbx
jmp 0x2b24
movq %rax, %rbx
jmp 0x2982
movq %rax, %rbx
jmp 0x2b17
jmp 0x2aea
jmp 0x290e
jmp 0x290e
jmp 0x290e
movq 0x80(%rsp), %rdi
leaq 0x4d8(%rsp), %r14
leaq 0x4f0(%rsp), %r15
leaq 0x508(%rsp), %r12
leaq 0x520(%rsp), %r13
movq %rax, %rbx
testq %rdi, %rdi
je 0x294e
movq 0x90(%rsp), %rsi
subq %rdi, %rsi
callq 0x1120
movq %r13, %rdi
callq 0x3c78
movq %r12, %rdi
callq 0x3c78
movq %r15, %rdi
callq 0x3c78
movq %r14, %rdi
callq 0x3c78
leaq 0x498(%rsp), %r14
movq %r14, %rdi
callq 0x2cbe
movq -0x28(%r14), %r14
testq %r14, %r14
je 0x299a
movq 0x480(%rsp), %rsi
movq %r14, %rdi
subq %r14, %rsi
callq 0x1120
movq 0x448(%rsp), %rdi
testq %rdi, %rdi
je 0x29b7
movq 0x458(%rsp), %rsi
subq %rdi, %rsi
callq 0x1120
movq 0x408(%rsp), %rdi
testq %rdi, %rdi
je 0x29d4
movq 0x418(%rsp), %rsi
subq %rdi, %rsi
callq 0x1120
leaq 0x398(%rsp), %rdi
callq 0x3c78
leaq 0x380(%rsp), %rdi
callq 0x3c78
leaq 0x368(%rsp), %rdi
callq 0x3c78
leaq 0x350(%rsp), %r14
movq %r14, %rdi
callq 0x3c78
movq -0x38(%r14), %rdi
testq %rdi, %rdi
je 0x2a24
movq 0x328(%rsp), %rsi
subq %rdi, %rsi
callq 0x1120
movq 0x300(%rsp), %rdi
testq %rdi, %rdi
je 0x2a41
movq 0x310(%rsp), %rsi
subq %rdi, %rsi
callq 0x1120
movq 0x2e8(%rsp), %rdi
testq %rdi, %rdi
je 0x2a5e
movq 0x2f8(%rsp), %rsi
subq %rdi, %rsi
callq 0x1120
leaq 0x280(%rsp), %rdi
callq 0x3c78
leaq 0x268(%rsp), %rdi
callq 0x3c78
leaq 0x250(%rsp), %rdi
callq 0x3c78
leaq 0x238(%rsp), %r14
movq %r14, %rdi
callq 0x3c78
movq -0x38(%r14), %rdi
testq %rdi, %rdi
je 0x2aae
movq 0x210(%rsp), %rsi
subq %rdi, %rsi
callq 0x1120
movq 0x1e8(%rsp), %rdi
testq %rdi, %rdi
je 0x2acb
movq 0x1f8(%rsp), %rsi
subq %rdi, %rsi
callq 0x1120
movq 0x1d0(%rsp), %rdi
testq %rdi, %rdi
je 0x2afa
movq 0x1e0(%rsp), %rsi
subq %rdi, %rsi
callq 0x1120
jmp 0x2afa
leaq 0x1b0(%rsp), %rdi
movq %rax, %rbx
callq 0x2b3a
movq 0x138(%rsp), %rdi
testq %rdi, %rdi
je 0x2b17
movq 0x148(%rsp), %rsi
subq %rdi, %rsi
callq 0x1120
leaq 0xb8(%rsp), %rdi
callq 0x2f82
leaq 0x100(%rsp), %rdi
callq 0x2f82
movq %rbx, %rdi
callq 0x11b0
nop