// File: millanek[P]Dsuite/Dmin_combine.cpp
// Function: DminCombineMain(int, char**)
int DminCombineMain(int argc, char** argv) {
    parseDminCombineOptions(argc, argv);
    const bool KStestPossible = false;
    
    string line; // for reading the input files
    
    
    string outFileRoot = prepareOutFileRootString(opt::providedOutPrefix, opt::runName, "", -1, -1);
    
    std::vector<std::istream*> dminstdErrFiles; std::vector<std::istream*> dminBBAAscoreFiles;
    for (int i = 0; i < opt::dminFiles.size(); i++) {
        std::istream* dminBBAAscoreFile;
        if (file_exists(opt::dminFiles[i] + "_combine.txt")) {
            dminBBAAscoreFile = createReader((opt::dminFiles[i] + "_combine.txt").c_str());
        } else if(file_exists(opt::dminFiles[i] + "_combine.txt.gz")) {
            dminBBAAscoreFile = createReader((opt::dminFiles[i] + "_combine.txt.gz").c_str());
        } else {
            std::cerr << "Can't find the file: " << opt::dminFiles[i] + "_combine.txt" << " or " << opt::dminFiles[i] + "_combine.txt.gz. Exiting..." << std::endl;
            exit(EXIT_FAILURE);
        }
        dminBBAAscoreFiles.push_back(dminBBAAscoreFile);
        std::istream* dminstdErrFile;
        if (file_exists(opt::dminFiles[i] + "_combine_stderr.txt")) {
            dminstdErrFile = createReader((opt::dminFiles[i] + "_combine_stderr.txt").c_str());
        } else if(file_exists(opt::dminFiles[i] + "_combine_stderr.txt.gz")) {
            dminstdErrFile = createReader((opt::dminFiles[i] + "_combine_stderr.txt.gz").c_str());
        } else {
            std::cerr << "Can't find the file: " << opt::dminFiles[i] + "_combine_stderr.txt" << " or " << opt::dminFiles[i] + "_combine_stderr.txt.gz. Exiting..." << std::endl;
            exit(EXIT_FAILURE);
        }
        dminstdErrFiles.push_back(dminstdErrFile);
        std::cerr << "Reading file " << opt::dminFiles[i] << std::endl;
    }
    
    std::istream* treeFile; std::ofstream* outFileTree;
    std::map<string,std::vector<int>> treeTaxonNamesToLoc; std::vector<int> treeLevels;
    if (opt::treeFile != "") {
        treeFile = new std::ifstream(opt::treeFile.c_str());
        if (!treeFile->good()) { std::cerr << "The file " << opt::treeFile << " could not be opened. Exiting..." << std::endl; exit(1);}
        outFileTree = new std::ofstream(outFileRoot + "_combined_tree.txt");
        getline(*treeFile, line);
        assignTreeLevelsAndLinkToTaxa(line,treeTaxonNamesToLoc,treeLevels);
    }
    // Now get the standard error values
    std::ofstream* outFileBBAA = new std::ofstream(outFileRoot + "_combined_BBAA.txt"); std::ofstream* outFileDmin = new std::ofstream(outFileRoot + "_combined_Dmin.txt");
    
    std::vector<double> BBAA_local_Ds; std::vector<double> ABBA_local_Ds; std::vector<double> BABA_local_Ds;
    string s1; string s2; string s3;
    bool allDone = false; bool fIncluded = false;
    int processedTriosNumber = 0; int exceptionCount = 0;
    
    getline(*dminBBAAscoreFiles[0], line); std::vector<string> patternCounts = split(line, '\t');
    if (patternCounts.size() == 12) fIncluded = true;
    string header = makeHeader(false,fIncluded,KStestPossible);
    *outFileBBAA << header << std::endl; *outFileDmin << header << std::endl;
    if (opt::treeFile != "") *outFileTree << header << std::endl;
    dminBBAAscoreFiles[0]->seekg(0, dminBBAAscoreFiles[0]->beg); // Go back to the beginning of this file
    
    do {
        TrioDinfo info; processedTriosNumber++;
        if (processedTriosNumber % 10000 == 0) { std::cerr << "Processed " << processedTriosNumber << " trios" << std::endl; }
        
        if (opt::subsetStart != -1) {
            if (processedTriosNumber < opt::subsetStart) {
                for (int i = 0; i < dminBBAAscoreFiles.size(); i++) { getline(*dminBBAAscoreFiles[i], line); }
                for (int i = 0; i < dminstdErrFiles.size(); i++) { getline(*dminstdErrFiles[i], line); }
                continue;
            }
            if (processedTriosNumber >= (opt::subsetStart+opt::subsetLength)) {
                std::cerr << "DONE" << std::endl; break;
            }
        }
        
        
        for (int i = 0; i < dminBBAAscoreFiles.size(); i++) {
            if (getline(*dminBBAAscoreFiles[i], line)) {
                std::vector<string> patternCounts = split(line, '\t');
                assert(patternCounts.size() == 6 || patternCounts.size() == 12);

                if (i == 0) {
                    s1 = patternCounts[0]; s2 = patternCounts[1]; s3 = patternCounts[2];
                } else {
                    assert(s1 == patternCounts[0]); assert(s2 == patternCounts[1]); assert(s3 == patternCounts[2]);
                }
                info.BBAAtotal += stringToDouble(patternCounts[3]);
                info.BABAtotal += stringToDouble(patternCounts[4]);
                info.ABBAtotal += stringToDouble(patternCounts[5]);
                if (fIncluded) {
                    info.F_G_denom1 += stringToDouble(patternCounts[6]);
                    info.F_G_denom2 += stringToDouble(patternCounts[7]);
                    info.F_G_denom3 += stringToDouble(patternCounts[8]);
                    info.F_G_denom1_reversed += stringToDouble(patternCounts[9]);
                    info.F_G_denom2_reversed += stringToDouble(patternCounts[10]);
                    info.F_G_denom3_reversed += stringToDouble(patternCounts[11]);
                }
            } else {
                allDone = true; break;
            }
        }
        
        for (int i = 0; i < dminstdErrFiles.size(); i++) {
            if (getline(*dminstdErrFiles[i], line)) {
                std::vector<string> localDs = split2(line, "\t");
                //assert(localDs.size() == 3 || localDs.size() == 0);
                if (localDs.size() == 3) {
                    std::vector<string> regionD_strings0 = split(localDs[0], ',');
                    std::vector<string> regionD_strings1 = split(localDs[1], ',');
                    std::vector<string> regionD_strings2 = split(localDs[2], ',');
                    for (int j = 0; j < regionD_strings0.size(); j++) {
                        double localD = stringToDouble(regionD_strings0[j]);
                        if (!std::isnan(localD)) info.regionDs[0].push_back(localD);
                    }
                    for (int j = 0; j < regionD_strings1.size(); j++) {
                        double localD = stringToDouble(regionD_strings1[j]);
                        if (!std::isnan(localD)) info.regionDs[1].push_back(localD);
                    }
                    for (int j = 0; j < regionD_strings2.size(); j++) {
                        double localD = stringToDouble(regionD_strings2[j]);
                        if (!std::isnan(localD)) info.regionDs[2].push_back(localD);
                    }
                } else {
                    print_vector(localDs,std::cerr); exit(EXIT_FAILURE);
                }
            } else {
                allDone = true; break;
            }
        }
        
        
        if (!allDone) {
            try {
                info.calculateFinalDs();
            } catch (const char* msg) {
                exceptionCount++;
                if (exceptionCount <= 10) {
                    std::cerr << msg << std::endl;
                    std::cerr << "Could not calculate p-values for the trio: " << s1 << " " << s2 << " " << s3 << std::endl;
                    std::cerr << "You should probably decrease the the jackknife block size (-j option)" << std::endl;
                    std::cerr << std::endl;
                }
                info.D1_p = nan(""); info.D2_p = nan(""); info.D3_p = nan("");
            }
            
            std::vector<string> trio; trio.push_back(s1); trio.push_back(s2); trio.push_back(s3);
            // Find which topology is in agreement with the counts of BBAA, BABA, and ABBA
            info.assignBBAAarrangement();
            std::vector<string> BBAAoutVec = info.makeOutVec(trio, fIncluded,KStestPossible, info.BBAAarrangement);
            print_vector(BBAAoutVec,*outFileBBAA);
           
            // Find Dmin:
            info.assignDminArrangement();
            std::vector<string> DminOutVec = info.makeOutVec(trio, fIncluded, KStestPossible,info.DminArrangement);
            print_vector(DminOutVec,*outFileDmin);
            
            if (opt::treeFile != "") {
                int loc1 = treeTaxonNamesToLoc[s1][0]; int loc2 = treeTaxonNamesToLoc[s2][0]; int loc3 = treeTaxonNamesToLoc[s3][0];
                info.treeArrangement = info.assignTreeArrangement(treeLevels, loc1, loc2, loc3);
                std::vector<string> treeOutVec = info.makeOutVec(trio, fIncluded, KStestPossible, info.treeArrangement);
                print_vector(treeOutVec,*outFileTree);
            }
        }
 
    } while(!allDone);
    
    if (exceptionCount > 10) {
        std::cerr << "..." << std::endl;
        std::cerr << "p-value could not be calculated for " << exceptionCount << " trios" << std::endl;
        std::cerr << "You should definitely decrease the the jackknife block size!!!" << std::endl;
        std::cerr << std::endl;
    }
    
    return 0;
    
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xd60, %rsp            # imm = 0xD60
movl %edi, -0x4(%rbp)
movq %rsi, -0x10(%rbp)
movl -0x4(%rbp), %edi
movq -0x10(%rbp), %rsi
callq 0x440b0
movb $0x0, -0x11(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x87d0
leaq -0x79(%rbp), %rdi
movq %rdi, -0xa60(%rbp)
callq 0x8a60
movq -0xa60(%rbp), %rdx
leaq 0x49b70(%rip), %rsi     # 0x8b369
leaq -0x78(%rbp), %rdi
callq 0x9a00
jmp 0x41804
leaq 0x7e655(%rip), %rsi     # 0xbfe60
leaq 0x7e66e(%rip), %rdx     # 0xbfe80
leaq -0x58(%rbp), %rdi
leaq -0x78(%rbp), %rcx
movl $0xffffffff, %r9d       # imm = 0xFFFFFFFF
movl %r9d, %r8d
callq 0x7fae0
jmp 0x4182a
leaq -0x78(%rbp), %rdi
callq 0x8c08
leaq -0x79(%rbp), %rdi
callq 0x8610
leaq -0xa8(%rbp), %rdi
callq 0x445a0
leaq -0xc0(%rbp), %rdi
callq 0x445a0
movl $0x0, -0xc4(%rbp)
movslq -0xc4(%rbp), %rax
movq %rax, -0xa68(%rbp)
leaq 0x7e5d5(%rip), %rdi     # 0xbfe48
callq 0x10740
movq %rax, %rcx
movq -0xa68(%rbp), %rax
cmpq %rcx, %rax
jae 0x42227
movslq -0xc4(%rbp), %rsi
leaq 0x7e5af(%rip), %rdi     # 0xbfe48
callq 0x10b10
movq %rax, %rsi
leaq 0x47b6e(%rip), %rdx     # 0x89416
leaq -0xf0(%rbp), %rdi
callq 0x20470
jmp 0x418b6
leaq -0xf0(%rbp), %rdi
callq 0x10210
movb %al, -0xa69(%rbp)
jmp 0x418ca
leaq -0xf0(%rbp), %rdi
callq 0x8c08
movb -0xa69(%rbp), %al
testb $0x1, %al
jne 0x418e5
jmp 0x41a69
movslq -0xc4(%rbp), %rsi
leaq 0x7e555(%rip), %rdi     # 0xbfe48
callq 0x10b10
movq %rax, %rsi
leaq 0x47b14(%rip), %rdx     # 0x89416
leaq -0x130(%rbp), %rdi
callq 0x20470
jmp 0x41910
leaq -0x130(%rbp), %rdi
callq 0x8230
movq %rax, -0xa80(%rbp)
leaq -0x131(%rbp), %rdi
movq %rdi, -0xa78(%rbp)
callq 0x8a60
movq -0xa80(%rbp), %rsi
movq -0xa78(%rbp), %rdx
leaq -0x110(%rbp), %rdi
callq 0x9a00
jmp 0x41952
leaq -0x110(%rbp), %rdi
movl $0x8, %esi
callq 0xffb0
movq %rax, -0xa88(%rbp)
jmp 0x4196c
movq -0xa88(%rbp), %rax
movq %rax, -0xd0(%rbp)
leaq -0x110(%rbp), %rdi
callq 0x8c08
leaq -0x131(%rbp), %rdi
callq 0x8610
leaq -0x130(%rbp), %rdi
callq 0x8c08
jmp 0x41d35
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x419d2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x78(%rbp), %rdi
callq 0x8c08
leaq -0x79(%rbp), %rdi
callq 0x8610
jmp 0x4408f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x4406e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0xf0(%rbp), %rdi
callq 0x8c08
jmp 0x4406e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x41a4c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x110(%rbp), %rdi
callq 0x8c08
leaq -0x131(%rbp), %rdi
callq 0x8610
leaq -0x130(%rbp), %rdi
callq 0x8c08
jmp 0x4406e
movslq -0xc4(%rbp), %rsi
leaq 0x7e3d1(%rip), %rdi     # 0xbfe48
callq 0x10b10
movq %rax, %rsi
leaq 0x48ea2(%rip), %rdx     # 0x8a928
leaq -0x158(%rbp), %rdi
callq 0x20470
jmp 0x41a94
leaq -0x158(%rbp), %rdi
callq 0x10210
movb %al, -0xa89(%rbp)
jmp 0x41aa8
leaq -0x158(%rbp), %rdi
callq 0x8c08
movb -0xa89(%rbp), %al
testb $0x1, %al
jne 0x41ac3
jmp 0x41bf3
movslq -0xc4(%rbp), %rsi
leaq 0x7e377(%rip), %rdi     # 0xbfe48
callq 0x10b10
movq %rax, %rsi
leaq 0x48e48(%rip), %rdx     # 0x8a928
leaq -0x198(%rbp), %rdi
callq 0x20470
jmp 0x41aee
leaq -0x198(%rbp), %rdi
callq 0x8230
movq %rax, -0xaa0(%rbp)
leaq -0x199(%rbp), %rdi
movq %rdi, -0xa98(%rbp)
callq 0x8a60
movq -0xaa0(%rbp), %rsi
movq -0xa98(%rbp), %rdx
leaq -0x178(%rbp), %rdi
callq 0x9a00
jmp 0x41b30
leaq -0x178(%rbp), %rdi
movl $0x8, %esi
callq 0xffb0
movq %rax, -0xaa8(%rbp)
jmp 0x41b4a
movq -0xaa8(%rbp), %rax
movq %rax, -0xd0(%rbp)
leaq -0x178(%rbp), %rdi
callq 0x8c08
leaq -0x199(%rbp), %rdi
callq 0x8610
leaq -0x198(%rbp), %rdi
callq 0x8c08
jmp 0x41d33
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x158(%rbp), %rdi
callq 0x8c08
jmp 0x4406e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x41bd6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x178(%rbp), %rdi
callq 0x8c08
leaq -0x199(%rbp), %rdi
callq 0x8610
leaq -0x198(%rbp), %rdi
callq 0x8c08
jmp 0x4406e
movq 0x7d3f6(%rip), %rdi     # 0xbeff0
leaq 0x48d37(%rip), %rsi     # 0x8a938
callq 0x8590
movq %rax, -0xab0(%rbp)
jmp 0x41c0f
movslq -0xc4(%rbp), %rsi
leaq 0x7e22b(%rip), %rdi     # 0xbfe48
callq 0x10b10
movq %rax, %rsi
leaq 0x477ea(%rip), %rdx     # 0x89416
leaq -0x1c0(%rbp), %rdi
callq 0x20470
jmp 0x41c3a
movq -0xab0(%rbp), %rdi
leaq -0x1c0(%rbp), %rsi
callq 0x8520
movq %rax, -0xab8(%rbp)
jmp 0x41c56
movq -0xab8(%rbp), %rdi
leaq 0x48cea(%rip), %rsi     # 0x8a94e
callq 0x8590
movq %rax, -0xac0(%rbp)
jmp 0x41c72
movslq -0xc4(%rbp), %rsi
leaq 0x7e1c8(%rip), %rdi     # 0xbfe48
callq 0x10b10
movq %rax, %rsi
leaq 0x48cc4(%rip), %rdx     # 0x8a953
leaq -0x1e0(%rbp), %rdi
callq 0x20470
jmp 0x41c9d
movq -0xac0(%rbp), %rdi
leaq -0x1e0(%rbp), %rsi
callq 0x8520
movq %rax, -0xac8(%rbp)
jmp 0x41cb9
movq -0xac8(%rbp), %rdi
movq 0x7d299(%rip), %rsi     # 0xbef60
callq 0x85f0
jmp 0x41cce
leaq -0x1e0(%rbp), %rdi
callq 0x8c08
leaq -0x1c0(%rbp), %rdi
callq 0x8c08
movl $0x1, %edi
callq 0x86e0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x41d22
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x1e0(%rbp), %rdi
callq 0x8c08
leaq -0x1c0(%rbp), %rdi
callq 0x8c08
jmp 0x4406e
jmp 0x41d35
leaq -0xc0(%rbp), %rdi
leaq -0xd0(%rbp), %rsi
callq 0x445c0
jmp 0x41d4a
movslq -0xc4(%rbp), %rsi
leaq 0x7e0f0(%rip), %rdi     # 0xbfe48
callq 0x10b10
movq %rax, %rsi
leaq 0x476bc(%rip), %rdx     # 0x89423
leaq -0x208(%rbp), %rdi
callq 0x20470
jmp 0x41d75
leaq -0x208(%rbp), %rdi
callq 0x10210
movb %al, -0xac9(%rbp)
jmp 0x41d89
leaq -0x208(%rbp), %rdi
callq 0x8c08
movb -0xac9(%rbp), %al
testb $0x1, %al
jne 0x41da4
jmp 0x41ed4
movslq -0xc4(%rbp), %rsi
leaq 0x7e096(%rip), %rdi     # 0xbfe48
callq 0x10b10
movq %rax, %rsi
leaq 0x47662(%rip), %rdx     # 0x89423
leaq -0x248(%rbp), %rdi
callq 0x20470
jmp 0x41dcf
leaq -0x248(%rbp), %rdi
callq 0x8230
movq %rax, -0xae0(%rbp)
leaq -0x249(%rbp), %rdi
movq %rdi, -0xad8(%rbp)
callq 0x8a60
movq -0xae0(%rbp), %rsi
movq -0xad8(%rbp), %rdx
leaq -0x228(%rbp), %rdi
callq 0x9a00
jmp 0x41e11
leaq -0x228(%rbp), %rdi
movl $0x8, %esi
callq 0xffb0
movq %rax, -0xae8(%rbp)
jmp 0x41e2b
movq -0xae8(%rbp), %rax
movq %rax, -0x1e8(%rbp)
leaq -0x228(%rbp), %rdi
callq 0x8c08
leaq -0x249(%rbp), %rdi
callq 0x8610
leaq -0x248(%rbp), %rdi
callq 0x8c08
jmp 0x421a0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x208(%rbp), %rdi
callq 0x8c08
jmp 0x4406e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x41eb7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x228(%rbp), %rdi
callq 0x8c08
leaq -0x249(%rbp), %rdi
callq 0x8610
leaq -0x248(%rbp), %rdi
callq 0x8c08
jmp 0x4406e
movslq -0xc4(%rbp), %rsi
leaq 0x7df66(%rip), %rdi     # 0xbfe48
callq 0x10b10
movq %rax, %rsi
leaq 0x48a7e(%rip), %rdx     # 0x8a96f
leaq -0x270(%rbp), %rdi
callq 0x20470
jmp 0x41eff
leaq -0x270(%rbp), %rdi
callq 0x10210
movb %al, -0xae9(%rbp)
jmp 0x41f13
leaq -0x270(%rbp), %rdi
callq 0x8c08
movb -0xae9(%rbp), %al
testb $0x1, %al
jne 0x41f2e
jmp 0x4205e
movslq -0xc4(%rbp), %rsi
leaq 0x7df0c(%rip), %rdi     # 0xbfe48
callq 0x10b10
movq %rax, %rsi
leaq 0x48a24(%rip), %rdx     # 0x8a96f
leaq -0x2b0(%rbp), %rdi
callq 0x20470
jmp 0x41f59
leaq -0x2b0(%rbp), %rdi
callq 0x8230
movq %rax, -0xb00(%rbp)
leaq -0x2b1(%rbp), %rdi
movq %rdi, -0xaf8(%rbp)
callq 0x8a60
movq -0xb00(%rbp), %rsi
movq -0xaf8(%rbp), %rdx
leaq -0x290(%rbp), %rdi
callq 0x9a00
jmp 0x41f9b
leaq -0x290(%rbp), %rdi
movl $0x8, %esi
callq 0xffb0
movq %rax, -0xb08(%rbp)
jmp 0x41fb5
movq -0xb08(%rbp), %rax
movq %rax, -0x1e8(%rbp)
leaq -0x290(%rbp), %rdi
callq 0x8c08
leaq -0x2b1(%rbp), %rdi
callq 0x8610
leaq -0x2b0(%rbp), %rdi
callq 0x8c08
jmp 0x4219e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x270(%rbp), %rdi
callq 0x8c08
jmp 0x4406e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x42041
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x290(%rbp), %rdi
callq 0x8c08
leaq -0x2b1(%rbp), %rdi
callq 0x8610
leaq -0x2b0(%rbp), %rdi
callq 0x8c08
jmp 0x4406e
movq 0x7cf8b(%rip), %rdi     # 0xbeff0
leaq 0x488cc(%rip), %rsi     # 0x8a938
callq 0x8590
movq %rax, -0xb10(%rbp)
jmp 0x4207a
movslq -0xc4(%rbp), %rsi
leaq 0x7ddc0(%rip), %rdi     # 0xbfe48
callq 0x10b10
movq %rax, %rsi
leaq 0x4738c(%rip), %rdx     # 0x89423
leaq -0x2d8(%rbp), %rdi
callq 0x20470
jmp 0x420a5
movq -0xb10(%rbp), %rdi
leaq -0x2d8(%rbp), %rsi
callq 0x8520
movq %rax, -0xb18(%rbp)
jmp 0x420c1
movq -0xb18(%rbp), %rdi
leaq 0x4887f(%rip), %rsi     # 0x8a94e
callq 0x8590
movq %rax, -0xb20(%rbp)
jmp 0x420dd
movslq -0xc4(%rbp), %rsi
leaq 0x7dd5d(%rip), %rdi     # 0xbfe48
callq 0x10b10
movq %rax, %rsi
leaq 0x4888c(%rip), %rdx     # 0x8a986
leaq -0x2f8(%rbp), %rdi
callq 0x20470
jmp 0x42108
movq -0xb20(%rbp), %rdi
leaq -0x2f8(%rbp), %rsi
callq 0x8520
movq %rax, -0xb28(%rbp)
jmp 0x42124
movq -0xb28(%rbp), %rdi
movq 0x7ce2e(%rip), %rsi     # 0xbef60
callq 0x85f0
jmp 0x42139
leaq -0x2f8(%rbp), %rdi
callq 0x8c08
leaq -0x2d8(%rbp), %rdi
callq 0x8c08
movl $0x1, %edi
callq 0x86e0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x4218d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x2f8(%rbp), %rdi
callq 0x8c08
leaq -0x2d8(%rbp), %rdi
callq 0x8c08
jmp 0x4406e
jmp 0x421a0
leaq -0xa8(%rbp), %rdi
leaq -0x1e8(%rbp), %rsi
callq 0x445c0
jmp 0x421b5
movq 0x7ce34(%rip), %rdi     # 0xbeff0
leaq 0x487e6(%rip), %rsi     # 0x8a9a9
callq 0x8590
movq %rax, -0xb30(%rbp)
jmp 0x421d1
movslq -0xc4(%rbp), %rsi
leaq 0x7dc69(%rip), %rdi     # 0xbfe48
callq 0x10b10
movq -0xb30(%rbp), %rdi
movq %rax, %rsi
callq 0x8520
movq %rax, -0xb38(%rbp)
jmp 0x421fc
movq -0xb38(%rbp), %rdi
movq 0x7cd56(%rip), %rsi     # 0xbef60
callq 0x85f0
jmp 0x42211
jmp 0x42213
movl -0xc4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc4(%rbp)
jmp 0x4185e
leaq -0x338(%rbp), %rdi
callq 0x252e0
leaq -0x350(%rbp), %rdi
callq 0x17620
leaq 0x7dc5a(%rip), %rdi     # 0xbfea0
leaq 0x4911c(%rip), %rsi     # 0x8b369
callq 0x22410
movb %al, -0xb39(%rbp)
jmp 0x4225a
movb -0xb39(%rbp), %al
testb $0x1, %al
jne 0x42269
jmp 0x4247a
movl $0x208, %edi            # imm = 0x208
callq 0x85a0
movq %rax, -0xb48(%rbp)
jmp 0x4227c
leaq 0x7dc1d(%rip), %rdi     # 0xbfea0
callq 0x8230
movq -0xb48(%rbp), %rdi
movq %rax, %rsi
movl $0x8, %edx
callq 0x8ad0
jmp 0x4229e
movq -0xb48(%rbp), %rax
movq %rax, -0x300(%rbp)
movq -0x300(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0x89e0
movb %al, -0xb49(%rbp)
jmp 0x422ca
movb -0xb49(%rbp), %al
testb $0x1, %al
jne 0x4238c
jmp 0x422da
movq 0x7cd0f(%rip), %rdi     # 0xbeff0
leaq 0x46951(%rip), %rsi     # 0x88c39
callq 0x8590
movq %rax, -0xb58(%rbp)
jmp 0x422f6
movq -0xb58(%rbp), %rdi
leaq 0x7db9c(%rip), %rsi     # 0xbfea0
callq 0x8520
movq %rax, -0xb60(%rbp)
jmp 0x42312
movq -0xb60(%rbp), %rdi
leaq 0x46570(%rip), %rsi     # 0x88890
callq 0x8590
movq %rax, -0xb68(%rbp)
jmp 0x4232e
movq -0xb68(%rbp), %rdi
movq 0x7cc24(%rip), %rsi     # 0xbef60
callq 0x85f0
jmp 0x42343
movl $0x1, %edi
callq 0x86e0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x44056
movq -0xb48(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
movl $0x208, %esi            # imm = 0x208
callq 0x85b0
jmp 0x44056
movl $0x200, %edi            # imm = 0x200
callq 0x85a0
movq %rax, -0xb70(%rbp)
jmp 0x4239f
movb $0x1, -0x371(%rbp)
leaq 0x4860a(%rip), %rdx     # 0x8a9b7
leaq -0x370(%rbp), %rdi
leaq -0x58(%rbp), %rsi
callq 0x20470
jmp 0x423bf
movq -0xb70(%rbp), %rdi
leaq -0x370(%rbp), %rsi
movl $0x10, %edx
callq 0x8b70
jmp 0x423d9
movq -0xb70(%rbp), %rax
movb $0x0, -0x371(%rbp)
movq %rax, -0x308(%rbp)
leaq -0x370(%rbp), %rdi
callq 0x8c08
movq -0x300(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x80d0
jmp 0x4240c
leaq -0x38(%rbp), %rdi
leaq -0x338(%rbp), %rsi
leaq -0x350(%rbp), %rdx
callq 0x80070
jmp 0x42425
jmp 0x4247a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x42459
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x370(%rbp), %rdi
callq 0x8c08
testb $0x1, -0x371(%rbp)
jne 0x42464
jmp 0x42475
movq -0xb70(%rbp), %rdi
movl $0x200, %esi            # imm = 0x200
callq 0x85b0
jmp 0x44056
movl $0x200, %edi            # imm = 0x200
callq 0x85a0
movq %rax, -0xb78(%rbp)
jmp 0x4248d
movb $0x1, -0x3a1(%rbp)
leaq 0x4852f(%rip), %rdx     # 0x8a9ca
leaq -0x3a0(%rbp), %rdi
leaq -0x58(%rbp), %rsi
callq 0x20470
jmp 0x424ad
movq -0xb78(%rbp), %rdi
leaq -0x3a0(%rbp), %rsi
movl $0x10, %edx
callq 0x8b70
jmp 0x424c7
movb $0x0, -0x3a1(%rbp)
leaq -0x3a0(%rbp), %rdi
callq 0x8c08
movq -0xb78(%rbp), %rax
movq %rax, -0x380(%rbp)
movl $0x200, %edi            # imm = 0x200
callq 0x85a0
movq %rax, -0xb80(%rbp)
jmp 0x424fb
movb $0x1, -0x3d1(%rbp)
leaq 0x484d4(%rip), %rdx     # 0x8a9dd
leaq -0x3d0(%rbp), %rdi
leaq -0x58(%rbp), %rsi
callq 0x20470
jmp 0x4251b
movq -0xb80(%rbp), %rdi
leaq -0x3d0(%rbp), %rsi
movl $0x10, %edx
callq 0x8b70
jmp 0x42535
movb $0x0, -0x3d1(%rbp)
leaq -0x3d0(%rbp), %rdi
callq 0x8c08
movq -0xb80(%rbp), %rax
movq %rax, -0x3b0(%rbp)
leaq -0x3f0(%rbp), %rdi
callq 0x10800
leaq -0x408(%rbp), %rdi
callq 0x10800
leaq -0x420(%rbp), %rdi
callq 0x10800
leaq -0x440(%rbp), %rdi
callq 0x87d0
leaq -0x460(%rbp), %rdi
callq 0x87d0
leaq -0x480(%rbp), %rdi
callq 0x87d0
movb $0x0, -0x481(%rbp)
movb $0x0, -0x482(%rbp)
movl $0x0, -0x488(%rbp)
movl $0x0, -0x48c(%rbp)
xorl %eax, %eax
movl %eax, %esi
leaq -0xc0(%rbp), %rdi
callq 0x44630
movq (%rax), %rdi
leaq -0x38(%rbp), %rsi
callq 0x80d0
jmp 0x425de
leaq -0x4a8(%rbp), %rdi
leaq -0x38(%rbp), %rsi
movl $0x9, %edx
callq 0xaef0
jmp 0x425f5
leaq -0x4a8(%rbp), %rdi
callq 0x10740
cmpq $0xc, %rax
jne 0x426d4
movb $0x1, -0x482(%rbp)
jmp 0x426d4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x42649
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x3a0(%rbp), %rdi
callq 0x8c08
testb $0x1, -0x3a1(%rbp)
jne 0x42654
jmp 0x42665
movq -0xb78(%rbp), %rdi
movl $0x200, %esi            # imm = 0x200
callq 0x85b0
jmp 0x44056
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x4269c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x3d0(%rbp), %rdi
callq 0x8c08
testb $0x1, -0x3d1(%rbp)
jne 0x426a7
jmp 0x426b8
movq -0xb80(%rbp), %rdi
movl $0x200, %esi            # imm = 0x200
callq 0x85b0
jmp 0x44056
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x4400e
movzbl -0x482(%rbp), %edx
andl $0x1, %edx
leaq -0x4c8(%rbp), %rdi
xorl %ecx, %ecx
movl %ecx, %esi
callq 0x7f960
jmp 0x426f0
movq -0x380(%rbp), %rdi
leaq -0x4c8(%rbp), %rsi
callq 0x8520
movq %rax, -0xb88(%rbp)
jmp 0x4270c
movq -0xb88(%rbp), %rdi
movq 0x7c846(%rip), %rsi     # 0xbef60
callq 0x85f0
jmp 0x42721
movq -0x3b0(%rbp), %rdi
leaq -0x4c8(%rbp), %rsi
callq 0x8520
movq %rax, -0xb90(%rbp)
jmp 0x4273d
movq -0xb90(%rbp), %rdi
movq 0x7c815(%rip), %rsi     # 0xbef60
callq 0x85f0
jmp 0x42752
leaq 0x7d747(%rip), %rdi     # 0xbfea0
leaq 0x48c09(%rip), %rsi     # 0x8b369
callq 0x22410
movb %al, -0xb91(%rbp)
jmp 0x4276d
movb -0xb91(%rbp), %al
testb $0x1, %al
jne 0x42779
jmp 0x427da
movq -0x308(%rbp), %rdi
leaq -0x4c8(%rbp), %rsi
callq 0x8520
movq %rax, -0xba0(%rbp)
jmp 0x42795
movq -0xba0(%rbp), %rdi
movq 0x7c7bd(%rip), %rsi     # 0xbef60
callq 0x85f0
jmp 0x427aa
jmp 0x427da
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x44002
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x43ff6
xorl %eax, %eax
movl %eax, -0xba4(%rbp)
movl %eax, %esi
movq %rsi, -0xbb0(%rbp)
leaq -0xc0(%rbp), %rdi
movq %rdi, -0xbc0(%rbp)
callq 0x44630
movq -0xbc0(%rbp), %rdi
movq -0xbb0(%rbp), %rsi
movq (%rax), %rax
movq %rax, -0xbb8(%rbp)
callq 0x44630
movq -0xbb8(%rbp), %rdi
movq -0xbb0(%rbp), %rsi
movl -0xba4(%rbp), %edx
callq 0x87b0
jmp 0x42836
jmp 0x42838
leaq -0x6e0(%rbp), %rdi
callq 0x36a70
jmp 0x42846
movl -0x488(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x488(%rbp)
movl -0x488(%rbp), %eax
movl $0x2710, %ecx           # imm = 0x2710
cltd
idivl %ecx
cmpl $0x0, %edx
jne 0x428ed
movq 0x7c77d(%rip), %rdi     # 0xbeff0
leaq 0x46409(%rip), %rsi     # 0x88c83
callq 0x8590
movq %rax, -0xbc8(%rbp)
jmp 0x42888
movq -0xbc8(%rbp), %rdi
movl -0x488(%rbp), %esi
callq 0x8a10
movq %rax, -0xbd0(%rbp)
jmp 0x428a3
movq -0xbd0(%rbp), %rdi
leaq 0x46e35(%rip), %rsi     # 0x896e6
callq 0x8590
movq %rax, -0xbd8(%rbp)
jmp 0x428bf
movq -0xbd8(%rbp), %rdi
movq 0x7c693(%rip), %rsi     # 0xbef60
callq 0x85f0
jmp 0x428d4
jmp 0x428ed
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x43f2e
cmpl $-0x1, 0x7cd94(%rip)    # 0xbf688
je 0x42a41
movl -0x488(%rbp), %eax
cmpl 0x7cd82(%rip), %eax     # 0xbf688
jge 0x429e9
movl $0x0, -0x6e4(%rbp)
movslq -0x6e4(%rbp), %rax
movq %rax, -0xbe0(%rbp)
leaq -0xc0(%rbp), %rdi
callq 0x44650
movq %rax, %rcx
movq -0xbe0(%rbp), %rax
cmpq %rcx, %rax
jae 0x42973
movslq -0x6e4(%rbp), %rsi
leaq -0xc0(%rbp), %rdi
callq 0x44630
movq (%rax), %rdi
leaq -0x38(%rbp), %rsi
callq 0x80d0
jmp 0x42960
jmp 0x42962
movl -0x6e4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x6e4(%rbp)
jmp 0x42916
movl $0x0, -0x6e8(%rbp)
movslq -0x6e8(%rbp), %rax
movq %rax, -0xbe8(%rbp)
leaq -0xa8(%rbp), %rdi
callq 0x44650
movq %rax, %rcx
movq -0xbe8(%rbp), %rax
cmpq %rcx, %rax
jae 0x429da
movslq -0x6e8(%rbp), %rsi
leaq -0xa8(%rbp), %rdi
callq 0x44630
movq (%rax), %rdi
leaq -0x38(%rbp), %rsi
callq 0x80d0
jmp 0x429c7
jmp 0x429c9
movl -0x6e8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x6e8(%rbp)
jmp 0x4297d
movl $0x6, -0x6ec(%rbp)
jmp 0x43e01
movl -0x488(%rbp), %eax
movl 0x7cc93(%rip), %ecx     # 0xbf688
addl 0x7cc91(%rip), %ecx     # 0xbf68c
cmpl %ecx, %eax
jl 0x42a3f
movq 0x7c5ea(%rip), %rdi     # 0xbeff0
leaq 0x46a8b(%rip), %rsi     # 0x89498
callq 0x8590
movq %rax, -0xbf0(%rbp)
jmp 0x42a1b
movq -0xbf0(%rbp), %rdi
movq 0x7c537(%rip), %rsi     # 0xbef60
callq 0x85f0
jmp 0x42a30
movl $0x5, -0x6ec(%rbp)
jmp 0x43e01
jmp 0x42a41
movl $0x0, -0x6f0(%rbp)
movslq -0x6f0(%rbp), %rax
movq %rax, -0xbf8(%rbp)
leaq -0xc0(%rbp), %rdi
callq 0x44650
movq %rax, %rcx
movq -0xbf8(%rbp), %rax
cmpq %rcx, %rax
jae 0x43182
movslq -0x6f0(%rbp), %rsi
leaq -0xc0(%rbp), %rdi
callq 0x44630
movq (%rax), %rdi
leaq -0x38(%rbp), %rsi
callq 0x80d0
movq %rax, -0xc00(%rbp)
jmp 0x42aa0
movq -0xc00(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0x8710
movb %al, -0xc01(%rbp)
jmp 0x42abe
movb -0xc01(%rbp), %al
testb $0x1, %al
jne 0x42acd
jmp 0x43163
leaq -0x708(%rbp), %rdi
leaq -0x38(%rbp), %rsi
movl $0x9, %edx
callq 0xaef0
jmp 0x42ae4
leaq -0x708(%rbp), %rdi
callq 0x10740
movq %rax, %rcx
movb $0x1, %al
cmpq $0x6, %rcx
movb %al, -0xc02(%rbp)
je 0x42b1a
leaq -0x708(%rbp), %rdi
callq 0x10740
cmpq $0xc, %rax
sete %al
movb %al, -0xc02(%rbp)
movb -0xc02(%rbp), %al
testb $0x1, %al
jne 0x42b26
jmp 0x42b28
jmp 0x42b47
leaq 0x47ec1(%rip), %rdi     # 0x8a9f0
leaq 0x47ef2(%rip), %rsi     # 0x8aa28
movl $0x83, %edx
leaq 0x47ef7(%rip), %rcx     # 0x8aa39
callq 0x83b0
cmpl $0x0, -0x6f0(%rbp)
jne 0x42bd5
xorl %eax, %eax
movl %eax, %esi
leaq -0x708(%rbp), %rdi
callq 0x10b10
movq %rax, %rsi
leaq -0x440(%rbp), %rdi
callq 0x8070
jmp 0x42b75
leaq -0x708(%rbp), %rdi
movl $0x1, %esi
callq 0x10b10
movq %rax, %rsi
leaq -0x460(%rbp), %rdi
callq 0x8070
jmp 0x42b97
leaq -0x708(%rbp), %rdi
movl $0x2, %esi
callq 0x10b10
movq %rax, %rsi
leaq -0x480(%rbp), %rdi
callq 0x8070
jmp 0x42bb9
jmp 0x42cab
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x43152
leaq -0x708(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x10b10
movq %rax, %rsi
leaq -0x440(%rbp), %rdi
callq 0x18dd0
testb $0x1, %al
jne 0x42bfa
jmp 0x42bfc
jmp 0x42c1b
leaq 0x47e58(%rip), %rdi     # 0x8aa5b
leaq 0x47e1e(%rip), %rsi     # 0x8aa28
movl $0x88, %edx
leaq 0x47e23(%rip), %rcx     # 0x8aa39
callq 0x83b0
leaq -0x708(%rbp), %rdi
movl $0x1, %esi
callq 0x10b10
movq %rax, %rsi
leaq -0x460(%rbp), %rdi
callq 0x18dd0
testb $0x1, %al
jne 0x42c41
jmp 0x42c43
jmp 0x42c62
leaq 0x47e28(%rip), %rdi     # 0x8aa72
leaq 0x47dd7(%rip), %rsi     # 0x8aa28
movl $0x88, %edx
leaq 0x47ddc(%rip), %rcx     # 0x8aa39
callq 0x83b0
leaq -0x708(%rbp), %rdi
movl $0x2, %esi
callq 0x10b10
movq %rax, %rsi
leaq -0x480(%rbp), %rdi
callq 0x18dd0
testb $0x1, %al
jne 0x42c88
jmp 0x42c8a
jmp 0x42ca9
leaq 0x47df8(%rip), %rdi     # 0x8aa89
leaq 0x47d90(%rip), %rsi     # 0x8aa28
movl $0x88, %edx
leaq 0x47d95(%rip), %rcx     # 0x8aa39
callq 0x83b0
jmp 0x42cab
leaq -0x708(%rbp), %rdi
movl $0x3, %esi
callq 0x10b10
movq %rax, %rsi
leaq -0x728(%rbp), %rdi
callq 0x8250
jmp 0x42ccd
leaq -0x728(%rbp), %rdi
callq 0xf4f0
movsd %xmm0, -0xc10(%rbp)
jmp 0x42ce3
movsd -0xc10(%rbp), %xmm1
movsd -0x6d0(%rbp), %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x6d0(%rbp)
leaq -0x728(%rbp), %rdi
callq 0x8c08
leaq -0x708(%rbp), %rdi
movl $0x4, %esi
callq 0x10b10
movq %rax, %rsi
leaq -0x748(%rbp), %rdi
callq 0x8250
jmp 0x42d2d
leaq -0x748(%rbp), %rdi
callq 0xf4f0
movsd %xmm0, -0xc18(%rbp)
jmp 0x42d43
movsd -0xc18(%rbp), %xmm1
movsd -0x6d8(%rbp), %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x6d8(%rbp)
leaq -0x748(%rbp), %rdi
callq 0x8c08
leaq -0x708(%rbp), %rdi
movl $0x5, %esi
callq 0x10b10
movq %rax, %rsi
leaq -0x768(%rbp), %rdi
callq 0x8250
jmp 0x42d8d
leaq -0x768(%rbp), %rdi
callq 0xf4f0
movsd %xmm0, -0xc20(%rbp)
jmp 0x42da3
movsd -0xc20(%rbp), %xmm0
addsd -0x6e0(%rbp), %xmm0
movsd %xmm0, -0x6e0(%rbp)
leaq -0x768(%rbp), %rdi
callq 0x8c08
testb $0x1, -0x482(%rbp)
je 0x43144
leaq -0x708(%rbp), %rdi
movl $0x6, %esi
callq 0x10b10
movq %rax, %rsi
leaq -0x788(%rbp), %rdi
callq 0x8250
jmp 0x42df6
leaq -0x788(%rbp), %rdi
callq 0xf4f0
movsd %xmm0, -0xc28(%rbp)
jmp 0x42e0c
movsd -0xc28(%rbp), %xmm1
movsd -0x648(%rbp), %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x648(%rbp)
leaq -0x788(%rbp), %rdi
callq 0x8c08
leaq -0x708(%rbp), %rdi
movl $0x7, %esi
callq 0x10b10
movq %rax, %rsi
leaq -0x7a8(%rbp), %rdi
callq 0x8250
jmp 0x42e56
leaq -0x7a8(%rbp), %rdi
callq 0xf4f0
movsd %xmm0, -0xc30(%rbp)
jmp 0x42e6c
movsd -0xc30(%rbp), %xmm1
movsd -0x618(%rbp), %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x618(%rbp)
leaq -0x7a8(%rbp), %rdi
callq 0x8c08
leaq -0x708(%rbp), %rdi
movl $0x8, %esi
callq 0x10b10
movq %rax, %rsi
leaq -0x7c8(%rbp), %rdi
callq 0x8250
jmp 0x42eb6
leaq -0x7c8(%rbp), %rdi
callq 0xf4f0
movsd %xmm0, -0xc38(%rbp)
jmp 0x42ecc
movsd -0xc38(%rbp), %xmm1
movsd -0x5e8(%rbp), %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x5e8(%rbp)
leaq -0x7c8(%rbp), %rdi
callq 0x8c08
leaq -0x708(%rbp), %rdi
movl $0x9, %esi
callq 0x10b10
movq %rax, %rsi
leaq -0x7e8(%rbp), %rdi
callq 0x8250
jmp 0x42f16
leaq -0x7e8(%rbp), %rdi
callq 0xf4f0
movsd %xmm0, -0xc40(%rbp)
jmp 0x42f2c
movsd -0xc40(%rbp), %xmm1
movsd -0x640(%rbp), %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x640(%rbp)
leaq -0x7e8(%rbp), %rdi
callq 0x8c08
leaq -0x708(%rbp), %rdi
movl $0xa, %esi
callq 0x10b10
movq %rax, %rsi
leaq -0x808(%rbp), %rdi
callq 0x8250
jmp 0x42f76
leaq -0x808(%rbp), %rdi
callq 0xf4f0
movsd %xmm0, -0xc48(%rbp)
jmp 0x42f8c
movsd -0xc48(%rbp), %xmm1
movsd -0x610(%rbp), %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x610(%rbp)
leaq -0x808(%rbp), %rdi
callq 0x8c08
leaq -0x708(%rbp), %rdi
movl $0xb, %esi
callq 0x10b10
movq %rax, %rsi
leaq -0x828(%rbp), %rdi
callq 0x8250
jmp 0x42fd6
leaq -0x828(%rbp), %rdi
callq 0xf4f0
movsd %xmm0, -0xc50(%rbp)
jmp 0x42fec
movsd -0xc50(%rbp), %xmm0
addsd -0x5e0(%rbp), %xmm0
movsd %xmm0, -0x5e0(%rbp)
leaq -0x828(%rbp), %rdi
callq 0x8c08
jmp 0x43144
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x728(%rbp), %rdi
callq 0x8c08
jmp 0x43152
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x748(%rbp), %rdi
callq 0x8c08
jmp 0x43152
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x768(%rbp), %rdi
callq 0x8c08
jmp 0x43152
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x788(%rbp), %rdi
callq 0x8c08
jmp 0x43152
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x7a8(%rbp), %rdi
callq 0x8c08
jmp 0x43152
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x7c8(%rbp), %rdi
callq 0x8c08
jmp 0x43152
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x7e8(%rbp), %rdi
callq 0x8c08
jmp 0x43152
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x808(%rbp), %rdi
callq 0x8c08
jmp 0x43152
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x828(%rbp), %rdi
callq 0x8c08
jmp 0x43152
leaq -0x708(%rbp), %rdi
callq 0x10760
jmp 0x4316c
leaq -0x708(%rbp), %rdi
callq 0x10760
jmp 0x43f2e
movb $0x1, -0x481(%rbp)
jmp 0x43182
jmp 0x4316e
movl -0x6f0(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x6f0(%rbp)
jmp 0x42a4b
movl $0x0, -0x82c(%rbp)
movslq -0x82c(%rbp), %rax
movq %rax, -0xc58(%rbp)
leaq -0xa8(%rbp), %rdi
callq 0x44650
movq %rax, %rcx
movq -0xc58(%rbp), %rax
cmpq %rcx, %rax
jae 0x437df
movslq -0x82c(%rbp), %rsi
leaq -0xa8(%rbp), %rdi
callq 0x44630
movq (%rax), %rdi
leaq -0x38(%rbp), %rsi
callq 0x80d0
movq %rax, -0xc60(%rbp)
jmp 0x431e1
movq -0xc60(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0x8710
movb %al, -0xc61(%rbp)
jmp 0x431ff
movb -0xc61(%rbp), %al
testb $0x1, %al
jne 0x4320e
jmp 0x437c0
leaq -0x868(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x8250
jmp 0x43220
leaq -0x889(%rbp), %rdi
movq %rdi, -0xc70(%rbp)
callq 0x8a60
movq -0xc70(%rbp), %rdx
leaq 0x48127(%rip), %rsi     # 0x8b368
leaq -0x888(%rbp), %rdi
callq 0x9a00
jmp 0x4324f
leaq -0x848(%rbp), %rdi
leaq -0x868(%rbp), %rsi
leaq -0x888(%rbp), %rdx
callq 0xf8b0
jmp 0x4326b
leaq -0x888(%rbp), %rdi
callq 0x8c08
leaq -0x889(%rbp), %rdi
callq 0x8610
leaq -0x868(%rbp), %rdi
callq 0x8c08
leaq -0x848(%rbp), %rdi
callq 0x10740
cmpq $0x3, %rax
jne 0x43737
xorl %eax, %eax
movl %eax, %esi
leaq -0x848(%rbp), %rdi
callq 0x10b10
movq %rax, %rsi
leaq -0x8a8(%rbp), %rdi
movl $0x2c, %edx
callq 0xaef0
jmp 0x432cb
leaq -0x848(%rbp), %rdi
movl $0x1, %esi
callq 0x10b10
movq %rax, %rsi
leaq -0x8c0(%rbp), %rdi
movl $0x2c, %edx
callq 0xaef0
jmp 0x432f2
leaq -0x848(%rbp), %rdi
movl $0x2, %esi
callq 0x10b10
movq %rax, %rsi
leaq -0x8d8(%rbp), %rdi
movl $0x2c, %edx
callq 0xaef0
jmp 0x43319
movl $0x0, -0x8dc(%rbp)
movslq -0x8dc(%rbp), %rax
movq %rax, -0xc78(%rbp)
leaq -0x8a8(%rbp), %rdi
callq 0x10740
movq %rax, %rcx
movq -0xc78(%rbp), %rax
cmpq %rcx, %rax
jae 0x434d5
movslq -0x8dc(%rbp), %rsi
leaq -0x8a8(%rbp), %rdi
callq 0x10b10
movq %rax, %rsi
leaq -0x908(%rbp), %rdi
callq 0x8250
jmp 0x43374
leaq -0x908(%rbp), %rdi
callq 0xf4f0
movsd %xmm0, -0xc80(%rbp)
jmp 0x4338a
leaq -0x908(%rbp), %rdi
callq 0x8c08
movsd -0xc80(%rbp), %xmm0
movsd %xmm0, -0x8e8(%rbp)
movsd -0x8e8(%rbp), %xmm0
callq 0x44670
movb %al, -0xc81(%rbp)
jmp 0x433bb
movb -0xc81(%rbp), %al
testb $0x1, %al
jne 0x434bf
jmp 0x433cb
leaq -0x548(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x39e80
movq %rax, %rdi
leaq -0x8e8(%rbp), %rsi
callq 0x10f70
jmp 0x433ec
jmp 0x434bf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x43423
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x888(%rbp), %rdi
callq 0x8c08
leaq -0x889(%rbp), %rdi
callq 0x8610
leaq -0x868(%rbp), %rdi
callq 0x8c08
jmp 0x43f2e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x437af
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x43729
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x4371d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x43711
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x908(%rbp), %rdi
callq 0x8c08
jmp 0x43711
jmp 0x434c1
movl -0x8dc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x8dc(%rbp)
jmp 0x43323
movl $0x0, -0x90c(%rbp)
movslq -0x90c(%rbp), %rax
movq %rax, -0xc90(%rbp)
leaq -0x8c0(%rbp), %rdi
callq 0x10740
movq %rax, %rcx
movq -0xc90(%rbp), %rax
cmpq %rcx, %rax
jae 0x435e0
movslq -0x90c(%rbp), %rsi
leaq -0x8c0(%rbp), %rdi
callq 0x10b10
movq %rax, %rsi
leaq -0x938(%rbp), %rdi
callq 0x8250
jmp 0x43530
leaq -0x938(%rbp), %rdi
callq 0xf4f0
movsd %xmm0, -0xc98(%rbp)
jmp 0x43546
leaq -0x938(%rbp), %rdi
callq 0x8c08
movsd -0xc98(%rbp), %xmm0
movsd %xmm0, -0x918(%rbp)
movsd -0x918(%rbp), %xmm0
callq 0x44670
movb %al, -0xc99(%rbp)
jmp 0x43577
movb -0xc99(%rbp), %al
testb $0x1, %al
jne 0x435ca
jmp 0x43583
leaq -0x548(%rbp), %rdi
movl $0x1, %esi
callq 0x39e80
movq %rax, %rdi
leaq -0x918(%rbp), %rsi
callq 0x10f70
jmp 0x435a5
jmp 0x435ca
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x938(%rbp), %rdi
callq 0x8c08
jmp 0x43711
jmp 0x435cc
movl -0x90c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x90c(%rbp)
jmp 0x434df
movl $0x0, -0x93c(%rbp)
movslq -0x93c(%rbp), %rax
movq %rax, -0xca8(%rbp)
leaq -0x8d8(%rbp), %rdi
callq 0x10740
movq %rax, %rcx
movq -0xca8(%rbp), %rax
cmpq %rcx, %rax
jae 0x436e8
movslq -0x93c(%rbp), %rsi
leaq -0x8d8(%rbp), %rdi
callq 0x10b10
movq %rax, %rsi
leaq -0x968(%rbp), %rdi
callq 0x8250
jmp 0x4363b
leaq -0x968(%rbp), %rdi
callq 0xf4f0
movsd %xmm0, -0xcb0(%rbp)
jmp 0x43651
leaq -0x968(%rbp), %rdi
callq 0x8c08
movsd -0xcb0(%rbp), %xmm0
movsd %xmm0, -0x948(%rbp)
movsd -0x948(%rbp), %xmm0
callq 0x44670
movb %al, -0xcb1(%rbp)
jmp 0x43682
movb -0xcb1(%rbp), %al
testb $0x1, %al
jne 0x436d2
jmp 0x4368e
leaq -0x548(%rbp), %rdi
movl $0x2, %esi
callq 0x39e80
movq %rax, %rdi
leaq -0x948(%rbp), %rsi
callq 0x10f70
jmp 0x436b0
jmp 0x436d2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x968(%rbp), %rdi
callq 0x8c08
jmp 0x43711
jmp 0x436d4
movl -0x93c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x93c(%rbp)
jmp 0x435ea
leaq -0x8d8(%rbp), %rdi
callq 0x10760
leaq -0x8c0(%rbp), %rdi
callq 0x10760
leaq -0x8a8(%rbp), %rdi
callq 0x10760
jmp 0x437a1
leaq -0x8d8(%rbp), %rdi
callq 0x10760
leaq -0x8c0(%rbp), %rdi
callq 0x10760
leaq -0x8a8(%rbp), %rdi
callq 0x10760
jmp 0x437af
leaq -0x980(%rbp), %rdi
leaq -0x848(%rbp), %rsi
callq 0x11fc0
jmp 0x4374c
movq 0x7b89d(%rip), %rsi     # 0xbeff0
leaq -0x980(%rbp), %rdi
movl $0x9, %edx
movl $0x1, %ecx
callq 0x11eb0
jmp 0x4376b
leaq -0x980(%rbp), %rdi
callq 0x10760
movl $0x1, %edi
callq 0x86e0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x980(%rbp), %rdi
callq 0x10760
jmp 0x437af
leaq -0x848(%rbp), %rdi
callq 0x10760
jmp 0x437c9
leaq -0x848(%rbp), %rdi
callq 0x10760
jmp 0x43f2e
movb $0x1, -0x481(%rbp)
jmp 0x437df
jmp 0x437cb
movl -0x82c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x82c(%rbp)
jmp 0x4318c
testb $0x1, -0x481(%rbp)
jne 0x43df7
leaq -0x6e0(%rbp), %rdi
callq 0x37c00
jmp 0x437fa
jmp 0x43a11
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
movl -0x8c(%rbp), %eax
movl $0x1, %ecx
cmpl %ecx, %eax
jne 0x43f2e
movq -0x88(%rbp), %rdi
callq 0x8220
movq %rax, -0x988(%rbp)
movl -0x48c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x48c(%rbp)
cmpl $0xa, -0x48c(%rbp)
jg 0x439a5
movq -0x988(%rbp), %rsi
movq 0x7b78f(%rip), %rdi     # 0xbeff0
callq 0x8590
movq %rax, -0xcc0(%rbp)
jmp 0x4386f
movq -0xcc0(%rbp), %rdi
movq 0x7b6e3(%rip), %rsi     # 0xbef60
callq 0x85f0
jmp 0x43884
movq 0x7b765(%rip), %rdi     # 0xbeff0
leaq 0x45d24(%rip), %rsi     # 0x895b6
callq 0x8590
movq %rax, -0xcc8(%rbp)
jmp 0x438a0
movq -0xcc8(%rbp), %rdi
leaq -0x440(%rbp), %rsi
callq 0x8520
movq %rax, -0xcd0(%rbp)
jmp 0x438bc
movq -0xcd0(%rbp), %rdi
leaq 0x45c45(%rip), %rsi     # 0x8950f
callq 0x8590
movq %rax, -0xcd8(%rbp)
jmp 0x438d8
movq -0xcd8(%rbp), %rdi
leaq -0x460(%rbp), %rsi
callq 0x8520
movq %rax, -0xce0(%rbp)
jmp 0x438f4
movq -0xce0(%rbp), %rdi
leaq 0x45c0d(%rip), %rsi     # 0x8950f
callq 0x8590
movq %rax, -0xce8(%rbp)
jmp 0x43910
movq -0xce8(%rbp), %rdi
leaq -0x480(%rbp), %rsi
callq 0x8520
movq %rax, -0xcf0(%rbp)
jmp 0x4392c
movq -0xcf0(%rbp), %rdi
movq 0x7b626(%rip), %rsi     # 0xbef60
callq 0x85f0
jmp 0x43941
movq 0x7b6a8(%rip), %rdi     # 0xbeff0
leaq 0x45c93(%rip), %rsi     # 0x895e2
callq 0x8590
movq %rax, -0xcf8(%rbp)
jmp 0x4395d
movq -0xcf8(%rbp), %rdi
movq 0x7b5f5(%rip), %rsi     # 0xbef60
callq 0x85f0
jmp 0x43972
movq 0x7b677(%rip), %rdi     # 0xbeff0
movq 0x7b5e0(%rip), %rsi     # 0xbef60
callq 0x85f0
jmp 0x43987
jmp 0x439a5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
callq 0x8950
jmp 0x43f2e
leaq 0x479bd(%rip), %rdi     # 0x8b369
movq %rdi, -0xd00(%rbp)
callq 0x8090
movq -0xd00(%rbp), %rdi
movsd %xmm0, -0xa48(%rbp)
fldl -0xa48(%rbp)
fstpt -0x6b0(%rbp)
callq 0x8090
movq -0xd00(%rbp), %rdi
movsd %xmm0, -0xa50(%rbp)
fldl -0xa50(%rbp)
fstpt -0x6a0(%rbp)
callq 0x8090
movsd %xmm0, -0xa58(%rbp)
fldl -0xa58(%rbp)
fstpt -0x690(%rbp)
callq 0x8950
leaq -0x9a0(%rbp), %rdi
movq %rdi, -0xd08(%rbp)
callq 0x11d80
movq -0xd08(%rbp), %rdi
leaq -0x440(%rbp), %rsi
callq 0x11d10
jmp 0x43a39
leaq -0x9a0(%rbp), %rdi
leaq -0x460(%rbp), %rsi
callq 0x11d10
jmp 0x43a4e
leaq -0x9a0(%rbp), %rdi
leaq -0x480(%rbp), %rsi
callq 0x11d10
jmp 0x43a63
leaq -0x6e0(%rbp), %rdi
callq 0x37d60
jmp 0x43a71
movl -0x4e4(%rbp), %r9d
movzbl -0x482(%rbp), %ecx
andl $0x1, %ecx
leaq -0x9b8(%rbp), %rdi
leaq -0x6e0(%rbp), %rsi
leaq -0x9a0(%rbp), %rdx
xorl %r8d, %r8d
callq 0x37e70
jmp 0x43aa1
leaq -0x9d0(%rbp), %rdi
leaq -0x9b8(%rbp), %rsi
callq 0x11fc0
jmp 0x43ab6
movq -0x380(%rbp), %rsi
leaq -0x9d0(%rbp), %rdi
movl $0x9, %edx
movl $0x1, %ecx
callq 0x11eb0
jmp 0x43ad5
leaq -0x9d0(%rbp), %rdi
callq 0x10760
leaq -0x6e0(%rbp), %rdi
callq 0x39430
jmp 0x43aef
movl -0x4e0(%rbp), %r9d
movzbl -0x482(%rbp), %ecx
andl $0x1, %ecx
leaq -0x9e8(%rbp), %rdi
leaq -0x6e0(%rbp), %rsi
leaq -0x9a0(%rbp), %rdx
xorl %r8d, %r8d
callq 0x37e70
jmp 0x43b1f
leaq -0xa00(%rbp), %rdi
leaq -0x9e8(%rbp), %rsi
callq 0x11fc0
jmp 0x43b34
movq -0x3b0(%rbp), %rsi
leaq -0xa00(%rbp), %rdi
movl $0x9, %edx
movl $0x1, %ecx
callq 0x11eb0
jmp 0x43b53
leaq -0xa00(%rbp), %rdi
callq 0x10760
leaq 0x7c33a(%rip), %rdi     # 0xbfea0
leaq 0x477fc(%rip), %rsi     # 0x8b369
callq 0x22410
movb %al, -0xd09(%rbp)
jmp 0x43b7a
movb -0xd09(%rbp), %al
testb $0x1, %al
jne 0x43b89
jmp 0x43da8
leaq -0x338(%rbp), %rdi
leaq -0x440(%rbp), %rsi
callq 0x116a0
movq %rax, -0xd18(%rbp)
jmp 0x43ba5
movq -0xd18(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x115a0
movl (%rax), %eax
movl %eax, -0xa04(%rbp)
leaq -0x338(%rbp), %rdi
leaq -0x460(%rbp), %rsi
callq 0x116a0
movq %rax, -0xd20(%rbp)
jmp 0x43bd9
movq -0xd20(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x115a0
movl (%rax), %eax
movl %eax, -0xa08(%rbp)
leaq -0x338(%rbp), %rdi
leaq -0x480(%rbp), %rsi
callq 0x116a0
movq %rax, -0xd28(%rbp)
jmp 0x43c0d
movq -0xd28(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x115a0
movl (%rax), %eax
movl %eax, -0xa0c(%rbp)
movl -0xa04(%rbp), %edx
movl -0xa08(%rbp), %ecx
movl -0xa0c(%rbp), %r8d
leaq -0x6e0(%rbp), %rdi
leaq -0x350(%rbp), %rsi
callq 0x395e0
movl %eax, -0xd2c(%rbp)
jmp 0x43c53
movl -0xd2c(%rbp), %eax
movl %eax, -0x4e8(%rbp)
movl -0x4e8(%rbp), %r9d
movzbl -0x482(%rbp), %ecx
andl $0x1, %ecx
leaq -0xa28(%rbp), %rdi
leaq -0x6e0(%rbp), %rsi
leaq -0x9a0(%rbp), %rdx
xorl %r8d, %r8d
callq 0x37e70
jmp 0x43c8f
leaq -0xa40(%rbp), %rdi
leaq -0xa28(%rbp), %rsi
callq 0x11fc0
jmp 0x43ca4
movq -0x308(%rbp), %rsi
leaq -0xa40(%rbp), %rdi
movl $0x9, %edx
movl $0x1, %ecx
callq 0x11eb0
jmp 0x43cc3
leaq -0xa40(%rbp), %rdi
callq 0x10760
leaq -0xa28(%rbp), %rdi
callq 0x10760
jmp 0x43da8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x43de6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x43dda
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x9d0(%rbp), %rdi
callq 0x10760
jmp 0x43dda
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x43dce
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0xa00(%rbp), %rdi
callq 0x10760
jmp 0x43dce
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x43d9a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0xa40(%rbp), %rdi
callq 0x10760
leaq -0xa28(%rbp), %rdi
callq 0x10760
jmp 0x43dce
leaq -0x9e8(%rbp), %rdi
callq 0x10760
leaq -0x9b8(%rbp), %rdi
callq 0x10760
leaq -0x9a0(%rbp), %rdi
callq 0x10760
jmp 0x43df7
leaq -0x9e8(%rbp), %rdi
callq 0x10760
leaq -0x9b8(%rbp), %rdi
callq 0x10760
leaq -0x9a0(%rbp), %rdi
callq 0x10760
jmp 0x43f2e
movl $0x0, -0x6ec(%rbp)
leaq -0x6e0(%rbp), %rdi
callq 0x36fe0
movl -0x6ec(%rbp), %eax
movl %eax, -0xd30(%rbp)
testl %eax, %eax
je 0x43e2e
jmp 0x43e1f
movl -0xd30(%rbp), %eax
subl $0x5, %eax
je 0x43e40
jmp 0x43e2c
jmp 0x43e30
jmp 0x43e30
movb -0x481(%rbp), %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x42838
cmpl $0xa, -0x48c(%rbp)
jle 0x43f3f
movq 0x7b19c(%rip), %rdi     # 0xbeff0
leaq 0x446d9(%rip), %rsi     # 0x88534
callq 0x8590
movq %rax, -0xd38(%rbp)
jmp 0x43e69
movq -0xd38(%rbp), %rdi
movq 0x7b0e9(%rip), %rsi     # 0xbef60
callq 0x85f0
jmp 0x43e7e
movq 0x7b16b(%rip), %rdi     # 0xbeff0
leaq 0x457eb(%rip), %rsi     # 0x89677
callq 0x8590
movq %rax, -0xd40(%rbp)
jmp 0x43e9a
movq -0xd40(%rbp), %rdi
movl -0x48c(%rbp), %esi
callq 0x8a10
movq %rax, -0xd48(%rbp)
jmp 0x43eb5
movq -0xd48(%rbp), %rdi
leaq 0x45823(%rip), %rsi     # 0x896e6
callq 0x8590
movq %rax, -0xd50(%rbp)
jmp 0x43ed1
movq -0xd50(%rbp), %rdi
movq 0x7b081(%rip), %rsi     # 0xbef60
callq 0x85f0
jmp 0x43ee6
movq 0x7b103(%rip), %rdi     # 0xbeff0
leaq 0x46bac(%rip), %rsi     # 0x8aaa0
callq 0x8590
movq %rax, -0xd58(%rbp)
jmp 0x43f02
movq -0xd58(%rbp), %rdi
movq 0x7b050(%rip), %rsi     # 0xbef60
callq 0x85f0
jmp 0x43f17
movq 0x7b0d2(%rip), %rdi     # 0xbeff0
movq 0x7b03b(%rip), %rsi     # 0xbef60
callq 0x85f0
jmp 0x43f2c
jmp 0x43f3f
leaq -0x6e0(%rbp), %rdi
callq 0x36fe0
jmp 0x43ff6
movl $0x1, -0x6ec(%rbp)
leaq -0x4c8(%rbp), %rdi
callq 0x8c08
leaq -0x4a8(%rbp), %rdi
callq 0x10760
leaq -0x480(%rbp), %rdi
callq 0x8c08
leaq -0x460(%rbp), %rdi
callq 0x8c08
leaq -0x440(%rbp), %rdi
callq 0x8c08
leaq -0x420(%rbp), %rdi
callq 0x10930
leaq -0x408(%rbp), %rdi
callq 0x10930
leaq -0x3f0(%rbp), %rdi
callq 0x10930
leaq -0x350(%rbp), %rdi
callq 0x11a00
leaq -0x338(%rbp), %rdi
callq 0x254a0
leaq -0xc0(%rbp), %rdi
callq 0x44690
leaq -0xa8(%rbp), %rdi
callq 0x44690
leaq -0x58(%rbp), %rdi
callq 0x8c08
leaq -0x38(%rbp), %rdi
callq 0x8c08
xorl %eax, %eax
addq $0xd60, %rsp            # imm = 0xD60
popq %rbp
retq
leaq -0x4c8(%rbp), %rdi
callq 0x8c08
leaq -0x4a8(%rbp), %rdi
callq 0x10760
leaq -0x480(%rbp), %rdi
callq 0x8c08
leaq -0x460(%rbp), %rdi
callq 0x8c08
leaq -0x440(%rbp), %rdi
callq 0x8c08
leaq -0x420(%rbp), %rdi
callq 0x10930
leaq -0x408(%rbp), %rdi
callq 0x10930
leaq -0x3f0(%rbp), %rdi
callq 0x10930
leaq -0x350(%rbp), %rdi
callq 0x11a00
leaq -0x338(%rbp), %rdi
callq 0x254a0
leaq -0xc0(%rbp), %rdi
callq 0x44690
leaq -0xa8(%rbp), %rdi
callq 0x44690
leaq -0x58(%rbp), %rdi
callq 0x8c08
leaq -0x38(%rbp), %rdi
callq 0x8c08
movq -0x88(%rbp), %rdi
callq 0x8a50
nopw %cs:(%rax,%rax)