double rq_pricing_partial_barrier_delayed_start_up_or_down(
    short in, short call, double S, double X, double H, double r, double rf,
    double v, double t1, double t2) {
  double ret = 0.0;
  double b = r - rf;
  double d1 = (log(S / X) + (b + (v * v) / 2) * t2) / (v * sqrt(t2));
  double d2 = d1 - v * sqrt(t2);
  double f1 =
      (log(S / X) + 2 * log(H / S) + (b + (v * v) / 2) * t2) / (v * sqrt(t2));
  double f2 = f1 - v * sqrt(t2);
  double e1 = (log(S / H) + (b + (v * v) / 2) * t1) / (v * sqrt(t1));
  double e2 = e1 - v * sqrt(t1);
  double e3 = e1 + 2 * log(H / S) / (v * sqrt(t1));
  double e4 = e3 - v * sqrt(t1);
  double mu = (b - (v * v) / 2) / (v * v);
  double rho = sqrt(t1 / t2);
  double g1 = (log(S / H) + (b + (v * v) / 2) * t2) / (v * sqrt(t2));
  double g2 = g1 - v * sqrt(t2);
  double g3 = g1 + 2 * log(H / S) / (v * sqrt(t2));
  double g4 = g3 - v * sqrt(t2);
  double z1 = rq_pricing_norm_dist(e2) -
              pow((H / S), (2 * mu)) * rq_pricing_norm_dist(e4);
  double z2 = rq_pricing_norm_dist(-e2) -
              pow((H / S), (2 * mu)) * rq_pricing_norm_dist(-e4);
  double z3 =
      rq_pricing_cumul_bivar_norm_dist(g2, e2, rho) -
      pow((H / S), (2 * mu)) * rq_pricing_cumul_bivar_norm_dist(g4, -e4, -rho);
  double z4 =
      rq_pricing_cumul_bivar_norm_dist(-g2, -e2, rho) -
      pow((H / S), (2 * mu)) * rq_pricing_cumul_bivar_norm_dist(-g4, e4, -rho);
  double z5 = rq_pricing_norm_dist(e1) -
              pow((H / S), (2 * (mu + 1))) * rq_pricing_norm_dist(e3);
  double z6 = rq_pricing_norm_dist(-e1) -
              pow((H / S), (2 * (mu + 1))) * rq_pricing_norm_dist(-e3);
  double z7 = rq_pricing_cumul_bivar_norm_dist(g1, e1, rho) -
              pow((H / S), (2 * (mu + 1))) *
                  rq_pricing_cumul_bivar_norm_dist(g3, -e3, -rho);
  double z8 = rq_pricing_cumul_bivar_norm_dist(-g1, -e1, rho) -
              pow((H / S), (2 * (mu + 1))) *
                  rq_pricing_cumul_bivar_norm_dist(-g3, e3, -rho);
  if (call && X > H) {
    ret = S * exp((b - r) * t2) *
              (rq_pricing_cumul_bivar_norm_dist(d1, e1, rho) -
               pow((H / S), (2 * (mu + 1))) *
                   rq_pricing_cumul_bivar_norm_dist(f1, -e3, -rho)) -
          X * exp(-r * t2) *
              (rq_pricing_cumul_bivar_norm_dist(d2, e2, rho) -
               pow((H / S), (2 * mu)) *
                   rq_pricing_cumul_bivar_norm_dist(f2, -e4, -rho));
  } else if (call && X < H) {
    ret = S * exp((b - r) * t2) *
              (rq_pricing_cumul_bivar_norm_dist(-g1, -e1, rho) -
               pow((H / S), (2 * (mu + 1))) *
                   rq_pricing_cumul_bivar_norm_dist(-g3, e3, -rho)) -
          X * exp(-r * t2) *
              (rq_pricing_cumul_bivar_norm_dist(-g2, -e2, rho) -
               pow((H / S), (2 * mu)) *
                   rq_pricing_cumul_bivar_norm_dist(-g4, e4, -rho)) -
          S * exp((b - r) * t2) *
              (rq_pricing_cumul_bivar_norm_dist(-d1, -e1, rho) -
               pow((H / S), (2 * (mu + 1))) *
                   rq_pricing_cumul_bivar_norm_dist(-f1, e3, -rho)) +
          X * exp(-r * t2) *
              (rq_pricing_cumul_bivar_norm_dist(-d2, -e2, rho) -
               pow((H / S), (2 * mu)) *
                   rq_pricing_cumul_bivar_norm_dist(-f2, e4, -rho)) +
          S * exp((b - r) * t2) *
              (rq_pricing_cumul_bivar_norm_dist(g1, e1, rho) -
               pow((H / S), (2 * (mu + 1))) *
                   rq_pricing_cumul_bivar_norm_dist(g3, -e3, -rho)) -
          X * exp(-r * t2) *
              (rq_pricing_cumul_bivar_norm_dist(g2, e2, rho) -
               pow((H / S), (2 * mu)) *
                   rq_pricing_cumul_bivar_norm_dist(g4, -e4, -rho));
  } else if (!call) {
    ret = rq_pricing_partial_barrier_delayed_start_up_or_down(0, 1, S, X, H, r,
                                                              b, v, t1, t2) -
          S * exp((b - r) * t2) * z8 + X * exp(-r * t2) * z4 -
          S * exp((b - r) * t2) * z7 + X * exp(-r * t2) * z3;
  }
  return ret;
}


x86 assembly (clang, -O0):
<rq_pricing_partial_barrier_delayed_start_up_or_down>:
push   %rbp
mov    %rsp,%rbp
sub    $0x3d0,%rsp
mov    %si,%ax
mov    %di,%cx
mov    %cx,-0x2(%rbp)
mov    %ax,-0x4(%rbp)
movsd  %xmm0,-0x10(%rbp)
movsd  %xmm1,-0x18(%rbp)
movsd  %xmm2,-0x20(%rbp)
movsd  %xmm3,-0x28(%rbp)
movsd  %xmm4,-0x30(%rbp)
movsd  %xmm5,-0x38(%rbp)
movsd  %xmm6,-0x40(%rbp)
movsd  %xmm7,-0x48(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x50(%rbp)
movsd  -0x28(%rbp),%xmm0
subsd  -0x30(%rbp),%xmm0
movsd  %xmm0,-0x58(%rbp)
movsd  -0x10(%rbp),%xmm0
divsd  -0x18(%rbp),%xmm0
call   1070 <log@plt>
movaps %xmm0,%xmm1
movsd  -0x58(%rbp),%xmm0
movsd  -0x38(%rbp),%xmm2
mulsd  -0x38(%rbp),%xmm2
movsd  0x1e0f(%rip),%xmm3
divsd  %xmm3,%xmm2
addsd  %xmm2,%xmm0
movsd  -0x48(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x258(%rbp)
ff
movsd  -0x38(%rbp),%xmm0
movsd  %xmm0,-0x260(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
call   1090 <sqrt@plt>
movsd  -0x260(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x258(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x60(%rbp)
movsd  -0x60(%rbp),%xmm0
movsd  %xmm0,-0x250(%rbp)
ff
movsd  -0x38(%rbp),%xmm0
movsd  %xmm0,-0x248(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
call   1090 <sqrt@plt>
movsd  -0x250(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x248(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  -0x10(%rbp),%xmm0
divsd  -0x18(%rbp),%xmm0
call   1070 <log@plt>
movsd  %xmm0,-0x240(%rbp)
ff
movsd  -0x20(%rbp),%xmm0
divsd  -0x10(%rbp),%xmm0
call   1070 <log@plt>
movaps %xmm0,%xmm1
movsd  -0x240(%rbp),%xmm0
ff
addsd  %xmm1,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x58(%rbp),%xmm0
movsd  -0x38(%rbp),%xmm2
mulsd  -0x38(%rbp),%xmm2
movsd  0x1d10(%rip),%xmm3
divsd  %xmm3,%xmm2
addsd  %xmm2,%xmm0
movsd  -0x48(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x230(%rbp)
ff
movsd  -0x38(%rbp),%xmm0
movsd  %xmm0,-0x238(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
call   1090 <sqrt@plt>
movsd  -0x238(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x230(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x70(%rbp),%xmm0
movsd  %xmm0,-0x228(%rbp)
ff
movsd  -0x38(%rbp),%xmm0
movsd  %xmm0,-0x220(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
call   1090 <sqrt@plt>
movsd  -0x228(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x220(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x78(%rbp)
movsd  -0x10(%rbp),%xmm0
divsd  -0x20(%rbp),%xmm0
call   1070 <log@plt>
movaps %xmm0,%xmm1
movsd  -0x58(%rbp),%xmm0
movsd  -0x38(%rbp),%xmm2
mulsd  -0x38(%rbp),%xmm2
movsd  0x1c38(%rip),%xmm3
divsd  %xmm3,%xmm2
addsd  %xmm2,%xmm0
movsd  -0x40(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x210(%rbp)
ff
movsd  -0x38(%rbp),%xmm0
movsd  %xmm0,-0x218(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
call   1090 <sqrt@plt>
movsd  -0x218(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x210(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x80(%rbp)
movsd  -0x80(%rbp),%xmm0
movsd  %xmm0,-0x208(%rbp)
ff
movsd  -0x38(%rbp),%xmm0
movsd  %xmm0,-0x200(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
call   1090 <sqrt@plt>
movsd  -0x208(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x200(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  %xmm0,-0x1e8(%rbp)
ff
movsd  -0x20(%rbp),%xmm0
divsd  -0x10(%rbp),%xmm0
call   1070 <log@plt>
movaps %xmm0,%xmm1
movsd  0x1b5f(%rip),%xmm0
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x1f0(%rbp)
ff
movsd  -0x38(%rbp),%xmm0
movsd  %xmm0,-0x1f8(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
call   1090 <sqrt@plt>
movsd  -0x1f8(%rbp),%xmm2
ff
movsd  -0x1f0(%rbp),%xmm1
ff
movaps %xmm0,%xmm3
movsd  -0x1e8(%rbp),%xmm0
ff
mulsd  %xmm3,%xmm2
divsd  %xmm2,%xmm1
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x90(%rbp),%xmm0
ff
movsd  %xmm0,-0x1e0(%rbp)
ff
movsd  -0x38(%rbp),%xmm0
movsd  %xmm0,-0x1d8(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
call   1090 <sqrt@plt>
movsd  -0x1e0(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x1d8(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
movsd  -0x38(%rbp),%xmm1
mulsd  -0x38(%rbp),%xmm1
movsd  0x1a95(%rip),%xmm2
divsd  %xmm2,%xmm1
subsd  %xmm1,%xmm0
movsd  -0x38(%rbp),%xmm1
mulsd  -0x38(%rbp),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
divsd  -0x48(%rbp),%xmm0
call   1090 <sqrt@plt>
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0x10(%rbp),%xmm0
divsd  -0x20(%rbp),%xmm0
call   1070 <log@plt>
movaps %xmm0,%xmm1
movsd  -0x58(%rbp),%xmm0
movsd  -0x38(%rbp),%xmm2
mulsd  -0x38(%rbp),%xmm2
movsd  0x1a37(%rip),%xmm3
divsd  %xmm3,%xmm2
addsd  %xmm2,%xmm0
movsd  -0x48(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x1c8(%rbp)
ff
movsd  -0x38(%rbp),%xmm0
movsd  %xmm0,-0x1d0(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
call   1090 <sqrt@plt>
movsd  -0x1d0(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x1c8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0xb0(%rbp),%xmm0
ff
movsd  %xmm0,-0x1c0(%rbp)
ff
movsd  -0x38(%rbp),%xmm0
movsd  %xmm0,-0x1b8(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
call   1090 <sqrt@plt>
movsd  -0x1c0(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x1b8(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0xb0(%rbp),%xmm0
ff
movsd  %xmm0,-0x1a0(%rbp)
ff
movsd  -0x20(%rbp),%xmm0
divsd  -0x10(%rbp),%xmm0
call   1070 <log@plt>
movaps %xmm0,%xmm1
movsd  0x1955(%rip),%xmm0
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x1a8(%rbp)
ff
movsd  -0x38(%rbp),%xmm0
movsd  %xmm0,-0x1b0(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
call   1090 <sqrt@plt>
movsd  -0x1b0(%rbp),%xmm2
ff
movsd  -0x1a8(%rbp),%xmm1
ff
movaps %xmm0,%xmm3
movsd  -0x1a0(%rbp),%xmm0
ff
mulsd  %xmm3,%xmm2
divsd  %xmm2,%xmm1
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0xc0(%rbp),%xmm0
ff
movsd  %xmm0,-0x198(%rbp)
ff
movsd  -0x38(%rbp),%xmm0
movsd  %xmm0,-0x190(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
call   1090 <sqrt@plt>
movsd  -0x198(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x190(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  -0x88(%rbp),%xmm0
ff
mov    $0x1,%al
call   1030 <rq_pricing_norm_dist@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x180(%rbp)
ff
movsd  -0x20(%rbp),%xmm0
divsd  -0x10(%rbp),%xmm0
movsd  0x1875(%rip),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
call   1080 <pow@plt>
movsd  %xmm0,-0x188(%rbp)
ff
movsd  -0x98(%rbp),%xmm0
ff
mov    $0x1,%al
call   1030 <rq_pricing_norm_dist@plt>
movsd  -0x188(%rbp),%xmm0
ff
movsd  -0x180(%rbp),%xmm1
ff
cvtsi2sd %eax,%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  -0x88(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mov    $0x1,%al
call   1030 <rq_pricing_norm_dist@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x170(%rbp)
ff
movsd  -0x20(%rbp),%xmm0
divsd  -0x10(%rbp),%xmm0
movsd  0x17d2(%rip),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
call   1080 <pow@plt>
movsd  %xmm0,-0x178(%rbp)
ff
movsd  -0x98(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mov    $0x1,%al
call   1030 <rq_pricing_norm_dist@plt>
movsd  -0x178(%rbp),%xmm0
ff
movsd  -0x170(%rbp),%xmm1
ff
cvtsi2sd %eax,%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
movsd  -0xb8(%rbp),%xmm0
ff
movsd  -0x88(%rbp),%xmm1
ff
movsd  -0xa8(%rbp),%xmm2
ff
mov    $0x3,%al
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x160(%rbp)
ff
movsd  -0x20(%rbp),%xmm0
divsd  -0x10(%rbp),%xmm0
movsd  0x171f(%rip),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
call   1080 <pow@plt>
movsd  %xmm0,-0x168(%rbp)
ff
movsd  -0xc8(%rbp),%xmm0
ff
movsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
movsd  -0xa8(%rbp),%xmm2
ff
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mov    $0x3,%al
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
movsd  -0x168(%rbp),%xmm0
ff
movsd  -0x160(%rbp),%xmm1
ff
cvtsi2sd %eax,%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  -0xb8(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  -0x88(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
movsd  -0xa8(%rbp),%xmm2
ff
mov    $0x3,%al
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x150(%rbp)
ff
movsd  -0x20(%rbp),%xmm0
divsd  -0x10(%rbp),%xmm0
movsd  0x1617(%rip),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
call   1080 <pow@plt>
movsd  %xmm0,-0x158(%rbp)
ff
movsd  -0xc8(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  -0x98(%rbp),%xmm1
ff
movsd  -0xa8(%rbp),%xmm2
ff
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mov    $0x3,%al
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
movsd  -0x158(%rbp),%xmm0
ff
movsd  -0x150(%rbp),%xmm1
ff
cvtsi2sd %eax,%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
mov    $0x1,%al
call   1030 <rq_pricing_norm_dist@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x140(%rbp)
ff
movsd  -0x20(%rbp),%xmm0
divsd  -0x10(%rbp),%xmm0
movsd  0x1558(%rip),%xmm2
addsd  -0xa0(%rbp),%xmm2
ff
movsd  0x1540(%rip),%xmm1
mulsd  %xmm2,%xmm1
call   1080 <pow@plt>
movsd  %xmm0,-0x148(%rbp)
ff
movsd  -0x90(%rbp),%xmm0
ff
mov    $0x1,%al
call   1030 <rq_pricing_norm_dist@plt>
movsd  -0x148(%rbp),%xmm0
ff
movsd  -0x140(%rbp),%xmm1
ff
cvtsi2sd %eax,%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xf0(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mov    $0x1,%al
call   1030 <rq_pricing_norm_dist@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x130(%rbp)
ff
movsd  -0x20(%rbp),%xmm0
divsd  -0x10(%rbp),%xmm0
movsd  0x14ac(%rip),%xmm2
addsd  -0xa0(%rbp),%xmm2
ff
movsd  0x1494(%rip),%xmm1
mulsd  %xmm2,%xmm1
call   1080 <pow@plt>
movsd  %xmm0,-0x138(%rbp)
ff
movsd  -0x90(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mov    $0x1,%al
call   1030 <rq_pricing_norm_dist@plt>
movsd  -0x138(%rbp),%xmm0
ff
movsd  -0x130(%rbp),%xmm1
ff
cvtsi2sd %eax,%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xf8(%rbp)
ff
movsd  -0xb0(%rbp),%xmm0
ff
movsd  -0x80(%rbp),%xmm1
movsd  -0xa8(%rbp),%xmm2
ff
mov    $0x3,%al
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x120(%rbp)
ff
movsd  -0x20(%rbp),%xmm0
divsd  -0x10(%rbp),%xmm0
movsd  0x13f0(%rip),%xmm2
addsd  -0xa0(%rbp),%xmm2
ff
movsd  0x13d8(%rip),%xmm1
mulsd  %xmm2,%xmm1
call   1080 <pow@plt>
movsd  %xmm0,-0x128(%rbp)
ff
movsd  -0xc0(%rbp),%xmm0
ff
movsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
movsd  -0xa8(%rbp),%xmm2
ff
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mov    $0x3,%al
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
movsd  -0x128(%rbp),%xmm0
ff
movsd  -0x120(%rbp),%xmm1
ff
cvtsi2sd %eax,%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x100(%rbp)
ff
movsd  -0xb0(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  -0x80(%rbp),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
movsd  -0xa8(%rbp),%xmm2
ff
mov    $0x3,%al
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x110(%rbp)
ff
movsd  -0x20(%rbp),%xmm0
divsd  -0x10(%rbp),%xmm0
movsd  0x12df(%rip),%xmm2
addsd  -0xa0(%rbp),%xmm2
ff
movsd  0x12c7(%rip),%xmm1
mulsd  %xmm2,%xmm1
call   1080 <pow@plt>
movsd  %xmm0,-0x118(%rbp)
ff
movsd  -0xc0(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  -0x90(%rbp),%xmm1
ff
movsd  -0xa8(%rbp),%xmm2
ff
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mov    $0x3,%al
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
movsd  -0x118(%rbp),%xmm0
ff
movsd  -0x110(%rbp),%xmm1
ff
cvtsi2sd %eax,%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x108(%rbp)
ff
movswl -0x4(%rbp),%eax
cmp    $0x0,%eax
je     205f <rq_pricing_partial_barrier_delayed_start_up_or_down+0xeef>
movsd  -0x18(%rbp),%xmm0
ucomisd -0x20(%rbp),%xmm0
jbe    205f <rq_pricing_partial_barrier_delayed_start_up_or_down+0xeef>
movsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0x2a8(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
subsd  -0x28(%rbp),%xmm0
mulsd  -0x48(%rbp),%xmm0
call   1060 <exp@plt>
movaps %xmm0,%xmm1
movsd  -0x2a8(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x270(%rbp)
ff
movsd  -0x60(%rbp),%xmm0
movsd  -0x80(%rbp),%xmm1
movsd  -0xa8(%rbp),%xmm2
ff
mov    $0x3,%al
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x298(%rbp)
ff
movsd  -0x20(%rbp),%xmm0
divsd  -0x10(%rbp),%xmm0
movsd  0x11aa(%rip),%xmm2
addsd  -0xa0(%rbp),%xmm2
ff
movsd  0x1192(%rip),%xmm1
mulsd  %xmm2,%xmm1
call   1080 <pow@plt>
movsd  %xmm0,-0x2a0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
movsd  -0xa8(%rbp),%xmm2
ff
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mov    $0x3,%al
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
movsd  -0x2a0(%rbp),%xmm0
ff
movsd  -0x298(%rbp),%xmm1
ff
cvtsi2sd %eax,%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x268(%rbp)
ff
movsd  -0x18(%rbp),%xmm0
movsd  %xmm0,-0x290(%rbp)
ff
movsd  -0x28(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  -0x48(%rbp),%xmm0
call   1060 <exp@plt>
movaps %xmm0,%xmm1
movsd  -0x290(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x278(%rbp)
ff
movsd  -0x68(%rbp),%xmm0
movsd  -0x88(%rbp),%xmm1
ff
movsd  -0xa8(%rbp),%xmm2
ff
mov    $0x3,%al
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x280(%rbp)
ff
movsd  -0x20(%rbp),%xmm0
divsd  -0x10(%rbp),%xmm0
movsd  0x1078(%rip),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
call   1080 <pow@plt>
movsd  %xmm0,-0x288(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
movsd  -0xa8(%rbp),%xmm2
ff
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mov    $0x3,%al
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
movsd  -0x288(%rbp),%xmm3
ff
movsd  -0x280(%rbp),%xmm4
ff
movsd  -0x278(%rbp),%xmm1
ff
movsd  -0x270(%rbp),%xmm0
movsd  -0x268(%rbp),%xmm2
cvtsi2sd %eax,%xmm5
movq   %xmm3,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm3
mulsd  %xmm5,%xmm3
addsd  %xmm4,%xmm3
mulsd  %xmm3,%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x50(%rbp)
jmp    2a94 <rq_pricing_partial_barrier_delayed_start_up_or_down+0x1924>
movswl -0x4(%rbp),%eax
cmp    $0x0,%eax
je     28b4 <rq_pricing_partial_barrier_delayed_start_up_or_down+0x1744>
movsd  -0x18(%rbp),%xmm1
movsd  -0x20(%rbp),%xmm0
ucomisd %xmm1,%xmm0
jbe    28b4 <rq_pricing_partial_barrier_delayed_start_up_or_down+0x1744>
movsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0x390(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
subsd  -0x28(%rbp),%xmm0
mulsd  -0x48(%rbp),%xmm0
call   1060 <exp@plt>
movaps %xmm0,%xmm1
movsd  -0x390(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x358(%rbp)
ff
movsd  -0xb0(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  -0x80(%rbp),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
movsd  -0xa8(%rbp),%xmm2
ff
mov    $0x3,%al
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x380(%rbp)
ff
movsd  -0x20(%rbp),%xmm0
divsd  -0x10(%rbp),%xmm0
movsd  0xee8(%rip),%xmm2
addsd  -0xa0(%rbp),%xmm2
ff
movsd  0xed0(%rip),%xmm1
mulsd  %xmm2,%xmm1
call   1080 <pow@plt>
movsd  %xmm0,-0x388(%rbp)
ff
movsd  -0xc0(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  -0x90(%rbp),%xmm1
ff
movsd  -0xa8(%rbp),%xmm2
ff
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mov    $0x3,%al
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
movsd  -0x388(%rbp),%xmm0
ff
movsd  -0x380(%rbp),%xmm1
ff
cvtsi2sd %eax,%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x350(%rbp)
ff
movsd  -0x18(%rbp),%xmm0
movsd  %xmm0,-0x378(%rbp)
ff
movsd  -0x28(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  -0x48(%rbp),%xmm0
call   1060 <exp@plt>
movaps %xmm0,%xmm1
movsd  -0x378(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x360(%rbp)
ff
movsd  -0xb8(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  -0x88(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
movsd  -0xa8(%rbp),%xmm2
ff
mov    $0x3,%al
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x368(%rbp)
ff
movsd  -0x20(%rbp),%xmm0
divsd  -0x10(%rbp),%xmm0
movsd  0xd82(%rip),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
call   1080 <pow@plt>
movsd  %xmm0,-0x370(%rbp)
ff
movsd  -0xc8(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  -0x98(%rbp),%xmm1
ff
movsd  -0xa8(%rbp),%xmm2
ff
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mov    $0x3,%al
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
movsd  -0x370(%rbp),%xmm3
ff
movsd  -0x368(%rbp),%xmm4
ff
movsd  -0x360(%rbp),%xmm1
ff
movsd  -0x358(%rbp),%xmm0
ff
movsd  -0x350(%rbp),%xmm2
ff
cvtsi2sd %eax,%xmm5
movq   %xmm3,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm3
mulsd  %xmm5,%xmm3
addsd  %xmm4,%xmm3
mulsd  %xmm3,%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x328(%rbp)
ff
movsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0x348(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
subsd  -0x28(%rbp),%xmm0
mulsd  -0x48(%rbp),%xmm0
call   1060 <exp@plt>
movaps %xmm0,%xmm1
movsd  -0x348(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x330(%rbp)
ff
movsd  -0x60(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  -0x80(%rbp),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
movsd  -0xa8(%rbp),%xmm2
ff
mov    $0x3,%al
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x338(%rbp)
ff
movsd  -0x20(%rbp),%xmm0
divsd  -0x10(%rbp),%xmm0
movsd  0xc15(%rip),%xmm2
addsd  -0xa0(%rbp),%xmm2
ff
movsd  0xbfd(%rip),%xmm1
mulsd  %xmm2,%xmm1
call   1080 <pow@plt>
movsd  %xmm0,-0x340(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  -0x90(%rbp),%xmm1
ff
movsd  -0xa8(%rbp),%xmm2
ff
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mov    $0x3,%al
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
movsd  -0x340(%rbp),%xmm2
ff
movsd  -0x338(%rbp),%xmm3
ff
movsd  -0x330(%rbp),%xmm0
ff
movsd  -0x328(%rbp),%xmm1
ff
cvtsi2sd %eax,%xmm4
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x300(%rbp)
ff
movsd  -0x18(%rbp),%xmm0
movsd  %xmm0,-0x320(%rbp)
ff
movsd  -0x28(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  -0x48(%rbp),%xmm0
call   1060 <exp@plt>
movaps %xmm0,%xmm1
movsd  -0x320(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x308(%rbp)
ff
movsd  -0x68(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  -0x88(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
movsd  -0xa8(%rbp),%xmm2
ff
mov    $0x3,%al
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x310(%rbp)
ff
movsd  -0x20(%rbp),%xmm0
divsd  -0x10(%rbp),%xmm0
movsd  0xa86(%rip),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
call   1080 <pow@plt>
movsd  %xmm0,-0x318(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  -0x98(%rbp),%xmm1
ff
movsd  -0xa8(%rbp),%xmm2
ff
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mov    $0x3,%al
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
movsd  -0x318(%rbp),%xmm2
ff
movsd  -0x310(%rbp),%xmm3
ff
movsd  -0x308(%rbp),%xmm0
ff
movsd  -0x300(%rbp),%xmm1
ff
cvtsi2sd %eax,%xmm4
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x2d8(%rbp)
ff
movsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0x2f8(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
subsd  -0x28(%rbp),%xmm0
mulsd  -0x48(%rbp),%xmm0
call   1060 <exp@plt>
movaps %xmm0,%xmm1
movsd  -0x2f8(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x2e0(%rbp)
ff
movsd  -0xb0(%rbp),%xmm0
ff
movsd  -0x80(%rbp),%xmm1
movsd  -0xa8(%rbp),%xmm2
ff
mov    $0x3,%al
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x2e8(%rbp)
ff
movsd  -0x20(%rbp),%xmm0
divsd  -0x10(%rbp),%xmm0
movsd  0x96a(%rip),%xmm2
addsd  -0xa0(%rbp),%xmm2
ff
movsd  0x952(%rip),%xmm1
mulsd  %xmm2,%xmm1
call   1080 <pow@plt>
movsd  %xmm0,-0x2f0(%rbp)
ff
movsd  -0xc0(%rbp),%xmm0
ff
movsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
movsd  -0xa8(%rbp),%xmm2
ff
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mov    $0x3,%al
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
movsd  -0x2f0(%rbp),%xmm2
ff
movsd  -0x2e8(%rbp),%xmm3
ff
movsd  -0x2e0(%rbp),%xmm0
ff
movsd  -0x2d8(%rbp),%xmm1
ff
cvtsi2sd %eax,%xmm4
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x2b0(%rbp)
ff
movsd  -0x18(%rbp),%xmm0
movsd  %xmm0,-0x2d0(%rbp)
ff
movsd  -0x28(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  -0x48(%rbp),%xmm0
call   1060 <exp@plt>
movaps %xmm0,%xmm1
movsd  -0x2d0(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x2b8(%rbp)
ff
movsd  -0xb8(%rbp),%xmm0
ff
movsd  -0x88(%rbp),%xmm1
ff
movsd  -0xa8(%rbp),%xmm2
ff
mov    $0x3,%al
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x2c0(%rbp)
ff
movsd  -0x20(%rbp),%xmm0
divsd  -0x10(%rbp),%xmm0
movsd  0x81a(%rip),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
call   1080 <pow@plt>
movsd  %xmm0,-0x2c8(%rbp)
ff
movsd  -0xc8(%rbp),%xmm0
ff
movsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
movsd  -0xa8(%rbp),%xmm2
ff
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mov    $0x3,%al
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
movsd  -0x2c8(%rbp),%xmm2
ff
movsd  -0x2c0(%rbp),%xmm3
ff
movsd  -0x2b8(%rbp),%xmm0
ff
movsd  -0x2b0(%rbp),%xmm1
ff
cvtsi2sd %eax,%xmm4
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x50(%rbp)
jmp    2a8f <rq_pricing_partial_barrier_delayed_start_up_or_down+0x191f>
cmpw   $0x0,-0x4(%rbp)
jne    2a8a <rq_pricing_partial_barrier_delayed_start_up_or_down+0x191a>
movsd  -0x10(%rbp),%xmm0
movsd  -0x18(%rbp),%xmm1
movsd  -0x20(%rbp),%xmm2
movsd  -0x28(%rbp),%xmm3
movsd  -0x58(%rbp),%xmm4
movsd  -0x38(%rbp),%xmm5
movsd  -0x40(%rbp),%xmm6
movsd  -0x48(%rbp),%xmm7
xor    %edi,%edi
mov    $0x1,%esi
call   1050 <rq_pricing_partial_barrier_delayed_start_up_or_down@plt>
movsd  %xmm0,-0x3d0(%rbp)
ff
movsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0x3c8(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
subsd  -0x28(%rbp),%xmm0
mulsd  -0x48(%rbp),%xmm0
call   1060 <exp@plt>
movsd  -0x3d0(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x3c8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm0
movsd  -0x108(%rbp),%xmm2
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x3c0(%rbp)
ff
movsd  -0x18(%rbp),%xmm0
movsd  %xmm0,-0x3b8(%rbp)
ff
movsd  -0x28(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  -0x48(%rbp),%xmm0
call   1060 <exp@plt>
movsd  -0x3c0(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x3b8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm0
movsd  -0xe8(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x3b0(%rbp)
ff
movsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0x3a8(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
subsd  -0x28(%rbp),%xmm0
mulsd  -0x48(%rbp),%xmm0
call   1060 <exp@plt>
movsd  -0x3b0(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x3a8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm0
movsd  -0x100(%rbp),%xmm2
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x3a0(%rbp)
ff
movsd  -0x18(%rbp),%xmm0
movsd  %xmm0,-0x398(%rbp)
ff
movsd  -0x28(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  -0x48(%rbp),%xmm0
call   1060 <exp@plt>
movsd  -0x3a0(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x398(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm0
movsd  -0xe0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x50(%rbp)
jmp    2a8f <rq_pricing_partial_barrier_delayed_start_up_or_down+0x191f>
jmp    2a94 <rq_pricing_partial_barrier_delayed_start_up_or_down+0x1924>
movsd  -0x50(%rbp),%xmm0
add    $0x3d0,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<rq_pricing_partial_barrier_delayed_start_up_or_down>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x228,%rsp
movsd  %xmm7,0x8(%rsp)
movsd  %xmm6,0x18(%rsp)
movapd %xmm5,0x80(%rsp)
movsd  %xmm4,0x20(%rsp)
movapd %xmm3,0xb0(%rsp)
movsd  %xmm2,0x60(%rsp)
mov    %esi,0x18c(%rsp)
movsd  %xmm0,0x68(%rsp)
movsd  %xmm1,0x58(%rsp)
divsd  %xmm1,%xmm0
movsd  %xmm0,0x10(%rsp)
call   1070 <log@plt>
movsd  0x8(%rsp),%xmm1
movapd %xmm0,0x130(%rsp)
xorps  %xmm2,%xmm2
sqrtsd %xmm1,%xmm2
xorpd  %xmm3,%xmm3
ucomisd %xmm3,%xmm1
movapd %xmm2,%xmm0
movapd %xmm2,0x120(%rsp)
jae    1216 <rq_pricing_partial_barrier_delayed_start_up_or_down+0xa6>
movapd %xmm1,%xmm0
call   1090 <sqrt@plt>
xorpd  %xmm3,%xmm3
movsd  0x8(%rsp),%xmm1
movapd 0x120(%rsp),%xmm2
movsd  %xmm0,0xa0(%rsp)
ucomisd %xmm3,%xmm1
movapd %xmm2,%xmm0
jae    1234 <rq_pricing_partial_barrier_delayed_start_up_or_down+0xc4>
movsd  0x8(%rsp),%xmm0
call   1090 <sqrt@plt>
movsd  %xmm0,0x170(%rsp)
movsd  0x10(%rsp),%xmm0
call   1070 <log@plt>
movsd  %xmm0,0xe0(%rsp)
movsd  0x60(%rsp),%xmm0
divsd  0x68(%rsp),%xmm0
movsd  %xmm0,0x10(%rsp)
call   1070 <log@plt>
movapd %xmm0,0x90(%rsp)
xorpd  %xmm3,%xmm3
movsd  0x8(%rsp),%xmm1
ucomisd %xmm3,%xmm1
movapd 0x120(%rsp),%xmm0
movapd %xmm0,%xmm2
jae    12ae <rq_pricing_partial_barrier_delayed_start_up_or_down+0x13e>
movapd %xmm1,%xmm0
call   1090 <sqrt@plt>
xorpd  %xmm3,%xmm3
movsd  0x8(%rsp),%xmm1
movapd %xmm0,%xmm2
movapd 0x120(%rsp),%xmm0
movsd  %xmm2,0x100(%rsp)
movapd 0x80(%rsp),%xmm2
mulsd  %xmm2,%xmm2
ucomisd %xmm3,%xmm1
movapd %xmm2,0x190(%rsp)
jae    12e7 <rq_pricing_partial_barrier_delayed_start_up_or_down+0x177>
movsd  0x8(%rsp),%xmm0
call   1090 <sqrt@plt>
movapd 0x190(%rsp),%xmm2
movapd %xmm0,0x120(%rsp)
movapd 0xb0(%rsp),%xmm0
subsd  0x20(%rsp),%xmm0
movapd %xmm0,0xf0(%rsp)
movsd  0x1cf0(%rip),%xmm0
mulsd  %xmm2,%xmm0
movsd  %xmm0,0x150(%rsp)
movsd  0x68(%rsp),%xmm0
divsd  0x60(%rsp),%xmm0
movsd  %xmm0,0x110(%rsp)
call   1070 <log@plt>
movsd  %xmm0,0x70(%rsp)
movsd  0x18(%rsp),%xmm1
xorps  %xmm3,%xmm3
sqrtsd %xmm1,%xmm3
xorpd  %xmm4,%xmm4
ucomisd %xmm4,%xmm1
movapd %xmm3,%xmm0
movapd %xmm3,0x40(%rsp)
jae    1377 <rq_pricing_partial_barrier_delayed_start_up_or_down+0x207>
movapd %xmm1,%xmm0
call   1090 <sqrt@plt>
xorpd  %xmm4,%xmm4
movsd  0x18(%rsp),%xmm1
movapd 0x40(%rsp),%xmm3
movapd %xmm0,0xc0(%rsp)
movapd 0xf0(%rsp),%xmm2
addsd  0x150(%rsp),%xmm2
ucomisd %xmm4,%xmm1
movapd %xmm3,%xmm0
movapd %xmm2,0x30(%rsp)
jae    13b7 <rq_pricing_partial_barrier_delayed_start_up_or_down+0x247>
movapd %xmm1,%xmm0
call   1090 <sqrt@plt>
movapd 0x30(%rsp),%xmm2
movsd  0x18(%rsp),%xmm1
movapd %xmm0,0x140(%rsp)
mulsd  %xmm1,%xmm2
movapd %xmm2,0x20(%rsp)
movsd  0x10(%rsp),%xmm0
call   1070 <log@plt>
movsd  0x18(%rsp),%xmm1
movapd %xmm0,%xmm2
xorpd  %xmm5,%xmm5
ucomisd %xmm5,%xmm1
movapd 0x40(%rsp),%xmm0
jae    1414 <rq_pricing_partial_barrier_delayed_start_up_or_down+0x2a4>
movapd %xmm1,%xmm0
movapd %xmm2,0xd0(%rsp)
call   1090 <sqrt@plt>
xorpd  %xmm5,%xmm5
movapd 0xd0(%rsp),%xmm2
movsd  0x18(%rsp),%xmm1
movapd 0xc0(%rsp),%xmm6
unpcklpd %xmm0,%xmm6
movapd 0x20(%rsp),%xmm3
addsd  0x70(%rsp),%xmm3
addsd  %xmm2,%xmm2
movapd 0x80(%rsp),%xmm4
movapd %xmm4,%xmm0
unpcklpd %xmm4,%xmm0
ucomisd %xmm5,%xmm1
jae    14a2 <rq_pricing_partial_barrier_delayed_start_up_or_down+0x332>
movapd %xmm0,0x70(%rsp)
movapd %xmm1,%xmm0
movapd %xmm3,0x20(%rsp)
movapd %xmm6,0xc0(%rsp)
movapd %xmm2,0xd0(%rsp)
call   1090 <sqrt@plt>
movapd 0xd0(%rsp),%xmm2
movapd 0xc0(%rsp),%xmm6
movapd 0x80(%rsp),%xmm4
movsd  0x18(%rsp),%xmm1
movapd 0x20(%rsp),%xmm3
movapd %xmm0,0x40(%rsp)
movapd 0x70(%rsp),%xmm0
mulpd  %xmm0,%xmm6
unpcklpd %xmm2,%xmm3
movapd %xmm1,%xmm0
movsd  0x8(%rsp),%xmm1
divsd  %xmm1,%xmm0
xorpd  %xmm2,%xmm2
ucomisd %xmm2,%xmm0
jb     14c8 <rq_pricing_partial_barrier_delayed_start_up_or_down+0x358>
sqrtsd %xmm0,%xmm0
jmp    14fa <rq_pricing_partial_barrier_delayed_start_up_or_down+0x38a>
movapd %xmm3,0x20(%rsp)
movapd %xmm6,0xc0(%rsp)
call   1090 <sqrt@plt>
movapd 0xc0(%rsp),%xmm6
movapd 0x80(%rsp),%xmm4
movapd 0x20(%rsp),%xmm3
movsd  0x8(%rsp),%xmm1
movapd %xmm0,0x70(%rsp)
movapd 0x90(%rsp),%xmm2
movapd 0x30(%rsp),%xmm5
movsd  0x110(%rsp),%xmm0
addsd  %xmm2,%xmm2
movapd %xmm2,0x90(%rsp)
mulsd  %xmm1,%xmm5
movapd %xmm5,0x30(%rsp)
movapd 0x1ae9(%rip),%xmm1
xorpd  %xmm4,%xmm1
movapd %xmm1,0xc0(%rsp)
divpd  %xmm6,%xmm3
movapd %xmm3,0x20(%rsp)
call   1070 <log@plt>
movsd  0x8(%rsp),%xmm1
movapd %xmm0,%xmm4
xorps  %xmm2,%xmm2
sqrtsd %xmm1,%xmm2
ucomisd 0x1aa4(%rip),%xmm1
movapd %xmm2,%xmm8
movsd  %xmm2,0x160(%rsp)
jae    15ab <rq_pricing_partial_barrier_delayed_start_up_or_down+0x43b>
movapd %xmm1,%xmm0
movapd %xmm4,0x110(%rsp)
call   1090 <sqrt@plt>
movsd  0x160(%rsp),%xmm2
movapd 0x110(%rsp),%xmm4
movsd  0x8(%rsp),%xmm1
movapd %xmm0,%xmm8
movapd 0x90(%rsp),%xmm3
addsd  0xe0(%rsp),%xmm3
movapd 0x20(%rsp),%xmm9
movapd %xmm9,%xmm5
unpckhpd %xmm9,%xmm5
movapd 0x30(%rsp),%xmm6
addsd  %xmm6,%xmm4
movapd 0x80(%rsp),%xmm7
mulsd  %xmm7,%xmm8
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm1
movapd %xmm2,%xmm0
movapd %xmm3,%xmm1
movapd %xmm9,%xmm2
movapd %xmm7,%xmm3
jae    166b <rq_pricing_partial_barrier_delayed_start_up_or_down+0x4fb>
movsd  0x8(%rsp),%xmm0
movapd %xmm1,0x90(%rsp)
movapd %xmm4,0x110(%rsp)
movapd %xmm5,0xe0(%rsp)
movsd  %xmm8,0xd0(%rsp)
call   1090 <sqrt@plt>
movsd  0xd0(%rsp),%xmm8
movapd 0x30(%rsp),%xmm6
movapd 0xe0(%rsp),%xmm5
movapd 0x110(%rsp),%xmm4
movapd 0x80(%rsp),%xmm3
movapd 0x20(%rsp),%xmm2
movapd 0x90(%rsp),%xmm1
movapd 0x130(%rsp),%xmm7
addsd  %xmm6,%xmm7
movapd %xmm7,0x130(%rsp)
movsd  0xa0(%rsp),%xmm7
mulsd  %xmm3,%xmm7
movsd  %xmm7,0xa0(%rsp)
addsd  %xmm6,%xmm1
movapd %xmm1,0x90(%rsp)
movsd  0x100(%rsp),%xmm1
mulsd  %xmm3,%xmm1
movsd  %xmm1,0x100(%rsp)
movapd 0xc0(%rsp),%xmm7
movapd 0x140(%rsp),%xmm6
mulsd  %xmm7,%xmm6
movapd %xmm6,0x140(%rsp)
addsd  %xmm2,%xmm5
movapd %xmm5,0xe0(%rsp)
movapd 0x40(%rsp),%xmm2
mulsd  %xmm7,%xmm2
movapd %xmm2,0x40(%rsp)
movapd 0xf0(%rsp),%xmm6
subsd  0x150(%rsp),%xmm6
movapd %xmm6,0x30(%rsp)
divsd  %xmm8,%xmm4
movapd %xmm4,0x110(%rsp)
mulsd  %xmm7,%xmm0
movapd %xmm0,0x150(%rsp)
movsd  0x10(%rsp),%xmm0
call   1070 <log@plt>
movapd %xmm0,%xmm5
addsd  %xmm0,%xmm5
movsd  0x8(%rsp),%xmm1
ucomisd 0x18c6(%rip),%xmm1
movsd  0x160(%rsp),%xmm8
movapd %xmm8,%xmm0
jae    1786 <rq_pricing_partial_barrier_delayed_start_up_or_down+0x616>
movapd %xmm1,%xmm0
movapd %xmm5,0xd0(%rsp)
call   1090 <sqrt@plt>
movsd  0x160(%rsp),%xmm8
movapd 0xd0(%rsp),%xmm5
movsd  0x8(%rsp),%xmm1
movapd 0x130(%rsp),%xmm9
divsd  0xa0(%rsp),%xmm9
movapd 0x90(%rsp),%xmm3
divsd  0x100(%rsp),%xmm3
movapd 0x30(%rsp),%xmm2
divsd  0x190(%rsp),%xmm2
movapd %xmm2,0x30(%rsp)
movapd 0x80(%rsp),%xmm2
mulsd  %xmm2,%xmm0
divsd  %xmm0,%xmm5
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm1
movsd  0x170(%rsp),%xmm6
mulsd  %xmm2,%xmm6
movapd 0x120(%rsp),%xmm0
movapd 0xc0(%rsp),%xmm4
mulsd  %xmm4,%xmm0
movapd 0x140(%rsp),%xmm7
addsd  0x20(%rsp),%xmm7
movapd 0x40(%rsp),%xmm1
addsd  0xe0(%rsp),%xmm1
movapd %xmm1,0x40(%rsp)
movapd 0x110(%rsp),%xmm1
movapd 0x150(%rsp),%xmm2
addsd  %xmm1,%xmm2
movapd %xmm2,0x150(%rsp)
addsd  %xmm1,%xmm5
movapd %xmm7,%xmm1
movapd %xmm9,%xmm2
movapd %xmm7,0x140(%rsp)
movapd %xmm9,0x130(%rsp)
movapd %xmm3,0x90(%rsp)
movapd %xmm5,0xd0(%rsp)
jae    18d5 <rq_pricing_partial_barrier_delayed_start_up_or_down+0x765>
movapd %xmm0,0x120(%rsp)
movsd  0x8(%rsp),%xmm0
movsd  %xmm6,0x170(%rsp)
call   1090 <sqrt@plt>
movsd  0x170(%rsp),%xmm6
movapd 0xd0(%rsp),%xmm5
movapd 0xc0(%rsp),%xmm4
movapd 0x90(%rsp),%xmm3
movapd 0x130(%rsp),%xmm2
movapd 0x140(%rsp),%xmm1
movapd %xmm0,%xmm8
movapd 0x120(%rsp),%xmm0
subsd  %xmm6,%xmm2
movapd %xmm2,0x1d0(%rsp)
addsd  %xmm3,%xmm0
movapd %xmm0,0x120(%rsp)
mulsd  %xmm8,%xmm4
addsd  %xmm5,%xmm4
movapd %xmm4,0xc0(%rsp)
movapd %xmm1,%xmm0
mov    $0x1,%al
call   1030 <rq_pricing_norm_dist@plt>
movapd 0x30(%rsp),%xmm1
addsd  %xmm1,%xmm1
movapd %xmm1,0x100(%rsp)
movsd  0x10(%rsp),%xmm0
call   1080 <pow@plt>
movaps 0x40(%rsp),%xmm0
mov    $0x1,%al
call   1030 <rq_pricing_norm_dist@plt>
movaps 0x140(%rsp),%xmm0
xorps  0x16db(%rip),%xmm0
movaps %xmm0,0x190(%rsp)
mov    $0x1,%al
call   1030 <rq_pricing_norm_dist@plt>
movsd  0x10(%rsp),%xmm0
movaps 0x100(%rsp),%xmm1
call   1080 <pow@plt>
movaps 0x40(%rsp),%xmm0
xorps  0x16ad(%rip),%xmm0
movaps %xmm0,0x170(%rsp)
mov    $0x1,%al
call   1030 <rq_pricing_norm_dist@plt>
movaps 0x150(%rsp),%xmm0
movaps 0x140(%rsp),%xmm1
movaps 0x70(%rsp),%xmm2
mov    $0x3,%al
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
mov    %eax,0x188(%rsp)
movsd  0x10(%rsp),%xmm0
movaps 0x100(%rsp),%xmm1
call   1080 <pow@plt>
movsd  %xmm0,0x1c8(%rsp)
movaps 0x70(%rsp),%xmm2
xorps  0x1653(%rip),%xmm2
movaps %xmm2,0xa0(%rsp)
movaps 0xc0(%rsp),%xmm0
movaps 0x170(%rsp),%xmm1
mov    $0x3,%al
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
mov    %eax,%r12d
movaps 0x150(%rsp),%xmm0
xorps  0x1622(%rip),%xmm0
movaps %xmm0,0x210(%rsp)
movaps 0x190(%rsp),%xmm1
movaps 0x70(%rsp),%xmm2
mov    $0x3,%al
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
mov    %eax,%r13d
movsd  0x10(%rsp),%xmm0
movaps 0x100(%rsp),%xmm1
call   1080 <pow@plt>
movsd  %xmm0,0x1c0(%rsp)
movaps 0xc0(%rsp),%xmm0
xorps  0x15d8(%rip),%xmm0
movaps %xmm0,0x200(%rsp)
movaps 0x40(%rsp),%xmm1
movaps 0xa0(%rsp),%xmm2
mov    $0x3,%al
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
mov    %eax,%ebx
movaps 0x20(%rsp),%xmm0
mov    $0x1,%al
call   1030 <rq_pricing_norm_dist@plt>
movapd 0x30(%rsp),%xmm1
addsd  0x1588(%rip),%xmm1
addsd  %xmm1,%xmm1
movapd %xmm1,0x30(%rsp)
movsd  0x10(%rsp),%xmm0
call   1080 <pow@plt>
movaps 0xe0(%rsp),%xmm0
mov    $0x1,%al
call   1030 <rq_pricing_norm_dist@plt>
movaps 0x20(%rsp),%xmm0
xorps  0x1570(%rip),%xmm0
movaps %xmm0,0x1a0(%rsp)
mov    $0x1,%al
call   1030 <rq_pricing_norm_dist@plt>
movsd  0x10(%rsp),%xmm0
movaps 0x30(%rsp),%xmm1
call   1080 <pow@plt>
movaps 0xe0(%rsp),%xmm0
xorps  0x1542(%rip),%xmm0
movaps %xmm0,0x160(%rsp)
mov    $0x1,%al
call   1030 <rq_pricing_norm_dist@plt>
movaps 0x110(%rsp),%xmm0
movaps 0x20(%rsp),%xmm1
movaps 0x70(%rsp),%xmm2
mov    $0x3,%al
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
mov    %eax,%ebp
movsd  0x10(%rsp),%xmm0
movaps 0x30(%rsp),%xmm1
call   1080 <pow@plt>
movsd  %xmm0,0x1b8(%rsp)
movaps 0xd0(%rsp),%xmm0
movaps 0x160(%rsp),%xmm1
movaps 0xa0(%rsp),%xmm2
mov    $0x3,%al
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
mov    %eax,%r14d
movaps 0x110(%rsp),%xmm0
xorps  0x14ce(%rip),%xmm0
movaps %xmm0,0x1f0(%rsp)
movaps 0x1a0(%rsp),%xmm1
movaps 0x70(%rsp),%xmm2
mov    $0x3,%al
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
mov    %eax,%r15d
movsd  0x10(%rsp),%xmm0
movaps 0x30(%rsp),%xmm1
call   1080 <pow@plt>
movsd  %xmm0,0x1b0(%rsp)
movapd 0xd0(%rsp),%xmm0
xorpd  0x1485(%rip),%xmm0
movapd %xmm0,0x1e0(%rsp)
movapd 0xe0(%rsp),%xmm1
movaps 0xa0(%rsp),%xmm2
mov    $0x3,%al
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
mov    0x18c(%rsp),%ecx
test   %cx,%cx
je     1cf6 <rq_pricing_partial_barrier_delayed_start_up_or_down+0xb86>
movsd  0x58(%rsp),%xmm0
ucomisd 0x60(%rsp),%xmm0
jbe    1cf6 <rq_pricing_partial_barrier_delayed_start_up_or_down+0xb86>
movapd 0xf0(%rsp),%xmm0
subsd  0xb0(%rsp),%xmm0
mulsd  0x8(%rsp),%xmm0
call   1060 <exp@plt>
mulsd  0x68(%rsp),%xmm0
movsd  %xmm0,0x40(%rsp)
movaps 0x130(%rsp),%xmm0
movaps 0x20(%rsp),%xmm1
movaps 0x70(%rsp),%xmm2
mov    $0x3,%al
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x20(%rsp)
movsd  0x10(%rsp),%xmm0
movaps 0x30(%rsp),%xmm1
call   1080 <pow@plt>
movsd  %xmm0,0x30(%rsp)
movaps 0x90(%rsp),%xmm0
movaps 0x160(%rsp),%xmm1
movaps 0xa0(%rsp),%xmm2
mov    $0x3,%al
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0x30(%rsp),%xmm0
movsd  0x20(%rsp),%xmm1
subsd  %xmm0,%xmm1
mulsd  0x40(%rsp),%xmm1
movsd  %xmm1,0x20(%rsp)
movapd 0xb0(%rsp),%xmm0
xorpd  0x138a(%rip),%xmm0
mulsd  0x8(%rsp),%xmm0
call   1060 <exp@plt>
movsd  %xmm0,0x8(%rsp)
movaps 0x1d0(%rsp),%xmm0
movaps 0x140(%rsp),%xmm1
movaps 0x70(%rsp),%xmm2
mov    $0x3,%al
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x40(%rsp)
movsd  0x10(%rsp),%xmm0
movaps 0x100(%rsp),%xmm1
call   1080 <pow@plt>
movsd  %xmm0,0x10(%rsp)
movaps 0x120(%rsp),%xmm0
jmp    211a <rq_pricing_partial_barrier_delayed_start_up_or_down+0xfaa>
test   %cx,%cx
je     2178 <rq_pricing_partial_barrier_delayed_start_up_or_down+0x1008>
movsd  0x60(%rsp),%xmm0
ucomisd 0x58(%rsp),%xmm0
jbe    2178 <rq_pricing_partial_barrier_delayed_start_up_or_down+0x1008>
movapd 0xf0(%rsp),%xmm0
subsd  0xb0(%rsp),%xmm0
mulsd  0x8(%rsp),%xmm0
movapd %xmm0,0xf0(%rsp)
call   1060 <exp@plt>
mulsd  0x68(%rsp),%xmm0
movsd  %xmm0,0x18(%rsp)
movaps 0x1f0(%rsp),%xmm0
movaps 0x1a0(%rsp),%xmm1
movaps 0x70(%rsp),%xmm2
mov    $0x3,%al
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x80(%rsp)
movsd  0x10(%rsp),%xmm0
movaps 0x30(%rsp),%xmm1
call   1080 <pow@plt>
movsd  %xmm0,0x60(%rsp)
movaps 0x1e0(%rsp),%xmm0
movaps 0xe0(%rsp),%xmm1
movaps 0xa0(%rsp),%xmm2
mov    $0x3,%al
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0x60(%rsp),%xmm0
movsd  0x80(%rsp),%xmm1
subsd  %xmm0,%xmm1
mulsd  0x18(%rsp),%xmm1
movsd  %xmm1,0x80(%rsp)
movapd 0x124b(%rip),%xmm1
movapd 0xb0(%rsp),%xmm0
xorpd  %xmm1,%xmm0
mulsd  0x8(%rsp),%xmm0
movapd %xmm0,0xb0(%rsp)
call   1060 <exp@plt>
movsd  %xmm0,0x8(%rsp)
movaps 0x210(%rsp),%xmm0
movaps 0x190(%rsp),%xmm1
movaps 0x70(%rsp),%xmm2
mov    $0x3,%al
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x18(%rsp)
movsd  0x10(%rsp),%xmm0
movaps 0x100(%rsp),%xmm1
call   1080 <pow@plt>
movsd  %xmm0,0x60(%rsp)
movaps 0x200(%rsp),%xmm0
movaps 0x40(%rsp),%xmm1
movaps 0xa0(%rsp),%xmm2
mov    $0x3,%al
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0x60(%rsp),%xmm0
movsd  0x18(%rsp),%xmm1
subsd  %xmm0,%xmm1
movsd  0x8(%rsp),%xmm0
mulsd  0x58(%rsp),%xmm0
mulsd  %xmm1,%xmm0
movapd %xmm0,%xmm1
movsd  0x80(%rsp),%xmm0
subsd  %xmm1,%xmm0
movsd  %xmm0,0x80(%rsp)
movaps 0xf0(%rsp),%xmm0
call   1060 <exp@plt>
movsd  %xmm0,0x8(%rsp)
movaps 0x130(%rsp),%xmm0
xorps  0x1163(%rip),%xmm0
movaps 0x1a0(%rsp),%xmm1
movaps 0x70(%rsp),%xmm2
mov    $0x3,%al
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x130(%rsp)
movsd  0x10(%rsp),%xmm0
movaps 0x30(%rsp),%xmm1
call   1080 <pow@plt>
movsd  %xmm0,0x18(%rsp)
movaps 0x90(%rsp),%xmm0
xorps  0x111a(%rip),%xmm0
movaps 0xe0(%rsp),%xmm1
movaps 0xa0(%rsp),%xmm2
mov    $0x3,%al
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0x18(%rsp),%xmm0
movsd  0x130(%rsp),%xmm1
subsd  %xmm0,%xmm1
movsd  0x8(%rsp),%xmm0
mulsd  0x68(%rsp),%xmm0
mulsd  %xmm1,%xmm0
movapd %xmm0,%xmm1
movsd  0x80(%rsp),%xmm0
subsd  %xmm1,%xmm0
movsd  %xmm0,0x80(%rsp)
movapd 0xb0(%rsp),%xmm0
call   1060 <exp@plt>
mulsd  0x58(%rsp),%xmm0
movsd  %xmm0,0x90(%rsp)
movaps 0x1d0(%rsp),%xmm0
xorps  0x1093(%rip),%xmm0
movaps 0x190(%rsp),%xmm1
movaps 0x70(%rsp),%xmm2
mov    $0x3,%al
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x8(%rsp)
movsd  0x10(%rsp),%xmm0
movaps 0x100(%rsp),%xmm1
call   1080 <pow@plt>
movsd  %xmm0,0xe0(%rsp)
movaps 0x120(%rsp),%xmm0
xorps  0x1047(%rip),%xmm0
movaps 0x40(%rsp),%xmm1
movaps 0xa0(%rsp),%xmm2
mov    $0x3,%al
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0xe0(%rsp),%xmm0
movsd  0x8(%rsp),%xmm1
subsd  %xmm0,%xmm1
mulsd  0x90(%rsp),%xmm1
addsd  0x80(%rsp),%xmm1
movsd  %xmm1,0x8(%rsp)
movapd 0xf0(%rsp),%xmm0
call   1060 <exp@plt>
mulsd  0x68(%rsp),%xmm0
movsd  %xmm0,0x40(%rsp)
movaps 0x110(%rsp),%xmm0
movaps 0x20(%rsp),%xmm1
movaps 0x70(%rsp),%xmm2
mov    $0x3,%al
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x20(%rsp)
movsd  0x10(%rsp),%xmm0
movaps 0x30(%rsp),%xmm1
call   1080 <pow@plt>
movsd  %xmm0,0x30(%rsp)
movaps 0xd0(%rsp),%xmm0
movaps 0x160(%rsp),%xmm1
movaps 0xa0(%rsp),%xmm2
mov    $0x3,%al
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0x30(%rsp),%xmm0
movsd  0x20(%rsp),%xmm1
subsd  %xmm0,%xmm1
mulsd  0x40(%rsp),%xmm1
addsd  0x8(%rsp),%xmm1
movsd  %xmm1,0x20(%rsp)
movaps 0xb0(%rsp),%xmm0
call   1060 <exp@plt>
movsd  %xmm0,0x8(%rsp)
movaps 0x150(%rsp),%xmm0
movaps 0x140(%rsp),%xmm1
movaps 0x70(%rsp),%xmm2
mov    $0x3,%al
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x40(%rsp)
movsd  0x10(%rsp),%xmm0
movaps 0x100(%rsp),%xmm1
call   1080 <pow@plt>
movsd  %xmm0,0x10(%rsp)
movaps 0xc0(%rsp),%xmm0
movaps 0x170(%rsp),%xmm1
movaps 0xa0(%rsp),%xmm2
mov    $0x3,%al
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0x10(%rsp),%xmm0
movsd  0x40(%rsp),%xmm1
subsd  %xmm0,%xmm1
movsd  0x8(%rsp),%xmm0
mulsd  0x58(%rsp),%xmm0
mulsd  %xmm1,%xmm0
movapd %xmm0,%xmm1
movsd  0x20(%rsp),%xmm0
subsd  %xmm1,%xmm0
add    $0x228,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret
test   %cx,%cx
movapd 0xf0(%rsp),%xmm4
je     218c <rq_pricing_partial_barrier_delayed_start_up_or_down+0x101c>
xorpd  %xmm0,%xmm0
jmp    2166 <rq_pricing_partial_barrier_delayed_start_up_or_down+0xff6>
xorps  %xmm2,%xmm2
cvtsi2sdl 0x188(%rsp),%xmm2
xorps  %xmm0,%xmm0
cvtsi2sd %r12d,%xmm0
movsd  0x1c8(%rsp),%xmm1
mulsd  %xmm0,%xmm1
subsd  %xmm1,%xmm2
movsd  %xmm2,0x20(%rsp)
xorps  %xmm2,%xmm2
cvtsi2sd %r13d,%xmm2
xorps  %xmm0,%xmm0
cvtsi2sd %ebx,%xmm0
movsd  0x1c0(%rsp),%xmm1
mulsd  %xmm0,%xmm1
subsd  %xmm1,%xmm2
movsd  %xmm2,0x30(%rsp)
xorps  %xmm2,%xmm2
cvtsi2sd %ebp,%xmm2
xorps  %xmm0,%xmm0
cvtsi2sd %r14d,%xmm0
movsd  0x1b8(%rsp),%xmm1
mulsd  %xmm0,%xmm1
subsd  %xmm1,%xmm2
movsd  %xmm2,0x40(%rsp)
xorps  %xmm2,%xmm2
cvtsi2sd %r15d,%xmm2
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  0x1b0(%rsp),%xmm1
mulsd  %xmm0,%xmm1
subsd  %xmm1,%xmm2
movsd  %xmm2,0x90(%rsp)
xor    %edi,%edi
mov    $0x1,%esi
movsd  0x68(%rsp),%xmm0
movsd  0x58(%rsp),%xmm1
movsd  0x60(%rsp),%xmm2
movapd 0xb0(%rsp),%xmm3
movapd 0x80(%rsp),%xmm5
movsd  0x18(%rsp),%xmm6
movsd  0x8(%rsp),%xmm7
call   1050 <rq_pricing_partial_barrier_delayed_start_up_or_down@plt>
movsd  %xmm0,0x10(%rsp)
movapd 0xf0(%rsp),%xmm0
subsd  0xb0(%rsp),%xmm0
mulsd  0x8(%rsp),%xmm0
movapd %xmm0,0xf0(%rsp)
call   1060 <exp@plt>
mulsd  0x68(%rsp),%xmm0
mulsd  0x90(%rsp),%xmm0
movsd  0x10(%rsp),%xmm1
subsd  %xmm0,%xmm1
movsd  %xmm1,0x10(%rsp)
movapd 0xb0(%rsp),%xmm0
xorpd  0xd5c(%rip),%xmm0
mulsd  0x8(%rsp),%xmm0
movapd %xmm0,0xb0(%rsp)
call   1060 <exp@plt>
mulsd  0x58(%rsp),%xmm0
mulsd  0x30(%rsp),%xmm0
addsd  0x10(%rsp),%xmm0
movsd  %xmm0,0x10(%rsp)
movapd 0xf0(%rsp),%xmm0
call   1060 <exp@plt>
mulsd  0x68(%rsp),%xmm0
mulsd  0x40(%rsp),%xmm0
movsd  0x10(%rsp),%xmm1
subsd  %xmm0,%xmm1
movsd  %xmm1,0x10(%rsp)
movapd 0xb0(%rsp),%xmm0
call   1060 <exp@plt>
mulsd  0x58(%rsp),%xmm0
mulsd  0x20(%rsp),%xmm0
addsd  0x10(%rsp),%xmm0
jmp    2166 <rq_pricing_partial_barrier_delayed_start_up_or_down+0xff6>

LLVM IR (-O0):
define double @rq_pricing_partial_barrier_delayed_start_up_or_down(i16 signext %0, i16 signext %1, double %2, double %3, double %4, double %5, double %6, double %7, double %8, double %9) {
%11 = alloca i16
%12 = alloca i16
%13 = alloca double
%14 = alloca double
%15 = alloca double
%16 = alloca double
%17 = alloca double
%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 double
%31 = alloca double
%32 = alloca double
%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
%43 = alloca double
%44 = alloca double
store i16 %0, i16* %11
store i16 %1, i16* %12
store double %2, double* %13
store double %3, double* %14
store double %4, double* %15
store double %5, double* %16
store double %6, double* %17
store double %7, double* %18
store double %8, double* %19
store double %9, double* %20
store double 0.000000e+00, double* %21
%45 = load double, double* %16
%46 = load double, double* %17
%47 = fsub double %45, %46
store double %47, double* %22
%48 = load double, double* %13
%49 = load double, double* %14
%50 = fdiv double %48, %49
%51 = call double @log(double %50)
%52 = load double, double* %22
%53 = load double, double* %18
%54 = load double, double* %18
%55 = fmul double %53, %54
%56 = fdiv double %55, 2.000000e+00
%57 = fadd double %52, %56
%58 = load double, double* %20
%59 = call double @llvm.fmuladd.f64(double %57, double %58, double %51)
%60 = load double, double* %18
%61 = load double, double* %20
%62 = call double @sqrt(double %61)
%63 = fmul double %60, %62
%64 = fdiv double %59, %63
store double %64, double* %23
%65 = load double, double* %23
%66 = load double, double* %18
%67 = load double, double* %20
%68 = call double @sqrt(double %67)
%69 = fneg double %66
%70 = call double @llvm.fmuladd.f64(double %69, double %68, double %65)
store double %70, double* %24
%71 = load double, double* %13
%72 = load double, double* %14
%73 = fdiv double %71, %72
%74 = call double @log(double %73)
%75 = load double, double* %15
%76 = load double, double* %13
%77 = fdiv double %75, %76
%78 = call double @log(double %77)
%79 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %78, double %74)
%80 = load double, double* %22
%81 = load double, double* %18
%82 = load double, double* %18
%83 = fmul double %81, %82
%84 = fdiv double %83, 2.000000e+00
%85 = fadd double %80, %84
%86 = load double, double* %20
%87 = call double @llvm.fmuladd.f64(double %85, double %86, double %79)
%88 = load double, double* %18
%89 = load double, double* %20
%90 = call double @sqrt(double %89)
%91 = fmul double %88, %90
%92 = fdiv double %87, %91
store double %92, double* %25
%93 = load double, double* %25
%94 = load double, double* %18
%95 = load double, double* %20
%96 = call double @sqrt(double %95)
%97 = fneg double %94
%98 = call double @llvm.fmuladd.f64(double %97, double %96, double %93)
store double %98, double* %26
%99 = load double, double* %13
%100 = load double, double* %15
%101 = fdiv double %99, %100
%102 = call double @log(double %101)
%103 = load double, double* %22
%104 = load double, double* %18
%105 = load double, double* %18
%106 = fmul double %104, %105
%107 = fdiv double %106, 2.000000e+00
%108 = fadd double %103, %107
%109 = load double, double* %19
%110 = call double @llvm.fmuladd.f64(double %108, double %109, double %102)
%111 = load double, double* %18
%112 = load double, double* %19
%113 = call double @sqrt(double %112)
%114 = fmul double %111, %113
%115 = fdiv double %110, %114
store double %115, double* %27
%116 = load double, double* %27
%117 = load double, double* %18
%118 = load double, double* %19
%119 = call double @sqrt(double %118)
%120 = fneg double %117
%121 = call double @llvm.fmuladd.f64(double %120, double %119, double %116)
store double %121, double* %28
%122 = load double, double* %27
%123 = load double, double* %15
%124 = load double, double* %13
%125 = fdiv double %123, %124
%126 = call double @log(double %125)
%127 = fmul double 2.000000e+00, %126
%128 = load double, double* %18
%129 = load double, double* %19
%130 = call double @sqrt(double %129)
%131 = fmul double %128, %130
%132 = fdiv double %127, %131
%133 = fadd double %122, %132
store double %133, double* %29
%134 = load double, double* %29
%135 = load double, double* %18
%136 = load double, double* %19
%137 = call double @sqrt(double %136)
%138 = fneg double %135
%139 = call double @llvm.fmuladd.f64(double %138, double %137, double %134)
store double %139, double* %30
%140 = load double, double* %22
%141 = load double, double* %18
%142 = load double, double* %18
%143 = fmul double %141, %142
%144 = fdiv double %143, 2.000000e+00
%145 = fsub double %140, %144
%146 = load double, double* %18
%147 = load double, double* %18
%148 = fmul double %146, %147
%149 = fdiv double %145, %148
store double %149, double* %31
%150 = load double, double* %19
%151 = load double, double* %20
%152 = fdiv double %150, %151
%153 = call double @sqrt(double %152)
store double %153, double* %32
%154 = load double, double* %13
%155 = load double, double* %15
%156 = fdiv double %154, %155
%157 = call double @log(double %156)
%158 = load double, double* %22
%159 = load double, double* %18
%160 = load double, double* %18
%161 = fmul double %159, %160
%162 = fdiv double %161, 2.000000e+00
%163 = fadd double %158, %162
%164 = load double, double* %20
%165 = call double @llvm.fmuladd.f64(double %163, double %164, double %157)
%166 = load double, double* %18
%167 = load double, double* %20
%168 = call double @sqrt(double %167)
%169 = fmul double %166, %168
%170 = fdiv double %165, %169
store double %170, double* %33
%171 = load double, double* %33
%172 = load double, double* %18
%173 = load double, double* %20
%174 = call double @sqrt(double %173)
%175 = fneg double %172
%176 = call double @llvm.fmuladd.f64(double %175, double %174, double %171)
store double %176, double* %34
%177 = load double, double* %33
%178 = load double, double* %15
%179 = load double, double* %13
%180 = fdiv double %178, %179
%181 = call double @log(double %180)
%182 = fmul double 2.000000e+00, %181
%183 = load double, double* %18
%184 = load double, double* %20
%185 = call double @sqrt(double %184)
%186 = fmul double %183, %185
%187 = fdiv double %182, %186
%188 = fadd double %177, %187
store double %188, double* %35
%189 = load double, double* %35
%190 = load double, double* %18
%191 = load double, double* %20
%192 = call double @sqrt(double %191)
%193 = fneg double %190
%194 = call double @llvm.fmuladd.f64(double %193, double %192, double %189)
store double %194, double* %36
%195 = load double, double* %28
%196 = call i32 (double, ...) bitcast (i32 (...)* @rq_pricing_norm_dist to i32 (double, ...)*)(double %195)
%197 = sitofp i32 %196 to double
%198 = load double, double* %15
%199 = load double, double* %13
%200 = fdiv double %198, %199
%201 = load double, double* %31
%202 = fmul double 2.000000e+00, %201
%203 = call double @pow(double %200, double %202)
%204 = load double, double* %30
%205 = call i32 (double, ...) bitcast (i32 (...)* @rq_pricing_norm_dist to i32 (double, ...)*)(double %204)
%206 = sitofp i32 %205 to double
%207 = fneg double %203
%208 = call double @llvm.fmuladd.f64(double %207, double %206, double %197)
store double %208, double* %37
%209 = load double, double* %28
%210 = fneg double %209
%211 = call i32 (double, ...) bitcast (i32 (...)* @rq_pricing_norm_dist to i32 (double, ...)*)(double %210)
%212 = sitofp i32 %211 to double
%213 = load double, double* %15
%214 = load double, double* %13
%215 = fdiv double %213, %214
%216 = load double, double* %31
%217 = fmul double 2.000000e+00, %216
%218 = call double @pow(double %215, double %217)
%219 = load double, double* %30
%220 = fneg double %219
%221 = call i32 (double, ...) bitcast (i32 (...)* @rq_pricing_norm_dist to i32 (double, ...)*)(double %220)
%222 = sitofp i32 %221 to double
%223 = fneg double %218
%224 = call double @llvm.fmuladd.f64(double %223, double %222, double %212)
store double %224, double* %38
%225 = load double, double* %34
%226 = load double, double* %28
%227 = load double, double* %32
%228 = call i32 (double, double, double, ...) bitcast (i32 (...)* @rq_pricing_cumul_bivar_norm_dist to i32 (double, double, double, ...)*)(double %225, double %226, double %227)
%229 = sitofp i32 %228 to double
%230 = load double, double* %15
%231 = load double, double* %13
%232 = fdiv double %230, %231
%233 = load double, double* %31
%234 = fmul double 2.000000e+00, %233
%235 = call double @pow(double %232, double %234)
%236 = load double, double* %36
%237 = load double, double* %30
%238 = fneg double %237
%239 = load double, double* %32
%240 = fneg double %239
%241 = call i32 (double, double, double, ...) bitcast (i32 (...)* @rq_pricing_cumul_bivar_norm_dist to i32 (double, double, double, ...)*)(double %236, double %238, double %240)
%242 = sitofp i32 %241 to double
%243 = fneg double %235
%244 = call double @llvm.fmuladd.f64(double %243, double %242, double %229)
store double %244, double* %39
%245 = load double, double* %34
%246 = fneg double %245
%247 = load double, double* %28
%248 = fneg double %247
%249 = load double, double* %32
%250 = call i32 (double, double, double, ...) bitcast (i32 (...)* @rq_pricing_cumul_bivar_norm_dist to i32 (double, double, double, ...)*)(double %246, double %248, double %249)
%251 = sitofp i32 %250 to double
%252 = load double, double* %15
%253 = load double, double* %13
%254 = fdiv double %252, %253
%255 = load double, double* %31
%256 = fmul double 2.000000e+00, %255
%257 = call double @pow(double %254, double %256)
%258 = load double, double* %36
%259 = fneg double %258
%260 = load double, double* %30
%261 = load double, double* %32
%262 = fneg double %261
%263 = call i32 (double, double, double, ...) bitcast (i32 (...)* @rq_pricing_cumul_bivar_norm_dist to i32 (double, double, double, ...)*)(double %259, double %260, double %262)
%264 = sitofp i32 %263 to double
%265 = fneg double %257
%266 = call double @llvm.fmuladd.f64(double %265, double %264, double %251)
store double %266, double* %40
%267 = load double, double* %27
%268 = call i32 (double, ...) bitcast (i32 (...)* @rq_pricing_norm_dist to i32 (double, ...)*)(double %267)
%269 = sitofp i32 %268 to double
%270 = load double, double* %15
%271 = load double, double* %13
%272 = fdiv double %270, %271
%273 = load double, double* %31
%274 = fadd double %273, 1.000000e+00
%275 = fmul double 2.000000e+00, %274
%276 = call double @pow(double %272, double %275)
%277 = load double, double* %29
%278 = call i32 (double, ...) bitcast (i32 (...)* @rq_pricing_norm_dist to i32 (double, ...)*)(double %277)
%279 = sitofp i32 %278 to double
%280 = fneg double %276
%281 = call double @llvm.fmuladd.f64(double %280, double %279, double %269)
store double %281, double* %41
%282 = load double, double* %27
%283 = fneg double %282
%284 = call i32 (double, ...) bitcast (i32 (...)* @rq_pricing_norm_dist to i32 (double, ...)*)(double %283)
%285 = sitofp i32 %284 to double
%286 = load double, double* %15
%287 = load double, double* %13
%288 = fdiv double %286, %287
%289 = load double, double* %31
%290 = fadd double %289, 1.000000e+00
%291 = fmul double 2.000000e+00, %290
%292 = call double @pow(double %288, double %291)
%293 = load double, double* %29
%294 = fneg double %293
%295 = call i32 (double, ...) bitcast (i32 (...)* @rq_pricing_norm_dist to i32 (double, ...)*)(double %294)
%296 = sitofp i32 %295 to double
%297 = fneg double %292
%298 = call double @llvm.fmuladd.f64(double %297, double %296, double %285)
store double %298, double* %42
%299 = load double, double* %33
%300 = load double, double* %27
%301 = load double, double* %32
%302 = call i32 (double, double, double, ...) bitcast (i32 (...)* @rq_pricing_cumul_bivar_norm_dist to i32 (double, double, double, ...)*)(double %299, double %300, double %301)
%303 = sitofp i32 %302 to double
%304 = load double, double* %15
%305 = load double, double* %13
%306 = fdiv double %304, %305
%307 = load double, double* %31
%308 = fadd double %307, 1.000000e+00
%309 = fmul double 2.000000e+00, %308
%310 = call double @pow(double %306, double %309)
%311 = load double, double* %35
%312 = load double, double* %29
%313 = fneg double %312
%314 = load double, double* %32
%315 = fneg double %314
%316 = call i32 (double, double, double, ...) bitcast (i32 (...)* @rq_pricing_cumul_bivar_norm_dist to i32 (double, double, double, ...)*)(double %311, double %313, double %315)
%317 = sitofp i32 %316 to double
%318 = fneg double %310
%319 = call double @llvm.fmuladd.f64(double %318, double %317, double %303)
store double %319, double* %43
%320 = load double, double* %33
%321 = fneg double %320
%322 = load double, double* %27
%323 = fneg double %322
%324 = load double, double* %32
%325 = call i32 (double, double, double, ...) bitcast (i32 (...)* @rq_pricing_cumul_bivar_norm_dist to i32 (double, double, double, ...)*)(double %321, double %323, double %324)
%326 = sitofp i32 %325 to double
%327 = load double, double* %15
%328 = load double, double* %13
%329 = fdiv double %327, %328
%330 = load double, double* %31
%331 = fadd double %330, 1.000000e+00
%332 = fmul double 2.000000e+00, %331
%333 = call double @pow(double %329, double %332)
%334 = load double, double* %35
%335 = fneg double %334
%336 = load double, double* %29
%337 = load double, double* %32
%338 = fneg double %337
%339 = call i32 (double, double, double, ...) bitcast (i32 (...)* @rq_pricing_cumul_bivar_norm_dist to i32 (double, double, double, ...)*)(double %335, double %336, double %338)
%340 = sitofp i32 %339 to double
%341 = fneg double %333
%342 = call double @llvm.fmuladd.f64(double %341, double %340, double %326)
store double %342, double* %44
%343 = load i16, i16* %12
%344 = sext i16 %343 to i32
%345 = icmp ne i32 %344, 0
br i1 %345, label %346, label %410
346: ; preds = %10
%347 = load double, double* %14
%348 = load double, double* %15
%349 = fcmp ogt double %347, %348
br i1 %349, label %350, label %410
350: ; preds = %346
%351 = load double, double* %13
%352 = load double, double* %22
%353 = load double, double* %16
%354 = fsub double %352, %353
%355 = load double, double* %20
%356 = fmul double %354, %355
%357 = call double @exp(double %356)
%358 = fmul double %351, %357
%359 = load double, double* %23
%360 = load double, double* %27
%361 = load double, double* %32
%362 = call i32 (double, double, double, ...) bitcast (i32 (...)* @rq_pricing_cumul_bivar_norm_dist to i32 (double, double, double, ...)*)(double %359, double %360, double %361)
%363 = sitofp i32 %362 to double
%364 = load double, double* %15
%365 = load double, double* %13
%366 = fdiv double %364, %365
%367 = load double, double* %31
%368 = fadd double %367, 1.000000e+00
%369 = fmul double 2.000000e+00, %368
%370 = call double @pow(double %366, double %369)
%371 = load double, double* %25
%372 = load double, double* %29
%373 = fneg double %372
%374 = load double, double* %32
%375 = fneg double %374
%376 = call i32 (double, double, double, ...) bitcast (i32 (...)* @rq_pricing_cumul_bivar_norm_dist to i32 (double, double, double, ...)*)(double %371, double %373, double %375)
%377 = sitofp i32 %376 to double
%378 = fneg double %370
%379 = call double @llvm.fmuladd.f64(double %378, double %377, double %363)
%380 = load double, double* %14
%381 = load double, double* %16
%382 = fneg double %381
%383 = load double, double* %20
%384 = fmul double %382, %383
%385 = call double @exp(double %384)
%386 = fmul double %380, %385
%387 = load double, double* %24
%388 = load double, double* %28
%389 = load double, double* %32
%390 = call i32 (double, double, double, ...) bitcast (i32 (...)* @rq_pricing_cumul_bivar_norm_dist to i32 (double, double, double, ...)*)(double %387, double %388, double %389)
%391 = sitofp i32 %390 to double
%392 = load double, double* %15
%393 = load double, double* %13
%394 = fdiv double %392, %393
%395 = load double, double* %31
%396 = fmul double 2.000000e+00, %395
%397 = call double @pow(double %394, double %396)
%398 = load double, double* %26
%399 = load double, double* %30
%400 = fneg double %399
%401 = load double, double* %32
%402 = fneg double %401
%403 = call i32 (double, double, double, ...) bitcast (i32 (...)* @rq_pricing_cumul_bivar_norm_dist to i32 (double, double, double, ...)*)(double %398, double %400, double %402)
%404 = sitofp i32 %403 to double
%405 = fneg double %397
%406 = call double @llvm.fmuladd.f64(double %405, double %404, double %391)
%407 = fmul double %386, %406
%408 = fneg double %407
%409 = call double @llvm.fmuladd.f64(double %358, double %379, double %408)
store double %409, double* %21
br label %659
410: ; preds = %346, %10
%411 = load i16, i16* %12
%412 = sext i16 %411 to i32
%413 = icmp ne i32 %412, 0
br i1 %413, label %414, label %604
414: ; preds = %410
%415 = load double, double* %14
%416 = load double, double* %15
%417 = fcmp olt double %415, %416
br i1 %417, label %418, label %604
418: ; preds = %414
%419 = load double, double* %13
%420 = load double, double* %22
%421 = load double, double* %16
%422 = fsub double %420, %421
%423 = load double, double* %20
%424 = fmul double %422, %423
%425 = call double @exp(double %424)
%426 = fmul double %419, %425
%427 = load double, double* %33
%428 = fneg double %427
%429 = load double, double* %27
%430 = fneg double %429
%431 = load double, double* %32
%432 = call i32 (double, double, double, ...) bitcast (i32 (...)* @rq_pricing_cumul_bivar_norm_dist to i32 (double, double, double, ...)*)(double %428, double %430, double %431)
%433 = sitofp i32 %432 to double
%434 = load double, double* %15
%435 = load double, double* %13
%436 = fdiv double %434, %435
%437 = load double, double* %31
%438 = fadd double %437, 1.000000e+00
%439 = fmul double 2.000000e+00, %438
%440 = call double @pow(double %436, double %439)
%441 = load double, double* %35
%442 = fneg double %441
%443 = load double, double* %29
%444 = load double, double* %32
%445 = fneg double %444
%446 = call i32 (double, double, double, ...) bitcast (i32 (...)* @rq_pricing_cumul_bivar_norm_dist to i32 (double, double, double, ...)*)(double %442, double %443, double %445)
%447 = sitofp i32 %446 to double
%448 = fneg double %440
%449 = call double @llvm.fmuladd.f64(double %448, double %447, double %433)
%450 = load double, double* %14
%451 = load double, double* %16
%452 = fneg double %451
%453 = load double, double* %20
%454 = fmul double %452, %453
%455 = call double @exp(double %454)
%456 = fmul double %450, %455
%457 = load double, double* %34
%458 = fneg double %457
%459 = load double, double* %28
%460 = fneg double %459
%461 = load double, double* %32
%462 = call i32 (double, double, double, ...) bitcast (i32 (...)* @rq_pricing_cumul_bivar_norm_dist to i32 (double, double, double, ...)*)(double %458, double %460, double %461)
%463 = sitofp i32 %462 to double
%464 = load double, double* %15
%465 = load double, double* %13
%466 = fdiv double %464, %465
%467 = load double, double* %31
%468 = fmul double 2.000000e+00, %467
%469 = call double @pow(double %466, double %468)
%470 = load double, double* %36
%471 = fneg double %470
%472 = load double, double* %30
%473 = load double, double* %32
%474 = fneg double %473
%475 = call i32 (double, double, double, ...) bitcast (i32 (...)* @rq_pricing_cumul_bivar_norm_dist to i32 (double, double, double, ...)*)(double %471, double %472, double %474)
%476 = sitofp i32 %475 to double
%477 = fneg double %469
%478 = call double @llvm.fmuladd.f64(double %477, double %476, double %463)
%479 = fmul double %456, %478
%480 = fneg double %479
%481 = call double @llvm.fmuladd.f64(double %426, double %449, double %480)
%482 = load double, double* %13
%483 = load double, double* %22
%484 = load double, double* %16
%485 = fsub double %483, %484
%486 = load double, double* %20
%487 = fmul double %485, %486
%488 = call double @exp(double %487)
%489 = fmul double %482, %488
%490 = load double, double* %23
%491 = fneg double %490
%492 = load double, double* %27
%493 = fneg double %492
%494 = load double, double* %32
%495 = call i32 (double, double, double, ...) bitcast (i32 (...)* @rq_pricing_cumul_bivar_norm_dist to i32 (double, double, double, ...)*)(double %491, double %493, double %494)
%496 = sitofp i32 %495 to double
%497 = load double, double* %15
%498 = load double, double* %13
%499 = fdiv double %497, %498
%500 = load double, double* %31
%501 = fadd double %500, 1.000000e+00
%502 = fmul double 2.000000e+00, %501
%503 = call double @pow(double %499, double %502)
%504 = load double, double* %25
%505 = fneg double %504
%506 = load double, double* %29
%507 = load double, double* %32
%508 = fneg double %507
%509 = call i32 (double, double, double, ...) bitcast (i32 (...)* @rq_pricing_cumul_bivar_norm_dist to i32 (double, double, double, ...)*)(double %505, double %506, double %508)
%510 = sitofp i32 %509 to double
%511 = fneg double %503
%512 = call double @llvm.fmuladd.f64(double %511, double %510, double %496)
%513 = fneg double %489
%514 = call double @llvm.fmuladd.f64(double %513, double %512, double %481)
%515 = load double, double* %14
%516 = load double, double* %16
%517 = fneg double %516
%518 = load double, double* %20
%519 = fmul double %517, %518
%520 = call double @exp(double %519)
%521 = fmul double %515, %520
%522 = load double, double* %24
%523 = fneg double %522
%524 = load double, double* %28
%525 = fneg double %524
%526 = load double, double* %32
%527 = call i32 (double, double, double, ...) bitcast (i32 (...)* @rq_pricing_cumul_bivar_norm_dist to i32 (double, double, double, ...)*)(double %523, double %525, double %526)
%528 = sitofp i32 %527 to double
%529 = load double, double* %15
%530 = load double, double* %13
%531 = fdiv double %529, %530
%532 = load double, double* %31
%533 = fmul double 2.000000e+00, %532
%534 = call double @pow(double %531, double %533)
%535 = load double, double* %26
%536 = fneg double %535
%537 = load double, double* %30
%538 = load double, double* %32
%539 = fneg double %538
%540 = call i32 (double, double, double, ...) bitcast (i32 (...)* @rq_pricing_cumul_bivar_norm_dist to i32 (double, double, double, ...)*)(double %536, double %537, double %539)
%541 = sitofp i32 %540 to double
%542 = fneg double %534
%543 = call double @llvm.fmuladd.f64(double %542, double %541, double %528)
%544 = call double @llvm.fmuladd.f64(double %521, double %543, double %514)
%545 = load double, double* %13
%546 = load double, double* %22
%547 = load double, double* %16
%548 = fsub double %546, %547
%549 = load double, double* %20
%550 = fmul double %548, %549
%551 = call double @exp(double %550)
%552 = fmul double %545, %551
%553 = load double, double* %33
%554 = load double, double* %27
%555 = load double, double* %32
%556 = call i32 (double, double, double, ...) bitcast (i32 (...)* @rq_pricing_cumul_bivar_norm_dist to i32 (double, double, double, ...)*)(double %553, double %554, double %555)
%557 = sitofp i32 %556 to double
%558 = load double, double* %15
%559 = load double, double* %13
%560 = fdiv double %558, %559
%561 = load double, double* %31
%562 = fadd double %561, 1.000000e+00
%563 = fmul double 2.000000e+00, %562
%564 = call double @pow(double %560, double %563)
%565 = load double, double* %35
%566 = load double, double* %29
%567 = fneg double %566
%568 = load double, double* %32
%569 = fneg double %568
%570 = call i32 (double, double, double, ...) bitcast (i32 (...)* @rq_pricing_cumul_bivar_norm_dist to i32 (double, double, double, ...)*)(double %565, double %567, double %569)
%571 = sitofp i32 %570 to double
%572 = fneg double %564
%573 = call double @llvm.fmuladd.f64(double %572, double %571, double %557)
%574 = call double @llvm.fmuladd.f64(double %552, double %573, double %544)
%575 = load double, double* %14
%576 = load double, double* %16
%577 = fneg double %576
%578 = load double, double* %20
%579 = fmul double %577, %578
%580 = call double @exp(double %579)
%581 = fmul double %575, %580
%582 = load double, double* %34
%583 = load double, double* %28
%584 = load double, double* %32
%585 = call i32 (double, double, double, ...) bitcast (i32 (...)* @rq_pricing_cumul_bivar_norm_dist to i32 (double, double, double, ...)*)(double %582, double %583, double %584)
%586 = sitofp i32 %585 to double
%587 = load double, double* %15
%588 = load double, double* %13
%589 = fdiv double %587, %588
%590 = load double, double* %31
%591 = fmul double 2.000000e+00, %590
%592 = call double @pow(double %589, double %591)
%593 = load double, double* %36
%594 = load double, double* %30
%595 = fneg double %594
%596 = load double, double* %32
%597 = fneg double %596
%598 = call i32 (double, double, double, ...) bitcast (i32 (...)* @rq_pricing_cumul_bivar_norm_dist to i32 (double, double, double, ...)*)(double %593, double %595, double %597)
%599 = sitofp i32 %598 to double
%600 = fneg double %592
%601 = call double @llvm.fmuladd.f64(double %600, double %599, double %586)
%602 = fneg double %581
%603 = call double @llvm.fmuladd.f64(double %602, double %601, double %574)
store double %603, double* %21
br label %658
604: ; preds = %414, %410
%605 = load i16, i16* %12
%606 = icmp ne i16 %605, 0
br i1 %606, label %657, label %607
607: ; preds = %604
%608 = load double, double* %13
%609 = load double, double* %14
%610 = load double, double* %15
%611 = load double, double* %16
%612 = load double, double* %22
%613 = load double, double* %18
%614 = load double, double* %19
%615 = load double, double* %20
%616 = call double @rq_pricing_partial_barrier_delayed_start_up_or_down(i16 signext 0, i16 signext 1, double %608, double %609, double %610, double %611, double %612, double %613, double %614, double %615)
%617 = load double, double* %13
%618 = load double, double* %22
%619 = load double, double* %16
%620 = fsub double %618, %619
%621 = load double, double* %20
%622 = fmul double %620, %621
%623 = call double @exp(double %622)
%624 = fmul double %617, %623
%625 = load double, double* %44
%626 = fneg double %624
%627 = call double @llvm.fmuladd.f64(double %626, double %625, double %616)
%628 = load double, double* %14
%629 = load double, double* %16
%630 = fneg double %629
%631 = load double, double* %20
%632 = fmul double %630, %631
%633 = call double @exp(double %632)
%634 = fmul double %628, %633
%635 = load double, double* %40
%636 = call double @llvm.fmuladd.f64(double %634, double %635, double %627)
%637 = load double, double* %13
%638 = load double, double* %22
%639 = load double, double* %16
%640 = fsub double %638, %639
%641 = load double, double* %20
%642 = fmul double %640, %641
%643 = call double @exp(double %642)
%644 = fmul double %637, %643
%645 = load double, double* %43
%646 = fneg double %644
%647 = call double @llvm.fmuladd.f64(double %646, double %645, double %636)
%648 = load double, double* %14
%649 = load double, double* %16
%650 = fneg double %649
%651 = load double, double* %20
%652 = fmul double %650, %651
%653 = call double @exp(double %652)
%654 = fmul double %648, %653
%655 = load double, double* %39
%656 = call double @llvm.fmuladd.f64(double %654, double %655, double %647)
store double %656, double* %21
br label %657
657: ; preds = %607, %604
br label %658
658: ; preds = %657, %418
br label %659
659: ; preds = %658, %350
%660 = load double, double* %21
ret double %660
}

LLVM IR (-O2):
define double @rq_pricing_partial_barrier_delayed_start_up_or_down(i16 signext %0, i16 signext %1, double %2, double %3, double %4, double %5, double %6, double %7, double %8, double %9) {
%11 = fsub double %5, %6
%12 = fdiv double %2, %3
%13 = tail call double @log(double %12)
%14 = fmul double %7, %7
%15 = fmul double %14, 5.000000e-01
%16 = fadd double %11, %15
%17 = tail call double @llvm.fmuladd.f64(double %16, double %9, double %13)
%18 = tail call double @sqrt(double %9)
%19 = fmul double %18, %7
%20 = fdiv double %17, %19
%21 = tail call double @sqrt(double %9)
%22 = fneg double %7
%23 = tail call double @llvm.fmuladd.f64(double %22, double %21, double %20)
%24 = tail call double @log(double %12)
%25 = fdiv double %4, %2
%26 = tail call double @log(double %25)
%27 = tail call double @llvm.fmuladd.f64(double %26, double 2.000000e+00, double %24)
%28 = tail call double @llvm.fmuladd.f64(double %16, double %9, double %27)
%29 = tail call double @sqrt(double %9)
%30 = fmul double %29, %7
%31 = fdiv double %28, %30
%32 = tail call double @sqrt(double %9)
%33 = tail call double @llvm.fmuladd.f64(double %22, double %32, double %31)
%34 = fdiv double %2, %4
%35 = tail call double @log(double %34)
%36 = tail call double @llvm.fmuladd.f64(double %16, double %8, double %35)
%37 = tail call double @sqrt(double %8)
%38 = tail call double @sqrt(double %8)
%39 = tail call double @log(double %25)
%40 = fmul double %39, 2.000000e+00
%41 = tail call double @sqrt(double %8)
%42 = insertelement <2 x double> poison, double %37, i64 0
%43 = insertelement <2 x double> %42, double %41, i64 1
%44 = insertelement <2 x double> poison, double %7, i64 0
%45 = shufflevector <2 x double> %44, <2 x double> poison, <2 x i32> zeroinitializer
%46 = fmul <2 x double> %43, %45
%47 = insertelement <2 x double> poison, double %36, i64 0
%48 = insertelement <2 x double> %47, double %40, i64 1
%49 = fdiv <2 x double> %48, %46
%50 = extractelement <2 x double> %49, i64 0
%51 = tail call double @llvm.fmuladd.f64(double %22, double %38, double %50)
%52 = shufflevector <2 x double> %49, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%53 = fadd <2 x double> %49, %52
%54 = extractelement <2 x double> %53, i64 0
%55 = tail call double @sqrt(double %8)
%56 = tail call double @llvm.fmuladd.f64(double %22, double %55, double %54)
%57 = fsub double %11, %15
%58 = fdiv double %57, %14
%59 = fdiv double %8, %9
%60 = tail call double @sqrt(double %59)
%61 = tail call double @log(double %34)
%62 = tail call double @llvm.fmuladd.f64(double %16, double %9, double %61)
%63 = tail call double @sqrt(double %9)
%64 = fmul double %63, %7
%65 = fdiv double %62, %64
%66 = tail call double @sqrt(double %9)
%67 = tail call double @llvm.fmuladd.f64(double %22, double %66, double %65)
%68 = tail call double @log(double %25)
%69 = fmul double %68, 2.000000e+00
%70 = tail call double @sqrt(double %9)
%71 = fmul double %70, %7
%72 = fdiv double %69, %71
%73 = fadd double %65, %72
%74 = tail call double @sqrt(double %9)
%75 = tail call double @llvm.fmuladd.f64(double %22, double %74, double %73)
%76 = tail call i32 (double, ...) bitcast (i32 (...)* @rq_pricing_norm_dist to i32 (double, ...)*)(double %51)
%77 = fmul double %58, 2.000000e+00
%78 = tail call double @pow(double %25, double %77)
%79 = tail call i32 (double, ...) bitcast (i32 (...)* @rq_pricing_norm_dist to i32 (double, ...)*)(double %56)
%80 = fneg double %51
%81 = tail call i32 (double, ...) bitcast (i32 (...)* @rq_pricing_norm_dist to i32 (double, ...)*)(double %80)
%82 = tail call double @pow(double %25, double %77)
%83 = fneg double %56
%84 = tail call i32 (double, ...) bitcast (i32 (...)* @rq_pricing_norm_dist to i32 (double, ...)*)(double %83)
%85 = tail call i32 (double, double, double, ...) bitcast (i32 (...)* @rq_pricing_cumul_bivar_norm_dist to i32 (double, double, double, ...)*)(double %67, double %51, double %60)
%86 = sitofp i32 %85 to double
%87 = tail call double @pow(double %25, double %77)
%88 = fneg double %60
%89 = tail call i32 (double, double, double, ...) bitcast (i32 (...)* @rq_pricing_cumul_bivar_norm_dist to i32 (double, double, double, ...)*)(double %75, double %83, double %88)
%90 = sitofp i32 %89 to double
%91 = fneg double %87
%92 = tail call double @llvm.fmuladd.f64(double %91, double %90, double %86)
%93 = fneg double %67
%94 = tail call i32 (double, double, double, ...) bitcast (i32 (...)* @rq_pricing_cumul_bivar_norm_dist to i32 (double, double, double, ...)*)(double %93, double %80, double %60)
%95 = sitofp i32 %94 to double
%96 = tail call double @pow(double %25, double %77)
%97 = fneg double %75
%98 = tail call i32 (double, double, double, ...) bitcast (i32 (...)* @rq_pricing_cumul_bivar_norm_dist to i32 (double, double, double, ...)*)(double %97, double %56, double %88)
%99 = sitofp i32 %98 to double
%100 = fneg double %96
%101 = tail call double @llvm.fmuladd.f64(double %100, double %99, double %95)
%102 = tail call i32 (double, ...) bitcast (i32 (...)* @rq_pricing_norm_dist to i32 (double, ...)*)(double %50)
%103 = fadd double %58, 1.000000e+00
%104 = fmul double %103, 2.000000e+00
%105 = tail call double @pow(double %25, double %104)
%106 = tail call i32 (double, ...) bitcast (i32 (...)* @rq_pricing_norm_dist to i32 (double, ...)*)(double %54)
%107 = fneg double %50
%108 = tail call i32 (double, ...) bitcast (i32 (...)* @rq_pricing_norm_dist to i32 (double, ...)*)(double %107)
%109 = tail call double @pow(double %25, double %104)
%110 = fneg double %54
%111 = tail call i32 (double, ...) bitcast (i32 (...)* @rq_pricing_norm_dist to i32 (double, ...)*)(double %110)
%112 = tail call i32 (double, double, double, ...) bitcast (i32 (...)* @rq_pricing_cumul_bivar_norm_dist to i32 (double, double, double, ...)*)(double %65, double %50, double %60)
%113 = sitofp i32 %112 to double
%114 = tail call double @pow(double %25, double %104)
%115 = tail call i32 (double, double, double, ...) bitcast (i32 (...)* @rq_pricing_cumul_bivar_norm_dist to i32 (double, double, double, ...)*)(double %73, double %110, double %88)
%116 = sitofp i32 %115 to double
%117 = fneg double %114
%118 = tail call double @llvm.fmuladd.f64(double %117, double %116, double %113)
%119 = fneg double %65
%120 = tail call i32 (double, double, double, ...) bitcast (i32 (...)* @rq_pricing_cumul_bivar_norm_dist to i32 (double, double, double, ...)*)(double %119, double %107, double %60)
%121 = sitofp i32 %120 to double
%122 = tail call double @pow(double %25, double %104)
%123 = fneg double %73
%124 = tail call i32 (double, double, double, ...) bitcast (i32 (...)* @rq_pricing_cumul_bivar_norm_dist to i32 (double, double, double, ...)*)(double %123, double %54, double %88)
%125 = sitofp i32 %124 to double
%126 = fneg double %122
%127 = tail call double @llvm.fmuladd.f64(double %126, double %125, double %121)
%128 = icmp eq i16 %1, 0
%129 = fcmp ule double %3, %4
%130 = or i1 %128, %129
br i1 %130, label %157, label %131
131: ; preds = %10
%132 = fsub double %11, %5
%133 = fmul double %132, %9
%134 = tail call double @exp(double %133)
%135 = fmul double %134, %2
%136 = tail call i32 (double, double, double, ...) bitcast (i32 (...)* @rq_pricing_cumul_bivar_norm_dist to i32 (double, double, double, ...)*)(double %20, double %50, double %60)
%137 = sitofp i32 %136 to double
%138 = tail call double @pow(double %25, double %104)
%139 = tail call i32 (double, double, double, ...) bitcast (i32 (...)* @rq_pricing_cumul_bivar_norm_dist to i32 (double, double, double, ...)*)(double %31, double %110, double %88)
%140 = sitofp i32 %139 to double
%141 = fneg double %138
%142 = tail call double @llvm.fmuladd.f64(double %141, double %140, double %137)
%143 = fneg double %5
%144 = fmul double %143, %9
%145 = tail call double @exp(double %144)
%146 = tail call i32 (double, double, double, ...) bitcast (i32 (...)* @rq_pricing_cumul_bivar_norm_dist to i32 (double, double, double, ...)*)(double %23, double %51, double %60)
%147 = sitofp i32 %146 to double
%148 = tail call double @pow(double %25, double %77)
%149 = tail call i32 (double, double, double, ...) bitcast (i32 (...)* @rq_pricing_cumul_bivar_norm_dist to i32 (double, double, double, ...)*)(double %33, double %83, double %88)
%150 = sitofp i32 %149 to double
%151 = fneg double %148
%152 = tail call double @llvm.fmuladd.f64(double %151, double %150, double %147)
%153 = fneg double %145
%154 = fmul double %153, %3
%155 = fmul double %154, %152
%156 = tail call double @llvm.fmuladd.f64(double %135, double %142, double %155)
br label %233
157: ; preds = %10
%158 = fcmp uge double %3, %4
%159 = or i1 %128, %158
br i1 %159, label %232, label %160
160: ; preds = %157
%161 = fsub double %11, %5
%162 = fmul double %161, %9
%163 = tail call double @exp(double %162)
%164 = fmul double %163, %2
%165 = tail call i32 (double, double, double, ...) bitcast (i32 (...)* @rq_pricing_cumul_bivar_norm_dist to i32 (double, double, double, ...)*)(double %119, double %107, double %60)
%166 = sitofp i32 %165 to double
%167 = tail call double @pow(double %25, double %104)
%168 = tail call i32 (double, double, double, ...) bitcast (i32 (...)* @rq_pricing_cumul_bivar_norm_dist to i32 (double, double, double, ...)*)(double %123, double %54, double %88)
%169 = sitofp i32 %168 to double
%170 = fneg double %167
%171 = tail call double @llvm.fmuladd.f64(double %170, double %169, double %166)
%172 = fneg double %5
%173 = fmul double %172, %9
%174 = tail call double @exp(double %173)
%175 = tail call i32 (double, double, double, ...) bitcast (i32 (...)* @rq_pricing_cumul_bivar_norm_dist to i32 (double, double, double, ...)*)(double %93, double %80, double %60)
%176 = sitofp i32 %175 to double
%177 = tail call double @pow(double %25, double %77)
%178 = tail call i32 (double, double, double, ...) bitcast (i32 (...)* @rq_pricing_cumul_bivar_norm_dist to i32 (double, double, double, ...)*)(double %97, double %56, double %88)
%179 = sitofp i32 %178 to double
%180 = fneg double %177
%181 = tail call double @llvm.fmuladd.f64(double %180, double %179, double %176)
%182 = fneg double %174
%183 = fmul double %182, %3
%184 = fmul double %183, %181
%185 = tail call double @llvm.fmuladd.f64(double %164, double %171, double %184)
%186 = tail call double @exp(double %162)
%187 = fneg double %20
%188 = tail call i32 (double, double, double, ...) bitcast (i32 (...)* @rq_pricing_cumul_bivar_norm_dist to i32 (double, double, double, ...)*)(double %187, double %107, double %60)
%189 = sitofp i32 %188 to double
%190 = tail call double @pow(double %25, double %104)
%191 = fneg double %31
%192 = tail call i32 (double, double, double, ...) bitcast (i32 (...)* @rq_pricing_cumul_bivar_norm_dist to i32 (double, double, double, ...)*)(double %191, double %54, double %88)
%193 = sitofp i32 %192 to double
%194 = fneg double %190
%195 = tail call double @llvm.fmuladd.f64(double %194, double %193, double %189)
%196 = fneg double %186
%197 = fmul double %196, %2
%198 = tail call double @llvm.fmuladd.f64(double %197, double %195, double %185)
%199 = tail call double @exp(double %173)
%200 = fmul double %199, %3
%201 = fneg double %23
%202 = tail call i32 (double, double, double, ...) bitcast (i32 (...)* @rq_pricing_cumul_bivar_norm_dist to i32 (double, double, double, ...)*)(double %201, double %80, double %60)
%203 = sitofp i32 %202 to double
%204 = tail call double @pow(double %25, double %77)
%205 = fneg double %33
%206 = tail call i32 (double, double, double, ...) bitcast (i32 (...)* @rq_pricing_cumul_bivar_norm_dist to i32 (double, double, double, ...)*)(double %205, double %56, double %88)
%207 = sitofp i32 %206 to double
%208 = fneg double %204
%209 = tail call double @llvm.fmuladd.f64(double %208, double %207, double %203)
%210 = tail call double @llvm.fmuladd.f64(double %200, double %209, double %198)
%211 = tail call double @exp(double %162)
%212 = fmul double %211, %2
%213 = tail call i32 (double, double, double, ...) bitcast (i32 (...)* @rq_pricing_cumul_bivar_norm_dist to i32 (double, double, double, ...)*)(double %65, double %50, double %60)
%214 = sitofp i32 %213 to double
%215 = tail call double @pow(double %25, double %104)
%216 = tail call i32 (double, double, double, ...) bitcast (i32 (...)* @rq_pricing_cumul_bivar_norm_dist to i32 (double, double, double, ...)*)(double %73, double %110, double %88)
%217 = sitofp i32 %216 to double
%218 = fneg double %215
%219 = tail call double @llvm.fmuladd.f64(double %218, double %217, double %214)
%220 = tail call double @llvm.fmuladd.f64(double %212, double %219, double %210)
%221 = tail call double @exp(double %173)
%222 = tail call i32 (double, double, double, ...) bitcast (i32 (...)* @rq_pricing_cumul_bivar_norm_dist to i32 (double, double, double, ...)*)(double %67, double %51, double %60)
%223 = sitofp i32 %222 to double
%224 = tail call double @pow(double %25, double %77)
%225 = tail call i32 (double, double, double, ...) bitcast (i32 (...)* @rq_pricing_cumul_bivar_norm_dist to i32 (double, double, double, ...)*)(double %75, double %83, double %88)
%226 = sitofp i32 %225 to double
%227 = fneg double %224
%228 = tail call double @llvm.fmuladd.f64(double %227, double %226, double %223)
%229 = fneg double %221
%230 = fmul double %229, %3
%231 = tail call double @llvm.fmuladd.f64(double %230, double %228, double %220)
br label %233
232: ; preds = %157
br i1 %128, label %235, label %233
233: ; preds = %131, %232, %160, %235
%234 = phi double [ %254, %235 ], [ %156, %131 ], [ %231, %160 ], [ 0.000000e+00, %232 ]
ret double %234
235: ; preds = %232
%236 = tail call double @rq_pricing_partial_barrier_delayed_start_up_or_down(i16 signext undef, i16 signext 1, double %2, double %3, double %4, double %5, double %11, double %7, double %8, double %9)
%237 = fsub double %11, %5
%238 = fmul double %237, %9
%239 = tail call double @exp(double %238)
%240 = fneg double %239
%241 = fmul double %240, %2
%242 = tail call double @llvm.fmuladd.f64(double %241, double %127, double %236)
%243 = fneg double %5
%244 = fmul double %243, %9
%245 = tail call double @exp(double %244)
%246 = fmul double %245, %3
%247 = tail call double @llvm.fmuladd.f64(double %246, double %101, double %242)
%248 = tail call double @exp(double %238)
%249 = fneg double %248
%250 = fmul double %249, %2
%251 = tail call double @llvm.fmuladd.f64(double %250, double %118, double %247)
%252 = tail call double @exp(double %244)
%253 = fmul double %252, %3
%254 = tail call double @llvm.fmuladd.f64(double %253, double %92, double %251)
br label %233
}