// File: /workspace/github_c_makefile_star2_O0/lesgourg[P]class_public/build/../source/input.c
// Function: input_try_unknown_parameters
int input_try_unknown_parameters(double * unknown_parameter,
                                 int unknown_parameters_size,
                                 void * voidpfzw,
                                 double * output,
                                 ErrorMsg errmsg){
  /** Summary */

  /** Define local variables */
  struct precision pr;        /* for precision parameters */
  struct background ba;       /* for cosmological background */
  struct thermodynamics th;           /* for thermodynamics */
  struct perturbations pt;         /* for source functions */
  struct transfer tr;        /* for transfer functions */
  struct primordial pm;       /* for primordial spectra */
  struct harmonic hr;          /* for output spectra */
  struct fourier fo;        /* for non-linear spectra */
  struct lensing le;          /* for lensed spectra */
  struct distortions sd;      /* for spectral distortions */
  struct output op;           /* for output files */

  int i;
  double rho_dcdm_today, rho_dr_today;
  struct fzerofun_workspace * pfzw;
  int input_verbose;
  int flag;
  int param;
  short compute_sigma8 = _FALSE_;

  /* Assume for now shooting did not fail */
  ba.shooting_failed = _FALSE_;

  pfzw = (struct fzerofun_workspace *) voidpfzw;
  /** Read input parameters */
  // This needs to be done with enough accuracy. A standard double has a relative
  // precision of around 1e-16, so 1e-20 should be good enough for the shooting
  for (i=0; i < unknown_parameters_size; i++) {
    class_sprintf(pfzw->fc.value[pfzw->unknown_parameters_index[i]],"%.20e",unknown_parameter[i]);
  }

  class_call(input_read_precisions(&(pfzw->fc),&pr,&ba,&th,&pt,&tr,&pm,&hr,&fo,&le,&sd,&op,
                                   errmsg),
             errmsg,
             errmsg);

  class_call(input_read_parameters(&(pfzw->fc),&pr,&ba,&th,&pt,&tr,&pm,&hr,&fo,&le,&sd,&op,
                                   errmsg),
             errmsg,
             errmsg);

  class_call(parser_read_int(&(pfzw->fc),"input_verbose",&param,&flag,errmsg),
             errmsg,
             errmsg);

  if (flag == _TRUE_)
    input_verbose = param;
  else
    input_verbose = 0;

  /** Optimise flags for sigma8 calculation.*/
  for (i=0; i < unknown_parameters_size; i++) {
    if (pfzw->target_name[i] == sigma8) {
      compute_sigma8 = _TRUE_;
    }
    if (pfzw->target_name[i] == S8) {
      compute_sigma8 = _TRUE_;
    }
  }

  /* Sigma8 depends on linear P(k), so no need to run anything except linear P(k) during shooting */
  if (compute_sigma8 == _TRUE_) {
    /* In June 2020 the k_max_for_pk was increased for higher precision,
       and in February 2022 the value was converted into a set of two precision parameters */
    pt.k_max_for_pk=
      MIN(MAX(pr.k_max_for_pk_sigma8_min, pt.k_max_for_pk),
          pr.k_max_for_pk_sigma8_max);
    pt.has_pk_matter=_TRUE_;
    pt.has_perturbations = _TRUE_;
    pt.has_cl_cmb_temperature = _FALSE_;
    pt.has_cls = _FALSE_;
    pt.has_cl_cmb_polarization = _FALSE_;
    pt.has_cl_cmb_lensing_potential = _FALSE_;
    pt.has_cl_number_count = _FALSE_;
    pt.has_cl_lensing_potential=_FALSE_;
    pt.has_density_transfers=_FALSE_;
    pt.has_velocity_transfers=_FALSE_;
    fo.has_pk_eq=_FALSE_;
    fo.method=nl_none;
  }

  /** Shoot forward into class up to required stage */
  if (pfzw->required_computation_stage >= cs_background){
    if (input_verbose>2)
      printf("Stage 1: background\n");
    ba.background_verbose = 0;
    class_call_except(background_init(&pr,&ba), ba.error_message, errmsg, background_free_input(&ba);thermodynamics_free_input(&th);perturbations_free_input(&pt););
  }

  if (pfzw->required_computation_stage >= cs_thermodynamics){
    if (input_verbose>2)
      printf("Stage 2: thermodynamics\n");
    pr.thermo_Nz_lin = 10000;
    pr.thermo_Nz_log = 500;
    th.thermodynamics_verbose = 0;
    th.hyrec_verbose = 0;
    class_call_except(thermodynamics_init(&pr,&ba,&th), th.error_message, errmsg, background_free(&ba);thermodynamics_free_input(&th);perturbations_free_input(&pt););
  }

  if (pfzw->required_computation_stage >= cs_perturbations){
    if (input_verbose>2)
      printf("Stage 3: perturbations\n");
    pt.perturbations_verbose = 0;
    class_call_except(perturbations_init(&pr,&ba,&th,&pt), pt.error_message, errmsg, thermodynamics_free(&th);background_free(&ba);perturbations_free_input(&pt););
  }

  if (pfzw->required_computation_stage >= cs_primordial){
    if (input_verbose>2)
      printf("Stage 4: primordial\n");
    pm.primordial_verbose = 0;
    class_call_except(primordial_init(&pr,&pt,&pm), pm.error_message, errmsg, perturbations_free(&pt);thermodynamics_free(&th);background_free(&ba));
  }

  if (pfzw->required_computation_stage >= cs_nonlinear){
    if (input_verbose>2)
      printf("Stage 5: nonlinear\n");
    fo.fourier_verbose = 0;
    class_call_except(fourier_init(&pr,&ba,&th,&pt,&pm,&fo), fo.error_message, errmsg, primordial_free(&pm);perturbations_free(&pt);thermodynamics_free(&th);background_free(&ba));
  }

  if (pfzw->required_computation_stage >= cs_transfer){
    if (input_verbose>2)
      printf("Stage 6: transfer\n");
    tr.transfer_verbose = 0;
    class_call_except(transfer_init(&pr,&ba,&th,&pt,&fo,&tr), tr.error_message, errmsg, fourier_free(&fo);primordial_free(&pm);perturbations_free(&pt);thermodynamics_free(&th);background_free(&ba));
  }

  if (pfzw->required_computation_stage >= cs_spectra){
    if (input_verbose>2)
      printf("Stage 7: spectra\n");
    hr.harmonic_verbose = 0;
    class_call_except(harmonic_init(&pr,&ba,&pt,&pm,&fo,&tr,&hr),hr.error_message, errmsg, transfer_free(&tr);fourier_free(&fo);primordial_free(&pm);perturbations_free(&pt);thermodynamics_free(&th);background_free(&ba));
  }

  /** Get the corresponding shoot variable and put into output */
  for (i=0; i < pfzw->target_size; i++) {
    switch (pfzw->target_name[i]) {
    case theta_s:
    case theta_s_100:
      output[i] = 100.*th.rs_rec/th.ra_rec-pfzw->target_value[i];
      break;
    case Neff:
      output[i] = ba.Neff-pfzw->target_value[i];
      break;
    case Omega_dcdmdr:
      rho_dcdm_today = ba.background_table[(ba.bt_size-1)*ba.bg_size+ba.index_bg_rho_dcdm];
      if (ba.has_dr == _TRUE_)
        rho_dr_today = ba.background_table[(ba.bt_size-1)*ba.bg_size+ba.index_bg_rho_dr];
      else
        rho_dr_today = 0.;
      output[i] = (rho_dcdm_today+rho_dr_today)/(ba.H0*ba.H0)-pfzw->target_value[i];
      break;
    case omega_dcdmdr:
      rho_dcdm_today = ba.background_table[(ba.bt_size-1)*ba.bg_size+ba.index_bg_rho_dcdm];
      if (ba.has_dr == _TRUE_)
        rho_dr_today = ba.background_table[(ba.bt_size-1)*ba.bg_size+ba.index_bg_rho_dr];
      else
        rho_dr_today = 0.;
      output[i] = (rho_dcdm_today+rho_dr_today)/(ba.H0*ba.H0)-pfzw->target_value[i]/ba.h/ba.h;
      break;
    case Omega_scf:
      /** In case scalar field is used to fill, pba->Omega0_scf is not equal to pfzw->target_value[i].*/
      output[i] = ba.background_table[(ba.bt_size-1)*ba.bg_size+ba.index_bg_rho_scf]/(ba.H0*ba.H0)-ba.Omega0_scf;
      break;
    case Omega_ini_dcdm:
    case omega_ini_dcdm:
      rho_dcdm_today = ba.background_table[(ba.bt_size-1)*ba.bg_size+ba.index_bg_rho_dcdm];
      if (ba.has_dr == _TRUE_)
        rho_dr_today = ba.background_table[(ba.bt_size-1)*ba.bg_size+ba.index_bg_rho_dr];
      else
        rho_dr_today = 0.;
      output[i] = -(rho_dcdm_today+rho_dr_today)/(ba.H0*ba.H0)+ba.Omega0_dcdmdr;
      break;
    case sigma8:
      output[i] = fo.sigma8[fo.index_pk_m];
      break;
    case S8:
      output[i] = fo.sigma8[fo.index_pk_m]*sqrt(ba.Omega0_m/0.3);
      break;
    }
  }

  /** Free structures */
  if (pfzw->required_computation_stage >= cs_spectra){
    class_call(harmonic_free(&hr), hr.error_message, errmsg);
  }
  if (pfzw->required_computation_stage >= cs_transfer){
    class_call(transfer_free(&tr), tr.error_message, errmsg);
  }
  if (pfzw->required_computation_stage >= cs_nonlinear){
    class_call(fourier_free(&fo), fo.error_message, errmsg);
  }
  if (pfzw->required_computation_stage >= cs_primordial){
    class_call(primordial_free(&pm), pm.error_message, errmsg);
  }
  if (pfzw->required_computation_stage >= cs_perturbations){
    class_call(perturbations_free(&pt), pt.error_message, errmsg);
  }
  if (pfzw->required_computation_stage >= cs_thermodynamics){
    class_call(thermodynamics_free(&th), th.error_message, errmsg);
  }
  if (pfzw->required_computation_stage >= cs_background){
    class_call(background_free(&ba), ba.error_message, errmsg);
  }

  /** Set filecontent to unread */
  for (i=0; i<pfzw->fc.size; i++) {
    pfzw->fc.read[i] = _FALSE_;
  }

  /** Free pointers allocated on input if neccessary */
  if (pfzw->required_computation_stage < cs_perturbations) {
    /** Some pointers in ppt may not be allocated if has_perturbations is _FALSE_, but this is handled in perturbations_free_input as neccessary. */
    perturbations_free_input(&pt);
  }
  if (pfzw->required_computation_stage < cs_thermodynamics) {
    thermodynamics_free_input(&th);
  }
  if (pfzw->required_computation_stage < cs_background) {
    background_free_input(&ba);
  }
  return _SUCCESS_;

}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x19c88, %rsp          # imm = 0x19C88
movq %rdi, 0x19c78(%rsp)
movl %esi, 0x19c74(%rsp)
movq %rdx, 0x19c68(%rsp)
movq %rcx, 0x19c60(%rsp)
movq %r8, 0x19c58(%rsp)
movw $0x0, 0x886a(%rsp)
movw $0x0, 0x17a20(%rsp)
movq 0x19c68(%rsp), %rax
movq %rax, 0x8878(%rsp)
movl $0x0, 0x8894(%rsp)
movl 0x8894(%rsp), %eax
cmpl 0x19c74(%rsp), %eax
jge 0x6d92d
jmp 0x6d88a
movq 0x19c78(%rsp), %rax
movslq 0x8894(%rsp), %rcx
movsd (%rax,%rcx,8), %xmm0
xorl %eax, %eax
movl %eax, %esi
leaq 0x14baf1(%rip), %rdx    # 0x1b939b
movq %rsi, %rdi
movb $0x1, %al
callq 0x8540
movl %eax, 0x8864(%rsp)
movq 0x8878(%rsp), %rax
movq 0x20(%rax), %rdi
movq 0x8878(%rsp), %rax
movq (%rax), %rax
movslq 0x8894(%rsp), %rcx
movslq (%rax,%rcx,4), %rax
shlq $0xa, %rax
addq %rax, %rdi
movl 0x8864(%rsp), %eax
addl $0x1, %eax
movslq %eax, %rsi
movq 0x19c78(%rsp), %rax
movslq 0x8894(%rsp), %rcx
movsd (%rax,%rcx,8), %xmm0
leaq 0x14ba8d(%rip), %rdx    # 0x1b939b
movb $0x1, %al
callq 0x8540
jmp 0x6d917
movl 0x8894(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x8894(%rsp)
jmp 0x6d874
movq 0x8878(%rsp), %rdi
addq $0x8, %rdi
movq 0x19c58(%rsp), %rax
leaq 0x18a28(%rsp), %rsi
leaq 0x176a0(%rsp), %rdx
leaq 0x15e38(%rsp), %rcx
leaq 0xea40(%rsp), %r8
leaq 0xd8d0(%rsp), %r9
leaq 0xcda0(%rsp), %r12
leaq 0xc4b8(%rsp), %r15
leaq 0xbb50(%rsp), %r14
leaq 0xb2c0(%rsp), %rbx
leaq 0x94b8(%rsp), %r11
leaq 0x8898(%rsp), %r10
movq %r12, (%rsp)
movq %r15, 0x8(%rsp)
movq %r14, 0x10(%rsp)
movq %rbx, 0x18(%rsp)
movq %r11, 0x20(%rsp)
movq %r10, 0x28(%rsp)
movq %rax, 0x30(%rsp)
callq 0x5e490
cmpl $0x1, %eax
jne 0x6da24
leaq 0x8060(%rsp), %rdi
movq 0x19c58(%rsp), %rcx
leaq 0x1499fc(%rip), %rsi    # 0x1b73d8
leaq 0x14ecf5(%rip), %rdx    # 0x1bc6d8
movb $0x0, %al
callq 0x5b9c0
movq 0x19c58(%rsp), %rdi
leaq 0x8060(%rsp), %r8
leaq 0x149633(%rip), %rsi    # 0x1b7034
leaq 0x14ed8e(%rip), %rdx    # 0x1bc796
movl $0x543, %ecx            # imm = 0x543
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x19c84(%rsp)
jmp 0x6ed91
movq 0x8878(%rsp), %rdi
addq $0x8, %rdi
movq 0x19c58(%rsp), %rax
leaq 0x18a28(%rsp), %rsi
leaq 0x176a0(%rsp), %rdx
leaq 0x15e38(%rsp), %rcx
leaq 0xea40(%rsp), %r8
leaq 0xd8d0(%rsp), %r9
leaq 0xcda0(%rsp), %r12
leaq 0xc4b8(%rsp), %r15
leaq 0xbb50(%rsp), %r14
leaq 0xb2c0(%rsp), %rbx
leaq 0x94b8(%rsp), %r11
leaq 0x8898(%rsp), %r10
movq %r12, (%rsp)
movq %r15, 0x8(%rsp)
movq %r14, 0x10(%rsp)
movq %rbx, 0x18(%rsp)
movq %r11, 0x20(%rsp)
movq %r10, 0x28(%rsp)
movq %rax, 0x30(%rsp)
callq 0x6a490
cmpl $0x1, %eax
jne 0x6db1b
leaq 0x7860(%rsp), %rdi
movq 0x19c58(%rsp), %rcx
leaq 0x149905(%rip), %rsi    # 0x1b73d8
leaq 0x14ec65(%rip), %rdx    # 0x1bc73f
movb $0x0, %al
callq 0x5b9c0
movq 0x19c58(%rsp), %rdi
leaq 0x7860(%rsp), %r8
leaq 0x14953c(%rip), %rsi    # 0x1b7034
leaq 0x14ec97(%rip), %rdx    # 0x1bc796
movl $0x548, %ecx            # imm = 0x548
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x19c84(%rsp)
jmp 0x6ed91
movq 0x8878(%rsp), %rdi
addq $0x8, %rdi
movq 0x19c58(%rsp), %r8
leaq 0x14e206(%rip), %rsi    # 0x1bbd3c
leaq 0x886c(%rsp), %rdx
leaq 0x8870(%rsp), %rcx
callq 0x38300
cmpl $0x1, %eax
jne 0x6dbaf
leaq 0x7060(%rsp), %rdi
movq 0x19c58(%rsp), %rcx
leaq 0x149871(%rip), %rsi    # 0x1b73d8
leaq 0x14ec45(%rip), %rdx    # 0x1bc7b3
movb $0x0, %al
callq 0x5b9c0
movq 0x19c58(%rsp), %rdi
leaq 0x7060(%rsp), %r8
leaq 0x1494a8(%rip), %rsi    # 0x1b7034
leaq 0x14ec03(%rip), %rdx    # 0x1bc796
movl $0x54c, %ecx            # imm = 0x54C
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x19c84(%rsp)
jmp 0x6ed91
cmpl $0x1, 0x8870(%rsp)
jne 0x6dbc9
movl 0x886c(%rsp), %eax
movl %eax, 0x8874(%rsp)
jmp 0x6dbd4
movl $0x0, 0x8874(%rsp)
movl $0x0, 0x8894(%rsp)
movl 0x8894(%rsp), %eax
cmpl 0x19c74(%rsp), %eax
jge 0x6dc4c
movq 0x8878(%rsp), %rax
movq 0x30(%rax), %rax
movslq 0x8894(%rsp), %rcx
cmpl $0x8, (%rax,%rcx,4)
jne 0x6dc13
movw $0x1, 0x886a(%rsp)
movq 0x8878(%rsp), %rax
movq 0x30(%rax), %rax
movslq 0x8894(%rsp), %rcx
cmpl $0x9, (%rax,%rcx,4)
jne 0x6dc37
movw $0x1, 0x886a(%rsp)
jmp 0x6dc39
movl 0x8894(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x8894(%rsp)
jmp 0x6dbdf
movswl 0x886a(%rsp), %eax
cmpl $0x1, %eax
jne 0x6dd87
movsd 0x19268(%rsp), %xmm1
movsd 0xea90(%rsp), %xmm0
ucomisd %xmm1, %xmm0
jbe 0x6dc86
movsd 0xea90(%rsp), %xmm0
movsd %xmm0, 0x58(%rsp)
jmp 0x6dc95
movsd 0x19268(%rsp), %xmm0
movsd %xmm0, 0x58(%rsp)
movsd 0x58(%rsp), %xmm1
movsd 0x19270(%rsp), %xmm0
ucomisd %xmm1, %xmm0
jbe 0x6dcf0
movsd 0x19268(%rsp), %xmm1
movsd 0xea90(%rsp), %xmm0
ucomisd %xmm1, %xmm0
jbe 0x6dcd3
movsd 0xea90(%rsp), %xmm0
movsd %xmm0, 0x50(%rsp)
jmp 0x6dce2
movsd 0x19268(%rsp), %xmm0
movsd %xmm0, 0x50(%rsp)
movsd 0x50(%rsp), %xmm0
movsd %xmm0, 0x48(%rsp)
jmp 0x6dcff
movsd 0x19270(%rsp), %xmm0
movsd %xmm0, 0x48(%rsp)
movsd 0x48(%rsp), %xmm0
movsd %xmm0, 0xea90(%rsp)
movw $0x1, 0xea6a(%rsp)
movw $0x1, 0xea40(%rsp)
movw $0x0, 0xea60(%rsp)
movw $0x0, 0xea42(%rsp)
movw $0x0, 0xea62(%rsp)
movw $0x0, 0xea64(%rsp)
movw $0x0, 0xea68(%rsp)
movw $0x0, 0xea66(%rsp)
movw $0x0, 0xea6c(%rsp)
movw $0x0, 0xea6e(%rsp)
movw $0x0, 0xbb78(%rsp)
movl $0x0, 0xbb50(%rsp)
movq 0x8878(%rsp), %rax
cmpl $0x0, 0x44(%rax)
jb 0x6de68
cmpl $0x2, 0x8874(%rsp)
jle 0x6ddb1
leaq 0x14ea4a(%rip), %rdi    # 0x1bc7f4
movb $0x0, %al
callq 0x8030
movw $0x0, 0x18222(%rsp)
leaq 0x18a28(%rsp), %rdi
leaq 0x176a0(%rsp), %rsi
callq 0x964a0
cmpl $0x1, %eax
jne 0x6de66
leaq 0x6860(%rsp), %rdi
leaq 0x176a0(%rsp), %rcx
addq $0xb84, %rcx            # imm = 0xB84
leaq 0x1495e1(%rip), %rsi    # 0x1b73d8
leaq 0x14ea0b(%rip), %rdx    # 0x1bc809
movb $0x0, %al
callq 0x5b9c0
movq 0x19c58(%rsp), %rdi
leaq 0x6860(%rsp), %r8
leaq 0x149218(%rip), %rsi    # 0x1b7034
leaq 0x14e973(%rip), %rdx    # 0x1bc796
movl $0x577, %ecx            # imm = 0x577
movb $0x0, %al
callq 0x5b9c0
leaq 0x176a0(%rsp), %rdi
callq 0x9a280
leaq 0x15e38(%rsp), %rdi
callq 0xaa7b0
leaq 0xea40(%rsp), %rdi
callq 0xc0dc0
movl $0x1, 0x19c84(%rsp)
jmp 0x6ed91
jmp 0x6de68
movq 0x8878(%rsp), %rax
cmpl $0x1, 0x44(%rax)
jb 0x6df71
cmpl $0x2, 0x8874(%rsp)
jle 0x6de92
leaq 0x14e997(%rip), %rdi    # 0x1bc822
movb $0x0, %al
callq 0x8030
movl $0x2710, 0x18bd0(%rsp) # imm = 0x2710
movl $0x1f4, 0x18bd4(%rsp) # imm = 0x1F4
movw $0x0, 0x16e98(%rsp)
movw $0x0, 0x16e9a(%rsp)
leaq 0x18a28(%rsp), %rdi
leaq 0x176a0(%rsp), %rsi
leaq 0x15e38(%rsp), %rdx
callq 0xa2380
cmpl $0x1, %eax
jne 0x6df6f
leaq 0x6060(%rsp), %rdi
leaq 0x15e38(%rsp), %rcx
addq $0x1064, %rcx           # imm = 0x1064
leaq 0x1494d8(%rip), %rsi    # 0x1b73d8
leaq 0x14e934(%rip), %rdx    # 0x1bc83b
movb $0x0, %al
callq 0x5b9c0
movq 0x19c58(%rsp), %rdi
leaq 0x6060(%rsp), %r8
leaq 0x14910f(%rip), %rsi    # 0x1b7034
leaq 0x14e86a(%rip), %rdx    # 0x1bc796
movl $0x581, %ecx            # imm = 0x581
movb $0x0, %al
callq 0x5b9c0
leaq 0x176a0(%rsp), %rdi
callq 0x9a0d0
leaq 0x15e38(%rsp), %rdi
callq 0xaa7b0
leaq 0xea40(%rsp), %rdi
callq 0xc0dc0
movl $0x1, 0x19c84(%rsp)
jmp 0x6ed91
jmp 0x6df71
movq 0x8878(%rsp), %rax
cmpl $0x2, 0x44(%rax)
jb 0x6e062
cmpl $0x2, 0x8874(%rsp)
jle 0x6df9b
leaq 0x14e8c8(%rip), %rdi    # 0x1bc85c
movb $0x0, %al
callq 0x8030
movw $0x0, 0x15630(%rsp)
leaq 0x18a28(%rsp), %rdi
leaq 0x176a0(%rsp), %rsi
leaq 0x15e38(%rsp), %rdx
leaq 0xea40(%rsp), %rcx
callq 0xba1e0
cmpl $0x1, %eax
jne 0x6e060
leaq 0x5860(%rsp), %rdi
leaq 0xea40(%rsp), %rcx
addq $0x6bf2, %rcx           # imm = 0x6BF2
leaq 0x1493e7(%rip), %rsi    # 0x1b73d8
leaq 0x14e87c(%rip), %rdx    # 0x1bc874
movb $0x0, %al
callq 0x5b9c0
movq 0x19c58(%rsp), %rdi
leaq 0x5860(%rsp), %r8
leaq 0x14901e(%rip), %rsi    # 0x1b7034
leaq 0x14e779(%rip), %rdx    # 0x1bc796
movl $0x588, %ecx            # imm = 0x588
movb $0x0, %al
callq 0x5b9c0
leaq 0x15e38(%rsp), %rdi
callq 0xaa610
leaq 0x176a0(%rsp), %rdi
callq 0x9a0d0
leaq 0xea40(%rsp), %rdi
callq 0xc0dc0
movl $0x1, 0x19c84(%rsp)
jmp 0x6ed91
jmp 0x6e062
movq 0x8878(%rsp), %rax
cmpl $0x3, 0x44(%rax)
jb 0x6e14b
cmpl $0x2, 0x8874(%rsp)
jle 0x6e08c
leaq 0x14e813(%rip), %rdi    # 0x1bc898
movb $0x0, %al
callq 0x8030
movw $0x0, 0xd0c8(%rsp)
leaq 0x18a28(%rsp), %rdi
leaq 0xea40(%rsp), %rsi
leaq 0xcda0(%rsp), %rdx
callq 0xf73a0
cmpl $0x1, %eax
jne 0x6e149
leaq 0x5060(%rsp), %rdi
leaq 0xcda0(%rsp), %rcx
addq $0x32a, %rcx            # imm = 0x32A
leaq 0x1492fe(%rip), %rsi    # 0x1b73d8
leaq 0x14e7cc(%rip), %rdx    # 0x1bc8ad
movb $0x0, %al
callq 0x5b9c0
movq 0x19c58(%rsp), %rdi
leaq 0x5060(%rsp), %r8
leaq 0x148f35(%rip), %rsi    # 0x1b7034
leaq 0x14e690(%rip), %rdx    # 0x1bc796
movl $0x58f, %ecx            # imm = 0x58F
movb $0x0, %al
callq 0x5b9c0
leaq 0xea40(%rsp), %rdi
callq 0xc0e10
leaq 0x15e38(%rsp), %rdi
callq 0xaa610
leaq 0x176a0(%rsp), %rdi
callq 0x9a0d0
movl $0x1, 0x19c84(%rsp)
jmp 0x6ed91
jmp 0x6e14b
movq 0x8878(%rsp), %rax
cmpl $0x4, 0x44(%rax)
jb 0x6e259
cmpl $0x2, 0x8874(%rsp)
jle 0x6e175
leaq 0x14e75c(%rip), %rdi    # 0x1bc8ca
movb $0x0, %al
callq 0x8030
movw $0x0, 0xbcb0(%rsp)
leaq 0x18a28(%rsp), %rdi
leaq 0x176a0(%rsp), %rsi
leaq 0x15e38(%rsp), %rdx
leaq 0xea40(%rsp), %rcx
leaq 0xcda0(%rsp), %r8
leaq 0xbb50(%rsp), %r9
callq 0x10e4a0
cmpl $0x1, %eax
jne 0x6e257
leaq 0x4860(%rsp), %rdi
leaq 0xbb50(%rsp), %rcx
addq $0x162, %rcx            # imm = 0x162
leaq 0x1491fd(%rip), %rsi    # 0x1b73d8
leaq 0x14e6fc(%rip), %rdx    # 0x1bc8de
movb $0x0, %al
callq 0x5b9c0
movq 0x19c58(%rsp), %rdi
leaq 0x4860(%rsp), %r8
leaq 0x148e34(%rip), %rsi    # 0x1b7034
leaq 0x14e58f(%rip), %rdx    # 0x1bc796
movl $0x596, %ecx            # imm = 0x596
movb $0x0, %al
callq 0x5b9c0
leaq 0xcda0(%rsp), %rdi
callq 0xfb5c0
leaq 0xea40(%rsp), %rdi
callq 0xc0e10
leaq 0x15e38(%rsp), %rdi
callq 0xaa610
leaq 0x176a0(%rsp), %rdi
callq 0x9a0d0
movl $0x1, 0x19c84(%rsp)
jmp 0x6ed91
jmp 0x6e259
movq 0x8878(%rsp), %rax
cmpl $0x5, 0x44(%rax)
jb 0x6e374
cmpl $0x2, 0x8874(%rsp)
jle 0x6e283
leaq 0x14e688(%rip), %rdi    # 0x1bc904
movb $0x0, %al
callq 0x8030
movw $0x0, 0xe238(%rsp)
leaq 0x18a28(%rsp), %rdi
leaq 0x176a0(%rsp), %rsi
leaq 0x15e38(%rsp), %rdx
leaq 0xea40(%rsp), %rcx
leaq 0xbb50(%rsp), %r8
leaq 0xd8d0(%rsp), %r9
callq 0x114d00
cmpl $0x1, %eax
jne 0x6e372
leaq 0x4060(%rsp), %rdi
leaq 0xd8d0(%rsp), %rcx
addq $0x96a, %rcx            # imm = 0x96A
leaq 0x1490ef(%rip), %rsi    # 0x1b73d8
leaq 0x14e627(%rip), %rdx    # 0x1bc917
movb $0x0, %al
callq 0x5b9c0
movq 0x19c58(%rsp), %rdi
leaq 0x4060(%rsp), %r8
leaq 0x148d26(%rip), %rsi    # 0x1b7034
leaq 0x14e481(%rip), %rdx    # 0x1bc796
movl $0x59d, %ecx            # imm = 0x59D
movb $0x0, %al
callq 0x5b9c0
leaq 0xbb50(%rsp), %rdi
callq 0x113430
leaq 0xcda0(%rsp), %rdi
callq 0xfb5c0
leaq 0xea40(%rsp), %rdi
callq 0xc0e10
leaq 0x15e38(%rsp), %rdi
callq 0xaa610
leaq 0x176a0(%rsp), %rdi
callq 0x9a0d0
movl $0x1, 0x19c84(%rsp)
jmp 0x6ed91
jmp 0x6e374
movq 0x8878(%rsp), %rax
cmpl $0x6, 0x44(%rax)
jb 0x6e4a8
cmpl $0x2, 0x8874(%rsp)
jle 0x6e39e
leaq 0x14e5a7(%rip), %rdi    # 0x1bc93e
movb $0x0, %al
callq 0x8030
movw $0x0, 0xc598(%rsp)
leaq 0x18a28(%rsp), %rdi
leaq 0x176a0(%rsp), %rsi
leaq 0xea40(%rsp), %rdx
leaq 0xcda0(%rsp), %rcx
leaq 0xbb50(%rsp), %r8
leaq 0xd8d0(%rsp), %r9
leaq 0xc4b8(%rsp), %rax
movq %rax, (%rsp)
callq 0x132250
cmpl $0x1, %eax
jne 0x6e4a6
leaq 0x3860(%rsp), %rdi
leaq 0xc4b8(%rsp), %rcx
addq $0xe2, %rcx
leaq 0x148fc8(%rip), %rsi    # 0x1b73d8
leaq 0x14e539(%rip), %rdx    # 0x1bc950
movb $0x0, %al
callq 0x5b9c0
movq 0x19c58(%rsp), %rdi
leaq 0x3860(%rsp), %r8
leaq 0x148bff(%rip), %rsi    # 0x1b7034
leaq 0x14e35a(%rip), %rdx    # 0x1bc796
movl $0x5a4, %ecx            # imm = 0x5A4
movb $0x0, %al
callq 0x5b9c0
leaq 0xd8d0(%rsp), %rdi
callq 0x11c970
leaq 0xbb50(%rsp), %rdi
callq 0x113430
leaq 0xcda0(%rsp), %rdi
callq 0xfb5c0
leaq 0xea40(%rsp), %rdi
callq 0xc0e10
leaq 0x15e38(%rsp), %rdi
callq 0xaa610
leaq 0x176a0(%rsp), %rdi
callq 0x9a0d0
movl $0x1, 0x19c84(%rsp)
jmp 0x6ed91
jmp 0x6e4a8
movl $0x0, 0x8894(%rsp)
movl 0x8894(%rsp), %eax
movq 0x8878(%rsp), %rcx
cmpl 0x40(%rcx), %eax
jge 0x6e937
movq 0x8878(%rsp), %rax
movq 0x30(%rax), %rax
movslq 0x8894(%rsp), %rcx
movl (%rax,%rcx,4), %eax
movq %rax, 0x40(%rsp)
subq $0x9, %rax
ja 0x6e91f
movq 0x40(%rsp), %rax
leaq 0x14d303(%rip), %rcx    # 0x1bb800
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movsd 0x14974a(%rip), %xmm0   # 0x1b7c58
mulsd 0x16d78(%rsp), %xmm0
divsd 0x16d88(%rsp), %xmm0
movq 0x8878(%rsp), %rax
movq 0x38(%rax), %rax
movslq 0x8894(%rsp), %rcx
subsd (%rax,%rcx,8), %xmm0
movq 0x19c60(%rsp), %rax
movslq 0x8894(%rsp), %rcx
movsd %xmm0, (%rax,%rcx,8)
jmp 0x6e91f
movsd 0x17850(%rsp), %xmm0
movq 0x8878(%rsp), %rax
movq 0x38(%rax), %rax
movslq 0x8894(%rsp), %rcx
subsd (%rax,%rcx,8), %xmm0
movq 0x19c60(%rsp), %rax
movslq 0x8894(%rsp), %rcx
movsd %xmm0, (%rax,%rcx,8)
jmp 0x6e91f
movq 0x17970(%rsp), %rax
movl 0x17954(%rsp), %ecx
subl $0x1, %ecx
imull 0x17950(%rsp), %ecx
addl 0x178d8(%rsp), %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, 0x8888(%rsp)
movswl 0x179c6(%rsp), %eax
cmpl $0x1, %eax
jne 0x6e602
movq 0x17970(%rsp), %rax
movl 0x17954(%rsp), %ecx
subl $0x1, %ecx
imull 0x17950(%rsp), %ecx
addl 0x178dc(%rsp), %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, 0x8880(%rsp)
jmp 0x6e60e
xorps %xmm0, %xmm0
movsd %xmm0, 0x8880(%rsp)
movsd 0x8888(%rsp), %xmm0
addsd 0x8880(%rsp), %xmm0
movsd 0x176a0(%rsp), %xmm1
mulsd 0x176a0(%rsp), %xmm1
divsd %xmm1, %xmm0
movq 0x8878(%rsp), %rax
movq 0x38(%rax), %rax
movslq 0x8894(%rsp), %rcx
subsd (%rax,%rcx,8), %xmm0
movq 0x19c60(%rsp), %rax
movslq 0x8894(%rsp), %rcx
movsd %xmm0, (%rax,%rcx,8)
jmp 0x6e91f
movq 0x17970(%rsp), %rax
movl 0x17954(%rsp), %ecx
subl $0x1, %ecx
imull 0x17950(%rsp), %ecx
addl 0x178d8(%rsp), %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, 0x8888(%rsp)
movswl 0x179c6(%rsp), %eax
cmpl $0x1, %eax
jne 0x6e6dc
movq 0x17970(%rsp), %rax
movl 0x17954(%rsp), %ecx
subl $0x1, %ecx
imull 0x17950(%rsp), %ecx
addl 0x178dc(%rsp), %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, 0x8880(%rsp)
jmp 0x6e6e8
xorps %xmm0, %xmm0
movsd %xmm0, 0x8880(%rsp)
movsd 0x8888(%rsp), %xmm0
addsd 0x8880(%rsp), %xmm0
movsd 0x176a0(%rsp), %xmm1
mulsd 0x176a0(%rsp), %xmm1
divsd %xmm1, %xmm0
movq 0x8878(%rsp), %rax
movq 0x38(%rax), %rax
movslq 0x8894(%rsp), %rcx
movsd (%rax,%rcx,8), %xmm1
divsd 0x176a8(%rsp), %xmm1
divsd 0x176a8(%rsp), %xmm1
subsd %xmm1, %xmm0
movq 0x19c60(%rsp), %rax
movslq 0x8894(%rsp), %rcx
movsd %xmm0, (%rax,%rcx,8)
jmp 0x6e91f
movq 0x17970(%rsp), %rax
movl 0x17954(%rsp), %ecx
subl $0x1, %ecx
imull 0x17950(%rsp), %ecx
addl 0x178f4(%rsp), %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
movsd 0x176a0(%rsp), %xmm1
mulsd 0x176a0(%rsp), %xmm1
divsd %xmm1, %xmm0
subsd 0x177a8(%rsp), %xmm0
movq 0x19c60(%rsp), %rax
movslq 0x8894(%rsp), %rcx
movsd %xmm0, (%rax,%rcx,8)
jmp 0x6e91f
movq 0x17970(%rsp), %rax
movl 0x17954(%rsp), %ecx
subl $0x1, %ecx
imull 0x17950(%rsp), %ecx
addl 0x178d8(%rsp), %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, 0x8888(%rsp)
movswl 0x179c6(%rsp), %eax
cmpl $0x1, %eax
jne 0x6e82e
movq 0x17970(%rsp), %rax
movl 0x17954(%rsp), %ecx
subl $0x1, %ecx
imull 0x17950(%rsp), %ecx
addl 0x178dc(%rsp), %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, 0x8880(%rsp)
jmp 0x6e83a
xorps %xmm0, %xmm0
movsd %xmm0, 0x8880(%rsp)
movsd 0x8888(%rsp), %xmm0
addsd 0x8880(%rsp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd 0x176a0(%rsp), %xmm1
mulsd 0x176a0(%rsp), %xmm1
divsd %xmm1, %xmm0
addsd 0x176f0(%rsp), %xmm0
movq 0x19c60(%rsp), %rax
movslq 0x8894(%rsp), %rcx
movsd %xmm0, (%rax,%rcx,8)
jmp 0x6e91f
movq 0xbc18(%rsp), %rax
movslq 0xbba4(%rsp), %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x19c60(%rsp), %rax
movslq 0x8894(%rsp), %rcx
movsd %xmm0, (%rax,%rcx,8)
jmp 0x6e91f
movq 0xbc18(%rsp), %rax
movslq 0xbba4(%rsp), %rcx
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, 0x38(%rsp)
movsd 0x17868(%rsp), %xmm0
movsd 0x148994(%rip), %xmm1   # 0x1b7288
divsd %xmm1, %xmm0
callq 0x82e0
movaps %xmm0, %xmm1
movsd 0x38(%rsp), %xmm0
mulsd %xmm1, %xmm0
movq 0x19c60(%rsp), %rax
movslq 0x8894(%rsp), %rcx
movsd %xmm0, (%rax,%rcx,8)
jmp 0x6e921
movl 0x8894(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x8894(%rsp)
jmp 0x6e4b3
movq 0x8878(%rsp), %rax
cmpl $0x6, 0x44(%rax)
jb 0x6e9bf
leaq 0xc4b8(%rsp), %rdi
callq 0x134920
cmpl $0x1, %eax
jne 0x6e9bd
leaq 0x3060(%rsp), %rdi
leaq 0xc4b8(%rsp), %rcx
addq $0xe2, %rcx
leaq 0x148a63(%rip), %rsi    # 0x1b73d8
leaq 0x14dfff(%rip), %rdx    # 0x1bc97b
movb $0x0, %al
callq 0x5b9c0
movq 0x19c58(%rsp), %rdi
leaq 0x3060(%rsp), %r8
leaq 0x14869a(%rip), %rsi    # 0x1b7034
leaq 0x14ddf5(%rip), %rdx    # 0x1bc796
movl $0x5d9, %ecx            # imm = 0x5D9
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x19c84(%rsp)
jmp 0x6ed91
jmp 0x6e9bf
movq 0x8878(%rsp), %rax
cmpl $0x5, 0x44(%rax)
jb 0x6ea47
leaq 0xd8d0(%rsp), %rdi
callq 0x11c970
cmpl $0x1, %eax
jne 0x6ea45
leaq 0x2860(%rsp), %rdi
leaq 0xd8d0(%rsp), %rcx
addq $0x96a, %rcx            # imm = 0x96A
leaq 0x1489db(%rip), %rsi    # 0x1b73d8
leaq 0x14df8a(%rip), %rdx    # 0x1bc98e
movb $0x0, %al
callq 0x5b9c0
movq 0x19c58(%rsp), %rdi
leaq 0x2860(%rsp), %r8
leaq 0x148612(%rip), %rsi    # 0x1b7034
leaq 0x14dd6d(%rip), %rdx    # 0x1bc796
movl $0x5dc, %ecx            # imm = 0x5DC
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x19c84(%rsp)
jmp 0x6ed91
jmp 0x6ea47
movq 0x8878(%rsp), %rax
cmpl $0x4, 0x44(%rax)
jb 0x6eacf
leaq 0xbb50(%rsp), %rdi
callq 0x113430
cmpl $0x1, %eax
jne 0x6eacd
leaq 0x2060(%rsp), %rdi
leaq 0xbb50(%rsp), %rcx
addq $0x162, %rcx            # imm = 0x162
leaq 0x148953(%rip), %rsi    # 0x1b73d8
leaq 0x14df15(%rip), %rdx    # 0x1bc9a1
movb $0x0, %al
callq 0x5b9c0
movq 0x19c58(%rsp), %rdi
leaq 0x2060(%rsp), %r8
leaq 0x14858a(%rip), %rsi    # 0x1b7034
leaq 0x14dce5(%rip), %rdx    # 0x1bc796
movl $0x5df, %ecx            # imm = 0x5DF
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x19c84(%rsp)
jmp 0x6ed91
jmp 0x6eacf
movq 0x8878(%rsp), %rax
cmpl $0x3, 0x44(%rax)
jb 0x6eb57
leaq 0xcda0(%rsp), %rdi
callq 0xfb5c0
cmpl $0x1, %eax
jne 0x6eb55
leaq 0x1860(%rsp), %rdi
leaq 0xcda0(%rsp), %rcx
addq $0x32a, %rcx            # imm = 0x32A
leaq 0x1488cb(%rip), %rsi    # 0x1b73d8
leaq 0x14de9f(%rip), %rdx    # 0x1bc9b3
movb $0x0, %al
callq 0x5b9c0
movq 0x19c58(%rsp), %rdi
leaq 0x1860(%rsp), %r8
leaq 0x148502(%rip), %rsi    # 0x1b7034
leaq 0x14dc5d(%rip), %rdx    # 0x1bc796
movl $0x5e2, %ecx            # imm = 0x5E2
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x19c84(%rsp)
jmp 0x6ed91
jmp 0x6eb57
movq 0x8878(%rsp), %rax
cmpl $0x2, 0x44(%rax)
jb 0x6ebdf
leaq 0xea40(%rsp), %rdi
callq 0xc0e10
cmpl $0x1, %eax
jne 0x6ebdd
leaq 0x1060(%rsp), %rdi
leaq 0xea40(%rsp), %rcx
addq $0x6bf2, %rcx           # imm = 0x6BF2
leaq 0x148843(%rip), %rsi    # 0x1b73d8
leaq 0x14de2c(%rip), %rdx    # 0x1bc9c8
movb $0x0, %al
callq 0x5b9c0
movq 0x19c58(%rsp), %rdi
leaq 0x1060(%rsp), %r8
leaq 0x14847a(%rip), %rsi    # 0x1b7034
leaq 0x14dbd5(%rip), %rdx    # 0x1bc796
movl $0x5e5, %ecx            # imm = 0x5E5
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x19c84(%rsp)
jmp 0x6ed91
jmp 0x6ebdf
movq 0x8878(%rsp), %rax
cmpl $0x1, 0x44(%rax)
jb 0x6ec67
leaq 0x15e38(%rsp), %rdi
callq 0xaa610
cmpl $0x1, %eax
jne 0x6ec65
leaq 0x860(%rsp), %rdi
leaq 0x15e38(%rsp), %rcx
addq $0x1064, %rcx           # imm = 0x1064
leaq 0x1487bb(%rip), %rsi    # 0x1b73d8
leaq 0x14ddbc(%rip), %rdx    # 0x1bc9e0
movb $0x0, %al
callq 0x5b9c0
movq 0x19c58(%rsp), %rdi
leaq 0x860(%rsp), %r8
leaq 0x1483f2(%rip), %rsi    # 0x1b7034
leaq 0x14db4d(%rip), %rdx    # 0x1bc796
movl $0x5e8, %ecx            # imm = 0x5E8
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x19c84(%rsp)
jmp 0x6ed91
jmp 0x6ec67
movq 0x8878(%rsp), %rax
cmpl $0x0, 0x44(%rax)
jb 0x6ece9
leaq 0x176a0(%rsp), %rdi
callq 0x9a0d0
cmpl $0x1, %eax
jne 0x6ece7
leaq 0x60(%rsp), %rdi
leaq 0x176a0(%rsp), %rcx
addq $0xb84, %rcx            # imm = 0xB84
leaq 0x148736(%rip), %rsi    # 0x1b73d8
leaq 0x14dd50(%rip), %rdx    # 0x1bc9f9
movb $0x0, %al
callq 0x5b9c0
movq 0x19c58(%rsp), %rdi
leaq 0x60(%rsp), %r8
leaq 0x148370(%rip), %rsi    # 0x1b7034
leaq 0x14dacb(%rip), %rdx    # 0x1bc796
movl $0x5eb, %ecx            # imm = 0x5EB
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x19c84(%rsp)
jmp 0x6ed91
jmp 0x6ece9
movl $0x0, 0x8894(%rsp)
movl 0x8894(%rsp), %eax
movq 0x8878(%rsp), %rcx
cmpl 0x10(%rcx), %eax
jge 0x6ed35
movq 0x8878(%rsp), %rax
movq 0x28(%rax), %rax
movslq 0x8894(%rsp), %rcx
movw $0x0, (%rax,%rcx,2)
movl 0x8894(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x8894(%rsp)
jmp 0x6ecf4
movq 0x8878(%rsp), %rax
cmpl $0x2, 0x44(%rax)
jae 0x6ed50
leaq 0xea40(%rsp), %rdi
callq 0xc0dc0
movq 0x8878(%rsp), %rax
cmpl $0x1, 0x44(%rax)
jae 0x6ed6b
leaq 0x15e38(%rsp), %rdi
callq 0xaa7b0
movq 0x8878(%rsp), %rax
cmpl $0x0, 0x44(%rax)
jae 0x6ed86
leaq 0x176a0(%rsp), %rdi
callq 0x9a280
movl $0x0, 0x19c84(%rsp)
movl 0x19c84(%rsp), %eax
addq $0x19c88, %rsp          # imm = 0x19C88
popq %rbx
popq %r12
popq %r14
popq %r15
retq
nopw (%rax,%rax)