// File: /workspace/github_cpp_makefile_star2_O3/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
movl $0xa, %esi
movq -0x18(%rax), %rdi
addq %rbx, %rdi
callq 0x2150
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2110
movl $0x1, %ebp
jmp 0x42ba
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 0x42ad
leaq 0x550(%rsp), %rdi
leaq 0x590(%rsp), %rsi
callq 0x48e8
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 0x4269
leaq 0xd0(%rsp), %r14
leaq 0x590(%rsp), %rsi
movq %r14, %rdi
callq 0x48e8
leaq 0x590(%rsp), %rdi
callq 0x2070
movl $0x0, 0x5c(%rsp)
callq 0x21d0
movq %rax, 0x4d8(%rsp)
leaq 0x550(%rsp), %r15
leaq 0xa8(%rsp), %rdi
movq %r15, %rsi
callq 0x5acf
leaq 0x138(%rsp), %rdi
movq %r15, -0x10(%rdi)
movq %r14, -0x8(%rdi)
movq %r15, %rsi
callq 0x5144
leaq 0x250(%rsp), %rdi
leaq 0xd0(%rsp), %rsi
callq 0x5144
movq 0x570(%rsp), %rax
movq 0xf0(%rsp), %rdx
movabsq $0x4ec4ec4ec4ec4ec5, %rcx # imm = 0x4EC4EC4EC4EC4EC5
leaq 0x380(%rsp), %rdi
subq 0x568(%rsp), %rax
subq 0xe8(%rsp), %rdx
sarq $0x3, %rax
sarq $0x3, %rdx
imulq %rcx, %rax
imulq %rcx, %rdx
movq %rax, -0x10(%rdi)
movq %rdx, -0x8(%rdi)
leaq 0xa8(%rsp), %rsi
callq 0x5582
leaq 0x5c(%rsp), %rax
leaq 0x3a8(%rsp), %rdi
leaq 0x80(%rsp), %rdx
movq %rax, -0x8(%rdi)
movq $-0x1, (%rdx)
movq -0x38(%rdi), %rsi
leaq 0x20(%rsp), %rcx
callq 0x5604
leaq 0x3d0(%rsp), %rdi
leaq 0x80(%rsp), %rdx
movq -0x28(%rdi), %rax
movq -0x58(%rdi), %rsi
movq $-0x1, (%rdx)
movq %rax, -0x10(%rdi)
leaq 0x20(%rsp), %rcx
callq 0x5604
movq 0x3d0(%rsp), %r15
movq %r15, 0x3e8(%rsp)
movq 0x370(%rsp), %r12
movq 0x378(%rsp), %r14
movq %r12, 0x3f8(%rsp)
movq %r14, 0x400(%rsp)
imulq %r12, %r14
movq %r14, %rdi
callq 0x2030
movq %rax, 0x410(%rsp)
movq %r14, %rax
shrq $0x3e, %rax
shlq $0x2, %r14
negq %rax
sbbq %r13, %r13
orq %r14, %r13
movq %r13, %rdi
callq 0x2030
movq %rax, 0x418(%rsp)
movq $-0x1, 0x420(%rsp)
movq %r13, %rdi
callq 0x2030
leaq 0x3f8(%rsp), %rcx
leaq 0x438(%rsp), %rdi
movq %rax, 0x30(%rcx)
movl $0xffffffff, 0x38(%rcx) # imm = 0xFFFFFFFF
leaq 0x80(%rsp), %rdx
movq %r12, %rsi
callq 0x56da
leaq 0x450(%rsp), %rdi
movq -0xe0(%rdi), %rsi
leaq 0x80(%rsp), %rdx
callq 0x56da
leaq 0x468(%rsp), %rdi
movq -0xf8(%rdi), %rsi
leaq 0x80(%rsp), %rdx
callq 0x56da
leaq 0x480(%rsp), %rdi
movq -0x110(%rdi), %rsi
leaq 0x80(%rsp), %rdx
callq 0x56da
movq 0x438(%rsp), %rax
movq 0x370(%rsp), %rsi
movq %rax, 0x498(%rsp)
movq 0x450(%rsp), %rax
movq %rax, 0x4a8(%rsp)
movq 0x468(%rsp), %rax
movq %rax, 0x4b8(%rsp)
movq 0x480(%rsp), %rax
movq %rax, 0x4c8(%rsp)
leaq 0x80(%rsp), %rdi
leaq 0x20(%rsp), %rdx
callq 0x575c
movq 0x80(%rsp), %rbx
cmpq $0x0, 0x370(%rsp)
je 0x27a1
movq 0xa8(%rsp), %rax
xorl %ecx, %ecx
movq (%rax,%rcx,8), %rdx
movq %rcx, (%rbx,%rdx,8)
incq %rcx
cmpq %rcx, 0x370(%rsp)
ja 0x278c
movq 0x570(%rsp), %rcx
movq 0x568(%rsp), %rax
subq %rax, %rcx
je 0x2946
sarq $0x3, %rcx
movabsq $0x4ec4ec4ec4ec4ec5, %rax # imm = 0x4EC4EC4EC4EC4EC5
xorl %r12d, %r12d
imulq %rax, %rcx
movq %rcx, 0x18(%rsp)
movq 0x210(%rsp), %rax
leaq (%r12,%r12,2), %rbp
movq (%rbx,%r12,8), %r13
movq (%rax,%rbp,8), %r14
movq 0x8(%rax,%rbp,8), %r15
cmpq %r15, %r14
je 0x2833
movq (%r14), %rax
movq %rax, 0x20(%rsp)
cmpq %r13, (%rbx,%rax,8)
jbe 0x282d
movq 0x498(%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 0x20(%rsp), %rdx
callq 0x59b8
addq $0x8, %r14
jmp 0x27ed
movq 0x220(%rsp), %rax
movq (%rax,%rbp,8), %r14
movq 0x8(%rax,%rbp,8), %r15
cmpq %r15, %r14
je 0x288a
movq (%r14), %rax
movq %rax, 0x20(%rsp)
cmpq %r13, (%rbx,%rax,8)
jbe 0x2884
movq 0x4a8(%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 0x20(%rsp), %rdx
callq 0x59b8
addq $0x8, %r14
jmp 0x2844
movq 0x230(%rsp), %rax
movq (%rax,%rbp,8), %r14
movq 0x8(%rax,%rbp,8), %r15
cmpq %r15, %r14
je 0x28e1
movq (%r14), %rax
movq %rax, 0x20(%rsp)
cmpq %r13, (%rbx,%rax,8)
jbe 0x28db
movq 0x4b8(%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 0x20(%rsp), %rdx
callq 0x59b8
addq $0x8, %r14
jmp 0x289b
movq 0x240(%rsp), %rax
movq (%rax,%rbp,8), %r14
movq 0x8(%rax,%rbp,8), %r15
cmpq %r15, %r14
je 0x2938
movq (%r14), %rax
movq %rax, 0x20(%rsp)
cmpq %r13, (%rbx,%rax,8)
jbe 0x2932
movq 0x4c8(%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 0x20(%rsp), %rdx
callq 0x59b8
addq $0x8, %r14
jmp 0x28f2
incq %r12
cmpq 0x18(%rsp), %r12
jne 0x27d4
movq 0x80(%rsp), %rdi
testq %rdi, %rdi
je 0x2963
movq 0x90(%rsp), %rsi
subq %rdi, %rsi
callq 0x2170
movq 0x128(%rsp), %rax
movq 0x130(%rsp), %rcx
movq 0x410(%rsp), %r14
movq 0x18(%rax), %rdx
movq 0x20(%rax), %r15
subq %rdx, %r15
movq %rdx, 0x78(%rsp)
je 0x2c39
movq 0x18(%rcx), %rax
movq 0x20(%rcx), %rcx
sarq $0x3, %r15
movabsq $0x4ec4ec4ec4ec4ec5, %rsi # imm = 0x4EC4EC4EC4EC4EC5
xorl %r8d, %r8d
imulq %rsi, %r15
movq %rcx, %rdx
subq %rax, %rdx
leaq 0x58(%rax), %rdi
sarq $0x3, %rdx
imulq %rsi, %rdx
movq 0x400(%rsp), %rsi
cmpq %rax, %rcx
je 0x2a06
movq 0x78(%rsp), %r11
imulq $0x68, %r8, %r10
xorl %ebx, %ebx
movq 0x28(%r11,%r10), %r9
movq 0x58(%r11,%r10), %r10
movq %rdi, %r11
cmpq %r10, (%r11)
jae 0x29ee
xorl %ebp, %ebp
jmp 0x29f6
cmpq %r9, -0x30(%r11)
setae %bpl
movb %bpl, (%r14,%rbx)
incq %rbx
addq $0x68, %r11
cmpq %rbx, %rdx
jne 0x29e5
incq %r8
addq %rsi, %r14
cmpq %r15, %r8
jne 0x29c8
movq 0x130(%rsp), %rax
movq %r15, 0x68(%rsp)
movq 0x18(%rax), %rcx
movq 0x20(%rax), %rax
movq %rax, %rdx
subq %rcx, %rdx
movq %rax, 0x38(%rsp)
movabsq $0x4ec4ec4ec4ec4ec5, %rax # imm = 0x4EC4EC4EC4EC4EC5
movq %rcx, 0x40(%rsp)
sarq $0x3, %rdx
imulq %rax, %rdx
movq %rdx, 0x48(%rsp)
movq 0x400(%rsp), %rax
movq 0x410(%rsp), %rsi
xorl %ecx, %ecx
movq $0x0, (%rsp)
movq %rax, 0xa0(%rsp)
movq %rsi, 0x60(%rsp)
movq 0x38(%rsp), %rax
movq %rcx, 0x70(%rsp)
cmpq 0x40(%rsp), %rax
je 0x2c09
movq %rcx, %rdi
imulq 0xa0(%rsp), %rdi
movq 0x78(%rsp), %r9
imulq $0x68, %rcx, %rax
xorl %r12d, %r12d
addq 0x60(%rsp), %rdi
leaq (%r9,%rax), %rsi
leaq 0x8(%r9,%rax), %r8
leaq 0x38(%r9,%rax), %rax
movq %rsi, 0x50(%rsp)
movq %r8, 0x18(%rsp)
movq %rax, 0x30(%rsp)
movq %rdi, 0x8(%rsp)
cmpb $0x1, (%rdi,%r12)
jne 0x2bfd
movq 0x50(%rsp), %rax
movq 0x18(%rax), %r15
cmpq 0x18(%rsp), %r15
je 0x2b5b
movq 0x40(%rsp), %rcx
imulq $0x68, %r12, %rax
leaq 0x8(%rcx,%rax), %rbx
movq 0x10(%rbx), %rbp
cmpq %rbx, %rbp
je 0x2be8
movq 0x400(%rsp), %rax
movq 0x410(%rsp), %rcx
movq %rax, 0x10(%rsp)
movq 0x20(%r15), %r14
movq %rcx, %r13
imulq %rax, %r14
movq %rbp, %rax
addq %rcx, %r14
movq 0x20(%rax), %rcx
cmpb $0x0, (%r14,%rcx)
jne 0x2b41
movq %rax, %rdi
callq 0x21a0
cmpq %rbx, %rax
jne 0x2b24
jmp 0x2be8
movq %r15, %rdi
callq 0x21a0
movq %rax, %r15
movq %r13, %rcx
cmpq 0x18(%rsp), %rax
movq 0x10(%rsp), %rax
jne 0x2b13
movq 0x18(%rsp), %rax
movq 0x40(%rax), %r15
cmpq 0x30(%rsp), %r15
je 0x2bdc
movq 0x40(%rsp), %rcx
imulq $0x68, %r12, %rax
leaq 0x38(%rcx,%rax), %rbx
movq 0x10(%rbx), %rbp
cmpq %rbx, %rbp
je 0x2be8
movq 0x400(%rsp), %rcx
movq 0x410(%rsp), %rax
movq %rcx, 0x10(%rsp)
movq 0x20(%r15), %r14
movq %rax, %r13
imulq %rcx, %r14
addq %rax, %r14
movq %rbp, %rax
movq 0x20(%rax), %rcx
cmpb $0x0, (%r14,%rcx)
jne 0x2bc2
movq %rax, %rdi
callq 0x21a0
cmpq %rbx, %rax
jne 0x2ba8
jmp 0x2be8
movq %r15, %rdi
callq 0x21a0
movq 0x10(%rsp), %rcx
movq %rax, %r15
cmpq 0x30(%rsp), %rax
movq %r13, %rax
jne 0x2b97
movq 0x48(%rsp), %rdx
movq 0x8(%rsp), %rdi
jmp 0x2bfd
movq 0x8(%rsp), %rdi
movq 0x48(%rsp), %rdx
movb $0x1, %al
movq %rax, (%rsp)
movb $0x0, (%rdi,%r12)
incq %r12
cmpq %rdx, %r12
jne 0x2ac8
movq 0x70(%rsp), %rcx
movq 0x68(%rsp), %r15
incq %rcx
cmpq %r15, %rcx
jne 0x2a74
testb $0x1, (%rsp)
jne 0x2a4d
movq 0x130(%rsp), %rcx
movq 0x410(%rsp), %r14
leaq 0x128(%rsp), %rax
xorl %r9d, %r9d
movq %r14, 0x540(%rsp)
movq 0x2c0(%rax), %rdx
movq 0x298(%rax), %rdi
movq 0x300(%rax), %rsi
movq 0x258(%rax), %rbp
movq 0x2f0(%rax), %rax
movq %rdx, 0x110(%rsp)
movq 0x18(%rcx), %rdx
movq 0x20(%rcx), %rcx
movq %rax, 0x108(%rsp)
movabsq $0x4ec4ec4ec4ec4ec5, %rax # imm = 0x4EC4EC4EC4EC4EC5
movq %rsi, 0x538(%rsp)
movq %rdi, 0x60(%rsp)
movq %rcx, %r8
subq %rdx, %r8
movq %rcx, 0x528(%rsp)
movq %rdx, 0x530(%rsp)
sarq $0x3, %r8
imulq %rax, %r8
movq %r8, 0x50(%rsp)
movq 0x370(%rsp), %rax
decq %rax
cmpq %rax, %r9
jae 0x3456
movq 0x410(%rsp), %rcx
movq 0x428(%rsp), %rdx
movq 0x3e8(%rsp), %rax
movq %rcx, 0x70(%rsp)
movq 0x498(%rsp), %rcx
movq %rdx, 0x78(%rsp)
movq 0x348(%rsp), %rdx
movq %rax, 0x118(%rsp)
movq %rcx, 0x520(%rsp)
movq 0x4a8(%rsp), %rcx
movq %rdx, 0x4f8(%rsp)
movq 0x358(%rsp), %rdx
movq %rcx, 0x518(%rsp)
movq 0x328(%rsp), %rcx
movq %rdx, 0x4f0(%rsp)
movq 0x338(%rsp), %rdx
movq %rcx, 0x510(%rsp)
movq 0x4b8(%rsp), %rcx
movq %rdx, 0x508(%rsp)
movq 0x4c8(%rsp), %rdx
movq %rcx, 0x4e8(%rsp)
movq 0x418(%rsp), %rcx
movq %rdx, 0x4e0(%rsp)
movq %rcx, 0x120(%rsp)
movq (%rbp), %rdx
movq %rbp, 0x40(%rsp)
movq %r9, 0x8(%rsp)
movq (%rdi,%rdx,8), %rax
cmpq $-0x1, %rax
je 0x2dc3
movq 0x118(%rsp), %rcx
movq %rdx, %r12
movq $-0x1, (%rcx,%rax,8)
movq (%rdi,%rdx,8), %rbp
incq %rbp
jmp 0x2dc8
movq %rdx, %r12
xorl %ebp, %ebp
cmpq %r8, %rbp
je 0x2e24
movq 0x400(%rsp), %rbx
movq 0x3e8(%rsp), %r15
leaq 0x1(%rbp,%rbp,2), %r14
imulq %r12, %rbx
addq 0x70(%rsp), %rbx
cmpb $0x1, (%rbx,%rbp)
jne 0x2e18
cmpq $-0x1, (%r15,%rbp,8)
jne 0x2e18
leaq 0x128(%rsp), %rdi
movq %r12, %rsi
movq %rbp, %rdx
callq 0x4712
movq 0x50(%rsp), %r8
testb %al, %al
jne 0x2eb9
incq %rbp
addq $0x3, %r14
cmpq %rbp, %r8
jne 0x2deb
movq 0x60(%rsp), %rdi
cmpq $-0x1, %r12
je 0x2e37
movq $-0x1, (%rdi,%r12,8)
movq 0x8(%rsp), %r9
movq 0x40(%rsp), %rbp
movq 0x70(%rsp), %r10
movq 0x120(%rsp), %r11
subq $0x1, %r9
jb 0x3569
movslq 0x430(%rsp), %rax
movq 0x78(%rsp), %rdx
addq $-0x8, %rbp
leal -0x1(%rax), %ecx
movl %ecx, 0x430(%rsp)
movslq (%rdx,%rax,4), %rax
movslq 0x420(%rsp), %rcx
cmpl %eax, %ecx
jle 0x2ea0
leal -0x1(%rcx), %edx
movl %edx, 0x420(%rsp)
decl %edx
movslq (%r11,%rcx,4), %rsi
decq %rcx
movb $0x1, (%r10,%rsi)
cmpq %rax, %rcx
jg 0x2e86
movq 0x370(%rsp), %rax
decq %rax
cmpq %rax, %r9
jb 0x2d8f
jmp 0x3456
cmpq $-0x1, %rbp
je 0x2e24
movq 0x60(%rsp), %rax
movq 0x78(%rsp), %rsi
movq %r12, 0x500(%rsp)
movq %rbp, (%rax,%r12,8)
movq 0x118(%rsp), %rax
movq %r12, (%rax,%rbp,8)
movslq 0x430(%rsp), %rcx
movl 0x420(%rsp), %eax
leaq 0x1(%rcx), %rdx
movl %edx, 0x430(%rsp)
movl %eax, 0x4(%rsi,%rcx,4)
movq 0x520(%rsp), %rsi
movl %eax, 0x424(%rsp)
leaq (%r12,%r12,2), %rax
movq (%rsi,%rax,8), %rdx
movq 0x8(%rsi,%rax,8), %rcx
movq %rdx, 0x38(%rsp)
movq %rcx, 0x30(%rsp)
cmpq %rcx, %rdx
je 0x2fba
movq 0x4f8(%rsp), %rdx
movq 0x3e8(%rsp), %rsi
movq 0x38(%rsp), %rdi
movq -0x8(%rdx,%r14,8), %rcx
movq (%rdx,%r14,8), %rdx
cmpq %rdx, %rcx
je 0x2faf
movq 0x400(%rsp), %r8
movq 0x410(%rsp), %r9
movq 0x418(%rsp), %r10
movq %rcx, %r11
imulq (%rdi), %r8
movq (%r11), %rbx
cmpq $-0x1, (%rsi,%rbx,8)
jne 0x2fa6
addq %r8, %rbx
cmpb $0x1, (%r9,%rbx)
jne 0x2fa6
movb $0x0, (%r9,%rbx)
movslq 0x420(%rsp), %r15
leaq 0x1(%r15), %r12
movl %r12d, 0x420(%rsp)
movl %ebx, 0x4(%r10,%r15,4)
addq $0x8, %r11
cmpq %rdx, %r11
jne 0x2f74
addq $0x8, %rdi
cmpq 0x30(%rsp), %rdi
jne 0x2f50
movq 0x518(%rsp), %rcx
movq (%rcx,%rax,8), %rdx
movq 0x8(%rcx,%rax,8), %rcx
movq %rdx, 0x68(%rsp)
movq %rcx, 0x10(%rsp)
cmpq %rcx, %rdx
je 0x3066
movq 0x4f0(%rsp), %rdx
movq 0x3e8(%rsp), %rsi
movq 0x68(%rsp), %rdi
movq -0x8(%rdx,%r14,8), %rcx
movq (%rdx,%r14,8), %rdx
cmpq %rdx, %rcx
je 0x305b
movq 0x400(%rsp), %r8
movq 0x410(%rsp), %r9
movq 0x418(%rsp), %r10
movq %rcx, %r11
imulq (%rdi), %r8
movq (%r11), %rbx
cmpq $-0x1, (%rsi,%rbx,8)
jne 0x3052
addq %r8, %rbx
cmpb $0x1, (%r9,%rbx)
jne 0x3052
movb $0x0, (%r9,%rbx)
movslq 0x420(%rsp), %r15
leaq 0x1(%r15), %r12
movl %r12d, 0x420(%rsp)
movl %ebx, 0x4(%r10,%r15,4)
addq $0x8, %r11
cmpq %rdx, %r11
jne 0x3020
addq $0x8, %rdi
cmpq 0x10(%rsp), %rdi
jne 0x2ffc
movq 0x510(%rsp), %rcx
movq -0x8(%rcx,%r14,8), %rdx
movq (%rcx,%r14,8), %rbx
movq %rdx, 0xc0(%rsp)
cmpq %rbx, %rdx
je 0x3102
movq 0x4e8(%rsp), %rdx
movq 0x400(%rsp), %rsi
movq 0x410(%rsp), %rdi
movq 0xc0(%rsp), %r8
movq (%rdx,%rax,8), %rcx
movq 0x8(%rdx,%rax,8), %rdx
cmpq %rdx, %rcx
je 0x30f9
movq (%r8), %r9
movq 0x418(%rsp), %r10
movq %rcx, %r11
movq (%r11), %r15
imulq %rsi, %r15
addq %r9, %r15
cmpb $0x1, (%rdi,%r15)
jne 0x30f0
movb $0x0, (%rdi,%r15)
movslq 0x420(%rsp), %r12
leaq 0x1(%r12), %r13
movl %r13d, 0x420(%rsp)
movl %r15d, 0x4(%r10,%r12,4)
addq $0x8, %r11
cmpq %rdx, %r11
jne 0x30c0
addq $0x8, %r8
cmpq %rbx, %r8
jne 0x30ad
movq 0x508(%rsp), %rcx
movq -0x8(%rcx,%r14,8), %rdx
movq (%rcx,%r14,8), %rcx
movq %rdx, 0xc8(%rsp)
movq %rcx, 0x18(%rsp)
cmpq %rcx, %rdx
je 0x31a4
movq 0x4e0(%rsp), %rdx
movq 0x410(%rsp), %rsi
movq 0xc8(%rsp), %rdi
movq (%rdx,%rax,8), %rcx
movq 0x8(%rdx,%rax,8), %rax
movq 0x400(%rsp), %rdx
cmpq %rax, %rcx
je 0x3199
movq (%rdi), %r8
movq 0x418(%rsp), %r9
movq %rcx, %r10
movq (%r10), %r11
imulq %rdx, %r11
addq %r8, %r11
cmpb $0x1, (%rsi,%r11)
jne 0x3190
movb $0x0, (%rsi,%r11)
movslq 0x420(%rsp), %r14
leaq 0x1(%r14), %r15
movl %r15d, 0x420(%rsp)
movl %r11d, 0x4(%r9,%r14,4)
addq $0x8, %r10
cmpq %rax, %r10
jne 0x3161
addq $0x8, %rdi
cmpq 0x18(%rsp), %rdi
jne 0x314e
movq 0x370(%rsp), %rax
shrq %rax
cmpq %rax, 0x8(%rsp)
ja 0x33ac
movq 0x30(%rsp), %rax
cmpq %rax, 0x38(%rsp)
je 0x32b2
movq 0x3e8(%rsp), %r15
cmpq %rbx, 0xc0(%rsp)
je 0x3299
movq 0x38(%rsp), %rax
movq 0x418(%rsp), %rdx
movq 0x410(%rsp), %rcx
movq 0xc0(%rsp), %r13
movq (%rax), %rax
movq %rdx, 0x548(%rsp)
movq 0x400(%rsp), %rdx
movq %rcx, (%rsp)
imulq %rax, %rdx
movq %rax, 0x48(%rsp)
leaq (%rcx,%rdx), %r12
movq %rdx, 0xa0(%rsp)
movq (%r13), %r14
cmpq $-0x1, (%r15,%r14,8)
jne 0x3290
cmpb $0x1, (%r12,%r14)
jne 0x3290
movq 0x48(%rsp), %rsi
leaq 0x128(%rsp), %rdi
movq %r14, %rdx
callq 0x4600
testb %al, %al
jne 0x3290
addq 0xa0(%rsp), %r14
movq (%rsp), %rax
cmpb $0x1, (%rax,%r14)
jne 0x3290
movq (%rsp), %rax
movq 0x548(%rsp), %rdx
movb $0x0, (%rax,%r14)
movslq 0x420(%rsp), %rax
leaq 0x1(%rax), %rcx
movl %ecx, 0x420(%rsp)
movl %r14d, 0x4(%rdx,%rax,4)
addq $0x8, %r13
cmpq %rbx, %r13
jne 0x3229
movq 0x38(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x38(%rsp)
cmpq 0x30(%rsp), %rax
jne 0x31d2
movq 0x10(%rsp), %rax
cmpq %rax, 0x68(%rsp)
je 0x33ac
movq 0x3e8(%rsp), %rbx
movq 0x18(%rsp), %rax
cmpq %rax, 0xc8(%rsp)
je 0x3393
movq 0x68(%rsp), %rax
movq 0x418(%rsp), %rdx
movq 0x410(%rsp), %rcx
movq 0xc8(%rsp), %r13
movq (%rax), %r12
movq %rdx, 0x30(%rsp)
movq 0x400(%rsp), %rdx
movq 0x18(%rsp), %rax
movq %rcx, 0x48(%rsp)
imulq %r12, %rdx
leaq (%rcx,%rdx), %r15
movq %rdx, (%rsp)
movq (%r13), %r14
cmpq $-0x1, (%rbx,%r14,8)
jne 0x338a
cmpb $0x1, (%r15,%r14)
jne 0x338a
leaq 0x128(%rsp), %rdi
movq %r12, %rsi
movq %r14, %rdx
callq 0x4600
testb %al, %al
movq 0x18(%rsp), %rax
jne 0x338a
addq (%rsp), %r14
movq 0x48(%rsp), %rcx
cmpb $0x1, (%rcx,%r14)
jne 0x338a
movq 0x48(%rsp), %rax
movq 0x30(%rsp), %rdx
movb $0x0, (%rax,%r14)
movslq 0x420(%rsp), %rax
leaq 0x1(%rax), %rcx
movl %ecx, 0x420(%rsp)
movl %r14d, 0x4(%rdx,%rax,4)
movq 0x18(%rsp), %rax
addq $0x8, %r13
cmpq %rax, %r13
jne 0x3320
movq 0x68(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x68(%rsp)
cmpq 0x10(%rsp), %rax
jne 0x32ca
movq 0x500(%rsp), %rsi
leaq 0x128(%rsp), %rdi
movq %rbp, %rdx
callq 0x4600
testb %al, %al
je 0x33e8
movq 0x8(%rsp), %r9
movq 0x40(%rsp), %rbp
movq 0x60(%rsp), %rdi
movq 0x50(%rsp), %r8
incq %r9
addq $0x8, %rbp
jmp 0x2ea0
movslq 0x430(%rsp), %rax
movq 0x78(%rsp), %rdx
movq 0x40(%rsp), %rbp
movq 0x60(%rsp), %rdi
movq 0x50(%rsp), %r8
movq 0x8(%rsp), %r9
movq 0x70(%rsp), %r10
movq 0x120(%rsp), %r11
leal -0x1(%rax), %ecx
movl %ecx, 0x430(%rsp)
movslq (%rdx,%rax,4), %rax
movslq 0x420(%rsp), %rcx
cmpl %eax, %ecx
jle 0x2ea0
leal -0x1(%rcx), %edx
movl %edx, 0x420(%rsp)
decl %edx
movslq (%r11,%rcx,4), %rsi
decq %rcx
movb $0x1, (%r10,%rsi)
cmpq %rax, %rcx
jg 0x3437
jmp 0x2ea0
movq 0x110(%rsp), %rcx
movq 0x108(%rsp), %rdi
movq 0x528(%rsp), %rax
movq %r9, 0x8(%rsp)
cmpq 0x530(%rsp), %rax
je 0x3504
movq (%rbp), %r15
movq 0x410(%rsp), %rbx
movq 0x3a0(%rsp), %r14
movq 0x3c0(%rsp), %r13
xorl %r12d, %r12d
cmpq $-0x1, (%rcx,%r12,8)
jne 0x34fc
movq 0x400(%rsp), %rax
imulq %r15, %rax
addq %rbx, %rax
cmpb $0x1, (%r12,%rax)
jne 0x34fc
leaq 0x128(%rsp), %rdi
movq %r15, %rsi
movq %r12, %rdx
callq 0x4712
movq 0x50(%rsp), %r8
movq 0x108(%rsp), %rdi
movq 0x110(%rsp), %rcx
testb %al, %al
je 0x34fc
incl (%r14)
movq $-0x1, %rax
movq %rax, (%r13,%r15,8)
movq %rax, (%rcx,%r12,8)
incq %r12
cmpq %r12, %r8
jne 0x34a0
movslq 0x430(%rsp), %rax
movq 0x538(%rsp), %rdx
movq 0x540(%rsp), %r14
leal -0x1(%rax), %ecx
movl %ecx, 0x430(%rsp)
movslq (%rdx,%rax,4), %rax
movslq 0x420(%rsp), %rcx
cmpl %eax, %ecx
jle 0x3553
leal -0x1(%rcx), %edx
movl %edx, 0x420(%rsp)
decl %edx
movslq (%rdi,%rcx,4), %rsi
decq %rcx
movb $0x1, (%r14,%rsi)
cmpq %rax, %rcx
jg 0x3539
movq 0x8(%rsp), %r9
movq 0x60(%rsp), %rdi
addq $-0x8, %rbp
decq %r9
jmp 0x2cc1
leaq 0x480(%rsp), %rdi
callq 0x57ec
leaq 0x468(%rsp), %rdi
callq 0x57ec
leaq 0x450(%rsp), %rdi
callq 0x57ec
leaq 0x438(%rsp), %rdi
callq 0x57ec
leaq 0x3f8(%rsp), %rdi
callq 0x45ce
movq 0x3d0(%rsp), %rdi
testq %rdi, %rdi
je 0x35c7
movq 0x3e0(%rsp), %rsi
subq %rdi, %rsi
callq 0x2170
movq 0x3a8(%rsp), %rdi
testq %rdi, %rdi
je 0x35e4
movq 0x3b8(%rsp), %rsi
subq %rdi, %rsi
callq 0x2170
movq 0x380(%rsp), %rdi
testq %rdi, %rdi
je 0x3601
movq 0x390(%rsp), %rsi
subq %rdi, %rsi
callq 0x2170
leaq 0x310(%rsp), %rdi
callq 0x57ec
leaq 0x2f8(%rsp), %rdi
callq 0x57ec
leaq 0x2e0(%rsp), %rdi
callq 0x57ec
leaq 0x2c8(%rsp), %r14
movq %r14, %rdi
callq 0x57ec
movq -0x38(%r14), %rdi
testq %rdi, %rdi
je 0x3651
movq 0x2a0(%rsp), %rsi
subq %rdi, %rsi
callq 0x2170
movq 0x278(%rsp), %rdi
testq %rdi, %rdi
je 0x366e
movq 0x288(%rsp), %rsi
subq %rdi, %rsi
callq 0x2170
movq 0x260(%rsp), %rdi
testq %rdi, %rdi
je 0x368b
movq 0x270(%rsp), %rsi
subq %rdi, %rsi
callq 0x2170
leaq 0x1f8(%rsp), %rdi
callq 0x57ec
leaq 0x1e0(%rsp), %rdi
callq 0x57ec
leaq 0x1c8(%rsp), %rdi
callq 0x57ec
leaq 0x1b0(%rsp), %r14
movq %r14, %rdi
callq 0x57ec
movq -0x38(%r14), %rdi
testq %rdi, %rdi
je 0x36db
movq 0x188(%rsp), %rsi
subq %rdi, %rsi
callq 0x2170
movq 0x160(%rsp), %rdi
leaq 0xd0(%rsp), %r14
testq %rdi, %rdi
je 0x3700
movq 0x170(%rsp), %rsi
subq %rdi, %rsi
callq 0x2170
movq 0x148(%rsp), %rdi
testq %rdi, %rdi
je 0x371d
movq 0x158(%rsp), %rsi
subq %rdi, %rsi
callq 0x2170
movq 0xa8(%rsp), %rdi
testq %rdi, %rdi
je 0x373a
movq 0xb8(%rsp), %rsi
subq %rdi, %rsi
callq 0x2170
callq 0x21d0
subq 0x4d8(%rsp), %rax
movq 0x788a(%rip), %rdi      # 0xafd8
movabsq $0x431bde82d7b634db, %rbx # imm = 0x431BDE82D7B634DB
imulq %rbx
movq (%rdi), %rax
movq %rdx, %r15
movq -0x18(%rax), %rax
movq $0x8, 0x10(%rdi,%rax)
leaq 0x4936(%rip), %rsi      # 0x80ab
movl $0x8, %edx
callq 0x2190
movl 0x5c(%rsp), %esi
movq 0x784e(%rip), %rdi      # 0xafd8
callq 0x2210
leaq 0x491e(%rip), %rsi      # 0x80b4
movl $0x2, %edx
movq %rax, %rdi
movq %rax, %r12
callq 0x2190
leaq 0x490a(%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
leaq 0x48e5(%rip), %rsi      # 0x80bf
movl $0x3, %edx
movq %rax, %rdi
movq %rax, %r15
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, 0x5c(%rsp)
callq 0x21d0
movq %rax, 0x68(%rsp)
leaq 0x550(%rsp), %r15
leaq 0xa8(%rsp), %rdi
movq %r15, %rsi
callq 0x62bb
movq 0x570(%rsp), %rax
movq 0xa8(%rsp), %rdi
movq 0xb0(%rsp), %rsi
movabsq $0x4ec4ec4ec4ec4ec5, %rdx # imm = 0x4EC4EC4EC4EC4EC5
subq 0x568(%rsp), %rax
subq %rdi, %rsi
movq %rax, %rcx
sarq $0x3, %rcx
sarq $0x3, %rsi
imulq %rdx, %rcx
cmpq %rsi, %rcx
jne 0x42ce
movq 0xf0(%rsp), %rcx
subq 0xe8(%rsp), %rcx
cmpq %rcx, %rax
ja 0x4147
movq 0x560(%rsp), %rax
cmpq 0xe0(%rsp), %rax
ja 0x4147
leaq 0x140(%rsp), %r12
movq %r15, -0x18(%r12)
movq %r14, -0x10(%r12)
movq %r12, %rdi
movq %r15, %rsi
movq %r14, %rdx
callq 0x6330
leaq 0x1f0(%rsp), %r13
leaq 0xd0(%rsp), %rsi
leaq 0x550(%rsp), %rdx
movq %r13, %rdi
callq 0x6330
leaq 0x80(%rsp), %rax
vxorps %xmm0, %xmm0, %xmm0
leaq 0x20(%rsp), %rbp
movq $0x0, 0x18(%rsp)
vmovaps %xmm0, (%rax)
movq $0x0, 0x10(%rax)
movq 0x128(%rsp), %rax
movq 0x1e8(%rsp), %rsi
movq 0x20(%rax), %rcx
subq 0x18(%rax), %rcx
movabsq $0x4ec4ec4ec4ec4ec5, %rax # imm = 0x4EC4EC4EC4EC4EC5
sarq $0x3, %rcx
imulq %rax, %rcx
cmpq %rsi, %rcx
jne 0x394d
incl 0x5c(%rsp)
jmp 0x3a67
movq 0x1d0(%rsp), %rdi
movq 0x280(%rsp), %r8
movq 0x1d8(%rsp), %rdx
movq 0x288(%rsp), %r9
cmpq %r8, %rdi
setbe %al
cmpq %r9, %rdx
setbe %cl
andb %al, %cl
cmpb $0x1, %cl
jne 0x3a67
movq 0x1e0(%rsp), %r10
movq 0x290(%rsp), %rcx
cmpq %rcx, %r10
ja 0x3a67
movq 0xa8(%rsp), %r15
movq 0xb0(%rsp), %rax
cmpq %rax, %r15
je 0x3a3c
movq 0x298(%rsp), %r11
cmpq %r10, %rsi
setae %r10b
cmpq %rcx, %r11
setae %cl
cmpq %rdx, %rsi
setb %bl
cmpq %r9, %r11
movq 0x1c0(%rsp), %r9
setb %dl
andb %bl, %dl
cmpq %rdi, %rsi
setb %dil
cmpq %r8, %r11
movq 0x1b0(%rsp), %r8
setb %sil
orb %r10b, %cl
andb %dil, %sil
movq 0x170(%rsp), %rdi
movq (%r15), %r10
testb %cl, %cl
je 0x3a1e
testb %dl, %dl
jne 0x3a25
testb %sil, %sil
je 0x3a2c
cmpq $0x0, (%r8,%r10,8)
jne 0x3a2c
jmp 0x3a33
cmpq $0x0, (%r8,%r10,8)
je 0x3a33
cmpq $0x0, (%r9,%r10,8)
je 0x3a33
cmpq $-0x1, (%rdi,%r10,8)
je 0x3a3c
addq $0x8, %r15
cmpq %rax, %r15
jne 0x3a05
movq 0xf0(%rsp), %rcx
movabsq $0x4ec4ec4ec4ec4ec5, %rax # imm = 0x4EC4EC4EC4EC4EC5
xorl %ebx, %ebx
subq 0xe8(%rsp), %rcx
sarq $0x3, %rcx
imulq %rax, %rcx
movq %rcx, 0x18(%rsp)
jmp 0x3ac7
movq 0x80(%rsp), %rdi
movq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0x4072
movq -0x10(%rax), %r15
leaq -0x10(%rax), %rcx
movq -0x8(%rax), %rbx
movq %rcx, 0x88(%rsp)
movq 0x170(%rsp), %rcx
movq (%r15), %rax
movq (%rcx,%rax,8), %rax
movq %rax, 0x20(%rsp)
movq %r12, %rdi
movq %r15, %rsi
movq %rbp, %rdx
callq 0x6722
movq %r13, %rdi
movq %rbp, %rsi
movq %r15, %rdx
callq 0x6722
incq %rbx
cmpq 0x18(%rsp), %rbx
jne 0x3ad5
movq %rbx, 0x18(%rsp)
jmp 0x3a67
movq 0x1e8(%rsp), %rax
cmpq 0x1e0(%rsp), %rax
jae 0x3b0a
movq 0x298(%rsp), %rcx
cmpq 0x290(%rsp), %rcx
jae 0x3b0a
movq 0x260(%rsp), %rax
cmpq $0x0, (%rax,%rbx,8)
jne 0x3b26
jmp 0x3ac4
cmpq 0x1d8(%rsp), %rax
jae 0x3b30
movq 0x298(%rsp), %rcx
cmpq 0x288(%rsp), %rcx
jae 0x3b30
movq 0x270(%rsp), %rax
jmp 0x3b54
cmpq 0x1d0(%rsp), %rax
jae 0x3b5f
movq 0x298(%rsp), %rax
cmpq 0x280(%rsp), %rax
jae 0x3b5f
movq 0x260(%rsp), %rax
cmpq $0x0, (%rax,%rbx,8)
je 0x3ac4
movq 0x220(%rsp), %rax
cmpq $-0x1, (%rax,%rbx,8)
jne 0x3ac4
movq 0x128(%rsp), %rcx
movq (%r15), %r12
movq %rax, 0x48(%rsp)
movq 0x18(%rcx), %rsi
imulq $0x68, %r12, %rax
movl $0x0, %ecx
movq %rcx, 0x30(%rsp)
movl $0x0, %ecx
movq %rcx, 0x50(%rsp)
movl $0x0, %ecx
movq %rax, 0x70(%rsp)
movq %rcx, 0x40(%rsp)
leaq 0x38(%rsi,%rax), %rbp
movq %rsi, %r14
movq 0x10(%rbp), %rax
cmpq %rbp, %rax
je 0x3cb8
movq 0x130(%rsp), %rcx
movq 0x170(%rsp), %r13
movq 0x1b0(%rsp), %rsi
movq 0x1c0(%rsp), %rdx
movq $0x0, 0x30(%rsp)
movq $0x0, 0x50(%rsp)
movq $0x0, 0x40(%rsp)
movq %rcx, 0x8(%rsp)
movq %rsi, (%rsp)
movq %rdx, 0x10(%rsp)
movq 0x20(%rax), %rcx
movq (%r13,%rcx,8), %rdx
cmpq %r12, %rcx
je 0x3c44
cmpq $-0x1, %rdx
jne 0x3c44
movq 0x10(%rsp), %rdx
movq (%rsp), %rsi
movq (%rdx,%rcx,8), %rdx
cmpq $0x1, %rdx
sbbq $-0x1, 0x50(%rsp)
cmpq $0x0, (%rsi,%rcx,8)
je 0x3c9a
incq 0x40(%rsp)
jmp 0x3ca4
movq 0x8(%rsp), %rsi
cmpq %r12, %rcx
cmoveq %rbx, %rdx
imulq $0x68, %rdx, %rdx
movq 0x18(%rsi), %rsi
movq 0x10(%rsi,%rdx), %rcx
testq %rcx, %rcx
je 0x400f
leaq 0x8(%rsi,%rdx), %rsi
movq %rsi, %rdx
xorl %edi, %edi
cmpq %rbx, 0x20(%rcx)
setb %dil
cmovaeq %rcx, %rdx
movq 0x10(%rcx,%rdi,8), %rcx
testq %rcx, %rcx
jne 0x3c6e
cmpq %rsi, %rdx
je 0x400f
cmpq %rbx, 0x20(%rdx)
jbe 0x3ca4
jmp 0x400f
cmpq $0x1, %rdx
adcq $0x0, 0x30(%rsp)
movq %rax, %rdi
callq 0x21a0
movq %r14, %rsi
cmpq %rbp, %rax
jne 0x3c0b
movq 0x70(%rsp), %rcx
leaq (%rsi,%rcx), %rax
leaq 0x8(%rsi,%rcx), %rcx
movq %rax, 0xa0(%rsp)
movq 0x10(%rcx), %rax
movq %rcx, 0x8(%rsp)
cmpq %rcx, %rax
je 0x3db6
movq 0x1b0(%rsp), %rcx
movq 0x1c0(%rsp), %rdx
movq 0x130(%rsp), %rbp
movq 0x170(%rsp), %r13
movq %rcx, (%rsp)
movq %rdx, 0x10(%rsp)
movq 0x20(%rax), %rdx
movq (%r13,%rdx,8), %rcx
cmpq %r12, %rdx
je 0x3d42
cmpq $-0x1, %rcx
jne 0x3d42
movq 0x10(%rsp), %rcx
movq (%rsp), %rsi
movq (%rcx,%rdx,8), %rcx
cmpq $0x1, %rcx
sbbq $-0x1, 0x50(%rsp)
cmpq $0x0, (%rsi,%rdx,8)
je 0x3d94
incq 0x40(%rsp)
jmp 0x3d9e
movq 0x18(%rbp), %rsi
cmpq %r12, %rdx
cmoveq %rbx, %rcx
imulq $0x68, %rbx, %rdi
movq 0x10(%rsi,%rdi), %rdx
testq %rdx, %rdx
je 0x400f
leaq 0x8(%rsi,%rdi), %rdi
movq %rdi, %rsi
xorl %r8d, %r8d
cmpq %rcx, 0x20(%rdx)
setb %r8b
cmovaeq %rdx, %rsi
movq 0x10(%rdx,%r8,8), %rdx
testq %rdx, %rdx
jne 0x3d67
cmpq %rdi, %rsi
je 0x400f
cmpq %rcx, 0x20(%rsi)
jbe 0x3d9e
jmp 0x400f
cmpq $0x1, %rcx
adcq $0x0, 0x30(%rsp)
movq %rax, %rdi
callq 0x21a0
cmpq 0x8(%rsp), %rax
jne 0x3d09
movq %r14, %rsi
jmp 0x3dbe
movq 0x130(%rsp), %rbp
movq 0x18(%rbp), %rax
imulq $0x68, %rbx, %rcx
movl $0x0, %ebp
movq %rcx, 0x78(%rsp)
leaq 0x38(%rax,%rcx), %r13
movq %rax, 0x60(%rsp)
movl $0x0, %ecx
movq %rcx, 0x38(%rsp)
movl $0x0, %ecx
movq 0x10(%r13), %rax
movq %rcx, (%rsp)
cmpq %r13, %rax
je 0x3ecd
movq 0x260(%rsp), %rcx
movq 0x270(%rsp), %rdx
xorl %ebp, %ebp
movq $0x0, 0x38(%rsp)
movq $0x0, (%rsp)
movq %rcx, 0x10(%rsp)
movq %rdx, 0x70(%rsp)
movq 0x20(%rax), %rcx
movq 0x48(%rsp), %rdx
movq (%rdx,%rcx,8), %rdx
cmpq %rbx, %rcx
je 0x3e62
cmpq $-0x1, %rdx
jne 0x3e62
movq 0x70(%rsp), %rdx
movq 0x10(%rsp), %rsi
movq (%rdx,%rcx,8), %rdx
cmpq $0x1, %rdx
sbbq $-0x1, %rbp
cmpq $0x0, (%rsi,%rcx,8)
je 0x3eaf
incq (%rsp)
jmp 0x3eb9
cmpq %rbx, %rcx
cmoveq %r12, %rdx
imulq $0x68, %rdx, %rdx
movq 0x10(%rsi,%rdx), %rcx
testq %rcx, %rcx
je 0x400f
leaq 0x8(%rsi,%rdx), %rsi
movq %rsi, %rdx
xorl %edi, %edi
cmpq %r12, 0x20(%rcx)
setb %dil
cmovaeq %rcx, %rdx
movq 0x10(%rcx,%rdi,8), %rcx
testq %rcx, %rcx
jne 0x3e83
cmpq %rsi, %rdx
je 0x400f
cmpq %r12, 0x20(%rdx)
jbe 0x3eb9
jmp 0x400f
cmpq $0x1, %rdx
adcq $0x0, 0x38(%rsp)
movq %rax, %rdi
callq 0x21a0
movq %r14, %rsi
cmpq %r13, %rax
jne 0x3e27
movq 0x60(%rsp), %rax
movq 0x78(%rsp), %rcx
leaq 0x8(%rax,%rcx), %r14
movq 0x10(%r14), %rax
cmpq %r14, %rax
je 0x3f9f
movq 0x260(%rsp), %rcx
movq 0x270(%rsp), %r13
movq %rcx, 0x10(%rsp)
movq 0x20(%rax), %rdx
movq 0x48(%rsp), %rcx
movq (%rcx,%rdx,8), %rcx
cmpq %rbx, %rdx
je 0x3f35
cmpq $-0x1, %rcx
jne 0x3f35
movq (%r13,%rdx,8), %rcx
movq 0x10(%rsp), %rsi
cmpq $0x1, %rcx
sbbq $-0x1, %rbp
cmpq $0x0, (%rsi,%rdx,8)
je 0x3f84
incq (%rsp)
jmp 0x3f8e
movq 0xa0(%rsp), %rsi
cmpq %rbx, %rdx
cmoveq %r12, %rcx
movq 0x10(%rsi), %rdx
testq %rdx, %rdx
je 0x400f
movq 0x8(%rsp), %rsi
xorl %edi, %edi
cmpq %rcx, 0x20(%rdx)
setb %dil
cmovaeq %rdx, %rsi
movq 0x10(%rdx,%rdi,8), %rdx
testq %rdx, %rdx
jne 0x3f56
cmpq 0x8(%rsp), %rsi
je 0x400f
cmpq %rcx, 0x20(%rsi)
jbe 0x3f8e
jmp 0x400f
cmpq $0x1, %rcx
adcq $0x0, 0x38(%rsp)
movq %rax, %rdi
callq 0x21a0
cmpq %r14, %rax
jne 0x3efe
movq (%rsp), %rax
leaq 0xd0(%rsp), %r14
cmpq %rax, 0x40(%rsp)
ja 0x4017
cmpq %rbp, 0x50(%rsp)
ja 0x4017
movq 0x38(%rsp), %rax
leaq 0x140(%rsp), %r12
leaq 0x1f0(%rsp), %r13
leaq 0x20(%rsp), %rbp
cmpq %rax, 0x30(%rsp)
ja 0x3ac4
movq 0x88(%rsp), %rsi
movq %r15, 0x20(%rsp)
movq %rbx, 0x28(%rsp)
cmpq 0x90(%rsp), %rsi
je 0x4031
vmovups 0x20(%rsp), %xmm0
vmovups %xmm0, (%rsi)
addq $0x10, 0x88(%rsp)
jmp 0x4041
leaq 0xd0(%rsp), %r14
leaq 0x140(%rsp), %r12
leaq 0x1f0(%rsp), %r13
leaq 0x20(%rsp), %rbp
jmp 0x3ac4
leaq 0x80(%rsp), %rdi
movq %rbp, %rdx
callq 0x649a
movq %rbx, 0x588(%rsp)
leaq 0x588(%rsp), %rbx
movq %r12, %rdi
movq %r15, %rsi
movq %rbx, %rdx
callq 0x65e0
movq %r13, %rdi
movq %rbx, %rsi
movq %r15, %rdx
callq 0x65e0
jmp 0x3915
testq %rdi, %rdi
je 0x4087
movq 0x90(%rsp), %rsi
subq %rdi, %rsi
callq 0x2170
movq 0x248(%rsp), %rdi
movabsq $0x431bde82d7b634db, %rbx # imm = 0x431BDE82D7B634DB
testq %rdi, %rdi
je 0x40ae
movq 0x258(%rsp), %rsi
subq %rdi, %rsi
callq 0x2170
movq 0x230(%rsp), %rdi
testq %rdi, %rdi
je 0x40cb
movq 0x240(%rsp), %rsi
subq %rdi, %rsi
callq 0x2170
movq 0x208(%rsp), %rdi
testq %rdi, %rdi
je 0x40e8
movq 0x218(%rsp), %rsi
subq %rdi, %rsi
callq 0x2170
movq 0x198(%rsp), %rdi
testq %rdi, %rdi
je 0x4105
movq 0x1a8(%rsp), %rsi
subq %rdi, %rsi
callq 0x2170
movq 0x180(%rsp), %rdi
testq %rdi, %rdi
je 0x4122
movq 0x190(%rsp), %rsi
subq %rdi, %rsi
callq 0x2170
movq 0x158(%rsp), %rdi
testq %rdi, %rdi
je 0x413f
movq 0x168(%rsp), %rsi
subq %rdi, %rsi
callq 0x2170
movq 0xa8(%rsp), %rdi
testq %rdi, %rdi
je 0x415c
movq 0xb8(%rsp), %rsi
subq %rdi, %rsi
callq 0x2170
callq 0x21d0
subq 0x68(%rsp), %rax
movq 0x6e6b(%rip), %rdi      # 0xafd8
imulq %rbx
movq (%rdi), %rax
movq %rdx, %r15
movq -0x18(%rax), %rax
movq $0x8, 0x10(%rdi,%rax)
leaq 0x3f39(%rip), %rsi      # 0x80c3
movl $0x5, %edx
callq 0x2190
movl 0x5c(%rsp), %esi
movq 0x6e39(%rip), %rdi      # 0xafd8
callq 0x2210
leaq 0x3f09(%rip), %rsi      # 0x80b4
movl $0x2, %edx
movq %rax, %rdi
movq %rax, %r12
callq 0x2190
leaq 0x3ef5(%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
leaq 0x3ed0(%rip), %rsi      # 0x80bf
movl $0x3, %edx
movq %rax, %rdi
movq %rax, %r15
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 0x100(%rsp), %rdi
movl $0x1, %esi
callq 0x2170
leaq 0xe8(%rsp), %rdi
callq 0x4a50
movq 0xd0(%rsp), %rdi
cmpq %r14, %rdi
je 0x4267
movq (%rdi), %rbx
movl $0x28, %esi
callq 0x2170
movq %rbx, %rdi
cmpq %r14, %rbx
jne 0x4252
xorl %ebp, %ebp
leaq 0x568(%rsp), %r14
movl $0x1, %esi
movq 0x18(%r14), %rdi
callq 0x2170
movq %r14, %rdi
callq 0x4a50
movq -0x18(%r14), %rdi
leaq 0x550(%rsp), %r14
cmpq %r14, %rdi
je 0x42ad
movq (%rdi), %rbx
movl $0x28, %esi
callq 0x2170
movq %rbx, %rdi
cmpq %r14, %rbx
jne 0x4298
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 0x3e69(%rip), %rdi      # 0x813e
leaq 0x3e99(%rip), %rsi      # 0x8175
leaq 0x3ec1(%rip), %rcx      # 0x81a4
movl $0x3d8, %edx            # imm = 0x3D8
callq 0x2100
jmp 0x4372
jmp 0x4372
movq %r12, %rdi
movq %rax, %rbx
callq 0x6454
jmp 0x4581
jmp 0x434e
movq %rax, %rbx
jmp 0x43d2
movq %rax, %rbx
jmp 0x43df
movq %rax, %rbx
jmp 0x43ec
movq %rax, %rbx
jmp 0x43f9
movq %rax, %rbx
jmp 0x4406
movq %rax, %rbx
jmp 0x4433
movq %rax, %rbx
jmp 0x4450
movq %rax, %rbx
jmp 0x446d
movq %rax, %rbx
jmp 0x44f7
movq %rax, %rbx
jmp 0x4581
jmp 0x43a4
jmp 0x436a
movq %rax, %rbx
jmp 0x45b8
movq %rax, %rbx
jmp 0x441b
movq %rax, %rbx
jmp 0x45ab
movq 0x80(%rsp), %rdi
movq %rax, %rbx
testq %rdi, %rdi
je 0x4392
movq 0x90(%rsp), %rsi
subq %rdi, %rsi
callq 0x2170
leaq 0x128(%rsp), %rdi
callq 0x484e
jmp 0x4581
movq %rax, %rbx
jmp 0x459e
jmp 0x43b2
jmp 0x43b2
jmp 0x43b2
movq 0x80(%rsp), %rdi
movq %rax, %rbx
testq %rdi, %rdi
je 0x43d2
movq 0x90(%rsp), %rsi
subq %rdi, %rsi
callq 0x2170
leaq 0x480(%rsp), %rdi
callq 0x57ec
leaq 0x468(%rsp), %rdi
callq 0x57ec
leaq 0x450(%rsp), %rdi
callq 0x57ec
leaq 0x438(%rsp), %rdi
callq 0x57ec
leaq 0x3f8(%rsp), %rdi
callq 0x45ce
movq 0x3d0(%rsp), %r15
testq %r15, %r15
je 0x4433
movq 0x3e0(%rsp), %rsi
movq %r15, %rdi
subq %r15, %rsi
callq 0x2170
movq 0x3a8(%rsp), %rdi
testq %rdi, %rdi
je 0x4450
movq 0x3b8(%rsp), %rsi
subq %rdi, %rsi
callq 0x2170
movq 0x380(%rsp), %rdi
testq %rdi, %rdi
je 0x446d
movq 0x390(%rsp), %rsi
subq %rdi, %rsi
callq 0x2170
leaq 0x310(%rsp), %rdi
callq 0x57ec
leaq 0x2f8(%rsp), %rdi
callq 0x57ec
leaq 0x2e0(%rsp), %rdi
callq 0x57ec
leaq 0x2c8(%rsp), %r14
movq %r14, %rdi
callq 0x57ec
movq -0x38(%r14), %rdi
testq %rdi, %rdi
je 0x44bd
movq 0x2a0(%rsp), %rsi
subq %rdi, %rsi
callq 0x2170
movq 0x278(%rsp), %rdi
testq %rdi, %rdi
je 0x44da
movq 0x288(%rsp), %rsi
subq %rdi, %rsi
callq 0x2170
movq 0x260(%rsp), %rdi
testq %rdi, %rdi
je 0x44f7
movq 0x270(%rsp), %rsi
subq %rdi, %rsi
callq 0x2170
leaq 0x1f8(%rsp), %rdi
callq 0x57ec
leaq 0x1e0(%rsp), %rdi
callq 0x57ec
leaq 0x1c8(%rsp), %rdi
callq 0x57ec
leaq 0x1b0(%rsp), %r14
movq %r14, %rdi
callq 0x57ec
movq -0x38(%r14), %rdi
testq %rdi, %rdi
je 0x4547
movq 0x188(%rsp), %rsi
subq %rdi, %rsi
callq 0x2170
movq 0x160(%rsp), %rdi
testq %rdi, %rdi
je 0x4564
movq 0x170(%rsp), %rsi
subq %rdi, %rsi
callq 0x2170
movq 0x148(%rsp), %rdi
testq %rdi, %rdi
je 0x4581
movq 0x158(%rsp), %rsi
subq %rdi, %rsi
callq 0x2170
movq 0xa8(%rsp), %rdi
testq %rdi, %rdi
je 0x459e
movq 0xb8(%rsp), %rsi
subq %rdi, %rsi
callq 0x2170
leaq 0xd0(%rsp), %rdi
callq 0x49cc
leaq 0x550(%rsp), %rdi
callq 0x49cc
leaq 0x590(%rsp), %rdi
callq 0x2090
movq %rbx, %rdi
callq 0x2220
nop