// File: millanek[P]evo/evo_abba_baba.cpp
// Function: doAbbaBaba()
void doAbbaBaba() {
    string line; // for reading the input files
    
    std::istream* vcfFile = createReader(opt::vcfFile.c_str());
    std::ifstream* setsFile = new std::ifstream(opt::setsFile.c_str());
    string setsFileRoot = stripExtension(opt::setsFile);
    std::ofstream* outFile = new std::ofstream(setsFileRoot+ "_" + opt::runName + "_abbaBaba.txt");
    string windowStartEnd = "scaffold_0\t0";
    
    // Get the sample sets
    string outgroupString; std::vector<size_t> Opos; std::vector<string> outgroup;
    if (!opt::bAaEqO) { getline(*setsFile, outgroupString); outgroup = split(outgroupString, ','); } else { outgroupString = "VCF AA field"; }
    string P3string; getline(*setsFile, P3string); std::vector<string> P3 = split(P3string, ','); std::vector<size_t> P3pos;
    string P2string; getline(*setsFile, P2string); std::vector<string> P2 = split(P2string, ','); std::vector<size_t> P2pos;
    string P1string; getline(*setsFile, P1string); std::vector<string> P1 = split(P1string, ','); std::vector<size_t> P1pos;
    if (!opt::bFrequency && (P1.size() > 1 || P2.size() > 1 || P3.size() > 1)) {
        std::cerr << "There are more than one individual on some line of the SETS.txt file" << std::endl;
        std::cerr << "Perhaps you want to use the -f option?" << std::endl;
        exit(1);
    }
    
    // Now go through the vcf and calculate D
    int totalVariantNumber = 0;
    ABBA_BABA_Freq_allResults r;
    int lastPrint = 0; int lastWindowVariant = 0;
    std::vector<double> regionDs; std::vector<double> region_f_Gs; std::vector<double> region_f_Ds; std::vector<double> region_f_DMs;
    std::vector<string> sampleNames;
    while (getline(*vcfFile, line)) {
        if (line[0] == '#' && line[1] == '#')
            continue;
        else if (line[0] == '#' && line[1] == 'C') {
            std::vector<std::string> fields = split(line, '\t');
            if (opt::sampleNameFile.empty()) {
                for (std::vector<std::string>::size_type i = NUM_NON_GENOTYPE_COLUMNS; i != fields.size(); i++) {
                    sampleNames.push_back(fields[i]);
                }
            } else {
                sampleNames = readSampleNamesFromTextFile(opt::sampleNameFile);
            }
            if (!opt::bAaEqO) { Opos = locateSet(sampleNames, outgroup); }
            P3pos = locateSet(sampleNames, P3);
            P2pos = locateSet(sampleNames, P2); P1pos = locateSet(sampleNames, P1);
            
            
            if (!opt::bAaEqO) { std::cerr << "Outgroup: "; print_vector(outgroup, std::cerr); } else { std::cerr << "Outgroup: " << outgroupString << std::endl; }
            std::cerr << "P3: "; print_vector(P3, std::cerr);
            std::cerr << "P2: "; print_vector(P2, std::cerr);
            std::cerr << "P1: "; print_vector(P1, std::cerr);
        } else {
            totalVariantNumber++;
            std::vector<std::string> fields = split(line, '\t');
            std::vector<std::string> info = split(fields[7], ';');
            if (info[0] != "INDEL") {
                if (!opt::bAaEqO) {
                    ThreeSetCounts c;
                    if (opt::bNoAaO) {
                        c = getThreeSetVariantCountsAA4(fields,P1pos,P2pos,P3pos,Opos);
                        if (opt::bFrequency) {
                            incrementDnumDdenomFrequency(c, r);
                        } else {
                            incrementDnumDdenomSingleSequence(c, r);
                        }
                    } else {
                        FourSetCounts c;
                        string AA = getAAfromInfo(info);
                        if (AA == fields[3]) {
                            c = getFourSetVariantCounts(fields,P1pos,P2pos,P3pos,Opos,"ref");
                        } else if (AA == fields[4]) {
                            c = getFourSetVariantCounts(fields,P1pos,P2pos,P3pos,Opos,"alt");
                        }
                        r.Dnumerator += ((1-c.set1daAF)*c.set2daAF*c.set3daAF*(1-c.set4daAF)) - (c.set1daAF*(1-c.set2daAF)*c.set3daAF*(1-c.set4daAF));
                        r.Ddenominator += ((1-c.set1daAF)*c.set2daAF*c.set3daAF*(1-c.set4daAF)) + (c.set1daAF*(1-c.set2daAF)*c.set3daAF*(1-c.set4daAF));
                        if (c.set2daAF > c.set3daAF) {
                            r.f_d_denominator += ((1-c.set1daAF)*c.set2daAF*c.set2daAF*(1-c.set4daAF)) - (c.set1daAF*(1-c.set2daAF)*c.set2daAF*(1-c.set4daAF));
                        } else {
                            r.f_d_denominator += ((1-c.set1daAF)*c.set3daAF*c.set3daAF*(1-c.set4daAF)) - (c.set1daAF*(1-c.set3daAF)*c.set3daAF*(1-c.set4daAF));
                        }
                    }
                } else {
                    string AA = getAAfromInfo(info);
                    ThreeSetCounts c;
                    if (AA == fields[3]) {
                        c = getThreeSetVariantCounts(fields,P1pos,P2pos,P3pos,"ref");
                    } else if (AA == fields[4]) {
                        c = getThreeSetVariantCounts(fields,P1pos,P2pos,P3pos,"alt");
                    }
                    if (opt::bFrequency) {
                        incrementDnumDdenomFrequency(c, r);
                    } else {
                        incrementDnumDdenomSingleSequence(c, r);
                    }
                }
                // if (totalVariantNumber % 100000 == 0) { std::cerr << Dnumerator << std::endl; }
            } else {
                ABBABABAcounts::indels++;
            }
            
            if (ABBABABAcounts::usedVariantsCounter % opt::windowSize == 0 && ABBABABAcounts::usedVariantsCounter != lastWindowVariant) {
                std::vector<string> s = split(windowStartEnd, '\t');
                if (s[0] == fields[0]) {
                    windowStartEnd = windowStartEnd + "\t" + fields[1];
                    if ((double)r.windowDnum/r.window_f_dM_denominator > 1) {
                        std::cerr << "D num" << r.windowDnum << std::endl;
                        std::cerr << "f_dM denom" << r.window_f_dM_denominator << std::endl;
                    }
                    *outFile << windowStartEnd << "\t" << (double)r.windowDnum/r.windowDdenom << "\t" << (double)r.window_f_d_num/r.window_f_d_denominator << "\t" << (double)r.windowDnum/r.window_f_dM_denominator << std::endl;
                    windowStartEnd = fields[0] + "\t" + fields[1];
                } else {
                    windowStartEnd = fields[0] + "\t0";
                }
                r.windowDnum = 0; r.windowDdenom = 0; r.window_f_d_num = 0; r.window_f_d_denominator = 0; r.window_f_dM_denominator = 0; lastWindowVariant = ABBABABAcounts::usedVariantsCounter;
            }
            
            
            if (ABBABABAcounts::usedVariantsCounter % opt::jackKniveWindowSize == 0 && ABBABABAcounts::usedVariantsCounter != lastPrint) {
            //if (totalVariantNumber % 100000 == 0) {
                if (opt::bFrequency)
                    assert(ABBABABAcounts::XXAA + ABBABABAcounts::AABA + ABBABABAcounts::BBBA + ABBABABAcounts::indels + ABBABABAcounts::noDafInfo + ABBABABAcounts::usedVariantsCounter + ABBABABAcounts::p1p2 == totalVariantNumber);
                if (ABBABABAcounts::usedVariantsCounter > (6 * opt::jackKniveWindowSize)) {
                    double Dstd_err = jackknive_std_err(regionDs); double f_Gstd_err = jackknive_std_err(region_f_Gs);
                    double f_Dstd_err = jackknive_std_err(region_f_Ds); double f_DMstd_err = jackknive_std_err(region_f_DMs);
                    std::cerr << totalVariantNumber << " variants processed. " << ABBABABAcounts::usedVariantsCounter << " variants used. \tD=" << (double)r.Dnumerator/r.Ddenominator << " std_err=" << Dstd_err << std::endl;
                    std::cerr << totalVariantNumber << " variants processed. " << ABBABABAcounts::usedVariantsCounter << " variants used. \tf_G=" << (double)r.f_G_num/r.f_G_denom << " std_err=" << f_Gstd_err << std::endl;
                    std::cerr << totalVariantNumber << " variants processed. " << ABBABABAcounts::usedVariantsCounter << " variants used. \tf_d=" << (double)r.f_d_num/r.f_d_denominator << " std_err=" << f_Dstd_err << std::endl;
                    std::cerr << totalVariantNumber << " variants processed. " << ABBABABAcounts::usedVariantsCounter << " variants used. \tf_dM=" << (double)r.Dnumerator/r.f_dM_denominator << " std_err=" << f_DMstd_err << std::endl;
                } else {
                    std::cerr << totalVariantNumber << " variants processed. " << ABBABABAcounts::usedVariantsCounter << " variants used. \tD=" << (double)r.Dnumerator/r.Ddenominator << std::endl;
                    std::cerr << totalVariantNumber << " variants processed. " << ABBABABAcounts::usedVariantsCounter << " variants used. \tf_G=" << (double)r.f_G_num/r.f_G_denom << std::endl;
                    std::cerr << totalVariantNumber << " variants processed. " << ABBABABAcounts::usedVariantsCounter << " variants used. \tf_d=" << (double)r.f_d_num/r.f_d_denominator << std::endl;
                    std::cerr << totalVariantNumber << " variants processed. " << ABBABABAcounts::usedVariantsCounter << " variants used. \tf_dM=" << (double)r.Dnumerator/r.f_dM_denominator << std::endl;
                }
                std::cerr << "Last used "<< opt::jackKniveWindowSize << " variants \t\t\t\tD=" << r.lastVarsDnum/r.lastVarsDdenom << std::endl;
                // std::cerr << "AAAA=" << XXAA << "; AABA=" << AABA << "; BBBA=" << BBBA << std::endl;
                regionDs.push_back(r.lastVarsDnum/r.lastVarsDdenom); region_f_Gs.push_back(r.lastVarsF_G_num/r.lastVarsF_G_denom);
                region_f_Ds.push_back(r.lastVarsF_d_num/r.lastVarsF_d_denom); region_f_DMs.push_back(r.lastVarsDnum/r.lastVarsF_dM_denom);
                r.lastVarsDnum = 0; r.lastVarsDdenom = 0; r.lastVarsF_d_num = 0; r.lastVarsF_d_denom = 0; r.lastVarsF_G_num = 0; r.lastVarsF_G_denom = 0; r.lastVarsF_dM_denom = 0;
                lastPrint = ABBABABAcounts::usedVariantsCounter;
            }
        }
    }
    
    double Dstd_err = jackknive_std_err(regionDs); double f_Gstd_err = jackknive_std_err(region_f_Gs);
    double f_Dstd_err = jackknive_std_err(region_f_Ds); double f_DMstd_err = jackknive_std_err(region_f_DMs);
    std::cerr << std::endl;
    std::cerr << totalVariantNumber << " variants processed. D=" << (double)r.Dnumerator/r.Ddenominator << " std_err=" << Dstd_err << std::endl;
    std::cerr << totalVariantNumber << " variants processed. f_G=" << (double)r.f_G_num/r.f_G_denom << " std_err=" << f_Gstd_err << std::endl;
    std::cerr << totalVariantNumber << " variants processed. f_d=" << (double)r.f_d_num/r.f_d_denominator << " std_err=" << f_Dstd_err << std::endl;
    std::cerr << totalVariantNumber << " variants processed. f_dM=" << (double)r.Dnumerator/r.f_dM_denominator << " std_err=" << f_DMstd_err << std::endl;
    
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1380, %rsp           # imm = 0x1380
leaq -0x20(%rbp), %rdi
callq 0xa820
leaq 0x14bc65(%rip), %rdi    # 0x199dc0
callq 0xa220
movq %rax, -0xfd0(%rbp)
leaq -0x49(%rbp), %rdi
movq %rdi, -0xfc8(%rbp)
callq 0xab60
movq -0xfd0(%rbp), %rsi
movq -0xfc8(%rbp), %rdx
leaq -0x48(%rbp), %rdi
callq 0x2d6c0
jmp 0x4e190
leaq -0x48(%rbp), %rdi
movl $0x8, %esi
callq 0x80e30
movq %rax, -0xfd8(%rbp)
jmp 0x4e1a7
leaq -0x48(%rbp), %rdi
callq 0xac88
leaq -0x49(%rbp), %rdi
callq 0xa640
movq -0xfd8(%rbp), %rax
movq %rax, -0x28(%rbp)
movl $0x208, %edi            # imm = 0x208
callq 0xa5d0
movq %rax, -0xfe0(%rbp)
jmp 0x4e1d7
leaq 0x14bc02(%rip), %rdi    # 0x199de0
callq 0xa220
movq -0xfe0(%rbp), %rdi
movq %rax, %rsi
movl $0x8, %edx
callq 0xab90
jmp 0x4e1f9
movq -0xfe0(%rbp), %rax
movq %rax, -0x68(%rbp)
leaq 0x14bbd5(%rip), %rsi    # 0x199de0
leaq -0x88(%rbp), %rdi
callq 0x7be70
jmp 0x4e219
movl $0x200, %edi            # imm = 0x200
callq 0xa5d0
movq %rax, -0xfe8(%rbp)
jmp 0x4e22c
movb $0x1, -0xf1(%rbp)
leaq 0xf1b56(%rip), %rdx     # 0x13fd90
leaq -0xf0(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0x3da80
jmp 0x4e24f
leaq 0x14bbca(%rip), %rdx    # 0x199e20
leaq -0xd0(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x3da30
jmp 0x4e26b
leaq 0xe5462(%rip), %rdx     # 0x1336d4
leaq -0xb0(%rbp), %rdi
leaq -0xd0(%rbp), %rsi
callq 0x3e020
jmp 0x4e287
movq -0xfe8(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
movl $0x10, %edx
callq 0xac00
jmp 0x4e2a1
movb $0x0, -0xf1(%rbp)
leaq -0xb0(%rbp), %rdi
callq 0xac88
leaq -0xd0(%rbp), %rdi
callq 0xac88
leaq -0xf0(%rbp), %rdi
callq 0xac88
movq -0xfe8(%rbp), %rax
movq %rax, -0x90(%rbp)
leaq -0x119(%rbp), %rdi
movq %rdi, -0xff0(%rbp)
callq 0xab60
movq -0xff0(%rbp), %rdx
leaq 0xe53e7(%rip), %rsi     # 0x1336e2
leaq -0x118(%rbp), %rdi
callq 0x2d6c0
jmp 0x4e309
leaq -0x119(%rbp), %rdi
callq 0xa640
leaq -0x140(%rbp), %rdi
callq 0xa820
leaq -0x158(%rbp), %rdi
callq 0x50c10
leaq -0x170(%rbp), %rdi
callq 0x48da0
testb $0x1, 0x14bb2c(%rip)    # 0x199e6c
jne 0x4e4b4
movq -0x68(%rbp), %rdi
leaq -0x140(%rbp), %rsi
callq 0xa0d0
jmp 0x4e358
leaq -0x188(%rbp), %rdi
leaq -0x140(%rbp), %rsi
movl $0x2c, %edx
callq 0x7bbe0
jmp 0x4e372
leaq -0x170(%rbp), %rdi
leaq -0x188(%rbp), %rsi
callq 0x50c30
leaq -0x188(%rbp), %rdi
callq 0x3dfa0
jmp 0x4e4cb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x4e3b9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x48(%rbp), %rdi
callq 0xac88
leaq -0x49(%rbp), %rdi
callq 0xa640
jmp 0x50804
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x50804
movq -0xfe0(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
movl $0x208, %esi            # imm = 0x208
callq 0xa5e0
jmp 0x50804
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x507f8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x4e465
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x4e459
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x4e44d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0xb0(%rbp), %rdi
callq 0xac88
leaq -0xd0(%rbp), %rdi
callq 0xac88
leaq -0xf0(%rbp), %rdi
callq 0xac88
testb $0x1, -0xf1(%rbp)
jne 0x4e470
jmp 0x4e481
movq -0xfe8(%rbp), %rdi
movl $0x200, %esi            # imm = 0x200
callq 0xa5e0
jmp 0x507f8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x119(%rbp), %rdi
callq 0xa640
jmp 0x507f8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x507c8
leaq 0xe5234(%rip), %rsi     # 0x1336ef
leaq -0x140(%rbp), %rdi
callq 0xa810
jmp 0x4e4c9
jmp 0x4e4cb
leaq -0x1a8(%rbp), %rdi
movq %rdi, -0xff8(%rbp)
callq 0xa820
movq -0xff8(%rbp), %rsi
movq -0x68(%rbp), %rdi
callq 0xa0d0
jmp 0x4e4f0
leaq -0x1c0(%rbp), %rdi
leaq -0x1a8(%rbp), %rsi
movl $0x2c, %edx
callq 0x7bbe0
jmp 0x4e50a
leaq -0x1d8(%rbp), %rdi
callq 0x50c10
leaq -0x1f8(%rbp), %rdi
movq %rdi, -0x1000(%rbp)
callq 0xa820
movq -0x1000(%rbp), %rsi
movq -0x68(%rbp), %rdi
callq 0xa0d0
jmp 0x4e53b
leaq -0x210(%rbp), %rdi
leaq -0x1f8(%rbp), %rsi
movl $0x2c, %edx
callq 0x7bbe0
jmp 0x4e555
leaq -0x228(%rbp), %rdi
callq 0x50c10
leaq -0x248(%rbp), %rdi
movq %rdi, -0x1008(%rbp)
callq 0xa820
movq -0x1008(%rbp), %rsi
movq -0x68(%rbp), %rdi
callq 0xa0d0
jmp 0x4e586
leaq -0x260(%rbp), %rdi
leaq -0x248(%rbp), %rsi
movl $0x2c, %edx
callq 0x7bbe0
jmp 0x4e5a0
leaq -0x278(%rbp), %rdi
callq 0x50c10
testb $0x1, 0x14b8ba(%rip)    # 0x199e6d
jne 0x4e6a3
leaq -0x260(%rbp), %rdi
callq 0x3ffd0
cmpq $0x1, %rax
ja 0x4e5f3
leaq -0x210(%rbp), %rdi
callq 0x3ffd0
cmpq $0x1, %rax
ja 0x4e5f3
leaq -0x1c0(%rbp), %rdi
callq 0x3ffd0
cmpq $0x1, %rax
jbe 0x4e6a3
movq 0x14a9f6(%rip), %rdi    # 0x198ff0
leaq 0xe50fb(%rip), %rsi     # 0x1336fc
callq 0xa5c0
movq %rax, -0x1010(%rbp)
jmp 0x4e60f
movq -0x1010(%rbp), %rdi
movq 0x14a96b(%rip), %rsi    # 0x198f88
callq 0xa610
jmp 0x4e624
movq 0x14a9c5(%rip), %rdi    # 0x198ff0
leaq 0xe510f(%rip), %rsi     # 0x133741
callq 0xa5c0
movq %rax, -0x1018(%rbp)
jmp 0x4e640
movq -0x1018(%rbp), %rdi
movq 0x14a93a(%rip), %rsi    # 0x198f88
callq 0xa610
jmp 0x4e655
movl $0x1, %edi
callq 0xa700
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x507bc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x50798
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x50774
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x5075c
movl $0x0, -0x27c(%rbp)
leaq -0x318(%rbp), %rdi
callq 0x50c60
jmp 0x4e6bb
movl $0x0, -0x31c(%rbp)
movl $0x0, -0x320(%rbp)
leaq -0x338(%rbp), %rdi
callq 0x48410
leaq -0x350(%rbp), %rdi
callq 0x48410
leaq -0x368(%rbp), %rdi
callq 0x48410
leaq -0x380(%rbp), %rdi
callq 0x48410
leaq -0x398(%rbp), %rdi
callq 0x48da0
movq -0x28(%rbp), %rdi
leaq -0x20(%rbp), %rsi
callq 0xa0d0
movq %rax, -0x1020(%rbp)
jmp 0x4e721
movq -0x1020(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0xa740
movb %al, -0x1021(%rbp)
jmp 0x4e73f
movb -0x1021(%rbp), %al
testb $0x1, %al
jne 0x4e74e
jmp 0x502c5
xorl %eax, %eax
movl %eax, %esi
leaq -0x20(%rbp), %rdi
callq 0xac60
movq %rax, -0x1030(%rbp)
jmp 0x4e764
movq -0x1030(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x23, %eax
jne 0x4e7af
leaq -0x20(%rbp), %rdi
movl $0x1, %esi
callq 0xac60
movq %rax, -0x1038(%rbp)
jmp 0x4e78a
movq -0x1038(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x23, %eax
jne 0x4e7af
jmp 0x4e70b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x50720
xorl %eax, %eax
movl %eax, %esi
leaq -0x20(%rbp), %rdi
callq 0xac60
movq %rax, -0x1040(%rbp)
jmp 0x4e7c5
movq -0x1040(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x23, %eax
jne 0x4ec1f
leaq -0x20(%rbp), %rdi
movl $0x1, %esi
callq 0xac60
movq %rax, -0x1048(%rbp)
jmp 0x4e7ef
movq -0x1048(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x43, %eax
jne 0x4ec1f
leaq -0x3b0(%rbp), %rdi
leaq -0x20(%rbp), %rsi
movl $0x9, %edx
callq 0x7bbe0
jmp 0x4e819
leaq 0x14b5e0(%rip), %rdi    # 0x199e00
callq 0xaa70
testb $0x1, %al
jne 0x4e82e
jmp 0x4e8af
movq $0x9, -0x3b8(%rbp)
movq -0x3b8(%rbp), %rax
movq %rax, -0x1050(%rbp)
leaq -0x3b0(%rbp), %rdi
callq 0x3ffd0
movq %rax, %rcx
movq -0x1050(%rbp), %rax
cmpq %rcx, %rax
je 0x4e8ad
movq -0x3b8(%rbp), %rsi
leaq -0x3b0(%rbp), %rdi
callq 0x3d940
movq %rax, %rsi
leaq -0x398(%rbp), %rdi
callq 0x48dc0
jmp 0x4e886
jmp 0x4e888
movq -0x3b8(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x3b8(%rbp)
jmp 0x4e839
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x4ec0e
jmp 0x4e8e3
leaq 0x14b54a(%rip), %rsi    # 0x199e00
leaq -0x3d0(%rbp), %rdi
callq 0x80aa0
jmp 0x4e8c4
leaq -0x398(%rbp), %rdi
leaq -0x3d0(%rbp), %rsi
callq 0x50c30
leaq -0x3d0(%rbp), %rdi
callq 0x3dfa0
testb $0x1, 0x14b582(%rip)    # 0x199e6c
jne 0x4e927
leaq -0x3e8(%rbp), %rdi
leaq -0x398(%rbp), %rsi
leaq -0x170(%rbp), %rdx
callq 0x81250
jmp 0x4e908
leaq -0x158(%rbp), %rdi
leaq -0x3e8(%rbp), %rsi
callq 0x50d10
leaq -0x3e8(%rbp), %rdi
callq 0x50d40
leaq -0x400(%rbp), %rdi
leaq -0x398(%rbp), %rsi
leaq -0x1c0(%rbp), %rdx
callq 0x81250
jmp 0x4e943
leaq -0x1d8(%rbp), %rdi
leaq -0x400(%rbp), %rsi
movq %rsi, -0x1058(%rbp)
callq 0x50d10
movq -0x1058(%rbp), %rdi
callq 0x50d40
leaq -0x418(%rbp), %rdi
leaq -0x398(%rbp), %rsi
leaq -0x210(%rbp), %rdx
callq 0x81250
jmp 0x4e985
leaq -0x228(%rbp), %rdi
leaq -0x418(%rbp), %rsi
movq %rsi, -0x1060(%rbp)
callq 0x50d10
movq -0x1060(%rbp), %rdi
callq 0x50d40
leaq -0x430(%rbp), %rdi
leaq -0x398(%rbp), %rsi
leaq -0x260(%rbp), %rdx
callq 0x81250
jmp 0x4e9c7
leaq -0x278(%rbp), %rdi
leaq -0x430(%rbp), %rsi
callq 0x50d10
leaq -0x430(%rbp), %rdi
callq 0x50d40
testb $0x1, 0x14b47f(%rip)    # 0x199e6c
jne 0x4ea63
movq 0x14a5fa(%rip), %rdi    # 0x198ff0
leaq 0xe4d6b(%rip), %rsi     # 0x133768
callq 0xa5c0
jmp 0x4ea04
leaq -0x448(%rbp), %rdi
leaq -0x170(%rbp), %rsi
callq 0x3fee0
jmp 0x4ea19
movq 0x14a5d0(%rip), %rsi    # 0x198ff0
leaq -0x448(%rbp), %rdi
movl $0x9, %edx
movl $0x1, %ecx
callq 0x50da0
jmp 0x4ea38
leaq -0x448(%rbp), %rdi
callq 0x3dfa0
jmp 0x4eab2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x448(%rbp), %rdi
callq 0x3dfa0
jmp 0x4ec0e
movq 0x14a586(%rip), %rdi    # 0x198ff0
leaq 0xe4cf7(%rip), %rsi     # 0x133768
callq 0xa5c0
movq %rax, -0x1068(%rbp)
jmp 0x4ea7f
movq -0x1068(%rbp), %rdi
leaq -0x140(%rbp), %rsi
callq 0xa520
movq %rax, -0x1070(%rbp)
jmp 0x4ea9b
movq -0x1070(%rbp), %rdi
movq 0x14a4df(%rip), %rsi    # 0x198f88
callq 0xa610
jmp 0x4eab0
jmp 0x4eab2
movq 0x14a537(%rip), %rdi    # 0x198ff0
leaq 0xe4cb3(%rip), %rsi     # 0x133773
callq 0xa5c0
jmp 0x4eac7
leaq -0x460(%rbp), %rdi
leaq -0x1c0(%rbp), %rsi
callq 0x3fee0
jmp 0x4eadc
movq 0x14a50d(%rip), %rsi    # 0x198ff0
leaq -0x460(%rbp), %rdi
movl $0x9, %edx
movl $0x1, %ecx
callq 0x50da0
jmp 0x4eafb
leaq -0x460(%rbp), %rdi
callq 0x3dfa0
movq 0x14a4e2(%rip), %rdi    # 0x198ff0
leaq 0xe4c63(%rip), %rsi     # 0x133778
callq 0xa5c0
jmp 0x4eb1c
leaq -0x478(%rbp), %rdi
leaq -0x210(%rbp), %rsi
callq 0x3fee0
jmp 0x4eb31
movq 0x14a4b8(%rip), %rsi    # 0x198ff0
leaq -0x478(%rbp), %rdi
movl $0x9, %edx
movl $0x1, %ecx
callq 0x50da0
jmp 0x4eb50
leaq -0x478(%rbp), %rdi
callq 0x3dfa0
movq 0x14a48d(%rip), %rdi    # 0x198ff0
leaq 0xe4c13(%rip), %rsi     # 0x13377d
callq 0xa5c0
jmp 0x4eb71
leaq -0x490(%rbp), %rdi
leaq -0x260(%rbp), %rsi
callq 0x3fee0
jmp 0x4eb86
movq 0x14a463(%rip), %rsi    # 0x198ff0
leaq -0x490(%rbp), %rdi
movl $0x9, %edx
movl $0x1, %ecx
callq 0x50da0
jmp 0x4eba5
leaq -0x490(%rbp), %rdi
callq 0x3dfa0
leaq -0x3b0(%rbp), %rdi
callq 0x3dfa0
jmp 0x502be
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x460(%rbp), %rdi
callq 0x3dfa0
jmp 0x4ec0e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x478(%rbp), %rdi
callq 0x3dfa0
jmp 0x4ec0e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x490(%rbp), %rdi
callq 0x3dfa0
leaq -0x3b0(%rbp), %rdi
callq 0x3dfa0
jmp 0x50720
movl -0x27c(%rbp), %eax
incl %eax
movl %eax, -0x27c(%rbp)
leaq -0x4a8(%rbp), %rdi
leaq -0x20(%rbp), %rsi
movl $0x9, %edx
callq 0x7bbe0
jmp 0x4ec44
leaq -0x4a8(%rbp), %rdi
movl $0x7, %esi
callq 0x3d940
movq %rax, %rsi
leaq -0x4c0(%rbp), %rdi
movl $0x3b, %edx
callq 0x7bbe0
jmp 0x4ec6b
xorl %eax, %eax
movl %eax, %esi
leaq -0x4c0(%rbp), %rdi
callq 0x3d940
movq %rax, %rdi
leaq 0xe4afd(%rip), %rsi     # 0x133782
callq 0x50eb0
movb %al, -0x1071(%rbp)
jmp 0x4ec92
movb -0x1071(%rbp), %al
testb $0x1, %al
jne 0x4eca1
jmp 0x4f529
testb $0x1, 0x14b1c4(%rip)    # 0x199e6c
jne 0x4f283
leaq -0x608(%rbp), %rdi
callq 0x50ee0
jmp 0x4ecbc
testb $0x1, 0x14b1ab(%rip)    # 0x199e6e
je 0x4ed88
leaq -0x750(%rbp), %rdi
leaq -0x4a8(%rbp), %rsi
leaq -0x278(%rbp), %rdx
leaq -0x228(%rbp), %rcx
leaq -0x1d8(%rbp), %r8
leaq -0x158(%rbp), %r9
callq 0x7f640
jmp 0x4ecfa
leaq -0x608(%rbp), %rdi
leaq -0x750(%rbp), %rsi
callq 0x51030
leaq -0x750(%rbp), %rdi
callq 0x51170
testb $0x1, 0x14b14d(%rip)    # 0x199e6d
je 0x4ed6c
leaq -0x608(%rbp), %rdi
leaq -0x318(%rbp), %rsi
callq 0x51210
jmp 0x4ed37
jmp 0x4ed83
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x502ad
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x502a1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x4f272
leaq -0x608(%rbp), %rdi
leaq -0x318(%rbp), %rsi
callq 0x51b20
jmp 0x4ed81
jmp 0x4ed83
jmp 0x4f261
leaq -0x830(%rbp), %rdi
callq 0x51e40
jmp 0x4ed96
leaq -0x850(%rbp), %rdi
leaq -0x4c0(%rbp), %rsi
callq 0x51f50
jmp 0x4edab
leaq -0x4a8(%rbp), %rdi
movl $0x3, %esi
callq 0x3d940
movq %rax, %rsi
leaq -0x850(%rbp), %rdi
callq 0x39210
testb $0x1, %al
jne 0x4edd4
jmp 0x4eec5
leaq -0x951(%rbp), %rdi
movq %rdi, -0x1080(%rbp)
callq 0xab60
movq -0x1080(%rbp), %rdx
leaq 0xe4993(%rip), %rsi     # 0x133788
leaq -0x950(%rbp), %rdi
callq 0x2d6c0
jmp 0x4ee03
movq %rsp, %rax
leaq -0x950(%rbp), %rcx
movq %rcx, (%rax)
leaq -0x930(%rbp), %rdi
leaq -0x4a8(%rbp), %rsi
leaq -0x278(%rbp), %rdx
leaq -0x228(%rbp), %rcx
leaq -0x1d8(%rbp), %r8
leaq -0x158(%rbp), %r9
callq 0x7ea40
jmp 0x4ee41
leaq -0x830(%rbp), %rdi
leaq -0x930(%rbp), %rsi
callq 0x52160
leaq -0x930(%rbp), %rdi
callq 0x52220
leaq -0x950(%rbp), %rdi
callq 0xac88
leaq -0x951(%rbp), %rdi
callq 0xa640
jmp 0x4efcd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x4f253
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x4eeb4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x950(%rbp), %rdi
callq 0xac88
leaq -0x951(%rbp), %rdi
callq 0xa640
jmp 0x4f247
leaq -0x4a8(%rbp), %rdi
movl $0x4, %esi
callq 0x3d940
movq %rax, %rsi
leaq -0x850(%rbp), %rdi
callq 0x39210
testb $0x1, %al
jne 0x4eeee
jmp 0x4efcb
leaq -0xa59(%rbp), %rdi
movq %rdi, -0x1088(%rbp)
callq 0xab60
movq -0x1088(%rbp), %rdx
leaq 0xfda34(%rip), %rsi     # 0x14c943
leaq -0xa58(%rbp), %rdi
callq 0x2d6c0
jmp 0x4ef1d
movq %rsp, %rax
leaq -0xa58(%rbp), %rcx
movq %rcx, (%rax)
leaq -0xa38(%rbp), %rdi
leaq -0x4a8(%rbp), %rsi
leaq -0x278(%rbp), %rdx
leaq -0x228(%rbp), %rcx
leaq -0x1d8(%rbp), %r8
leaq -0x158(%rbp), %r9
callq 0x7ea40
jmp 0x4ef5b
leaq -0x830(%rbp), %rdi
leaq -0xa38(%rbp), %rsi
callq 0x52160
leaq -0xa38(%rbp), %rdi
callq 0x52220
leaq -0xa58(%rbp), %rdi
callq 0xac88
leaq -0xa59(%rbp), %rdi
callq 0xa640
jmp 0x4efcb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x4efba
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0xa58(%rbp), %rdi
callq 0xac88
leaq -0xa59(%rbp), %rdi
callq 0xa640
jmp 0x4f247
jmp 0x4efcd
movsd 0xe32e3(%rip), %xmm0    # 0x1322b8
subsd -0x7e8(%rbp), %xmm0
mulsd -0x7e0(%rbp), %xmm0
mulsd -0x7d8(%rbp), %xmm0
movsd 0xe32c3(%rip), %xmm2    # 0x1322b8
subsd -0x7d0(%rbp), %xmm2
movsd -0x7e8(%rbp), %xmm1
movsd 0xe32ab(%rip), %xmm3    # 0x1322b8
subsd -0x7e0(%rbp), %xmm3
mulsd %xmm3, %xmm1
mulsd -0x7d8(%rbp), %xmm1
movsd 0xe328f(%rip), %xmm3    # 0x1322b8
subsd -0x7d0(%rbp), %xmm3
mulsd %xmm3, %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
addsd -0x318(%rbp), %xmm0
movsd %xmm0, -0x318(%rbp)
movsd 0xe324c(%rip), %xmm0    # 0x1322b8
subsd -0x7e8(%rbp), %xmm0
mulsd -0x7e0(%rbp), %xmm0
mulsd -0x7d8(%rbp), %xmm0
movsd 0xe322c(%rip), %xmm2    # 0x1322b8
subsd -0x7d0(%rbp), %xmm2
movsd -0x7e8(%rbp), %xmm1
movsd 0xe3214(%rip), %xmm3    # 0x1322b8
subsd -0x7e0(%rbp), %xmm3
mulsd %xmm3, %xmm1
mulsd -0x7d8(%rbp), %xmm1
movsd 0xe31f8(%rip), %xmm3    # 0x1322b8
subsd -0x7d0(%rbp), %xmm3
mulsd %xmm3, %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
addsd -0x310(%rbp), %xmm0
movsd %xmm0, -0x310(%rbp)
movsd -0x7e0(%rbp), %xmm0
ucomisd -0x7d8(%rbp), %xmm0
jbe 0x4f196
movsd 0xe31b6(%rip), %xmm0    # 0x1322b8
subsd -0x7e8(%rbp), %xmm0
mulsd -0x7e0(%rbp), %xmm0
mulsd -0x7e0(%rbp), %xmm0
movsd 0xe3196(%rip), %xmm2    # 0x1322b8
subsd -0x7d0(%rbp), %xmm2
movsd -0x7e8(%rbp), %xmm1
movsd 0xe317e(%rip), %xmm3    # 0x1322b8
subsd -0x7e0(%rbp), %xmm3
mulsd %xmm3, %xmm1
mulsd -0x7e0(%rbp), %xmm1
movsd 0xe3162(%rip), %xmm3    # 0x1322b8
subsd -0x7d0(%rbp), %xmm3
mulsd %xmm3, %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
addsd -0x2e8(%rbp), %xmm0
movsd %xmm0, -0x2e8(%rbp)
jmp 0x4f22d
movsd 0xe311a(%rip), %xmm0    # 0x1322b8
subsd -0x7e8(%rbp), %xmm0
mulsd -0x7d8(%rbp), %xmm0
mulsd -0x7d8(%rbp), %xmm0
movsd 0xe30fa(%rip), %xmm2    # 0x1322b8
subsd -0x7d0(%rbp), %xmm2
movsd -0x7e8(%rbp), %xmm1
movsd 0xe30e2(%rip), %xmm3    # 0x1322b8
subsd -0x7d8(%rbp), %xmm3
mulsd %xmm3, %xmm1
mulsd -0x7d8(%rbp), %xmm1
movsd 0xe30c6(%rip), %xmm3    # 0x1322b8
subsd -0x7d0(%rbp), %xmm3
mulsd %xmm3, %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
addsd -0x2e8(%rbp), %xmm0
movsd %xmm0, -0x2e8(%rbp)
leaq -0x850(%rbp), %rdi
callq 0xac88
leaq -0x830(%rbp), %rdi
callq 0x52220
jmp 0x4f261
leaq -0x850(%rbp), %rdi
callq 0xac88
leaq -0x830(%rbp), %rdi
callq 0x52220
jmp 0x4f272
leaq -0x608(%rbp), %rdi
callq 0x51170
jmp 0x4f527
leaq -0x608(%rbp), %rdi
callq 0x51170
jmp 0x502a1
leaq -0xa80(%rbp), %rdi
leaq -0x4c0(%rbp), %rsi
callq 0x51f50
jmp 0x4f298
leaq -0xbc8(%rbp), %rdi
callq 0x50ee0
jmp 0x4f2a6
leaq -0x4a8(%rbp), %rdi
movl $0x3, %esi
callq 0x3d940
movq %rax, %rsi
leaq -0xa80(%rbp), %rdi
callq 0x39210
testb $0x1, %al
jne 0x4f2cf
jmp 0x4f3b3
leaq -0xd31(%rbp), %rdi
movq %rdi, -0x1090(%rbp)
callq 0xab60
movq -0x1090(%rbp), %rdx
leaq 0xe4498(%rip), %rsi     # 0x133788
leaq -0xd30(%rbp), %rdi
callq 0x2d6c0
jmp 0x4f2fe
leaq -0xd10(%rbp), %rdi
leaq -0x4a8(%rbp), %rsi
leaq -0x278(%rbp), %rdx
leaq -0x228(%rbp), %rcx
leaq -0x1d8(%rbp), %r8
leaq -0xd30(%rbp), %r9
callq 0x7e0a0
jmp 0x4f32f
leaq -0xbc8(%rbp), %rdi
leaq -0xd10(%rbp), %rsi
callq 0x51030
leaq -0xd10(%rbp), %rdi
callq 0x51170
leaq -0xd30(%rbp), %rdi
callq 0xac88
leaq -0xd31(%rbp), %rdi
callq 0xa640
jmp 0x4f4ab
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x4f516
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x4f3a2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0xd30(%rbp), %rdi
callq 0xac88
leaq -0xd31(%rbp), %rdi
callq 0xa640
jmp 0x4f50a
leaq -0x4a8(%rbp), %rdi
movl $0x4, %esi
callq 0x3d940
movq %rax, %rsi
leaq -0xa80(%rbp), %rdi
callq 0x39210
testb $0x1, %al
jne 0x4f3dc
jmp 0x4f4a9
leaq -0xea1(%rbp), %rdi
movq %rdi, -0x1098(%rbp)
callq 0xab60
movq -0x1098(%rbp), %rdx
leaq 0xfd546(%rip), %rsi     # 0x14c943
leaq -0xea0(%rbp), %rdi
callq 0x2d6c0
jmp 0x4f40b
leaq -0xe80(%rbp), %rdi
leaq -0x4a8(%rbp), %rsi
leaq -0x278(%rbp), %rdx
leaq -0x228(%rbp), %rcx
leaq -0x1d8(%rbp), %r8
leaq -0xea0(%rbp), %r9
callq 0x7e0a0
jmp 0x4f43c
leaq -0xbc8(%rbp), %rdi
leaq -0xe80(%rbp), %rsi
callq 0x51030
leaq -0xe80(%rbp), %rdi
callq 0x51170
leaq -0xea0(%rbp), %rdi
callq 0xac88
leaq -0xea1(%rbp), %rdi
callq 0xa640
jmp 0x4f4a9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x4f49b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0xea0(%rbp), %rdi
callq 0xac88
leaq -0xea1(%rbp), %rdi
callq 0xa640
jmp 0x4f50a
jmp 0x4f4ab
testb $0x1, 0x14a9bb(%rip)    # 0x199e6d
je 0x4f4d9
leaq -0xbc8(%rbp), %rdi
leaq -0x318(%rbp), %rsi
callq 0x51210
jmp 0x4f4c9
jmp 0x4f4f0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x4f50a
leaq -0xbc8(%rbp), %rdi
leaq -0x318(%rbp), %rsi
callq 0x51b20
jmp 0x4f4ee
jmp 0x4f4f0
leaq -0xbc8(%rbp), %rdi
callq 0x51170
leaq -0xa80(%rbp), %rdi
callq 0xac88
jmp 0x4f527
leaq -0xbc8(%rbp), %rdi
callq 0x51170
leaq -0xa80(%rbp), %rdi
callq 0xac88
jmp 0x502a1
jmp 0x4f538
movl 0x14a92d(%rip), %eax    # 0x199e5c
addl $0x1, %eax
movl %eax, 0x14a924(%rip)    # 0x199e5c
movl 0x14a926(%rip), %eax    # 0x199e64
cltd
idivl 0x14a17f(%rip)          # 0x1996c4
cmpl $0x0, %edx
jne 0x4f95b
movl 0x14a910(%rip), %eax    # 0x199e64
cmpl -0x320(%rbp), %eax
je 0x4f95b
leaq -0xec0(%rbp), %rdi
leaq -0x118(%rbp), %rsi
movl $0x9, %edx
callq 0x7bbe0
jmp 0x4f57a
leaq -0xec0(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x3d940
movq %rax, -0x10a0(%rbp)
leaq -0x4a8(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x3d940
movq -0x10a0(%rbp), %rdi
movq %rax, %rsi
callq 0x39210
testb $0x1, %al
jne 0x4f5b9
jmp 0x4f8b2
leaq 0xe691e(%rip), %rdx     # 0x135ede
leaq -0xf00(%rbp), %rdi
leaq -0x118(%rbp), %rsi
callq 0x3da80
jmp 0x4f5d5
leaq -0x4a8(%rbp), %rdi
movl $0x1, %esi
callq 0x3d940
movq %rax, %rdx
leaq -0xee0(%rbp), %rdi
leaq -0xf00(%rbp), %rsi
callq 0x3da30
jmp 0x4f5fe
leaq -0x118(%rbp), %rdi
leaq -0xee0(%rbp), %rsi
callq 0xa710
leaq -0xee0(%rbp), %rdi
callq 0xac88
leaq -0xf00(%rbp), %rdi
callq 0xac88
movsd -0x2f8(%rbp), %xmm0
divsd -0x2c8(%rbp), %xmm0
movsd 0xe2c77(%rip), %xmm1    # 0x1322b8
ucomisd %xmm1, %xmm0
jbe 0x4f717
movq 0x14999e(%rip), %rdi    # 0x198ff0
leaq 0xe4133(%rip), %rsi     # 0x13378c
callq 0xa5c0
movq %rax, -0x10a8(%rbp)
jmp 0x4f667
movq -0x10a8(%rbp), %rdi
movsd -0x2f8(%rbp), %xmm0
callq 0xabd0
movq %rax, -0x10b0(%rbp)
jmp 0x4f684
movq -0x10b0(%rbp), %rdi
movq 0x1498f6(%rip), %rsi    # 0x198f88
callq 0xa610
jmp 0x4f699
movq 0x149950(%rip), %rdi    # 0x198ff0
leaq 0xe40eb(%rip), %rsi     # 0x133792
callq 0xa5c0
movq %rax, -0x10b8(%rbp)
jmp 0x4f6b5
movq -0x10b8(%rbp), %rdi
movsd -0x2c8(%rbp), %xmm0
callq 0xabd0
movq %rax, -0x10c0(%rbp)
jmp 0x4f6d2
movq -0x10c0(%rbp), %rdi
movq 0x1498a8(%rip), %rsi    # 0x198f88
callq 0xa610
jmp 0x4f6e7
jmp 0x4f717
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x4f94a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0xf00(%rbp), %rdi
callq 0xac88
jmp 0x4f94a
movq -0x90(%rbp), %rdi
leaq -0x118(%rbp), %rsi
callq 0xa520
movq %rax, -0x10c8(%rbp)
jmp 0x4f733
movq -0x10c8(%rbp), %rdi
leaq 0xe679d(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x10d0(%rbp)
jmp 0x4f74f
movq -0x10d0(%rbp), %rdi
movsd -0x2f8(%rbp), %xmm0
movsd -0x2f0(%rbp), %xmm1
divsd %xmm1, %xmm0
callq 0xabd0
movq %rax, -0x10d8(%rbp)
jmp 0x4f778
movq -0x10d8(%rbp), %rdi
leaq 0xe6758(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x10e0(%rbp)
jmp 0x4f794
movq -0x10e0(%rbp), %rdi
movsd -0x2e0(%rbp), %xmm1
movsd -0x2b0(%rbp), %xmm0
divsd %xmm1, %xmm0
callq 0xabd0
movq %rax, -0x10e8(%rbp)
jmp 0x4f7bd
movq -0x10e8(%rbp), %rdi
leaq 0xe6713(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x10f0(%rbp)
jmp 0x4f7d9
movq -0x10f0(%rbp), %rdi
movsd -0x2f8(%rbp), %xmm0
movsd -0x2c8(%rbp), %xmm1
divsd %xmm1, %xmm0
callq 0xabd0
movq %rax, -0x10f8(%rbp)
jmp 0x4f802
movq -0x10f8(%rbp), %rdi
movq 0x149778(%rip), %rsi    # 0x198f88
callq 0xa610
jmp 0x4f817
xorl %eax, %eax
movl %eax, %esi
leaq -0x4a8(%rbp), %rdi
callq 0x3d940
movq %rax, %rsi
leaq 0xe66ad(%rip), %rdx     # 0x135ede
leaq -0xf40(%rbp), %rdi
callq 0x3da80
jmp 0x4f83f
leaq -0x4a8(%rbp), %rdi
movl $0x1, %esi
callq 0x3d940
movq %rax, %rdx
leaq -0xf20(%rbp), %rdi
leaq -0xf40(%rbp), %rsi
callq 0x3da30
jmp 0x4f868
leaq -0x118(%rbp), %rdi
leaq -0xf20(%rbp), %rsi
callq 0xa710
leaq -0xf20(%rbp), %rdi
callq 0xac88
leaq -0xf40(%rbp), %rdi
callq 0xac88
jmp 0x4f8f9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0xf40(%rbp), %rdi
callq 0xac88
jmp 0x4f94a
xorl %eax, %eax
movl %eax, %esi
leaq -0x4a8(%rbp), %rdi
callq 0x3d940
movq %rax, %rsi
leaq 0xe3e20(%rip), %rdx     # 0x1336ec
leaq -0xf60(%rbp), %rdi
callq 0x3da80
jmp 0x4f8da
leaq -0x118(%rbp), %rdi
leaq -0xf60(%rbp), %rsi
callq 0xa710
leaq -0xf60(%rbp), %rdi
callq 0xac88
xorps %xmm0, %xmm0
movsd %xmm0, -0x2f8(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x2f0(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x2b0(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x2e0(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x2c8(%rbp)
movl 0x14a52e(%rip), %eax    # 0x199e64
movl %eax, -0x320(%rbp)
leaq -0xec0(%rbp), %rdi
callq 0x3dfa0
jmp 0x4f95b
leaq -0xec0(%rbp), %rdi
callq 0x3dfa0
jmp 0x502a1
movl 0x14a503(%rip), %eax    # 0x199e64
cltd
idivl 0x149d58(%rip)          # 0x1996c0
cmpl $0x0, %edx
jne 0x50287
movl 0x14a4ed(%rip), %eax    # 0x199e64
cmpl -0x31c(%rbp), %eax
je 0x50287
testb $0x1, 0x14a4e3(%rip)    # 0x199e6d
je 0x4f9e1
movl 0x14a4b2(%rip), %eax    # 0x199e44
addl 0x14a4a8(%rip), %eax    # 0x199e40
addl 0x14a4aa(%rip), %eax    # 0x199e48
addl 0x14a4b8(%rip), %eax    # 0x199e5c
addl 0x14a4b6(%rip), %eax    # 0x199e60
addl 0x14a4b4(%rip), %eax    # 0x199e64
addl 0x14a4a2(%rip), %eax    # 0x199e58
cmpl -0x27c(%rbp), %eax
jne 0x4f9c0
jmp 0x4f9df
leaq 0xe3dd6(%rip), %rdi     # 0x13379d
leaq 0xe3e9a(%rip), %rsi     # 0x133868
movl $0x14d, %edx            # imm = 0x14D
leaq 0xe3ea0(%rip), %rcx     # 0x13387a
callq 0xa390
jmp 0x4f9e1
movl 0x14a47d(%rip), %eax    # 0x199e64
imull $0x6, 0x149cd2(%rip), %ecx # 0x1996c0
cmpl %ecx, %eax
jle 0x4fe27
leaq -0x338(%rbp), %rdi
callq 0x52290
movsd %xmm0, -0x1100(%rbp)
jmp 0x4fa0c
movsd -0x1100(%rbp), %xmm0
movsd %xmm0, -0xf68(%rbp)
leaq -0x350(%rbp), %rdi
callq 0x52290
movsd %xmm0, -0x1108(%rbp)
jmp 0x4fa32
movsd -0x1108(%rbp), %xmm0
movsd %xmm0, -0xf70(%rbp)
leaq -0x368(%rbp), %rdi
callq 0x52290
movsd %xmm0, -0x1110(%rbp)
jmp 0x4fa58
movsd -0x1110(%rbp), %xmm0
movsd %xmm0, -0xf78(%rbp)
leaq -0x380(%rbp), %rdi
callq 0x52290
movsd %xmm0, -0x1118(%rbp)
jmp 0x4fa7e
movsd -0x1118(%rbp), %xmm0
movsd %xmm0, -0xf80(%rbp)
movl -0x27c(%rbp), %esi
movq 0x149555(%rip), %rdi    # 0x198ff0
callq 0xab20
movq %rax, -0x1120(%rbp)
jmp 0x4faa9
movq -0x1120(%rbp), %rdi
leaq 0xe3dd5(%rip), %rsi     # 0x13388c
callq 0xa5c0
movq %rax, -0x1128(%rbp)
jmp 0x4fac5
movq -0x1128(%rbp), %rdi
movl 0x14a392(%rip), %esi    # 0x199e64
callq 0xab20
movq %rax, -0x1130(%rbp)
jmp 0x4fae0
movq -0x1130(%rbp), %rdi
leaq 0xe3db4(%rip), %rsi     # 0x1338a2
callq 0xa5c0
movq %rax, -0x1138(%rbp)
jmp 0x4fafc
movq -0x1138(%rbp), %rdi
movsd -0x318(%rbp), %xmm0
movsd -0x310(%rbp), %xmm1
divsd %xmm1, %xmm0
callq 0xabd0
movq %rax, -0x1140(%rbp)
jmp 0x4fb25
movq -0x1140(%rbp), %rdi
leaq 0xe3d83(%rip), %rsi     # 0x1338b6
callq 0xa5c0
movq %rax, -0x1148(%rbp)
jmp 0x4fb41
movq -0x1148(%rbp), %rdi
movsd -0xf68(%rbp), %xmm0
callq 0xabd0
movq %rax, -0x1150(%rbp)
jmp 0x4fb5e
movq -0x1150(%rbp), %rdi
movq 0x14941c(%rip), %rsi    # 0x198f88
callq 0xa610
jmp 0x4fb73
movl -0x27c(%rbp), %esi
movq 0x149470(%rip), %rdi    # 0x198ff0
callq 0xab20
movq %rax, -0x1158(%rbp)
jmp 0x4fb8e
movq -0x1158(%rbp), %rdi
leaq 0xe3cf0(%rip), %rsi     # 0x13388c
callq 0xa5c0
movq %rax, -0x1160(%rbp)
jmp 0x4fbaa
movq -0x1160(%rbp), %rdi
movl 0x14a2ad(%rip), %esi    # 0x199e64
callq 0xab20
movq %rax, -0x1168(%rbp)
jmp 0x4fbc5
movq -0x1168(%rbp), %rdi
leaq 0xe3ced(%rip), %rsi     # 0x1338c0
callq 0xa5c0
movq %rax, -0x1170(%rbp)
jmp 0x4fbe1
movq -0x1170(%rbp), %rdi
movsd -0x2a0(%rbp), %xmm1
movsd -0x298(%rbp), %xmm0
divsd %xmm1, %xmm0
callq 0xabd0
movq %rax, -0x1178(%rbp)
jmp 0x4fc0a
movq -0x1178(%rbp), %rdi
leaq 0xe3c9e(%rip), %rsi     # 0x1338b6
callq 0xa5c0
movq %rax, -0x1180(%rbp)
jmp 0x4fc26
movq -0x1180(%rbp), %rdi
movsd -0xf70(%rbp), %xmm0
callq 0xabd0
movq %rax, -0x1188(%rbp)
jmp 0x4fc43
movq -0x1188(%rbp), %rdi
movq 0x149337(%rip), %rsi    # 0x198f88
callq 0xa610
jmp 0x4fc58
movl -0x27c(%rbp), %esi
movq 0x14938b(%rip), %rdi    # 0x198ff0
callq 0xab20
movq %rax, -0x1190(%rbp)
jmp 0x4fc73
movq -0x1190(%rbp), %rdi
leaq 0xe3c0b(%rip), %rsi     # 0x13388c
callq 0xa5c0
movq %rax, -0x1198(%rbp)
jmp 0x4fc8f
movq -0x1198(%rbp), %rdi
movl 0x14a1c8(%rip), %esi    # 0x199e64
callq 0xab20
movq %rax, -0x11a0(%rbp)
jmp 0x4fcaa
movq -0x11a0(%rbp), %rdi
leaq 0xe3c1e(%rip), %rsi     # 0x1338d6
callq 0xa5c0
movq %rax, -0x11a8(%rbp)
jmp 0x4fcc6
movq -0x11a8(%rbp), %rdi
movsd -0x2e8(%rbp), %xmm1
movsd -0x2b8(%rbp), %xmm0
divsd %xmm1, %xmm0
callq 0xabd0
movq %rax, -0x11b0(%rbp)
jmp 0x4fcef
movq -0x11b0(%rbp), %rdi
leaq 0xe3bb9(%rip), %rsi     # 0x1338b6
callq 0xa5c0
movq %rax, -0x11b8(%rbp)
jmp 0x4fd0b
movq -0x11b8(%rbp), %rdi
movsd -0xf78(%rbp), %xmm0
callq 0xabd0
movq %rax, -0x11c0(%rbp)
jmp 0x4fd28
movq -0x11c0(%rbp), %rdi
movq 0x149252(%rip), %rsi    # 0x198f88
callq 0xa610
jmp 0x4fd3d
movl -0x27c(%rbp), %esi
movq 0x1492a6(%rip), %rdi    # 0x198ff0
callq 0xab20
movq %rax, -0x11c8(%rbp)
jmp 0x4fd58
movq -0x11c8(%rbp), %rdi
leaq 0xe3b26(%rip), %rsi     # 0x13388c
callq 0xa5c0
movq %rax, -0x11d0(%rbp)
jmp 0x4fd74
movq -0x11d0(%rbp), %rdi
movl 0x14a0e3(%rip), %esi    # 0x199e64
callq 0xab20
movq %rax, -0x11d8(%rbp)
jmp 0x4fd8f
movq -0x11d8(%rbp), %rdi
leaq 0xe3b4f(%rip), %rsi     # 0x1338ec
callq 0xa5c0
movq %rax, -0x11e0(%rbp)
jmp 0x4fdab
movq -0x11e0(%rbp), %rdi
movsd -0x318(%rbp), %xmm0
movsd -0x2d0(%rbp), %xmm1
divsd %xmm1, %xmm0
callq 0xabd0
movq %rax, -0x11e8(%rbp)
jmp 0x4fdd4
movq -0x11e8(%rbp), %rdi
leaq 0xe3ad4(%rip), %rsi     # 0x1338b6
callq 0xa5c0
movq %rax, -0x11f0(%rbp)
jmp 0x4fdf0
movq -0x11f0(%rbp), %rdi
movsd -0xf80(%rbp), %xmm0
callq 0xabd0
movq %rax, -0x11f8(%rbp)
jmp 0x4fe0d
movq -0x11f8(%rbp), %rdi
movq 0x14916d(%rip), %rsi    # 0x198f88
callq 0xa610
jmp 0x4fe22
jmp 0x500d9
movl -0x27c(%rbp), %esi
movq 0x1491bc(%rip), %rdi    # 0x198ff0
callq 0xab20
movq %rax, -0x1200(%rbp)
jmp 0x4fe42
movq -0x1200(%rbp), %rdi
leaq 0xe3a3c(%rip), %rsi     # 0x13388c
callq 0xa5c0
movq %rax, -0x1208(%rbp)
jmp 0x4fe5e
movq -0x1208(%rbp), %rdi
movl 0x149ff9(%rip), %esi    # 0x199e64
callq 0xab20
movq %rax, -0x1210(%rbp)
jmp 0x4fe79
movq -0x1210(%rbp), %rdi
leaq 0xe3a1b(%rip), %rsi     # 0x1338a2
callq 0xa5c0
movq %rax, -0x1218(%rbp)
jmp 0x4fe95
movq -0x1218(%rbp), %rdi
movsd -0x318(%rbp), %xmm0
movsd -0x310(%rbp), %xmm1
divsd %xmm1, %xmm0
callq 0xabd0
movq %rax, -0x1220(%rbp)
jmp 0x4febe
movq -0x1220(%rbp), %rdi
movq 0x1490bc(%rip), %rsi    # 0x198f88
callq 0xa610
jmp 0x4fed3
movl -0x27c(%rbp), %esi
movq 0x149110(%rip), %rdi    # 0x198ff0
callq 0xab20
movq %rax, -0x1228(%rbp)
jmp 0x4feee
movq -0x1228(%rbp), %rdi
leaq 0xe3990(%rip), %rsi     # 0x13388c
callq 0xa5c0
movq %rax, -0x1230(%rbp)
jmp 0x4ff0a
movq -0x1230(%rbp), %rdi
movl 0x149f4d(%rip), %esi    # 0x199e64
callq 0xab20
movq %rax, -0x1238(%rbp)
jmp 0x4ff25
movq -0x1238(%rbp), %rdi
leaq 0xe398d(%rip), %rsi     # 0x1338c0
callq 0xa5c0
movq %rax, -0x1240(%rbp)
jmp 0x4ff41
movq -0x1240(%rbp), %rdi
movsd -0x2a0(%rbp), %xmm1
movsd -0x298(%rbp), %xmm0
divsd %xmm1, %xmm0
callq 0xabd0
movq %rax, -0x1248(%rbp)
jmp 0x4ff6a
movq -0x1248(%rbp), %rdi
movq 0x149010(%rip), %rsi    # 0x198f88
callq 0xa610
jmp 0x4ff7f
movl -0x27c(%rbp), %esi
movq 0x149064(%rip), %rdi    # 0x198ff0
callq 0xab20
movq %rax, -0x1250(%rbp)
jmp 0x4ff9a
movq -0x1250(%rbp), %rdi
leaq 0xe38e4(%rip), %rsi     # 0x13388c
callq 0xa5c0
movq %rax, -0x1258(%rbp)
jmp 0x4ffb6
movq -0x1258(%rbp), %rdi
movl 0x149ea1(%rip), %esi    # 0x199e64
callq 0xab20
movq %rax, -0x1260(%rbp)
jmp 0x4ffd1
movq -0x1260(%rbp), %rdi
leaq 0xe38f7(%rip), %rsi     # 0x1338d6
callq 0xa5c0
movq %rax, -0x1268(%rbp)
jmp 0x4ffed
movq -0x1268(%rbp), %rdi
movsd -0x2e8(%rbp), %xmm1
movsd -0x2b8(%rbp), %xmm0
divsd %xmm1, %xmm0
callq 0xabd0
movq %rax, -0x1270(%rbp)
jmp 0x50016
movq -0x1270(%rbp), %rdi
movq 0x148f64(%rip), %rsi    # 0x198f88
callq 0xa610
jmp 0x5002b
movl -0x27c(%rbp), %esi
movq 0x148fb8(%rip), %rdi    # 0x198ff0
callq 0xab20
movq %rax, -0x1278(%rbp)
jmp 0x50046
movq -0x1278(%rbp), %rdi
leaq 0xe3838(%rip), %rsi     # 0x13388c
callq 0xa5c0
movq %rax, -0x1280(%rbp)
jmp 0x50062
movq -0x1280(%rbp), %rdi
movl 0x149df5(%rip), %esi    # 0x199e64
callq 0xab20
movq %rax, -0x1288(%rbp)
jmp 0x5007d
movq -0x1288(%rbp), %rdi
leaq 0xe3861(%rip), %rsi     # 0x1338ec
callq 0xa5c0
movq %rax, -0x1290(%rbp)
jmp 0x50099
movq -0x1290(%rbp), %rdi
movsd -0x318(%rbp), %xmm0
movsd -0x2d0(%rbp), %xmm1
divsd %xmm1, %xmm0
callq 0xabd0
movq %rax, -0x1298(%rbp)
jmp 0x500c2
movq -0x1298(%rbp), %rdi
movq 0x148eb8(%rip), %rsi    # 0x198f88
callq 0xa610
jmp 0x500d7
jmp 0x500d9
movq 0x148f10(%rip), %rdi    # 0x198ff0
leaq 0xe381c(%rip), %rsi     # 0x133903
callq 0xa5c0
movq %rax, -0x12a0(%rbp)
jmp 0x500f5
movq -0x12a0(%rbp), %rdi
movl 0x1495be(%rip), %esi    # 0x1996c0
callq 0xab20
movq %rax, -0x12a8(%rbp)
jmp 0x50110
movq -0x12a8(%rbp), %rdi
leaq 0xe37f0(%rip), %rsi     # 0x13390e
callq 0xa5c0
movq %rax, -0x12b0(%rbp)
jmp 0x5012c
movq -0x12b0(%rbp), %rdi
movsd -0x308(%rbp), %xmm0
movsd -0x300(%rbp), %xmm1
divsd %xmm1, %xmm0
callq 0xabd0
movq %rax, -0x12b8(%rbp)
jmp 0x50155
movq -0x12b8(%rbp), %rdi
movq 0x148e25(%rip), %rsi    # 0x198f88
callq 0xa610
jmp 0x5016a
movsd -0x308(%rbp), %xmm0
movsd -0x300(%rbp), %xmm1
divsd %xmm1, %xmm0
movsd %xmm0, -0xf88(%rbp)
leaq -0x338(%rbp), %rdi
leaq -0xf88(%rbp), %rsi
callq 0x48450
jmp 0x5019b
movsd -0x290(%rbp), %xmm0
movsd -0x288(%rbp), %xmm1
divsd %xmm1, %xmm0
movsd %xmm0, -0xf90(%rbp)
leaq -0x350(%rbp), %rdi
leaq -0xf90(%rbp), %rsi
callq 0x48450
jmp 0x501cc
movsd -0x2d8(%rbp), %xmm1
movsd -0x2a8(%rbp), %xmm0
divsd %xmm1, %xmm0
movsd %xmm0, -0xf98(%rbp)
leaq -0x368(%rbp), %rdi
leaq -0xf98(%rbp), %rsi
callq 0x48450
jmp 0x501fd
movsd -0x308(%rbp), %xmm0
movsd -0x2c0(%rbp), %xmm1
divsd %xmm1, %xmm0
movsd %xmm0, -0xfa0(%rbp)
leaq -0x380(%rbp), %rdi
leaq -0xfa0(%rbp), %rsi
callq 0x48450
jmp 0x5022e
xorps %xmm0, %xmm0
movsd %xmm0, -0x308(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x300(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x2a8(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x2d8(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x290(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x288(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x2c0(%rbp)
movl 0x149be3(%rip), %eax    # 0x199e64
movl %eax, -0x31c(%rbp)
leaq -0x4c0(%rbp), %rdi
callq 0x3dfa0
leaq -0x4a8(%rbp), %rdi
callq 0x3dfa0
jmp 0x502be
leaq -0x4c0(%rbp), %rdi
callq 0x3dfa0
leaq -0x4a8(%rbp), %rdi
callq 0x3dfa0
jmp 0x50720
jmp 0x502c0
jmp 0x4e70b
leaq -0x338(%rbp), %rdi
callq 0x52290
movsd %xmm0, -0x12c0(%rbp)
jmp 0x502db
movsd -0x12c0(%rbp), %xmm0
movsd %xmm0, -0xfa8(%rbp)
leaq -0x350(%rbp), %rdi
callq 0x52290
movsd %xmm0, -0x12c8(%rbp)
jmp 0x50301
movsd -0x12c8(%rbp), %xmm0
movsd %xmm0, -0xfb0(%rbp)
leaq -0x368(%rbp), %rdi
callq 0x52290
movsd %xmm0, -0x12d0(%rbp)
jmp 0x50327
movsd -0x12d0(%rbp), %xmm0
movsd %xmm0, -0xfb8(%rbp)
leaq -0x380(%rbp), %rdi
callq 0x52290
movsd %xmm0, -0x12d8(%rbp)
jmp 0x5034d
movsd -0x12d8(%rbp), %xmm0
movsd %xmm0, -0xfc0(%rbp)
movq 0x148c8c(%rip), %rdi    # 0x198ff0
movq 0x148c1d(%rip), %rsi    # 0x198f88
callq 0xa610
jmp 0x50372
movl -0x27c(%rbp), %esi
movq 0x148c71(%rip), %rdi    # 0x198ff0
callq 0xab20
movq %rax, -0x12e0(%rbp)
jmp 0x5038d
movq -0x12e0(%rbp), %rdi
leaq 0xe3584(%rip), %rsi     # 0x13391f
callq 0xa5c0
movq %rax, -0x12e8(%rbp)
jmp 0x503a9
movq -0x12e8(%rbp), %rdi
movsd -0x318(%rbp), %xmm0
movsd -0x310(%rbp), %xmm1
divsd %xmm1, %xmm0
callq 0xabd0
movq %rax, -0x12f0(%rbp)
jmp 0x503d2
movq -0x12f0(%rbp), %rdi
leaq 0xe34d6(%rip), %rsi     # 0x1338b6
callq 0xa5c0
movq %rax, -0x12f8(%rbp)
jmp 0x503ee
movq -0x12f8(%rbp), %rdi
movsd -0xfa8(%rbp), %xmm0
callq 0xabd0
movq %rax, -0x1300(%rbp)
jmp 0x5040b
movq -0x1300(%rbp), %rdi
movq 0x148b6f(%rip), %rsi    # 0x198f88
callq 0xa610
jmp 0x50420
movl -0x27c(%rbp), %esi
movq 0x148bc3(%rip), %rdi    # 0x198ff0
callq 0xab20
movq %rax, -0x1308(%rbp)
jmp 0x5043b
movq -0x1308(%rbp), %rdi
leaq 0xe34ee(%rip), %rsi     # 0x133937
callq 0xa5c0
movq %rax, -0x1310(%rbp)
jmp 0x50457
movq -0x1310(%rbp), %rdi
movsd -0x2a0(%rbp), %xmm1
movsd -0x298(%rbp), %xmm0
divsd %xmm1, %xmm0
callq 0xabd0
movq %rax, -0x1318(%rbp)
jmp 0x50480
movq -0x1318(%rbp), %rdi
leaq 0xe3428(%rip), %rsi     # 0x1338b6
callq 0xa5c0
movq %rax, -0x1320(%rbp)
jmp 0x5049c
movq -0x1320(%rbp), %rdi
movsd -0xfb0(%rbp), %xmm0
callq 0xabd0
movq %rax, -0x1328(%rbp)
jmp 0x504b9
movq -0x1328(%rbp), %rdi
movq 0x148ac1(%rip), %rsi    # 0x198f88
callq 0xa610
jmp 0x504ce
movl -0x27c(%rbp), %esi
movq 0x148b15(%rip), %rdi    # 0x198ff0
callq 0xab20
movq %rax, -0x1330(%rbp)
jmp 0x504e9
movq -0x1330(%rbp), %rdi
leaq 0xe345a(%rip), %rsi     # 0x133951
callq 0xa5c0
movq %rax, -0x1338(%rbp)
jmp 0x50505
movq -0x1338(%rbp), %rdi
movsd -0x2e8(%rbp), %xmm1
movsd -0x2b8(%rbp), %xmm0
divsd %xmm1, %xmm0
callq 0xabd0
movq %rax, -0x1340(%rbp)
jmp 0x5052e
movq -0x1340(%rbp), %rdi
leaq 0xe337a(%rip), %rsi     # 0x1338b6
callq 0xa5c0
movq %rax, -0x1348(%rbp)
jmp 0x5054a
movq -0x1348(%rbp), %rdi
movsd -0xfb8(%rbp), %xmm0
callq 0xabd0
movq %rax, -0x1350(%rbp)
jmp 0x50567
movq -0x1350(%rbp), %rdi
movq 0x148a13(%rip), %rsi    # 0x198f88
callq 0xa610
jmp 0x5057c
movl -0x27c(%rbp), %esi
movq 0x148a67(%rip), %rdi    # 0x198ff0
callq 0xab20
movq %rax, -0x1358(%rbp)
jmp 0x50597
movq -0x1358(%rbp), %rdi
leaq 0xe33c6(%rip), %rsi     # 0x13396b
callq 0xa5c0
movq %rax, -0x1360(%rbp)
jmp 0x505b3
movq -0x1360(%rbp), %rdi
movsd -0x318(%rbp), %xmm0
movsd -0x2d0(%rbp), %xmm1
divsd %xmm1, %xmm0
callq 0xabd0
movq %rax, -0x1368(%rbp)
jmp 0x505dc
movq -0x1368(%rbp), %rdi
leaq 0xe32cc(%rip), %rsi     # 0x1338b6
callq 0xa5c0
movq %rax, -0x1370(%rbp)
jmp 0x505f8
movq -0x1370(%rbp), %rdi
movsd -0xfc0(%rbp), %xmm0
callq 0xabd0
movq %rax, -0x1378(%rbp)
jmp 0x50615
movq -0x1378(%rbp), %rdi
movq 0x148965(%rip), %rsi    # 0x198f88
callq 0xa610
jmp 0x5062a
leaq -0x398(%rbp), %rdi
callq 0x3dfa0
leaq -0x380(%rbp), %rdi
callq 0x3ecb0
leaq -0x368(%rbp), %rdi
callq 0x3ecb0
leaq -0x350(%rbp), %rdi
callq 0x3ecb0
leaq -0x338(%rbp), %rdi
callq 0x3ecb0
leaq -0x278(%rbp), %rdi
callq 0x50d40
leaq -0x260(%rbp), %rdi
callq 0x3dfa0
leaq -0x248(%rbp), %rdi
callq 0xac88
leaq -0x228(%rbp), %rdi
callq 0x50d40
leaq -0x210(%rbp), %rdi
callq 0x3dfa0
leaq -0x1f8(%rbp), %rdi
callq 0xac88
leaq -0x1d8(%rbp), %rdi
callq 0x50d40
leaq -0x1c0(%rbp), %rdi
callq 0x3dfa0
leaq -0x1a8(%rbp), %rdi
callq 0xac88
leaq -0x170(%rbp), %rdi
callq 0x3dfa0
leaq -0x158(%rbp), %rdi
callq 0x50d40
leaq -0x140(%rbp), %rdi
callq 0xac88
leaq -0x118(%rbp), %rdi
callq 0xac88
leaq -0x88(%rbp), %rdi
callq 0xac88
leaq -0x20(%rbp), %rdi
callq 0xac88
addq $0x1380, %rsp           # imm = 0x1380
popq %rbp
retq
leaq -0x398(%rbp), %rdi
callq 0x3dfa0
leaq -0x380(%rbp), %rdi
callq 0x3ecb0
leaq -0x368(%rbp), %rdi
callq 0x3ecb0
leaq -0x350(%rbp), %rdi
callq 0x3ecb0
leaq -0x338(%rbp), %rdi
callq 0x3ecb0
leaq -0x278(%rbp), %rdi
callq 0x50d40
leaq -0x260(%rbp), %rdi
callq 0x3dfa0
leaq -0x248(%rbp), %rdi
callq 0xac88
leaq -0x228(%rbp), %rdi
callq 0x50d40
leaq -0x210(%rbp), %rdi
callq 0x3dfa0
leaq -0x1f8(%rbp), %rdi
callq 0xac88
leaq -0x1d8(%rbp), %rdi
callq 0x50d40
leaq -0x1c0(%rbp), %rdi
callq 0x3dfa0
leaq -0x1a8(%rbp), %rdi
callq 0xac88
leaq -0x170(%rbp), %rdi
callq 0x3dfa0
leaq -0x158(%rbp), %rdi
callq 0x50d40
leaq -0x140(%rbp), %rdi
callq 0xac88
leaq -0x118(%rbp), %rdi
callq 0xac88
leaq -0x88(%rbp), %rdi
callq 0xac88
leaq -0x20(%rbp), %rdi
callq 0xac88
movq -0x58(%rbp), %rdi
callq 0xab50
nopw %cs:(%rax,%rax)