// File: /workspace/github_cpp_makefile_star2_O3/readmapping[P]alfalfa/src/performanceUtils.cpp
// Function: checkOracle(samCheckOptions_t&)
void checkOracle(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);
    //fields: input
    samRecord_t oracleUp;
    samRecord_t oracleDown;
    vector<samRecord_t> mapped;
    ifstream oracleFile(opt.oracleSam.c_str());
    ifstream queryFile(opt.querySam.c_str());
    string oracleLine = "";
    string queryLine = "";
    streampos oraclePos = oracleFile.tellg();
    if(oracleFile.good())
        getlijn2(oracleFile, oracleLine);
    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, using oracle SAM file containing the original simulated positions" << endl;
    //print header of both files
    cerr << "header of oracle SAM file: " << endl;
    while(oracleFile.good() && !oracleLine.empty() && oracleLine[0]=='@'){
        cerr << oracleLine << endl;
        oraclePos = oracleFile.tellg();
        getlijn2(oracleFile,oracleLine);
    }
    cerr << "header of query 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
    bool paired = false;
    if(opt.print)
        cerr << "summary of reads: " << endl;
    if(!oracleLine.empty() && oracleLine[0]!='@' && !queryLine.empty() && queryLine[0]!='@'){
        //check if it are paired reads
        samRecord_t tempQuery;
        samRecord_t tempOracle;
        readRecord(oracleLine, tempOracle,opt.otag);
        readRecord(queryLine, tempQuery,opt.qtag);
        paired = tempOracle.flag.test(0);
        oracleFile.seekg(oraclePos);
        if(paired){
            while(oracleFile.good()){//next reads
                getlijn2(oracleFile, oracleLine);
                readRecord(oracleLine, tempOracle,opt.otag);
                if(!tempOracle.qname.empty()){
                    tempOracle.flag.test(6) ? oracleUp = tempOracle : oracleDown = tempOracle;
                    getlijn2(oracleFile, oracleLine);
                    readRecord(oracleLine, tempOracle,opt.otag);
                    tempOracle.flag.test(6) ? oracleUp = tempOracle : oracleDown = tempOracle;
                    mapped.clear();
                    //iterate over the SAM file. To work query should always be more advanced than oracle
                    while(queryFile.good() && !queryLine.empty() && tempQuery.qname.compare(oracleUp.qname)==0){
                        //fill mappedUp
                        if(tempQuery.edit<0 && tempQuery.rname.compare("*")!=0){
                            tempQuery.edit = calculatedDPScore(ref, refdescr, startpos, queryLine);
                        }
                        mapped.push_back(tempQuery);
                        getlijn2(queryFile, queryLine);
                        readRecord(queryLine, tempQuery, opt.qtag); 
                    }
                    if(!queryLine.empty() && tempQuery.qname.compare(oracleUp.qname)==0){//add last query of file
                        if(tempQuery.edit<0 && tempQuery.rname.compare("*")!=0){
                            tempQuery.edit = calculatedDPScore(ref, refdescr, startpos, queryLine);
                        }
                        mapped.push_back(tempQuery);
                    }
                    //process this read's alignments (paired and unpaired)
                    for(size_t i=0; i < mapped.size(); i++){
                        samRecord_t& query = mapped[i];
                        if(!query.flag.test(2)){
                            for(size_t j=0; j < rangeCount; j++){
                                int match = pairedCompareSam(query, query.flag.test(6) ? oracleUp : oracleDown, opt.correctRange[j]);
                                //all
                                results[j][0].addAlignment(match);
                                //unique
                                if(mapped.size()==2) results[j][1].addAlignment(match);
                                //quality values
                                for(size_t k=0; k < qualValCount; k++)
                                    if(query.mapq >= opt.qualityValues[k])
                                        results[j][2+k].addAlignment(match);
                            }
                        }
                    }
                    //sumarize for read
                    for(size_t j=0; j < rangeCount; j++){
                        if(opt.print)
                            cerr << oracleUp.qname << "\t" << (results[j][0].tempReadResult==0 ? 0 : 1) << 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
                }
            }
        }
        else{
            while(oracleFile.good()){//next reads
                getlijn2(oracleFile, oracleLine);
                readRecord(oracleLine, oracleUp,opt.otag);
                if(!oracleUp.qname.empty()){
                    mapped.clear();
                    //iterate over the SAM file. To work query should always be more advanced than oracle
                    while(queryFile.good() && !queryLine.empty() && tempQuery.qname.compare(oracleUp.qname)==0){
                        //fill mappedUp
                        if(tempQuery.edit<0 && tempQuery.rname.compare("*")!=0){
                            tempQuery.edit = calculatedDPScore(ref, refdescr, startpos, queryLine);
                        }
                        mapped.push_back(tempQuery);
                        getlijn2(queryFile, queryLine);
                        readRecord(queryLine, tempQuery, opt.qtag); 
                    }
                    if(!queryLine.empty() && tempQuery.qname.compare(oracleUp.qname)==0){//add last query of file
                        if(tempQuery.edit<0 && tempQuery.rname.compare("*")!=0){
                            tempQuery.edit = calculatedDPScore(ref, refdescr, startpos, queryLine);
                        }
                        mapped.push_back(tempQuery);
                    }
                    //process this read's alignments
                    for(size_t i=0; i < mapped.size(); i++){
                        if(!mapped[i].flag.test(2)){
                            for(size_t j=0; j < rangeCount; j++){
                                int match = unpairedCompareSam(mapped[i], oracleUp, opt.correctRange[j]);
                                //all
                                results[j][0].addAlignment(match);
                                //unique
                                if(mapped.size()==1) results[j][1].addAlignment(match);
                                //quality values
                                for(size_t k=0; k < qualValCount; k++)
                                    if(mapped[i].mapq >= opt.qualityValues[k])
                                        results[j][2+k].addAlignment(match);
                            }
                        }
                    }
                    //sumarize for read
                    for(size_t j=0; j < rangeCount; j++){
                        if(opt.print)
                            cerr << oracleUp.qname << "\t" << (results[j][0].tempReadResult==0 ? 0 : 1) << 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();
    oracleFile.close();
    cerr << endl;
    cerr << "printing results" << endl;
    cerr << "Warning, these results only make sense if both the oracle and query file are 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 both the oracle and query file are 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 << "##SAM file containing simulated origins: " << opt.oracleSam << 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?: " << paired << 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 both the oracle and query file are 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 << "##SAM file containing simulated origins: " << opt.oracleSam << 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?: " << paired << 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 $0xa68, %rsp            # imm = 0xA68
movq %rdi, %r13
leaq 0x1a0(%rsp), %rcx
movq %rcx, -0x10(%rcx)
xorl %eax, %eax
movq %rax, -0x8(%rcx)
movb $0x0, (%rcx)
movq %rax, 0x180(%rsp)
xorps %xmm0, %xmm0
movaps %xmm0, 0x170(%rsp)
movq %rax, 0x160(%rsp)
movaps %xmm0, 0x150(%rsp)
leaq 0x5c0(%rsp), %r14
movq %r14, -0x10(%r14)
movq 0x48(%rdi), %rsi
movq 0x50(%rdi), %rdx
addq %rsi, %rdx
leaq 0x5b0(%rsp), %rdi
callq 0xc1d8
leaq 0x5b0(%rsp), %rdi
leaq 0x190(%rsp), %rsi
leaq 0x170(%rsp), %rdx
leaq 0x150(%rsp), %rcx
callq 0x1970e
movq 0x5b0(%rsp), %rdi
cmpq %r14, %rdi
je 0x35691
movq 0x5c0(%rsp), %rsi
incq %rsi
callq 0x72f0
leaq 0x4e8(%rsp), %rdi
callq 0x3da76
leaq 0x5d0(%rsp), %rdi
callq 0x3da76
xorps %xmm0, %xmm0
movaps %xmm0, 0x80(%rsp)
movq $0x0, 0x90(%rsp)
movq 0x28(%r13), %rsi
leaq 0x658(%rsp), %rdi
movl $0x8, %edx
callq 0x7640
movq 0x70(%r13), %rsi
leaq 0x860(%rsp), %rdi
movl $0x8, %edx
callq 0x7640
leaq 0xb8(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0xb31d(%rip), %rdx      # 0x40a1e
leaq 0xa8(%rsp), %rdi
movq %rdx, %rsi
callq 0xc2d0
leaq 0x70(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0xb2fd(%rip), %rdx      # 0x40a1e
leaq 0x60(%rsp), %rdi
movq %rdx, %rsi
callq 0xc2d0
leaq 0x658(%rsp), %rdi
callq 0x75e0
movq %rdx, 0x58(%rsp)
movq %rax, %rbp
movq 0x658(%rsp), %rax
movq -0x18(%rax), %rax
cmpl $0x0, 0x678(%rsp,%rax)
jne 0x3576e
leaq 0x658(%rsp), %rdi
leaq 0xa8(%rsp), %rsi
callq 0x349dc
movq 0x860(%rsp), %rax
movq -0x18(%rax), %rax
cmpl $0x0, 0x880(%rsp,%rax)
jne 0x35796
leaq 0x860(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x349dc
movq 0xc8(%r13), %rax
movq 0xc0(%r13), %rcx
movq %rax, 0x28(%rsp)
movq %rcx, 0x20(%rsp)
subq %rcx, %rax
movq %rax, %rcx
sarq $0x2, %rcx
movq 0xa8(%r13), %rdx
movq %rdx, 0x48(%rsp)
movq 0xb0(%r13), %rdx
movq %rdx, 0x40(%rsp)
movq %rcx, 0x30(%rsp)
shrq $0x3d, %rcx
addq %rax, %rax
xorl %edi, %edi
negq %rcx
sbbq %rdi, %rdi
orq %rax, %rdi
callq 0x7030
movq %rax, 0x18(%rsp)
movq 0x40(%rsp), %rax
subq 0x48(%rsp), %rax
sarq $0x2, %rax
movq %rax, 0xa0(%rsp)
movq 0x20(%rsp), %rax
cmpq %rax, 0x28(%rsp)
movq %r13, 0x8(%rsp)
je 0x358ef
movq 0xa0(%rsp), %r13
leaq 0x2(%r13), %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
movq 0x30(%rsp), %r12
cmpq $0x1, %r12
adcq $0x0, %r12
shlq $0x6, %r13
subq $-0x80, %r13
movq %rbx, %rdi
callq 0x7030
testq %r14, %r14
xorps %xmm0, %xmm0
je 0x3588a
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 0x3586e
movq 0x18(%rsp), %rcx
movq %rax, (%rcx,%r15,8)
incq %r15
cmpq %r12, %r15
jne 0x3585c
movq 0x20(%rsp), %rax
cmpq %rax, 0x28(%rsp)
movq 0x8(%rsp), %r13
je 0x358ef
movq 0x30(%rsp), %rax
cmpq $0x1, %rax
adcq $0x0, %rax
xorl %ecx, %ecx
xorps %xmm0, %xmm0
testq %r14, %r14
je 0x358e7
movq 0x18(%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 0x358cf
incq %rcx
cmpq %rax, %rcx
jne 0x358be
movq 0x1e6f2(%rip), %rbx     # 0x53fe8
leaq 0x1044d(%rip), %rsi     # 0x45d4a
movl $0x69, %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 0x1e6c0(%rip), %rdi     # 0x53fe8
callq 0x7040
movq %rax, %rdi
callq 0x71d0
movq 0x1e6ac(%rip), %rbx     # 0x53fe8
leaq 0x10471(%rip), %rsi     # 0x45db4
movl $0x1b, %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 0x1e67a(%rip), %rdi     # 0x53fe8
callq 0x7040
movq %rax, %rdi
callq 0x71d0
movq 0x658(%rsp), %rax
movq -0x18(%rax), %rax
cmpl $0x0, 0x678(%rsp,%rax)
je 0x35d0e
movq 0x1e64c(%rip), %rbx     # 0x53fe8
leaq 0x1042d(%rip), %rsi     # 0x45dd0
movl $0x1a, %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 0x1e61a(%rip), %rdi     # 0x53fe8
callq 0x7040
movq %rax, %rdi
callq 0x71d0
leaq 0xc0(%r13), %rax
movq %rax, 0x38(%rsp)
leaq 0xa8(%r13), %rax
movq %rax, 0x50(%rsp)
movq 0x1e5ee(%rip), %rbx     # 0x53fe8
leaq 0x860(%rsp), %r14
leaq 0x60(%rsp), %r12
movq 0x860(%rsp), %rax
movq -0x18(%rax), %rax
cmpl $0x0, 0x880(%rsp,%rax)
jne 0x35a70
movq 0x68(%rsp), %rdx
testq %rdx, %rdx
je 0x35a70
movq 0x60(%rsp), %rsi
cmpb $0x40, (%rsi)
jne 0x35a70
movq %rbx, %rdi
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
movq %r14, %rdi
movq %r12, %rsi
callq 0x349dc
jmp 0x35a07
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
movq 0x1e55a(%rip), %rdi     # 0x53fe8
callq 0x7040
movq %rax, %rdi
callq 0x71d0
movq 0x1e546(%rip), %rdi     # 0x53fe8
leaq 0x10342(%rip), %rsi     # 0x45deb
movl $0x3b, %edx
callq 0x7340
leaq 0x4d0(%rsp), %rdi
movq 0x38(%rsp), %rsi
callq 0x3dc2a
leaq 0x1b0(%rsp), %rdi
leaq 0x4d0(%rsp), %rsi
callq 0x3db3b
movq 0x1b0(%rsp), %rsi
movq 0x1b8(%rsp), %rdx
movq 0x1e4f7(%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 0x1c0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x35b41
movq 0x1c0(%rsp), %rsi
incq %rsi
callq 0x72f0
movq 0x4d0(%rsp), %rdi
testq %rdi, %rdi
je 0x35b5e
movq 0x4e0(%rsp), %rsi
subq %rdi, %rsi
callq 0x72f0
movq 0x1e483(%rip), %rdi     # 0x53fe8
leaq 0x102bb(%rip), %rsi     # 0x45e27
movl $0x47, %edx
callq 0x7340
leaq 0x4b8(%rsp), %rdi
movq 0x50(%rsp), %rsi
callq 0x3dc2a
leaq 0x1b0(%rsp), %rdi
leaq 0x4b8(%rsp), %rsi
callq 0x3db3b
movq 0x1b0(%rsp), %rsi
movq 0x1b8(%rsp), %rdx
movq 0x1e434(%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 0x1b0(%rsp), %rdi
leaq 0x1c0(%rsp), %rax
cmpq %rax, %rdi
je 0x35c08
movq 0x1c0(%rsp), %rsi
incq %rsi
callq 0x72f0
movq 0x4b8(%rsp), %rdi
testq %rdi, %rdi
je 0x35c25
movq 0x4c8(%rsp), %rsi
subq %rdi, %rsi
callq 0x72f0
movq 0x1e3bc(%rip), %rbx     # 0x53fe8
leaq 0x1023c(%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 0x1e38a(%rip), %rdi     # 0x53fe8
callq 0x7040
movq %rax, %rdi
callq 0x71d0
cmpb $0x1, 0x69(%r13)
jne 0x35cb8
movq 0x1e36f(%rip), %rbx     # 0x53fe8
leaq 0x10214(%rip), %rsi     # 0x45e94
movl $0x12, %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 0x1e33d(%rip), %rdi     # 0x53fe8
callq 0x7040
movq %rax, %rdi
callq 0x71d0
cmpq $0x0, 0xb0(%rsp)
je 0x35cfd
movq 0xa8(%rsp), %rax
movq $0x0, 0x10(%rsp)
cmpb $0x40, (%rax)
movl $0x0, %r14d
je 0x36d66
cmpq $0x0, 0x68(%rsp)
je 0x36d66
movq 0x60(%rsp), %rax
cmpb $0x40, (%rax)
jne 0x35dc4
xorl %r14d, %r14d
movq $0x0, 0x10(%rsp)
jmp 0x36d66
movq 0xb0(%rsp), %rdx
testq %rdx, %rdx
je 0x35995
movq 0x1e2c2(%rip), %rbx     # 0x53fe8
leaq 0x658(%rsp), %r14
leaq 0xa8(%rsp), %r15
movq 0xa8(%rsp), %rsi
cmpb $0x40, (%rsi)
jne 0x35995
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
callq 0x75e0
movq %rdx, 0x58(%rsp)
movq %rax, %rbp
movq %r14, %rdi
movq %r15, %rsi
callq 0x349dc
movq 0x658(%rsp), %rax
movq -0x18(%rax), %rax
cmpl $0x0, 0x678(%rsp,%rax)
jne 0x35995
movq 0xb0(%rsp), %rdx
testq %rdx, %rdx
jne 0x35d36
jmp 0x35995
leaq 0x1b0(%rsp), %rdi
callq 0x3da76
leaq 0xc8(%rsp), %rdi
callq 0x3da76
leaq 0x5a0(%rsp), %r14
movq %r14, -0x10(%r14)
movq 0xf8(%r13), %rsi
movq 0x100(%r13), %rdx
addq %rsi, %rdx
leaq 0x590(%rsp), %rdi
callq 0xc1d8
leaq 0xa8(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
leaq 0x590(%rsp), %rdx
callq 0x34a17
movq 0x590(%rsp), %rdi
cmpq %r14, %rdi
je 0x35e42
movq 0x5a0(%rsp), %rsi
incq %rsi
callq 0x72f0
leaq 0x580(%rsp), %r14
movq %r14, -0x10(%r14)
movq 0xd8(%r13), %rsi
movq 0xe0(%r13), %rdx
addq %rsi, %rdx
leaq 0x570(%rsp), %rdi
callq 0xc1d8
leaq 0x60(%rsp), %rdi
leaq 0x1b0(%rsp), %rsi
leaq 0x570(%rsp), %rdx
callq 0x34a17
movq 0x570(%rsp), %rdi
cmpq %r14, %rdi
je 0x35ea3
movq 0x580(%rsp), %rsi
incq %rsi
callq 0x72f0
movq 0xe8(%rsp), %rbx
leaq 0x658(%rsp), %rdi
movq %rbp, %rsi
movq 0x58(%rsp), %rdx
callq 0x73f0
movq 0x658(%rsp), %rax
movq -0x18(%rax), %rax
movl 0x678(%rsp,%rax), %eax
testb $0x1, %bl
movq %rbx, 0x450(%rsp)
je 0x366f5
testl %eax, %eax
jne 0x366f9
leaq 0x440(%rsp), %r12
leaq 0x510(%rsp), %rbx
leaq 0xf0(%rsp), %rbp
movq 0xa0(%rsp), %r15
cmpq $0x1, %r15
adcq $0x0, %r15
movq 0x30(%rsp), %r14
cmpq $0x1, %r14
adcq $0x0, %r14
movq $0x0, 0x10(%rsp)
leaq 0x658(%rsp), %rdi
leaq 0xa8(%rsp), %rsi
callq 0x349dc
movq %r12, 0x430(%rsp)
movq 0xf8(%r13), %rsi
movq 0x100(%r13), %rdx
addq %rsi, %rdx
leaq 0x430(%rsp), %rdi
callq 0xc1d8
leaq 0xa8(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
leaq 0x430(%rsp), %rdx
callq 0x34a17
movq 0x430(%rsp), %rdi
cmpq %r12, %rdi
je 0x35f9f
movq 0x440(%rsp), %rsi
incq %rsi
callq 0x72f0
cmpq $0x0, 0xd0(%rsp)
je 0x366d6
testb $0x40, 0xe8(%rsp)
jne 0x36022
leaq 0x5d0(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
callq 0x7170
movq 0xe8(%rsp), %rax
movq %rax, 0x5f0(%rsp)
leaq 0x5f8(%rsp), %rdi
movq %rbp, %rsi
callq 0x7170
movl 0x28(%rbp), %eax
leaq 0x5f8(%rsp), %rcx
movl %eax, 0x28(%rcx)
movq 0x20(%rbp), %rax
movq %rax, 0x20(%rcx)
leaq 0x628(%rsp), %rdi
leaq 0x120(%rsp), %rsi
callq 0x7170
leaq 0x648(%rsp), %rax
jmp 0x3607d
leaq 0x4e8(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
callq 0x7170
movq 0xe8(%rsp), %rax
movq %rax, 0x508(%rsp)
movq %rbx, %rdi
movq %rbp, %rsi
callq 0x7170
movl 0x28(%rbp), %eax
movl %eax, 0x28(%rbx)
movq 0x20(%rbp), %rax
movq %rax, 0x20(%rbx)
leaq 0x540(%rsp), %rdi
leaq 0x120(%rsp), %rsi
callq 0x7170
leaq 0x560(%rsp), %rax
movl 0x58(%rbp), %ecx
movl %ecx, 0x8(%rax)
movq 0x50(%rbp), %rcx
movq %rcx, (%rax)
leaq 0x658(%rsp), %rdi
leaq 0xa8(%rsp), %rsi
callq 0x349dc
leaq 0x420(%rsp), %rax
movq %rax, 0x410(%rsp)
movq 0xf8(%r13), %rsi
movq 0x100(%r13), %rdx
addq %rsi, %rdx
leaq 0x410(%rsp), %rdi
callq 0xc1d8
leaq 0xa8(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
leaq 0x410(%rsp), %rdx
callq 0x34a17
movq 0x410(%rsp), %rdi
leaq 0x420(%rsp), %rax
cmpq %rax, %rdi
je 0x3610f
movq 0x420(%rsp), %rsi
incq %rsi
callq 0x72f0
testb $0x40, 0xe8(%rsp)
jne 0x36183
leaq 0x5d0(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
callq 0x7170
movq 0xe8(%rsp), %rax
movq %rax, 0x5f0(%rsp)
leaq 0x5f8(%rsp), %rdi
movq %rbp, %rsi
callq 0x7170
movl 0x28(%rbp), %eax
leaq 0x5f8(%rsp), %rcx
movl %eax, 0x28(%rcx)
movq 0x20(%rbp), %rax
movq %rax, 0x20(%rcx)
leaq 0x628(%rsp), %rdi
leaq 0x120(%rsp), %rsi
callq 0x7170
leaq 0x648(%rsp), %rax
jmp 0x361de
leaq 0x4e8(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
callq 0x7170
movq 0xe8(%rsp), %rax
movq %rax, 0x508(%rsp)
movq %rbx, %rdi
movq %rbp, %rsi
callq 0x7170
movl 0x28(%rbp), %eax
movl %eax, 0x28(%rbx)
movq 0x20(%rbp), %rax
movq %rax, 0x20(%rbx)
leaq 0x540(%rsp), %rdi
leaq 0x120(%rsp), %rsi
callq 0x7170
leaq 0x560(%rsp), %rax
movl 0x58(%rbp), %ecx
movl %ecx, 0x8(%rax)
movq 0x50(%rbp), %rcx
movq %rcx, (%rax)
movq 0x80(%rsp), %rsi
leaq 0x80(%rsp), %rdi
callq 0x3ddca
movq 0x860(%rsp), %rax
movq -0x18(%rax), %rax
cmpl $0x0, 0x880(%rsp,%rax)
jne 0x36367
cmpq $0x0, 0x68(%rsp)
je 0x36417
movq 0x1b8(%rsp), %rbx
movq 0x4f0(%rsp), %r13
cmpq %rbx, %r13
movq %rbx, %rdx
cmovbq %r13, %rdx
testq %rdx, %rdx
je 0x36271
movq 0x4e8(%rsp), %rsi
movq 0x1b0(%rsp), %rdi
callq 0x7300
cmpq %r13, %rbx
movq 0x8(%rsp), %rbx
jne 0x36367
testl %eax, %eax
je 0x3627f
jmp 0x36367
cmpq %r13, %rbx
movq 0x8(%rsp), %rbx
jne 0x36367
cmpl $0x0, 0x230(%rsp)
jns 0x362ca
leaq 0x1d8(%rsp), %rdi
leaq 0x9dea(%rip), %rsi      # 0x40082
callq 0x70f0
testl %eax, %eax
je 0x362ca
leaq 0x190(%rsp), %rdi
leaq 0x170(%rsp), %rsi
leaq 0x150(%rsp), %rdx
leaq 0x60(%rsp), %rcx
callq 0x34fe4
movl %eax, 0x230(%rsp)
leaq 0x80(%rsp), %rdi
leaq 0x1b0(%rsp), %rsi
callq 0x3dcaa
leaq 0x860(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x349dc
leaq 0x400(%rsp), %rax
movq %rax, 0x3f0(%rsp)
movq 0xd8(%rbx), %rsi
movq 0xe0(%rbx), %rdx
addq %rsi, %rdx
leaq 0x3f0(%rsp), %rdi
callq 0xc1d8
leaq 0x60(%rsp), %rdi
leaq 0x1b0(%rsp), %rsi
leaq 0x3f0(%rsp), %rdx
callq 0x34a17
movq 0x3f0(%rsp), %rdi
leaq 0x400(%rsp), %rax
cmpq %rax, %rdi
je 0x36200
movq 0x400(%rsp), %rsi
incq %rsi
callq 0x72f0
jmp 0x36200
cmpq $0x0, 0x68(%rsp)
je 0x36417
movq 0x1b8(%rsp), %rbx
movq 0x4f0(%rsp), %r13
cmpq %rbx, %r13
movq %rbx, %rdx
cmovbq %r13, %rdx
testq %rdx, %rdx
je 0x363b2
movq 0x4e8(%rsp), %rsi
movq 0x1b0(%rsp), %rdi
callq 0x7300
cmpq %r13, %rbx
jne 0x36417
testl %eax, %eax
je 0x363b7
jmp 0x36417
cmpq %r13, %rbx
jne 0x36417
cmpl $0x0, 0x230(%rsp)
jns 0x36402
leaq 0x1d8(%rsp), %rdi
leaq 0x9cb2(%rip), %rsi      # 0x40082
callq 0x70f0
testl %eax, %eax
je 0x36402
leaq 0x190(%rsp), %rdi
leaq 0x170(%rsp), %rsi
leaq 0x150(%rsp), %rdx
leaq 0x60(%rsp), %rcx
callq 0x34fe4
movl %eax, 0x230(%rsp)
leaq 0x80(%rsp), %rdi
leaq 0x1b0(%rsp), %rsi
callq 0x3dcaa
movq 0x80(%rsp), %rcx
movq 0x88(%rsp), %rdx
cmpq %rcx, %rdx
je 0x36577
xorl %r13d, %r13d
movq 0x20(%rsp), %rax
cmpq %rax, 0x28(%rsp)
setne %sil
movq %r13, %rax
shlq $0x7, %rax
leaq (%rax,%r13,8), %rax
testb $0x4, 0x20(%rcx,%rax)
sete %dil
testb %sil, %dil
jne 0x36465
movq %rdx, %rsi
subq %rcx, %rsi
jmp 0x36559
movq %rcx, %rbx
addq %rax, %rbx
xorl %ebp, %ebp
testb $0x40, 0x20(%rbx)
leaq 0x4e8(%rsp), %rsi
leaq 0x5d0(%rsp), %rax
cmoveq %rax, %rsi
movq 0x38(%rsp), %rax
movq (%rax), %rax
movl (%rax,%rbp,4), %edx
movq %rbx, %rdi
callq 0x34f5f
movq 0x18(%rsp), %rcx
movq (%rcx,%rbp,8), %rdi
movl 0x38(%rdi), %ecx
cmpl %eax, %ecx
cmovlel %eax, %ecx
movl %ecx, 0x38(%rdi)
incq (%rdi)
xorl %ecx, %ecx
cmpl $0x1, %eax
setne %cl
leaq 0x10(,%rcx,8), %r8
cmpl $0x2, %eax
movl $0x8, %ecx
cmoveq %rcx, %r8
incq (%rdi,%r8)
movq 0x80(%rsp), %rcx
movq 0x88(%rsp), %rdx
movq %rdx, %rsi
subq %rcx, %rsi
cmpq $0x110, %rsi            # imm = 0x110
jne 0x36506
movl 0x78(%rdi), %r9d
cmpl %eax, %r9d
cmovlel %eax, %r9d
movl %r9d, 0x78(%rdi)
incq 0x40(%rdi)
incq 0x40(%rdi,%r8)
movq 0x40(%rsp), %r9
cmpq 0x48(%rsp), %r9
je 0x3654d
movl 0x50(%rbx), %r9d
movq 0x50(%rsp), %r10
movq (%r10), %r10
subq $-0x80, %rdi
xorl %r11d, %r11d
cmpl (%r10,%r11,4), %r9d
jl 0x36541
movl 0x38(%rdi), %r12d
cmpl %eax, %r12d
cmovlel %eax, %r12d
movl %r12d, 0x38(%rdi)
incq (%rdi)
incq (%rdi,%r8)
incq %r11
addq $0x40, %rdi
cmpq %r11, %r15
jne 0x36525
incq %rbp
cmpq %r14, %rbp
jne 0x3646d
incq %r13
sarq $0x3, %rsi
movabsq $-0xf0f0f0f0f0f0f0f, %rax # imm = 0xF0F0F0F0F0F0F0F1
imulq %rax, %rsi
cmpq %rsi, %r13
jb 0x36433
movq 0x20(%rsp), %rax
cmpq %rax, 0x28(%rsp)
je 0x366b4
xorl %r13d, %r13d
movq 0x8(%rsp), %rax
cmpb $0x0, 0x69(%rax)
je 0x3660f
movq 0x4e8(%rsp), %rsi
movq 0x4f0(%rsp), %rdx
movq 0x1da3c(%rip), %rdi     # 0x53fe8
callq 0x7340
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
leaq 0xa45a(%rip), %rsi      # 0x40a1d
callq 0x7340
movq 0x18(%rsp), %rax
movq (%rax,%r13,8), %rbp
xorl %esi, %esi
cmpl $0x0, 0x38(%rbp)
setne %sil
movq %rbx, %rdi
callq 0x75d0
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
jmp 0x36618
movq 0x18(%rsp), %rax
movq (%rax,%r13,8), %rbp
movl 0x38(%rbp), %eax
xorl %ecx, %ecx
cmpl $0x1, %eax
setne %cl
leaq 0x28(,%rcx,8), %rcx
cmpl $0x2, %eax
movl $0x20, %esi
cmoveq %rsi, %rcx
incq (%rbp,%rcx)
xorl %edx, %edx
movl %edx, 0x38(%rbp)
movl 0x78(%rbp), %eax
xorl %ecx, %ecx
cmpl $0x1, %eax
setne %cl
leaq 0x28(,%rcx,8), %rcx
cmpl $0x2, %eax
cmoveq %rsi, %rcx
incq 0x40(%rbp,%rcx)
movl %edx, 0x78(%rbp)
movq 0x40(%rsp), %rax
cmpq 0x48(%rsp), %rax
je 0x366a8
addq $0xb8, %rbp
movq %r15, %rax
movl (%rbp), %ecx
xorl %edx, %edx
cmpl $0x1, %ecx
setne %dl
leaq 0x28(,%rdx,8), %rdx
cmpl $0x2, %ecx
cmoveq %rsi, %rdx
incq -0x38(%rbp,%rdx)
movl $0x0, (%rbp)
addq $0x40, %rbp
decq %rax
jne 0x36679
incq %r13
cmpq %r14, %r13
jne 0x3658a
incq 0x10(%rsp)
movq 0x8(%rsp), %r13
leaq 0x440(%rsp), %r12
leaq 0x510(%rsp), %rbx
leaq 0xf0(%rsp), %rbp
movq 0x658(%rsp), %rax
movq -0x18(%rax), %rax
cmpl $0x0, 0x678(%rsp,%rax)
je 0x35f2a
jmp 0x36c90
testl %eax, %eax
je 0x36707
movq $0x0, 0x10(%rsp)
jmp 0x36c90
movq 0xa0(%rsp), %r14
cmpq $0x1, %r14
adcq $0x0, %r14
movq 0x30(%rsp), %r12
cmpq $0x1, %r12
adcq $0x0, %r12
movq $0x0, 0x10(%rsp)
leaq 0x658(%rsp), %rdi
leaq 0xa8(%rsp), %rsi
callq 0x349dc
leaq 0x3e0(%rsp), %rax
movq %rax, 0x3d0(%rsp)
movq 0xf8(%r13), %rsi
movq 0x100(%r13), %rdx
addq %rsi, %rdx
leaq 0x3d0(%rsp), %rdi
callq 0xc1d8
leaq 0xa8(%rsp), %rdi
leaq 0x4e8(%rsp), %rsi
leaq 0x3d0(%rsp), %rdx
callq 0x34a17
movq 0x3d0(%rsp), %rdi
leaq 0x3e0(%rsp), %rax
cmpq %rax, %rdi
je 0x367b2
movq 0x3e0(%rsp), %rsi
incq %rsi
callq 0x72f0
cmpq $0x0, 0x4f0(%rsp)
je 0x36c76
movq 0x80(%rsp), %rsi
leaq 0x80(%rsp), %rdi
callq 0x3ddca
movq 0x860(%rsp), %rax
movq -0x18(%rax), %rax
cmpl $0x0, 0x880(%rsp,%rax)
jne 0x36933
cmpq $0x0, 0x68(%rsp)
je 0x369e3
movq 0x1b8(%rsp), %rbx
movq 0x4f0(%rsp), %r15
cmpq %rbx, %r15
movq %rbx, %rdx
cmovbq %r15, %rdx
testq %rdx, %rdx
je 0x36842
movq 0x4e8(%rsp), %rsi
movq 0x1b0(%rsp), %rdi
callq 0x7300
cmpq %r15, %rbx
jne 0x36933
testl %eax, %eax
je 0x3684b
jmp 0x36933
cmpq %r15, %rbx
jne 0x36933
cmpl $0x0, 0x230(%rsp)
jns 0x36896
leaq 0x1d8(%rsp), %rdi
leaq 0x981e(%rip), %rsi      # 0x40082
callq 0x70f0
testl %eax, %eax
je 0x36896
leaq 0x190(%rsp), %rdi
leaq 0x170(%rsp), %rsi
leaq 0x150(%rsp), %rdx
leaq 0x60(%rsp), %rcx
callq 0x34fe4
movl %eax, 0x230(%rsp)
leaq 0x80(%rsp), %rdi
leaq 0x1b0(%rsp), %rsi
callq 0x3dcaa
leaq 0x860(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x349dc
leaq 0x3c0(%rsp), %rax
movq %rax, 0x3b0(%rsp)
movq 0xd8(%r13), %rsi
movq 0xe0(%r13), %rdx
addq %rsi, %rdx
leaq 0x3b0(%rsp), %rdi
callq 0xc1d8
leaq 0x60(%rsp), %rdi
leaq 0x1b0(%rsp), %rsi
leaq 0x3b0(%rsp), %rdx
callq 0x34a17
movq 0x3b0(%rsp), %rdi
leaq 0x3c0(%rsp), %rax
cmpq %rax, %rdi
je 0x367d6
movq 0x3c0(%rsp), %rsi
incq %rsi
callq 0x72f0
jmp 0x367d6
cmpq $0x0, 0x68(%rsp)
je 0x369e3
movq 0x1b8(%rsp), %rbx
movq 0x4f0(%rsp), %r15
cmpq %rbx, %r15
movq %rbx, %rdx
cmovbq %r15, %rdx
testq %rdx, %rdx
je 0x3697e
movq 0x4e8(%rsp), %rsi
movq 0x1b0(%rsp), %rdi
callq 0x7300
cmpq %r15, %rbx
jne 0x369e3
testl %eax, %eax
je 0x36983
jmp 0x369e3
cmpq %r15, %rbx
jne 0x369e3
cmpl $0x0, 0x230(%rsp)
jns 0x369ce
leaq 0x1d8(%rsp), %rdi
leaq 0x96e6(%rip), %rsi      # 0x40082
callq 0x70f0
testl %eax, %eax
je 0x369ce
leaq 0x190(%rsp), %rdi
leaq 0x170(%rsp), %rsi
leaq 0x150(%rsp), %rdx
leaq 0x60(%rsp), %rcx
callq 0x34fe4
movl %eax, 0x230(%rsp)
leaq 0x80(%rsp), %rdi
leaq 0x1b0(%rsp), %rsi
callq 0x3dcaa
movq 0x80(%rsp), %rdi
movq 0x88(%rsp), %rcx
cmpq %rdi, %rcx
je 0x36b2b
xorl %ebx, %ebx
movq 0x20(%rsp), %rax
cmpq %rax, 0x28(%rsp)
sete %al
movq %rbx, %rdx
shlq $0x7, %rdx
leaq (%rdx,%rbx,8), %r15
movb 0x20(%rdi,%r15), %dl
andb $0x4, %dl
shrb $0x2, %dl
orb %al, %dl
je 0x36a30
movq %rcx, %rdx
subq %rdi, %rdx
jmp 0x36b0d
xorl %r13d, %r13d
addq %r15, %rdi
movq 0x38(%rsp), %rax
movq (%rax), %rax
movl (%rax,%r13,4), %edx
leaq 0x4e8(%rsp), %rsi
callq 0x34ee0
movq 0x18(%rsp), %rcx
movq (%rcx,%r13,8), %rsi
movl 0x38(%rsi), %ecx
cmpl %eax, %ecx
cmovlel %eax, %ecx
movl %ecx, 0x38(%rsi)
incq (%rsi)
xorl %ecx, %ecx
cmpl $0x1, %eax
setne %cl
leaq 0x10(,%rcx,8), %r8
cmpl $0x2, %eax
movl $0x8, %ecx
cmoveq %rcx, %r8
incq (%rsi,%r8)
movq 0x80(%rsp), %rdi
movq 0x88(%rsp), %rcx
movq %rcx, %rdx
subq %rdi, %rdx
cmpq $0x88, %rdx
jne 0x36abd
movl 0x78(%rsi), %r9d
cmpl %eax, %r9d
cmovlel %eax, %r9d
movl %r9d, 0x78(%rsi)
incq 0x40(%rsi)
incq 0x40(%rsi,%r8)
movq 0x40(%rsp), %r9
cmpq 0x48(%rsp), %r9
je 0x36b01
movl 0x50(%rdi,%r15), %r9d
movq 0x50(%rsp), %r10
movq (%r10), %r10
subq $-0x80, %rsi
xorl %r11d, %r11d
cmpl (%r10,%r11,4), %r9d
jl 0x36af5
movl 0x38(%rsi), %ebp
cmpl %eax, %ebp
cmovlel %eax, %ebp
movl %ebp, 0x38(%rsi)
incq (%rsi)
incq (%rsi,%r8)
incq %r11
addq $0x40, %rsi
cmpq %r11, %r14
jne 0x36add
incq %r13
cmpq %r12, %r13
jne 0x36a33
incq %rbx
sarq $0x3, %rdx
movabsq $-0xf0f0f0f0f0f0f0f, %rax # imm = 0xF0F0F0F0F0F0F0F1
imulq %rax, %rdx
cmpq %rdx, %rbx
jb 0x369fe
movq 0x20(%rsp), %rax
cmpq %rax, 0x28(%rsp)
je 0x36c6c
xorl %r13d, %r13d
movq 0x8(%rsp), %rax
cmpb $0x0, 0x69(%rax)
je 0x36bc4
movq 0x4e8(%rsp), %rsi
movq 0x4f0(%rsp), %rdx
movq 0x1d488(%rip), %rdi     # 0x53fe8
callq 0x7340
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
leaq 0x9ea6(%rip), %rsi      # 0x40a1d
callq 0x7340
movq 0x18(%rsp), %rax
movq (%rax,%r13,8), %r15
xorl %esi, %esi
cmpl $0x0, 0x38(%r15)
setne %sil
movq %rbx, %rdi
callq 0x75d0
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
jmp 0x36bcd
movq 0x18(%rsp), %rax
movq (%rax,%r13,8), %r15
movl 0x38(%r15), %eax
xorl %ecx, %ecx
cmpl $0x1, %eax
setne %cl
leaq 0x28(,%rcx,8), %rcx
cmpl $0x2, %eax
movl $0x20, %esi
cmoveq %rsi, %rcx
incq (%r15,%rcx)
xorl %edx, %edx
movl %edx, 0x38(%r15)
movl 0x78(%r15), %eax
xorl %ecx, %ecx
cmpl $0x1, %eax
setne %cl
leaq 0x28(,%rcx,8), %rcx
cmpl $0x2, %eax
cmoveq %rsi, %rcx
incq 0x40(%r15,%rcx)
movl %edx, 0x78(%r15)
movq 0x40(%rsp), %rax
cmpq 0x48(%rsp), %rax
je 0x36c60
addq $0xb8, %r15
movq %r14, %rax
movl (%r15), %ecx
xorl %edx, %edx
cmpl $0x1, %ecx
setne %dl
leaq 0x28(,%rdx,8), %rdx
cmpl $0x2, %ecx
cmoveq %rsi, %rdx
incq -0x38(%r15,%rdx)
movl $0x0, (%r15)
addq $0x40, %r15
decq %rax
jne 0x36c31
incq %r13
cmpq %r12, %r13
jne 0x36b3e
incq 0x10(%rsp)
movq 0x8(%rsp), %r13
movq 0x658(%rsp), %rax
movq -0x18(%rax), %rax
cmpl $0x0, 0x678(%rsp,%rax)
je 0x3672d
leaq 0x130(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x36cb1
movq 0x130(%rsp), %rsi
incq %rsi
callq 0x72f0
leaq 0x100(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
movq 0x450(%rsp), %r14
je 0x36cda
movq 0x100(%rsp), %rsi
incq %rsi
callq 0x72f0
leaq 0xd8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x36cfb
movq 0xd8(%rsp), %rsi
incq %rsi
callq 0x72f0
leaq 0x218(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x36d1c
movq 0x218(%rsp), %rsi
incq %rsi
callq 0x72f0
leaq 0x1e8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x36d3d
movq 0x1e8(%rsp), %rsi
incq %rsi
callq 0x72f0
movq 0x1b0(%rsp), %rdi
leaq 0x1c0(%rsp), %rax
cmpq %rax, %rdi
je 0x36d62
movq 0x1c0(%rsp), %rsi
incq %rsi
callq 0x72f0
andb $0x1, %r14b
movq 0x1d27b(%rip), %rbx     # 0x53fe8
leaq 0xf133(%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 0x1d249(%rip), %rbx     # 0x53fe8
movq %rbx, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x71d0
leaq 0x860(%rsp), %rdi
callq 0x70b0
leaq 0x658(%rsp), %rdi
callq 0x70b0
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
movq 0x1d201(%rip), %rdi     # 0x53fe8
callq 0x7040
movq %rax, %rdi
callq 0x71d0
movq 0x1d1ed(%rip), %rbx     # 0x53fe8
leaq 0xf0cb(%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 0x1d1bb(%rip), %rdi     # 0x53fe8
callq 0x7040
movq %rax, %rdi
callq 0x71d0
movq 0x1d1a7(%rip), %rbx     # 0x53fe8
leaq 0xf096(%rip), %rsi      # 0x45ede
movl $0xa3, %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 0x1d175(%rip), %rdi     # 0x53fe8
callq 0x7040
movq %rax, %rdi
callq 0x71d0
cmpq $0x0, 0x10(%r13)
je 0x3798e
movq 0x8(%r13), %rsi
leaq 0x1b0(%rsp), %rdi
movl $0x10, %edx
callq 0x7320
leaq 0xf0da(%rip), %rsi      # 0x45f82
leaq 0x1b0(%rsp), %rbx
movl $0x4b, %edx
movq %rbx, %rdi
callq 0x7340
movq 0x1b0(%rsp), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
leaq 0x1b0(%rsp), %rdi
callq 0x7040
movq %rax, %rdi
callq 0x71d0
leaq 0xf0d9(%rip), %rsi      # 0x45fce
leaq 0x1b0(%rsp), %rbx
movl $0x2, %edx
movq %rbx, %rdi
callq 0x7340
movq 0x1b0(%rsp), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
leaq 0x1b0(%rsp), %rdi
callq 0x7040
movq %rax, %rdi
callq 0x71d0
leaq 0xf08f(%rip), %rsi      # 0x45fd1
leaq 0x1b0(%rsp), %rbx
movl $0xa9, %edx
movq %rbx, %rdi
callq 0x7340
movq 0x1b0(%rsp), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
leaq 0x1b0(%rsp), %rdi
callq 0x7040
movq %rax, %rdi
callq 0x71d0
leaq 0xf03f(%rip), %rsi      # 0x45fce
leaq 0x1b0(%rsp), %rbx
movl $0x2, %edx
movq %rbx, %rdi
callq 0x7340
movq 0x1b0(%rsp), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
leaq 0x1b0(%rsp), %rdi
callq 0x7040
movq %rax, %rdi
callq 0x71d0
leaq 0xf09f(%rip), %rsi      # 0x4607b
leaq 0x1b0(%rsp), %rdi
movl $0x22, %edx
callq 0x7340
movq 0x70(%r13), %rsi
movq 0x78(%r13), %rdx
leaq 0x1b0(%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 0xf06a(%rip), %rsi      # 0x4609e
leaq 0x1b0(%rsp), %rdi
movl $0x29, %edx
callq 0x7340
movq 0x28(%r13), %rsi
movq 0x30(%r13), %rdx
leaq 0x1b0(%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 0xef42(%rip), %rsi      # 0x45fce
leaq 0x1b0(%rsp), %rbx
movl $0x2, %edx
movq %rbx, %rdi
callq 0x7340
movq 0x1b0(%rsp), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
leaq 0x1b0(%rsp), %rdi
callq 0x7040
movq %rax, %rdi
callq 0x71d0
leaq 0xefef(%rip), %rsi      # 0x460c8
leaq 0x1b0(%rsp), %rbx
movl $0x61, %edx
movq %rbx, %rdi
callq 0x7340
movq 0x1b0(%rsp), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
leaq 0x1b0(%rsp), %rdi
callq 0x7040
movq %rax, %rdi
callq 0x71d0
leaq 0xf004(%rip), %rsi      # 0x4612a
leaq 0x1b0(%rsp), %rdi
movl $0x26, %edx
callq 0x7340
leaq 0x4a0(%rsp), %rdi
movq 0x38(%rsp), %rsi
callq 0x3dc2a
leaq 0xc8(%rsp), %rdi
leaq 0x4a0(%rsp), %rsi
callq 0x3db3b
movq 0xc8(%rsp), %rsi
movq 0xd0(%rsp), %rdx
leaq 0x1b0(%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 0xd8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x371c7
movq 0xd8(%rsp), %rsi
incq %rsi
callq 0x72f0
movq 0x4a0(%rsp), %rdi
testq %rdi, %rdi
je 0x371e4
movq 0x4b0(%rsp), %rsi
subq %rdi, %rsi
callq 0x72f0
leaq 0xede3(%rip), %rsi      # 0x45fce
leaq 0x1b0(%rsp), %rbx
movl $0x2, %edx
movq %rbx, %rdi
callq 0x7340
movq 0x1b0(%rsp), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
leaq 0x1b0(%rsp), %rdi
callq 0x7040
movq %rax, %rdi
callq 0x71d0
leaq 0xef19(%rip), %rsi      # 0x46151
leaq 0x1b0(%rsp), %rdi
movl $0x9f, %edx
callq 0x7340
leaq 0x488(%rsp), %rdi
movq 0x50(%rsp), %rsi
callq 0x3dc2a
leaq 0xc8(%rsp), %rdi
leaq 0x488(%rsp), %rsi
callq 0x3db3b
movq 0xc8(%rsp), %rsi
movq 0xd0(%rsp), %rdx
leaq 0x1b0(%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 0xc8(%rsp), %rdi
leaq 0xd8(%rsp), %rax
cmpq %rax, %rdi
je 0x372dd
movq 0xd8(%rsp), %rsi
incq %rsi
callq 0x72f0
movq 0x488(%rsp), %rdi
testq %rdi, %rdi
je 0x372fa
movq 0x498(%rsp), %rsi
subq %rdi, %rsi
callq 0x72f0
leaq 0xeccd(%rip), %rsi      # 0x45fce
leaq 0x1b0(%rsp), %rbx
movl $0x2, %edx
movq %rbx, %rdi
callq 0x7340
movq 0x1b0(%rsp), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
leaq 0x1b0(%rsp), %rdi
callq 0x7040
movq %rax, %rdi
callq 0x71d0
leaq 0xeea3(%rip), %rsi      # 0x461f1
leaq 0x1b0(%rsp), %rbx
movl $0xd0, %edx
movq %rbx, %rdi
callq 0x7340
movq 0x1b0(%rsp), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
leaq 0x1b0(%rsp), %rdi
callq 0x7040
movq %rax, %rdi
callq 0x71d0
leaq 0xef27(%rip), %rsi      # 0x462c2
leaq 0x1b0(%rsp), %rbx
movl $0xc8, %edx
movq %rbx, %rdi
callq 0x7340
movq 0x1b0(%rsp), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
leaq 0x1b0(%rsp), %rdi
callq 0x7040
movq %rax, %rdi
callq 0x71d0
leaq 0xebe6(%rip), %rsi      # 0x45fce
leaq 0x1b0(%rsp), %rbx
movl $0x2, %edx
movq %rbx, %rdi
callq 0x7340
movq 0x1b0(%rsp), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
leaq 0x1b0(%rsp), %rdi
callq 0x7040
movq %rax, %rdi
callq 0x71d0
leaq 0xeb99(%rip), %rsi      # 0x45fce
leaq 0x1b0(%rsp), %rbx
movl $0x2, %edx
movq %rbx, %rdi
callq 0x7340
movq 0x1b0(%rsp), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
leaq 0x1b0(%rsp), %rdi
callq 0x7040
movq %rax, %rdi
callq 0x71d0
leaq 0xef09(%rip), %rsi      # 0x4638b
leaq 0x1b0(%rsp), %rbx
movl $0x9, %edx
movq %rbx, %rdi
callq 0x7340
movq 0x1b0(%rsp), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
leaq 0x1b0(%rsp), %rdi
callq 0x7040
movq %rax, %rdi
callq 0x71d0
leaq 0xeaff(%rip), %rsi      # 0x45fce
leaq 0x1b0(%rsp), %rbx
movl $0x2, %edx
movq %rbx, %rdi
callq 0x7340
movq 0x1b0(%rsp), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
leaq 0x1b0(%rsp), %rdi
callq 0x7040
movq %rax, %rdi
callq 0x71d0
leaq 0xee79(%rip), %rsi      # 0x46395
leaq 0x1b0(%rsp), %rdi
movl $0x13, %edx
callq 0x7340
leaq 0x1b0(%rsp), %rdi
movq 0x10(%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 0xee38(%rip), %rsi      # 0x463a9
leaq 0x1b0(%rsp), %rdi
movl $0x15, %edx
callq 0x7340
movzbl %r14b, %esi
leaq 0x1b0(%rsp), %rdi
callq 0x75a0
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 0xea09(%rip), %rsi      # 0x45fce
leaq 0x1b0(%rsp), %rbx
movl $0x2, %edx
movq %rbx, %rdi
callq 0x7340
movq 0x1b0(%rsp), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
leaq 0x1b0(%rsp), %r13
movq %r13, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x71d0
movq 0x20(%rsp), %rax
cmpq %rax, 0x28(%rsp)
je 0x37944
movq 0xa0(%rsp), %rbx
cmpq $0x1, %rbx
adcq $0x0, %rbx
movq 0x30(%rsp), %rax
cmpq $0x1, %rax
adcq $0x0, %rax
movq %rax, 0x58(%rsp)
movq $0x0, 0x8(%rsp)
leaq 0xc8(%rsp), %rbp
movl $0x1f, %edx
movq %r13, %rdi
leaq 0xed5f(%rip), %rsi      # 0x463bf
callq 0x7340
movq 0x38(%rsp), %rax
movq (%rax), %rax
movq 0x8(%rsp), %rcx
movl (%rax,%rcx,4), %esi
movq %r13, %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 %r13, %rdi
leaq 0xed29(%rip), %rsi      # 0x463df
callq 0x7340
movq 0x1b0(%rsp), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
movq %r13, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x71d0
movl $0xb5, %edx
movq %r13, %rdi
leaq 0xed05(%rip), %rsi      # 0x463fb
callq 0x7340
movq 0x1b0(%rsp), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
movq %r13, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x71d0
movl $0x5, %edx
movq %r13, %rdi
leaq 0xed7b(%rip), %rsi      # 0x464b1
callq 0x7340
movq 0x18(%rsp), %rax
movq 0x8(%rsp), %rcx
movq (%rax,%rcx,8), %r12
movq %rbp, %rdi
movq %r12, %rsi
movq 0x10(%rsp), %rdx
callq 0x32a0c
movq 0xc8(%rsp), %rsi
movq 0xd0(%rsp), %rdx
movq %r13, %rdi
callq 0x7340
movq 0xc8(%rsp), %rdi
leaq 0xd8(%rsp), %rax
cmpq %rax, %rdi
je 0x37796
movq 0xd8(%rsp), %rsi
incq %rsi
callq 0x72f0
movl $0x10, %edx
movq %r13, %rdi
leaq 0xed12(%rip), %rsi      # 0x464b7
callq 0x7340
leaq 0x40(%r12), %rsi
movq %rbp, %rdi
movq 0x10(%rsp), %rdx
callq 0x32a0c
movq 0xc8(%rsp), %rsi
movq 0xd0(%rsp), %rdx
movq %r13, %rdi
callq 0x7340
movq 0xc8(%rsp), %rdi
leaq 0xd8(%rsp), %rax
cmpq %rax, %rdi
je 0x377f9
movq 0xd8(%rsp), %rsi
incq %rsi
callq 0x72f0
movq 0x40(%rsp), %rax
cmpq 0x48(%rsp), %rax
je 0x378ac
subq $-0x80, %r12
xorl %r14d, %r14d
movl $0xc, %edx
movq %r13, %rdi
leaq 0xeca9(%rip), %rsi      # 0x464c8
callq 0x7340
movq 0x50(%rsp), %rax
movq (%rax), %rax
movl (%rax,%r14,4), %esi
movq %r13, %rdi
callq 0x75d0
movq %rax, %r15
movl $0x2, %edx
movq %rax, %rdi
leaq 0xec7b(%rip), %rsi      # 0x464c5
callq 0x7340
movq %rbp, %rdi
movq %r12, %rsi
movq 0x10(%rsp), %rdx
callq 0x32a0c
movq 0xc8(%rsp), %rsi
movq 0xd0(%rsp), %rdx
movq %r15, %rdi
callq 0x7340
movq 0xc8(%rsp), %rdi
leaq 0xd8(%rsp), %rax
cmpq %rax, %rdi
je 0x3789c
movq 0xd8(%rsp), %rsi
incq %rsi
callq 0x72f0
incq %r14
addq $0x40, %r12
cmpq %r14, %rbx
jne 0x37810
movl $0x2, %edx
movq %r13, %rdi
leaq 0xe713(%rip), %rsi      # 0x45fce
callq 0x7340
movq 0x1b0(%rsp), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
movq %r13, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x71d0
movl $0x2, %edx
movq %r13, %rdi
leaq 0xe6d3(%rip), %rsi      # 0x45fce
callq 0x7340
movq 0x1b0(%rsp), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
movq %r13, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x71d0
movq 0x8(%rsp), %rcx
incq %rcx
movq %rcx, 0x8(%rsp)
cmpq 0x58(%rsp), %rcx
jne 0x37651
leaq 0x1b0(%rsp), %rdi
callq 0x7460
movq 0x1c660(%rip), %rax     # 0x53fb8
movq (%rax), %rcx
movq 0x18(%rax), %rax
leaq 0x1b8(%rsp), %rdi
movq %rcx, -0x8(%rdi)
movq -0x18(%rcx), %rcx
movq %rax, 0x1b0(%rsp,%rcx)
callq 0x7260
leaq 0x2a8(%rsp), %rdi
callq 0x7100
jmp 0x383b0
movq 0x1c62b(%rip), %rbx     # 0x53fc0
leaq 0xe5e6(%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 0x1c5f9(%rip), %rdi     # 0x53fc0
callq 0x7040
movq %rax, %rdi
callq 0x71d0
movq 0x1c5e5(%rip), %rbx     # 0x53fc0
leaq 0xe5ec(%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 0x1c5b3(%rip), %rdi     # 0x53fc0
callq 0x7040
movq %rax, %rdi
callq 0x71d0
movq 0x1c59f(%rip), %rbx     # 0x53fc0
leaq 0xe5a9(%rip), %rsi      # 0x45fd1
movl $0xa9, %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 0x1c56d(%rip), %rdi     # 0x53fc0
callq 0x7040
movq %rax, %rdi
callq 0x71d0
movq 0x1c559(%rip), %rbx     # 0x53fc0
leaq 0xe560(%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 0x1c527(%rip), %rdi     # 0x53fc0
callq 0x7040
movq %rax, %rdi
callq 0x71d0
movq 0x1c513(%rip), %rdi     # 0x53fc0
leaq 0xe5c7(%rip), %rsi      # 0x4607b
movl $0x22, %edx
callq 0x7340
movq 0x70(%r13), %rsi
movq 0x78(%r13), %rdx
movq 0x1c4f3(%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 0x1c4bd(%rip), %rdi     # 0x53fc0
leaq 0xe594(%rip), %rsi      # 0x4609e
movl $0x29, %edx
callq 0x7340
movq 0x28(%r13), %rsi
movq 0x30(%r13), %rdx
movq 0x1c49d(%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 0x1c467(%rip), %rbx     # 0x53fc0
leaq 0xe46e(%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 0x1c435(%rip), %rdi     # 0x53fc0
callq 0x7040
movq %rax, %rdi
callq 0x71d0
movq 0x1c421(%rip), %rbx     # 0x53fc0
leaq 0xe522(%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 0x1c3ef(%rip), %rdi     # 0x53fc0
callq 0x7040
movq %rax, %rdi
callq 0x71d0
movq 0x1c3db(%rip), %rdi     # 0x53fc0
leaq 0xe53e(%rip), %rsi      # 0x4612a
movl $0x26, %edx
callq 0x7340
leaq 0x470(%rsp), %rdi
movq 0x38(%rsp), %rsi
callq 0x3dc2a
leaq 0x1b0(%rsp), %rdi
leaq 0x470(%rsp), %rsi
callq 0x3db3b
movq 0x1b0(%rsp), %rsi
movq 0x1b8(%rsp), %rdx
movq 0x1c38c(%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 0x1b0(%rsp), %rdi
leaq 0x1c0(%rsp), %rax
cmpq %rax, %rdi
je 0x37c88
movq 0x1c0(%rsp), %rsi
incq %rsi
callq 0x72f0
movq 0x470(%rsp), %rdi
testq %rdi, %rdi
je 0x37ca5
movq 0x480(%rsp), %rsi
subq %rdi, %rsi
callq 0x72f0
movq 0x1c314(%rip), %rbx     # 0x53fc0
leaq 0xe31b(%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 0x1c2e2(%rip), %rdi     # 0x53fc0
callq 0x7040
movq %rax, %rdi
callq 0x71d0
movq 0x1c2ce(%rip), %rdi     # 0x53fc0
leaq 0xe458(%rip), %rsi      # 0x46151
movl $0x9f, %edx
callq 0x7340
leaq 0x458(%rsp), %rdi
movq 0x50(%rsp), %rsi
callq 0x3dc2a
leaq 0x1b0(%rsp), %rdi
leaq 0x458(%rsp), %rsi
callq 0x3db3b
movq 0x1b0(%rsp), %rsi
movq 0x1b8(%rsp), %rdx
movq 0x1c27f(%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 0x1b0(%rsp), %rdi
leaq 0x1c0(%rsp), %rax
cmpq %rax, %rdi
je 0x37d95
movq 0x1c0(%rsp), %rsi
incq %rsi
callq 0x72f0
movq 0x458(%rsp), %rdi
testq %rdi, %rdi
je 0x37db2
movq 0x468(%rsp), %rsi
subq %rdi, %rsi
callq 0x72f0
movq 0x1c207(%rip), %rbx     # 0x53fc0
leaq 0xe20e(%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 0x1c1d5(%rip), %rdi     # 0x53fc0
callq 0x7040
movq %rax, %rdi
callq 0x71d0
movq 0x1c1c1(%rip), %rbx     # 0x53fc0
leaq 0xe3eb(%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 0x1c18f(%rip), %rdi     # 0x53fc0
callq 0x7040
movq %rax, %rdi
callq 0x71d0
movq 0x1c17b(%rip), %rbx     # 0x53fc0
leaq 0xe476(%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 0x1c149(%rip), %rdi     # 0x53fc0
callq 0x7040
movq %rax, %rdi
callq 0x71d0
movq 0x1c135(%rip), %rbx     # 0x53fc0
leaq 0xe13c(%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 0x1c103(%rip), %rdi     # 0x53fc0
callq 0x7040
movq %rax, %rdi
callq 0x71d0
movq 0x1c0ef(%rip), %rbx     # 0x53fc0
leaq 0xe0f6(%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 0x1c0bd(%rip), %rdi     # 0x53fc0
callq 0x7040
movq %rax, %rdi
callq 0x71d0
movq 0x1c0a9(%rip), %rbx     # 0x53fc0
leaq 0xe46d(%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 0x1c077(%rip), %rdi     # 0x53fc0
callq 0x7040
movq %rax, %rdi
callq 0x71d0
movq 0x1c063(%rip), %rbx     # 0x53fc0
leaq 0xe06a(%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 0x1c031(%rip), %rdi     # 0x53fc0
callq 0x7040
movq %rax, %rdi
callq 0x71d0
movq 0x1c01d(%rip), %rdi     # 0x53fc0
leaq 0xe3eb(%rip), %rsi      # 0x46395
movl $0x13, %edx
callq 0x7340
movq 0x1c005(%rip), %rdi     # 0x53fc0
movq 0x10(%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 0x1bfca(%rip), %rdi     # 0x53fc0
leaq 0xe3ac(%rip), %rsi      # 0x463a9
movl $0x15, %edx
callq 0x7340
movzbl %r14b, %esi
movq 0x1bfae(%rip), %rdi     # 0x53fc0
callq 0x75a0
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 0x1bf78(%rip), %rbx     # 0x53fc0
leaq 0xdf7f(%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 0x1bf46(%rip), %r13     # 0x53fc0
movq %r13, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x71d0
movq 0x20(%rsp), %rax
cmpq %rax, 0x28(%rsp)
je 0x383e6
movq 0xa0(%rsp), %rbx
cmpq $0x1, %rbx
adcq $0x0, %rbx
movq 0x30(%rsp), %rax
cmpq $0x1, %rax
adcq $0x0, %rax
movq %rax, 0x58(%rsp)
movq $0x0, 0x8(%rsp)
leaq 0x1b0(%rsp), %rbp
movl $0x1f, %edx
movq %r13, %rdi
leaq 0xe2e3(%rip), %rsi      # 0x463bf
callq 0x7340
movq 0x38(%rsp), %rax
movq (%rax), %rax
movq 0x8(%rsp), %rcx
movl (%rax,%rcx,4), %esi
movq %r13, %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 %r13, %rdi
leaq 0xe2ad(%rip), %rsi      # 0x463df
callq 0x7340
movq (%r13), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
movq %r13, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x71d0
movl $0xb5, %edx
movq %r13, %rdi
leaq 0xe28d(%rip), %rsi      # 0x463fb
callq 0x7340
movq (%r13), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
movq %r13, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x71d0
movl $0x5, %edx
movq %r13, %rdi
leaq 0xe307(%rip), %rsi      # 0x464b1
callq 0x7340
movq 0x18(%rsp), %rax
movq 0x8(%rsp), %rcx
movq (%rax,%rcx,8), %r12
movq %rbp, %rdi
movq %r12, %rsi
movq 0x10(%rsp), %rdx
callq 0x32a0c
movq 0x1b0(%rsp), %rsi
movq 0x1b8(%rsp), %rdx
movq %r13, %rdi
callq 0x7340
movq 0x1b0(%rsp), %rdi
leaq 0x1c0(%rsp), %rax
cmpq %rax, %rdi
je 0x3820a
movq 0x1c0(%rsp), %rsi
incq %rsi
callq 0x72f0
movl $0x10, %edx
movq %r13, %rdi
leaq 0xe29e(%rip), %rsi      # 0x464b7
callq 0x7340
leaq 0x40(%r12), %rsi
movq %rbp, %rdi
movq 0x10(%rsp), %rdx
callq 0x32a0c
movq 0x1b0(%rsp), %rsi
movq 0x1b8(%rsp), %rdx
movq %r13, %rdi
callq 0x7340
movq 0x1b0(%rsp), %rdi
leaq 0x1c0(%rsp), %rax
cmpq %rax, %rdi
je 0x3826d
movq 0x1c0(%rsp), %rsi
incq %rsi
callq 0x72f0
movq 0x40(%rsp), %rax
cmpq 0x48(%rsp), %rax
je 0x38320
subq $-0x80, %r12
xorl %r14d, %r14d
movl $0xc, %edx
movq %r13, %rdi
leaq 0xe235(%rip), %rsi      # 0x464c8
callq 0x7340
movq 0x50(%rsp), %rax
movq (%rax), %rax
movl (%rax,%r14,4), %esi
movq %r13, %rdi
callq 0x75d0
movq %rax, %r15
movl $0x2, %edx
movq %rax, %rdi
leaq 0xe207(%rip), %rsi      # 0x464c5
callq 0x7340
movq %rbp, %rdi
movq %r12, %rsi
movq 0x10(%rsp), %rdx
callq 0x32a0c
movq 0x1b0(%rsp), %rsi
movq 0x1b8(%rsp), %rdx
movq %r15, %rdi
callq 0x7340
movq 0x1b0(%rsp), %rdi
leaq 0x1c0(%rsp), %rax
cmpq %rax, %rdi
je 0x38310
movq 0x1c0(%rsp), %rsi
incq %rsi
callq 0x72f0
incq %r14
addq $0x40, %r12
cmpq %r14, %rbx
jne 0x38284
movl $0x2, %edx
movq %r13, %rdi
leaq 0xdc9f(%rip), %rsi      # 0x45fce
callq 0x7340
movq (%r13), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
movq %r13, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x71d0
movl $0x2, %edx
movq %r13, %rdi
leaq 0xdc63(%rip), %rsi      # 0x45fce
callq 0x7340
movq (%r13), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x72b0
movsbl %al, %esi
movq %r13, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x71d0
movq 0x8(%rsp), %rcx
incq %rcx
movq %rcx, 0x8(%rsp)
cmpq 0x58(%rsp), %rcx
jne 0x380cd
movq 0x20(%rsp), %rax
cmpq %rax, 0x28(%rsp)
je 0x383e6
movq 0x30(%rsp), %r14
cmpq $0x1, %r14
adcq $0x0, %r14
xorl %ebx, %ebx
movq 0x18(%rsp), %rax
movq (%rax,%rbx,8), %rdi
testq %rdi, %rdi
je 0x383de
callq 0x7400
incq %rbx
cmpq %rbx, %r14
jne 0x383cb
movq 0x18(%rsp), %rdi
callq 0x7400
movq 0x60(%rsp), %rdi
leaq 0x70(%rsp), %rax
cmpq %rax, %rdi
je 0x3840c
movq 0x70(%rsp), %rsi
incq %rsi
callq 0x72f0
movq 0xa8(%rsp), %rdi
leaq 0xb8(%rsp), %rax
cmpq %rax, %rdi
je 0x38431
movq 0xb8(%rsp), %rsi
incq %rsi
callq 0x72f0
leaq 0x860(%rsp), %rdi
callq 0x70d0
leaq 0x658(%rsp), %rdi
callq 0x70d0
leaq 0x80(%rsp), %rdi
callq 0x3dd28
leaq 0x638(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x38479
movq 0x638(%rsp), %rsi
incq %rsi
callq 0x72f0
leaq 0x608(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3849a
movq 0x608(%rsp), %rsi
incq %rsi
callq 0x72f0
leaq 0x5e0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x384bb
movq 0x5e0(%rsp), %rsi
incq %rsi
callq 0x72f0
leaq 0x550(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x384dc
movq 0x550(%rsp), %rsi
incq %rsi
callq 0x72f0
leaq 0x520(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x384fd
movq 0x520(%rsp), %rsi
incq %rsi
callq 0x72f0
leaq 0x4f8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3851e
movq 0x4f8(%rsp), %rsi
incq %rsi
callq 0x72f0
movq 0x150(%rsp), %rdi
testq %rdi, %rdi
je 0x3853b
movq 0x160(%rsp), %rsi
subq %rdi, %rsi
callq 0x72f0
leaq 0x170(%rsp), %rdi
callq 0xc272
movq 0x190(%rsp), %rdi
leaq 0x1a0(%rsp), %rax
cmpq %rax, %rdi
je 0x3856d
movq 0x1a0(%rsp), %rsi
incq %rsi
callq 0x72f0
addq $0xa68, %rsp            # imm = 0xA68
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
movq 0x570(%rsp), %rdi
cmpq %r14, %rdi
je 0x3896a
movq 0x580(%rsp), %rsi
jmp 0x387d4
movq %rax, %rbx
movq 0x590(%rsp), %rdi
cmpq %r14, %rdi
je 0x3896a
movq 0x5a0(%rsp), %rsi
jmp 0x387d4
movq %rax, %rbx
jmp 0x38977
jmp 0x389b4
movq %rax, %rbx
jmp 0x3871c
jmp 0x389b4
movq %rax, %rbx
jmp 0x38762
jmp 0x389b4
jmp 0x38967
movq %rax, %rbx
movq 0x410(%rsp), %rdi
leaq 0x420(%rsp), %rax
cmpq %rax, %rdi
je 0x3896a
movq 0x420(%rsp), %rsi
jmp 0x387d4
movq %rax, %rbx
jmp 0x38809
jmp 0x389b9
movq %rax, %rbx
jmp 0x38848
jmp 0x389b9
jmp 0x389b4
movq %rax, %rbx
movq 0x430(%rsp), %rdi
cmpq %r12, %rdi
je 0x3896a
movq 0x440(%rsp), %rsi
jmp 0x387d4
movq %rax, %rbx
movq 0x3d0(%rsp), %rdi
leaq 0x3e0(%rsp), %rax
cmpq %rax, %rdi
je 0x3896a
movq 0x3e0(%rsp), %rsi
jmp 0x387d4
movq %rax, %rbx
jmp 0x38896
jmp 0x389b4
movq %rax, %rbx
jmp 0x388d5
jmp 0x389b4
movq %rax, %rbx
jmp 0x389e5
movq %rax, %rbx
jmp 0x38a0a
movq %rax, %rbx
jmp 0x38a17
movq %rax, %rbx
jmp 0x38a24
movq %rax, %rbx
jmp 0x38a3e
jmp 0x386ec
movq %rax, %rbx
movq 0x5b0(%rsp), %rdi
cmpq %r14, %rdi
je 0x38a4b
movq 0x5c0(%rsp), %rsi
incq %rsi
callq 0x72f0
jmp 0x38a4b
movq %rax, %rbx
jmp 0x38a4b
movq %rax, %rbx
movq 0x1b0(%rsp), %rdi
leaq 0x1c0(%rsp), %rax
cmpq %rax, %rdi
je 0x3871c
movq 0x1c0(%rsp), %rsi
incq %rsi
callq 0x72f0
movq 0x458(%rsp), %rdi
testq %rdi, %rdi
je 0x389c9
movq 0x468(%rsp), %rsi
jmp 0x388ee
movq %rax, %rbx
movq 0x1b0(%rsp), %rdi
leaq 0x1c0(%rsp), %rax
cmpq %rax, %rdi
je 0x38762
movq 0x1c0(%rsp), %rsi
incq %rsi
callq 0x72f0
movq 0x470(%rsp), %rdi
testq %rdi, %rdi
je 0x389c9
movq 0x480(%rsp), %rsi
jmp 0x388ee
jmp 0x389b4
jmp 0x38967
movq %rax, %rbx
movq 0x3f0(%rsp), %rdi
leaq 0x400(%rsp), %rax
cmpq %rax, %rdi
je 0x3896a
movq 0x400(%rsp), %rsi
jmp 0x387d4
movq %rax, %rbx
movq 0x3b0(%rsp), %rdi
leaq 0x3c0(%rsp), %rax
cmpq %rax, %rdi
je 0x3896a
movq 0x3c0(%rsp), %rsi
incq %rsi
callq 0x72f0
jmp 0x3896a
movq %rax, %rbx
movq 0xc8(%rsp), %rdi
leaq 0xd8(%rsp), %rax
cmpq %rax, %rdi
je 0x38809
movq 0xd8(%rsp), %rsi
incq %rsi
callq 0x72f0
movq 0x488(%rsp), %rdi
testq %rdi, %rdi
je 0x389bc
movq 0x498(%rsp), %rsi
jmp 0x38861
movq %rax, %rbx
leaq 0xd8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x38848
movq 0xd8(%rsp), %rsi
incq %rsi
callq 0x72f0
movq 0x4a0(%rsp), %rdi
testq %rdi, %rdi
je 0x389bc
movq 0x4b0(%rsp), %rsi
subq %rdi, %rsi
jmp 0x389a9
jmp 0x389b4
movq %rax, %rbx
movq 0x1b0(%rsp), %rdi
leaq 0x1c0(%rsp), %rax
cmpq %rax, %rdi
je 0x38896
movq 0x1c0(%rsp), %rsi
incq %rsi
callq 0x72f0
movq 0x4b8(%rsp), %rdi
testq %rdi, %rdi
je 0x389c9
movq 0x4c8(%rsp), %rsi
jmp 0x388ee
movq %rax, %rbx
leaq 0x1c0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x388d5
movq 0x1c0(%rsp), %rsi
incq %rsi
callq 0x72f0
movq 0x4d0(%rsp), %rdi
testq %rdi, %rdi
je 0x389c9
movq 0x4e0(%rsp), %rsi
subq %rdi, %rsi
jmp 0x3895a
jmp 0x38967
jmp 0x38967
jmp 0x38967
jmp 0x389b4
jmp 0x38937
jmp 0x389b4
jmp 0x38937
jmp 0x389b9
jmp 0x38986
jmp 0x389b9
jmp 0x38986
jmp 0x389b4
jmp 0x389b4
jmp 0x389b4
jmp 0x38967
jmp 0x38967
jmp 0x389b4
jmp 0x389b4
jmp 0x389b9
movq %rax, %rbx
movq 0x1b0(%rsp), %rdi
leaq 0x1c0(%rsp), %rax
cmpq %rax, %rdi
je 0x389c9
movq 0x1c0(%rsp), %rsi
incq %rsi
callq 0x72f0
jmp 0x389c9
jmp 0x389b4
jmp 0x389b4
jmp 0x38967
movq %rax, %rbx
leaq 0xc8(%rsp), %rdi
callq 0x3dcda
leaq 0x1b0(%rsp), %rdi
callq 0x3dcda
jmp 0x389c9
movq %rax, %rbx
movq 0xc8(%rsp), %rdi
leaq 0xd8(%rsp), %rax
cmpq %rax, %rdi
je 0x389bc
movq 0xd8(%rsp), %rsi
incq %rsi
callq 0x72f0
jmp 0x389bc
jmp 0x389b9
jmp 0x389b9
movq %rax, %rbx
jmp 0x389c9
movq %rax, %rbx
leaq 0x1b0(%rsp), %rdi
callq 0x74c0
movq 0x60(%rsp), %rdi
leaq 0x70(%rsp), %rax
cmpq %rax, %rdi
je 0x389e5
movq 0x70(%rsp), %rsi
incq %rsi
callq 0x72f0
movq 0xa8(%rsp), %rdi
leaq 0xb8(%rsp), %rax
cmpq %rax, %rdi
je 0x38a0a
movq 0xb8(%rsp), %rsi
incq %rsi
callq 0x72f0
leaq 0x860(%rsp), %rdi
callq 0x70d0
leaq 0x658(%rsp), %rdi
callq 0x70d0
leaq 0x80(%rsp), %rdi
callq 0x3dd28
leaq 0x5d0(%rsp), %rdi
callq 0x3dcda
leaq 0x4e8(%rsp), %rdi
callq 0x3dcda
movq 0x150(%rsp), %rdi
testq %rdi, %rdi
je 0x38a68
movq 0x160(%rsp), %rsi
subq %rdi, %rsi
callq 0x72f0
leaq 0x170(%rsp), %rdi
callq 0xc272
movq 0x190(%rsp), %rdi
leaq 0x1a0(%rsp), %rax
cmpq %rax, %rdi
je 0x38a9a
movq 0x1a0(%rsp), %rsi
incq %rsi
callq 0x72f0
movq %rbx, %rdi
callq 0x7600