// File: millanek[P]evo/evo_combineVCFs.cpp
// Function: VCFcombMain(int, char**)
int VCFcombMain(int argc, char** argv) {
    parseVCFcombOptions(argc, argv);
    const string refAllele = "0/0"; const string altAllele = "1/1";
    string line; // for reading the input files
    
    std::istream* vcfFile1 = createReader(opt::vcfFile1.c_str());
    std::istream* vcfFile2 = createReader(opt::vcfFile2.c_str());
    std::ifstream* refFile1 = new std::ifstream(opt::refFile1.c_str());
    std::ifstream* refFile2 = new std::ifstream(opt::refFile2.c_str());
    
    string extraMaskFileName = opt::out + "_extraMask.bed";
    std::ofstream* extraMaskFile = new std::ofstream(extraMaskFileName.c_str());
    
    
    // Read in the whole reference sequences
    string refSeq1; string refSeq2; refSeq1.reserve(50000000); refSeq2.reserve(50000000);
    getline(*refFile1, line); string chrRef1 = line.substr(1,string::npos);
    getline(*refFile2, line); string chrRef2 = line.substr(1,string::npos);
    assert(chrRef1 == chrRef2);
    
    while (getline(*refFile1, line)) { refSeq1.append(line); }
    while (getline(*refFile2, line)) { refSeq2.append(line); }
    assert(chrRef1.length() == chrRef2.length());
    std::transform(refSeq1.begin(), refSeq1.end(),refSeq1.begin(), ::toupper);
    std::transform(refSeq2.begin(), refSeq2.end(),refSeq2.begin(), ::toupper);
    
    std::map<int,string> VCF1; std::map<int,string> VCF2;
    std::vector<string> header1; std::vector<string> header2;
    std::vector<string> samples1; std::vector<string> samples2;
    std::vector<std::string> fields;
    // Now go through the vcf and add the AA fields
    while (getline(*vcfFile1, line)) {
        if (line[0] == '#' && line[1] == '#') { header1.push_back(line); }
        else if (line[0] == '#' && line[1] == 'C') {
            header1.push_back(line);
            fields = split(line, '\t');
            for (std::vector<std::string>::size_type i = NUM_NON_GENOTYPE_COLUMNS; i != fields.size(); i++) {
                samples1.push_back(fields[i]);
            }
        } else {
            fields = split(line, '\t');
            VCF1[atoi(fields[1].c_str())] = line;
        }
    }
    while (getline(*vcfFile2, line)) {
        if (line[0] == '#' && line[1] == '#') { header2.push_back(line); }
        else if (line[0] == '#' && line[1] == 'C') {
            header2.push_back(line); fields = split(line, '\t');
            for (std::vector<std::string>::size_type i = NUM_NON_GENOTYPE_COLUMNS; i != fields.size(); i++) {
                samples2.push_back(fields[i]);
            }
        } else {
            fields = split(line, '\t');
            VCF2[atoi(fields[1].c_str())] = line;
        }
    }
    
    std::ifstream* accessibleGenomeBed = new std::ifstream(opt::mappabilityFile.c_str());
    std::cerr << "Loading the accessible genome annotation:" << std::endl;
    AccessibleGenome* ag = new AccessibleGenome(accessibleGenomeBed);
    std::vector<bool> acc(refSeq1.length(),false);
    std::vector<std::vector<int>> thisChrMask = ag->BedFeatureMap.at(chrRef1);
    for (int i = 0; i < thisChrMask[0].size(); i++) {
        for (int j = thisChrMask[0][i]; j < thisChrMask[1][i]; j++) { acc[j] = true; }
    }
    std::cerr << "Done" << std::endl;
    
    
    std::cout << header1[0] << std::endl;
    std::cout << header1[1] << std::endl;
    std::cout << header1[2] << std::endl;
    std::cout << header1.back() << "\t"; print_vector(samples2, std::cout);
    int inMask = 0; int noAlignment = 0; int notVariable = 0; int becomesMultiallelic = 0;
    int vcf1Var = 0; int vcf2Var = 0; int sharedVar = 0; int refDifVar = 0;
    std::cerr << "Length of the chromosome/scaffold: " <<  refSeq1.length() << std::endl;
    
    for (int i = 0; i < refSeq1.length(); i++) {
        int pos = i+1;
       /* if (pos == 7801 || pos == 20205) {
            std::cerr << "VCF1.count("<< pos<<"): " <<  VCF1.count(pos) << "VCF2.count("<< pos<<"): " <<  VCF2.count(pos) << std::endl;
            std::cerr << "refSeq1[i] " <<  refSeq1[i] << "refSeq2[i] " << refSeq2[i] << std::endl;
        }*/
        // if (ag->findIfBPaccessible(chrRef1, i+1) == true) continue; // This assumes a mask file is given
        if (acc[i] == true) { inMask++; continue; }
        if (refSeq1[i] == 'N' || refSeq2[i] == 'N') {
            *extraMaskFile << chrRef1 << "\t" << i << "\t" << i+1 << std::endl;
            noAlignment++; continue;
        }
        if (refSeq1[i] == refSeq2[i]) {
            if (VCF1.count(pos) == 0 && VCF2.count(pos) == 0) { notVariable++; continue; }
            else if (VCF1.count(pos) == 1) {
                if (VCF2.count(pos) == 0) {
                    std::cout << VCF1[pos]; for (int j = 0; j < samples2.size(); j++) { std::cout << "\t" << refAllele; }
                    std::cout << std::endl; vcf1Var++;
                }
                if (VCF2.count(pos) == 1) {
                    fields = split(VCF1[pos], '\t'); char altAllele1 = fields[4][0];
                    fields = split(VCF2[pos], '\t'); char refAllele2 = fields[3][0]; char altAllele2 = fields[4][0];
                    if (refAllele2 != refSeq2[i] && complementIUPAC(refAllele2) == refSeq2[i]) { altAllele2 = complementIUPAC(altAllele2);}
                    if (altAllele1 == altAllele2) {
                        std::vector<string> genotypes(fields.begin()+NUM_NON_GENOTYPE_COLUMNS,fields.end());
                        std::cout << VCF1[pos] << "\t"; print_vector(genotypes, std::cout); sharedVar++;
                    } else {
                        becomesMultiallelic++;
                    } // else this would be multiallelic
                }
            }
            else if (VCF2.count(pos) == 1) {
                fields = split(VCF2[pos], '\t');
                if (fields[3][0] != refSeq2[i] && complementIUPAC(fields[3][0]) == refSeq2[i]) { fields[3][0] = complementIUPAC(fields[3][0]);}
                std::vector<string> genotypes(fields.begin()+NUM_NON_GENOTYPE_COLUMNS,fields.end());
                for (int j = 0; j < NUM_NON_GENOTYPE_COLUMNS; j++) { std::cout << fields[j] << "\t"; }
                for (int j = 0; j < samples1.size(); j++) { std::cout << refAllele << "\t"; }
                print_vector(genotypes,std::cout); vcf2Var++;
            }
        } else // refSeq1[i] != refSeq2[i]
        {
            if (VCF1.count(pos) == 0 && VCF2.count(pos) == 0) {
                std::cout << chrRef1 << "\t" << pos << "\t.\t" << refSeq1[i] << "\t" << refSeq2[i] << "\t1000\tPASS\tAC=" << samples2.size()*2 << "\tGT";
                for (int j = 0; j < samples1.size(); j++) { std::cout << "\t" << refAllele; }
                for (int j = 0; j < samples2.size(); j++) { std::cout << "\t" << altAllele; }
                std::cout << std::endl; refDifVar++;
            }
            else if (VCF1.count(pos) == 1) {
                fields = split(VCF1[pos], '\t'); char altAllele1 = fields[4][0];
                /*if (pos == 7801 || pos == 20205) {
                    std::cerr << "altAllele1 " <<  altAllele1 << "refSeq2[i] " << refSeq2[i] << std::endl;
                }*/
                if (altAllele1 != refSeq2[i]) { becomesMultiallelic++; continue; } // This would be multiallelic
                
                if (VCF2.count(pos) == 0) {
                    std::cout << VCF1[pos]; for (int j = 0; j < samples2.size(); j++) { std::cout << "\t" << refAllele; }
                    std::cout << std::endl; vcf1Var++;
                }
                if (VCF2.count(pos) == 1) {
                    fields = split(VCF2[pos], '\t'); char refAllele2 = fields[3][0]; char altAllele2 = fields[4][0];
                    if (refAllele2 != refSeq2[i] && complementIUPAC(refAllele2) == refSeq2[i]) { altAllele2 = complementIUPAC(altAllele2);}
                    /*if (pos == 7801 || pos == 20205) {
                        std::cerr << "altAllele2 " <<  altAllele1 << "refSeq1[i] " << refSeq2[i] << std::endl;
                    }*/
                    if (altAllele2  == refSeq1[i]) { // The alternative allele in the simDia called VCF needs to match the AstCal allele
                        std::vector<string> genotypes(fields.begin()+NUM_NON_GENOTYPE_COLUMNS,fields.end());
                        std::cout << VCF1[pos] << "\t"; print_vector(genotypes, std::cout); sharedVar++;
                    } else {
                        becomesMultiallelic++;
                    } // else this would be multiallelic
                }
            }
            else if (VCF2.count(pos) == 1) {
                fields = split(VCF2[pos], '\t'); char refAllele2 = fields[3][0]; char altAllele2 = fields[4][0];
                if (refAllele2 != refSeq2[i] && complementIUPAC(refAllele2) == refSeq2[i]) { altAllele2 = complementIUPAC(altAllele2);}
                if (altAllele2  == refSeq1[i]) { // The alternative allele in the simDia called VCF needs to match the AstCal allele
                    std::vector<string> genotypes(fields.begin()+NUM_NON_GENOTYPE_COLUMNS,fields.end());
                    for (int j = 0; j < NUM_NON_GENOTYPE_COLUMNS; j++) { std::cout << fields[j] << "\t"; }
                    for (int j = 0; j < samples1.size(); j++) { std::cout << refAllele << "\t"; }
                    print_vector(genotypes,std::cout); vcf2Var++;
                } else {
                    becomesMultiallelic++;
                }
            }
        }
    }
    std::cerr << "Base categories not resulting in a variant:" << std::endl;
    std::cerr << "inMask\t" << inMask << std::endl;
    std::cerr << "noAlignment\t" << noAlignment << std::endl;
    std::cerr << "notVariable\t" << notVariable << std::endl;
    std::cerr << "becomesMultiallelic\t" << becomesMultiallelic << std::endl;
    std::cerr << "Total non-variant sites:\t" << inMask+noAlignment+notVariable+becomesMultiallelic << std::endl;
    std::cout << std::endl;
    std::cerr << "Base categories resulting in a variant:" << std::endl;
    std::cerr << "Difference between reference sequences:\t" << refDifVar << std::endl;
    std::cerr << "Variant in vcf1:\t" << vcf1Var << std::endl;
    std::cerr << "Variant in vcf2:\t" << vcf2Var << std::endl;
    std::cerr << "Shared vcf1 and vcf2 variant:\t" << sharedVar << std::endl;
    std::cerr << "Total variant sites:\t" << refDifVar+vcf1Var+vcf2Var+sharedVar << std::endl;
    std::cout << std::endl;
    std::cerr << "Total sites:\t" << inMask+noAlignment+notVariable+becomesMultiallelic+refDifVar+vcf1Var+vcf2Var+sharedVar << std::endl;
    return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xc60, %rsp            # imm = 0xC60
movl %edi, -0x4(%rbp)
movq %rsi, -0x10(%rbp)
movl -0x4(%rbp), %edi
movq -0x10(%rbp), %rsi
callq 0x110230
leaq -0x31(%rbp), %rdi
movq %rdi, -0x620(%rbp)
callq 0xab60
movq -0x620(%rbp), %rdx
leaq 0x2d93e(%rip), %rsi     # 0x13ac8a
leaq -0x30(%rbp), %rdi
callq 0x2d6c0
jmp 0x10d357
leaq -0x31(%rbp), %rdi
callq 0xa640
leaq -0x69(%rbp), %rdi
movq %rdi, -0x628(%rbp)
callq 0xab60
movq -0x628(%rbp), %rdx
leaq 0x2d910(%rip), %rsi     # 0x13ac8e
leaq -0x68(%rbp), %rdi
callq 0x2d6c0
jmp 0x10d389
leaq -0x69(%rbp), %rdi
callq 0xa640
leaq -0x90(%rbp), %rdi
callq 0xa820
leaq 0x8e0eb(%rip), %rdi     # 0x19b490
callq 0xa220
movq %rax, -0x638(%rbp)
leaq -0xb9(%rbp), %rdi
movq %rdi, -0x630(%rbp)
callq 0xab60
movq -0x638(%rbp), %rsi
movq -0x630(%rbp), %rdx
leaq -0xb8(%rbp), %rdi
callq 0x2d6c0
jmp 0x10d3e0
leaq -0xb8(%rbp), %rdi
movl $0x8, %esi
callq 0x80e30
movq %rax, -0x640(%rbp)
jmp 0x10d3fa
leaq -0xb8(%rbp), %rdi
callq 0xac88
leaq -0xb9(%rbp), %rdi
callq 0xa640
movq -0x640(%rbp), %rax
movq %rax, -0x98(%rbp)
leaq 0x8e089(%rip), %rdi     # 0x19b4b0
callq 0xa220
movq %rax, -0x650(%rbp)
leaq -0xe9(%rbp), %rdi
movq %rdi, -0x648(%rbp)
callq 0xab60
movq -0x650(%rbp), %rsi
movq -0x648(%rbp), %rdx
leaq -0xe8(%rbp), %rdi
callq 0x2d6c0
jmp 0x10d462
leaq -0xe8(%rbp), %rdi
movl $0x8, %esi
callq 0x80e30
movq %rax, -0x658(%rbp)
jmp 0x10d47c
leaq -0xe8(%rbp), %rdi
callq 0xac88
leaq -0xe9(%rbp), %rdi
callq 0xa640
movq -0x658(%rbp), %rax
movq %rax, -0xc8(%rbp)
movl $0x208, %edi            # imm = 0x208
callq 0xa5d0
movq %rax, -0x660(%rbp)
jmp 0x10d4b5
leaq 0x8e014(%rip), %rdi     # 0x19b4d0
callq 0xa220
movq -0x660(%rbp), %rdi
movq %rax, %rsi
movl $0x8, %edx
callq 0xab90
jmp 0x10d4d7
movq -0x660(%rbp), %rax
movq %rax, -0xf8(%rbp)
movl $0x208, %edi            # imm = 0x208
callq 0xa5d0
movq %rax, -0x668(%rbp)
jmp 0x10d4f8
leaq 0x8dff1(%rip), %rdi     # 0x19b4f0
callq 0xa220
movq -0x668(%rbp), %rdi
movq %rax, %rsi
movl $0x8, %edx
callq 0xab90
jmp 0x10d51a
movq -0x668(%rbp), %rax
movq %rax, -0x100(%rbp)
leaq 0x8e001(%rip), %rsi     # 0x19b530
leaq 0x3f906(%rip), %rdx     # 0x14ce3c
leaq -0x120(%rbp), %rdi
callq 0x3da80
jmp 0x10d544
movl $0x200, %edi            # imm = 0x200
callq 0xa5d0
movq %rax, -0x670(%rbp)
jmp 0x10d557
leaq -0x120(%rbp), %rdi
callq 0xa220
movq -0x670(%rbp), %rdi
movq %rax, %rsi
movl $0x10, %edx
callq 0xa650
jmp 0x10d579
movq -0x670(%rbp), %rax
movq %rax, -0x128(%rbp)
leaq -0x148(%rbp), %rdi
movq %rdi, -0x678(%rbp)
callq 0xa820
leaq -0x168(%rbp), %rdi
callq 0xa820
movq -0x678(%rbp), %rdi
movl $0x2faf080, %esi        # imm = 0x2FAF080
callq 0xa980
jmp 0x10d5b9
leaq -0x168(%rbp), %rdi
movl $0x2faf080, %esi        # imm = 0x2FAF080
callq 0xa980
jmp 0x10d5cc
movq -0xf8(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0xa0d0
jmp 0x10d5e1
leaq -0x188(%rbp), %rdi
leaq -0x90(%rbp), %rsi
movl $0x1, %edx
movq $-0x1, %rcx
callq 0xa5f0
jmp 0x10d602
movq -0x100(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0xa0d0
jmp 0x10d617
leaq -0x1a8(%rbp), %rdi
leaq -0x90(%rbp), %rsi
movl $0x1, %edx
movq $-0x1, %rcx
callq 0xa5f0
jmp 0x10d638
leaq -0x188(%rbp), %rdi
leaq -0x1a8(%rbp), %rsi
callq 0x39210
testb $0x1, %al
jne 0x10d651
jmp 0x10d656
jmp 0x10d7c1
leaq 0x3f7ee(%rip), %rdi     # 0x14ce4b
leaq 0x3f7fa(%rip), %rsi     # 0x14ce5e
movl $0x3f, %edx
leaq 0x3f802(%rip), %rcx     # 0x14ce72
callq 0xa390
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x31(%rbp), %rdi
callq 0xa640
jmp 0x11021f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x69(%rbp), %rdi
callq 0xa640
jmp 0x110216
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x10d6cf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0xb8(%rbp), %rdi
callq 0xac88
leaq -0xb9(%rbp), %rdi
callq 0xa640
jmp 0x110201
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x10d706
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0xe8(%rbp), %rdi
callq 0xac88
leaq -0xe9(%rbp), %rdi
callq 0xa640
jmp 0x110201
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x110201
movq -0x660(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
movl $0x208, %esi            # imm = 0x208
callq 0xa5e0
jmp 0x110201
movq -0x668(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
movl $0x208, %esi            # imm = 0x208
callq 0xa5e0
jmp 0x110201
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x1101f5
movq -0x670(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
movl $0x200, %esi            # imm = 0x200
callq 0xa5e0
jmp 0x1101f5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x1101dd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x1101d1
jmp 0x10d7c3
movq -0xf8(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0xa0d0
movq %rax, -0x680(%rbp)
jmp 0x10d7df
movq -0x680(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0xa740
movb %al, -0x681(%rbp)
jmp 0x10d7fd
movb -0x681(%rbp), %al
testb $0x1, %al
jne 0x10d809
jmp 0x10d831
leaq -0x148(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0xac20
jmp 0x10d81e
jmp 0x10d7c3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x1101c5
jmp 0x10d833
movq -0x100(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0xa0d0
movq %rax, -0x690(%rbp)
jmp 0x10d84f
movq -0x690(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0xa740
movb %al, -0x691(%rbp)
jmp 0x10d86d
movb -0x691(%rbp), %al
testb $0x1, %al
jne 0x10d879
jmp 0x10d890
leaq -0x168(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0xac20
jmp 0x10d88e
jmp 0x10d833
leaq -0x188(%rbp), %rdi
callq 0xa930
movq %rax, -0x6a0(%rbp)
leaq -0x1a8(%rbp), %rdi
callq 0xa930
movq %rax, %rcx
movq -0x6a0(%rbp), %rax
cmpq %rcx, %rax
jne 0x10d8c0
jmp 0x10d8df
leaq 0x3f5c9(%rip), %rdi     # 0x14ce90
leaq 0x3f590(%rip), %rsi     # 0x14ce5e
movl $0x43, %edx
leaq 0x3f598(%rip), %rcx     # 0x14ce72
callq 0xa390
leaq -0x148(%rbp), %rdi
movq %rdi, -0x6b0(%rbp)
callq 0xa4f0
movq -0x6b0(%rbp), %rdi
movq %rax, -0x1b0(%rbp)
callq 0xa330
movq -0x6b0(%rbp), %rdi
movq %rax, -0x1b8(%rbp)
callq 0xa4f0
movq %rax, -0x1c0(%rbp)
movq -0x1b0(%rbp), %rdi
movq -0x1b8(%rbp), %rsi
movq -0x1c0(%rbp), %rdx
movq 0x8b69d(%rip), %rcx     # 0x198fd8
callq 0x110580
movq %rax, -0x6a8(%rbp)
jmp 0x10d949
movq -0x6a8(%rbp), %rax
movq %rax, -0x1c8(%rbp)
leaq -0x168(%rbp), %rdi
movq %rdi, -0x6c0(%rbp)
callq 0xa4f0
movq -0x6c0(%rbp), %rdi
movq %rax, -0x1d0(%rbp)
callq 0xa330
movq -0x6c0(%rbp), %rdi
movq %rax, -0x1d8(%rbp)
callq 0xa4f0
movq %rax, -0x1e0(%rbp)
movq -0x1d0(%rbp), %rdi
movq -0x1d8(%rbp), %rsi
movq -0x1e0(%rbp), %rdx
movq 0x8b625(%rip), %rcx     # 0x198fd8
callq 0x110580
movq %rax, -0x6b8(%rbp)
jmp 0x10d9c1
movq -0x6b8(%rbp), %rax
movq %rax, -0x1e8(%rbp)
leaq -0x218(%rbp), %rdi
callq 0x3d7b0
leaq -0x248(%rbp), %rdi
callq 0x3d7b0
leaq -0x260(%rbp), %rdi
callq 0x48da0
leaq -0x278(%rbp), %rdi
callq 0x48da0
leaq -0x290(%rbp), %rdi
callq 0x48da0
leaq -0x2a8(%rbp), %rdi
callq 0x48da0
leaq -0x2c0(%rbp), %rdi
callq 0x48da0
movq -0x98(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0xa0d0
movq %rax, -0x6c8(%rbp)
jmp 0x10da3f
movq -0x6c8(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0xa740
movb %al, -0x6c9(%rbp)
jmp 0x10da5d
movb -0x6c9(%rbp), %al
testb $0x1, %al
jne 0x10da6c
jmp 0x10dcaa
xorl %eax, %eax
movl %eax, %esi
leaq -0x90(%rbp), %rdi
callq 0xac60
movq %rax, -0x6d8(%rbp)
jmp 0x10da85
movq -0x6d8(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x23, %eax
jne 0x10dae8
leaq -0x90(%rbp), %rdi
movl $0x1, %esi
callq 0xac60
movq %rax, -0x6e0(%rbp)
jmp 0x10daae
movq -0x6e0(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x23, %eax
jne 0x10dae8
leaq -0x260(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0x48dc0
jmp 0x10dad2
jmp 0x10dca5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x110171
xorl %eax, %eax
movl %eax, %esi
leaq -0x90(%rbp), %rdi
callq 0xac60
movq %rax, -0x6e8(%rbp)
jmp 0x10db01
movq -0x6e8(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x23, %eax
jne 0x10dc02
leaq -0x90(%rbp), %rdi
movl $0x1, %esi
callq 0xac60
movq %rax, -0x6f0(%rbp)
jmp 0x10db2e
movq -0x6f0(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x43, %eax
jne 0x10dc02
leaq -0x260(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0x48dc0
jmp 0x10db56
leaq -0x2d8(%rbp), %rdi
leaq -0x90(%rbp), %rsi
movl $0x9, %edx
callq 0x7bbe0
jmp 0x10db70
leaq -0x2c0(%rbp), %rdi
leaq -0x2d8(%rbp), %rsi
callq 0x50c30
leaq -0x2d8(%rbp), %rdi
callq 0x3dfa0
movq $0x9, -0x2e0(%rbp)
movq -0x2e0(%rbp), %rax
movq %rax, -0x6f8(%rbp)
leaq -0x2c0(%rbp), %rdi
callq 0x3ffd0
movq %rax, %rcx
movq -0x6f8(%rbp), %rax
cmpq %rcx, %rax
je 0x10dbfd
movq -0x2e0(%rbp), %rsi
leaq -0x2c0(%rbp), %rdi
callq 0x3d940
movq %rax, %rsi
leaq -0x290(%rbp), %rdi
callq 0x48dc0
jmp 0x10dbe7
jmp 0x10dbe9
movq -0x2e0(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x2e0(%rbp)
jmp 0x10db9a
jmp 0x10dca3
leaq -0x2f8(%rbp), %rdi
leaq -0x90(%rbp), %rsi
movl $0x9, %edx
callq 0x7bbe0
jmp 0x10dc1c
leaq -0x2c0(%rbp), %rdi
movq %rdi, -0x708(%rbp)
leaq -0x2f8(%rbp), %rsi
movq %rsi, -0x710(%rbp)
callq 0x50c30
movq -0x710(%rbp), %rdi
callq 0x3dfa0
movq -0x708(%rbp), %rdi
movl $0x1, %esi
callq 0x3d940
movq %rax, %rdi
callq 0xa220
movq %rax, %rdi
callq 0xa970
movl %eax, -0x2fc(%rbp)
leaq -0x218(%rbp), %rdi
leaq -0x2fc(%rbp), %rsi
callq 0x3f680
movq %rax, -0x700(%rbp)
jmp 0x10dc8c
movq -0x700(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0xa060
jmp 0x10dca1
jmp 0x10dca3
jmp 0x10dca5
jmp 0x10da23
jmp 0x10dcac
movq -0xc8(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0xa0d0
movq %rax, -0x718(%rbp)
jmp 0x10dcc8
movq -0x718(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0xa740
movb %al, -0x719(%rbp)
jmp 0x10dce6
movb -0x719(%rbp), %al
testb $0x1, %al
jne 0x10dcf5
jmp 0x10df22
xorl %eax, %eax
movl %eax, %esi
leaq -0x90(%rbp), %rdi
callq 0xac60
movq %rax, -0x728(%rbp)
jmp 0x10dd0e
movq -0x728(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x23, %eax
jne 0x10dd60
leaq -0x90(%rbp), %rdi
movl $0x1, %esi
callq 0xac60
movq %rax, -0x730(%rbp)
jmp 0x10dd37
movq -0x730(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x23, %eax
jne 0x10dd60
leaq -0x278(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0x48dc0
jmp 0x10dd5b
jmp 0x10df1d
xorl %eax, %eax
movl %eax, %esi
leaq -0x90(%rbp), %rdi
callq 0xac60
movq %rax, -0x738(%rbp)
jmp 0x10dd79
movq -0x738(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x23, %eax
jne 0x10de7a
leaq -0x90(%rbp), %rdi
movl $0x1, %esi
callq 0xac60
movq %rax, -0x740(%rbp)
jmp 0x10dda6
movq -0x740(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x43, %eax
jne 0x10de7a
leaq -0x278(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0x48dc0
jmp 0x10ddce
leaq -0x318(%rbp), %rdi
leaq -0x90(%rbp), %rsi
movl $0x9, %edx
callq 0x7bbe0
jmp 0x10dde8
leaq -0x2c0(%rbp), %rdi
leaq -0x318(%rbp), %rsi
callq 0x50c30
leaq -0x318(%rbp), %rdi
callq 0x3dfa0
movq $0x9, -0x320(%rbp)
movq -0x320(%rbp), %rax
movq %rax, -0x748(%rbp)
leaq -0x2c0(%rbp), %rdi
callq 0x3ffd0
movq %rax, %rcx
movq -0x748(%rbp), %rax
cmpq %rcx, %rax
je 0x10de75
movq -0x320(%rbp), %rsi
leaq -0x2c0(%rbp), %rdi
callq 0x3d940
movq %rax, %rsi
leaq -0x2a8(%rbp), %rdi
callq 0x48dc0
jmp 0x10de5f
jmp 0x10de61
movq -0x320(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x320(%rbp)
jmp 0x10de12
jmp 0x10df1b
leaq -0x338(%rbp), %rdi
leaq -0x90(%rbp), %rsi
movl $0x9, %edx
callq 0x7bbe0
jmp 0x10de94
leaq -0x2c0(%rbp), %rdi
movq %rdi, -0x758(%rbp)
leaq -0x338(%rbp), %rsi
movq %rsi, -0x760(%rbp)
callq 0x50c30
movq -0x760(%rbp), %rdi
callq 0x3dfa0
movq -0x758(%rbp), %rdi
movl $0x1, %esi
callq 0x3d940
movq %rax, %rdi
callq 0xa220
movq %rax, %rdi
callq 0xa970
movl %eax, -0x33c(%rbp)
leaq -0x248(%rbp), %rdi
leaq -0x33c(%rbp), %rsi
callq 0x3f680
movq %rax, -0x750(%rbp)
jmp 0x10df04
movq -0x750(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0xa060
jmp 0x10df19
jmp 0x10df1b
jmp 0x10df1d
jmp 0x10dcac
movl $0x208, %edi            # imm = 0x208
callq 0xa5d0
movq %rax, -0x768(%rbp)
jmp 0x10df35
leaq 0x8d5d4(%rip), %rdi     # 0x19b510
callq 0xa220
movq -0x768(%rbp), %rdi
movq %rax, %rsi
movl $0x8, %edx
callq 0xab90
jmp 0x10df57
movq -0x768(%rbp), %rax
movq %rax, -0x348(%rbp)
movq 0x8b084(%rip), %rdi     # 0x198ff0
leaq 0x3ef42(%rip), %rsi     # 0x14ceb5
callq 0xa5c0
movq %rax, -0x770(%rbp)
jmp 0x10df81
movq -0x770(%rbp), %rdi
movq 0x8aff9(%rip), %rsi     # 0x198f88
callq 0xa610
jmp 0x10df96
movl $0x38, %edi
callq 0xa5d0
movq %rax, -0x778(%rbp)
jmp 0x10dfa9
movq -0x778(%rbp), %rdi
leaq -0x348(%rbp), %rsi
callq 0x6aa00
jmp 0x10dfbe
movq -0x778(%rbp), %rax
movq %rax, -0x350(%rbp)
leaq -0x148(%rbp), %rdi
callq 0xa930
movq %rax, -0x788(%rbp)
movb $0x0, -0x379(%rbp)
leaq -0x37a(%rbp), %rdi
movq %rdi, -0x780(%rbp)
callq 0x84110
movq -0x788(%rbp), %rsi
movq -0x780(%rbp), %rcx
leaq -0x378(%rbp), %rdi
leaq -0x379(%rbp), %rdx
callq 0x84130
jmp 0x10e01c
leaq -0x37a(%rbp), %rdi
callq 0x841a0
movq -0x350(%rbp), %rdi
addq $0x8, %rdi
leaq -0x188(%rbp), %rsi
callq 0x703f0
movq %rax, -0x790(%rbp)
jmp 0x10e048
movq -0x790(%rbp), %rsi
leaq -0x398(%rbp), %rdi
callq 0x70490
jmp 0x10e05d
movl $0x0, -0x39c(%rbp)
movslq -0x39c(%rbp), %rax
movq %rax, -0x798(%rbp)
leaq -0x398(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x705d0
movq %rax, %rdi
callq 0x467f0
movq %rax, %rcx
movq -0x798(%rbp), %rax
cmpq %rcx, %rax
jae 0x10e201
leaq -0x398(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x705d0
movq %rax, %rdi
movslq -0x39c(%rbp), %rsi
callq 0x4d100
movl (%rax), %eax
movl %eax, -0x3a0(%rbp)
movl -0x3a0(%rbp), %eax
movl %eax, -0x79c(%rbp)
leaq -0x398(%rbp), %rdi
movl $0x1, %esi
callq 0x705d0
movq %rax, %rdi
movslq -0x39c(%rbp), %rsi
callq 0x4d100
movq %rax, %rcx
movl -0x79c(%rbp), %eax
cmpl (%rcx), %eax
jge 0x10e1eb
movslq -0x3a0(%rbp), %rsi
leaq -0x378(%rbp), %rdi
callq 0x83940
movq %rdx, -0x7b0(%rbp)
movq %rax, -0x7a8(%rbp)
jmp 0x10e127
movq -0x7b0(%rbp), %rax
movq -0x7a8(%rbp), %rcx
movq %rcx, -0x3b0(%rbp)
movq %rax, -0x3a8(%rbp)
leaq -0x3b0(%rbp), %rdi
movl $0x1, %esi
callq 0x480d0
movl -0x3a0(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3a0(%rbp)
jmp 0x10e0c7
movq -0x768(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
movl $0x208, %esi            # imm = 0x208
callq 0xa5e0
jmp 0x110171
movq -0x778(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
movl $0x38, %esi
callq 0xa5e0
jmp 0x110171
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x37a(%rbp), %rdi
callq 0x841a0
jmp 0x110171
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x110165
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x110159
jmp 0x10e1ed
movl -0x39c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x39c(%rbp)
jmp 0x10e067
movq 0x8ade8(%rip), %rdi     # 0x198ff0
leaq 0x240e0(%rip), %rsi     # 0x1322ef
callq 0xa5c0
movq %rax, -0x7b8(%rbp)
jmp 0x10e21d
movq -0x7b8(%rbp), %rdi
movq 0x8ad5d(%rip), %rsi     # 0x198f88
callq 0xa610
jmp 0x10e232
xorl %eax, %eax
movl %eax, %esi
leaq -0x260(%rbp), %rdi
callq 0x3d940
movq %rax, %rsi
movq 0x8ad6c(%rip), %rdi     # 0x198fb8
callq 0xa520
movq %rax, -0x7c0(%rbp)
jmp 0x10e25a
movq -0x7c0(%rbp), %rdi
movq 0x8ad20(%rip), %rsi     # 0x198f88
callq 0xa610
jmp 0x10e26f
leaq -0x260(%rbp), %rdi
movl $0x1, %esi
callq 0x3d940
movq %rax, %rsi
movq 0x8ad2e(%rip), %rdi     # 0x198fb8
callq 0xa520
movq %rax, -0x7c8(%rbp)
jmp 0x10e298
movq -0x7c8(%rbp), %rdi
movq 0x8ace2(%rip), %rsi     # 0x198f88
callq 0xa610
jmp 0x10e2ad
leaq -0x260(%rbp), %rdi
movl $0x2, %esi
callq 0x3d940
movq %rax, %rsi
movq 0x8acf0(%rip), %rdi     # 0x198fb8
callq 0xa520
movq %rax, -0x7d0(%rbp)
jmp 0x10e2d6
movq -0x7d0(%rbp), %rdi
movq 0x8aca4(%rip), %rsi     # 0x198f88
callq 0xa610
jmp 0x10e2eb
leaq -0x260(%rbp), %rdi
callq 0x5fcc0
movq %rax, %rsi
movq 0x8acb7(%rip), %rdi     # 0x198fb8
callq 0xa520
movq %rax, -0x7d8(%rbp)
jmp 0x10e30f
movq -0x7d8(%rbp), %rdi
leaq 0x27bc1(%rip), %rsi     # 0x135ede
callq 0xa5c0
jmp 0x10e324
leaq -0x3c8(%rbp), %rdi
leaq -0x2a8(%rbp), %rsi
callq 0x3fee0
jmp 0x10e339
movq 0x8ac78(%rip), %rsi     # 0x198fb8
leaq -0x3c8(%rbp), %rdi
movl $0x9, %edx
movl $0x1, %ecx
callq 0x50da0
jmp 0x10e358
leaq -0x3c8(%rbp), %rdi
callq 0x3dfa0
movl $0x0, -0x3cc(%rbp)
movl $0x0, -0x3d0(%rbp)
movl $0x0, -0x3d4(%rbp)
movl $0x0, -0x3d8(%rbp)
movl $0x0, -0x3dc(%rbp)
movl $0x0, -0x3e0(%rbp)
movl $0x0, -0x3e4(%rbp)
movl $0x0, -0x3e8(%rbp)
movq 0x8ac35(%rip), %rdi     # 0x198ff0
leaq 0x3eb1d(%rip), %rsi     # 0x14cedf
callq 0xa5c0
movq %rax, -0x7e0(%rbp)
jmp 0x10e3d0
leaq -0x148(%rbp), %rdi
callq 0xa930
movq -0x7e0(%rbp), %rdi
movq %rax, %rsi
callq 0xa140
movq %rax, -0x7e8(%rbp)
jmp 0x10e3f4
movq -0x7e8(%rbp), %rdi
movq 0x8ab86(%rip), %rsi     # 0x198f88
callq 0xa610
jmp 0x10e409
movl $0x0, -0x3ec(%rbp)
movslq -0x3ec(%rbp), %rax
movq %rax, -0x7f0(%rbp)
leaq -0x148(%rbp), %rdi
callq 0xa930
movq %rax, %rcx
movq -0x7f0(%rbp), %rax
cmpq %rcx, %rax
jae 0x10fc50
movl -0x3ec(%rbp), %eax
incl %eax
movl %eax, -0x3f0(%rbp)
movslq -0x3ec(%rbp), %rsi
leaq -0x378(%rbp), %rdi
callq 0x83940
movq %rdx, -0x800(%rbp)
movq %rax, -0x7f8(%rbp)
jmp 0x10e471
movq -0x800(%rbp), %rax
movq -0x7f8(%rbp), %rcx
movq %rcx, -0x400(%rbp)
movq %rax, -0x3f8(%rbp)
leaq -0x400(%rbp), %rdi
callq 0x481b0
andb $0x1, %al
movzbl %al, %eax
cmpl $0x1, %eax
jne 0x10e4d4
movl -0x3cc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3cc(%rbp)
jmp 0x10fc3c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x3c8(%rbp), %rdi
callq 0x3dfa0
jmp 0x110159
movslq -0x3ec(%rbp), %rsi
leaq -0x148(%rbp), %rdi
callq 0xac60
movq %rax, -0x808(%rbp)
jmp 0x10e4f0
movq -0x808(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x4e, %eax
je 0x10e52e
movslq -0x3ec(%rbp), %rsi
leaq -0x168(%rbp), %rdi
callq 0xac60
movq %rax, -0x810(%rbp)
jmp 0x10e51b
movq -0x810(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x4e, %eax
jne 0x10e5e3
movq -0x128(%rbp), %rdi
leaq -0x188(%rbp), %rsi
callq 0xa520
movq %rax, -0x818(%rbp)
jmp 0x10e54a
movq -0x818(%rbp), %rdi
leaq 0x27986(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x820(%rbp)
jmp 0x10e566
movq -0x820(%rbp), %rdi
movl -0x3ec(%rbp), %esi
callq 0xab20
movq %rax, -0x828(%rbp)
jmp 0x10e581
movq -0x828(%rbp), %rdi
leaq 0x2794f(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x830(%rbp)
jmp 0x10e59d
movq -0x830(%rbp), %rdi
movl -0x3ec(%rbp), %esi
incl %esi
callq 0xab20
movq %rax, -0x838(%rbp)
jmp 0x10e5ba
movq -0x838(%rbp), %rdi
movq 0x8a9c0(%rip), %rsi     # 0x198f88
callq 0xa610
jmp 0x10e5cf
movl -0x3d0(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3d0(%rbp)
jmp 0x10fc3c
movslq -0x3ec(%rbp), %rsi
leaq -0x148(%rbp), %rdi
callq 0xac60
movq %rax, -0x840(%rbp)
jmp 0x10e5ff
movq -0x840(%rbp), %rax
movsbl (%rax), %eax
movl %eax, -0x84c(%rbp)
movslq -0x3ec(%rbp), %rsi
leaq -0x168(%rbp), %rdi
callq 0xac60
movq %rax, -0x848(%rbp)
jmp 0x10e62b
movl -0x84c(%rbp), %eax
movq -0x848(%rbp), %rcx
movsbl (%rcx), %ecx
cmpl %ecx, %eax
jne 0x10efc9
leaq -0x218(%rbp), %rdi
leaq -0x3f0(%rbp), %rsi
callq 0x110600
movq %rax, -0x858(%rbp)
jmp 0x10e65f
movq -0x858(%rbp), %rax
cmpq $0x0, %rax
jne 0x10e6a9
leaq -0x248(%rbp), %rdi
leaq -0x3f0(%rbp), %rsi
callq 0x110600
movq %rax, -0x860(%rbp)
jmp 0x10e688
movq -0x860(%rbp), %rax
cmpq $0x0, %rax
jne 0x10e6a9
movl -0x3d4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3d4(%rbp)
jmp 0x10fc3c
leaq -0x218(%rbp), %rdi
leaq -0x3f0(%rbp), %rsi
callq 0x110600
movq %rax, -0x868(%rbp)
jmp 0x10e6c5
movq -0x868(%rbp), %rax
cmpq $0x1, %rax
jne 0x10ebbf
leaq -0x248(%rbp), %rdi
leaq -0x3f0(%rbp), %rsi
callq 0x110600
movq %rax, -0x870(%rbp)
jmp 0x10e6f2
movq -0x870(%rbp), %rax
cmpq $0x0, %rax
jne 0x10e7cc
leaq -0x218(%rbp), %rdi
leaq -0x3f0(%rbp), %rsi
callq 0x3e450
movq %rax, -0x878(%rbp)
jmp 0x10e71f
movq -0x878(%rbp), %rsi
movq 0x8a88b(%rip), %rdi     # 0x198fb8
callq 0xa520
jmp 0x10e734
movl $0x0, -0x404(%rbp)
movslq -0x404(%rbp), %rax
movq %rax, -0x880(%rbp)
leaq -0x2a8(%rbp), %rdi
callq 0x3ffd0
movq %rax, %rcx
movq -0x880(%rbp), %rax
cmpq %rcx, %rax
jae 0x10e7a8
movq 0x8a84a(%rip), %rdi     # 0x198fb8
leaq 0x27769(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x888(%rbp)
jmp 0x10e783
movq -0x888(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0xa520
jmp 0x10e795
jmp 0x10e797
movl -0x404(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x404(%rbp)
jmp 0x10e73e
movq 0x8a809(%rip), %rdi     # 0x198fb8
movq 0x8a7d2(%rip), %rsi     # 0x198f88
callq 0xa610
jmp 0x10e7bd
movl -0x3dc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3dc(%rbp)
leaq -0x248(%rbp), %rdi
leaq -0x3f0(%rbp), %rsi
callq 0x110600
movq %rax, -0x890(%rbp)
jmp 0x10e7e8
movq -0x890(%rbp), %rax
cmpq $0x1, %rax
jne 0x10ebba
leaq -0x218(%rbp), %rdi
leaq -0x3f0(%rbp), %rsi
callq 0x3e450
movq %rax, -0x898(%rbp)
jmp 0x10e815
movq -0x898(%rbp), %rsi
leaq -0x420(%rbp), %rdi
movl $0x9, %edx
callq 0x7bbe0
jmp 0x10e82f
leaq -0x2c0(%rbp), %rdi
movq %rdi, -0x8a8(%rbp)
leaq -0x420(%rbp), %rsi
movq %rsi, -0x8b0(%rbp)
callq 0x50c30
movq -0x8b0(%rbp), %rdi
callq 0x3dfa0
movq -0x8a8(%rbp), %rdi
movl $0x4, %esi
callq 0x3d940
movq %rax, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0xac60
movq %rax, -0x8a0(%rbp)
jmp 0x10e882
movq -0x8a0(%rbp), %rax
movb (%rax), %al
movb %al, -0x421(%rbp)
leaq -0x248(%rbp), %rdi
leaq -0x3f0(%rbp), %rsi
callq 0x3e450
movq %rax, -0x8b8(%rbp)
jmp 0x10e8ad
movq -0x8b8(%rbp), %rsi
leaq -0x440(%rbp), %rdi
movl $0x9, %edx
callq 0x7bbe0
jmp 0x10e8c7
leaq -0x2c0(%rbp), %rdi
movq %rdi, -0x8c8(%rbp)
leaq -0x440(%rbp), %rsi
movq %rsi, -0x8d0(%rbp)
callq 0x50c30
movq -0x8d0(%rbp), %rdi
callq 0x3dfa0
movq -0x8c8(%rbp), %rdi
movl $0x3, %esi
callq 0x3d940
movq %rax, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0xac60
movq %rax, -0x8c0(%rbp)
jmp 0x10e91a
movq -0x8c0(%rbp), %rax
movb (%rax), %al
movb %al, -0x441(%rbp)
leaq -0x2c0(%rbp), %rdi
movl $0x4, %esi
callq 0x3d940
movq %rax, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0xac60
movq %rax, -0x8d8(%rbp)
jmp 0x10e94f
movq -0x8d8(%rbp), %rax
movb (%rax), %al
movb %al, -0x442(%rbp)
movsbl -0x441(%rbp), %eax
movl %eax, -0x8e4(%rbp)
movslq -0x3ec(%rbp), %rsi
leaq -0x168(%rbp), %rdi
callq 0xac60
movq %rax, -0x8e0(%rbp)
jmp 0x10e987
movl -0x8e4(%rbp), %eax
movq -0x8e0(%rbp), %rcx
movsbl (%rcx), %ecx
cmpl %ecx, %eax
je 0x10ea0e
movsbl -0x441(%rbp), %edi
callq 0x8e8b0
movb %al, -0x8e5(%rbp)
jmp 0x10e9af
movb -0x8e5(%rbp), %al
movsbl %al, %eax
movl %eax, -0x8f4(%rbp)
movslq -0x3ec(%rbp), %rsi
leaq -0x168(%rbp), %rdi
callq 0xac60
movq %rax, -0x8f0(%rbp)
jmp 0x10e9da
movl -0x8f4(%rbp), %eax
movq -0x8f0(%rbp), %rcx
movsbl (%rcx), %ecx
cmpl %ecx, %eax
jne 0x10ea0e
movsbl -0x442(%rbp), %edi
callq 0x8e8b0
movb %al, -0x8f5(%rbp)
jmp 0x10ea02
movb -0x8f5(%rbp), %al
movb %al, -0x442(%rbp)
movsbl -0x421(%rbp), %eax
movsbl -0x442(%rbp), %ecx
cmpl %ecx, %eax
jne 0x10eba9
leaq -0x2c0(%rbp), %rdi
movq %rdi, -0x908(%rbp)
callq 0x44030
movq %rax, -0x470(%rbp)
leaq -0x470(%rbp), %rdi
movl $0x9, %esi
callq 0x44390
movq -0x908(%rbp), %rdi
movq %rax, -0x468(%rbp)
callq 0x44060
movq %rax, -0x478(%rbp)
leaq -0x479(%rbp), %rdi
movq %rdi, -0x900(%rbp)
callq 0x48e80
movq -0x900(%rbp), %rcx
movq -0x468(%rbp), %rsi
movq -0x478(%rbp), %rdx
leaq -0x460(%rbp), %rdi
callq 0xc6600
jmp 0x10ea9f
leaq -0x479(%rbp), %rdi
callq 0x40090
leaq -0x218(%rbp), %rdi
leaq -0x3f0(%rbp), %rsi
callq 0x3e450
movq %rax, -0x910(%rbp)
jmp 0x10eac7
movq -0x910(%rbp), %rsi
movq 0x8a4e3(%rip), %rdi     # 0x198fb8
callq 0xa520
movq %rax, -0x918(%rbp)
jmp 0x10eae3
movq -0x918(%rbp), %rdi
leaq 0x273ed(%rip), %rsi     # 0x135ede
callq 0xa5c0
jmp 0x10eaf8
leaq -0x498(%rbp), %rdi
leaq -0x460(%rbp), %rsi
callq 0x3fee0
jmp 0x10eb0d
movq 0x8a4a4(%rip), %rsi     # 0x198fb8
leaq -0x498(%rbp), %rdi
movl $0x9, %edx
movl $0x1, %ecx
callq 0x50da0
jmp 0x10eb2c
leaq -0x498(%rbp), %rdi
callq 0x3dfa0
movl -0x3e4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3e4(%rbp)
leaq -0x460(%rbp), %rdi
callq 0x3dfa0
jmp 0x10ebb8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x479(%rbp), %rdi
callq 0x40090
jmp 0x110159
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x10eb98
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x498(%rbp), %rdi
callq 0x3dfa0
leaq -0x460(%rbp), %rdi
callq 0x3dfa0
jmp 0x110159
movl -0x3d8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3d8(%rbp)
jmp 0x10ebba
jmp 0x10efc2
leaq -0x248(%rbp), %rdi
leaq -0x3f0(%rbp), %rsi
callq 0x110600
movq %rax, -0x920(%rbp)
jmp 0x10ebdb
movq -0x920(%rbp), %rax
cmpq $0x1, %rax
jne 0x10efc0
leaq -0x248(%rbp), %rdi
leaq -0x3f0(%rbp), %rsi
callq 0x3e450
movq %rax, -0x928(%rbp)
jmp 0x10ec08
movq -0x928(%rbp), %rsi
leaq -0x4b0(%rbp), %rdi
movl $0x9, %edx
callq 0x7bbe0
jmp 0x10ec22
leaq -0x2c0(%rbp), %rdi
movq %rdi, -0x938(%rbp)
leaq -0x4b0(%rbp), %rsi
movq %rsi, -0x940(%rbp)
callq 0x50c30
movq -0x940(%rbp), %rdi
callq 0x3dfa0
movq -0x938(%rbp), %rdi
movl $0x3, %esi
callq 0x3d940
movq %rax, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0xac60
movq %rax, -0x930(%rbp)
jmp 0x10ec75
movq -0x930(%rbp), %rax
movsbl (%rax), %eax
movl %eax, -0x94c(%rbp)
movslq -0x3ec(%rbp), %rsi
leaq -0x168(%rbp), %rdi
callq 0xac60
movq %rax, -0x948(%rbp)
jmp 0x10eca1
movl -0x94c(%rbp), %eax
movq -0x948(%rbp), %rcx
movsbl (%rcx), %ecx
cmpl %ecx, %eax
je 0x10eda7
leaq -0x2c0(%rbp), %rdi
movl $0x3, %esi
callq 0x3d940
movq %rax, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0xac60
movq %rax, -0x958(%rbp)
jmp 0x10ecdf
movq -0x958(%rbp), %rax
movsbl (%rax), %edi
callq 0x8e8b0
movb %al, -0x959(%rbp)
jmp 0x10ecf6
movb -0x959(%rbp), %al
movsbl %al, %eax
movl %eax, -0x96c(%rbp)
movslq -0x3ec(%rbp), %rsi
leaq -0x168(%rbp), %rdi
callq 0xac60
movq %rax, -0x968(%rbp)
jmp 0x10ed21
movl -0x96c(%rbp), %eax
movq -0x968(%rbp), %rcx
movsbl (%rcx), %ecx
cmpl %ecx, %eax
jne 0x10eda7
leaq -0x2c0(%rbp), %rdi
movl $0x3, %esi
callq 0x3d940
movq %rax, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0xac60
movq %rax, -0x978(%rbp)
jmp 0x10ed5b
movq -0x978(%rbp), %rax
movsbl (%rax), %edi
callq 0x8e8b0
movb %al, -0x979(%rbp)
jmp 0x10ed72
leaq -0x2c0(%rbp), %rdi
movl $0x3, %esi
callq 0x3d940
movq %rax, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0xac60
movq %rax, -0x988(%rbp)
jmp 0x10ed98
movq -0x988(%rbp), %rax
movb -0x979(%rbp), %cl
movb %cl, (%rax)
leaq -0x2c0(%rbp), %rdi
movq %rdi, -0x998(%rbp)
callq 0x44030
movq %rax, -0x4d8(%rbp)
leaq -0x4d8(%rbp), %rdi
movl $0x9, %esi
callq 0x44390
movq -0x998(%rbp), %rdi
movq %rax, -0x4d0(%rbp)
callq 0x44060
movq %rax, -0x4e0(%rbp)
leaq -0x4e1(%rbp), %rdi
movq %rdi, -0x990(%rbp)
callq 0x48e80
movq -0x990(%rbp), %rcx
movq -0x4d0(%rbp), %rsi
movq -0x4e0(%rbp), %rdx
leaq -0x4c8(%rbp), %rdi
callq 0xc6600
jmp 0x10ee22
leaq -0x4e1(%rbp), %rdi
callq 0x40090
movl $0x0, -0x4e8(%rbp)
cmpl $0x9, -0x4e8(%rbp)
jge 0x10eec6
movslq -0x4e8(%rbp), %rsi
leaq -0x2c0(%rbp), %rdi
callq 0x3d940
movq %rax, %rsi
movq 0x8a156(%rip), %rdi     # 0x198fb8
callq 0xa520
movq %rax, -0x9a0(%rbp)
jmp 0x10ee70
movq -0x9a0(%rbp), %rdi
leaq 0x27060(%rip), %rsi     # 0x135ede
callq 0xa5c0
jmp 0x10ee85
jmp 0x10ee87
movl -0x4e8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4e8(%rbp)
jmp 0x10ee38
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x4e1(%rbp), %rdi
callq 0x40090
jmp 0x110159
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x10efaf
movl $0x0, -0x4ec(%rbp)
movslq -0x4ec(%rbp), %rax
movq %rax, -0x9a8(%rbp)
leaq -0x290(%rbp), %rdi
callq 0x3ffd0
movq %rax, %rcx
movq -0x9a8(%rbp), %rax
cmpq %rcx, %rax
jae 0x10ef3a
movq 0x8a0b8(%rip), %rdi     # 0x198fb8
leaq -0x30(%rbp), %rsi
callq 0xa520
movq %rax, -0x9b0(%rbp)
jmp 0x10ef12
movq -0x9b0(%rbp), %rdi
leaq 0x26fbe(%rip), %rsi     # 0x135ede
callq 0xa5c0
jmp 0x10ef27
jmp 0x10ef29
movl -0x4ec(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4ec(%rbp)
jmp 0x10eed0
leaq -0x508(%rbp), %rdi
leaq -0x4c8(%rbp), %rsi
callq 0x3fee0
jmp 0x10ef4f
movq 0x8a062(%rip), %rsi     # 0x198fb8
leaq -0x508(%rbp), %rdi
movl $0x9, %edx
movl $0x1, %ecx
callq 0x50da0
jmp 0x10ef6e
leaq -0x508(%rbp), %rdi
callq 0x3dfa0
movl -0x3e0(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3e0(%rbp)
leaq -0x4c8(%rbp), %rdi
callq 0x3dfa0
jmp 0x10efc0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x508(%rbp), %rdi
callq 0x3dfa0
leaq -0x4c8(%rbp), %rdi
callq 0x3dfa0
jmp 0x110159
jmp 0x10efc2
jmp 0x10efc4
jmp 0x10fc3a
leaq -0x218(%rbp), %rdi
leaq -0x3f0(%rbp), %rsi
callq 0x110600
movq %rax, -0x9b8(%rbp)
jmp 0x10efe5
movq -0x9b8(%rbp), %rax
cmpq $0x0, %rax
jne 0x10f28d
leaq -0x248(%rbp), %rdi
leaq -0x3f0(%rbp), %rsi
callq 0x110600
movq %rax, -0x9c0(%rbp)
jmp 0x10f012
movq -0x9c0(%rbp), %rax
cmpq $0x0, %rax
jne 0x10f28d
movq 0x89f8e(%rip), %rdi     # 0x198fb8
leaq -0x188(%rbp), %rsi
callq 0xa520
movq %rax, -0x9c8(%rbp)
jmp 0x10f03f
movq -0x9c8(%rbp), %rdi
leaq 0x26e91(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x9d0(%rbp)
jmp 0x10f05b
movq -0x9d0(%rbp), %rdi
movl -0x3f0(%rbp), %esi
callq 0xab20
movq %rax, -0x9d8(%rbp)
jmp 0x10f076
movq -0x9d8(%rbp), %rdi
leaq 0x3de7f(%rip), %rsi     # 0x14cf03
callq 0xa5c0
movq %rax, -0x9e0(%rbp)
jmp 0x10f092
movslq -0x3ec(%rbp), %rsi
leaq -0x148(%rbp), %rdi
callq 0xac60
movq %rax, -0x9e8(%rbp)
jmp 0x10f0ae
movq -0x9e0(%rbp), %rdi
movq -0x9e8(%rbp), %rax
movsbl (%rax), %esi
callq 0xa6d0
movq %rax, -0x9f0(%rbp)
jmp 0x10f0cd
movq -0x9f0(%rbp), %rdi
leaq 0x26e03(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x9f8(%rbp)
jmp 0x10f0e9
movslq -0x3ec(%rbp), %rsi
leaq -0x168(%rbp), %rdi
callq 0xac60
movq %rax, -0xa00(%rbp)
jmp 0x10f105
movq -0x9f8(%rbp), %rdi
movq -0xa00(%rbp), %rax
movsbl (%rax), %esi
callq 0xa6d0
movq %rax, -0xa08(%rbp)
jmp 0x10f124
movq -0xa08(%rbp), %rdi
leaq 0x3ddd5(%rip), %rsi     # 0x14cf07
callq 0xa5c0
movq %rax, -0xa10(%rbp)
jmp 0x10f140
leaq -0x2a8(%rbp), %rdi
callq 0x3ffd0
movq -0xa10(%rbp), %rdi
movq %rax, %rsi
addq %rsi, %rsi
callq 0xa140
movq %rax, -0xa18(%rbp)
jmp 0x10f167
movq -0xa18(%rbp), %rdi
leaq 0x37975(%rip), %rsi     # 0x146aea
callq 0xa5c0
jmp 0x10f17c
movl $0x0, -0x50c(%rbp)
movslq -0x50c(%rbp), %rax
movq %rax, -0xa20(%rbp)
leaq -0x290(%rbp), %rdi
callq 0x3ffd0
movq %rax, %rcx
movq -0xa20(%rbp), %rax
cmpq %rcx, %rax
jae 0x10f1f0
movq 0x89e02(%rip), %rdi     # 0x198fb8
leaq 0x26d21(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0xa28(%rbp)
jmp 0x10f1cb
movq -0xa28(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0xa520
jmp 0x10f1dd
jmp 0x10f1df
movl -0x50c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x50c(%rbp)
jmp 0x10f186
movl $0x0, -0x510(%rbp)
movslq -0x510(%rbp), %rax
movq %rax, -0xa30(%rbp)
leaq -0x2a8(%rbp), %rdi
callq 0x3ffd0
movq %rax, %rcx
movq -0xa30(%rbp), %rax
cmpq %rcx, %rax
jae 0x10f264
movq 0x89d8e(%rip), %rdi     # 0x198fb8
leaq 0x26cad(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0xa38(%rbp)
jmp 0x10f23f
movq -0xa38(%rbp), %rdi
leaq -0x68(%rbp), %rsi
callq 0xa520
jmp 0x10f251
jmp 0x10f253
movl -0x510(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x510(%rbp)
jmp 0x10f1fa
movq 0x89d4d(%rip), %rdi     # 0x198fb8
movq 0x89d16(%rip), %rsi     # 0x198f88
callq 0xa610
jmp 0x10f279
movl -0x3e8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3e8(%rbp)
jmp 0x10fc38
leaq -0x218(%rbp), %rdi
leaq -0x3f0(%rbp), %rsi
callq 0x110600
movq %rax, -0xa40(%rbp)
jmp 0x10f2a9
movq -0xa40(%rbp), %rax
cmpq $0x1, %rax
jne 0x10f81f
leaq -0x218(%rbp), %rdi
leaq -0x3f0(%rbp), %rsi
callq 0x3e450
movq %rax, -0xa48(%rbp)
jmp 0x10f2d6
movq -0xa48(%rbp), %rsi
leaq -0x528(%rbp), %rdi
movl $0x9, %edx
callq 0x7bbe0
jmp 0x10f2f0
leaq -0x2c0(%rbp), %rdi
movq %rdi, -0xa58(%rbp)
leaq -0x528(%rbp), %rsi
movq %rsi, -0xa60(%rbp)
callq 0x50c30
movq -0xa60(%rbp), %rdi
callq 0x3dfa0
movq -0xa58(%rbp), %rdi
movl $0x4, %esi
callq 0x3d940
movq %rax, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0xac60
movq %rax, -0xa50(%rbp)
jmp 0x10f343
movq -0xa50(%rbp), %rax
movb (%rax), %al
movb %al, -0x529(%rbp)
movsbl -0x529(%rbp), %eax
movl %eax, -0xa6c(%rbp)
movslq -0x3ec(%rbp), %rsi
leaq -0x168(%rbp), %rdi
callq 0xac60
movq %rax, -0xa68(%rbp)
jmp 0x10f37b
movl -0xa6c(%rbp), %eax
movq -0xa68(%rbp), %rcx
movsbl (%rcx), %ecx
cmpl %ecx, %eax
je 0x10f3a3
movl -0x3d8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3d8(%rbp)
jmp 0x10fc3c
leaq -0x248(%rbp), %rdi
leaq -0x3f0(%rbp), %rsi
callq 0x110600
movq %rax, -0xa78(%rbp)
jmp 0x10f3bf
movq -0xa78(%rbp), %rax
cmpq $0x0, %rax
jne 0x10f499
leaq -0x218(%rbp), %rdi
leaq -0x3f0(%rbp), %rsi
callq 0x3e450
movq %rax, -0xa80(%rbp)
jmp 0x10f3ec
movq -0xa80(%rbp), %rsi
movq 0x89bbe(%rip), %rdi     # 0x198fb8
callq 0xa520
jmp 0x10f401
movl $0x0, -0x530(%rbp)
movslq -0x530(%rbp), %rax
movq %rax, -0xa88(%rbp)
leaq -0x2a8(%rbp), %rdi
callq 0x3ffd0
movq %rax, %rcx
movq -0xa88(%rbp), %rax
cmpq %rcx, %rax
jae 0x10f475
movq 0x89b7d(%rip), %rdi     # 0x198fb8
leaq 0x26a9c(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0xa90(%rbp)
jmp 0x10f450
movq -0xa90(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0xa520
jmp 0x10f462
jmp 0x10f464
movl -0x530(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x530(%rbp)
jmp 0x10f40b
movq 0x89b3c(%rip), %rdi     # 0x198fb8
movq 0x89b05(%rip), %rsi     # 0x198f88
callq 0xa610
jmp 0x10f48a
movl -0x3dc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3dc(%rbp)
leaq -0x248(%rbp), %rdi
leaq -0x3f0(%rbp), %rsi
callq 0x110600
movq %rax, -0xa98(%rbp)
jmp 0x10f4b5
movq -0xa98(%rbp), %rax
cmpq $0x1, %rax
jne 0x10f81a
leaq -0x248(%rbp), %rdi
leaq -0x3f0(%rbp), %rsi
callq 0x3e450
movq %rax, -0xaa0(%rbp)
jmp 0x10f4e2
movq -0xaa0(%rbp), %rsi
leaq -0x548(%rbp), %rdi
movl $0x9, %edx
callq 0x7bbe0
jmp 0x10f4fc
leaq -0x2c0(%rbp), %rdi
movq %rdi, -0xab0(%rbp)
leaq -0x548(%rbp), %rsi
movq %rsi, -0xab8(%rbp)
callq 0x50c30
movq -0xab8(%rbp), %rdi
callq 0x3dfa0
movq -0xab0(%rbp), %rdi
movl $0x3, %esi
callq 0x3d940
movq %rax, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0xac60
movq %rax, -0xaa8(%rbp)
jmp 0x10f54f
movq -0xaa8(%rbp), %rax
movb (%rax), %al
movb %al, -0x549(%rbp)
leaq -0x2c0(%rbp), %rdi
movl $0x4, %esi
callq 0x3d940
movq %rax, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0xac60
movq %rax, -0xac0(%rbp)
jmp 0x10f584
movq -0xac0(%rbp), %rax
movb (%rax), %al
movb %al, -0x54a(%rbp)
movsbl -0x549(%rbp), %eax
movl %eax, -0xacc(%rbp)
movslq -0x3ec(%rbp), %rsi
leaq -0x168(%rbp), %rdi
callq 0xac60
movq %rax, -0xac8(%rbp)
jmp 0x10f5bc
movl -0xacc(%rbp), %eax
movq -0xac8(%rbp), %rcx
movsbl (%rcx), %ecx
cmpl %ecx, %eax
je 0x10f643
movsbl -0x549(%rbp), %edi
callq 0x8e8b0
movb %al, -0xacd(%rbp)
jmp 0x10f5e4
movb -0xacd(%rbp), %al
movsbl %al, %eax
movl %eax, -0xadc(%rbp)
movslq -0x3ec(%rbp), %rsi
leaq -0x168(%rbp), %rdi
callq 0xac60
movq %rax, -0xad8(%rbp)
jmp 0x10f60f
movl -0xadc(%rbp), %eax
movq -0xad8(%rbp), %rcx
movsbl (%rcx), %ecx
cmpl %ecx, %eax
jne 0x10f643
movsbl -0x54a(%rbp), %edi
callq 0x8e8b0
movb %al, -0xadd(%rbp)
jmp 0x10f637
movb -0xadd(%rbp), %al
movb %al, -0x54a(%rbp)
movsbl -0x54a(%rbp), %eax
movl %eax, -0xaec(%rbp)
movslq -0x3ec(%rbp), %rsi
leaq -0x148(%rbp), %rdi
callq 0xac60
movq %rax, -0xae8(%rbp)
jmp 0x10f66c
movl -0xaec(%rbp), %eax
movq -0xae8(%rbp), %rcx
movsbl (%rcx), %ecx
cmpl %ecx, %eax
jne 0x10f809
leaq -0x2c0(%rbp), %rdi
movq %rdi, -0xb00(%rbp)
callq 0x44030
movq %rax, -0x578(%rbp)
leaq -0x578(%rbp), %rdi
movl $0x9, %esi
callq 0x44390
movq -0xb00(%rbp), %rdi
movq %rax, -0x570(%rbp)
callq 0x44060
movq %rax, -0x580(%rbp)
leaq -0x581(%rbp), %rdi
movq %rdi, -0xaf8(%rbp)
callq 0x48e80
movq -0xaf8(%rbp), %rcx
movq -0x570(%rbp), %rsi
movq -0x580(%rbp), %rdx
leaq -0x568(%rbp), %rdi
callq 0xc6600
jmp 0x10f6ff
leaq -0x581(%rbp), %rdi
callq 0x40090
leaq -0x218(%rbp), %rdi
leaq -0x3f0(%rbp), %rsi
callq 0x3e450
movq %rax, -0xb08(%rbp)
jmp 0x10f727
movq -0xb08(%rbp), %rsi
movq 0x89883(%rip), %rdi     # 0x198fb8
callq 0xa520
movq %rax, -0xb10(%rbp)
jmp 0x10f743
movq -0xb10(%rbp), %rdi
leaq 0x2678d(%rip), %rsi     # 0x135ede
callq 0xa5c0
jmp 0x10f758
leaq -0x5a0(%rbp), %rdi
leaq -0x568(%rbp), %rsi
callq 0x3fee0
jmp 0x10f76d
movq 0x89844(%rip), %rsi     # 0x198fb8
leaq -0x5a0(%rbp), %rdi
movl $0x9, %edx
movl $0x1, %ecx
callq 0x50da0
jmp 0x10f78c
leaq -0x5a0(%rbp), %rdi
callq 0x3dfa0
movl -0x3e4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3e4(%rbp)
leaq -0x568(%rbp), %rdi
callq 0x3dfa0
jmp 0x10f818
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x581(%rbp), %rdi
callq 0x40090
jmp 0x110159
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x10f7f8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x5a0(%rbp), %rdi
callq 0x3dfa0
leaq -0x568(%rbp), %rdi
callq 0x3dfa0
jmp 0x110159
movl -0x3d8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3d8(%rbp)
jmp 0x10f81a
jmp 0x10fc36
leaq -0x248(%rbp), %rdi
leaq -0x3f0(%rbp), %rsi
callq 0x110600
movq %rax, -0xb18(%rbp)
jmp 0x10f83b
movq -0xb18(%rbp), %rax
cmpq $0x1, %rax
jne 0x10fc34
leaq -0x248(%rbp), %rdi
leaq -0x3f0(%rbp), %rsi
callq 0x3e450
movq %rax, -0xb20(%rbp)
jmp 0x10f868
movq -0xb20(%rbp), %rsi
leaq -0x5b8(%rbp), %rdi
movl $0x9, %edx
callq 0x7bbe0
jmp 0x10f882
leaq -0x2c0(%rbp), %rdi
movq %rdi, -0xb30(%rbp)
leaq -0x5b8(%rbp), %rsi
movq %rsi, -0xb38(%rbp)
callq 0x50c30
movq -0xb38(%rbp), %rdi
callq 0x3dfa0
movq -0xb30(%rbp), %rdi
movl $0x3, %esi
callq 0x3d940
movq %rax, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0xac60
movq %rax, -0xb28(%rbp)
jmp 0x10f8d5
movq -0xb28(%rbp), %rax
movb (%rax), %al
movb %al, -0x5b9(%rbp)
leaq -0x2c0(%rbp), %rdi
movl $0x4, %esi
callq 0x3d940
movq %rax, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0xac60
movq %rax, -0xb40(%rbp)
jmp 0x10f90a
movq -0xb40(%rbp), %rax
movb (%rax), %al
movb %al, -0x5ba(%rbp)
movsbl -0x5b9(%rbp), %eax
movl %eax, -0xb4c(%rbp)
movslq -0x3ec(%rbp), %rsi
leaq -0x168(%rbp), %rdi
callq 0xac60
movq %rax, -0xb48(%rbp)
jmp 0x10f942
movl -0xb4c(%rbp), %eax
movq -0xb48(%rbp), %rcx
movsbl (%rcx), %ecx
cmpl %ecx, %eax
je 0x10f9c9
movsbl -0x5b9(%rbp), %edi
callq 0x8e8b0
movb %al, -0xb4d(%rbp)
jmp 0x10f96a
movb -0xb4d(%rbp), %al
movsbl %al, %eax
movl %eax, -0xb5c(%rbp)
movslq -0x3ec(%rbp), %rsi
leaq -0x168(%rbp), %rdi
callq 0xac60
movq %rax, -0xb58(%rbp)
jmp 0x10f995
movl -0xb5c(%rbp), %eax
movq -0xb58(%rbp), %rcx
movsbl (%rcx), %ecx
cmpl %ecx, %eax
jne 0x10f9c9
movsbl -0x5ba(%rbp), %edi
callq 0x8e8b0
movb %al, -0xb5d(%rbp)
jmp 0x10f9bd
movb -0xb5d(%rbp), %al
movb %al, -0x5ba(%rbp)
movsbl -0x5ba(%rbp), %eax
movl %eax, -0xb6c(%rbp)
movslq -0x3ec(%rbp), %rsi
leaq -0x148(%rbp), %rdi
callq 0xac60
movq %rax, -0xb68(%rbp)
jmp 0x10f9f2
movl -0xb6c(%rbp), %eax
movq -0xb68(%rbp), %rcx
movsbl (%rcx), %ecx
cmpl %ecx, %eax
jne 0x10fc23
leaq -0x2c0(%rbp), %rdi
movq %rdi, -0xb80(%rbp)
callq 0x44030
movq %rax, -0x5e8(%rbp)
leaq -0x5e8(%rbp), %rdi
movl $0x9, %esi
callq 0x44390
movq -0xb80(%rbp), %rdi
movq %rax, -0x5e0(%rbp)
callq 0x44060
movq %rax, -0x5f0(%rbp)
leaq -0x5f1(%rbp), %rdi
movq %rdi, -0xb78(%rbp)
callq 0x48e80
movq -0xb78(%rbp), %rcx
movq -0x5e0(%rbp), %rsi
movq -0x5f0(%rbp), %rdx
leaq -0x5d8(%rbp), %rdi
callq 0xc6600
jmp 0x10fa85
leaq -0x5f1(%rbp), %rdi
callq 0x40090
movl $0x0, -0x5f8(%rbp)
cmpl $0x9, -0x5f8(%rbp)
jge 0x10fb29
movslq -0x5f8(%rbp), %rsi
leaq -0x2c0(%rbp), %rdi
callq 0x3d940
movq %rax, %rsi
movq 0x894f3(%rip), %rdi     # 0x198fb8
callq 0xa520
movq %rax, -0xb88(%rbp)
jmp 0x10fad3
movq -0xb88(%rbp), %rdi
leaq 0x263fd(%rip), %rsi     # 0x135ede
callq 0xa5c0
jmp 0x10fae8
jmp 0x10faea
movl -0x5f8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x5f8(%rbp)
jmp 0x10fa9b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x5f1(%rbp), %rdi
callq 0x40090
jmp 0x110159
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x10fc12
movl $0x0, -0x5fc(%rbp)
movslq -0x5fc(%rbp), %rax
movq %rax, -0xb90(%rbp)
leaq -0x290(%rbp), %rdi
callq 0x3ffd0
movq %rax, %rcx
movq -0xb90(%rbp), %rax
cmpq %rcx, %rax
jae 0x10fb9d
movq 0x89455(%rip), %rdi     # 0x198fb8
leaq -0x30(%rbp), %rsi
callq 0xa520
movq %rax, -0xb98(%rbp)
jmp 0x10fb75
movq -0xb98(%rbp), %rdi
leaq 0x2635b(%rip), %rsi     # 0x135ede
callq 0xa5c0
jmp 0x10fb8a
jmp 0x10fb8c
movl -0x5fc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x5fc(%rbp)
jmp 0x10fb33
leaq -0x618(%rbp), %rdi
leaq -0x5d8(%rbp), %rsi
callq 0x3fee0
jmp 0x10fbb2
movq 0x893ff(%rip), %rsi     # 0x198fb8
leaq -0x618(%rbp), %rdi
movl $0x9, %edx
movl $0x1, %ecx
callq 0x50da0
jmp 0x10fbd1
leaq -0x618(%rbp), %rdi
callq 0x3dfa0
movl -0x3e0(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3e0(%rbp)
leaq -0x5d8(%rbp), %rdi
callq 0x3dfa0
jmp 0x10fc32
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x618(%rbp), %rdi
callq 0x3dfa0
leaq -0x5d8(%rbp), %rdi
callq 0x3dfa0
jmp 0x110159
movl -0x3d8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3d8(%rbp)
jmp 0x10fc34
jmp 0x10fc36
jmp 0x10fc38
jmp 0x10fc3a
jmp 0x10fc3c
movl -0x3ec(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3ec(%rbp)
jmp 0x10e413
movq 0x89399(%rip), %rdi     # 0x198ff0
leaq 0x3d2b8(%rip), %rsi     # 0x14cf16
callq 0xa5c0
movq %rax, -0xba0(%rbp)
jmp 0x10fc6c
movq -0xba0(%rbp), %rdi
movq 0x8930e(%rip), %rsi     # 0x198f88
callq 0xa610
jmp 0x10fc81
movq 0x89368(%rip), %rdi     # 0x198ff0
leaq 0x3d2b3(%rip), %rsi     # 0x14cf42
callq 0xa5c0
movq %rax, -0xba8(%rbp)
jmp 0x10fc9d
movq -0xba8(%rbp), %rdi
movl -0x3cc(%rbp), %esi
callq 0xab20
movq %rax, -0xbb0(%rbp)
jmp 0x10fcb8
movq -0xbb0(%rbp), %rdi
movq 0x892c2(%rip), %rsi     # 0x198f88
callq 0xa610
jmp 0x10fccd
movq 0x8931c(%rip), %rdi     # 0x198ff0
leaq 0x3d26f(%rip), %rsi     # 0x14cf4a
callq 0xa5c0
movq %rax, -0xbb8(%rbp)
jmp 0x10fce9
movq -0xbb8(%rbp), %rdi
movl -0x3d0(%rbp), %esi
callq 0xab20
movq %rax, -0xbc0(%rbp)
jmp 0x10fd04
movq -0xbc0(%rbp), %rdi
movq 0x89276(%rip), %rsi     # 0x198f88
callq 0xa610
jmp 0x10fd19
movq 0x892d0(%rip), %rdi     # 0x198ff0
leaq 0x3d230(%rip), %rsi     # 0x14cf57
callq 0xa5c0
movq %rax, -0xbc8(%rbp)
jmp 0x10fd35
movq -0xbc8(%rbp), %rdi
movl -0x3d4(%rbp), %esi
callq 0xab20
movq %rax, -0xbd0(%rbp)
jmp 0x10fd50
movq -0xbd0(%rbp), %rdi
movq 0x8922a(%rip), %rsi     # 0x198f88
callq 0xa610
jmp 0x10fd65
movq 0x89284(%rip), %rdi     # 0x198ff0
leaq 0x3d1f1(%rip), %rsi     # 0x14cf64
callq 0xa5c0
movq %rax, -0xbd8(%rbp)
jmp 0x10fd81
movq -0xbd8(%rbp), %rdi
movl -0x3d8(%rbp), %esi
callq 0xab20
movq %rax, -0xbe0(%rbp)
jmp 0x10fd9c
movq -0xbe0(%rbp), %rdi
movq 0x891de(%rip), %rsi     # 0x198f88
callq 0xa610
jmp 0x10fdb1
movq 0x89238(%rip), %rdi     # 0x198ff0
leaq 0x3d1ba(%rip), %rsi     # 0x14cf79
callq 0xa5c0
movq %rax, -0xbe8(%rbp)
jmp 0x10fdcd
movq -0xbe8(%rbp), %rdi
movl -0x3cc(%rbp), %esi
movl -0x3d0(%rbp), %eax
addl %eax, %esi
movl -0x3d4(%rbp), %eax
addl %eax, %esi
movl -0x3d8(%rbp), %eax
addl %eax, %esi
callq 0xab20
movq %rax, -0xbf0(%rbp)
jmp 0x10fe00
movq -0xbf0(%rbp), %rdi
movq 0x8917a(%rip), %rsi     # 0x198f88
callq 0xa610
jmp 0x10fe15
movq 0x8919c(%rip), %rdi     # 0x198fb8
movq 0x89165(%rip), %rsi     # 0x198f88
callq 0xa610
jmp 0x10fe2a
movq 0x891bf(%rip), %rdi     # 0x198ff0
leaq 0x3d15b(%rip), %rsi     # 0x14cf93
callq 0xa5c0
movq %rax, -0xbf8(%rbp)
jmp 0x10fe46
movq -0xbf8(%rbp), %rdi
movq 0x89134(%rip), %rsi     # 0x198f88
callq 0xa610
jmp 0x10fe5b
movq 0x8918e(%rip), %rdi     # 0x198ff0
leaq 0x3d152(%rip), %rsi     # 0x14cfbb
callq 0xa5c0
movq %rax, -0xc00(%rbp)
jmp 0x10fe77
movq -0xc00(%rbp), %rdi
movl -0x3e8(%rbp), %esi
callq 0xab20
movq %rax, -0xc08(%rbp)
jmp 0x10fe92
movq -0xc08(%rbp), %rdi
movq 0x890e8(%rip), %rsi     # 0x198f88
callq 0xa610
jmp 0x10fea7
movq 0x89142(%rip), %rdi     # 0x198ff0
leaq 0x3d12f(%rip), %rsi     # 0x14cfe4
callq 0xa5c0
movq %rax, -0xc10(%rbp)
jmp 0x10fec3
movq -0xc10(%rbp), %rdi
movl -0x3dc(%rbp), %esi
callq 0xab20
movq %rax, -0xc18(%rbp)
jmp 0x10fede
movq -0xc18(%rbp), %rdi
movq 0x8909c(%rip), %rsi     # 0x198f88
callq 0xa610
jmp 0x10fef3
movq 0x890f6(%rip), %rdi     # 0x198ff0
leaq 0x3d0f5(%rip), %rsi     # 0x14cff6
callq 0xa5c0
movq %rax, -0xc20(%rbp)
jmp 0x10ff0f
movq -0xc20(%rbp), %rdi
movl -0x3e0(%rbp), %esi
callq 0xab20
movq %rax, -0xc28(%rbp)
jmp 0x10ff2a
movq -0xc28(%rbp), %rdi
movq 0x89050(%rip), %rsi     # 0x198f88
callq 0xa610
jmp 0x10ff3f
movq 0x890aa(%rip), %rdi     # 0x198ff0
leaq 0x3d0bb(%rip), %rsi     # 0x14d008
callq 0xa5c0
movq %rax, -0xc30(%rbp)
jmp 0x10ff5b
movq -0xc30(%rbp), %rdi
movl -0x3e4(%rbp), %esi
callq 0xab20
movq %rax, -0xc38(%rbp)
jmp 0x10ff76
movq -0xc38(%rbp), %rdi
movq 0x89004(%rip), %rsi     # 0x198f88
callq 0xa610
jmp 0x10ff8b
movq 0x8905e(%rip), %rdi     # 0x198ff0
leaq 0x3d08e(%rip), %rsi     # 0x14d027
callq 0xa5c0
movq %rax, -0xc40(%rbp)
jmp 0x10ffa7
movq -0xc40(%rbp), %rdi
movl -0x3e8(%rbp), %esi
movl -0x3dc(%rbp), %eax
addl %eax, %esi
movl -0x3e0(%rbp), %eax
addl %eax, %esi
movl -0x3e4(%rbp), %eax
addl %eax, %esi
callq 0xab20
movq %rax, -0xc48(%rbp)
jmp 0x10ffda
movq -0xc48(%rbp), %rdi
movq 0x88fa0(%rip), %rsi     # 0x198f88
callq 0xa610
jmp 0x10ffef
movq 0x88fc2(%rip), %rdi     # 0x198fb8
movq 0x88f8b(%rip), %rsi     # 0x198f88
callq 0xa610
jmp 0x110004
movq 0x88fe5(%rip), %rdi     # 0x198ff0
leaq 0x3d02b(%rip), %rsi     # 0x14d03d
callq 0xa5c0
movq %rax, -0xc50(%rbp)
jmp 0x110020
movq -0xc50(%rbp), %rdi
movl -0x3cc(%rbp), %esi
movl -0x3d0(%rbp), %eax
addl %eax, %esi
movl -0x3d4(%rbp), %eax
addl %eax, %esi
movl -0x3d8(%rbp), %eax
addl %eax, %esi
movl -0x3e8(%rbp), %eax
addl %eax, %esi
movl -0x3dc(%rbp), %eax
addl %eax, %esi
movl -0x3e0(%rbp), %eax
addl %eax, %esi
movl -0x3e4(%rbp), %eax
addl %eax, %esi
callq 0xab20
movq %rax, -0xc58(%rbp)
jmp 0x110073
movq -0xc58(%rbp), %rdi
movq 0x88f07(%rip), %rsi     # 0x198f88
callq 0xa610
jmp 0x110088
leaq -0x398(%rbp), %rdi
callq 0x6d0b0
leaq -0x378(%rbp), %rdi
callq 0x48270
leaq -0x2c0(%rbp), %rdi
callq 0x3dfa0
leaq -0x2a8(%rbp), %rdi
callq 0x3dfa0
leaq -0x290(%rbp), %rdi
callq 0x3dfa0
leaq -0x278(%rbp), %rdi
callq 0x3dfa0
leaq -0x260(%rbp), %rdi
callq 0x3dfa0
leaq -0x248(%rbp), %rdi
callq 0x3ed30
leaq -0x218(%rbp), %rdi
callq 0x3ed30
leaq -0x1a8(%rbp), %rdi
callq 0xac88
leaq -0x188(%rbp), %rdi
callq 0xac88
leaq -0x168(%rbp), %rdi
callq 0xac88
leaq -0x148(%rbp), %rdi
callq 0xac88
leaq -0x120(%rbp), %rdi
callq 0xac88
leaq -0x90(%rbp), %rdi
callq 0xac88
leaq -0x68(%rbp), %rdi
callq 0xac88
leaq -0x30(%rbp), %rdi
callq 0xac88
xorl %eax, %eax
addq $0xc60, %rsp            # imm = 0xC60
popq %rbp
retq
leaq -0x398(%rbp), %rdi
callq 0x6d0b0
leaq -0x378(%rbp), %rdi
callq 0x48270
leaq -0x2c0(%rbp), %rdi
callq 0x3dfa0
leaq -0x2a8(%rbp), %rdi
callq 0x3dfa0
leaq -0x290(%rbp), %rdi
callq 0x3dfa0
leaq -0x278(%rbp), %rdi
callq 0x3dfa0
leaq -0x260(%rbp), %rdi
callq 0x3dfa0
leaq -0x248(%rbp), %rdi
callq 0x3ed30
leaq -0x218(%rbp), %rdi
callq 0x3ed30
leaq -0x1a8(%rbp), %rdi
callq 0xac88
leaq -0x188(%rbp), %rdi
callq 0xac88
leaq -0x168(%rbp), %rdi
callq 0xac88
leaq -0x148(%rbp), %rdi
callq 0xac88
leaq -0x120(%rbp), %rdi
callq 0xac88
leaq -0x90(%rbp), %rdi
callq 0xac88
leaq -0x68(%rbp), %rdi
callq 0xac88
leaq -0x30(%rbp), %rdi
callq 0xac88
movq -0x40(%rbp), %rdi
callq 0xab50
nopl (%rax,%rax)