#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);
double log(double);
int pow(double, int);
double rq_pricing_cumul_norm_dist(double);
double sqrt(double);
double rq_pricing_miltersen_swartz(short call, double Pt, double FT, double X,
                                   double t1, double T2, double vS, double vE,
                                   double vf, double rhoSe, double rhoSf,
                                   double rhoef, double Kappae, double Kappaf) {
  double ret = 0.0;
  double vz =
      pow(vS, 2) * t1 +
      2 * vS *
          (vf * rhoSf * 1 / Kappaf *
               (t1 - 1 / Kappaf * exp(-Kappaf * T2) * (exp(Kappaf * t1) - 1)) -
           vE * rhoSe * 1 / Kappae *
               (t1 - 1 / Kappae * exp(-Kappae * T2) * (exp(Kappae * t1) - 1))) +
      pow(vE, 2) * 1 / pow(Kappae, 2) *
          (t1 +
           1 / (2 * Kappae) * exp(-2 * Kappae * T2) *
               (exp(2 * Kappae * t1) - 1) -
           2 * 1 / Kappae * exp(-Kappae * T2) * (exp(Kappae * t1) - 1)) +
      pow(vf, 2) * 1 / pow(Kappaf, 2) *
          (t1 +
           1 / (2 * Kappaf) * exp(-2 * Kappaf * T2) *
               (exp(2 * Kappaf * t1) - 1) -
           2 * 1 / Kappaf * exp(-Kappaf * T2) * (exp(Kappaf * t1) - 1)) -
      2 * vE * vf * rhoef * 1 / Kappae * 1 / Kappaf *
          (t1 - 1 / Kappae * exp(-Kappae * T2) * (exp(Kappae * t1) - 1) -
           1 / Kappaf * exp(-Kappaf * T2) * (exp(Kappaf * t1) - 1) +
           1 / (Kappae + Kappaf) * exp(-(Kappae + Kappaf) * T2) *
               (exp((Kappae + Kappaf) * t1) - 1));
  double vxz =
      vf * 1 / Kappaf *
      (vS * rhoSf * (t1 - 1 / Kappaf * (1 - exp(-Kappaf * t1))) +
       vf * 1 / Kappaf *
           (t1 - 1 / Kappaf * exp(-Kappaf * T2) * (exp(Kappaf * t1) - 1) -
            1 / Kappaf * (1 - exp(-Kappaf * t1)) +
            1 / (2 * Kappaf) * exp(-Kappaf * T2) *
                (exp(Kappaf * t1) - exp(-Kappaf * t1))) -
       vE * rhoef * 1 / Kappae *
           (t1 - 1 / Kappae * exp(-Kappae * T2) * (exp(Kappae * t1) - 1) -
            1 / Kappaf * (1 - exp(-Kappaf * t1)) +
            1 / (Kappae + Kappaf) * exp(-Kappae * T2) *
                (exp(Kappae * t1) - exp(-Kappaf * t1))));
  double vz_sqrt = sqrt(vz);
  double d1 = (log(FT / X) - vxz + vz / 2.0) / vz_sqrt;
  double d2 = (log(FT / X) - vxz - vz / 2.0) / vz_sqrt;
  if (call)
    ret = Pt * (FT * exp(-vxz) * rq_pricing_cumul_norm_dist(d1) -
                X * rq_pricing_cumul_norm_dist(d2));
  else
    ret = Pt * (X * rq_pricing_cumul_norm_dist(-d2) -
                FT * exp(-vxz) * rq_pricing_cumul_norm_dist(-d1));
  return ret;
}


x86 assembly (clang, -O0):
<rq_pricing_miltersen_swartz>:
push   %rbp
mov    %rsp,%rbp
sub    $0x2e0,%rsp
mov    %di,%ax
movsd  0x30(%rbp),%xmm8
movsd  0x28(%rbp),%xmm8
movsd  0x20(%rbp),%xmm8
movsd  0x18(%rbp),%xmm8
movsd  0x10(%rbp),%xmm8
mov    %ax,-0x2(%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  -0x38(%rbp),%xmm0
mov    $0x2,%edi
call   1060 <pow@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x238(%rbp)
ff
movsd  -0x28(%rbp),%xmm0
movsd  %xmm0,-0x240(%rbp)
ff
movsd  0x1e20(%rip),%xmm0
mulsd  -0x38(%rbp),%xmm0
movsd  %xmm0,-0x248(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
mulsd  0x18(%rbp),%xmm0
movsd  0x1e09(%rip),%xmm1
mulsd  %xmm1,%xmm0
divsd  0x30(%rbp),%xmm0
movsd  %xmm0,-0x258(%rbp)
ff
movsd  -0x28(%rbp),%xmm0
movsd  %xmm0,-0x288(%rbp)
ff
movsd  0x1de3(%rip),%xmm0
divsd  0x30(%rbp),%xmm0
movsd  %xmm0,-0x290(%rbp)
ff
movsd  0x30(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  -0x30(%rbp),%xmm0
call   1040 <exp@plt>
movaps %xmm0,%xmm1
movsd  -0x290(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x280(%rbp)
ff
movsd  0x30(%rbp),%xmm0
mulsd  -0x28(%rbp),%xmm0
call   1040 <exp@plt>
movsd  -0x288(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x280(%rbp),%xmm0
ff
movsd  0x1d6f(%rip),%xmm3
subsd  %xmm3,%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x250(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
mulsd  0x10(%rbp),%xmm0
movsd  0x1d32(%rip),%xmm1
mulsd  %xmm1,%xmm0
divsd  0x28(%rbp),%xmm0
movsd  %xmm0,-0x260(%rbp)
ff
movsd  -0x28(%rbp),%xmm0
movsd  %xmm0,-0x268(%rbp)
ff
movsd  0x1d0c(%rip),%xmm0
divsd  0x28(%rbp),%xmm0
movsd  %xmm0,-0x278(%rbp)
ff
movsd  0x28(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  -0x30(%rbp),%xmm0
call   1040 <exp@plt>
movaps %xmm0,%xmm1
movsd  -0x278(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x270(%rbp)
ff
movsd  0x28(%rbp),%xmm0
mulsd  -0x28(%rbp),%xmm0
call   1040 <exp@plt>
movsd  -0x270(%rbp),%xmm6
ff
movsd  -0x268(%rbp),%xmm7
ff
movsd  -0x260(%rbp),%xmm4
ff
movsd  -0x258(%rbp),%xmm3
ff
movsd  -0x250(%rbp),%xmm5
ff
movsd  -0x248(%rbp),%xmm1
ff
movsd  -0x240(%rbp),%xmm2
ff
movaps %xmm0,%xmm8
movsd  -0x238(%rbp),%xmm0
ff
movsd  0x1c66(%rip),%xmm9
subsd  %xmm9,%xmm8
movq   %xmm6,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm6
mulsd  %xmm8,%xmm6
addsd  %xmm7,%xmm6
mulsd  %xmm6,%xmm4
movq   %xmm4,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm4
mulsd  %xmm5,%xmm3
addsd  %xmm4,%xmm3
mulsd  %xmm3,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x1f8(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
mov    $0x2,%edi
call   1060 <pow@plt>
shl    $0x0,%eax
mov    %eax,-0x22c(%rbp)
movsd  0x28(%rbp),%xmm0
mov    $0x2,%edi
call   1060 <pow@plt>
mov    %eax,%ecx
mov    -0x22c(%rbp),%eax
cltd
idiv   %ecx
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x1f0(%rbp)
ff
movsd  -0x28(%rbp),%xmm0
movsd  %xmm0,-0x220(%rbp)
ff
movsd  0x1baf(%rip),%xmm1
mulsd  0x28(%rbp),%xmm1
movsd  0x1baa(%rip),%xmm0
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x228(%rbp)
ff
movsd  0x1b9e(%rip),%xmm0
mulsd  0x28(%rbp),%xmm0
mulsd  -0x30(%rbp),%xmm0
call   1040 <exp@plt>
movaps %xmm0,%xmm1
movsd  -0x228(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x218(%rbp)
ff
movsd  0x1b60(%rip),%xmm0
mulsd  0x28(%rbp),%xmm0
mulsd  -0x28(%rbp),%xmm0
call   1040 <exp@plt>
movsd  -0x220(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x218(%rbp),%xmm0
ff
movsd  0x1b3e(%rip),%xmm3
subsd  %xmm3,%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x200(%rbp)
ff
movsd  0x1b1a(%rip),%xmm0
divsd  0x28(%rbp),%xmm0
movsd  %xmm0,-0x210(%rbp)
ff
movsd  0x28(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  -0x30(%rbp),%xmm0
call   1040 <exp@plt>
movaps %xmm0,%xmm1
movsd  -0x210(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x208(%rbp)
ff
movsd  0x28(%rbp),%xmm0
mulsd  -0x28(%rbp),%xmm0
call   1040 <exp@plt>
movsd  -0x208(%rbp),%xmm2
ff
movsd  -0x200(%rbp),%xmm3
ff
movsd  -0x1f8(%rbp),%xmm1
ff
movaps %xmm0,%xmm4
movsd  -0x1f0(%rbp),%xmm0
ff
movsd  0x1a9e(%rip),%xmm5
subsd  %xmm5,%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,-0x1b0(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
mov    $0x2,%edi
call   1060 <pow@plt>
shl    $0x0,%eax
mov    %eax,-0x1e4(%rbp)
movsd  0x30(%rbp),%xmm0
mov    $0x2,%edi
call   1060 <pow@plt>
mov    %eax,%ecx
mov    -0x1e4(%rbp),%eax
cltd
idiv   %ecx
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x1a8(%rbp)
ff
movsd  -0x28(%rbp),%xmm0
movsd  %xmm0,-0x1d8(%rbp)
ff
movsd  0x1a10(%rip),%xmm1
mulsd  0x30(%rbp),%xmm1
movsd  0x1a0b(%rip),%xmm0
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x1e0(%rbp)
ff
movsd  0x19ff(%rip),%xmm0
mulsd  0x30(%rbp),%xmm0
mulsd  -0x30(%rbp),%xmm0
call   1040 <exp@plt>
movaps %xmm0,%xmm1
movsd  -0x1e0(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x1d0(%rbp)
ff
movsd  0x19c1(%rip),%xmm0
mulsd  0x30(%rbp),%xmm0
mulsd  -0x28(%rbp),%xmm0
call   1040 <exp@plt>
movsd  -0x1d8(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x1d0(%rbp),%xmm0
ff
movsd  0x199f(%rip),%xmm3
subsd  %xmm3,%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x1b8(%rbp)
ff
movsd  0x197b(%rip),%xmm0
divsd  0x30(%rbp),%xmm0
movsd  %xmm0,-0x1c8(%rbp)
ff
movsd  0x30(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  -0x30(%rbp),%xmm0
call   1040 <exp@plt>
movaps %xmm0,%xmm1
movsd  -0x1c8(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x1c0(%rbp)
ff
movsd  0x30(%rbp),%xmm0
mulsd  -0x28(%rbp),%xmm0
call   1040 <exp@plt>
movsd  -0x1c0(%rbp),%xmm2
ff
movsd  -0x1b8(%rbp),%xmm3
ff
movsd  -0x1b0(%rbp),%xmm1
ff
movaps %xmm0,%xmm4
movsd  -0x1a8(%rbp),%xmm0
movsd  0x18ff(%rip),%xmm5
subsd  %xmm5,%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,-0x158(%rbp)
ff
movsd  0x18bc(%rip),%xmm0
mulsd  -0x40(%rbp),%xmm0
mulsd  -0x48(%rbp),%xmm0
mulsd  0x20(%rbp),%xmm0
movsd  0x18ad(%rip),%xmm1
mulsd  %xmm1,%xmm0
divsd  0x28(%rbp),%xmm0
movsd  0x189c(%rip),%xmm1
mulsd  %xmm1,%xmm0
divsd  0x30(%rbp),%xmm0
movsd  %xmm0,-0x150(%rbp)
ff
movsd  -0x28(%rbp),%xmm0
movsd  %xmm0,-0x198(%rbp)
ff
movsd  0x1876(%rip),%xmm0
divsd  0x28(%rbp),%xmm0
movsd  %xmm0,-0x1a0(%rbp)
ff
movsd  0x28(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  -0x30(%rbp),%xmm0
call   1040 <exp@plt>
movaps %xmm0,%xmm1
movsd  -0x1a0(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x190(%rbp)
ff
movsd  0x28(%rbp),%xmm0
mulsd  -0x28(%rbp),%xmm0
call   1040 <exp@plt>
movsd  -0x198(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x190(%rbp),%xmm0
ff
movsd  0x1802(%rip),%xmm3
subsd  %xmm3,%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x180(%rbp)
ff
movsd  0x17cf(%rip),%xmm0
divsd  0x30(%rbp),%xmm0
movsd  %xmm0,-0x188(%rbp)
ff
movsd  0x30(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  -0x30(%rbp),%xmm0
call   1040 <exp@plt>
movaps %xmm0,%xmm1
movsd  -0x188(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x178(%rbp)
ff
movsd  0x30(%rbp),%xmm0
mulsd  -0x28(%rbp),%xmm0
call   1040 <exp@plt>
movsd  -0x180(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x178(%rbp),%xmm0
ff
movsd  0x175b(%rip),%xmm3
subsd  %xmm3,%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x160(%rbp)
ff
movsd  0x28(%rbp),%xmm1
addsd  0x30(%rbp),%xmm1
movsd  0x171e(%rip),%xmm0
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x170(%rbp)
ff
movsd  0x28(%rbp),%xmm0
addsd  0x30(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  -0x30(%rbp),%xmm0
call   1040 <exp@plt>
movaps %xmm0,%xmm1
movsd  -0x170(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x168(%rbp)
ff
movsd  0x28(%rbp),%xmm0
addsd  0x30(%rbp),%xmm0
mulsd  -0x28(%rbp),%xmm0
call   1040 <exp@plt>
movsd  -0x168(%rbp),%xmm2
ff
movsd  -0x160(%rbp),%xmm3
ff
movsd  -0x158(%rbp),%xmm1
ff
movaps %xmm0,%xmm4
movsd  -0x150(%rbp),%xmm0
ff
movsd  0x1691(%rip),%xmm5
subsd  %xmm5,%xmm4
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,-0x58(%rbp)
movsd  0x1659(%rip),%xmm0
mulsd  -0x48(%rbp),%xmm0
divsd  0x30(%rbp),%xmm0
movsd  %xmm0,-0x80(%rbp)
movsd  -0x38(%rbp),%xmm0
mulsd  0x18(%rbp),%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  -0x28(%rbp),%xmm0
movsd  %xmm0,-0x148(%rbp)
ff
movsd  0x1623(%rip),%xmm0
divsd  0x30(%rbp),%xmm0
movsd  %xmm0,-0x140(%rbp)
ff
movsd  0x30(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  -0x28(%rbp),%xmm0
call   1040 <exp@plt>
movsd  -0x148(%rbp),%xmm1
ff
movaps %xmm0,%xmm3
movsd  -0x140(%rbp),%xmm0
ff
movsd  0x15d5(%rip),%xmm2
subsd  %xmm3,%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  0x15a2(%rip),%xmm0
mulsd  -0x48(%rbp),%xmm0
divsd  0x30(%rbp),%xmm0
movsd  %xmm0,-0xf0(%rbp)
ff
movsd  -0x28(%rbp),%xmm0
movsd  %xmm0,-0x130(%rbp)
ff
movsd  0x157b(%rip),%xmm0
divsd  0x30(%rbp),%xmm0
movsd  %xmm0,-0x138(%rbp)
ff
movsd  0x30(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  -0x30(%rbp),%xmm0
call   1040 <exp@plt>
movaps %xmm0,%xmm1
movsd  -0x138(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x128(%rbp)
ff
movsd  0x30(%rbp),%xmm0
mulsd  -0x28(%rbp),%xmm0
call   1040 <exp@plt>
movsd  -0x130(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x128(%rbp),%xmm0
ff
movsd  0x1507(%rip),%xmm3
subsd  %xmm3,%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x120(%rbp)
ff
movsd  0x14d4(%rip),%xmm0
divsd  0x30(%rbp),%xmm0
movsd  %xmm0,-0x118(%rbp)
ff
movsd  0x30(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  -0x28(%rbp),%xmm0
call   1040 <exp@plt>
movsd  -0x120(%rbp),%xmm1
ff
movaps %xmm0,%xmm3
movsd  -0x118(%rbp),%xmm0
ff
movsd  0x1486(%rip),%xmm2
subsd  %xmm3,%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  0x144b(%rip),%xmm1
mulsd  0x30(%rbp),%xmm1
movsd  0x1446(%rip),%xmm0
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x110(%rbp)
ff
movsd  0x30(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  -0x30(%rbp),%xmm0
call   1040 <exp@plt>
movaps %xmm0,%xmm1
movsd  -0x110(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x100(%rbp)
ff
movsd  0x30(%rbp),%xmm0
mulsd  -0x28(%rbp),%xmm0
call   1040 <exp@plt>
movsd  %xmm0,-0x108(%rbp)
ff
movsd  0x30(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  -0x28(%rbp),%xmm0
call   1040 <exp@plt>
movsd  -0x108(%rbp),%xmm5
ff
movsd  -0x100(%rbp),%xmm3
ff
movsd  -0xf8(%rbp),%xmm4
ff
movsd  -0xf0(%rbp),%xmm1
ff
movsd  -0xe8(%rbp),%xmm2
ff
movaps %xmm0,%xmm6
movsd  -0xe0(%rbp),%xmm0
ff
subsd  %xmm6,%xmm5
mulsd  %xmm5,%xmm3
addsd  %xmm4,%xmm3
mulsd  %xmm3,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
mulsd  0x20(%rbp),%xmm0
movsd  0x135b(%rip),%xmm1
mulsd  %xmm1,%xmm0
divsd  0x28(%rbp),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x28(%rbp),%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  0x1335(%rip),%xmm0
divsd  0x28(%rbp),%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
movsd  0x28(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  -0x30(%rbp),%xmm0
call   1040 <exp@plt>
movaps %xmm0,%xmm1
movsd  -0xd8(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  0x28(%rbp),%xmm0
mulsd  -0x28(%rbp),%xmm0
call   1040 <exp@plt>
movsd  -0xd0(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0xc8(%rbp),%xmm0
ff
movsd  0x12c1(%rip),%xmm3
subsd  %xmm3,%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  0x128e(%rip),%xmm0
divsd  0x30(%rbp),%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  0x30(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  -0x28(%rbp),%xmm0
call   1040 <exp@plt>
movsd  -0xc0(%rbp),%xmm1
ff
movaps %xmm0,%xmm3
movsd  -0xb8(%rbp),%xmm0
ff
movsd  0x1240(%rip),%xmm2
subsd  %xmm3,%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
movsd  0x28(%rbp),%xmm1
addsd  0x30(%rbp),%xmm1
movsd  0x1203(%rip),%xmm0
divsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  0x28(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  -0x30(%rbp),%xmm0
call   1040 <exp@plt>
movaps %xmm0,%xmm1
movsd  -0xb0(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
movsd  0x28(%rbp),%xmm0
mulsd  -0x28(%rbp),%xmm0
call   1040 <exp@plt>
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  0x30(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  -0x28(%rbp),%xmm0
call   1040 <exp@plt>
movsd  -0xa8(%rbp),%xmm5
ff
movsd  -0xa0(%rbp),%xmm3
ff
movsd  -0x98(%rbp),%xmm4
ff
movsd  -0x90(%rbp),%xmm1
ff
movsd  -0x88(%rbp),%xmm2
ff
movaps %xmm0,%xmm6
movsd  -0x80(%rbp),%xmm0
subsd  %xmm6,%xmm5
mulsd  %xmm5,%xmm3
addsd  %xmm4,%xmm3
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x60(%rbp)
movsd  -0x58(%rbp),%xmm0
call   1070 <sqrt@plt>
movsd  %xmm0,-0x68(%rbp)
movsd  -0x18(%rbp),%xmm0
divsd  -0x20(%rbp),%xmm0
call   1050 <log@plt>
subsd  -0x60(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm1
movsd  0x10e1(%rip),%xmm2
divsd  %xmm2,%xmm1
addsd  %xmm1,%xmm0
divsd  -0x68(%rbp),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x18(%rbp),%xmm0
divsd  -0x20(%rbp),%xmm0
call   1050 <log@plt>
subsd  -0x60(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm1
movsd  0x10ae(%rip),%xmm2
divsd  %xmm2,%xmm1
subsd  %xmm1,%xmm0
divsd  -0x68(%rbp),%xmm0
movsd  %xmm0,-0x78(%rbp)
cmpw   $0x0,-0x2(%rbp)
je     203e <rq_pricing_miltersen_swartz+0xeee>
movsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0x298(%rbp)
ff
movsd  -0x18(%rbp),%xmm0
movsd  %xmm0,-0x2b8(%rbp)
ff
movsd  -0x60(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
call   1040 <exp@plt>
movaps %xmm0,%xmm1
movsd  -0x2b8(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x2a8(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
call   1030 <rq_pricing_cumul_norm_dist@plt>
movsd  %xmm0,-0x2a0(%rbp)
ff
movsd  -0x20(%rbp),%xmm0
movsd  %xmm0,-0x2b0(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
call   1030 <rq_pricing_cumul_norm_dist@plt>
movsd  -0x2b0(%rbp),%xmm2
ff
movsd  -0x2a8(%rbp),%xmm1
ff
movsd  -0x2a0(%rbp),%xmm3
movaps %xmm0,%xmm4
movsd  -0x298(%rbp),%xmm0
mulsd  %xmm4,%xmm2
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x50(%rbp)
jmp    2136 <rq_pricing_miltersen_swartz+0xfe6>
movsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0x2c0(%rbp)
ff
movsd  -0x20(%rbp),%xmm0
movsd  %xmm0,-0x2d0(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
call   1030 <rq_pricing_cumul_norm_dist@plt>
movsd  %xmm0,-0x2c8(%rbp)
ff
movsd  -0x18(%rbp),%xmm0
movsd  %xmm0,-0x2e0(%rbp)
ff
movsd  -0x60(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
call   1040 <exp@plt>
movaps %xmm0,%xmm1
movsd  -0x2e0(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x2d8(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
call   1030 <rq_pricing_cumul_norm_dist@plt>
movsd  -0x2d8(%rbp),%xmm2
ff
movsd  -0x2d0(%rbp),%xmm1
ff
movsd  -0x2c8(%rbp),%xmm3
ff
movaps %xmm0,%xmm4
movsd  -0x2c0(%rbp),%xmm0
ff
mulsd  %xmm4,%xmm2
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x50(%rbp)
movsd  -0x50(%rbp),%xmm0
add    $0x2e0,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<rq_pricing_miltersen_swartz>:
push   %rbp
push   %rbx
sub    $0xf8,%rsp
movsd  %xmm7,0x50(%rsp)
movsd  %xmm6,0xc8(%rsp)
movsd  %xmm5,0x48(%rsp)
movsd  %xmm4,0x20(%rsp)
movsd  %xmm3,0x8(%rsp)
movsd  %xmm2,0x78(%rsp)
movsd  %xmm1,0x70(%rsp)
movsd  %xmm0,0xf0(%rsp)
mov    %edi,%ebx
movaps %xmm5,%xmm0
mov    $0x2,%edi
call   1060 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x10(%rsp)
movsd  0x48(%rsp),%xmm0
addsd  %xmm0,%xmm0
movsd  %xmm0,0x90(%rsp)
movsd  0x50(%rsp),%xmm0
mulsd  0x118(%rsp),%xmm0
movsd  0x130(%rsp),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,0xa0(%rsp)
xorpd  0xe15(%rip),%xmm1
movapd %xmm1,0xb0(%rsp)
movapd %xmm1,%xmm0
mulsd  0x20(%rsp),%xmm0
movapd %xmm0,0x60(%rsp)
call   1040 <exp@plt>
movsd  %xmm0,0x18(%rsp)
movsd  0x8(%rsp),%xmm0
movsd  0x130(%rsp),%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,0x80(%rsp)
call   1040 <exp@plt>
movsd  0xdd8(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  0x130(%rsp),%xmm2
divsd  %xmm2,%xmm1
movsd  %xmm1,0x40(%rsp)
movsd  0x18(%rsp),%xmm2
mulsd  %xmm1,%xmm2
mulsd  %xmm0,%xmm2
addsd  0x8(%rsp),%xmm2
mulsd  0xa0(%rsp),%xmm2
movsd  %xmm2,0x18(%rsp)
movsd  0x128(%rsp),%xmm0
xorpd  0xd7d(%rip),%xmm0
mulsd  0x20(%rsp),%xmm0
movapd %xmm0,0xa0(%rsp)
call   1040 <exp@plt>
movsd  %xmm0,0x30(%rsp)
movsd  0x8(%rsp),%xmm0
movsd  0x128(%rsp),%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,0x88(%rsp)
call   1040 <exp@plt>
movsd  0xd4a(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  0x128(%rsp),%xmm3
divsd  %xmm3,%xmm1
movsd  %xmm1,0xe8(%rsp)
movsd  0x30(%rsp),%xmm4
mulsd  %xmm1,%xmm4
mulsd  %xmm0,%xmm4
movsd  0x8(%rsp),%xmm2
addsd  %xmm2,%xmm4
movsd  0x110(%rsp),%xmm1
movsd  0xc8(%rsp),%xmm0
mulsd  %xmm0,%xmm1
divsd  %xmm3,%xmm1
mulsd  %xmm4,%xmm1
movsd  0x18(%rsp),%xmm3
subsd  %xmm1,%xmm3
mulsd  0x90(%rsp),%xmm3
movsd  0x10(%rsp),%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm3,%xmm1
movsd  %xmm1,0x10(%rsp)
mov    $0x2,%edi
call   1060 <pow@plt>
mov    %eax,%ebp
movsd  0x128(%rsp),%xmm0
mov    $0x2,%edi
call   1060 <pow@plt>
mov    %eax,%ecx
mov    %ebp,%eax
cltd
idiv   %ecx
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x18(%rsp)
movsd  0x128(%rsp),%xmm0
movapd %xmm0,%xmm2
addsd  %xmm0,%xmm2
movapd %xmm2,0x90(%rsp)
movsd  0xc86(%rip),%xmm1
divsd  %xmm2,%xmm1
movsd  %xmm1,0x30(%rsp)
mulsd  0xc7c(%rip),%xmm0
mulsd  0x20(%rsp),%xmm0
call   1040 <exp@plt>
mulsd  0x30(%rsp),%xmm0
movsd  %xmm0,0x30(%rsp)
movapd 0x90(%rsp),%xmm0
mulsd  0x8(%rsp),%xmm0
call   1040 <exp@plt>
addsd  0xc39(%rip),%xmm0
mulsd  0x30(%rsp),%xmm0
addsd  0x8(%rsp),%xmm0
movsd  %xmm0,0x90(%rsp)
movaps 0xa0(%rsp),%xmm0
call   1040 <exp@plt>
movsd  %xmm0,0x30(%rsp)
movsd  0x88(%rsp),%xmm0
call   1040 <exp@plt>
addsd  0xbfb(%rip),%xmm0
movsd  0xc03(%rip),%xmm2
movsd  0x128(%rsp),%xmm1
divsd  %xmm1,%xmm2
mulsd  0x30(%rsp),%xmm2
mulsd  %xmm0,%xmm2
addsd  0x90(%rsp),%xmm2
mulsd  0x18(%rsp),%xmm2
addsd  0x10(%rsp),%xmm2
movsd  %xmm2,0x10(%rsp)
movsd  0x50(%rsp),%xmm0
mov    $0x2,%edi
call   1060 <pow@plt>
mov    %eax,%ebp
movsd  0x130(%rsp),%xmm0
mov    $0x2,%edi
call   1060 <pow@plt>
mov    %eax,%ecx
mov    %ebp,%eax
cltd
idiv   %ecx
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x18(%rsp)
movsd  0x130(%rsp),%xmm1
movapd %xmm1,%xmm2
addsd  %xmm1,%xmm2
movapd %xmm2,0x30(%rsp)
movsd  0xb71(%rip),%xmm0
divsd  %xmm2,%xmm0
movsd  %xmm0,0x90(%rsp)
movapd %xmm1,%xmm0
mulsd  0xb60(%rip),%xmm0
mulsd  0x20(%rsp),%xmm0
call   1040 <exp@plt>
mulsd  0x90(%rsp),%xmm0
movsd  %xmm0,0xd0(%rsp)
movapd 0x30(%rsp),%xmm0
mulsd  0x8(%rsp),%xmm0
call   1040 <exp@plt>
addsd  0xb1a(%rip),%xmm0
mulsd  0xd0(%rsp),%xmm0
addsd  0x8(%rsp),%xmm0
movsd  %xmm0,0x30(%rsp)
movaps 0x60(%rsp),%xmm0
call   1040 <exp@plt>
movsd  %xmm0,0xd0(%rsp)
movsd  0x80(%rsp),%xmm0
call   1040 <exp@plt>
addsd  0xadc(%rip),%xmm0
movsd  0xae4(%rip),%xmm2
movsd  0x130(%rsp),%xmm1
divsd  %xmm1,%xmm2
mulsd  0xd0(%rsp),%xmm2
mulsd  %xmm0,%xmm2
addsd  0x30(%rsp),%xmm2
mulsd  0x18(%rsp),%xmm2
addsd  0x10(%rsp),%xmm2
movsd  %xmm2,0x30(%rsp)
movaps 0xa0(%rsp),%xmm0
call   1040 <exp@plt>
movsd  %xmm0,0x18(%rsp)
movsd  0x88(%rsp),%xmm0
call   1040 <exp@plt>
addsd  0xa79(%rip),%xmm0
movsd  0x18(%rsp),%xmm1
mulsd  0xe8(%rsp),%xmm1
mulsd  %xmm0,%xmm1
addsd  0x8(%rsp),%xmm1
movsd  %xmm1,0x18(%rsp)
movaps 0x60(%rsp),%xmm0
call   1040 <exp@plt>
movsd  %xmm0,0x10(%rsp)
movsd  0x80(%rsp),%xmm0
call   1040 <exp@plt>
addsd  0xa34(%rip),%xmm0
movsd  0x10(%rsp),%xmm1
mulsd  0x40(%rsp),%xmm1
mulsd  %xmm0,%xmm1
addsd  0x18(%rsp),%xmm1
movsd  %xmm1,0x10(%rsp)
movsd  0x128(%rsp),%xmm1
movsd  0x130(%rsp),%xmm0
addsd  %xmm0,%xmm1
movapd %xmm1,0xd0(%rsp)
movsd  0x9f9(%rip),%xmm0
divsd  %xmm1,%xmm0
movsd  %xmm0,0x18(%rsp)
movapd %xmm1,%xmm0
xorpd  0x9cb(%rip),%xmm0
mulsd  0x20(%rsp),%xmm0
call   1040 <exp@plt>
mulsd  0x18(%rsp),%xmm0
movsd  %xmm0,0x20(%rsp)
movapd 0xd0(%rsp),%xmm0
mulsd  0x8(%rsp),%xmm0
call   1040 <exp@plt>
addsd  0x9a8(%rip),%xmm0
mulsd  0x20(%rsp),%xmm0
addsd  0x10(%rsp),%xmm0
movsd  0x9a4(%rip),%xmm2
mulsd  0xc8(%rsp),%xmm2
movsd  0x50(%rsp),%xmm1
mulsd  %xmm1,%xmm2
mulsd  0x120(%rsp),%xmm2
movsd  0x128(%rsp),%xmm3
divsd  %xmm3,%xmm2
movsd  0x130(%rsp),%xmm3
divsd  %xmm3,%xmm2
mulsd  %xmm0,%xmm2
addsd  0x30(%rsp),%xmm2
movsd  %xmm2,0x10(%rsp)
divsd  %xmm3,%xmm1
movsd  %xmm1,0x50(%rsp)
movsd  0x48(%rsp),%xmm0
mulsd  0x118(%rsp),%xmm0
movsd  %xmm0,0x48(%rsp)
movapd 0xb0(%rsp),%xmm0
mulsd  0x8(%rsp),%xmm0
movapd %xmm0,0xb0(%rsp)
call   1040 <exp@plt>
movsd  0x912(%rip),%xmm1
subsd  %xmm0,%xmm1
mulsd  0x40(%rsp),%xmm1
addsd  0x8(%rsp),%xmm1
mulsd  0x48(%rsp),%xmm1
movsd  %xmm1,0x48(%rsp)
movaps 0x60(%rsp),%xmm0
call   1040 <exp@plt>
movsd  %xmm0,0x20(%rsp)
movsd  0x80(%rsp),%xmm0
call   1040 <exp@plt>
addsd  0x8c8(%rip),%xmm0
movsd  0x20(%rsp),%xmm1
mulsd  0x40(%rsp),%xmm1
mulsd  %xmm0,%xmm1
addsd  0x8(%rsp),%xmm1
movsd  %xmm1,0x20(%rsp)
movapd 0xb0(%rsp),%xmm0
call   1040 <exp@plt>
movsd  0x89e(%rip),%xmm1
subsd  %xmm0,%xmm1
mulsd  0x40(%rsp),%xmm1
addsd  0x20(%rsp),%xmm1
movsd  %xmm1,0x30(%rsp)
movapd 0x60(%rsp),%xmm0
call   1040 <exp@plt>
mulsd  0x90(%rsp),%xmm0
movsd  %xmm0,0x60(%rsp)
movsd  0x80(%rsp),%xmm0
call   1040 <exp@plt>
movaps %xmm0,0x20(%rsp)
movapd 0xb0(%rsp),%xmm0
call   1040 <exp@plt>
movapd 0x20(%rsp),%xmm1
subsd  %xmm0,%xmm1
mulsd  0x60(%rsp),%xmm1
addsd  0x30(%rsp),%xmm1
mulsd  0x50(%rsp),%xmm1
addsd  0x48(%rsp),%xmm1
movapd %xmm1,0x20(%rsp)
movaps 0xa0(%rsp),%xmm0
call   1040 <exp@plt>
movsd  %xmm0,0x60(%rsp)
movsd  0x88(%rsp),%xmm0
call   1040 <exp@plt>
addsd  0x7f4(%rip),%xmm0
movsd  0x60(%rsp),%xmm1
mulsd  0xe8(%rsp),%xmm1
mulsd  %xmm0,%xmm1
addsd  0x8(%rsp),%xmm1
movsd  %xmm1,0x60(%rsp)
movapd 0xb0(%rsp),%xmm0
call   1040 <exp@plt>
movsd  0x7c7(%rip),%xmm1
subsd  %xmm0,%xmm1
mulsd  0x40(%rsp),%xmm1
addsd  0x60(%rsp),%xmm1
movsd  %xmm1,0x8(%rsp)
movapd 0xa0(%rsp),%xmm0
call   1040 <exp@plt>
mulsd  0x18(%rsp),%xmm0
movsd  %xmm0,0x40(%rsp)
movsd  0x88(%rsp),%xmm0
call   1040 <exp@plt>
movsd  %xmm0,0xa0(%rsp)
movapd 0xb0(%rsp),%xmm0
call   1040 <exp@plt>
movsd  0xa0(%rsp),%xmm1
subsd  %xmm0,%xmm1
mulsd  0x40(%rsp),%xmm1
addsd  0x8(%rsp),%xmm1
movapd %xmm1,%xmm2
movsd  0xc8(%rsp),%xmm0
mulsd  0x120(%rsp),%xmm0
movsd  0x128(%rsp),%xmm1
divsd  %xmm1,%xmm0
mulsd  %xmm2,%xmm0
movapd 0x20(%rsp),%xmm1
subsd  %xmm0,%xmm1
mulsd  0x50(%rsp),%xmm1
movapd %xmm1,0x20(%rsp)
xorpd  %xmm0,%xmm0
movsd  0x10(%rsp),%xmm1
ucomisd %xmm0,%xmm1
jb     1918 <rq_pricing_miltersen_swartz+0x7c8>
movsd  0x10(%rsp),%xmm0
sqrtsd %xmm0,%xmm0
jmp    1923 <rq_pricing_miltersen_swartz+0x7d3>
movsd  0x10(%rsp),%xmm0
call   1070 <sqrt@plt>
movsd  %xmm0,0x8(%rsp)
movsd  0x78(%rsp),%xmm1
movsd  0x70(%rsp),%xmm0
divsd  %xmm1,%xmm0
movsd  %xmm0,0xb0(%rsp)
call   1050 <log@plt>
subsd  0x20(%rsp),%xmm0
movsd  0x10(%rsp),%xmm1
mulsd  0x6cd(%rip),%xmm1
movsd  %xmm1,0x10(%rsp)
addsd  %xmm1,%xmm0
divsd  0x8(%rsp),%xmm0
movapd %xmm0,0x50(%rsp)
movsd  0xb0(%rsp),%xmm0
call   1050 <log@plt>
movapd %xmm0,%xmm1
movapd 0x20(%rsp),%xmm0
subsd  %xmm0,%xmm1
subsd  0x10(%rsp),%xmm1
divsd  0x8(%rsp),%xmm1
test   %bx,%bx
je     19f4 <rq_pricing_miltersen_swartz+0x8a4>
xorpd  0x65a(%rip),%xmm0
movapd %xmm1,0x20(%rsp)
call   1040 <exp@plt>
mulsd  0x70(%rsp),%xmm0
movsd  %xmm0,0x8(%rsp)
movaps 0x50(%rsp),%xmm0
call   1030 <rq_pricing_cumul_norm_dist@plt>
movsd  %xmm0,0x50(%rsp)
movapd 0x20(%rsp),%xmm0
call   1030 <rq_pricing_cumul_norm_dist@plt>
mulsd  0x78(%rsp),%xmm0
movsd  0x50(%rsp),%xmm1
mulsd  0x8(%rsp),%xmm1
subsd  %xmm0,%xmm1
movapd %xmm1,%xmm0
jmp    1a59 <rq_pricing_miltersen_swartz+0x909>
movapd 0x604(%rip),%xmm0
xorpd  %xmm0,%xmm1
movapd %xmm1,%xmm0
call   1030 <rq_pricing_cumul_norm_dist@plt>
movsd  %xmm0,0x8(%rsp)
movaps 0x20(%rsp),%xmm0
xorps  0x5e5(%rip),%xmm0
call   1040 <exp@plt>
movsd  %xmm0,0x20(%rsp)
movapd 0x50(%rsp),%xmm0
xorpd  0x5cc(%rip),%xmm0
call   1030 <rq_pricing_cumul_norm_dist@plt>
movsd  0x20(%rsp),%xmm1
mulsd  0x70(%rsp),%xmm1
mulsd  %xmm0,%xmm1
movsd  0x78(%rsp),%xmm0
mulsd  0x8(%rsp),%xmm0
subsd  %xmm1,%xmm0
mulsd  0xf0(%rsp),%xmm0
add    $0xf8,%rsp
pop    %rbx
pop    %rbp
ret

LLVM IR (-O0):
define double @rq_pricing_miltersen_swartz(i16 signext %0, double %1, double %2, double %3, double %4, double %5, double %6, double %7, double %8, double %9, double %10, double %11, double %12, double %13) {
%15 = alloca i16
%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
store i16 %0, i16* %15
store double %1, double* %16
store double %2, double* %17
store double %3, double* %18
store double %4, double* %19
store double %5, double* %20
store double %6, double* %21
store double %7, double* %22
store double %8, double* %23
store double %9, double* %24
store double %10, double* %25
store double %11, double* %26
store double %12, double* %27
store double %13, double* %28
store double 0.000000e+00, double* %29
%35 = load double, double* %21
%36 = call i32 @pow(double %35, i32 2)
%37 = sitofp i32 %36 to double
%38 = load double, double* %19
%39 = load double, double* %21
%40 = fmul double 2.000000e+00, %39
%41 = load double, double* %23
%42 = load double, double* %25
%43 = fmul double %41, %42
%44 = fmul double %43, 1.000000e+00
%45 = load double, double* %28
%46 = fdiv double %44, %45
%47 = load double, double* %19
%48 = load double, double* %28
%49 = fdiv double 1.000000e+00, %48
%50 = load double, double* %28
%51 = fneg double %50
%52 = load double, double* %20
%53 = fmul double %51, %52
%54 = call double @exp(double %53)
%55 = fmul double %49, %54
%56 = load double, double* %28
%57 = load double, double* %19
%58 = fmul double %56, %57
%59 = call double @exp(double %58)
%60 = fsub double %59, 1.000000e+00
%61 = fneg double %55
%62 = call double @llvm.fmuladd.f64(double %61, double %60, double %47)
%63 = load double, double* %22
%64 = load double, double* %24
%65 = fmul double %63, %64
%66 = fmul double %65, 1.000000e+00
%67 = load double, double* %27
%68 = fdiv double %66, %67
%69 = load double, double* %19
%70 = load double, double* %27
%71 = fdiv double 1.000000e+00, %70
%72 = load double, double* %27
%73 = fneg double %72
%74 = load double, double* %20
%75 = fmul double %73, %74
%76 = call double @exp(double %75)
%77 = fmul double %71, %76
%78 = load double, double* %27
%79 = load double, double* %19
%80 = fmul double %78, %79
%81 = call double @exp(double %80)
%82 = fsub double %81, 1.000000e+00
%83 = fneg double %77
%84 = call double @llvm.fmuladd.f64(double %83, double %82, double %69)
%85 = fmul double %68, %84
%86 = fneg double %85
%87 = call double @llvm.fmuladd.f64(double %46, double %62, double %86)
%88 = fmul double %40, %87
%89 = call double @llvm.fmuladd.f64(double %37, double %38, double %88)
%90 = load double, double* %22
%91 = call i32 @pow(double %90, i32 2)
%92 = mul nsw i32 %91, 1
%93 = load double, double* %27
%94 = call i32 @pow(double %93, i32 2)
%95 = sdiv i32 %92, %94
%96 = sitofp i32 %95 to double
%97 = load double, double* %19
%98 = load double, double* %27
%99 = fmul double 2.000000e+00, %98
%100 = fdiv double 1.000000e+00, %99
%101 = load double, double* %27
%102 = fmul double -2.000000e+00, %101
%103 = load double, double* %20
%104 = fmul double %102, %103
%105 = call double @exp(double %104)
%106 = fmul double %100, %105
%107 = load double, double* %27
%108 = fmul double 2.000000e+00, %107
%109 = load double, double* %19
%110 = fmul double %108, %109
%111 = call double @exp(double %110)
%112 = fsub double %111, 1.000000e+00
%113 = call double @llvm.fmuladd.f64(double %106, double %112, double %97)
%114 = load double, double* %27
%115 = fdiv double 2.000000e+00, %114
%116 = load double, double* %27
%117 = fneg double %116
%118 = load double, double* %20
%119 = fmul double %117, %118
%120 = call double @exp(double %119)
%121 = fmul double %115, %120
%122 = load double, double* %27
%123 = load double, double* %19
%124 = fmul double %122, %123
%125 = call double @exp(double %124)
%126 = fsub double %125, 1.000000e+00
%127 = fneg double %121
%128 = call double @llvm.fmuladd.f64(double %127, double %126, double %113)
%129 = call double @llvm.fmuladd.f64(double %96, double %128, double %89)
%130 = load double, double* %23
%131 = call i32 @pow(double %130, i32 2)
%132 = mul nsw i32 %131, 1
%133 = load double, double* %28
%134 = call i32 @pow(double %133, i32 2)
%135 = sdiv i32 %132, %134
%136 = sitofp i32 %135 to double
%137 = load double, double* %19
%138 = load double, double* %28
%139 = fmul double 2.000000e+00, %138
%140 = fdiv double 1.000000e+00, %139
%141 = load double, double* %28
%142 = fmul double -2.000000e+00, %141
%143 = load double, double* %20
%144 = fmul double %142, %143
%145 = call double @exp(double %144)
%146 = fmul double %140, %145
%147 = load double, double* %28
%148 = fmul double 2.000000e+00, %147
%149 = load double, double* %19
%150 = fmul double %148, %149
%151 = call double @exp(double %150)
%152 = fsub double %151, 1.000000e+00
%153 = call double @llvm.fmuladd.f64(double %146, double %152, double %137)
%154 = load double, double* %28
%155 = fdiv double 2.000000e+00, %154
%156 = load double, double* %28
%157 = fneg double %156
%158 = load double, double* %20
%159 = fmul double %157, %158
%160 = call double @exp(double %159)
%161 = fmul double %155, %160
%162 = load double, double* %28
%163 = load double, double* %19
%164 = fmul double %162, %163
%165 = call double @exp(double %164)
%166 = fsub double %165, 1.000000e+00
%167 = fneg double %161
%168 = call double @llvm.fmuladd.f64(double %167, double %166, double %153)
%169 = call double @llvm.fmuladd.f64(double %136, double %168, double %129)
%170 = load double, double* %22
%171 = fmul double 2.000000e+00, %170
%172 = load double, double* %23
%173 = fmul double %171, %172
%174 = load double, double* %26
%175 = fmul double %173, %174
%176 = fmul double %175, 1.000000e+00
%177 = load double, double* %27
%178 = fdiv double %176, %177
%179 = fmul double %178, 1.000000e+00
%180 = load double, double* %28
%181 = fdiv double %179, %180
%182 = load double, double* %19
%183 = load double, double* %27
%184 = fdiv double 1.000000e+00, %183
%185 = load double, double* %27
%186 = fneg double %185
%187 = load double, double* %20
%188 = fmul double %186, %187
%189 = call double @exp(double %188)
%190 = fmul double %184, %189
%191 = load double, double* %27
%192 = load double, double* %19
%193 = fmul double %191, %192
%194 = call double @exp(double %193)
%195 = fsub double %194, 1.000000e+00
%196 = fneg double %190
%197 = call double @llvm.fmuladd.f64(double %196, double %195, double %182)
%198 = load double, double* %28
%199 = fdiv double 1.000000e+00, %198
%200 = load double, double* %28
%201 = fneg double %200
%202 = load double, double* %20
%203 = fmul double %201, %202
%204 = call double @exp(double %203)
%205 = fmul double %199, %204
%206 = load double, double* %28
%207 = load double, double* %19
%208 = fmul double %206, %207
%209 = call double @exp(double %208)
%210 = fsub double %209, 1.000000e+00
%211 = fneg double %205
%212 = call double @llvm.fmuladd.f64(double %211, double %210, double %197)
%213 = load double, double* %27
%214 = load double, double* %28
%215 = fadd double %213, %214
%216 = fdiv double 1.000000e+00, %215
%217 = load double, double* %27
%218 = load double, double* %28
%219 = fadd double %217, %218
%220 = fneg double %219
%221 = load double, double* %20
%222 = fmul double %220, %221
%223 = call double @exp(double %222)
%224 = fmul double %216, %223
%225 = load double, double* %27
%226 = load double, double* %28
%227 = fadd double %225, %226
%228 = load double, double* %19
%229 = fmul double %227, %228
%230 = call double @exp(double %229)
%231 = fsub double %230, 1.000000e+00
%232 = call double @llvm.fmuladd.f64(double %224, double %231, double %212)
%233 = fneg double %181
%234 = call double @llvm.fmuladd.f64(double %233, double %232, double %169)
store double %234, double* %30
%235 = load double, double* %23
%236 = fmul double %235, 1.000000e+00
%237 = load double, double* %28
%238 = fdiv double %236, %237
%239 = load double, double* %21
%240 = load double, double* %25
%241 = fmul double %239, %240
%242 = load double, double* %19
%243 = load double, double* %28
%244 = fdiv double 1.000000e+00, %243
%245 = load double, double* %28
%246 = fneg double %245
%247 = load double, double* %19
%248 = fmul double %246, %247
%249 = call double @exp(double %248)
%250 = fsub double 1.000000e+00, %249
%251 = fneg double %244
%252 = call double @llvm.fmuladd.f64(double %251, double %250, double %242)
%253 = load double, double* %23
%254 = fmul double %253, 1.000000e+00
%255 = load double, double* %28
%256 = fdiv double %254, %255
%257 = load double, double* %19
%258 = load double, double* %28
%259 = fdiv double 1.000000e+00, %258
%260 = load double, double* %28
%261 = fneg double %260
%262 = load double, double* %20
%263 = fmul double %261, %262
%264 = call double @exp(double %263)
%265 = fmul double %259, %264
%266 = load double, double* %28
%267 = load double, double* %19
%268 = fmul double %266, %267
%269 = call double @exp(double %268)
%270 = fsub double %269, 1.000000e+00
%271 = fneg double %265
%272 = call double @llvm.fmuladd.f64(double %271, double %270, double %257)
%273 = load double, double* %28
%274 = fdiv double 1.000000e+00, %273
%275 = load double, double* %28
%276 = fneg double %275
%277 = load double, double* %19
%278 = fmul double %276, %277
%279 = call double @exp(double %278)
%280 = fsub double 1.000000e+00, %279
%281 = fneg double %274
%282 = call double @llvm.fmuladd.f64(double %281, double %280, double %272)
%283 = load double, double* %28
%284 = fmul double 2.000000e+00, %283
%285 = fdiv double 1.000000e+00, %284
%286 = load double, double* %28
%287 = fneg double %286
%288 = load double, double* %20
%289 = fmul double %287, %288
%290 = call double @exp(double %289)
%291 = fmul double %285, %290
%292 = load double, double* %28
%293 = load double, double* %19
%294 = fmul double %292, %293
%295 = call double @exp(double %294)
%296 = load double, double* %28
%297 = fneg double %296
%298 = load double, double* %19
%299 = fmul double %297, %298
%300 = call double @exp(double %299)
%301 = fsub double %295, %300
%302 = call double @llvm.fmuladd.f64(double %291, double %301, double %282)
%303 = fmul double %256, %302
%304 = call double @llvm.fmuladd.f64(double %241, double %252, double %303)
%305 = load double, double* %22
%306 = load double, double* %26
%307 = fmul double %305, %306
%308 = fmul double %307, 1.000000e+00
%309 = load double, double* %27
%310 = fdiv double %308, %309
%311 = load double, double* %19
%312 = load double, double* %27
%313 = fdiv double 1.000000e+00, %312
%314 = load double, double* %27
%315 = fneg double %314
%316 = load double, double* %20
%317 = fmul double %315, %316
%318 = call double @exp(double %317)
%319 = fmul double %313, %318
%320 = load double, double* %27
%321 = load double, double* %19
%322 = fmul double %320, %321
%323 = call double @exp(double %322)
%324 = fsub double %323, 1.000000e+00
%325 = fneg double %319
%326 = call double @llvm.fmuladd.f64(double %325, double %324, double %311)
%327 = load double, double* %28
%328 = fdiv double 1.000000e+00, %327
%329 = load double, double* %28
%330 = fneg double %329
%331 = load double, double* %19
%332 = fmul double %330, %331
%333 = call double @exp(double %332)
%334 = fsub double 1.000000e+00, %333
%335 = fneg double %328
%336 = call double @llvm.fmuladd.f64(double %335, double %334, double %326)
%337 = load double, double* %27
%338 = load double, double* %28
%339 = fadd double %337, %338
%340 = fdiv double 1.000000e+00, %339
%341 = load double, double* %27
%342 = fneg double %341
%343 = load double, double* %20
%344 = fmul double %342, %343
%345 = call double @exp(double %344)
%346 = fmul double %340, %345
%347 = load double, double* %27
%348 = load double, double* %19
%349 = fmul double %347, %348
%350 = call double @exp(double %349)
%351 = load double, double* %28
%352 = fneg double %351
%353 = load double, double* %19
%354 = fmul double %352, %353
%355 = call double @exp(double %354)
%356 = fsub double %350, %355
%357 = call double @llvm.fmuladd.f64(double %346, double %356, double %336)
%358 = fneg double %310
%359 = call double @llvm.fmuladd.f64(double %358, double %357, double %304)
%360 = fmul double %238, %359
store double %360, double* %31
%361 = load double, double* %30
%362 = call double @sqrt(double %361)
store double %362, double* %32
%363 = load double, double* %17
%364 = load double, double* %18
%365 = fdiv double %363, %364
%366 = call double @log(double %365)
%367 = load double, double* %31
%368 = fsub double %366, %367
%369 = load double, double* %30
%370 = fdiv double %369, 2.000000e+00
%371 = fadd double %368, %370
%372 = load double, double* %32
%373 = fdiv double %371, %372
store double %373, double* %33
%374 = load double, double* %17
%375 = load double, double* %18
%376 = fdiv double %374, %375
%377 = call double @log(double %376)
%378 = load double, double* %31
%379 = fsub double %377, %378
%380 = load double, double* %30
%381 = fdiv double %380, 2.000000e+00
%382 = fsub double %379, %381
%383 = load double, double* %32
%384 = fdiv double %382, %383
store double %384, double* %34
%385 = load i16, i16* %15
%386 = icmp ne i16 %385, 0
br i1 %386, label %387, label %403
387: ; preds = %14
%388 = load double, double* %16
%389 = load double, double* %17
%390 = load double, double* %31
%391 = fneg double %390
%392 = call double @exp(double %391)
%393 = fmul double %389, %392
%394 = load double, double* %33
%395 = call double @rq_pricing_cumul_norm_dist(double %394)
%396 = load double, double* %18
%397 = load double, double* %34
%398 = call double @rq_pricing_cumul_norm_dist(double %397)
%399 = fmul double %396, %398
%400 = fneg double %399
%401 = call double @llvm.fmuladd.f64(double %393, double %395, double %400)
%402 = fmul double %388, %401
store double %402, double* %29
br label %421
403: ; preds = %14
%404 = load double, double* %16
%405 = load double, double* %18
%406 = load double, double* %34
%407 = fneg double %406
%408 = call double @rq_pricing_cumul_norm_dist(double %407)
%409 = load double, double* %17
%410 = load double, double* %31
%411 = fneg double %410
%412 = call double @exp(double %411)
%413 = fmul double %409, %412
%414 = load double, double* %33
%415 = fneg double %414
%416 = call double @rq_pricing_cumul_norm_dist(double %415)
%417 = fmul double %413, %416
%418 = fneg double %417
%419 = call double @llvm.fmuladd.f64(double %405, double %408, double %418)
%420 = fmul double %404, %419
store double %420, double* %29
br label %421
421: ; preds = %403, %387
%422 = load double, double* %29
ret double %422
}

LLVM IR (-O2):
define double @rq_pricing_miltersen_swartz(i16 signext %0, double %1, double %2, double %3, double %4, double %5, double %6, double %7, double %8, double %9, double %10, double %11, double %12, double %13) {
%15 = tail call i32 @pow(double %6, i32 2)
%16 = sitofp i32 %15 to double
%17 = fmul double %6, 2.000000e+00
%18 = fmul double %8, %10
%19 = fdiv double %18, %13
%20 = fneg double %13
%21 = fmul double %20, %5
%22 = tail call double @exp(double %21)
%23 = fmul double %4, %13
%24 = tail call double @exp(double %23)
%25 = fadd double %24, -1.000000e+00
%26 = fdiv double -1.000000e+00, %13
%27 = fmul double %26, %22
%28 = tail call double @llvm.fmuladd.f64(double %27, double %25, double %4)
%29 = fneg double %12
%30 = fmul double %29, %5
%31 = tail call double @exp(double %30)
%32 = fmul double %4, %12
%33 = tail call double @exp(double %32)
%34 = fadd double %33, -1.000000e+00
%35 = fdiv double -1.000000e+00, %12
%36 = fmul double %35, %31
%37 = tail call double @llvm.fmuladd.f64(double %36, double %34, double %4)
%38 = fneg double %7
%39 = fmul double %38, %9
%40 = fdiv double %39, %12
%41 = fmul double %40, %37
%42 = tail call double @llvm.fmuladd.f64(double %19, double %28, double %41)
%43 = fmul double %17, %42
%44 = tail call double @llvm.fmuladd.f64(double %16, double %4, double %43)
%45 = tail call i32 @pow(double %7, i32 2)
%46 = tail call i32 @pow(double %12, i32 2)
%47 = sdiv i32 %45, %46
%48 = sitofp i32 %47 to double
%49 = fmul double %12, 2.000000e+00
%50 = fdiv double 1.000000e+00, %49
%51 = fmul double %12, -2.000000e+00
%52 = fmul double %51, %5
%53 = tail call double @exp(double %52)
%54 = fmul double %50, %53
%55 = fmul double %49, %4
%56 = tail call double @exp(double %55)
%57 = fadd double %56, -1.000000e+00
%58 = tail call double @llvm.fmuladd.f64(double %54, double %57, double %4)
%59 = tail call double @exp(double %30)
%60 = tail call double @exp(double %32)
%61 = fadd double %60, -1.000000e+00
%62 = fdiv double -2.000000e+00, %12
%63 = fmul double %62, %59
%64 = tail call double @llvm.fmuladd.f64(double %63, double %61, double %58)
%65 = tail call double @llvm.fmuladd.f64(double %48, double %64, double %44)
%66 = tail call i32 @pow(double %8, i32 2)
%67 = tail call i32 @pow(double %13, i32 2)
%68 = sdiv i32 %66, %67
%69 = sitofp i32 %68 to double
%70 = fmul double %13, 2.000000e+00
%71 = fdiv double 1.000000e+00, %70
%72 = fmul double %13, -2.000000e+00
%73 = fmul double %72, %5
%74 = tail call double @exp(double %73)
%75 = fmul double %71, %74
%76 = fmul double %70, %4
%77 = tail call double @exp(double %76)
%78 = fadd double %77, -1.000000e+00
%79 = tail call double @llvm.fmuladd.f64(double %75, double %78, double %4)
%80 = tail call double @exp(double %21)
%81 = tail call double @exp(double %23)
%82 = fadd double %81, -1.000000e+00
%83 = fdiv double -2.000000e+00, %13
%84 = fmul double %83, %80
%85 = tail call double @llvm.fmuladd.f64(double %84, double %82, double %79)
%86 = tail call double @llvm.fmuladd.f64(double %69, double %85, double %65)
%87 = tail call double @exp(double %30)
%88 = tail call double @exp(double %32)
%89 = fadd double %88, -1.000000e+00
%90 = fmul double %35, %87
%91 = tail call double @llvm.fmuladd.f64(double %90, double %89, double %4)
%92 = tail call double @exp(double %21)
%93 = tail call double @exp(double %23)
%94 = fadd double %93, -1.000000e+00
%95 = fmul double %26, %92
%96 = tail call double @llvm.fmuladd.f64(double %95, double %94, double %91)
%97 = fadd double %12, %13
%98 = fdiv double 1.000000e+00, %97
%99 = fneg double %97
%100 = fmul double %99, %5
%101 = tail call double @exp(double %100)
%102 = fmul double %98, %101
%103 = fmul double %97, %4
%104 = tail call double @exp(double %103)
%105 = fadd double %104, -1.000000e+00
%106 = tail call double @llvm.fmuladd.f64(double %102, double %105, double %96)
%107 = fmul double %7, -2.000000e+00
%108 = fmul double %107, %8
%109 = fmul double %108, %11
%110 = fdiv double %109, %12
%111 = fdiv double %110, %13
%112 = tail call double @llvm.fmuladd.f64(double %111, double %106, double %86)
%113 = fdiv double %8, %13
%114 = fmul double %6, %10
%115 = fmul double %20, %4
%116 = tail call double @exp(double %115)
%117 = fsub double 1.000000e+00, %116
%118 = tail call double @llvm.fmuladd.f64(double %26, double %117, double %4)
%119 = tail call double @exp(double %21)
%120 = tail call double @exp(double %23)
%121 = fadd double %120, -1.000000e+00
%122 = fmul double %26, %119
%123 = tail call double @llvm.fmuladd.f64(double %122, double %121, double %4)
%124 = tail call double @exp(double %115)
%125 = fsub double 1.000000e+00, %124
%126 = tail call double @llvm.fmuladd.f64(double %26, double %125, double %123)
%127 = tail call double @exp(double %21)
%128 = fmul double %71, %127
%129 = tail call double @exp(double %23)
%130 = tail call double @exp(double %115)
%131 = fsub double %129, %130
%132 = tail call double @llvm.fmuladd.f64(double %128, double %131, double %126)
%133 = fmul double %113, %132
%134 = tail call double @llvm.fmuladd.f64(double %114, double %118, double %133)
%135 = tail call double @exp(double %30)
%136 = tail call double @exp(double %32)
%137 = fadd double %136, -1.000000e+00
%138 = fmul double %35, %135
%139 = tail call double @llvm.fmuladd.f64(double %138, double %137, double %4)
%140 = tail call double @exp(double %115)
%141 = fsub double 1.000000e+00, %140
%142 = tail call double @llvm.fmuladd.f64(double %26, double %141, double %139)
%143 = tail call double @exp(double %30)
%144 = fmul double %98, %143
%145 = tail call double @exp(double %32)
%146 = tail call double @exp(double %115)
%147 = fsub double %145, %146
%148 = tail call double @llvm.fmuladd.f64(double %144, double %147, double %142)
%149 = fmul double %38, %11
%150 = fdiv double %149, %12
%151 = tail call double @llvm.fmuladd.f64(double %150, double %148, double %134)
%152 = fmul double %113, %151
%153 = tail call double @sqrt(double %112)
%154 = fdiv double %2, %3
%155 = tail call double @log(double %154)
%156 = fsub double %155, %152
%157 = fmul double %112, 5.000000e-01
%158 = fadd double %157, %156
%159 = fdiv double %158, %153
%160 = tail call double @log(double %154)
%161 = fsub double %160, %152
%162 = fsub double %161, %157
%163 = fdiv double %162, %153
%164 = icmp eq i16 %0, 0
br i1 %164, label %174, label %165
165: ; preds = %14
%166 = fneg double %152
%167 = tail call double @exp(double %166)
%168 = fmul double %167, %2
%169 = tail call double @rq_pricing_cumul_norm_dist(double %159)
%170 = tail call double @rq_pricing_cumul_norm_dist(double %163)
%171 = fneg double %170
%172 = fmul double %171, %3
%173 = tail call double @llvm.fmuladd.f64(double %168, double %169, double %172)
br label %185
174: ; preds = %14
%175 = fneg double %163
%176 = tail call double @rq_pricing_cumul_norm_dist(double %175)
%177 = fneg double %152
%178 = tail call double @exp(double %177)
%179 = fneg double %159
%180 = tail call double @rq_pricing_cumul_norm_dist(double %179)
%181 = fneg double %178
%182 = fmul double %181, %2
%183 = fmul double %182, %180
%184 = tail call double @llvm.fmuladd.f64(double %3, double %176, double %183)
br label %185
185: ; preds = %174, %165
%186 = phi double [ %173, %165 ], [ %184, %174 ]
%187 = fmul double %186, %1
ret double %187
}