// File: /workspace/github_cpp_makefile_star2_O2/schneebergerlab[P]DrLink/separate_chr_v2.cpp
// Function: separate_chr_v2(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, 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, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>>*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*)
bool separate_chr_v2(string filename, map<string, string>* visitedChr, string* tmpflag)
{
    /* this function separates 
    
       xxx_molecule_table_trashme.txt.gz from DrLink molecule or 
       phased_variants.vcf.gz            from longranger
       
       into chr-sepecific sub-files for later processing.
       
       Input:
       
       filename  - name of input gzipped file.
       moleORvcf - if "moleTable", the file is treated as molecule table file; if "vcf", vcf file.
       
       return variable:
       
       visitedChr- map<chr, chrfilename>
    */
    // files need to be gzipped
    if(filename.size() < 4)
    {
        cout << "   Error: unexpted file name " << filename << ". Must be in form of xxx.gz ." << endl;
        return false;
    }
    if(filename.substr(filename.size()-3).compare(".gz") != 0)
    {
        cout << "   Error: only file xxx.gz for molecule table or vcf accepted. " << endl;
        return false;
    }
    //
    map<string, ogzstream*> allofp; // map<filename, filehandle>
    //
    string tmpfileflag= *tmpflag;
    // read and write
    igzstream  fp;
    fp.open(filename.c_str());
    if(!fp.good())
    {
        cout << "   Error: cannot open file " << filename << "; exited. " << endl;
        return false;
    }
    while(fp.good())
    {
        string line("");
        getline(fp, line);
        if(line.size()==0 || line[0]=='#') continue;
        
        //vector<string> lineinfo = split_string(line, '\t');
        
        string chrinfo(""); // == lineinfo[0]
        size_t tabfirst = line.find("\t");
        chrinfo = line.substr(0, tabfirst);
        
        // find chr
        size_t ipos = chrinfo.find("#");     // if found - molecule table; if not - vcf file
        bool   vcf  = false;
        if(ipos == std::string::npos)
        {
            ipos = chrinfo.size();
            vcf  = true;
        }
        string chr;
        if(line.substr(0, 3).compare("Chr")==0 || 
           line.substr(0, 3).compare("chr")==0 || 
           line.substr(0, 3).compare("CHR")==0)
        {
            chr = chrinfo.substr(3, ipos-3); 
        }
        else
        {
            chr = chrinfo.substr(0, ipos); 
        }
        // if has not been not visited, open new file for current chr if not exist
        if(allofp.find(chr)==allofp.end())
        {
            string chrfilename("");
            if(vcf == true)
            {
                int t=0;
                chrfilename = tmpfileflag + "_subfile_chr_" + chr + "_longranger_variants.vcf.gz";
                igzstream iitfp;
                iitfp.open(chrfilename.c_str(), ios::in);
                while(t<10000 && iitfp.good())
                {
                    iitfp.close();
                    tmpfileflag.clear();
                    gen_random(&tmpfileflag, 6);
                    chrfilename = tmpfileflag + "_subfile_chr_" + chr + "_longranger_variants.vcf.gz";
                    iitfp.open(chrfilename.c_str(), ios::in);
                    if(iitfp.good())
                    cout << "   Warning: tmp file " << chrfilename << " exists! Trying another!" << endl;
                }
            }
            else
            {
                int t=0;
                chrfilename = tmpfileflag + "_subfile_chr_" + chr + "_DrLink_molecules.txt.gz";
                igzstream iitfp;
                iitfp.open(chrfilename.c_str(), ios::in);
                while(t<10000 && iitfp.good())
                {
                    iitfp.close();
                    tmpfileflag.clear();
                    gen_random(&tmpfileflag, 6);
                    chrfilename = tmpfileflag + "_subfile_chr_" + chr + "_DrLink_molecules.txt.gz";
                    iitfp.open(chrfilename.c_str(), ios::in);
                    if(iitfp.good())
                    cout << "   Warning: tmp file " << chrfilename << " exists! Trying another!" << endl;
                }                
            }
            ogzstream* f = new ogzstream(chrfilename.c_str(), ios::out);   
            allofp.insert(std::pair<string, ogzstream*>(chr, f) );
            cout << "   Info: new subfile " << chrfilename << " created and opened." << endl;
            // output
            if(line.substr(0, 3).compare("Chr")==0 || 
               line.substr(0, 3).compare("chr")==0 || 
               line.substr(0, 3).compare("CHR")==0)
            {
                *f << line.substr(3) << endl;
            }
            else
            {
                *f << line << endl;
            }
            // collect chr and filename
            (*visitedChr).insert(std::pair<string, string>(chr, chrfilename));
        }
        else //if differ from last Chr, output to existing file for current chr if exists
        {
            ogzstream* f       = allofp[chr];
            // output 
            if(line.substr(0, 3).compare("Chr")==0 || 
               line.substr(0, 3).compare("chr")==0 || 
               line.substr(0, 3).compare("CHR")==0)
            {
                *f << line.substr(3) << endl;
            }
            else
            {
                *f << line << endl;
            }
        }
    }
    //
    fp.close();
    //
    map<string, ogzstream*>::iterator fitr;
    map<string, ogzstream*>::iterator fitr_end;
    fitr     = allofp.begin();
    fitr_end = allofp.end();
    while(fitr != fitr_end)
    {
        ogzstream* f = (*fitr).second;
        (*f).close();
        fitr ++;
    }
    //
    (*tmpflag) = tmpfileflag;
    return true;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x688, %rsp            # imm = 0x688
movq %rdx, 0x88(%rsp)
movq %rdi, %rbx
movq 0x8(%rdi), %rdx
cmpq $0x3, %rdx
ja 0x253a4
movq 0x17c47(%rip), %rdi     # 0x3cfc8
leaq 0x8a35(%rip), %rsi      # 0x2ddbd
callq 0x4330
movq %rax, %rdi
movq %rbx, %rsi
callq 0x42e0
leaq 0x8a3c(%rip), %rsi      # 0x2dddb
movq %rax, %rdi
jmp 0x253ec
movq %rsi, %r15
addq $-0x3, %rdx
leaq 0x3e8(%rsp), %r14
pushq $-0x1
popq %rcx
movq %r14, %rdi
movq %rbx, %rsi
callq 0x4360
leaq 0x406f(%rip), %rsi      # 0x29437
movq %r14, %rdi
callq 0x4110
movl %eax, %ebp
movq %r14, %rdi
callq 0x4638
testl %ebp, %ebp
je 0x2540d
movq 0x17be3(%rip), %rdi     # 0x3cfc8
leaq 0x8a0d(%rip), %rsi      # 0x2ddf9
callq 0x4330
movq %rax, %rdi
callq 0x41c0
xorl %eax, %eax
addq $0x688, %rsp            # imm = 0x688
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0xe0(%rsp), %rax
andl $0x0, (%rax)
andq $0x0, 0x8(%rax)
movq %rax, 0x10(%rax)
movq %rax, 0x18(%rax)
andq $0x0, 0x20(%rax)
leaq 0x68(%rsp), %rdi
movq 0x88(%rsp), %rsi
callq 0x4400
leaq 0x3e8(%rsp), %rdi
callq 0x94d2
movq (%rbx), %rsi
leaq 0x3e8(%rsp), %rdi
pushq $0x8
popq %rdx
callq 0x27e38
movq 0x3e8(%rsp), %rax
movq -0x18(%rax), %rax
cmpl $0x0, 0x408(%rsp,%rax)
sete %cl
movl %ecx, 0x44(%rsp)
je 0x254b3
movq 0x17b48(%rip), %rdi     # 0x3cfc8
leaq 0x46cf(%rip), %rsi      # 0x29b56
callq 0x4330
movq %rax, %rdi
movq %rbx, %rsi
callq 0x42e0
leaq 0x899b(%rip), %rsi      # 0x2de39
movq %rax, %rdi
callq 0x4330
movq %rax, %rdi
callq 0x41c0
jmp 0x25cfe
movq %r15, 0x90(%rsp)
leaq 0x8658(%rip), %rbx      # 0x2db1a
leaq 0x148(%rsp), %r12
leaq 0x108(%rsp), %r15
leaq 0x128(%rsp), %r13
cmpl $0x0, 0x408(%rsp,%rax)
jne 0x25cb4
movq %rsp, %r14
movq %r14, %rdi
movq %rbx, %rsi
movq %r12, %rdx
callq 0x4d3e
leaq 0x570(%rsp), %rdi
movq %r14, %rsi
callq 0x4090
cmpq $0x0, 0x8(%rsp)
je 0x25c9b
movq (%rsp), %rax
cmpb $0x23, (%rax)
je 0x25c9b
leaq 0x98(%rsp), %rdi
movq %rbx, %rsi
movq %r12, %rdx
callq 0x4d3e
movq %rsp, %rbx
movq %rbx, %rdi
leaq 0x85d7(%rip), %rsi      # 0x2db19
xorl %edx, %edx
callq 0x4600
movq %r12, %rdi
movq %rbx, %rsi
xorl %edx, %edx
movq %rax, %rcx
callq 0x4360
leaq 0x98(%rsp), %rbx
movq %rbx, %rdi
movq %r12, %rsi
callq 0x43c0
movq %r12, %rdi
callq 0x4638
movq %rbx, %rdi
leaq 0x8a64(%rip), %rsi      # 0x2dfe2
xorl %edx, %edx
callq 0x4600
movq %rax, %rbx
movq %rax, %r14
cmpq $-0x1, %rax
jne 0x25599
movq 0xa0(%rsp), %r14
leaq 0x58(%rsp), %rax
movq %rax, 0x48(%rsp)
andq $0x0, 0x50(%rsp)
movb $0x0, 0x58(%rsp)
movq %r12, %rdi
movq %rsp, %rsi
xorl %edx, %edx
pushq $0x3
popq %rcx
callq 0x4360
movq %r12, %rdi
leaq 0x887c(%rip), %rsi      # 0x2de44
callq 0x4110
testl %eax, %eax
je 0x2565b
leaq 0x20(%rsp), %rbp
movq %rbp, %rdi
movq %rsp, %rsi
xorl %edx, %edx
pushq $0x3
popq %rcx
callq 0x4360
movq %rbp, %rdi
leaq 0x8854(%rip), %rsi      # 0x2de48
callq 0x4110
testl %eax, %eax
je 0x25653
movq %r13, %rdi
movq %rsp, %rsi
xorl %edx, %edx
pushq $0x3
popq %rcx
callq 0x4360
movq %r13, %rdi
leaq 0x8835(%rip), %rsi      # 0x2de4c
callq 0x4110
movl %eax, %ebp
movq %r13, %rdi
callq 0x4638
leaq 0x20(%rsp), %rdi
callq 0x4638
movq %r12, %rdi
callq 0x4638
testl %ebp, %ebp
je 0x25663
movq %r12, %rdi
leaq 0x98(%rsp), %rsi
xorl %edx, %edx
movq %r14, %rcx
callq 0x4360
jmp 0x2567d
movq %rbp, %rdi
callq 0x4638
movq %r12, %rdi
callq 0x4638
addq $-0x3, %r14
movq %r12, %rdi
leaq 0x98(%rsp), %rsi
pushq $0x3
popq %rdx
movq %r14, %rcx
callq 0x4360
leaq 0x48(%rsp), %r14
movq %r14, %rdi
movq %r12, %rsi
callq 0x43c0
movq %r12, %rdi
callq 0x4638
leaq 0xd8(%rsp), %rdi
movq %r14, %rsi
callq 0x25f14
leaq 0xe0(%rsp), %rcx
cmpq %rcx, %rax
je 0x25780
leaq 0xd8(%rsp), %rdi
leaq 0x48(%rsp), %rsi
callq 0x21d44
movq (%rax), %rbx
movq %r12, %rdi
movq %rsp, %rsi
xorl %edx, %edx
pushq $0x3
popq %rcx
callq 0x4360
movq %r12, %rdi
leaq 0x875f(%rip), %rsi      # 0x2de44
callq 0x4110
testl %eax, %eax
je 0x25923
leaq 0x20(%rsp), %r14
movq %r14, %rdi
movq %rsp, %rsi
xorl %edx, %edx
pushq $0x3
popq %rcx
callq 0x4360
movq %r14, %rdi
leaq 0x8737(%rip), %rsi      # 0x2de48
callq 0x4110
testl %eax, %eax
je 0x2591b
movq %r13, %rdi
movq %rsp, %rsi
xorl %edx, %edx
pushq $0x3
popq %rcx
callq 0x4360
movq %r13, %rdi
leaq 0x8714(%rip), %rsi      # 0x2de4c
callq 0x4110
movl %eax, %ebp
movq %r13, %rdi
callq 0x4638
leaq 0x20(%rsp), %rdi
callq 0x4638
movq %r12, %rdi
callq 0x4638
testl %ebp, %ebp
je 0x2592b
addq $0x188, %rbx            # imm = 0x188
movq %rbx, %rdi
movq %rsp, %rsi
callq 0x42e0
movq %rax, %rdi
callq 0x41c0
jmp 0x25c7d
leaq 0x20(%rsp), %rdi
leaq 0x838e(%rip), %rsi      # 0x2db1a
movq %r12, %rdx
callq 0x4d3e
cmpq $-0x1, %rbx
je 0x2595e
movq %r15, %rdi
leaq 0x68(%rsp), %rsi
leaq 0x68f0(%rip), %rdx      # 0x2c09d
callq 0x95e2
leaq 0x20(%rsp), %rbx
movq %r13, %rdi
movq %r15, %rsi
leaq 0x48(%rsp), %rdx
callq 0x961a
movq %r12, %rdi
movq %r13, %rsi
leaq 0x6958(%rip), %rdx      # 0x2c12c
callq 0x5c38
movq %rbx, %rdi
movq %r12, %rsi
callq 0x43c0
movq %r12, %rdi
callq 0x4638
movq %r13, %rdi
callq 0x4638
movq %r15, %rdi
callq 0x4638
movq %r12, %rdi
callq 0x94d2
movq 0x20(%rsp), %rsi
movq %r12, %rdi
pushq $0x8
popq %rdx
callq 0x27e38
movq 0x148(%rsp), %rax
movq -0x18(%rax), %rax
cmpl $0x0, 0x168(%rsp,%rax)
jne 0x25adb
movq %r12, %rdi
callq 0x280e0
andq $0x0, 0x70(%rsp)
movq 0x68(%rsp), %rax
movb $0x0, (%rax)
leaq 0x68(%rsp), %rdi
pushq $0x6
popq %rsi
callq 0x25ec6
leaq 0xb8(%rsp), %r14
movq %r14, %rdi
leaq 0x68(%rsp), %rsi
leaq 0x6835(%rip), %rdx      # 0x2c09d
callq 0x95e2
movq %r15, %rdi
movq %r14, %rsi
leaq 0x48(%rsp), %rdx
callq 0x961a
movq %r13, %rdi
movq %r15, %rsi
leaq 0x68a2(%rip), %rdx      # 0x2c12c
callq 0x5c38
movq %rbx, %rdi
movq %r13, %rsi
callq 0x43c0
movq %r13, %rdi
callq 0x4638
movq %r15, %rdi
callq 0x4638
leaq 0xb8(%rsp), %rdi
callq 0x4638
movq 0x20(%rsp), %rsi
movq %r12, %rdi
pushq $0x8
popq %rdx
callq 0x27e38
movq 0x148(%rsp), %rax
movq -0x18(%rax), %rax
cmpl $0x0, 0x168(%rsp,%rax)
jne 0x25814
movq 0x176e0(%rip), %rdi     # 0x3cfc8
leaq 0x8561(%rip), %rsi      # 0x2de50
callq 0x4330
movq %rax, %rdi
movq %rbx, %rsi
callq 0x42e0
movq %rax, %rdi
leaq 0x855d(%rip), %rsi      # 0x2de66
callq 0x4330
movq %rax, %rdi
callq 0x41c0
jmp 0x25814
movq %r14, %rdi
callq 0x4638
movq %r12, %rdi
callq 0x4638
movq %r12, %rdi
movq %rsp, %rsi
pushq $0x3
popq %rdx
pushq $-0x1
popq %rcx
callq 0x4360
addq $0x188, %rbx            # imm = 0x188
movq %rbx, %rdi
movq %r12, %rsi
callq 0x42e0
movq %rax, %rdi
callq 0x41c0
movq %r12, %rdi
jmp 0x25c78
movq %r15, %rdi
leaq 0x68(%rsp), %rsi
leaq 0x6730(%rip), %rdx      # 0x2c09d
callq 0x95e2
leaq 0x20(%rsp), %rbx
movq %r13, %rdi
movq %r15, %rsi
leaq 0x48(%rsp), %rdx
callq 0x961a
movq %r12, %rdi
movq %r13, %rsi
leaq 0x6717(%rip), %rdx      # 0x2c0ab
callq 0x5c38
movq %rbx, %rdi
movq %r12, %rsi
callq 0x43c0
movq %r12, %rdi
callq 0x4638
movq %r13, %rdi
callq 0x4638
movq %r15, %rdi
callq 0x4638
movq %r12, %rdi
callq 0x94d2
movq 0x20(%rsp), %rsi
movq %r12, %rdi
pushq $0x8
popq %rdx
callq 0x27e38
movq 0x148(%rsp), %rax
movq -0x18(%rax), %rax
cmpl $0x0, 0x168(%rsp,%rax)
jne 0x25adb
movq %r12, %rdi
callq 0x280e0
andq $0x0, 0x70(%rsp)
movq 0x68(%rsp), %rax
movb $0x0, (%rax)
leaq 0x68(%rsp), %rdi
pushq $0x6
popq %rsi
callq 0x25ec6
leaq 0xb8(%rsp), %r14
movq %r14, %rdi
leaq 0x68(%rsp), %rsi
leaq 0x6675(%rip), %rdx      # 0x2c09d
callq 0x95e2
movq %r15, %rdi
movq %r14, %rsi
leaq 0x48(%rsp), %rdx
callq 0x961a
movq %r13, %rdi
movq %r15, %rsi
leaq 0x6661(%rip), %rdx      # 0x2c0ab
callq 0x5c38
movq %rbx, %rdi
movq %r13, %rsi
callq 0x43c0
movq %r13, %rdi
callq 0x4638
movq %r15, %rdi
callq 0x4638
leaq 0xb8(%rsp), %rdi
callq 0x4638
movq 0x20(%rsp), %rsi
movq %r12, %rdi
pushq $0x8
popq %rdx
callq 0x27e38
movq 0x148(%rsp), %rax
movq -0x18(%rax), %rax
cmpl $0x0, 0x168(%rsp,%rax)
jne 0x259d4
movq 0x17520(%rip), %rdi     # 0x3cfc8
leaq 0x83a1(%rip), %rsi      # 0x2de50
callq 0x4330
movq %rax, %rdi
movq %rbx, %rsi
callq 0x42e0
movq %rax, %rdi
leaq 0x839d(%rip), %rsi      # 0x2de66
callq 0x4330
movq %rax, %rdi
callq 0x41c0
jmp 0x259d4
movq %r12, %rdi
callq 0x96aa
movl $0x298, %edi            # imm = 0x298
callq 0x4340
movq %rax, %r14
movq 0x20(%rsp), %rsi
movq %rax, %rdi
pushq $0x10
popq %rdx
callq 0x21aa4
movq %r12, %rdi
leaq 0x48(%rsp), %rsi
callq 0x4400
movq %r14, 0x168(%rsp)
leaq 0xd8(%rsp), %rdi
movq %r12, %rsi
callq 0x22496
movq %r12, %rdi
callq 0x4638
movq 0x17494(%rip), %rdi     # 0x3cfc8
leaq 0x8344(%rip), %rsi      # 0x2de7f
callq 0x4330
movq %rax, %rdi
movq %rbx, %rsi
callq 0x42e0
movq %rax, %rdi
leaq 0x8340(%rip), %rsi      # 0x2de95
callq 0x4330
movq %rax, %rdi
callq 0x41c0
movq %r12, %rdi
movq %rsp, %rsi
xorl %edx, %edx
pushq $0x3
popq %rcx
callq 0x4360
movq %r12, %rdi
leaq 0x82c8(%rip), %rsi      # 0x2de44
callq 0x4110
testl %eax, %eax
je 0x25c12
movq %r13, %rdi
movq %rsp, %rsi
xorl %edx, %edx
pushq $0x3
popq %rcx
callq 0x4360
movq %r13, %rdi
leaq 0x82a5(%rip), %rsi      # 0x2de48
callq 0x4110
testl %eax, %eax
je 0x25c0a
movq %r15, %rdi
movq %rsp, %rsi
xorl %edx, %edx
pushq $0x3
popq %rcx
callq 0x4360
movq %r15, %rdi
leaq 0x8286(%rip), %rsi      # 0x2de4c
callq 0x4110
movl %eax, %ebx
movq %r15, %rdi
callq 0x4638
movq %r13, %rdi
callq 0x4638
movq %r12, %rdi
callq 0x4638
testl %ebx, %ebx
leaq 0x20(%rsp), %rbx
je 0x25c1a
addq $0x188, %r14            # imm = 0x188
movq %r14, %rdi
movq %rsp, %rsi
callq 0x42e0
movq %rax, %rdi
callq 0x41c0
jmp 0x25c4d
movq %r13, %rdi
callq 0x4638
movq %r12, %rdi
callq 0x4638
movq %r12, %rdi
movq %rsp, %rsi
pushq $0x3
popq %rdx
pushq $-0x1
popq %rcx
callq 0x4360
addq $0x188, %r14            # imm = 0x188
movq %r14, %rdi
movq %r12, %rsi
callq 0x42e0
movq %rax, %rdi
callq 0x41c0
movq %r12, %rdi
callq 0x4638
movq %r12, %rdi
leaq 0x48(%rsp), %rsi
movq %rbx, %rdx
callq 0xb400
movq 0x90(%rsp), %rdi
movq %r12, %rsi
callq 0xb4c2
movq %r12, %rdi
callq 0xb436
movq %rbx, %rdi
callq 0x4638
leaq 0x48(%rsp), %rdi
callq 0x4638
leaq 0x98(%rsp), %rdi
callq 0x4638
leaq 0x7e7f(%rip), %rbx      # 0x2db1a
movq %rsp, %rdi
callq 0x4638
movq 0x3e8(%rsp), %rax
movq -0x18(%rax), %rax
jmp 0x254da
leaq 0x3e8(%rsp), %rdi
callq 0x280e0
movq 0xf0(%rsp), %rbx
leaq 0xe0(%rsp), %rax
cmpq %rax, %rbx
je 0x25cec
movq 0x40(%rbx), %rdi
callq 0x280e0
movq %rbx, %rdi
callq 0x4240
movq %rax, %rbx
jmp 0x25cc9
leaq 0x68(%rsp), %rsi
movq 0x88(%rsp), %rdi
callq 0x41e0
leaq 0x3e8(%rsp), %rdi
callq 0x96aa
leaq 0x68(%rsp), %rdi
callq 0x4638
leaq 0xd8(%rsp), %rdi
callq 0x22432
movl 0x44(%rsp), %eax
jmp 0x253fb
jmp 0x25e2e
jmp 0x25d62
jmp 0x25e22
jmp 0x25e22
jmp 0x25d5d
jmp 0x25e61
movq %rax, %rbx
leaq 0x128(%rsp), %rdi
callq 0x4638
jmp 0x25dee
jmp 0x25deb
movq %rax, %rbx
jmp 0x25d72
movq %rax, %rbx
leaq 0x128(%rsp), %rdi
callq 0x4638
leaq 0x108(%rsp), %rdi
jmp 0x25df6
jmp 0x25e22
jmp 0x25e61
jmp 0x25e22
jmp 0x25dd8
jmp 0x25e16
movq %rax, %rbx
jmp 0x25ea7
movq %rax, %rbx
jmp 0x25eb1
jmp 0x25e22
jmp 0x25e22
movq %rax, %rbx
movl $0x298, %esi            # imm = 0x298
movq %r14, %rdi
callq 0x4350
jmp 0x25e71
jmp 0x25e22
jmp 0x25deb
movq %rax, %rbx
leaq 0x148(%rsp), %rdi
callq 0xb436
jmp 0x25e71
jmp 0x25e22
jmp 0x25e16
movq %rax, %rbx
leaq 0x20(%rsp), %rdi
callq 0x4638
jmp 0x25e08
jmp 0x25e05
jmp 0x25e16
movq %rax, %rbx
leaq 0x148(%rsp), %rdi
callq 0x4638
jmp 0x25e71
jmp 0x25e16
jmp 0x25e05
jmp 0x25e16
jmp 0x25e16
movq %rax, %rbx
leaq 0x148(%rsp), %rdi
jmp 0x25e76
jmp 0x25e16
jmp 0x25e29
movq %rax, %rbx
jmp 0x25e7b
movq %rax, %rbx
jmp 0x25e85
jmp 0x25e2e
movq %rax, %rbx
jmp 0x25e71
jmp 0x25e2e
movq %rax, %rbx
jmp 0x25e92
movq %rax, %rbx
jmp 0x25e9a
jmp 0x25e40
jmp 0x25e39
jmp 0x25e61
movq %rax, %rbx
jmp 0x25e50
jmp 0x25e61
movq %rax, %rbx
leaq 0x108(%rsp), %rdi
callq 0x4638
leaq 0xb8(%rsp), %rdi
callq 0x4638
jmp 0x25e64
jmp 0x25e61
movq %rax, %rbx
leaq 0x148(%rsp), %rdi
callq 0x96aa
leaq 0x20(%rsp), %rdi
callq 0x4638
leaq 0x48(%rsp), %rdi
callq 0x4638
leaq 0x98(%rsp), %rdi
callq 0x4638
movq %rsp, %rdi
callq 0x4638
leaq 0x3e8(%rsp), %rdi
callq 0x96aa
leaq 0x68(%rsp), %rdi
callq 0x4638
leaq 0xd8(%rsp), %rdi
callq 0x22432
movq %rbx, %rdi
callq 0x45a0