// File: 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
movq %rsp, %rbp
subq $0x5c0, %rsp            # imm = 0x5C0
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
movq -0x8(%rbp), %rdi
callq 0xa930
movq %rax, -0x380(%rbp)
movq -0x10(%rbp), %rdi
callq 0xa930
movq %rax, %rcx
movq -0x380(%rbp), %rax
cmpq %rcx, %rax
jne 0xbac80
jmp 0xbac9f
leaq 0x86560(%rip), %rdi     # 0x1411e7
leaq 0x7c0e4(%rip), %rsi     # 0x136d72
movl $0x388, %edx            # imm = 0x388
leaq 0x86570(%rip), %rcx     # 0x14120a
callq 0xa390
movq -0x8(%rbp), %rsi
leaq -0x38(%rbp), %rdi
callq 0xa250
movl $0x0, -0x3c(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x48(%rbp)
cmpl $0x1, -0x14(%rbp)
jne 0xbad3f
movq -0x8(%rbp), %rsi
movq -0x10(%rbp), %rdx
leaq -0x68(%rbp), %rdi
callq 0x3e290
jmp 0xbacd4
leaq 0xdfd45(%rip), %rdi     # 0x19aa20
leaq -0x68(%rbp), %rsi
callq 0x56950
movq %rax, -0x388(%rbp)
jmp 0xbaced
leaq -0x68(%rbp), %rdi
callq 0xac88
movq -0x388(%rbp), %rax
cmpq $0x0, %rax
jne 0xbad3d
movsd 0x775ad(%rip), %xmm0    # 0x1322b8
movsd %xmm0, -0x48(%rbp)
jmp 0xbad3d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xbbdd9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0x68(%rbp), %rdi
callq 0xac88
jmp 0xbbdd9
jmp 0xbad3f
cmpl $0x2, -0x14(%rbp)
jne 0xbb0fc
leaq -0x90(%rbp), %rdi
callq 0x50c10
movq $0x0, -0x98(%rbp)
movq -0x98(%rbp), %rax
movq %rax, -0x390(%rbp)
movq -0x8(%rbp), %rdi
callq 0xa930
movq %rax, %rcx
movq -0x390(%rbp), %rax
cmpq %rcx, %rax
je 0xbae00
movq -0x8(%rbp), %rdi
movq -0x98(%rbp), %rsi
callq 0xa670
movsbl (%rax), %eax
movl %eax, -0x394(%rbp)
movq -0x10(%rbp), %rdi
movq -0x98(%rbp), %rsi
callq 0xa670
movq %rax, %rcx
movl -0x394(%rbp), %eax
movsbl (%rcx), %ecx
cmpl %ecx, %eax
je 0xbade7
leaq -0x90(%rbp), %rdi
leaq -0x98(%rbp), %rsi
callq 0x840a0
jmp 0xbadd4
jmp 0xbade7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xbb0eb
jmp 0xbade9
movq -0x98(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x98(%rbp)
jmp 0xbad60
movq -0x10(%rbp), %rax
movq %rax, -0x3c0(%rbp)
xorl %eax, %eax
movl %eax, %esi
movq %rsi, -0x3b0(%rbp)
leaq -0x90(%rbp), %rdi
movq %rdi, -0x3b8(%rbp)
callq 0xad930
movq -0x3c0(%rbp), %rdi
movq (%rax), %rsi
callq 0xa670
movq -0x3b8(%rbp), %rdi
movq -0x3b0(%rbp), %rsi
movb (%rax), %al
movb %al, -0x3a1(%rbp)
callq 0xad930
movq (%rax), %rsi
leaq -0x38(%rbp), %rdi
callq 0xac60
movq %rax, -0x3a0(%rbp)
jmp 0xbae68
movq -0x3a0(%rbp), %rax
movb -0x3a1(%rbp), %cl
movb %cl, (%rax)
movq -0x8(%rbp), %rsi
leaq -0xb8(%rbp), %rdi
leaq -0x38(%rbp), %rdx
callq 0x3e290
jmp 0xbae8d
leaq 0xdfb8c(%rip), %rdi     # 0x19aa20
leaq -0xb8(%rbp), %rsi
callq 0x56950
movq %rax, -0x3c8(%rbp)
jmp 0xbaea9
leaq -0xb8(%rbp), %rdi
callq 0xac88
movq -0x3c8(%rbp), %rax
cmpq $0x0, %rax
jne 0xbaeea
movl -0x3c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3c(%rbp)
jmp 0xbaeea
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0xb8(%rbp), %rdi
callq 0xac88
jmp 0xbb0eb
movq -0x10(%rbp), %rdx
leaq -0xd8(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x3e290
jmp 0xbaf00
leaq 0xdfb19(%rip), %rdi     # 0x19aa20
leaq -0xd8(%rbp), %rsi
callq 0x56950
movq %rax, -0x3d0(%rbp)
jmp 0xbaf1c
leaq -0xd8(%rbp), %rdi
callq 0xac88
movq -0x3d0(%rbp), %rax
cmpq $0x0, %rax
jne 0xbaf5d
movl -0x3c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3c(%rbp)
jmp 0xbaf5d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0xd8(%rbp), %rdi
callq 0xac88
jmp 0xbb0eb
movq -0x8(%rbp), %rsi
leaq -0x38(%rbp), %rdi
callq 0xa060
jmp 0xbaf6c
movq -0x10(%rbp), %rax
movq %rax, -0x3f8(%rbp)
leaq -0x90(%rbp), %rdi
movq %rdi, -0x3f0(%rbp)
movl $0x1, %esi
movq %rsi, -0x3e8(%rbp)
callq 0xad930
movq -0x3f8(%rbp), %rdi
movq (%rax), %rsi
callq 0xa670
movq -0x3f0(%rbp), %rdi
movq -0x3e8(%rbp), %rsi
movb (%rax), %al
movb %al, -0x3d9(%rbp)
callq 0xad930
movq (%rax), %rsi
leaq -0x38(%rbp), %rdi
callq 0xac60
movq %rax, -0x3d8(%rbp)
jmp 0xbafd5
movq -0x3d8(%rbp), %rax
movb -0x3d9(%rbp), %cl
movb %cl, (%rax)
movq -0x8(%rbp), %rsi
leaq -0xf8(%rbp), %rdi
leaq -0x38(%rbp), %rdx
callq 0x3e290
jmp 0xbaffa
leaq 0xdfa1f(%rip), %rdi     # 0x19aa20
leaq -0xf8(%rbp), %rsi
callq 0x56950
movq %rax, -0x400(%rbp)
jmp 0xbb016
leaq -0xf8(%rbp), %rdi
callq 0xac88
movq -0x400(%rbp), %rax
cmpq $0x0, %rax
jne 0xbb057
movl -0x3c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3c(%rbp)
jmp 0xbb057
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0xf8(%rbp), %rdi
callq 0xac88
jmp 0xbb0eb
movq -0x10(%rbp), %rdx
leaq -0x118(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x3e290
jmp 0xbb06d
leaq 0xdf9ac(%rip), %rdi     # 0x19aa20
leaq -0x118(%rbp), %rsi
callq 0x56950
movq %rax, -0x408(%rbp)
jmp 0xbb089
leaq -0x118(%rbp), %rdi
callq 0xac88
movq -0x408(%rbp), %rax
cmpq $0x0, %rax
jne 0xbb0c7
movl -0x3c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3c(%rbp)
jmp 0xbb0c7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0x118(%rbp), %rdi
callq 0xac88
jmp 0xbb0eb
cvtsi2sdl -0x3c(%rbp), %xmm0
movsd 0x785f4(%rip), %xmm1    # 0x1336c8
divsd %xmm1, %xmm0
movsd %xmm0, -0x48(%rbp)
leaq -0x90(%rbp), %rdi
callq 0x50d40
jmp 0xbb0fc
leaq -0x90(%rbp), %rdi
callq 0x50d40
jmp 0xbbdd9
cmpl $0x3, -0x14(%rbp)
jne 0xbbd81
movq -0x10(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
movq %rsi, -0x420(%rbp)
callq 0xa670
movq -0x420(%rbp), %rsi
movb (%rax), %al
movb %al, -0x411(%rbp)
leaq -0x38(%rbp), %rdi
callq 0xac60
movq %rax, -0x410(%rbp)
jmp 0xbb13b
movq -0x410(%rbp), %rax
movb -0x411(%rbp), %cl
movb %cl, (%rax)
movq -0x8(%rbp), %rsi
leaq -0x138(%rbp), %rdi
leaq -0x38(%rbp), %rdx
callq 0x3e290
jmp 0xbb160
leaq 0xdf8b9(%rip), %rdi     # 0x19aa20
leaq -0x138(%rbp), %rsi
callq 0x56950
movq %rax, -0x428(%rbp)
jmp 0xbb17c
leaq -0x138(%rbp), %rdi
callq 0xac88
movq -0x428(%rbp), %rax
cmpq $0x0, %rax
jne 0xbb1bd
movl -0x3c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3c(%rbp)
jmp 0xbb1bd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0x138(%rbp), %rdi
callq 0xac88
jmp 0xbbdd9
leaq -0x158(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0xa250
jmp 0xbb1cf
movq -0x10(%rbp), %rdi
movl $0x1, %esi
movq %rsi, -0x440(%rbp)
callq 0xa670
movq -0x440(%rbp), %rsi
movb (%rax), %al
movb %al, -0x431(%rbp)
leaq -0x158(%rbp), %rdi
callq 0xac60
movq %rax, -0x430(%rbp)
jmp 0xbb208
movq -0x430(%rbp), %rax
movb -0x431(%rbp), %cl
movb %cl, (%rax)
leaq -0x178(%rbp), %rdi
leaq -0x38(%rbp), %rsi
leaq -0x158(%rbp), %rdx
callq 0x3e290
jmp 0xbb230
leaq 0xdf7e9(%rip), %rdi     # 0x19aa20
leaq -0x178(%rbp), %rsi
callq 0x56950
movq %rax, -0x448(%rbp)
jmp 0xbb24c
leaq -0x178(%rbp), %rdi
callq 0xac88
movq -0x448(%rbp), %rax
cmpq $0x0, %rax
jne 0xbb29e
movl -0x3c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3c(%rbp)
jmp 0xbb29e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xbbd73
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0x178(%rbp), %rdi
callq 0xac88
jmp 0xbbd73
movq -0x10(%rbp), %rdx
leaq -0x198(%rbp), %rdi
leaq -0x158(%rbp), %rsi
callq 0x3e290
jmp 0xbb2b7
leaq 0xdf762(%rip), %rdi     # 0x19aa20
leaq -0x198(%rbp), %rsi
callq 0x56950
movq %rax, -0x450(%rbp)
jmp 0xbb2d3
leaq -0x198(%rbp), %rdi
callq 0xac88
movq -0x450(%rbp), %rax
cmpq $0x0, %rax
jne 0xbb314
movl -0x3c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3c(%rbp)
jmp 0xbb314
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0x198(%rbp), %rdi
callq 0xac88
jmp 0xbbd73
movq -0x8(%rbp), %rsi
leaq -0x38(%rbp), %rdi
callq 0xa060
jmp 0xbb323
movq -0x10(%rbp), %rdi
movl $0x2, %esi
movq %rsi, -0x468(%rbp)
callq 0xa670
movq -0x468(%rbp), %rsi
movb (%rax), %al
movb %al, -0x459(%rbp)
leaq -0x38(%rbp), %rdi
callq 0xac60
movq %rax, -0x458(%rbp)
jmp 0xbb359
movq -0x458(%rbp), %rax
movb -0x459(%rbp), %cl
movb %cl, (%rax)
movq -0x8(%rbp), %rsi
leaq -0x1b8(%rbp), %rdi
leaq -0x38(%rbp), %rdx
callq 0x3e290
jmp 0xbb37e
leaq 0xdf69b(%rip), %rdi     # 0x19aa20
leaq -0x1b8(%rbp), %rsi
callq 0x56950
movq %rax, -0x470(%rbp)
jmp 0xbb39a
leaq -0x1b8(%rbp), %rdi
callq 0xac88
movq -0x470(%rbp), %rax
cmpq $0x0, %rax
jne 0xbb3db
movl -0x3c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3c(%rbp)
jmp 0xbb3db
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0x1b8(%rbp), %rdi
callq 0xac88
jmp 0xbbd73
leaq -0x158(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0xa060
jmp 0xbb3ed
movq -0x10(%rbp), %rdi
movl $0x1, %esi
movq %rsi, -0x488(%rbp)
callq 0xa670
movq -0x488(%rbp), %rsi
movb (%rax), %al
movb %al, -0x479(%rbp)
leaq -0x158(%rbp), %rdi
callq 0xac60
movq %rax, -0x478(%rbp)
jmp 0xbb426
movq -0x478(%rbp), %rax
movb -0x479(%rbp), %cl
movb %cl, (%rax)
leaq -0x1d8(%rbp), %rdi
leaq -0x38(%rbp), %rsi
leaq -0x158(%rbp), %rdx
callq 0x3e290
jmp 0xbb44e
leaq 0xdf5cb(%rip), %rdi     # 0x19aa20
leaq -0x1d8(%rbp), %rsi
callq 0x56950
movq %rax, -0x490(%rbp)
jmp 0xbb46a
leaq -0x1d8(%rbp), %rdi
callq 0xac88
movq -0x490(%rbp), %rax
cmpq $0x0, %rax
jne 0xbb4ab
movl -0x3c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3c(%rbp)
jmp 0xbb4ab
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0x1d8(%rbp), %rdi
callq 0xac88
jmp 0xbbd73
movq -0x10(%rbp), %rdx
leaq -0x1f8(%rbp), %rdi
leaq -0x158(%rbp), %rsi
callq 0x3e290
jmp 0xbb4c4
leaq 0xdf555(%rip), %rdi     # 0x19aa20
leaq -0x1f8(%rbp), %rsi
callq 0x56950
movq %rax, -0x498(%rbp)
jmp 0xbb4e0
leaq -0x1f8(%rbp), %rdi
callq 0xac88
movq -0x498(%rbp), %rax
cmpq $0x0, %rax
jne 0xbb521
movl -0x3c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3c(%rbp)
jmp 0xbb521
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0x1f8(%rbp), %rdi
callq 0xac88
jmp 0xbbd73
movq -0x8(%rbp), %rsi
leaq -0x38(%rbp), %rdi
callq 0xa060
jmp 0xbb530
movq -0x10(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
movq %rsi, -0x4b0(%rbp)
callq 0xa670
movq -0x4b0(%rbp), %rsi
movb (%rax), %al
movb %al, -0x4a1(%rbp)
leaq -0x38(%rbp), %rdi
callq 0xac60
movq %rax, -0x4a0(%rbp)
jmp 0xbb565
movq -0x4a0(%rbp), %rax
movb -0x4a1(%rbp), %cl
movb %cl, (%rax)
movq -0x8(%rbp), %rsi
leaq -0x218(%rbp), %rdi
leaq -0x38(%rbp), %rdx
callq 0x3e290
jmp 0xbb58a
leaq 0xdf48f(%rip), %rdi     # 0x19aa20
leaq -0x218(%rbp), %rsi
callq 0x56950
movq %rax, -0x4b8(%rbp)
jmp 0xbb5a6
leaq -0x218(%rbp), %rdi
callq 0xac88
movq -0x4b8(%rbp), %rax
cmpq $0x0, %rax
jne 0xbb5e7
movl -0x3c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3c(%rbp)
jmp 0xbb5e7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0x218(%rbp), %rdi
callq 0xac88
jmp 0xbbd73
leaq -0x158(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0xa060
jmp 0xbb5f9
movq -0x10(%rbp), %rdi
movl $0x2, %esi
movq %rsi, -0x4d0(%rbp)
callq 0xa670
movq -0x4d0(%rbp), %rsi
movb (%rax), %al
movb %al, -0x4c1(%rbp)
leaq -0x158(%rbp), %rdi
callq 0xac60
movq %rax, -0x4c0(%rbp)
jmp 0xbb632
movq -0x4c0(%rbp), %rax
movb -0x4c1(%rbp), %cl
movb %cl, (%rax)
leaq -0x238(%rbp), %rdi
leaq -0x38(%rbp), %rsi
leaq -0x158(%rbp), %rdx
callq 0x3e290
jmp 0xbb65a
leaq 0xdf3bf(%rip), %rdi     # 0x19aa20
leaq -0x238(%rbp), %rsi
callq 0x56950
movq %rax, -0x4d8(%rbp)
jmp 0xbb676
leaq -0x238(%rbp), %rdi
callq 0xac88
movq -0x4d8(%rbp), %rax
cmpq $0x0, %rax
jne 0xbb6b7
movl -0x3c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3c(%rbp)
jmp 0xbb6b7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0x238(%rbp), %rdi
callq 0xac88
jmp 0xbbd73
movq -0x10(%rbp), %rdx
leaq -0x258(%rbp), %rdi
leaq -0x158(%rbp), %rsi
callq 0x3e290
jmp 0xbb6d0
leaq 0xdf349(%rip), %rdi     # 0x19aa20
leaq -0x258(%rbp), %rsi
callq 0x56950
movq %rax, -0x4e0(%rbp)
jmp 0xbb6ec
leaq -0x258(%rbp), %rdi
callq 0xac88
movq -0x4e0(%rbp), %rax
cmpq $0x0, %rax
jne 0xbb72d
movl -0x3c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3c(%rbp)
jmp 0xbb72d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0x258(%rbp), %rdi
callq 0xac88
jmp 0xbbd73
movq -0x8(%rbp), %rsi
leaq -0x38(%rbp), %rdi
callq 0xa060
jmp 0xbb73c
movq -0x10(%rbp), %rdi
movl $0x2, %esi
movq %rsi, -0x4f8(%rbp)
callq 0xa670
movq -0x4f8(%rbp), %rsi
movb (%rax), %al
movb %al, -0x4e9(%rbp)
leaq -0x38(%rbp), %rdi
callq 0xac60
movq %rax, -0x4e8(%rbp)
jmp 0xbb772
movq -0x4e8(%rbp), %rax
movb -0x4e9(%rbp), %cl
movb %cl, (%rax)
movq -0x8(%rbp), %rsi
leaq -0x278(%rbp), %rdi
leaq -0x38(%rbp), %rdx
callq 0x3e290
jmp 0xbb797
leaq 0xdf282(%rip), %rdi     # 0x19aa20
leaq -0x278(%rbp), %rsi
callq 0x56950
movq %rax, -0x500(%rbp)
jmp 0xbb7b3
leaq -0x278(%rbp), %rdi
callq 0xac88
movq -0x500(%rbp), %rax
cmpq $0x0, %rax
jne 0xbb7f4
movl -0x3c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3c(%rbp)
jmp 0xbb7f4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0x278(%rbp), %rdi
callq 0xac88
jmp 0xbbd73
leaq -0x158(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0xa060
jmp 0xbb806
movq -0x10(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
movq %rsi, -0x518(%rbp)
callq 0xa670
movq -0x518(%rbp), %rsi
movb (%rax), %al
movb %al, -0x509(%rbp)
leaq -0x158(%rbp), %rdi
callq 0xac60
movq %rax, -0x508(%rbp)
jmp 0xbb83e
movq -0x508(%rbp), %rax
movb -0x509(%rbp), %cl
movb %cl, (%rax)
leaq -0x298(%rbp), %rdi
leaq -0x38(%rbp), %rsi
leaq -0x158(%rbp), %rdx
callq 0x3e290
jmp 0xbb866
leaq 0xdf1b3(%rip), %rdi     # 0x19aa20
leaq -0x298(%rbp), %rsi
callq 0x56950
movq %rax, -0x520(%rbp)
jmp 0xbb882
leaq -0x298(%rbp), %rdi
callq 0xac88
movq -0x520(%rbp), %rax
cmpq $0x0, %rax
jne 0xbb8c3
movl -0x3c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3c(%rbp)
jmp 0xbb8c3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0x298(%rbp), %rdi
callq 0xac88
jmp 0xbbd73
movq -0x10(%rbp), %rdx
leaq -0x2b8(%rbp), %rdi
leaq -0x158(%rbp), %rsi
callq 0x3e290
jmp 0xbb8dc
leaq 0xdf13d(%rip), %rdi     # 0x19aa20
leaq -0x2b8(%rbp), %rsi
callq 0x56950
movq %rax, -0x528(%rbp)
jmp 0xbb8f8
leaq -0x2b8(%rbp), %rdi
callq 0xac88
movq -0x528(%rbp), %rax
cmpq $0x0, %rax
jne 0xbb939
movl -0x3c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3c(%rbp)
jmp 0xbb939
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0x2b8(%rbp), %rdi
callq 0xac88
jmp 0xbbd73
movq -0x8(%rbp), %rsi
leaq -0x38(%rbp), %rdi
callq 0xa060
jmp 0xbb948
movq -0x10(%rbp), %rdi
movl $0x1, %esi
movq %rsi, -0x540(%rbp)
callq 0xa670
movq -0x540(%rbp), %rsi
movb (%rax), %al
movb %al, -0x531(%rbp)
leaq -0x38(%rbp), %rdi
callq 0xac60
movq %rax, -0x530(%rbp)
jmp 0xbb97e
movq -0x530(%rbp), %rax
movb -0x531(%rbp), %cl
movb %cl, (%rax)
movq -0x8(%rbp), %rsi
leaq -0x2d8(%rbp), %rdi
leaq -0x38(%rbp), %rdx
callq 0x3e290
jmp 0xbb9a3
leaq 0xdf076(%rip), %rdi     # 0x19aa20
leaq -0x2d8(%rbp), %rsi
callq 0x56950
movq %rax, -0x548(%rbp)
jmp 0xbb9bf
leaq -0x2d8(%rbp), %rdi
callq 0xac88
movq -0x548(%rbp), %rax
cmpq $0x0, %rax
jne 0xbba00
movl -0x3c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3c(%rbp)
jmp 0xbba00
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0x2d8(%rbp), %rdi
callq 0xac88
jmp 0xbbd73
leaq -0x158(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0xa060
jmp 0xbba12
movq -0x10(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
movq %rsi, -0x560(%rbp)
callq 0xa670
movq -0x560(%rbp), %rsi
movb (%rax), %al
movb %al, -0x551(%rbp)
leaq -0x158(%rbp), %rdi
callq 0xac60
movq %rax, -0x550(%rbp)
jmp 0xbba4a
movq -0x550(%rbp), %rax
movb -0x551(%rbp), %cl
movb %cl, (%rax)
leaq -0x2f8(%rbp), %rdi
leaq -0x38(%rbp), %rsi
leaq -0x158(%rbp), %rdx
callq 0x3e290
jmp 0xbba72
leaq 0xdefa7(%rip), %rdi     # 0x19aa20
leaq -0x2f8(%rbp), %rsi
callq 0x56950
movq %rax, -0x568(%rbp)
jmp 0xbba8e
leaq -0x2f8(%rbp), %rdi
callq 0xac88
movq -0x568(%rbp), %rax
cmpq $0x0, %rax
jne 0xbbacf
movl -0x3c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3c(%rbp)
jmp 0xbbacf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0x2f8(%rbp), %rdi
callq 0xac88
jmp 0xbbd73
movq -0x10(%rbp), %rdx
leaq -0x318(%rbp), %rdi
leaq -0x158(%rbp), %rsi
callq 0x3e290
jmp 0xbbae8
leaq 0xdef31(%rip), %rdi     # 0x19aa20
leaq -0x318(%rbp), %rsi
callq 0x56950
movq %rax, -0x570(%rbp)
jmp 0xbbb04
leaq -0x318(%rbp), %rdi
callq 0xac88
movq -0x570(%rbp), %rax
cmpq $0x0, %rax
jne 0xbbb45
movl -0x3c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3c(%rbp)
jmp 0xbbb45
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0x318(%rbp), %rdi
callq 0xac88
jmp 0xbbd73
movq -0x8(%rbp), %rsi
leaq -0x38(%rbp), %rdi
callq 0xa060
jmp 0xbbb54
movq -0x10(%rbp), %rdi
movl $0x1, %esi
movq %rsi, -0x588(%rbp)
callq 0xa670
movq -0x588(%rbp), %rsi
movb (%rax), %al
movb %al, -0x579(%rbp)
leaq -0x38(%rbp), %rdi
callq 0xac60
movq %rax, -0x578(%rbp)
jmp 0xbbb8a
movq -0x578(%rbp), %rax
movb -0x579(%rbp), %cl
movb %cl, (%rax)
movq -0x8(%rbp), %rsi
leaq -0x338(%rbp), %rdi
leaq -0x38(%rbp), %rdx
callq 0x3e290
jmp 0xbbbaf
leaq 0xdee6a(%rip), %rdi     # 0x19aa20
leaq -0x338(%rbp), %rsi
callq 0x56950
movq %rax, -0x590(%rbp)
jmp 0xbbbcb
leaq -0x338(%rbp), %rdi
callq 0xac88
movq -0x590(%rbp), %rax
cmpq $0x0, %rax
jne 0xbbc0c
movl -0x3c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3c(%rbp)
jmp 0xbbc0c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0x338(%rbp), %rdi
callq 0xac88
jmp 0xbbd73
leaq -0x158(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0xa060
jmp 0xbbc1e
movq -0x10(%rbp), %rdi
movl $0x2, %esi
movq %rsi, -0x5a8(%rbp)
callq 0xa670
movq -0x5a8(%rbp), %rsi
movb (%rax), %al
movb %al, -0x599(%rbp)
leaq -0x158(%rbp), %rdi
callq 0xac60
movq %rax, -0x598(%rbp)
jmp 0xbbc57
movq -0x598(%rbp), %rax
movb -0x599(%rbp), %cl
movb %cl, (%rax)
leaq -0x358(%rbp), %rdi
leaq -0x38(%rbp), %rsi
leaq -0x158(%rbp), %rdx
callq 0x3e290
jmp 0xbbc7f
leaq 0xded9a(%rip), %rdi     # 0x19aa20
leaq -0x358(%rbp), %rsi
callq 0x56950
movq %rax, -0x5b0(%rbp)
jmp 0xbbc9b
leaq -0x358(%rbp), %rdi
callq 0xac88
movq -0x5b0(%rbp), %rax
cmpq $0x0, %rax
jne 0xbbcdc
movl -0x3c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3c(%rbp)
jmp 0xbbcdc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0x358(%rbp), %rdi
callq 0xac88
jmp 0xbbd73
movq -0x10(%rbp), %rdx
leaq -0x378(%rbp), %rdi
leaq -0x158(%rbp), %rsi
callq 0x3e290
jmp 0xbbcf5
leaq 0xded24(%rip), %rdi     # 0x19aa20
leaq -0x378(%rbp), %rsi
callq 0x56950
movq %rax, -0x5b8(%rbp)
jmp 0xbbd11
leaq -0x378(%rbp), %rdi
callq 0xac88
movq -0x5b8(%rbp), %rax
cmpq $0x0, %rax
jne 0xbbd4f
movl -0x3c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3c(%rbp)
jmp 0xbbd4f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0x378(%rbp), %rdi
callq 0xac88
jmp 0xbbd73
cvtsi2sdl -0x3c(%rbp), %xmm0
movsd 0x84afc(%rip), %xmm1    # 0x140858
divsd %xmm1, %xmm0
movsd %xmm0, -0x48(%rbp)
leaq -0x158(%rbp), %rdi
callq 0xac88
jmp 0xbbd81
leaq -0x158(%rbp), %rdi
callq 0xac88
jmp 0xbbdd9
movsd -0x48(%rbp), %xmm1
cvtsi2sdl -0x14(%rbp), %xmm0
ucomisd %xmm1, %xmm0
jb 0xbbd93
jmp 0xbbdb2
leaq 0x854b2(%rip), %rdi     # 0x14124c
leaq 0x7afd1(%rip), %rsi     # 0x136d72
movl $0x3e5, %edx            # imm = 0x3E5
leaq 0x8545d(%rip), %rcx     # 0x14120a
callq 0xa390
movsd -0x48(%rbp), %xmm0
movsd %xmm0, -0x5c0(%rbp)
leaq -0x38(%rbp), %rdi
callq 0xac88
movsd -0x5c0(%rbp), %xmm0
addq $0x5c0, %rsp            # imm = 0x5C0
popq %rbp
retq
leaq -0x38(%rbp), %rdi
callq 0xac88
movq -0x70(%rbp), %rdi
callq 0xab50
nopl (%rax,%rax)