// File: /workspace/github_c_makefile_star2_O0/PoulinV[P]AxiCLASS/build/../source/background.c
// Function: background_solve
int background_solve(
                     struct precision *ppr,
                     struct background *pba
                     ) {

  /** Summary: */

  /** - define local variables */

  /* parameters and workspace for the background_derivs function */
  struct background_parameters_and_workspace bpaw;
  /* vector of quantities to be integrated */
  double * pvecback_integration;
  /* vector of all background quantities */
  double * pvecback;
  /* comoving radius coordinate in Mpc (equal to conformal distance in flat case) */
  double comoving_radius=0.;

  /* VP: scalar field critical reshift and fractional energy density at z_c */
  double z_c_new, f_ede_new, phi_c_new, counter_scf = 0;
  /* parameters to find peak of pheno_axion/pheno_ADE EDE fluid */
  double z_peak_new;
 /* VP: some additional parameters in AxiCLASS */
  double integration_stepsize;
  double ac, n, anow, Tosc;
  short is_axion_converged = _FALSE_;
  double Omega0_axion_used=0;

  /* conformal distance in Mpc (equal to comoving radius in flat case) */
  double conformal_distance;

  /* evolvers */
  extern int evolver_rk(EVOLVER_PROTOTYPE);
  extern int evolver_ndf15(EVOLVER_PROTOTYPE);
  int (*generic_evolver)(EVOLVER_PROTOTYPE) = evolver_ndf15;

  /* initial and final loga values */
  double loga_ini, loga_final;
  /* growth factor today */
  double D_today;
  /* indices for the different arrays */
  int index_loga, index_scf;
  /* what parameters are used in the output? */
  int * used_in_output;

  /* index of ncdm species */
  int n_ncdm;

  /** - setup background workspace */
  bpaw.pba = pba;
  class_alloc(pvecback,pba->bg_size*sizeof(double),pba->error_message);
  bpaw.pvecback = pvecback;



  /** - Determine output vector */
  loga_final = 0.; // with our conventions, loga is in fact log(a/a_0); we integrate until today, when log(a/a_0) = 0
  pba->bt_size = ppr->background_Nloga;

  /** - allocate background tables */
  class_alloc(pba->tau_table,pba->bt_size * sizeof(double),pba->error_message);
  class_alloc(pba->z_table,pba->bt_size * sizeof(double),pba->error_message);

  class_alloc(pba->d2tau_dz2_table,pba->bt_size * sizeof(double),pba->error_message);
  class_alloc(pba->d2z_dtau2_table,pba->bt_size * sizeof(double),pba->error_message);

  class_alloc(pba->background_table,pba->bt_size * pba->bg_size * sizeof(double),pba->error_message);
  class_alloc(pba->d2background_dloga2_table,pba->bt_size * pba->bg_size * sizeof(double),pba->error_message);


  /** - define values of loga at which results will be stored */


  /** - choose the right evolver */
  switch (ppr->background_evolver) {

  case rk:
    generic_evolver = evolver_rk;
    if (pba->background_verbose > 1) {
      printf("%s\n", "Chose rk as generic_evolver");
    }
    break;

  case ndf15:
    generic_evolver = evolver_ndf15;
    if (pba->background_verbose > 1) {
      printf("%s\n", "Chose ndf15 as generic_evolver");
    }
    break;
  }
if(pba->Omega0_scf!=0){
  Omega0_axion_used = pba->Omega0_scf;
}
while(is_axion_converged == _FALSE_){
//VP: new to axiclass: To correctly incorporate the axion contribution to Omega_Lambda in the case where it is not known.
/** - allocate vector of quantities to be integrated */
class_alloc(pvecback_integration,pba->bi_size*sizeof(double),pba->error_message);

/** - impose initial conditions with background_initial_conditions() */
class_call(background_initial_conditions(ppr,pba,pvecback,pvecback_integration,&(loga_ini)),
           pba->error_message,
           pba->error_message);

 class_alloc(pba->loga_table,pba->bt_size * sizeof(double),pba->error_message);
 class_alloc(used_in_output, pba->bt_size*sizeof(int), pba->error_message);


   for (index_loga=0; index_loga<pba->bt_size; index_loga++) {
     pba->loga_table[index_loga] = loga_ini + index_loga*(loga_final-loga_ini)/(pba->bt_size-1);
     used_in_output[index_loga] = 1;
   }

  // is_axion_converged = _TRUE_;
  /** - perform the integration */
  class_call(generic_evolver(background_derivs,
                             loga_ini,
                             loga_final,
                             pvecback_integration,
                             used_in_output,
                             pba->bi_size,
                             &bpaw,
                             ppr->tol_background_integration,
                             ppr->smallest_allowed_variation,
                             background_timescale, //'evaluate_timescale', required by evolver_rk but not by ndf15
                             ppr->background_integration_stepsize,
                             pba->loga_table,
                             pba->bt_size,
                             background_sources,
                             NULL, //'print_variables' in evolver_rk could be set, but, not required
                             pba->error_message),
             pba->error_message,
             pba->error_message);


             /* VP: loop over background to ensure the closure relation, to be updated*/
     //
     if(pba->loop_over_background_for_closure_relation == _TRUE_){
       if(pba->scf_potential == axion || pba->scf_potential == axionquad){
         if(pba->Omega0_scf>0){
           //already included Omega_sf in the contribution
           is_axion_converged = _TRUE_;
         }else{
           class_test(pba->has_scf == _FALSE_,pba->error_message,"it's weird, you have loop_over_background_for_closure_relation = yes and  scf_potential = axion or axionquad but no scf, there must be a problem in your ini file!");
           pba->Omega0_axion = pvecback_integration[pba->index_bi_rho_scf]/pba->H0/pba->H0;
           // printf("pba->Omega0_axion %e Omega0_axion_used %e pba->precision_loop_over_background %e\n", pba->Omega0_axion,Omega0_axion_used,pba->precision_loop_over_background);
           if(pba->has_lambda == _TRUE_){
             // printf(" original Omega_Lambda %e \n",pba->Omega0_lambda);
             pba->Omega0_lambda-=pba->Omega0_axion;//we remove the axion contribution that we had "forgotten"
             pba->Omega0_lambda+=Omega0_axion_used;//initially, this is 0. As the code shoots it will be updated
             if(pba->background_verbose>0)printf(" adjusted Omega_Lambda to incorporate the axion contribution; new Omega_Lambda = %e  \n",pba->Omega0_lambda);
             if(pba->background_verbose>=10)printf("how far? new %e old %e rel. diff. %e \n",pba->Omega0_axion, Omega0_axion_used,(pba->Omega0_axion-Omega0_axion_used)/pba->Omega0_axion);

           }else if(pba->has_fld==_TRUE_){
             //if pba->has_lambda == _FALSE_ and pba->has_fld==_TRUE_ it means we are using pba->Omega0_fld to enforce the closure equation.
             pba->Omega0_fld -=pba->Omega0_axion;
             pba->Omega0_fld +=Omega0_axion_used;
             if(pba->background_verbose>0)printf(" adjusted Omega0_fld to incorporate the axion contribution; new Omega0_fld = %e  \n",pba->Omega0_fld);

           }
           //VP: test that the budget equation is satisfied or loop.
           if(fabs(pba->Omega0_axion-Omega0_axion_used)/pba->Omega0_axion<pba->precision_loop_over_background){
             //default is 1e-3
             is_axion_converged = _TRUE_;
           }
           else{
             Omega0_axion_used = pba->Omega0_axion;
             free(pvecback_integration);
             free(pba->loga_table);
             free(used_in_output);
            }
         }
       }else{
         //no axion or no loop required so we ignore the loop.
         is_axion_converged = _TRUE_;
       }
       }else{
         //no axion or no loop required so we ignore the loop.
         is_axion_converged = _TRUE_;
       }
  }
  /** - recover some quantities today */
  /* -> age in Gyears */
  pba->age = pvecback_integration[pba->index_bi_time]/_Gyr_over_Mpc_;
  /* -> conformal age in Mpc */
  pba->conformal_age = pvecback_integration[pba->index_bi_tau];
  /* -> contribution of decaying dark matter and dark radiation to the critical density today: */
  if (pba->has_dcdm == _TRUE_) {
    pba->Omega0_dcdm = pvecback_integration[pba->index_bi_rho_dcdm]/pba->H0/pba->H0;
  }




  if (pba->has_dr == _TRUE_){
    pba->Omega0_dr = pvecback_integration[pba->index_bi_rho_dr]/pba->H0/pba->H0;
  }
  /* -> scale-invariant growth rate today */
  D_today = pvecback_integration[pba->index_bi_D];
  if(pba->has_scf == _TRUE_){
    pba->f_ede = 0.0;
  }
  /** - In a loop over lines, fill rest of background table for
      quantities that depend on numbers like "conformal_age" or
      "D_today" that were calculated just before */
  for (index_loga=0; index_loga < pba->bt_size; index_loga++) {

    pba->background_table[index_loga*pba->bg_size+pba->index_bg_D]*= 1./D_today;

    conformal_distance = pba->conformal_age - pba->tau_table[index_loga];
    pba->background_table[index_loga*pba->bg_size+pba->index_bg_conf_distance] = conformal_distance;

    if (pba->sgnK == 0) { comoving_radius = conformal_distance; }
    else if (pba->sgnK == 1) { comoving_radius = sin(sqrt(pba->K)*conformal_distance)/sqrt(pba->K); }
    else if (pba->sgnK == -1) { comoving_radius = sinh(sqrt(-pba->K)*conformal_distance)/sqrt(-pba->K); }


    if(pba->scf_potential == axion || pba->scf_potential == phi_2n){
     /* Scalar field critical redshift and fractional energy density at z_c calculations */
     z_c_new = pba->z_table[index_loga];
     f_ede_new = pba->background_table[index_loga*pba->bg_size+pba->index_bg_Omega_scf];
     // printf("f_ede_new %e old fede %e z_c_new %e\n", f_ede_new,pba->f_ede,z_c_new);
     if(f_ede_new > pba->f_ede){//there's a small problem when axion behaves like DM
       pba->log10_z_c = log10(z_c_new);
       // pba->axion_ac = 1/z_c_new-1;
       pba->f_ede = f_ede_new;
       pba->phi_scf_c = pba->background_table[index_loga*pba->bg_size+pba->index_bg_phi_scf];
       // printf("z %e pba->f_ede %e\n", pba->z_table[i],pba->f_ede);
     }else{
       if(f_ede_new > pba->f_ede && pba->m_scf*pba->H0/pba->background_table[index_loga*pba->bg_size+pba->index_bg_H] <= pba->threshold_scf_fluid_m_over_H){
         pba->f_ede = f_ede_new;
         pba->phi_scf_c = pba->background_table[index_loga*pba->bg_size+pba->index_bg_phi_scf];
         pba->log10_z_c = log10(z_c_new);

       }
     }


    }

    /* EDE pheno_axion fluid calculations to determine f_ede_peak */
    if( pba->has_fld && pba->fluid_equation_of_state == EDE){
      if(pba->ede_parametrization == pheno_axion || pba->ede_parametrization == pheno_ADE ){
          z_peak_new = pba->z_table[index_loga];
          f_ede_new = pba->background_table[index_loga*pba->bg_size+pba->index_bg_Omega_fld];
          if(f_ede_new > pba->f_ede_peak){
            pba->a_peak = 1./(1+z_peak_new);
            pba->f_ede_peak = f_ede_new;
            if(pba->background_verbose>8) printf("f_ede_peak = %.2e \t>= %.2e = f_ede_now\n", pba->f_ede_peak, f_ede_new);
          }
          if(pba->background_verbose>2)printf(" -> early dark energy parameters z_peak_ede = %e\tf_ede(z_peak) = %.3e \n", 1/pba->a_peak-1,pba->f_ede_peak);
      }
    }


  // if(pba->log10_axion_ac == -30 && pba->has_scf == _TRUE_ && pba->scf_potential == axion){
  //   pba->log10_axion_ac = -1*pba->log10_z_c;
  //   pba->a_c = pow(10,pba->log10_axion_ac);
  //   printf("pba->log10_axion_ac %e w_scf %e\n", pba->log10_axion_ac,pba->w_scf);
  // }

    pba->background_table[index_loga*pba->bg_size+pba->index_bg_ang_distance] = comoving_radius/(1.+pba->z_table[index_loga]);
    pba->background_table[index_loga*pba->bg_size+pba->index_bg_lum_distance] = comoving_radius*(1.+pba->z_table[index_loga]);
  }

  /** - fill tables of second derivatives (in view of spline interpolation) */
  class_call(array_spline_table_lines(pba->z_table,
                                      pba->bt_size,
                                      pba->tau_table,
                                      1,
                                      pba->d2tau_dz2_table,
                                      _SPLINE_EST_DERIV_,
                                      pba->error_message),
             pba->error_message,
             pba->error_message);

  class_call(array_spline_table_lines(pba->tau_table,
                                      pba->bt_size,
                                      pba->z_table,
                                      1,
                                      pba->d2z_dtau2_table,
                                      _SPLINE_EST_DERIV_,
                                      pba->error_message),
             pba->error_message,
             pba->error_message);

  class_call(array_spline_table_lines(pba->loga_table,
                                      pba->bt_size,
                                      pba->background_table,
                                      pba->bg_size,
                                      pba->d2background_dloga2_table,
                                      _SPLINE_EST_DERIV_,
                                      pba->error_message),
             pba->error_message,
             pba->error_message);

  /** - compute remaining "related parameters" */

  /**  - so-called "effective neutrino number", computed at earliest
       time in interpolation table. This should be seen as a
       definition: Neff is the equivalent number of
       instantaneously-decoupled neutrinos accounting for the
       radiation density, beyond photons */

  pba->Neff = (pba->background_table[pba->index_bg_Omega_r]
               *pba->background_table[pba->index_bg_rho_crit]
               -pba->background_table[pba->index_bg_rho_g])
    /(7./8.*pow(4./11.,4./3.)*pba->background_table[pba->index_bg_rho_g]);

  /** - send information to standard output */
  if (pba->background_verbose > 0) {
    printf(" -> age = %f Gyr\n",pba->age);
    printf(" -> conformal age = %f Mpc\n",pba->conformal_age);
    printf(" -> H0 = %f km/s/Mpc\n",pba->H0/(1.e3 / _c_));
    printf(" -> N_eff = %g (summed over all species that are non-relativistic at early times) \n",pba->Neff);
  }

  if (pba->background_verbose > 2) {
    if ((pba->has_dcdm == _TRUE_)&&(pba->has_dr == _TRUE_)) {
      printf("    Decaying Cold Dark Matter details: (DCDM --> DR)\n");
      printf("     -> Omega0_dcdm = %f\n",pba->Omega0_dcdm);
      printf("     -> Omega0_dr = %f\n",pba->Omega0_dr);
      printf("     -> Omega0_dr+Omega0_dcdm = %f, input value = %f\n",
             pba->Omega0_dr+pba->Omega0_dcdm,pba->Omega0_dcdmdr);
      printf("     -> Omega_ini_dcdm/Omega_b = %f\n",pba->Omega_ini_dcdm/pba->Omega0_b);
    }
    if (pba->has_scf == _TRUE_) {
      printf("    Scalar field details:\n");
      printf("     -> Omega_scf = %g, wished %g\n",
      pba->background_table[(pba->bt_size-1)*pba->bg_size+pba->index_bg_rho_scf]/pba->background_table[(pba->bt_size-1)*pba->bg_size+pba->index_bg_rho_crit], pba->Omega0_scf);

      if(pba->scf_potential == axionquad){
      printf("Additional scf parameters used: \n");
      // printf("m_a = %g eV\n",(pba->scf_parameters[0]*pba->H0/1.5638e29));
      printf("m_a = %g eV\n",(pba->scf_parameters[0]));
      printf("H_0 = %g eV\n",pba->H0/_eV_over_Mpc_);
      if (pba->has_cdm == _TRUE_) printf("     -> scf fraction of cdm today = %g \n", (pba->background_table[(pba->bt_size-1)*pba->bg_size+pba->index_bg_rho_scf]) / (pba->background_table[(pba->bt_size-1)*pba->bg_size+pba->index_bg_rho_scf] + pba->background_table[(pba->bt_size-1)*pba->bg_size+pba->index_bg_rho_cdm]) );
      // printf("     -> for reference, rho_crit today = %g \n",pba->background_table[(pba->bt_size-1)*pba->bg_size+pba->index_bg_rho_crit]);

      }
      if(pba->scf_potential == axion){
      printf("Additional scf parameters used: \n");
      printf("n = %e m_a = %e eV, f_a/mpl = %e\n",pba->n_axion,(pba->m_scf*pba->H0/1.5638e29),pba->f_axion);
      if (pba->theta_axion == 0.0)
      {
        pba->theta_axion = pba->phi_ini_scf/pba->f_axion;
      }
      
      printf("     -> theta_ini = %e \t phi_ini = %e \n",pba->theta_axion , pba->phi_ini_scf);
      printf("     -> Exact log10(z_c) = %e \t f_ede = %e log10 f_ede = %e\n", pba->log10_z_c, pba->f_ede, log10(pba->f_ede));
      if(pba->log10_axion_ac > -30)printf("     -> approx log10(z_c) = %e pba->log10_axion_ac %e\n", log10(1/pow(10,pba->log10_axion_ac)-1),pba->log10_axion_ac);
      printf("     -> phi(z_c) = %e \n", pba->phi_scf_c);
      }
      if(pba->scf_potential ==phi_2n){
        printf("     -> approximate log10(z_c) = %e \t f_ede = %e\n", log10(1/pow(10,pba->log10_axion_ac)-1), pow(10,pba->log10_fraction_axion_ac));
        printf("     -> Exact log10(z_c) = %e \t f_ede = %e log10 f_ede = %e\n", pba->log10_z_c, pba->f_ede, log10(pba->f_ede));
        printf("     -> V0 = %e \t phi_i = %e => m_fld = %e pba->H0 %e\n", pba->V0_phi2n, pba->phi_ini_scf,pow(pow(2,pba->n_axion)*pba->V0_phi2n,0.5)/pba->H0,pba->H0);
      }

      if (pba->has_lambda == _TRUE_) {
        printf("     -> Omega_Lambda = %g, wished %g\n",
               pba->background_table[(pba->bt_size-1)*pba->bg_size+pba->index_bg_rho_lambda]/pba->background_table[(pba->bt_size-1)*pba->bg_size+pba->index_bg_rho_crit], pba->Omega0_lambda);
      }
      if(pba->scf_potential==pol_times_exp || pba->scf_potential==double_exp )
      {
        printf("     -> parameters: [lambda, alpha, A, B] = \n");
        printf("                    [");
        for (index_scf=0; index_scf<pba->scf_parameters_size-1; index_scf++) {
          printf("%.3f, ",pba->scf_parameters[index_scf]);
        }
        printf("%.3f]\n",pba->scf_parameters[pba->scf_parameters_size-1]);
      }

    }
  }

  /**  - store information in the background structure */
  pba->Omega0_m = pba->background_table[(pba->bt_size-1)*pba->bg_size+pba->index_bg_Omega_m];
  pba->Omega0_r = pba->background_table[(pba->bt_size-1)*pba->bg_size+pba->index_bg_Omega_r];
  pba->Omega0_de = 1. - (pba->Omega0_m + pba->Omega0_r + pba->Omega0_k);

  /* Compute the density fraction of non-free-streaming matter (in the minimal LambdaCDM model, this would be just Omega_b + Omega_cdm). This definition takes into account interating, decaying and warm dark matter, but it would need to be refined if some part of the matter component was modelled by the fluid (fld) or the scalar field (scf). */
  pba->Omega0_nfsm =  pba->Omega0_b;
  if (pba->has_cdm == _TRUE_)
    pba->Omega0_nfsm += pba->Omega0_cdm;
  if (pba->has_idm == _TRUE_)
    pba->Omega0_nfsm += pba->Omega0_idm;
  if (pba->has_dcdm == _TRUE_)
    pba->Omega0_nfsm += pba->Omega0_dcdm;
  for (n_ncdm=0;n_ncdm<pba->N_ncdm; n_ncdm++) {
    /* here we define non-free-streaming matter as: any non-relatistic species with a dimensionless ratio m/T bigger than a threshold ppr->M_nfsm_threshold; if this threshold is of the order of 10^4, this corresponds to the condition "becoming non-relativistic during radiation domination". Beware: this definition won't work in the case in which the user passes a customised p.s.d. for ncdm, such that M_ncdm is not defined.  */
    if (pba->M_ncdm[n_ncdm] > ppr->M_nfsm_threshold) {
      pba->Omega0_nfsm += pba->Omega0_ncdm[n_ncdm];
    }
  }

  free(pvecback);
  free(pvecback_integration);

  pba->scf_kg_eq = _TRUE_; // COpertchange
  free(used_in_output);

  return _SUCCESS_;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x89f8, %rsp           # imm = 0x89F8
movq %rdi, 0x89e8(%rsp)
movq %rsi, 0x89e0(%rsp)
xorps %xmm0, %xmm0
movsd %xmm0, 0x89b8(%rsp)
xorps %xmm0, %xmm0
movsd %xmm0, 0x8998(%rsp)
movw $0x0, 0x8966(%rsp)
xorps %xmm0, %xmm0
movsd %xmm0, 0x8958(%rsp)
leaq -0x96532(%rip), %rax    # 0xf540
movq %rax, 0x8948(%rsp)
movq 0x89e0(%rsp), %rax
movq %rax, 0x89d0(%rsp)
movq 0x89e0(%rsp), %rax
movslq 0x43c(%rax), %rdi
shlq $0x3, %rdi
callq 0x8460
movq %rax, 0x89c0(%rsp)
cmpq $0x0, 0x89c0(%rsp)
jne 0xa5b34
movq 0x89e0(%rsp), %rax
movslq 0x43c(%rax), %rax
shlq $0x3, %rax
movl %eax, 0x8918(%rsp)
leaq 0x8110(%rsp), %rdi
movl 0x8918(%rsp), %ecx
leaq 0x12c51f(%rip), %rsi    # 0x1d2004
leaq 0x15378b(%rip), %rdx    # 0x1f9277
movb $0x0, %al
callq 0x5b9c0
movq 0x89e0(%rsp), %rdi
addq $0xd1c, %rdi            # imm = 0xD1C
leaq 0x8110(%rsp), %r8
leaq 0x12c523(%rip), %rsi    # 0x1d2034
leaq 0x14a39a(%rip), %rdx    # 0x1efeb2
movl $0x8ee, %ecx            # imm = 0x8EE
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x89f4(%rsp)
jmp 0xa8037
movq 0x89c0(%rsp), %rax
movq %rax, 0x89d8(%rsp)
xorps %xmm0, %xmm0
movsd %xmm0, 0x8938(%rsp)
movq 0x89e8(%rsp), %rax
movl 0x8(%rax), %ecx
movq 0x89e0(%rsp), %rax
movl %ecx, 0x440(%rax)
movq 0x89e0(%rsp), %rax
movslq 0x440(%rax), %rdi
shlq $0x3, %rdi
callq 0x8460
movq %rax, %rcx
movq 0x89e0(%rsp), %rax
movq %rcx, 0x450(%rax)
movq 0x89e0(%rsp), %rax
cmpq $0x0, 0x450(%rax)
jne 0xa5c24
movq 0x89e0(%rsp), %rax
movslq 0x440(%rax), %rax
shlq $0x3, %rax
movl %eax, 0x810c(%rsp)
leaq 0x7900(%rsp), %rdi
movl 0x810c(%rsp), %ecx
leaq 0x12c42f(%rip), %rsi    # 0x1d2004
leaq 0x14a2e7(%rip), %rdx    # 0x1efec3
movb $0x0, %al
callq 0x5b9c0
movq 0x89e0(%rsp), %rdi
addq $0xd1c, %rdi            # imm = 0xD1C
leaq 0x7900(%rsp), %r8
leaq 0x12c433(%rip), %rsi    # 0x1d2034
leaq 0x14a2aa(%rip), %rdx    # 0x1efeb2
movl $0x8f8, %ecx            # imm = 0x8F8
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x89f4(%rsp)
jmp 0xa8037
movq 0x89e0(%rsp), %rax
movslq 0x440(%rax), %rdi
shlq $0x3, %rdi
callq 0x8460
movq %rax, %rcx
movq 0x89e0(%rsp), %rax
movq %rcx, 0x458(%rax)
movq 0x89e0(%rsp), %rax
cmpq $0x0, 0x458(%rax)
jne 0xa5cdf
movq 0x89e0(%rsp), %rax
movslq 0x440(%rax), %rax
shlq $0x3, %rax
movl %eax, 0x78fc(%rsp)
leaq 0x70f0(%rsp), %rdi
movl 0x78fc(%rsp), %ecx
leaq 0x12c374(%rip), %rsi    # 0x1d2004
leaq 0x14a23b(%rip), %rdx    # 0x1efed2
movb $0x0, %al
callq 0x5b9c0
movq 0x89e0(%rsp), %rdi
addq $0xd1c, %rdi            # imm = 0xD1C
leaq 0x70f0(%rsp), %r8
leaq 0x12c378(%rip), %rsi    # 0x1d2034
leaq 0x14a1ef(%rip), %rdx    # 0x1efeb2
movl $0x8f9, %ecx            # imm = 0x8F9
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x89f4(%rsp)
jmp 0xa8037
movq 0x89e0(%rsp), %rax
movslq 0x440(%rax), %rdi
shlq $0x3, %rdi
callq 0x8460
movq %rax, %rcx
movq 0x89e0(%rsp), %rax
movq %rcx, 0x468(%rax)
movq 0x89e0(%rsp), %rax
cmpq $0x0, 0x468(%rax)
jne 0xa5d9a
movq 0x89e0(%rsp), %rax
movslq 0x440(%rax), %rax
shlq $0x3, %rax
movl %eax, 0x70ec(%rsp)
leaq 0x68e0(%rsp), %rdi
movl 0x70ec(%rsp), %ecx
leaq 0x12c2b9(%rip), %rsi    # 0x1d2004
leaq 0x14a18d(%rip), %rdx    # 0x1efedf
movb $0x0, %al
callq 0x5b9c0
movq 0x89e0(%rsp), %rdi
addq $0xd1c, %rdi            # imm = 0xD1C
leaq 0x68e0(%rsp), %r8
leaq 0x12c2bd(%rip), %rsi    # 0x1d2034
leaq 0x14a134(%rip), %rdx    # 0x1efeb2
movl $0x8fb, %ecx            # imm = 0x8FB
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x89f4(%rsp)
jmp 0xa8037
movq 0x89e0(%rsp), %rax
movslq 0x440(%rax), %rdi
shlq $0x3, %rdi
callq 0x8460
movq %rax, %rcx
movq 0x89e0(%rsp), %rax
movq %rcx, 0x470(%rax)
movq 0x89e0(%rsp), %rax
cmpq $0x0, 0x470(%rax)
jne 0xa5e55
movq 0x89e0(%rsp), %rax
movslq 0x440(%rax), %rax
shlq $0x3, %rax
movl %eax, 0x68dc(%rsp)
leaq 0x60d0(%rsp), %rdi
movl 0x68dc(%rsp), %ecx
leaq 0x12c1fe(%rip), %rsi    # 0x1d2004
leaq 0x14a0e7(%rip), %rdx    # 0x1efef4
movb $0x0, %al
callq 0x5b9c0
movq 0x89e0(%rsp), %rdi
addq $0xd1c, %rdi            # imm = 0xD1C
leaq 0x60d0(%rsp), %r8
leaq 0x12c202(%rip), %rsi    # 0x1d2034
leaq 0x14a079(%rip), %rdx    # 0x1efeb2
movl $0x8fc, %ecx            # imm = 0x8FC
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x89f4(%rsp)
jmp 0xa8037
movq 0x89e0(%rsp), %rax
movl 0x440(%rax), %eax
movq 0x89e0(%rsp), %rcx
imull 0x43c(%rcx), %eax
movslq %eax, %rdi
shlq $0x3, %rdi
callq 0x8460
movq %rax, %rcx
movq 0x89e0(%rsp), %rax
movq %rcx, 0x460(%rax)
movq 0x89e0(%rsp), %rax
cmpq $0x0, 0x460(%rax)
jne 0xa5f35
movq 0x89e0(%rsp), %rax
movl 0x440(%rax), %eax
movq 0x89e0(%rsp), %rcx
imull 0x43c(%rcx), %eax
cltq
shlq $0x3, %rax
movl %eax, 0x60cc(%rsp)
leaq 0x58c0(%rsp), %rdi
movl 0x60cc(%rsp), %ecx
leaq 0x12c11e(%rip), %rsi    # 0x1d2004
leaq 0x14a01c(%rip), %rdx    # 0x1eff09
movb $0x0, %al
callq 0x5b9c0
movq 0x89e0(%rsp), %rdi
addq $0xd1c, %rdi            # imm = 0xD1C
leaq 0x58c0(%rsp), %r8
leaq 0x12c122(%rip), %rsi    # 0x1d2034
leaq 0x149f99(%rip), %rdx    # 0x1efeb2
movl $0x8fe, %ecx            # imm = 0x8FE
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x89f4(%rsp)
jmp 0xa8037
movq 0x89e0(%rsp), %rax
movl 0x440(%rax), %eax
movq 0x89e0(%rsp), %rcx
imull 0x43c(%rcx), %eax
movslq %eax, %rdi
shlq $0x3, %rdi
callq 0x8460
movq %rax, %rcx
movq 0x89e0(%rsp), %rax
movq %rcx, 0x478(%rax)
movq 0x89e0(%rsp), %rax
cmpq $0x0, 0x478(%rax)
jne 0xa6015
movq 0x89e0(%rsp), %rax
movl 0x440(%rax), %eax
movq 0x89e0(%rsp), %rcx
imull 0x43c(%rcx), %eax
cltq
shlq $0x3, %rax
movl %eax, 0x58bc(%rsp)
leaq 0x50b0(%rsp), %rdi
movl 0x58bc(%rsp), %ecx
leaq 0x12c03e(%rip), %rsi    # 0x1d2004
leaq 0x149f52(%rip), %rdx    # 0x1eff1f
movb $0x0, %al
callq 0x5b9c0
movq 0x89e0(%rsp), %rdi
addq $0xd1c, %rdi            # imm = 0xD1C
leaq 0x50b0(%rsp), %r8
leaq 0x12c042(%rip), %rsi    # 0x1d2034
leaq 0x149eb9(%rip), %rdx    # 0x1efeb2
movl $0x8ff, %ecx            # imm = 0x8FF
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x89f4(%rsp)
jmp 0xa8037
movq 0x89e8(%rsp), %rax
movl 0xc(%rax), %eax
movl %eax, 0x7c(%rsp)
testl %eax, %eax
je 0xa6035
jmp 0xa602a
movl 0x7c(%rsp), %eax
subl $0x1, %eax
je 0xa606f
jmp 0xa60a9
leaq -0x9757c(%rip), %rax    # 0xeac0
movq %rax, 0x8948(%rsp)
movq 0x89e0(%rsp), %rax
movswl 0xd1a(%rax), %eax
cmpl $0x1, %eax
jle 0xa606d
leaq 0x1591ab(%rip), %rdi    # 0x1ff20a
leaq 0x149ed8(%rip), %rsi    # 0x1eff3e
movb $0x0, %al
callq 0x8030
jmp 0xa60a9
leaq -0x96b36(%rip), %rax    # 0xf540
movq %rax, 0x8948(%rsp)
movq 0x89e0(%rsp), %rax
movswl 0xd1a(%rax), %eax
cmpl $0x1, %eax
jle 0xa60a7
leaq 0x159171(%rip), %rdi    # 0x1ff20a
leaq 0x149eba(%rip), %rsi    # 0x1eff5a
movb $0x0, %al
callq 0x8030
jmp 0xa60a9
movq 0x89e0(%rsp), %rax
movsd 0x128(%rax), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0xa60c6
jp 0xa60c6
jmp 0xa60df
movq 0x89e0(%rsp), %rax
movsd 0x128(%rax), %xmm0
movsd %xmm0, 0x8958(%rsp)
jmp 0xa60e1
movswl 0x8966(%rsp), %eax
cmpl $0x0, %eax
jne 0xa68ff
movq 0x89e0(%rsp), %rax
movslq 0x4b0(%rax), %rdi
shlq $0x3, %rdi
callq 0x8460
movq %rax, 0x89c8(%rsp)
cmpq $0x0, 0x89c8(%rsp)
jne 0xa619c
movq 0x89e0(%rsp), %rax
movslq 0x4b0(%rax), %rax
shlq $0x3, %rax
movl %eax, 0x50ac(%rsp)
leaq 0x48a0(%rsp), %rdi
movl 0x50ac(%rsp), %ecx
leaq 0x12beb7(%rip), %rsi    # 0x1d2004
leaq 0x149e25(%rip), %rdx    # 0x1eff79
movb $0x0, %al
callq 0x5b9c0
movq 0x89e0(%rsp), %rdi
addq $0xd1c, %rdi            # imm = 0xD1C
leaq 0x48a0(%rsp), %r8
leaq 0x12bebb(%rip), %rsi    # 0x1d2034
leaq 0x149d32(%rip), %rdx    # 0x1efeb2
movl $0x91c, %ecx            # imm = 0x91C
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x89f4(%rsp)
jmp 0xa8037
movq 0x89e8(%rsp), %rdi
movq 0x89e0(%rsp), %rsi
movq 0x89c0(%rsp), %rdx
movq 0x89c8(%rsp), %rcx
leaq 0x8940(%rsp), %r8
callq 0xac2d0
cmpl $0x1, %eax
jne 0xa623b
leaq 0x40a0(%rsp), %rdi
movq 0x89e0(%rsp), %rcx
addq $0xd1c, %rcx            # imm = 0xD1C
leaq 0x12c1ec(%rip), %rsi    # 0x1d23d8
leaq 0x149d9b(%rip), %rdx    # 0x1eff8e
movb $0x0, %al
callq 0x5b9c0
movq 0x89e0(%rsp), %rdi
addq $0xd1c, %rdi            # imm = 0xD1C
leaq 0x40a0(%rsp), %r8
leaq 0x12be1c(%rip), %rsi    # 0x1d2034
leaq 0x149c93(%rip), %rdx    # 0x1efeb2
movl $0x921, %ecx            # imm = 0x921
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x89f4(%rsp)
jmp 0xa8037
movq 0x89e0(%rsp), %rax
movslq 0x440(%rax), %rdi
shlq $0x3, %rdi
callq 0x8460
movq %rax, %rcx
movq 0x89e0(%rsp), %rax
movq %rcx, 0x448(%rax)
movq 0x89e0(%rsp), %rax
cmpq $0x0, 0x448(%rax)
jne 0xa62f6
movq 0x89e0(%rsp), %rax
movslq 0x440(%rax), %rax
shlq $0x3, %rax
movl %eax, 0x409c(%rsp)
leaq 0x3890(%rsp), %rdi
movl 0x409c(%rsp), %ecx
leaq 0x12bd5d(%rip), %rsi    # 0x1d2004
leaq 0x149d31(%rip), %rdx    # 0x1effdf
movb $0x0, %al
callq 0x5b9c0
movq 0x89e0(%rsp), %rdi
addq $0xd1c, %rdi            # imm = 0xD1C
leaq 0x3890(%rsp), %r8
leaq 0x12bd61(%rip), %rsi    # 0x1d2034
leaq 0x149bd8(%rip), %rdx    # 0x1efeb2
movl $0x923, %ecx            # imm = 0x923
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x89f4(%rsp)
jmp 0xa8037
movq 0x89e0(%rsp), %rax
movslq 0x440(%rax), %rdi
shlq $0x2, %rdi
callq 0x8460
movq %rax, 0x8920(%rsp)
cmpq $0x0, 0x8920(%rsp)
jne 0xa63a0
movq 0x89e0(%rsp), %rax
movslq 0x440(%rax), %rax
shlq $0x2, %rax
movl %eax, 0x388c(%rsp)
leaq 0x3080(%rsp), %rdi
movl 0x388c(%rsp), %ecx
leaq 0x12bcb3(%rip), %rsi    # 0x1d2004
leaq 0x14d57d(%rip), %rdx    # 0x1f38d5
movb $0x0, %al
callq 0x5b9c0
movq 0x89e0(%rsp), %rdi
addq $0xd1c, %rdi            # imm = 0xD1C
leaq 0x3080(%rsp), %r8
leaq 0x12bcb7(%rip), %rsi    # 0x1d2034
leaq 0x149b2e(%rip), %rdx    # 0x1efeb2
movl $0x924, %ecx            # imm = 0x924
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x89f4(%rsp)
jmp 0xa8037
movl $0x0, 0x892c(%rsp)
movl 0x892c(%rsp), %eax
movq 0x89e0(%rsp), %rcx
cmpl 0x440(%rcx), %eax
jge 0xa6454
movsd 0x8940(%rsp), %xmm0
cvtsi2sdl 0x892c(%rsp), %xmm1
movsd 0x8938(%rsp), %xmm2
subsd 0x8940(%rsp), %xmm2
mulsd %xmm2, %xmm1
movq 0x89e0(%rsp), %rax
movl 0x440(%rax), %eax
subl $0x1, %eax
cvtsi2sd %eax, %xmm2
divsd %xmm2, %xmm1
addsd %xmm1, %xmm0
movq 0x89e0(%rsp), %rax
movq 0x448(%rax), %rax
movslq 0x892c(%rsp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movq 0x8920(%rsp), %rax
movslq 0x892c(%rsp), %rcx
movl $0x1, (%rax,%rcx,4)
movl 0x892c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x892c(%rsp)
jmp 0xa63ab
movq 0x8948(%rsp), %rax
movsd 0x8940(%rsp), %xmm0
movsd 0x8938(%rsp), %xmm1
movq 0x89c8(%rsp), %rsi
movq 0x8920(%rsp), %rdx
movq 0x89e0(%rsp), %rcx
movl 0x4b0(%rcx), %ecx
movq 0x89e8(%rsp), %rdi
movsd 0x10(%rdi), %xmm2
movq 0x89e8(%rsp), %rdi
movsd 0xa28(%rdi), %xmm3
movq 0x89e8(%rsp), %rdi
movsd 0x18(%rdi), %xmm4
movq 0x89e0(%rsp), %rdi
movq 0x448(%rdi), %r14
movq 0x89e0(%rsp), %rdi
movl 0x440(%rdi), %ebx
movq 0x89e0(%rsp), %r10
addq $0xd1c, %r10            # imm = 0xD1C
leaq 0x71a7(%rip), %rdi      # 0xad690
leaq 0x89d0(%rsp), %r8
leaq 0x7d38(%rip), %r9       # 0xae230
leaq 0x7d61(%rip), %r11      # 0xae260
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 0xa6590
leaq 0x2880(%rsp), %rdi
movq 0x89e0(%rsp), %rcx
addq $0xd1c, %rcx            # imm = 0xD1C
leaq 0x12be97(%rip), %rsi    # 0x1d23d8
leaq 0x149aa7(%rip), %rdx    # 0x1effef
movb $0x0, %al
callq 0x5b9c0
movq 0x89e0(%rsp), %rdi
addq $0xd1c, %rdi            # imm = 0xD1C
leaq 0x2880(%rsp), %r8
leaq 0x12bac7(%rip), %rsi    # 0x1d2034
leaq 0x14993e(%rip), %rdx    # 0x1efeb2
movl $0x93f, %ecx            # imm = 0x93F
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x89f4(%rsp)
jmp 0xa8037
movq 0x89e0(%rsp), %rax
movswl 0x23a(%rax), %eax
cmpl $0x1, %eax
jne 0xa68f0
movq 0x89e0(%rsp), %rax
cmpl $0x2, 0x160(%rax)
je 0xa65ce
movq 0x89e0(%rsp), %rax
cmpl $0x4, 0x160(%rax)
jne 0xa68e4
movq 0x89e0(%rsp), %rax
movsd 0x128(%rax), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jbe 0xa65f6
movw $0x1, 0x8966(%rsp)
jmp 0xa68e2
movq 0x89e0(%rsp), %rax
movswl 0x4bc(%rax), %eax
cmpl $0x0, %eax
jne 0xa6686
leaq 0x2080(%rsp), %rdi
leaq 0x149b1b(%rip), %rsi    # 0x1f0134
movb $0x0, %al
callq 0x5b9c0
leaq 0x1880(%rsp), %rdi
leaq 0x2080(%rsp), %rcx
leaq 0x12ba4b(%rip), %rsi    # 0x1d2082
leaq 0x149b99(%rip), %rdx    # 0x1f01d7
movb $0x0, %al
callq 0x5b9c0
movq 0x89e0(%rsp), %rdi
addq $0xd1c, %rdi            # imm = 0xD1C
leaq 0x1880(%rsp), %r8
leaq 0x12b9d1(%rip), %rsi    # 0x1d2034
leaq 0x149848(%rip), %rdx    # 0x1efeb2
movl $0x94a, %ecx            # imm = 0x94A
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x89f4(%rsp)
jmp 0xa8037
movq 0x89c8(%rsp), %rax
movq 0x89e0(%rsp), %rcx
movslq 0x48c(%rcx), %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x89e0(%rsp), %rax
divsd (%rax), %xmm0
movq 0x89e0(%rsp), %rax
divsd (%rax), %xmm0
movq 0x89e0(%rsp), %rax
movsd %xmm0, 0x1e0(%rax)
movq 0x89e0(%rsp), %rax
movswl 0x4c0(%rax), %eax
cmpl $0x1, %eax
jne 0xa67bb
movq 0x89e0(%rsp), %rax
movsd 0x1e0(%rax), %xmm1
movq 0x89e0(%rsp), %rax
movsd 0x30(%rax), %xmm0
subsd %xmm1, %xmm0
movsd %xmm0, 0x30(%rax)
movsd 0x8958(%rsp), %xmm0
movq 0x89e0(%rsp), %rax
addsd 0x30(%rax), %xmm0
movsd %xmm0, 0x30(%rax)
movq 0x89e0(%rsp), %rax
movswl 0xd1a(%rax), %eax
cmpl $0x0, %eax
jle 0xa6752
movq 0x89e0(%rsp), %rax
movsd 0x30(%rax), %xmm0
leaq 0x149aa4(%rip), %rdi    # 0x1f01ef
movb $0x1, %al
callq 0x8030
movq 0x89e0(%rsp), %rax
movswl 0xd1a(%rax), %eax
cmpl $0xa, %eax
jl 0xa67b6
movq 0x89e0(%rsp), %rax
movsd 0x1e0(%rax), %xmm0
movsd 0x8958(%rsp), %xmm1
movq 0x89e0(%rsp), %rax
movsd 0x1e0(%rax), %xmm2
subsd 0x8958(%rsp), %xmm2
movq 0x89e0(%rsp), %rax
divsd 0x1e0(%rax), %xmm2
leaq 0x149a97(%rip), %rdi    # 0x1f0246
movb $0x3, %al
callq 0x8030
jmp 0xa6843
movq 0x89e0(%rsp), %rax
movswl 0x4c2(%rax), %eax
cmpl $0x1, %eax
jne 0xa6841
movq 0x89e0(%rsp), %rax
movsd 0x1e0(%rax), %xmm1
movq 0x89e0(%rsp), %rax
movsd 0x38(%rax), %xmm0
subsd %xmm1, %xmm0
movsd %xmm0, 0x38(%rax)
movsd 0x8958(%rsp), %xmm0
movq 0x89e0(%rsp), %rax
addsd 0x38(%rax), %xmm0
movsd %xmm0, 0x38(%rax)
movq 0x89e0(%rsp), %rax
movswl 0xd1a(%rax), %eax
cmpl $0x0, %eax
jle 0xa683f
movq 0x89e0(%rsp), %rax
movsd 0x38(%rax), %xmm0
leaq 0x149a35(%rip), %rdi    # 0x1f026d
movb $0x1, %al
callq 0x8030
jmp 0xa6841
jmp 0xa6843
movq 0x89e0(%rsp), %rax
movsd 0x1e0(%rax), %xmm1
subsd 0x8958(%rsp), %xmm1
movaps 0x12b9cd(%rip), %xmm0   # 0x1d2230
pand %xmm0, %xmm1
movq 0x89e0(%rsp), %rax
divsd 0x1e0(%rax), %xmm1
movq 0x89e0(%rsp), %rax
movsd 0x240(%rax), %xmm0
ucomisd %xmm1, %xmm0
jbe 0xa6899
movw $0x1, 0x8966(%rsp)
jmp 0xa68e0
movq 0x89e0(%rsp), %rax
movsd 0x1e0(%rax), %xmm0
movsd %xmm0, 0x8958(%rsp)
movq 0x89c8(%rsp), %rdi
callq 0x8420
movq 0x89e0(%rsp), %rax
movq 0x448(%rax), %rdi
callq 0x8420
movq 0x8920(%rsp), %rdi
callq 0x8420
jmp 0xa68e2
jmp 0xa68ee
movw $0x1, 0x8966(%rsp)
jmp 0xa68fa
movw $0x1, 0x8966(%rsp)
jmp 0xa60e1
movq 0x89c8(%rsp), %rax
movq 0x89e0(%rsp), %rcx
movslq 0x498(%rcx), %rcx
movsd (%rax,%rcx,8), %xmm0
movsd 0x147e1d(%rip), %xmm1   # 0x1ee740
divsd %xmm1, %xmm0
movq 0x89e0(%rsp), %rax
movsd %xmm0, 0x308(%rax)
movq 0x89c8(%rsp), %rax
movq 0x89e0(%rsp), %rcx
movslq 0x4a0(%rcx), %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x89e0(%rsp), %rax
movsd %xmm0, 0x310(%rax)
movq 0x89e0(%rsp), %rax
movswl 0x4b8(%rax), %eax
cmpl $0x1, %eax
jne 0xa69bb
movq 0x89c8(%rsp), %rax
movq 0x89e0(%rsp), %rcx
movslq 0x480(%rcx), %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x89e0(%rsp), %rax
divsd (%rax), %xmm0
movq 0x89e0(%rsp), %rax
divsd (%rax), %xmm0
movq 0x89e0(%rsp), %rax
movsd %xmm0, 0x330(%rax)
movq 0x89e0(%rsp), %rax
movswl 0x4ba(%rax), %eax
cmpl $0x1, %eax
jne 0xa6a13
movq 0x89c8(%rsp), %rax
movq 0x89e0(%rsp), %rcx
movslq 0x484(%rcx), %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x89e0(%rsp), %rax
divsd (%rax), %xmm0
movq 0x89e0(%rsp), %rax
divsd (%rax), %xmm0
movq 0x89e0(%rsp), %rax
movsd %xmm0, 0x338(%rax)
movq 0x89c8(%rsp), %rax
movq 0x89e0(%rsp), %rcx
movslq 0x4a4(%rcx), %rcx
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, 0x8930(%rsp)
movq 0x89e0(%rsp), %rax
movswl 0x4bc(%rax), %eax
cmpl $0x1, %eax
jne 0xa6a5f
movq 0x89e0(%rsp), %rax
xorps %xmm0, %xmm0
movsd %xmm0, 0x200(%rax)
movl $0x0, 0x892c(%rsp)
movl 0x892c(%rsp), %eax
movq 0x89e0(%rsp), %rcx
cmpl 0x440(%rcx), %eax
jge 0xa7164
movsd 0x12b7bb(%rip), %xmm0   # 0x1d2248
divsd 0x8930(%rsp), %xmm0
movq 0x89e0(%rsp), %rax
movq 0x460(%rax), %rax
movl 0x892c(%rsp), %ecx
movq 0x89e0(%rsp), %rdx
imull 0x43c(%rdx), %ecx
movq 0x89e0(%rsp), %rdx
addl 0x424(%rdx), %ecx
movslq %ecx, %rcx
mulsd (%rax,%rcx,8), %xmm0
movsd %xmm0, (%rax,%rcx,8)
movq 0x89e0(%rsp), %rax
movsd 0x310(%rax), %xmm0
movq 0x89e0(%rsp), %rax
movq 0x450(%rax), %rax
movslq 0x892c(%rsp), %rcx
subsd (%rax,%rcx,8), %xmm0
movsd %xmm0, 0x8950(%rsp)
movsd 0x8950(%rsp), %xmm0
movq 0x89e0(%rsp), %rax
movq 0x460(%rax), %rax
movl 0x892c(%rsp), %ecx
movq 0x89e0(%rsp), %rdx
imull 0x43c(%rdx), %ecx
movq 0x89e0(%rsp), %rdx
addl 0x410(%rdx), %ecx
movslq %ecx, %rcx
movsd %xmm0, (%rax,%rcx,8)
movq 0x89e0(%rsp), %rax
cmpl $0x0, 0x320(%rax)
jne 0xa6b77
movsd 0x8950(%rsp), %xmm0
movsd %xmm0, 0x89b8(%rsp)
jmp 0xa6c7c
movq 0x89e0(%rsp), %rax
cmpl $0x1, 0x320(%rax)
jne 0xa6be1
movq 0x89e0(%rsp), %rax
movsd 0x318(%rax), %xmm0
callq 0x82e0
mulsd 0x8950(%rsp), %xmm0
callq 0x80a0
movsd %xmm0, 0x70(%rsp)
movq 0x89e0(%rsp), %rax
movsd 0x318(%rax), %xmm0
callq 0x82e0
movaps %xmm0, %xmm1
movsd 0x70(%rsp), %xmm0
divsd %xmm1, %xmm0
movsd %xmm0, 0x89b8(%rsp)
jmp 0xa6c7a
movq 0x89e0(%rsp), %rax
cmpl $-0x1, 0x320(%rax)
jne 0xa6c78
movq 0x89e0(%rsp), %rax
movsd 0x318(%rax), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
callq 0x82e0
mulsd 0x8950(%rsp), %xmm0
callq 0x8390
movsd %xmm0, 0x68(%rsp)
movq 0x89e0(%rsp), %rax
movsd 0x318(%rax), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
callq 0x82e0
movaps %xmm0, %xmm1
movsd 0x68(%rsp), %xmm0
divsd %xmm1, %xmm0
movsd %xmm0, 0x89b8(%rsp)
jmp 0xa6c7a
jmp 0xa6c7c
movq 0x89e0(%rsp), %rax
cmpl $0x2, 0x160(%rax)
je 0xa6ca2
movq 0x89e0(%rsp), %rax
cmpl $0x3, 0x160(%rax)
jne 0xa6ec7
movq 0x89e0(%rsp), %rax
movq 0x458(%rax), %rax
movslq 0x892c(%rsp), %rcx
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, 0x89b0(%rsp)
movq 0x89e0(%rsp), %rax
movq 0x460(%rax), %rax
movl 0x892c(%rsp), %ecx
movq 0x89e0(%rsp), %rdx
imull 0x43c(%rdx), %ecx
movq 0x89e0(%rsp), %rdx
addl 0x3d4(%rdx), %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, 0x89a8(%rsp)
movsd 0x89a8(%rsp), %xmm0
movq 0x89e0(%rsp), %rax
ucomisd 0x200(%rax), %xmm0
jbe 0xa6db1
movsd 0x89b0(%rsp), %xmm0
callq 0x81e0
movq 0x89e0(%rsp), %rax
movsd %xmm0, 0x1f0(%rax)
movsd 0x89a8(%rsp), %xmm0
movq 0x89e0(%rsp), %rax
movsd %xmm0, 0x200(%rax)
movq 0x89e0(%rsp), %rax
movq 0x460(%rax), %rax
movl 0x892c(%rsp), %ecx
movq 0x89e0(%rsp), %rdx
imull 0x43c(%rdx), %ecx
movq 0x89e0(%rsp), %rdx
addl 0x3bc(%rdx), %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x89e0(%rsp), %rax
movsd %xmm0, 0x208(%rax)
jmp 0xa6ec5
movsd 0x89a8(%rsp), %xmm0
movq 0x89e0(%rsp), %rax
ucomisd 0x200(%rax), %xmm0
jbe 0xa6ec3
movq 0x89e0(%rsp), %rax
movsd 0x188(%rax), %xmm1
movq 0x89e0(%rsp), %rax
mulsd (%rax), %xmm1
movq 0x89e0(%rsp), %rax
movq 0x460(%rax), %rax
movl 0x892c(%rsp), %ecx
movq 0x89e0(%rsp), %rdx
imull 0x43c(%rdx), %ecx
movq 0x89e0(%rsp), %rdx
addl 0x384(%rdx), %ecx
movslq %ecx, %rcx
divsd (%rax,%rcx,8), %xmm1
movq 0x89e0(%rsp), %rax
movsd 0x138(%rax), %xmm0
ucomisd %xmm1, %xmm0
jb 0xa6ec3
movsd 0x89a8(%rsp), %xmm0
movq 0x89e0(%rsp), %rax
movsd %xmm0, 0x200(%rax)
movq 0x89e0(%rsp), %rax
movq 0x460(%rax), %rax
movl 0x892c(%rsp), %ecx
movq 0x89e0(%rsp), %rdx
imull 0x43c(%rdx), %ecx
movq 0x89e0(%rsp), %rdx
addl 0x3bc(%rdx), %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x89e0(%rsp), %rax
movsd %xmm0, 0x208(%rax)
movsd 0x89b0(%rsp), %xmm0
callq 0x81e0
movq 0x89e0(%rsp), %rax
movsd %xmm0, 0x1f0(%rax)
jmp 0xa6ec5
jmp 0xa6ec7
movq 0x89e0(%rsp), %rax
movswl 0x4c2(%rax), %eax
cmpl $0x0, %eax
je 0xa7076
movq 0x89e0(%rsp), %rax
cmpl $0x1, 0x40(%rax)
jne 0xa7076
movq 0x89e0(%rsp), %rax
cmpl $0x1, 0x44(%rax)
je 0xa6f11
movq 0x89e0(%rsp), %rax
cmpl $0x2, 0x44(%rax)
jne 0xa7074
movq 0x89e0(%rsp), %rax
movq 0x458(%rax), %rax
movslq 0x892c(%rsp), %rcx
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, 0x8990(%rsp)
movq 0x89e0(%rsp), %rax
movq 0x460(%rax), %rax
movl 0x892c(%rsp), %ecx
movq 0x89e0(%rsp), %rdx
imull 0x43c(%rdx), %ecx
movq 0x89e0(%rsp), %rdx
addl 0x3a8(%rdx), %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, 0x89a8(%rsp)
movsd 0x89a8(%rsp), %xmm0
movq 0x89e0(%rsp), %rax
ucomisd 0xc0(%rax), %xmm0
jbe 0xa701c
movsd 0x12b2a7(%rip), %xmm1   # 0x1d2248
addsd 0x8990(%rsp), %xmm1
movsd 0x12b296(%rip), %xmm0   # 0x1d2248
divsd %xmm1, %xmm0
movq 0x89e0(%rsp), %rax
movsd %xmm0, 0xb8(%rax)
movsd 0x89a8(%rsp), %xmm0
movq 0x89e0(%rsp), %rax
movsd %xmm0, 0xc0(%rax)
movq 0x89e0(%rsp), %rax
movswl 0xd1a(%rax), %eax
cmpl $0x8, %eax
jle 0xa701a
movq 0x89e0(%rsp), %rax
movsd 0xc0(%rax), %xmm0
movsd 0x89a8(%rsp), %xmm1
leaq 0x1492ad(%rip), %rdi    # 0x1f02c0
movb $0x2, %al
callq 0x8030
jmp 0xa701c
movq 0x89e0(%rsp), %rax
movswl 0xd1a(%rax), %eax
cmpl $0x2, %eax
jle 0xa7072
movq 0x89e0(%rsp), %rax
movsd 0x12b208(%rip), %xmm0   # 0x1d2248
divsd 0xb8(%rax), %xmm0
movsd 0x12b1f8(%rip), %xmm1   # 0x1d2248
subsd %xmm1, %xmm0
movq 0x89e0(%rsp), %rax
movsd 0xc0(%rax), %xmm1
leaq 0x14927d(%rip), %rdi    # 0x1f02e8
movb $0x2, %al
callq 0x8030
jmp 0xa7074
jmp 0xa7076
movsd 0x89b8(%rsp), %xmm0
movq 0x89e0(%rsp), %rax
movq 0x458(%rax), %rax
movslq 0x892c(%rsp), %rcx
movsd 0x12b1aa(%rip), %xmm1   # 0x1d2248
addsd (%rax,%rcx,8), %xmm1
divsd %xmm1, %xmm0
movq 0x89e0(%rsp), %rax
movq 0x460(%rax), %rax
movl 0x892c(%rsp), %ecx
movq 0x89e0(%rsp), %rdx
imull 0x43c(%rdx), %ecx
movq 0x89e0(%rsp), %rdx
addl 0x414(%rdx), %ecx
movslq %ecx, %rcx
movsd %xmm0, (%rax,%rcx,8)
movsd 0x89b8(%rsp), %xmm0
movq 0x89e0(%rsp), %rax
movq 0x458(%rax), %rax
movslq 0x892c(%rsp), %rcx
movsd 0x12b13e(%rip), %xmm1   # 0x1d2248
addsd (%rax,%rcx,8), %xmm1
mulsd %xmm1, %xmm0
movq 0x89e0(%rsp), %rax
movq 0x460(%rax), %rax
movl 0x892c(%rsp), %ecx
movq 0x89e0(%rsp), %rdx
imull 0x43c(%rdx), %ecx
movq 0x89e0(%rsp), %rdx
addl 0x418(%rdx), %ecx
movslq %ecx, %rcx
movsd %xmm0, (%rax,%rcx,8)
movl 0x892c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x892c(%rsp)
jmp 0xa6a6a
movq 0x89e0(%rsp), %rax
movq 0x458(%rax), %rdi
movq 0x89e0(%rsp), %rax
movl 0x440(%rax), %esi
movq 0x89e0(%rsp), %rax
movq 0x450(%rax), %rdx
movq 0x89e0(%rsp), %rax
movq 0x468(%rax), %r8
movq 0x89e0(%rsp), %rax
addq $0xd1c, %rax            # imm = 0xD1C
movl $0x1, %r9d
movl %r9d, %ecx
movq %rax, (%rsp)
callq 0x1cf90
cmpl $0x1, %eax
jne 0xa7231
leaq 0x1080(%rsp), %rdi
movq 0x89e0(%rsp), %rcx
addq $0xd1c, %rcx            # imm = 0xD1C
leaq 0x12b1f6(%rip), %rsi    # 0x1d23d8
leaq 0x149147(%rip), %rdx    # 0x1f0330
movb $0x0, %al
callq 0x5b9c0
movq 0x89e0(%rsp), %rdi
addq $0xd1c, %rdi            # imm = 0xD1C
leaq 0x1080(%rsp), %r8
leaq 0x12ae26(%rip), %rsi    # 0x1d2034
leaq 0x148c9d(%rip), %rdx    # 0x1efeb2
movl $0x9cd, %ecx            # imm = 0x9CD
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x89f4(%rsp)
jmp 0xa8037
movq 0x89e0(%rsp), %rax
movq 0x450(%rax), %rdi
movq 0x89e0(%rsp), %rax
movl 0x440(%rax), %esi
movq 0x89e0(%rsp), %rax
movq 0x458(%rax), %rdx
movq 0x89e0(%rsp), %rax
movq 0x470(%rax), %r8
movq 0x89e0(%rsp), %rax
addq $0xd1c, %rax            # imm = 0xD1C
movl $0x1, %r9d
movl %r9d, %ecx
movq %rax, (%rsp)
callq 0x1cf90
cmpl $0x1, %eax
jne 0xa72fe
leaq 0x880(%rsp), %rdi
movq 0x89e0(%rsp), %rcx
addq $0xd1c, %rcx            # imm = 0xD1C
leaq 0x12b129(%rip), %rsi    # 0x1d23d8
leaq 0x1490ef(%rip), %rdx    # 0x1f03a5
movb $0x0, %al
callq 0x5b9c0
movq 0x89e0(%rsp), %rdi
addq $0xd1c, %rdi            # imm = 0xD1C
leaq 0x880(%rsp), %r8
leaq 0x12ad59(%rip), %rsi    # 0x1d2034
leaq 0x148bd0(%rip), %rdx    # 0x1efeb2
movl $0x9d7, %ecx            # imm = 0x9D7
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x89f4(%rsp)
jmp 0xa8037
movq 0x89e0(%rsp), %rax
movq 0x448(%rax), %rdi
movq 0x89e0(%rsp), %rax
movl 0x440(%rax), %esi
movq 0x89e0(%rsp), %rax
movq 0x460(%rax), %rdx
movq 0x89e0(%rsp), %rax
movl 0x43c(%rax), %ecx
movq 0x89e0(%rsp), %rax
movq 0x478(%rax), %r8
movq 0x89e0(%rsp), %rax
addq $0xd1c, %rax            # imm = 0xD1C
movl $0x1, %r9d
movq %rax, (%rsp)
callq 0x1cf90
cmpl $0x1, %eax
jne 0xa73d6
leaq 0x80(%rsp), %rdi
movq 0x89e0(%rsp), %rcx
addq $0xd1c, %rcx            # imm = 0xD1C
leaq 0x12b051(%rip), %rsi    # 0x1d23d8
leaq 0x14908c(%rip), %rdx    # 0x1f041a
movb $0x0, %al
callq 0x5b9c0
movq 0x89e0(%rsp), %rdi
addq $0xd1c, %rdi            # imm = 0xD1C
leaq 0x80(%rsp), %r8
leaq 0x12ac81(%rip), %rsi    # 0x1d2034
leaq 0x148af8(%rip), %rdx    # 0x1efeb2
movl $0x9e1, %ecx            # imm = 0x9E1
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x89f4(%rsp)
jmp 0xa8037
movq 0x89e0(%rsp), %rax
movq 0x460(%rax), %rax
movq 0x89e0(%rsp), %rcx
movslq 0x404(%rcx), %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x89e0(%rsp), %rax
movq 0x460(%rax), %rax
movq 0x89e0(%rsp), %rcx
movslq 0x408(%rcx), %rcx
movsd (%rax,%rcx,8), %xmm2
movq 0x89e0(%rsp), %rax
movq 0x460(%rax), %rax
movq 0x89e0(%rsp), %rcx
movslq 0x38c(%rcx), %rcx
movsd (%rax,%rcx,8), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, 0x60(%rsp)
movsd 0x12f1e4(%rip), %xmm0   # 0x1d6650
movsd 0x12e09c(%rip), %xmm1   # 0x1d5510
callq 0x8610
movaps %xmm0, %xmm2
movsd 0x60(%rsp), %xmm0
movsd 0x12ae0e(%rip), %xmm1   # 0x1d2298
mulsd %xmm2, %xmm1
movq 0x89e0(%rsp), %rax
movq 0x460(%rax), %rax
movq 0x89e0(%rsp), %rcx
movslq 0x38c(%rcx), %rcx
mulsd (%rax,%rcx,8), %xmm1
divsd %xmm1, %xmm0
movq 0x89e0(%rsp), %rax
movsd %xmm0, 0x328(%rax)
movq 0x89e0(%rsp), %rax
movswl 0xd1a(%rax), %eax
cmpl $0x0, %eax
jle 0xa755d
movq 0x89e0(%rsp), %rax
movsd 0x308(%rax), %xmm0
leaq 0x148fba(%rip), %rdi    # 0x1f04ae
movb $0x1, %al
callq 0x8030
movq 0x89e0(%rsp), %rax
movsd 0x310(%rax), %xmm0
leaq 0x148fae(%rip), %rdi    # 0x1f04c0
movb $0x1, %al
callq 0x8030
movq 0x89e0(%rsp), %rax
movsd (%rax), %xmm0
movsd 0x12f2ab(%rip), %xmm1   # 0x1d67d8
divsd %xmm1, %xmm0
leaq 0x148fa4(%rip), %rdi    # 0x1f04dc
movb $0x1, %al
callq 0x8030
movq 0x89e0(%rsp), %rax
movsd 0x328(%rax), %xmm0
leaq 0x148f9c(%rip), %rdi    # 0x1f04f2
movb $0x1, %al
callq 0x8030
movq 0x89e0(%rsp), %rax
movswl 0xd1a(%rax), %eax
cmpl $0x2, %eax
jle 0xa7d94
movq 0x89e0(%rsp), %rax
movswl 0x4b8(%rax), %eax
cmpl $0x1, %eax
jne 0xa7658
movq 0x89e0(%rsp), %rax
movswl 0x4ba(%rax), %eax
cmpl $0x1, %eax
jne 0xa7658
leaq 0x148f9a(%rip), %rdi    # 0x1f0546
movb $0x0, %al
callq 0x8030
movq 0x89e0(%rsp), %rax
movsd 0x330(%rax), %xmm0
leaq 0x148fb2(%rip), %rdi    # 0x1f057c
movb $0x1, %al
callq 0x8030
movq 0x89e0(%rsp), %rax
movsd 0x338(%rax), %xmm0
leaq 0x148fae(%rip), %rdi    # 0x1f0596
movb $0x1, %al
callq 0x8030
movq 0x89e0(%rsp), %rax
movsd 0x338(%rax), %xmm0
movq 0x89e0(%rsp), %rax
addsd 0x330(%rax), %xmm0
movq 0x89e0(%rsp), %rax
movsd 0x108(%rax), %xmm1
leaq 0x148f88(%rip), %rdi    # 0x1f05ae
movb $0x2, %al
callq 0x8030
movq 0x89e0(%rsp), %rax
movsd 0x120(%rax), %xmm0
movq 0x89e0(%rsp), %rax
divsd 0x20(%rax), %xmm0
leaq 0x148f93(%rip), %rdi    # 0x1f05e4
movb $0x1, %al
callq 0x8030
movq 0x89e0(%rsp), %rax
movswl 0x4bc(%rax), %eax
cmpl $0x1, %eax
jne 0xa7d92
leaq 0x148f92(%rip), %rdi    # 0x1f0609
movb $0x0, %al
callq 0x8030
movq 0x89e0(%rsp), %rax
movq 0x460(%rax), %rax
movq 0x89e0(%rsp), %rcx
movl 0x440(%rcx), %ecx
subl $0x1, %ecx
movq 0x89e0(%rsp), %rdx
imull 0x43c(%rdx), %ecx
movq 0x89e0(%rsp), %rdx
addl 0x3d0(%rdx), %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x89e0(%rsp), %rax
movq 0x460(%rax), %rax
movq 0x89e0(%rsp), %rcx
movl 0x440(%rcx), %ecx
subl $0x1, %ecx
movq 0x89e0(%rsp), %rdx
imull 0x43c(%rdx), %ecx
movq 0x89e0(%rsp), %rdx
addl 0x408(%rdx), %ecx
movslq %ecx, %rcx
divsd (%rax,%rcx,8), %xmm0
movq 0x89e0(%rsp), %rax
movsd 0x128(%rax), %xmm1
leaq 0x148f05(%rip), %rdi    # 0x1f0624
movb $0x2, %al
callq 0x8030
movq 0x89e0(%rsp), %rax
cmpl $0x4, 0x160(%rax)
jne 0xa788b
leaq 0x148f05(%rip), %rdi    # 0x1f0647
movb $0x0, %al
callq 0x8030
movq 0x89e0(%rsp), %rax
movq 0x168(%rax), %rax
movsd (%rax), %xmm0
leaq 0x148f06(%rip), %rdi    # 0x1f0669
movb $0x1, %al
callq 0x8030
movq 0x89e0(%rsp), %rax
movsd (%rax), %xmm0
movsd 0x12ef32(%rip), %xmm1   # 0x1d66b0
divsd %xmm1, %xmm0
leaq 0x148eed(%rip), %rdi    # 0x1f0676
movb $0x1, %al
callq 0x8030
movq 0x89e0(%rsp), %rax
movswl 0x4b4(%rax), %eax
cmpl $0x1, %eax
jne 0xa7889
movq 0x89e0(%rsp), %rax
movq 0x460(%rax), %rax
movq 0x89e0(%rsp), %rcx
movl 0x440(%rcx), %ecx
subl $0x1, %ecx
movq 0x89e0(%rsp), %rdx
imull 0x43c(%rdx), %ecx
movq 0x89e0(%rsp), %rdx
addl 0x3d0(%rdx), %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x89e0(%rsp), %rax
movq 0x460(%rax), %rax
movq 0x89e0(%rsp), %rcx
movl 0x440(%rcx), %ecx
subl $0x1, %ecx
movq 0x89e0(%rsp), %rdx
imull 0x43c(%rdx), %ecx
movq 0x89e0(%rsp), %rdx
addl 0x3d0(%rdx), %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm1
movq 0x89e0(%rsp), %rax
movq 0x460(%rax), %rax
movq 0x89e0(%rsp), %rcx
movl 0x440(%rcx), %ecx
subl $0x1, %ecx
movq 0x89e0(%rsp), %rdx
imull 0x43c(%rdx), %ecx
movq 0x89e0(%rsp), %rdx
addl 0x394(%rdx), %ecx
movslq %ecx, %rcx
addsd (%rax,%rcx,8), %xmm1
divsd %xmm1, %xmm0
leaq 0x148e01(%rip), %rdi    # 0x1f0683
movb $0x1, %al
callq 0x8030
jmp 0xa788b
movq 0x89e0(%rsp), %rax
cmpl $0x2, 0x160(%rax)
jne 0xa7a72
leaq 0x148da0(%rip), %rdi    # 0x1f0647
movb $0x0, %al
callq 0x8030
movq 0x89e0(%rsp), %rax
movsd 0x210(%rax), %xmm0
movq 0x89e0(%rsp), %rax
movsd 0x188(%rax), %xmm1
movq 0x89e0(%rsp), %rax
mulsd (%rax), %xmm1
movsd 0x146e66(%rip), %xmm2   # 0x1ee748
divsd %xmm2, %xmm1
movq 0x89e0(%rsp), %rax
movsd 0x190(%rax), %xmm2
leaq 0x148daf(%rip), %rdi    # 0x1f06ac
movb $0x3, %al
callq 0x8030
movq 0x89e0(%rsp), %rax
movsd 0x178(%rax), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0xa794f
jp 0xa794f
movq 0x89e0(%rsp), %rax
movsd 0x150(%rax), %xmm0
movq 0x89e0(%rsp), %rax
divsd 0x190(%rax), %xmm0
movq 0x89e0(%rsp), %rax
movsd %xmm0, 0x178(%rax)
movq 0x89e0(%rsp), %rax
movsd 0x178(%rax), %xmm0
movq 0x89e0(%rsp), %rax
movsd 0x150(%rax), %xmm1
leaq 0x148d58(%rip), %rdi    # 0x1f06ce
movb $0x2, %al
callq 0x8030
movq 0x89e0(%rsp), %rax
movsd 0x1f0(%rax), %xmm0
movsd %xmm0, 0x58(%rsp)
movq 0x89e0(%rsp), %rax
movsd 0x200(%rax), %xmm0
movsd %xmm0, 0x50(%rsp)
movq 0x89e0(%rsp), %rax
movsd 0x200(%rax), %xmm0
callq 0x81e0
movsd 0x50(%rsp), %xmm1
movaps %xmm0, %xmm2
movsd 0x58(%rsp), %xmm0
leaq 0x148d22(%rip), %rdi    # 0x1f06f6
movb $0x3, %al
callq 0x8030
movq 0x89e0(%rsp), %rax
movsd 0x1b8(%rax), %xmm0
movsd 0x12eccd(%rip), %xmm1   # 0x1d66c0
ucomisd %xmm1, %xmm0
jbe 0xa7a54
movq 0x89e0(%rsp), %rax
movsd 0x1b8(%rax), %xmm1
movsd 0x12adcf(%rip), %xmm0   # 0x1d27e0
callq 0x8610
movaps %xmm0, %xmm1
movsd 0x12a827(%rip), %xmm0   # 0x1d2248
divsd %xmm1, %xmm0
movsd 0x12a81b(%rip), %xmm1   # 0x1d2248
subsd %xmm1, %xmm0
callq 0x81e0
movq 0x89e0(%rsp), %rax
movsd 0x1b8(%rax), %xmm1
leaq 0x148ce6(%rip), %rdi    # 0x1f0733
movb $0x2, %al
callq 0x8030
movq 0x89e0(%rsp), %rax
movsd 0x208(%rax), %xmm0
leaq 0x148cff(%rip), %rdi    # 0x1f076a
movb $0x1, %al
callq 0x8030
movq 0x89e0(%rsp), %rax
cmpl $0x3, 0x160(%rax)
jne 0xa7bf7
movq 0x89e0(%rsp), %rax
movsd 0x1b8(%rax), %xmm1
movsd 0x12ad41(%rip), %xmm0   # 0x1d27e0
callq 0x8610
movaps %xmm0, %xmm1
movsd 0x12a799(%rip), %xmm0   # 0x1d2248
divsd %xmm1, %xmm0
movsd 0x12a78d(%rip), %xmm1   # 0x1d2248
subsd %xmm1, %xmm0
callq 0x81e0
movsd %xmm0, 0x28(%rsp)
movq 0x89e0(%rsp), %rax
movsd 0x1d0(%rax), %xmm1
movsd 0x12acfe(%rip), %xmm0   # 0x1d27e0
callq 0x8610
movaps %xmm0, %xmm1
movsd 0x28(%rsp), %xmm0
leaq 0x148c8b(%rip), %rdi    # 0x1f0782
movb $0x2, %al
callq 0x8030
movq 0x89e0(%rsp), %rax
movsd 0x1f0(%rax), %xmm0
movsd %xmm0, 0x38(%rsp)
movq 0x89e0(%rsp), %rax
movsd 0x200(%rax), %xmm0
movsd %xmm0, 0x30(%rsp)
movq 0x89e0(%rsp), %rax
movsd 0x200(%rax), %xmm0
callq 0x81e0
movsd 0x30(%rsp), %xmm1
movaps %xmm0, %xmm2
movsd 0x38(%rsp), %xmm0
leaq 0x148ba1(%rip), %rdi    # 0x1f06f6
movb $0x3, %al
callq 0x8030
movq 0x89e0(%rsp), %rax
movsd 0x1c0(%rax), %xmm0
movsd %xmm0, 0x48(%rsp)
movq 0x89e0(%rsp), %rax
movsd 0x150(%rax), %xmm0
movsd %xmm0, 0x40(%rsp)
movq 0x89e0(%rsp), %rax
movsd 0x210(%rax), %xmm1
movsd 0x12b0e0(%rip), %xmm0   # 0x1d2c80
callq 0x8610
movq 0x89e0(%rsp), %rax
mulsd 0x1c0(%rax), %xmm0
movsd 0x12b0cb(%rip), %xmm1   # 0x1d2c88
callq 0x8610
movsd 0x40(%rsp), %xmm1
movaps %xmm0, %xmm2
movsd 0x48(%rsp), %xmm0
movq 0x89e0(%rsp), %rax
divsd (%rax), %xmm2
movq 0x89e0(%rsp), %rax
movsd (%rax), %xmm3
leaq 0x148bc4(%rip), %rdi    # 0x1f07b4
movb $0x4, %al
callq 0x8030
movq 0x89e0(%rsp), %rax
movswl 0x4c0(%rax), %eax
cmpl $0x1, %eax
jne 0xa7cb4
movq 0x89e0(%rsp), %rax
movq 0x460(%rax), %rax
movq 0x89e0(%rsp), %rcx
movl 0x440(%rcx), %ecx
subl $0x1, %ecx
movq 0x89e0(%rsp), %rdx
imull 0x43c(%rdx), %ecx
movq 0x89e0(%rsp), %rdx
addl 0x39c(%rdx), %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x89e0(%rsp), %rax
movq 0x460(%rax), %rax
movq 0x89e0(%rsp), %rcx
movl 0x440(%rcx), %ecx
subl $0x1, %ecx
movq 0x89e0(%rsp), %rdx
imull 0x43c(%rdx), %ecx
movq 0x89e0(%rsp), %rdx
addl 0x408(%rdx), %ecx
movslq %ecx, %rcx
divsd (%rax,%rcx,8), %xmm0
movq 0x89e0(%rsp), %rax
movsd 0x30(%rax), %xmm1
leaq 0x148b3e(%rip), %rdi    # 0x1f07eb
movb $0x2, %al
callq 0x8030
movq 0x89e0(%rsp), %rax
cmpl $0x0, 0x160(%rax)
je 0xa7cda
movq 0x89e0(%rsp), %rax
cmpl $0x1, 0x160(%rax)
jne 0xa7d90
leaq 0x148b30(%rip), %rdi    # 0x1f0811
movb $0x0, %al
callq 0x8030
leaq 0x148b50(%rip), %rdi    # 0x1f083f
movb $0x0, %al
callq 0x8030
movl $0x0, 0x8928(%rsp)
movl 0x8928(%rsp), %eax
movq 0x89e0(%rsp), %rcx
movl 0x170(%rcx), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
jge 0xa7d5a
movq 0x89e0(%rsp), %rax
movq 0x168(%rax), %rax
movslq 0x8928(%rsp), %rcx
movsd (%rax,%rcx,8), %xmm0
leaq 0x148b15(%rip), %rdi    # 0x1f0855
movb $0x1, %al
callq 0x8030
movl 0x8928(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x8928(%rsp)
jmp 0xa7d01
movq 0x89e0(%rsp), %rax
movq 0x168(%rax), %rax
movq 0x89e0(%rsp), %rcx
movl 0x170(%rcx), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
leaq 0x148ad3(%rip), %rdi    # 0x1f085c
movb $0x1, %al
callq 0x8030
jmp 0xa7d92
jmp 0xa7d94
movq 0x89e0(%rsp), %rax
movq 0x460(%rax), %rax
movq 0x89e0(%rsp), %rcx
movl 0x440(%rcx), %ecx
subl $0x1, %ecx
movq 0x89e0(%rsp), %rdx
imull 0x43c(%rdx), %ecx
movq 0x89e0(%rsp), %rdx
addl 0x40c(%rdx), %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x89e0(%rsp), %rax
movsd %xmm0, 0x340(%rax)
movq 0x89e0(%rsp), %rax
movq 0x460(%rax), %rax
movq 0x89e0(%rsp), %rcx
movl 0x440(%rcx), %ecx
subl $0x1, %ecx
movq 0x89e0(%rsp), %rdx
imull 0x43c(%rdx), %ecx
movq 0x89e0(%rsp), %rdx
addl 0x404(%rdx), %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x89e0(%rsp), %rax
movsd %xmm0, 0x348(%rax)
movq 0x89e0(%rsp), %rax
movsd 0x340(%rax), %xmm1
movq 0x89e0(%rsp), %rax
addsd 0x348(%rax), %xmm1
movq 0x89e0(%rsp), %rax
addsd 0x2d0(%rax), %xmm1
movsd 0x12a3d2(%rip), %xmm0   # 0x1d2248
subsd %xmm1, %xmm0
movq 0x89e0(%rsp), %rax
movsd %xmm0, 0x350(%rax)
movq 0x89e0(%rsp), %rax
movsd 0x20(%rax), %xmm0
movq 0x89e0(%rsp), %rax
movsd %xmm0, 0x358(%rax)
movq 0x89e0(%rsp), %rax
movswl 0x4b4(%rax), %eax
cmpl $0x1, %eax
jne 0xa7ee0
movq 0x89e0(%rsp), %rax
movsd 0x28(%rax), %xmm0
movq 0x89e0(%rsp), %rax
addsd 0x358(%rax), %xmm0
movsd %xmm0, 0x358(%rax)
movq 0x89e0(%rsp), %rax
movswl 0x4b6(%rax), %eax
cmpl $0x1, %eax
jne 0xa7f1c
movq 0x89e0(%rsp), %rax
movsd 0xf0(%rax), %xmm0
movq 0x89e0(%rsp), %rax
addsd 0x358(%rax), %xmm0
movsd %xmm0, 0x358(%rax)
movq 0x89e0(%rsp), %rax
movswl 0x4b8(%rax), %eax
cmpl $0x1, %eax
jne 0xa7f58
movq 0x89e0(%rsp), %rax
movsd 0x330(%rax), %xmm0
movq 0x89e0(%rsp), %rax
addsd 0x358(%rax), %xmm0
movsd %xmm0, 0x358(%rax)
movl $0x0, 0x891c(%rsp)
movl 0x891c(%rsp), %eax
movq 0x89e0(%rsp), %rcx
cmpl 0x248(%rcx), %eax
jge 0xa7ff4
movq 0x89e0(%rsp), %rax
movq 0x270(%rax), %rax
movslq 0x891c(%rsp), %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x89e8(%rsp), %rax
ucomisd 0x88(%rax), %xmm0
jbe 0xa7fdc
movq 0x89e0(%rsp), %rax
movq 0x280(%rax), %rax
movslq 0x891c(%rsp), %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x89e0(%rsp), %rax
addsd 0x358(%rax), %xmm0
movsd %xmm0, 0x358(%rax)
jmp 0xa7fde
movl 0x891c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x891c(%rsp)
jmp 0xa7f63
movq 0x89c0(%rsp), %rdi
callq 0x8420
movq 0x89c8(%rsp), %rdi
callq 0x8420
movq 0x89e0(%rsp), %rax
movw $0x1, 0x230(%rax)
movq 0x8920(%rsp), %rdi
callq 0x8420
movl $0x0, 0x89f4(%rsp)
movl 0x89f4(%rsp), %eax
addq $0x89f8, %rsp           # imm = 0x89F8
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
nopl (%rax)