// File: /workspace/github_c_makefile_star2_O0/c-zhou[P]yahs/binomlite.c
// Function: qnorm
double qnorm(double p, double mu, double sigma, int lower_tail, int log_p)
{
    double p_, q, r, val;

    if(sigma == 0)
        return mu;

    p_ = R_DT_qIv(p);/* real lower_tail prob. p */
    q = p_ - 0.5;
/*-- use AS 241 --- */
/* double ppnd16_(double *p, long *ifault)*/
/*      ALGORITHM AS241  APPL. STATIST. (1988) VOL. 37, NO. 3

        Produces the normal deviate Z corresponding to a given lower
        tail area of P; Z is accurate to about 1 part in 10**16.

        (original fortran code used PARAMETER(..) for the coefficients
         and provided hash codes for checking them...)
*/
    if (fabs(q) <= .425) {/* 0.075 <= p <= 0.925 */
        r = .180625 - q * q;
        val =
            q * (((((((r * 2509.0809287301226727 +
                       33430.575583588128105) * r + 67265.770927008700853) * r +
                     45921.953931549871457) * r + 13731.693765509461125) * r +
                   1971.5909503065514427) * r + 133.14166789178437745) * r +
                 3.387132872796366608)
            / (((((((r * 5226.495278852854561 +
                     28729.085735721942674) * r + 39307.89580009271061) * r +
                   21213.794301586595867) * r + 5394.1960214247511077) * r +
                 687.1870074920579083) * r + 42.313330701600911252) * r + 1.);
    } else { /* closer than 0.075 from {0,1} boundary */
        /* r = min(p, 1-p) < 0.075 */
        if (q > 0)
            r = R_DT_CIv(p); /* 1-p */
        else
            r = p_;/* = R_DT_Iv(p) ^=  p */

        r = sqrt(- ((log_p &&
                        ((lower_tail && q <= 0) || (!lower_tail && q > 0))) ?
                    p : /* else */ log(r)));
        /* r = sqrt(-log(r))  <==>  min(p, 1-p) = exp( - r^2 ) */
        if (r <= 5.) { /* <==> min(p,1-p) >= exp(-25) ~= 1.3888e-11 */
            r += -1.6;
            val = (((((((r * 7.7454501427834140764e-4 +
                       .0227238449892691845833) * r + .24178072517745061177) *
                     r + 1.27045825245236838258) * r +
                    3.64784832476320460504) * r + 5.7694972214606914055) *
                  r + 4.6303378461565452959) * r +
                 1.42343711074968357734)
                / (((((((r *
                         1.05075007164441684324e-9 + 5.475938084995344946e-4) *
                        r + .0151986665636164571966) * r +
                       .14810397642748007459) * r + .68976733498510000455) *
                     r + 1.6763848301838038494) * r +
                    2.05319162663775882187) * r + 1.);
        } else { /* very close to  0 or 1 */
            r += -5.;
            val = (((((((r * 2.01033439929228813265e-7 +
                       2.71155556874348757815e-5) * r +
                      .0012426609473880784386) * r + .026532189526576123093) *
                    r + .29656057182850489123) * r +
                   1.7848265399172913358) * r + 5.4637849111641143699) *
                 r + 6.6579046435011037772)
                / (((((((r *
                         2.04426310338993978564e-15 + 1.4215117583164458887e-7)*
                        r + 1.8463183175100546818e-5) * r +
                       7.868691311456132591e-4) * r + .0148753612908506148525)
                     * r + .13692988092273580531) * r +
                    .59983220655588793769) * r + 1.);
        }

        if(q < 0.0)
            val = -val;
        /* return (q >= 0.)? r : -r ;*/
    }

    return mu + sigma * val;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x80, %rsp
movsd %xmm0, -0x10(%rbp)
movsd %xmm1, -0x18(%rbp)
movsd %xmm2, -0x20(%rbp)
movl %edi, -0x24(%rbp)
movl %esi, -0x28(%rbp)
movsd -0x20(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x23bef
jp 0x23bef
movsd -0x18(%rbp), %xmm0
movsd %xmm0, -0x8(%rbp)
jmp 0x2425c
cmpl $0x0, -0x28(%rbp)
je 0x23c3e
cmpl $0x0, -0x24(%rbp)
je 0x23c0c
movsd -0x10(%rbp), %xmm0
callq 0x2560
movsd %xmm0, -0x50(%rbp)
jmp 0x23c32
movsd -0x10(%rbp), %xmm0
callq 0x22f0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd %xmm0, -0x50(%rbp)
movsd -0x50(%rbp), %xmm0
movsd %xmm0, -0x58(%rbp)
jmp 0x23c78
cmpl $0x0, -0x24(%rbp)
je 0x23c50
movsd -0x10(%rbp), %xmm0
movsd %xmm0, -0x60(%rbp)
jmp 0x23c6e
movsd 0xd9a8(%rip), %xmm0     # 0x31600
subsd -0x10(%rbp), %xmm0
movsd 0xd99b(%rip), %xmm1     # 0x31600
addsd %xmm1, %xmm0
movsd %xmm0, -0x60(%rbp)
movsd -0x60(%rbp), %xmm0
movsd %xmm0, -0x58(%rbp)
movsd -0x58(%rbp), %xmm0
movsd %xmm0, -0x30(%rbp)
movsd -0x30(%rbp), %xmm0
movsd 0xd971(%rip), %xmm1     # 0x31600
subsd %xmm1, %xmm0
movsd %xmm0, -0x38(%rbp)
movsd -0x38(%rbp), %xmm1
movaps 0xee4c(%rip), %xmm0     # 0x32af0
pand %xmm0, %xmm1
movsd 0xebe0(%rip), %xmm0     # 0x32890
ucomisd %xmm1, %xmm0
jb 0x23e3d
movsd -0x38(%rbp), %xmm0
movsd -0x38(%rbp), %xmm1
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
mulsd %xmm1, %xmm0
movsd 0xed29(%rip), %xmm1     # 0x32a10
addsd %xmm1, %xmm0
movsd %xmm0, -0x40(%rbp)
movsd -0x38(%rbp), %xmm0
movsd -0x40(%rbp), %xmm1
movsd 0xecfe(%rip), %xmm2     # 0x32a00
mulsd %xmm2, %xmm1
movsd 0xecfa(%rip), %xmm2     # 0x32a08
addsd %xmm2, %xmm1
movsd -0x40(%rbp), %xmm2
mulsd %xmm2, %xmm1
movsd 0xecd5(%rip), %xmm2     # 0x329f8
addsd %xmm2, %xmm1
movsd -0x40(%rbp), %xmm2
mulsd %xmm2, %xmm1
movsd 0xecb8(%rip), %xmm2     # 0x329f0
addsd %xmm2, %xmm1
movsd -0x40(%rbp), %xmm2
mulsd %xmm2, %xmm1
movsd 0xec9b(%rip), %xmm2     # 0x329e8
addsd %xmm2, %xmm1
movsd -0x40(%rbp), %xmm2
mulsd %xmm2, %xmm1
movsd 0xec7e(%rip), %xmm2     # 0x329e0
addsd %xmm2, %xmm1
movsd -0x40(%rbp), %xmm2
mulsd %xmm2, %xmm1
movsd 0xec61(%rip), %xmm2     # 0x329d8
addsd %xmm2, %xmm1
movsd -0x40(%rbp), %xmm2
mulsd %xmm2, %xmm1
movsd 0xec44(%rip), %xmm2     # 0x329d0
addsd %xmm2, %xmm1
mulsd %xmm1, %xmm0
movsd -0x40(%rbp), %xmm1
movsd 0xec1f(%rip), %xmm2     # 0x329c0
mulsd %xmm2, %xmm1
movsd 0xec1b(%rip), %xmm2     # 0x329c8
addsd %xmm2, %xmm1
movsd -0x40(%rbp), %xmm2
mulsd %xmm2, %xmm1
movsd 0xebf6(%rip), %xmm2     # 0x329b8
addsd %xmm2, %xmm1
movsd -0x40(%rbp), %xmm2
mulsd %xmm2, %xmm1
movsd 0xebd9(%rip), %xmm2     # 0x329b0
addsd %xmm2, %xmm1
movsd -0x40(%rbp), %xmm2
mulsd %xmm2, %xmm1
movsd 0xebbc(%rip), %xmm2     # 0x329a8
addsd %xmm2, %xmm1
movsd -0x40(%rbp), %xmm2
mulsd %xmm2, %xmm1
movsd 0xeb9f(%rip), %xmm2     # 0x329a0
addsd %xmm2, %xmm1
movsd -0x40(%rbp), %xmm2
mulsd %xmm2, %xmm1
movsd 0xeb82(%rip), %xmm2     # 0x32998
addsd %xmm2, %xmm1
movsd -0x40(%rbp), %xmm2
mulsd %xmm2, %xmm1
movsd 0xd7cd(%rip), %xmm2     # 0x315f8
addsd %xmm2, %xmm1
divsd %xmm1, %xmm0
movsd %xmm0, -0x48(%rbp)
jmp 0x24240
movsd -0x38(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x23ee4
cmpl $0x0, -0x28(%rbp)
je 0x23e9e
cmpl $0x0, -0x24(%rbp)
je 0x23e83
movsd -0x10(%rbp), %xmm0
callq 0x22f0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd %xmm0, -0x68(%rbp)
jmp 0x23e92
movsd -0x10(%rbp), %xmm0
callq 0x2560
movsd %xmm0, -0x68(%rbp)
movsd -0x68(%rbp), %xmm0
movsd %xmm0, -0x70(%rbp)
jmp 0x23ed8
cmpl $0x0, -0x24(%rbp)
je 0x23ec4
movsd 0xd754(%rip), %xmm0     # 0x31600
subsd -0x10(%rbp), %xmm0
movsd 0xd747(%rip), %xmm1     # 0x31600
addsd %xmm1, %xmm0
movsd %xmm0, -0x78(%rbp)
jmp 0x23ece
movsd -0x10(%rbp), %xmm0
movsd %xmm0, -0x78(%rbp)
movsd -0x78(%rbp), %xmm0
movsd %xmm0, -0x70(%rbp)
movsd -0x70(%rbp), %xmm0
movsd %xmm0, -0x40(%rbp)
jmp 0x23eee
movsd -0x30(%rbp), %xmm0
movsd %xmm0, -0x40(%rbp)
cmpl $0x0, -0x28(%rbp)
je 0x23f24
cmpl $0x0, -0x24(%rbp)
je 0x23f04
xorps %xmm0, %xmm0
ucomisd -0x38(%rbp), %xmm0
jae 0x23f18
cmpl $0x0, -0x24(%rbp)
jne 0x23f24
movsd -0x38(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x23f24
movsd -0x10(%rbp), %xmm0
movsd %xmm0, -0x80(%rbp)
jmp 0x23f33
movsd -0x40(%rbp), %xmm0
callq 0x2250
movsd %xmm0, -0x80(%rbp)
movsd -0x80(%rbp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
callq 0x2500
movsd %xmm0, -0x40(%rbp)
movsd 0xe8b7(%rip), %xmm0     # 0x32818
ucomisd -0x40(%rbp), %xmm0
jb 0x240c2
movsd 0xea1c(%rip), %xmm0     # 0x32990
addsd -0x40(%rbp), %xmm0
movsd %xmm0, -0x40(%rbp)
movsd -0x40(%rbp), %xmm0
movsd 0xe9f5(%rip), %xmm1     # 0x32980
mulsd %xmm1, %xmm0
movsd 0xe9f1(%rip), %xmm1     # 0x32988
addsd %xmm1, %xmm0
movsd -0x40(%rbp), %xmm1
mulsd %xmm1, %xmm0
movsd 0xe9cc(%rip), %xmm1     # 0x32978
addsd %xmm1, %xmm0
movsd -0x40(%rbp), %xmm1
mulsd %xmm1, %xmm0
movsd 0xe9af(%rip), %xmm1     # 0x32970
addsd %xmm1, %xmm0
movsd -0x40(%rbp), %xmm1
mulsd %xmm1, %xmm0
movsd 0xe992(%rip), %xmm1     # 0x32968
addsd %xmm1, %xmm0
movsd -0x40(%rbp), %xmm1
mulsd %xmm1, %xmm0
movsd 0xe975(%rip), %xmm1     # 0x32960
addsd %xmm1, %xmm0
movsd -0x40(%rbp), %xmm1
mulsd %xmm1, %xmm0
movsd 0xe958(%rip), %xmm1     # 0x32958
addsd %xmm1, %xmm0
movsd -0x40(%rbp), %xmm1
mulsd %xmm1, %xmm0
movsd 0xe93b(%rip), %xmm1     # 0x32950
addsd %xmm1, %xmm0
movsd -0x40(%rbp), %xmm1
movsd 0xe91a(%rip), %xmm2     # 0x32940
mulsd %xmm2, %xmm1
movsd 0xe916(%rip), %xmm2     # 0x32948
addsd %xmm2, %xmm1
movsd -0x40(%rbp), %xmm2
mulsd %xmm2, %xmm1
movsd 0xe8f1(%rip), %xmm2     # 0x32938
addsd %xmm2, %xmm1
movsd -0x40(%rbp), %xmm2
mulsd %xmm2, %xmm1
movsd 0xe8d4(%rip), %xmm2     # 0x32930
addsd %xmm2, %xmm1
movsd -0x40(%rbp), %xmm2
mulsd %xmm2, %xmm1
movsd 0xe8b7(%rip), %xmm2     # 0x32928
addsd %xmm2, %xmm1
movsd -0x40(%rbp), %xmm2
mulsd %xmm2, %xmm1
movsd 0xe89a(%rip), %xmm2     # 0x32920
addsd %xmm2, %xmm1
movsd -0x40(%rbp), %xmm2
mulsd %xmm2, %xmm1
movsd 0xe87d(%rip), %xmm2     # 0x32918
addsd %xmm2, %xmm1
movsd -0x40(%rbp), %xmm2
mulsd %xmm2, %xmm1
movsd 0xd548(%rip), %xmm2     # 0x315f8
addsd %xmm2, %xmm1
divsd %xmm1, %xmm0
movsd %xmm0, -0x48(%rbp)
jmp 0x24213
movsd 0xe846(%rip), %xmm0     # 0x32910
addsd -0x40(%rbp), %xmm0
movsd %xmm0, -0x40(%rbp)
movsd -0x40(%rbp), %xmm0
movsd 0xe81f(%rip), %xmm1     # 0x32900
mulsd %xmm1, %xmm0
movsd 0xe81b(%rip), %xmm1     # 0x32908
addsd %xmm1, %xmm0
movsd -0x40(%rbp), %xmm1
mulsd %xmm1, %xmm0
movsd 0xe7f6(%rip), %xmm1     # 0x328f8
addsd %xmm1, %xmm0
movsd -0x40(%rbp), %xmm1
mulsd %xmm1, %xmm0
movsd 0xe7d9(%rip), %xmm1     # 0x328f0
addsd %xmm1, %xmm0
movsd -0x40(%rbp), %xmm1
mulsd %xmm1, %xmm0
movsd 0xe7bc(%rip), %xmm1     # 0x328e8
addsd %xmm1, %xmm0
movsd -0x40(%rbp), %xmm1
mulsd %xmm1, %xmm0
movsd 0xe79f(%rip), %xmm1     # 0x328e0
addsd %xmm1, %xmm0
movsd -0x40(%rbp), %xmm1
mulsd %xmm1, %xmm0
movsd 0xe782(%rip), %xmm1     # 0x328d8
addsd %xmm1, %xmm0
movsd -0x40(%rbp), %xmm1
mulsd %xmm1, %xmm0
movsd 0xe765(%rip), %xmm1     # 0x328d0
addsd %xmm1, %xmm0
movsd -0x40(%rbp), %xmm1
movsd 0xe744(%rip), %xmm2     # 0x328c0
mulsd %xmm2, %xmm1
movsd 0xe740(%rip), %xmm2     # 0x328c8
addsd %xmm2, %xmm1
movsd -0x40(%rbp), %xmm2
mulsd %xmm2, %xmm1
movsd 0xe71b(%rip), %xmm2     # 0x328b8
addsd %xmm2, %xmm1
movsd -0x40(%rbp), %xmm2
mulsd %xmm2, %xmm1
movsd 0xe6fe(%rip), %xmm2     # 0x328b0
addsd %xmm2, %xmm1
movsd -0x40(%rbp), %xmm2
mulsd %xmm2, %xmm1
movsd 0xe6e1(%rip), %xmm2     # 0x328a8
addsd %xmm2, %xmm1
movsd -0x40(%rbp), %xmm2
mulsd %xmm2, %xmm1
movsd 0xe6c4(%rip), %xmm2     # 0x328a0
addsd %xmm2, %xmm1
movsd -0x40(%rbp), %xmm2
mulsd %xmm2, %xmm1
movsd 0xe6a7(%rip), %xmm2     # 0x32898
addsd %xmm2, %xmm1
movsd -0x40(%rbp), %xmm2
mulsd %xmm2, %xmm1
movsd 0xd3f2(%rip), %xmm2     # 0x315f8
addsd %xmm2, %xmm1
divsd %xmm1, %xmm0
movsd %xmm0, -0x48(%rbp)
xorps %xmm0, %xmm0
ucomisd -0x38(%rbp), %xmm0
jbe 0x2423e
movsd -0x48(%rbp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd %xmm0, -0x48(%rbp)
jmp 0x24240
movsd -0x18(%rbp), %xmm1
movsd -0x20(%rbp), %xmm0
movsd -0x48(%rbp), %xmm2
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x8(%rbp)
movsd -0x8(%rbp), %xmm0
addq $0x80, %rsp
popq %rbp
retq
nopw (%rax,%rax)