#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);
double rq_pricing_cumul_norm_dist(int);
double sqrt(double);
double rq_pricing_extreme_spread(int call, int extreme_spread, double S,
                                 double S_min, double S_max, double t1,
                                 double T, double r, double rf, double v) {
  double m;
  double Mo;
  double mu1;
  double mu;
  int kappa;
  int eta;
  double ret = 0.0;
  double b = r - rf;
  if (call)
    eta = 1;
  else
    eta = -1;
  if (extreme_spread)
    kappa = 1;
  else
    kappa = -1;
  if (kappa * eta == 1)
    Mo = S_max;
  else if (kappa * eta == -1)
    Mo = S_min;
  mu1 = b - (v * v) / 2;
  mu = mu1 + (v * v);
  m = log(Mo / S);
  if (kappa == 1)
    ret =
        eta *
        (S * exp((b - r) * T) * (1 + (v * v) / (2 * b)) *
             rq_pricing_cumul_norm_dist(eta * (-m + mu * T) / (v * sqrt(T))) -
         exp(-r * (T - t1)) * S * exp((b - r) * T) * (1 + (v * v) / (2 * b)) *
             rq_pricing_cumul_norm_dist(eta * (-m + mu * t1) / (v * sqrt(t1))) +
         exp(-r * T) * Mo *
             rq_pricing_cumul_norm_dist(eta * (m - mu1 * T) / (v * sqrt(T))) -
         exp(-r * T) * Mo * (v * v) / (2 * b) * exp(2 * mu1 * m / (v * v)) *
             rq_pricing_cumul_norm_dist(eta * (-m - mu1 * T) / (v * sqrt(T))) -
         exp(-r * T) * Mo *
             rq_pricing_cumul_norm_dist(eta * (m - mu1 * t1) / (v * sqrt(t1))) +
         exp(-r * T) * Mo * (v * v) / (2 * b) * exp(2 * mu1 * m / (v * v)) *
             rq_pricing_cumul_norm_dist(eta * (-m - mu1 * t1) /
                                        (v * sqrt(t1))));
  else if (kappa == -1)
    ret =
        -eta *
        (S * exp((b - r) * T) * (1 + (v * v) / (2 * b)) *
             rq_pricing_cumul_norm_dist(eta * (m - mu * T) / (v * sqrt(T))) +
         exp(-r * T) * Mo *
             rq_pricing_cumul_norm_dist(eta * (-m + mu1 * T) / (v * sqrt(T))) -
         exp(-r * T) * Mo * (v * v) / (2 * b) * exp(2 * mu1 * m / (v * v)) *
             rq_pricing_cumul_norm_dist(eta * (m + mu1 * T) / (v * sqrt(T))) -
         S * exp((b - r) * T) * (1 + (v * v) / (2 * b)) *
             rq_pricing_cumul_norm_dist(eta * (-mu * (T - t1)) /
                                        (v * sqrt(T - t1))) -
         exp(-r * (T - t1)) * S * exp((b - r) * T) * (1 - (v * v) / (2 * b)) *
             rq_pricing_cumul_norm_dist(eta * (mu1 * (T - t1)) /
                                        (v * sqrt(T - t1))));
  return ret;
}


x86 assembly (clang, -O0):
<rq_pricing_extreme_spread>:
push   %rbp
mov    %rsp,%rbp
sub    $0x220,%rsp
mov    %edi,-0x4(%rbp)
mov    %esi,-0x8(%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,-0x78(%rbp)
movsd  -0x38(%rbp),%xmm0
subsd  -0x40(%rbp),%xmm0
movsd  %xmm0,-0x80(%rbp)
cmpl   $0x0,-0x4(%rbp)
je     11a6 <rq_pricing_extreme_spread+0x66>
movl   $0x1,-0x70(%rbp)
jmp    11ad <rq_pricing_extreme_spread+0x6d>
movl   $0xffffffff,-0x70(%rbp)
cmpl   $0x0,-0x8(%rbp)
je     11c3 <rq_pricing_extreme_spread+0x83>
movl   $0x1,-0x6c(%rbp)
jmp    11ca <rq_pricing_extreme_spread+0x8a>
movl   $0xffffffff,-0x6c(%rbp)
mov    -0x6c(%rbp),%eax
imul   -0x70(%rbp),%eax
cmp    $0x1,%eax
jne    11e9 <rq_pricing_extreme_spread+0xa9>
movsd  -0x20(%rbp),%xmm0
movsd  %xmm0,-0x58(%rbp)
jmp    1208 <rq_pricing_extreme_spread+0xc8>
mov    -0x6c(%rbp),%eax
imul   -0x70(%rbp),%eax
cmp    $0xffffffff,%eax
jne    1203 <rq_pricing_extreme_spread+0xc3>
movsd  -0x18(%rbp),%xmm0
movsd  %xmm0,-0x58(%rbp)
jmp    1208 <rq_pricing_extreme_spread+0xc8>
movsd  -0x80(%rbp),%xmm0
movsd  -0x48(%rbp),%xmm1
mulsd  -0x48(%rbp),%xmm1
movsd  0xde1(%rip),%xmm2
divsd  %xmm2,%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x60(%rbp)
movsd  -0x60(%rbp),%xmm1
movsd  -0x48(%rbp),%xmm0
movsd  -0x48(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  -0x58(%rbp),%xmm0
divsd  -0x10(%rbp),%xmm0
call   1050 <log@plt>
movsd  %xmm0,-0x50(%rbp)
cmpl   $0x1,-0x6c(%rbp)
jne    190a <rq_pricing_extreme_spread+0x7ca>
cvtsi2sdl -0x70(%rbp),%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
movsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0x160(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
subsd  -0x38(%rbp),%xmm0
mulsd  -0x30(%rbp),%xmm0
call   1040 <exp@plt>
movaps %xmm0,%xmm1
movsd  -0x160(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  -0x48(%rbp),%xmm2
mulsd  -0x48(%rbp),%xmm2
movsd  0xd4b(%rip),%xmm1
mulsd  -0x80(%rbp),%xmm1
divsd  %xmm1,%xmm2
movsd  0xd42(%rip),%xmm1
addsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x120(%rbp)
ff
cvtsi2sdl -0x70(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
movsd  -0x68(%rbp),%xmm1
movsd  -0x30(%rbp),%xmm3
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x150(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  %xmm0,-0x158(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
call   1060 <sqrt@plt>
movsd  -0x158(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x150(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
divsd  %xmm1,%xmm0
cvttsd2si %xmm0,%edi
call   1030 <rq_pricing_cumul_norm_dist@plt>
movsd  %xmm0,-0x128(%rbp)
ff
movsd  -0x38(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  -0x30(%rbp),%xmm1
subsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
call   1040 <exp@plt>
mulsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0x148(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
subsd  -0x38(%rbp),%xmm0
mulsd  -0x30(%rbp),%xmm0
call   1040 <exp@plt>
movaps %xmm0,%xmm1
movsd  -0x148(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  -0x48(%rbp),%xmm2
mulsd  -0x48(%rbp),%xmm2
movsd  0xc37(%rip),%xmm1
mulsd  -0x80(%rbp),%xmm1
divsd  %xmm1,%xmm2
movsd  0xc2e(%rip),%xmm1
addsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x130(%rbp)
ff
cvtsi2sdl -0x70(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
movsd  -0x68(%rbp),%xmm1
movsd  -0x28(%rbp),%xmm3
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x138(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  %xmm0,-0x140(%rbp)
ff
movsd  -0x28(%rbp),%xmm0
call   1060 <sqrt@plt>
movsd  -0x140(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x138(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
divsd  %xmm1,%xmm0
cvttsd2si %xmm0,%edi
call   1030 <rq_pricing_cumul_norm_dist@plt>
movsd  -0x130(%rbp),%xmm1
ff
movsd  -0x128(%rbp),%xmm2
ff
movaps %xmm0,%xmm3
movsd  -0x120(%rbp),%xmm0
ff
mulsd  %xmm3,%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x108(%rbp)
ff
movsd  -0x38(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  -0x30(%rbp),%xmm0
call   1040 <exp@plt>
mulsd  -0x58(%rbp),%xmm0
movsd  %xmm0,-0x100(%rbp)
ff
cvtsi2sdl -0x70(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0x60(%rbp),%xmm1
movsd  -0x30(%rbp),%xmm3
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x110(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  %xmm0,-0x118(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
call   1060 <sqrt@plt>
movsd  -0x118(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x110(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
divsd  %xmm1,%xmm0
cvttsd2si %xmm0,%edi
call   1030 <rq_pricing_cumul_norm_dist@plt>
movsd  -0x108(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x100(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  -0x38(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  -0x30(%rbp),%xmm0
call   1040 <exp@plt>
mulsd  -0x58(%rbp),%xmm0
movsd  -0x48(%rbp),%xmm1
mulsd  -0x48(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xa45(%rip),%xmm1
mulsd  -0x80(%rbp),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0xf8(%rbp)
ff
movsd  0xa2c(%rip),%xmm0
mulsd  -0x60(%rbp),%xmm0
mulsd  -0x50(%rbp),%xmm0
movsd  -0x48(%rbp),%xmm1
mulsd  -0x48(%rbp),%xmm1
divsd  %xmm1,%xmm0
call   1040 <exp@plt>
movaps %xmm0,%xmm1
movsd  -0xf8(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
cvtsi2sdl -0x70(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
movsd  -0x60(%rbp),%xmm1
movsd  -0x30(%rbp),%xmm3
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  %xmm0,-0xf0(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
call   1060 <sqrt@plt>
movsd  -0xf0(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0xe8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
divsd  %xmm1,%xmm0
cvttsd2si %xmm0,%edi
call   1030 <rq_pricing_cumul_norm_dist@plt>
movsd  -0xe0(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0xd8(%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  -0x38(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  -0x30(%rbp),%xmm0
call   1040 <exp@plt>
mulsd  -0x58(%rbp),%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
cvtsi2sdl -0x70(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0x60(%rbp),%xmm1
movsd  -0x28(%rbp),%xmm3
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  -0x28(%rbp),%xmm0
call   1060 <sqrt@plt>
movsd  -0xd0(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0xc8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
divsd  %xmm1,%xmm0
cvttsd2si %xmm0,%edi
call   1030 <rq_pricing_cumul_norm_dist@plt>
movsd  -0xc0(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0xb8(%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  -0x38(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  -0x30(%rbp),%xmm0
call   1040 <exp@plt>
mulsd  -0x58(%rbp),%xmm0
movsd  -0x48(%rbp),%xmm1
mulsd  -0x48(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0x805(%rip),%xmm1
mulsd  -0x80(%rbp),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  0x7ec(%rip),%xmm0
mulsd  -0x60(%rbp),%xmm0
mulsd  -0x50(%rbp),%xmm0
movsd  -0x48(%rbp),%xmm1
mulsd  -0x48(%rbp),%xmm1
divsd  %xmm1,%xmm0
call   1040 <exp@plt>
movaps %xmm0,%xmm1
movsd  -0xb0(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
cvtsi2sdl -0x70(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
movsd  -0x60(%rbp),%xmm1
movsd  -0x28(%rbp),%xmm3
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0x28(%rbp),%xmm0
call   1060 <sqrt@plt>
movsd  -0xa8(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0xa0(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
divsd  %xmm1,%xmm0
cvttsd2si %xmm0,%edi
call   1030 <rq_pricing_cumul_norm_dist@plt>
movsd  -0x98(%rbp),%xmm1
ff
movsd  -0x90(%rbp),%xmm2
ff
movaps %xmm0,%xmm3
movsd  -0x88(%rbp),%xmm0
ff
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x78(%rbp)
jmp    1e67 <rq_pricing_extreme_spread+0xd27>
cmpl   $0xffffffff,-0x6c(%rbp)
jne    1e62 <rq_pricing_extreme_spread+0xd22>
xor    %eax,%eax
sub    -0x70(%rbp),%eax
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x168(%rbp)
ff
movsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0x220(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
subsd  -0x38(%rbp),%xmm0
mulsd  -0x30(%rbp),%xmm0
call   1040 <exp@plt>
movaps %xmm0,%xmm1
movsd  -0x220(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  -0x48(%rbp),%xmm2
mulsd  -0x48(%rbp),%xmm2
movsd  0x699(%rip),%xmm1
mulsd  -0x80(%rbp),%xmm1
divsd  %xmm1,%xmm2
movsd  0x690(%rip),%xmm1
addsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x1e8(%rbp)
ff
cvtsi2sdl -0x70(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0x68(%rbp),%xmm1
movsd  -0x30(%rbp),%xmm3
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x210(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  %xmm0,-0x218(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
call   1060 <sqrt@plt>
movsd  -0x218(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x210(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
divsd  %xmm1,%xmm0
cvttsd2si %xmm0,%edi
call   1030 <rq_pricing_cumul_norm_dist@plt>
movsd  %xmm0,-0x1f0(%rbp)
ff
movsd  -0x38(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  -0x30(%rbp),%xmm0
call   1040 <exp@plt>
mulsd  -0x58(%rbp),%xmm0
movsd  %xmm0,-0x1f8(%rbp)
ff
cvtsi2sdl -0x70(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
movsd  -0x60(%rbp),%xmm1
movsd  -0x30(%rbp),%xmm3
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x200(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  %xmm0,-0x208(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
call   1060 <sqrt@plt>
movsd  -0x208(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x200(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
divsd  %xmm1,%xmm0
cvttsd2si %xmm0,%edi
call   1030 <rq_pricing_cumul_norm_dist@plt>
movsd  -0x1f8(%rbp),%xmm1
ff
movsd  -0x1f0(%rbp),%xmm2
ff
movaps %xmm0,%xmm3
movsd  -0x1e8(%rbp),%xmm0
ff
mulsd  %xmm3,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x1c8(%rbp)
ff
movsd  -0x38(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  -0x30(%rbp),%xmm0
call   1040 <exp@plt>
mulsd  -0x58(%rbp),%xmm0
movsd  -0x48(%rbp),%xmm1
mulsd  -0x48(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0x4d9(%rip),%xmm1
mulsd  -0x80(%rbp),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x1e0(%rbp)
ff
movsd  0x4c0(%rip),%xmm0
mulsd  -0x60(%rbp),%xmm0
mulsd  -0x50(%rbp),%xmm0
movsd  -0x48(%rbp),%xmm1
mulsd  -0x48(%rbp),%xmm1
divsd  %xmm1,%xmm0
call   1040 <exp@plt>
movaps %xmm0,%xmm1
movsd  -0x1e0(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x1c0(%rbp)
ff
cvtsi2sdl -0x70(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0x60(%rbp),%xmm1
movsd  -0x30(%rbp),%xmm3
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x1d0(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  %xmm0,-0x1d8(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
call   1060 <sqrt@plt>
movsd  -0x1d8(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x1d0(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
divsd  %xmm1,%xmm0
cvttsd2si %xmm0,%edi
call   1030 <rq_pricing_cumul_norm_dist@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,-0x1a0(%rbp)
ff
movsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0x1b8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
subsd  -0x38(%rbp),%xmm0
mulsd  -0x30(%rbp),%xmm0
call   1040 <exp@plt>
movaps %xmm0,%xmm1
movsd  -0x1b8(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  -0x48(%rbp),%xmm2
mulsd  -0x48(%rbp),%xmm2
movsd  0x3ad(%rip),%xmm1
mulsd  -0x80(%rbp),%xmm1
divsd  %xmm1,%xmm2
movsd  0x3a4(%rip),%xmm1
addsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x198(%rbp)
ff
cvtsi2sdl -0x70(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
movsd  -0x30(%rbp),%xmm2
subsd  -0x28(%rbp),%xmm2
mulsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x1a8(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  %xmm0,-0x1b0(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
subsd  -0x28(%rbp),%xmm0
call   1060 <sqrt@plt>
movsd  -0x1b0(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x1a8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
divsd  %xmm1,%xmm0
cvttsd2si %xmm0,%edi
call   1030 <rq_pricing_cumul_norm_dist@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,-0x170(%rbp)
ff
movsd  -0x38(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  -0x30(%rbp),%xmm1
subsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
call   1040 <exp@plt>
mulsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0x190(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
subsd  -0x38(%rbp),%xmm0
mulsd  -0x30(%rbp),%xmm0
call   1040 <exp@plt>
movaps %xmm0,%xmm1
movsd  -0x190(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  -0x48(%rbp),%xmm2
mulsd  -0x48(%rbp),%xmm2
movsd  0x266(%rip),%xmm1
mulsd  -0x80(%rbp),%xmm1
divsd  %xmm1,%xmm2
movsd  0x25d(%rip),%xmm1
subsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x178(%rbp)
ff
cvtsi2sdl -0x70(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm1
movsd  -0x30(%rbp),%xmm2
subsd  -0x28(%rbp),%xmm2
mulsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x180(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  %xmm0,-0x188(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
subsd  -0x28(%rbp),%xmm0
call   1060 <sqrt@plt>
movsd  -0x188(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x180(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
divsd  %xmm1,%xmm0
cvttsd2si %xmm0,%edi
call   1030 <rq_pricing_cumul_norm_dist@plt>
movsd  -0x178(%rbp),%xmm1
ff
movsd  -0x170(%rbp),%xmm2
ff
movaps %xmm0,%xmm3
movsd  -0x168(%rbp),%xmm0
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x78(%rbp)
jmp    1e67 <rq_pricing_extreme_spread+0xd27>
movsd  -0x78(%rbp),%xmm0
add    $0x220,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<rq_pricing_extreme_spread>:
push   %rbp
push   %r14
push   %rbx
sub    $0x120,%rsp
movsd  %xmm7,0x28(%rsp)
movsd  %xmm6,0x18(%rsp)
movaps %xmm5,0x40(%rsp)
movsd  %xmm4,0x8(%rsp)
movsd  %xmm3,0x50(%rsp)
movapd %xmm0,%xmm3
mov    %esi,%ebp
mov    %edi,%r14d
cmp    $0x1,%edi
sbb    %ebx,%ebx
or     $0x1,%ebx
mov    %ebx,%eax
neg    %eax
test   %esi,%esi
cmovne %ebx,%eax
cmp    $0xffffffff,%eax
je     118b <rq_pricing_extreme_spread+0x4b>
movapd %xmm2,%xmm1
movsd  %xmm1,0x58(%rsp)
movapd %xmm1,%xmm0
divsd  %xmm3,%xmm0
movsd  %xmm3,0x60(%rsp)
call   1050 <log@plt>
movapd %xmm0,%xmm4
movapd 0x40(%rsp),%xmm1
movapd %xmm1,%xmm3
subsd  0x18(%rsp),%xmm3
movsd  0x28(%rsp),%xmm2
mulsd  %xmm2,%xmm2
movsd  0xe36(%rip),%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm3,%xmm0
movapd %xmm2,%xmm5
movapd %xmm0,0xb0(%rsp)
addsd  %xmm0,%xmm5
test   %ebp,%ebp
movsd  %xmm2,0x18(%rsp)
movapd %xmm3,0x80(%rsp)
movapd %xmm4,0x70(%rsp)
movapd %xmm5,0x30(%rsp)
je     12ba <rq_pricing_extreme_spread+0x17a>
xorps  %xmm0,%xmm0
cvtsi2sd %ebx,%xmm0
movsd  %xmm0,0x20(%rsp)
movapd %xmm3,%xmm0
subsd  %xmm1,%xmm0
mulsd  0x8(%rsp),%xmm0
movapd %xmm0,0x90(%rsp)
call   1040 <exp@plt>
movapd 0x70(%rsp),%xmm2
movapd 0x80(%rsp),%xmm1
movapd %xmm0,%xmm4
movsd  0x8(%rsp),%xmm0
movsd  0x60(%rsp),%xmm3
mulsd  %xmm3,%xmm4
addsd  %xmm1,%xmm1
movsd  0x18(%rsp),%xmm3
divsd  %xmm1,%xmm3
addsd  0xda0(%rip),%xmm3
movsd  %xmm3,0xa0(%rsp)
movapd 0xda7(%rip),%xmm3
xorpd  %xmm2,%xmm3
movapd %xmm3,0xc0(%rsp)
movapd 0x30(%rsp),%xmm3
mulsd  %xmm0,%xmm3
subsd  %xmm2,%xmm3
mulsd  0x20(%rsp),%xmm3
xorpd  %xmm2,%xmm2
ucomisd %xmm2,%xmm0
movapd %xmm1,0x80(%rsp)
jb     171b <rq_pricing_extreme_spread+0x5db>
sqrtsd %xmm0,%xmm0
jmp    173e <rq_pricing_extreme_spread+0x5fe>
neg    %r14d
sbb    %ebp,%ebp
movapd %xmm3,%xmm0
subsd  %xmm1,%xmm0
mulsd  0x8(%rsp),%xmm0
movapd %xmm0,0x90(%rsp)
call   1040 <exp@plt>
movapd 0x30(%rsp),%xmm1
movapd %xmm0,%xmm2
mulsd  0x60(%rsp),%xmm2
movapd 0x80(%rsp),%xmm3
addsd  %xmm3,%xmm3
movsd  0x18(%rsp),%xmm0
movapd %xmm3,0x80(%rsp)
divsd  %xmm3,%xmm0
movsd  0xcf5(%rip),%xmm4
xorps  %xmm3,%xmm3
cvtsi2sd %ebx,%xmm3
movsd  %xmm0,0xd8(%rsp)
addsd  %xmm0,%xmm4
movsd  %xmm4,0xe0(%rsp)
movapd %xmm1,%xmm0
movsd  0x8(%rsp),%xmm5
mulsd  %xmm5,%xmm0
movapd 0x70(%rsp),%xmm4
subsd  %xmm0,%xmm4
movsd  %xmm3,0x20(%rsp)
mulsd  %xmm3,%xmm4
xorps  %xmm0,%xmm0
sqrtsd %xmm5,%xmm0
xorpd  %xmm3,%xmm3
ucomisd %xmm3,%xmm5
movsd  %xmm0,0xc0(%rsp)
jae    139b <rq_pricing_extreme_spread+0x25b>
movsd  0x8(%rsp),%xmm0
movsd  %xmm2,0x10(%rsp)
movapd %xmm4,0xa0(%rsp)
call   1060 <sqrt@plt>
movapd 0xa0(%rsp),%xmm4
movsd  0x10(%rsp),%xmm2
movapd 0x30(%rsp),%xmm1
xorpd  0xc7d(%rip),%xmm1
movapd %xmm1,0x30(%rsp)
mulsd  0xe0(%rsp),%xmm2
movsd  %xmm2,0x10(%rsp)
mulsd  0x28(%rsp),%xmm0
divsd  %xmm0,%xmm4
cvttsd2si %xmm4,%edi
call   1030 <rq_pricing_cumul_norm_dist@plt>
movsd  %xmm0,0xd0(%rsp)
movapd 0x40(%rsp),%xmm0
xorpd  0xc3e(%rip),%xmm0
movapd %xmm0,0x40(%rsp)
mulsd  0x8(%rsp),%xmm0
movapd %xmm0,0xf0(%rsp)
call   1040 <exp@plt>
mulsd  0x58(%rsp),%xmm0
movsd  %xmm0,0x108(%rsp)
movapd 0xb0(%rsp),%xmm0
movsd  0x8(%rsp),%xmm2
mulsd  %xmm2,%xmm0
movapd %xmm0,0xa0(%rsp)
movapd %xmm0,%xmm1
subsd  0x70(%rsp),%xmm1
mulsd  0x20(%rsp),%xmm1
ucomisd 0xbd1(%rip),%xmm2
movsd  0xc0(%rsp),%xmm0
jae    1467 <rq_pricing_extreme_spread+0x327>
movsd  0x8(%rsp),%xmm0
movapd %xmm1,0x110(%rsp)
call   1060 <sqrt@plt>
movapd 0x110(%rsp),%xmm1
mulsd  0x28(%rsp),%xmm0
divsd  %xmm0,%xmm1
cvttsd2si %xmm1,%edi
call   1030 <rq_pricing_cumul_norm_dist@plt>
movsd  0x108(%rsp),%xmm1
mulsd  %xmm0,%xmm1
movsd  0x10(%rsp),%xmm0
mulsd  0xd0(%rsp),%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,0x10(%rsp)
movaps 0xf0(%rsp),%xmm0
call   1040 <exp@plt>
movsd  %xmm0,0xf0(%rsp)
movapd 0xb0(%rsp),%xmm0
addsd  %xmm0,%xmm0
mulsd  0x70(%rsp),%xmm0
divsd  0x18(%rsp),%xmm0
call   1040 <exp@plt>
movsd  %xmm0,0xd0(%rsp)
movapd 0xa0(%rsp),%xmm1
addsd  0x70(%rsp),%xmm1
mulsd  0x20(%rsp),%xmm1
xorpd  %xmm2,%xmm2
movsd  0x8(%rsp),%xmm0
ucomisd %xmm2,%xmm0
jae    1528 <rq_pricing_extreme_spread+0x3e8>
movsd  0x8(%rsp),%xmm0
movapd %xmm1,0xa0(%rsp)
call   1060 <sqrt@plt>
movapd 0xa0(%rsp),%xmm1
movsd  %xmm0,0xc0(%rsp)
or     $0x1,%ebp
movsd  0xc0(%rsp),%xmm0
mulsd  0x28(%rsp),%xmm0
divsd  %xmm0,%xmm1
cvttsd2si %xmm1,%edi
call   1030 <rq_pricing_cumul_norm_dist@plt>
movsd  0x58(%rsp),%xmm1
mulsd  0xf0(%rsp),%xmm1
movsd  0x18(%rsp),%xmm2
mulsd  %xmm1,%xmm2
divsd  0x80(%rsp),%xmm2
movsd  0xd0(%rsp),%xmm1
mulsd  %xmm2,%xmm1
mulsd  %xmm0,%xmm1
movsd  0x10(%rsp),%xmm0
subsd  %xmm1,%xmm0
movsd  %xmm0,0x10(%rsp)
movaps 0x90(%rsp),%xmm0
call   1040 <exp@plt>
movsd  %xmm0,0x80(%rsp)
movsd  0x8(%rsp),%xmm0
subsd  0x50(%rsp),%xmm0
movapd 0x30(%rsp),%xmm1
mulsd  %xmm0,%xmm1
mulsd  0x20(%rsp),%xmm1
xorps  %xmm2,%xmm2
sqrtsd %xmm0,%xmm2
movsd  %xmm0,0x8(%rsp)
ucomisd 0xa3f(%rip),%xmm0
movsd  %xmm2,0x70(%rsp)
movapd %xmm2,%xmm0
jae    15f4 <rq_pricing_extreme_spread+0x4b4>
movsd  0x8(%rsp),%xmm0
movapd %xmm1,0x30(%rsp)
call   1060 <sqrt@plt>
movapd 0x30(%rsp),%xmm1
xorps  %xmm2,%xmm2
cvtsi2sd %ebp,%xmm2
movsd  %xmm2,0x18(%rsp)
mulsd  0x28(%rsp),%xmm0
divsd  %xmm0,%xmm1
cvttsd2si %xmm1,%edi
call   1030 <rq_pricing_cumul_norm_dist@plt>
movsd  0x80(%rsp),%xmm2
mulsd  0x60(%rsp),%xmm2
movsd  0xe0(%rsp),%xmm1
mulsd  %xmm2,%xmm1
mulsd  %xmm0,%xmm1
movsd  0x10(%rsp),%xmm0
subsd  %xmm1,%xmm0
movsd  %xmm0,0x10(%rsp)
movapd 0x40(%rsp),%xmm0
mulsd  0x8(%rsp),%xmm0
call   1040 <exp@plt>
movsd  %xmm0,0x40(%rsp)
movaps 0x90(%rsp),%xmm0
call   1040 <exp@plt>
movsd  %xmm0,0x80(%rsp)
movsd  0x98f(%rip),%xmm0
subsd  0xd8(%rsp),%xmm0
movsd  %xmm0,0x30(%rsp)
movapd 0xb0(%rsp),%xmm0
movsd  0x8(%rsp),%xmm1
mulsd  %xmm1,%xmm0
mulsd  0x20(%rsp),%xmm0
movapd %xmm0,0xb0(%rsp)
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm1
movapd %xmm1,%xmm0
movsd  0x70(%rsp),%xmm1
jae    16c7 <rq_pricing_extreme_spread+0x587>
call   1060 <sqrt@plt>
movapd %xmm0,%xmm1
mulsd  0x28(%rsp),%xmm1
movapd 0xb0(%rsp),%xmm0
divsd  %xmm1,%xmm0
cvttsd2si %xmm0,%edi
call   1030 <rq_pricing_cumul_norm_dist@plt>
movsd  0x40(%rsp),%xmm1
mulsd  0x60(%rsp),%xmm1
mulsd  0x80(%rsp),%xmm1
movsd  0x30(%rsp),%xmm2
mulsd  %xmm1,%xmm2
mulsd  %xmm0,%xmm2
movsd  0x10(%rsp),%xmm1
subsd  %xmm2,%xmm1
mulsd  0x18(%rsp),%xmm1
jmp    1b1f <rq_pricing_extreme_spread+0x9df>
movsd  %xmm4,0x10(%rsp)
movapd %xmm3,0xe0(%rsp)
call   1060 <sqrt@plt>
movapd 0xe0(%rsp),%xmm3
movsd  0x10(%rsp),%xmm4
mulsd  0xa0(%rsp),%xmm4
movsd  %xmm4,0x10(%rsp)
mulsd  0x28(%rsp),%xmm0
divsd  %xmm0,%xmm3
cvttsd2si %xmm3,%edi
call   1030 <rq_pricing_cumul_norm_dist@plt>
movsd  %xmm0,0xe0(%rsp)
movapd 0x40(%rsp),%xmm1
xorpd  0x8a9(%rip),%xmm1
movsd  0x8(%rsp),%xmm0
subsd  0x50(%rsp),%xmm0
movapd %xmm1,0x40(%rsp)
mulsd  %xmm1,%xmm0
call   1040 <exp@plt>
movsd  %xmm0,0xd8(%rsp)
movaps 0x90(%rsp),%xmm0
call   1040 <exp@plt>
movsd  0x50(%rsp),%xmm1
movsd  %xmm0,0x90(%rsp)
movapd 0x30(%rsp),%xmm2
mulsd  %xmm1,%xmm2
addsd  0xc0(%rsp),%xmm2
mulsd  0x20(%rsp),%xmm2
ucomisd 0x838(%rip),%xmm1
jb     17e3 <rq_pricing_extreme_spread+0x6a3>
xorps  %xmm0,%xmm0
sqrtsd %xmm1,%xmm0
jmp    17f8 <rq_pricing_extreme_spread+0x6b8>
movapd %xmm1,%xmm0
movapd %xmm2,0x30(%rsp)
call   1060 <sqrt@plt>
movapd 0x30(%rsp),%xmm2
mulsd  0x28(%rsp),%xmm0
divsd  %xmm0,%xmm2
cvttsd2si %xmm2,%edi
call   1030 <rq_pricing_cumul_norm_dist@plt>
movsd  0xd8(%rsp),%xmm2
mulsd  0x60(%rsp),%xmm2
mulsd  0x90(%rsp),%xmm2
movsd  0xa0(%rsp),%xmm1
mulsd  %xmm2,%xmm1
mulsd  %xmm0,%xmm1
movsd  0x10(%rsp),%xmm0
mulsd  0xe0(%rsp),%xmm0
subsd  %xmm1,%xmm0
movsd  %xmm0,0x10(%rsp)
movapd 0x40(%rsp),%xmm0
mulsd  0x8(%rsp),%xmm0
movapd %xmm0,0x40(%rsp)
call   1040 <exp@plt>
mulsd  0x58(%rsp),%xmm0
movsd  %xmm0,0x30(%rsp)
movapd 0x7a8(%rip),%xmm1
movapd 0xb0(%rsp),%xmm0
xorpd  %xmm0,%xmm1
movapd %xmm1,0x60(%rsp)
movsd  0x8(%rsp),%xmm3
mulsd  %xmm3,%xmm0
movapd 0x70(%rsp),%xmm2
subsd  %xmm0,%xmm2
mulsd  0x20(%rsp),%xmm2
xorps  %xmm0,%xmm0
sqrtsd %xmm3,%xmm0
xorpd  %xmm1,%xmm1
ucomisd %xmm1,%xmm3
movsd  %xmm0,0xa0(%rsp)
jae    18dc <rq_pricing_extreme_spread+0x79c>
movsd  0x8(%rsp),%xmm0
movapd %xmm2,0x90(%rsp)
call   1060 <sqrt@plt>
movapd 0x90(%rsp),%xmm2
mulsd  0x28(%rsp),%xmm0
divsd  %xmm0,%xmm2
cvttsd2si %xmm2,%edi
call   1030 <rq_pricing_cumul_norm_dist@plt>
movsd  0x30(%rsp),%xmm1
mulsd  %xmm0,%xmm1
addsd  0x10(%rsp),%xmm1
movsd  %xmm1,0x30(%rsp)
movaps 0x40(%rsp),%xmm0
call   1040 <exp@plt>
movsd  %xmm0,0x10(%rsp)
movapd 0xb0(%rsp),%xmm0
addsd  %xmm0,%xmm0
mulsd  0x70(%rsp),%xmm0
divsd  0x18(%rsp),%xmm0
movapd %xmm0,0xb0(%rsp)
call   1040 <exp@plt>
movsd  %xmm0,0x90(%rsp)
movapd 0x60(%rsp),%xmm2
movsd  0x8(%rsp),%xmm0
mulsd  %xmm0,%xmm2
addsd  0xc0(%rsp),%xmm2
mulsd  0x20(%rsp),%xmm2
ucomisd 0x6a4(%rip),%xmm0
movsd  0xa0(%rsp),%xmm1
jae    198c <rq_pricing_extreme_spread+0x84c>
movsd  %xmm2,0x8(%rsp)
call   1060 <sqrt@plt>
movsd  0x8(%rsp),%xmm2
movapd %xmm0,%xmm1
mulsd  0x28(%rsp),%xmm1
divsd  %xmm1,%xmm2
cvttsd2si %xmm2,%edi
call   1030 <rq_pricing_cumul_norm_dist@plt>
movsd  0x10(%rsp),%xmm1
mulsd  0x58(%rsp),%xmm1
mulsd  0x18(%rsp),%xmm1
divsd  0x80(%rsp),%xmm1
movsd  0x90(%rsp),%xmm2
mulsd  %xmm1,%xmm2
mulsd  %xmm0,%xmm2
movsd  0x30(%rsp),%xmm0
subsd  %xmm2,%xmm0
movsd  %xmm0,0x30(%rsp)
movaps 0x40(%rsp),%xmm0
call   1040 <exp@plt>
movsd  %xmm0,0x10(%rsp)
movsd  0x50(%rsp),%xmm2
movapd 0x60(%rsp),%xmm0
mulsd  %xmm2,%xmm0
movapd 0x70(%rsp),%xmm1
movapd %xmm0,0x60(%rsp)
addsd  %xmm0,%xmm1
mulsd  0x20(%rsp),%xmm1
xorps  %xmm0,%xmm0
sqrtsd %xmm2,%xmm0
xorpd  %xmm3,%xmm3
ucomisd %xmm3,%xmm2
movsd  %xmm0,0x8(%rsp)
jae    1a3f <rq_pricing_extreme_spread+0x8ff>
movsd  0x50(%rsp),%xmm0
movapd %xmm1,0x70(%rsp)
call   1060 <sqrt@plt>
movapd 0x70(%rsp),%xmm1
mulsd  0x28(%rsp),%xmm0
divsd  %xmm0,%xmm1
cvttsd2si %xmm1,%edi
call   1030 <rq_pricing_cumul_norm_dist@plt>
movsd  0x10(%rsp),%xmm1
mulsd  0x58(%rsp),%xmm1
mulsd  %xmm0,%xmm1
movsd  0x30(%rsp),%xmm0
subsd  %xmm1,%xmm0
movsd  %xmm0,0x30(%rsp)
movapd 0x40(%rsp),%xmm0
call   1040 <exp@plt>
mulsd  0x58(%rsp),%xmm0
movsd  0x18(%rsp),%xmm1
mulsd  %xmm0,%xmm1
divsd  0x80(%rsp),%xmm1
movsd  %xmm1,0x18(%rsp)
movapd 0xb0(%rsp),%xmm0
call   1040 <exp@plt>
mulsd  0x18(%rsp),%xmm0
movsd  %xmm0,0x10(%rsp)
movapd 0x60(%rsp),%xmm0
addsd  0xc0(%rsp),%xmm0
mulsd  0x20(%rsp),%xmm0
movapd %xmm0,0x60(%rsp)
movsd  0x50(%rsp),%xmm0
ucomisd 0x531(%rip),%xmm0
movsd  0x8(%rsp),%xmm1
jae    1af0 <rq_pricing_extreme_spread+0x9b0>
call   1060 <sqrt@plt>
movapd %xmm0,%xmm1
mulsd  0x28(%rsp),%xmm1
movapd 0x60(%rsp),%xmm0
divsd  %xmm1,%xmm0
cvttsd2si %xmm0,%edi
call   1030 <rq_pricing_cumul_norm_dist@plt>
movsd  0x10(%rsp),%xmm1
mulsd  %xmm0,%xmm1
addsd  0x30(%rsp),%xmm1
mulsd  0x20(%rsp),%xmm1
movapd %xmm1,%xmm0
add    $0x120,%rsp
pop    %rbx
pop    %r14
pop    %rbp
ret

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

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