// File: millanek[P]evo/./process_vcf_coding_sequences.h
// Function: calculateNtS(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, bool)
inline double calculateNtS(const std::string& refCdn, const std::string& altCdn, int diffNum, bool refAncestral) {
    assert(refCdn.length() == altCdn.length());
    assert(diffNum >= 0 && diffNum <= 3);
    double NtS = 0;
    
    if (diffNum == 0) {
        return s_mapCodonToExpTs[refCdn];
    }
    
    if (diffNum == 1) {
        if (refAncestral) {
            return s_mapCodonToExpTs[refCdn];
        } else { // Also consider the reverse order of mutations if we don't know the ancestral allele
            return (s_mapCodonToExpTs[refCdn] + s_mapCodonToExpTs[altCdn])/2;
        }
    } else {
        if (diffNum == 2) {
            // Find where the diffs are
            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);
                }
            }
            
            // Then calculate N for the possible mutation paths:
            double Nsum = 0;
            // e.g. TAA -> TGA -> TGG
            std::string stepCdn = refCdn;
            stepCdn[diffPos[0]] = altCdn[diffPos[0]];
            Nsum = (s_mapCodonToExpTs[refCdn] + s_mapCodonToExpTs[stepCdn])/2;
            
            // e.g. TAA -> TAG -> TGG
            stepCdn = refCdn;
            stepCdn[diffPos[1]] = altCdn[diffPos[1]];
            Nsum = Nsum + ((s_mapCodonToExpTs[refCdn] + s_mapCodonToExpTs[stepCdn])/2);
            
            if (refAncestral) {
                return Nsum / 2;
            } else { // Also consider the reverse order of mutations if we don't know the ancestral allele
                // e.g. TAA <- TGA <- TGG
                stepCdn = altCdn;
                stepCdn[diffPos[0]] = refCdn[diffPos[0]];
                Nsum = Nsum + ((s_mapCodonToExpTs[altCdn] + s_mapCodonToExpTs[stepCdn])/2);
                
                // e.g. TAA <- TAG <- TGG
                stepCdn = altCdn; // the reverse order of mutations
                stepCdn[diffPos[1]] = refCdn[diffPos[1]];
                Nsum = Nsum + ((s_mapCodonToExpTs[altCdn] + s_mapCodonToExpTs[stepCdn])/2);
                // Get the average N for the four mutation paths:
                return Nsum / 4;
            }
        }
        
        // This could surely be simplified but I write out all the possible mutation paths explicitly
        // one could even have a lookup table for all the three letter pairs and what N scores they give
        if (diffNum == 3) {
            double Nsum = 0;
            
            // e.g. AAA -> TAA -> TGA -> TGG
            std::string stepCdn = refCdn; stepCdn[0] = altCdn[0];
            std::string step2Cdn = stepCdn; step2Cdn[1] = altCdn[1];
            Nsum = (s_mapCodonToExpTs[refCdn] + s_mapCodonToExpTs[stepCdn] + s_mapCodonToExpTs[step2Cdn])/3;
            
            // e.g. AAA -> TAA -> TAG -> TGG
            stepCdn = refCdn; stepCdn[0] = altCdn[0];
            step2Cdn = stepCdn; step2Cdn[2] = altCdn[2];
            Nsum = Nsum + ((s_mapCodonToExpTs[refCdn] + s_mapCodonToExpTs[stepCdn] + s_mapCodonToExpTs[step2Cdn])/3);
            
            // e.g. AAA -> AGA -> TGA -> TGG
            stepCdn = refCdn; stepCdn[1] = altCdn[1];
            step2Cdn = stepCdn; step2Cdn[0] = altCdn[0];
            Nsum = Nsum + ((s_mapCodonToExpTs[refCdn] + s_mapCodonToExpTs[stepCdn] + s_mapCodonToExpTs[step2Cdn])/3);
            
            // e.g. AAA -> AGA -> AGG -> TGG
            stepCdn = refCdn; stepCdn[1] = altCdn[1];
            step2Cdn = stepCdn; step2Cdn[2] = altCdn[2];
            Nsum = Nsum + ((s_mapCodonToExpTs[refCdn] + s_mapCodonToExpTs[stepCdn] + s_mapCodonToExpTs[step2Cdn])/3);
            
            // e.g. AAA -> AAG -> AGG -> TGG
            stepCdn = refCdn; stepCdn[2] = altCdn[2];
            step2Cdn = stepCdn; step2Cdn[1] = altCdn[1];
            Nsum = Nsum + ((s_mapCodonToExpTs[refCdn] + s_mapCodonToExpTs[stepCdn] + s_mapCodonToExpTs[step2Cdn])/3);
            
            // e.g. AAA -> AAG -> TAG -> TGG
            stepCdn = refCdn; stepCdn[2] = altCdn[2];
            step2Cdn = stepCdn; step2Cdn[0] = altCdn[0];
            Nsum = Nsum + ((s_mapCodonToExpTs[refCdn] + s_mapCodonToExpTs[stepCdn] + s_mapCodonToExpTs[step2Cdn])/3);
            
            if (refAncestral) {
                return Nsum / 6;
            } else { // Also consider the reverse order of mutations if we don't know the ancestral allele
                // e.g. AAA <- TAA <- TGA <- TGG
                stepCdn = altCdn; stepCdn[2] = refCdn[2];
                step2Cdn = stepCdn; step2Cdn[1] = refCdn[1];
                Nsum = Nsum + ((s_mapCodonToExpTs[altCdn] + s_mapCodonToExpTs[stepCdn] + s_mapCodonToExpTs[step2Cdn])/3);
                
                // e.g. AAA <- TAA <- TAG <- TGG
                stepCdn = altCdn; stepCdn[1] = refCdn[1];
                step2Cdn = stepCdn; step2Cdn[2] = refCdn[2];
                Nsum = Nsum + ((s_mapCodonToExpTs[altCdn] + s_mapCodonToExpTs[stepCdn] + s_mapCodonToExpTs[step2Cdn])/3);
                
                // e.g. AAA -> AGA -> TGA -> TGG
                stepCdn = altCdn; stepCdn[2] = refCdn[2];
                step2Cdn = stepCdn; step2Cdn[0] = refCdn[0];
                Nsum = Nsum + ((s_mapCodonToExpTs[altCdn] + s_mapCodonToExpTs[stepCdn] + s_mapCodonToExpTs[step2Cdn])/3);
                
                // e.g. AAA <- AGA <- AGG <- TGG
                stepCdn = altCdn; stepCdn[0] = refCdn[0];
                step2Cdn = stepCdn; step2Cdn[2] = refCdn[2];
                Nsum = Nsum + ((s_mapCodonToExpTs[altCdn] + s_mapCodonToExpTs[stepCdn] + s_mapCodonToExpTs[step2Cdn])/3);
                
                // e.g. AAA <- AAG <- AGG <- TGG
                stepCdn = altCdn; stepCdn[0] = refCdn[0];
                step2Cdn = stepCdn; step2Cdn[1] = refCdn[1];
                Nsum = Nsum + ((s_mapCodonToExpTs[altCdn] + s_mapCodonToExpTs[stepCdn] + s_mapCodonToExpTs[step2Cdn])/3);
                
                // e.g. AAA <- AAG <- TAG <- TGG
                stepCdn = altCdn; stepCdn[1] = refCdn[1];
                step2Cdn = stepCdn; step2Cdn[0] = refCdn[0];
                Nsum = Nsum + ((s_mapCodonToExpTs[altCdn] + s_mapCodonToExpTs[stepCdn] + s_mapCodonToExpTs[step2Cdn])/3);
                
                // Get the average N for the twelve mutation paths:
                return Nsum / 12;
            }
        }
        
    }
    return NtS;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x690, %rsp            # imm = 0x690
movb %cl, %al
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movl %edx, -0x1c(%rbp)
andb $0x1, %al
movb %al, -0x1d(%rbp)
movq -0x10(%rbp), %rdi
callq 0xa930
movq %rax, -0xd8(%rbp)
movq -0x18(%rbp), %rdi
callq 0xa930
movq %rax, %rcx
movq -0xd8(%rbp), %rax
cmpq %rcx, %rax
jne 0xbd797
jmp 0xbd7b6
leaq 0x83a49(%rip), %rdi     # 0x1411e7
leaq 0x795cd(%rip), %rsi     # 0x136d72
movl $0x304, %edx            # imm = 0x304
leaq 0x83b0d(%rip), %rcx     # 0x1412be
callq 0xa390
xorl %eax, %eax
cmpl $0x0, -0x1c(%rbp)
movb %al, -0xd9(%rbp)
jl 0xbd7d1
cmpl $0x3, -0x1c(%rbp)
setle %al
movb %al, -0xd9(%rbp)
movb -0xd9(%rbp), %al
testb $0x1, %al
jne 0xbd7dd
jmp 0xbd7df
jmp 0xbd7fe
leaq 0x83abb(%rip), %rdi     # 0x1412a1
leaq 0x79585(%rip), %rsi     # 0x136d72
movl $0x305, %edx            # imm = 0x305
leaq 0x83ac5(%rip), %rcx     # 0x1412be
callq 0xa390
xorps %xmm0, %xmm0
movsd %xmm0, -0x28(%rbp)
cmpl $0x0, -0x1c(%rbp)
jne 0xbd82a
movq -0x10(%rbp), %rsi
leaq 0xdd1d1(%rip), %rdi     # 0x19a9e8
callq 0x3e560
movsd (%rax), %xmm0
movsd %xmm0, -0x8(%rbp)
jmp 0xbf08c
cmpl $0x1, -0x1c(%rbp)
jne 0xbd8a2
testb $0x1, -0x1d(%rbp)
je 0xbd854
movq -0x10(%rbp), %rsi
leaq 0xdd1a7(%rip), %rdi     # 0x19a9e8
callq 0x3e560
movsd (%rax), %xmm0
movsd %xmm0, -0x8(%rbp)
jmp 0xbf08c
movq -0x10(%rbp), %rsi
leaq 0xdd189(%rip), %rdi     # 0x19a9e8
callq 0x3e560
movsd (%rax), %xmm0
movsd %xmm0, -0xe8(%rbp)
movq -0x18(%rbp), %rsi
leaq 0xdd16d(%rip), %rdi     # 0x19a9e8
callq 0x3e560
movsd -0xe8(%rbp), %xmm0
addsd (%rax), %xmm0
movsd 0x75e34(%rip), %xmm1    # 0x1336c8
divsd %xmm1, %xmm0
movsd %xmm0, -0x8(%rbp)
jmp 0xbf08c
cmpl $0x2, -0x1c(%rbp)
jne 0xbdddf
leaq -0x40(%rbp), %rdi
callq 0x50c10
movq $0x0, -0x48(%rbp)
movq -0x48(%rbp), %rax
movq %rax, -0xf0(%rbp)
movq -0x10(%rbp), %rdi
callq 0xa930
movq %rax, %rcx
movq -0xf0(%rbp), %rax
cmpq %rcx, %rax
je 0xbd948
movq -0x10(%rbp), %rdi
movq -0x48(%rbp), %rsi
callq 0xa670
movsbl (%rax), %eax
movl %eax, -0xf4(%rbp)
movq -0x18(%rbp), %rdi
movq -0x48(%rbp), %rsi
callq 0xa670
movq %rax, %rcx
movl -0xf4(%rbp), %eax
movsbl (%rcx), %ecx
cmpl %ecx, %eax
je 0xbd935
leaq -0x40(%rbp), %rdi
leaq -0x48(%rbp), %rsi
callq 0x840a0
jmp 0xbd922
jmp 0xbd935
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0xbddd1
jmp 0xbd937
movq -0x48(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x48(%rbp)
jmp 0xbd8bd
movq $0x0, -0x60(%rbp)
movq -0x10(%rbp), %rsi
leaq -0x80(%rbp), %rdi
callq 0xa250
jmp 0xbd95f
movq -0x18(%rbp), %rax
movq %rax, -0x120(%rbp)
xorl %eax, %eax
movl %eax, %esi
movq %rsi, -0x110(%rbp)
leaq -0x40(%rbp), %rdi
movq %rdi, -0x118(%rbp)
callq 0xad930
movq -0x120(%rbp), %rdi
movq (%rax), %rsi
callq 0xa670
movq -0x118(%rbp), %rdi
movq -0x110(%rbp), %rsi
movb (%rax), %al
movb %al, -0x101(%rbp)
callq 0xad930
movq (%rax), %rsi
leaq -0x80(%rbp), %rdi
callq 0xac60
movq %rax, -0x100(%rbp)
jmp 0xbd9c4
movq -0x100(%rbp), %rax
movb -0x101(%rbp), %cl
movb %cl, (%rax)
movq -0x10(%rbp), %rsi
leaq 0xdd00a(%rip), %rdi     # 0x19a9e8
callq 0x3e560
movq %rax, -0x128(%rbp)
jmp 0xbd9ec
movq -0x128(%rbp), %rax
movsd (%rax), %xmm0
movsd %xmm0, -0x138(%rbp)
leaq 0xdcfe2(%rip), %rdi     # 0x19a9e8
leaq -0x80(%rbp), %rsi
callq 0x3e560
movq %rax, -0x130(%rbp)
jmp 0xbda18
movsd -0x138(%rbp), %xmm0
movq -0x130(%rbp), %rax
movsd (%rax), %xmm1
addsd %xmm1, %xmm0
movsd 0x706d1(%rip), %xmm1    # 0x12e108
mulsd %xmm1, %xmm0
movsd %xmm0, -0x60(%rbp)
movq -0x10(%rbp), %rsi
leaq -0x80(%rbp), %rdi
callq 0xa060
jmp 0xbda4f
movq -0x18(%rbp), %rax
movq %rax, -0x160(%rbp)
leaq -0x40(%rbp), %rdi
movq %rdi, -0x158(%rbp)
movl $0x1, %esi
movq %rsi, -0x150(%rbp)
callq 0xad930
movq -0x160(%rbp), %rdi
movq (%rax), %rsi
callq 0xa670
movq -0x158(%rbp), %rdi
movq -0x150(%rbp), %rsi
movb (%rax), %al
movb %al, -0x141(%rbp)
callq 0xad930
movq (%rax), %rsi
leaq -0x80(%rbp), %rdi
callq 0xac60
movq %rax, -0x140(%rbp)
jmp 0xbdab5
movq -0x140(%rbp), %rax
movb -0x141(%rbp), %cl
movb %cl, (%rax)
movsd -0x60(%rbp), %xmm0
movsd %xmm0, -0x170(%rbp)
movq -0x10(%rbp), %rsi
leaq 0xdcf0c(%rip), %rdi     # 0x19a9e8
callq 0x3e560
movq %rax, -0x168(%rbp)
jmp 0xbdaea
movq -0x168(%rbp), %rax
movsd (%rax), %xmm0
movsd %xmm0, -0x180(%rbp)
leaq 0xdcee4(%rip), %rdi     # 0x19a9e8
leaq -0x80(%rbp), %rsi
callq 0x3e560
movq %rax, -0x178(%rbp)
jmp 0xbdb16
movsd -0x170(%rbp), %xmm0
movq -0x178(%rbp), %rax
movsd -0x180(%rbp), %xmm1
addsd (%rax), %xmm1
movsd 0x75b8f(%rip), %xmm2    # 0x1336c8
divsd %xmm2, %xmm1
addsd %xmm1, %xmm0
movsd %xmm0, -0x60(%rbp)
testb $0x1, -0x1d(%rbp)
je 0xbdb8b
movsd -0x60(%rbp), %xmm0
movsd 0x75b6f(%rip), %xmm1    # 0x1336c8
divsd %xmm1, %xmm0
movsd %xmm0, -0x8(%rbp)
movl $0x1, -0x84(%rbp)
jmp 0xbddba
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x80(%rbp), %rdi
callq 0xac88
jmp 0xbddd1
movq -0x18(%rbp), %rsi
leaq -0x80(%rbp), %rdi
callq 0xa060
jmp 0xbdb9a
movq -0x10(%rbp), %rax
movq %rax, -0x1a8(%rbp)
xorl %eax, %eax
movl %eax, %esi
movq %rsi, -0x198(%rbp)
leaq -0x40(%rbp), %rdi
movq %rdi, -0x1a0(%rbp)
callq 0xad930
movq -0x1a8(%rbp), %rdi
movq (%rax), %rsi
callq 0xa670
movq -0x1a0(%rbp), %rdi
movq -0x198(%rbp), %rsi
movb (%rax), %al
movb %al, -0x189(%rbp)
callq 0xad930
movq (%rax), %rsi
leaq -0x80(%rbp), %rdi
callq 0xac60
movq %rax, -0x188(%rbp)
jmp 0xbdbff
movq -0x188(%rbp), %rax
movb -0x189(%rbp), %cl
movb %cl, (%rax)
movsd -0x60(%rbp), %xmm0
movsd %xmm0, -0x1b8(%rbp)
movq -0x18(%rbp), %rsi
leaq 0xdcdc2(%rip), %rdi     # 0x19a9e8
callq 0x3e560
movq %rax, -0x1b0(%rbp)
jmp 0xbdc34
movq -0x1b0(%rbp), %rax
movsd (%rax), %xmm0
movsd %xmm0, -0x1c8(%rbp)
leaq 0xdcd9a(%rip), %rdi     # 0x19a9e8
leaq -0x80(%rbp), %rsi
callq 0x3e560
movq %rax, -0x1c0(%rbp)
jmp 0xbdc60
movsd -0x1b8(%rbp), %xmm0
movsd -0x1c8(%rbp), %xmm1
movq -0x1c0(%rbp), %rax
movsd (%rax), %xmm2
addsd %xmm2, %xmm1
movsd 0x70481(%rip), %xmm2    # 0x12e108
mulsd %xmm2, %xmm1
addsd %xmm1, %xmm0
movsd %xmm0, -0x60(%rbp)
movq -0x18(%rbp), %rsi
leaq -0x80(%rbp), %rdi
callq 0xa060
jmp 0xbdca3
movq -0x10(%rbp), %rax
movq %rax, -0x1f0(%rbp)
leaq -0x40(%rbp), %rdi
movq %rdi, -0x1e8(%rbp)
movl $0x1, %esi
movq %rsi, -0x1e0(%rbp)
callq 0xad930
movq -0x1f0(%rbp), %rdi
movq (%rax), %rsi
callq 0xa670
movq -0x1e8(%rbp), %rdi
movq -0x1e0(%rbp), %rsi
movb (%rax), %al
movb %al, -0x1d1(%rbp)
callq 0xad930
movq (%rax), %rsi
leaq -0x80(%rbp), %rdi
callq 0xac60
movq %rax, -0x1d0(%rbp)
jmp 0xbdd09
movq -0x1d0(%rbp), %rax
movb -0x1d1(%rbp), %cl
movb %cl, (%rax)
movsd -0x60(%rbp), %xmm0
movsd %xmm0, -0x200(%rbp)
movq -0x18(%rbp), %rsi
leaq 0xdccb8(%rip), %rdi     # 0x19a9e8
callq 0x3e560
movq %rax, -0x1f8(%rbp)
jmp 0xbdd3e
movq -0x1f8(%rbp), %rax
movsd (%rax), %xmm0
movsd %xmm0, -0x210(%rbp)
leaq 0xdcc90(%rip), %rdi     # 0x19a9e8
leaq -0x80(%rbp), %rsi
callq 0x3e560
movq %rax, -0x208(%rbp)
jmp 0xbdd6a
movsd -0x200(%rbp), %xmm0
movq -0x208(%rbp), %rax
movsd -0x210(%rbp), %xmm1
addsd (%rax), %xmm1
movsd 0x7593b(%rip), %xmm2    # 0x1336c8
divsd %xmm2, %xmm1
addsd %xmm1, %xmm0
movsd %xmm0, -0x60(%rbp)
movsd -0x60(%rbp), %xmm0
movsd 0x7f889(%rip), %xmm1    # 0x13d630
divsd %xmm1, %xmm0
movsd %xmm0, -0x8(%rbp)
movl $0x1, -0x84(%rbp)
leaq -0x80(%rbp), %rdi
callq 0xac88
leaq -0x40(%rbp), %rdi
callq 0x50d40
jmp 0xbf08c
leaq -0x40(%rbp), %rdi
callq 0x50d40
jmp 0xbf09a
cmpl $0x3, -0x1c(%rbp)
jne 0xbf080
movq $0x0, -0x90(%rbp)
movq -0x10(%rbp), %rsi
leaq -0xb0(%rbp), %rdi
movq %rdi, -0x230(%rbp)
callq 0xa250
movq -0x18(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
movq %rsi, -0x228(%rbp)
callq 0xa670
movq -0x230(%rbp), %rdi
movq -0x228(%rbp), %rsi
movb (%rax), %al
movb %al, -0x219(%rbp)
callq 0xac60
movq %rax, -0x218(%rbp)
jmp 0xbde43
movq -0x218(%rbp), %rax
movb -0x219(%rbp), %cl
movb %cl, (%rax)
leaq -0xd0(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
callq 0xa250
jmp 0xbde67
movq -0x18(%rbp), %rdi
movl $0x1, %esi
movq %rsi, -0x248(%rbp)
callq 0xa670
movq -0x248(%rbp), %rsi
movb (%rax), %al
movb %al, -0x239(%rbp)
leaq -0xd0(%rbp), %rdi
callq 0xac60
movq %rax, -0x238(%rbp)
jmp 0xbdea0
movq -0x238(%rbp), %rax
movb -0x239(%rbp), %cl
movb %cl, (%rax)
movq -0x10(%rbp), %rsi
leaq 0xdcb2e(%rip), %rdi     # 0x19a9e8
callq 0x3e560
movq %rax, -0x250(%rbp)
jmp 0xbdec8
movq -0x250(%rbp), %rax
movsd (%rax), %xmm0
movsd %xmm0, -0x260(%rbp)
leaq 0xdcb06(%rip), %rdi     # 0x19a9e8
leaq -0xb0(%rbp), %rsi
callq 0x3e560
movq %rax, -0x258(%rbp)
jmp 0xbdef7
movsd -0x260(%rbp), %xmm0
movq -0x258(%rbp), %rax
movsd (%rax), %xmm1
addsd %xmm1, %xmm0
movsd %xmm0, -0x270(%rbp)
leaq 0xdcacb(%rip), %rdi     # 0x19a9e8
leaq -0xd0(%rbp), %rsi
callq 0x3e560
movq %rax, -0x268(%rbp)
jmp 0xbdf32
movsd -0x270(%rbp), %xmm0
movq -0x268(%rbp), %rax
movsd (%rax), %xmm1
addsd %xmm1, %xmm0
movsd 0x828e7(%rip), %xmm1    # 0x140838
divsd %xmm1, %xmm0
movsd %xmm0, -0x90(%rbp)
movq -0x10(%rbp), %rsi
leaq -0xb0(%rbp), %rdi
callq 0xa060
jmp 0xbdf6f
movq -0x18(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
movq %rsi, -0x288(%rbp)
callq 0xa670
movq -0x288(%rbp), %rsi
movb (%rax), %al
movb %al, -0x279(%rbp)
leaq -0xb0(%rbp), %rdi
callq 0xac60
movq %rax, -0x278(%rbp)
jmp 0xbdfa7
movq -0x278(%rbp), %rax
movb -0x279(%rbp), %cl
movb %cl, (%rax)
leaq -0xd0(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
callq 0xa060
jmp 0xbdfcb
movq -0x18(%rbp), %rdi
movl $0x2, %esi
movq %rsi, -0x2a0(%rbp)
callq 0xa670
movq -0x2a0(%rbp), %rsi
movb (%rax), %al
movb %al, -0x291(%rbp)
leaq -0xd0(%rbp), %rdi
callq 0xac60
movq %rax, -0x290(%rbp)
jmp 0xbe004
movq -0x290(%rbp), %rax
movb -0x291(%rbp), %cl
movb %cl, (%rax)
movsd -0x90(%rbp), %xmm0
movsd %xmm0, -0x2b0(%rbp)
movq -0x10(%rbp), %rsi
leaq 0xdc9ba(%rip), %rdi     # 0x19a9e8
callq 0x3e560
movq %rax, -0x2a8(%rbp)
jmp 0xbe03c
movq -0x2a8(%rbp), %rax
movsd (%rax), %xmm0
movsd %xmm0, -0x2c0(%rbp)
leaq 0xdc992(%rip), %rdi     # 0x19a9e8
leaq -0xb0(%rbp), %rsi
callq 0x3e560
movq %rax, -0x2b8(%rbp)
jmp 0xbe06b
movsd -0x2c0(%rbp), %xmm0
movq -0x2b8(%rbp), %rax
movsd (%rax), %xmm1
addsd %xmm1, %xmm0
movsd %xmm0, -0x2d0(%rbp)
leaq 0xdc957(%rip), %rdi     # 0x19a9e8
leaq -0xd0(%rbp), %rsi
callq 0x3e560
movq %rax, -0x2c8(%rbp)
jmp 0xbe0a6
movsd -0x2b0(%rbp), %xmm0
movsd -0x2d0(%rbp), %xmm1
movq -0x2c8(%rbp), %rax
movsd (%rax), %xmm2
addsd %xmm2, %xmm1
movsd 0x8276b(%rip), %xmm2    # 0x140838
divsd %xmm2, %xmm1
addsd %xmm1, %xmm0
movsd %xmm0, -0x90(%rbp)
movq -0x10(%rbp), %rsi
leaq -0xb0(%rbp), %rdi
callq 0xa060
jmp 0xbe0ef
movq -0x18(%rbp), %rdi
movl $0x1, %esi
movq %rsi, -0x2e8(%rbp)
callq 0xa670
movq -0x2e8(%rbp), %rsi
movb (%rax), %al
movb %al, -0x2d9(%rbp)
leaq -0xb0(%rbp), %rdi
callq 0xac60
movq %rax, -0x2d8(%rbp)
jmp 0xbe128
movq -0x2d8(%rbp), %rax
movb -0x2d9(%rbp), %cl
movb %cl, (%rax)
leaq -0xd0(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
callq 0xa060
jmp 0xbe14c
movq -0x18(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
movq %rsi, -0x300(%rbp)
callq 0xa670
movq -0x300(%rbp), %rsi
movb (%rax), %al
movb %al, -0x2f1(%rbp)
leaq -0xd0(%rbp), %rdi
callq 0xac60
movq %rax, -0x2f0(%rbp)
jmp 0xbe184
movq -0x2f0(%rbp), %rax
movb -0x2f1(%rbp), %cl
movb %cl, (%rax)
movsd -0x90(%rbp), %xmm0
movsd %xmm0, -0x310(%rbp)
movq -0x10(%rbp), %rsi
leaq 0xdc83a(%rip), %rdi     # 0x19a9e8
callq 0x3e560
movq %rax, -0x308(%rbp)
jmp 0xbe1bc
movq -0x308(%rbp), %rax
movsd (%rax), %xmm0
movsd %xmm0, -0x320(%rbp)
leaq 0xdc812(%rip), %rdi     # 0x19a9e8
leaq -0xb0(%rbp), %rsi
callq 0x3e560
movq %rax, -0x318(%rbp)
jmp 0xbe1eb
movsd -0x320(%rbp), %xmm0
movq -0x318(%rbp), %rax
movsd (%rax), %xmm1
addsd %xmm1, %xmm0
movsd %xmm0, -0x330(%rbp)
leaq 0xdc7d7(%rip), %rdi     # 0x19a9e8
leaq -0xd0(%rbp), %rsi
callq 0x3e560
movq %rax, -0x328(%rbp)
jmp 0xbe226
movsd -0x310(%rbp), %xmm0
movsd -0x330(%rbp), %xmm1
movq -0x328(%rbp), %rax
movsd (%rax), %xmm2
addsd %xmm2, %xmm1
movsd 0x825eb(%rip), %xmm2    # 0x140838
divsd %xmm2, %xmm1
addsd %xmm1, %xmm0
movsd %xmm0, -0x90(%rbp)
movq -0x10(%rbp), %rsi
leaq -0xb0(%rbp), %rdi
callq 0xa060
jmp 0xbe26f
movq -0x18(%rbp), %rdi
movl $0x1, %esi
movq %rsi, -0x348(%rbp)
callq 0xa670
movq -0x348(%rbp), %rsi
movb (%rax), %al
movb %al, -0x339(%rbp)
leaq -0xb0(%rbp), %rdi
callq 0xac60
movq %rax, -0x338(%rbp)
jmp 0xbe2a8
movq -0x338(%rbp), %rax
movb -0x339(%rbp), %cl
movb %cl, (%rax)
leaq -0xd0(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
callq 0xa060
jmp 0xbe2cc
movq -0x18(%rbp), %rdi
movl $0x2, %esi
movq %rsi, -0x360(%rbp)
callq 0xa670
movq -0x360(%rbp), %rsi
movb (%rax), %al
movb %al, -0x351(%rbp)
leaq -0xd0(%rbp), %rdi
callq 0xac60
movq %rax, -0x350(%rbp)
jmp 0xbe305
movq -0x350(%rbp), %rax
movb -0x351(%rbp), %cl
movb %cl, (%rax)
movsd -0x90(%rbp), %xmm0
movsd %xmm0, -0x370(%rbp)
movq -0x10(%rbp), %rsi
leaq 0xdc6b9(%rip), %rdi     # 0x19a9e8
callq 0x3e560
movq %rax, -0x368(%rbp)
jmp 0xbe33d
movq -0x368(%rbp), %rax
movsd (%rax), %xmm0
movsd %xmm0, -0x380(%rbp)
leaq 0xdc691(%rip), %rdi     # 0x19a9e8
leaq -0xb0(%rbp), %rsi
callq 0x3e560
movq %rax, -0x378(%rbp)
jmp 0xbe36c
movsd -0x380(%rbp), %xmm0
movq -0x378(%rbp), %rax
movsd (%rax), %xmm1
addsd %xmm1, %xmm0
movsd %xmm0, -0x390(%rbp)
leaq 0xdc656(%rip), %rdi     # 0x19a9e8
leaq -0xd0(%rbp), %rsi
callq 0x3e560
movq %rax, -0x388(%rbp)
jmp 0xbe3a7
movsd -0x370(%rbp), %xmm0
movsd -0x390(%rbp), %xmm1
movq -0x388(%rbp), %rax
movsd (%rax), %xmm2
addsd %xmm2, %xmm1
movsd 0x8246a(%rip), %xmm2    # 0x140838
divsd %xmm2, %xmm1
addsd %xmm1, %xmm0
movsd %xmm0, -0x90(%rbp)
movq -0x10(%rbp), %rsi
leaq -0xb0(%rbp), %rdi
callq 0xa060
jmp 0xbe3f0
movq -0x18(%rbp), %rdi
movl $0x2, %esi
movq %rsi, -0x3a8(%rbp)
callq 0xa670
movq -0x3a8(%rbp), %rsi
movb (%rax), %al
movb %al, -0x399(%rbp)
leaq -0xb0(%rbp), %rdi
callq 0xac60
movq %rax, -0x398(%rbp)
jmp 0xbe429
movq -0x398(%rbp), %rax
movb -0x399(%rbp), %cl
movb %cl, (%rax)
leaq -0xd0(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
callq 0xa060
jmp 0xbe44d
movq -0x18(%rbp), %rdi
movl $0x1, %esi
movq %rsi, -0x3c0(%rbp)
callq 0xa670
movq -0x3c0(%rbp), %rsi
movb (%rax), %al
movb %al, -0x3b1(%rbp)
leaq -0xd0(%rbp), %rdi
callq 0xac60
movq %rax, -0x3b0(%rbp)
jmp 0xbe486
movq -0x3b0(%rbp), %rax
movb -0x3b1(%rbp), %cl
movb %cl, (%rax)
movsd -0x90(%rbp), %xmm0
movsd %xmm0, -0x3d0(%rbp)
movq -0x10(%rbp), %rsi
leaq 0xdc538(%rip), %rdi     # 0x19a9e8
callq 0x3e560
movq %rax, -0x3c8(%rbp)
jmp 0xbe4be
movq -0x3c8(%rbp), %rax
movsd (%rax), %xmm0
movsd %xmm0, -0x3e0(%rbp)
leaq 0xdc510(%rip), %rdi     # 0x19a9e8
leaq -0xb0(%rbp), %rsi
callq 0x3e560
movq %rax, -0x3d8(%rbp)
jmp 0xbe4ed
movsd -0x3e0(%rbp), %xmm0
movq -0x3d8(%rbp), %rax
movsd (%rax), %xmm1
addsd %xmm1, %xmm0
movsd %xmm0, -0x3f0(%rbp)
leaq 0xdc4d5(%rip), %rdi     # 0x19a9e8
leaq -0xd0(%rbp), %rsi
callq 0x3e560
movq %rax, -0x3e8(%rbp)
jmp 0xbe528
movsd -0x3d0(%rbp), %xmm0
movsd -0x3f0(%rbp), %xmm1
movq -0x3e8(%rbp), %rax
movsd (%rax), %xmm2
addsd %xmm2, %xmm1
movsd 0x822e9(%rip), %xmm2    # 0x140838
divsd %xmm2, %xmm1
addsd %xmm1, %xmm0
movsd %xmm0, -0x90(%rbp)
movq -0x10(%rbp), %rsi
leaq -0xb0(%rbp), %rdi
callq 0xa060
jmp 0xbe571
movq -0x18(%rbp), %rdi
movl $0x2, %esi
movq %rsi, -0x408(%rbp)
callq 0xa670
movq -0x408(%rbp), %rsi
movb (%rax), %al
movb %al, -0x3f9(%rbp)
leaq -0xb0(%rbp), %rdi
callq 0xac60
movq %rax, -0x3f8(%rbp)
jmp 0xbe5aa
movq -0x3f8(%rbp), %rax
movb -0x3f9(%rbp), %cl
movb %cl, (%rax)
leaq -0xd0(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
callq 0xa060
jmp 0xbe5ce
movq -0x18(%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 -0xd0(%rbp), %rdi
callq 0xac60
movq %rax, -0x410(%rbp)
jmp 0xbe606
movq -0x410(%rbp), %rax
movb -0x411(%rbp), %cl
movb %cl, (%rax)
movsd -0x90(%rbp), %xmm0
movsd %xmm0, -0x430(%rbp)
movq -0x10(%rbp), %rsi
leaq 0xdc3b8(%rip), %rdi     # 0x19a9e8
callq 0x3e560
movq %rax, -0x428(%rbp)
jmp 0xbe63e
movq -0x428(%rbp), %rax
movsd (%rax), %xmm0
movsd %xmm0, -0x440(%rbp)
leaq 0xdc390(%rip), %rdi     # 0x19a9e8
leaq -0xb0(%rbp), %rsi
callq 0x3e560
movq %rax, -0x438(%rbp)
jmp 0xbe66d
movsd -0x440(%rbp), %xmm0
movq -0x438(%rbp), %rax
movsd (%rax), %xmm1
addsd %xmm1, %xmm0
movsd %xmm0, -0x450(%rbp)
leaq 0xdc355(%rip), %rdi     # 0x19a9e8
leaq -0xd0(%rbp), %rsi
callq 0x3e560
movq %rax, -0x448(%rbp)
jmp 0xbe6a8
movsd -0x430(%rbp), %xmm0
movq -0x448(%rbp), %rax
movsd -0x450(%rbp), %xmm1
addsd (%rax), %xmm1
movsd 0x8216d(%rip), %xmm2    # 0x140838
divsd %xmm2, %xmm1
addsd %xmm1, %xmm0
movsd %xmm0, -0x90(%rbp)
testb $0x1, -0x1d(%rbp)
je 0xbe737
movsd -0x90(%rbp), %xmm0
movsd 0x82167(%rip), %xmm1    # 0x140858
divsd %xmm1, %xmm0
movsd %xmm0, -0x8(%rbp)
movl $0x1, -0x84(%rbp)
jmp 0xbf058
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0xbf072
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0xd0(%rbp), %rdi
callq 0xac88
jmp 0xbf072
movq -0x18(%rbp), %rsi
leaq -0xb0(%rbp), %rdi
callq 0xa060
jmp 0xbe749
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 -0xb0(%rbp), %rdi
callq 0xac60
movq %rax, -0x458(%rbp)
jmp 0xbe782
movq -0x458(%rbp), %rax
movb -0x459(%rbp), %cl
movb %cl, (%rax)
leaq -0xd0(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
callq 0xa060
jmp 0xbe7a6
movq -0x10(%rbp), %rdi
movl $0x1, %esi
movq %rsi, -0x480(%rbp)
callq 0xa670
movq -0x480(%rbp), %rsi
movb (%rax), %al
movb %al, -0x471(%rbp)
leaq -0xd0(%rbp), %rdi
callq 0xac60
movq %rax, -0x470(%rbp)
jmp 0xbe7df
movq -0x470(%rbp), %rax
movb -0x471(%rbp), %cl
movb %cl, (%rax)
movsd -0x90(%rbp), %xmm0
movsd %xmm0, -0x490(%rbp)
movq -0x18(%rbp), %rsi
leaq 0xdc1df(%rip), %rdi     # 0x19a9e8
callq 0x3e560
movq %rax, -0x488(%rbp)
jmp 0xbe817
movq -0x488(%rbp), %rax
movsd (%rax), %xmm0
movsd %xmm0, -0x4a0(%rbp)
leaq 0xdc1b7(%rip), %rdi     # 0x19a9e8
leaq -0xb0(%rbp), %rsi
callq 0x3e560
movq %rax, -0x498(%rbp)
jmp 0xbe846
movsd -0x4a0(%rbp), %xmm0
movq -0x498(%rbp), %rax
movsd (%rax), %xmm1
addsd %xmm1, %xmm0
movsd %xmm0, -0x4b0(%rbp)
leaq 0xdc17c(%rip), %rdi     # 0x19a9e8
leaq -0xd0(%rbp), %rsi
callq 0x3e560
movq %rax, -0x4a8(%rbp)
jmp 0xbe881
movsd -0x490(%rbp), %xmm0
movsd -0x4b0(%rbp), %xmm1
movq -0x4a8(%rbp), %rax
movsd (%rax), %xmm2
addsd %xmm2, %xmm1
movsd 0x81f90(%rip), %xmm2    # 0x140838
divsd %xmm2, %xmm1
addsd %xmm1, %xmm0
movsd %xmm0, -0x90(%rbp)
movq -0x18(%rbp), %rsi
leaq -0xb0(%rbp), %rdi
callq 0xa060
jmp 0xbe8ca
movq -0x10(%rbp), %rdi
movl $0x1, %esi
movq %rsi, -0x4c8(%rbp)
callq 0xa670
movq -0x4c8(%rbp), %rsi
movb (%rax), %al
movb %al, -0x4b9(%rbp)
leaq -0xb0(%rbp), %rdi
callq 0xac60
movq %rax, -0x4b8(%rbp)
jmp 0xbe903
movq -0x4b8(%rbp), %rax
movb -0x4b9(%rbp), %cl
movb %cl, (%rax)
leaq -0xd0(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
callq 0xa060
jmp 0xbe927
movq -0x10(%rbp), %rdi
movl $0x2, %esi
movq %rsi, -0x4e0(%rbp)
callq 0xa670
movq -0x4e0(%rbp), %rsi
movb (%rax), %al
movb %al, -0x4d1(%rbp)
leaq -0xd0(%rbp), %rdi
callq 0xac60
movq %rax, -0x4d0(%rbp)
jmp 0xbe960
movq -0x4d0(%rbp), %rax
movb -0x4d1(%rbp), %cl
movb %cl, (%rax)
movsd -0x90(%rbp), %xmm0
movsd %xmm0, -0x4f0(%rbp)
movq -0x18(%rbp), %rsi
leaq 0xdc05e(%rip), %rdi     # 0x19a9e8
callq 0x3e560
movq %rax, -0x4e8(%rbp)
jmp 0xbe998
movq -0x4e8(%rbp), %rax
movsd (%rax), %xmm0
movsd %xmm0, -0x500(%rbp)
leaq 0xdc036(%rip), %rdi     # 0x19a9e8
leaq -0xb0(%rbp), %rsi
callq 0x3e560
movq %rax, -0x4f8(%rbp)
jmp 0xbe9c7
movsd -0x500(%rbp), %xmm0
movq -0x4f8(%rbp), %rax
movsd (%rax), %xmm1
addsd %xmm1, %xmm0
movsd %xmm0, -0x510(%rbp)
leaq 0xdbffb(%rip), %rdi     # 0x19a9e8
leaq -0xd0(%rbp), %rsi
callq 0x3e560
movq %rax, -0x508(%rbp)
jmp 0xbea02
movsd -0x4f0(%rbp), %xmm0
movsd -0x510(%rbp), %xmm1
movq -0x508(%rbp), %rax
movsd (%rax), %xmm2
addsd %xmm2, %xmm1
movsd 0x81e0f(%rip), %xmm2    # 0x140838
divsd %xmm2, %xmm1
addsd %xmm1, %xmm0
movsd %xmm0, -0x90(%rbp)
movq -0x18(%rbp), %rsi
leaq -0xb0(%rbp), %rdi
callq 0xa060
jmp 0xbea4b
movq -0x10(%rbp), %rdi
movl $0x2, %esi
movq %rsi, -0x528(%rbp)
callq 0xa670
movq -0x528(%rbp), %rsi
movb (%rax), %al
movb %al, -0x519(%rbp)
leaq -0xb0(%rbp), %rdi
callq 0xac60
movq %rax, -0x518(%rbp)
jmp 0xbea84
movq -0x518(%rbp), %rax
movb -0x519(%rbp), %cl
movb %cl, (%rax)
leaq -0xd0(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
callq 0xa060
jmp 0xbeaa8
movq -0x10(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
movq %rsi, -0x540(%rbp)
callq 0xa670
movq -0x540(%rbp), %rsi
movb (%rax), %al
movb %al, -0x531(%rbp)
leaq -0xd0(%rbp), %rdi
callq 0xac60
movq %rax, -0x530(%rbp)
jmp 0xbeae0
movq -0x530(%rbp), %rax
movb -0x531(%rbp), %cl
movb %cl, (%rax)
movsd -0x90(%rbp), %xmm0
movsd %xmm0, -0x550(%rbp)
movq -0x18(%rbp), %rsi
leaq 0xdbede(%rip), %rdi     # 0x19a9e8
callq 0x3e560
movq %rax, -0x548(%rbp)
jmp 0xbeb18
movq -0x548(%rbp), %rax
movsd (%rax), %xmm0
movsd %xmm0, -0x560(%rbp)
leaq 0xdbeb6(%rip), %rdi     # 0x19a9e8
leaq -0xb0(%rbp), %rsi
callq 0x3e560
movq %rax, -0x558(%rbp)
jmp 0xbeb47
movsd -0x560(%rbp), %xmm0
movq -0x558(%rbp), %rax
movsd (%rax), %xmm1
addsd %xmm1, %xmm0
movsd %xmm0, -0x570(%rbp)
leaq 0xdbe7b(%rip), %rdi     # 0x19a9e8
leaq -0xd0(%rbp), %rsi
callq 0x3e560
movq %rax, -0x568(%rbp)
jmp 0xbeb82
movsd -0x550(%rbp), %xmm0
movsd -0x570(%rbp), %xmm1
movq -0x568(%rbp), %rax
movsd (%rax), %xmm2
addsd %xmm2, %xmm1
movsd 0x81c8f(%rip), %xmm2    # 0x140838
divsd %xmm2, %xmm1
addsd %xmm1, %xmm0
movsd %xmm0, -0x90(%rbp)
movq -0x18(%rbp), %rsi
leaq -0xb0(%rbp), %rdi
callq 0xa060
jmp 0xbebcb
movq -0x10(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
movq %rsi, -0x588(%rbp)
callq 0xa670
movq -0x588(%rbp), %rsi
movb (%rax), %al
movb %al, -0x579(%rbp)
leaq -0xb0(%rbp), %rdi
callq 0xac60
movq %rax, -0x578(%rbp)
jmp 0xbec03
movq -0x578(%rbp), %rax
movb -0x579(%rbp), %cl
movb %cl, (%rax)
leaq -0xd0(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
callq 0xa060
jmp 0xbec27
movq -0x10(%rbp), %rdi
movl $0x2, %esi
movq %rsi, -0x5a0(%rbp)
callq 0xa670
movq -0x5a0(%rbp), %rsi
movb (%rax), %al
movb %al, -0x591(%rbp)
leaq -0xd0(%rbp), %rdi
callq 0xac60
movq %rax, -0x590(%rbp)
jmp 0xbec60
movq -0x590(%rbp), %rax
movb -0x591(%rbp), %cl
movb %cl, (%rax)
movsd -0x90(%rbp), %xmm0
movsd %xmm0, -0x5b0(%rbp)
movq -0x18(%rbp), %rsi
leaq 0xdbd5e(%rip), %rdi     # 0x19a9e8
callq 0x3e560
movq %rax, -0x5a8(%rbp)
jmp 0xbec98
movq -0x5a8(%rbp), %rax
movsd (%rax), %xmm0
movsd %xmm0, -0x5c0(%rbp)
leaq 0xdbd36(%rip), %rdi     # 0x19a9e8
leaq -0xb0(%rbp), %rsi
callq 0x3e560
movq %rax, -0x5b8(%rbp)
jmp 0xbecc7
movsd -0x5c0(%rbp), %xmm0
movq -0x5b8(%rbp), %rax
movsd (%rax), %xmm1
addsd %xmm1, %xmm0
movsd %xmm0, -0x5d0(%rbp)
leaq 0xdbcfb(%rip), %rdi     # 0x19a9e8
leaq -0xd0(%rbp), %rsi
callq 0x3e560
movq %rax, -0x5c8(%rbp)
jmp 0xbed02
movsd -0x5b0(%rbp), %xmm0
movsd -0x5d0(%rbp), %xmm1
movq -0x5c8(%rbp), %rax
movsd (%rax), %xmm2
addsd %xmm2, %xmm1
movsd 0x81b0f(%rip), %xmm2    # 0x140838
divsd %xmm2, %xmm1
addsd %xmm1, %xmm0
movsd %xmm0, -0x90(%rbp)
movq -0x18(%rbp), %rsi
leaq -0xb0(%rbp), %rdi
callq 0xa060
jmp 0xbed4b
movq -0x10(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
movq %rsi, -0x5e8(%rbp)
callq 0xa670
movq -0x5e8(%rbp), %rsi
movb (%rax), %al
movb %al, -0x5d9(%rbp)
leaq -0xb0(%rbp), %rdi
callq 0xac60
movq %rax, -0x5d8(%rbp)
jmp 0xbed83
movq -0x5d8(%rbp), %rax
movb -0x5d9(%rbp), %cl
movb %cl, (%rax)
leaq -0xd0(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
callq 0xa060
jmp 0xbeda7
movq -0x10(%rbp), %rdi
movl $0x1, %esi
movq %rsi, -0x600(%rbp)
callq 0xa670
movq -0x600(%rbp), %rsi
movb (%rax), %al
movb %al, -0x5f1(%rbp)
leaq -0xd0(%rbp), %rdi
callq 0xac60
movq %rax, -0x5f0(%rbp)
jmp 0xbede0
movq -0x5f0(%rbp), %rax
movb -0x5f1(%rbp), %cl
movb %cl, (%rax)
movsd -0x90(%rbp), %xmm0
movsd %xmm0, -0x610(%rbp)
movq -0x18(%rbp), %rsi
leaq 0xdbbde(%rip), %rdi     # 0x19a9e8
callq 0x3e560
movq %rax, -0x608(%rbp)
jmp 0xbee18
movq -0x608(%rbp), %rax
movsd (%rax), %xmm0
movsd %xmm0, -0x620(%rbp)
leaq 0xdbbb6(%rip), %rdi     # 0x19a9e8
leaq -0xb0(%rbp), %rsi
callq 0x3e560
movq %rax, -0x618(%rbp)
jmp 0xbee47
movsd -0x620(%rbp), %xmm0
movq -0x618(%rbp), %rax
movsd (%rax), %xmm1
addsd %xmm1, %xmm0
movsd %xmm0, -0x630(%rbp)
leaq 0xdbb7b(%rip), %rdi     # 0x19a9e8
leaq -0xd0(%rbp), %rsi
callq 0x3e560
movq %rax, -0x628(%rbp)
jmp 0xbee82
movsd -0x610(%rbp), %xmm0
movsd -0x630(%rbp), %xmm1
movq -0x628(%rbp), %rax
movsd (%rax), %xmm2
addsd %xmm2, %xmm1
movsd 0x8198f(%rip), %xmm2    # 0x140838
divsd %xmm2, %xmm1
addsd %xmm1, %xmm0
movsd %xmm0, -0x90(%rbp)
movq -0x18(%rbp), %rsi
leaq -0xb0(%rbp), %rdi
callq 0xa060
jmp 0xbeecb
movq -0x10(%rbp), %rdi
movl $0x1, %esi
movq %rsi, -0x648(%rbp)
callq 0xa670
movq -0x648(%rbp), %rsi
movb (%rax), %al
movb %al, -0x639(%rbp)
leaq -0xb0(%rbp), %rdi
callq 0xac60
movq %rax, -0x638(%rbp)
jmp 0xbef04
movq -0x638(%rbp), %rax
movb -0x639(%rbp), %cl
movb %cl, (%rax)
leaq -0xd0(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
callq 0xa060
jmp 0xbef28
movq -0x10(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
movq %rsi, -0x660(%rbp)
callq 0xa670
movq -0x660(%rbp), %rsi
movb (%rax), %al
movb %al, -0x651(%rbp)
leaq -0xd0(%rbp), %rdi
callq 0xac60
movq %rax, -0x650(%rbp)
jmp 0xbef60
movq -0x650(%rbp), %rax
movb -0x651(%rbp), %cl
movb %cl, (%rax)
movsd -0x90(%rbp), %xmm0
movsd %xmm0, -0x670(%rbp)
movq -0x18(%rbp), %rsi
leaq 0xdba5e(%rip), %rdi     # 0x19a9e8
callq 0x3e560
movq %rax, -0x668(%rbp)
jmp 0xbef98
movq -0x668(%rbp), %rax
movsd (%rax), %xmm0
movsd %xmm0, -0x680(%rbp)
leaq 0xdba36(%rip), %rdi     # 0x19a9e8
leaq -0xb0(%rbp), %rsi
callq 0x3e560
movq %rax, -0x678(%rbp)
jmp 0xbefc7
movsd -0x680(%rbp), %xmm0
movq -0x678(%rbp), %rax
movsd (%rax), %xmm1
addsd %xmm1, %xmm0
movsd %xmm0, -0x690(%rbp)
leaq 0xdb9fb(%rip), %rdi     # 0x19a9e8
leaq -0xd0(%rbp), %rsi
callq 0x3e560
movq %rax, -0x688(%rbp)
jmp 0xbf002
movsd -0x670(%rbp), %xmm0
movq -0x688(%rbp), %rax
movsd -0x690(%rbp), %xmm1
addsd (%rax), %xmm1
movsd 0x81813(%rip), %xmm2    # 0x140838
divsd %xmm2, %xmm1
addsd %xmm1, %xmm0
movsd %xmm0, -0x90(%rbp)
movsd -0x90(%rbp), %xmm0
movsd 0x8181b(%rip), %xmm1    # 0x140860
divsd %xmm1, %xmm0
movsd %xmm0, -0x8(%rbp)
movl $0x1, -0x84(%rbp)
leaq -0xd0(%rbp), %rdi
callq 0xac88
leaq -0xb0(%rbp), %rdi
callq 0xac88
jmp 0xbf08c
leaq -0xb0(%rbp), %rdi
callq 0xac88
jmp 0xbf09a
jmp 0xbf082
movsd -0x28(%rbp), %xmm0
movsd %xmm0, -0x8(%rbp)
movsd -0x8(%rbp), %xmm0
addq $0x690, %rsp            # imm = 0x690
popq %rbp
retq
movq -0x50(%rbp), %rdi
callq 0xab50
nopw %cs:(%rax,%rax)
nopl (%rax)