// File: millanek[P]evo/evo_codingStats_from_alignment.cpp
// Function: getCodingStats(int, char**)
int getCodingStats(int argc, char** argv) {
    parseCodingStatsOptions(argc, argv);
    std::vector<string> allAligmentFiles; string statsFileName; string pcaVectorsFileName;
    
    std::vector<std::vector<std::string>> genomeWide_Dxy;
    if (opt::genomeWide_DxyMatrixFile != "") {
        std::ifstream* genomeWide_DxyMatrixFile = new std::ifstream(opt::genomeWide_DxyMatrixFile);
        string line;
        while (getline(*genomeWide_DxyMatrixFile, line)) {
            std::vector<string> thisIndDxyVec = split(line, '\t');
            genomeWide_Dxy.push_back(thisIndDxyVec);
        }
    }
    
    pNsets* sets;
    if (opt::pNgroupsFile != "") {
        std::ifstream* pNgroupsF = new std::ifstream(opt::pNgroupsFile);
        sets = new pNsets(pNgroupsF);
    } else {
        sets = new pNsets();
    }
    if (sets->initialised == true) {
        std::cerr << "Sets are initialised" << std::endl;
    }
    
    std::cerr << "Calculating gene coding statistics" << std::endl;
    
    if (opt::alignmentFile != "") {
        allAligmentFiles.push_back(opt::alignmentFile);
        // look at suffix
        size_t suffixPos = opt::alignmentFile.find_last_of('.');
        if (suffixPos !=  std::string::npos) {
            if (opt::alignmentFile.substr(suffixPos) == ".fa" || opt::alignmentFile.substr(suffixPos) == ".fasta") {
                statsFileName = stripExtension(opt::alignmentFile) + "_stats.txt";
                std::cerr << "for the gene: " << stripExtension(opt::alignmentFile) << std::endl;
            } else {
                statsFileName = opt::alignmentFile + "_stats.txt";
                std::cerr << "for the gene: " << opt::alignmentFile << std::endl;
            }
        }
    } else {
        std::ifstream* alignmentList = new std::ifstream(opt::alignmentListFile.c_str());
        statsFileName = stripExtension(opt::alignmentListFile) + "_stats.txt";
        pcaVectorsFileName = stripExtension(opt::alignmentListFile) + "_pcaVectors.txt";
        std::cerr << "for the genes in: " << opt::alignmentListFile << std::endl;
        std::string line;
        while (getline(*alignmentList, line)) {
            allAligmentFiles.push_back(line);
        }
    } 
      
    std::ofstream* statsFile = new std::ofstream(statsFileName.c_str());
    std::ofstream* pcaVectorsFile = new std::ofstream(pcaVectorsFileName.c_str());
    if (opt::ploidy == 'd') {
        if (opt::pNgroupsFile != "") {
            std::cout << "transcript" << "\t" << "ntLengh" << "\t" << "pN" << "\t" << "pS" << "\t" << "hetN" << "\t" << "hetS" << "\t" << "pNstdErr" << "\t" << "pSstdErr" << "\t" << "pNpSstdErr" << "\t" << "pNpSstdErrAllComparisons" << "\t" << "withinSet1pN" << "\t" << "withinSet2pN" << "\t" << "withinSet3pN"<< "\t" << "pNset1vsSet2" << "\t" << "pNset1andSet2vsSet3" << "\t" << "pNwithinSet1andSet2" << std::endl;
            *statsFile << "transcript" << "\t" << "ntLengh" << "\t" << "pN" << "\t" << "pS" << "\t" << "hetN" << "\t" << "hetS" << "\t" << "pNstdErr" << "\t" << "pSstdErr" << "\t" << "pNpSstdErr" << "\t" << "pNpSstdErrAllComparisons" << "\t" << "withinSet1pN" << "\t" << "withinSet2pN" << "\t" << "withinSet3pN"<< "\t" << "pNset1vsSet2" << "\t" << "pNset1andSet2vsSet3" << "\t" << "pNwithinSet1andSet2" << std::endl;
        } else {
            std::cout << "transcript" << "\t" << "ntLengh" << "\t" << "pN" << "\t" << "pS" << "\t" << "hetN" << "\t" << "hetS" << "\t" << "pNstdErr" << "\t" << "pSstdErr" << "\t" << "pNpSstdErr" << "\t" << "pNpSstdErrAllComparisons" << std::endl;
            *statsFile << "transcript" << "\t" << "ntLengh" << "\t" << "pN" << "\t" << "pS" << "\t" << "hetN" << "\t" << "hetS" << "\t" << "pNstdErr" << "\t" << "pSstdErr" << "\t" << "pNpSstdErr" << "\t" << "pNpSstdErrAllComparisons" << std::endl;
        }
    } else {
        std::cout << "transcript" << "\t" << "ntLengh" << "\t" << "pN" << "\t" << "pS" << "\t" << "pNstdErr" << "\t" << "pSstdErr" << "\t" << "pNpSstdErr" << std::endl;
        *statsFile << "transcript" << "\t" << "ntLengh" << "\t" << "pN" << "\t" << "pS" << "\t" << "pNstdErr" << "\t" << "pSstdErr" << "\t" << "pNpSstdErr" << std::endl;
    }
    // Loop over the mutiple alignment files:
    for (std::vector<std::string>::size_type i = 0; i != allAligmentFiles.size(); i++) {
        std::ifstream* alignment = new std::ifstream(allAligmentFiles[i].c_str());
        std::vector<string> allSeqs; std::vector<string> allSeqsH2;
        std::string line; int lineNum = 1;
        while (getline(*alignment, line)) {
            if (lineNum % 2 == 1) assert(line[0] == '>');
            lineNum++;
            if (line[0] == '>') continue;
            if (opt::ploidy == 'd' && allSeqsH2.size() == (allSeqs.size() - 1))
                allSeqsH2.push_back(line);
            else
                allSeqs.push_back(line);
        } alignment->close();
        
        //std::cerr << "loaded seqs for: " << allAligmentFiles[i] << std::endl;
        //std::cerr << "allSeqs.size(): " << allSeqs.size() << std::endl;
        if (allSeqs.size() > 0) {
            assert(allSeqs[0].length() % 3 == 0); // The gene length must be divisible by three
            if (opt::ploidy == 'd')
                assert(allSeqs[0].length() == allSeqsH2[0].length());
            
            std::vector<string> statsThisGene; statsThisGene.push_back(allAligmentFiles[i]);
            if (opt::ploidy == 'd') {
                std::vector<std::vector<double> > combinedVectorForPCA;
                getStatsBothPhasedHaps(allSeqs, allSeqsH2, statsThisGene, combinedVectorForPCA, sets, opt::tStVratio, opt::nonCodingNull);
                std::cerr << "got stats for: " << allAligmentFiles[i] << std::endl;
                if (opt::pNgroupsFile != "") {
                    int ns1 = (int)sets->set1Loci.size(); int ns2 = (int)sets->set2Loci.size(); int ns3 = (int)sets->set3Loci.size();
                    statsThisGene.push_back(numToString(sets->withinSet1pN/(2*ns1*(ns1-1))));
                    statsThisGene.push_back(numToString(sets->withinSet2pN/(2*ns2*(ns2-1))));
                    statsThisGene.push_back(numToString(sets->withinSet3pN/(2*ns3*(ns3-1))));
                    statsThisGene.push_back(numToString(sets->set1vsSet2pN/(2*ns1*ns2)));
                    statsThisGene.push_back(numToString(sets->sets1and2vsSet3pN/(2*(ns1+ns2)*ns3)));
                    statsThisGene.push_back(numToString(sets->withinSet1andSet2pN/(2*(ns1+ns2)*(ns1+ns2-1))));
                    sets->withinSet1pN = 0;
                    sets->withinSet2pN = 0;
                    sets->withinSet3pN = 0;
                    sets->set1vsSet2pN = 0;
                    sets->sets1and2vsSet3pN = 0;
                    sets->withinSet1andSet2pN = 0;
                }
                print_vector(statsThisGene, std::cout);
                print_vector(statsThisGene, *statsFile);
                for (int i = 0; i < combinedVectorForPCA.size() - 1; i++) {
                    for (int j = i+1; j < combinedVectorForPCA.size(); j++) {
                        if (j == (combinedVectorForPCA.size() - 1) && i == (combinedVectorForPCA.size() - 2))
                            *pcaVectorsFile << combinedVectorForPCA[i][j] << std::endl;
                        else
                            *pcaVectorsFile << combinedVectorForPCA[i][j] << '\t';
                    }
                }
            } else {
                getStatsHaploidSeq(allSeqs,statsThisGene, opt::tStVratio);
                print_vector(statsThisGene, std::cout);
                print_vector(statsThisGene, *statsFile);
            }
        } else{
            std::cout << allAligmentFiles[i] << "\t" << "NA" << "\t" << "NA" << "\t" << "NA" << "\t" << "NA" << "\t" << "NA" << "\t" << "NA" << "\t" << "NA" << "\t" << "NA" << "\t" << "NA" << std::endl;
            *statsFile << allAligmentFiles[i] << "\t" << "NA" << "\t" << "NA" << "\t" << "NA" << "\t" << "NA" << "\t" << "NA" << "\t" << "NA" << "\t" << "NA" << "\t" << "NA" << "\t" << "NA" << std::endl;
        }
    }
    return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xae0, %rsp            # imm = 0xAE0
movl %edi, -0x4(%rbp)
movq %rsi, -0x10(%rbp)
movl -0x4(%rbp), %edi
movq -0x10(%rbp), %rsi
callq 0x645a0
leaq -0x28(%rbp), %rdi
callq 0x48da0
leaq -0x48(%rbp), %rdi
callq 0xa820
leaq -0x68(%rbp), %rdi
callq 0xa820
leaq -0x80(%rbp), %rdi
callq 0x3f5f0
leaq 0x138827(%rip), %rdi    # 0x19a480
leaq 0xd427f(%rip), %rsi     # 0x135edf
callq 0x50eb0
movb %al, -0x439(%rbp)
jmp 0x61c6d
movb -0x439(%rbp), %al
testb $0x1, %al
jne 0x61c7c
jmp 0x61ddb
movl $0x208, %edi            # imm = 0x208
callq 0xa5d0
movq %rax, -0x448(%rbp)
jmp 0x61c8f
movq -0x448(%rbp), %rdi
leaq 0x1387e3(%rip), %rsi    # 0x19a480
movl $0x8, %edx
callq 0xaa00
jmp 0x61ca9
movq -0x448(%rbp), %rax
movq %rax, -0x98(%rbp)
leaq -0xb8(%rbp), %rdi
callq 0xa820
movq -0x98(%rbp), %rdi
leaq -0xb8(%rbp), %rsi
callq 0xa0d0
movq %rax, -0x450(%rbp)
jmp 0x61cdf
movq -0x450(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0xa740
movb %al, -0x451(%rbp)
jmp 0x61cfd
movb -0x451(%rbp), %al
testb $0x1, %al
jne 0x61d0c
jmp 0x61dbc
leaq -0xd0(%rbp), %rdi
leaq -0xb8(%rbp), %rsi
movl $0x9, %edx
callq 0x7bbe0
jmp 0x61d26
leaq -0x80(%rbp), %rdi
leaq -0xd0(%rbp), %rsi
callq 0x3f610
jmp 0x61d38
leaq -0xd0(%rbp), %rdi
callq 0x3dfa0
jmp 0x61cc3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x64567
movq -0x448(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
movl $0x208, %esi            # imm = 0x208
callq 0xa5e0
jmp 0x64567
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x61dca
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0xd0(%rbp), %rdi
callq 0x3dfa0
jmp 0x61dca
leaq -0xb8(%rbp), %rdi
callq 0xac88
jmp 0x61ddb
leaq -0xb8(%rbp), %rdi
callq 0xac88
jmp 0x64567
leaq 0x13867e(%rip), %rdi    # 0x19a460
leaq 0xd40f6(%rip), %rsi     # 0x135edf
callq 0x50eb0
movb %al, -0x452(%rbp)
jmp 0x61df6
movb -0x452(%rbp), %al
testb $0x1, %al
jne 0x61e05
jmp 0x61ecb
movl $0x208, %edi            # imm = 0x208
callq 0xa5d0
movq %rax, -0x460(%rbp)
jmp 0x61e18
movq -0x460(%rbp), %rdi
leaq 0x13863a(%rip), %rsi    # 0x19a460
movl $0x8, %edx
callq 0xaa00
jmp 0x61e32
movq -0x460(%rbp), %rax
movq %rax, -0xe0(%rbp)
movl $0xe0, %edi
callq 0xa5d0
movq %rax, -0x468(%rbp)
jmp 0x61e53
movq -0x468(%rbp), %rdi
leaq -0xe0(%rbp), %rsi
callq 0x649f0
jmp 0x61e68
movq -0x468(%rbp), %rax
movq %rax, -0xd8(%rbp)
jmp 0x61f24
movq -0x460(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
movl $0x208, %esi            # imm = 0x208
callq 0xa5e0
jmp 0x64567
movq -0x468(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
movl $0xe0, %esi
callq 0xa5e0
jmp 0x64567
movl $0xe0, %edi
callq 0xa5d0
movq %rax, -0x470(%rbp)
jmp 0x61ede
movq -0x470(%rbp), %rdi
callq 0x64fd0
jmp 0x61eec
movq -0x470(%rbp), %rax
movq %rax, -0xd8(%rbp)
jmp 0x61f24
movq -0x470(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
movl $0xe0, %esi
callq 0xa5e0
jmp 0x64567
movq -0xd8(%rbp), %rax
movb 0xd8(%rax), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x1, %eax
jne 0x61f6e
movq 0x1370ae(%rip), %rdi    # 0x198ff0
leaq 0xd5c67(%rip), %rsi     # 0x137bb0
callq 0xa5c0
movq %rax, -0x478(%rbp)
jmp 0x61f57
movq -0x478(%rbp), %rdi
movq 0x137023(%rip), %rsi    # 0x198f88
callq 0xa610
jmp 0x61f6c
jmp 0x61f6e
movq 0x13707b(%rip), %rdi    # 0x198ff0
leaq 0xd5c49(%rip), %rsi     # 0x137bc5
callq 0xa5c0
movq %rax, -0x480(%rbp)
jmp 0x61f8a
movq -0x480(%rbp), %rdi
movq 0x136ff0(%rip), %rsi    # 0x198f88
callq 0xa610
jmp 0x61f9f
leaq 0x13847a(%rip), %rdi    # 0x19a420
leaq 0xd3f32(%rip), %rsi     # 0x135edf
callq 0x50eb0
movb %al, -0x481(%rbp)
jmp 0x61fba
movb -0x481(%rbp), %al
testb $0x1, %al
jne 0x61fc9
jmp 0x622f1
leaq 0x138450(%rip), %rsi    # 0x19a420
leaq -0x28(%rbp), %rdi
callq 0x48dc0
jmp 0x61fdb
leaq 0x13843e(%rip), %rdi    # 0x19a420
movl $0x2e, %esi
movq $-0x1, %rdx
callq 0xabf0
movq %rax, -0xe8(%rbp)
cmpq $-0x1, -0xe8(%rbp)
je 0x622ec
movq -0xe8(%rbp), %rdx
movb $0x0, -0x129(%rbp)
leaq 0x138403(%rip), %rsi    # 0x19a420
leaq -0x108(%rbp), %rdi
movq $-0x1, %rcx
callq 0xa5f0
jmp 0x62032
leaq 0xe3791(%rip), %rsi     # 0x1457ca
leaq -0x108(%rbp), %rdi
callq 0x2d770
movb %al, -0x482(%rbp)
jmp 0x6204d
movb -0x482(%rbp), %cl
movb $0x1, %al
testb $0x1, %cl
movb %al, -0x483(%rbp)
jne 0x620b5
jmp 0x62062
movq -0xe8(%rbp), %rdx
leaq 0x1383b0(%rip), %rsi    # 0x19a420
leaq -0x128(%rbp), %rdi
movq $-0x1, %rcx
callq 0xa5f0
jmp 0x62085
movb $0x1, -0x129(%rbp)
leaq 0xd4cc6(%rip), %rsi     # 0x136d59
leaq -0x128(%rbp), %rdi
callq 0x2d770
movb %al, -0x484(%rbp)
jmp 0x620a7
movb -0x484(%rbp), %al
movb %al, -0x483(%rbp)
jmp 0x620b5
movb -0x483(%rbp), %al
movb %al, -0x485(%rbp)
testb $0x1, -0x129(%rbp)
jne 0x620cc
jmp 0x620d8
leaq -0x128(%rbp), %rdi
callq 0xac88
leaq -0x108(%rbp), %rdi
callq 0xac88
movb -0x485(%rbp), %al
testb $0x1, %al
jne 0x620f3
jmp 0x6225c
leaq 0x138326(%rip), %rsi    # 0x19a420
leaq -0x170(%rbp), %rdi
callq 0x7be70
jmp 0x62108
leaq 0xd5ad9(%rip), %rdx     # 0x137be8
leaq -0x150(%rbp), %rdi
leaq -0x170(%rbp), %rsi
callq 0x3e020
jmp 0x62124
leaq -0x48(%rbp), %rdi
leaq -0x150(%rbp), %rsi
movq %rsi, -0x498(%rbp)
callq 0xa710
movq -0x498(%rbp), %rdi
callq 0xac88
leaq -0x170(%rbp), %rdi
callq 0xac88
movq 0x136e96(%rip), %rdi    # 0x198ff0
leaq 0xd3cfc(%rip), %rsi     # 0x135e5d
callq 0xa5c0
movq %rax, -0x490(%rbp)
jmp 0x6216f
leaq 0x1382aa(%rip), %rsi    # 0x19a420
leaq -0x190(%rbp), %rdi
callq 0x7be70
jmp 0x62184
movq -0x490(%rbp), %rdi
leaq -0x190(%rbp), %rsi
callq 0xa520
movq %rax, -0x4a0(%rbp)
jmp 0x621a0
movq -0x4a0(%rbp), %rdi
movq 0x136dda(%rip), %rsi    # 0x198f88
callq 0xa610
jmp 0x621b5
leaq -0x190(%rbp), %rdi
callq 0xac88
jmp 0x622ea
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x62205
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
testb $0x1, -0x129(%rbp)
jne 0x621f7
jmp 0x62203
leaq -0x128(%rbp), %rdi
callq 0xac88
jmp 0x62205
leaq -0x108(%rbp), %rdi
callq 0xac88
jmp 0x64567
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x170(%rbp), %rdi
callq 0xac88
jmp 0x64567
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x190(%rbp), %rdi
callq 0xac88
jmp 0x64567
leaq 0x1381bd(%rip), %rsi    # 0x19a420
leaq 0xd597e(%rip), %rdx     # 0x137be8
leaq -0x1b0(%rbp), %rdi
callq 0x3da80
jmp 0x62278
leaq -0x48(%rbp), %rdi
leaq -0x1b0(%rbp), %rsi
movq %rsi, -0x4b0(%rbp)
callq 0xa710
movq -0x4b0(%rbp), %rdi
callq 0xac88
movq 0x136d4e(%rip), %rdi    # 0x198ff0
leaq 0xd3bb4(%rip), %rsi     # 0x135e5d
callq 0xa5c0
movq %rax, -0x4a8(%rbp)
jmp 0x622b7
movq -0x4a8(%rbp), %rdi
leaq 0x13815b(%rip), %rsi    # 0x19a420
callq 0xa520
movq %rax, -0x4b8(%rbp)
jmp 0x622d3
movq -0x4b8(%rbp), %rdi
movq 0x136ca7(%rip), %rsi    # 0x198f88
callq 0xa610
jmp 0x622e8
jmp 0x622ea
jmp 0x622ec
jmp 0x62547
movl $0x208, %edi            # imm = 0x208
callq 0xa5d0
movq %rax, -0x4c0(%rbp)
jmp 0x62304
leaq 0x138135(%rip), %rdi    # 0x19a440
callq 0xa220
movq -0x4c0(%rbp), %rdi
movq %rax, %rsi
movl $0x8, %edx
callq 0xab90
jmp 0x62326
movq -0x4c0(%rbp), %rax
movq %rax, -0x1b8(%rbp)
leaq 0x138105(%rip), %rsi    # 0x19a440
leaq -0x1f8(%rbp), %rdi
callq 0x7be70
jmp 0x62349
leaq 0xd5898(%rip), %rdx     # 0x137be8
leaq -0x1d8(%rbp), %rdi
leaq -0x1f8(%rbp), %rsi
callq 0x3e020
jmp 0x62365
leaq -0x48(%rbp), %rdi
leaq -0x1d8(%rbp), %rsi
movq %rsi, -0x4c8(%rbp)
callq 0xa710
movq -0x4c8(%rbp), %rdi
callq 0xac88
leaq -0x1f8(%rbp), %rdi
callq 0xac88
leaq 0x1380a5(%rip), %rsi    # 0x19a440
leaq -0x238(%rbp), %rdi
callq 0x7be70
jmp 0x623a9
leaq 0xd5843(%rip), %rdx     # 0x137bf3
leaq -0x218(%rbp), %rdi
leaq -0x238(%rbp), %rsi
callq 0x3e020
jmp 0x623c5
leaq -0x68(%rbp), %rdi
leaq -0x218(%rbp), %rsi
movq %rsi, -0x4d8(%rbp)
callq 0xa710
movq -0x4d8(%rbp), %rdi
callq 0xac88
leaq -0x238(%rbp), %rdi
callq 0xac88
movq 0x136bf5(%rip), %rdi    # 0x198ff0
leaq 0xd0356(%rip), %rsi     # 0x132758
callq 0xa5c0
movq %rax, -0x4d0(%rbp)
jmp 0x62410
movq -0x4d0(%rbp), %rdi
leaq 0x138022(%rip), %rsi    # 0x19a440
callq 0xa520
movq %rax, -0x4e0(%rbp)
jmp 0x6242c
movq -0x4e0(%rbp), %rdi
movq 0x136b4e(%rip), %rsi    # 0x198f88
callq 0xa610
jmp 0x62441
leaq -0x258(%rbp), %rdi
callq 0xa820
movq -0x1b8(%rbp), %rdi
leaq -0x258(%rbp), %rsi
callq 0xa0d0
movq %rax, -0x4e8(%rbp)
jmp 0x62469
movq -0x4e8(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0xa740
movb %al, -0x4e9(%rbp)
jmp 0x62487
movb -0x4e9(%rbp), %al
testb $0x1, %al
jne 0x62496
jmp 0x6253b
leaq -0x28(%rbp), %rdi
leaq -0x258(%rbp), %rsi
callq 0x48dc0
jmp 0x624a8
jmp 0x6244d
movq -0x4c0(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
movl $0x208, %esi            # imm = 0x208
callq 0xa5e0
jmp 0x64567
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x1f8(%rbp), %rdi
callq 0xac88
jmp 0x64567
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x238(%rbp), %rdi
callq 0xac88
jmp 0x64567
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x258(%rbp), %rdi
callq 0xac88
jmp 0x64567
leaq -0x258(%rbp), %rdi
callq 0xac88
movl $0x200, %edi            # imm = 0x200
callq 0xa5d0
movq %rax, -0x4f8(%rbp)
jmp 0x6255a
leaq -0x48(%rbp), %rdi
callq 0xa220
movq -0x4f8(%rbp), %rdi
movq %rax, %rsi
movl $0x10, %edx
callq 0xa650
jmp 0x62579
movq -0x4f8(%rbp), %rax
movq %rax, -0x260(%rbp)
movl $0x200, %edi            # imm = 0x200
callq 0xa5d0
movq %rax, -0x500(%rbp)
jmp 0x6259a
leaq -0x68(%rbp), %rdi
callq 0xa220
movq -0x500(%rbp), %rdi
movq %rax, %rsi
movl $0x10, %edx
callq 0xa650
jmp 0x625b9
movq -0x500(%rbp), %rax
movq %rax, -0x268(%rbp)
movsbl 0x137152(%rip), %eax    # 0x199720
cmpl $0x64, %eax
jne 0x631a1
leaq 0x137e82(%rip), %rdi    # 0x19a460
leaq 0xd38fa(%rip), %rsi     # 0x135edf
callq 0x50eb0
movb %al, -0x501(%rbp)
jmp 0x625f2
movb -0x501(%rbp), %al
testb $0x1, %al
jne 0x62601
jmp 0x62d48
movq 0x1369b0(%rip), %rdi    # 0x198fb8
leaq 0xd55f4(%rip), %rsi     # 0x137c03
callq 0xa5c0
movq %rax, -0x510(%rbp)
jmp 0x6261d
movq -0x510(%rbp), %rdi
leaq 0xd38b3(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x518(%rbp)
jmp 0x62639
movq -0x518(%rbp), %rdi
leaq 0xd55c7(%rip), %rsi     # 0x137c0e
callq 0xa5c0
movq %rax, -0x520(%rbp)
jmp 0x62655
movq -0x520(%rbp), %rdi
leaq 0xd387b(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x528(%rbp)
jmp 0x62671
movq -0x528(%rbp), %rdi
leaq 0xd55db(%rip), %rsi     # 0x137c5a
callq 0xa5c0
movq %rax, -0x530(%rbp)
jmp 0x6268d
movq -0x530(%rbp), %rdi
leaq 0xd3843(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x538(%rbp)
jmp 0x626a9
movq -0x538(%rbp), %rdi
leaq 0xd555f(%rip), %rsi     # 0x137c16
callq 0xa5c0
movq %rax, -0x540(%rbp)
jmp 0x626c5
movq -0x540(%rbp), %rdi
leaq 0xd380b(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x548(%rbp)
jmp 0x626e1
movq -0x548(%rbp), %rdi
leaq 0xd552a(%rip), %rsi     # 0x137c19
callq 0xa5c0
movq %rax, -0x550(%rbp)
jmp 0x626fd
movq -0x550(%rbp), %rdi
leaq 0xd37d3(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x558(%rbp)
jmp 0x62719
movq -0x558(%rbp), %rdi
leaq 0xd54f7(%rip), %rsi     # 0x137c1e
callq 0xa5c0
movq %rax, -0x560(%rbp)
jmp 0x62735
movq -0x560(%rbp), %rdi
leaq 0xd379b(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x568(%rbp)
jmp 0x62751
movq -0x568(%rbp), %rdi
leaq 0xd54c4(%rip), %rsi     # 0x137c23
callq 0xa5c0
movq %rax, -0x570(%rbp)
jmp 0x6276d
movq -0x570(%rbp), %rdi
leaq 0xd3763(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x578(%rbp)
jmp 0x62789
movq -0x578(%rbp), %rdi
leaq 0xd5497(%rip), %rsi     # 0x137c2e
callq 0xa5c0
movq %rax, -0x580(%rbp)
jmp 0x627a5
movq -0x580(%rbp), %rdi
leaq 0xd372b(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x588(%rbp)
jmp 0x627c1
movq -0x588(%rbp), %rdi
leaq 0xd545d(%rip), %rsi     # 0x137c2c
callq 0xa5c0
movq %rax, -0x590(%rbp)
jmp 0x627dd
movq -0x590(%rbp), %rdi
leaq 0xd36f3(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x598(%rbp)
jmp 0x627f9
movq -0x598(%rbp), %rdi
leaq 0xd5430(%rip), %rsi     # 0x137c37
callq 0xa5c0
movq %rax, -0x5a0(%rbp)
jmp 0x62815
movq -0x5a0(%rbp), %rdi
leaq 0xd36bb(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x5a8(%rbp)
jmp 0x62831
movq -0x5a8(%rbp), %rdi
leaq 0xd5411(%rip), %rsi     # 0x137c50
callq 0xa5c0
movq %rax, -0x5b0(%rbp)
jmp 0x6284d
movq -0x5b0(%rbp), %rdi
leaq 0xd3683(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x5b8(%rbp)
jmp 0x62869
movq -0x5b8(%rbp), %rdi
leaq 0xd53e6(%rip), %rsi     # 0x137c5d
callq 0xa5c0
movq %rax, -0x5c0(%rbp)
jmp 0x62885
movq -0x5c0(%rbp), %rdi
leaq 0xd364b(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x5c8(%rbp)
jmp 0x628a1
movq -0x5c8(%rbp), %rdi
leaq 0xd53bb(%rip), %rsi     # 0x137c6a
callq 0xa5c0
movq %rax, -0x5d0(%rbp)
jmp 0x628bd
movq -0x5d0(%rbp), %rdi
leaq 0xd3613(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x5d8(%rbp)
jmp 0x628d9
movq -0x5d8(%rbp), %rdi
leaq 0xd5390(%rip), %rsi     # 0x137c77
callq 0xa5c0
movq %rax, -0x5e0(%rbp)
jmp 0x628f5
movq -0x5e0(%rbp), %rdi
leaq 0xd35db(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x5e8(%rbp)
jmp 0x62911
movq -0x5e8(%rbp), %rdi
leaq 0xd5365(%rip), %rsi     # 0x137c84
callq 0xa5c0
movq %rax, -0x5f0(%rbp)
jmp 0x6292d
movq -0x5f0(%rbp), %rdi
leaq 0xd35a3(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x5f8(%rbp)
jmp 0x62949
movq -0x5f8(%rbp), %rdi
leaq 0xd5341(%rip), %rsi     # 0x137c98
callq 0xa5c0
movq %rax, -0x600(%rbp)
jmp 0x62965
movq -0x600(%rbp), %rdi
movq 0x136615(%rip), %rsi    # 0x198f88
callq 0xa610
jmp 0x6297a
movq -0x260(%rbp), %rdi
leaq 0xd527b(%rip), %rsi     # 0x137c03
callq 0xa5c0
movq %rax, -0x608(%rbp)
jmp 0x62996
movq -0x608(%rbp), %rdi
leaq 0xd353a(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x610(%rbp)
jmp 0x629b2
movq -0x610(%rbp), %rdi
leaq 0xd524e(%rip), %rsi     # 0x137c0e
callq 0xa5c0
movq %rax, -0x618(%rbp)
jmp 0x629ce
movq -0x618(%rbp), %rdi
leaq 0xd3502(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x620(%rbp)
jmp 0x629ea
movq -0x620(%rbp), %rdi
leaq 0xd5262(%rip), %rsi     # 0x137c5a
callq 0xa5c0
movq %rax, -0x628(%rbp)
jmp 0x62a06
movq -0x628(%rbp), %rdi
leaq 0xd34ca(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x630(%rbp)
jmp 0x62a22
movq -0x630(%rbp), %rdi
leaq 0xd51e6(%rip), %rsi     # 0x137c16
callq 0xa5c0
movq %rax, -0x638(%rbp)
jmp 0x62a3e
movq -0x638(%rbp), %rdi
leaq 0xd3492(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x640(%rbp)
jmp 0x62a5a
movq -0x640(%rbp), %rdi
leaq 0xd51b1(%rip), %rsi     # 0x137c19
callq 0xa5c0
movq %rax, -0x648(%rbp)
jmp 0x62a76
movq -0x648(%rbp), %rdi
leaq 0xd345a(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x650(%rbp)
jmp 0x62a92
movq -0x650(%rbp), %rdi
leaq 0xd517e(%rip), %rsi     # 0x137c1e
callq 0xa5c0
movq %rax, -0x658(%rbp)
jmp 0x62aae
movq -0x658(%rbp), %rdi
leaq 0xd3422(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x660(%rbp)
jmp 0x62aca
movq -0x660(%rbp), %rdi
leaq 0xd514b(%rip), %rsi     # 0x137c23
callq 0xa5c0
movq %rax, -0x668(%rbp)
jmp 0x62ae6
movq -0x668(%rbp), %rdi
leaq 0xd33ea(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x670(%rbp)
jmp 0x62b02
movq -0x670(%rbp), %rdi
leaq 0xd511e(%rip), %rsi     # 0x137c2e
callq 0xa5c0
movq %rax, -0x678(%rbp)
jmp 0x62b1e
movq -0x678(%rbp), %rdi
leaq 0xd33b2(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x680(%rbp)
jmp 0x62b3a
movq -0x680(%rbp), %rdi
leaq 0xd50e4(%rip), %rsi     # 0x137c2c
callq 0xa5c0
movq %rax, -0x688(%rbp)
jmp 0x62b56
movq -0x688(%rbp), %rdi
leaq 0xd337a(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x690(%rbp)
jmp 0x62b72
movq -0x690(%rbp), %rdi
leaq 0xd50b7(%rip), %rsi     # 0x137c37
callq 0xa5c0
movq %rax, -0x698(%rbp)
jmp 0x62b8e
movq -0x698(%rbp), %rdi
leaq 0xd3342(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x6a0(%rbp)
jmp 0x62baa
movq -0x6a0(%rbp), %rdi
leaq 0xd5098(%rip), %rsi     # 0x137c50
callq 0xa5c0
movq %rax, -0x6a8(%rbp)
jmp 0x62bc6
movq -0x6a8(%rbp), %rdi
leaq 0xd330a(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x6b0(%rbp)
jmp 0x62be2
movq -0x6b0(%rbp), %rdi
leaq 0xd506d(%rip), %rsi     # 0x137c5d
callq 0xa5c0
movq %rax, -0x6b8(%rbp)
jmp 0x62bfe
movq -0x6b8(%rbp), %rdi
leaq 0xd32d2(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x6c0(%rbp)
jmp 0x62c1a
movq -0x6c0(%rbp), %rdi
leaq 0xd5042(%rip), %rsi     # 0x137c6a
callq 0xa5c0
movq %rax, -0x6c8(%rbp)
jmp 0x62c36
movq -0x6c8(%rbp), %rdi
leaq 0xd329a(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x6d0(%rbp)
jmp 0x62c52
movq -0x6d0(%rbp), %rdi
leaq 0xd5017(%rip), %rsi     # 0x137c77
callq 0xa5c0
movq %rax, -0x6d8(%rbp)
jmp 0x62c6e
movq -0x6d8(%rbp), %rdi
leaq 0xd3262(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x6e0(%rbp)
jmp 0x62c8a
movq -0x6e0(%rbp), %rdi
leaq 0xd4fec(%rip), %rsi     # 0x137c84
callq 0xa5c0
movq %rax, -0x6e8(%rbp)
jmp 0x62ca6
movq -0x6e8(%rbp), %rdi
leaq 0xd322a(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x6f0(%rbp)
jmp 0x62cc2
movq -0x6f0(%rbp), %rdi
leaq 0xd4fc8(%rip), %rsi     # 0x137c98
callq 0xa5c0
movq %rax, -0x6f8(%rbp)
jmp 0x62cde
movq -0x6f8(%rbp), %rdi
movq 0x13629c(%rip), %rsi    # 0x198f88
callq 0xa610
jmp 0x62cf3
jmp 0x6319c
movq -0x4f8(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
movl $0x200, %esi            # imm = 0x200
callq 0xa5e0
jmp 0x64567
movq -0x500(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
movl $0x200, %esi            # imm = 0x200
callq 0xa5e0
jmp 0x64567
movq 0x136269(%rip), %rdi    # 0x198fb8
leaq 0xd4ead(%rip), %rsi     # 0x137c03
callq 0xa5c0
movq %rax, -0x700(%rbp)
jmp 0x62d64
movq -0x700(%rbp), %rdi
leaq 0xd316c(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x708(%rbp)
jmp 0x62d80
movq -0x708(%rbp), %rdi
leaq 0xd4e80(%rip), %rsi     # 0x137c0e
callq 0xa5c0
movq %rax, -0x710(%rbp)
jmp 0x62d9c
movq -0x710(%rbp), %rdi
leaq 0xd3134(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x718(%rbp)
jmp 0x62db8
movq -0x718(%rbp), %rdi
leaq 0xd4e94(%rip), %rsi     # 0x137c5a
callq 0xa5c0
movq %rax, -0x720(%rbp)
jmp 0x62dd4
movq -0x720(%rbp), %rdi
leaq 0xd30fc(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x728(%rbp)
jmp 0x62df0
movq -0x728(%rbp), %rdi
leaq 0xd4e18(%rip), %rsi     # 0x137c16
callq 0xa5c0
movq %rax, -0x730(%rbp)
jmp 0x62e0c
movq -0x730(%rbp), %rdi
leaq 0xd30c4(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x738(%rbp)
jmp 0x62e28
movq -0x738(%rbp), %rdi
leaq 0xd4de3(%rip), %rsi     # 0x137c19
callq 0xa5c0
movq %rax, -0x740(%rbp)
jmp 0x62e44
movq -0x740(%rbp), %rdi
leaq 0xd308c(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x748(%rbp)
jmp 0x62e60
movq -0x748(%rbp), %rdi
leaq 0xd4db0(%rip), %rsi     # 0x137c1e
callq 0xa5c0
movq %rax, -0x750(%rbp)
jmp 0x62e7c
movq -0x750(%rbp), %rdi
leaq 0xd3054(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x758(%rbp)
jmp 0x62e98
movq -0x758(%rbp), %rdi
leaq 0xd4d7d(%rip), %rsi     # 0x137c23
callq 0xa5c0
movq %rax, -0x760(%rbp)
jmp 0x62eb4
movq -0x760(%rbp), %rdi
leaq 0xd301c(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x768(%rbp)
jmp 0x62ed0
movq -0x768(%rbp), %rdi
leaq 0xd4d50(%rip), %rsi     # 0x137c2e
callq 0xa5c0
movq %rax, -0x770(%rbp)
jmp 0x62eec
movq -0x770(%rbp), %rdi
leaq 0xd2fe4(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x778(%rbp)
jmp 0x62f08
movq -0x778(%rbp), %rdi
leaq 0xd4d16(%rip), %rsi     # 0x137c2c
callq 0xa5c0
movq %rax, -0x780(%rbp)
jmp 0x62f24
movq -0x780(%rbp), %rdi
leaq 0xd2fac(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x788(%rbp)
jmp 0x62f40
movq -0x788(%rbp), %rdi
leaq 0xd4ce9(%rip), %rsi     # 0x137c37
callq 0xa5c0
movq %rax, -0x790(%rbp)
jmp 0x62f5c
movq -0x790(%rbp), %rdi
movq 0x13601e(%rip), %rsi    # 0x198f88
callq 0xa610
jmp 0x62f71
movq -0x260(%rbp), %rdi
leaq 0xd4c84(%rip), %rsi     # 0x137c03
callq 0xa5c0
movq %rax, -0x798(%rbp)
jmp 0x62f8d
movq -0x798(%rbp), %rdi
leaq 0xd2f43(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x7a0(%rbp)
jmp 0x62fa9
movq -0x7a0(%rbp), %rdi
leaq 0xd4c57(%rip), %rsi     # 0x137c0e
callq 0xa5c0
movq %rax, -0x7a8(%rbp)
jmp 0x62fc5
movq -0x7a8(%rbp), %rdi
leaq 0xd2f0b(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x7b0(%rbp)
jmp 0x62fe1
movq -0x7b0(%rbp), %rdi
leaq 0xd4c6b(%rip), %rsi     # 0x137c5a
callq 0xa5c0
movq %rax, -0x7b8(%rbp)
jmp 0x62ffd
movq -0x7b8(%rbp), %rdi
leaq 0xd2ed3(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x7c0(%rbp)
jmp 0x63019
movq -0x7c0(%rbp), %rdi
leaq 0xd4bef(%rip), %rsi     # 0x137c16
callq 0xa5c0
movq %rax, -0x7c8(%rbp)
jmp 0x63035
movq -0x7c8(%rbp), %rdi
leaq 0xd2e9b(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x7d0(%rbp)
jmp 0x63051
movq -0x7d0(%rbp), %rdi
leaq 0xd4bba(%rip), %rsi     # 0x137c19
callq 0xa5c0
movq %rax, -0x7d8(%rbp)
jmp 0x6306d
movq -0x7d8(%rbp), %rdi
leaq 0xd2e63(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x7e0(%rbp)
jmp 0x63089
movq -0x7e0(%rbp), %rdi
leaq 0xd4b87(%rip), %rsi     # 0x137c1e
callq 0xa5c0
movq %rax, -0x7e8(%rbp)
jmp 0x630a5
movq -0x7e8(%rbp), %rdi
leaq 0xd2e2b(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x7f0(%rbp)
jmp 0x630c1
movq -0x7f0(%rbp), %rdi
leaq 0xd4b54(%rip), %rsi     # 0x137c23
callq 0xa5c0
movq %rax, -0x7f8(%rbp)
jmp 0x630dd
movq -0x7f8(%rbp), %rdi
leaq 0xd2df3(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x800(%rbp)
jmp 0x630f9
movq -0x800(%rbp), %rdi
leaq 0xd4b27(%rip), %rsi     # 0x137c2e
callq 0xa5c0
movq %rax, -0x808(%rbp)
jmp 0x63115
movq -0x808(%rbp), %rdi
leaq 0xd2dbb(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x810(%rbp)
jmp 0x63131
movq -0x810(%rbp), %rdi
leaq 0xd4aed(%rip), %rsi     # 0x137c2c
callq 0xa5c0
movq %rax, -0x818(%rbp)
jmp 0x6314d
movq -0x818(%rbp), %rdi
leaq 0xd2d83(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x820(%rbp)
jmp 0x63169
movq -0x820(%rbp), %rdi
leaq 0xd4ac0(%rip), %rsi     # 0x137c37
callq 0xa5c0
movq %rax, -0x828(%rbp)
jmp 0x63185
movq -0x828(%rbp), %rdi
movq 0x135df5(%rip), %rsi    # 0x198f88
callq 0xa610
jmp 0x6319a
jmp 0x6319c
jmp 0x634a5
movq 0x135e10(%rip), %rdi    # 0x198fb8
leaq 0xd4a54(%rip), %rsi     # 0x137c03
callq 0xa5c0
movq %rax, -0x830(%rbp)
jmp 0x631bd
movq -0x830(%rbp), %rdi
leaq 0xd2d13(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x838(%rbp)
jmp 0x631d9
movq -0x838(%rbp), %rdi
leaq 0xd4a27(%rip), %rsi     # 0x137c0e
callq 0xa5c0
movq %rax, -0x840(%rbp)
jmp 0x631f5
movq -0x840(%rbp), %rdi
leaq 0xd2cdb(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x848(%rbp)
jmp 0x63211
movq -0x848(%rbp), %rdi
leaq 0xd4a3b(%rip), %rsi     # 0x137c5a
callq 0xa5c0
movq %rax, -0x850(%rbp)
jmp 0x6322d
movq -0x850(%rbp), %rdi
leaq 0xd2ca3(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x858(%rbp)
jmp 0x63249
movq -0x858(%rbp), %rdi
leaq 0xd49bf(%rip), %rsi     # 0x137c16
callq 0xa5c0
movq %rax, -0x860(%rbp)
jmp 0x63265
movq -0x860(%rbp), %rdi
leaq 0xd2c6b(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x868(%rbp)
jmp 0x63281
movq -0x868(%rbp), %rdi
leaq 0xd4994(%rip), %rsi     # 0x137c23
callq 0xa5c0
movq %rax, -0x870(%rbp)
jmp 0x6329d
movq -0x870(%rbp), %rdi
leaq 0xd2c33(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x878(%rbp)
jmp 0x632b9
movq -0x878(%rbp), %rdi
leaq 0xd4967(%rip), %rsi     # 0x137c2e
callq 0xa5c0
movq %rax, -0x880(%rbp)
jmp 0x632d5
movq -0x880(%rbp), %rdi
leaq 0xd2bfb(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x888(%rbp)
jmp 0x632f1
movq -0x888(%rbp), %rdi
leaq 0xd492d(%rip), %rsi     # 0x137c2c
callq 0xa5c0
movq %rax, -0x890(%rbp)
jmp 0x6330d
movq -0x890(%rbp), %rdi
movq 0x135c6d(%rip), %rsi    # 0x198f88
callq 0xa610
jmp 0x63322
movq -0x260(%rbp), %rdi
leaq 0xd48d3(%rip), %rsi     # 0x137c03
callq 0xa5c0
movq %rax, -0x898(%rbp)
jmp 0x6333e
movq -0x898(%rbp), %rdi
leaq 0xd2b92(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x8a0(%rbp)
jmp 0x6335a
movq -0x8a0(%rbp), %rdi
leaq 0xd48a6(%rip), %rsi     # 0x137c0e
callq 0xa5c0
movq %rax, -0x8a8(%rbp)
jmp 0x63376
movq -0x8a8(%rbp), %rdi
leaq 0xd2b5a(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x8b0(%rbp)
jmp 0x63392
movq -0x8b0(%rbp), %rdi
leaq 0xd48ba(%rip), %rsi     # 0x137c5a
callq 0xa5c0
movq %rax, -0x8b8(%rbp)
jmp 0x633ae
movq -0x8b8(%rbp), %rdi
leaq 0xd2b22(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x8c0(%rbp)
jmp 0x633ca
movq -0x8c0(%rbp), %rdi
leaq 0xd483e(%rip), %rsi     # 0x137c16
callq 0xa5c0
movq %rax, -0x8c8(%rbp)
jmp 0x633e6
movq -0x8c8(%rbp), %rdi
leaq 0xd2aea(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x8d0(%rbp)
jmp 0x63402
movq -0x8d0(%rbp), %rdi
leaq 0xd4813(%rip), %rsi     # 0x137c23
callq 0xa5c0
movq %rax, -0x8d8(%rbp)
jmp 0x6341e
movq -0x8d8(%rbp), %rdi
leaq 0xd2ab2(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x8e0(%rbp)
jmp 0x6343a
movq -0x8e0(%rbp), %rdi
leaq 0xd47e6(%rip), %rsi     # 0x137c2e
callq 0xa5c0
movq %rax, -0x8e8(%rbp)
jmp 0x63456
movq -0x8e8(%rbp), %rdi
leaq 0xd2a7a(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x8f0(%rbp)
jmp 0x63472
movq -0x8f0(%rbp), %rdi
leaq 0xd47ac(%rip), %rsi     # 0x137c2c
callq 0xa5c0
movq %rax, -0x8f8(%rbp)
jmp 0x6348e
movq -0x8f8(%rbp), %rdi
movq 0x135aec(%rip), %rsi    # 0x198f88
callq 0xa610
jmp 0x634a3
jmp 0x634a5
movq $0x0, -0x270(%rbp)
movq -0x270(%rbp), %rax
movq %rax, -0x900(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x3ffd0
movq %rax, %rcx
movq -0x900(%rbp), %rax
cmpq %rcx, %rax
je 0x64538
movl $0x208, %edi            # imm = 0x208
callq 0xa5d0
movq %rax, -0x908(%rbp)
jmp 0x634ed
movq -0x270(%rbp), %rsi
leaq -0x28(%rbp), %rdi
callq 0x3d940
movq %rax, %rdi
callq 0xa220
movq -0x908(%rbp), %rdi
movq %rax, %rsi
movl $0x8, %edx
callq 0xab90
jmp 0x6351b
movq -0x908(%rbp), %rax
movq %rax, -0x278(%rbp)
leaq -0x290(%rbp), %rdi
callq 0x48da0
leaq -0x2a8(%rbp), %rdi
callq 0x48da0
leaq -0x2c8(%rbp), %rdi
callq 0xa820
movl $0x1, -0x2cc(%rbp)
movq -0x278(%rbp), %rdi
leaq -0x2c8(%rbp), %rsi
callq 0xa0d0
movq %rax, -0x910(%rbp)
jmp 0x63573
movq -0x910(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0xa740
movb %al, -0x911(%rbp)
jmp 0x63591
movb -0x911(%rbp), %al
testb $0x1, %al
jne 0x635a0
jmp 0x636ed
movl -0x2cc(%rbp), %eax
movl $0x2, %ecx
cltd
idivl %ecx
cmpl $0x1, %edx
jne 0x63641
xorl %eax, %eax
movl %eax, %esi
leaq -0x2c8(%rbp), %rdi
callq 0xac60
movq %rax, -0x920(%rbp)
jmp 0x635d0
movq -0x920(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x3e, %eax
jne 0x635e1
jmp 0x6363f
leaq 0xcf183(%rip), %rdi     # 0x13276b
leaq 0xd46bd(%rip), %rsi     # 0x137cac
movl $0x87, %edx
leaq 0xd46d4(%rip), %rcx     # 0x137ccf
callq 0xa390
movq -0x908(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
movl $0x208, %esi            # imm = 0x208
callq 0xa5e0
jmp 0x64567
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x64512
jmp 0x63641
movl -0x2cc(%rbp), %eax
incl %eax
movl %eax, -0x2cc(%rbp)
xorl %eax, %eax
movl %eax, %esi
leaq -0x2c8(%rbp), %rdi
callq 0xac60
movq %rax, -0x928(%rbp)
jmp 0x63668
movq -0x928(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x3e, %eax
jne 0x6367c
jmp 0x63557
movsbl 0x13609d(%rip), %eax    # 0x199720
cmpl $0x64, %eax
jne 0x636d1
leaq -0x2a8(%rbp), %rdi
callq 0x3ffd0
movq %rax, -0x930(%rbp)
leaq -0x290(%rbp), %rdi
callq 0x3ffd0
movq %rax, %rcx
movq -0x930(%rbp), %rax
subq $0x1, %rcx
cmpq %rcx, %rax
jne 0x636d1
leaq -0x2a8(%rbp), %rdi
leaq -0x2c8(%rbp), %rsi
callq 0x48dc0
jmp 0x636cf
jmp 0x636e8
leaq -0x290(%rbp), %rdi
leaq -0x2c8(%rbp), %rsi
callq 0x48dc0
jmp 0x636e6
jmp 0x636e8
jmp 0x63557
movq -0x278(%rbp), %rdi
callq 0xa110
jmp 0x636fb
leaq -0x290(%rbp), %rdi
callq 0x3ffd0
cmpq $0x0, %rax
jbe 0x6405d
leaq -0x290(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x3d940
movq %rax, %rdi
callq 0xa930
movl $0x3, %ecx
xorl %edx, %edx
divq %rcx
cmpq $0x0, %rdx
jne 0x6373b
jmp 0x6375a
leaq 0xd45ae(%rip), %rdi     # 0x137cf0
leaq 0xd4563(%rip), %rsi     # 0x137cac
movl $0x93, %edx
leaq 0xd457a(%rip), %rcx     # 0x137ccf
callq 0xa390
movsbl 0x135fbf(%rip), %eax    # 0x199720
cmpl $0x64, %eax
jne 0x637cf
leaq -0x290(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x3d940
movq %rax, %rdi
callq 0xa930
movq %rax, -0x938(%rbp)
leaq -0x2a8(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x3d940
movq %rax, %rdi
callq 0xa930
movq %rax, %rcx
movq -0x938(%rbp), %rax
cmpq %rcx, %rax
jne 0x637ae
jmp 0x637cd
leaq 0xd4558(%rip), %rdi     # 0x137d0d
leaq 0xd44f0(%rip), %rsi     # 0x137cac
movl $0x95, %edx
leaq 0xd4507(%rip), %rcx     # 0x137ccf
callq 0xa390
jmp 0x637cf
leaq -0x2e8(%rbp), %rdi
movq %rdi, -0x940(%rbp)
callq 0x48da0
movq -0x270(%rbp), %rsi
leaq -0x28(%rbp), %rdi
callq 0x3d940
movq -0x940(%rbp), %rdi
movq %rax, %rsi
callq 0x48dc0
jmp 0x63803
movsbl 0x135f16(%rip), %eax    # 0x199720
cmpl $0x64, %eax
jne 0x63f5c
leaq -0x300(%rbp), %rdi
movq %rdi, -0x948(%rbp)
callq 0x65060
movq -0x948(%rbp), %rcx
movq -0xd8(%rbp), %r8
movsd 0x135eec(%rip), %xmm0   # 0x199728
movzbl 0x136c5c(%rip), %r9d    # 0x19a4a0
andl $0x1, %r9d
leaq -0x290(%rbp), %rdi
leaq -0x2a8(%rbp), %rsi
leaq -0x2e8(%rbp), %rdx
callq 0xb3c40
jmp 0x63864
movq 0x135785(%rip), %rdi    # 0x198ff0
leaq 0xd44c8(%rip), %rsi     # 0x137d3a
callq 0xa5c0
movq %rax, -0x950(%rbp)
jmp 0x63880
movq -0x270(%rbp), %rsi
leaq -0x28(%rbp), %rdi
callq 0x3d940
movq -0x950(%rbp), %rdi
movq %rax, %rsi
callq 0xa520
movq %rax, -0x958(%rbp)
jmp 0x638a8
movq -0x958(%rbp), %rdi
movq 0x1356d2(%rip), %rsi    # 0x198f88
callq 0xa610
jmp 0x638bd
leaq 0x136b9c(%rip), %rdi    # 0x19a460
leaq 0xd2614(%rip), %rsi     # 0x135edf
callq 0x50eb0
movb %al, -0x959(%rbp)
jmp 0x638d8
movb -0x959(%rbp), %al
testb $0x1, %al
jne 0x638e7
jmp 0x63cae
movq -0xd8(%rbp), %rdi
callq 0x65080
movl %eax, -0x304(%rbp)
movq -0xd8(%rbp), %rdi
addq $0x38, %rdi
callq 0x65080
movl %eax, -0x308(%rbp)
movq -0xd8(%rbp), %rdi
addq $0x70, %rdi
callq 0x65080
movl %eax, -0x30c(%rbp)
movq -0xd8(%rbp), %rax
movsd 0xa8(%rax), %xmm0
movl -0x304(%rbp), %eax
movl %eax, %ecx
decl %ecx
imull %ecx, %eax
addl %eax, %eax
cvtsi2sd %eax, %xmm1
divsd %xmm1, %xmm0
leaq -0x330(%rbp), %rdi
callq 0x650a0
jmp 0x63959
leaq -0x2e8(%rbp), %rdi
leaq -0x330(%rbp), %rsi
callq 0x5f980
jmp 0x6396e
leaq -0x330(%rbp), %rdi
callq 0xac88
movq -0xd8(%rbp), %rax
movsd 0xb0(%rax), %xmm0
movl -0x308(%rbp), %eax
movl %eax, %ecx
decl %ecx
imull %ecx, %eax
addl %eax, %eax
cvtsi2sd %eax, %xmm1
divsd %xmm1, %xmm0
leaq -0x350(%rbp), %rdi
callq 0x650a0
jmp 0x639ae
leaq -0x2e8(%rbp), %rdi
leaq -0x350(%rbp), %rsi
callq 0x5f980
jmp 0x639c3
leaq -0x350(%rbp), %rdi
callq 0xac88
movq -0xd8(%rbp), %rax
movsd 0xb8(%rax), %xmm0
movl -0x30c(%rbp), %eax
movl %eax, %ecx
decl %ecx
imull %ecx, %eax
addl %eax, %eax
cvtsi2sd %eax, %xmm1
divsd %xmm1, %xmm0
leaq -0x370(%rbp), %rdi
callq 0x650a0
jmp 0x63a03
leaq -0x2e8(%rbp), %rdi
leaq -0x370(%rbp), %rsi
callq 0x5f980
jmp 0x63a18
leaq -0x370(%rbp), %rdi
callq 0xac88
movq -0xd8(%rbp), %rax
movsd 0xc8(%rax), %xmm0
movl -0x304(%rbp), %eax
movl -0x308(%rbp), %ecx
imull %ecx, %eax
addl %eax, %eax
cvtsi2sd %eax, %xmm1
divsd %xmm1, %xmm0
leaq -0x390(%rbp), %rdi
callq 0x650a0
jmp 0x63a5a
leaq -0x2e8(%rbp), %rdi
leaq -0x390(%rbp), %rsi
callq 0x5f980
jmp 0x63a6f
leaq -0x390(%rbp), %rdi
callq 0xac88
movq -0xd8(%rbp), %rax
movsd 0xd0(%rax), %xmm0
movl -0x304(%rbp), %eax
movl -0x308(%rbp), %ecx
addl %ecx, %eax
movl -0x30c(%rbp), %ecx
imull %ecx, %eax
addl %eax, %eax
cvtsi2sd %eax, %xmm1
divsd %xmm1, %xmm0
leaq -0x3b0(%rbp), %rdi
callq 0x650a0
jmp 0x63ab9
leaq -0x2e8(%rbp), %rdi
leaq -0x3b0(%rbp), %rsi
callq 0x5f980
jmp 0x63ace
leaq -0x3b0(%rbp), %rdi
callq 0xac88
movq -0xd8(%rbp), %rax
movsd 0xc0(%rax), %xmm0
movl -0x304(%rbp), %esi
movl -0x308(%rbp), %ecx
movl %esi, %eax
addl %ecx, %eax
movl %ecx, %edx
movl %esi, %ecx
leal -0x1(%rcx,%rdx), %ecx
imull %ecx, %eax
addl %eax, %eax
cvtsi2sd %eax, %xmm1
divsd %xmm1, %xmm0
leaq -0x3d0(%rbp), %rdi
callq 0x650a0
jmp 0x63b1c
leaq -0x2e8(%rbp), %rdi
leaq -0x3d0(%rbp), %rsi
callq 0x5f980
jmp 0x63b31
leaq -0x3d0(%rbp), %rdi
callq 0xac88
movq -0xd8(%rbp), %rax
xorps %xmm0, %xmm0
movsd %xmm0, 0xa8(%rax)
movq -0xd8(%rbp), %rax
xorps %xmm0, %xmm0
movsd %xmm0, 0xb0(%rax)
movq -0xd8(%rbp), %rax
xorps %xmm0, %xmm0
movsd %xmm0, 0xb8(%rax)
movq -0xd8(%rbp), %rax
xorps %xmm0, %xmm0
movsd %xmm0, 0xc8(%rax)
movq -0xd8(%rbp), %rax
xorps %xmm0, %xmm0
movsd %xmm0, 0xd0(%rax)
movq -0xd8(%rbp), %rax
xorps %xmm0, %xmm0
movsd %xmm0, 0xc0(%rax)
jmp 0x63cae
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x6404c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x63f4b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x330(%rbp), %rdi
callq 0xac88
jmp 0x63f4b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x350(%rbp), %rdi
callq 0xac88
jmp 0x63f4b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x370(%rbp), %rdi
callq 0xac88
jmp 0x63f4b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x390(%rbp), %rdi
callq 0xac88
jmp 0x63f4b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x3b0(%rbp), %rdi
callq 0xac88
jmp 0x63f4b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x3d0(%rbp), %rdi
callq 0xac88
jmp 0x63f4b
leaq -0x3e8(%rbp), %rdi
leaq -0x2e8(%rbp), %rsi
callq 0x3fee0
jmp 0x63cc3
movq 0x1352ee(%rip), %rsi    # 0x198fb8
leaq -0x3e8(%rbp), %rdi
movl $0x9, %edx
movl $0x1, %ecx
callq 0x50da0
jmp 0x63ce2
leaq -0x3e8(%rbp), %rdi
callq 0x3dfa0
leaq -0x400(%rbp), %rdi
leaq -0x2e8(%rbp), %rsi
callq 0x3fee0
jmp 0x63d03
movq -0x260(%rbp), %rsi
leaq -0x400(%rbp), %rdi
movl $0x9, %edx
movl $0x1, %ecx
callq 0x50da0
jmp 0x63d22
leaq -0x400(%rbp), %rdi
callq 0x3dfa0
movl $0x0, -0x404(%rbp)
movslq -0x404(%rbp), %rax
movq %rax, -0x968(%rbp)
leaq -0x300(%rbp), %rdi
callq 0x651b0
movq %rax, %rcx
movq -0x968(%rbp), %rax
subq $0x1, %rcx
cmpq %rcx, %rax
jae 0x63f3a
movl -0x404(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x408(%rbp)
movslq -0x408(%rbp), %rax
movq %rax, -0x970(%rbp)
leaq -0x300(%rbp), %rdi
callq 0x651b0
movq %rax, %rcx
movq -0x970(%rbp), %rax
cmpq %rcx, %rax
jae 0x63f24
movslq -0x408(%rbp), %rax
movq %rax, -0x978(%rbp)
leaq -0x300(%rbp), %rdi
callq 0x651b0
movq %rax, %rcx
movq -0x978(%rbp), %rax
subq $0x1, %rcx
cmpq %rcx, %rax
jne 0x63eb0
movslq -0x404(%rbp), %rax
movq %rax, -0x980(%rbp)
leaq -0x300(%rbp), %rdi
callq 0x651b0
movq %rax, %rcx
movq -0x980(%rbp), %rax
subq $0x2, %rcx
cmpq %rcx, %rax
jne 0x63eb0
movq -0x268(%rbp), %rax
movq %rax, -0x990(%rbp)
movslq -0x404(%rbp), %rsi
leaq -0x300(%rbp), %rdi
callq 0x651e0
movq %rax, %rdi
movslq -0x408(%rbp), %rsi
callq 0x3ec30
movq -0x990(%rbp), %rdi
movsd (%rax), %xmm0
callq 0xabd0
movq %rax, -0x988(%rbp)
jmp 0x63e50
movq -0x988(%rbp), %rdi
movq 0x13512a(%rip), %rsi    # 0x198f88
callq 0xa610
jmp 0x63e65
jmp 0x63f0e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x3e8(%rbp), %rdi
callq 0x3dfa0
jmp 0x63f4b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x400(%rbp), %rdi
callq 0x3dfa0
jmp 0x63f4b
movq -0x268(%rbp), %rax
movq %rax, -0x9a0(%rbp)
movslq -0x404(%rbp), %rsi
leaq -0x300(%rbp), %rdi
callq 0x651e0
movq %rax, %rdi
movslq -0x408(%rbp), %rsi
callq 0x3ec30
movq -0x9a0(%rbp), %rdi
movsd (%rax), %xmm0
callq 0xabd0
movq %rax, -0x998(%rbp)
jmp 0x63ef9
movq -0x998(%rbp), %rdi
movl $0x9, %esi
callq 0xa6d0
jmp 0x63f0c
jmp 0x63f0e
jmp 0x63f10
movl -0x408(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x408(%rbp)
jmp 0x63d78
jmp 0x63f26
movl -0x404(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x404(%rbp)
jmp 0x63d38
leaq -0x300(%rbp), %rdi
callq 0x65200
jmp 0x6403b
leaq -0x300(%rbp), %rdi
callq 0x65200
jmp 0x6404c
movsd 0x1357c4(%rip), %xmm0   # 0x199728
leaq -0x290(%rbp), %rdi
leaq -0x2e8(%rbp), %rsi
callq 0xb2d10
jmp 0x63f79
leaq -0x420(%rbp), %rdi
leaq -0x2e8(%rbp), %rsi
callq 0x3fee0
jmp 0x63f8e
movq 0x135023(%rip), %rsi    # 0x198fb8
leaq -0x420(%rbp), %rdi
movl $0x9, %edx
movl $0x1, %ecx
callq 0x50da0
jmp 0x63fad
leaq -0x420(%rbp), %rdi
callq 0x3dfa0
leaq -0x438(%rbp), %rdi
leaq -0x2e8(%rbp), %rsi
callq 0x3fee0
jmp 0x63fce
movq -0x260(%rbp), %rsi
leaq -0x438(%rbp), %rdi
movl $0x9, %edx
movl $0x1, %ecx
callq 0x50da0
jmp 0x63fed
leaq -0x438(%rbp), %rdi
callq 0x3dfa0
jmp 0x6403b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x420(%rbp), %rdi
callq 0x3dfa0
jmp 0x6404c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x438(%rbp), %rdi
callq 0x3dfa0
jmp 0x6404c
leaq -0x2e8(%rbp), %rdi
callq 0x3dfa0
jmp 0x644d7
leaq -0x2e8(%rbp), %rdi
callq 0x3dfa0
jmp 0x64512
movq -0x270(%rbp), %rsi
leaq -0x28(%rbp), %rdi
callq 0x3d940
movq %rax, %rsi
movq 0x134f41(%rip), %rdi    # 0x198fb8
callq 0xa520
movq %rax, -0x9a8(%rbp)
jmp 0x64085
movq -0x9a8(%rbp), %rdi
leaq 0xd1e4b(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x9b0(%rbp)
jmp 0x640a1
movq -0x9b0(%rbp), %rdi
leaq 0xca5d5(%rip), %rsi     # 0x12e684
callq 0xa5c0
movq %rax, -0x9b8(%rbp)
jmp 0x640bd
movq -0x9b8(%rbp), %rdi
leaq 0xd1e13(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x9c0(%rbp)
jmp 0x640d9
movq -0x9c0(%rbp), %rdi
leaq 0xca59d(%rip), %rsi     # 0x12e684
callq 0xa5c0
movq %rax, -0x9c8(%rbp)
jmp 0x640f5
movq -0x9c8(%rbp), %rdi
leaq 0xd1ddb(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x9d0(%rbp)
jmp 0x64111
movq -0x9d0(%rbp), %rdi
leaq 0xca565(%rip), %rsi     # 0x12e684
callq 0xa5c0
movq %rax, -0x9d8(%rbp)
jmp 0x6412d
movq -0x9d8(%rbp), %rdi
leaq 0xd1da3(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x9e0(%rbp)
jmp 0x64149
movq -0x9e0(%rbp), %rdi
leaq 0xca52d(%rip), %rsi     # 0x12e684
callq 0xa5c0
movq %rax, -0x9e8(%rbp)
jmp 0x64165
movq -0x9e8(%rbp), %rdi
leaq 0xd1d6b(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x9f0(%rbp)
jmp 0x64181
movq -0x9f0(%rbp), %rdi
leaq 0xca4f5(%rip), %rsi     # 0x12e684
callq 0xa5c0
movq %rax, -0x9f8(%rbp)
jmp 0x6419d
movq -0x9f8(%rbp), %rdi
leaq 0xd1d33(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0xa00(%rbp)
jmp 0x641b9
movq -0xa00(%rbp), %rdi
leaq 0xca4bd(%rip), %rsi     # 0x12e684
callq 0xa5c0
movq %rax, -0xa08(%rbp)
jmp 0x641d5
movq -0xa08(%rbp), %rdi
leaq 0xd1cfb(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0xa10(%rbp)
jmp 0x641f1
movq -0xa10(%rbp), %rdi
leaq 0xca485(%rip), %rsi     # 0x12e684
callq 0xa5c0
movq %rax, -0xa18(%rbp)
jmp 0x6420d
movq -0xa18(%rbp), %rdi
leaq 0xd1cc3(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0xa20(%rbp)
jmp 0x64229
movq -0xa20(%rbp), %rdi
leaq 0xca44d(%rip), %rsi     # 0x12e684
callq 0xa5c0
movq %rax, -0xa28(%rbp)
jmp 0x64245
movq -0xa28(%rbp), %rdi
leaq 0xd1c8b(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0xa30(%rbp)
jmp 0x64261
movq -0xa30(%rbp), %rdi
leaq 0xca415(%rip), %rsi     # 0x12e684
callq 0xa5c0
movq %rax, -0xa38(%rbp)
jmp 0x6427d
movq -0xa38(%rbp), %rdi
movq 0x134cfd(%rip), %rsi    # 0x198f88
callq 0xa610
jmp 0x64292
movq -0x260(%rbp), %rax
movq %rax, -0xa48(%rbp)
movq -0x270(%rbp), %rsi
leaq -0x28(%rbp), %rdi
callq 0x3d940
movq -0xa48(%rbp), %rdi
movq %rax, %rsi
callq 0xa520
movq %rax, -0xa40(%rbp)
jmp 0x642c8
movq -0xa40(%rbp), %rdi
leaq 0xd1c08(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0xa50(%rbp)
jmp 0x642e4
movq -0xa50(%rbp), %rdi
leaq 0xca392(%rip), %rsi     # 0x12e684
callq 0xa5c0
movq %rax, -0xa58(%rbp)
jmp 0x64300
movq -0xa58(%rbp), %rdi
leaq 0xd1bd0(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0xa60(%rbp)
jmp 0x6431c
movq -0xa60(%rbp), %rdi
leaq 0xca35a(%rip), %rsi     # 0x12e684
callq 0xa5c0
movq %rax, -0xa68(%rbp)
jmp 0x64338
movq -0xa68(%rbp), %rdi
leaq 0xd1b98(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0xa70(%rbp)
jmp 0x64354
movq -0xa70(%rbp), %rdi
leaq 0xca322(%rip), %rsi     # 0x12e684
callq 0xa5c0
movq %rax, -0xa78(%rbp)
jmp 0x64370
movq -0xa78(%rbp), %rdi
leaq 0xd1b60(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0xa80(%rbp)
jmp 0x6438c
movq -0xa80(%rbp), %rdi
leaq 0xca2ea(%rip), %rsi     # 0x12e684
callq 0xa5c0
movq %rax, -0xa88(%rbp)
jmp 0x643a8
movq -0xa88(%rbp), %rdi
leaq 0xd1b28(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0xa90(%rbp)
jmp 0x643c4
movq -0xa90(%rbp), %rdi
leaq 0xca2b2(%rip), %rsi     # 0x12e684
callq 0xa5c0
movq %rax, -0xa98(%rbp)
jmp 0x643e0
movq -0xa98(%rbp), %rdi
leaq 0xd1af0(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0xaa0(%rbp)
jmp 0x643fc
movq -0xaa0(%rbp), %rdi
leaq 0xca27a(%rip), %rsi     # 0x12e684
callq 0xa5c0
movq %rax, -0xaa8(%rbp)
jmp 0x64418
movq -0xaa8(%rbp), %rdi
leaq 0xd1ab8(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0xab0(%rbp)
jmp 0x64434
movq -0xab0(%rbp), %rdi
leaq 0xca242(%rip), %rsi     # 0x12e684
callq 0xa5c0
movq %rax, -0xab8(%rbp)
jmp 0x64450
movq -0xab8(%rbp), %rdi
leaq 0xd1a80(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0xac0(%rbp)
jmp 0x6446c
movq -0xac0(%rbp), %rdi
leaq 0xca20a(%rip), %rsi     # 0x12e684
callq 0xa5c0
movq %rax, -0xac8(%rbp)
jmp 0x64488
movq -0xac8(%rbp), %rdi
leaq 0xd1a48(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0xad0(%rbp)
jmp 0x644a4
movq -0xad0(%rbp), %rdi
leaq 0xca1d2(%rip), %rsi     # 0x12e684
callq 0xa5c0
movq %rax, -0xad8(%rbp)
jmp 0x644c0
movq -0xad8(%rbp), %rdi
movq 0x134aba(%rip), %rsi    # 0x198f88
callq 0xa610
jmp 0x644d5
jmp 0x644d7
leaq -0x2c8(%rbp), %rdi
callq 0xac88
leaq -0x2a8(%rbp), %rdi
callq 0x3dfa0
leaq -0x290(%rbp), %rdi
callq 0x3dfa0
movq -0x270(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x270(%rbp)
jmp 0x634b0
leaq -0x2c8(%rbp), %rdi
callq 0xac88
leaq -0x2a8(%rbp), %rdi
callq 0x3dfa0
leaq -0x290(%rbp), %rdi
callq 0x3dfa0
jmp 0x64567
leaq -0x80(%rbp), %rdi
callq 0x3ec50
leaq -0x68(%rbp), %rdi
callq 0xac88
leaq -0x48(%rbp), %rdi
callq 0xac88
leaq -0x28(%rbp), %rdi
callq 0x3dfa0
xorl %eax, %eax
addq $0xae0, %rsp            # imm = 0xAE0
popq %rbp
retq
leaq -0x80(%rbp), %rdi
callq 0x3ec50
leaq -0x68(%rbp), %rdi
callq 0xac88
leaq -0x48(%rbp), %rdi
callq 0xac88
leaq -0x28(%rbp), %rdi
callq 0x3dfa0
movq -0x88(%rbp), %rdi
callq 0xab50
nopw (%rax,%rax)