void groundwaterBiodegradation01EvaluateFC(
    const int nPoints, const int nSpace, const double omega, const double d_c,
    const double d_e, const double alpha_L, const double alpha_T,
    const double Kox_max, const double Kox_C, const double Kox_E,
    const double Kox_X, const double Yield, const double k_d, const double *v,
    const double *c_c, const double *c_e, const double *c_x, double *m_c,
    double *dm_c, double *m_e, double *dm_e, double *m_x, double *dm_x,
    double *f_c, double *df_c, double *f_e, double *df_e, double *a_c,
    double *a_e, double *r_c, double *dr_c_dc, double *dr_c_de, double *dr_c_dx,
    double *r_e, double *dr_e_dc, double *dr_e_de, double *dr_e_dx, double *r_x,
    double *dr_x_dc, double *dr_x_de, double *dr_x_dx) {
  int k, I, J;
  const int nSpace2 = nSpace * nSpace;
  double norm_v;
  double C, E, X, denomC, denomE, denomX, rox, drox_dC, drox_dE, drox_dX;
  for (k = 0; k < nPoints; k++) {
    C = c_c[k];
    E = c_e[k];
    X = c_x[k];
    m_c[k] = omega * C;
    dm_c[k] = omega;
    m_e[k] = omega * E;
    dm_e[k] = omega;
    m_x[k] = omega * X;
    dm_x[k] = omega;
    norm_v = 0.0;
    for (I = 0; I < nSpace; I++) {
      f_c[k * nSpace + I] = v[k * nSpace + I] * C;
      df_c[k * nSpace + I] = v[k * nSpace + I];
      f_e[k * nSpace + I] = v[k * nSpace + I] * E;
      df_e[k * nSpace + I] = v[k * nSpace + I];
      norm_v += v[k * nSpace + I] * v[k * nSpace + I];
    }
    norm_v = sqrt(norm_v);
    if (norm_v > 0.0) {
      for (I = 0; I < nSpace; I++) {
        a_c[k * nSpace2 + I * nSpace + I] = omega * d_c + alpha_T * norm_v +
                                            (alpha_L - alpha_T) *
                                                v[k * nSpace + I] *
                                                v[k * nSpace + I] / norm_v;
        for (J = I + 1; J < nSpace; J++) {
          a_c[k * nSpace2 + I * nSpace + J] = (alpha_L - alpha_T) *
                                              v[k * nSpace + I] *
                                              v[k * nSpace + J] / norm_v;
          a_c[k * nSpace2 + J * nSpace + I] = a_c[k * nSpace2 + I * nSpace + J];
        }
        a_e[k * nSpace2 + I * nSpace + I] = omega * d_e + alpha_T * norm_v +
                                            (alpha_L - alpha_T) *
                                                v[k * nSpace + I] *
                                                v[k * nSpace + I] / norm_v;
        for (J = I + 1; J < nSpace; J++) {
          a_e[k * nSpace2 + I * nSpace + J] = (alpha_L - alpha_T) *
                                              v[k * nSpace + I] *
                                              v[k * nSpace + J] / norm_v;
          a_e[k * nSpace2 + J * nSpace + I] = a_e[k * nSpace2 + I * nSpace + J];
        }
      }
    } else {
      for (I = 0; I < nSpace; I++) {
        a_c[k * nSpace2 + I * nSpace + I] = omega * d_c;
        a_e[k * nSpace2 + I * nSpace + I] = omega * d_e;
      }
    }
    denomC = C + Kox_C;
    denomE = E + Kox_E;
    denomX = X + Kox_X;
    rox = Kox_max * X * (C / denomC) * (E / denomE) * (Kox_X / denomX);
    drox_dC = Kox_max * X * (E / denomE) * (Kox_X / denomX) *
              (1.0 / denomC - C / (denomC * denomC));
    drox_dE = Kox_max * X * (C / denomC) * (Kox_X / denomX) *
              (1.0 / denomE - E / (denomE * denomE));
    drox_dX = Kox_max * (C / denomC) * (E / denomE) *
              (Kox_X / denomX - Kox_X * X / (denomX * denomX));
    r_c[k] = omega * rox;
    r_e[k] = 3.0 * omega * rox;
    r_x[k] = -Yield * omega * rox + X * omega * k_d;
    dr_c_dc[k] = omega * drox_dC;
    dr_c_de[k] = omega * drox_dE;
    dr_c_dx[k] = omega * drox_dX;
    dr_e_dc[k] = 3.0 * omega * drox_dC;
    dr_e_de[k] = 3.0 * omega * drox_dE;
    dr_e_dx[k] = 3.0 * omega * drox_dX;
    dr_x_dc[k] = -Yield * omega * drox_dC;
    dr_x_de[k] = -Yield * omega * drox_dE;
    dr_x_dx[k] = -Yield * omega * drox_dX + omega * k_d;
  }
}


x86 assembly (clang, -O0):
<groundwaterBiodegradation01EvaluateFC>:
push   %rbp
mov    %rsp,%rbp
sub    $0xd0,%rsp
mov    0xe0(%rbp),%rax
mov    0xd8(%rbp),%rax
mov    0xd0(%rbp),%rax
mov    0xc8(%rbp),%rax
mov    0xc0(%rbp),%rax
mov    0xb8(%rbp),%rax
mov    0xb0(%rbp),%rax
mov    0xa8(%rbp),%rax
mov    0xa0(%rbp),%rax
mov    0x98(%rbp),%rax
mov    0x90(%rbp),%rax
mov    0x88(%rbp),%rax
mov    0x80(%rbp),%rax
mov    0x78(%rbp),%rax
mov    0x70(%rbp),%rax
mov    0x68(%rbp),%rax
mov    0x60(%rbp),%rax
mov    0x58(%rbp),%rax
mov    0x50(%rbp),%rax
mov    0x48(%rbp),%rax
mov    0x40(%rbp),%rax
mov    0x38(%rbp),%rax
mov    0x30(%rbp),%rax
mov    0x28(%rbp),%rax
movsd  0x20(%rbp),%xmm8
movsd  0x18(%rbp),%xmm8
movsd  0x10(%rbp),%xmm8
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)
mov    %rdx,-0x50(%rbp)
mov    %rcx,-0x58(%rbp)
mov    %r8,-0x60(%rbp)
mov    %r9,-0x68(%rbp)
mov    -0x8(%rbp),%eax
imul   -0x8(%rbp),%eax
mov    %eax,-0x78(%rbp)
movl   $0x0,-0x6c(%rbp)
mov    -0x6c(%rbp),%eax
cmp    -0x4(%rbp),%eax
jge    1b30 <groundwaterBiodegradation01EvaluateFC+0xa20>
mov    -0x58(%rbp),%rax
movslq -0x6c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
mov    -0x60(%rbp),%rax
movslq -0x6c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
mov    -0x68(%rbp),%rax
movslq -0x6c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
movsd  -0x10(%rbp),%xmm0
mulsd  -0x88(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
movslq -0x6c(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x10(%rbp),%xmm0
mov    0x30(%rbp),%rax
movslq -0x6c(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x10(%rbp),%xmm0
mulsd  -0x90(%rbp),%xmm0
ff
mov    0x38(%rbp),%rax
movslq -0x6c(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x10(%rbp),%xmm0
mov    0x40(%rbp),%rax
movslq -0x6c(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x10(%rbp),%xmm0
mulsd  -0x98(%rbp),%xmm0
ff
mov    0x48(%rbp),%rax
movslq -0x6c(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x10(%rbp),%xmm0
mov    0x50(%rbp),%rax
movslq -0x6c(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x80(%rbp)
movl   $0x0,-0x70(%rbp)
mov    -0x70(%rbp),%eax
cmp    -0x8(%rbp),%eax
jge    13f9 <groundwaterBiodegradation01EvaluateFC+0x2e9>
mov    -0x50(%rbp),%rax
mov    -0x6c(%rbp),%ecx
imul   -0x8(%rbp),%ecx
add    -0x70(%rbp),%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
mulsd  -0x88(%rbp),%xmm0
ff
mov    0x58(%rbp),%rax
mov    -0x6c(%rbp),%ecx
imul   -0x8(%rbp),%ecx
add    -0x70(%rbp),%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x50(%rbp),%rax
mov    -0x6c(%rbp),%ecx
imul   -0x8(%rbp),%ecx
add    -0x70(%rbp),%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    0x60(%rbp),%rax
mov    -0x6c(%rbp),%ecx
imul   -0x8(%rbp),%ecx
add    -0x70(%rbp),%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x50(%rbp),%rax
mov    -0x6c(%rbp),%ecx
imul   -0x8(%rbp),%ecx
add    -0x70(%rbp),%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
mulsd  -0x90(%rbp),%xmm0
ff
mov    0x68(%rbp),%rax
mov    -0x6c(%rbp),%ecx
imul   -0x8(%rbp),%ecx
add    -0x70(%rbp),%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x50(%rbp),%rax
mov    -0x6c(%rbp),%ecx
imul   -0x8(%rbp),%ecx
add    -0x70(%rbp),%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    0x70(%rbp),%rax
mov    -0x6c(%rbp),%ecx
imul   -0x8(%rbp),%ecx
add    -0x70(%rbp),%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x50(%rbp),%rax
mov    -0x6c(%rbp),%ecx
imul   -0x8(%rbp),%ecx
add    -0x70(%rbp),%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x50(%rbp),%rax
mov    -0x6c(%rbp),%ecx
imul   -0x8(%rbp),%ecx
add    -0x70(%rbp),%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
movsd  -0x80(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x70(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x70(%rbp)
jmp    12e1 <groundwaterBiodegradation01EvaluateFC+0x1d1>
movsd  -0x80(%rbp),%xmm0
call   1030 <sqrt@plt>
movsd  %xmm0,-0x80(%rbp)
movsd  -0x80(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    16bb <groundwaterBiodegradation01EvaluateFC+0x5ab>
movl   $0x0,-0x70(%rbp)
mov    -0x70(%rbp),%eax
cmp    -0x8(%rbp),%eax
jge    16b6 <groundwaterBiodegradation01EvaluateFC+0x5a6>
movsd  -0x10(%rbp),%xmm0
movsd  -0x18(%rbp),%xmm2
movsd  -0x30(%rbp),%xmm1
mulsd  -0x80(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  -0x28(%rbp),%xmm1
subsd  -0x30(%rbp),%xmm1
mov    -0x50(%rbp),%rax
mov    -0x6c(%rbp),%ecx
imul   -0x8(%rbp),%ecx
add    -0x70(%rbp),%ecx
movslq %ecx,%rcx
mulsd  (%rax,%rcx,8),%xmm1
mov    -0x50(%rbp),%rax
mov    -0x6c(%rbp),%ecx
imul   -0x8(%rbp),%ecx
add    -0x70(%rbp),%ecx
movslq %ecx,%rcx
mulsd  (%rax,%rcx,8),%xmm1
divsd  -0x80(%rbp),%xmm1
addsd  %xmm1,%xmm0
mov    0x78(%rbp),%rax
mov    -0x6c(%rbp),%ecx
imul   -0x78(%rbp),%ecx
mov    -0x70(%rbp),%edx
imul   -0x8(%rbp),%edx
add    %edx,%ecx
add    -0x70(%rbp),%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x70(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x74(%rbp)
mov    -0x74(%rbp),%eax
cmp    -0x8(%rbp),%eax
jge    1562 <groundwaterBiodegradation01EvaluateFC+0x452>
movsd  -0x28(%rbp),%xmm0
subsd  -0x30(%rbp),%xmm0
mov    -0x50(%rbp),%rax
mov    -0x6c(%rbp),%ecx
imul   -0x8(%rbp),%ecx
add    -0x70(%rbp),%ecx
movslq %ecx,%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    -0x50(%rbp),%rax
mov    -0x6c(%rbp),%ecx
imul   -0x8(%rbp),%ecx
add    -0x74(%rbp),%ecx
movslq %ecx,%rcx
mulsd  (%rax,%rcx,8),%xmm0
divsd  -0x80(%rbp),%xmm0
mov    0x78(%rbp),%rax
mov    -0x6c(%rbp),%ecx
imul   -0x78(%rbp),%ecx
mov    -0x70(%rbp),%edx
imul   -0x8(%rbp),%edx
add    %edx,%ecx
add    -0x74(%rbp),%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x78(%rbp),%rax
mov    -0x6c(%rbp),%ecx
imul   -0x78(%rbp),%ecx
mov    -0x70(%rbp),%edx
imul   -0x8(%rbp),%edx
add    %edx,%ecx
add    -0x74(%rbp),%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    0x78(%rbp),%rax
mov    -0x6c(%rbp),%ecx
imul   -0x78(%rbp),%ecx
mov    -0x74(%rbp),%edx
imul   -0x8(%rbp),%edx
add    %edx,%ecx
add    -0x70(%rbp),%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x74(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x74(%rbp)
jmp    14b0 <groundwaterBiodegradation01EvaluateFC+0x3a0>
movsd  -0x10(%rbp),%xmm0
movsd  -0x20(%rbp),%xmm2
movsd  -0x30(%rbp),%xmm1
mulsd  -0x80(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  -0x28(%rbp),%xmm1
subsd  -0x30(%rbp),%xmm1
mov    -0x50(%rbp),%rax
mov    -0x6c(%rbp),%ecx
imul   -0x8(%rbp),%ecx
add    -0x70(%rbp),%ecx
movslq %ecx,%rcx
mulsd  (%rax,%rcx,8),%xmm1
mov    -0x50(%rbp),%rax
mov    -0x6c(%rbp),%ecx
imul   -0x8(%rbp),%ecx
add    -0x70(%rbp),%ecx
movslq %ecx,%rcx
mulsd  (%rax,%rcx,8),%xmm1
divsd  -0x80(%rbp),%xmm1
addsd  %xmm1,%xmm0
mov    0x80(%rbp),%rax
mov    -0x6c(%rbp),%ecx
imul   -0x78(%rbp),%ecx
mov    -0x70(%rbp),%edx
imul   -0x8(%rbp),%edx
add    %edx,%ecx
add    -0x70(%rbp),%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x70(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x74(%rbp)
mov    -0x74(%rbp),%eax
cmp    -0x8(%rbp),%eax
jge    16a3 <groundwaterBiodegradation01EvaluateFC+0x593>
movsd  -0x28(%rbp),%xmm0
subsd  -0x30(%rbp),%xmm0
mov    -0x50(%rbp),%rax
mov    -0x6c(%rbp),%ecx
imul   -0x8(%rbp),%ecx
add    -0x70(%rbp),%ecx
movslq %ecx,%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    -0x50(%rbp),%rax
mov    -0x6c(%rbp),%ecx
imul   -0x8(%rbp),%ecx
add    -0x74(%rbp),%ecx
movslq %ecx,%rcx
mulsd  (%rax,%rcx,8),%xmm0
divsd  -0x80(%rbp),%xmm0
mov    0x80(%rbp),%rax
mov    -0x6c(%rbp),%ecx
imul   -0x78(%rbp),%ecx
mov    -0x70(%rbp),%edx
imul   -0x8(%rbp),%edx
add    %edx,%ecx
add    -0x74(%rbp),%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x80(%rbp),%rax
mov    -0x6c(%rbp),%ecx
imul   -0x78(%rbp),%ecx
mov    -0x70(%rbp),%edx
imul   -0x8(%rbp),%edx
add    %edx,%ecx
add    -0x74(%rbp),%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    0x80(%rbp),%rax
mov    -0x6c(%rbp),%ecx
imul   -0x78(%rbp),%ecx
mov    -0x74(%rbp),%edx
imul   -0x8(%rbp),%edx
add    %edx,%ecx
add    -0x70(%rbp),%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x74(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x74(%rbp)
jmp    15e8 <groundwaterBiodegradation01EvaluateFC+0x4d8>
jmp    16a8 <groundwaterBiodegradation01EvaluateFC+0x598>
mov    -0x70(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x70(%rbp)
jmp    1421 <groundwaterBiodegradation01EvaluateFC+0x311>
jmp    1736 <groundwaterBiodegradation01EvaluateFC+0x626>
movl   $0x0,-0x70(%rbp)
mov    -0x70(%rbp),%eax
cmp    -0x8(%rbp),%eax
jge    1731 <groundwaterBiodegradation01EvaluateFC+0x621>
movsd  -0x10(%rbp),%xmm0
mulsd  -0x18(%rbp),%xmm0
mov    0x78(%rbp),%rax
mov    -0x6c(%rbp),%ecx
imul   -0x78(%rbp),%ecx
mov    -0x70(%rbp),%edx
imul   -0x8(%rbp),%edx
add    %edx,%ecx
add    -0x70(%rbp),%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x10(%rbp),%xmm0
mulsd  -0x20(%rbp),%xmm0
mov    0x80(%rbp),%rax
mov    -0x6c(%rbp),%ecx
imul   -0x78(%rbp),%ecx
mov    -0x70(%rbp),%edx
imul   -0x8(%rbp),%edx
add    %edx,%ecx
add    -0x70(%rbp),%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x70(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x70(%rbp)
jmp    16c2 <groundwaterBiodegradation01EvaluateFC+0x5b2>
jmp    1736 <groundwaterBiodegradation01EvaluateFC+0x626>
movsd  -0x88(%rbp),%xmm0
ff
addsd  -0x40(%rbp),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
movsd  -0x90(%rbp),%xmm0
ff
addsd  -0x48(%rbp),%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0x98(%rbp),%xmm0
ff
addsd  0x10(%rbp),%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0x38(%rbp),%xmm0
mulsd  -0x98(%rbp),%xmm0
ff
movsd  -0x88(%rbp),%xmm1
ff
divsd  -0xa0(%rbp),%xmm1
ff
mulsd  %xmm1,%xmm0
movsd  -0x90(%rbp),%xmm1
ff
divsd  -0xa8(%rbp),%xmm1
ff
mulsd  %xmm1,%xmm0
movsd  0x10(%rbp),%xmm1
divsd  -0xb0(%rbp),%xmm1
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x38(%rbp),%xmm0
mulsd  -0x98(%rbp),%xmm0
ff
movsd  -0x90(%rbp),%xmm1
ff
divsd  -0xa8(%rbp),%xmm1
ff
mulsd  %xmm1,%xmm0
movsd  0x10(%rbp),%xmm1
divsd  -0xb0(%rbp),%xmm1
ff
mulsd  %xmm1,%xmm0
movsd  0x80b(%rip),%xmm1
divsd  -0xa0(%rbp),%xmm1
ff
movsd  -0x88(%rbp),%xmm2
ff
movsd  -0xa0(%rbp),%xmm3
ff
mulsd  -0xa0(%rbp),%xmm3
ff
divsd  %xmm3,%xmm2
subsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x38(%rbp),%xmm0
mulsd  -0x98(%rbp),%xmm0
ff
movsd  -0x88(%rbp),%xmm1
ff
divsd  -0xa0(%rbp),%xmm1
ff
mulsd  %xmm1,%xmm0
movsd  0x10(%rbp),%xmm1
divsd  -0xb0(%rbp),%xmm1
ff
mulsd  %xmm1,%xmm0
movsd  0x79d(%rip),%xmm1
divsd  -0xa8(%rbp),%xmm1
ff
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0xa8(%rbp),%xmm3
ff
mulsd  -0xa8(%rbp),%xmm3
ff
divsd  %xmm3,%xmm2
subsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  -0x38(%rbp),%xmm0
movsd  -0x88(%rbp),%xmm1
ff
divsd  -0xa0(%rbp),%xmm1
ff
mulsd  %xmm1,%xmm0
movsd  -0x90(%rbp),%xmm1
ff
divsd  -0xa8(%rbp),%xmm1
ff
mulsd  %xmm1,%xmm0
movsd  0x10(%rbp),%xmm1
divsd  -0xb0(%rbp),%xmm1
ff
movsd  0x10(%rbp),%xmm2
mulsd  -0x98(%rbp),%xmm2
ff
movsd  -0xb0(%rbp),%xmm3
ff
mulsd  -0xb0(%rbp),%xmm3
ff
divsd  %xmm3,%xmm2
subsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  -0x10(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mov    0x88(%rbp),%rax
movslq -0x6c(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  0x6d1(%rip),%xmm0
mulsd  -0x10(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mov    0xa8(%rbp),%rax
movslq -0x6c(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  0x18(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  -0x10(%rbp),%xmm0
movsd  -0xb8(%rbp),%xmm2
ff
movsd  -0x98(%rbp),%xmm1
ff
mulsd  -0x10(%rbp),%xmm1
mulsd  0x20(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    0xc8(%rbp),%rax
movslq -0x6c(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x10(%rbp),%xmm0
mulsd  -0xc0(%rbp),%xmm0
ff
mov    0x90(%rbp),%rax
movslq -0x6c(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x10(%rbp),%xmm0
mulsd  -0xc8(%rbp),%xmm0
ff
mov    0x98(%rbp),%rax
movslq -0x6c(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x10(%rbp),%xmm0
mulsd  -0xd0(%rbp),%xmm0
ff
mov    0xa0(%rbp),%rax
movslq -0x6c(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  0x602(%rip),%xmm0
mulsd  -0x10(%rbp),%xmm0
mulsd  -0xc0(%rbp),%xmm0
ff
mov    0xb0(%rbp),%rax
movslq -0x6c(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  0x5dd(%rip),%xmm0
mulsd  -0x10(%rbp),%xmm0
mulsd  -0xc8(%rbp),%xmm0
ff
mov    0xb8(%rbp),%rax
movslq -0x6c(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  0x5b8(%rip),%xmm0
mulsd  -0x10(%rbp),%xmm0
mulsd  -0xd0(%rbp),%xmm0
ff
mov    0xc0(%rbp),%rax
movslq -0x6c(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  0x18(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  -0x10(%rbp),%xmm0
mulsd  -0xc0(%rbp),%xmm0
ff
mov    0xd0(%rbp),%rax
movslq -0x6c(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  0x18(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  -0x10(%rbp),%xmm0
mulsd  -0xc8(%rbp),%xmm0
ff
mov    0xd8(%rbp),%rax
movslq -0x6c(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  0x18(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  -0x10(%rbp),%xmm0
movsd  -0xd0(%rbp),%xmm2
ff
movsd  -0x10(%rbp),%xmm1
mulsd  0x20(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    0xe0(%rbp),%rax
movslq -0x6c(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x6c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x6c(%rbp)
jmp    1203 <groundwaterBiodegradation01EvaluateFC+0xf3>
add    $0xd0,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<groundwaterBiodegradation01EvaluateFC>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x208,%rsp
mov    %r9,0x1b0(%rsp)
mov    %r8,0x1a8(%rsp)
mov    %rcx,0x1a0(%rsp)
movsd  %xmm7,0x198(%rsp)
movsd  %xmm6,0x190(%rsp)
movsd  %xmm5,0x188(%rsp)
movsd  %xmm4,0xc8(%rsp)
movsd  %xmm2,0x50(%rsp)
movsd  %xmm1,0x48(%rsp)
mov    %esi,0x14(%rsp)
test   %edi,%edi
jle    1f8e <groundwaterBiodegradation01EvaluateFC+0xe7e>
mov    %rdx,%r14
movapd %xmm3,%xmm11
movapd %xmm0,%xmm1
movsd  0x248(%rsp),%xmm0
mov    0x14(%rsp),%r11d
mov    %r11d,%r10d
imul   %r10d,%r10d
movsd  0x48(%rsp),%xmm2
mulsd  %xmm1,%xmm2
movsd  %xmm2,0x48(%rsp)
movsd  0x50(%rsp),%xmm3
mulsd  %xmm1,%xmm3
movsd  %xmm3,0x50(%rsp)
subsd  0xc8(%rsp),%xmm11
movsd  0xe38(%rip),%xmm3
xorpd  0xe50(%rip),%xmm0
mulsd  %xmm1,%xmm3
movsd  %xmm3,0x180(%rsp)
mulsd  %xmm1,%xmm0
movapd %xmm0,0x1f0(%rsp)
movapd %xmm1,%xmm0
mulsd  0x250(%rsp),%xmm0
movsd  %xmm0,0x178(%rsp)
movslq %r11d,%rbx
mov    %edi,%ecx
mov    %rcx,0x170(%rsp)
mov    %ebx,%r12d
mov    %r12d,%ecx
and    $0xfffffffe,%ecx
mov    %rcx,0x148(%rsp)
mov    0x2b0(%rsp),%r8
mov    0x2a8(%rsp),%rdi
mov    0x2a0(%rsp),%rdx
mov    0x298(%rsp),%rsi
mov    0x290(%rsp),%rcx
mov    0x288(%rsp),%r9
lea    -0x2(%r12),%rbp
mov    %rbp,0x1c0(%rsp)
lea    0x0(,%rbx,8),%rbp
mov    %rbp,0x140(%rsp)
lea    0x1(%rbx),%r13d
lea    (%rbx,%rbx,1),%ebp
mov    %ebp,0x60(%rsp)
lea    0x2(%rbx,%rbx,1),%ebp
mov    %ebp,0xc4(%rsp)
lea    -0x1(%r12),%rbp
mov    %rbp,0x150(%rsp)
lea    0x8(%r14),%rax
mov    %rax,0xd0(%rsp)
lea    0x8(%rdi),%rbp
mov    %rbp,0xf0(%rsp)
mov    %r10,0xa0(%rsp)
lea    0x0(,%r10,8),%rbp
mov    %rbp,0x168(%rsp)
lea    0x8(,%rbx,8),%rbp
mov    %rbp,0x1d0(%rsp)
lea    0x8(%r8),%rbp
mov    %rbp,0xe8(%rsp)
mov    %rbx,%r10
xor    %eax,%eax
mov    %rax,0x68(%rsp)
mov    %r8,0xe0(%rsp)
mov    %rdi,0xd8(%rsp)
mov    %r11d,0x64(%rsp)
mov    %r14,%rbx
xor    %eax,%eax
mov    %r10,0x70(%rsp)
movsd  %xmm11,0x160(%rsp)
movsd  %xmm1,0x158(%rsp)
mov    %r13,0x1d8(%rsp)
jmp    15d5 <groundwaterBiodegradation01EvaluateFC+0x4c5>
cs nopw 0x0(%rax,%rax,1)
nopl   (%rax)
movapd %xmm2,%xmm0
addsd  0x190(%rsp),%xmm0
movapd %xmm14,%xmm3
addsd  0x198(%rsp),%xmm3
movapd %xmm6,%xmm9
movsd  0x240(%rsp),%xmm8
addsd  %xmm8,%xmm9
movapd %xmm6,%xmm4
movsd  0x188(%rsp),%xmm5
mulsd  %xmm5,%xmm4
movapd %xmm2,%xmm12
divsd  %xmm0,%xmm12
movapd %xmm12,%xmm10
mulsd  %xmm4,%xmm10
movsd  0xc7b(%rip),%xmm15
movapd %xmm15,%xmm13
divsd  %xmm0,%xmm13
mulsd  %xmm0,%xmm0
divsd  %xmm0,%xmm2
movapd %xmm14,%xmm7
divsd  %xmm3,%xmm7
subsd  %xmm2,%xmm13
movapd %xmm8,%xmm0
divsd  %xmm9,%xmm0
mulsd  %xmm7,%xmm4
mulsd  %xmm0,%xmm4
mulsd  %xmm4,%xmm13
divsd  %xmm3,%xmm15
mulsd  %xmm3,%xmm3
divsd  %xmm3,%xmm14
subsd  %xmm14,%xmm15
mulsd  %xmm5,%xmm12
mulsd  %xmm7,%xmm12
mulsd  %xmm10,%xmm7
mulsd  %xmm0,%xmm10
mulsd  %xmm10,%xmm15
mulsd  %xmm8,%xmm6
mulsd  %xmm9,%xmm9
divsd  %xmm9,%xmm6
mulsd  %xmm0,%xmm7
subsd  %xmm6,%xmm0
mulsd  %xmm12,%xmm0
movapd %xmm7,%xmm3
mulsd  %xmm1,%xmm3
mov    0x2b8(%rsp),%rax
mov    0x58(%rsp),%rcx
movsd  %xmm3,(%rax,%rcx,8)
movsd  0x180(%rsp),%xmm8
movapd %xmm8,%xmm3
mulsd  %xmm7,%xmm3
mov    0x2d8(%rsp),%rax
movsd  %xmm3,(%rax,%rcx,8)
movsd  0x1b8(%rsp),%xmm3
mulsd  0x250(%rsp),%xmm3
movapd 0x1f0(%rsp),%xmm9
mulsd  %xmm9,%xmm7
addsd  %xmm3,%xmm7
mov    0x2f8(%rsp),%rax
movsd  %xmm7,(%rax,%rcx,8)
movapd %xmm13,%xmm3
mulsd  %xmm1,%xmm3
mov    0x2c0(%rsp),%rax
movsd  %xmm3,(%rax,%rcx,8)
movapd %xmm15,%xmm3
mulsd  %xmm1,%xmm3
mov    0x2c8(%rsp),%rax
movsd  %xmm3,(%rax,%rcx,8)
movapd %xmm0,%xmm3
mulsd  %xmm1,%xmm3
mov    0x2d0(%rsp),%rax
movsd  %xmm3,(%rax,%rcx,8)
movapd %xmm8,%xmm3
mulsd  %xmm13,%xmm3
mov    0x2e0(%rsp),%rax
movsd  %xmm3,(%rax,%rcx,8)
movapd %xmm8,%xmm3
mulsd  %xmm15,%xmm3
mov    0x2e8(%rsp),%rax
movsd  %xmm3,(%rax,%rcx,8)
movapd %xmm8,%xmm3
mulsd  %xmm0,%xmm3
mov    0x2f0(%rsp),%rax
movsd  %xmm3,(%rax,%rcx,8)
mulsd  %xmm9,%xmm13
mov    0x300(%rsp),%rax
movsd  %xmm13,(%rax,%rcx,8)
mulsd  %xmm9,%xmm15
mov    0x308(%rsp),%rax
movsd  %xmm15,(%rax,%rcx,8)
mulsd  %xmm9,%xmm0
addsd  0x178(%rsp),%xmm0
mov    0x310(%rsp),%rax
movsd  %xmm0,(%rax,%rcx,8)
mov    0x140(%rsp),%rbp
add    %rbp,%rbx
mov    0x100(%rsp),%r9
add    %rbp,%r9
mov    0x108(%rsp),%rcx
add    %rbp,%rcx
mov    0x110(%rsp),%rsi
add    %rbp,%rsi
mov    0x118(%rsp),%rdx
add    %rbp,%rdx
mov    0xa0(%rsp),%r8
mov    0x68(%rsp),%rax
add    %r8d,%eax
mov    %rax,0x68(%rsp)
add    %r8d,0x64(%rsp)
add    %rbp,0xd0(%rsp)
mov    0x168(%rsp),%rbp
add    %rbp,0xf0(%rsp)
add    %rbp,0xd8(%rsp)
add    %rbp,0xe8(%rsp)
add    %rbp,0xe0(%rsp)
mov    0x90(%rsp),%rax
cmp    0x170(%rsp),%rax
je     1f8e <groundwaterBiodegradation01EvaluateFC+0xe7e>
mov    %r9,0x100(%rsp)
mov    %rcx,0x108(%rsp)
mov    %rsi,0x110(%rsp)
mov    %rdx,0x118(%rsp)
mov    %rax,%rcx
add    $0x1,%rax
mov    %rax,0x90(%rsp)
mov    0x1a0(%rsp),%rax
movsd  (%rax,%rcx,8),%xmm2
mov    0x1a8(%rsp),%rax
movsd  (%rax,%rcx,8),%xmm14
mov    0x1b0(%rsp),%rax
movsd  (%rax,%rcx,8),%xmm6
movapd %xmm2,%xmm0
mulsd  %xmm1,%xmm0
mov    0x258(%rsp),%rax
movsd  %xmm0,(%rax,%rcx,8)
mov    0x260(%rsp),%rax
movsd  %xmm1,(%rax,%rcx,8)
movapd %xmm14,%xmm0
mulsd  %xmm1,%xmm0
mov    0x268(%rsp),%rax
movsd  %xmm0,(%rax,%rcx,8)
mov    0x270(%rsp),%rax
movsd  %xmm1,(%rax,%rcx,8)
movapd %xmm6,%xmm0
mulsd  %xmm1,%xmm0
mov    0x278(%rsp),%rax
movsd  %xmm0,0x1b8(%rsp)
movsd  %xmm0,(%rax,%rcx,8)
mov    0x280(%rsp),%rax
mov    %rcx,0x58(%rsp)
movsd  %xmm1,(%rax,%rcx,8)
cmpl   $0x0,0x14(%rsp)
jle    1330 <groundwaterBiodegradation01EvaluateFC+0x220>
mov    0x58(%rsp),%rax
add    %r12,%rax
mov    %rax,0x1c8(%rsp)
lea    (%r14,%rax,8),%rax
mov    %rax,0xf8(%rsp)
xorpd  %xmm0,%xmm0
xor    %eax,%eax
mov    0x118(%rsp),%rcx
mov    0x110(%rsp),%rdx
mov    0x108(%rsp),%rsi
mov    0x100(%rsp),%rbp
xchg   %ax,%ax
movsd  (%rbx,%rax,8),%xmm3
mulsd  %xmm2,%xmm3
movsd  %xmm3,0x0(%rbp,%rax,8)
movsd  (%rbx,%rax,8),%xmm3
movsd  %xmm3,(%rsi,%rax,8)
movsd  (%rbx,%rax,8),%xmm3
mulsd  %xmm14,%xmm3
movsd  %xmm3,(%rdx,%rax,8)
movsd  (%rbx,%rax,8),%xmm3
movsd  %xmm3,(%rcx,%rax,8)
movsd  (%rbx,%rax,8),%xmm3
mulsd  %xmm3,%xmm3
addsd  %xmm3,%xmm0
add    $0x1,%rax
cmp    %rax,%r12
jne    16f0 <groundwaterBiodegradation01EvaluateFC+0x5e0>
ucomisd 0x8d0(%rip),%xmm0
jb     1780 <groundwaterBiodegradation01EvaluateFC+0x670>
sqrtsd %xmm0,%xmm0
ucomisd 0x8c2(%rip),%xmm0
ja     17e5 <groundwaterBiodegradation01EvaluateFC+0x6d5>
cmpl   $0x0,0x14(%rsp)
jle    1330 <groundwaterBiodegradation01EvaluateFC+0x220>
cmpl   $0x1,0x14(%rsp)
jne    1ee3 <groundwaterBiodegradation01EvaluateFC+0xdd3>
xor    %eax,%eax
mov    %rdi,%rsi
jmp    1f46 <groundwaterBiodegradation01EvaluateFC+0xe36>
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
movsd  %xmm6,0x8(%rsp)
movsd  %xmm14,0x98(%rsp)
movsd  %xmm2,0xb8(%rsp)
call   1030 <sqrt@plt>
movsd  0xb8(%rsp),%xmm2
movsd  0x98(%rsp),%xmm14
movsd  0x8(%rsp),%xmm6
mov    0x2a8(%rsp),%rdi
mov    0x70(%rsp),%r10
movsd  0x158(%rsp),%xmm1
movsd  0x160(%rsp),%xmm11
ucomisd 0x831(%rip),%xmm0
jbe    1754 <groundwaterBiodegradation01EvaluateFC+0x644>
cmpl   $0x0,0x14(%rsp)
jle    1330 <groundwaterBiodegradation01EvaluateFC+0x220>
movapd %xmm0,%xmm10
mulsd  0xc8(%rsp),%xmm10
movsd  0x48(%rsp),%xmm9
addsd  %xmm10,%xmm9
mov    0x58(%rsp),%rax
mov    %rax,%rcx
imul   %r10,%rcx
mov    %rcx,0x1e8(%rsp)
imul   0xa0(%rsp),%rax
mov    %rax,0x1e0(%rsp)
addsd  0x50(%rsp),%xmm10
movapd %xmm0,%xmm3
unpcklpd %xmm0,%xmm3
mov    $0x1,%eax
mov    %rax,0x8(%rsp)
mov    0xe0(%rsp),%r15
mov    0xe8(%rsp),%rax
mov    %rax,0x130(%rsp)
mov    0xd8(%rsp),%rax
mov    0x68(%rsp),%rcx
mov    %ecx,0x24(%rsp)
mov    0xf0(%rsp),%rcx
mov    %rcx,0x138(%rsp)
mov    0xd0(%rsp),%r11
mov    0x64(%rsp),%ecx
mov    %ecx,0x20(%rsp)
mov    0x150(%rsp),%rbp
xor    %edx,%edx
jmp    1941 <groundwaterBiodegradation01EvaluateFC+0x831>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
movsd  (%r14,%r13,8),%xmm4
movapd %xmm11,%xmm7
mulsd  %xmm4,%xmm7
mulsd  %xmm4,%xmm7
divsd  %xmm0,%xmm7
addsd  %xmm10,%xmm7
mov    0x2b0(%rsp),%rcx
movsd  %xmm7,(%rcx,%r8,8)
addq   $0x1,0x8(%rsp)
mov    0xb8(%rsp),%rbp
add    $0xffffffffffffffff,%rbp
mov    0x1d8(%rsp),%r13
add    %r13d,0x20(%rsp)
add    $0x8,%r11
mov    0x1d0(%rsp),%rdx
add    %rdx,0x138(%rsp)
addl   $0x1,0x24(%rsp)
mov    0x140(%rsp),%rcx
add    %rcx,%rax
add    %rdx,0x130(%rsp)
add    %rcx,%r15
mov    0x98(%rsp),%rdx
cmp    %r12,%rdx
mov    0x2a8(%rsp),%rdi
je     1330 <groundwaterBiodegradation01EvaluateFC+0x220>
mov    0x1e8(%rsp),%rcx
lea    (%rdx,%rcx,1),%r13
movsd  (%r14,%r13,8),%xmm4
movapd %xmm11,%xmm7
mulsd  %xmm4,%xmm7
mulsd  %xmm4,%xmm7
divsd  %xmm0,%xmm7
addsd  %xmm9,%xmm7
mov    %edx,%ecx
imul   0x14(%rsp),%ecx
movslq %ecx,%r8
add    0x1e0(%rsp),%r8
add    %rdx,%r8
movsd  %xmm7,(%rdi,%r8,8)
lea    0x1(%rdx),%rcx
cmp    %r10,%rcx
mov    %rbp,0xb8(%rsp)
mov    %rcx,0x98(%rsp)
jge    18b0 <groundwaterBiodegradation01EvaluateFC+0x7a0>
and    $0xfffffffffffffffe,%rbp
mov    %rbp,0x120(%rsp)
mov    %rdx,%rsi
not    %rsi
add    %r12,%rsi
lea    (%rdx,%rdx,1),%rcx
mov    %rcx,0x88(%rsp)
mov    0x90(%rsp),%rbp
lea    0x0(,%rdx,2),%rcx
add    %rbp,%rcx
mov    %rcx,0x28(%rsp)
mov    0x1c8(%rsp),%rcx
lea    (%rcx,%rdx,1),%rcx
mov    %rcx,0x78(%rsp)
mov    0x58(%rsp),%rcx
add    %rdx,%rcx
lea    (%r14,%rcx,8),%rcx
mov    %rcx,0x80(%rsp)
lea    0x0(%rbp,%rdx,1),%rcx
lea    (%r14,%rcx,8),%rcx
mov    %rcx,0x128(%rsp)
mov    0x1c0(%rsp),%rcx
sub    %rdx,%rcx
mov    %rcx,0x30(%rsp)
mov    0x8(%rsp),%rdx
cmp    $0x2,%rsi
mov    0x14(%rsp),%ebp
jb     1c40 <groundwaterBiodegradation01EvaluateFC+0xb30>
mov    0x8(%rsp),%rdx
cmp    $0x1,%ebp
jne    1c40 <groundwaterBiodegradation01EvaluateFC+0xb30>
mov    0x90(%rsp),%rcx
mov    0x88(%rsp),%rdx
add    %edx,%ecx
mov    0x30(%rsp),%rdx
lea    (%rdx,%rcx,1),%edi
mov    0x8(%rsp),%rdx
cmp    %ecx,%edi
mov    0x2a8(%rsp),%rdi
jl     1c40 <groundwaterBiodegradation01EvaluateFC+0xb30>
mov    0x30(%rsp),%rcx
shr    $0x20,%rcx
mov    0x8(%rsp),%rdx
jne    1c40 <groundwaterBiodegradation01EvaluateFC+0xb30>
mov    0x28(%rsp),%r9
lea    (%rdi,%r9,8),%rdx
mov    0x2a8(%rsp),%rcx
mov    0x78(%rsp),%rdi
lea    (%rcx,%rdi,8),%rcx
mov    %rcx,0xa8(%rsp)
movslq %r9d,%r10
mov    0x2a8(%rsp),%rdi
mov    %rsi,%rcx
mov    %rsi,0x40(%rsp)
lea    (%rdi,%r10,8),%rsi
mov    %rsi,0xb0(%rsp)
mov    0x2a8(%rsp),%rdi
lea    (%rdi,%rcx,8),%r9
lea    (%r9,%r10,8),%r10
cmp    %r10,%rdx
setb   0x38(%rsp)
mov    0xa8(%rsp),%rdi
cmp    %rdi,%rsi
setb   0x7(%rsp)
mov    0x128(%rsp),%rcx
cmp    %rcx,%rdx
setb   0x1f(%rsp)
mov    0x80(%rsp),%r9
cmp    %rdi,%r9
setb   0x1e(%rsp)
mov    0xf8(%rsp),%rsi
cmp    %rsi,%rdx
setb   0x1d(%rsp)
cmp    %rdi,%rcx
mov    0x2a8(%rsp),%rdi
setb   0xa8(%rsp)
mov    0xb0(%rsp),%rdx
cmp    %rcx,%rdx
setb   0x1c(%rsp)
cmp    %r10,%r9
setb   0x1b(%rsp)
cmp    %rsi,%rdx
mov    0x40(%rsp),%rsi
setb   %r9b
cmp    %r10,%rcx
setb   %r10b
mov    0x8(%rsp),%rdx
mov    0x7(%rsp),%cl
test   %cl,0x38(%rsp)
jne    1c40 <groundwaterBiodegradation01EvaluateFC+0xb30>
mov    0x8(%rsp),%rdx
mov    0x1e(%rsp),%cl
and    %cl,0x1f(%rsp)
jne    1c40 <groundwaterBiodegradation01EvaluateFC+0xb30>
mov    0x8(%rsp),%rdx
mov    0xa8(%rsp),%cl
and    %cl,0x1d(%rsp)
jne    1c40 <groundwaterBiodegradation01EvaluateFC+0xb30>
mov    0x8(%rsp),%rdx
mov    0x1b(%rsp),%cl
and    %cl,0x1c(%rsp)
jne    1c40 <groundwaterBiodegradation01EvaluateFC+0xb30>
mov    0x8(%rsp),%rdx
and    %r10b,%r9b
jne    1c40 <groundwaterBiodegradation01EvaluateFC+0xb30>
and    $0xfffffffffffffffe,%rsi
mov    0x8(%rsp),%rcx
mov    %rsi,0x38(%rsp)
lea    (%rcx,%rsi,1),%rdx
movsd  (%r14,%r13,8),%xmm4
mulsd  %xmm11,%xmm4
unpcklpd %xmm4,%xmm4
mov    0x20(%rsp),%ecx
mov    %rdi,%rsi
xor    %edi,%edi
mov    0x60(%rsp),%r10d
mov    0x138(%rsp),%rbp
mov    %r11,%r9
mov    0x120(%rsp),%r11
nopw   0x0(%rax,%rax,1)
movupd (%r9,%rdi,8),%xmm7
mulpd  %xmm4,%xmm7
divpd  %xmm3,%xmm7
movupd %xmm7,0x0(%rbp,%rdi,8)
movslq %ecx,%rcx
movupd %xmm7,(%rsi,%rcx,8)
add    $0x2,%rdi
add    %r10d,%ecx
cmp    %rdi,%r11
jne    1c00 <groundwaterBiodegradation01EvaluateFC+0xaf0>
mov    %rsi,%rdi
mov    0x40(%rsp),%rsi
cmp    0x38(%rsp),%rsi
mov    %r9,%r11
mov    0x14(%rsp),%ebp
je     1c7e <groundwaterBiodegradation01EvaluateFC+0xb6e>
xchg   %ax,%ax
mov    %ebp,%r9d
imul   %edx,%r9d
add    0x24(%rsp),%r9d
nopl   0x0(%rax)
movsd  (%r14,%r13,8),%xmm4
mulsd  %xmm11,%xmm4
mulsd  (%rbx,%rdx,8),%xmm4
divsd  %xmm0,%xmm4
movsd  %xmm4,(%rax,%rdx,8)
movslq %r9d,%r9
movsd  %xmm4,(%rdi,%r9,8)
add    $0x1,%rdx
add    %ebp,%r9d
cmp    %rdx,%r12
jne    1c50 <groundwaterBiodegradation01EvaluateFC+0xb40>
movsd  (%r14,%r13,8),%xmm4
movapd %xmm11,%xmm7
mulsd  %xmm4,%xmm7
mulsd  %xmm4,%xmm7
divsd  %xmm0,%xmm7
addsd  %xmm10,%xmm7
mov    0x2b0(%rsp),%r9
movsd  %xmm7,(%r9,%r8,8)
mov    0x70(%rsp),%r10
cmp    %r10,0x98(%rsp)
jge    18da <groundwaterBiodegradation01EvaluateFC+0x7ca>
mov    0x8(%rsp),%rdx
cmp    $0x2,%rsi
jb     1ea0 <groundwaterBiodegradation01EvaluateFC+0xd90>
mov    0x8(%rsp),%rdx
cmp    $0x1,%ebp
jne    1ea0 <groundwaterBiodegradation01EvaluateFC+0xd90>
mov    0x88(%rsp),%rdi
add    0x90(%rsp),%edi
mov    0x30(%rsp),%rcx
add    %edi,%ecx
mov    0x8(%rsp),%rdx
cmp    %edi,%ecx
jl     1ea0 <groundwaterBiodegradation01EvaluateFC+0xd90>
shrq   $0x20,0x30(%rsp)
mov    0x8(%rsp),%rdx
jne    1ea0 <groundwaterBiodegradation01EvaluateFC+0xd90>
mov    0x28(%rsp),%rdx
lea    (%r9,%rdx,8),%rcx
mov    0x78(%rsp),%rdi
lea    (%r9,%rdi,8),%r8
movslq %edx,%rdi
lea    (%r9,%rdi,8),%r10
mov    %r10,0x28(%rsp)
lea    (%r9,%rsi,8),%rdx
lea    (%rdx,%rdi,8),%rdx
cmp    %rdx,%rcx
setb   0x30(%rsp)
cmp    %r8,%r10
setb   0x88(%rsp)
mov    0x128(%rsp),%rdi
cmp    %rdi,%rcx
setb   0x78(%rsp)
mov    0x80(%rsp),%r10
cmp    %r8,%r10
setb   0x38(%rsp)
mov    %rsi,0x40(%rsp)
mov    0xf8(%rsp),%rsi
cmp    %rsi,%rcx
setb   0xb0(%rsp)
cmp    %r8,%rdi
setb   0x7(%rsp)
mov    0x28(%rsp),%rcx
cmp    %rdi,%rcx
setb   %r8b
cmp    %rdx,%r10
setb   0x80(%rsp)
cmp    %rsi,%rcx
mov    0x70(%rsp),%r10
setb   0x28(%rsp)
cmp    %rdx,%rdi
setb   %dil
mov    0x8(%rsp),%rdx
mov    0x88(%rsp),%cl
test   %cl,0x30(%rsp)
jne    1ea0 <groundwaterBiodegradation01EvaluateFC+0xd90>
mov    0x8(%rsp),%rdx
mov    0x38(%rsp),%sil
and    %sil,0x78(%rsp)
jne    1ea0 <groundwaterBiodegradation01EvaluateFC+0xd90>
mov    0x8(%rsp),%rdx
mov    0xb0(%rsp),%cl
and    0x7(%rsp),%cl
jne    1ea0 <groundwaterBiodegradation01EvaluateFC+0xd90>
mov    0x8(%rsp),%rdx
and    0x80(%rsp),%r8b
jne    1ea0 <groundwaterBiodegradation01EvaluateFC+0xd90>
mov    0x8(%rsp),%rdx
and    %dil,0x28(%rsp)
jne    1ea0 <groundwaterBiodegradation01EvaluateFC+0xd90>
mov    0x40(%rsp),%rsi
and    $0xfffffffffffffffe,%rsi
mov    0x8(%rsp),%rcx
lea    (%rcx,%rsi,1),%rdx
movsd  (%r14,%r13,8),%xmm4
mulsd  %xmm11,%xmm4
unpcklpd %xmm4,%xmm4
mov    0x20(%rsp),%ecx
xor    %edi,%edi
mov    0x60(%rsp),%r10d
mov    %r11,%r8
mov    0x130(%rsp),%r11
mov    0x120(%rsp),%rbp
cs nopw 0x0(%rax,%rax,1)
nopl   (%rax)
movupd (%r8,%rdi,8),%xmm7
mulpd  %xmm4,%xmm7
divpd  %xmm3,%xmm7
movupd %xmm7,(%r11,%rdi,8)
movslq %ecx,%rcx
movupd %xmm7,(%r9,%rcx,8)
add    $0x2,%rdi
add    %r10d,%ecx
cmp    %rdi,%rbp
jne    1e60 <groundwaterBiodegradation01EvaluateFC+0xd50>
cmp    %rsi,0x40(%rsp)
mov    0x70(%rsp),%r10
mov    %r8,%r11
mov    0x14(%rsp),%ebp
je     18da <groundwaterBiodegradation01EvaluateFC+0x7ca>
mov    %ebp,%ecx
imul   %edx,%ecx
add    0x24(%rsp),%ecx
nopl   0x0(%rax)
movsd  (%r14,%r13,8),%xmm4
mulsd  %xmm11,%xmm4
mulsd  (%rbx,%rdx,8),%xmm4
divsd  %xmm0,%xmm4
movsd  %xmm4,(%r15,%rdx,8)
movslq %ecx,%rcx
movsd  %xmm4,(%r9,%rcx,8)
add    $0x1,%rdx
add    %ebp,%ecx
cmp    %rdx,%r12
jne    1eb0 <groundwaterBiodegradation01EvaluateFC+0xda0>
jmp    18da <groundwaterBiodegradation01EvaluateFC+0x7ca>
mov    0x68(%rsp),%rcx
xor    %eax,%eax
mov    0x148(%rsp),%r8
mov    %rdi,%rsi
mov    0x2b0(%rsp),%rdi
mov    0xc4(%rsp),%ebp
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
movslq %ecx,%rcx
movsd  0x48(%rsp),%xmm3
movsd  %xmm3,(%rsi,%rcx,8)
movsd  0x50(%rsp),%xmm0
movsd  %xmm0,(%rdi,%rcx,8)
lea    0x0(%r13,%rcx,1),%edx
movslq %edx,%rdx
movsd  %xmm3,(%rsi,%rdx,8)
movsd  %xmm0,(%rdi,%rdx,8)
add    $0x2,%rax
add    %ebp,%ecx
cmp    %rax,%r8
jne    1f10 <groundwaterBiodegradation01EvaluateFC+0xe00>
test   $0x1,%r12b
mov    %rsi,%rdi
je     1330 <groundwaterBiodegradation01EvaluateFC+0x220>
mov    0x58(%rsp),%rcx
imul   0xa0(%rsp),%ecx
add    %eax,%ecx
imul   0x14(%rsp),%eax
add    %ecx,%eax
cltq
movsd  0x48(%rsp),%xmm0
movsd  %xmm0,(%rdi,%rax,8)
mov    0x2b0(%rsp),%rcx
movsd  0x50(%rsp),%xmm0
movsd  %xmm0,(%rcx,%rax,8)
jmp    1330 <groundwaterBiodegradation01EvaluateFC+0x220>
add    $0x208,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

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

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