// File: /workspace/github_c_makefile_star2_O1/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 0xa102(%rip), %xmm4     # 0x22888
movsd %xmm1, 0x20(%rsp)
addsd %xmm4, %xmm1
addsd %xmm4, %xmm1
movsd 0x8a5c(%rip), %xmm4     # 0x211f8
movsd %xmm1, 0xb8(%rsp)
mulsd %xmm1, %xmm4
movsd %xmm0, 0x8(%rsp)
addsd %xmm0, %xmm4
movapd %xmm4, 0x70(%rsp)
ucomisd 0xa227(%rip), %xmm3     # 0x229e8
jbe 0x187ce
movapd %xmm2, %xmm0
callq 0x2240
jmp 0x187df
xorpd 0xa80a(%rip), %xmm3     # 0x22fe0
movapd %xmm3, %xmm0
callq 0x1ba27
movapd %xmm0, %xmm4
movapd 0xa7f5(%rip), %xmm2     # 0x22fe0
movapd 0x70(%rsp), %xmm3
xorpd %xmm3, %xmm2
mulsd %xmm0, %xmm2
movapd %xmm2, %xmm5
movsd 0x20(%rsp), %xmm0
mulsd %xmm0, %xmm5
xorpd %xmm1, %xmm1
ucomisd %xmm1, %xmm5
jne 0x1881f
jp 0x1881f
movl $0x1, (%r14)
jmp 0x19227
movapd %xmm5, 0x10(%rsp)
movapd %xmm2, 0x60(%rsp)
movsd %xmm4, 0x88(%rsp)
callq 0x2240
movsd %xmm0, 0x50(%rsp)
movsd 0x20(%rsp), %xmm0
callq 0x1c2db
movsd %xmm0, 0x38(%rsp)
callq 0x2220
addsd 0x50(%rsp), %xmm0
movsd %xmm0, 0x50(%rsp)
movapd 0x60(%rsp), %xmm0
callq 0x2240
movsd 0x20(%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 0x8(%rsp), %xmm1
callq 0x1c11f
movsd %xmm0, 0x8(%rsp)
movapd 0x70(%rsp), %xmm0
callq 0x2240
mulsd 0x20(%rsp), %xmm0
addsd 0x8(%rsp), %xmm0
movapd 0x40(%rsp), %xmm1
subsd %xmm0, %xmm1
movapd %xmm1, 0x50(%rsp)
movapd %xmm1, %xmm0
callq 0x2550
movapd 0x50(%rsp), %xmm2
movsd 0x9f98(%rip), %xmm1     # 0x22880
ucomisd %xmm2, %xmm1
jb 0x188fa
movl $0x2, (%r14)
jmp 0x19227
movsd %xmm0, 0xb0(%rsp)
movsd (%rbx), %xmm0
xorpd %xmm2, %xmm2
testl %ebp, %ebp
je 0x1891d
movsd %xmm2, 0x8(%rsp)
ucomisd %xmm0, %xmm1
jae 0x18945
jmp 0x18934
xorpd %xmm1, %xmm1
movsd %xmm1, 0x8(%rsp)
ucomisd %xmm2, %xmm0
jne 0x1892f
jnp 0x18945
callq 0x2240
subsd 0x50(%rsp), %xmm0
callq 0x2550
movsd %xmm0, 0x8(%rsp)
movsd 0x20(%rsp), %xmm15
ucomisd 0x88a3(%rip), %xmm15    # 0x211f8
jne 0x18979
jp 0x18979
xorpd %xmm0, %xmm0
movapd 0x60(%rsp), %xmm1
ucomisd %xmm0, %xmm1
jb 0x18b0d
xorps %xmm5, %xmm5
sqrtsd %xmm1, %xmm5
jmp 0x18b20
movsd 0xa04f(%rip), %xmm0     # 0x229d0
movapd 0x60(%rsp), %xmm11
ucomisd %xmm11, %xmm0
jbe 0x18c81
movsd 0x9fed(%rip), %xmm2     # 0x22988
movapd %xmm15, %xmm0
addsd %xmm2, %xmm0
movapd %xmm11, %xmm1
divsd %xmm0, %xmm1
movsd 0x8c7b(%rip), %xmm0     # 0x21630
addsd %xmm15, %xmm0
movsd 0xa036(%rip), %xmm3     # 0x229f8
divsd %xmm0, %xmm3
movapd 0xa612(%rip), %xmm4     # 0x22fe0
xorpd %xmm11, %xmm4
movsd 0x8c54(%rip), %xmm9     # 0x21630
movapd 0xa5ec(%rip), %xmm5     # 0x22fd0
movapd %xmm11, %xmm6
addsd %xmm9, %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 0x189e9
divsd 0x9fda(%rip), %xmm1     # 0x22a00
movsd 0x9fda(%rip), %xmm2     # 0x22a08
addsd %xmm15, %xmm2
movsd 0x9e4d(%rip), %xmm3     # 0x22888
divsd %xmm2, %xmm3
addsd %xmm1, %xmm3
movapd %xmm9, %xmm1
divsd %xmm0, %xmm1
mulsd %xmm11, %xmm3
addsd %xmm1, %xmm3
movapd 0x10(%rsp), %xmm0
mulsd %xmm3, %xmm0
movapd %xmm0, 0x10(%rsp)
movapd %xmm11, %xmm0
callq 0x2240
movsd 0x8bb9(%rip), %xmm4     # 0x21630
movapd 0x60(%rsp), %xmm1
movsd 0x20(%rsp), %xmm2
mulsd %xmm2, %xmm0
movsd 0x38(%rsp), %xmm3
addsd %xmm3, %xmm4
ucomisd 0x9f77(%rip), %xmm1     # 0x22a10
movsd %xmm4, 0x90(%rsp)
jb 0x18ab6
divsd 0x9f6c(%rip), %xmm1     # 0x22a18
ucomisd %xmm2, %xmm1
ja 0x18dbb
ucomisd 0x9f62(%rip), %xmm0     # 0x22a20
ja 0x18dbb
callq 0x2550
movsd 0x90(%rsp), %xmm2
mulsd %xmm0, %xmm2
movsd 0x871a(%rip), %xmm0     # 0x211f8
movapd %xmm0, %xmm1
subsd 0x10(%rsp), %xmm1
addsd %xmm0, %xmm1
mulsd %xmm2, %xmm1
movapd %xmm0, %xmm2
subsd %xmm1, %xmm2
addsd %xmm0, %xmm2
movsd %xmm2, 0x10(%rsp)
movapd 0x40(%rsp), %xmm0
jmp 0x18fa2
movapd %xmm1, %xmm0
callq 0x24f0
movapd 0x60(%rsp), %xmm1
movapd %xmm0, %xmm5
movsd 0x9ee8(%rip), %xmm0     # 0x22a10
ucomisd %xmm1, %xmm0
jbe 0x18c5f
movapd 0xa496(%rip), %xmm1     # 0x22fd0
andpd %xmm5, %xmm1
movsd 0x86b2(%rip), %xmm6     # 0x211f8
ucomisd %xmm1, %xmm6
jae 0x18d3a
movsd 0x9e18(%rip), %xmm0     # 0x22970
ucomisd %xmm1, %xmm0
jae 0x18e35
ucomisd 0x9f7e(%rip), %xmm1     # 0x22ae8
jae 0x18f71
movapd %xmm5, %xmm0
mulsd %xmm5, %xmm0
movsd 0x8ab0(%rip), %xmm3     # 0x21630
movapd %xmm3, %xmm4
divsd %xmm0, %xmm4
movsd 0x9f60(%rip), %xmm2     # 0x22af0
mulsd %xmm4, %xmm2
addsd 0x9f5c(%rip), %xmm2     # 0x22af8
mulsd %xmm4, %xmm2
addsd 0x9f58(%rip), %xmm2     # 0x22b00
mulsd %xmm4, %xmm2
addsd 0x9f54(%rip), %xmm2     # 0x22b08
mulsd %xmm4, %xmm2
addsd 0x9f50(%rip), %xmm2     # 0x22b10
movapd %xmm5, 0x10(%rsp)
movsd 0x9f4a(%rip), %xmm5     # 0x22b18
mulsd %xmm4, %xmm5
addsd 0x9f46(%rip), %xmm5     # 0x22b20
mulsd %xmm4, %xmm5
addsd 0x9f42(%rip), %xmm5     # 0x22b28
mulsd %xmm4, %xmm5
addsd 0x9f3e(%rip), %xmm5     # 0x22b30
mulsd %xmm4, %xmm5
addsd %xmm3, %xmm5
mulsd %xmm0, %xmm5
divsd %xmm5, %xmm2
movsd 0x9f2e(%rip), %xmm3     # 0x22b38
subsd %xmm2, %xmm3
divsd %xmm1, %xmm3
movsd %xmm3, 0x38(%rsp)
xorpd 0xa3c0(%rip), %xmm0     # 0x22fe0
callq 0x2550
movsd 0x85cb(%rip), %xmm6     # 0x211f8
mulsd 0x38(%rsp), %xmm0
movapd %xmm6, %xmm1
subsd %xmm0, %xmm1
addsd %xmm6, %xmm1
movapd 0xa399(%rip), %xmm3     # 0x22fe0
xorpd %xmm1, %xmm3
xorpd %xmm0, %xmm0
movapd 0x10(%rsp), %xmm2
cmpltsd %xmm0, %xmm2
jmp 0x18f5b
movapd %xmm5, %xmm0
movapd %xmm5, 0x10(%rsp)
callq 0x1c93b
divsd 0x10(%rsp), %xmm0
mulsd 0x9dac(%rip), %xmm0     # 0x22a28
jmp 0x18fb5
movsd 0x89a7(%rip), %xmm1     # 0x21630
movapd %xmm1, %xmm8
subsd %xmm15, %xmm8
addsd %xmm11, %xmm8
movapd 0xa330(%rip), %xmm2     # 0x22fd0
movsd 0x9d48(%rip), %xmm3     # 0x229f0
movapd %xmm1, %xmm4
movapd %xmm1, %xmm5
movapd %xmm11, %xmm6
movapd %xmm1, %xmm7
mulsd %xmm7, %xmm4
movapd %xmm11, %xmm0
mulsd %xmm5, %xmm0
addsd %xmm0, %xmm4
mulsd %xmm7, %xmm6
movapd %xmm11, %xmm0
mulsd %xmm8, %xmm0
addsd %xmm0, %xmm6
movapd %xmm4, %xmm9
divsd %xmm6, %xmm9
addsd %xmm1, %xmm7
movapd %xmm7, %xmm10
subsd %xmm15, %xmm10
mulsd %xmm10, %xmm5
addsd %xmm4, %xmm5
mulsd %xmm8, %xmm10
addsd %xmm6, %xmm10
movapd %xmm5, %xmm0
divsd %xmm10, %xmm0
movapd %xmm0, %xmm8
subsd %xmm9, %xmm8
andpd %xmm2, %xmm8
movapd %xmm0, %xmm9
mulsd %xmm3, %xmm9
ucomisd %xmm9, %xmm8
movapd %xmm10, %xmm8
jae 0x18cb9
jmp 0x18fbc
movapd %xmm5, %xmm1
mulsd %xmm5, %xmm1
movsd 0x9ce6(%rip), %xmm4     # 0x22a30
mulsd %xmm1, %xmm4
addsd 0x9ce2(%rip), %xmm4     # 0x22a38
mulsd %xmm1, %xmm4
addsd 0x9cde(%rip), %xmm4     # 0x22a40
mulsd %xmm1, %xmm4
addsd 0x9cda(%rip), %xmm4     # 0x22a48
mulsd %xmm1, %xmm4
addsd 0x9cd6(%rip), %xmm4     # 0x22a50
movsd 0x88ae(%rip), %xmm2     # 0x21630
movsd 0x9cce(%rip), %xmm3     # 0x22a58
mulsd %xmm1, %xmm3
addsd 0x9cca(%rip), %xmm3     # 0x22a60
addsd %xmm2, %xmm4
mulsd %xmm1, %xmm3
addsd 0x9cc2(%rip), %xmm3     # 0x22a68
mulsd %xmm1, %xmm3
addsd %xmm2, %xmm3
divsd %xmm3, %xmm4
mulsd %xmm5, %xmm4
jmp 0x18f8a
callq 0x17f9a
movsd 0x8430(%rip), %xmm1     # 0x211f8
movapd %xmm0, %xmm2
addsd %xmm1, %xmm2
addsd %xmm1, %xmm2
mulsd 0x10(%rsp), %xmm2
subsd %xmm0, %xmm2
mulsd 0x90(%rsp), %xmm2
subsd 0x38(%rsp), %xmm2
xorpd %xmm0, %xmm0
ucomisd %xmm2, %xmm0
movsd 0x20(%rsp), %xmm15
jae 0x18fbc
movapd 0x40(%rsp), %xmm0
xorpd 0xa1d0(%rip), %xmm0     # 0x22fe0
movsd %xmm2, 0x40(%rsp)
callq 0x2550
movsd 0x20(%rsp), %xmm15
movsd 0x40(%rsp), %xmm1
mulsd %xmm0, %xmm1
movapd %xmm1, %xmm0
jmp 0x18fbc
movsd 0x9c33(%rip), %xmm0     # 0x22a70
mulsd %xmm1, %xmm0
addsd 0x9c2f(%rip), %xmm0     # 0x22a78
mulsd %xmm1, %xmm0
addsd 0x9c2b(%rip), %xmm0     # 0x22a80
mulsd %xmm1, %xmm0
addsd 0x9c27(%rip), %xmm0     # 0x22a88
mulsd %xmm1, %xmm0
addsd 0x9c23(%rip), %xmm0     # 0x22a90
mulsd %xmm1, %xmm0
addsd 0x9c1f(%rip), %xmm0     # 0x22a98
mulsd %xmm1, %xmm0
addsd 0x9c1b(%rip), %xmm0     # 0x22aa0
mulsd %xmm1, %xmm0
addsd 0x9c17(%rip), %xmm0     # 0x22aa8
movsd %xmm0, 0x38(%rsp)
movsd 0x9c11(%rip), %xmm0     # 0x22ab0
addsd %xmm1, %xmm0
mulsd %xmm1, %xmm0
addsd 0x9c09(%rip), %xmm0     # 0x22ab8
mulsd %xmm1, %xmm0
addsd 0x9c05(%rip), %xmm0     # 0x22ac0
mulsd %xmm1, %xmm0
addsd 0x9c01(%rip), %xmm0     # 0x22ac8
mulsd %xmm1, %xmm0
addsd 0x9bfd(%rip), %xmm0     # 0x22ad0
mulsd %xmm1, %xmm0
addsd 0x9bf9(%rip), %xmm0     # 0x22ad8
mulsd %xmm1, %xmm0
addsd 0x9bf5(%rip), %xmm0     # 0x22ae0
movsd %xmm0, 0xa8(%rsp)
movapd %xmm5, %xmm1
xorpd 0xa0e0(%rip), %xmm1     # 0x22fe0
movapd %xmm1, 0x90(%rsp)
movapd %xmm5, %xmm0
mulsd %xmm1, %xmm0
movapd %xmm5, 0x10(%rsp)
callq 0x2550
movsd 0x82d4(%rip), %xmm6     # 0x211f8
mulsd 0x38(%rsp), %xmm0
divsd 0xa8(%rsp), %xmm0
movapd %xmm6, %xmm1
subsd %xmm0, %xmm1
addsd %xmm6, %xmm1
movapd 0xa099(%rip), %xmm3     # 0x22fe0
xorpd %xmm1, %xmm3
movapd 0x10(%rsp), %xmm2
cmpltsd 0x90(%rsp), %xmm2
movapd %xmm2, %xmm0
andnpd %xmm1, %xmm0
andpd %xmm3, %xmm2
orpd %xmm0, %xmm2
movapd %xmm2, %xmm4
jmp 0x18f8a
xorpd %xmm0, %xmm0
xorl %eax, %eax
ucomisd %xmm0, %xmm5
seta %al
leaq 0xa07b(%rip), %rcx      # 0x23000
movsd (%rcx,%rax,8), %xmm4
movapd 0x40(%rsp), %xmm0
movapd %xmm6, %xmm1
subsd %xmm4, %xmm1
addsd %xmm6, %xmm1
movsd %xmm1, 0x10(%rsp)
xorpd 0xa036(%rip), %xmm0     # 0x22fe0
callq 0x2550
mulsd 0x10(%rsp), %xmm0
movsd 0x20(%rsp), %xmm15
movapd 0x70(%rsp), %xmm1
mulsd %xmm1, %xmm1
movsd 0x9a42(%rip), %xmm2     # 0x22a10
movsd 0x88(%rsp), %xmm4
movapd %xmm4, %xmm3
mulsd %xmm2, %xmm3
divsd %xmm1, %xmm2
mulsd %xmm4, %xmm3
movsd 0x8641(%rip), %xmm4     # 0x21630
xorpd %xmm5, %xmm5
movl $0x1, %eax
xorl %ecx, %ecx
movsd 0x9a06(%rip), %xmm6     # 0x22a08
leaq 0x1b0(%rsp), %rdx
movapd 0x9fbe(%rip), %xmm7     # 0x22fd0
movsd 0x99d5(%rip), %xmm8     # 0x229f0
movapd %xmm0, %xmm1
xorpd %xmm12, %xmm12
movapd %xmm4, %xmm9
movapd %xmm4, %xmm10
xorpd %xmm11, %xmm11
addsd %xmm6, %xmm11
movapd %xmm11, %xmm13
addsd %xmm4, %xmm13
mulsd %xmm11, %xmm13
divsd %xmm13, %xmm9
movsd %xmm9, 0x1a8(%rsp,%rax,8)
xorpd %xmm13, %xmm13
cmpq $0x2, %rax
jb 0x190ae
xorps %xmm13, %xmm13
cvtsi2sd %eax, %xmm13
movapd %xmm15, %xmm14
subsd %xmm13, %xmm14
xorpd %xmm13, %xmm13
movq %rdx, %rsi
movq %rcx, %rdi
movsd (%rsi), %xmm15
mulsd %xmm14, %xmm15
mulsd 0xb8(%rsp,%rdi), %xmm15
addsd %xmm15, %xmm13
movsd 0x20(%rsp), %xmm15
addsd %xmm15, %xmm14
addq $0x8, %rsi
addq $-0x8, %rdi
jne 0x1907f
addsd %xmm15, %xmm12
movapd %xmm12, %xmm14
addsd %xmm4, %xmm14
mulsd %xmm12, %xmm14
mulsd %xmm14, %xmm0
addsd 0x60(%rsp), %xmm12
addsd %xmm4, %xmm12
mulsd %xmm10, %xmm12
addsd %xmm12, %xmm0
mulsd %xmm2, %xmm0
xorps %xmm12, %xmm12
cvtsi2sd %eax, %xmm12
divsd %xmm12, %xmm13
movsd 0xb8(%rsp), %xmm12
mulsd %xmm9, %xmm12
addsd %xmm13, %xmm12
movsd %xmm12, 0xb8(%rsp,%rax,8)
mulsd %xmm0, %xmm12
addsd %xmm12, %xmm1
ucomisd %xmm1, %xmm5
jae 0x19149
andpd %xmm7, %xmm12
movsd 0x8(%rsp), %xmm13
addsd %xmm1, %xmm13
mulsd %xmm8, %xmm13
ucomisd %xmm12, %xmm13
jae 0x19155
xorl %esi, %esi
movl $0x4, %edi
cmpq $0x1e, %rax
je 0x1915c
jmp 0x1915f
movl $0x1, %esi
movl $0x3, %edi
jmp 0x1915c
movl $0x2, %esi
xorl %edi, %edi
movl %edi, (%r14)
testl %esi, %esi
jne 0x19180
mulsd %xmm3, %xmm10
incq %rax
addq $0x8, %rcx
movapd %xmm11, %xmm12
cmpq $0x1f, %rax
jne 0x19033
jmp 0x19189
cmpl $0x2, %esi
jne 0x19227
testl %ebp, %ebp
je 0x191f0
movsd (%rbx), %xmm0
movaps %xmm0, 0x70(%rsp)
movapd %xmm1, %xmm0
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, 0x20(%rsp)
subsd %xmm1, %xmm3
orpd 0x9e06(%rip), %xmm3     # 0x22fe0
movapd %xmm3, %xmm0
callq 0x2550
callq 0x2220
addsd 0x20(%rsp), %xmm0
jmp 0x19223
xorpd %xmm2, %xmm2
movsd 0xb0(%rsp), %xmm0
ucomisd %xmm2, %xmm0
jne 0x1921b
jp 0x1921b
movapd %xmm1, %xmm0
callq 0x2240
addsd 0x50(%rsp), %xmm0
callq 0x2550
jmp 0x1921f
mulsd %xmm1, %xmm0
addsd (%rbx), %xmm0
movsd %xmm0, (%rbx)
addq $0x2a0, %rsp            # imm = 0x2A0
popq %rbx
popq %r14
popq %rbp
retq