// File: /workspace/github_c_makefile_star2_O2/c-zhou[P]yahs/binomlite.c
// Function: bratio
void bratio(double a, double b, double x, double y, double *w, double *w1, int *ierr, int log_p)
{
    int do_swap;
    int n, ierr1 = 0;
    double z, a0, b0, x0, y0, lambda;
    double eps = DBL_EPSILON;
    *w  = R_D__0;
    *w1 = R_D__0;
    if (a < 0. || b < 0.)   { *ierr = 1; return; }
    if (a == 0. && b == 0.) { *ierr = 2; return; }
    if (x < 0. || x > 1.)   { *ierr = 3; return; }
    if (y < 0. || y > 1.)   { *ierr = 4; return; }

    /* check that  'y == 1 - x' : */
    z = x + y - 0.5 - 0.5;

    if (fabs(z) > eps * 3.) { *ierr = 5; return; }
    
    *ierr = 0;
    if (x == 0.) goto L200;
    if (y == 0.) goto L210;

    if (a == 0.) goto L211;
    if (b == 0.) goto L201;

    eps = fmax2(eps, 1e-15);
    int a_lt_b = (a < b);
    if (/* max(a,b) */ (a_lt_b ? b : a) < eps * .001) { /* procedure for a and b < 0.001 * eps */
        // L230:  -- result *independent* of x (!)
        // *w  = a/(a+b)  and  w1 = b/(a+b) :
        if(log_p) {
            if(a_lt_b) {
                *w  = log1p(-a / (a + b)); // notably if a << b
                *w1 = log  ( a / (a + b));
            } else { // b <= a
                *w  = log  ( b / (a + b));
                *w1 = log1p(-b / (a + b));
            }
        } else {
            *w    = b / (a + b);
            *w1 = a / (a + b);
        }
        return;
    }

    #define SET_0_noswap \
    a0 = a;  x0 = x; \
    b0 = b;  y0 = y;

#define SET_0_swap   \
    a0 = b;  x0 = y; \
    b0 = a;  y0 = x;
    
    if (fmin2(a, b) <= 1.) { /*------------------------ a <= 1  or  b <= 1 ---- */
        do_swap = (x > 0.5);
        if (do_swap) {
            SET_0_swap;
        } else {
            SET_0_noswap;
        }
        /* now have  x0 <= 1/2 <= y0  (still  x0+y0 == 1) */

        if (b0 < fmin2(eps, eps * a0)) { /* L80: */
            *w = fpser(a0, b0, x0, eps, log_p);
            *w1 = log_p ? R_Log1_Exp(*w) : 0.5 - *w + 0.5;
            goto L_end;
        }

        if (a0 < fmin2(eps, eps * b0) && b0 * x0 <= 1.) { /* L90: */
            *w1 = apser(a0, b0, x0, eps);
            goto L_end_from_w1;
        }

        int did_bup = 0;
        if (fmax2(a0, b0) > 1.) { /* L20:  min(a,b) <= 1 < max(a,b)  */
            if (b0 <= 1.) goto L_w_bpser;

            if (x0 >= 0.29) /* was 0.3, PR#13786 */    goto L_w1_bpser;

            if (x0 < 0.1 && pow(x0 * b0, a0) <= 0.7) goto L_w_bpser;

            if (b0 > 15.) {
                *w1 = 0.;
                goto L131;
            }
        } else { /*  a, b <= 1 */
            if (a0 >= fmin2(0.2, b0))    goto L_w_bpser;

            if (pow(x0, a0) <= 0.9) goto L_w_bpser;

            if (x0 >= 0.3) goto L_w1_bpser;
        }
        n = 20; /* goto L130; */
        *w1 = bup(b0, a0, y0, x0, n, eps, 0);
        did_bup = 1;
        b0 += n;
    L131:
        bgrat(b0, a0, y0, x0, w1, 15*eps, &ierr1, 0);
        
        if(*w1 == 0 || (0 < *w1 && *w1 < DBL_MIN)) { // w1=0 or very close:
            // "almost surely" from underflow, try more: [2013-03-04]
            // FIXME: it is even better to do this in bgrat *directly* at least for the case
            //  !did_bup, i.e., where *w1 = (0 or -Inf) on entry
            if(did_bup) // re-do that part on log scale:
                *w1 = bup(b0-n, a0, y0, x0, n, eps, 1);
            else
                *w1 = ML_NEGINF; // = 0 on log-scale
            bgrat(b0, a0, y0, x0, w1, 15*eps, &ierr1, 1);
            if(ierr1) *ierr = 10 + ierr1;
            goto L_end_from_w1_log;
        }
        // else
        if(ierr1) *ierr = 10 + ierr1;
        goto L_end_from_w1;
    } else { /* L30: -------------------- both  a, b > 1  {a0 > 1  &  b0 > 1} ---*/
        
        /* lambda := a y - b x  =  (a + b)y  =  a - (a+b)x    {using x + y == 1},
        * ------ using the numerically best version : */
        lambda = R_FINITE(a + b)
            ? ((a > b) ? (a + b) * y - b : a - (a + b) * x)
            : a * y - b * x;
        do_swap = (lambda < 0.);
        if (do_swap) {
            lambda = -lambda;
            SET_0_swap;
        } else {
            SET_0_noswap;
        }

        if (b0 < 40.) {
            if (b0 * x0 <= 0.7
                    || (log_p && lambda > 650.)) // << added 2010-03; svn r51327
                goto L_w_bpser;
            else
                goto L140;
        } else if (a0 > b0) { /* ----  a0 > b0 >= 40  ---- */
            if (b0 <= 100. || lambda > b0 * 0.03)
                goto L_bfrac;
        } else if (a0 <= 100.) {
            goto L_bfrac;
        } else if (lambda > a0 * 0.03) {
            goto L_bfrac;
        }

        /* else if none of the above    L180: */
        *w = basym(a0, b0, lambda, eps * 100., log_p);
        *w1 = log_p ? R_Log1_Exp(*w) : 0.5 - *w + 0.5;
        goto L_end;
    } /* else: a, b > 1 */
    
    /*            EVALUATION OF THE APPROPRIATE ALGORITHM */

L_w_bpser: // was L100
    *w = bpser(a0, b0, x0, eps, log_p);
    *w1 = log_p ? R_Log1_Exp(*w) : 0.5 - *w + 0.5;
    goto L_end;

L_w1_bpser:  // was L110
    *w1 = bpser(b0, a0, y0, eps, log_p);
    *w  = log_p ? R_Log1_Exp(*w1) : 0.5 - *w1 + 0.5;
    goto L_end;

L_bfrac:
    *w = bfrac(a0, b0, x0, y0, lambda, eps * 15., log_p);
    *w1 = log_p ? R_Log1_Exp(*w) : 0.5 - *w + 0.5;
    goto L_end;

L140:
    /* b0 := fractional_part( b0 )  in (0, 1]  */
    n = (int) b0;
    b0 -= n;
    if (b0 == 0.) {
        --n;
        b0 = 1.;
    }

    *w = bup(b0, a0, y0, x0, n, eps, 0);

    if(*w < DBL_MIN && log_p) { /* do not believe it; try bpser() : */
        /*revert: */ b0 += n;
        /* which is only valid if b0 <= 1 || b0*x0 <= 0.7 */
        goto L_w_bpser;
    }
    if (x0 <= 0.7) {
        /* log_p :  TODO:  w = bup(.) + bpser(.)  -- not so easy to use log-scale */
        *w += bpser(a0, b0, x0, eps, /* log_p = */ 0);
        goto L_end_from_w;
    }
    /* L150: */
    if (a0 <= 15.) {
        n = 20;
        *w += bup(a0, b0, x0, y0, n, eps, 0);
        a0 += n;
    }
    bgrat(a0, b0, x0, y0, w, 15*eps, &ierr1, 0);
    if(ierr1) *ierr = 10 + ierr1;
    goto L_end_from_w;

/* TERMINATION OF THE PROCEDURE */

L200:
    if (a == 0.) { *ierr = 6;    return; }
    // else:
L201: *w  = R_D__0; *w1 = R_D__1; return;

L210:
    if (b == 0.) { *ierr = 7;    return; }
    // else:
L211: *w  = R_D__1; *w1 = R_D__0; return;

L_end_from_w:
    if(log_p) {
        *w1 = log1p(-*w);
        *w  = log(*w);
    } else {
        *w1 = 0.5 - *w + 0.5;
    }
    goto L_end;

L_end_from_w1:
    if(log_p) {
        *w  = log1p(-*w1);
        *w1 = log(*w1);
    } else {
        *w = 0.5 - *w1 + 0.5;
    }
    goto L_end;

L_end_from_w1_log:
    // *w1 = log(w1) already; w = 1 - w1  ==> log(w) = log(1 - w1) = log(1 - exp(*w1))
    if(log_p) {
        *w = R_Log1_Exp(*w1);
    } else {
        *w  = /* 1 - exp(*w1) */ -expm1(*w1);
        *w1 = exp(*w1);
    }
    goto L_end;


L_end:
    if (do_swap) { /* swap */
        double t = *w; *w = *w1; *w1 = t;
    }
    return;

}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x388, %rsp            # imm = 0x388
movl %ecx, %ebp
movq %rdx, %r15
movq %rsi, %rbx
movq %rdi, %r14
andl $0x0, 0x9c(%rsp)
movapd %xmm1, %xmm5
movapd %xmm0, %xmm7
xorpd %xmm1, %xmm1
testl %ecx, %ecx
jne 0x13b6a
xorpd %xmm0, %xmm0
jmp 0x13b72
movsd 0xbc06(%rip), %xmm0     # 0x1f778
movsd %xmm0, (%r14)
movsd %xmm0, (%rbx)
ucomisd %xmm7, %xmm1
ja 0x13ba0
ucomisd %xmm5, %xmm1
ja 0x13ba0
ucomisd %xmm1, %xmm7
jne 0x13bb9
jp 0x13bb9
ucomisd %xmm1, %xmm5
jne 0x13bb9
jp 0x13bb9
movl $0x2, (%r15)
jmp 0x13ba7
movl $0x1, (%r15)
addq $0x388, %rsp            # imm = 0x388
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
ucomisd %xmm2, %xmm1
ja 0x13c0c
ucomisd 0xaa51(%rip), %xmm2     # 0x1e618
ja 0x13c0c
ucomisd %xmm3, %xmm1
ja 0x13c15
ucomisd 0xaa41(%rip), %xmm3     # 0x1e618
ja 0x13c15
movapd %xmm2, %xmm1
addsd %xmm3, %xmm1
movsd 0xbb97(%rip), %xmm4     # 0x1f780
addsd %xmm4, %xmm1
addsd %xmm4, %xmm1
andpd 0xc0c7(%rip), %xmm1     # 0x1fcc0
ucomisd 0xbb87(%rip), %xmm1     # 0x1f788
jbe 0x13c1e
movl $0x5, (%r15)
jmp 0x13ba7
movl $0x3, (%r15)
jmp 0x13ba7
movl $0x4, (%r15)
jmp 0x13ba7
andl $0x0, (%r15)
xorpd %xmm1, %xmm1
ucomisd %xmm1, %xmm2
jne 0x13c42
jp 0x13c42
ucomisd %xmm1, %xmm7
jne 0x13c81
jp 0x13c81
movl $0x6, (%r15)
jmp 0x13ba7
ucomisd %xmm1, %xmm3
jne 0x13c5e
jp 0x13c5e
ucomisd %xmm1, %xmm5
jne 0x13c66
jp 0x13c66
movl $0x7, (%r15)
jmp 0x13ba7
ucomisd %xmm1, %xmm7
jne 0x13c79
jp 0x13c79
testl %ebp, %ebp
jne 0x13c72
movsd 0xa9a6(%rip), %xmm1     # 0x1e618
movsd %xmm1, (%r14)
jmp 0x13c96
ucomisd %xmm1, %xmm5
jne 0x13c9f
jp 0x13c9f
movsd %xmm0, (%r14)
xorpd %xmm0, %xmm0
testl %ebp, %ebp
jne 0x13c96
movsd 0xa982(%rip), %xmm0     # 0x1e618
movsd %xmm0, (%rbx)
jmp 0x13ba7
movapd %xmm5, %xmm0
maxsd %xmm7, %xmm0
movsd 0xbae1(%rip), %xmm1     # 0x1f790
ucomisd %xmm0, %xmm1
jbe 0x13d04
testl %ebp, %ebp
je 0x13d8b
ucomisd %xmm7, %xmm5
jbe 0x13da9
movapd 0xc001(%rip), %xmm0     # 0x1fcd0
xorpd %xmm7, %xmm0
addsd %xmm7, %xmm5
movapd %xmm5, 0x10(%rsp)
divsd %xmm5, %xmm0
movapd %xmm7, 0x30(%rsp)
callq 0x2220
movsd %xmm0, (%r14)
movapd 0x30(%rsp), %xmm0
divsd 0x10(%rsp), %xmm0
callq 0x2240
jmp 0x13c96
movapd %xmm7, %xmm0
cmplesd %xmm5, %xmm0
movapd %xmm0, %xmm1
andpd %xmm7, %xmm1
andnpd %xmm5, %xmm0
orpd %xmm1, %xmm0
movsd 0xa8f3(%rip), %xmm6     # 0x1e618
ucomisd %xmm0, %xmm6
jae 0x13d6b
movapd %xmm7, %xmm6
addsd %xmm5, %xmm6
movq %xmm6, %rax
btrq $0x3f, %rax
movabsq $0x7fefffffffffffff, %rcx # imm = 0x7FEFFFFFFFFFFFFF
cmpq %rcx, %rax
movapd %xmm2, 0x10(%rsp)
jle 0x13de9
movapd %xmm5, %xmm0
mulsd %xmm2, %xmm0
movapd %xmm7, %xmm4
mulsd %xmm3, %xmm4
jmp 0x13fab
xorl %ecx, %ecx
ucomisd 0xa46b(%rip), %xmm2     # 0x1e1e0
seta %al
ja 0x13e04
movapd %xmm7, %xmm4
movapd %xmm2, %xmm0
jmp 0x13e14
movapd %xmm7, %xmm0
addsd %xmm5, %xmm0
divsd %xmm0, %xmm5
movsd %xmm5, (%r14)
divsd %xmm0, %xmm7
movsd %xmm7, (%rbx)
jmp 0x13ba7
addsd %xmm5, %xmm7
movapd %xmm7, 0x30(%rsp)
movapd %xmm5, %xmm0
divsd %xmm7, %xmm0
movapd %xmm5, 0x10(%rsp)
callq 0x2240
movsd %xmm0, (%r14)
movapd 0x10(%rsp), %xmm0
xorpd 0xbef7(%rip), %xmm0     # 0x1fcd0
divsd 0x30(%rsp), %xmm0
callq 0x2220
jmp 0x13c96
ucomisd %xmm5, %xmm7
jbe 0x13f9d
movapd %xmm6, %xmm4
mulsd %xmm3, %xmm4
subsd %xmm5, %xmm4
jmp 0x13faf
movapd %xmm5, %xmm4
movapd %xmm7, %xmm5
movapd %xmm3, %xmm0
movapd %xmm2, %xmm3
movb %al, %cl
movsd 0xb97a(%rip), %xmm7     # 0x1f798
movapd %xmm4, %xmm2
mulsd %xmm7, %xmm2
movapd %xmm7, %xmm1
minsd %xmm2, %xmm1
ucomisd %xmm5, %xmm1
movapd %xmm4, 0x40(%rsp)
movapd %xmm0, 0x60(%rsp)
movapd %xmm5, 0x10(%rsp)
jbe 0x13e91
movl %ecx, %r15d
testl %ebp, %ebp
je 0x14236
callq 0x2240
mulsd 0x40(%rsp), %xmm0
movsd %xmm0, 0x30(%rsp)
movaps 0x10(%rsp), %xmm0
callq 0x2240
movaps %xmm0, 0x10(%rsp)
movapd 0x40(%rsp), %xmm0
callq 0x2240
movapd 0x10(%rsp), %xmm1
subsd %xmm0, %xmm1
addsd 0x30(%rsp), %xmm1
jmp 0x14b43
movsd %xmm3, (%rsp)
movl %ecx, 0x2c(%rsp)
movapd %xmm5, %xmm1
mulsd %xmm0, %xmm1
movapd %xmm1, 0x30(%rsp)
ucomisd %xmm1, %xmm6
jb 0x13efc
movapd %xmm5, %xmm0
mulsd %xmm7, %xmm0
minsd %xmm0, %xmm7
ucomisd %xmm4, %xmm7
jbe 0x13efc
movapd 0x60(%rsp), %xmm1
subsd 0x30(%rsp), %xmm1
movsd %xmm1, 0xc0(%rsp)
movsd 0xb8c3(%rip), %xmm1     # 0x1f7a0
ucomisd %xmm0, %xmm1
jae 0x144a2
movapd 0x30(%rsp), %xmm0
callq 0x2240
movapd %xmm0, (%rsp)
jmp 0x1581a
movapd %xmm5, %xmm0
cmplesd %xmm4, %xmm0
movapd %xmm0, %xmm1
andpd %xmm4, %xmm1
andnpd %xmm5, %xmm0
orpd %xmm1, %xmm0
ucomisd 0xa6fb(%rip), %xmm0     # 0x1e618
jbe 0x1427b
movsd 0xa6ed(%rip), %xmm0     # 0x1e618
ucomisd 0x10(%rsp), %xmm0
jae 0x14377
movapd 0x60(%rsp), %xmm0
ucomisd 0xb8eb(%rip), %xmm0     # 0x1f830
jae 0x14f00
movsd 0xa6cd(%rip), %xmm0     # 0x1e620
ucomisd 0x60(%rsp), %xmm0
jbe 0x13f7d
movapd 0x30(%rsp), %xmm0
movaps 0x40(%rsp), %xmm1
callq 0x2140
movsd 0xb8cd(%rip), %xmm1     # 0x1f840
ucomisd %xmm0, %xmm1
jae 0x14377
movapd 0x10(%rsp), %xmm0
ucomisd 0xb8bd(%rip), %xmm0     # 0x1f848
jbe 0x142cf
andq $0x0, (%rbx)
movb $0x1, %r12b
jmp 0x1430a
movapd %xmm6, %xmm0
mulsd 0x10(%rsp), %xmm0
movapd %xmm7, %xmm4
subsd %xmm0, %xmm4
xorpd %xmm0, %xmm0
xorl %ecx, %ecx
ucomisd %xmm4, %xmm0
seta %al
jbe 0x13fd0
xorpd 0xbd0a(%rip), %xmm4     # 0x1fcd0
movapd %xmm5, %xmm1
movapd %xmm3, %xmm2
jmp 0x13fe4
movapd %xmm7, %xmm1
movapd %xmm5, %xmm7
movapd 0x10(%rsp), %xmm2
movapd %xmm3, 0x10(%rsp)
movb %al, %cl
movl %ecx, 0x2c(%rsp)
movsd 0xb876(%rip), %xmm0     # 0x1f868
ucomisd %xmm7, %xmm0
movapd %xmm1, 0x40(%rsp)
movapd %xmm7, 0x30(%rsp)
movapd %xmm2, 0x60(%rsp)
jbe 0x140d9
testl %ebp, %ebp
setne %al
ucomisd 0xb8d5(%rip), %xmm4     # 0x1f8f0
seta %cl
mulsd %xmm2, %xmm7
movsd 0xb816(%rip), %xmm1     # 0x1f840
ucomisd %xmm7, %xmm1
jae 0x14111
andb %cl, %al
jne 0x14111
movapd 0x30(%rsp), %xmm2
cvttsd2si %xmm2, %r12d
cvttpd2dq %xmm2, %xmm0
cvtdq2pd %xmm0, %xmm0
subsd %xmm0, %xmm2
xorpd %xmm0, %xmm0
movapd %xmm2, %xmm1
cmpeqsd %xmm0, %xmm1
movq %xmm1, %rax
movapd %xmm2, 0x30(%rsp)
ucomisd %xmm0, %xmm2
jne 0x14081
jp 0x14081
movsd 0xa59d(%rip), %xmm0     # 0x1e618
movapd %xmm0, 0x30(%rsp)
addl %eax, %r12d
movapd 0x30(%rsp), %xmm0
movapd 0x40(%rsp), %xmm1
movapd 0x10(%rsp), %xmm2
movapd 0x60(%rsp), %xmm3
movl %r12d, %edi
xorl %esi, %esi
callq 0x15b40
movsd %xmm0, (%r14)
testl %ebp, %ebp
je 0x143fa
movsd 0xb83d(%rip), %xmm1     # 0x1f8f8
ucomisd %xmm0, %xmm1
jbe 0x143fa
cvtsi2sd %r12d, %xmm0
movapd 0x30(%rsp), %xmm1
addsd %xmm0, %xmm1
jmp 0x1437d
movaps %xmm6, 0x70(%rsp)
ucomisd %xmm7, %xmm1
movapd %xmm4, 0xc0(%rsp)
movsd 0xb77d(%rip), %xmm0     # 0x1f870
jbe 0x1411c
ucomisd 0x30(%rsp), %xmm0
jae 0x141c8
movsd 0xb76f(%rip), %xmm0     # 0x1f878
mulsd 0x30(%rsp), %xmm0
jmp 0x14132
movapd 0x30(%rsp), %xmm1
jmp 0x1437d
ucomisd %xmm1, %xmm0
jae 0x141c8
movsd 0xb74a(%rip), %xmm0     # 0x1f878
mulsd %xmm1, %xmm0
ucomisd %xmm0, %xmm4
ja 0x141c8
movapd 0xbb8c(%rip), %xmm2     # 0x1fcd0
movapd %xmm2, 0x70(%rsp)
movapd %xmm4, %xmm0
xorpd %xmm2, %xmm0
divsd %xmm1, %xmm0
callq 0x18895
movapd %xmm0, 0x10(%rsp)
movapd 0xc0(%rsp), %xmm0
divsd 0x30(%rsp), %xmm0
callq 0x18895
mulsd 0x30(%rsp), %xmm0
movapd 0x10(%rsp), %xmm1
mulsd 0x40(%rsp), %xmm1
addsd %xmm0, %xmm1
movapd %xmm1, 0x10(%rsp)
movapd 0x70(%rsp), %xmm0
xorpd %xmm1, %xmm0
movapd %xmm0, 0x70(%rsp)
testl %ebp, %ebp
je 0x14c3d
xorpd %xmm1, %xmm1
movapd 0x10(%rsp), %xmm0
ucomisd %xmm1, %xmm0
jb 0x14648
sqrtsd 0x10(%rsp), %xmm0
jmp 0x14653
movapd %xmm1, %xmm3
movapd 0x30(%rsp), %xmm2
cmplesd %xmm2, %xmm3
movapd %xmm3, %xmm0
andpd %xmm1, %xmm0
andnpd %xmm2, %xmm3
orpd %xmm0, %xmm3
movsd 0xb6c1(%rip), %xmm0     # 0x1f8b0
movapd %xmm3, 0x50(%rsp)
ucomisd %xmm3, %xmm0
jbe 0x14395
movsd 0xb6c9(%rip), %xmm0     # 0x1f8d0
ucomisd 0x60(%rsp), %xmm0
jae 0x14cd0
movapd 0x10(%rsp), %xmm0
ucomisd 0xb6af(%rip), %xmm0     # 0x1f8d0
jbe 0x14fa5
movaps 0x60(%rsp), %xmm0
callq 0x2240
jmp 0x14fb6
movapd 0x40(%rsp), %xmm0
ucomisd 0xb54c(%rip), %xmm0     # 0x1f790
jbe 0x14b2b
movapd 0x60(%rsp), %xmm0
callq 0x2240
mulsd 0x40(%rsp), %xmm0
xorpd %xmm1, %xmm1
movsd 0xb5f9(%rip), %xmm2     # 0x1f860
ucomisd %xmm0, %xmm2
ja 0x14c07
callq 0x2550
jmp 0x14b33
movsd 0xb59d(%rip), %xmm0     # 0x1f820
minsd 0x10(%rsp), %xmm0
movapd 0x40(%rsp), %xmm1
ucomisd %xmm0, %xmm1
jae 0x14377
movapd 0x60(%rsp), %xmm0
movaps 0x40(%rsp), %xmm1
callq 0x2140
movsd 0xa38f(%rip), %xmm1     # 0x1e640
ucomisd %xmm0, %xmm1
jae 0x14377
movapd 0x60(%rsp), %xmm0
ucomisd 0xb55f(%rip), %xmm0     # 0x1f828
jae 0x14f00
pushq $0x14
popq %rdi
xorl %r12d, %r12d
movaps 0x10(%rsp), %xmm0
movapd 0x40(%rsp), %xmm1
movsd (%rsp), %xmm2
movapd 0x60(%rsp), %xmm3
xorl %esi, %esi
callq 0x15b40
movsd %xmm0, (%rbx)
movapd 0x10(%rsp), %xmm0
addsd 0xb54c(%rip), %xmm0     # 0x1f850
movapd %xmm0, 0x10(%rsp)
leaq 0x9c(%rsp), %rsi
movapd 0x10(%rsp), %xmm0
movaps 0x40(%rsp), %xmm1
movsd (%rsp), %xmm2
movapd 0x60(%rsp), %xmm3
movq %rbx, %rdi
xorl %edx, %edx
callq 0x15d9b
movsd (%rbx), %xmm1
xorpd %xmm0, %xmm0
ucomisd %xmm0, %xmm1
jne 0x14342
jnp 0x14361
movapd %xmm1, %xmm2
movq %xmm1, %rax
decq %rax
movabsq $0xffffffffffffe, %rcx  # imm = 0xFFFFFFFFFFFFE
cmpq %rcx, %rax
ja 0x15925
testb %r12b, %r12b
je 0x15423
movsd 0xb406(%rip), %xmm0     # 0x1f778
jmp 0x1544d
movapd 0x10(%rsp), %xmm1
movapd 0x40(%rsp), %xmm0
movapd 0x60(%rsp), %xmm2
movl %ebp, %edi
callq 0x16826
jmp 0x152cd
movapd 0x30(%rsp), %xmm0
ucomisd 0x40(%rsp), %xmm0
jb 0x14cf7
movapd 0x40(%rsp), %xmm2
movapd %xmm2, %xmm0
divsd 0x30(%rsp), %xmm0
movsd 0xa259(%rip), %xmm1     # 0x1e618
addsd %xmm0, %xmm1
movapd 0xb935(%rip), %xmm3     # 0x1fd00
unpcklpd %xmm0, %xmm3            # xmm3 = xmm3[0],xmm0[0]
unpcklpd %xmm1, %xmm1            # xmm1 = xmm1[0,0]
divpd %xmm1, %xmm3
movapd %xmm3, 0xa0(%rsp)
movapd 0x70(%rsp), %xmm0
mulsd 0x60(%rsp), %xmm0
subsd %xmm0, %xmm2
movapd %xmm2, (%rsp)
jmp 0x14d42
movsd 0xb43e(%rip), %xmm0     # 0x1f840
ucomisd 0x60(%rsp), %xmm0
jae 0x14e94
movsd 0xb432(%rip), %xmm0     # 0x1f848
ucomisd 0x40(%rsp), %xmm0
jb 0x1445e
pushq $0x14
popq %rdi
movapd 0x40(%rsp), %xmm0
movapd 0x30(%rsp), %xmm1
movapd 0x60(%rsp), %xmm2
movapd 0x10(%rsp), %xmm3
xorl %esi, %esi
callq 0x15b40
addsd (%r14), %xmm0
movsd %xmm0, (%r14)
movapd 0x40(%rsp), %xmm0
addsd 0xb3f8(%rip), %xmm0     # 0x1f850
movapd %xmm0, 0x40(%rsp)
leaq 0x9c(%rsp), %r12
movapd 0x40(%rsp), %xmm0
movapd 0x30(%rsp), %xmm1
movapd 0x60(%rsp), %xmm2
movapd 0x10(%rsp), %xmm3
movq %r14, %rdi
movq %r12, %rsi
xorl %edx, %edx
callq 0x15d9b
movl (%r12), %eax
testl %eax, %eax
je 0x14eb7
addl $0xa, %eax
movl %eax, (%r15)
jmp 0x14eb7
movaps 0x60(%rsp), %xmm0
callq 0x2240
movaps %xmm0, (%rsp)
xorps %xmm0, %xmm0
movaps %xmm0, 0x50(%rsp)
movsd 0x9d20(%rip), %xmm0     # 0x1e1e0
ucomisd 0x10(%rsp), %xmm0
jbe 0x156de
movapd 0xb7ec(%rip), %xmm0     # 0x1fcc0
andpd 0x10(%rsp), %xmm0
movsd 0xb2c6(%rip), %xmm1     # 0x1f7a8
ucomisd %xmm0, %xmm1
jae 0x1536f
movapd 0xb7dc(%rip), %xmm0     # 0x1fcd0
movapd 0x10(%rsp), %xmm2
xorpd %xmm2, %xmm0
movapd %xmm0, %xmm1
cmpnlesd %xmm2, %xmm1
andpd %xmm1, %xmm0
andnpd %xmm2, %xmm1
orpd %xmm0, %xmm1
xorpd %xmm0, %xmm0
ucomisd 0xb299(%rip), %xmm1     # 0x1f7b8
jae 0x1580c
xorl %eax, %eax
movapd 0x10(%rsp), %xmm2
ucomisd %xmm0, %xmm2
setb %al
leaq 0xb7a5(%rip), %rcx      # 0x1fce0
cvttpd2dq %xmm1, %xmm0
cvtdq2pd %xmm0, %xmm0
subsd %xmm0, %xmm1
movsd 0xb271(%rip), %xmm0     # 0x1f7c0
movapd %xmm1, %xmm2
mulsd %xmm0, %xmm2
cvttsd2si %xmm2, %edx
cvttpd2dq %xmm2, %xmm2
cvtdq2pd %xmm2, %xmm3
mulsd 0xb25d(%rip), %xmm3     # 0x1f7c8
addsd %xmm1, %xmm3
mulsd %xmm0, %xmm3
leal 0x1(%rdx), %esi
movd %edx, %xmm0
movd %esi, %xmm1
punpckldq %xmm0, %xmm1    # xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
movdqa %xmm1, %xmm0
psrld $0x1f, %xmm0
paddd %xmm1, %xmm0
psrad $0x1, %xmm0
pshufd $0x55, %xmm0, %xmm2     # xmm2 = xmm0[1,1,1,1]
movd %xmm2, %esi
addl %esi, %esi
cmpl %edx, %esi
je 0x145b3
movsd 0xa06d(%rip), %xmm2     # 0x1e618
subsd %xmm3, %xmm2
movapd %xmm2, %xmm3
movsd (%rcx,%rax,8), %xmm2
movaps %xmm2, 0x50(%rsp)
movdqa %xmm1, %xmm2
psrad $0x1f, %xmm2
psrld $0x1e, %xmm2
paddd %xmm1, %xmm2
psrad $0x2, %xmm2
paddd %xmm2, %xmm2
pcmpeqd %xmm0, %xmm2
pshufd $0x50, %xmm2, %xmm0     # xmm0 = xmm2[0,0,1,1]
movmskpd %xmm0, %eax
testb $0x2, %al
jne 0x145fd
movapd 0x50(%rsp), %xmm0
xorpd 0xb6d9(%rip), %xmm0     # 0x1fcd0
movapd %xmm0, 0x50(%rsp)
mulsd 0xb1cb(%rip), %xmm3     # 0x1f7d0
testb $0x1, %al
je 0x15682
xorpd %xmm0, %xmm0
ucomisd %xmm0, %xmm3
jne 0x1461d
jnp 0x1580c
movapd %xmm3, %xmm0
movapd %xmm3, 0x80(%rsp)
callq 0x2250
movsd %xmm0, 0x70(%rsp)
movapd 0x80(%rsp), %xmm0
callq 0x2450
jmp 0x156a8
movapd 0x10(%rsp), %xmm0
callq 0x24f0
movsd %xmm0, 0x60(%rsp)
movsd 0x60(%rsp), %xmm0
divsd 0xb219(%rip), %xmm0     # 0x1f880
mulsd 0x9b71(%rip), %xmm0     # 0x1e1e0
movapd %xmm0, (%rsp)
movapd 0x10(%rsp), %xmm0
addsd %xmm0, %xmm0
movapd %xmm0, 0x10(%rsp)
movapd 0x30(%rsp), %xmm3
movapd %xmm3, %xmm0
movapd 0x40(%rsp), %xmm2
subsd %xmm2, %xmm0
movapd %xmm0, 0xc0(%rsp)
movapd %xmm3, %xmm0
divsd %xmm2, %xmm0
movapd %xmm2, %xmm1
divsd %xmm3, %xmm1
movapd %xmm2, %xmm4
cmpltsd %xmm3, %xmm4
andpd %xmm4, %xmm1
andnpd %xmm0, %xmm4
orpd %xmm1, %xmm4
movapd %xmm3, %xmm0
maxsd %xmm2, %xmm0
movapd %xmm0, 0x50(%rsp)
movapd %xmm2, %xmm0
movapd %xmm4, 0x80(%rsp)
addsd 0x9f2f(%rip), %xmm4     # 0x1e618
minsd %xmm3, %xmm0
movapd %xmm4, 0xa0(%rsp)
mulsd %xmm4, %xmm0
ucomisd 0xb1fe(%rip), %xmm0     # 0x1f900
jb 0x1470a
sqrtsd %xmm0, %xmm0
jmp 0x1470f
callq 0x24f0
movapd 0xb5e9(%rip), %xmm2     # 0x1fd00
unpcklpd 0xc0(%rsp), %xmm2       # xmm2 = xmm2[0],mem[0]
movapd 0xa0(%rsp), %xmm1
unpcklpd 0x50(%rsp), %xmm1       # xmm1 = xmm1[0],mem[0]
divpd %xmm1, %xmm2
movapd %xmm2, 0xc0(%rsp)
movsd 0x9ed4(%rip), %xmm1     # 0x1e618
divsd %xmm0, %xmm1
movsd %xmm1, 0xa0(%rsp)
unpckhpd %xmm2, %xmm2            # xmm2 = xmm2[1,1]
mulsd 0xb12b(%rip), %xmm2     # 0x1f888
movsd %xmm2, 0xd0(%rsp)
mulsd 0xb012(%rip), %xmm2     # 0x1f780
movapd %xmm2, 0x50(%rsp)
movsd %xmm2, 0x2e0(%rsp)
movapd 0xb54b(%rip), %xmm0     # 0x1fcd0
xorpd %xmm2, %xmm0
leaq 0x230(%rsp), %r15
movlpd %xmm0, (%r15)
movsd 0x60(%rsp), %xmm0
callq 0x18d43
movq %r15, %r9
mulsd 0xb0e4(%rip), %xmm0     # 0x1f890
movsd 0xa0(%rsp), %xmm9
movapd 0x50(%rsp), %xmm1
mulsd %xmm9, %xmm1
mulsd 0xb0b7(%rip), %xmm1     # 0x1f880
movapd %xmm1, %xmm2
movapd %xmm0, %xmm1
subsd %xmm2, %xmm1
movapd %xmm1, 0x60(%rsp)
movapd 0x80(%rsp), %xmm1
mulsd %xmm1, %xmm1
movapd 0xc0(%rsp), %xmm5
addpd %xmm5, %xmm5
movapd 0x10(%rsp), %xmm3
movapd (%rsp), %xmm4
unpcklpd %xmm3, %xmm4            # xmm4 = xmm4[0],xmm3[0]
shufpd $0x2, 0xb503(%rip), %xmm0 # xmm0 = xmm0[0],mem[1]
unpcklpd %xmm3, %xmm3            # xmm3 = xmm3[0,0]
pushq $0x2
popq %rsi
pushq $0x4
popq %rcx
pushq $0x1
popq %r15
movapd 0xb4ad(%rip), %xmm6     # 0x1fcd0
movq %rsi, %r10
movsd 0x9de9(%rip), %xmm8     # 0x1e618
movapd %xmm8, %xmm7
movapd %xmm9, %xmm2
cmpq $0x14, %r10
ja 0x14ab9
mulsd %xmm1, %xmm8
movapd 0x80(%rsp), %xmm10
mulsd %xmm8, %xmm10
addsd 0x9db8(%rip), %xmm10    # 0x1e618
leaq 0x2(%r10), %rdx
leaq -0x1(%r10), %rax
movq %rax, 0x50(%rsp)
addsd %xmm8, %xmm7
leal 0x3(%r10), %eax
unpcklpd %xmm7, %xmm10           # xmm10 = xmm10[0],xmm7[0]
mulpd %xmm5, %xmm10
movd %eax, %xmm11
movq %rdx, 0xc0(%rsp)
movd %edx, %xmm12
punpcklqdq %xmm11, %xmm12  # xmm12 = xmm12[0],xmm11[0]
movdqa 0xb480(%rip), %xmm11    # 0x1fd20
por %xmm11, %xmm12
subpd %xmm11, %xmm12
divpd %xmm12, %xmm10
movupd %xmm10, 0xc8(%rsp,%r10,8)
movsd 0xd0(%rsp), %xmm10
movq %r9, 0x10(%rsp)
movq %r10, (%rsp)
cmpq %rcx, %r10
je 0x149f3
leaq 0x1(%r10), %r11
movl %r11d, %eax
cvtsi2sd %rax, %xmm11
movapd %xmm11, %xmm12
mulsd 0xae91(%rip), %xmm12    # 0x1f780
movapd %xmm10, %xmm13
mulsd %xmm12, %xmm13
movsd %xmm13, 0x180(%rsp)
movq %r15, %rdx
movq %rsi, %rax
cmpq %r10, %rax
ja 0x1498d
xorpd %xmm13, %xmm13
movq %rdx, %r12
xorl %edi, %edi
movq %rdx, %r8
subq $0x1, %r8
jb 0x1495a
leaq 0x1(%rdi), %r13
cvtsi2sd %r13d, %xmm14
cvtsi2sd %r12d, %xmm15
mulsd %xmm12, %xmm14
subsd %xmm15, %xmm14
mulsd 0xd0(%rsp,%rdi,8), %xmm14
mulsd 0x180(%rsp,%r8,8), %xmm14
addsd %xmm14, %xmm13
movq %r8, %r12
movq %r13, %rdi
jmp 0x1491b
cvtsi2sd %eax, %xmm14
divsd %xmm14, %xmm13
movsd 0xc8(%rsp,%rax,8), %xmm14
mulsd %xmm12, %xmm14
addsd %xmm13, %xmm14
movsd %xmm14, 0x178(%rsp,%rax,8)
incq %rax
incq %rdx
jmp 0x14909
movsd 0x178(%rsp,%r10,8), %xmm12
divsd %xmm11, %xmm12
movsd %xmm12, 0x2d8(%rsp,%r10,8)
xorpd %xmm11, %xmm11
movq %r9, %rax
movq %r15, %r8
cmpq %r10, %r8
jae 0x149d3
movsd (%rax), %xmm13
mulsd 0x2d8(%rsp,%r8,8), %xmm13
addsd %xmm13, %xmm11
incq %r8
addq $-0x8, %rax
jmp 0x149b1
addsd %xmm11, %xmm12
xorpd %xmm6, %xmm12
movlpd %xmm12, 0x228(%rsp,%r10,8)
addq $0x8, %r9
movq %r11, %r10
jmp 0x148cc
movq (%rsp), %rax
cvtsi2sd %eax, %xmm10
cvtsi2sdl 0x50(%rsp), %xmm11
unpcklpd %xmm10, %xmm11          # xmm11 = xmm11[0],xmm10[0]
mulpd %xmm11, %xmm0
movapd %xmm3, %xmm10
mulpd %xmm4, %xmm10
mulpd 0xb311(%rip), %xmm4     # 0x1fd30
addpd %xmm4, %xmm0
movapd %xmm2, %xmm11
mulsd %xmm2, %xmm9
mulsd %xmm9, %xmm11
movupd 0x228(%rsp,%rax,8), %xmm12
unpcklpd %xmm11, %xmm9           # xmm9 = xmm9[0],xmm11[0]
mulpd %xmm12, %xmm9
mulpd %xmm0, %xmm9
movapd %xmm9, %xmm12
unpckhpd %xmm9, %xmm12           # xmm12 = xmm12[1],xmm9[1]
addsd %xmm9, %xmm12
movapd 0x60(%rsp), %xmm13
addsd %xmm12, %xmm13
andpd 0xb251(%rip), %xmm9     # 0x1fcc0
pshufd $0xee, %xmm9, %xmm12    # xmm12 = xmm9[2,3,2,3]
addsd %xmm9, %xmm12
movapd %xmm13, 0x60(%rsp)
movapd %xmm13, %xmm9
mulsd 0xae09(%rip), %xmm9     # 0x1f898
addq $0x2, %rcx
movq 0x10(%rsp), %r9
addq $0x10, %r9
ucomisd %xmm12, %xmm9
movq 0xc0(%rsp), %r10
movapd %xmm11, %xmm9
movapd %xmm10, %xmm4
jb 0x14839
testl %ebp, %ebp
je 0x14c6d
movapd 0x70(%rsp), %xmm0
addsd 0xadd1(%rip), %xmm0     # 0x1f8a0
movapd %xmm0, 0x70(%rsp)
movapd 0x40(%rsp), %xmm0
movaps 0x30(%rsp), %xmm1
callq 0x189ba
movapd 0x70(%rsp), %xmm1
subsd %xmm0, %xmm1
movapd %xmm1, 0x70(%rsp)
movapd 0x60(%rsp), %xmm0
callq 0x2240
addsd 0x70(%rsp), %xmm0
movsd %xmm0, (%r14)
ucomisd 0xad25(%rip), %xmm0     # 0x1f838
jbe 0x14ee9
callq 0x15a60
xorpd 0xb1aa(%rip), %xmm0     # 0x1fcd0
jmp 0x158e5
movsd 0x9ae5(%rip), %xmm0     # 0x1e618
movapd 0x10(%rsp), %xmm1
divsd 0x40(%rsp), %xmm1
mulsd %xmm0, %xmm1
movapd %xmm1, 0x10(%rsp)
movsd 0xac47(%rip), %xmm7     # 0x1f798
movapd 0x40(%rsp), %xmm0
divsd %xmm0, %xmm7
movsd 0x9ab5(%rip), %xmm1     # 0x1e618
addsd %xmm0, %xmm1
movapd 0x60(%rsp), %xmm0
movapd %xmm0, %xmm6
divsd %xmm1, %xmm6
movsd 0x9a9b(%rip), %xmm2     # 0x1e618
movapd 0xb13b(%rip), %xmm3     # 0x1fcc0
movapd %xmm0, %xmm4
addsd %xmm2, %xmm1
mulsd %xmm0, %xmm4
movapd %xmm4, %xmm5
divsd %xmm1, %xmm5
addsd %xmm5, %xmm6
andpd %xmm3, %xmm5
ucomisd %xmm7, %xmm5
ja 0x14b89
testl %ebp, %ebp
je 0x14beb
movapd 0x40(%rsp), %xmm0
mulsd %xmm6, %xmm0
callq 0x2220
movapd 0x10(%rsp), %xmm1
addsd %xmm0, %xmm1
movsd %xmm1, (%r14)
movapd %xmm1, %xmm0
ucomisd 0xac63(%rip), %xmm1     # 0x1f838
jbe 0x14c22
callq 0x15a60
xorpd 0xb0ec(%rip), %xmm0     # 0x1fcd0
callq 0x2240
jmp 0x14c34
movapd 0x40(%rsp), %xmm0
mulsd %xmm6, %xmm0
addsd 0x9a1b(%rip), %xmm0     # 0x1e618
movapd 0x10(%rsp), %xmm1
mulsd %xmm0, %xmm1
movsd %xmm1, (%r14)
movsd 0x95cc(%rip), %xmm2     # 0x1e1e0
movapd %xmm2, %xmm0
subsd %xmm1, %xmm0
addsd %xmm2, %xmm0
jmp 0x14c34
callq 0x2550
xorpd 0xb0a1(%rip), %xmm0     # 0x1fcd0
callq 0x2220
movsd %xmm0, (%rbx)
jmp 0x1590e
movapd 0x70(%rsp), %xmm0
callq 0x2550
xorpd %xmm2, %xmm2
movapd %xmm0, 0x70(%rsp)
xorpd %xmm1, %xmm1
movapd %xmm1, 0x60(%rsp)
ucomisd %xmm2, %xmm0
jne 0x141a9
jnp 0x14cac
jmp 0x141a9
movapd 0x40(%rsp), %xmm0
movaps 0x30(%rsp), %xmm1
callq 0x189ba
xorpd 0xb04b(%rip), %xmm0     # 0x1fcd0
callq 0x2550
movapd 0x70(%rsp), %xmm1
mulsd 0xac10(%rip), %xmm1     # 0x1f8a8
mulsd %xmm0, %xmm1
movapd 0x60(%rsp), %xmm0
mulsd %xmm1, %xmm0
movapd %xmm0, 0x60(%rsp)
movapd 0x60(%rsp), %xmm2
movsd %xmm2, (%r14)
movsd 0x9521(%rip), %xmm1     # 0x1e1e0
movapd %xmm1, %xmm0
subsd %xmm2, %xmm0
addsd %xmm1, %xmm0
jmp 0x158ea
movaps 0x60(%rsp), %xmm0
callq 0x2240
movsd %xmm0, (%rsp)
movapd 0xafe9(%rip), %xmm0     # 0x1fcd0
xorpd 0x60(%rsp), %xmm0
callq 0x17ecb
jmp 0x14fc6
movapd 0x30(%rsp), %xmm1
movapd %xmm1, %xmm2
divsd 0x40(%rsp), %xmm2
movsd 0x9909(%rip), %xmm0     # 0x1e618
addsd %xmm2, %xmm0
shufpd $0x2, 0xb024(%rip), %xmm2 # xmm2 = xmm2[0],mem[1]
unpcklpd %xmm0, %xmm0            # xmm0 = xmm0[0,0]
divpd %xmm0, %xmm2
movapd %xmm2, 0xa0(%rsp)
movapd 0x70(%rsp), %xmm0
mulsd 0x10(%rsp), %xmm0
subsd %xmm1, %xmm0
movapd %xmm0, (%rsp)
movapd 0xaf86(%rip), %xmm1     # 0x1fcd0
xorpd (%rsp), %xmm1
divsd 0x40(%rsp), %xmm1
movapd 0xaf63(%rip), %xmm0     # 0x1fcc0
movapd %xmm1, 0x50(%rsp)
andpd %xmm1, %xmm0
ucomisd 0xab49(%rip), %xmm0     # 0x1f8b8
movaps 0xa0(%rsp), %xmm0
movhlps %xmm0, %xmm0            # xmm0 = xmm0[1,1]
movaps %xmm0, 0x80(%rsp)
jbe 0x14daa
movapd 0x60(%rsp), %xmm0
divsd 0x80(%rsp), %xmm0
callq 0x2240
movapd 0x50(%rsp), %xmm1
subsd %xmm0, %xmm1
movapd %xmm1, 0x50(%rsp)
jmp 0x14dbb
movapd 0x50(%rsp), %xmm0
callq 0x18895
movapd %xmm0, 0x50(%rsp)
movapd (%rsp), %xmm1
divsd 0x30(%rsp), %xmm1
movapd 0xaef2(%rip), %xmm0     # 0x1fcc0
movapd %xmm1, (%rsp)
andpd %xmm1, %xmm0
movsd 0xaad9(%rip), %xmm1     # 0x1f8b8
ucomisd %xmm0, %xmm1
jae 0x14e09
movapd 0x10(%rsp), %xmm0
divsd 0xa0(%rsp), %xmm0
callq 0x2240
movapd (%rsp), %xmm1
subsd %xmm0, %xmm1
movapd %xmm1, (%rsp)
jmp 0x14e18
movapd (%rsp), %xmm0
callq 0x18895
movapd %xmm0, (%rsp)
movapd (%rsp), %xmm1
mulsd 0x30(%rsp), %xmm1
movapd 0x50(%rsp), %xmm0
mulsd 0x40(%rsp), %xmm0
addsd %xmm1, %xmm0
movapd %xmm0, 0x50(%rsp)
testl %ebp, %ebp
je 0x14f48
movapd 0x80(%rsp), %xmm0
mulsd 0x30(%rsp), %xmm0
callq 0x2240
mulsd 0x9383(%rip), %xmm0     # 0x1e1e0
addsd 0xaa5b(%rip), %xmm0     # 0x1f8c0
subsd 0x50(%rsp), %xmm0
movsd %xmm0, (%rsp)
movapd 0x40(%rsp), %xmm0
movapd 0x30(%rsp), %xmm1
callq 0x189ba
movsd (%rsp), %xmm1
subsd %xmm0, %xmm1
movsd %xmm1, (%rsp)
jmp 0x150f9
movapd 0x40(%rsp), %xmm0
movapd 0x30(%rsp), %xmm1
movapd 0x60(%rsp), %xmm2
xorl %edi, %edi
callq 0x16826
addsd (%r14), %xmm0
movsd %xmm0, (%r14)
movsd (%r14), %xmm0
testl %ebp, %ebp
je 0x14f88
xorpd 0xae04(%rip), %xmm0     # 0x1fcd0
callq 0x2220
movsd %xmm0, (%rbx)
movsd (%r14), %xmm0
callq 0x2240
movsd %xmm0, (%r14)
jmp 0x15909
callq 0x2550
xorpd 0xadda(%rip), %xmm0     # 0x1fcd0
callq 0x2220
jmp 0x158ea
movapd 0x10(%rsp), %xmm0
movaps 0x40(%rsp), %xmm1
movsd (%rsp), %xmm2
movl %ebp, %edi
callq 0x16826
movsd %xmm0, (%rbx)
testl %ebp, %ebp
je 0x1540a
ucomisd 0xa90d(%rip), %xmm0     # 0x1f838
jbe 0x154f5
callq 0x15a60
xorpd 0xad92(%rip), %xmm0     # 0x1fcd0
callq 0x2240
jmp 0x15507
movaps 0x50(%rsp), %xmm0
xorps 0xad7c(%rip), %xmm0     # 0x1fcd0
callq 0x2550
movsd %xmm0, (%rsp)
movapd 0x80(%rsp), %xmm1
mulsd 0x30(%rsp), %xmm1
xorpd %xmm2, %xmm2
movapd %xmm1, %xmm0
ucomisd %xmm2, %xmm1
jb 0x15382
sqrtsd %xmm0, %xmm0
jmp 0x15387
movsd 0x9250(%rip), %xmm1     # 0x1e1e0
movapd %xmm1, %xmm2
subsd %xmm0, %xmm2
addsd %xmm1, %xmm2
movsd %xmm2, (%rbx)
jmp 0x15909
movaps 0xad24(%rip), %xmm0     # 0x1fcd0
xorps 0x10(%rsp), %xmm0
callq 0x17ecb
movsd %xmm0, (%rsp)
movapd 0x10(%rsp), %xmm0
callq 0x2240
mulsd 0x30(%rsp), %xmm0
movsd (%rsp), %xmm1
mulsd 0x40(%rsp), %xmm1
addsd %xmm0, %xmm1
movsd %xmm1, (%rsp)
movapd 0x50(%rsp), %xmm0
ucomisd 0x962a(%rip), %xmm0     # 0x1e618
jae 0x150d3
movapd 0x30(%rsp), %xmm2
movapd %xmm2, %xmm3
movapd 0x40(%rsp), %xmm1
cmplesd %xmm1, %xmm3
movapd %xmm3, %xmm0
andpd %xmm1, %xmm0
andnpd %xmm2, %xmm3
orpd %xmm0, %xmm3
movapd %xmm3, 0x80(%rsp)
ucomisd 0xa886(%rip), %xmm3     # 0x1f8b0
jae 0x15313
movsd 0x95e0(%rip), %xmm0     # 0x1e618
movsd %xmm0, 0xa0(%rsp)
ucomisd 0x80(%rsp), %xmm0
jae 0x154b3
movaps 0x50(%rsp), %xmm0
callq 0x1842e
movsd %xmm0, 0xb8(%rsp)
movsd 0xa745(%rip), %xmm0     # 0x1f7b0
addsd 0x80(%rsp), %xmm0
movsd %xmm0, 0x70(%rsp)
cvttsd2si %xmm0, %eax
testl %eax, %eax
jle 0x155a4
movsd 0xa722(%rip), %xmm0     # 0x1f7b0
subl $0x1, %eax
jb 0x15569
movapd 0x80(%rsp), %xmm2
addsd %xmm0, %xmm2
movapd 0x50(%rsp), %xmm1
addsd %xmm2, %xmm1
movapd %xmm2, 0x80(%rsp)
divsd %xmm1, %xmm2
movsd 0xa0(%rsp), %xmm1
mulsd %xmm2, %xmm1
movsd %xmm1, 0xa0(%rsp)
jmp 0x1508e
movapd 0x40(%rsp), %xmm0
movaps 0x30(%rsp), %xmm1
callq 0x17f4b
movsd (%rsp), %xmm1
subsd %xmm0, %xmm1
movsd %xmm1, (%rsp)
testl %ebp, %ebp
je 0x153c2
xorl %eax, %eax
movsd 0x9515(%rip), %xmm1     # 0x1e618
movapd 0xc0(%rsp), %xmm4
addsd %xmm1, %xmm4
movapd 0x30(%rsp), %xmm6
movapd 0x40(%rsp), %xmm3
divsd %xmm3, %xmm6
movapd %xmm1, %xmm2
divsd %xmm3, %xmm2
addsd %xmm1, %xmm2
movapd 0x10(%rsp), %xmm0
addsd %xmm1, %xmm0
movapd %xmm0, 0x10(%rsp)
addsd %xmm1, %xmm3
movapd %xmm4, %xmm5
divsd %xmm2, %xmm5
movapd %xmm2, %xmm0
movapd %xmm4, %xmm7
divsd %xmm4, %xmm0
movapd %xmm1, %xmm4
unpcklpd %xmm5, %xmm4            # xmm4 = xmm4[0],xmm5[0]
xorpd %xmm12, %xmm12
unpcklpd %xmm1, %xmm12           # xmm12 = xmm12[0],xmm1[0]
movapd %xmm1, %xmm5
unpcklpd %xmm6, %xmm5            # xmm5 = xmm5[0],xmm6[0]
movsd 0xa762(%rip), %xmm6     # 0x1f8d8
movapd 0xabc1(%rip), %xmm10    # 0x1fd40
movapd %xmm12, %xmm15
movapd %xmm5, %xmm11
addpd %xmm15, %xmm11
movapd %xmm11, %xmm13
movapd 0x40(%rsp), %xmm8
divsd %xmm8, %xmm13
movapd 0x30(%rsp), %xmm14
subsd %xmm11, %xmm14
divsd %xmm3, %xmm8
shufpd $0x2, %xmm15, %xmm14    # xmm14 = xmm14[0],xmm15[1]
movapd 0x60(%rsp), %xmm15
unpcklpd %xmm8, %xmm15           # xmm15 = xmm15[0],xmm8[0]
movapd %xmm2, %xmm8
addsd %xmm13, %xmm8
addsd %xmm13, %xmm8
addsd %xmm1, %xmm13
movapd %xmm13, %xmm9
divsd %xmm8, %xmm9
movapd %xmm11, %xmm8
mulsd 0x10(%rsp), %xmm8
addsd %xmm7, %xmm8
mulsd %xmm9, %xmm8
movapd %xmm0, %xmm9
mulpd %xmm11, %xmm14
mulpd %xmm15, %xmm14
mulpd %xmm14, %xmm15
divsd %xmm3, %xmm14
addsd %xmm11, %xmm14
addsd %xmm14, %xmm8
movapd %xmm15, %xmm0
unpckhpd %xmm15, %xmm0           # xmm0 = xmm0[1],xmm15[1]
mulsd %xmm15, %xmm0
unpcklpd %xmm8, %xmm8            # xmm8 = xmm8[0,0]
mulpd %xmm4, %xmm8
unpcklpd %xmm0, %xmm0            # xmm0 = xmm0[0,0]
mulpd %xmm12, %xmm0
addpd %xmm8, %xmm0
movapd %xmm0, %xmm12
unpckhpd %xmm0, %xmm12           # xmm12 = xmm12[1],xmm0[1]
divsd %xmm12, %xmm0
movapd %xmm0, %xmm8
subsd %xmm9, %xmm8
andpd 0xaa5e(%rip), %xmm8     # 0x1fcc0
movapd %xmm0, %xmm9
mulsd %xmm6, %xmm9
ucomisd %xmm8, %xmm9
jae 0x152ac
addsd 0xa665(%rip), %xmm3     # 0x1f8e0
divpd %xmm12, %xmm4
movsd 0xa65f(%rip), %xmm8     # 0x1f8e8
ucomisd %xmm11, %xmm8
movapd %xmm4, %xmm12
movapd %xmm10, %xmm4
movsd %xmm0, %xmm4            # xmm4 = xmm0[0],xmm4[1]
unpcklpd %xmm13, %xmm11          # xmm11 = xmm11[0],xmm13[0]
movapd %xmm11, %xmm15
ja 0x15184
testb %al, %al
je 0x152bb
movsd (%rsp), %xmm1
mulsd %xmm0, %xmm1
jmp 0x152c9
callq 0x2240
movsd (%rsp), %xmm1
addsd %xmm0, %xmm1
movapd %xmm1, %xmm0
movsd %xmm0, (%r14)
testl %ebp, %ebp
je 0x153e6
ucomisd 0xa556(%rip), %xmm0     # 0x1f838
jbe 0x152f8
callq 0x15a60
xorpd 0xa9df(%rip), %xmm0     # 0x1fcd0
callq 0x2240
jmp 0x1530a
callq 0x2550
xorpd 0xa9cb(%rip), %xmm0     # 0x1fcd0
callq 0x2220
movapd %xmm0, %xmm1
jmp 0x153fa
movaps 0x50(%rsp), %xmm0
callq 0x1842e
movsd %xmm0, 0x70(%rsp)
movapd 0x50(%rsp), %xmm0
movaps 0x80(%rsp), %xmm1
callq 0x18517
addsd 0x70(%rsp), %xmm0
movsd %xmm0, 0x80(%rsp)
testl %ebp, %ebp
je 0x15530
movapd 0x50(%rsp), %xmm0
callq 0x2240
movsd (%rsp), %xmm1
subsd 0x80(%rsp), %xmm1
addsd %xmm0, %xmm1
jmp 0x14e8a
movsd 0xa439(%rip), %xmm0     # 0x1f7b0
divsd 0x10(%rsp), %xmm0
jmp 0x156c4
callq 0x24f0
mulsd 0xa539(%rip), %xmm0     # 0x1f8c8
movsd (%rsp), %xmm1
mulsd %xmm0, %xmm1
movsd %xmm1, (%rsp)
movapd 0x40(%rsp), %xmm0
movapd 0x30(%rsp), %xmm1
callq 0x189ba
xorpd 0xa91a(%rip), %xmm0     # 0x1fcd0
callq 0x2550
mulsd (%rsp), %xmm0
jmp 0x153cc
movsd (%rsp), %xmm0
callq 0x2550
movsd %xmm0, (%rsp)
xorpd %xmm0, %xmm0
movsd (%rsp), %xmm1
ucomisd %xmm0, %xmm1
jne 0x15403
jp 0x15403
andq $0x0, (%r14)
movsd 0x8df2(%rip), %xmm2     # 0x1e1e0
movapd %xmm2, %xmm1
subsd %xmm0, %xmm1
addsd %xmm2, %xmm1
movsd %xmm1, (%rbx)
jmp 0x15909
movb $0x1, %al
jmp 0x150fb
movsd 0x8dce(%rip), %xmm2     # 0x1e1e0
movapd %xmm2, %xmm1
subsd %xmm0, %xmm1
addsd %xmm2, %xmm1
jmp 0x15904
movsd 0xa42d(%rip), %xmm0     # 0x1f858
addsd 0x10(%rsp), %xmm0
pushq $0x14
popq %rdi
pushq $0x1
popq %rsi
movapd 0x40(%rsp), %xmm1
movsd (%rsp), %xmm2
movapd 0x60(%rsp), %xmm3
callq 0x15b40
movsd %xmm0, (%rbx)
leaq 0x9c(%rsp), %r12
pushq $0x1
popq %rdx
movaps 0x10(%rsp), %xmm0
movapd 0x40(%rsp), %xmm1
movsd (%rsp), %xmm2
movapd 0x60(%rsp), %xmm3
movq %rbx, %rdi
movq %r12, %rsi
callq 0x15d9b
movl (%r12), %eax
testl %eax, %eax
je 0x1548b
addl $0xa, %eax
movl %eax, (%r15)
movsd (%rbx), %xmm0
testl %ebp, %ebp
je 0x15510
ucomisd 0xa39d(%rip), %xmm0     # 0x1f838
jbe 0x15552
callq 0x15a60
xorpd 0xa822(%rip), %xmm0     # 0x1fcd0
jmp 0x14eda
testl %ebp, %ebp
je 0x159cc
movapd 0x70(%rsp), %xmm0
ucomisd 0x914f(%rip), %xmm0     # 0x1e618
jbe 0x15938
movsd 0xa2d9(%rip), %xmm0     # 0x1f7b0
addsd 0x70(%rsp), %xmm0
callq 0x186ed
addsd 0x912e(%rip), %xmm0     # 0x1e618
divsd 0x70(%rsp), %xmm0
jmp 0x1594b
callq 0x2550
xorpd 0xa7ce(%rip), %xmm0     # 0x1fcd0
callq 0x2220
movapd %xmm0, %xmm1
jmp 0x15904
callq 0x22f0
xorpd 0xa7b3(%rip), %xmm0     # 0x1fcd0
movlpd %xmm0, (%r14)
movsd (%rbx), %xmm0
callq 0x2550
jmp 0x158ea
movsd (%rsp), %xmm0
subsd 0x80(%rsp), %xmm0
callq 0x2550
movapd 0x50(%rsp), %xmm1
mulsd %xmm0, %xmm1
jmp 0x15a56
callq 0x2550
xorpd 0xa771(%rip), %xmm0     # 0x1fcd0
callq 0x2220
jmp 0x14edf
movsd 0xa0(%rsp), %xmm0
callq 0x2240
movsd 0xb8(%rsp), %xmm1
addsd %xmm0, %xmm1
movsd %xmm1, 0xb8(%rsp)
movapd 0x80(%rsp), %xmm0
addsd 0xa212(%rip), %xmm0     # 0x1f7b0
movsd %xmm0, 0x70(%rsp)
movapd 0x50(%rsp), %xmm0
addsd 0x70(%rsp), %xmm0
movapd %xmm0, %xmm1
ucomisd 0x905c(%rip), %xmm0     # 0x1e618
jbe 0x155eb
movsd 0xa1ea(%rip), %xmm0     # 0x1f7b0
movsd %xmm1, 0x80(%rsp)
addsd %xmm1, %xmm0
callq 0x186ed
addsd 0x9038(%rip), %xmm0     # 0x1e618
divsd 0x80(%rsp), %xmm0
jmp 0x155fc
movapd %xmm1, %xmm0
callq 0x186ed
addsd 0x901c(%rip), %xmm0     # 0x1e618
movsd %xmm0, 0x80(%rsp)
movsd (%rsp), %xmm0
subsd 0xb8(%rsp), %xmm0
movsd %xmm0, (%rsp)
movsd 0x70(%rsp), %xmm0
callq 0x186ed
movsd %xmm0, 0x70(%rsp)
testl %ebp, %ebp
je 0x159f9
movapd 0x50(%rsp), %xmm0
callq 0x2240
movsd (%rsp), %xmm1
addsd %xmm0, %xmm1
movsd %xmm1, (%rsp)
movsd 0x70(%rsp), %xmm0
callq 0x2220
addsd (%rsp), %xmm0
movsd %xmm0, (%rsp)
movsd 0x80(%rsp), %xmm0
callq 0x2240
movsd (%rsp), %xmm1
subsd %xmm0, %xmm1
xorl %eax, %eax
movsd %xmm1, (%rsp)
jmp 0x150fb
movapd %xmm3, %xmm0
movapd %xmm3, 0x80(%rsp)
callq 0x2450
movsd %xmm0, 0x70(%rsp)
movapd 0x80(%rsp), %xmm0
callq 0x2250
movsd 0x70(%rsp), %xmm1
divsd %xmm0, %xmm1
mulsd 0xa106(%rip), %xmm1     # 0x1f7c0
movapd 0x50(%rsp), %xmm0
mulsd %xmm1, %xmm0
movapd %xmm0, 0x50(%rsp)
movsd 0x8f46(%rip), %xmm0     # 0x1e618
subsd 0x10(%rsp), %xmm0
movapd %xmm0, 0x10(%rsp)
movsd 0xa0f2(%rip), %xmm0     # 0x1f7d8
ucomisd 0x10(%rsp), %xmm0
jae 0x15757
movsd 0xa0c2(%rip), %xmm0     # 0x1f7b8
ucomisd 0x10(%rsp), %xmm0
jbe 0x157fb
movapd 0x10(%rsp), %xmm0
mulsd %xmm0, %xmm0
movsd 0x8f04(%rip), %xmm2     # 0x1e618
divsd %xmm0, %xmm2
movsd 0xa0e0(%rip), %xmm0     # 0x1f800
xorl %eax, %eax
leaq 0xa997(%rip), %rcx      # 0x200c0
leaq 0xa970(%rip), %rdx      # 0x200a0
movapd %xmm2, %xmm1
mulsd %xmm2, %xmm0
cmpq $0x18, %rax
je 0x157c4
addsd (%rax,%rcx), %xmm1
mulsd %xmm2, %xmm1
addsd 0x8(%rax,%rdx), %xmm0
addq $0x8, %rax
jmp 0x15734
movsd 0xa081(%rip), %xmm0     # 0x1f7e0
xorl %eax, %eax
leaq 0xa908(%rip), %rcx      # 0x20070
leaq 0xa8c1(%rip), %rdx      # 0x20030
movapd 0x10(%rsp), %xmm2
movapd %xmm2, %xmm1
mulsd %xmm2, %xmm0
cmpq $0x28, %rax
je 0x15798
addsd (%rax,%rcx), %xmm1
mulsd %xmm2, %xmm1
addsd 0x8(%rax,%rdx), %xmm0
addq $0x8, %rax
jmp 0x15779
addsd 0xa048(%rip), %xmm0     # 0x1f7e8
addsd 0xa048(%rip), %xmm1     # 0x1f7f0
addsd 0xa048(%rip), %xmm2     # 0x1f7f8
divsd %xmm1, %xmm0
mulsd %xmm0, %xmm2
addsd 0x50(%rsp), %xmm2
movapd %xmm2, %xmm0
jmp 0x1580c
addsd 0xa03c(%rip), %xmm1     # 0x1f808
shufpd $0x2, 0xa51b(%rip), %xmm0 # xmm0 = xmm0[0],mem[1]
unpcklpd 0x10(%rsp), %xmm1       # xmm1 = xmm1[0],mem[0]
divpd %xmm1, %xmm0
movapd %xmm0, %xmm1
unpckhpd %xmm0, %xmm1            # xmm1 = xmm1[1],xmm0[1]
subsd %xmm1, %xmm0
movapd 0x50(%rsp), %xmm1
addsd %xmm0, %xmm1
movapd %xmm1, 0x50(%rsp)
movapd 0x10(%rsp), %xmm0
callq 0x2240
addsd 0x50(%rsp), %xmm0
movapd (%rsp), %xmm1
addsd %xmm0, %xmm1
movapd %xmm1, (%rsp)
movapd (%rsp), %xmm1
addsd 0x9fe9(%rip), %xmm1     # 0x1f810
movsd 0xc0(%rsp), %xmm10
addsd %xmm10, %xmm1
movapd 0xa482(%rip), %xmm0     # 0x1fcc0
movapd %xmm1, %xmm9
andpd %xmm1, %xmm0
mulsd 0x9fc9(%rip), %xmm0     # 0x1f818
xorpd %xmm1, %xmm1
movapd 0xa465(%rip), %xmm2     # 0x1fcc0
movsd 0x8db5(%rip), %xmm7     # 0x1e618
movapd %xmm7, %xmm3
movapd 0x60(%rsp), %xmm6
movapd 0x30(%rsp), %xmm8
addsd %xmm7, %xmm3
movapd %xmm8, %xmm4
divsd %xmm3, %xmm4
movapd %xmm6, %xmm5
subsd %xmm4, %xmm5
mulsd %xmm5, %xmm10
movapd %xmm10, %xmm4
divsd %xmm3, %xmm4
addsd %xmm4, %xmm1
andpd %xmm2, %xmm4
ucomisd %xmm0, %xmm4
ja 0x15874
movapd 0x40(%rsp), %xmm0
xorpd 0xa41d(%rip), %xmm0     # 0x1fcd0
addsd %xmm1, %xmm9
mulsd %xmm0, %xmm9
movapd %xmm9, %xmm2
movsd %xmm9, (%rbx)
testl %ebp, %ebp
je 0x158f0
movapd %xmm2, %xmm0
xorpd 0xa3f9(%rip), %xmm0     # 0x1fcd0
callq 0x2220
movsd %xmm0, (%r14)
movsd (%rbx), %xmm0
callq 0x2240
movsd %xmm0, (%rbx)
jmp 0x15909
movsd 0x88e8(%rip), %xmm0     # 0x1e1e0
movapd %xmm0, %xmm1
subsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd %xmm1, (%r14)
movl 0x2c(%rsp), %r15d
testl %r15d, %r15d
je 0x13ba7
movsd (%r14), %xmm0
movsd (%rbx), %xmm1
jmp 0x13c72
movl 0x9c(%rsp), %eax
testl %eax, %eax
je 0x158c7
addl $0xa, %eax
movl %eax, (%r15)
jmp 0x158c7
movapd 0x70(%rsp), %xmm0
callq 0x186ed
addsd 0x8ccd(%rip), %xmm0     # 0x1e618
movsd %xmm0, 0x70(%rsp)
movaps 0x40(%rsp), %xmm0
callq 0x186ed
movsd %xmm0, 0xb8(%rsp)
movapd 0x30(%rsp), %xmm0
callq 0x186ed
movsd 0x8ca1(%rip), %xmm1     # 0x1e618
movsd 0xb8(%rsp), %xmm2
addsd %xmm1, %xmm2
addsd %xmm1, %xmm0
mulsd %xmm2, %xmm0
divsd 0x70(%rsp), %xmm0
mulsd 0x50(%rsp), %xmm0
testl %ebp, %ebp
je 0x15a32
callq 0x2240
movsd (%rsp), %xmm1
addsd %xmm0, %xmm1
movsd %xmm1, (%rsp)
movapd 0x50(%rsp), %xmm0
divsd 0x80(%rsp), %xmm0
callq 0x2220
jmp 0x14e81
movsd (%rsp), %xmm0
callq 0x2550
xorpd %xmm2, %xmm2
xorpd %xmm1, %xmm1
movsd %xmm1, (%rsp)
ucomisd %xmm2, %xmm0
jne 0x159ef
jnp 0x153d1
movsd %xmm0, (%rsp)
jmp 0x154bb
movsd (%rsp), %xmm0
callq 0x2550
movsd 0x70(%rsp), %xmm2
addsd 0x8c07(%rip), %xmm2     # 0x1e618
movapd 0x50(%rsp), %xmm1
mulsd %xmm0, %xmm1
mulsd %xmm1, %xmm2
divsd 0x80(%rsp), %xmm2
movsd %xmm2, (%rsp)
jmp 0x153d1
movsd (%rsp), %xmm1
mulsd %xmm0, %xmm1
movapd 0x50(%rsp), %xmm0
divsd 0x80(%rsp), %xmm0
addsd 0x8bc6(%rip), %xmm0     # 0x1e618
divsd %xmm0, %xmm1
movsd %xmm1, (%rsp)
jmp 0x153d1