// File: /workspace/github_c_makefile_star2_O0/olcaytaner[P]Isell/distributions.c
// Function: f_distribution
double f_distribution(double F,int freedom1,int freedom2)
{/*Finds the probability*/
 int i, j;
 int a, b;
 double  w, y, z, d, p;
 if (F < F_EPSILON || freedom1 < 1 || freedom2 < 1)
   return (1.0);
 if (freedom1%2)
   a=1;
 else
   a=2;
 if (freedom2%2)
   b=1;
 else
   b=2;
 w = (F * freedom1) / freedom2;
 z = 1.0 / (1.0 + w);
 if (a == 1)
   if (b == 1)
    {
     p = sqrt (w);
     y = I_PI; /* 1 / 3.14159 */
     d = y * z / p;
     p = 2.0 * y * atan (p);
    }
   else
    {
     p = sqrt (w * z);
     d = 0.5 * p * z / w;
    }
 else
   if (b == 1)
    {
     p = sqrt (z);
     d = 0.5 * z * p;
     p = 1.0 - p;
    }
   else
    {
     d = z * z;
     p = w * z;
    }
 y = 2.0 * w / z;
 for (j = b + 2; j <= freedom2; j += 2)
  {
   d *= (1.0 + a / (j - 2.0)) * z;
   if (a==1)
     p = p + d * y / (j - 1.0);
   else
     p = (p + w) * z;
  }
 y = w * z;
 z = 2.0 / z;
 b = freedom2 - 2;
 for (i = a + 2; i <= freedom1; i += 2)
  {
   j = i + b;
   d *= y * j / (i - 2.0);
   p -= z * d / j;
  }
 if (p < 0.0)
   p = 0.0;
 else
   if (p > 1.0)
     p = 1.0;
 return (1.0-p);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
movsd %xmm0, -0x10(%rbp)
movl %edi, -0x14(%rbp)
movl %esi, -0x18(%rbp)
movsd 0xb6935(%rip), %xmm0    # 0xe4740
ucomisd -0x10(%rbp), %xmm0
ja 0x2de1e
cmpl $0x1, -0x14(%rbp)
jl 0x2de1e
cmpl $0x1, -0x18(%rbp)
jge 0x2de30
movsd 0xb41f2(%rip), %xmm0    # 0xe2018
movsd %xmm0, -0x8(%rbp)
jmp 0x2e14a
movl -0x14(%rbp), %eax
movl $0x2, %ecx
cltd
idivl %ecx
cmpl $0x0, %edx
je 0x2de49
movl $0x1, -0x24(%rbp)
jmp 0x2de50
movl $0x2, -0x24(%rbp)
movl -0x18(%rbp), %eax
movl $0x2, %ecx
cltd
idivl %ecx
cmpl $0x0, %edx
je 0x2de69
movl $0x1, -0x28(%rbp)
jmp 0x2de70
movl $0x2, -0x28(%rbp)
movsd -0x10(%rbp), %xmm0
cvtsi2sdl -0x14(%rbp), %xmm1
mulsd %xmm1, %xmm0
cvtsi2sdl -0x18(%rbp), %xmm1
divsd %xmm1, %xmm0
movsd %xmm0, -0x30(%rbp)
movsd 0xb4184(%rip), %xmm1    # 0xe2018
addsd -0x30(%rbp), %xmm1
movsd 0xb4177(%rip), %xmm0    # 0xe2018
divsd %xmm1, %xmm0
movsd %xmm0, -0x40(%rbp)
cmpl $0x1, -0x24(%rbp)
jne 0x2df4b
cmpl $0x1, -0x28(%rbp)
jne 0x2df19
movsd -0x30(%rbp), %xmm0
callq 0x42a0
movsd %xmm0, -0x50(%rbp)
movsd 0xb6877(%rip), %xmm0    # 0xe4748
movsd %xmm0, -0x38(%rbp)
movsd -0x38(%rbp), %xmm0
mulsd -0x40(%rbp), %xmm0
divsd -0x50(%rbp), %xmm0
movsd %xmm0, -0x48(%rbp)
movsd 0xb4dae(%rip), %xmm0    # 0xe2ca0
mulsd -0x38(%rbp), %xmm0
movsd %xmm0, -0x58(%rbp)
movsd -0x50(%rbp), %xmm0
callq 0x4140
movaps %xmm0, %xmm1
movsd -0x58(%rbp), %xmm0
mulsd %xmm1, %xmm0
movsd %xmm0, -0x50(%rbp)
jmp 0x2df49
movsd -0x30(%rbp), %xmm0
mulsd -0x40(%rbp), %xmm0
callq 0x42a0
movsd %xmm0, -0x50(%rbp)
movsd 0xb4a83(%rip), %xmm0    # 0xe29b8
mulsd -0x50(%rbp), %xmm0
mulsd -0x40(%rbp), %xmm0
divsd -0x30(%rbp), %xmm0
movsd %xmm0, -0x48(%rbp)
jmp 0x2dfab
cmpl $0x1, -0x28(%rbp)
jne 0x2df8b
movsd -0x40(%rbp), %xmm0
callq 0x42a0
movsd %xmm0, -0x50(%rbp)
movsd 0xb4a50(%rip), %xmm0    # 0xe29b8
mulsd -0x40(%rbp), %xmm0
mulsd -0x50(%rbp), %xmm0
movsd %xmm0, -0x48(%rbp)
movsd 0xb4099(%rip), %xmm0    # 0xe2018
subsd -0x50(%rbp), %xmm0
movsd %xmm0, -0x50(%rbp)
jmp 0x2dfa9
movsd -0x40(%rbp), %xmm0
mulsd -0x40(%rbp), %xmm0
movsd %xmm0, -0x48(%rbp)
movsd -0x30(%rbp), %xmm0
mulsd -0x40(%rbp), %xmm0
movsd %xmm0, -0x50(%rbp)
jmp 0x2dfab
movsd 0xb4ced(%rip), %xmm0    # 0xe2ca0
mulsd -0x30(%rbp), %xmm0
divsd -0x40(%rbp), %xmm0
movsd %xmm0, -0x38(%rbp)
movl -0x28(%rbp), %eax
addl $0x2, %eax
movl %eax, -0x20(%rbp)
movl -0x20(%rbp), %eax
cmpl -0x18(%rbp), %eax
jg 0x2e065
cvtsi2sdl -0x24(%rbp), %xmm1
cvtsi2sdl -0x20(%rbp), %xmm0
movsd 0xb4cb7(%rip), %xmm2    # 0xe2ca0
subsd %xmm2, %xmm0
divsd %xmm0, %xmm1
movsd 0xb401f(%rip), %xmm0    # 0xe2018
addsd %xmm1, %xmm0
mulsd -0x40(%rbp), %xmm0
mulsd -0x48(%rbp), %xmm0
movsd %xmm0, -0x48(%rbp)
cmpl $0x1, -0x24(%rbp)
jne 0x2e041
movsd -0x50(%rbp), %xmm0
movsd -0x48(%rbp), %xmm1
mulsd -0x38(%rbp), %xmm1
cvtsi2sdl -0x20(%rbp), %xmm2
movsd 0xb3fea(%rip), %xmm3    # 0xe2018
subsd %xmm3, %xmm2
divsd %xmm2, %xmm1
addsd %xmm1, %xmm0
movsd %xmm0, -0x50(%rbp)
jmp 0x2e055
movsd -0x50(%rbp), %xmm0
addsd -0x30(%rbp), %xmm0
mulsd -0x40(%rbp), %xmm0
movsd %xmm0, -0x50(%rbp)
jmp 0x2e057
movl -0x20(%rbp), %eax
addl $0x2, %eax
movl %eax, -0x20(%rbp)
jmp 0x2dfcb
movsd -0x30(%rbp), %xmm0
mulsd -0x40(%rbp), %xmm0
movsd %xmm0, -0x38(%rbp)
movsd 0xb4c24(%rip), %xmm0    # 0xe2ca0
divsd -0x40(%rbp), %xmm0
movsd %xmm0, -0x40(%rbp)
movl -0x18(%rbp), %eax
subl $0x2, %eax
movl %eax, -0x28(%rbp)
movl -0x24(%rbp), %eax
addl $0x2, %eax
movl %eax, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
cmpl -0x14(%rbp), %eax
jg 0x2e102
movl -0x1c(%rbp), %eax
addl -0x28(%rbp), %eax
movl %eax, -0x20(%rbp)
movsd -0x38(%rbp), %xmm0
cvtsi2sdl -0x20(%rbp), %xmm1
mulsd %xmm1, %xmm0
cvtsi2sdl -0x1c(%rbp), %xmm1
movsd 0xb4bdc(%rip), %xmm2    # 0xe2ca0
subsd %xmm2, %xmm1
divsd %xmm1, %xmm0
mulsd -0x48(%rbp), %xmm0
movsd %xmm0, -0x48(%rbp)
movsd -0x40(%rbp), %xmm1
mulsd -0x48(%rbp), %xmm1
cvtsi2sdl -0x20(%rbp), %xmm0
divsd %xmm0, %xmm1
movsd -0x50(%rbp), %xmm0
subsd %xmm1, %xmm0
movsd %xmm0, -0x50(%rbp)
movl -0x1c(%rbp), %eax
addl $0x2, %eax
movl %eax, -0x1c(%rbp)
jmp 0x2e098
xorps %xmm0, %xmm0
ucomisd -0x50(%rbp), %xmm0
jbe 0x2e116
xorps %xmm0, %xmm0
movsd %xmm0, -0x50(%rbp)
jmp 0x2e138
movsd -0x50(%rbp), %xmm0
movsd 0xb3ef5(%rip), %xmm1    # 0xe2018
ucomisd %xmm1, %xmm0
jbe 0x2e136
movsd 0xb3ee7(%rip), %xmm0    # 0xe2018
movsd %xmm0, -0x50(%rbp)
jmp 0x2e138
movsd 0xb3ed8(%rip), %xmm0    # 0xe2018
subsd -0x50(%rbp), %xmm0
movsd %xmm0, -0x8(%rbp)
movsd -0x8(%rbp), %xmm0
addq $0x60, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)