// File: /workspace/github_c_makefile_star2_O3/PoulinV[P]AxiCLASS/build/../source/input.c
// Function: input_read_parameters_spectra
int input_read_parameters_spectra(struct file_content * pfc,
                                  struct precision * ppr,
                                  struct background * pba,
                                  struct primordial * ppm,
                                  struct perturbations * ppt,
                                  struct transfer * ptr,
                                  struct harmonic *phr,
                                  struct output * pop,
                                  ErrorMsg errmsg){

  /** Summary: */

  /** Define local variables */
  int flag1, flag2;
  double param1, param2;
  char string1[_ARGUMENT_LENGTH_MAX_];
  int int1;
  double * pointer1;
  int i;
  double z_max=0.;
  int bin;

  /** 1) Maximum l for CLs */
  /* Read */
  if (ppt->has_cls == _TRUE_) {
    if (ppt->has_scalars == _TRUE_) {
      if ((ppt->has_cl_cmb_temperature == _TRUE_) || (ppt->has_cl_cmb_polarization == _TRUE_) || (ppt->has_cl_cmb_lensing_potential == _TRUE_)){
        class_read_double("l_max_scalars",ppt->l_scalar_max);
      }
      if ((ppt->has_cl_lensing_potential == _TRUE_) || (ppt->has_cl_number_count == _TRUE_)){
        class_read_double("l_max_lss",ppt->l_lss_max);
      }
    }
    if (ppt->has_vectors == _TRUE_){
      class_read_double("l_max_vectors",ppt->l_vector_max);
    }
    if (ppt->has_tensors == _TRUE_) {
      class_read_double("l_max_tensors",ppt->l_tensor_max);
    }
  }


  /** 2) Parameters for the the matter density number count */
  if ((ppt->has_cl_number_count == _TRUE_) || (ppt->has_cl_lensing_potential == _TRUE_)) {

    /** 2.a) Selection functions W(z) of each redshift bin */
    /* Read */
    class_call(parser_read_string(pfc,"selection",&string1,&flag1,errmsg),
               errmsg,
               errmsg);
    /* Complete set of parameters */
    if (flag1 == _TRUE_) {
      if (strstr(string1,"gaussian") != NULL){
        ppt->selection=gaussian;
      }
      else if (strstr(string1,"tophat") != NULL){
        ppt->selection=tophat;
      }
      else if (strstr(string1,"dirac") != NULL){
        ppt->selection=dirac;
      }
      else {
        class_stop(errmsg,"You specified 'selection' as '%s'. It has to be one of {'gaussian','tophat','dirac'}.",string1);
      }
    }

    /* Read */
    class_call(parser_read_list_of_doubles(pfc,"selection_mean",&(int1),&(pointer1),&flag1,errmsg),
               errmsg,
               errmsg);
    if ((flag1 == _TRUE_) && (int1>0)) {
      /* Test */
      class_test(int1 > _SELECTION_NUM_MAX_,errmsg,
                 "you want to compute density Cl's for %d different bins, hence you should increase _SELECTION_NUM_MAX_ in include/perturbations.h to at least this number.",int1);
      /* Complete set of parameters */
      ppt->selection_num = int1;
      for (i=0; i<int1; i++) {
        /* Test */
        class_test((pointer1[i] < 0.) || (pointer1[i] > 1000.),errmsg,
                   "input of selection functions: you asked for a mean redshift equal to %e, is this a mistake?",pointer1[i]);
        /* Complete set of parameters */
        ppt->selection_mean[i] = pointer1[i];
      }
      free(pointer1);
      for (i=1; i<int1; i++) {       // first set all widths to default; correct eventually later
        /* Test */
        class_test(ppt->selection_mean[i]<=ppt->selection_mean[i-1],
                   errmsg,
                   "input of selection functions: the list of mean redshifts must be passed in growing order; you entered %e before %e.",ppt->selection_mean[i-1],ppt->selection_mean[i]);
        /* Complete set of parameters */
        ppt->selection_width[i] = ppt->selection_width[0];
        ptr->selection_bias[i] = ptr->selection_bias[0];
        ptr->selection_magnification_bias[i] = ptr->selection_magnification_bias[0];
      }

      /* Read */
      class_call(parser_read_list_of_doubles(pfc,"selection_width",&int1,&pointer1,&flag1,errmsg),
                 errmsg,
                 errmsg);
      /* Complete set of parameters */
      if ((flag1 == _TRUE_) && (int1>0)) {
        if (int1==1) {
          for (i=0; i<ppt->selection_num; i++) {
            ppt->selection_width[i] = pointer1[0];
          }
        }
        else if (int1==ppt->selection_num) {
          for (i=0; i<int1; i++) {
            ppt->selection_width[i] = pointer1[i];
          }
        }
        else {
          class_stop(errmsg,
                     "In input for selection function, you asked for %d bin centers and %d bin widths; number of bins unclear; you should pass either one bin width (common to all bins) or %d bin widths.",ppt->selection_num,int1,ppt->selection_num);
        }
        free(pointer1);
      }

      /* Read */
      class_call(parser_read_list_of_doubles(pfc,"selection_bias",&int1,&pointer1,&flag1,errmsg),
                 errmsg,
                 errmsg);
      /* Complete set of parameters */
      if ((flag1 == _TRUE_) && (int1>0)) {
        if (int1==1) {
          for (i=0; i<ppt->selection_num; i++) {
            ptr->selection_bias[i] = pointer1[0];
          }
        }
        else if (int1==ppt->selection_num) {
          for (i=0; i<int1; i++) {
            ptr->selection_bias[i] = pointer1[i];
          }
        }
        else {
          class_stop(errmsg,
                     "In input for selection function, you asked for %d bin centers and %d bin biases; number of bins unclear; you should pass either one bin bias (common to all bins) or %d bin biases.",
                     ppt->selection_num,int1,ppt->selection_num);
        }
        free(pointer1);
      }

      /* Read */
      class_call(parser_read_list_of_doubles(pfc,"selection_magnification_bias",&int1,&pointer1,&flag1,errmsg),
                 errmsg,
                 errmsg);
      /* Complete set of parameters */
      if ((flag1 == _TRUE_) && (int1>0)) {
        if (int1==1) {
          for (i=0; i<ppt->selection_num; i++) {
            ptr->selection_magnification_bias[i] = pointer1[0];
          }
        }
        else if (int1==ppt->selection_num) {
          for (i=0; i<int1; i++) {
            ptr->selection_magnification_bias[i] = pointer1[i];
          }
        }
        else {
          class_stop(errmsg,
                     "In input for selection function, you asked for %d bin centers and %d bin biases; number of bins unclear; you should pass either one bin bias (common to all bins) or %d bin biases.",
                     ppt->selection_num,int1,ppt->selection_num);
        }
        free(pointer1);
      }
    }

    /* Read */
    if (ppt->selection_num > 1) {
      class_read_int("non_diagonal",phr->non_diag);
      if ((phr->non_diag<0) || (phr->non_diag>=ppt->selection_num))
        class_stop(errmsg,"Input for non_diagonal is %d, while it is expected to be between 0 and %d\n",
                   phr->non_diag,ppt->selection_num-1);
    }

    /** 2.b) Selection function */
    /* Read */
    class_call(parser_read_string(pfc,"dNdz_selection",&string1,&flag1,errmsg),
               errmsg,
               errmsg);
    /* Complete set of parameters */
    if (flag1 == _TRUE_) {
      if ((strstr(string1,"analytic") != NULL)){
        ptr->has_nz_analytic = _TRUE_;
      }
      else{
        ptr->has_nz_file = _TRUE_;
        class_read_string("dNdz_selection",ptr->nz_file_name);
      }
    }

    /** 2.c) Source number counts evolution */
    class_call(parser_read_string(pfc,"dNdz_evolution",&string1,&flag1,errmsg),
               errmsg,
               errmsg);
    /* Complete set of parameters */
    if (flag1 == _TRUE_) {
      if ((strstr(string1,"analytic") != NULL)){
        ptr->has_nz_evo_analytic = _TRUE_;
      }
      else{
        ptr->has_nz_evo_file = _TRUE_;
        class_read_string("dNdz_evolution",ptr->nz_evo_file_name);
      }
    }

  }


  /** 3) Power spectrum P(k) */
  if ((ppt->has_pk_matter == _TRUE_) || (ppt->has_density_transfers == _TRUE_) || (ppt->has_velocity_transfers == _TRUE_)){

    /** 3.a) Maximum k in P(k) */
    /* Read */
    class_call(parser_read_double(pfc,"P_k_max_h/Mpc",&param1,&flag1,errmsg),
               errmsg,
               errmsg);
    class_call(parser_read_double(pfc,"P_k_max_1/Mpc",&param2,&flag2,errmsg),
               errmsg,
               errmsg);
    /* Test */
    class_test((flag1 == _TRUE_) && (flag2 == _TRUE_),
               errmsg,
               "You can only enter one of 'P_k_max_h/Mpc' or 'P_k_max_1/Mpc'.");
    /* Complete set of parameters */
    if (flag1 == _TRUE_){
      ppt->k_max_for_pk = param1*pba->h;
    }
    if (flag2 == _TRUE_){
      ppt->k_max_for_pk = param2;
    }

    /** 3.a.1) Maximum k in primordial P(k) */
    /* Read */
    class_call(parser_read_double(pfc,"primordial_P_k_max_h/Mpc",&param1,&flag1,errmsg),
               errmsg,
               errmsg);
    class_call(parser_read_double(pfc,"primordial_P_k_max_1/Mpc",&param2,&flag2,errmsg),
               errmsg,
               errmsg);
    /* Test */
    class_test((flag1 == _TRUE_) && (flag2 == _TRUE_),
               errmsg,
               "You can only enter one of 'primordial_P_k_max_h/Mpc' or 'primordial_P_k_max_1/Mpc'.");
    /* Complete set of parameters */
    if (flag1 == _TRUE_){
      ppm->k_max_for_primordial_pk=param1*pba->h;
      ppm->has_k_max_for_primordial_pk = _TRUE_;
    }
    if (flag2 == _TRUE_){
      ppm->k_max_for_primordial_pk=param2;
      ppm->has_k_max_for_primordial_pk = _TRUE_;
    }

    /** 3.b) Redshift values */
    /* Read */
    class_call(parser_read_list_of_doubles(pfc,"z_pk",&int1,&pointer1,&flag1,errmsg),
               errmsg,
               errmsg);
    /* Test */
    if (flag1 == _TRUE_) {
      class_test(int1 > _Z_PK_NUM_MAX_,
                 errmsg,
                 "you want to write some output for %d different values of z, hence you should increase _Z_PK_NUM_MAX_ in include/output.h to at least this number",
                 int1);
      /* Complete set of parameters */
      pop->z_pk_num = int1;
      for (i=0; i<int1; i++) {
        pop->z_pk[i] = pointer1[i];
      }
      free(pointer1);
    }

  }

  /** 3.c) Maximum redshift */
  if ((ppt->has_pk_matter == _TRUE_) || (ppt->has_density_transfers == _TRUE_) || (ppt->has_velocity_transfers == _TRUE_) || (ppt->has_cl_number_count == _TRUE_) || (ppt->has_cl_lensing_potential == _TRUE_)) {
    /* Read */
    class_call(parser_read_double(pfc,"z_max_pk",&param1,&flag1,errmsg),
               errmsg,
               errmsg);

    /* Complete set of parameters */
    if (flag1==_TRUE_) {
      ppt->z_max_pk = param1;
    }
    /* *
     * If we could not read a z_max, we need to define one.
     * The limit could come from any of the contributions.
     * We test here, which contribution requires the largest z_max
     * */
    else {
      ppt->z_max_pk = 0.;
      /* For the z_pk related quantities, test here the z_pk requirements */
      if ((ppt->has_pk_matter == _TRUE_) || (ppt->has_density_transfers == _TRUE_) || (ppt->has_velocity_transfers == _TRUE_)) {
        for (i=0; i<pop->z_pk_num; i++) {
          ppt->z_max_pk = MAX(ppt->z_max_pk,pop->z_pk[i]);
        }
      }
      /* For the number count / shear related quantities, test the selection function z_max */
      if ((ppt->has_cl_number_count == _TRUE_) || (ppt->has_cl_lensing_potential == _TRUE_)){
        for (bin=0; bin<ppt->selection_num; bin++) {
          /* the few lines below should be consistent with their counterpart in transfer.c, in transfer_selection_times */
          if (ppt->selection==gaussian) {
            z_max = ppt->selection_mean[bin]+ppt->selection_width[bin]*ppr->selection_cut_at_sigma;
          }
          if (ppt->selection==tophat) {
            z_max = ppt->selection_mean[bin]+(1.+ppr->selection_cut_at_sigma*ppr->selection_tophat_edge)*ppt->selection_width[bin];
          }
          if (ppt->selection==dirac) {
            z_max = ppt->selection_mean[bin];
          }
          ppt->z_max_pk = MAX(ppt->z_max_pk,z_max);
        }
      }
      /* Now we have checked all contributions that could change z_max_pk */
    }
  }


  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))) {
               class_read_double("zp_lya",param1);
               class_test(ppt->z_max_pk<param1, errmsg, "You requested get_lyman_alpha_tilt_and_amplitude but have ppt->z_max_pk < pnl->zp_lya. Please update.");
              }

  return _SUCCESS_;

}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1448, %rsp           # imm = 0x1448
movq %r9, %r12
movq %r8, %r14
movq %rcx, %r13
movq %rdx, %rbp
movq %rsi, 0x38(%rsp)
movq %rdi, %r15
movq 0x1490(%rsp), %rbx
cmpw $0x1, 0xc(%r8)
jne 0x57dbb
cmpw $0x1, 0xe(%r14)
jne 0x57cbf
cmpw $0x1, 0x28(%r14)
je 0x57bc3
cmpw $0x1, 0x2a(%r14)
je 0x57bc3
cmpw $0x1, 0x2c(%r14)
jne 0x57c39
leaq 0xa0af6(%rip), %rsi     # 0xf86c0
leaq 0xc40(%rsp), %rdx
leaq 0x40(%rsp), %rcx
movq %r15, %rdi
movq %rbx, %r8
callq 0x1e8ed
cmpl $0x1, %eax
jne 0x57c25
leaq 0x96802(%rip), %rsi     # 0xee3f0
leaq 0xaf35c(%rip), %rdx     # 0x106f51
leaq 0x440(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x30af0
leaq 0x96423(%rip), %rsi     # 0xee034
leaq 0xaf37f(%rip), %rdx     # 0x106f97
movq %rbx, %rdi
movl $0x1979, %ecx           # imm = 0x1979
jmp 0x58f14
cmpl $0x1, 0x40(%rsp)
jne 0x57c39
cvttsd2si 0xc40(%rsp), %eax
movl %eax, 0x48(%r14)
cmpw $0x1, 0x2e(%r14)
je 0x57c49
cmpw $0x1, 0x30(%r14)
jne 0x57cbf
leaq 0xaf365(%rip), %rsi     # 0x106fb5
leaq 0xc40(%rsp), %rdx
leaq 0x40(%rsp), %rcx
movq %r15, %rdi
movq %rbx, %r8
callq 0x1e8ed
cmpl $0x1, %eax
jne 0x57cab
leaq 0x9677c(%rip), %rsi     # 0xee3f0
leaq 0xaf344(%rip), %rdx     # 0x106fbf
leaq 0x440(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x30af0
leaq 0x9639d(%rip), %rsi     # 0xee034
leaq 0xaf2f9(%rip), %rdx     # 0x106f97
movq %rbx, %rdi
movl $0x197c, %ecx           # imm = 0x197C
jmp 0x58f14
cmpl $0x1, 0x40(%rsp)
jne 0x57cbf
cvttsd2si 0xc40(%rsp), %eax
movl %eax, 0x54(%r14)
cmpw $0x1, 0x10(%r14)
jne 0x57d3d
leaq 0xaf333(%rip), %rsi     # 0x107001
leaq 0xc40(%rsp), %rdx
leaq 0x40(%rsp), %rcx
movq %r15, %rdi
movq %rbx, %r8
callq 0x1e8ed
cmpl $0x1, %eax
jne 0x57d29
leaq 0x966fe(%rip), %rsi     # 0xee3f0
leaq 0xaf316(%rip), %rdx     # 0x10700f
leaq 0x440(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x30af0
leaq 0x9631f(%rip), %rsi     # 0xee034
leaq 0xaf27b(%rip), %rdx     # 0x106f97
movq %rbx, %rdi
movl $0x1980, %ecx           # imm = 0x1980
jmp 0x58f14
cmpl $0x1, 0x40(%rsp)
jne 0x57d3d
cvttsd2si 0xc40(%rsp), %eax
movl %eax, 0x4c(%r14)
cmpw $0x1, 0x12(%r14)
jne 0x57dbb
leaq 0xaf309(%rip), %rsi     # 0x107055
leaq 0xc40(%rsp), %rdx
leaq 0x40(%rsp), %rcx
movq %r15, %rdi
movq %rbx, %r8
callq 0x1e8ed
cmpl $0x1, %eax
jne 0x57da7
leaq 0x96680(%rip), %rsi     # 0xee3f0
leaq 0xaf2ec(%rip), %rdx     # 0x107063
leaq 0x440(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x30af0
leaq 0x962a1(%rip), %rsi     # 0xee034
leaq 0xaf1fd(%rip), %rdx     # 0x106f97
movq %rbx, %rdi
movl $0x1983, %ecx           # imm = 0x1983
jmp 0x58f14
cmpl $0x1, 0x40(%rsp)
jne 0x57dbb
cvttsd2si 0xc40(%rsp), %eax
movl %eax, 0x50(%r14)
cmpw $0x1, 0x30(%r14)
je 0x57dcf
cmpw $0x1, 0x2e(%r14)
jne 0x587a5
leaq 0xc9059(%rip), %rsi     # 0x120e2f
leaq 0x40(%rsp), %rdx
leaq 0x8(%rsp), %rcx
movq %r15, %rdi
movq %rbx, %r8
callq 0x1ec7f
cmpl $0x1, %eax
jne 0x57e2e
leaq 0x965f9(%rip), %rsi     # 0xee3f0
leaq 0xaf2ab(%rip), %rdx     # 0x1070a9
leaq 0x440(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x30af0
leaq 0x9621a(%rip), %rsi     # 0xee034
leaq 0xaf176(%rip), %rdx     # 0x106f97
movq %rbx, %rdi
movl $0x198f, %ecx           # imm = 0x198F
jmp 0x58f14
cmpl $0x1, 0x8(%rsp)
jne 0x57e8b
leaq 0xaf2a8(%rip), %rsi     # 0x1070e4
leaq 0x40(%rsp), %rdi
callq 0x80c0
xorl %ecx, %ecx
testq %rax, %rax
jne 0x57e87
leaq 0xaf299(%rip), %rsi     # 0x1070ed
leaq 0x40(%rsp), %rdi
callq 0x80c0
movl $0x1, %ecx
testq %rax, %rax
jne 0x57e87
leaq 0xaf285(%rip), %rsi     # 0x1070f4
leaq 0x40(%rsp), %rdi
callq 0x80c0
movl $0x2, %ecx
testq %rax, %rax
je 0x580d1
movl %ecx, 0x68(%r14)
leaq 0xaf2be(%rip), %rsi     # 0x107150
leaq 0xc(%rsp), %rdx
leaq 0x18(%rsp), %rcx
leaq 0x8(%rsp), %r8
movq %r15, %rdi
movq %rbx, %r9
callq 0x1edc7
cmpl $0x1, %eax
jne 0x57eef
leaq 0x96538(%rip), %rsi     # 0xee3f0
leaq 0xaf2a0(%rip), %rdx     # 0x10715f
leaq 0x440(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x30af0
leaq 0x96159(%rip), %rsi     # 0xee034
leaq 0xaf0b5(%rip), %rdx     # 0x106f97
movq %rbx, %rdi
movl $0x19a3, %ecx           # imm = 0x19A3
jmp 0x58f14
cmpl $0x1, 0x8(%rsp)
sete %al
movl 0xc(%rsp), %edx
testl %edx, %edx
setg %cl
andb %al, %cl
cmpb $0x1, %cl
jne 0x585ee
cmpl $0x65, %edx
jb 0x57f67
leaq 0xaf29c(%rip), %rsi     # 0x1071b3
leaq 0x440(%rsp), %r14
movq %r14, %rdi
xorl %eax, %eax
callq 0x30af0
leaq 0x96152(%rip), %rsi     # 0xee082
leaq 0xaf316(%rip), %rdx     # 0x10724d
leaq 0xc40(%rsp), %r15
movq %r15, %rdi
movq %r14, %rcx
xorl %eax, %eax
callq 0x30af0
leaq 0x960e1(%rip), %rsi     # 0xee034
leaq 0xaf03d(%rip), %rdx     # 0x106f97
movq %rbx, %rdi
movl $0x19a7, %ecx           # imm = 0x19A7
jmp 0x59049
movl %edx, %eax
movl %edx, 0x64(%r14)
xorl %ecx, %ecx
movq 0x18(%rsp), %rdi
xorpd %xmm1, %xmm1
movsd 0x9ac98(%rip), %xmm2    # 0xf2c18
movsd (%rdi,%rcx,8), %xmm0
ucomisd %xmm0, %xmm1
ja 0x5807a
ucomisd %xmm2, %xmm0
ja 0x5807a
movsd %xmm0, 0x70(%r14,%rcx,8)
incq %rcx
cmpq %rcx, %rax
jne 0x57f80
callq 0x8410
movslq 0xc(%rsp), %rax
cmpq $0x2, %rax
jl 0x58012
decq %rax
xorl %ecx, %ecx
movsd 0x70(%r14,%rcx,8), %xmm0
movsd 0x78(%r14,%rcx,8), %xmm1
ucomisd %xmm1, %xmm0
jae 0x581ff
movsd 0x390(%r14), %xmm0
movsd %xmm0, 0x398(%r14,%rcx,8)
movsd 0x18(%r12), %xmm0
movsd %xmm0, 0x20(%r12,%rcx,8)
movsd 0x338(%r12), %xmm0
movsd %xmm0, 0x340(%r12,%rcx,8)
incq %rcx
cmpq %rcx, %rax
jne 0x57fbd
leaq 0xaf37c(%rip), %rsi     # 0x107395
leaq 0xc(%rsp), %rdx
leaq 0x18(%rsp), %rcx
leaq 0x8(%rsp), %r8
movq %r15, %rdi
movq %rbx, %r9
callq 0x1edc7
cmpl $0x1, %eax
jne 0x58126
leaq 0x963ad(%rip), %rsi     # 0xee3f0
leaq 0xaf35b(%rip), %rdx     # 0x1073a5
leaq 0x440(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x30af0
leaq 0x95fce(%rip), %rsi     # 0xee034
leaq 0xaef2a(%rip), %rdx     # 0x106f97
movq %rbx, %rdi
movl $0x19c0, %ecx           # imm = 0x19C0
jmp 0x58f14
leaq 0xaf1e7(%rip), %rsi     # 0x107268
leaq 0x440(%rsp), %r14
movq %r14, %rdi
movb $0x1, %al
callq 0x30af0
leaq 0x95fe8(%rip), %rsi     # 0xee082
leaq 0xaf223(%rip), %rdx     # 0x1072c4
leaq 0xc40(%rsp), %r15
movq %r15, %rdi
movq %r14, %rcx
xorl %eax, %eax
callq 0x30af0
leaq 0x95f77(%rip), %rsi     # 0xee034
leaq 0xaeed3(%rip), %rdx     # 0x106f97
movq %rbx, %rdi
movl $0x19ad, %ecx           # imm = 0x19AD
jmp 0x59049
leaq 0xaf022(%rip), %rsi     # 0x1070fa
leaq 0x440(%rsp), %r14
leaq 0x40(%rsp), %rdx
movq %r14, %rdi
xorl %eax, %eax
callq 0x30af0
leaq 0x9648f(%rip), %rsi     # 0xee585
leaq 0xc40(%rsp), %r15
movq %r15, %rdi
movq %r14, %rdx
xorl %eax, %eax
callq 0x30af0
leaq 0x95f22(%rip), %rsi     # 0xee034
leaq 0xaee7e(%rip), %rdx     # 0x106f97
movq %rbx, %rdi
movl $0x199c, %ecx           # imm = 0x199C
jmp 0x59049
cmpl $0x1, 0x8(%rsp)
sete %cl
movl 0xc(%rsp), %eax
testl %eax, %eax
setg %dl
andb %cl, %dl
cmpb $0x1, %dl
jne 0x58281
movl %eax, %ecx
movl 0x64(%r14), %edx
cmpl $0x1, %ecx
jne 0x58256
movq 0x18(%rsp), %rdi
testl %edx, %edx
jle 0x5827c
movsd (%rdi), %xmm0
leal 0x1(%rdx), %eax
decq %rdx
movq %rdx, %xmm1
pshufd $0x44, %xmm1, %xmm1     # xmm1 = xmm1[0,1,0,1]
shrl %eax
shlq $0x4, %rax
movdqa 0x96b00(%rip), %xmm2    # 0xeec80
xorl %ecx, %ecx
movdqa 0x96b06(%rip), %xmm3    # 0xeec90
pxor %xmm3, %xmm1
pcmpeqd %xmm4, %xmm4
movdqa 0x975f6(%rip), %xmm5    # 0xef790
movdqa %xmm2, %xmm6
pxor %xmm3, %xmm6
movdqa %xmm6, %xmm7
pcmpgtd %xmm1, %xmm7
pcmpeqd %xmm1, %xmm6
pshufd $0xf5, %xmm6, %xmm8     # xmm8 = xmm6[1,1,3,3]
pand %xmm7, %xmm8
pshufd $0xf5, %xmm7, %xmm6     # xmm6 = xmm7[1,1,3,3]
por %xmm8, %xmm6
movd %xmm6, %edx
notl %edx
testb $0x1, %dl
je 0x581d8
movsd %xmm0, 0x390(%r14,%rcx)
pxor %xmm4, %xmm6
pextrw $0x4, %xmm6, %edx
testb $0x1, %dl
je 0x581f0
movsd %xmm0, 0x398(%r14,%rcx)
paddq %xmm5, %xmm2
addq $0x10, %rcx
cmpq %rcx, %rax
jne 0x5819a
jmp 0x5827c
leaq 0xaf0ea(%rip), %rsi     # 0x1072f0
leaq 0x440(%rsp), %r14
movq %r14, %rdi
movb $0x2, %al
callq 0x30af0
leaq 0x95e63(%rip), %rsi     # 0xee082
leaq 0xaf13e(%rip), %rdx     # 0x107364
leaq 0xc40(%rsp), %r15
movq %r15, %rdi
movq %r14, %rcx
xorl %eax, %eax
callq 0x30af0
leaq 0x95df2(%rip), %rsi     # 0xee034
leaq 0xaed4e(%rip), %rdx     # 0x106f97
movq %rbx, %rdi
movl $0x19b6, %ecx           # imm = 0x19B6
jmp 0x59049
cmpl %edx, %ecx
jne 0x583b8
movq 0x18(%rsp), %rdi
xorl %eax, %eax
movsd (%rdi,%rax,8), %xmm0
movsd %xmm0, 0x390(%r14,%rax,8)
incq %rax
cmpq %rax, %rcx
jne 0x58265
callq 0x8410
leaq 0xaf223(%rip), %rsi     # 0x1074ab
leaq 0xc(%rsp), %rdx
leaq 0x18(%rsp), %rcx
leaq 0x8(%rsp), %r8
movq %r15, %rdi
movq %rbx, %r9
callq 0x1edc7
cmpl $0x1, %eax
jne 0x582e5
leaq 0x96142(%rip), %rsi     # 0xee3f0
leaq 0xaf205(%rip), %rdx     # 0x1074ba
leaq 0x440(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x30af0
leaq 0x95d63(%rip), %rsi     # 0xee034
leaq 0xaecbf(%rip), %rdx     # 0x106f97
movq %rbx, %rdi
movl $0x19d7, %ecx           # imm = 0x19D7
jmp 0x58f14
cmpl $0x1, 0x8(%rsp)
sete %cl
movl 0xc(%rsp), %eax
testl %eax, %eax
setg %dl
andb %cl, %dl
cmpb $0x1, %dl
jne 0x58433
movl %eax, %ecx
movl 0x64(%r14), %edx
cmpl $0x1, %ecx
jne 0x5840b
movq 0x18(%rsp), %rdi
testl %edx, %edx
jle 0x5842e
movsd (%rdi), %xmm0
leal 0x1(%rdx), %eax
decq %rdx
movq %rdx, %xmm1
pshufd $0x44, %xmm1, %xmm1     # xmm1 = xmm1[0,1,0,1]
shrl %eax
shlq $0x4, %rax
movdqa 0x96941(%rip), %xmm2    # 0xeec80
xorl %ecx, %ecx
movdqa 0x96947(%rip), %xmm3    # 0xeec90
pxor %xmm3, %xmm1
pcmpeqd %xmm4, %xmm4
movdqa 0x97437(%rip), %xmm5    # 0xef790
movdqa %xmm2, %xmm6
pxor %xmm3, %xmm6
movdqa %xmm6, %xmm7
pcmpgtd %xmm1, %xmm7
pcmpeqd %xmm1, %xmm6
pshufd $0xf5, %xmm6, %xmm8     # xmm8 = xmm6[1,1,3,3]
pand %xmm7, %xmm8
pshufd $0xf5, %xmm7, %xmm6     # xmm6 = xmm7[1,1,3,3]
por %xmm8, %xmm6
movd %xmm6, %edx
notl %edx
testb $0x1, %dl
je 0x58394
movsd %xmm0, 0x18(%r12,%rcx)
pxor %xmm4, %xmm6
pextrw $0x4, %xmm6, %edx
testb $0x1, %dl
je 0x583a9
movsd %xmm0, 0x20(%r12,%rcx)
paddq %xmm5, %xmm2
addq $0x10, %rcx
cmpq %rcx, %rax
jne 0x58359
jmp 0x5842e
leaq 0xaf037(%rip), %rsi     # 0x1073f6
leaq 0x440(%rsp), %r14
movq %r14, %rdi
movl %edx, %r8d
xorl %eax, %eax
callq 0x30af0
leaq 0x961aa(%rip), %rsi     # 0xee585
leaq 0xc40(%rsp), %r15
movq %r15, %rdi
movq %r14, %rdx
xorl %eax, %eax
callq 0x30af0
leaq 0x95c3d(%rip), %rsi     # 0xee034
leaq 0xaeb99(%rip), %rdx     # 0x106f97
movq %rbx, %rdi
movl $0x19cf, %ecx           # imm = 0x19CF
jmp 0x59049
cmpl %edx, %ecx
jne 0x58570
movq 0x18(%rsp), %rdi
xorl %eax, %eax
movsd (%rdi,%rax,8), %xmm0
movsd %xmm0, 0x18(%r12,%rax,8)
incq %rax
cmpq %rax, %rcx
jne 0x5841a
callq 0x8410
leaq 0xaf184(%rip), %rsi     # 0x1075be
leaq 0xc(%rsp), %rdx
leaq 0x18(%rsp), %rcx
leaq 0x8(%rsp), %r8
movq %r15, %rdi
movq %rbx, %r9
callq 0x1edc7
cmpl $0x1, %eax
jne 0x58497
leaq 0x95f90(%rip), %rsi     # 0xee3f0
leaq 0xaf174(%rip), %rdx     # 0x1075db
leaq 0x440(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x30af0
leaq 0x95bb1(%rip), %rsi     # 0xee034
leaq 0xaeb0d(%rip), %rdx     # 0x106f97
movq %rbx, %rdi
movl $0x19ef, %ecx           # imm = 0x19EF
jmp 0x58f14
cmpl $0x1, 0x8(%rsp)
sete %cl
movl 0xc(%rsp), %eax
testl %eax, %eax
setg %dl
andb %cl, %dl
cmpb $0x1, %dl
jne 0x585ee
movl %eax, %ecx
movl 0x64(%r14), %edx
cmpl $0x1, %ecx
jne 0x585c3
movq 0x18(%rsp), %rdi
testl %edx, %edx
jle 0x585e9
movsd (%rdi), %xmm0
leal 0x1(%rdx), %eax
decq %rdx
movq %rdx, %xmm1
pshufd $0x44, %xmm1, %xmm1     # xmm1 = xmm1[0,1,0,1]
shrl %eax
shlq $0x4, %rax
movdqa 0x9678f(%rip), %xmm2    # 0xeec80
xorl %ecx, %ecx
movdqa 0x96795(%rip), %xmm3    # 0xeec90
pxor %xmm3, %xmm1
pcmpeqd %xmm4, %xmm4
movdqa 0x97285(%rip), %xmm5    # 0xef790
movdqa %xmm2, %xmm6
pxor %xmm3, %xmm6
movdqa %xmm6, %xmm7
pcmpgtd %xmm1, %xmm7
pcmpeqd %xmm1, %xmm6
pshufd $0xf5, %xmm6, %xmm8     # xmm8 = xmm6[1,1,3,3]
pand %xmm7, %xmm8
pshufd $0xf5, %xmm7, %xmm6     # xmm6 = xmm7[1,1,3,3]
por %xmm8, %xmm6
movd %xmm6, %edx
notl %edx
testb $0x1, %dl
je 0x58549
movsd %xmm0, 0x338(%r12,%rcx)
pxor %xmm4, %xmm6
pextrw $0x4, %xmm6, %edx
testb $0x1, %dl
je 0x58561
movsd %xmm0, 0x340(%r12,%rcx)
paddq %xmm5, %xmm2
addq $0x10, %rcx
cmpq %rcx, %rax
jne 0x5850b
jmp 0x585e9
leaq 0xaef93(%rip), %rsi     # 0x10750a
leaq 0x440(%rsp), %r14
movq %r14, %rdi
movl %edx, %r8d
xorl %eax, %eax
callq 0x30af0
leaq 0x95ff2(%rip), %rsi     # 0xee585
leaq 0xc40(%rsp), %r15
movq %r15, %rdi
movq %r14, %rdx
xorl %eax, %eax
callq 0x30af0
leaq 0x95a85(%rip), %rsi     # 0xee034
leaq 0xae9e1(%rip), %rdx     # 0x106f97
movq %rbx, %rdi
movl $0x19e7, %ecx           # imm = 0x19E7
jmp 0x59049
cmpl %edx, %ecx
jne 0x59051
movq 0x18(%rsp), %rdi
xorl %eax, %eax
movsd (%rdi,%rax,8), %xmm0
movsd %xmm0, 0x338(%r12,%rax,8)
incq %rax
cmpq %rax, %rcx
jne 0x585d2
callq 0x8410
cmpl $0x2, 0x64(%r14)
jl 0x5868f
leaq 0xaf039(%rip), %rsi     # 0x107639
leaq 0xc40(%rsp), %rdx
leaq 0x10(%rsp), %rcx
movq %r15, %rdi
movq %rbx, %r8
callq 0x1e736
cmpl $0x1, %eax
jne 0x5865b
leaq 0x95dcc(%rip), %rsi     # 0xee3f0
leaq 0xaf01b(%rip), %rdx     # 0x107646
leaq 0x440(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x30af0
leaq 0x959ed(%rip), %rsi     # 0xee034
leaq 0xae949(%rip), %rdx     # 0x106f97
movq %rbx, %rdi
movl $0x1a07, %ecx           # imm = 0x1A07
jmp 0x58f14
movq 0x1480(%rsp), %rax
cmpl $0x1, 0x10(%rsp)
jne 0x58675
movl 0xc40(%rsp), %edx
movl %edx, (%rax)
jmp 0x58677
movl (%rax), %edx
testl %edx, %edx
setns %al
movl 0x64(%r14), %ecx
cmpl %ecx, %edx
setl %sil
testb %sil, %al
je 0x589dd
leaq 0xaf03b(%rip), %rsi     # 0x1076d1
leaq 0x40(%rsp), %rdx
leaq 0x8(%rsp), %rcx
movq %r15, %rdi
movq %rbx, %r8
callq 0x1ec7f
cmpl $0x1, %eax
jne 0x586ee
leaq 0x95d39(%rip), %rsi     # 0xee3f0
leaq 0xaf022(%rip), %rdx     # 0x1076e0
leaq 0x440(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x30af0
leaq 0x9595a(%rip), %rsi     # 0xee034
leaq 0xae8b6(%rip), %rdx     # 0x106f97
movq %rbx, %rdi
movl $0x1a11, %ecx           # imm = 0x1A11
jmp 0x58f14
cmpl $0x1, 0x8(%rsp)
jne 0x5871a
leaq 0xaa7c3(%rip), %rsi     # 0x102ebf
leaq 0x40(%rsp), %rdi
callq 0x80c0
testq %rax, %rax
je 0x58aa0
movw $0x1, 0x65a(%r12)
leaq 0xaf047(%rip), %rsi     # 0x107768
leaq 0x40(%rsp), %rdx
leaq 0x8(%rsp), %rcx
movq %r15, %rdi
movq %rbx, %r8
callq 0x1ec7f
cmpl $0x1, %eax
jne 0x58779
leaq 0x95cae(%rip), %rsi     # 0xee3f0
leaq 0xaf02e(%rip), %rdx     # 0x107777
leaq 0x440(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x30af0
leaq 0x958cf(%rip), %rsi     # 0xee034
leaq 0xae82b(%rip), %rdx     # 0x106f97
movq %rbx, %rdi
movl $0x1a20, %ecx           # imm = 0x1A20
jmp 0x58f14
cmpl $0x1, 0x8(%rsp)
jne 0x587a5
leaq 0xaa738(%rip), %rsi     # 0x102ebf
leaq 0x40(%rsp), %rdi
callq 0x80c0
testq %rax, %rax
je 0x58bd5
movw $0x1, 0x77a(%r12)
movq 0x1488(%rsp), %r12
cmpw $0x1, 0x32(%r14)
je 0x587c9
cmpw $0x1, 0x34(%r14)
je 0x587c9
cmpw $0x1, 0x36(%r14)
jne 0x58d09
leaq 0xaf0f4(%rip), %rsi     # 0x1078c4
leaq 0x10(%rsp), %rdx
leaq 0x8(%rsp), %rcx
movq %r15, %rdi
movq %rbx, %r8
callq 0x1e8ed
cmpl $0x1, %eax
jne 0x58828
leaq 0x95bff(%rip), %rsi     # 0xee3f0
leaq 0xaf007(%rip), %rdx     # 0x1077ff
leaq 0x440(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x30af0
leaq 0x95820(%rip), %rsi     # 0xee034
leaq 0xae77c(%rip), %rdx     # 0x106f97
movq %rbx, %rdi
movl $0x1a36, %ecx           # imm = 0x1A36
jmp 0x58f14
leaq 0xaf0f7(%rip), %rsi     # 0x107926
leaq 0x28(%rsp), %rdx
leaq 0x24(%rsp), %rcx
movq %r15, %rdi
movq %rbx, %r8
callq 0x1e8ed
cmpl $0x1, %eax
jne 0x58887
leaq 0x95ba0(%rip), %rsi     # 0xee3f0
leaq 0xaefe6(%rip), %rdx     # 0x10783d
leaq 0x440(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x30af0
leaq 0x957c1(%rip), %rsi     # 0xee034
leaq 0xae71d(%rip), %rdx     # 0x106f97
movq %rbx, %rdi
movl $0x1a39, %ecx           # imm = 0x1A39
jmp 0x58f14
movl 0x8(%rsp), %ecx
movl %ecx, %edx
xorl $0x1, %edx
movl 0x24(%rsp), %eax
movl %eax, %esi
xorl $0x1, %esi
orl %edx, %esi
jne 0x588f4
leaq 0xaefd7(%rip), %rsi     # 0x10787b
leaq 0x440(%rsp), %r14
movq %r14, %rdi
xorl %eax, %eax
callq 0x30af0
leaq 0x957c5(%rip), %rsi     # 0xee082
leaq 0x9b337(%rip), %rdx     # 0xf3bfb
leaq 0xc40(%rsp), %r15
movq %r15, %rdi
movq %r14, %rcx
xorl %eax, %eax
callq 0x30af0
leaq 0x95754(%rip), %rsi     # 0xee034
leaq 0xae6b0(%rip), %rdx     # 0x106f97
movq %rbx, %rdi
movl $0x1a3d, %ecx           # imm = 0x1A3D
jmp 0x59049
cmpl $0x1, %ecx
jne 0x5890a
movsd 0x10(%rsp), %xmm0
mulsd 0x8(%rbp), %xmm0
movsd %xmm0, 0x58(%r14)
cmpl $0x1, %eax
jne 0x5891b
movsd 0x28(%rsp), %xmm0
movsd %xmm0, 0x58(%r14)
leaq 0xaef97(%rip), %rsi     # 0x1078b9
leaq 0x10(%rsp), %rdx
leaq 0x8(%rsp), %rcx
movq %r15, %rdi
movq %rbx, %r8
callq 0x1e8ed
cmpl $0x1, %eax
jne 0x5897a
leaq 0x95aad(%rip), %rsi     # 0xee3f0
leaq 0xaef88(%rip), %rdx     # 0x1078d2
leaq 0x440(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x30af0
leaq 0x956ce(%rip), %rsi     # 0xee034
leaq 0xae62a(%rip), %rdx     # 0x106f97
movq %rbx, %rdi
movl $0x1a4a, %ecx           # imm = 0x1A4A
jmp 0x58f14
leaq 0xaef9a(%rip), %rsi     # 0x10791b
leaq 0x28(%rsp), %rdx
leaq 0x24(%rsp), %rcx
movq %r15, %rdi
movq %rbx, %r8
callq 0x1e8ed
cmpl $0x1, %eax
jne 0x58a2f
leaq 0x95a4a(%rip), %rsi     # 0xee3f0
leaq 0xaef87(%rip), %rdx     # 0x107934
leaq 0x440(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x30af0
leaq 0x9566b(%rip), %rsi     # 0xee034
leaq 0xae5c7(%rip), %rdx     # 0x106f97
movq %rbx, %rdi
movl $0x1a4d, %ecx           # imm = 0x1A4D
jmp 0x58f14
decl %ecx
leaq 0xaeca0(%rip), %rsi     # 0x107686
leaq 0x440(%rsp), %r14
movq %r14, %rdi
xorl %eax, %eax
callq 0x30af0
leaq 0x95b86(%rip), %rsi     # 0xee585
leaq 0xc40(%rsp), %r15
movq %r15, %rdi
movq %r14, %rdx
xorl %eax, %eax
callq 0x30af0
leaq 0x95619(%rip), %rsi     # 0xee034
leaq 0xae575(%rip), %rdx     # 0x106f97
movq %rbx, %rdi
movl $0x1a0a, %ecx           # imm = 0x1A0A
jmp 0x59049
movl 0x8(%rsp), %ecx
movl %ecx, %edx
xorl $0x1, %edx
movl 0x24(%rsp), %eax
movl %eax, %esi
xorl $0x1, %esi
orl %edx, %esi
jne 0x58b11
leaq 0xaef2d(%rip), %rsi     # 0x10797d
leaq 0x440(%rsp), %r14
movq %r14, %rdi
xorl %eax, %eax
callq 0x30af0
leaq 0x95619(%rip), %rsi     # 0xee082
leaq 0x9b18b(%rip), %rdx     # 0xf3bfb
leaq 0xc40(%rsp), %r15
movq %r15, %rdi
movq %r14, %rcx
xorl %eax, %eax
callq 0x30af0
leaq 0x955a8(%rip), %rsi     # 0xee034
leaq 0xae504(%rip), %rdx     # 0x106f97
movq %rbx, %rdi
movl $0x1a51, %ecx           # imm = 0x1A51
jmp 0x59049
movw $0x1, 0x658(%r12)
leaq 0xaec1f(%rip), %rsi     # 0x1076d1
leaq 0xc40(%rsp), %rdx
leaq 0x10(%rsp), %rcx
movq %r15, %rdi
movq %rbx, %r8
callq 0x1ec7f
cmpl $0x1, %eax
jne 0x58bb0
leaq 0x95916(%rip), %rsi     # 0xee3f0
leaq 0xaec3f(%rip), %rdx     # 0x107720
leaq 0x440(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x30af0
leaq 0x95537(%rip), %rsi     # 0xee034
leaq 0xae493(%rip), %rdx     # 0x106f97
movq %rbx, %rdi
movl $0x1a19, %ecx           # imm = 0x1A19
jmp 0x58f14
cmpl $0x1, %ecx
jne 0x58b2f
movsd 0x10(%rsp), %xmm0
mulsd 0x8(%rbp), %xmm0
movsd %xmm0, 0x10(%r13)
movl $0x1, 0x8(%r13)
cmpl $0x1, %eax
jne 0x58b48
movsd 0x28(%rsp), %xmm0
movsd %xmm0, 0x10(%r13)
movl $0x1, 0x8(%r13)
leaq 0xaee82(%rip), %rsi     # 0x1079d1
leaq 0xc(%rsp), %rdx
leaq 0x18(%rsp), %rcx
leaq 0x8(%rsp), %r8
movq %r15, %rdi
movq %rbx, %r9
callq 0x1edc7
cmpl $0x1, %eax
jne 0x58c46
leaq 0x95877(%rip), %rsi     # 0xee3f0
leaq 0xaee56(%rip), %rdx     # 0x1079d6
leaq 0x440(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x30af0
leaq 0x95498(%rip), %rsi     # 0xee034
leaq 0xae3f4(%rip), %rdx     # 0x106f97
movq %rbx, %rdi
movl $0x1a60, %ecx           # imm = 0x1A60
jmp 0x58f14
cmpl $0x1, 0x10(%rsp)
jne 0x5871a
leaq 0x65c(%r12), %rdi
leaq 0xc40(%rsp), %rsi
callq 0x8350
jmp 0x5871a
movw $0x1, 0x778(%r12)
leaq 0xaeb81(%rip), %rsi     # 0x107768
leaq 0xc40(%rsp), %rdx
leaq 0x10(%rsp), %rcx
movq %r15, %rdi
movq %rbx, %r8
callq 0x1ec7f
cmpl $0x1, %eax
jne 0x58cb3
leaq 0x957e1(%rip), %rsi     # 0xee3f0
leaq 0xaeba1(%rip), %rdx     # 0x1077b7
leaq 0x440(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x30af0
leaq 0x95402(%rip), %rsi     # 0xee034
leaq 0xae35e(%rip), %rdx     # 0x106f97
movq %rbx, %rdi
movl $0x1a28, %ecx           # imm = 0x1A28
jmp 0x58f14
cmpl $0x1, 0x8(%rsp)
jne 0x58d09
movslq 0xc(%rsp), %rdx
cmpq $0x65, %rdx
jl 0x58cda
leaq 0xaedb9(%rip), %rsi     # 0x107a1c
leaq 0x440(%rsp), %r14
movq %r14, %rdi
xorl %eax, %eax
callq 0x30af0
leaq 0x95406(%rip), %rsi     # 0xee082
leaq 0xaee2a(%rip), %rdx     # 0x107aad
leaq 0xc40(%rsp), %r15
movq %r15, %rdi
movq %r14, %rcx
xorl %eax, %eax
callq 0x30af0
leaq 0x95395(%rip), %rsi     # 0xee034
leaq 0xae2f1(%rip), %rdx     # 0x106f97
movq %rbx, %rdi
movl $0x1a66, %ecx           # imm = 0x1A66
jmp 0x59049
cmpl $0x1, 0x10(%rsp)
jne 0x587a5
addq $0x77c, %r12            # imm = 0x77C
leaq 0xc40(%rsp), %rsi
movq %r12, %rdi
callq 0x8350
jmp 0x587a5
movl %edx, 0xe0(%r12)
movq 0x18(%rsp), %rdi
testl %edx, %edx
jle 0x58d04
xorl %eax, %eax
movsd (%rdi,%rax,8), %xmm0
movsd %xmm0, 0xe8(%r12,%rax,8)
incq %rax
cmpq %rax, %rdx
jne 0x58ced
callq 0x8410
cmpw $0x1, 0x32(%r14)
movq 0x38(%rsp), %r13
je 0x58d3a
cmpw $0x1, 0x34(%r14)
je 0x58d3a
cmpw $0x1, 0x36(%r14)
je 0x58d3a
cmpw $0x1, 0x30(%r14)
je 0x58d3a
cmpw $0x1, 0x2e(%r14)
jne 0x58eba
leaq 0xaed82(%rip), %rsi     # 0x107ac3
leaq 0x10(%rsp), %rdx
leaq 0x8(%rsp), %rcx
movq %r15, %rdi
movq %rbx, %r8
callq 0x1e8ed
cmpl $0x1, %eax
jne 0x58d99
leaq 0x9568e(%rip), %rsi     # 0xee3f0
leaq 0xaed63(%rip), %rdx     # 0x107acc
leaq 0x440(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x30af0
leaq 0x952af(%rip), %rsi     # 0xee034
leaq 0xae20b(%rip), %rdx     # 0x106f97
movq %rbx, %rdi
movl $0x1a76, %ecx           # imm = 0x1A76
jmp 0x58f14
cmpl $0x1, 0x8(%rsp)
jne 0x58db4
movsd 0x10(%rsp), %xmm0
movsd %xmm0, 0x818(%r14)
jmp 0x58eba
movq $0x0, 0x818(%r14)
cmpw $0x1, 0x32(%r14)
je 0x58ddb
cmpw $0x1, 0x34(%r14)
je 0x58ddb
xorpd %xmm0, %xmm0
cmpw $0x1, 0x36(%r14)
jne 0x58e17
movslq 0xe0(%r12), %rax
testq %rax, %rax
jle 0x58e13
xorpd %xmm1, %xmm1
xorl %ecx, %ecx
movsd 0xe8(%r12,%rcx,8), %xmm0
maxsd %xmm1, %xmm0
movsd %xmm0, 0x818(%r14)
incq %rcx
movapd %xmm0, %xmm1
cmpq %rcx, %rax
jne 0x58dee
jmp 0x58e17
xorpd %xmm0, %xmm0
cmpw $0x1, 0x30(%r14)
je 0x58e2b
cmpw $0x1, 0x2e(%r14)
jne 0x58eba
movslq 0x64(%r14), %rax
testq %rax, %rax
jle 0x58eba
movl 0x68(%r14), %ecx
xorpd %xmm2, %xmm2
xorl %edx, %edx
movsd 0x95416(%rip), %xmm1    # 0xee260
cmpl $0x2, %ecx
je 0x58e96
cmpl $0x1, %ecx
je 0x58e6d
testl %ecx, %ecx
jne 0x58e9d
movsd 0x390(%r14,%rdx,8), %xmm2
mulsd 0x808(%r13), %xmm2
jmp 0x58e8d
movsd 0x808(%r13), %xmm2
mulsd 0x828(%r13), %xmm2
addsd %xmm1, %xmm2
mulsd 0x390(%r14,%rdx,8), %xmm2
addsd 0x70(%r14,%rdx,8), %xmm2
jmp 0x58e9d
movsd 0x70(%r14,%rdx,8), %xmm2
movapd %xmm2, %xmm3
maxsd %xmm0, %xmm3
movsd %xmm3, 0x818(%r14)
incq %rdx
movapd %xmm3, %xmm0
cmpq %rdx, %rax
jne 0x58e4a
leaq 0xaa8ec(%rip), %rsi     # 0x1037ad
leaq 0x40(%rsp), %rdx
leaq 0x8(%rsp), %rcx
movq %r15, %rdi
movq %rbx, %r8
callq 0x1ec7f
cmpl $0x1, %eax
jne 0x58f37
leaq 0x9550e(%rip), %rsi     # 0xee3f0
leaq 0xaa8e7(%rip), %rdx     # 0x1037d0
leaq 0x440(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x30af0
leaq 0x9512f(%rip), %rsi     # 0xee034
leaq 0xae08b(%rip), %rdx     # 0x106f97
movq %rbx, %rdi
movl $0x1aa0, %ecx           # imm = 0x1AA0
movq %r14, %r8
xorl %eax, %eax
callq 0x30af0
movl $0x1, %ebp
movl %ebp, %eax
addq $0x1448, %rsp           # imm = 0x1448
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
xorl %ebp, %ebp
cmpl $0x1, 0x8(%rsp)
jne 0x58f23
leaq 0x40(%rsp), %rdi
movl $0x79, %esi
callq 0x8130
testq %rax, %rax
jne 0x58f68
leaq 0x40(%rsp), %rdi
movl $0x59, %esi
callq 0x8130
testq %rax, %rax
je 0x58f23
leaq 0xaa905(%rip), %rsi     # 0x103874
leaq 0xc40(%rsp), %rdx
leaq 0x34(%rsp), %rcx
movq %r15, %rdi
movq %rbx, %r8
callq 0x1e8ed
cmpl $0x1, %eax
jne 0x58fca
leaq 0x9545d(%rip), %rsi     # 0xee3f0
leaq 0xaa8e1(%rip), %rdx     # 0x10387b
leaq 0x440(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x30af0
leaq 0x9507e(%rip), %rsi     # 0xee034
leaq 0xadfda(%rip), %rdx     # 0x106f97
movq %rbx, %rdi
movl $0x1aa2, %ecx           # imm = 0x1AA2
jmp 0x58f14
cmpl $0x1, 0x34(%rsp)
jne 0x58fe2
movsd 0xc40(%rsp), %xmm0
movsd %xmm0, 0x10(%rsp)
jmp 0x58fe8
movsd 0x10(%rsp), %xmm0
ucomisd 0x818(%r14), %xmm0
jbe 0x58f23
leaq 0xaeb07(%rip), %rsi     # 0x107b05
leaq 0x440(%rsp), %r14
movq %r14, %rdi
xorl %eax, %eax
callq 0x30af0
leaq 0x9506b(%rip), %rsi     # 0xee082
leaq 0xaeb4d(%rip), %rdx     # 0x107b6b
leaq 0xc40(%rsp), %r15
movq %r15, %rdi
movq %r14, %rcx
xorl %eax, %eax
callq 0x30af0
leaq 0x94ffa(%rip), %rsi     # 0xee034
leaq 0xadf56(%rip), %rdx     # 0x106f97
movq %rbx, %rdi
movl $0x1aa3, %ecx           # imm = 0x1AA3
movq %r15, %r8
jmp 0x58f17
leaq 0xae4b2(%rip), %rsi     # 0x10750a
leaq 0x440(%rsp), %r14
movq %r14, %rdi
movl %edx, %r8d
xorl %eax, %eax
callq 0x30af0
leaq 0x95511(%rip), %rsi     # 0xee585
leaq 0xc40(%rsp), %r15
movq %r15, %rdi
movq %r14, %rdx
xorl %eax, %eax
callq 0x30af0
leaq 0x94fa4(%rip), %rsi     # 0xee034
leaq 0xadf00(%rip), %rdx     # 0x106f97
movq %rbx, %rdi
movl $0x19ff, %ecx           # imm = 0x19FF
jmp 0x59049