// File: /workspace/github_c_makefile_star2_O1/PoulinV[P]AxiCLASS/build/../source/input.c
// Function: input_read_parameters_nonlinear
int input_read_parameters_nonlinear(struct file_content * pfc,
                                    struct precision * ppr,
                                    struct background * pba,
                                    struct thermodynamics * pth,
                                    struct perturbations * ppt,
                                    struct fourier * pfo,
                                    int input_verbose,
                                    ErrorMsg errmsg){

  /** Define local variables */
  int flag1,flag2,flag3;
  double param1,param2,param3;
  char string1[_ARGUMENT_LENGTH_MAX_];

  /** 1) Non-linearity */
  /* Read */
  class_call(parser_read_string(pfc,"non_linear",&string1,&flag1,errmsg),
             errmsg,
             errmsg);
  /* Compatibility code BEGIN */
  if (flag1 == _FALSE_){
    class_call(parser_read_string(pfc,"non linear",&string1,&flag1,errmsg),
               errmsg,
               errmsg);
  }
  /* Compatibility code END */

  if (flag1 == _TRUE_) {
    /* Test */
    class_test(ppt->has_perturbations == _FALSE_,
               errmsg,
               "You requested non-linear computation but no perturbations. You must set the 'output' field.");
    /* Complete set of parameters */
    if ((strstr(string1,"halofit") != NULL) || (strstr(string1,"Halofit") != NULL) || (strstr(string1,"HALOFIT") != NULL)) {
      pfo->method=nl_halofit;
      ppt->has_nl_corrections_based_on_delta_m = _TRUE_;

      /* Compatibility code BEGIN */
      class_call(parser_read_double(pfc,"halofit_min_k_max",&param1,&flag1,errmsg),
                 errmsg,
                 errmsg);
      if (flag1 == _TRUE_) {
        ppr->nonlinear_min_k_max = MAX(ppr->nonlinear_min_k_max,param1);
      }
      /* Compatibility code END */
    }
    else if ((strstr(string1,"hmcode") != NULL) || (strstr(string1,"HMCODE") != NULL) || (strstr(string1,"HMcode") != NULL) || (strstr(string1,"Hmcode") != NULL)) {
      pfo->method=nl_HMcode;

      /* Compatibility code BEGIN */
      class_call(parser_read_double(pfc,"hmcode_min_k_max",&param1,&flag1,errmsg),
                 errmsg,
                 errmsg);
      if (flag1 == _TRUE_) {
        ppr->nonlinear_min_k_max = MAX(ppr->nonlinear_min_k_max,param1);
      }
      /* Compatibility code END */

      ppt->has_nl_corrections_based_on_delta_m = _TRUE_;
      class_read_int("extrapolation_method",pfo->extrapolation_method);

      class_call(parser_read_string(pfc,"hmcode_version",&string1,&flag1,errmsg),
                 errmsg,
                 errmsg);
      /* Compatibility code BEGIN */
      if(flag1 == _FALSE_){
        class_call(parser_read_string(pfc,"HMcode_version",&string1,&flag1,errmsg),
                   errmsg,
                   errmsg);
      }
      if(flag1 == _FALSE_){
        class_call(parser_read_string(pfc,"hmcode version",&string1,&flag1,errmsg),
                   errmsg,
                   errmsg);
      }

      /* Compatibility code END */
      if (flag1 == _TRUE_) {
        if ((strstr(string1,"15") != NULL)||(strstr(string1,"16") != NULL)) {
          pfo->hm_version = hmcode_version_2015;
        }
        else if ((strstr(string1,"20baryon") != NULL) || (strstr(string1,"20_baryon") != NULL)) {
          pfo->hm_version = hmcode_version_2020_baryonic;
        }
        else if ((strstr(string1,"20") != NULL)) {
          pfo->hm_version = hmcode_version_2020;
        }
        else{
          class_stop(errmsg,
                     "You specified 'hmcode_version' = '%s'. It has to be one of {'2015','2020','2020_baryonic_feedback'}.",string1);
        }
      }

      if (pfo->hm_version == hmcode_version_2015) {

        class_call(parser_read_string(pfc,"feedback_model",&string1,&flag1,errmsg),
                   errmsg,
                   errmsg);

        /* Compatibility code BEGIN */
        if (flag1 == _FALSE_) {
          class_call(parser_read_string(pfc,"feedback model",&string1,&flag1,errmsg),
                     errmsg,
                     errmsg);
        }
        /* Compatibility code END */

        if (flag1 == _TRUE_) {

          if (strstr(string1,"emu_dmonly") != NULL) {
            pfo->feedback = hmcode_emu_dmonly;
          }
          if (strstr(string1,"owls_dmonly") != NULL) {
            pfo->feedback = hmcode_owls_dmonly;
          }
          if (strstr(string1,"owls_ref") != NULL) {
            pfo->feedback = hmcode_owls_ref;
          }
          if (strstr(string1,"owls_agn") != NULL) {
            pfo->feedback = hmcode_owls_agn;
          }
          if (strstr(string1,"owls_dblim") != NULL) {
            pfo->feedback = hmcode_owls_dblim;
          }
        }

        class_call(parser_read_double(pfc,"eta_0",&param2,&flag2,errmsg),
                   errmsg,
                   errmsg);
        class_call(parser_read_double(pfc,"c_min",&param3,&flag3,errmsg),
                   errmsg,
                   errmsg);

        class_test(((flag1 == _TRUE_) && ((flag2 == _TRUE_) || (flag3 == _TRUE_))),
                   errmsg,
                   "In input file, you cannot enter both a baryonic feedback model and a choice of baryonic feedback parameters, choose one of both methods");

        if ((flag2 == _TRUE_) && (flag3 == _TRUE_)) {
          pfo->feedback = hmcode_user_defined;
          class_read_double("eta_0", pfo->eta_0);
          class_read_double("c_min", pfo->c_min);
        }
        else if ((flag2 == _TRUE_) && (flag3 == _FALSE_)) {
          pfo->feedback = hmcode_user_defined;
          class_read_double("eta_0", pfo->eta_0);
          pfo->c_min = (0.98 - pfo->eta_0)/0.12;
        }
        else if ((flag2 == _FALSE_) && (flag3 == _TRUE_)) {
          pfo->feedback = hmcode_user_defined;
          class_read_double("c_min", pfo->c_min);
          pfo->eta_0 = 0.98 - 0.12*pfo->c_min;
        }
      }
      else if (pfo->hm_version == hmcode_version_2020_baryonic) {
        class_read_double("log10T_heat_hmcode",pfo->log10T_heat_hmcode);
      }
      class_read_double("z_infinity", pfo->z_infinity);
      class_read_int("nk_wiggle", pfo->nk_wiggle);
    }
    else if (strstr(string1,"no")!=NULL){
      pfo->method=nl_none;
      ppt->has_nl_corrections_based_on_delta_m = _FALSE_;
    }
    else {
      class_stop(errmsg,
                 "You specified 'non_linear' = '%s'. It has to be one of {'halofit','hmcode','none'}.",string1);
    }
  }

  class_call(parser_read_string(pfc,"get_lyman_alpha_tilt_and_amplitude",&string1,&flag1,errmsg),
             errmsg,
             errmsg);

  if ((flag1 == _TRUE_) && ((strstr(string1,"y") != NULL) || (strstr(string1,"Y") != NULL))) {

    pfo->get_lyman_alpha_tilt_and_amplitude = _TRUE_;
    class_read_double("kp_km_per_s",pfo->kp_km_per_s);
    class_read_double("zp_lya",pfo->zp_lya);

  }
  else{
    pfo->get_lyman_alpha_tilt_and_amplitude = _FALSE_;
  }




  /** - special steps if we want Halofit with wa_fld non-zero:
      so-called "Pk_equal method" of 0810.0190 and 1601.07230 */

  if (pfo->method == nl_halofit) {

    class_call(parser_read_string(pfc,"pk_eq",&string1,&flag1,errmsg),
               errmsg,
               errmsg);

    if ((flag1 == _TRUE_) && ((strstr(string1,"y") != NULL) || (strstr(string1,"Y") != NULL))) {

      if ((pba->Omega0_fld != 0.) && (pba->wa_fld != 0.) && (pba->fluid_equation_of_state == CLP)){

        pfo->has_pk_eq = _TRUE_;
      }
    }
  }

  /** 2.a) analytic nowiggle linear spectrum */
  class_read_flag("analytic_nowiggle", pfo->has_pk_analytic_nowiggle);

  /** 2.b) numerical nowiggle linear spectrum (can be computed only if the linear power spectrum is computed) */

  if (ppt->has_pk_matter == _TRUE_) {
    class_read_flag("numerical_nowiggle", pfo->has_pk_numerical_nowiggle);
  }

  return _SUCCESS_;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1838, %rsp           # imm = 0x1838
movq %r9, %r14
movq %r8, %r12
movq %rdx, %r13
movq %rsi, %rbp
movq %rdi, %r15
movq 0x1878(%rsp), %rbx
leaq 0xb4369(%rip), %rsi     # 0x105ff3
leaq 0x30(%rsp), %rdx
movq %rsp, %rcx
movq %rbx, %r8
callq 0x1ec10
cmpl $0x1, %eax
jne 0x51cdd
leaq 0x9f74a(%rip), %rsi     # 0xf13f0
leaq 0xb4351(%rip), %rdx     # 0x105ffe
leaq 0x830(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x30c2c
leaq 0x9f36b(%rip), %rsi     # 0xf1034
leaq 0xb436a(%rip), %rdx     # 0x10603a
movq %rbx, %rdi
movl $0x1534, %ecx           # imm = 0x1534
jmp 0x5216b
cmpl $0x0, (%rsp)
jne 0x51d40
leaq 0xb4370(%rip), %rsi     # 0x10605a
leaq 0x30(%rsp), %rdx
movq %rsp, %rcx
movq %r15, %rdi
movq %rbx, %r8
callq 0x1ec10
cmpl $0x1, %eax
jne 0x51d40
leaq 0x9f6e7(%rip), %rsi     # 0xf13f0
leaq 0xb4355(%rip), %rdx     # 0x106065
leaq 0x830(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x30c2c
leaq 0x9f308(%rip), %rsi     # 0xf1034
leaq 0xb4307(%rip), %rdx     # 0x10603a
movq %rbx, %rdi
movl $0x1539, %ecx           # imm = 0x1539
jmp 0x5216b
cmpl $0x1, (%rsp)
jne 0x51e82
cmpw $0x0, (%r12)
je 0x51e0c
leaq 0xb43c2(%rip), %rsi     # 0x10611f
leaq 0x30(%rsp), %rdi
callq 0x80c0
testq %rax, %rax
jne 0x51d9c
leaq 0xb43b4(%rip), %rsi     # 0x106127
leaq 0x30(%rsp), %rdi
callq 0x80c0
testq %rax, %rax
jne 0x51d9c
leaq 0xb43a6(%rip), %rsi     # 0x10612f
leaq 0x30(%rsp), %rdi
callq 0x80c0
testq %rax, %rax
je 0x52316
movl $0x1, (%r14)
movw $0x1, 0x3c(%r12)
leaq 0xb4385(%rip), %rsi     # 0x106137
leaq 0x18(%rsp), %rdx
movq %rsp, %rcx
movq %r15, %rdi
movq %rbx, %r8
callq 0x1e87c
cmpl $0x1, %eax
jne 0x51e66
leaq 0x9f61b(%rip), %rsi     # 0xf13f0
leaq 0xb436d(%rip), %rdx     # 0x106149
leaq 0x830(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x30c2c
leaq 0x9f23c(%rip), %rsi     # 0xf1034
leaq 0xb423b(%rip), %rdx     # 0x10603a
movq %rbx, %rdi
movl $0x154a, %ecx           # imm = 0x154A
jmp 0x5216b
leaq 0xb428e(%rip), %rsi     # 0x1060a1
leaq 0x830(%rsp), %r14
movq %r14, %rdi
xorl %eax, %eax
callq 0x30c2c
leaq 0x9f256(%rip), %rsi     # 0xf1082
leaq 0xb42ca(%rip), %rdx     # 0x1060fd
leaq 0x1030(%rsp), %r15
movq %r15, %rdi
movq %r14, %rcx
xorl %eax, %eax
callq 0x30c2c
leaq 0x9f1e5(%rip), %rsi     # 0xf1034
leaq 0xb41e4(%rip), %rdx     # 0x10603a
movq %rbx, %rdi
movl $0x1541, %ecx           # imm = 0x1541
movq %r15, %r8
jmp 0x5216e
cmpl $0x1, (%rsp)
jne 0x51e82
movsd 0x18(%rsp), %xmm0
maxsd 0x838(%rbp), %xmm0
movsd %xmm0, 0x838(%rbp)
leaq 0xb48fc(%rip), %rsi     # 0x106785
leaq 0x30(%rsp), %rdx
movq %rsp, %rcx
movq %r15, %rdi
movq %rbx, %r8
callq 0x1ec10
cmpl $0x1, %eax
jne 0x51edf
leaq 0x9f548(%rip), %rsi     # 0xf13f0
leaq 0xb48f9(%rip), %rdx     # 0x1067a8
leaq 0x830(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x30c2c
leaq 0x9f169(%rip), %rsi     # 0xf1034
leaq 0xb4168(%rip), %rdx     # 0x10603a
movq %rbx, %rdi
movl $0x15cd, %ecx           # imm = 0x15CD
jmp 0x5216b
cmpl $0x1, (%rsp)
jne 0x51f9a
leaq 0x30(%rsp), %rdi
movl $0x79, %esi
callq 0x8130
testq %rax, %rax
jne 0x51f15
leaq 0x30(%rsp), %rdi
movl $0x59, %esi
callq 0x8130
testq %rax, %rax
je 0x51f9a
movq %r13, 0x10(%rsp)
movw $0x1, 0x100(%r14)
leaq 0xb48d1(%rip), %rsi     # 0x1067fc
leaq 0x1030(%rsp), %rdx
leaq 0x430(%rsp), %rcx
movq %r15, %rdi
movq %rbx, %r8
callq 0x1e87c
movl %eax, %r13d
cmpl $0x1, %eax
jne 0x5200f
leaq 0x9f497(%rip), %rsi     # 0xf13f0
leaq 0xb48a8(%rip), %rdx     # 0x106808
leaq 0x830(%rsp), %rbp
movq %rbp, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x30c2c
leaq 0x9f0b8(%rip), %rsi     # 0xf1034
leaq 0xb40b7(%rip), %rdx     # 0x10603a
movq %rbx, %rdi
movl $0x15d2, %ecx           # imm = 0x15D2
movq %rbp, %r8
xorl %eax, %eax
callq 0x30c2c
jmp 0x5202b
movw $0x0, 0x100(%r14)
cmpl $0x1, (%r14)
jne 0x5210e
leaq 0xb49db(%rip), %rsi     # 0x106990
leaq 0x30(%rsp), %rdx
movq %rsp, %rcx
movq %r15, %rdi
movq %rbx, %r8
callq 0x1ec10
cmpl $0x1, %eax
jne 0x520b2
leaq 0x9f418(%rip), %rsi     # 0xf13f0
leaq 0xb48b3(%rip), %rdx     # 0x106892
leaq 0x830(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x30c2c
leaq 0x9f039(%rip), %rsi     # 0xf1034
leaq 0xb4038(%rip), %rdx     # 0x10603a
movq %rbx, %rdi
movl $0x15e4, %ecx           # imm = 0x15E4
jmp 0x5216b
cmpl $0x1, 0x430(%rsp)
jne 0x5202b
movsd 0x1030(%rsp), %xmm0
movsd %xmm0, 0xd8(%r14)
movl $0x1, %ebp
cmpl $0x1, %r13d
je 0x5217a
leaq 0xb480b(%rip), %rsi     # 0x10684c
leaq 0x1030(%rsp), %rdx
leaq 0x430(%rsp), %rcx
movq %r15, %rdi
movq %rbx, %r8
callq 0x1e87c
movl %eax, %r13d
cmpl $0x1, %eax
jne 0x5226d
leaq 0x9f381(%rip), %rsi     # 0xf13f0
leaq 0xb47dd(%rip), %rdx     # 0x106853
leaq 0x830(%rsp), %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x30c2c
leaq 0x9efa5(%rip), %rsi     # 0xf1034
leaq 0xb3fa4(%rip), %rdx     # 0x10603a
movq %rbx, %rdi
movl $0x15d3, %ecx           # imm = 0x15D3
leaq 0x830(%rsp), %r8
xorl %eax, %eax
callq 0x30c2c
jmp 0x52289
cmpl $0x1, (%rsp)
jne 0x5210e
leaq 0x30(%rsp), %rdi
movl $0x79, %esi
callq 0x8130
testq %rax, %rax
jne 0x520e0
leaq 0x30(%rsp), %rdi
movl $0x59, %esi
callq 0x8130
testq %rax, %rax
je 0x5210e
movsd 0x38(%r13), %xmm1
xorpd %xmm0, %xmm0
ucomisd %xmm0, %xmm1
jne 0x520f2
jnp 0x5210e
movsd 0x50(%r13), %xmm1
ucomisd %xmm0, %xmm1
jne 0x52100
jnp 0x5210e
cmpl $0x0, 0x40(%r13)
jne 0x5210e
movw $0x1, 0x28(%r14)
leaq 0xcece0(%rip), %rsi     # 0x120df5
leaq 0x430(%rsp), %rdx
leaq 0x4(%rsp), %rcx
movq %r15, %rdi
movq %rbx, %r8
callq 0x1ec10
cmpl $0x1, %eax
jne 0x5218e
leaq 0x9f2b7(%rip), %rsi     # 0xf13f0
leaq 0xb4789(%rip), %rdx     # 0x1068c9
leaq 0x830(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x30c2c
leaq 0x9eed8(%rip), %rsi     # 0xf1034
leaq 0xb3ed7(%rip), %rdx     # 0x10603a
movq %rbx, %rdi
movl $0x15f0, %ecx           # imm = 0x15F0
movq %r14, %r8
xorl %eax, %eax
callq 0x30c2c
movl $0x1, %ebp
movl %ebp, %eax
addq $0x1838, %rsp           # imm = 0x1838
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
cmpl $0x1, 0x4(%rsp)
jne 0x521fc
leaq 0x430(%rsp), %rdi
movl $0x79, %esi
callq 0x30ddf
movw $0x1, %bp
testl %eax, %eax
jne 0x521f7
leaq 0x430(%rsp), %rdi
movl $0x59, %esi
callq 0x30ddf
testl %eax, %eax
jne 0x521f7
leaq 0x430(%rsp), %rdi
movl $0x6e, %esi
callq 0x30ddf
testl %eax, %eax
jne 0x521f5
leaq 0x430(%rsp), %rdi
movl $0x4e, %esi
callq 0x30ddf
testl %eax, %eax
je 0x526c1
xorl %ebp, %ebp
movw %bp, 0x38(%r14)
xorl %ebp, %ebp
cmpw $0x1, 0x32(%r12)
jne 0x5217a
leaq 0xb4702(%rip), %rsi     # 0x106914
leaq 0x430(%rsp), %rdx
leaq 0x4(%rsp), %rcx
movq %r15, %rdi
movq %rbx, %r8
callq 0x1ec10
cmpl $0x1, %eax
jne 0x5229d
leaq 0x9f1ba(%rip), %rsi     # 0xf13f0
leaq 0xb46ea(%rip), %rdx     # 0x106927
leaq 0x830(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x30c2c
leaq 0x9eddb(%rip), %rsi     # 0xf1034
leaq 0xb3dda(%rip), %rdx     # 0x10603a
movq %rbx, %rdi
movl $0x15f5, %ecx           # imm = 0x15F5
jmp 0x5216b
cmpl $0x1, 0x430(%rsp)
jne 0x52289
movsd 0x1030(%rsp), %xmm0
movsd %xmm0, 0xe8(%r14)
cmpl $0x1, %r13d
movq 0x10(%rsp), %r13
jne 0x51fa4
jmp 0x5217a
cmpl $0x1, 0x4(%rsp)
jne 0x5217a
leaq 0x430(%rsp), %rdi
movl $0x79, %esi
callq 0x30ddf
movw $0x1, %r15w
testl %eax, %eax
jne 0x5230c
leaq 0x430(%rsp), %rdi
movl $0x59, %esi
callq 0x30ddf
testl %eax, %eax
jne 0x5230c
leaq 0x430(%rsp), %rdi
movl $0x6e, %esi
callq 0x30ddf
testl %eax, %eax
jne 0x52309
leaq 0x430(%rsp), %rdi
movl $0x4e, %esi
callq 0x30ddf
testl %eax, %eax
je 0x52960
xorl %r15d, %r15d
movw %r15w, 0x3a(%r14)
jmp 0x5217a
leaq 0xb4334(%rip), %rsi     # 0x106651
leaq 0x30(%rsp), %rdi
callq 0x80c0
testq %rax, %rax
jne 0x52372
leaq 0xb3e58(%rip), %rsi     # 0x10618b
leaq 0x30(%rsp), %rdi
callq 0x80c0
testq %rax, %rax
jne 0x52372
leaq 0xb3e49(%rip), %rsi     # 0x106192
leaq 0x30(%rsp), %rdi
callq 0x80c0
testq %rax, %rax
jne 0x52372
leaq 0xb3e3a(%rip), %rsi     # 0x106199
leaq 0x30(%rsp), %rdi
callq 0x80c0
testq %rax, %rax
je 0x52798
movl $0x2, (%r14)
leaq 0xb3e20(%rip), %rsi     # 0x1061a0
leaq 0x18(%rsp), %rdx
movq %rsp, %rcx
movq %r15, %rdi
movq %rbx, %r8
callq 0x1e87c
cmpl $0x1, %eax
jne 0x523d6
leaq 0x9f051(%rip), %rsi     # 0xf13f0
leaq 0xb3e0b(%rip), %rdx     # 0x1061b1
leaq 0x830(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x30c2c
leaq 0x9ec72(%rip), %rsi     # 0xf1034
leaq 0xb3c71(%rip), %rdx     # 0x10603a
movq %rbx, %rdi
movl $0x1556, %ecx           # imm = 0x1556
jmp 0x5216b
cmpl $0x1, (%rsp)
jne 0x523f2
movsd 0x18(%rsp), %xmm0
maxsd 0x838(%rbp), %xmm0
movsd %xmm0, 0x838(%rbp)
movw $0x1, 0x3c(%r12)
leaq 0xb3df1(%rip), %rsi     # 0x1061f2
leaq 0x1030(%rsp), %rdx
leaq 0x430(%rsp), %rcx
movq %r15, %rdi
movq %rbx, %r8
callq 0x1e6c0
cmpl $0x1, %eax
movq %r13, 0x10(%rsp)
jne 0x5246f
leaq 0x9efc3(%rip), %rsi     # 0xf13f0
leaq 0xb3dd3(%rip), %rdx     # 0x106207
leaq 0x830(%rsp), %r13
movq %r13, %rdi
movl %eax, %ebp
movq %rbx, %rcx
xorl %eax, %eax
callq 0x30c2c
leaq 0x9ebe2(%rip), %rsi     # 0xf1034
leaq 0xb3be1(%rip), %rdx     # 0x10603a
movq %rbx, %rdi
movl $0x155d, %ecx           # imm = 0x155D
movq %r13, %r8
xorl %eax, %eax
callq 0x30c2c
movl %ebp, %eax
jmp 0x52484
cmpl $0x1, 0x430(%rsp)
jne 0x52484
movl 0x1030(%rsp), %ecx
movl %ecx, 0x4(%r14)
movl $0x1, %ebp
cmpl $0x1, %eax
je 0x5217a
leaq 0xb3db6(%rip), %rsi     # 0x10624f
leaq 0x30(%rsp), %rdx
movq %rsp, %rcx
movq %r15, %rdi
movq %rbx, %r8
callq 0x1ec10
cmpl $0x1, %eax
jne 0x524f9
leaq 0x9ef38(%rip), %rsi     # 0xf13f0
leaq 0xb3d9f(%rip), %rdx     # 0x10625e
leaq 0x830(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x30c2c
leaq 0x9eb59(%rip), %rsi     # 0xf1034
leaq 0xb3b58(%rip), %rdx     # 0x10603a
movq %rbx, %rdi
movl $0x1561, %ecx           # imm = 0x1561
movq %r14, %r8
xorl %eax, %eax
callq 0x30c2c
jmp 0x5217a
cmpl $0x0, (%rsp)
jne 0x52559
leaq 0xb3d98(%rip), %rsi     # 0x10629e
leaq 0x30(%rsp), %rdx
movq %rsp, %rcx
movq %r15, %rdi
movq %rbx, %r8
callq 0x1ec10
cmpl $0x1, %eax
jne 0x52559
leaq 0x9eecb(%rip), %rsi     # 0xf13f0
leaq 0xb3d81(%rip), %rdx     # 0x1062ad
leaq 0x830(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x30c2c
leaq 0x9eaec(%rip), %rsi     # 0xf1034
leaq 0xb3aeb(%rip), %rdx     # 0x10603a
movq %rbx, %rdi
movl $0x1566, %ecx           # imm = 0x1566
jmp 0x524ea
cmpl $0x0, (%rsp)
jne 0x525bc
leaq 0xb3d87(%rip), %rsi     # 0x1062ed
leaq 0x30(%rsp), %rdx
movq %rsp, %rcx
movq %r15, %rdi
movq %rbx, %r8
callq 0x1ec10
cmpl $0x1, %eax
jne 0x525bc
leaq 0x9ee6b(%rip), %rsi     # 0xf13f0
leaq 0xb3d70(%rip), %rdx     # 0x1062fc
leaq 0x830(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x30c2c
leaq 0x9ea8c(%rip), %rsi     # 0xf1034
leaq 0xb3a8b(%rip), %rdx     # 0x10603a
movq %rbx, %rdi
movl $0x156b, %ecx           # imm = 0x156B
jmp 0x524ea
cmpl $0x1, (%rsp)
jne 0x5264b
leaq 0x9f78e(%rip), %rsi     # 0xf1d5b
leaq 0x30(%rsp), %rdi
callq 0x80c0
xorl %r13d, %r13d
testq %rax, %rax
jne 0x52647
leaq 0xb3d56(%rip), %rsi     # 0x10633c
leaq 0x30(%rsp), %rdi
callq 0x80c0
testq %rax, %rax
jne 0x52647
leaq 0xb3d43(%rip), %rsi     # 0x10633f
leaq 0x30(%rsp), %rdi
callq 0x80c0
movl $0x3, %r13d
testq %rax, %rax
jne 0x52647
leaq 0xb3d30(%rip), %rsi     # 0x106348
leaq 0x30(%rsp), %rdi
callq 0x80c0
testq %rax, %rax
jne 0x52647
leaq 0xc2cbb(%rip), %rsi     # 0x1152e9
leaq 0x30(%rsp), %rdi
callq 0x80c0
movl $0x1, %r13d
testq %rax, %rax
je 0x52e4d
movl %r13d, 0xc(%r14)
movl 0xc(%r14), %eax
cmpl $0x3, %eax
je 0x52720
testl %eax, %eax
jne 0x52854
leaq 0xb3d50(%rip), %rsi     # 0x1063b7
leaq 0x30(%rsp), %rdx
movq %rsp, %rcx
movq %r15, %rdi
movq %rbx, %r8
callq 0x1ec10
cmpl $0x1, %eax
jne 0x527c6
leaq 0x9ed66(%rip), %rsi     # 0xf13f0
leaq 0xb3d35(%rip), %rdx     # 0x1063c6
leaq 0x830(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x30c2c
leaq 0x9e987(%rip), %rsi     # 0xf1034
leaq 0xb3986(%rip), %rdx     # 0x10603a
movq %rbx, %rdi
movl $0x1583, %ecx           # imm = 0x1583
jmp 0x524ea
leaq 0xa3a94(%rip), %rsi     # 0xf615c
leaq 0xce726(%rip), %rcx     # 0x120df5
leaq 0x830(%rsp), %r14
leaq 0x430(%rsp), %rdx
movq %r14, %rdi
xorl %eax, %eax
callq 0x30c2c
leaq 0x9ee95(%rip), %rsi     # 0xf1585
leaq 0x1030(%rsp), %r15
movq %r15, %rdi
movq %r14, %rdx
xorl %eax, %eax
callq 0x30c2c
leaq 0x9e928(%rip), %rsi     # 0xf1034
leaq 0xb3927(%rip), %rdx     # 0x10603a
movq %rbx, %rdi
movl $0x15f0, %ecx           # imm = 0x15F0
jmp 0x51e5e
leaq 0xb3f1e(%rip), %rsi     # 0x106645
leaq 0x1030(%rsp), %rdx
leaq 0x430(%rsp), %rcx
movq %r15, %rdi
movq %rbx, %r8
callq 0x1e87c
movl %eax, %r13d
cmpl $0x1, %eax
jne 0x52831
leaq 0x9ec9b(%rip), %rsi     # 0xf13f0
leaq 0xb3efc(%rip), %rdx     # 0x106658
leaq 0x830(%rsp), %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x30c2c
leaq 0x9e8bf(%rip), %rsi     # 0xf1034
leaq 0xb38be(%rip), %rdx     # 0x10603a
movq %rbx, %rdi
movl $0x15bc, %ecx           # imm = 0x15BC
leaq 0x830(%rsp), %r8
xorl %eax, %eax
callq 0x30c2c
jmp 0x5284a
leaq 0xb3f8f(%rip), %rsi     # 0x10672e
leaq 0x30(%rsp), %rdi
callq 0x80c0
testq %rax, %rax
je 0x52aeb
movl $0x0, (%r14)
movw $0x0, 0x3c(%r12)
jmp 0x51e82
cmpl $0x0, (%rsp)
jne 0x529bf
leaq 0xb3c2f(%rip), %rsi     # 0x106406
leaq 0x30(%rsp), %rdx
movq %rsp, %rcx
movq %r15, %rdi
movq %rbx, %r8
callq 0x1ec10
cmpl $0x1, %eax
jne 0x529bf
leaq 0x9ebf6(%rip), %rsi     # 0xf13f0
leaq 0xb3c14(%rip), %rdx     # 0x106415
leaq 0x830(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x30c2c
leaq 0x9e817(%rip), %rsi     # 0xf1034
leaq 0xb3816(%rip), %rdx     # 0x10603a
movq %rbx, %rdi
movl $0x1589, %ecx           # imm = 0x1589
jmp 0x524ea
cmpl $0x1, 0x430(%rsp)
jne 0x5284a
movsd 0x1030(%rsp), %xmm0
movsd %xmm0, 0x30(%r14)
cmpl $0x1, %r13d
je 0x5217a
leaq 0xb3e48(%rip), %rsi     # 0x1066a3
leaq 0x1030(%rsp), %rdx
leaq 0x430(%rsp), %rcx
movq %r15, %rdi
movq %rbx, %r8
callq 0x1e87c
movl %eax, %r13d
cmpl $0x1, %eax
jne 0x528c5
leaq 0x9eb6b(%rip), %rsi     # 0xf13f0
leaq 0xb3e22(%rip), %rdx     # 0x1066ae
leaq 0x830(%rsp), %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x30c2c
leaq 0x9e78f(%rip), %rsi     # 0xf1034
leaq 0xb378e(%rip), %rdx     # 0x10603a
movq %rbx, %rdi
movl $0x15be, %ecx           # imm = 0x15BE
leaq 0x830(%rsp), %r8
xorl %eax, %eax
callq 0x30c2c
jmp 0x528de
cmpl $0x1, 0x430(%rsp)
jne 0x528de
movsd 0x1030(%rsp), %xmm0
movsd %xmm0, 0x20(%r14)
cmpl $0x1, %r13d
je 0x5217a
leaq 0xdd6bf(%rip), %rsi     # 0x12ffae
leaq 0x1030(%rsp), %rdx
leaq 0x430(%rsp), %rcx
movq %r15, %rdi
movq %rbx, %r8
callq 0x1e6c0
movl %eax, %r13d
cmpl $0x1, %eax
jne 0x52ac2
leaq 0x9ead3(%rip), %rsi     # 0xf13f0
leaq 0xb3dcd(%rip), %rdx     # 0x1066f1
leaq 0x830(%rsp), %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x30c2c
leaq 0x9e6f7(%rip), %rsi     # 0xf1034
leaq 0xb36f6(%rip), %rdx     # 0x10603a
movq %rbx, %rdi
movl $0x15bf, %ecx           # imm = 0x15BF
leaq 0x830(%rsp), %r8
xorl %eax, %eax
callq 0x30c2c
jmp 0x52ad7
leaq 0xa37f5(%rip), %rsi     # 0xf615c
leaq 0xb3fa6(%rip), %rcx     # 0x106914
leaq 0x830(%rsp), %r14
leaq 0x430(%rsp), %rdx
movq %r14, %rdi
xorl %eax, %eax
callq 0x30c2c
leaq 0x9ebf6(%rip), %rsi     # 0xf1585
leaq 0x1030(%rsp), %r15
movq %r15, %rdi
movq %r14, %rdx
xorl %eax, %eax
callq 0x30c2c
leaq 0x9e689(%rip), %rsi     # 0xf1034
leaq 0xb3688(%rip), %rdx     # 0x10603a
movq %rbx, %rdi
movl $0x15f5, %ecx           # imm = 0x15F5
jmp 0x51e5e
cmpl $0x1, (%rsp)
jne 0x52a5f
leaq 0xb3a85(%rip), %rsi     # 0x106455
leaq 0x30(%rsp), %rdi
callq 0x80c0
testq %rax, %rax
je 0x529e7
movl $0x0, 0x8(%r14)
leaq 0xb3a72(%rip), %rsi     # 0x106460
leaq 0x30(%rsp), %rdi
callq 0x80c0
testq %rax, %rax
je 0x52a05
movl $0x1, 0x8(%r14)
leaq 0xb3a60(%rip), %rsi     # 0x10646c
leaq 0x30(%rsp), %rdi
callq 0x80c0
testq %rax, %rax
je 0x52a23
movl $0x2, 0x8(%r14)
leaq 0xb3a4b(%rip), %rsi     # 0x106475
leaq 0x30(%rsp), %rdi
callq 0x80c0
testq %rax, %rax
je 0x52a41
movl $0x3, 0x8(%r14)
leaq 0xb3a36(%rip), %rsi     # 0x10647e
leaq 0x30(%rsp), %rdi
callq 0x80c0
testq %rax, %rax
je 0x52a5f
movl $0x4, 0x8(%r14)
leaq 0xb3a23(%rip), %rsi     # 0x106489
leaq 0x28(%rsp), %rdx
leaq 0xc(%rsp), %rcx
movq %r15, %rdi
movq %rbx, %r8
callq 0x1e87c
cmpl $0x1, %eax
jne 0x52b40
leaq 0x9e965(%rip), %rsi     # 0xf13f0
leaq 0xb39fd(%rip), %rdx     # 0x10648f
leaq 0x830(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x30c2c
leaq 0x9e586(%rip), %rsi     # 0xf1034
leaq 0xb3585(%rip), %rdx     # 0x10603a
movq %rbx, %rdi
movl $0x15a2, %ecx           # imm = 0x15A2
jmp 0x524ea
cmpl $0x1, 0x430(%rsp)
jne 0x52ad7
movl 0x1030(%rsp), %eax
movl %eax, 0x2c(%r14)
cmpl $0x1, %r13d
movq 0x10(%rsp), %r13
jne 0x51e82
jmp 0x5217a
leaq 0xb3c3f(%rip), %rsi     # 0x106731
leaq 0x830(%rsp), %r14
leaq 0x30(%rsp), %rdx
movq %r14, %rdi
xorl %eax, %eax
callq 0x30c2c
leaq 0x9ea75(%rip), %rsi     # 0xf1585
leaq 0x1030(%rsp), %r15
movq %r15, %rdi
movq %r14, %rdx
xorl %eax, %eax
callq 0x30c2c
leaq 0x9e508(%rip), %rsi     # 0xf1034
leaq 0xb3507(%rip), %rdx     # 0x10603a
movq %rbx, %rdi
movl $0x15c7, %ecx           # imm = 0x15C7
jmp 0x51e5e
leaq 0xb397e(%rip), %rsi     # 0x1064c5
leaq 0x20(%rsp), %rdx
leaq 0x8(%rsp), %rcx
movq %r15, %rdi
movq %rbx, %r8
callq 0x1e87c
cmpl $0x1, %eax
jne 0x52b9f
leaq 0x9e888(%rip), %rsi     # 0xf13f0
leaq 0xb395c(%rip), %rdx     # 0x1064cb
leaq 0x830(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x30c2c
leaq 0x9e4a9(%rip), %rsi     # 0xf1034
leaq 0xb34a8(%rip), %rdx     # 0x10603a
movq %rbx, %rdi
movl $0x15a5, %ecx           # imm = 0x15A5
jmp 0x524ea
cmpl $0x1, (%rsp)
jne 0x52bbb
cmpl $0x1, 0xc(%rsp)
je 0x52cdf
cmpl $0x1, 0x8(%rsp)
je 0x52cdf
movl 0xc(%rsp), %eax
movl %eax, %edx
xorl $0x1, %edx
movl 0x8(%rsp), %esi
movl %esi, %ecx
xorl $0x1, %ecx
movl %edx, %edi
orl %ecx, %edi
jne 0x52c57
movl $0x5, 0x8(%r14)
leaq 0xb38a3(%rip), %rsi     # 0x106489
leaq 0x1030(%rsp), %rdx
leaq 0x430(%rsp), %rcx
movq %r15, %rdi
movq %rbx, %r8
callq 0x1e87c
movl %eax, %r13d
cmpl $0x1, %eax
jne 0x52d39
leaq 0x9e7dc(%rip), %rsi     # 0xf13f0
leaq 0xb39ae(%rip), %rdx     # 0x1065c9
leaq 0x830(%rsp), %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x30c2c
leaq 0x9e400(%rip), %rsi     # 0xf1034
leaq 0xb33ff(%rip), %rdx     # 0x10603a
movq %rbx, %rdi
movl $0x15ad, %ecx           # imm = 0x15AD
leaq 0x830(%rsp), %r8
xorl %eax, %eax
callq 0x30c2c
jmp 0x52d52
orl %esi, %edx
jne 0x52dc5
movl $0x5, 0x8(%r14)
leaq 0xb381b(%rip), %rsi     # 0x106489
leaq 0x1030(%rsp), %rdx
leaq 0x430(%rsp), %rcx
movq %r15, %rdi
movq %rbx, %r8
callq 0x1e87c
movl %eax, %r13d
cmpl $0x1, %eax
jne 0x52ea2
leaq 0x9e754(%rip), %rsi     # 0xf13f0
leaq 0xb3926(%rip), %rdx     # 0x1065c9
leaq 0x830(%rsp), %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x30c2c
leaq 0x9e378(%rip), %rsi     # 0xf1034
leaq 0xb3377(%rip), %rdx     # 0x10603a
movq %rbx, %rdi
movl $0x15b2, %ecx           # imm = 0x15B2
leaq 0x830(%rsp), %r8
xorl %eax, %eax
callq 0x30c2c
jmp 0x52ebb
leaq 0xb381b(%rip), %rsi     # 0x106501
leaq 0x830(%rsp), %r14
movq %r14, %rdi
xorl %eax, %eax
callq 0x30c2c
leaq 0x9e383(%rip), %rsi     # 0xf1082
leaq 0xb3883(%rip), %rdx     # 0x106589
leaq 0x1030(%rsp), %r15
movq %r15, %rdi
movq %r14, %rcx
xorl %eax, %eax
callq 0x30c2c
leaq 0x9e312(%rip), %rsi     # 0xf1034
leaq 0xb3311(%rip), %rdx     # 0x10603a
movq %rbx, %rdi
movl $0x15a9, %ecx           # imm = 0x15A9
movq %r15, %r8
jmp 0x524ed
cmpl $0x1, 0x430(%rsp)
jne 0x52d52
movsd 0x1030(%rsp), %xmm0
movsd %xmm0, 0x18(%r14)
cmpl $0x1, %r13d
je 0x5217a
leaq 0xb3762(%rip), %rsi     # 0x1064c5
leaq 0x1030(%rsp), %rdx
leaq 0x430(%rsp), %rcx
movq %r15, %rdi
movq %rbx, %r8
callq 0x1e87c
movl %eax, %r13d
cmpl $0x1, %eax
jne 0x52ee2
leaq 0x9e65f(%rip), %rsi     # 0xf13f0
leaq 0xb386f(%rip), %rdx     # 0x106607
leaq 0x830(%rsp), %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x30c2c
leaq 0x9e283(%rip), %rsi     # 0xf1034
leaq 0xb3282(%rip), %rdx     # 0x10603a
movq %rbx, %rdi
movl $0x15ae, %ecx           # imm = 0x15AE
jmp 0x52784
orl %ecx, %eax
jne 0x52854
movl $0x5, 0x8(%r14)
leaq 0xb36e9(%rip), %rsi     # 0x1064c5
leaq 0x1030(%rsp), %rdx
leaq 0x430(%rsp), %rcx
movq %r15, %rdi
movq %rbx, %r8
callq 0x1e87c
movl %eax, %r13d
cmpl $0x1, %eax
jne 0x52f04
leaq 0x9e5e6(%rip), %rsi     # 0xf13f0
leaq 0xb37f6(%rip), %rdx     # 0x106607
leaq 0x830(%rsp), %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x30c2c
leaq 0x9e20a(%rip), %rsi     # 0xf1034
leaq 0xb3209(%rip), %rdx     # 0x10603a
movq %rbx, %rdi
movl $0x15b7, %ecx           # imm = 0x15B7
leaq 0x830(%rsp), %r8
xorl %eax, %eax
callq 0x30c2c
jmp 0x52f1d
leaq 0xb34fe(%rip), %rsi     # 0x106352
leaq 0x830(%rsp), %r14
leaq 0x30(%rsp), %rdx
movq %r14, %rdi
xorl %eax, %eax
callq 0x30c2c
leaq 0x9e713(%rip), %rsi     # 0xf1585
leaq 0x1030(%rsp), %r15
movq %r15, %rdi
movq %r14, %rdx
xorl %eax, %eax
callq 0x30c2c
leaq 0x9e1a6(%rip), %rsi     # 0xf1034
leaq 0xb31a5(%rip), %rdx     # 0x10603a
movq %rbx, %rdi
movl $0x157b, %ecx           # imm = 0x157B
jmp 0x51e5e
cmpl $0x1, 0x430(%rsp)
jne 0x52ebb
movsd 0x1030(%rsp), %xmm0
movsd %xmm0, 0x18(%r14)
cmpl $0x1, %r13d
je 0x5217a
movsd 0xa2d9b(%rip), %xmm0    # 0xf5c68
subsd 0x18(%r14), %xmm0
divsd 0xa2d95(%rip), %xmm0    # 0xf5c70
movl $0x10, %eax
jmp 0x52f42
cmpl $0x1, 0x430(%rsp)
jne 0x5284a
movsd 0x1030(%rsp), %xmm0
movsd %xmm0, 0x10(%r14)
jmp 0x5284a
cmpl $0x1, 0x430(%rsp)
jne 0x52f1d
movsd 0x1030(%rsp), %xmm0
movsd %xmm0, 0x10(%r14)
cmpl $0x1, %r13d
je 0x5217a
movsd 0x10(%r14), %xmm0
mulsd 0xa2d2b(%rip), %xmm0    # 0xf5c60
addsd 0xa2d2b(%rip), %xmm0    # 0xf5c68
movl $0x18, %eax
movsd %xmm0, (%r14,%rax)
jmp 0x52854