// File: /workspace/github_cpp_makefile_star2_O1/millanek[P]evo/./process_vcf_coding_sequences.h
// Function: calculateNd(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, int)
inline double calculateNd(const std::string& refCdn, const std::string& altCdn, int diffNum) {
    assert(refCdn.length() == altCdn.length());
    std::string refStep = refCdn;
    int countNS = 0;
    double Nd = 0;
    
    if (diffNum == 1) {
        if (s_mapCodonPairToSynonymous.count(refCdn+altCdn) == 0)
            Nd = 1.0;
    }
    
    if (diffNum == 2) {
        std::vector<std::string::size_type> diffPos;
        for (std::string::size_type i = 0; i != refCdn.length(); i++) {
            if (refCdn[i] != altCdn[i]) {
                diffPos.push_back(i);
            }
        }
        refStep[diffPos[0]] = altCdn[diffPos[0]];
        if (s_mapCodonPairToSynonymous.count(refCdn+refStep) == 0)
            countNS++;
        if (s_mapCodonPairToSynonymous.count(refStep+altCdn) == 0)
            countNS++;
        refStep = refCdn; // the reverse order of mutations
        refStep[diffPos[1]] = altCdn[diffPos[1]];
        if (s_mapCodonPairToSynonymous.count(refCdn+refStep) == 0)
            countNS++;
        if (s_mapCodonPairToSynonymous.count(refStep+altCdn) == 0)
            countNS++;
        Nd = countNS/2.0;
    }
    
    if (diffNum == 3) { // six different mutation pathways (orders of mutations)
        refStep[0] = altCdn[0]; // 1
        if (s_mapCodonPairToSynonymous.count(refCdn+refStep) == 0)
            countNS++;
        string refStep2 = refStep;
        refStep2[1] = altCdn[1];
        if (s_mapCodonPairToSynonymous.count(refStep+refStep2) == 0)
            countNS++;
        if (s_mapCodonPairToSynonymous.count(refStep2+altCdn) == 0)
            countNS++;
        refStep = refCdn;                           // 2
        refStep[2] = altCdn[2];
        if (s_mapCodonPairToSynonymous.count(refCdn+refStep) == 0)
            countNS++;
        refStep2 = refStep;
        refStep2[1] = altCdn[1];
        if (s_mapCodonPairToSynonymous.count(refStep+refStep2) == 0)
            countNS++;
        if (s_mapCodonPairToSynonymous.count(refStep2+altCdn) == 0)
            countNS++;
        refStep = refCdn;                           // 3
        refStep[0] = altCdn[0];
        if (s_mapCodonPairToSynonymous.count(refCdn+refStep) == 0)
            countNS++;
        refStep2 = refStep;
        refStep2[2] = altCdn[2];
        if (s_mapCodonPairToSynonymous.count(refStep+refStep2) == 0)
            countNS++;
        if (s_mapCodonPairToSynonymous.count(refStep2+altCdn) == 0)
            countNS++;
        refStep = refCdn;                           // 4
        refStep[2] = altCdn[2];
        if (s_mapCodonPairToSynonymous.count(refCdn+refStep) == 0)
            countNS++;
        refStep2 = refStep;
        refStep2[0] = altCdn[0];
        if (s_mapCodonPairToSynonymous.count(refStep+refStep2) == 0)
            countNS++;
        if (s_mapCodonPairToSynonymous.count(refStep2+altCdn) == 0)
            countNS++;
        refStep = refCdn;                           // 5
        refStep[1] = altCdn[1];
        if (s_mapCodonPairToSynonymous.count(refCdn+refStep) == 0)
            countNS++;
        refStep2 = refStep;
        refStep2[0] = altCdn[0];
        if (s_mapCodonPairToSynonymous.count(refStep+refStep2) == 0)
            countNS++;
        if (s_mapCodonPairToSynonymous.count(refStep2+altCdn) == 0)
            countNS++;
        refStep = refCdn;                           // 6
        refStep[1] = altCdn[1];
        if (s_mapCodonPairToSynonymous.count(refCdn+refStep) == 0)
            countNS++;
        refStep2 = refStep;
        refStep2[2] = altCdn[2];
        if (s_mapCodonPairToSynonymous.count(refStep+refStep2) == 0)
            countNS++;
        if (s_mapCodonPairToSynonymous.count(refStep2+altCdn) == 0)
            countNS++;
        Nd = countNS/6.0;
    }
    assert(Nd <= diffNum);
    return Nd;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x78, %rsp
movl %edx, %r13d
movq 0x8(%rdi), %rdx
cmpq 0x8(%rsi), %rdx
jne 0x78453
movq %rsi, %r14
movq %rdi, %r15
leaq 0x60(%rsp), %rbx
movq %rbx, -0x10(%rbx)
movq (%rdi), %rsi
addq %rsi, %rdx
leaq 0x50(%rsp), %rdi
callq 0x2e45c
xorpd %xmm0, %xmm0
movsd %xmm0, 0x48(%rsp)
cmpl $0x1, %r13d
jne 0x77bfb
leaq 0x28(%rsp), %rdi
movq %r15, %rsi
movq %r14, %rdx
callq 0x31379
leaq 0x94968(%rip), %rdi     # 0x10c528
leaq 0x28(%rsp), %rsi
callq 0x3cf16
movq %rax, %r12
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x77be8
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x8480
testq %r12, %r12
jne 0x77bfb
movsd 0x5784b(%rip), %xmm0    # 0xcf440
movsd %xmm0, 0x48(%rsp)
xorl %ebp, %ebp
cmpl $0x2, %r13d
movl %r13d, 0x74(%rsp)
jne 0x77e18
xorpd %xmm0, %xmm0
movapd %xmm0, (%rsp)
xorl %eax, %eax
movq %rax, 0x10(%rsp)
movq %rax, 0x28(%rsp)
cmpq %rax, 0x8(%r15)
je 0x77c77
xorl %eax, %eax
movq %rsp, %r12
leaq 0x28(%rsp), %r13
movq (%r15), %rcx
movb (%rcx,%rax), %cl
movq (%r14), %rdx
cmpb (%rdx,%rax), %cl
je 0x77c64
movq 0x8(%rsp), %rsi
cmpq 0x10(%rsp), %rsi
je 0x77c59
movq %rax, (%rsi)
addq $0x8, %rsi
movq %rsi, 0x8(%rsp)
jmp 0x77c64
movq %r12, %rdi
movq %r13, %rdx
callq 0x57718
movq 0x28(%rsp), %rax
incq %rax
movq %rax, 0x28(%rsp)
cmpq 0x8(%r15), %rax
jne 0x77c31
movq (%rsp), %rax
movq (%rax), %rax
movq (%r14), %rcx
movb (%rcx,%rax), %cl
leaq 0x50(%rsp), %rdx
movq (%rdx), %rsi
movb %cl, (%rsi,%rax)
leaq 0x28(%rsp), %rdi
movq %r15, %rsi
callq 0x31379
leaq 0x94885(%rip), %rdi     # 0x10c528
leaq 0x28(%rsp), %rsi
callq 0x3cf16
movq %rax, %r12
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x77ccb
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x8480
xorl %ebp, %ebp
testq %r12, %r12
sete %bl
leaq 0x28(%rsp), %rdi
leaq 0x50(%rsp), %rsi
movq %r14, %rdx
callq 0x31379
leaq 0x9483c(%rip), %rdi     # 0x10c528
leaq 0x28(%rsp), %rsi
callq 0x3cf16
movq %rax, %r13
movb %bl, %bpl
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0x77d18
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x8480
xorl %eax, %eax
cmpq $0x1, %r12
adcl $0x1, %eax
testq %r13, %r13
cmovel %eax, %ebp
leaq 0x50(%rsp), %rdi
movq %r15, %rsi
leaq 0x60(%rsp), %rbx
callq 0x8270
movq (%rsp), %rax
movq 0x8(%rax), %rax
movq (%r14), %rcx
movb (%rcx,%rax), %cl
leaq 0x50(%rsp), %rdx
movq (%rdx), %rsi
movb %cl, (%rsi,%rax)
leaq 0x28(%rsp), %rdi
movq %r15, %rsi
callq 0x31379
movl 0x74(%rsp), %r13d
leaq 0x947bd(%rip), %rdi     # 0x10c528
leaq 0x28(%rsp), %rsi
callq 0x3cf16
movq %rax, %r12
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0x77d94
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x8480
cmpq $0x1, %r12
adcl $0x0, %ebp
leaq 0x28(%rsp), %rdi
leaq 0x50(%rsp), %rsi
movq %r14, %rdx
callq 0x31379
leaq 0x94774(%rip), %rdi     # 0x10c528
leaq 0x28(%rsp), %rsi
callq 0x3cf16
movq %rax, %r12
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0x77ddd
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x8480
cmpq $0x1, %r12
adcl $0x0, %ebp
cvtsi2sd %ebp, %xmm0
movsd %xmm0, 0x48(%rsp)
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x77e04
movq 0x10(%rsp), %rsi
subq %rdi, %rsi
callq 0x8480
movsd 0x48(%rsp), %xmm0
mulsd 0x5763e(%rip), %xmm0    # 0xcf450
movsd %xmm0, 0x48(%rsp)
cmpl $0x3, %r13d
jne 0x78417
movq (%r14), %rax
movb (%rax), %al
leaq 0x50(%rsp), %rdx
movq (%rdx), %rcx
movb %al, (%rcx)
leaq 0x28(%rsp), %rdi
movq %r15, %rsi
callq 0x31379
leaq 0x946e3(%rip), %rdi     # 0x10c528
leaq 0x28(%rsp), %rsi
callq 0x3cf16
movq %rax, %r12
leaq 0x38(%rsp), %r13
movq -0x10(%r13), %rdi
cmpq %r13, %rdi
je 0x77e6d
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x8480
cmpq $0x1, %r12
adcl $0x0, %ebp
leaq 0x28(%rsp), %rdi
movq %r13, (%rdi)
movq 0x50(%rsp), %rsi
movq 0x58(%rsp), %rdx
addq %rsi, %rdx
callq 0x2e45c
movq (%r14), %rax
movb 0x1(%rax), %al
leaq 0x28(%rsp), %rdx
movq (%rdx), %rcx
movb %al, 0x1(%rcx)
movq %rsp, %rdi
leaq 0x50(%rsp), %rsi
callq 0x31379
leaq 0x94675(%rip), %rdi     # 0x10c528
movq %rsp, %rsi
callq 0x3cf16
movq %rax, %r12
leaq 0x10(%rsp), %r13
movq -0x10(%r13), %rdi
cmpq %r13, %rdi
je 0x77ed9
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x8480
cmpq $0x1, %r12
adcl $0x0, %ebp
movq %rsp, %rdi
leaq 0x28(%rsp), %rsi
movq %r14, %rdx
callq 0x31379
leaq 0x94631(%rip), %rdi     # 0x10c528
movq %rsp, %rsi
callq 0x3cf16
movq %rax, %r12
movq (%rsp), %rdi
cmpq %r13, %rdi
je 0x77f18
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x8480
cmpq $0x1, %r12
adcl $0x0, %ebp
leaq 0x50(%rsp), %rdi
movq %r15, %rsi
callq 0x8270
movq (%r14), %rax
movb 0x2(%rax), %al
leaq 0x50(%rsp), %rdx
movq (%rdx), %rcx
movb %al, 0x2(%rcx)
movq %rsp, %rdi
movq %r15, %rsi
callq 0x31379
leaq 0x945d9(%rip), %rdi     # 0x10c528
movq %rsp, %rsi
callq 0x3cf16
movq %rax, %r12
movq (%rsp), %rdi
cmpq %r13, %rdi
je 0x77f70
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x8480
cmpq $0x1, %r12
adcl $0x0, %ebp
leaq 0x28(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0x8270
movq (%r14), %rax
movb 0x1(%rax), %al
leaq 0x28(%rsp), %rdx
movq (%rdx), %rcx
movb %al, 0x1(%rcx)
movq %rsp, %rdi
leaq 0x50(%rsp), %rsi
callq 0x31379
leaq 0x9457d(%rip), %rdi     # 0x10c528
movq %rsp, %rsi
callq 0x3cf16
movq %rax, %r12
movq (%rsp), %rdi
cmpq %r13, %rdi
je 0x77fcc
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x8480
cmpq $0x1, %r12
adcl $0x0, %ebp
movq %rsp, %rdi
leaq 0x28(%rsp), %rsi
movq %r14, %rdx
callq 0x31379
leaq 0x9453e(%rip), %rdi     # 0x10c528
movq %rsp, %rsi
callq 0x3cf16
movq %rax, %r12
movq (%rsp), %rdi
cmpq %r13, %rdi
je 0x7800b
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x8480
cmpq $0x1, %r12
adcl $0x0, %ebp
leaq 0x50(%rsp), %rdi
movq %r15, %rsi
callq 0x8270
movq (%r14), %rax
movb (%rax), %al
leaq 0x50(%rsp), %rdx
movq (%rdx), %rcx
movb %al, (%rcx)
movq %rsp, %rdi
movq %r15, %rsi
callq 0x31379
leaq 0x944e8(%rip), %rdi     # 0x10c528
movq %rsp, %rsi
callq 0x3cf16
movq %rax, %r12
movq (%rsp), %rdi
cmpq %r13, %rdi
je 0x78061
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x8480
cmpq $0x1, %r12
adcl $0x0, %ebp
leaq 0x28(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0x8270
movq (%r14), %rax
movb 0x2(%rax), %al
leaq 0x28(%rsp), %rdx
movq (%rdx), %rcx
movb %al, 0x2(%rcx)
movq %rsp, %rdi
leaq 0x50(%rsp), %rsi
callq 0x31379
leaq 0x9448c(%rip), %rdi     # 0x10c528
movq %rsp, %rsi
callq 0x3cf16
movq %rax, %r12
movq (%rsp), %rdi
cmpq %r13, %rdi
je 0x780bd
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x8480
cmpq $0x1, %r12
adcl $0x0, %ebp
movq %rsp, %rdi
leaq 0x28(%rsp), %rsi
movq %r14, %rdx
callq 0x31379
leaq 0x9444d(%rip), %rdi     # 0x10c528
movq %rsp, %rsi
callq 0x3cf16
movq %rax, %r12
movq (%rsp), %rdi
cmpq %r13, %rdi
je 0x780fc
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x8480
cmpq $0x1, %r12
adcl $0x0, %ebp
leaq 0x50(%rsp), %rdi
movq %r15, %rsi
callq 0x8270
movq (%r14), %rax
movb 0x2(%rax), %al
leaq 0x50(%rsp), %rdx
movq (%rdx), %rcx
movb %al, 0x2(%rcx)
movq %rsp, %rdi
movq %r15, %rsi
callq 0x31379
leaq 0x943f5(%rip), %rdi     # 0x10c528
movq %rsp, %rsi
callq 0x3cf16
movq %rax, %r12
movq (%rsp), %rdi
cmpq %r13, %rdi
je 0x78154
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x8480
cmpq $0x1, %r12
adcl $0x0, %ebp
leaq 0x28(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0x8270
movq (%r14), %rax
movb (%rax), %al
leaq 0x28(%rsp), %rdx
movq (%rdx), %rcx
movb %al, (%rcx)
movq %rsp, %rdi
leaq 0x50(%rsp), %rsi
callq 0x31379
leaq 0x9439b(%rip), %rdi     # 0x10c528
movq %rsp, %rsi
callq 0x3cf16
movq %rax, %r12
movq (%rsp), %rdi
cmpq %r13, %rdi
je 0x781ae
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x8480
cmpq $0x1, %r12
adcl $0x0, %ebp
movq %rsp, %rdi
leaq 0x28(%rsp), %rsi
movq %r14, %rdx
callq 0x31379
leaq 0x9435c(%rip), %rdi     # 0x10c528
movq %rsp, %rsi
callq 0x3cf16
movq %rax, %r12
movq (%rsp), %rdi
cmpq %r13, %rdi
je 0x781ed
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x8480
cmpq $0x1, %r12
adcl $0x0, %ebp
leaq 0x50(%rsp), %rdi
movq %r15, %rsi
callq 0x8270
movq (%r14), %rax
movb 0x1(%rax), %al
leaq 0x50(%rsp), %rdx
movq (%rdx), %rcx
movb %al, 0x1(%rcx)
movq %rsp, %rdi
movq %r15, %rsi
callq 0x31379
leaq 0x94304(%rip), %rdi     # 0x10c528
movq %rsp, %rsi
callq 0x3cf16
movq %rax, %r12
movq (%rsp), %rdi
cmpq %r13, %rdi
je 0x78245
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x8480
cmpq $0x1, %r12
adcl $0x0, %ebp
leaq 0x28(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0x8270
movq (%r14), %rax
movb (%rax), %al
leaq 0x28(%rsp), %rdx
movq (%rdx), %rcx
movb %al, (%rcx)
movq %rsp, %rdi
leaq 0x50(%rsp), %rsi
callq 0x31379
leaq 0x942aa(%rip), %rdi     # 0x10c528
movq %rsp, %rsi
callq 0x3cf16
movq %rax, %r12
movq (%rsp), %rdi
cmpq %r13, %rdi
je 0x7829f
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x8480
cmpq $0x1, %r12
adcl $0x0, %ebp
movq %rsp, %rdi
leaq 0x28(%rsp), %rsi
movq %r14, %rdx
callq 0x31379
leaq 0x9426b(%rip), %rdi     # 0x10c528
movq %rsp, %rsi
callq 0x3cf16
movq %rax, %r12
movq (%rsp), %rdi
cmpq %r13, %rdi
je 0x782de
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x8480
cmpq $0x1, %r12
adcl $0x0, %ebp
leaq 0x50(%rsp), %rdi
movq %r15, %rsi
callq 0x8270
movq (%r14), %rax
movb 0x1(%rax), %al
leaq 0x50(%rsp), %rdx
movq (%rdx), %rcx
movb %al, 0x1(%rcx)
movq %rsp, %rdi
movq %r15, %rsi
callq 0x31379
leaq 0x94213(%rip), %rdi     # 0x10c528
movq %rsp, %rsi
callq 0x3cf16
movq %rax, %r15
movq (%rsp), %rdi
cmpq %r13, %rdi
je 0x78336
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x8480
cmpq $0x1, %r15
adcl $0x0, %ebp
leaq 0x28(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0x8270
movq (%r14), %rax
movb 0x2(%rax), %al
leaq 0x28(%rsp), %rdx
movq (%rdx), %rcx
movb %al, 0x2(%rcx)
movq %rsp, %rdi
leaq 0x50(%rsp), %rsi
callq 0x31379
leaq 0x941b7(%rip), %rdi     # 0x10c528
movq %rsp, %rsi
callq 0x3cf16
movq %rax, %r15
movq (%rsp), %rdi
cmpq %r13, %rdi
je 0x78392
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x8480
cmpq $0x1, %r15
adcl $0x0, %ebp
movq %rsp, %rdi
leaq 0x28(%rsp), %rsi
movq %r14, %rdx
callq 0x31379
leaq 0x94178(%rip), %rdi     # 0x10c528
movq %rsp, %rsi
callq 0x3cf16
movq %rax, %r14
movq (%rsp), %rdi
cmpq %r13, %rdi
je 0x783d1
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x8480
cmpq $0x1, %r14
adcl $0x0, %ebp
cvtsi2sd %ebp, %xmm0
movsd %xmm0, 0x48(%rsp)
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
movl 0x74(%rsp), %r13d
je 0x78403
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x8480
movsd 0x48(%rsp), %xmm0
divsd 0x63bdf(%rip), %xmm0    # 0xdbff0
movsd %xmm0, 0x48(%rsp)
xorps %xmm0, %xmm0
cvtsi2sd %r13d, %xmm0
ucomisd 0x48(%rsp), %xmm0
jb 0x78472
movq 0x50(%rsp), %rdi
cmpq %rbx, %rdi
je 0x7843e
movq 0x60(%rsp), %rsi
incq %rsi
callq 0x8480
movsd 0x48(%rsp), %xmm0
addq $0x78, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x650d9(%rip), %rdi     # 0xdd533
leaq 0x5a6b1(%rip), %rsi     # 0xd2b12
leaq 0x650ee(%rip), %rcx     # 0xdd556
movl $0x388, %edx            # imm = 0x388
callq 0x82c0
leaq 0x6511f(%rip), %rdi     # 0xdd598
leaq 0x5a692(%rip), %rsi     # 0xd2b12
leaq 0x650cf(%rip), %rcx     # 0xdd556
movl $0x3e5, %edx            # imm = 0x3E5
callq 0x82c0
jmp 0x784fa
jmp 0x7859f
jmp 0x784fa
jmp 0x7859f
jmp 0x784fa
jmp 0x7859f
jmp 0x784fa
jmp 0x7859f
jmp 0x784fa
jmp 0x7859f
jmp 0x784fa
jmp 0x7859f
jmp 0x784fa
jmp 0x7859f
jmp 0x784fa
jmp 0x7859f
jmp 0x784fa
jmp 0x7859f
jmp 0x784fa
jmp 0x7859f
jmp 0x784fa
jmp 0x7859f
jmp 0x784fa
jmp 0x7859f
jmp 0x784fa
jmp 0x7859f
jmp 0x784fa
jmp 0x7859f
jmp 0x784fa
jmp 0x7859f
movq %rax, %r14
movq (%rsp), %rdi
cmpq %r13, %rdi
je 0x785a2
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x8480
jmp 0x785a2
jmp 0x78541
jmp 0x7859f
jmp 0x78589
movq %rax, %r14
leaq 0x10(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
jne 0x7850a
jmp 0x785a2
jmp 0x78541
jmp 0x7859f
jmp 0x78589
jmp 0x78584
jmp 0x78589
jmp 0x78576
movq %rax, %r14
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
jmp 0x78560
jmp 0x78584
jmp 0x78589
movq %rax, %r14
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x7858c
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x8480
jmp 0x7858c
jmp 0x78589
movq %rax, %r14
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
jmp 0x785ac
movq %rax, %r14
jmp 0x785be
movq %rax, %r14
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x785be
movq 0x10(%rsp), %rsi
subq %rdi, %rsi
jmp 0x785b9
movq %rax, %r14
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0x785be
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x8480
movq 0x50(%rsp), %rdi
leaq 0x60(%rsp), %rax
cmpq %rax, %rdi
je 0x785da
movq 0x60(%rsp), %rsi
incq %rsi
callq 0x8480
movq %r14, %rdi
callq 0x8840