// File: /workspace/github_c_makefile_star2_O0/jsh58[P]Genrich/Genrich.c
// Function: pnorm
double pnorm(double x) {
  double a[5] = {
    2.2352520354606839287,
    161.02823106855587881,
    1067.6894854603709582,
    18154.981253343561249,
    0.065682337918207449113
  };
  double b[4] = {
    47.20258190468824187,
    976.09855173777669322,
    10260.932208618978205,
    45507.789335026729956
  };
  double c[9] = {
    0.39894151208813466764,
    8.8831497943883759412,
    93.506656132177855979,
    597.27027639480026226,
    2494.5375852903726711,
    6848.1904505362823326,
    11602.651437647350124,
    9842.7148383839780218,
    1.0765576773720192317e-8
  };
  double d[8] = {
    22.266688044328115691,
    235.38790178262499861,
    1519.377599407554805,
    6485.558298266760755,
    18615.571640885098091,
    34900.952721145977266,
    38912.003286093271411,
    19685.429676859990727
  };
  double p[6] = {
    0.21589853405795699,
    0.1274011611602473639,
    0.022235277870649807,
    0.001421619193227893466,
    2.9112874951168792e-5,
    0.02307344176494017303
  };
  double q[5] = {
    1.28426009614491121,
    0.468238212480865118,
    0.0659881378689285515,
    0.00378239633202758244,
    7.29751555083966205e-5
  };

  double xden, xnum, xsq, temp;
  double y = fabs(x);
  if (y <= 0.67448975) {

    // small values of fabs(x)
    if (y > DBL_EPSILON * 0.5) {
      xsq = x * x;
      xnum = a[4] * xsq;
      xden = xsq;
      for (int i = 0; i < 3; i++) {
        xnum = (xnum + a[i]) * xsq;
        xden = (xden + b[i]) * xsq;
      }
      temp = x * (xnum + a[3]) / (xden + b[3]);
    } else
      temp = x * a[3] / b[3];
    return log(0.5 - temp);

  } else if (y <= sqrt(32.0)) {

    // slightly larger values of fabs(x)
    xnum = c[8] * y;
    xden = y;
    for (int i = 0; i < 7; i++) {
      xnum = (xnum + c[i]) * y;
      xden = (xden + d[i]) * y;
    }
    temp = (xnum + c[7]) / (xden + d[7]);
    return do_del(y, temp, x <= 0.0);

  } else if (y < 1e170) {

    // even larger values of fabs(x)
    xsq = 1.0 / (x * x);
    xnum = p[5] * xsq;
    xden = xsq;
    for (int i = 0; i < 4; i++) {
      xnum = (xnum + p[i]) * xsq;
      xden = (xden + q[i]) * xsq;
    }
    temp = xsq * (xnum + p[4]) / (xden + q[4]);
    temp = (1/sqrt(2*M_PI) - temp) / y;
    return do_del(x, temp, x <= 0.0);
  }

  // default
  return -0.0;
}

// Assembly:
subq $0x188, %rsp            # imm = 0x188
movsd %xmm0, 0x178(%rsp)
leaq 0x150(%rsp), %rdi
xorl %esi, %esi
movl $0x28, %edx
callq 0x2140
movsd 0x160e4(%rip), %xmm0    # 0x1e140
movsd %xmm0, 0x150(%rsp)
movsd 0x160cb(%rip), %xmm0    # 0x1e138
movsd %xmm0, 0x158(%rsp)
movsd 0x160b2(%rip), %xmm0    # 0x1e130
movsd %xmm0, 0x160(%rsp)
movsd 0x16099(%rip), %xmm0    # 0x1e128
movsd %xmm0, 0x168(%rsp)
movsd 0x16080(%rip), %xmm0    # 0x1e120
movsd %xmm0, 0x170(%rsp)
movq 0x180a0(%rip), %rax     # 0x20150
movq %rax, 0x130(%rsp)
movq 0x18099(%rip), %rax     # 0x20158
movq %rax, 0x138(%rsp)
movq 0x18092(%rip), %rax     # 0x20160
movq %rax, 0x140(%rsp)
movq 0x1808b(%rip), %rax     # 0x20168
movq %rax, 0x148(%rsp)
leaq 0xe0(%rsp), %rdi
leaq 0x1659c(%rip), %rsi     # 0x1e690
movl $0x48, %edx
callq 0x2200
leaq 0xa0(%rsp), %rdi
leaq 0x165d3(%rip), %rsi     # 0x1e6e0
movl $0x40, %edx
callq 0x2200
leaq 0x70(%rsp), %rdi
xorl %esi, %esi
movl $0x30, %edx
callq 0x2140
movsd 0x15fe8(%rip), %xmm0    # 0x1e118
movsd %xmm0, 0x70(%rsp)
movsd 0x15fd2(%rip), %xmm0    # 0x1e110
movsd %xmm0, 0x78(%rsp)
movsd 0x15fbc(%rip), %xmm0    # 0x1e108
movsd %xmm0, 0x80(%rsp)
movsd 0x15fa3(%rip), %xmm0    # 0x1e100
movsd %xmm0, 0x88(%rsp)
movsd 0x15f8a(%rip), %xmm0    # 0x1e0f8
movsd %xmm0, 0x90(%rsp)
movsd 0x15f71(%rip), %xmm0    # 0x1e0f0
movsd %xmm0, 0x98(%rsp)
leaq 0x40(%rsp), %rdi
xorl %esi, %esi
movl $0x28, %edx
callq 0x2140
movsd 0x15f47(%rip), %xmm0    # 0x1e0e8
movsd %xmm0, 0x40(%rsp)
movsd 0x15f31(%rip), %xmm0    # 0x1e0e0
movsd %xmm0, 0x48(%rsp)
movsd 0x15f1b(%rip), %xmm0    # 0x1e0d8
movsd %xmm0, 0x50(%rsp)
movsd 0x15f05(%rip), %xmm0    # 0x1e0d0
movsd %xmm0, 0x58(%rsp)
movsd 0x15eef(%rip), %xmm0    # 0x1e0c8
movsd %xmm0, 0x60(%rsp)
movsd 0x178(%rsp), %xmm0
movaps 0x15fe1(%rip), %xmm1    # 0x1e1d0
pand %xmm1, %xmm0
movsd %xmm0, 0x18(%rsp)
movsd 0x15ebf(%rip), %xmm0    # 0x1e0c0
ucomisd 0x18(%rsp), %xmm0
jb 0x8333
movsd 0x18(%rsp), %xmm0
movsd 0x15f45(%rip), %xmm1    # 0x1e160
ucomisd %xmm1, %xmm0
jbe 0x82f1
movsd 0x178(%rsp), %xmm0
mulsd 0x178(%rsp), %xmm0
movsd %xmm0, 0x28(%rsp)
movsd 0x170(%rsp), %xmm0
mulsd 0x28(%rsp), %xmm0
movsd %xmm0, 0x30(%rsp)
movsd 0x28(%rsp), %xmm0
movsd %xmm0, 0x38(%rsp)
movl $0x0, 0x14(%rsp)
cmpl $0x3, 0x14(%rsp)
jge 0x82ba
movsd 0x30(%rsp), %xmm0
movslq 0x14(%rsp), %rax
addsd 0x150(%rsp,%rax,8), %xmm0
mulsd 0x28(%rsp), %xmm0
movsd %xmm0, 0x30(%rsp)
movsd 0x38(%rsp), %xmm0
movslq 0x14(%rsp), %rax
addsd 0x130(%rsp,%rax,8), %xmm0
mulsd 0x28(%rsp), %xmm0
movsd %xmm0, 0x38(%rsp)
movl 0x14(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x14(%rsp)
jmp 0x8266
movsd 0x178(%rsp), %xmm0
movsd 0x30(%rsp), %xmm1
addsd 0x168(%rsp), %xmm1
mulsd %xmm1, %xmm0
movsd 0x38(%rsp), %xmm1
addsd 0x148(%rsp), %xmm1
divsd %xmm1, %xmm0
movsd %xmm0, 0x20(%rsp)
jmp 0x8312
movsd 0x178(%rsp), %xmm0
mulsd 0x168(%rsp), %xmm0
divsd 0x148(%rsp), %xmm0
movsd %xmm0, 0x20(%rsp)
movsd 0x15e4e(%rip), %xmm0    # 0x1e168
subsd 0x20(%rsp), %xmm0
callq 0x2170
movsd %xmm0, 0x180(%rsp)
jmp 0x8588
movsd 0x18(%rsp), %xmm0
movsd %xmm0, (%rsp)
movsd 0x15e02(%rip), %xmm0    # 0x1e148
callq 0x22c0
movsd (%rsp), %xmm1
ucomisd %xmm1, %xmm0
jb 0x8433
movsd 0x120(%rsp), %xmm0
mulsd 0x18(%rsp), %xmm0
movsd %xmm0, 0x30(%rsp)
movsd 0x18(%rsp), %xmm0
movsd %xmm0, 0x38(%rsp)
movl $0x0, 0x10(%rsp)
cmpl $0x7, 0x10(%rsp)
jge 0x83d7
movsd 0x30(%rsp), %xmm0
movslq 0x10(%rsp), %rax
addsd 0xe0(%rsp,%rax,8), %xmm0
mulsd 0x18(%rsp), %xmm0
movsd %xmm0, 0x30(%rsp)
movsd 0x38(%rsp), %xmm0
movslq 0x10(%rsp), %rax
addsd 0xa0(%rsp,%rax,8), %xmm0
mulsd 0x18(%rsp), %xmm0
movsd %xmm0, 0x38(%rsp)
movl 0x10(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x10(%rsp)
jmp 0x8383
movsd 0x30(%rsp), %xmm0
addsd 0x118(%rsp), %xmm0
movsd 0x38(%rsp), %xmm1
addsd 0xd8(%rsp), %xmm1
divsd %xmm1, %xmm0
movsd %xmm0, 0x20(%rsp)
movsd 0x18(%rsp), %xmm0
movsd 0x20(%rsp), %xmm1
xorps %xmm2, %xmm2
ucomisd 0x178(%rsp), %xmm2
setae %al
movzbl %al, %edi
andl $0x1, %edi
callq 0x7ec0
movsd %xmm0, 0x180(%rsp)
jmp 0x8588
movsd 0x15d15(%rip), %xmm0    # 0x1e150
ucomisd 0x18(%rsp), %xmm0
jbe 0x8573
movsd 0x178(%rsp), %xmm1
mulsd 0x178(%rsp), %xmm1
movsd 0x15c1f(%rip), %xmm0    # 0x1e080
divsd %xmm1, %xmm0
movsd %xmm0, 0x28(%rsp)
movsd 0x98(%rsp), %xmm0
mulsd 0x28(%rsp), %xmm0
movsd %xmm0, 0x30(%rsp)
movsd 0x28(%rsp), %xmm0
movsd %xmm0, 0x38(%rsp)
movl $0x0, 0xc(%rsp)
cmpl $0x4, 0xc(%rsp)
jge 0x84e2
movsd 0x30(%rsp), %xmm0
movslq 0xc(%rsp), %rax
addsd 0x70(%rsp,%rax,8), %xmm0
mulsd 0x28(%rsp), %xmm0
movsd %xmm0, 0x30(%rsp)
movsd 0x38(%rsp), %xmm0
movslq 0xc(%rsp), %rax
addsd 0x40(%rsp,%rax,8), %xmm0
mulsd 0x28(%rsp), %xmm0
movsd %xmm0, 0x38(%rsp)
movl 0xc(%rsp), %eax
addl $0x1, %eax
movl %eax, 0xc(%rsp)
jmp 0x8494
movsd 0x28(%rsp), %xmm0
movsd 0x30(%rsp), %xmm1
addsd 0x90(%rsp), %xmm1
mulsd %xmm1, %xmm0
movsd 0x38(%rsp), %xmm1
addsd 0x60(%rsp), %xmm1
divsd %xmm1, %xmm0
movsd %xmm0, 0x20(%rsp)
movsd 0x15b5f(%rip), %xmm0    # 0x1e078
callq 0x22c0
movaps %xmm0, %xmm1
movsd 0x15b57(%rip), %xmm0    # 0x1e080
divsd %xmm1, %xmm0
subsd 0x20(%rsp), %xmm0
divsd 0x18(%rsp), %xmm0
movsd %xmm0, 0x20(%rsp)
movsd 0x178(%rsp), %xmm0
movsd 0x20(%rsp), %xmm1
xorps %xmm2, %xmm2
ucomisd 0x178(%rsp), %xmm2
setae %al
movzbl %al, %edi
andl $0x1, %edi
callq 0x7ec0
movsd %xmm0, 0x180(%rsp)
jmp 0x8588
jmp 0x8575
jmp 0x8577
movsd 0x15bd9(%rip), %xmm0    # 0x1e158
movsd %xmm0, 0x180(%rsp)
movsd 0x180(%rsp), %xmm0
addq $0x188, %rsp            # imm = 0x188
retq
nopl (%rax)