// File: millanek[P]evo/process_vcf_fst.cpp
// Function: getFstFromVCF()
void getFstFromVCF() {
    clock_t begin = clock();
    std::cerr << "Calculating Fst using variants from: " << opt::vcfFile << std::endl;
    std::cerr << "Between the two 'populations' defined in: " << opt::sampleSets << std::endl;
    if (opt::windowSize > 0) {
        std::cerr << "also using a sliding window of size: " << opt::windowSize << " variants and sliding in steps of: " << opt::windowStep << std::endl;
    }
    string fileRoot = "";
    //std::cerr << "Still alive: " << std::endl;
    // Open connection to read from the vcf file
    std::istream* vcfFile = createReader(opt::vcfFile.c_str());
    //std::cerr << "Hello: " << std::endl;
    std::ifstream* setsFile = new std::ifstream(opt::sampleSets.c_str());
    std::ifstream* annotFile;
    std::ifstream* accessibleGenomeBed;
    std::ofstream* snpCategoryFstFile;
    std::ofstream* regionsAboveFstFile; bool inRegAbove = false;
    std::ofstream* fstDxyFixedWindowFile;
    std::ifstream* ancSetsFile; std::ofstream* ancSetsOutFile;
    std::vector<string> ancSet1; std::vector<string> ancSet2;
    Annotation wgAnnotation;
    if (!opt::annotFile.empty()) {
        annotFile = new std::ifstream(opt::annotFile.c_str());
        Annotation Annot(annotFile, false); // Does not use transcripts annotated as 5' or 3' partial
        wgAnnotation = Annot;
        string snpCategoryFstFileName = opt::runName + "SNPcategory_fst.txt";
        snpCategoryFstFile = new std::ofstream(snpCategoryFstFileName.c_str());
        *snpCategoryFstFile << "SNPcategory" << "\t" << "thisSNPFst" << "\t" << "thisSNPDxy" << "\t" << "scaffold" << "\t" << "position" << std::endl;
    }
    if (!opt::ancSets.empty()) {
        ancSetsFile = new std::ifstream(opt::ancSets);
        string ancOutFileName = fileRoot + opt::runName + "ancestralSNPs_fst.txt";
        ancSetsOutFile = new std::ofstream(ancOutFileName);
        *ancSetsOutFile << "scaffold" << "\t" << "position" << "\t" << "AncAllelePopulation" << "\t" << "Fst" << "\t" << "ancSet1_segregating" << "\t" << "ancSet2_segregating" << std::endl;
        string ancSet1String; string ancSet2String;
        getline(*ancSetsFile, ancSet1String);
        getline(*ancSetsFile, ancSet2String);
        ancSet1 = split(ancSet1String, ','); ancSet2 = split(ancSet2String, ',');
        std::sort(ancSet1.begin(),ancSet1.end()); std::sort(ancSet2.begin(),ancSet2.end());
    }
    AccessibleGenome* ag;
    if (!opt::accesibleGenBedFile.empty()) {
        accessibleGenomeBed = new std::ifstream(opt::accesibleGenBedFile);
        std::cerr << "Loading the accessible genome annotation" << std::endl;
        ag = new AccessibleGenome(accessibleGenomeBed);
        std::cerr << "Done" << std::endl;
    }
    
    if (opt::regAbove > 0) {
        string regionsAboveFstFileName = fileRoot + opt::runName + "_w_" + numToString(opt::windowSize) + "_fst_above" + numToString(opt::regAbove) + ".txt";
        regionsAboveFstFile = new std::ofstream(regionsAboveFstFileName.c_str());
    }
    
    string FstResultsFileName = fileRoot + opt::runName + "_w_" + numToString(opt::windowSize) + "_fst.txt";
    std::ofstream* pFst = new std::ofstream(FstResultsFileName.c_str());
    string fstDxyFixedWindowFileName = fileRoot + opt::runName + "_w_" + numToString(opt::physicalWindowSize) + "_fixedWindowStats.txt";
    fstDxyFixedWindowFile = new std::ofstream(fstDxyFixedWindowFileName.c_str());
    string heterozygositySetsFileName = fileRoot + opt::runName + "_w_" + numToString(opt::windowSize) + "_heterozygosity.txt";
    if (opt::accesibleGenBedFile.empty()) {
        *fstDxyFixedWindowFile << "scaffold" << "\t" << "Start" << "\t" << "End" << "\t" << "Fst" << "\t" << "Dxy" << "\t" << "Set1_pi" << "\t" << "Set2_pi" << "\t" << "Accessible_bp" << "\t" << "Set1_VariantDensity" << "\t" << "Set2_VariantDensity" << std::endl;
    } else {
        *fstDxyFixedWindowFile << "scaffold" << "\t" << "Start" << "\t" << "End" << "\t" << "Fst" << "\t" << "Dxy" << "\t" << "Set1_pi" << "\t" << "Set2_pi" << "\t" << "Accessible_bp" << "\t" << "Set1_VariantDensity" << "\t" << "Set2_VariantDensity" << std::endl;
    }
    std::ofstream* pHetSets = new std::ofstream(heterozygositySetsFileName.c_str());
    //std::cerr << "Still alive: " << std::endl;
    
    string set1String; string set2String;
    getline(*setsFile, set1String);
    getline(*setsFile, set2String);
    std::vector<string> set1 = split(set1String, ',');
    std::vector<string> set2 = split(set2String, ',');
    std::sort(set1.begin(),set1.end());
    std::sort(set2.begin(),set2.end());
    
    int numChromosomes;
    int totalVariantNumber = 0;
    int countedVariantNumber = 0;
    string windowMiddleVariant = "first\tWindow";
    string windowStartEnd = "scaffold_0\t0";
    int windowStart = 0; int windowEnd;
    int fixedWindowStart = 0; std::vector<double> fixedWindowDxyVector; std::vector<double> fixedWindowFstNumVector; std::vector<double> fixedWindowFstDenomVector;
    std::vector<double> fixedWindowHet1Vector; std::vector<double> fixedWindowHet2Vector; std::vector<double> fixedWindowPi1Vector; std::vector<double> fixedWindowPi2Vector;
    std::vector<string> sampleNames;
    std::vector<string> fields;
    std::vector<size_t> set1Loci; std::vector<size_t> set2Loci;
    std::vector<size_t> ancSet1Loci; std::vector<size_t> ancSet2Loci;
    short n1; short n2; short n1anc; short n2anc;
    string line;
    std::map<std::string, double> loc_pval;
    std::vector<double> fstNumerators; fstNumerators.reserve(30000000);
    std::vector<double> fstDenominators; fstDenominators.reserve(30000000);
    std::vector<double> DxyVector; DxyVector.reserve(30000000);
    std::vector<std::vector<double> > heterozygositiesVector; heterozygositiesVector.reserve(30000000);
    std::vector<double> set1heterozygositiesSimple; set1heterozygositiesSimple.reserve(30000000);
    std::vector<double> set2heterozygositiesSimple; set2heterozygositiesSimple.reserve(30000000);
    std::vector<double> set1heterozygositiesNei; set1heterozygositiesNei.reserve(30000000);
    std::vector<double> set2heterozygositiesNei; set2heterozygositiesNei.reserve(30000000);
    std::vector<double> set1heterozygositiesPi; set1heterozygositiesPi.reserve(30000000);
    std::vector<double> set2heterozygositiesPi; set2heterozygositiesPi.reserve(30000000);
    while (getline(*vcfFile, line)) {
        if (line[0] == '#' && line[1] == '#') {
            
        } else if (line[0] == '#' && line[1] == 'C') {
            std::vector<std::string> fields = split(line, '\t');
            const std::vector<std::string>::size_type numSamples = fields.size() - NUM_NON_GENOTYPE_COLUMNS;
            numChromosomes = (int)numSamples * 2;
            // std::cerr << "Number of chromosomes: " << numChromosomes << std::endl;
            
            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);
            }
            set1Loci = locateSet(sampleNames, set1);
            set2Loci = locateSet(sampleNames, set2);
            n1 = set1Loci.size()*2; n2 = set2Loci.size()*2;
            std::cerr << "Set1 loci: " << std::endl;
            print_vector(set1Loci, std::cerr);
            std::cerr << "Set2 loci: " << std::endl;
            print_vector(set2Loci, std::cerr);
            
            if (!opt::ancSets.empty()) {
                ancSet1Loci = locateSet(sampleNames, ancSet1);
                ancSet2Loci = locateSet(sampleNames, ancSet2);
                std::cerr << "Ancestral Set1 loci: " << std::endl;
                print_vector(ancSet1Loci, std::cerr);
                std::cerr << "Ancestral Set2 loci: " << std::endl;
                print_vector(ancSet2Loci, std::cerr);
                n1anc = ancSet1Loci.size() * 2; n2anc = ancSet2Loci.size() * 2;
            }
            
            if (opt::windowSize > 0) {
                if (opt::windowSize == opt::windowStep) {
                    if (opt::windowSize == 1) {
                        *pFst << "var_num" << "\t" << "scaffold" << "\t" << "Position" << "\t" << "Fst" << "\t" << "Dxy_thisVariant" << std::endl;
                    } else {
                        *pHetSets << "scaffold" << "\t" << "Start" << "\t" << "End" << "\t" << "Set1_heterozygosity" << "\t" << "Set2_heterozygosity" << "\t" << "Set1_heterozygosity_Nei" << "\t" << "Set2_heterozygosity_Nei" << "\t" << "Set1_nucleotideDiversity_pi" << "\t" << "Set2_nucleotideDiversity_pi" << std::endl;
                        *pFst << "var_num" << "\t" << "scaffold" << "\t" << "Start" << "\t" << "End" << "\t" << "Fst" << "\t" << "Dxy_onlyVariants" << "\t" << "Dxy_AllSites" << "\t" << "windowSize" << std::endl;
                    }
                    if (opt::regAbove > 0) *regionsAboveFstFile << "scaffold" << "\t" << "Start" << "\t" << "End" << std::endl;
                } else {
                    *pHetSets << "Middle_SNP_position" << "\t" << "Set1_heterozygosity" << "\t" << "Set2_heterozygosity" << "\t" << "Set1_heterozygosity_Nei" << "\t" << "Set2_heterozygosity_Nei" << "\t" << "Set1_nucleotideDiversity_pi" << "\t" << "Set2_nucleotideDiversity_pi" << std::endl;
                    *pFst << "var_num" << "\t" << "scaffold" << "\t" << "Start" << "\t" << "End" << "\t" << "Fst" << "\t" << "Dxy_onlyVariants" << "\t" << "Dxy_AllSites" << "\t" << "windowSize" << std::endl;
                }
            }
        } else {
            totalVariantNumber++;
            //std::cerr << "Variant N:" << totalVariantNumber << std::endl;
            std::vector<std::string> fields = split(line, '\t');
            string scaffold = fields[0]; string loc = fields[1]; // Scaffold
            std::vector<std::string> info = split(fields[7], ';');
            SetCounts* counts = new SetCounts();
            // Only consider biallelic SNPs
            string refAllele = fields[3];
            if (refAllele.length() > 1) { counts->bIndel = true;
                refAllele.clear(); refAllele.shrink_to_fit(); continue;
            }

            
            getVariantCountsForFst(fields,counts,set1Loci,set2Loci);
           // std::cerr << "Got counts for variant N:" << totalVariantNumber << std::endl;
            //std::cerr << "Still here: " << counts.set1HaplotypeVariant.size() << "\t" << counts.set1individualsWithVariant.size() << "\t" << n1 << std::endl;
            //std::cerr << "Still here: " << counts.set2HaplotypeVariant.size() << "\t" << counts.set2individualsWithVariant.size() << "\t" << n2 << std::endl;
            //print_vector(counts.set1HaplotypeVariant, std::cerr);
            //print_vector(counts.set1individualsWithVariant, std::cerr);
            //print_vector(counts.set2HaplotypeVariant, std::cerr);
            
            if (counts->n_alt_alleles == 1 && counts->bIndel == false && (counts->set1Count > 0 || counts->set2Count > 0)
                && (counts->set1Count < counts->set1_n_withoutMissing || counts->set2Count < counts->set2_n_withoutMissing)) {
                countedVariantNumber++; counts->calculateAlleleFrequencies();
                double FstNumerator = calculateFstNumerator(counts->p1, counts->p2, counts->set1_n_withoutMissing, counts->set2_n_withoutMissing);
                fstNumerators.push_back(FstNumerator); fixedWindowFstNumVector.push_back(FstNumerator);
                double FstDenominator = calculateFstDenominator(counts->p1, counts->p2);
                fstDenominators.push_back(FstDenominator); fixedWindowFstDenomVector.push_back(FstDenominator);
                assert(FstDenominator != 0);
                double thisSNPDxy = calculateDxy(*counts, n1, n2); DxyVector.push_back(thisSNPDxy); fixedWindowDxyVector.push_back(thisSNPDxy);
                std::vector<double> thisSNPhet = getSetHeterozygozities(*counts, n1, n2); heterozygositiesVector.push_back(thisSNPhet);
                std::vector<double> thisSNPpis = calculatePiTwoSets(*counts, n1, n2); fixedWindowPi1Vector.push_back(thisSNPpis[0]); fixedWindowPi2Vector.push_back(thisSNPpis[1]);
                set1heterozygositiesPi.push_back(thisSNPpis[0]); set2heterozygositiesPi.push_back(thisSNPpis[1]);
               // std::cerr << "Still here: " << thisSNPpis[0] << std::endl;
                set1heterozygositiesSimple.push_back(thisSNPhet[0]); set2heterozygositiesSimple.push_back(thisSNPhet[1]); fixedWindowHet1Vector.push_back(thisSNPhet[0]);
                set1heterozygositiesNei.push_back(thisSNPhet[2]); set2heterozygositiesNei.push_back(thisSNPhet[3]); fixedWindowHet2Vector.push_back(thisSNPhet[1]);
                if (!opt::annotFile.empty()) {
                    string SNPcategory = wgAnnotation.getCategoryOfSNP(scaffold, loc);
                    double thisSNPFst = FstNumerator/FstDenominator;
                    *snpCategoryFstFile << SNPcategory << "\t" << thisSNPFst << "\t" << thisSNPDxy << "\t" << scaffold << "\t" << loc << std::endl;
                }
                if (!opt::ancSets.empty()) {
                    double thisSNPFst = FstNumerator/FstDenominator;
                    if (thisSNPFst < 0) { thisSNPFst = 0; }
                    string AA = split(info[info.size()-1],'=')[1];
                    //std::cerr << "AA=" << " " << AA << std::endl;
                    FourSetCounts c;
                    if (AA == fields[3]) {
                        c = getFourSetVariantCounts(fields,set1Loci,set2Loci,ancSet1Loci,ancSet2Loci,"ref");
                        *ancSetsOutFile << scaffold << "\t" << fields[1] << "\t" << c.set1daAF-c.set2daAF << "\t" << thisSNPFst << "\t";
                        if (c.set3daAF > 0 & c.set3daAF < 1) { *ancSetsOutFile << "1" << "\t"; } else { *ancSetsOutFile << "0" << "\t"; }
                        if (c.set4daAF > 0 & c.set4daAF < 1) { *ancSetsOutFile << "1" << std::endl; } else { *ancSetsOutFile << "0" << std::endl; }
                    } else if (AA == fields[4]) {
                        c = getFourSetVariantCounts(fields,set1Loci,set2Loci,ancSet1Loci,ancSet2Loci,"alt");
                        *ancSetsOutFile << scaffold << "\t" << fields[1] << "\t" << c.set1daAF-c.set2daAF << "\t" << thisSNPFst << "\t";
                        if (c.set3daAF > 0 & c.set3daAF < 1) { *ancSetsOutFile << "1" << "\t"; } else { *ancSetsOutFile << "0" << "\t"; }
                        if (c.set4daAF > 0 & c.set4daAF < 1) { *ancSetsOutFile << "1" << std::endl; } else { *ancSetsOutFile << "0" << std::endl; }
                        // std::cerr << "AA=alt" << " " << c.set1daAF << " " << c.set2daAF << std::endl;
                    } else {
                        c = getFourSetVariantCounts(fields,set1Loci,set2Loci,ancSet1Loci,ancSet2Loci,"N");
                        *ancSetsOutFile << scaffold << "\t" << fields[1] << "\t" << "-888" << "\t" << thisSNPFst << "\t";
                        if (c.set3AltAF > 0 & c.set3AltAF < 1) { *ancSetsOutFile << "1" << "\t"; } else { *ancSetsOutFile << "0" << "\t"; }
                        if (c.set4AltAF > 0 & c.set4AltAF < 1) { *ancSetsOutFile << "1" << std::endl; } else { *ancSetsOutFile << "0" << std::endl; }
                    }
                    
                    
                }
                std::vector<string> s = split(windowStartEnd, '\t');
                if (s[0] == scaffold) {
                    if (atoi(fields[1].c_str()) > (fixedWindowStart+opt::physicalWindowSize)) {
                        int accessibleInThisWindow = opt::physicalWindowSize;
                        if (!opt::accesibleGenBedFile.empty()) {
                            accessibleInThisWindow = ag->getAccessibleBPinRegion(scaffold, fixedWindowStart, fixedWindowStart+opt::physicalWindowSize);
                        }
                        double thisFixedWindowDxy = vector_average_withRegion(fixedWindowDxyVector, accessibleInThisWindow);
                        double thisFixedWindowFst = calculateFst(fixedWindowFstNumVector, fixedWindowFstDenomVector);
                        //double thisFixedWindowHet1 = vector_average_withRegion(fixedWindowHet1Vector, 10000);
                        //double thisFixedWindowHet2 = vector_average_withRegion(fixedWindowHet2Vector, 10000);
                        double thisFixedWindowPi1 = vector_average_withRegion(fixedWindowPi1Vector, accessibleInThisWindow);
                        double thisFixedWindowPi2 = vector_average_withRegion(fixedWindowPi2Vector, accessibleInThisWindow);
                        int Pi1NumZeros = (int)std::count(fixedWindowPi1Vector.begin(), fixedWindowPi1Vector.end(), 0);
                        int numVariantsInThisFixedWindow1 = (int)fixedWindowPi1Vector.size() - Pi1NumZeros;
                        int Pi2NumZeros = (int)std::count(fixedWindowPi2Vector.begin(), fixedWindowPi2Vector.end(), 0);
                        int numVariantsInThisFixedWindow2 = (int)fixedWindowPi2Vector.size() - Pi2NumZeros;
                        *fstDxyFixedWindowFile << scaffold << "\t" << fixedWindowStart << "\t" << fixedWindowStart+opt::physicalWindowSize << "\t" << thisFixedWindowFst << "\t" << thisFixedWindowDxy << "\t" << thisFixedWindowPi1 << "\t" << thisFixedWindowPi2 << "\t" << accessibleInThisWindow << "\t" <<  (double)numVariantsInThisFixedWindow1/accessibleInThisWindow << "\t" << (double)numVariantsInThisFixedWindow2/accessibleInThisWindow << std::endl;
                        fixedWindowDxyVector.clear(); fixedWindowFstNumVector.clear(); fixedWindowFstDenomVector.clear();
                        fixedWindowHet1Vector.clear(); fixedWindowHet2Vector.clear(); fixedWindowPi1Vector.clear(); fixedWindowPi2Vector.clear();
                        // Handle fixed windows that do not contain any variants
                        int fixedWindowsWithoutAnyVariants = 0;
                        while (atoi(fields[1].c_str()) > (fixedWindowStart+opt::physicalWindowSize)) {
                            if (fixedWindowsWithoutAnyVariants > 0) {
                                int accessibleInThisWindow = opt::physicalWindowSize;
                                if (!opt::accesibleGenBedFile.empty()) {
                                    accessibleInThisWindow = ag->getAccessibleBPinRegion(scaffold, fixedWindowStart, fixedWindowStart+opt::physicalWindowSize);
                                }
                                *fstDxyFixedWindowFile << scaffold << "\t" << fixedWindowStart << "\t" << fixedWindowStart+opt::physicalWindowSize << "\t" << "NA" << "\t" << 0 << "\t" << 0 << "\t" << 0 << "\t" << accessibleInThisWindow << "\t" << 0 << "\t" << 0 << std::endl;
                            }
                            fixedWindowStart= fixedWindowStart+opt::physicalWindowSize;
                            fixedWindowsWithoutAnyVariants++;
                        }
                    }
                } else { // Beginning of a new chromosomes
                    fixedWindowStart = 0;
                    fixedWindowDxyVector.clear(); fixedWindowFstNumVector.clear(); fixedWindowFstDenomVector.clear();
                    fixedWindowHet1Vector.clear(); fixedWindowHet2Vector.clear();
                    fixedWindowPi1Vector.clear(); fixedWindowPi2Vector.clear();
                    
                }
                
                
                
                if (opt::windowSize == 1) {
                    double Fst = FstNumerator/FstDenominator;
                    if (Fst < 0) Fst = 0;
                    *pFst << countedVariantNumber << "\t" << scaffold + "\t" + fields[1] << "\t" << Fst << "\t" << thisSNPDxy << std::endl;
                    
                } else if ((opt::windowSize > 0) && (countedVariantNumber % opt::windowStep == 0) && countedVariantNumber >= opt::windowSize) {
                    std::vector<double> windowFstNumerators(fstNumerators.end()-opt::windowSize, fstNumerators.end());
                    std::vector<double> windowFstDenominators(fstDenominators.end()-opt::windowSize, fstDenominators.end());
                    double windowFst = calculateFst(windowFstNumerators, windowFstDenominators); if (windowFst < 0) windowFst = 0;
                    std::vector<double> windowDxyVec(DxyVector.end()-opt::windowSize, DxyVector.end());
                    double windowDxy = vector_average(windowDxyVec);
                    if (opt::windowSize == opt::windowStep) {
                        std::vector<string> s = split(windowStartEnd, '\t');
                        if (s[0] == scaffold) {
                            windowStartEnd = windowStartEnd + "\t" + fields[1];
                            windowEnd = atoi(fields[1].c_str());
                            double windowDxyIncNonSeg = vector_average_withRegion(windowDxyVec, windowEnd-windowStart);
                            *pFst << countedVariantNumber-opt::windowSize+1 << "\t" << windowStartEnd << "\t" << windowFst << "\t" << windowDxy << "\t" << windowDxyIncNonSeg << "\t" << windowFstDenominators.size() << std::endl;
                            if (opt::regAbove > 0) {
                                if (windowFst >= opt::regAbove && !inRegAbove) {
                                    inRegAbove = true;
                                    *regionsAboveFstFile << s[0] << "\t" << s[1] << "\t";
                                } else if (windowFst < opt::regAbove && inRegAbove) {
                                    inRegAbove = false;
                                    *regionsAboveFstFile << s[1] << std::endl;
                                }
                            }
                        }
                    } else {
                        *pFst << countedVariantNumber-opt::windowSize+1 << "\t" << windowMiddleVariant << "\t" << windowFst << "\t" << windowDxy << "\t" << windowFstDenominators.size() << std::endl;
                    }
                    // Now calculate and output expected heterozygosities for this window
                    std::vector<double> windowHetS1Vec(set1heterozygositiesSimple.end()-opt::windowSize, set1heterozygositiesSimple.end());
                    double windowHetS1 = vector_average(windowHetS1Vec);
                    std::vector<double> windowHetS2Vec(set2heterozygositiesSimple.end()-opt::windowSize, set2heterozygositiesSimple.end());
                    double windowHetS2 = vector_average(windowHetS2Vec);
                    std::vector<double> windowHetNei1Vec(set1heterozygositiesNei.end()-opt::windowSize, set1heterozygositiesNei.end());
                    double windowHetNei1 = vector_average(windowHetNei1Vec);
                    std::vector<double> windowHetNei2Vec(set2heterozygositiesNei.end()-opt::windowSize, set2heterozygositiesNei.end());
                    double windowHetNei2 = vector_average(windowHetNei2Vec);
                    std::vector<double> windowHetPi1Vec(set1heterozygositiesPi.end()-opt::windowSize, set1heterozygositiesPi.end());
                    double windowHetPi1 = vector_average_withRegion(windowHetPi1Vec, windowEnd-windowStart);
                    std::vector<double> windowHetPi2Vec(set2heterozygositiesPi.end()-opt::windowSize, set2heterozygositiesPi.end());
                    double windowHetPi2 = vector_average_withRegion(windowHetPi2Vec, windowEnd-windowStart);
                    
                    if (opt::windowSize == opt::windowStep) {
                        std::vector<string> s = split(windowStartEnd, '\t');
                        if (s[0] == scaffold) {
                            *pHetSets << windowStartEnd << "\t" << windowHetS1 << "\t" << windowHetS2 << "\t" << windowHetNei1 << "\t" << windowHetNei2 << "\t" << windowHetPi1 << "\t" << windowHetPi2 << std::endl;
                            windowStartEnd = scaffold + "\t" + fields[1];
                            windowStart = atoi(fields[1].c_str());
                        } else {
                            windowStartEnd = scaffold + "\t0";
                            windowStart = 0;
                        }
                    } else {
                        *pHetSets << windowMiddleVariant << "\t" << windowHetS1 << "\t" << windowHetS2 << "\t" << windowHetNei1 << "\t" << windowHetNei2 << std::endl;
                        windowMiddleVariant = scaffold + "\t" + fields[1];     // works only if STEP is half SIZE for the window
                    }
                }
                delete counts;
            }
            if (totalVariantNumber % 100000 == 0) {
                double Fst = calculateFst(fstNumerators, fstDenominators);
                std::cerr << totalVariantNumber << " variants processed... Fst: " << Fst << std::endl;
            }
        }
    }
    double Fst = calculateFst(fstNumerators, fstDenominators);
    double overallHetS1 = vector_average(set1heterozygositiesSimple);
    double overallHetS2 = vector_average(set2heterozygositiesSimple);
    double overallHetNei1 = vector_average(set1heterozygositiesNei);
    double overallHetNei2 = vector_average(set2heterozygositiesNei);
    
    std::cerr << "Fst: " << Fst << std::endl;
    std::cerr << "Heterozygosities: " << "\tS1:" << overallHetS1 << "\tS2:" << overallHetS2 << "\tNei1:" << overallHetNei1 << "\tNei2" << overallHetNei2 << std::endl;
    *pHetSets << "#Heterozygosities: " << "\tS1:" << overallHetS1 << "\tS2:" << overallHetS2 << "\tNei1:" << overallHetNei1 << "\tNei2" << overallHetNei2 << std::endl;
    clock_t end = clock();
    double elapsed_secs = double(end - begin) / CLOCKS_PER_SEC;
    std::cerr << "Time taken: " << elapsed_secs << std::endl;

    fstDxyFixedWindowFile->close();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x2260, %rsp           # imm = 0x2260
callq 0xa3a0
movq %rax, -0x8(%rbp)
movq 0xbf235(%rip), %rdi     # 0x198ff0
leaq 0x6dc0e(%rip), %rsi     # 0x1479d0
callq 0xa5c0
movq %rax, %rdi
leaq 0xc10b7(%rip), %rsi     # 0x19ae88
callq 0xa520
movq %rax, %rdi
movq 0xbf1a8(%rip), %rsi     # 0x198f88
callq 0xa610
movq 0xbf204(%rip), %rdi     # 0x198ff0
leaq 0x6dc03(%rip), %rsi     # 0x1479f6
callq 0xa5c0
movq %rax, %rdi
leaq 0xc10a6(%rip), %rsi     # 0x19aea8
callq 0xa520
movq %rax, %rdi
movq 0xbf177(%rip), %rsi     # 0x198f88
callq 0xa610
cmpl $0x0, 0xc118b(%rip)     # 0x19afa8
jle 0xd9e6c
movq 0xbf1ca(%rip), %rdi     # 0x198ff0
leaq 0x6dbf4(%rip), %rsi     # 0x147a21
callq 0xa5c0
movq %rax, %rdi
movl 0xc116d(%rip), %esi     # 0x19afa8
callq 0xab20
movq %rax, %rdi
leaq 0x6dbfd(%rip), %rsi     # 0x147a47
callq 0xa5c0
movq %rax, %rdi
movl 0xc1154(%rip), %esi     # 0x19afac
callq 0xab20
movq %rax, %rdi
movq 0xbf121(%rip), %rsi     # 0x198f88
callq 0xa610
leaq -0x29(%rbp), %rdi
movq %rdi, -0x15e0(%rbp)
callq 0xab60
movq -0x15e0(%rbp), %rdx
leaq 0x5c055(%rip), %rsi     # 0x135edf
leaq -0x28(%rbp), %rdi
callq 0x2d6c0
jmp 0xd9e95
leaq -0x29(%rbp), %rdi
callq 0xa640
leaq 0xc0fe3(%rip), %rdi     # 0x19ae88
callq 0xa220
movq %rax, -0x15f0(%rbp)
leaq -0x69(%rbp), %rdi
movq %rdi, -0x15e8(%rbp)
callq 0xab60
movq -0x15f0(%rbp), %rsi
movq -0x15e8(%rbp), %rdx
leaq -0x68(%rbp), %rdi
callq 0x2d6c0
jmp 0xd9eda
leaq -0x68(%rbp), %rdi
movl $0x8, %esi
callq 0x80e30
movq %rax, -0x15f8(%rbp)
jmp 0xd9ef1
leaq -0x68(%rbp), %rdi
callq 0xac88
leaq -0x69(%rbp), %rdi
callq 0xa640
movq -0x15f8(%rbp), %rax
movq %rax, -0x48(%rbp)
movl $0x208, %edi            # imm = 0x208
callq 0xa5d0
movq %rax, -0x1600(%rbp)
jmp 0xd9f21
leaq 0xc0f80(%rip), %rdi     # 0x19aea8
callq 0xa220
movq -0x1600(%rbp), %rdi
movq %rax, %rsi
movl $0x8, %edx
callq 0xab90
jmp 0xd9f43
movq -0x1600(%rbp), %rax
movq %rax, -0x78(%rbp)
movb $0x0, -0x99(%rbp)
leaq -0xd0(%rbp), %rdi
callq 0x48da0
leaq -0xe8(%rbp), %rdi
callq 0x48da0
leaq -0x1a8(%rbp), %rdi
callq 0xe2ed0
jmp 0xd9f7b
leaq 0xc0fa6(%rip), %rdi     # 0x19af28
callq 0xaa70
testb $0x1, %al
jne 0xda29d
movl $0x208, %edi            # imm = 0x208
callq 0xa5d0
movq %rax, -0x1608(%rbp)
jmp 0xd9fa2
leaq 0xc0f7f(%rip), %rdi     # 0x19af28
callq 0xa220
movq -0x1608(%rbp), %rdi
movq %rax, %rsi
movl $0x8, %edx
callq 0xab90
jmp 0xd9fc4
movq -0x1608(%rbp), %rax
movq %rax, -0x80(%rbp)
leaq -0x268(%rbp), %rdi
leaq -0x80(%rbp), %rsi
xorl %edx, %edx
callq 0x58390
jmp 0xd9fe3
leaq -0x1a8(%rbp), %rdi
leaq -0x268(%rbp), %rsi
callq 0xe2f20
jmp 0xd9ff8
leaq 0xc0f89(%rip), %rsi     # 0x19af88
leaq 0x6da65(%rip), %rdx     # 0x147a6b
leaq -0x288(%rbp), %rdi
callq 0x3da80
jmp 0xda014
movl $0x200, %edi            # imm = 0x200
callq 0xa5d0
movq %rax, -0x1610(%rbp)
jmp 0xda027
leaq -0x288(%rbp), %rdi
callq 0xa220
movq -0x1610(%rbp), %rdi
movq %rax, %rsi
movl $0x10, %edx
callq 0xa650
jmp 0xda049
movq -0x1610(%rbp), %rax
movq %rax, -0x90(%rbp)
movq -0x90(%rbp), %rdi
leaq 0x6da1a(%rip), %rsi     # 0x147a7f
callq 0xa5c0
movq %rax, -0x1618(%rbp)
jmp 0xda073
movq -0x1618(%rbp), %rdi
leaq 0x5be5d(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1620(%rbp)
jmp 0xda08f
movq -0x1620(%rbp), %rdi
leaq 0x6d9ee(%rip), %rsi     # 0x147a8b
callq 0xa5c0
movq %rax, -0x1628(%rbp)
jmp 0xda0ab
movq -0x1628(%rbp), %rdi
leaq 0x5be25(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1630(%rbp)
jmp 0xda0c7
movq -0x1630(%rbp), %rdi
leaq 0x6d9c1(%rip), %rsi     # 0x147a96
callq 0xa5c0
movq %rax, -0x1638(%rbp)
jmp 0xda0e3
movq -0x1638(%rbp), %rdi
leaq 0x5bded(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1640(%rbp)
jmp 0xda0ff
movq -0x1640(%rbp), %rdi
leaq 0x65d8b(%rip), %rsi     # 0x13fe98
callq 0xa5c0
movq %rax, -0x1648(%rbp)
jmp 0xda11b
movq -0x1648(%rbp), %rdi
leaq 0x5bdb5(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1650(%rbp)
jmp 0xda137
movq -0x1650(%rbp), %rdi
leaq 0x66a3d(%rip), %rsi     # 0x140b82
callq 0xa5c0
movq %rax, -0x1658(%rbp)
jmp 0xda153
movq -0x1658(%rbp), %rdi
movq 0xbee27(%rip), %rsi     # 0x198f88
callq 0xa610
jmp 0xda168
leaq -0x288(%rbp), %rdi
callq 0xac88
leaq -0x268(%rbp), %rdi
callq 0x588b0
jmp 0xda29d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x29(%rbp), %rdi
callq 0xa640
jmp 0xe02d4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xda1c2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x68(%rbp), %rdi
callq 0xac88
leaq -0x69(%rbp), %rdi
callq 0xa640
jmp 0xe02cb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xe02cb
movq -0x1600(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
movl $0x208, %esi            # imm = 0x208
callq 0xa5e0
jmp 0xe02cb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xe02b3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xe02a7
movq -0x1608(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
movl $0x208, %esi            # imm = 0x208
callq 0xa5e0
jmp 0xe02a7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xda28c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xda280
movq -0x1610(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
movl $0x200, %esi            # imm = 0x200
callq 0xa5e0
leaq -0x288(%rbp), %rdi
callq 0xac88
leaq -0x268(%rbp), %rdi
callq 0x588b0
jmp 0xe02a7
leaq 0xc0c24(%rip), %rdi     # 0x19aec8
callq 0xaa70
testb $0x1, %al
jne 0xda6c8
movl $0x208, %edi            # imm = 0x208
callq 0xa5d0
movq %rax, -0x1660(%rbp)
jmp 0xda2c4
movq -0x1660(%rbp), %rdi
leaq 0xc0bf6(%rip), %rsi     # 0x19aec8
movl $0x8, %edx
callq 0xaa00
jmp 0xda2de
movq -0x1660(%rbp), %rax
movq %rax, -0xb0(%rbp)
leaq 0xc0c95(%rip), %rdx     # 0x19af88
leaq -0x2c8(%rbp), %rdi
leaq -0x28(%rbp), %rsi
callq 0x3e290
jmp 0xda305
leaq 0x6d795(%rip), %rdx     # 0x147aa1
leaq -0x2a8(%rbp), %rdi
leaq -0x2c8(%rbp), %rsi
callq 0x3e020
jmp 0xda321
leaq -0x2c8(%rbp), %rdi
callq 0xac88
movl $0x200, %edi            # imm = 0x200
callq 0xa5d0
movq %rax, -0x1668(%rbp)
jmp 0xda340
movq -0x1668(%rbp), %rdi
leaq -0x2a8(%rbp), %rsi
movl $0x10, %edx
callq 0xac00
jmp 0xda35a
movq -0x1668(%rbp), %rax
movq %rax, -0xb8(%rbp)
movq -0xb8(%rbp), %rdi
leaq 0x65b22(%rip), %rsi     # 0x13fe98
callq 0xa5c0
movq %rax, -0x1670(%rbp)
jmp 0xda384
movq -0x1670(%rbp), %rdi
leaq 0x5bb4c(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1678(%rbp)
jmp 0xda3a0
movq -0x1678(%rbp), %rdi
leaq 0x667d4(%rip), %rsi     # 0x140b82
callq 0xa5c0
movq %rax, -0x1680(%rbp)
jmp 0xda3bc
movq -0x1680(%rbp), %rdi
leaq 0x5bb14(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1688(%rbp)
jmp 0xda3d8
movq -0x1688(%rbp), %rdi
leaq 0x6d6d1(%rip), %rsi     # 0x147ab7
callq 0xa5c0
movq %rax, -0x1690(%rbp)
jmp 0xda3f4
movq -0x1690(%rbp), %rdi
leaq 0x5badc(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1698(%rbp)
jmp 0xda410
movq -0x1698(%rbp), %rdi
leaq 0x6d674(%rip), %rsi     # 0x147a92
callq 0xa5c0
movq %rax, -0x16a0(%rbp)
jmp 0xda42c
movq -0x16a0(%rbp), %rdi
leaq 0x5baa4(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x16a8(%rbp)
jmp 0xda448
movq -0x16a8(%rbp), %rdi
leaq 0x6d675(%rip), %rsi     # 0x147acb
callq 0xa5c0
movq %rax, -0x16b0(%rbp)
jmp 0xda464
movq -0x16b0(%rbp), %rdi
leaq 0x5ba6c(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x16b8(%rbp)
jmp 0xda480
movq -0x16b8(%rbp), %rdi
leaq 0x6d651(%rip), %rsi     # 0x147adf
callq 0xa5c0
movq %rax, -0x16c0(%rbp)
jmp 0xda49c
movq -0x16c0(%rbp), %rdi
movq 0xbeade(%rip), %rsi     # 0x198f88
callq 0xa610
jmp 0xda4b1
leaq -0x2e8(%rbp), %rdi
movq %rdi, -0x16c8(%rbp)
callq 0xa820
leaq -0x308(%rbp), %rdi
callq 0xa820
movq -0x16c8(%rbp), %rsi
movq -0xb0(%rbp), %rdi
callq 0xa0d0
jmp 0xda4e5
movq -0xb0(%rbp), %rdi
leaq -0x308(%rbp), %rsi
callq 0xa0d0
jmp 0xda4fa
leaq -0x320(%rbp), %rdi
leaq -0x2e8(%rbp), %rsi
movl $0x2c, %edx
callq 0x7bbe0
jmp 0xda514
leaq -0xd0(%rbp), %rdi
leaq -0x320(%rbp), %rsi
movq %rsi, -0x16d0(%rbp)
callq 0x50c30
movq -0x16d0(%rbp), %rdi
callq 0x3dfa0
leaq -0x338(%rbp), %rdi
leaq -0x308(%rbp), %rsi
movl $0x2c, %edx
callq 0x7bbe0
jmp 0xda554
leaq -0xe8(%rbp), %rdi
leaq -0x338(%rbp), %rsi
movq %rsi, -0x16e0(%rbp)
callq 0x50c30
movq -0x16e0(%rbp), %rdi
callq 0x3dfa0
leaq -0xd0(%rbp), %rdi
movq %rdi, -0x16d8(%rbp)
callq 0x44030
movq -0x16d8(%rbp), %rdi
movq %rax, -0x340(%rbp)
callq 0x44060
movq %rax, -0x348(%rbp)
movq -0x340(%rbp), %rdi
movq -0x348(%rbp), %rsi
callq 0x9d660
jmp 0xda5bc
leaq -0xe8(%rbp), %rdi
movq %rdi, -0x16e8(%rbp)
callq 0x44030
movq -0x16e8(%rbp), %rdi
movq %rax, -0x350(%rbp)
callq 0x44060
movq %rax, -0x358(%rbp)
movq -0x350(%rbp), %rdi
movq -0x358(%rbp), %rsi
callq 0x9d660
jmp 0xda5fe
leaq -0x308(%rbp), %rdi
callq 0xac88
leaq -0x2e8(%rbp), %rdi
callq 0xac88
leaq -0x2a8(%rbp), %rdi
callq 0xac88
jmp 0xda6c8
movq -0x1660(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
movl $0x208, %esi            # imm = 0x208
callq 0xa5e0
jmp 0xe02a7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x2c8(%rbp), %rdi
callq 0xac88
jmp 0xe02a7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xda6b7
movq -0x1668(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
movl $0x200, %esi            # imm = 0x200
callq 0xa5e0
jmp 0xda6b7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x308(%rbp), %rdi
callq 0xac88
leaq -0x2e8(%rbp), %rdi
callq 0xac88
leaq -0x2a8(%rbp), %rdi
callq 0xac88
jmp 0xe02a7
leaq 0xc0839(%rip), %rdi     # 0x19af08
callq 0xaa70
testb $0x1, %al
jne 0xda7f5
movl $0x208, %edi            # imm = 0x208
callq 0xa5d0
movq %rax, -0x16f0(%rbp)
jmp 0xda6ef
movq -0x16f0(%rbp), %rdi
leaq 0xc080b(%rip), %rsi     # 0x19af08
movl $0x8, %edx
callq 0xaa00
jmp 0xda709
movq -0x16f0(%rbp), %rax
movq %rax, -0x88(%rbp)
movq 0xbe8d2(%rip), %rdi     # 0x198ff0
leaq 0x6205d(%rip), %rsi     # 0x13c782
callq 0xa5c0
movq %rax, -0x16f8(%rbp)
jmp 0xda733
movq -0x16f8(%rbp), %rdi
movq 0xbe847(%rip), %rsi     # 0x198f88
callq 0xa610
jmp 0xda748
movl $0x38, %edi
callq 0xa5d0
movq %rax, -0x1700(%rbp)
jmp 0xda75b
movq -0x1700(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0x6aa00
jmp 0xda770
movq -0x1700(%rbp), %rax
movq %rax, -0x360(%rbp)
movq 0xbe86b(%rip), %rdi     # 0x198ff0
leaq 0x57b63(%rip), %rsi     # 0x1322ef
callq 0xa5c0
movq %rax, -0x1708(%rbp)
jmp 0xda79a
movq -0x1708(%rbp), %rdi
movq 0xbe7e0(%rip), %rsi     # 0x198f88
callq 0xa610
jmp 0xda7af
jmp 0xda7f5
movq -0x16f0(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
movl $0x208, %esi            # imm = 0x208
callq 0xa5e0
jmp 0xe02a7
movq -0x1700(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
movl $0x38, %esi
callq 0xa5e0
jmp 0xe02a7
movsd 0xc07b3(%rip), %xmm0    # 0x19afb0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jbe 0xdaa7c
leaq 0xc0777(%rip), %rdx     # 0x19af88
leaq -0x420(%rbp), %rdi
leaq -0x28(%rbp), %rsi
callq 0x3e290
jmp 0xda823
leaq 0x6d2c9(%rip), %rdx     # 0x147af3
leaq -0x400(%rbp), %rdi
leaq -0x420(%rbp), %rsi
callq 0x3e020
jmp 0xda83f
movl 0xc0763(%rip), %esi     # 0x19afa8
leaq -0x440(%rbp), %rdi
callq 0x3e190
jmp 0xda853
leaq -0x3e0(%rbp), %rdi
leaq -0x400(%rbp), %rsi
leaq -0x440(%rbp), %rdx
callq 0x3e070
jmp 0xda86f
leaq 0x6d281(%rip), %rdx     # 0x147af7
leaq -0x3c0(%rbp), %rdi
leaq -0x3e0(%rbp), %rsi
callq 0x3e020
jmp 0xda88b
movsd 0xc071d(%rip), %xmm0    # 0x19afb0
leaq -0x460(%rbp), %rdi
callq 0x650a0
jmp 0xda8a1
leaq -0x3a0(%rbp), %rdi
leaq -0x3c0(%rbp), %rsi
leaq -0x460(%rbp), %rdx
callq 0x3e070
jmp 0xda8bd
leaq 0x6ece3(%rip), %rdx     # 0x1495a7
leaq -0x380(%rbp), %rdi
leaq -0x3a0(%rbp), %rsi
callq 0x3e020
jmp 0xda8d9
leaq -0x3a0(%rbp), %rdi
callq 0xac88
leaq -0x460(%rbp), %rdi
callq 0xac88
leaq -0x3c0(%rbp), %rdi
callq 0xac88
leaq -0x3e0(%rbp), %rdi
callq 0xac88
leaq -0x440(%rbp), %rdi
callq 0xac88
leaq -0x400(%rbp), %rdi
callq 0xac88
leaq -0x420(%rbp), %rdi
callq 0xac88
movl $0x200, %edi            # imm = 0x200
callq 0xa5d0
movq %rax, -0x1710(%rbp)
jmp 0xda940
leaq -0x380(%rbp), %rdi
callq 0xa220
movq -0x1710(%rbp), %rdi
movq %rax, %rsi
movl $0x10, %edx
callq 0xa650
jmp 0xda962
movq -0x1710(%rbp), %rax
movq %rax, -0x98(%rbp)
leaq -0x380(%rbp), %rdi
callq 0xac88
jmp 0xdaa7c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xdaa2f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xdaa23
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xdaa17
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xdaa0b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xda9ff
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xda9f3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x3a0(%rbp), %rdi
callq 0xac88
leaq -0x460(%rbp), %rdi
callq 0xac88
leaq -0x3c0(%rbp), %rdi
callq 0xac88
leaq -0x3e0(%rbp), %rdi
callq 0xac88
leaq -0x440(%rbp), %rdi
callq 0xac88
leaq -0x400(%rbp), %rdi
callq 0xac88
leaq -0x420(%rbp), %rdi
callq 0xac88
jmp 0xe02a7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xdaa6b
movq -0x1710(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
movl $0x200, %esi            # imm = 0x200
callq 0xa5e0
leaq -0x380(%rbp), %rdi
callq 0xac88
jmp 0xe02a7
leaq 0xc0505(%rip), %rdx     # 0x19af88
leaq -0x4e0(%rbp), %rdi
leaq -0x28(%rbp), %rsi
callq 0x3e290
jmp 0xdaa95
leaq 0x6d057(%rip), %rdx     # 0x147af3
leaq -0x4c0(%rbp), %rdi
leaq -0x4e0(%rbp), %rsi
callq 0x3e020
jmp 0xdaab1
movl 0xc04f1(%rip), %esi     # 0x19afa8
leaq -0x500(%rbp), %rdi
callq 0x3e190
jmp 0xdaac5
leaq -0x4a0(%rbp), %rdi
leaq -0x4c0(%rbp), %rsi
leaq -0x500(%rbp), %rdx
callq 0x3e070
jmp 0xdaae1
leaq 0x6cfc6(%rip), %rdx     # 0x147aae
leaq -0x480(%rbp), %rdi
leaq -0x4a0(%rbp), %rsi
callq 0x3e020
jmp 0xdaafd
leaq -0x4a0(%rbp), %rdi
callq 0xac88
leaq -0x500(%rbp), %rdi
callq 0xac88
leaq -0x4c0(%rbp), %rdi
callq 0xac88
leaq -0x4e0(%rbp), %rdi
callq 0xac88
movl $0x200, %edi            # imm = 0x200
callq 0xa5d0
movq %rax, -0x1718(%rbp)
jmp 0xdab40
leaq -0x480(%rbp), %rdi
callq 0xa220
movq -0x1718(%rbp), %rdi
movq %rax, %rsi
movl $0x10, %edx
callq 0xa650
jmp 0xdab62
movq -0x1718(%rbp), %rax
movq %rax, -0x508(%rbp)
leaq 0xc0411(%rip), %rdx     # 0x19af88
leaq -0x588(%rbp), %rdi
leaq -0x28(%rbp), %rsi
callq 0x3e290
jmp 0xdab89
leaq 0x6cf63(%rip), %rdx     # 0x147af3
leaq -0x568(%rbp), %rdi
leaq -0x588(%rbp), %rsi
callq 0x3e020
jmp 0xdaba5
movl 0xbed8d(%rip), %esi     # 0x199938
leaq -0x5a8(%rbp), %rdi
callq 0x3e190
jmp 0xdabb9
leaq -0x548(%rbp), %rdi
leaq -0x568(%rbp), %rsi
leaq -0x5a8(%rbp), %rdx
callq 0x3e070
jmp 0xdabd5
leaq 0x6cf26(%rip), %rdx     # 0x147b02
leaq -0x528(%rbp), %rdi
leaq -0x548(%rbp), %rsi
callq 0x3e020
jmp 0xdabf1
leaq -0x548(%rbp), %rdi
callq 0xac88
leaq -0x5a8(%rbp), %rdi
callq 0xac88
leaq -0x568(%rbp), %rdi
callq 0xac88
leaq -0x588(%rbp), %rdi
callq 0xac88
movl $0x200, %edi            # imm = 0x200
callq 0xa5d0
movq %rax, -0x1720(%rbp)
jmp 0xdac34
leaq -0x528(%rbp), %rdi
callq 0xa220
movq -0x1720(%rbp), %rdi
movq %rax, %rsi
movl $0x10, %edx
callq 0xa650
jmp 0xdac56
movq -0x1720(%rbp), %rax
movq %rax, -0xa8(%rbp)
leaq 0xc031d(%rip), %rdx     # 0x19af88
leaq -0x628(%rbp), %rdi
leaq -0x28(%rbp), %rsi
callq 0x3e290
jmp 0xdac7d
leaq 0x6ce6f(%rip), %rdx     # 0x147af3
leaq -0x608(%rbp), %rdi
leaq -0x628(%rbp), %rsi
callq 0x3e020
jmp 0xdac99
movl 0xc0309(%rip), %esi     # 0x19afa8
leaq -0x648(%rbp), %rdi
callq 0x3e190
jmp 0xdacad
leaq -0x5e8(%rbp), %rdi
leaq -0x608(%rbp), %rsi
leaq -0x648(%rbp), %rdx
callq 0x3e070
jmp 0xdacc9
leaq 0x6ce48(%rip), %rdx     # 0x147b18
leaq -0x5c8(%rbp), %rdi
leaq -0x5e8(%rbp), %rsi
callq 0x3e020
jmp 0xdace5
leaq -0x5e8(%rbp), %rdi
callq 0xac88
leaq -0x648(%rbp), %rdi
callq 0xac88
leaq -0x608(%rbp), %rdi
callq 0xac88
leaq -0x628(%rbp), %rdi
callq 0xac88
leaq 0xc01ec(%rip), %rdi     # 0x19af08
callq 0xaa70
testb $0x1, %al
jne 0xdad2a
jmp 0xdb110
movq -0xa8(%rbp), %rdi
leaq 0x65160(%rip), %rsi     # 0x13fe98
callq 0xa5c0
movq %rax, -0x1728(%rbp)
jmp 0xdad46
movq -0x1728(%rbp), %rdi
leaq 0x5b18a(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1730(%rbp)
jmp 0xdad62
movq -0x1730(%rbp), %rdi
leaq 0x6cdbc(%rip), %rsi     # 0x147b2c
callq 0xa5c0
movq %rax, -0x1738(%rbp)
jmp 0xdad7e
movq -0x1738(%rbp), %rdi
leaq 0x5b152(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1740(%rbp)
jmp 0xdad9a
movq -0x1740(%rbp), %rdi
leaq 0x6cd8a(%rip), %rsi     # 0x147b32
callq 0xa5c0
movq %rax, -0x1748(%rbp)
jmp 0xdadb6
movq -0x1748(%rbp), %rdi
leaq 0x5b11a(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1750(%rbp)
jmp 0xdadd2
movq -0x1750(%rbp), %rdi
leaq 0x6ccb2(%rip), %rsi     # 0x147a92
callq 0xa5c0
movq %rax, -0x1758(%rbp)
jmp 0xdadee
movq -0x1758(%rbp), %rdi
leaq 0x5b0e2(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1760(%rbp)
jmp 0xdae0a
movq -0x1760(%rbp), %rdi
leaq 0x6cc85(%rip), %rsi     # 0x147a9d
callq 0xa5c0
movq %rax, -0x1768(%rbp)
jmp 0xdae26
movq -0x1768(%rbp), %rdi
leaq 0x5b0aa(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1770(%rbp)
jmp 0xdae42
movq -0x1770(%rbp), %rdi
leaq 0x6cce6(%rip), %rsi     # 0x147b36
callq 0xa5c0
movq %rax, -0x1778(%rbp)
jmp 0xdae5e
movq -0x1778(%rbp), %rdi
leaq 0x5b072(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1780(%rbp)
jmp 0xdae7a
movq -0x1780(%rbp), %rdi
leaq 0x6ccb6(%rip), %rsi     # 0x147b3e
callq 0xa5c0
movq %rax, -0x1788(%rbp)
jmp 0xdae96
movq -0x1788(%rbp), %rdi
leaq 0x5b03a(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1790(%rbp)
jmp 0xdaeb2
movq -0x1790(%rbp), %rdi
leaq 0x6cc86(%rip), %rsi     # 0x147b46
callq 0xa5c0
movq %rax, -0x1798(%rbp)
jmp 0xdaece
movq -0x1798(%rbp), %rdi
leaq 0x5b002(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x17a0(%rbp)
jmp 0xdaeea
movq -0x17a0(%rbp), %rdi
leaq 0x6cc5c(%rip), %rsi     # 0x147b54
callq 0xa5c0
movq %rax, -0x17a8(%rbp)
jmp 0xdaf06
movq -0x17a8(%rbp), %rdi
leaq 0x5afca(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x17b0(%rbp)
jmp 0xdaf22
movq -0x17b0(%rbp), %rdi
leaq 0x6cc38(%rip), %rsi     # 0x147b68
callq 0xa5c0
movq %rax, -0x17b8(%rbp)
jmp 0xdaf3e
movq -0x17b8(%rbp), %rdi
movq 0xbe03c(%rip), %rsi     # 0x198f88
callq 0xa610
jmp 0xdaf53
jmp 0xdb33b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xdafb2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xdafa6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xdaf9a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x4a0(%rbp), %rdi
callq 0xac88
leaq -0x500(%rbp), %rdi
callq 0xac88
leaq -0x4c0(%rbp), %rdi
callq 0xac88
leaq -0x4e0(%rbp), %rdi
callq 0xac88
jmp 0xe02a7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xe029b
movq -0x1718(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
movl $0x200, %esi            # imm = 0x200
callq 0xa5e0
jmp 0xe029b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xdb050
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xdb044
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xdb038
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x548(%rbp), %rdi
callq 0xac88
leaq -0x5a8(%rbp), %rdi
callq 0xac88
leaq -0x568(%rbp), %rdi
callq 0xac88
leaq -0x588(%rbp), %rdi
callq 0xac88
jmp 0xe029b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xe028f
movq -0x1720(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
movl $0x200, %esi            # imm = 0x200
callq 0xa5e0
jmp 0xe028f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xdb0ee
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xdb0e2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xdb0d6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x5e8(%rbp), %rdi
callq 0xac88
leaq -0x648(%rbp), %rdi
callq 0xac88
leaq -0x608(%rbp), %rdi
callq 0xac88
leaq -0x628(%rbp), %rdi
callq 0xac88
jmp 0xe028f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xe0283
movq -0xa8(%rbp), %rdi
leaq 0x64d7a(%rip), %rsi     # 0x13fe98
callq 0xa5c0
movq %rax, -0x17c0(%rbp)
jmp 0xdb12c
movq -0x17c0(%rbp), %rdi
leaq 0x5ada4(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x17c8(%rbp)
jmp 0xdb148
movq -0x17c8(%rbp), %rdi
leaq 0x6c9d6(%rip), %rsi     # 0x147b2c
callq 0xa5c0
movq %rax, -0x17d0(%rbp)
jmp 0xdb164
movq -0x17d0(%rbp), %rdi
leaq 0x5ad6c(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x17d8(%rbp)
jmp 0xdb180
movq -0x17d8(%rbp), %rdi
leaq 0x6c9a4(%rip), %rsi     # 0x147b32
callq 0xa5c0
movq %rax, -0x17e0(%rbp)
jmp 0xdb19c
movq -0x17e0(%rbp), %rdi
leaq 0x5ad34(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x17e8(%rbp)
jmp 0xdb1b8
movq -0x17e8(%rbp), %rdi
leaq 0x6c8cc(%rip), %rsi     # 0x147a92
callq 0xa5c0
movq %rax, -0x17f0(%rbp)
jmp 0xdb1d4
movq -0x17f0(%rbp), %rdi
leaq 0x5acfc(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x17f8(%rbp)
jmp 0xdb1f0
movq -0x17f8(%rbp), %rdi
leaq 0x6c89f(%rip), %rsi     # 0x147a9d
callq 0xa5c0
movq %rax, -0x1800(%rbp)
jmp 0xdb20c
movq -0x1800(%rbp), %rdi
leaq 0x5acc4(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1808(%rbp)
jmp 0xdb228
movq -0x1808(%rbp), %rdi
leaq 0x6c900(%rip), %rsi     # 0x147b36
callq 0xa5c0
movq %rax, -0x1810(%rbp)
jmp 0xdb244
movq -0x1810(%rbp), %rdi
leaq 0x5ac8c(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1818(%rbp)
jmp 0xdb260
movq -0x1818(%rbp), %rdi
leaq 0x6c8d0(%rip), %rsi     # 0x147b3e
callq 0xa5c0
movq %rax, -0x1820(%rbp)
jmp 0xdb27c
movq -0x1820(%rbp), %rdi
leaq 0x5ac54(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1828(%rbp)
jmp 0xdb298
movq -0x1828(%rbp), %rdi
leaq 0x6c8a0(%rip), %rsi     # 0x147b46
callq 0xa5c0
movq %rax, -0x1830(%rbp)
jmp 0xdb2b4
movq -0x1830(%rbp), %rdi
leaq 0x5ac1c(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1838(%rbp)
jmp 0xdb2d0
movq -0x1838(%rbp), %rdi
leaq 0x6c876(%rip), %rsi     # 0x147b54
callq 0xa5c0
movq %rax, -0x1840(%rbp)
jmp 0xdb2ec
movq -0x1840(%rbp), %rdi
leaq 0x5abe4(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1848(%rbp)
jmp 0xdb308
movq -0x1848(%rbp), %rdi
leaq 0x6c852(%rip), %rsi     # 0x147b68
callq 0xa5c0
movq %rax, -0x1850(%rbp)
jmp 0xdb324
movq -0x1850(%rbp), %rdi
movq 0xbdc56(%rip), %rsi     # 0x198f88
callq 0xa610
jmp 0xdb339
jmp 0xdb33b
movl $0x200, %edi            # imm = 0x200
callq 0xa5d0
movq %rax, -0x1858(%rbp)
jmp 0xdb34e
leaq -0x5c8(%rbp), %rdi
callq 0xa220
movq -0x1858(%rbp), %rdi
movq %rax, %rsi
movl $0x10, %edx
callq 0xa650
jmp 0xdb370
movq -0x1858(%rbp), %rax
movq %rax, -0x650(%rbp)
leaq -0x670(%rbp), %rdi
movq %rdi, -0x1860(%rbp)
callq 0xa820
leaq -0x690(%rbp), %rdi
callq 0xa820
movq -0x1860(%rbp), %rsi
movq -0x78(%rbp), %rdi
callq 0xa0d0
jmp 0xdb3af
movq -0x78(%rbp), %rdi
leaq -0x690(%rbp), %rsi
callq 0xa0d0
jmp 0xdb3c1
leaq -0x6a8(%rbp), %rdi
leaq -0x670(%rbp), %rsi
movl $0x2c, %edx
callq 0x7bbe0
jmp 0xdb3db
leaq -0x6c0(%rbp), %rdi
leaq -0x690(%rbp), %rsi
movl $0x2c, %edx
callq 0x7bbe0
jmp 0xdb3f5
leaq -0x6a8(%rbp), %rdi
movq %rdi, -0x1868(%rbp)
callq 0x44030
movq -0x1868(%rbp), %rdi
movq %rax, -0x6c8(%rbp)
callq 0x44060
movq %rax, -0x6d0(%rbp)
movq -0x6c8(%rbp), %rdi
movq -0x6d0(%rbp), %rsi
callq 0x9d660
jmp 0xdb437
leaq -0x6c0(%rbp), %rdi
movq %rdi, -0x1870(%rbp)
callq 0x44030
movq -0x1870(%rbp), %rdi
movq %rax, -0x6d8(%rbp)
callq 0x44060
movq %rax, -0x6e0(%rbp)
movq -0x6d8(%rbp), %rdi
movq -0x6e0(%rbp), %rsi
callq 0x9d660
jmp 0xdb479
movl $0x0, -0x6e8(%rbp)
movl $0x0, -0x6ec(%rbp)
leaq -0x711(%rbp), %rdi
movq %rdi, -0x1878(%rbp)
callq 0xab60
movq -0x1878(%rbp), %rdx
leaq 0x6c6ce(%rip), %rsi     # 0x147b7c
leaq -0x710(%rbp), %rdi
callq 0x2d6c0
jmp 0xdb4bc
leaq -0x711(%rbp), %rdi
callq 0xa640
leaq -0x739(%rbp), %rdi
movq %rdi, -0x1880(%rbp)
callq 0xab60
movq -0x1880(%rbp), %rdx
leaq 0x581f9(%rip), %rsi     # 0x1336e2
leaq -0x738(%rbp), %rdi
callq 0x2d6c0
jmp 0xdb4f7
leaq -0x739(%rbp), %rdi
callq 0xa640
movl $0x0, -0x740(%rbp)
movl $0x0, -0x748(%rbp)
leaq -0x760(%rbp), %rdi
callq 0x48410
leaq -0x778(%rbp), %rdi
callq 0x48410
leaq -0x790(%rbp), %rdi
callq 0x48410
leaq -0x7a8(%rbp), %rdi
callq 0x48410
leaq -0x7c0(%rbp), %rdi
callq 0x48410
leaq -0x7d8(%rbp), %rdi
callq 0x48410
leaq -0x7f0(%rbp), %rdi
callq 0x48410
leaq -0x808(%rbp), %rdi
callq 0x48da0
leaq -0x820(%rbp), %rdi
callq 0x48da0
leaq -0x838(%rbp), %rdi
callq 0x50c10
leaq -0x850(%rbp), %rdi
callq 0x50c10
leaq -0x868(%rbp), %rdi
callq 0x50c10
leaq -0x880(%rbp), %rdi
callq 0x50c10
leaq -0x8a8(%rbp), %rdi
callq 0xa820
leaq -0x8d8(%rbp), %rdi
callq 0xc6550
leaq -0x8f0(%rbp), %rdi
movq %rdi, -0x1888(%rbp)
callq 0x48410
movq -0x1888(%rbp), %rdi
movl $0x1c9c380, %esi        # imm = 0x1C9C380
callq 0xe2f90
jmp 0xdb5f1
leaq -0x908(%rbp), %rdi
movq %rdi, -0x1890(%rbp)
callq 0x48410
movq -0x1890(%rbp), %rdi
movl $0x1c9c380, %esi        # imm = 0x1C9C380
callq 0xe2f90
jmp 0xdb617
leaq -0x920(%rbp), %rdi
movq %rdi, -0x1898(%rbp)
callq 0x48410
movq -0x1898(%rbp), %rdi
movl $0x1c9c380, %esi        # imm = 0x1C9C380
callq 0xe2f90
jmp 0xdb63d
leaq -0x938(%rbp), %rdi
movq %rdi, -0x18a0(%rbp)
callq 0x65060
movq -0x18a0(%rbp), %rdi
movl $0x1c9c380, %esi        # imm = 0x1C9C380
callq 0xe3090
jmp 0xdb663
leaq -0x950(%rbp), %rdi
movq %rdi, -0x18a8(%rbp)
callq 0x48410
movq -0x18a8(%rbp), %rdi
movl $0x1c9c380, %esi        # imm = 0x1C9C380
callq 0xe2f90
jmp 0xdb689
leaq -0x968(%rbp), %rdi
movq %rdi, -0x18b0(%rbp)
callq 0x48410
movq -0x18b0(%rbp), %rdi
movl $0x1c9c380, %esi        # imm = 0x1C9C380
callq 0xe2f90
jmp 0xdb6af
leaq -0x980(%rbp), %rdi
movq %rdi, -0x18b8(%rbp)
callq 0x48410
movq -0x18b8(%rbp), %rdi
movl $0x1c9c380, %esi        # imm = 0x1C9C380
callq 0xe2f90
jmp 0xdb6d5
leaq -0x998(%rbp), %rdi
movq %rdi, -0x18c0(%rbp)
callq 0x48410
movq -0x18c0(%rbp), %rdi
movl $0x1c9c380, %esi        # imm = 0x1C9C380
callq 0xe2f90
jmp 0xdb6fb
leaq -0x9b0(%rbp), %rdi
movq %rdi, -0x18c8(%rbp)
callq 0x48410
movq -0x18c8(%rbp), %rdi
movl $0x1c9c380, %esi        # imm = 0x1C9C380
callq 0xe2f90
jmp 0xdb721
leaq -0x9c8(%rbp), %rdi
movq %rdi, -0x18d0(%rbp)
callq 0x48410
movq -0x18d0(%rbp), %rdi
movl $0x1c9c380, %esi        # imm = 0x1C9C380
callq 0xe2f90
jmp 0xdb747
jmp 0xdb749
movq -0x48(%rbp), %rdi
leaq -0x8a8(%rbp), %rsi
callq 0xa0d0
movq %rax, -0x18d8(%rbp)
jmp 0xdb762
movq -0x18d8(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0xa740
movb %al, -0x18d9(%rbp)
jmp 0xdb780
movb -0x18d9(%rbp), %al
testb $0x1, %al
jne 0xdb78f
jmp 0xdfa8b
xorl %eax, %eax
movl %eax, %esi
leaq -0x8a8(%rbp), %rdi
callq 0xac60
movq %rax, -0x18e8(%rbp)
jmp 0xdb7a8
movq -0x18e8(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x23, %eax
jne 0xdb926
leaq -0x8a8(%rbp), %rdi
movl $0x1, %esi
callq 0xac60
movq %rax, -0x18f0(%rbp)
jmp 0xdb7d5
movq -0x18f0(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x23, %eax
jne 0xdb926
jmp 0xdfa86
movq -0x1858(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
movl $0x200, %esi            # imm = 0x200
callq 0xa5e0
jmp 0xe0283
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xe026b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xe025f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xe0253
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x711(%rbp), %rdi
callq 0xa640
jmp 0xe0253
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x739(%rbp), %rdi
callq 0xa640
jmp 0xe0247
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xe017b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xe016f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xe0163
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xe0157
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xe014b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xe013f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xe0133
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xe0127
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xe011b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xe010f
xorl %eax, %eax
movl %eax, %esi
leaq -0x8a8(%rbp), %rdi
callq 0xac60
movq %rax, -0x18f8(%rbp)
jmp 0xdb93f
movq -0x18f8(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x23, %eax
jne 0xdc747
leaq -0x8a8(%rbp), %rdi
movl $0x1, %esi
callq 0xac60
movq %rax, -0x1900(%rbp)
jmp 0xdb96c
movq -0x1900(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x43, %eax
jne 0xdc747
leaq -0x9e0(%rbp), %rdi
leaq -0x8a8(%rbp), %rsi
movl $0x9, %edx
callq 0x7bbe0
jmp 0xdb999
leaq -0x9e0(%rbp), %rdi
callq 0x3ffd0
subq $0x9, %rax
movq %rax, -0x9e8(%rbp)
movq -0x9e8(%rbp), %rax
shll %eax
movl %eax, -0x6e4(%rbp)
leaq 0xbf522(%rip), %rdi     # 0x19aee8
callq 0xaa70
testb $0x1, %al
jne 0xdb9d4
jmp 0xdba55
movq $0x9, -0x9f0(%rbp)
movq -0x9f0(%rbp), %rax
movq %rax, -0x1908(%rbp)
leaq -0x9e0(%rbp), %rdi
callq 0x3ffd0
movq %rax, %rcx
movq -0x1908(%rbp), %rax
cmpq %rcx, %rax
je 0xdba53
movq -0x9f0(%rbp), %rsi
leaq -0x9e0(%rbp), %rdi
callq 0x3d940
movq %rax, %rsi
leaq -0x808(%rbp), %rdi
callq 0x48dc0
jmp 0xdba2c
jmp 0xdba2e
movq -0x9f0(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x9f0(%rbp)
jmp 0xdb9df
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xdc736
jmp 0xdba89
leaq 0xbf48c(%rip), %rsi     # 0x19aee8
leaq -0xa08(%rbp), %rdi
callq 0x80aa0
jmp 0xdba6a
leaq -0x808(%rbp), %rdi
leaq -0xa08(%rbp), %rsi
callq 0x50c30
leaq -0xa08(%rbp), %rdi
callq 0x3dfa0
leaq -0xa20(%rbp), %rdi
leaq -0x808(%rbp), %rsi
leaq -0x6a8(%rbp), %rdx
callq 0x81250
jmp 0xdbaa5
leaq -0x838(%rbp), %rdi
leaq -0xa20(%rbp), %rsi
movq %rsi, -0x1910(%rbp)
callq 0x50d10
movq -0x1910(%rbp), %rdi
callq 0x50d40
leaq -0xa38(%rbp), %rdi
leaq -0x808(%rbp), %rsi
leaq -0x6c0(%rbp), %rdx
callq 0x81250
jmp 0xdbae7
leaq -0x850(%rbp), %rdi
movq %rdi, -0x1920(%rbp)
leaq -0xa38(%rbp), %rsi
movq %rsi, -0x1928(%rbp)
callq 0x50d10
movq -0x1928(%rbp), %rdi
callq 0x50d40
leaq -0x838(%rbp), %rdi
callq 0x83b90
movq -0x1920(%rbp), %rdi
addl %eax, %eax
movw %ax, -0x882(%rbp)
callq 0x83b90
addl %eax, %eax
movw %ax, -0x884(%rbp)
movq 0xbd4ab(%rip), %rdi     # 0x198ff0
leaq 0x6c047(%rip), %rsi     # 0x147b93
callq 0xa5c0
movq %rax, -0x1918(%rbp)
jmp 0xdbb5a
movq -0x1918(%rbp), %rdi
movq 0xbd420(%rip), %rsi     # 0x198f88
callq 0xa610
jmp 0xdbb6f
leaq -0xa50(%rbp), %rdi
leaq -0x838(%rbp), %rsi
callq 0xad730
jmp 0xdbb84
movq 0xbd465(%rip), %rsi     # 0x198ff0
leaq -0xa50(%rbp), %rdi
movl $0x9, %edx
movl $0x1, %ecx
callq 0xad820
jmp 0xdbba3
leaq -0xa50(%rbp), %rdi
callq 0x50d40
movq 0xbd43a(%rip), %rdi     # 0x198ff0
leaq 0x6bfec(%rip), %rsi     # 0x147ba9
callq 0xa5c0
movq %rax, -0x1930(%rbp)
jmp 0xdbbcb
movq -0x1930(%rbp), %rdi
movq 0xbd3af(%rip), %rsi     # 0x198f88
callq 0xa610
jmp 0xdbbe0
leaq -0xa68(%rbp), %rdi
leaq -0x850(%rbp), %rsi
callq 0xad730
jmp 0xdbbf5
movq 0xbd3f4(%rip), %rsi     # 0x198ff0
leaq -0xa68(%rbp), %rdi
movl $0x9, %edx
movl $0x1, %ecx
callq 0xad820
jmp 0xdbc14
leaq -0xa68(%rbp), %rdi
callq 0x50d40
leaq 0xbf2a1(%rip), %rdi     # 0x19aec8
callq 0xaa70
testb $0x1, %al
jne 0xdbe3c
leaq -0xa80(%rbp), %rdi
leaq -0x808(%rbp), %rsi
leaq -0xd0(%rbp), %rdx
callq 0x81250
jmp 0xdbc50
leaq -0x868(%rbp), %rdi
leaq -0xa80(%rbp), %rsi
movq %rsi, -0x1938(%rbp)
callq 0x50d10
movq -0x1938(%rbp), %rdi
callq 0x50d40
leaq -0xa98(%rbp), %rdi
leaq -0x808(%rbp), %rsi
leaq -0xe8(%rbp), %rdx
callq 0x81250
jmp 0xdbc92
leaq -0x880(%rbp), %rdi
leaq -0xa98(%rbp), %rsi
movq %rsi, -0x1948(%rbp)
callq 0x50d10
movq -0x1948(%rbp), %rdi
callq 0x50d40
movq 0xbd331(%rip), %rdi     # 0x198ff0
leaq 0x6bec3(%rip), %rsi     # 0x147b89
callq 0xa5c0
movq %rax, -0x1940(%rbp)
jmp 0xdbcd4
movq -0x1940(%rbp), %rdi
movq 0xbd2a6(%rip), %rsi     # 0x198f88
callq 0xa610
jmp 0xdbce9
leaq -0xab0(%rbp), %rdi
leaq -0x868(%rbp), %rsi
callq 0xad730
jmp 0xdbcfe
movq 0xbd2eb(%rip), %rsi     # 0x198ff0
leaq -0xab0(%rbp), %rdi
movl $0x9, %edx
movl $0x1, %ecx
callq 0xad820
jmp 0xdbd1d
leaq -0xab0(%rbp), %rdi
callq 0x50d40
movq 0xbd2c0(%rip), %rdi     # 0x198ff0
leaq 0x6be68(%rip), %rsi     # 0x147b9f
callq 0xa5c0
movq %rax, -0x1950(%rbp)
jmp 0xdbd45
movq -0x1950(%rbp), %rdi
movq 0xbd235(%rip), %rsi     # 0x198f88
callq 0xa610
jmp 0xdbd5a
leaq -0xac8(%rbp), %rdi
leaq -0x880(%rbp), %rsi
callq 0xad730
jmp 0xdbd6f
movq 0xbd27a(%rip), %rsi     # 0x198ff0
leaq -0xac8(%rbp), %rdi
movl $0x9, %edx
movl $0x1, %ecx
callq 0xad820
jmp 0xdbd8e
leaq -0xac8(%rbp), %rdi
callq 0x50d40
leaq -0x868(%rbp), %rdi
callq 0x83b90
shlq %rax
movw %ax, -0x886(%rbp)
leaq -0x880(%rbp), %rdi
callq 0x83b90
shlq %rax
movw %ax, -0x888(%rbp)
jmp 0xdbe3c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0xa50(%rbp), %rdi
callq 0x50d40
jmp 0xdc736
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0xa68(%rbp), %rdi
callq 0x50d40
jmp 0xdc736
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0xab0(%rbp), %rdi
callq 0x50d40
jmp 0xdc736
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0xac8(%rbp), %rdi
callq 0x50d40
jmp 0xdc736
cmpl $0x0, 0xbf165(%rip)     # 0x19afa8
jle 0xdc725
movl 0xbf159(%rip), %eax     # 0x19afa8
cmpl 0xbf157(%rip), %eax     # 0x19afac
jne 0xdc3e7
cmpl $0x1, 0xbf146(%rip)     # 0x19afa8
jne 0xdbf7e
movq -0x508(%rbp), %rdi
leaq 0x6bd3f(%rip), %rsi     # 0x147bb5
callq 0xa5c0
movq %rax, -0x1958(%rbp)
jmp 0xdbe84
movq -0x1958(%rbp), %rdi
leaq 0x5a04c(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1960(%rbp)
jmp 0xdbea0
movq -0x1960(%rbp), %rdi
leaq 0x63fea(%rip), %rsi     # 0x13fe98
callq 0xa5c0
movq %rax, -0x1968(%rbp)
jmp 0xdbebc
movq -0x1968(%rbp), %rdi
leaq 0x5a014(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1970(%rbp)
jmp 0xdbed8
movq -0x1970(%rbp), %rdi
leaq 0x6bcd7(%rip), %rsi     # 0x147bbd
callq 0xa5c0
movq %rax, -0x1978(%rbp)
jmp 0xdbef4
movq -0x1978(%rbp), %rdi
leaq 0x59fdc(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1980(%rbp)
jmp 0xdbf10
movq -0x1980(%rbp), %rdi
leaq 0x6bb74(%rip), %rsi     # 0x147a92
callq 0xa5c0
movq %rax, -0x1988(%rbp)
jmp 0xdbf2c
movq -0x1988(%rbp), %rdi
leaq 0x59fa4(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1990(%rbp)
jmp 0xdbf48
movq -0x1990(%rbp), %rdi
leaq 0x6bc70(%rip), %rsi     # 0x147bc6
callq 0xa5c0
movq %rax, -0x1998(%rbp)
jmp 0xdbf64
movq -0x1998(%rbp), %rdi
movq 0xbd016(%rip), %rsi     # 0x198f88
callq 0xa610
jmp 0xdbf79
jmp 0xdc32a
movq -0x650(%rbp), %rdi
leaq 0x63f0c(%rip), %rsi     # 0x13fe98
callq 0xa5c0
movq %rax, -0x19a0(%rbp)
jmp 0xdbf9a
movq -0x19a0(%rbp), %rdi
leaq 0x59f36(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x19a8(%rbp)
jmp 0xdbfb6
movq -0x19a8(%rbp), %rdi
leaq 0x6bb68(%rip), %rsi     # 0x147b2c
callq 0xa5c0
movq %rax, -0x19b0(%rbp)
jmp 0xdbfd2
movq -0x19b0(%rbp), %rdi
leaq 0x59efe(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x19b8(%rbp)
jmp 0xdbfee
movq -0x19b8(%rbp), %rdi
leaq 0x6bb36(%rip), %rsi     # 0x147b32
callq 0xa5c0
movq %rax, -0x19c0(%rbp)
jmp 0xdc00a
movq -0x19c0(%rbp), %rdi
leaq 0x59ec6(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x19c8(%rbp)
jmp 0xdc026
movq -0x19c8(%rbp), %rdi
leaq 0x6bba2(%rip), %rsi     # 0x147bd6
callq 0xa5c0
movq %rax, -0x19d0(%rbp)
jmp 0xdc042
movq -0x19d0(%rbp), %rdi
leaq 0x59e8e(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x19d8(%rbp)
jmp 0xdc05e
movq -0x19d8(%rbp), %rdi
leaq 0x6bb7e(%rip), %rsi     # 0x147bea
callq 0xa5c0
movq %rax, -0x19e0(%rbp)
jmp 0xdc07a
movq -0x19e0(%rbp), %rdi
leaq 0x59e56(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x19e8(%rbp)
jmp 0xdc096
movq -0x19e8(%rbp), %rdi
leaq 0x6bb5a(%rip), %rsi     # 0x147bfe
callq 0xa5c0
movq %rax, -0x19f0(%rbp)
jmp 0xdc0b2
movq -0x19f0(%rbp), %rdi
leaq 0x59e1e(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x19f8(%rbp)
jmp 0xdc0ce
movq -0x19f8(%rbp), %rdi
leaq 0x6bb3a(%rip), %rsi     # 0x147c16
callq 0xa5c0
movq %rax, -0x1a00(%rbp)
jmp 0xdc0ea
movq -0x1a00(%rbp), %rdi
leaq 0x59de6(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1a08(%rbp)
jmp 0xdc106
movq -0x1a08(%rbp), %rdi
leaq 0x6bb1a(%rip), %rsi     # 0x147c2e
callq 0xa5c0
movq %rax, -0x1a10(%rbp)
jmp 0xdc122
movq -0x1a10(%rbp), %rdi
leaq 0x59dae(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1a18(%rbp)
jmp 0xdc13e
movq -0x1a18(%rbp), %rdi
leaq 0x6bafe(%rip), %rsi     # 0x147c4a
callq 0xa5c0
movq %rax, -0x1a20(%rbp)
jmp 0xdc15a
movq -0x1a20(%rbp), %rdi
movq 0xbce20(%rip), %rsi     # 0x198f88
callq 0xa610
jmp 0xdc16f
movq -0x508(%rbp), %rdi
leaq 0x6ba38(%rip), %rsi     # 0x147bb5
callq 0xa5c0
movq %rax, -0x1a28(%rbp)
jmp 0xdc18b
movq -0x1a28(%rbp), %rdi
leaq 0x59d45(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1a30(%rbp)
jmp 0xdc1a7
movq -0x1a30(%rbp), %rdi
leaq 0x63ce3(%rip), %rsi     # 0x13fe98
callq 0xa5c0
movq %rax, -0x1a38(%rbp)
jmp 0xdc1c3
movq -0x1a38(%rbp), %rdi
leaq 0x59d0d(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1a40(%rbp)
jmp 0xdc1df
movq -0x1a40(%rbp), %rdi
leaq 0x6b93f(%rip), %rsi     # 0x147b2c
callq 0xa5c0
movq %rax, -0x1a48(%rbp)
jmp 0xdc1fb
movq -0x1a48(%rbp), %rdi
leaq 0x59cd5(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1a50(%rbp)
jmp 0xdc217
movq -0x1a50(%rbp), %rdi
leaq 0x6b90d(%rip), %rsi     # 0x147b32
callq 0xa5c0
movq %rax, -0x1a58(%rbp)
jmp 0xdc233
movq -0x1a58(%rbp), %rdi
leaq 0x59c9d(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1a60(%rbp)
jmp 0xdc24f
movq -0x1a60(%rbp), %rdi
leaq 0x6b835(%rip), %rsi     # 0x147a92
callq 0xa5c0
movq %rax, -0x1a68(%rbp)
jmp 0xdc26b
movq -0x1a68(%rbp), %rdi
leaq 0x59c65(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1a70(%rbp)
jmp 0xdc287
movq -0x1a70(%rbp), %rdi
leaq 0x6b9d1(%rip), %rsi     # 0x147c66
callq 0xa5c0
movq %rax, -0x1a78(%rbp)
jmp 0xdc2a3
movq -0x1a78(%rbp), %rdi
leaq 0x59c2d(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1a80(%rbp)
jmp 0xdc2bf
movq -0x1a80(%rbp), %rdi
leaq 0x6b9aa(%rip), %rsi     # 0x147c77
callq 0xa5c0
movq %rax, -0x1a88(%rbp)
jmp 0xdc2db
movq -0x1a88(%rbp), %rdi
leaq 0x59bf5(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1a90(%rbp)
jmp 0xdc2f7
movq -0x1a90(%rbp), %rdi
leaq 0x6b97f(%rip), %rsi     # 0x147c84
callq 0xa5c0
movq %rax, -0x1a98(%rbp)
jmp 0xdc313
movq -0x1a98(%rbp), %rdi
movq 0xbcc67(%rip), %rsi     # 0x198f88
callq 0xa610
jmp 0xdc328
jmp 0xdc32a
movsd 0xbec7e(%rip), %xmm0    # 0x19afb0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jbe 0xdc3e2
movq -0x98(%rbp), %rdi
leaq 0x63b4b(%rip), %rsi     # 0x13fe98
callq 0xa5c0
movq %rax, -0x1aa0(%rbp)
jmp 0xdc35b
movq -0x1aa0(%rbp), %rdi
leaq 0x59b75(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1aa8(%rbp)
jmp 0xdc377
movq -0x1aa8(%rbp), %rdi
leaq 0x6b7a7(%rip), %rsi     # 0x147b2c
callq 0xa5c0
movq %rax, -0x1ab0(%rbp)
jmp 0xdc393
movq -0x1ab0(%rbp), %rdi
leaq 0x59b3d(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1ab8(%rbp)
jmp 0xdc3af
movq -0x1ab8(%rbp), %rdi
leaq 0x6b775(%rip), %rsi     # 0x147b32
callq 0xa5c0
movq %rax, -0x1ac0(%rbp)
jmp 0xdc3cb
movq -0x1ac0(%rbp), %rdi
movq 0xbcbaf(%rip), %rsi     # 0x198f88
callq 0xa610
jmp 0xdc3e0
jmp 0xdc3e2
jmp 0xdc723
movq -0x650(%rbp), %rdi
leaq 0x6b89a(%rip), %rsi     # 0x147c8f
callq 0xa5c0
movq %rax, -0x1ac8(%rbp)
jmp 0xdc403
movq -0x1ac8(%rbp), %rdi
leaq 0x59acd(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1ad0(%rbp)
jmp 0xdc41f
movq -0x1ad0(%rbp), %rdi
leaq 0x6b7a9(%rip), %rsi     # 0x147bd6
callq 0xa5c0
movq %rax, -0x1ad8(%rbp)
jmp 0xdc43b
movq -0x1ad8(%rbp), %rdi
leaq 0x59a95(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1ae0(%rbp)
jmp 0xdc457
movq -0x1ae0(%rbp), %rdi
leaq 0x6b785(%rip), %rsi     # 0x147bea
callq 0xa5c0
movq %rax, -0x1ae8(%rbp)
jmp 0xdc473
movq -0x1ae8(%rbp), %rdi
leaq 0x59a5d(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1af0(%rbp)
jmp 0xdc48f
movq -0x1af0(%rbp), %rdi
leaq 0x6b761(%rip), %rsi     # 0x147bfe
callq 0xa5c0
movq %rax, -0x1af8(%rbp)
jmp 0xdc4ab
movq -0x1af8(%rbp), %rdi
leaq 0x59a25(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1b00(%rbp)
jmp 0xdc4c7
movq -0x1b00(%rbp), %rdi
leaq 0x6b741(%rip), %rsi     # 0x147c16
callq 0xa5c0
movq %rax, -0x1b08(%rbp)
jmp 0xdc4e3
movq -0x1b08(%rbp), %rdi
leaq 0x599ed(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1b10(%rbp)
jmp 0xdc4ff
movq -0x1b10(%rbp), %rdi
leaq 0x6b721(%rip), %rsi     # 0x147c2e
callq 0xa5c0
movq %rax, -0x1b18(%rbp)
jmp 0xdc51b
movq -0x1b18(%rbp), %rdi
leaq 0x599b5(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1b20(%rbp)
jmp 0xdc537
movq -0x1b20(%rbp), %rdi
leaq 0x6b705(%rip), %rsi     # 0x147c4a
callq 0xa5c0
movq %rax, -0x1b28(%rbp)
jmp 0xdc553
movq -0x1b28(%rbp), %rdi
movq 0xbca27(%rip), %rsi     # 0x198f88
callq 0xa610
jmp 0xdc568
movq -0x508(%rbp), %rdi
leaq 0x6b63f(%rip), %rsi     # 0x147bb5
callq 0xa5c0
movq %rax, -0x1b30(%rbp)
jmp 0xdc584
movq -0x1b30(%rbp), %rdi
leaq 0x5994c(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1b38(%rbp)
jmp 0xdc5a0
movq -0x1b38(%rbp), %rdi
leaq 0x638ea(%rip), %rsi     # 0x13fe98
callq 0xa5c0
movq %rax, -0x1b40(%rbp)
jmp 0xdc5bc
movq -0x1b40(%rbp), %rdi
leaq 0x59914(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1b48(%rbp)
jmp 0xdc5d8
movq -0x1b48(%rbp), %rdi
leaq 0x6b546(%rip), %rsi     # 0x147b2c
callq 0xa5c0
movq %rax, -0x1b50(%rbp)
jmp 0xdc5f4
movq -0x1b50(%rbp), %rdi
leaq 0x598dc(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1b58(%rbp)
jmp 0xdc610
movq -0x1b58(%rbp), %rdi
leaq 0x6b514(%rip), %rsi     # 0x147b32
callq 0xa5c0
movq %rax, -0x1b60(%rbp)
jmp 0xdc62c
movq -0x1b60(%rbp), %rdi
leaq 0x598a4(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1b68(%rbp)
jmp 0xdc648
movq -0x1b68(%rbp), %rdi
leaq 0x6b43c(%rip), %rsi     # 0x147a92
callq 0xa5c0
movq %rax, -0x1b70(%rbp)
jmp 0xdc664
movq -0x1b70(%rbp), %rdi
leaq 0x5986c(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1b78(%rbp)
jmp 0xdc680
movq -0x1b78(%rbp), %rdi
leaq 0x6b5d8(%rip), %rsi     # 0x147c66
callq 0xa5c0
movq %rax, -0x1b80(%rbp)
jmp 0xdc69c
movq -0x1b80(%rbp), %rdi
leaq 0x59834(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1b88(%rbp)
jmp 0xdc6b8
movq -0x1b88(%rbp), %rdi
leaq 0x6b5b1(%rip), %rsi     # 0x147c77
callq 0xa5c0
movq %rax, -0x1b90(%rbp)
jmp 0xdc6d4
movq -0x1b90(%rbp), %rdi
leaq 0x597fc(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1b98(%rbp)
jmp 0xdc6f0
movq -0x1b98(%rbp), %rdi
leaq 0x6b586(%rip), %rsi     # 0x147c84
callq 0xa5c0
movq %rax, -0x1ba0(%rbp)
jmp 0xdc70c
movq -0x1ba0(%rbp), %rdi
movq 0xbc86e(%rip), %rsi     # 0x198f88
callq 0xa610
jmp 0xdc721
jmp 0xdc723
jmp 0xdc725
leaq -0x9e0(%rbp), %rdi
callq 0x3dfa0
jmp 0xdfa84
leaq -0x9e0(%rbp), %rdi
callq 0x3dfa0
jmp 0xe010f
movl -0x6e8(%rbp), %eax
incl %eax
movl %eax, -0x6e8(%rbp)
leaq -0xae0(%rbp), %rdi
leaq -0x8a8(%rbp), %rsi
movl $0x9, %edx
callq 0x7bbe0
jmp 0xdc76f
xorl %eax, %eax
movl %eax, %esi
leaq -0xae0(%rbp), %rdi
callq 0x3d940
movq %rax, %rsi
leaq -0xb00(%rbp), %rdi
callq 0xa250
jmp 0xdc790
leaq -0xae0(%rbp), %rdi
movl $0x1, %esi
callq 0x3d940
movq %rax, %rsi
leaq -0xb20(%rbp), %rdi
callq 0xa250
jmp 0xdc7b2
leaq -0xae0(%rbp), %rdi
movl $0x7, %esi
callq 0x3d940
movq %rax, %rsi
leaq -0xb38(%rbp), %rdi
movl $0x3b, %edx
callq 0x7bbe0
jmp 0xdc7d9
movl $0xf8, %edi
callq 0xa5d0
movq %rax, -0x1ba8(%rbp)
jmp 0xdc7ec
movq -0x1ba8(%rbp), %rdi
callq 0xe3190
jmp 0xdc7fa
movq -0x1ba8(%rbp), %rax
movq %rax, -0xb40(%rbp)
leaq -0xae0(%rbp), %rdi
movl $0x3, %esi
callq 0x3d940
movq %rax, %rsi
leaq -0xb60(%rbp), %rdi
callq 0xa250
jmp 0xdc82a
leaq -0xb60(%rbp), %rdi
callq 0xa930
cmpq $0x1, %rax
jbe 0xdc8db
movq -0xb40(%rbp), %rax
movb $0x1, 0xd4(%rax)
leaq -0xb60(%rbp), %rdi
callq 0xa7b0
leaq -0xb60(%rbp), %rdi
callq 0xac30
movl $0x2, -0xb64(%rbp)
jmp 0xdf9f4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xdfa73
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xdfa67
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xdfa5b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xdfa4f
movq -0x1ba8(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
movl $0xf8, %esi
callq 0xa5e0
jmp 0xdfa4f
movq -0xb40(%rbp), %rsi
leaq -0xae0(%rbp), %rdi
leaq -0x838(%rbp), %rdx
leaq -0x850(%rbp), %rcx
callq 0xd8ab0
jmp 0xdc8fe
movq -0xb40(%rbp), %rax
cmpl $0x1, 0xd0(%rax)
jne 0xdf93b
movq -0xb40(%rbp), %rax
movb 0xd4(%rax), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
jne 0xdf93b
movq -0xb40(%rbp), %rax
cmpl $0x0, 0xc0(%rax)
jg 0xdc951
movq -0xb40(%rbp), %rax
cmpl $0x0, 0xc4(%rax)
jle 0xdf93b
movq -0xb40(%rbp), %rax
movl 0xc0(%rax), %eax
movq -0xb40(%rbp), %rcx
cmpl 0xc8(%rcx), %eax
jl 0xdc98d
movq -0xb40(%rbp), %rax
movl 0xc4(%rax), %eax
movq -0xb40(%rbp), %rcx
cmpl 0xcc(%rcx), %eax
jge 0xdf93b
movl -0x6ec(%rbp), %eax
incl %eax
movl %eax, -0x6ec(%rbp)
movq -0xb40(%rbp), %rdi
callq 0xe3290
jmp 0xdc9a9
movq -0xb40(%rbp), %rax
movsd 0xe8(%rax), %xmm0
movsd 0xf0(%rax), %xmm1
movl 0xc8(%rax), %edi
movl 0xcc(%rax), %esi
callq 0xe32e0
movsd %xmm0, -0x1bb0(%rbp)
jmp 0xdc9db
movsd -0x1bb0(%rbp), %xmm0
movsd %xmm0, -0xb70(%rbp)
leaq -0x8f0(%rbp), %rdi
leaq -0xb70(%rbp), %rsi
callq 0xb77b0
jmp 0xdca00
leaq -0x778(%rbp), %rdi
leaq -0xb70(%rbp), %rsi
callq 0xb77b0
jmp 0xdca15
movq -0xb40(%rbp), %rax
movsd 0xe8(%rax), %xmm0
movsd 0xf0(%rax), %xmm1
callq 0xe3390
movsd %xmm0, -0x1bb8(%rbp)
jmp 0xdca3b
movsd -0x1bb8(%rbp), %xmm0
movsd %xmm0, -0xb78(%rbp)
leaq -0x908(%rbp), %rdi
leaq -0xb78(%rbp), %rsi
callq 0xb77b0
jmp 0xdca60
leaq -0x790(%rbp), %rdi
leaq -0xb78(%rbp), %rsi
callq 0xb77b0
jmp 0xdca75
movsd -0xb78(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0xdca8a
jp 0xdca8a
jmp 0xdca8c
jmp 0xdcabc
leaq 0x6b210(%rip), %rdi     # 0x147ca3
leaq 0x6b21d(%rip), %rsi     # 0x147cb7
movl $0x226, %edx            # imm = 0x226
leaq 0x6b225(%rip), %rcx     # 0x147ccb
callq 0xa390
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xdfa43
movq -0xb40(%rbp), %rdi
movswl -0x882(%rbp), %esi
movswl -0x884(%rbp), %edx
callq 0xd95a0
movsd %xmm0, -0xb80(%rbp)
leaq -0x920(%rbp), %rdi
leaq -0xb80(%rbp), %rsi
callq 0xb77b0
jmp 0xdcaf3
leaq -0x760(%rbp), %rdi
leaq -0xb80(%rbp), %rsi
callq 0xb77b0
jmp 0xdcb08
movq -0xb40(%rbp), %rsi
movswl -0x882(%rbp), %edx
movswl -0x884(%rbp), %ecx
leaq -0xb98(%rbp), %rdi
callq 0xd9c40
jmp 0xdcb2b
leaq -0x938(%rbp), %rdi
leaq -0xb98(%rbp), %rsi
callq 0x834d0
jmp 0xdcb40
movq -0xb40(%rbp), %rsi
movswl -0x882(%rbp), %edx
movswl -0x884(%rbp), %ecx
leaq -0xbb0(%rbp), %rdi
callq 0xd9890
jmp 0xdcb63
xorl %eax, %eax
movl %eax, %esi
leaq -0xbb0(%rbp), %rdi
callq 0x3ec30
movq %rax, %rsi
leaq -0x7d8(%rbp), %rdi
callq 0xb77b0
jmp 0xdcb84
leaq -0xbb0(%rbp), %rdi
movl $0x1, %esi
callq 0x3ec30
movq %rax, %rsi
leaq -0x7f0(%rbp), %rdi
callq 0xb77b0
jmp 0xdcba6
xorl %eax, %eax
movl %eax, %esi
leaq -0xbb0(%rbp), %rdi
callq 0x3ec30
movq %rax, %rsi
leaq -0x9b0(%rbp), %rdi
callq 0xb77b0
jmp 0xdcbc7
leaq -0xbb0(%rbp), %rdi
movl $0x1, %esi
callq 0x3ec30
movq %rax, %rsi
leaq -0x9c8(%rbp), %rdi
callq 0xb77b0
jmp 0xdcbe9
xorl %eax, %eax
movl %eax, %esi
leaq -0xb98(%rbp), %rdi
callq 0x3ec30
movq %rax, %rsi
leaq -0x950(%rbp), %rdi
callq 0xb77b0
jmp 0xdcc0a
leaq -0xb98(%rbp), %rdi
movl $0x1, %esi
callq 0x3ec30
movq %rax, %rsi
leaq -0x968(%rbp), %rdi
callq 0xb77b0
jmp 0xdcc2c
xorl %eax, %eax
movl %eax, %esi
leaq -0xb98(%rbp), %rdi
callq 0x3ec30
movq %rax, %rsi
leaq -0x7a8(%rbp), %rdi
callq 0xb77b0
jmp 0xdcc4d
leaq -0xb98(%rbp), %rdi
movl $0x2, %esi
callq 0x3ec30
movq %rax, %rsi
leaq -0x980(%rbp), %rdi
callq 0xb77b0
jmp 0xdcc6f
leaq -0xb98(%rbp), %rdi
movl $0x3, %esi
callq 0x3ec30
movq %rax, %rsi
leaq -0x998(%rbp), %rdi
callq 0xb77b0
jmp 0xdcc91
leaq -0xb98(%rbp), %rdi
movl $0x1, %esi
callq 0x3ec30
movq %rax, %rsi
leaq -0x7c0(%rbp), %rdi
callq 0xb77b0
jmp 0xdccb3
leaq 0xbe26e(%rip), %rdi     # 0x19af28
callq 0xaa70
testb $0x1, %al
jne 0xdce66
leaq -0xbd0(%rbp), %rdi
leaq -0x1a8(%rbp), %rsi
leaq -0xb00(%rbp), %rdx
leaq -0xb20(%rbp), %rcx
callq 0xe33e0
jmp 0xdccea
movsd -0xb70(%rbp), %xmm0
movsd -0xb78(%rbp), %xmm1
divsd %xmm1, %xmm0
movsd %xmm0, -0xbd8(%rbp)
movq -0x90(%rbp), %rdi
leaq -0xbd0(%rbp), %rsi
callq 0xa520
movq %rax, -0x1bc0(%rbp)
jmp 0xdcd22
movq -0x1bc0(%rbp), %rdi
leaq 0x591ae(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1bc8(%rbp)
jmp 0xdcd3e
movq -0x1bc8(%rbp), %rdi
movsd -0xbd8(%rbp), %xmm0
callq 0xabd0
movq %rax, -0x1bd0(%rbp)
jmp 0xdcd5b
movq -0x1bd0(%rbp), %rdi
leaq 0x59175(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1bd8(%rbp)
jmp 0xdcd77
movq -0x1bd8(%rbp), %rdi
movsd -0xb80(%rbp), %xmm0
callq 0xabd0
movq %rax, -0x1be0(%rbp)
jmp 0xdcd94
movq -0x1be0(%rbp), %rdi
leaq 0x5913c(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1be8(%rbp)
jmp 0xdcdb0
movq -0x1be8(%rbp), %rdi
leaq -0xb00(%rbp), %rsi
callq 0xa520
movq %rax, -0x1bf0(%rbp)
jmp 0xdcdcc
movq -0x1bf0(%rbp), %rdi
leaq 0x59104(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1bf8(%rbp)
jmp 0xdcde8
movq -0x1bf8(%rbp), %rdi
leaq -0xb20(%rbp), %rsi
callq 0xa520
movq %rax, -0x1c00(%rbp)
jmp 0xdce04
movq -0x1c00(%rbp), %rdi
movq 0xbc176(%rip), %rsi     # 0x198f88
callq 0xa610
jmp 0xdce19
leaq -0xbd0(%rbp), %rdi
callq 0xac88
jmp 0xdce66
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xdf92a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xdf91e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0xbd0(%rbp), %rdi
callq 0xac88
jmp 0xdf91e
leaq 0xbe05b(%rip), %rdi     # 0x19aec8
callq 0xaa70
testb $0x1, %al
jne 0xdd921
movsd -0xb70(%rbp), %xmm0
divsd -0xb78(%rbp), %xmm0
movsd %xmm0, -0xbe0(%rbp)
xorps %xmm0, %xmm0
ucomisd -0xbe0(%rbp), %xmm0
jbe 0xdceaa
xorps %xmm0, %xmm0
movsd %xmm0, -0xbe0(%rbp)
leaq -0xb38(%rbp), %rdi
movq %rdi, -0x1c08(%rbp)
callq 0x3ffd0
movq -0x1c08(%rbp), %rdi
movq %rax, %rsi
decq %rsi
callq 0x3d940
movq %rax, %rsi
leaq -0xc18(%rbp), %rdi
movl $0x3d, %edx
callq 0x7bbe0
jmp 0xdcee5
leaq -0xc18(%rbp), %rdi
movl $0x1, %esi
callq 0x3d940
movq %rax, %rsi
leaq -0xc00(%rbp), %rdi
callq 0xa250
jmp 0xdcf07
leaq -0xc18(%rbp), %rdi
callq 0x3dfa0
leaq -0xcf8(%rbp), %rdi
callq 0x51e40
jmp 0xdcf21
leaq -0xae0(%rbp), %rdi
movl $0x3, %esi
callq 0x3d940
movq %rax, %rsi
leaq -0xc00(%rbp), %rdi
callq 0x39210
testb $0x1, %al
jne 0xdcf4a
jmp 0xdd2a5
leaq -0xdf9(%rbp), %rdi
movq %rdi, -0x1c10(%rbp)
callq 0xab60
movq -0x1c10(%rbp), %rdx
leaq 0x5681d(%rip), %rsi     # 0x133788
leaq -0xdf8(%rbp), %rdi
callq 0x2d6c0
jmp 0xdcf79
movq %rsp, %rax
leaq -0xdf8(%rbp), %rcx
movq %rcx, (%rax)
leaq -0xdd8(%rbp), %rdi
leaq -0xae0(%rbp), %rsi
leaq -0x838(%rbp), %rdx
leaq -0x850(%rbp), %rcx
leaq -0x868(%rbp), %r8
leaq -0x880(%rbp), %r9
callq 0x7ea40
jmp 0xdcfb7
leaq -0xcf8(%rbp), %rdi
leaq -0xdd8(%rbp), %rsi
movq %rsi, -0x1c20(%rbp)
callq 0x52160
movq -0x1c20(%rbp), %rdi
callq 0x52220
leaq -0xdf8(%rbp), %rdi
callq 0xac88
leaq -0xdf9(%rbp), %rdi
callq 0xa640
movq -0xb8(%rbp), %rdi
leaq -0xb00(%rbp), %rsi
callq 0xa520
movq %rax, -0x1c18(%rbp)
jmp 0xdd011
movq -0x1c18(%rbp), %rdi
leaq 0x58ebf(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1c28(%rbp)
jmp 0xdd02d
leaq -0xae0(%rbp), %rdi
movl $0x1, %esi
callq 0x3d940
movq -0x1c28(%rbp), %rdi
movq %rax, %rsi
callq 0xa520
movq %rax, -0x1c30(%rbp)
jmp 0xdd056
movq -0x1c30(%rbp), %rdi
leaq 0x58e7a(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1c38(%rbp)
jmp 0xdd072
movq -0x1c38(%rbp), %rdi
movsd -0xcb0(%rbp), %xmm0
movsd -0xca8(%rbp), %xmm1
subsd %xmm1, %xmm0
callq 0xabd0
movq %rax, -0x1c40(%rbp)
jmp 0xdd09b
movq -0x1c40(%rbp), %rdi
leaq 0x58e35(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1c48(%rbp)
jmp 0xdd0b7
movq -0x1c48(%rbp), %rdi
movsd -0xbe0(%rbp), %xmm0
callq 0xabd0
movq %rax, -0x1c50(%rbp)
jmp 0xdd0d4
movq -0x1c50(%rbp), %rdi
leaq 0x58dfc(%rip), %rsi     # 0x135ede
callq 0xa5c0
jmp 0xdd0e9
movsd -0xca0(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
seta %al
andb $0x1, %al
movzbl %al, %eax
movsd 0x551b0(%rip), %xmm0    # 0x1322b8
ucomisd -0xca0(%rbp), %xmm0
seta %cl
andb $0x1, %cl
movzbl %cl, %ecx
andl %ecx, %eax
cmpl $0x0, %eax
je 0xdd1d0
movq -0xb8(%rbp), %rdi
leaq 0x7138e(%rip), %rsi     # 0x14e4c0
callq 0xa5c0
movq %rax, -0x1c58(%rbp)
jmp 0xdd140
movq -0x1c58(%rbp), %rdi
leaq 0x58d90(%rip), %rsi     # 0x135ede
callq 0xa5c0
jmp 0xdd155
jmp 0xdd203
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0xc18(%rbp), %rdi
callq 0x3dfa0
jmp 0xdf91e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xdd910
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xdd1ae
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0xdf8(%rbp), %rdi
callq 0xac88
leaq -0xdf9(%rbp), %rdi
callq 0xa640
jmp 0xdd904
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xdd904
movq -0xb8(%rbp), %rdi
leaq 0x5650f(%rip), %rsi     # 0x1336ed
callq 0xa5c0
movq %rax, -0x1c60(%rbp)
jmp 0xdd1ec
movq -0x1c60(%rbp), %rdi
leaq 0x58ce4(%rip), %rsi     # 0x135ede
callq 0xa5c0
jmp 0xdd201
jmp 0xdd203
movsd -0xc98(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
seta %al
andb $0x1, %al
movzbl %al, %eax
movsd 0x55096(%rip), %xmm0    # 0x1322b8
ucomisd -0xc98(%rbp), %xmm0
seta %cl
andb $0x1, %cl
movzbl %cl, %ecx
andl %ecx, %eax
cmpl $0x0, %eax
je 0xdd26d
movq -0xb8(%rbp), %rdi
leaq 0x71278(%rip), %rsi     # 0x14e4c0
callq 0xa5c0
movq %rax, -0x1c68(%rbp)
jmp 0xdd256
movq -0x1c68(%rbp), %rdi
movq 0xbbd24(%rip), %rsi     # 0x198f88
callq 0xa610
jmp 0xdd26b
jmp 0xdd2a0
movq -0xb8(%rbp), %rdi
leaq 0x56472(%rip), %rsi     # 0x1336ed
callq 0xa5c0
movq %rax, -0x1c70(%rbp)
jmp 0xdd289
movq -0x1c70(%rbp), %rdi
movq 0xbbcf1(%rip), %rsi     # 0x198f88
callq 0xa610
jmp 0xdd29e
jmp 0xdd2a0
jmp 0xdd8ea
leaq -0xae0(%rbp), %rdi
movl $0x4, %esi
callq 0x3d940
movq %rax, %rsi
leaq -0xc00(%rbp), %rdi
callq 0x39210
testb $0x1, %al
jne 0xdd2ce
jmp 0xdd5e3
leaq -0xf01(%rbp), %rdi
movq %rdi, -0x1c78(%rbp)
callq 0xab60
movq -0x1c78(%rbp), %rdx
leaq 0x6f654(%rip), %rsi     # 0x14c943
leaq -0xf00(%rbp), %rdi
callq 0x2d6c0
jmp 0xdd2fd
movq %rsp, %rax
leaq -0xf00(%rbp), %rcx
movq %rcx, (%rax)
leaq -0xee0(%rbp), %rdi
leaq -0xae0(%rbp), %rsi
leaq -0x838(%rbp), %rdx
leaq -0x850(%rbp), %rcx
leaq -0x868(%rbp), %r8
leaq -0x880(%rbp), %r9
callq 0x7ea40
jmp 0xdd33b
leaq -0xcf8(%rbp), %rdi
leaq -0xee0(%rbp), %rsi
movq %rsi, -0x1c88(%rbp)
callq 0x52160
movq -0x1c88(%rbp), %rdi
callq 0x52220
leaq -0xf00(%rbp), %rdi
callq 0xac88
leaq -0xf01(%rbp), %rdi
callq 0xa640
movq -0xb8(%rbp), %rdi
leaq -0xb00(%rbp), %rsi
callq 0xa520
movq %rax, -0x1c80(%rbp)
jmp 0xdd395
movq -0x1c80(%rbp), %rdi
leaq 0x58b3b(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1c90(%rbp)
jmp 0xdd3b1
leaq -0xae0(%rbp), %rdi
movl $0x1, %esi
callq 0x3d940
movq -0x1c90(%rbp), %rdi
movq %rax, %rsi
callq 0xa520
movq %rax, -0x1c98(%rbp)
jmp 0xdd3da
movq -0x1c98(%rbp), %rdi
leaq 0x58af6(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1ca0(%rbp)
jmp 0xdd3f6
movq -0x1ca0(%rbp), %rdi
movsd -0xcb0(%rbp), %xmm0
movsd -0xca8(%rbp), %xmm1
subsd %xmm1, %xmm0
callq 0xabd0
movq %rax, -0x1ca8(%rbp)
jmp 0xdd41f
movq -0x1ca8(%rbp), %rdi
leaq 0x58ab1(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1cb0(%rbp)
jmp 0xdd43b
movq -0x1cb0(%rbp), %rdi
movsd -0xbe0(%rbp), %xmm0
callq 0xabd0
movq %rax, -0x1cb8(%rbp)
jmp 0xdd458
movq -0x1cb8(%rbp), %rdi
leaq 0x58a78(%rip), %rsi     # 0x135ede
callq 0xa5c0
jmp 0xdd46d
movsd -0xca0(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
seta %al
andb $0x1, %al
movzbl %al, %eax
movsd 0x54e2c(%rip), %xmm0    # 0x1322b8
ucomisd -0xca0(%rbp), %xmm0
seta %cl
andb $0x1, %cl
movzbl %cl, %ecx
andl %ecx, %eax
cmpl $0x0, %eax
je 0xdd50e
movq -0xb8(%rbp), %rdi
leaq 0x7100e(%rip), %rsi     # 0x14e4c0
callq 0xa5c0
movq %rax, -0x1cc0(%rbp)
jmp 0xdd4c0
movq -0x1cc0(%rbp), %rdi
leaq 0x58a10(%rip), %rsi     # 0x135ede
callq 0xa5c0
jmp 0xdd4d5
jmp 0xdd541
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xdd4fd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0xf00(%rbp), %rdi
callq 0xac88
leaq -0xf01(%rbp), %rdi
callq 0xa640
jmp 0xdd904
movq -0xb8(%rbp), %rdi
leaq 0x561d1(%rip), %rsi     # 0x1336ed
callq 0xa5c0
movq %rax, -0x1cc8(%rbp)
jmp 0xdd52a
movq -0x1cc8(%rbp), %rdi
leaq 0x589a6(%rip), %rsi     # 0x135ede
callq 0xa5c0
jmp 0xdd53f
jmp 0xdd541
movsd -0xc98(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
seta %al
andb $0x1, %al
movzbl %al, %eax
movsd 0x54d58(%rip), %xmm0    # 0x1322b8
ucomisd -0xc98(%rbp), %xmm0
seta %cl
andb $0x1, %cl
movzbl %cl, %ecx
andl %ecx, %eax
cmpl $0x0, %eax
je 0xdd5ab
movq -0xb8(%rbp), %rdi
leaq 0x70f3a(%rip), %rsi     # 0x14e4c0
callq 0xa5c0
movq %rax, -0x1cd0(%rbp)
jmp 0xdd594
movq -0x1cd0(%rbp), %rdi
movq 0xbb9e6(%rip), %rsi     # 0x198f88
callq 0xa610
jmp 0xdd5a9
jmp 0xdd5de
movq -0xb8(%rbp), %rdi
leaq 0x56134(%rip), %rsi     # 0x1336ed
callq 0xa5c0
movq %rax, -0x1cd8(%rbp)
jmp 0xdd5c7
movq -0x1cd8(%rbp), %rdi
movq 0xbb9b3(%rip), %rsi     # 0x198f88
callq 0xa610
jmp 0xdd5dc
jmp 0xdd5de
jmp 0xdd8e8
leaq -0x1009(%rbp), %rdi
movq %rdi, -0x1ce0(%rbp)
callq 0xab60
movq -0x1ce0(%rbp), %rdx
leaq 0x6bf9d(%rip), %rsi     # 0x1495a1
leaq -0x1008(%rbp), %rdi
callq 0x2d6c0
jmp 0xdd612
movq %rsp, %rax
leaq -0x1008(%rbp), %rcx
movq %rcx, (%rax)
leaq -0xfe8(%rbp), %rdi
leaq -0xae0(%rbp), %rsi
leaq -0x838(%rbp), %rdx
leaq -0x850(%rbp), %rcx
leaq -0x868(%rbp), %r8
leaq -0x880(%rbp), %r9
callq 0x7ea40
jmp 0xdd650
leaq -0xcf8(%rbp), %rdi
leaq -0xfe8(%rbp), %rsi
movq %rsi, -0x1cf0(%rbp)
callq 0x52160
movq -0x1cf0(%rbp), %rdi
callq 0x52220
leaq -0x1008(%rbp), %rdi
callq 0xac88
leaq -0x1009(%rbp), %rdi
callq 0xa640
movq -0xb8(%rbp), %rdi
leaq -0xb00(%rbp), %rsi
callq 0xa520
movq %rax, -0x1ce8(%rbp)
jmp 0xdd6aa
movq -0x1ce8(%rbp), %rdi
leaq 0x58826(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1cf8(%rbp)
jmp 0xdd6c6
leaq -0xae0(%rbp), %rdi
movl $0x1, %esi
callq 0x3d940
movq -0x1cf8(%rbp), %rdi
movq %rax, %rsi
callq 0xa520
movq %rax, -0x1d00(%rbp)
jmp 0xdd6ef
movq -0x1d00(%rbp), %rdi
leaq 0x587e1(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1d08(%rbp)
jmp 0xdd70b
movq -0x1d08(%rbp), %rdi
leaq 0x6a5c7(%rip), %rsi     # 0x147ce0
callq 0xa5c0
movq %rax, -0x1d10(%rbp)
jmp 0xdd727
movq -0x1d10(%rbp), %rdi
leaq 0x587a9(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1d18(%rbp)
jmp 0xdd743
movq -0x1d18(%rbp), %rdi
movsd -0xbe0(%rbp), %xmm0
callq 0xabd0
movq %rax, -0x1d20(%rbp)
jmp 0xdd760
movq -0x1d20(%rbp), %rdi
leaq 0x58770(%rip), %rsi     # 0x135ede
callq 0xa5c0
jmp 0xdd775
movsd -0xcc0(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
seta %al
andb $0x1, %al
movzbl %al, %eax
movsd 0x54b24(%rip), %xmm0    # 0x1322b8
ucomisd -0xcc0(%rbp), %xmm0
seta %cl
andb $0x1, %cl
movzbl %cl, %ecx
andl %ecx, %eax
cmpl $0x0, %eax
je 0xdd816
movq -0xb8(%rbp), %rdi
leaq 0x70d06(%rip), %rsi     # 0x14e4c0
callq 0xa5c0
movq %rax, -0x1d28(%rbp)
jmp 0xdd7c8
movq -0x1d28(%rbp), %rdi
leaq 0x58708(%rip), %rsi     # 0x135ede
callq 0xa5c0
jmp 0xdd7dd
jmp 0xdd849
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xdd805
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x1008(%rbp), %rdi
callq 0xac88
leaq -0x1009(%rbp), %rdi
callq 0xa640
jmp 0xdd904
movq -0xb8(%rbp), %rdi
leaq 0x55ec9(%rip), %rsi     # 0x1336ed
callq 0xa5c0
movq %rax, -0x1d30(%rbp)
jmp 0xdd832
movq -0x1d30(%rbp), %rdi
leaq 0x5869e(%rip), %rsi     # 0x135ede
callq 0xa5c0
jmp 0xdd847
jmp 0xdd849
movsd -0xcb8(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
seta %al
andb $0x1, %al
movzbl %al, %eax
movsd 0x54a50(%rip), %xmm0    # 0x1322b8
ucomisd -0xcb8(%rbp), %xmm0
seta %cl
andb $0x1, %cl
movzbl %cl, %ecx
andl %ecx, %eax
cmpl $0x0, %eax
je 0xdd8b3
movq -0xb8(%rbp), %rdi
leaq 0x70c32(%rip), %rsi     # 0x14e4c0
callq 0xa5c0
movq %rax, -0x1d38(%rbp)
jmp 0xdd89c
movq -0x1d38(%rbp), %rdi
movq 0xbb6de(%rip), %rsi     # 0x198f88
callq 0xa610
jmp 0xdd8b1
jmp 0xdd8e6
movq -0xb8(%rbp), %rdi
leaq 0x55e2c(%rip), %rsi     # 0x1336ed
callq 0xa5c0
movq %rax, -0x1d40(%rbp)
jmp 0xdd8cf
movq -0x1d40(%rbp), %rdi
movq 0xbb6ab(%rip), %rsi     # 0x198f88
callq 0xa610
jmp 0xdd8e4
jmp 0xdd8e6
jmp 0xdd8e8
jmp 0xdd8ea
leaq -0xcf8(%rbp), %rdi
callq 0x52220
leaq -0xc00(%rbp), %rdi
callq 0xac88
jmp 0xdd921
leaq -0xcf8(%rbp), %rdi
callq 0x52220
leaq -0xc00(%rbp), %rdi
callq 0xac88
jmp 0xdf91e
leaq -0x1028(%rbp), %rdi
leaq -0x738(%rbp), %rsi
movl $0x9, %edx
callq 0x7bbe0
jmp 0xdd93b
leaq -0x1028(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x3d940
movq %rax, %rdi
leaq -0xb00(%rbp), %rsi
callq 0x39210
testb $0x1, %al
jne 0xdd963
jmp 0xde1f1
leaq -0xae0(%rbp), %rdi
movl $0x1, %esi
callq 0x3d940
movq %rax, %rdi
callq 0xa220
movq %rax, %rdi
callq 0xa970
movl -0x748(%rbp), %ecx
addl 0xbbfa8(%rip), %ecx     # 0x199938
cmpl %ecx, %eax
jle 0xde1ef
movl 0xbbf9a(%rip), %eax     # 0x199938
movl %eax, -0x102c(%rbp)
leaq 0xbd55d(%rip), %rdi     # 0x19af08
callq 0xaa70
testb $0x1, %al
jne 0xdd9fe
movq -0x360(%rbp), %rdi
movl -0x748(%rbp), %edx
movl 0xbbf71(%rip), %eax     # 0x199938
movl %edx, %ecx
addl %eax, %ecx
leaq -0xb00(%rbp), %rsi
callq 0x95230
movl %eax, -0x1d44(%rbp)
jmp 0xdd9df
movl -0x1d44(%rbp), %eax
movl %eax, -0x102c(%rbp)
jmp 0xdd9fe
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xdf912
leaq -0x1050(%rbp), %rdi
leaq -0x760(%rbp), %rsi
callq 0x53120
jmp 0xdda13
movl -0x102c(%rbp), %esi
leaq -0x1050(%rbp), %rdi
callq 0xe3970
movsd %xmm0, -0x1d50(%rbp)
jmp 0xdda2f
leaq -0x1050(%rbp), %rdi
callq 0x3ecb0
movsd -0x1d50(%rbp), %xmm0
movsd %xmm0, -0x1038(%rbp)
leaq -0x778(%rbp), %rdi
leaq -0x790(%rbp), %rsi
callq 0xd9b50
movsd %xmm0, -0x1d58(%rbp)
jmp 0xdda68
movsd -0x1d58(%rbp), %xmm0
movsd %xmm0, -0x1058(%rbp)
leaq -0x1078(%rbp), %rdi
leaq -0x7d8(%rbp), %rsi
callq 0x53120
jmp 0xdda8d
movl -0x102c(%rbp), %esi
leaq -0x1078(%rbp), %rdi
callq 0xe3970
movsd %xmm0, -0x1d60(%rbp)
jmp 0xddaa9
leaq -0x1078(%rbp), %rdi
callq 0x3ecb0
movsd -0x1d60(%rbp), %xmm0
movsd %xmm0, -0x1060(%rbp)
leaq -0x1098(%rbp), %rdi
leaq -0x7f0(%rbp), %rsi
callq 0x53120
jmp 0xddada
movl -0x102c(%rbp), %esi
leaq -0x1098(%rbp), %rdi
callq 0xe3970
movsd %xmm0, -0x1d68(%rbp)
jmp 0xddaf6
leaq -0x1098(%rbp), %rdi
callq 0x3ecb0
movsd -0x1d68(%rbp), %xmm0
movsd %xmm0, -0x1080(%rbp)
leaq -0x7d8(%rbp), %rdi
movq %rdi, -0x1d78(%rbp)
callq 0x48920
movq -0x1d78(%rbp), %rdi
movq %rax, -0x10a8(%rbp)
callq 0x48760
movq %rax, -0x10b0(%rbp)
movl $0x0, -0x10b4(%rbp)
movq -0x10a8(%rbp), %rdi
movq -0x10b0(%rbp), %rsi
leaq -0x10b4(%rbp), %rdx
callq 0xe3a00
movq %rax, -0x1d70(%rbp)
jmp 0xddb6c
movq -0x1d70(%rbp), %rax
movl %eax, -0x109c(%rbp)
leaq -0x7d8(%rbp), %rdi
callq 0x3ebf0
movl -0x109c(%rbp), %ecx
subl %ecx, %eax
movl %eax, -0x10b8(%rbp)
leaq -0x7f0(%rbp), %rdi
movq %rdi, -0x1d88(%rbp)
callq 0x48920
movq -0x1d88(%rbp), %rdi
movq %rax, -0x10c8(%rbp)
callq 0x48760
movq %rax, -0x10d0(%rbp)
movl $0x0, -0x10d4(%rbp)
movq -0x10c8(%rbp), %rdi
movq -0x10d0(%rbp), %rsi
leaq -0x10d4(%rbp), %rdx
callq 0xe3a00
movq %rax, -0x1d80(%rbp)
jmp 0xddbed
movq -0x1d80(%rbp), %rax
movl %eax, -0x10bc(%rbp)
leaq -0x7f0(%rbp), %rdi
callq 0x3ebf0
movl -0x10bc(%rbp), %ecx
subl %ecx, %eax
movl %eax, -0x10d8(%rbp)
movq -0xa8(%rbp), %rdi
leaq -0xb00(%rbp), %rsi
callq 0xa520
movq %rax, -0x1d90(%rbp)
jmp 0xddc30
movq -0x1d90(%rbp), %rdi
leaq 0x582a0(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1d98(%rbp)
jmp 0xddc4c
movq -0x1d98(%rbp), %rdi
movl -0x748(%rbp), %esi
callq 0xab20
movq %rax, -0x1da0(%rbp)
jmp 0xddc67
movq -0x1da0(%rbp), %rdi
leaq 0x58269(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1da8(%rbp)
jmp 0xddc83
movq -0x1da8(%rbp), %rdi
movl -0x748(%rbp), %esi
movl 0xbbca2(%rip), %eax     # 0x199938
addl %eax, %esi
callq 0xab20
movq %rax, -0x1db0(%rbp)
jmp 0xddca6
movq -0x1db0(%rbp), %rdi
leaq 0x5822a(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1db8(%rbp)
jmp 0xddcc2
movq -0x1db8(%rbp), %rdi
movsd -0x1058(%rbp), %xmm0
callq 0xabd0
movq %rax, -0x1dc0(%rbp)
jmp 0xddcdf
movq -0x1dc0(%rbp), %rdi
leaq 0x581f1(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1dc8(%rbp)
jmp 0xddcfb
movq -0x1dc8(%rbp), %rdi
movsd -0x1038(%rbp), %xmm0
callq 0xabd0
movq %rax, -0x1dd0(%rbp)
jmp 0xddd18
movq -0x1dd0(%rbp), %rdi
leaq 0x581b8(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1dd8(%rbp)
jmp 0xddd34
movq -0x1dd8(%rbp), %rdi
movsd -0x1060(%rbp), %xmm0
callq 0xabd0
movq %rax, -0x1de0(%rbp)
jmp 0xddd51
movq -0x1de0(%rbp), %rdi
leaq 0x5817f(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1de8(%rbp)
jmp 0xddd6d
movq -0x1de8(%rbp), %rdi
movsd -0x1080(%rbp), %xmm0
callq 0xabd0
movq %rax, -0x1df0(%rbp)
jmp 0xddd8a
movq -0x1df0(%rbp), %rdi
leaq 0x58146(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1df8(%rbp)
jmp 0xddda6
movq -0x1df8(%rbp), %rdi
movl -0x102c(%rbp), %esi
callq 0xab20
movq %rax, -0x1e00(%rbp)
jmp 0xdddc1
movq -0x1e00(%rbp), %rdi
leaq 0x5810f(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1e08(%rbp)
jmp 0xddddd
movq -0x1e08(%rbp), %rdi
cvtsi2sdl -0x10b8(%rbp), %xmm0
cvtsi2sdl -0x102c(%rbp), %xmm1
divsd %xmm1, %xmm0
callq 0xabd0
movq %rax, -0x1e10(%rbp)
jmp 0xdde06
movq -0x1e10(%rbp), %rdi
leaq 0x580ca(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1e18(%rbp)
jmp 0xdde22
movq -0x1e18(%rbp), %rdi
cvtsi2sdl -0x10d8(%rbp), %xmm0
cvtsi2sdl -0x102c(%rbp), %xmm1
divsd %xmm1, %xmm0
callq 0xabd0
movq %rax, -0x1e20(%rbp)
jmp 0xdde4b
movq -0x1e20(%rbp), %rdi
movq 0xbb12f(%rip), %rsi     # 0x198f88
callq 0xa610
jmp 0xdde60
leaq -0x760(%rbp), %rdi
callq 0x53210
leaq -0x778(%rbp), %rdi
callq 0x53210
leaq -0x790(%rbp), %rdi
callq 0x53210
leaq -0x7a8(%rbp), %rdi
callq 0x53210
leaq -0x7c0(%rbp), %rdi
callq 0x53210
leaq -0x7d8(%rbp), %rdi
callq 0x53210
leaq -0x7f0(%rbp), %rdi
callq 0x53210
movl $0x0, -0x10dc(%rbp)
leaq -0xae0(%rbp), %rdi
movl $0x1, %esi
callq 0x3d940
movq %rax, %rdi
callq 0xa220
movq %rax, %rdi
callq 0xa970
movl -0x748(%rbp), %ecx
addl 0xbba4d(%rip), %ecx     # 0x199938
cmpl %ecx, %eax
jle 0xde1ed
cmpl $0x0, -0x10dc(%rbp)
jle 0xde1c7
movl 0xbba32(%rip), %eax     # 0x199938
movl %eax, -0x10e0(%rbp)
leaq 0xbcff5(%rip), %rdi     # 0x19af08
callq 0xaa70
testb $0x1, %al
jne 0xddfb0
movq -0x360(%rbp), %rdi
movl -0x748(%rbp), %edx
movl 0xbba05(%rip), %eax     # 0x199938
movl %edx, %ecx
addl %eax, %ecx
leaq -0xb00(%rbp), %rsi
callq 0x95230
movl %eax, -0x1e24(%rbp)
jmp 0xddf4b
movl -0x1e24(%rbp), %eax
movl %eax, -0x10e0(%rbp)
jmp 0xddfb0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x1050(%rbp), %rdi
callq 0x3ecb0
jmp 0xdf912
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x1078(%rbp), %rdi
callq 0x3ecb0
jmp 0xdf912
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x1098(%rbp), %rdi
callq 0x3ecb0
jmp 0xdf912
movq -0xa8(%rbp), %rdi
leaq -0xb00(%rbp), %rsi
callq 0xa520
movq %rax, -0x1e30(%rbp)
jmp 0xddfcc
movq -0x1e30(%rbp), %rdi
leaq 0x57f04(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1e38(%rbp)
jmp 0xddfe8
movq -0x1e38(%rbp), %rdi
movl -0x748(%rbp), %esi
callq 0xab20
movq %rax, -0x1e40(%rbp)
jmp 0xde003
movq -0x1e40(%rbp), %rdi
leaq 0x57ecd(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1e48(%rbp)
jmp 0xde01f
movq -0x1e48(%rbp), %rdi
movl -0x748(%rbp), %esi
movl 0xbb906(%rip), %eax     # 0x199938
addl %eax, %esi
callq 0xab20
movq %rax, -0x1e50(%rbp)
jmp 0xde042
movq -0x1e50(%rbp), %rdi
leaq 0x57e8e(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1e58(%rbp)
jmp 0xde05e
movq -0x1e58(%rbp), %rdi
leaq 0x50618(%rip), %rsi     # 0x12e684
callq 0xa5c0
movq %rax, -0x1e60(%rbp)
jmp 0xde07a
movq -0x1e60(%rbp), %rdi
leaq 0x57e56(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1e68(%rbp)
jmp 0xde096
movq -0x1e68(%rbp), %rdi
xorl %esi, %esi
callq 0xab20
movq %rax, -0x1e70(%rbp)
jmp 0xde0ad
movq -0x1e70(%rbp), %rdi
leaq 0x57e23(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1e78(%rbp)
jmp 0xde0c9
movq -0x1e78(%rbp), %rdi
xorl %esi, %esi
callq 0xab20
movq %rax, -0x1e80(%rbp)
jmp 0xde0e0
movq -0x1e80(%rbp), %rdi
leaq 0x57df0(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1e88(%rbp)
jmp 0xde0fc
movq -0x1e88(%rbp), %rdi
xorl %esi, %esi
callq 0xab20
movq %rax, -0x1e90(%rbp)
jmp 0xde113
movq -0x1e90(%rbp), %rdi
leaq 0x57dbd(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1e98(%rbp)
jmp 0xde12f
movq -0x1e98(%rbp), %rdi
movl -0x10e0(%rbp), %esi
callq 0xab20
movq %rax, -0x1ea0(%rbp)
jmp 0xde14a
movq -0x1ea0(%rbp), %rdi
leaq 0x57d86(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1ea8(%rbp)
jmp 0xde166
movq -0x1ea8(%rbp), %rdi
xorl %esi, %esi
callq 0xab20
movq %rax, -0x1eb0(%rbp)
jmp 0xde17d
movq -0x1eb0(%rbp), %rdi
leaq 0x57d53(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1eb8(%rbp)
jmp 0xde199
movq -0x1eb8(%rbp), %rdi
xorl %esi, %esi
callq 0xab20
movq %rax, -0x1ec0(%rbp)
jmp 0xde1b0
movq -0x1ec0(%rbp), %rdi
movq 0xbadca(%rip), %rsi     # 0x198f88
callq 0xa610
jmp 0xde1c5
jmp 0xde1c7
movl -0x748(%rbp), %eax
addl 0xbb765(%rip), %eax     # 0x199938
movl %eax, -0x748(%rbp)
movl -0x10dc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x10dc(%rbp)
jmp 0xddebe
jmp 0xde1ef
jmp 0xde24f
movl $0x0, -0x748(%rbp)
leaq -0x760(%rbp), %rdi
callq 0x53210
leaq -0x778(%rbp), %rdi
callq 0x53210
leaq -0x790(%rbp), %rdi
callq 0x53210
leaq -0x7a8(%rbp), %rdi
callq 0x53210
leaq -0x7c0(%rbp), %rdi
callq 0x53210
leaq -0x7d8(%rbp), %rdi
callq 0x53210
leaq -0x7f0(%rbp), %rdi
callq 0x53210
cmpl $0x1, 0xbcd52(%rip)     # 0x19afa8
jne 0xde3ff
movsd -0xb70(%rbp), %xmm0
divsd -0xb78(%rbp), %xmm0
movsd %xmm0, -0x10e8(%rbp)
xorps %xmm0, %xmm0
ucomisd -0x10e8(%rbp), %xmm0
jbe 0xde28c
xorps %xmm0, %xmm0
movsd %xmm0, -0x10e8(%rbp)
movq -0x508(%rbp), %rdi
movl -0x6ec(%rbp), %esi
callq 0xab20
movq %rax, -0x1ec8(%rbp)
jmp 0xde2a7
movq -0x1ec8(%rbp), %rdi
leaq 0x57c29(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1ed0(%rbp)
jmp 0xde2c3
leaq 0x57c14(%rip), %rdx     # 0x135ede
leaq -0x1128(%rbp), %rdi
leaq -0xb00(%rbp), %rsi
callq 0x3da80
jmp 0xde2df
leaq -0xae0(%rbp), %rdi
movl $0x1, %esi
callq 0x3d940
movq %rax, %rdx
leaq -0x1108(%rbp), %rdi
leaq -0x1128(%rbp), %rsi
callq 0x3da30
jmp 0xde308
movq -0x1ed0(%rbp), %rdi
leaq -0x1108(%rbp), %rsi
callq 0xa520
movq %rax, -0x1ed8(%rbp)
jmp 0xde324
movq -0x1ed8(%rbp), %rdi
leaq 0x57bac(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1ee0(%rbp)
jmp 0xde340
movq -0x1ee0(%rbp), %rdi
movsd -0x10e8(%rbp), %xmm0
callq 0xabd0
movq %rax, -0x1ee8(%rbp)
jmp 0xde35d
movq -0x1ee8(%rbp), %rdi
leaq 0x57b73(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1ef0(%rbp)
jmp 0xde379
movq -0x1ef0(%rbp), %rdi
movsd -0xb80(%rbp), %xmm0
callq 0xabd0
movq %rax, -0x1ef8(%rbp)
jmp 0xde396
movq -0x1ef8(%rbp), %rdi
movq 0xbabe4(%rip), %rsi     # 0x198f88
callq 0xa610
jmp 0xde3ab
leaq -0x1108(%rbp), %rdi
callq 0xac88
leaq -0x1128(%rbp), %rdi
callq 0xac88
jmp 0xdf8bb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xde3ee
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x1108(%rbp), %rdi
callq 0xac88
leaq -0x1128(%rbp), %rdi
callq 0xac88
jmp 0xdf912
cmpl $0x0, 0xbcba2(%rip)     # 0x19afa8
jle 0xdf8b9
movl -0x6ec(%rbp), %eax
cltd
idivl 0xbcb93(%rip)           # 0x19afac
cmpl $0x0, %edx
jne 0xdf8b9
movl -0x6ec(%rbp), %eax
cmpl 0xbcb7a(%rip), %eax     # 0x19afa8
jl 0xdf8b9
leaq -0x8f0(%rbp), %rdi
movq %rdi, -0x1f08(%rbp)
callq 0x48760
movq %rax, -0x1150(%rbp)
movslq 0xbcb53(%rip), %rsi     # 0x19afa8
leaq -0x1150(%rbp), %rdi
callq 0x48d40
movq -0x1f08(%rbp), %rdi
movq %rax, -0x1148(%rbp)
callq 0x48760
movq %rax, -0x1158(%rbp)
leaq -0x1159(%rbp), %rdi
movq %rdi, -0x1f00(%rbp)
callq 0x484d0
movq -0x1f00(%rbp), %rcx
movq -0x1148(%rbp), %rsi
movq -0x1158(%rbp), %rdx
leaq -0x1140(%rbp), %rdi
callq 0xe3a50
jmp 0xde4b1
leaq -0x1159(%rbp), %rdi
callq 0x4a130
leaq -0x908(%rbp), %rdi
movq %rdi, -0x1f18(%rbp)
callq 0x48760
movq %rax, -0x1188(%rbp)
movslq 0xbcaca(%rip), %rsi     # 0x19afa8
leaq -0x1188(%rbp), %rdi
callq 0x48d40
movq -0x1f18(%rbp), %rdi
movq %rax, -0x1180(%rbp)
callq 0x48760
movq %rax, -0x1190(%rbp)
leaq -0x1191(%rbp), %rdi
movq %rdi, -0x1f10(%rbp)
callq 0x484d0
movq -0x1f10(%rbp), %rcx
movq -0x1180(%rbp), %rsi
movq -0x1190(%rbp), %rdx
leaq -0x1178(%rbp), %rdi
callq 0xe3a50
jmp 0xde53a
leaq -0x1191(%rbp), %rdi
callq 0x4a130
leaq -0x1140(%rbp), %rdi
leaq -0x1178(%rbp), %rsi
callq 0xd9b50
movsd %xmm0, -0x1f20(%rbp)
jmp 0xde563
movsd -0x1f20(%rbp), %xmm0
movsd %xmm0, -0x11a0(%rbp)
xorps %xmm0, %xmm0
ucomisd -0x11a0(%rbp), %xmm0
jbe 0xde5d8
xorps %xmm0, %xmm0
movsd %xmm0, -0x11a0(%rbp)
jmp 0xde5d8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x1159(%rbp), %rdi
callq 0x4a130
jmp 0xdf912
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x1191(%rbp), %rdi
callq 0x4a130
jmp 0xdf8ab
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xdf89f
leaq -0x920(%rbp), %rdi
movq %rdi, -0x1f30(%rbp)
callq 0x48760
movq %rax, -0x11c8(%rbp)
movslq 0xbc9af(%rip), %rsi     # 0x19afa8
leaq -0x11c8(%rbp), %rdi
callq 0x48d40
movq -0x1f30(%rbp), %rdi
movq %rax, -0x11c0(%rbp)
callq 0x48760
movq %rax, -0x11d0(%rbp)
leaq -0x11d1(%rbp), %rdi
movq %rdi, -0x1f28(%rbp)
callq 0x484d0
movq -0x1f28(%rbp), %rcx
movq -0x11c0(%rbp), %rsi
movq -0x11d0(%rbp), %rdx
leaq -0x11b8(%rbp), %rdi
callq 0xe3a50
jmp 0xde655
leaq -0x11d1(%rbp), %rdi
callq 0x4a130
leaq -0x11f8(%rbp), %rdi
leaq -0x11b8(%rbp), %rsi
callq 0x53120
jmp 0xde676
leaq -0x11f8(%rbp), %rdi
callq 0x53060
movsd %xmm0, -0x1f38(%rbp)
jmp 0xde68c
leaq -0x11f8(%rbp), %rdi
callq 0x3ecb0
movsd -0x1f38(%rbp), %xmm0
movsd %xmm0, -0x11e0(%rbp)
movl 0xbc8fa(%rip), %eax     # 0x19afa8
cmpl 0xbc8f8(%rip), %eax     # 0x19afac
jne 0xdeb52
leaq -0x1210(%rbp), %rdi
leaq -0x738(%rbp), %rsi
movl $0x9, %edx
callq 0x7bbe0
jmp 0xde6d4
leaq -0x1210(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x3d940
movq %rax, %rdi
leaq -0xb00(%rbp), %rsi
callq 0x39210
testb $0x1, %al
jne 0xde6fc
jmp 0xdeb30
leaq 0x577db(%rip), %rdx     # 0x135ede
leaq -0x1250(%rbp), %rdi
leaq -0x738(%rbp), %rsi
callq 0x3da80
jmp 0xde718
leaq -0xae0(%rbp), %rdi
movl $0x1, %esi
callq 0x3d940
movq %rax, %rdx
leaq -0x1230(%rbp), %rdi
leaq -0x1250(%rbp), %rsi
callq 0x3da30
jmp 0xde741
leaq -0x738(%rbp), %rdi
leaq -0x1230(%rbp), %rsi
movq %rsi, -0x1f40(%rbp)
callq 0xa710
movq -0x1f40(%rbp), %rdi
callq 0xac88
leaq -0x1250(%rbp), %rdi
callq 0xac88
leaq -0xae0(%rbp), %rdi
movl $0x1, %esi
callq 0x3d940
movq %rax, %rdi
callq 0xa220
movq %rax, %rdi
callq 0xa970
movl %eax, -0x744(%rbp)
leaq -0x1270(%rbp), %rdi
leaq -0x11b8(%rbp), %rsi
callq 0x53120
jmp 0xde7af
movl -0x744(%rbp), %esi
movl -0x740(%rbp), %eax
subl %eax, %esi
leaq -0x1270(%rbp), %rdi
callq 0xe3970
movsd %xmm0, -0x1f48(%rbp)
jmp 0xde7d3
leaq -0x1270(%rbp), %rdi
callq 0x3ecb0
movsd -0x1f48(%rbp), %xmm0
movsd %xmm0, -0x1258(%rbp)
movq -0x508(%rbp), %rdi
movl -0x6ec(%rbp), %esi
movl 0xbc7a6(%rip), %eax     # 0x19afa8
subl %eax, %esi
incl %esi
callq 0xab20
movq %rax, -0x1f50(%rbp)
jmp 0xde814
movq -0x1f50(%rbp), %rdi
leaq 0x576bc(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1f58(%rbp)
jmp 0xde830
movq -0x1f58(%rbp), %rdi
leaq -0x738(%rbp), %rsi
callq 0xa520
movq %rax, -0x1f60(%rbp)
jmp 0xde84c
movq -0x1f60(%rbp), %rdi
leaq 0x57684(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1f68(%rbp)
jmp 0xde868
movq -0x1f68(%rbp), %rdi
movsd -0x11a0(%rbp), %xmm0
callq 0xabd0
movq %rax, -0x1f70(%rbp)
jmp 0xde885
movq -0x1f70(%rbp), %rdi
leaq 0x5764b(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1f78(%rbp)
jmp 0xde8a1
movq -0x1f78(%rbp), %rdi
movsd -0x11e0(%rbp), %xmm0
callq 0xabd0
movq %rax, -0x1f80(%rbp)
jmp 0xde8be
movq -0x1f80(%rbp), %rdi
leaq 0x57612(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1f88(%rbp)
jmp 0xde8da
movq -0x1f88(%rbp), %rdi
movsd -0x1258(%rbp), %xmm0
callq 0xabd0
movq %rax, -0x1f90(%rbp)
jmp 0xde8f7
movq -0x1f90(%rbp), %rdi
leaq 0x575d9(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1f98(%rbp)
jmp 0xde913
leaq -0x1178(%rbp), %rdi
callq 0x3ebf0
movq -0x1f98(%rbp), %rdi
movq %rax, %rsi
callq 0xa140
movq %rax, -0x1fa0(%rbp)
jmp 0xde937
movq -0x1fa0(%rbp), %rdi
movq 0xba643(%rip), %rsi     # 0x198f88
callq 0xa610
jmp 0xde94c
movsd 0xbc65c(%rip), %xmm0    # 0x19afb0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jbe 0xdeb2e
movsd -0x11a0(%rbp), %xmm0
ucomisd 0xbc63f(%rip), %xmm0    # 0x19afb0
jb 0xdeab6
testb $0x1, -0x99(%rbp)
jne 0xdeab6
movb $0x1, -0x99(%rbp)
movq -0x98(%rbp), %rax
movq %rax, -0x1fb0(%rbp)
xorl %eax, %eax
movl %eax, %esi
leaq -0x1210(%rbp), %rdi
callq 0x3d940
movq -0x1fb0(%rbp), %rdi
movq %rax, %rsi
callq 0xa520
movq %rax, -0x1fa8(%rbp)
jmp 0xde9c1
movq -0x1fa8(%rbp), %rdi
leaq 0x5750f(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1fb8(%rbp)
jmp 0xde9dd
leaq -0x1210(%rbp), %rdi
movl $0x1, %esi
callq 0x3d940
movq -0x1fb8(%rbp), %rdi
movq %rax, %rsi
callq 0xa520
movq %rax, -0x1fc0(%rbp)
jmp 0xdea06
movq -0x1fc0(%rbp), %rdi
leaq 0x574ca(%rip), %rsi     # 0x135ede
callq 0xa5c0
jmp 0xdea1b
jmp 0xdeb2c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x11d1(%rbp), %rdi
callq 0x4a130
jmp 0xdf89f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xdf893
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x11f8(%rbp), %rdi
callq 0x3ecb0
jmp 0xdf893
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xdeb41
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x1250(%rbp), %rdi
callq 0xac88
jmp 0xdeb41
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x1270(%rbp), %rdi
callq 0x3ecb0
jmp 0xdeb41
movsd -0x11a0(%rbp), %xmm1
movsd 0xbc4ea(%rip), %xmm0    # 0x19afb0
ucomisd %xmm1, %xmm0
jbe 0xdeb2a
testb $0x1, -0x99(%rbp)
je 0xdeb2a
movb $0x0, -0x99(%rbp)
movq -0x98(%rbp), %rax
movq %rax, -0x1fd0(%rbp)
leaq -0x1210(%rbp), %rdi
movl $0x1, %esi
callq 0x3d940
movq -0x1fd0(%rbp), %rdi
movq %rax, %rsi
callq 0xa520
movq %rax, -0x1fc8(%rbp)
jmp 0xdeb13
movq -0x1fc8(%rbp), %rdi
movq 0xba467(%rip), %rsi     # 0x198f88
callq 0xa610
jmp 0xdeb28
jmp 0xdeb2a
jmp 0xdeb2c
jmp 0xdeb2e
jmp 0xdeb30
leaq -0x1210(%rbp), %rdi
callq 0x3dfa0
jmp 0xdec78
leaq -0x1210(%rbp), %rdi
callq 0x3dfa0
jmp 0xdf893
movq -0x508(%rbp), %rdi
movl -0x6ec(%rbp), %esi
movl 0xbc443(%rip), %eax     # 0x19afa8
subl %eax, %esi
incl %esi
callq 0xab20
movq %rax, -0x1fd8(%rbp)
jmp 0xdeb77
movq -0x1fd8(%rbp), %rdi
leaq 0x57359(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1fe0(%rbp)
jmp 0xdeb93
movq -0x1fe0(%rbp), %rdi
leaq -0x710(%rbp), %rsi
callq 0xa520
movq %rax, -0x1fe8(%rbp)
jmp 0xdebaf
movq -0x1fe8(%rbp), %rdi
leaq 0x57321(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x1ff0(%rbp)
jmp 0xdebcb
movq -0x1ff0(%rbp), %rdi
movsd -0x11a0(%rbp), %xmm0
callq 0xabd0
movq %rax, -0x1ff8(%rbp)
jmp 0xdebe8
movq -0x1ff8(%rbp), %rdi
leaq 0x572e8(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x2000(%rbp)
jmp 0xdec04
movq -0x2000(%rbp), %rdi
movsd -0x11e0(%rbp), %xmm0
callq 0xabd0
movq %rax, -0x2008(%rbp)
jmp 0xdec21
movq -0x2008(%rbp), %rdi
leaq 0x572af(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x2010(%rbp)
jmp 0xdec3d
leaq -0x1178(%rbp), %rdi
callq 0x3ebf0
movq -0x2010(%rbp), %rdi
movq %rax, %rsi
callq 0xa140
movq %rax, -0x2018(%rbp)
jmp 0xdec61
movq -0x2018(%rbp), %rdi
movq 0xba319(%rip), %rsi     # 0x198f88
callq 0xa610
jmp 0xdec76
jmp 0xdec78
leaq -0x950(%rbp), %rdi
movq %rdi, -0x2028(%rbp)
callq 0x48760
movq %rax, -0x1298(%rbp)
movslq 0xbc30f(%rip), %rsi     # 0x19afa8
leaq -0x1298(%rbp), %rdi
callq 0x48d40
movq -0x2028(%rbp), %rdi
movq %rax, -0x1290(%rbp)
callq 0x48760
movq %rax, -0x12a0(%rbp)
leaq -0x12a1(%rbp), %rdi
movq %rdi, -0x2020(%rbp)
callq 0x484d0
movq -0x2020(%rbp), %rcx
movq -0x1290(%rbp), %rsi
movq -0x12a0(%rbp), %rdx
leaq -0x1288(%rbp), %rdi
callq 0xe3a50
jmp 0xdecf5
leaq -0x12a1(%rbp), %rdi
callq 0x4a130
leaq -0x12c8(%rbp), %rdi
leaq -0x1288(%rbp), %rsi
callq 0x53120
jmp 0xded16
leaq -0x12c8(%rbp), %rdi
callq 0x53060
movsd %xmm0, -0x2030(%rbp)
jmp 0xded2c
leaq -0x12c8(%rbp), %rdi
callq 0x3ecb0
movsd -0x2030(%rbp), %xmm0
movsd %xmm0, -0x12b0(%rbp)
leaq -0x968(%rbp), %rdi
movq %rdi, -0x2040(%rbp)
callq 0x48760
movq %rax, -0x12f0(%rbp)
movslq 0xbc23f(%rip), %rsi     # 0x19afa8
leaq -0x12f0(%rbp), %rdi
callq 0x48d40
movq -0x2040(%rbp), %rdi
movq %rax, -0x12e8(%rbp)
callq 0x48760
movq %rax, -0x12f8(%rbp)
leaq -0x12f9(%rbp), %rdi
movq %rdi, -0x2038(%rbp)
callq 0x484d0
movq -0x2038(%rbp), %rcx
movq -0x12e8(%rbp), %rsi
movq -0x12f8(%rbp), %rdx
leaq -0x12e0(%rbp), %rdi
callq 0xe3a50
jmp 0xdedc5
leaq -0x12f9(%rbp), %rdi
callq 0x4a130
leaq -0x1320(%rbp), %rdi
leaq -0x12e0(%rbp), %rsi
callq 0x53120
jmp 0xdede6
leaq -0x1320(%rbp), %rdi
callq 0x53060
movsd %xmm0, -0x2048(%rbp)
jmp 0xdedfc
leaq -0x1320(%rbp), %rdi
callq 0x3ecb0
movsd -0x2048(%rbp), %xmm0
movsd %xmm0, -0x1308(%rbp)
leaq -0x980(%rbp), %rdi
movq %rdi, -0x2058(%rbp)
callq 0x48760
movq %rax, -0x1348(%rbp)
movslq 0xbc16f(%rip), %rsi     # 0x19afa8
leaq -0x1348(%rbp), %rdi
callq 0x48d40
movq -0x2058(%rbp), %rdi
movq %rax, -0x1340(%rbp)
callq 0x48760
movq %rax, -0x1350(%rbp)
leaq -0x1351(%rbp), %rdi
movq %rdi, -0x2050(%rbp)
callq 0x484d0
movq -0x2050(%rbp), %rcx
movq -0x1340(%rbp), %rsi
movq -0x1350(%rbp), %rdx
leaq -0x1338(%rbp), %rdi
callq 0xe3a50
jmp 0xdee95
leaq -0x1351(%rbp), %rdi
callq 0x4a130
leaq -0x1378(%rbp), %rdi
leaq -0x1338(%rbp), %rsi
callq 0x53120
jmp 0xdeeb6
leaq -0x1378(%rbp), %rdi
callq 0x53060
movsd %xmm0, -0x2060(%rbp)
jmp 0xdeecc
leaq -0x1378(%rbp), %rdi
callq 0x3ecb0
movsd -0x2060(%rbp), %xmm0
movsd %xmm0, -0x1360(%rbp)
leaq -0x998(%rbp), %rdi
movq %rdi, -0x2070(%rbp)
callq 0x48760
movq %rax, -0x13a0(%rbp)
movslq 0xbc09f(%rip), %rsi     # 0x19afa8
leaq -0x13a0(%rbp), %rdi
callq 0x48d40
movq -0x2070(%rbp), %rdi
movq %rax, -0x1398(%rbp)
callq 0x48760
movq %rax, -0x13a8(%rbp)
leaq -0x13a9(%rbp), %rdi
movq %rdi, -0x2068(%rbp)
callq 0x484d0
movq -0x2068(%rbp), %rcx
movq -0x1398(%rbp), %rsi
movq -0x13a8(%rbp), %rdx
leaq -0x1390(%rbp), %rdi
callq 0xe3a50
jmp 0xdef65
leaq -0x13a9(%rbp), %rdi
callq 0x4a130
leaq -0x13d0(%rbp), %rdi
leaq -0x1390(%rbp), %rsi
callq 0x53120
jmp 0xdef86
leaq -0x13d0(%rbp), %rdi
callq 0x53060
movsd %xmm0, -0x2078(%rbp)
jmp 0xdef9c
leaq -0x13d0(%rbp), %rdi
callq 0x3ecb0
movsd -0x2078(%rbp), %xmm0
movsd %xmm0, -0x13b8(%rbp)
leaq -0x9b0(%rbp), %rdi
movq %rdi, -0x2088(%rbp)
callq 0x48760
movq %rax, -0x13f8(%rbp)
movslq 0xbbfcf(%rip), %rsi     # 0x19afa8
leaq -0x13f8(%rbp), %rdi
callq 0x48d40
movq -0x2088(%rbp), %rdi
movq %rax, -0x13f0(%rbp)
callq 0x48760
movq %rax, -0x1400(%rbp)
leaq -0x1401(%rbp), %rdi
movq %rdi, -0x2080(%rbp)
callq 0x484d0
movq -0x2080(%rbp), %rcx
movq -0x13f0(%rbp), %rsi
movq -0x1400(%rbp), %rdx
leaq -0x13e8(%rbp), %rdi
callq 0xe3a50
jmp 0xdf035
leaq -0x1401(%rbp), %rdi
callq 0x4a130
leaq -0x1428(%rbp), %rdi
leaq -0x13e8(%rbp), %rsi
callq 0x53120
jmp 0xdf056
movl -0x744(%rbp), %esi
movl -0x740(%rbp), %eax
subl %eax, %esi
leaq -0x1428(%rbp), %rdi
callq 0xe3970
movsd %xmm0, -0x2090(%rbp)
jmp 0xdf07a
leaq -0x1428(%rbp), %rdi
callq 0x3ecb0
movsd -0x2090(%rbp), %xmm0
movsd %xmm0, -0x1410(%rbp)
leaq -0x9c8(%rbp), %rdi
movq %rdi, -0x20a0(%rbp)
callq 0x48760
movq %rax, -0x1450(%rbp)
movslq 0xbbef1(%rip), %rsi     # 0x19afa8
leaq -0x1450(%rbp), %rdi
callq 0x48d40
movq -0x20a0(%rbp), %rdi
movq %rax, -0x1448(%rbp)
callq 0x48760
movq %rax, -0x1458(%rbp)
leaq -0x1459(%rbp), %rdi
movq %rdi, -0x2098(%rbp)
callq 0x484d0
movq -0x2098(%rbp), %rcx
movq -0x1448(%rbp), %rsi
movq -0x1458(%rbp), %rdx
leaq -0x1440(%rbp), %rdi
callq 0xe3a50
jmp 0xdf113
leaq -0x1459(%rbp), %rdi
callq 0x4a130
leaq -0x1480(%rbp), %rdi
leaq -0x1440(%rbp), %rsi
callq 0x53120
jmp 0xdf134
movl -0x744(%rbp), %esi
movl -0x740(%rbp), %eax
subl %eax, %esi
leaq -0x1480(%rbp), %rdi
callq 0xe3970
movsd %xmm0, -0x20a8(%rbp)
jmp 0xdf158
leaq -0x1480(%rbp), %rdi
callq 0x3ecb0
movsd -0x20a8(%rbp), %xmm0
movsd %xmm0, -0x1468(%rbp)
movl 0xbbe2e(%rip), %eax     # 0x19afa8
cmpl 0xbbe2c(%rip), %eax     # 0x19afac
jne 0xdf63c
leaq -0x1498(%rbp), %rdi
leaq -0x738(%rbp), %rsi
movl $0x9, %edx
callq 0x7bbe0
jmp 0xdf1a0
leaq -0x1498(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x3d940
movq %rax, %rdi
leaq -0xb00(%rbp), %rsi
callq 0x39210
testb $0x1, %al
jne 0xdf1c8
jmp 0xdf5d5
movq -0x650(%rbp), %rdi
leaq -0x738(%rbp), %rsi
callq 0xa520
movq %rax, -0x20b0(%rbp)
jmp 0xdf1e4
movq -0x20b0(%rbp), %rdi
leaq 0x56cec(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x20b8(%rbp)
jmp 0xdf200
movq -0x20b8(%rbp), %rdi
movsd -0x12b0(%rbp), %xmm0
callq 0xabd0
movq %rax, -0x20c0(%rbp)
jmp 0xdf21d
movq -0x20c0(%rbp), %rdi
leaq 0x56cb3(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x20c8(%rbp)
jmp 0xdf239
movq -0x20c8(%rbp), %rdi
movsd -0x1308(%rbp), %xmm0
callq 0xabd0
movq %rax, -0x20d0(%rbp)
jmp 0xdf256
movq -0x20d0(%rbp), %rdi
leaq 0x56c7a(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x20d8(%rbp)
jmp 0xdf272
movq -0x20d8(%rbp), %rdi
movsd -0x1360(%rbp), %xmm0
callq 0xabd0
movq %rax, -0x20e0(%rbp)
jmp 0xdf28f
movq -0x20e0(%rbp), %rdi
leaq 0x56c41(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x20e8(%rbp)
jmp 0xdf2ab
movq -0x20e8(%rbp), %rdi
movsd -0x13b8(%rbp), %xmm0
callq 0xabd0
movq %rax, -0x20f0(%rbp)
jmp 0xdf2c8
movq -0x20f0(%rbp), %rdi
leaq 0x56c08(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x20f8(%rbp)
jmp 0xdf2e4
movq -0x20f8(%rbp), %rdi
movsd -0x1410(%rbp), %xmm0
callq 0xabd0
movq %rax, -0x2100(%rbp)
jmp 0xdf301
movq -0x2100(%rbp), %rdi
leaq 0x56bcf(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x2108(%rbp)
jmp 0xdf31d
movq -0x2108(%rbp), %rdi
movsd -0x1468(%rbp), %xmm0
callq 0xabd0
movq %rax, -0x2110(%rbp)
jmp 0xdf33a
movq -0x2110(%rbp), %rdi
movq 0xb9c40(%rip), %rsi     # 0x198f88
callq 0xa610
jmp 0xdf34f
leaq 0x56b88(%rip), %rdx     # 0x135ede
leaq -0x14d8(%rbp), %rdi
leaq -0xb00(%rbp), %rsi
callq 0x3da80
jmp 0xdf36b
leaq -0xae0(%rbp), %rdi
movl $0x1, %esi
callq 0x3d940
movq %rax, %rdx
leaq -0x14b8(%rbp), %rdi
leaq -0x14d8(%rbp), %rsi
callq 0x3da30
jmp 0xdf394
leaq -0x738(%rbp), %rdi
leaq -0x14b8(%rbp), %rsi
callq 0xa710
leaq -0x14b8(%rbp), %rdi
callq 0xac88
leaq -0x14d8(%rbp), %rdi
callq 0xac88
leaq -0xae0(%rbp), %rdi
movl $0x1, %esi
callq 0x3d940
movq %rax, %rdi
callq 0xa220
movq %rax, %rdi
callq 0xa970
movl %eax, -0x740(%rbp)
jmp 0xdf61a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x12a1(%rbp), %rdi
callq 0x4a130
jmp 0xdf893
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xdf887
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x12c8(%rbp), %rdi
callq 0x3ecb0
jmp 0xdf887
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x12f9(%rbp), %rdi
callq 0x4a130
jmp 0xdf887
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xdf87b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x1320(%rbp), %rdi
callq 0x3ecb0
jmp 0xdf87b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x1351(%rbp), %rdi
callq 0x4a130
jmp 0xdf87b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xdf86f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x1378(%rbp), %rdi
callq 0x3ecb0
jmp 0xdf86f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x13a9(%rbp), %rdi
callq 0x4a130
jmp 0xdf86f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xdf863
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x13d0(%rbp), %rdi
callq 0x3ecb0
jmp 0xdf863
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x1401(%rbp), %rdi
callq 0x4a130
jmp 0xdf863
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xdf857
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x1428(%rbp), %rdi
callq 0x3ecb0
jmp 0xdf857
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x1459(%rbp), %rdi
callq 0x4a130
jmp 0xdf857
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xdf84b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x1480(%rbp), %rdi
callq 0x3ecb0
jmp 0xdf84b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xdf62b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x14d8(%rbp), %rdi
callq 0xac88
jmp 0xdf62b
leaq 0x54110(%rip), %rdx     # 0x1336ec
leaq -0x14f8(%rbp), %rdi
leaq -0xb00(%rbp), %rsi
callq 0x3da80
jmp 0xdf5f1
leaq -0x738(%rbp), %rdi
leaq -0x14f8(%rbp), %rsi
callq 0xa710
leaq -0x14f8(%rbp), %rdi
callq 0xac88
movl $0x0, -0x740(%rbp)
leaq -0x1498(%rbp), %rdi
callq 0x3dfa0
jmp 0xdf7dd
leaq -0x1498(%rbp), %rdi
callq 0x3dfa0
jmp 0xdf84b
movq -0x650(%rbp), %rdi
leaq -0x710(%rbp), %rsi
callq 0xa520
movq %rax, -0x2118(%rbp)
jmp 0xdf658
movq -0x2118(%rbp), %rdi
leaq 0x56878(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x2120(%rbp)
jmp 0xdf674
movq -0x2120(%rbp), %rdi
movsd -0x12b0(%rbp), %xmm0
callq 0xabd0
movq %rax, -0x2128(%rbp)
jmp 0xdf691
movq -0x2128(%rbp), %rdi
leaq 0x5683f(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x2130(%rbp)
jmp 0xdf6ad
movq -0x2130(%rbp), %rdi
movsd -0x1308(%rbp), %xmm0
callq 0xabd0
movq %rax, -0x2138(%rbp)
jmp 0xdf6ca
movq -0x2138(%rbp), %rdi
leaq 0x56806(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x2140(%rbp)
jmp 0xdf6e6
movq -0x2140(%rbp), %rdi
movsd -0x1360(%rbp), %xmm0
callq 0xabd0
movq %rax, -0x2148(%rbp)
jmp 0xdf703
movq -0x2148(%rbp), %rdi
leaq 0x567cd(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x2150(%rbp)
jmp 0xdf71f
movq -0x2150(%rbp), %rdi
movsd -0x13b8(%rbp), %xmm0
callq 0xabd0
movq %rax, -0x2158(%rbp)
jmp 0xdf73c
movq -0x2158(%rbp), %rdi
movq 0xb983e(%rip), %rsi     # 0x198f88
callq 0xa610
jmp 0xdf751
leaq 0x56786(%rip), %rdx     # 0x135ede
leaq -0x1538(%rbp), %rdi
leaq -0xb00(%rbp), %rsi
callq 0x3da80
jmp 0xdf76d
leaq -0xae0(%rbp), %rdi
movl $0x1, %esi
callq 0x3d940
movq %rax, %rdx
leaq -0x1518(%rbp), %rdi
leaq -0x1538(%rbp), %rsi
callq 0x3da30
jmp 0xdf796
leaq -0x710(%rbp), %rdi
leaq -0x1518(%rbp), %rsi
callq 0xa710
leaq -0x1518(%rbp), %rdi
callq 0xac88
leaq -0x1538(%rbp), %rdi
callq 0xac88
jmp 0xdf7dd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x1538(%rbp), %rdi
callq 0xac88
jmp 0xdf84b
leaq -0x1440(%rbp), %rdi
callq 0x3ecb0
leaq -0x13e8(%rbp), %rdi
callq 0x3ecb0
leaq -0x1390(%rbp), %rdi
callq 0x3ecb0
leaq -0x1338(%rbp), %rdi
callq 0x3ecb0
leaq -0x12e0(%rbp), %rdi
callq 0x3ecb0
leaq -0x1288(%rbp), %rdi
callq 0x3ecb0
leaq -0x11b8(%rbp), %rdi
callq 0x3ecb0
leaq -0x1178(%rbp), %rdi
callq 0x3ecb0
leaq -0x1140(%rbp), %rdi
callq 0x3ecb0
jmp 0xdf8b9
leaq -0x1440(%rbp), %rdi
callq 0x3ecb0
leaq -0x13e8(%rbp), %rdi
callq 0x3ecb0
leaq -0x1390(%rbp), %rdi
callq 0x3ecb0
leaq -0x1338(%rbp), %rdi
callq 0x3ecb0
leaq -0x12e0(%rbp), %rdi
callq 0x3ecb0
leaq -0x1288(%rbp), %rdi
callq 0x3ecb0
leaq -0x11b8(%rbp), %rdi
callq 0x3ecb0
leaq -0x1178(%rbp), %rdi
callq 0x3ecb0
leaq -0x1140(%rbp), %rdi
callq 0x3ecb0
jmp 0xdf912
jmp 0xdf8bb
movq -0xb40(%rbp), %rax
movq %rax, -0x2160(%rbp)
cmpq $0x0, %rax
je 0xdf8ec
movq -0x2160(%rbp), %rdi
callq 0xe3ad0
movq -0x2160(%rbp), %rdi
movl $0xf8, %esi
callq 0xa5e0
leaq -0x1028(%rbp), %rdi
callq 0x3dfa0
leaq -0xbb0(%rbp), %rdi
callq 0x3ecb0
leaq -0xb98(%rbp), %rdi
callq 0x3ecb0
jmp 0xdf93b
leaq -0x1028(%rbp), %rdi
callq 0x3dfa0
leaq -0xbb0(%rbp), %rdi
callq 0x3ecb0
leaq -0xb98(%rbp), %rdi
callq 0x3ecb0
jmp 0xdfa43
movl -0x6e8(%rbp), %eax
movl $0x186a0, %ecx          # imm = 0x186A0
cltd
idivl %ecx
cmpl $0x0, %edx
jne 0xdf9ea
leaq -0x8f0(%rbp), %rdi
leaq -0x908(%rbp), %rsi
callq 0xd9b50
movsd %xmm0, -0x2168(%rbp)
jmp 0xdf96f
movsd -0x2168(%rbp), %xmm0
movsd %xmm0, -0x1540(%rbp)
movl -0x6e8(%rbp), %esi
movq 0xb9664(%rip), %rdi     # 0x198ff0
callq 0xab20
movq %rax, -0x2170(%rbp)
jmp 0xdf99a
movq -0x2170(%rbp), %rdi
leaq 0x6833d(%rip), %rsi     # 0x147ce5
callq 0xa5c0
movq %rax, -0x2178(%rbp)
jmp 0xdf9b6
movq -0x2178(%rbp), %rdi
movsd -0x1540(%rbp), %xmm0
callq 0xabd0
movq %rax, -0x2180(%rbp)
jmp 0xdf9d3
movq -0x2180(%rbp), %rdi
movq 0xb95a7(%rip), %rsi     # 0x198f88
callq 0xa610
jmp 0xdf9e8
jmp 0xdf9ea
movl $0x0, -0xb64(%rbp)
leaq -0xb60(%rbp), %rdi
callq 0xac88
leaq -0xb38(%rbp), %rdi
callq 0x3dfa0
leaq -0xb20(%rbp), %rdi
callq 0xac88
leaq -0xb00(%rbp), %rdi
callq 0xac88
leaq -0xae0(%rbp), %rdi
callq 0x3dfa0
movl -0xb64(%rbp), %eax
testl %eax, %eax
je 0xdfa41
jmp 0xdfa3c
jmp 0xdb749
jmp 0xdfa84
leaq -0xb60(%rbp), %rdi
callq 0xac88
leaq -0xb38(%rbp), %rdi
callq 0x3dfa0
leaq -0xb20(%rbp), %rdi
callq 0xac88
leaq -0xb00(%rbp), %rdi
callq 0xac88
leaq -0xae0(%rbp), %rdi
callq 0x3dfa0
jmp 0xe010f
jmp 0xdfa86
jmp 0xdb749
leaq -0x8f0(%rbp), %rdi
leaq -0x908(%rbp), %rsi
callq 0xd9b50
movsd %xmm0, -0x2188(%rbp)
jmp 0xdfaa8
movsd -0x2188(%rbp), %xmm0
movsd %xmm0, -0x1548(%rbp)
leaq -0x1568(%rbp), %rdi
leaq -0x950(%rbp), %rsi
callq 0x53120
jmp 0xdfacd
leaq -0x1568(%rbp), %rdi
callq 0x53060
movsd %xmm0, -0x2190(%rbp)
jmp 0xdfae3
leaq -0x1568(%rbp), %rdi
callq 0x3ecb0
movsd -0x2190(%rbp), %xmm0
movsd %xmm0, -0x1550(%rbp)
leaq -0x1588(%rbp), %rdi
leaq -0x968(%rbp), %rsi
callq 0x53120
jmp 0xdfb14
leaq -0x1588(%rbp), %rdi
callq 0x53060
movsd %xmm0, -0x2198(%rbp)
jmp 0xdfb2a
leaq -0x1588(%rbp), %rdi
callq 0x3ecb0
movsd -0x2198(%rbp), %xmm0
movsd %xmm0, -0x1570(%rbp)
leaq -0x15a8(%rbp), %rdi
leaq -0x980(%rbp), %rsi
callq 0x53120
jmp 0xdfb5b
leaq -0x15a8(%rbp), %rdi
callq 0x53060
movsd %xmm0, -0x21a0(%rbp)
jmp 0xdfb71
leaq -0x15a8(%rbp), %rdi
callq 0x3ecb0
movsd -0x21a0(%rbp), %xmm0
movsd %xmm0, -0x1590(%rbp)
leaq -0x15c8(%rbp), %rdi
leaq -0x998(%rbp), %rsi
callq 0x53120
jmp 0xdfba2
leaq -0x15c8(%rbp), %rdi
callq 0x53060
movsd %xmm0, -0x21a8(%rbp)
jmp 0xdfbb8
leaq -0x15c8(%rbp), %rdi
callq 0x3ecb0
movsd -0x21a8(%rbp), %xmm0
movsd %xmm0, -0x15b0(%rbp)
movq 0xb9415(%rip), %rdi     # 0x198ff0
leaq 0x6811a(%rip), %rsi     # 0x147cfc
callq 0xa5c0
movq %rax, -0x21b0(%rbp)
jmp 0xdfbf0
movq -0x21b0(%rbp), %rdi
movsd -0x1548(%rbp), %xmm0
callq 0xabd0
movq %rax, -0x21b8(%rbp)
jmp 0xdfc0d
movq -0x21b8(%rbp), %rdi
movq 0xb936d(%rip), %rsi     # 0x198f88
callq 0xa610
jmp 0xdfc22
movq 0xb93c7(%rip), %rdi     # 0x198ff0
leaq 0x680ea(%rip), %rsi     # 0x147d1a
callq 0xa5c0
movq %rax, -0x21c0(%rbp)
jmp 0xdfc3e
movq -0x21c0(%rbp), %rdi
leaq 0x680b6(%rip), %rsi     # 0x147d02
callq 0xa5c0
movq %rax, -0x21c8(%rbp)
jmp 0xdfc5a
movq -0x21c8(%rbp), %rdi
movsd -0x1550(%rbp), %xmm0
callq 0xabd0
movq %rax, -0x21d0(%rbp)
jmp 0xdfc77
movq -0x21d0(%rbp), %rdi
leaq 0x68082(%rip), %rsi     # 0x147d07
callq 0xa5c0
movq %rax, -0x21d8(%rbp)
jmp 0xdfc93
movq -0x21d8(%rbp), %rdi
movsd -0x1570(%rbp), %xmm0
callq 0xabd0
movq %rax, -0x21e0(%rbp)
jmp 0xdfcb0
movq -0x21e0(%rbp), %rdi
leaq 0x6804e(%rip), %rsi     # 0x147d0c
callq 0xa5c0
movq %rax, -0x21e8(%rbp)
jmp 0xdfccc
movq -0x21e8(%rbp), %rdi
movsd -0x1590(%rbp), %xmm0
callq 0xabd0
movq %rax, -0x21f0(%rbp)
jmp 0xdfce9
movq -0x21f0(%rbp), %rdi
leaq 0x6801c(%rip), %rsi     # 0x147d13
callq 0xa5c0
movq %rax, -0x21f8(%rbp)
jmp 0xdfd05
movq -0x21f8(%rbp), %rdi
movsd -0x15b0(%rbp), %xmm0
callq 0xabd0
movq %rax, -0x2200(%rbp)
jmp 0xdfd22
movq -0x2200(%rbp), %rdi
movq 0xb9258(%rip), %rsi     # 0x198f88
callq 0xa610
jmp 0xdfd37
movq -0x650(%rbp), %rdi
leaq 0x67fd4(%rip), %rsi     # 0x147d19
callq 0xa5c0
movq %rax, -0x2208(%rbp)
jmp 0xdfd53
movq -0x2208(%rbp), %rdi
leaq 0x67fa1(%rip), %rsi     # 0x147d02
callq 0xa5c0
movq %rax, -0x2210(%rbp)
jmp 0xdfd6f
movq -0x2210(%rbp), %rdi
movsd -0x1550(%rbp), %xmm0
callq 0xabd0
movq %rax, -0x2218(%rbp)
jmp 0xdfd8c
movq -0x2218(%rbp), %rdi
leaq 0x67f6d(%rip), %rsi     # 0x147d07
callq 0xa5c0
movq %rax, -0x2220(%rbp)
jmp 0xdfda8
movq -0x2220(%rbp), %rdi
movsd -0x1570(%rbp), %xmm0
callq 0xabd0
movq %rax, -0x2228(%rbp)
jmp 0xdfdc5
movq -0x2228(%rbp), %rdi
leaq 0x67f39(%rip), %rsi     # 0x147d0c
callq 0xa5c0
movq %rax, -0x2230(%rbp)
jmp 0xdfde1
movq -0x2230(%rbp), %rdi
movsd -0x1590(%rbp), %xmm0
callq 0xabd0
movq %rax, -0x2238(%rbp)
jmp 0xdfdfe
movq -0x2238(%rbp), %rdi
leaq 0x67f07(%rip), %rsi     # 0x147d13
callq 0xa5c0
movq %rax, -0x2240(%rbp)
jmp 0xdfe1a
movq -0x2240(%rbp), %rdi
movsd -0x15b0(%rbp), %xmm0
callq 0xabd0
movq %rax, -0x2248(%rbp)
jmp 0xdfe37
movq -0x2248(%rbp), %rdi
movq 0xb9143(%rip), %rsi     # 0x198f88
callq 0xa610
jmp 0xdfe4c
callq 0xa3a0
movq %rax, -0x15d0(%rbp)
movq -0x15d0(%rbp), %rax
movq -0x8(%rbp), %rcx
subq %rcx, %rax
cvtsi2sd %rax, %xmm0
movsd 0x595b5(%rip), %xmm1    # 0x139428
divsd %xmm1, %xmm0
movsd %xmm0, -0x15d8(%rbp)
movq 0xb916a(%rip), %rdi     # 0x198ff0
leaq 0x67ea0(%rip), %rsi     # 0x147d2d
callq 0xa5c0
movq %rax, -0x2250(%rbp)
jmp 0xdfe9b
movq -0x2250(%rbp), %rdi
movsd -0x15d8(%rbp), %xmm0
callq 0xabd0
movq %rax, -0x2258(%rbp)
jmp 0xdfeb8
movq -0x2258(%rbp), %rdi
movq 0xb90c2(%rip), %rsi     # 0x198f88
callq 0xa610
jmp 0xdfecd
movq -0xa8(%rbp), %rdi
callq 0xa840
jmp 0xdfedb
leaq -0x9c8(%rbp), %rdi
callq 0x3ecb0
leaq -0x9b0(%rbp), %rdi
callq 0x3ecb0
leaq -0x998(%rbp), %rdi
callq 0x3ecb0
leaq -0x980(%rbp), %rdi
callq 0x3ecb0
leaq -0x968(%rbp), %rdi
callq 0x3ecb0
leaq -0x950(%rbp), %rdi
callq 0x3ecb0
leaq -0x938(%rbp), %rdi
callq 0x65200
leaq -0x920(%rbp), %rdi
callq 0x3ecb0
leaq -0x908(%rbp), %rdi
callq 0x3ecb0
leaq -0x8f0(%rbp), %rdi
callq 0x3ecb0
leaq -0x8d8(%rbp), %rdi
callq 0xc6ca0
leaq -0x8a8(%rbp), %rdi
callq 0xac88
leaq -0x880(%rbp), %rdi
callq 0x50d40
leaq -0x868(%rbp), %rdi
callq 0x50d40
leaq -0x850(%rbp), %rdi
callq 0x50d40
leaq -0x838(%rbp), %rdi
callq 0x50d40
leaq -0x820(%rbp), %rdi
callq 0x3dfa0
leaq -0x808(%rbp), %rdi
callq 0x3dfa0
leaq -0x7f0(%rbp), %rdi
callq 0x3ecb0
leaq -0x7d8(%rbp), %rdi
callq 0x3ecb0
leaq -0x7c0(%rbp), %rdi
callq 0x3ecb0
leaq -0x7a8(%rbp), %rdi
callq 0x3ecb0
leaq -0x790(%rbp), %rdi
callq 0x3ecb0
leaq -0x778(%rbp), %rdi
callq 0x3ecb0
leaq -0x760(%rbp), %rdi
callq 0x3ecb0
leaq -0x738(%rbp), %rdi
callq 0xac88
leaq -0x710(%rbp), %rdi
callq 0xac88
leaq -0x6c0(%rbp), %rdi
callq 0x3dfa0
leaq -0x6a8(%rbp), %rdi
callq 0x3dfa0
leaq -0x690(%rbp), %rdi
callq 0xac88
leaq -0x670(%rbp), %rdi
callq 0xac88
leaq -0x5c8(%rbp), %rdi
callq 0xac88
leaq -0x528(%rbp), %rdi
callq 0xac88
leaq -0x480(%rbp), %rdi
callq 0xac88
leaq -0x1a8(%rbp), %rdi
callq 0x588b0
leaq -0xe8(%rbp), %rdi
callq 0x3dfa0
leaq -0xd0(%rbp), %rdi
callq 0x3dfa0
leaq -0x28(%rbp), %rdi
callq 0xac88
addq $0x2260, %rsp           # imm = 0x2260
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x1568(%rbp), %rdi
callq 0x3ecb0
jmp 0xe010f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x1588(%rbp), %rdi
callq 0x3ecb0
jmp 0xe010f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x15a8(%rbp), %rdi
callq 0x3ecb0
jmp 0xe010f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x15c8(%rbp), %rdi
callq 0x3ecb0
leaq -0x9c8(%rbp), %rdi
callq 0x3ecb0
leaq -0x9b0(%rbp), %rdi
callq 0x3ecb0
leaq -0x998(%rbp), %rdi
callq 0x3ecb0
leaq -0x980(%rbp), %rdi
callq 0x3ecb0
leaq -0x968(%rbp), %rdi
callq 0x3ecb0
leaq -0x950(%rbp), %rdi
callq 0x3ecb0
leaq -0x938(%rbp), %rdi
callq 0x65200
leaq -0x920(%rbp), %rdi
callq 0x3ecb0
leaq -0x908(%rbp), %rdi
callq 0x3ecb0
leaq -0x8f0(%rbp), %rdi
callq 0x3ecb0
leaq -0x8d8(%rbp), %rdi
callq 0xc6ca0
leaq -0x8a8(%rbp), %rdi
callq 0xac88
leaq -0x880(%rbp), %rdi
callq 0x50d40
leaq -0x868(%rbp), %rdi
callq 0x50d40
leaq -0x850(%rbp), %rdi
callq 0x50d40
leaq -0x838(%rbp), %rdi
callq 0x50d40
leaq -0x820(%rbp), %rdi
callq 0x3dfa0
leaq -0x808(%rbp), %rdi
callq 0x3dfa0
leaq -0x7f0(%rbp), %rdi
callq 0x3ecb0
leaq -0x7d8(%rbp), %rdi
callq 0x3ecb0
leaq -0x7c0(%rbp), %rdi
callq 0x3ecb0
leaq -0x7a8(%rbp), %rdi
callq 0x3ecb0
leaq -0x790(%rbp), %rdi
callq 0x3ecb0
leaq -0x778(%rbp), %rdi
callq 0x3ecb0
leaq -0x760(%rbp), %rdi
callq 0x3ecb0
leaq -0x738(%rbp), %rdi
callq 0xac88
leaq -0x710(%rbp), %rdi
callq 0xac88
leaq -0x6c0(%rbp), %rdi
callq 0x3dfa0
leaq -0x6a8(%rbp), %rdi
callq 0x3dfa0
leaq -0x690(%rbp), %rdi
callq 0xac88
leaq -0x670(%rbp), %rdi
callq 0xac88
leaq -0x5c8(%rbp), %rdi
callq 0xac88
leaq -0x528(%rbp), %rdi
callq 0xac88
leaq -0x480(%rbp), %rdi
callq 0xac88
leaq -0x1a8(%rbp), %rdi
callq 0x588b0
leaq -0xe8(%rbp), %rdi
callq 0x3dfa0
leaq -0xd0(%rbp), %rdi
callq 0x3dfa0
leaq -0x28(%rbp), %rdi
callq 0xac88
movq -0x38(%rbp), %rdi
callq 0xab50
nopl (%rax)