// File: /workspace/github_cpp_makefile_star2_O3/readmapping[P]alfalfa/src/performanceUtils.cpp
// Function: checkWgsim(samCheckOptions_t&)
void checkWgsim(samCheckOptions_t & opt){
    //initialize fields and data for calculating edit distance
    string ref;
    vector<string> refdescr;
    vector<long> startpos;
    load_fasta(opt.refString, ref, refdescr, startpos);
    //should provide sorted query file to count query and check missing queries
    if(opt.print)
        cerr << "Warning current version does not take into account unmapped reads." << endl;
    //fields: input
    ifstream queryFile(opt.querySam.c_str());
    string queryLine = "";
    if(queryFile.good())
        getlijn2(queryFile,queryLine);
    //fields: output
    long readcnt = 0;
    size_t rangeCount = opt.correctRange.size();
    size_t qualValCount = opt.qualityValues.size();
    oracleLine_t ** results = new oracleLine_t * [rangeCount];
    for(size_t i = 0; i < rangeCount; i++){
        results[i] = new oracleLine_t[qualValCount+2];
    }

    //init results
    for(size_t i=0; i<rangeCount; i++)
        for(size_t j=0; j<qualValCount+2; j++)
            results[i][j].init();
    
    //iterate over both SORTED sam files simultaneously
    cerr << "summary: checking accuracy of SAM file for reads produced by wgsim" << endl;
    //print header of SAM file
    cerr << "header of SAM file: " << endl;
    while(queryFile.good() && !queryLine.empty() && queryLine[0]=='@'){
        cerr << queryLine << endl;
        getlijn2(queryFile,queryLine);
    }
    cerr << endl;
    cerr << "the ranges for which an alignment is considered valid are: " << printVector(opt.correctRange) << endl;
    cerr << "extra lines containing only alignments with minimal quality values of: " << printVector(opt.qualityValues) << endl;    
    cerr << "checking accuracy of alignments: ..." << endl;
    //if at least one record can be found
    string prevQname = "";
    string qname = "";
    int curAln=0;
    char delimeter = '\t';
    if(opt.print)
        cerr << "reads that failed to align correctly: " << endl;
    if(queryFile.good() && !queryLine.empty()){
        do{
            //read in all fields for this line
            int tabPos = 0;
            //qname
            qname = nextField(queryLine, delimeter, tabPos);
            if(qname.length() > 2 && qname[qname.length()-2]=='/')
                qname.erase(qname.length()-2);
            int namePos=qname.size()-1;
            previousField(qname, '_', namePos);//counter
            int revEdit = atoi(previousField(qname, ':', namePos).c_str());
            revEdit += atoi(previousField(qname, ':', namePos).c_str());
            revEdit += atoi(previousField(qname, '_', namePos).c_str());
            int fwdEdit = atoi(previousField(qname, ':', namePos).c_str());
            fwdEdit += atoi(previousField(qname, ':', namePos).c_str());
            fwdEdit += atoi(previousField(qname, '_', namePos).c_str());
            long revPos = atoi(previousField(qname, '_', namePos).c_str());
            long fwdPos = atoi(previousField(qname, '_', namePos).c_str());
            string realchrom = qname.substr(0, namePos+1);
            //flag
            bitset<11> flag = bitset<11>((ulong) atoi(nextField(queryLine, delimeter, tabPos).c_str()));
            //rname
            string chrom = nextField(queryLine, delimeter, tabPos);
            //pos
            long leftpos = atoi(nextField(queryLine, delimeter, tabPos).c_str());
            long rightpos = leftpos;
            //mapq
            int mapq = atoi(nextField(queryLine, delimeter, tabPos).c_str());
            //CIGAR
            string cigar = nextField(queryLine, delimeter, tabPos);
            //determine left and right pos using cigar
            int cigarPos = 0;
            int cigarlength = cigar.size();
            while(cigarPos < cigarlength){
                int beginPos = cigarPos;
                while(cigar[cigarPos] >= 48 && cigar[cigarPos] <= 57)//integer
                    cigarPos++;
                //now cigar[cigarPos] is character
                if(cigar[cigarPos] == 'M' || cigar[cigarPos] == 'N' || cigar[cigarPos] == 'D')
                    rightpos += atoi(cigar.substr(beginPos,cigarPos-beginPos).c_str());
                cigarPos++;
            }
            rightpos--;
            //correct left and right pos for clipping
            long leftpos0 = leftpos;
            long rightpos0 = rightpos;
            cigarPos = 0;
            while(cigar[cigarPos] >= 48 && cigar[cigarPos] <= 57)//integer
                cigarPos++;
                //now cigar[cigarPos] is character
            if(cigar[cigarPos] == 'S' || cigar[cigarPos] == 'H'){
                leftpos -= atoi(cigar.substr(0,cigarPos).c_str());
                rightpos0 += atoi(cigar.substr(0,cigarPos).c_str());
            }
            if(cigar[cigar.size()-1] == 'S' || cigar[cigar.size()-1] == 'H'){
                cigarPos = cigar.size()-2;
                while(cigarPos >= 0 && cigar[cigarPos] >= 48 && cigar[cigarPos] <= 57)//integer
                    cigarPos--;
                rightpos += atoi(cigar.substr(cigarPos+1,cigar.size()-1-cigarPos).c_str());
                leftpos0 -= atoi(cigar.substr(cigarPos+1,cigar.size()-1-cigarPos).c_str());
            }
            //rnext
            nextField(queryLine, delimeter, tabPos);
            //pnext
            nextField(queryLine, delimeter, tabPos);
            //edit distance NM tag
            int edit = 0;
            //skip fields to make sure 
            tabPos = queryLine.find(delimeter,tabPos)+1;
            tabPos = queryLine.find(delimeter,tabPos)+1;
            tabPos = queryLine.find(delimeter,tabPos)+1;
            //now passed qual
            string editTag = opt.qtag+":i:";
            int NMpos = queryLine.find(editTag,tabPos);
            if(NMpos == -1 && !flag.test(2)){
                edit = calculatedDPScore(ref, refdescr, startpos, queryLine);
            }
            else if(NMpos>=tabPos){
                tabPos = queryLine.find(delimeter,NMpos);
                if(tabPos == -1)
                    tabPos = queryLine.length();
                edit = atoi(queryLine.substr(NMpos+5,tabPos-NMpos-5).c_str());
            }
            //if new query, finish previous
            if(prevQname != "" && prevQname.compare(qname) != 0){
                //sumarize for read
                for(size_t j=0; j < rangeCount; j++){
                    if(curAln <= 2)
                        results[j][1].addAlignment(results[j][0].tempReadResult);
                    if(opt.print && results[j][0].tempReadResult==0)
                        cerr << prevQname << endl;
                    results[j][0].finishRead();
                    results[j][1].finishRead();
                    for(size_t k=0; k < qualValCount; k++)
                        results[j][2+k].finishRead();
                }
                curAln=0;
                readcnt++;//update readcnt
            }
            prevQname = qname;
            //add alignment
            if(!flag.test(2)){
                curAln++;
                for(size_t j=0; j < rangeCount; j++){
                    //decide if current alignment is a match
                    int match = 0;
                    if(!flag.test(4)){//fwd read
                        if(realchrom.compare(chrom)==0 && 
                                    (abs((int)(fwdPos-leftpos)) <= opt.correctRange[j] || abs((int)(fwdPos-leftpos0)) <= opt.correctRange[j])){
                            match = 2;
                        }
                        else if(edit <= fwdEdit)
                            match = 1;
                    }
                    else{//reverse read
                        if(realchrom.compare(chrom)==0 && 
                                    (abs((int)(revPos-rightpos)) <= opt.correctRange[j] || abs((int)(revPos-rightpos0)) <= opt.correctRange[j])){
                            match = 2;
                        }
                        else if(edit <= revEdit)
                            match = 1;
                    }
                    //all
                    results[j][0].addAlignment(match);
                    //quality values
                    for(size_t k=0; k < qualValCount; k++)
                        if(mapq >= opt.qualityValues[k])
                            results[j][2+k].addAlignment(match);
                }
            }
            //read next line
            getlijn2(queryFile, queryLine);
        } while(queryFile.good() && !queryLine.empty());
        //if new query, finish previous
        if(prevQname != ""){
            //sumarize for read
            for(size_t j=0; j < rangeCount; j++){
                if(opt.print && results[j][0].tempReadResult==0)
                    cerr << prevQname << endl;
                results[j][0].finishRead();
                results[j][1].finishRead();
                for(size_t k=0; k < qualValCount; k++)
                    results[j][2+k].finishRead();
            }
            readcnt++;//update readcnt
        }
    }
    cerr << "checking accuracy of alignments: done" << endl;
    queryFile.close();
    cerr << endl;
    cerr << "printing results" << endl;
    cerr << "Warning, these results only make sense if the SAM file is sorted according to \
    query name and if the edit distance field is filled correctly." << endl;
    if(!opt.outputFile.empty()){
        ofstream outfile ( opt.outputFile.c_str() );
        outfile << "##ALFALFA check alignment accuracy using an oracle file for simulated reads" << endl;
        outfile << "##" << endl;
        outfile << "##Warning, these results only make sense if the SAM file is sorted according to \
        query name and if the edit distance field is filled correctly." << endl;
        outfile << "##" << endl;
        outfile << "##SAM file containing alignments: " << opt.querySam << endl;
        outfile << "##" << endl;
        outfile << "##An alignment is considered correct if it falls within a certain range from the simulated origin" << endl;
        outfile << "##The ranges that are considered are: " << printVector(opt.correctRange) << endl;
        outfile << "##" << endl;
        outfile << "##Results will be presented for all alignments in the file, unique alignments and for the \
        fraction of reads for which the mapping quality is at least: " << printVector(opt.qualityValues)  << endl;
        outfile << "##" << endl;
        outfile << "##The first 6 columns represent number and percentage of alignments that are correct, ok \
        (not close to origin/not paired correctly, but with a smaller or equal edit distance) and incorrect alignments." << endl;
        outfile << "##The second 6 columns represent these numbers and percentages for the reads. A read is considered correctly mapped\
        if at least one correct alignment has been found (and likewise for ok reads)." << endl;
        outfile << "##" << endl;
        outfile << "##" << endl;
        outfile << "##Results" << endl;
        outfile << "##" << endl;
        outfile << "##Number of reads: " << readcnt << endl;
        outfile << "##Reads are paired?: " << "true" << endl;
        outfile << "##" << endl;
        for(size_t i=0; i < rangeCount; i++){
            outfile << "##Results for allowed range of " << opt.correctRange[i] << endl;
            outfile << "#\t\t\t alignments\t\t\t\t\t\t reads" << endl;
            outfile << "#resultType\t num_correct\t percent_correct\t num_ok\t percent_ok\t /"
                    "num_incorrect\t percent_incorrect\t num_correct\t percent_correct\t /"
                    "num_ok\t percent_ok\t num_incorrect\t percent_incorrect" << endl;
            outfile << "all\t " << results[i][0].printLine(readcnt);
            outfile << "unique aligned\t " << results[i][1].printLine(readcnt);
            for(size_t j=0; j< qualValCount; j++){
                outfile << "min mapq of " << opt.qualityValues[j] << "\t " << results[i][2+j].printLine(readcnt);
            }
            outfile << "##" << endl;
            outfile << "##" << endl;
        }
        outfile.close();
    }
    else{
        cout << "##ALFALFA check alignment accuracy using an oracle file for simulated reads" << endl;
        cout << "##" << endl;
        cout << "##Warning, these results only make sense if the SAM file is sorted according to \
        query name and if the edit distance field is filled correctly." << endl;
        cout << "##" << endl;
        cout << "##SAM file containing alignments: " << opt.querySam << endl;
        cout << "##" << endl;
        cout << "##An alignment is considered correct if it falls within a certain range from the simulated origin" << endl;
        cout << "##The ranges that are considered are: " << printVector(opt.correctRange) << endl;
        cout << "##" << endl;
        cout << "##Results will be presented for all alignments in the file, unique alignments and for the \
        fraction of reads for which the mapping quality is at least: " << printVector(opt.qualityValues)  << endl;
        cout << "##" << endl;
        cout << "##The first 6 columns represent number and percentage of alignments that are correct, ok \
        (not close to origin/not paired correctly, but with a smaller or equal edit distance) and incorrect alignments." << endl;
        cout << "##The second 6 columns represent these numbers and percentages for the reads. A read is considered correctly mapped\
        if at least one correct alignment has been found (and likewise for ok reads)." << endl;
        cout << "##" << endl;
        cout << "##" << endl;
        cout << "##Results" << endl;
        cout << "##" << endl;
        cout << "##Number of reads: " << readcnt << endl;
        cout << "##Reads are paired?: " << "true" << endl;
        cout << "##" << endl;
        for(size_t i=0; i < rangeCount; i++){
            cout << "##Results for allowed range of " << opt.correctRange[i] << endl;
            cout << "#\t\t\t alignments\t\t\t\t\t\t reads" << endl;
            cout << "#resultType\t num_correct\t percent_correct\t num_ok\t percent_ok\t /"
                    "num_incorrect\t percent_incorrect\t num_correct\t percent_correct\t /"
                    "num_ok\t percent_ok\t num_incorrect\t percent_incorrect" << endl;
            cout << "all\t " << results[i][0].printLine(readcnt);
            cout << "unique aligned\t " << results[i][1].printLine(readcnt);
            for(size_t j=0; j< qualValCount; j++){
                cout << "min mapq of " << opt.qualityValues[j] << "\t " << results[i][2+j].printLine(readcnt);
            }
            cout << "##" << endl;
            cout << "##" << endl;
        }        
    }
    for(size_t i = 0; i < rangeCount; i++)
        delete[] results[ i ];
    delete[] results;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x718, %rsp            # imm = 0x718
movq %rdi, %r15
leaq 0x3b0(%rsp), %rcx
movq %rcx, -0x10(%rcx)
xorl %eax, %eax
movq %rax, -0x8(%rcx)
movb $0x0, (%rcx)
movq %rax, 0x3d0(%rsp)
xorps %xmm0, %xmm0
movaps %xmm0, 0x3c0(%rsp)
movq %rax, 0x190(%rsp)
movaps %xmm0, 0x180(%rsp)
leaq 0x480(%rsp), %r14
movq %r14, -0x10(%r14)
movq 0x48(%rdi), %rsi
movq 0x50(%rdi), %rdx
addq %rsi, %rdx
leaq 0x470(%rsp), %rdi
callq 0xc1d8
leaq 0x470(%rsp), %rdi
leaq 0x3a0(%rsp), %rsi
leaq 0x3c0(%rsp), %rdx
leaq 0x180(%rsp), %rcx
callq 0x1970e
movq 0x470(%rsp), %rdi
cmpq %r14, %rdi
je 0x38b54
movq 0x480(%rsp), %rsi
incq %rsi
callq 0x72f0
cmpb $0x1, 0x69(%r15)
jne 0x38ba1
movq 0x1b486(%rip), %rbx     # 0x53fe8
leaq 0xd96c(%rip), %rsi      # 0x464d5
movl $0x42, %edx
movq %rbx, %rdi
callq 0x7340
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
movq 0x1b454(%rip), %rdi     # 0x53fe8
callq 0x7040
movq %rax, %rdi
callq 0x71d0
movq 0x70(%r15), %rsi
leaq 0x510(%rsp), %rdi
movl $0x8, %edx
callq 0x7640
leaq 0x68(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x7e57(%rip), %rdx      # 0x40a1e
leaq 0x58(%rsp), %rdi
movq %rdx, %rsi
callq 0xc2d0
movq 0x510(%rsp), %rax
movq -0x18(%rax), %rax
cmpl $0x0, 0x530(%rsp,%rax)
jne 0x38bfc
leaq 0x510(%rsp), %rdi
leaq 0x58(%rsp), %rsi
callq 0x349dc
movq 0xc8(%r15), %rax
movq 0xc0(%r15), %rcx
movq %rax, 0x80(%rsp)
movq %rcx, 0x78(%rsp)
subq %rcx, %rax
movq %rax, %r13
sarq $0x2, %r13
movq 0xa8(%r15), %rcx
movq %rcx, 0xd8(%rsp)
movq %r15, 0xb0(%rsp)
movq 0xb0(%r15), %rcx
movq %rcx, 0xd0(%rsp)
movq %r13, %rcx
shrq $0x3d, %rcx
addq %rax, %rax
xorl %edi, %edi
negq %rcx
sbbq %rdi, %rdi
orq %rax, %rdi
callq 0x7030
movq %rax, 0x50(%rsp)
movq 0xd0(%rsp), %rax
subq 0xd8(%rsp), %rax
sarq $0x2, %rax
movq %rax, 0x130(%rsp)
movq 0x78(%rsp), %rax
cmpq %rax, 0x80(%rsp)
movq %r13, 0x128(%rsp)
je 0x38d75
movq 0x130(%rsp), %rdx
leaq 0x2(%rdx), %r14
movq %r14, %rax
shrq $0x3a, %rax
movq %r14, %rcx
shlq $0x6, %rcx
xorl %r15d, %r15d
negq %rax
movl $0x0, %ebx
sbbq %rbx, %rbx
orq %rcx, %rbx
cmpq $0x1, %r13
movq %r13, %r12
adcq $0x0, %r12
movq %rdx, %r13
shlq $0x6, %r13
subq $-0x80, %r13
movq %rbx, %rdi
callq 0x7030
testq %r14, %r14
xorps %xmm0, %xmm0
je 0x38d0c
xorl %ecx, %ecx
movups %xmm0, 0x2c(%rax,%rcx)
movups %xmm0, 0x20(%rax,%rcx)
movups %xmm0, 0x10(%rax,%rcx)
movups %xmm0, (%rax,%rcx)
addq $0x40, %rcx
cmpq %rcx, %r13
jne 0x38cf0
movq 0x50(%rsp), %rcx
movq %rax, (%rcx,%r15,8)
incq %r15
cmpq %r12, %r15
jne 0x38cde
movq 0x78(%rsp), %rax
cmpq %rax, 0x80(%rsp)
movq 0x128(%rsp), %r13
je 0x38d75
cmpq $0x1, %r13
movq %r13, %rax
adcq $0x0, %rax
xorl %ecx, %ecx
xorps %xmm0, %xmm0
testq %r14, %r14
je 0x38d6d
movq 0x50(%rsp), %rdx
movq (%rdx,%rcx,8), %rdx
movq %r14, %rsi
movups %xmm0, 0x2c(%rdx)
movups %xmm0, 0x20(%rdx)
movups %xmm0, 0x10(%rdx)
movups %xmm0, (%rdx)
addq $0x40, %rdx
decq %rsi
jne 0x38d55
incq %rcx
cmpq %rax, %rcx
jne 0x38d44
movq 0x1b26c(%rip), %rbx     # 0x53fe8
leaq 0xd795(%rip), %rsi      # 0x46518
movl $0x42, %edx
movq %rbx, %rdi
callq 0x7340
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
movq 0x1b23a(%rip), %rdi     # 0x53fe8
callq 0x7040
movq %rax, %rdi
callq 0x71d0
movq 0x1b226(%rip), %rbx     # 0x53fe8
leaq 0xd792(%rip), %rsi      # 0x4655b
movl $0x14, %edx
movq %rbx, %rdi
callq 0x7340
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
movq 0x1b1f4(%rip), %rdi     # 0x53fe8
callq 0x7040
movq %rax, %rdi
callq 0x71d0
movq 0xb0(%rsp), %rcx
leaq 0xc0(%rcx), %rax
movq %rax, 0xc8(%rsp)
leaq 0xa8(%rcx), %rax
movq %rax, 0xe0(%rsp)
movq 0x1b1ba(%rip), %rbx     # 0x53fe8
leaq 0x510(%rsp), %r14
leaq 0x58(%rsp), %r15
movq 0x510(%rsp), %rax
movq -0x18(%rax), %rax
cmpl $0x0, 0x530(%rsp,%rax)
jne 0x38ea4
movq 0x60(%rsp), %rdx
testq %rdx, %rdx
je 0x38ea4
movq 0x58(%rsp), %rsi
cmpb $0x40, (%rsi)
jne 0x38ea4
movq %rbx, %rdi
callq 0x7340
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
movq %r12, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x71d0
movq %r14, %rdi
movq %r15, %rsi
callq 0x349dc
jmp 0x38e3b
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
movq 0x1b126(%rip), %rdi     # 0x53fe8
callq 0x7040
movq %rax, %rdi
callq 0x71d0
movq 0x1b112(%rip), %rdi     # 0x53fe8
leaq 0xcf0e(%rip), %rsi      # 0x45deb
movl $0x3b, %edx
callq 0x7340
leaq 0x458(%rsp), %rdi
movq 0xc8(%rsp), %rsi
callq 0x3dc2a
leaq 0x1a0(%rsp), %rdi
leaq 0x458(%rsp), %rsi
callq 0x3db3b
movq 0x1a0(%rsp), %rsi
movq 0x1a8(%rsp), %rdx
movq 0x1b0c0(%rip), %rdi     # 0x53fe8
callq 0x7340
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x71d0
leaq 0x1b0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x38f78
movq 0x1b0(%rsp), %rsi
incq %rsi
callq 0x72f0
movq 0x458(%rsp), %rdi
testq %rdi, %rdi
je 0x38f95
movq 0x468(%rsp), %rsi
subq %rdi, %rsi
callq 0x72f0
movq 0x1b04c(%rip), %rdi     # 0x53fe8
leaq 0xce84(%rip), %rsi      # 0x45e27
movl $0x47, %edx
callq 0x7340
leaq 0x440(%rsp), %rdi
movq 0xe0(%rsp), %rsi
callq 0x3dc2a
leaq 0x1a0(%rsp), %rdi
leaq 0x440(%rsp), %rsi
callq 0x3db3b
movq 0x1a0(%rsp), %rsi
movq 0x1a8(%rsp), %rdx
movq 0x1affa(%rip), %rdi     # 0x53fe8
callq 0x7340
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x71d0
movq 0x1a0(%rsp), %rdi
leaq 0x1b0(%rsp), %rax
cmpq %rax, %rdi
je 0x39042
movq 0x1b0(%rsp), %rsi
incq %rsi
callq 0x72f0
movq 0x440(%rsp), %rdi
testq %rdi, %rdi
je 0x3905f
movq 0x450(%rsp), %rsi
subq %rdi, %rsi
callq 0x72f0
movq 0x1af82(%rip), %rbx     # 0x53fe8
leaq 0xce02(%rip), %rsi      # 0x45e6f
movl $0x24, %edx
movq %rbx, %rdi
callq 0x7340
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
movq 0x1af50(%rip), %rdi     # 0x53fe8
callq 0x7040
movq %rax, %rdi
callq 0x71d0
leaq 0x158(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x7966(%rip), %rdx      # 0x40a1e
leaq 0x148(%rsp), %rdi
movq %rdx, %rsi
callq 0xc2d0
leaq 0x118(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x7943(%rip), %rdx      # 0x40a1e
leaq 0x108(%rsp), %rdi
movq %rdx, %rsi
callq 0xc2d0
movq 0xb0(%rsp), %rax
cmpb $0x1, 0x69(%rax)
jne 0x3913f
movq 0x1aee8(%rip), %rbx     # 0x53fe8
leaq 0xd469(%rip), %rsi      # 0x46570
movl $0x26, %edx
movq %rbx, %rdi
callq 0x7340
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
movq 0x1aeb6(%rip), %rdi     # 0x53fe8
callq 0x7040
movq %rax, %rdi
callq 0x71d0
movq 0x510(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x0, 0x38(%rsp)
cmpl $0x0, 0x530(%rsp,%rax)
jne 0x3a286
cmpq $0x0, 0x60(%rsp)
je 0x3a286
movq 0x130(%rsp), %rcx
cmpq $0x1, %rcx
movq %r13, %rax
movq %rcx, %r13
adcq $0x0, %r13
cmpq $0x1, %rax
adcq $0x0, %rax
movq %rax, 0x10(%rsp)
leaq 0x58(%rsp), %rbx
leaq 0x1a0(%rsp), %r12
movl $0x20, %ebp
movl $0x0, 0xc4(%rsp)
movq $0x0, 0x38(%rsp)
movq %rbx, %rdi
movl $0x9, %esi
xorl %edx, %edx
callq 0x7410
movq %rbx, %rsi
movq %rax, %rbx
movslq %ebx, %rcx
movq %r12, %rdi
xorl %edx, %edx
callq 0x7310
leaq 0x108(%rsp), %rdi
movq %r12, %rsi
callq 0x73c0
movq 0x1a0(%rsp), %rdi
leaq 0x1b0(%rsp), %rax
cmpq %rax, %rdi
je 0x3920e
movq 0x1b0(%rsp), %rsi
incq %rsi
callq 0x72f0
movq 0x110(%rsp), %rax
cmpq $0x3, %rax
jb 0x39243
movq 0x108(%rsp), %rcx
cmpb $0x2f, -0x2(%rcx,%rax)
jne 0x39243
addq $-0x2, %rax
movq %rax, 0x110(%rsp)
movb $0x0, (%rcx,%rax)
movq 0x110(%rsp), %rax
decl %eax
movl %eax, 0x8(%rsp)
leaq 0x4f0(%rsp), %rdi
leaq 0x108(%rsp), %rsi
movl $0x5f, %edx
leaq 0x8(%rsp), %rcx
callq 0x3498c
movq 0x4f0(%rsp), %rdi
leaq 0x500(%rsp), %rax
cmpq %rax, %rdi
je 0x3928d
movq 0x500(%rsp), %rsi
incq %rsi
callq 0x72f0
movq %r12, %rdi
leaq 0x108(%rsp), %rsi
movl $0x3a, %edx
leaq 0x8(%rsp), %rcx
callq 0x3498c
movq 0x1a0(%rsp), %r14
movq %r14, %rdi
callq 0x7520
movl %eax, 0x138(%rsp)
leaq 0x1b0(%rsp), %rax
cmpq %rax, %r14
je 0x392de
movq 0x1b0(%rsp), %rsi
incq %rsi
movq %r14, %rdi
callq 0x72f0
movq %r12, %rdi
leaq 0x108(%rsp), %rsi
movl $0x3a, %edx
leaq 0x8(%rsp), %rcx
callq 0x3498c
movq 0x1a0(%rsp), %r14
movq %r14, %rdi
callq 0x7520
movl %eax, 0xc0(%rsp)
leaq 0x1b0(%rsp), %rax
cmpq %rax, %r14
je 0x3932f
movq 0x1b0(%rsp), %rsi
incq %rsi
movq %r14, %rdi
callq 0x72f0
movq %r12, %rdi
leaq 0x108(%rsp), %rsi
movl $0x5f, %edx
leaq 0x8(%rsp), %rcx
callq 0x3498c
movq 0x1a0(%rsp), %r14
movq %r14, %rdi
callq 0x7520
movl %eax, 0xbc(%rsp)
leaq 0x1b0(%rsp), %rax
cmpq %rax, %r14
je 0x39380
movq 0x1b0(%rsp), %rsi
incq %rsi
movq %r14, %rdi
callq 0x72f0
movq %r12, %rdi
leaq 0x108(%rsp), %rsi
movl $0x3a, %edx
leaq 0x8(%rsp), %rcx
callq 0x3498c
movq 0x1a0(%rsp), %r14
movq %r14, %rdi
callq 0x7520
movl %eax, 0x17c(%rsp)
leaq 0x1b0(%rsp), %rax
cmpq %rax, %r14
je 0x393d1
movq 0x1b0(%rsp), %rsi
incq %rsi
movq %r14, %rdi
callq 0x72f0
movq %r12, %rdi
leaq 0x108(%rsp), %rsi
movl $0x3a, %edx
leaq 0x8(%rsp), %rcx
callq 0x3498c
movq 0x1a0(%rsp), %r14
movq %r14, %rdi
callq 0x7520
movl %eax, 0x178(%rsp)
leaq 0x1b0(%rsp), %rax
cmpq %rax, %r14
je 0x39422
movq 0x1b0(%rsp), %rsi
incq %rsi
movq %r14, %rdi
callq 0x72f0
movq %r12, %rdi
leaq 0x108(%rsp), %rsi
movl $0x5f, %edx
leaq 0x8(%rsp), %rcx
callq 0x3498c
movq 0x1a0(%rsp), %r14
movq %r14, %rdi
callq 0x7520
movl %eax, 0x174(%rsp)
leaq 0x1b0(%rsp), %rax
cmpq %rax, %r14
je 0x39473
movq 0x1b0(%rsp), %rsi
incq %rsi
movq %r14, %rdi
callq 0x72f0
movq %r12, %rdi
leaq 0x108(%rsp), %rsi
movl $0x5f, %edx
leaq 0x8(%rsp), %rcx
callq 0x3498c
movq 0x1a0(%rsp), %r14
movq %r14, %rdi
callq 0x7520
movl %eax, 0x170(%rsp)
leaq 0x1b0(%rsp), %rax
cmpq %rax, %r14
je 0x394c4
movq 0x1b0(%rsp), %rsi
incq %rsi
movq %r14, %rdi
callq 0x72f0
movq %r12, %rdi
leaq 0x108(%rsp), %rsi
movl $0x5f, %edx
leaq 0x8(%rsp), %rcx
callq 0x3498c
movq 0x1a0(%rsp), %r14
movq %r14, %rdi
callq 0x7520
movl %eax, 0x16c(%rsp)
leaq 0x1b0(%rsp), %rax
cmpq %rax, %r14
je 0x39515
movq 0x1b0(%rsp), %rsi
incq %rsi
movq %r14, %rdi
callq 0x72f0
movslq 0x8(%rsp), %rcx
incq %rcx
movq %r12, %rdi
leaq 0x108(%rsp), %rsi
xorl %edx, %edx
callq 0x7310
incl %ebx
movslq %ebx, %r14
leaq 0x58(%rsp), %r15
movq %r15, %rdi
movl $0x9, %esi
movq %r14, %rdx
callq 0x7410
movq %rax, %rbx
subl %r14d, %eax
movslq %eax, %rcx
leaq 0x18(%rsp), %r12
movq %r12, %rdi
movq %r15, %rsi
movq %r14, %rdx
callq 0x7310
movq 0x18(%rsp), %r14
movq %r14, %rdi
callq 0x7520
movl %eax, 0x140(%rsp)
leaq 0x28(%rsp), %rax
cmpq %rax, %r14
je 0x39593
movq 0x28(%rsp), %rsi
incq %rsi
movq %r14, %rdi
callq 0x72f0
incl %ebx
movslq %ebx, %r14
leaq 0x58(%rsp), %r15
movq %r15, %rdi
movl $0x9, %esi
movq %r14, %rdx
callq 0x7410
movq %rax, %rbx
subl %r14d, %eax
movslq %eax, %rcx
movq %r12, %rdi
movq %r15, %rsi
movq %r14, %rdx
callq 0x7310
incl %ebx
movslq %ebx, %r14
movq %r15, %rdi
movl $0x9, %esi
movq %r14, %rdx
callq 0x7410
movq %rax, %rbx
subl %r14d, %eax
movslq %eax, %rcx
leaq 0xe8(%rsp), %rdi
movq %r15, %rsi
movq %r14, %rdx
callq 0x7310
movq 0xe8(%rsp), %r14
movq %r14, %rdi
callq 0x7520
movl %eax, 0x40(%rsp)
leaq 0xf8(%rsp), %rax
cmpq %rax, %r14
je 0x39629
movq 0xf8(%rsp), %rsi
incq %rsi
movq %r14, %rdi
callq 0x72f0
incl %ebx
movslq %ebx, %r14
leaq 0x58(%rsp), %r15
movq %r15, %rdi
movl $0x9, %esi
movq %r14, %rdx
callq 0x7410
movq %rax, %rbx
subl %r14d, %eax
movslq %eax, %rcx
leaq 0xe8(%rsp), %rdi
movq %r15, %rsi
movq %r14, %rdx
callq 0x7310
movq 0xe8(%rsp), %r15
movq %r15, %rdi
callq 0x7520
movl %eax, %r14d
leaq 0xf8(%rsp), %rax
cmpq %rax, %r15
je 0x39692
movq 0xf8(%rsp), %rsi
incq %rsi
movq %r15, %rdi
callq 0x72f0
incl %ebx
movslq %ebx, %r15
leaq 0x58(%rsp), %rbx
movq %rbx, %rdi
movl $0x9, %esi
movq %r15, %rdx
callq 0x7410
movq %rax, 0x88(%rsp)
subl %r15d, %eax
movslq %eax, %rcx
leaq 0xe8(%rsp), %rdi
movq %rbx, %rsi
movq %r15, %rdx
callq 0x7310
movl 0x40(%rsp), %eax
movq %rax, 0x48(%rsp)
movl 0xf0(%rsp), %ebx
testl %ebx, %ebx
leaq 0x90(%rsp), %rdi
jle 0x397a2
xorl %r12d, %r12d
movq 0xe8(%rsp), %rax
movslq %r12d, %rdx
movb (%rax,%rdx), %cl
cmpb $0x30, %cl
jl 0x39796
leaq (%rax,%rdx), %rsi
incq %rsi
xorl %eax, %eax
cmpb $0x39, %cl
ja 0x39725
movb (%rsi,%rax), %cl
incq %rax
cmpb $0x2f, %cl
jg 0x39710
addl %eax, %r12d
jmp 0x39796
movl %r12d, %r12d
addq %rax, %r12
movzbl %cl, %ecx
addl $-0x44, %ecx
cmpl $0xa, %ecx
ja 0x39796
movl $0x601, %esi            # imm = 0x601
btl %ecx, %esi
jae 0x39796
movslq %eax, %rcx
leaq 0xe8(%rsp), %rsi
callq 0x7310
movq 0x90(%rsp), %r15
movq %r15, %rdi
callq 0x7520
movl %eax, %ebp
leaq 0xa0(%rsp), %rax
cmpq %rax, %r15
je 0x39782
movq 0xa0(%rsp), %rsi
incq %rsi
movq %r15, %rdi
callq 0x72f0
movl %ebp, %eax
addq %rax, 0x48(%rsp)
leaq 0x90(%rsp), %rdi
movl $0x20, %ebp
incl %r12d
cmpl %ebx, %r12d
jl 0x396f0
movq 0x48(%rsp), %r8
decq %r8
movq 0xe8(%rsp), %rax
movb (%rax), %cl
cmpb $0x30, %cl
jl 0x397df
xorl %r15d, %r15d
leaq 0x58(%rsp), %rbx
cmpb $0x3a, %cl
jae 0x397f0
movb 0x1(%rax,%r15), %cl
incq %r15
cmpb $0x30, %cl
jge 0x397c1
movl 0x40(%rsp), %esi
movq %r8, %r9
jmp 0x398c4
movl 0x40(%rsp), %esi
movq %r8, %r9
leaq 0x58(%rsp), %rbx
jmp 0x398c4
cmpb $0x48, %cl
je 0x39808
movzbl %cl, %ecx
movl 0x40(%rsp), %esi
movq %r8, %r9
cmpl $0x53, %ecx
jne 0x398c4
movq %r8, %rbp
leaq 0xe8(%rsp), %rsi
xorl %edx, %edx
movq %r15, %rcx
callq 0x7310
movq 0x90(%rsp), %r12
movq %r12, %rdi
callq 0x7520
movl %eax, 0xc(%rsp)
leaq 0xa0(%rsp), %rax
cmpq %rax, %r12
je 0x39851
movq 0xa0(%rsp), %rsi
incq %rsi
movq %r12, %rdi
callq 0x72f0
leaq 0x90(%rsp), %rdi
leaq 0xe8(%rsp), %rsi
xorl %edx, %edx
movq %r15, %rcx
callq 0x7310
movq 0x90(%rsp), %r12
movq %r12, %rdi
callq 0x7520
movl %eax, %r15d
leaq 0xa0(%rsp), %rax
cmpq %rax, %r12
je 0x3989e
movq 0xa0(%rsp), %rsi
incq %rsi
movq %r12, %rdi
callq 0x72f0
movl 0x40(%rsp), %esi
subl 0xc(%rsp), %esi
movl %r15d, %r9d
movq %rbp, %r8
addq %rbp, %r9
movq 0xe8(%rsp), %rax
leaq 0x90(%rsp), %rdi
movl $0x20, %ebp
movq 0xf0(%rsp), %rcx
movzbl -0x1(%rax,%rcx), %edx
cmpl $0x53, %edx
movq %r8, 0x48(%rsp)
movl %esi, 0x168(%rsp)
movq %r9, 0x3d8(%rsp)
je 0x398f3
cmpl $0x48, %edx
jne 0x399d6
movl %ecx, %edx
addl $-0x2, %edx
js 0x39918
movl %edx, %esi
movb (%rax,%rsi), %sil
addb $-0x30, %sil
cmpb $0x9, %sil
ja 0x39918
leal -0x1(%rdx), %esi
testl %edx, %edx
movl %esi, %edx
jg 0x398fa
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
leal 0x1(%rdx), %eax
movslq %eax, %rbx
notl %edx
movslq %edx, %r12
addq %r12, %rcx
leaq 0xe8(%rsp), %rsi
movq %rbx, %rdx
callq 0x7310
movq 0x90(%rsp), %rbp
movq %rbp, %rdi
callq 0x7520
movl %eax, %r15d
leaq 0xa0(%rsp), %rax
cmpq %rax, %rbp
je 0x39969
movq 0xa0(%rsp), %rsi
incq %rsi
movq %rbp, %rdi
callq 0x72f0
addq 0xf0(%rsp), %r12
leaq 0x90(%rsp), %rdi
leaq 0xe8(%rsp), %rsi
movq %rbx, %rdx
movq %r12, %rcx
callq 0x7310
movq 0x90(%rsp), %rbx
movq %rbx, %rdi
callq 0x7520
movl %eax, %r12d
leaq 0xa0(%rsp), %rax
cmpq %rax, %rbx
movl $0x20, %ebp
je 0x399c4
movq 0xa0(%rsp), %rsi
incq %rsi
movq %rbx, %rdi
callq 0x72f0
movl %r15d, %eax
addq %rax, 0x48(%rsp)
subl %r12d, 0x40(%rsp)
leaq 0x58(%rsp), %rbx
movq 0x88(%rsp), %rax
incl %eax
movslq %eax, %r15
movq %rbx, %rdi
movl $0x9, %esi
movq %r15, %rdx
callq 0x7410
movq %rbx, %rsi
movq %rax, %rbx
subl %r15d, %eax
movslq %eax, %rcx
leaq 0x4d0(%rsp), %rdi
movq %r15, %rdx
callq 0x7310
movq 0x4d0(%rsp), %rdi
leaq 0x4e0(%rsp), %rax
cmpq %rax, %rdi
je 0x39a34
movq 0x4e0(%rsp), %rsi
incq %rsi
callq 0x72f0
incl %ebx
movslq %ebx, %r15
leaq 0x58(%rsp), %r12
movq %r12, %rdi
movl $0x9, %esi
movq %r15, %rdx
callq 0x7410
movq %rax, %rbx
subl %r15d, %eax
movslq %eax, %rcx
leaq 0x4b0(%rsp), %rdi
movq %r12, %rsi
movq %r15, %rdx
callq 0x7310
movq 0x4b0(%rsp), %rdi
leaq 0x4c0(%rsp), %rax
cmpq %rax, %rdi
je 0x39a8f
movq 0x4c0(%rsp), %rsi
incq %rsi
callq 0x72f0
shlq $0x20, %rbx
movabsq $0x100000000, %r15      # imm = 0x100000000
addq %r15, %rbx
sarq $0x20, %rbx
leaq 0x58(%rsp), %rdi
movl $0x9, %esi
movq %rbx, %rdx
movq %rdi, %rbx
callq 0x7410
shlq $0x20, %rax
leaq (%rax,%r15), %rdx
sarq $0x20, %rdx
movq %rbx, %rdi
movl $0x9, %esi
callq 0x7410
shlq $0x20, %rax
leaq (%rax,%r15), %rdx
sarq $0x20, %rdx
movq %rbx, %rdi
movl $0x9, %esi
callq 0x7410
movq %rax, %r15
leaq 0xa0(%rsp), %rax
movq %rax, 0x90(%rsp)
movq 0xb0(%rsp), %rax
movq 0xd8(%rax), %rsi
movq 0xe0(%rax), %rdx
addq %rsi, %rdx
leaq 0x90(%rsp), %r12
movq %r12, %rdi
callq 0xc1d8
movq %r12, %rdi
leaq 0x6936(%rip), %rsi      # 0x40467
callq 0x7680
movl 0x140(%rsp), %ebx
incl %r15d
movslq %r15d, %rdx
movq 0x90(%rsp), %rsi
movq 0x98(%rsp), %rcx
leaq 0x58(%rsp), %rdi
callq 0x75f0
movq %rax, %r12
cmpl $-0x1, %r12d
movq %rbx, 0x88(%rsp)
jne 0x39ba3
movl %ebx, %eax
andl $0x4, %eax
jne 0x39ba3
leaq 0x3a0(%rsp), %rdi
leaq 0x3c0(%rsp), %rsi
leaq 0x180(%rsp), %rdx
leaq 0x58(%rsp), %rbx
movq %rbx, %rcx
callq 0x34fe4
movl %eax, 0xc(%rsp)
jmp 0x39c23
movl $0x0, 0xc(%rsp)
cmpl %r12d, %r15d
leaq 0x58(%rsp), %rbx
jg 0x39c23
movslq %r12d, %rdx
movq %rbx, %rdi
movl $0x9, %esi
callq 0x7410
cmpl $-0x1, %eax
jne 0x39bce
movl 0x60(%rsp), %eax
leal 0x5(%r12), %ecx
movslq %ecx, %rdx
subl %r12d, %eax
addl $-0x5, %eax
movslq %eax, %rcx
leaq 0x490(%rsp), %rdi
movq %rbx, %rsi
callq 0x7310
movq 0x490(%rsp), %r15
movq %r15, %rdi
callq 0x7520
movl %eax, 0xc(%rsp)
leaq 0x4a0(%rsp), %rax
cmpq %rax, %r15
je 0x39c23
movq 0x4a0(%rsp), %rsi
incq %rsi
movq %r15, %rdi
callq 0x72f0
leaq 0x148(%rsp), %rdi
leaq 0x6dec(%rip), %rsi      # 0x40a1e
callq 0x70f0
testl %eax, %eax
je 0x39e08
movq 0x150(%rsp), %rbx
movq 0x110(%rsp), %r15
cmpq %rbx, %r15
movq %rbx, %rdx
cmovbq %r15, %rdx
testq %rdx, %rdx
je 0x39c82
movq 0x108(%rsp), %rsi
movq 0x148(%rsp), %rdi
callq 0x7300
cmpq %r15, %rbx
jne 0x39c8b
testl %eax, %eax
je 0x39e03
jmp 0x39c8b
cmpq %r15, %rbx
je 0x39e03
movq 0x78(%rsp), %rax
cmpq %rax, 0x80(%rsp)
je 0x39df3
xorl %ebx, %ebx
cmpl $0x2, 0xc4(%rsp)
jg 0x39ce6
movq 0x50(%rsp), %rax
movq (%rax,%rbx,8), %rax
movl 0x38(%rax), %ecx
movl 0x78(%rax), %edx
cmpl %ecx, %edx
cmovlel %ecx, %edx
movl %edx, 0x78(%rax)
incq 0x40(%rax)
xorl %edx, %edx
cmpl $0x1, %ecx
setne %dl
leaq 0x10(,%rdx,8), %rdx
cmpl $0x2, %ecx
movl $0x8, %ecx
cmoveq %rcx, %rdx
incq 0x40(%rax,%rdx)
movq 0x50(%rsp), %rax
movq (%rax,%rbx,8), %r12
movq 0xb0(%rsp), %rax
cmpb $0x1, 0x69(%rax)
jne 0x39d4b
cmpl $0x0, 0x38(%r12)
jne 0x39d4b
movq 0x148(%rsp), %rsi
movq 0x150(%rsp), %rdx
movq 0x1a2cc(%rip), %rdi     # 0x53fe8
callq 0x7340
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
movq %r15, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x71d0
movl 0x38(%r12), %eax
xorl %ecx, %ecx
cmpl $0x1, %eax
setne %cl
leaq 0x28(,%rcx,8), %rcx
cmpl $0x2, %eax
cmoveq %rbp, %rcx
incq (%r12,%rcx)
xorl %edx, %edx
movl %edx, 0x38(%r12)
movl 0x78(%r12), %eax
xorl %ecx, %ecx
cmpl $0x1, %eax
setne %cl
leaq 0x28(,%rcx,8), %rcx
cmpl $0x2, %eax
cmoveq %rbp, %rcx
incq 0x40(%r12,%rcx)
movl %edx, 0x78(%r12)
movq 0xd0(%rsp), %rax
cmpq 0xd8(%rsp), %rax
je 0x39de5
addq $0xb8, %r12
movq %r13, %rax
movl (%r12), %ecx
xorl %edx, %edx
cmpl $0x1, %ecx
setne %dl
leaq 0x28(,%rdx,8), %rdx
cmpl $0x2, %ecx
cmoveq %rbp, %rdx
incq -0x38(%r12,%rdx)
movl $0x0, (%r12)
addq $0x40, %r12
decq %rax
jne 0x39db4
incq %rbx
cmpq 0x10(%rsp), %rbx
jne 0x39ca0
incq 0x38(%rsp)
movl $0x0, 0xc4(%rsp)
leaq 0x58(%rsp), %rbx
leaq 0x1a0(%rsp), %r12
leaq 0x148(%rsp), %rdi
leaq 0x108(%rsp), %rsi
callq 0x7170
testb $0x4, 0x88(%rsp)
jne 0x3a083
incl 0xc4(%rsp)
movq 0x78(%rsp), %rax
cmpq %rax, 0x80(%rsp)
je 0x3a083
movl 0xc0(%rsp), %edx
addl 0x138(%rsp), %edx
addl 0xbc(%rsp), %edx
movl 0x178(%rsp), %esi
addl 0x17c(%rsp), %esi
addl 0x174(%rsp), %esi
movq 0x18(%rsp), %rax
movq %rax, 0x140(%rsp)
movl 0x170(%rsp), %edi
movl %edi, %ecx
subl 0x48(%rsp), %ecx
movl %ecx, %eax
negl %eax
cmovsl %ecx, %eax
movq 0x1a0(%rsp), %rcx
movq %rcx, 0x138(%rsp)
subl 0x3d8(%rsp), %edi
movl %edi, %r9d
negl %r9d
cmovsl %edi, %r9d
xorl %ecx, %ecx
movl 0xc(%rsp), %r8d
cmpl %edx, %r8d
setle %cl
movl %ecx, 0xc0(%rsp)
movl 0x16c(%rsp), %edi
movl %edi, %ecx
subl 0x168(%rsp), %ecx
movl %ecx, %edx
negl %edx
cmovsl %ecx, %edx
subl 0x40(%rsp), %edi
movl %edi, %r10d
negl %r10d
cmovsl %edi, %r10d
movq 0xc8(%rsp), %rcx
movq (%rcx), %rcx
movq %rcx, 0x40(%rsp)
xorl %ecx, %ecx
cmpl %esi, %r8d
setle %cl
movl %ecx, 0x48(%rsp)
movq 0xe0(%rsp), %rcx
movq (%rcx), %rbx
cmpl %r9d, %eax
cmovll %eax, %r9d
movl %r9d, 0xc(%rsp)
cmpl %r10d, %edx
cmovll %edx, %r10d
movl %r10d, 0xbc(%rsp)
xorl %r15d, %r15d
movq 0x1a8(%rsp), %r12
movq 0x20(%rsp), %rbp
cmpq %r12, %rbp
movq %r12, %rdx
cmovbq %rbp, %rdx
testb $0x10, 0x88(%rsp)
jne 0x39f85
testq %rdx, %rdx
je 0x39faa
movq 0x138(%rsp), %rdi
movq 0x140(%rsp), %rsi
callq 0x7300
movl 0x48(%rsp), %ecx
cmpq %rbp, %r12
jne 0x39ff0
movl 0x48(%rsp), %ecx
testl %eax, %eax
je 0x39fb3
jmp 0x39ff0
testq %rdx, %rdx
je 0x39fd0
movq 0x138(%rsp), %rdi
movq 0x140(%rsp), %rsi
callq 0x7300
cmpq %rbp, %r12
jne 0x39fe9
testl %eax, %eax
je 0x39fd5
jmp 0x39fe9
movl 0x48(%rsp), %ecx
cmpq %rbp, %r12
jne 0x39ff0
movl $0x2, %ecx
movl 0xbc(%rsp), %eax
movq 0x40(%rsp), %rdx
cmpl %eax, (%rdx,%r15,4)
jge 0x39ff0
movl 0x48(%rsp), %ecx
jmp 0x39ff0
cmpq %rbp, %r12
jne 0x39fe9
movl $0x2, %ecx
movl 0xc(%rsp), %eax
movq 0x40(%rsp), %rdx
cmpl %eax, (%rdx,%r15,4)
jge 0x39ff0
movl 0xc0(%rsp), %ecx
movq 0x50(%rsp), %rax
movq (%rax,%r15,8), %rax
movl 0x38(%rax), %edx
cmpl %ecx, %edx
cmovlel %ecx, %edx
movl %edx, 0x38(%rax)
incq (%rax)
xorl %edx, %edx
cmpl $0x1, %ecx
setne %dl
leaq 0x10(,%rdx,8), %rdx
cmpl $0x2, %ecx
movl $0x8, %esi
cmoveq %rsi, %rdx
incq (%rax,%rdx)
movq 0xd0(%rsp), %rsi
cmpq 0xd8(%rsp), %rsi
leaq 0x1a0(%rsp), %r12
movl $0x20, %ebp
je 0x3a070
subq $-0x80, %rax
xorl %esi, %esi
cmpl (%rbx,%rsi,4), %r14d
jl 0x3a064
movl 0x38(%rax), %edi
cmpl %ecx, %edi
cmovlel %ecx, %edi
movl %edi, 0x38(%rax)
incq (%rax)
incq (%rax,%rdx)
incq %rsi
addq $0x40, %rax
cmpq %rsi, %r13
jne 0x3a04c
incq %r15
cmpq 0x10(%rsp), %r15
jne 0x39f37
leaq 0x58(%rsp), %rbx
leaq 0x510(%rsp), %rdi
movq %rbx, %rsi
callq 0x349dc
movq 0x90(%rsp), %rdi
leaq 0xa0(%rsp), %rax
cmpq %rax, %rdi
je 0x3a0b8
movq 0xa0(%rsp), %rsi
incq %rsi
callq 0x72f0
movq 0xe8(%rsp), %rdi
leaq 0xf8(%rsp), %rax
cmpq %rax, %rdi
je 0x3a0dd
movq 0xf8(%rsp), %rsi
incq %rsi
callq 0x72f0
movq 0x18(%rsp), %rdi
leaq 0x28(%rsp), %rax
cmpq %rax, %rdi
je 0x3a0f9
movq 0x28(%rsp), %rsi
incq %rsi
callq 0x72f0
movq 0x1a0(%rsp), %rdi
leaq 0x1b0(%rsp), %rax
cmpq %rax, %rdi
je 0x3a11e
movq 0x1b0(%rsp), %rsi
incq %rsi
callq 0x72f0
movq 0x510(%rsp), %rax
movq -0x18(%rax), %rax
cmpl $0x0, 0x530(%rsp,%rax)
jne 0x3a140
cmpq $0x0, 0x60(%rsp)
jne 0x391b7
leaq 0x68d7(%rip), %rsi      # 0x40a1e
leaq 0x148(%rsp), %rdi
callq 0x70f0
testl %eax, %eax
je 0x3a27e
movq 0x78(%rsp), %rax
cmpq %rax, 0x80(%rsp)
je 0x3a279
xorl %r15d, %r15d
movl $0x20, %r12d
xorl %ebp, %ebp
movq 0x50(%rsp), %rax
movq (%rax,%rbp,8), %rbx
movq 0xb0(%rsp), %rax
cmpb $0x1, 0x69(%rax)
jne 0x3a1dd
cmpl $0x0, 0x38(%rbx)
jne 0x3a1dd
movq 0x148(%rsp), %rsi
movq 0x150(%rsp), %rdx
movq 0x19e3a(%rip), %rdi     # 0x53fe8
callq 0x7340
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
movq %r14, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x71d0
movl 0x38(%rbx), %eax
xorl %ecx, %ecx
cmpl $0x1, %eax
setne %cl
leaq 0x28(,%rcx,8), %rcx
cmpl $0x2, %eax
cmoveq %r12, %rcx
incq (%rbx,%rcx)
movl %r15d, 0x38(%rbx)
movl 0x78(%rbx), %eax
xorl %ecx, %ecx
cmpl $0x1, %eax
setne %cl
leaq 0x28(,%rcx,8), %rcx
cmpl $0x2, %eax
cmoveq %r12, %rcx
incq 0x40(%rbx,%rcx)
movl %r15d, 0x78(%rbx)
movq 0xd0(%rsp), %rax
cmpq 0xd8(%rsp), %rax
je 0x3a26b
addq $0xb8, %rbx
movq %r13, %rax
movl (%rbx), %ecx
xorl %edx, %edx
cmpl $0x1, %ecx
setne %dl
leaq 0x28(,%rdx,8), %rdx
cmpl $0x2, %ecx
cmoveq %r12, %rdx
incq -0x38(%rbx,%rdx)
movl $0x0, (%rbx)
addq $0x40, %rbx
decq %rax
jne 0x3a23e
incq %rbp
cmpq 0x10(%rsp), %rbp
jne 0x3a17a
incq 0x38(%rsp)
movq 0x128(%rsp), %r13
movq 0x19d5b(%rip), %rbx     # 0x53fe8
leaq 0xbc13(%rip), %rsi      # 0x45ea7
movl $0x25, %edx
movq %rbx, %rdi
callq 0x7340
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
movq 0x19d29(%rip), %rbx     # 0x53fe8
movq %rbx, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x71d0
leaq 0x510(%rsp), %rdi
callq 0x70b0
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
movq 0x19cee(%rip), %rdi     # 0x53fe8
callq 0x7040
movq %rax, %rdi
callq 0x71d0
movq 0x19cda(%rip), %rbx     # 0x53fe8
leaq 0xbbb8(%rip), %rsi      # 0x45ecd
movl $0x10, %edx
movq %rbx, %rdi
callq 0x7340
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
movq 0x19ca8(%rip), %rdi     # 0x53fe8
callq 0x7040
movq %rax, %rdi
callq 0x71d0
movq 0x19c94(%rip), %rbx     # 0x53fe8
leaq 0xc23c(%rip), %rsi      # 0x46597
movl $0x90, %edx
movq %rbx, %rdi
callq 0x7340
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
movq 0x19c62(%rip), %rdi     # 0x53fe8
callq 0x7040
movq %rax, %rdi
callq 0x71d0
movq 0xb0(%rsp), %r14
cmpq $0x0, 0x10(%r14)
je 0x3ae2d
movq 0x8(%r14), %rsi
leaq 0x1a0(%rsp), %rdi
movl $0x10, %edx
callq 0x7320
leaq 0xbbbf(%rip), %rsi      # 0x45f82
leaq 0x1a0(%rsp), %rbx
movl $0x4b, %edx
movq %rbx, %rdi
callq 0x7340
movq 0x1a0(%rsp), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
leaq 0x1a0(%rsp), %rdi
callq 0x7040
movq %rax, %rdi
callq 0x71d0
leaq 0xbbbe(%rip), %rsi      # 0x45fce
leaq 0x1a0(%rsp), %rbx
movl $0x2, %edx
movq %rbx, %rdi
callq 0x7340
movq 0x1a0(%rsp), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
leaq 0x1a0(%rsp), %rdi
callq 0x7040
movq %rax, %rdi
callq 0x71d0
leaq 0xc1cb(%rip), %rsi      # 0x46628
leaq 0x1a0(%rsp), %rbx
movl $0x96, %edx
movq %rbx, %rdi
callq 0x7340
movq 0x1a0(%rsp), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
leaq 0x1a0(%rsp), %rdi
callq 0x7040
movq %rax, %rdi
callq 0x71d0
leaq 0xbb24(%rip), %rsi      # 0x45fce
leaq 0x1a0(%rsp), %rbx
movl $0x2, %edx
movq %rbx, %rdi
callq 0x7340
movq 0x1a0(%rsp), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
leaq 0x1a0(%rsp), %rdi
callq 0x7040
movq %rax, %rdi
callq 0x71d0
leaq 0xbb84(%rip), %rsi      # 0x4607b
leaq 0x1a0(%rsp), %rdi
movl $0x22, %edx
callq 0x7340
movq 0x70(%r14), %rsi
movq 0x78(%r14), %rdx
leaq 0x1a0(%rsp), %rdi
callq 0x7340
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x71d0
leaq 0xba7f(%rip), %rsi      # 0x45fce
leaq 0x1a0(%rsp), %rbx
movl $0x2, %edx
movq %rbx, %rdi
callq 0x7340
movq 0x1a0(%rsp), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
leaq 0x1a0(%rsp), %rdi
callq 0x7040
movq %rax, %rdi
callq 0x71d0
leaq 0xbb2c(%rip), %rsi      # 0x460c8
leaq 0x1a0(%rsp), %rbx
movl $0x61, %edx
movq %rbx, %rdi
callq 0x7340
movq 0x1a0(%rsp), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
leaq 0x1a0(%rsp), %rdi
callq 0x7040
movq %rax, %rdi
callq 0x71d0
leaq 0xbb41(%rip), %rsi      # 0x4612a
leaq 0x1a0(%rsp), %rdi
movl $0x26, %edx
callq 0x7340
leaq 0x428(%rsp), %rdi
movq 0xc8(%rsp), %rsi
callq 0x3dc2a
leaq 0x18(%rsp), %rdi
leaq 0x428(%rsp), %rsi
callq 0x3db3b
movq 0x18(%rsp), %rsi
movq 0x20(%rsp), %rdx
leaq 0x1a0(%rsp), %rdi
callq 0x7340
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x71d0
leaq 0x28(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3a67e
movq 0x28(%rsp), %rsi
incq %rsi
callq 0x72f0
movq 0x428(%rsp), %rdi
testq %rdi, %rdi
je 0x3a69b
movq 0x438(%rsp), %rsi
subq %rdi, %rsi
callq 0x72f0
leaq 0xb92c(%rip), %rsi      # 0x45fce
leaq 0x1a0(%rsp), %rbx
movl $0x2, %edx
movq %rbx, %rdi
callq 0x7340
movq 0x1a0(%rsp), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
leaq 0x1a0(%rsp), %rdi
callq 0x7040
movq %rax, %rdi
callq 0x71d0
leaq 0xba62(%rip), %rsi      # 0x46151
leaq 0x1a0(%rsp), %rdi
movl $0x9f, %edx
callq 0x7340
leaq 0x410(%rsp), %rdi
movq 0xe0(%rsp), %rsi
callq 0x3dc2a
leaq 0x18(%rsp), %rdi
leaq 0x410(%rsp), %rsi
callq 0x3db3b
movq 0x18(%rsp), %rsi
movq 0x20(%rsp), %rdx
leaq 0x1a0(%rsp), %rdi
callq 0x7340
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x71d0
movq 0x18(%rsp), %rdi
leaq 0x28(%rsp), %rax
cmpq %rax, %rdi
je 0x3a785
movq 0x28(%rsp), %rsi
incq %rsi
callq 0x72f0
movq 0x410(%rsp), %rdi
testq %rdi, %rdi
je 0x3a7a2
movq 0x420(%rsp), %rsi
subq %rdi, %rsi
callq 0x72f0
leaq 0xb825(%rip), %rsi      # 0x45fce
leaq 0x1a0(%rsp), %rbx
movl $0x2, %edx
movq %rbx, %rdi
callq 0x7340
movq 0x1a0(%rsp), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
leaq 0x1a0(%rsp), %rdi
callq 0x7040
movq %rax, %rdi
callq 0x71d0
leaq 0xb9fb(%rip), %rsi      # 0x461f1
leaq 0x1a0(%rsp), %rbx
movl $0xd0, %edx
movq %rbx, %rdi
callq 0x7340
movq 0x1a0(%rsp), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
leaq 0x1a0(%rsp), %rdi
callq 0x7040
movq %rax, %rdi
callq 0x71d0
leaq 0xba7f(%rip), %rsi      # 0x462c2
leaq 0x1a0(%rsp), %rbx
movl $0xc8, %edx
movq %rbx, %rdi
callq 0x7340
movq 0x1a0(%rsp), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
leaq 0x1a0(%rsp), %rdi
callq 0x7040
movq %rax, %rdi
callq 0x71d0
leaq 0xb73e(%rip), %rsi      # 0x45fce
leaq 0x1a0(%rsp), %rbx
movl $0x2, %edx
movq %rbx, %rdi
callq 0x7340
movq 0x1a0(%rsp), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
leaq 0x1a0(%rsp), %rdi
callq 0x7040
movq %rax, %rdi
callq 0x71d0
leaq 0xb6f1(%rip), %rsi      # 0x45fce
leaq 0x1a0(%rsp), %rbx
movl $0x2, %edx
movq %rbx, %rdi
callq 0x7340
movq 0x1a0(%rsp), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
leaq 0x1a0(%rsp), %rdi
callq 0x7040
movq %rax, %rdi
callq 0x71d0
leaq 0xba61(%rip), %rsi      # 0x4638b
leaq 0x1a0(%rsp), %rbx
movl $0x9, %edx
movq %rbx, %rdi
callq 0x7340
movq 0x1a0(%rsp), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
leaq 0x1a0(%rsp), %rdi
callq 0x7040
movq %rax, %rdi
callq 0x71d0
leaq 0xb657(%rip), %rsi      # 0x45fce
leaq 0x1a0(%rsp), %rbx
movl $0x2, %edx
movq %rbx, %rdi
callq 0x7340
movq 0x1a0(%rsp), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
leaq 0x1a0(%rsp), %rdi
callq 0x7040
movq %rax, %rdi
callq 0x71d0
leaq 0xb9d1(%rip), %rsi      # 0x46395
leaq 0x1a0(%rsp), %rdi
movl $0x13, %edx
callq 0x7340
leaq 0x1a0(%rsp), %rdi
movq 0x38(%rsp), %rsi
callq 0x72a0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x71d0
leaq 0xb990(%rip), %rsi      # 0x463a9
leaq 0x1a0(%rsp), %rdi
movl $0x15, %edx
callq 0x7340
leaq 0xbc8d(%rip), %rsi      # 0x466bf
leaq 0x1a0(%rsp), %rbx
movl $0x4, %edx
movq %rbx, %rdi
callq 0x7340
movq 0x1a0(%rsp), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
leaq 0x1a0(%rsp), %rdi
callq 0x7040
movq %rax, %rdi
callq 0x71d0
leaq 0xb54f(%rip), %rsi      # 0x45fce
leaq 0x1a0(%rsp), %rbx
movl $0x2, %edx
movq %rbx, %rdi
callq 0x7340
movq 0x1a0(%rsp), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
leaq 0x1a0(%rsp), %r14
movq %r14, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x71d0
movq 0x78(%rsp), %rax
cmpq %rax, 0x80(%rsp)
je 0x3ade3
movq 0x130(%rsp), %rbx
cmpq $0x1, %rbx
adcq $0x0, %rbx
movq 0x128(%rsp), %rax
cmpq $0x1, %rax
adcq $0x0, %rax
movq %rax, 0x88(%rsp)
movq $0x0, 0x10(%rsp)
leaq 0x18(%rsp), %r13
movl $0x1f, %edx
movq %r14, %rdi
leaq 0xb89f(%rip), %rsi      # 0x463bf
callq 0x7340
movq 0xc8(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rsp), %rcx
movl (%rax,%rcx,4), %esi
movq %r14, %rdi
callq 0x75d0
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
movq %r15, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x71d0
movl $0x1b, %edx
movq %r14, %rdi
leaq 0xb866(%rip), %rsi      # 0x463df
callq 0x7340
movq 0x1a0(%rsp), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
movq %r14, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x71d0
movl $0xb5, %edx
movq %r14, %rdi
leaq 0xb842(%rip), %rsi      # 0x463fb
callq 0x7340
movq 0x1a0(%rsp), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
movq %r14, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x71d0
movl $0x5, %edx
movq %r14, %rdi
leaq 0xb8b8(%rip), %rsi      # 0x464b1
callq 0x7340
movq 0x50(%rsp), %rax
movq 0x10(%rsp), %rcx
movq (%rax,%rcx,8), %r15
movq %r13, %rdi
movq %r15, %rsi
movq 0x38(%rsp), %rdx
callq 0x32a0c
movq 0x18(%rsp), %rsi
movq 0x20(%rsp), %rdx
movq %r14, %rdi
callq 0x7340
movq 0x18(%rsp), %rdi
leaq 0x28(%rsp), %rax
cmpq %rax, %rdi
je 0x3ac4a
movq 0x28(%rsp), %rsi
incq %rsi
callq 0x72f0
movl $0x10, %edx
movq %r14, %rdi
leaq 0xb85e(%rip), %rsi      # 0x464b7
callq 0x7340
leaq 0x40(%r15), %rsi
movq %r13, %rdi
movq 0x38(%rsp), %rdx
callq 0x32a0c
movq 0x18(%rsp), %rsi
movq 0x20(%rsp), %rdx
movq %r14, %rdi
callq 0x7340
movq 0x18(%rsp), %rdi
leaq 0x28(%rsp), %rax
cmpq %rax, %rdi
je 0x3ac9d
movq 0x28(%rsp), %rsi
incq %rsi
callq 0x72f0
movq 0xd0(%rsp), %rax
cmpq 0xd8(%rsp), %rax
je 0x3ad48
subq $-0x80, %r15
xorl %ebp, %ebp
movl $0xc, %edx
movq %r14, %rdi
leaq 0xb800(%rip), %rsi      # 0x464c8
callq 0x7340
movq 0xe0(%rsp), %rax
movq (%rax), %rax
movl (%rax,%rbp,4), %esi
movq %r14, %rdi
callq 0x75d0
movq %rax, %r12
movl $0x2, %edx
movq %rax, %rdi
leaq 0xb7d0(%rip), %rsi      # 0x464c5
callq 0x7340
movq %r13, %rdi
movq %r15, %rsi
movq 0x38(%rsp), %rdx
callq 0x32a0c
movq 0x18(%rsp), %rsi
movq 0x20(%rsp), %rdx
movq %r12, %rdi
callq 0x7340
movq 0x18(%rsp), %rdi
leaq 0x28(%rsp), %rax
cmpq %rax, %rdi
je 0x3ad38
movq 0x28(%rsp), %rsi
incq %rsi
callq 0x72f0
incq %rbp
addq $0x40, %r15
cmpq %rbp, %rbx
jne 0x3acb9
movl $0x2, %edx
movq %r14, %rdi
leaq 0xb277(%rip), %rsi      # 0x45fce
callq 0x7340
movq 0x1a0(%rsp), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
movq %r14, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x71d0
movl $0x2, %edx
movq %r14, %rdi
leaq 0xb237(%rip), %rsi      # 0x45fce
callq 0x7340
movq 0x1a0(%rsp), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
movq %r14, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x71d0
movq 0x10(%rsp), %rcx
incq %rcx
movq %rcx, 0x10(%rsp)
cmpq 0x88(%rsp), %rcx
jne 0x3ab11
leaq 0x1a0(%rsp), %rdi
callq 0x7460
movq 0x191c1(%rip), %rax     # 0x53fb8
movq (%rax), %rcx
movq 0x18(%rax), %rax
leaq 0x1a8(%rsp), %rdi
movq %rcx, -0x8(%rdi)
movq -0x18(%rcx), %rcx
movq %rax, 0x1a0(%rsp,%rcx)
callq 0x7260
leaq 0x298(%rsp), %rdi
callq 0x7100
jmp 0x3b81c
movq 0x1918c(%rip), %rbx     # 0x53fc0
leaq 0xb147(%rip), %rsi      # 0x45f82
movl $0x4b, %edx
movq %rbx, %rdi
callq 0x7340
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
movq 0x1915a(%rip), %rdi     # 0x53fc0
callq 0x7040
movq %rax, %rdi
callq 0x71d0
movq 0x19146(%rip), %rbx     # 0x53fc0
leaq 0xb14d(%rip), %rsi      # 0x45fce
movl $0x2, %edx
movq %rbx, %rdi
callq 0x7340
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
movq 0x19114(%rip), %rdi     # 0x53fc0
callq 0x7040
movq %rax, %rdi
callq 0x71d0
movq 0x19100(%rip), %rbx     # 0x53fc0
leaq 0xb761(%rip), %rsi      # 0x46628
movl $0x96, %edx
movq %rbx, %rdi
callq 0x7340
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
movq 0x190ce(%rip), %rdi     # 0x53fc0
callq 0x7040
movq %rax, %rdi
callq 0x71d0
movq 0x190ba(%rip), %rbx     # 0x53fc0
leaq 0xb0c1(%rip), %rsi      # 0x45fce
movl $0x2, %edx
movq %rbx, %rdi
callq 0x7340
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
movq 0x19088(%rip), %rdi     # 0x53fc0
callq 0x7040
movq %rax, %rdi
callq 0x71d0
movq 0x19074(%rip), %rdi     # 0x53fc0
leaq 0xb128(%rip), %rsi      # 0x4607b
movl $0x22, %edx
callq 0x7340
movq 0xb0(%rsp), %rax
movq 0x70(%rax), %rsi
movq 0x78(%rax), %rdx
movq 0x1904c(%rip), %rdi     # 0x53fc0
callq 0x7340
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x71d0
movq 0x19016(%rip), %rbx     # 0x53fc0
leaq 0xb01d(%rip), %rsi      # 0x45fce
movl $0x2, %edx
movq %rbx, %rdi
callq 0x7340
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
movq 0x18fe4(%rip), %rdi     # 0x53fc0
callq 0x7040
movq %rax, %rdi
callq 0x71d0
movq 0x18fd0(%rip), %rbx     # 0x53fc0
leaq 0xb0d1(%rip), %rsi      # 0x460c8
movl $0x61, %edx
movq %rbx, %rdi
callq 0x7340
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
movq 0x18f9e(%rip), %rdi     # 0x53fc0
callq 0x7040
movq %rax, %rdi
callq 0x71d0
movq 0x18f8a(%rip), %rdi     # 0x53fc0
leaq 0xb0ed(%rip), %rsi      # 0x4612a
movl $0x26, %edx
callq 0x7340
leaq 0x3f8(%rsp), %rdi
movq 0xc8(%rsp), %rsi
callq 0x3dc2a
leaq 0x1a0(%rsp), %rdi
leaq 0x3f8(%rsp), %rsi
callq 0x3db3b
movq 0x1a0(%rsp), %rsi
movq 0x1a8(%rsp), %rdx
movq 0x18f38(%rip), %rdi     # 0x53fc0
callq 0x7340
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x71d0
movq 0x1a0(%rsp), %rdi
leaq 0x1b0(%rsp), %rax
cmpq %rax, %rdi
je 0x3b0dc
movq 0x1b0(%rsp), %rsi
incq %rsi
callq 0x72f0
movq 0x3f8(%rsp), %rdi
testq %rdi, %rdi
je 0x3b0f9
movq 0x408(%rsp), %rsi
subq %rdi, %rsi
callq 0x72f0
movq 0x18ec0(%rip), %rbx     # 0x53fc0
leaq 0xaec7(%rip), %rsi      # 0x45fce
movl $0x2, %edx
movq %rbx, %rdi
callq 0x7340
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
movq 0x18e8e(%rip), %rdi     # 0x53fc0
callq 0x7040
movq %rax, %rdi
callq 0x71d0
movq 0x18e7a(%rip), %rdi     # 0x53fc0
leaq 0xb004(%rip), %rsi      # 0x46151
movl $0x9f, %edx
callq 0x7340
leaq 0x3e0(%rsp), %rdi
movq 0xe0(%rsp), %rsi
callq 0x3dc2a
leaq 0x1a0(%rsp), %rdi
leaq 0x3e0(%rsp), %rsi
callq 0x3db3b
movq 0x1a0(%rsp), %rsi
movq 0x1a8(%rsp), %rdx
movq 0x18e28(%rip), %rdi     # 0x53fc0
callq 0x7340
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x71d0
movq 0x1a0(%rsp), %rdi
leaq 0x1b0(%rsp), %rax
cmpq %rax, %rdi
je 0x3b1ec
movq 0x1b0(%rsp), %rsi
incq %rsi
callq 0x72f0
movq 0x3e0(%rsp), %rdi
testq %rdi, %rdi
je 0x3b209
movq 0x3f0(%rsp), %rsi
subq %rdi, %rsi
callq 0x72f0
movq 0x18db0(%rip), %rbx     # 0x53fc0
leaq 0xadb7(%rip), %rsi      # 0x45fce
movl $0x2, %edx
movq %rbx, %rdi
callq 0x7340
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
movq 0x18d7e(%rip), %rdi     # 0x53fc0
callq 0x7040
movq %rax, %rdi
callq 0x71d0
movq 0x18d6a(%rip), %rbx     # 0x53fc0
leaq 0xaf94(%rip), %rsi      # 0x461f1
movl $0xd0, %edx
movq %rbx, %rdi
callq 0x7340
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
movq 0x18d38(%rip), %rdi     # 0x53fc0
callq 0x7040
movq %rax, %rdi
callq 0x71d0
movq 0x18d24(%rip), %rbx     # 0x53fc0
leaq 0xb01f(%rip), %rsi      # 0x462c2
movl $0xc8, %edx
movq %rbx, %rdi
callq 0x7340
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
movq 0x18cf2(%rip), %rdi     # 0x53fc0
callq 0x7040
movq %rax, %rdi
callq 0x71d0
movq 0x18cde(%rip), %rbx     # 0x53fc0
leaq 0xace5(%rip), %rsi      # 0x45fce
movl $0x2, %edx
movq %rbx, %rdi
callq 0x7340
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
movq 0x18cac(%rip), %rdi     # 0x53fc0
callq 0x7040
movq %rax, %rdi
callq 0x71d0
movq 0x18c98(%rip), %rbx     # 0x53fc0
leaq 0xac9f(%rip), %rsi      # 0x45fce
movl $0x2, %edx
movq %rbx, %rdi
callq 0x7340
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
movq 0x18c66(%rip), %rdi     # 0x53fc0
callq 0x7040
movq %rax, %rdi
callq 0x71d0
movq 0x18c52(%rip), %rbx     # 0x53fc0
leaq 0xb016(%rip), %rsi      # 0x4638b
movl $0x9, %edx
movq %rbx, %rdi
callq 0x7340
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
movq 0x18c20(%rip), %rdi     # 0x53fc0
callq 0x7040
movq %rax, %rdi
callq 0x71d0
movq 0x18c0c(%rip), %rbx     # 0x53fc0
leaq 0xac13(%rip), %rsi      # 0x45fce
movl $0x2, %edx
movq %rbx, %rdi
callq 0x7340
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
movq 0x18bda(%rip), %rdi     # 0x53fc0
callq 0x7040
movq %rax, %rdi
callq 0x71d0
movq 0x18bc6(%rip), %rdi     # 0x53fc0
leaq 0xaf94(%rip), %rsi      # 0x46395
movl $0x13, %edx
callq 0x7340
movq 0x18bae(%rip), %rdi     # 0x53fc0
movq 0x38(%rsp), %rsi
callq 0x72a0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x71d0
movq 0x18b73(%rip), %rdi     # 0x53fc0
leaq 0xaf55(%rip), %rsi      # 0x463a9
movl $0x15, %edx
callq 0x7340
movq 0x18b5b(%rip), %rbx     # 0x53fc0
leaq 0xb253(%rip), %rsi      # 0x466bf
movl $0x4, %edx
movq %rbx, %rdi
callq 0x7340
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
movq 0x18b29(%rip), %rdi     # 0x53fc0
callq 0x7040
movq %rax, %rdi
callq 0x71d0
movq 0x18b15(%rip), %rbx     # 0x53fc0
leaq 0xab1c(%rip), %rsi      # 0x45fce
movl $0x2, %edx
movq %rbx, %rdi
callq 0x7340
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
movq 0x18ae3(%rip), %r14     # 0x53fc0
movq %r14, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x71d0
movq 0x78(%rsp), %rax
cmpq %rax, 0x80(%rsp)
je 0x3b858
movq 0x130(%rsp), %rbx
cmpq $0x1, %rbx
adcq $0x0, %rbx
cmpq $0x1, %r13
adcq $0x0, %r13
movq %r13, 0x88(%rsp)
movq $0x0, 0x10(%rsp)
leaq 0x1a0(%rsp), %r13
movl $0x1f, %edx
movq %r14, %rdi
leaq 0xae7f(%rip), %rsi      # 0x463bf
callq 0x7340
movq 0xc8(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rsp), %rcx
movl (%rax,%rcx,4), %esi
movq %r14, %rdi
callq 0x75d0
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
movq %r15, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x71d0
movl $0x1b, %edx
movq %r14, %rdi
leaq 0xae46(%rip), %rsi      # 0x463df
callq 0x7340
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
movq %r14, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x71d0
movl $0xb5, %edx
movq %r14, %rdi
leaq 0xae27(%rip), %rsi      # 0x463fb
callq 0x7340
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
movq %r14, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x71d0
movl $0x5, %edx
movq %r14, %rdi
leaq 0xaea2(%rip), %rsi      # 0x464b1
callq 0x7340
movq 0x50(%rsp), %rax
movq 0x10(%rsp), %rcx
movq (%rax,%rcx,8), %r15
movq %r13, %rdi
movq %r15, %rsi
movq 0x38(%rsp), %rdx
callq 0x32a0c
movq 0x1a0(%rsp), %rsi
movq 0x1a8(%rsp), %rdx
movq %r14, %rdi
callq 0x7340
movq 0x1a0(%rsp), %rdi
leaq 0x1b0(%rsp), %rax
cmpq %rax, %rdi
je 0x3b66f
movq 0x1b0(%rsp), %rsi
incq %rsi
callq 0x72f0
movl $0x10, %edx
movq %r14, %rdi
leaq 0xae39(%rip), %rsi      # 0x464b7
callq 0x7340
leaq 0x40(%r15), %rsi
movq %r13, %rdi
movq 0x38(%rsp), %rdx
callq 0x32a0c
movq 0x1a0(%rsp), %rsi
movq 0x1a8(%rsp), %rdx
movq %r14, %rdi
callq 0x7340
movq 0x1a0(%rsp), %rdi
leaq 0x1b0(%rsp), %rax
cmpq %rax, %rdi
je 0x3b6d1
movq 0x1b0(%rsp), %rsi
incq %rsi
callq 0x72f0
movq 0xd0(%rsp), %rax
cmpq 0xd8(%rsp), %rax
je 0x3b78b
subq $-0x80, %r15
xorl %ebp, %ebp
movl $0xc, %edx
movq %r14, %rdi
leaq 0xadcc(%rip), %rsi      # 0x464c8
callq 0x7340
movq 0xe0(%rsp), %rax
movq (%rax), %rax
movl (%rax,%rbp,4), %esi
movq %r14, %rdi
callq 0x75d0
movq %rax, %r12
movl $0x2, %edx
movq %rax, %rdi
leaq 0xad9c(%rip), %rsi      # 0x464c5
callq 0x7340
movq %r13, %rdi
movq %r15, %rsi
movq 0x38(%rsp), %rdx
callq 0x32a0c
movq 0x1a0(%rsp), %rsi
movq 0x1a8(%rsp), %rdx
movq %r12, %rdi
callq 0x7340
movq 0x1a0(%rsp), %rdi
leaq 0x1b0(%rsp), %rax
cmpq %rax, %rdi
je 0x3b77b
movq 0x1b0(%rsp), %rsi
incq %rsi
callq 0x72f0
incq %rbp
addq $0x40, %r15
cmpq %rbp, %rbx
jne 0x3b6ed
movl $0x2, %edx
movq %r14, %rdi
leaq 0xa834(%rip), %rsi      # 0x45fce
callq 0x7340
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
movq %r14, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x71d0
movl $0x2, %edx
movq %r14, %rdi
leaq 0xa7f9(%rip), %rsi      # 0x45fce
callq 0x7340
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
movq %r14, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x71d0
movq 0x10(%rsp), %rcx
incq %rcx
movq %rcx, 0x10(%rsp)
cmpq 0x88(%rsp), %rcx
jne 0x3b531
movq 0x78(%rsp), %rax
cmpq %rax, 0x80(%rsp)
movq 0x128(%rsp), %r14
je 0x3b858
cmpq $0x1, %r14
adcq $0x0, %r14
xorl %ebx, %ebx
movq 0x50(%rsp), %rax
movq (%rax,%rbx,8), %rdi
testq %rdi, %rdi
je 0x3b850
callq 0x7400
incq %rbx
cmpq %rbx, %r14
jne 0x3b83d
movq 0x50(%rsp), %rdi
callq 0x7400
movq 0x108(%rsp), %rdi
leaq 0x118(%rsp), %rax
cmpq %rax, %rdi
je 0x3b887
movq 0x118(%rsp), %rsi
incq %rsi
callq 0x72f0
movq 0x148(%rsp), %rdi
leaq 0x158(%rsp), %rax
cmpq %rax, %rdi
je 0x3b8ac
movq 0x158(%rsp), %rsi
incq %rsi
callq 0x72f0
movq 0x58(%rsp), %rdi
leaq 0x68(%rsp), %rax
cmpq %rax, %rdi
je 0x3b8c8
movq 0x68(%rsp), %rsi
incq %rsi
callq 0x72f0
leaq 0x510(%rsp), %rdi
callq 0x70d0
movq 0x180(%rsp), %rdi
testq %rdi, %rdi
je 0x3b8f2
movq 0x190(%rsp), %rsi
subq %rdi, %rsi
callq 0x72f0
leaq 0x3c0(%rsp), %rdi
callq 0xc272
movq 0x3a0(%rsp), %rdi
leaq 0x3b0(%rsp), %rax
cmpq %rax, %rdi
je 0x3b924
movq 0x3b0(%rsp), %rsi
incq %rsi
callq 0x72f0
addq $0x718, %rsp            # imm = 0x718
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
jmp 0x3b9f9
jmp 0x3bcd1
movq %rax, %rbx
jmp 0x3ba3c
jmp 0x3bcd1
jmp 0x3bc06
movq %rax, %rbx
jmp 0x3ba7c
jmp 0x3bcd6
movq %rax, %rbx
jmp 0x3bab5
jmp 0x3bcd6
jmp 0x3bcd1
movq %rax, %rbx
jmp 0x3bd0b
jmp 0x3bc06
movq %rax, %rbx
jmp 0x3bb15
jmp 0x3bc06
movq %rax, %rbx
jmp 0x3bb54
jmp 0x3bc06
movq %rax, %rbx
jmp 0x3bd4c
jmp 0x3bae0
movq %rax, %rbx
movq 0x470(%rsp), %rdi
cmpq %r14, %rdi
je 0x3bd59
movq 0x480(%rsp), %rsi
incq %rsi
callq 0x72f0
jmp 0x3bd59
movq %rax, %rbx
movq 0x1a0(%rsp), %rdi
leaq 0x1b0(%rsp), %rax
cmpq %rax, %rdi
je 0x3b9f9
movq 0x1b0(%rsp), %rsi
incq %rsi
callq 0x72f0
movq 0x3e0(%rsp), %rdi
testq %rdi, %rdi
je 0x3bce6
movq 0x3f0(%rsp), %rsi
jmp 0x3ba55
movq %rax, %rbx
movq 0x1a0(%rsp), %rdi
leaq 0x1b0(%rsp), %rax
cmpq %rax, %rdi
je 0x3ba3c
movq 0x1b0(%rsp), %rsi
incq %rsi
callq 0x72f0
movq 0x3f8(%rsp), %rdi
testq %rdi, %rdi
je 0x3bce6
movq 0x408(%rsp), %rsi
subq %rdi, %rsi
jmp 0x3bca1
movq %rax, %rbx
movq 0x18(%rsp), %rdi
leaq 0x28(%rsp), %rax
cmpq %rax, %rdi
je 0x3ba7c
movq 0x28(%rsp), %rsi
incq %rsi
callq 0x72f0
movq 0x410(%rsp), %rdi
testq %rdi, %rdi
je 0x3bcd9
movq 0x420(%rsp), %rsi
jmp 0x3bace
movq %rax, %rbx
leaq 0x28(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3bab5
movq 0x28(%rsp), %rsi
incq %rsi
callq 0x72f0
movq 0x428(%rsp), %rdi
testq %rdi, %rdi
je 0x3bcd9
movq 0x438(%rsp), %rsi
subq %rdi, %rsi
jmp 0x3bcc6
jmp 0x3bc0e
jmp 0x3bc0e
movq %rax, %rbx
jmp 0x3bd59
jmp 0x3bc13
movq %rax, %rbx
movq 0x1a0(%rsp), %rdi
leaq 0x1b0(%rsp), %rax
cmpq %rax, %rdi
je 0x3bb15
movq 0x1b0(%rsp), %rsi
incq %rsi
callq 0x72f0
movq 0x440(%rsp), %rdi
testq %rdi, %rdi
je 0x3bd30
movq 0x450(%rsp), %rsi
jmp 0x3bb6d
movq %rax, %rbx
leaq 0x1b0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3bb54
movq 0x1b0(%rsp), %rsi
incq %rsi
callq 0x72f0
movq 0x458(%rsp), %rdi
testq %rdi, %rdi
je 0x3bd30
movq 0x468(%rsp), %rsi
subq %rdi, %rsi
jmp 0x3bd2b
jmp 0x3bcd1
jmp 0x3bcd1
jmp 0x3bc7e
jmp 0x3bcd1
jmp 0x3bc7e
jmp 0x3bc0e
jmp 0x3bc0e
jmp 0x3bcd6
jmp 0x3bcac
jmp 0x3bcd6
jmp 0x3bcac
jmp 0x3bc0e
jmp 0x3bc13
jmp 0x3bcd1
jmp 0x3bcd1
jmp 0x3bcd1
jmp 0x3bcd1
jmp 0x3bcd1
jmp 0x3bcd1
jmp 0x3bcd1
jmp 0x3bcd1
jmp 0x3bcd1
jmp 0x3bcd1
jmp 0x3bcd1
jmp 0x3bc7e
jmp 0x3bc7e
jmp 0x3bbef
jmp 0x3bbef
movq %rax, %rbx
jmp 0x3bc60
jmp 0x3bc06
jmp 0x3bc06
jmp 0x3bc0e
jmp 0x3bc13
jmp 0x3bcd1
jmp 0x3bcd6
movq %rax, %rbx
jmp 0x3bd30
movq %rax, %rbx
jmp 0x3bc3b
movq %rax, %rbx
movq 0x90(%rsp), %rdi
leaq 0xa0(%rsp), %rax
cmpq %rax, %rdi
je 0x3bc3b
movq 0xa0(%rsp), %rsi
incq %rsi
callq 0x72f0
movq 0xe8(%rsp), %rdi
leaq 0xf8(%rsp), %rax
cmpq %rax, %rdi
je 0x3bc60
movq 0xf8(%rsp), %rsi
incq %rsi
callq 0x72f0
movq 0x18(%rsp), %rdi
leaq 0x28(%rsp), %rax
cmpq %rax, %rdi
je 0x3bc81
movq 0x28(%rsp), %rsi
incq %rsi
callq 0x72f0
jmp 0x3bc81
movq %rax, %rbx
movq 0x1a0(%rsp), %rdi
leaq 0x1b0(%rsp), %rax
cmpq %rax, %rdi
je 0x3bce6
movq 0x1b0(%rsp), %rsi
incq %rsi
callq 0x72f0
jmp 0x3bce6
jmp 0x3bcd1
jmp 0x3bcd1
movq %rax, %rbx
movq 0x18(%rsp), %rdi
leaq 0x28(%rsp), %rax
cmpq %rax, %rdi
je 0x3bcd9
movq 0x28(%rsp), %rsi
incq %rsi
callq 0x72f0
jmp 0x3bcd9
jmp 0x3bcd6
jmp 0x3bcd6
movq %rax, %rbx
jmp 0x3bce6
movq %rax, %rbx
leaq 0x1a0(%rsp), %rdi
callq 0x74c0
movq 0x108(%rsp), %rdi
leaq 0x118(%rsp), %rax
cmpq %rax, %rdi
je 0x3bd0b
movq 0x118(%rsp), %rsi
incq %rsi
callq 0x72f0
leaq 0x158(%rsp), %rax
movq 0x148(%rsp), %rdi
cmpq %rax, %rdi
je 0x3bd30
movq 0x158(%rsp), %rsi
incq %rsi
callq 0x72f0
leaq 0x68(%rsp), %rax
movq 0x58(%rsp), %rdi
cmpq %rax, %rdi
je 0x3bd4c
movq 0x68(%rsp), %rsi
incq %rsi
callq 0x72f0
leaq 0x510(%rsp), %rdi
callq 0x70d0
movq 0x180(%rsp), %rdi
testq %rdi, %rdi
je 0x3bd76
movq 0x190(%rsp), %rsi
subq %rdi, %rsi
callq 0x72f0
leaq 0x3c0(%rsp), %rdi
callq 0xc272
movq 0x3a0(%rsp), %rdi
leaq 0x3b0(%rsp), %rax
cmpq %rax, %rdi
je 0x3bda8
movq 0x3b0(%rsp), %rsi
incq %rsi
callq 0x72f0
movq %rbx, %rdi
callq 0x7600