void cdflib_cdfbet(const int *which, double *p, double *q, double *x, double *y,
                   double *a, double *b, int *status, double *bound) {
  static const double tol = 1.0e-8;
  static const double atol = 1.0e-50;
  static const double zero = 1.0e-300;
  static const double inf = 1.0e300;
  static const double one = 1.0e0;
  static const int K1 = 1;
  double K2 = 0.0e0;
  double K3 = 1.0e0;
  double K8 = 0.5e0;
  double K9 = 5.0e0;
  double fx, xhi, xlo, cum, ccum, xy, pq;
  unsigned long qhi, qleft, qporq;
  double T4, T5, T6, T7, T10, T11, T12, T13, T14, T15;
  *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 S150;
  }
  if (!(*x < 0.0e0 || *x > 1.0e0)) {
    goto S140;
  }
  if (!(*x < 0.0e0)) {
    goto S120;
  }
  *bound = 0.0e0;
  goto S130;
S120:
  *bound = 1.0e0;
S130:
  *status = -4;
  return;
S150:
S140:
  if (*which == 2) {
    goto S190;
  }
  if (!(*y < 0.0e0 || *y > 1.0e0)) {
    goto S180;
  }
  if (!(*y < 0.0e0)) {
    goto S160;
  }
  *bound = 0.0e0;
  goto S170;
S160:
  *bound = 1.0e0;
S170:
  *status = -5;
  return;
S190:
S180:
  if (*which == 3) {
    goto S210;
  }
  if (!(*a <= 0.0e0)) {
    goto S200;
  }
  *bound = 0.0e0;
  *status = -6;
  return;
S210:
S200:
  if (*which == 4) {
    goto S230;
  }
  if (!(*b <= 0.0e0)) {
    goto S220;
  }
  *bound = 0.0e0;
  *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 == 2) {
    goto S310;
  }
  xy = *x + *y;
  if (!(fabs(xy - 0.5e0 - 0.5e0) > 3.0e0 * dpmpar(K1))) {
    goto S300;
  }
  if (!(xy < 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_cumbet(x, y, a, b, p, q);
    *status = 0;
  } else if (2 == *which) {
    T4 = atol;
    T5 = tol;
    cdflib_dstzr(&K2, &K3, &T4, &T5);
    if (!qporq) {
      goto S340;
    }
    *status = 0;
    cdflib_dzror(status, x, &fx, &xlo, &xhi, &qleft, &qhi);
    *y = one - *x;
  S320:
    if (!(*status == 1)) {
      goto S330;
    }
    cdflib_cumbet(x, y, a, b, &cum, &ccum);
    fx = cum - *p;
    cdflib_dzror(status, x, &fx, &xlo, &xhi, &qleft, &qhi);
    *y = one - *x;
    goto S320;
  S330:
    goto S370;
  S340:
    *status = 0;
    cdflib_dzror(status, y, &fx, &xlo, &xhi, &qleft, &qhi);
    *x = one - *y;
  S350:
    if (!(*status == 1)) {
      goto S360;
    }
    cdflib_cumbet(x, y, a, b, &cum, &ccum);
    fx = ccum - *q;
    cdflib_dzror(status, y, &fx, &xlo, &xhi, &qleft, &qhi);
    *x = one - *y;
    goto S350;
  S370:
  S360:
    if (!(*status == -1)) {
      goto S400;
    }
    if (!qleft) {
      goto S380;
    }
    *status = 1;
    *bound = 0.0e0;
    goto S390;
  S380:
    *status = 2;
    *bound = 1.0e0;
  S400:
  S390:;
  } else if (3 == *which) {
    *a = 5.0e0;
    T6 = zero;
    T7 = inf;
    T10 = atol;
    T11 = tol;
    cdflib_dstinv(&T6, &T7, &K8, &K8, &K9, &T10, &T11);
    *status = 0;
    cdflib_dinvr(status, a, &fx, &qleft, &qhi);
  S410:
    if (!(*status == 1)) {
      goto S440;
    }
    cdflib_cumbet(x, y, a, b, &cum, &ccum);
    if (!qporq) {
      goto S420;
    }
    fx = cum - *p;
    goto S430;
  S420:
    fx = ccum - *q;
  S430:
    cdflib_dinvr(status, a, &fx, &qleft, &qhi);
    goto S410;
  S440:
    if (!(*status == -1)) {
      goto S470;
    }
    if (!qleft) {
      goto S450;
    }
    *status = 1;
    *bound = zero;
    goto S460;
  S450:
    *status = 2;
    *bound = inf;
  S470:
  S460:;
  } else if (4 == *which) {
    *b = 5.0e0;
    T12 = zero;
    T13 = inf;
    T14 = atol;
    T15 = tol;
    cdflib_dstinv(&T12, &T13, &K8, &K8, &K9, &T14, &T15);
    *status = 0;
    cdflib_dinvr(status, b, &fx, &qleft, &qhi);
  S480:
    if (!(*status == 1)) {
      goto S510;
    }
    cdflib_cumbet(x, y, a, b, &cum, &ccum);
    if (!qporq) {
      goto S490;
    }
    fx = cum - *p;
    goto S500;
  S490:
    fx = ccum - *q;
  S500:
    cdflib_dinvr(status, b, &fx, &qleft, &qhi);
    goto S480;
  S510:
    if (!(*status == -1)) {
      goto S540;
    }
    if (!qleft) {
      goto S520;
    }
    *status = 1;
    *bound = zero;
    goto S530;
  S520:
    *status = 2;
    *bound = inf;
  S530:;
  }
S540:
  return;
}


x86 assembly (clang, -O0):
<cdflib_cdfbet>:
push   %rbp
mov    %rsp,%rbp
sub    $0x110,%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_cdfbet+0x92>
mov    -0x8(%rbp),%rax
cmpl   $0x4,(%rax)
jg     11f2 <cdflib_cdfbet+0x92>
jmp    1238 <cdflib_cdfbet+0xd8>
mov    -0x8(%rbp),%rax
cmpl   $0x1,(%rax)
jl     1204 <cdflib_cdfbet+0xa4>
jmp    1219 <cdflib_cdfbet+0xb9>
mov    0x20(%rbp),%rax
movsd  0xe00(%rip),%xmm0
movsd  %xmm0,(%rax)
jmp    1229 <cdflib_cdfbet+0xc9>
mov    0x20(%rbp),%rax
movsd  0xe1b(%rip),%xmm0
movsd  %xmm0,(%rax)
mov    0x18(%rbp),%rax
movl   $0xffffffff,(%rax)
jmp    1d1e <cdflib_cdfbet+0xbbe>
mov    -0x8(%rbp),%rax
cmpl   $0x1,(%rax)
jne    124a <cdflib_cdfbet+0xea>
jmp    12bf <cdflib_cdfbet+0x15f>
mov    -0x10(%rbp),%rax
xorps  %xmm0,%xmm0
ucomisd (%rax),%xmm0
ja     127a <cdflib_cdfbet+0x11a>
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
movsd  0xda5(%rip),%xmm1
ucomisd %xmm1,%xmm0
ja     127a <cdflib_cdfbet+0x11a>
jmp    12c4 <cdflib_cdfbet+0x164>
mov    -0x10(%rbp),%rax
xorps  %xmm0,%xmm0
ucomisd (%rax),%xmm0
ja     1290 <cdflib_cdfbet+0x130>
jmp    12a0 <cdflib_cdfbet+0x140>
mov    0x20(%rbp),%rax
xorps  %xmm0,%xmm0
movsd  %xmm0,(%rax)
jmp    12b0 <cdflib_cdfbet+0x150>
mov    0x20(%rbp),%rax
movsd  0xd64(%rip),%xmm0
movsd  %xmm0,(%rax)
mov    0x18(%rbp),%rax
movl   $0xfffffffe,(%rax)
jmp    1d1e <cdflib_cdfbet+0xbbe>
jmp    12c4 <cdflib_cdfbet+0x164>
mov    -0x8(%rbp),%rax
cmpl   $0x1,(%rax)
jne    12d6 <cdflib_cdfbet+0x176>
jmp    134b <cdflib_cdfbet+0x1eb>
mov    -0x18(%rbp),%rax
xorps  %xmm0,%xmm0
ucomisd (%rax),%xmm0
ja     1306 <cdflib_cdfbet+0x1a6>
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
movsd  0xd19(%rip),%xmm1
ucomisd %xmm1,%xmm0
ja     1306 <cdflib_cdfbet+0x1a6>
jmp    1350 <cdflib_cdfbet+0x1f0>
mov    -0x18(%rbp),%rax
xorps  %xmm0,%xmm0
ucomisd (%rax),%xmm0
ja     131c <cdflib_cdfbet+0x1bc>
jmp    132c <cdflib_cdfbet+0x1cc>
mov    0x20(%rbp),%rax
xorps  %xmm0,%xmm0
movsd  %xmm0,(%rax)
jmp    133c <cdflib_cdfbet+0x1dc>
mov    0x20(%rbp),%rax
movsd  0xcd8(%rip),%xmm0
movsd  %xmm0,(%rax)
mov    0x18(%rbp),%rax
movl   $0xfffffffd,(%rax)
jmp    1d1e <cdflib_cdfbet+0xbbe>
jmp    1350 <cdflib_cdfbet+0x1f0>
mov    -0x8(%rbp),%rax
cmpl   $0x2,(%rax)
jne    1362 <cdflib_cdfbet+0x202>
jmp    13d7 <cdflib_cdfbet+0x277>
mov    -0x20(%rbp),%rax
xorps  %xmm0,%xmm0
ucomisd (%rax),%xmm0
ja     1392 <cdflib_cdfbet+0x232>
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
movsd  0xc8d(%rip),%xmm1
ucomisd %xmm1,%xmm0
ja     1392 <cdflib_cdfbet+0x232>
jmp    13dc <cdflib_cdfbet+0x27c>
mov    -0x20(%rbp),%rax
xorps  %xmm0,%xmm0
ucomisd (%rax),%xmm0
ja     13a8 <cdflib_cdfbet+0x248>
jmp    13b8 <cdflib_cdfbet+0x258>
mov    0x20(%rbp),%rax
xorps  %xmm0,%xmm0
movsd  %xmm0,(%rax)
jmp    13c8 <cdflib_cdfbet+0x268>
mov    0x20(%rbp),%rax
movsd  0xc4c(%rip),%xmm0
movsd  %xmm0,(%rax)
mov    0x18(%rbp),%rax
movl   $0xfffffffc,(%rax)
jmp    1d1e <cdflib_cdfbet+0xbbe>
jmp    13dc <cdflib_cdfbet+0x27c>
mov    -0x8(%rbp),%rax
cmpl   $0x2,(%rax)
jne    13ee <cdflib_cdfbet+0x28e>
jmp    1463 <cdflib_cdfbet+0x303>
mov    -0x28(%rbp),%rax
xorps  %xmm0,%xmm0
ucomisd (%rax),%xmm0
ja     141e <cdflib_cdfbet+0x2be>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
movsd  0xc01(%rip),%xmm1
ucomisd %xmm1,%xmm0
ja     141e <cdflib_cdfbet+0x2be>
jmp    1468 <cdflib_cdfbet+0x308>
mov    -0x28(%rbp),%rax
xorps  %xmm0,%xmm0
ucomisd (%rax),%xmm0
ja     1434 <cdflib_cdfbet+0x2d4>
jmp    1444 <cdflib_cdfbet+0x2e4>
mov    0x20(%rbp),%rax
xorps  %xmm0,%xmm0
movsd  %xmm0,(%rax)
jmp    1454 <cdflib_cdfbet+0x2f4>
mov    0x20(%rbp),%rax
movsd  0xbc0(%rip),%xmm0
movsd  %xmm0,(%rax)
mov    0x18(%rbp),%rax
movl   $0xfffffffb,(%rax)
jmp    1d1e <cdflib_cdfbet+0xbbe>
jmp    1468 <cdflib_cdfbet+0x308>
mov    -0x8(%rbp),%rax
cmpl   $0x3,(%rax)
jne    147a <cdflib_cdfbet+0x31a>
jmp    14aa <cdflib_cdfbet+0x34a>
mov    -0x30(%rbp),%rax
xorps  %xmm0,%xmm0
ucomisd (%rax),%xmm0
jae    1490 <cdflib_cdfbet+0x330>
jmp    14af <cdflib_cdfbet+0x34f>
mov    0x20(%rbp),%rax
xorps  %xmm0,%xmm0
movsd  %xmm0,(%rax)
mov    0x18(%rbp),%rax
movl   $0xfffffffa,(%rax)
jmp    1d1e <cdflib_cdfbet+0xbbe>
jmp    14af <cdflib_cdfbet+0x34f>
mov    -0x8(%rbp),%rax
cmpl   $0x4,(%rax)
jne    14c1 <cdflib_cdfbet+0x361>
jmp    14f1 <cdflib_cdfbet+0x391>
mov    0x10(%rbp),%rax
xorps  %xmm0,%xmm0
ucomisd (%rax),%xmm0
jae    14d7 <cdflib_cdfbet+0x377>
jmp    14f6 <cdflib_cdfbet+0x396>
mov    0x20(%rbp),%rax
xorps  %xmm0,%xmm0
movsd  %xmm0,(%rax)
mov    0x18(%rbp),%rax
movl   $0xfffffff9,(%rax)
jmp    1d1e <cdflib_cdfbet+0xbbe>
jmp    14f6 <cdflib_cdfbet+0x396>
mov    -0x8(%rbp),%rax
cmpl   $0x1,(%rax)
jne    1508 <cdflib_cdfbet+0x3a8>
jmp    15cb <cdflib_cdfbet+0x46b>
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
addsd  (%rax),%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
movsd  -0x88(%rbp),%xmm0
ff
movsd  0xad8(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  0xacc(%rip),%xmm1
subsd  %xmm1,%xmm0
movaps 0xb09(%rip),%xmm1
pand   %xmm1,%xmm0
movsd  %xmm0,-0xf8(%rbp)
ff
mov    $0x1,%edi
mov    $0x0,%al
call   1030 <dpmpar@plt>
movsd  -0xf8(%rbp),%xmm0
ff
cvtsi2sd %eax,%xmm2
movsd  0xaa5(%rip),%xmm1
mulsd  %xmm2,%xmm1
ucomisd %xmm1,%xmm0
ja     1586 <cdflib_cdfbet+0x426>
jmp    15d0 <cdflib_cdfbet+0x470>
xorps  %xmm0,%xmm0
ucomisd -0x88(%rbp),%xmm0
ff
ja     159c <cdflib_cdfbet+0x43c>
jmp    15ac <cdflib_cdfbet+0x44c>
mov    0x20(%rbp),%rax
xorps  %xmm0,%xmm0
movsd  %xmm0,(%rax)
jmp    15bc <cdflib_cdfbet+0x45c>
mov    0x20(%rbp),%rax
movsd  0xa58(%rip),%xmm0
movsd  %xmm0,(%rax)
mov    0x18(%rbp),%rax
movl   $0x3,(%rax)
jmp    1d1e <cdflib_cdfbet+0xbbe>
jmp    15d0 <cdflib_cdfbet+0x470>
mov    -0x8(%rbp),%rax
cmpl   $0x2,(%rax)
jne    15e2 <cdflib_cdfbet+0x482>
jmp    169c <cdflib_cdfbet+0x53c>
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x28(%rbp),%rax
addsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
movsd  -0x80(%rbp),%xmm0
movsd  0xa04(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  0x9f8(%rip),%xmm1
subsd  %xmm1,%xmm0
movaps 0xa35(%rip),%xmm1
pand   %xmm1,%xmm0
movsd  %xmm0,-0x100(%rbp)
ff
mov    $0x1,%edi
mov    $0x0,%al
call   1030 <dpmpar@plt>
movsd  -0x100(%rbp),%xmm0
ff
cvtsi2sd %eax,%xmm2
movsd  0x9d1(%rip),%xmm1
mulsd  %xmm2,%xmm1
ucomisd %xmm1,%xmm0
ja     165a <cdflib_cdfbet+0x4fa>
jmp    16a1 <cdflib_cdfbet+0x541>
xorps  %xmm0,%xmm0
ucomisd -0x80(%rbp),%xmm0
ja     166d <cdflib_cdfbet+0x50d>
jmp    167d <cdflib_cdfbet+0x51d>
mov    0x20(%rbp),%rax
xorps  %xmm0,%xmm0
movsd  %xmm0,(%rax)
jmp    168d <cdflib_cdfbet+0x52d>
mov    0x20(%rbp),%rax
movsd  0x987(%rip),%xmm0
movsd  %xmm0,(%rax)
mov    0x18(%rbp),%rax
movl   $0x4,(%rax)
jmp    1d1e <cdflib_cdfbet+0xbbe>
jmp    16a1 <cdflib_cdfbet+0x541>
mov    -0x8(%rbp),%rax
cmpl   $0x1,(%rax)
je     16d3 <cdflib_cdfbet+0x573>
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    1712 <cdflib_cdfbet+0x5b2>
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   1060 <cdflib_cumbet@plt>
mov    0x18(%rbp),%rax
movl   $0x0,(%rax)
jmp    1d14 <cdflib_cdfbet+0xbb4>
mov    -0x8(%rbp),%rcx
mov    $0x2,%eax
cmp    (%rcx),%eax
jne    1998 <cdflib_cdfbet+0x838>
movsd  0x8fd(%rip),%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  0x8e5(%rip),%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
lea    -0x38(%rbp),%rdi
lea    -0x40(%rbp),%rsi
lea    -0xa8(%rbp),%rdx
lea    -0xb0(%rbp),%rcx
mov    $0x0,%al
call   1080 <cdflib_dstzr@plt>
cmpq   $0x0,-0xa0(%rbp)
jne    1773 <cdflib_cdfbet+0x613>
jmp    1854 <cdflib_cdfbet+0x6f4>
mov    0x18(%rbp),%rax
movl   $0x0,(%rax)
mov    0x18(%rbp),%rdi
mov    -0x20(%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    -0x20(%rbp),%rax
movsd  0x85a(%rip),%xmm0
subsd  (%rax),%xmm0
mov    -0x28(%rbp),%rax
movsd  %xmm0,(%rax)
mov    0x18(%rbp),%rax
cmpl   $0x1,(%rax)
je     17d4 <cdflib_cdfbet+0x674>
jmp    184f <cdflib_cdfbet+0x6ef>
mov    -0x20(%rbp),%rdi
mov    -0x28(%rbp),%rsi
mov    -0x30(%rbp),%rdx
mov    0x10(%rbp),%rcx
lea    -0x70(%rbp),%r8
lea    -0x78(%rbp),%r9
mov    $0x0,%al
call   1060 <cdflib_cumbet@plt>
movsd  -0x70(%rbp),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x58(%rbp)
mov    0x18(%rbp),%rdi
mov    -0x20(%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    -0x20(%rbp),%rax
movsd  0x7d2(%rip),%xmm0
subsd  (%rax),%xmm0
mov    -0x28(%rbp),%rax
movsd  %xmm0,(%rax)
jmp    17c2 <cdflib_cdfbet+0x662>
jmp    1930 <cdflib_cdfbet+0x7d0>
mov    0x18(%rbp),%rax
movl   $0x0,(%rax)
mov    0x18(%rbp),%rdi
mov    -0x28(%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    -0x28(%rbp),%rax
movsd  0x779(%rip),%xmm0
subsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
movsd  %xmm0,(%rax)
mov    0x18(%rbp),%rax
cmpl   $0x1,(%rax)
je     18b5 <cdflib_cdfbet+0x755>
jmp    1935 <cdflib_cdfbet+0x7d5>
mov    -0x20(%rbp),%rdi
mov    -0x28(%rbp),%rsi
mov    -0x30(%rbp),%rdx
mov    0x10(%rbp),%rcx
lea    -0x70(%rbp),%r8
lea    -0x78(%rbp),%r9
mov    $0x0,%al
call   1060 <cdflib_cumbet@plt>
movsd  -0x78(%rbp),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x58(%rbp)
mov    0x18(%rbp),%rdi
mov    -0x28(%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    -0x28(%rbp),%rax
movsd  0x6f1(%rip),%xmm0
subsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
movsd  %xmm0,(%rax)
jmp    18a3 <cdflib_cdfbet+0x743>
jmp    1935 <cdflib_cdfbet+0x7d5>
mov    0x18(%rbp),%rax
cmpl   $0xffffffff,(%rax)
je     1947 <cdflib_cdfbet+0x7e7>
jmp    198e <cdflib_cdfbet+0x82e>
cmpq   $0x0,-0x98(%rbp)
jne    195a <cdflib_cdfbet+0x7fa>
jmp    1974 <cdflib_cdfbet+0x814>
mov    0x18(%rbp),%rax
movl   $0x1,(%rax)
mov    0x20(%rbp),%rax
xorps  %xmm0,%xmm0
movsd  %xmm0,(%rax)
jmp    1993 <cdflib_cdfbet+0x833>
mov    0x18(%rbp),%rax
movl   $0x2,(%rax)
mov    0x20(%rbp),%rax
movsd  0x686(%rip),%xmm0
movsd  %xmm0,(%rax)
jmp    1993 <cdflib_cdfbet+0x833>
jmp    1d0f <cdflib_cdfbet+0xbaf>
mov    -0x8(%rbp),%rcx
mov    $0x3,%eax
cmp    (%rcx),%eax
jne    1b51 <cdflib_cdfbet+0x9f1>
mov    -0x30(%rbp),%rax
movsd  0x64b(%rip),%xmm0
movsd  %xmm0,(%rax)
movsd  0x677(%rip),%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  0x65f(%rip),%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  0x647(%rip),%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  0x62f(%rip),%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
lea    -0xb8(%rbp),%rdi
lea    -0xc0(%rbp),%rsi
lea    -0x48(%rbp),%rcx
lea    -0x50(%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    -0x30(%rbp),%rsi
lea    -0x58(%rbp),%rdx
lea    -0x98(%rbp),%rcx
lea    -0x90(%rbp),%r8
mov    $0x0,%al
call   1070 <cdflib_dinvr@plt>
mov    0x18(%rbp),%rax
cmpl   $0x1,(%rax)
je     1a68 <cdflib_cdfbet+0x908>
jmp    1ae9 <cdflib_cdfbet+0x989>
mov    -0x20(%rbp),%rdi
mov    -0x28(%rbp),%rsi
mov    -0x30(%rbp),%rdx
mov    0x10(%rbp),%rcx
lea    -0x70(%rbp),%r8
lea    -0x78(%rbp),%r9
mov    $0x0,%al
call   1060 <cdflib_cumbet@plt>
cmpq   $0x0,-0xa0(%rbp)
jne    1a9a <cdflib_cdfbet+0x93a>
jmp    1ab1 <cdflib_cdfbet+0x951>
movsd  -0x70(%rbp),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x58(%rbp)
jmp    1ac3 <cdflib_cdfbet+0x963>
movsd  -0x78(%rbp),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x58(%rbp)
mov    0x18(%rbp),%rdi
mov    -0x30(%rbp),%rsi
lea    -0x58(%rbp),%rdx
lea    -0x98(%rbp),%rcx
lea    -0x90(%rbp),%r8
mov    $0x0,%al
call   1070 <cdflib_dinvr@plt>
jmp    1a56 <cdflib_cdfbet+0x8f6>
mov    0x18(%rbp),%rax
cmpl   $0xffffffff,(%rax)
je     1afb <cdflib_cdfbet+0x99b>
jmp    1b47 <cdflib_cdfbet+0x9e7>
cmpq   $0x0,-0x98(%rbp)
jne    1b0e <cdflib_cdfbet+0x9ae>
jmp    1b2d <cdflib_cdfbet+0x9cd>
mov    0x18(%rbp),%rax
movl   $0x1,(%rax)
mov    0x20(%rbp),%rax
movsd  0x514(%rip),%xmm0
movsd  %xmm0,(%rax)
jmp    1b4c <cdflib_cdfbet+0x9ec>
mov    0x18(%rbp),%rax
movl   $0x2,(%rax)
mov    0x20(%rbp),%rax
movsd  0x4ed(%rip),%xmm0
movsd  %xmm0,(%rax)
jmp    1b4c <cdflib_cdfbet+0x9ec>
jmp    1d0a <cdflib_cdfbet+0xbaa>
mov    -0x8(%rbp),%rcx
mov    $0x4,%eax
cmp    (%rcx),%eax
jne    1d05 <cdflib_cdfbet+0xba5>
mov    0x10(%rbp),%rax
movsd  0x492(%rip),%xmm0
movsd  %xmm0,(%rax)
movsd  0x4be(%rip),%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
movsd  0x4a6(%rip),%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  0x48e(%rip),%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
movsd  0x476(%rip),%xmm0
movsd  %xmm0,-0xf0(%rbp)
ff
lea    -0xd8(%rbp),%rdi
lea    -0xe0(%rbp),%rsi
lea    -0x48(%rbp),%rcx
lea    -0x50(%rbp),%r8
lea    -0xe8(%rbp),%r9
lea    -0xf0(%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    0x10(%rbp),%rsi
lea    -0x58(%rbp),%rdx
lea    -0x98(%rbp),%rcx
lea    -0x90(%rbp),%r8
mov    $0x0,%al
call   1070 <cdflib_dinvr@plt>
mov    0x18(%rbp),%rax
cmpl   $0x1,(%rax)
je     1c21 <cdflib_cdfbet+0xac1>
jmp    1ca2 <cdflib_cdfbet+0xb42>
mov    -0x20(%rbp),%rdi
mov    -0x28(%rbp),%rsi
mov    -0x30(%rbp),%rdx
mov    0x10(%rbp),%rcx
lea    -0x70(%rbp),%r8
lea    -0x78(%rbp),%r9
mov    $0x0,%al
call   1060 <cdflib_cumbet@plt>
cmpq   $0x0,-0xa0(%rbp)
jne    1c53 <cdflib_cdfbet+0xaf3>
jmp    1c6a <cdflib_cdfbet+0xb0a>
movsd  -0x70(%rbp),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x58(%rbp)
jmp    1c7c <cdflib_cdfbet+0xb1c>
movsd  -0x78(%rbp),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x58(%rbp)
mov    0x18(%rbp),%rdi
mov    0x10(%rbp),%rsi
lea    -0x58(%rbp),%rdx
lea    -0x98(%rbp),%rcx
lea    -0x90(%rbp),%r8
mov    $0x0,%al
call   1070 <cdflib_dinvr@plt>
jmp    1c0f <cdflib_cdfbet+0xaaf>
mov    0x18(%rbp),%rax
cmpl   $0xffffffff,(%rax)
je     1cb4 <cdflib_cdfbet+0xb54>
jmp    1d19 <cdflib_cdfbet+0xbb9>
cmpq   $0x0,-0x98(%rbp)
jne    1cc7 <cdflib_cdfbet+0xb67>
jmp    1ce6 <cdflib_cdfbet+0xb86>
mov    0x18(%rbp),%rax
movl   $0x1,(%rax)
mov    0x20(%rbp),%rax
movsd  0x35b(%rip),%xmm0
movsd  %xmm0,(%rax)
jmp    1d00 <cdflib_cdfbet+0xba0>
mov    0x18(%rbp),%rax
movl   $0x2,(%rax)
mov    0x20(%rbp),%rax
movsd  0x334(%rip),%xmm0
movsd  %xmm0,(%rax)
jmp    1d05 <cdflib_cdfbet+0xba5>
jmp    1d0a <cdflib_cdfbet+0xbaa>
jmp    1d0f <cdflib_cdfbet+0xbaf>
jmp    1d14 <cdflib_cdfbet+0xbb4>
jmp    1d19 <cdflib_cdfbet+0xbb9>
jmp    1d1e <cdflib_cdfbet+0xbbe>
add    $0x110,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<cdflib_cdfbet>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0xa8,%rsp
mov    %rcx,%rbx
mov    %rdx,%rbp
mov    %rsi,%r13
mov    0xf0(%rsp),%rsi
mov    0xe8(%rsp),%rdx
movq   $0x0,0xa0(%rsp)
movabs $0x3ff0000000000000,%rax
mov    %rax,0x98(%rsp)
movabs $0x3fe0000000000000,%rax
mov    %rax,0x90(%rsp)
movabs $0x4014000000000000,%r15
mov    %r15,0x88(%rsp)
movl   $0x0,(%rdx)
movq   $0x0,(%rsi)
mov    (%rdi),%eax
lea    -0x5(%rax),%ecx
cmp    $0xfffffffb,%ecx
ja     1205 <cdflib_cdfbet+0xa5>
xor    %ecx,%ecx
test   %eax,%eax
setle  %cl
lea    0xe3f(%rip),%rax
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,(%rsi)
movl   $0xffffffff,(%rdx)
jmp    1a79 <cdflib_cdfbet+0x919>
mov    %r8,%r12
mov    %rdi,%r14
mov    0xe0(%rsp),%rcx
cmp    $0x1,%eax
jne    1275 <cdflib_cdfbet+0x115>
movsd  (%rbx),%xmm0
xorpd  %xmm1,%xmm1
ucomisd %xmm0,%xmm1
ja     1380 <cdflib_cdfbet+0x220>
ucomisd 0xdce(%rip),%xmm0
ja     1380 <cdflib_cdfbet+0x220>
movsd  (%r12),%xmm0
xorpd  %xmm1,%xmm1
ucomisd %xmm0,%xmm1
ja     13c0 <cdflib_cdfbet+0x260>
ucomisd 0xdac(%rip),%xmm0
ja     13c0 <cdflib_cdfbet+0x260>
cmp    $0x3,%eax
je     12d0 <cdflib_cdfbet+0x170>
xorpd  %xmm0,%xmm0
ucomisd (%r9),%xmm0
jae    1400 <cdflib_cdfbet+0x2a0>
cmp    $0x4,%eax
jne    12d0 <cdflib_cdfbet+0x170>
jmp    12de <cdflib_cdfbet+0x17e>
movsd  0x0(%r13),%xmm0
xorpd  %xmm1,%xmm1
ucomisd %xmm0,%xmm1
ja     13a0 <cdflib_cdfbet+0x240>
ucomisd 0xd6f(%rip),%xmm0
ja     13a0 <cdflib_cdfbet+0x240>
movsd  0x0(%rbp),%xmm0
xorpd  %xmm1,%xmm1
ucomisd %xmm0,%xmm1
ja     13e0 <cdflib_cdfbet+0x280>
ucomisd 0xd4e(%rip),%xmm0
ja     13e0 <cdflib_cdfbet+0x280>
cmp    $0x2,%eax
jne    1218 <cdflib_cdfbet+0xb8>
xorpd  %xmm0,%xmm0
ucomisd (%r9),%xmm0
jae    1400 <cdflib_cdfbet+0x2a0>
xorpd  %xmm0,%xmm0
ucomisd (%rcx),%xmm0
jae    140b <cdflib_cdfbet+0x2ab>
mov    %r9,0x68(%rsp)
cmp    $0x1,%eax
je     157e <cdflib_cdfbet+0x41e>
movsd  0x0(%r13),%xmm1
addsd  0x0(%rbp),%xmm1
movsd  0xd09(%rip),%xmm0
movapd %xmm1,0x40(%rsp)
addsd  %xmm0,%xmm1
addsd  %xmm0,%xmm1
andpd  0xd0b(%rip),%xmm1
movapd %xmm1,0x50(%rsp)
mov    $0x1,%edi
xor    %eax,%eax
call   1030 <dpmpar@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0xcda(%rip),%xmm0
movapd 0x50(%rsp),%xmm1
ucomisd %xmm0,%xmm1
jbe    1416 <cdflib_cdfbet+0x2b6>
xorpd  %xmm0,%xmm0
movapd 0x40(%rsp),%xmm1
cmpltsd %xmm0,%xmm1
movsd  0xca3(%rip),%xmm0
andnpd %xmm0,%xmm1
mov    0xf0(%rsp),%rax
movlpd %xmm1,(%rax)
mov    0xe8(%rsp),%rax
movl   $0x3,(%rax)
jmp    1a79 <cdflib_cdfbet+0x919>
cmpltsd %xmm1,%xmm0
movsd  0xc73(%rip),%xmm1
andnpd %xmm1,%xmm0
movlpd %xmm0,(%rsi)
movl   $0xfffffffc,(%rdx)
jmp    1a79 <cdflib_cdfbet+0x919>
cmpltsd %xmm1,%xmm0
movsd  0xc53(%rip),%xmm1
andnpd %xmm1,%xmm0
movlpd %xmm0,(%rsi)
movl   $0xfffffffe,(%rdx)
jmp    1a79 <cdflib_cdfbet+0x919>
cmpltsd %xmm1,%xmm0
movsd  0xc33(%rip),%xmm1
andnpd %xmm1,%xmm0
movlpd %xmm0,(%rsi)
movl   $0xfffffffb,(%rdx)
jmp    1a79 <cdflib_cdfbet+0x919>
cmpltsd %xmm1,%xmm0
movsd  0xc13(%rip),%xmm1
andnpd %xmm1,%xmm0
movlpd %xmm0,(%rsi)
movl   $0xfffffffd,(%rdx)
jmp    1a79 <cdflib_cdfbet+0x919>
movl   $0xfffffffa,(%rdx)
jmp    1a79 <cdflib_cdfbet+0x919>
movl   $0xfffffff9,(%rdx)
jmp    1a79 <cdflib_cdfbet+0x919>
cmpl   $0x2,(%r14)
jne    157e <cdflib_cdfbet+0x41e>
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,0x20(%rsp)
lea    0xa0(%rsp),%rdi
lea    0x98(%rsp),%rsi
lea    0x28(%rsp),%rdx
lea    0x20(%rsp),%rcx
xor    %eax,%eax
call   1080 <cdflib_dstzr@plt>
movsd  0x50(%rsp),%xmm0
ucomisd 0x40(%rsp),%xmm0
jae    17ea <cdflib_cdfbet+0x68a>
mov    0xe8(%rsp),%r14
movl   $0x0,(%r14)
lea    0x70(%rsp),%rax
mov    %rax,(%rsp)
lea    0x10(%rsp),%rdx
lea    0x30(%rsp),%rcx
lea    0x38(%rsp),%r8
lea    0x18(%rsp),%r9
mov    %r14,%rdi
mov    %r12,%rsi
xor    %eax,%eax
call   1050 <cdflib_dzror@plt>
mov    %r14,%rcx
movsd  0xb34(%rip),%xmm0
subsd  (%r12),%xmm0
movsd  %xmm0,(%rbx)
mov    (%r14),%eax
cmp    $0x1,%eax
mov    0x68(%rsp),%r15
mov    0xe0(%rsp),%rdx
jne    18dd <cdflib_cdfbet+0x77d>
mov    %rbp,%r14
mov    %rdx,%rbp
lea    0x18(%rsp),%r13
mov    %rbx,%rdi
mov    %r12,%rsi
mov    %r15,%rdx
mov    %rbp,%rcx
lea    0x80(%rsp),%r8
lea    0x78(%rsp),%r9
xor    %eax,%eax
call   1060 <cdflib_cumbet@plt>
movsd  0x78(%rsp),%xmm0
subsd  (%r14),%xmm0
movsd  %xmm0,0x10(%rsp)
lea    0x70(%rsp),%rax
mov    %rax,(%rsp)
mov    0xe8(%rsp),%rdi
mov    %r12,%rsi
lea    0x10(%rsp),%rdx
lea    0x30(%rsp),%rcx
lea    0x38(%rsp),%r8
mov    %r13,%r9
xor    %eax,%eax
call   1050 <cdflib_dzror@plt>
movsd  0xaa0(%rip),%xmm0
mov    0xe8(%rsp),%rcx
subsd  (%r12),%xmm0
movsd  %xmm0,(%rbx)
mov    (%rcx),%eax
cmp    $0x1,%eax
je     14fa <cdflib_cdfbet+0x39a>
jmp    18dd <cdflib_cdfbet+0x77d>
movsd  (%rbx),%xmm1
addsd  (%r12),%xmm1
movsd  0xa78(%rip),%xmm0
movapd %xmm1,0x40(%rsp)
addsd  %xmm0,%xmm1
addsd  %xmm0,%xmm1
andpd  0xa7a(%rip),%xmm1
movapd %xmm1,0x50(%rsp)
mov    $0x1,%edi
xor    %eax,%eax
call   1030 <dpmpar@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0xa49(%rip),%xmm0
movapd 0x50(%rsp),%xmm1
ucomisd %xmm0,%xmm1
jbe    160d <cdflib_cdfbet+0x4ad>
xorpd  %xmm0,%xmm0
movapd 0x40(%rsp),%xmm1
cmpltsd %xmm0,%xmm1
movsd  0xa16(%rip),%xmm0
andnpd %xmm0,%xmm1
mov    0xf0(%rsp),%rax
movlpd %xmm1,(%rax)
mov    0xe8(%rsp),%rax
movl   $0x4,(%rax)
jmp    1a79 <cdflib_cdfbet+0x919>
mov    (%r14),%eax
cmp    $0x1,%eax
jne    1648 <cdflib_cdfbet+0x4e8>
mov    %rbx,%rdi
mov    %r12,%rsi
mov    0x68(%rsp),%rdx
mov    0xe0(%rsp),%rcx
mov    %r13,%r8
mov    %rbp,%r9
xor    %eax,%eax
call   1060 <cdflib_cumbet@plt>
mov    0xe8(%rsp),%rax
movl   $0x0,(%rax)
jmp    1a79 <cdflib_cdfbet+0x919>
movsd  0x0(%r13),%xmm0
movsd  %xmm0,0x50(%rsp)
movsd  0x0(%rbp),%xmm0
movsd  %xmm0,0x40(%rsp)
cmp    $0x2,%eax
mov    0x68(%rsp),%rdx
mov    0xe0(%rsp),%rcx
je     1799 <cdflib_cdfbet+0x639>
cmp    $0x3,%eax
je     190c <cdflib_cdfbet+0x7ac>
cmp    $0x4,%eax
jne    1a79 <cdflib_cdfbet+0x919>
mov    %r15,(%rcx)
movabs $0x1a56e1fc2f8f359,%rax
6e a5 01
mov    %rax,0x38(%rsp)
movabs $0x7e37e43c8800759c,%rax
e4 37 7e
mov    %rax,0x30(%rsp)
movabs $0x358dee7a4ad4b81f,%rax
ee 8d 35
mov    %rax,0x28(%rsp)
movabs $0x3e45798ee2308c3a,%rax
79 45 3e
mov    %rax,0x20(%rsp)
lea    0x20(%rsp),%rax
mov    %rax,(%rsp)
lea    0x38(%rsp),%rdi
lea    0x30(%rsp),%rsi
mov    %rcx,%r15
lea    0x90(%rsp),%rcx
lea    0x88(%rsp),%r8
lea    0x28(%rsp),%r9
mov    %rcx,%rdx
xor    %eax,%eax
call   1040 <cdflib_dstinv@plt>
movsd  0x40(%rsp),%xmm0
ucomisd 0x50(%rsp),%xmm0
mov    0xe8(%rsp),%rax
movl   $0x0,(%rax)
cmovae %r13,%rbp
lea    0x80(%rsp),%r13
lea    0x78(%rsp),%r14
mov    0xe8(%rsp),%rdi
mov    %r15,%rsi
lea    0x10(%rsp),%rdx
lea    0x18(%rsp),%rcx
lea    0x70(%rsp),%r8
xor    %eax,%eax
call   1070 <cdflib_dinvr@plt>
mov    0xe8(%rsp),%rcx
mov    (%rcx),%eax
cmp    $0x1,%eax
jne    1a1d <cdflib_cdfbet+0x8bd>
mov    %rbx,%rdi
mov    %r12,%rsi
mov    0x68(%rsp),%rdx
mov    %r15,%rcx
mov    %r13,%r8
mov    %r14,%r9
xor    %eax,%eax
call   1060 <cdflib_cumbet@plt>
movsd  0x40(%rsp),%xmm0
ucomisd 0x50(%rsp),%xmm0
mov    %r14,%rax
cmovae %r13,%rax
movsd  (%rax),%xmm0
subsd  0x0(%rbp),%xmm0
movsd  %xmm0,0x10(%rsp)
jmp    1726 <cdflib_cdfbet+0x5c6>
movabs $0x358dee7a4ad4b81f,%rax
ee 8d 35
mov    %rax,0x28(%rsp)
movabs $0x3e45798ee2308c3a,%rax
79 45 3e
mov    %rax,0x20(%rsp)
lea    0xa0(%rsp),%rdi
lea    0x98(%rsp),%rsi
lea    0x28(%rsp),%rdx
lea    0x20(%rsp),%rcx
xor    %eax,%eax
call   1080 <cdflib_dstzr@plt>
movsd  0x40(%rsp),%xmm0
ucomisd 0x50(%rsp),%xmm0
jb     1488 <cdflib_cdfbet+0x328>
mov    0xe8(%rsp),%rbp
movl   $0x0,0x0(%rbp)
lea    0x70(%rsp),%rax
mov    %rax,(%rsp)
lea    0x10(%rsp),%rdx
lea    0x30(%rsp),%rcx
lea    0x38(%rsp),%r8
lea    0x18(%rsp),%r9
mov    %rbp,%rdi
mov    %rbx,%rsi
xor    %eax,%eax
call   1050 <cdflib_dzror@plt>
mov    %rbp,%rcx
movsd  0x7d2(%rip),%xmm0
subsd  (%rbx),%xmm0
movsd  %xmm0,(%r12)
mov    0x0(%rbp),%eax
cmp    $0x1,%eax
mov    0x68(%rsp),%r15
mov    0xe0(%rsp),%rbp
jne    18dd <cdflib_cdfbet+0x77d>
lea    0x18(%rsp),%r14
mov    %rbx,%rdi
mov    %r12,%rsi
mov    %r15,%rdx
mov    %rbp,%rcx
lea    0x80(%rsp),%r8
lea    0x78(%rsp),%r9
xor    %eax,%eax
call   1060 <cdflib_cumbet@plt>
movsd  0x80(%rsp),%xmm0
subsd  0x0(%r13),%xmm0
movsd  %xmm0,0x10(%rsp)
lea    0x70(%rsp),%rax
mov    %rax,(%rsp)
mov    0xe8(%rsp),%rdi
mov    %rbx,%rsi
lea    0x10(%rsp),%rdx
lea    0x30(%rsp),%rcx
lea    0x38(%rsp),%r8
mov    %r14,%r9
xor    %eax,%eax
call   1050 <cdflib_dzror@plt>
movsd  0x740(%rip),%xmm0
mov    0xe8(%rsp),%rcx
subsd  (%rbx),%xmm0
movsd  %xmm0,(%r12)
mov    (%rcx),%eax
cmp    $0x1,%eax
je     1856 <cdflib_cdfbet+0x6f6>
cmp    $0xffffffff,%eax
jne    1a79 <cdflib_cdfbet+0x919>
cmpq   $0x0,0x18(%rsp)
je     1a44 <cdflib_cdfbet+0x8e4>
movl   $0x1,(%rcx)
mov    0xf0(%rsp),%rax
movq   $0x0,(%rax)
jmp    1a79 <cdflib_cdfbet+0x919>
mov    %r15,(%rdx)
movabs $0x1a56e1fc2f8f359,%rax
6e a5 01
mov    %rax,0x38(%rsp)
movabs $0x7e37e43c8800759c,%rax
e4 37 7e
mov    %rax,0x30(%rsp)
movabs $0x358dee7a4ad4b81f,%rax
ee 8d 35
mov    %rax,0x28(%rsp)
movabs $0x3e45798ee2308c3a,%rax
79 45 3e
mov    %rax,0x20(%rsp)
lea    0x20(%rsp),%rax
mov    %rax,(%rsp)
lea    0x38(%rsp),%rdi
lea    0x30(%rsp),%rsi
lea    0x90(%rsp),%rcx
lea    0x88(%rsp),%r8
mov    %rdx,%r15
lea    0x28(%rsp),%r9
mov    %rcx,%rdx
xor    %eax,%eax
call   1040 <cdflib_dstinv@plt>
movsd  0x40(%rsp),%xmm0
ucomisd 0x50(%rsp),%xmm0
mov    0xe8(%rsp),%rax
movl   $0x0,(%rax)
cmovae %r13,%rbp
lea    0x80(%rsp),%r13
lea    0x78(%rsp),%r14
mov    0xe8(%rsp),%rdi
mov    %r15,%rsi
lea    0x10(%rsp),%rdx
lea    0x18(%rsp),%rcx
lea    0x70(%rsp),%r8
xor    %eax,%eax
call   1070 <cdflib_dinvr@plt>
mov    0xe8(%rsp),%rcx
mov    (%rcx),%eax
cmp    $0x1,%eax
jne    1a1d <cdflib_cdfbet+0x8bd>
mov    %rbx,%rdi
mov    %r12,%rsi
mov    %r15,%rdx
mov    0xe0(%rsp),%rcx
mov    %r13,%r8
mov    %r14,%r9
xor    %eax,%eax
call   1060 <cdflib_cumbet@plt>
movsd  0x40(%rsp),%xmm0
ucomisd 0x50(%rsp),%xmm0
mov    %r14,%rax
cmovae %r13,%rax
movsd  (%rax),%xmm0
subsd  0x0(%rbp),%xmm0
movsd  %xmm0,0x10(%rsp)
jmp    19ab <cdflib_cdfbet+0x84b>
cmp    $0xffffffff,%eax
jne    1a79 <cdflib_cdfbet+0x919>
cmpq   $0x0,0x18(%rsp)
je     1a5e <cdflib_cdfbet+0x8fe>
movl   $0x1,(%rcx)
mov    0xf0(%rsp),%rax
movabs $0x1a56e1fc2f8f359,%rcx
6e a5 01
jmp    1a76 <cdflib_cdfbet+0x916>
movl   $0x2,(%rcx)
mov    0xf0(%rsp),%rax
movabs $0x3ff0000000000000,%rcx
jmp    1a76 <cdflib_cdfbet+0x916>
movl   $0x2,(%rcx)
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_cdfbet.tol = internal constant double 1.000000e-08
@cdflib_cdfbet.atol = internal constant double 1.000000e-50
@cdflib_cdfbet.zero = internal constant double 1.000000e-300
@cdflib_cdfbet.inf = internal constant double 1.000000e+300
@cdflib_cdfbet.one = internal constant double 1.000000e+00
@cdflib_cdfbet.K1 = internal constant i32 1
define void @cdflib_cdfbet(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
%41 = alloca double
%42 = 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 1.000000e+00, double* %20
store double 5.000000e-01, double* %21
store double 5.000000e+00, double* %22
%43 = load i32*, i32** %17
store i32 0, i32* %43
%44 = load double*, double** %18
store double 0.000000e+00, double* %44
%45 = load i32*, i32** %10
%46 = load i32, i32* %45
%47 = icmp slt i32 %46, 1
br i1 %47, label %53, label %48
48: ; preds = %9
%49 = load i32*, i32** %10
%50 = load i32, i32* %49
%51 = icmp sgt i32 %50, 4
br i1 %51, label %53, label %52
52: ; preds = %48
br label %64
53: ; preds = %48, %9
%54 = load i32*, i32** %10
%55 = load i32, i32* %54
%56 = icmp slt i32 %55, 1
br i1 %56, label %58, label %57
57: ; preds = %53
br label %60
58: ; preds = %53
%59 = load double*, double** %18
store double 1.000000e+00, double* %59
br label %62
60: ; preds = %57
%61 = load double*, double** %18
store double 4.000000e+00, double* %61
br label %62
62: ; preds = %60, %58
%63 = load i32*, i32** %17
store i32 -1, i32* %63
br label %489
64: ; preds = %52
%65 = load i32*, i32** %10
%66 = load i32, i32* %65
%67 = icmp eq i32 %66, 1
br i1 %67, label %68, label %69
68: ; preds = %64
br label %89
69: ; preds = %64
%70 = load double*, double** %11
%71 = load double, double* %70
%72 = fcmp olt double %71, 0.000000e+00
br i1 %72, label %78, label %73
73: ; preds = %69
%74 = load double*, double** %11
%75 = load double, double* %74
%76 = fcmp ogt double %75, 1.000000e+00
br i1 %76, label %78, label %77
77: ; preds = %73
br label %90
78: ; preds = %73, %69
%79 = load double*, double** %11
%80 = load double, double* %79
%81 = fcmp olt double %80, 0.000000e+00
br i1 %81, label %83, label %82
82: ; preds = %78
br label %85
83: ; preds = %78
%84 = load double*, double** %18
store double 0.000000e+00, double* %84
br label %87
85: ; preds = %82
%86 = load double*, double** %18
store double 1.000000e+00, double* %86
br label %87
87: ; preds = %85, %83
%88 = load i32*, i32** %17
store i32 -2, i32* %88
br label %489
89: ; preds = %68
br label %90
90: ; preds = %89, %77
%91 = load i32*, i32** %10
%92 = load i32, i32* %91
%93 = icmp eq i32 %92, 1
br i1 %93, label %94, label %95
94: ; preds = %90
br label %115
95: ; preds = %90
%96 = load double*, double** %12
%97 = load double, double* %96
%98 = fcmp olt double %97, 0.000000e+00
br i1 %98, label %104, label %99
99: ; preds = %95
%100 = load double*, double** %12
%101 = load double, double* %100
%102 = fcmp ogt double %101, 1.000000e+00
br i1 %102, label %104, label %103
103: ; preds = %99
br label %116
104: ; preds = %99, %95
%105 = load double*, double** %12
%106 = load double, double* %105
%107 = fcmp olt double %106, 0.000000e+00
br i1 %107, label %109, label %108
108: ; preds = %104
br label %111
109: ; preds = %104
%110 = load double*, double** %18
store double 0.000000e+00, double* %110
br label %113
111: ; preds = %108
%112 = load double*, double** %18
store double 1.000000e+00, double* %112
br label %113
113: ; preds = %111, %109
%114 = load i32*, i32** %17
store i32 -3, i32* %114
br label %489
115: ; preds = %94
br label %116
116: ; preds = %115, %103
%117 = load i32*, i32** %10
%118 = load i32, i32* %117
%119 = icmp eq i32 %118, 2
br i1 %119, label %120, label %121
120: ; preds = %116
br label %141
121: ; preds = %116
%122 = load double*, double** %13
%123 = load double, double* %122
%124 = fcmp olt double %123, 0.000000e+00
br i1 %124, label %130, label %125
125: ; preds = %121
%126 = load double*, double** %13
%127 = load double, double* %126
%128 = fcmp ogt double %127, 1.000000e+00
br i1 %128, label %130, label %129
129: ; preds = %125
br label %142
130: ; preds = %125, %121
%131 = load double*, double** %13
%132 = load double, double* %131
%133 = fcmp olt double %132, 0.000000e+00
br i1 %133, label %135, label %134
134: ; preds = %130
br label %137
135: ; preds = %130
%136 = load double*, double** %18
store double 0.000000e+00, double* %136
br label %139
137: ; preds = %134
%138 = load double*, double** %18
store double 1.000000e+00, double* %138
br label %139
139: ; preds = %137, %135
%140 = load i32*, i32** %17
store i32 -4, i32* %140
br label %489
141: ; preds = %120
br label %142
142: ; preds = %141, %129
%143 = load i32*, i32** %10
%144 = load i32, i32* %143
%145 = icmp eq i32 %144, 2
br i1 %145, label %146, label %147
146: ; preds = %142
br label %167
147: ; preds = %142
%148 = load double*, double** %14
%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** %14
%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** %14
%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 -5, i32* %166
br label %489
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, 3
br i1 %171, label %172, label %173
172: ; preds = %168
br label %181
173: ; preds = %168
%174 = load double*, double** %15
%175 = load double, double* %174
%176 = fcmp ole double %175, 0.000000e+00
br i1 %176, label %178, label %177
177: ; preds = %173
br label %182
178: ; preds = %173
%179 = load double*, double** %18
store double 0.000000e+00, double* %179
%180 = load i32*, i32** %17
store i32 -6, i32* %180
br label %489
181: ; preds = %172
br label %182
182: ; preds = %181, %177
%183 = load i32*, i32** %10
%184 = load i32, i32* %183
%185 = icmp eq i32 %184, 4
br i1 %185, label %186, label %187
186: ; preds = %182
br label %195
187: ; preds = %182
%188 = load double*, double** %16
%189 = load double, double* %188
%190 = fcmp ole double %189, 0.000000e+00
br i1 %190, label %192, label %191
191: ; preds = %187
br label %196
192: ; preds = %187
%193 = load double*, double** %18
store double 0.000000e+00, double* %193
%194 = load i32*, i32** %17
store i32 -7, i32* %194
br label %489
195: ; preds = %186
br label %196
196: ; preds = %195, %191
%197 = load i32*, i32** %10
%198 = load i32, i32* %197
%199 = icmp eq i32 %198, 1
br i1 %199, label %200, label %201
200: ; preds = %196
br label %226
201: ; preds = %196
%202 = load double*, double** %11
%203 = load double, double* %202
%204 = load double*, double** %12
%205 = load double, double* %204
%206 = fadd double %203, %205
store double %206, double* %29
%207 = load double, double* %29
%208 = fsub double %207, 5.000000e-01
%209 = fsub double %208, 5.000000e-01
%210 = call double @llvm.fabs.f64(double %209)
%211 = call i32 (i32, ...) bitcast (i32 (...)* @dpmpar to i32 (i32, ...)*)(i32 1)
%212 = sitofp i32 %211 to double
%213 = fmul double 3.000000e+00, %212
%214 = fcmp ogt double %210, %213
br i1 %214, label %216, label %215
215: ; preds = %201
br label %227
216: ; preds = %201
%217 = load double, double* %29
%218 = fcmp olt double %217, 0.000000e+00
br i1 %218, label %220, label %219
219: ; preds = %216
br label %222
220: ; preds = %216
%221 = load double*, double** %18
store double 0.000000e+00, double* %221
br label %224
222: ; preds = %219
%223 = load double*, double** %18
store double 1.000000e+00, double* %223
br label %224
224: ; preds = %222, %220
%225 = load i32*, i32** %17
store i32 3, i32* %225
br label %489
226: ; preds = %200
br label %227
227: ; preds = %226, %215
%228 = load i32*, i32** %10
%229 = load i32, i32* %228
%230 = icmp eq i32 %229, 2
br i1 %230, label %231, label %232
231: ; preds = %227
br label %257
232: ; preds = %227
%233 = load double*, double** %13
%234 = load double, double* %233
%235 = load double*, double** %14
%236 = load double, double* %235
%237 = fadd double %234, %236
store double %237, double* %28
%238 = load double, double* %28
%239 = fsub double %238, 5.000000e-01
%240 = fsub double %239, 5.000000e-01
%241 = call double @llvm.fabs.f64(double %240)
%242 = call i32 (i32, ...) bitcast (i32 (...)* @dpmpar to i32 (i32, ...)*)(i32 1)
%243 = sitofp i32 %242 to double
%244 = fmul double 3.000000e+00, %243
%245 = fcmp ogt double %241, %244
br i1 %245, label %247, label %246
246: ; preds = %232
br label %258
247: ; preds = %232
%248 = load double, double* %28
%249 = fcmp olt double %248, 0.000000e+00
br i1 %249, label %251, label %250
250: ; preds = %247
br label %253
251: ; preds = %247
%252 = load double*, double** %18
store double 0.000000e+00, double* %252
br label %255
253: ; preds = %250
%254 = load double*, double** %18
store double 1.000000e+00, double* %254
br label %255
255: ; preds = %253, %251
%256 = load i32*, i32** %17
store i32 4, i32* %256
br label %489
257: ; preds = %231
br label %258
258: ; preds = %257, %246
%259 = load i32*, i32** %10
%260 = load i32, i32* %259
%261 = icmp eq i32 %260, 1
br i1 %261, label %270, label %262
262: ; preds = %258
%263 = load double*, double** %11
%264 = load double, double* %263
%265 = load double*, double** %12
%266 = load double, double* %265
%267 = fcmp ole double %264, %266
%268 = zext i1 %267 to i32
%269 = sext i32 %268 to i64
store i64 %269, i64* %32
br label %270
270: ; preds = %262, %258
%271 = load i32*, i32** %10
%272 = load i32, i32* %271
%273 = icmp eq i32 1, %272
br i1 %273, label %274, label %283
274: ; preds = %270
%275 = load double*, double** %13
%276 = load double*, double** %14
%277 = load double*, double** %15
%278 = load double*, double** %16
%279 = load double*, double** %11
%280 = load double*, double** %12
%281 = call i32 (double*, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @cdflib_cumbet to i32 (double*, double*, double*, double*, double*, double*, ...)*)(double* %275, double* %276, double* %277, double* %278, double* %279, double* %280)
%282 = load i32*, i32** %17
store i32 0, i32* %282
br label %487
283: ; preds = %270
%284 = load i32*, i32** %10
%285 = load i32, i32* %284
%286 = icmp eq i32 2, %285
br i1 %286, label %287, label %373
287: ; preds = %283
store double 1.000000e-50, double* %33
store double 1.000000e-08, double* %34
%288 = call i32 (double*, double*, double*, double*, ...) bitcast (i32 (...)* @cdflib_dstzr to i32 (double*, double*, double*, double*, ...)*)(double* %19, double* %20, double* %33, double* %34)
%289 = load i64, i64* %32
%290 = icmp ne i64 %289, 0
br i1 %290, label %292, label %291
291: ; preds = %287
br label %324
292: ; preds = %287
%293 = load i32*, i32** %17
store i32 0, i32* %293
%294 = load i32*, i32** %17
%295 = load double*, double** %13
%296 = call i32 (i32*, double*, double*, double*, double*, i64*, i64*, ...) bitcast (i32 (...)* @cdflib_dzror to i32 (i32*, double*, double*, double*, double*, i64*, i64*, ...)*)(i32* %294, double* %295, double* %23, double* %25, double* %24, i64* %31, i64* %30)
%297 = load double*, double** %13
%298 = load double, double* %297
%299 = fsub double 1.000000e+00, %298
%300 = load double*, double** %14
store double %299, double* %300
br label %301
301: ; preds = %306, %292
%302 = load i32*, i32** %17
%303 = load i32, i32* %302
%304 = icmp eq i32 %303, 1
br i1 %304, label %306, label %305
305: ; preds = %301
br label %323
306: ; preds = %301
%307 = load double*, double** %13
%308 = load double*, double** %14
%309 = load double*, double** %15
%310 = load double*, double** %16
%311 = call i32 (double*, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @cdflib_cumbet to i32 (double*, double*, double*, double*, double*, double*, ...)*)(double* %307, double* %308, double* %309, double* %310, double* %26, double* %27)
%312 = load double, double* %26
%313 = load double*, double** %11
%314 = load double, double* %313
%315 = fsub double %312, %314
store double %315, double* %23
%316 = load i32*, i32** %17
%317 = load double*, double** %13
%318 = call i32 (i32*, double*, double*, double*, double*, i64*, i64*, ...) bitcast (i32 (...)* @cdflib_dzror to i32 (i32*, double*, double*, double*, double*, i64*, i64*, ...)*)(i32* %316, double* %317, double* %23, double* %25, double* %24, i64* %31, i64* %30)
%319 = load double*, double** %13
%320 = load double, double* %319
%321 = fsub double 1.000000e+00, %320
%322 = load double*, double** %14
store double %321, double* %322
br label %301
323: ; preds = %305
br label %355
324: ; preds = %291
%325 = load i32*, i32** %17
store i32 0, i32* %325
%326 = load i32*, i32** %17
%327 = load double*, double** %14
%328 = call i32 (i32*, double*, double*, double*, double*, i64*, i64*, ...) bitcast (i32 (...)* @cdflib_dzror to i32 (i32*, double*, double*, double*, double*, i64*, i64*, ...)*)(i32* %326, double* %327, double* %23, double* %25, double* %24, i64* %31, i64* %30)
%329 = load double*, double** %14
%330 = load double, double* %329
%331 = fsub double 1.000000e+00, %330
%332 = load double*, double** %13
store double %331, double* %332
br label %333
333: ; preds = %338, %324
%334 = load i32*, i32** %17
%335 = load i32, i32* %334
%336 = icmp eq i32 %335, 1
br i1 %336, label %338, label %337
337: ; preds = %333
br label %356
338: ; preds = %333
%339 = load double*, double** %13
%340 = load double*, double** %14
%341 = load double*, double** %15
%342 = load double*, double** %16
%343 = call i32 (double*, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @cdflib_cumbet to i32 (double*, double*, double*, double*, double*, double*, ...)*)(double* %339, double* %340, double* %341, double* %342, double* %26, double* %27)
%344 = load double, double* %27
%345 = load double*, double** %12
%346 = load double, double* %345
%347 = fsub double %344, %346
store double %347, double* %23
%348 = load i32*, i32** %17
%349 = load double*, double** %14
%350 = call i32 (i32*, double*, double*, double*, double*, i64*, i64*, ...) bitcast (i32 (...)* @cdflib_dzror to i32 (i32*, double*, double*, double*, double*, i64*, i64*, ...)*)(i32* %348, double* %349, double* %23, double* %25, double* %24, i64* %31, i64* %30)
%351 = load double*, double** %14
%352 = load double, double* %351
%353 = fsub double 1.000000e+00, %352
%354 = load double*, double** %13
store double %353, double* %354
br label %333
355: ; preds = %323
br label %356
356: ; preds = %355, %337
%357 = load i32*, i32** %17
%358 = load i32, i32* %357
%359 = icmp eq i32 %358, -1
br i1 %359, label %361, label %360
360: ; preds = %356
br label %371
361: ; preds = %356
%362 = load i64, i64* %31
%363 = icmp ne i64 %362, 0
br i1 %363, label %365, label %364
364: ; preds = %361
br label %368
365: ; preds = %361
%366 = load i32*, i32** %17
store i32 1, i32* %366
%367 = load double*, double** %18
store double 0.000000e+00, double* %367
br label %372
368: ; preds = %364
%369 = load i32*, i32** %17
store i32 2, i32* %369
%370 = load double*, double** %18
store double 1.000000e+00, double* %370
br label %371
371: ; preds = %368, %360
br label %372
372: ; preds = %371, %365
br label %486
373: ; preds = %283
%374 = load i32*, i32** %10
%375 = load i32, i32* %374
%376 = icmp eq i32 3, %375
br i1 %376, label %377, label %429
377: ; preds = %373
%378 = load double*, double** %15
store double 5.000000e+00, double* %378
store double 1.000000e-300, double* %35
store double 1.000000e+300, double* %36
store double 1.000000e-50, double* %37
store double 1.000000e-08, double* %38
%379 = call i32 (double*, double*, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @cdflib_dstinv to i32 (double*, double*, double*, double*, double*, double*, double*, ...)*)(double* %35, double* %36, double* %21, double* %21, double* %22, double* %37, double* %38)
%380 = load i32*, i32** %17
store i32 0, i32* %380
%381 = load i32*, i32** %17
%382 = load double*, double** %15
%383 = call i32 (i32*, double*, double*, i64*, i64*, ...) bitcast (i32 (...)* @cdflib_dinvr to i32 (i32*, double*, double*, i64*, i64*, ...)*)(i32* %381, double* %382, double* %23, i64* %31, i64* %30)
br label %384
384: ; preds = %408, %377
%385 = load i32*, i32** %17
%386 = load i32, i32* %385
%387 = icmp eq i32 %386, 1
br i1 %387, label %389, label %388
388: ; preds = %384
br label %412
389: ; preds = %384
%390 = load double*, double** %13
%391 = load double*, double** %14
%392 = load double*, double** %15
%393 = load double*, double** %16
%394 = call i32 (double*, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @cdflib_cumbet to i32 (double*, double*, double*, double*, double*, double*, ...)*)(double* %390, double* %391, double* %392, double* %393, double* %26, double* %27)
%395 = load i64, i64* %32
%396 = icmp ne i64 %395, 0
br i1 %396, label %398, label %397
397: ; preds = %389
br label %403
398: ; preds = %389
%399 = load double, double* %26
%400 = load double*, double** %11
%401 = load double, double* %400
%402 = fsub double %399, %401
store double %402, double* %23
br label %408
403: ; preds = %397
%404 = load double, double* %27
%405 = load double*, double** %12
%406 = load double, double* %405
%407 = fsub double %404, %406
store double %407, double* %23
br label %408
408: ; preds = %403, %398
%409 = load i32*, i32** %17
%410 = load double*, double** %15
%411 = call i32 (i32*, double*, double*, i64*, i64*, ...) bitcast (i32 (...)* @cdflib_dinvr to i32 (i32*, double*, double*, i64*, i64*, ...)*)(i32* %409, double* %410, double* %23, i64* %31, i64* %30)
br label %384
412: ; preds = %388
%413 = load i32*, i32** %17
%414 = load i32, i32* %413
%415 = icmp eq i32 %414, -1
br i1 %415, label %417, label %416
416: ; preds = %412
br label %427
417: ; preds = %412
%418 = load i64, i64* %31
%419 = icmp ne i64 %418, 0
br i1 %419, label %421, label %420
420: ; preds = %417
br label %424
421: ; preds = %417
%422 = load i32*, i32** %17
store i32 1, i32* %422
%423 = load double*, double** %18
store double 1.000000e-300, double* %423
br label %428
424: ; preds = %420
%425 = load i32*, i32** %17
store i32 2, i32* %425
%426 = load double*, double** %18
store double 1.000000e+300, double* %426
br label %427
427: ; preds = %424, %416
br label %428
428: ; preds = %427, %421
br label %485
429: ; preds = %373
%430 = load i32*, i32** %10
%431 = load i32, i32* %430
%432 = icmp eq i32 4, %431
br i1 %432, label %433, label %484
433: ; preds = %429
%434 = load double*, double** %16
store double 5.000000e+00, double* %434
store double 1.000000e-300, double* %39
store double 1.000000e+300, double* %40
store double 1.000000e-50, double* %41
store double 1.000000e-08, double* %42
%435 = call i32 (double*, double*, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @cdflib_dstinv to i32 (double*, double*, double*, double*, double*, double*, double*, ...)*)(double* %39, double* %40, double* %21, double* %21, double* %22, double* %41, double* %42)
%436 = load i32*, i32** %17
store i32 0, i32* %436
%437 = load i32*, i32** %17
%438 = load double*, double** %16
%439 = call i32 (i32*, double*, double*, i64*, i64*, ...) bitcast (i32 (...)* @cdflib_dinvr to i32 (i32*, double*, double*, i64*, i64*, ...)*)(i32* %437, double* %438, double* %23, i64* %31, i64* %30)
br label %440
440: ; preds = %464, %433
%441 = load i32*, i32** %17
%442 = load i32, i32* %441
%443 = icmp eq i32 %442, 1
br i1 %443, label %445, label %444
444: ; preds = %440
br label %468
445: ; preds = %440
%446 = load double*, double** %13
%447 = load double*, double** %14
%448 = load double*, double** %15
%449 = load double*, double** %16
%450 = call i32 (double*, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @cdflib_cumbet to i32 (double*, double*, double*, double*, double*, double*, ...)*)(double* %446, double* %447, double* %448, double* %449, double* %26, double* %27)
%451 = load i64, i64* %32
%452 = icmp ne i64 %451, 0
br i1 %452, label %454, label %453
453: ; preds = %445
br label %459
454: ; preds = %445
%455 = load double, double* %26
%456 = load double*, double** %11
%457 = load double, double* %456
%458 = fsub double %455, %457
store double %458, double* %23
br label %464
459: ; preds = %453
%460 = load double, double* %27
%461 = load double*, double** %12
%462 = load double, double* %461
%463 = fsub double %460, %462
store double %463, double* %23
br label %464
464: ; preds = %459, %454
%465 = load i32*, i32** %17
%466 = load double*, double** %16
%467 = call i32 (i32*, double*, double*, i64*, i64*, ...) bitcast (i32 (...)* @cdflib_dinvr to i32 (i32*, double*, double*, i64*, i64*, ...)*)(i32* %465, double* %466, double* %23, i64* %31, i64* %30)
br label %440
468: ; preds = %444
%469 = load i32*, i32** %17
%470 = load i32, i32* %469
%471 = icmp eq i32 %470, -1
br i1 %471, label %473, label %472
472: ; preds = %468
br label %488
473: ; preds = %468
%474 = load i64, i64* %31
%475 = icmp ne i64 %474, 0
br i1 %475, label %477, label %476
476: ; preds = %473
br label %480
477: ; preds = %473
%478 = load i32*, i32** %17
store i32 1, i32* %478
%479 = load double*, double** %18
store double 1.000000e-300, double* %479
br label %483
480: ; preds = %476
%481 = load i32*, i32** %17
store i32 2, i32* %481
%482 = load double*, double** %18
store double 1.000000e+300, double* %482
br label %483
483: ; preds = %480, %477
br label %484
484: ; preds = %483, %429
br label %485
485: ; preds = %484, %428
br label %486
486: ; preds = %485, %372
br label %487
487: ; preds = %486, %274
br label %488
488: ; preds = %487, %472
br label %489
489: ; preds = %488, %255, %224, %192, %178, %165, %139, %113, %87, %62
ret void
}

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