// File: /workspace/github_c_makefile_star2_O0/c-zhou[P]yahs/binomlite.c
// Function: brcmp1
static double brcmp1(int mu, double a, double b, double x, double y, int give_log)
{
/* -----------------------------------------------------------------------
 *          Evaluation of    exp(mu) * x^a * y^b / beta(a,b)
 * ----------------------------------------------------------------------- */

    static double const__ = .398942280401433; /* == 1/sqrt(2*pi); */
    /* R has  M_1_SQRT_2PI */

    /* Local variables */
    double c, t, u, v, z, a0, b0, apb;

    a0 = fmin2(a,b);
    if (a0 < 8.) {
    double lnx, lny;
    if (x <= .375) {
        lnx = log(x);
        lny = alnrel(-x);
    } else if (y > .375) {
        // L11:
        lnx = log(x);
        lny = log(y);
    } else {
        lnx = alnrel(-y);
        lny = log(y);
    }

    // L20:
    z = a * lnx + b * lny;
    if (a0 >= 1.) {
        z -= betaln(a, b);
        return esum(mu, z, give_log);
    }
    // else :
    /* ----------------------------------------------------------------------- */
    /*              PROCEDURE FOR A < 1 OR B < 1 */
    /* ----------------------------------------------------------------------- */
    // L30:
    b0 = fmax2(a,b);
    if (b0 >= 8.) {
    /* L80:                  ALGORITHM FOR b0 >= 8 */
        u = gamln1(a0) + algdiv(a0, b0);
        return give_log
        ? log(a0) + esum(mu, z - u, 1)
        :     a0  * esum(mu, z - u, 0);

    } else if (b0 <= 1.) {
        //                   a0 < 1, b0 <= 1
        double ans = esum(mu, z, give_log);
        if (ans == (give_log ? ML_NEGINF : 0.))
        return ans;

        apb = a + b;
        if (apb > 1.) {
        // L40:
        u = a + b - 1.;
        z = (gam1(u) + 1.) / apb;
        } else {
        z = gam1(apb) + 1.;
        }
        // L50:
        c = give_log
        ? log1p(gam1(a)) + log1p(gam1(b)) - log(z)
        : (gam1(a) + 1.) * (gam1(b) + 1.) / z;
        return give_log
        ? ans + log(a0) + c - log1p(a0 / b0)
        : ans * (a0 * c) / (a0 / b0 + 1.);
    }
    // else:               algorithm for    a0 < 1 < b0 < 8
    // L60:
    u = gamln1(a0);
    int i, n = (int)(b0 - 1.);
    if (n >= 1) {
        c = 1.;
        for (i = 1; i <= n; ++i) {
        b0 += -1.;
        c *= b0 / (a0 + b0);
        /* L61: */
        }
        u += log(c); // TODO?: log(c) = log( prod(...) ) =  sum( log(...) )
    }
    // L70:
    z -= u;
    b0 += -1.;
    apb = a0 + b0;
    if (apb > 1.) {
        // L71:
        t = (gam1(apb - 1.) + 1.) / apb;
    } else {
        t = gam1(apb) + 1.;
    }
    // L72:
    return give_log
        ? log(a0)+ esum(mu, z, 1) + log1p(gam1(b0)) - log(t) // TODO? log(t) = log1p(..)
        :     a0 * esum(mu, z, 0) * (gam1(b0) + 1.) / t;

    } else {

/* ----------------------------------------------------------------------- */
/*              PROCEDURE FOR A >= 8 AND B >= 8 */
/* ----------------------------------------------------------------------- */
    // L100:
    double h, x0, y0, lambda;
    if (a > b) {
        // L101:
        h = b / a;
        x0 = 1. / (h + 1.);// => lx0 := log(x0) = 0 - log1p(h)
        y0 = h / (h + 1.);
        lambda = (a + b) * y - b;
    } else {
        h = a / b;
        x0 = h / (h + 1.);  // => lx0 := log(x0) = - log1p(1/h)
        y0 = 1. / (h + 1.);
        lambda = a - (a + b) * x;
    }
    double lx0 = -log1p(b/a); // in both cases

    // L110:
    double e = -lambda / a;
    if (fabs(e) > 0.6) {
        // L111:
        u = e - log(x / x0);
    } else {
        u = rlog1(e);
    }

    // L120:
    e = lambda / b;
    if (fabs(e) > 0.6) {
        // L121:
        v = e - log(y / y0);
    } else {
        v = rlog1(e);
    }

    // L130:
    z = esum(mu, -(a * u + b * v), give_log);
    return give_log
        ? log(const__)+ (log(b) + lx0)/2. + z      - bcorr(a, b)
        :     const__ * sqrt(b * x0)      * z * exp(-bcorr(a, b));
    }

}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1b0, %rsp            # imm = 0x1B0
movl %edi, -0xc(%rbp)
movsd %xmm0, -0x18(%rbp)
movsd %xmm1, -0x20(%rbp)
movsd %xmm2, -0x28(%rbp)
movsd %xmm3, -0x30(%rbp)
movl %esi, -0x34(%rbp)
movsd -0x18(%rbp), %xmm1
movsd -0x20(%rbp), %xmm0
ucomisd %xmm1, %xmm0
jb 0x254a4
movsd -0x18(%rbp), %xmm0
movsd %xmm0, -0xd0(%rbp)
jmp 0x254b1
movsd -0x20(%rbp), %xmm0
movsd %xmm0, -0xd0(%rbp)
movsd -0xd0(%rbp), %xmm0
movsd %xmm0, -0x68(%rbp)
movsd 0xd3aa(%rip), %xmm0     # 0x32870
ucomisd -0x68(%rbp), %xmm0
jbe 0x25bd4
movsd 0xd357(%rip), %xmm0     # 0x32830
ucomisd -0x28(%rbp), %xmm0
jb 0x2551a
movsd -0x28(%rbp), %xmm0
callq 0x2250
movsd %xmm0, -0x80(%rbp)
movsd -0x28(%rbp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
callq 0x25fc0
movsd %xmm0, -0x88(%rbp)
jmp 0x2558a
movsd -0x30(%rbp), %xmm0
movsd 0xd309(%rip), %xmm1     # 0x32830
ucomisd %xmm1, %xmm0
jbe 0x25550
movsd -0x28(%rbp), %xmm0
callq 0x2250
movsd %xmm0, -0x80(%rbp)
movsd -0x30(%rbp), %xmm0
callq 0x2250
movsd %xmm0, -0x88(%rbp)
jmp 0x25588
movsd -0x30(%rbp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
callq 0x25fc0
movsd %xmm0, -0x80(%rbp)
movsd -0x30(%rbp), %xmm0
callq 0x2250
movsd %xmm0, -0x88(%rbp)
jmp 0x2558a
movsd -0x18(%rbp), %xmm0
movsd -0x80(%rbp), %xmm2
movsd -0x20(%rbp), %xmm1
mulsd -0x88(%rbp), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x60(%rbp)
movsd -0x68(%rbp), %xmm0
movsd 0xc03d(%rip), %xmm1     # 0x315f8
ucomisd %xmm1, %xmm0
jb 0x255fb
movsd -0x18(%rbp), %xmm0
movsd -0x20(%rbp), %xmm1
callq 0x260f0
movaps %xmm0, %xmm1
movsd -0x60(%rbp), %xmm0
subsd %xmm1, %xmm0
movsd %xmm0, -0x60(%rbp)
movl -0xc(%rbp), %edi
movsd -0x60(%rbp), %xmm0
movl -0x34(%rbp), %esi
callq 0x26760
movsd %xmm0, -0x8(%rbp)
jmp 0x25fa8
movsd -0x18(%rbp), %xmm0
ucomisd -0x20(%rbp), %xmm0
jb 0x25616
movsd -0x18(%rbp), %xmm0
movsd %xmm0, -0xd8(%rbp)
jmp 0x25623
movsd -0x20(%rbp), %xmm0
movsd %xmm0, -0xd8(%rbp)
movsd -0xd8(%rbp), %xmm0
movsd %xmm0, -0x70(%rbp)
movsd -0x70(%rbp), %xmm0
movsd 0xd233(%rip), %xmm1     # 0x32870
ucomisd %xmm1, %xmm0
jb 0x2570e
movsd -0x68(%rbp), %xmm0
callq 0x268c0
movsd %xmm0, -0xe0(%rbp)
movsd -0x68(%rbp), %xmm0
movsd -0x70(%rbp), %xmm1
callq 0x26b40
movaps %xmm0, %xmm1
movsd -0xe0(%rbp), %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x50(%rbp)
cmpl $0x0, -0x34(%rbp)
je 0x256c4
movsd -0x68(%rbp), %xmm0
callq 0x2250
movsd %xmm0, -0xf0(%rbp)
movl -0xc(%rbp), %edi
movsd -0x60(%rbp), %xmm0
subsd -0x50(%rbp), %xmm0
movl $0x1, %esi
callq 0x26760
movaps %xmm0, %xmm1
movsd -0xf0(%rbp), %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0xe8(%rbp)
jmp 0x256fc
movsd -0x68(%rbp), %xmm0
movsd %xmm0, -0xf8(%rbp)
movl -0xc(%rbp), %edi
movsd -0x60(%rbp), %xmm0
subsd -0x50(%rbp), %xmm0
xorl %esi, %esi
callq 0x26760
movaps %xmm0, %xmm1
movsd -0xf8(%rbp), %xmm0
mulsd %xmm1, %xmm0
movsd %xmm0, -0xe8(%rbp)
movsd -0xe8(%rbp), %xmm0
movsd %xmm0, -0x8(%rbp)
jmp 0x25fa8
movsd 0xbee2(%rip), %xmm0     # 0x315f8
ucomisd -0x70(%rbp), %xmm0
jb 0x25991
movl -0xc(%rbp), %edi
movsd -0x60(%rbp), %xmm0
movl -0x34(%rbp), %esi
callq 0x26760
movsd %xmm0, -0x90(%rbp)
movsd -0x90(%rbp), %xmm0
movsd %xmm0, -0x110(%rbp)
movl -0x34(%rbp), %eax
movsd 0xd02c(%rip), %xmm0     # 0x32780
xorps %xmm1, %xmm1
movsd %xmm1, -0x108(%rbp)
cmpl $0x0, %eax
movsd %xmm0, -0x100(%rbp)
jne 0x2577c
movsd -0x108(%rbp), %xmm0
movsd %xmm0, -0x100(%rbp)
movsd -0x110(%rbp), %xmm0
movsd -0x100(%rbp), %xmm1
ucomisd %xmm1, %xmm0
jne 0x257a6
jp 0x257a6
movsd -0x90(%rbp), %xmm0
movsd %xmm0, -0x8(%rbp)
jmp 0x25fa8
movsd -0x18(%rbp), %xmm0
addsd -0x20(%rbp), %xmm0
movsd %xmm0, -0x78(%rbp)
movsd -0x78(%rbp), %xmm0
movsd 0xbe36(%rip), %xmm1     # 0x315f8
ucomisd %xmm1, %xmm0
jbe 0x25805
movsd -0x18(%rbp), %xmm0
addsd -0x20(%rbp), %xmm0
movsd 0xbe1e(%rip), %xmm1     # 0x315f8
subsd %xmm1, %xmm0
movsd %xmm0, -0x50(%rbp)
movsd -0x50(%rbp), %xmm0
callq 0x26e70
movsd 0xbe03(%rip), %xmm1     # 0x315f8
addsd %xmm1, %xmm0
divsd -0x78(%rbp), %xmm0
movsd %xmm0, -0x60(%rbp)
jmp 0x25820
movsd -0x78(%rbp), %xmm0
callq 0x26e70
movsd 0xbde1(%rip), %xmm1     # 0x315f8
addsd %xmm1, %xmm0
movsd %xmm0, -0x60(%rbp)
cmpl $0x0, -0x34(%rbp)
je 0x25886
movsd -0x18(%rbp), %xmm0
callq 0x26e70
callq 0x2230
movsd %xmm0, -0x128(%rbp)
movsd -0x20(%rbp), %xmm0
callq 0x26e70
callq 0x2230
movaps %xmm0, %xmm1
movsd -0x128(%rbp), %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x120(%rbp)
movsd -0x60(%rbp), %xmm0
callq 0x2250
movaps %xmm0, %xmm1
movsd -0x120(%rbp), %xmm0
subsd %xmm1, %xmm0
movsd %xmm0, -0x118(%rbp)
jmp 0x258d6
movsd -0x18(%rbp), %xmm0
callq 0x26e70
movsd 0xbd60(%rip), %xmm1     # 0x315f8
addsd %xmm1, %xmm0
movsd %xmm0, -0x130(%rbp)
movsd -0x20(%rbp), %xmm0
callq 0x26e70
movaps %xmm0, %xmm1
movsd -0x130(%rbp), %xmm0
movsd 0xbd37(%rip), %xmm2     # 0x315f8
addsd %xmm2, %xmm1
mulsd %xmm1, %xmm0
divsd -0x60(%rbp), %xmm0
movsd %xmm0, -0x118(%rbp)
movsd -0x118(%rbp), %xmm0
movsd %xmm0, -0x40(%rbp)
cmpl $0x0, -0x34(%rbp)
je 0x25947
movsd -0x90(%rbp), %xmm0
movsd %xmm0, -0x148(%rbp)
movsd -0x68(%rbp), %xmm0
callq 0x2250
movaps %xmm0, %xmm1
movsd -0x148(%rbp), %xmm0
addsd %xmm1, %xmm0
addsd -0x40(%rbp), %xmm0
movsd %xmm0, -0x140(%rbp)
movsd -0x68(%rbp), %xmm0
divsd -0x70(%rbp), %xmm0
callq 0x2230
movaps %xmm0, %xmm1
movsd -0x140(%rbp), %xmm0
subsd %xmm1, %xmm0
movsd %xmm0, -0x138(%rbp)
jmp 0x2597f
movsd -0x90(%rbp), %xmm0
movsd -0x68(%rbp), %xmm1
mulsd -0x40(%rbp), %xmm1
mulsd %xmm1, %xmm0
movsd -0x68(%rbp), %xmm1
divsd -0x70(%rbp), %xmm1
movsd 0xbc89(%rip), %xmm2     # 0x315f8
addsd %xmm2, %xmm1
divsd %xmm1, %xmm0
movsd %xmm0, -0x138(%rbp)
movsd -0x138(%rbp), %xmm0
movsd %xmm0, -0x8(%rbp)
jmp 0x25fa8
jmp 0x25993
movsd -0x68(%rbp), %xmm0
callq 0x268c0
movsd %xmm0, -0x50(%rbp)
movsd -0x70(%rbp), %xmm0
movsd 0xbc49(%rip), %xmm1     # 0x315f8
subsd %xmm1, %xmm0
cvttsd2si %xmm0, %eax
movl %eax, -0x98(%rbp)
cmpl $0x1, -0x98(%rbp)
jl 0x25a3f
movsd 0xbc2a(%rip), %xmm0     # 0x315f8
movsd %xmm0, -0x40(%rbp)
movl $0x1, -0x94(%rbp)
movl -0x94(%rbp), %eax
cmpl -0x98(%rbp), %eax
jg 0x25a2b
movsd 0xce85(%rip), %xmm0     # 0x32878
addsd -0x70(%rbp), %xmm0
movsd %xmm0, -0x70(%rbp)
movsd -0x70(%rbp), %xmm0
movsd -0x68(%rbp), %xmm1
addsd -0x70(%rbp), %xmm1
divsd %xmm1, %xmm0
mulsd -0x40(%rbp), %xmm0
movsd %xmm0, -0x40(%rbp)
movl -0x94(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x94(%rbp)
jmp 0x259dd
movsd -0x40(%rbp), %xmm0
callq 0x2250
addsd -0x50(%rbp), %xmm0
movsd %xmm0, -0x50(%rbp)
movsd -0x50(%rbp), %xmm1
movsd -0x60(%rbp), %xmm0
subsd %xmm1, %xmm0
movsd %xmm0, -0x60(%rbp)
movsd 0xce1e(%rip), %xmm0     # 0x32878
addsd -0x70(%rbp), %xmm0
movsd %xmm0, -0x70(%rbp)
movsd -0x68(%rbp), %xmm0
addsd -0x70(%rbp), %xmm0
movsd %xmm0, -0x78(%rbp)
movsd -0x78(%rbp), %xmm0
movsd 0xbb78(%rip), %xmm1     # 0x315f8
ucomisd %xmm1, %xmm0
jbe 0x25ab4
movsd -0x78(%rbp), %xmm0
movsd 0xbb65(%rip), %xmm1     # 0x315f8
subsd %xmm1, %xmm0
callq 0x26e70
movsd 0xbb54(%rip), %xmm1     # 0x315f8
addsd %xmm1, %xmm0
divsd -0x78(%rbp), %xmm0
movsd %xmm0, -0x48(%rbp)
jmp 0x25acf
movsd -0x78(%rbp), %xmm0
callq 0x26e70
movsd 0xbb32(%rip), %xmm1     # 0x315f8
addsd %xmm1, %xmm0
movsd %xmm0, -0x48(%rbp)
cmpl $0x0, -0x34(%rbp)
je 0x25b5d
movsd -0x68(%rbp), %xmm0
callq 0x2250
movsd %xmm0, -0x168(%rbp)
movl -0xc(%rbp), %edi
movsd -0x60(%rbp), %xmm0
movl $0x1, %esi
callq 0x26760
movaps %xmm0, %xmm1
movsd -0x168(%rbp), %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x160(%rbp)
movsd -0x70(%rbp), %xmm0
callq 0x26e70
callq 0x2230
movaps %xmm0, %xmm1
movsd -0x160(%rbp), %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x158(%rbp)
movsd -0x48(%rbp), %xmm0
callq 0x2250
movaps %xmm0, %xmm1
movsd -0x158(%rbp), %xmm0
subsd %xmm1, %xmm0
movsd %xmm0, -0x150(%rbp)
jmp 0x25bc2
movsd -0x68(%rbp), %xmm0
movsd %xmm0, -0x178(%rbp)
movl -0xc(%rbp), %edi
movsd -0x60(%rbp), %xmm0
xorl %esi, %esi
callq 0x26760
movaps %xmm0, %xmm1
movsd -0x178(%rbp), %xmm0
mulsd %xmm1, %xmm0
movsd %xmm0, -0x170(%rbp)
movsd -0x70(%rbp), %xmm0
callq 0x26e70
movaps %xmm0, %xmm1
movsd -0x170(%rbp), %xmm0
movsd 0xba4b(%rip), %xmm2     # 0x315f8
addsd %xmm2, %xmm1
mulsd %xmm1, %xmm0
divsd -0x48(%rbp), %xmm0
movsd %xmm0, -0x150(%rbp)
movsd -0x150(%rbp), %xmm0
movsd %xmm0, -0x8(%rbp)
jmp 0x25fa8
movsd -0x18(%rbp), %xmm0
ucomisd -0x20(%rbp), %xmm0
jbe 0x25c7e
movsd -0x20(%rbp), %xmm0
divsd -0x18(%rbp), %xmm0
movsd %xmm0, -0xa0(%rbp)
movsd 0xb9fa(%rip), %xmm1     # 0x315f8
addsd -0xa0(%rbp), %xmm1
movsd 0xb9ea(%rip), %xmm0     # 0x315f8
divsd %xmm1, %xmm0
movsd %xmm0, -0xa8(%rbp)
movsd -0xa0(%rbp), %xmm0
movsd 0xb9ce(%rip), %xmm1     # 0x315f8
addsd -0xa0(%rbp), %xmm1
divsd %xmm1, %xmm0
movsd %xmm0, -0xb0(%rbp)
movsd -0x18(%rbp), %xmm0
addsd -0x20(%rbp), %xmm0
movsd -0x30(%rbp), %xmm2
movsd -0x20(%rbp), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0xb8(%rbp)
jmp 0x25d13
movsd -0x18(%rbp), %xmm0
divsd -0x20(%rbp), %xmm0
movsd %xmm0, -0xa0(%rbp)
movsd -0xa0(%rbp), %xmm0
movsd 0xb958(%rip), %xmm1     # 0x315f8
addsd -0xa0(%rbp), %xmm1
divsd %xmm1, %xmm0
movsd %xmm0, -0xa8(%rbp)
movsd 0xb93c(%rip), %xmm1     # 0x315f8
addsd -0xa0(%rbp), %xmm1
movsd 0xb92c(%rip), %xmm0     # 0x315f8
divsd %xmm1, %xmm0
movsd %xmm0, -0xb0(%rbp)
movsd -0x18(%rbp), %xmm1
movsd -0x18(%rbp), %xmm0
addsd -0x20(%rbp), %xmm0
movsd -0x28(%rbp), %xmm2
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0xb8(%rbp)
movsd -0x20(%rbp), %xmm0
divsd -0x18(%rbp), %xmm0
callq 0x2230
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd %xmm0, -0xc0(%rbp)
movsd -0xb8(%rbp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
divsd -0x18(%rbp), %xmm0
movsd %xmm0, -0xc8(%rbp)
movsd -0xc8(%rbp), %xmm0
movaps 0xcd74(%rip), %xmm1     # 0x32af0
pand %xmm1, %xmm0
movsd 0xcce8(%rip), %xmm1     # 0x32a70
ucomisd %xmm1, %xmm0
jbe 0x25dc6
movsd -0xc8(%rbp), %xmm0
movsd %xmm0, -0x180(%rbp)
movsd -0x28(%rbp), %xmm0
divsd -0xa8(%rbp), %xmm0
callq 0x2250
movaps %xmm0, %xmm1
movsd -0x180(%rbp), %xmm0
subsd %xmm1, %xmm0
movsd %xmm0, -0x50(%rbp)
jmp 0x25dd8
movsd -0xc8(%rbp), %xmm0
callq 0x27190
movsd %xmm0, -0x50(%rbp)
movsd -0xb8(%rbp), %xmm0
divsd -0x20(%rbp), %xmm0
movsd %xmm0, -0xc8(%rbp)
movsd -0xc8(%rbp), %xmm0
movaps 0xccf4(%rip), %xmm1     # 0x32af0
pand %xmm1, %xmm0
movsd 0xcc68(%rip), %xmm1     # 0x32a70
ucomisd %xmm1, %xmm0
jbe 0x25e46
movsd -0xc8(%rbp), %xmm0
movsd %xmm0, -0x188(%rbp)
movsd -0x30(%rbp), %xmm0
divsd -0xb0(%rbp), %xmm0
callq 0x2250
movaps %xmm0, %xmm1
movsd -0x188(%rbp), %xmm0
subsd %xmm1, %xmm0
movsd %xmm0, -0x58(%rbp)
jmp 0x25e58
movsd -0xc8(%rbp), %xmm0
callq 0x27190
movsd %xmm0, -0x58(%rbp)
movl -0xc(%rbp), %edi
movsd -0x18(%rbp), %xmm0
movsd -0x50(%rbp), %xmm2
movsd -0x20(%rbp), %xmm1
mulsd -0x58(%rbp), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movl -0x34(%rbp), %esi
callq 0x26760
movsd %xmm0, -0x60(%rbp)
cmpl $0x0, -0x34(%rbp)
je 0x25f1b
movsd 0x13667(%rip), %xmm0    # 0x39510
callq 0x2250
movsd %xmm0, -0x1a0(%rbp)
movsd -0x20(%rbp), %xmm0
callq 0x2250
movaps %xmm0, %xmm1
movsd -0x1a0(%rbp), %xmm0
addsd -0xc0(%rbp), %xmm1
movsd 0xb2e5(%rip), %xmm2     # 0x311c0
divsd %xmm2, %xmm1
addsd %xmm1, %xmm0
addsd -0x60(%rbp), %xmm0
movsd %xmm0, -0x198(%rbp)
movsd -0x18(%rbp), %xmm0
movsd -0x20(%rbp), %xmm1
callq 0x273f0
movaps %xmm0, %xmm1
movsd -0x198(%rbp), %xmm0
subsd %xmm1, %xmm0
movsd %xmm0, -0x190(%rbp)
jmp 0x25f9b
movsd 0x135ed(%rip), %xmm0    # 0x39510
movsd %xmm0, -0x1b0(%rbp)
movsd -0x20(%rbp), %xmm0
mulsd -0xa8(%rbp), %xmm0
callq 0x2500
movaps %xmm0, %xmm1
movsd -0x1b0(%rbp), %xmm0
mulsd %xmm1, %xmm0
mulsd -0x60(%rbp), %xmm0
movsd %xmm0, -0x1a8(%rbp)
movsd -0x18(%rbp), %xmm0
movsd -0x20(%rbp), %xmm1
callq 0x273f0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
callq 0x2560
movaps %xmm0, %xmm1
movsd -0x1a8(%rbp), %xmm0
mulsd %xmm1, %xmm0
movsd %xmm0, -0x190(%rbp)
movsd -0x190(%rbp), %xmm0
movsd %xmm0, -0x8(%rbp)
movsd -0x8(%rbp), %xmm0
addq $0x1b0, %rsp            # imm = 0x1B0
popq %rbp
retq
nopw %cs:(%rax,%rax)