// File: /workspace/github_c_makefile_star2_O1/PoulinV[P]AxiCLASS/build/../source/primordial.c
// Function: primordial_analytic_spectrum_init
int primordial_analytic_spectrum_init(
                                      struct perturbations   * ppt,
                                      struct primordial * ppm
                                      ) {

  int index_md,index_ic1,index_ic2;
  int index_ic1_ic2,index_ic1_ic1,index_ic2_ic2;
  double one_amplitude=0.;
  double one_tilt=0.;
  double one_running=0.;
  double one_correlation=0.;

  class_alloc(ppm->amplitude,
              ppm->md_size*sizeof(double *),
              ppm->error_message);

  class_alloc(ppm->tilt,
              ppm->md_size*sizeof(double *),
              ppm->error_message);

  class_alloc(ppm->running,
              ppm->md_size*sizeof(double *),
              ppm->error_message);

  for (index_md = 0; index_md < ppm->md_size; index_md++) {

    class_alloc(ppm->amplitude[index_md],
                ppm->ic_ic_size[index_md]*sizeof(double),
                ppm->error_message);

    class_alloc(ppm->tilt[index_md],
                ppm->ic_ic_size[index_md]*sizeof(double),
                ppm->error_message);

    class_alloc(ppm->running[index_md],
                ppm->ic_ic_size[index_md]*sizeof(double),
                ppm->error_message);

  }

  for (index_md = 0; index_md < ppm->md_size; index_md++) {

    /* diagonal coefficients */

    for (index_ic1 = 0; index_ic1 < ppm->ic_size[index_md]; index_ic1++) {

      if (_scalars_) {

        if ((ppt->has_ad == _TRUE_) && (index_ic1 == ppt->index_ic_ad)) {
          one_amplitude = ppm->A_s;
          one_tilt = ppm->n_s;
          one_running = ppm->alpha_s;
        }

        if ((ppt->has_bi == _TRUE_) && (index_ic1 == ppt->index_ic_bi)) {
          one_amplitude = ppm->A_s*ppm->f_bi*ppm->f_bi;
          one_tilt = ppm->n_bi;
          one_running = ppm->alpha_bi;
        }

        if ((ppt->has_cdi == _TRUE_) && (index_ic1 == ppt->index_ic_cdi)) {
          one_amplitude = ppm->A_s*ppm->f_cdi*ppm->f_cdi;
          one_tilt = ppm->n_cdi;
          one_running = ppm->alpha_cdi;
        }

        if ((ppt->has_nid == _TRUE_) && (index_ic1 == ppt->index_ic_nid)) {
          one_amplitude = ppm->A_s*ppm->f_nid*ppm->f_nid;
          one_tilt = ppm->n_nid;
          one_running = ppm->alpha_nid;
        }

        if ((ppt->has_niv == _TRUE_) && (index_ic1 == ppt->index_ic_niv)) {
          one_amplitude = ppm->A_s*ppm->f_niv*ppm->f_niv;
          one_tilt = ppm->n_niv;
          one_running = ppm->alpha_niv;
        }
      }

      if (_tensors_) {

        if (index_ic1 == ppt->index_ic_ten) {
          one_amplitude = ppm->A_s*ppm->r;
          one_tilt = ppm->n_t+1.; /* +1 to match usual definition of n_t (equivalent to n_s-1) */
          one_running = ppm->alpha_t;
        }
      }

      class_test(one_amplitude <= 0.,
                 ppm->error_message,
                 "inconsistent input for primordial amplitude: %g for index_md=%d, index_ic=%d\n",
                 one_amplitude,index_md,index_ic1);

      index_ic1_ic2 = index_symmetric_matrix(index_ic1,index_ic1,ppm->ic_size[index_md]);

      ppm->is_non_zero[index_md][index_ic1_ic2] = _TRUE_;
      ppm->amplitude[index_md][index_ic1_ic2] = one_amplitude;
      ppm->tilt[index_md][index_ic1_ic2] = one_tilt;
      ppm->running[index_md][index_ic1_ic2] = one_running;
    }

    /* non-diagonal coefficients */

    for (index_ic1 = 0; index_ic1 < ppm->ic_size[index_md]; index_ic1++) {
      for (index_ic2 = index_ic1+1; index_ic2 < ppm->ic_size[index_md]; index_ic2++) {

        if (_scalars_) {

          if ((ppt->has_ad == _TRUE_) && (ppt->has_bi == _TRUE_) &&
              (((index_ic1 == ppt->index_ic_ad) && (index_ic2 == ppt->index_ic_bi)) ||
               ((index_ic1 == ppt->index_ic_ad) && (index_ic1 == ppt->index_ic_bi)))) {
            one_correlation = ppm->c_ad_bi;
            one_tilt = ppm->n_ad_bi;
            one_running = ppm->alpha_ad_bi;
          }

          if ((ppt->has_ad == _TRUE_) && (ppt->has_cdi == _TRUE_) &&
              (((index_ic1 == ppt->index_ic_ad) && (index_ic2 == ppt->index_ic_cdi)) ||
               ((index_ic2 == ppt->index_ic_ad) && (index_ic1 == ppt->index_ic_cdi)))) {
            one_correlation = ppm->c_ad_cdi;
            one_tilt = ppm->n_ad_cdi;
            one_running = ppm->alpha_ad_cdi;
          }

          if ((ppt->has_ad == _TRUE_) && (ppt->has_nid == _TRUE_) &&
              (((index_ic1 == ppt->index_ic_ad) && (index_ic2 == ppt->index_ic_nid)) ||
               ((index_ic2 == ppt->index_ic_ad) && (index_ic1 == ppt->index_ic_nid)))) {
            one_correlation = ppm->c_ad_nid;
            one_tilt = ppm->n_ad_nid;
            one_running = ppm->alpha_ad_nid;
          }

          if ((ppt->has_ad == _TRUE_) && (ppt->has_niv == _TRUE_) &&
              (((index_ic1 == ppt->index_ic_ad) && (index_ic2 == ppt->index_ic_niv)) ||
               ((index_ic2 == ppt->index_ic_ad) && (index_ic1 == ppt->index_ic_niv)))) {
            one_correlation = ppm->c_ad_niv;
            one_tilt = ppm->n_ad_niv;
            one_running = ppm->alpha_ad_niv;
          }

          if ((ppt->has_bi == _TRUE_) && (ppt->has_cdi == _TRUE_) &&
              (((index_ic1 == ppt->index_ic_bi) && (index_ic2 == ppt->index_ic_cdi)) ||
               ((index_ic2 == ppt->index_ic_bi) && (index_ic1 == ppt->index_ic_cdi)))) {
            one_correlation = ppm->c_bi_cdi;
            one_tilt = ppm->n_bi_cdi;
            one_running = ppm->alpha_bi_cdi;
          }

          if ((ppt->has_bi == _TRUE_) && (ppt->has_nid == _TRUE_) &&
              (((index_ic1 == ppt->index_ic_bi) && (index_ic2 == ppt->index_ic_nid)) ||
               ((index_ic2 == ppt->index_ic_bi) && (index_ic1 == ppt->index_ic_nid)))) {
            one_correlation = ppm->c_bi_nid;
            one_tilt = ppm->n_bi_nid;
            one_running = ppm->alpha_bi_nid;
          }

          if ((ppt->has_bi == _TRUE_) && (ppt->has_niv == _TRUE_) &&
              (((index_ic1 == ppt->index_ic_bi) && (index_ic2 == ppt->index_ic_niv)) ||
               ((index_ic2 == ppt->index_ic_bi) && (index_ic1 == ppt->index_ic_niv)))) {
            one_correlation = ppm->c_bi_niv;
            one_tilt = ppm->n_bi_niv;
            one_running = ppm->alpha_bi_niv;
          }

          if ((ppt->has_cdi == _TRUE_) && (ppt->has_nid == _TRUE_) &&
              (((index_ic1 == ppt->index_ic_cdi) && (index_ic2 == ppt->index_ic_nid)) ||
               ((index_ic2 == ppt->index_ic_cdi) && (index_ic1 == ppt->index_ic_nid)))) {
            one_correlation = ppm->c_cdi_nid;
            one_tilt = ppm->n_cdi_nid;
            one_running = ppm->alpha_cdi_nid;
          }

          if ((ppt->has_cdi == _TRUE_) && (ppt->has_niv == _TRUE_) &&
              (((index_ic1 == ppt->index_ic_cdi) && (index_ic2 == ppt->index_ic_niv)) ||
               ((index_ic2 == ppt->index_ic_cdi) && (index_ic1 == ppt->index_ic_niv)))) {
            one_correlation = ppm->c_cdi_niv;
            one_tilt = ppm->n_cdi_niv;
            one_running = ppm->alpha_cdi_niv;
          }

          if ((ppt->has_nid == _TRUE_) && (ppt->has_niv == _TRUE_) &&
              (((index_ic1 == ppt->index_ic_nid) && (index_ic2 == ppt->index_ic_niv)) ||
               ((index_ic2 == ppt->index_ic_nid) && (index_ic1 == ppt->index_ic_niv)))) {
            one_correlation = ppm->c_nid_niv;
            one_tilt = ppm->n_nid_niv;
            one_running = ppm->alpha_nid_niv;
          }

        }

        class_test((one_correlation < -1) || (one_correlation > 1),
                   ppm->error_message,
                   "inconsistent input for isocurvature cross-correlation\n");

        index_ic1_ic2 = index_symmetric_matrix(index_ic1,index_ic2,ppm->ic_size[index_md]);
        index_ic1_ic1 = index_symmetric_matrix(index_ic1,index_ic1,ppm->ic_size[index_md]);
        index_ic2_ic2 = index_symmetric_matrix(index_ic2,index_ic2,ppm->ic_size[index_md]);

        if (one_correlation == 0.) {
          ppm->is_non_zero[index_md][index_ic1_ic2] = _FALSE_;
          ppm->amplitude[index_md][index_ic1_ic2] = 0.;
          ppm->tilt[index_md][index_ic1_ic2] = 0.;
          ppm->running[index_md][index_ic1_ic2] = 0.;
        }
        else {
          ppm->is_non_zero[index_md][index_ic1_ic2] = _TRUE_;
          ppm->amplitude[index_md][index_ic1_ic2] =
            sqrt(ppm->amplitude[index_md][index_ic1_ic1]*
                 ppm->amplitude[index_md][index_ic2_ic2])*
            one_correlation;
          ppm->tilt[index_md][index_ic1_ic2] =
            0.5*(ppm->tilt[index_md][index_ic1_ic1]
                 +ppm->tilt[index_md][index_ic2_ic2])
            + one_tilt;
          ppm->running[index_md][index_ic1_ic2] =
            0.5*(ppm->running[index_md][index_ic1_ic1]
                 +ppm->running[index_md][index_ic2_ic2])
            + one_running;
        }
      }
    }
  }

  return _SUCCESS_;

}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1058, %rsp           # imm = 0x1058
movq %rsi, %rbx
movq %rdi, %r14
movslq 0x278(%rsi), %r15
leaq (,%r15,8), %r12
movq %r12, %rdi
callq 0x8460
movq %rax, 0x2b8(%rbx)
testq %rax, %rax
je 0x9979a
movq %r12, %rdi
callq 0x8460
movq %rax, 0x2c0(%rbx)
testq %rax, %rax
je 0x997e0
movq %r12, %rdi
callq 0x8460
movq %rax, 0x2c8(%rbx)
testq %rax, %rax
je 0x99826
testl %r15d, %r15d
jle 0x99088
shlq $0x2, %r15
xorl %r12d, %r12d
movq 0x288(%rbx), %rax
movslq (%rax,%r12), %rdi
shlq $0x3, %rdi
callq 0x8460
movq 0x2b8(%rbx), %rcx
movq %rax, (%rcx,%r12,2)
movq 0x288(%rbx), %rax
movq 0x2b8(%rbx), %rcx
cmpq $0x0, (%rcx,%r12,2)
movslq (%rax,%r12), %rcx
je 0x998ce
shlq $0x3, %rcx
movq %rcx, %rdi
callq 0x8460
movq 0x2c0(%rbx), %rcx
movq %rax, (%rcx,%r12,2)
movq 0x288(%rbx), %rax
movq 0x2c0(%rbx), %rcx
cmpq $0x0, (%rcx,%r12,2)
movslq (%rax,%r12), %rcx
je 0x99910
shlq $0x3, %rcx
movq %rcx, %rdi
callq 0x8460
movq 0x2c8(%rbx), %rcx
movq %rax, (%rcx,%r12,2)
movq 0x2c8(%rbx), %rax
cmpq $0x0, (%rax,%r12,2)
je 0x9994f
addq $0x4, %r12
cmpq %r12, %r15
jne 0x98fe2
cmpl $0x0, 0x278(%rbx)
jle 0x9986c
xorpd %xmm8, %xmm8
xorpd %xmm2, %xmm2
xorl %r11d, %r11d
movsd 0x581b7(%rip), %xmm3    # 0xf1260
movapd 0x5818f(%rip), %xmm4    # 0xf1240
movsd 0x58c17(%rip), %xmm5    # 0xf1cd0
xorl %r15d, %r15d
xorpd %xmm6, %xmm6
xorpd %xmm7, %xmm7
movq 0x280(%rbx), %rax
movl (%rax,%r15,4), %eax
testl %eax, %eax
jle 0x99276
leal 0x1(%rax), %edx
movl $0x2, %esi
xorl %edi, %edi
xorl %r8d, %r8d
xorl %ecx, %ecx
cmpw $0x1, 0xe(%r14)
jne 0x991ce
movl 0x848(%r14), %r9d
cmpq %r9, %r15
jne 0x991ce
cmpw $0x1, 0x14(%r14)
jne 0x9911e
cmpl 0x858(%r14), %ecx
jne 0x9911e
movsd 0x20(%rbx), %xmm6
movupd 0x28(%rbx), %xmm8
cmpw $0x1, 0x16(%r14)
jne 0x99147
cmpl 0x860(%r14), %ecx
jne 0x99147
movsd 0x58(%rbx), %xmm0
movsd 0x20(%rbx), %xmm6
mulsd %xmm0, %xmm6
mulsd %xmm0, %xmm6
movupd 0x60(%rbx), %xmm8
cmpw $0x1, 0x18(%r14)
jne 0x99170
cmpl 0x85c(%r14), %ecx
jne 0x99170
movsd 0x70(%rbx), %xmm0
movsd 0x20(%rbx), %xmm6
mulsd %xmm0, %xmm6
mulsd %xmm0, %xmm6
movupd 0x78(%rbx), %xmm8
cmpw $0x1, 0x1a(%r14)
jne 0x9919f
cmpl 0x864(%r14), %ecx
jne 0x9919f
movsd 0x88(%rbx), %xmm0
movsd 0x20(%rbx), %xmm6
mulsd %xmm0, %xmm6
mulsd %xmm0, %xmm6
movupd 0x90(%rbx), %xmm8
cmpw $0x1, 0x1c(%r14)
jne 0x991ce
cmpl 0x868(%r14), %ecx
jne 0x991ce
movsd 0xa0(%rbx), %xmm0
movsd 0x20(%rbx), %xmm6
mulsd %xmm0, %xmm6
mulsd %xmm0, %xmm6
movupd 0xa8(%rbx), %xmm8
cmpw $0x1, 0x12(%r14)
jne 0x99206
movl 0x84c(%r14), %r9d
cmpq %r9, %r15
jne 0x99206
cmpl 0x86c(%r14), %ecx
jne 0x99206
movsd 0x20(%rbx), %xmm6
mulsd 0x40(%rbx), %xmm6
movsd 0x48(%rbx), %xmm8
addsd %xmm3, %xmm8
movhpd 0x50(%rbx), %xmm8       # xmm8 = xmm8[0],mem[0]
ucomisd %xmm6, %xmm2
jae 0x999b8
movl %edi, %r9d
shrl %r9d
movl %r8d, %r10d
subl %r9d, %r10d
incl %ecx
movq 0x2b0(%rbx), %r9
movq (%r9,%r15,8), %r9
movslq %r10d, %r10
movw $0x1, (%r9,%r10,2)
movq 0x2b8(%rbx), %r9
movq (%r9,%r15,8), %r9
movsd %xmm6, (%r9,%r10,8)
movq 0x2c0(%rbx), %r9
movq (%r9,%r15,8), %r9
movlpd %xmm8, (%r9,%r10,8)
movq 0x2c8(%rbx), %r9
movq (%r9,%r15,8), %r9
movhpd %xmm8, (%r9,%r10,8)
addl %edx, %r8d
addl %esi, %edi
addl $0x2, %esi
cmpl %ecx, %eax
jne 0x990e6
movq 0x280(%rbx), %rax
cmpl $0x0, (%rax,%r15,4)
unpcklpd %xmm8, %xmm7            # xmm7 = xmm7[0],xmm8[0]
unpckhpd %xmm8, %xmm8            # xmm8 = xmm8[1,1]
jle 0x99771
movl $0x2, %ecx
movl $0x0, (%rsp)
xorl %eax, %eax
movq %r14, 0x28(%rsp)
movsd %xmm6, 0x18(%rsp)
movq %r15, 0x10(%rsp)
movl %ecx, 0x8(%rsp)
movl %eax, %edi
leal 0x1(%rdi), %edx
movq 0x280(%rbx), %rax
movl (%rax,%r15,4), %eax
cmpl %eax, %edx
movl %edx, 0x4(%rsp)
jge 0x99750
movl (%rsp), %ecx
movl %ecx, %r8d
shrl %r8d
negl %r8d
movl %edx, %r9d
imull %edi, %r9d
shrl %r9d
movl %edx, %ecx
movq %rdi, 0x20(%rsp)
movl %r9d, 0xc(%rsp)
cmpw $0x1, 0xe(%r14)
jne 0x995a1
movl 0x848(%r14), %edx
cmpq %rdx, %r15
jne 0x995a1
movzwl 0x14(%r14), %edx
cmpw $0x1, %dx
jne 0x99355
cmpw $0x1, 0x16(%r14)
jne 0x99355
movl 0x858(%r14), %esi
cmpl %esi, %edi
jne 0x99355
cmpl 0x860(%r14), %ecx
jne 0x99348
movupd 0xb8(%rbx), %xmm7
movsd 0xc8(%rbx), %xmm8
jmp 0x99355
cmpl %esi, %edi
jne 0x99355
cmpl 0x860(%r14), %edi
je 0x99335
cmpw $0x1, %dx
jne 0x99395
cmpw $0x1, 0x18(%r14)
jne 0x99395
movl 0x858(%r14), %esi
cmpl %esi, %edi
jne 0x99377
cmpl 0x85c(%r14), %ecx
je 0x99384
cmpl %esi, %ecx
jne 0x99395
cmpl 0x85c(%r14), %edi
jne 0x99395
movupd 0xd0(%rbx), %xmm7
movsd 0xe0(%rbx), %xmm8
cmpw $0x1, %dx
jne 0x993d5
cmpw $0x1, 0x1a(%r14)
jne 0x993d5
movl 0x858(%r14), %esi
cmpl %esi, %edi
jne 0x993b7
cmpl 0x864(%r14), %ecx
je 0x993c4
cmpl %esi, %ecx
jne 0x993d5
cmpl 0x864(%r14), %edi
jne 0x993d5
movupd 0xe8(%rbx), %xmm7
movsd 0xf8(%rbx), %xmm8
cmpw $0x1, %dx
jne 0x99415
cmpw $0x1, 0x1c(%r14)
jne 0x99415
movl 0x858(%r14), %edx
cmpl %edx, %edi
jne 0x993f7
cmpl 0x868(%r14), %ecx
je 0x99404
cmpl %edx, %ecx
jne 0x99415
cmpl 0x868(%r14), %edi
jne 0x99415
movupd 0x100(%rbx), %xmm7
movsd 0x110(%rbx), %xmm8
movzwl 0x16(%r14), %edx
cmpw $0x1, %dx
jne 0x9945a
cmpw $0x1, 0x18(%r14)
jne 0x9945a
movl 0x860(%r14), %esi
cmpl %esi, %edi
jne 0x9943c
cmpl 0x85c(%r14), %ecx
je 0x99449
cmpl %esi, %ecx
jne 0x9945a
cmpl 0x85c(%r14), %edi
jne 0x9945a
movupd 0x118(%rbx), %xmm7
movsd 0x128(%rbx), %xmm8
cmpw $0x1, %dx
jne 0x9949a
cmpw $0x1, 0x1a(%r14)
jne 0x9949a
movl 0x860(%r14), %esi
cmpl %esi, %edi
jne 0x9947c
cmpl 0x864(%r14), %ecx
je 0x99489
cmpl %esi, %ecx
jne 0x9949a
cmpl 0x864(%r14), %edi
jne 0x9949a
movupd 0x130(%rbx), %xmm7
movsd 0x140(%rbx), %xmm8
cmpw $0x1, %dx
jne 0x994da
cmpw $0x1, 0x1c(%r14)
jne 0x994da
movl 0x860(%r14), %edx
cmpl %edx, %edi
jne 0x994bc
cmpl 0x868(%r14), %ecx
je 0x994c9
cmpl %edx, %ecx
jne 0x994da
cmpl 0x868(%r14), %edi
jne 0x994da
movupd 0x148(%rbx), %xmm7
movsd 0x158(%rbx), %xmm8
movzwl 0x18(%r14), %edx
cmpw $0x1, %dx
jne 0x9951f
cmpw $0x1, 0x1a(%r14)
jne 0x9951f
movl 0x85c(%r14), %esi
cmpl %esi, %edi
jne 0x99501
cmpl 0x864(%r14), %ecx
je 0x9950e
cmpl %esi, %ecx
jne 0x9951f
cmpl 0x864(%r14), %edi
jne 0x9951f
movupd 0x160(%rbx), %xmm7
movsd 0x170(%rbx), %xmm8
cmpw $0x1, %dx
jne 0x9955f
cmpw $0x1, 0x1c(%r14)
jne 0x9955f
movl 0x85c(%r14), %edx
cmpl %edx, %edi
jne 0x99541
cmpl 0x868(%r14), %ecx
je 0x9954e
cmpl %edx, %ecx
jne 0x9955f
cmpl 0x868(%r14), %edi
jne 0x9955f
movupd 0x178(%rbx), %xmm7
movsd 0x188(%rbx), %xmm8
cmpw $0x1, 0x1a(%r14)
jne 0x995a1
cmpw $0x1, 0x1c(%r14)
jne 0x995a1
movl 0x864(%r14), %edx
cmpl %edx, %edi
jne 0x99583
cmpl 0x868(%r14), %ecx
je 0x99590
cmpl %edx, %ecx
jne 0x995a1
cmpl 0x868(%r14), %edi
jne 0x995a1
movupd 0x190(%rbx), %xmm7
movsd 0x1a0(%rbx), %xmm8
movapd %xmm7, %xmm0
andpd %xmm4, %xmm0
ucomisd %xmm3, %xmm0
ja 0x99873
cmpl %ecx, %edi
jbe 0x995ca
movl %eax, %edx
imull %ecx, %edx
addl %edi, %edx
leal 0x1(%rcx), %esi
imull %ecx, %esi
shrl %esi
subl %esi, %edx
jmp 0x995d4
movl %edi, %edx
imull %eax, %edx
addl %r8d, %edx
addl %ecx, %edx
leal 0x1(%rcx), %ebp
ucomisd %xmm2, %xmm7
movslq %edx, %r12
jne 0x99626
jp 0x99626
movq 0x2b0(%rbx), %rax
movq (%rax,%r15,8), %rax
movw $0x0, (%rax,%r12,2)
movq 0x2b8(%rbx), %rax
movq (%rax,%r15,8), %rax
movq %r11, (%rax,%r12,8)
movq 0x2c0(%rbx), %rax
movq (%rax,%r15,8), %rax
movq %r11, (%rax,%r12,8)
movq 0x2c8(%rbx), %rax
movq (%rax,%r15,8), %rax
movq %r11, (%rax,%r12,8)
jmp 0x9973b
incl %eax
movl %eax, %edx
imull %ecx, %edx
imull %ebp, %ecx
shrl %ecx
subl %ecx, %edx
imull %edi, %eax
subl %r9d, %eax
movq 0x2b0(%rbx), %rcx
movq (%rcx,%r15,8), %rcx
movw $0x1, (%rcx,%r12,2)
movq 0x2b8(%rbx), %rcx
movq (%rcx,%r15,8), %rcx
movslq %eax, %r13
movsd (%rcx,%r13,8), %xmm0
movslq %edx, %r14
mulsd (%rcx,%r14,8), %xmm0
ucomisd %xmm2, %xmm0
jb 0x99675
sqrtsd %xmm0, %xmm0
jmp 0x996ce
movapd %xmm7, 0x40(%rsp)
movapd %xmm8, 0x30(%rsp)
movq %r8, %r15
callq 0x82b0
movl 0xc(%rsp), %r9d
movq %r15, %r8
movq 0x20(%rsp), %rdi
movq 0x10(%rsp), %r15
movapd 0x30(%rsp), %xmm8
movapd 0x40(%rsp), %xmm7
movsd 0x18(%rsp), %xmm6
movsd 0x58619(%rip), %xmm5    # 0xf1cd0
movapd 0x57b81(%rip), %xmm4    # 0xf1240
movsd 0x57b99(%rip), %xmm3    # 0xf1260
xorl %r11d, %r11d
xorpd %xmm2, %xmm2
mulsd %xmm7, %xmm0
movq 0x2b8(%rbx), %rax
movq (%rax,%r15,8), %rax
movsd %xmm0, (%rax,%r12,8)
movq 0x2c0(%rbx), %rax
movq (%rax,%r15,8), %rax
movsd (%rax,%r13,8), %xmm0
addsd (%rax,%r14,8), %xmm0
movapd %xmm7, %xmm1
unpckhpd %xmm7, %xmm1            # xmm1 = xmm1[1],xmm7[1]
mulsd %xmm5, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, (%rax,%r12,8)
movq 0x2c8(%rbx), %rax
movq (%rax,%r15,8), %rax
movsd (%rax,%r13,8), %xmm0
addsd (%rax,%r14,8), %xmm0
mulsd %xmm5, %xmm0
addsd %xmm8, %xmm0
movsd %xmm0, (%rax,%r12,8)
movq 0x28(%rsp), %r14
movq 0x280(%rbx), %rax
movl (%rax,%r15,4), %eax
movl %ebp, %ecx
cmpl %eax, %ebp
jl 0x992f2
movq 0x280(%rbx), %rax
movl 0x8(%rsp), %ecx
addl %ecx, (%rsp)
addl $0x2, %ecx
movl 0x4(%rsp), %edx
cmpl (%rax,%r15,4), %edx
movl %edx, %eax
jl 0x992b0
incq %r15
movslq 0x278(%rbx), %rcx
movapd %xmm7, %xmm0
shufpd $0x1, %xmm8, %xmm0      # xmm0 = xmm0[1],xmm8[0]
xorl %eax, %eax
movapd %xmm0, %xmm8
cmpq %rcx, %r15
jl 0x990c4
jmp 0x999a6
shll $0x3, %r15d
leaq 0x5785f(%rip), %rsi     # 0xf1004
leaq 0x82a8d(%rip), %rdx     # 0x11c239
leaq 0x50(%rsp), %r14
movq %r14, %rdi
movl %r15d, %ecx
xorl %eax, %eax
callq 0x30c2c
addq $0x32a, %rbx            # imm = 0x32A
leaq 0x57868(%rip), %rsi     # 0xf1034
leaq 0x82a75(%rip), %rdx     # 0x11c248
movq %rbx, %rdi
movl $0x2f0, %ecx            # imm = 0x2F0
jmp 0x99997
shll $0x3, %r15d
leaq 0x57819(%rip), %rsi     # 0xf1004
leaq 0x82a78(%rip), %rdx     # 0x11c26a
leaq 0x50(%rsp), %r14
movq %r14, %rdi
movl %r15d, %ecx
xorl %eax, %eax
callq 0x30c2c
addq $0x32a, %rbx            # imm = 0x32A
leaq 0x57822(%rip), %rsi     # 0xf1034
leaq 0x82a2f(%rip), %rdx     # 0x11c248
movq %rbx, %rdi
movl $0x2f4, %ecx            # imm = 0x2F4
jmp 0x99997
shll $0x3, %r15d
leaq 0x577d3(%rip), %rsi     # 0xf1004
leaq 0x82a3c(%rip), %rdx     # 0x11c274
leaq 0x50(%rsp), %r14
movq %r14, %rdi
movl %r15d, %ecx
xorl %eax, %eax
callq 0x30c2c
addq $0x32a, %rbx            # imm = 0x32A
leaq 0x577dc(%rip), %rsi     # 0xf1034
leaq 0x829e9(%rip), %rdx     # 0x11c248
movq %rbx, %rdi
movl $0x2f8, %ecx            # imm = 0x2F8
jmp 0x99997
xorl %eax, %eax
jmp 0x999a6
leaq 0x82aad(%rip), %rsi     # 0x11c327
leaq 0x50(%rsp), %r14
movq %r14, %rdi
xorl %eax, %eax
callq 0x30c2c
leaq 0x577f2(%rip), %rsi     # 0xf1082
leaq 0x82ac7(%rip), %rdx     # 0x11c35e
leaq 0x850(%rsp), %r15
movq %r15, %rdi
movq %r14, %rcx
xorl %eax, %eax
callq 0x30c2c
addq $0x32a, %rbx            # imm = 0x32A
leaq 0x5777a(%rip), %rsi     # 0xf1034
leaq 0x82987(%rip), %rdx     # 0x11c248
movq %rbx, %rdi
movl $0x3a2, %ecx            # imm = 0x3A2
jmp 0x99a15
shll $0x3, %ecx
leaq 0x5772c(%rip), %rsi     # 0xf1004
leaq 0x829a2(%rip), %rdx     # 0x11c281
leaq 0x50(%rsp), %r14
movq %r14, %rdi
xorl %eax, %eax
callq 0x30c2c
addq $0x32a, %rbx            # imm = 0x32A
leaq 0x57738(%rip), %rsi     # 0xf1034
leaq 0x82945(%rip), %rdx     # 0x11c248
movq %rbx, %rdi
movl $0x2fe, %ecx            # imm = 0x2FE
jmp 0x99997
shll $0x3, %ecx
leaq 0x576ea(%rip), %rsi     # 0xf1004
leaq 0x82979(%rip), %rdx     # 0x11c29a
leaq 0x50(%rsp), %r14
movq %r14, %rdi
xorl %eax, %eax
callq 0x30c2c
addq $0x32a, %rbx            # imm = 0x32A
leaq 0x576f6(%rip), %rsi     # 0xf1034
leaq 0x82903(%rip), %rdx     # 0x11c248
movq %rbx, %rdi
movl $0x302, %ecx            # imm = 0x302
jmp 0x99997
movq 0x288(%rbx), %rax
movl (%rax,%r12), %ecx
shll $0x3, %ecx
leaq 0x576a0(%rip), %rsi     # 0xf1004
leaq 0x82943(%rip), %rdx     # 0x11c2ae
leaq 0x50(%rsp), %r14
movq %r14, %rdi
xorl %eax, %eax
callq 0x30c2c
addq $0x32a, %rbx            # imm = 0x32A
leaq 0x576ac(%rip), %rsi     # 0xf1034
leaq 0x828b9(%rip), %rdx     # 0x11c248
movq %rbx, %rdi
movl $0x306, %ecx            # imm = 0x306
movq %r14, %r8
xorl %eax, %eax
callq 0x30c2c
movl $0x1, %eax
addq $0x1058, %rsp           # imm = 0x1058
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x82906(%rip), %rsi     # 0x11c2c5
leaq 0x50(%rsp), %r14
movq %r14, %rdi
movapd %xmm6, %xmm0
movl %r15d, %edx
movb $0x1, %al
callq 0x30c2c
leaq 0x576a6(%rip), %rsi     # 0xf1082
leaq 0x82930(%rip), %rdx     # 0x11c313
leaq 0x850(%rsp), %r15
movq %r15, %rdi
movq %r14, %rcx
xorl %eax, %eax
callq 0x30c2c
addq $0x32a, %rbx            # imm = 0x32A
leaq 0x5762e(%rip), %rsi     # 0xf1034
leaq 0x8283b(%rip), %rdx     # 0x11c248
movq %rbx, %rdi
movl $0x33d, %ecx            # imm = 0x33D
movq %r15, %r8
jmp 0x9999a