// File: /workspace/github_c_makefile_star2_O2/c-zhou[P]yahs/binomlite.c
// Function: bgrat
static void bgrat(double a, double b, double x, double y, double *w,
          double eps, int *ierr, int log_w)
{
/* -----------------------------------------------------------------------
*     Asymptotic Expansion for I_x(a,b)  when a is larger than b.
*     Compute   w := w + I_x(a,b)
*     It is assumed a >= 15 and b <= 1.
*     eps is the tolerance used.
*     ierr is a variable that reports the status of the results.
*
* if(log_w),  *w  itself must be in log-space;
*     compute   w := w + I_x(a,b)  but return *w = log(w):
*          *w := log(exp(*w) + I_x(a,b)) = logspace_add(*w, log( I_x(a,b) ))
* ----------------------------------------------------------------------- */

#define n_terms_bgrat 30
    double c[n_terms_bgrat], d[n_terms_bgrat];
    double bm1 = b - 0.5 - 0.5,
    nu = a + bm1 * 0.5, /* nu = a + (b-1)/2 =: T, in (9.1) of
                 * Didonato & Morris(1992), p.362 */
    lnx = (y > 0.375) ? log(x) : alnrel(-y),
    z = -nu * lnx; // z =: u in (9.1) of D.&M.(1992)

    if (b * z == 0.) { // should not happen, but does, e.g.,
    // for  pbeta(1e-320, 1e-5, 0.5)  i.e., _subnormal_ x,
    // Warning ... bgrat(a=20.5, b=1e-05, x=1, y=9.99989e-321): ..
    /* L_Error:    THE EXPANSION CANNOT BE COMPUTED */
     *ierr = 1; return;
    }

/*                 COMPUTATION OF THE EXPANSION */
    double
    /* r1 = b * (gam1(b) + 1.) * exp(b * log(z)),// = b/gamma(b+1) z^b = z^b / gamma(b)
     * set r := exp(-z) * z^b / gamma(b) ;
     *          gam1(b) = 1/gamma(b+1) - 1 , b in [-1/2, 3/2] */
    // exp(a*lnx) underflows for large (a * lnx); e.g. large a ==> using log_r := log(r):
    // r = r1 * exp(a * lnx) * exp(bm1 * 0.5 * lnx);
    // log(r)=log(b) + log1p(gam1(b)) + b * log(z) + (a * lnx) + (bm1 * 0.5 * lnx),
    log_r = log(b) + log1p(gam1(b)) + b * log(z) + nu * lnx,
    // FIXME work with  log_u = log(u)  also when log_p=0  (??)
    // u is 'factored out' from the expansion {and multiplied back, at the end}:
    log_u = log_r - (algdiv(b, a) + b * log(nu)),// algdiv(b,a) = log(gamma(a)/gamma(a+b))
    /* u = (log_p) ? log_r - u : exp(log_r-u); // =: M  in (9.2) of {reference above} */
    /* u = algdiv(b, a) + b * log(nu);// algdiv(b,a) = log(gamma(a)/gamma(a+b)) */
    // u = (log_p) ? log_u : exp(log_u); // =: M  in (9.2) of {reference above}
    u = exp(log_u);

    if (log_u == ML_NEGINF) {
    /* L_Error:    THE EXPANSION CANNOT BE COMPUTED */ *ierr = 2; return;
    }

    int u_0 = (u == 0.); // underflow --> do work with log(u) == log_u !
    double l = // := *w/u .. but with care: such that it also works when u underflows to 0:
    log_w
    ? ((*w == ML_NEGINF) ? 0. : exp(  *w    - log_u))
    : ((*w == 0.)        ? 0. : exp(log(*w) - log_u));

    double
    q_r = grat_r(b, z, log_r, eps), // = q/r of former grat1(b,z, r, &p, &q)
    v = 0.25 / (nu * nu),
    t2 = lnx * 0.25 * lnx,
    j = q_r,
    sum = j,
    t = 1., cn = 1., n2 = 0.;
    int n;
    for (n = 1; n <= n_terms_bgrat; ++n) {
    double bp2n = b + n2;
    j = (bp2n * (bp2n + 1.) * j + (z + bp2n + 1.) * t) * v;
    n2 += 2.;
    t *= t2;
    cn /= n2 * (n2 + 1.);
    int nm1 = n - 1;
    c[nm1] = cn;
    double s = 0.;
    if (n > 1) {
        double coef = b - n;
        int i;
        for (i = 1; i <= nm1; ++i) {
        s += coef * c[i - 1] * d[nm1 - i];
        coef += b;
        }
    }
    d[nm1] = bm1 * cn + s / n;
    double dj = d[nm1] * j;
    sum += dj;
    if (sum <= 0.) {
        /* L_Error:    THE EXPANSION CANNOT BE COMPUTED */ *ierr = 3; return;
    }
    if (fabs(dj) <= eps * (sum + l)) {
        *ierr = 0;
        break;
    } else if(n == n_terms_bgrat) { // never? ; please notify R-core if seen:
        *ierr = 4;
    }
    } // for(n .. n_terms..)

/*                    ADD THE RESULTS TO W */

    if(log_w) // *w is in log space already:
    *w = logspace_add(*w, log_u + log(sum));
    else
    *w += (u_0 ? exp(log_u + log(sum)) : u * sum);
    return;
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
subq $0x2a0, %rsp            # imm = 0x2A0
movl %edx, %ebp
movq %rsi, %r14
movq %rdi, %rbx
movsd 0x99ca(%rip), %xmm4     # 0x1f780
movsd %xmm1, (%rsp)
addsd %xmm4, %xmm1
addsd %xmm4, %xmm1
movsd 0x8415(%rip), %xmm4     # 0x1e1e0
movsd %xmm1, 0xb8(%rsp)
mulsd %xmm1, %xmm4
movsd %xmm0, 0x18(%rsp)
addsd %xmm0, %xmm4
movapd %xmm4, 0x70(%rsp)
ucomisd 0x9ae0(%rip), %xmm3     # 0x1f8d0
jbe 0x15dfd
movapd %xmm2, %xmm0
callq 0x2240
jmp 0x15e0e
xorpd 0x9ecb(%rip), %xmm3     # 0x1fcd0
movapd %xmm3, %xmm0
callq 0x17ecb
movapd %xmm0, %xmm4
movapd 0x9eb6(%rip), %xmm2     # 0x1fcd0
movapd 0x70(%rsp), %xmm3
xorpd %xmm3, %xmm2
mulsd %xmm0, %xmm2
movapd %xmm2, %xmm5
movsd (%rsp), %xmm0
mulsd %xmm0, %xmm5
xorpd %xmm1, %xmm1
ucomisd %xmm1, %xmm5
jne 0x15e4d
jp 0x15e4d
movl $0x1, (%r14)
jmp 0x1681a
movapd %xmm5, 0x20(%rsp)
movapd %xmm2, 0x60(%rsp)
movsd %xmm4, 0x88(%rsp)
callq 0x2240
movsd %xmm0, 0x50(%rsp)
movsd (%rsp), %xmm0
callq 0x186ed
movsd %xmm0, 0x38(%rsp)
callq 0x2220
addsd 0x50(%rsp), %xmm0
movsd %xmm0, 0x50(%rsp)
movapd 0x60(%rsp), %xmm0
callq 0x2240
movsd (%rsp), %xmm1
mulsd %xmm1, %xmm0
addsd 0x50(%rsp), %xmm0
movapd 0x70(%rsp), %xmm2
mulsd 0x88(%rsp), %xmm2
addsd %xmm0, %xmm2
movapd %xmm2, 0x40(%rsp)
movapd %xmm1, %xmm0
movsd 0x18(%rsp), %xmm1
callq 0x18517
movsd %xmm0, 0x18(%rsp)
movapd 0x70(%rsp), %xmm0
callq 0x2240
mulsd (%rsp), %xmm0
addsd 0x18(%rsp), %xmm0
movapd 0x40(%rsp), %xmm1
subsd %xmm0, %xmm1
movapd %xmm1, 0x50(%rsp)
movapd %xmm1, %xmm0
callq 0x2550
movapd 0x50(%rsp), %xmm2
movsd 0x9865(%rip), %xmm1     # 0x1f778
ucomisd %xmm2, %xmm1
jb 0x15f25
movl $0x2, (%r14)
jmp 0x1681a
movsd %xmm0, 0xb0(%rsp)
movsd (%rbx), %xmm0
xorpd %xmm2, %xmm2
testl %ebp, %ebp
je 0x15f48
movsd %xmm2, 0x18(%rsp)
ucomisd %xmm0, %xmm1
jae 0x15f70
jmp 0x15f5f
xorpd %xmm1, %xmm1
movsd %xmm1, 0x18(%rsp)
ucomisd %xmm2, %xmm0
jne 0x15f5a
jnp 0x15f70
callq 0x2240
subsd 0x50(%rsp), %xmm0
callq 0x2550
movsd %xmm0, 0x18(%rsp)
movsd (%rsp), %xmm15
ucomisd 0x8261(%rip), %xmm15    # 0x1e1e0
jne 0x15fa0
jp 0x15fa0
xorpd %xmm0, %xmm0
movapd 0x60(%rsp), %xmm1
ucomisd %xmm0, %xmm1
jb 0x1612b
sqrtsd %xmm1, %xmm5
jmp 0x1613e
movsd 0x9980(%rip), %xmm1     # 0x1f928
movapd 0x60(%rsp), %xmm0
ucomisd %xmm0, %xmm1
jbe 0x1629f
movsd 0x9818(%rip), %xmm2     # 0x1f7d8
movapd %xmm15, %xmm3
addsd %xmm2, %xmm3
movapd %xmm0, %xmm1
divsd %xmm3, %xmm1
movsd 0x863e(%rip), %xmm9     # 0x1e618
addsd %xmm15, %xmm9
movsd 0x9959(%rip), %xmm3     # 0x1f940
divsd %xmm9, %xmm3
movapd 0x9cdc(%rip), %xmm4     # 0x1fcd0
xorpd %xmm0, %xmm4
movsd 0x8617(%rip), %xmm10    # 0x1e618
movapd 0x9cb7(%rip), %xmm5     # 0x1fcc0
movapd %xmm0, %xmm6
addsd %xmm10, %xmm2
movapd %xmm4, %xmm7
divsd %xmm2, %xmm7
mulsd %xmm7, %xmm6
movapd %xmm2, %xmm7
addsd %xmm15, %xmm7
movapd %xmm6, %xmm8
divsd %xmm7, %xmm8
addsd %xmm8, %xmm1
andpd %xmm5, %xmm8
ucomisd %xmm3, %xmm8
ja 0x1600d
divsd 0x98fe(%rip), %xmm1     # 0x1f948
movsd 0x988e(%rip), %xmm2     # 0x1f8e0
addsd %xmm15, %xmm2
movsd 0x9721(%rip), %xmm3     # 0x1f780
divsd %xmm2, %xmm3
addsd %xmm1, %xmm3
movapd %xmm10, %xmm1
divsd %xmm9, %xmm1
mulsd %xmm0, %xmm3
addsd %xmm1, %xmm3
movapd 0x20(%rsp), %xmm1
mulsd %xmm3, %xmm1
movapd %xmm1, 0x20(%rsp)
callq 0x2240
movsd 0x8582(%rip), %xmm4     # 0x1e618
movapd 0x60(%rsp), %xmm1
movsd (%rsp), %xmm2
mulsd %xmm2, %xmm0
movsd 0x38(%rsp), %xmm3
addsd %xmm3, %xmm4
ucomisd 0x9899(%rip), %xmm1     # 0x1f950
movsd %xmm4, 0x90(%rsp)
jb 0x160d4
divsd 0x988e(%rip), %xmm1     # 0x1f958
ucomisd %xmm2, %xmm1
ja 0x163e2
ucomisd 0x9884(%rip), %xmm0     # 0x1f960
ja 0x163e2
callq 0x2550
movsd 0x90(%rsp), %xmm2
mulsd %xmm0, %xmm2
movsd 0x80e4(%rip), %xmm0     # 0x1e1e0
movapd %xmm0, %xmm1
subsd 0x20(%rsp), %xmm1
addsd %xmm0, %xmm1
mulsd %xmm2, %xmm1
movapd %xmm0, %xmm2
subsd %xmm1, %xmm2
addsd %xmm0, %xmm2
movsd %xmm2, 0x20(%rsp)
movapd 0x40(%rsp), %xmm0
jmp 0x165c7
movapd %xmm1, %xmm0
callq 0x24f0
movapd 0x60(%rsp), %xmm1
movapd %xmm0, %xmm5
movsd 0x980a(%rip), %xmm0     # 0x1f950
ucomisd %xmm1, %xmm0
jbe 0x1627d
movapd 0x9b68(%rip), %xmm1     # 0x1fcc0
andpd %xmm5, %xmm1
movsd 0x807c(%rip), %xmm6     # 0x1e1e0
ucomisd %xmm1, %xmm6
jae 0x16361
movsd 0x964a(%rip), %xmm0     # 0x1f7c0
ucomisd %xmm1, %xmm0
jae 0x1645a
ucomisd 0x98a0(%rip), %xmm1     # 0x1fa28
jae 0x16596
movapd %xmm5, %xmm0
mulsd %xmm5, %xmm0
movsd 0x847a(%rip), %xmm3     # 0x1e618
movapd %xmm3, %xmm4
divsd %xmm0, %xmm4
movsd 0x9882(%rip), %xmm2     # 0x1fa30
mulsd %xmm4, %xmm2
addsd 0x987e(%rip), %xmm2     # 0x1fa38
mulsd %xmm4, %xmm2
addsd 0x987a(%rip), %xmm2     # 0x1fa40
mulsd %xmm4, %xmm2
addsd 0x9876(%rip), %xmm2     # 0x1fa48
mulsd %xmm4, %xmm2
addsd 0x9872(%rip), %xmm2     # 0x1fa50
movapd %xmm5, 0x20(%rsp)
movsd 0x986c(%rip), %xmm5     # 0x1fa58
mulsd %xmm4, %xmm5
addsd 0x9868(%rip), %xmm5     # 0x1fa60
mulsd %xmm4, %xmm5
addsd 0x9864(%rip), %xmm5     # 0x1fa68
mulsd %xmm4, %xmm5
addsd 0x9860(%rip), %xmm5     # 0x1fa70
mulsd %xmm4, %xmm5
addsd %xmm3, %xmm5
mulsd %xmm0, %xmm5
divsd %xmm5, %xmm2
movsd 0x9850(%rip), %xmm3     # 0x1fa78
subsd %xmm2, %xmm3
divsd %xmm1, %xmm3
movsd %xmm3, 0x38(%rsp)
xorpd 0x9a92(%rip), %xmm0     # 0x1fcd0
callq 0x2550
movsd 0x7f95(%rip), %xmm6     # 0x1e1e0
mulsd 0x38(%rsp), %xmm0
movapd %xmm6, %xmm1
subsd %xmm0, %xmm1
addsd %xmm6, %xmm1
movapd 0x9a6b(%rip), %xmm3     # 0x1fcd0
xorpd %xmm1, %xmm3
xorpd %xmm0, %xmm0
movapd 0x20(%rsp), %xmm2
cmpltsd %xmm0, %xmm2
jmp 0x16580
movapd %xmm5, %xmm0
movapd %xmm5, 0x20(%rsp)
callq 0x18d43
divsd 0x20(%rsp), %xmm0
mulsd 0x96ce(%rip), %xmm0     # 0x1f968
jmp 0x165da
movsd 0x8371(%rip), %xmm1     # 0x1e618
movapd %xmm1, %xmm2
subsd %xmm15, %xmm2
addsd %xmm0, %xmm2
movapd %xmm1, %xmm7
unpcklpd %xmm2, %xmm7            # xmm7 = xmm7[0],xmm2[0]
movapd %xmm1, %xmm5
unpcklpd %xmm0, %xmm5            # xmm5 = xmm5[0],xmm0[0]
movapd %xmm0, %xmm2
unpcklpd %xmm0, %xmm2            # xmm2 = xmm2[0],xmm0[0]
movapd 0x99ec(%rip), %xmm3     # 0x1fcc0
movsd 0x95fc(%rip), %xmm4     # 0x1f8d8
movapd %xmm1, %xmm6
movapd %xmm6, %xmm0
unpcklpd %xmm6, %xmm0            # xmm0 = xmm0[0],xmm6[0]
mulpd %xmm5, %xmm0
addsd %xmm1, %xmm6
movapd %xmm6, %xmm8
subsd %xmm15, %xmm8
movapd %xmm2, %xmm5
mulpd %xmm7, %xmm5
addpd %xmm0, %xmm5
unpcklpd %xmm8, %xmm8            # xmm8 = xmm8[0,0]
mulpd %xmm7, %xmm8
addpd %xmm5, %xmm8
movapd %xmm8, %xmm9
movapd %xmm8, %xmm7
movapd %xmm8, %xmm0
unpcklpd %xmm5, %xmm0            # xmm0 = xmm0[0],xmm5[0]
unpckhpd %xmm5, %xmm9            # xmm9 = xmm9[1],xmm5[1]
divpd %xmm9, %xmm0
movapd %xmm0, %xmm8
unpckhpd %xmm0, %xmm8            # xmm8 = xmm8[1],xmm0[1]
movapd %xmm0, %xmm9
subsd %xmm8, %xmm9
andpd %xmm3, %xmm9
movapd %xmm0, %xmm8
mulsd %xmm4, %xmm8
ucomisd %xmm8, %xmm9
jae 0x162e0
jmp 0x165e0
movapd %xmm5, %xmm1
mulsd %xmm5, %xmm1
movsd 0x95ff(%rip), %xmm4     # 0x1f970
mulsd %xmm1, %xmm4
addsd 0x95fb(%rip), %xmm4     # 0x1f978
mulsd %xmm1, %xmm4
addsd 0x95f7(%rip), %xmm4     # 0x1f980
mulsd %xmm1, %xmm4
addsd 0x95f3(%rip), %xmm4     # 0x1f988
mulsd %xmm1, %xmm4
addsd 0x95ef(%rip), %xmm4     # 0x1f990
movsd 0x826f(%rip), %xmm2     # 0x1e618
movsd 0x95e7(%rip), %xmm3     # 0x1f998
mulsd %xmm1, %xmm3
addsd 0x95e3(%rip), %xmm3     # 0x1f9a0
addsd %xmm2, %xmm4
mulsd %xmm1, %xmm3
addsd 0x95db(%rip), %xmm3     # 0x1f9a8
mulsd %xmm1, %xmm3
addsd %xmm2, %xmm3
divsd %xmm3, %xmm4
mulsd %xmm5, %xmm4
jmp 0x165af
callq 0x15a60
movsd 0x7df1(%rip), %xmm1     # 0x1e1e0
movapd %xmm0, %xmm2
addsd %xmm1, %xmm2
addsd %xmm1, %xmm2
mulsd 0x20(%rsp), %xmm2
subsd %xmm0, %xmm2
mulsd 0x90(%rsp), %xmm2
subsd 0x38(%rsp), %xmm2
xorpd %xmm0, %xmm0
ucomisd %xmm2, %xmm0
movsd (%rsp), %xmm15
jae 0x165e0
movapd 0x40(%rsp), %xmm0
xorpd 0x989a(%rip), %xmm0     # 0x1fcd0
movsd %xmm2, 0x40(%rsp)
callq 0x2550
movsd (%rsp), %xmm15
movsd 0x40(%rsp), %xmm1
mulsd %xmm0, %xmm1
movapd %xmm1, %xmm0
jmp 0x165e0
movsd 0x954e(%rip), %xmm0     # 0x1f9b0
mulsd %xmm1, %xmm0
addsd 0x954a(%rip), %xmm0     # 0x1f9b8
mulsd %xmm1, %xmm0
addsd 0x9546(%rip), %xmm0     # 0x1f9c0
mulsd %xmm1, %xmm0
addsd 0x9542(%rip), %xmm0     # 0x1f9c8
mulsd %xmm1, %xmm0
addsd 0x953e(%rip), %xmm0     # 0x1f9d0
mulsd %xmm1, %xmm0
addsd 0x953a(%rip), %xmm0     # 0x1f9d8
mulsd %xmm1, %xmm0
addsd 0x9536(%rip), %xmm0     # 0x1f9e0
mulsd %xmm1, %xmm0
addsd 0x9532(%rip), %xmm0     # 0x1f9e8
movsd %xmm0, 0x38(%rsp)
movsd 0x952c(%rip), %xmm0     # 0x1f9f0
addsd %xmm1, %xmm0
mulsd %xmm1, %xmm0
addsd 0x9524(%rip), %xmm0     # 0x1f9f8
mulsd %xmm1, %xmm0
addsd 0x9520(%rip), %xmm0     # 0x1fa00
mulsd %xmm1, %xmm0
addsd 0x951c(%rip), %xmm0     # 0x1fa08
mulsd %xmm1, %xmm0
addsd 0x9518(%rip), %xmm0     # 0x1fa10
mulsd %xmm1, %xmm0
addsd 0x9514(%rip), %xmm0     # 0x1fa18
mulsd %xmm1, %xmm0
addsd 0x9510(%rip), %xmm0     # 0x1fa20
movsd %xmm0, 0xa8(%rsp)
movapd %xmm5, %xmm1
xorpd 0x97ab(%rip), %xmm1     # 0x1fcd0
movapd %xmm1, 0x90(%rsp)
movapd %xmm5, %xmm0
mulsd %xmm1, %xmm0
movapd %xmm5, 0x20(%rsp)
callq 0x2550
movsd 0x7c97(%rip), %xmm6     # 0x1e1e0
mulsd 0x38(%rsp), %xmm0
divsd 0xa8(%rsp), %xmm0
movapd %xmm6, %xmm1
subsd %xmm0, %xmm1
addsd %xmm6, %xmm1
movapd 0x9764(%rip), %xmm3     # 0x1fcd0
xorpd %xmm1, %xmm3
movapd 0x20(%rsp), %xmm2
cmpltsd 0x90(%rsp), %xmm2
movapd %xmm2, %xmm0
andnpd %xmm1, %xmm0
andpd %xmm3, %xmm2
orpd %xmm0, %xmm2
movapd %xmm2, %xmm4
jmp 0x165af
xorpd %xmm0, %xmm0
xorl %eax, %eax
ucomisd %xmm0, %xmm5
seta %al
leaq 0x97d6(%rip), %rcx      # 0x1fd80
movsd (%rcx,%rax,8), %xmm4
movapd 0x40(%rsp), %xmm0
movapd %xmm6, %xmm1
subsd %xmm4, %xmm1
addsd %xmm6, %xmm1
movsd %xmm1, 0x20(%rsp)
xorpd 0x9701(%rip), %xmm0     # 0x1fcd0
callq 0x2550
mulsd 0x20(%rsp), %xmm0
movsd (%rsp), %xmm15
movapd 0x70(%rsp), %xmm3
mulsd %xmm3, %xmm3
movsd 0x935e(%rip), %xmm1     # 0x1f950
movsd 0x88(%rsp), %xmm4
movapd %xmm4, %xmm2
mulsd %xmm1, %xmm2
divsd %xmm3, %xmm1
mulsd %xmm4, %xmm2
movsd 0x8005(%rip), %xmm4     # 0x1e618
pushq $0x1
popq %rax
xorl %ecx, %ecx
movsd 0x92c0(%rip), %xmm5     # 0x1f8e0
leaq 0x1b0(%rsp), %rdx
movapd 0x9690(%rip), %xmm6     # 0x1fcc0
movsd 0x92a0(%rip), %xmm7     # 0x1f8d8
movapd %xmm4, %xmm8
movapd %xmm4, %xmm9
xorpd %xmm12, %xmm12
movapd %xmm0, %xmm10
cmpq $0x1f, %rax
je 0x1677e
movapd %xmm12, %xmm11
addsd %xmm5, %xmm11
movapd %xmm11, %xmm13
addsd %xmm4, %xmm13
mulsd %xmm11, %xmm13
divsd %xmm13, %xmm9
movsd %xmm9, 0x1a8(%rsp,%rax,8)
cvtsi2sd %eax, %xmm13
xorpd %xmm14, %xmm14
cmpq $0x2, %rax
jb 0x166c8
subsd %xmm13, %xmm15
movq %rdx, %rsi
movq %rcx, %rdi
subq $0x1, %rdi
jb 0x166c2
movsd (%rsi), %xmm3
mulsd %xmm15, %xmm3
mulsd 0xc0(%rsp,%rdi,8), %xmm3
addsd %xmm3, %xmm14
addsd (%rsp), %xmm15
addq $0x8, %rsi
jmp 0x16699
movsd (%rsp), %xmm15
addsd %xmm15, %xmm12
movapd %xmm12, %xmm3
addsd %xmm4, %xmm3
mulsd %xmm12, %xmm3
mulsd %xmm3, %xmm10
addsd 0x60(%rsp), %xmm12
addsd %xmm4, %xmm12
mulsd %xmm8, %xmm12
addsd %xmm12, %xmm10
mulsd %xmm1, %xmm10
divsd %xmm13, %xmm14
movsd 0xb8(%rsp), %xmm12
mulsd %xmm9, %xmm12
addsd %xmm14, %xmm12
movsd %xmm12, 0xb8(%rsp,%rax,8)
mulsd %xmm10, %xmm12
addsd %xmm12, %xmm0
xorpd %xmm3, %xmm3
ucomisd %xmm0, %xmm3
jae 0x1676e
andpd %xmm6, %xmm12
movsd 0x18(%rsp), %xmm3
addsd %xmm0, %xmm3
mulsd %xmm7, %xmm3
ucomisd %xmm12, %xmm3
jae 0x1677a
cmpq $0x1e, %rax
jne 0x16759
movl $0x4, (%r14)
mulsd %xmm2, %xmm8
incq %rax
incq %rcx
movapd %xmm11, %xmm12
jmp 0x1664c
movl $0x3, (%r14)
jmp 0x1681a
andl $0x0, (%r14)
testl %ebp, %ebp
movsd 0xb0(%rsp), %xmm2
je 0x167ec
movsd (%rbx), %xmm1
movaps %xmm1, 0x70(%rsp)
callq 0x2240
movapd 0x50(%rsp), %xmm1
addsd %xmm0, %xmm1
movapd %xmm1, %xmm2
movapd 0x70(%rsp), %xmm3
cmplesd %xmm3, %xmm2
movapd %xmm2, %xmm0
andnpd %xmm1, %xmm0
andpd %xmm3, %xmm2
orpd %xmm0, %xmm2
movapd %xmm2, (%rsp)
subsd %xmm1, %xmm3
orpd 0x94fd(%rip), %xmm3     # 0x1fcd0
movapd %xmm3, %xmm0
callq 0x2550
callq 0x2220
movapd %xmm0, %xmm2
addsd (%rsp), %xmm2
jmp 0x16816
xorpd %xmm1, %xmm1
ucomisd %xmm1, %xmm2
jne 0x1680e
jp 0x1680e
callq 0x2240
addsd 0x50(%rsp), %xmm0
callq 0x2550
movapd %xmm0, %xmm2
jmp 0x16812
mulsd %xmm0, %xmm2
addsd (%rbx), %xmm2
movsd %xmm2, (%rbx)
addq $0x2a0, %rsp            # imm = 0x2A0
popq %rbx
popq %r14
popq %rbp
retq