// File: /workspace/github_c_makefile_star2_O0/PoulinV[P]AxiCLASS/build/../source/fourier.c
// Function: fourier_pk_at_z
int fourier_pk_at_z(
                    struct background * pba,
                    struct fourier *pfo,
                    enum linear_or_logarithmic mode,
                    enum pk_outputs pk_output,
                    double z,
                    int index_pk,
                    double * out_pk, // array out_pk[index_k]
                    double * out_pk_ic // array out_pk_ic[index_k * pfo->ic_ic_size + index_ic1_ic2]
                    ) {
  double tau;
  double ln_tau;
  int index_k;
  int index_ic1;
  int index_ic2;
  int index_ic1_ic1;
  int index_ic2_ic2;
  int index_ic1_ic2;
  int last_index;
  short do_ic = _FALSE_;

  /** - check whether we need the decomposition into contributions from each initial condition */

  if ((pk_output == pk_linear) && (pfo->ic_size > 1) && (out_pk_ic != NULL))
    do_ic = _TRUE_;

  class_test(pk_output == pk_nonlinear && pfo->method == nl_none, pfo->error_message, "Cannot get nonlinear power spectrum when no nonlinear method is employed");

  class_test(pk_output == pk_numerical_nowiggle && pfo->has_pk_numerical_nowiggle == _FALSE_, pfo->error_message, "Cannot get nowiggle power spectrum since it was not requested in input");

  class_test(pk_output == pk_analytic_nowiggle && pfo->has_pk_analytic_nowiggle == _FALSE_, pfo->error_message, "Cannot get analytic nowiggle power spectrum since it was not requested in input");

  /** - case z=0 requiring no interpolation in z. The
        pk_analytic_nowiggle can also be computed here because, in the
        current implementation, it is only computed at z=0. */
  if ((z == 0) || (pk_output == pk_analytic_nowiggle)) {

    for (index_k=0; index_k<pfo->k_size; index_k++) {

      switch (pk_output) {

      case pk_linear:
        out_pk[index_k] = pfo->ln_pk_l[index_pk][(pfo->ln_tau_size-1)*pfo->k_size+index_k];
        if (do_ic == _TRUE_) {
          for (index_ic1_ic2 = 0; index_ic1_ic2 < pfo->ic_ic_size; index_ic1_ic2++) {
            out_pk_ic[index_k * pfo->ic_ic_size + index_ic1_ic2] =
              pfo->ln_pk_ic_l[index_pk][((pfo->ln_tau_size-1)*pfo->k_size+index_k)*pfo->ic_ic_size+index_ic1_ic2];
          }
        }
        break;

      case pk_nonlinear:
        out_pk[index_k] = pfo->ln_pk_nl[index_pk][(pfo->ln_tau_size-1)*pfo->k_size+index_k];
        break;

      case pk_numerical_nowiggle:
        out_pk[index_k] = pfo->ln_pk_l_nw_extra[(pfo->ln_tau_size-1)*pfo->k_size_extra+index_k];
        break;

      case pk_analytic_nowiggle:
        out_pk[index_k] = pfo->ln_pk_l_an_extra[index_k];
        break;

      }
    }
  }

  /** - interpolation in z */
  else {

    class_test(pfo->ln_tau_size == 1,
               pfo->error_message,
               "You are asking for the matter power spectrum at z=%e but the code was asked to store it only at z=0. You probably forgot to pass the input parameter z_max_pk (see explanatory.ini)",z);

    /** --> get value of contormal time tau */
    class_call(background_tau_of_z(pba,
                                   z,
                                   &tau),
               pba->error_message,
               pfo->error_message);

    ln_tau = log(tau);
    last_index = pfo->ln_tau_size-1;

    /** -> check that tau is in pre-computed table */

    if (ln_tau <= pfo->ln_tau[0]) {

      /** --> if ln(tau) much too small, raise an error */
      class_test(ln_tau<pfo->ln_tau[0]-100.*_EPSILON_,
                 pfo->error_message,
                 "requested z was not inside of tau tabulation range (Requested ln(tau_=%.10e, Min %.10e). Solution might be to increase input parameter z_max_pk (see explanatory.ini)",ln_tau,pfo->ln_tau[0]);

      /** --> if ln(tau) too small but within tolerance, round it and get right values without interpolating */
      ln_tau = pfo->ln_tau[0];

      for (index_k = 0 ; index_k < pfo->k_size; index_k++) {
        if (pk_output == pk_linear) {
          out_pk[index_k] = pfo->ln_pk_l[index_pk][index_k];
          if (do_ic == _TRUE_) {
            for (index_ic1_ic2 = 0; index_ic1_ic2 < pfo->ic_ic_size; index_ic1_ic2++) {
              out_pk_ic[index_k * pfo->ic_ic_size + index_ic1_ic2] = pfo->ln_pk_ic_l[index_pk][index_k * pfo->ic_ic_size + index_ic1_ic2];
            }
          }
        }
        else if (pk_output == pk_nonlinear) {
          out_pk[index_k] = pfo->ln_pk_nl[index_pk][index_k];
        }
        else {
          out_pk[index_k] = pfo->ln_pk_l_nw_extra[index_k];
        }
      }
    }

    else if (ln_tau >= pfo->ln_tau[pfo->ln_tau_size-1]) {

      /** --> if ln(tau) much too large, raise an error */
      class_test(ln_tau>pfo->ln_tau[pfo->ln_tau_size-1]+_EPSILON_,
                 pfo->error_message,
                 "requested z was not inside of tau tabulation range (Requested ln(tau_=%.10e, Max %.10e) ",ln_tau,pfo->ln_tau[pfo->ln_tau_size-1]);

      /** --> if ln(tau) too large but within tolerance, round it and get right values without interpolating */
      ln_tau = pfo->ln_tau[pfo->ln_tau_size-1];

      for (index_k = 0 ; index_k < pfo->k_size; index_k++) {
        if (pk_output == pk_linear) {
          out_pk[index_k] = pfo->ln_pk_l[index_pk][(pfo->ln_tau_size-1) * pfo->k_size + index_k];
          if (do_ic == _TRUE_) {
            for (index_ic1_ic2 = 0; index_ic1_ic2 < pfo->ic_ic_size; index_ic1_ic2++) {
              out_pk_ic[index_k * pfo->ic_ic_size + index_ic1_ic2] = pfo->ln_pk_ic_l[index_pk][((pfo->ln_tau_size-1) * pfo->k_size + index_k) * pfo->ic_ic_size + index_ic1_ic2];
            }
          }
        }
        else if (pk_output == pk_nonlinear) {
          out_pk[index_k] = pfo->ln_pk_nl[index_pk][(pfo->ln_tau_size-1) * pfo->k_size + index_k];
        }
        else {
          out_pk[index_k] = pfo->ln_pk_l_nw_extra[(pfo->ln_tau_size-1) * pfo->k_size_extra + index_k];
        }
      }
    }

    /** -> tau is in pre-computed table: interpolate */
    else {

      if (pk_output == pk_linear) {

        /** --> interpolate P_l(k) at tau from pre-computed array */
        class_call(array_interpolate_spline(pfo->ln_tau,
                                            pfo->ln_tau_size,
                                            pfo->ln_pk_l[index_pk],
                                            pfo->ddln_pk_l[index_pk],
                                            pfo->k_size,
                                            ln_tau,
                                            &last_index,
                                            out_pk,
                                            pfo->k_size,
                                            pfo->error_message),
                   pfo->error_message,
                   pfo->error_message);

        /** --> interpolate P_ic_l(k) at tau from pre-computed array */
        if (do_ic == _TRUE_) {
          class_call(array_interpolate_spline(pfo->ln_tau,
                                              pfo->ln_tau_size,
                                              pfo->ln_pk_ic_l[index_pk],
                                              pfo->ddln_pk_ic_l[index_pk],
                                              pfo->k_size*pfo->ic_ic_size,
                                              ln_tau,
                                              &last_index,
                                              out_pk_ic,
                                              pfo->k_size*pfo->ic_ic_size,
                                              pfo->error_message),
                     pfo->error_message,
                     pfo->error_message);
        }
      }

      else if (pk_output == pk_nonlinear) {

        if (ln_tau < pfo->ln_tau[pfo->ln_tau_size-pfo->ln_tau_size_nl]) {
          /** --> we requested P_nl(k) at tau where P_l is computed but the NL correction is NOT -> Return P_l */
          class_call(array_interpolate_spline(pfo->ln_tau,
                                              pfo->ln_tau_size,
                                              pfo->ln_pk_l[index_pk],
                                              pfo->ddln_pk_l[index_pk],
                                              pfo->k_size,
                                              ln_tau,
                                              &last_index,
                                              out_pk,
                                              pfo->k_size,
                                              pfo->error_message),
                     pfo->error_message,
                     pfo->error_message);

        }
        else {
          /** --> interpolate P_nl(k) at tau from pre-computed array */
          class_call(array_interpolate_spline(pfo->ln_tau+(pfo->ln_tau_size-pfo->ln_tau_size_nl),
                                              pfo->ln_tau_size_nl,
                                              pfo->ln_pk_nl[index_pk]+(pfo->ln_tau_size-pfo->ln_tau_size_nl)*pfo->k_size,
                                              pfo->ddln_pk_nl[index_pk]+(pfo->ln_tau_size-pfo->ln_tau_size_nl)*pfo->k_size,
                                              pfo->k_size,
                                              ln_tau,
                                              &last_index,
                                              out_pk,
                                              pfo->k_size,
                                              pfo->error_message),
                     pfo->error_message,
                     pfo->error_message);
        }
      }
      else {

        /** --> interpolate P_l_nw(k) at tau from pre-computed array */
        class_call(array_interpolate_spline(pfo->ln_tau,
                                            pfo->ln_tau_size,
                                            pfo->ln_pk_l_nw_extra,
                                            pfo->ddln_pk_l_nw_extra,
                                            pfo->k_size_extra,
                                            ln_tau,
                                            &last_index,
                                            out_pk,
                                            pfo->k_size,
                                            pfo->error_message),
                   pfo->error_message,
                   pfo->error_message);
      }
    }
  }

  /** - so far, all output stored in logarithmic format. Eventually, convert to linear one. */

  if (mode == linear) {

    /** --> loop over k */
    for (index_k=0; index_k<pfo->k_size; index_k++) {

      /** --> convert total spectrum */
      out_pk[index_k] = exp(out_pk[index_k]);

      if (do_ic == _TRUE_) {
        /** --> convert contribution of each ic (diagonal elements) */
        for (index_ic1=0; index_ic1 < pfo->ic_size; index_ic1++) {
          index_ic1_ic1 = index_symmetric_matrix(index_ic1,index_ic1,pfo->ic_size);

          out_pk_ic[index_k * pfo->ic_ic_size + index_ic1_ic1] = exp(out_pk_ic[index_k * pfo->ic_ic_size + index_ic1_ic1]);
        }

        /** --> convert contribution of each ic (non-diagonal elements) */
        for (index_ic1=0; index_ic1 < pfo->ic_size; index_ic1++) {
          for (index_ic2=index_ic1+1; index_ic2 < pfo->ic_size; index_ic2++) {
            index_ic1_ic1 = index_symmetric_matrix(index_ic1,index_ic1,pfo->ic_size);
            index_ic2_ic2 = index_symmetric_matrix(index_ic2,index_ic2,pfo->ic_size);
            index_ic1_ic2 = index_symmetric_matrix(index_ic1,index_ic2,pfo->ic_size);

            /* P_ic1xic2 = cos(angle) * sqrt(P_ic1 * P_ic2) */
            out_pk_ic[index_k * pfo->ic_ic_size + index_ic1_ic2]
              = out_pk_ic[index_k * pfo->ic_ic_size + index_ic1_ic2]
              *sqrt(out_pk_ic[index_k * pfo->ic_ic_size + index_ic1_ic1]
                    *out_pk_ic[index_k * pfo->ic_ic_size + index_ic2_ic2]);
          }
        }
      }
    }
  }

  return _SUCCESS_;
}

// Assembly:
subq $0x90c8, %rsp           # imm = 0x90C8
movq 0x90d0(%rsp), %rax
movq %rdi, 0x90b8(%rsp)
movq %rsi, 0x90b0(%rsp)
movl %edx, 0x90ac(%rsp)
movl %ecx, 0x90a8(%rsp)
movsd %xmm0, 0x90a0(%rsp)
movl %r8d, 0x909c(%rsp)
movq %r9, 0x9090(%rsp)
movw $0x0, 0x9062(%rsp)
cmpl $0x0, 0x90a8(%rsp)
jne 0x12376d
movq 0x90b0(%rsp), %rax
cmpl $0x1, 0x40(%rax)
jle 0x12376d
cmpq $0x0, 0x90d0(%rsp)
je 0x12376d
movw $0x1, 0x9062(%rsp)
cmpl $0x1, 0x90a8(%rsp)
jne 0x123804
movq 0x90b0(%rsp), %rax
cmpl $0x0, (%rax)
jne 0x123804
leaq 0x8860(%rsp), %rdi
leaq 0xdbeb1(%rip), %rsi     # 0x1ff648
movb $0x0, %al
callq 0x5b9c0
leaq 0x8060(%rsp), %rdi
leaq 0x8860(%rsp), %rcx
leaq 0xae8cd(%rip), %rsi     # 0x1d2082
leaq 0xdbed5(%rip), %rdx     # 0x1ff691
movb $0x0, %al
callq 0x5b9c0
movq 0x90b0(%rsp), %rdi
addq $0x192, %rdi            # imm = 0x192
leaq 0x8060(%rsp), %r8
leaq 0xae853(%rip), %rsi     # 0x1d2034
leaq 0xdbedd(%rip), %rdx     # 0x1ff6c5
movl $0x60, %ecx
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x90c4(%rsp)
jmp 0x124f35
cmpl $0x2, 0x90a8(%rsp)
jne 0x12389f
movq 0x90b0(%rsp), %rax
movswl 0x3a(%rax), %eax
cmpl $0x0, %eax
jne 0x12389f
leaq 0x7860(%rsp), %rdi
leaq 0xdbea3(%rip), %rsi     # 0x1ff6d5
movb $0x0, %al
callq 0x5b9c0
leaq 0x7060(%rsp), %rdi
leaq 0x7860(%rsp), %rcx
leaq 0xae832(%rip), %rsi     # 0x1d2082
leaq 0xdbec5(%rip), %rdx     # 0x1ff71c
movb $0x0, %al
callq 0x5b9c0
movq 0x90b0(%rsp), %rdi
addq $0x192, %rdi            # imm = 0x192
leaq 0x7060(%rsp), %r8
leaq 0xae7b8(%rip), %rsi     # 0x1d2034
leaq 0xdbe42(%rip), %rdx     # 0x1ff6c5
movl $0x62, %ecx
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x90c4(%rsp)
jmp 0x124f35
cmpl $0x3, 0x90a8(%rsp)
jne 0x12393a
movq 0x90b0(%rsp), %rax
movswl 0x38(%rax), %eax
cmpl $0x0, %eax
jne 0x12393a
leaq 0x6860(%rsp), %rdi
leaq 0xdbe9f(%rip), %rsi     # 0x1ff76c
movb $0x0, %al
callq 0x5b9c0
leaq 0x6060(%rsp), %rdi
leaq 0x6860(%rsp), %rcx
leaq 0xae797(%rip), %rsi     # 0x1d2082
leaq 0xdbeca(%rip), %rdx     # 0x1ff7bc
movb $0x0, %al
callq 0x5b9c0
movq 0x90b0(%rsp), %rdi
addq $0x192, %rdi            # imm = 0x192
leaq 0x6060(%rsp), %r8
leaq 0xae71d(%rip), %rsi     # 0x1d2034
leaq 0xdbda7(%rip), %rdx     # 0x1ff6c5
movl $0x64, %ecx
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x90c4(%rsp)
jmp 0x124f35
movsd 0x90a0(%rsp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x123950
jp 0x123950
jmp 0x12395e
cmpl $0x3, 0x90a8(%rsp)
jne 0x123be1
movl $0x0, 0x907c(%rsp)
movl 0x907c(%rsp), %eax
movq 0x90b0(%rsp), %rcx
cmpl 0x6c(%rcx), %eax
jge 0x123bdc
movl 0x90a8(%rsp), %eax
movq %rax, 0x58(%rsp)
subq $0x3, %rax
ja 0x123bc4
movq 0x58(%rsp), %rax
leaq 0xdbc7d(%rip), %rcx     # 0x1ff620
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq 0x90b0(%rsp), %rax
movq 0xa8(%rax), %rax
movslq 0x909c(%rsp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x90b0(%rsp), %rcx
movl 0x90(%rcx), %ecx
subl $0x1, %ecx
movq 0x90b0(%rsp), %rdx
imull 0x6c(%rdx), %ecx
addl 0x907c(%rsp), %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x9090(%rsp), %rax
movslq 0x907c(%rsp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movswl 0x9062(%rsp), %eax
cmpl $0x1, %eax
jne 0x123ad8
movl $0x0, 0x9068(%rsp)
movl 0x9068(%rsp), %eax
movq 0x90b0(%rsp), %rcx
cmpl 0x44(%rcx), %eax
jge 0x123ad6
movq 0x90b0(%rsp), %rax
movq 0x98(%rax), %rax
movslq 0x909c(%rsp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x90b0(%rsp), %rcx
movl 0x90(%rcx), %ecx
subl $0x1, %ecx
movq 0x90b0(%rsp), %rdx
imull 0x6c(%rdx), %ecx
addl 0x907c(%rsp), %ecx
movq 0x90b0(%rsp), %rdx
imull 0x44(%rdx), %ecx
addl 0x9068(%rsp), %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x90d0(%rsp), %rax
movl 0x907c(%rsp), %ecx
movq 0x90b0(%rsp), %rdx
imull 0x44(%rdx), %ecx
addl 0x9068(%rsp), %ecx
movslq %ecx, %rcx
movsd %xmm0, (%rax,%rcx,8)
movl 0x9068(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x9068(%rsp)
jmp 0x123a24
jmp 0x123ad8
jmp 0x123bc4
movq 0x90b0(%rsp), %rax
movq 0xb8(%rax), %rax
movslq 0x909c(%rsp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x90b0(%rsp), %rcx
movl 0x90(%rcx), %ecx
subl $0x1, %ecx
movq 0x90b0(%rsp), %rdx
imull 0x6c(%rdx), %ecx
addl 0x907c(%rsp), %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x9090(%rsp), %rax
movslq 0x907c(%rsp), %rcx
movsd %xmm0, (%rax,%rcx,8)
jmp 0x123bc4
movq 0x90b0(%rsp), %rax
movq 0x130(%rax), %rax
movq 0x90b0(%rsp), %rcx
movl 0x90(%rcx), %ecx
subl $0x1, %ecx
movq 0x90b0(%rsp), %rdx
imull 0x104(%rdx), %ecx
addl 0x907c(%rsp), %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x9090(%rsp), %rax
movslq 0x907c(%rsp), %rcx
movsd %xmm0, (%rax,%rcx,8)
jmp 0x123bc4
movq 0x90b0(%rsp), %rax
movq 0x118(%rax), %rax
movslq 0x907c(%rsp), %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x9090(%rsp), %rax
movslq 0x907c(%rsp), %rcx
movsd %xmm0, (%rax,%rcx,8)
jmp 0x123bc6
movl 0x907c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x907c(%rsp)
jmp 0x123969
jmp 0x124a1d
movq 0x90b0(%rsp), %rax
cmpl $0x1, 0x90(%rax)
jne 0x123c7b
leaq 0x5860(%rsp), %rdi
movsd 0x90a0(%rsp), %xmm0
leaq 0xdbbfc(%rip), %rsi     # 0x1ff80a
movb $0x1, %al
callq 0x5b9c0
leaq 0x5060(%rsp), %rdi
leaq 0x5860(%rsp), %rcx
leaq 0xae456(%rip), %rsi     # 0x1d2082
leaq 0xdbc8b(%rip), %rdx     # 0x1ff8be
movb $0x0, %al
callq 0x5b9c0
movq 0x90b0(%rsp), %rdi
addq $0x192, %rdi            # imm = 0x192
leaq 0x5060(%rsp), %r8
leaq 0xae3dc(%rip), %rsi     # 0x1d2034
leaq 0xdba66(%rip), %rdx     # 0x1ff6c5
movl $0x8e, %ecx
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x90c4(%rsp)
jmp 0x124f35
movq 0x90b8(%rsp), %rdi
movsd 0x90a0(%rsp), %xmm0
leaq 0x9088(%rsp), %rsi
callq 0x9ee00
cmpl $0x1, %eax
jne 0x123d0b
leaq 0x4860(%rsp), %rdi
movq 0x90b8(%rsp), %rcx
addq $0xd1c, %rcx            # imm = 0xD1C
leaq 0xae71c(%rip), %rsi     # 0x1d23d8
leaq 0xd20a2(%rip), %rdx     # 0x1f5d65
movb $0x0, %al
callq 0x5b9c0
movq 0x90b0(%rsp), %rdi
addq $0x192, %rdi            # imm = 0x192
leaq 0x4860(%rsp), %r8
leaq 0xae34c(%rip), %rsi     # 0x1d2034
leaq 0xdb9d6(%rip), %rdx     # 0x1ff6c5
movl $0x95, %ecx
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x90c4(%rsp)
jmp 0x124f35
movsd 0x9088(%rsp), %xmm0
callq 0x82f0
movsd %xmm0, 0x9080(%rsp)
movq 0x90b0(%rsp), %rax
movl 0x90(%rax), %eax
subl $0x1, %eax
movl %eax, 0x9064(%rsp)
movsd 0x9080(%rsp), %xmm1
movq 0x90b0(%rsp), %rax
movq 0x88(%rax), %rax
movsd (%rax), %xmm0
ucomisd %xmm1, %xmm0
jb 0x123ffe
movsd 0x9080(%rsp), %xmm1
movq 0x90b0(%rsp), %rax
movq 0x88(%rax), %rax
movsd (%rax), %xmm0
movsd 0xcd734(%rip), %xmm2    # 0x1f14b8
subsd %xmm2, %xmm0
ucomisd %xmm1, %xmm0
jbe 0x123e2a
leaq 0x4060(%rsp), %rdi
movsd 0x9080(%rsp), %xmm0
movq 0x90b0(%rsp), %rax
movq 0x88(%rax), %rax
movsd (%rax), %xmm1
leaq 0xdbb17(%rip), %rsi     # 0x1ff8d4
movb $0x2, %al
callq 0x5b9c0
leaq 0x3860(%rsp), %rdi
leaq 0x4060(%rsp), %rcx
leaq 0xae2a7(%rip), %rsi     # 0x1d2082
leaq 0xdbb98(%rip), %rdx     # 0x1ff97a
movb $0x0, %al
callq 0x5b9c0
movq 0x90b0(%rsp), %rdi
addq $0x192, %rdi            # imm = 0x192
leaq 0x3860(%rsp), %r8
leaq 0xae22d(%rip), %rsi     # 0x1d2034
leaq 0xdb8b7(%rip), %rdx     # 0x1ff6c5
movl $0xa1, %ecx
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x90c4(%rsp)
jmp 0x124f35
movq 0x90b0(%rsp), %rax
movq 0x88(%rax), %rax
movsd (%rax), %xmm0
movsd %xmm0, 0x9080(%rsp)
movl $0x0, 0x907c(%rsp)
movl 0x907c(%rsp), %eax
movq 0x90b0(%rsp), %rcx
cmpl 0x6c(%rcx), %eax
jge 0x123ff9
cmpl $0x0, 0x90a8(%rsp)
jne 0x123f65
movq 0x90b0(%rsp), %rax
movq 0xa8(%rax), %rax
movslq 0x909c(%rsp), %rcx
movq (%rax,%rcx,8), %rax
movslq 0x907c(%rsp), %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x9090(%rsp), %rax
movslq 0x907c(%rsp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movswl 0x9062(%rsp), %eax
cmpl $0x1, %eax
jne 0x123f63
movl $0x0, 0x9068(%rsp)
movl 0x9068(%rsp), %eax
movq 0x90b0(%rsp), %rcx
cmpl 0x44(%rcx), %eax
jge 0x123f61
movq 0x90b0(%rsp), %rax
movq 0x98(%rax), %rax
movslq 0x909c(%rsp), %rcx
movq (%rax,%rcx,8), %rax
movl 0x907c(%rsp), %ecx
movq 0x90b0(%rsp), %rdx
imull 0x44(%rdx), %ecx
addl 0x9068(%rsp), %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x90d0(%rsp), %rax
movl 0x907c(%rsp), %ecx
movq 0x90b0(%rsp), %rdx
imull 0x44(%rdx), %ecx
addl 0x9068(%rsp), %ecx
movslq %ecx, %rcx
movsd %xmm0, (%rax,%rcx,8)
movl 0x9068(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x9068(%rsp)
jmp 0x123ed0
jmp 0x123f63
jmp 0x123fe1
cmpl $0x1, 0x90a8(%rsp)
jne 0x123fae
movq 0x90b0(%rsp), %rax
movq 0xb8(%rax), %rax
movslq 0x909c(%rsp), %rcx
movq (%rax,%rcx,8), %rax
movslq 0x907c(%rsp), %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x9090(%rsp), %rax
movslq 0x907c(%rsp), %rcx
movsd %xmm0, (%rax,%rcx,8)
jmp 0x123fdf
movq 0x90b0(%rsp), %rax
movq 0x130(%rax), %rax
movslq 0x907c(%rsp), %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x9090(%rsp), %rax
movslq 0x907c(%rsp), %rcx
movsd %xmm0, (%rax,%rcx,8)
jmp 0x123fe1
jmp 0x123fe3
movl 0x907c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x907c(%rsp)
jmp 0x123e51
jmp 0x124a1b
movsd 0x9080(%rsp), %xmm0
movq 0x90b0(%rsp), %rax
movq 0x88(%rax), %rax
movq 0x90b0(%rsp), %rcx
movl 0x90(%rcx), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
ucomisd (%rax,%rcx,8), %xmm0
jb 0x124392
movsd 0x9080(%rsp), %xmm0
movq 0x90b0(%rsp), %rax
movq 0x88(%rax), %rax
movq 0x90b0(%rsp), %rcx
movl 0x90(%rcx), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movsd 0xb24c7(%rip), %xmm1    # 0x1d6530
addsd (%rax,%rcx,8), %xmm1
ucomisd %xmm1, %xmm0
jbe 0x124125
leaq 0x3060(%rsp), %rdi
movsd 0x9080(%rsp), %xmm0
movq 0x90b0(%rsp), %rax
movq 0x88(%rax), %rax
movq 0x90b0(%rsp), %rcx
movl 0x90(%rcx), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm1
leaq 0xdb8e7(%rip), %rsi     # 0x1ff99f
movb $0x2, %al
callq 0x5b9c0
leaq 0x2860(%rsp), %rdi
leaq 0x3060(%rsp), %rcx
leaq 0xadfac(%rip), %rsi     # 0x1d2082
leaq 0xdb91b(%rip), %rdx     # 0x1ff9f8
movb $0x0, %al
callq 0x5b9c0
movq 0x90b0(%rsp), %rdi
addq $0x192, %rdi            # imm = 0x192
leaq 0x2860(%rsp), %r8
leaq 0xadf32(%rip), %rsi     # 0x1d2034
leaq 0xdb5bc(%rip), %rdx     # 0x1ff6c5
movl $0xbd, %ecx
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x90c4(%rsp)
jmp 0x124f35
movq 0x90b0(%rsp), %rax
movq 0x88(%rax), %rax
movq 0x90b0(%rsp), %rcx
movl 0x90(%rcx), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, 0x9080(%rsp)
movl $0x0, 0x907c(%rsp)
movl 0x907c(%rsp), %eax
movq 0x90b0(%rsp), %rcx
cmpl 0x6c(%rcx), %eax
jge 0x12438d
cmpl $0x0, 0x90a8(%rsp)
jne 0x1242b8
movq 0x90b0(%rsp), %rax
movq 0xa8(%rax), %rax
movslq 0x909c(%rsp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x90b0(%rsp), %rcx
movl 0x90(%rcx), %ecx
subl $0x1, %ecx
movq 0x90b0(%rsp), %rdx
imull 0x6c(%rdx), %ecx
addl 0x907c(%rsp), %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x9090(%rsp), %rax
movslq 0x907c(%rsp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movswl 0x9062(%rsp), %eax
cmpl $0x1, %eax
jne 0x1242b3
movl $0x0, 0x9068(%rsp)
movl 0x9068(%rsp), %eax
movq 0x90b0(%rsp), %rcx
cmpl 0x44(%rcx), %eax
jge 0x1242b1
movq 0x90b0(%rsp), %rax
movq 0x98(%rax), %rax
movslq 0x909c(%rsp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x90b0(%rsp), %rcx
movl 0x90(%rcx), %ecx
subl $0x1, %ecx
movq 0x90b0(%rsp), %rdx
imull 0x6c(%rdx), %ecx
addl 0x907c(%rsp), %ecx
movq 0x90b0(%rsp), %rdx
imull 0x44(%rdx), %ecx
addl 0x9068(%rsp), %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x90d0(%rsp), %rax
movl 0x907c(%rsp), %ecx
movq 0x90b0(%rsp), %rdx
imull 0x44(%rdx), %ecx
addl 0x9068(%rsp), %ecx
movslq %ecx, %rcx
movsd %xmm0, (%rax,%rcx,8)
movl 0x9068(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x9068(%rsp)
jmp 0x1241ff
jmp 0x1242b3
jmp 0x124375
cmpl $0x1, 0x90a8(%rsp)
jne 0x124320
movq 0x90b0(%rsp), %rax
movq 0xb8(%rax), %rax
movslq 0x909c(%rsp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x90b0(%rsp), %rcx
movl 0x90(%rcx), %ecx
subl $0x1, %ecx
movq 0x90b0(%rsp), %rdx
imull 0x6c(%rdx), %ecx
addl 0x907c(%rsp), %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x9090(%rsp), %rax
movslq 0x907c(%rsp), %rcx
movsd %xmm0, (%rax,%rcx,8)
jmp 0x124373
movq 0x90b0(%rsp), %rax
movq 0x130(%rax), %rax
movq 0x90b0(%rsp), %rcx
movl 0x90(%rcx), %ecx
subl $0x1, %ecx
movq 0x90b0(%rsp), %rdx
imull 0x104(%rdx), %ecx
addl 0x907c(%rsp), %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x9090(%rsp), %rax
movslq 0x907c(%rsp), %rcx
movsd %xmm0, (%rax,%rcx,8)
jmp 0x124375
jmp 0x124377
movl 0x907c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x907c(%rsp)
jmp 0x124161
jmp 0x124a19
cmpl $0x0, 0x90a8(%rsp)
jne 0x124600
movq 0x90b0(%rsp), %rax
movq 0x88(%rax), %rdi
movq 0x90b0(%rsp), %rax
movl 0x90(%rax), %esi
movq 0x90b0(%rsp), %rax
movq 0xa8(%rax), %rax
movslq 0x909c(%rsp), %rcx
movq (%rax,%rcx,8), %rdx
movq 0x90b0(%rsp), %rax
movq 0xb0(%rax), %rax
movslq 0x909c(%rsp), %rcx
movq (%rax,%rcx,8), %rcx
movq 0x90b0(%rsp), %rax
movl 0x6c(%rax), %r8d
movsd 0x9080(%rsp), %xmm0
movq 0x9090(%rsp), %r11
movq 0x90b0(%rsp), %rax
movl 0x6c(%rax), %r10d
movq 0x90b0(%rsp), %rax
addq $0x192, %rax            # imm = 0x192
leaq 0x9064(%rsp), %r9
movq %r11, (%rsp)
movl %r10d, 0x8(%rsp)
movq %rax, 0x10(%rsp)
callq 0x24220
cmpl $0x1, %eax
jne 0x1244b7
leaq 0x2060(%rsp), %rdi
movq 0x90b0(%rsp), %rcx
addq $0x192, %rcx            # imm = 0x192
leaq 0xadf70(%rip), %rsi     # 0x1d23d8
leaq 0xdb5ba(%rip), %rdx     # 0x1ffa29
movb $0x0, %al
callq 0x5b9c0
movq 0x90b0(%rsp), %rdi
addq $0x192, %rdi            # imm = 0x192
leaq 0x2060(%rsp), %r8
leaq 0xadba0(%rip), %rsi     # 0x1d2034
leaq 0xdb22a(%rip), %rdx     # 0x1ff6c5
movl $0xe5, %ecx
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x90c4(%rsp)
jmp 0x124f35
movswl 0x9062(%rsp), %eax
cmpl $0x1, %eax
jne 0x1245fb
movq 0x90b0(%rsp), %rax
movq 0x88(%rax), %rdi
movq 0x90b0(%rsp), %rax
movl 0x90(%rax), %esi
movq 0x90b0(%rsp), %rax
movq 0x98(%rax), %rax
movslq 0x909c(%rsp), %rcx
movq (%rax,%rcx,8), %rdx
movq 0x90b0(%rsp), %rax
movq 0xa0(%rax), %rax
movslq 0x909c(%rsp), %rcx
movq (%rax,%rcx,8), %rcx
movq 0x90b0(%rsp), %rax
movl 0x6c(%rax), %r8d
movq 0x90b0(%rsp), %rax
imull 0x44(%rax), %r8d
movsd 0x9080(%rsp), %xmm0
movq 0x90d0(%rsp), %r11
movq 0x90b0(%rsp), %rax
movl 0x6c(%rax), %r10d
movq 0x90b0(%rsp), %rax
imull 0x44(%rax), %r10d
movq 0x90b0(%rsp), %rax
addq $0x192, %rax            # imm = 0x192
leaq 0x9064(%rsp), %r9
movq %r11, (%rsp)
movl %r10d, 0x8(%rsp)
movq %rax, 0x10(%rsp)
callq 0x24220
cmpl $0x1, %eax
jne 0x1245f9
leaq 0x1860(%rsp), %rdi
movq 0x90b0(%rsp), %rcx
addq $0x192, %rcx            # imm = 0x192
leaq 0xade2e(%rip), %rsi     # 0x1d23d8
leaq 0xdb52d(%rip), %rdx     # 0x1ffade
movb $0x0, %al
callq 0x5b9c0
movq 0x90b0(%rsp), %rdi
addq $0x192, %rdi            # imm = 0x192
leaq 0x1860(%rsp), %r8
leaq 0xada5e(%rip), %rsi     # 0x1d2034
leaq 0xdb0e8(%rip), %rdx     # 0x1ff6c5
movl $0xf4, %ecx
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x90c4(%rsp)
jmp 0x124f35
jmp 0x1245fb
jmp 0x124a17
cmpl $0x1, 0x90a8(%rsp)
jne 0x124917
movsd 0x9080(%rsp), %xmm1
movq 0x90b0(%rsp), %rax
movq 0x88(%rax), %rax
movq 0x90b0(%rsp), %rcx
movl 0x90(%rcx), %ecx
movq 0x90b0(%rsp), %rdx
subl 0x94(%rdx), %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
ucomisd %xmm1, %xmm0
jbe 0x124770
movq 0x90b0(%rsp), %rax
movq 0x88(%rax), %rdi
movq 0x90b0(%rsp), %rax
movl 0x90(%rax), %esi
movq 0x90b0(%rsp), %rax
movq 0xa8(%rax), %rax
movslq 0x909c(%rsp), %rcx
movq (%rax,%rcx,8), %rdx
movq 0x90b0(%rsp), %rax
movq 0xb0(%rax), %rax
movslq 0x909c(%rsp), %rcx
movq (%rax,%rcx,8), %rcx
movq 0x90b0(%rsp), %rax
movl 0x6c(%rax), %r8d
movsd 0x9080(%rsp), %xmm0
movq 0x9090(%rsp), %r11
movq 0x90b0(%rsp), %rax
movl 0x6c(%rax), %r10d
movq 0x90b0(%rsp), %rax
addq $0x192, %rax            # imm = 0x192
leaq 0x9064(%rsp), %r9
movq %r11, (%rsp)
movl %r10d, 0x8(%rsp)
movq %rax, 0x10(%rsp)
callq 0x24220
cmpl $0x1, %eax
jne 0x12476b
leaq 0x1060(%rsp), %rdi
movq 0x90b0(%rsp), %rcx
addq $0x192, %rcx            # imm = 0x192
leaq 0xadcbc(%rip), %rsi     # 0x1d23d8
leaq 0xdb306(%rip), %rdx     # 0x1ffa29
movb $0x0, %al
callq 0x5b9c0
movq 0x90b0(%rsp), %rdi
addq $0x192, %rdi            # imm = 0x192
leaq 0x1060(%rsp), %r8
leaq 0xad8ec(%rip), %rsi     # 0x1d2034
leaq 0xdaf76(%rip), %rdx     # 0x1ff6c5
movl $0x107, %ecx            # imm = 0x107
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x90c4(%rsp)
jmp 0x124f35
jmp 0x124912
movq 0x90b0(%rsp), %rax
movq 0x88(%rax), %rdi
movq 0x90b0(%rsp), %rax
movl 0x90(%rax), %eax
movq 0x90b0(%rsp), %rcx
subl 0x94(%rcx), %eax
cltq
shlq $0x3, %rax
addq %rax, %rdi
movq 0x90b0(%rsp), %rax
movl 0x94(%rax), %esi
movq 0x90b0(%rsp), %rax
movq 0xb8(%rax), %rax
movslq 0x909c(%rsp), %rcx
movq (%rax,%rcx,8), %rdx
movq 0x90b0(%rsp), %rax
movl 0x90(%rax), %eax
movq 0x90b0(%rsp), %rcx
subl 0x94(%rcx), %eax
movq 0x90b0(%rsp), %rcx
imull 0x6c(%rcx), %eax
cltq
shlq $0x3, %rax
addq %rax, %rdx
movq 0x90b0(%rsp), %rax
movq 0xc0(%rax), %rax
movslq 0x909c(%rsp), %rcx
movq (%rax,%rcx,8), %rcx
movq 0x90b0(%rsp), %rax
movl 0x90(%rax), %eax
movq 0x90b0(%rsp), %r8
subl 0x94(%r8), %eax
movq 0x90b0(%rsp), %r8
imull 0x6c(%r8), %eax
cltq
shlq $0x3, %rax
addq %rax, %rcx
movq 0x90b0(%rsp), %rax
movl 0x6c(%rax), %r8d
movsd 0x9080(%rsp), %xmm0
movq 0x9090(%rsp), %r11
movq 0x90b0(%rsp), %rax
movl 0x6c(%rax), %r10d
movq 0x90b0(%rsp), %rax
addq $0x192, %rax            # imm = 0x192
leaq 0x9064(%rsp), %r9
movq %r11, (%rsp)
movl %r10d, 0x8(%rsp)
movq %rax, 0x10(%rsp)
callq 0x24220
cmpl $0x1, %eax
jne 0x124910
leaq 0x860(%rsp), %rdi
movq 0x90b0(%rsp), %rcx
addq $0x192, %rcx            # imm = 0x192
leaq 0xadb17(%rip), %rsi     # 0x1d23d8
leaq 0xdb2f4(%rip), %rdx     # 0x1ffbbc
movb $0x0, %al
callq 0x5b9c0
movq 0x90b0(%rsp), %rdi
addq $0x192, %rdi            # imm = 0x192
leaq 0x860(%rsp), %r8
leaq 0xad747(%rip), %rsi     # 0x1d2034
leaq 0xdadd1(%rip), %rdx     # 0x1ff6c5
movl $0x117, %ecx            # imm = 0x117
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x90c4(%rsp)
jmp 0x124f35
jmp 0x124912
jmp 0x124a15
movq 0x90b0(%rsp), %rax
movq 0x88(%rax), %rdi
movq 0x90b0(%rsp), %rax
movl 0x90(%rax), %esi
movq 0x90b0(%rsp), %rax
movq 0x130(%rax), %rdx
movq 0x90b0(%rsp), %rax
movq 0x138(%rax), %rcx
movq 0x90b0(%rsp), %rax
movl 0x104(%rax), %r8d
movsd 0x9080(%rsp), %xmm0
movq 0x9090(%rsp), %r11
movq 0x90b0(%rsp), %rax
movl 0x6c(%rax), %r10d
movq 0x90b0(%rsp), %rax
addq $0x192, %rax            # imm = 0x192
leaq 0x9064(%rsp), %r9
movq %r11, (%rsp)
movl %r10d, 0x8(%rsp)
movq %rax, 0x10(%rsp)
callq 0x24220
cmpl $0x1, %eax
jne 0x124a13
leaq 0x60(%rsp), %rdi
movq 0x90b0(%rsp), %rcx
addq $0x192, %rcx            # imm = 0x192
leaq 0xada11(%rip), %rsi     # 0x1d23d8
leaq 0xdb335(%rip), %rdx     # 0x1ffd03
movb $0x0, %al
callq 0x5b9c0
movq 0x90b0(%rsp), %rdi
addq $0x192, %rdi            # imm = 0x192
leaq 0x60(%rsp), %r8
leaq 0xad644(%rip), %rsi     # 0x1d2034
leaq 0xdacce(%rip), %rdx     # 0x1ff6c5
movl $0x128, %ecx            # imm = 0x128
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x90c4(%rsp)
jmp 0x124f35
jmp 0x124a15
jmp 0x124a17
jmp 0x124a19
jmp 0x124a1b
jmp 0x124a1d
cmpl $0x0, 0x90ac(%rsp)
jne 0x124f2a
movl $0x0, 0x907c(%rsp)
movl 0x907c(%rsp), %eax
movq 0x90b0(%rsp), %rcx
cmpl 0x6c(%rcx), %eax
jge 0x124f28
movq 0x9090(%rsp), %rax
movslq 0x907c(%rsp), %rcx
movsd (%rax,%rcx,8), %xmm0
callq 0x8670
movq 0x9090(%rsp), %rax
movslq 0x907c(%rsp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movswl 0x9062(%rsp), %eax
cmpl $0x1, %eax
jne 0x124f10
movl $0x0, 0x9078(%rsp)
movl 0x9078(%rsp), %eax
movq 0x90b0(%rsp), %rcx
cmpl 0x40(%rcx), %eax
jge 0x124bcd
movl 0x9078(%rsp), %eax
cmpl 0x9078(%rsp), %eax
jg 0x124b0b
movl 0x9078(%rsp), %eax
movq 0x90b0(%rsp), %rcx
movl 0x40(%rcx), %ecx
imull 0x9078(%rsp), %ecx
addl %ecx, %eax
movl %eax, 0x50(%rsp)
movl 0x9078(%rsp), %eax
movl 0x9078(%rsp), %ecx
addl $0x1, %ecx
imull %ecx, %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movl 0x50(%rsp), %eax
subl %ecx, %eax
movl %eax, 0x54(%rsp)
jmp 0x124b53
movl 0x9078(%rsp), %eax
movq 0x90b0(%rsp), %rcx
movl 0x40(%rcx), %ecx
imull 0x9078(%rsp), %ecx
addl %ecx, %eax
movl %eax, 0x4c(%rsp)
movl 0x9078(%rsp), %eax
movl 0x9078(%rsp), %ecx
addl $0x1, %ecx
imull %ecx, %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movl 0x4c(%rsp), %eax
subl %ecx, %eax
movl %eax, 0x54(%rsp)
movl 0x54(%rsp), %eax
movl %eax, 0x9070(%rsp)
movq 0x90d0(%rsp), %rax
movl 0x907c(%rsp), %ecx
movq 0x90b0(%rsp), %rdx
imull 0x44(%rdx), %ecx
addl 0x9070(%rsp), %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
callq 0x8670
movq 0x90d0(%rsp), %rax
movl 0x907c(%rsp), %ecx
movq 0x90b0(%rsp), %rdx
imull 0x44(%rdx), %ecx
addl 0x9070(%rsp), %ecx
movslq %ecx, %rcx
movsd %xmm0, (%rax,%rcx,8)
movl 0x9078(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x9078(%rsp)
jmp 0x124a99
movl $0x0, 0x9078(%rsp)
movl 0x9078(%rsp), %eax
movq 0x90b0(%rsp), %rcx
cmpl 0x40(%rcx), %eax
jge 0x124f0e
movl 0x9078(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x9074(%rsp)
movl 0x9074(%rsp), %eax
movq 0x90b0(%rsp), %rcx
cmpl 0x40(%rcx), %eax
jge 0x124ef6
movl 0x9078(%rsp), %eax
cmpl 0x9078(%rsp), %eax
jg 0x124c73
movl 0x9078(%rsp), %eax
movq 0x90b0(%rsp), %rcx
movl 0x40(%rcx), %ecx
imull 0x9078(%rsp), %ecx
addl %ecx, %eax
movl %eax, 0x44(%rsp)
movl 0x9078(%rsp), %eax
movl 0x9078(%rsp), %ecx
addl $0x1, %ecx
imull %ecx, %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movl 0x44(%rsp), %eax
subl %ecx, %eax
movl %eax, 0x48(%rsp)
jmp 0x124cbb
movl 0x9078(%rsp), %eax
movq 0x90b0(%rsp), %rcx
movl 0x40(%rcx), %ecx
imull 0x9078(%rsp), %ecx
addl %ecx, %eax
movl %eax, 0x40(%rsp)
movl 0x9078(%rsp), %eax
movl 0x9078(%rsp), %ecx
addl $0x1, %ecx
imull %ecx, %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movl 0x40(%rsp), %eax
subl %ecx, %eax
movl %eax, 0x48(%rsp)
movl 0x48(%rsp), %eax
movl %eax, 0x9070(%rsp)
movl 0x9074(%rsp), %eax
cmpl 0x9074(%rsp), %eax
jg 0x124d20
movl 0x9074(%rsp), %eax
movq 0x90b0(%rsp), %rcx
movl 0x40(%rcx), %ecx
imull 0x9074(%rsp), %ecx
addl %ecx, %eax
movl %eax, 0x38(%rsp)
movl 0x9074(%rsp), %eax
movl 0x9074(%rsp), %ecx
addl $0x1, %ecx
imull %ecx, %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movl 0x38(%rsp), %eax
subl %ecx, %eax
movl %eax, 0x3c(%rsp)
jmp 0x124d68
movl 0x9074(%rsp), %eax
movq 0x90b0(%rsp), %rcx
movl 0x40(%rcx), %ecx
imull 0x9074(%rsp), %ecx
addl %ecx, %eax
movl %eax, 0x34(%rsp)
movl 0x9074(%rsp), %eax
movl 0x9074(%rsp), %ecx
addl $0x1, %ecx
imull %ecx, %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movl 0x34(%rsp), %eax
subl %ecx, %eax
movl %eax, 0x3c(%rsp)
movl 0x3c(%rsp), %eax
movl %eax, 0x906c(%rsp)
movl 0x9078(%rsp), %eax
cmpl 0x9074(%rsp), %eax
jg 0x124dcd
movl 0x9074(%rsp), %eax
movq 0x90b0(%rsp), %rcx
movl 0x40(%rcx), %ecx
imull 0x9078(%rsp), %ecx
addl %ecx, %eax
movl %eax, 0x2c(%rsp)
movl 0x9078(%rsp), %eax
movl 0x9078(%rsp), %ecx
addl $0x1, %ecx
imull %ecx, %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movl 0x2c(%rsp), %eax
subl %ecx, %eax
movl %eax, 0x30(%rsp)
jmp 0x124e15
movl 0x9078(%rsp), %eax
movq 0x90b0(%rsp), %rcx
movl 0x40(%rcx), %ecx
imull 0x9074(%rsp), %ecx
addl %ecx, %eax
movl %eax, 0x28(%rsp)
movl 0x9074(%rsp), %eax
movl 0x9074(%rsp), %ecx
addl $0x1, %ecx
imull %ecx, %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movl 0x28(%rsp), %eax
subl %ecx, %eax
movl %eax, 0x30(%rsp)
movl 0x30(%rsp), %eax
movl %eax, 0x9068(%rsp)
movq 0x90d0(%rsp), %rax
movl 0x907c(%rsp), %ecx
movq 0x90b0(%rsp), %rdx
imull 0x44(%rdx), %ecx
addl 0x9068(%rsp), %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, 0x20(%rsp)
movq 0x90d0(%rsp), %rax
movl 0x907c(%rsp), %ecx
movq 0x90b0(%rsp), %rdx
imull 0x44(%rdx), %ecx
addl 0x9070(%rsp), %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x90d0(%rsp), %rax
movl 0x907c(%rsp), %ecx
movq 0x90b0(%rsp), %rdx
imull 0x44(%rdx), %ecx
addl 0x906c(%rsp), %ecx
movslq %ecx, %rcx
mulsd (%rax,%rcx,8), %xmm0
callq 0x82e0
movaps %xmm0, %xmm1
movsd 0x20(%rsp), %xmm0
mulsd %xmm1, %xmm0
movq 0x90d0(%rsp), %rax
movl 0x907c(%rsp), %ecx
movq 0x90b0(%rsp), %rdx
imull 0x44(%rdx), %ecx
addl 0x9068(%rsp), %ecx
movslq %ecx, %rcx
movsd %xmm0, (%rax,%rcx,8)
movl 0x9074(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x9074(%rsp)
jmp 0x124c01
jmp 0x124ef8
movl 0x9078(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x9078(%rsp)
jmp 0x124bd8
jmp 0x124f10
jmp 0x124f12
movl 0x907c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x907c(%rsp)
jmp 0x124a36
jmp 0x124f2a
movl $0x0, 0x90c4(%rsp)
movl 0x90c4(%rsp), %eax
addq $0x90c8, %rsp           # imm = 0x90C8
retq
nopw %cs:(%rax,%rax)