// File: /workspace/github_c_makefile_star2_O2/PoulinV[P]AxiCLASS/build/../external/HyRec2020/hydrogen.c
// Function: populateTS_2photon
void populateTS_2photon(double Trr[2][2], double *Trv[2], double *Tvr[2], double *Tvv[3],
                        double sr[2], double sv[NVIRT], double Dtau[NVIRT],
                        double xe, double xHII, double TM, double TR, double nH, double H, HYREC_ATOMIC *atomic,
                        double Dfplus[NVIRT], double Dfplus_Ly[],
                        double Alpha[2], double DAlpha[2], double Beta[2], double fsR, double meR, double exclya,
                        int *error, char error_message[SIZE_ErrorM]) {

  unsigned b;
  double R2p2s, RLya, Gammab, one_minus_Pib, dbfact, x1s, s, Dxe2;
  double A2p_up, A2p_dn, rescale2g, rescalediff;
  double *Aup, *Adn;
  char sub_message[128];

  /*** Added May 2012: rescalings for dependence on alpha and me ***/
  rescale2g   = square(fsR*fsR*fsR*fsR)*meR;  /* for two-photon rates */
  rescalediff = rescale2g * fsR*fsR*meR;
  /* diffusion rate ~ two-photon rate * TM ~ two-photon rate * alpha^2 me * rescaled(TM) [which is assumed as an input] */


  Aup = create_1D_array(NVIRT, error, error_message);
  Adn = create_1D_array(NVIRT, error, error_message);

  x1s  = 1.-xHII;
  s    = SAHA_FACT(fsR, meR) *TR*sqrt(TR) *exp(-EI/TR)/nH;
  Dxe2 = xe*xHII - s*x1s;

  RLya = LYA_FACT(fsR, meR) *H /nH/x1s;   /*8 PI H/(3 nH x1s lambda_Lya^3) */

  interpolate_rates(Alpha, DAlpha, Beta, &R2p2s, TR, TM / TR, atomic, fsR, meR, error, error_message);
  if (*error == 1) {
    sprintf(sub_message, "  called from populateTS_2photon\n");
    strcat(error_message, sub_message);
    return;
  }


 /****** 2s row and column ******/

  Trr[0][0] = Beta[0] + 3.*R2p2s
            + 3.* RLya * (1.664786871919931 *exp(-E32/TR)   /* Ly-beta escape */
            + 1.953125 *exp(-E42/TR));      /* Ly-gamma escape */

  Trr[0][1] = -R2p2s;
  sr[0]     = nH * (s*x1s*DAlpha[0] + Alpha[0]*Dxe2) + 3.* RLya * x1s * 1.664786871919931 *Dfplus_Ly[1];
  sr[0]    += 0.25 *exclya;

  #if (EFFECT_A == 0)                /* Standard treatment of 2s-->1s two-photon decays */
    Trr[0][0] += L2s1s*rescale2g;  /* rescaled for alpha, me */
  #endif


  /****** 2p row and column ******/

  Trr[1][1] = Beta[1] + R2p2s + RLya;
  Trr[1][0] = -3.*R2p2s;
  sr[1]     = nH * (s*x1s*DAlpha[1] + Alpha[1]*Dxe2) + 3.*RLya * x1s * Dfplus_Ly[0];
  sr[1]    += 0.75 *exclya;

  /***** Two-photon transitions: populating Trv, Tvr and updating Trr ******/

  for (b = 0; b < NVIRT; b++) {
    dbfact = exp((atomic->Eb_tab[b] - E21)/TR);

    Trr[0][0] -= Tvr[0][b] = -rescale2g*atomic->A2s_tab[b]/fabs(exp((atomic->Eb_tab[b] - E21)/TR)-1.);
    Trv[0][b]  = Tvr[0][b] *dbfact;

    Trr[1][1] -= Tvr[1][b] = -exp(-E32/TR)/3. * rescale2g*atomic->A3s3d_tab[b]/fabs(exp((atomic->Eb_tab[b] - E31)/TR)-1.)
                             -exp(-E42/TR)/3. * rescale2g*atomic->A4s4d_tab[b]/fabs(exp((atomic->Eb_tab[b] - E41)/TR)-1.);
    Trv[1][b] = Tvr[1][b] *3.*dbfact;
  }

  /****** Tvv and sv. Accounting for DIFFUSION ******/

  populate_Diffusion(Aup, Adn, &A2p_up, &A2p_dn, TM, atomic->Eb_tab, atomic->A1s_tab);

  /*** Added May 2012: rescale for dependence on alpha and me ***/
  A2p_up *= rescalediff;
  A2p_dn *= rescalediff;
  for (b = 0; b < NVIRT; b++) {
    Aup[b] *= rescalediff;
    Adn[b] *= rescalediff;
  }

  /* Updating Tvr, Trv, Trr for diffusion between line center ("2p state") and two neighboring bins */

  Trr[1][1] += (A2p_dn + A2p_up);

  for (b = 0; b < NVIRT; b++) {

    Gammab = -(Trv[0][b] + Trv[1][b]) + Aup[b] + Adn[b];    /* Inverse lifetime of virtual state b */

    /*** Diffusion region ***/
    if (  (b >= NSUBLYA - NDIFF/2 && b < NSUBLYA - 1)  ||(b > NSUBLYA && b < NSUBLYA + NDIFF/2)) {
      Tvv[1][b] = -Aup[b-1];
      Tvv[2][b] = -Adn[b+1];
    }
    /* Bins neighboring Lyman alpha. */
    if (b == NSUBLYA-1)  {
      Tvv[1][b] = -Aup[b-1];
      Tvv[2][b] = 0.;
      Tvr[1][b] -= A2p_dn;
      Trv[1][b] -= Aup[b];
    }
    if (b == NSUBLYA)  {
      Tvv[1][b] = 0.;
      Tvv[2][b] = -Adn[b+1];
       Tvr[1][b] -= A2p_up;
       Trv[1][b] -= Adn[b];
    }
    /*********************/

    Dtau[b] = Gammab * x1s * cube(hPc/atomic->Eb_tab[b]/fsR/fsR/meR) * nH /8. /M_PI /H;
    /* Rescaled for alpha, me*/

    one_minus_Pib = Dtau[b] > 1e-6 ? 1.- (1.-exp(-Dtau[b]))/Dtau[b] : Dtau[b]/2. - square(Dtau[b])/6.;
    Tvv[0][b] = Dtau[b] > 0.? Gammab/one_minus_Pib : 2./(x1s * cube(hPc/atomic->Eb_tab[b]/fsR/fsR/meR) * nH /8. /M_PI /H);  /* Added May 2012: proper limit Dtau->0 */
    sv[b]  = Tvv[0][b] * x1s * Dfplus[b] * (1.-one_minus_Pib);

  }

  free(Aup);
  free(Adn);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1e8, %rsp            # imm = 0x1E8
movsd %xmm7, 0x20(%rsp)
movsd %xmm5, 0x90(%rsp)
movsd %xmm4, 0x58(%rsp)
movsd %xmm3, 0x8(%rsp)
movsd %xmm2, 0x98(%rsp)
movsd %xmm1, 0x78(%rsp)
movsd %xmm0, 0x30(%rsp)
movq %r9, 0x120(%rsp)
movq %r8, 0xf8(%rsp)
movq %rcx, 0x80(%rsp)
movq %rdx, 0xa0(%rsp)
movq %rsi, 0xa8(%rsp)
movq %rdi, 0x88(%rsp)
movq 0x268(%rsp), %rbp
movq 0x260(%rsp), %rbx
movsd 0x258(%rsp), %xmm0
movsd %xmm0, 0xf0(%rsp)
movq 0x250(%rsp), %rax
movq %rax, 0xc0(%rsp)
movq 0x248(%rsp), %rax
movq %rax, 0x28(%rsp)
movq 0x240(%rsp), %r12
movq 0x238(%rsp), %rax
movq %rax, 0xe8(%rsp)
movq 0x230(%rsp), %rax
movq %rax, 0x118(%rsp)
movq 0x228(%rsp), %r15
movq 0x220(%rsp), %rax
movq %rax, 0x100(%rsp)
movsd %xmm6, 0x18(%rsp)
movapd %xmm6, %xmm0
mulsd %xmm6, %xmm0
mulsd %xmm6, %xmm0
mulsd %xmm6, %xmm0
callq 0xcbe48
movapd %xmm0, 0x60(%rsp)
movl $0x137, %edi            # imm = 0x137
movq %rbx, %rsi
movq %rbp, %rdx
callq 0xcbe5a
movq %rax, %r13
movl $0x137, %edi            # imm = 0x137
movq %rbx, %rsi
movq %rbp, %r14
movq %rbp, %rdx
callq 0xcbe5a
movq %rax, %rbp
movsd 0x18(%rsp), %xmm0
movsd 0x20(%rsp), %xmm1
callq 0xcd0fc
movsd %xmm0, 0x10(%rsp)
xorpd %xmm0, %xmm0
movsd 0x8(%rsp), %xmm1
ucomisd %xmm0, %xmm1
movapd %xmm1, %xmm0
jb 0xcef7b
sqrtsd %xmm0, %xmm1
movsd %xmm1, 0x48(%rsp)
jmp 0xcef86
callq 0x82d0
movsd %xmm0, 0x48(%rsp)
movsd 0x52292(%rip), %xmm0    # 0x121220
divsd 0x8(%rsp), %xmm0
callq 0x86a0
movsd %xmm0, 0xb0(%rsp)
movsd 0x18(%rsp), %xmm0
movsd 0x20(%rsp), %xmm1
callq 0xcd110
movsd %xmm0, 0x40(%rsp)
movsd 0x98(%rsp), %xmm1
movsd 0x8(%rsp), %xmm0
divsd %xmm0, %xmm1
movq %r14, (%rsp)
leaq 0x128(%rsp), %rcx
movq %r12, %rdi
movq %r12, 0xe0(%rsp)
movq 0x28(%rsp), %rsi
movq 0xc0(%rsp), %r12
movq %r12, %rdx
movq %r15, %r8
movsd 0x18(%rsp), %xmm2
movsd 0x20(%rsp), %xmm3
movq %rbx, %r9
callq 0xcdbf0
cmpl $0x1, (%rbx)
jne 0xcf04c
movaps 0x5256a(%rip), %xmm0    # 0x121580
leaq 0x160(%rsp), %rsi
movaps %xmm0, 0x10(%rsi)
movaps 0x52547(%rip), %xmm0    # 0x121570
movaps %xmm0, (%rsi)
movw $0xa, 0x20(%rsi)
movq %r14, %rdi
callq 0x8690
addq $0x1e8, %rsp            # imm = 0x1E8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movapd 0x60(%rsp), %xmm1
movsd 0x20(%rsp), %xmm2
mulsd %xmm2, %xmm1
movapd %xmm1, 0x60(%rsp)
movsd 0x18(%rsp), %xmm0
mulsd %xmm0, %xmm1
mulsd %xmm0, %xmm1
movsd 0x161e8(%rip), %xmm4    # 0xe5260
mulsd %xmm2, %xmm1
movapd %xmm1, 0x140(%rsp)
movsd 0x78(%rsp), %xmm0
subsd %xmm0, %xmm4
movsd 0x40(%rsp), %xmm3
mulsd 0x90(%rsp), %xmm3
movsd 0x58(%rsp), %xmm1
divsd %xmm1, %xmm3
movapd %xmm1, %xmm2
divsd %xmm4, %xmm3
movsd %xmm4, 0x50(%rsp)
movsd %xmm3, 0x40(%rsp)
movsd 0x10(%rsp), %xmm1
movsd 0x8(%rsp), %xmm5
mulsd %xmm5, %xmm1
mulsd 0x48(%rsp), %xmm1
mulsd 0xb0(%rsp), %xmm1
divsd %xmm2, %xmm1
mulsd %xmm4, %xmm1
movsd %xmm1, 0x10(%rsp)
movsd 0x30(%rsp), %xmm2
mulsd %xmm0, %xmm2
subsd %xmm1, %xmm2
movsd %xmm2, 0x30(%rsp)
movsd 0x128(%rsp), %xmm1
movapd %xmm1, 0xb0(%rsp)
movsd 0x17631(%rip), %xmm0    # 0xe6748
mulsd %xmm0, %xmm1
addsd (%r12), %xmm1
movapd %xmm1, 0x130(%rsp)
mulsd %xmm0, %xmm3
movsd %xmm3, 0xd8(%rsp)
movsd 0x52149(%rip), %xmm0    # 0x121288
divsd %xmm5, %xmm0
movsd %xmm0, 0x78(%rsp)
callq 0x86a0
movsd %xmm0, 0xd0(%rsp)
movsd 0x52131(%rip), %xmm0    # 0x121290
divsd 0x8(%rsp), %xmm0
movsd %xmm0, 0x48(%rsp)
callq 0x86a0
mulsd 0x52120(%rip), %xmm0    # 0x121298
movsd 0x52120(%rip), %xmm1    # 0x1212a0
movsd 0xd0(%rsp), %xmm2
mulsd %xmm1, %xmm2
addsd %xmm0, %xmm2
movsd 0xd8(%rsp), %xmm4
mulsd %xmm4, %xmm2
addsd 0x130(%rsp), %xmm2
movq 0x88(%rsp), %rax
movsd %xmm2, (%rax)
movapd 0x16075(%rip), %xmm3    # 0xe5230
movapd 0xb0(%rsp), %xmm8
movapd %xmm8, %xmm0
xorpd %xmm3, %xmm0
movlpd %xmm0, 0x8(%rax)
movq 0xe0(%rsp), %rdi
movsd (%rdi), %xmm0
movsd 0x30(%rsp), %xmm7
mulsd %xmm7, %xmm0
movq 0x28(%rsp), %rsi
movsd (%rsi), %xmm2
movsd 0x10(%rsp), %xmm6
mulsd %xmm6, %xmm2
addsd %xmm0, %xmm2
movapd %xmm4, %xmm0
mulsd 0x50(%rsp), %xmm0
mulsd %xmm0, %xmm1
movapd %xmm0, %xmm5
movq 0xe8(%rsp), %rdx
mulsd 0x8(%rdx), %xmm1
movsd 0x58(%rsp), %xmm4
mulsd %xmm4, %xmm2
addsd %xmm1, %xmm2
movsd 0x192cb(%rip), %xmm0    # 0xe8500
movsd 0xf0(%rsp), %xmm1
mulsd %xmm1, %xmm0
addsd %xmm2, %xmm0
movq 0xf8(%rsp), %rcx
movsd %xmm0, (%rcx)
movsd 0x8(%r12), %xmm0
movapd %xmm8, %xmm2
addsd %xmm8, %xmm0
addsd 0x40(%rsp), %xmm0
movsd %xmm0, 0x18(%rax)
mulsd 0x191ca(%rip), %xmm2    # 0xe8440
movsd %xmm2, 0x10(%rax)
movapd %xmm7, %xmm2
mulsd 0x8(%rdi), %xmm2
movapd %xmm6, %xmm0
mulsd 0x8(%rsi), %xmm0
addsd %xmm2, %xmm0
mulsd (%rdx), %xmm5
mulsd %xmm4, %xmm0
addsd %xmm5, %xmm0
mulsd 0x1a773(%rip), %xmm1    # 0xe9a18
addsd %xmm0, %xmm1
movsd %xmm1, 0x8(%rcx)
leaq 0x7b0(%r15), %rax
movq %rax, 0x28(%rsp)
movapd 0x60(%rsp), %xmm0
xorpd %xmm3, %xmm0
movapd %xmm0, 0xc0(%rsp)
xorl %r14d, %r14d
movq %rbp, 0x110(%rsp)
movq %r15, 0x108(%rsp)
movq 0xa0(%rsp), %r12
movq 0x88(%rsp), %rbx
cmpq $0x137, %r14            # imm = 0x137
je 0xcf4ce
movq 0x28(%rsp), %r15
movsd (%r15,%r14,8), %xmm0
movsd 0x51f70(%rip), %xmm1    # 0x121280
addsd %xmm1, %xmm0
divsd 0x8(%rsp), %xmm0
callq 0x86a0
movsd %xmm0, 0x10(%rsp)
movsd 0x1370(%r15,%r14,8), %xmm0
mulsd 0xc0(%rsp), %xmm0
movsd %xmm0, 0x30(%rsp)
movsd (%r15,%r14,8), %xmm0
addsd 0x51f34(%rip), %xmm0    # 0x121280
divsd 0x8(%rsp), %xmm0
callq 0x86a0
movsd 0x16489(%rip), %xmm1    # 0xe57e8
addsd %xmm1, %xmm0
movapd 0x15ed5(%rip), %xmm1    # 0xe5240
andpd %xmm1, %xmm0
movsd 0x30(%rsp), %xmm1
divsd %xmm0, %xmm1
movq (%r12), %rax
movsd %xmm1, (%rax,%r14,8)
movsd (%rbx), %xmm0
subsd %xmm1, %xmm0
movsd %xmm0, (%rbx)
movsd (%rax,%r14,8), %xmm0
mulsd 0x10(%rsp), %xmm0
movq %r13, %rbp
movq 0xa8(%rsp), %r13
movq (%r13), %rax
movsd %xmm0, (%rax,%r14,8)
movsd 0x78(%rsp), %xmm0
callq 0x86a0
movapd %xmm0, %xmm1
movsd 0x19079(%rip), %xmm0    # 0xe8440
divsd %xmm0, %xmm1
mulsd 0x60(%rsp), %xmm1
mulsd 0x1d28(%r15,%r14,8), %xmm1
movsd %xmm1, 0x30(%rsp)
movsd (%r15,%r14,8), %xmm0
addsd 0x51eb9(%rip), %xmm0    # 0x1212a8
divsd 0x8(%rsp), %xmm0
callq 0x86a0
addsd 0x163e6(%rip), %xmm0    # 0xe57e8
andpd 0x15e36(%rip), %xmm0    # 0xe5240
movsd 0x30(%rsp), %xmm1
divsd %xmm0, %xmm1
movsd %xmm1, 0x30(%rsp)
movsd 0x48(%rsp), %xmm0
callq 0x86a0
divsd 0x19013(%rip), %xmm0    # 0xe8440
mulsd 0x60(%rsp), %xmm0
mulsd 0x26e0(%r15,%r14,8), %xmm0
movsd %xmm0, 0x40(%rsp)
movsd (%r15,%r14,8), %xmm0
movq 0x108(%rsp), %r15
addsd 0x51e57(%rip), %xmm0    # 0x1212b0
divsd 0x8(%rsp), %xmm0
callq 0x86a0
addsd 0x1637c(%rip), %xmm0    # 0xe57e8
andpd 0x15dcc(%rip), %xmm0    # 0xe5240
movsd 0x40(%rsp), %xmm1
divsd %xmm0, %xmm1
addsd 0x30(%rsp), %xmm1
movq 0x8(%r12), %rax
movsd %xmm1, (%rax,%r14,8)
movsd 0x18(%rbx), %xmm0
subsd %xmm1, %xmm0
movsd %xmm0, 0x18(%rbx)
movsd (%rax,%r14,8), %xmm0
mulsd 0x1729d(%rip), %xmm0    # 0xe6748
mulsd 0x10(%rsp), %xmm0
movq 0x8(%r13), %rax
movq %rbp, %r13
movq 0x110(%rsp), %rbp
movsd %xmm0, (%rax,%r14,8)
incq %r14
jmp 0xcf2f0
addq $0x1168, %r15           # imm = 0x1168
leaq 0x160(%rsp), %r14
leaq 0x158(%rsp), %rbx
movq %r13, %rdi
movq %rbp, %rsi
movq %r14, %rdx
movq %rbx, %rcx
movsd 0x98(%rsp), %xmm0
movq 0x28(%rsp), %r8
movq %r15, %r9
callq 0xcea26
movsd (%r14), %xmm0
movapd 0x140(%rsp), %xmm1
mulsd %xmm1, %xmm0
movsd %xmm0, 0x10(%rsp)
movsd (%rbx), %xmm0
mulsd %xmm1, %xmm0
movsd %xmm0, 0x60(%rsp)
xorl %eax, %eax
movsd 0x20(%rsp), %xmm2
movsd 0x18(%rsp), %xmm3
movq 0x80(%rsp), %rsi
movq 0x100(%rsp), %r12
movsd 0x50(%rsp), %xmm4
cmpq $0x137, %rax            # imm = 0x137
je 0xcf580
movsd (%r13,%rax,8), %xmm0
mulsd %xmm1, %xmm0
movsd %xmm0, (%r13,%rax,8)
movsd (%rbp,%rax,8), %xmm0
mulsd %xmm1, %xmm0
movsd %xmm0, (%rbp,%rax,8)
incq %rax
jmp 0xcf551
movsd 0x10(%rsp), %xmm0
addsd 0x60(%rsp), %xmm0
movq 0x88(%rsp), %rax
addsd 0x18(%rax), %xmm0
movsd %xmm0, 0x18(%rax)
xorl %r15d, %r15d
xorl %r14d, %r14d
cmpq $0x137, %r14            # imm = 0x137
je 0xcf87b
movq 0xa8(%rsp), %rax
movq (%rax), %rcx
movq 0x8(%rax), %rax
movsd (%rcx,%r14,8), %xmm0
addsd (%rax,%r14,8), %xmm0
movsd (%r13,%r14,8), %xmm5
subsd %xmm0, %xmm5
addsd (%rbp,%r14,8), %xmm5
leal -0x64(%r14), %ecx
cmpl $0x27, %ecx
setae %cl
leal -0x8d(%r14), %edx
cmpl $0x27, %edx
setae %dl
testb %dl, %cl
jne 0xcf62b
movsd -0x8(%r13,%r14,8), %xmm0
movapd 0x15c28(%rip), %xmm1    # 0xe5230
xorpd %xmm1, %xmm0
movq 0x8(%rsi), %rcx
movlpd %xmm0, (%rcx,%r14,8)
movsd 0x8(%rbp,%r14,8), %xmm0
xorpd %xmm1, %xmm0
movq 0x10(%rsi), %rcx
movlpd %xmm0, (%rcx,%r14,8)
cmpl $0x8c, %r14d
je 0xcf669
cmpl $0x8b, %r14d
jne 0xcf6c8
leaq (%r15,%r13), %rcx
movsd 0x450(%r13), %xmm0
xorps 0x15bdb(%rip), %xmm0    # 0xe5230
movq 0x8(%rsi), %rdx
movlps %xmm0, (%rdx,%r14,8)
xorps %xmm0, %xmm0
movsd 0x60(%rsp), %xmm1
jmp 0xcf692
movq 0x8(%rsi), %rcx
andq $0x0, (%rcx,%r14,8)
leaq (,%r14,8), %rcx
addq %rbp, %rcx
movsd 0x468(%rbp), %xmm0
xorps 0x15ba4(%rip), %xmm0    # 0xe5230
movsd 0x10(%rsp), %xmm1
movq 0x10(%rsi), %rdx
movsd %xmm0, (%rdx,%r14,8)
movq 0xa0(%rsp), %rdx
movq 0x8(%rdx), %rdx
movsd (%rdx,%r14,8), %xmm0
subsd %xmm1, %xmm0
movsd %xmm0, (%rdx,%r14,8)
movsd (%rax,%r14,8), %xmm0
subsd (%rcx), %xmm0
movsd %xmm0, (%rax,%r14,8)
movsd 0x51be8(%rip), %xmm0    # 0x1212b8
movq 0x28(%rsp), %rax
divsd (%rax,%r14,8), %xmm0
movsd %xmm5, 0x8(%rsp)
mulsd %xmm5, %xmm4
movsd %xmm4, 0x30(%rsp)
divsd %xmm3, %xmm0
divsd %xmm3, %xmm0
divsd %xmm2, %xmm0
callq 0xcbe4d
mulsd 0x30(%rsp), %xmm0
mulsd 0x58(%rsp), %xmm0
mulsd 0x1a2a0(%rip), %xmm0    # 0xe99b0
divsd 0x18880(%rip), %xmm0    # 0xe7f98
divsd 0x90(%rsp), %xmm0
movsd %xmm0, (%r12,%r14,8)
ucomisd 0x165a1(%rip), %xmm0    # 0xe5cd0
jbe 0xcf75e
xorpd 0x15af7(%rip), %xmm0    # 0xe5230
callq 0x86a0
movsd 0x15b1a(%rip), %xmm5    # 0xe5260
movapd %xmm5, %xmm1
subsd %xmm0, %xmm1
movsd (%r12,%r14,8), %xmm0
divsd %xmm0, %xmm1
subsd %xmm1, %xmm5
jmp 0xcf78d
movapd %xmm0, %xmm1
mulsd 0x16546(%rip), %xmm1    # 0xe5cb0
movapd %xmm1, 0x30(%rsp)
callq 0xcbe48
movapd %xmm0, %xmm5
divsd 0x16ec7(%rip), %xmm5    # 0xe6648
addsd 0x30(%rsp), %xmm5
movsd (%r12,%r14,8), %xmm0
ucomisd 0x15ac3(%rip), %xmm0    # 0xe5258
movsd 0x20(%rsp), %xmm2
movsd 0x18(%rsp), %xmm3
movsd 0x8(%rsp), %xmm1
jbe 0xcf7bd
divsd %xmm5, %xmm1
movq 0x80(%rsp), %rsi
movsd 0x50(%rsp), %xmm4
jmp 0xcf836
movsd 0x51af3(%rip), %xmm0    # 0x1212b8
movq 0x28(%rsp), %rax
divsd (%rax,%r14,8), %xmm0
divsd %xmm3, %xmm0
divsd %xmm3, %xmm0
divsd %xmm2, %xmm0
movsd %xmm5, 0x8(%rsp)
callq 0xcbe4d
movsd 0x8(%rsp), %xmm5
movsd 0x18(%rsp), %xmm3
movsd 0x20(%rsp), %xmm2
movsd 0x50(%rsp), %xmm4
mulsd %xmm4, %xmm0
mulsd 0x58(%rsp), %xmm0
mulsd 0x1a19f(%rip), %xmm0    # 0xe99b0
divsd 0x1877f(%rip), %xmm0    # 0xe7f98
divsd 0x90(%rsp), %xmm0
movsd 0x164b6(%rip), %xmm1    # 0xe5ce0
divsd %xmm0, %xmm1
movq 0x80(%rsp), %rsi
movq (%rsi), %rax
movsd %xmm1, (%rax,%r14,8)
mulsd %xmm4, %xmm1
movq 0x118(%rsp), %rax
mulsd (%rax,%r14,8), %xmm1
movsd 0x15a07(%rip), %xmm0    # 0xe5260
subsd %xmm5, %xmm0
mulsd %xmm1, %xmm0
movq 0x120(%rsp), %rax
movsd %xmm0, (%rax,%r14,8)
incq %r14
addq $0x8, %r15
jmp 0xcf5a4
movq %r13, %rdi
callq 0x8430
movq %rbp, %rdi
addq $0x1e8, %rsp            # imm = 0x1E8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x8430