// File: /workspace/github_c_makefile_star2_O3/PoulinV[P]AxiCLASS/build/../external/RecfastCLASS/wrap_recfast.c
// Function: recfast_dx_He_dz
int recfast_dx_He_dz(struct thermodynamics* pth, struct thermorecfast * pre, double x_He, double x, double x_H, double nH,
                     double z, double Hz, double Tmat, double Trad,
                     double* dxHe_dz) {

  /** Define local variables */
  double Rdown_trip,Rup_trip,tauHe_s,pHe_s,tauHe_t,pHe_t,CL_PSt;
  double Doppler,gamma_2Ps,gamma_2Pt,pb,qb,AHcon;
  double sq_0,sq_1;
  double K_He,Rup_He,Rdown_He,He_Boltz;
  double CfHe_t=0.;
  double C_He;
  double n_He;
  int Heflag;

  /* Einstein coefficient of 2s -> 1s transition in helium */
  double A2s1sHe = _Lambda_He_;

  /* This is just to prevent the compiler complaining:
     Technically Rdown_trip/Rup_trip should always be fine */
  Rdown_trip = 0.; Rup_trip = 0.;

  /* Varying fundamental constants */
  if (pth->has_varconst == _TRUE_) {
    /** - Rescale temperatures by factor alpha^2 * m_e (see e.g. 1705.03925) */
    Tmat /= pre->fsR*pre->fsR*pre->meR;
    Trad /= pre->fsR*pre->fsR*pre->meR;
  }

  /** - Local variables and coefficients */
  n_He = pre->fHe * nH;
  sq_0 = sqrt(Tmat/_T_0_);
  sq_1 = sqrt(Tmat/_T_1_);

  Rdown_He = _a_VF_/(sq_0 * pow((1.+sq_0),(1.-_b_VF_)) * pow((1. + sq_1),(1. + _b_VF_)));
  switch (pre->photoion_mode){
    case recfast_photoion_Tmat:
      Rup_He = 4.*Rdown_He*pow((pre->CR*Tmat),1.5)*exp(-pre->CDB_He/Tmat);
      break;
    case recfast_photoion_Trad:
    default:
      Rup_He = 4.*_a_VF_/(sqrt(Trad/_T_0_) * pow((1.+sqrt(Trad/_T_0_)),(1.-_b_VF_)) * pow((1. + sqrt(Trad/_T_1_)),(1. + _b_VF_))) * pow((pre->CR*Trad),1.5)*exp(-pre->CDB_He/Trad);
      break;
  }

  /** - The K_He is calculated up to the required accuracy  */
  if ((x_He < pre->x_He_trigger_small) || (x_He > pre->x_He0_trigger2)){
    Heflag = 0;
  }
  else if(z<pre->z_switch_late){
    Heflag = 2;
  }
  else{
    Heflag = pre->Heswitch;
  }

  /* Simplest case : as defined in the equation */
  if (Heflag == 0){
    K_He = pre->CK_He/Hz;
  }
  /* More difficult cases : Take into account additional contributions */
  else {
    tauHe_s = _A2P_s_*pre->CK_He*3.*n_He*(1.-x_He)/Hz;
    pHe_s = (1.-exp(-tauHe_s))/tauHe_s;
    K_He = 1./(_A2P_s_*pHe_s*3.*n_He*(1.-x_He));

    /* In doppler mode (2) or in all mode (>=5), take doppler corrections */
    if (((Heflag == 2) || (Heflag >= 5)) && (x_H < pre->x_H_limit_KHe)) {

      Doppler = 2.*_k_B_*Tmat/(_m_H_*_not4_*_c_*_c_);
      Doppler = _c_*_L_He_2p_*sqrt(Doppler);
      gamma_2Ps = 3.*_A2P_s_*pre->fHe*(1.-x_He)*_c_*_c_
          /(sqrt(_PI_)*_sigma_He_2Ps_*8.*_PI_*Doppler*(1.-x_H))
          /pow(_c_*_L_He_2p_,2);
      pb = 0.36;
      qb = pre->fudge_He;
      AHcon = _A2P_s_/(1.+pb*pow(gamma_2Ps,qb));
      K_He=1./((_A2P_s_*pHe_s+AHcon)*3.*n_He*(1.-x_He));
    }

    /* In modes where triple He is added (>=3), calculate the triple He CfHe_t */
    if (Heflag >= 3) {
      Rdown_trip = _a_trip_/(sq_0*pow((1.+sq_0),(1.-_b_trip_)) * pow((1.+sq_1),(1.+_b_trip_)));
      switch (pre->photoion_mode){
        case recfast_photoion_Tmat:
          Rup_trip = Rdown_trip*exp(-_h_P_*_c_*_L_He2St_ion_/(_k_B_*Tmat))*pow(pre->CR*Tmat,1.5)*4./3.;
          break;
        case recfast_photoion_Trad:
        default:
          Rup_trip = _a_trip_/(sqrt(Trad/_T_0_)*pow((1.+sqrt(Trad/_T_0_)),(1.-_b_trip_)) * pow((1.+sqrt(Trad/_T_1_)),(1.+_b_trip_))) *exp(-_h_P_*_c_*_L_He2St_ion_/(_k_B_*Trad))*pow(pre->CR*Trad,1.5)*4./3.;
          break;
      }
      /* Varying fundamental constants */
      if (pth->has_varconst == _TRUE_) {
        /** - Rescale by various powers of fsR = relative alpha and meR = relative m_e (see e.g. 1705.03925) */
        Rdown_trip *= pre->fsR*pre->fsR/pre->meR/pre->meR;
        Rup_trip *= pre->fsR*pre->fsR*pre->fsR*pre->fsR*pre->fsR*pre->meR;
      }

      tauHe_t = _A2P_t_*n_He*(1.-x_He)*3./(8.*_PI_*Hz*pow(_L_He_2Pt_,3));
      pHe_t = (1. - exp(-tauHe_t))/tauHe_t;
      CL_PSt = _h_P_*_c_*(_L_He_2Pt_ - _L_He_2St_)/_k_B_;
      /* In triple He default mode, or mode 5, take simple term */
      if ((Heflag == 3) || (Heflag == 5) || (x_H >= pre->x_H_limit_CfHe_t)) {
        CfHe_t = _A2P_t_*pHe_t*exp(-CL_PSt/Tmat);
        CfHe_t = CfHe_t/(Rup_trip+CfHe_t);
      }
      /* In triple He doppler mode (4) or all mode (>=6), take doppler corrections */
      else {
        Doppler = 2.*_k_B_*Tmat/(_m_H_*_not4_*_c_*_c_);
        Doppler = _c_*_L_He_2Pt_*sqrt(Doppler);
        gamma_2Pt = 3.*_A2P_t_*pre->fHe*(1.-x_He)*_c_*_c_
          /(sqrt(_PI_)*_sigma_He_2Pt_*8.*_PI_*Doppler*(1.-x_H))
          /pow(_c_*_L_He_2Pt_,2);
        pb = 0.66;
        qb = 0.9;
        AHcon = _A2P_t_/(1.+pb*pow(gamma_2Pt,qb))/3.;
        CfHe_t = (_A2P_t_*pHe_t+AHcon)*exp(-CL_PSt/Tmat);
        CfHe_t = CfHe_t/(Rup_trip+CfHe_t);
      }
    }
  }

  /* Varying fundamental constants */
  if (pth->has_varconst == _TRUE_) {
    /** - Rescale temperatures by various powers of fsR = relative alpha and meR = relative m_e (see e.g. 1705.03925) */
    Rdown_He *= pre->fsR*pre->fsR/pre->meR/pre->meR;
    Rup_He *= pre->fsR*pre->fsR*pre->fsR*pre->fsR*pre->fsR*pre->meR;
  }

  /** - Final helium equations, again fudged Peebles' equations are used */
  if (x_He < 1.e-15){
    *dxHe_dz=0.;
  }
  else {

    /* Calculate first the boltzmann factor (limited for numerical reasons) */
    if (pre->CDB_He2s2p/Tmat < pre->max_exp_boltz){
      He_Boltz=exp(pre->CDB_He2s2p/Tmat);
    }
    else{
      He_Boltz=exp(pre->max_exp_boltz);
    }

    /* Varying fundamental constants */
    if (pth->has_varconst == _TRUE_) {
      K_He /= pow(pre->fsR*pre->fsR*pre->meR,3);
      A2s1sHe *= pow(pre->fsR, 8)*pre->meR;
    }
    C_He = (1. + K_He*A2s1sHe*n_He*(1.-x_He)*He_Boltz)/(1. + K_He*(A2s1sHe+Rup_He)*n_He*(1.-x_He)*He_Boltz);

    /** Final He quations by Peebles with K_He*/
    *dxHe_dz = (x*x_He*nH*Rdown_He - Rup_He*(1.-x_He)*exp(-pre->CL_He/Tmat)) * C_He / (Hz*(1+z));

    /* following is from recfast 1.4 (now reordered) */
    /* this correction is not self-consistent when there is energy injection from dark matter, and leads to nan's at small redshift (unimportant when reionization takes over before that redshift) */
    /* Corrections due to triple helium, only when Heflag >=3 */
    if (Heflag >= 3){
      /** CfHe_t correction */
      *dxHe_dz += (x*x_He*nH*Rdown_trip - (1.-x_He)*3.*Rup_trip*exp(-pre->CL_Het/Tmat)) *CfHe_t/(Hz*(1.+z));
    }
    /* end of new recfast 1.4 piece */
  }

  /** - No He Energy injection */

  return _SUCCESS_;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0xd8, %rsp
movq %rdx, %rbx
movsd %xmm5, 0x88(%rsp)
movsd %xmm4, 0x80(%rsp)
movsd %xmm2, 0x58(%rsp)
movapd %xmm0, %xmm4
movq %rsi, %r14
movq %rdi, %r15
cmpw $0x1, 0xe78(%rdi)
unpcklpd %xmm6, %xmm7            # xmm7 = xmm7[0],xmm6[0]
jne 0xce151
movsd 0x120(%r14), %xmm0
mulsd %xmm0, %xmm0
mulsd 0x128(%r14), %xmm0
unpcklpd %xmm0, %xmm0            # xmm0 = xmm0[0,0]
divpd %xmm0, %xmm7
movsd 0x20(%r14), %xmm5
movapd %xmm7, %xmm2
unpckhpd %xmm7, %xmm2            # xmm2 = xmm2[1],xmm7[1]
movapd %xmm2, %xmm0
divsd 0x5a21d(%rip), %xmm0    # 0x128388
mulsd %xmm3, %xmm5
movapd %xmm5, 0xc0(%rsp)
xorpd %xmm5, %xmm5
ucomisd %xmm5, %xmm0
movapd %xmm2, 0x40(%rsp)
movsd %xmm4, 0x50(%rsp)
movsd %xmm1, 0x90(%rsp)
movsd %xmm3, 0xa8(%rsp)
movapd %xmm7, 0x60(%rsp)
jb 0xce1ac
sqrtsd %xmm0, %xmm0
jmp 0xce1bb
callq 0x82b0
xorpd %xmm5, %xmm5
movapd 0x40(%rsp), %xmm2
movsd %xmm0, 0x10(%rsp)
movapd %xmm2, %xmm0
divsd 0x5a1c3(%rip), %xmm0    # 0x128390
ucomisd %xmm5, %xmm0
jb 0xce1d9
sqrtsd %xmm0, %xmm0
jmp 0xce1de
callq 0x82b0
movsd %xmm0, 0x28(%rsp)
movsd 0x10(%rsp), %xmm0
addsd 0x2006e(%rip), %xmm0    # 0xee260
movsd 0x5a19e(%rip), %xmm1    # 0x128398
movsd %xmm0, 0x70(%rsp)
callq 0x8620
mulsd 0x10(%rsp), %xmm0
movsd %xmm0, 0x8(%rsp)
movsd 0x28(%rsp), %xmm0
addsd 0x20041(%rip), %xmm0    # 0xee260
movsd 0x5a179(%rip), %xmm1    # 0x1283a0
movsd %xmm0, 0x28(%rsp)
callq 0x8620
mulsd 0x8(%rsp), %xmm0
movsd 0x5a168(%rip), %xmm1    # 0x1283a8
divsd %xmm0, %xmm1
cmpl $0x0, 0x130(%r14)
movsd %xmm1, 0xa0(%rsp)
je 0xce307
movapd 0x60(%rsp), %xmm1
divsd 0x5a11f(%rip), %xmm1    # 0x128388
xorps %xmm2, %xmm2
sqrtsd %xmm1, %xmm2
xorpd %xmm3, %xmm3
ucomisd %xmm3, %xmm1
movapd %xmm2, %xmm0
jae 0xce2a3
movapd %xmm1, %xmm0
movsd %xmm2, 0x8(%rsp)
movapd %xmm1, 0x30(%rsp)
callq 0x82b0
xorpd %xmm3, %xmm3
movapd 0x30(%rsp), %xmm1
movsd 0x8(%rsp), %xmm2
movsd %xmm0, 0x8(%rsp)
ucomisd %xmm3, %xmm1
jae 0xce2bc
movapd %xmm1, %xmm0
callq 0x82b0
movapd %xmm0, %xmm2
addsd 0x1ff9c(%rip), %xmm2    # 0xee260
movsd 0x5a0cc(%rip), %xmm1    # 0x128398
movapd %xmm2, %xmm0
callq 0x8620
movapd %xmm0, %xmm1
movapd 0x60(%rsp), %xmm0
divsd 0x5a0a9(%rip), %xmm0    # 0x128390
movsd 0x8(%rsp), %xmm2
mulsd %xmm1, %xmm2
movsd %xmm2, 0x8(%rsp)
xorpd %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jb 0xce321
sqrtsd %xmm0, %xmm0
jmp 0xce326
movsd 0x23129(%rip), %xmm0    # 0xf1438
mulsd %xmm1, %xmm0
movsd %xmm0, 0x8(%rsp)
movapd 0x40(%rsp), %xmm1
jmp 0xce35d
callq 0x82b0
addsd 0x1ff32(%rip), %xmm0    # 0xee260
movsd 0x5a06a(%rip), %xmm1    # 0x1283a0
callq 0x8620
movsd 0x8(%rsp), %xmm1
mulsd %xmm0, %xmm1
movsd 0x5a063(%rip), %xmm0    # 0x1283b0
divsd %xmm1, %xmm0
movsd %xmm0, 0x8(%rsp)
movapd 0x60(%rsp), %xmm1
movsd %xmm1, 0x30(%rsp)
movsd 0x8(%r14), %xmm0
mulsd %xmm1, %xmm0
movsd 0x22c53(%rip), %xmm1    # 0xf0fc8
callq 0x8620
mulsd 0x8(%rsp), %xmm0
movsd %xmm0, 0x8(%rsp)
movsd 0x30(%r14), %xmm0
xorpd 0x1fe9c(%rip), %xmm0    # 0xee230
divsd 0x30(%rsp), %xmm0
callq 0x8670
movsd 0xe0(%r14), %xmm1
movsd 0x50(%rsp), %xmm5
ucomisd %xmm5, %xmm1
ja 0xce3c3
ucomisd 0xd0(%r14), %xmm5
jbe 0xce527
movsd 0x38(%r14), %xmm9
divsd 0x88(%rsp), %xmm9
xorpd %xmm10, %xmm10
xorl %ebp, %ebp
xorps %xmm8, %xmm8
xorpd %xmm11, %xmm11
movapd 0x40(%rsp), %xmm4
movsd 0x8(%rsp), %xmm7
mulsd %xmm0, %xmm7
cmpw $0x1, 0xe78(%r15)
jne 0xce44e
movsd 0x120(%r14), %xmm0
movsd 0x128(%r14), %xmm1
movapd %xmm0, %xmm2
mulsd %xmm0, %xmm2
movapd %xmm0, %xmm3
mulsd %xmm2, %xmm3
divsd %xmm1, %xmm2
divsd %xmm1, %xmm2
movsd 0xa0(%rsp), %xmm6
mulsd %xmm2, %xmm6
movsd %xmm6, 0xa0(%rsp)
mulsd %xmm0, %xmm3
mulsd %xmm0, %xmm3
mulsd %xmm1, %xmm3
mulsd %xmm3, %xmm7
xorpd %xmm0, %xmm0
movsd 0x20856(%rip), %xmm1    # 0xeecb0
ucomisd %xmm5, %xmm1
ja 0xce7c2
movsd %xmm11, 0x58(%rsp)
movsd %xmm10, 0x70(%rsp)
movapd %xmm9, 0x30(%rsp)
movsd %xmm8, 0x28(%rsp)
movsd %xmm7, 0x8(%rsp)
movsd 0x68(%r14), %xmm0
divsd %xmm4, %xmm0
minsd 0x108(%r14), %xmm0
callq 0x8670
movapd %xmm0, 0x10(%rsp)
cmpw $0x1, 0xe78(%r15)
jne 0xce63a
movsd 0x120(%r14), %xmm0
mulsd %xmm0, %xmm0
mulsd 0x128(%r14), %xmm0
movsd 0x211af(%rip), %xmm1    # 0xef680
callq 0x8620
movapd 0x30(%rsp), %xmm1
divsd %xmm0, %xmm1
movapd %xmm1, 0x30(%rsp)
movsd 0x120(%r14), %xmm0
movsd 0x22f79(%rip), %xmm1    # 0xf1470
callq 0x8620
movapd 0x30(%rsp), %xmm6
mulsd 0x128(%r14), %xmm0
mulsd 0x59f2d(%rip), %xmm0    # 0x128440
movsd 0xa8(%rsp), %xmm2
movsd 0x8(%rsp), %xmm4
jmp 0xce657
movsd 0xd8(%r14), %xmm1
movl $0x2, %ebp
ucomisd 0x80(%rsp), %xmm1
ja 0xce54f
movl 0xc0(%r14), %ebp
testl %ebp, %ebp
je 0xce3c3
movsd %xmm0, 0x98(%rsp)
movsd 0x38(%r14), %xmm1
mulsd 0x59e52(%rip), %xmm1    # 0x1283b8
mulsd 0x21112(%rip), %xmm1    # 0xef680
mulsd 0xc0(%rsp), %xmm1
movsd 0x1fce1(%rip), %xmm0    # 0xee260
subsd %xmm5, %xmm0
movapd %xmm0, 0xb0(%rsp)
mulsd %xmm0, %xmm1
divsd 0x88(%rsp), %xmm1
movapd %xmm1, 0x30(%rsp)
movapd 0x1fc89(%rip), %xmm0    # 0xee230
xorpd %xmm1, %xmm0
callq 0x8670
movsd 0x1fca8(%rip), %xmm2    # 0xee260
subsd %xmm0, %xmm2
divsd 0x30(%rsp), %xmm2
movapd %xmm2, %xmm0
mulsd 0x59dea(%rip), %xmm0    # 0x1283b8
cmpl $0x2, %ebp
setne %al
cmpl $0x5, %ebp
setl %cl
testb %cl, %al
jne 0xce86c
movsd 0xf8(%r14), %xmm1
ucomisd 0x58(%rsp), %xmm1
movapd 0x40(%rsp), %xmm4
movsd 0x50(%rsp), %xmm5
movsd 0x8(%rsp), %xmm7
jbe 0xce87e
movsd %xmm2, 0x30(%rsp)
movsd 0x59da9(%rip), %xmm0    # 0x1283c0
mulsd %xmm4, %xmm0
divsd 0x59da5(%rip), %xmm0    # 0x1283c8
xorpd %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jb 0xce7d6
sqrtsd %xmm0, %xmm0
jmp 0xce7db
movsd 0x59dfe(%rip), %xmm0    # 0x128440
movsd 0xa8(%rsp), %xmm2
movsd 0x8(%rsp), %xmm4
movapd 0x30(%rsp), %xmm6
movsd 0x1fc01(%rip), %xmm1    # 0xee260
movsd 0x50(%rsp), %xmm3
subsd %xmm3, %xmm1
movapd %xmm1, %xmm5
movapd %xmm1, 0x60(%rsp)
movapd %xmm4, %xmm1
addsd %xmm0, %xmm1
unpcklpd %xmm6, %xmm6            # xmm6 = xmm6[0,0]
unpcklpd %xmm1, %xmm0            # xmm0 = xmm0[0],xmm1[0]
mulpd %xmm6, %xmm0
movapd 0xc0(%rsp), %xmm1
unpcklpd %xmm1, %xmm1            # xmm1 = xmm1[0,0]
mulpd %xmm0, %xmm1
movapd %xmm5, %xmm0
unpcklpd %xmm5, %xmm0            # xmm0 = xmm0[0],xmm5[0]
mulpd %xmm1, %xmm0
movapd 0x10(%rsp), %xmm1
unpcklpd %xmm1, %xmm1            # xmm1 = xmm1[0,0]
mulpd %xmm0, %xmm1
addpd 0x23276(%rip), %xmm1    # 0xf1930
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
divsd %xmm0, %xmm1
movapd %xmm1, 0x10(%rsp)
movsd 0x90(%rsp), %xmm0
mulsd %xmm3, %xmm0
mulsd %xmm2, %xmm0
movsd %xmm0, 0x90(%rsp)
movsd 0x40(%r14), %xmm0
xorpd 0x1fb3c(%rip), %xmm0    # 0xee230
divsd 0x40(%rsp), %xmm0
callq 0x8670
movsd 0x90(%rsp), %xmm1
movsd 0x8(%rsp), %xmm2
mulsd 0x60(%rsp), %xmm2
mulsd %xmm0, %xmm2
movapd %xmm2, %xmm0
movsd 0xa0(%rsp), %xmm2
mulsd %xmm1, %xmm2
subsd %xmm0, %xmm2
mulsd 0x10(%rsp), %xmm2
movsd 0x80(%rsp), %xmm0
addsd 0x1fb1c(%rip), %xmm0    # 0xee260
mulsd 0x88(%rsp), %xmm0
divsd %xmm0, %xmm2
movsd %xmm2, (%rbx)
cmpl $0x3, %ebp
jl 0xce7c6
movsd %xmm0, 0x80(%rsp)
movsd 0x48(%r14), %xmm0
xorpd 0x1fabf(%rip), %xmm0    # 0xee230
divsd 0x40(%rsp), %xmm0
callq 0x8670
movapd 0x60(%rsp), %xmm1
mulsd 0x22cf6(%rip), %xmm1    # 0xf1480
mulsd 0x70(%rsp), %xmm1
mulsd %xmm0, %xmm1
movsd 0x90(%rsp), %xmm0
mulsd 0x28(%rsp), %xmm0
addsd %xmm1, %xmm0
movapd %xmm0, %xmm1
movsd 0x58(%rsp), %xmm0
mulsd %xmm1, %xmm0
divsd 0x80(%rsp), %xmm0
addsd (%rbx), %xmm0
movsd %xmm0, (%rbx)
xorl %eax, %eax
addq $0xd8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
callq 0x82b0
movsd 0x20(%r14), %xmm2
movsd 0xe8(%r14), %xmm1
mulsd 0x59bde(%rip), %xmm2    # 0x1283d0
mulsd 0xb0(%rsp), %xmm2
unpcklpd %xmm0, %xmm2            # xmm2 = xmm2[0],xmm0[0]
mulpd 0x59b29(%rip), %xmm2    # 0x128330
mulpd 0x59b31(%rip), %xmm2    # 0x128340
movsd 0x1fa49(%rip), %xmm0    # 0xee260
subsd 0x58(%rsp), %xmm0
movapd %xmm2, %xmm3
unpckhpd %xmm2, %xmm3            # xmm3 = xmm3[1],xmm2[1]
mulsd %xmm0, %xmm3
divsd %xmm3, %xmm2
divsd 0x59ba3(%rip), %xmm2    # 0x1283d8
movapd %xmm2, %xmm0
callq 0x8620
mulsd 0x59b9a(%rip), %xmm0    # 0x1283e0
addsd 0x1fa12(%rip), %xmm0    # 0xee260
movsd 0x59b62(%rip), %xmm1    # 0x1283b8
movsd 0x30(%rsp), %xmm2
mulsd %xmm1, %xmm2
divsd %xmm0, %xmm1
addsd %xmm2, %xmm1
movapd %xmm1, %xmm0
movapd 0x40(%rsp), %xmm4
movsd 0x50(%rsp), %xmm5
movsd 0x8(%rsp), %xmm7
mulsd 0x20dfa(%rip), %xmm0    # 0xef680
mulsd 0xc0(%rsp), %xmm0
mulsd 0xb0(%rsp), %xmm0
movsd 0x1f9bf(%rip), %xmm9    # 0xee260
divsd %xmm0, %xmm9
xorpd %xmm10, %xmm10
cmpl $0x3, %ebp
jl 0xce9c3
movapd %xmm9, 0x30(%rsp)
movsd 0x59b25(%rip), %xmm1    # 0x1283e8
movsd 0x70(%rsp), %xmm0
callq 0x8620
movsd 0x10(%rsp), %xmm1
mulsd %xmm0, %xmm1
movsd %xmm1, 0x10(%rsp)
movsd 0x59b0a(%rip), %xmm1    # 0x1283f0
movsd 0x28(%rsp), %xmm0
callq 0x8620
mulsd 0x10(%rsp), %xmm0
movsd 0x59af9(%rip), %xmm1    # 0x1283f8
divsd %xmm0, %xmm1
cmpl $0x0, 0x130(%r14)
movsd %xmm1, 0x28(%rsp)
je 0xce9da
movapd 0x60(%rsp), %xmm1
divsd 0x59a63(%rip), %xmm1    # 0x128388
xorps %xmm2, %xmm2
sqrtsd %xmm1, %xmm2
xorpd %xmm3, %xmm3
ucomisd %xmm3, %xmm1
movapd %xmm2, %xmm0
jae 0xce95f
movapd %xmm1, %xmm0
movsd %xmm2, 0x10(%rsp)
movapd %xmm1, 0x70(%rsp)
callq 0x82b0
xorpd %xmm3, %xmm3
movapd 0x70(%rsp), %xmm1
movsd 0x10(%rsp), %xmm2
movsd %xmm0, 0x10(%rsp)
ucomisd %xmm3, %xmm1
jae 0xce978
movapd %xmm1, %xmm0
callq 0x82b0
movapd %xmm0, %xmm2
addsd 0x1f8e0(%rip), %xmm2    # 0xee260
movsd 0x59a60(%rip), %xmm1    # 0x1283e8
movapd %xmm2, %xmm0
callq 0x8620
movapd %xmm0, %xmm1
movapd 0x60(%rsp), %xmm0
divsd 0x599ed(%rip), %xmm0    # 0x128390
movsd 0x10(%rsp), %xmm2
mulsd %xmm1, %xmm2
movsd %xmm2, 0x10(%rsp)
xorpd %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jb 0xcea0d
sqrtsd %xmm0, %xmm0
jmp 0xcea12
xorps %xmm8, %xmm8
xorpd %xmm11, %xmm11
movsd 0x98(%rsp), %xmm0
jmp 0xce3ef
movsd 0x2425e(%rip), %xmm1    # 0xf2c40
mulsd 0x40(%rsp), %xmm1
movsd 0x59a10(%rip), %xmm0    # 0x128400
divsd %xmm1, %xmm0
callq 0x8670
mulsd 0x28(%rsp), %xmm0
movsd %xmm0, 0x10(%rsp)
movapd 0x40(%rsp), %xmm2
jmp 0xcea74
callq 0x82b0
addsd 0x1f846(%rip), %xmm0    # 0xee260
movsd 0x599ce(%rip), %xmm1    # 0x1283f0
callq 0x8620
movsd 0x10(%rsp), %xmm1
mulsd %xmm0, %xmm1
movsd 0x599bf(%rip), %xmm0    # 0x1283f8
divsd %xmm1, %xmm0
movsd %xmm0, 0x10(%rsp)
movapd 0x60(%rsp), %xmm1
mulsd 0x241ef(%rip), %xmm1    # 0xf2c40
movsd 0x599a7(%rip), %xmm0    # 0x128400
divsd %xmm1, %xmm0
callq 0x8670
movapd 0x60(%rsp), %xmm2
mulsd 0x10(%rsp), %xmm0
movsd %xmm0, 0x10(%rsp)
mulsd 0x8(%r14), %xmm2
movsd 0x22546(%rip), %xmm1    # 0xf0fc8
movapd %xmm2, %xmm0
callq 0x8620
mulsd 0x10(%rsp), %xmm0
mulsd 0x2299f(%rip), %xmm0    # 0xf1438
divsd 0x20bdf(%rip), %xmm0    # 0xef680
cmpw $0x1, 0xe78(%r15)
jne 0xceaf6
movsd 0x120(%r14), %xmm5
movsd 0x128(%r14), %xmm1
movapd %xmm5, %xmm2
mulsd %xmm5, %xmm2
movapd %xmm5, %xmm3
mulsd %xmm2, %xmm3
divsd %xmm1, %xmm2
divsd %xmm1, %xmm2
movsd 0x28(%rsp), %xmm4
mulsd %xmm2, %xmm4
movsd %xmm4, 0x28(%rsp)
mulsd %xmm5, %xmm3
mulsd %xmm5, %xmm3
mulsd %xmm1, %xmm3
mulsd %xmm3, %xmm0
movsd %xmm0, 0x70(%rsp)
movsd 0x59904(%rip), %xmm1    # 0x128408
mulsd 0xc0(%rsp), %xmm1
mulsd 0xb0(%rsp), %xmm1
mulsd 0x20b62(%rip), %xmm1    # 0xef680
movsd 0x598ea(%rip), %xmm0    # 0x128410
mulsd 0x88(%rsp), %xmm0
mulsd 0x598e1(%rip), %xmm0    # 0x128418
divsd %xmm0, %xmm1
movapd %xmm1, 0x10(%rsp)
movapd 0x1f6e7(%rip), %xmm0    # 0xee230
xorpd %xmm1, %xmm0
callq 0x8670
movsd 0x1f706(%rip), %xmm1    # 0xee260
subsd %xmm0, %xmm1
divsd 0x10(%rsp), %xmm1
cmpl $0x3, %ebp
je 0xcebab
cmpl $0x5, %ebp
je 0xcebab
movsd 0x58(%rsp), %xmm0
ucomisd 0x100(%r14), %xmm0
jae 0xcebab
movsd %xmm1, 0x10(%rsp)
movsd 0x59833(%rip), %xmm0    # 0x1283c0
mulsd 0x40(%rsp), %xmm0
divsd 0x5982d(%rip), %xmm0    # 0x1283c8
xorpd %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jb 0xcec1c
sqrtsd %xmm0, %xmm0
jmp 0xcec21
mulsd 0x59855(%rip), %xmm1    # 0x128408
movsd %xmm1, 0x10(%rsp)
movsd 0x5985f(%rip), %xmm0    # 0x128420
divsd 0x40(%rsp), %xmm0
callq 0x8670
movapd 0x40(%rsp), %xmm4
movapd %xmm0, %xmm11
mulsd 0x10(%rsp), %xmm11
movsd 0x70(%rsp), %xmm10
movapd %xmm10, %xmm0
addsd %xmm11, %xmm0
divsd %xmm0, %xmm11
movsd 0x50(%rsp), %xmm5
movsd 0x8(%rsp), %xmm7
movsd 0x98(%rsp), %xmm0
movsd 0x28(%rsp), %xmm8
movapd 0x30(%rsp), %xmm9
jmp 0xce3ef
callq 0x82b0
movsd 0x20(%r14), %xmm1
mulsd 0x597f9(%rip), %xmm1    # 0x128428
movapd 0xb0(%rsp), %xmm2
mulsd %xmm1, %xmm2
unpcklpd %xmm0, %xmm2            # xmm2 = xmm2[0],xmm0[0]
mulpd 0x59708(%rip), %xmm2    # 0x128350
mulpd 0x59710(%rip), %xmm2    # 0x128360
movsd 0x1f608(%rip), %xmm0    # 0xee260
subsd 0x58(%rsp), %xmm0
movapd %xmm2, %xmm1
unpckhpd %xmm2, %xmm1            # xmm1 = xmm1[1],xmm2[1]
mulsd %xmm0, %xmm1
divsd %xmm1, %xmm2
divsd 0x597ba(%rip), %xmm2    # 0x128430
movsd 0x1f5fa(%rip), %xmm1    # 0xee278
movapd %xmm2, %xmm0
callq 0x8620
mulsd 0x597a9(%rip), %xmm0    # 0x128438
addsd 0x1f5c9(%rip), %xmm0    # 0xee260
movsd 0x59769(%rip), %xmm1    # 0x128408
movapd %xmm1, %xmm2
divsd %xmm0, %xmm2
divsd 0x209d1(%rip), %xmm2    # 0xef680
movsd 0x10(%rsp), %xmm0
mulsd %xmm1, %xmm0
addsd %xmm2, %xmm0
movsd %xmm0, 0x10(%rsp)
jmp 0xcebb9