// File: /workspace/github_c_makefile_star2_O0/PoulinV[P]AxiCLASS/build/../source/thermodynamics.c
// Function: thermodynamics_reionization_evolve_with_tau
int thermodynamics_reionization_evolve_with_tau(
                                                struct thermodynamics_parameters_and_workspace * ptpaw,
                                                double mz_ini,
                                                double mz_end,
                                                double * mz_output,
                                                int mz_size
                                                ) {

  /** Summary: */

  /** Define local variables */
  int counter;
  double z_sup,z_mid,z_inf;
  double tau_sup,tau_mid,tau_inf;

  int index_ti;
  int last_index_back_mz_ini;

  struct precision * ppr;
  struct background * pba;
  struct thermodynamics * pth;
  struct thermo_workspace * ptw;

  /* function pointer to ODE evolver and names of possible evolvers */
  extern int evolver_rk(EVOLVER_PROTOTYPE);
  extern int evolver_ndf15(EVOLVER_PROTOTYPE);
  int (*generic_evolver)(EVOLVER_PROTOTYPE) = evolver_ndf15;

  /* pointers towards two thermo vector stuctures (see below) */

  struct thermo_vector * ptvs; // Vector for storing the initial conditions
  struct thermo_vector * ptv; // Temporary vector as workspace

  /** - Remame fields to avoid heavy notations */

  ppr = ptpaw->ppr;
  pba = ptpaw->pba;
  pth = ptpaw->pth;
  ptw = ptpaw->ptw;

  /** - Choose evolver */

  switch (ppr->thermo_evolver) {
  case rk:
    generic_evolver = evolver_rk;
    break;
  case ndf15:
    generic_evolver = evolver_ndf15;
    break;
  }

  /** - ptvs will be a pointer towards the same thermo vector that was
      used in the previous approximation schemes; it contains values
      that will serve here to set initial conditions. */

  ptvs = ptw->ptdw->ptv;

  /** - ptv is a pointer towards a whole new thermo vector used for
      the calculations in the bisection, that we must allocate and
      initialize */

  class_alloc(ptv,sizeof(struct thermo_vector),pth->error_message);

  /* allocate vector indices dynamically */
  index_ti = 0;
  class_define_index(ptv->index_ti_D_Tmat,_TRUE_,index_ti,1);
  class_define_index(ptv->index_ti_x_He,_TRUE_,index_ti,1);
  class_define_index(ptv->index_ti_x_H,_TRUE_,index_ti,1);
  class_define_index(ptv->index_ti_T_idm,pba->has_idm,index_ti,1);
  ptv->ti_size = index_ti;

  /* Allocate all arrays used during the evolution */
  class_calloc(ptv->y,ptv->ti_size,sizeof(double),pth->error_message);
  class_alloc(ptv->dy,ptv->ti_size*sizeof(double),pth->error_message);
  class_alloc(ptv->used_in_output,ptv->ti_size*sizeof(int),pth->error_message);

  for (index_ti=0; index_ti<ptv->ti_size; index_ti++) {
    ptv->used_in_output[index_ti] = _TRUE_;
  }

  /** - Initialize the values of the temporary vector */
  ptv->y[ptv->index_ti_D_Tmat] = ptvs->y[ptvs->index_ti_D_Tmat];
  ptv->y[ptv->index_ti_x_H] = ptvs->y[ptvs->index_ti_x_H];
  ptv->y[ptv->index_ti_x_He] = ptvs->y[ptvs->index_ti_x_He];
  if (pba->has_idm == _TRUE_)
    ptv->y[ptv->index_ti_T_idm] = ptvs->y[ptvs->index_ti_T_idm];

  ptw->ptdw->ptv = ptv;

  /** - Evolve quantities through reionization assuming upper value of z_reio */

  z_sup = ppr->reionization_z_start_max-ppr->reionization_start_factor*pth->reionization_width;
  class_test(z_sup < 0.,
             pth->error_message,
             "parameters are such that reionization cannot take place before today while starting after z_start_max; need to increase z_start_max");

  /* maximum possible reionization redshift */
  ptw->ptrp->reionization_parameters[ptw->ptrp->index_re_reio_redshift] = z_sup;
  /* maximum possible starting redshift */
  switch (pth->reio_parametrization) {
  case reio_camb:
    ptw->ptrp->reionization_parameters[ptw->ptrp->index_re_reio_start] = ppr->reionization_z_start_max;
    break;
  case reio_half_tanh:
    ptw->ptrp->reionization_parameters[ptw->ptrp->index_re_reio_start] = z_sup;
    break;
  default:
    class_stop(pth->error_message,"Should not be there: tau_reio acan be an input only for reio_camb and reio_half_tanh");
    break;
  }

  /* ptaw->ptw->last_index_back has been properly set according to the
     redshift z = -mz_inbi, we should keep memory of it */
  last_index_back_mz_ini = ptpaw->ptw->last_index_back;

  /* Calculate a first ionization history at upper limit */
  class_call(generic_evolver(thermodynamics_derivs,
                             mz_ini,
                             mz_end,
                             ptv->y,
                             ptv->used_in_output,
                             ptv->ti_size,
                             ptpaw,
                             ppr->tol_thermo_integration,
                             ppr->smallest_allowed_variation,
                             thermodynamics_timescale,  // timescale
                             ppr->thermo_integration_stepsize, // stepsize
                             mz_output, // values of z for output
                             mz_size, // size of previous array
                             thermodynamics_sources, // function for output
                             NULL, // print variables
                             pth->error_message),
             pth->error_message,
             pth->error_message);

  /* infer corresponding tau_reio */
  class_call(thermodynamics_reionization_get_tau(ppr,
                                                 pba,
                                                 pth,
                                                 ptw),
             pth->error_message,
             pth->error_message);

  tau_sup=ptw->reionization_optical_depth;

  class_test(tau_sup < pth->tau_reio,
             pth->error_message,
             "parameters are such that reionization cannot start after z_start_max");

  /** - Restore initial conditions */
  ptv->y[ptv->index_ti_D_Tmat] = ptvs->y[ptvs->index_ti_D_Tmat];
  ptv->y[ptv->index_ti_x_H] = ptvs->y[ptvs->index_ti_x_H];
  ptv->y[ptv->index_ti_x_He] = ptvs->y[ptvs->index_ti_x_He];
  if (pba->has_idm == _TRUE_)
    ptv->y[ptv->index_ti_T_idm] = ptvs->y[ptvs->index_ti_T_idm];

  /** - Evolve quantities through reionization assuming lower value of z_reio */

  z_inf = 0.;

  /* minimum possible reionization redshift */
  ptw->ptrp->reionization_parameters[ptw->ptrp->index_re_reio_redshift] = z_inf;
  /* minimum possible starting redshift */
  switch (pth->reio_parametrization) {
  case reio_camb:
    ptw->ptrp->reionization_parameters[ptw->ptrp->index_re_reio_start] = ppr->reionization_start_factor*pth->reionization_width;
    if (ptw->ptrp->reionization_parameters[ptw->ptrp->index_re_reio_start] < pth->helium_fullreio_redshift+ppr->reionization_start_factor*pth->helium_fullreio_width) {
      ptw->ptrp->reionization_parameters[ptw->ptrp->index_re_reio_start] = pth->helium_fullreio_redshift+ppr->reionization_start_factor*pth->helium_fullreio_width;
    }
  case reio_half_tanh:
    ptw->ptrp->reionization_parameters[ptw->ptrp->index_re_reio_start] = z_inf;
    break;
  default:
    class_stop(pth->error_message,"Should not be there: tau_reio acan be an input only for reio_camb and reio_half_tanh");
    break;
  }

  /* reset ptaw->ptw->last_index_back to match the redshift z = -mz_inbi */
  ptpaw->ptw->last_index_back = last_index_back_mz_ini;

  /* Calculate a second ionization history at lower limit */
  class_call(generic_evolver(thermodynamics_derivs,
                             mz_ini,
                             mz_end,
                             ptv->y,
                             ptv->used_in_output,
                             ptv->ti_size,
                             ptpaw,
                             ppr->tol_thermo_integration,
                             ppr->smallest_allowed_variation,
                             thermodynamics_timescale,  // timescale
                             ppr->thermo_integration_stepsize, // stepsize
                             mz_output, // values of z for output
                             mz_size, // size of previous array
                             thermodynamics_sources, // function for output
                             NULL, // print variables
                             pth->error_message),
             pth->error_message,
             pth->error_message);

  /* infer corresponding tau_reio */
  class_call(thermodynamics_reionization_get_tau(ppr,
                                                 pba,
                                                 pth,
                                                 ptw),
             pth->error_message,
             pth->error_message);

  tau_inf=ptw->reionization_optical_depth;

  class_test(tau_inf > pth->tau_reio,
             pth->error_message,
             "CLASS cannot reach the low value of tau_reio that was selected, even when setting z_reio as low as 0.\nThis means that some additional physical component is requiring some minimal tau_reio_min = %.10e.\nThis is usually caused by strong energy injections or other modifications of the x_e(z) behaviour.",tau_inf);

  /** - Restore initial conditions */
  ptv->y[ptv->index_ti_D_Tmat] = ptvs->y[ptvs->index_ti_D_Tmat];
  ptv->y[ptv->index_ti_x_H] = ptvs->y[ptvs->index_ti_x_H];
  ptv->y[ptv->index_ti_x_He] = ptvs->y[ptvs->index_ti_x_He];
  if (pba->has_idm == _TRUE_)
    ptv->y[ptv->index_ti_T_idm] = ptvs->y[ptvs->index_ti_T_idm];

  /** - Evolve quantities through reionization, trying intermediate values of z_reio by bisection */
  counter=0;
  while ((tau_sup-tau_inf) > pth->tau_reio * ppr->reionization_optical_depth_tol) {
    z_mid=0.5*(z_sup+z_inf);

    /* reionization redshift */
    ptw->ptrp->reionization_parameters[ptw->ptrp->index_re_reio_redshift] = z_mid;

    /* infer starting redshift for hydrogen (Note, that this is only the start of the ADDITIONAL tanh re-ionization function)*/
    switch (pth->reio_parametrization) {
    case reio_camb:
      ptw->ptrp->reionization_parameters[ptw->ptrp->index_re_reio_start] = ptw->ptrp->reionization_parameters[ptw->ptrp->index_re_reio_redshift]+ppr->reionization_start_factor*pth->reionization_width;
      /* if starting redshift for helium is larger, take that one
       *    (does not happen in realistic models) */
      if (ptw->ptrp->reionization_parameters[ptw->ptrp->index_re_reio_start] < pth->helium_fullreio_redshift+ppr->reionization_start_factor*pth->helium_fullreio_width) {
        ptw->ptrp->reionization_parameters[ptw->ptrp->index_re_reio_start] = pth->helium_fullreio_redshift+ppr->reionization_start_factor*pth->helium_fullreio_width;
      }
      break;
    case reio_half_tanh:
      ptw->ptrp->reionization_parameters[ptw->ptrp->index_re_reio_start] = z_mid;
      break;
    default:
      class_stop(pth->error_message,"Should not be there: tau_reio acan be an input only for reio_camb and reio_half_tanh");
      break;
    }

    class_test(ptw->ptrp->reionization_parameters[ptw->ptrp->index_re_reio_start] > ppr->reionization_z_start_max,
               pth->error_message,
               "starting redshift for reionization > reionization_z_start_max = %e",ppr->reionization_z_start_max);

    /* reset ptaw->ptw->last_index_back to match the redshift z = -mz_inbi */
    ptpaw->ptw->last_index_back = last_index_back_mz_ini;

    /* Compute a new ionization history */
    class_call(generic_evolver(thermodynamics_derivs,
                               mz_ini,
                               mz_end,
                               ptv->y,
                               ptv->used_in_output,
                               ptv->ti_size,
                               ptpaw,
                               ppr->tol_thermo_integration,
                               ppr->smallest_allowed_variation,
                               thermodynamics_timescale,  // timescale
                               ppr->thermo_integration_stepsize, // stepsize
                               mz_output, // values of z for output
                               mz_size, // size of previous array
                               thermodynamics_sources, // function for output
                               NULL, // print variables
                               pth->error_message),
               pth->error_message,
               pth->error_message);

    /* infer corresponding tau_reio */
    class_call(thermodynamics_reionization_get_tau(ppr,
                                                   pba,
                                                   pth,
                                                   ptw),
               pth->error_message,
               pth->error_message);

    tau_mid=ptw->reionization_optical_depth;

    /* trial */
    if (tau_mid > pth->tau_reio) {
      z_sup=z_mid;
      tau_sup=tau_mid;
    }
    else {
      z_inf=z_mid;
      tau_inf=tau_mid;
    }

    /* Restore initial conditions */
    ptv->y[ptv->index_ti_D_Tmat] = ptvs->y[ptvs->index_ti_D_Tmat];
    ptv->y[ptv->index_ti_x_H] = ptvs->y[ptvs->index_ti_x_H];
    ptv->y[ptv->index_ti_x_He] = ptvs->y[ptvs->index_ti_x_He];
    if (pba->has_idm == _TRUE_)
      ptv->y[ptv->index_ti_T_idm] = ptvs->y[ptvs->index_ti_T_idm];

    /* counter to avoid infinite loop */
    counter++;
    class_test(counter > _MAX_IT_,
               pth->error_message,
               "while searching for reionization_optical_depth, maximum number of iterations exceeded");
  }

  /** - Store the ionization redshift in the thermodynamics structure */
  pth->z_reio = ptw->ptrp->reionization_parameters[ptw->ptrp->index_re_reio_redshift];

  /** - Free tempeoraty thermo vector */
  class_call(thermodynamics_vector_free(ptv),
             pth->error_message,
             pth->error_message);

  /* point ptw->ptdw->ptv to same location as when entering the function */
  ptw->ptdw->ptv = ptvs;

  return _SUCCESS_;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0xd918, %rsp           # imm = 0xD918
movq %rdi, 0xd908(%rsp)
movsd %xmm0, 0xd900(%rsp)
movsd %xmm1, 0xd8f8(%rsp)
movq %rsi, 0xd8f0(%rsp)
movl %edx, 0xd8ec(%rsp)
leaq -0xacc5d(%rip), %rax    # 0xf540
movq %rax, 0xd888(%rsp)
movq 0xd908(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0xd8a8(%rsp)
movq 0xd908(%rsp), %rax
movq (%rax), %rax
movq %rax, 0xd8a0(%rsp)
movq 0xd908(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, 0xd898(%rsp)
movq 0xd908(%rsp), %rax
movq 0x18(%rax), %rax
movq %rax, 0xd890(%rsp)
movq 0xd8a8(%rsp), %rax
movl 0x1b0(%rax), %eax
movl %eax, 0x3c(%rsp)
testl %eax, %eax
je 0xbc217
jmp 0xbc20c
movl 0x3c(%rsp), %eax
subl $0x1, %eax
je 0xbc228
jmp 0xbc237
leaq -0xad75e(%rip), %rax    # 0xeac0
movq %rax, 0xd888(%rsp)
jmp 0xbc237
leaq -0xaccef(%rip), %rax    # 0xf540
movq %rax, 0xd888(%rsp)
movq 0xd890(%rsp), %rax
movq 0x80(%rax), %rax
movq 0xb8(%rax), %rax
movq %rax, 0xd880(%rsp)
movl $0x30, %edi
callq 0x8460
movq %rax, 0xd878(%rsp)
cmpq $0x0, 0xd878(%rsp)
jne 0xbc2e2
movl $0x30, 0xd874(%rsp)
leaq 0xd070(%rsp), %rdi
movl 0xd874(%rsp), %ecx
leaq 0x115d71(%rip), %rsi    # 0x1d2004
leaq 0x137608(%rip), %rdx    # 0x1f38a2
movb $0x0, %al
callq 0x5b9c0
movq 0xd898(%rsp), %rdi
addq $0x1064, %rdi           # imm = 0x1064
leaq 0xd070(%rsp), %r8
leaq 0x115d75(%rip), %rsi    # 0x1d2034
leaq 0x1376d1(%rip), %rdx    # 0x1f3997
movl $0x8bc, %ecx            # imm = 0x8BC
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0xd914(%rsp)
jmp 0xbda82
movl $0x0, 0xd8b4(%rsp)
movl 0xd8b4(%rsp), %ecx
movq 0xd878(%rsp), %rax
movl %ecx, 0xc(%rax)
movl 0xd8b4(%rsp), %eax
addl $0x1, %eax
movl %eax, 0xd8b4(%rsp)
movl 0xd8b4(%rsp), %ecx
movq 0xd878(%rsp), %rax
movl %ecx, 0x8(%rax)
movl 0xd8b4(%rsp), %eax
addl $0x1, %eax
movl %eax, 0xd8b4(%rsp)
movl 0xd8b4(%rsp), %ecx
movq 0xd878(%rsp), %rax
movl %ecx, 0x4(%rax)
movl 0xd8b4(%rsp), %eax
addl $0x1, %eax
movl %eax, 0xd8b4(%rsp)
movq 0xd8a0(%rsp), %rax
cmpw $0x0, 0x4b6(%rax)
je 0xbc38b
movl 0xd8b4(%rsp), %ecx
movq 0xd878(%rsp), %rax
movl %ecx, 0x10(%rax)
movl 0xd8b4(%rsp), %eax
addl $0x1, %eax
movl %eax, 0xd8b4(%rsp)
movl 0xd8b4(%rsp), %ecx
movq 0xd878(%rsp), %rax
movl %ecx, (%rax)
movq 0xd878(%rsp), %rax
movslq (%rax), %rdi
movl $0x8, %esi
callq 0x8280
movq %rax, %rcx
movq 0xd878(%rsp), %rax
movq %rcx, 0x18(%rax)
movq 0xd878(%rsp), %rax
cmpq $0x0, 0x18(%rax)
jne 0xbc43f
movl $0x8, 0xd06c(%rsp)
leaq 0xc860(%rsp), %rdi
movl 0xd06c(%rsp), %ecx
leaq 0x115c14(%rip), %rsi    # 0x1d2004
leaq 0x1374ca(%rip), %rdx    # 0x1f38c1
movb $0x0, %al
callq 0x5b9c0
movq 0xd898(%rsp), %rdi
addq $0x1064, %rdi           # imm = 0x1064
leaq 0xc860(%rsp), %r8
leaq 0x115c18(%rip), %rsi    # 0x1d2034
leaq 0x137574(%rip), %rdx    # 0x1f3997
movl $0x8c7, %ecx            # imm = 0x8C7
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0xd914(%rsp)
jmp 0xbda82
movq 0xd878(%rsp), %rax
movslq (%rax), %rdi
shlq $0x3, %rdi
callq 0x8460
movq %rax, %rcx
movq 0xd878(%rsp), %rax
movq %rcx, 0x20(%rax)
movq 0xd878(%rsp), %rax
cmpq $0x0, 0x20(%rax)
jne 0xbc4ec
movq 0xd878(%rsp), %rax
movslq (%rax), %rax
shlq $0x3, %rax
movl %eax, 0xc85c(%rsp)
leaq 0xc050(%rsp), %rdi
movl 0xc85c(%rsp), %ecx
leaq 0x115b67(%rip), %rsi    # 0x1d2004
leaq 0x137424(%rip), %rdx    # 0x1f38c8
movb $0x0, %al
callq 0x5b9c0
movq 0xd898(%rsp), %rdi
addq $0x1064, %rdi           # imm = 0x1064
leaq 0xc050(%rsp), %r8
leaq 0x115b6b(%rip), %rsi    # 0x1d2034
leaq 0x1374c7(%rip), %rdx    # 0x1f3997
movl $0x8c8, %ecx            # imm = 0x8C8
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0xd914(%rsp)
jmp 0xbda82
movq 0xd878(%rsp), %rax
movslq (%rax), %rdi
shlq $0x2, %rdi
callq 0x8460
movq %rax, %rcx
movq 0xd878(%rsp), %rax
movq %rcx, 0x28(%rax)
movq 0xd878(%rsp), %rax
cmpq $0x0, 0x28(%rax)
jne 0xbc599
movq 0xd878(%rsp), %rax
movslq (%rax), %rax
shlq $0x2, %rax
movl %eax, 0xc04c(%rsp)
leaq 0xb840(%rsp), %rdi
movl 0xc04c(%rsp), %ecx
leaq 0x115aba(%rip), %rsi    # 0x1d2004
leaq 0x13737f(%rip), %rdx    # 0x1f38d0
movb $0x0, %al
callq 0x5b9c0
movq 0xd898(%rsp), %rdi
addq $0x1064, %rdi           # imm = 0x1064
leaq 0xb840(%rsp), %r8
leaq 0x115abe(%rip), %rsi    # 0x1d2034
leaq 0x13741a(%rip), %rdx    # 0x1f3997
movl $0x8c9, %ecx            # imm = 0x8C9
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0xd914(%rsp)
jmp 0xbda82
movl $0x0, 0xd8b4(%rsp)
movl 0xd8b4(%rsp), %eax
movq 0xd878(%rsp), %rcx
cmpl (%rcx), %eax
jge 0xbc5e5
movq 0xd878(%rsp), %rax
movq 0x28(%rax), %rax
movslq 0xd8b4(%rsp), %rcx
movl $0x1, (%rax,%rcx,4)
movl 0xd8b4(%rsp), %eax
addl $0x1, %eax
movl %eax, 0xd8b4(%rsp)
jmp 0xbc5a4
movq 0xd880(%rsp), %rax
movq 0x18(%rax), %rax
movq 0xd880(%rsp), %rcx
movslq 0xc(%rcx), %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0xd878(%rsp), %rax
movq 0x18(%rax), %rax
movq 0xd878(%rsp), %rcx
movslq 0xc(%rcx), %rcx
movsd %xmm0, (%rax,%rcx,8)
movq 0xd880(%rsp), %rax
movq 0x18(%rax), %rax
movq 0xd880(%rsp), %rcx
movslq 0x4(%rcx), %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0xd878(%rsp), %rax
movq 0x18(%rax), %rax
movq 0xd878(%rsp), %rcx
movslq 0x4(%rcx), %rcx
movsd %xmm0, (%rax,%rcx,8)
movq 0xd880(%rsp), %rax
movq 0x18(%rax), %rax
movq 0xd880(%rsp), %rcx
movslq 0x8(%rcx), %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0xd878(%rsp), %rax
movq 0x18(%rax), %rax
movq 0xd878(%rsp), %rcx
movslq 0x8(%rcx), %rcx
movsd %xmm0, (%rax,%rcx,8)
movq 0xd8a0(%rsp), %rax
movswl 0x4b6(%rax), %eax
cmpl $0x1, %eax
jne 0xbc6e1
movq 0xd880(%rsp), %rax
movq 0x18(%rax), %rax
movq 0xd880(%rsp), %rcx
movslq 0x10(%rcx), %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0xd878(%rsp), %rax
movq 0x18(%rax), %rax
movq 0xd878(%rsp), %rcx
movslq 0x10(%rcx), %rcx
movsd %xmm0, (%rax,%rcx,8)
movq 0xd878(%rsp), %rcx
movq 0xd890(%rsp), %rax
movq 0x80(%rax), %rax
movq %rcx, 0xb8(%rax)
movq 0xd8a8(%rsp), %rax
movsd 0x3e8(%rax), %xmm1
movq 0xd8a8(%rsp), %rax
movsd 0x400(%rax), %xmm0
movq 0xd898(%rsp), %rax
movsd 0x40(%rax), %xmm2
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, 0xd8e0(%rsp)
xorps %xmm0, %xmm0
ucomisd 0xd8e0(%rsp), %xmm0
jbe 0xbc7de
leaq 0xb040(%rsp), %rdi
leaq 0x1361ec(%rip), %rsi    # 0x1f295d
movb $0x0, %al
callq 0x5b9c0
leaq 0xa840(%rsp), %rdi
leaq 0xb040(%rsp), %rcx
leaq 0x1158f3(%rip), %rsi    # 0x1d2082
leaq 0x13624b(%rip), %rdx    # 0x1f29e1
movb $0x0, %al
callq 0x5b9c0
movq 0xd898(%rsp), %rdi
addq $0x1064, %rdi           # imm = 0x1064
leaq 0xa840(%rsp), %r8
leaq 0x115879(%rip), %rsi    # 0x1d2034
leaq 0x1371d5(%rip), %rdx    # 0x1f3997
movl $0x8dd, %ecx            # imm = 0x8DD
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0xd914(%rsp)
jmp 0xbda82
movsd 0xd8e0(%rsp), %xmm0
movq 0xd890(%rsp), %rax
movq 0x88(%rax), %rcx
movq 0x38(%rcx), %rax
movslq (%rcx), %rcx
movsd %xmm0, (%rax,%rcx,8)
movq 0xd898(%rsp), %rax
movl 0x18(%rax), %eax
movl %eax, 0x38(%rsp)
subl $0x1, %eax
je 0xbc823
jmp 0xbc818
movl 0x38(%rsp), %eax
subl $0x3, %eax
je 0xbc863
jmp 0xbc899
movq 0xd8a8(%rsp), %rax
movsd 0x3e8(%rax), %xmm0
movq 0xd890(%rsp), %rax
movq 0x88(%rax), %rax
movq 0x38(%rax), %rax
movq 0xd890(%rsp), %rcx
movq 0x88(%rcx), %rcx
movslq 0x30(%rcx), %rcx
movsd %xmm0, (%rax,%rcx,8)
jmp 0xbc90e
movsd 0xd8e0(%rsp), %xmm0
movq 0xd890(%rsp), %rax
movq 0x88(%rax), %rax
movq 0x38(%rax), %rax
movq 0xd890(%rsp), %rcx
movq 0x88(%rcx), %rcx
movslq 0x30(%rcx), %rcx
movsd %xmm0, (%rax,%rcx,8)
jmp 0xbc90e
leaq 0xa040(%rsp), %rdi
leaq 0x13711b(%rip), %rsi    # 0x1f39c3
movb $0x0, %al
callq 0x5b9c0
leaq 0x9840(%rsp), %rdi
leaq 0xa040(%rsp), %rdx
leaq 0x115ca7(%rip), %rsi    # 0x1d256d
movb $0x0, %al
callq 0x5b9c0
movq 0xd898(%rsp), %rdi
addq $0x1064, %rdi           # imm = 0x1064
leaq 0x9840(%rsp), %r8
leaq 0x115749(%rip), %rsi    # 0x1d2034
leaq 0x1370a5(%rip), %rdx    # 0x1f3997
movl $0x8ea, %ecx            # imm = 0x8EA
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0xd914(%rsp)
jmp 0xbda82
movq 0xd908(%rsp), %rax
movq 0x18(%rax), %rax
movl 0x78(%rax), %eax
movl %eax, 0xd8b0(%rsp)
movq 0xd888(%rsp), %rax
movsd 0xd900(%rsp), %xmm0
movsd 0xd8f8(%rsp), %xmm1
movq 0xd878(%rsp), %rcx
movq 0x18(%rcx), %rsi
movq 0xd878(%rsp), %rcx
movq 0x28(%rcx), %rdx
movq 0xd878(%rsp), %rcx
movl (%rcx), %ecx
movq 0xd908(%rsp), %r8
movq 0xd8a8(%rsp), %rdi
movsd 0x1b8(%rdi), %xmm2
movq 0xd8a8(%rsp), %rdi
movsd 0xa28(%rdi), %xmm3
movq 0xd8a8(%rsp), %rdi
movsd 0x1c0(%rdi), %xmm4
movq 0xd8f0(%rsp), %r14
movl 0xd8ec(%rsp), %ebx
movq 0xd898(%rsp), %r10
addq $0x1064, %r10           # imm = 0x1064
leaq 0x10e3(%rip), %rdi      # 0xbdaa0
leaq 0x229c(%rip), %r9       # 0xbec60
leaq 0x23f5(%rip), %r11      # 0xbedc0
xorl %ebp, %ebp
movq %r14, (%rsp)
movl %ebx, 0x8(%rsp)
movq %r11, 0x10(%rsp)
movq $0x0, 0x18(%rsp)
movq %r10, 0x20(%rsp)
callq *%rax
cmpl $0x1, %eax
jne 0xbca5c
leaq 0x9040(%rsp), %rdi
movq 0xd898(%rsp), %rcx
addq $0x1064, %rcx           # imm = 0x1064
leaq 0x1159cb(%rip), %rsi    # 0x1d23d8
leaq 0x137004(%rip), %rdx    # 0x1f3a18
movb $0x0, %al
callq 0x5b9c0
movq 0xd898(%rsp), %rdi
addq $0x1064, %rdi           # imm = 0x1064
leaq 0x9040(%rsp), %r8
leaq 0x1155fb(%rip), %rsi    # 0x1d2034
leaq 0x136f57(%rip), %rdx    # 0x1f3997
movl $0x904, %ecx            # imm = 0x904
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0xd914(%rsp)
jmp 0xbda82
movq 0xd8a8(%rsp), %rdi
movq 0xd8a0(%rsp), %rsi
movq 0xd898(%rsp), %rdx
movq 0xd890(%rsp), %rcx
callq 0xbfa00
cmpl $0x1, %eax
jne 0xbcaf3
leaq 0x8840(%rsp), %rdi
movq 0xd898(%rsp), %rcx
addq $0x1064, %rcx           # imm = 0x1064
leaq 0x115934(%rip), %rsi    # 0x1d23d8
leaq 0x136783(%rip), %rdx    # 0x1f322e
movb $0x0, %al
callq 0x5b9c0
movq 0xd898(%rsp), %rdi
addq $0x1064, %rdi           # imm = 0x1064
leaq 0x8840(%rsp), %r8
leaq 0x115564(%rip), %rsi    # 0x1d2034
leaq 0x136ec0(%rip), %rdx    # 0x1f3997
movl $0x90c, %ecx            # imm = 0x90C
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0xd914(%rsp)
jmp 0xbda82
movq 0xd890(%rsp), %rax
movsd 0x70(%rax), %xmm0
movsd %xmm0, 0xd8c8(%rsp)
movsd 0xd8c8(%rsp), %xmm1
movq 0xd898(%rsp), %rax
movsd 0x20(%rax), %xmm0
ucomisd %xmm1, %xmm0
jbe 0xbcba1
leaq 0x8040(%rsp), %rdi
leaq 0x137013(%rip), %rsi    # 0x1f3b47
movb $0x0, %al
callq 0x5b9c0
leaq 0x7840(%rsp), %rdi
leaq 0x8040(%rsp), %rcx
leaq 0x115530(%rip), %rsi    # 0x1d2082
leaq 0x137033(%rip), %rdx    # 0x1f3b8c
movb $0x0, %al
callq 0x5b9c0
movq 0xd898(%rsp), %rdi
addq $0x1064, %rdi           # imm = 0x1064
leaq 0x7840(%rsp), %r8
leaq 0x1154b6(%rip), %rsi    # 0x1d2034
leaq 0x136e12(%rip), %rdx    # 0x1f3997
movl $0x912, %ecx            # imm = 0x912
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0xd914(%rsp)
jmp 0xbda82
movq 0xd880(%rsp), %rax
movq 0x18(%rax), %rax
movq 0xd880(%rsp), %rcx
movslq 0xc(%rcx), %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0xd878(%rsp), %rax
movq 0x18(%rax), %rax
movq 0xd878(%rsp), %rcx
movslq 0xc(%rcx), %rcx
movsd %xmm0, (%rax,%rcx,8)
movq 0xd880(%rsp), %rax
movq 0x18(%rax), %rax
movq 0xd880(%rsp), %rcx
movslq 0x4(%rcx), %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0xd878(%rsp), %rax
movq 0x18(%rax), %rax
movq 0xd878(%rsp), %rcx
movslq 0x4(%rcx), %rcx
movsd %xmm0, (%rax,%rcx,8)
movq 0xd880(%rsp), %rax
movq 0x18(%rax), %rax
movq 0xd880(%rsp), %rcx
movslq 0x8(%rcx), %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0xd878(%rsp), %rax
movq 0x18(%rax), %rax
movq 0xd878(%rsp), %rcx
movslq 0x8(%rcx), %rcx
movsd %xmm0, (%rax,%rcx,8)
movq 0xd8a0(%rsp), %rax
movswl 0x4b6(%rax), %eax
cmpl $0x1, %eax
jne 0xbcc9d
movq 0xd880(%rsp), %rax
movq 0x18(%rax), %rax
movq 0xd880(%rsp), %rcx
movslq 0x10(%rcx), %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0xd878(%rsp), %rax
movq 0x18(%rax), %rax
movq 0xd878(%rsp), %rcx
movslq 0x10(%rcx), %rcx
movsd %xmm0, (%rax,%rcx,8)
movq $0x0, 0xd8d0(%rsp)
movsd 0xd8d0(%rsp), %xmm0
movq 0xd890(%rsp), %rax
movq 0x88(%rax), %rcx
movq 0x38(%rcx), %rax
movslq (%rcx), %rcx
movsd %xmm0, (%rax,%rcx,8)
movq 0xd898(%rsp), %rax
movl 0x18(%rax), %eax
movl %eax, 0x34(%rsp)
subl $0x1, %eax
je 0xbccf5
jmp 0xbcce3
movl 0x34(%rsp), %eax
subl $0x3, %eax
je 0xbcdff
jmp 0xbce35
movq 0xd8a8(%rsp), %rax
movsd 0x400(%rax), %xmm0
movq 0xd898(%rsp), %rax
mulsd 0x40(%rax), %xmm0
movq 0xd890(%rsp), %rax
movq 0x88(%rax), %rax
movq 0x38(%rax), %rax
movq 0xd890(%rsp), %rcx
movq 0x88(%rcx), %rcx
movslq 0x30(%rcx), %rcx
movsd %xmm0, (%rax,%rcx,8)
movq 0xd890(%rsp), %rax
movq 0x88(%rax), %rax
movq 0x38(%rax), %rax
movq 0xd890(%rsp), %rcx
movq 0x88(%rcx), %rcx
movslq 0x30(%rcx), %rcx
movsd (%rax,%rcx,8), %xmm1
movq 0xd898(%rsp), %rax
movsd 0x50(%rax), %xmm2
movq 0xd8a8(%rsp), %rax
movsd 0x400(%rax), %xmm0
movq 0xd898(%rsp), %rax
movsd 0x58(%rax), %xmm3
mulsd %xmm3, %xmm0
addsd %xmm2, %xmm0
ucomisd %xmm1, %xmm0
jbe 0xbcdfd
movq 0xd898(%rsp), %rax
movsd 0x50(%rax), %xmm1
movq 0xd8a8(%rsp), %rax
movsd 0x400(%rax), %xmm0
movq 0xd898(%rsp), %rax
movsd 0x58(%rax), %xmm2
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movq 0xd890(%rsp), %rax
movq 0x88(%rax), %rax
movq 0x38(%rax), %rax
movq 0xd890(%rsp), %rcx
movq 0x88(%rcx), %rcx
movslq 0x30(%rcx), %rcx
movsd %xmm0, (%rax,%rcx,8)
jmp 0xbcdff
movsd 0xd8d0(%rsp), %xmm0
movq 0xd890(%rsp), %rax
movq 0x88(%rax), %rax
movq 0x38(%rax), %rax
movq 0xd890(%rsp), %rcx
movq 0x88(%rcx), %rcx
movslq 0x30(%rcx), %rcx
movsd %xmm0, (%rax,%rcx,8)
jmp 0xbceaa
leaq 0x7040(%rsp), %rdi
leaq 0x136b7f(%rip), %rsi    # 0x1f39c3
movb $0x0, %al
callq 0x5b9c0
leaq 0x6840(%rsp), %rdi
leaq 0x7040(%rsp), %rdx
leaq 0x11570b(%rip), %rsi    # 0x1d256d
movb $0x0, %al
callq 0x5b9c0
movq 0xd898(%rsp), %rdi
addq $0x1064, %rdi           # imm = 0x1064
leaq 0x6840(%rsp), %r8
leaq 0x1151ad(%rip), %rsi    # 0x1d2034
leaq 0x136b09(%rip), %rdx    # 0x1f3997
movl $0x92c, %ecx            # imm = 0x92C
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0xd914(%rsp)
jmp 0xbda82
movl 0xd8b0(%rsp), %ecx
movq 0xd908(%rsp), %rax
movq 0x18(%rax), %rax
movl %ecx, 0x78(%rax)
movq 0xd888(%rsp), %rax
movsd 0xd900(%rsp), %xmm0
movsd 0xd8f8(%rsp), %xmm1
movq 0xd878(%rsp), %rcx
movq 0x18(%rcx), %rsi
movq 0xd878(%rsp), %rcx
movq 0x28(%rcx), %rdx
movq 0xd878(%rsp), %rcx
movl (%rcx), %ecx
movq 0xd908(%rsp), %r8
movq 0xd8a8(%rsp), %rdi
movsd 0x1b8(%rdi), %xmm2
movq 0xd8a8(%rsp), %rdi
movsd 0xa28(%rdi), %xmm3
movq 0xd8a8(%rsp), %rdi
movsd 0x1c0(%rdi), %xmm4
movq 0xd8f0(%rsp), %r14
movl 0xd8ec(%rsp), %ebx
movq 0xd898(%rsp), %r10
addq $0x1064, %r10           # imm = 0x1064
leaq 0xb47(%rip), %rdi       # 0xbdaa0
leaq 0x1d00(%rip), %r9       # 0xbec60
leaq 0x1e59(%rip), %r11      # 0xbedc0
xorl %ebp, %ebp
movq %r14, (%rsp)
movl %ebx, 0x8(%rsp)
movq %r11, 0x10(%rsp)
movq $0x0, 0x18(%rsp)
movq %r10, 0x20(%rsp)
callq *%rax
cmpl $0x1, %eax
jne 0xbcff8
leaq 0x6040(%rsp), %rdi
movq 0xd898(%rsp), %rcx
addq $0x1064, %rcx           # imm = 0x1064
leaq 0x11542f(%rip), %rsi    # 0x1d23d8
leaq 0x136a68(%rip), %rdx    # 0x1f3a18
movb $0x0, %al
callq 0x5b9c0
movq 0xd898(%rsp), %rdi
addq $0x1064, %rdi           # imm = 0x1064
leaq 0x6040(%rsp), %r8
leaq 0x11505f(%rip), %rsi    # 0x1d2034
leaq 0x1369bb(%rip), %rdx    # 0x1f3997
movl $0x945, %ecx            # imm = 0x945
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0xd914(%rsp)
jmp 0xbda82
movq 0xd8a8(%rsp), %rdi
movq 0xd8a0(%rsp), %rsi
movq 0xd898(%rsp), %rdx
movq 0xd890(%rsp), %rcx
callq 0xbfa00
cmpl $0x1, %eax
jne 0xbd08f
leaq 0x5840(%rsp), %rdi
movq 0xd898(%rsp), %rcx
addq $0x1064, %rcx           # imm = 0x1064
leaq 0x115398(%rip), %rsi    # 0x1d23d8
leaq 0x1361e7(%rip), %rdx    # 0x1f322e
movb $0x0, %al
callq 0x5b9c0
movq 0xd898(%rsp), %rdi
addq $0x1064, %rdi           # imm = 0x1064
leaq 0x5840(%rsp), %r8
leaq 0x114fc8(%rip), %rsi    # 0x1d2034
leaq 0x136924(%rip), %rdx    # 0x1f3997
movl $0x94d, %ecx            # imm = 0x94D
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0xd914(%rsp)
jmp 0xbda82
movq 0xd890(%rsp), %rax
movsd 0x70(%rax), %xmm0
movsd %xmm0, 0xd8b8(%rsp)
movsd 0xd8b8(%rsp), %xmm0
movq 0xd898(%rsp), %rax
ucomisd 0x20(%rax), %xmm0
jbe 0xbd146
leaq 0x5040(%rsp), %rdi
movsd 0xd8b8(%rsp), %xmm0
leaq 0x136acb(%rip), %rsi    # 0x1f3ba4
movb $0x1, %al
callq 0x5b9c0
leaq 0x4840(%rsp), %rdi
leaq 0x5040(%rsp), %rcx
leaq 0x114f8b(%rip), %rsi    # 0x1d2082
leaq 0x136bd2(%rip), %rdx    # 0x1f3cd0
movb $0x0, %al
callq 0x5b9c0
movq 0xd898(%rsp), %rdi
addq $0x1064, %rdi           # imm = 0x1064
leaq 0x4840(%rsp), %r8
leaq 0x114f11(%rip), %rsi    # 0x1d2034
leaq 0x13686d(%rip), %rdx    # 0x1f3997
movl $0x953, %ecx            # imm = 0x953
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0xd914(%rsp)
jmp 0xbda82
movq 0xd880(%rsp), %rax
movq 0x18(%rax), %rax
movq 0xd880(%rsp), %rcx
movslq 0xc(%rcx), %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0xd878(%rsp), %rax
movq 0x18(%rax), %rax
movq 0xd878(%rsp), %rcx
movslq 0xc(%rcx), %rcx
movsd %xmm0, (%rax,%rcx,8)
movq 0xd880(%rsp), %rax
movq 0x18(%rax), %rax
movq 0xd880(%rsp), %rcx
movslq 0x4(%rcx), %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0xd878(%rsp), %rax
movq 0x18(%rax), %rax
movq 0xd878(%rsp), %rcx
movslq 0x4(%rcx), %rcx
movsd %xmm0, (%rax,%rcx,8)
movq 0xd880(%rsp), %rax
movq 0x18(%rax), %rax
movq 0xd880(%rsp), %rcx
movslq 0x8(%rcx), %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0xd878(%rsp), %rax
movq 0x18(%rax), %rax
movq 0xd878(%rsp), %rcx
movslq 0x8(%rcx), %rcx
movsd %xmm0, (%rax,%rcx,8)
movq 0xd8a0(%rsp), %rax
movswl 0x4b6(%rax), %eax
cmpl $0x1, %eax
jne 0xbd242
movq 0xd880(%rsp), %rax
movq 0x18(%rax), %rax
movq 0xd880(%rsp), %rcx
movslq 0x10(%rcx), %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0xd878(%rsp), %rax
movq 0x18(%rax), %rax
movq 0xd878(%rsp), %rcx
movslq 0x10(%rcx), %rcx
movsd %xmm0, (%rax,%rcx,8)
movl $0x0, 0xd8e8(%rsp)
movsd 0xd8c8(%rsp), %xmm0
subsd 0xd8b8(%rsp), %xmm0
movq 0xd898(%rsp), %rax
movsd 0x20(%rax), %xmm1
movq 0xd8a8(%rsp), %rax
mulsd 0x3f8(%rax), %xmm1
ucomisd %xmm1, %xmm0
jbe 0xbd9ac
movsd 0xd8e0(%rsp), %xmm0
movsd 0xd8d0(%rsp), %xmm1
addsd %xmm1, %xmm0
movsd 0x1159e4(%rip), %xmm1   # 0x1d2c88
mulsd %xmm1, %xmm0
movsd %xmm0, 0xd8d8(%rsp)
movsd 0xd8d8(%rsp), %xmm0
movq 0xd890(%rsp), %rax
movq 0x88(%rax), %rcx
movq 0x38(%rcx), %rax
movslq (%rcx), %rcx
movsd %xmm0, (%rax,%rcx,8)
movq 0xd898(%rsp), %rax
movl 0x18(%rax), %eax
movl %eax, 0x30(%rsp)
subl $0x1, %eax
je 0xbd2fd
jmp 0xbd2eb
movl 0x30(%rsp), %eax
subl $0x3, %eax
je 0xbd43c
jmp 0xbd472
movq 0xd890(%rsp), %rax
movq 0x88(%rax), %rax
movq 0x38(%rax), %rax
movq 0xd890(%rsp), %rcx
movq 0x88(%rcx), %rcx
movslq (%rcx), %rcx
movsd (%rax,%rcx,8), %xmm1
movq 0xd8a8(%rsp), %rax
movsd 0x400(%rax), %xmm0
movq 0xd898(%rsp), %rax
movsd 0x40(%rax), %xmm2
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movq 0xd890(%rsp), %rax
movq 0x88(%rax), %rax
movq 0x38(%rax), %rax
movq 0xd890(%rsp), %rcx
movq 0x88(%rcx), %rcx
movslq 0x30(%rcx), %rcx
movsd %xmm0, (%rax,%rcx,8)
movq 0xd890(%rsp), %rax
movq 0x88(%rax), %rax
movq 0x38(%rax), %rax
movq 0xd890(%rsp), %rcx
movq 0x88(%rcx), %rcx
movslq 0x30(%rcx), %rcx
movsd (%rax,%rcx,8), %xmm1
movq 0xd898(%rsp), %rax
movsd 0x50(%rax), %xmm2
movq 0xd8a8(%rsp), %rax
movsd 0x400(%rax), %xmm0
movq 0xd898(%rsp), %rax
movsd 0x58(%rax), %xmm3
mulsd %xmm3, %xmm0
addsd %xmm2, %xmm0
ucomisd %xmm1, %xmm0
jbe 0xbd437
movq 0xd898(%rsp), %rax
movsd 0x50(%rax), %xmm1
movq 0xd8a8(%rsp), %rax
movsd 0x400(%rax), %xmm0
movq 0xd898(%rsp), %rax
movsd 0x58(%rax), %xmm2
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movq 0xd890(%rsp), %rax
movq 0x88(%rax), %rax
movq 0x38(%rax), %rax
movq 0xd890(%rsp), %rcx
movq 0x88(%rcx), %rcx
movslq 0x30(%rcx), %rcx
movsd %xmm0, (%rax,%rcx,8)
jmp 0xbd4e7
movsd 0xd8d8(%rsp), %xmm0
movq 0xd890(%rsp), %rax
movq 0x88(%rax), %rax
movq 0x38(%rax), %rax
movq 0xd890(%rsp), %rcx
movq 0x88(%rcx), %rcx
movslq 0x30(%rcx), %rcx
movsd %xmm0, (%rax,%rcx,8)
jmp 0xbd4e7
leaq 0x4040(%rsp), %rdi
leaq 0x136542(%rip), %rsi    # 0x1f39c3
movb $0x0, %al
callq 0x5b9c0
leaq 0x3840(%rsp), %rdi
leaq 0x4040(%rsp), %rdx
leaq 0x1150ce(%rip), %rsi    # 0x1d256d
movb $0x0, %al
callq 0x5b9c0
movq 0xd898(%rsp), %rdi
addq $0x1064, %rdi           # imm = 0x1064
leaq 0x3840(%rsp), %r8
leaq 0x114b70(%rip), %rsi    # 0x1d2034
leaq 0x1364cc(%rip), %rdx    # 0x1f3997
movl $0x972, %ecx            # imm = 0x972
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0xd914(%rsp)
jmp 0xbda82
movq 0xd890(%rsp), %rax
movq 0x88(%rax), %rax
movq 0x38(%rax), %rax
movq 0xd890(%rsp), %rcx
movq 0x88(%rcx), %rcx
movslq 0x30(%rcx), %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0xd8a8(%rsp), %rax
ucomisd 0x3e8(%rax), %xmm0
jbe 0xbd5b4
leaq 0x3040(%rsp), %rdi
movq 0xd8a8(%rsp), %rax
movsd 0x3e8(%rax), %xmm0
leaq 0x1367a1(%rip), %rsi    # 0x1f3ce8
movb $0x1, %al
callq 0x5b9c0
leaq 0x2840(%rsp), %rdi
leaq 0x3040(%rsp), %rcx
leaq 0x114b1d(%rip), %rsi    # 0x1d2082
leaq 0x1367bf(%rip), %rdx    # 0x1f3d2b
movb $0x0, %al
callq 0x5b9c0
movq 0xd898(%rsp), %rdi
addq $0x1064, %rdi           # imm = 0x1064
leaq 0x2840(%rsp), %r8
leaq 0x114aa3(%rip), %rsi    # 0x1d2034
leaq 0x1363ff(%rip), %rdx    # 0x1f3997
movl $0x978, %ecx            # imm = 0x978
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0xd914(%rsp)
jmp 0xbda82
movl 0xd8b0(%rsp), %ecx
movq 0xd908(%rsp), %rax
movq 0x18(%rax), %rax
movl %ecx, 0x78(%rax)
movq 0xd888(%rsp), %rax
movsd 0xd900(%rsp), %xmm0
movsd 0xd8f8(%rsp), %xmm1
movq 0xd878(%rsp), %rcx
movq 0x18(%rcx), %rsi
movq 0xd878(%rsp), %rcx
movq 0x28(%rcx), %rdx
movq 0xd878(%rsp), %rcx
movl (%rcx), %ecx
movq 0xd908(%rsp), %r8
movq 0xd8a8(%rsp), %rdi
movsd 0x1b8(%rdi), %xmm2
movq 0xd8a8(%rsp), %rdi
movsd 0xa28(%rdi), %xmm3
movq 0xd8a8(%rsp), %rdi
movsd 0x1c0(%rdi), %xmm4
movq 0xd8f0(%rsp), %r14
movl 0xd8ec(%rsp), %ebx
movq 0xd898(%rsp), %r10
addq $0x1064, %r10           # imm = 0x1064
leaq 0x43d(%rip), %rdi       # 0xbdaa0
leaq 0x15f6(%rip), %r9       # 0xbec60
leaq 0x174f(%rip), %r11      # 0xbedc0
xorl %ebp, %ebp
movq %r14, (%rsp)
movl %ebx, 0x8(%rsp)
movq %r11, 0x10(%rsp)
movq $0x0, 0x18(%rsp)
movq %r10, 0x20(%rsp)
callq *%rax
cmpl $0x1, %eax
jne 0xbd702
leaq 0x2040(%rsp), %rdi
movq 0xd898(%rsp), %rcx
addq $0x1064, %rcx           # imm = 0x1064
leaq 0x114d25(%rip), %rsi    # 0x1d23d8
leaq 0x13635e(%rip), %rdx    # 0x1f3a18
movb $0x0, %al
callq 0x5b9c0
movq 0xd898(%rsp), %rdi
addq $0x1064, %rdi           # imm = 0x1064
leaq 0x2040(%rsp), %r8
leaq 0x114955(%rip), %rsi    # 0x1d2034
leaq 0x1362b1(%rip), %rdx    # 0x1f3997
movl $0x98f, %ecx            # imm = 0x98F
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0xd914(%rsp)
jmp 0xbda82
movq 0xd8a8(%rsp), %rdi
movq 0xd8a0(%rsp), %rsi
movq 0xd898(%rsp), %rdx
movq 0xd890(%rsp), %rcx
callq 0xbfa00
cmpl $0x1, %eax
jne 0xbd799
leaq 0x1840(%rsp), %rdi
movq 0xd898(%rsp), %rcx
addq $0x1064, %rcx           # imm = 0x1064
leaq 0x114c8e(%rip), %rsi    # 0x1d23d8
leaq 0x135add(%rip), %rdx    # 0x1f322e
movb $0x0, %al
callq 0x5b9c0
movq 0xd898(%rsp), %rdi
addq $0x1064, %rdi           # imm = 0x1064
leaq 0x1840(%rsp), %r8
leaq 0x1148be(%rip), %rsi    # 0x1d2034
leaq 0x13621a(%rip), %rdx    # 0x1f3997
movl $0x997, %ecx            # imm = 0x997
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0xd914(%rsp)
jmp 0xbda82
movq 0xd890(%rsp), %rax
movsd 0x70(%rax), %xmm0
movsd %xmm0, 0xd8c0(%rsp)
movsd 0xd8c0(%rsp), %xmm0
movq 0xd898(%rsp), %rax
ucomisd 0x20(%rax), %xmm0
jbe 0xbd7ed
movsd 0xd8d8(%rsp), %xmm0
movsd %xmm0, 0xd8e0(%rsp)
movsd 0xd8c0(%rsp), %xmm0
movsd %xmm0, 0xd8c8(%rsp)
jmp 0xbd811
movsd 0xd8d8(%rsp), %xmm0
movsd %xmm0, 0xd8d0(%rsp)
movsd 0xd8c0(%rsp), %xmm0
movsd %xmm0, 0xd8b8(%rsp)
movq 0xd880(%rsp), %rax
movq 0x18(%rax), %rax
movq 0xd880(%rsp), %rcx
movslq 0xc(%rcx), %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0xd878(%rsp), %rax
movq 0x18(%rax), %rax
movq 0xd878(%rsp), %rcx
movslq 0xc(%rcx), %rcx
movsd %xmm0, (%rax,%rcx,8)
movq 0xd880(%rsp), %rax
movq 0x18(%rax), %rax
movq 0xd880(%rsp), %rcx
movslq 0x4(%rcx), %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0xd878(%rsp), %rax
movq 0x18(%rax), %rax
movq 0xd878(%rsp), %rcx
movslq 0x4(%rcx), %rcx
movsd %xmm0, (%rax,%rcx,8)
movq 0xd880(%rsp), %rax
movq 0x18(%rax), %rax
movq 0xd880(%rsp), %rcx
movslq 0x8(%rcx), %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0xd878(%rsp), %rax
movq 0x18(%rax), %rax
movq 0xd878(%rsp), %rcx
movslq 0x8(%rcx), %rcx
movsd %xmm0, (%rax,%rcx,8)
movq 0xd8a0(%rsp), %rax
movswl 0x4b6(%rax), %eax
cmpl $0x1, %eax
jne 0xbd90d
movq 0xd880(%rsp), %rax
movq 0x18(%rax), %rax
movq 0xd880(%rsp), %rcx
movslq 0x10(%rcx), %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0xd878(%rsp), %rax
movq 0x18(%rax), %rax
movq 0xd878(%rsp), %rcx
movslq 0x10(%rcx), %rcx
movsd %xmm0, (%rax,%rcx,8)
movl 0xd8e8(%rsp), %eax
addl $0x1, %eax
movl %eax, 0xd8e8(%rsp)
cmpl $0x2710, 0xd8e8(%rsp) # imm = 0x2710
jle 0xbd9a7
leaq 0x1040(%rsp), %rdi
leaq 0x136454(%rip), %rsi    # 0x1f3d8e
movb $0x0, %al
callq 0x5b9c0
leaq 0x840(%rsp), %rdi
leaq 0x1040(%rsp), %rcx
leaq 0x11472a(%rip), %rsi    # 0x1d2082
leaq 0x136485(%rip), %rdx    # 0x1f3de4
movb $0x0, %al
callq 0x5b9c0
movq 0xd898(%rsp), %rdi
addq $0x1064, %rdi           # imm = 0x1064
leaq 0x840(%rsp), %r8
leaq 0x1146b0(%rip), %rsi    # 0x1d2034
leaq 0x13600c(%rip), %rdx    # 0x1f3997
movl $0x9b0, %ecx            # imm = 0x9B0
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0xd914(%rsp)
jmp 0xbda82
jmp 0xbd24d
movq 0xd890(%rsp), %rax
movq 0x88(%rax), %rax
movq 0x38(%rax), %rax
movq 0xd890(%rsp), %rcx
movq 0x88(%rcx), %rcx
movslq (%rcx), %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0xd898(%rsp), %rax
movsd %xmm0, 0x28(%rax)
movq 0xd878(%rsp), %rdi
callq 0xbfe10
cmpl $0x1, %eax
jne 0xbda59
leaq 0x40(%rsp), %rdi
movq 0xd898(%rsp), %rcx
addq $0x1064, %rcx           # imm = 0x1064
leaq 0x1149c8(%rip), %rsi    # 0x1d23d8
leaq 0x1363e0(%rip), %rdx    # 0x1f3df7
movb $0x0, %al
callq 0x5b9c0
movq 0xd898(%rsp), %rdi
addq $0x1064, %rdi           # imm = 0x1064
leaq 0x40(%rsp), %r8
leaq 0x1145fb(%rip), %rsi    # 0x1d2034
leaq 0x135f57(%rip), %rdx    # 0x1f3997
movl $0x9b9, %ecx            # imm = 0x9B9
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0xd914(%rsp)
jmp 0xbda82
movq 0xd880(%rsp), %rcx
movq 0xd890(%rsp), %rax
movq 0x80(%rax), %rax
movq %rcx, 0xb8(%rax)
movl $0x0, 0xd914(%rsp)
movl 0xd914(%rsp), %eax
addq $0xd918, %rsp           # imm = 0xD918
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
nopw (%rax,%rax)