// File: /workspace/github_cpp_makefile_star2_O2/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
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x6b8, %rsp            # imm = 0x6B8
callq 0x1dcaf
leaq 0xe8(%rsp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
movb $0x0, (%rax)
leaq 0x1cb18(%rip), %rsi     # 0x38fd1
leaq 0x2a0(%rsp), %rdi
leaq 0x70(%rsp), %rdx
callq 0x8102
leaq 0x355c6(%rip), %rsi     # 0x51a98
leaq 0x355df(%rip), %rdx     # 0x51ab8
leaq 0x210(%rsp), %rdi
leaq 0x2a0(%rsp), %rcx
pushq $-0x1
popq %r8
movl %r8d, %r9d
callq 0x321e2
leaq 0x2a0(%rsp), %r14
movq %r14, %rdi
callq 0x7898
leaq 0x160(%rsp), %rax
andq $0x0, 0x10(%rax)
xorpd %xmm0, %xmm0
movapd %xmm0, (%rax)
leaq 0xa0(%rsp), %rax
movapd %xmm0, (%rax)
andq $0x0, 0x10(%rax)
xorl %ebx, %ebx
leaq 0x70(%rsp), %rbp
pushq $0x8
popq %r12
xorl %r15d, %r15d
movq 0x35548(%rip), %rax     # 0x51a88
movq 0x35539(%rip), %rsi     # 0x51a80
subq %rsi, %rax
sarq $0x5, %rax
cmpq %r15, %rax
jbe 0x1c797
addq %rbx, %rsi
movq %r14, %rdi
leaq 0x1ad3a(%rip), %rdx     # 0x3729e
callq 0x106e3
movq %r14, %rdi
callq 0xb6b9
movl %eax, %r13d
movq %r14, %rdi
callq 0x7898
testb %r13b, %r13b
je 0x1c5bc
movq 0x354f8(%rip), %rsi     # 0x51a80
addq %rbx, %rsi
movq %rbp, %rdi
leaq 0x1ad09(%rip), %rdx     # 0x3729e
callq 0x106e3
movq 0x70(%rsp), %rsi
movq %r14, %rdi
leaq 0xb8(%rsp), %rdx
callq 0x8102
movq %r14, %rdi
movl %r12d, %esi
callq 0xb59b
jmp 0x1c62a
movq 0x354bd(%rip), %rsi     # 0x51a80
addq %rbx, %rsi
movq %r14, %rdi
leaq 0x1c124(%rip), %rdx     # 0x386f4
callq 0x106e3
movq %r14, %rdi
callq 0xb6b9
movl %eax, %r13d
movq %r14, %rdi
callq 0x7898
testb %r13b, %r13b
je 0x1d756
movq 0x35488(%rip), %rsi     # 0x51a80
addq %rbx, %rsi
movq %rbp, %rdi
leaq 0x1c0ef(%rip), %rdx     # 0x386f4
callq 0x106e3
movq 0x70(%rsp), %rsi
movq %r14, %rdi
leaq 0xb8(%rsp), %rdx
callq 0x8102
movq %r14, %rdi
movl %r12d, %esi
callq 0xb59b
movq %rax, 0x140(%rsp)
movq %r14, %rdi
callq 0x7898
movq %rbp, %rdi
callq 0x7898
leaq 0xa0(%rsp), %rdi
leaq 0x140(%rsp), %rsi
callq 0x1dfbe
movq 0x35422(%rip), %rsi     # 0x51a80
addq %rbx, %rsi
movq %r14, %rdi
leaq 0x1ac40(%rip), %rdx     # 0x372ab
callq 0x106e3
movq %r14, %rdi
callq 0xb6b9
movl %eax, %r13d
movq %r14, %rdi
callq 0x7898
testb %r13b, %r13b
je 0x1c6c3
movq 0x353f1(%rip), %rsi     # 0x51a80
addq %rbx, %rsi
movq %rbp, %rdi
leaq 0x1ac0f(%rip), %rdx     # 0x372ab
callq 0x106e3
movq 0x70(%rsp), %rsi
movq %r14, %rdi
leaq 0x180(%rsp), %rdx
callq 0x8102
movq %r14, %rdi
movl %r12d, %esi
callq 0xb59b
jmp 0x1c731
movq 0x353b6(%rip), %rsi     # 0x51a80
addq %rbx, %rsi
movq %r14, %rdi
leaq 0x1c064(%rip), %rdx     # 0x3873b
callq 0x106e3
movq %r14, %rdi
callq 0xb6b9
movl %eax, %r13d
movq %r14, %rdi
callq 0x7898
testb %r13b, %r13b
je 0x1d7e1
movq 0x35381(%rip), %rsi     # 0x51a80
addq %rbx, %rsi
movq %rbp, %rdi
leaq 0x1c02f(%rip), %rdx     # 0x3873b
callq 0x106e3
movq 0x70(%rsp), %rsi
movq %r14, %rdi
leaq 0x180(%rsp), %rdx
callq 0x8102
movq %r14, %rdi
movl %r12d, %esi
callq 0xb59b
movq %rax, 0xb8(%rsp)
movq %r14, %rdi
callq 0x7898
movq %rbp, %rdi
callq 0x7898
leaq 0x160(%rsp), %rdi
leaq 0xb8(%rsp), %rsi
callq 0x1dfbe
movq 0x34883(%rip), %rdi     # 0x50fe8
leaq 0x1c009(%rip), %rsi     # 0x38775
callq 0x7400
movq 0x35308(%rip), %rsi     # 0x51a80
addq %rbx, %rsi
movq %rax, %rdi
callq 0x73c0
movq %rax, %rdi
callq 0x71e0
incq %r15
addq $0x20, %rbx
jmp 0x1c539
leaq 0x78(%rsp), %rax
andl $0x0, (%rax)
andq $0x0, 0x8(%rax)
movq %rax, 0x10(%rax)
movq %rax, 0x18(%rax)
andq $0x0, 0x20(%rax)
xorpd %xmm0, %xmm0
movapd %xmm0, 0x1a0(%rsp)
andq $0x0, 0x1b0(%rsp)
leaq 0x3530a(%rip), %rdi     # 0x51ad8
leaq 0x1c7fc(%rip), %rsi     # 0x38fd1
callq 0x117d6
testb %al, %al
je 0x1c88a
movl $0x208, %edi            # imm = 0x208
callq 0x7410
movq %rax, %rbx
movq 0x352e2(%rip), %rsi     # 0x51ad8
pushq $0x8
popq %rdx
movq %rax, %rdi
callq 0x77a0
movq (%rbx), %rax
movq -0x18(%rax), %rax
cmpl $0x0, 0x20(%rbx,%rax)
jne 0x1d883
movl $0x200, %edi            # imm = 0x200
callq 0x7410
movq %rax, 0x30(%rsp)
leaq 0x1bf5a(%rip), %rdx     # 0x38783
leaq 0x2a0(%rsp), %rdi
leaq 0x210(%rsp), %rsi
callq 0x106e3
leaq 0x2a0(%rsp), %rsi
pushq $0x10
popq %rdx
movq 0x30(%rsp), %rdi
callq 0x7810
leaq 0x2a0(%rsp), %rdi
callq 0x7898
leaq 0xd8(%rsp), %rsi
movq %rbx, %rdi
callq 0x7090
leaq 0xd8(%rsp), %rdi
leaq 0x70(%rsp), %rsi
leaq 0x1a0(%rsp), %rdx
callq 0x3262c
movl $0x200, %edi            # imm = 0x200
callq 0x7410
movq %rax, 0x40(%rsp)
leaq 0x1bef6(%rip), %rdx     # 0x38796
leaq 0x2a0(%rsp), %rdi
leaq 0x210(%rsp), %rsi
callq 0x106e3
leaq 0x2a0(%rsp), %rsi
pushq $0x10
popq %rdx
movq 0x40(%rsp), %rdi
callq 0x7810
leaq 0x2a0(%rsp), %rdi
callq 0x7898
movl $0x200, %edi            # imm = 0x200
callq 0x7410
movq %rax, 0x38(%rsp)
leaq 0x1bebc(%rip), %rdx     # 0x387a9
leaq 0x2a0(%rsp), %rdi
leaq 0x210(%rsp), %rsi
callq 0x106e3
leaq 0x2a0(%rsp), %rsi
pushq $0x10
popq %rdx
movq 0x38(%rsp), %rdi
callq 0x7810
leaq 0x2a0(%rsp), %rdi
callq 0x7898
andq $0x0, 0x280(%rsp)
andq $0x0, 0x260(%rsp)
andq $0x0, 0x240(%rsp)
leaq 0x150(%rsp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
xorpd %xmm0, %xmm0
xorl %ecx, %ecx
movb %cl, (%rax)
leaq 0xc8(%rsp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
movapd %xmm0, 0x270(%rsp)
movapd %xmm0, 0x250(%rsp)
movb %cl, (%rax)
leaq 0x190(%rsp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
movapd %xmm0, 0x230(%rsp)
movb %cl, (%rax)
movq 0xa0(%rsp), %rax
movq (%rax), %rdi
leaq 0xd8(%rsp), %rsi
callq 0x7090
leaq 0x1d8(%rsp), %rdi
leaq 0xd8(%rsp), %rsi
pushq $0x9
popq %rdx
callq 0x88f1
movq 0x1e0(%rsp), %rax
subq 0x1d8(%rsp), %rax
xorl %edx, %edx
movq %rax, 0x50(%rsp)
cmpq $0x180, %rax            # imm = 0x180
sete %dl
leaq 0x1f0(%rsp), %rdi
xorl %esi, %esi
xorl %ecx, %ecx
callq 0x32108
leaq 0x1f0(%rsp), %rsi
movq 0x40(%rsp), %rdi
callq 0x73c0
movq %rax, %rdi
callq 0x71e0
leaq 0x1f0(%rsp), %rsi
movq 0x38(%rsp), %rdi
callq 0x73c0
movq %rax, %rdi
callq 0x71e0
leaq 0x350a3(%rip), %rdi     # 0x51ad8
leaq 0x1c595(%rip), %rsi     # 0x38fd1
callq 0x117d6
testb %al, %al
je 0x1ca5f
leaq 0x1f0(%rsp), %rsi
movq 0x30(%rsp), %rdi
callq 0x73c0
movq %rax, %rdi
callq 0x71e0
movq 0xa0(%rsp), %rax
movq (%rax), %rdi
xorl %ebx, %ebx
xorl %esi, %esi
xorl %edx, %edx
callq 0x7580
leaq 0xd8(%rsp), %r14
leaq 0x678(%rsp), %r12
leaq 0x68(%rsp), %r13
leaq 0x658(%rsp), %r15
leaq 0x638(%rsp), %rbp
movq $0x0, 0x48(%rsp)
movl $0x0, 0x2c(%rsp)
leaq 0x2a0(%rsp), %rdi
callq 0x189e6
incl %ebx
movq %rbx, 0x58(%rsp)
movl %ebx, %eax
xorl %edx, %edx
movl $0x2710, %ecx           # imm = 0x2710
divl %ecx
testl %edx, %edx
jne 0x1cb05
movq 0x34513(%rip), %rdi     # 0x50fe8
leaq 0x1a19f(%rip), %rsi     # 0x36c7b
callq 0x7400
movq %rax, %rdi
movq 0x58(%rsp), %rsi
callq 0x7710
movq %rax, %rdi
leaq 0x1aa76(%rip), %rsi     # 0x3756e
callq 0x7400
movq %rax, %rdi
callq 0x71e0
movl 0x34995(%rip), %eax     # 0x514a0
cmpl $-0x1, %eax
movq 0x58(%rsp), %rcx
je 0x1cb5a
cmpl %eax, %ecx
jge 0x1cb4c
xorl %ebx, %ebx
movq 0xa0(%rsp), %rax
movq 0xa8(%rsp), %rcx
subq %rax, %rcx
sarq $0x3, %rcx
cmpq %rbx, %rcx
jbe 0x1ced1
movq (%rax,%rbx,8), %rdi
movq %r14, %rsi
callq 0x7090
incq %rbx
jmp 0x1cb1b
addl 0x34952(%rip), %eax     # 0x514a4
cmpl %eax, %ecx
jge 0x1d42a
xorl %r14d, %r14d
movq 0xa0(%rsp), %rax
movq 0xa8(%rsp), %rcx
subq %rax, %rcx
sarq $0x3, %rcx
cmpq %r14, %rcx
jbe 0x1cf0b
movq (%rax,%r14,8), %rdi
leaq 0xd8(%rsp), %rsi
callq 0x7090
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
testb $0x5, 0x20(%rax,%rcx)
jne 0x1cf04
movq %rsp, %rdi
leaq 0xd8(%rsp), %rsi
pushq $0x9
popq %rdx
callq 0x88f1
movq (%rsp), %rsi
movq 0x8(%rsp), %rax
subq %rsi, %rax
sarq $0x5, %rax
cmpq $0x6, %rax
je 0x1cbd3
cmpq $0xc, %rax
jne 0x1d737
testq %r14, %r14
je 0x1cc28
leaq 0x140(%rsp), %rdi
callq 0xd5bf
testb %al, %al
je 0x1d70f
movq (%rsp), %rsi
addq $0x20, %rsi
leaq 0xb8(%rsp), %rdi
callq 0xd5bf
testb %al, %al
je 0x1d706
movq (%rsp), %rsi
addq $0x40, %rsi
leaq 0x180(%rsp), %rdi
callq 0xd5bf
testb %al, %al
jne 0x1cc5f
jmp 0x1d718
leaq 0x140(%rsp), %rdi
callq 0x7240
movq (%rsp), %rsi
addq $0x20, %rsi
leaq 0xb8(%rsp), %rdi
callq 0x7240
movq (%rsp), %rsi
addq $0x40, %rsi
leaq 0x180(%rsp), %rdi
callq 0x7240
movq (%rsp), %rsi
addq $0x60, %rsi
leaq 0x5d0(%rsp), %rdi
callq 0x7590
leaq 0x5d0(%rsp), %rbx
movq %rbx, %rdi
callq 0xaf68
addsd 0x2b0(%rsp), %xmm0
movsd %xmm0, 0x2b0(%rsp)
movq %rbx, %rdi
callq 0x7898
movq (%rsp), %rsi
subq $-0x80, %rsi
leaq 0x5b0(%rsp), %rdi
callq 0x7590
leaq 0x5b0(%rsp), %rbx
movq %rbx, %rdi
callq 0xaf68
addsd 0x2a8(%rsp), %xmm0
movsd %xmm0, 0x2a8(%rsp)
movq %rbx, %rdi
callq 0x7898
movq (%rsp), %rsi
movl $0xa0, %eax
addq %rax, %rsi
leaq 0x590(%rsp), %rdi
callq 0x7590
leaq 0x590(%rsp), %rbx
movq %rbx, %rdi
callq 0xaf68
addsd 0x2a0(%rsp), %xmm0
movsd %xmm0, 0x2a0(%rsp)
movq %rbx, %rdi
callq 0x7898
cmpq $0x180, 0x50(%rsp)      # imm = 0x180
jne 0x1cec1
movq (%rsp), %rsi
movl $0xc0, %eax
addq %rax, %rsi
leaq 0x570(%rsp), %rdi
callq 0x7590
leaq 0x570(%rsp), %rbx
movq %rbx, %rdi
callq 0xaf68
addsd 0x338(%rsp), %xmm0
movsd %xmm0, 0x338(%rsp)
movq %rbx, %rdi
callq 0x7898
movq (%rsp), %rsi
movl $0xe0, %eax
addq %rax, %rsi
leaq 0x550(%rsp), %rdi
callq 0x7590
leaq 0x550(%rsp), %rbx
movq %rbx, %rdi
callq 0xaf68
addsd 0x368(%rsp), %xmm0
movsd %xmm0, 0x368(%rsp)
movq %rbx, %rdi
callq 0x7898
movq (%rsp), %rsi
movl $0x100, %eax            # imm = 0x100
addq %rax, %rsi
leaq 0x530(%rsp), %rdi
callq 0x7590
leaq 0x530(%rsp), %rbx
movq %rbx, %rdi
callq 0xaf68
addsd 0x398(%rsp), %xmm0
movsd %xmm0, 0x398(%rsp)
movq %rbx, %rdi
callq 0x7898
movq (%rsp), %rsi
movl $0x120, %eax            # imm = 0x120
addq %rax, %rsi
leaq 0x510(%rsp), %rdi
callq 0x7590
leaq 0x510(%rsp), %rbx
movq %rbx, %rdi
callq 0xaf68
addsd 0x340(%rsp), %xmm0
movsd %xmm0, 0x340(%rsp)
movq %rbx, %rdi
callq 0x7898
movq (%rsp), %rsi
movl $0x140, %eax            # imm = 0x140
addq %rax, %rsi
leaq 0x4f0(%rsp), %rdi
callq 0x7590
leaq 0x4f0(%rsp), %rbx
movq %rbx, %rdi
callq 0xaf68
addsd 0x370(%rsp), %xmm0
movsd %xmm0, 0x370(%rsp)
movq %rbx, %rdi
callq 0x7898
movq (%rsp), %rsi
movl $0x160, %eax            # imm = 0x160
addq %rax, %rsi
leaq 0x4d0(%rsp), %rdi
callq 0x7590
leaq 0x4d0(%rsp), %rbx
movq %rbx, %rdi
callq 0xaf68
addsd 0x3a0(%rsp), %xmm0
movsd %xmm0, 0x3a0(%rsp)
movq %rbx, %rdi
callq 0x7898
movq %rsp, %rdi
callq 0xb80c
incq %r14
jmp 0x1cb5d
xorl %ebx, %ebx
movq 0x160(%rsp), %rax
movq 0x168(%rsp), %rcx
subq %rax, %rcx
sarq $0x3, %rcx
cmpq %rbx, %rcx
jbe 0x1d3fe
movq (%rax,%rbx,8), %rdi
movq %r14, %rsi
callq 0x7090
incq %rbx
jmp 0x1ced3
movb $0x1, %al
movq %rax, 0x48(%rsp)
xorl %edx, %edx
leaq 0xd8(%rsp), %r14
movq 0x160(%rsp), %rax
movq 0x168(%rsp), %rcx
subq %rax, %rcx
sarq $0x3, %rcx
cmpq %rdx, %rcx
jbe 0x1d191
movq %rdx, 0x60(%rsp)
movq (%rax,%rdx,8), %rdi
movq %r14, %rsi
callq 0x7090
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
testb $0x5, 0x20(%rax,%rcx)
jne 0x1d3f7
leaq 0x4b0(%rsp), %rdi
movq %r14, %rsi
callq 0x7590
leaq 0x698(%rsp), %r14
movq %r14, %rdi
leaq 0x1c056(%rip), %rsi     # 0x38fd0
leaq 0x128(%rsp), %rdx
callq 0x8102
movq %rsp, %rdi
leaq 0x4b0(%rsp), %rbx
movq %rbx, %rsi
movq %r14, %rdx
callq 0xb198
movq %r14, %rdi
callq 0x7898
movq %rbx, %rdi
callq 0x7898
movq (%rsp), %rsi
movq 0x8(%rsp), %rax
subq %rsi, %rax
cmpq $0x60, %rax
jne 0x1d6c7
leaq 0x128(%rsp), %rdi
pushq $0x2c
popq %rbx
movl %ebx, %edx
callq 0x88f1
leaq 0x110(%rsp), %rdi
leaq 0xf8(%rsp), %r14
movq (%rsp), %rsi
addq $0x20, %rsi
movl %ebx, %edx
callq 0x88f1
movq (%rsp), %rsi
addq $0x40, %rsi
movq %r14, %rdi
movl %ebx, %edx
callq 0x88f1
xorl %ebx, %ebx
xorl %r14d, %r14d
movq 0x128(%rsp), %rsi
movq 0x130(%rsp), %rax
subq %rsi, %rax
sarq $0x5, %rax
cmpq %r14, %rax
jbe 0x1d073
addq %rbx, %rsi
movq %r12, %rdi
callq 0x7590
movq %r12, %rdi
callq 0xaf68
movq %r12, %rdi
movsd %xmm0, 0x20(%rsp)
callq 0x7898
movsd 0x20(%rsp), %xmm0
movsd %xmm0, 0x68(%rsp)
ucomisd %xmm0, %xmm0
jp 0x1d06a
movq 0x438(%rsp), %rdi
movq %r13, %rsi
callq 0xb9de
incq %r14
addq $0x20, %rbx
jmp 0x1d00b
xorl %ebx, %ebx
xorl %r14d, %r14d
movq 0x110(%rsp), %rsi
movq 0x118(%rsp), %rax
subq %rsi, %rax
sarq $0x5, %rax
cmpq %r14, %rax
jbe 0x1d0e4
addq %rbx, %rsi
movq %r15, %rdi
callq 0x7590
movq %r15, %rdi
callq 0xaf68
movq %r15, %rdi
movsd %xmm0, 0x20(%rsp)
callq 0x7898
movsd 0x20(%rsp), %xmm0
movsd %xmm0, 0x68(%rsp)
ucomisd %xmm0, %xmm0
jp 0x1d0db
movq 0x438(%rsp), %rdi
addq $0x18, %rdi
movq %r13, %rsi
callq 0xb9de
incq %r14
addq $0x20, %rbx
jmp 0x1d078
xorl %ebx, %ebx
xorl %r14d, %r14d
movq 0xf8(%rsp), %rsi
movq 0x100(%rsp), %rax
subq %rsi, %rax
sarq $0x5, %rax
cmpq %r14, %rax
jbe 0x1d155
addq %rbx, %rsi
movq %rbp, %rdi
callq 0x7590
movq %rbp, %rdi
callq 0xaf68
movq %rbp, %rdi
movsd %xmm0, 0x20(%rsp)
callq 0x7898
movsd 0x20(%rsp), %xmm0
movsd %xmm0, 0x68(%rsp)
ucomisd %xmm0, %xmm0
jp 0x1d14c
movq 0x438(%rsp), %rdi
addq $0x30, %rdi
movq %r13, %rsi
callq 0xb9de
incq %r14
addq $0x20, %rbx
jmp 0x1d0e9
leaq 0xf8(%rsp), %rdi
callq 0xb80c
leaq 0x110(%rsp), %rdi
callq 0xb80c
leaq 0x128(%rsp), %rdi
callq 0xb80c
movq %rsp, %rdi
callq 0xb80c
movq 0x60(%rsp), %rdx
incq %rdx
jmp 0x1cf0d
testb $0x1, 0x48(%rsp)
jne 0x1d3fe
leaq 0x2a0(%rsp), %rdi
callq 0x195f6
xorpd %xmm0, %xmm0
movapd %xmm0, (%rsp)
andq $0x0, 0x10(%rsp)
movq %rsp, %rbx
movq %rbx, %rdi
leaq 0x140(%rsp), %rsi
callq 0xbdc2
movq %rbx, %rdi
leaq 0xb8(%rsp), %rsi
callq 0xbdc2
movq %rbx, %rdi
leaq 0x180(%rsp), %rsi
callq 0xbdc2
xorl %r14d, %r14d
cmpq $0x180, 0x50(%rsp)      # imm = 0x180
sete %r14b
leaq 0x2a0(%rsp), %rdi
callq 0x196da
movl 0x49c(%rsp), %r9d
movq %rbx, %rdx
leaq 0x128(%rsp), %rbx
movq %rbx, %rdi
leaq 0x2a0(%rsp), %rsi
movl %r14d, %ecx
xorl %r8d, %r8d
callq 0x1977c
leaq 0x620(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rsi
callq 0xbe66
movq %r14, %rdi
movq 0x40(%rsp), %rsi
pushq $0x9
popq %rdx
pushq $0x1
popq %rcx
callq 0xbdee
movq %r14, %rdi
xorl %r14d, %r14d
cmpq $0x180, 0x50(%rsp)      # imm = 0x180
sete %r14b
callq 0xb80c
leaq 0x2a0(%rsp), %rdi
callq 0x1a368
movl 0x4a0(%rsp), %r9d
leaq 0x110(%rsp), %rdi
leaq 0x2a0(%rsp), %rsi
movq %rsp, %rdx
movl %r14d, %ecx
xorl %r8d, %r8d
callq 0x1977c
leaq 0x608(%rsp), %rbx
movq %rbx, %rdi
leaq 0x110(%rsp), %rsi
callq 0xbe66
leaq 0xd8(%rsp), %r14
movq %rbx, %rdi
movq 0x38(%rsp), %rsi
pushq $0x9
popq %rdx
pushq $0x1
popq %rcx
callq 0xbdee
movq %rbx, %rdi
callq 0xb80c
leaq 0x347f4(%rip), %rdi     # 0x51ad8
leaq 0x1bce6(%rip), %rsi     # 0x38fd1
callq 0x117d6
testb %al, %al
je 0x1d3d3
leaq 0x70(%rsp), %rbx
movq %rbx, %rdi
leaq 0x140(%rsp), %rsi
callq 0xbbee
movq (%rax), %rax
movl (%rax), %eax
movl %eax, 0x20(%rsp)
movq %rbx, %rdi
leaq 0xb8(%rsp), %rsi
callq 0xbbee
movq (%rax), %rax
movl (%rax), %eax
movl %eax, 0x60(%rsp)
movq %rbx, %rdi
leaq 0x180(%rsp), %rsi
callq 0xbbee
leaq 0x2a0(%rsp), %rbx
movq (%rax), %rax
movl (%rax), %r8d
movq %rbx, %rdi
leaq 0x1a0(%rsp), %rsi
movl 0x20(%rsp), %edx
movl 0x60(%rsp), %ecx
callq 0x1a424
xorl %ecx, %ecx
cmpq $0x180, 0x50(%rsp)      # imm = 0x180
sete %cl
movl %eax, 0x498(%rsp)
movq %rbx, %rsi
leaq 0xf8(%rsp), %rdi
movq %rsp, %rdx
xorl %r8d, %r8d
movl %eax, %r9d
callq 0x1977c
leaq 0x5f0(%rsp), %rbx
movq %rbx, %rdi
leaq 0xf8(%rsp), %rsi
callq 0xbe66
movq %rbx, %rdi
movq 0x30(%rsp), %rsi
pushq $0x9
popq %rdx
pushq $0x1
popq %rcx
callq 0xbdee
movq %rbx, %rdi
callq 0xb80c
leaq 0xf8(%rsp), %rdi
callq 0xb80c
leaq 0x110(%rsp), %rdi
callq 0xb80c
leaq 0x128(%rsp), %rdi
callq 0xb80c
movq %rsp, %rdi
callq 0xb80c
jmp 0x1d3fe
movb $0x1, %al
movq %rax, 0x48(%rsp)
xorl %ebx, %ebx
leaq 0x2a0(%rsp), %rdi
callq 0x18caa
testb %bl, %bl
movq 0x58(%rsp), %rbx
jne 0x1d581
testb $0x1, 0x48(%rsp)
je 0x1caab
jmp 0x1d581
movq 0x33bb7(%rip), %rdi     # 0x50fe8
leaq 0x19ee8(%rip), %rsi     # 0x37320
callq 0x7400
movb $0x1, %bl
movq %rax, %rdi
callq 0x71e0
jmp 0x1d400
movq %rax, %r14
cmpl $0x1, %edx
jne 0x1dbe7
movq %r14, %rdi
callq 0x7190
cmpl $0x9, 0x2c(%rsp)
jg 0x1d50f
movq 0x33b79(%rip), %rdi     # 0x50fe8
movq %rax, %rsi
callq 0x7400
movq %rax, %rdi
callq 0x71e0
movq 0x33b62(%rip), %rdi     # 0x50fe8
leaq 0x19fb1(%rip), %rsi     # 0x3743e
callq 0x7400
movq %rax, %rdi
leaq 0x140(%rsp), %rsi
callq 0x73c0
movq %rax, %rdi
leaq 0x19eeb(%rip), %rsi     # 0x37397
callq 0x7400
movq %rax, %rdi
leaq 0xb8(%rsp), %rsi
callq 0x73c0
movq %rax, %rdi
leaq 0x19ecc(%rip), %rsi     # 0x37397
callq 0x7400
movq %rax, %rdi
leaq 0x180(%rsp), %rsi
callq 0x73c0
movq %rax, %rdi
callq 0x71e0
movq 0x33af9(%rip), %rdi     # 0x50fe8
leaq 0x19f74(%rip), %rsi     # 0x3746a
callq 0x7400
movq %rax, %rdi
callq 0x71e0
movq 0x33ade(%rip), %rdi     # 0x50fe8
callq 0x71e0
incl 0x2c(%rsp)
leaq 0x1bab7(%rip), %rbx     # 0x38fd1
movq %rbx, %rdi
callq 0x7060
movsd %xmm0, 0x1d0(%rsp)
fldl 0x1d0(%rsp)
fstpt 0x2d0(%rsp)
movq %rbx, %rdi
callq 0x7060
movsd %xmm0, 0x1c8(%rsp)
fldl 0x1c8(%rsp)
fstpt 0x2e0(%rsp)
movq %rbx, %rdi
callq 0x7060
movsd %xmm0, 0x1c0(%rsp)
fldl 0x1c0(%rsp)
fstpt 0x2f0(%rsp)
callq 0x76a0
jmp 0x1d1a9
movl 0x2c(%rsp), %ebx
cmpl $0xb, %ebx
jl 0x1d600
movq 0x33a57(%rip), %rdi     # 0x50fe8
leaq 0x18f94(%rip), %rsi     # 0x3652c
callq 0x7400
movq %rax, %rdi
callq 0x71e0
movq 0x33a3c(%rip), %rdi     # 0x50fe8
leaq 0x19f4c(%rip), %rsi     # 0x374ff
callq 0x7400
movq %rax, %rdi
movl %ebx, %esi
callq 0x7710
leaq 0x19fa5(%rip), %rsi     # 0x3756e
movq %rax, %rdi
callq 0x7400
movq %rax, %rdi
callq 0x71e0
movq 0x33a08(%rip), %rdi     # 0x50fe8
leaq 0x1b285(%rip), %rsi     # 0x3886c
callq 0x7400
movq %rax, %rdi
callq 0x71e0
movq 0x339ed(%rip), %rdi     # 0x50fe8
callq 0x71e0
leaq 0x1f0(%rsp), %rdi
callq 0x7898
leaq 0x1d8(%rsp), %rdi
callq 0xb80c
leaq 0x180(%rsp), %rdi
callq 0x7898
leaq 0xb8(%rsp), %rdi
callq 0x7898
leaq 0x140(%rsp), %rdi
callq 0x7898
leaq 0x230(%rsp), %rdi
callq 0xc17e
leaq 0x250(%rsp), %rdi
callq 0xc17e
leaq 0x270(%rsp), %rdi
callq 0xc17e
leaq 0x1a0(%rsp), %rdi
callq 0xc1b2
leaq 0x70(%rsp), %rdi
callq 0x131b8
leaq 0xa0(%rsp), %rdi
callq 0x1dfdc
leaq 0x160(%rsp), %rdi
callq 0x1dfdc
leaq 0x210(%rsp), %rdi
callq 0x7898
leaq 0xd8(%rsp), %rdi
callq 0x7898
xorl %eax, %eax
addq $0x6b8, %rsp            # imm = 0x6B8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x288(%rsp), %rdi
movq %rsp, %rsi
callq 0xbe66
movq 0x3390a(%rip), %rsi     # 0x50fe8
leaq 0x288(%rsp), %rdi
pushq $0x9
popq %rdx
pushq $0x1
popq %rcx
callq 0xbdee
leaq 0x288(%rsp), %rdi
callq 0xb80c
pushq $0x1
popq %rdi
callq 0x74f0
leaq 0x1b131(%rip), %rdi     # 0x3883e
jmp 0x1d71f
leaq 0x1b111(%rip), %rdi     # 0x38827
jmp 0x1d71f
leaq 0x1b136(%rip), %rdi     # 0x38855
leaq 0x1b0ce(%rip), %rsi     # 0x387f4
leaq 0x1b0d8(%rip), %rcx     # 0x38805
movl $0x88, %edx
callq 0x72b0
leaq 0x1b07e(%rip), %rdi     # 0x387bc
leaq 0x1b0af(%rip), %rsi     # 0x387f4
leaq 0x1b0b9(%rip), %rcx     # 0x38805
movl $0x83, %edx
callq 0x72b0
movq 0x3388b(%rip), %rdi     # 0x50fe8
leaq 0x1afa0(%rip), %rsi     # 0x38704
callq 0x7400
movq %rax, %r14
movq 0x3430d(%rip), %rsi     # 0x51a80
addq %rbx, %rsi
leaq 0x19b21(%rip), %rdx     # 0x3729e
leaq 0x2a0(%rsp), %rdi
callq 0x106e3
leaq 0x2a0(%rsp), %rsi
movq %r14, %rdi
callq 0x73c0
leaq 0x1af79(%rip), %rsi     # 0x3871a
movq %rax, %rdi
callq 0x7400
movq %rax, %r14
addq 0x342cd(%rip), %rbx     # 0x51a80
leaq 0x1af65(%rip), %rdx     # 0x3871f
leaq 0x70(%rsp), %rdi
movq %rbx, %rsi
callq 0x106e3
leaq 0x70(%rsp), %rsi
movq %r14, %rdi
callq 0x73c0
movq %rax, %rdi
callq 0x71e0
jmp 0x1d867
movq 0x33800(%rip), %rdi     # 0x50fe8
leaq 0x1af15(%rip), %rsi     # 0x38704
callq 0x7400
movq %rax, %r14
movq 0x34282(%rip), %rsi     # 0x51a80
addq %rbx, %rsi
leaq 0x19aa3(%rip), %rdx     # 0x372ab
leaq 0x2a0(%rsp), %rdi
callq 0x106e3
leaq 0x2a0(%rsp), %rsi
movq %r14, %rdi
callq 0x73c0
leaq 0x1aeee(%rip), %rsi     # 0x3871a
movq %rax, %rdi
callq 0x7400
movq %rax, %r14
addq 0x34242(%rip), %rbx     # 0x51a80
leaq 0x1af0d(%rip), %rdx     # 0x38752
leaq 0x70(%rsp), %rdi
movq %rbx, %rsi
callq 0x106e3
leaq 0x70(%rsp), %rsi
movq %r14, %rdi
callq 0x73c0
movq %rax, %rdi
callq 0x71e0
leaq 0x70(%rsp), %rdi
callq 0x7898
leaq 0x2a0(%rsp), %rdi
callq 0x7898
jmp 0x1d6fe
movq 0x3375e(%rip), %rdi     # 0x50fe8
leaq 0x193a0(%rip), %rsi     # 0x36c31
callq 0x7400
leaq 0x3423b(%rip), %rsi     # 0x51ad8
movq %rax, %rdi
callq 0x73c0
leaq 0x18fdc(%rip), %rsi     # 0x36888
movq %rax, %rdi
callq 0x7400
movq %rax, %rdi
callq 0x71e0
jmp 0x1d6fe
movq %rax, %r14
callq 0x76a0
jmp 0x1dbe7
jmp 0x1d8d0
movq %rax, %r14
leaq 0x70(%rsp), %rdi
callq 0x7898
jmp 0x1da87
jmp 0x1da84
jmp 0x1da84
movq %rax, %r14
leaq 0x2a0(%rsp), %rdi
callq 0x7898
jmp 0x1d901
movq %rax, %r14
movl $0x200, %esi            # imm = 0x200
movq 0x30(%rsp), %rdi
jmp 0x1d971
movq %rax, %r14
movl $0x208, %esi            # imm = 0x208
movq %rbx, %rdi
jmp 0x1d971
movq %rax, %r14
jmp 0x1dc01
jmp 0x1d924
movq %rax, %r14
jmp 0x1dc0e
movq %rax, %r14
leaq 0x2a0(%rsp), %rdi
callq 0x7898
jmp 0x1d941
movq %rax, %r14
movl $0x200, %esi            # imm = 0x200
movq 0x38(%rsp), %rdi
jmp 0x1d971
jmp 0x1d9f7
movq %rax, %r14
leaq 0x2a0(%rsp), %rdi
callq 0x7898
jmp 0x1d967
movq %rax, %r14
movl $0x200, %esi            # imm = 0x200
movq 0x40(%rsp), %rdi
callq 0x7420
jmp 0x1dc5c
jmp 0x1d9f7
movq %rax, %r14
leaq 0x2a0(%rsp), %rdi
jmp 0x1dc95
movq %rax, %r14
jmp 0x1dc9a
movq %rax, %r14
leaq 0x5f0(%rsp), %rdi
callq 0xb80c
jmp 0x1dbb8
jmp 0x1dbb5
jmp 0x1db42
jmp 0x1db42
jmp 0x1db42
jmp 0x1db42
movq %rax, %r14
leaq 0x608(%rsp), %rdi
jmp 0x1dbc0
jmp 0x1db42
jmp 0x1db38
movq %rax, %r14
leaq 0x620(%rsp), %rdi
jmp 0x1dbcd
jmp 0x1db38
jmp 0x1db80
movq %rax, %r14
jmp 0x1dc5c
jmp 0x1da84
jmp 0x1da84
jmp 0x1db07
jmp 0x1db07
jmp 0x1db80
jmp 0x1db07
jmp 0x1db07
jmp 0x1da6b
jmp 0x1da4a
jmp 0x1da5c
jmp 0x1db07
jmp 0x1da84
jmp 0x1db07
jmp 0x1da4a
jmp 0x1da5c
jmp 0x1db07
jmp 0x1da4a
jmp 0x1da5c
jmp 0x1db07
jmp 0x1da84
jmp 0x1db07
movq %rax, %r14
leaq 0x2a0(%rsp), %rdi
callq 0x7898
jmp 0x1da5f
movq %rax, %r14
leaq 0x70(%rsp), %rdi
jmp 0x1da8f
jmp 0x1db07
movq %rax, %r14
jmp 0x1dbf4
jmp 0x1db7b
jmp 0x1da84
jmp 0x1db07
jmp 0x1db07
movq %rax, %r14
leaq 0x2a0(%rsp), %rdi
callq 0x7898
jmp 0x1dc73
jmp 0x1db07
movq %rax, %r14
leaq 0x288(%rsp), %rdi
jmp 0x1dbda
jmp 0x1db80
movq %rax, %r14
leaq 0x530(%rsp), %rdi
jmp 0x1db6c
movq %rax, %r14
leaq 0x550(%rsp), %rdi
jmp 0x1db6c
movq %rax, %r14
leaq 0x4d0(%rsp), %rdi
jmp 0x1db6c
movq %rax, %r14
leaq 0x4f0(%rsp), %rdi
jmp 0x1db6c
movq %rax, %r14
leaq 0x510(%rsp), %rdi
jmp 0x1db6c
movq %rax, %r14
leaq 0x570(%rsp), %rdi
jmp 0x1db6c
movq %rax, %r14
jmp 0x1dc73
movq %rax, %r14
leaq 0x698(%rsp), %rdi
callq 0x7898
jmp 0x1db24
movq %rax, %r14
leaq 0x4b0(%rsp), %rdi
callq 0x7898
jmp 0x1dbe7
jmp 0x1db80
movq %rax, %r14
jmp 0x1dbd2
jmp 0x1db7b
movq %rax, %r14
jmp 0x1dbc5
movq %rax, %r14
leaq 0x5d0(%rsp), %rdi
jmp 0x1db6c
movq %rax, %r14
leaq 0x590(%rsp), %rdi
jmp 0x1db6c
movq %rax, %r14
leaq 0x5b0(%rsp), %rdi
callq 0x7898
jmp 0x1dbdf
jmp 0x1db7b
jmp 0x1db7b
jmp 0x1db7b
jmp 0x1db7b
movq %rax, %r14
jmp 0x1dbe7
movq %rax, %r14
jmp 0x1dbdf
movq %rax, %r14
leaq 0x638(%rsp), %rdi
jmp 0x1dbaa
movq %rax, %r14
leaq 0x658(%rsp), %rdi
jmp 0x1dbaa
movq %rax, %r14
leaq 0x678(%rsp), %rdi
callq 0x7898
jmp 0x1dbb8
jmp 0x1dbb5
jmp 0x1dbb5
movq %rax, %r14
leaq 0xf8(%rsp), %rdi
callq 0xb80c
leaq 0x110(%rsp), %rdi
callq 0xb80c
leaq 0x128(%rsp), %rdi
callq 0xb80c
movq %rsp, %rdi
callq 0xb80c
leaq 0x2a0(%rsp), %rdi
callq 0x18caa
leaq 0x1f0(%rsp), %rdi
callq 0x7898
leaq 0x1d8(%rsp), %rdi
callq 0xb80c
leaq 0x180(%rsp), %rdi
callq 0x7898
leaq 0xb8(%rsp), %rdi
callq 0x7898
leaq 0x140(%rsp), %rdi
callq 0x7898
leaq 0x230(%rsp), %rdi
callq 0xc17e
leaq 0x250(%rsp), %rdi
callq 0xc17e
leaq 0x270(%rsp), %rdi
callq 0xc17e
leaq 0x1a0(%rsp), %rdi
callq 0xc1b2
leaq 0x70(%rsp), %rdi
callq 0x131b8
leaq 0xa0(%rsp), %rdi
callq 0x1dfdc
leaq 0x160(%rsp), %rdi
callq 0x1dfdc
leaq 0x210(%rsp), %rdi
callq 0x7898
leaq 0xd8(%rsp), %rdi
callq 0x7898
movq %r14, %rdi
callq 0x7750