// File: /workspace/github_cpp_makefile_star2_O3/millanek[P]Dsuite/./Dsuite_utils.h
// Function: TrioDinfo::makeOutVec(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&, bool, bool, int)
std::vector<string> makeOutVec(const std::vector<string>& trio, const bool fStats, const bool KS_test, const int arrangement) {
        
        int numCols = 9; if (fStats) numCols++; if(KS_test) numCols = numCols + 2;
        std::vector<string> outVec; outVec.resize(numCols);
        int patternsI = 6; if (fStats) patternsI++; if(KS_test) patternsI = patternsI + 2; // Where will the BBAA, ABBA, etc. counts be put
        
        double KSpval; double KSpvalStrongSitesOnly;
        if (KS_test) {
            KSpval = testIfStrongSitesUniformlyDistributed(arrangement);
            if (KSpval < 2.3e-16) KSpval = 2.3e-16;
            KSpvalStrongSitesOnly = testIfStrongSitesUniformlyDistributed(arrangement, "strongSitesOnly");
            if (KSpvalStrongSitesOnly < 2.3e-16) KSpvalStrongSitesOnly = 2.3e-16;
        }
        
        if (std::fabs(D1_p) < 2.3e-16) { D1_p = 2.3e-16; }
        if (std::fabs(D2_p) < 2.3e-16) { D2_p = 2.3e-16; }
        if (std::fabs(D3_p) < 2.3e-16) { D3_p = 2.3e-16; }
        
        double f4ratio; double Dnum;
        
        switch (arrangement) {
                
        case P3isTrios2_Dpositive:
            outVec[0] = trio[0]; outVec[1] = trio[1]; outVec[2] = trio[2];
            outVec[3] = numToString(D1); outVec[4] = numToString(D1_Z);
            outVec[5] = numToString(D1_p); outVec[patternsI] = numToString(BBAAtotal);
            outVec[patternsI+1] = numToString(ABBAtotal); outVec[patternsI+2] = numToString(BABAtotal);
            if (fStats) { Dnum = ABBAtotal-BABAtotal; f4ratio = Dnum/F_G_denom1; }
            break;
                
        case P3isTrios2_Dnegative:
            outVec[0] = trio[1]; outVec[1] = trio[0]; outVec[2] = trio[2];
            outVec[3] = numToString(std::fabs(D1)); outVec[4] = numToString(D1_Z);
            outVec[5] = numToString(D1_p); outVec[patternsI] = numToString(BBAAtotal);
            outVec[patternsI+1] = numToString(BABAtotal); outVec[patternsI+2] = numToString(ABBAtotal);
            if (fStats) { Dnum = BABAtotal-ABBAtotal; f4ratio = Dnum/F_G_denom1_reversed; }
            break;
                
        case P3isTrios1_Dpositive:
            outVec[0] = trio[0]; outVec[1] = trio[2];
            outVec[2] = trio[1]; outVec[3] = numToString(std::fabs(D2)); outVec[4] = numToString(D2_Z);
            outVec[5] = numToString(D2_p); outVec[patternsI] = numToString(BABAtotal);
            outVec[patternsI+1] = numToString(ABBAtotal); outVec[patternsI+2] = numToString(BBAAtotal);
            if (fStats) { Dnum = ABBAtotal - BBAAtotal; f4ratio = Dnum/F_G_denom2; }
            break;
        
        case P3isTrios1_Dnegative:
            outVec[0] = trio[2]; outVec[1] = trio[0];
            outVec[2] = trio[1]; outVec[3] = numToString(std::fabs(D2)); outVec[4] = numToString(D2_Z);
            outVec[5] = numToString(D2_p); outVec[patternsI] = numToString(BABAtotal);
            outVec[patternsI+1] = numToString(BBAAtotal); outVec[patternsI+2] = numToString(ABBAtotal);
            if (fStats) { Dnum = BBAAtotal - ABBAtotal; f4ratio = Dnum/F_G_denom2_reversed; }
            break;
                
        case P3isTrios0_Dpositive:
            outVec[0] = trio[2]; outVec[1] = trio[1];
            outVec[2] = trio[0]; outVec[3] = numToString(std::fabs(D3)); outVec[4] = numToString(D3_Z);
            outVec[5] = numToString(D3_p); outVec[patternsI] = numToString(ABBAtotal);
            outVec[patternsI+1] = numToString(BBAAtotal); outVec[patternsI+2] = numToString(BABAtotal);
            if (fStats) { Dnum = BBAAtotal - BABAtotal; f4ratio = Dnum/F_G_denom3; }
            break;
        
        case P3isTrios0_Dnegative:
            outVec[0] = trio[1]; outVec[1] = trio[2];
            outVec[2] = trio[0]; outVec[3] = numToString(std::fabs(D3)); outVec[4] = numToString(D3_Z);
            outVec[5] = numToString(D3_p); outVec[patternsI] = numToString(ABBAtotal);
            outVec[patternsI+1] = numToString(BABAtotal); outVec[patternsI+2] = numToString(BBAAtotal);
            if (fStats) { Dnum = BABAtotal - BBAAtotal; f4ratio = Dnum/F_G_denom3_reversed; }
            break;
                
        }
        
        /* investigating rare cases of unexpected f4-ratio values
        if (f4ratio < 0 || f4ratio > 1) {
            std::cerr << "trio[0]: " << trio[0] << "trio[1]: " << trio[1] << "trio[2]: " << trio[2] << std::endl;
            std::cerr << "Arrangement: " << arrangement << std::endl;
            std::cerr << "D1: " << D1 << " D2: " << D2  << " D3: " << D3 << std::endl;
            std::cerr << "ABBAtotal: " << ABBAtotal << "BBAAtotal: " << BBAAtotal  << "BABAtotal: " << BABAtotal << std::endl;
            std::cerr << "ABBAtotal-BABAtotal: " << ABBAtotal-BABAtotal << "ABBAtotal-BBAAtotal: " << ABBAtotal- BBAAtotal  << "BBAAtotal-BABAtotal: " << BBAAtotal-BABAtotal << std::endl;
            std::cerr << "F_G_denom1: " << F_G_denom1 << "; F_G_denom1_reversed: " << F_G_denom1_reversed << std::endl;
            std::cerr << "F_G_denom2: " << F_G_denom2 << "; F_G_denom2_reversed: " << F_G_denom2_reversed << std::endl;
            std::cerr << "F_G_denom3: " << F_G_denom3 << "; F_G_denom3_reversed: " << F_G_denom3_reversed << std::endl;
            std::cerr << "f4ratio: " << f4ratio << std::endl;
        }
        */
        
        
        if (fStats) { // For now just bounding those unexpected cases to the 0 to 1 range
            if (f4ratio < 0) { f4ratio = 0; }
            if (f4ratio > 1) { f4ratio = 1; }
            outVec[6] = numToString(f4ratio);
        }
        if (KS_test) {
            if (fStats) { outVec[7] = numToString(KSpval); outVec[8] = numToString(KSpvalStrongSitesOnly); }
            else  { outVec[6] = numToString(KSpval); outVec[7] = numToString(KSpvalStrongSitesOnly); }
        }
        
        return outVec;
    }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x98, %rsp
movl %r9d, %ebp
movl %r8d, %r12d
movl %ecx, %r14d
movq %rdx, %r13
movq %rsi, %r15
movq %rdi, %rbx
leal 0x9(%r14,%r12,2), %esi
xorpd %xmm0, %xmm0
movupd %xmm0, (%rdi)
movq $0x0, 0x10(%rdi)
movq %rdi, 0x30(%rsp)
callq 0x20380
movzbl %r14b, %ecx
leal 0x6(%rcx), %eax
orl $0x8, %ecx
testb %r12b, %r12b
cmovel %eax, %ecx
movq %rcx, 0x38(%rsp)
je 0x1e0e2
movq %r14, %rbx
movq %r12, %r14
leaq 0x88(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x247e8(%rip), %rsi     # 0x427f5
leaq 0x247e9(%rip), %rdx     # 0x427fd
leaq 0x78(%rsp), %rdi
callq 0x88ba
leaq 0x78(%rsp), %rdx
movq %r15, %rdi
movl %ebp, %esi
callq 0x203b0
movsd %xmm0, 0x40(%rsp)
movq 0x78(%rsp), %rdi
cmpq %r12, %rdi
je 0x1e04d
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x7420
leaq 0x68(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x247a0(%rip), %rsi     # 0x427fe
leaq 0x247a8(%rip), %rdx     # 0x4280d
leaq 0x58(%rsp), %rdi
callq 0x88ba
leaq 0x58(%rsp), %rdx
movq %r15, %rdi
movl %ebp, %esi
callq 0x203b0
movapd %xmm0, %xmm2
movsd 0x241c6(%rip), %xmm0    # 0x42250
movsd %xmm0, 0x48(%rsp)
movq 0x58(%rsp), %rdi
cmpq %r12, %rdi
je 0x1e0b3
movq 0x68(%rsp), %rsi
incq %rsi
movsd %xmm2, 0x50(%rsp)
callq 0x7420
movsd 0x50(%rsp), %xmm2
movsd 0x24195(%rip), %xmm0    # 0x42250
movapd %xmm0, %xmm1
maxsd 0x40(%rsp), %xmm1
movsd %xmm1, 0x40(%rsp)
ucomisd %xmm2, %xmm0
movq %r14, %r12
ja 0x1e0da
movsd %xmm2, 0x48(%rsp)
movq %rbx, %r14
movq 0x30(%rsp), %rbx
fldt 0x30(%r15)
fabs
fldl 0x24162(%rip)           # 0x42250
fucomi %st(1), %st
fstp %st(1)
jbe 0x1e0fa
fld %st(0)
fstpt 0x30(%r15)
fldt 0x40(%r15)
fabs
fxch %st(1)
fucomi %st(1), %st
fstp %st(1)
jbe 0x1e10e
fld %st(0)
fstpt 0x40(%r15)
fldt 0x50(%r15)
fabs
fxch %st(1)
fucomi %st(1), %st
fstp %st(1)
jbe 0x1e122
fstpt 0x50(%r15)
fldz
fstp %st(0)
decl %ebp
cmpl $0x5, %ebp
ja 0x1ecbe
leaq 0x241a2(%rip), %rax     # 0x422d8
movslq (%rax,%rbp,4), %rcx
addq %rax, %rcx
jmpq *%rcx
movq (%r13), %rsi
movq (%rbx), %rdi
callq 0x7210
movq (%r13), %rsi
addq $0x20, %rsi
movq (%rbx), %rdi
addq $0x20, %rdi
callq 0x7210
movq (%r13), %rsi
addq $0x40, %rsi
movq (%rbx), %rdi
addq $0x40, %rdi
callq 0x7210
movsd 0x18(%r15), %xmm0
leaq 0x10(%rsp), %rdi
callq 0x206ee
movq (%rbx), %rdi
addq $0x60, %rdi
leaq 0x10(%rsp), %r13
movq %r13, %rsi
callq 0x7520
movq (%r13), %rdi
leaq 0x20(%rsp), %rbp
cmpq %rbp, %rdi
je 0x1e1b2
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x7420
movsd 0x60(%r15), %xmm0
leaq 0x10(%rsp), %rdi
callq 0x206ee
movq (%rbx), %rdi
subq $-0x80, %rdi
leaq 0x10(%rsp), %r13
movq %r13, %rsi
callq 0x7520
movq (%r13), %rdi
cmpq %rbp, %rdi
je 0x1e1ec
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x7420
fldt 0x30(%r15)
fstpt (%rsp)
leaq 0x10(%rsp), %rdi
callq 0x207d8
movl $0xa0, %edi
addq (%rbx), %rdi
leaq 0x10(%rsp), %r13
movq %r13, %rsi
callq 0x7520
movq (%r13), %rdi
cmpq %rbp, %rdi
je 0x1e228
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x7420
movsd 0x10(%r15), %xmm0
leaq 0x10(%rsp), %rdi
callq 0x206ee
movq 0x38(%rsp), %rdi
shll $0x5, %edi
addq (%rbx), %rdi
leaq 0x10(%rsp), %r13
movq %r13, %rsi
callq 0x7520
movq (%r13), %rdi
cmpq %rbp, %rdi
je 0x1e266
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x7420
movq %r14, %rbx
movsd (%r15), %xmm0
leaq 0x10(%rsp), %rdi
callq 0x206ee
movl 0x38(%rsp), %r14d
movq 0x30(%rsp), %rax
movq (%rax), %rax
movl %r14d, %ecx
shll $0x5, %ecx
leaq (%rax,%rcx), %rdi
addq $0x20, %rdi
leaq 0x10(%rsp), %r13
movq %r13, %rsi
callq 0x7520
movq (%r13), %rdi
cmpq %rbp, %rdi
je 0x1e2b6
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x7420
movsd 0x8(%r15), %xmm0
leaq 0x10(%rsp), %rdi
callq 0x206ee
movq 0x30(%rsp), %rax
movq (%rax), %rax
shll $0x5, %r14d
leaq (%rax,%r14), %rdi
addq $0x40, %rdi
leaq 0x10(%rsp), %r13
movq %r13, %rsi
callq 0x7520
movq (%r13), %rdi
cmpq %rbp, %rdi
je 0x1e2fd
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x7420
testb %bl, %bl
movq 0x30(%rsp), %rbx
je 0x1ed6e
movsd (%r15), %xmm0
subsd 0x8(%r15), %xmm0
divsd 0x98(%r15), %xmm0
jmp 0x1ecc7
movq (%r13), %rsi
addq $0x40, %rsi
movq (%rbx), %rdi
callq 0x7210
movq (%r13), %rsi
addq $0x20, %rsi
movq (%rbx), %rdi
addq $0x20, %rdi
callq 0x7210
movq (%r13), %rsi
movq (%rbx), %rdi
addq $0x40, %rdi
callq 0x7210
movsd 0x28(%r15), %xmm0
andpd 0x23f1b(%rip), %xmm0    # 0x42280
leaq 0x10(%rsp), %rdi
callq 0x206ee
movq (%rbx), %rdi
addq $0x60, %rdi
leaq 0x10(%rsp), %r13
movq %r13, %rsi
callq 0x7520
movq (%r13), %rdi
leaq 0x20(%rsp), %rbp
cmpq %rbp, %rdi
je 0x1e39e
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x7420
movsd 0x70(%r15), %xmm0
leaq 0x10(%rsp), %rdi
callq 0x206ee
movq (%rbx), %rdi
subq $-0x80, %rdi
leaq 0x10(%rsp), %r13
movq %r13, %rsi
callq 0x7520
movq (%r13), %rdi
cmpq %rbp, %rdi
je 0x1e3d8
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x7420
fldt 0x50(%r15)
fstpt (%rsp)
leaq 0x10(%rsp), %rdi
callq 0x207d8
movl $0xa0, %edi
addq (%rbx), %rdi
leaq 0x10(%rsp), %r13
movq %r13, %rsi
callq 0x7520
movq (%r13), %rdi
cmpq %rbp, %rdi
je 0x1e414
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x7420
movsd (%r15), %xmm0
leaq 0x10(%rsp), %rdi
callq 0x206ee
movq 0x38(%rsp), %rdi
shll $0x5, %edi
addq (%rbx), %rdi
leaq 0x10(%rsp), %r13
movq %r13, %rsi
callq 0x7520
movq (%r13), %rdi
cmpq %rbp, %rdi
je 0x1e451
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x7420
movq %r14, %rbx
movsd 0x10(%r15), %xmm0
leaq 0x10(%rsp), %rdi
callq 0x206ee
movl 0x38(%rsp), %r14d
movq 0x30(%rsp), %rax
movq (%rax), %rax
movl %r14d, %ecx
shll $0x5, %ecx
leaq (%rax,%rcx), %rdi
addq $0x20, %rdi
leaq 0x10(%rsp), %r13
movq %r13, %rsi
callq 0x7520
movq (%r13), %rdi
cmpq %rbp, %rdi
je 0x1e4a2
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x7420
movsd 0x8(%r15), %xmm0
leaq 0x10(%rsp), %rdi
callq 0x206ee
movq 0x30(%rsp), %rax
movq (%rax), %rax
shll $0x5, %r14d
leaq (%rax,%r14), %rdi
addq $0x40, %rdi
leaq 0x10(%rsp), %r13
movq %r13, %rsi
callq 0x7520
movq (%r13), %rdi
cmpq %rbp, %rdi
je 0x1e4e9
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x7420
testb %bl, %bl
movq 0x30(%rsp), %rbx
je 0x1ed6e
movsd 0x10(%r15), %xmm0
subsd 0x8(%r15), %xmm0
divsd 0xf8(%r15), %xmm0
jmp 0x1ecc7
movq (%r13), %rsi
movq (%rbx), %rdi
callq 0x7210
movq (%r13), %rsi
addq $0x40, %rsi
movq (%rbx), %rdi
addq $0x20, %rdi
callq 0x7210
movq (%r13), %rsi
addq $0x20, %rsi
movq (%rbx), %rdi
addq $0x40, %rdi
callq 0x7210
movsd 0x20(%r15), %xmm0
andpd 0x23d2e(%rip), %xmm0    # 0x42280
leaq 0x10(%rsp), %rdi
callq 0x206ee
movq (%rbx), %rdi
addq $0x60, %rdi
leaq 0x10(%rsp), %r13
movq %r13, %rsi
callq 0x7520
movq (%r13), %rdi
leaq 0x20(%rsp), %rbp
cmpq %rbp, %rdi
je 0x1e58b
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x7420
movsd 0x68(%r15), %xmm0
leaq 0x10(%rsp), %rdi
callq 0x206ee
movq (%rbx), %rdi
subq $-0x80, %rdi
leaq 0x10(%rsp), %r13
movq %r13, %rsi
callq 0x7520
movq (%r13), %rdi
cmpq %rbp, %rdi
je 0x1e5c5
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x7420
fldt 0x40(%r15)
fstpt (%rsp)
leaq 0x10(%rsp), %rdi
callq 0x207d8
movl $0xa0, %edi
addq (%rbx), %rdi
leaq 0x10(%rsp), %r13
movq %r13, %rsi
callq 0x7520
movq (%r13), %rdi
cmpq %rbp, %rdi
je 0x1e601
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x7420
movsd 0x8(%r15), %xmm0
leaq 0x10(%rsp), %rdi
callq 0x206ee
movq 0x38(%rsp), %rdi
shll $0x5, %edi
addq (%rbx), %rdi
leaq 0x10(%rsp), %r13
movq %r13, %rsi
callq 0x7520
movq (%r13), %rdi
cmpq %rbp, %rdi
je 0x1e63f
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x7420
movq %r14, %rbx
movsd (%r15), %xmm0
leaq 0x10(%rsp), %rdi
callq 0x206ee
movl 0x38(%rsp), %r14d
movq 0x30(%rsp), %rax
movq (%rax), %rax
movl %r14d, %ecx
shll $0x5, %ecx
leaq (%rax,%rcx), %rdi
addq $0x20, %rdi
leaq 0x10(%rsp), %r13
movq %r13, %rsi
callq 0x7520
movq (%r13), %rdi
cmpq %rbp, %rdi
je 0x1e68f
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x7420
movsd 0x10(%r15), %xmm0
leaq 0x10(%rsp), %rdi
callq 0x206ee
movq 0x30(%rsp), %rax
movq (%rax), %rax
shll $0x5, %r14d
leaq (%rax,%r14), %rdi
addq $0x40, %rdi
leaq 0x10(%rsp), %r13
movq %r13, %rsi
callq 0x7520
movq (%r13), %rdi
cmpq %rbp, %rdi
je 0x1e6d6
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x7420
testb %bl, %bl
movq 0x30(%rsp), %rbx
je 0x1ed6e
movsd (%r15), %xmm0
subsd 0x10(%r15), %xmm0
divsd 0xc8(%r15), %xmm0
jmp 0x1ecc7
movq (%r13), %rsi
addq $0x40, %rsi
movq (%rbx), %rdi
callq 0x7210
movq (%r13), %rsi
movq (%rbx), %rdi
addq $0x20, %rdi
callq 0x7210
movq (%r13), %rsi
addq $0x20, %rsi
movq (%rbx), %rdi
addq $0x40, %rdi
callq 0x7210
movsd 0x20(%r15), %xmm0
andpd 0x23b42(%rip), %xmm0    # 0x42280
leaq 0x10(%rsp), %rdi
callq 0x206ee
movq (%rbx), %rdi
addq $0x60, %rdi
leaq 0x10(%rsp), %r13
movq %r13, %rsi
callq 0x7520
movq (%r13), %rdi
leaq 0x20(%rsp), %rbp
cmpq %rbp, %rdi
je 0x1e777
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x7420
movsd 0x68(%r15), %xmm0
leaq 0x10(%rsp), %rdi
callq 0x206ee
movq (%rbx), %rdi
subq $-0x80, %rdi
leaq 0x10(%rsp), %r13
movq %r13, %rsi
callq 0x7520
movq (%r13), %rdi
cmpq %rbp, %rdi
je 0x1e7b1
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x7420
fldt 0x40(%r15)
fstpt (%rsp)
leaq 0x10(%rsp), %rdi
callq 0x207d8
movl $0xa0, %edi
addq (%rbx), %rdi
leaq 0x10(%rsp), %r13
movq %r13, %rsi
callq 0x7520
movq (%r13), %rdi
cmpq %rbp, %rdi
je 0x1e7ed
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x7420
movsd 0x8(%r15), %xmm0
leaq 0x10(%rsp), %rdi
callq 0x206ee
movq 0x38(%rsp), %rdi
shll $0x5, %edi
addq (%rbx), %rdi
leaq 0x10(%rsp), %r13
movq %r13, %rsi
callq 0x7520
movq (%r13), %rdi
cmpq %rbp, %rdi
je 0x1e82b
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x7420
movq %r14, %rbx
movsd 0x10(%r15), %xmm0
leaq 0x10(%rsp), %rdi
callq 0x206ee
movl 0x38(%rsp), %r14d
movq 0x30(%rsp), %rax
movq (%rax), %rax
movl %r14d, %ecx
shll $0x5, %ecx
leaq (%rax,%rcx), %rdi
addq $0x20, %rdi
leaq 0x10(%rsp), %r13
movq %r13, %rsi
callq 0x7520
movq (%r13), %rdi
cmpq %rbp, %rdi
je 0x1e87c
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x7420
movsd (%r15), %xmm0
leaq 0x10(%rsp), %rdi
callq 0x206ee
movq 0x30(%rsp), %rax
movq (%rax), %rax
shll $0x5, %r14d
leaq (%rax,%r14), %rdi
addq $0x40, %rdi
leaq 0x10(%rsp), %r13
movq %r13, %rsi
callq 0x7520
movq (%r13), %rdi
cmpq %rbp, %rdi
je 0x1e8c2
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x7420
testb %bl, %bl
movq 0x30(%rsp), %rbx
je 0x1ed6e
movsd 0x10(%r15), %xmm0
subsd (%r15), %xmm0
divsd 0xd0(%r15), %xmm0
jmp 0x1ecc7
movq (%r13), %rsi
addq $0x20, %rsi
movq (%rbx), %rdi
callq 0x7210
movq (%r13), %rsi
movq (%rbx), %rdi
addq $0x20, %rdi
callq 0x7210
movq (%r13), %rsi
addq $0x40, %rsi
movq (%rbx), %rdi
addq $0x40, %rdi
callq 0x7210
movsd 0x18(%r15), %xmm0
andpd 0x23956(%rip), %xmm0    # 0x42280
leaq 0x10(%rsp), %rdi
callq 0x206ee
movq (%rbx), %rdi
addq $0x60, %rdi
leaq 0x10(%rsp), %r13
movq %r13, %rsi
callq 0x7520
movq (%r13), %rdi
leaq 0x20(%rsp), %rbp
cmpq %rbp, %rdi
je 0x1e963
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x7420
movsd 0x60(%r15), %xmm0
leaq 0x10(%rsp), %rdi
callq 0x206ee
movq (%rbx), %rdi
subq $-0x80, %rdi
leaq 0x10(%rsp), %r13
movq %r13, %rsi
callq 0x7520
movq (%r13), %rdi
cmpq %rbp, %rdi
je 0x1e99d
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x7420
fldt 0x30(%r15)
fstpt (%rsp)
leaq 0x10(%rsp), %rdi
callq 0x207d8
movl $0xa0, %edi
addq (%rbx), %rdi
leaq 0x10(%rsp), %r13
movq %r13, %rsi
callq 0x7520
movq (%r13), %rdi
cmpq %rbp, %rdi
je 0x1e9d9
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x7420
movsd 0x10(%r15), %xmm0
leaq 0x10(%rsp), %rdi
callq 0x206ee
movq 0x38(%rsp), %rdi
shll $0x5, %edi
addq (%rbx), %rdi
leaq 0x10(%rsp), %r13
movq %r13, %rsi
callq 0x7520
movq (%r13), %rdi
cmpq %rbp, %rdi
je 0x1ea17
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x7420
movq %r14, %rbx
movsd 0x8(%r15), %xmm0
leaq 0x10(%rsp), %rdi
callq 0x206ee
movl 0x38(%rsp), %r14d
movq 0x30(%rsp), %rax
movq (%rax), %rax
movl %r14d, %ecx
shll $0x5, %ecx
leaq (%rax,%rcx), %rdi
addq $0x20, %rdi
leaq 0x10(%rsp), %r13
movq %r13, %rsi
callq 0x7520
movq (%r13), %rdi
cmpq %rbp, %rdi
je 0x1ea68
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x7420
movsd (%r15), %xmm0
leaq 0x10(%rsp), %rdi
callq 0x206ee
movq 0x30(%rsp), %rax
movq (%rax), %rax
shll $0x5, %r14d
leaq (%rax,%r14), %rdi
addq $0x40, %rdi
leaq 0x10(%rsp), %r13
movq %r13, %rsi
callq 0x7520
movq (%r13), %rdi
cmpq %rbp, %rdi
je 0x1eaae
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x7420
testb %bl, %bl
movq 0x30(%rsp), %rbx
je 0x1ed6e
movsd 0x8(%r15), %xmm0
subsd (%r15), %xmm0
divsd 0xa0(%r15), %xmm0
jmp 0x1ecc7
movq (%r13), %rsi
addq $0x20, %rsi
movq (%rbx), %rdi
callq 0x7210
movq (%r13), %rsi
addq $0x40, %rsi
movq (%rbx), %rdi
addq $0x20, %rdi
callq 0x7210
movq (%r13), %rsi
movq (%rbx), %rdi
addq $0x40, %rdi
callq 0x7210
movsd 0x28(%r15), %xmm0
andpd 0x2376a(%rip), %xmm0    # 0x42280
leaq 0x10(%rsp), %rdi
callq 0x206ee
movq (%rbx), %rdi
addq $0x60, %rdi
leaq 0x10(%rsp), %r13
movq %r13, %rsi
callq 0x7520
movq (%r13), %rdi
leaq 0x20(%rsp), %rbp
cmpq %rbp, %rdi
je 0x1eb4f
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x7420
movsd 0x70(%r15), %xmm0
leaq 0x10(%rsp), %rdi
callq 0x206ee
movq (%rbx), %rdi
subq $-0x80, %rdi
leaq 0x10(%rsp), %r13
movq %r13, %rsi
callq 0x7520
movq (%r13), %rdi
cmpq %rbp, %rdi
je 0x1eb89
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x7420
fldt 0x50(%r15)
fstpt (%rsp)
leaq 0x10(%rsp), %rdi
callq 0x207d8
movl $0xa0, %edi
addq (%rbx), %rdi
leaq 0x10(%rsp), %r13
movq %r13, %rsi
callq 0x7520
movq (%r13), %rdi
cmpq %rbp, %rdi
je 0x1ebc5
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x7420
movsd (%r15), %xmm0
leaq 0x10(%rsp), %rdi
callq 0x206ee
movq 0x38(%rsp), %rdi
shll $0x5, %edi
addq (%rbx), %rdi
leaq 0x10(%rsp), %r13
movq %r13, %rsi
callq 0x7520
movq (%r13), %rdi
cmpq %rbp, %rdi
je 0x1ec02
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x7420
movq %r14, %rbx
movsd 0x8(%r15), %xmm0
leaq 0x10(%rsp), %rdi
callq 0x206ee
movl 0x38(%rsp), %r14d
movq 0x30(%rsp), %rax
movq (%rax), %rax
movl %r14d, %ecx
shll $0x5, %ecx
leaq (%rax,%rcx), %rdi
addq $0x20, %rdi
leaq 0x10(%rsp), %r13
movq %r13, %rsi
callq 0x7520
movq (%r13), %rdi
cmpq %rbp, %rdi
je 0x1ec53
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x7420
movsd 0x10(%r15), %xmm0
leaq 0x10(%rsp), %rdi
callq 0x206ee
movq 0x30(%rsp), %rax
movq (%rax), %rax
shll $0x5, %r14d
leaq (%rax,%r14), %rdi
addq $0x40, %rdi
leaq 0x10(%rsp), %r13
movq %r13, %rsi
callq 0x7520
movq (%r13), %rdi
cmpq %rbp, %rdi
je 0x1ec9a
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x7420
testb %bl, %bl
movq 0x30(%rsp), %rbx
je 0x1ed6e
movsd 0x8(%r15), %xmm0
subsd 0x10(%r15), %xmm0
divsd 0x100(%r15), %xmm0
jmp 0x1ecc7
testb %r14b, %r14b
je 0x1ed6e
xorpd %xmm1, %xmm1
maxsd %xmm0, %xmm1
movsd 0x22799(%rip), %xmm0    # 0x41470
minsd %xmm1, %xmm0
leaq 0x10(%rsp), %rdi
callq 0x206ee
movl $0xc0, %edi
addq (%rbx), %rdi
leaq 0x10(%rsp), %r15
movq %r15, %rsi
callq 0x7520
movq (%r15), %rdi
leaq 0x20(%rsp), %r15
cmpq %r15, %rdi
je 0x1ed14
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x7420
testb %r12b, %r12b
je 0x1edec
leaq 0x10(%rsp), %rdi
movsd 0x40(%rsp), %xmm0
callq 0x206ee
movl $0xe0, %edi
addq (%rbx), %rdi
leaq 0x10(%rsp), %r14
movq %r14, %rsi
callq 0x7520
movq (%r14), %rdi
cmpq %r15, %rdi
je 0x1ed57
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x7420
leaq 0x10(%rsp), %rdi
movsd 0x48(%rsp), %xmm0
callq 0x206ee
movl $0x100, %edi            # imm = 0x100
jmp 0x1edc7
testb %r12b, %r12b
je 0x1edec
leaq 0x10(%rsp), %rdi
movsd 0x40(%rsp), %xmm0
callq 0x206ee
movl $0xc0, %edi
addq (%rbx), %rdi
leaq 0x10(%rsp), %r14
movq %r14, %rsi
callq 0x7520
movq (%r14), %rdi
leaq 0x20(%rsp), %r15
cmpq %r15, %rdi
je 0x1edb2
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x7420
leaq 0x10(%rsp), %rdi
movsd 0x48(%rsp), %xmm0
callq 0x206ee
movl $0xe0, %edi
addq (%rbx), %rdi
leaq 0x10(%rsp), %r14
movq %r14, %rsi
callq 0x7520
movq (%r14), %rdi
cmpq %r15, %rdi
je 0x1edec
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x7420
movq %rbx, %rax
addq $0x98, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x1ee9b
jmp 0x1ee9b
jmp 0x1ee9b
jmp 0x1ee9b
jmp 0x1ee9b
jmp 0x1ee9b
jmp 0x1ee9b
jmp 0x1ee9b
jmp 0x1ee9b
jmp 0x1ee9b
jmp 0x1ee9b
jmp 0x1ee9b
jmp 0x1ee9b
jmp 0x1ee9b
jmp 0x1ee9b
jmp 0x1ee9b
jmp 0x1ee9b
jmp 0x1ee9b
jmp 0x1ee9b
jmp 0x1ee9b
jmp 0x1ee9b
jmp 0x1ee9b
jmp 0x1ee9b
jmp 0x1ee9b
jmp 0x1ee9b
jmp 0x1ee9b
jmp 0x1ee9b
jmp 0x1ee9b
jmp 0x1ee9b
jmp 0x1ee9b
jmp 0x1ee9b
jmp 0x1ee9b
jmp 0x1ee9b
jmp 0x1ee9b
jmp 0x1ee9b
jmp 0x1ee9b
jmp 0x1ee9b
jmp 0x1ee9b
jmp 0x1ee9b
jmp 0x1ee9b
jmp 0x1ee9b
movq %rax, %r14
movq 0x58(%rsp), %rdi
cmpq %r12, %rdi
je 0x1ee9e
movq 0x68(%rsp), %rsi
jmp 0x1ee8d
jmp 0x1ee9b
movq %rax, %r14
movq 0x78(%rsp), %rdi
cmpq %r12, %rdi
je 0x1ee9e
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x7420
jmp 0x1ee9e
jmp 0x1ee9b
jmp 0x1ee9b
movq %rax, %r14
movq 0x30(%rsp), %rdi
callq 0xd1ac
movq %r14, %rdi
callq 0x7740