// File: /workspace/github_cpp_makefile_star2_O1/millanek[P]evo/process_vcf_coding_sequences.cpp
// Function: getStatsHaploidSeq(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>> const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>&, double)
void getStatsHaploidSeq(const std::vector<std::string>& allSeqs, std::vector<string>& statsThisGene, double tStVratio) {
    std::string::size_type geneLengthNt = allSeqs[0].length();
    int numSamples = (int)allSeqs.size();
    double pN = 0; double pS = 0;
    std::vector<string> altCodons; altCodons.resize(numSamples);
    std::map<std::vector<string>::size_type, int> haveStop;
    
    for (std::vector<string>::size_type i = 0; i != numSamples; i++) {
        assert(allSeqs[i].length() == geneLengthNt);
        altCodons[i] = ""; haveStop[i] = 0; 
    }
    
    CDSComparisonMatrices* pairwiseMatrices = new CDSComparisonMatrices(numSamples);
    for (string::size_type i = 0; i != geneLengthNt; i++) {
        for (std::vector<std::string>::size_type j = 0; j != numSamples; j++) {
            altCodons[j] += allSeqs[j][i];
        }
        // Find the types of mutation we are dealing with
        if ((i+1)%3 == 0) {
            for (std::vector<std::string>::size_type j = 0; j != numSamples; j++) {
                if (getAminoAcid(altCodons[j]) == "Stop") haveStop[j] = 1;
            }
           // std::cerr << "Now going to loop through codons: i = " << i << "altCodons.size():" << altCodons.size() << std::endl;
            addAllPairwiseN_S_Nd_Sd_DifferentIndividuals(altCodons,haveStop, *pairwiseMatrices);
            //std::cerr << "Added pairwise among H1:" << std::endl;
            for (std::vector<std::string>::size_type j = 0; j != numSamples; j++) {
             //   std::cerr << "j = " << j << "; altCodons[j]: " << altCodons[j] << std::endl;
                altCodons[j] = "";
               // std::cerr << "j = " << j << "; haveStop[j]: " << haveStop[j] << std::endl;
            }
        }
    }
     
    double sumPn = 0; double sumPs = 0;
    std::vector<double> pNjackknifeVector;
    std::vector<double> pSjackknifeVector;
    std::vector<double> pN_pSjackknifeVector;
    // Add the within H1 and within H2 comparisons
    for (std::vector<std::string>::size_type j = 0; j != numSamples - 1; j++) {
        //std::cerr << "j = " << j << "; sumPn: " << sumPn << "; sumPs:" << sumPs << std::endl;
        for (std::vector<std::string>::size_type k = j+1; k != numSamples; k++) {
            //double pN_jk = pairwiseMatrices.H1p->N_d_jk[j][k]/pairwiseMatrices.H1p->N_jk[j][k];
            double pN_jk = pairwiseMatrices->N_d_jk[j][k]/((2*tStVratio*pairwiseMatrices->tS_N_jk[j][k])+pairwiseMatrices->tV_N_jk[j][k]);
            if (std::isnan(pN_jk) || pairwiseMatrices->tS_N_jk[j][k] == 0) {
            std::cerr << "j = " << j << "; k = " << k << std::endl;
            std::cerr << "N_d_jk[j][k] = " << pairwiseMatrices->N_d_jk[j][k] << "; tS_N_jk[j][k] = " << pairwiseMatrices->tS_N_jk[j][k] << std::endl;
            std::cerr << "pN_jk = " << pN_jk << "; sumPn = " << sumPn << std::endl;
                print_matrix(pairwiseMatrices->N_d_jk, std::cerr);
                print_matrix(pairwiseMatrices->S_d_jk, std::cerr);
            }
            sumPn = sumPn + pN_jk;
            double pS_jk = pairwiseMatrices->S_d_jk[j][k]/((2*tStVratio*pairwiseMatrices->tS_S_jk[j][k])+pairwiseMatrices->tV_S_jk[j][k]);
            sumPs = sumPs + pS_jk;
    
            // make sure each sample is used only once in the jackknife calculation
            // to keep the observations independent
            if ((j % 2 == 0) && (k == j+1)) {
                pNjackknifeVector.push_back(pN_jk); pSjackknifeVector.push_back(pS_jk);
                pN_pSjackknifeVector.push_back(pN_jk-pS_jk);
            }
        }
    }
    pN = (2.0/(numSamples*(numSamples-1)))*sumPn;
    pS = (2.0/(numSamples*(numSamples-1)))*sumPs;
    
    statsThisGene.push_back(numToString(geneLengthNt));
    statsThisGene.push_back(numToString(pN));
    statsThisGene.push_back(numToString(pS));
    if (pNjackknifeVector.size() > 10) {
        double pNstdErr = jackknive_std_err(pNjackknifeVector);
        double pSstdErr = jackknive_std_err(pSjackknifeVector);
        double pNpSstdErr = jackknive_std_err(pN_pSjackknifeVector);
        statsThisGene.push_back(numToString(pNstdErr));
        statsThisGene.push_back(numToString(pSstdErr));
        statsThisGene.push_back(numToString(pNpSstdErr));
    } else {
        statsThisGene.push_back("NA");
        statsThisGene.push_back("NA");
        statsThisGene.push_back("NA");
    }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x178, %rsp            # imm = 0x178
movsd %xmm0, 0x38(%rsp)
movq %rsi, 0xe8(%rsp)
movq %rdi, %rbx
movq (%rdi), %rax
movq 0x8(%rdi), %r13
movq 0x8(%rax), %rcx
movq %rcx, 0x58(%rsp)
subq %rax, %r13
movq %r13, %rax
shrq $0x5, %rax
xorpd %xmm0, %xmm0
leaq 0xd0(%rsp), %rdi
movapd %xmm0, (%rdi)
movq $0x0, 0x10(%rdi)
movq %rax, 0x68(%rsp)
movslq %eax, %rsi
movq %rsi, 0x30(%rsp)
callq 0x415c4
xorl %eax, %eax
shlq $0x1b, %r13
leaq 0x150(%rsp), %rcx
movl $0x0, (%rcx)
movq %rax, 0x8(%rcx)
movq %rcx, 0x10(%rcx)
movq %rcx, 0x18(%rcx)
movq %rax, 0x20(%rcx)
movq %rax, (%rsp)
je 0x724d4
xorl %eax, %eax
leaq 0x5f80e(%rip), %r14     # 0xd1c7f
leaq 0x148(%rsp), %r15
movq %rsp, %r12
movq (%rbx), %rcx
shlq $0x5, %rax
movq 0x58(%rsp), %rdx
cmpq %rdx, 0x8(%rcx,%rax)
jne 0x72de4
movq 0xd0(%rsp), %rcx
leaq (%rcx,%rax), %rdi
movq 0x8(%rcx,%rax), %rdx
xorl %esi, %esi
movq %r14, %rcx
xorl %r8d, %r8d
callq 0x86c0
movq %r15, %rdi
movq %r12, %rsi
callq 0x76548
movl $0x0, (%rax)
movq (%rsp), %rax
incq %rax
movq %rax, (%rsp)
cmpq 0x30(%rsp), %rax
jne 0x7247c
movl $0xc0, %edi
callq 0x8470
movq %rax, 0x20(%rsp)
movq %rax, %rdi
movq 0x68(%rsp), %rsi
callq 0x765ae
cmpq $0x0, 0x58(%rsp)
je 0x7263c
xorl %r12d, %r12d
movq %rsp, %rbp
testq %r13, %r13
je 0x72534
xorl %r14d, %r14d
movq 0x30(%rsp), %r15
movq (%rbx), %rax
movq (%rax,%r14), %rax
movsbl (%rax,%r12), %esi
movq 0xd0(%rsp), %rdi
addq %r14, %rdi
callq 0x83d0
addq $0x20, %r14
decq %r15
jne 0x7250f
incq %r12
movq %r12, %rax
movabsq $-0x5555555555555555, %rcx # imm = 0xAAAAAAAAAAAAAAAB
imulq %rcx, %rax
movabsq $0x5555555555555556, %rcx # imm = 0x5555555555555556
cmpq %rcx, %rax
jae 0x72631
movq $0x0, 0x40(%rsp)
testq %r13, %r13
movq 0x30(%rsp), %r14
je 0x725e0
xorl %esi, %esi
shlq $0x5, %rsi
addq 0xd0(%rsp), %rsi
movq %rbp, %rdi
callq 0x766fe
movq %rbp, %rdi
leaq 0x6ac74(%rip), %rsi     # 0xdd202
callq 0x8160
movl %eax, %r15d
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x725b1
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x8480
testl %r15d, %r15d
jne 0x725ce
leaq 0x148(%rsp), %rdi
leaq 0x40(%rsp), %rsi
callq 0x76548
movl $0x1, (%rax)
movq 0x40(%rsp), %rsi
incq %rsi
movq %rsi, 0x40(%rsp)
cmpq %r14, %rsi
jne 0x72570
leaq 0xd0(%rsp), %rdi
leaq 0x148(%rsp), %rsi
movq 0x20(%rsp), %rdx
callq 0x76f00
testq %r13, %r13
je 0x72631
xorl %r15d, %r15d
movq 0x30(%rsp), %r14
movq 0xd0(%rsp), %rdi
movq 0x8(%rdi,%r15), %rdx
addq %r15, %rdi
xorl %esi, %esi
leaq 0x5f65f(%rip), %rcx     # 0xd1c7f
xorl %r8d, %r8d
callq 0x86c0
addq $0x20, %r15
decq %r14
jne 0x72607
cmpq 0x58(%rsp), %r12
jne 0x72502
xorpd %xmm0, %xmm0
movapd %xmm0, 0x40(%rsp)
xorl %eax, %eax
movq %rax, 0x50(%rsp)
movq %rax, 0xb0(%rsp)
movapd %xmm0, 0xa0(%rsp)
movq %rax, 0x90(%rsp)
movapd %xmm0, 0x80(%rsp)
movq 0x68(%rsp), %rax
decl %eax
movl %eax, 0x7c(%rsp)
je 0x72b06
cltq
movq %rax, 0xf0(%rsp)
movsd 0x38(%rsp), %xmm0
addsd %xmm0, %xmm0
movsd %xmm0, 0x38(%rsp)
movq 0x20(%rsp), %r12
movq %r12, %rax
addq $0x30, %rax
movq %rax, 0x100(%rsp)
movq 0x30(%rsp), %rax
leaq -0x1(%rax), %rcx
movq %rcx, 0xc0(%rsp)
movl $0x8, %r15d
movl $0x1, %ecx
movq %rcx, 0xb8(%rsp)
xorl %r13d, %r13d
xorpd %xmm0, %xmm0
movsd %xmm0, 0x60(%rsp)
movsd %xmm0, 0x28(%rsp)
leaq 0x1(%r13), %rcx
movq %rcx, 0xf8(%rsp)
cmpq %rax, %rcx
je 0x72ad5
leaq (,%r13,8), %rax
leaq (%rax,%rax,2), %r14
xorl %ebx, %ebx
movq (%r12), %rax
movq 0x60(%r12), %rcx
movq (%rax,%r14), %rax
addq %r15, %rax
movsd (%rax,%rbx,8), %xmm0
movq (%rcx,%r14), %rax
addq %r15, %rax
movq 0x90(%r12), %rcx
movq (%rcx,%r14), %rcx
addq %r15, %rcx
movsd (%rax,%rbx,8), %xmm1
mulsd 0x38(%rsp), %xmm1
addsd (%rcx,%rbx,8), %xmm1
divsd %xmm1, %xmm0
movsd %xmm0, (%rsp)
ucomisd %xmm0, %xmm0
jp 0x7276b
movsd (%rax,%rbx,8), %xmm0
ucomisd 0x5b8c9(%rip), %xmm0    # 0xce028
jne 0x7296a
jp 0x7296a
movl $0x4, %edx
movq 0x98871(%rip), %rdi     # 0x10afe8
leaq 0x6aa89(%rip), %rsi     # 0xdd207
callq 0x84e0
movq 0x9885e(%rip), %rdi     # 0x10afe8
movq %r13, %rsi
callq 0x82f0
movq %rax, %rbp
movl $0x6, %edx
movq %rax, %rdi
leaq 0x6aa68(%rip), %rsi     # 0xdd20c
callq 0x84e0
movq 0xb8(%rsp), %rax
leaq (%rax,%rbx), %rsi
movq %rbp, %rdi
callq 0x82f0
movq %rax, %rbp
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x8450
movsbl %al, %esi
movq %rbp, %rdi
callq 0x8040
movq %rax, %rdi
callq 0x8300
movl $0xf, %edx
movq 0x987f5(%rip), %rdi     # 0x10afe8
leaq 0x6aa19(%rip), %rsi     # 0xdd213
callq 0x84e0
movq 0x20(%rsp), %rax
movq (%rax), %rax
leaq (,%r13,2), %r12
addq %r13, %r12
movq (%rax,%r12,8), %rax
addq %r15, %rax
movsd (%rax,%rbx,8), %xmm0
movq 0x987c3(%rip), %rdi     # 0x10afe8
callq 0x8730
movq %rax, %rbp
movl $0x12, %edx
movq %rax, %rdi
leaq 0x6a9e7(%rip), %rsi     # 0xdd223
callq 0x84e0
movq 0x20(%rsp), %rax
movq 0x60(%rax), %rax
movq (%rax,%r12,8), %rax
addq %r15, %rax
movsd (%rax,%rbx,8), %xmm0
movq %rbp, %rdi
callq 0x8730
movq %rax, %rbp
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x8450
movsbl %al, %esi
movq %rbp, %rdi
callq 0x8040
movq %rax, %rdi
callq 0x8300
movl $0x8, %edx
movq 0x98754(%rip), %rdi     # 0x10afe8
leaq 0x6a99b(%rip), %rsi     # 0xdd236
callq 0x84e0
movsd (%rsp), %xmm0
movq 0x9873c(%rip), %rdi     # 0x10afe8
callq 0x8730
movq %rax, %rbp
movl $0xa, %edx
movq %rax, %rdi
leaq 0x6a97c(%rip), %rsi     # 0xdd23f
callq 0x84e0
movq %rbp, %rdi
movsd 0x28(%rsp), %xmm0
callq 0x8730
movq %rax, %rbp
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x8450
movsbl %al, %esi
movq %rbp, %rdi
callq 0x8040
movq %rax, %rdi
callq 0x8300
leaq 0x130(%rsp), %rdi
movq 0x20(%rsp), %rsi
callq 0x77324
leaq 0x130(%rsp), %r12
movq %r12, %rdi
movq 0x986c4(%rip), %rsi     # 0x10afe8
callq 0x7723a
movq %r12, %rdi
callq 0x45f06
leaq 0x118(%rsp), %rdi
movq 0x100(%rsp), %rsi
callq 0x77324
leaq 0x118(%rsp), %r12
movq %r12, %rdi
movq 0x98690(%rip), %rsi     # 0x10afe8
callq 0x7723a
movq %r12, %rdi
callq 0x45f06
movq 0x20(%rsp), %r12
movsd (%rsp), %xmm1
movq 0x30(%r12), %rax
movq 0x78(%r12), %rcx
movq (%rax,%r14), %rax
addq %r15, %rax
movsd (%rax,%rbx,8), %xmm2
movq (%rcx,%r14), %rax
addq %r15, %rax
movq 0xa8(%r12), %rcx
movq (%rcx,%r14), %rcx
addq %r15, %rcx
movsd (%rax,%rbx,8), %xmm0
mulsd 0x38(%rsp), %xmm0
addsd (%rcx,%rbx,8), %xmm0
divsd %xmm0, %xmm2
movsd %xmm2, 0x70(%rsp)
testq %rbx, %rbx
setne %al
orb %r13b, %al
testb $0x1, %al
jne 0x72aa4
movsd %xmm2, 0x108(%rsp)
movsd %xmm1, 0xc8(%rsp)
movq 0x48(%rsp), %rsi
cmpq 0x50(%rsp), %rsi
je 0x729fc
movsd 0xc8(%rsp), %xmm0
movsd %xmm0, (%rsi)
addq $0x8, %rsi
movq %rsi, 0x48(%rsp)
jmp 0x72a09
leaq 0x40(%rsp), %rdi
movq %rsp, %rdx
callq 0x79f34
movq 0xa8(%rsp), %rsi
cmpq 0xb0(%rsp), %rsi
je 0x72a33
movsd 0x70(%rsp), %xmm0
movsd %xmm0, (%rsi)
addq $0x8, %rsi
movq %rsi, 0xa8(%rsp)
jmp 0x72a45
leaq 0xa0(%rsp), %rdi
leaq 0x70(%rsp), %rdx
callq 0x79f34
movsd (%rsp), %xmm0
subsd 0x70(%rsp), %xmm0
movsd %xmm0, 0x110(%rsp)
movq 0x88(%rsp), %rsi
cmpq 0x90(%rsp), %rsi
je 0x72a7d
movsd %xmm0, (%rsi)
addq $0x8, %rsi
movq %rsi, 0x88(%rsp)
jmp 0x72a92
leaq 0x80(%rsp), %rdi
leaq 0x110(%rsp), %rdx
callq 0x33c70
movsd 0xc8(%rsp), %xmm1
movsd 0x108(%rsp), %xmm2
movsd 0x28(%rsp), %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, 0x28(%rsp)
movsd 0x60(%rsp), %xmm0
addsd %xmm2, %xmm0
movsd %xmm0, 0x60(%rsp)
incq %rbx
cmpq %rbx, 0xc0(%rsp)
jne 0x72708
decq 0xc0(%rsp)
addq $0x8, %r15
incq 0xb8(%rsp)
movq 0xf8(%rsp), %r13
cmpq 0xf0(%rsp), %r13
movq 0x30(%rsp), %rax
jne 0x726e5
jmp 0x72b16
xorpd %xmm0, %xmm0
movsd %xmm0, 0x28(%rsp)
movsd %xmm0, 0x60(%rsp)
movq %rsp, %rdi
movq 0x58(%rsp), %rsi
callq 0x6ec27
movq %rsp, %rsi
movq 0xe8(%rsp), %rbx
movq %rbx, %rdi
callq 0x416a6
movl 0x7c(%rsp), %eax
imull 0x68(%rsp), %eax
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movsd 0x69492(%rip), %xmm1    # 0xdbfe0
divsd %xmm0, %xmm1
movsd 0x28(%rsp), %xmm0
movsd %xmm1, 0x20(%rsp)
mulsd %xmm1, %xmm0
movsd %xmm0, 0x28(%rsp)
leaq 0x10(%rsp), %r14
movq -0x10(%r14), %rdi
cmpq %r14, %rdi
je 0x72b83
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x8480
movq %rsp, %rdi
movsd 0x28(%rsp), %xmm0
callq 0x45e1c
movq %rsp, %rsi
movq %rbx, %rdi
callq 0x416a6
movsd 0x20(%rsp), %xmm0
mulsd 0x60(%rsp), %xmm0
movsd %xmm0, 0x20(%rsp)
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x72bc4
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x8480
movq %rsp, %rdi
movsd 0x20(%rsp), %xmm0
callq 0x45e1c
movq %rsp, %rsi
movq %rbx, %rdi
callq 0x416a6
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x72bf3
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x8480
movq 0x48(%rsp), %rax
subq 0x40(%rsp), %rax
cmpq $0x51, %rax
jb 0x72cb9
leaq 0x40(%rsp), %rdi
callq 0x3a4b8
movsd %xmm0, 0x28(%rsp)
leaq 0xa0(%rsp), %rdi
callq 0x3a4b8
movsd %xmm0, 0x20(%rsp)
leaq 0x80(%rsp), %rdi
callq 0x3a4b8
movsd %xmm0, 0x38(%rsp)
movq %rsp, %rdi
movsd 0x28(%rsp), %xmm0
callq 0x45e1c
movq %rsp, %rsi
movq %rbx, %rdi
callq 0x416a6
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x72c6c
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x8480
movq %rsp, %rdi
movsd 0x20(%rsp), %xmm0
callq 0x45e1c
movq %rsp, %rsi
movq %rbx, %rdi
callq 0x416a6
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x72c9b
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x8480
movq %rsp, %rdi
movsd 0x38(%rsp), %xmm0
callq 0x45e1c
movq %rsp, %rsi
movq %rbx, %rdi
callq 0x416a6
jmp 0x72d51
movq %rsp, %rdi
movq %r14, (%rdi)
leaq 0x587ae(%rip), %rsi     # 0xcb474
leaq 0x587a9(%rip), %rdx     # 0xcb476
callq 0x28952
movq %rsp, %rsi
movq %rbx, %rdi
callq 0x416a6
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x72cf3
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x8480
movq %rsp, %rdi
movq %r14, (%rdi)
leaq 0x58774(%rip), %rsi     # 0xcb474
leaq 0x5876f(%rip), %rdx     # 0xcb476
callq 0x28952
movq %rsp, %rsi
movq %rbx, %rdi
callq 0x416a6
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x72d2d
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x8480
movq %rsp, %rdi
movq %r14, (%rdi)
leaq 0x5873a(%rip), %rsi     # 0xcb474
leaq 0x58735(%rip), %rdx     # 0xcb476
callq 0x28952
movq %rsp, %rsi
movq %rbx, %rdi
callq 0x416a6
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x72d67
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x8480
movq 0x80(%rsp), %rdi
testq %rdi, %rdi
je 0x72d84
movq 0x90(%rsp), %rsi
subq %rdi, %rsi
callq 0x8480
movq 0xa0(%rsp), %rdi
testq %rdi, %rdi
je 0x72da1
movq 0xb0(%rsp), %rsi
subq %rdi, %rsi
callq 0x8480
movq 0x40(%rsp), %rdi
testq %rdi, %rdi
je 0x72db8
movq 0x50(%rsp), %rsi
subq %rdi, %rsi
callq 0x8480
leaq 0x148(%rsp), %rdi
callq 0x79d9e
leaq 0xd0(%rsp), %rdi
callq 0x3123c
addq $0x178, %rsp            # imm = 0x178
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x6a39a(%rip), %rdi     # 0xdd185
leaq 0x6a210(%rip), %rsi     # 0xdd002
leaq 0x6a3b0(%rip), %rcx     # 0xdd1a9
movl $0x171, %edx            # imm = 0x171
callq 0x82c0
jmp 0x72e43
jmp 0x72ec3
jmp 0x72e43
jmp 0x72e43
jmp 0x72ec3
jmp 0x72ec3
jmp 0x72e43
jmp 0x72e43
jmp 0x72ec3
jmp 0x72ec3
jmp 0x72ec3
jmp 0x72e43
jmp 0x72ec3
jmp 0x72ec3
jmp 0x72ec3
jmp 0x72e43
jmp 0x72ec3
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x72ec6
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x8480
jmp 0x72ec6
jmp 0x72ec3
movq %rax, %rbx
leaq 0x10(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
jne 0x72e4f
jmp 0x72ec6
jmp 0x72ec3
movq %rax, %rbx
movl $0xc0, %esi
movq 0x20(%rsp), %rdi
jmp 0x72f12
jmp 0x72ebe
movq %rax, %rbx
jmp 0x72f24
jmp 0x72ebe
jmp 0x72ebe
jmp 0x72ebe
jmp 0x72ec3
jmp 0x72ec3
jmp 0x72ebe
jmp 0x72ebe
movq %rax, %rbx
leaq 0x130(%rsp), %rdi
jmp 0x72eb7
movq %rax, %rbx
leaq 0x118(%rsp), %rdi
callq 0x45f06
jmp 0x72ec6
movq %rax, %rbx
jmp 0x72f17
movq %rax, %rbx
movq 0x80(%rsp), %rdi
testq %rdi, %rdi
je 0x72ee3
movq 0x90(%rsp), %rsi
subq %rdi, %rsi
callq 0x8480
movq 0xa0(%rsp), %rdi
testq %rdi, %rdi
je 0x72f00
movq 0xb0(%rsp), %rsi
subq %rdi, %rsi
callq 0x8480
movq 0x40(%rsp), %rdi
testq %rdi, %rdi
je 0x72f17
movq 0x50(%rsp), %rsi
subq %rdi, %rsi
callq 0x8480
leaq 0x148(%rsp), %rdi
callq 0x79d9e
leaq 0xd0(%rsp), %rdi
callq 0x3123c
movq %rbx, %rdi
callq 0x8840