// File: /workspace/github_c_makefile_star2_O3/PoulinV[P]AxiCLASS/build/../external/HyRec2020/history.c
// Function: rec_build_history
char* rec_build_history(HYREC_DATA *data, int model, double *hubble_array){

  REC_COSMOPARAMS *cosmo = data->cosmo;
  int *error = &data->error;

  double *xe_output = data->xe_output, *Tm_output = data->Tm_output;
  int Nz = data->Nz;
  double zstart = data->zmax, zend = data->zmin;
  long iz;
  double dxHIIdlna_prev[2], dTmdlna_prev[2], dxHeIIdlna_prev[2];
  double dxHIIdlna_prev_sub[2], dxHeIIdlna_prev_sub[2], xHeII_prev[4];
  double z, dz, DLNA, Delta_xe, xHeII, xH1, dEdtdV_dep, nH, H;
  double *ion = &cosmo->inj_params->ion;
  double *exclya = &cosmo->inj_params->exclya;
  double z_out=0., H_next;
  int flag=10;
  double xe_i, Tm_i;

  DLNA = cosmo->dlna;
  dz = zstart/Nz;
  // Index at which we start integrating Hydrogen recombination, and corresponding redshift
  data->rad->iz_rad_0  = (long) floor(1 + log(kBoltz*cosmo->T0/square(cosmo->fsR)/cosmo->meR*(1.+zstart)/TR_MAX)/DLNA);
  data->rad->z0   = (1.+zstart)*exp(-data->rad->iz_rad_0 * DLNA) - 1.;

  z = zstart;
  /********* He III -> II Saha phase. Tm = Tr. Stop when xHeIII = 1e-8 *********/
  Delta_xe = cosmo->fHe;   /* Delta_xe = xHeIII here */
  for(iz = 0; z >= 0. && Delta_xe > 1e-8; iz++) {
    z = (1.+zstart)*exp(-cosmo->dlna*iz) - 1.;
    xe_output[iz] = rec_xesaha_HeII_III(cosmo, z, &Delta_xe);
    Tm_output[iz] = cosmo->T0 * (1.+z);
  }

  /******** He II -> I recombination.
    Hydrogen in Saha equilibrium.
    Tm fixed to steady state.
    Neglect any energy injection.
    Integrate until TR is low enough that can start integrating hydrogen recombination
    (this occurs at index izH0 computed in rec_get_cosmoparam).
    Start with quasi-equilibrium approximation.
  ********/

  dxHeIIdlna_prev[1] = dxHeIIdlna_prev[0] = 0.;

  xHeII    = rec_saha_xHeII(cosmo, z);
  data->quasi_eq = 1;                    /* Start with post-saha expansion */

  dxHeIIdlna_prev_sub[1] = dxHeIIdlna_prev[1];
  dxHeIIdlna_prev_sub[0] = dxHeIIdlna_prev[0];
  xHeII_prev[3] = xHeII;
  xHeII_prev[2] = xHeII;
  xHeII_prev[1] = xHeII;
  xHeII_prev[0] = xHeII;

  data->loop_after_quasi=1;
  for(; iz <= data->rad->iz_rad_0; iz++) {

    if (model == SWIFT && data->quasi_eq == 0 && data->loop_after_quasi == 1){
      xe_i = xe_output[iz-1]; Tm_i = Tm_output[iz-1];
      for (flag=0;flag<10;flag++) {
        rec_get_xe_next1_He(data, z, &xHeII, dxHeIIdlna_prev_sub, hubble_array, flag);
        z  = (1.+zstart)*exp(-DLNA*(iz-1+(flag+1)/10.)) - 1.;
        xH1 = rec_saha_xH1s(cosmo, z, xHeII);
        xe_i = 1.-xH1 + xHeII;

        if (hubble_array[0]==-1.) H  = rec_HubbleRate(cosmo, z);
        else H = rec_interp1d(.0, dz, hubble_array, Nz, z, error, data->error_message);
        Tm_i = rec_Tmss(z, xe_i, cosmo, 0., H);
      }
      xe_output[iz] = xe_i; Tm_output[iz] = Tm_i;

      xHeII_prev[3] = xHeII_prev[2];
      xHeII_prev[2] = xHeII_prev[1];
      xHeII_prev[1] = xHeII_prev[0];
      xHeII_prev[0] = xHeII;
      dxHeIIdlna_prev[1] = (xHeII_prev[1] - xHeII_prev[3])/2./DLNA;
      dxHeIIdlna_prev[0] = (xHeII_prev[0] - xHeII_prev[2])/2./DLNA;

      if (fabs(1-dxHeIIdlna_prev[1]/dxHeIIdlna_prev[0])<DXHEII_DIFF_MAX) data->loop_after_quasi = 0;
    }
    else{
      rec_get_xe_next1_He(data, z, &xHeII, dxHeIIdlna_prev, hubble_array, flag);
      z             = (1.+zstart)*exp(-DLNA*iz) - 1.;
      xH1           = rec_saha_xH1s(cosmo, z, xHeII);
      xe_output[iz] = 1.-xH1 + xHeII;

      if (hubble_array[0]==-1.) H  = rec_HubbleRate(cosmo, z);
      else H = rec_interp1d(.0, dz, hubble_array, Nz, z, error, data->error_message);

      Tm_output[iz] = rec_Tmss(z, xe_output[iz], cosmo, 0., H);
    }

    if (*error == 1) return data->error_message;
  }

  /******** H II -> I and He II -> I simultaneous recombination (rarely needed but just in case)
        Tm fixed to steady state.
        Integrate H and He simultaneously until xHeII < XHEII_MIN
        Start with post-saha expansion for hydrogen
        Now account for possible energy injection.
        Solve for dEdtdV_dep simultaneously;
  ********/

  dxHIIdlna_prev[1] = (xe_output[iz-2] - xe_output[iz-4])/2./DLNA - dxHeIIdlna_prev[1];
  dxHIIdlna_prev[0] = (xe_output[iz-1] - xe_output[iz-3])/2./DLNA - dxHeIIdlna_prev[0];
  data->quasi_eq          = 1;

  // Initialize energy *deposition*
  dEdtdV_dep = 0.;
  nH = cosmo->nH0*cube(1.+z);

  if (hubble_array[0]==-1.) H  = rec_HubbleRate(cosmo, z);
  else H = rec_interp1d(.0, dz, hubble_array, Nz, z, error, data->error_message);

  update_dEdtdV_dep(z, DLNA, xe_output[iz-1], Tm_output[iz-1], nH, H, cosmo->inj_params, &dEdtdV_dep);
  *ion = dEdtdV_dep/3. /nH *xH1 /EI;
  *exclya = *ion /0.75;

  for(; z >= 0. && xHeII > XHEII_MIN; iz++) {

    get_rec_next2_HHe(data, model, z, iz, &xH1, &xHeII, dxHIIdlna_prev, dxHeIIdlna_prev, H);
    xe_output[iz] = 1.-xH1 + xHeII;

    z  = (1.+zstart)*exp(-DLNA*iz) - 1.;

    if (hubble_array[0]==-1.) H  = rec_HubbleRate(cosmo, z);
    else H = rec_interp1d(.0, dz, hubble_array, Nz, z, error, data->error_message);

    nH = cosmo->nH0*cube(1.+z);
    Tm_output[iz] = rec_Tmss(z, xe_output[iz], cosmo, dEdtdV_dep, H);
    update_dEdtdV_dep(z, DLNA, xe_output[iz], Tm_output[iz], nH, H, cosmo->inj_params, &dEdtdV_dep);
    *ion = dEdtdV_dep/3. /nH *xH1 /EI;
    *exclya = *ion /0.75;

    if (*error == 1) return data->error_message;
  }

  /******** H recombination. Helium assumed entirely neutral.
        Tm fixed to steady-state until its relative difference from Tr is DLNT_MAX
  ********/
  dxHIIdlna_prev_sub[1] = dxHIIdlna_prev[1];
  dxHIIdlna_prev_sub[0] = dxHIIdlna_prev[0];
  data->loop_after_quasi = 1;
  for (; z >= 0. && fabs(1.-Tm_output[iz-1]/cosmo->T0/(1.+z)) < DLNT_MAX; iz++) {

    if (model == SWIFT && data->loop_after_quasi == 1){
      xe_i = xe_output[iz-1]; Tm_i = Tm_output[iz-1];
      for (flag=0;flag<10;flag++) {
        rec_get_xe_next1_H(data, model, z, iz, xe_i, Tm_i, &xe_i, &Tm_i, dxHIIdlna_prev_sub, H, flag);
        z  = (1.+zstart)*exp(-DLNA*(iz-1+(flag+1)/10.)) - 1.;
        nH = cosmo->nH0*cube(1.+z);

        if (hubble_array[0]==-1.) H  = rec_HubbleRate(cosmo, z);
        else H = rec_interp1d(.0, dz, hubble_array, Nz, z, error, data->error_message);

        update_dEdtdV_dep(z, DLNA/10., xe_i, Tm_i, nH, H, cosmo->inj_params, &dEdtdV_dep);
        *ion = dEdtdV_dep/3. /nH *(1.-xe_i) /EI;
        *exclya = *ion /0.75;
      }
      xe_output[iz] = xe_i; Tm_output[iz] = Tm_i;
      dxHIIdlna_prev[1] = (xe_output[iz-1] - xe_output[iz-3])/2./DLNA;
      dxHIIdlna_prev[0] = (xe_output[iz] - xe_output[iz-2])/2./DLNA;

      if (fabs(1-dxHIIdlna_prev[1]/dxHIIdlna_prev[0])<DXHII_DIFF_MAX) data->loop_after_quasi=0;
    }

    else{
      rec_get_xe_next1_H(data, model, z, iz, xe_output[iz-1], Tm_output[iz-1], xe_output+iz, Tm_output+iz,
                         dxHIIdlna_prev, H, flag);
      if (data->quasi_eq == 1){
          dxHIIdlna_prev[1] = (xe_output[iz-2] - xe_output[iz-4])/2./DLNA;
          dxHIIdlna_prev[0] = (xe_output[iz-1] - xe_output[iz-3])/2./DLNA;
      }
      z  = (1.+zstart)*exp(-DLNA*iz) - 1.;
      z_out  = (1.+zstart)*exp(-DLNA*(iz+1)) - 1.;
      nH = cosmo->nH0*cube(1.+z);

      if (hubble_array[0]==-1.) H  = rec_HubbleRate(cosmo, z);
      else H = rec_interp1d(.0, dz, hubble_array, Nz, z, error, data->error_message);

      update_dEdtdV_dep(z, DLNA, xe_output[iz], Tm_output[iz], nH, H, cosmo->inj_params, &dEdtdV_dep);
      *ion = dEdtdV_dep/3. /nH *(1.-xe_output[iz]) /EI;
      *exclya = *ion /0.75;
    }
    if (*error == 1) return data->error_message;
  }

  /******** Evolve xe and Tm simultaneously until z = zend
      Note that the radiative transfer calculation is switched off automatically in the functions
      rec_get_xe_next1_H and rec_get_xe_next2_HTm when it is no longer relevant.
  ********/

  dTmdlna_prev[1] = (Tm_output[iz-2] - Tm_output[iz-4])/2./DLNA;
  dTmdlna_prev[0] = (Tm_output[iz-1] - Tm_output[iz-3])/2./DLNA;

  if (hubble_array[0]==-1.) {
    H  = rec_HubbleRate(cosmo, z);
    H_next  = rec_HubbleRate(cosmo, z_out);
  }
  else {
    H = rec_interp1d(.0, dz, hubble_array, Nz, z, error, data->error_message);
    H_next = rec_interp1d(.0, dz, hubble_array, Nz, z_out, error, data->error_message);
  }

  for(; z > zend; iz++) {
    rec_get_xe_next2_HTm(data, model, z, iz, dxHIIdlna_prev, dTmdlna_prev, H, z_out, H_next);
    z  = (1.+zstart)*exp(-DLNA*iz) - 1.;
    z_out  = (1.+zstart)*exp(-DLNA*(iz+1)) - 1.;
    if (z < zend) z=0.;

    if (hubble_array[0]==-1.) {
      H  = rec_HubbleRate(cosmo, z);
      H_next  = rec_HubbleRate(cosmo, z_out);
    }
    else {
      H = rec_interp1d(.0, dz, hubble_array, Nz, z, error, data->error_message);
      if (z_out > zend) H_next = rec_interp1d(.0, dz, hubble_array, Nz, z_out, error, data->error_message);
      else H_next = H;
    }
    nH = cosmo->nH0*cube(1.+z);
    update_dEdtdV_dep(z, DLNA, xe_output[iz], Tm_output[iz], nH, H, cosmo->inj_params, &dEdtdV_dep);
    *ion = dEdtdV_dep/3. /nH *(1.-xe_output[iz]) /EI;
    *exclya = *ion /0.75;

    if (*error == 1) return data->error_message;
  }
  return data->error_message;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1a8, %rsp            # imm = 0x1A8
movq %rdx, %rbx
movl %esi, 0xc(%rsp)
movq %rdi, %r14
movq 0x8(%rdi), %r15
movq 0x28(%rdi), %r13
movq 0x30(%rdi), %rax
movq %rax, 0x78(%rsp)
movl 0x20(%rdi), %eax
movsd 0x10(%rdi), %xmm0
movsd %xmm0, 0x30(%rsp)
movsd 0x18(%rdi), %xmm0
movsd %xmm0, 0xc8(%rsp)
movq 0xb8(%r15), %rcx
movq %rcx, 0xb8(%rsp)
movsd 0xa8(%r15), %xmm0
movaps %xmm0, 0xa0(%rsp)
movl %eax, 0x24(%rsp)
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movsd %xmm0, 0x40(%rsp)
movsd 0x8(%r15), %xmm1
movsd 0x98(%r15), %xmm0
mulsd 0x4f537(%rip), %xmm1    # 0x12a368
movsd %xmm1, 0x10(%rsp)
callq 0xd3754
movsd 0x10(%rsp), %xmm1
divsd %xmm0, %xmm1
divsd 0xa0(%r15), %xmm1
movsd 0x30(%rsp), %xmm0
addsd 0x13403(%rip), %xmm0    # 0xee260
movsd %xmm0, 0x80(%rsp)
mulsd %xmm0, %xmm1
divsd 0x16676(%rip), %xmm1    # 0xf14e8
movapd %xmm1, %xmm0
callq 0x82c0
divsd 0xa0(%rsp), %xmm0
addsd 0x133d4(%rip), %xmm0    # 0xee260
callq 0x85e0
cvttsd2si %xmm0, %rax
movq 0x58(%r14), %rcx
movq %rax, 0x8(%rcx)
negq %rax
xorps %xmm0, %xmm0
cvtsi2sd %rax, %xmm0
mulsd 0xa0(%rsp), %xmm0
callq 0x8670
mulsd 0x80(%rsp), %xmm0
addsd 0x13920(%rip), %xmm0    # 0xee7e8
movq 0x58(%r14), %rax
movsd %xmm0, (%rax)
movsd 0x80(%r15), %xmm0
movsd %xmm0, 0x128(%rsp)
xorl %ebp, %ebp
xorpd %xmm1, %xmm1
movsd 0x30(%rsp), %xmm2
ucomisd %xmm1, %xmm2
movapd %xmm2, %xmm1
jb 0xdafa5
ucomisd 0x13dc4(%rip), %xmm0    # 0xeecc8
jbe 0xdafa5
xorl %ebp, %ebp
leaq 0x128(%rsp), %r12
movsd 0xa8(%r15), %xmm1
xorpd 0x1330b(%rip), %xmm1    # 0xee230
xorps %xmm0, %xmm0
cvtsi2sd %rbp, %xmm0
mulsd %xmm1, %xmm0
callq 0x8670
mulsd 0x80(%rsp), %xmm0
addsd 0x138a1(%rip), %xmm0    # 0xee7e8
movapd %xmm0, 0x10(%rsp)
movq %r15, %rdi
movq %r12, %rsi
callq 0xd4034
movapd 0x10(%rsp), %xmm1
movsd %xmm0, (%r13,%rbp,8)
movapd %xmm1, %xmm0
addsd 0x132ef(%rip), %xmm0    # 0xee260
mulsd 0x8(%r15), %xmm0
movq 0x78(%rsp), %rax
movsd %xmm0, (%rax,%rbp,8)
incq %rbp
ucomisd 0x132cc(%rip), %xmm1    # 0xee258
jb 0xdafa5
movsd 0x128(%rsp), %xmm0
ucomisd 0x13d29(%rip), %xmm0    # 0xeecc8
ja 0xdaf14
movq %r13, 0x70(%rsp)
leaq 0x38(%r14), %rax
movq %rax, 0x38(%rsp)
movsd 0x30(%rsp), %xmm0
divsd 0x40(%rsp), %xmm0
movsd %xmm0, 0x30(%rsp)
xorpd %xmm0, %xmm0
movapd %xmm0, 0x130(%rsp)
movq %r15, %rdi
movapd %xmm1, 0x10(%rsp)
movapd %xmm1, %xmm0
callq 0xd41c0
xorpd %xmm4, %xmm4
movapd %xmm0, %xmm3
movsd %xmm0, 0xc0(%rsp)
movl $0x1, %eax
movl %eax, 0x3c(%r14)
movapd %xmm4, 0x170(%rsp)
movl %eax, 0x40(%r14)
movq 0x58(%r14), %rax
cmpq 0x8(%rax), %rbp
jle 0xdb02d
movapd %xmm3, 0x60(%rsp)
movq %rbp, %r13
movl 0x24(%rsp), %ebp
movapd 0x10(%rsp), %xmm2
jmp 0xdb3da
movaps 0x131fc(%rip), %xmm1    # 0xee230
movaps 0xa0(%rsp), %xmm0
xorps %xmm0, %xmm1
movaps %xmm1, 0x40(%rsp)
movapd %xmm3, %xmm1
unpcklpd %xmm3, %xmm1            # xmm1 = xmm1[0],xmm3[0]
movapd %xmm1, 0x100(%rsp)
movlhps %xmm0, %xmm0            # xmm0 = xmm0[0,0]
movaps %xmm0, 0x150(%rsp)
leaq 0xc0(%rsp), %r12
movl 0xc(%rsp), %ecx
movapd 0x10(%rsp), %xmm2
movapd %xmm3, 0xf0(%rsp)
cmpl $0x4, %ecx
jne 0xdb273
cmpl $0x0, 0x3c(%r14)
jne 0xdb273
cmpl $0x1, 0x40(%r14)
jne 0xdb273
leaq -0x1(%rbp), %rax
xorps %xmm0, %xmm0
cvtsi2sd %rax, %xmm0
movsd %xmm0, 0x90(%rsp)
movl $0x1, %r13d
leal -0x1(%r13), %r8d
movq %r14, %rdi
movapd %xmm2, %xmm0
movq %r12, %rsi
leaq 0x170(%rsp), %rdx
movq %rbx, %rcx
callq 0xd9c8f
xorps %xmm0, %xmm0
cvtsi2sd %r13d, %xmm0
divsd 0x1370d(%rip), %xmm0    # 0xee7f0
addsd 0x90(%rsp), %xmm0
mulsd 0x40(%rsp), %xmm0
callq 0x8670
movapd %xmm0, %xmm2
mulsd 0x80(%rsp), %xmm2
movsd 0x136dc(%rip), %xmm0    # 0xee7e8
addsd %xmm0, %xmm2
movsd 0xc0(%rsp), %xmm1
movq %r15, %rdi
movapd %xmm2, 0x10(%rsp)
movapd %xmm2, %xmm0
movaps %xmm1, 0x60(%rsp)
callq 0xd4334
movsd %xmm0, 0x28(%rsp)
movsd (%rbx), %xmm0
ucomisd 0x136a6(%rip), %xmm0    # 0xee7e8
jne 0xdb156
jp 0xdb156
movq %r15, %rdi
movapd 0x10(%rsp), %xmm0
callq 0xd88f4
jmp 0xdb17b
movq 0x48(%r14), %rcx
xorpd %xmm0, %xmm0
movsd 0x30(%rsp), %xmm1
movq %rbx, %rdi
movl 0x24(%rsp), %esi
movapd 0x10(%rsp), %xmm2
movq 0x38(%rsp), %rdx
callq 0xd3a85
movapd %xmm0, %xmm3
movsd 0x130d9(%rip), %xmm1    # 0xee260
subsd 0x28(%rsp), %xmm1
addsd 0x60(%rsp), %xmm1
xorpd %xmm2, %xmm2
movapd 0x10(%rsp), %xmm0
movsd %xmm1, 0x58(%rsp)
movq %r15, %rdi
callq 0xd987f
incl %r13d
cmpl $0xb, %r13d
movapd 0x10(%rsp), %xmm2
jne 0xdb0b5
movq 0x70(%rsp), %rax
movsd 0x58(%rsp), %xmm1
movsd %xmm1, (%rax,%rbp,8)
movq 0x78(%rsp), %rax
movsd %xmm0, 0x90(%rsp)
movsd %xmm0, (%rax,%rbp,8)
movapd 0x60(%rsp), %xmm5
movapd %xmm5, %xmm0
movapd 0xf0(%rsp), %xmm3
unpcklpd %xmm3, %xmm0            # xmm0 = xmm0[0],xmm3[0]
movapd 0x100(%rsp), %xmm4
subpd %xmm4, %xmm0
mulpd 0x4f603(%rip), %xmm0    # 0x12a810
divpd 0x150(%rsp), %xmm0
movapd %xmm0, 0x130(%rsp)
movapd %xmm0, %xmm1
unpckhpd %xmm0, %xmm1            # xmm1 = xmm1[1],xmm0[1]
divsd %xmm0, %xmm1
movsd 0x1302d(%rip), %xmm0    # 0xee260
subsd %xmm1, %xmm0
andpd 0x13001(%rip), %xmm0    # 0xee240
movsd 0x13a91(%rip), %xmm1    # 0xeecd8
ucomisd %xmm0, %xmm1
unpcklpd %xmm4, %xmm3            # xmm3 = xmm3[0],xmm4[0]
movapd %xmm5, %xmm1
jbe 0xdb25d
movl $0x0, 0x40(%r14)
movapd %xmm1, %xmm0
movapd %xmm3, 0x100(%rsp)
movl 0xc(%rsp), %ecx
jmp 0xdb38b
movq %r14, %rdi
movapd %xmm2, %xmm0
movq %r12, %rsi
leaq 0x130(%rsp), %rdx
movq %rbx, %rcx
movl $0xa, %r8d
callq 0xd9c8f
xorps %xmm0, %xmm0
cvtsi2sd %rbp, %xmm0
mulsd 0x40(%rsp), %xmm0
callq 0x8670
movapd %xmm0, %xmm2
mulsd 0x80(%rsp), %xmm2
movsd 0x1352d(%rip), %xmm0    # 0xee7e8
addsd %xmm0, %xmm2
movsd 0xc0(%rsp), %xmm1
movaps %xmm1, 0x60(%rsp)
movq %r15, %rdi
movapd %xmm2, 0x10(%rsp)
movapd %xmm2, %xmm0
callq 0xd4334
movapd %xmm0, %xmm1
movsd 0x12f75(%rip), %xmm0    # 0xee260
movsd %xmm1, 0x28(%rsp)
subsd %xmm1, %xmm0
addsd 0x60(%rsp), %xmm0
movq 0x70(%rsp), %r13
movsd %xmm0, (%r13,%rbp,8)
movsd (%rbx), %xmm0
ucomisd 0x134d5(%rip), %xmm0    # 0xee7e8
jne 0xdb327
jp 0xdb327
movq %r15, %rdi
movapd 0x10(%rsp), %xmm0
callq 0xd88f4
jmp 0xdb34c
movq 0x48(%r14), %rcx
xorpd %xmm0, %xmm0
movsd 0x30(%rsp), %xmm1
movq %rbx, %rdi
movl 0x24(%rsp), %esi
movapd 0x10(%rsp), %xmm2
movq 0x38(%rsp), %rdx
callq 0xd3a85
movapd %xmm0, %xmm3
movsd (%r13,%rbp,8), %xmm1
xorpd %xmm2, %xmm2
movaps 0x10(%rsp), %xmm0
movq %r15, %rdi
callq 0xd987f
movq 0x78(%rsp), %rax
movsd %xmm0, (%rax,%rbp,8)
movapd 0xf0(%rsp), %xmm0
movl 0xc(%rsp), %ecx
movapd 0x10(%rsp), %xmm2
movapd 0x60(%rsp), %xmm1
movq 0x38(%rsp), %rax
cmpl $0x1, (%rax)
je 0xdc0e7
leaq 0x1(%rbp), %r13
movq 0x58(%r14), %rax
movapd %xmm0, %xmm3
cmpq 0x8(%rax), %rbp
movq %r13, %rbp
jl 0xdb072
movapd %xmm1, 0x60(%rsp)
movapd 0x130(%rsp), %xmm4
movl 0x24(%rsp), %ebp
movsd 0x28(%rsp), %xmm0
movsd 0x58(%rsp), %xmm1
movsd 0x90(%rsp), %xmm3
movapd %xmm2, 0x10(%rsp)
movsd %xmm0, 0x28(%rsp)
movsd %xmm0, 0x120(%rsp)
movsd %xmm1, 0xe8(%rsp)
movsd %xmm3, 0xe0(%rsp)
movq 0x70(%rsp), %rax
movupd -0x20(%rax,%r13,8), %xmm0
movupd -0x10(%rax,%r13,8), %xmm1
subpd %xmm0, %xmm1
mulpd 0x4f3f0(%rip), %xmm1    # 0x12a810
movapd 0xa0(%rsp), %xmm0
unpcklpd %xmm0, %xmm0            # xmm0 = xmm0[0,0]
movapd %xmm0, 0x140(%rsp)
divpd %xmm0, %xmm1
shufpd $0x1, %xmm1, %xmm1      # xmm1 = xmm1[1,0]
subpd %xmm4, %xmm1
movapd %xmm1, 0x90(%rsp)
movapd %xmm1, 0xd0(%rsp)
movl $0x1, 0x3c(%r14)
movq $0x0, 0x88(%rsp)
movsd 0x88(%r15), %xmm0
movsd %xmm0, 0x40(%rsp)
movsd 0x12de0(%rip), %xmm0    # 0xee260
addsd %xmm2, %xmm0
callq 0xd3759
mulsd 0x40(%rsp), %xmm0
movsd %xmm0, 0x58(%rsp)
movsd (%rbx), %xmm0
ucomisd 0x13347(%rip), %xmm0    # 0xee7e8
jne 0xdb4b5
jp 0xdb4b5
movq %r15, %rdi
movapd 0x10(%rsp), %xmm0
callq 0xd88f4
jmp 0xdb4d8
movq 0x48(%r14), %rcx
xorpd %xmm0, %xmm0
movsd 0x30(%rsp), %xmm1
movq %rbx, %rdi
movl %ebp, %esi
movapd 0x10(%rsp), %xmm2
movq 0x38(%rsp), %rdx
callq 0xd3a85
movapd %xmm0, %xmm5
movq 0x70(%rsp), %rax
movsd -0x8(%rax,%r13,8), %xmm2
movq 0x78(%rsp), %rax
movsd -0x8(%rax,%r13,8), %xmm3
movq 0xb8(%r15), %rdi
leaq 0x88(%rsp), %r12
movaps 0x10(%rsp), %xmm0
movaps 0xa0(%rsp), %xmm1
movsd 0x58(%rsp), %xmm4
movsd %xmm5, 0x40(%rsp)
movq %r12, %rsi
callq 0xdd556
movsd (%r12), %xmm0
divsd 0x1414e(%rip), %xmm0    # 0xef680
divsd 0x58(%rsp), %xmm0
movsd 0x28(%rsp), %xmm1
mulsd %xmm0, %xmm1
divsd 0x4f2a6(%rip), %xmm1    # 0x12a7f0
movq 0xb8(%rsp), %rax
movsd %xmm1, 0x60(%rax)
divsd 0x175f9(%rip), %xmm1    # 0xf2b58
movsd %xmm1, 0x68(%rax)
xorpd %xmm0, %xmm0
movapd 0x10(%rsp), %xmm4
ucomisd %xmm0, %xmm4
jb 0xdb7c9
movapd 0x60(%rsp), %xmm1
ucomisd 0x1376a(%rip), %xmm1    # 0xeecf0
movl 0xc(%rsp), %esi
jbe 0xdb7cd
movapd 0x12c98(%rip), %xmm0    # 0xee230
xorpd 0xa0(%rsp), %xmm0
movapd %xmm0, 0x90(%rsp)
movsd 0x40(%rsp), %xmm3
movq 0x70(%rsp), %r12
leaq 0x130(%rsp), %rax
movq %rax, (%rsp)
movq %r14, %rdi
movapd %xmm4, %xmm0
movq %r13, %rdx
leaq 0x120(%rsp), %rcx
leaq 0xc0(%rsp), %r8
leaq 0xd0(%rsp), %r9
movapd %xmm3, %xmm1
callq 0xda477
movsd 0x120(%rsp), %xmm1
movsd 0x12c63(%rip), %xmm0    # 0xee260
movsd %xmm1, 0x28(%rsp)
subsd %xmm1, %xmm0
movsd 0xc0(%rsp), %xmm1
movsd %xmm1, 0x58(%rsp)
addsd %xmm1, %xmm0
movq 0x70(%rsp), %rax
movsd %xmm0, (%rax,%r13,8)
xorps %xmm0, %xmm0
cvtsi2sd %r13, %xmm0
mulsd 0x90(%rsp), %xmm0
callq 0x8670
movapd %xmm0, %xmm2
mulsd 0x80(%rsp), %xmm2
movsd 0x13198(%rip), %xmm1    # 0xee7e8
addsd %xmm1, %xmm2
movsd (%rbx), %xmm0
ucomisd %xmm1, %xmm0
movapd %xmm2, 0x10(%rsp)
jne 0xdb67f
jp 0xdb67f
movq %r15, %rdi
movapd %xmm2, %xmm0
callq 0xd88f4
movsd %xmm0, 0x40(%rsp)
movq 0x38(%rsp), %rbp
jmp 0xdb6a7
movq 0x48(%r14), %rcx
xorpd %xmm0, %xmm0
movsd 0x30(%rsp), %xmm1
movq %rbx, %rdi
movl 0x24(%rsp), %esi
movq 0x38(%rsp), %rbp
movq %rbp, %rdx
callq 0xd3a85
movsd %xmm0, 0x40(%rsp)
movsd 0x88(%r15), %xmm0
movsd %xmm0, 0x60(%rsp)
movapd 0x10(%rsp), %xmm0
addsd 0x12b9c(%rip), %xmm0    # 0xee260
callq 0xd3759
mulsd 0x60(%rsp), %xmm0
movsd %xmm0, 0x60(%rsp)
movsd (%r12,%r13,8), %xmm1
movsd 0x88(%rsp), %xmm2
movaps 0x10(%rsp), %xmm0
movq %r15, %rdi
movsd 0x40(%rsp), %xmm3
callq 0xd987f
movaps %xmm0, %xmm3
movq 0x78(%rsp), %rax
movsd %xmm0, (%rax,%r13,8)
movsd (%r12,%r13,8), %xmm2
movq 0xb8(%r15), %rdi
movaps 0x10(%rsp), %xmm0
movaps 0xa0(%rsp), %xmm1
movsd 0x60(%rsp), %xmm4
movsd 0x40(%rsp), %xmm5
leaq 0x88(%rsp), %rsi
callq 0xdd556
movsd 0x88(%rsp), %xmm0
divsd 0x13f37(%rip), %xmm0    # 0xef680
divsd 0x60(%rsp), %xmm0
movsd 0x28(%rsp), %xmm1
mulsd %xmm0, %xmm1
divsd 0x4f08f(%rip), %xmm1    # 0x12a7f0
movq 0xb8(%rsp), %rax
movsd %xmm1, 0x60(%rax)
divsd 0x173e2(%rip), %xmm1    # 0xf2b58
movsd %xmm1, 0x68(%rax)
cmpl $0x1, (%rbp)
movl 0xc(%rsp), %esi
movapd 0x10(%rsp), %xmm4
je 0xdc0e7
incq %r13
ucomisd 0x12abe(%rip), %xmm4    # 0xee258
movsd 0x40(%rsp), %xmm3
jb 0xdb7b6
movsd 0x58(%rsp), %xmm0
ucomisd 0x13540(%rip), %xmm0    # 0xeecf0
ja 0xdb5b5
movapd 0xd0(%rsp), %xmm1
movl 0x24(%rsp), %ebp
xorpd %xmm0, %xmm0
jmp 0xdb7dc
movl 0xc(%rsp), %esi
movsd 0x40(%rsp), %xmm3
movapd 0x90(%rsp), %xmm1
movapd %xmm1, 0x180(%rsp)
movl $0x1, 0x40(%r14)
ucomisd %xmm0, %xmm4
jae 0xdb801
movsd %xmm0, 0x90(%rsp)
jmp 0xdbd70
movapd 0x12a27(%rip), %xmm1    # 0xee230
movapd 0xa0(%rsp), %xmm0
xorpd %xmm0, %xmm1
movapd %xmm1, 0xf0(%rsp)
divsd 0x12fc9(%rip), %xmm0    # 0xee7f0
movapd %xmm0, 0x150(%rsp)
xorpd %xmm0, %xmm0
movsd %xmm0, 0x90(%rsp)
movq 0x78(%rsp), %rax
movsd -0x8(%rax,%r13,8), %xmm5
movapd %xmm5, %xmm0
divsd 0x8(%r15), %xmm0
movapd %xmm4, %xmm1
movsd 0x12a01(%rip), %xmm2    # 0xee260
addsd %xmm2, %xmm1
divsd %xmm1, %xmm0
movapd %xmm2, %xmm1
subsd %xmm0, %xmm1
andpd 0x129c9(%rip), %xmm1    # 0xee240
movsd 0x4ef79(%rip), %xmm0    # 0x12a7f8
ucomisd %xmm1, %xmm0
jbe 0xdbd70
cmpl $0x4, %esi
jne 0xdbb1b
cmpl $0x1, 0x40(%r14)
movq 0x70(%rsp), %rax
movsd -0x8(%rax,%r13,8), %xmm6
jne 0xdbb47
leaq -0x1(%r13), %rax
movsd %xmm6, 0xe8(%rsp)
movsd %xmm5, 0xe0(%rsp)
xorps %xmm0, %xmm0
cvtsi2sd %rax, %xmm0
movsd %xmm0, 0x100(%rsp)
movl $0x1, %r12d
leal -0x1(%r12), %eax
movl %eax, (%rsp)
movq %r14, %rdi
movl $0x4, %esi
movapd %xmm4, %xmm0
movq %r13, %rdx
movapd %xmm6, %xmm1
movapd %xmm5, %xmm2
leaq 0xe8(%rsp), %rcx
leaq 0xe0(%rsp), %r8
leaq 0x180(%rsp), %r9
callq 0xda763
xorps %xmm0, %xmm0
cvtsi2sd %r12d, %xmm0
divsd 0x12ece(%rip), %xmm0    # 0xee7f0
addsd 0x100(%rsp), %xmm0
mulsd 0xf0(%rsp), %xmm0
callq 0x8670
movapd %xmm0, %xmm1
mulsd 0x80(%rsp), %xmm1
movsd 0x12e9a(%rip), %xmm0    # 0xee7e8
addsd %xmm0, %xmm1
movsd 0x88(%r15), %xmm0
movsd %xmm0, 0x60(%rsp)
movapd %xmm1, 0x10(%rsp)
addsd 0x128f1(%rip), %xmm1    # 0xee260
movapd %xmm1, %xmm0
callq 0xd3759
movsd %xmm0, 0x28(%rsp)
movsd (%rbx), %xmm0
ucomisd 0x12e5e(%rip), %xmm0    # 0xee7e8
jne 0xdb99e
jp 0xdb99e
movq %r15, %rdi
movapd 0x10(%rsp), %xmm0
callq 0xd88f4
jmp 0xdb9c1
movq 0x48(%r14), %rcx
xorpd %xmm0, %xmm0
movsd 0x30(%rsp), %xmm1
movq %rbx, %rdi
movl %ebp, %esi
movapd 0x10(%rsp), %xmm2
movq 0x38(%rsp), %rdx
callq 0xd3a85
movsd %xmm0, 0x40(%rsp)
movsd 0x60(%rsp), %xmm4
mulsd 0x28(%rsp), %xmm4
movsd %xmm4, 0x60(%rsp)
movsd 0xe8(%rsp), %xmm2
movsd %xmm2, 0x28(%rsp)
movsd 0xe0(%rsp), %xmm3
movsd %xmm3, 0x58(%rsp)
movq 0xb8(%r15), %rdi
movaps 0x10(%rsp), %xmm0
movaps 0x150(%rsp), %xmm1
movsd 0x40(%rsp), %xmm5
leaq 0x88(%rsp), %rsi
callq 0xdd556
movsd 0x28(%rsp), %xmm6
movsd 0x58(%rsp), %xmm5
movsd 0x40(%rsp), %xmm3
movsd 0x88(%rsp), %xmm0
divsd 0x13c3f(%rip), %xmm0    # 0xef680
divsd 0x60(%rsp), %xmm0
movsd 0x12811(%rip), %xmm2    # 0xee260
movapd %xmm2, %xmm1
subsd %xmm6, %xmm1
mulsd %xmm0, %xmm1
divsd 0x4ed8d(%rip), %xmm1    # 0x12a7f0
movq 0xb8(%rsp), %rax
movsd %xmm1, 0x60(%rax)
divsd 0x170e0(%rip), %xmm1    # 0xf2b58
movsd %xmm1, 0x68(%rax)
incl %r12d
cmpl $0xb, %r12d
movapd 0x10(%rsp), %xmm4
jne 0xdb8d6
movq 0x70(%rsp), %rax
movsd %xmm6, (%rax,%r13,8)
movq 0x78(%rsp), %rcx
movsd %xmm5, (%rcx,%r13,8)
movupd -0x18(%rax,%r13,8), %xmm0
movupd -0x8(%rax,%r13,8), %xmm1
subpd %xmm0, %xmm1
mulpd 0x4ed50(%rip), %xmm1    # 0x12a810
divpd 0x140(%rsp), %xmm1
movapd %xmm1, %xmm0
shufpd $0x1, %xmm1, %xmm0      # xmm0 = xmm0[1],xmm1[0]
movapd %xmm0, 0xd0(%rsp)
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
divsd %xmm0, %xmm1
movapd %xmm2, %xmm0
subsd %xmm1, %xmm0
andpd 0x12749(%rip), %xmm0    # 0xee240
movsd 0x131d9(%rip), %xmm1    # 0xeecd8
ucomisd %xmm0, %xmm1
jbe 0xdbb0d
movl $0x0, 0x40(%r14)
movl 0xc(%rsp), %esi
movq 0x38(%rsp), %rax
jmp 0xdbd4c
movq 0x70(%rsp), %rax
leaq (%rax,%r13,8), %r12
movsd -0x8(%r12), %xmm1
movq 0x78(%rsp), %rax
leaq (%rax,%r13,8), %rbp
movl $0xa, (%rsp)
movq %r14, %rdi
movapd %xmm4, %xmm0
movq %r13, %rdx
jmp 0xdbb6e
leaq (%rax,%r13,8), %r12
movq 0x78(%rsp), %rax
leaq (%rax,%r13,8), %rbp
movl $0xa, (%rsp)
movq %r14, %rdi
movl $0x4, %esi
movapd %xmm4, %xmm0
movq %r13, %rdx
movapd %xmm6, %xmm1
movapd %xmm5, %xmm2
movq %r12, %rcx
movq %rbp, %r8
leaq 0xd0(%rsp), %r9
callq 0xda763
cmpl $0x1, 0x3c(%r14)
jne 0xdbbc2
movq 0x70(%rsp), %rax
movupd -0x20(%rax,%r13,8), %xmm0
movupd -0x10(%rax,%r13,8), %xmm1
subpd %xmm0, %xmm1
mulpd 0x4ec65(%rip), %xmm1    # 0x12a810
divpd 0x140(%rsp), %xmm1
shufpd $0x1, %xmm1, %xmm1      # xmm1 = xmm1[1,0]
movapd %xmm1, 0xd0(%rsp)
xorps %xmm0, %xmm0
cvtsi2sd %r13, %xmm0
mulsd 0xf0(%rsp), %xmm0
callq 0x8670
movapd %xmm0, %xmm1
mulsd 0x80(%rsp), %xmm1
movsd 0x12bfb(%rip), %xmm0    # 0xee7e8
addsd %xmm0, %xmm1
movapd %xmm1, 0x10(%rsp)
leaq 0x1(%r13), %rax
xorps %xmm0, %xmm0
cvtsi2sd %rax, %xmm0
mulsd 0xf0(%rsp), %xmm0
callq 0x8670
movsd %xmm0, 0x90(%rsp)
movsd 0x88(%r15), %xmm0
movsd %xmm0, 0x60(%rsp)
movapd 0x10(%rsp), %xmm0
addsd 0x12629(%rip), %xmm0    # 0xee260
callq 0xd3759
movsd %xmm0, 0x40(%rsp)
movsd (%rbx), %xmm0
ucomisd 0x12b9a(%rip), %xmm0    # 0xee7e8
jne 0xdbc62
jp 0xdbc62
movq %r15, %rdi
movapd 0x10(%rsp), %xmm0
callq 0xd88f4
jmp 0xdbc87
movq 0x48(%r14), %rcx
xorpd %xmm0, %xmm0
movsd 0x30(%rsp), %xmm1
movq %rbx, %rdi
movl 0x24(%rsp), %esi
movapd 0x10(%rsp), %xmm2
movq 0x38(%rsp), %rdx
callq 0xd3a85
movapd %xmm0, %xmm5
movsd 0x90(%rsp), %xmm0
mulsd 0x80(%rsp), %xmm0
addsd 0x12b43(%rip), %xmm0    # 0xee7e8
movsd %xmm0, 0x90(%rsp)
movsd 0x60(%rsp), %xmm4
mulsd 0x40(%rsp), %xmm4
movsd %xmm4, 0x60(%rsp)
movsd (%r12), %xmm2
movsd (%rbp), %xmm3
movq 0xb8(%r15), %rdi
movaps 0x10(%rsp), %xmm0
movaps 0xa0(%rsp), %xmm1
movsd %xmm5, 0x40(%rsp)
leaq 0x88(%rsp), %rsi
callq 0xdd556
movsd 0x88(%rsp), %xmm0
divsd 0x1397d(%rip), %xmm0    # 0xef680
divsd 0x60(%rsp), %xmm0
movsd 0x1254f(%rip), %xmm1    # 0xee260
subsd (%r12), %xmm1
mulsd %xmm0, %xmm1
divsd 0x4eacd(%rip), %xmm1    # 0x12a7f0
movq 0xb8(%rsp), %rax
movsd %xmm1, 0x60(%rax)
divsd 0x16e20(%rip), %xmm1    # 0xf2b58
movsd %xmm1, 0x68(%rax)
movl 0xc(%rsp), %esi
movq 0x38(%rsp), %rax
movapd 0x10(%rsp), %xmm4
cmpl $0x1, (%rax)
je 0xdc0e7
incq %r13
ucomisd 0x124f8(%rip), %xmm4    # 0xee258
movl 0x24(%rsp), %ebp
movsd 0x40(%rsp), %xmm3
jae 0xdb83d
movq 0x78(%rsp), %rax
movupd -0x20(%rax,%r13,8), %xmm0
movupd -0x10(%rax,%r13,8), %xmm1
subpd %xmm0, %xmm1
mulpd 0x4ea81(%rip), %xmm1    # 0x12a810
divpd 0x140(%rsp), %xmm1
shufpd $0x1, %xmm1, %xmm1      # xmm1 = xmm1[1,0]
movapd %xmm1, 0x190(%rsp)
movsd (%rbx), %xmm0
ucomisd 0x12a36(%rip), %xmm0    # 0xee7e8
movapd %xmm4, 0x10(%rsp)
jne 0xdbde1
jp 0xdbde1
movq %r15, %rdi
movapd %xmm4, %xmm0
callq 0xd88f4
movsd %xmm0, 0x40(%rsp)
movq %r15, %rdi
movsd 0x90(%rsp), %xmm0
callq 0xd88f4
jmp 0xdbe3b
movq 0x48(%r14), %rcx
xorpd %xmm0, %xmm0
movsd 0x30(%rsp), %xmm1
movq %rbx, %rdi
movl %ebp, %esi
movapd %xmm4, %xmm2
movq %rbx, %r12
movq %r14, %rbx
movq 0x38(%rsp), %r14
movq %r14, %rdx
callq 0xd3a85
movsd %xmm0, 0x40(%rsp)
movq 0x48(%rbx), %rcx
xorpd %xmm0, %xmm0
movsd 0x30(%rsp), %xmm1
movq %r12, %rdi
movl %ebp, %esi
movsd 0x90(%rsp), %xmm2
movq %r14, %rdx
movq %rbx, %r14
movq %r12, %rbx
callq 0xd3a85
movapd %xmm0, %xmm3
movaps 0x123ea(%rip), %xmm0    # 0xee230
xorps 0xa0(%rsp), %xmm0
movaps %xmm0, 0x60(%rsp)
movl 0xc(%rsp), %esi
movsd 0xc8(%rsp), %xmm1
movapd 0x10(%rsp), %xmm0
movq %rbx, 0x118(%rsp)
movq %r14, 0x168(%rsp)
ucomisd %xmm1, %xmm0
jbe 0xdc0e7
movq %r13, %rbp
movq %r14, %rdi
movq %r13, %rdx
leaq 0xd0(%rsp), %rcx
leaq 0x190(%rsp), %r8
movsd 0x40(%rsp), %xmm1
movsd 0x90(%rsp), %xmm2
callq 0xdaa44
xorps %xmm0, %xmm0
cvtsi2sd %r13, %xmm0
mulsd 0x60(%rsp), %xmm0
callq 0x8670
movapd %xmm0, %xmm1
mulsd 0x80(%rsp), %xmm1
movsd 0x12913(%rip), %xmm0    # 0xee7e8
addsd %xmm0, %xmm1
movapd %xmm1, 0x10(%rsp)
incq %r13
xorps %xmm0, %xmm0
cvtsi2sd %r13, %xmm0
mulsd 0x60(%rsp), %xmm0
callq 0x8670
mulsd 0x80(%rsp), %xmm0
movsd 0x128e2(%rip), %xmm1    # 0xee7e8
addsd %xmm1, %xmm0
movsd %xmm0, 0x90(%rsp)
movapd 0x10(%rsp), %xmm0
movapd %xmm0, %xmm2
cmpltsd 0xc8(%rsp), %xmm2
andnpd %xmm0, %xmm2
movsd (%rbx), %xmm0
ucomisd %xmm1, %xmm0
movapd %xmm2, 0x10(%rsp)
jne 0xdbf73
jp 0xdbf73
movq %r15, %rdi
movapd %xmm2, %xmm0
callq 0xd88f4
movsd %xmm0, 0x40(%rsp)
movq %r15, %rdi
movsd 0x90(%rsp), %xmm0
callq 0xd88f4
movsd %xmm0, 0x58(%rsp)
movsd 0x122f2(%rip), %xmm1    # 0xee260
jmp 0xdc00b
movq 0x48(%r14), %rcx
xorpd %xmm0, %xmm0
movsd 0x30(%rsp), %xmm1
movq %rbx, %rdi
movl 0x24(%rsp), %r12d
movl %r12d, %esi
movq %r14, %rbx
movq 0x38(%rsp), %r14
movq %r14, %rdx
callq 0xd3a85
movsd 0x90(%rsp), %xmm2
ucomisd 0xc8(%rsp), %xmm2
movsd %xmm0, 0x40(%rsp)
jbe 0xdbff2
movq 0x48(%rbx), %rcx
xorpd %xmm0, %xmm0
movsd 0x30(%rsp), %xmm1
movq 0x118(%rsp), %rbx
movq %rbx, %rdi
movl %r12d, %esi
movq %r14, %rdx
callq 0xd3a85
movsd %xmm0, 0x58(%rsp)
movsd 0x12278(%rip), %xmm1    # 0xee260
movq 0x168(%rsp), %r14
jmp 0xdc00b
movsd %xmm0, 0x58(%rsp)
movsd 0x12260(%rip), %xmm1    # 0xee260
movq %rbx, %r14
movq 0x118(%rsp), %rbx
movsd 0x88(%r15), %xmm0
movsd %xmm0, 0x28(%rsp)
movapd 0x10(%rsp), %xmm0
addsd %xmm1, %xmm0
callq 0xd3759
movapd %xmm0, %xmm4
mulsd 0x28(%rsp), %xmm4
movsd %xmm4, 0x28(%rsp)
movq 0x70(%rsp), %r12
movsd (%r12,%rbp,8), %xmm2
movq 0x78(%rsp), %rax
movsd (%rax,%rbp,8), %xmm3
movq 0xb8(%r15), %rdi
movaps 0x10(%rsp), %xmm0
movaps 0xa0(%rsp), %xmm1
movsd 0x40(%rsp), %xmm5
leaq 0x88(%rsp), %rsi
callq 0xdd556
movsd 0x88(%rsp), %xmm0
divsd 0x135fa(%rip), %xmm0    # 0xef680
movsd 0x121d2(%rip), %xmm1    # 0xee260
subsd (%r12,%rbp,8), %xmm1
divsd 0x28(%rsp), %xmm0
mulsd %xmm0, %xmm1
divsd 0x4e74a(%rip), %xmm1    # 0x12a7f0
movq 0xb8(%rsp), %rax
movsd %xmm1, 0x60(%rax)
divsd 0x16a9d(%rip), %xmm1    # 0xf2b58
movsd %xmm1, 0x68(%rax)
movq 0x38(%rsp), %rax
cmpl $0x1, (%rax)
movl 0xc(%rsp), %esi
movsd 0xc8(%rsp), %xmm1
movapd 0x10(%rsp), %xmm0
movsd 0x58(%rsp), %xmm3
jne 0xdbe76
movq 0x48(%r14), %rax
addq $0x1a8, %rsp            # imm = 0x1A8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq