// File: /workspace/github_c_makefile_star2_O1/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 $0x198, %rsp            # imm = 0x198
movq %rdx, %r14
movl %esi, 0x5c(%rsp)
movq %rdi, %rbx
movq 0x8(%rdi), %r15
movq 0x28(%rdi), %rax
movq %rax, 0x38(%rsp)
movq 0x30(%rdi), %rax
movq %rax, 0x60(%rsp)
movl 0x20(%rdi), %ebp
movsd 0x10(%rdi), %xmm0
movsd %xmm0, 0x28(%rsp)
movsd 0x18(%rdi), %xmm0
movsd %xmm0, 0xf8(%rsp)
movq 0xb8(%r15), %rax
movq %rax, 0xd0(%rsp)
movsd 0xa8(%r15), %xmm0
movaps %xmm0, 0xb0(%rsp)
xorps %xmm0, %xmm0
cvtsi2sd %ebp, %xmm0
movsd %xmm0, 0x8(%rsp)
movsd 0x8(%r15), %xmm1
movsd 0x98(%r15), %xmm0
mulsd 0x4efa2(%rip), %xmm1    # 0x12d338
movsd %xmm1, 0x10(%rsp)
callq 0xd6f4c
movsd 0x10(%rsp), %xmm1
divsd %xmm0, %xmm1
divsd 0xa0(%r15), %xmm1
movsd 0x28(%rsp), %xmm0
addsd 0x12e9e(%rip), %xmm0    # 0xf1260
movsd %xmm0, 0x68(%rsp)
mulsd %xmm0, %xmm1
divsd 0x16104(%rip), %xmm1    # 0xf44d8
movapd %xmm1, %xmm0
callq 0x82c0
divsd 0xb0(%rsp), %xmm0
addsd 0x12e72(%rip), %xmm0    # 0xf1260
callq 0x85e0
cvttsd2si %xmm0, %rax
movq 0x58(%rbx), %rcx
movq %rax, 0x8(%rcx)
negq %rax
xorps %xmm0, %xmm0
cvtsi2sd %rax, %xmm0
mulsd 0xb0(%rsp), %xmm0
callq 0x8670
mulsd 0x68(%rsp), %xmm0
addsd 0x133c1(%rip), %xmm0    # 0xf17e8
movq 0x58(%rbx), %rax
movsd %xmm0, (%rax)
movsd 0x80(%r15), %xmm0
movsd %xmm0, 0x138(%rsp)
xorl %r13d, %r13d
xorpd %xmm1, %xmm1
movsd 0x28(%rsp), %xmm2
ucomisd %xmm1, %xmm2
movapd %xmm2, %xmm1
jb 0xde508
ucomisd 0x13864(%rip), %xmm0    # 0xf1cc8
jbe 0xde508
xorl %r13d, %r13d
leaq 0x138(%rsp), %r12
movsd 0xa8(%r15), %xmm1
xorpd 0x12daa(%rip), %xmm1    # 0xf1230
xorps %xmm0, %xmm0
cvtsi2sd %r13, %xmm0
mulsd %xmm1, %xmm0
callq 0x8670
mulsd 0x68(%rsp), %xmm0
addsd 0x13343(%rip), %xmm0    # 0xf17e8
movapd %xmm0, 0x10(%rsp)
movq %r15, %rdi
movq %r12, %rsi
callq 0xd7830
movapd 0x10(%rsp), %xmm1
movq 0x38(%rsp), %rax
movsd %xmm0, (%rax,%r13,8)
movapd %xmm1, %xmm0
addsd 0x12d8d(%rip), %xmm0    # 0xf1260
mulsd 0x8(%r15), %xmm0
movq 0x60(%rsp), %rax
movsd %xmm0, (%rax,%r13,8)
incq %r13
ucomisd 0x12d69(%rip), %xmm1    # 0xf1258
jb 0xde508
movsd 0x138(%rsp), %xmm0
ucomisd 0x137c6(%rip), %xmm0    # 0xf1cc8
ja 0xde475
movl %ebp, 0x24(%rsp)
leaq 0x38(%rbx), %rax
movq %rax, 0x30(%rsp)
movsd 0x28(%rsp), %xmm0
divsd 0x8(%rsp), %xmm0
movsd %xmm0, 0x28(%rsp)
xorpd %xmm0, %xmm0
movapd %xmm0, 0x140(%rsp)
movq %r15, %rdi
movapd %xmm1, 0x10(%rsp)
movapd %xmm1, %xmm0
callq 0xd79bc
movapd %xmm0, %xmm3
movsd %xmm0, 0x78(%rsp)
movl $0x1, %eax
movl %eax, 0x3c(%rbx)
xorpd %xmm0, %xmm0
movapd %xmm0, 0x160(%rsp)
movl %eax, 0x40(%rbx)
movsd 0x98(%rsp), %xmm4
movsd 0x90(%rsp), %xmm0
movsd %xmm0, 0xc8(%rsp)
movq 0x58(%rbx), %rax
cmpq 0x8(%rax), %r13
jle 0xde5a1
movsd 0xd8(%rsp), %xmm1
movapd 0x10(%rsp), %xmm2
jmp 0xde941
movapd 0x12c87(%rip), %xmm1    # 0xf1230
movapd 0xb0(%rsp), %xmm0
xorpd %xmm0, %xmm1
movapd %xmm1, 0xa0(%rsp)
movapd %xmm3, %xmm1
unpcklpd %xmm3, %xmm1            # xmm1 = xmm1[0],xmm3[0]
movapd %xmm1, 0x120(%rsp)
unpcklpd %xmm0, %xmm0            # xmm0 = xmm0[0,0]
movapd %xmm0, 0x110(%rsp)
leaq 0x78(%rsp), %r12
movq %r13, %rbp
movapd 0x10(%rsp), %xmm2
movapd %xmm3, 0xe0(%rsp)
cmpl $0x4, 0x5c(%rsp)
jne 0xde7eb
cmpl $0x0, 0x3c(%rbx)
jne 0xde7eb
cmpl $0x1, 0x40(%rbx)
jne 0xde7eb
leaq -0x1(%rbp), %rax
xorps %xmm0, %xmm0
cvtsi2sd %rax, %xmm0
movsd %xmm0, 0x80(%rsp)
movl $0x1, %r13d
leal -0x1(%r13), %r8d
movq %rbx, %rdi
movapd %xmm2, %xmm0
movq %r12, %rsi
leaq 0x160(%rsp), %rdx
movq %r14, %rcx
callq 0xdd214
xorps %xmm0, %xmm0
cvtsi2sd %r13d, %xmm0
divsd 0x13194(%rip), %xmm0    # 0xf17f0
addsd 0x80(%rsp), %xmm0
mulsd 0xa0(%rsp), %xmm0
callq 0x8670
movapd %xmm0, %xmm2
mulsd 0x68(%rsp), %xmm2
movsd 0x13163(%rip), %xmm0    # 0xf17e8
addsd %xmm0, %xmm2
movsd 0x78(%rsp), %xmm1
movq %r15, %rdi
movapd %xmm2, 0x10(%rsp)
movapd %xmm2, %xmm0
movsd %xmm1, 0x8(%rsp)
callq 0xd7b30
movsd %xmm0, 0x40(%rsp)
movsd (%r14), %xmm0
ucomisd 0x1312e(%rip), %xmm0    # 0xf17e8
jne 0xde6ce
jp 0xde6ce
movq %r15, %rdi
movapd 0x10(%rsp), %xmm0
callq 0xdc084
jmp 0xde6f3
movq 0x48(%rbx), %rcx
xorpd %xmm0, %xmm0
movsd 0x28(%rsp), %xmm1
movq %r14, %rdi
movl 0x24(%rsp), %esi
movapd 0x10(%rsp), %xmm2
movq 0x30(%rsp), %rdx
callq 0xd727d
movapd %xmm0, %xmm3
movsd 0x12b61(%rip), %xmm0    # 0xf1260
subsd 0x40(%rsp), %xmm0
movsd 0x8(%rsp), %xmm1
addsd %xmm0, %xmm1
xorpd %xmm2, %xmm2
movapd 0x10(%rsp), %xmm0
movsd %xmm1, 0x8(%rsp)
movq %r15, %rdi
callq 0xdce04
incl %r13d
cmpl $0xb, %r13d
movapd 0x10(%rsp), %xmm2
jne 0xde62e
movq 0x38(%rsp), %rax
movsd 0x8(%rsp), %xmm5
movsd %xmm5, (%rax,%rbp,8)
movq 0x60(%rsp), %rax
movsd %xmm0, 0xc8(%rsp)
movsd %xmm0, (%rax,%rbp,8)
movsd 0x78(%rsp), %xmm0
movapd %xmm0, %xmm1
movapd 0xe0(%rsp), %xmm3
unpcklpd %xmm3, %xmm1            # xmm1 = xmm1[0],xmm3[0]
movapd 0x120(%rsp), %xmm4
subpd %xmm4, %xmm1
mulpd 0x4f057(%rip), %xmm1    # 0x12d7e0
divpd 0x110(%rsp), %xmm1
movapd %xmm1, 0x140(%rsp)
movapd %xmm1, %xmm2
unpckhpd %xmm1, %xmm2            # xmm2 = xmm2[1],xmm1[1]
divsd %xmm1, %xmm2
movsd 0x12ab1(%rip), %xmm1    # 0xf1260
subsd %xmm2, %xmm1
andpd 0x12a85(%rip), %xmm1    # 0xf1240
movsd 0x13515(%rip), %xmm2    # 0xf1cd8
ucomisd %xmm1, %xmm2
unpcklpd %xmm4, %xmm3            # xmm3 = xmm3[0],xmm4[0]
movq 0x30(%rsp), %r13
movapd %xmm5, %xmm4
jbe 0xde7dd
movl $0x0, 0x40(%rbx)
movapd %xmm3, 0x120(%rsp)
jmp 0xde911
movsd %xmm4, 0x8(%rsp)
movq %rbx, %rdi
movapd %xmm2, %xmm0
movq %r12, %rsi
leaq 0x140(%rsp), %rdx
movq %r14, %rcx
movl $0xa, %r8d
callq 0xdd214
xorps %xmm0, %xmm0
cvtsi2sd %rbp, %xmm0
mulsd 0xa0(%rsp), %xmm0
callq 0x8670
movapd %xmm0, %xmm2
mulsd 0x68(%rsp), %xmm2
movsd 0x12faf(%rip), %xmm0    # 0xf17e8
addsd %xmm0, %xmm2
movsd 0x78(%rsp), %xmm1
movsd %xmm1, 0x80(%rsp)
movq %r15, %rdi
movapd %xmm2, 0x10(%rsp)
movapd %xmm2, %xmm0
callq 0xd7b30
movapd %xmm0, %xmm1
movsd 0x129f6(%rip), %xmm0    # 0xf1260
movsd %xmm1, 0x40(%rsp)
subsd %xmm1, %xmm0
addsd 0x80(%rsp), %xmm0
movq 0x38(%rsp), %rax
movsd %xmm0, (%rax,%rbp,8)
movsd (%r14), %xmm0
ucomisd 0x12f54(%rip), %xmm0    # 0xf17e8
jne 0xde8b1
jp 0xde8b1
movq %r15, %rdi
movapd 0x10(%rsp), %xmm0
callq 0xdc084
movapd %xmm0, %xmm3
movq 0x30(%rsp), %r13
jmp 0xde8dd
movq 0x48(%rbx), %rcx
xorpd %xmm0, %xmm0
movsd 0x28(%rsp), %xmm1
movq %r14, %rdi
movl 0x24(%rsp), %esi
movapd 0x10(%rsp), %xmm2
movq 0x30(%rsp), %r13
movq %r13, %rdx
callq 0xd727d
movapd %xmm0, %xmm3
movq 0x38(%rsp), %rax
movsd (%rax,%rbp,8), %xmm1
xorpd %xmm2, %xmm2
movaps 0x10(%rsp), %xmm0
movq %r15, %rdi
callq 0xdce04
movq 0x60(%rsp), %rax
movsd %xmm0, (%rax,%rbp,8)
movapd 0xe0(%rsp), %xmm0
movsd 0x8(%rsp), %xmm4
movsd 0x40(%rsp), %xmm1
cmpl $0x1, (%r13)
je 0xded12
leaq 0x1(%rbp), %r13
movq 0x58(%rbx), %rax
movapd %xmm0, %xmm3
cmpq 0x8(%rax), %rbp
movq %r13, %rbp
movapd 0x10(%rsp), %xmm2
jl 0xde5eb
movapd %xmm2, 0x10(%rsp)
movsd %xmm1, 0xd8(%rsp)
movsd %xmm4, 0x98(%rsp)
movsd 0xc8(%rsp), %xmm0
movsd %xmm0, 0x90(%rsp)
movq 0x38(%rsp), %rax
movupd -0x20(%rax,%r13,8), %xmm0
movupd -0x10(%rax,%r13,8), %xmm1
subpd %xmm0, %xmm1
mulpd 0x4ee56(%rip), %xmm1    # 0x12d7e0
movapd 0xb0(%rsp), %xmm0
unpcklpd %xmm0, %xmm0            # xmm0 = xmm0[0,0]
movapd %xmm0, 0x110(%rsp)
divpd %xmm0, %xmm1
shufpd $0x1, %xmm1, %xmm1      # xmm1 = xmm1[1,0]
subpd 0x140(%rsp), %xmm1
movapd %xmm1, 0x100(%rsp)
movl $0x1, 0x3c(%rbx)
movq $0x0, 0x70(%rsp)
movsd 0x88(%r15), %xmm0
movsd %xmm0, 0x8(%rsp)
movsd 0x1287e(%rip), %xmm0    # 0xf1260
addsd %xmm2, %xmm0
callq 0xd6f51
mulsd 0x8(%rsp), %xmm0
movsd %xmm0, 0x40(%rsp)
movsd (%r14), %xmm0
ucomisd 0x12de4(%rip), %xmm0    # 0xf17e8
jne 0xdea20
jp 0xdea20
movq %r15, %rdi
movapd 0x10(%rsp), %xmm0
callq 0xdc084
movapd %xmm0, %xmm5
movl 0x24(%rsp), %ebp
jmp 0xdea4b
movq 0x48(%rbx), %rcx
xorpd %xmm0, %xmm0
movsd 0x28(%rsp), %xmm1
movq %r14, %rdi
movl 0x24(%rsp), %ebp
movl %ebp, %esi
movapd 0x10(%rsp), %xmm2
movq 0x30(%rsp), %rdx
callq 0xd727d
movapd %xmm0, %xmm5
movq 0x38(%rsp), %rax
movsd -0x8(%rax,%r13,8), %xmm2
movq 0x60(%rsp), %rax
movsd -0x8(%rax,%r13,8), %xmm3
movq 0xb8(%r15), %rdi
leaq 0x70(%rsp), %r12
movaps 0x10(%rsp), %xmm0
movapd 0xb0(%rsp), %xmm1
movsd 0x40(%rsp), %xmm4
movsd %xmm5, 0x8(%rsp)
movq %r12, %rsi
callq 0xe0ab6
movsd (%r12), %xmm0
divsd 0x13be1(%rip), %xmm0    # 0xf2680
divsd 0x40(%rsp), %xmm0
mulsd 0xd8(%rsp), %xmm0
divsd 0x4ed0a(%rip), %xmm0    # 0x12d7c0
movq 0xd0(%rsp), %rax
movsd %xmm0, 0x60(%rax)
divsd 0x1705d(%rip), %xmm0    # 0xf5b28
movsd %xmm0, 0x68(%rax)
xorpd %xmm0, %xmm0
movapd 0x10(%rsp), %xmm4
ucomisd %xmm0, %xmm4
jb 0xded3f
movsd 0x78(%rsp), %xmm0
ucomisd 0x131fe(%rip), %xmm0    # 0xf1cf0
jbe 0xded3f
movapd 0x12730(%rip), %xmm0    # 0xf1230
xorpd 0xb0(%rsp), %xmm0
movapd %xmm0, 0x80(%rsp)
movsd 0x8(%rsp), %xmm5
leaq 0x140(%rsp), %rax
movq %rax, (%rsp)
movq %rbx, %rdi
movl 0x5c(%rsp), %esi
movapd %xmm4, %xmm0
movq %r13, %rdx
leaq 0xd8(%rsp), %rcx
leaq 0x78(%rsp), %r8
leaq 0x100(%rsp), %r9
movapd %xmm5, %xmm1
callq 0xdd9f0
movsd 0xd8(%rsp), %xmm1
movsd 0x126ff(%rip), %xmm0    # 0xf1260
movsd %xmm1, 0xa0(%rsp)
subsd %xmm1, %xmm0
addsd 0x78(%rsp), %xmm0
movq 0x38(%rsp), %rax
movsd %xmm0, (%rax,%r13,8)
xorps %xmm0, %xmm0
cvtsi2sd %r13, %xmm0
mulsd 0x80(%rsp), %xmm0
callq 0x8670
movapd %xmm0, %xmm2
mulsd 0x68(%rsp), %xmm2
movsd 0x12c41(%rip), %xmm1    # 0xf17e8
addsd %xmm1, %xmm2
movsd (%r14), %xmm0
ucomisd %xmm1, %xmm0
movapd %xmm2, 0x10(%rsp)
jne 0xdebd7
jp 0xdebd7
movq %r15, %rdi
movapd %xmm2, %xmm0
callq 0xdc084
movsd %xmm0, 0x8(%rsp)
movq 0x30(%rsp), %r12
jmp 0xdebfd
movq 0x48(%rbx), %rcx
xorpd %xmm0, %xmm0
movsd 0x28(%rsp), %xmm1
movq %r14, %rdi
movl %ebp, %esi
movq 0x30(%rsp), %r12
movq %r12, %rdx
callq 0xd727d
movsd %xmm0, 0x8(%rsp)
movsd 0x88(%r15), %xmm0
movsd %xmm0, 0x40(%rsp)
movapd 0x10(%rsp), %xmm0
addsd 0x12646(%rip), %xmm0    # 0xf1260
callq 0xd6f51
mulsd 0x40(%rsp), %xmm0
movsd %xmm0, 0x40(%rsp)
movq 0x38(%rsp), %rbp
movsd (%rbp,%r13,8), %xmm1
movsd 0x70(%rsp), %xmm2
movapd 0x10(%rsp), %xmm0
movq %r15, %rdi
movsd 0x8(%rsp), %xmm3
callq 0xdce04
movapd %xmm0, %xmm3
movq 0x60(%rsp), %rax
movsd %xmm0, (%rax,%r13,8)
movsd (%rbp,%r13,8), %xmm2
movq 0xb8(%r15), %rdi
movaps 0x10(%rsp), %xmm0
movaps 0xb0(%rsp), %xmm1
movsd 0x40(%rsp), %xmm4
movsd 0x8(%rsp), %xmm5
leaq 0x70(%rsp), %rsi
callq 0xe0ab6
movsd 0x70(%rsp), %xmm0
divsd 0x139e1(%rip), %xmm0    # 0xf2680
divsd 0x40(%rsp), %xmm0
movsd 0xa0(%rsp), %xmm1
mulsd %xmm0, %xmm1
divsd 0x4eb06(%rip), %xmm1    # 0x12d7c0
movq 0xd0(%rsp), %rax
movsd %xmm1, 0x60(%rax)
divsd 0x16e59(%rip), %xmm1    # 0xf5b28
movsd %xmm1, 0x68(%rax)
cmpl $0x1, (%r12)
movapd 0x10(%rsp), %xmm4
je 0xdf633
incq %r13
ucomisd 0x12568(%rip), %xmm4    # 0xf1258
jb 0xded3b
movsd 0x78(%rsp), %xmm0
ucomisd 0x12ff0(%rip), %xmm0    # 0xf1cf0
movl 0x24(%rsp), %ebp
movsd 0x8(%rsp), %xmm5
ja 0xdeb18
jmp 0xded45
movsd %xmm1, 0xd8(%rsp)
movsd %xmm4, 0x98(%rsp)
movsd 0xc8(%rsp), %xmm0
movsd %xmm0, 0x90(%rsp)
jmp 0xdf633
movl 0x24(%rsp), %ebp
movsd 0x8(%rsp), %xmm5
movapd 0x100(%rsp), %xmm0
movapd %xmm0, 0x170(%rsp)
movl $0x1, 0x40(%rbx)
xorpd %xmm0, %xmm0
ucomisd %xmm0, %xmm4
jae 0xded76
movsd %xmm0, 0x80(%rsp)
jmp 0xdf2b2
movapd 0x124b2(%rip), %xmm1    # 0xf1230
movapd 0xb0(%rsp), %xmm0
xorpd %xmm0, %xmm1
movapd %xmm1, 0xe0(%rsp)
divsd 0x12a54(%rip), %xmm0    # 0xf17f0
movapd %xmm0, 0x120(%rsp)
xorpd %xmm0, %xmm0
movsd %xmm0, 0x80(%rsp)
movq 0x60(%rsp), %rax
movsd -0x8(%rax,%r13,8), %xmm2
movapd %xmm2, %xmm0
divsd 0x8(%r15), %xmm0
movapd %xmm4, %xmm1
movsd 0x1248c(%rip), %xmm3    # 0xf1260
addsd %xmm3, %xmm1
divsd %xmm1, %xmm0
movapd %xmm3, %xmm1
subsd %xmm0, %xmm1
andpd 0x12454(%rip), %xmm1    # 0xf1240
movsd 0x4e9d4(%rip), %xmm0    # 0x12d7c8
ucomisd %xmm1, %xmm0
jbe 0xdf2b2
cmpl $0x4, 0x5c(%rsp)
jne 0xdf09e
cmpl $0x1, 0x40(%rbx)
jne 0xdf09e
leaq -0x1(%r13), %rax
movq 0x38(%rsp), %rcx
movsd -0x8(%rcx,%r13,8), %xmm0
movsd %xmm0, 0x98(%rsp)
movsd %xmm2, 0x90(%rsp)
xorps %xmm0, %xmm0
cvtsi2sd %rax, %xmm0
movsd %xmm0, 0xc8(%rsp)
movl $0x1, %r12d
leal -0x1(%r12), %eax
movsd 0x98(%rsp), %xmm1
movsd 0x90(%rsp), %xmm2
movl %eax, (%rsp)
movq %rbx, %rdi
movl $0x4, %esi
movapd %xmm4, %xmm0
movq %r13, %rdx
leaq 0x98(%rsp), %rcx
leaq 0x90(%rsp), %r8
leaq 0x170(%rsp), %r9
movapd %xmm5, %xmm3
callq 0xddcd4
xorps %xmm0, %xmm0
cvtsi2sd %r12d, %xmm0
divsd 0x1294a(%rip), %xmm0    # 0xf17f0
addsd 0xc8(%rsp), %xmm0
mulsd 0xe0(%rsp), %xmm0
callq 0x8670
movapd %xmm0, %xmm1
mulsd 0x68(%rsp), %xmm1
movsd 0x12919(%rip), %xmm0    # 0xf17e8
addsd %xmm0, %xmm1
movsd 0x88(%r15), %xmm0
movsd %xmm0, 0x40(%rsp)
movapd %xmm1, 0x10(%rsp)
addsd 0x12370(%rip), %xmm1    # 0xf1260
movapd %xmm1, %xmm0
callq 0xd6f51
movsd %xmm0, 0xa0(%rsp)
movsd (%r14), %xmm0
ucomisd 0x128d9(%rip), %xmm0    # 0xf17e8
jne 0xdef23
jp 0xdef23
movq %r15, %rdi
movapd 0x10(%rsp), %xmm0
callq 0xdc084
jmp 0xdef45
movq 0x48(%rbx), %rcx
xorpd %xmm0, %xmm0
movsd 0x28(%rsp), %xmm1
movq %r14, %rdi
movl %ebp, %esi
movaps 0x10(%rsp), %xmm2
movq 0x30(%rsp), %rdx
callq 0xd727d
movsd %xmm0, 0x8(%rsp)
movsd 0x40(%rsp), %xmm4
mulsd 0xa0(%rsp), %xmm4
movsd %xmm4, 0x40(%rsp)
movsd 0x98(%rsp), %xmm2
movsd %xmm2, 0xa0(%rsp)
movsd 0x90(%rsp), %xmm3
movq 0xb8(%r15), %rdi
movaps 0x10(%rsp), %xmm0
movaps 0x120(%rsp), %xmm1
movsd 0x8(%rsp), %xmm5
leaq 0x70(%rsp), %rsi
callq 0xe0ab6
movsd 0x8(%rsp), %xmm5
movsd 0x70(%rsp), %xmm0
divsd 0x136cd(%rip), %xmm0    # 0xf2680
divsd 0x40(%rsp), %xmm0
movsd 0x1229f(%rip), %xmm2    # 0xf1260
movapd %xmm2, %xmm1
subsd 0xa0(%rsp), %xmm1
mulsd %xmm0, %xmm1
divsd 0x4e7e6(%rip), %xmm1    # 0x12d7c0
movq 0xd0(%rsp), %rax
movsd %xmm1, 0x60(%rax)
divsd 0x16b39(%rip), %xmm1    # 0xf5b28
movsd %xmm1, 0x68(%rax)
incl %r12d
cmpl $0xb, %r12d
movapd 0x10(%rsp), %xmm4
jne 0xdee4c
movsd 0x98(%rsp), %xmm0
movq 0x38(%rsp), %rax
movsd %xmm0, (%rax,%r13,8)
movsd 0x90(%rsp), %xmm0
movq 0x60(%rsp), %rcx
movsd %xmm0, (%rcx,%r13,8)
movupd -0x18(%rax,%r13,8), %xmm0
movupd -0x8(%rax,%r13,8), %xmm1
subpd %xmm0, %xmm1
mulpd 0x4e797(%rip), %xmm1    # 0x12d7e0
divpd 0x110(%rsp), %xmm1
movapd %xmm1, %xmm0
shufpd $0x1, %xmm1, %xmm0      # xmm0 = xmm0[1],xmm1[0]
movapd %xmm0, 0x100(%rsp)
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
divsd %xmm0, %xmm1
movapd %xmm2, %xmm0
subsd %xmm1, %xmm0
andpd 0x121c0(%rip), %xmm0    # 0xf1240
movsd 0x12c50(%rip), %xmm1    # 0xf1cd8
ucomisd %xmm0, %xmm1
jbe 0xdf289
movl $0x0, 0x40(%rbx)
jmp 0xdf289
movq 0x38(%rsp), %rax
leaq (%rax,%r13,8), %rbp
movsd -0x8(%rbp), %xmm1
movq 0x60(%rsp), %rax
leaq (%rax,%r13,8), %r12
movl $0xa, (%rsp)
movq %rbx, %rdi
movl 0x5c(%rsp), %esi
movapd %xmm4, %xmm0
movq %r13, %rdx
movq %rbp, %rcx
movq %r12, %r8
leaq 0x100(%rsp), %r9
movapd %xmm5, %xmm3
callq 0xddcd4
cmpl $0x1, 0x3c(%rbx)
jne 0xdf114
movupd -0x20(%rbp), %xmm0
movupd -0x10(%rbp), %xmm1
subpd %xmm0, %xmm1
mulpd 0x4e6e3(%rip), %xmm1    # 0x12d7e0
divpd 0x110(%rsp), %xmm1
shufpd $0x1, %xmm1, %xmm1      # xmm1 = xmm1[1,0]
movapd %xmm1, 0x100(%rsp)
xorps %xmm0, %xmm0
cvtsi2sd %r13, %xmm0
mulsd 0xe0(%rsp), %xmm0
callq 0x8670
movapd %xmm0, %xmm1
mulsd 0x68(%rsp), %xmm1
movsd 0x126ac(%rip), %xmm0    # 0xf17e8
addsd %xmm0, %xmm1
movapd %xmm1, 0x10(%rsp)
leaq 0x1(%r13), %rax
xorps %xmm0, %xmm0
cvtsi2sd %rax, %xmm0
mulsd 0xe0(%rsp), %xmm0
callq 0x8670
movsd %xmm0, 0x80(%rsp)
movsd 0x88(%r15), %xmm0
movsd %xmm0, 0x40(%rsp)
movapd 0x10(%rsp), %xmm0
addsd 0x120da(%rip), %xmm0    # 0xf1260
callq 0xd6f51
movsd %xmm0, 0x8(%rsp)
movsd (%r14), %xmm0
ucomisd 0x1264a(%rip), %xmm0    # 0xf17e8
jne 0xdf1b2
jp 0xdf1b2
movq %r15, %rdi
movapd 0x10(%rsp), %xmm0
callq 0xdc084
jmp 0xdf1d7
movq 0x48(%rbx), %rcx
xorpd %xmm0, %xmm0
movsd 0x28(%rsp), %xmm1
movq %r14, %rdi
movl 0x24(%rsp), %esi
movapd 0x10(%rsp), %xmm2
movq 0x30(%rsp), %rdx
callq 0xd727d
movapd %xmm0, %xmm5
movsd 0x80(%rsp), %xmm0
mulsd 0x68(%rsp), %xmm0
addsd 0x125f6(%rip), %xmm0    # 0xf17e8
movsd %xmm0, 0x80(%rsp)
movsd 0x40(%rsp), %xmm4
mulsd 0x8(%rsp), %xmm4
movsd %xmm4, 0x40(%rsp)
movsd (%rbp), %xmm2
movsd (%r12), %xmm3
movq 0xb8(%r15), %rdi
movaps 0x10(%rsp), %xmm0
movaps 0xb0(%rsp), %xmm1
movsd %xmm5, 0x8(%rsp)
leaq 0x70(%rsp), %rsi
callq 0xe0ab6
movsd 0x70(%rsp), %xmm0
divsd 0x13436(%rip), %xmm0    # 0xf2680
divsd 0x40(%rsp), %xmm0
movsd 0x12008(%rip), %xmm1    # 0xf1260
subsd (%rbp), %xmm1
mulsd %xmm0, %xmm1
divsd 0x4e557(%rip), %xmm1    # 0x12d7c0
movq 0xd0(%rsp), %rax
movsd %xmm1, 0x60(%rax)
divsd 0x168aa(%rip), %xmm1    # 0xf5b28
movsd %xmm1, 0x68(%rax)
movapd 0x10(%rsp), %xmm4
movq 0x30(%rsp), %rax
cmpl $0x1, (%rax)
je 0xdf633
incq %r13
ucomisd 0x11fb6(%rip), %xmm4    # 0xf1258
movl 0x24(%rsp), %ebp
movsd 0x8(%rsp), %xmm5
jae 0xdedb2
movq 0x60(%rsp), %rax
movupd -0x20(%rax,%r13,8), %xmm0
movupd -0x10(%rax,%r13,8), %xmm1
subpd %xmm0, %xmm1
mulpd 0x4e50f(%rip), %xmm1    # 0x12d7e0
divpd 0x110(%rsp), %xmm1
shufpd $0x1, %xmm1, %xmm1      # xmm1 = xmm1[1,0]
movapd %xmm1, 0x180(%rsp)
movsd (%r14), %xmm0
ucomisd 0x124f3(%rip), %xmm0    # 0xf17e8
movapd %xmm4, 0x10(%rsp)
jne 0xdf324
jp 0xdf324
movq %r15, %rdi
movapd %xmm4, %xmm0
callq 0xdc084
movsd %xmm0, 0x8(%rsp)
movq %r15, %rdi
movsd 0x80(%rsp), %xmm0
callq 0xdc084
jmp 0xdf37e
movq 0x48(%rbx), %rcx
xorpd %xmm0, %xmm0
movsd 0x28(%rsp), %xmm1
movq %r14, %rdi
movl %ebp, %esi
movapd %xmm4, %xmm2
movq %r14, %r12
movq %rbx, %r14
movq 0x30(%rsp), %rbx
movq %rbx, %rdx
callq 0xd727d
movsd %xmm0, 0x8(%rsp)
movq 0x48(%r14), %rcx
xorpd %xmm0, %xmm0
movsd 0x28(%rsp), %xmm1
movq %r12, %rdi
movl %ebp, %esi
movsd 0x80(%rsp), %xmm2
movq %rbx, %rdx
movq %r14, %rbx
movq %r12, %r14
callq 0xd727d
movapd %xmm0, %xmm3
movaps 0x11ea7(%rip), %xmm0    # 0xf1230
xorps 0xb0(%rsp), %xmm0
movaps %xmm0, 0x40(%rsp)
movsd 0xf8(%rsp), %xmm4
movapd 0x10(%rsp), %xmm0
movq %r14, 0x130(%rsp)
movq %rbx, 0x158(%rsp)
ucomisd %xmm4, %xmm0
jbe 0xdf633
movq %r13, %rbp
movq %rbx, %rdi
movl 0x5c(%rsp), %esi
movq %r13, %rdx
leaq 0x100(%rsp), %rcx
leaq 0x180(%rsp), %r8
movsd 0x8(%rsp), %xmm1
movsd 0x80(%rsp), %xmm2
callq 0xddfa5
xorps %xmm0, %xmm0
cvtsi2sd %r13, %xmm0
mulsd 0x40(%rsp), %xmm0
callq 0x8670
movapd %xmm0, %xmm1
mulsd 0x68(%rsp), %xmm1
movsd 0x123d3(%rip), %xmm0    # 0xf17e8
addsd %xmm0, %xmm1
movapd %xmm1, 0x10(%rsp)
incq %r13
xorps %xmm0, %xmm0
cvtsi2sd %r13, %xmm0
mulsd 0x40(%rsp), %xmm0
callq 0x8670
mulsd 0x68(%rsp), %xmm0
movsd 0x123a5(%rip), %xmm1    # 0xf17e8
addsd %xmm1, %xmm0
movsd %xmm0, 0x80(%rsp)
movapd 0x10(%rsp), %xmm0
movapd %xmm0, %xmm2
cmpltsd 0xf8(%rsp), %xmm2
andnpd %xmm0, %xmm2
movsd (%r14), %xmm0
ucomisd %xmm1, %xmm0
movapd %xmm2, 0x10(%rsp)
jne 0xdf4b4
jp 0xdf4b4
movq %r15, %rdi
movapd %xmm2, %xmm0
callq 0xdc084
movsd %xmm0, 0x8(%rsp)
movq %r15, %rdi
movsd 0x80(%rsp), %xmm0
callq 0xdc084
movsd %xmm0, 0xe0(%rsp)
movsd 0x11db1(%rip), %xmm1    # 0xf1260
jmp 0xdf552
movq 0x48(%rbx), %rcx
xorpd %xmm0, %xmm0
movsd 0x28(%rsp), %xmm1
movq %r14, %rdi
movl 0x24(%rsp), %r12d
movl %r12d, %esi
movq %rbx, %r14
movq 0x30(%rsp), %rbx
movq %rbx, %rdx
callq 0xd727d
movsd 0x80(%rsp), %xmm2
ucomisd 0xf8(%rsp), %xmm2
movsd %xmm0, 0x8(%rsp)
jbe 0xdf536
movq 0x48(%r14), %rcx
xorpd %xmm0, %xmm0
movsd 0x28(%rsp), %xmm1
movq 0x130(%rsp), %r14
movq %r14, %rdi
movl %r12d, %esi
movq %rbx, %rdx
callq 0xd727d
movsd %xmm0, 0xe0(%rsp)
movsd 0x11d34(%rip), %xmm1    # 0xf1260
movq 0x158(%rsp), %rbx
jmp 0xdf552
movsd %xmm0, 0xe0(%rsp)
movsd 0x11d19(%rip), %xmm1    # 0xf1260
movq %r14, %rbx
movq 0x130(%rsp), %r14
movsd 0x88(%r15), %xmm0
movsd %xmm0, 0xa0(%rsp)
movapd 0x10(%rsp), %xmm0
addsd %xmm1, %xmm0
callq 0xd6f51
movapd %xmm0, %xmm4
mulsd 0xa0(%rsp), %xmm4
movsd %xmm4, 0xa0(%rsp)
movq 0x38(%rsp), %r12
movsd (%r12,%rbp,8), %xmm2
movq 0x60(%rsp), %rax
movsd (%rax,%rbp,8), %xmm3
movq 0xb8(%r15), %rdi
movaps 0x10(%rsp), %xmm0
movaps 0xb0(%rsp), %xmm1
movsd 0x8(%rsp), %xmm5
leaq 0x70(%rsp), %rsi
callq 0xe0ab6
movsd 0x70(%rsp), %xmm0
divsd 0x130b0(%rip), %xmm0    # 0xf2680
movsd 0x11c88(%rip), %xmm1    # 0xf1260
subsd (%r12,%rbp,8), %xmm1
divsd 0xa0(%rsp), %xmm0
mulsd %xmm0, %xmm1
divsd 0x4e1cd(%rip), %xmm1    # 0x12d7c0
movq 0xd0(%rsp), %rax
movsd %xmm1, 0x60(%rax)
divsd 0x16520(%rip), %xmm1    # 0xf5b28
movsd %xmm1, 0x68(%rax)
movq 0x30(%rsp), %rax
cmpl $0x1, (%rax)
movsd 0xf8(%rsp), %xmm4
movapd 0x10(%rsp), %xmm0
movsd 0xe0(%rsp), %xmm3
jne 0xdf3b5
movq 0x48(%rbx), %rax
addq $0x198, %rsp            # imm = 0x198
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq