// File: readmapping[P]alfalfa/src/performanceUtils.cpp
// Function: checkSummary(samCheckOptions_t&)
void checkSummary(samCheckOptions_t & opt){
    //fields: input
    ifstream queryFile(opt.querySam.c_str());
    string queryLine = "";
    streampos queryPos = queryFile.tellg();
    long readCount = 0;
    if(queryFile.good())
        getlijn2(queryFile,queryLine);//first line
    //fields: output
    int qualValCount = opt.qualityValues.size();
    summaryLine_t * results = new summaryLine_t[qualValCount+2];
    cerr << "summary: summary of alignments found (including pairing info and mapped/mapping quality" << endl;
    //print header of both files
    cerr << "header of SAM file: " << endl;
    while(queryFile.good() && !queryLine.empty() && queryLine[0]=='@'){
        cerr << queryLine << endl;
        queryPos = queryFile.tellg();
        getlijn2(queryFile,queryLine);
    }
    cerr << endl;
    cerr << "extra lines containing only alignments with minimal quality values of: " << printVector(opt.qualityValues) << endl;    
    cerr << "compiling summary: ..." << endl;
    if(!queryLine.empty() && queryLine[0]!='@'){
        string qnamePrev = "";
        int flagPrev = 0;
        string rnextPrev = "";
        string qname = "";
        int flag = 0;
        int mapq = 0;
        string rnext = "";
        int tabPos = 0;
        char delimeter = '\t';
        do{
            //set prev to current
            qnamePrev = qname;
            flagPrev = flag;
            rnextPrev = rnext;
            //translate current line to information
            tabPos = 0;
            //qname
            qname = nextField(queryLine, delimeter, tabPos);
            if(qname.length() > 2 && qname[qname.length()-2]=='/')
              qname.erase(qname.length()-2);
            //flag
            flag = atoi(nextField(queryLine, delimeter, tabPos).c_str());
            //skip fields rname, pos
            tabPos = queryLine.find(delimeter,tabPos)+1;//behind rname
            tabPos = queryLine.find(delimeter,tabPos)+1;//behind pos
            //mapq
            mapq = atoi(nextField(queryLine, delimeter, tabPos).c_str());
            //skip CIGAR
            tabPos = queryLine.find(delimeter,tabPos)+1;//behind cigar
            rnext = nextField(queryLine, delimeter, tabPos);
            //fill in the fields
            if(qname.compare(qnamePrev)!=0 && !qnamePrev.empty()){
                readCount++;
                if(results[0].tempAlnCount==1 || (opt.paired && results[0].tempAlnCount==2))
                    results[1].addAlignment(flagPrev, rnextPrev.compare("*")!=0);
                results[0].finishRead();
                results[1].finishRead();
                for(int i=0; i < qualValCount; i++)
                    results[2+i].finishRead();
            }
            if(flag!=4){
                results[0].addAlignment(flag, rnext.compare("*")!=0);
                for(int i=0; i < qualValCount; i++)
                    if(mapq >= opt.qualityValues[i])
                        results[2+i].addAlignment(flag, rnext.compare("*")!=0);
            }
            getlijn2(queryFile,queryLine);//next line
        }while(queryFile.good());
        if(!qnamePrev.empty()){
            readCount++;
            if(results[0].tempAlnCount==1 || (opt.paired && results[0].tempAlnCount==2))
                results[1].addAlignment(flagPrev, rnextPrev.compare("*")!=0);
            results[0].finishRead();
            results[1].finishRead();
            for(int i=0; i < qualValCount; i++)
                results[2+i].finishRead();
        }
    }
    cerr << "compiling summary: done" << endl;
    queryFile.close();
    cerr << endl;
    cerr << "printing results" << endl;
    cerr << "Warning, these results only make sense if the query file is sorted according to query name." << endl;
    long maxReads = opt.numReads;
    if(maxReads==0){
        maxReads = readCount;
        cerr << "Warning, these number of reads is taken from the result and might differ from the number of reads that were given to the aligner." << endl;
    }
    if(!opt.outputFile.empty()){
        ofstream outfile ( opt.outputFile.c_str() );
        outfile << "##ALFALFA summary of alignment accuracy" << endl;
        outfile << "##" << endl;
        outfile << "##Warning: these results only make sense if the query file is sorted according to query name." << endl;
        outfile << "##" << endl;
        outfile << "##SAM file containing alignments: " << opt.querySam << 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 << "##For every category, the fraction of alignments/reads mapped (and paired correctly) will be shown." << endl;
        outfile << "##Furthermore, a list is given of number of alignments per read." << endl;
        outfile << "##" << endl;
        outfile << "##" << endl;
        outfile << "##Results" << endl;
        outfile << "##" << endl;
        outfile << "##Number of reads: " << maxReads << endl;
        outfile << "##Reads are paired?: " << opt.paired << endl;
        outfile << "##" << endl;
        outfile << "##All alignments:" << endl;
        outfile << results[0].printLine(maxReads, opt.paired);
        outfile << "##" << endl;
        outfile << "##Unique alignments:" << endl;
        outfile << results[1].printLine(maxReads, opt.paired);
        for(int j=0; j< qualValCount; j++){
            outfile << "##Alignments with min Q-value " << opt.qualityValues[j] << endl;
            outfile << results[2+j].printLine(maxReads, opt.paired);
        }
        outfile.close();
    }
    else{
        cout << "##ALFALFA summary of alignment accuracy" << endl;
        cout << "##" << endl;
        cout << "##Warning: these results only make sense if the query file is sorted according to query name." << endl;
        cout << "##" << endl;
        cout << "##SAM file containing alignments: " << opt.querySam << 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 << "##For every category, the fraction of alignments/reads mapped (and paired correctly) will be shown." << endl;
        cout << "##Furthermore, a list is given of number of alignments per read." << endl;
        cout << "##" << endl;
        cout << "##" << endl;
        cout << "##Results" << endl;
        cout << "##" << endl;
        cout << "##Number of reads: " << maxReads << endl;
        cout << "##Reads are paired?: " << opt.paired << endl;
        cout << "##" << endl;
        cout << "##All alignments:" << endl;
        cout << results[0].printLine(maxReads, opt.paired);
        cout << "##" << endl;
        cout << "##Unique alignments:" << endl;
        cout << results[1].printLine(maxReads, opt.paired);
        for(int j=0; j< qualValCount; j++){
            cout << "##Alignments with min Q-value " << opt.qualityValues[j] << endl;
            cout << results[2+j].printLine(maxReads, opt.paired);
        }
    }
    delete [] results;
}

// Assembly:
subq $0xa38, %rsp            # imm = 0xA38
movq %rdi, 0xa30(%rsp)
movq 0xa30(%rsp), %rdi
addq $0x70, %rdi
callq 0x8170
movq %rax, %rsi
leaq 0x828(%rsp), %rdi
movl $0x8, %edx
callq 0x87a0
leaq 0x807(%rsp), %rdi
movq %rdi, 0x2f0(%rsp)
callq 0x8750
movq 0x2f0(%rsp), %rdx
leaq 0xae35(%rip), %rsi      # 0x79a5e
leaq 0x808(%rsp), %rdi
callq 0xb8b0
jmp 0x6ec38
leaq 0x807(%rsp), %rdi
callq 0x83e0
leaq 0x828(%rsp), %rdi
callq 0x8720
movq %rdx, 0x2e0(%rsp)
movq %rax, 0x2e8(%rsp)
jmp 0x6ec64
movq 0x2e0(%rsp), %rax
movq 0x2e8(%rsp), %rcx
movq %rcx, 0x7e0(%rsp)
movq %rax, 0x7e8(%rsp)
movq $0x0, 0x7d8(%rsp)
movq 0x828(%rsp), %rax
movq -0x18(%rax), %rax
leaq 0x828(%rsp,%rax), %rdi
callq 0x8700
movb %al, 0x2df(%rsp)
jmp 0x6ecb2
movb 0x2df(%rsp), %al
testb $0x1, %al
jne 0x6ecbf
jmp 0x6ed17
leaq 0x828(%rsp), %rdi
leaq 0x808(%rsp), %rsi
callq 0x66fa0
jmp 0x6ecd6
jmp 0x6ed17
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x7f8(%rsp)
movl %eax, 0x7f4(%rsp)
leaq 0x807(%rsp), %rdi
callq 0x83e0
jmp 0x70996
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x7f8(%rsp)
movl %eax, 0x7f4(%rsp)
jmp 0x70989
movq 0xa30(%rsp), %rdi
addq $0xa8, %rdi
callq 0x1f530
movl %eax, 0x7d4(%rsp)
movl 0x7d4(%rsp), %eax
addl $0x2, %eax
cltq
movq %rax, 0x2c0(%rsp)
movl $0x1e0, %ecx            # imm = 0x1E0
mulq %rcx
movq %rax, %rdi
movq $-0x1, %rax
cmovoq %rax, %rdi
movq %rdi, 0x2c8(%rsp)
callq 0x8030
movq %rax, 0x2d0(%rsp)
jmp 0x6ed73
movq 0x2c0(%rsp), %rax
cmpq $0x0, %rax
je 0x6ede8
movq 0x2d0(%rsp), %rax
movq 0x2c0(%rsp), %rcx
imulq $0x1e0, %rcx, %rdx      # imm = 0x1E0
movq %rax, %rcx
addq %rdx, %rcx
movq %rcx, 0x2b0(%rsp)
movq %rax, 0x2b8(%rsp)
movq 0x2b8(%rsp), %rdi
movq %rdi, 0x2a8(%rsp)
callq 0x71090
jmp 0x6edc5
movq 0x2b0(%rsp), %rcx
movq 0x2a8(%rsp), %rax
addq $0x1e0, %rax            # imm = 0x1E0
cmpq %rcx, %rax
movq %rax, 0x2b8(%rsp)
jne 0x6edae
movq 0x2d0(%rsp), %rax
movq %rax, 0x7c8(%rsp)
movq 0x281f1(%rip), %rdi     # 0x96ff0
leaq 0x1080a(%rip), %rsi     # 0x7f610
callq 0x8360
movq %rax, 0x2a0(%rsp)
jmp 0x6ee15
movq 0x2a0(%rsp), %rdi
movq 0x2818c(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6ee2b
movq 0x281be(%rip), %rdi     # 0x96ff0
leaq 0x1066e(%rip), %rsi     # 0x7f4a7
callq 0x8360
movq %rax, 0x298(%rsp)
jmp 0x6ee48
movq 0x298(%rsp), %rdi
movq 0x28159(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6ee5e
jmp 0x6ee60
movq 0x828(%rsp), %rax
movq -0x18(%rax), %rax
leaq 0x828(%rsp,%rax), %rdi
callq 0x8700
movb %al, 0x297(%rsp)
jmp 0x6ee82
movb 0x297(%rsp), %cl
xorl %eax, %eax
testb $0x1, %cl
movb %al, 0x296(%rsp)
jne 0x6ee99
jmp 0x6eee9
leaq 0x808(%rsp), %rdi
callq 0x86e0
movb %al, %cl
xorl %eax, %eax
testb $0x1, %cl
movb %al, 0x296(%rsp)
jne 0x6eee9
xorl %eax, %eax
movl %eax, %esi
leaq 0x808(%rsp), %rdi
callq 0x8830
movq %rax, 0x288(%rsp)
jmp 0x6eed1
movq 0x288(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x40, %eax
sete %al
movb %al, 0x296(%rsp)
movb 0x296(%rsp), %al
testb $0x1, %al
jne 0x6eef9
jmp 0x6efc6
movq 0x280f0(%rip), %rdi     # 0x96ff0
leaq 0x808(%rsp), %rsi
callq 0x8330
movq %rax, 0x280(%rsp)
jmp 0x6ef17
movq 0x280(%rsp), %rdi
movq 0x2808a(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6ef2d
leaq 0x828(%rsp), %rdi
callq 0x8720
movq %rdx, 0x270(%rsp)
movq %rax, 0x278(%rsp)
jmp 0x6ef4c
movq 0x270(%rsp), %rax
movq 0x278(%rsp), %rcx
movq %rcx, 0x7b8(%rsp)
movq %rax, 0x7c0(%rsp)
movups 0x7b8(%rsp), %xmm0
movaps %xmm0, 0x7e0(%rsp)
leaq 0x828(%rsp), %rdi
leaq 0x808(%rsp), %rsi
callq 0x66fa0
jmp 0x6ef93
jmp 0x6ee60
movq 0x2c8(%rsp), %rsi
movq 0x2d0(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x7f8(%rsp)
movl %eax, 0x7f4(%rsp)
callq 0x8800
jmp 0x70989
movq 0x28023(%rip), %rdi     # 0x96ff0
movq 0x27fdc(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6efdb
movq 0x2800e(%rip), %rdi     # 0x96ff0
leaq 0xfd8a(%rip), %rsi      # 0x7ed73
callq 0x8360
movq %rax, 0x268(%rsp)
jmp 0x6eff8
movq 0xa30(%rsp), %rsi
addq $0xa8, %rsi
leaq 0x780(%rsp), %rdi
callq 0x70d50
jmp 0x6f016
leaq 0x798(%rsp), %rdi
leaq 0x780(%rsp), %rsi
callq 0x70c20
jmp 0x6f02d
movq 0x268(%rsp), %rdi
leaq 0x798(%rsp), %rsi
callq 0x8330
movq %rax, 0x260(%rsp)
jmp 0x6f04c
movq 0x260(%rsp), %rdi
movq 0x27f55(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6f062
leaq 0x798(%rsp), %rdi
callq 0x8858
leaq 0x780(%rsp), %rdi
callq 0xe770
movq 0x27f6d(%rip), %rdi     # 0x96ff0
leaq 0x105de(%rip), %rsi     # 0x7f668
callq 0x8360
movq %rax, 0x258(%rsp)
jmp 0x6f099
movq 0x258(%rsp), %rdi
movq 0x27f08(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6f0af
leaq 0x808(%rsp), %rdi
callq 0x86e0
testb $0x1, %al
jne 0x6fa44
xorl %eax, %eax
movl %eax, %esi
leaq 0x808(%rsp), %rdi
callq 0x8830
movq %rax, 0x250(%rsp)
jmp 0x6f0df
movq 0x250(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x40, %eax
je 0x6fa44
leaq 0x75f(%rsp), %rdi
movq %rdi, 0x248(%rsp)
callq 0x8750
movq 0x248(%rsp), %rdx
leaq 0xa947(%rip), %rsi      # 0x79a5e
leaq 0x760(%rsp), %rdi
callq 0xb8b0
jmp 0x6f126
leaq 0x75f(%rsp), %rdi
callq 0x83e0
movl $0x0, 0x758(%rsp)
leaq 0x737(%rsp), %rdi
movq %rdi, 0x240(%rsp)
callq 0x8750
movq 0x240(%rsp), %rdx
leaq 0xa8fc(%rip), %rsi      # 0x79a5e
leaq 0x738(%rsp), %rdi
callq 0xb8b0
jmp 0x6f171
leaq 0x737(%rsp), %rdi
callq 0x83e0
leaq 0x70f(%rsp), %rdi
movq %rdi, 0x238(%rsp)
callq 0x8750
movq 0x238(%rsp), %rdx
leaq 0xa8bc(%rip), %rsi      # 0x79a5e
leaq 0x710(%rsp), %rdi
callq 0xb8b0
jmp 0x6f1b1
leaq 0x70f(%rsp), %rdi
callq 0x83e0
movl $0x0, 0x708(%rsp)
movl $0x0, 0x704(%rsp)
leaq 0x6df(%rsp), %rdi
movq %rdi, 0x230(%rsp)
callq 0x8750
movq 0x230(%rsp), %rdx
leaq 0xa866(%rip), %rsi      # 0x79a5e
leaq 0x6e0(%rsp), %rdi
callq 0xb8b0
jmp 0x6f207
leaq 0x6df(%rsp), %rdi
callq 0x83e0
movl $0x0, 0x6d8(%rsp)
movb $0x9, 0x6d7(%rsp)
leaq 0x760(%rsp), %rdi
leaq 0x710(%rsp), %rsi
callq 0x8060
jmp 0x6f23e
movl 0x708(%rsp), %eax
movl %eax, 0x758(%rsp)
leaq 0x738(%rsp), %rdi
leaq 0x6e0(%rsp), %rsi
callq 0x8060
jmp 0x6f263
movl $0x0, 0x6d8(%rsp)
movsbl 0x6d7(%rsp), %edx
leaq 0x6b0(%rsp), %rdi
leaq 0x808(%rsp), %rsi
leaq 0x6d8(%rsp), %rcx
callq 0x66e60
jmp 0x6f295
leaq 0x710(%rsp), %rdi
leaq 0x6b0(%rsp), %rsi
callq 0x84b0
leaq 0x6b0(%rsp), %rdi
callq 0x8858
leaq 0x710(%rsp), %rdi
callq 0x8630
cmpq $0x2, %rax
jbe 0x6f453
leaq 0x710(%rsp), %rdi
movq %rdi, 0x220(%rsp)
callq 0x8630
movq 0x220(%rsp), %rdi
movq %rax, %rsi
addq $-0x2, %rsi
callq 0x8830
movq %rax, 0x228(%rsp)
jmp 0x6f301
movq 0x228(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x2f, %eax
jne 0x6f453
leaq 0x710(%rsp), %rdi
movq %rdi, 0x218(%rsp)
callq 0x8630
movq 0x218(%rsp), %rdi
movq %rax, %rsi
addq $-0x2, %rsi
movq $-0x1, %rdx
callq 0x80f0
jmp 0x6f347
jmp 0x6f453
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x7f8(%rsp)
movl %eax, 0x7f4(%rsp)
jmp 0x6f383
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x7f8(%rsp)
movl %eax, 0x7f4(%rsp)
leaq 0x798(%rsp), %rdi
callq 0x8858
leaq 0x780(%rsp), %rdi
callq 0xe770
jmp 0x70989
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x7f8(%rsp)
movl %eax, 0x7f4(%rsp)
leaq 0x75f(%rsp), %rdi
callq 0x83e0
jmp 0x70989
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x7f8(%rsp)
movl %eax, 0x7f4(%rsp)
leaq 0x737(%rsp), %rdi
callq 0x83e0
jmp 0x6fa32
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x7f8(%rsp)
movl %eax, 0x7f4(%rsp)
leaq 0x70f(%rsp), %rdi
callq 0x83e0
jmp 0x6fa25
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x7f8(%rsp)
movl %eax, 0x7f4(%rsp)
leaq 0x6df(%rsp), %rdi
callq 0x83e0
jmp 0x6fa18
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x7f8(%rsp)
movl %eax, 0x7f4(%rsp)
leaq 0x6e0(%rsp), %rdi
callq 0x8858
jmp 0x6fa18
movsbl 0x6d7(%rsp), %edx
leaq 0x690(%rsp), %rdi
leaq 0x808(%rsp), %rsi
leaq 0x6d8(%rsp), %rcx
callq 0x66e60
jmp 0x6f47a
leaq 0x690(%rsp), %rdi
movq %rdi, 0x208(%rsp)
callq 0x8170
movq %rax, %rdi
callq 0x8670
movq 0x208(%rsp), %rdi
movl %eax, 0x708(%rsp)
callq 0x8858
movsbl 0x6d7(%rsp), %esi
movslq 0x6d8(%rsp), %rdx
leaq 0x808(%rsp), %rdi
movq %rdi, 0x210(%rsp)
callq 0x8540
movq 0x210(%rsp), %rdi
incl %eax
movl %eax, 0x6d8(%rsp)
movsbl 0x6d7(%rsp), %esi
movslq 0x6d8(%rsp), %rdx
callq 0x8540
movq 0x210(%rsp), %rsi
incl %eax
movl %eax, 0x6d8(%rsp)
movsbl 0x6d7(%rsp), %edx
leaq 0x670(%rsp), %rdi
leaq 0x6d8(%rsp), %rcx
callq 0x66e60
jmp 0x6f526
leaq 0x670(%rsp), %rdi
movq %rdi, 0x1f8(%rsp)
callq 0x8170
movq %rax, %rdi
callq 0x8670
movq 0x1f8(%rsp), %rdi
movl %eax, 0x704(%rsp)
callq 0x8858
movsbl 0x6d7(%rsp), %esi
movslq 0x6d8(%rsp), %rdx
leaq 0x808(%rsp), %rdi
movq %rdi, 0x200(%rsp)
callq 0x8540
movq 0x200(%rsp), %rsi
incl %eax
movl %eax, 0x6d8(%rsp)
movsbl 0x6d7(%rsp), %edx
leaq 0x650(%rsp), %rdi
leaq 0x6d8(%rsp), %rcx
callq 0x66e60
jmp 0x6f5ac
leaq 0x6e0(%rsp), %rdi
leaq 0x650(%rsp), %rsi
movq %rsi, 0x1e8(%rsp)
callq 0x84b0
movq 0x1e8(%rsp), %rdi
callq 0x8858
leaq 0x710(%rsp), %rdi
leaq 0x760(%rsp), %rsi
callq 0x8050
movl %eax, 0x1f4(%rsp)
jmp 0x6f5f4
movl 0x1f4(%rsp), %eax
cmpl $0x0, %eax
je 0x6f731
leaq 0x760(%rsp), %rdi
callq 0x86e0
testb $0x1, %al
jne 0x6f731
movq 0x7d8(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x7d8(%rsp)
movq 0x7c8(%rsp), %rax
cmpl $0x1, 0x1dc(%rax)
je 0x6f65d
movq 0xa30(%rsp), %rax
testb $0x1, 0x68(%rax)
je 0x6f6b5
movq 0x7c8(%rsp), %rax
cmpl $0x2, 0x1dc(%rax)
jne 0x6f6b5
movq 0x7c8(%rsp), %rax
addq $0x1e0, %rax            # imm = 0x1E0
movq %rax, 0x1d8(%rsp)
movl 0x758(%rsp), %eax
movl %eax, 0x1e4(%rsp)
leaq 0x99ca(%rip), %rsi      # 0x79052
leaq 0x738(%rsp), %rdi
callq 0x8130
movq 0x1d8(%rsp), %rdi
movl 0x1e4(%rsp), %esi
testl %eax, %eax
setne %al
movzbl %al, %edx
callq 0x642e0
jmp 0x6f6b3
jmp 0x6f6b5
movq 0x7c8(%rsp), %rdi
callq 0x643f0
jmp 0x6f6c4
movq 0x7c8(%rsp), %rdi
addq $0x1e0, %rdi            # imm = 0x1E0
callq 0x643f0
jmp 0x6f6da
movl $0x0, 0x64c(%rsp)
movl 0x64c(%rsp), %eax
cmpl 0x7d4(%rsp), %eax
jge 0x6f72f
movq 0x7c8(%rsp), %rdi
movl 0x64c(%rsp), %eax
addl $0x2, %eax
cltq
imulq $0x1e0, %rax, %rax      # imm = 0x1E0
addq %rax, %rdi
callq 0x643f0
jmp 0x6f71a
jmp 0x6f71c
movl 0x64c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x64c(%rsp)
jmp 0x6f6e5
jmp 0x6f731
cmpl $0x4, 0x708(%rsp)
je 0x6f869
movq 0x7c8(%rsp), %rax
movq %rax, 0x1c8(%rsp)
movl 0x708(%rsp), %eax
movl %eax, 0x1d4(%rsp)
leaq 0x98ee(%rip), %rsi      # 0x79052
leaq 0x6e0(%rsp), %rdi
callq 0x8130
movq 0x1c8(%rsp), %rdi
movl 0x1d4(%rsp), %esi
testl %eax, %eax
setne %al
movzbl %al, %edx
callq 0x642e0
jmp 0x6f78f
movl $0x0, 0x648(%rsp)
movl 0x648(%rsp), %eax
cmpl 0x7d4(%rsp), %eax
jge 0x6f867
movl 0x704(%rsp), %eax
movl %eax, 0x1c4(%rsp)
movq 0xa30(%rsp), %rdi
addq $0xa8, %rdi
movslq 0x648(%rsp), %rsi
callq 0x1eb90
movq %rax, %rcx
movl 0x1c4(%rsp), %eax
cmpl (%rcx), %eax
jl 0x6f84f
movq 0x7c8(%rsp), %rax
movl 0x648(%rsp), %ecx
addl $0x2, %ecx
movslq %ecx, %rcx
imulq $0x1e0, %rcx, %rcx      # imm = 0x1E0
addq %rcx, %rax
movq %rax, 0x1b8(%rsp)
movl 0x708(%rsp), %eax
movl %eax, 0x1c0(%rsp)
leaq 0x9830(%rip), %rsi      # 0x79052
leaq 0x6e0(%rsp), %rdi
callq 0x8130
movq 0x1b8(%rsp), %rdi
movl 0x1c0(%rsp), %esi
testl %eax, %eax
setne %al
movzbl %al, %edx
callq 0x642e0
jmp 0x6f84d
jmp 0x6f84f
jmp 0x6f851
movl 0x648(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x648(%rsp)
jmp 0x6f79a
jmp 0x6f869
leaq 0x828(%rsp), %rdi
leaq 0x808(%rsp), %rsi
callq 0x66fa0
jmp 0x6f880
jmp 0x6f882
movq 0x828(%rsp), %rax
movq -0x18(%rax), %rax
leaq 0x828(%rsp,%rax), %rdi
callq 0x8700
movb %al, 0x1b7(%rsp)
jmp 0x6f8a4
movb 0x1b7(%rsp), %al
testb $0x1, %al
jne 0x6f227
jmp 0x6f8b5
leaq 0x760(%rsp), %rdi
callq 0x86e0
testb $0x1, %al
jne 0x6f9e2
movq 0x7d8(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x7d8(%rsp)
movq 0x7c8(%rsp), %rax
cmpl $0x1, 0x1dc(%rax)
je 0x6f90e
movq 0xa30(%rsp), %rax
testb $0x1, 0x68(%rax)
je 0x6f966
movq 0x7c8(%rsp), %rax
cmpl $0x2, 0x1dc(%rax)
jne 0x6f966
movq 0x7c8(%rsp), %rax
addq $0x1e0, %rax            # imm = 0x1E0
movq %rax, 0x1a8(%rsp)
movl 0x758(%rsp), %eax
movl %eax, 0x1b0(%rsp)
leaq 0x9719(%rip), %rsi      # 0x79052
leaq 0x738(%rsp), %rdi
callq 0x8130
movq 0x1a8(%rsp), %rdi
movl 0x1b0(%rsp), %esi
testl %eax, %eax
setne %al
movzbl %al, %edx
callq 0x642e0
jmp 0x6f964
jmp 0x6f966
movq 0x7c8(%rsp), %rdi
callq 0x643f0
jmp 0x6f975
movq 0x7c8(%rsp), %rdi
addq $0x1e0, %rdi            # imm = 0x1E0
callq 0x643f0
jmp 0x6f98b
movl $0x0, 0x644(%rsp)
movl 0x644(%rsp), %eax
cmpl 0x7d4(%rsp), %eax
jge 0x6f9e0
movq 0x7c8(%rsp), %rdi
movl 0x644(%rsp), %eax
addl $0x2, %eax
cltq
imulq $0x1e0, %rax, %rax      # imm = 0x1E0
addq %rax, %rdi
callq 0x643f0
jmp 0x6f9cb
jmp 0x6f9cd
movl 0x644(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x644(%rsp)
jmp 0x6f996
jmp 0x6f9e2
leaq 0x6e0(%rsp), %rdi
callq 0x8858
leaq 0x710(%rsp), %rdi
callq 0x8858
leaq 0x738(%rsp), %rdi
callq 0x8858
leaq 0x760(%rsp), %rdi
callq 0x8858
jmp 0x6fa44
leaq 0x710(%rsp), %rdi
callq 0x8858
leaq 0x738(%rsp), %rdi
callq 0x8858
leaq 0x760(%rsp), %rdi
callq 0x8858
jmp 0x70989
movq 0x275a5(%rip), %rdi     # 0x96ff0
leaq 0xfc2d(%rip), %rsi      # 0x7f67f
callq 0x8360
movq %rax, 0x1a0(%rsp)
jmp 0x6fa61
movq 0x1a0(%rsp), %rdi
movq 0x27540(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6fa77
leaq 0x828(%rsp), %rdi
callq 0x80e0
jmp 0x6fa86
movq 0x27563(%rip), %rdi     # 0x96ff0
movq 0x2751c(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6fa9b
movq 0x2754e(%rip), %rdi     # 0x96ff0
leaq 0xf370(%rip), %rsi      # 0x7ee19
callq 0x8360
movq %rax, 0x198(%rsp)
jmp 0x6fab8
movq 0x198(%rsp), %rdi
movq 0x274e9(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6face
movq 0x2751b(%rip), %rdi     # 0x96ff0
leaq 0xfbbb(%rip), %rsi      # 0x7f697
callq 0x8360
movq %rax, 0x190(%rsp)
jmp 0x6faeb
movq 0x190(%rsp), %rdi
movq 0x274b6(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6fb01
movq 0xa30(%rsp), %rax
movq 0x118(%rax), %rax
movq %rax, 0x638(%rsp)
cmpq $0x0, 0x638(%rsp)
jne 0x6fb68
movq 0x7d8(%rsp), %rax
movq %rax, 0x638(%rsp)
movq 0x274b6(%rip), %rdi     # 0x96ff0
leaq 0xfbb2(%rip), %rsi      # 0x7f6f3
callq 0x8360
movq %rax, 0x188(%rsp)
jmp 0x6fb50
movq 0x188(%rsp), %rdi
movq 0x27451(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6fb66
jmp 0x6fb68
movq 0xa30(%rsp), %rdi
addq $0x8, %rdi
callq 0x86e0
testb $0x1, %al
jne 0x702d6
movq 0xa30(%rsp), %rdi
addq $0x8, %rdi
callq 0x8170
movq %rax, %rsi
leaq 0x438(%rsp), %rdi
movl $0x10, %edx
callq 0x83f0
jmp 0x6fba9
leaq 0xfbc5(%rip), %rsi      # 0x7f775
leaq 0x438(%rsp), %rdi
callq 0x8360
movq %rax, 0x180(%rsp)
jmp 0x6fbc7
movq 0x180(%rsp), %rdi
movq 0x273da(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6fbdd
leaq 0xf336(%rip), %rsi      # 0x7ef1a
leaq 0x438(%rsp), %rdi
callq 0x8360
movq %rax, 0x178(%rsp)
jmp 0x6fbfb
movq 0x178(%rsp), %rdi
movq 0x273a6(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6fc11
leaq 0xfb85(%rip), %rsi      # 0x7f79d
leaq 0x438(%rsp), %rdi
callq 0x8360
movq %rax, 0x170(%rsp)
jmp 0x6fc2f
movq 0x170(%rsp), %rdi
movq 0x27372(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6fc45
leaq 0xf2ce(%rip), %rsi      # 0x7ef1a
leaq 0x438(%rsp), %rdi
callq 0x8360
movq %rax, 0x168(%rsp)
jmp 0x6fc63
movq 0x168(%rsp), %rdi
movq 0x2733e(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6fc79
leaq 0xf347(%rip), %rsi      # 0x7efc7
leaq 0x438(%rsp), %rdi
callq 0x8360
movq %rax, 0x160(%rsp)
jmp 0x6fc97
movq 0x160(%rsp), %rdi
movq 0xa30(%rsp), %rsi
addq $0x70, %rsi
callq 0x8330
movq %rax, 0x158(%rsp)
jmp 0x6fcba
movq 0x158(%rsp), %rdi
movq 0x272e7(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6fcd0
leaq 0xf3c6(%rip), %rsi      # 0x7f09d
leaq 0x438(%rsp), %rdi
callq 0x8360
movq %rax, 0x150(%rsp)
jmp 0x6fcee
movq 0xa30(%rsp), %rsi
addq $0xa8, %rsi
leaq 0x400(%rsp), %rdi
callq 0x70d50
jmp 0x6fd0c
leaq 0x418(%rsp), %rdi
leaq 0x400(%rsp), %rsi
callq 0x70c20
jmp 0x6fd23
movq 0x150(%rsp), %rdi
leaq 0x418(%rsp), %rsi
callq 0x8330
movq %rax, 0x148(%rsp)
jmp 0x6fd42
movq 0x148(%rsp), %rdi
movq 0x2725f(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6fd58
leaq 0x418(%rsp), %rdi
callq 0x8858
leaq 0x400(%rsp), %rdi
callq 0xe770
leaq 0xfa82(%rip), %rsi      # 0x7f7fb
leaq 0x438(%rsp), %rdi
callq 0x8360
movq %rax, 0x140(%rsp)
jmp 0x6fd90
movq 0x140(%rsp), %rdi
movq 0x27211(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6fda6
leaq 0xfab2(%rip), %rsi      # 0x7f85f
leaq 0x438(%rsp), %rdi
callq 0x8360
movq %rax, 0x138(%rsp)
jmp 0x6fdc4
movq 0x138(%rsp), %rdi
movq 0x271dd(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6fdda
leaq 0xf139(%rip), %rsi      # 0x7ef1a
leaq 0x438(%rsp), %rdi
callq 0x8360
movq %rax, 0x130(%rsp)
jmp 0x6fdf8
movq 0x130(%rsp), %rdi
movq 0x271a9(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6fe0e
leaq 0xf105(%rip), %rsi      # 0x7ef1a
leaq 0x438(%rsp), %rdi
callq 0x8360
movq %rax, 0x128(%rsp)
jmp 0x6fe2c
movq 0x128(%rsp), %rdi
movq 0x27175(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6fe42
leaq 0xf48e(%rip), %rsi      # 0x7f2d7
leaq 0x438(%rsp), %rdi
callq 0x8360
movq %rax, 0x120(%rsp)
jmp 0x6fe60
movq 0x120(%rsp), %rdi
movq 0x27141(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6fe76
leaq 0xf09d(%rip), %rsi      # 0x7ef1a
leaq 0x438(%rsp), %rdi
callq 0x8360
movq %rax, 0x118(%rsp)
jmp 0x6fe94
movq 0x118(%rsp), %rdi
movq 0x2710d(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6feaa
leaq 0xf430(%rip), %rsi      # 0x7f2e1
leaq 0x438(%rsp), %rdi
callq 0x8360
movq %rax, 0x110(%rsp)
jmp 0x6fec8
movq 0x110(%rsp), %rdi
movq 0x638(%rsp), %rsi
callq 0x8790
movq %rax, 0x108(%rsp)
jmp 0x6fee7
movq 0x108(%rsp), %rdi
movq 0x270ba(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6fefd
leaq 0xf3f1(%rip), %rsi      # 0x7f2f5
leaq 0x438(%rsp), %rdi
callq 0x8360
movq %rax, 0x100(%rsp)
jmp 0x6ff1b
movq 0x100(%rsp), %rdi
movq 0xa30(%rsp), %rax
movzbl 0x68(%rax), %esi
andl $0x1, %esi
callq 0x8760
movq %rax, 0xf8(%rsp)
jmp 0x6ff41
movq 0xf8(%rsp), %rdi
movq 0x27060(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6ff57
leaq 0xefbc(%rip), %rsi      # 0x7ef1a
leaq 0x438(%rsp), %rdi
callq 0x8360
movq %rax, 0xf0(%rsp)
jmp 0x6ff75
movq 0xf0(%rsp), %rdi
movq 0x2702c(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6ff8b
leaq 0xf90e(%rip), %rsi      # 0x7f8a0
leaq 0x438(%rsp), %rdi
callq 0x8360
movq %rax, 0xe8(%rsp)
jmp 0x6ffa9
movq 0xe8(%rsp), %rdi
movq 0x26ff8(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x6ffbf
movq 0x7c8(%rsp), %rsi
movq 0x638(%rsp), %rdx
movq 0xa30(%rsp), %rax
movzbl 0x68(%rax), %ecx
andl $0x1, %ecx
leaq 0x3e0(%rsp), %rdi
callq 0x644b0
jmp 0x6ffed
leaq 0x438(%rsp), %rdi
leaq 0x3e0(%rsp), %rsi
callq 0x8330
jmp 0x70004
leaq 0x3e0(%rsp), %rdi
callq 0x8858
leaq 0xef02(%rip), %rsi      # 0x7ef1a
leaq 0x438(%rsp), %rdi
callq 0x8360
movq %rax, 0xe0(%rsp)
jmp 0x7002f
movq 0xe0(%rsp), %rdi
movq 0x26f72(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x70045
leaq 0xf866(%rip), %rsi      # 0x7f8b2
leaq 0x438(%rsp), %rdi
callq 0x8360
movq %rax, 0xd8(%rsp)
jmp 0x70063
movq 0xd8(%rsp), %rdi
movq 0x26f3e(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x70079
movq 0x7c8(%rsp), %rsi
addq $0x1e0, %rsi            # imm = 0x1E0
movq 0x638(%rsp), %rdx
movq 0xa30(%rsp), %rax
movzbl 0x68(%rax), %ecx
andl $0x1, %ecx
leaq 0x3c0(%rsp), %rdi
callq 0x644b0
jmp 0x700ae
leaq 0x438(%rsp), %rdi
leaq 0x3c0(%rsp), %rsi
callq 0x8330
jmp 0x700c5
leaq 0x3c0(%rsp), %rdi
callq 0x8858
movl $0x0, 0x3bc(%rsp)
movl 0x3bc(%rsp), %eax
cmpl 0x7d4(%rsp), %eax
jge 0x702a3
leaq 0xf7cf(%rip), %rsi      # 0x7f8c7
leaq 0x438(%rsp), %rdi
callq 0x8360
movq %rax, 0xd0(%rsp)
jmp 0x7010f
movq 0xa30(%rsp), %rdi
addq $0xa8, %rdi
movslq 0x3bc(%rsp), %rsi
callq 0x1eb90
movq 0xd0(%rsp), %rdi
movl (%rax), %esi
callq 0x8710
movq %rax, 0xc8(%rsp)
jmp 0x70144
movq 0xc8(%rsp), %rdi
movq 0x26e5d(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x7015a
movq 0x7c8(%rsp), %rsi
movl 0x3bc(%rsp), %eax
addl $0x2, %eax
cltq
imulq $0x1e0, %rax, %rax      # imm = 0x1E0
addq %rax, %rsi
movq 0x638(%rsp), %rdx
movq 0xa30(%rsp), %rax
movzbl 0x68(%rax), %ecx
andl $0x1, %ecx
leaq 0x398(%rsp), %rdi
callq 0x644b0
jmp 0x7019e
leaq 0x438(%rsp), %rdi
leaq 0x398(%rsp), %rsi
callq 0x8330
jmp 0x701b5
leaq 0x398(%rsp), %rdi
callq 0x8858
movl 0x3bc(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x3bc(%rsp)
jmp 0x700dd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x7f8(%rsp)
movl %eax, 0x7f4(%rsp)
jmp 0x702c4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x7f8(%rsp)
movl %eax, 0x7f4(%rsp)
jmp 0x70228
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x7f8(%rsp)
movl %eax, 0x7f4(%rsp)
leaq 0x418(%rsp), %rdi
callq 0x8858
leaq 0x400(%rsp), %rdi
callq 0xe770
jmp 0x702c4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x7f8(%rsp)
movl %eax, 0x7f4(%rsp)
leaq 0x3e0(%rsp), %rdi
callq 0x8858
jmp 0x702c4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x7f8(%rsp)
movl %eax, 0x7f4(%rsp)
leaq 0x3c0(%rsp), %rdi
callq 0x8858
jmp 0x702c4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x7f8(%rsp)
movl %eax, 0x7f4(%rsp)
leaq 0x398(%rsp), %rdi
callq 0x8858
jmp 0x702c4
leaq 0x438(%rsp), %rdi
callq 0x85b0
jmp 0x702b2
leaq 0x438(%rsp), %rdi
callq 0x8610
jmp 0x7094c
leaq 0x438(%rsp), %rdi
callq 0x8610
jmp 0x70989
movq 0x26ceb(%rip), %rdi     # 0x96fc8
leaq 0xf491(%rip), %rsi      # 0x7f775
callq 0x8360
movq %rax, 0xc0(%rsp)
jmp 0x702f3
movq 0xc0(%rsp), %rdi
movq 0x26cae(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x70309
movq 0x26cb8(%rip), %rdi     # 0x96fc8
leaq 0xec03(%rip), %rsi      # 0x7ef1a
callq 0x8360
movq %rax, 0xb8(%rsp)
jmp 0x70326
movq 0xb8(%rsp), %rdi
movq 0x26c7b(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x7033c
movq 0x26c85(%rip), %rdi     # 0x96fc8
leaq 0xf453(%rip), %rsi      # 0x7f79d
callq 0x8360
movq %rax, 0xb0(%rsp)
jmp 0x70359
movq 0xb0(%rsp), %rdi
movq 0x26c48(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x7036f
movq 0x26c52(%rip), %rdi     # 0x96fc8
leaq 0xeb9d(%rip), %rsi      # 0x7ef1a
callq 0x8360
movq %rax, 0xa8(%rsp)
jmp 0x7038c
movq 0xa8(%rsp), %rdi
movq 0x26c15(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x703a2
movq 0x26c1f(%rip), %rdi     # 0x96fc8
leaq 0xec17(%rip), %rsi      # 0x7efc7
callq 0x8360
movq %rax, 0xa0(%rsp)
jmp 0x703bf
movq 0xa0(%rsp), %rdi
movq 0xa30(%rsp), %rsi
addq $0x70, %rsi
callq 0x8330
movq %rax, 0x98(%rsp)
jmp 0x703e2
movq 0x98(%rsp), %rdi
movq 0x26bbf(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x703f8
movq 0x26bc9(%rip), %rdi     # 0x96fc8
leaq 0xec97(%rip), %rsi      # 0x7f09d
callq 0x8360
movq %rax, 0x90(%rsp)
jmp 0x70415
movq 0xa30(%rsp), %rsi
addq $0xa8, %rsi
leaq 0x360(%rsp), %rdi
callq 0x70d50
jmp 0x70433
leaq 0x378(%rsp), %rdi
leaq 0x360(%rsp), %rsi
callq 0x70c20
jmp 0x7044a
movq 0x90(%rsp), %rdi
leaq 0x378(%rsp), %rsi
callq 0x8330
movq %rax, 0x88(%rsp)
jmp 0x70469
movq 0x88(%rsp), %rdi
movq 0x26b38(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x7047f
leaq 0x378(%rsp), %rdi
callq 0x8858
leaq 0x360(%rsp), %rdi
callq 0xe770
movq 0x26b28(%rip), %rdi     # 0x96fc8
leaq 0xf354(%rip), %rsi      # 0x7f7fb
callq 0x8360
movq %rax, 0x80(%rsp)
jmp 0x704b6
movq 0x80(%rsp), %rdi
movq 0x26aeb(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x704cc
movq 0x26af5(%rip), %rdi     # 0x96fc8
leaq 0xf385(%rip), %rsi      # 0x7f85f
callq 0x8360
movq %rax, 0x78(%rsp)
jmp 0x704e6
movq 0x78(%rsp), %rdi
movq 0x26abe(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x704f9
movq 0x26ac8(%rip), %rdi     # 0x96fc8
leaq 0xea13(%rip), %rsi      # 0x7ef1a
callq 0x8360
movq %rax, 0x70(%rsp)
jmp 0x70513
movq 0x70(%rsp), %rdi
movq 0x26a91(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x70526
movq 0x26a9b(%rip), %rdi     # 0x96fc8
leaq 0xe9e6(%rip), %rsi      # 0x7ef1a
callq 0x8360
movq %rax, 0x68(%rsp)
jmp 0x70540
movq 0x68(%rsp), %rdi
movq 0x26a64(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x70553
movq 0x26a6e(%rip), %rdi     # 0x96fc8
leaq 0xed76(%rip), %rsi      # 0x7f2d7
callq 0x8360
movq %rax, 0x60(%rsp)
jmp 0x7056d
movq 0x60(%rsp), %rdi
movq 0x26a37(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x70580
movq 0x26a41(%rip), %rdi     # 0x96fc8
leaq 0xe98c(%rip), %rsi      # 0x7ef1a
callq 0x8360
movq %rax, 0x58(%rsp)
jmp 0x7059a
movq 0x58(%rsp), %rdi
movq 0x26a0a(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x705ad
movq 0x26a14(%rip), %rdi     # 0x96fc8
leaq 0xed26(%rip), %rsi      # 0x7f2e1
callq 0x8360
movq %rax, 0x50(%rsp)
jmp 0x705c7
movq 0x50(%rsp), %rdi
movq 0x638(%rsp), %rsi
callq 0x8790
movq %rax, 0x48(%rsp)
jmp 0x705e0
movq 0x48(%rsp), %rdi
movq 0x269c4(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x705f3
movq 0x269ce(%rip), %rdi     # 0x96fc8
leaq 0xecf4(%rip), %rsi      # 0x7f2f5
callq 0x8360
movq %rax, 0x40(%rsp)
jmp 0x7060d
movq 0x40(%rsp), %rdi
movq 0xa30(%rsp), %rax
movzbl 0x68(%rax), %esi
andl $0x1, %esi
callq 0x8760
movq %rax, 0x38(%rsp)
jmp 0x7062d
movq 0x38(%rsp), %rdi
movq 0x26977(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x70640
movq 0x26981(%rip), %rdi     # 0x96fc8
leaq 0xe8cc(%rip), %rsi      # 0x7ef1a
callq 0x8360
movq %rax, 0x30(%rsp)
jmp 0x7065a
movq 0x30(%rsp), %rdi
movq 0x2694a(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x7066d
movq 0x26954(%rip), %rdi     # 0x96fc8
leaq 0xf225(%rip), %rsi      # 0x7f8a0
callq 0x8360
movq %rax, 0x28(%rsp)
jmp 0x70687
movq 0x28(%rsp), %rdi
movq 0x2691d(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x7069a
movq 0x7c8(%rsp), %rsi
movq 0x638(%rsp), %rdx
movq 0xa30(%rsp), %rax
movzbl 0x68(%rax), %ecx
andl $0x1, %ecx
leaq 0x340(%rsp), %rdi
callq 0x644b0
jmp 0x706c8
movq 0x268f9(%rip), %rdi     # 0x96fc8
leaq 0x340(%rsp), %rsi
callq 0x8330
jmp 0x706de
leaq 0x340(%rsp), %rdi
callq 0x8858
movq 0x268d6(%rip), %rdi     # 0x96fc8
leaq 0xe821(%rip), %rsi      # 0x7ef1a
callq 0x8360
movq %rax, 0x20(%rsp)
jmp 0x70705
movq 0x20(%rsp), %rdi
movq 0x2689f(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x70718
movq 0x268a9(%rip), %rdi     # 0x96fc8
leaq 0xf18c(%rip), %rsi      # 0x7f8b2
callq 0x8360
movq %rax, 0x18(%rsp)
jmp 0x70732
movq 0x18(%rsp), %rdi
movq 0x26872(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x70745
movq 0x7c8(%rsp), %rsi
addq $0x1e0, %rsi            # imm = 0x1E0
movq 0x638(%rsp), %rdx
movq 0xa30(%rsp), %rax
movzbl 0x68(%rax), %ecx
andl $0x1, %ecx
leaq 0x320(%rsp), %rdi
callq 0x644b0
jmp 0x7077a
movq 0x26847(%rip), %rdi     # 0x96fc8
leaq 0x320(%rsp), %rsi
callq 0x8330
jmp 0x70790
leaq 0x320(%rsp), %rdi
callq 0x8858
movl $0x0, 0x31c(%rsp)
movl 0x31c(%rsp), %eax
cmpl 0x7d4(%rsp), %eax
jge 0x7094a
movq 0x26805(%rip), %rdi     # 0x96fc8
leaq 0xf0fd(%rip), %rsi      # 0x7f8c7
callq 0x8360
movq %rax, 0x10(%rsp)
jmp 0x707d6
movq 0xa30(%rsp), %rdi
addq $0xa8, %rdi
movslq 0x31c(%rsp), %rsi
callq 0x1eb90
movq 0x10(%rsp), %rdi
movl (%rax), %esi
callq 0x8710
movq %rax, 0x8(%rsp)
jmp 0x70805
movq 0x8(%rsp), %rdi
movq 0x2679f(%rip), %rsi     # 0x96fb0
callq 0x83b0
jmp 0x70818
movq 0x7c8(%rsp), %rsi
movl 0x31c(%rsp), %eax
addl $0x2, %eax
cltq
imulq $0x1e0, %rax, %rax      # imm = 0x1E0
addq %rax, %rsi
movq 0x638(%rsp), %rdx
movq 0xa30(%rsp), %rax
movzbl 0x68(%rax), %ecx
andl $0x1, %ecx
leaq 0x2f8(%rsp), %rdi
callq 0x644b0
jmp 0x7085c
movq 0x26765(%rip), %rdi     # 0x96fc8
leaq 0x2f8(%rsp), %rsi
callq 0x8330
jmp 0x70872
leaq 0x2f8(%rsp), %rdi
callq 0x8858
movl 0x31c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x31c(%rsp)
jmp 0x707a8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x7f8(%rsp)
movl %eax, 0x7f4(%rsp)
jmp 0x708cc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x7f8(%rsp)
movl %eax, 0x7f4(%rsp)
leaq 0x378(%rsp), %rdi
callq 0x8858
leaq 0x360(%rsp), %rdi
callq 0xe770
jmp 0x70989
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x7f8(%rsp)
movl %eax, 0x7f4(%rsp)
leaq 0x340(%rsp), %rdi
callq 0x8858
jmp 0x70989
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x7f8(%rsp)
movl %eax, 0x7f4(%rsp)
leaq 0x320(%rsp), %rdi
callq 0x8858
jmp 0x70989
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x7f8(%rsp)
movl %eax, 0x7f4(%rsp)
leaq 0x2f8(%rsp), %rdi
callq 0x8858
jmp 0x70989
jmp 0x7094c
movq 0x7c8(%rsp), %rax
movq %rax, (%rsp)
cmpq $0x0, %rax
je 0x70967
movq (%rsp), %rdi
callq 0x8520
leaq 0x808(%rsp), %rdi
callq 0x8858
leaq 0x828(%rsp), %rdi
callq 0x8110
addq $0xa38, %rsp            # imm = 0xA38
retq
leaq 0x808(%rsp), %rdi
callq 0x8858
leaq 0x828(%rsp), %rdi
callq 0x8110
movq 0x7f8(%rsp), %rdi
callq 0x8730