// File: /workspace/github_c_makefile_star2_O3/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, 0x88(%rsp)
movsd %xmm4, 0x58(%rsp)
movsd %xmm3, 0x10(%rsp)
movsd %xmm2, 0xa0(%rsp)
movsd %xmm1, 0x78(%rsp)
movsd %xmm0, 0x30(%rsp)
movq %r9, 0x120(%rsp)
movq %r8, 0x108(%rsp)
movq %rcx, 0x80(%rsp)
movq %rdx, 0x50(%rsp)
movq %rsi, 0x90(%rsp)
movq %rdi, %rbx
movq 0x268(%rsp), %rbp
movq 0x260(%rsp), %r15
movsd 0x258(%rsp), %xmm0
movsd %xmm0, 0x100(%rsp)
movq 0x250(%rsp), %rax
movq %rax, 0xc0(%rsp)
movq 0x248(%rsp), %r14
movq 0x240(%rsp), %r13
movq 0x238(%rsp), %rax
movq %rax, 0xf8(%rsp)
movq 0x230(%rsp), %rax
movq %rax, 0x118(%rsp)
movq 0x228(%rsp), %rax
movq %rax, 0x98(%rsp)
movq 0x220(%rsp), %rax
movq %rax, 0x110(%rsp)
movsd %xmm6, 0x40(%rsp)
movapd %xmm6, %xmm0
mulsd %xmm6, %xmm0
movsd %xmm0, 0x28(%rsp)
mulsd %xmm6, %xmm0
mulsd %xmm6, %xmm0
callq 0xd3754
movapd %xmm0, 0x60(%rsp)
movl $0x137, %edi            # imm = 0x137
movq %r15, %rsi
movq %rbp, %rdx
callq 0xd3766
movq %rax, 0xa8(%rsp)
movl $0x137, %edi            # imm = 0x137
movq %r15, %rsi
movq %rbp, %r12
movq %rbp, %rdx
callq 0xd3766
movq %rax, %rbp
movsd 0x40(%rsp), %xmm0
mulsd 0x20(%rsp), %xmm0
callq 0xd3759
movsd %xmm0, 0x70(%rsp)
xorpd %xmm0, %xmm0
movsd 0x10(%rsp), %xmm1
ucomisd %xmm0, %xmm1
jb 0xd6c01
xorps %xmm0, %xmm0
sqrtsd 0x10(%rsp), %xmm0
jmp 0xd6c0c
movsd 0x10(%rsp), %xmm0
callq 0x82b0
movsd %xmm0, 0xb0(%rsp)
movsd 0x53763(%rip), %xmm0    # 0x12a380
divsd 0x10(%rsp), %xmm0
callq 0x8670
movsd %xmm0, 0x18(%rsp)
movsd 0x28(%rsp), %xmm0
mulsd 0x20(%rsp), %xmm0
callq 0xd3759
movsd %xmm0, 0x28(%rsp)
movsd 0xa0(%rsp), %xmm1
movsd 0x10(%rsp), %xmm0
divsd %xmm0, %xmm1
movq %r12, (%rsp)
leaq 0x128(%rsp), %rcx
movq %r13, %rdi
movq %r14, %rsi
movq 0xc0(%rsp), %rdx
movq %r13, 0xe8(%rsp)
movq %rdx, %r13
movq %r14, 0xf0(%rsp)
movq 0x98(%rsp), %r14
movq %r14, %r8
movsd 0x40(%rsp), %xmm2
movsd 0x20(%rsp), %xmm3
movq %r15, %r9
callq 0xd572b
cmpl $0x1, (%r15)
jne 0xd6ce7
movaps 0x53a5f(%rip), %xmm0    # 0x12a710
leaq 0x160(%rsp), %rsi
movaps %xmm0, 0x10(%rsi)
movaps 0x53a3c(%rip), %xmm0    # 0x12a700
movaps %xmm0, (%rsi)
movw $0xa, 0x20(%rsi)
movq %r12, %rdi
callq 0x8660
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 0x40(%rsp), %xmm0
mulsd %xmm0, %xmm1
mulsd %xmm0, %xmm1
movsd 0x1754d(%rip), %xmm0    # 0xee260
mulsd %xmm2, %xmm1
movapd %xmm1, 0x140(%rsp)
movapd %xmm0, %xmm1
movsd 0x78(%rsp), %xmm0
subsd %xmm0, %xmm1
movapd %xmm1, %xmm6
movsd %xmm1, 0x48(%rsp)
movsd 0x28(%rsp), %xmm2
mulsd 0x53612(%rip), %xmm2    # 0x12a358
movsd 0x70(%rsp), %xmm4
mulsd 0x535fc(%rip), %xmm4    # 0x12a350
mulsd 0x88(%rsp), %xmm2
movsd 0x58(%rsp), %xmm1
divsd %xmm1, %xmm2
divsd %xmm6, %xmm2
movapd %xmm2, %xmm3
movsd %xmm2, 0x28(%rsp)
movsd 0x10(%rsp), %xmm2
mulsd %xmm2, %xmm4
movapd %xmm2, %xmm7
movsd 0xb0(%rsp), %xmm5
mulsd %xmm4, %xmm5
movsd 0x18(%rsp), %xmm2
mulsd %xmm5, %xmm2
divsd %xmm1, %xmm2
mulsd %xmm6, %xmm2
movsd %xmm2, 0x18(%rsp)
movsd 0x30(%rsp), %xmm1
mulsd %xmm0, %xmm1
subsd %xmm2, %xmm1
movsd %xmm1, 0x30(%rsp)
movsd 0x128(%rsp), %xmm1
movapd %xmm1, 0xb0(%rsp)
movsd 0x188aa(%rip), %xmm0    # 0xef680
mulsd %xmm0, %xmm1
addsd (%r13), %xmm1
movapd %xmm1, 0x130(%rsp)
mulsd %xmm0, %xmm3
movsd %xmm3, 0xe0(%rsp)
movsd 0x535ea(%rip), %xmm0    # 0x12a3e8
divsd %xmm7, %xmm0
movsd %xmm0, 0x78(%rsp)
callq 0x8670
movsd %xmm0, 0xd8(%rsp)
movsd 0x535d2(%rip), %xmm0    # 0x12a3f0
divsd 0x10(%rsp), %xmm0
movsd %xmm0, 0x70(%rsp)
callq 0x8670
mulsd 0x535c1(%rip), %xmm0    # 0x12a3f8
movsd 0x535c1(%rip), %xmm1    # 0x12a400
movsd 0xd8(%rsp), %xmm2
mulsd %xmm1, %xmm2
addsd %xmm0, %xmm2
movsd 0xe0(%rsp), %xmm4
mulsd %xmm4, %xmm2
addsd 0x130(%rsp), %xmm2
movsd %xmm2, (%rbx)
movapd 0x173be(%rip), %xmm3    # 0xee230
movapd 0xb0(%rsp), %xmm8
movapd %xmm8, %xmm0
xorpd %xmm3, %xmm0
movlpd %xmm0, 0x8(%rbx)
movq 0xe8(%rsp), %rsi
movsd (%rsi), %xmm0
movsd 0x30(%rsp), %xmm7
mulsd %xmm7, %xmm0
movq 0xf0(%rsp), %rdx
movsd (%rdx), %xmm2
movsd 0x18(%rsp), %xmm6
mulsd %xmm6, %xmm2
addsd %xmm0, %xmm2
movapd %xmm4, %xmm0
mulsd 0x48(%rsp), %xmm0
mulsd %xmm0, %xmm1
movapd %xmm0, %xmm5
movq 0xf8(%rsp), %rcx
mulsd 0x8(%rcx), %xmm1
movsd 0x58(%rsp), %xmm4
mulsd %xmm4, %xmm2
addsd %xmm1, %xmm2
movsd 0x1a691(%rip), %xmm0    # 0xf1580
movsd 0x100(%rsp), %xmm1
mulsd %xmm1, %xmm0
addsd %xmm2, %xmm0
movq 0x108(%rsp), %rax
movsd %xmm0, (%rax)
movsd 0x8(%r13), %xmm0
movapd %xmm8, %xmm2
addsd %xmm8, %xmm0
addsd 0x28(%rsp), %xmm0
movsd %xmm0, 0x18(%rbx)
mulsd 0x1a551(%rip), %xmm2    # 0xf1480
movsd %xmm2, 0x10(%rbx)
movapd %xmm7, %xmm2
mulsd 0x8(%rsi), %xmm2
movapd %xmm6, %xmm0
mulsd 0x8(%rdx), %xmm0
addsd %xmm2, %xmm0
mulsd (%rcx), %xmm5
mulsd %xmm4, %xmm0
addsd %xmm5, %xmm0
mulsd 0x1bbfa(%rip), %xmm1    # 0xf2b58
addsd %xmm0, %xmm1
movsd %xmm1, 0x8(%rax)
leaq 0x7b0(%r14), %r15
movapd 0x60(%rsp), %xmm0
xorpd %xmm3, %xmm0
movapd %xmm0, 0xc0(%rsp)
xorl %r13d, %r13d
movq 0x90(%rsp), %r12
movq 0x50(%rsp), %r14
movsd (%r15,%r13,8), %xmm0
movsd 0x53441(%rip), %xmm1    # 0x12a3e0
addsd %xmm1, %xmm0
divsd 0x10(%rsp), %xmm0
callq 0x8670
movsd %xmm0, 0x18(%rsp)
movsd 0x1370(%r15,%r13,8), %xmm0
mulsd 0xc0(%rsp), %xmm0
movsd %xmm0, 0x30(%rsp)
movsd (%r15,%r13,8), %xmm0
addsd 0x53405(%rip), %xmm0    # 0x12a3e0
divsd 0x10(%rsp), %xmm0
callq 0x8670
movsd 0x177fa(%rip), %xmm1    # 0xee7e8
addsd %xmm1, %xmm0
movapd 0x17246(%rip), %xmm1    # 0xee240
andpd %xmm1, %xmm0
movsd 0x30(%rsp), %xmm1
divsd %xmm0, %xmm1
movq (%r14), %rax
movsd %xmm1, (%rax,%r13,8)
movsd (%rbx), %xmm0
subsd %xmm1, %xmm0
movsd %xmm0, (%rbx)
movsd (%rax,%r13,8), %xmm0
mulsd 0x18(%rsp), %xmm0
movq (%r12), %rax
movsd %xmm0, (%rax,%r13,8)
movsd 0x78(%rsp), %xmm0
callq 0x8670
movapd %xmm0, %xmm1
movsd 0x1a436(%rip), %xmm0    # 0xf1480
divsd %xmm0, %xmm1
mulsd 0x60(%rsp), %xmm1
mulsd 0x1d28(%r15,%r13,8), %xmm1
movsd %xmm1, 0x30(%rsp)
movsd (%r15,%r13,8), %xmm0
addsd 0x53396(%rip), %xmm0    # 0x12a408
divsd 0x10(%rsp), %xmm0
callq 0x8670
addsd 0x17763(%rip), %xmm0    # 0xee7e8
andpd 0x171b3(%rip), %xmm0    # 0xee240
movsd 0x30(%rsp), %xmm1
divsd %xmm0, %xmm1
movsd %xmm1, 0x30(%rsp)
movsd 0x70(%rsp), %xmm0
callq 0x8670
divsd 0x1a3d0(%rip), %xmm0    # 0xf1480
mulsd 0x60(%rsp), %xmm0
mulsd 0x26e0(%r15,%r13,8), %xmm0
movsd %xmm0, 0x28(%rsp)
movsd (%r15,%r13,8), %xmm0
addsd 0x5333c(%rip), %xmm0    # 0x12a410
divsd 0x10(%rsp), %xmm0
callq 0x8670
addsd 0x17701(%rip), %xmm0    # 0xee7e8
andpd 0x17151(%rip), %xmm0    # 0xee240
movsd 0x28(%rsp), %xmm1
divsd %xmm0, %xmm1
addsd 0x30(%rsp), %xmm1
movq 0x8(%r14), %rax
movsd %xmm1, (%rax,%r13,8)
movsd 0x18(%rbx), %xmm0
subsd %xmm1, %xmm0
movsd %xmm0, 0x18(%rbx)
movsd (%rax,%r13,8), %xmm0
mulsd 0x1855b(%rip), %xmm0    # 0xef680
mulsd 0x18(%rsp), %xmm0
movq 0x8(%r12), %rax
movsd %xmm0, (%rax,%r13,8)
incq %r13
cmpq $0x137, %r13            # imm = 0x137
jne 0xd6f91
movq 0x98(%rsp), %r9
addq $0x1168, %r9            # imm = 0x1168
leaq 0x160(%rsp), %r12
leaq 0x158(%rsp), %r13
movq 0xa8(%rsp), %r14
movq %r14, %rdi
movq %rbp, %rsi
movq %r12, %rdx
movq %r13, %rcx
movsd 0xa0(%rsp), %xmm0
movq %r15, %r8
callq 0xd66b0
movsd (%r12), %xmm0
movapd 0x140(%rsp), %xmm1
mulsd %xmm1, %xmm0
movsd %xmm0, 0x18(%rsp)
movsd (%r13), %xmm0
mulsd %xmm1, %xmm0
movsd %xmm0, 0x60(%rsp)
xorl %eax, %eax
movsd (%r14,%rax,8), %xmm0
mulsd %xmm1, %xmm0
movsd %xmm0, (%r14,%rax,8)
movsd (%rbp,%rax,8), %xmm0
mulsd %xmm1, %xmm0
movsd %xmm0, (%rbp,%rax,8)
incq %rax
cmpq $0x137, %rax            # imm = 0x137
jne 0xd71b5
movsd 0x18(%rsp), %xmm0
addsd 0x60(%rsp), %xmm0
addsd 0x18(%rbx), %xmm0
movsd %xmm0, 0x18(%rbx)
xorl %ebx, %ebx
movq %r14, %r13
movsd 0x20(%rsp), %xmm2
movsd 0x40(%rsp), %xmm3
movq 0x80(%rsp), %rsi
movq 0x50(%rsp), %rdi
movq 0x90(%rsp), %r12
movsd 0x48(%rsp), %xmm4
movq (%r12), %rcx
movq 0x8(%r12), %rax
movsd (%rcx,%rbx,8), %xmm0
addsd (%rax,%rbx,8), %xmm0
movsd (%r14,%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 0xd728d
movsd -0x8(%r14,%rbx,8), %xmm0
movapd 0x16fc3(%rip), %xmm1    # 0xee230
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 0xd72c3
cmpl $0x8b, %ebx
jne 0xd7318
movsd 0x450(%r14), %xmm0
xorps 0x16f83(%rip), %xmm0    # 0xee230
movq 0x8(%rsi), %rcx
movlps %xmm0, (%rcx,%rbx,8)
xorps %xmm0, %xmm0
movsd 0x60(%rsp), %xmm1
movq %r13, %rcx
jmp 0xd72ef
leaq (,%rbx,8), %rcx
addq %rbp, %rcx
movq 0x8(%rsi), %rdx
movq $0x0, (%rdx,%rbx,8)
movsd 0x468(%rbp), %xmm0
xorps 0x16f47(%rip), %xmm0    # 0xee230
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 0x530f8(%rip), %xmm0    # 0x12a418
divsd (%r15,%rbx,8), %xmm0
movsd %xmm5, 0x10(%rsp)
mulsd %xmm5, %xmm4
movsd %xmm4, 0x30(%rsp)
divsd %xmm3, %xmm0
divsd %xmm3, %xmm0
divsd %xmm2, %xmm0
callq 0xd3759
mulsd 0x30(%rsp), %xmm0
mulsd 0x58(%rsp), %xmm0
mulsd 0x1b795(%rip), %xmm0    # 0xf2af0
divsd 0x19c75(%rip), %xmm0    # 0xf0fd8
divsd 0x88(%rsp), %xmm0
movq 0x110(%rsp), %r14
movsd %xmm0, (%r14,%rbx,8)
ucomisd 0x1796e(%rip), %xmm0    # 0xeecf0
jbe 0xd73b1
xorpd 0x16ea4(%rip), %xmm0    # 0xee230
callq 0x8670
movsd 0x16ec7(%rip), %xmm5    # 0xee260
movapd %xmm5, %xmm1
subsd %xmm0, %xmm1
movsd (%r14,%rbx,8), %xmm0
divsd %xmm0, %xmm1
subsd %xmm1, %xmm5
jmp 0xd73e0
movapd %xmm0, %xmm1
mulsd 0x17913(%rip), %xmm1    # 0xeecd0
movapd %xmm1, 0x30(%rsp)
callq 0xd3754
movapd %xmm0, %xmm5
divsd 0x18294(%rip), %xmm5    # 0xef668
addsd 0x30(%rsp), %xmm5
movsd (%r14,%rbx,8), %xmm0
ucomisd 0x16e70(%rip), %xmm0    # 0xee258
movsd 0x20(%rsp), %xmm2
movsd 0x40(%rsp), %xmm3
movq 0xa8(%rsp), %r14
movsd 0x10(%rsp), %xmm1
jbe 0xd741d
divsd %xmm5, %xmm1
movq 0x80(%rsp), %rsi
movq 0x50(%rsp), %rdi
movsd 0x48(%rsp), %xmm4
jmp 0xd7496
movsd 0x52ff3(%rip), %xmm0    # 0x12a418
divsd (%r15,%rbx,8), %xmm0
divsd %xmm3, %xmm0
divsd %xmm3, %xmm0
divsd %xmm2, %xmm0
movsd %xmm5, 0x10(%rsp)
callq 0xd3759
movsd 0x10(%rsp), %xmm5
movsd 0x40(%rsp), %xmm3
movsd 0x20(%rsp), %xmm2
movsd 0x48(%rsp), %xmm4
mulsd %xmm4, %xmm0
mulsd 0x58(%rsp), %xmm0
mulsd 0x1b684(%rip), %xmm0    # 0xf2af0
divsd 0x19b64(%rip), %xmm0    # 0xf0fd8
divsd 0x88(%rsp), %xmm0
movsd 0x1787b(%rip), %xmm1    # 0xeed00
divsd %xmm0, %xmm1
movq 0x80(%rsp), %rsi
movq 0x50(%rsp), %rdi
movq (%rsi), %rax
movsd %xmm1, (%rax,%rbx,8)
mulsd %xmm4, %xmm1
movq 0x118(%rsp), %rax
mulsd (%rax,%rbx,8), %xmm1
movsd 0x16da9(%rip), %xmm0    # 0xee260
subsd %xmm5, %xmm0
mulsd %xmm1, %xmm0
movq 0x120(%rsp), %rax
movsd %xmm0, (%rax,%rbx,8)
incq %rbx
addq $0x8, %r13
cmpq $0x137, %rbx            # imm = 0x137
jne 0xd7222
movq %r14, %rdi
callq 0x8410
movq %rbp, %rdi
addq $0x1e8, %rsp            # imm = 0x1E8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x8410