// File: /workspace/github_cpp_makefile_star2_O1/xnevs[P]bullimp/examples/compare.cpp
// Function: main
int main(int argc, char *argv[]) { 
    using namespace std;

    if(argc < 2) {
        cout << "Usage: ./compare test.AXX test.BXX" << endl;
        return 1;
    }

    ifstream in{argv[1], ios::in|ios::binary};
    if(!in.is_open()) return -1;

    auto pattern = read_amalfi<graph_type>(in);
    in.close();

    in.open(argv[2], ios::in|ios::binary);
    if(!in.is_open()) return -1;

    auto graph = read_amalfi<graph_type>(in);
    in.close();

    int count;
    chrono::time_point<chrono::steady_clock> start, end;
    chrono::milliseconds elapsed;

    count = 0;

    start = chrono::steady_clock::now();

    ullimp::ullimp_subgraph_iso(
            pattern,
            graph,
            [&count](auto const &a, auto const &b){
                ++count;
                return true;
            });

    end = chrono::steady_clock::now();
    elapsed = chrono::duration_cast<chrono::milliseconds>(end - start);

    cout << setw(8) << "ullimp: " << count << ", " << "time = " << elapsed.count() << " ms" << endl;


    count = 0;

    start = chrono::steady_clock::now();

    boost::vf2_subgraph_iso(
            pattern,
            graph,
            [&count](auto const &a, auto const &b){
                ++count;
                return true;
            });

    end = chrono::steady_clock::now();
    elapsed = chrono::duration_cast<chrono::milliseconds>(end - start);

    cout << setw(8) << "vf2: " << count << ", " << "time = " << elapsed.count() << " ms" << endl;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x798, %rsp            # imm = 0x798
cmpl $0x1, %edi
jg 0x2466
movq 0x8bb7(%rip), %rbx      # 0xafd8
leaq 0x5c60(%rip), %rsi      # 0x8088
movl $0x22, %edx
movq %rbx, %rdi
callq 0x2190
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2150
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2110
movl $0x1, %ebp
jmp 0x4391
movq %rsi, %r14
movq 0x8(%rsi), %rsi
leaq 0x590(%rsp), %rdi
movl $0xc, %edx
callq 0x2230
leaq 0x608(%rsp), %r15
movq %r15, %rdi
callq 0x2080
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
testb %al, %al
je 0x4384
leaq 0x128(%rsp), %rdi
leaq 0x590(%rsp), %rsi
callq 0x4a76
leaq 0x590(%rsp), %rdi
callq 0x2070
movq 0x10(%r14), %rsi
leaq 0x590(%rsp), %rdi
movl $0xc, %edx
callq 0x20f0
movq %r15, %rdi
callq 0x2080
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
testb %al, %al
je 0x4337
leaq 0xf0(%rsp), %r14
leaq 0x590(%rsp), %rsi
movq %r14, %rdi
callq 0x4a76
leaq 0x590(%rsp), %rdi
callq 0x2070
movl $0x0, 0x4c(%rsp)
callq 0x21d0
movq %rax, 0x510(%rsp)
leaq 0xb0(%rsp), %rdi
leaq 0x128(%rsp), %r15
movq %r15, %rsi
callq 0x5c19
leaq 0x170(%rsp), %rdi
movq %r15, -0x10(%rdi)
movq %r14, -0x8(%rdi)
movq %r15, %rsi
callq 0x52d8
leaq 0x288(%rsp), %rdi
leaq 0xf0(%rsp), %rsi
callq 0x52d8
movq 0x148(%rsp), %rax
subq 0x140(%rsp), %rax
sarq $0x3, %rax
movabsq $0x4ec4ec4ec4ec4ec5, %rcx # imm = 0x4EC4EC4EC4EC4EC5
imulq %rcx, %rax
leaq 0x3b8(%rsp), %rdi
movq %rax, -0x10(%rdi)
movq 0x110(%rsp), %rax
subq 0x108(%rsp), %rax
sarq $0x3, %rax
imulq %rcx, %rax
movq %rax, -0x8(%rdi)
leaq 0xb0(%rsp), %rsi
callq 0x56de
leaq 0x4c(%rsp), %rax
leaq 0x3e0(%rsp), %rdi
movq %rax, -0x8(%rdi)
movq -0x38(%rdi), %rsi
leaq 0x90(%rsp), %rdx
movq $-0x1, (%rdx)
leaq 0x50(%rsp), %rcx
callq 0x5760
leaq 0x408(%rsp), %rdi
movq -0x58(%rdi), %rsi
movq -0x28(%rdi), %rax
movq %rax, -0x10(%rdi)
leaq 0x90(%rsp), %rdx
movq $-0x1, (%rdx)
leaq 0x50(%rsp), %rcx
callq 0x5760
movq 0x408(%rsp), %rax
movq %rax, 0x420(%rsp)
movq 0x3a8(%rsp), %r15
movq 0x3b0(%rsp), %r14
movq %r15, 0x430(%rsp)
movq %r14, 0x438(%rsp)
imulq %r15, %r14
movq %r14, %rdi
callq 0x2030
movq %rax, 0x448(%rsp)
movq %r14, %rax
shrq $0x3e, %rax
shlq $0x2, %r14
negq %rax
sbbq %r12, %r12
orq %r14, %r12
movq %r12, %rdi
callq 0x2030
movq %rax, 0x450(%rsp)
movq $-0x1, 0x458(%rsp)
movq %r12, %rdi
callq 0x2030
leaq 0x430(%rsp), %rcx
movq %rax, 0x30(%rcx)
movl $0xffffffff, 0x38(%rcx) # imm = 0xFFFFFFFF
leaq 0x470(%rsp), %rdi
leaq 0x90(%rsp), %rdx
movq %r15, %rsi
callq 0x582c
leaq 0x488(%rsp), %rdi
movq -0xe0(%rdi), %rsi
leaq 0x90(%rsp), %rdx
callq 0x582c
leaq 0x4a0(%rsp), %rdi
movq -0xf8(%rdi), %rsi
leaq 0x90(%rsp), %rdx
callq 0x582c
leaq 0x4b8(%rsp), %rdi
movq -0x110(%rdi), %rsi
leaq 0x90(%rsp), %rdx
callq 0x582c
movq 0x3a8(%rsp), %rsi
movq 0x470(%rsp), %rax
movq %rax, 0x4d0(%rsp)
movq 0x488(%rsp), %rax
movq %rax, 0x4e0(%rsp)
movq 0x4a0(%rsp), %rax
movq %rax, 0x4f0(%rsp)
movq 0x4b8(%rsp), %rax
movq %rax, 0x500(%rsp)
leaq 0x90(%rsp), %rdi
leaq 0x50(%rsp), %rdx
callq 0x58b6
movq 0x90(%rsp), %rbx
cmpq $0x0, 0x3a8(%rsp)
je 0x27a1
movq 0xb0(%rsp), %rax
xorl %ecx, %ecx
movq (%rax,%rcx,8), %rdx
movq %rcx, (%rbx,%rdx,8)
incq %rcx
cmpq %rcx, 0x3a8(%rsp)
ja 0x278c
movq 0x148(%rsp), %rcx
movq 0x140(%rsp), %rax
subq %rax, %rcx
je 0x2946
sarq $0x3, %rcx
movabsq $0x4ec4ec4ec4ec4ec5, %rax # imm = 0x4EC4EC4EC4EC4EC5
imulq %rax, %rcx
movq %rcx, 0x8(%rsp)
xorl %r12d, %r12d
movq (%rbx,%r12,8), %r13
movq 0x248(%rsp), %rax
leaq (%r12,%r12,2), %rbp
movq (%rax,%rbp,8), %r14
movq 0x8(%rax,%rbp,8), %r15
cmpq %r15, %r14
je 0x2833
movq (%r14), %rax
movq %rax, 0x50(%rsp)
cmpq %r13, (%rbx,%rax,8)
jbe 0x282d
movq 0x4d0(%rsp), %rcx
leaq (%rcx,%rbp,8), %rdi
movq 0x8(%rdi), %rsi
cmpq 0x10(%rdi), %rsi
je 0x2823
movq %rax, (%rsi)
addq $0x8, %rsi
movq %rsi, 0x8(%rdi)
jmp 0x282d
leaq 0x50(%rsp), %rdx
callq 0x5b02
addq $0x8, %r14
jmp 0x27ed
movq 0x258(%rsp), %rax
movq (%rax,%rbp,8), %r14
movq 0x8(%rax,%rbp,8), %r15
cmpq %r15, %r14
je 0x288a
movq (%r14), %rax
movq %rax, 0x50(%rsp)
cmpq %r13, (%rbx,%rax,8)
jbe 0x2884
movq 0x4e0(%rsp), %rcx
leaq (%rcx,%rbp,8), %rdi
movq 0x8(%rdi), %rsi
cmpq 0x10(%rdi), %rsi
je 0x287a
movq %rax, (%rsi)
addq $0x8, %rsi
movq %rsi, 0x8(%rdi)
jmp 0x2884
leaq 0x50(%rsp), %rdx
callq 0x5b02
addq $0x8, %r14
jmp 0x2844
movq 0x268(%rsp), %rax
movq (%rax,%rbp,8), %r14
movq 0x8(%rax,%rbp,8), %r15
cmpq %r15, %r14
je 0x28e1
movq (%r14), %rax
movq %rax, 0x50(%rsp)
cmpq %r13, (%rbx,%rax,8)
jbe 0x28db
movq 0x4f0(%rsp), %rcx
leaq (%rcx,%rbp,8), %rdi
movq 0x8(%rdi), %rsi
cmpq 0x10(%rdi), %rsi
je 0x28d1
movq %rax, (%rsi)
addq $0x8, %rsi
movq %rsi, 0x8(%rdi)
jmp 0x28db
leaq 0x50(%rsp), %rdx
callq 0x5b02
addq $0x8, %r14
jmp 0x289b
movq 0x278(%rsp), %rax
movq (%rax,%rbp,8), %r14
movq 0x8(%rax,%rbp,8), %r15
cmpq %r15, %r14
je 0x2938
movq (%r14), %rax
movq %rax, 0x50(%rsp)
cmpq %r13, (%rbx,%rax,8)
jbe 0x2932
movq 0x500(%rsp), %rcx
leaq (%rcx,%rbp,8), %rdi
movq 0x8(%rdi), %rsi
cmpq 0x10(%rdi), %rsi
je 0x2928
movq %rax, (%rsi)
addq $0x8, %rsi
movq %rsi, 0x8(%rdi)
jmp 0x2932
leaq 0x50(%rsp), %rdx
callq 0x5b02
addq $0x8, %r14
jmp 0x28f2
incq %r12
cmpq 0x8(%rsp), %r12
jne 0x27d4
movq 0x90(%rsp), %rdi
testq %rdi, %rdi
je 0x2963
movq 0xa0(%rsp), %rsi
subq %rdi, %rsi
callq 0x2170
movq 0x160(%rsp), %rax
movq 0x18(%rax), %rcx
movq 0x20(%rax), %rax
movq %rcx, 0x60(%rsp)
subq %rcx, %rax
je 0x2c37
movq %rax, %rcx
sarq $0x3, %rcx
movabsq $0x4ec4ec4ec4ec4ec5, %rsi # imm = 0x4EC4EC4EC4EC4EC5
imulq %rsi, %rcx
movq %rcx, 0x80(%rsp)
movq 0x168(%rsp), %rcx
movq 0x18(%rcx), %rax
movq 0x20(%rcx), %rcx
movq %rcx, %rdx
subq %rax, %rdx
sarq $0x3, %rdx
imulq %rsi, %rdx
movq 0x448(%rsp), %rsi
movq 0x438(%rsp), %rdi
leaq 0x58(%rax), %r8
xorl %r9d, %r9d
cmpq %rax, %rcx
je 0x2a12
imulq $0x68, %r9, %r11
movq 0x60(%rsp), %rbx
movq 0x28(%rbx,%r11), %r10
movq 0x58(%rbx,%r11), %r11
movq %r8, %rbx
xorl %r14d, %r14d
cmpq %r11, (%rbx)
jae 0x29fa
xorl %ebp, %ebp
jmp 0x2a02
cmpq %r10, -0x30(%rbx)
setae %bpl
movb %bpl, (%rsi,%r14)
incq %r14
addq $0x68, %rbx
cmpq %r14, %rdx
jne 0x29f1
incq %r9
addq %rdi, %rsi
cmpq 0x80(%rsp), %r9
jne 0x29d3
movq 0x168(%rsp), %rax
movq 0x18(%rax), %rcx
movq 0x20(%rax), %rax
movq %rax, 0x70(%rsp)
movq %rax, %rdx
movq %rcx, 0x28(%rsp)
subq %rcx, %rdx
sarq $0x3, %rdx
movabsq $0x4ec4ec4ec4ec4ec5, %rax # imm = 0x4EC4EC4EC4EC4EC5
imulq %rax, %rdx
movq %rdx, 0x30(%rsp)
movq 0x438(%rsp), %rax
movq %rax, 0x18(%rsp)
movq 0x448(%rsp), %rax
movq %rax, 0x68(%rsp)
movq $0x0, 0x40(%rsp)
xorl %ecx, %ecx
movq 0x70(%rsp), %rax
cmpq 0x28(%rsp), %rax
movq %rcx, 0x88(%rsp)
je 0x2c13
movq %rcx, %r13
imulq 0x18(%rsp), %r13
addq 0x68(%rsp), %r13
imulq $0x68, %rcx, %rax
movq 0x60(%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, 0x78(%rsp)
xorl %r12d, %r12d
cmpb $0x1, (%r13,%r12)
jne 0x2c07
movq 0x20(%rsp), %rax
movq 0x18(%rax), %r15
cmpq 0x8(%rsp), %r15
je 0x2b6d
imulq $0x68, %r12, %rax
movq 0x28(%rsp), %rcx
leaq 0x8(%rcx,%rax), %rbx
movq 0x10(%rbx), %rbp
cmpq %rbx, %rbp
je 0x2bf5
movq 0x438(%rsp), %rax
movq %rax, 0x38(%rsp)
movq 0x448(%rsp), %rax
movq %rax, 0x10(%rsp)
movq 0x20(%r15), %r14
imulq 0x38(%rsp), %r14
addq 0x10(%rsp), %r14
movq %rbp, %rax
movq 0x20(%rax), %rcx
cmpb $0x0, (%r14,%rcx)
jne 0x2b51
movq %rax, %rdi
callq 0x21a0
cmpq %rbx, %rax
jne 0x2b34
jmp 0x2bf5
movq %r15, %rdi
callq 0x21a0
cmpq 0x8(%rsp), %rax
je 0x2b6d
movq %rax, %r15
cmpq %rbx, %rbp
jne 0x2b22
jmp 0x2bf5
movq 0x8(%rsp), %rax
movq 0x40(%rax), %r15
cmpq 0x78(%rsp), %r15
je 0x2c02
imulq $0x68, %r12, %rax
movq 0x28(%rsp), %rcx
leaq 0x38(%rcx,%rax), %rbx
movq 0x10(%rbx), %rbp
cmpq %rbx, %rbp
je 0x2bf5
movq 0x438(%rsp), %rax
movq %rax, 0x38(%rsp)
movq 0x448(%rsp), %rax
movq %rax, 0x10(%rsp)
movq 0x20(%r15), %r14
imulq 0x38(%rsp), %r14
addq 0x10(%rsp), %r14
movq %rbp, %rax
movq 0x20(%rax), %rcx
cmpb $0x0, (%r14,%rcx)
jne 0x2bde
movq %rax, %rdi
callq 0x21a0
cmpq %rbx, %rax
jne 0x2bc4
jmp 0x2bf5
movq %r15, %rdi
callq 0x21a0
cmpq 0x78(%rsp), %rax
je 0x2c02
movq %rax, %r15
cmpq %rbx, %rbp
jne 0x2bb2
movb $0x0, (%r13,%r12)
movb $0x1, %al
movq %rax, 0x40(%rsp)
movq 0x30(%rsp), %rdx
incq %r12
cmpq %rdx, %r12
jne 0x2acd
movq 0x88(%rsp), %rcx
incq %rcx
cmpq 0x80(%rsp), %rcx
jne 0x2a7e
testb $0x1, 0x40(%rsp)
jne 0x2a59
leaq 0x160(%rsp), %rax
movq 0x258(%rax), %r11
movq 0x8(%rax), %rcx
movq %rcx, 0x530(%rsp)
movq 0x2c0(%rax), %rcx
movq %rcx, 0xe8(%rsp)
movq 0x300(%rax), %rcx
movq %rcx, 0x528(%rsp)
movq 0x2e8(%rax), %rcx
movq %rcx, 0x520(%rsp)
movq 0x2f0(%rax), %rax
movq %rax, 0x518(%rsp)
xorl %r13d, %r13d
movq 0x3f8(%rsp), %rax
movq %rax, 0x70(%rsp)
movq 0x420(%rsp), %rax
movq %rax, 0xc8(%rsp)
movq 0x168(%rsp), %rax
movq %rax, 0x578(%rsp)
movq 0x360(%rsp), %rax
movq %rax, 0x570(%rsp)
movq 0x448(%rsp), %rax
movq %rax, 0xd0(%rsp)
movq 0x460(%rsp), %rax
movq %rax, 0xd8(%rsp)
movq 0x4d0(%rsp), %rax
movq %rax, 0x568(%rsp)
movq 0x380(%rsp), %rax
movq %rax, 0x550(%rsp)
movq 0x4e0(%rsp), %rax
movq %rax, 0x560(%rsp)
movq 0x390(%rsp), %rax
movq %rax, 0x548(%rsp)
movq 0x4f0(%rsp), %rax
movq %rax, 0x540(%rsp)
movq 0x370(%rsp), %rax
movq %rax, 0x558(%rsp)
movq 0x500(%rsp), %rax
movq %rax, 0x538(%rsp)
movq 0x450(%rsp), %rax
movq %rax, 0xe0(%rsp)
movq 0x3a8(%rsp), %rax
decq %rax
movq (%r11), %rbp
cmpq %rax, %r13
movq %r11, 0x68(%rsp)
jae 0x3460
movq 0x70(%rsp), %rax
movq (%rax,%rbp,8), %rax
cmpq $-0x1, %rax
je 0x2da9
movq 0xc8(%rsp), %rcx
movq $-0x1, (%rcx,%rax,8)
movq 0x578(%rsp), %rax
movq 0x20(%rax), %rbx
subq 0x18(%rax), %rbx
sarq $0x3, %rbx
movabsq $0x4ec4ec4ec4ec4ec5, %rax # imm = 0x4EC4EC4EC4EC4EC5
imulq %rax, %rbx
movq 0x70(%rsp), %rax
movq (%rax,%rbp,8), %r12
incq %r12
cmpq %rbx, %r12
je 0x2e25
movq 0x438(%rsp), %r14
imulq %rbp, %r14
addq 0xd0(%rsp), %r14
movq 0x420(%rsp), %r15
cmpb $0x1, (%r14,%r12)
jne 0x2e1d
cmpq $-0x1, (%r15,%r12,8)
jne 0x2e1d
leaq 0x160(%rsp), %rdi
movq %rbp, %rsi
movq %r12, %rdx
callq 0x4850
testb %al, %al
jne 0x2e2c
incq %r12
cmpq %r12, %rbx
jne 0x2df8
movq $-0x1, %r12
cmpq $-0x1, %r12
je 0x335e
movq 0x70(%rsp), %rax
movq %r12, (%rax,%rbp,8)
movq 0xc8(%rsp), %rax
movq %r12, 0x18(%rsp)
movq %rbp, (%rax,%r12,8)
movl 0x458(%rsp), %eax
movslq 0x468(%rsp), %rcx
leaq 0x1(%rcx), %rdx
movl %edx, 0x468(%rsp)
movq 0xd8(%rsp), %rdx
movl %eax, 0x4(%rdx,%rcx,4)
movl 0x458(%rsp), %eax
movl %eax, 0x45c(%rsp)
movq %rbp, 0x580(%rsp)
leaq (%rbp,%rbp,2), %rax
movq 0x568(%rsp), %rcx
movq (%rcx,%rax,8), %rdx
movq 0x8(%rcx,%rax,8), %r12
movq %rdx, 0x20(%rsp)
cmpq %r12, %rdx
je 0x2f3f
movq 0x18(%rsp), %rcx
leaq (%rcx,%rcx,2), %rdx
movq 0x550(%rsp), %rsi
movq (%rsi,%rdx,8), %rcx
movq 0x8(%rsi,%rdx,8), %rdx
movq 0x420(%rsp), %rsi
movq 0x20(%rsp), %rdi
cmpq %rdx, %rcx
je 0x2f36
movq 0x438(%rsp), %r8
movq 0x448(%rsp), %r9
imulq (%rdi), %r8
movq 0x450(%rsp), %r10
movq %rcx, %r11
movq (%r11), %rbx
cmpq $-0x1, (%rsi,%rbx,8)
jne 0x2f2d
addq %r8, %rbx
cmpb $0x1, (%r9,%rbx)
jne 0x2f2d
movb $0x0, (%r9,%rbx)
movslq 0x458(%rsp), %r14
leaq 0x1(%r14), %r15
movl %r15d, 0x458(%rsp)
movl %ebx, 0x4(%r10,%r14,4)
addq $0x8, %r11
cmpq %rdx, %r11
jne 0x2efb
addq $0x8, %rdi
cmpq %r12, %rdi
jne 0x2ed7
movq %r12, 0x88(%rsp)
movq 0x560(%rsp), %rcx
movq (%rcx,%rax,8), %rdx
movq 0x8(%rcx,%rax,8), %rbp
movq %rdx, 0x10(%rsp)
cmpq %rbp, %rdx
je 0x2ff5
movq 0x18(%rsp), %rcx
leaq (%rcx,%rcx,2), %rdx
movq 0x548(%rsp), %rsi
movq (%rsi,%rdx,8), %rcx
movq 0x8(%rsi,%rdx,8), %rdx
movq 0x420(%rsp), %rsi
movq 0x10(%rsp), %rdi
cmpq %rdx, %rcx
je 0x2fec
movq 0x438(%rsp), %r8
movq 0x448(%rsp), %r9
imulq (%rdi), %r8
movq 0x450(%rsp), %r10
movq %rcx, %r11
movq (%r11), %rbx
cmpq $-0x1, (%rsi,%rbx,8)
jne 0x2fe3
addq %r8, %rbx
cmpb $0x1, (%r9,%rbx)
jne 0x2fe3
movb $0x0, (%r9,%rbx)
movslq 0x458(%rsp), %r14
leaq 0x1(%r14), %r15
movl %r15d, 0x458(%rsp)
movl %ebx, 0x4(%r10,%r14,4)
addq $0x8, %r11
cmpq %rdx, %r11
jne 0x2fb1
addq $0x8, %rdi
cmpq %rbp, %rdi
jne 0x2f8d
movq %r13, 0x60(%rsp)
movq 0x18(%rsp), %rcx
leaq (%rcx,%rcx,2), %rcx
movq 0x570(%rsp), %rdx
movq (%rdx,%rcx,8), %rsi
movq 0x8(%rdx,%rcx,8), %r13
movq %rsi, 0x40(%rsp)
cmpq %r13, %rsi
je 0x3098
movq 0x540(%rsp), %rsi
movq (%rsi,%rax,8), %rdx
movq 0x8(%rsi,%rax,8), %rsi
movq 0x438(%rsp), %rdi
movq 0x448(%rsp), %r8
movq 0x40(%rsp), %r9
cmpq %rsi, %rdx
je 0x308f
movq (%r9), %r10
movq 0x450(%rsp), %r11
movq %rdx, %rbx
movq (%rbx), %r14
imulq %rdi, %r14
addq %r10, %r14
cmpb $0x1, (%r8,%r14)
jne 0x3086
movb $0x0, (%r8,%r14)
movslq 0x458(%rsp), %r15
leaq 0x1(%r15), %r12
movl %r12d, 0x458(%rsp)
movl %r14d, 0x4(%r11,%r15,4)
addq $0x8, %rbx
cmpq %rsi, %rbx
jne 0x3057
addq $0x8, %r9
cmpq %r13, %r9
jne 0x3044
movq 0x558(%rsp), %rdx
movq (%rdx,%rcx,8), %rsi
movq 0x8(%rdx,%rcx,8), %rbx
movq %rsi, 0x28(%rsp)
cmpq %rbx, %rsi
je 0x312d
movq 0x538(%rsp), %rdx
movq (%rdx,%rax,8), %rcx
movq 0x8(%rdx,%rax,8), %rax
movq 0x438(%rsp), %rdx
movq 0x448(%rsp), %rsi
movq 0x28(%rsp), %rdi
cmpq %rax, %rcx
je 0x3124
movq (%rdi), %r8
movq 0x450(%rsp), %r9
movq %rcx, %r10
movq (%r10), %r11
imulq %rdx, %r11
addq %r8, %r11
cmpb $0x1, (%rsi,%r11)
jne 0x311b
movb $0x0, (%rsi,%r11)
movslq 0x458(%rsp), %r14
leaq 0x1(%r14), %r15
movl %r15d, 0x458(%rsp)
movl %r11d, 0x4(%r9,%r14,4)
addq $0x8, %r10
cmpq %rax, %r10
jne 0x30ec
addq $0x8, %rdi
cmpq %rbx, %rdi
jne 0x30d9
movq 0x3a8(%rsp), %rax
shrq %rax
cmpq %rax, 0x60(%rsp)
ja 0x3324
movq %rbp, 0x80(%rsp)
movq 0x88(%rsp), %rax
cmpq %rax, 0x20(%rsp)
je 0x323b
movq 0x420(%rsp), %rbp
cmpq %r13, 0x40(%rsp)
je 0x321f
movq 0x20(%rsp), %rax
movq (%rax), %rax
movq 0x448(%rsp), %rcx
movq 0x450(%rsp), %rdx
movq %rdx, 0x78(%rsp)
movq 0x438(%rsp), %rdx
movq %rax, 0x8(%rsp)
imulq %rax, %rdx
movq %rcx, 0x38(%rsp)
movq %rdx, 0x30(%rsp)
leaq (%rcx,%rdx), %r15
movq 0x40(%rsp), %r12
movq (%r12), %r14
cmpq $-0x1, (%rbp,%r14,8)
jne 0x3216
cmpb $0x1, (%r15,%r14)
jne 0x3216
leaq 0x160(%rsp), %rdi
movq 0x8(%rsp), %rsi
movq %r14, %rdx
callq 0x46d4
testb %al, %al
jne 0x3216
addq 0x30(%rsp), %r14
movq 0x38(%rsp), %rax
cmpb $0x1, (%rax,%r14)
jne 0x3216
movq 0x38(%rsp), %rax
movb $0x0, (%rax,%r14)
movslq 0x458(%rsp), %rax
leaq 0x1(%rax), %rcx
movl %ecx, 0x458(%rsp)
movq 0x78(%rsp), %rcx
movl %r14d, 0x4(%rcx,%rax,4)
addq $0x8, %r12
cmpq %r13, %r12
jne 0x31b2
movq 0x20(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x20(%rsp)
cmpq 0x88(%rsp), %rax
jne 0x3166
movq 0x80(%rsp), %rax
cmpq %rax, 0x10(%rsp)
je 0x3324
movq 0x420(%rsp), %r15
cmpq %rbx, 0x28(%rsp)
je 0x3308
movq 0x10(%rsp), %rax
movq (%rax), %r12
movq 0x448(%rsp), %rax
movq 0x450(%rsp), %rcx
movq %rcx, 0x20(%rsp)
movq 0x438(%rsp), %rcx
imulq %r12, %rcx
movq %rax, 0x8(%rsp)
movq %rcx, 0x38(%rsp)
leaq (%rax,%rcx), %r13
movq 0x28(%rsp), %rbp
movq (%rbp), %r14
cmpq $-0x1, (%r15,%r14,8)
jne 0x32ff
cmpb $0x1, (%r13,%r14)
jne 0x32ff
leaq 0x160(%rsp), %rdi
movq %r12, %rsi
movq %r14, %rdx
callq 0x46d4
testb %al, %al
jne 0x32ff
addq 0x38(%rsp), %r14
movq 0x8(%rsp), %rax
cmpb $0x1, (%rax,%r14)
jne 0x32ff
movq 0x8(%rsp), %rax
movb $0x0, (%rax,%r14)
movslq 0x458(%rsp), %rax
leaq 0x1(%rax), %rcx
movl %ecx, 0x458(%rsp)
movq 0x20(%rsp), %rcx
movl %r14d, 0x4(%rcx,%rax,4)
addq $0x8, %rbp
cmpq %rbx, %rbp
jne 0x329d
movq 0x10(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x10(%rsp)
cmpq 0x80(%rsp), %rax
jne 0x3256
leaq 0x160(%rsp), %rdi
movq 0x580(%rsp), %rsi
movq 0x18(%rsp), %rdx
callq 0x46d4
testb %al, %al
je 0x33e6
movq 0x60(%rsp), %rcx
incq %rcx
movq 0x68(%rsp), %r11
addq $0x8, %r11
movb $0x1, %al
jmp 0x3450
cmpq $-0x1, %rbp
je 0x3371
movq 0x70(%rsp), %rax
movq $-0x1, (%rax,%rbp,8)
leaq -0x1(%r13), %rcx
testq %r13, %r13
movq 0x68(%rsp), %r11
je 0x344e
addq $-0x8, %r11
movslq 0x468(%rsp), %rax
leal -0x1(%rax), %edx
movl %edx, 0x468(%rsp)
movq 0xd8(%rsp), %rdx
movslq (%rdx,%rax,4), %rdx
movslq 0x458(%rsp), %rsi
movb $0x1, %al
cmpl %edx, %esi
jle 0x3450
leal -0x1(%rsi), %edi
movq 0xd0(%rsp), %r9
movq 0xe0(%rsp), %r10
movl %edi, 0x458(%rsp)
movslq (%r10,%rsi,4), %r8
decq %rsi
movb $0x1, (%r9,%r8)
decl %edi
cmpq %rdx, %rsi
jg 0x33ca
jmp 0x3450
movslq 0x468(%rsp), %rax
leal -0x1(%rax), %ecx
movl %ecx, 0x468(%rsp)
movq 0xd8(%rsp), %rcx
movslq (%rcx,%rax,4), %rcx
movslq 0x458(%rsp), %rdx
movb $0x1, %al
cmpl %ecx, %edx
movq 0x68(%rsp), %r11
movq 0x60(%rsp), %r8
jle 0x3449
leal -0x1(%rdx), %esi
movq 0xd0(%rsp), %r9
movq 0xe0(%rsp), %r10
movl %esi, 0x458(%rsp)
movslq (%r10,%rdx,4), %rdi
decq %rdx
movb $0x1, (%r9,%rdi)
decl %esi
cmpq %rcx, %rdx
jg 0x342f
movq %r8, %rcx
jmp 0x3450
xorl %eax, %eax
movq %rcx, %r13
testb %al, %al
jne 0x2d6e
jmp 0x357f
movq %r13, 0x60(%rsp)
movq 0x530(%rsp), %rax
movq 0x20(%rax), %rbx
movq 0x18(%rax), %rax
subq %rax, %rbx
je 0x3513
sarq $0x3, %rbx
movabsq $0x4ec4ec4ec4ec4ec5, %rax # imm = 0x4EC4EC4EC4EC4EC5
imulq %rax, %rbx
movq 0x448(%rsp), %r14
movq 0x3d8(%rsp), %r15
movq 0x3f8(%rsp), %r13
xorl %r12d, %r12d
movq 0xe8(%rsp), %rax
cmpq $-0x1, (%rax,%r12,8)
jne 0x350b
movq 0x438(%rsp), %rax
imulq %rbp, %rax
addq %r14, %rax
cmpb $0x1, (%r12,%rax)
jne 0x350b
leaq 0x160(%rsp), %rdi
movq %rbp, %rsi
movq %r12, %rdx
callq 0x4850
testb %al, %al
je 0x350b
movq %r12, (%r13,%rbp,8)
movq 0xe8(%rsp), %rax
movq %rbp, (%rax,%r12,8)
incl (%r15)
movq $-0x1, %rcx
movq %rcx, (%r13,%rbp,8)
movq %rcx, (%rax,%r12,8)
incq %r12
cmpq %r12, %rbx
jne 0x34ab
movslq 0x468(%rsp), %rax
leal -0x1(%rax), %ecx
movl %ecx, 0x468(%rsp)
movq 0x528(%rsp), %rcx
movslq (%rcx,%rax,4), %rax
movslq 0x458(%rsp), %rcx
cmpl %eax, %ecx
movq 0x520(%rsp), %rdi
movq 0x518(%rsp), %r8
jle 0x3569
leal -0x1(%rcx), %edx
movl %edx, 0x458(%rsp)
movslq (%r8,%rcx,4), %rsi
decq %rcx
movb $0x1, (%rdi,%rsi)
decl %edx
cmpq %rax, %rcx
jg 0x3550
movq 0x68(%rsp), %r11
addq $-0x8, %r11
movq 0x60(%rsp), %r13
decq %r13
jmp 0x2c91
leaq 0x4b8(%rsp), %rdi
callq 0x5942
leaq 0x4a0(%rsp), %rdi
callq 0x5942
leaq 0x488(%rsp), %rdi
callq 0x5942
leaq 0x470(%rsp), %rdi
callq 0x5942
leaq 0x430(%rsp), %rdi
callq 0x46a2
movq 0x408(%rsp), %rdi
testq %rdi, %rdi
je 0x35dd
movq 0x418(%rsp), %rsi
subq %rdi, %rsi
callq 0x2170
movq 0x3e0(%rsp), %rdi
testq %rdi, %rdi
je 0x35fa
movq 0x3f0(%rsp), %rsi
subq %rdi, %rsi
callq 0x2170
movq 0x3b8(%rsp), %rdi
testq %rdi, %rdi
je 0x3617
movq 0x3c8(%rsp), %rsi
subq %rdi, %rsi
callq 0x2170
leaq 0x348(%rsp), %rdi
callq 0x5942
leaq 0x330(%rsp), %rdi
callq 0x5942
leaq 0x318(%rsp), %rdi
callq 0x5942
leaq 0x300(%rsp), %r14
movq %r14, %rdi
callq 0x5942
movq -0x38(%r14), %rdi
testq %rdi, %rdi
je 0x3667
movq 0x2d8(%rsp), %rsi
subq %rdi, %rsi
callq 0x2170
movq 0x2b0(%rsp), %rdi
testq %rdi, %rdi
je 0x3684
movq 0x2c0(%rsp), %rsi
subq %rdi, %rsi
callq 0x2170
movq 0x298(%rsp), %rdi
testq %rdi, %rdi
je 0x36a1
movq 0x2a8(%rsp), %rsi
subq %rdi, %rsi
callq 0x2170
leaq 0x230(%rsp), %rdi
callq 0x5942
leaq 0x218(%rsp), %rdi
callq 0x5942
leaq 0x200(%rsp), %rdi
callq 0x5942
leaq 0x1e8(%rsp), %r14
movq %r14, %rdi
callq 0x5942
movq -0x38(%r14), %rdi
testq %rdi, %rdi
je 0x36f1
movq 0x1c0(%rsp), %rsi
subq %rdi, %rsi
callq 0x2170
movq 0x198(%rsp), %rdi
testq %rdi, %rdi
leaq 0xf0(%rsp), %r14
je 0x3716
movq 0x1a8(%rsp), %rsi
subq %rdi, %rsi
callq 0x2170
movq 0x180(%rsp), %rdi
testq %rdi, %rdi
je 0x3733
movq 0x190(%rsp), %rsi
subq %rdi, %rsi
callq 0x2170
movq 0xb0(%rsp), %rdi
testq %rdi, %rdi
je 0x3750
movq 0xc0(%rsp), %rsi
subq %rdi, %rsi
callq 0x2170
callq 0x21d0
subq 0x510(%rsp), %rax
movabsq $0x431bde82d7b634db, %rbx # imm = 0x431BDE82D7B634DB
imulq %rbx
movq %rdx, %r15
movq 0x7864(%rip), %rdi      # 0xafd8
movq (%rdi), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x10(%rdi,%rax)
leaq 0x4920(%rip), %rsi      # 0x80ab
movl $0x8, %edx
callq 0x2190
movl 0x4c(%rsp), %esi
movq 0x7838(%rip), %r13      # 0xafd8
movq %r13, %rdi
callq 0x2210
movq %rax, %r12
leaq 0x4902(%rip), %rsi      # 0x80b4
movl $0x2, %edx
movq %rax, %rdi
callq 0x2190
leaq 0x48f1(%rip), %rsi      # 0x80b7
movl $0x7, %edx
movq %r12, %rdi
callq 0x2190
movq %r15, %rax
shrq $0x3f, %rax
sarq $0x12, %r15
addq %rax, %r15
movq %r12, %rdi
movq %r15, %rsi
callq 0x2140
movq %rax, %r15
leaq 0x48c9(%rip), %rsi      # 0x80bf
movl $0x3, %edx
movq %rax, %rdi
callq 0x2190
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x2150
movsbl %al, %esi
movq %r15, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2110
movl $0x0, 0x4c(%rsp)
callq 0x21d0
movq %rax, %r12
leaq 0xb0(%rsp), %rdi
leaq 0x128(%rsp), %r15
movq %r15, %rsi
callq 0x64bf
movq 0x148(%rsp), %rax
subq 0x140(%rsp), %rax
movq %rax, %rcx
sarq $0x3, %rcx
movabsq $0x4ec4ec4ec4ec4ec5, %rdx # imm = 0x4EC4EC4EC4EC4EC5
imulq %rdx, %rcx
movq 0xb8(%rsp), %rdx
subq 0xb0(%rsp), %rdx
sarq $0x3, %rdx
cmpq %rdx, %rcx
jne 0x43a5
movq 0x110(%rsp), %rcx
subq 0x108(%rsp), %rcx
cmpq %rcx, %rax
ja 0x420d
movq 0x138(%rsp), %rax
cmpq 0x100(%rsp), %rax
ja 0x420d
leaq 0x178(%rsp), %r13
movq %r15, -0x18(%r13)
movq %r14, -0x10(%r13)
movq %r13, %rdi
movq %r15, %rsi
movq %r14, %rdx
callq 0x6534
leaq 0x228(%rsp), %rbx
leaq 0xf0(%rsp), %rsi
leaq 0x128(%rsp), %rdx
movq %rbx, %rdi
callq 0x6534
vxorps %xmm0, %xmm0, %xmm0
leaq 0x90(%rsp), %rax
vmovaps %xmm0, (%rax)
movq $0x0, 0x10(%rax)
movq $0x0, 0x88(%rsp)
leaq 0x50(%rsp), %r15
movq %r12, 0x68(%rsp)
movq 0x160(%rsp), %rax
movq 0x220(%rsp), %rsi
movq 0x20(%rax), %rcx
subq 0x18(%rax), %rcx
sarq $0x3, %rcx
movabsq $0x4ec4ec4ec4ec4ec5, %rax # imm = 0x4EC4EC4EC4EC4EC5
imulq %rax, %rcx
cmpq %rcx, %rsi
jne 0x3967
incl 0x4c(%rsp)
jmp 0x3a90
movq 0x208(%rsp), %rdi
movq 0x210(%rsp), %rdx
movq 0x2b8(%rsp), %r8
movq 0x2c0(%rsp), %r9
cmpq %r8, %rdi
setbe %al
cmpq %r9, %rdx
setbe %cl
andb %al, %cl
cmpb $0x1, %cl
jne 0x3a90
movq 0x218(%rsp), %r10
movq 0x2c8(%rsp), %rcx
cmpq %rcx, %r10
ja 0x3a90
movq 0xb0(%rsp), %r12
movq 0xb8(%rsp), %rax
cmpq %rax, %r12
je 0x3a62
cmpq %r10, %rsi
setae %r10b
movq 0x2d0(%rsp), %r11
cmpq %rcx, %r11
setae %cl
cmpq %rdx, %rsi
movq %rbx, %r15
setb %bl
cmpq %r9, %r11
setb %dl
andb %bl, %dl
movq %r15, %rbx
leaq 0x50(%rsp), %r15
cmpq %rdi, %rsi
setb %dil
cmpq %r8, %r11
setb %sil
andb %dil, %sil
movq 0x1a8(%rsp), %rdi
movq 0x1e8(%rsp), %r8
movq 0x1f8(%rsp), %r9
orb %r10b, %cl
movq (%r12), %r10
testb %cl, %cl
je 0x3a44
testb %dl, %dl
jne 0x3a4b
testb %sil, %sil
je 0x3a52
cmpq $0x0, (%r8,%r10,8)
jne 0x3a52
jmp 0x3a59
cmpq $0x0, (%r8,%r10,8)
je 0x3a59
cmpq $0x0, (%r9,%r10,8)
je 0x3a59
cmpq $-0x1, (%rdi,%r10,8)
je 0x3a62
addq $0x8, %r12
cmpq %rax, %r12
jne 0x3a2a
movq 0x110(%rsp), %rcx
subq 0x108(%rsp), %rcx
sarq $0x3, %rcx
movabsq $0x4ec4ec4ec4ec4ec5, %rax # imm = 0x4EC4EC4EC4EC4EC5
imulq %rax, %rcx
movq %rcx, 0x88(%rsp)
xorl %ebp, %ebp
jmp 0x3af1
movq 0x90(%rsp), %rdi
movq 0x98(%rsp), %rax
cmpq %rax, %rdi
je 0x4134
leaq -0x10(%rax), %rcx
movq -0x10(%rax), %r12
movq -0x8(%rax), %rbp
movq %rcx, 0x98(%rsp)
movq (%r12), %rax
movq 0x1a8(%rsp), %rcx
movq (%rcx,%rax,8), %rax
movq %rax, 0x50(%rsp)
movq %r13, %rdi
movq %r12, %rsi
movq %r15, %rdx
callq 0x691a
movq %rbx, %rdi
movq %r15, %rsi
movq %r12, %rdx
callq 0x691a
incq %rbp
cmpq 0x88(%rsp), %rbp
je 0x3a90
movq 0x220(%rsp), %rax
cmpq 0x218(%rsp), %rax
jae 0x3b30
movq 0x2d0(%rsp), %rcx
cmpq 0x2c8(%rsp), %rcx
jae 0x3b30
movq 0x298(%rsp), %rax
cmpq $0x0, (%rax,%rbp,8)
jne 0x3b4c
jmp 0x3aee
cmpq 0x210(%rsp), %rax
jae 0x3b56
movq 0x2d0(%rsp), %rcx
cmpq 0x2c0(%rsp), %rcx
jae 0x3b56
movq 0x2a8(%rsp), %rax
jmp 0x3b7a
cmpq 0x208(%rsp), %rax
jae 0x3b85
movq 0x2d0(%rsp), %rax
cmpq 0x2b8(%rsp), %rax
jae 0x3b85
movq 0x298(%rsp), %rax
cmpq $0x0, (%rax,%rbp,8)
je 0x3aee
movq 0x258(%rsp), %rax
cmpq $-0x1, (%rax,%rbp,8)
jne 0x3aee
movq %r12, 0x18(%rsp)
movq (%r12), %r14
movq 0x160(%rsp), %rax
movq 0x168(%rsp), %rcx
movq %rcx, 0x8(%rsp)
movq 0x18(%rax), %rax
imulq $0x68, %r14, %rcx
movq %rax, 0x40(%rsp)
movq %rcx, 0x28(%rsp)
leaq 0x38(%rax,%rcx), %r13
movq 0x10(%r13), %rax
movq 0x1a8(%rsp), %r15
movq 0x1e8(%rsp), %rcx
movq %rcx, 0x10(%rsp)
movq 0x1f8(%rsp), %rbx
xorl %r12d, %r12d
movq $0x0, 0x38(%rsp)
movq $0x0, 0x20(%rsp)
cmpq %r13, %rax
movq %rax, 0x30(%rsp)
je 0x3cda
xorl %ecx, %ecx
movq 0x20(%rax), %rdx
movq (%r15,%rdx,8), %rsi
cmpq %r14, %rdx
je 0x3c5c
cmpq $-0x1, %rsi
jne 0x3c5c
movq 0x10(%rsp), %rsi
movq (%rsi,%rdx,8), %rdi
xorl %esi, %esi
testq %rdi, %rdi
setne %sil
addq %rsi, %r12
movq (%rbx,%rdx,8), %rsi
cmpq $0x1, %rsi
sbbq $-0x1, 0x38(%rsp)
movb $0x1, %dl
testq %rdi, %rdi
jne 0x3cb6
cmpq $0x1, %rsi
adcq $0x0, 0x20(%rsp)
jmp 0x3cb6
cmpq %r14, %rdx
cmoveq %rbp, %rsi
movq 0x8(%rsp), %rdx
movq 0x18(%rdx), %rdx
imulq $0x68, %rsi, %rsi
leaq 0x8(%rdx,%rsi), %rdx
movq 0x8(%rdx), %rdi
movq %rdx, %rsi
testq %rdi, %rdi
je 0x3c9d
movq %rdx, %rsi
xorl %r8d, %r8d
cmpq %rbp, 0x20(%rdi)
setb %r8b
cmovaeq %rdi, %rsi
movq 0x10(%rdi,%r8,8), %rdi
testq %rdi, %rdi
jne 0x3c84
movq %rdx, %rdi
cmpq %rdx, %rsi
je 0x3cb0
cmpq %rbp, 0x20(%rsi)
cmovaq %rdx, %rsi
movq %rsi, %rdi
cmpq %rdx, %rdi
setne %dl
testb %dl, %dl
je 0x3cce
movq %rax, %rdi
callq 0x21a0
cmpq %r13, %rax
sete %cl
jne 0x3c13
movq %r13, %rax
testb $0x1, %cl
jne 0x3c03
cmpq %r13, 0x30(%rsp)
je 0x3d03
leaq 0xf0(%rsp), %r14
leaq 0x178(%rsp), %r13
leaq 0x228(%rsp), %rbx
leaq 0x50(%rsp), %r15
jmp 0x3e22
movq 0x40(%rsp), %rax
movq 0x28(%rsp), %rdx
leaq (%rax,%rdx), %rcx
movq %rcx, 0x80(%rsp)
leaq 0x8(%rax,%rdx), %rdx
movq 0x10(%rdx), %rax
movq %rdx, %r13
cmpq %rdx, %rax
movq %rax, 0x30(%rsp)
je 0x3dfe
xorl %ecx, %ecx
movq 0x20(%rax), %rsi
movq (%r15,%rsi,8), %rdx
cmpq %r14, %rsi
je 0x3d7d
cmpq $-0x1, %rdx
jne 0x3d7d
movq 0x10(%rsp), %rdx
movq (%rdx,%rsi,8), %rdi
xorl %edx, %edx
testq %rdi, %rdi
setne %dl
addq %rdx, %r12
movq (%rbx,%rsi,8), %rsi
cmpq $0x1, %rsi
sbbq $-0x1, 0x38(%rsp)
movb $0x1, %dl
testq %rdi, %rdi
jne 0x3dd7
cmpq $0x1, %rsi
adcq $0x0, 0x20(%rsp)
jmp 0x3dd7
cmpq %r14, %rsi
cmoveq %rbp, %rdx
movq 0x8(%rsp), %rsi
movq 0x18(%rsi), %rsi
imulq $0x68, %rbp, %rdi
leaq 0x8(%rsi,%rdi), %rsi
movq 0x8(%rsi), %r8
movq %rsi, %rdi
testq %r8, %r8
je 0x3dbe
movq %rsi, %rdi
xorl %r9d, %r9d
cmpq %rdx, 0x20(%r8)
setb %r9b
cmovaeq %r8, %rdi
movq 0x10(%r8,%r9,8), %r8
testq %r8, %r8
jne 0x3da5
movq %rsi, %r8
cmpq %rsi, %rdi
je 0x3dd1
cmpq %rdx, 0x20(%rdi)
cmovaq %rsi, %rdi
movq %rdi, %r8
cmpq %rsi, %r8
setne %dl
testb %dl, %dl
je 0x3def
movq %rax, %rdi
callq 0x21a0
cmpq %r13, %rax
sete %cl
jne 0x3d35
movq %r13, %rdx
movq %r13, %rax
testb $0x1, %cl
jne 0x3d25
cmpq %rdx, 0x30(%rsp)
leaq 0x50(%rsp), %r15
je 0x3e2c
leaq 0xf0(%rsp), %r14
leaq 0x178(%rsp), %r13
leaq 0x228(%rsp), %rbx
movq 0x18(%rsp), %r12
jmp 0x3aee
movq 0x8(%rsp), %rax
movq 0x18(%rax), %rax
imulq $0x68, %rbp, %rcx
movq %rax, 0x60(%rsp)
movq %rcx, 0xc8(%rsp)
leaq 0x38(%rax,%rcx), %rbx
movq 0x10(%rbx), %rax
movq 0x258(%rsp), %r15
movq 0x298(%rsp), %rcx
movq %rcx, 0x30(%rsp)
movq 0x2a8(%rsp), %rcx
movq %rcx, 0x28(%rsp)
movq $0x0, 0x10(%rsp)
movq $0x0, 0x8(%rsp)
movq $0x0, 0x78(%rsp)
cmpq %rbx, %rax
movq %rax, 0x70(%rsp)
je 0x3f66
xorl %ecx, %ecx
movq 0x20(%rax), %rdx
movq (%r15,%rdx,8), %rsi
cmpq %rbp, %rdx
je 0x3eec
cmpq $-0x1, %rsi
jne 0x3eec
movq 0x30(%rsp), %rsi
movq (%rsi,%rdx,8), %rdi
xorl %esi, %esi
testq %rdi, %rdi
setne %sil
addq %rsi, 0x8(%rsp)
movq 0x28(%rsp), %rsi
movq (%rsi,%rdx,8), %rsi
cmpq $0x1, %rsi
sbbq $-0x1, 0x10(%rsp)
movb $0x1, %dl
testq %rdi, %rdi
jne 0x3f42
cmpq $0x1, %rsi
adcq $0x0, 0x78(%rsp)
jmp 0x3f42
cmpq %rbp, %rdx
cmoveq %r14, %rsi
imulq $0x68, %rsi, %rdx
movq 0x40(%rsp), %rsi
leaq 0x8(%rsi,%rdx), %rdx
movq 0x8(%rdx), %rdi
movq %rdx, %rsi
testq %rdi, %rdi
je 0x3f29
movq %rdx, %rsi
xorl %r8d, %r8d
cmpq %r14, 0x20(%rdi)
setb %r8b
cmovaeq %rdi, %rsi
movq 0x10(%rdi,%r8,8), %rdi
testq %rdi, %rdi
jne 0x3f10
movq %rdx, %rdi
cmpq %rdx, %rsi
je 0x3f3c
cmpq %r14, 0x20(%rsi)
cmovaq %rdx, %rsi
movq %rsi, %rdi
cmpq %rdx, %rdi
setne %dl
testb %dl, %dl
je 0x3f5a
movq %rax, %rdi
callq 0x21a0
cmpq %rbx, %rax
sete %cl
jne 0x3e9c
movq %rbx, %rax
testb $0x1, %cl
jne 0x3e8c
cmpq %rbx, 0x70(%rsp)
jne 0x3ce1
movq 0x60(%rsp), %rax
movq 0xc8(%rsp), %rcx
leaq 0x8(%rax,%rcx), %rbx
movq 0x10(%rbx), %rax
cmpq %rbx, %rax
movq %rax, 0x40(%rsp)
je 0x405d
xorl %ecx, %ecx
movq 0x20(%rax), %rsi
movq (%r15,%rsi,8), %rdx
cmpq %rbp, %rsi
je 0x3fe6
cmpq $-0x1, %rdx
jne 0x3fe6
movq 0x30(%rsp), %rdx
movq (%rdx,%rsi,8), %rdi
xorl %edx, %edx
testq %rdi, %rdi
setne %dl
addq %rdx, 0x8(%rsp)
movq 0x28(%rsp), %rdx
movq (%rdx,%rsi,8), %rsi
cmpq $0x1, %rsi
sbbq $-0x1, 0x10(%rsp)
movb $0x1, %dl
testq %rdi, %rdi
jne 0x4039
cmpq $0x1, %rsi
adcq $0x0, 0x78(%rsp)
jmp 0x4039
cmpq %rbp, %rsi
cmoveq %r14, %rdx
movq 0x80(%rsp), %rsi
movq 0x10(%rsi), %rdi
movq %r13, %rsi
testq %rdi, %rdi
je 0x401d
movq %r13, %rsi
xorl %r8d, %r8d
cmpq %rdx, 0x20(%rdi)
setb %r8b
cmovaeq %rdi, %rsi
movq 0x10(%rdi,%r8,8), %rdi
testq %rdi, %rdi
jne 0x4004
movq %r13, %r8
movq %r13, %rdi
cmpq %r13, %rsi
je 0x4033
cmpq %rdx, 0x20(%rsi)
cmovaq %r8, %rsi
movq %rsi, %rdi
cmpq %r8, %rdi
setne %dl
testb %dl, %dl
je 0x4051
movq %rax, %rdi
callq 0x21a0
cmpq %rbx, %rax
sete %cl
jne 0x3f97
movq %rbx, %rax
testb $0x1, %cl
jne 0x3f87
cmpq %rbx, 0x40(%rsp)
leaq 0xf0(%rsp), %r14
jne 0x3ce9
cmpq 0x8(%rsp), %r12
leaq 0x178(%rsp), %r13
leaq 0x50(%rsp), %r15
ja 0x3e1a
movq 0x10(%rsp), %rax
cmpq %rax, 0x38(%rsp)
leaq 0x228(%rsp), %rbx
movq 0x18(%rsp), %r12
ja 0x3aee
movq 0x78(%rsp), %rax
cmpq %rax, 0x20(%rsp)
ja 0x3aee
vxorps %xmm0, %xmm0, %xmm0
vmovaps %xmm0, 0x50(%rsp)
movq %r12, 0x50(%rsp)
movq %rbp, 0x58(%rsp)
movq 0x98(%rsp), %rsi
cmpq 0xa0(%rsp), %rsi
je 0x40f0
vmovaps 0x50(%rsp), %xmm0
vmovups %xmm0, (%rsi)
addq $0x10, 0x98(%rsp)
jmp 0x4100
leaq 0x90(%rsp), %rdi
movq %r15, %rdx
callq 0x669e
movq %rbp, 0x588(%rsp)
movq %r13, %rdi
movq %r12, %rsi
movq %r12, %rbp
leaq 0x588(%rsp), %r12
movq %r12, %rdx
callq 0x67e4
movq %rbx, %rdi
movq %r12, %rsi
movq %rbp, %rdx
callq 0x67e4
jmp 0x392f
testq %rdi, %rdi
je 0x4149
movq 0xa0(%rsp), %rsi
subq %rdi, %rsi
callq 0x2170
movq 0x280(%rsp), %rdi
testq %rdi, %rdi
movabsq $0x431bde82d7b634db, %rbx # imm = 0x431BDE82D7B634DB
movq 0x6e73(%rip), %r13      # 0xafd8
movq 0x68(%rsp), %r12
je 0x417c
movq 0x290(%rsp), %rsi
subq %rdi, %rsi
callq 0x2170
movq 0x268(%rsp), %rdi
testq %rdi, %rdi
je 0x4199
movq 0x278(%rsp), %rsi
subq %rdi, %rsi
callq 0x2170
movq 0x240(%rsp), %rdi
testq %rdi, %rdi
je 0x41b6
movq 0x250(%rsp), %rsi
subq %rdi, %rsi
callq 0x2170
movq 0x1d0(%rsp), %rdi
testq %rdi, %rdi
je 0x41d3
movq 0x1e0(%rsp), %rsi
subq %rdi, %rsi
callq 0x2170
movq 0x1b8(%rsp), %rdi
testq %rdi, %rdi
je 0x41f0
movq 0x1c8(%rsp), %rsi
subq %rdi, %rsi
callq 0x2170
movq 0x190(%rsp), %rdi
testq %rdi, %rdi
je 0x420d
movq 0x1a0(%rsp), %rsi
subq %rdi, %rsi
callq 0x2170
movq 0xb0(%rsp), %rdi
testq %rdi, %rdi
je 0x422a
movq 0xc0(%rsp), %rsi
subq %rdi, %rsi
callq 0x2170
callq 0x21d0
subq %r12, %rax
imulq %rbx
movq %rdx, %r15
movq (%r13), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x10(%r13,%rax)
leaq 0x3e73(%rip), %rsi      # 0x80c3
movl $0x5, %edx
movq %r13, %rdi
callq 0x2190
movl 0x4c(%rsp), %esi
movq 0x6d70(%rip), %rdi      # 0xafd8
callq 0x2210
movq %rax, %r12
leaq 0x3e3d(%rip), %rsi      # 0x80b4
movl $0x2, %edx
movq %rax, %rdi
callq 0x2190
leaq 0x3e2c(%rip), %rsi      # 0x80b7
movl $0x7, %edx
movq %r12, %rdi
callq 0x2190
movq %r15, %rax
shrq $0x3f, %rax
sarq $0x12, %r15
addq %rax, %r15
movq %r12, %rdi
movq %r15, %rsi
callq 0x2140
movq %rax, %r15
leaq 0x3e04(%rip), %rsi      # 0x80bf
movl $0x3, %edx
movq %rax, %rdi
callq 0x2190
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x2150
movsbl %al, %esi
movq %r15, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2110
movq 0x120(%rsp), %rdi
testq %rdi, %rdi
je 0x4306
movl $0x1, %esi
callq 0x2170
leaq 0x108(%rsp), %rdi
callq 0x4be4
movq 0xf0(%rsp), %rdi
cmpq %r14, %rdi
je 0x4335
movq (%rdi), %rbx
movl $0x28, %esi
callq 0x2170
movq %rbx, %rdi
cmpq %r14, %rbx
jne 0x4320
xorl %ebp, %ebp
movq 0x158(%rsp), %rdi
testq %rdi, %rdi
je 0x434e
movl $0x1, %esi
callq 0x2170
leaq 0x140(%rsp), %r14
movq %r14, %rdi
callq 0x4be4
movq -0x18(%r14), %rdi
leaq 0x128(%rsp), %r14
cmpq %r14, %rdi
je 0x4384
movq (%rdi), %rbx
movl $0x28, %esi
callq 0x2170
movq %rbx, %rdi
cmpq %r14, %rbx
jne 0x436f
leaq 0x590(%rsp), %rdi
callq 0x2090
movl %ebp, %eax
addq $0x798, %rsp            # imm = 0x798
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x3d92(%rip), %rdi      # 0x813e
leaq 0x3dc2(%rip), %rsi      # 0x8175
leaq 0x3dea(%rip), %rcx      # 0x81a4
movl $0x3d8, %edx            # imm = 0x3D8
callq 0x2100
jmp 0x4449
jmp 0x4449
movq %rax, %rbx
movq %r13, %rdi
callq 0x6658
jmp 0x4655
jmp 0x4425
movq %rax, %rbx
jmp 0x44a9
movq %rax, %rbx
jmp 0x44b6
movq %rax, %rbx
jmp 0x44c3
movq %rax, %rbx
jmp 0x44d0
movq %rax, %rbx
jmp 0x44dd
movq %rax, %rbx
jmp 0x4507
movq %rax, %rbx
jmp 0x4524
movq %rax, %rbx
jmp 0x4541
movq %rax, %rbx
jmp 0x45cb
movq %rax, %rbx
jmp 0x4655
jmp 0x447b
jmp 0x4441
movq %rax, %rbx
jmp 0x468c
movq %rax, %rbx
jmp 0x44ea
movq %rax, %rbx
jmp 0x467f
movq %rax, %rbx
movq 0x90(%rsp), %rdi
testq %rdi, %rdi
je 0x4469
movq 0xa0(%rsp), %rsi
subq %rdi, %rsi
callq 0x2170
leaq 0x160(%rsp), %rdi
callq 0x49dc
jmp 0x4655
movq %rax, %rbx
jmp 0x4672
jmp 0x4489
jmp 0x4489
jmp 0x4489
movq %rax, %rbx
movq 0x90(%rsp), %rdi
testq %rdi, %rdi
je 0x44a9
movq 0xa0(%rsp), %rsi
subq %rdi, %rsi
callq 0x2170
leaq 0x4b8(%rsp), %rdi
callq 0x5942
leaq 0x4a0(%rsp), %rdi
callq 0x5942
leaq 0x488(%rsp), %rdi
callq 0x5942
leaq 0x470(%rsp), %rdi
callq 0x5942
leaq 0x430(%rsp), %rdi
callq 0x46a2
movq 0x408(%rsp), %rdi
testq %rdi, %rdi
je 0x4507
movq 0x418(%rsp), %rsi
subq %rdi, %rsi
callq 0x2170
movq 0x3e0(%rsp), %rdi
testq %rdi, %rdi
je 0x4524
movq 0x3f0(%rsp), %rsi
subq %rdi, %rsi
callq 0x2170
movq 0x3b8(%rsp), %rdi
testq %rdi, %rdi
je 0x4541
movq 0x3c8(%rsp), %rsi
subq %rdi, %rsi
callq 0x2170
leaq 0x348(%rsp), %rdi
callq 0x5942
leaq 0x330(%rsp), %rdi
callq 0x5942
leaq 0x318(%rsp), %rdi
callq 0x5942
leaq 0x300(%rsp), %r14
movq %r14, %rdi
callq 0x5942
movq -0x38(%r14), %rdi
testq %rdi, %rdi
je 0x4591
movq 0x2d8(%rsp), %rsi
subq %rdi, %rsi
callq 0x2170
movq 0x2b0(%rsp), %rdi
testq %rdi, %rdi
je 0x45ae
movq 0x2c0(%rsp), %rsi
subq %rdi, %rsi
callq 0x2170
movq 0x298(%rsp), %rdi
testq %rdi, %rdi
je 0x45cb
movq 0x2a8(%rsp), %rsi
subq %rdi, %rsi
callq 0x2170
leaq 0x230(%rsp), %rdi
callq 0x5942
leaq 0x218(%rsp), %rdi
callq 0x5942
leaq 0x200(%rsp), %rdi
callq 0x5942
leaq 0x1e8(%rsp), %r14
movq %r14, %rdi
callq 0x5942
movq -0x38(%r14), %rdi
testq %rdi, %rdi
je 0x461b
movq 0x1c0(%rsp), %rsi
subq %rdi, %rsi
callq 0x2170
movq 0x198(%rsp), %rdi
testq %rdi, %rdi
je 0x4638
movq 0x1a8(%rsp), %rsi
subq %rdi, %rsi
callq 0x2170
movq 0x180(%rsp), %rdi
testq %rdi, %rdi
je 0x4655
movq 0x190(%rsp), %rsi
subq %rdi, %rsi
callq 0x2170
movq 0xb0(%rsp), %rdi
testq %rdi, %rdi
je 0x4672
movq 0xc0(%rsp), %rsi
subq %rdi, %rsi
callq 0x2170
leaq 0xf0(%rsp), %rdi
callq 0x4b5a
leaq 0x128(%rsp), %rdi
callq 0x4b5a
leaq 0x590(%rsp), %rdi
callq 0x2090
movq %rbx, %rdi
callq 0x2220
nop