// File: /workspace/github_cpp_makefile_star2_O3/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 $0x188, %rsp            # imm = 0x188
movsd %xmm0, 0x70(%rsp)
movq %rsi, 0xf8(%rsp)
movq %rdi, %rbx
movq (%rdi), %rax
movq 0x8(%rdi), %r13
movq 0x8(%rax), %rcx
movq %rcx, 0x60(%rsp)
subq %rax, %r13
movq %r13, %rax
shrq $0x5, %rax
xorpd %xmm0, %xmm0
leaq 0xe0(%rsp), %rdi
movapd %xmm0, (%rdi)
movq $0x0, 0x10(%rdi)
movq %rax, 0x78(%rsp)
movslq %eax, %rsi
movq %rsi, 0x38(%rsp)
callq 0x3e6a2
xorl %eax, %eax
shlq $0x1b, %r13
leaq 0x160(%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 0x72173
xorl %eax, %eax
leaq 0x5b8bb(%rip), %r14     # 0xcd9cb
leaq 0x158(%rsp), %r15
movq %rsp, %r12
movq (%rbx), %rcx
shlq $0x5, %rax
movq 0x60(%rsp), %rdx
cmpq %rdx, 0x8(%rcx,%rax)
jne 0x72ab8
movq 0xe0(%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 0x761aa
movl $0x0, (%rax)
movq (%rsp), %rax
incq %rax
movq %rax, (%rsp)
cmpq 0x38(%rsp), %rax
jne 0x7211b
movl $0xc0, %edi
callq 0x8470
movq %rax, 0x20(%rsp)
movq %rax, %rdi
movq 0x78(%rsp), %rsi
callq 0x76210
cmpq $0x0, 0x60(%rsp)
je 0x72305
xorl %r14d, %r14d
movq %rsp, %rbp
testq %r13, %r13
je 0x72286
xorl %r15d, %r15d
movq 0x38(%rsp), %r12
movq (%rbx), %rax
movq (%rax,%r15), %rax
movsbl (%rax,%r14), %esi
movq 0xe0(%rsp), %rdi
addq %r15, %rdi
callq 0x83d0
addq $0x20, %r15
decq %r12
jne 0x721b2
incq %r14
movq %r14, %rax
movabsq $-0x5555555555555555, %rcx # imm = 0xAAAAAAAAAAAAAAAB
imulq %rcx, %rax
movabsq $0x5555555555555556, %rcx # imm = 0x5555555555555556
cmpq %rcx, %rax
jae 0x722fa
movq $0x0, 0x40(%rsp)
testq %r13, %r13
leaq 0x10(%rsp), %r12
je 0x722a9
xorl %esi, %esi
shlq $0x5, %rsi
addq 0xe0(%rsp), %rsi
movq %rbp, %rdi
callq 0x76360
movq %rbp, %rdi
leaq 0x6405d(%rip), %rsi     # 0xd6292
callq 0x8160
movl %eax, %r15d
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x72253
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x8480
testl %r15d, %r15d
jne 0x72270
leaq 0x158(%rsp), %rdi
leaq 0x40(%rsp), %rsi
callq 0x761aa
movl $0x1, (%rax)
movq 0x40(%rsp), %rsi
incq %rsi
movq %rsi, 0x40(%rsp)
cmpq 0x38(%rsp), %rsi
jne 0x72217
jmp 0x722a9
incq %r14
movq %r14, %rax
movabsq $-0x5555555555555555, %rcx # imm = 0xAAAAAAAAAAAAAAAB
imulq %rcx, %rax
movabsq $0x5555555555555555, %rcx # imm = 0x5555555555555555
cmpq %rcx, %rax
ja 0x722fa
leaq 0xe0(%rsp), %rdi
leaq 0x158(%rsp), %rsi
movq 0x20(%rsp), %rdx
callq 0x76b62
testq %r13, %r13
je 0x722fa
xorl %r15d, %r15d
movq 0x38(%rsp), %r12
movq 0xe0(%rsp), %rdi
movq 0x8(%rdi,%r15), %rdx
addq %r15, %rdi
xorl %esi, %esi
leaq 0x5b6e2(%rip), %rcx     # 0xcd9cb
xorl %r8d, %r8d
callq 0x86c0
addq $0x20, %r15
decq %r12
jne 0x722d0
cmpq 0x60(%rsp), %r14
jne 0x721a1
xorpd %xmm0, %xmm0
movapd %xmm0, 0x40(%rsp)
xorl %eax, %eax
movq %rax, 0x50(%rsp)
movq %rax, 0xc0(%rsp)
movapd %xmm0, 0xb0(%rsp)
movq %rax, 0xa0(%rsp)
movapd %xmm0, 0x90(%rsp)
movq 0x78(%rsp), %rax
decl %eax
movl %eax, 0x8c(%rsp)
je 0x727d7
cltq
movq %rax, 0x100(%rsp)
movsd 0x70(%rsp), %xmm0
addsd %xmm0, %xmm0
movsd %xmm0, 0x70(%rsp)
movq 0x20(%rsp), %r12
movq %r12, %rax
addq $0x30, %rax
movq %rax, 0x110(%rsp)
movq 0x38(%rsp), %rax
decq %rax
movq %rax, 0xd8(%rsp)
movl $0x8, %r15d
movl $0x1, %eax
movq %rax, 0xd0(%rsp)
xorl %r13d, %r13d
xorpd %xmm0, %xmm0
movsd %xmm0, 0x68(%rsp)
movsd %xmm0, 0x28(%rsp)
leaq 0x1(%r13), %rax
movq %rax, 0x108(%rsp)
cmpq 0x38(%rsp), %rax
je 0x727ab
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), %xmm1
movq (%rcx,%r14), %rax
addq %r15, %rax
movq 0x90(%r12), %rcx
movq (%rcx,%r14), %rcx
addq %r15, %rcx
movsd (%rax,%rbx,8), %xmm0
mulsd 0x70(%rsp), %xmm0
addsd (%rcx,%rbx,8), %xmm0
divsd %xmm0, %xmm1
movsd %xmm1, (%rsp)
movsd %xmm1, 0x30(%rsp)
ucomisd %xmm1, %xmm1
jp 0x7243e
movsd (%rax,%rbx,8), %xmm0
ucomisd 0x598fe(%rip), %xmm0    # 0xcbd30
jne 0x72648
jp 0x72648
movl $0x4, %edx
movq 0x8fb9e(%rip), %rdi     # 0x101fe8
leaq 0x63e46(%rip), %rsi     # 0xd6297
callq 0x84e0
movq 0x8fb8b(%rip), %rdi     # 0x101fe8
movq %r13, %rsi
callq 0x82f0
movq %rax, %rbp
movl $0x6, %edx
movq %rax, %rdi
leaq 0x63e25(%rip), %rsi     # 0xd629c
callq 0x84e0
movq 0xd0(%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 0x8fb22(%rip), %rdi     # 0x101fe8
leaq 0x63dd6(%rip), %rsi     # 0xd62a3
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 0x8faf0(%rip), %rdi     # 0x101fe8
callq 0x8730
movq %rax, %rbp
movl $0x12, %edx
movq %rax, %rdi
leaq 0x63da4(%rip), %rsi     # 0xd62b3
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 0x8fa81(%rip), %rdi     # 0x101fe8
leaq 0x63d58(%rip), %rsi     # 0xd62c6
callq 0x84e0
movsd (%rsp), %xmm0
movq 0x8fa69(%rip), %rdi     # 0x101fe8
callq 0x8730
movq %rax, %rbp
movl $0xa, %edx
movq %rax, %rdi
leaq 0x63d39(%rip), %rsi     # 0xd62cf
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 0x140(%rsp), %rdi
movq 0x20(%rsp), %rsi
callq 0x76f94
leaq 0x140(%rsp), %r12
movq %r12, %rdi
movq 0x8f9f1(%rip), %rsi     # 0x101fe8
callq 0x76ea2
movq %r12, %rdi
callq 0x42ffa
leaq 0x128(%rsp), %rdi
movq 0x110(%rsp), %rsi
callq 0x76f94
leaq 0x128(%rsp), %r12
movq %r12, %rdi
movq 0x8f9bd(%rip), %rsi     # 0x101fe8
callq 0x76ea2
movq %r12, %rdi
callq 0x42ffa
movsd (%rsp), %xmm0
movsd %xmm0, 0x30(%rsp)
movq 0x20(%rsp), %r12
movq 0x30(%r12), %rax
movq 0x78(%r12), %rcx
movq (%rax,%r14), %rax
addq %r15, %rax
movsd (%rax,%rbx,8), %xmm1
movq (%rcx,%r14), %rax
addq %r15, %rax
movq 0xa8(%r12), %rcx
movq (%rcx,%r14), %rcx
addq %r15, %rcx
movsd (%rax,%rbx,8), %xmm0
mulsd 0x70(%rsp), %xmm0
addsd (%rcx,%rbx,8), %xmm0
divsd %xmm0, %xmm1
movsd %xmm1, 0x80(%rsp)
testq %rbx, %rbx
setne %al
orb %r13b, %al
testb $0x1, %al
jne 0x72778
movsd %xmm1, 0x118(%rsp)
movq 0x48(%rsp), %rsi
cmpq 0x50(%rsp), %rsi
je 0x726cc
movsd 0x30(%rsp), %xmm0
movsd %xmm0, (%rsi)
addq $0x8, %rsi
movq %rsi, 0x48(%rsp)
jmp 0x726d9
leaq 0x40(%rsp), %rdi
movq %rsp, %rdx
callq 0x79b8e
movq 0xb8(%rsp), %rsi
cmpq 0xc0(%rsp), %rsi
je 0x72706
movsd 0x80(%rsp), %xmm0
movsd %xmm0, (%rsi)
addq $0x8, %rsi
movq %rsi, 0xb8(%rsp)
jmp 0x72724
leaq 0xb0(%rsp), %rdi
leaq 0x80(%rsp), %rdx
callq 0x79b8e
movsd 0x80(%rsp), %xmm0
movsd (%rsp), %xmm1
subsd %xmm0, %xmm1
movsd %xmm1, 0x120(%rsp)
movq 0x98(%rsp), %rsi
cmpq 0xa0(%rsp), %rsi
je 0x7275a
movsd %xmm1, (%rsi)
addq $0x8, %rsi
movq %rsi, 0x98(%rsp)
jmp 0x7276f
leaq 0x90(%rsp), %rdi
leaq 0x120(%rsp), %rdx
callq 0x311fc
movsd 0x118(%rsp), %xmm1
movsd 0x28(%rsp), %xmm0
addsd 0x30(%rsp), %xmm0
movsd %xmm0, 0x28(%rsp)
movsd 0x68(%rsp), %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, 0x68(%rsp)
incq %rbx
cmpq %rbx, 0xd8(%rsp)
jne 0x723d5
decq 0xd8(%rsp)
addq $0x8, %r15
incq 0xd0(%rsp)
movq 0x108(%rsp), %r13
cmpq 0x100(%rsp), %r13
jne 0x723b0
jmp 0x727e7
xorpd %xmm0, %xmm0
movsd %xmm0, 0x28(%rsp)
movsd %xmm0, 0x68(%rsp)
movq %rsp, %rdi
movq 0x60(%rsp), %rsi
callq 0x6e90d
movq %rsp, %rsi
movq 0xf8(%rsp), %rbx
movq %rbx, %rdi
callq 0x3e784
movl 0x8c(%rsp), %eax
imull 0x78(%rsp), %eax
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movsd 0x632fe(%rip), %xmm1    # 0xd5b20
divsd %xmm0, %xmm1
movsd 0x28(%rsp), %xmm0
movsd %xmm1, 0x30(%rsp)
mulsd %xmm1, %xmm0
movsd %xmm0, 0x28(%rsp)
leaq 0x10(%rsp), %r14
movq -0x10(%r14), %rdi
cmpq %r14, %rdi
je 0x72857
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x8480
movq %rsp, %rdi
movsd 0x28(%rsp), %xmm0
callq 0x42f10
movq %rsp, %rsi
movq %rbx, %rdi
callq 0x3e784
movsd 0x30(%rsp), %xmm0
mulsd 0x68(%rsp), %xmm0
movsd %xmm0, 0x30(%rsp)
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x72898
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x8480
movq %rsp, %rdi
movsd 0x30(%rsp), %xmm0
callq 0x42f10
movq %rsp, %rsi
movq %rbx, %rdi
callq 0x3e784
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x728c7
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x8480
movq 0x48(%rsp), %rax
subq 0x40(%rsp), %rax
cmpq $0x51, %rax
jb 0x7298d
leaq 0x40(%rsp), %rdi
callq 0x37608
movsd %xmm0, 0x30(%rsp)
leaq 0xb0(%rsp), %rdi
callq 0x37608
movsd %xmm0, 0x28(%rsp)
leaq 0x90(%rsp), %rdi
callq 0x37608
movsd %xmm0, 0x20(%rsp)
movq %rsp, %rdi
movsd 0x30(%rsp), %xmm0
callq 0x42f10
movq %rsp, %rsi
movq %rbx, %rdi
callq 0x3e784
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x72940
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x8480
movq %rsp, %rdi
movsd 0x28(%rsp), %xmm0
callq 0x42f10
movq %rsp, %rsi
movq %rbx, %rdi
callq 0x3e784
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x7296f
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x8480
movq %rsp, %rdi
movsd 0x20(%rsp), %xmm0
callq 0x42f10
movq %rsp, %rsi
movq %rbx, %rdi
callq 0x3e784
jmp 0x72a25
movq %rsp, %rdi
movq %r14, (%rdi)
leaq 0x5789a(%rip), %rsi     # 0xca234
leaq 0x57895(%rip), %rdx     # 0xca236
callq 0x28a52
movq %rsp, %rsi
movq %rbx, %rdi
callq 0x3e784
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x729c7
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x8480
movq %rsp, %rdi
movq %r14, (%rdi)
leaq 0x57860(%rip), %rsi     # 0xca234
leaq 0x5785b(%rip), %rdx     # 0xca236
callq 0x28a52
movq %rsp, %rsi
movq %rbx, %rdi
callq 0x3e784
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x72a01
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x8480
movq %rsp, %rdi
movq %r14, (%rdi)
leaq 0x57826(%rip), %rsi     # 0xca234
leaq 0x57821(%rip), %rdx     # 0xca236
callq 0x28a52
movq %rsp, %rsi
movq %rbx, %rdi
callq 0x3e784
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x72a3b
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x8480
movq 0x90(%rsp), %rdi
testq %rdi, %rdi
je 0x72a58
movq 0xa0(%rsp), %rsi
subq %rdi, %rsi
callq 0x8480
movq 0xb0(%rsp), %rdi
testq %rdi, %rdi
je 0x72a75
movq 0xc0(%rsp), %rsi
subq %rdi, %rsi
callq 0x8480
movq 0x40(%rsp), %rdi
testq %rdi, %rdi
je 0x72a8c
movq 0x50(%rsp), %rsi
subq %rdi, %rsi
callq 0x8480
leaq 0x158(%rsp), %rdi
callq 0x79a02
leaq 0xe0(%rsp), %rdi
callq 0x2e784
addq $0x188, %rsp            # imm = 0x188
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x63756(%rip), %rdi     # 0xd6215
leaq 0x635cc(%rip), %rsi     # 0xd6092
leaq 0x6376c(%rip), %rcx     # 0xd6239
movl $0x171, %edx            # imm = 0x171
callq 0x82c0
jmp 0x72b17
jmp 0x72b97
jmp 0x72b17
jmp 0x72b17
jmp 0x72b97
jmp 0x72b97
jmp 0x72b17
jmp 0x72b17
jmp 0x72b97
jmp 0x72b97
jmp 0x72b97
jmp 0x72b17
jmp 0x72b97
jmp 0x72b97
jmp 0x72b97
jmp 0x72b17
jmp 0x72b97
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x72b9a
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x8480
jmp 0x72b9a
jmp 0x72b97
movq %rax, %rbx
leaq 0x10(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
jne 0x72b23
jmp 0x72b9a
jmp 0x72b97
movq %rax, %rbx
movl $0xc0, %esi
movq 0x20(%rsp), %rdi
jmp 0x72be6
jmp 0x72b92
movq %rax, %rbx
jmp 0x72bf8
jmp 0x72b92
jmp 0x72b92
jmp 0x72b92
jmp 0x72b97
jmp 0x72b92
jmp 0x72b97
jmp 0x72b92
movq %rax, %rbx
leaq 0x140(%rsp), %rdi
jmp 0x72b8b
movq %rax, %rbx
leaq 0x128(%rsp), %rdi
callq 0x42ffa
jmp 0x72b9a
movq %rax, %rbx
jmp 0x72beb
movq %rax, %rbx
movq 0x90(%rsp), %rdi
testq %rdi, %rdi
je 0x72bb7
movq 0xa0(%rsp), %rsi
subq %rdi, %rsi
callq 0x8480
movq 0xb0(%rsp), %rdi
testq %rdi, %rdi
je 0x72bd4
movq 0xc0(%rsp), %rsi
subq %rdi, %rsi
callq 0x8480
movq 0x40(%rsp), %rdi
testq %rdi, %rdi
je 0x72beb
movq 0x50(%rsp), %rsi
subq %rdi, %rsi
callq 0x8480
leaq 0x158(%rsp), %rdi
callq 0x79a02
leaq 0xe0(%rsp), %rdi
callq 0x2e784
movq %rbx, %rdi
callq 0x8840