// File: /workspace/github_c_makefile_star2_O2/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 0xc6a4f
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 0x587cf(%rip), %xmm0    # 0x11f238
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 0xc6aaa
sqrtsd %xmm0, %xmm0
jmp 0xc6ab9
callq 0x82d0
xorpd %xmm5, %xmm5
movapd 0x40(%rsp), %xmm2
movsd %xmm0, 0x10(%rsp)
movapd %xmm2, %xmm0
divsd 0x58775(%rip), %xmm0    # 0x11f240
ucomisd %xmm5, %xmm0
jb 0xc6ad7
sqrtsd %xmm0, %xmm0
jmp 0xc6adc
callq 0x82d0
movsd %xmm0, 0x28(%rsp)
movsd 0x10(%rsp), %xmm0
addsd 0x1e770(%rip), %xmm0    # 0xe5260
movsd 0x58750(%rip), %xmm1    # 0x11f248
movsd %xmm0, 0x70(%rsp)
callq 0x8650
mulsd 0x10(%rsp), %xmm0
movsd %xmm0, 0x8(%rsp)
movsd 0x28(%rsp), %xmm0
addsd 0x1e743(%rip), %xmm0    # 0xe5260
movsd 0x5872b(%rip), %xmm1    # 0x11f250
movsd %xmm0, 0x28(%rsp)
callq 0x8650
mulsd 0x8(%rsp), %xmm0
movsd 0x5871a(%rip), %xmm1    # 0x11f258
divsd %xmm0, %xmm1
cmpl $0x0, 0x130(%r14)
movsd %xmm1, 0xa0(%rsp)
je 0xc6c02
movapd 0x60(%rsp), %xmm1
divsd 0x586d1(%rip), %xmm1    # 0x11f238
sqrtsd %xmm1, %xmm2
xorpd %xmm3, %xmm3
ucomisd %xmm3, %xmm1
movapd %xmm2, %xmm0
jae 0xc6b9e
movapd %xmm1, %xmm0
movsd %xmm2, 0x8(%rsp)
movapd %xmm1, 0x30(%rsp)
callq 0x82d0
xorpd %xmm3, %xmm3
movapd 0x30(%rsp), %xmm1
movsd 0x8(%rsp), %xmm2
movsd %xmm0, 0x8(%rsp)
ucomisd %xmm3, %xmm1
jae 0xc6bb7
movapd %xmm1, %xmm0
callq 0x82d0
movapd %xmm0, %xmm2
addsd 0x1e6a1(%rip), %xmm2    # 0xe5260
movsd 0x58681(%rip), %xmm1    # 0x11f248
movapd %xmm2, %xmm0
callq 0x8650
movapd %xmm0, %xmm1
movapd 0x60(%rsp), %xmm0
divsd 0x5865e(%rip), %xmm0    # 0x11f240
movsd 0x8(%rsp), %xmm2
mulsd %xmm1, %xmm2
movsd %xmm2, 0x8(%rsp)
xorpd %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jb 0xc6c1c
sqrtsd %xmm0, %xmm0
jmp 0xc6c21
movsd 0x217ee(%rip), %xmm0    # 0xe83f8
mulsd %xmm1, %xmm0
movsd %xmm0, 0x8(%rsp)
movapd 0x40(%rsp), %xmm1
jmp 0xc6c58
callq 0x82d0
addsd 0x1e637(%rip), %xmm0    # 0xe5260
movsd 0x5861f(%rip), %xmm1    # 0x11f250
callq 0x8650
movsd 0x8(%rsp), %xmm1
mulsd %xmm0, %xmm1
movsd 0x58618(%rip), %xmm0    # 0x11f260
divsd %xmm1, %xmm0
movsd %xmm0, 0x8(%rsp)
movapd 0x60(%rsp), %xmm1
movsd %xmm1, 0x30(%rsp)
movsd 0x8(%r14), %xmm0
mulsd %xmm1, %xmm0
movsd 0x21318(%rip), %xmm1    # 0xe7f88
callq 0x8650
mulsd 0x8(%rsp), %xmm0
movsd %xmm0, 0x8(%rsp)
movsd 0x30(%r14), %xmm0
xorpd 0x1e5a1(%rip), %xmm0    # 0xe5230
divsd 0x30(%rsp), %xmm0
callq 0x86a0
movsd 0xe0(%r14), %xmm1
movsd 0x50(%rsp), %xmm5
ucomisd %xmm5, %xmm1
ja 0xc6cbe
ucomisd 0xd0(%r14), %xmm5
jbe 0xc6e1f
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 0xc6d49
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 0x1ef3b(%rip), %xmm1    # 0xe5c90
ucomisd %xmm5, %xmm1
ja 0xc6fc7
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 0x86a0
movapd %xmm0, 0x10(%rsp)
cmpw $0x1, 0xe78(%r15)
jne 0xc6e3f
movsd 0x120(%r14), %xmm0
mulsd %xmm0, %xmm0
mulsd 0x128(%r14), %xmm0
movsd 0x1f97c(%rip), %xmm1    # 0xe6748
callq 0x8650
movapd 0x30(%rsp), %xmm1
divsd %xmm0, %xmm1
movapd %xmm1, 0x30(%rsp)
movsd 0x120(%r14), %xmm0
movsd 0x2163e(%rip), %xmm1    # 0xe8430
callq 0x8650
movapd 0x30(%rsp), %xmm6
mulsd 0x128(%r14), %xmm0
mulsd 0x584e2(%rip), %xmm0    # 0x11f2f0
movsd 0xa8(%rsp), %xmm2
movsd 0x8(%rsp), %xmm4
jmp 0xc6e5c
movsd 0xd8(%r14), %xmm1
ucomisd 0x80(%rsp), %xmm1
jbe 0xc6fdb
pushq $0x2
popq %rbp
jmp 0xc6fea
movsd 0x584a9(%rip), %xmm0    # 0x11f2f0
movsd 0xa8(%rsp), %xmm2
movsd 0x8(%rsp), %xmm4
movapd 0x30(%rsp), %xmm6
movsd 0x1e3fc(%rip), %xmm1    # 0xe5260
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 0x21991(%rip), %xmm1    # 0xe8850
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 0x1e337(%rip), %xmm0    # 0xe5230
divsd 0x40(%rsp), %xmm0
callq 0x86a0
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 0x1e317(%rip), %xmm0    # 0xe5260
mulsd 0x88(%rsp), %xmm0
divsd %xmm0, %xmm2
movsd %xmm2, (%rbx)
cmpl $0x3, %ebp
jl 0xc6fcb
movsd %xmm0, 0x80(%rsp)
movsd 0x48(%r14), %xmm0
xorpd 0x1e2ba(%rip), %xmm0    # 0xe5230
divsd 0x40(%rsp), %xmm0
callq 0x86a0
movapd 0x60(%rsp), %xmm1
mulsd 0x214b1(%rip), %xmm1    # 0xe8440
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
movl 0xc0(%r14), %ebp
testl %ebp, %ebp
je 0xc6cbe
movsd %xmm0, 0x98(%rsp)
movsd 0x38(%r14), %xmm1
mulsd 0x58267(%rip), %xmm1    # 0x11f268
mulsd 0x1f73f(%rip), %xmm1    # 0xe6748
mulsd 0xc0(%rsp), %xmm1
movsd 0x1e246(%rip), %xmm0    # 0xe5260
subsd %xmm5, %xmm0
movapd %xmm0, 0xb0(%rsp)
mulsd %xmm0, %xmm1
divsd 0x88(%rsp), %xmm1
movapd %xmm1, 0x30(%rsp)
movapd 0x1e1ee(%rip), %xmm0    # 0xe5230
xorpd %xmm1, %xmm0
callq 0x86a0
movsd 0x1e20d(%rip), %xmm2    # 0xe5260
subsd %xmm0, %xmm2
divsd 0x30(%rsp), %xmm2
movapd %xmm2, %xmm0
mulsd 0x581ff(%rip), %xmm0    # 0x11f268
cmpl $0x2, %ebp
setne %al
cmpl $0x5, %ebp
setl %cl
testb %cl, %al
jne 0xc7164
movsd 0xf8(%r14), %xmm1
ucomisd 0x58(%rsp), %xmm1
movapd 0x40(%rsp), %xmm4
movsd 0x50(%rsp), %xmm5
movsd 0x8(%rsp), %xmm7
jbe 0xc7176
movsd %xmm2, 0x30(%rsp)
movsd 0x581be(%rip), %xmm0    # 0x11f270
mulsd %xmm4, %xmm0
divsd 0x581ba(%rip), %xmm0    # 0x11f278
xorpd %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jb 0xc70ce
sqrtsd %xmm0, %xmm0
jmp 0xc70d3
callq 0x82d0
movsd 0x20(%r14), %xmm2
movsd 0xe8(%r14), %xmm1
mulsd 0x58196(%rip), %xmm2    # 0x11f280
mulsd 0xb0(%rsp), %xmm2
unpcklpd %xmm0, %xmm2            # xmm2 = xmm2[0],xmm0[0]
mulpd 0x580e1(%rip), %xmm2    # 0x11f1e0
mulpd 0x580e9(%rip), %xmm2    # 0x11f1f0
movsd 0x1e151(%rip), %xmm0    # 0xe5260
subsd 0x58(%rsp), %xmm0
movapd %xmm2, %xmm3
unpckhpd %xmm2, %xmm3            # xmm3 = xmm3[1],xmm2[1]
mulsd %xmm0, %xmm3
divsd %xmm3, %xmm2
divsd 0x5815b(%rip), %xmm2    # 0x11f288
movapd %xmm2, %xmm0
callq 0x8650
mulsd 0x58152(%rip), %xmm0    # 0x11f290
addsd 0x1e11a(%rip), %xmm0    # 0xe5260
movsd 0x5811a(%rip), %xmm1    # 0x11f268
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 0x1f5ca(%rip), %xmm0    # 0xe6748
mulsd 0xc0(%rsp), %xmm0
mulsd 0xb0(%rsp), %xmm0
movsd 0x1e0c7(%rip), %xmm9    # 0xe5260
divsd %xmm0, %xmm9
xorpd %xmm10, %xmm10
cmpl $0x3, %ebp
jl 0xc72b8
movapd %xmm9, 0x30(%rsp)
movsd 0x580dd(%rip), %xmm1    # 0x11f298
movsd 0x70(%rsp), %xmm0
callq 0x8650
movsd 0x10(%rsp), %xmm1
mulsd %xmm0, %xmm1
movsd %xmm1, 0x10(%rsp)
movsd 0x580c2(%rip), %xmm1    # 0x11f2a0
movsd 0x28(%rsp), %xmm0
callq 0x8650
mulsd 0x10(%rsp), %xmm0
movsd 0x580b1(%rip), %xmm1    # 0x11f2a8
divsd %xmm0, %xmm1
cmpl $0x0, 0x130(%r14)
movsd %xmm1, 0x28(%rsp)
je 0xc72cf
movapd 0x60(%rsp), %xmm1
divsd 0x5801b(%rip), %xmm1    # 0x11f238
sqrtsd %xmm1, %xmm2
xorpd %xmm3, %xmm3
ucomisd %xmm3, %xmm1
movapd %xmm2, %xmm0
jae 0xc7254
movapd %xmm1, %xmm0
movsd %xmm2, 0x10(%rsp)
movapd %xmm1, 0x70(%rsp)
callq 0x82d0
xorpd %xmm3, %xmm3
movapd 0x70(%rsp), %xmm1
movsd 0x10(%rsp), %xmm2
movsd %xmm0, 0x10(%rsp)
ucomisd %xmm3, %xmm1
jae 0xc726d
movapd %xmm1, %xmm0
callq 0x82d0
movapd %xmm0, %xmm2
addsd 0x1dfeb(%rip), %xmm2    # 0xe5260
movsd 0x5801b(%rip), %xmm1    # 0x11f298
movapd %xmm2, %xmm0
callq 0x8650
movapd %xmm0, %xmm1
movapd 0x60(%rsp), %xmm0
divsd 0x57fa8(%rip), %xmm0    # 0x11f240
movsd 0x10(%rsp), %xmm2
mulsd %xmm1, %xmm2
movsd %xmm2, 0x10(%rsp)
xorpd %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jb 0xc7302
sqrtsd %xmm0, %xmm0
jmp 0xc7307
xorps %xmm8, %xmm8
xorpd %xmm11, %xmm11
movsd 0x98(%rsp), %xmm0
jmp 0xc6cea
movsd 0x22829(%rip), %xmm1    # 0xe9b00
mulsd 0x40(%rsp), %xmm1
movsd 0x57fcb(%rip), %xmm0    # 0x11f2b0
divsd %xmm1, %xmm0
callq 0x86a0
mulsd 0x28(%rsp), %xmm0
movsd %xmm0, 0x10(%rsp)
movapd 0x40(%rsp), %xmm2
jmp 0xc7369
callq 0x82d0
addsd 0x1df51(%rip), %xmm0    # 0xe5260
movsd 0x57f89(%rip), %xmm1    # 0x11f2a0
callq 0x8650
movsd 0x10(%rsp), %xmm1
mulsd %xmm0, %xmm1
movsd 0x57f7a(%rip), %xmm0    # 0x11f2a8
divsd %xmm1, %xmm0
movsd %xmm0, 0x10(%rsp)
movapd 0x60(%rsp), %xmm1
mulsd 0x227ba(%rip), %xmm1    # 0xe9b00
movsd 0x57f62(%rip), %xmm0    # 0x11f2b0
divsd %xmm1, %xmm0
callq 0x86a0
movapd 0x60(%rsp), %xmm2
mulsd 0x10(%rsp), %xmm0
movsd %xmm0, 0x10(%rsp)
mulsd 0x8(%r14), %xmm2
movsd 0x20c11(%rip), %xmm1    # 0xe7f88
movapd %xmm2, %xmm0
callq 0x8650
mulsd 0x10(%rsp), %xmm0
mulsd 0x2106a(%rip), %xmm0    # 0xe83f8
divsd 0x1f3b2(%rip), %xmm0    # 0xe6748
cmpw $0x1, 0xe78(%r15)
jne 0xc73eb
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 0x57ebf(%rip), %xmm1    # 0x11f2b8
mulsd 0xc0(%rsp), %xmm1
mulsd 0xb0(%rsp), %xmm1
mulsd 0x1f335(%rip), %xmm1    # 0xe6748
movsd 0x57ea5(%rip), %xmm0    # 0x11f2c0
mulsd 0x88(%rsp), %xmm0
mulsd 0x57e9c(%rip), %xmm0    # 0x11f2c8
divsd %xmm0, %xmm1
movapd %xmm1, 0x10(%rsp)
movapd 0x1ddf2(%rip), %xmm0    # 0xe5230
xorpd %xmm1, %xmm0
callq 0x86a0
movsd 0x1de11(%rip), %xmm1    # 0xe5260
subsd %xmm0, %xmm1
divsd 0x10(%rsp), %xmm1
cmpl $0x3, %ebp
je 0xc74a0
cmpl $0x5, %ebp
je 0xc74a0
movsd 0x58(%rsp), %xmm0
ucomisd 0x100(%r14), %xmm0
jae 0xc74a0
movsd %xmm1, 0x10(%rsp)
movsd 0x57dee(%rip), %xmm0    # 0x11f270
mulsd 0x40(%rsp), %xmm0
divsd 0x57de8(%rip), %xmm0    # 0x11f278
xorpd %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jb 0xc7511
sqrtsd %xmm0, %xmm0
jmp 0xc7516
mulsd 0x57e10(%rip), %xmm1    # 0x11f2b8
movsd %xmm1, 0x10(%rsp)
movsd 0x57e1a(%rip), %xmm0    # 0x11f2d0
divsd 0x40(%rsp), %xmm0
callq 0x86a0
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 0xc6cea
callq 0x82d0
movsd 0x20(%r14), %xmm1
mulsd 0x57db4(%rip), %xmm1    # 0x11f2d8
movapd 0xb0(%rsp), %xmm2
mulsd %xmm1, %xmm2
unpcklpd %xmm0, %xmm2            # xmm2 = xmm2[0],xmm0[0]
mulpd 0x57cc3(%rip), %xmm2    # 0x11f200
mulpd 0x57ccb(%rip), %xmm2    # 0x11f210
movsd 0x1dd13(%rip), %xmm0    # 0xe5260
subsd 0x58(%rsp), %xmm0
movapd %xmm2, %xmm1
unpckhpd %xmm2, %xmm1            # xmm1 = xmm1[1],xmm2[1]
mulsd %xmm0, %xmm1
divsd %xmm1, %xmm2
divsd 0x57d75(%rip), %xmm2    # 0x11f2e0
movsd 0x1dd05(%rip), %xmm1    # 0xe5278
movapd %xmm2, %xmm0
callq 0x8650
mulsd 0x57d64(%rip), %xmm0    # 0x11f2e8
addsd 0x1dcd4(%rip), %xmm0    # 0xe5260
movsd 0x57d24(%rip), %xmm1    # 0x11f2b8
movapd %xmm1, %xmm2
divsd %xmm0, %xmm2
divsd 0x1f1a4(%rip), %xmm2    # 0xe6748
movsd 0x10(%rsp), %xmm0
mulsd %xmm1, %xmm0
addsd %xmm2, %xmm0
movsd %xmm0, 0x10(%rsp)
jmp 0xc74ae
nopl (%rax)