// File: /workspace/github_c_makefile_star2_O0/dapogon[P]cellcoal/src/cellcoal.c
// Function: RandomGamma2
double RandomGamma2 (double s, long int *seed)
{
    /* Random standard gamma for s>1
     Best's (1978) t distribution method
     */
    double			r ,d, f, g, x;
    static double	b, h, ss=0;
	
    if (s!=ss)
    {
        b  = s-1.0;
        h  = sqrt(3.0*s-0.75);
        ss = s;
    }
    for (;;)
    {
        r = RandomUniform(seed);
        g = r-r*r;
        f = (r-0.5)*h/sqrt(g);
        x = b+f;
        if (x <= 0.0)
            continue;
        r = RandomUniform(seed);
        d = 64*r*r*g*g*g;
        if (d*x < x-2.0*f*f || log(d) < 2*(b*log(x/b)-f))
            break;
    }
    return (x);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movsd %xmm0, -0x8(%rbp)
movq %rdi, -0x10(%rbp)
movsd -0x8(%rbp), %xmm0
ucomisd 0x35932(%rip), %xmm0    # 0x4f9c0
jne 0x1a094
jp 0x1a094
jmp 0x1a0e4
movsd -0x8(%rbp), %xmm0
movsd 0x24f7f(%rip), %xmm1    # 0x3f020
subsd %xmm1, %xmm0
movsd %xmm0, 0x35903(%rip)    # 0x4f9b0
movsd -0x8(%rbp), %xmm0
movsd 0x24fc6(%rip), %xmm1    # 0x3f080
mulsd %xmm1, %xmm0
movsd 0x24fc2(%rip), %xmm1    # 0x3f088
addsd %xmm1, %xmm0
callq 0x22a0
movsd %xmm0, 0x358e1(%rip)    # 0x4f9b8
movsd -0x8(%rbp), %xmm0
movsd %xmm0, 0x358dc(%rip)    # 0x4f9c0
jmp 0x1a0e6
movq -0x10(%rbp), %rdi
callq 0xa500
movsd %xmm0, -0x18(%rbp)
movsd -0x18(%rbp), %xmm1
movsd -0x18(%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, -0x30(%rbp)
movsd -0x18(%rbp), %xmm0
movsd 0x24edc(%rip), %xmm1    # 0x3f010
subsd %xmm1, %xmm0
mulsd 0x35878(%rip), %xmm0    # 0x4f9b8
movsd %xmm0, -0x40(%rbp)
movsd -0x30(%rbp), %xmm0
callq 0x22a0
movaps %xmm0, %xmm1
movsd -0x40(%rbp), %xmm0
divsd %xmm1, %xmm0
movsd %xmm0, -0x28(%rbp)
movsd 0x35848(%rip), %xmm0    # 0x4f9b0
addsd -0x28(%rbp), %xmm0
movsd %xmm0, -0x38(%rbp)
xorps %xmm0, %xmm0
ucomisd -0x38(%rbp), %xmm0
jb 0x1a181
jmp 0x1a0e6
movq -0x10(%rbp), %rdi
callq 0xa500
movsd %xmm0, -0x18(%rbp)
movsd 0x24ef9(%rip), %xmm0    # 0x3f090
mulsd -0x18(%rbp), %xmm0
mulsd -0x18(%rbp), %xmm0
mulsd -0x30(%rbp), %xmm0
mulsd -0x30(%rbp), %xmm0
mulsd -0x30(%rbp), %xmm0
movsd %xmm0, -0x20(%rbp)
movsd -0x20(%rbp), %xmm1
mulsd -0x38(%rbp), %xmm1
movsd -0x38(%rbp), %xmm2
movsd 0x24e7c(%rip), %xmm0    # 0x3f048
mulsd -0x28(%rbp), %xmm0
movsd -0x28(%rbp), %xmm3
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
mulsd %xmm3, %xmm0
addsd %xmm2, %xmm0
ucomisd %xmm1, %xmm0
ja 0x1a26c
movsd -0x20(%rbp), %xmm0
callq 0x2150
movsd %xmm0, -0x48(%rbp)
movsd 0x3579e(%rip), %xmm0    # 0x4f9b0
movsd %xmm0, -0x50(%rbp)
movsd -0x38(%rbp), %xmm0
divsd 0x3578c(%rip), %xmm0    # 0x4f9b0
callq 0x2150
movsd -0x50(%rbp), %xmm2
movsd -0x48(%rbp), %xmm1
movaps %xmm0, %xmm3
movsd -0x28(%rbp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
mulsd %xmm3, %xmm2
addsd %xmm0, %xmm2
movsd 0x24de6(%rip), %xmm0    # 0x3f048
mulsd %xmm2, %xmm0
ucomisd %xmm1, %xmm0
jbe 0x1a26e
jmp 0x1a273
jmp 0x1a0e6
movsd -0x38(%rbp), %xmm0
addq $0x50, %rsp
popq %rbp
retq
nop