void cdflib_cdfnbn(const int *which, double *p, double *q, double *s,
                   double *xn, double *pr, double *ompr, int *status,
                   double *bound) {
  static const double tol = 1.0e-8;
  static const double atol = 1.0e-50;
  static const double inf = 1.0e300;
  static const double one = 1.0e0;
  static const int K1 = 1;
  double K2 = 0.0e0;
  double K4 = 0.5e0;
  double K5 = 5.0e0;
  double K11 = 1.0e0;
  double fx, xhi, xlo, pq, prompr, cum, ccum;
  unsigned long qhi, qleft, qporq;
  double T3, T6, T7, T8, T9, T10, T12, T13;
  *status = 0;
  *bound = 0.0;
  if (!(*which < 1 || *which > 4)) {
    goto S30;
  }
  if (!(*which < 1)) {
    goto S10;
  }
  *bound = 1.0e0;
  goto S20;
S10:
  *bound = 4.0e0;
S20:
  *status = -1;
  return;
S30:
  if (*which == 1) {
    goto S70;
  }
  if (!(*p < 0.0e0 || *p > 1.0e0)) {
    goto S60;
  }
  if (!(*p < 0.0e0)) {
    goto S40;
  }
  *bound = 0.0e0;
  goto S50;
S40:
  *bound = 1.0e0;
S50:
  *status = -2;
  return;
S70:
S60:
  if (*which == 1) {
    goto S110;
  }
  if (!(*q <= 0.0e0 || *q > 1.0e0)) {
    goto S100;
  }
  if (!(*q <= 0.0e0)) {
    goto S80;
  }
  *bound = 0.0e0;
  goto S90;
S80:
  *bound = 1.0e0;
S90:
  *status = -3;
  return;
S110:
S100:
  if (*which == 2) {
    goto S130;
  }
  if (!(*s < 0.0e0)) {
    goto S120;
  }
  *bound = 0.0e0;
  *status = -4;
  return;
S130:
S120:
  if (*which == 3) {
    goto S150;
  }
  if (!(*xn < 0.0e0)) {
    goto S140;
  }
  *bound = 0.0e0;
  *status = -5;
  return;
S150:
S140:
  if (*which == 4) {
    goto S190;
  }
  if (!(*pr < 0.0e0 || *pr > 1.0e0)) {
    goto S180;
  }
  if (!(*pr < 0.0e0)) {
    goto S160;
  }
  *bound = 0.0e0;
  goto S170;
S160:
  *bound = 1.0e0;
S170:
  *status = -6;
  return;
S190:
S180:
  if (*which == 4) {
    goto S230;
  }
  if (!(*ompr < 0.0e0 || *ompr > 1.0e0)) {
    goto S220;
  }
  if (!(*ompr < 0.0e0)) {
    goto S200;
  }
  *bound = 0.0e0;
  goto S210;
S200:
  *bound = 1.0e0;
S210:
  *status = -7;
  return;
S230:
S220:
  if (*which == 1) {
    goto S270;
  }
  pq = *p + *q;
  if (!(fabs(pq - 0.5e0 - 0.5e0) > 3.0e0 * dpmpar(K1))) {
    goto S260;
  }
  if (!(pq < 0.0e0)) {
    goto S240;
  }
  *bound = 0.0e0;
  goto S250;
S240:
  *bound = 1.0e0;
S250:
  *status = 3;
  return;
S270:
S260:
  if (*which == 4) {
    goto S310;
  }
  prompr = *pr + *ompr;
  if (!(fabs(prompr - 0.5e0 - 0.5e0) > 3.0e0 * dpmpar(K1))) {
    goto S300;
  }
  if (!(prompr < 0.0e0)) {
    goto S280;
  }
  *bound = 0.0e0;
  goto S290;
S280:
  *bound = 1.0e0;
S290:
  *status = 4;
  return;
S310:
S300:
  if (!(*which == 1)) {
    qporq = *p <= *q;
  }
  if (1 == *which) {
    cdflib_cumnbn(s, xn, pr, ompr, p, q);
    *status = 0;
  } else if (2 == *which) {
    *s = 5.0e0;
    T3 = inf;
    T6 = atol;
    T7 = tol;
    cdflib_dstinv(&K2, &T3, &K4, &K4, &K5, &T6, &T7);
    *status = 0;
    cdflib_dinvr(status, s, &fx, &qleft, &qhi);
  S320:
    if (!(*status == 1)) {
      goto S350;
    }
    cdflib_cumnbn(s, xn, pr, ompr, &cum, &ccum);
    if (!qporq) {
      goto S330;
    }
    fx = cum - *p;
    goto S340;
  S330:
    fx = ccum - *q;
  S340:
    cdflib_dinvr(status, s, &fx, &qleft, &qhi);
    goto S320;
  S350:
    if (!(*status == -1)) {
      goto S380;
    }
    if (!qleft) {
      goto S360;
    }
    *status = 1;
    *bound = 0.0e0;
    goto S370;
  S360:
    *status = 2;
    *bound = inf;
  S380:
  S370:;
  } else if (3 == *which) {
    *xn = 5.0e0;
    T8 = inf;
    T9 = atol;
    T10 = tol;
    cdflib_dstinv(&K2, &T8, &K4, &K4, &K5, &T9, &T10);
    *status = 0;
    cdflib_dinvr(status, xn, &fx, &qleft, &qhi);
  S390:
    if (!(*status == 1)) {
      goto S420;
    }
    cdflib_cumnbn(s, xn, pr, ompr, &cum, &ccum);
    if (!qporq) {
      goto S400;
    }
    fx = cum - *p;
    goto S410;
  S400:
    fx = ccum - *q;
  S410:
    cdflib_dinvr(status, xn, &fx, &qleft, &qhi);
    goto S390;
  S420:
    if (!(*status == -1)) {
      goto S450;
    }
    if (!qleft) {
      goto S430;
    }
    *status = 1;
    *bound = 0.0e0;
    goto S440;
  S430:
    *status = 2;
    *bound = inf;
  S450:
  S440:;
  } else if (4 == *which) {
    T12 = atol;
    T13 = tol;
    cdflib_dstzr(&K2, &K11, &T12, &T13);
    if (!qporq) {
      goto S480;
    }
    *status = 0;
    cdflib_dzror(status, pr, &fx, &xlo, &xhi, &qleft, &qhi);
    *ompr = one - *pr;
  S460:
    if (!(*status == 1)) {
      goto S470;
    }
    cdflib_cumnbn(s, xn, pr, ompr, &cum, &ccum);
    fx = cum - *p;
    cdflib_dzror(status, pr, &fx, &xlo, &xhi, &qleft, &qhi);
    *ompr = one - *pr;
    goto S460;
  S470:
    goto S510;
  S480:
    *status = 0;
    cdflib_dzror(status, ompr, &fx, &xlo, &xhi, &qleft, &qhi);
    *pr = one - *ompr;
  S490:
    if (!(*status == 1)) {
      goto S500;
    }
    cdflib_cumnbn(s, xn, pr, ompr, &cum, &ccum);
    fx = ccum - *q;
    cdflib_dzror(status, ompr, &fx, &xlo, &xhi, &qleft, &qhi);
    *pr = one - *ompr;
    goto S490;
  S510:
  S500:
    if (!(*status == -1)) {
      goto S540;
    }
    if (!qleft) {
      goto S520;
    }
    *status = 1;
    *bound = 0.0e0;
    goto S530;
  S520:
    *status = 2;
    *bound = 1.0e0;
  S530:;
  }
S540:
  return;
}


x86 assembly (clang, -O0):
<cdflib_cdfnbn>:
push   %rbp
mov    %rsp,%rbp
sub    $0x100,%rsp
mov    0x20(%rbp),%rax
mov    0x18(%rbp),%rax
mov    0x10(%rbp),%rax
mov    %rdi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
mov    %rdx,-0x18(%rbp)
mov    %rcx,-0x20(%rbp)
mov    %r8,-0x28(%rbp)
mov    %r9,-0x30(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x38(%rbp)
movsd  0xe71(%rip),%xmm0
movsd  %xmm0,-0x40(%rbp)
movsd  0xe5c(%rip),%xmm0
movsd  %xmm0,-0x48(%rbp)
movsd  0xe47(%rip),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    0x18(%rbp),%rax
movl   $0x0,(%rax)
mov    0x20(%rbp),%rax
xorps  %xmm0,%xmm0
movsd  %xmm0,(%rax)
mov    -0x8(%rbp),%rax
cmpl   $0x1,(%rax)
jl     11f2 <cdflib_cdfnbn+0x92>
mov    -0x8(%rbp),%rax
cmpl   $0x4,(%rax)
jg     11f2 <cdflib_cdfnbn+0x92>
jmp    1238 <cdflib_cdfnbn+0xd8>
mov    -0x8(%rbp),%rax
cmpl   $0x1,(%rax)
jl     1204 <cdflib_cdfnbn+0xa4>
jmp    1219 <cdflib_cdfnbn+0xb9>
mov    0x20(%rbp),%rax
movsd  0xdf0(%rip),%xmm0
movsd  %xmm0,(%rax)
jmp    1229 <cdflib_cdfnbn+0xc9>
mov    0x20(%rbp),%rax
movsd  0xe13(%rip),%xmm0
movsd  %xmm0,(%rax)
mov    0x18(%rbp),%rax
movl   $0xffffffff,(%rax)
jmp    1cfa <cdflib_cdfnbn+0xb9a>
mov    -0x8(%rbp),%rax
cmpl   $0x1,(%rax)
jne    124a <cdflib_cdfnbn+0xea>
jmp    12bf <cdflib_cdfnbn+0x15f>
mov    -0x10(%rbp),%rax
xorps  %xmm0,%xmm0
ucomisd (%rax),%xmm0
ja     127a <cdflib_cdfnbn+0x11a>
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
movsd  0xd95(%rip),%xmm1
ucomisd %xmm1,%xmm0
ja     127a <cdflib_cdfnbn+0x11a>
jmp    12c4 <cdflib_cdfnbn+0x164>
mov    -0x10(%rbp),%rax
xorps  %xmm0,%xmm0
ucomisd (%rax),%xmm0
ja     1290 <cdflib_cdfnbn+0x130>
jmp    12a0 <cdflib_cdfnbn+0x140>
mov    0x20(%rbp),%rax
xorps  %xmm0,%xmm0
movsd  %xmm0,(%rax)
jmp    12b0 <cdflib_cdfnbn+0x150>
mov    0x20(%rbp),%rax
movsd  0xd54(%rip),%xmm0
movsd  %xmm0,(%rax)
mov    0x18(%rbp),%rax
movl   $0xfffffffe,(%rax)
jmp    1cfa <cdflib_cdfnbn+0xb9a>
jmp    12c4 <cdflib_cdfnbn+0x164>
mov    -0x8(%rbp),%rax
cmpl   $0x1,(%rax)
jne    12d6 <cdflib_cdfnbn+0x176>
jmp    134b <cdflib_cdfnbn+0x1eb>
mov    -0x18(%rbp),%rax
xorps  %xmm0,%xmm0
ucomisd (%rax),%xmm0
jae    1306 <cdflib_cdfnbn+0x1a6>
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
movsd  0xd09(%rip),%xmm1
ucomisd %xmm1,%xmm0
ja     1306 <cdflib_cdfnbn+0x1a6>
jmp    1350 <cdflib_cdfnbn+0x1f0>
mov    -0x18(%rbp),%rax
xorps  %xmm0,%xmm0
ucomisd (%rax),%xmm0
jae    131c <cdflib_cdfnbn+0x1bc>
jmp    132c <cdflib_cdfnbn+0x1cc>
mov    0x20(%rbp),%rax
xorps  %xmm0,%xmm0
movsd  %xmm0,(%rax)
jmp    133c <cdflib_cdfnbn+0x1dc>
mov    0x20(%rbp),%rax
movsd  0xcc8(%rip),%xmm0
movsd  %xmm0,(%rax)
mov    0x18(%rbp),%rax
movl   $0xfffffffd,(%rax)
jmp    1cfa <cdflib_cdfnbn+0xb9a>
jmp    1350 <cdflib_cdfnbn+0x1f0>
mov    -0x8(%rbp),%rax
cmpl   $0x2,(%rax)
jne    1362 <cdflib_cdfnbn+0x202>
jmp    1392 <cdflib_cdfnbn+0x232>
mov    -0x20(%rbp),%rax
xorps  %xmm0,%xmm0
ucomisd (%rax),%xmm0
ja     1378 <cdflib_cdfnbn+0x218>
jmp    1397 <cdflib_cdfnbn+0x237>
mov    0x20(%rbp),%rax
xorps  %xmm0,%xmm0
movsd  %xmm0,(%rax)
mov    0x18(%rbp),%rax
movl   $0xfffffffc,(%rax)
jmp    1cfa <cdflib_cdfnbn+0xb9a>
jmp    1397 <cdflib_cdfnbn+0x237>
mov    -0x8(%rbp),%rax
cmpl   $0x3,(%rax)
jne    13a9 <cdflib_cdfnbn+0x249>
jmp    13d9 <cdflib_cdfnbn+0x279>
mov    -0x28(%rbp),%rax
xorps  %xmm0,%xmm0
ucomisd (%rax),%xmm0
ja     13bf <cdflib_cdfnbn+0x25f>
jmp    13de <cdflib_cdfnbn+0x27e>
mov    0x20(%rbp),%rax
xorps  %xmm0,%xmm0
movsd  %xmm0,(%rax)
mov    0x18(%rbp),%rax
movl   $0xfffffffb,(%rax)
jmp    1cfa <cdflib_cdfnbn+0xb9a>
jmp    13de <cdflib_cdfnbn+0x27e>
mov    -0x8(%rbp),%rax
cmpl   $0x4,(%rax)
jne    13f0 <cdflib_cdfnbn+0x290>
jmp    1465 <cdflib_cdfnbn+0x305>
mov    -0x30(%rbp),%rax
xorps  %xmm0,%xmm0
ucomisd (%rax),%xmm0
ja     1420 <cdflib_cdfnbn+0x2c0>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
movsd  0xbef(%rip),%xmm1
ucomisd %xmm1,%xmm0
ja     1420 <cdflib_cdfnbn+0x2c0>
jmp    146a <cdflib_cdfnbn+0x30a>
mov    -0x30(%rbp),%rax
xorps  %xmm0,%xmm0
ucomisd (%rax),%xmm0
ja     1436 <cdflib_cdfnbn+0x2d6>
jmp    1446 <cdflib_cdfnbn+0x2e6>
mov    0x20(%rbp),%rax
xorps  %xmm0,%xmm0
movsd  %xmm0,(%rax)
jmp    1456 <cdflib_cdfnbn+0x2f6>
mov    0x20(%rbp),%rax
movsd  0xbae(%rip),%xmm0
movsd  %xmm0,(%rax)
mov    0x18(%rbp),%rax
movl   $0xfffffffa,(%rax)
jmp    1cfa <cdflib_cdfnbn+0xb9a>
jmp    146a <cdflib_cdfnbn+0x30a>
mov    -0x8(%rbp),%rax
cmpl   $0x4,(%rax)
jne    147c <cdflib_cdfnbn+0x31c>
jmp    14f1 <cdflib_cdfnbn+0x391>
mov    0x10(%rbp),%rax
xorps  %xmm0,%xmm0
ucomisd (%rax),%xmm0
ja     14ac <cdflib_cdfnbn+0x34c>
mov    0x10(%rbp),%rax
movsd  (%rax),%xmm0
movsd  0xb63(%rip),%xmm1
ucomisd %xmm1,%xmm0
ja     14ac <cdflib_cdfnbn+0x34c>
jmp    14f6 <cdflib_cdfnbn+0x396>
mov    0x10(%rbp),%rax
xorps  %xmm0,%xmm0
ucomisd (%rax),%xmm0
ja     14c2 <cdflib_cdfnbn+0x362>
jmp    14d2 <cdflib_cdfnbn+0x372>
mov    0x20(%rbp),%rax
xorps  %xmm0,%xmm0
movsd  %xmm0,(%rax)
jmp    14e2 <cdflib_cdfnbn+0x382>
mov    0x20(%rbp),%rax
movsd  0xb22(%rip),%xmm0
movsd  %xmm0,(%rax)
mov    0x18(%rbp),%rax
movl   $0xfffffff9,(%rax)
jmp    1cfa <cdflib_cdfnbn+0xb9a>
jmp    14f6 <cdflib_cdfnbn+0x396>
mov    -0x8(%rbp),%rax
cmpl   $0x1,(%rax)
jne    1508 <cdflib_cdfnbn+0x3a8>
jmp    15c2 <cdflib_cdfnbn+0x462>
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
addsd  (%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x70(%rbp),%xmm0
movsd  0xae6(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  0xada(%rip),%xmm1
subsd  %xmm1,%xmm0
movaps 0xaff(%rip),%xmm1
pand   %xmm1,%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
mov    $0x1,%edi
mov    $0x0,%al
call   1030 <dpmpar@plt>
movsd  -0xe8(%rbp),%xmm0
ff
cvtsi2sd %eax,%xmm2
movsd  0xaab(%rip),%xmm1
mulsd  %xmm2,%xmm1
ucomisd %xmm1,%xmm0
ja     1580 <cdflib_cdfnbn+0x420>
jmp    15c7 <cdflib_cdfnbn+0x467>
xorps  %xmm0,%xmm0
ucomisd -0x70(%rbp),%xmm0
ja     1593 <cdflib_cdfnbn+0x433>
jmp    15a3 <cdflib_cdfnbn+0x443>
mov    0x20(%rbp),%rax
xorps  %xmm0,%xmm0
movsd  %xmm0,(%rax)
jmp    15b3 <cdflib_cdfnbn+0x453>
mov    0x20(%rbp),%rax
movsd  0xa51(%rip),%xmm0
movsd  %xmm0,(%rax)
mov    0x18(%rbp),%rax
movl   $0x3,(%rax)
jmp    1cfa <cdflib_cdfnbn+0xb9a>
jmp    15c7 <cdflib_cdfnbn+0x467>
mov    -0x8(%rbp),%rax
cmpl   $0x4,(%rax)
jne    15d9 <cdflib_cdfnbn+0x479>
jmp    1693 <cdflib_cdfnbn+0x533>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    0x10(%rbp),%rax
addsd  (%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
movsd  -0x78(%rbp),%xmm0
movsd  0xa15(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  0xa09(%rip),%xmm1
subsd  %xmm1,%xmm0
movaps 0xa2e(%rip),%xmm1
pand   %xmm1,%xmm0
movsd  %xmm0,-0xf0(%rbp)
ff
mov    $0x1,%edi
mov    $0x0,%al
call   1030 <dpmpar@plt>
movsd  -0xf0(%rbp),%xmm0
ff
cvtsi2sd %eax,%xmm2
movsd  0x9da(%rip),%xmm1
mulsd  %xmm2,%xmm1
ucomisd %xmm1,%xmm0
ja     1651 <cdflib_cdfnbn+0x4f1>
jmp    1698 <cdflib_cdfnbn+0x538>
xorps  %xmm0,%xmm0
ucomisd -0x78(%rbp),%xmm0
ja     1664 <cdflib_cdfnbn+0x504>
jmp    1674 <cdflib_cdfnbn+0x514>
mov    0x20(%rbp),%rax
xorps  %xmm0,%xmm0
movsd  %xmm0,(%rax)
jmp    1684 <cdflib_cdfnbn+0x524>
mov    0x20(%rbp),%rax
movsd  0x980(%rip),%xmm0
movsd  %xmm0,(%rax)
mov    0x18(%rbp),%rax
movl   $0x4,(%rax)
jmp    1cfa <cdflib_cdfnbn+0xb9a>
jmp    1698 <cdflib_cdfnbn+0x538>
mov    -0x8(%rbp),%rax
cmpl   $0x1,(%rax)
je     16ca <cdflib_cdfnbn+0x56a>
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm1
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
ucomisd %xmm1,%xmm0
setae  %al
and    $0x1,%al
movzbl %al,%eax
cltq
mov    %rax,-0xa0(%rbp)
mov    -0x8(%rbp),%rcx
mov    $0x1,%eax
cmp    (%rcx),%eax
jne    1709 <cdflib_cdfnbn+0x5a9>
mov    -0x20(%rbp),%rdi
mov    -0x28(%rbp),%rsi
mov    -0x30(%rbp),%rdx
mov    0x10(%rbp),%rcx
mov    -0x10(%rbp),%r8
mov    -0x18(%rbp),%r9
mov    $0x0,%al
call   1070 <cdflib_cumnbn@plt>
mov    0x18(%rbp),%rax
movl   $0x0,(%rax)
jmp    1cf0 <cdflib_cdfnbn+0xb90>
mov    -0x8(%rbp),%rcx
mov    $0x2,%eax
cmp    (%rcx),%eax
jne    18b0 <cdflib_cdfnbn+0x750>
mov    -0x20(%rbp),%rax
movsd  0x8e2(%rip),%xmm0
movsd  %xmm0,(%rax)
movsd  0x8fe(%rip),%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  0x8e6(%rip),%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  0x8ce(%rip),%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
lea    -0x38(%rbp),%rdi
lea    -0xa8(%rbp),%rsi
lea    -0x40(%rbp),%rcx
lea    -0x48(%rbp),%r8
lea    -0xb0(%rbp),%r9
lea    -0xb8(%rbp),%rax
mov    %rcx,%rdx
mov    %rax,(%rsp)
mov    $0x0,%al
call   1040 <cdflib_dstinv@plt>
mov    0x18(%rbp),%rax
movl   $0x0,(%rax)
mov    0x18(%rbp),%rdi
mov    -0x20(%rbp),%rsi
lea    -0x58(%rbp),%rdx
lea    -0x98(%rbp),%rcx
lea    -0x90(%rbp),%r8
mov    $0x0,%al
call   1060 <cdflib_dinvr@plt>
mov    0x18(%rbp),%rax
cmpl   $0x1,(%rax)
je     17c6 <cdflib_cdfnbn+0x666>
jmp    184d <cdflib_cdfnbn+0x6ed>
mov    -0x20(%rbp),%rdi
mov    -0x28(%rbp),%rsi
mov    -0x30(%rbp),%rdx
mov    0x10(%rbp),%rcx
lea    -0x80(%rbp),%r8
lea    -0x88(%rbp),%r9
mov    $0x0,%al
call   1070 <cdflib_cumnbn@plt>
cmpq   $0x0,-0xa0(%rbp)
jne    17fb <cdflib_cdfnbn+0x69b>
jmp    1812 <cdflib_cdfnbn+0x6b2>
movsd  -0x80(%rbp),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x58(%rbp)
jmp    1827 <cdflib_cdfnbn+0x6c7>
movsd  -0x88(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x58(%rbp)
mov    0x18(%rbp),%rdi
mov    -0x20(%rbp),%rsi
lea    -0x58(%rbp),%rdx
lea    -0x98(%rbp),%rcx
lea    -0x90(%rbp),%r8
mov    $0x0,%al
call   1060 <cdflib_dinvr@plt>
jmp    17b4 <cdflib_cdfnbn+0x654>
mov    0x18(%rbp),%rax
cmpl   $0xffffffff,(%rax)
je     185f <cdflib_cdfnbn+0x6ff>
jmp    18a6 <cdflib_cdfnbn+0x746>
cmpq   $0x0,-0x98(%rbp)
jne    1872 <cdflib_cdfnbn+0x712>
jmp    188c <cdflib_cdfnbn+0x72c>
mov    0x18(%rbp),%rax
movl   $0x1,(%rax)
mov    0x20(%rbp),%rax
xorps  %xmm0,%xmm0
movsd  %xmm0,(%rax)
jmp    18ab <cdflib_cdfnbn+0x74b>
mov    0x18(%rbp),%rax
movl   $0x2,(%rax)
mov    0x20(%rbp),%rax
movsd  0x78e(%rip),%xmm0
movsd  %xmm0,(%rax)
jmp    18ab <cdflib_cdfnbn+0x74b>
jmp    1ceb <cdflib_cdfnbn+0xb8b>
mov    -0x8(%rbp),%rcx
mov    $0x3,%eax
cmp    (%rcx),%eax
jne    1a57 <cdflib_cdfnbn+0x8f7>
mov    -0x28(%rbp),%rax
movsd  0x73b(%rip),%xmm0
movsd  %xmm0,(%rax)
movsd  0x757(%rip),%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  0x73f(%rip),%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  0x727(%rip),%xmm0
movsd  %xmm0,-0xd0(%rbp)
lea    -0x38(%rbp),%rdi
lea    -0xc0(%rbp),%rsi
lea    -0x40(%rbp),%rcx
lea    -0x48(%rbp),%r8
lea    -0xc8(%rbp),%r9
lea    -0xd0(%rbp),%rax
mov    %rcx,%rdx
mov    %rax,(%rsp)
mov    $0x0,%al
call   1040 <cdflib_dstinv@plt>
mov    0x18(%rbp),%rax
movl   $0x0,(%rax)
mov    0x18(%rbp),%rdi
mov    -0x28(%rbp),%rsi
lea    -0x58(%rbp),%rdx
lea    -0x98(%rbp),%rcx
lea    -0x90(%rbp),%r8
mov    $0x0,%al
call   1060 <cdflib_dinvr@plt>
mov    0x18(%rbp),%rax
cmpl   $0x1,(%rax)
je     196d <cdflib_cdfnbn+0x80d>
jmp    19f4 <cdflib_cdfnbn+0x894>
mov    -0x20(%rbp),%rdi
mov    -0x28(%rbp),%rsi
mov    -0x30(%rbp),%rdx
mov    0x10(%rbp),%rcx
lea    -0x80(%rbp),%r8
lea    -0x88(%rbp),%r9
mov    $0x0,%al
call   1070 <cdflib_cumnbn@plt>
cmpq   $0x0,-0xa0(%rbp)
jne    19a2 <cdflib_cdfnbn+0x842>
jmp    19b9 <cdflib_cdfnbn+0x859>
movsd  -0x80(%rbp),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x58(%rbp)
jmp    19ce <cdflib_cdfnbn+0x86e>
movsd  -0x88(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x58(%rbp)
mov    0x18(%rbp),%rdi
mov    -0x28(%rbp),%rsi
lea    -0x58(%rbp),%rdx
lea    -0x98(%rbp),%rcx
lea    -0x90(%rbp),%r8
mov    $0x0,%al
call   1060 <cdflib_dinvr@plt>
jmp    195b <cdflib_cdfnbn+0x7fb>
mov    0x18(%rbp),%rax
cmpl   $0xffffffff,(%rax)
je     1a06 <cdflib_cdfnbn+0x8a6>
jmp    1a4d <cdflib_cdfnbn+0x8ed>
cmpq   $0x0,-0x98(%rbp)
jne    1a19 <cdflib_cdfnbn+0x8b9>
jmp    1a33 <cdflib_cdfnbn+0x8d3>
mov    0x18(%rbp),%rax
movl   $0x1,(%rax)
mov    0x20(%rbp),%rax
xorps  %xmm0,%xmm0
movsd  %xmm0,(%rax)
jmp    1a52 <cdflib_cdfnbn+0x8f2>
mov    0x18(%rbp),%rax
movl   $0x2,(%rax)
mov    0x20(%rbp),%rax
movsd  0x5e7(%rip),%xmm0
movsd  %xmm0,(%rax)
jmp    1a52 <cdflib_cdfnbn+0x8f2>
jmp    1ce6 <cdflib_cdfnbn+0xb86>
mov    -0x8(%rbp),%rcx
mov    $0x4,%eax
cmp    (%rcx),%eax
jne    1ce1 <cdflib_cdfnbn+0xb81>
movsd  0x5b8(%rip),%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
movsd  0x5a0(%rip),%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
lea    -0x38(%rbp),%rdi
lea    -0x50(%rbp),%rsi
lea    -0xd8(%rbp),%rdx
lea    -0xe0(%rbp),%rcx
mov    $0x0,%al
call   1080 <cdflib_dstzr@plt>
cmpq   $0x0,-0xa0(%rbp)
jne    1ab8 <cdflib_cdfnbn+0x958>
jmp    1b9c <cdflib_cdfnbn+0xa3c>
mov    0x18(%rbp),%rax
movl   $0x0,(%rax)
mov    0x18(%rbp),%rdi
mov    -0x30(%rbp),%rsi
lea    -0x58(%rbp),%rdx
lea    -0x68(%rbp),%rcx
lea    -0x60(%rbp),%r8
lea    -0x98(%rbp),%r9
lea    -0x90(%rbp),%rax
mov    %rax,(%rsp)
mov    $0x0,%al
call   1050 <cdflib_dzror@plt>
mov    -0x30(%rbp),%rax
movsd  0x505(%rip),%xmm0
subsd  (%rax),%xmm0
mov    0x10(%rbp),%rax
movsd  %xmm0,(%rax)
mov    0x18(%rbp),%rax
cmpl   $0x1,(%rax)
je     1b19 <cdflib_cdfnbn+0x9b9>
jmp    1b97 <cdflib_cdfnbn+0xa37>
mov    -0x20(%rbp),%rdi
mov    -0x28(%rbp),%rsi
mov    -0x30(%rbp),%rdx
mov    0x10(%rbp),%rcx
lea    -0x80(%rbp),%r8
lea    -0x88(%rbp),%r9
mov    $0x0,%al
call   1070 <cdflib_cumnbn@plt>
movsd  -0x80(%rbp),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x58(%rbp)
mov    0x18(%rbp),%rdi
mov    -0x30(%rbp),%rsi
lea    -0x58(%rbp),%rdx
lea    -0x68(%rbp),%rcx
lea    -0x60(%rbp),%r8
lea    -0x98(%rbp),%r9
lea    -0x90(%rbp),%rax
mov    %rax,(%rsp)
mov    $0x0,%al
call   1050 <cdflib_dzror@plt>
mov    -0x30(%rbp),%rax
movsd  0x47a(%rip),%xmm0
subsd  (%rax),%xmm0
mov    0x10(%rbp),%rax
movsd  %xmm0,(%rax)
jmp    1b07 <cdflib_cdfnbn+0x9a7>
jmp    1c7e <cdflib_cdfnbn+0xb1e>
mov    0x18(%rbp),%rax
movl   $0x0,(%rax)
mov    0x18(%rbp),%rdi
mov    0x10(%rbp),%rsi
lea    -0x58(%rbp),%rdx
lea    -0x68(%rbp),%rcx
lea    -0x60(%rbp),%r8
lea    -0x98(%rbp),%r9
lea    -0x90(%rbp),%rax
mov    %rax,(%rsp)
mov    $0x0,%al
call   1050 <cdflib_dzror@plt>
mov    0x10(%rbp),%rax
movsd  0x421(%rip),%xmm0
subsd  (%rax),%xmm0
mov    -0x30(%rbp),%rax
movsd  %xmm0,(%rax)
mov    0x18(%rbp),%rax
cmpl   $0x1,(%rax)
je     1bfd <cdflib_cdfnbn+0xa9d>
jmp    1c83 <cdflib_cdfnbn+0xb23>
mov    -0x20(%rbp),%rdi
mov    -0x28(%rbp),%rsi
mov    -0x30(%rbp),%rdx
mov    0x10(%rbp),%rcx
lea    -0x80(%rbp),%r8
lea    -0x88(%rbp),%r9
mov    $0x0,%al
call   1070 <cdflib_cumnbn@plt>
movsd  -0x88(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x58(%rbp)
mov    0x18(%rbp),%rdi
mov    0x10(%rbp),%rsi
lea    -0x58(%rbp),%rdx
lea    -0x68(%rbp),%rcx
lea    -0x60(%rbp),%r8
lea    -0x98(%rbp),%r9
lea    -0x90(%rbp),%rax
mov    %rax,(%rsp)
mov    $0x0,%al
call   1050 <cdflib_dzror@plt>
mov    0x10(%rbp),%rax
movsd  0x393(%rip),%xmm0
subsd  (%rax),%xmm0
mov    -0x30(%rbp),%rax
movsd  %xmm0,(%rax)
jmp    1beb <cdflib_cdfnbn+0xa8b>
jmp    1c83 <cdflib_cdfnbn+0xb23>
mov    0x18(%rbp),%rax
cmpl   $0xffffffff,(%rax)
je     1c95 <cdflib_cdfnbn+0xb35>
jmp    1cf5 <cdflib_cdfnbn+0xb95>
cmpq   $0x0,-0x98(%rbp)
jne    1ca8 <cdflib_cdfnbn+0xb48>
jmp    1cc2 <cdflib_cdfnbn+0xb62>
mov    0x18(%rbp),%rax
movl   $0x1,(%rax)
mov    0x20(%rbp),%rax
xorps  %xmm0,%xmm0
movsd  %xmm0,(%rax)
jmp    1cdc <cdflib_cdfnbn+0xb7c>
mov    0x18(%rbp),%rax
movl   $0x2,(%rax)
mov    0x20(%rbp),%rax
movsd  0x328(%rip),%xmm0
movsd  %xmm0,(%rax)
jmp    1ce1 <cdflib_cdfnbn+0xb81>
jmp    1ce6 <cdflib_cdfnbn+0xb86>
jmp    1ceb <cdflib_cdfnbn+0xb8b>
jmp    1cf0 <cdflib_cdfnbn+0xb90>
jmp    1cf5 <cdflib_cdfnbn+0xb95>
jmp    1cfa <cdflib_cdfnbn+0xb9a>
add    $0x100,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<cdflib_cdfnbn>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0xa8,%rsp
mov    %rcx,%rbx
mov    %rdx,%rbp
mov    0xf0(%rsp),%rdx
mov    0xe8(%rsp),%r12
movq   $0x0,0x80(%rsp)
movabs $0x3fe0000000000000,%rax
mov    %rax,0xa0(%rsp)
movabs $0x4014000000000000,%r14
mov    %r14,0x98(%rsp)
movabs $0x3ff0000000000000,%rax
mov    %rax,0x90(%rsp)
movl   $0x0,(%r12)
movq   $0x0,(%rdx)
mov    (%rdi),%eax
lea    -0x5(%rax),%ecx
cmp    $0xfffffffb,%ecx
ja     1206 <cdflib_cdfnbn+0xa6>
xor    %ecx,%ecx
test   %eax,%eax
setle  %cl
lea    0xe40(%rip),%rax
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,(%rdx)
movl   $0xffffffff,(%r12)
jmp    1a19 <cdflib_cdfnbn+0x8b9>
mov    %rsi,%r13
mov    %rdi,%r15
mov    0xe0(%rsp),%rcx
cmp    $0x1,%eax
jne    1230 <cdflib_cdfnbn+0xd0>
xorpd  %xmm0,%xmm0
ucomisd (%rbx),%xmm0
jbe    1268 <cdflib_cdfnbn+0x108>
movl   $0xfffffffc,(%r12)
ff
jmp    1a19 <cdflib_cdfnbn+0x8b9>
movsd  0x0(%r13),%xmm0
xorpd  %xmm1,%xmm1
ucomisd %xmm0,%xmm1
ja     1280 <cdflib_cdfnbn+0x120>
ucomisd 0xdb8(%rip),%xmm0
ja     1280 <cdflib_cdfnbn+0x120>
movsd  0x0(%rbp),%xmm2
xorpd  %xmm1,%xmm1
ucomisd %xmm2,%xmm1
jae    12a2 <cdflib_cdfnbn+0x142>
ucomisd 0xd9f(%rip),%xmm2
ja     12a2 <cdflib_cdfnbn+0x142>
cmp    $0x2,%eax
jne    12c4 <cdflib_cdfnbn+0x164>
xorpd  %xmm0,%xmm0
ucomisd (%r8),%xmm0
jbe    12db <cdflib_cdfnbn+0x17b>
movl   $0xfffffffb,(%r12)
ff
jmp    1a19 <cdflib_cdfnbn+0x8b9>
cmpltsd %xmm1,%xmm0
movsd  0xd73(%rip),%xmm1
andnpd %xmm1,%xmm0
movlpd %xmm0,(%rdx)
movl   $0xfffffffe,(%r12)
ff
jmp    1a19 <cdflib_cdfnbn+0x8b9>
cmpnlesd %xmm1,%xmm2
movsd  0xd51(%rip),%xmm0
andpd  %xmm2,%xmm0
movlpd %xmm0,(%rdx)
movl   $0xfffffffd,(%r12)
ff
jmp    1a19 <cdflib_cdfnbn+0x8b9>
xorpd  %xmm1,%xmm1
ucomisd (%rbx),%xmm1
ja     1223 <cdflib_cdfnbn+0xc3>
cmp    $0x3,%eax
jne    1366 <cdflib_cdfnbn+0x206>
movsd  (%r9),%xmm0
xorpd  %xmm1,%xmm1
ucomisd %xmm0,%xmm1
ja     1322 <cdflib_cdfnbn+0x1c2>
ucomisd 0xd0e(%rip),%xmm0
ja     1322 <cdflib_cdfnbn+0x1c2>
movsd  (%rcx),%xmm2
xorpd  %xmm1,%xmm1
ucomisd %xmm2,%xmm1
ja     1344 <cdflib_cdfnbn+0x1e4>
ucomisd 0xcf6(%rip),%xmm2
ja     1344 <cdflib_cdfnbn+0x1e4>
cmp    $0x1,%eax
je     1572 <cdflib_cdfnbn+0x412>
movsd  0x0(%r13),%xmm0
movsd  0x0(%rbp),%xmm2
jmp    1375 <cdflib_cdfnbn+0x215>
cmpltsd %xmm1,%xmm0
movsd  0xcd1(%rip),%xmm1
andnpd %xmm1,%xmm0
movlpd %xmm0,(%rdx)
movl   $0xfffffffa,(%r12)
ff
jmp    1a19 <cdflib_cdfnbn+0x8b9>
cmpltsd %xmm1,%xmm2
movsd  0xcaf(%rip),%xmm0
andnpd %xmm0,%xmm2
movlpd %xmm2,(%rdx)
movl   $0xfffffff9,(%r12)
ff
jmp    1a19 <cdflib_cdfnbn+0x8b9>
xorpd  %xmm1,%xmm1
ucomisd (%r8),%xmm1
ja     1273 <cdflib_cdfnbn+0x113>
mov    %r8,0x18(%rsp)
mov    %r9,0x20(%rsp)
addsd  %xmm0,%xmm2
movapd %xmm2,0x40(%rsp)
movsd  0xc77(%rip),%xmm0
addsd  %xmm0,%xmm2
addsd  %xmm0,%xmm2
andpd  0xc7f(%rip),%xmm2
movapd %xmm2,0x50(%rsp)
mov    $0x1,%edi
xor    %eax,%eax
call   1030 <dpmpar@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0xc4e(%rip),%xmm0
movapd 0x50(%rsp),%xmm1
ucomisd %xmm0,%xmm1
jbe    1402 <cdflib_cdfnbn+0x2a2>
xorpd  %xmm0,%xmm0
movapd 0x40(%rsp),%xmm1
cmpltsd %xmm0,%xmm1
movsd  0xc1b(%rip),%xmm0
andnpd %xmm0,%xmm1
mov    0xf0(%rsp),%rax
movlpd %xmm1,(%rax)
movl   $0x3,(%r12)
jmp    1a19 <cdflib_cdfnbn+0x8b9>
cmpl   $0x4,(%r15)
jne    1557 <cdflib_cdfnbn+0x3f7>
movsd  0x0(%rbp),%xmm0
movsd  %xmm0,0x50(%rsp)
movsd  0x0(%r13),%xmm0
movsd  %xmm0,0x40(%rsp)
movabs $0x358dee7a4ad4b81f,%rax
ee 8d 35
mov    %rax,0x28(%rsp)
movabs $0x3e45798ee2308c3a,%rax
79 45 3e
mov    %rax,0x88(%rsp)
lea    0x80(%rsp),%rdi
lea    0x90(%rsp),%rsi
lea    0x28(%rsp),%rdx
lea    0x88(%rsp),%rcx
xor    %eax,%eax
call   1080 <cdflib_dstzr@plt>
movsd  0x50(%rsp),%xmm0
ucomisd 0x40(%rsp),%xmm0
jae    16c4 <cdflib_cdfnbn+0x564>
movl   $0x0,(%r12)
lea    0x68(%rsp),%rax
mov    %rax,(%rsp)
lea    0x8(%rsp),%rdx
lea    0x30(%rsp),%rcx
lea    0x38(%rsp),%r8
lea    0x10(%rsp),%r9
mov    %r12,%rdi
mov    0xe0(%rsp),%r13
mov    %r13,%rsi
xor    %eax,%eax
call   1050 <cdflib_dzror@plt>
movsd  0xb44(%rip),%xmm0
subsd  0x0(%r13),%xmm0
mov    0x20(%rsp),%r14
movsd  %xmm0,(%r14)
mov    (%r12),%eax
cmp    $0x1,%eax
mov    0x18(%rsp),%r15
jne    1797 <cdflib_cdfnbn+0x637>
mov    %rbx,%rdi
mov    %r15,%rsi
mov    %r14,%rdx
mov    %r13,%rcx
lea    0x78(%rsp),%r8
lea    0x70(%rsp),%r9
xor    %eax,%eax
call   1070 <cdflib_cumnbn@plt>
movsd  0x70(%rsp),%xmm0
subsd  0x0(%rbp),%xmm0
movsd  %xmm0,0x8(%rsp)
lea    0x68(%rsp),%rax
mov    %rax,(%rsp)
mov    %r12,%rdi
mov    %r13,%rsi
lea    0x8(%rsp),%rdx
lea    0x30(%rsp),%rcx
lea    0x38(%rsp),%r8
lea    0x10(%rsp),%r9
xor    %eax,%eax
call   1050 <cdflib_dzror@plt>
movsd  0xac2(%rip),%xmm0
subsd  0x0(%r13),%xmm0
movsd  %xmm0,(%r14)
mov    (%r12),%eax
cmp    $0x1,%eax
je     14de <cdflib_cdfnbn+0x37e>
jmp    1797 <cdflib_cdfnbn+0x637>
mov    0x20(%rsp),%r9
movsd  (%r9),%xmm0
mov    0xe0(%rsp),%rax
movsd  (%rax),%xmm2
mov    0x18(%rsp),%r8
mov    %r8,0x18(%rsp)
mov    %r9,0x20(%rsp)
addsd  %xmm0,%xmm2
movapd %xmm2,0x40(%rsp)
movsd  0xa7a(%rip),%xmm0
addsd  %xmm0,%xmm2
addsd  %xmm0,%xmm2
andpd  0xa82(%rip),%xmm2
movapd %xmm2,0x50(%rsp)
mov    $0x1,%edi
xor    %eax,%eax
call   1030 <dpmpar@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0xa51(%rip),%xmm0
movapd 0x50(%rsp),%xmm1
ucomisd %xmm0,%xmm1
jbe    15ff <cdflib_cdfnbn+0x49f>
xorpd  %xmm0,%xmm0
movapd 0x40(%rsp),%xmm1
cmpltsd %xmm0,%xmm1
movsd  0xa1e(%rip),%xmm0
andnpd %xmm0,%xmm1
mov    0xf0(%rsp),%rax
movlpd %xmm1,(%rax)
movl   $0x4,(%r12)
jmp    1a19 <cdflib_cdfnbn+0x8b9>
mov    (%r15),%eax
cmp    $0x1,%eax
jne    1636 <cdflib_cdfnbn+0x4d6>
mov    %rbx,%rdi
mov    0x18(%rsp),%rsi
mov    0x20(%rsp),%rdx
mov    0xe0(%rsp),%rcx
mov    %r13,%r8
mov    %rbp,%r9
xor    %eax,%eax
call   1070 <cdflib_cumnbn@plt>
movl   $0x0,(%r12)
jmp    1a19 <cdflib_cdfnbn+0x8b9>
movsd  0x0(%r13),%xmm0
movsd  %xmm0,0x50(%rsp)
movsd  0x0(%rbp),%xmm0
movsd  %xmm0,0x40(%rsp)
cmp    $0x2,%eax
mov    0x18(%rsp),%rdx
je     17cb <cdflib_cdfnbn+0x66b>
cmp    $0x3,%eax
je     18c1 <cdflib_cdfnbn+0x761>
cmp    $0x4,%eax
jne    1a19 <cdflib_cdfnbn+0x8b9>
movabs $0x358dee7a4ad4b81f,%rax
ee 8d 35
mov    %rax,0x28(%rsp)
movabs $0x3e45798ee2308c3a,%rax
79 45 3e
mov    %rax,0x88(%rsp)
lea    0x80(%rsp),%rdi
lea    0x90(%rsp),%rsi
lea    0x28(%rsp),%rdx
lea    0x88(%rsp),%rcx
xor    %eax,%eax
call   1080 <cdflib_dstzr@plt>
movsd  0x40(%rsp),%xmm0
ucomisd 0x50(%rsp),%xmm0
jb     147a <cdflib_cdfnbn+0x31a>
movl   $0x0,(%r12)
lea    0x68(%rsp),%rax
mov    %rax,(%rsp)
lea    0x8(%rsp),%rdx
lea    0x30(%rsp),%rcx
lea    0x38(%rsp),%r8
lea    0x10(%rsp),%r9
mov    %r12,%rdi
mov    0x20(%rsp),%r14
mov    %r14,%rsi
xor    %eax,%eax
call   1050 <cdflib_dzror@plt>
movsd  0x8fd(%rip),%xmm0
subsd  (%r14),%xmm0
mov    0xe0(%rsp),%rbp
movsd  %xmm0,0x0(%rbp)
mov    (%r12),%eax
cmp    $0x1,%eax
mov    0x18(%rsp),%r15
jne    1797 <cdflib_cdfnbn+0x637>
mov    %rbx,%rdi
mov    %r15,%rsi
mov    %r14,%rdx
mov    %rbp,%rcx
lea    0x78(%rsp),%r8
lea    0x70(%rsp),%r9
xor    %eax,%eax
call   1070 <cdflib_cumnbn@plt>
movsd  0x78(%rsp),%xmm0
subsd  0x0(%r13),%xmm0
movsd  %xmm0,0x8(%rsp)
lea    0x68(%rsp),%rax
mov    %rax,(%rsp)
mov    %r12,%rdi
mov    %r14,%rsi
lea    0x8(%rsp),%rdx
lea    0x30(%rsp),%rcx
lea    0x38(%rsp),%r8
lea    0x10(%rsp),%r9
xor    %eax,%eax
call   1050 <cdflib_dzror@plt>
movsd  0x87c(%rip),%xmm0
subsd  (%r14),%xmm0
movsd  %xmm0,0x0(%rbp)
mov    (%r12),%eax
cmp    $0x1,%eax
je     1723 <cdflib_cdfnbn+0x5c3>
cmp    $0xffffffff,%eax
jne    1a19 <cdflib_cdfnbn+0x8b9>
cmpq   $0x0,0x10(%rsp)
jne    19e3 <cdflib_cdfnbn+0x883>
movl   $0x2,(%r12)
mov    0xf0(%rsp),%rax
movabs $0x3ff0000000000000,%rcx
jmp    1a16 <cdflib_cdfnbn+0x8b6>
mov    %r14,(%rbx)
movabs $0x7e37e43c8800759c,%r14
e4 37 7e
mov    %r14,0x38(%rsp)
movabs $0x358dee7a4ad4b81f,%rax
ee 8d 35
mov    %rax,0x30(%rsp)
movabs $0x3e45798ee2308c3a,%rax
79 45 3e
mov    %rax,0x28(%rsp)
lea    0x28(%rsp),%rax
mov    %rax,(%rsp)
lea    0x80(%rsp),%rdi
lea    0x38(%rsp),%rsi
lea    0xa0(%rsp),%rcx
lea    0x98(%rsp),%r8
lea    0x30(%rsp),%r9
mov    %rcx,%rdx
xor    %eax,%eax
call   1040 <cdflib_dstinv@plt>
movsd  0x40(%rsp),%xmm0
ucomisd 0x50(%rsp),%xmm0
movl   $0x0,(%r12)
cmovae %r13,%rbp
lea    0x78(%rsp),%r13
lea    0x70(%rsp),%r15
mov    %r12,%rdi
mov    %rbx,%rsi
lea    0x8(%rsp),%rdx
lea    0x10(%rsp),%rcx
lea    0x68(%rsp),%r8
xor    %eax,%eax
call   1060 <cdflib_dinvr@plt>
mov    (%r12),%eax
cmp    $0x1,%eax
jne    19b4 <cdflib_cdfnbn+0x854>
mov    %rbx,%rdi
mov    0x18(%rsp),%rsi
mov    0x20(%rsp),%rdx
mov    0xe0(%rsp),%rcx
mov    %r13,%r8
mov    %r15,%r9
xor    %eax,%eax
call   1070 <cdflib_cumnbn@plt>
movsd  0x40(%rsp),%xmm0
ucomisd 0x50(%rsp),%xmm0
mov    %r15,%rax
cmovae %r13,%rax
movsd  (%rax),%xmm0
subsd  0x0(%rbp),%xmm0
movsd  %xmm0,0x8(%rsp)
jmp    1852 <cdflib_cdfnbn+0x6f2>
mov    %r14,(%rdx)
movabs $0x7e37e43c8800759c,%rax
e4 37 7e
mov    %rax,0x38(%rsp)
movabs $0x358dee7a4ad4b81f,%rax
ee 8d 35
mov    %rax,0x30(%rsp)
movabs $0x3e45798ee2308c3a,%rax
79 45 3e
mov    %rax,0x28(%rsp)
lea    0x28(%rsp),%rax
mov    %rax,(%rsp)
lea    0x80(%rsp),%rdi
lea    0x38(%rsp),%rsi
lea    0xa0(%rsp),%rcx
mov    %rdx,%r14
lea    0x98(%rsp),%r8
lea    0x30(%rsp),%r9
mov    %rcx,%rdx
xor    %eax,%eax
call   1040 <cdflib_dstinv@plt>
movsd  0x40(%rsp),%xmm0
ucomisd 0x50(%rsp),%xmm0
movl   $0x0,(%r12)
cmovae %r13,%rbp
lea    0x78(%rsp),%r13
lea    0x70(%rsp),%r15
mov    %r12,%rdi
mov    %r14,%rsi
lea    0x8(%rsp),%rdx
lea    0x10(%rsp),%rcx
lea    0x68(%rsp),%r8
xor    %eax,%eax
call   1060 <cdflib_dinvr@plt>
mov    (%r12),%eax
cmp    $0x1,%eax
jne    19d6 <cdflib_cdfnbn+0x876>
mov    %rbx,%rdi
mov    %r14,%rsi
mov    0x20(%rsp),%rdx
mov    0xe0(%rsp),%rcx
mov    %r13,%r8
mov    %r15,%r9
xor    %eax,%eax
call   1070 <cdflib_cumnbn@plt>
movsd  0x40(%rsp),%xmm0
ucomisd 0x50(%rsp),%xmm0
mov    %r15,%rax
cmovae %r13,%rax
movsd  (%rax),%xmm0
subsd  0x0(%rbp),%xmm0
movsd  %xmm0,0x8(%rsp)
jmp    194b <cdflib_cdfnbn+0x7eb>
cmp    $0xffffffff,%eax
jne    1a19 <cdflib_cdfnbn+0x8b9>
cmpq   $0x0,0x10(%rsp)
jne    19e3 <cdflib_cdfnbn+0x883>
movl   $0x2,(%r12)
mov    0xf0(%rsp),%rax
mov    %r14,(%rax)
jmp    1a19 <cdflib_cdfnbn+0x8b9>
cmp    $0xffffffff,%eax
jne    1a19 <cdflib_cdfnbn+0x8b9>
cmpq   $0x0,0x10(%rsp)
je     19fc <cdflib_cdfnbn+0x89c>
movl   $0x1,(%r12)
mov    0xf0(%rsp),%rax
movq   $0x0,(%rax)
jmp    1a19 <cdflib_cdfnbn+0x8b9>
movl   $0x2,(%r12)
mov    0xf0(%rsp),%rax
movabs $0x7e37e43c8800759c,%rcx
e4 37 7e
mov    %rcx,(%rax)
add    $0xa8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

LLVM IR (-O0):
@cdflib_cdfnbn.tol = internal constant double 1.000000e-08
@cdflib_cdfnbn.atol = internal constant double 1.000000e-50
@cdflib_cdfnbn.inf = internal constant double 1.000000e+300
@cdflib_cdfnbn.one = internal constant double 1.000000e+00
@cdflib_cdfnbn.K1 = internal constant i32 1
define void @cdflib_cdfnbn(i32* %0, double* %1, double* %2, double* %3, double* %4, double* %5, double* %6, i32* %7, double* %8) {
%10 = alloca i32*
%11 = alloca double*
%12 = alloca double*
%13 = alloca double*
%14 = alloca double*
%15 = alloca double*
%16 = alloca double*
%17 = alloca i32*
%18 = alloca double*
%19 = alloca double
%20 = alloca double
%21 = alloca double
%22 = alloca double
%23 = alloca double
%24 = alloca double
%25 = alloca double
%26 = alloca double
%27 = alloca double
%28 = alloca double
%29 = alloca double
%30 = alloca i64
%31 = alloca i64
%32 = alloca i64
%33 = alloca double
%34 = alloca double
%35 = alloca double
%36 = alloca double
%37 = alloca double
%38 = alloca double
%39 = alloca double
%40 = alloca double
store i32* %0, i32** %10
store double* %1, double** %11
store double* %2, double** %12
store double* %3, double** %13
store double* %4, double** %14
store double* %5, double** %15
store double* %6, double** %16
store i32* %7, i32** %17
store double* %8, double** %18
store double 0.000000e+00, double* %19
store double 5.000000e-01, double* %20
store double 5.000000e+00, double* %21
store double 1.000000e+00, double* %22
%41 = load i32*, i32** %17
store i32 0, i32* %41
%42 = load double*, double** %18
store double 0.000000e+00, double* %42
%43 = load i32*, i32** %10
%44 = load i32, i32* %43
%45 = icmp slt i32 %44, 1
br i1 %45, label %51, label %46
46: ; preds = %9
%47 = load i32*, i32** %10
%48 = load i32, i32* %47
%49 = icmp sgt i32 %48, 4
br i1 %49, label %51, label %50
50: ; preds = %46
br label %62
51: ; preds = %46, %9
%52 = load i32*, i32** %10
%53 = load i32, i32* %52
%54 = icmp slt i32 %53, 1
br i1 %54, label %56, label %55
55: ; preds = %51
br label %58
56: ; preds = %51
%57 = load double*, double** %18
store double 1.000000e+00, double* %57
br label %60
58: ; preds = %55
%59 = load double*, double** %18
store double 4.000000e+00, double* %59
br label %60
60: ; preds = %58, %56
%61 = load i32*, i32** %17
store i32 -1, i32* %61
br label %487
62: ; preds = %50
%63 = load i32*, i32** %10
%64 = load i32, i32* %63
%65 = icmp eq i32 %64, 1
br i1 %65, label %66, label %67
66: ; preds = %62
br label %87
67: ; preds = %62
%68 = load double*, double** %11
%69 = load double, double* %68
%70 = fcmp olt double %69, 0.000000e+00
br i1 %70, label %76, label %71
71: ; preds = %67
%72 = load double*, double** %11
%73 = load double, double* %72
%74 = fcmp ogt double %73, 1.000000e+00
br i1 %74, label %76, label %75
75: ; preds = %71
br label %88
76: ; preds = %71, %67
%77 = load double*, double** %11
%78 = load double, double* %77
%79 = fcmp olt double %78, 0.000000e+00
br i1 %79, label %81, label %80
80: ; preds = %76
br label %83
81: ; preds = %76
%82 = load double*, double** %18
store double 0.000000e+00, double* %82
br label %85
83: ; preds = %80
%84 = load double*, double** %18
store double 1.000000e+00, double* %84
br label %85
85: ; preds = %83, %81
%86 = load i32*, i32** %17
store i32 -2, i32* %86
br label %487
87: ; preds = %66
br label %88
88: ; preds = %87, %75
%89 = load i32*, i32** %10
%90 = load i32, i32* %89
%91 = icmp eq i32 %90, 1
br i1 %91, label %92, label %93
92: ; preds = %88
br label %113
93: ; preds = %88
%94 = load double*, double** %12
%95 = load double, double* %94
%96 = fcmp ole double %95, 0.000000e+00
br i1 %96, label %102, label %97
97: ; preds = %93
%98 = load double*, double** %12
%99 = load double, double* %98
%100 = fcmp ogt double %99, 1.000000e+00
br i1 %100, label %102, label %101
101: ; preds = %97
br label %114
102: ; preds = %97, %93
%103 = load double*, double** %12
%104 = load double, double* %103
%105 = fcmp ole double %104, 0.000000e+00
br i1 %105, label %107, label %106
106: ; preds = %102
br label %109
107: ; preds = %102
%108 = load double*, double** %18
store double 0.000000e+00, double* %108
br label %111
109: ; preds = %106
%110 = load double*, double** %18
store double 1.000000e+00, double* %110
br label %111
111: ; preds = %109, %107
%112 = load i32*, i32** %17
store i32 -3, i32* %112
br label %487
113: ; preds = %92
br label %114
114: ; preds = %113, %101
%115 = load i32*, i32** %10
%116 = load i32, i32* %115
%117 = icmp eq i32 %116, 2
br i1 %117, label %118, label %119
118: ; preds = %114
br label %127
119: ; preds = %114
%120 = load double*, double** %13
%121 = load double, double* %120
%122 = fcmp olt double %121, 0.000000e+00
br i1 %122, label %124, label %123
123: ; preds = %119
br label %128
124: ; preds = %119
%125 = load double*, double** %18
store double 0.000000e+00, double* %125
%126 = load i32*, i32** %17
store i32 -4, i32* %126
br label %487
127: ; preds = %118
br label %128
128: ; preds = %127, %123
%129 = load i32*, i32** %10
%130 = load i32, i32* %129
%131 = icmp eq i32 %130, 3
br i1 %131, label %132, label %133
132: ; preds = %128
br label %141
133: ; preds = %128
%134 = load double*, double** %14
%135 = load double, double* %134
%136 = fcmp olt double %135, 0.000000e+00
br i1 %136, label %138, label %137
137: ; preds = %133
br label %142
138: ; preds = %133
%139 = load double*, double** %18
store double 0.000000e+00, double* %139
%140 = load i32*, i32** %17
store i32 -5, i32* %140
br label %487
141: ; preds = %132
br label %142
142: ; preds = %141, %137
%143 = load i32*, i32** %10
%144 = load i32, i32* %143
%145 = icmp eq i32 %144, 4
br i1 %145, label %146, label %147
146: ; preds = %142
br label %167
147: ; preds = %142
%148 = load double*, double** %15
%149 = load double, double* %148
%150 = fcmp olt double %149, 0.000000e+00
br i1 %150, label %156, label %151
151: ; preds = %147
%152 = load double*, double** %15
%153 = load double, double* %152
%154 = fcmp ogt double %153, 1.000000e+00
br i1 %154, label %156, label %155
155: ; preds = %151
br label %168
156: ; preds = %151, %147
%157 = load double*, double** %15
%158 = load double, double* %157
%159 = fcmp olt double %158, 0.000000e+00
br i1 %159, label %161, label %160
160: ; preds = %156
br label %163
161: ; preds = %156
%162 = load double*, double** %18
store double 0.000000e+00, double* %162
br label %165
163: ; preds = %160
%164 = load double*, double** %18
store double 1.000000e+00, double* %164
br label %165
165: ; preds = %163, %161
%166 = load i32*, i32** %17
store i32 -6, i32* %166
br label %487
167: ; preds = %146
br label %168
168: ; preds = %167, %155
%169 = load i32*, i32** %10
%170 = load i32, i32* %169
%171 = icmp eq i32 %170, 4
br i1 %171, label %172, label %173
172: ; preds = %168
br label %193
173: ; preds = %168
%174 = load double*, double** %16
%175 = load double, double* %174
%176 = fcmp olt double %175, 0.000000e+00
br i1 %176, label %182, label %177
177: ; preds = %173
%178 = load double*, double** %16
%179 = load double, double* %178
%180 = fcmp ogt double %179, 1.000000e+00
br i1 %180, label %182, label %181
181: ; preds = %177
br label %194
182: ; preds = %177, %173
%183 = load double*, double** %16
%184 = load double, double* %183
%185 = fcmp olt double %184, 0.000000e+00
br i1 %185, label %187, label %186
186: ; preds = %182
br label %189
187: ; preds = %182
%188 = load double*, double** %18
store double 0.000000e+00, double* %188
br label %191
189: ; preds = %186
%190 = load double*, double** %18
store double 1.000000e+00, double* %190
br label %191
191: ; preds = %189, %187
%192 = load i32*, i32** %17
store i32 -7, i32* %192
br label %487
193: ; preds = %172
br label %194
194: ; preds = %193, %181
%195 = load i32*, i32** %10
%196 = load i32, i32* %195
%197 = icmp eq i32 %196, 1
br i1 %197, label %198, label %199
198: ; preds = %194
br label %224
199: ; preds = %194
%200 = load double*, double** %11
%201 = load double, double* %200
%202 = load double*, double** %12
%203 = load double, double* %202
%204 = fadd double %201, %203
store double %204, double* %26
%205 = load double, double* %26
%206 = fsub double %205, 5.000000e-01
%207 = fsub double %206, 5.000000e-01
%208 = call double @llvm.fabs.f64(double %207)
%209 = call i32 (i32, ...) bitcast (i32 (...)* @dpmpar to i32 (i32, ...)*)(i32 1)
%210 = sitofp i32 %209 to double
%211 = fmul double 3.000000e+00, %210
%212 = fcmp ogt double %208, %211
br i1 %212, label %214, label %213
213: ; preds = %199
br label %225
214: ; preds = %199
%215 = load double, double* %26
%216 = fcmp olt double %215, 0.000000e+00
br i1 %216, label %218, label %217
217: ; preds = %214
br label %220
218: ; preds = %214
%219 = load double*, double** %18
store double 0.000000e+00, double* %219
br label %222
220: ; preds = %217
%221 = load double*, double** %18
store double 1.000000e+00, double* %221
br label %222
222: ; preds = %220, %218
%223 = load i32*, i32** %17
store i32 3, i32* %223
br label %487
224: ; preds = %198
br label %225
225: ; preds = %224, %213
%226 = load i32*, i32** %10
%227 = load i32, i32* %226
%228 = icmp eq i32 %227, 4
br i1 %228, label %229, label %230
229: ; preds = %225
br label %255
230: ; preds = %225
%231 = load double*, double** %15
%232 = load double, double* %231
%233 = load double*, double** %16
%234 = load double, double* %233
%235 = fadd double %232, %234
store double %235, double* %27
%236 = load double, double* %27
%237 = fsub double %236, 5.000000e-01
%238 = fsub double %237, 5.000000e-01
%239 = call double @llvm.fabs.f64(double %238)
%240 = call i32 (i32, ...) bitcast (i32 (...)* @dpmpar to i32 (i32, ...)*)(i32 1)
%241 = sitofp i32 %240 to double
%242 = fmul double 3.000000e+00, %241
%243 = fcmp ogt double %239, %242
br i1 %243, label %245, label %244
244: ; preds = %230
br label %256
245: ; preds = %230
%246 = load double, double* %27
%247 = fcmp olt double %246, 0.000000e+00
br i1 %247, label %249, label %248
248: ; preds = %245
br label %251
249: ; preds = %245
%250 = load double*, double** %18
store double 0.000000e+00, double* %250
br label %253
251: ; preds = %248
%252 = load double*, double** %18
store double 1.000000e+00, double* %252
br label %253
253: ; preds = %251, %249
%254 = load i32*, i32** %17
store i32 4, i32* %254
br label %487
255: ; preds = %229
br label %256
256: ; preds = %255, %244
%257 = load i32*, i32** %10
%258 = load i32, i32* %257
%259 = icmp eq i32 %258, 1
br i1 %259, label %268, label %260
260: ; preds = %256
%261 = load double*, double** %11
%262 = load double, double* %261
%263 = load double*, double** %12
%264 = load double, double* %263
%265 = fcmp ole double %262, %264
%266 = zext i1 %265 to i32
%267 = sext i32 %266 to i64
store i64 %267, i64* %32
br label %268
268: ; preds = %260, %256
%269 = load i32*, i32** %10
%270 = load i32, i32* %269
%271 = icmp eq i32 1, %270
br i1 %271, label %272, label %281
272: ; preds = %268
%273 = load double*, double** %13
%274 = load double*, double** %14
%275 = load double*, double** %15
%276 = load double*, double** %16
%277 = load double*, double** %11
%278 = load double*, double** %12
%279 = call i32 (double*, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @cdflib_cumnbn to i32 (double*, double*, double*, double*, double*, double*, ...)*)(double* %273, double* %274, double* %275, double* %276, double* %277, double* %278)
%280 = load i32*, i32** %17
store i32 0, i32* %280
br label %485
281: ; preds = %268
%282 = load i32*, i32** %10
%283 = load i32, i32* %282
%284 = icmp eq i32 2, %283
br i1 %284, label %285, label %337
285: ; preds = %281
%286 = load double*, double** %13
store double 5.000000e+00, double* %286
store double 1.000000e+300, double* %33
store double 1.000000e-50, double* %34
store double 1.000000e-08, double* %35
%287 = call i32 (double*, double*, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @cdflib_dstinv to i32 (double*, double*, double*, double*, double*, double*, double*, ...)*)(double* %19, double* %33, double* %20, double* %20, double* %21, double* %34, double* %35)
%288 = load i32*, i32** %17
store i32 0, i32* %288
%289 = load i32*, i32** %17
%290 = load double*, double** %13
%291 = call i32 (i32*, double*, double*, i64*, i64*, ...) bitcast (i32 (...)* @cdflib_dinvr to i32 (i32*, double*, double*, i64*, i64*, ...)*)(i32* %289, double* %290, double* %23, i64* %31, i64* %30)
br label %292
292: ; preds = %316, %285
%293 = load i32*, i32** %17
%294 = load i32, i32* %293
%295 = icmp eq i32 %294, 1
br i1 %295, label %297, label %296
296: ; preds = %292
br label %320
297: ; preds = %292
%298 = load double*, double** %13
%299 = load double*, double** %14
%300 = load double*, double** %15
%301 = load double*, double** %16
%302 = call i32 (double*, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @cdflib_cumnbn to i32 (double*, double*, double*, double*, double*, double*, ...)*)(double* %298, double* %299, double* %300, double* %301, double* %28, double* %29)
%303 = load i64, i64* %32
%304 = icmp ne i64 %303, 0
br i1 %304, label %306, label %305
305: ; preds = %297
br label %311
306: ; preds = %297
%307 = load double, double* %28
%308 = load double*, double** %11
%309 = load double, double* %308
%310 = fsub double %307, %309
store double %310, double* %23
br label %316
311: ; preds = %305
%312 = load double, double* %29
%313 = load double*, double** %12
%314 = load double, double* %313
%315 = fsub double %312, %314
store double %315, double* %23
br label %316
316: ; preds = %311, %306
%317 = load i32*, i32** %17
%318 = load double*, double** %13
%319 = call i32 (i32*, double*, double*, i64*, i64*, ...) bitcast (i32 (...)* @cdflib_dinvr to i32 (i32*, double*, double*, i64*, i64*, ...)*)(i32* %317, double* %318, double* %23, i64* %31, i64* %30)
br label %292
320: ; preds = %296
%321 = load i32*, i32** %17
%322 = load i32, i32* %321
%323 = icmp eq i32 %322, -1
br i1 %323, label %325, label %324
324: ; preds = %320
br label %335
325: ; preds = %320
%326 = load i64, i64* %31
%327 = icmp ne i64 %326, 0
br i1 %327, label %329, label %328
328: ; preds = %325
br label %332
329: ; preds = %325
%330 = load i32*, i32** %17
store i32 1, i32* %330
%331 = load double*, double** %18
store double 0.000000e+00, double* %331
br label %336
332: ; preds = %328
%333 = load i32*, i32** %17
store i32 2, i32* %333
%334 = load double*, double** %18
store double 1.000000e+300, double* %334
br label %335
335: ; preds = %332, %324
br label %336
336: ; preds = %335, %329
br label %484
337: ; preds = %281
%338 = load i32*, i32** %10
%339 = load i32, i32* %338
%340 = icmp eq i32 3, %339
br i1 %340, label %341, label %393
341: ; preds = %337
%342 = load double*, double** %14
store double 5.000000e+00, double* %342
store double 1.000000e+300, double* %36
store double 1.000000e-50, double* %37
store double 1.000000e-08, double* %38
%343 = call i32 (double*, double*, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @cdflib_dstinv to i32 (double*, double*, double*, double*, double*, double*, double*, ...)*)(double* %19, double* %36, double* %20, double* %20, double* %21, double* %37, double* %38)
%344 = load i32*, i32** %17
store i32 0, i32* %344
%345 = load i32*, i32** %17
%346 = load double*, double** %14
%347 = call i32 (i32*, double*, double*, i64*, i64*, ...) bitcast (i32 (...)* @cdflib_dinvr to i32 (i32*, double*, double*, i64*, i64*, ...)*)(i32* %345, double* %346, double* %23, i64* %31, i64* %30)
br label %348
348: ; preds = %372, %341
%349 = load i32*, i32** %17
%350 = load i32, i32* %349
%351 = icmp eq i32 %350, 1
br i1 %351, label %353, label %352
352: ; preds = %348
br label %376
353: ; preds = %348
%354 = load double*, double** %13
%355 = load double*, double** %14
%356 = load double*, double** %15
%357 = load double*, double** %16
%358 = call i32 (double*, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @cdflib_cumnbn to i32 (double*, double*, double*, double*, double*, double*, ...)*)(double* %354, double* %355, double* %356, double* %357, double* %28, double* %29)
%359 = load i64, i64* %32
%360 = icmp ne i64 %359, 0
br i1 %360, label %362, label %361
361: ; preds = %353
br label %367
362: ; preds = %353
%363 = load double, double* %28
%364 = load double*, double** %11
%365 = load double, double* %364
%366 = fsub double %363, %365
store double %366, double* %23
br label %372
367: ; preds = %361
%368 = load double, double* %29
%369 = load double*, double** %12
%370 = load double, double* %369
%371 = fsub double %368, %370
store double %371, double* %23
br label %372
372: ; preds = %367, %362
%373 = load i32*, i32** %17
%374 = load double*, double** %14
%375 = call i32 (i32*, double*, double*, i64*, i64*, ...) bitcast (i32 (...)* @cdflib_dinvr to i32 (i32*, double*, double*, i64*, i64*, ...)*)(i32* %373, double* %374, double* %23, i64* %31, i64* %30)
br label %348
376: ; preds = %352
%377 = load i32*, i32** %17
%378 = load i32, i32* %377
%379 = icmp eq i32 %378, -1
br i1 %379, label %381, label %380
380: ; preds = %376
br label %391
381: ; preds = %376
%382 = load i64, i64* %31
%383 = icmp ne i64 %382, 0
br i1 %383, label %385, label %384
384: ; preds = %381
br label %388
385: ; preds = %381
%386 = load i32*, i32** %17
store i32 1, i32* %386
%387 = load double*, double** %18
store double 0.000000e+00, double* %387
br label %392
388: ; preds = %384
%389 = load i32*, i32** %17
store i32 2, i32* %389
%390 = load double*, double** %18
store double 1.000000e+300, double* %390
br label %391
391: ; preds = %388, %380
br label %392
392: ; preds = %391, %385
br label %483
393: ; preds = %337
%394 = load i32*, i32** %10
%395 = load i32, i32* %394
%396 = icmp eq i32 4, %395
br i1 %396, label %397, label %482
397: ; preds = %393
store double 1.000000e-50, double* %39
store double 1.000000e-08, double* %40
%398 = call i32 (double*, double*, double*, double*, ...) bitcast (i32 (...)* @cdflib_dstzr to i32 (double*, double*, double*, double*, ...)*)(double* %19, double* %22, double* %39, double* %40)
%399 = load i64, i64* %32
%400 = icmp ne i64 %399, 0
br i1 %400, label %402, label %401
401: ; preds = %397
br label %434
402: ; preds = %397
%403 = load i32*, i32** %17
store i32 0, i32* %403
%404 = load i32*, i32** %17
%405 = load double*, double** %15
%406 = call i32 (i32*, double*, double*, double*, double*, i64*, i64*, ...) bitcast (i32 (...)* @cdflib_dzror to i32 (i32*, double*, double*, double*, double*, i64*, i64*, ...)*)(i32* %404, double* %405, double* %23, double* %25, double* %24, i64* %31, i64* %30)
%407 = load double*, double** %15
%408 = load double, double* %407
%409 = fsub double 1.000000e+00, %408
%410 = load double*, double** %16
store double %409, double* %410
br label %411
411: ; preds = %416, %402
%412 = load i32*, i32** %17
%413 = load i32, i32* %412
%414 = icmp eq i32 %413, 1
br i1 %414, label %416, label %415
415: ; preds = %411
br label %433
416: ; preds = %411
%417 = load double*, double** %13
%418 = load double*, double** %14
%419 = load double*, double** %15
%420 = load double*, double** %16
%421 = call i32 (double*, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @cdflib_cumnbn to i32 (double*, double*, double*, double*, double*, double*, ...)*)(double* %417, double* %418, double* %419, double* %420, double* %28, double* %29)
%422 = load double, double* %28
%423 = load double*, double** %11
%424 = load double, double* %423
%425 = fsub double %422, %424
store double %425, double* %23
%426 = load i32*, i32** %17
%427 = load double*, double** %15
%428 = call i32 (i32*, double*, double*, double*, double*, i64*, i64*, ...) bitcast (i32 (...)* @cdflib_dzror to i32 (i32*, double*, double*, double*, double*, i64*, i64*, ...)*)(i32* %426, double* %427, double* %23, double* %25, double* %24, i64* %31, i64* %30)
%429 = load double*, double** %15
%430 = load double, double* %429
%431 = fsub double 1.000000e+00, %430
%432 = load double*, double** %16
store double %431, double* %432
br label %411
433: ; preds = %415
br label %465
434: ; preds = %401
%435 = load i32*, i32** %17
store i32 0, i32* %435
%436 = load i32*, i32** %17
%437 = load double*, double** %16
%438 = call i32 (i32*, double*, double*, double*, double*, i64*, i64*, ...) bitcast (i32 (...)* @cdflib_dzror to i32 (i32*, double*, double*, double*, double*, i64*, i64*, ...)*)(i32* %436, double* %437, double* %23, double* %25, double* %24, i64* %31, i64* %30)
%439 = load double*, double** %16
%440 = load double, double* %439
%441 = fsub double 1.000000e+00, %440
%442 = load double*, double** %15
store double %441, double* %442
br label %443
443: ; preds = %448, %434
%444 = load i32*, i32** %17
%445 = load i32, i32* %444
%446 = icmp eq i32 %445, 1
br i1 %446, label %448, label %447
447: ; preds = %443
br label %466
448: ; preds = %443
%449 = load double*, double** %13
%450 = load double*, double** %14
%451 = load double*, double** %15
%452 = load double*, double** %16
%453 = call i32 (double*, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @cdflib_cumnbn to i32 (double*, double*, double*, double*, double*, double*, ...)*)(double* %449, double* %450, double* %451, double* %452, double* %28, double* %29)
%454 = load double, double* %29
%455 = load double*, double** %12
%456 = load double, double* %455
%457 = fsub double %454, %456
store double %457, double* %23
%458 = load i32*, i32** %17
%459 = load double*, double** %16
%460 = call i32 (i32*, double*, double*, double*, double*, i64*, i64*, ...) bitcast (i32 (...)* @cdflib_dzror to i32 (i32*, double*, double*, double*, double*, i64*, i64*, ...)*)(i32* %458, double* %459, double* %23, double* %25, double* %24, i64* %31, i64* %30)
%461 = load double*, double** %16
%462 = load double, double* %461
%463 = fsub double 1.000000e+00, %462
%464 = load double*, double** %15
store double %463, double* %464
br label %443
465: ; preds = %433
br label %466
466: ; preds = %465, %447
%467 = load i32*, i32** %17
%468 = load i32, i32* %467
%469 = icmp eq i32 %468, -1
br i1 %469, label %471, label %470
470: ; preds = %466
br label %486
471: ; preds = %466
%472 = load i64, i64* %31
%473 = icmp ne i64 %472, 0
br i1 %473, label %475, label %474
474: ; preds = %471
br label %478
475: ; preds = %471
%476 = load i32*, i32** %17
store i32 1, i32* %476
%477 = load double*, double** %18
store double 0.000000e+00, double* %477
br label %481
478: ; preds = %474
%479 = load i32*, i32** %17
store i32 2, i32* %479
%480 = load double*, double** %18
store double 1.000000e+00, double* %480
br label %481
481: ; preds = %478, %475
br label %482
482: ; preds = %481, %393
br label %483
483: ; preds = %482, %392
br label %484
484: ; preds = %483, %336
br label %485
485: ; preds = %484, %272
br label %486
486: ; preds = %485, %470
br label %487
487: ; preds = %486, %253, %222, %191, %165, %138, %124, %111, %85, %60
ret void
}

LLVM IR (-O2):
define void @cdflib_cdfnbn(i32* nocapture %0, double* %1, double* %2, double* %3, double* %4, double* %5, double* %6, i32* %7, double* nocapture writeonly %8) {
%10 = alloca double
%11 = alloca double
%12 = alloca double
%13 = alloca double
%14 = alloca double
%15 = alloca double
%16 = alloca double
%17 = alloca double
%18 = alloca double
%19 = alloca i64
%20 = alloca i64
%21 = alloca double
%22 = alloca double
%23 = alloca double
%24 = alloca double
%25 = alloca double
%26 = alloca double
%27 = alloca double
%28 = alloca double
%29 = bitcast double* %10 to i8*
store double 0.000000e+00, double* %10
%30 = bitcast double* %11 to i8*
store double 5.000000e-01, double* %11
%31 = bitcast double* %12 to i8*
store double 5.000000e+00, double* %12
%32 = bitcast double* %13 to i8*
store double 1.000000e+00, double* %13
%33 = bitcast double* %14 to i8*
%34 = bitcast double* %15 to i8*
%35 = bitcast double* %16 to i8*
%36 = bitcast double* %17 to i8*
%37 = bitcast double* %18 to i8*
%38 = bitcast i64* %19 to i8*
%39 = bitcast i64* %20 to i8*
%40 = bitcast double* %21 to i8*
%41 = bitcast double* %22 to i8*
%42 = bitcast double* %23 to i8*
%43 = bitcast double* %24 to i8*
%44 = bitcast double* %25 to i8*
%45 = bitcast double* %26 to i8*
%46 = bitcast double* %27 to i8*
%47 = bitcast double* %28 to i8*
store i32 0, i32* %7
store double 0.000000e+00, double* %8
%48 = load i32, i32* %0
%49 = add i32 %48, -5
%50 = icmp ult i32 %49, -4
br i1 %50, label %51, label %54
51: ; preds = %9
%52 = icmp slt i32 %48, 1
%53 = select i1 %52, double 1.000000e+00, double 4.000000e+00
store double %53, double* %8
store i32 -1, i32* %7
br label %233
54: ; preds = %9
%55 = icmp eq i32 %48, 1
br i1 %55, label %76, label %56
56: ; preds = %54
%57 = load double, double* %1
%58 = fcmp olt double %57, 0.000000e+00
%59 = fcmp ogt double %57, 1.000000e+00
%60 = or i1 %58, %59
br i1 %60, label %61, label %63
61: ; preds = %56
%62 = select i1 %58, double 0.000000e+00, double 1.000000e+00
store double %62, double* %8
store i32 -2, i32* %7
br label %233
63: ; preds = %56
%64 = load double, double* %2
%65 = fcmp ole double %64, 0.000000e+00
%66 = fcmp ogt double %64, 1.000000e+00
%67 = or i1 %65, %66
br i1 %67, label %68, label %71
68: ; preds = %63
%69 = fcmp ugt double %64, 0.000000e+00
%70 = select i1 %69, double 1.000000e+00, double 0.000000e+00
store double %70, double* %8
store i32 -3, i32* %7
br label %233
71: ; preds = %63
%72 = icmp eq i32 %48, 2
br i1 %72, label %82, label %73
73: ; preds = %71
%74 = load double, double* %3
%75 = fcmp olt double %74, 0.000000e+00
br i1 %75, label %79, label %80
76: ; preds = %54
%77 = load double, double* %3
%78 = fcmp olt double %77, 0.000000e+00
br i1 %78, label %79, label %82
79: ; preds = %76, %73
store i32 -4, i32* %7
br label %233
80: ; preds = %73
%81 = icmp eq i32 %48, 3
br i1 %81, label %89, label %85
82: ; preds = %76, %71
%83 = load double, double* %4
%84 = fcmp olt double %83, 0.000000e+00
br i1 %84, label %88, label %89
85: ; preds = %80
%86 = load double, double* %4
%87 = fcmp olt double %86, 0.000000e+00
br i1 %87, label %88, label %107
88: ; preds = %85, %82
store i32 -5, i32* %7
br label %233
89: ; preds = %82, %80
%90 = load double, double* %5
%91 = fcmp olt double %90, 0.000000e+00
%92 = fcmp ogt double %90, 1.000000e+00
%93 = or i1 %91, %92
br i1 %93, label %94, label %96
94: ; preds = %89
%95 = select i1 %91, double 0.000000e+00, double 1.000000e+00
store double %95, double* %8
store i32 -6, i32* %7
br label %233
96: ; preds = %89
%97 = load double, double* %6
%98 = fcmp olt double %97, 0.000000e+00
%99 = fcmp ogt double %97, 1.000000e+00
%100 = or i1 %98, %99
br i1 %100, label %101, label %103
101: ; preds = %96
%102 = select i1 %98, double 0.000000e+00, double 1.000000e+00
store double %102, double* %8
store i32 -7, i32* %7
br label %233
103: ; preds = %96
br i1 %55, label %132, label %104
104: ; preds = %103
%105 = load double, double* %1
%106 = load double, double* %2
br label %107
107: ; preds = %104, %85
%108 = phi double [ %106, %104 ], [ %64, %85 ]
%109 = phi double [ %105, %104 ], [ %57, %85 ]
%110 = fadd double %109, %108
%111 = fadd double %110, -5.000000e-01
%112 = fadd double %111, -5.000000e-01
%113 = tail call double @llvm.fabs.f64(double %112)
%114 = tail call i32 (i32, ...) bitcast (i32 (...)* @dpmpar to i32 (i32, ...)*)(i32 1)
%115 = sitofp i32 %114 to double
%116 = fmul double %115, 3.000000e+00
%117 = fcmp ogt double %113, %116
br i1 %117, label %118, label %121
118: ; preds = %107
%119 = fcmp olt double %110, 0.000000e+00
%120 = select i1 %119, double 0.000000e+00, double 1.000000e+00
store double %120, double* %8
store i32 3, i32* %7
br label %233
121: ; preds = %107
%122 = load i32, i32* %0
%123 = icmp eq i32 %122, 4
br i1 %123, label %127, label %124
124: ; preds = %121
%125 = load double, double* %5
%126 = load double, double* %6
br label %132
127: ; preds = %121
%128 = load double, double* %1
%129 = load double, double* %2
%130 = fcmp ugt double %128, %129
store double 1.000000e-50, double* %27
store double 1.000000e-08, double* %28
%131 = call i32 (double*, double*, double*, double*, ...) bitcast (i32 (...)* @cdflib_dstzr to i32 (double*, double*, double*, double*, ...)*)(double* %10, double* %13, double* %27, double* %28)
br i1 %130, label %209, label %193
132: ; preds = %124, %103
%133 = phi double [ %126, %124 ], [ %97, %103 ]
%134 = phi double [ %125, %124 ], [ %90, %103 ]
%135 = fadd double %134, %133
%136 = fadd double %135, -5.000000e-01
%137 = fadd double %136, -5.000000e-01
%138 = tail call double @llvm.fabs.f64(double %137)
%139 = tail call i32 (i32, ...) bitcast (i32 (...)* @dpmpar to i32 (i32, ...)*)(i32 1)
%140 = sitofp i32 %139 to double
%141 = fmul double %140, 3.000000e+00
%142 = fcmp ogt double %138, %141
br i1 %142, label %143, label %146
143: ; preds = %132
%144 = fcmp olt double %135, 0.000000e+00
%145 = select i1 %144, double 0.000000e+00, double 1.000000e+00
store double %145, double* %8
store i32 4, i32* %7
br label %233
146: ; preds = %132
%147 = load i32, i32* %0
%148 = icmp eq i32 %147, 1
br i1 %148, label %153, label %149
149: ; preds = %146
%150 = load double, double* %1
%151 = load double, double* %2
%152 = fcmp ole double %150, %151
switch i32 %147, label %233 [
i32 4, label %191
i32 2, label %155
i32 3, label %173
]
153: ; preds = %146
%154 = tail call i32 (double*, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @cdflib_cumnbn to i32 (double*, double*, double*, double*, double*, double*, ...)*)(double* %3, double* %4, double* %5, double* %6, double* %1, double* %2)
store i32 0, i32* %7
br label %233
155: ; preds = %149
store double 5.000000e+00, double* %3
store double 1.000000e+300, double* %21
store double 1.000000e-50, double* %22
store double 1.000000e-08, double* %23
%156 = call i32 (double*, double*, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @cdflib_dstinv to i32 (double*, double*, double*, double*, double*, double*, double*, ...)*)(double* %10, double* %21, double* %11, double* %11, double* %12, double* %22, double* %23)
store i32 0, i32* %7
%157 = select i1 %152, double* %1, double* %2
br label %158
158: ; preds = %161, %155
%159 = call i32 (i32*, double*, double*, i64*, i64*, ...) bitcast (i32 (...)* @cdflib_dinvr to i32 (i32*, double*, double*, i64*, i64*, ...)*)(i32* %7, double* %3, double* %14, i64* %20, i64* %19)
%160 = load i32, i32* %7
switch i32 %160, label %233 [
i32 1, label %161
i32 -1, label %168
]
161: ; preds = %158
%162 = call i32 (double*, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @cdflib_cumnbn to i32 (double*, double*, double*, double*, double*, double*, ...)*)(double* %3, double* %4, double* %5, double* %6, double* %17, double* %18)
%163 = load double, double* %18
%164 = load double, double* %17
%165 = select i1 %152, double %164, double %163
%166 = load double, double* %157
%167 = fsub double %165, %166
store double %167, double* %14
br label %158
168: ; preds = %158
%169 = load i64, i64* %20
%170 = icmp eq i64 %169, 0
br i1 %170, label %172, label %171
171: ; preds = %168
store i32 1, i32* %7
store double 0.000000e+00, double* %8
br label %233
172: ; preds = %168
store i32 2, i32* %7
store double 1.000000e+300, double* %8
br label %233
173: ; preds = %149
store double 5.000000e+00, double* %4
store double 1.000000e+300, double* %24
store double 1.000000e-50, double* %25
store double 1.000000e-08, double* %26
%174 = call i32 (double*, double*, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @cdflib_dstinv to i32 (double*, double*, double*, double*, double*, double*, double*, ...)*)(double* %10, double* %24, double* %11, double* %11, double* %12, double* %25, double* %26)
store i32 0, i32* %7
%175 = select i1 %152, double* %1, double* %2
br label %176
176: ; preds = %179, %173
%177 = call i32 (i32*, double*, double*, i64*, i64*, ...) bitcast (i32 (...)* @cdflib_dinvr to i32 (i32*, double*, double*, i64*, i64*, ...)*)(i32* %7, double* %4, double* %14, i64* %20, i64* %19)
%178 = load i32, i32* %7
switch i32 %178, label %233 [
i32 1, label %179
i32 -1, label %186
]
179: ; preds = %176
%180 = call i32 (double*, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @cdflib_cumnbn to i32 (double*, double*, double*, double*, double*, double*, ...)*)(double* %3, double* %4, double* %5, double* %6, double* %17, double* %18)
%181 = load double, double* %18
%182 = load double, double* %17
%183 = select i1 %152, double %182, double %181
%184 = load double, double* %175
%185 = fsub double %183, %184
store double %185, double* %14
br label %176
186: ; preds = %176
%187 = load i64, i64* %20
%188 = icmp eq i64 %187, 0
br i1 %188, label %190, label %189
189: ; preds = %186
store i32 1, i32* %7
store double 0.000000e+00, double* %8
br label %233
190: ; preds = %186
store i32 2, i32* %7
store double 1.000000e+300, double* %8
br label %233
191: ; preds = %149
store double 1.000000e-50, double* %27
store double 1.000000e-08, double* %28
%192 = call i32 (double*, double*, double*, double*, ...) bitcast (i32 (...)* @cdflib_dstzr to i32 (double*, double*, double*, double*, ...)*)(double* %10, double* %13, double* %27, double* %28)
br i1 %152, label %193, label %209
193: ; preds = %127, %191
store i32 0, i32* %7
%194 = call i32 (i32*, double*, double*, double*, double*, i64*, i64*, ...) bitcast (i32 (...)* @cdflib_dzror to i32 (i32*, double*, double*, double*, double*, i64*, i64*, ...)*)(i32* %7, double* %5, double* %14, double* %16, double* %15, i64* %20, i64* %19)
%195 = load double, double* %5
%196 = fsub double 1.000000e+00, %195
store double %196, double* %6
%197 = load i32, i32* %7
%198 = icmp eq i32 %197, 1
br i1 %198, label %199, label %225
199: ; preds = %193, %199
%200 = call i32 (double*, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @cdflib_cumnbn to i32 (double*, double*, double*, double*, double*, double*, ...)*)(double* %3, double* %4, double* %5, double* %6, double* %17, double* %18)
%201 = load double, double* %17
%202 = load double, double* %1
%203 = fsub double %201, %202
store double %203, double* %14
%204 = call i32 (i32*, double*, double*, double*, double*, i64*, i64*, ...) bitcast (i32 (...)* @cdflib_dzror to i32 (i32*, double*, double*, double*, double*, i64*, i64*, ...)*)(i32* %7, double* %5, double* %14, double* %16, double* %15, i64* %20, i64* %19)
%205 = load double, double* %5
%206 = fsub double 1.000000e+00, %205
store double %206, double* %6
%207 = load i32, i32* %7
%208 = icmp eq i32 %207, 1
br i1 %208, label %199, label %225
209: ; preds = %127, %191
store i32 0, i32* %7
%210 = call i32 (i32*, double*, double*, double*, double*, i64*, i64*, ...) bitcast (i32 (...)* @cdflib_dzror to i32 (i32*, double*, double*, double*, double*, i64*, i64*, ...)*)(i32* %7, double* %6, double* %14, double* %16, double* %15, i64* %20, i64* %19)
%211 = load double, double* %6
%212 = fsub double 1.000000e+00, %211
store double %212, double* %5
%213 = load i32, i32* %7
%214 = icmp eq i32 %213, 1
br i1 %214, label %215, label %225
215: ; preds = %209, %215
%216 = call i32 (double*, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @cdflib_cumnbn to i32 (double*, double*, double*, double*, double*, double*, ...)*)(double* %3, double* %4, double* %5, double* %6, double* %17, double* %18)
%217 = load double, double* %18
%218 = load double, double* %2
%219 = fsub double %217, %218
store double %219, double* %14
%220 = call i32 (i32*, double*, double*, double*, double*, i64*, i64*, ...) bitcast (i32 (...)* @cdflib_dzror to i32 (i32*, double*, double*, double*, double*, i64*, i64*, ...)*)(i32* %7, double* %6, double* %14, double* %16, double* %15, i64* %20, i64* %19)
%221 = load double, double* %6
%222 = fsub double 1.000000e+00, %221
store double %222, double* %5
%223 = load i32, i32* %7
%224 = icmp eq i32 %223, 1
br i1 %224, label %215, label %225
225: ; preds = %215, %199, %209, %193
%226 = phi i32 [ %197, %193 ], [ %213, %209 ], [ %207, %199 ], [ %223, %215 ]
%227 = icmp eq i32 %226, -1
br i1 %227, label %228, label %233
228: ; preds = %225
%229 = load i64, i64* %20
%230 = icmp eq i64 %229, 0
br i1 %230, label %232, label %231
231: ; preds = %228
store i32 1, i32* %7
store double 0.000000e+00, double* %8
br label %233
232: ; preds = %228
store i32 2, i32* %7
store double 1.000000e+00, double* %8
br label %233
233: ; preds = %176, %158, %225, %172, %171, %232, %231, %189, %190, %153, %149, %143, %118, %101, %94, %88, %79, %68, %61, %51
ret void
}