// File: /workspace/github_c_makefile_star2_O0/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
movq %rsp, %rbp
subq $0x1b0, %rsp            # imm = 0x1B0
movsd %xmm0, -0x8(%rbp)
movsd %xmm1, -0x10(%rbp)
movsd %xmm2, -0x18(%rbp)
movsd %xmm3, -0x20(%rbp)
movq %rdi, -0x28(%rbp)
movq %rsi, -0x30(%rbp)
movq %rdx, -0x38(%rbp)
movl %ecx, -0x3c(%rbp)
movl $0x0, -0x48(%rbp)
movsd 0x126eb(%rip), %xmm0    # 0x32788
movsd %xmm0, -0x80(%rbp)
movl -0x3c(%rbp), %eax
movsd 0x126d3(%rip), %xmm0    # 0x32780
xorps %xmm1, %xmm1
movsd %xmm1, -0xa0(%rbp)
cmpl $0x0, %eax
movsd %xmm0, -0x98(%rbp)
jne 0x200d5
movsd -0xa0(%rbp), %xmm0
movsd %xmm0, -0x98(%rbp)
movsd -0x98(%rbp), %xmm0
movq -0x28(%rbp), %rax
movsd %xmm0, (%rax)
movl -0x3c(%rbp), %eax
movsd 0x12690(%rip), %xmm0    # 0x32780
xorps %xmm1, %xmm1
movsd %xmm1, -0xb0(%rbp)
cmpl $0x0, %eax
movsd %xmm0, -0xa8(%rbp)
jne 0x20118
movsd -0xb0(%rbp), %xmm0
movsd %xmm0, -0xa8(%rbp)
movsd -0xa8(%rbp), %xmm0
movq -0x30(%rbp), %rax
movsd %xmm0, (%rax)
xorps %xmm0, %xmm0
ucomisd -0x8(%rbp), %xmm0
ja 0x2013c
xorps %xmm0, %xmm0
ucomisd -0x10(%rbp), %xmm0
jbe 0x2014b
movq -0x38(%rbp), %rax
movl $0x1, (%rax)
jmp 0x214a6
movsd -0x8(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x2017a
jp 0x2017a
movsd -0x10(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x2017a
jp 0x2017a
movq -0x38(%rbp), %rax
movl $0x2, (%rax)
jmp 0x214a6
xorps %xmm0, %xmm0
ucomisd -0x18(%rbp), %xmm0
ja 0x20197
movsd -0x18(%rbp), %xmm0
movsd 0x11467(%rip), %xmm1    # 0x315f8
ucomisd %xmm1, %xmm0
jbe 0x201a6
movq -0x38(%rbp), %rax
movl $0x3, (%rax)
jmp 0x214a6
xorps %xmm0, %xmm0
ucomisd -0x20(%rbp), %xmm0
ja 0x201c3
movsd -0x20(%rbp), %xmm0
movsd 0x1143b(%rip), %xmm1    # 0x315f8
ucomisd %xmm1, %xmm0
jbe 0x201d2
movq -0x38(%rbp), %rax
movl $0x4, (%rax)
jmp 0x214a6
movsd -0x18(%rbp), %xmm0
addsd -0x20(%rbp), %xmm0
movsd 0x1141c(%rip), %xmm1    # 0x31600
subsd %xmm1, %xmm0
movsd 0x11410(%rip), %xmm1    # 0x31600
subsd %xmm1, %xmm0
movsd %xmm0, -0x50(%rbp)
movsd -0x50(%rbp), %xmm0
movaps 0x128eb(%rip), %xmm1    # 0x32af0
pand %xmm1, %xmm0
movsd 0x1257f(%rip), %xmm1    # 0x32790
mulsd -0x80(%rbp), %xmm1
ucomisd %xmm1, %xmm0
jbe 0x2022b
movq -0x38(%rbp), %rax
movl $0x5, (%rax)
jmp 0x214a6
movq -0x38(%rbp), %rax
movl $0x0, (%rax)
movsd -0x18(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x2024a
jp 0x2024a
jmp 0x21159
movsd -0x20(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x2025f
jp 0x2025f
jmp 0x21205
movsd -0x8(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x20274
jp 0x20274
jmp 0x21226
movsd -0x10(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x20289
jp 0x20289
jmp 0x2117a
movsd -0x80(%rbp), %xmm0
movsd 0x12502(%rip), %xmm1    # 0x32798
ucomisd %xmm1, %xmm0
jb 0x202ab
movsd -0x80(%rbp), %xmm0
movsd %xmm0, -0xb8(%rbp)
jmp 0x202bd
movsd 0x124e5(%rip), %xmm0    # 0x32798
movsd %xmm0, -0xb8(%rbp)
jmp 0x202bd
movsd -0xb8(%rbp), %xmm0
movsd %xmm0, -0x80(%rbp)
movsd -0x8(%rbp), %xmm1
movsd -0x10(%rbp), %xmm0
ucomisd %xmm1, %xmm0
seta %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x84(%rbp)
cmpl $0x0, -0x84(%rbp)
je 0x202fe
movsd -0x10(%rbp), %xmm0
movsd %xmm0, -0xc0(%rbp)
jmp 0x2030b
movsd -0x8(%rbp), %xmm0
movsd %xmm0, -0xc0(%rbp)
movsd -0xc0(%rbp), %xmm1
movsd 0x12485(%rip), %xmm0    # 0x327a0
mulsd -0x80(%rbp), %xmm0
ucomisd %xmm1, %xmm0
jbe 0x2042a
cmpl $0x0, -0x3c(%rbp)
je 0x203ef
cmpl $0x0, -0x84(%rbp)
je 0x20396
movsd -0x8(%rbp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd -0x8(%rbp), %xmm1
addsd -0x10(%rbp), %xmm1
divsd %xmm1, %xmm0
callq 0x2230
movq -0x28(%rbp), %rax
movsd %xmm0, (%rax)
movsd -0x8(%rbp), %xmm0
movsd -0x8(%rbp), %xmm1
addsd -0x10(%rbp), %xmm1
divsd %xmm1, %xmm0
callq 0x2250
movq -0x30(%rbp), %rax
movsd %xmm0, (%rax)
jmp 0x203ed
movsd -0x10(%rbp), %xmm0
movsd -0x8(%rbp), %xmm1
addsd -0x10(%rbp), %xmm1
divsd %xmm1, %xmm0
callq 0x2250
movq -0x28(%rbp), %rax
movsd %xmm0, (%rax)
movsd -0x10(%rbp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd -0x8(%rbp), %xmm1
addsd -0x10(%rbp), %xmm1
divsd %xmm1, %xmm0
callq 0x2230
movq -0x30(%rbp), %rax
movsd %xmm0, (%rax)
jmp 0x20425
movsd -0x10(%rbp), %xmm0
movsd -0x8(%rbp), %xmm1
addsd -0x10(%rbp), %xmm1
divsd %xmm1, %xmm0
movq -0x28(%rbp), %rax
movsd %xmm0, (%rax)
movsd -0x8(%rbp), %xmm0
movsd -0x8(%rbp), %xmm1
addsd -0x10(%rbp), %xmm1
divsd %xmm1, %xmm0
movq -0x30(%rbp), %rax
movsd %xmm0, (%rax)
jmp 0x214a6
movsd -0x8(%rbp), %xmm1
movsd -0x10(%rbp), %xmm0
ucomisd %xmm1, %xmm0
jb 0x20449
movsd -0x8(%rbp), %xmm0
movsd %xmm0, -0xc8(%rbp)
jmp 0x20456
movsd -0x10(%rbp), %xmm0
movsd %xmm0, -0xc8(%rbp)
movsd -0xc8(%rbp), %xmm1
movsd 0x11192(%rip), %xmm0    # 0x315f8
ucomisd %xmm1, %xmm0
jb 0x209ab
movsd -0x18(%rbp), %xmm0
movsd 0x11183(%rip), %xmm1    # 0x31600
ucomisd %xmm1, %xmm0
seta %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x40(%rbp)
cmpl $0x0, -0x40(%rbp)
je 0x204bc
movsd -0x10(%rbp), %xmm0
movsd %xmm0, -0x58(%rbp)
movsd -0x20(%rbp), %xmm0
movsd %xmm0, -0x68(%rbp)
movsd -0x8(%rbp), %xmm0
movsd %xmm0, -0x60(%rbp)
movsd -0x18(%rbp), %xmm0
movsd %xmm0, -0x70(%rbp)
jmp 0x204e4
movsd -0x8(%rbp), %xmm0
movsd %xmm0, -0x58(%rbp)
movsd -0x18(%rbp), %xmm0
movsd %xmm0, -0x68(%rbp)
movsd -0x10(%rbp), %xmm0
movsd %xmm0, -0x60(%rbp)
movsd -0x20(%rbp), %xmm0
movsd %xmm0, -0x70(%rbp)
movsd -0x60(%rbp), %xmm0
movsd %xmm0, -0xd0(%rbp)
movsd -0x80(%rbp), %xmm1
movsd -0x80(%rbp), %xmm0
mulsd -0x58(%rbp), %xmm0
ucomisd %xmm1, %xmm0
jb 0x20515
movsd -0x80(%rbp), %xmm0
movsd %xmm0, -0xd8(%rbp)
jmp 0x20527
movsd -0x80(%rbp), %xmm0
mulsd -0x58(%rbp), %xmm0
movsd %xmm0, -0xd8(%rbp)
movsd -0xd0(%rbp), %xmm1
movsd -0xd8(%rbp), %xmm0
ucomisd %xmm1, %xmm0
jbe 0x20634
movsd -0x58(%rbp), %xmm0
movsd -0x60(%rbp), %xmm1
movsd -0x68(%rbp), %xmm2
movsd -0x80(%rbp), %xmm3
movl -0x3c(%rbp), %edi
callq 0x214b0
movq -0x28(%rbp), %rax
movsd %xmm0, (%rax)
cmpl $0x0, -0x3c(%rbp)
je 0x205fb
movq -0x28(%rbp), %rax
movsd (%rax), %xmm0
movsd 0x12241(%rip), %xmm1    # 0x327c0
ucomisd %xmm1, %xmm0
jbe 0x205b8
movq -0x28(%rbp), %rax
movsd (%rax), %xmm0
callq 0x216d0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
callq 0x2250
movsd %xmm0, -0xe0(%rbp)
jmp 0x205e9
movq -0x28(%rbp), %rax
movsd (%rax), %xmm0
callq 0x2560
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
callq 0x2230
movsd %xmm0, -0xe0(%rbp)
movsd -0xe0(%rbp), %xmm0
movsd %xmm0, -0xe8(%rbp)
jmp 0x2061f
movq -0x28(%rbp), %rax
movsd 0x10ff9(%rip), %xmm0    # 0x31600
subsd (%rax), %xmm0
movsd 0x10fed(%rip), %xmm1    # 0x31600
addsd %xmm1, %xmm0
movsd %xmm0, -0xe8(%rbp)
movsd -0xe8(%rbp), %xmm0
movq -0x30(%rbp), %rax
movsd %xmm0, (%rax)
jmp 0x2146e
movsd -0x58(%rbp), %xmm0
movsd %xmm0, -0xf0(%rbp)
movsd -0x80(%rbp), %xmm1
movsd -0x80(%rbp), %xmm0
mulsd -0x60(%rbp), %xmm0
ucomisd %xmm1, %xmm0
jb 0x20665
movsd -0x80(%rbp), %xmm0
movsd %xmm0, -0xf8(%rbp)
jmp 0x20677
movsd -0x80(%rbp), %xmm0
mulsd -0x60(%rbp), %xmm0
movsd %xmm0, -0xf8(%rbp)
movsd -0xf0(%rbp), %xmm1
movsd -0xf8(%rbp), %xmm0
ucomisd %xmm1, %xmm0
jbe 0x206cb
movsd -0x60(%rbp), %xmm1
mulsd -0x68(%rbp), %xmm1
movsd 0x10f59(%rip), %xmm0    # 0x315f8
ucomisd %xmm1, %xmm0
jb 0x206cb
movsd -0x58(%rbp), %xmm0
movsd -0x60(%rbp), %xmm1
movsd -0x68(%rbp), %xmm2
movsd -0x80(%rbp), %xmm3
callq 0x21820
movq -0x30(%rbp), %rax
movsd %xmm0, (%rax)
jmp 0x21323
movl $0x0, -0x88(%rbp)
movsd -0x58(%rbp), %xmm0
ucomisd -0x60(%rbp), %xmm0
jb 0x206f0
movsd -0x58(%rbp), %xmm0
movsd %xmm0, -0x100(%rbp)
jmp 0x206fd
movsd -0x60(%rbp), %xmm0
movsd %xmm0, -0x100(%rbp)
movsd -0x100(%rbp), %xmm0
movsd 0x10eeb(%rip), %xmm1    # 0x315f8
ucomisd %xmm1, %xmm0
jbe 0x207a4
movsd 0x10ed9(%rip), %xmm0    # 0x315f8
ucomisd -0x60(%rbp), %xmm0
jb 0x2072b
jmp 0x20d00
movsd -0x68(%rbp), %xmm0
movsd 0x120c0(%rip), %xmm1    # 0x327f8
ucomisd %xmm1, %xmm0
jb 0x20743
jmp 0x20df3
movsd 0x10ebd(%rip), %xmm0    # 0x31608
ucomisd -0x68(%rbp), %xmm0
jbe 0x2077c
movsd -0x68(%rbp), %xmm0
mulsd -0x60(%rbp), %xmm0
movsd -0x58(%rbp), %xmm1
callq 0x2140
movaps %xmm0, %xmm1
movsd 0x1205f(%rip), %xmm0    # 0x327d0
ucomisd %xmm1, %xmm0
jb 0x2077c
jmp 0x20d00
movsd -0x60(%rbp), %xmm0
movsd 0x1203f(%rip), %xmm1    # 0x327c8
ucomisd %xmm1, %xmm0
jbe 0x2079f
movq -0x30(%rbp), %rax
xorps %xmm0, %xmm0
movsd %xmm0, (%rax)
jmp 0x20888
jmp 0x2083d
movsd -0x58(%rbp), %xmm0
movsd %xmm0, -0x108(%rbp)
movsd -0x60(%rbp), %xmm0
movsd 0x1202a(%rip), %xmm1    # 0x327e8
ucomisd %xmm1, %xmm0
jb 0x207d6
movsd 0x1201c(%rip), %xmm0    # 0x327e8
movsd %xmm0, -0x110(%rbp)
jmp 0x207e3
movsd -0x60(%rbp), %xmm0
movsd %xmm0, -0x110(%rbp)
movsd -0x108(%rbp), %xmm0
movsd -0x110(%rbp), %xmm1
ucomisd %xmm1, %xmm0
jb 0x207fe
jmp 0x20d00
movsd -0x68(%rbp), %xmm0
movsd -0x58(%rbp), %xmm1
callq 0x2140
movaps %xmm0, %xmm1
movsd 0x10e10(%rip), %xmm0    # 0x31628
ucomisd %xmm1, %xmm0
jb 0x20823
jmp 0x20d00
movsd -0x68(%rbp), %xmm0
movsd 0x11fc0(%rip), %xmm1    # 0x327f0
ucomisd %xmm1, %xmm0
jb 0x2083b
jmp 0x20df3
jmp 0x2083d
movl $0x14, -0x44(%rbp)
movsd -0x60(%rbp), %xmm0
movsd -0x58(%rbp), %xmm1
movsd -0x70(%rbp), %xmm2
movsd -0x68(%rbp), %xmm3
movl -0x44(%rbp), %edi
movsd -0x80(%rbp), %xmm4
xorl %esi, %esi
callq 0x219a0
movq -0x30(%rbp), %rax
movsd %xmm0, (%rax)
movl $0x1, -0x88(%rbp)
cvtsi2sdl -0x44(%rbp), %xmm0
addsd -0x60(%rbp), %xmm0
movsd %xmm0, -0x60(%rbp)
movsd -0x60(%rbp), %xmm0
movsd -0x58(%rbp), %xmm1
movsd -0x70(%rbp), %xmm2
movsd -0x68(%rbp), %xmm3
movq -0x30(%rbp), %rdi
movsd 0x11f20(%rip), %xmm4    # 0x327c8
mulsd -0x80(%rbp), %xmm4
leaq -0x48(%rbp), %rsi
xorl %edx, %edx
callq 0x21d50
movq -0x30(%rbp), %rax
movsd (%rax), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x208cd
jp 0x208cd
jmp 0x208f8
movq -0x30(%rbp), %rax
movsd (%rax), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x20994
movq -0x30(%rbp), %rax
movsd 0x11ef2(%rip), %xmm0    # 0x327e0
ucomisd (%rax), %xmm0
jbe 0x20994
cmpl $0x0, -0x88(%rbp)
je 0x2093a
movsd -0x60(%rbp), %xmm0
cvtsi2sdl -0x44(%rbp), %xmm1
subsd %xmm1, %xmm0
movsd -0x58(%rbp), %xmm1
movsd -0x70(%rbp), %xmm2
movsd -0x68(%rbp), %xmm3
movl -0x44(%rbp), %edi
movsd -0x80(%rbp), %xmm4
movl $0x1, %esi
callq 0x219a0
movq -0x30(%rbp), %rax
movsd %xmm0, (%rax)
jmp 0x2094a
movq -0x30(%rbp), %rax
movsd 0x11e3a(%rip), %xmm0    # 0x32780
movsd %xmm0, (%rax)
movsd -0x60(%rbp), %xmm0
movsd -0x58(%rbp), %xmm1
movsd -0x70(%rbp), %xmm2
movsd -0x68(%rbp), %xmm3
movq -0x30(%rbp), %rdi
movsd 0x11e5e(%rip), %xmm4    # 0x327c8
mulsd -0x80(%rbp), %xmm4
leaq -0x48(%rbp), %rsi
movl $0x1, %edx
callq 0x21d50
cmpl $0x0, -0x48(%rbp)
je 0x2098f
movl -0x48(%rbp), %ecx
addl $0xa, %ecx
movq -0x38(%rbp), %rax
movl %ecx, (%rax)
jmp 0x21395
cmpl $0x0, -0x48(%rbp)
je 0x209a6
movl -0x48(%rbp), %ecx
addl $0xa, %ecx
movq -0x38(%rbp), %rax
movl %ecx, (%rax)
jmp 0x21323
movsd -0x8(%rbp), %xmm0
addsd -0x10(%rbp), %xmm0
movq %xmm0, %rax
movabsq $0x7fffffffffffffff, %rcx # imm = 0x7FFFFFFFFFFFFFFF
andq %rcx, %rax
movabsq $0x7ff0000000000000, %rcx # imm = 0x7FF0000000000000
subq %rcx, %rax
setl %al
testb $0x1, %al
jne 0x209e0
jmp 0x20a76
movsd -0x8(%rbp), %xmm0
ucomisd -0x10(%rbp), %xmm0
jbe 0x20a29
movsd -0x8(%rbp), %xmm0
addsd -0x10(%rbp), %xmm0
movsd -0x20(%rbp), %xmm2
movsd -0x10(%rbp), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x118(%rbp)
jmp 0x20a64
movsd -0x8(%rbp), %xmm1
movsd -0x8(%rbp), %xmm0
addsd -0x10(%rbp), %xmm0
movsd -0x18(%rbp), %xmm2
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x118(%rbp)
movsd -0x118(%rbp), %xmm0
movsd %xmm0, -0x120(%rbp)
jmp 0x20ab1
movsd -0x8(%rbp), %xmm0
movsd -0x20(%rbp), %xmm2
movsd -0x10(%rbp), %xmm1
mulsd -0x18(%rbp), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x120(%rbp)
movsd -0x120(%rbp), %xmm0
movsd %xmm0, -0x78(%rbp)
xorps %xmm0, %xmm0
ucomisd -0x78(%rbp), %xmm0
seta %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x40(%rbp)
cmpl $0x0, -0x40(%rbp)
je 0x20b22
movsd -0x78(%rbp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd %xmm0, -0x78(%rbp)
movsd -0x10(%rbp), %xmm0
movsd %xmm0, -0x58(%rbp)
movsd -0x20(%rbp), %xmm0
movsd %xmm0, -0x68(%rbp)
movsd -0x8(%rbp), %xmm0
movsd %xmm0, -0x60(%rbp)
movsd -0x18(%rbp), %xmm0
movsd %xmm0, -0x70(%rbp)
jmp 0x20b4a
movsd -0x8(%rbp), %xmm0
movsd %xmm0, -0x58(%rbp)
movsd -0x18(%rbp), %xmm0
movsd %xmm0, -0x68(%rbp)
movsd -0x10(%rbp), %xmm0
movsd %xmm0, -0x60(%rbp)
movsd -0x20(%rbp), %xmm0
movsd %xmm0, -0x70(%rbp)
movsd 0x11c56(%rip), %xmm0    # 0x327a8
ucomisd -0x60(%rbp), %xmm0
jbe 0x20b94
movsd -0x60(%rbp), %xmm1
mulsd -0x68(%rbp), %xmm1
movsd 0x11c65(%rip), %xmm0    # 0x327d0
ucomisd %xmm1, %xmm0
jae 0x20b8a
cmpl $0x0, -0x3c(%rbp)
je 0x20b8f
movsd -0x78(%rbp), %xmm0
movsd 0x11c54(%rip), %xmm1    # 0x327d8
ucomisd %xmm1, %xmm0
jbe 0x20b8f
jmp 0x20d00
jmp 0x20feb
movsd -0x58(%rbp), %xmm0
ucomisd -0x60(%rbp), %xmm0
jbe 0x20bce
movsd 0x11c08(%rip), %xmm0    # 0x327b0
ucomisd -0x60(%rbp), %xmm0
jae 0x20bc7
movsd -0x78(%rbp), %xmm0
movsd 0x11bfc(%rip), %xmm1    # 0x327b8
mulsd -0x60(%rbp), %xmm1
ucomisd %xmm1, %xmm0
jbe 0x20bcc
jmp 0x20ee6
jmp 0x20c03
movsd 0x11bda(%rip), %xmm0    # 0x327b0
ucomisd -0x58(%rbp), %xmm0
jb 0x20be2
jmp 0x20ee6
movsd -0x78(%rbp), %xmm0
movsd 0x11bc9(%rip), %xmm1    # 0x327b8
mulsd -0x58(%rbp), %xmm1
ucomisd %xmm1, %xmm0
jbe 0x20bff
jmp 0x20ee6
jmp 0x20c01
jmp 0x20c03
jmp 0x20c05
movsd -0x58(%rbp), %xmm0
movsd -0x60(%rbp), %xmm1
movsd -0x78(%rbp), %xmm2
movsd 0x11b94(%rip), %xmm3    # 0x327b0
mulsd -0x80(%rbp), %xmm3
movl -0x3c(%rbp), %edi
callq 0x224f0
movq -0x28(%rbp), %rax
movsd %xmm0, (%rax)
cmpl $0x0, -0x3c(%rbp)
je 0x20cc7
movq -0x28(%rbp), %rax
movsd (%rax), %xmm0
movsd 0x11b75(%rip), %xmm1    # 0x327c0
ucomisd %xmm1, %xmm0
jbe 0x20c84
movq -0x28(%rbp), %rax
movsd (%rax), %xmm0
callq 0x216d0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
callq 0x2250
movsd %xmm0, -0x128(%rbp)
jmp 0x20cb5
movq -0x28(%rbp), %rax
movsd (%rax), %xmm0
callq 0x2560
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
callq 0x2230
movsd %xmm0, -0x128(%rbp)
movsd -0x128(%rbp), %xmm0
movsd %xmm0, -0x130(%rbp)
jmp 0x20ceb
movq -0x28(%rbp), %rax
movsd 0x1092d(%rip), %xmm0    # 0x31600
subsd (%rax), %xmm0
movsd 0x10921(%rip), %xmm1    # 0x31600
addsd %xmm1, %xmm0
movsd %xmm0, -0x130(%rbp)
movsd -0x130(%rbp), %xmm0
movq -0x30(%rbp), %rax
movsd %xmm0, (%rax)
jmp 0x2146e
movsd -0x58(%rbp), %xmm0
movsd -0x60(%rbp), %xmm1
movsd -0x68(%rbp), %xmm2
movsd -0x80(%rbp), %xmm3
movl -0x3c(%rbp), %edi
callq 0x22ed0
movq -0x28(%rbp), %rax
movsd %xmm0, (%rax)
cmpl $0x0, -0x3c(%rbp)
je 0x20dba
movq -0x28(%rbp), %rax
movsd (%rax), %xmm0
movsd 0x11a82(%rip), %xmm1    # 0x327c0
ucomisd %xmm1, %xmm0
jbe 0x20d77
movq -0x28(%rbp), %rax
movsd (%rax), %xmm0
callq 0x216d0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
callq 0x2250
movsd %xmm0, -0x138(%rbp)
jmp 0x20da8
movq -0x28(%rbp), %rax
movsd (%rax), %xmm0
callq 0x2560
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
callq 0x2230
movsd %xmm0, -0x138(%rbp)
movsd -0x138(%rbp), %xmm0
movsd %xmm0, -0x140(%rbp)
jmp 0x20dde
movq -0x28(%rbp), %rax
movsd 0x1083a(%rip), %xmm0    # 0x31600
subsd (%rax), %xmm0
movsd 0x1082e(%rip), %xmm1    # 0x31600
addsd %xmm1, %xmm0
movsd %xmm0, -0x140(%rbp)
movsd -0x140(%rbp), %xmm0
movq -0x30(%rbp), %rax
movsd %xmm0, (%rax)
jmp 0x2146e
movsd -0x60(%rbp), %xmm0
movsd -0x58(%rbp), %xmm1
movsd -0x70(%rbp), %xmm2
movsd -0x80(%rbp), %xmm3
movl -0x3c(%rbp), %edi
callq 0x22ed0
movq -0x30(%rbp), %rax
movsd %xmm0, (%rax)
cmpl $0x0, -0x3c(%rbp)
je 0x20ead
movq -0x30(%rbp), %rax
movsd (%rax), %xmm0
movsd 0x1198f(%rip), %xmm1    # 0x327c0
ucomisd %xmm1, %xmm0
jbe 0x20e6a
movq -0x30(%rbp), %rax
movsd (%rax), %xmm0
callq 0x216d0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
callq 0x2250
movsd %xmm0, -0x148(%rbp)
jmp 0x20e9b
movq -0x30(%rbp), %rax
movsd (%rax), %xmm0
callq 0x2560
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
callq 0x2230
movsd %xmm0, -0x148(%rbp)
movsd -0x148(%rbp), %xmm0
movsd %xmm0, -0x150(%rbp)
jmp 0x20ed1
movq -0x30(%rbp), %rax
movsd 0x10747(%rip), %xmm0    # 0x31600
subsd (%rax), %xmm0
movsd 0x1073b(%rip), %xmm1    # 0x31600
addsd %xmm1, %xmm0
movsd %xmm0, -0x150(%rbp)
movsd -0x150(%rbp), %xmm0
movq -0x28(%rbp), %rax
movsd %xmm0, (%rax)
jmp 0x2146e
movsd -0x58(%rbp), %xmm0
movsd -0x60(%rbp), %xmm1
movsd -0x68(%rbp), %xmm2
movsd -0x70(%rbp), %xmm3
movsd -0x78(%rbp), %xmm4
movsd 0x118c1(%rip), %xmm5    # 0x327c8
mulsd -0x80(%rbp), %xmm5
movl -0x3c(%rbp), %edi
callq 0x237a0
movq -0x28(%rbp), %rax
movsd %xmm0, (%rax)
cmpl $0x0, -0x3c(%rbp)
je 0x20fb2
movq -0x28(%rbp), %rax
movsd (%rax), %xmm0
movsd 0x1188a(%rip), %xmm1    # 0x327c0
ucomisd %xmm1, %xmm0
jbe 0x20f6f
movq -0x28(%rbp), %rax
movsd (%rax), %xmm0
callq 0x216d0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
callq 0x2250
movsd %xmm0, -0x158(%rbp)
jmp 0x20fa0
movq -0x28(%rbp), %rax
movsd (%rax), %xmm0
callq 0x2560
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
callq 0x2230
movsd %xmm0, -0x158(%rbp)
movsd -0x158(%rbp), %xmm0
movsd %xmm0, -0x160(%rbp)
jmp 0x20fd6
movq -0x28(%rbp), %rax
movsd 0x10642(%rip), %xmm0    # 0x31600
subsd (%rax), %xmm0
movsd 0x10636(%rip), %xmm1    # 0x31600
addsd %xmm1, %xmm0
movsd %xmm0, -0x160(%rbp)
movsd -0x160(%rbp), %xmm0
movq -0x30(%rbp), %rax
movsd %xmm0, (%rax)
jmp 0x2146e
cvttsd2si -0x60(%rbp), %eax
movl %eax, -0x44(%rbp)
cvtsi2sdl -0x44(%rbp), %xmm1
movsd -0x60(%rbp), %xmm0
subsd %xmm1, %xmm0
movsd %xmm0, -0x60(%rbp)
movsd -0x60(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x2102c
jp 0x2102c
movl -0x44(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x44(%rbp)
movsd 0x105d1(%rip), %xmm0    # 0x315f8
movsd %xmm0, -0x60(%rbp)
movsd -0x60(%rbp), %xmm0
movsd -0x58(%rbp), %xmm1
movsd -0x70(%rbp), %xmm2
movsd -0x68(%rbp), %xmm3
movl -0x44(%rbp), %edi
movsd -0x80(%rbp), %xmm4
xorl %esi, %esi
callq 0x219a0
movq -0x28(%rbp), %rax
movsd %xmm0, (%rax)
movq -0x28(%rbp), %rax
movsd 0x1177d(%rip), %xmm0    # 0x327e0
ucomisd (%rax), %xmm0
jbe 0x21083
cmpl $0x0, -0x3c(%rbp)
je 0x21083
cvtsi2sdl -0x44(%rbp), %xmm0
addsd -0x60(%rbp), %xmm0
movsd %xmm0, -0x60(%rbp)
jmp 0x20d00
movsd 0x11745(%rip), %xmm0    # 0x327d0
ucomisd -0x68(%rbp), %xmm0
jb 0x210be
movsd -0x58(%rbp), %xmm0
movsd -0x60(%rbp), %xmm1
movsd -0x68(%rbp), %xmm2
movsd -0x80(%rbp), %xmm3
xorl %edi, %edi
callq 0x22ed0
movq -0x28(%rbp), %rax
addsd (%rax), %xmm0
movsd %xmm0, (%rax)
jmp 0x212b1
movsd 0x11702(%rip), %xmm0    # 0x327c8
ucomisd -0x58(%rbp), %xmm0
jb 0x21112
movl $0x14, -0x44(%rbp)
movsd -0x58(%rbp), %xmm0
movsd -0x60(%rbp), %xmm1
movsd -0x68(%rbp), %xmm2
movsd -0x70(%rbp), %xmm3
movl -0x44(%rbp), %edi
movsd -0x80(%rbp), %xmm4
xorl %esi, %esi
callq 0x219a0
movq -0x28(%rbp), %rax
addsd (%rax), %xmm0
movsd %xmm0, (%rax)
cvtsi2sdl -0x44(%rbp), %xmm0
addsd -0x58(%rbp), %xmm0
movsd %xmm0, -0x58(%rbp)
movsd -0x58(%rbp), %xmm0
movsd -0x60(%rbp), %xmm1
movsd -0x68(%rbp), %xmm2
movsd -0x70(%rbp), %xmm3
movq -0x28(%rbp), %rdi
movsd 0x11696(%rip), %xmm4    # 0x327c8
mulsd -0x80(%rbp), %xmm4
leaq -0x48(%rbp), %rsi
xorl %edx, %edx
callq 0x21d50
cmpl $0x0, -0x48(%rbp)
je 0x21154
movl -0x48(%rbp), %ecx
addl $0xa, %ecx
movq -0x38(%rbp), %rax
movl %ecx, (%rax)
jmp 0x212b1
movsd -0x8(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x21178
jp 0x21178
movq -0x38(%rbp), %rax
movl $0x6, (%rax)
jmp 0x214a6
jmp 0x2117a
movl -0x3c(%rbp), %eax
movsd 0x115fb(%rip), %xmm0    # 0x32780
xorps %xmm1, %xmm1
movsd %xmm1, -0x170(%rbp)
cmpl $0x0, %eax
movsd %xmm0, -0x168(%rbp)
jne 0x211ad
movsd -0x170(%rbp), %xmm0
movsd %xmm0, -0x168(%rbp)
movsd -0x168(%rbp), %xmm0
movq -0x28(%rbp), %rax
movsd %xmm0, (%rax)
movl -0x3c(%rbp), %eax
xorps %xmm0, %xmm0
movsd 0x1042d(%rip), %xmm1    # 0x315f8
movsd %xmm1, -0x180(%rbp)
cmpl $0x0, %eax
movsd %xmm0, -0x178(%rbp)
jne 0x211f0
movsd -0x180(%rbp), %xmm0
movsd %xmm0, -0x178(%rbp)
movsd -0x178(%rbp), %xmm0
movq -0x30(%rbp), %rax
movsd %xmm0, (%rax)
jmp 0x214a6
movsd -0x10(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x21224
jp 0x21224
movq -0x38(%rbp), %rax
movl $0x7, (%rax)
jmp 0x214a6
jmp 0x21226
movl -0x3c(%rbp), %eax
xorps %xmm0, %xmm0
movsd 0x103c4(%rip), %xmm1    # 0x315f8
movsd %xmm1, -0x190(%rbp)
cmpl $0x0, %eax
movsd %xmm0, -0x188(%rbp)
jne 0x21259
movsd -0x190(%rbp), %xmm0
movsd %xmm0, -0x188(%rbp)
movsd -0x188(%rbp), %xmm0
movq -0x28(%rbp), %rax
movsd %xmm0, (%rax)
movl -0x3c(%rbp), %eax
movsd 0x1150c(%rip), %xmm0    # 0x32780
xorps %xmm1, %xmm1
movsd %xmm1, -0x1a0(%rbp)
cmpl $0x0, %eax
movsd %xmm0, -0x198(%rbp)
jne 0x2129c
movsd -0x1a0(%rbp), %xmm0
movsd %xmm0, -0x198(%rbp)
movsd -0x198(%rbp), %xmm0
movq -0x30(%rbp), %rax
movsd %xmm0, (%rax)
jmp 0x214a6
cmpl $0x0, -0x3c(%rbp)
je 0x212fa
movq -0x28(%rbp), %rax
movsd (%rax), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
callq 0x2230
movq -0x30(%rbp), %rax
movsd %xmm0, (%rax)
movq -0x28(%rbp), %rax
movsd (%rax), %xmm0
callq 0x2250
movq -0x28(%rbp), %rax
movsd %xmm0, (%rax)
jmp 0x2131e
movq -0x28(%rbp), %rax
movsd 0x102fa(%rip), %xmm0    # 0x31600
subsd (%rax), %xmm0
movsd 0x102ee(%rip), %xmm1    # 0x31600
addsd %xmm1, %xmm0
movq -0x30(%rbp), %rax
movsd %xmm0, (%rax)
jmp 0x2146e
cmpl $0x0, -0x3c(%rbp)
je 0x2136c
movq -0x30(%rbp), %rax
movsd (%rax), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
callq 0x2230
movq -0x28(%rbp), %rax
movsd %xmm0, (%rax)
movq -0x30(%rbp), %rax
movsd (%rax), %xmm0
callq 0x2250
movq -0x30(%rbp), %rax
movsd %xmm0, (%rax)
jmp 0x21390
movq -0x30(%rbp), %rax
movsd 0x10288(%rip), %xmm0    # 0x31600
subsd (%rax), %xmm0
movsd 0x1027c(%rip), %xmm1    # 0x31600
addsd %xmm1, %xmm0
movq -0x28(%rbp), %rax
movsd %xmm0, (%rax)
jmp 0x2146e
cmpl $0x0, -0x3c(%rbp)
je 0x2142b
movq -0x30(%rbp), %rax
movsd (%rax), %xmm0
movsd 0x11411(%rip), %xmm1    # 0x327c0
ucomisd %xmm1, %xmm0
jbe 0x213e8
movq -0x30(%rbp), %rax
movsd (%rax), %xmm0
callq 0x216d0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
callq 0x2250
movsd %xmm0, -0x1a8(%rbp)
jmp 0x21419
movq -0x30(%rbp), %rax
movsd (%rax), %xmm0
callq 0x2560
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
callq 0x2230
movsd %xmm0, -0x1a8(%rbp)
movsd -0x1a8(%rbp), %xmm0
movq -0x28(%rbp), %rax
movsd %xmm0, (%rax)
jmp 0x2146c
movq -0x30(%rbp), %rax
movsd (%rax), %xmm0
callq 0x22f0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movq -0x28(%rbp), %rax
movsd %xmm0, (%rax)
movq -0x30(%rbp), %rax
movsd (%rax), %xmm0
callq 0x2560
movq -0x30(%rbp), %rax
movsd %xmm0, (%rax)
jmp 0x2146e
cmpl $0x0, -0x40(%rbp)
je 0x214a4
movq -0x28(%rbp), %rax
movsd (%rax), %xmm0
movsd %xmm0, -0x90(%rbp)
movq -0x30(%rbp), %rax
movsd (%rax), %xmm0
movq -0x28(%rbp), %rax
movsd %xmm0, (%rax)
movsd -0x90(%rbp), %xmm0
movq -0x30(%rbp), %rax
movsd %xmm0, (%rax)
jmp 0x214a6
addq $0x1b0, %rsp            # imm = 0x1B0
popq %rbp
retq
nop