// File: /workspace/github_c_makefile_star2_O1/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 $0x1d8, %rsp            # imm = 0x1D8
movsd %xmm7, 0x20(%rsp)
movsd %xmm5, 0x98(%rsp)
movsd %xmm4, 0x58(%rsp)
movsd %xmm3, 0x10(%rsp)
movsd %xmm2, 0xa8(%rsp)
movsd %xmm1, 0x80(%rsp)
movsd %xmm0, 0x30(%rsp)
movq %r9, 0x118(%rsp)
movq %r8, 0xf0(%rsp)
movq %rcx, 0x90(%rsp)
movq %rdx, 0x50(%rsp)
movq %rsi, 0xa0(%rsp)
movq %rdi, %rbx
movq 0x258(%rsp), %rbp
movq 0x250(%rsp), %r14
movsd 0x248(%rsp), %xmm0
movsd %xmm0, 0xf8(%rsp)
movq 0x240(%rsp), %rax
movq %rax, 0x100(%rsp)
movq 0x238(%rsp), %rax
movq %rax, 0xc0(%rsp)
movq 0x230(%rsp), %r13
movq 0x228(%rsp), %rax
movq %rax, 0xe8(%rsp)
movq 0x220(%rsp), %rax
movq %rax, 0x110(%rsp)
movq 0x218(%rsp), %r15
movq 0x210(%rsp), %rax
movq %rax, 0x108(%rsp)
movsd %xmm6, 0x40(%rsp)
movapd %xmm6, %xmm0
mulsd %xmm6, %xmm0
movsd %xmm0, 0x28(%rsp)
mulsd %xmm6, %xmm0
mulsd %xmm6, %xmm0
callq 0xd6f4c
movapd %xmm0, 0x60(%rsp)
movl $0x137, %edi            # imm = 0x137
movq %r14, %rsi
movq %rbp, %rdx
callq 0xd6f5e
movq %rax, 0x88(%rsp)
movl $0x137, %edi            # imm = 0x137
movq %r14, %rsi
movq %rbp, %r12
movq %rbp, %rdx
callq 0xd6f5e
movq %rax, %rbp
movsd 0x40(%rsp), %xmm0
mulsd 0x20(%rsp), %xmm0
callq 0xd6f51
movsd %xmm0, 0x78(%rsp)
xorpd %xmm0, %xmm0
movsd 0x10(%rsp), %xmm1
ucomisd %xmm0, %xmm1
jb 0xda39c
xorps %xmm0, %xmm0
sqrtsd 0x10(%rsp), %xmm0
jmp 0xda3a7
movsd 0x10(%rsp), %xmm0
callq 0x82b0
movsd %xmm0, 0xb0(%rsp)
movsd 0x52f98(%rip), %xmm0    # 0x12d350
divsd 0x10(%rsp), %xmm0
callq 0x8670
movsd %xmm0, 0x18(%rsp)
movsd 0x28(%rsp), %xmm0
mulsd 0x20(%rsp), %xmm0
callq 0xd6f51
movsd %xmm0, 0x28(%rsp)
movsd 0xa8(%rsp), %xmm1
movsd 0x10(%rsp), %xmm0
divsd %xmm0, %xmm1
movq %r12, (%rsp)
leaq 0x128(%rsp), %rcx
movq %r13, 0xe0(%rsp)
movq %r13, %rdi
movq 0xc0(%rsp), %rsi
movq 0x100(%rsp), %r13
movq %r13, %rdx
movq %r15, %r8
movsd 0x40(%rsp), %xmm2
movsd 0x20(%rsp), %xmm3
movq %r14, %r9
callq 0xd8f27
cmpl $0x1, (%r14)
jne 0xda477
movaps 0x5329f(%rip), %xmm0    # 0x12d6e0
leaq 0x150(%rsp), %rsi
movaps %xmm0, 0x10(%rsi)
movaps 0x5327c(%rip), %xmm0    # 0x12d6d0
movaps %xmm0, (%rsi)
movw $0xa, 0x20(%rsi)
movq %r12, %rdi
callq 0x8660
addq $0x1d8, %rsp            # imm = 0x1D8
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 0x40(%rsp), %xmm0
mulsd %xmm0, %xmm1
mulsd %xmm0, %xmm1
movsd 0x16dbd(%rip), %xmm0    # 0xf1260
mulsd %xmm2, %xmm1
movapd %xmm1, 0x140(%rsp)
movapd %xmm0, %xmm1
movsd 0x80(%rsp), %xmm0
subsd %xmm0, %xmm1
movapd %xmm1, %xmm6
movsd %xmm1, 0x48(%rsp)
movsd 0x28(%rsp), %xmm3
mulsd 0x52e4f(%rip), %xmm3    # 0x12d328
movsd 0x78(%rsp), %xmm4
mulsd 0x52e39(%rip), %xmm4    # 0x12d320
mulsd 0x98(%rsp), %xmm3
movsd 0x58(%rsp), %xmm1
divsd %xmm1, %xmm3
movapd %xmm1, %xmm2
divsd %xmm6, %xmm3
movsd %xmm3, 0x28(%rsp)
movsd 0x10(%rsp), %xmm1
mulsd %xmm1, %xmm4
movapd %xmm1, %xmm7
movsd 0xb0(%rsp), %xmm5
mulsd %xmm4, %xmm5
movsd 0x18(%rsp), %xmm1
mulsd %xmm5, %xmm1
divsd %xmm2, %xmm1
mulsd %xmm6, %xmm1
movsd %xmm1, 0x18(%rsp)
movsd 0x30(%rsp), %xmm2
mulsd %xmm0, %xmm2
subsd %xmm1, %xmm2
movsd %xmm2, 0x30(%rsp)
movsd 0x128(%rsp), %xmm1
movapd %xmm1, 0xb0(%rsp)
movsd 0x18117(%rip), %xmm0    # 0xf2680
mulsd %xmm0, %xmm1
addsd (%r13), %xmm1
movapd %xmm1, 0x130(%rsp)
movapd %xmm3, %xmm1
mulsd %xmm0, %xmm1
movsd %xmm1, 0xd8(%rsp)
movsd 0x52e23(%rip), %xmm0    # 0x12d3b8
divsd %xmm7, %xmm0
movsd %xmm0, 0x80(%rsp)
callq 0x8670
movsd %xmm0, 0xd0(%rsp)
movsd 0x52e08(%rip), %xmm0    # 0x12d3c0
divsd 0x10(%rsp), %xmm0
movsd %xmm0, 0x78(%rsp)
callq 0x8670
mulsd 0x52df7(%rip), %xmm0    # 0x12d3c8
movsd 0x52df7(%rip), %xmm1    # 0x12d3d0
movsd 0xd0(%rsp), %xmm2
mulsd %xmm1, %xmm2
addsd %xmm0, %xmm2
movsd 0xd8(%rsp), %xmm5
mulsd %xmm5, %xmm2
addsd 0x130(%rsp), %xmm2
movsd %xmm2, (%rbx)
movapd 0x16c24(%rip), %xmm3    # 0xf1230
movapd 0xb0(%rsp), %xmm8
movapd %xmm8, %xmm0
xorpd %xmm3, %xmm0
movlpd %xmm0, 0x8(%rbx)
movq 0xe0(%rsp), %rdx
movsd (%rdx), %xmm0
movsd 0x30(%rsp), %xmm7
mulsd %xmm7, %xmm0
movq 0xc0(%rsp), %rsi
movsd (%rsi), %xmm2
movsd 0x18(%rsp), %xmm6
mulsd %xmm6, %xmm2
mulsd 0x48(%rsp), %xmm5
mulsd %xmm5, %xmm1
movq 0xe8(%rsp), %rax
mulsd 0x8(%rax), %xmm1
addsd %xmm0, %xmm2
movsd 0x58(%rsp), %xmm4
mulsd %xmm4, %xmm2
addsd %xmm1, %xmm2
movsd 0x19eef(%rip), %xmm0    # 0xf4570
movsd 0xf8(%rsp), %xmm1
mulsd %xmm1, %xmm0
addsd %xmm2, %xmm0
movq 0xf0(%rsp), %r12
movsd %xmm0, (%r12)
movsd 0x8(%r13), %xmm0
movapd %xmm8, %xmm2
addsd %xmm8, %xmm0
addsd 0x28(%rsp), %xmm0
mulsd 0x19db2(%rip), %xmm2    # 0xf4470
movsd %xmm0, 0x18(%rbx)
movsd %xmm2, 0x10(%rbx)
movapd %xmm7, %xmm2
mulsd 0x8(%rdx), %xmm2
movapd %xmm6, %xmm0
mulsd 0x8(%rsi), %xmm0
mulsd (%rax), %xmm5
addsd %xmm2, %xmm0
mulsd %xmm4, %xmm0
mulsd 0x1b43a(%rip), %xmm1    # 0xf5b28
addsd %xmm5, %xmm0
addsd %xmm0, %xmm1
movsd %xmm1, 0x8(%r12)
movapd 0x60(%rsp), %xmm0
xorpd %xmm3, %xmm0
movapd %xmm0, 0xc0(%rsp)
xorl %r14d, %r14d
movq 0xa0(%rsp), %r12
movq 0x50(%rsp), %r13
movsd 0x7b0(%r15,%r14,8), %xmm0
movsd 0x52c7e(%rip), %xmm1    # 0x12d3b0
addsd %xmm1, %xmm0
divsd 0x10(%rsp), %xmm0
callq 0x8670
movsd %xmm0, 0x18(%rsp)
movsd 0x1b20(%r15,%r14,8), %xmm0
mulsd 0xc0(%rsp), %xmm0
movsd %xmm0, 0x30(%rsp)
movsd 0x7b0(%r15,%r14,8), %xmm0
addsd 0x52c3e(%rip), %xmm0    # 0x12d3b0
divsd 0x10(%rsp), %xmm0
callq 0x8670
movsd 0x17063(%rip), %xmm1    # 0xf17e8
addsd %xmm1, %xmm0
movapd 0x16aaf(%rip), %xmm1    # 0xf1240
andpd %xmm1, %xmm0
movsd 0x30(%rsp), %xmm1
divsd %xmm0, %xmm1
movq (%r13), %rax
movsd %xmm1, (%rax,%r14,8)
movsd (%rbx), %xmm0
subsd %xmm1, %xmm0
movsd %xmm0, (%rbx)
movsd (%rax,%r14,8), %xmm0
mulsd 0x18(%rsp), %xmm0
movq (%r12), %rax
movsd %xmm0, (%rax,%r14,8)
movsd 0x80(%rsp), %xmm0
callq 0x8670
movapd %xmm0, %xmm1
movsd 0x19c8b(%rip), %xmm0    # 0xf4470
divsd %xmm0, %xmm1
mulsd 0x60(%rsp), %xmm1
mulsd 0x24d8(%r15,%r14,8), %xmm1
movsd %xmm1, 0x30(%rsp)
movsd 0x7b0(%r15,%r14,8), %xmm0
addsd 0x52bc7(%rip), %xmm0    # 0x12d3d8
divsd 0x10(%rsp), %xmm0
callq 0x8670
addsd 0x16fc4(%rip), %xmm0    # 0xf17e8
andpd 0x16a14(%rip), %xmm0    # 0xf1240
movsd 0x30(%rsp), %xmm1
divsd %xmm0, %xmm1
movsd %xmm1, 0x30(%rsp)
movsd 0x78(%rsp), %xmm0
callq 0x8670
divsd 0x19c21(%rip), %xmm0    # 0xf4470
mulsd 0x60(%rsp), %xmm0
mulsd 0x2e90(%r15,%r14,8), %xmm0
movsd %xmm0, 0x28(%rsp)
movsd 0x7b0(%r15,%r14,8), %xmm0
addsd 0x52b69(%rip), %xmm0    # 0x12d3e0
divsd 0x10(%rsp), %xmm0
callq 0x8670
addsd 0x16f5e(%rip), %xmm0    # 0xf17e8
andpd 0x169ae(%rip), %xmm0    # 0xf1240
movsd 0x28(%rsp), %xmm1
divsd %xmm0, %xmm1
addsd 0x30(%rsp), %xmm1
movq 0x8(%r13), %rax
movsd %xmm1, (%rax,%r14,8)
movsd 0x18(%rbx), %xmm0
subsd %xmm1, %xmm0
movsd %xmm0, 0x18(%rbx)
movsd (%rax,%r14,8), %xmm0
mulsd 0x17db8(%rip), %xmm0    # 0xf2680
mulsd 0x18(%rsp), %xmm0
movq 0x8(%r12), %rax
movsd %xmm0, (%rax,%r14,8)
incq %r14
cmpq $0x137, %r14            # imm = 0x137
jne 0xda720
leaq 0x7b0(%r15), %r14
addq $0x1168, %r15           # imm = 0x1168
leaq 0x150(%rsp), %r12
leaq 0x120(%rsp), %rcx
movq 0x88(%rsp), %r13
movq %r13, %rdi
movq %rbp, %rsi
movq %r12, %rdx
movsd 0xa8(%rsp), %xmm0
movq %r14, %r8
movq %r15, %r9
callq 0xd9e48
movsd (%r12), %xmm0
movapd 0x140(%rsp), %xmm1
mulsd %xmm1, %xmm0
movsd %xmm0, 0x18(%rsp)
movsd %xmm0, (%r12)
leaq 0x120(%rsp), %r12
movsd (%r12), %xmm0
mulsd %xmm1, %xmm0
movsd %xmm0, 0x60(%rsp)
movsd %xmm0, (%r12)
xorl %eax, %eax
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
cmpq $0x137, %rax            # imm = 0x137
jne 0xda96b
movsd 0x18(%rsp), %xmm0
addsd 0x60(%rsp), %xmm0
addsd 0x18(%rbx), %xmm0
movsd %xmm0, 0x18(%rbx)
xorl %ebx, %ebx
movq %r13, %r15
movsd 0x20(%rsp), %xmm2
movsd 0x40(%rsp), %xmm3
movq 0x90(%rsp), %rsi
movq 0x50(%rsp), %rdi
movq 0xa0(%rsp), %r12
movsd 0x48(%rsp), %xmm4
movq (%r12), %rcx
movq 0x8(%r12), %rax
movsd (%rcx,%rbx,8), %xmm0
addsd (%rax,%rbx,8), %xmm0
movsd (%r13,%rbx,8), %xmm5
subsd %xmm0, %xmm5
addsd (%rbp,%rbx,8), %xmm5
leal -0x64(%rbx), %ecx
cmpl $0x27, %ecx
setae %cl
leal -0x8d(%rbx), %edx
cmpl $0x27, %edx
setae %dl
testb %dl, %cl
jne 0xdaa49
leal -0x1(%rbx), %ecx
movsd (%r13,%rcx,8), %xmm0
movapd 0x16807(%rip), %xmm1    # 0xf1230
xorpd %xmm1, %xmm0
movq 0x8(%rsi), %rcx
movlpd %xmm0, (%rcx,%rbx,8)
movsd 0x8(%rbp,%rbx,8), %xmm0
xorpd %xmm1, %xmm0
movq 0x10(%rsi), %rcx
movlpd %xmm0, (%rcx,%rbx,8)
cmpl $0x8c, %ebx
je 0xdaa7f
cmpl $0x8b, %ebx
jne 0xdaad4
movsd 0x450(%r13), %xmm0
xorps 0x167c7(%rip), %xmm0    # 0xf1230
movq 0x8(%rsi), %rcx
movlps %xmm0, (%rcx,%rbx,8)
xorps %xmm0, %xmm0
movsd 0x60(%rsp), %xmm1
movq %r15, %rcx
jmp 0xdaaab
leaq (,%rbx,8), %rcx
addq %rbp, %rcx
movq 0x8(%rsi), %rdx
movq $0x0, (%rdx,%rbx,8)
movsd 0x468(%rbp), %xmm0
xorps 0x1678b(%rip), %xmm0    # 0xf1230
movsd 0x18(%rsp), %xmm1
movq 0x10(%rsi), %rdx
movsd %xmm0, (%rdx,%rbx,8)
movq 0x8(%rdi), %rdx
movsd (%rdx,%rbx,8), %xmm0
subsd %xmm1, %xmm0
movsd %xmm0, (%rdx,%rbx,8)
movsd (%rax,%rbx,8), %xmm0
subsd (%rcx), %xmm0
movsd %xmm0, (%rax,%rbx,8)
movsd 0x5290c(%rip), %xmm0    # 0x12d3e8
divsd (%r14,%rbx,8), %xmm0
movsd %xmm5, 0x10(%rsp)
mulsd %xmm5, %xmm4
movsd %xmm4, 0x30(%rsp)
divsd %xmm3, %xmm0
divsd %xmm3, %xmm0
divsd %xmm2, %xmm0
callq 0xd6f51
mulsd 0x30(%rsp), %xmm0
mulsd 0x58(%rsp), %xmm0
mulsd 0x1afa9(%rip), %xmm0    # 0xf5ac0
divsd 0x194a9(%rip), %xmm0    # 0xf3fc8
divsd 0x98(%rsp), %xmm0
movq 0x108(%rsp), %r13
movsd %xmm0, (%r13,%rbx,8)
ucomisd 0x171b1(%rip), %xmm0    # 0xf1cf0
jbe 0xdab6b
xorpd 0x166e7(%rip), %xmm0    # 0xf1230
callq 0x8670
movsd 0x1670a(%rip), %xmm5    # 0xf1260
movapd %xmm5, %xmm1
subsd %xmm0, %xmm1
divsd (%r13,%rbx,8), %xmm1
subsd %xmm1, %xmm5
jmp 0xdab94
movapd %xmm0, %xmm1
mulsd 0x17159(%rip), %xmm1    # 0xf1cd0
movapd %xmm1, 0x30(%rsp)
callq 0xd6f4c
movapd %xmm0, %xmm5
divsd 0x17ada(%rip), %xmm5    # 0xf2668
addsd 0x30(%rsp), %xmm5
movsd (%r13,%rbx,8), %xmm0
ucomisd 0x166b5(%rip), %xmm0    # 0xf1258
movsd 0x20(%rsp), %xmm2
movsd 0x40(%rsp), %xmm3
movsd 0x10(%rsp), %xmm1
jbe 0xdabdb
divsd %xmm5, %xmm1
movq 0x90(%rsp), %rsi
movq 0x50(%rsp), %rdi
movq 0x88(%rsp), %r13
movsd 0x48(%rsp), %xmm4
jmp 0xdac5c
movsd 0x52805(%rip), %xmm0    # 0x12d3e8
divsd (%r14,%rbx,8), %xmm0
divsd %xmm3, %xmm0
divsd %xmm3, %xmm0
divsd %xmm2, %xmm0
movsd %xmm5, 0x10(%rsp)
callq 0xd6f51
movsd 0x10(%rsp), %xmm5
movsd 0x40(%rsp), %xmm3
movsd 0x20(%rsp), %xmm2
movsd 0x48(%rsp), %xmm4
mulsd %xmm4, %xmm0
mulsd 0x58(%rsp), %xmm0
mulsd 0x1ae96(%rip), %xmm0    # 0xf5ac0
divsd 0x19396(%rip), %xmm0    # 0xf3fc8
divsd 0x98(%rsp), %xmm0
movsd 0x170bd(%rip), %xmm1    # 0xf1d00
divsd %xmm0, %xmm1
movq 0x90(%rsp), %rsi
movq 0x50(%rsp), %rdi
movq 0x88(%rsp), %r13
movq (%rsi), %rax
movsd %xmm1, (%rax,%rbx,8)
mulsd %xmm4, %xmm1
movq 0x110(%rsp), %rax
mulsd (%rax,%rbx,8), %xmm1
movsd 0x165e3(%rip), %xmm0    # 0xf1260
subsd %xmm5, %xmm0
mulsd %xmm1, %xmm0
movq 0x118(%rsp), %rax
movsd %xmm0, (%rax,%rbx,8)
incq %rbx
addq $0x8, %r15
cmpq $0x137, %rbx            # imm = 0x137
jne 0xda9da
movq %r13, %rdi
callq 0x8410
movq %rbp, %rdi
addq $0x1d8, %rsp            # imm = 0x1D8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x8410