// File: /workspace/github_cpp_makefile_star2_O3/schneebergerlab[P]DrLink/analyze_molecule.cpp
// Function: write_molecule_stat(std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, unsigned long, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const, unsigned long>>>, std::map<int, unsigned long, std::less<int>, std::allocator<std::pair<int const, unsigned long>>>, std::map<int, unsigned long, std::less<int>, std::allocator<std::pair<int const, unsigned long>>>, std::map<int, unsigned long, std::less<int>, std::allocator<std::pair<int const, unsigned long>>>, std::map<int, unsigned long, std::less<int>, std::allocator<std::pair<int const, unsigned long>>>, std::map<int, unsigned long, std::less<int>, std::allocator<std::pair<int const, unsigned long>>>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, int, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const, int>>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, int)
bool write_molecule_stat(map<string, unsigned long> molecule_cov, 
                         map<int,    unsigned long> molecule_len, 
                         map<int,    unsigned long> molecule_len_sum, 
                         map<int,    unsigned long> molecule_read_num,
                         map<int,    unsigned long> molecule_read_num_sum,
                         map<int,    unsigned long> molecule_read_interval,
                         map<string, int>           barcode_molecule_cnt,
                         string out_prefix,
                         int minMoleSize)
{
    // 1. molecule base coverage
    std::stringstream minMsize;
    minMsize.str("");
    minMsize << minMoleSize;
    string outMCovFile = out_prefix + "_min" + minMsize.str() + "bp_moleCov_stat.txt";
    ofstream ofp;
    ofp.open(outMCovFile.c_str(), ios::out);
    if(!ofp.good())
    {
        cout << "   Error: cannot open " << outMCovFile << " to write data. " << endl;
        return false;
    }
    map<string, unsigned long>::iterator mcitr;
    map<string, unsigned long>::iterator mcitr_end;
    mcitr     = molecule_cov.begin();
    mcitr_end = molecule_cov.end();
    ofp << "#molecule_base_cov\tmolecule_num_in_bin" << endl;
    while(mcitr != mcitr_end)
    {
        ofp << (*mcitr).first << "\t" << (*mcitr).second << endl;
        mcitr ++;
    }
    ofp.close();
    
    // 2. molecule length: total legnth and number of molecules in bin
    string outMLenFile = out_prefix + "_min" + minMsize.str() + "bp_moleLen_stat.txt";    
    ofstream ofp2;
    ofp2.open(outMLenFile.c_str(), ios::out);
    if(!ofp2.good())
    {
        cout << "   Error: cannot open " << outMLenFile << " to write data. " << endl;
        return false;
    }
    map<int, unsigned long>::iterator mlitr;
    map<int, unsigned long>::iterator mlitr_end;
    mlitr     = molecule_len.begin();
    mlitr_end = molecule_len.end();
    ofp2 << "#molecule_len_kb\tmolecule_total_len_bp\tmolecule_num_in_bin" << endl;
    while(mlitr != mlitr_end)
    {
        ofp2 << (*mlitr).first  << "\t" 
             << molecule_len_sum[(*mlitr).first] << "\t" 
             << (*mlitr).second << endl;
        mlitr ++;
    }
    ofp2.close();    
    // 3. molecules per barcode/partition: find hist + output
    // find hist: 'val' (number) partitions have 'key' (number) molecules
    map<int, int> mbhist;
    map<int, int>::iterator hitr;
    map<string, int>::iterator mbcitr;
    map<string, int>::iterator mbcitr_end;
    mbcitr     = barcode_molecule_cnt.begin();
    mbcitr_end = barcode_molecule_cnt.end();
    while(mbcitr != mbcitr_end)
    {
        int cntkey = (*mbcitr).second;
        hitr = mbhist.find(cntkey);
        if(hitr == mbhist.end())
        {
            mbhist.insert(std::pair<int, int>(cntkey, 1));
        }
        else
        {
            mbhist[cntkey] += 1;
        }
        mbcitr ++;
    }  
    // output
    string outMpBHistFile = out_prefix + "_min" + minMsize.str() + "bp_moleNumPerBarc_stat.txt";        
    ofstream ofp3;
    ofp3.open(outMpBHistFile.c_str(), ios::out);
    if(!ofp3.good())
    {
        cout << "   Error: cannot open " << outMpBHistFile << " to write data. " << endl;
        return false;
    }   
    map<int, int>::iterator hitr_end;
    hitr     = mbhist.begin();
    hitr_end = mbhist.end();
    ofp3 << "#molecule_cnt\tpartition/barcode_num" << endl;
    while(hitr != hitr_end)
    {
        ofp3 << (*hitr).first  << "\t" << (*hitr).second << endl;
        hitr ++;
    }
    ofp3.close(); 
    // 4. number of reads per molecule
    string outReadNumFile = out_prefix + "_min" + minMsize.str() + "bp_readNum_stat.txt";    
    ofstream ofp4;
    ofp4.open(outReadNumFile.c_str(), ios::out);
    if(!ofp4.good())
    {
        cout << "   Error: cannot open " << outReadNumFile << " to write data. " << endl;
        return false;
    }    
    map<int,    unsigned long>::iterator readitr;
    map<int,    unsigned long>::iterator readitr_end;
    readitr     = molecule_read_num.begin();
    readitr_end = molecule_read_num.end();
    ofp4 << "#read_number\tmolecule_number_with_that_read_number\ttotal_covered_len" << endl;
    while(readitr != readitr_end)
    {
        ofp4 << (*readitr).first   << "\t" 
             << (*readitr).second  << "\t"
             << molecule_read_num_sum[(*readitr).first] << endl;
        readitr ++;
    }
    ofp4.close();
    // 5. distance between reads along chr#barcode.
    string outReadDistFile = out_prefix + "_min" + minMsize.str() + "bp_readDist_stat.txt";    
    ofstream ofp5;
    ofp5.open(outReadDistFile.c_str(), ios::out);
    if(!ofp5.good())
    {
        cout << "   Error: cannot open " << outReadDistFile << " to write data. " << endl;
        return false;
    }     
    map<int,    unsigned long>::iterator disitr;
    map<int,    unsigned long>::iterator disitr_end; 
    disitr     = molecule_read_interval.begin();
    disitr_end = molecule_read_interval.end();
    ofp5 << "#read_distance\tnumber_of_cases_with_that_read_number" << endl;
    while(disitr != disitr_end)
    {
        ofp5 << (*disitr).first << "\t" << (*disitr).second << endl;
        disitr ++;
    }
    ofp5.close();
    return true;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xcb8, %rsp            # imm = 0xCB8
movq %r9, 0xc0(%rsp)
movq %r8, 0xf8(%rsp)
movq %rcx, 0xc8(%rsp)
movq %rdx, %r13
movq %rsi, %rbp
movq %rdi, %rbx
leaq 0xb30(%rsp), %rdi
callq 0x4240
leaq 0x940(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x338e2(%rip), %rdx     # 0x3eb0a
leaq 0x930(%rsp), %rdi
movq %rdx, %rsi
callq 0x5384
leaq 0xb48(%rsp), %r12
leaq 0x930(%rsp), %rsi
movq %r12, %rdi
callq 0x4490
movl 0xd00(%rsp), %r14d
movq 0x930(%rsp), %rdi
cmpq %r15, %rdi
je 0xb275
movq 0x940(%rsp), %rsi
incq %rsi
callq 0x4340
leaq 0xb40(%rsp), %rdi
movl %r14d, %esi
callq 0x4580
movq 0xcf8(%rsp), %rax
leaq 0x740(%rsp), %r14
movq %r14, -0x10(%r14)
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
leaq 0x730(%rsp), %rdi
callq 0xd940
leaq 0x2f890(%rip), %rsi     # 0x3ab47
leaq 0x730(%rsp), %rdi
callq 0x45e0
leaq 0x330(%rsp), %rdi
movq %r12, %rsi
callq 0x44f0
movq 0x730(%rsp), %rcx
movq 0x738(%rsp), %r8
movq 0x338(%rsp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %edi
cmpq %r14, %rcx
je 0xb302
movq 0x740(%rsp), %rdi
movq 0x330(%rsp), %rsi
cmpq %rdi, %rax
jbe 0xb32e
leaq 0x340(%rsp), %r9
movl $0xf, %edi
cmpq %r9, %rsi
je 0xb329
movq 0x340(%rsp), %rdi
cmpq %rdi, %rax
jbe 0xb33d
leaq 0x730(%rsp), %rdi
callq 0x4120
jmp 0xb34e
leaq 0x330(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x4380
movq %r15, 0x930(%rsp)
movq (%rax), %rdx
leaq 0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0xb377
movq %rdx, 0x930(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x940(%rsp)
jmp 0xb37e
movups (%rcx), %xmm0
movups %xmm0, (%r15)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x938(%rsp)
movq %rcx, (%rax)
movq %r13, 0xf0(%rsp)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x2f8c3(%rip), %rsi     # 0x3ac70
leaq 0x930(%rsp), %rdi
callq 0x45e0
leaq 0x50(%rsp), %r13
movq %r13, -0x10(%r13)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xb3e1
movq %rdx, 0x40(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x50(%rsp)
jmp 0xb3e9
movups (%rcx), %xmm0
movups %xmm0, (%r13)
movq 0x8(%rax), %rdx
movq %rdx, 0x48(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x930(%rsp), %rdi
cmpq %r15, %rdi
je 0xb41e
movq 0x940(%rsp), %rsi
incq %rsi
callq 0x4340
leaq 0x340(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xb43f
movq 0x340(%rsp), %rsi
incq %rsi
callq 0x4340
movq 0x730(%rsp), %rdi
cmpq %r14, %rdi
je 0xb45c
movq 0x740(%rsp), %rsi
incq %rsi
callq 0x4340
leaq 0x930(%rsp), %rdi
callq 0x4570
movq 0x40(%rsp), %rsi
leaq 0x930(%rsp), %rdi
movl $0x10, %edx
callq 0x4060
movq 0x930(%rsp), %rax
movq -0x18(%rax), %rax
cmpl $0x0, 0x950(%rsp,%rax)
je 0xb51b
movq 0x40b27(%rip), %rdi     # 0x4bfc8
leaq 0x2f688(%rip), %rsi     # 0x3ab30
movl $0x16, %edx
callq 0x43a0
movq 0x40(%rsp), %rsi
movq 0x48(%rsp), %rdx
movq 0x40b05(%rip), %rdi     # 0x4bfc8
callq 0x43a0
movq %rax, %rbx
leaq 0x2fa12(%rip), %rsi     # 0x3aee4
movl $0x10, %edx
movq %rax, %rdi
callq 0x43a0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x4310
movsbl %al, %esi
movq %rbx, %rdi
callq 0x4030
movq %rax, %rdi
callq 0x4220
movq 0x40ab3(%rip), %rax     # 0x4bfc0
movq (%rax), %r14
movq 0x18(%rax), %r15
xorl %ebx, %ebx
jmp 0xc69d
movq 0x18(%rbx), %r15
leaq 0x2f9cf(%rip), %rsi     # 0x3aef5
leaq 0x930(%rsp), %r14
movl $0x26, %edx
movq %r14, %rdi
callq 0x43a0
movq 0x930(%rsp), %rax
addq -0x18(%rax), %r14
movq %r14, %rdi
movl $0xa, %esi
callq 0x4310
movsbl %al, %esi
leaq 0x930(%rsp), %rdi
callq 0x4030
movq %rax, %rdi
callq 0x4220
addq $0x8, %rbx
cmpq %rbx, %r15
je 0xb5ed
leaq 0x930(%rsp), %r12
leaq 0x33585(%rip), %r14     # 0x3eb09
movq 0x20(%r15), %rsi
movq 0x28(%r15), %rdx
movq %r12, %rdi
callq 0x43a0
movq %rax, %r13
movl $0x1, %edx
movq %rax, %rdi
movq %r14, %rsi
callq 0x43a0
movq 0x40(%r15), %rsi
movq %r13, %rdi
callq 0x4210
movq %rax, %r13
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x4310
movsbl %al, %esi
movq %r13, %rdi
callq 0x4030
movq %rax, %rdi
callq 0x4220
movq %r15, %rdi
callq 0x4230
movq %rax, %r15
cmpq %rbx, %rax
jne 0xb584
leaq 0x930(%rsp), %rdi
callq 0x4440
leaq 0x330(%rsp), %rdi
leaq 0x340(%rsp), %r14
movq %r14, (%rdi)
movq 0xcf8(%rsp), %rax
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
leaq 0x50(%rsp), %r13
callq 0xd940
leaq 0xb48(%rsp), %rbx
leaq 0x2f50f(%rip), %rsi     # 0x3ab47
leaq 0x330(%rsp), %rdi
callq 0x45e0
leaq 0x530(%rsp), %rdi
movq %rbx, %rsi
callq 0x44f0
movq 0x330(%rsp), %rcx
movq 0x338(%rsp), %r8
movq 0x538(%rsp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %edi
cmpq %r14, %rcx
je 0xb683
movq 0x340(%rsp), %rdi
movq 0x530(%rsp), %rsi
cmpq %rdi, %rax
jbe 0xb6af
leaq 0x540(%rsp), %r9
movl $0xf, %edi
cmpq %r9, %rsi
je 0xb6aa
movq 0x540(%rsp), %rdi
cmpq %rdi, %rax
jbe 0xb6be
leaq 0x330(%rsp), %rdi
callq 0x4120
jmp 0xb6cf
leaq 0x530(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x4380
leaq 0x740(%rsp), %rsi
movq %rsi, 0x730(%rsp)
movq (%rax), %rdx
leaq 0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0xb700
movq %rdx, 0x730(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x740(%rsp)
jmp 0xb706
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x738(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x2f582(%rip), %rsi     # 0x3acaf
leaq 0x730(%rsp), %rdi
callq 0x45e0
leaq 0x30(%rsp), %r12
movq %r12, -0x10(%r12)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xb762
movq %rdx, 0x20(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x30(%rsp)
jmp 0xb76a
movups (%rcx), %xmm0
movups %xmm0, (%r12)
movq 0x8(%rax), %rdx
movq %rdx, 0x28(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x730(%rsp), %rdi
leaq 0x740(%rsp), %rax
cmpq %rax, %rdi
je 0xb7a7
movq 0x740(%rsp), %rsi
incq %rsi
callq 0x4340
leaq 0x540(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xb7c8
movq 0x540(%rsp), %rsi
incq %rsi
callq 0x4340
movq 0x330(%rsp), %rdi
cmpq %r14, %rdi
je 0xb7e5
movq 0x340(%rsp), %rsi
incq %rsi
callq 0x4340
leaq 0x730(%rsp), %rdi
callq 0x4570
movq 0x20(%rsp), %rsi
leaq 0x730(%rsp), %rdi
movl $0x10, %edx
callq 0x4060
movq 0x730(%rsp), %rax
movq -0x18(%rax), %rax
cmpl $0x0, 0x750(%rsp,%rax)
je 0xb8a4
movq 0x4079e(%rip), %rdi     # 0x4bfc8
leaq 0x2f2ff(%rip), %rsi     # 0x3ab30
movl $0x16, %edx
callq 0x43a0
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
movq 0x4077c(%rip), %rdi     # 0x4bfc8
callq 0x43a0
movq %rax, %rbx
leaq 0x2f689(%rip), %rsi     # 0x3aee4
movl $0x10, %edx
movq %rax, %rdi
callq 0x43a0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x4310
movsbl %al, %esi
movq %rbx, %rdi
callq 0x4030
movq %rax, %rdi
callq 0x4220
movq 0x4072a(%rip), %rax     # 0x4bfc0
movq (%rax), %r14
movq 0x18(%rax), %r15
xorl %ebx, %ebx
jmp 0xc65c
movq 0x18(%rbp), %rbx
leaq 0x2f66d(%rip), %rsi     # 0x3af1c
leaq 0x730(%rsp), %r14
movl $0x3a, %edx
movq %r14, %rdi
callq 0x43a0
movq 0x730(%rsp), %rax
addq -0x18(%rax), %r14
movq %r14, %rdi
movl $0xa, %esi
callq 0x4310
movsbl %al, %esi
leaq 0x730(%rsp), %rdi
callq 0x4030
movq %rax, %rdi
callq 0x4220
addq $0x8, %rbp
cmpq %rbp, %rbx
movq 0xf0(%rsp), %r13
je 0xb9ab
leaq 0x730(%rsp), %r15
leaq 0x331f0(%rip), %r12     # 0x3eb09
movl 0x20(%rbx), %esi
movq %r15, %rdi
callq 0x4580
movq %rax, %r14
movl $0x1, %edx
movq %rax, %rdi
movq %r12, %rsi
callq 0x43a0
leaq 0x20(%rbx), %rsi
movq %r13, %rdi
callq 0xce1a
movq (%rax), %rsi
movq %r14, %rdi
callq 0x4210
movq %rax, %r14
movl $0x1, %edx
movq %rax, %rdi
movq %r12, %rsi
callq 0x43a0
movq 0x28(%rbx), %rsi
movq %r14, %rdi
callq 0x4210
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x4310
movsbl %al, %esi
movq %r14, %rdi
callq 0x4030
movq %rax, %rdi
callq 0x4220
movq %rbx, %rdi
callq 0x4230
movq %rax, %rbx
cmpq %rbp, %rax
jne 0xb919
leaq 0x730(%rsp), %rdi
callq 0x4440
movq 0xcf0(%rsp), %r13
leaq 0x108(%rsp), %rbp
movl $0x0, (%rbp)
xorl %eax, %eax
movq %rax, 0x8(%rbp)
movq %rbp, 0x10(%rbp)
movq %rbp, 0x18(%rbp)
movq %rax, 0x20(%rbp)
movq 0x18(%r13), %rbx
addq $0x8, %r13
cmpq %r13, %rbx
je 0xba94
leaq 0x100(%rsp), %r14
leaq 0x330(%rsp), %r15
leaq 0x530(%rsp), %r12
movl 0x40(%rbx), %eax
movl %eax, 0x530(%rsp)
movq 0x110(%rsp), %rdi
testq %rdi, %rdi
je 0xba56
movq %rbp, %r8
movq %r8, %rcx
movq %rdi, %rdx
movl 0x20(%rdi), %esi
xorl %edi, %edi
cmpl %eax, %esi
setl %dil
movq %rdx, %r8
cmovlq %rcx, %r8
movq 0x10(%rdx,%rdi,8), %rdi
testq %rdi, %rdi
jne 0xba24
cmpq %rbp, %r8
je 0xba56
cmpl %eax, %esi
cmovlq %rcx, %rdx
cmpl 0x20(%rdx), %eax
jge 0xba85
movl %eax, 0x330(%rsp)
movl $0x1, 0x334(%rsp)
movq %r14, %rdi
movq %r15, %rsi
callq 0xe728
movq %rbx, %rdi
callq 0x4230
movq %rax, %rbx
cmpq %r13, %rax
jne 0xba0a
jmp 0xba94
movq %r14, %rdi
movq %r12, %rsi
callq 0xcefc
incl (%rax)
jmp 0xba73
leaq 0x530(%rsp), %rdi
leaq 0x540(%rsp), %r15
movq %r15, (%rdi)
movq 0xcf8(%rsp), %rax
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
callq 0xd940
leaq 0x2f082(%rip), %rsi     # 0x3ab47
leaq 0x530(%rsp), %rdi
leaq 0x50(%rsp), %r13
callq 0x45e0
leaq 0xb48(%rsp), %rsi
leaq 0x340(%rsp), %r14
leaq 0x130(%rsp), %rdi
callq 0x44f0
movq 0x530(%rsp), %rcx
movq 0x538(%rsp), %r8
movq 0x138(%rsp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %edi
cmpq %r15, %rcx
leaq 0x30(%rsp), %r12
je 0xbb27
movq 0x540(%rsp), %rdi
movq 0x130(%rsp), %rsi
cmpq %rdi, %rax
jbe 0xbb53
leaq 0x140(%rsp), %r9
movl $0xf, %edi
cmpq %r9, %rsi
je 0xbb4e
movq 0x140(%rsp), %rdi
cmpq %rdi, %rax
jbe 0xbb62
leaq 0x530(%rsp), %rdi
callq 0x4120
jmp 0xbb73
leaq 0x130(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x4380
movq %r14, 0x330(%rsp)
movq (%rax), %rdx
leaq 0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0xbb9c
movq %rdx, 0x330(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x340(%rsp)
jmp 0xbba3
movups (%rcx), %xmm0
movups %xmm0, (%r14)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x338(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x2f38d(%rip), %rsi     # 0x3af57
leaq 0x330(%rsp), %rdi
callq 0x45e0
leaq 0xb0(%rsp), %rsi
movq %rsi, -0x10(%rsi)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xbc07
movq %rdx, 0xa0(%rsp)
movq (%rcx), %rdx
movq %rdx, 0xb0(%rsp)
jmp 0xbc0d
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0xa8(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x330(%rsp), %rdi
cmpq %r14, %rdi
je 0xbc45
movq 0x340(%rsp), %rsi
incq %rsi
callq 0x4340
leaq 0x140(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xbc66
movq 0x140(%rsp), %rsi
incq %rsi
callq 0x4340
movq 0x530(%rsp), %rdi
cmpq %r15, %rdi
je 0xbc83
movq 0x540(%rsp), %rsi
incq %rsi
callq 0x4340
leaq 0x330(%rsp), %rdi
callq 0x4570
movq 0xa0(%rsp), %rsi
leaq 0x330(%rsp), %rdi
movl $0x10, %edx
callq 0x4060
movq 0x330(%rsp), %rax
movq -0x18(%rax), %rax
cmpl $0x0, 0x350(%rsp,%rax)
je 0xbd4b
movq 0x402fd(%rip), %rdi     # 0x4bfc8
leaq 0x2ee5e(%rip), %rsi     # 0x3ab30
movl $0x16, %edx
callq 0x43a0
movq 0xa0(%rsp), %rsi
movq 0xa8(%rsp), %rdx
movq 0x402d5(%rip), %rdi     # 0x4bfc8
callq 0x43a0
movq %rax, %rbx
leaq 0x2f1e2(%rip), %rsi     # 0x3aee4
movl $0x10, %edx
movq %rax, %rdi
callq 0x43a0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x4310
movsbl %al, %esi
movq %rbx, %rdi
callq 0x4030
movq %rax, %rdi
callq 0x4220
movq 0x40283(%rip), %rax     # 0x4bfc0
movq (%rax), %r14
movq 0x18(%rax), %r15
xorl %ebx, %ebx
jmp 0xc600
movq 0x118(%rsp), %rbx
leaq 0x2f218(%rip), %rsi     # 0x3af72
leaq 0x330(%rsp), %r14
movl $0x23, %edx
movq %r14, %rdi
callq 0x43a0
movq 0x330(%rsp), %rax
addq -0x18(%rax), %r14
movq %r14, %rdi
movl $0xa, %esi
callq 0x4310
movsbl %al, %esi
leaq 0x330(%rsp), %rdi
callq 0x4030
movq %rax, %rdi
callq 0x4220
cmpq %rbp, %rbx
je 0xbe17
leaq 0x330(%rsp), %r14
leaq 0x32d55(%rip), %r15     # 0x3eb09
movl 0x20(%rbx), %esi
movq %r14, %rdi
callq 0x4580
movq %rax, %r12
movl $0x1, %edx
movq %rax, %rdi
movq %r15, %rsi
callq 0x43a0
movl 0x24(%rbx), %esi
movq %r12, %rdi
callq 0x4580
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x4310
movsbl %al, %esi
movq %r12, %rdi
callq 0x4030
movq %rax, %rdi
callq 0x4220
movq %rbx, %rdi
callq 0x4230
movq %rax, %rbx
cmpq %rbp, %rax
jne 0xbdb4
leaq 0x330(%rsp), %rdi
callq 0x4440
leaq 0x130(%rsp), %rdi
leaq 0x140(%rsp), %rax
movq %rax, (%rdi)
movq 0xcf8(%rsp), %rax
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
leaq 0x30(%rsp), %r12
callq 0xd940
leaq 0x540(%rsp), %r14
leaq 0x2ece5(%rip), %rsi     # 0x3ab47
leaq 0x130(%rsp), %rdi
callq 0x45e0
movq %rsp, %rdi
leaq 0xb48(%rsp), %rsi
callq 0x44f0
movq 0x130(%rsp), %rcx
movq 0x138(%rsp), %r8
movq 0x8(%rsp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %edi
leaq 0x140(%rsp), %rsi
cmpq %rsi, %rcx
je 0xbeb2
movq 0x140(%rsp), %rdi
movq (%rsp), %rsi
cmpq %rdi, %rax
jbe 0xbed4
leaq 0x10(%rsp), %r9
movl $0xf, %edi
cmpq %r9, %rsi
je 0xbecf
movq 0x10(%rsp), %rdi
cmpq %rdi, %rax
jbe 0xbee3
leaq 0x130(%rsp), %rdi
callq 0x4120
jmp 0xbeef
movq %rsp, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x4380
movq %r14, 0x530(%rsp)
movq (%rax), %rdx
leaq 0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0xbf18
movq %rdx, 0x530(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x540(%rsp)
jmp 0xbf1f
movups (%rcx), %xmm0
movups %xmm0, (%r14)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x538(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x2eda8(%rip), %rsi     # 0x3acee
leaq 0x530(%rsp), %rdi
callq 0x45e0
leaq 0x70(%rsp), %rbp
movq %rbp, -0x10(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xbf7a
movq %rdx, 0x60(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x70(%rsp)
jmp 0xbf81
movups (%rcx), %xmm0
movups %xmm0, (%rbp)
movq 0x8(%rax), %rdx
movq %rdx, 0x68(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x530(%rsp), %rdi
cmpq %r14, %rdi
je 0xbfb6
movq 0x540(%rsp), %rsi
incq %rsi
callq 0x4340
leaq 0x10(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
leaq 0x140(%rsp), %rbx
je 0xbfd9
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x4340
movq 0x130(%rsp), %rdi
cmpq %rbx, %rdi
je 0xbff6
movq 0x140(%rsp), %rsi
incq %rsi
callq 0x4340
leaq 0x530(%rsp), %rdi
callq 0x4570
movq 0x60(%rsp), %rsi
leaq 0x530(%rsp), %rdi
movl $0x10, %edx
callq 0x4060
movq 0x530(%rsp), %rax
movq -0x18(%rax), %rax
cmpl $0x0, 0x550(%rsp,%rax)
je 0xc0b5
movq 0x3ff8d(%rip), %rdi     # 0x4bfc8
leaq 0x2eaee(%rip), %rsi     # 0x3ab30
movl $0x16, %edx
callq 0x43a0
movq 0x60(%rsp), %rsi
movq 0x68(%rsp), %rdx
movq 0x3ff6b(%rip), %rdi     # 0x4bfc8
callq 0x43a0
movq %rax, %rbx
leaq 0x2ee78(%rip), %rsi     # 0x3aee4
movl $0x10, %edx
movq %rax, %rdi
callq 0x43a0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x4310
movsbl %al, %esi
movq %rbx, %rdi
callq 0x4030
movq %rax, %rdi
callq 0x4220
movq 0x3ff19(%rip), %rax     # 0x4bfc0
movq (%rax), %r14
movq 0x18(%rax), %r15
xorl %ebx, %ebx
jmp 0xc5bf
movq 0xc8(%rsp), %rax
movq 0x18(%rax), %rbx
leaq 0x2eece(%rip), %rsi     # 0x3af96
leaq 0x530(%rsp), %r14
movl $0x44, %edx
movq %r14, %rdi
callq 0x43a0
movq 0x530(%rsp), %rax
addq -0x18(%rax), %r14
movq %r14, %rdi
movl $0xa, %esi
callq 0x4310
movsbl %al, %esi
leaq 0x530(%rsp), %rdi
callq 0x4030
movq %rax, %rdi
callq 0x4220
movq 0xc8(%rsp), %rax
addq $0x8, %rax
cmpq %rax, %rbx
je 0xc1cc
movq %rax, %rbp
leaq 0x530(%rsp), %r15
leaq 0x329d4(%rip), %r12     # 0x3eb09
movl 0x20(%rbx), %esi
movq %r15, %rdi
callq 0x4580
movq %rax, %r14
movl $0x1, %edx
movq %rax, %rdi
movq %r12, %rsi
callq 0x43a0
movq 0x28(%rbx), %rsi
movq %r14, %rdi
callq 0x4210
movq %rax, %r14
movl $0x1, %edx
movq %rax, %rdi
movq %r12, %rsi
callq 0x43a0
leaq 0x20(%rbx), %rsi
movq 0xf8(%rsp), %rdi
callq 0xce1a
movq (%rax), %rsi
movq %r14, %rdi
callq 0x4210
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x4310
movsbl %al, %esi
movq %r14, %rdi
callq 0x4030
movq %rax, %rdi
callq 0x4220
movq %rbx, %rdi
callq 0x4230
movq %rax, %rbx
cmpq %rbp, %rax
jne 0xc135
leaq 0x530(%rsp), %rdi
callq 0x4440
leaq 0x90(%rsp), %r14
movq %r14, -0x10(%r14)
movq 0xcf8(%rsp), %rax
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
leaq 0x80(%rsp), %rdi
leaq 0x30(%rsp), %r12
leaq 0x70(%rsp), %rbp
callq 0xd940
leaq 0x10(%rsp), %rbx
leaq 0x2e92d(%rip), %rsi     # 0x3ab47
leaq 0x80(%rsp), %rdi
callq 0x45e0
leaq 0xd0(%rsp), %rdi
leaq 0xb48(%rsp), %rsi
callq 0x44f0
movq 0x80(%rsp), %rcx
movq 0x88(%rsp), %r8
movq 0xd8(%rsp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %edi
cmpq %r14, %rcx
je 0xc26a
movq 0x90(%rsp), %rdi
movq 0xd0(%rsp), %rsi
cmpq %rdi, %rax
jbe 0xc296
leaq 0xe0(%rsp), %r9
movl $0xf, %edi
cmpq %r9, %rsi
je 0xc291
movq 0xe0(%rsp), %rdi
cmpq %rdi, %rax
jbe 0xc2a5
leaq 0x80(%rsp), %rdi
callq 0x4120
jmp 0xc2b6
leaq 0xd0(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x4380
leaq 0x140(%rsp), %rsi
movq %rsi, 0x130(%rsp)
movq (%rax), %rdx
leaq 0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0xc2e7
movq %rdx, 0x130(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x140(%rsp)
jmp 0xc2ed
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x138(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x2ea1a(%rip), %rsi     # 0x3ad2e
leaq 0x130(%rsp), %rdi
callq 0x45e0
movq %rbx, (%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xc342
movq %rdx, (%rsp)
movq (%rcx), %rdx
movq %rdx, 0x10(%rsp)
jmp 0xc348
movups (%rcx), %xmm0
movups %xmm0, (%rbx)
movq 0x8(%rax), %rdx
movq %rdx, 0x8(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x130(%rsp), %rdi
leaq 0x140(%rsp), %rax
cmpq %rax, %rdi
je 0xc385
movq 0x140(%rsp), %rsi
incq %rsi
callq 0x4340
leaq 0xe0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xc3a6
movq 0xe0(%rsp), %rsi
incq %rsi
callq 0x4340
movq 0x80(%rsp), %rdi
cmpq %r14, %rdi
je 0xc3c3
movq 0x90(%rsp), %rsi
incq %rsi
callq 0x4340
leaq 0x130(%rsp), %rdi
callq 0x4570
movq (%rsp), %rsi
leaq 0x130(%rsp), %rdi
movl $0x10, %edx
callq 0x4060
movq 0x130(%rsp), %rax
movq -0x18(%rax), %rax
cmpl $0x0, 0x150(%rsp,%rax)
sete %bl
je 0xc46f
movq 0x3fbc2(%rip), %rdi     # 0x4bfc8
leaq 0x2e723(%rip), %rsi     # 0x3ab30
movl $0x16, %edx
callq 0x43a0
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq 0x3fba1(%rip), %rdi     # 0x4bfc8
callq 0x43a0
movq %rax, %r14
leaq 0x2eaae(%rip), %rsi     # 0x3aee4
movl $0x10, %edx
movq %rax, %rdi
callq 0x43a0
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x4310
movsbl %al, %esi
movq %r14, %rdi
callq 0x4030
movq %rax, %rdi
callq 0x4220
jmp 0xc56c
movq 0xc0(%rsp), %rax
movq 0x18(%rax), %r14
leaq 0x2eb59(%rip), %rsi     # 0x3afdb
leaq 0x130(%rsp), %r15
movl $0x34, %edx
movq %r15, %rdi
callq 0x43a0
movq 0x130(%rsp), %rax
addq -0x18(%rax), %r15
movq %r15, %rdi
movl $0xa, %esi
callq 0x4310
movsbl %al, %esi
leaq 0x130(%rsp), %rdi
callq 0x4030
movq %rax, %rdi
callq 0x4220
movq 0xc0(%rsp), %rax
addq $0x8, %rax
cmpq %rax, %r14
je 0xc550
movq %rax, %rbp
leaq 0x130(%rsp), %r15
leaq 0x3261e(%rip), %r12     # 0x3eb09
movl 0x20(%r14), %esi
movq %r15, %rdi
callq 0x4580
movq %rax, %r13
movl $0x1, %edx
movq %rax, %rdi
movq %r12, %rsi
callq 0x43a0
movq 0x28(%r14), %rsi
movq %r13, %rdi
callq 0x4210
movq %rax, %r13
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x4310
movsbl %al, %esi
movq %r13, %rdi
callq 0x4030
movq %rax, %rdi
callq 0x4220
movq %r14, %rdi
callq 0x4230
movq %rax, %r14
cmpq %rbp, %rax
jne 0xc4eb
leaq 0x130(%rsp), %rdi
leaq 0x50(%rsp), %r13
leaq 0x30(%rsp), %r12
leaq 0x70(%rsp), %rbp
callq 0x4440
movq 0x3fa4d(%rip), %rax     # 0x4bfc0
movq (%rax), %r14
movq 0x18(%rax), %r15
leaq 0x138(%rsp), %rdi
movq %r14, -0x8(%rdi)
movq -0x18(%r14), %rax
movq %r15, 0x130(%rsp,%rax)
callq 0x42a0
leaq 0x228(%rsp), %rdi
callq 0x4140
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0xc5bf
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x4340
leaq 0x538(%rsp), %rdi
movq %r14, -0x8(%rdi)
movq -0x18(%r14), %rax
movq %r15, 0x530(%rsp,%rax)
callq 0x42a0
leaq 0x628(%rsp), %rdi
callq 0x4140
movq 0x60(%rsp), %rdi
cmpq %rbp, %rdi
je 0xc600
movq 0x70(%rsp), %rsi
incq %rsi
callq 0x4340
leaq 0x338(%rsp), %rdi
movq %r14, -0x8(%rdi)
movq -0x18(%r14), %rax
movq %r15, 0x330(%rsp,%rax)
callq 0x42a0
leaq 0x428(%rsp), %rdi
callq 0x4140
movq 0xa0(%rsp), %rdi
leaq 0xb0(%rsp), %rax
cmpq %rax, %rdi
je 0xc64f
movq 0xb0(%rsp), %rsi
incq %rsi
callq 0x4340
leaq 0x100(%rsp), %rdi
callq 0xd8f0
leaq 0x738(%rsp), %rdi
movq %r14, -0x8(%rdi)
movq -0x18(%r14), %rax
movq %r15, 0x730(%rsp,%rax)
callq 0x42a0
leaq 0x828(%rsp), %rdi
callq 0x4140
movq 0x20(%rsp), %rdi
cmpq %r12, %rdi
je 0xc69d
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x4340
leaq 0x938(%rsp), %rdi
movq %r14, -0x8(%rdi)
movq -0x18(%r14), %rax
movq %r15, 0x930(%rsp,%rax)
callq 0x42a0
leaq 0xa28(%rsp), %rdi
callq 0x4140
movq 0x40(%rsp), %rdi
cmpq %r13, %rdi
je 0xc6de
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x4340
movq 0x3f8b3(%rip), %rsi     # 0x4bf98
leaq 0xb30(%rsp), %rdi
callq 0x4260
leaq 0xbb0(%rsp), %rdi
callq 0x4140
movl %ebx, %eax
addq $0xcb8, %rsp            # imm = 0xCB8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
jmp 0xc973
movq %rax, %rbx
movq 0x130(%rsp), %rdi
leaq 0x140(%rsp), %rax
cmpq %rax, %rdi
je 0xc748
movq 0x140(%rsp), %rsi
incq %rsi
callq 0x4340
jmp 0xc748
movq %rax, %rbx
leaq 0xe0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xc770
movq 0xe0(%rsp), %rsi
incq %rsi
callq 0x4340
jmp 0xc770
jmp 0xc76d
movq %rax, %rbx
movq 0x80(%rsp), %rdi
cmpq %r14, %rdi
je 0xca46
movq 0x90(%rsp), %rsi
jmp 0xc98a
jmp 0xca43
jmp 0xc963
movq %rax, %rbx
jmp 0xca53
movq %rax, %rbx
movq 0x530(%rsp), %rdi
cmpq %r14, %rdi
je 0xc7c5
movq 0x540(%rsp), %rsi
incq %rsi
callq 0x4340
jmp 0xc7c5
movq %rax, %rbx
leaq 0x10(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xc7e7
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x4340
jmp 0xc7e7
jmp 0xc7e4
movq %rax, %rbx
movq 0x130(%rsp), %rdi
leaq 0x140(%rsp), %rax
cmpq %rax, %rdi
je 0xca76
movq 0x140(%rsp), %rsi
jmp 0xca67
jmp 0xca73
jmp 0xc963
jmp 0xca43
movq %rax, %rbx
jmp 0xca83
movq %rax, %rbx
movq 0x330(%rsp), %rdi
cmpq %r14, %rdi
je 0xc849
movq 0x340(%rsp), %rsi
incq %rsi
callq 0x4340
jmp 0xc849
movq %rax, %rbx
leaq 0x140(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xc86f
movq 0x140(%rsp), %rsi
incq %rsi
callq 0x4340
jmp 0xc86f
movq %rax, %rbx
movq 0x530(%rsp), %rdi
leaq 0x540(%rsp), %rax
cmpq %rax, %rdi
jne 0xc89d
jmp 0xcaa8
movq %rax, %rbx
movq 0x530(%rsp), %rdi
cmpq %r15, %rdi
je 0xcaa8
movq 0x540(%rsp), %rsi
jmp 0xcaa0
jmp 0xca3e
jmp 0xca43
jmp 0xca73
movq %rax, %rbx
jmp 0xcac7
movq %rax, %rbx
movq 0x730(%rsp), %rdi
leaq 0x740(%rsp), %rax
cmpq %rax, %rdi
je 0xc8ee
movq 0x740(%rsp), %rsi
incq %rsi
callq 0x4340
jmp 0xc8ee
movq %rax, %rbx
leaq 0x540(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xc914
movq 0x540(%rsp), %rsi
incq %rsi
callq 0x4340
jmp 0xc914
movq %rax, %rbx
movq 0x330(%rsp), %rdi
leaq 0x340(%rsp), %rax
cmpq %rax, %rdi
jne 0xc942
jmp 0xcae8
movq %rax, %rbx
movq 0x330(%rsp), %rdi
cmpq %r14, %rdi
je 0xcae8
movq 0x340(%rsp), %rsi
jmp 0xcadb
jmp 0xcae5
jmp 0xca3e
jmp 0xca73
jmp 0xcab7
movq %rax, %rbx
leaq 0x130(%rsp), %rdi
callq 0x4480
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0xca46
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x4340
jmp 0xca46
movq %rax, %rbx
jmp 0xcaf5
movq %rax, %rbx
movq 0x930(%rsp), %rdi
cmpq %r15, %rdi
je 0xc9c4
movq 0x940(%rsp), %rsi
incq %rsi
callq 0x4340
jmp 0xc9c4
movq %rax, %rbx
leaq 0x340(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xc9ec
movq 0x340(%rsp), %rsi
incq %rsi
callq 0x4340
jmp 0xc9ec
jmp 0xc9e9
movq %rax, %rbx
movq 0x730(%rsp), %rdi
cmpq %r14, %rdi
je 0xcb11
movq 0x740(%rsp), %rsi
jmp 0xcb09
jmp 0xca2f
jmp 0xca2f
movq %rax, %rbx
movq 0x930(%rsp), %rdi
cmpq %r15, %rdi
je 0xcb11
movq 0x940(%rsp), %rsi
jmp 0xcb09
movq %rax, %rbx
jmp 0xcb11
jmp 0xcab7
jmp 0xcae5
movq %rax, %rbx
jmp 0xcaa8
movq %rax, %rbx
leaq 0x530(%rsp), %rdi
callq 0x4480
movq 0x60(%rsp), %rdi
leaq 0x70(%rsp), %rax
cmpq %rax, %rdi
je 0xca76
movq 0x70(%rsp), %rsi
incq %rsi
callq 0x4340
jmp 0xca76
jmp 0xcae5
movq %rax, %rbx
leaq 0x330(%rsp), %rdi
callq 0x4480
movq 0xa0(%rsp), %rdi
leaq 0xb0(%rsp), %rax
cmpq %rax, %rdi
je 0xcaa8
movq 0xb0(%rsp), %rsi
incq %rsi
callq 0x4340
leaq 0x100(%rsp), %rdi
callq 0xd8f0
jmp 0xcaba
movq %rax, %rbx
leaq 0x730(%rsp), %rdi
callq 0x4480
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0xcae8
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x4340
jmp 0xcae8
movq %rax, %rbx
leaq 0x930(%rsp), %rdi
callq 0x4480
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0xcb11
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x4340
movq 0x3f480(%rip), %rsi     # 0x4bf98
leaq 0xb30(%rsp), %rdi
callq 0x4260
leaq 0xbb0(%rsp), %rdi
callq 0x4140
movq %rbx, %rdi
callq 0x45a0