// File: /workspace/github_c_makefile_star2_O2/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 0xadb42(%rip), %rsi     # 0xf9ee3
leaq 0x30(%rsp), %rdx
leaq 0x8(%rsp), %rcx
movq %rbx, %r8
callq 0x1caf9
cmpl $0x1, %eax
jne 0x4c3f6
leaq 0x99031(%rip), %rsi     # 0xe53f0
leaq 0xadb28(%rip), %rdx     # 0xf9eee
leaq 0x830(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x2e014
leaq 0x98c52(%rip), %rsi     # 0xe5034
leaq 0xadb41(%rip), %rdx     # 0xf9f2a
movq %rbx, %rdi
movl $0x1534, %ecx           # imm = 0x1534
jmp 0x4c857
movl 0x8(%rsp), %eax
testl %eax, %eax
jne 0x4c461
leaq 0xadb45(%rip), %rsi     # 0xf9f4a
leaq 0x30(%rsp), %rdx
leaq 0x8(%rsp), %rcx
movq %r15, %rdi
movq %rbx, %r8
callq 0x1caf9
cmpl $0x1, %eax
jne 0x4c45d
leaq 0x98fca(%rip), %rsi     # 0xe53f0
leaq 0xadb28(%rip), %rdx     # 0xf9f55
leaq 0x830(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x2e014
leaq 0x98beb(%rip), %rsi     # 0xe5034
leaq 0xadada(%rip), %rdx     # 0xf9f2a
movq %rbx, %rdi
movl $0x1539, %ecx           # imm = 0x1539
jmp 0x4c857
movl 0x8(%rsp), %eax
cmpl $0x1, %eax
jne 0x4c5a5
cmpw $0x0, (%r12)
je 0x4c52e
leaq 0xadb92(%rip), %rsi     # 0xfa00f
leaq 0x30(%rsp), %rdi
callq 0x80c0
testq %rax, %rax
jne 0x4c4bc
leaq 0xadb84(%rip), %rsi     # 0xfa017
leaq 0x30(%rsp), %rdi
callq 0x80c0
testq %rax, %rax
jne 0x4c4bc
leaq 0xadb76(%rip), %rsi     # 0xfa01f
leaq 0x30(%rsp), %rdi
callq 0x80c0
testq %rax, %rax
je 0x4c9e5
movl $0x1, (%r14)
movw $0x1, 0x3c(%r12)
leaq 0xadb55(%rip), %rsi     # 0xfa027
leaq 0x10(%rsp), %rdx
leaq 0x8(%rsp), %rcx
movq %r15, %rdi
movq %rbx, %r8
callq 0x1c775
cmpl $0x1, %eax
jne 0x4c588
leaq 0x98ef9(%rip), %rsi     # 0xe53f0
leaq 0xadb3b(%rip), %rdx     # 0xfa039
leaq 0x830(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x2e014
leaq 0x98b1a(%rip), %rsi     # 0xe5034
leaq 0xada09(%rip), %rdx     # 0xf9f2a
movq %rbx, %rdi
movl $0x154a, %ecx           # imm = 0x154A
jmp 0x4c857
leaq 0xada5c(%rip), %rsi     # 0xf9f91
leaq 0x830(%rsp), %r14
movq %r14, %rdi
xorl %eax, %eax
callq 0x2e014
leaq 0x98b34(%rip), %rsi     # 0xe5082
leaq 0xada98(%rip), %rdx     # 0xf9fed
leaq 0x1030(%rsp), %r15
movq %r15, %rdi
movq %r14, %rcx
xorl %eax, %eax
callq 0x2e014
leaq 0x98ac3(%rip), %rsi     # 0xe5034
leaq 0xad9b2(%rip), %rdx     # 0xf9f2a
movq %rbx, %rdi
movl $0x1541, %ecx           # imm = 0x1541
movq %r15, %r8
jmp 0x4c85a
cmpl $0x1, 0x8(%rsp)
jne 0x4c5a5
movsd 0x10(%rsp), %xmm0
maxsd 0x838(%rbp), %xmm0
movsd %xmm0, 0x838(%rbp)
leaq 0xae0c9(%rip), %rsi     # 0xfa675
leaq 0x30(%rsp), %rdx
leaq 0x8(%rsp), %rcx
movq %r15, %rdi
movq %rbx, %r8
callq 0x1caf9
cmpl $0x1, %eax
jne 0x4c604
leaq 0x98e23(%rip), %rsi     # 0xe53f0
leaq 0xae0c4(%rip), %rdx     # 0xfa698
leaq 0x830(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x2e014
leaq 0x98a44(%rip), %rsi     # 0xe5034
leaq 0xad933(%rip), %rdx     # 0xf9f2a
movq %rbx, %rdi
movl $0x15cd, %ecx           # imm = 0x15CD
jmp 0x4c857
cmpl $0x1, 0x8(%rsp)
jne 0x4c6a6
leaq 0x30(%rsp), %rdi
pushq $0x79
popq %rsi
callq 0x8140
testq %rax, %rax
jne 0x4c633
leaq 0x30(%rsp), %rdi
pushq $0x59
popq %rsi
callq 0x8140
testq %rax, %rax
je 0x4c6a6
movw $0x1, 0x100(%r14)
leaq 0xae0a8(%rip), %rsi     # 0xfa6ec
leaq 0x1030(%rsp), %rdx
leaq 0x430(%rsp), %rcx
movq %r15, %rdi
movq %rbx, %r8
callq 0x1c775
cmpl $0x1, %eax
jne 0x4c71c
leaq 0x98d81(%rip), %rsi     # 0xe53f0
leaq 0xae082(%rip), %rdx     # 0xfa6f8
leaq 0x830(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x2e014
leaq 0x989a2(%rip), %rsi     # 0xe5034
leaq 0xad891(%rip), %rdx     # 0xf9f2a
movq %rbx, %rdi
movl $0x15d2, %ecx           # imm = 0x15D2
jmp 0x4c857
andw $0x0, 0x100(%r14)
cmpl $0x1, (%r14)
jne 0x4c7fa
leaq 0xae1c0(%rip), %rsi     # 0xfa880
leaq 0x30(%rsp), %rdx
leaq 0x8(%rsp), %rcx
movq %r15, %rdi
movq %rbx, %r8
callq 0x1caf9
cmpl $0x1, %eax
jne 0x4c7a1
leaq 0x98d0b(%rip), %rsi     # 0xe53f0
leaq 0xae096(%rip), %rdx     # 0xfa782
leaq 0x830(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x2e014
leaq 0x9892c(%rip), %rsi     # 0xe5034
leaq 0xad81b(%rip), %rdx     # 0xf9f2a
movq %rbx, %rdi
movl $0x15e4, %ecx           # imm = 0x15E4
jmp 0x4c857
cmpl $0x1, 0x430(%rsp)
jne 0x4c738
movsd 0x1030(%rsp), %xmm0
movsd %xmm0, 0xd8(%r14)
leaq 0xadffd(%rip), %rsi     # 0xfa73c
leaq 0x1030(%rsp), %rdx
leaq 0x430(%rsp), %rcx
movq %r15, %rdi
movq %rbx, %r8
callq 0x1c775
cmpl $0x1, %eax
jne 0x4c94f
leaq 0x98c86(%rip), %rsi     # 0xe53f0
leaq 0xadfd2(%rip), %rdx     # 0xfa743
leaq 0x830(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x2e014
leaq 0x988a7(%rip), %rsi     # 0xe5034
leaq 0xad796(%rip), %rdx     # 0xf9f2a
movq %rbx, %rdi
movl $0x15d3, %ecx           # imm = 0x15D3
jmp 0x4c857
cmpl $0x1, 0x8(%rsp)
jne 0x4c7fa
leaq 0x30(%rsp), %rdi
pushq $0x79
popq %rsi
callq 0x8140
testq %rax, %rax
jne 0x4c7cc
leaq 0x30(%rsp), %rdi
pushq $0x59
popq %rsi
callq 0x8140
testq %rax, %rax
je 0x4c7fa
movsd 0x38(%r13), %xmm1
xorpd %xmm0, %xmm0
ucomisd %xmm0, %xmm1
jne 0x4c7de
jnp 0x4c7fa
movsd 0x50(%r13), %xmm1
ucomisd %xmm0, %xmm1
jne 0x4c7ec
jnp 0x4c7fa
cmpl $0x0, 0x40(%r13)
jne 0x4c7fa
movw $0x1, 0x28(%r14)
leaq 0xc84d4(%rip), %rsi     # 0x114cd5
leaq 0x430(%rsp), %rdx
leaq 0xc(%rsp), %rcx
movq %r15, %rdi
movq %rbx, %r8
callq 0x1caf9
cmpl $0x1, %eax
jne 0x4c878
leaq 0x98bcb(%rip), %rsi     # 0xe53f0
leaq 0xadf8d(%rip), %rdx     # 0xfa7b9
leaq 0x830(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x2e014
leaq 0x987ec(%rip), %rsi     # 0xe5034
leaq 0xad6db(%rip), %rdx     # 0xf9f2a
movq %rbx, %rdi
movl $0x15f0, %ecx           # imm = 0x15F0
movq %r14, %r8
xorl %eax, %eax
callq 0x2e014
pushq $0x1
popq %rbp
movl %ebp, %eax
addq $0x1838, %rsp           # imm = 0x1838
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
cmpl $0x1, 0xc(%rsp)
jne 0x4c8de
leaq 0x430(%rsp), %rdi
pushq $0x79
popq %rsi
callq 0x2e1bc
movw $0x1, %bp
testl %eax, %eax
jne 0x4c8d9
leaq 0x430(%rsp), %rdi
pushq $0x59
popq %rsi
callq 0x2e1bc
testl %eax, %eax
jne 0x4c8d9
leaq 0x430(%rsp), %rdi
pushq $0x6e
popq %rsi
callq 0x2e1bc
testl %eax, %eax
jne 0x4c8d7
leaq 0x430(%rsp), %rdi
pushq $0x4e
popq %rsi
callq 0x2e1bc
testl %eax, %eax
je 0x4cbf1
xorl %ebp, %ebp
movw %bp, 0x38(%r14)
xorl %ebp, %ebp
cmpw $0x1, 0x32(%r12)
jne 0x4c864
leaq 0xadf10(%rip), %rsi     # 0xfa804
leaq 0x430(%rsp), %rdx
leaq 0xc(%rsp), %rcx
movq %r15, %rdi
movq %rbx, %r8
callq 0x1caf9
cmpl $0x1, %eax
jne 0x4c974
leaq 0x98ad8(%rip), %rsi     # 0xe53f0
leaq 0xadef8(%rip), %rdx     # 0xfa817
leaq 0x830(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x2e014
leaq 0x986f9(%rip), %rsi     # 0xe5034
leaq 0xad5e8(%rip), %rdx     # 0xf9f2a
movq %rbx, %rdi
movl $0x15f5, %ecx           # imm = 0x15F5
jmp 0x4c857
cmpl $0x1, 0x430(%rsp)
jne 0x4c6af
movsd 0x1030(%rsp), %xmm0
movsd %xmm0, 0xe8(%r14)
jmp 0x4c6af
cmpl $0x1, 0xc(%rsp)
jne 0x4c864
leaq 0x430(%rsp), %rdi
pushq $0x79
popq %rsi
callq 0x2e1bc
movw $0x1, %r15w
testl %eax, %eax
jne 0x4c9db
leaq 0x430(%rsp), %rdi
pushq $0x59
popq %rsi
callq 0x2e1bc
testl %eax, %eax
jne 0x4c9db
leaq 0x430(%rsp), %rdi
pushq $0x6e
popq %rsi
callq 0x2e1bc
testl %eax, %eax
jne 0x4c9d8
leaq 0x430(%rsp), %rdi
pushq $0x4e
popq %rsi
callq 0x2e1bc
testl %eax, %eax
je 0x4ce2f
xorl %r15d, %r15d
movw %r15w, 0x3a(%r14)
jmp 0x4c864
leaq 0xadb55(%rip), %rsi     # 0xfa541
leaq 0x30(%rsp), %rdi
callq 0x80c0
testq %rax, %rax
jne 0x4ca41
leaq 0xad679(%rip), %rsi     # 0xfa07b
leaq 0x30(%rsp), %rdi
callq 0x80c0
testq %rax, %rax
jne 0x4ca41
leaq 0xad66a(%rip), %rsi     # 0xfa082
leaq 0x30(%rsp), %rdi
callq 0x80c0
testq %rax, %rax
jne 0x4ca41
leaq 0xad65b(%rip), %rsi     # 0xfa089
leaq 0x30(%rsp), %rdi
callq 0x80c0
testq %rax, %rax
je 0x4ce09
movl $0x2, (%r14)
leaq 0xad641(%rip), %rsi     # 0xfa090
leaq 0x10(%rsp), %rdx
leaq 0x8(%rsp), %rcx
movq %r15, %rdi
movq %rbx, %r8
callq 0x1c775
cmpl $0x1, %eax
jne 0x4caa7
leaq 0x98980(%rip), %rsi     # 0xe53f0
leaq 0xad62a(%rip), %rdx     # 0xfa0a1
leaq 0x830(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x2e014
leaq 0x985a1(%rip), %rsi     # 0xe5034
leaq 0xad490(%rip), %rdx     # 0xf9f2a
movq %rbx, %rdi
movl $0x1556, %ecx           # imm = 0x1556
jmp 0x4c857
cmpl $0x1, 0x8(%rsp)
jne 0x4cac4
movsd 0x10(%rsp), %xmm0
maxsd 0x838(%rbp), %xmm0
movsd %xmm0, 0x838(%rbp)
movw $0x1, 0x3c(%r12)
leaq 0xad60f(%rip), %rsi     # 0xfa0e2
leaq 0x1030(%rsp), %rdx
leaq 0x430(%rsp), %rcx
movq %r15, %rdi
movq %rbx, %r8
callq 0x1c5c4
cmpl $0x1, %eax
jne 0x4cb31
leaq 0x988f6(%rip), %rsi     # 0xe53f0
leaq 0xad5f6(%rip), %rdx     # 0xfa0f7
leaq 0x830(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x2e014
leaq 0x98517(%rip), %rsi     # 0xe5034
leaq 0xad406(%rip), %rdx     # 0xf9f2a
movq %rbx, %rdi
movl $0x155d, %ecx           # imm = 0x155D
jmp 0x4c857
cmpl $0x1, 0x430(%rsp)
jne 0x4cb46
movl 0x1030(%rsp), %eax
movl %eax, 0x4(%r14)
leaq 0xad5f2(%rip), %rsi     # 0xfa13f
leaq 0x30(%rsp), %rdx
leaq 0x8(%rsp), %rcx
movq %r15, %rdi
movq %rbx, %r8
callq 0x1caf9
cmpl $0x1, %eax
jne 0x4cba5
leaq 0x98882(%rip), %rsi     # 0xe53f0
leaq 0xad5d9(%rip), %rdx     # 0xfa14e
leaq 0x830(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x2e014
leaq 0x984a3(%rip), %rsi     # 0xe5034
leaq 0xad392(%rip), %rdx     # 0xf9f2a
movq %rbx, %rdi
movl $0x1561, %ecx           # imm = 0x1561
jmp 0x4c857
movl 0x8(%rsp), %eax
testl %eax, %eax
je 0x4ccc8
cmpl $0x1, %eax
jne 0x4cc50
leaq 0x9917a(%rip), %rsi     # 0xe5d3b
leaq 0x30(%rsp), %rdi
callq 0x80c0
testq %rax, %rax
jne 0x4cbea
leaq 0xad655(%rip), %rsi     # 0xfa22c
leaq 0x30(%rsp), %rdi
callq 0x80c0
testq %rax, %rax
je 0x4cee3
andl $0x0, 0xc(%r14)
jmp 0x4cc65
leaq 0x9d454(%rip), %rsi     # 0xea04c
leaq 0xc80d6(%rip), %rcx     # 0x114cd5
leaq 0x830(%rsp), %r14
leaq 0x430(%rsp), %rdx
movq %r14, %rdi
xorl %eax, %eax
callq 0x2e014
leaq 0x98965(%rip), %rsi     # 0xe5585
leaq 0x1030(%rsp), %r15
movq %r15, %rdi
movq %r14, %rdx
xorl %eax, %eax
callq 0x2e014
leaq 0x983f8(%rip), %rsi     # 0xe5034
leaq 0xad2e7(%rip), %rdx     # 0xf9f2a
movq %rbx, %rdi
movl $0x15f0, %ecx           # imm = 0x15F0
jmp 0x4c580
movl 0xc(%r14), %eax
cmpl $0x3, %eax
je 0x4cf1b
testl %eax, %eax
jne 0x4d493
leaq 0xad63b(%rip), %rsi     # 0xfa2a7
leaq 0x30(%rsp), %rdx
leaq 0x8(%rsp), %rcx
movq %r15, %rdi
movq %rbx, %r8
callq 0x1caf9
cmpl $0x1, %eax
jne 0x4cd2b
leaq 0x9875f(%rip), %rsi     # 0xe53f0
leaq 0xad61e(%rip), %rdx     # 0xfa2b6
leaq 0x830(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x2e014
leaq 0x98380(%rip), %rsi     # 0xe5034
leaq 0xad26f(%rip), %rdx     # 0xf9f2a
movq %rbx, %rdi
movl $0x1583, %ecx           # imm = 0x1583
jmp 0x4c857
leaq 0xad4bf(%rip), %rsi     # 0xfa18e
leaq 0x30(%rsp), %rdx
leaq 0x8(%rsp), %rcx
movq %r15, %rdi
movq %rbx, %r8
callq 0x1caf9
cmpl $0x1, %eax
jne 0x4cd9a
leaq 0x986fc(%rip), %rsi     # 0xe53f0
leaq 0xad4a2(%rip), %rdx     # 0xfa19d
leaq 0x830(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x2e014
leaq 0x9831d(%rip), %rsi     # 0xe5034
leaq 0xad20c(%rip), %rdx     # 0xf9f2a
movq %rbx, %rdi
movl $0x1566, %ecx           # imm = 0x1566
jmp 0x4c857
movl 0x8(%rsp), %eax
testl %eax, %eax
jne 0x4cfa6
leaq 0xad5b8(%rip), %rsi     # 0xfa2f6
leaq 0x30(%rsp), %rdx
leaq 0x8(%rsp), %rcx
movq %r15, %rdi
movq %rbx, %r8
callq 0x1caf9
cmpl $0x1, %eax
jne 0x4cfa2
leaq 0x9868d(%rip), %rsi     # 0xe53f0
leaq 0xad59b(%rip), %rdx     # 0xfa305
leaq 0x830(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x2e014
leaq 0x982ae(%rip), %rsi     # 0xe5034
leaq 0xad19d(%rip), %rdx     # 0xf9f2a
movq %rbx, %rdi
movl $0x1589, %ecx           # imm = 0x1589
jmp 0x4c857
movl 0x8(%rsp), %eax
testl %eax, %eax
jne 0x4cbb1
leaq 0xad430(%rip), %rsi     # 0xfa1dd
leaq 0x30(%rsp), %rdx
leaq 0x8(%rsp), %rcx
movq %r15, %rdi
movq %rbx, %r8
callq 0x1caf9
cmpl $0x1, %eax
jne 0x4d17c
leaq 0x9861e(%rip), %rsi     # 0xe53f0
leaq 0xad413(%rip), %rdx     # 0xfa1ec
leaq 0x830(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x2e014
leaq 0x9823f(%rip), %rsi     # 0xe5034
leaq 0xad12e(%rip), %rdx     # 0xf9f2a
movq %rbx, %rdi
movl $0x156b, %ecx           # imm = 0x156B
jmp 0x4c857
leaq 0xad80e(%rip), %rsi     # 0xfa61e
leaq 0x30(%rsp), %rdi
callq 0x80c0
testq %rax, %rax
je 0x4ce8e
andl $0x0, (%r14)
andw $0x0, 0x3c(%r12)
jmp 0x4c5a5
leaq 0x9d216(%rip), %rsi     # 0xea04c
leaq 0xad9c7(%rip), %rcx     # 0xfa804
leaq 0x830(%rsp), %r14
leaq 0x430(%rsp), %rdx
movq %r14, %rdi
xorl %eax, %eax
callq 0x2e014
leaq 0x98727(%rip), %rsi     # 0xe5585
leaq 0x1030(%rsp), %r15
movq %r15, %rdi
movq %r14, %rdx
xorl %eax, %eax
callq 0x2e014
leaq 0x981ba(%rip), %rsi     # 0xe5034
leaq 0xad0a9(%rip), %rdx     # 0xf9f2a
movq %rbx, %rdi
movl $0x15f5, %ecx           # imm = 0x15F5
jmp 0x4c580
leaq 0xad78c(%rip), %rsi     # 0xfa621
leaq 0x830(%rsp), %r14
leaq 0x30(%rsp), %rdx
movq %r14, %rdi
xorl %eax, %eax
callq 0x2e014
leaq 0x986d2(%rip), %rsi     # 0xe5585
leaq 0x1030(%rsp), %r15
movq %r15, %rdi
movq %r14, %rdx
xorl %eax, %eax
callq 0x2e014
leaq 0x98165(%rip), %rsi     # 0xe5034
leaq 0xad054(%rip), %rdx     # 0xf9f2a
movq %rbx, %rdi
movl $0x15c7, %ecx           # imm = 0x15C7
jmp 0x4c580
leaq 0xad345(%rip), %rsi     # 0xfa22f
leaq 0x30(%rsp), %rdi
callq 0x80c0
testq %rax, %rax
jne 0x4cf13
leaq 0xad338(%rip), %rsi     # 0xfa238
leaq 0x30(%rsp), %rdi
callq 0x80c0
testq %rax, %rax
je 0x4d27f
movl $0x3, 0xc(%r14)
leaq 0xad613(%rip), %rsi     # 0xfa535
leaq 0x1030(%rsp), %rdx
leaq 0x430(%rsp), %rcx
movq %r15, %rdi
movq %rbx, %r8
callq 0x1c775
cmpl $0x1, %eax
jne 0x4cf80
leaq 0x984a7(%rip), %rsi     # 0xe53f0
leaq 0xad5f8(%rip), %rdx     # 0xfa548
leaq 0x830(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x2e014
leaq 0x980c8(%rip), %rsi     # 0xe5034
leaq 0xacfb7(%rip), %rdx     # 0xf9f2a
movq %rbx, %rdi
movl $0x15bc, %ecx           # imm = 0x15BC
jmp 0x4c857
cmpl $0x1, 0x430(%rsp)
jne 0x4d493
movsd 0x1030(%rsp), %xmm0
movsd %xmm0, 0x30(%r14)
jmp 0x4d493
movl 0x8(%rsp), %eax
cmpl $0x1, %eax
jne 0x4d042
leaq 0xad38f(%rip), %rsi     # 0xfa345
leaq 0x30(%rsp), %rdi
callq 0x80c0
testq %rax, %rax
je 0x4cfca
andl $0x0, 0x8(%r14)
leaq 0xad37f(%rip), %rsi     # 0xfa350
leaq 0x30(%rsp), %rdi
callq 0x80c0
testq %rax, %rax
je 0x4cfe8
movl $0x1, 0x8(%r14)
leaq 0xad36d(%rip), %rsi     # 0xfa35c
leaq 0x30(%rsp), %rdi
callq 0x80c0
testq %rax, %rax
je 0x4d006
movl $0x2, 0x8(%r14)
leaq 0xad358(%rip), %rsi     # 0xfa365
leaq 0x30(%rsp), %rdi
callq 0x80c0
testq %rax, %rax
je 0x4d024
movl $0x3, 0x8(%r14)
leaq 0xad343(%rip), %rsi     # 0xfa36e
leaq 0x30(%rsp), %rdi
callq 0x80c0
testq %rax, %rax
je 0x4d042
movl $0x4, 0x8(%r14)
leaq 0xad330(%rip), %rsi     # 0xfa379
leaq 0x28(%rsp), %rdx
leaq 0x1c(%rsp), %rcx
movq %r15, %rdi
movq %rbx, %r8
callq 0x1c775
cmpl $0x1, %eax
jne 0x4d0a1
leaq 0x98386(%rip), %rsi     # 0xe53f0
leaq 0xad30e(%rip), %rdx     # 0xfa37f
leaq 0x830(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x2e014
leaq 0x97fa7(%rip), %rsi     # 0xe5034
leaq 0xace96(%rip), %rdx     # 0xf9f2a
movq %rbx, %rdi
movl $0x15a2, %ecx           # imm = 0x15A2
jmp 0x4c857
leaq 0xad30d(%rip), %rsi     # 0xfa3b5
leaq 0x20(%rsp), %rdx
leaq 0x18(%rsp), %rcx
movq %r15, %rdi
movq %rbx, %r8
callq 0x1c775
cmpl $0x1, %eax
jne 0x4d100
leaq 0x98327(%rip), %rsi     # 0xe53f0
leaq 0xad2eb(%rip), %rdx     # 0xfa3bb
leaq 0x830(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x2e014
leaq 0x97f48(%rip), %rsi     # 0xe5034
leaq 0xace37(%rip), %rdx     # 0xf9f2a
movq %rbx, %rdi
movl $0x15a5, %ecx           # imm = 0x15A5
jmp 0x4c857
cmpl $0x1, 0x8(%rsp)
movl 0x1c(%rsp), %eax
movl 0x18(%rsp), %ecx
jne 0x4d185
cmpl $0x1, %ecx
sete %cl
cmpl $0x1, %eax
sete %al
orb %cl, %al
cmpb $0x1, %al
jne 0x4d493
leaq 0xad2c5(%rip), %rsi     # 0xfa3f1
leaq 0x830(%rsp), %r14
movq %r14, %rdi
xorl %eax, %eax
callq 0x2e014
leaq 0x97f3d(%rip), %rsi     # 0xe5082
leaq 0xad32d(%rip), %rdx     # 0xfa479
leaq 0x1030(%rsp), %r15
movq %r15, %rdi
movq %r14, %rcx
xorl %eax, %eax
callq 0x2e014
leaq 0x97ecc(%rip), %rsi     # 0xe5034
leaq 0xacdbb(%rip), %rdx     # 0xf9f2a
movq %rbx, %rdi
movl $0x15a9, %ecx           # imm = 0x15A9
jmp 0x4c580
movl 0x8(%rsp), %eax
jmp 0x4cbb1
movl %ecx, %edx
xorl $0x1, %edx
movl %eax, %esi
xorl $0x1, %esi
movl %esi, %edi
orl %edx, %edi
jne 0x4d206
movl $0x5, 0x8(%r14)
leaq 0xad1d5(%rip), %rsi     # 0xfa379
leaq 0x1030(%rsp), %rdx
leaq 0x430(%rsp), %rcx
movq %r15, %rdi
movq %rbx, %r8
callq 0x1c775
cmpl $0x1, %eax
jne 0x4d2a6
leaq 0x98221(%rip), %rsi     # 0xe53f0
leaq 0xad2e3(%rip), %rdx     # 0xfa4b9
leaq 0x830(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x2e014
leaq 0x97e42(%rip), %rsi     # 0xe5034
leaq 0xacd31(%rip), %rdx     # 0xf9f2a
movq %rbx, %rdi
movl $0x15ad, %ecx           # imm = 0x15AD
jmp 0x4c857
orl %ecx, %esi
jne 0x4d328
movl $0x5, 0x8(%r14)
leaq 0xad15c(%rip), %rsi     # 0xfa379
leaq 0x1030(%rsp), %rdx
leaq 0x430(%rsp), %rcx
movq %r15, %rdi
movq %rbx, %r8
callq 0x1c775
cmpl $0x1, %eax
jne 0x4d3a1
leaq 0x981a8(%rip), %rsi     # 0xe53f0
leaq 0xad26a(%rip), %rdx     # 0xfa4b9
leaq 0x830(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x2e014
leaq 0x97dc9(%rip), %rsi     # 0xe5034
leaq 0xaccb8(%rip), %rdx     # 0xf9f2a
movq %rbx, %rdi
movl $0x15b2, %ecx           # imm = 0x15B2
jmp 0x4c857
leaq 0xbbf53(%rip), %rsi     # 0x1091d9
leaq 0x30(%rsp), %rdi
callq 0x80c0
testq %rax, %rax
je 0x4d3e5
movl $0x1, 0xc(%r14)
jmp 0x4d493
cmpl $0x1, 0x430(%rsp)
jne 0x4d2bf
movsd 0x1030(%rsp), %xmm0
movsd %xmm0, 0x18(%r14)
leaq 0xad0ef(%rip), %rsi     # 0xfa3b5
leaq 0x1030(%rsp), %rdx
leaq 0x430(%rsp), %rcx
movq %r15, %rdi
movq %rbx, %r8
callq 0x1c775
cmpl $0x1, %eax
jne 0x4d3c3
leaq 0x980ff(%rip), %rsi     # 0xe53f0
leaq 0xad1ff(%rip), %rdx     # 0xfa4f7
leaq 0x830(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x2e014
leaq 0x97d20(%rip), %rsi     # 0xe5034
leaq 0xacc0f(%rip), %rdx     # 0xf9f2a
movq %rbx, %rdi
movl $0x15ae, %ecx           # imm = 0x15AE
jmp 0x4c857
orl %edx, %eax
jne 0x4d493
movl $0x5, 0x8(%r14)
leaq 0xad076(%rip), %rsi     # 0xfa3b5
leaq 0x1030(%rsp), %rdx
leaq 0x430(%rsp), %rcx
movq %r15, %rdi
movq %rbx, %r8
callq 0x1c775
cmpl $0x1, %eax
jne 0x4d43a
leaq 0x98086(%rip), %rsi     # 0xe53f0
leaq 0xad186(%rip), %rdx     # 0xfa4f7
leaq 0x830(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x2e014
leaq 0x97ca7(%rip), %rsi     # 0xe5034
leaq 0xacb96(%rip), %rdx     # 0xf9f2a
movq %rbx, %rdi
movl $0x15b7, %ecx           # imm = 0x15B7
jmp 0x4c857
cmpl $0x1, 0x430(%rsp)
jne 0x4d455
movsd 0x1030(%rsp), %xmm0
movsd %xmm0, 0x18(%r14)
jmp 0x4d45b
cmpl $0x1, 0x430(%rsp)
jne 0x4d493
movsd 0x1030(%rsp), %xmm0
movsd %xmm0, 0x10(%r14)
jmp 0x4d493
leaq 0xace56(%rip), %rsi     # 0xfa242
leaq 0x830(%rsp), %r14
leaq 0x30(%rsp), %rdx
movq %r14, %rdi
xorl %eax, %eax
callq 0x2e014
leaq 0x9817b(%rip), %rsi     # 0xe5585
leaq 0x1030(%rsp), %r15
movq %r15, %rdi
movq %r14, %rdx
xorl %eax, %eax
callq 0x2e014
leaq 0x97c0e(%rip), %rsi     # 0xe5034
leaq 0xacafd(%rip), %rdx     # 0xf9f2a
movq %rbx, %rdi
movl $0x157b, %ecx           # imm = 0x157B
jmp 0x4c580
cmpl $0x1, 0x430(%rsp)
jne 0x4d477
movsd 0x1030(%rsp), %xmm0
movsd %xmm0, 0x10(%r14)
jmp 0x4d47d
movsd 0x18(%r14), %xmm0
movsd 0x9c6f5(%rip), %xmm1    # 0xe9b58
subsd %xmm0, %xmm1
divsd 0x9c6f1(%rip), %xmm1    # 0xe9b60
movsd %xmm1, 0x10(%r14)
jmp 0x4d493
movsd 0x10(%r14), %xmm0
mulsd 0x9c6cb(%rip), %xmm0    # 0xe9b50
addsd 0x9c6cb(%rip), %xmm0    # 0xe9b58
movsd %xmm0, 0x18(%r14)
leaq 0xad0f9(%rip), %rsi     # 0xfa593
leaq 0x1030(%rsp), %rdx
leaq 0x430(%rsp), %rcx
movq %r15, %rdi
movq %rbx, %r8
callq 0x1c775
cmpl $0x1, %eax
jne 0x4d4f8
leaq 0x97f2f(%rip), %rsi     # 0xe53f0
leaq 0xad0d6(%rip), %rdx     # 0xfa59e
leaq 0x830(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x2e014
leaq 0x97b50(%rip), %rsi     # 0xe5034
leaq 0xaca3f(%rip), %rdx     # 0xf9f2a
movq %rbx, %rdi
movl $0x15be, %ecx           # imm = 0x15BE
jmp 0x4c857
cmpl $0x1, 0x430(%rsp)
jne 0x4d511
movsd 0x1030(%rsp), %xmm0
movsd %xmm0, 0x20(%r14)
leaq 0xd6936(%rip), %rsi     # 0x123e4e
leaq 0x1030(%rsp), %rdx
leaq 0x430(%rsp), %rcx
movq %r15, %rdi
movq %rbx, %r8
callq 0x1c5c4
cmpl $0x1, %eax
jne 0x4d576
leaq 0x97eb1(%rip), %rsi     # 0xe53f0
leaq 0xad09b(%rip), %rdx     # 0xfa5e1
leaq 0x830(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x2e014
leaq 0x97ad2(%rip), %rsi     # 0xe5034
leaq 0xac9c1(%rip), %rdx     # 0xf9f2a
movq %rbx, %rdi
movl $0x15bf, %ecx           # imm = 0x15BF
jmp 0x4c857
cmpl $0x1, 0x430(%rsp)
jne 0x4c5a5
movl 0x1030(%rsp), %eax
movl %eax, 0x2c(%r14)
jmp 0x4c5a5