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

    auto e01 = add_edge(u0, u1, pattern).first;
    auto e12 = add_edge(u1, u2, pattern).first;
    auto e20 = add_edge(u2, u0, pattern).first;

    pattern[e01].color = "red";
    pattern[e12].color = "black";
    pattern[e20].color = "black";

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

    auto f01 = add_edge(v0, v1, graph).first;
    auto f12 = add_edge(v1, v2, graph).first;
    auto f20 = add_edge(v2, v0, graph).first;
    auto f13 = add_edge(v1, v3, graph).first;
    auto f30 = add_edge(v3, v0, graph).first;

    graph[f01].color = "red";
    graph[f12].color = "black";
    graph[f20].color = "black";
    graph[f13].color = "black";
    graph[f30].color = "black";

    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),
                        [&pattern, &graph](auto const & e, auto const & f) {
                            return pattern[e].color == graph[f].color;
                        },
                        always_equivalent());

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

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x518, %rsp            # imm = 0x518
leaq 0xf0(%rsp), %rbx
leaq 0x140(%rsp), %rsi
movq %rbx, %rdi
callq 0x3962
movq %rbx, %rdi
callq 0x39a3
leaq 0xf0(%rsp), %rdi
movq %rax, %rbx
callq 0x39a3
leaq 0xf0(%rsp), %rdi
movq %rax, %r15
callq 0x39a3
leaq 0x140(%rsp), %rdi
leaq 0xf0(%rsp), %rcx
movq %rax, %r14
movq %rbx, %rsi
movq %r15, %rdx
callq 0x39e0
leaq 0x140(%rsp), %rdi
movq 0x10(%rdi), %r12
leaq 0xf0(%rsp), %rcx
movq %r15, %rsi
movq %r14, %rdx
callq 0x39e0
leaq 0x140(%rsp), %rdi
movq 0x10(%rdi), %r15
leaq 0xf0(%rsp), %rcx
movq %r14, %rsi
movq %rbx, %rdx
callq 0x39e0
movq 0x150(%rsp), %rbx
leaq 0x3c1c(%rip), %rsi      # 0x6004
movq %r12, %rdi
callq 0x21f0
leaq 0x3c11(%rip), %rsi      # 0x6008
movq %r15, %rdi
callq 0x21f0
leaq 0x3c02(%rip), %rsi      # 0x6008
movq %rbx, %rdi
callq 0x21f0
leaq 0xa0(%rsp), %rdi
leaq 0x140(%rsp), %rsi
callq 0x3962
leaq 0xa0(%rsp), %rdi
callq 0x39a3
leaq 0xa0(%rsp), %rdi
movq %rax, %rbx
callq 0x39a3
leaq 0xa0(%rsp), %rdi
movq %rax, %r14
callq 0x39a3
leaq 0xa0(%rsp), %rdi
movq %rax, %rbp
callq 0x39a3
leaq 0x140(%rsp), %rdi
leaq 0xa0(%rsp), %rcx
movq %rax, %r15
movq %rbx, %rsi
movq %r14, %rdx
callq 0x39e0
leaq 0x140(%rsp), %rdi
movq 0x10(%rdi), %r12
leaq 0xa0(%rsp), %rcx
movq %r14, %rsi
movq %rbp, %rdx
callq 0x39e0
leaq 0x140(%rsp), %rdi
movq 0x10(%rdi), %r13
leaq 0xa0(%rsp), %rcx
movq %rbp, %rsi
movq %rbx, %rdx
callq 0x39e0
leaq 0x140(%rsp), %rdi
movq 0x10(%rdi), %rbp
leaq 0xa0(%rsp), %rcx
movq %r14, %rsi
movq %r15, %rdx
callq 0x39e0
leaq 0x140(%rsp), %rdi
movq 0x10(%rdi), %r14
leaq 0xa0(%rsp), %rax
movq %r15, %rsi
movq %rbx, %rdx
movq %rax, %rcx
movq %rax, %r15
callq 0x39e0
movq 0x150(%rsp), %rbx
leaq 0x3af5(%rip), %rsi      # 0x6004
movq %r12, %rdi
callq 0x21f0
leaq 0x3aea(%rip), %rsi      # 0x6008
movq %r13, %rdi
callq 0x21f0
leaq 0x3adb(%rip), %rsi      # 0x6008
movq %rbp, %rdi
callq 0x21f0
leaq 0x3acc(%rip), %rsi      # 0x6008
movq %r14, %rdi
callq 0x21f0
leaq 0x3abd(%rip), %rsi      # 0x6008
movq %rbx, %rdi
callq 0x21f0
andl $0x0, 0x6c(%rsp)
leaq 0xf0(%rsp), %rbx
leaq 0x128(%rsp), %rdi
movq %rbx, %rsi
callq 0x445f
leaq 0x150(%rsp), %r12
movq %rbx, -0x10(%r12)
movq %r15, -0x8(%r12)
movq %r12, %rdi
movq %rbx, %rsi
callq 0x4e88
leaq 0x268(%rsp), %r13
leaq 0xa0(%rsp), %r14
movq %r13, %rdi
movq %r14, %rsi
callq 0x4e88
movq 0x110(%rsp), %rax
subq 0x108(%rsp), %rax
pushq $0x68
popq %rcx
cqto
leaq 0x398(%rsp), %rbp
idivq %rcx
movq %rax, -0x10(%rbp)
movq 0xc0(%rsp), %rax
subq 0xb8(%rsp), %rax
cqto
idivq %rcx
movq %rax, -0x8(%rbp)
leaq 0x128(%rsp), %rsi
movq %rbp, %rdi
callq 0x5258
leaq 0x3e8(%rsp), %rdi
leaq 0x6c(%rsp), %rax
leaq 0x3f(%rsp), %rsi
leaq 0x3e(%rsp), %rdx
movq %rbx, -0x38(%rdi)
movq %r14, -0x30(%rdi)
movq %rax, -0x20(%rdi)
movq %rbx, -0x18(%rdi)
movq %rsi, -0x10(%rdi)
movq %rdx, -0x8(%rdi)
leaq 0x88(%rsp), %rdx
orq $-0x1, (%rdx)
movq -0x60(%rdi), %rsi
leaq 0x30(%rsp), %rcx
callq 0x52a8
leaq 0x410(%rsp), %rdi
leaq 0x88(%rsp), %rdx
movq -0x28(%rdi), %rax
orq $-0x1, (%rdx)
movq -0x80(%rdi), %rsi
movq %rax, -0x10(%rdi)
leaq 0x30(%rsp), %rcx
callq 0x52a8
movq 0x410(%rsp), %rax
movq %rax, 0x428(%rsp)
movq 0x388(%rsp), %rbx
movq 0x390(%rsp), %r14
movq %rbx, 0x438(%rsp)
movq %r14, 0x440(%rsp)
imulq %rbx, %r14
movq %r14, %rdi
callq 0x2030
movq %rax, 0x450(%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, 0x458(%rsp)
orq $-0x1, 0x460(%rsp)
movq %r15, %rdi
callq 0x2030
leaq 0x438(%rsp), %rcx
leaq 0x478(%rsp), %rdi
movq %rax, 0x30(%rcx)
orl $-0x1, 0x38(%rcx)
leaq 0x88(%rsp), %rdx
movq %rbx, %rsi
callq 0x5300
leaq 0x490(%rsp), %rdi
movq -0x108(%rdi), %rsi
leaq 0x88(%rsp), %rdx
callq 0x5300
leaq 0x4a8(%rsp), %rdi
movq -0x120(%rdi), %rsi
leaq 0x88(%rsp), %rdx
callq 0x5300
leaq 0x4c0(%rsp), %rdi
movq -0x138(%rdi), %rsi
leaq 0x88(%rsp), %rdx
callq 0x5300
movq 0x478(%rsp), %rax
movq 0x388(%rsp), %rsi
movq %rax, 0x4d8(%rsp)
movq 0x490(%rsp), %rax
movq %rax, 0x4e8(%rsp)
movq 0x4a8(%rsp), %rax
movq %rax, 0x4f8(%rsp)
movq 0x4c0(%rsp), %rax
movq %rax, 0x508(%rsp)
leaq 0x88(%rsp), %rdi
leaq 0x30(%rsp), %rdx
callq 0x470c
movq 0x88(%rsp), %rbp
movq 0x128(%rsp), %rax
xorl %ecx, %ecx
cmpq %rcx, 0x388(%rsp)
jbe 0x27e1
movq (%rax,%rcx,8), %rdx
movq %rcx, (%rbp,%rdx,8)
incq %rcx
jmp 0x27c9
movq 0x110(%rsp), %rax
subq 0x108(%rsp), %rax
cqto
pushq $0x68
popq %rcx
idivq %rcx
leaq 0x30(%rsp), %r14
xorl %ecx, %ecx
movq %rax, 0x10(%rsp)
cmpq %rax, %rcx
je 0x2935
cmpq %rax, %rcx
je 0x292d
movq 0x228(%rsp), %rax
imulq $0x18, %rcx, %r12
movq (%rbp,%rcx,8), %r13
movq %rcx, (%rsp)
movq (%rax,%r12), %rbx
movq 0x8(%rax,%r12), %r15
cmpq %r15, %rbx
je 0x2862
movq (%rbx), %rax
movq %rax, 0x30(%rsp)
cmpq %r13, (%rbp,%rax,8)
jbe 0x285c
movq 0x4d8(%rsp), %rdi
addq %r12, %rdi
movq %r14, %rsi
callq 0x5354
addq $0x8, %rbx
jmp 0x2835
movq 0x238(%rsp), %rax
movq (%rax,%r12), %rbx
movq 0x8(%rax,%r12), %r15
cmpq %r15, %rbx
je 0x28a0
movq (%rbx), %rax
movq %rax, 0x30(%rsp)
cmpq %r13, (%rbp,%rax,8)
jbe 0x289a
movq 0x4e8(%rsp), %rdi
addq %r12, %rdi
movq %r14, %rsi
callq 0x5354
addq $0x8, %rbx
jmp 0x2873
movq 0x248(%rsp), %rax
movq (%rax,%r12), %rbx
movq 0x8(%rax,%r12), %r15
cmpq %r15, %rbx
je 0x28de
movq (%rbx), %rax
movq %rax, 0x30(%rsp)
cmpq %r13, (%rbp,%rax,8)
jbe 0x28d8
movq 0x4f8(%rsp), %rdi
addq %r12, %rdi
movq %r14, %rsi
callq 0x5354
addq $0x8, %rbx
jmp 0x28b1
movq 0x258(%rsp), %rax
movq (%rax,%r12), %rbx
movq 0x8(%rax,%r12), %r15
cmpq %r15, %rbx
je 0x291c
movq (%rbx), %rax
movq %rax, 0x30(%rsp)
cmpq %r13, (%rbp,%rax,8)
jbe 0x2916
movq 0x508(%rsp), %rdi
addq %r12, %rdi
movq %r14, %rsi
callq 0x5354
addq $0x8, %rbx
jmp 0x28ef
movq (%rsp), %rcx
movq 0x10(%rsp), %rax
incq %rcx
jmp 0x280e
movq %rax, %rcx
jmp 0x2805
leaq 0x88(%rsp), %rdi
callq 0x4acc
movq 0x140(%rsp), %rax
movq 0x18(%rax), %rcx
movq 0x20(%rax), %rax
subq %rcx, %rax
movq %rcx, 0x80(%rsp)
cqto
pushq $0x68
popq %rcx
idivq %rcx
xorl %ecx, %ecx
movq %rax, 0x60(%rsp)
cmpq %rax, %rcx
je 0x2a12
movq 0x148(%rsp), %rsi
cmpq %rax, %rcx
je 0x2a0a
movq 0x80(%rsp), %rdx
imulq $0x68, %rcx, %rax
movq 0x18(%rsi), %r9
movq 0x28(%rdx,%rax), %rdi
movq 0x58(%rdx,%rax), %r8
movq 0x20(%rsi), %rax
subq %r9, %rax
cqto
pushq $0x68
popq %r10
idivq %r10
addq $0x58, %r9
xorl %edx, %edx
cmpq %rax, %rdx
je 0x29fd
movq 0x440(%rsp), %r10
imulq $0x68, %rdx, %r11
addq %r9, %r11
imulq %rcx, %r10
addq 0x450(%rsp), %r10
cmpq %rdx, %rax
je 0x29f8
cmpq %r8, (%r11)
jae 0x29e4
xorl %ebx, %ebx
jmp 0x29eb
cmpq %rdi, -0x30(%r11)
setae %bl
movb %bl, (%r10,%rdx)
incq %rdx
addq $0x68, %r11
jmp 0x29d6
movq %rax, %rdx
jmp 0x29b6
movq 0x60(%rsp), %rax
incq %rcx
jmp 0x297d
movq %rax, %rcx
jmp 0x296c
xorl %esi, %esi
movq $0x0, 0x40(%rsp)
cmpq %rax, %rsi
jne 0x2a3a
xorl %esi, %esi
testb $0x1, 0x40(%rsp)
movl $0x0, %ecx
movq %rcx, 0x40(%rsp)
jne 0x2a1d
jmp 0x2c5f
movq 0x148(%rsp), %rcx
movq %rcx, 0x78(%rsp)
cmpq %rax, %rsi
je 0x2c57
movq 0x78(%rsp), %rcx
movq 0x20(%rcx), %rax
subq 0x18(%rcx), %rax
cqto
pushq $0x68
popq %rcx
idivq %rcx
movq 0x80(%rsp), %rcx
imulq $0x68, %rsi, %rdx
movq %rsi, 0x8(%rsp)
leaq (%rcx,%rdx), %rdi
movq %rdi, 0x48(%rsp)
leaq 0x8(%rcx,%rdx), %rdi
leaq 0x38(%rcx,%rdx), %rcx
xorl %edx, %edx
movq %rdi, 0x28(%rsp)
movq %rcx, 0x18(%rsp)
movq %rax, 0x50(%rsp)
cmpq %rax, %rdx
je 0x2c4a
movq 0x440(%rsp), %r8
imulq %rsi, %r8
addq 0x450(%rsp), %r8
movq %r8, 0x20(%rsp)
cmpq %rax, %rdx
je 0x2c42
cmpb $0x1, (%r8,%rdx)
jne 0x2c29
movq 0x48(%rsp), %rax
movq 0x148(%rsp), %rsi
movq 0x450(%rsp), %rcx
movq 0x440(%rsp), %rbx
movq %rdx, %rbp
movq 0x18(%rax), %r15
movq %rsi, (%rsp)
movq %rcx, 0x10(%rsp)
cmpq %rdi, %r15
je 0x2b78
cmpq %rdi, %r15
je 0x2b73
movq (%rsp), %rax
movq 0x20(%r15), %r14
imulq $0x68, %rdx, %rcx
movb $0x1, %r13b
movq 0x18(%rax), %rax
imulq %rbx, %r14
addq 0x10(%rsp), %r14
leaq 0x8(%rax,%rcx), %r12
movq 0x10(%r12), %rax
cmpq %r12, %rax
je 0x2b54
cmpq %r12, %rax
je 0x2b4f
movq 0x20(%rax), %rcx
cmpb $0x0, (%r14,%rcx)
jne 0x2b4c
movq %rax, %rdi
callq 0x2150
jmp 0x2b32
xorl %r13d, %r13d
movq %r12, %rax
jmp 0x2b2d
testb $0x1, %r13b
jne 0x2c06
movq %r15, %rdi
callq 0x2150
movq 0x28(%rsp), %rdi
movq %rax, %r15
movq %rbp, %rdx
jmp 0x2b02
movq %rdi, %r15
jmp 0x2afd
movq 0x40(%rdi), %r15
movq 0x18(%rsp), %rax
cmpq %rax, %r15
je 0x2c31
cmpq 0x18(%rsp), %r15
je 0x2bf4
movq (%rsp), %rax
movq 0x20(%r15), %r14
imulq $0x68, %rdx, %rcx
movb $0x1, %r13b
movq 0x18(%rax), %rax
imulq %rbx, %r14
addq 0x10(%rsp), %r14
leaq 0x38(%rax,%rcx), %r12
movq 0x10(%r12), %rax
cmpq %r12, %rax
je 0x2bde
cmpq %r12, %rax
je 0x2bd9
movq 0x20(%rax), %rcx
cmpb $0x0, (%r14,%rcx)
jne 0x2bd6
movq %rax, %rdi
callq 0x2150
jmp 0x2bbc
xorl %r13d, %r13d
movq %r12, %rax
jmp 0x2bb7
testb $0x1, %r13b
jne 0x2c06
movq %r15, %rdi
callq 0x2150
movq %rax, %r15
movq %rbp, %rdx
jmp 0x2b8a
movq 0x18(%rsp), %rax
movq 0x28(%rsp), %rdi
movq %rax, %r15
jmp 0x2b81
movb $0x1, %al
movq 0x20(%rsp), %r8
movq 0x8(%rsp), %rsi
movq 0x28(%rsp), %rdi
movq %rbp, %rdx
movq %rax, 0x40(%rsp)
movq 0x50(%rsp), %rax
movb $0x0, (%r8,%rbp)
incq %rdx
jmp 0x2abc
movq 0x8(%rsp), %rsi
movq 0x50(%rsp), %rax
movq 0x20(%rsp), %r8
jmp 0x2c29
movq %rax, %rdx
jmp 0x2a9a
movq 0x60(%rsp), %rax
incq %rsi
jmp 0x2a47
movq %rax, %rsi
jmp 0x2a1d
leaq 0x140(%rsp), %rax
movq 0x736a(%rip), %r15      # 0x9fd8
leaq 0x3436(%rip), %r13      # 0x60ab
leaq 0x3432(%rip), %rbp      # 0x60ae
xorl %ebx, %ebx
movq 0x258(%rax), %rax
movq %rax, 0x70(%rsp)
movq %rbx, 0x58(%rsp)
movq 0x70(%rsp), %rcx
movq 0x388(%rsp), %rax
movq (%rcx), %rdx
decq %rax
movq %rdx, (%rsp)
cmpq %rax, %rbx
jae 0x3299
movq 0x400(%rsp), %rax
movq (%rax,%rdx,8), %rcx
cmpq $-0x1, %rcx
je 0x2cda
movq 0x428(%rsp), %rdi
movq %rdx, %rsi
orq $-0x1, (%rdi,%rcx,8)
movq (%rax,%rsi,8), %rsi
incq %rsi
jmp 0x2cdc
xorl %esi, %esi
movq 0x148(%rsp), %rcx
movq 0x20(%rcx), %rax
subq 0x18(%rcx), %rax
cqto
pushq $0x68
popq %rcx
idivq %rcx
leaq 0x1(%rsi,%rsi,2), %r14
movq %rax, %rbx
cmpq %rsi, %rbx
je 0x3259
movq 0x440(%rsp), %rax
imulq (%rsp), %rax
addq 0x450(%rsp), %rax
cmpb $0x1, (%rsi,%rax)
jne 0x2d51
movq 0x428(%rsp), %rax
cmpq $-0x1, (%rax,%rsi,8)
jne 0x2d51
movq %rsi, %rdx
movq (%rsp), %rsi
leaq 0x140(%rsp), %rdi
movq %rdx, 0x40(%rsp)
callq 0x3836
movq 0x40(%rsp), %rsi
testb %al, %al
jne 0x2d5a
incq %rsi
addq $0x3, %r14
jmp 0x2cfc
cmpq $-0x1, %rsi
je 0x3259
movq 0x400(%rsp), %rax
movq (%rsp), %rdi
movq %rsi, (%rax,%rdi,8)
movq 0x428(%rsp), %rbx
movq %rdi, (%rbx,%rsi,8)
movslq 0x470(%rsp), %rdx
movl 0x460(%rsp), %eax
movq 0x468(%rsp), %rcx
leaq 0x1(%rdx), %rsi
movl %esi, 0x470(%rsp)
movl %eax, 0x4(%rcx,%rdx,4)
movl %eax, 0x464(%rsp)
imulq $0x18, %rdi, %rsi
movq 0x4d8(%rsp), %rdx
movq 0x360(%rsp), %rcx
movq %rsi, 0x8(%rsp)
movq (%rdx,%rsi), %rax
movq 0x8(%rdx,%rsi), %rdx
movq %rdx, 0x78(%rsp)
movq %rax, %rdx
movq %rax, 0x20(%rsp)
cmpq 0x78(%rsp), %rdx
je 0x2e4b
movq 0x440(%rsp), %r8
movq -0x8(%rcx,%r14,8), %rsi
movq (%rcx,%r14,8), %rdi
movq 0x450(%rsp), %r9
movq 0x458(%rsp), %r10
imulq (%rdx), %r8
cmpq %rdi, %rsi
je 0x2e45
movq (%rsi), %r11
cmpq $-0x1, (%rbx,%r11,8)
jne 0x2e3f
addq %r8, %r11
cmpb $0x1, (%r9,%r11)
jne 0x2e3f
movb $0x0, (%r9,%r11)
movslq 0x460(%rsp), %r12
leaq 0x1(%r12), %rax
movl %eax, 0x460(%rsp)
movl %r11d, 0x4(%r10,%r12,4)
addq $0x8, %rsi
jmp 0x2e08
addq $0x8, %rdx
jmp 0x2ddc
movq 0x4e8(%rsp), %rdx
movq 0x8(%rsp), %rsi
movq 0x370(%rsp), %rcx
movq (%rdx,%rsi), %rax
movq 0x8(%rdx,%rsi), %rdx
movq %rdx, 0x60(%rsp)
movq %rax, %rdx
movq %rax, 0x10(%rsp)
cmpq 0x60(%rsp), %rdx
je 0x2ee5
movq 0x440(%rsp), %r8
movq -0x8(%rcx,%r14,8), %rsi
movq (%rcx,%r14,8), %rdi
movq 0x450(%rsp), %r9
movq 0x458(%rsp), %r10
imulq (%rdx), %r8
cmpq %rdi, %rsi
je 0x2edf
movq (%rsi), %r11
cmpq $-0x1, (%rbx,%r11,8)
jne 0x2ed9
addq %r8, %r11
cmpb $0x1, (%r9,%r11)
jne 0x2ed9
movb $0x0, (%r9,%r11)
movslq 0x460(%rsp), %rax
leaq 0x1(%rax), %r12
movl %r12d, 0x460(%rsp)
movl %r11d, 0x4(%r10,%rax,4)
addq $0x8, %rsi
jmp 0x2ea2
addq $0x8, %rdx
jmp 0x2e76
movq 0x340(%rsp), %rax
movq 0x4f8(%rsp), %rcx
addq 0x8(%rsp), %rcx
movq -0x8(%rax,%r14,8), %rdx
movq (%rax,%r14,8), %rsi
movq %rcx, 0x18(%rsp)
movq %rdx, 0xd8(%rsp)
movq %rsi, 0x28(%rsp)
cmpq %rsi, %rdx
je 0x2f85
movq 0x18(%rsp), %rax
movq (%rdx), %rsi
movq 0x440(%rsp), %r9
movq 0x450(%rsp), %r10
movq 0x458(%rsp), %r11
movq (%rax), %rdi
movq 0x8(%rax), %r8
cmpq %r8, %rdi
je 0x2f7a
movq (%rdi), %r12
imulq %r9, %r12
addq %rsi, %r12
cmpb $0x1, (%r10,%r12)
jne 0x2f74
movb $0x0, (%r10,%r12)
movslq 0x460(%rsp), %rax
leaq 0x1(%rax), %rcx
movl %ecx, 0x460(%rsp)
movl %r12d, 0x4(%r11,%rax,4)
addq $0x8, %rdi
jmp 0x2f41
movq 0x28(%rsp), %rsi
addq $0x8, %rdx
jmp 0x2f15
movq 0x350(%rsp), %rax
movq 0x8(%rsp), %rdx
addq 0x508(%rsp), %rdx
movq -0x8(%rax,%r14,8), %rcx
movq (%rax,%r14,8), %rax
movq %rdx, 0x8(%rsp)
movq %rax, 0x18(%rsp)
movq %rcx, 0xe0(%rsp)
cmpq 0x18(%rsp), %rcx
je 0x3028
movq 0x8(%rsp), %rax
movq (%rcx), %rdx
movq 0x440(%rsp), %r8
movq 0x450(%rsp), %r9
movq 0x458(%rsp), %r10
movq (%rax), %rsi
movq 0x8(%rax), %rdi
cmpq %rdi, %rsi
je 0x301d
movq (%rsi), %r11
imulq %r8, %r11
addq %rdx, %r11
cmpb $0x1, (%r9,%r11)
jne 0x3017
movb $0x0, (%r9,%r11)
movslq 0x460(%rsp), %rax
leaq 0x1(%rax), %r14
movl %r14d, 0x460(%rsp)
movl %r11d, 0x4(%r10,%rax,4)
addq $0x8, %rsi
jmp 0x2fe3
movq 0x28(%rsp), %rsi
addq $0x8, %rcx
jmp 0x2fb5
movq 0x388(%rsp), %rax
movq 0x10(%rsp), %rdx
shrq %rax
cmpq %rax, 0x58(%rsp)
jbe 0x3074
movq (%rsp), %rsi
movq 0x40(%rsp), %rdx
leaq 0x140(%rsp), %rdi
callq 0x3724
testb %al, %al
jne 0x341b
leaq 0x438(%rsp), %rdi
callq 0x37f8
movq 0x58(%rsp), %rbx
jmp 0x2c8f
movq 0x20(%rsp), %rcx
cmpq 0x78(%rsp), %rcx
je 0x316f
movq 0x458(%rsp), %r8
movq (%rcx), %rax
movq 0x450(%rsp), %rdi
movq 0xd8(%rsp), %r12
movq %rcx, 0x20(%rsp)
movq %r8, 0xe8(%rsp)
movq 0x440(%rsp), %r8
movq %rax, 0x8(%rsp)
movq %rdi, 0x48(%rsp)
imulq %rax, %r8
movq %r8, 0x80(%rsp)
addq %rdi, %r8
movq %r8, 0x50(%rsp)
cmpq %rsi, %r12
je 0x3166
movq (%r12), %r14
cmpq $-0x1, (%rbx,%r14,8)
jne 0x315d
cmpb $0x1, (%r8,%r14)
jne 0x315d
movq 0x8(%rsp), %rsi
leaq 0x140(%rsp), %rdi
movq %r14, %rdx
callq 0x3724
movq 0x50(%rsp), %r8
movq 0x28(%rsp), %rsi
movq 0x20(%rsp), %rcx
movq 0x10(%rsp), %rdx
testb %al, %al
jne 0x315d
addq 0x80(%rsp), %r14
movq 0x48(%rsp), %rax
cmpb $0x1, (%rax,%r14)
jne 0x315d
movq 0x48(%rsp), %rax
movq 0xe8(%rsp), %rdi
movb $0x0, (%rax,%r14)
movslq 0x460(%rsp), %rax
leaq 0x1(%rax), %rcx
movl %ecx, 0x460(%rsp)
movq 0x20(%rsp), %rcx
movl %r14d, 0x4(%rdi,%rax,4)
addq $0x8, %r12
jmp 0x30d2
addq $0x8, %rcx
jmp 0x3079
movq 0x18(%rsp), %rcx
cmpq 0x60(%rsp), %rdx
je 0x303f
movq 0x458(%rsp), %rdi
movq (%rdx), %rax
movq 0x450(%rsp), %rsi
movq 0xe0(%rsp), %r12
movq %rdx, 0x10(%rsp)
movq %rdi, 0x48(%rsp)
movq 0x440(%rsp), %rdi
movq %rax, 0x28(%rsp)
movq %rsi, 0x8(%rsp)
imulq %rax, %rdi
movq %rdi, 0x50(%rsp)
addq %rsi, %rdi
movq %rdi, 0x20(%rsp)
cmpq %rcx, %r12
je 0x3250
movq (%r12), %r14
cmpq $-0x1, (%rbx,%r14,8)
jne 0x3247
cmpb $0x1, (%rdi,%r14)
jne 0x3247
movq 0x28(%rsp), %rsi
leaq 0x140(%rsp), %rdi
movq %r14, %rdx
callq 0x3724
movq 0x20(%rsp), %rdi
movq 0x18(%rsp), %rcx
movq 0x10(%rsp), %rdx
testb %al, %al
jne 0x3247
addq 0x50(%rsp), %r14
movq 0x8(%rsp), %rax
cmpb $0x1, (%rax,%r14)
jne 0x3247
movq 0x8(%rsp), %rax
movq 0x48(%rsp), %rsi
movb $0x0, (%rax,%r14)
movslq 0x460(%rsp), %rax
leaq 0x1(%rax), %rcx
movl %ecx, 0x460(%rsp)
movq 0x18(%rsp), %rcx
movl %r14d, 0x4(%rsi,%rax,4)
addq $0x8, %r12
jmp 0x31c7
addq $0x8, %rdx
jmp 0x3174
movq (%rsp), %rcx
cmpq $-0x1, %rcx
je 0x3270
movq 0x400(%rsp), %rax
orq $-0x1, (%rax,%rcx,8)
movq 0x58(%rsp), %rbx
testq %rbx, %rbx
je 0x342e
addq $-0x8, 0x70(%rsp)
leaq 0x438(%rsp), %rdi
decq %rbx
callq 0x37f8
jmp 0x2c8a
movq 0x148(%rsp), %rcx
movq 0x20(%rcx), %rax
subq 0x18(%rcx), %rax
cqto
pushq $0x68
popq %rcx
idivq %rcx
xorl %r12d, %r12d
movq %rax, %r14
movq %rax, 0x10(%rsp)
cmpq %r14, %r12
je 0x3400
cmpq %r14, %r12
je 0x33f8
movq 0x428(%rsp), %rax
cmpq $-0x1, (%rax,%r12,8)
jne 0x33f0
movq 0x440(%rsp), %rax
imulq (%rsp), %rax
addq 0x450(%rsp), %rax
cmpb $0x1, (%r12,%rax)
jne 0x33f0
movq (%rsp), %rsi
leaq 0x140(%rsp), %rdi
movq %r12, %rdx
callq 0x3836
testb %al, %al
je 0x33f0
movq 0x400(%rsp), %rax
movq (%rsp), %rcx
movq %r12, (%rax,%rcx,8)
movq 0x428(%rsp), %rax
movq %rcx, (%rax,%r12,8)
leaq 0x2d58(%rip), %rsi      # 0x6098
movq %r15, %rdi
callq 0x2110
movq %rax, %rdi
callq 0x20b0
movq 0x3d0(%rsp), %rcx
movq 0x20(%rcx), %rax
subq 0x18(%rcx), %rax
cqto
pushq $0x68
popq %rcx
idivq %rcx
xorl %ebx, %ebx
movq %rax, %r14
cmpq %r14, %rbx
je 0x33be
cmpq %rbx, %r14
je 0x33b9
movq %r15, %rdi
movq %r13, %rsi
callq 0x2110
movq %rax, %rdi
movq %rbx, %rsi
callq 0x20e0
movq %rax, %rdi
movq %rbp, %rsi
callq 0x2110
movq 0x400(%rsp), %rcx
movq (%rcx,%rbx,8), %rsi
movq %rax, %rdi
callq 0x20e0
movq %rax, %rdi
callq 0x20b0
incq %rbx
jmp 0x3372
movq %r14, %rbx
jmp 0x336d
movq 0x3c8(%rsp), %rax
movq (%rsp), %rcx
movq 0x58(%rsp), %rbx
movq 0x10(%rsp), %r14
incl (%rax)
movq 0x400(%rsp), %rax
orq $-0x1, (%rax,%rcx,8)
movq 0x428(%rsp), %rax
orq $-0x1, (%rax,%r12,8)
incq %r12
jmp 0x32c5
movq %r14, %r12
jmp 0x32bc
leaq 0x438(%rsp), %rdi
callq 0x37f8
addq $-0x8, 0x70(%rsp)
decq %rbx
jmp 0x2c8a
movq 0x58(%rsp), %rbx
addq $0x8, 0x70(%rsp)
incq %rbx
jmp 0x2c8a
leaq 0x140(%rsp), %rdi
callq 0x3674
leaq 0x128(%rsp), %rdi
callq 0x4acc
movq 0x6b89(%rip), %rdi      # 0x9fd8
leaq 0x2bb8(%rip), %rsi      # 0x600e
callq 0x2110
movl 0x6c(%rsp), %esi
movq %rax, %rdi
callq 0x21d0
movq %rax, %rdi
callq 0x20b0
leaq 0xa0(%rsp), %rdi
callq 0x3a28
leaq 0xf0(%rsp), %rdi
callq 0x3a28
xorl %eax, %eax
addq $0x518, %rsp            # imm = 0x518
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %r15
jmp 0x35a1
movq %rax, %r15
leaq 0x3e8(%rsp), %rbx
leaq 0x410(%rsp), %r14
jmp 0x35d6
movq %rax, %r15
leaq 0x3e8(%rsp), %rbx
leaq 0x410(%rsp), %r14
jmp 0x35e3
movq %rax, %r15
leaq 0x3e8(%rsp), %rbx
leaq 0x410(%rsp), %r14
jmp 0x35f0
movq %rax, %r15
leaq 0x3e8(%rsp), %rbx
leaq 0x410(%rsp), %r14
jmp 0x35fd
movq %rax, %r15
leaq 0x3e8(%rsp), %rbx
jmp 0x3612
movq %rax, %r15
jmp 0x361a
movq %rax, %r15
jmp 0x3622
movq %rax, %r15
jmp 0x362a
movq %rax, %r15
jmp 0x3644
jmp 0x3579
jmp 0x3579
jmp 0x3579
jmp 0x3579
jmp 0x3579
jmp 0x3579
jmp 0x3579
jmp 0x3579
jmp 0x3579
jmp 0x3579
jmp 0x3571
jmp 0x3571
jmp 0x3571
jmp 0x3571
jmp 0x3571
jmp 0x3571
jmp 0x3571
jmp 0x3579
movq %rax, %r15
leaq 0x3e8(%rsp), %rbx
leaq 0x410(%rsp), %r14
jmp 0x360a
movq %rax, %r15
jmp 0x365e
movq %rax, %r15
jmp 0x3651
jmp 0x3634
jmp 0x3634
jmp 0x3591
jmp 0x3591
jmp 0x3591
leaq 0x88(%rsp), %rdi
movq %rax, %r15
callq 0x4acc
leaq 0x4c0(%rsp), %rdi
leaq 0x150(%rsp), %r12
leaq 0x268(%rsp), %r13
leaq 0x398(%rsp), %rbp
leaq 0x3e8(%rsp), %rbx
leaq 0x410(%rsp), %r14
callq 0x5374
leaq 0x4a8(%rsp), %rdi
callq 0x5374
leaq 0x490(%rsp), %rdi
callq 0x5374
leaq 0x478(%rsp), %rdi
callq 0x5374
leaq 0x438(%rsp), %rdi
callq 0x36f2
movq %r14, %rdi
callq 0x4acc
movq %rbx, %rdi
callq 0x4acc
movq %rbp, %rdi
callq 0x4acc
movq %r13, %rdi
callq 0x5396
movq %r12, %rdi
callq 0x5396
jmp 0x3644
leaq 0x140(%rsp), %rdi
movq %rax, %r15
callq 0x3674
leaq 0x128(%rsp), %rdi
callq 0x4acc
leaq 0xa0(%rsp), %rdi
callq 0x3a28
leaq 0xf0(%rsp), %rdi
callq 0x3a28
movq %r15, %rdi
callq 0x21e0
nop