#define NULL ((void *)0)
typedef unsigned long size_t; // Customize by platform.
typedef long intptr_t;
typedef unsigned long uintptr_t;
typedef long scalar_t__; // Either arithmetic or pointer type.
/* By default, we understand bool (as a convenience). */
typedef int bool;
#define false 0
#define true 1

/* Forward declarations */

/* Type definitions */

/* Variables and functions */
double exp(double);
int log(double);
double pow(double, int);
double rq_pricing_cumul_bivar_norm_dist(double, double, double);
double rq_pricing_norm_dist(double);
double rq_pricing_partial_barrier_delayed_start_up_or_down(int /*<<< orphan*/,
                                                           int, double, double,
                                                           double, double,
                                                           double, double,
                                                           double, double);
double sqrt(double);
double rq_pricing_partial_barrier_delayed_start(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;
  short up = H > S;
  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 (!in && !up && 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));
  } else if (call && !up && !in && X > H) {
    ret = rq_pricing_partial_barrier_delayed_start_up_or_down(0, 1, S, X, H, r,
                                                              b, v, t1, t2);
  } else if (call && up && !in && 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(e3, -f1, -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(e4, -f2, -rho));
  } else if (!call && !up && !in) {
    ret = rq_pricing_partial_barrier_delayed_start(0, 1, S, X, H, r, b, v, t1,
                                                   t2) -
          S * exp((b - r) * t2) * z7 + X * exp(-r * t2) * z3;
  } else if (!call && up && !in) {
    ret = rq_pricing_partial_barrier_delayed_start(0, 1, S, X, H, r, b, v, t1,
                                                   t2) -
          S * exp((b - r) * t2) * z8 + X * exp(-r * t2) * z4;
  }
  return ret;
}


x86 assembly (clang, -O0):
<rq_pricing_partial_barrier_delayed_start>:
push   %rbp
mov    %rsp,%rbp
sub    $0x390,%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  -0x20(%rbp),%xmm0
ucomisd -0x10(%rbp),%xmm0
seta   %al
and    $0x1,%al
movzbl %al,%eax
mov    %ax,-0x5a(%rbp)
movsd  -0x10(%rbp),%xmm0
divsd  -0x18(%rbp),%xmm0
call   1080 <log@plt>
cvtsi2sd %eax,%xmm1
movsd  -0x58(%rbp),%xmm0
movsd  -0x38(%rbp),%xmm2
mulsd  -0x38(%rbp),%xmm2
movsd  0x1de8(%rip),%xmm3
divsd  %xmm3,%xmm2
addsd  %xmm2,%xmm0
movsd  -0x48(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x260(%rbp)
ff
movsd  -0x38(%rbp),%xmm0
movsd  %xmm0,-0x268(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
call   10a0 <sqrt@plt>
movsd  -0x268(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x260(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  -0x68(%rbp),%xmm0
movsd  %xmm0,-0x258(%rbp)
ff
movsd  -0x38(%rbp),%xmm0
movsd  %xmm0,-0x250(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
call   10a0 <sqrt@plt>
movsd  -0x258(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x250(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x10(%rbp),%xmm0
divsd  -0x18(%rbp),%xmm0
call   1080 <log@plt>
mov    %eax,-0x244(%rbp)
movsd  -0x20(%rbp),%xmm0
divsd  -0x10(%rbp),%xmm0
call   1080 <log@plt>
mov    %eax,%ecx
mov    -0x244(%rbp),%eax
shl    $0x1,%ecx
add    %ecx,%eax
cvtsi2sd %eax,%xmm1
movsd  -0x58(%rbp),%xmm0
movsd  -0x38(%rbp),%xmm2
mulsd  -0x38(%rbp),%xmm2
movsd  0x1ced(%rip),%xmm3
divsd  %xmm3,%xmm2
addsd  %xmm2,%xmm0
movsd  -0x48(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x238(%rbp)
ff
movsd  -0x38(%rbp),%xmm0
movsd  %xmm0,-0x240(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
call   10a0 <sqrt@plt>
movsd  -0x240(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x238(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x78(%rbp)
movsd  -0x78(%rbp),%xmm0
movsd  %xmm0,-0x230(%rbp)
ff
movsd  -0x38(%rbp),%xmm0
movsd  %xmm0,-0x228(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
call   10a0 <sqrt@plt>
movsd  -0x230(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x228(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x80(%rbp)
movsd  -0x10(%rbp),%xmm0
divsd  -0x20(%rbp),%xmm0
call   1080 <log@plt>
cvtsi2sd %eax,%xmm1
movsd  -0x58(%rbp),%xmm0
movsd  -0x38(%rbp),%xmm2
mulsd  -0x38(%rbp),%xmm2
movsd  0x1c14(%rip),%xmm3
divsd  %xmm3,%xmm2
addsd  %xmm2,%xmm0
movsd  -0x40(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x218(%rbp)
ff
movsd  -0x38(%rbp),%xmm0
movsd  %xmm0,-0x220(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
call   10a0 <sqrt@plt>
movsd  -0x220(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x218(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
movsd  -0x88(%rbp),%xmm0
ff
movsd  %xmm0,-0x210(%rbp)
ff
movsd  -0x38(%rbp),%xmm0
movsd  %xmm0,-0x208(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
call   10a0 <sqrt@plt>
movsd  -0x210(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x208(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x88(%rbp),%xmm0
ff
movsd  %xmm0,-0x1f0(%rbp)
ff
movsd  -0x20(%rbp),%xmm0
divsd  -0x10(%rbp),%xmm0
call   1080 <log@plt>
shl    $0x1,%eax
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x1f8(%rbp)
ff
movsd  -0x38(%rbp),%xmm0
movsd  %xmm0,-0x200(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
call   10a0 <sqrt@plt>
movsd  -0x200(%rbp),%xmm2
ff
movsd  -0x1f8(%rbp),%xmm1
ff
movaps %xmm0,%xmm3
movsd  -0x1f0(%rbp),%xmm0
ff
mulsd  %xmm3,%xmm2
divsd  %xmm2,%xmm1
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
movsd  -0x98(%rbp),%xmm0
ff
movsd  %xmm0,-0x1e8(%rbp)
ff
movsd  -0x38(%rbp),%xmm0
movsd  %xmm0,-0x1e0(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
call   10a0 <sqrt@plt>
movsd  -0x1e8(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x1e0(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
movsd  -0x38(%rbp),%xmm1
mulsd  -0x38(%rbp),%xmm1
movsd  0x1a70(%rip),%xmm2
divsd  %xmm2,%xmm1
subsd  %xmm1,%xmm0
movsd  -0x38(%rbp),%xmm1
mulsd  -0x38(%rbp),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
divsd  -0x48(%rbp),%xmm0
call   10a0 <sqrt@plt>
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0x10(%rbp),%xmm0
divsd  -0x20(%rbp),%xmm0
call   1080 <log@plt>
cvtsi2sd %eax,%xmm1
movsd  -0x58(%rbp),%xmm0
movsd  -0x38(%rbp),%xmm2
mulsd  -0x38(%rbp),%xmm2
movsd  0x1a11(%rip),%xmm3
divsd  %xmm3,%xmm2
addsd  %xmm2,%xmm0
movsd  -0x48(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x1d0(%rbp)
ff
movsd  -0x38(%rbp),%xmm0
movsd  %xmm0,-0x1d8(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
call   10a0 <sqrt@plt>
movsd  -0x1d8(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x1d0(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0xb8(%rbp),%xmm0
ff
movsd  %xmm0,-0x1c8(%rbp)
ff
movsd  -0x38(%rbp),%xmm0
movsd  %xmm0,-0x1c0(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
call   10a0 <sqrt@plt>
movsd  -0x1c8(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x1c0(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0xb8(%rbp),%xmm0
ff
movsd  %xmm0,-0x1a8(%rbp)
ff
movsd  -0x20(%rbp),%xmm0
divsd  -0x10(%rbp),%xmm0
call   1080 <log@plt>
shl    $0x1,%eax
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x1b0(%rbp)
ff
movsd  -0x38(%rbp),%xmm0
movsd  %xmm0,-0x1b8(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
call   10a0 <sqrt@plt>
movsd  -0x1b8(%rbp),%xmm2
ff
movsd  -0x1b0(%rbp),%xmm1
ff
movaps %xmm0,%xmm3
movsd  -0x1a8(%rbp),%xmm0
ff
mulsd  %xmm3,%xmm2
divsd  %xmm2,%xmm1
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  -0xc8(%rbp),%xmm0
ff
movsd  %xmm0,-0x1a0(%rbp)
ff
movsd  -0x38(%rbp),%xmm0
movsd  %xmm0,-0x198(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
call   10a0 <sqrt@plt>
movsd  -0x1a0(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x198(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  -0x90(%rbp),%xmm0
ff
call   1030 <rq_pricing_norm_dist@plt>
movsd  %xmm0,-0x190(%rbp)
ff
movsd  -0x20(%rbp),%xmm0
divsd  -0x10(%rbp),%xmm0
movsd  0x185d(%rip),%xmm1
mulsd  -0xa8(%rbp),%xmm1
ff
cvttsd2si %xmm1,%edi
call   1090 <pow@plt>
movsd  %xmm0,-0x188(%rbp)
ff
movsd  -0xa0(%rbp),%xmm0
ff
call   1030 <rq_pricing_norm_dist@plt>
movsd  -0x190(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x188(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
movsd  -0x90(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
call   1030 <rq_pricing_norm_dist@plt>
movsd  %xmm0,-0x180(%rbp)
ff
movsd  -0x20(%rbp),%xmm0
divsd  -0x10(%rbp),%xmm0
movsd  0x17bf(%rip),%xmm1
mulsd  -0xa8(%rbp),%xmm1
ff
cvttsd2si %xmm1,%edi
call   1090 <pow@plt>
movsd  %xmm0,-0x178(%rbp)
ff
movsd  -0xa0(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
call   1030 <rq_pricing_norm_dist@plt>
movsd  -0x180(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x178(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  -0xc0(%rbp),%xmm0
ff
movsd  -0x90(%rbp),%xmm1
ff
movsd  -0xb0(%rbp),%xmm2
ff
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
movsd  %xmm0,-0x170(%rbp)
ff
movsd  -0x20(%rbp),%xmm0
divsd  -0x10(%rbp),%xmm0
movsd  0x1711(%rip),%xmm1
mulsd  -0xa8(%rbp),%xmm1
ff
cvttsd2si %xmm1,%edi
call   1090 <pow@plt>
movsd  %xmm0,-0x168(%rbp)
ff
movsd  -0xd0(%rbp),%xmm0
ff
movsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
movsd  -0xb0(%rbp),%xmm2
ff
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
movsd  -0x170(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x168(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
movsd  -0xc0(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
movsd  -0xb0(%rbp),%xmm2
ff
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
movsd  %xmm0,-0x160(%rbp)
ff
movsd  -0x20(%rbp),%xmm0
divsd  -0x10(%rbp),%xmm0
movsd  0x160e(%rip),%xmm1
mulsd  -0xa8(%rbp),%xmm1
ff
cvttsd2si %xmm1,%edi
call   1090 <pow@plt>
movsd  %xmm0,-0x158(%rbp)
ff
movsd  -0xd0(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  -0xa0(%rbp),%xmm1
ff
movsd  -0xb0(%rbp),%xmm2
ff
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
movsd  -0x160(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x158(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xf0(%rbp)
ff
movsd  -0x88(%rbp),%xmm0
ff
call   1030 <rq_pricing_norm_dist@plt>
movsd  %xmm0,-0x150(%rbp)
ff
movsd  -0x20(%rbp),%xmm0
divsd  -0x10(%rbp),%xmm0
movsd  0x1551(%rip),%xmm2
addsd  -0xa8(%rbp),%xmm2
ff
movsd  0x1539(%rip),%xmm1
mulsd  %xmm2,%xmm1
cvttsd2si %xmm1,%edi
call   1090 <pow@plt>
movsd  %xmm0,-0x148(%rbp)
ff
movsd  -0x98(%rbp),%xmm0
ff
call   1030 <rq_pricing_norm_dist@plt>
movsd  -0x150(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x148(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xf8(%rbp)
ff
movsd  -0x88(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
call   1030 <rq_pricing_norm_dist@plt>
movsd  %xmm0,-0x140(%rbp)
ff
movsd  -0x20(%rbp),%xmm0
divsd  -0x10(%rbp),%xmm0
movsd  0x14a7(%rip),%xmm2
addsd  -0xa8(%rbp),%xmm2
ff
movsd  0x148f(%rip),%xmm1
mulsd  %xmm2,%xmm1
cvttsd2si %xmm1,%edi
call   1090 <pow@plt>
movsd  %xmm0,-0x138(%rbp)
ff
movsd  -0x98(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
call   1030 <rq_pricing_norm_dist@plt>
movsd  -0x140(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x138(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x100(%rbp)
ff
movsd  -0xb8(%rbp),%xmm0
ff
movsd  -0x88(%rbp),%xmm1
ff
movsd  -0xb0(%rbp),%xmm2
ff
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
movsd  %xmm0,-0x130(%rbp)
ff
movsd  -0x20(%rbp),%xmm0
divsd  -0x10(%rbp),%xmm0
movsd  0x13ed(%rip),%xmm2
addsd  -0xa8(%rbp),%xmm2
ff
movsd  0x13d5(%rip),%xmm1
mulsd  %xmm2,%xmm1
cvttsd2si %xmm1,%edi
call   1090 <pow@plt>
movsd  %xmm0,-0x128(%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  -0xb0(%rbp),%xmm2
ff
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
movsd  -0x130(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x128(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x108(%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  -0xb0(%rbp),%xmm2
ff
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
movsd  %xmm0,-0x120(%rbp)
ff
movsd  -0x20(%rbp),%xmm0
divsd  -0x10(%rbp),%xmm0
movsd  0x12de(%rip),%xmm2
addsd  -0xa8(%rbp),%xmm2
ff
movsd  0x12c6(%rip),%xmm1
mulsd  %xmm2,%xmm1
cvttsd2si %xmm1,%edi
call   1090 <pow@plt>
movsd  %xmm0,-0x118(%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  -0xb0(%rbp),%xmm2
ff
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
movsd  -0x120(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x118(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x110(%rbp)
ff
cmpw   $0x0,-0x2(%rbp)
jne    2080 <rq_pricing_partial_barrier_delayed_start+0xf00>
cmpw   $0x0,-0x5a(%rbp)
jne    2080 <rq_pricing_partial_barrier_delayed_start+0xf00>
movswl -0x4(%rbp),%eax
cmp    $0x0,%eax
je     2080 <rq_pricing_partial_barrier_delayed_start+0xf00>
movsd  -0x18(%rbp),%xmm1
movsd  -0x20(%rbp),%xmm0
ucomisd %xmm1,%xmm0
jbe    2080 <rq_pricing_partial_barrier_delayed_start+0xf00>
movsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0x2b0(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
subsd  -0x28(%rbp),%xmm0
mulsd  -0x48(%rbp),%xmm0
call   1070 <exp@plt>
movaps %xmm0,%xmm1
movsd  -0x2b0(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x270(%rbp)
ff
movsd  -0xb8(%rbp),%xmm0
ff
movsd  -0x88(%rbp),%xmm1
ff
movsd  -0xb0(%rbp),%xmm2
ff
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
movsd  %xmm0,-0x2a8(%rbp)
ff
movsd  -0x20(%rbp),%xmm0
divsd  -0x10(%rbp),%xmm0
movsd  0x118e(%rip),%xmm2
addsd  -0xa8(%rbp),%xmm2
ff
movsd  0x1176(%rip),%xmm1
mulsd  %xmm2,%xmm1
cvttsd2si %xmm1,%edi
call   1090 <pow@plt>
movsd  %xmm0,-0x2a0(%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  -0xb0(%rbp),%xmm2
ff
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
movsd  -0x2a8(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x2a0(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x278(%rbp)
ff
movsd  -0x18(%rbp),%xmm0
movsd  %xmm0,-0x298(%rbp)
ff
movsd  -0x28(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  -0x48(%rbp),%xmm0
call   1070 <exp@plt>
movaps %xmm0,%xmm1
movsd  -0x298(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x280(%rbp)
ff
movsd  -0xc0(%rbp),%xmm0
ff
movsd  -0x90(%rbp),%xmm1
ff
movsd  -0xb0(%rbp),%xmm2
ff
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
movsd  %xmm0,-0x288(%rbp)
ff
movsd  -0x20(%rbp),%xmm0
divsd  -0x10(%rbp),%xmm0
movsd  0x105b(%rip),%xmm1
mulsd  -0xa8(%rbp),%xmm1
ff
cvttsd2si %xmm1,%edi
call   1090 <pow@plt>
movsd  %xmm0,-0x290(%rbp)
ff
movsd  -0xd0(%rbp),%xmm0
ff
movsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
movsd  -0xb0(%rbp),%xmm2
ff
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
movsd  -0x290(%rbp),%xmm3
ff
movsd  -0x288(%rbp),%xmm4
ff
movsd  -0x280(%rbp),%xmm1
ff
movsd  -0x278(%rbp),%xmm2
ff
movaps %xmm0,%xmm5
movsd  -0x270(%rbp),%xmm0
ff
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    292b <rq_pricing_partial_barrier_delayed_start+0x17ab>
movswl -0x4(%rbp),%eax
cmp    $0x0,%eax
je     20f1 <rq_pricing_partial_barrier_delayed_start+0xf71>
cmpw   $0x0,-0x5a(%rbp)
jne    20f1 <rq_pricing_partial_barrier_delayed_start+0xf71>
cmpw   $0x0,-0x2(%rbp)
jne    20f1 <rq_pricing_partial_barrier_delayed_start+0xf71>
movsd  -0x18(%rbp),%xmm0
ucomisd -0x20(%rbp),%xmm0
jbe    20f1 <rq_pricing_partial_barrier_delayed_start+0xf71>
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,-0x50(%rbp)
jmp    2926 <rq_pricing_partial_barrier_delayed_start+0x17a6>
movswl -0x4(%rbp),%eax
cmp    $0x0,%eax
je     26ca <rq_pricing_partial_barrier_delayed_start+0x154a>
movswl -0x5a(%rbp),%eax
cmp    $0x0,%eax
je     26ca <rq_pricing_partial_barrier_delayed_start+0x154a>
cmpw   $0x0,-0x2(%rbp)
jne    26ca <rq_pricing_partial_barrier_delayed_start+0x154a>
movsd  -0x18(%rbp),%xmm1
movsd  -0x20(%rbp),%xmm0
ucomisd %xmm1,%xmm0
jbe    26ca <rq_pricing_partial_barrier_delayed_start+0x154a>
movsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0x348(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
subsd  -0x28(%rbp),%xmm0
mulsd  -0x48(%rbp),%xmm0
call   1070 <exp@plt>
movaps %xmm0,%xmm1
movsd  -0x348(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x308(%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  -0xb0(%rbp),%xmm2
ff
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
movsd  %xmm0,-0x340(%rbp)
ff
movsd  -0x20(%rbp),%xmm0
divsd  -0x10(%rbp),%xmm0
movsd  0xe41(%rip),%xmm2
addsd  -0xa8(%rbp),%xmm2
ff
movsd  0xe29(%rip),%xmm1
mulsd  %xmm2,%xmm1
cvttsd2si %xmm1,%edi
call   1090 <pow@plt>
movsd  %xmm0,-0x338(%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  -0xb0(%rbp),%xmm2
ff
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
movsd  -0x340(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x338(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x310(%rbp)
ff
movsd  -0x18(%rbp),%xmm0
movsd  %xmm0,-0x330(%rbp)
ff
movsd  -0x28(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  -0x48(%rbp),%xmm0
call   1070 <exp@plt>
movaps %xmm0,%xmm1
movsd  -0x330(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x318(%rbp)
ff
movsd  -0xc0(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
movsd  -0xb0(%rbp),%xmm2
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
movsd  %xmm0,-0x320(%rbp)
ff
movsd  -0x20(%rbp),%xmm0
divsd  -0x10(%rbp),%xmm0
movsd  0xce0(%rip),%xmm1
mulsd  -0xa8(%rbp),%xmm1
ff
cvttsd2si %xmm1,%edi
call   1090 <pow@plt>
movsd  %xmm0,-0x328(%rbp)
ff
movsd  -0xd0(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  -0xa0(%rbp),%xmm1
ff
movsd  -0xb0(%rbp),%xmm2
ff
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
movsd  -0x328(%rbp),%xmm3
ff
movsd  -0x320(%rbp),%xmm4
ff
movsd  -0x318(%rbp),%xmm1
ff
movsd  -0x310(%rbp),%xmm2
ff
movaps %xmm0,%xmm5
movsd  -0x308(%rbp),%xmm0
ff
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,-0x2e8(%rbp)
ff
movsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0x300(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
subsd  -0x28(%rbp),%xmm0
mulsd  -0x48(%rbp),%xmm0
call   1070 <exp@plt>
movaps %xmm0,%xmm1
movsd  -0x300(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x2e0(%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  -0xb0(%rbp),%xmm2
ff
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
movsd  %xmm0,-0x2f0(%rbp)
ff
movsd  -0x20(%rbp),%xmm0
divsd  -0x10(%rbp),%xmm0
movsd  0xb75(%rip),%xmm2
addsd  -0xa8(%rbp),%xmm2
ff
movsd  0xb5d(%rip),%xmm1
mulsd  %xmm2,%xmm1
cvttsd2si %xmm1,%edi
call   1090 <pow@plt>
movsd  %xmm0,-0x2f8(%rbp)
ff
movsd  -0x98(%rbp),%xmm0
ff
movsd  -0x78(%rbp),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
movsd  -0xb0(%rbp),%xmm2
ff
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
movsd  -0x2f8(%rbp),%xmm2
ff
movsd  -0x2f0(%rbp),%xmm3
ff
movsd  -0x2e8(%rbp),%xmm1
ff
movaps %xmm0,%xmm4
movsd  -0x2e0(%rbp),%xmm0
ff
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,-0x2c0(%rbp)
ff
movsd  -0x18(%rbp),%xmm0
movsd  %xmm0,-0x2d8(%rbp)
ff
movsd  -0x28(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  -0x48(%rbp),%xmm0
call   1070 <exp@plt>
movaps %xmm0,%xmm1
movsd  -0x2d8(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x2b8(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
movsd  -0xb0(%rbp),%xmm2
ff
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
movsd  %xmm0,-0x2c8(%rbp)
ff
movsd  -0x20(%rbp),%xmm0
divsd  -0x10(%rbp),%xmm0
movsd  0x9eb(%rip),%xmm1
mulsd  -0xa8(%rbp),%xmm1
ff
cvttsd2si %xmm1,%edi
call   1090 <pow@plt>
movsd  %xmm0,-0x2d0(%rbp)
ff
movsd  -0xa0(%rbp),%xmm0
ff
movsd  -0x80(%rbp),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
movsd  -0xb0(%rbp),%xmm2
ff
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
movsd  -0x2d0(%rbp),%xmm2
ff
movsd  -0x2c8(%rbp),%xmm3
ff
movsd  -0x2c0(%rbp),%xmm1
ff
movaps %xmm0,%xmm4
movsd  -0x2b8(%rbp),%xmm0
ff
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,-0x50(%rbp)
jmp    2921 <rq_pricing_partial_barrier_delayed_start+0x17a1>
cmpw   $0x0,-0x4(%rbp)
jne    27f2 <rq_pricing_partial_barrier_delayed_start+0x1672>
cmpw   $0x0,-0x5a(%rbp)
jne    27f2 <rq_pricing_partial_barrier_delayed_start+0x1672>
cmpw   $0x0,-0x2(%rbp)
jne    27f2 <rq_pricing_partial_barrier_delayed_start+0x1672>
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   1060 <rq_pricing_partial_barrier_delayed_start@plt>
movsd  %xmm0,-0x368(%rbp)
ff
movsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0x360(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
subsd  -0x28(%rbp),%xmm0
mulsd  -0x48(%rbp),%xmm0
call   1070 <exp@plt>
movsd  -0x368(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x360(%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,-0x358(%rbp)
ff
movsd  -0x18(%rbp),%xmm0
movsd  %xmm0,-0x350(%rbp)
ff
movsd  -0x28(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  -0x48(%rbp),%xmm0
call   1070 <exp@plt>
movsd  -0x358(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x350(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm0
movsd  -0xe8(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x50(%rbp)
jmp    291c <rq_pricing_partial_barrier_delayed_start+0x179c>
cmpw   $0x0,-0x4(%rbp)
jne    2917 <rq_pricing_partial_barrier_delayed_start+0x1797>
movswl -0x5a(%rbp),%eax
cmp    $0x0,%eax
je     2917 <rq_pricing_partial_barrier_delayed_start+0x1797>
cmpw   $0x0,-0x2(%rbp)
jne    2917 <rq_pricing_partial_barrier_delayed_start+0x1797>
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   1060 <rq_pricing_partial_barrier_delayed_start@plt>
movsd  %xmm0,-0x388(%rbp)
ff
movsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0x380(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
subsd  -0x28(%rbp),%xmm0
mulsd  -0x48(%rbp),%xmm0
call   1070 <exp@plt>
movsd  -0x388(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x380(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm0
movsd  -0x110(%rbp),%xmm2
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x378(%rbp)
ff
movsd  -0x18(%rbp),%xmm0
movsd  %xmm0,-0x370(%rbp)
ff
movsd  -0x28(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  -0x48(%rbp),%xmm0
call   1070 <exp@plt>
movsd  -0x378(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x370(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm0
movsd  -0xf0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x50(%rbp)
jmp    291c <rq_pricing_partial_barrier_delayed_start+0x179c>
jmp    2921 <rq_pricing_partial_barrier_delayed_start+0x17a1>
jmp    2926 <rq_pricing_partial_barrier_delayed_start+0x17a6>
jmp    292b <rq_pricing_partial_barrier_delayed_start+0x17ab>
movsd  -0x50(%rbp),%xmm0
add    $0x390,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<rq_pricing_partial_barrier_delayed_start>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x238,%rsp
movsd  %xmm7,(%rsp)
movsd  %xmm6,0x28(%rsp)
movapd %xmm5,0x90(%rsp)
movsd  %xmm4,0x10(%rsp)
movapd %xmm3,0x70(%rsp)
movsd  %xmm2,0x140(%rsp)
mov    %esi,%ebx
mov    %edi,%r13d
movsd  %xmm0,0x20(%rsp)
movsd  %xmm1,0xb8(%rsp)
divsd  %xmm1,%xmm0
movsd  %xmm0,0x8(%rsp)
call   1080 <log@plt>
movsd  (%rsp),%xmm1
mov    %eax,0x14c(%rsp)
xorps  %xmm0,%xmm0
sqrtsd %xmm1,%xmm0
xorpd  %xmm2,%xmm2
ucomisd %xmm2,%xmm1
movsd  %xmm0,0xf8(%rsp)
jae    1215 <rq_pricing_partial_barrier_delayed_start+0x95>
movapd %xmm1,%xmm0
call   10a0 <sqrt@plt>
xorpd  %xmm2,%xmm2
movsd  (%rsp),%xmm1
movsd  %xmm0,0x1d8(%rsp)
ucomisd %xmm2,%xmm1
movsd  0xf8(%rsp),%xmm0
jae    1237 <rq_pricing_partial_barrier_delayed_start+0xb7>
movsd  (%rsp),%xmm0
call   10a0 <sqrt@plt>
movsd  %xmm0,0x1d0(%rsp)
movsd  0x8(%rsp),%xmm0
call   1080 <log@plt>
mov    %eax,%r15d
movsd  0x140(%rsp),%xmm0
divsd  0x20(%rsp),%xmm0
movsd  %xmm0,0x8(%rsp)
call   1080 <log@plt>
mov    %eax,%r12d
xorpd  %xmm2,%xmm2
movsd  (%rsp),%xmm1
ucomisd %xmm2,%xmm1
movsd  0xf8(%rsp),%xmm0
jae    1295 <rq_pricing_partial_barrier_delayed_start+0x115>
movapd %xmm1,%xmm0
call   10a0 <sqrt@plt>
xorpd  %xmm2,%xmm2
movsd  (%rsp),%xmm1
movsd  %xmm0,0x1c8(%rsp)
movapd 0x90(%rsp),%xmm0
mulsd  %xmm0,%xmm0
movapd %xmm0,0xc0(%rsp)
ucomisd %xmm2,%xmm1
jae    12cd <rq_pricing_partial_barrier_delayed_start+0x14d>
movsd  (%rsp),%xmm0
call   10a0 <sqrt@plt>
movsd  %xmm0,0xf8(%rsp)
movapd 0x70(%rsp),%xmm0
subsd  0x10(%rsp),%xmm0
movapd %xmm0,0xd0(%rsp)
movsd  0x1d16(%rip),%xmm0
mulsd  0xc0(%rsp),%xmm0
movsd  %xmm0,0x60(%rsp)
movsd  0x20(%rsp),%xmm0
divsd  0x140(%rsp),%xmm0
movsd  %xmm0,0x80(%rsp)
call   1080 <log@plt>
mov    %eax,%ebp
movsd  0x28(%rsp),%xmm1
xorps  %xmm0,%xmm0
sqrtsd %xmm1,%xmm0
xorpd  %xmm2,%xmm2
ucomisd %xmm2,%xmm1
movapd %xmm0,0x50(%rsp)
jae    1348 <rq_pricing_partial_barrier_delayed_start+0x1c8>
movapd %xmm1,%xmm0
call   10a0 <sqrt@plt>
xorpd  %xmm2,%xmm2
movsd  0x28(%rsp),%xmm1
movapd %xmm0,0x30(%rsp)
movapd 0xd0(%rsp),%xmm0
addsd  0x60(%rsp),%xmm0
movapd %xmm0,0x160(%rsp)
ucomisd %xmm2,%xmm1
movapd 0x50(%rsp),%xmm0
movapd %xmm0,0xa0(%rsp)
jae    1393 <rq_pricing_partial_barrier_delayed_start+0x213>
movapd %xmm1,%xmm0
call   10a0 <sqrt@plt>
movsd  0x28(%rsp),%xmm1
movapd %xmm0,0xa0(%rsp)
xorps  %xmm0,%xmm0
cvtsi2sd %ebp,%xmm0
movsd  %xmm0,0x40(%rsp)
movapd 0x160(%rsp),%xmm0
mulsd  %xmm1,%xmm0
movapd %xmm0,0x10(%rsp)
movsd  0x8(%rsp),%xmm0
call   1080 <log@plt>
movsd  0x28(%rsp),%xmm1
mov    %eax,%ebp
add    %eax,%ebp
xorpd  %xmm3,%xmm3
ucomisd %xmm3,%xmm1
movapd 0x50(%rsp),%xmm0
jae    13eb <rq_pricing_partial_barrier_delayed_start+0x26b>
movapd %xmm1,%xmm0
call   10a0 <sqrt@plt>
xorpd  %xmm3,%xmm3
movsd  0x28(%rsp),%xmm1
movapd 0x30(%rsp),%xmm2
unpcklpd %xmm0,%xmm2
cvtsi2sd %ebp,%xmm4
movapd 0x10(%rsp),%xmm0
addsd  0x40(%rsp),%xmm0
movapd %xmm0,0x10(%rsp)
movapd 0x90(%rsp),%xmm0
unpcklpd %xmm0,%xmm0
ucomisd %xmm3,%xmm1
jae    145d <rq_pricing_partial_barrier_delayed_start+0x2dd>
movapd %xmm0,0xe0(%rsp)
movapd %xmm1,%xmm0
movapd %xmm2,0x30(%rsp)
movapd %xmm4,0x40(%rsp)
call   10a0 <sqrt@plt>
movapd 0x40(%rsp),%xmm4
movapd 0x30(%rsp),%xmm2
movsd  0x28(%rsp),%xmm1
movapd %xmm0,0x50(%rsp)
movapd 0xe0(%rsp),%xmm0
mulpd  %xmm0,%xmm2
movapd 0x10(%rsp),%xmm0
unpcklpd %xmm4,%xmm0
movapd %xmm0,0x10(%rsp)
movapd %xmm1,%xmm0
movsd  (%rsp),%xmm1
divsd  %xmm1,%xmm0
xorpd  %xmm3,%xmm3
ucomisd %xmm3,%xmm0
jb     148e <rq_pricing_partial_barrier_delayed_start+0x30e>
sqrtsd %xmm0,%xmm0
jmp    14a4 <rq_pricing_partial_barrier_delayed_start+0x324>
movapd %xmm2,0x30(%rsp)
call   10a0 <sqrt@plt>
movapd 0x30(%rsp),%xmm2
movsd  (%rsp),%xmm1
movapd %xmm0,0x40(%rsp)
movapd 0x160(%rsp),%xmm0
mulsd  %xmm1,%xmm0
movapd %xmm0,0x160(%rsp)
movaps 0x1b59(%rip),%xmm0
xorps  0x90(%rsp),%xmm0
movaps %xmm0,0x150(%rsp)
movapd 0x10(%rsp),%xmm0
divpd  %xmm2,%xmm0
movapd %xmm0,0x10(%rsp)
movsd  0x80(%rsp),%xmm0
call   1080 <log@plt>
movsd  (%rsp),%xmm1
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movapd %xmm0,0x30(%rsp)
xorps  %xmm3,%xmm3
sqrtsd %xmm1,%xmm3
ucomisd 0x1afa(%rip),%xmm1
movapd %xmm3,0x80(%rsp)
jae    1533 <rq_pricing_partial_barrier_delayed_start+0x3b3>
movapd %xmm1,%xmm0
call   10a0 <sqrt@plt>
movsd  (%rsp),%xmm1
movapd %xmm0,%xmm3
movaps 0x10(%rsp),%xmm0
movhlps %xmm0,%xmm0
movaps %xmm0,0xe0(%rsp)
movapd 0x30(%rsp),%xmm0
addsd  0x160(%rsp),%xmm0
movapd %xmm0,0x30(%rsp)
mulsd  0x90(%rsp),%xmm3
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm1
movapd 0x80(%rsp),%xmm2
jae    1594 <rq_pricing_partial_barrier_delayed_start+0x414>
movsd  (%rsp),%xmm0
movsd  %xmm3,0x110(%rsp)
call   10a0 <sqrt@plt>
movsd  0x110(%rsp),%xmm3
movapd %xmm0,%xmm2
movapd 0x150(%rsp),%xmm1
movapd 0xa0(%rsp),%xmm0
mulsd  %xmm1,%xmm0
movapd %xmm0,0xa0(%rsp)
movapd 0xe0(%rsp),%xmm0
addsd  0x10(%rsp),%xmm0
movapd %xmm0,0xe0(%rsp)
movapd 0x50(%rsp),%xmm0
mulsd  %xmm1,%xmm0
movapd %xmm0,0x50(%rsp)
movapd 0xd0(%rsp),%xmm0
subsd  0x60(%rsp),%xmm0
movapd %xmm0,0x100(%rsp)
movapd 0x30(%rsp),%xmm0
divsd  %xmm3,%xmm0
movapd %xmm0,0x30(%rsp)
mulsd  %xmm1,%xmm2
movapd %xmm2,0x110(%rsp)
movsd  0x8(%rsp),%xmm0
call   1080 <log@plt>
add    %eax,%eax
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movapd %xmm0,0x60(%rsp)
movsd  (%rsp),%xmm1
ucomisd 0x19d9(%rip),%xmm1
movapd 0x80(%rsp),%xmm0
jae    1650 <rq_pricing_partial_barrier_delayed_start+0x4d0>
movapd %xmm1,%xmm0
call   10a0 <sqrt@plt>
movsd  (%rsp),%xmm1
movapd 0xa0(%rsp),%xmm2
addsd  0x10(%rsp),%xmm2
movapd %xmm2,0xa0(%rsp)
movapd 0x50(%rsp),%xmm2
addsd  0xe0(%rsp),%xmm2
movapd %xmm2,0x50(%rsp)
movapd 0x100(%rsp),%xmm2
divsd  0xc0(%rsp),%xmm2
movapd %xmm2,0x100(%rsp)
movapd 0x110(%rsp),%xmm2
movapd 0x30(%rsp),%xmm3
addsd  %xmm3,%xmm2
movapd %xmm2,0x110(%rsp)
mulsd  0x90(%rsp),%xmm0
movapd 0x60(%rsp),%xmm2
divsd  %xmm0,%xmm2
addsd  %xmm3,%xmm2
movapd %xmm2,0x60(%rsp)
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm1
jae    16ee <rq_pricing_partial_barrier_delayed_start+0x56e>
movsd  (%rsp),%xmm0
call   10a0 <sqrt@plt>
movapd %xmm0,0x80(%rsp)
movapd 0x80(%rsp),%xmm0
mulsd  0x150(%rsp),%xmm0
addsd  0x60(%rsp),%xmm0
movapd %xmm0,0x80(%rsp)
movaps 0xa0(%rsp),%xmm0
call   1030 <rq_pricing_norm_dist@plt>
movapd 0x100(%rsp),%xmm0
addsd  %xmm0,%xmm0
cvttsd2si %xmm0,%ebp
movsd  0x8(%rsp),%xmm0
mov    %ebp,%edi
call   1090 <pow@plt>
movaps 0x50(%rsp),%xmm0
call   1030 <rq_pricing_norm_dist@plt>
movaps 0xa0(%rsp),%xmm0
xorps  0x18cd(%rip),%xmm0
movaps %xmm0,0x180(%rsp)
call   1030 <rq_pricing_norm_dist@plt>
movsd  0x8(%rsp),%xmm0
mov    %ebp,%edi
call   1090 <pow@plt>
movaps 0x50(%rsp),%xmm0
xorps  0x18a7(%rip),%xmm0
movaps %xmm0,0x1e0(%rsp)
call   1030 <rq_pricing_norm_dist@plt>
movaps 0x110(%rsp),%xmm0
movaps 0xa0(%rsp),%xmm1
movaps 0x40(%rsp),%xmm2
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
movsd  %xmm0,0x138(%rsp)
movsd  0x8(%rsp),%xmm0
mov    %ebp,%edi
call   1090 <pow@plt>
movsd  %xmm0,0x1c0(%rsp)
movaps 0x40(%rsp),%xmm2
xorps  0x1855(%rip),%xmm2
movaps %xmm2,0xc0(%rsp)
movaps 0x80(%rsp),%xmm0
movaps 0x1e0(%rsp),%xmm1
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
movsd  %xmm0,0x1b8(%rsp)
movaps 0x110(%rsp),%xmm0
xorps  0x1820(%rip),%xmm0
movaps %xmm0,0x220(%rsp)
movaps 0x180(%rsp),%xmm1
movaps 0x40(%rsp),%xmm2
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
movsd  %xmm0,0x128(%rsp)
movsd  0x8(%rsp),%xmm0
mov    %ebp,%edi
call   1090 <pow@plt>
movsd  %xmm0,0x1a0(%rsp)
movaps 0x80(%rsp),%xmm0
xorps  0x17d8(%rip),%xmm0
movaps %xmm0,0x210(%rsp)
movaps 0x50(%rsp),%xmm1
movaps 0xc0(%rsp),%xmm2
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
movsd  %xmm0,0x198(%rsp)
movaps 0x10(%rsp),%xmm0
call   1030 <rq_pricing_norm_dist@plt>
movapd 0x100(%rsp),%xmm0
addsd  0x1782(%rip),%xmm0
addsd  %xmm0,%xmm0
cvttsd2si %xmm0,%r14d
movsd  0x8(%rsp),%xmm0
mov    %r14d,%edi
call   1090 <pow@plt>
movaps 0xe0(%rsp),%xmm0
call   1030 <rq_pricing_norm_dist@plt>
movaps 0x10(%rsp),%xmm0
xorps  0x176a(%rip),%xmm0
movaps %xmm0,0x170(%rsp)
call   1030 <rq_pricing_norm_dist@plt>
movsd  0x8(%rsp),%xmm0
mov    %r14d,%edi
call   1090 <pow@plt>
movaps 0xe0(%rsp),%xmm0
xorps  0x1740(%rip),%xmm0
movaps %xmm0,0x100(%rsp)
call   1030 <rq_pricing_norm_dist@plt>
movaps 0x30(%rsp),%xmm0
movaps 0x10(%rsp),%xmm1
movaps 0x40(%rsp),%xmm2
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
movsd  %xmm0,0x130(%rsp)
movsd  0x8(%rsp),%xmm0
mov    %r14d,%edi
call   1090 <pow@plt>
movsd  %xmm0,0x1b0(%rsp)
movaps 0x60(%rsp),%xmm0
movaps 0x100(%rsp),%xmm1
movaps 0xc0(%rsp),%xmm2
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
movsd  %xmm0,0x1a8(%rsp)
movaps 0x30(%rsp),%xmm0
xorps  0x16d0(%rip),%xmm0
movaps %xmm0,0x200(%rsp)
movaps 0x170(%rsp),%xmm1
movaps 0x40(%rsp),%xmm2
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
movsd  %xmm0,0x120(%rsp)
movsd  0x8(%rsp),%xmm0
mov    %r14d,%edi
call   1090 <pow@plt>
movsd  %xmm0,0x190(%rsp)
movapd 0x60(%rsp),%xmm0
xorpd  0x1688(%rip),%xmm0
movapd %xmm0,0x1f0(%rsp)
movaps 0xe0(%rsp),%xmm1
movaps 0xc0(%rsp),%xmm2
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
movsd  0xb8(%rsp),%xmm1
movsd  0x140(%rsp),%xmm2
ucomisd %xmm1,%xmm2
jbe    1b1f <rq_pricing_partial_barrier_delayed_start+0x99f>
test   %bx,%bx
je     1b1f <rq_pricing_partial_barrier_delayed_start+0x99f>
test   %r13w,%r13w
jne    1b1f <rq_pricing_partial_barrier_delayed_start+0x99f>
ucomisd 0x20(%rsp),%xmm2
ja     1b1f <rq_pricing_partial_barrier_delayed_start+0x99f>
movapd 0xd0(%rsp),%xmm0
subsd  0x70(%rsp),%xmm0
mulsd  (%rsp),%xmm0
call   1070 <exp@plt>
mulsd  0x20(%rsp),%xmm0
movsd  %xmm0,0x50(%rsp)
movaps 0x30(%rsp),%xmm0
movaps 0x10(%rsp),%xmm1
movaps 0x40(%rsp),%xmm2
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
movsd  %xmm0,0x10(%rsp)
movsd  0x8(%rsp),%xmm0
mov    %r14d,%edi
call   1090 <pow@plt>
movsd  %xmm0,0x30(%rsp)
movapd 0x60(%rsp),%xmm0
movaps 0x100(%rsp),%xmm1
movaps 0xc0(%rsp),%xmm2
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
mulsd  0x30(%rsp),%xmm0
movsd  0x10(%rsp),%xmm1
subsd  %xmm0,%xmm1
mulsd  0x50(%rsp),%xmm1
movsd  %xmm1,0x10(%rsp)
movapd 0x70(%rsp),%xmm0
xorpd  0x1597(%rip),%xmm0
mulsd  (%rsp),%xmm0
call   1070 <exp@plt>
movsd  %xmm0,(%rsp)
movaps 0x110(%rsp),%xmm0
movaps 0xa0(%rsp),%xmm1
movaps 0x40(%rsp),%xmm2
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
movsd  %xmm0,0x50(%rsp)
movsd  0x8(%rsp),%xmm0
mov    %ebp,%edi
call   1090 <pow@plt>
movsd  %xmm0,0x8(%rsp)
movapd 0x80(%rsp),%xmm0
movaps 0x1e0(%rsp),%xmm1
movapd 0xc0(%rsp),%xmm2
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
mulsd  0x8(%rsp),%xmm0
movsd  0x50(%rsp),%xmm1
subsd  %xmm0,%xmm1
movsd  (%rsp),%xmm0
mulsd  0xb8(%rsp),%xmm0
mulsd  %xmm1,%xmm0
movapd %xmm0,%xmm1
movsd  0x10(%rsp),%xmm0
subsd  %xmm1,%xmm0
jmp    20fb <rq_pricing_partial_barrier_delayed_start+0xf7b>
ucomisd %xmm2,%xmm1
jbe    1b7b <rq_pricing_partial_barrier_delayed_start+0x9fb>
test   %r13w,%r13w
jne    1b7b <rq_pricing_partial_barrier_delayed_start+0x9fb>
test   %bx,%bx
je     1b7b <rq_pricing_partial_barrier_delayed_start+0x9fb>
ucomisd 0x20(%rsp),%xmm2
ja     1b7b <rq_pricing_partial_barrier_delayed_start+0x9fb>
xor    %edi,%edi
mov    $0x1,%esi
movsd  0x20(%rsp),%xmm0
movaps 0x70(%rsp),%xmm3
movaps 0xd0(%rsp),%xmm4
movaps 0x90(%rsp),%xmm5
movsd  0x28(%rsp),%xmm6
movsd  (%rsp),%xmm7
add    $0x238,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
jmp    1050 <rq_pricing_partial_barrier_delayed_start_up_or_down@plt>
ucomisd %xmm1,%xmm2
jbe    1ed8 <rq_pricing_partial_barrier_delayed_start+0xd58>
test   %bx,%bx
je     1ed8 <rq_pricing_partial_barrier_delayed_start+0xd58>
ucomisd 0x20(%rsp),%xmm2
jbe    1ed8 <rq_pricing_partial_barrier_delayed_start+0xd58>
test   %r13w,%r13w
jne    1ed8 <rq_pricing_partial_barrier_delayed_start+0xd58>
lea    (%r15,%r12,2),%eax
cvtsi2sdl 0x14c(%rsp),%xmm5
cvtsi2sd %eax,%xmm4
movapd 0x160(%rsp),%xmm3
addsd  %xmm3,%xmm5
movapd 0x90(%rsp),%xmm0
movsd  0x1d8(%rsp),%xmm2
mulsd  %xmm0,%xmm2
addsd  %xmm3,%xmm4
movsd  0x1c8(%rsp),%xmm3
mulsd  %xmm0,%xmm3
divsd  %xmm2,%xmm5
movapd %xmm5,0x80(%rsp)
movsd  0x1d0(%rsp),%xmm2
mulsd  %xmm0,%xmm2
divsd  %xmm3,%xmm4
movapd %xmm4,0x30(%rsp)
movapd 0x150(%rsp),%xmm0
mulsd  0xf8(%rsp),%xmm0
movapd %xmm5,%xmm3
subsd  %xmm2,%xmm3
movapd %xmm3,0xa0(%rsp)
addsd  %xmm4,%xmm0
movapd %xmm0,0x150(%rsp)
movapd 0xd0(%rsp),%xmm0
subsd  0x70(%rsp),%xmm0
mulsd  (%rsp),%xmm0
movapd %xmm0,0xd0(%rsp)
call   1070 <exp@plt>
mulsd  0x20(%rsp),%xmm0
movsd  %xmm0,0x60(%rsp)
movaps 0x200(%rsp),%xmm0
movaps 0x170(%rsp),%xmm1
movaps 0x40(%rsp),%xmm2
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
movsd  %xmm0,0x10(%rsp)
movsd  0x8(%rsp),%xmm0
mov    %r14d,%edi
call   1090 <pow@plt>
movsd  %xmm0,0x90(%rsp)
movapd 0x1f0(%rsp),%xmm0
movaps 0xe0(%rsp),%xmm1
movaps 0xc0(%rsp),%xmm2
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
mulsd  0x90(%rsp),%xmm0
movsd  0x10(%rsp),%xmm1
subsd  %xmm0,%xmm1
mulsd  0x60(%rsp),%xmm1
movsd  %xmm1,0x10(%rsp)
movapd 0x1339(%rip),%xmm1
movapd 0x70(%rsp),%xmm0
xorpd  %xmm1,%xmm0
mulsd  (%rsp),%xmm0
movapd %xmm0,0x70(%rsp)
call   1070 <exp@plt>
movsd  %xmm0,(%rsp)
movaps 0x220(%rsp),%xmm0
movaps 0x180(%rsp),%xmm1
movaps 0x40(%rsp),%xmm2
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
movsd  %xmm0,0x60(%rsp)
movsd  0x8(%rsp),%xmm0
mov    %ebp,%edi
call   1090 <pow@plt>
movsd  %xmm0,0x90(%rsp)
movapd 0x210(%rsp),%xmm0
movaps 0x50(%rsp),%xmm1
movaps 0xc0(%rsp),%xmm2
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
mulsd  0x90(%rsp),%xmm0
movsd  0x60(%rsp),%xmm1
subsd  %xmm0,%xmm1
movsd  (%rsp),%xmm0
mulsd  0xb8(%rsp),%xmm0
mulsd  %xmm1,%xmm0
movapd %xmm0,%xmm1
movsd  0x10(%rsp),%xmm0
subsd  %xmm1,%xmm0
movsd  %xmm0,0x10(%rsp)
movaps 0xd0(%rsp),%xmm0
call   1070 <exp@plt>
movsd  %xmm0,(%rsp)
movaps 0x80(%rsp),%xmm0
xorps  0x126f(%rip),%xmm0
movaps 0x170(%rsp),%xmm1
movaps 0x40(%rsp),%xmm2
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
movsd  %xmm0,0x80(%rsp)
movsd  0x8(%rsp),%xmm0
mov    %r14d,%edi
call   1090 <pow@plt>
movsd  %xmm0,0x60(%rsp)
movaps 0x30(%rsp),%xmm1
xorps  0x1234(%rip),%xmm1
movapd 0xe0(%rsp),%xmm0
movaps 0xc0(%rsp),%xmm2
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
mulsd  0x60(%rsp),%xmm0
movsd  0x80(%rsp),%xmm1
subsd  %xmm0,%xmm1
movsd  (%rsp),%xmm0
mulsd  0x20(%rsp),%xmm0
mulsd  %xmm1,%xmm0
movapd %xmm0,%xmm1
movsd  0x10(%rsp),%xmm0
subsd  %xmm1,%xmm0
movsd  %xmm0,0x10(%rsp)
movapd 0x70(%rsp),%xmm0
call   1070 <exp@plt>
mulsd  0xb8(%rsp),%xmm0
movsd  %xmm0,(%rsp)
movaps 0xa0(%rsp),%xmm0
xorps  0x11c0(%rip),%xmm0
movaps 0x180(%rsp),%xmm1
movaps 0x40(%rsp),%xmm2
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
movsd  %xmm0,0xa0(%rsp)
movsd  0x8(%rsp),%xmm0
mov    %ebp,%edi
call   1090 <pow@plt>
movsd  %xmm0,0x8(%rsp)
movaps 0x150(%rsp),%xmm1
xorps  0x1183(%rip),%xmm1
movapd 0x50(%rsp),%xmm0
movapd 0xc0(%rsp),%xmm2
call   1040 <rq_pricing_cumul_bivar_norm_dist@plt>
mulsd  0x8(%rsp),%xmm0
movsd  0xa0(%rsp),%xmm1
subsd  %xmm0,%xmm1
mulsd  (%rsp),%xmm1
addsd  0x10(%rsp),%xmm1
movapd %xmm1,%xmm0
jmp    20fb <rq_pricing_partial_barrier_delayed_start+0xf7b>
mov    %ebx,%eax
or     %r13w,%ax
jne    1fe8 <rq_pricing_partial_barrier_delayed_start+0xe68>
ucomisd 0x20(%rsp),%xmm2
ja     1fe8 <rq_pricing_partial_barrier_delayed_start+0xe68>
movsd  0x1c0(%rsp),%xmm0
mulsd  0x1b8(%rsp),%xmm0
movsd  0x138(%rsp),%xmm3
subsd  %xmm0,%xmm3
movsd  %xmm3,0x138(%rsp)
movsd  0x1b0(%rsp),%xmm0
mulsd  0x1a8(%rsp),%xmm0
movsd  0x130(%rsp),%xmm3
subsd  %xmm0,%xmm3
movsd  %xmm3,0x130(%rsp)
xor    %edi,%edi
mov    $0x1,%esi
movsd  0x20(%rsp),%xmm0
movapd 0x70(%rsp),%xmm3
movapd 0xd0(%rsp),%xmm4
movapd 0x90(%rsp),%xmm5
movsd  0x28(%rsp),%xmm6
movsd  (%rsp),%xmm7
call   1060 <rq_pricing_partial_barrier_delayed_start@plt>
movsd  %xmm0,0x10(%rsp)
movapd 0xd0(%rsp),%xmm0
subsd  0x70(%rsp),%xmm0
mulsd  (%rsp),%xmm0
call   1070 <exp@plt>
mulsd  0x20(%rsp),%xmm0
mulsd  0x130(%rsp),%xmm0
movsd  0x10(%rsp),%xmm1
subsd  %xmm0,%xmm1
movsd  %xmm1,0x10(%rsp)
movapd 0x70(%rsp),%xmm0
xorpd  0x105f(%rip),%xmm0
mulsd  (%rsp),%xmm0
call   1070 <exp@plt>
mulsd  0xb8(%rsp),%xmm0
mulsd  0x138(%rsp),%xmm0
addsd  0x10(%rsp),%xmm0
jmp    20fb <rq_pricing_partial_barrier_delayed_start+0xf7b>
test   %r13w,%r13w
jne    20f7 <rq_pricing_partial_barrier_delayed_start+0xf77>
test   %bx,%bx
jne    20f7 <rq_pricing_partial_barrier_delayed_start+0xf77>
ucomisd 0x20(%rsp),%xmm2
jbe    20f7 <rq_pricing_partial_barrier_delayed_start+0xf77>
movsd  0x1a0(%rsp),%xmm3
mulsd  0x198(%rsp),%xmm3
movsd  0x128(%rsp),%xmm4
subsd  %xmm3,%xmm4
movsd  %xmm4,0x128(%rsp)
movsd  0x190(%rsp),%xmm3
mulsd  %xmm0,%xmm3
movsd  0x120(%rsp),%xmm0
subsd  %xmm3,%xmm0
movsd  %xmm0,0x120(%rsp)
xor    %edi,%edi
mov    $0x1,%esi
movsd  0x20(%rsp),%xmm0
movapd 0x70(%rsp),%xmm3
movapd 0xd0(%rsp),%xmm4
movapd 0x90(%rsp),%xmm5
movsd  0x28(%rsp),%xmm6
movsd  (%rsp),%xmm7
call   1060 <rq_pricing_partial_barrier_delayed_start@plt>
movsd  %xmm0,0x10(%rsp)
movapd 0xd0(%rsp),%xmm0
subsd  0x70(%rsp),%xmm0
mulsd  (%rsp),%xmm0
call   1070 <exp@plt>
mulsd  0x20(%rsp),%xmm0
mulsd  0x120(%rsp),%xmm0
movsd  0x10(%rsp),%xmm1
subsd  %xmm0,%xmm1
movsd  %xmm1,0x10(%rsp)
movapd 0x70(%rsp),%xmm0
xorpd  0xf4d(%rip),%xmm0
mulsd  (%rsp),%xmm0
call   1070 <exp@plt>
mulsd  0xb8(%rsp),%xmm0
mulsd  0x128(%rsp),%xmm0
addsd  0x10(%rsp),%xmm0
jmp    20fb <rq_pricing_partial_barrier_delayed_start+0xf7b>
xorpd  %xmm0,%xmm0
add    $0x238,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

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

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