// File: /workspace/github_c_makefile_star2_O0/PoulinV[P]AxiCLASS/build/../source/transfer.c
// Function: transfer_sources
int transfer_sources(
                     struct precision * ppr,
                     struct background * pba,
                     struct perturbations * ppt,
                     struct transfer * ptr,
                     double * interpolated_sources,
                     double tau_rec,
                     double k,
                     int index_md,
                     int index_tt,
                     double * sources,
                     double * window,
                     int tau_size_max,
                     double * tau0_minus_tau,
                     double * w_trapz,
                     int * tau_size_out
                     )  {

  /** Summary: */

  /** - define local variables */

  /* index running on time */
  int index_tau;

  /* bin for computation of cl_density */
  int bin=0;

  /* number of tau values */
  int tau_size;

  /* minimum tau index kept in transfer sources */
  int index_tau_min;

  /* conformal time */
  double tau, tau0;

  /* rescaling factor depending on the background at a given time */
  double rescaling=0.;

  /* flag: is there any difference between the perturbation and transfer source? */
  short redefine_source;

  /** - in which cases are perturbation and transfer sources are different?
      I.e., in which case do we need to multiply the sources by some
      background and/or window function, and eventually to resample it,
      or redefine its time limits? */

  redefine_source = _FALSE_;

  if (_scalars_) {

    /* cmb lensing potential */
    if ((ppt->has_cl_cmb_lensing_potential == _TRUE_) && (index_tt == ptr->index_tt_lcmb))
      redefine_source = _TRUE_;

    /* number count Cl's */
    if (_nonintegrated_ncl_ || _integrated_ncl_)
      redefine_source = _TRUE_;

  }

  /* conformal time today */
  tau0 = pba->conformal_age;

  /** - case where we need to redefine by a window function (or any
      function of the background and of k) */
  if (redefine_source == _TRUE_) {

    class_call(transfer_source_tau_size(ppr,
                                        pba,
                                        ppt,
                                        ptr,
                                        tau_rec,
                                        tau0,
                                        index_md,
                                        index_tt,
                                        &tau_size),
               ptr->error_message,
               ptr->error_message);

    if (_scalars_) {

      /* lensing source: throw away times before recombination, and multiply psi by window function */

      if ((ppt->has_cl_cmb_lensing_potential == _TRUE_) && (index_tt == ptr->index_tt_lcmb)) {

        /* first time step after removing early times */
        index_tau_min =  ppt->tau_size - tau_size;

        /* loop over time and rescale */
        for (index_tau = index_tau_min; index_tau < ppt->tau_size; index_tau++) {

          /* conformal time */
          tau = ppt->tau_sampling[index_tau];

          /* lensing source =  - W(tau) (phi(k,tau) + psi(k,tau)) Heaviside(tau-tau_rec)
             with
             psi,phi = metric perturbation in newtonian gauge (phi+psi = Phi_A-Phi_H of Bardeen)
             W = (tau-tau_rec)/(tau_0-tau)/(tau_0-tau_rec)
             H(x) = Heaviside
             (in tau = tau_0, set source = 0 to avoid division by zero;
             regulated anyway by Bessel).
          */

          if (index_tau == ppt->tau_size-1) {
            rescaling=0.;
          }
          else {
            switch (pba->sgnK){
            case 1:
              rescaling = sqrt(pba->K)
                *sin((tau_rec-tau)*sqrt(pba->K))
                /sin((tau0-tau)*sqrt(pba->K))
                /sin((tau0-tau_rec)*sqrt(pba->K));
              break;
            case 0:
              rescaling = (tau_rec-tau)/(tau0-tau)/(tau0-tau_rec);
              break;
            case -1:
              rescaling = sqrt(-pba->K)
                *sinh((tau_rec-tau)*sqrt(-pba->K))
                /sinh((tau0-tau)*sqrt(-pba->K))
                /sinh((tau0-tau_rec)*sqrt(-pba->K));
              break;
            }
            // Note: until 2.4.3 there was a bug here: the curvature effects had been omitted.
          }

          /* copy from input array to output array */
          sources[index_tau-index_tau_min] =
            interpolated_sources[index_tau]
            * rescaling
            * ptr->lcmb_rescale
            * pow(k/ptr->lcmb_pivot,ptr->lcmb_tilt);

          /* store value of (tau0-tau) */
          tau0_minus_tau[index_tau-index_tau_min] = tau0 - tau;

        }

        /* Compute trapezoidal weights for integration over tau */
        class_call(array_trapezoidal_mweights(tau0_minus_tau,
                                              tau_size,
                                              w_trapz,
                                              ptr->error_message),
                   ptr->error_message,
                   ptr->error_message);
      }

      /* Non-integrated contributions to dCl/nCl need selection time sampling*/

      if (_nonintegrated_ncl_) {

        _get_bin_nonintegrated_ncl_(index_tt)

          /* redefine the time sampling */
          class_call(transfer_selection_sampling(ppr,
                                                 pba,
                                                 ppt,
                                                 ptr,
                                                 bin,
                                                 tau0_minus_tau,
                                                 tau_size),
                     ptr->error_message,
                     ptr->error_message);

        class_test(tau0 - tau0_minus_tau[0] > ppt->tau_sampling[ppt->tau_size-1],
                   ptr->error_message,
                   "this should not happen, there was probably a rounding error, if this error occurred, then this must be coded more carefully");

        /* resample the source at those times */
        class_call(transfer_source_resample(ppr,
                                            pba,
                                            ppt,
                                            ptr,
                                            bin,
                                            tau0_minus_tau,
                                            tau_size,
                                            index_md,
                                            tau0,
                                            interpolated_sources,
                                            sources),
                   ptr->error_message,
                   ptr->error_message);

        /* Compute trapezoidal weights for integration over tau */
        class_call(array_trapezoidal_mweights(tau0_minus_tau,
                                              tau_size,
                                              w_trapz,
                                              ptr->error_message),
                   ptr->error_message,
                   ptr->error_message);

        /* loop over time and rescale */
        for (index_tau = 0; index_tau < tau_size; index_tau++) {

          /* matter density source =  [- (dz/dtau) W(z)] * delta_m(k,tau)
             = W(tau) delta_m(k,tau)
             with
             delta_m = total matter perturbation (defined in gauge-independent way, see arXiv 1307.1459)
             W(z) = redshift space selection function = dN/dz
             W(tau) = same wrt conformal time = dN/dtau
             (in tau = tau_0, set source = 0 to avoid division by zero;
             regulated anyway by Bessel).
          */

          rescaling = window[index_tt*tau_size_max+index_tau];

          if (_index_tt_in_range_(ptr->index_tt_d0,      ppt->selection_num, ppt->has_nc_rsd))
            rescaling *= 1./k/k; // Factor from original ClassGAL paper ( arXiv 1307.1459 )

          if (_index_tt_in_range_(ptr->index_tt_d1,      ppt->selection_num, ppt->has_nc_rsd))
            rescaling *= 1./k; // Factor from original ClassGAL paper ( arXiv 1307.1459 )

          sources[index_tau] *= rescaling;
        }
      }
      /* End normal contributions */

      /* Integrated contributions to dCl/nCl/sCl need integrated selection time sampling */

      if (_integrated_ncl_) {

        _get_bin_integrated_ncl_(index_tt)

          /* redefine the time sampling */
          class_call(transfer_lensing_sampling(ppr,
                                               pba,
                                               ppt,
                                               ptr,
                                               bin,
                                               tau0,
                                               tau0_minus_tau,
                                               tau_size),
                     ptr->error_message,
                     ptr->error_message);

        /* resample the source at those times */
        class_call(transfer_source_resample(ppr,
                                            pba,
                                            ppt,
                                            ptr,
                                            bin,
                                            tau0_minus_tau,
                                            tau_size,
                                            index_md,
                                            tau0,
                                            interpolated_sources,
                                            sources),
                   ptr->error_message,
                   ptr->error_message);

        /* Compute trapezoidal weights for integration over tau */
        class_call(array_trapezoidal_mweights(tau0_minus_tau,
                                              tau_size,
                                              w_trapz,
                                              ptr->error_message),
                   ptr->error_message,
                   ptr->error_message);

        /* loop over time and rescale */
        for (index_tau = 0; index_tau < tau_size; index_tau++) {

          /* lensing source =  - W(tau) (phi(k,tau) + psi(k,tau)) Heaviside(tau-tau_rec)
             with
             psi,phi = metric perturbation in newtonian gauge (phi+psi = Phi_A-Phi_H of Bardeen)
             W = (tau-tau_rec)/(tau_0-tau)/(tau_0-tau_rec)
             H(x) = Heaviside
             (in tau = tau_0, set source = 0 to avoid division by zero;
             regulated anyway by Bessel).
          */

          /* copy from input array to output array */
          sources[index_tau] *= window[index_tt*tau_size_max+index_tau];

          if (_index_tt_in_range_(ptr->index_tt_nc_g5, ppt->selection_num, ppt->has_nc_gr))
            sources[index_tau] *= k; // Factor from chi derivative of d/dchi j_ell(k*chi)= d/d(kchi) j_ell(k chi) * k = k * j_ell'(kchi)
        }
      }
      /* End integrated contributions */
    }
  }

  /** - case where we do not need to redefine */

  else {

    /* number of sampled time values */
    tau_size = ppt->tau_size;

    /* plain copy from input array to output array */
    memcpy(sources,
           interpolated_sources,
           ppt->tau_size*sizeof(double));

    /* store values of (tau0-tau) */
    for (index_tau=0; index_tau < ppt->tau_size; index_tau++) {
      tau0_minus_tau[index_tau] = tau0 - ppt->tau_sampling[index_tau];
    }

    /* Compute trapezoidal weights for integration over tau */
    class_call(array_trapezoidal_mweights(tau0_minus_tau,
                                          tau_size,
                                          w_trapz,
                                          ptr->error_message),
               ptr->error_message,
               ptr->error_message);
  }

  /** - return tau_size value that will be stored in the workspace (the
      workspace wants a double) */

  *tau_size_out = tau_size;

  return _SUCCESS_;

}

// Assembly:
pushq %rbx
subq $0x5910, %rsp           # imm = 0x5910
movq 0x5950(%rsp), %rax
movq 0x5948(%rsp), %rax
movq 0x5940(%rsp), %rax
movl 0x5938(%rsp), %eax
movq 0x5930(%rsp), %rax
movq 0x5928(%rsp), %rax
movl 0x5920(%rsp), %eax
movq %rdi, 0x5900(%rsp)
movq %rsi, 0x58f8(%rsp)
movq %rdx, 0x58f0(%rsp)
movq %rcx, 0x58e8(%rsp)
movq %r8, 0x58e0(%rsp)
movsd %xmm0, 0x58d8(%rsp)
movsd %xmm1, 0x58d0(%rsp)
movl %r9d, 0x58cc(%rsp)
movl $0x0, 0x58c4(%rsp)
xorps %xmm0, %xmm0
movsd %xmm0, 0x58a0(%rsp)
movw $0x0, 0x589e(%rsp)
movq 0x58f0(%rsp), %rax
movswl 0xe(%rax), %eax
cmpl $0x1, %eax
jne 0x13e9a7
movl 0x58cc(%rsp), %eax
movq 0x58f0(%rsp), %rcx
cmpl 0x848(%rcx), %eax
jne 0x13e9a7
movq 0x58f0(%rsp), %rax
movswl 0x2c(%rax), %eax
cmpl $0x1, %eax
jne 0x13e633
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
cmpl 0x8bc(%rcx), %eax
jne 0x13e633
movw $0x1, 0x589e(%rsp)
movq 0x58f0(%rsp), %rax
movswl 0x3e(%rax), %eax
cmpl $0x1, %eax
jne 0x13e683
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
cmpl 0x8c0(%rcx), %eax
jl 0x13e683
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
movl 0x8c0(%rcx), %ecx
movq 0x58f0(%rsp), %rdx
addl 0x64(%rdx), %ecx
cmpl %ecx, %eax
jl 0x13e99b
movq 0x58f0(%rsp), %rax
movswl 0x40(%rax), %eax
cmpl $0x1, %eax
jne 0x13e6d3
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
cmpl 0x8c8(%rcx), %eax
jl 0x13e6d3
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
movl 0x8c8(%rcx), %ecx
movq 0x58f0(%rsp), %rdx
addl 0x64(%rdx), %ecx
cmpl %ecx, %eax
jl 0x13e99b
movq 0x58f0(%rsp), %rax
movswl 0x40(%rax), %eax
cmpl $0x1, %eax
jne 0x13e723
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
cmpl 0x8cc(%rcx), %eax
jl 0x13e723
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
movl 0x8cc(%rcx), %ecx
movq 0x58f0(%rsp), %rdx
addl 0x64(%rdx), %ecx
cmpl %ecx, %eax
jl 0x13e99b
movq 0x58f0(%rsp), %rax
movswl 0x40(%rax), %eax
cmpl $0x1, %eax
jne 0x13e773
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
cmpl 0x8d0(%rcx), %eax
jl 0x13e773
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
movl 0x8d0(%rcx), %ecx
movq 0x58f0(%rsp), %rdx
addl 0x64(%rdx), %ecx
cmpl %ecx, %eax
jl 0x13e99b
movq 0x58f0(%rsp), %rax
movswl 0x44(%rax), %eax
cmpl $0x1, %eax
jne 0x13e7c3
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
cmpl 0x8d8(%rcx), %eax
jl 0x13e7c3
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
movl 0x8d8(%rcx), %ecx
movq 0x58f0(%rsp), %rdx
addl 0x64(%rdx), %ecx
cmpl %ecx, %eax
jl 0x13e99b
movq 0x58f0(%rsp), %rax
movswl 0x44(%rax), %eax
cmpl $0x1, %eax
jne 0x13e813
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
cmpl 0x8dc(%rcx), %eax
jl 0x13e813
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
movl 0x8dc(%rcx), %ecx
movq 0x58f0(%rsp), %rdx
addl 0x64(%rdx), %ecx
cmpl %ecx, %eax
jl 0x13e99b
movq 0x58f0(%rsp), %rax
movswl 0x44(%rax), %eax
cmpl $0x1, %eax
jne 0x13e863
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
cmpl 0x8e0(%rcx), %eax
jl 0x13e863
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
movl 0x8e0(%rcx), %ecx
movq 0x58f0(%rsp), %rdx
addl 0x64(%rdx), %ecx
cmpl %ecx, %eax
jl 0x13e99b
movq 0x58f0(%rsp), %rax
movswl 0x2e(%rax), %eax
cmpl $0x1, %eax
jne 0x13e8b3
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
cmpl 0x8c4(%rcx), %eax
jl 0x13e8b3
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
movl 0x8c4(%rcx), %ecx
movq 0x58f0(%rsp), %rdx
addl 0x64(%rdx), %ecx
cmpl %ecx, %eax
jl 0x13e99b
movq 0x58f0(%rsp), %rax
movswl 0x42(%rax), %eax
cmpl $0x1, %eax
jne 0x13e903
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
cmpl 0x8d4(%rcx), %eax
jl 0x13e903
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
movl 0x8d4(%rcx), %ecx
movq 0x58f0(%rsp), %rdx
addl 0x64(%rdx), %ecx
cmpl %ecx, %eax
jl 0x13e99b
movq 0x58f0(%rsp), %rax
movswl 0x44(%rax), %eax
cmpl $0x1, %eax
jne 0x13e94f
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
cmpl 0x8e4(%rcx), %eax
jl 0x13e94f
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
movl 0x8e4(%rcx), %ecx
movq 0x58f0(%rsp), %rdx
addl 0x64(%rdx), %ecx
cmpl %ecx, %eax
jl 0x13e99b
movq 0x58f0(%rsp), %rax
movswl 0x44(%rax), %eax
cmpl $0x1, %eax
jne 0x13e9a5
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
cmpl 0x8e8(%rcx), %eax
jl 0x13e9a5
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
movl 0x8e8(%rcx), %ecx
movq 0x58f0(%rsp), %rdx
addl 0x64(%rdx), %ecx
cmpl %ecx, %eax
jge 0x13e9a5
movw $0x1, 0x589e(%rsp)
jmp 0x13e9a7
movq 0x58f8(%rsp), %rax
movsd 0x310(%rax), %xmm0
movsd %xmm0, 0x58a8(%rsp)
movswl 0x589e(%rsp), %eax
cmpl $0x1, %eax
jne 0x13ff86
movq 0x5900(%rsp), %rdi
movq 0x58f8(%rsp), %rsi
movq 0x58f0(%rsp), %rdx
movq 0x58e8(%rsp), %rcx
movsd 0x58d8(%rsp), %xmm0
movsd 0x58a8(%rsp), %xmm1
movl 0x58cc(%rsp), %r8d
movl 0x5920(%rsp), %r9d
leaq 0x58c0(%rsp), %rax
movq %rax, (%rsp)
callq 0x13b7e0
cmpl $0x1, %eax
jne 0x13ea96
leaq 0x5090(%rsp), %rdi
movq 0x58e8(%rsp), %rcx
addq $0x96a, %rcx            # imm = 0x96A
leaq 0x93991(%rip), %rsi     # 0x1d23d8
leaq 0xc500c(%rip), %rdx     # 0x203a5a
movb $0x0, %al
callq 0x5b9c0
movq 0x58e8(%rsp), %rdi
addq $0x96a, %rdi            # imm = 0x96A
leaq 0x5090(%rsp), %r8
leaq 0x935c1(%rip), %rsi     # 0x1d2034
leaq 0xc503b(%rip), %rdx     # 0x203ab5
movl $0x956, %ecx            # imm = 0x956
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x590c(%rsp)
jmp 0x1400ea
movq 0x58f0(%rsp), %rax
movswl 0xe(%rax), %eax
cmpl $0x1, %eax
jne 0x13ff81
movl 0x58cc(%rsp), %eax
movq 0x58f0(%rsp), %rcx
cmpl 0x848(%rcx), %eax
jne 0x13ff81
movq 0x58f0(%rsp), %rax
movswl 0x2c(%rax), %eax
cmpl $0x1, %eax
jne 0x13f015
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
cmpl 0x8bc(%rcx), %eax
jne 0x13f015
movq 0x58f0(%rsp), %rax
movl 0x9f8(%rax), %eax
subl 0x58c0(%rsp), %eax
movl %eax, 0x58bc(%rsp)
movl 0x58bc(%rsp), %eax
movl %eax, 0x58c8(%rsp)
movl 0x58c8(%rsp), %eax
movq 0x58f0(%rsp), %rcx
cmpl 0x9f8(%rcx), %eax
jge 0x13ef76
movq 0x58f0(%rsp), %rax
movq 0x9f0(%rax), %rax
movslq 0x58c8(%rsp), %rcx
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, 0x58b0(%rsp)
movl 0x58c8(%rsp), %eax
movq 0x58f0(%rsp), %rcx
movl 0x9f8(%rcx), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
jne 0x13eb8d
xorps %xmm0, %xmm0
movsd %xmm0, 0x58a0(%rsp)
jmp 0x13eead
movq 0x58f8(%rsp), %rax
movl 0x320(%rax), %eax
movl %eax, 0x8c(%rsp)
subl $-0x1, %eax
je 0x13ed3b
jmp 0x13ebad
movl 0x8c(%rsp), %eax
testl %eax, %eax
je 0x13ecef
jmp 0x13ebbe
movl 0x8c(%rsp), %eax
subl $0x1, %eax
jne 0x13eeab
jmp 0x13ebd0
movq 0x58f8(%rsp), %rax
movsd 0x318(%rax), %xmm0
callq 0x82e0
movsd %xmm0, 0x60(%rsp)
movsd 0x58d8(%rsp), %xmm0
subsd 0x58b0(%rsp), %xmm0
movsd %xmm0, 0x58(%rsp)
movq 0x58f8(%rsp), %rax
movsd 0x318(%rax), %xmm0
callq 0x82e0
movaps %xmm0, %xmm1
movsd 0x58(%rsp), %xmm0
mulsd %xmm1, %xmm0
callq 0x80a0
movaps %xmm0, %xmm1
movsd 0x60(%rsp), %xmm0
mulsd %xmm1, %xmm0
movsd %xmm0, 0x70(%rsp)
movsd 0x58a8(%rsp), %xmm0
subsd 0x58b0(%rsp), %xmm0
movsd %xmm0, 0x68(%rsp)
movq 0x58f8(%rsp), %rax
movsd 0x318(%rax), %xmm0
callq 0x82e0
movaps %xmm0, %xmm1
movsd 0x68(%rsp), %xmm0
mulsd %xmm1, %xmm0
callq 0x80a0
movaps %xmm0, %xmm1
movsd 0x70(%rsp), %xmm0
divsd %xmm1, %xmm0
movsd %xmm0, 0x80(%rsp)
movsd 0x58a8(%rsp), %xmm0
subsd 0x58d8(%rsp), %xmm0
movsd %xmm0, 0x78(%rsp)
movq 0x58f8(%rsp), %rax
movsd 0x318(%rax), %xmm0
callq 0x82e0
movaps %xmm0, %xmm1
movsd 0x78(%rsp), %xmm0
mulsd %xmm1, %xmm0
callq 0x80a0
movaps %xmm0, %xmm1
movsd 0x80(%rsp), %xmm0
divsd %xmm1, %xmm0
movsd %xmm0, 0x58a0(%rsp)
jmp 0x13eeab
movsd 0x58d8(%rsp), %xmm0
subsd 0x58b0(%rsp), %xmm0
movsd 0x58a8(%rsp), %xmm1
subsd 0x58b0(%rsp), %xmm1
divsd %xmm1, %xmm0
movsd 0x58a8(%rsp), %xmm1
subsd 0x58d8(%rsp), %xmm1
divsd %xmm1, %xmm0
movsd %xmm0, 0x58a0(%rsp)
jmp 0x13eeab
movq 0x58f8(%rsp), %rax
movsd 0x318(%rax), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
callq 0x82e0
movsd %xmm0, 0x30(%rsp)
movsd 0x58d8(%rsp), %xmm0
subsd 0x58b0(%rsp), %xmm0
movsd %xmm0, 0x28(%rsp)
movq 0x58f8(%rsp), %rax
movsd 0x318(%rax), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
callq 0x82e0
movaps %xmm0, %xmm1
movsd 0x28(%rsp), %xmm0
mulsd %xmm1, %xmm0
callq 0x8390
movaps %xmm0, %xmm1
movsd 0x30(%rsp), %xmm0
mulsd %xmm1, %xmm0
movsd %xmm0, 0x40(%rsp)
movsd 0x58a8(%rsp), %xmm0
subsd 0x58b0(%rsp), %xmm0
movsd %xmm0, 0x38(%rsp)
movq 0x58f8(%rsp), %rax
movsd 0x318(%rax), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
callq 0x82e0
movaps %xmm0, %xmm1
movsd 0x38(%rsp), %xmm0
mulsd %xmm1, %xmm0
callq 0x8390
movaps %xmm0, %xmm1
movsd 0x40(%rsp), %xmm0
divsd %xmm1, %xmm0
movsd %xmm0, 0x50(%rsp)
movsd 0x58a8(%rsp), %xmm0
subsd 0x58d8(%rsp), %xmm0
movsd %xmm0, 0x48(%rsp)
movq 0x58f8(%rsp), %rax
movsd 0x318(%rax), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
callq 0x82e0
movaps %xmm0, %xmm1
movsd 0x48(%rsp), %xmm0
mulsd %xmm1, %xmm0
callq 0x8390
movaps %xmm0, %xmm1
movsd 0x50(%rsp), %xmm0
divsd %xmm1, %xmm0
movsd %xmm0, 0x58a0(%rsp)
jmp 0x13eead
movq 0x58e0(%rsp), %rax
movslq 0x58c8(%rsp), %rcx
movsd (%rax,%rcx,8), %xmm0
mulsd 0x58a0(%rsp), %xmm0
movq 0x58e8(%rsp), %rax
mulsd (%rax), %xmm0
movsd %xmm0, 0x20(%rsp)
movsd 0x58d0(%rsp), %xmm0
movq 0x58e8(%rsp), %rax
divsd 0x10(%rax), %xmm0
movq 0x58e8(%rsp), %rax
movsd 0x8(%rax), %xmm1
callq 0x8610
movaps %xmm0, %xmm1
movsd 0x20(%rsp), %xmm0
mulsd %xmm1, %xmm0
movq 0x5928(%rsp), %rax
movl 0x58c8(%rsp), %ecx
subl 0x58bc(%rsp), %ecx
movslq %ecx, %rcx
movsd %xmm0, (%rax,%rcx,8)
movsd 0x58a8(%rsp), %xmm0
subsd 0x58b0(%rsp), %xmm0
movq 0x5940(%rsp), %rax
movl 0x58c8(%rsp), %ecx
subl 0x58bc(%rsp), %ecx
movslq %ecx, %rcx
movsd %xmm0, (%rax,%rcx,8)
movl 0x58c8(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x58c8(%rsp)
jmp 0x13eb20
movq 0x5940(%rsp), %rdi
movl 0x58c0(%rsp), %esi
movq 0x5948(%rsp), %rdx
movq 0x58e8(%rsp), %rcx
addq $0x96a, %rcx            # imm = 0x96A
callq 0x2a9f0
cmpl $0x1, %eax
jne 0x13f013
leaq 0x4890(%rsp), %rdi
movq 0x58e8(%rsp), %rcx
addq $0x96a, %rcx            # imm = 0x96A
leaq 0x93414(%rip), %rsi     # 0x1d23d8
leaq 0xc4afb(%rip), %rdx     # 0x203ac6
movb $0x0, %al
callq 0x5b9c0
movq 0x58e8(%rsp), %rdi
addq $0x96a, %rdi            # imm = 0x96A
leaq 0x4890(%rsp), %r8
leaq 0x93044(%rip), %rsi     # 0x1d2034
leaq 0xc4abe(%rip), %rdx     # 0x203ab5
movl $0x99a, %ecx            # imm = 0x99A
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x590c(%rsp)
jmp 0x1400ea
jmp 0x13f015
movq 0x58f0(%rsp), %rax
movswl 0x3e(%rax), %eax
cmpl $0x1, %eax
jne 0x13f065
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
cmpl 0x8c0(%rcx), %eax
jl 0x13f065
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
movl 0x8c0(%rcx), %ecx
movq 0x58f0(%rsp), %rdx
addl 0x64(%rdx), %ecx
cmpl %ecx, %eax
jl 0x13f249
movq 0x58f0(%rsp), %rax
movswl 0x40(%rax), %eax
cmpl $0x1, %eax
jne 0x13f0b5
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
cmpl 0x8c8(%rcx), %eax
jl 0x13f0b5
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
movl 0x8c8(%rcx), %ecx
movq 0x58f0(%rsp), %rdx
addl 0x64(%rdx), %ecx
cmpl %ecx, %eax
jl 0x13f249
movq 0x58f0(%rsp), %rax
movswl 0x40(%rax), %eax
cmpl $0x1, %eax
jne 0x13f105
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
cmpl 0x8cc(%rcx), %eax
jl 0x13f105
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
movl 0x8cc(%rcx), %ecx
movq 0x58f0(%rsp), %rdx
addl 0x64(%rdx), %ecx
cmpl %ecx, %eax
jl 0x13f249
movq 0x58f0(%rsp), %rax
movswl 0x40(%rax), %eax
cmpl $0x1, %eax
jne 0x13f155
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
cmpl 0x8d0(%rcx), %eax
jl 0x13f155
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
movl 0x8d0(%rcx), %ecx
movq 0x58f0(%rsp), %rdx
addl 0x64(%rdx), %ecx
cmpl %ecx, %eax
jl 0x13f249
movq 0x58f0(%rsp), %rax
movswl 0x44(%rax), %eax
cmpl $0x1, %eax
jne 0x13f1a5
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
cmpl 0x8d8(%rcx), %eax
jl 0x13f1a5
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
movl 0x8d8(%rcx), %ecx
movq 0x58f0(%rsp), %rdx
addl 0x64(%rdx), %ecx
cmpl %ecx, %eax
jl 0x13f249
movq 0x58f0(%rsp), %rax
movswl 0x44(%rax), %eax
cmpl $0x1, %eax
jne 0x13f1f1
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
cmpl 0x8dc(%rcx), %eax
jl 0x13f1f1
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
movl 0x8dc(%rcx), %ecx
movq 0x58f0(%rsp), %rdx
addl 0x64(%rdx), %ecx
cmpl %ecx, %eax
jl 0x13f249
movq 0x58f0(%rsp), %rax
movswl 0x44(%rax), %eax
cmpl $0x1, %eax
jne 0x13f97b
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
cmpl 0x8e0(%rcx), %eax
jl 0x13f97b
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
movl 0x8e0(%rcx), %ecx
movq 0x58f0(%rsp), %rdx
addl 0x64(%rdx), %ecx
cmpl %ecx, %eax
jge 0x13f97b
movq 0x58f0(%rsp), %rax
movswl 0x3e(%rax), %eax
cmpl $0x1, %eax
jne 0x13f2b1
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
cmpl 0x8c0(%rcx), %eax
jl 0x13f2b1
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
movl 0x8c0(%rcx), %ecx
movq 0x58f0(%rsp), %rdx
addl 0x64(%rdx), %ecx
cmpl %ecx, %eax
jge 0x13f2b1
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
subl 0x8c0(%rcx), %eax
movl %eax, 0x58c4(%rsp)
movq 0x58f0(%rsp), %rax
movswl 0x40(%rax), %eax
cmpl $0x1, %eax
jne 0x13f319
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
cmpl 0x8c8(%rcx), %eax
jl 0x13f319
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
movl 0x8c8(%rcx), %ecx
movq 0x58f0(%rsp), %rdx
addl 0x64(%rdx), %ecx
cmpl %ecx, %eax
jge 0x13f319
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
subl 0x8c8(%rcx), %eax
movl %eax, 0x58c4(%rsp)
movq 0x58f0(%rsp), %rax
movswl 0x40(%rax), %eax
cmpl $0x1, %eax
jne 0x13f381
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
cmpl 0x8cc(%rcx), %eax
jl 0x13f381
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
movl 0x8cc(%rcx), %ecx
movq 0x58f0(%rsp), %rdx
addl 0x64(%rdx), %ecx
cmpl %ecx, %eax
jge 0x13f381
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
subl 0x8cc(%rcx), %eax
movl %eax, 0x58c4(%rsp)
movq 0x58f0(%rsp), %rax
movswl 0x40(%rax), %eax
cmpl $0x1, %eax
jne 0x13f3e9
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
cmpl 0x8d0(%rcx), %eax
jl 0x13f3e9
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
movl 0x8d0(%rcx), %ecx
movq 0x58f0(%rsp), %rdx
addl 0x64(%rdx), %ecx
cmpl %ecx, %eax
jge 0x13f3e9
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
subl 0x8d0(%rcx), %eax
movl %eax, 0x58c4(%rsp)
movq 0x58f0(%rsp), %rax
movswl 0x44(%rax), %eax
cmpl $0x1, %eax
jne 0x13f451
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
cmpl 0x8d8(%rcx), %eax
jl 0x13f451
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
movl 0x8d8(%rcx), %ecx
movq 0x58f0(%rsp), %rdx
addl 0x64(%rdx), %ecx
cmpl %ecx, %eax
jge 0x13f451
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
subl 0x8d8(%rcx), %eax
movl %eax, 0x58c4(%rsp)
movq 0x58f0(%rsp), %rax
movswl 0x44(%rax), %eax
cmpl $0x1, %eax
jne 0x13f4b9
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
cmpl 0x8dc(%rcx), %eax
jl 0x13f4b9
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
movl 0x8dc(%rcx), %ecx
movq 0x58f0(%rsp), %rdx
addl 0x64(%rdx), %ecx
cmpl %ecx, %eax
jge 0x13f4b9
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
subl 0x8dc(%rcx), %eax
movl %eax, 0x58c4(%rsp)
movq 0x58f0(%rsp), %rax
movswl 0x44(%rax), %eax
cmpl $0x1, %eax
jne 0x13f521
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
cmpl 0x8e0(%rcx), %eax
jl 0x13f521
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
movl 0x8e0(%rcx), %ecx
movq 0x58f0(%rsp), %rdx
addl 0x64(%rdx), %ecx
cmpl %ecx, %eax
jge 0x13f521
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
subl 0x8e0(%rcx), %eax
movl %eax, 0x58c4(%rsp)
movq 0x5900(%rsp), %rdi
movq 0x58f8(%rsp), %rsi
movq 0x58f0(%rsp), %rdx
movq 0x58e8(%rsp), %rcx
movl 0x58c4(%rsp), %r8d
movq 0x5940(%rsp), %r9
movl 0x58c0(%rsp), %eax
movl %eax, (%rsp)
callq 0x141380
cmpl $0x1, %eax
jne 0x13f5d2
leaq 0x4090(%rsp), %rdi
movq 0x58e8(%rsp), %rcx
addq $0x96a, %rcx            # imm = 0x96A
leaq 0x92e55(%rip), %rsi     # 0x1d23d8
leaq 0xc458e(%rip), %rdx     # 0x203b18
movb $0x0, %al
callq 0x5b9c0
movq 0x58e8(%rsp), %rdi
addq $0x96a, %rdi            # imm = 0x96A
leaq 0x4090(%rsp), %r8
leaq 0x92a85(%rip), %rsi     # 0x1d2034
leaq 0xc44ff(%rip), %rdx     # 0x203ab5
movl $0x9ac, %ecx            # imm = 0x9AC
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x590c(%rsp)
jmp 0x1400ea
movsd 0x58a8(%rsp), %xmm0
movq 0x5940(%rsp), %rax
subsd (%rax), %xmm0
movq 0x58f0(%rsp), %rax
movq 0x9f0(%rax), %rax
movq 0x58f0(%rsp), %rcx
movl 0x9f8(%rcx), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
ucomisd (%rax,%rcx,8), %xmm0
jbe 0x13f68d
leaq 0x3890(%rsp), %rdi
leaq 0xc4547(%rip), %rsi     # 0x203b67
movb $0x0, %al
callq 0x5b9c0
leaq 0x3090(%rsp), %rdi
leaq 0x3890(%rsp), %rcx
leaq 0x92a44(%rip), %rsi     # 0x1d2082
leaq 0xc459e(%rip), %rdx     # 0x203be3
movb $0x0, %al
callq 0x5b9c0
movq 0x58e8(%rsp), %rdi
addq $0x96a, %rdi            # imm = 0x96A
leaq 0x3090(%rsp), %r8
leaq 0x929ca(%rip), %rsi     # 0x1d2034
leaq 0xc4444(%rip), %rdx     # 0x203ab5
movl $0x9b0, %ecx            # imm = 0x9B0
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x590c(%rsp)
jmp 0x1400ea
movq 0x5900(%rsp), %rdi
movq 0x58f8(%rsp), %rsi
movq 0x58f0(%rsp), %rdx
movq 0x58e8(%rsp), %rcx
movl 0x58c4(%rsp), %r8d
movq 0x5940(%rsp), %r9
movl 0x58c0(%rsp), %ebx
movl 0x58cc(%rsp), %r11d
movsd 0x58a8(%rsp), %xmm0
movq 0x58e0(%rsp), %r10
movq 0x5928(%rsp), %rax
movl %ebx, (%rsp)
movl %r11d, 0x8(%rsp)
movq %r10, 0x10(%rsp)
movq %rax, 0x18(%rsp)
callq 0x1416e0
cmpl $0x1, %eax
jne 0x13f76e
leaq 0x2890(%rsp), %rdi
movq 0x58e8(%rsp), %rcx
addq $0x96a, %rcx            # imm = 0x96A
leaq 0x92cb9(%rip), %rsi     # 0x1d23d8
leaq 0xc44fb(%rip), %rdx     # 0x203c21
movb $0x0, %al
callq 0x5b9c0
movq 0x58e8(%rsp), %rdi
addq $0x96a, %rdi            # imm = 0x96A
leaq 0x2890(%rsp), %r8
leaq 0x928e9(%rip), %rsi     # 0x1d2034
leaq 0xc4363(%rip), %rdx     # 0x203ab5
movl $0x9bf, %ecx            # imm = 0x9BF
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x590c(%rsp)
jmp 0x1400ea
movq 0x5940(%rsp), %rdi
movl 0x58c0(%rsp), %esi
movq 0x5948(%rsp), %rdx
movq 0x58e8(%rsp), %rcx
addq $0x96a, %rcx            # imm = 0x96A
callq 0x2a9f0
cmpl $0x1, %eax
jne 0x13f80b
leaq 0x2090(%rsp), %rdi
movq 0x58e8(%rsp), %rcx
addq $0x96a, %rcx            # imm = 0x96A
leaq 0x92c1c(%rip), %rsi     # 0x1d23d8
leaq 0xc4303(%rip), %rdx     # 0x203ac6
movb $0x0, %al
callq 0x5b9c0
movq 0x58e8(%rsp), %rdi
addq $0x96a, %rdi            # imm = 0x96A
leaq 0x2090(%rsp), %r8
leaq 0x9284c(%rip), %rsi     # 0x1d2034
leaq 0xc42c6(%rip), %rdx     # 0x203ab5
movl $0x9c7, %ecx            # imm = 0x9C7
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x590c(%rsp)
jmp 0x1400ea
movl $0x0, 0x58c8(%rsp)
movl 0x58c8(%rsp), %eax
cmpl 0x58c0(%rsp), %eax
jge 0x13f979
movq 0x5930(%rsp), %rax
movl 0x5920(%rsp), %ecx
imull 0x5938(%rsp), %ecx
addl 0x58c8(%rsp), %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, 0x58a0(%rsp)
movq 0x58f0(%rsp), %rax
movswl 0x40(%rax), %eax
cmpl $0x1, %eax
jne 0x13f8d1
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
cmpl 0x8cc(%rcx), %eax
jl 0x13f8d1
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
movl 0x8cc(%rcx), %ecx
movq 0x58f0(%rsp), %rdx
addl 0x64(%rdx), %ecx
cmpl %ecx, %eax
jge 0x13f8d1
movsd 0x9299b(%rip), %xmm0    # 0x1d2248
divsd 0x58d0(%rsp), %xmm0
divsd 0x58d0(%rsp), %xmm0
mulsd 0x58a0(%rsp), %xmm0
movsd %xmm0, 0x58a0(%rsp)
movq 0x58f0(%rsp), %rax
movswl 0x40(%rax), %eax
cmpl $0x1, %eax
jne 0x13f940
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
cmpl 0x8d0(%rcx), %eax
jl 0x13f940
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
movl 0x8d0(%rcx), %ecx
movq 0x58f0(%rsp), %rdx
addl 0x64(%rdx), %ecx
cmpl %ecx, %eax
jge 0x13f940
movsd 0x92923(%rip), %xmm0    # 0x1d2248
divsd 0x58d0(%rsp), %xmm0
mulsd 0x58a0(%rsp), %xmm0
movsd %xmm0, 0x58a0(%rsp)
movsd 0x58a0(%rsp), %xmm0
movq 0x5928(%rsp), %rax
movslq 0x58c8(%rsp), %rcx
mulsd (%rax,%rcx,8), %xmm0
movsd %xmm0, (%rax,%rcx,8)
movl 0x58c8(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x58c8(%rsp)
jmp 0x13f816
jmp 0x13f97b
movq 0x58f0(%rsp), %rax
movswl 0x2e(%rax), %eax
cmpl $0x1, %eax
jne 0x13f9cb
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
cmpl 0x8c4(%rcx), %eax
jl 0x13f9cb
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
movl 0x8c4(%rcx), %ecx
movq 0x58f0(%rsp), %rdx
addl 0x64(%rdx), %ecx
cmpl %ecx, %eax
jl 0x13fabf
movq 0x58f0(%rsp), %rax
movswl 0x42(%rax), %eax
cmpl $0x1, %eax
jne 0x13fa1b
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
cmpl 0x8d4(%rcx), %eax
jl 0x13fa1b
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
movl 0x8d4(%rcx), %ecx
movq 0x58f0(%rsp), %rdx
addl 0x64(%rdx), %ecx
cmpl %ecx, %eax
jl 0x13fabf
movq 0x58f0(%rsp), %rax
movswl 0x44(%rax), %eax
cmpl $0x1, %eax
jne 0x13fa67
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
cmpl 0x8e4(%rcx), %eax
jl 0x13fa67
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
movl 0x8e4(%rcx), %ecx
movq 0x58f0(%rsp), %rdx
addl 0x64(%rdx), %ecx
cmpl %ecx, %eax
jl 0x13fabf
movq 0x58f0(%rsp), %rax
movswl 0x44(%rax), %eax
cmpl $0x1, %eax
jne 0x13ff7f
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
cmpl 0x8e8(%rcx), %eax
jl 0x13ff7f
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
movl 0x8e8(%rcx), %ecx
movq 0x58f0(%rsp), %rdx
addl 0x64(%rdx), %ecx
cmpl %ecx, %eax
jge 0x13ff7f
movq 0x58f0(%rsp), %rax
movswl 0x2e(%rax), %eax
cmpl $0x1, %eax
jne 0x13fb27
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
cmpl 0x8c4(%rcx), %eax
jl 0x13fb27
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
movl 0x8c4(%rcx), %ecx
movq 0x58f0(%rsp), %rdx
addl 0x64(%rdx), %ecx
cmpl %ecx, %eax
jge 0x13fb27
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
subl 0x8c4(%rcx), %eax
movl %eax, 0x58c4(%rsp)
movq 0x58f0(%rsp), %rax
movswl 0x42(%rax), %eax
cmpl $0x1, %eax
jne 0x13fb8f
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
cmpl 0x8d4(%rcx), %eax
jl 0x13fb8f
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
movl 0x8d4(%rcx), %ecx
movq 0x58f0(%rsp), %rdx
addl 0x64(%rdx), %ecx
cmpl %ecx, %eax
jge 0x13fb8f
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
subl 0x8d4(%rcx), %eax
movl %eax, 0x58c4(%rsp)
movq 0x58f0(%rsp), %rax
movswl 0x44(%rax), %eax
cmpl $0x1, %eax
jne 0x13fbf7
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
cmpl 0x8e4(%rcx), %eax
jl 0x13fbf7
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
movl 0x8e4(%rcx), %ecx
movq 0x58f0(%rsp), %rdx
addl 0x64(%rdx), %ecx
cmpl %ecx, %eax
jge 0x13fbf7
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
subl 0x8e4(%rcx), %eax
movl %eax, 0x58c4(%rsp)
movq 0x58f0(%rsp), %rax
movswl 0x44(%rax), %eax
cmpl $0x1, %eax
jne 0x13fc5f
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
cmpl 0x8e8(%rcx), %eax
jl 0x13fc5f
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
movl 0x8e8(%rcx), %ecx
movq 0x58f0(%rsp), %rdx
addl 0x64(%rdx), %ecx
cmpl %ecx, %eax
jge 0x13fc5f
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
subl 0x8e8(%rcx), %eax
movl %eax, 0x58c4(%rsp)
movq 0x5900(%rsp), %rdi
movq 0x58f8(%rsp), %rsi
movq 0x58f0(%rsp), %rdx
movq 0x58e8(%rsp), %rcx
movl 0x58c4(%rsp), %r8d
movsd 0x58a8(%rsp), %xmm0
movq 0x5940(%rsp), %r9
movl 0x58c0(%rsp), %eax
movl %eax, (%rsp)
callq 0x141930
cmpl $0x1, %eax
jne 0x13fd19
leaq 0x1890(%rsp), %rdi
movq 0x58e8(%rsp), %rcx
addq $0x96a, %rcx            # imm = 0x96A
leaq 0x9270e(%rip), %rsi     # 0x1d23d8
leaq 0xc3fcb(%rip), %rdx     # 0x203c9c
movb $0x0, %al
callq 0x5b9c0
movq 0x58e8(%rsp), %rdi
addq $0x96a, %rdi            # imm = 0x96A
leaq 0x1890(%rsp), %r8
leaq 0x9233e(%rip), %rsi     # 0x1d2034
leaq 0xc3db8(%rip), %rdx     # 0x203ab5
movl $0x9f3, %ecx            # imm = 0x9F3
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x590c(%rsp)
jmp 0x1400ea
movq 0x5900(%rsp), %rdi
movq 0x58f8(%rsp), %rsi
movq 0x58f0(%rsp), %rdx
movq 0x58e8(%rsp), %rcx
movl 0x58c4(%rsp), %r8d
movq 0x5940(%rsp), %r9
movl 0x58c0(%rsp), %ebx
movl 0x58cc(%rsp), %r11d
movsd 0x58a8(%rsp), %xmm0
movq 0x58e0(%rsp), %r10
movq 0x5928(%rsp), %rax
movl %ebx, (%rsp)
movl %r11d, 0x8(%rsp)
movq %r10, 0x10(%rsp)
movq %rax, 0x18(%rsp)
callq 0x1416e0
cmpl $0x1, %eax
jne 0x13fdfa
leaq 0x1090(%rsp), %rdi
movq 0x58e8(%rsp), %rcx
addq $0x96a, %rcx            # imm = 0x96A
leaq 0x9262d(%rip), %rsi     # 0x1d23d8
leaq 0xc3e6f(%rip), %rdx     # 0x203c21
movb $0x0, %al
callq 0x5b9c0
movq 0x58e8(%rsp), %rdi
addq $0x96a, %rdi            # imm = 0x96A
leaq 0x1090(%rsp), %r8
leaq 0x9225d(%rip), %rsi     # 0x1d2034
leaq 0xc3cd7(%rip), %rdx     # 0x203ab5
movl $0xa02, %ecx            # imm = 0xA02
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x590c(%rsp)
jmp 0x1400ea
movq 0x5940(%rsp), %rdi
movl 0x58c0(%rsp), %esi
movq 0x5948(%rsp), %rdx
movq 0x58e8(%rsp), %rcx
addq $0x96a, %rcx            # imm = 0x96A
callq 0x2a9f0
cmpl $0x1, %eax
jne 0x13fe97
leaq 0x890(%rsp), %rdi
movq 0x58e8(%rsp), %rcx
addq $0x96a, %rcx            # imm = 0x96A
leaq 0x92590(%rip), %rsi     # 0x1d23d8
leaq 0xc3c77(%rip), %rdx     # 0x203ac6
movb $0x0, %al
callq 0x5b9c0
movq 0x58e8(%rsp), %rdi
addq $0x96a, %rdi            # imm = 0x96A
leaq 0x890(%rsp), %r8
leaq 0x921c0(%rip), %rsi     # 0x1d2034
leaq 0xc3c3a(%rip), %rdx     # 0x203ab5
movl $0xa0a, %ecx            # imm = 0xA0A
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x590c(%rsp)
jmp 0x1400ea
movl $0x0, 0x58c8(%rsp)
movl 0x58c8(%rsp), %eax
cmpl 0x58c0(%rsp), %eax
jge 0x13ff7d
movq 0x5930(%rsp), %rax
movl 0x5920(%rsp), %ecx
imull 0x5938(%rsp), %ecx
addl 0x58c8(%rsp), %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x5928(%rsp), %rax
movslq 0x58c8(%rsp), %rcx
mulsd (%rax,%rcx,8), %xmm0
movsd %xmm0, (%rax,%rcx,8)
movq 0x58f0(%rsp), %rax
movswl 0x44(%rax), %eax
cmpl $0x1, %eax
jne 0x13ff65
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
cmpl 0x8e8(%rcx), %eax
jl 0x13ff65
movl 0x5920(%rsp), %eax
movq 0x58e8(%rsp), %rcx
movl 0x8e8(%rcx), %ecx
movq 0x58f0(%rsp), %rdx
addl 0x64(%rdx), %ecx
cmpl %ecx, %eax
jge 0x13ff65
movsd 0x58d0(%rsp), %xmm0
movq 0x5928(%rsp), %rax
movslq 0x58c8(%rsp), %rcx
mulsd (%rax,%rcx,8), %xmm0
movsd %xmm0, (%rax,%rcx,8)
jmp 0x13ff67
movl 0x58c8(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x58c8(%rsp)
jmp 0x13fea2
jmp 0x13ff7f
jmp 0x13ff81
jmp 0x1400ce
movq 0x58f0(%rsp), %rax
movl 0x9f8(%rax), %eax
movl %eax, 0x58c0(%rsp)
movq 0x5928(%rsp), %rdi
movq 0x58e0(%rsp), %rsi
movq 0x58f0(%rsp), %rax
movslq 0x9f8(%rax), %rdx
shlq $0x3, %rdx
callq 0x8300
movl $0x0, 0x58c8(%rsp)
movl 0x58c8(%rsp), %eax
movq 0x58f0(%rsp), %rcx
cmpl 0x9f8(%rcx), %eax
jge 0x140032
movsd 0x58a8(%rsp), %xmm0
movq 0x58f0(%rsp), %rax
movq 0x9f0(%rax), %rax
movslq 0x58c8(%rsp), %rcx
subsd (%rax,%rcx,8), %xmm0
movq 0x5940(%rsp), %rax
movslq 0x58c8(%rsp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movl 0x58c8(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x58c8(%rsp)
jmp 0x13ffce
movq 0x5940(%rsp), %rdi
movl 0x58c0(%rsp), %esi
movq 0x5948(%rsp), %rdx
movq 0x58e8(%rsp), %rcx
addq $0x96a, %rcx            # imm = 0x96A
callq 0x2a9f0
cmpl $0x1, %eax
jne 0x1400cc
leaq 0x90(%rsp), %rdi
movq 0x58e8(%rsp), %rcx
addq $0x96a, %rcx            # imm = 0x96A
leaq 0x92358(%rip), %rsi     # 0x1d23d8
leaq 0xc3a3f(%rip), %rdx     # 0x203ac6
movb $0x0, %al
callq 0x5b9c0
movq 0x58e8(%rsp), %rdi
addq $0x96a, %rdi            # imm = 0x96A
leaq 0x90(%rsp), %r8
leaq 0x91f88(%rip), %rsi     # 0x1d2034
leaq 0xc3a02(%rip), %rdx     # 0x203ab5
movl $0xa3a, %ecx            # imm = 0xA3A
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x590c(%rsp)
jmp 0x1400ea
jmp 0x1400ce
movl 0x58c0(%rsp), %ecx
movq 0x5950(%rsp), %rax
movl %ecx, (%rax)
movl $0x0, 0x590c(%rsp)
movl 0x590c(%rsp), %eax
addq $0x5910, %rsp           # imm = 0x5910
popq %rbx
retq
nopw (%rax,%rax)