// File: 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:
subq $0x1038, %rsp           # imm = 0x1038
movq %rdi, 0x1030(%rsp)
leaq 0x1010(%rsp), %rdi
callq 0x8590
leaq 0xff8(%rsp), %rdi
callq 0xe750
leaq 0xfe0(%rsp), %rdi
callq 0xecb0
movq 0x1030(%rsp), %rsi
addq $0x48, %rsi
leaq 0xfc0(%rsp), %rdi
callq 0x8180
jmp 0x6b6b1
leaq 0xfc0(%rsp), %rdi
leaq 0x1010(%rsp), %rsi
leaq 0xff8(%rsp), %rdx
leaq 0xfe0(%rsp), %rcx
callq 0x2fd20
jmp 0x6b6d8
leaq 0xfc0(%rsp), %rdi
callq 0x8858
movq 0x1030(%rsp), %rax
testb $0x1, 0x69(%rax)
je 0x6b767
movq 0x2b8f6(%rip), %rdi     # 0x96ff0
leaq 0x13d20(%rip), %rsi     # 0x7f421
callq 0x8360
movq %rax, 0x4e0(%rsp)
jmp 0x6b710
movq 0x4e0(%rsp), %rdi
movq 0x2b891(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6b726
jmp 0x6b767
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xfb8(%rsp)
movl %eax, 0xfb4(%rsp)
jmp 0x6eb91
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xfb8(%rsp)
movl %eax, 0xfb4(%rsp)
leaq 0xfc0(%rsp), %rdi
callq 0x8858
jmp 0x6eb91
movq 0x1030(%rsp), %rdi
addq $0x70, %rdi
callq 0x8170
movq %rax, %rsi
leaq 0xda8(%rsp), %rdi
movl $0x8, %edx
callq 0x87a0
jmp 0x6b78f
leaq 0xd87(%rsp), %rdi
movq %rdi, 0x4d8(%rsp)
callq 0x8750
movq 0x4d8(%rsp), %rdx
leaq 0xe2ab(%rip), %rsi      # 0x79a5e
leaq 0xd88(%rsp), %rdi
callq 0xb8b0
jmp 0x6b7c2
leaq 0xd87(%rsp), %rdi
callq 0x83e0
movq 0xda8(%rsp), %rax
movq -0x18(%rax), %rax
leaq 0xda8(%rsp,%rax), %rdi
callq 0x8700
movb %al, 0x4d7(%rsp)
jmp 0x6b7f1
movb 0x4d7(%rsp), %al
testb $0x1, %al
jne 0x6b7fe
jmp 0x6b856
leaq 0xda8(%rsp), %rdi
leaq 0xd88(%rsp), %rsi
callq 0x66fa0
jmp 0x6b815
jmp 0x6b856
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xfb8(%rsp)
movl %eax, 0xfb4(%rsp)
leaq 0xd87(%rsp), %rdi
callq 0x83e0
jmp 0x6eb84
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xfb8(%rsp)
movl %eax, 0xfb4(%rsp)
jmp 0x6eb77
movq $0x0, 0xd78(%rsp)
movq 0x1030(%rsp), %rdi
addq $0xc0, %rdi
callq 0x1f530
movq %rax, 0xd70(%rsp)
movq 0x1030(%rsp), %rdi
addq $0xa8, %rdi
callq 0x1f530
movq %rax, 0xd68(%rsp)
movq 0xd70(%rsp), %rax
movl $0x8, %ecx
mulq %rcx
movq %rax, %rdi
movq $-0x1, %rax
cmovoq %rax, %rdi
callq 0x8030
movq %rax, 0x4c8(%rsp)
jmp 0x6b8c7
movq 0x4c8(%rsp), %rax
movq %rax, 0xd60(%rsp)
movq $0x0, 0xd58(%rsp)
movq 0xd58(%rsp), %rax
cmpq 0xd70(%rsp), %rax
jae 0x6ba0d
movq 0xd68(%rsp), %rax
addq $0x2, %rax
movq %rax, 0x4b0(%rsp)
movl $0x40, %ecx
mulq %rcx
movq %rax, %rdi
movq $-0x1, %rax
cmovoq %rax, %rdi
movq %rdi, 0x4b8(%rsp)
callq 0x8030
movq %rax, 0x4c0(%rsp)
jmp 0x6b93a
movq 0x4b0(%rsp), %rax
cmpq $0x0, %rax
je 0x6b9aa
movq 0x4c0(%rsp), %rax
movq 0x4b0(%rsp), %rdx
shlq $0x6, %rdx
movq %rax, %rcx
addq %rdx, %rcx
movq %rcx, 0x4a0(%rsp)
movq %rax, 0x4a8(%rsp)
movq 0x4a8(%rsp), %rdi
movq %rdi, 0x498(%rsp)
callq 0x70b80
jmp 0x6b989
movq 0x4a0(%rsp), %rcx
movq 0x498(%rsp), %rax
addq $0x40, %rax
cmpq %rcx, %rax
movq %rax, 0x4a8(%rsp)
jne 0x6b972
movq 0x4c0(%rsp), %rdx
movq 0xd60(%rsp), %rax
movq 0xd58(%rsp), %rcx
movq %rdx, (%rax,%rcx,8)
movq 0xd58(%rsp), %rax
addq $0x1, %rax
movq %rax, 0xd58(%rsp)
jmp 0x6b8e3
movq 0x4b8(%rsp), %rsi
movq 0x4c0(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xfb8(%rsp)
movl %eax, 0xfb4(%rsp)
callq 0x8800
jmp 0x6eb77
movq $0x0, 0xd50(%rsp)
movq 0xd50(%rsp), %rax
cmpq 0xd70(%rsp), %rax
jae 0x6bab1
movq $0x0, 0xd48(%rsp)
movq 0xd48(%rsp), %rax
movq 0xd68(%rsp), %rcx
addq $0x2, %rcx
cmpq %rcx, %rax
jae 0x6ba96
movq 0xd60(%rsp), %rax
movq 0xd50(%rsp), %rcx
movq (%rax,%rcx,8), %rdi
movq 0xd48(%rsp), %rax
shlq $0x6, %rax
addq %rax, %rdi
callq 0x70bd0
jmp 0x6ba7e
jmp 0x6ba80
movq 0xd48(%rsp), %rax
addq $0x1, %rax
movq %rax, 0xd48(%rsp)
jmp 0x6ba3b
jmp 0x6ba98
movq 0xd50(%rsp), %rax
addq $0x1, %rax
movq %rax, 0xd50(%rsp)
jmp 0x6ba19
movq 0x2b538(%rip), %rdi     # 0x96ff0
leaq 0x139a5(%rip), %rsi     # 0x7f464
callq 0x8360
movq %rax, 0x490(%rsp)
jmp 0x6bace
movq 0x490(%rsp), %rdi
movq 0x2b4d3(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6bae4
movq 0x2b505(%rip), %rdi     # 0x96ff0
leaq 0x139b5(%rip), %rsi     # 0x7f4a7
callq 0x8360
movq %rax, 0x488(%rsp)
jmp 0x6bb01
movq 0x488(%rsp), %rdi
movq 0x2b4a0(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6bb17
jmp 0x6bb19
movq 0xda8(%rsp), %rax
movq -0x18(%rax), %rax
leaq 0xda8(%rsp,%rax), %rdi
callq 0x8700
movb %al, 0x487(%rsp)
jmp 0x6bb3b
movb 0x487(%rsp), %cl
xorl %eax, %eax
testb $0x1, %cl
movb %al, 0x486(%rsp)
jne 0x6bb52
jmp 0x6bba2
leaq 0xd88(%rsp), %rdi
callq 0x86e0
movb %al, %cl
xorl %eax, %eax
testb $0x1, %cl
movb %al, 0x486(%rsp)
jne 0x6bba2
xorl %eax, %eax
movl %eax, %esi
leaq 0xd88(%rsp), %rdi
callq 0x8830
movq %rax, 0x478(%rsp)
jmp 0x6bb8a
movq 0x478(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x40, %eax
sete %al
movb %al, 0x486(%rsp)
movb 0x486(%rsp), %al
testb $0x1, %al
jne 0x6bbaf
jmp 0x6bbff
movq 0x2b43a(%rip), %rdi     # 0x96ff0
leaq 0xd88(%rsp), %rsi
callq 0x8330
movq %rax, 0x470(%rsp)
jmp 0x6bbcd
movq 0x470(%rsp), %rdi
movq 0x2b3d4(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6bbe3
leaq 0xda8(%rsp), %rdi
leaq 0xd88(%rsp), %rsi
callq 0x66fa0
jmp 0x6bbfa
jmp 0x6bb19
movq 0x2b3ea(%rip), %rdi     # 0x96ff0
movq 0x2b3a3(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6bc14
movq 0x2b3d5(%rip), %rdi     # 0x96ff0
leaq 0x13115(%rip), %rsi     # 0x7ed37
callq 0x8360
movq %rax, 0x468(%rsp)
jmp 0x6bc31
movq 0x1030(%rsp), %rsi
addq $0xc0, %rsi
leaq 0xd10(%rsp), %rdi
callq 0x70d50
jmp 0x6bc4f
leaq 0xd28(%rsp), %rdi
leaq 0xd10(%rsp), %rsi
callq 0x70c20
jmp 0x6bc66
movq 0x468(%rsp), %rdi
leaq 0xd28(%rsp), %rsi
callq 0x8330
movq %rax, 0x460(%rsp)
jmp 0x6bc85
movq 0x460(%rsp), %rdi
movq 0x2b31c(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6bc9b
leaq 0xd28(%rsp), %rdi
callq 0x8858
leaq 0xd10(%rsp), %rdi
callq 0xe770
movq 0x2b334(%rip), %rdi     # 0x96ff0
leaq 0x130b0(%rip), %rsi     # 0x7ed73
callq 0x8360
movq %rax, 0x458(%rsp)
jmp 0x6bcd2
movq 0x1030(%rsp), %rsi
addq $0xa8, %rsi
leaq 0xcd8(%rsp), %rdi
callq 0x70d50
jmp 0x6bcf0
leaq 0xcf0(%rsp), %rdi
leaq 0xcd8(%rsp), %rsi
callq 0x70c20
jmp 0x6bd07
movq 0x458(%rsp), %rdi
leaq 0xcf0(%rsp), %rsi
callq 0x8330
movq %rax, 0x450(%rsp)
jmp 0x6bd26
movq 0x450(%rsp), %rdi
movq 0x2b27b(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6bd3c
leaq 0xcf0(%rsp), %rdi
callq 0x8858
leaq 0xcd8(%rsp), %rdi
callq 0xe770
movq 0x2b293(%rip), %rdi     # 0x96ff0
leaq 0x13057(%rip), %rsi     # 0x7edbb
callq 0x8360
movq %rax, 0x448(%rsp)
jmp 0x6bd73
movq 0x448(%rsp), %rdi
movq 0x2b22e(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6bd89
leaq 0xcb7(%rsp), %rdi
movq %rdi, 0x440(%rsp)
callq 0x8750
movq 0x440(%rsp), %rdx
leaq 0xdcb1(%rip), %rsi      # 0x79a5e
leaq 0xcb8(%rsp), %rdi
callq 0xb8b0
jmp 0x6bdbc
leaq 0xcb7(%rsp), %rdi
callq 0x83e0
leaq 0xc8f(%rsp), %rdi
movq %rdi, 0x438(%rsp)
callq 0x8750
movq 0x438(%rsp), %rdx
leaq 0xdc71(%rip), %rsi      # 0x79a5e
leaq 0xc90(%rsp), %rdi
callq 0xb8b0
jmp 0x6bdfc
leaq 0xc8f(%rsp), %rdi
callq 0x83e0
movl $0x0, 0xc88(%rsp)
movb $0x9, 0xc87(%rsp)
movq 0x1030(%rsp), %rax
testb $0x1, 0x69(%rax)
je 0x6bf5d
movq 0x2b1bb(%rip), %rdi     # 0x96ff0
leaq 0x13680(%rip), %rsi     # 0x7f4bc
callq 0x8360
movq %rax, 0x430(%rsp)
jmp 0x6be4b
movq 0x430(%rsp), %rdi
movq 0x2b156(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6be61
jmp 0x6bf5d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xfb8(%rsp)
movl %eax, 0xfb4(%rsp)
jmp 0x6be9d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xfb8(%rsp)
movl %eax, 0xfb4(%rsp)
leaq 0xd28(%rsp), %rdi
callq 0x8858
leaq 0xd10(%rsp), %rdi
callq 0xe770
jmp 0x6eb77
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xfb8(%rsp)
movl %eax, 0xfb4(%rsp)
jmp 0x6bee6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xfb8(%rsp)
movl %eax, 0xfb4(%rsp)
leaq 0xcf0(%rsp), %rdi
callq 0x8858
leaq 0xcd8(%rsp), %rdi
callq 0xe770
jmp 0x6eb77
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xfb8(%rsp)
movl %eax, 0xfb4(%rsp)
leaq 0xcb7(%rsp), %rdi
callq 0x83e0
jmp 0x6eb77
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xfb8(%rsp)
movl %eax, 0xfb4(%rsp)
leaq 0xc8f(%rsp), %rdi
callq 0x83e0
jmp 0x6eb6a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xfb8(%rsp)
movl %eax, 0xfb4(%rsp)
jmp 0x6eb5d
movq 0xda8(%rsp), %rax
movq -0x18(%rax), %rax
leaq 0xda8(%rsp,%rax), %rdi
callq 0x8700
movb %al, 0x42f(%rsp)
jmp 0x6bf7f
movb 0x42f(%rsp), %al
testb $0x1, %al
jne 0x6bf8f
jmp 0x6d636
leaq 0xd88(%rsp), %rdi
callq 0x86e0
testb $0x1, %al
jne 0x6d636
jmp 0x6bfa6
movl $0x0, 0xc80(%rsp)
movsbl 0xc87(%rsp), %edx
leaq 0xc60(%rsp), %rdi
leaq 0xd88(%rsp), %rsi
leaq 0xc80(%rsp), %rcx
callq 0x66e60
jmp 0x6bfd8
leaq 0xc90(%rsp), %rdi
leaq 0xc60(%rsp), %rsi
callq 0x84b0
leaq 0xc60(%rsp), %rdi
callq 0x8858
leaq 0xc90(%rsp), %rdi
callq 0x8630
cmpq $0x2, %rax
jbe 0x6c084
leaq 0xc90(%rsp), %rdi
movq %rdi, 0x418(%rsp)
callq 0x8630
movq 0x418(%rsp), %rdi
movq %rax, %rsi
addq $-0x2, %rsi
callq 0x8830
movq %rax, 0x420(%rsp)
jmp 0x6c040
movq 0x420(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x2f, %eax
jne 0x6c084
leaq 0xc90(%rsp), %rdi
movq %rdi, 0x410(%rsp)
callq 0x8630
movq 0x410(%rsp), %rdi
movq %rax, %rsi
addq $-0x2, %rsi
movq $-0x1, %rdx
callq 0x80f0
jmp 0x6c082
jmp 0x6c084
leaq 0xc90(%rsp), %rdi
movq %rdi, 0x408(%rsp)
callq 0x8250
movq 0x408(%rsp), %rsi
decl %eax
movl %eax, 0xc5c(%rsp)
leaq 0xc38(%rsp), %rdi
movl $0x5f, %edx
leaq 0xc5c(%rsp), %rcx
callq 0x66f00
jmp 0x6c0c6
leaq 0xc38(%rsp), %rdi
callq 0x8858
leaq 0xc10(%rsp), %rdi
leaq 0xc90(%rsp), %rsi
movl $0x3a, %edx
leaq 0xc5c(%rsp), %rcx
callq 0x66f00
jmp 0x6c0f7
leaq 0xc10(%rsp), %rdi
movq %rdi, 0x3f8(%rsp)
callq 0x8170
movq %rax, %rdi
callq 0x8670
movq 0x3f8(%rsp), %rdi
movl %eax, 0x404(%rsp)
callq 0x8858
movl 0x404(%rsp), %eax
movl %eax, 0xc34(%rsp)
leaq 0xbf0(%rsp), %rdi
leaq 0xc90(%rsp), %rsi
movl $0x3a, %edx
leaq 0xc5c(%rsp), %rcx
callq 0x66f00
jmp 0x6c15a
leaq 0xbf0(%rsp), %rdi
movq %rdi, 0x3f0(%rsp)
callq 0x8170
movq %rax, %rdi
callq 0x8670
movq 0x3f0(%rsp), %rdi
movl %eax, %ecx
movl 0xc34(%rsp), %eax
addl %ecx, %eax
movl %eax, 0xc34(%rsp)
callq 0x8858
leaq 0xbd0(%rsp), %rdi
leaq 0xc90(%rsp), %rsi
movl $0x5f, %edx
leaq 0xc5c(%rsp), %rcx
callq 0x66f00
jmp 0x6c1ba
leaq 0xbd0(%rsp), %rdi
movq %rdi, 0x3e8(%rsp)
callq 0x8170
movq %rax, %rdi
callq 0x8670
movq 0x3e8(%rsp), %rdi
movl %eax, %ecx
movl 0xc34(%rsp), %eax
addl %ecx, %eax
movl %eax, 0xc34(%rsp)
callq 0x8858
leaq 0xba8(%rsp), %rdi
leaq 0xc90(%rsp), %rsi
movl $0x3a, %edx
leaq 0xc5c(%rsp), %rcx
callq 0x66f00
jmp 0x6c21a
leaq 0xba8(%rsp), %rdi
movq %rdi, 0x3d8(%rsp)
callq 0x8170
movq %rax, %rdi
callq 0x8670
movq 0x3d8(%rsp), %rdi
movl %eax, 0x3e4(%rsp)
callq 0x8858
movl 0x3e4(%rsp), %eax
movl %eax, 0xbcc(%rsp)
leaq 0xb88(%rsp), %rdi
leaq 0xc90(%rsp), %rsi
movl $0x3a, %edx
leaq 0xc5c(%rsp), %rcx
callq 0x66f00
jmp 0x6c27d
leaq 0xb88(%rsp), %rdi
movq %rdi, 0x3d0(%rsp)
callq 0x8170
movq %rax, %rdi
callq 0x8670
movq 0x3d0(%rsp), %rdi
movl %eax, %ecx
movl 0xbcc(%rsp), %eax
addl %ecx, %eax
movl %eax, 0xbcc(%rsp)
callq 0x8858
leaq 0xb68(%rsp), %rdi
leaq 0xc90(%rsp), %rsi
movl $0x5f, %edx
leaq 0xc5c(%rsp), %rcx
callq 0x66f00
jmp 0x6c2dd
leaq 0xb68(%rsp), %rdi
movq %rdi, 0x3c8(%rsp)
callq 0x8170
movq %rax, %rdi
callq 0x8670
movq 0x3c8(%rsp), %rdi
movl %eax, %ecx
movl 0xbcc(%rsp), %eax
addl %ecx, %eax
movl %eax, 0xbcc(%rsp)
callq 0x8858
leaq 0xb40(%rsp), %rdi
leaq 0xc90(%rsp), %rsi
movl $0x5f, %edx
leaq 0xc5c(%rsp), %rcx
callq 0x66f00
jmp 0x6c33d
leaq 0xb40(%rsp), %rdi
movq %rdi, 0x3b8(%rsp)
callq 0x8170
movq %rax, %rdi
callq 0x8670
movq 0x3b8(%rsp), %rdi
cltq
movq %rax, 0x3c0(%rsp)
callq 0x8858
movq 0x3c0(%rsp), %rax
movq %rax, 0xb60(%rsp)
leaq 0xb18(%rsp), %rdi
leaq 0xc90(%rsp), %rsi
movl $0x5f, %edx
leaq 0xc5c(%rsp), %rcx
callq 0x66f00
jmp 0x6c3a5
leaq 0xb18(%rsp), %rdi
movq %rdi, 0x3a8(%rsp)
callq 0x8170
movq %rax, %rdi
callq 0x8670
movq 0x3a8(%rsp), %rdi
cltq
movq %rax, 0x3b0(%rsp)
callq 0x8858
movq 0x3b0(%rsp), %rax
movq %rax, 0xb38(%rsp)
movl 0xc5c(%rsp), %eax
incl %eax
movslq %eax, %rcx
xorl %eax, %eax
movl %eax, %edx
leaq 0xaf8(%rsp), %rdi
leaq 0xc90(%rsp), %rsi
callq 0x83a0
jmp 0x6c410
movsbl 0xc87(%rsp), %edx
leaq 0xad0(%rsp), %rdi
leaq 0xd88(%rsp), %rsi
leaq 0xc80(%rsp), %rcx
callq 0x66e60
jmp 0x6c437
leaq 0xad0(%rsp), %rdi
movq %rdi, 0x3a0(%rsp)
callq 0x8170
movq %rax, %rdi
callq 0x8670
movslq %eax, %rsi
leaq 0xaf0(%rsp), %rdi
callq 0x52550
movq 0x3a0(%rsp), %rdi
callq 0x8858
movsbl 0xc87(%rsp), %edx
leaq 0xab0(%rsp), %rdi
leaq 0xd88(%rsp), %rsi
leaq 0xc80(%rsp), %rcx
callq 0x66e60
jmp 0x6c498
movsbl 0xc87(%rsp), %edx
leaq 0xa88(%rsp), %rdi
leaq 0xd88(%rsp), %rsi
leaq 0xc80(%rsp), %rcx
callq 0x66e60
jmp 0x6c4bf
leaq 0xa88(%rsp), %rdi
movq %rdi, 0x390(%rsp)
callq 0x8170
movq %rax, %rdi
callq 0x8670
movq 0x390(%rsp), %rdi
cltq
movq %rax, 0x398(%rsp)
callq 0x8858
movq 0x398(%rsp), %rax
movq %rax, 0xaa8(%rsp)
movq 0xaa8(%rsp), %rax
movq %rax, 0xa80(%rsp)
movsbl 0xc87(%rsp), %edx
leaq 0xa58(%rsp), %rdi
leaq 0xd88(%rsp), %rsi
leaq 0xc80(%rsp), %rcx
callq 0x66e60
jmp 0x6c53a
leaq 0xa58(%rsp), %rdi
movq %rdi, 0x380(%rsp)
callq 0x8170
movq %rax, %rdi
callq 0x8670
movq 0x380(%rsp), %rdi
movl %eax, 0x38c(%rsp)
callq 0x8858
movl 0x38c(%rsp), %eax
movl %eax, 0xa7c(%rsp)
movsbl 0xc87(%rsp), %edx
leaq 0xa38(%rsp), %rdi
leaq 0xd88(%rsp), %rsi
leaq 0xc80(%rsp), %rcx
callq 0x66e60
jmp 0x6c5a0
movl $0x0, 0xa34(%rsp)
leaq 0xa38(%rsp), %rdi
callq 0x8250
movl %eax, 0xa30(%rsp)
movl 0xa34(%rsp), %eax
cmpl 0xa30(%rsp), %eax
jge 0x6c7c2
movl 0xa34(%rsp), %eax
movl %eax, 0xa2c(%rsp)
movslq 0xa34(%rsp), %rsi
leaq 0xa38(%rsp), %rdi
callq 0x8830
movq %rax, 0x378(%rsp)
jmp 0x6c600
movq 0x378(%rsp), %rax
movsbl (%rax), %ecx
xorl %eax, %eax
cmpl $0x30, %ecx
movb %al, 0x377(%rsp)
jl 0x6c650
movslq 0xa34(%rsp), %rsi
leaq 0xa38(%rsp), %rdi
callq 0x8830
movq %rax, 0x368(%rsp)
jmp 0x6c638
movq 0x368(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x39, %eax
setle %al
movb %al, 0x377(%rsp)
movb 0x377(%rsp), %al
testb $0x1, %al
jne 0x6c65d
jmp 0x6c6be
movl 0xa34(%rsp), %eax
addl $0x1, %eax
movl %eax, 0xa34(%rsp)
jmp 0x6c5e1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xfb8(%rsp)
movl %eax, 0xfb4(%rsp)
jmp 0x6d55d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xfb8(%rsp)
movl %eax, 0xfb4(%rsp)
jmp 0x6d550
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xfb8(%rsp)
movl %eax, 0xfb4(%rsp)
jmp 0x6d543
movslq 0xa34(%rsp), %rsi
leaq 0xa38(%rsp), %rdi
callq 0x8830
movq %rax, 0x360(%rsp)
jmp 0x6c6dd
movq 0x360(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x4d, %eax
je 0x6c74b
movslq 0xa34(%rsp), %rsi
leaq 0xa38(%rsp), %rdi
callq 0x8830
movq %rax, 0x358(%rsp)
jmp 0x6c70c
movq 0x358(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x4e, %eax
je 0x6c74b
movslq 0xa34(%rsp), %rsi
leaq 0xa38(%rsp), %rdi
callq 0x8830
movq %rax, 0x350(%rsp)
jmp 0x6c73b
movq 0x350(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x44, %eax
jne 0x6c7ac
movslq 0xa2c(%rsp), %rdx
movl %edx, %ecx
movl 0xa34(%rsp), %eax
subl %ecx, %eax
movslq %eax, %rcx
leaq 0xa08(%rsp), %rdi
leaq 0xa38(%rsp), %rsi
callq 0x83a0
jmp 0x6c778
leaq 0xa08(%rsp), %rdi
callq 0x8170
movq %rax, %rdi
callq 0x8670
cltq
addq 0xa80(%rsp), %rax
movq %rax, 0xa80(%rsp)
leaq 0xa08(%rsp), %rdi
callq 0x8858
movl 0xa34(%rsp), %eax
addl $0x1, %eax
movl %eax, 0xa34(%rsp)
jmp 0x6c5bf
movq 0xa80(%rsp), %rax
addq $-0x1, %rax
movq %rax, 0xa80(%rsp)
movq 0xaa8(%rsp), %rax
movq %rax, 0xa00(%rsp)
movq 0xa80(%rsp), %rax
movq %rax, 0x9f8(%rsp)
movl $0x0, 0xa34(%rsp)
movslq 0xa34(%rsp), %rsi
leaq 0xa38(%rsp), %rdi
callq 0x8830
movq %rax, 0x348(%rsp)
jmp 0x6c820
movq 0x348(%rsp), %rax
movsbl (%rax), %ecx
xorl %eax, %eax
cmpl $0x30, %ecx
movb %al, 0x347(%rsp)
jl 0x6c870
movslq 0xa34(%rsp), %rsi
leaq 0xa38(%rsp), %rdi
callq 0x8830
movq %rax, 0x338(%rsp)
jmp 0x6c858
movq 0x338(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x39, %eax
setle %al
movb %al, 0x347(%rsp)
movb 0x347(%rsp), %al
testb $0x1, %al
jne 0x6c87d
jmp 0x6c893
movl 0xa34(%rsp), %eax
addl $0x1, %eax
movl %eax, 0xa34(%rsp)
jmp 0x6c801
movslq 0xa34(%rsp), %rsi
leaq 0xa38(%rsp), %rdi
callq 0x8830
movq %rax, 0x330(%rsp)
jmp 0x6c8b2
movq 0x330(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x53, %eax
je 0x6c8f5
movslq 0xa34(%rsp), %rsi
leaq 0xa38(%rsp), %rdi
callq 0x8830
movq %rax, 0x328(%rsp)
jmp 0x6c8e1
movq 0x328(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x48, %eax
jne 0x6c9af
movslq 0xa34(%rsp), %rcx
xorl %eax, %eax
movl %eax, %edx
leaq 0x9d8(%rsp), %rdi
leaq 0xa38(%rsp), %rsi
callq 0x83a0
jmp 0x6c918
leaq 0x9d8(%rsp), %rdi
movq %rdi, 0x320(%rsp)
callq 0x8170
movq %rax, %rdi
callq 0x8670
movq 0x320(%rsp), %rdi
movslq %eax, %rcx
movq 0xaa8(%rsp), %rax
subq %rcx, %rax
movq %rax, 0xaa8(%rsp)
callq 0x8858
movslq 0xa34(%rsp), %rcx
xorl %eax, %eax
movl %eax, %edx
leaq 0x9b8(%rsp), %rdi
leaq 0xa38(%rsp), %rsi
callq 0x83a0
jmp 0x6c97b
leaq 0x9b8(%rsp), %rdi
callq 0x8170
movq %rax, %rdi
callq 0x8670
cltq
addq 0x9f8(%rsp), %rax
movq %rax, 0x9f8(%rsp)
leaq 0x9b8(%rsp), %rdi
callq 0x8858
leaq 0xa38(%rsp), %rdi
movq %rdi, 0x310(%rsp)
callq 0x8250
movq 0x310(%rsp), %rdi
movq %rax, %rsi
decq %rsi
callq 0x8830
movq %rax, 0x318(%rsp)
jmp 0x6c9e1
movq 0x318(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x53, %eax
je 0x6ca37
leaq 0xa38(%rsp), %rdi
movq %rdi, 0x300(%rsp)
callq 0x8250
movq 0x300(%rsp), %rdi
movq %rax, %rsi
decq %rsi
callq 0x8830
movq %rax, 0x308(%rsp)
jmp 0x6ca23
movq 0x308(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x48, %eax
jne 0x6cc16
leaq 0xa38(%rsp), %rdi
callq 0x8250
subq $0x2, %rax
movl %eax, 0xa34(%rsp)
xorl %eax, %eax
cmpl $0x0, 0xa34(%rsp)
movb %al, 0x2ff(%rsp)
jl 0x6cad1
movslq 0xa34(%rsp), %rsi
leaq 0xa38(%rsp), %rdi
callq 0x8830
movq %rax, 0x2f0(%rsp)
jmp 0x6ca81
movq 0x2f0(%rsp), %rax
movsbl (%rax), %ecx
xorl %eax, %eax
cmpl $0x30, %ecx
movb %al, 0x2ff(%rsp)
jl 0x6cad1
movslq 0xa34(%rsp), %rsi
leaq 0xa38(%rsp), %rdi
callq 0x8830
movq %rax, 0x2e8(%rsp)
jmp 0x6cab9
movq 0x2e8(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x39, %eax
setle %al
movb %al, 0x2ff(%rsp)
movb 0x2ff(%rsp), %al
testb $0x1, %al
jne 0x6cade
jmp 0x6caf4
movl 0xa34(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0xa34(%rsp)
jmp 0x6ca4f
movl 0xa34(%rsp), %eax
incl %eax
cltq
movq %rax, 0x2e0(%rsp)
leaq 0xa38(%rsp), %rdi
movq %rdi, 0x2d8(%rsp)
callq 0x8250
movq 0x2d8(%rsp), %rsi
movq 0x2e0(%rsp), %rdx
movslq 0xa34(%rsp), %rcx
notq %rcx
addq %rax, %rcx
leaq 0x998(%rsp), %rdi
callq 0x83a0
jmp 0x6cb49
leaq 0x998(%rsp), %rdi
movq %rdi, 0x2c0(%rsp)
callq 0x8170
movq %rax, %rdi
callq 0x8670
movq 0x2c0(%rsp), %rdi
movslq %eax, %rcx
movq 0xa80(%rsp), %rax
addq %rcx, %rax
movq %rax, 0xa80(%rsp)
callq 0x8858
movl 0xa34(%rsp), %eax
incl %eax
cltq
movq %rax, 0x2d0(%rsp)
leaq 0xa38(%rsp), %rdi
movq %rdi, 0x2c8(%rsp)
callq 0x8250
movq 0x2c8(%rsp), %rsi
movq 0x2d0(%rsp), %rdx
movslq 0xa34(%rsp), %rcx
notq %rcx
addq %rax, %rcx
leaq 0x978(%rsp), %rdi
callq 0x83a0
jmp 0x6cbde
leaq 0x978(%rsp), %rdi
callq 0x8170
movq %rax, %rdi
callq 0x8670
movslq %eax, %rcx
movq 0xa00(%rsp), %rax
subq %rcx, %rax
movq %rax, 0xa00(%rsp)
leaq 0x978(%rsp), %rdi
callq 0x8858
movsbl 0xc87(%rsp), %edx
leaq 0x958(%rsp), %rdi
leaq 0xd88(%rsp), %rsi
leaq 0xc80(%rsp), %rcx
callq 0x66e60
jmp 0x6cc3d
leaq 0x958(%rsp), %rdi
callq 0x8858
movsbl 0xc87(%rsp), %edx
leaq 0x938(%rsp), %rdi
leaq 0xd88(%rsp), %rsi
leaq 0xc80(%rsp), %rcx
callq 0x66e60
jmp 0x6cc71
leaq 0x938(%rsp), %rdi
callq 0x8858
movl $0x0, 0x934(%rsp)
movsbl 0xc87(%rsp), %esi
movslq 0xc80(%rsp), %rdx
leaq 0xd88(%rsp), %rdi
movq %rdi, 0x2b8(%rsp)
callq 0x8540
movq 0x2b8(%rsp), %rdi
incl %eax
movl %eax, 0xc80(%rsp)
movsbl 0xc87(%rsp), %esi
movslq 0xc80(%rsp), %rdx
callq 0x8540
movq 0x2b8(%rsp), %rdi
incl %eax
movl %eax, 0xc80(%rsp)
movsbl 0xc87(%rsp), %esi
movslq 0xc80(%rsp), %rdx
callq 0x8540
incl %eax
movl %eax, 0xc80(%rsp)
movq 0x1030(%rsp), %rsi
addq $0xd8, %rsi
leaq 0xc755(%rip), %rdx      # 0x7946e
leaq 0x910(%rsp), %rdi
callq 0x1f400
jmp 0x6cd28
movslq 0xc80(%rsp), %rdx
leaq 0xd88(%rsp), %rdi
leaq 0x910(%rsp), %rsi
callq 0x8840
movl %eax, 0x90c(%rsp)
cmpl $-0x1, 0x90c(%rsp)
jne 0x6cde9
leaq 0xaf0(%rsp), %rdi
movl $0x2, %esi
callq 0xe340
movb %al, 0x2b7(%rsp)
jmp 0x6cd75
movb 0x2b7(%rsp), %al
testb $0x1, %al
jne 0x6cde9
jmp 0x6cd82
leaq 0x1010(%rsp), %rdi
leaq 0xff8(%rsp), %rsi
leaq 0xfe0(%rsp), %rdx
leaq 0xd88(%rsp), %rcx
callq 0x67920
movl %eax, 0x2b0(%rsp)
jmp 0x6cdb0
movl 0x2b0(%rsp), %eax
movl %eax, 0x934(%rsp)
jmp 0x6cea1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xfb8(%rsp)
movl %eax, 0xfb4(%rsp)
leaq 0x910(%rsp), %rdi
callq 0x8858
jmp 0x6d543
movl 0x90c(%rsp), %eax
cmpl 0xc80(%rsp), %eax
jl 0x6ce9f
movb 0xc87(%rsp), %al
movslq 0x90c(%rsp), %rdx
leaq 0xd88(%rsp), %rdi
movsbl %al, %esi
callq 0x8540
movl %eax, 0xc80(%rsp)
cmpl $-0x1, 0xc80(%rsp)
jne 0x6ce41
leaq 0xd88(%rsp), %rdi
callq 0x8630
movl %eax, 0xc80(%rsp)
movl 0x90c(%rsp), %ecx
movl %ecx, %eax
addl $0x5, %eax
movslq %eax, %rdx
movl 0xc80(%rsp), %eax
subl %ecx, %eax
addl $-0x5, %eax
movslq %eax, %rcx
leaq 0x8e8(%rsp), %rdi
leaq 0xd88(%rsp), %rsi
callq 0x83a0
jmp 0x6ce76
leaq 0x8e8(%rsp), %rdi
callq 0x8170
movq %rax, %rdi
callq 0x8670
movl %eax, 0x934(%rsp)
leaq 0x8e8(%rsp), %rdi
callq 0x8858
jmp 0x6cea1
leaq 0xcbb6(%rip), %rsi      # 0x79a5e
leaq 0xcb8(%rsp), %rdi
callq 0x71060
movb %al, 0x2af(%rsp)
jmp 0x6cebe
movb 0x2af(%rsp), %al
testb $0x1, %al
jne 0x6cece
jmp 0x6d07d
leaq 0xcb8(%rsp), %rdi
leaq 0xc90(%rsp), %rsi
callq 0x8050
movl %eax, 0x2a8(%rsp)
jmp 0x6ceec
movl 0x2a8(%rsp), %eax
cmpl $0x0, %eax
je 0x6d07d
movq $0x0, 0x8e0(%rsp)
movq 0x8e0(%rsp), %rax
cmpq 0xd70(%rsp), %rax
jae 0x6d05e
cmpl $0x2, 0xc88(%rsp)
jg 0x6cf4f
movq 0xd60(%rsp), %rax
movq 0x8e0(%rsp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, %rdi
addq $0x40, %rdi
movl 0x38(%rax), %esi
callq 0x63cf0
jmp 0x6cf4d
jmp 0x6cf4f
movq 0x1030(%rsp), %rax
testb $0x1, 0x69(%rax)
je 0x6cfad
movq 0xd60(%rsp), %rax
movq 0x8e0(%rsp), %rcx
movq (%rax,%rcx,8), %rax
cmpl $0x0, 0x38(%rax)
jne 0x6cfad
movq 0x2a072(%rip), %rdi     # 0x96ff0
leaq 0xcb8(%rsp), %rsi
callq 0x8330
movq %rax, 0x2a0(%rsp)
jmp 0x6cf95
movq 0x2a0(%rsp), %rdi
movq 0x2a00c(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6cfab
jmp 0x6cfad
movq 0xd60(%rsp), %rax
movq 0x8e0(%rsp), %rcx
movq (%rax,%rcx,8), %rdi
callq 0x63d80
movq 0xd60(%rsp), %rax
movq 0x8e0(%rsp), %rcx
movq (%rax,%rcx,8), %rdi
addq $0x40, %rdi
callq 0x63d80
movq $0x0, 0x8d8(%rsp)
movq 0x8d8(%rsp), %rax
cmpq 0xd68(%rsp), %rax
jae 0x6d043
movq 0xd60(%rsp), %rax
movq 0x8e0(%rsp), %rcx
movq (%rax,%rcx,8), %rdi
movq 0x8d8(%rsp), %rax
addq $0x2, %rax
shlq $0x6, %rax
addq %rax, %rdi
callq 0x63d80
movq 0x8d8(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x8d8(%rsp)
jmp 0x6cfef
jmp 0x6d045
movq 0x8e0(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x8e0(%rsp)
jmp 0x6cf08
movl $0x0, 0xc88(%rsp)
movq 0xd78(%rsp), %rax
addq $0x1, %rax
movq %rax, 0xd78(%rsp)
leaq 0xcb8(%rsp), %rdi
leaq 0xc90(%rsp), %rsi
callq 0x8060
jmp 0x6d094
leaq 0xaf0(%rsp), %rdi
movl $0x2, %esi
callq 0xe340
movb %al, 0x29f(%rsp)
jmp 0x6d0af
movb 0x29f(%rsp), %al
testb $0x1, %al
jne 0x6d3ed
jmp 0x6d0c0
movl 0xc88(%rsp), %eax
addl $0x1, %eax
movl %eax, 0xc88(%rsp)
movq $0x0, 0x8d0(%rsp)
movq 0x8d0(%rsp), %rax
cmpq 0xd70(%rsp), %rax
jae 0x6d3eb
movl $0x0, 0x8cc(%rsp)
leaq 0xaf0(%rsp), %rdi
movl $0x4, %esi
callq 0xe340
movb %al, 0x29e(%rsp)
jmp 0x6d119
movb 0x29e(%rsp), %al
testb $0x1, %al
jne 0x6d217
jmp 0x6d12a
leaq 0xaf8(%rsp), %rdi
leaq 0xab0(%rsp), %rsi
callq 0x8050
movl %eax, 0x298(%rsp)
jmp 0x6d148
movl 0x298(%rsp), %eax
cmpl $0x0, %eax
jne 0x6d1f5
movq 0xb38(%rsp), %rax
subq 0xaa8(%rsp), %rax
movl %eax, %ecx
negl %ecx
cmovnsl %ecx, %eax
movl %eax, 0x294(%rsp)
movq 0x1030(%rsp), %rdi
addq $0xc0, %rdi
movq 0x8d0(%rsp), %rsi
callq 0x1eb90
movq %rax, %rcx
movl 0x294(%rsp), %eax
cmpl (%rcx), %eax
jle 0x6d1e8
movq 0xb38(%rsp), %rax
subq 0xa00(%rsp), %rax
movl %eax, %ecx
negl %ecx
cmovnsl %ecx, %eax
movl %eax, 0x290(%rsp)
movq 0x1030(%rsp), %rdi
addq $0xc0, %rdi
movq 0x8d0(%rsp), %rsi
callq 0x1eb90
movq %rax, %rcx
movl 0x290(%rsp), %eax
cmpl (%rcx), %eax
jg 0x6d1f5
movl $0x2, 0x8cc(%rsp)
jmp 0x6d212
movl 0x934(%rsp), %eax
cmpl 0xbcc(%rsp), %eax
jg 0x6d210
movl $0x1, 0x8cc(%rsp)
jmp 0x6d212
jmp 0x6d301
leaq 0xaf8(%rsp), %rdi
leaq 0xab0(%rsp), %rsi
callq 0x8050
movl %eax, 0x28c(%rsp)
jmp 0x6d235
movl 0x28c(%rsp), %eax
cmpl $0x0, %eax
jne 0x6d2e2
movq 0xb60(%rsp), %rax
subq 0xa80(%rsp), %rax
movl %eax, %ecx
negl %ecx
cmovnsl %ecx, %eax
movl %eax, 0x288(%rsp)
movq 0x1030(%rsp), %rdi
addq $0xc0, %rdi
movq 0x8d0(%rsp), %rsi
callq 0x1eb90
movq %rax, %rcx
movl 0x288(%rsp), %eax
cmpl (%rcx), %eax
jle 0x6d2d5
movq 0xb60(%rsp), %rax
subq 0x9f8(%rsp), %rax
movl %eax, %ecx
negl %ecx
cmovnsl %ecx, %eax
movl %eax, 0x284(%rsp)
movq 0x1030(%rsp), %rdi
addq $0xc0, %rdi
movq 0x8d0(%rsp), %rsi
callq 0x1eb90
movq %rax, %rcx
movl 0x284(%rsp), %eax
cmpl (%rcx), %eax
jg 0x6d2e2
movl $0x2, 0x8cc(%rsp)
jmp 0x6d2ff
movl 0x934(%rsp), %eax
cmpl 0xc34(%rsp), %eax
jg 0x6d2fd
movl $0x1, 0x8cc(%rsp)
jmp 0x6d2ff
jmp 0x6d301
movq 0xd60(%rsp), %rax
movq 0x8d0(%rsp), %rcx
movq (%rax,%rcx,8), %rdi
movl 0x8cc(%rsp), %esi
callq 0x63cf0
jmp 0x6d323
movq $0x0, 0x8c0(%rsp)
movq 0x8c0(%rsp), %rax
cmpq 0xd68(%rsp), %rax
jae 0x6d3d0
movl 0xa7c(%rsp), %eax
movl %eax, 0x280(%rsp)
movq 0x1030(%rsp), %rdi
addq $0xa8, %rdi
movq 0x8c0(%rsp), %rsi
callq 0x1eb90
movq %rax, %rcx
movl 0x280(%rsp), %eax
cmpl (%rcx), %eax
jl 0x6d3b5
movq 0xd60(%rsp), %rax
movq 0x8d0(%rsp), %rcx
movq (%rax,%rcx,8), %rcx
movq 0x8c0(%rsp), %rax
shlq $0x6, %rax
leaq 0x80(%rax,%rcx), %rdi
movl 0x8cc(%rsp), %esi
callq 0x63cf0
jmp 0x6d3b3
jmp 0x6d3b5
jmp 0x6d3b7
movq 0x8c0(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x8c0(%rsp)
jmp 0x6d32f
jmp 0x6d3d2
movq 0x8d0(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x8d0(%rsp)
jmp 0x6d0dd
jmp 0x6d3ed
leaq 0xda8(%rsp), %rdi
leaq 0xd88(%rsp), %rsi
callq 0x66fa0
jmp 0x6d404
leaq 0x910(%rsp), %rdi
callq 0x8858
leaq 0xa38(%rsp), %rdi
callq 0x8858
leaq 0xab0(%rsp), %rdi
callq 0x8858
leaq 0xaf8(%rsp), %rdi
callq 0x8858
movq 0xda8(%rsp), %rax
movq -0x18(%rax), %rax
leaq 0xda8(%rsp,%rax), %rdi
callq 0x8700
movb %al, 0x27f(%rsp)
jmp 0x6d45a
movb 0x27f(%rsp), %cl
xorl %eax, %eax
testb $0x1, %cl
movb %al, 0x27e(%rsp)
jne 0x6d471
jmp 0x6d487
leaq 0xd88(%rsp), %rdi
callq 0x86e0
xorb $-0x1, %al
movb %al, 0x27e(%rsp)
movb 0x27e(%rsp), %al
testb $0x1, %al
jne 0x6bfa6
leaq 0xc5c1(%rip), %rsi      # 0x79a5e
leaq 0xcb8(%rsp), %rdi
callq 0x71060
movb %al, 0x27d(%rsp)
jmp 0x6d4b3
movb 0x27d(%rsp), %al
testb $0x1, %al
jne 0x6d4c3
jmp 0x6d634
movq $0x0, 0x8b8(%rsp)
movq 0x8b8(%rsp), %rax
cmpq 0xd70(%rsp), %rax
jae 0x6d620
movq 0x1030(%rsp), %rax
testb $0x1, 0x69(%rax)
je 0x6d56f
movq 0xd60(%rsp), %rax
movq 0x8b8(%rsp), %rcx
movq (%rax,%rcx,8), %rax
cmpl $0x0, 0x38(%rax)
jne 0x6d56f
movq 0x29adc(%rip), %rdi     # 0x96ff0
leaq 0xcb8(%rsp), %rsi
callq 0x8330
movq %rax, 0x270(%rsp)
jmp 0x6d52b
movq 0x270(%rsp), %rdi
movq 0x29a76(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6d541
jmp 0x6d56f
leaq 0xa38(%rsp), %rdi
callq 0x8858
leaq 0xab0(%rsp), %rdi
callq 0x8858
leaq 0xaf8(%rsp), %rdi
callq 0x8858
jmp 0x6eb5d
movq 0xd60(%rsp), %rax
movq 0x8b8(%rsp), %rcx
movq (%rax,%rcx,8), %rdi
callq 0x63d80
movq 0xd60(%rsp), %rax
movq 0x8b8(%rsp), %rcx
movq (%rax,%rcx,8), %rdi
addq $0x40, %rdi
callq 0x63d80
movq $0x0, 0x8b0(%rsp)
movq 0x8b0(%rsp), %rax
cmpq 0xd68(%rsp), %rax
jae 0x6d605
movq 0xd60(%rsp), %rax
movq 0x8b8(%rsp), %rcx
movq (%rax,%rcx,8), %rdi
movq 0x8b0(%rsp), %rax
addq $0x2, %rax
shlq $0x6, %rax
addq %rax, %rdi
callq 0x63d80
movq 0x8b0(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x8b0(%rsp)
jmp 0x6d5b1
jmp 0x6d607
movq 0x8b8(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x8b8(%rsp)
jmp 0x6d4cf
movq 0xd78(%rsp), %rax
addq $0x1, %rax
movq %rax, 0xd78(%rsp)
jmp 0x6d636
movq 0x299b3(%rip), %rdi     # 0x96ff0
leaq 0x117af(%rip), %rsi     # 0x7edf3
callq 0x8360
movq %rax, 0x268(%rsp)
jmp 0x6d653
movq 0x268(%rsp), %rdi
movq 0x2994e(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6d669
leaq 0xda8(%rsp), %rdi
callq 0x80e0
jmp 0x6d678
movq 0x29971(%rip), %rdi     # 0x96ff0
movq 0x2992a(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6d68d
movq 0x2995c(%rip), %rdi     # 0x96ff0
leaq 0x1177e(%rip), %rsi     # 0x7ee19
callq 0x8360
movq %rax, 0x260(%rsp)
jmp 0x6d6aa
movq 0x260(%rsp), %rdi
movq 0x298f7(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6d6c0
movq 0x29929(%rip), %rdi     # 0x96ff0
leaq 0x11e15(%rip), %rsi     # 0x7f4e3
callq 0x8360
movq %rax, 0x258(%rsp)
jmp 0x6d6dd
movq 0x258(%rsp), %rdi
movq 0x298c4(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6d6f3
movq 0x1030(%rsp), %rdi
addq $0x8, %rdi
callq 0x86e0
testb $0x1, %al
jne 0x6e133
movq 0x1030(%rsp), %rdi
addq $0x8, %rdi
callq 0x8170
movq %rax, %rsi
leaq 0x6b0(%rsp), %rdi
movl $0x10, %edx
callq 0x83f0
jmp 0x6d734
leaq 0x11793(%rip), %rsi     # 0x7eece
leaq 0x6b0(%rsp), %rdi
callq 0x8360
movq %rax, 0x250(%rsp)
jmp 0x6d752
movq 0x250(%rsp), %rdi
movq 0x2984f(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6d768
leaq 0x117ab(%rip), %rsi     # 0x7ef1a
leaq 0x6b0(%rsp), %rdi
callq 0x8360
movq %rax, 0x248(%rsp)
jmp 0x6d786
movq 0x248(%rsp), %rdi
movq 0x2981b(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6d79c
leaq 0x11dd1(%rip), %rsi     # 0x7f574
leaq 0x6b0(%rsp), %rdi
callq 0x8360
movq %rax, 0x240(%rsp)
jmp 0x6d7ba
movq 0x240(%rsp), %rdi
movq 0x297e7(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6d7d0
leaq 0x11743(%rip), %rsi     # 0x7ef1a
leaq 0x6b0(%rsp), %rdi
callq 0x8360
movq %rax, 0x238(%rsp)
jmp 0x6d7ee
movq 0x238(%rsp), %rdi
movq 0x297b3(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6d804
leaq 0x117bc(%rip), %rsi     # 0x7efc7
leaq 0x6b0(%rsp), %rdi
callq 0x8360
movq %rax, 0x230(%rsp)
jmp 0x6d822
movq 0x230(%rsp), %rdi
movq 0x1030(%rsp), %rsi
addq $0x70, %rsi
callq 0x8330
movq %rax, 0x228(%rsp)
jmp 0x6d845
movq 0x228(%rsp), %rdi
movq 0x2975c(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6d85b
leaq 0x116b8(%rip), %rsi     # 0x7ef1a
leaq 0x6b0(%rsp), %rdi
callq 0x8360
movq %rax, 0x220(%rsp)
jmp 0x6d879
movq 0x220(%rsp), %rdi
movq 0x29728(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6d88f
leaq 0x1177e(%rip), %rsi     # 0x7f014
leaq 0x6b0(%rsp), %rdi
callq 0x8360
movq %rax, 0x218(%rsp)
jmp 0x6d8ad
movq 0x218(%rsp), %rdi
movq 0x296f4(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6d8c3
leaq 0x117ac(%rip), %rsi     # 0x7f076
leaq 0x6b0(%rsp), %rdi
callq 0x8360
movq %rax, 0x210(%rsp)
jmp 0x6d8e1
movq 0x1030(%rsp), %rsi
addq $0xc0, %rsi
leaq 0x678(%rsp), %rdi
callq 0x70d50
jmp 0x6d8ff
leaq 0x690(%rsp), %rdi
leaq 0x678(%rsp), %rsi
callq 0x70c20
jmp 0x6d916
movq 0x210(%rsp), %rdi
leaq 0x690(%rsp), %rsi
callq 0x8330
movq %rax, 0x208(%rsp)
jmp 0x6d935
movq 0x208(%rsp), %rdi
movq 0x2966c(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6d94b
leaq 0x690(%rsp), %rdi
callq 0x8858
leaq 0x678(%rsp), %rdi
callq 0xe770
leaq 0x115ae(%rip), %rsi     # 0x7ef1a
leaq 0x6b0(%rsp), %rdi
callq 0x8360
movq %rax, 0x200(%rsp)
jmp 0x6d983
movq 0x200(%rsp), %rdi
movq 0x2961e(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6d999
leaq 0x116fd(%rip), %rsi     # 0x7f09d
leaq 0x6b0(%rsp), %rdi
callq 0x8360
movq %rax, 0x1f8(%rsp)
jmp 0x6d9b7
movq 0x1030(%rsp), %rsi
addq $0xa8, %rsi
leaq 0x640(%rsp), %rdi
callq 0x70d50
jmp 0x6d9d5
leaq 0x658(%rsp), %rdi
leaq 0x640(%rsp), %rsi
callq 0x70c20
jmp 0x6d9ec
movq 0x1f8(%rsp), %rdi
leaq 0x658(%rsp), %rsi
callq 0x8330
movq %rax, 0x1f0(%rsp)
jmp 0x6da0b
movq 0x1f0(%rsp), %rdi
movq 0x29596(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6da21
leaq 0x658(%rsp), %rdi
callq 0x8858
leaq 0x640(%rsp), %rdi
callq 0xe770
leaq 0x114d8(%rip), %rsi     # 0x7ef1a
leaq 0x6b0(%rsp), %rdi
callq 0x8360
movq %rax, 0x1e8(%rsp)
jmp 0x6da59
movq 0x1e8(%rsp), %rdi
movq 0x29548(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6da6f
leaq 0x116c7(%rip), %rsi     # 0x7f13d
leaq 0x6b0(%rsp), %rdi
callq 0x8360
movq %rax, 0x1e0(%rsp)
jmp 0x6da8d
movq 0x1e0(%rsp), %rdi
movq 0x29514(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6daa3
leaq 0x11764(%rip), %rsi     # 0x7f20e
leaq 0x6b0(%rsp), %rdi
callq 0x8360
movq %rax, 0x1d8(%rsp)
jmp 0x6dac1
movq 0x1d8(%rsp), %rdi
movq 0x294e0(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6dad7
leaq 0x1143c(%rip), %rsi     # 0x7ef1a
leaq 0x6b0(%rsp), %rdi
callq 0x8360
movq %rax, 0x1d0(%rsp)
jmp 0x6daf5
movq 0x1d0(%rsp), %rdi
movq 0x294ac(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6db0b
leaq 0x11408(%rip), %rsi     # 0x7ef1a
leaq 0x6b0(%rsp), %rdi
callq 0x8360
movq %rax, 0x1c8(%rsp)
jmp 0x6db29
movq 0x1c8(%rsp), %rdi
movq 0x29478(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6db3f
leaq 0x11791(%rip), %rsi     # 0x7f2d7
leaq 0x6b0(%rsp), %rdi
callq 0x8360
movq %rax, 0x1c0(%rsp)
jmp 0x6db5d
movq 0x1c0(%rsp), %rdi
movq 0x29444(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6db73
leaq 0x113a0(%rip), %rsi     # 0x7ef1a
leaq 0x6b0(%rsp), %rdi
callq 0x8360
movq %rax, 0x1b8(%rsp)
jmp 0x6db91
movq 0x1b8(%rsp), %rdi
movq 0x29410(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6dba7
leaq 0x11733(%rip), %rsi     # 0x7f2e1
leaq 0x6b0(%rsp), %rdi
callq 0x8360
movq %rax, 0x1b0(%rsp)
jmp 0x6dbc5
movq 0x1b0(%rsp), %rdi
movq 0xd78(%rsp), %rsi
callq 0x8790
movq %rax, 0x1a8(%rsp)
jmp 0x6dbe4
movq 0x1a8(%rsp), %rdi
movq 0x293bd(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6dbfa
leaq 0x116f4(%rip), %rsi     # 0x7f2f5
leaq 0x6b0(%rsp), %rdi
callq 0x8360
movq %rax, 0x1a0(%rsp)
jmp 0x6dc18
movq 0x1a0(%rsp), %rdi
leaq 0x119e4(%rip), %rsi     # 0x7f60b
callq 0x8360
movq %rax, 0x198(%rsp)
jmp 0x6dc36
movq 0x198(%rsp), %rdi
movq 0x2936b(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6dc4c
leaq 0x112c7(%rip), %rsi     # 0x7ef1a
leaq 0x6b0(%rsp), %rdi
callq 0x8360
movq %rax, 0x190(%rsp)
jmp 0x6dc6a
movq 0x190(%rsp), %rdi
movq 0x29337(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6dc80
movq $0x0, 0x638(%rsp)
movq 0x638(%rsp), %rax
cmpq 0xd70(%rsp), %rax
jae 0x6e100
leaq 0x11662(%rip), %rsi     # 0x7f30b
leaq 0x6b0(%rsp), %rdi
callq 0x8360
movq %rax, 0x188(%rsp)
jmp 0x6dcc0
movq 0x1030(%rsp), %rdi
addq $0xc0, %rdi
movq 0x638(%rsp), %rsi
callq 0x1eb90
movq 0x188(%rsp), %rdi
movl (%rax), %esi
callq 0x8710
movq %rax, 0x180(%rsp)
jmp 0x6dcf5
movq 0x180(%rsp), %rdi
movq 0x292ac(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6dd0b
leaq 0x11619(%rip), %rsi     # 0x7f32b
leaq 0x6b0(%rsp), %rdi
callq 0x8360
movq %rax, 0x178(%rsp)
jmp 0x6dd29
movq 0x178(%rsp), %rdi
movq 0x29278(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6dd3f
leaq 0x11601(%rip), %rsi     # 0x7f347
leaq 0x6b0(%rsp), %rdi
callq 0x8360
movq %rax, 0x170(%rsp)
jmp 0x6dd5d
movq 0x170(%rsp), %rdi
movq 0x29244(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6dd73
leaq 0x11683(%rip), %rsi     # 0x7f3fd
leaq 0x6b0(%rsp), %rdi
callq 0x8360
movq %rax, 0x168(%rsp)
jmp 0x6dd91
movq 0xd60(%rsp), %rax
movq 0x638(%rsp), %rcx
movq (%rax,%rcx,8), %rsi
movq 0xd78(%rsp), %rdx
leaq 0x618(%rsp), %rdi
callq 0x63df0
jmp 0x6ddbc
movq 0x168(%rsp), %rdi
leaq 0x618(%rsp), %rsi
callq 0x8330
jmp 0x6ddd3
leaq 0x618(%rsp), %rdi
callq 0x8858
leaq 0x1161c(%rip), %rsi     # 0x7f403
leaq 0x6b0(%rsp), %rdi
callq 0x8360
movq %rax, 0x160(%rsp)
jmp 0x6ddfe
movq 0xd60(%rsp), %rax
movq 0x638(%rsp), %rcx
movq (%rax,%rcx,8), %rsi
addq $0x40, %rsi
movq 0xd78(%rsp), %rdx
leaq 0x5f8(%rsp), %rdi
callq 0x63df0
jmp 0x6de2d
movq 0x160(%rsp), %rdi
leaq 0x5f8(%rsp), %rsi
callq 0x8330
jmp 0x6de44
leaq 0x5f8(%rsp), %rdi
callq 0x8858
movq $0x0, 0x5f0(%rsp)
movq 0x5f0(%rsp), %rax
cmpq 0xd68(%rsp), %rax
jae 0x6e07d
leaq 0x1159a(%rip), %rsi     # 0x7f414
leaq 0x6b0(%rsp), %rdi
callq 0x8360
movq %rax, 0x158(%rsp)
jmp 0x6de91
movq 0x1030(%rsp), %rdi
addq $0xa8, %rdi
movq 0x5f0(%rsp), %rsi
callq 0x1eb90
movq 0x158(%rsp), %rdi
movl (%rax), %esi
callq 0x8710
movq %rax, 0x150(%rsp)
jmp 0x6dec6
movq 0x150(%rsp), %rdi
leaq 0x1153c(%rip), %rsi     # 0x7f411
callq 0x8360
movq %rax, 0x148(%rsp)
jmp 0x6dee4
movq 0xd60(%rsp), %rax
movq 0x638(%rsp), %rcx
movq (%rax,%rcx,8), %rcx
movq 0x5f0(%rsp), %rax
shlq $0x6, %rax
leaq 0x80(%rax,%rcx), %rsi
movq 0xd78(%rsp), %rdx
leaq 0x5d0(%rsp), %rdi
callq 0x63df0
jmp 0x6df23
movq 0x148(%rsp), %rdi
leaq 0x5d0(%rsp), %rsi
callq 0x8330
jmp 0x6df3a
leaq 0x5d0(%rsp), %rdi
callq 0x8858
movq 0x5f0(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x5f0(%rsp)
jmp 0x6de5d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xfb8(%rsp)
movl %eax, 0xfb4(%rsp)
jmp 0x6e121
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xfb8(%rsp)
movl %eax, 0xfb4(%rsp)
jmp 0x6dfb0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xfb8(%rsp)
movl %eax, 0xfb4(%rsp)
leaq 0x690(%rsp), %rdi
callq 0x8858
leaq 0x678(%rsp), %rdi
callq 0xe770
jmp 0x6e121
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xfb8(%rsp)
movl %eax, 0xfb4(%rsp)
jmp 0x6dff9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xfb8(%rsp)
movl %eax, 0xfb4(%rsp)
leaq 0x658(%rsp), %rdi
callq 0x8858
leaq 0x640(%rsp), %rdi
callq 0xe770
jmp 0x6e121
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xfb8(%rsp)
movl %eax, 0xfb4(%rsp)
leaq 0x618(%rsp), %rdi
callq 0x8858
jmp 0x6e121
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xfb8(%rsp)
movl %eax, 0xfb4(%rsp)
leaq 0x5f8(%rsp), %rdi
callq 0x8858
jmp 0x6e121
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xfb8(%rsp)
movl %eax, 0xfb4(%rsp)
leaq 0x5d0(%rsp), %rdi
callq 0x8858
jmp 0x6e121
leaq 0x10e96(%rip), %rsi     # 0x7ef1a
leaq 0x6b0(%rsp), %rdi
callq 0x8360
movq %rax, 0x140(%rsp)
jmp 0x6e09b
movq 0x140(%rsp), %rdi
movq 0x28f06(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6e0b1
leaq 0x10e62(%rip), %rsi     # 0x7ef1a
leaq 0x6b0(%rsp), %rdi
callq 0x8360
movq %rax, 0x138(%rsp)
jmp 0x6e0cf
movq 0x138(%rsp), %rdi
movq 0x28ed2(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6e0e5
jmp 0x6e0e7
movq 0x638(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x638(%rsp)
jmp 0x6dc8c
leaq 0x6b0(%rsp), %rdi
callq 0x85b0
jmp 0x6e10f
leaq 0x6b0(%rsp), %rdi
callq 0x8610
jmp 0x6ea7e
leaq 0x6b0(%rsp), %rdi
callq 0x8610
jmp 0x6eb5d
movq 0x28e8e(%rip), %rdi     # 0x96fc8
leaq 0x10d8d(%rip), %rsi     # 0x7eece
callq 0x8360
movq %rax, 0x130(%rsp)
jmp 0x6e150
movq 0x130(%rsp), %rdi
movq 0x28e51(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6e166
movq 0x28e5b(%rip), %rdi     # 0x96fc8
leaq 0x10da6(%rip), %rsi     # 0x7ef1a
callq 0x8360
movq %rax, 0x128(%rsp)
jmp 0x6e183
movq 0x128(%rsp), %rdi
movq 0x28e1e(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6e199
movq 0x28e28(%rip), %rdi     # 0x96fc8
leaq 0x113cd(%rip), %rsi     # 0x7f574
callq 0x8360
movq %rax, 0x120(%rsp)
jmp 0x6e1b6
movq 0x120(%rsp), %rdi
movq 0x28deb(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6e1cc
movq 0x28df5(%rip), %rdi     # 0x96fc8
leaq 0x10d40(%rip), %rsi     # 0x7ef1a
callq 0x8360
movq %rax, 0x118(%rsp)
jmp 0x6e1e9
movq 0x118(%rsp), %rdi
movq 0x28db8(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6e1ff
movq 0x28dc2(%rip), %rdi     # 0x96fc8
leaq 0x10dba(%rip), %rsi     # 0x7efc7
callq 0x8360
movq %rax, 0x110(%rsp)
jmp 0x6e21c
movq 0x110(%rsp), %rdi
movq 0x1030(%rsp), %rsi
addq $0x70, %rsi
callq 0x8330
movq %rax, 0x108(%rsp)
jmp 0x6e23f
movq 0x108(%rsp), %rdi
movq 0x28d62(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6e255
movq 0x28d6c(%rip), %rdi     # 0x96fc8
leaq 0x10cb7(%rip), %rsi     # 0x7ef1a
callq 0x8360
movq %rax, 0x100(%rsp)
jmp 0x6e272
movq 0x100(%rsp), %rdi
movq 0x28d2f(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6e288
movq 0x28d39(%rip), %rdi     # 0x96fc8
leaq 0x10d7e(%rip), %rsi     # 0x7f014
callq 0x8360
movq %rax, 0xf8(%rsp)
jmp 0x6e2a5
movq 0xf8(%rsp), %rdi
movq 0x28cfc(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6e2bb
movq 0x28d06(%rip), %rdi     # 0x96fc8
leaq 0x10dad(%rip), %rsi     # 0x7f076
callq 0x8360
movq %rax, 0xf0(%rsp)
jmp 0x6e2d8
movq 0x1030(%rsp), %rsi
addq $0xc0, %rsi
leaq 0x598(%rsp), %rdi
callq 0x70d50
jmp 0x6e2f6
leaq 0x5b0(%rsp), %rdi
leaq 0x598(%rsp), %rsi
callq 0x70c20
jmp 0x6e30d
movq 0xf0(%rsp), %rdi
leaq 0x5b0(%rsp), %rsi
callq 0x8330
movq %rax, 0xe8(%rsp)
jmp 0x6e32c
movq 0xe8(%rsp), %rdi
movq 0x28c75(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6e342
leaq 0x5b0(%rsp), %rdi
callq 0x8858
leaq 0x598(%rsp), %rdi
callq 0xe770
movq 0x28c65(%rip), %rdi     # 0x96fc8
leaq 0x10bb0(%rip), %rsi     # 0x7ef1a
callq 0x8360
movq %rax, 0xe0(%rsp)
jmp 0x6e379
movq 0xe0(%rsp), %rdi
movq 0x28c28(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6e38f
movq 0x28c32(%rip), %rdi     # 0x96fc8
leaq 0x10d00(%rip), %rsi     # 0x7f09d
callq 0x8360
movq %rax, 0xd8(%rsp)
jmp 0x6e3ac
movq 0x1030(%rsp), %rsi
addq $0xa8, %rsi
leaq 0x560(%rsp), %rdi
callq 0x70d50
jmp 0x6e3ca
leaq 0x578(%rsp), %rdi
leaq 0x560(%rsp), %rsi
callq 0x70c20
jmp 0x6e3e1
movq 0xd8(%rsp), %rdi
leaq 0x578(%rsp), %rsi
callq 0x8330
movq %rax, 0xd0(%rsp)
jmp 0x6e400
movq 0xd0(%rsp), %rdi
movq 0x28ba1(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6e416
leaq 0x578(%rsp), %rdi
callq 0x8858
leaq 0x560(%rsp), %rdi
callq 0xe770
movq 0x28b91(%rip), %rdi     # 0x96fc8
leaq 0x10adc(%rip), %rsi     # 0x7ef1a
callq 0x8360
movq %rax, 0xc8(%rsp)
jmp 0x6e44d
movq 0xc8(%rsp), %rdi
movq 0x28b54(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6e463
movq 0x28b5e(%rip), %rdi     # 0x96fc8
leaq 0x10ccc(%rip), %rsi     # 0x7f13d
callq 0x8360
movq %rax, 0xc0(%rsp)
jmp 0x6e480
movq 0xc0(%rsp), %rdi
movq 0x28b21(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6e496
movq 0x28b2b(%rip), %rdi     # 0x96fc8
leaq 0x10d6a(%rip), %rsi     # 0x7f20e
callq 0x8360
movq %rax, 0xb8(%rsp)
jmp 0x6e4b3
movq 0xb8(%rsp), %rdi
movq 0x28aee(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6e4c9
movq 0x28af8(%rip), %rdi     # 0x96fc8
leaq 0x10a43(%rip), %rsi     # 0x7ef1a
callq 0x8360
movq %rax, 0xb0(%rsp)
jmp 0x6e4e6
movq 0xb0(%rsp), %rdi
movq 0x28abb(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6e4fc
movq 0x28ac5(%rip), %rdi     # 0x96fc8
leaq 0x10a10(%rip), %rsi     # 0x7ef1a
callq 0x8360
movq %rax, 0xa8(%rsp)
jmp 0x6e519
movq 0xa8(%rsp), %rdi
movq 0x28a88(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6e52f
movq 0x28a92(%rip), %rdi     # 0x96fc8
leaq 0x10d9a(%rip), %rsi     # 0x7f2d7
callq 0x8360
movq %rax, 0xa0(%rsp)
jmp 0x6e54c
movq 0xa0(%rsp), %rdi
movq 0x28a55(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6e562
movq 0x28a5f(%rip), %rdi     # 0x96fc8
leaq 0x109aa(%rip), %rsi     # 0x7ef1a
callq 0x8360
movq %rax, 0x98(%rsp)
jmp 0x6e57f
movq 0x98(%rsp), %rdi
movq 0x28a22(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6e595
movq 0x28a2c(%rip), %rdi     # 0x96fc8
leaq 0x10d3e(%rip), %rsi     # 0x7f2e1
callq 0x8360
movq %rax, 0x90(%rsp)
jmp 0x6e5b2
movq 0x90(%rsp), %rdi
movq 0xd78(%rsp), %rsi
callq 0x8790
movq %rax, 0x88(%rsp)
jmp 0x6e5d1
movq 0x88(%rsp), %rdi
movq 0x289d0(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6e5e7
movq 0x289da(%rip), %rdi     # 0x96fc8
leaq 0x10d00(%rip), %rsi     # 0x7f2f5
callq 0x8360
movq %rax, 0x80(%rsp)
jmp 0x6e604
movq 0x80(%rsp), %rdi
leaq 0x10ff8(%rip), %rsi     # 0x7f60b
callq 0x8360
movq %rax, 0x78(%rsp)
jmp 0x6e61f
movq 0x78(%rsp), %rdi
movq 0x28985(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6e632
movq 0x2898f(%rip), %rdi     # 0x96fc8
leaq 0x108da(%rip), %rsi     # 0x7ef1a
callq 0x8360
movq %rax, 0x70(%rsp)
jmp 0x6e64c
movq 0x70(%rsp), %rdi
movq 0x28958(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6e65f
movq $0x0, 0x558(%rsp)
movq 0x558(%rsp), %rax
cmpq 0xd70(%rsp), %rax
jae 0x6ea7c
movq 0x28940(%rip), %rdi     # 0x96fc8
leaq 0x10c7c(%rip), %rsi     # 0x7f30b
callq 0x8360
movq %rax, 0x68(%rsp)
jmp 0x6e69b
movq 0x1030(%rsp), %rdi
addq $0xc0, %rdi
movq 0x558(%rsp), %rsi
callq 0x1eb90
movq 0x68(%rsp), %rdi
movl (%rax), %esi
callq 0x8710
movq %rax, 0x60(%rsp)
jmp 0x6e6ca
movq 0x60(%rsp), %rdi
movq 0x288da(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6e6dd
movq 0x288e4(%rip), %rdi     # 0x96fc8
leaq 0x10c40(%rip), %rsi     # 0x7f32b
callq 0x8360
movq %rax, 0x58(%rsp)
jmp 0x6e6f7
movq 0x58(%rsp), %rdi
movq 0x288ad(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6e70a
movq 0x288b7(%rip), %rdi     # 0x96fc8
leaq 0x10c2f(%rip), %rsi     # 0x7f347
callq 0x8360
movq %rax, 0x50(%rsp)
jmp 0x6e724
movq 0x50(%rsp), %rdi
movq 0x28880(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6e737
movq 0x2888a(%rip), %rdi     # 0x96fc8
leaq 0x10cb8(%rip), %rsi     # 0x7f3fd
callq 0x8360
movq %rax, 0x48(%rsp)
jmp 0x6e751
movq 0xd60(%rsp), %rax
movq 0x558(%rsp), %rcx
movq (%rax,%rcx,8), %rsi
movq 0xd78(%rsp), %rdx
leaq 0x538(%rsp), %rdi
callq 0x63df0
jmp 0x6e77c
movq 0x48(%rsp), %rdi
leaq 0x538(%rsp), %rsi
callq 0x8330
jmp 0x6e790
leaq 0x538(%rsp), %rdi
callq 0x8858
movq 0x28824(%rip), %rdi     # 0x96fc8
leaq 0x10c58(%rip), %rsi     # 0x7f403
callq 0x8360
movq %rax, 0x40(%rsp)
jmp 0x6e7b7
movq 0xd60(%rsp), %rax
movq 0x558(%rsp), %rcx
movq (%rax,%rcx,8), %rsi
addq $0x40, %rsi
movq 0xd78(%rsp), %rdx
leaq 0x518(%rsp), %rdi
callq 0x63df0
jmp 0x6e7e6
movq 0x40(%rsp), %rdi
leaq 0x518(%rsp), %rsi
callq 0x8330
jmp 0x6e7fa
leaq 0x518(%rsp), %rdi
callq 0x8858
movq $0x0, 0x510(%rsp)
movq 0x510(%rsp), %rax
cmpq 0xd68(%rsp), %rax
jae 0x6ea07
movq 0x28798(%rip), %rdi     # 0x96fc8
leaq 0x10bdd(%rip), %rsi     # 0x7f414
callq 0x8360
movq %rax, 0x38(%rsp)
jmp 0x6e843
movq 0x1030(%rsp), %rdi
addq $0xa8, %rdi
movq 0x510(%rsp), %rsi
callq 0x1eb90
movq 0x38(%rsp), %rdi
movl (%rax), %esi
callq 0x8710
movq %rax, 0x30(%rsp)
jmp 0x6e872
movq 0x30(%rsp), %rdi
leaq 0x10b93(%rip), %rsi     # 0x7f411
callq 0x8360
movq %rax, 0x28(%rsp)
jmp 0x6e88a
movq 0xd60(%rsp), %rax
movq 0x558(%rsp), %rcx
movq (%rax,%rcx,8), %rcx
movq 0x510(%rsp), %rax
shlq $0x6, %rax
leaq 0x80(%rax,%rcx), %rsi
movq 0xd78(%rsp), %rdx
leaq 0x4f0(%rsp), %rdi
callq 0x63df0
jmp 0x6e8c9
movq 0x28(%rsp), %rdi
leaq 0x4f0(%rsp), %rsi
callq 0x8330
jmp 0x6e8dd
leaq 0x4f0(%rsp), %rdi
callq 0x8858
movq 0x510(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x510(%rsp)
jmp 0x6e813
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xfb8(%rsp)
movl %eax, 0xfb4(%rsp)
jmp 0x6e93a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xfb8(%rsp)
movl %eax, 0xfb4(%rsp)
leaq 0x5b0(%rsp), %rdi
callq 0x8858
leaq 0x598(%rsp), %rdi
callq 0xe770
jmp 0x6eb5d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xfb8(%rsp)
movl %eax, 0xfb4(%rsp)
jmp 0x6e983
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xfb8(%rsp)
movl %eax, 0xfb4(%rsp)
leaq 0x578(%rsp), %rdi
callq 0x8858
leaq 0x560(%rsp), %rdi
callq 0xe770
jmp 0x6eb5d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xfb8(%rsp)
movl %eax, 0xfb4(%rsp)
leaq 0x538(%rsp), %rdi
callq 0x8858
jmp 0x6eb5d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xfb8(%rsp)
movl %eax, 0xfb4(%rsp)
leaq 0x518(%rsp), %rdi
callq 0x8858
jmp 0x6eb5d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xfb8(%rsp)
movl %eax, 0xfb4(%rsp)
leaq 0x4f0(%rsp), %rdi
callq 0x8858
jmp 0x6eb5d
movq 0x285ba(%rip), %rdi     # 0x96fc8
leaq 0x10505(%rip), %rsi     # 0x7ef1a
callq 0x8360
movq %rax, 0x20(%rsp)
jmp 0x6ea21
movq 0x20(%rsp), %rdi
movq 0x28583(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6ea34
movq 0x2858d(%rip), %rdi     # 0x96fc8
leaq 0x104d8(%rip), %rsi     # 0x7ef1a
callq 0x8360
movq %rax, 0x18(%rsp)
jmp 0x6ea4e
movq 0x18(%rsp), %rdi
movq 0x28556(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6ea61
jmp 0x6ea63
movq 0x558(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x558(%rsp)
jmp 0x6e66b
jmp 0x6ea7e
movq $0x0, 0x4e8(%rsp)
movq 0x4e8(%rsp), %rax
cmpq 0xd70(%rsp), %rax
jae 0x6eadd
movq 0xd60(%rsp), %rax
movq 0x4e8(%rsp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, 0x10(%rsp)
cmpq $0x0, %rax
je 0x6eac5
movq 0x10(%rsp), %rdi
callq 0x8520
jmp 0x6eac7
movq 0x4e8(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x4e8(%rsp)
jmp 0x6ea8a
movq 0xd60(%rsp), %rax
movq %rax, 0x8(%rsp)
cmpq $0x0, %rax
je 0x6eafa
movq 0x8(%rsp), %rdi
callq 0x8520
leaq 0xc90(%rsp), %rdi
callq 0x8858
leaq 0xcb8(%rsp), %rdi
callq 0x8858
leaq 0xd88(%rsp), %rdi
callq 0x8858
leaq 0xda8(%rsp), %rdi
callq 0x8110
leaq 0xfe0(%rsp), %rdi
callq 0xf0f0
leaq 0xff8(%rsp), %rdi
callq 0xe7d0
leaq 0x1010(%rsp), %rdi
callq 0x8858
addq $0x1038, %rsp           # imm = 0x1038
retq
leaq 0xc90(%rsp), %rdi
callq 0x8858
leaq 0xcb8(%rsp), %rdi
callq 0x8858
leaq 0xd88(%rsp), %rdi
callq 0x8858
leaq 0xda8(%rsp), %rdi
callq 0x8110
leaq 0xfe0(%rsp), %rdi
callq 0xf0f0
leaq 0xff8(%rsp), %rdi
callq 0xe7d0
leaq 0x1010(%rsp), %rdi
callq 0x8858
movq 0xfb8(%rsp), %rdi
callq 0x8730
nopw %cs:(%rax,%rax)