// File: /workspace/github_c_makefile_star2_O0/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:
subq $0x1f8, %rsp            # imm = 0x1F8
movq %rdi, 0x1e8(%rsp)
movl %esi, 0x1e4(%rsp)
movq %rdx, 0x1d8(%rsp)
movq 0x1e8(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x1d0(%rsp)
movq 0x1e8(%rsp), %rax
addq $0x38, %rax
movq %rax, 0x1c8(%rsp)
movq 0x1e8(%rsp), %rax
movq 0x28(%rax), %rax
movq %rax, 0x1c0(%rsp)
movq 0x1e8(%rsp), %rax
movq 0x30(%rax), %rax
movq %rax, 0x1b8(%rsp)
movq 0x1e8(%rsp), %rax
movq 0x20(%rax), %rax
movl %eax, 0x1b4(%rsp)
movq 0x1e8(%rsp), %rax
movsd 0x10(%rax), %xmm0
movsd %xmm0, 0x1a8(%rsp)
movq 0x1e8(%rsp), %rax
movsd 0x18(%rax), %xmm0
movsd %xmm0, 0x1a0(%rsp)
movq 0x1d0(%rsp), %rax
movq 0xb8(%rax), %rax
addq $0x60, %rax
movq %rax, 0xd0(%rsp)
movq 0x1d0(%rsp), %rax
movq 0xb8(%rax), %rax
addq $0x68, %rax
movq %rax, 0xc8(%rsp)
xorps %xmm0, %xmm0
movsd %xmm0, 0xc0(%rsp)
movl $0xa, 0xb4(%rsp)
movq 0x1d0(%rsp), %rax
movsd 0xa8(%rax), %xmm0
movsd %xmm0, 0x108(%rsp)
movsd 0x1a8(%rsp), %xmm0
cvtsi2sdl 0x1b4(%rsp), %xmm1
divsd %xmm1, %xmm0
movsd %xmm0, 0x110(%rsp)
movq 0x1d0(%rsp), %rax
movsd 0x5d546(%rip), %xmm0    # 0x20e8f8
mulsd 0x8(%rax), %xmm0
movsd %xmm0, 0x90(%rsp)
movq 0x1d0(%rsp), %rax
movsd 0x98(%rax), %xmm0
callq 0x1a5650
movaps %xmm0, %xmm1
movsd 0x90(%rsp), %xmm0
divsd %xmm1, %xmm0
movq 0x1d0(%rsp), %rax
divsd 0xa0(%rax), %xmm0
movsd 0x20e4b(%rip), %xmm1    # 0x1d2248
addsd 0x1a8(%rsp), %xmm1
mulsd %xmm1, %xmm0
movsd 0x2411e(%rip), %xmm1    # 0x1d5530
divsd %xmm1, %xmm0
callq 0x82f0
movaps %xmm0, %xmm1
divsd 0x108(%rsp), %xmm1
movsd 0x20e19(%rip), %xmm0    # 0x1d2248
addsd %xmm1, %xmm0
callq 0x85d0
cvttsd2si %xmm0, %rcx
movq 0x1e8(%rsp), %rax
movq 0x58(%rax), %rax
movq %rcx, 0x8(%rax)
movsd 0x20df3(%rip), %xmm0    # 0x1d2248
addsd 0x1a8(%rsp), %xmm0
movsd %xmm0, 0x98(%rsp)
movq 0x1e8(%rsp), %rax
movq 0x58(%rax), %rcx
xorl %eax, %eax
subq 0x8(%rcx), %rax
cvtsi2sd %rax, %xmm0
mulsd 0x108(%rsp), %xmm0
callq 0x8670
movaps %xmm0, %xmm1
movsd 0x98(%rsp), %xmm0
mulsd %xmm1, %xmm0
movsd 0x2132c(%rip), %xmm1    # 0x1d27d0
addsd %xmm1, %xmm0
movq 0x1e8(%rsp), %rax
movq 0x58(%rax), %rax
movsd %xmm0, (%rax)
movsd 0x1a8(%rsp), %xmm0
movsd %xmm0, 0x118(%rsp)
movq 0x1d0(%rsp), %rax
movsd 0x80(%rax), %xmm0
movsd %xmm0, 0x100(%rsp)
movq $0x0, 0x198(%rsp)
movsd 0x118(%rsp), %xmm0
xorl %eax, %eax
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
movb %al, 0x8f(%rsp)
jb 0x1b1529
movsd 0x100(%rsp), %xmm0
movsd 0x3ff9d(%rip), %xmm1    # 0x1f14b8
ucomisd %xmm1, %xmm0
seta %al
movb %al, 0x8f(%rsp)
movb 0x8f(%rsp), %al
testb $0x1, %al
jne 0x1b1539
jmp 0x1b1635
movsd 0x20d07(%rip), %xmm0    # 0x1d2248
addsd 0x1a8(%rsp), %xmm0
movsd %xmm0, 0x80(%rsp)
movq 0x1d0(%rsp), %rax
movsd 0xa8(%rax), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
cvtsi2sdq 0x198(%rsp), %xmm1
mulsd %xmm1, %xmm0
callq 0x8670
movaps %xmm0, %xmm1
movsd 0x80(%rsp), %xmm0
mulsd %xmm1, %xmm0
movsd 0x2122b(%rip), %xmm1    # 0x1d27d0
addsd %xmm1, %xmm0
movsd %xmm0, 0x118(%rsp)
movq 0x1d0(%rsp), %rdi
movsd 0x118(%rsp), %xmm0
leaq 0x100(%rsp), %rsi
callq 0x1a6820
movq 0x1c0(%rsp), %rax
movq 0x198(%rsp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movq 0x1d0(%rsp), %rax
movsd 0x8(%rax), %xmm0
movsd 0x20c4e(%rip), %xmm1    # 0x1d2248
addsd 0x118(%rsp), %xmm1
mulsd %xmm1, %xmm0
movq 0x1b8(%rsp), %rax
movq 0x198(%rsp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movq 0x198(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x198(%rsp)
jmp 0x1b14ef
xorps %xmm0, %xmm0
movsd %xmm0, 0x160(%rsp)
xorps %xmm0, %xmm0
movsd %xmm0, 0x168(%rsp)
movq 0x1d0(%rsp), %rdi
movsd 0x118(%rsp), %xmm0
callq 0x1a6a30
movsd %xmm0, 0xf8(%rsp)
movq 0x1e8(%rsp), %rax
movl $0x1, 0x3c(%rax)
movsd 0x168(%rsp), %xmm0
movsd %xmm0, 0x148(%rsp)
movsd 0x160(%rsp), %xmm0
movsd %xmm0, 0x140(%rsp)
movsd 0xf8(%rsp), %xmm0
movsd %xmm0, 0x138(%rsp)
movsd 0xf8(%rsp), %xmm0
movsd %xmm0, 0x130(%rsp)
movsd 0xf8(%rsp), %xmm0
movsd %xmm0, 0x128(%rsp)
movsd 0xf8(%rsp), %xmm0
movsd %xmm0, 0x120(%rsp)
movq 0x1e8(%rsp), %rax
movl $0x1, 0x40(%rax)
movq 0x198(%rsp), %rax
movq 0x1e8(%rsp), %rcx
movq 0x58(%rcx), %rcx
cmpq 0x8(%rcx), %rax
jg 0x1b1cba
cmpl $0x4, 0x1e4(%rsp)
jne 0x1b1ab1
movq 0x1e8(%rsp), %rax
cmpl $0x0, 0x3c(%rax)
jne 0x1b1ab1
movq 0x1e8(%rsp), %rax
cmpl $0x1, 0x40(%rax)
jne 0x1b1ab1
movq 0x1c0(%rsp), %rax
movq 0x198(%rsp), %rcx
subq $0x1, %rcx
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, 0xa8(%rsp)
movq 0x1b8(%rsp), %rax
movq 0x198(%rsp), %rcx
subq $0x1, %rcx
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, 0xa0(%rsp)
movl $0x0, 0xb4(%rsp)
cmpl $0xa, 0xb4(%rsp)
jge 0x1b1982
movq 0x1e8(%rsp), %rdi
movsd 0x118(%rsp), %xmm0
leaq 0x140(%rsp), %rdx
movq 0x1d8(%rsp), %rcx
movl 0xb4(%rsp), %r8d
leaq 0xf8(%rsp), %rsi
callq 0x1af660
movsd 0x20a67(%rip), %xmm0    # 0x1d2248
addsd 0x1a8(%rsp), %xmm0
movsd %xmm0, 0x78(%rsp)
movsd 0x108(%rsp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movq 0x198(%rsp), %rax
subq $0x1, %rax
cvtsi2sd %rax, %xmm1
movl 0xb4(%rsp), %eax
addl $0x1, %eax
cvtsi2sd %eax, %xmm2
movsd 0x20fa9(%rip), %xmm3    # 0x1d27e0
divsd %xmm3, %xmm2
addsd %xmm2, %xmm1
mulsd %xmm1, %xmm0
callq 0x8670
movaps %xmm0, %xmm1
movsd 0x78(%rsp), %xmm0
mulsd %xmm1, %xmm0
movsd 0x20f73(%rip), %xmm1    # 0x1d27d0
addsd %xmm1, %xmm0
movsd %xmm0, 0x118(%rsp)
movq 0x1d0(%rsp), %rdi
movsd 0x118(%rsp), %xmm0
movsd 0xf8(%rsp), %xmm1
callq 0x1a6c20
movsd %xmm0, 0xf0(%rsp)
movsd 0x209ae(%rip), %xmm0    # 0x1d2248
subsd 0xf0(%rsp), %xmm0
addsd 0xf8(%rsp), %xmm0
movsd %xmm0, 0xa8(%rsp)
movq 0x1d8(%rsp), %rax
movsd (%rax), %xmm0
movsd 0x20f07(%rip), %xmm1    # 0x1d27d0
ucomisd %xmm1, %xmm0
jne 0x1b18f2
jp 0x1b18f2
movq 0x1d0(%rsp), %rdi
movsd 0x118(%rsp), %xmm0
callq 0x1adee0
movsd %xmm0, 0xd8(%rsp)
jmp 0x1b1938
movsd 0x110(%rsp), %xmm1
movq 0x1d8(%rsp), %rdi
movl 0x1b4(%rsp), %esi
movsd 0x118(%rsp), %xmm2
movq 0x1c8(%rsp), %rdx
movq 0x1e8(%rsp), %rax
movq 0x48(%rax), %rcx
xorps %xmm0, %xmm0
callq 0x1a5ae0
movsd %xmm0, 0xd8(%rsp)
movsd 0x118(%rsp), %xmm0
movsd 0xa8(%rsp), %xmm1
movq 0x1d0(%rsp), %rdi
movsd 0xd8(%rsp), %xmm3
xorps %xmm2, %xmm2
callq 0x1aeff0
movsd %xmm0, 0xa0(%rsp)
movl 0xb4(%rsp), %eax
addl $0x1, %eax
movl %eax, 0xb4(%rsp)
jmp 0x1b1795
movsd 0xa8(%rsp), %xmm0
movq 0x1c0(%rsp), %rax
movq 0x198(%rsp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movsd 0xa0(%rsp), %xmm0
movq 0x1b8(%rsp), %rax
movq 0x198(%rsp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movsd 0x130(%rsp), %xmm0
movsd %xmm0, 0x138(%rsp)
movsd 0x128(%rsp), %xmm0
movsd %xmm0, 0x130(%rsp)
movsd 0x120(%rsp), %xmm0
movsd %xmm0, 0x128(%rsp)
movsd 0xf8(%rsp), %xmm0
movsd %xmm0, 0x120(%rsp)
movsd 0x128(%rsp), %xmm0
subsd 0x138(%rsp), %xmm0
movsd 0x21260(%rip), %xmm1    # 0x1d2c80
divsd %xmm1, %xmm0
divsd 0x108(%rsp), %xmm0
movsd %xmm0, 0x168(%rsp)
movsd 0x120(%rsp), %xmm0
subsd 0x130(%rsp), %xmm0
movsd 0x21230(%rip), %xmm1    # 0x1d2c80
divsd %xmm1, %xmm0
divsd 0x108(%rsp), %xmm0
movsd %xmm0, 0x160(%rsp)
movsd 0x168(%rsp), %xmm0
divsd 0x160(%rsp), %xmm0
movsd 0x207c8(%rip), %xmm1    # 0x1d2248
subsd %xmm0, %xmm1
movaps 0x207a5(%rip), %xmm0    # 0x1d2230
pand %xmm0, %xmm1
movsd 0x21209(%rip), %xmm0    # 0x1d2ca0
ucomisd %xmm1, %xmm0
jbe 0x1b1aac
movq 0x1e8(%rsp), %rax
movl $0x0, 0x40(%rax)
jmp 0x1b1c79
movq 0x1e8(%rsp), %rdi
movsd 0x118(%rsp), %xmm0
leaq 0x160(%rsp), %rdx
movq 0x1d8(%rsp), %rcx
movl 0xb4(%rsp), %r8d
leaq 0xf8(%rsp), %rsi
callq 0x1af660
movsd 0x20759(%rip), %xmm0    # 0x1d2248
addsd 0x1a8(%rsp), %xmm0
movsd %xmm0, 0x70(%rsp)
movsd 0x108(%rsp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
cvtsi2sdq 0x198(%rsp), %xmm1
mulsd %xmm1, %xmm0
callq 0x8670
movaps %xmm0, %xmm1
movsd 0x70(%rsp), %xmm0
mulsd %xmm1, %xmm0
movsd 0x20c8a(%rip), %xmm1    # 0x1d27d0
addsd %xmm1, %xmm0
movsd %xmm0, 0x118(%rsp)
movq 0x1d0(%rsp), %rdi
movsd 0x118(%rsp), %xmm0
movsd 0xf8(%rsp), %xmm1
callq 0x1a6c20
movsd %xmm0, 0xf0(%rsp)
movsd 0x206c5(%rip), %xmm0    # 0x1d2248
subsd 0xf0(%rsp), %xmm0
addsd 0xf8(%rsp), %xmm0
movq 0x1c0(%rsp), %rax
movq 0x198(%rsp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movq 0x1d8(%rsp), %rax
movsd (%rax), %xmm0
movsd 0x20c12(%rip), %xmm1    # 0x1d27d0
ucomisd %xmm1, %xmm0
jne 0x1b1be7
jp 0x1b1be7
movq 0x1d0(%rsp), %rdi
movsd 0x118(%rsp), %xmm0
callq 0x1adee0
movsd %xmm0, 0xd8(%rsp)
jmp 0x1b1c2d
movsd 0x110(%rsp), %xmm1
movq 0x1d8(%rsp), %rdi
movl 0x1b4(%rsp), %esi
movsd 0x118(%rsp), %xmm2
movq 0x1c8(%rsp), %rdx
movq 0x1e8(%rsp), %rax
movq 0x48(%rax), %rcx
xorps %xmm0, %xmm0
callq 0x1a5ae0
movsd %xmm0, 0xd8(%rsp)
movsd 0x118(%rsp), %xmm0
movq 0x1c0(%rsp), %rax
movq 0x198(%rsp), %rcx
movsd (%rax,%rcx,8), %xmm1
movq 0x1d0(%rsp), %rdi
movsd 0xd8(%rsp), %xmm3
xorps %xmm2, %xmm2
callq 0x1aeff0
movq 0x1b8(%rsp), %rax
movq 0x198(%rsp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movq 0x1c8(%rsp), %rax
cmpl $0x1, (%rax)
jne 0x1b1c9f
movq 0x1e8(%rsp), %rax
movq 0x48(%rax), %rax
movq %rax, 0x1f0(%rsp)
jmp 0x1b310e
jmp 0x1b1ca1
movq 0x198(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x198(%rsp)
jmp 0x1b16f6
movq 0x1c0(%rsp), %rax
movq 0x198(%rsp), %rcx
subq $0x2, %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x1c0(%rsp), %rax
movq 0x198(%rsp), %rcx
subq $0x4, %rcx
subsd (%rax,%rcx,8), %xmm0
movsd 0x20f8c(%rip), %xmm1    # 0x1d2c80
divsd %xmm1, %xmm0
divsd 0x108(%rsp), %xmm0
subsd 0x168(%rsp), %xmm0
movsd %xmm0, 0x188(%rsp)
movq 0x1c0(%rsp), %rax
movq 0x198(%rsp), %rcx
subq $0x1, %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x1c0(%rsp), %rax
movq 0x198(%rsp), %rcx
subq $0x3, %rcx
subsd (%rax,%rcx,8), %xmm0
movsd 0x20f33(%rip), %xmm1    # 0x1d2c80
divsd %xmm1, %xmm0
divsd 0x108(%rsp), %xmm0
subsd 0x160(%rsp), %xmm0
movsd %xmm0, 0x180(%rsp)
movq 0x1e8(%rsp), %rax
movl $0x1, 0x3c(%rax)
xorps %xmm0, %xmm0
movsd %xmm0, 0xe8(%rsp)
movq 0x1d0(%rsp), %rax
movsd 0x88(%rax), %xmm0
movsd %xmm0, 0x68(%rsp)
movsd 0x204a3(%rip), %xmm0    # 0x1d2248
addsd 0x118(%rsp), %xmm0
callq 0x1a5670
movaps %xmm0, %xmm1
movsd 0x68(%rsp), %xmm0
mulsd %xmm1, %xmm0
movsd %xmm0, 0xe0(%rsp)
movq 0x1d8(%rsp), %rax
movsd (%rax), %xmm0
movsd 0x209f3(%rip), %xmm1    # 0x1d27d0
ucomisd %xmm1, %xmm0
jne 0x1b1e06
jp 0x1b1e06
movq 0x1d0(%rsp), %rdi
movsd 0x118(%rsp), %xmm0
callq 0x1adee0
movsd %xmm0, 0xd8(%rsp)
jmp 0x1b1e4c
movsd 0x110(%rsp), %xmm1
movq 0x1d8(%rsp), %rdi
movl 0x1b4(%rsp), %esi
movsd 0x118(%rsp), %xmm2
movq 0x1c8(%rsp), %rdx
movq 0x1e8(%rsp), %rax
movq 0x48(%rax), %rcx
xorps %xmm0, %xmm0
callq 0x1a5ae0
movsd %xmm0, 0xd8(%rsp)
movsd 0x118(%rsp), %xmm0
movsd 0x108(%rsp), %xmm1
movq 0x1c0(%rsp), %rax
movq 0x198(%rsp), %rcx
subq $0x1, %rcx
movsd (%rax,%rcx,8), %xmm2
movq 0x1b8(%rsp), %rax
movq 0x198(%rsp), %rcx
subq $0x1, %rcx
movsd (%rax,%rcx,8), %xmm3
movsd 0xe0(%rsp), %xmm4
movsd 0xd8(%rsp), %xmm5
movq 0x1d0(%rsp), %rax
movq 0xb8(%rax), %rdi
leaq 0xe8(%rsp), %rsi
callq 0x1b5160
movsd 0xe8(%rsp), %xmm0
movsd 0x217c9(%rip), %xmm1    # 0x1d3698
divsd %xmm1, %xmm0
divsd 0xe0(%rsp), %xmm0
mulsd 0xf0(%rsp), %xmm0
movsd 0x5cde3(%rip), %xmm1    # 0x20ecd0
divsd %xmm1, %xmm0
movq 0xd0(%rsp), %rax
movsd %xmm0, (%rax)
movq 0xd0(%rsp), %rax
movsd (%rax), %xmm0
movsd 0x20db7(%rip), %xmm1    # 0x1d2cc8
divsd %xmm1, %xmm0
movq 0xc8(%rsp), %rax
movsd %xmm0, (%rax)
movsd 0x118(%rsp), %xmm0
xorl %eax, %eax
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
movb %al, 0x67(%rsp)
jb 0x1b1f55
movsd 0xf8(%rsp), %xmm0
movsd 0x20d1e(%rip), %xmm1    # 0x1d2c68
ucomisd %xmm1, %xmm0
seta %al
movb %al, 0x67(%rsp)
movb 0x67(%rsp), %al
testb $0x1, %al
jne 0x1b1f62
jmp 0x1b2274
movq 0x1e8(%rsp), %rdi
movl 0x1e4(%rsp), %esi
movsd 0x118(%rsp), %xmm0
movq 0x198(%rsp), %rdx
leaq 0x180(%rsp), %r9
leaq 0x160(%rsp), %rax
movsd 0xd8(%rsp), %xmm1
leaq 0xf0(%rsp), %rcx
leaq 0xf8(%rsp), %r8
movq %rax, (%rsp)
callq 0x1b0350
movsd 0x2028c(%rip), %xmm0    # 0x1d2248
subsd 0xf0(%rsp), %xmm0
addsd 0xf8(%rsp), %xmm0
movq 0x1c0(%rsp), %rax
movq 0x198(%rsp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movsd 0x2025d(%rip), %xmm0    # 0x1d2248
addsd 0x1a8(%rsp), %xmm0
movsd %xmm0, 0x58(%rsp)
movsd 0x108(%rsp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
cvtsi2sdq 0x198(%rsp), %xmm1
mulsd %xmm1, %xmm0
callq 0x8670
movaps %xmm0, %xmm1
movsd 0x58(%rsp), %xmm0
mulsd %xmm1, %xmm0
movsd 0x2078e(%rip), %xmm1    # 0x1d27d0
addsd %xmm1, %xmm0
movsd %xmm0, 0x118(%rsp)
movq 0x1d8(%rsp), %rax
movsd (%rax), %xmm0
movsd 0x2076d(%rip), %xmm1    # 0x1d27d0
ucomisd %xmm1, %xmm0
jne 0x1b208c
jp 0x1b208c
movq 0x1d0(%rsp), %rdi
movsd 0x118(%rsp), %xmm0
callq 0x1adee0
movsd %xmm0, 0xd8(%rsp)
jmp 0x1b20d2
movsd 0x110(%rsp), %xmm1
movq 0x1d8(%rsp), %rdi
movl 0x1b4(%rsp), %esi
movsd 0x118(%rsp), %xmm2
movq 0x1c8(%rsp), %rdx
movq 0x1e8(%rsp), %rax
movq 0x48(%rax), %rcx
xorps %xmm0, %xmm0
callq 0x1a5ae0
movsd %xmm0, 0xd8(%rsp)
movq 0x1d0(%rsp), %rax
movsd 0x88(%rax), %xmm0
movsd %xmm0, 0x50(%rsp)
movsd 0x20158(%rip), %xmm0    # 0x1d2248
addsd 0x118(%rsp), %xmm0
callq 0x1a5670
movaps %xmm0, %xmm1
movsd 0x50(%rsp), %xmm0
mulsd %xmm1, %xmm0
movsd %xmm0, 0xe0(%rsp)
movsd 0x118(%rsp), %xmm0
movq 0x1c0(%rsp), %rax
movq 0x198(%rsp), %rcx
movsd (%rax,%rcx,8), %xmm1
movq 0x1d0(%rsp), %rdi
movsd 0xe8(%rsp), %xmm2
movsd 0xd8(%rsp), %xmm3
callq 0x1aeff0
movq 0x1b8(%rsp), %rax
movq 0x198(%rsp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movsd 0x118(%rsp), %xmm0
movsd 0x108(%rsp), %xmm1
movq 0x1c0(%rsp), %rax
movq 0x198(%rsp), %rcx
movsd (%rax,%rcx,8), %xmm2
movq 0x1b8(%rsp), %rax
movq 0x198(%rsp), %rcx
movsd (%rax,%rcx,8), %xmm3
movsd 0xe0(%rsp), %xmm4
movsd 0xd8(%rsp), %xmm5
movq 0x1d0(%rsp), %rax
movq 0xb8(%rax), %rdi
leaq 0xe8(%rsp), %rsi
callq 0x1b5160
movsd 0xe8(%rsp), %xmm0
movsd 0x214b7(%rip), %xmm1    # 0x1d3698
divsd %xmm1, %xmm0
divsd 0xe0(%rsp), %xmm0
mulsd 0xf0(%rsp), %xmm0
movsd 0x5cad1(%rip), %xmm1    # 0x20ecd0
divsd %xmm1, %xmm0
movq 0xd0(%rsp), %rax
movsd %xmm0, (%rax)
movq 0xd0(%rsp), %rax
movsd (%rax), %xmm0
movsd 0x20aa5(%rip), %xmm1    # 0x1d2cc8
divsd %xmm1, %xmm0
movq 0xc8(%rsp), %rax
movsd %xmm0, (%rax)
movq 0x1c8(%rsp), %rax
cmpl $0x1, (%rax)
jne 0x1b2259
movq 0x1e8(%rsp), %rax
movq 0x48(%rax), %rax
movq %rax, 0x1f0(%rsp)
jmp 0x1b310e
jmp 0x1b225b
movq 0x198(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x198(%rsp)
jmp 0x1b1f21
movsd 0x188(%rsp), %xmm0
movsd %xmm0, 0x158(%rsp)
movsd 0x180(%rsp), %xmm0
movsd %xmm0, 0x150(%rsp)
movq 0x1e8(%rsp), %rax
movl $0x1, 0x40(%rax)
movsd 0x118(%rsp), %xmm0
xorl %eax, %eax
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
movb %al, 0x4f(%rsp)
jb 0x1b2324
movq 0x1b8(%rsp), %rax
movq 0x198(%rsp), %rcx
subq $0x1, %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x1d0(%rsp), %rax
divsd 0x8(%rax), %xmm0
movsd 0x1ff5b(%rip), %xmm1    # 0x1d2248
addsd 0x118(%rsp), %xmm1
divsd %xmm1, %xmm0
movsd 0x1ff46(%rip), %xmm1    # 0x1d2248
subsd %xmm0, %xmm1
movaps 0x1ff23(%rip), %xmm0    # 0x1d2230
pand %xmm0, %xmm1
movsd 0x5c9bf(%rip), %xmm0    # 0x20ecd8
ucomisd %xmm1, %xmm0
seta %al
movb %al, 0x4f(%rsp)
movb 0x4f(%rsp), %al
testb $0x1, %al
jne 0x1b2331
jmp 0x1b2b88
cmpl $0x4, 0x1e4(%rsp)
jne 0x1b276c
movq 0x1e8(%rsp), %rax
cmpl $0x1, 0x40(%rax)
jne 0x1b276c
movq 0x1c0(%rsp), %rax
movq 0x198(%rsp), %rcx
subq $0x1, %rcx
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, 0xa8(%rsp)
movq 0x1b8(%rsp), %rax
movq 0x198(%rsp), %rcx
subq $0x1, %rcx
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, 0xa0(%rsp)
movl $0x0, 0xb4(%rsp)
cmpl $0xa, 0xb4(%rsp)
jge 0x1b2649
movq 0x1e8(%rsp), %rdi
movl 0x1e4(%rsp), %esi
movsd 0x118(%rsp), %xmm0
movq 0x198(%rsp), %rdx
movsd 0xa8(%rsp), %xmm1
movsd 0xa0(%rsp), %xmm2
leaq 0x150(%rsp), %r9
movsd 0xd8(%rsp), %xmm3
movl 0xb4(%rsp), %eax
leaq 0xa8(%rsp), %rcx
leaq 0xa0(%rsp), %r8
movl %eax, (%rsp)
callq 0x1b0800
movsd 0x1fe30(%rip), %xmm0    # 0x1d2248
addsd 0x1a8(%rsp), %xmm0
movsd %xmm0, 0x38(%rsp)
movsd 0x108(%rsp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movq 0x198(%rsp), %rax
subq $0x1, %rax
cvtsi2sd %rax, %xmm1
movl 0xb4(%rsp), %eax
addl $0x1, %eax
cvtsi2sd %eax, %xmm2
movsd 0x20372(%rip), %xmm3    # 0x1d27e0
divsd %xmm3, %xmm2
addsd %xmm2, %xmm1
mulsd %xmm1, %xmm0
callq 0x8670
movaps %xmm0, %xmm1
movsd 0x38(%rsp), %xmm0
mulsd %xmm1, %xmm0
movsd 0x2033c(%rip), %xmm1    # 0x1d27d0
addsd %xmm1, %xmm0
movsd %xmm0, 0x118(%rsp)
movq 0x1d0(%rsp), %rax
movsd 0x88(%rax), %xmm0
movsd %xmm0, 0x40(%rsp)
movsd 0x1fd89(%rip), %xmm0    # 0x1d2248
addsd 0x118(%rsp), %xmm0
callq 0x1a5670
movaps %xmm0, %xmm1
movsd 0x40(%rsp), %xmm0
mulsd %xmm1, %xmm0
movsd %xmm0, 0xe0(%rsp)
movq 0x1d8(%rsp), %rax
movsd (%rax), %xmm0
movsd 0x202d9(%rip), %xmm1    # 0x1d27d0
ucomisd %xmm1, %xmm0
jne 0x1b2520
jp 0x1b2520
movq 0x1d0(%rsp), %rdi
movsd 0x118(%rsp), %xmm0
callq 0x1adee0
movsd %xmm0, 0xd8(%rsp)
jmp 0x1b2566
movsd 0x110(%rsp), %xmm1
movq 0x1d8(%rsp), %rdi
movl 0x1b4(%rsp), %esi
movsd 0x118(%rsp), %xmm2
movq 0x1c8(%rsp), %rdx
movq 0x1e8(%rsp), %rax
movq 0x48(%rax), %rcx
xorps %xmm0, %xmm0
callq 0x1a5ae0
movsd %xmm0, 0xd8(%rsp)
movsd 0x118(%rsp), %xmm0
movsd 0x108(%rsp), %xmm1
movsd 0x20260(%rip), %xmm2    # 0x1d27e0
divsd %xmm2, %xmm1
movsd 0xa8(%rsp), %xmm2
movsd 0xa0(%rsp), %xmm3
movsd 0xe0(%rsp), %xmm4
movsd 0xd8(%rsp), %xmm5
movq 0x1d0(%rsp), %rax
movq 0xb8(%rax), %rdi
leaq 0xe8(%rsp), %rsi
callq 0x1b5160
movsd 0xe8(%rsp), %xmm0
movsd 0x210c3(%rip), %xmm1    # 0x1d3698
divsd %xmm1, %xmm0
divsd 0xe0(%rsp), %xmm0
movsd 0x1fc5e(%rip), %xmm1    # 0x1d2248
subsd 0xa8(%rsp), %xmm1
mulsd %xmm1, %xmm0
movsd 0x5c6d1(%rip), %xmm1    # 0x20ecd0
divsd %xmm1, %xmm0
movq 0xd0(%rsp), %rax
movsd %xmm0, (%rax)
movq 0xd0(%rsp), %rax
movsd (%rax), %xmm0
movsd 0x206a5(%rip), %xmm1    # 0x1d2cc8
divsd %xmm1, %xmm0
movq 0xc8(%rsp), %rax
movsd %xmm0, (%rax)
movl 0xb4(%rsp), %eax
addl $0x1, %eax
movl %eax, 0xb4(%rsp)
jmp 0x1b23a0
movsd 0xa8(%rsp), %xmm0
movq 0x1c0(%rsp), %rax
movq 0x198(%rsp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movsd 0xa0(%rsp), %xmm0
movq 0x1b8(%rsp), %rax
movq 0x198(%rsp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movq 0x1c0(%rsp), %rax
movq 0x198(%rsp), %rcx
subq $0x1, %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x1c0(%rsp), %rax
movq 0x198(%rsp), %rcx
subq $0x3, %rcx
subsd (%rax,%rcx,8), %xmm0
movsd 0x205c1(%rip), %xmm1    # 0x1d2c80
divsd %xmm1, %xmm0
divsd 0x108(%rsp), %xmm0
movsd %xmm0, 0x188(%rsp)
movq 0x1c0(%rsp), %rax
movq 0x198(%rsp), %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x1c0(%rsp), %rax
movq 0x198(%rsp), %rcx
subq $0x2, %rcx
subsd (%rax,%rcx,8), %xmm0
movsd 0x20575(%rip), %xmm1    # 0x1d2c80
divsd %xmm1, %xmm0
divsd 0x108(%rsp), %xmm0
movsd %xmm0, 0x180(%rsp)
movsd 0x188(%rsp), %xmm0
divsd 0x180(%rsp), %xmm0
movsd 0x1fb0d(%rip), %xmm1    # 0x1d2248
subsd %xmm0, %xmm1
movaps 0x1faea(%rip), %xmm0    # 0x1d2230
pand %xmm0, %xmm1
movsd 0x2054e(%rip), %xmm0    # 0x1d2ca0
ucomisd %xmm1, %xmm0
jbe 0x1b2767
movq 0x1e8(%rsp), %rax
movl $0x0, 0x40(%rax)
jmp 0x1b2b47
movq 0x1e8(%rsp), %rdi
movl 0x1e4(%rsp), %esi
movsd 0x118(%rsp), %xmm0
movq 0x198(%rsp), %rdx
movq 0x1c0(%rsp), %rax
movq 0x198(%rsp), %rcx
subq $0x1, %rcx
movsd (%rax,%rcx,8), %xmm1
movq 0x1b8(%rsp), %rax
movq 0x198(%rsp), %rcx
subq $0x1, %rcx
movsd (%rax,%rcx,8), %xmm2
movq 0x1c0(%rsp), %rcx
movq 0x198(%rsp), %rax
shlq $0x3, %rax
addq %rax, %rcx
movq 0x1b8(%rsp), %r8
movq 0x198(%rsp), %rax
shlq $0x3, %rax
addq %rax, %r8
leaq 0x180(%rsp), %r9
movsd 0xd8(%rsp), %xmm3
movl 0xb4(%rsp), %eax
movl %eax, (%rsp)
callq 0x1b0800
movq 0x1e8(%rsp), %rax
cmpl $0x1, 0x3c(%rax)
jne 0x1b28be
movq 0x1c0(%rsp), %rax
movq 0x198(%rsp), %rcx
subq $0x2, %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x1c0(%rsp), %rax
movq 0x198(%rsp), %rcx
subq $0x4, %rcx
subsd (%rax,%rcx,8), %xmm0
movsd 0x20428(%rip), %xmm1    # 0x1d2c80
divsd %xmm1, %xmm0
divsd 0x108(%rsp), %xmm0
movsd %xmm0, 0x188(%rsp)
movq 0x1c0(%rsp), %rax
movq 0x198(%rsp), %rcx
subq $0x1, %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x1c0(%rsp), %rax
movq 0x198(%rsp), %rcx
subq $0x3, %rcx
subsd (%rax,%rcx,8), %xmm0
movsd 0x203d8(%rip), %xmm1    # 0x1d2c80
divsd %xmm1, %xmm0
divsd 0x108(%rsp), %xmm0
movsd %xmm0, 0x180(%rsp)
movsd 0x1f982(%rip), %xmm0    # 0x1d2248
addsd 0x1a8(%rsp), %xmm0
movsd %xmm0, 0x20(%rsp)
movsd 0x108(%rsp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
cvtsi2sdq 0x198(%rsp), %xmm1
mulsd %xmm1, %xmm0
callq 0x8670
movaps %xmm0, %xmm1
movsd 0x20(%rsp), %xmm0
mulsd %xmm1, %xmm0
movsd 0x1feb3(%rip), %xmm1    # 0x1d27d0
addsd %xmm1, %xmm0
movsd %xmm0, 0x118(%rsp)
movsd 0x1f916(%rip), %xmm0    # 0x1d2248
addsd 0x1a8(%rsp), %xmm0
movsd %xmm0, 0x28(%rsp)
movsd 0x108(%rsp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movq 0x198(%rsp), %rax
addq $0x1, %rax
cvtsi2sd %rax, %xmm1
mulsd %xmm1, %xmm0
callq 0x8670
movaps %xmm0, %xmm1
movsd 0x28(%rsp), %xmm0
mulsd %xmm1, %xmm0
movsd 0x1fe40(%rip), %xmm1    # 0x1d27d0
addsd %xmm1, %xmm0
movsd %xmm0, 0xc0(%rsp)
movq 0x1d0(%rsp), %rax
movsd 0x88(%rax), %xmm0
movsd %xmm0, 0x30(%rsp)
movsd 0x1f88d(%rip), %xmm0    # 0x1d2248
addsd 0x118(%rsp), %xmm0
callq 0x1a5670
movaps %xmm0, %xmm1
movsd 0x30(%rsp), %xmm0
mulsd %xmm1, %xmm0
movsd %xmm0, 0xe0(%rsp)
movq 0x1d8(%rsp), %rax
movsd (%rax), %xmm0
movsd 0x1fddd(%rip), %xmm1    # 0x1d27d0
ucomisd %xmm1, %xmm0
jne 0x1b2a1c
jp 0x1b2a1c
movq 0x1d0(%rsp), %rdi
movsd 0x118(%rsp), %xmm0
callq 0x1adee0
movsd %xmm0, 0xd8(%rsp)
jmp 0x1b2a62
movsd 0x110(%rsp), %xmm1
movq 0x1d8(%rsp), %rdi
movl 0x1b4(%rsp), %esi
movsd 0x118(%rsp), %xmm2
movq 0x1c8(%rsp), %rdx
movq 0x1e8(%rsp), %rax
movq 0x48(%rax), %rcx
xorps %xmm0, %xmm0
callq 0x1a5ae0
movsd %xmm0, 0xd8(%rsp)
movsd 0x118(%rsp), %xmm0
movsd 0x108(%rsp), %xmm1
movq 0x1c0(%rsp), %rax
movq 0x198(%rsp), %rcx
movsd (%rax,%rcx,8), %xmm2
movq 0x1b8(%rsp), %rax
movq 0x198(%rsp), %rcx
movsd (%rax,%rcx,8), %xmm3
movsd 0xe0(%rsp), %xmm4
movsd 0xd8(%rsp), %xmm5
movq 0x1d0(%rsp), %rax
movq 0xb8(%rax), %rdi
leaq 0xe8(%rsp), %rsi
callq 0x1b5160
movsd 0xe8(%rsp), %xmm0
movsd 0x20bbb(%rip), %xmm1    # 0x1d3698
divsd %xmm1, %xmm0
divsd 0xe0(%rsp), %xmm0
movq 0x1c0(%rsp), %rax
movq 0x198(%rsp), %rcx
movsd 0x1f746(%rip), %xmm1    # 0x1d2248
subsd (%rax,%rcx,8), %xmm1
mulsd %xmm1, %xmm0
movsd 0x5c1bd(%rip), %xmm1    # 0x20ecd0
divsd %xmm1, %xmm0
movq 0xd0(%rsp), %rax
movsd %xmm0, (%rax)
movq 0xd0(%rsp), %rax
movsd (%rax), %xmm0
movsd 0x20191(%rip), %xmm1    # 0x1d2cc8
divsd %xmm1, %xmm0
movq 0xc8(%rsp), %rax
movsd %xmm0, (%rax)
movq 0x1c8(%rsp), %rax
cmpl $0x1, (%rax)
jne 0x1b2b6d
movq 0x1e8(%rsp), %rax
movq 0x48(%rax), %rax
movq %rax, 0x1f0(%rsp)
jmp 0x1b310e
jmp 0x1b2b6f
movq 0x198(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x198(%rsp)
jmp 0x1b22a7
movq 0x1b8(%rsp), %rax
movq 0x198(%rsp), %rcx
subq $0x2, %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x1b8(%rsp), %rax
movq 0x198(%rsp), %rcx
subq $0x4, %rcx
subsd (%rax,%rcx,8), %xmm0
movsd 0x200be(%rip), %xmm1    # 0x1d2c80
divsd %xmm1, %xmm0
divsd 0x108(%rsp), %xmm0
movsd %xmm0, 0x178(%rsp)
movq 0x1b8(%rsp), %rax
movq 0x198(%rsp), %rcx
subq $0x1, %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x1b8(%rsp), %rax
movq 0x198(%rsp), %rcx
subq $0x3, %rcx
subsd (%rax,%rcx,8), %xmm0
movsd 0x2006e(%rip), %xmm1    # 0x1d2c80
divsd %xmm1, %xmm0
divsd 0x108(%rsp), %xmm0
movsd %xmm0, 0x170(%rsp)
movq 0x1d8(%rsp), %rax
movsd (%rax), %xmm0
movsd 0x1fb94(%rip), %xmm1    # 0x1d27d0
ucomisd %xmm1, %xmm0
jne 0x1b2c87
jp 0x1b2c87
movq 0x1d0(%rsp), %rdi
movsd 0x118(%rsp), %xmm0
callq 0x1adee0
movsd %xmm0, 0xd8(%rsp)
movq 0x1d0(%rsp), %rdi
movsd 0xc0(%rsp), %xmm0
callq 0x1adee0
movsd %xmm0, 0xb8(%rsp)
jmp 0x1b2d13
movsd 0x110(%rsp), %xmm1
movq 0x1d8(%rsp), %rdi
movl 0x1b4(%rsp), %esi
movsd 0x118(%rsp), %xmm2
movq 0x1c8(%rsp), %rdx
movq 0x1e8(%rsp), %rax
movq 0x48(%rax), %rcx
xorps %xmm0, %xmm0
callq 0x1a5ae0
movsd %xmm0, 0xd8(%rsp)
movsd 0x110(%rsp), %xmm1
movq 0x1d8(%rsp), %rdi
movl 0x1b4(%rsp), %esi
movsd 0xc0(%rsp), %xmm2
movq 0x1c8(%rsp), %rdx
movq 0x1e8(%rsp), %rax
movq 0x48(%rax), %rcx
xorps %xmm0, %xmm0
callq 0x1a5ae0
movsd %xmm0, 0xb8(%rsp)
jmp 0x1b2d15
movsd 0x118(%rsp), %xmm0
ucomisd 0x1a0(%rsp), %xmm0
jbe 0x1b30fa
movq 0x1e8(%rsp), %rdi
movl 0x1e4(%rsp), %esi
movsd 0x118(%rsp), %xmm0
movq 0x198(%rsp), %rdx
leaq 0x180(%rsp), %rcx
leaq 0x170(%rsp), %r8
movsd 0xd8(%rsp), %xmm1
movsd 0xc0(%rsp), %xmm2
movsd 0xb8(%rsp), %xmm3
callq 0x1b0ce0
movsd 0x1f4c3(%rip), %xmm0    # 0x1d2248
addsd 0x1a8(%rsp), %xmm0
movsd %xmm0, 0x10(%rsp)
movsd 0x108(%rsp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
cvtsi2sdq 0x198(%rsp), %xmm1
mulsd %xmm1, %xmm0
callq 0x8670
movaps %xmm0, %xmm1
movsd 0x10(%rsp), %xmm0
mulsd %xmm1, %xmm0
movsd 0x1f9f4(%rip), %xmm1    # 0x1d27d0
addsd %xmm1, %xmm0
movsd %xmm0, 0x118(%rsp)
movsd 0x1f457(%rip), %xmm0    # 0x1d2248
addsd 0x1a8(%rsp), %xmm0
movsd %xmm0, 0x18(%rsp)
movsd 0x108(%rsp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movq 0x198(%rsp), %rax
addq $0x1, %rax
cvtsi2sd %rax, %xmm1
mulsd %xmm1, %xmm0
callq 0x8670
movaps %xmm0, %xmm1
movsd 0x18(%rsp), %xmm0
mulsd %xmm1, %xmm0
movsd 0x1f981(%rip), %xmm1    # 0x1d27d0
addsd %xmm1, %xmm0
movsd %xmm0, 0xc0(%rsp)
movsd 0x118(%rsp), %xmm1
movsd 0x1a0(%rsp), %xmm0
ucomisd %xmm1, %xmm0
jbe 0x1b2e80
xorps %xmm0, %xmm0
movsd %xmm0, 0x118(%rsp)
movq 0x1d8(%rsp), %rax
movsd (%rax), %xmm0
movsd 0x1f93c(%rip), %xmm1    # 0x1d27d0
ucomisd %xmm1, %xmm0
jne 0x1b2edf
jp 0x1b2edf
movq 0x1d0(%rsp), %rdi
movsd 0x118(%rsp), %xmm0
callq 0x1adee0
movsd %xmm0, 0xd8(%rsp)
movq 0x1d0(%rsp), %rdi
movsd 0xc0(%rsp), %xmm0
callq 0x1adee0
movsd %xmm0, 0xb8(%rsp)
jmp 0x1b2f95
movsd 0x110(%rsp), %xmm1
movq 0x1d8(%rsp), %rdi
movl 0x1b4(%rsp), %esi
movsd 0x118(%rsp), %xmm2
movq 0x1c8(%rsp), %rdx
movq 0x1e8(%rsp), %rax
movq 0x48(%rax), %rcx
xorps %xmm0, %xmm0
callq 0x1a5ae0
movsd %xmm0, 0xd8(%rsp)
movsd 0xc0(%rsp), %xmm0
ucomisd 0x1a0(%rsp), %xmm0
jbe 0x1b2f81
movsd 0x110(%rsp), %xmm1
movq 0x1d8(%rsp), %rdi
movl 0x1b4(%rsp), %esi
movsd 0xc0(%rsp), %xmm2
movq 0x1c8(%rsp), %rdx
movq 0x1e8(%rsp), %rax
movq 0x48(%rax), %rcx
xorps %xmm0, %xmm0
callq 0x1a5ae0
movsd %xmm0, 0xb8(%rsp)
jmp 0x1b2f93
movsd 0xd8(%rsp), %xmm0
movsd %xmm0, 0xb8(%rsp)
jmp 0x1b2f95
movq 0x1d0(%rsp), %rax
movsd 0x88(%rax), %xmm0
movsd %xmm0, 0x8(%rsp)
movsd 0x1f295(%rip), %xmm0    # 0x1d2248
addsd 0x118(%rsp), %xmm0
callq 0x1a5670
movaps %xmm0, %xmm1
movsd 0x8(%rsp), %xmm0
mulsd %xmm1, %xmm0
movsd %xmm0, 0xe0(%rsp)
movsd 0x118(%rsp), %xmm0
movsd 0x108(%rsp), %xmm1
movq 0x1c0(%rsp), %rax
movq 0x198(%rsp), %rcx
movsd (%rax,%rcx,8), %xmm2
movq 0x1b8(%rsp), %rax
movq 0x198(%rsp), %rcx
movsd (%rax,%rcx,8), %xmm3
movsd 0xe0(%rsp), %xmm4
movsd 0xd8(%rsp), %xmm5
movq 0x1d0(%rsp), %rax
movq 0xb8(%rax), %rdi
leaq 0xe8(%rsp), %rsi
callq 0x1b5160
movsd 0xe8(%rsp), %xmm0
movsd 0x20646(%rip), %xmm1    # 0x1d3698
divsd %xmm1, %xmm0
divsd 0xe0(%rsp), %xmm0
movq 0x1c0(%rsp), %rax
movq 0x198(%rsp), %rcx
movsd 0x1f1d1(%rip), %xmm1    # 0x1d2248
subsd (%rax,%rcx,8), %xmm1
mulsd %xmm1, %xmm0
movsd 0x5bc48(%rip), %xmm1    # 0x20ecd0
divsd %xmm1, %xmm0
movq 0xd0(%rsp), %rax
movsd %xmm0, (%rax)
movq 0xd0(%rsp), %rax
movsd (%rax), %xmm0
movsd 0x1fc1c(%rip), %xmm1    # 0x1d2cc8
divsd %xmm1, %xmm0
movq 0xc8(%rsp), %rax
movsd %xmm0, (%rax)
movq 0x1c8(%rsp), %rax
cmpl $0x1, (%rax)
jne 0x1b30df
movq 0x1e8(%rsp), %rax
movq 0x48(%rax), %rax
movq %rax, 0x1f0(%rsp)
jmp 0x1b310e
jmp 0x1b30e1
movq 0x198(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x198(%rsp)
jmp 0x1b2d15
movq 0x1e8(%rsp), %rax
movq 0x48(%rax), %rax
movq %rax, 0x1f0(%rsp)
movq 0x1f0(%rsp), %rax
addq $0x1f8, %rsp            # imm = 0x1F8
retq
nop