// File: /workspace/github_c_makefile_star2_O3/PoulinV[P]AxiCLASS/build/../source/output.c
// Function: output_cl
int output_cl(
              struct background * pba,
              struct perturbations * ppt,
              struct harmonic * phr,
              struct lensing * ple,
              struct output * pop
              ) {

  /** Summary: */

  /** - define local variables */

  FILE *** out_md_ic; /* array of pointers to files with argument
                         out_md_ic[index_md][index_ic1_ic2]
                         (will contain cl's for each mode and pairs of initial conditions) */

  FILE ** out_md;     /* array of pointers to files with argument
                         out_md[index_md]
                         (will contain cl's for each mode, summed eventually over ic's) */

  FILE * out;         /* (will contain total cl's, summed eventually over modes and ic's) */

  FILE * out_lensed;         /* (will contain total lensed cl's) */

  double ** cl_md_ic; /* array with argument
                         cl_md_ic[index_md][index_ic1_ic2*phr->ct_size+index_ct] */

  double ** cl_md;    /* array with argument
                         cl_md[index_md][index_ct] */

  double * cl_tot;    /* array with argument
                         cl_tot[index_ct] */

  int index_md;
  int index_ic1,index_ic2,index_ic1_ic2;
  int l;

  FileName file_name;
  char first_line[_LINE_LENGTH_MAX_];

  /** - first, allocate all arrays of files and \f$ C_l\f$'s */

  class_alloc(out_md_ic,
              phr->md_size*sizeof(FILE * *),
              pop->error_message);

  class_alloc(cl_md_ic,
              phr->md_size*sizeof(double *),
              pop->error_message);

  class_alloc(out_md,
              phr->md_size*sizeof(FILE *),
              pop->error_message);

  class_alloc(cl_md,
              phr->md_size*sizeof(double *),
              pop->error_message);

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

    class_alloc(out_md_ic[index_md],
                phr->ic_ic_size[index_md]*sizeof(FILE *),
                pop->error_message);

  }

  /** - second, open only the relevant files, and write a heading in each of them */

  class_sprintf(file_name,"%s%s",pop->root,"cl.dat");

  class_call(output_open_cl_file(phr,
                                 pop,
                                 &out,
                                 file_name,
                                 "total [l(l+1)/2pi] C_l's",
                                 phr->l_max_tot
                                 ),
             pop->error_message,
             pop->error_message);

  class_alloc(cl_tot,
              phr->ct_size*sizeof(double),
              pop->error_message);


  if (ple->has_lensed_cls == _TRUE_) {

    class_sprintf(file_name,"%s%s",pop->root,"cl_lensed.dat");

    class_call(output_open_cl_file(phr,
                                   pop,
                                   &out_lensed,
                                   file_name,
                                   "total lensed [l(l+1)/2pi] C_l's",
                                   ple->l_lensed_max
                                   ),
               pop->error_message,
               pop->error_message);
  }

  if (ppt->md_size > 1) {

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

      if (_scalars_) {

        class_sprintf(file_name,"%s%s",pop->root,"cls.dat");
        strcpy(first_line,"[l(l+1)/2pi] C_l's for scalar mode");

      }

      if (_tensors_) {

        class_sprintf(file_name,"%s%s",pop->root,"clt.dat");
        strcpy(first_line,"[l(l+1)/2pi] C_l's for tensor mode");

      }

      class_call(output_open_cl_file(phr,
                                     pop,
                                     &(out_md[index_md]),
                                     file_name,
                                     first_line,
                                     phr->l_max[index_md]
                                     ),
                 pop->error_message,
                 pop->error_message);

      class_alloc(cl_md[index_md],
                  phr->ct_size*sizeof(double),
                  pop->error_message);

    }
  }

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

    if (ppt->ic_size[index_md] > 1) {

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

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

          if (_scalars_) {

            if ((ppt->has_ad == _TRUE_) &&
                (index_ic1 == ppt->index_ic_ad) && (index_ic2 == ppt->index_ic_ad)) {

              class_sprintf(file_name,"%s%s",pop->root,"cls_ad.dat");
              strcpy(first_line,"[l(l+1)/2pi] C_l's for scalar adiabatic (AD) mode");
            }

            if ((ppt->has_bi == _TRUE_) &&
                (index_ic1 == ppt->index_ic_bi) && (index_ic2 == ppt->index_ic_bi)) {

              class_sprintf(file_name,"%s%s",pop->root,"cls_bi.dat");
              strcpy(first_line,"[l(l+1)/2pi] C_l's for scalar baryon isocurvature (BI) mode");
            }

            if ((ppt->has_cdi == _TRUE_) &&
                (index_ic1 == ppt->index_ic_cdi) && (index_ic2 == ppt->index_ic_cdi)) {

              class_sprintf(file_name,"%s%s",pop->root,"cls_cdi.dat");
              strcpy(first_line,"[l(l+1)/2pi] C_l's for scalar CDM isocurvature (CDI) mode");
            }

            if ((ppt->has_nid == _TRUE_) &&
                (index_ic1 == ppt->index_ic_nid) && (index_ic2 == ppt->index_ic_nid)) {

              class_sprintf(file_name,"%s%s",pop->root,"cls_nid.dat");
              strcpy(first_line,"[l(l+1)/2pi] C_l's for scalar neutrino density isocurvature (NID) mode");
            }

            if ((ppt->has_niv == _TRUE_) &&
                (index_ic1 == ppt->index_ic_niv) && (index_ic2 == ppt->index_ic_niv)) {

              class_sprintf(file_name,"%s%s",pop->root,"cls_niv.dat");
              strcpy(first_line,"[l(l+1)/2pi] C_l's for scalar neutrino velocity isocurvature (NIV) mode");
            }

            if ((ppt->has_ad == _TRUE_) &&
                (ppt->has_bi == _TRUE_) && (index_ic1 == ppt->index_ic_ad) && (index_ic2 == ppt->index_ic_bi)) {

              class_sprintf(file_name,"%s%s",pop->root,"cls_ad_bi.dat");
              strcpy(first_line,"[l(l+1)/2pi] C_l's for scalar cross ADxBI mode");
            }

            if ((ppt->has_ad == _TRUE_) && (ppt->has_cdi == _TRUE_) &&
                (index_ic1 == ppt->index_ic_ad) && (index_ic2 == ppt->index_ic_cdi)) {

              class_sprintf(file_name,"%s%s",pop->root,"cls_ad_cdi.dat");
              strcpy(first_line,"[l(l+1)/2pi] C_l's for scalar cross ADxCDI mode");
            }

            if ((ppt->has_ad == _TRUE_) && (ppt->has_nid == _TRUE_) &&
                (index_ic1 == ppt->index_ic_ad) && (index_ic2 == ppt->index_ic_nid)) {

              class_sprintf(file_name,"%s%s",pop->root,"cls_ad_nid.dat");
              strcpy(first_line,"[l(l+1)/2pi] C_l's for scalar cross ADxNID mode");
            }

            if ((ppt->has_ad == _TRUE_) && (ppt->has_niv == _TRUE_) &&
                (index_ic1 == ppt->index_ic_ad) && (index_ic2 == ppt->index_ic_niv)) {

              class_sprintf(file_name,"%s%s",pop->root,"cls_ad_niv.dat");
              strcpy(first_line,"[l(l+1)/2pi] C_l's for scalar cross ADxNIV mode");
            }

            if ((ppt->has_bi == _TRUE_) && (ppt->has_cdi == _TRUE_) &&
                (index_ic1 == ppt->index_ic_bi) && (index_ic2 == ppt->index_ic_cdi)) {

              class_sprintf(file_name,"%s%s",pop->root,"cls_bi_cdi.dat");
              strcpy(first_line,"[l(l+1)/2pi] C_l's for scalar cross BIxCDI mode");
            }

            if ((ppt->has_bi == _TRUE_) && (ppt->has_nid == _TRUE_) &&
                (index_ic1 == ppt->index_ic_bi) && (index_ic2 == ppt->index_ic_nid)) {

              class_sprintf(file_name,"%s%s",pop->root,"cls_bi_nid.dat");
              strcpy(first_line,"[l(l+1)/2pi] C_l's for scalar cross BIxNID mode");
            }

            if ((ppt->has_bi == _TRUE_) && (ppt->has_niv == _TRUE_) &&
                (index_ic1 == ppt->index_ic_bi) && (index_ic2 == ppt->index_ic_niv)) {

              class_sprintf(file_name,"%s%s",pop->root,"cls_bi_niv.dat");
              strcpy(first_line,"[l(l+1)/2pi] C_l's for scalar cross BIxNIV mode");
            }

            if ((ppt->has_cdi == _TRUE_) && (ppt->has_nid == _TRUE_) &&
                (index_ic1 == ppt->index_ic_cdi) && (index_ic2 == ppt->index_ic_nid)) {

              class_sprintf(file_name,"%s%s",pop->root,"cls_cdi_nid.dat");
              strcpy(first_line,"[l(l+1)/2pi] C_l's for scalar cross CDIxNID mode");
            }

            if ((ppt->has_cdi == _TRUE_) && (ppt->has_niv == _TRUE_) &&
                (index_ic1 == ppt->index_ic_cdi) && (index_ic2 == ppt->index_ic_niv)) {

              class_sprintf(file_name,"%s%s",pop->root,"cls_cdi_niv.dat");
              strcpy(first_line,"[l(l+1)/2pi] C_l's for scalar cross CDIxNIV mode");
            }

            if ((ppt->has_nid == _TRUE_) && (ppt->has_niv == _TRUE_) &&
                (index_ic1 == ppt->index_ic_nid) && (index_ic2 == ppt->index_ic_niv)) {

              class_sprintf(file_name,"%s%s",pop->root,"cls_nid_niv.dat");
              strcpy(first_line,"[l(l+1)/2pi] C_l's for scalar cross NIDxNIV mode");
            }

          }

          if (_tensors_) {

            class_test(0==0,
                       pop->error_message,
                       "Seems that we have mixed initial conditions for tensors? Should not happen!\n");

          }

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

          if (phr->is_non_zero[index_md][index_ic1_ic2] == _TRUE_) {

            class_call(output_open_cl_file(phr,
                                           pop,
                                           &(out_md_ic[index_md][index_ic1_ic2]),
                                           file_name,
                                           first_line,
                                           phr->l_max[index_md]
                                           ),
                       pop->error_message,
                       pop->error_message);

          }
        }
      }

      class_alloc(cl_md_ic[index_md],
                  phr->ic_ic_size[index_md]*phr->ct_size*sizeof(double),
                  pop->error_message);
    }
  }

  /** - third, perform loop over l. For each multipole, get all \f$ C_l\f$'s
      by calling harmonic_cl_at_l() and distribute the results to
      relevant files */

  for (l = 2; l <= phr->l_max_tot; l++) {

    class_call(harmonic_cl_at_l(phr,(double)l,cl_tot,cl_md,cl_md_ic),
               phr->error_message,
               pop->error_message);

    class_call(output_one_line_of_cl(pba,phr,pop,out,(double)l,cl_tot,phr->ct_size),
               pop->error_message,
               pop->error_message);

    if ((ple->has_lensed_cls == _TRUE_) && (l<=ple->l_lensed_max)) {

      class_call(lensing_cl_at_l(ple,
                                 (double)l,
                                 cl_tot),
                 ple->error_message,
                 pop->error_message);

      class_call(output_one_line_of_cl(pba,phr,pop,out_lensed,l,cl_tot,phr->ct_size),
                 pop->error_message,
                 pop->error_message);
    }

    if (ppt->md_size > 1) {
      for (index_md = 0; index_md < ppt->md_size; index_md++) {
        if (l <= phr->l_max[index_md]) {

          class_call(output_one_line_of_cl(pba,phr,pop,out_md[index_md],l,cl_md[index_md],phr->ct_size),
                     pop->error_message,
                     pop->error_message);
        }
      }
    }

    for (index_md = 0; index_md < ppt->md_size; index_md++) {
      if ((ppt->ic_size[index_md] > 1) && (l <= phr->l_max[index_md])) {
        for (index_ic1_ic2 = 0; index_ic1_ic2 < phr->ic_ic_size[index_md]; index_ic1_ic2++) {
          if (phr->is_non_zero[index_md][index_ic1_ic2] == _TRUE_) {

            class_call(output_one_line_of_cl(pba,phr,pop,out_md_ic[index_md][index_ic1_ic2],l,&(cl_md_ic[index_md][index_ic1_ic2*phr->ct_size]),phr->ct_size),
                       pop->error_message,
                       pop->error_message);
          }
        }
      }
    }
  }

  /** - finally, close files and free arrays of files and \f$ C_l\f$'s */

  for (index_md = 0; index_md < ppt->md_size; index_md++) {
    if (ppt->ic_size[index_md] > 1) {
      for (index_ic1_ic2 = 0; index_ic1_ic2 < phr->ic_ic_size[index_md]; index_ic1_ic2++) {
        if (phr->is_non_zero[index_md][index_ic1_ic2] == _TRUE_) {
          fclose(out_md_ic[index_md][index_ic1_ic2]);
        }
      }
      free(cl_md_ic[index_md]);
    }
  }
  if (ppt->md_size > 1) {
    for (index_md = 0; index_md < ppt->md_size; index_md++) {
      fclose(out_md[index_md]);
      free(cl_md[index_md]);
    }
  }
  fclose(out);
  if (ple->has_lensed_cls == _TRUE_) {
    fclose(out_lensed);
  }
  free(cl_tot);
  for (index_md = 0; index_md < ppt->md_size; index_md++) {
    free(out_md_ic[index_md]);
  }
  free(out_md_ic);
  free(cl_md_ic);
  free(out_md);
  free(cl_md);

  return _SUCCESS_;

}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1578, %rsp           # imm = 0x1578
movq %r8, %rbx
movq %rcx, 0x38(%rsp)
movq %rdx, %r13
movq %rsi, %r15
movq %rdi, 0x40(%rsp)
movslq 0x10(%rdx), %r14
movq %r14, %r12
shlq $0x3, %r12
movq %r12, %rdi
callq 0x8460
testq %rax, %rax
je 0xe73ec
movq %rax, %rbp
movq %r12, %rdi
callq 0x8460
movq %rax, 0x18(%rsp)
testq %rax, %rax
je 0xe7436
movq %r12, %rdi
callq 0x8460
testq %rax, %rax
je 0xe7480
movq %rax, 0x28(%rsp)
movq %r12, %rdi
callq 0x8460
testq %rax, %rax
je 0xe74ca
movq %rax, 0x30(%rsp)
movq %rbp, 0x10(%rsp)
movq %r15, 0x68(%rsp)
movslq 0x854(%r15), %r14
testq %r14, %r14
jle 0xe733f
movq 0x20(%r13), %rbp
xorl %r15d, %r15d
movslq (%rbp,%r15,4), %r12
leaq (,%r12,8), %rdi
callq 0x8460
movq 0x10(%rsp), %rcx
movq %rax, (%rcx,%r15,8)
testq %rax, %rax
je 0xe7514
incq %r15
cmpq %r15, %r14
jne 0xe7313
leaq 0x4854a(%rip), %r12     # 0x12f890
leaq 0xbd40(%rip), %rbp      # 0xf308d
xorl %edi, %edi
xorl %esi, %esi
movq %r12, %rdx
movq %rbx, %rcx
movq %rbp, %r8
xorl %eax, %eax
callq 0x8550
incl %eax
movslq %eax, %rsi
leaq 0x70(%rsp), %r14
movq %r14, %rdi
movq %r12, %rdx
movq %rbx, %rcx
movq %rbp, %r8
xorl %eax, %eax
callq 0x8550
movl 0xc8(%r13), %r9d
leaq 0x47634(%rip), %r8      # 0x12e9c0
leaq 0x60(%rsp), %rdx
movq %r13, %rdi
movq %rbx, %rsi
movq %r14, %rcx
callq 0xec019
testl %eax, %eax
je 0xe755d
addq $0x420, %rbx            # imm = 0x420
leaq 0x703b(%rip), %rsi      # 0xee3f0
leaq 0x4761d(%rip), %rdx     # 0x12e9d9
leaq 0x570(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x30af0
leaq 0x6c5c(%rip), %rsi      # 0xee034
leaq 0x475bc(%rip), %rdx     # 0x12e99b
movq %rbx, %rdi
movl $0x150, %ecx            # imm = 0x150
jmp 0xe85e1
leal (,%r14,8), %ecx
leaq 0x6c09(%rip), %rsi      # 0xee004
leaq 0x4758f(%rip), %rdx     # 0x12e991
leaq 0x570(%rsp), %r14
movq %r14, %rdi
xorl %eax, %eax
callq 0x30af0
addq $0x420, %rbx            # imm = 0x420
leaq 0x6c12(%rip), %rsi      # 0xee034
leaq 0x47572(%rip), %rdx     # 0x12e99b
movq %rbx, %rdi
movl $0x12e, %ecx            # imm = 0x12E
jmp 0xe85e1
leal (,%r14,8), %ecx
leaq 0x6bbf(%rip), %rsi      # 0xee004
leaq 0x3e41a(%rip), %rdx     # 0x125866
leaq 0x570(%rsp), %r14
movq %r14, %rdi
xorl %eax, %eax
callq 0x30af0
addq $0x420, %rbx            # imm = 0x420
leaq 0x6bc8(%rip), %rsi      # 0xee034
leaq 0x47528(%rip), %rdx     # 0x12e99b
movq %rbx, %rdi
movl $0x132, %ecx            # imm = 0x132
jmp 0xe85e1
leal (,%r14,8), %ecx
leaq 0x6b75(%rip), %rsi      # 0xee004
leaq 0x4750f(%rip), %rdx     # 0x12e9a5
leaq 0x570(%rsp), %r14
movq %r14, %rdi
xorl %eax, %eax
callq 0x30af0
addq $0x420, %rbx            # imm = 0x420
leaq 0x6b7e(%rip), %rsi      # 0xee034
leaq 0x474de(%rip), %rdx     # 0x12e99b
movq %rbx, %rdi
movl $0x136, %ecx            # imm = 0x136
jmp 0xe85e1
leal (,%r14,8), %ecx
leaq 0x6b2b(%rip), %rsi      # 0xee004
leaq 0x3e38f(%rip), %rdx     # 0x12586f
leaq 0x570(%rsp), %r14
movq %r14, %rdi
xorl %eax, %eax
callq 0x30af0
addq $0x420, %rbx            # imm = 0x420
leaq 0x6b34(%rip), %rsi      # 0xee034
leaq 0x47494(%rip), %rdx     # 0x12e99b
movq %rbx, %rdi
movl $0x13a, %ecx            # imm = 0x13A
jmp 0xe85e1
shll $0x3, %r12d
leaq 0x6ae5(%rip), %rsi      # 0xee004
leaq 0x47486(%rip), %rdx     # 0x12e9ac
leaq 0x570(%rsp), %r14
movq %r14, %rdi
movl %r12d, %ecx
xorl %eax, %eax
callq 0x30af0
addq $0x420, %rbx            # imm = 0x420
leaq 0x6aeb(%rip), %rsi      # 0xee034
leaq 0x4744b(%rip), %rdx     # 0x12e99b
movq %rbx, %rdi
movl $0x140, %ecx            # imm = 0x140
jmp 0xe85e1
movslq 0x9c(%r13), %r12
leaq (,%r12,8), %rdi
callq 0x8460
testq %rax, %rax
je 0xe859d
movq %rax, %rcx
movq 0x38(%rsp), %rax
cmpw $0x1, (%rax)
movq %rcx, 0x20(%rsp)
jne 0xe763c
leaq 0x482f8(%rip), %r14     # 0x12f890
leaq 0x4749d(%rip), %r12     # 0x12ea3c
xorl %edi, %edi
xorl %esi, %esi
movq %r14, %rdx
movq %rbx, %rcx
movq %r12, %r8
xorl %eax, %eax
callq 0x8550
incl %eax
movslq %eax, %rsi
leaq 0x70(%rsp), %rbp
movq %rbp, %rdi
movq %r14, %rdx
movq %rbx, %rcx
movq %r12, %r8
xorl %eax, %eax
callq 0x8550
movq 0x38(%rsp), %rax
movl 0x5c(%rax), %r9d
leaq 0x4746a(%rip), %r8      # 0x12ea4a
leaq 0x58(%rsp), %rdx
movq %r13, %rdi
movq %rbx, %rsi
movq %rbp, %rcx
callq 0xec019
testl %eax, %eax
je 0xe763c
addq $0x420, %rbx            # imm = 0x420
leaq 0x6deb(%rip), %rsi      # 0xee3f0
leaq 0x4745e(%rip), %rdx     # 0x12ea6a
leaq 0x570(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x30af0
leaq 0x6a0c(%rip), %rsi      # 0xee034
leaq 0x4736c(%rip), %rdx     # 0x12e99b
movq %rbx, %rdi
movl $0x163, %ecx            # imm = 0x163
jmp 0xe85e1
movq 0x68(%rsp), %r15
movl 0x854(%r15), %eax
cmpl $0x2, %eax
jl 0xe77b8
movq 0x28(%rsp), %r12
xorl %r14d, %r14d
cmpw $0x1, 0xe(%r15)
jne 0xe76d3
movl 0x848(%r15), %eax
cmpq %rax, %r14
jne 0xe76d3
xorl %edi, %edi
xorl %esi, %esi
leaq 0x48218(%rip), %rbp     # 0x12f890
movq %rbp, %rdx
movq %rbx, %rcx
leaq 0x47452(%rip), %r8      # 0x12ead7
xorl %eax, %eax
callq 0x8550
incl %eax
movslq %eax, %rsi
leaq 0x70(%rsp), %rdi
movq %rbp, %rdx
movq %rbx, %rcx
leaq 0x47434(%rip), %r8      # 0x12ead7
xorl %eax, %eax
callq 0x8550
movups 0x4742e(%rip), %xmm0    # 0x12eadf
movaps %xmm0, 0x170(%rsp)
movups 0x4742f(%rip), %xmm0    # 0x12eaef
movaps %xmm0, 0x180(%rsp)
movl $0x65646f, 0x18f(%rsp) # imm = 0x65646F
cmpw $0x1, 0x12(%r15)
jne 0xe774d
movl 0x84c(%r15), %eax
cmpq %rax, %r14
jne 0xe774d
xorl %edi, %edi
xorl %esi, %esi
leaq 0x4819e(%rip), %rbp     # 0x12f890
movq %rbp, %rdx
movq %rbx, %rcx
leaq 0x47403(%rip), %r8      # 0x12eb02
xorl %eax, %eax
callq 0x8550
incl %eax
movslq %eax, %rsi
leaq 0x70(%rsp), %rdi
movq %rbp, %rdx
movq %rbx, %rcx
leaq 0x473e5(%rip), %r8      # 0x12eb02
xorl %eax, %eax
callq 0x8550
movups 0x473df(%rip), %xmm0    # 0x12eb0a
movaps %xmm0, 0x170(%rsp)
movups 0x473e0(%rip), %xmm0    # 0x12eb1a
movaps %xmm0, 0x180(%rsp)
movl $0x65646f, 0x18f(%rsp) # imm = 0x65646F
movq 0xc0(%r13), %rax
movl (%rax,%r14,4), %r9d
movq %r13, %rdi
movq %rbx, %rsi
movq %r12, %rdx
leaq 0x70(%rsp), %rcx
leaq 0x170(%rsp), %r8
callq 0xec019
testl %eax, %eax
jne 0xe86a5
movslq 0x9c(%r13), %rbp
leaq (,%rbp,8), %rdi
callq 0x8460
movq 0x30(%rsp), %rcx
movq %rax, (%rcx,%r14,8)
testq %rax, %rax
je 0xe86ea
incq %r14
movslq 0x854(%r15), %rax
addq $0x8, %r12
cmpq %rax, %r14
jl 0xe7659
testl %eax, %eax
jle 0xe828b
movq 0x870(%r15), %rbp
xorl %r14d, %r14d
cmpl $0x2, (%rbp,%r14,4)
jl 0xe827c
movl (%rbp,%r14,4), %eax
testl %eax, %eax
jle 0xe8243
xorl %esi, %esi
cmpl %eax, %esi
jge 0xe8230
leal 0x1(%rsi), %eax
movl %eax, 0x48(%rsp)
imull %esi, %eax
shrl %eax
negl %eax
movq %rax, 0x50(%rsp)
movl %esi, %r12d
movq %rsi, 0x8(%rsp)
cmpw $0x1, 0xe(%r15)
movq 0x10(%rsp), %rdi
jne 0xe817f
movl 0x848(%r15), %eax
cmpq %rax, %r14
jne 0xe817f
cmpw $0x1, 0x14(%r15)
jne 0xe78c5
movl 0x858(%r15), %eax
movl %esi, %ecx
xorl %eax, %ecx
xorl %r12d, %eax
orl %ecx, %eax
jne 0xe78c5
xorl %edi, %edi
xorl %esi, %esi
leaq 0x4803e(%rip), %rbp     # 0x12f890
movq %rbp, %rdx
movq %rbx, %rcx
leaq 0x4732f(%rip), %r8      # 0x12eb8e
xorl %eax, %eax
callq 0x8550
incl %eax
movslq %eax, %rsi
leaq 0x70(%rsp), %rdi
movq %rbp, %rdx
movq %rbx, %rcx
leaq 0x47311(%rip), %r8      # 0x12eb8e
xorl %eax, %eax
callq 0x8550
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rsi
movups 0x47304(%rip), %xmm0    # 0x12eb99
movaps %xmm0, 0x170(%rsp)
movups 0x47305(%rip), %xmm0    # 0x12eba9
movaps %xmm0, 0x180(%rsp)
movups 0x47306(%rip), %xmm0    # 0x12ebb9
movaps %xmm0, 0x190(%rsp)
movw $0x65, 0x1a0(%rsp)
cmpw $0x1, 0x16(%r15)
jne 0xe796a
movl 0x860(%r15), %eax
movl %esi, %ecx
xorl %eax, %ecx
xorl %r12d, %eax
orl %ecx, %eax
jne 0xe796a
xorl %edi, %edi
xorl %esi, %esi
leaq 0x47f9e(%rip), %rbp     # 0x12f890
movq %rbp, %rdx
movq %rbx, %rcx
leaq 0x472cc(%rip), %r8      # 0x12ebcb
xorl %eax, %eax
callq 0x8550
incl %eax
movslq %eax, %rsi
leaq 0x70(%rsp), %rdi
movq %rbp, %rdx
movq %rbx, %rcx
leaq 0x472ae(%rip), %r8      # 0x12ebcb
xorl %eax, %eax
callq 0x8550
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rsi
movups 0x472a1(%rip), %xmm0    # 0x12ebd6
movaps %xmm0, 0x170(%rsp)
movups 0x472a2(%rip), %xmm0    # 0x12ebe6
movaps %xmm0, 0x180(%rsp)
movups 0x472a3(%rip), %xmm0    # 0x12ebf6
movaps %xmm0, 0x190(%rsp)
movups 0x472a0(%rip), %xmm0    # 0x12ec02
movups %xmm0, 0x19c(%rsp)
cmpw $0x1, 0x18(%r15)
jne 0xe7a0f
movl 0x85c(%r15), %eax
movl %esi, %ecx
xorl %eax, %ecx
xorl %r12d, %eax
orl %ecx, %eax
jne 0xe7a0f
xorl %edi, %edi
xorl %esi, %esi
leaq 0x47ef9(%rip), %rbp     # 0x12f890
movq %rbp, %rdx
movq %rbx, %rcx
leaq 0x4726e(%rip), %r8      # 0x12ec12
xorl %eax, %eax
callq 0x8550
incl %eax
movslq %eax, %rsi
leaq 0x70(%rsp), %rdi
movq %rbp, %rdx
movq %rbx, %rcx
leaq 0x47250(%rip), %r8      # 0x12ec12
xorl %eax, %eax
callq 0x8550
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rsi
movups 0x47244(%rip), %xmm0    # 0x12ec1e
movaps %xmm0, 0x170(%rsp)
movups 0x47245(%rip), %xmm0    # 0x12ec2e
movaps %xmm0, 0x180(%rsp)
movups 0x47246(%rip), %xmm0    # 0x12ec3e
movaps %xmm0, 0x190(%rsp)
movups 0x47241(%rip), %xmm0    # 0x12ec48
movups %xmm0, 0x19a(%rsp)
cmpw $0x1, 0x1a(%r15)
jne 0xe7a89
movl 0x864(%r15), %eax
movl %esi, %ecx
xorl %eax, %ecx
xorl %r12d, %eax
orl %ecx, %eax
jne 0xe7a89
xorl %edi, %edi
xorl %esi, %esi
leaq 0x47e5c(%rip), %rbp     # 0x12f890
movq %rbp, %rdx
movq %rbx, %rcx
leaq 0x47217(%rip), %r8      # 0x12ec58
xorl %eax, %eax
callq 0x8550
incl %eax
movslq %eax, %rsi
leaq 0x70(%rsp), %rdi
movq %rbp, %rdx
movq %rbx, %rcx
leaq 0x471f9(%rip), %r8      # 0x12ec58
xorl %eax, %eax
callq 0x8550
movl $0x47, %edx
leaq 0x170(%rsp), %rdi
leaq 0x471ea(%rip), %rsi     # 0x12ec64
callq 0x82d0
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rsi
cmpw $0x1, 0x1c(%r15)
jne 0xe7b03
movl 0x868(%r15), %eax
movl %esi, %ecx
xorl %eax, %ecx
xorl %r12d, %eax
orl %ecx, %eax
jne 0xe7b03
xorl %edi, %edi
xorl %esi, %esi
leaq 0x47de2(%rip), %rbp     # 0x12f890
movq %rbp, %rdx
movq %rbx, %rcx
leaq 0x471f0(%rip), %r8      # 0x12ecab
xorl %eax, %eax
callq 0x8550
incl %eax
movslq %eax, %rsi
leaq 0x70(%rsp), %rdi
movq %rbp, %rdx
movq %rbx, %rcx
leaq 0x471d2(%rip), %r8      # 0x12ecab
xorl %eax, %eax
callq 0x8550
movl $0x48, %edx
leaq 0x170(%rsp), %rdi
leaq 0x471c3(%rip), %rsi     # 0x12ecb7
callq 0x82d0
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rsi
cmpw $0x1, 0x14(%r15)
jne 0xe7d93
cmpw $0x1, 0x16(%r15)
jne 0xe7bb5
cmpl 0x858(%r15), %esi
jne 0xe7bb5
cmpl 0x860(%r15), %r12d
jne 0xe7bb5
xorl %edi, %edi
xorl %esi, %esi
leaq 0x47d50(%rip), %rbp     # 0x12f890
movq %rbp, %rdx
movq %rbx, %rcx
leaq 0x471b2(%rip), %r8      # 0x12ecff
xorl %eax, %eax
callq 0x8550
incl %eax
movslq %eax, %rsi
leaq 0x70(%rsp), %rdi
movq %rbp, %rdx
movq %rbx, %rcx
leaq 0x47194(%rip), %r8      # 0x12ecff
xorl %eax, %eax
callq 0x8550
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rsi
movups 0x471a9(%rip), %xmm0    # 0x12ed2c
movups %xmm0, 0x18f(%rsp)
movups 0x4718b(%rip), %xmm0    # 0x12ed1d
movaps %xmm0, 0x180(%rsp)
movups 0x4716c(%rip), %xmm0    # 0x12ed0d
movaps %xmm0, 0x170(%rsp)
cmpw $0x1, 0x14(%r15)
jne 0xe7d93
cmpw $0x1, 0x18(%r15)
jne 0xe7c5b
cmpl 0x858(%r15), %esi
jne 0xe7c5b
cmpl 0x85c(%r15), %r12d
jne 0xe7c5b
xorl %edi, %edi
xorl %esi, %esi
leaq 0x47caa(%rip), %rbp     # 0x12f890
movq %rbp, %rdx
movq %rbx, %rcx
leaq 0x47149(%rip), %r8      # 0x12ed3c
xorl %eax, %eax
callq 0x8550
incl %eax
movslq %eax, %rsi
leaq 0x70(%rsp), %rdi
movq %rbp, %rdx
movq %rbx, %rcx
leaq 0x4712b(%rip), %r8      # 0x12ed3c
xorl %eax, %eax
callq 0x8550
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rsi
movups 0x47142(%rip), %xmm0    # 0x12ed6b
movaps %xmm0, 0x190(%rsp)
movups 0x47123(%rip), %xmm0    # 0x12ed5b
movaps %xmm0, 0x180(%rsp)
movups 0x47104(%rip), %xmm0    # 0x12ed4b
movaps %xmm0, 0x170(%rsp)
cmpw $0x1, 0x14(%r15)
jne 0xe7d93
cmpw $0x1, 0x1a(%r15)
jne 0xe7d01
cmpl 0x858(%r15), %esi
jne 0xe7d01
cmpl 0x864(%r15), %r12d
jne 0xe7d01
xorl %edi, %edi
xorl %esi, %esi
leaq 0x47c04(%rip), %rbp     # 0x12f890
movq %rbp, %rdx
movq %rbx, %rcx
leaq 0x470e2(%rip), %r8      # 0x12ed7b
xorl %eax, %eax
callq 0x8550
incl %eax
movslq %eax, %rsi
leaq 0x70(%rsp), %rdi
movq %rbp, %rdx
movq %rbx, %rcx
leaq 0x470c4(%rip), %r8      # 0x12ed7b
xorl %eax, %eax
callq 0x8550
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rsi
movups 0x470db(%rip), %xmm0    # 0x12edaa
movaps %xmm0, 0x190(%rsp)
movups 0x470bc(%rip), %xmm0    # 0x12ed9a
movaps %xmm0, 0x180(%rsp)
movups 0x4709d(%rip), %xmm0    # 0x12ed8a
movaps %xmm0, 0x170(%rsp)
cmpw $0x1, 0x14(%r15)
jne 0xe7d93
cmpw $0x1, 0x1c(%r15)
jne 0xe7d93
cmpl 0x858(%r15), %esi
jne 0xe7d93
cmpl 0x868(%r15), %r12d
jne 0xe7d93
xorl %edi, %edi
xorl %esi, %esi
leaq 0x47b66(%rip), %rbp     # 0x12f890
movq %rbp, %rdx
movq %rbx, %rcx
leaq 0x47083(%rip), %r8      # 0x12edba
xorl %eax, %eax
callq 0x8550
incl %eax
movslq %eax, %rsi
leaq 0x70(%rsp), %rdi
movq %rbp, %rdx
movq %rbx, %rcx
leaq 0x47065(%rip), %r8      # 0x12edba
xorl %eax, %eax
callq 0x8550
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rsi
movups 0x4705c(%rip), %xmm0    # 0x12edc9
movaps %xmm0, 0x170(%rsp)
movups 0x4705d(%rip), %xmm0    # 0x12edd9
movaps %xmm0, 0x180(%rsp)
movups 0x4705e(%rip), %xmm0    # 0x12ede9
movaps %xmm0, 0x190(%rsp)
cmpw $0x1, 0x16(%r15)
jne 0xe7f7d
cmpw $0x1, 0x18(%r15)
jne 0xe7e45
cmpl 0x860(%r15), %esi
jne 0xe7e45
cmpl 0x85c(%r15), %r12d
jne 0xe7e45
xorl %edi, %edi
xorl %esi, %esi
leaq 0x47ac0(%rip), %rbp     # 0x12f890
movq %rbp, %rdx
movq %rbx, %rcx
leaq 0x4701c(%rip), %r8      # 0x12edf9
xorl %eax, %eax
callq 0x8550
incl %eax
movslq %eax, %rsi
leaq 0x70(%rsp), %rdi
movq %rbp, %rdx
movq %rbx, %rcx
leaq 0x46ffe(%rip), %r8      # 0x12edf9
xorl %eax, %eax
callq 0x8550
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rsi
movups 0x47015(%rip), %xmm0    # 0x12ee28
movaps %xmm0, 0x190(%rsp)
movups 0x46ff6(%rip), %xmm0    # 0x12ee18
movaps %xmm0, 0x180(%rsp)
movups 0x46fd7(%rip), %xmm0    # 0x12ee08
movaps %xmm0, 0x170(%rsp)
cmpw $0x1, 0x16(%r15)
jne 0xe7f7d
cmpw $0x1, 0x1a(%r15)
jne 0xe7eeb
cmpl 0x860(%r15), %esi
jne 0xe7eeb
cmpl 0x864(%r15), %r12d
jne 0xe7eeb
xorl %edi, %edi
xorl %esi, %esi
leaq 0x47a1a(%rip), %rbp     # 0x12f890
movq %rbp, %rdx
movq %rbx, %rcx
leaq 0x46fb5(%rip), %r8      # 0x12ee38
xorl %eax, %eax
callq 0x8550
incl %eax
movslq %eax, %rsi
leaq 0x70(%rsp), %rdi
movq %rbp, %rdx
movq %rbx, %rcx
leaq 0x46f97(%rip), %r8      # 0x12ee38
xorl %eax, %eax
callq 0x8550
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rsi
movups 0x46fae(%rip), %xmm0    # 0x12ee67
movaps %xmm0, 0x190(%rsp)
movups 0x46f8f(%rip), %xmm0    # 0x12ee57
movaps %xmm0, 0x180(%rsp)
movups 0x46f70(%rip), %xmm0    # 0x12ee47
movaps %xmm0, 0x170(%rsp)
cmpw $0x1, 0x16(%r15)
jne 0xe7f7d
cmpw $0x1, 0x1c(%r15)
jne 0xe7f7d
cmpl 0x860(%r15), %esi
jne 0xe7f7d
cmpl 0x868(%r15), %r12d
jne 0xe7f7d
xorl %edi, %edi
xorl %esi, %esi
leaq 0x4797c(%rip), %rbp     # 0x12f890
movq %rbp, %rdx
movq %rbx, %rcx
leaq 0x46f56(%rip), %r8      # 0x12ee77
xorl %eax, %eax
callq 0x8550
incl %eax
movslq %eax, %rsi
leaq 0x70(%rsp), %rdi
movq %rbp, %rdx
movq %rbx, %rcx
leaq 0x46f38(%rip), %r8      # 0x12ee77
xorl %eax, %eax
callq 0x8550
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rsi
movups 0x46f2f(%rip), %xmm0    # 0x12ee86
movaps %xmm0, 0x170(%rsp)
movups 0x46f30(%rip), %xmm0    # 0x12ee96
movaps %xmm0, 0x180(%rsp)
movups 0x46f31(%rip), %xmm0    # 0x12eea6
movaps %xmm0, 0x190(%rsp)
cmpw $0x1, 0x18(%r15)
jne 0xe80d5
cmpw $0x1, 0x1a(%r15)
jne 0xe8037
cmpl 0x85c(%r15), %esi
jne 0xe8037
cmpl 0x864(%r15), %r12d
jne 0xe8037
xorl %edi, %edi
xorl %esi, %esi
leaq 0x478d6(%rip), %rbp     # 0x12f890
movq %rbp, %rdx
movq %rbx, %rcx
leaq 0x46eef(%rip), %r8      # 0x12eeb6
xorl %eax, %eax
callq 0x8550
incl %eax
movslq %eax, %rsi
leaq 0x70(%rsp), %rdi
movq %rbp, %rdx
movq %rbx, %rcx
leaq 0x46ed1(%rip), %r8      # 0x12eeb6
xorl %eax, %eax
callq 0x8550
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rsi
movups 0x46ee9(%rip), %xmm0    # 0x12eee6
movaps %xmm0, 0x190(%rsp)
movups 0x46eca(%rip), %xmm0    # 0x12eed6
movaps %xmm0, 0x180(%rsp)
movups 0x46eab(%rip), %xmm0    # 0x12eec6
movaps %xmm0, 0x170(%rsp)
movb $0x0, 0x1a0(%rsp)
cmpw $0x1, 0x18(%r15)
jne 0xe80d5
cmpw $0x1, 0x1c(%r15)
jne 0xe80d5
cmpl 0x85c(%r15), %esi
jne 0xe80d5
cmpl 0x868(%r15), %r12d
jne 0xe80d5
xorl %edi, %edi
xorl %esi, %esi
leaq 0x4782c(%rip), %rbp     # 0x12f890
movq %rbp, %rdx
movq %rbx, %rcx
leaq 0x46e86(%rip), %r8      # 0x12eef7
xorl %eax, %eax
callq 0x8550
incl %eax
movslq %eax, %rsi
leaq 0x70(%rsp), %rdi
movq %rbp, %rdx
movq %rbx, %rcx
leaq 0x46e68(%rip), %r8      # 0x12eef7
xorl %eax, %eax
callq 0x8550
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rsi
movups 0x46e60(%rip), %xmm0    # 0x12ef07
movaps %xmm0, 0x170(%rsp)
movups 0x46e61(%rip), %xmm0    # 0x12ef17
movaps %xmm0, 0x180(%rsp)
movups 0x46e62(%rip), %xmm0    # 0x12ef27
movaps %xmm0, 0x190(%rsp)
movb $0x0, 0x1a0(%rsp)
cmpw $0x1, 0x1a(%r15)
jne 0xe817f
cmpw $0x1, 0x1c(%r15)
jne 0xe817f
cmpl 0x864(%r15), %esi
jne 0xe817f
cmpl 0x868(%r15), %r12d
jne 0xe817f
xorl %edi, %edi
xorl %esi, %esi
leaq 0x47782(%rip), %rbp     # 0x12f890
movq %rbp, %rdx
movq %rbx, %rcx
leaq 0x46e1d(%rip), %r8      # 0x12ef38
xorl %eax, %eax
callq 0x8550
incl %eax
movslq %eax, %rsi
leaq 0x70(%rsp), %rdi
movq %rbp, %rdx
movq %rbx, %rcx
leaq 0x46dff(%rip), %r8      # 0x12ef38
xorl %eax, %eax
callq 0x8550
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rsi
movups 0x46df7(%rip), %xmm0    # 0x12ef48
movaps %xmm0, 0x170(%rsp)
movups 0x46df8(%rip), %xmm0    # 0x12ef58
movaps %xmm0, 0x180(%rsp)
movups 0x46df9(%rip), %xmm0    # 0x12ef68
movaps %xmm0, 0x190(%rsp)
movb $0x0, 0x1a0(%rsp)
cmpw $0x1, 0x12(%r15)
jne 0xe8197
movl 0x84c(%r15), %eax
cmpq %rax, %r14
je 0xe8602
movq 0x18(%r13), %rax
movl (%rax,%r14,4), %eax
cmpl %r12d, %esi
jbe 0xe81bb
imull %r12d, %eax
leal 0x1(%r12), %ecx
imull %r12d, %ecx
shrl %ecx
movl %esi, %edx
subl %ecx, %edx
addl %edx, %eax
jmp 0xe81c8
imull %esi, %eax
movq 0x50(%rsp), %rcx
addl %r12d, %ecx
addl %ecx, %eax
movq 0x28(%r13), %rcx
movq (%rcx,%r14,8), %rcx
movslq %eax, %rdx
cmpw $0x1, (%rcx,%rdx,2)
jne 0xe8212
shlq $0x3, %rdx
addq (%rdi,%r14,8), %rdx
movq 0xc0(%r13), %rax
movl (%rax,%r14,4), %r9d
movq %r13, %rdi
movq %rbx, %rsi
leaq 0x70(%rsp), %rcx
leaq 0x170(%rsp), %r8
callq 0xec019
movq 0x8(%rsp), %rsi
testl %eax, %eax
jne 0xe8660
incl %r12d
movq 0x870(%r15), %rbp
movl (%rbp,%r14,4), %eax
cmpl %eax, %r12d
jl 0xe7808
movl 0x48(%rsp), %ecx
jmp 0xe8239
movl (%rbp,%r14,4), %eax
incl %esi
movl %esi, %ecx
movl %ecx, %esi
cmpl %eax, %ecx
jl 0xe77e5
movq 0x20(%r13), %rax
movslq (%rax,%r14,4), %rax
movslq 0x9c(%r13), %r12
imulq %rax, %r12
leaq (,%r12,8), %rdi
callq 0x8460
movq 0x18(%rsp), %rcx
movq %rax, (%rcx,%r14,8)
testq %rax, %rax
je 0xe87c9
movl 0x854(%r15), %eax
incq %r14
movslq %eax, %rcx
cmpq %rcx, %r14
jl 0xe77ca
cmpl $0x2, 0xc8(%r13)
movq 0x10(%rsp), %rbp
jl 0xe8483
movq 0x60(%rsp), %rax
movq %rax, 0x50(%rsp)
movl $0x2, %r12d
movq 0x58(%rsp), %rax
movq %rax, 0x48(%rsp)
xorps %xmm0, %xmm0
cvtsi2sd %r12d, %xmm0
movq %r13, %rdi
movsd %xmm0, 0x8(%rsp)
movq 0x20(%rsp), %r14
movq %r14, %rsi
movq 0x30(%rsp), %rdx
movq 0x18(%rsp), %rcx
callq 0xb2958
cmpl $0x1, %eax
je 0xe8731
movl 0x9c(%r13), %r9d
movq 0x40(%rsp), %rdi
movq %r13, %rsi
movq %rbx, %rdx
movq 0x50(%rsp), %rcx
movsd 0x8(%rsp), %xmm0
movq %r14, %r8
callq 0xecbb5
movq 0x38(%rsp), %r14
cmpw $0x1, (%r14)
jne 0xe8360
cmpl 0x5c(%r14), %r12d
jg 0xe8360
movq %r14, %rdi
movl %r12d, %esi
movq 0x20(%rsp), %rdx
callq 0xb6850
cmpl $0x1, %eax
je 0xe877d
movl 0x9c(%r13), %r9d
movq 0x40(%rsp), %rdi
movq %r13, %rsi
movq %rbx, %rdx
movq 0x48(%rsp), %rcx
movsd 0x8(%rsp), %xmm0
movq 0x20(%rsp), %r8
callq 0xecbb5
movl 0x854(%r15), %eax
cmpl $0x2, %eax
jl 0xe83bd
xorl %r14d, %r14d
movq 0xc0(%r13), %rcx
cmpl (%rcx,%r14,4), %r12d
jg 0xe83b2
movq 0x28(%rsp), %rax
movq (%rax,%r14,8), %rcx
movq 0x30(%rsp), %rax
movq (%rax,%r14,8), %r8
movl 0x9c(%r13), %r9d
movq 0x40(%rsp), %rdi
movq %r13, %rsi
movq %rbx, %rdx
movsd 0x8(%rsp), %xmm0
callq 0xecbb5
movl 0x854(%r15), %eax
incq %r14
movslq %eax, %rcx
cmpq %rcx, %r14
jl 0xe836f
testl %eax, %eax
jle 0xe846e
xorl %r14d, %r14d
movq 0x870(%r15), %rcx
cmpl $0x2, (%rcx,%r14,4)
jl 0xe845f
movq 0xc0(%r13), %rcx
cmpl (%rcx,%r14,4), %r12d
jg 0xe845f
movq 0x20(%r13), %rcx
cmpl $0x0, (%rcx,%r14,4)
jle 0xe845f
xorl %ebp, %ebp
movq 0x28(%r13), %rax
movq (%rax,%r14,8), %rax
cmpw $0x1, (%rax,%rbp,2)
jne 0xe8447
movq 0x10(%rsp), %rax
movq (%rax,%r14,8), %rax
movq (%rax,%rbp,8), %rcx
movl 0x9c(%r13), %r9d
movl %ebp, %eax
imull %r9d, %eax
movslq %eax, %r8
shlq $0x3, %r8
movq 0x18(%rsp), %rax
addq (%rax,%r14,8), %r8
movq 0x40(%rsp), %rdi
movq %r13, %rsi
movq %rbx, %rdx
movsd 0x8(%rsp), %xmm0
callq 0xecbb5
movq 0x20(%r13), %rcx
incq %rbp
movslq (%rcx,%r14,4), %rax
cmpq %rax, %rbp
jl 0xe83f4
movl 0x854(%r15), %eax
movq 0x10(%rsp), %rbp
incq %r14
movslq %eax, %rcx
cmpq %rcx, %r14
jl 0xe83c8
leal 0x1(%r12), %ecx
cmpl 0xc8(%r13), %r12d
movl %ecx, %r12d
jl 0xe82b8
testl %eax, %eax
movq 0x30(%rsp), %r12
jle 0xe8527
xorl %ebx, %ebx
movq 0x870(%r15), %rcx
cmpl $0x2, (%rcx,%rbx,4)
jl 0xe84ef
movq 0x20(%r13), %rax
cmpl $0x0, (%rax,%rbx,4)
jle 0xe84da
xorl %r14d, %r14d
movq 0x28(%r13), %rcx
movq (%rcx,%rbx,8), %rcx
cmpw $0x1, (%rcx,%r14,2)
jne 0xe84ce
movq (%rbp,%rbx,8), %rax
movq (%rax,%r14,8), %rdi
callq 0x83a0
movq 0x20(%r13), %rax
incq %r14
movslq (%rax,%rbx,4), %rcx
cmpq %rcx, %r14
jl 0xe84ac
movq 0x18(%rsp), %rax
movq (%rax,%rbx,8), %rdi
callq 0x8410
movl 0x854(%r15), %eax
incq %rbx
movslq %eax, %rcx
cmpq %rcx, %rbx
jl 0xe8492
cmpl $0x2, %eax
movq 0x28(%rsp), %r14
jl 0xe8527
xorl %ebx, %ebx
movq (%r14,%rbx,8), %rdi
callq 0x83a0
movq (%r12,%rbx,8), %rdi
callq 0x8410
incq %rbx
movslq 0x854(%r15), %rax
cmpq %rax, %rbx
jl 0xe8506
movq 0x60(%rsp), %rdi
callq 0x83a0
movq 0x38(%rsp), %rax
cmpw $0x1, (%rax)
jne 0xe8546
movq 0x58(%rsp), %rdi
callq 0x83a0
movq 0x20(%rsp), %rdi
callq 0x8410
cmpl $0x0, 0x854(%r15)
jle 0xe8575
xorl %ebx, %ebx
movq (%rbp,%rbx,8), %rdi
callq 0x8410
incq %rbx
movslq 0x854(%r15), %rax
cmpq %rax, %rbx
jl 0xe855c
movq %rbp, %rdi
callq 0x8410
movq 0x18(%rsp), %rdi
callq 0x8410
movq 0x28(%rsp), %rdi
callq 0x8410
movq %r12, %rdi
callq 0x8410
xorl %eax, %eax
jmp 0xe85f0
shll $0x3, %r12d
leaq 0x5a5c(%rip), %rsi      # 0xee004
leaq 0x46486(%rip), %rdx     # 0x12ea35
leaq 0x570(%rsp), %r14
movq %r14, %rdi
movl %r12d, %ecx
xorl %eax, %eax
callq 0x30af0
addq $0x420, %rbx            # imm = 0x420
leaq 0x5a62(%rip), %rsi      # 0xee034
leaq 0x463c2(%rip), %rdx     # 0x12e99b
movq %rbx, %rdi
movl $0x154, %ecx            # imm = 0x154
movq %r14, %r8
xorl %eax, %eax
callq 0x30af0
movl $0x1, %eax
addq $0x1578, %rsp           # imm = 0x1578
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x46970(%rip), %rsi     # 0x12ef79
leaq 0x570(%rsp), %r14
movq %r14, %rdi
xorl %eax, %eax
callq 0x30af0
leaq 0x5a60(%rip), %rsi      # 0xee082
leaq 0x3073f(%rip), %rdx     # 0x118d68
leaq 0xd70(%rsp), %r15
movq %r15, %rdi
movq %r14, %rcx
xorl %eax, %eax
callq 0x30af0
addq $0x420, %rbx            # imm = 0x420
leaq 0x59e8(%rip), %rsi      # 0xee034
leaq 0x46348(%rip), %rdx     # 0x12e99b
movq %rbx, %rdi
movl $0x202, %ecx            # imm = 0x202
movq %r15, %r8
jmp 0xe85e4
addq $0x420, %rbx            # imm = 0x420
leaq 0x5d82(%rip), %rsi      # 0xee3f0
leaq 0x46951(%rip), %rdx     # 0x12efc6
leaq 0x570(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x30af0
leaq 0x59a3(%rip), %rsi      # 0xee034
leaq 0x46303(%rip), %rdx     # 0x12e99b
movq %rbx, %rdi
movl $0x212, %ecx            # imm = 0x212
jmp 0xe85e1
addq $0x420, %rbx            # imm = 0x420
leaq 0x5d3d(%rip), %rsi      # 0xee3f0
leaq 0x46473(%rip), %rdx     # 0x12eb2d
leaq 0x570(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x30af0
leaq 0x595e(%rip), %rsi      # 0xee034
leaq 0x462be(%rip), %rdx     # 0x12e99b
movq %rbx, %rdi
movl $0x180, %ecx            # imm = 0x180
jmp 0xe85e1
shll $0x3, %ebp
leaq 0x5910(%rip), %rsi      # 0xee004
leaq 0x3d17a(%rip), %rdx     # 0x125875
leaq 0x570(%rsp), %r14
movq %r14, %rdi
movl %ebp, %ecx
xorl %eax, %eax
callq 0x30af0
addq $0x420, %rbx            # imm = 0x420
leaq 0x5917(%rip), %rsi      # 0xee034
leaq 0x46277(%rip), %rdx     # 0x12e99b
movq %rbx, %rdi
movl $0x184, %ecx            # imm = 0x184
jmp 0xe85e1
addq $0xea, %r13
leaq 0x5cb1(%rip), %rsi      # 0xee3f0
leaq 0x468f3(%rip), %rdx     # 0x12f039
leaq 0x570(%rsp), %r14
movq %r14, %rdi
movq %r13, %rcx
xorl %eax, %eax
callq 0x30af0
addq $0x420, %rbx            # imm = 0x420
leaq 0x58cb(%rip), %rsi      # 0xee034
leaq 0x4622b(%rip), %rdx     # 0x12e99b
movq %rbx, %rdi
movl $0x226, %ecx            # imm = 0x226
jmp 0xe85e1
addq $0x92, %r14
leaq 0x5c65(%rip), %rsi      # 0xee3f0
leaq 0x468dd(%rip), %rdx     # 0x12f06f
movq %r14, %rcx
leaq 0x570(%rsp), %r14
movq %r14, %rdi
xorl %eax, %eax
callq 0x30af0
addq $0x420, %rbx            # imm = 0x420
leaq 0x587f(%rip), %rsi      # 0xee034
leaq 0x461df(%rip), %rdx     # 0x12e99b
movq %rbx, %rdi
movl $0x232, %ecx            # imm = 0x232
jmp 0xe85e1
shll $0x3, %r12d
leaq 0x5830(%rip), %rsi      # 0xee004
leaq 0x3d0aa(%rip), %rdx     # 0x125885
leaq 0x570(%rsp), %r14
movq %r14, %rdi
movl %r12d, %ecx
xorl %eax, %eax
callq 0x30af0
addq $0x420, %rbx            # imm = 0x420
leaq 0x5836(%rip), %rsi      # 0xee034
leaq 0x46196(%rip), %rdx     # 0x12e99b
movq %rbx, %rdi
movl $0x21a, %ecx            # imm = 0x21A
jmp 0xe85e1