// File: /workspace/github_c_makefile_star2_O2/PoulinV[P]AxiCLASS/build/../source/background.c
// Function: background_ncdm_init
int background_ncdm_init(
                         struct precision *ppr,
                         struct background *pba
                         ) {

  int index_q, k,tolexp,row,status,filenum;
  double f0m2,f0m1,f0,f0p1,f0p2,dq,q,df0dq,tmp1,tmp2;
  struct background_parameters_for_distributions pbadist;
  FILE *psdfile;

  pbadist.pba = pba;

  /* Allocate pointer arrays: */
  class_alloc(pba->q_ncdm, sizeof(double*)*pba->N_ncdm,pba->error_message);
  class_alloc(pba->w_ncdm, sizeof(double*)*pba->N_ncdm,pba->error_message);
  class_alloc(pba->q_ncdm_bg, sizeof(double*)*pba->N_ncdm,pba->error_message);
  class_alloc(pba->w_ncdm_bg, sizeof(double*)*pba->N_ncdm,pba->error_message);
  class_alloc(pba->dlnf0_dlnq_ncdm, sizeof(double*)*pba->N_ncdm,pba->error_message);

  /* Allocate pointers: */
  class_alloc(pba->q_size_ncdm,sizeof(int)*pba->N_ncdm,pba->error_message);
  class_alloc(pba->q_size_ncdm_bg,sizeof(int)*pba->N_ncdm,pba->error_message);
  class_alloc(pba->factor_ncdm,sizeof(double)*pba->N_ncdm,pba->error_message);

  for (k=0, filenum=0; k<pba->N_ncdm; k++) {
    pbadist.n_ncdm = k;
    pbadist.q = NULL;
    pbadist.tablesize = 0;
    /*Do we need to read in a file to interpolate the distribution function? */
    if ((pba->got_files!=NULL)&&(pba->got_files[k]==_TRUE_)) {
      psdfile = fopen(pba->ncdm_psd_files+filenum*_ARGUMENT_LENGTH_MAX_,"r");
      class_test(psdfile == NULL,pba->error_message,
                 "Could not open file %s!",pba->ncdm_psd_files+filenum*_ARGUMENT_LENGTH_MAX_);
      // Find size of table:
      for (row=0,status=2; status==2; row++) {
        status = fscanf(psdfile,"%lf %lf",&tmp1,&tmp2);
      }
      rewind(psdfile);
      pbadist.tablesize = row-1;

      /*Allocate room for interpolation table: */
      class_alloc(pbadist.q,sizeof(double)*pbadist.tablesize,pba->error_message);
      class_alloc(pbadist.f0,sizeof(double)*pbadist.tablesize,pba->error_message);
      class_alloc(pbadist.d2f0,sizeof(double)*pbadist.tablesize,pba->error_message);
      for (row=0; row<pbadist.tablesize; row++) {
        status = fscanf(psdfile,"%lf %lf",
                        &pbadist.q[row],&pbadist.f0[row]);
        //        printf("(q,f0) = (%g,%g)\n",pbadist.q[row],pbadist.f0[row]);
      }
      fclose(psdfile);
      /* Call spline interpolation: */
      class_call(array_spline_table_lines(pbadist.q,
                                          pbadist.tablesize,
                                          pbadist.f0,
                                          1,
                                          pbadist.d2f0,
                                          _SPLINE_EST_DERIV_,
                                          pba->error_message),
                 pba->error_message,
                 pba->error_message);
      filenum++;
    }

    /* Handle perturbation qsampling: */
    if (pba->ncdm_quadrature_strategy[k]==qm_auto) {
      /** Automatic q-sampling for this species */
      class_alloc(pba->q_ncdm[k],_QUADRATURE_MAX_*sizeof(double),pba->error_message);
      class_alloc(pba->w_ncdm[k],_QUADRATURE_MAX_*sizeof(double),pba->error_message);

      class_call(get_qsampling(pba->q_ncdm[k],
                               pba->w_ncdm[k],
                               &(pba->q_size_ncdm[k]),
                               _QUADRATURE_MAX_,
                               ppr->tol_ncdm,
                               pbadist.q,
                               pbadist.tablesize,
                               background_ncdm_test_function,
                               background_ncdm_distribution,
                               &pbadist,
                               pba->error_message),
                 pba->error_message,
                 pba->error_message);
      class_realloc(pba->q_ncdm[k],pba->q_size_ncdm[k]*sizeof(double), pba->error_message);
      class_realloc(pba->w_ncdm[k],pba->q_size_ncdm[k]*sizeof(double), pba->error_message);

      if (pba->background_verbose > 0) {
        printf("ncdm species i=%d sampled with %d points for purpose of perturbation integration\n",
               k+1,
               pba->q_size_ncdm[k]);
      }

      /* Handle background q_sampling: */
      class_alloc(pba->q_ncdm_bg[k],_QUADRATURE_MAX_BG_*sizeof(double),pba->error_message);
      class_alloc(pba->w_ncdm_bg[k],_QUADRATURE_MAX_BG_*sizeof(double),pba->error_message);

      class_call(get_qsampling(pba->q_ncdm_bg[k],
                               pba->w_ncdm_bg[k],
                               &(pba->q_size_ncdm_bg[k]),
                               _QUADRATURE_MAX_BG_,
                               ppr->tol_ncdm_bg,
                               pbadist.q,
                               pbadist.tablesize,
                               background_ncdm_test_function,
                               background_ncdm_distribution,
                               &pbadist,
                               pba->error_message),
                 pba->error_message,
                 pba->error_message);

      class_realloc(pba->q_ncdm_bg[k],pba->q_size_ncdm_bg[k]*sizeof(double), pba->error_message);
      class_realloc(pba->w_ncdm_bg[k],pba->q_size_ncdm_bg[k]*sizeof(double), pba->error_message);

      /** - in verbose mode, inform user of number of sampled momenta
          for background quantities */
      if (pba->background_verbose > 0) {
        printf("ncdm species i=%d sampled with %d points for purpose of background integration\n",
               k+1,
               pba->q_size_ncdm_bg[k]);
      }
    }
    else{
      /** Manual q-sampling for this species. Same sampling used for both perturbation and background sampling, since this will usually be a high precision setting anyway */
      pba->q_size_ncdm_bg[k] = pba->ncdm_input_q_size[k];
      pba->q_size_ncdm[k] = pba->ncdm_input_q_size[k];
      class_alloc(pba->q_ncdm_bg[k],pba->q_size_ncdm_bg[k]*sizeof(double),pba->error_message);
      class_alloc(pba->w_ncdm_bg[k],pba->q_size_ncdm_bg[k]*sizeof(double),pba->error_message);
      class_alloc(pba->q_ncdm[k],pba->q_size_ncdm[k]*sizeof(double),pba->error_message);
      class_alloc(pba->w_ncdm[k],pba->q_size_ncdm[k]*sizeof(double),pba->error_message);
      class_call(get_qsampling_manual(pba->q_ncdm[k],
                                      pba->w_ncdm[k],
                                      pba->q_size_ncdm[k],
                                      pba->ncdm_qmax[k],
                                      pba->ncdm_quadrature_strategy[k],
                                      pbadist.q,
                                      pbadist.tablesize,
                                      background_ncdm_distribution,
                                      &pbadist,
                                      pba->error_message),
                 pba->error_message,
                 pba->error_message);
      for (index_q=0; index_q<pba->q_size_ncdm[k]; index_q++) {
        pba->q_ncdm_bg[k][index_q] = pba->q_ncdm[k][index_q];
        pba->w_ncdm_bg[k][index_q] = pba->w_ncdm[k][index_q];
      }
      /** - in verbose mode, inform user of number of sampled momenta
          for background quantities */
      if (pba->background_verbose > 0) {
        printf("ncdm species i=%d sampled with %d points for purpose of background andperturbation integration using the manual method\n",
               k+1,
               pba->q_size_ncdm[k]);
      }
    }

    class_alloc(pba->dlnf0_dlnq_ncdm[k],
                pba->q_size_ncdm[k]*sizeof(double),
                pba->error_message);


    for (index_q=0; index_q<pba->q_size_ncdm[k]; index_q++) {
      q = pba->q_ncdm[k][index_q];
      class_call(background_ncdm_distribution(&pbadist,q,&f0),
                 pba->error_message,pba->error_message);

      //Loop to find appropriate dq:
      for (tolexp=_PSD_DERIVATIVE_EXP_MIN_; tolexp<_PSD_DERIVATIVE_EXP_MAX_; tolexp++) {

        if (index_q == 0) {
          dq = MIN((0.5-ppr->smallest_allowed_variation)*q,2*exp(tolexp)*(pba->q_ncdm[k][index_q+1]-q));
        }
        else if (index_q == pba->q_size_ncdm[k]-1) {
          dq = exp(tolexp)*2.0*(pba->q_ncdm[k][index_q]-pba->q_ncdm[k][index_q-1]);
        }
        else{
          dq = exp(tolexp)*(pba->q_ncdm[k][index_q+1]-pba->q_ncdm[k][index_q-1]);
        }

        class_call(background_ncdm_distribution(&pbadist,q-2*dq,&f0m2),
                   pba->error_message,pba->error_message);
        class_call(background_ncdm_distribution(&pbadist,q+2*dq,&f0p2),
                   pba->error_message,pba->error_message);

        if (fabs((f0p2-f0m2)/f0)>sqrt(ppr->smallest_allowed_variation)) break;
      }

      class_call(background_ncdm_distribution(&pbadist,q-dq,&f0m1),
                 pba->error_message,pba->error_message);
      class_call(background_ncdm_distribution(&pbadist,q+dq,&f0p1),
                 pba->error_message,pba->error_message);
      //5 point estimate of the derivative:
      df0dq = (+f0m2-8*f0m1+8*f0p1-f0p2)/12.0/dq;
      //printf("df0dq[%g] = %g. dlf=%g ?= %g. f0 =%g.\n",q,df0dq,q/f0*df0dq,
      //Avoid underflow in extreme tail:
      if (fabs(f0)==0.)
        pba->dlnf0_dlnq_ncdm[k][index_q] = -q; /* valid for whatever f0 with exponential tail in exp(-q) */
      else
        pba->dlnf0_dlnq_ncdm[k][index_q] = q/f0*df0dq;
    }

    pba->factor_ncdm[k]=pba->deg_ncdm[k]*4*_PI_*pow(pba->T_cmb*pba->T_ncdm[k]*_k_B_,4)*8*_PI_*_G_
      /3./pow(_h_P_/2./_PI_,3)/pow(_c_,7)*_Mpc_over_m_*_Mpc_over_m_;

    /* If allocated, deallocate interpolation table:  */
    if ((pba->got_files!=NULL)&&(pba->got_files[k]==_TRUE_)) {
      free(pbadist.q);
      free(pbadist.f0);
      free(pbadist.d2f0);
    }
  }


  return _SUCCESS_;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x10d8, %rsp           # imm = 0x10D8
movq %rsi, %r15
movq %rdi, %rbx
movq %rsi, 0x40(%rsp)
movl 0x248(%rsi), %ebp
movslq %ebp, %r13
leaq (,%r13,8), %r14
movq %r14, %rdi
callq 0x8490
movq %rax, 0x4e8(%r15)
pushq $0x1
popq %r12
testq %rax, %rax
je 0x5ef13
movq %r14, %rdi
callq 0x8490
movq %rax, 0x4f0(%r15)
testq %rax, %rax
je 0x5ef5a
movq %r14, %rdi
callq 0x8490
movq %rax, 0x4d8(%r15)
testq %rax, %rax
je 0x5efa1
movq %r14, %rdi
callq 0x8490
movq %rax, 0x4e0(%r15)
testq %rax, %rax
je 0x5efe8
movq %r14, %rdi
callq 0x8490
movq %rax, 0x4f8(%r15)
testq %rax, %rax
je 0x5f02f
shlq $0x2, %r13
movq %r13, %rdi
callq 0x8490
movq %rax, 0x508(%r15)
testq %rax, %rax
je 0x5f076
movq %r13, %rdi
callq 0x8490
movq %rax, 0x500(%r15)
testq %rax, %rax
je 0x5f0bd
movq %r14, %rdi
callq 0x8490
movq %rax, 0x510(%r15)
testq %rax, %rax
je 0x5f104
leaq 0xd1c(%r15), %rax
movq %rax, 0x8(%rsp)
pushq $0x1
popq %r12
xorl %r14d, %r14d
xorl %ecx, %ecx
movslq %ebp, %rax
cmpq %rax, %r14
jge 0x5f225
movl %r14d, 0x48(%rsp)
andq $0x0, 0x50(%rsp)
andl $0x0, 0x4c(%rsp)
movq 0x258(%r15), %rax
testq %rax, %rax
movq %r14, 0x10(%rsp)
je 0x5e653
cmpl $0x1, (%rax,%r14,4)
jne 0x5e653
movl %ecx, 0x1c(%rsp)
movl %ecx, %eax
shll $0xa, %eax
movslq %eax, %r14
movq 0x250(%r15), %rdi
addq %r14, %rdi
leaq 0xa5733(%rip), %rsi     # 0x103c64
callq 0x8420
testq %rax, %rax
je 0x5f5b5
movq %rax, %rbp
movq %rbx, 0x20(%rsp)
pushq $-0x8
popq %r14
pushq $-0x1
popq %rbx
pushq $0x2
popq %rax
movq %rbp, %rdi
cmpl $0x2, %eax
jne 0x5e57f
leaq 0xb3822(%rip), %rsi     # 0x111d82
leaq 0xc8(%rsp), %rdx
leaq 0xc0(%rsp), %rcx
xorl %eax, %eax
callq 0x86c0
incl %ebx
addq $0x8, %r14
jmp 0x5e551
callq 0x8060
movl %ebx, 0x4c(%rsp)
movq %r14, %rdi
callq 0x8490
movq %rax, 0x50(%rsp)
testq %rax, %rax
je 0x5f65a
movq %r14, %rdi
callq 0x8490
movq %rax, 0x58(%rsp)
testq %rax, %rax
je 0x5f6dc
movq %r14, %rdi
callq 0x8490
movq %rax, 0x60(%rsp)
testq %rax, %rax
je 0x5f75c
xorl %r14d, %r14d
xorl %r12d, %r12d
movslq %ebx, %rax
cmpq %rax, %r12
jge 0x5e606
movq 0x50(%rsp), %rdx
addq %r14, %rdx
movq 0x58(%rsp), %rcx
addq %r14, %rcx
movq %rbp, %rdi
leaq 0xb3790(%rip), %rsi     # 0x111d82
xorl %eax, %eax
callq 0x86c0
incq %r12
movl 0x4c(%rsp), %ebx
addq $0x8, %r14
jmp 0x5e5d0
movq %rbp, %rdi
callq 0x83c0
movq 0x50(%rsp), %rdi
movl 0x4c(%rsp), %esi
movq 0x58(%rsp), %rdx
movq 0x60(%rsp), %r8
subq $0x8, %rsp
pushq $0x1
popq %r12
movl %r12d, %ecx
movl %r12d, %r9d
pushq 0x10(%rsp)
callq 0x125a5
popq %rcx
popq %rdx
cmpl $0x1, %eax
je 0x5f7ea
movl 0x1c(%rsp), %ecx
incl %ecx
movq 0x20(%rsp), %rbx
movq 0x10(%rsp), %r14
movl %ecx, 0x1c(%rsp)
movq 0x4d0(%r15), %rax
cmpl $0x0, (%rax,%r14,4)
je 0x5e82d
movq 0x2c0(%r15), %rax
movl (%rax,%r14,4), %eax
movq 0x500(%r15), %rcx
movl %eax, (%rcx,%r14,4)
movq 0x508(%r15), %rdx
movl %eax, (%rdx,%r14,4)
movslq (%rcx,%r14,4), %rdi
shlq $0x3, %rdi
callq 0x8490
movq 0x4d8(%r15), %rcx
movq %rax, (%rcx,%r14,8)
movq 0x4d8(%r15), %rax
movq 0x500(%r15), %rcx
cmpq $0x0, (%rax,%r14,8)
movslq (%rcx,%r14,4), %rcx
je 0x5f2fb
shlq $0x3, %rcx
movq %rcx, %rdi
callq 0x8490
movq 0x4e0(%r15), %rcx
movq %rax, (%rcx,%r14,8)
movq 0x4e0(%r15), %rax
cmpq $0x0, (%rax,%r14,8)
je 0x5f33b
movq 0x508(%r15), %rax
movslq (%rax,%r14,4), %rdi
shlq $0x3, %rdi
callq 0x8490
movq 0x4e8(%r15), %rcx
movq %rax, (%rcx,%r14,8)
movq 0x4e8(%r15), %rax
movq 0x508(%r15), %rcx
cmpq $0x0, (%rax,%r14,8)
movslq (%rcx,%r14,4), %rcx
je 0x5f386
shlq $0x3, %rcx
movq %rcx, %rdi
callq 0x8490
movq 0x4f0(%r15), %rcx
movq %rax, (%rcx,%r14,8)
movq 0x4f0(%r15), %rax
movq (%rax,%r14,8), %rsi
testq %rsi, %rsi
je 0x5f3c6
movq 0x4e8(%r15), %rax
movq (%rax,%r14,8), %rdi
movq 0x508(%r15), %rax
movl (%rax,%r14,4), %edx
movq 0x2c8(%r15), %rax
movsd (%rax,%r14,8), %xmm0
movq 0x4d0(%r15), %rax
movl (%rax,%r14,4), %ecx
movq 0x50(%rsp), %r8
movl 0x4c(%rsp), %r9d
subq $0x8, %rsp
pushq 0x10(%rsp)
leaq 0x50(%rsp), %rax
pushq %rax
pushq 0xe4845(%rip)           # 0x142fe0
callq 0x1dd74
addq $0x20, %rsp
cmpl $0x1, %eax
je 0x5f411
movq 0x508(%r15), %rax
movl (%rax,%r14,4), %edx
testl %edx, %edx
movl $0x0, %eax
cmovgl %edx, %eax
xorl %ecx, %ecx
cmpq %rcx, %rax
je 0x5e80e
movq 0x4d8(%r15), %rsi
movq 0x4e8(%r15), %rdi
movq (%rdi,%r14,8), %rdi
movsd (%rdi,%rcx,8), %xmm0
movq (%rsi,%r14,8), %rsi
movsd %xmm0, (%rsi,%rcx,8)
movq 0x4e0(%r15), %rsi
movq 0x4f0(%r15), %rdi
movq (%rdi,%r14,8), %rdi
movsd (%rdi,%rcx,8), %xmm0
movq (%rsi,%r14,8), %rsi
movsd %xmm0, (%rsi,%rcx,8)
incq %rcx
jmp 0x5e7c4
cmpw $0x0, 0xd1a(%r15)
jle 0x5eabc
leal 0x1(%r14), %esi
leaq 0xa424e(%rip), %rdi     # 0x102a76
jmp 0x5eab5
movl $0x7d0, %edi            # imm = 0x7D0
callq 0x8490
movq 0x4e8(%r15), %rcx
movq %rax, (%rcx,%r14,8)
movq 0x4e8(%r15), %rax
cmpq $0x0, (%rax,%r14,8)
je 0x5f454
movl $0x7d0, %edi            # imm = 0x7D0
callq 0x8490
movq 0x4f0(%r15), %rcx
movq %rax, (%rcx,%r14,8)
movq 0x4f0(%r15), %rax
movq (%rax,%r14,8), %rsi
testq %rsi, %rsi
je 0x5f496
movq 0x4e8(%r15), %rax
movq (%rax,%r14,8), %rdi
leaq (,%r14,4), %rbp
movq 0x508(%r15), %rdx
addq %rbp, %rdx
movsd 0x30(%rbx), %xmm0
movq 0x50(%rsp), %r8
movl 0x4c(%rsp), %r9d
movl $0xfa, %ecx
pushq 0x8(%rsp)
leaq 0x48(%rsp), %rax
pushq %rax
pushq 0xe4722(%rip)           # 0x142fe0
pushq 0xe46f4(%rip)           # 0x142fb8
callq 0x1e3ac
addq $0x20, %rsp
cmpl $0x1, %eax
je 0x5f4d8
movq 0x4e8(%r15), %rax
movq 0x508(%r15), %rcx
movq (%rax,%r14,8), %rdi
movslq (%rcx,%r14,4), %rsi
shlq $0x3, %rsi
callq 0x85c0
movq 0x4e8(%r15), %rcx
movq %rax, (%rcx,%r14,8)
movq 0x4e8(%r15), %rax
cmpq $0x0, (%rax,%r14,8)
je 0x5f51b
movq 0x4f0(%r15), %rax
movq 0x508(%r15), %rcx
movq (%rax,%r14,8), %rdi
movslq (%rcx,%r14,4), %rsi
shlq $0x3, %rsi
callq 0x85c0
movq 0x4f0(%r15), %rcx
movq %rax, (%rcx,%r14,8)
movq 0x4f0(%r15), %rax
cmpq $0x0, (%rax,%r14,8)
je 0x5f566
cmpw $0x0, 0xd1a(%r15)
movq 0x10(%rsp), %r14
jle 0x5e97b
movq 0x508(%r15), %rax
movl (%rax,%r14,4), %edx
leal 0x1(%r14), %esi
leaq 0xa3e84(%rip), %rdi     # 0x1027f8
xorl %eax, %eax
callq 0x8030
movl $0x1900, %edi           # imm = 0x1900
callq 0x8490
movq 0x4d8(%r15), %rcx
movq %rax, (%rcx,%r14,8)
movq 0x4d8(%r15), %rax
cmpq $0x0, (%rax,%r14,8)
je 0x5f618
movl $0x1900, %edi           # imm = 0x1900
callq 0x8490
movq 0x4e0(%r15), %rcx
movq %rax, (%rcx,%r14,8)
movq 0x4e0(%r15), %rax
movq (%rax,%r14,8), %rsi
testq %rsi, %rsi
je 0x5f69a
movq 0x4d8(%r15), %rax
addq 0x500(%r15), %rbp
movq (%rax,%r14,8), %rdi
movsd 0x48(%rbx), %xmm0
movq 0x50(%rsp), %r8
movl 0x4c(%rsp), %r9d
movq %rbp, %rdx
movl $0x320, %ecx            # imm = 0x320
pushq 0x8(%rsp)
leaq 0x48(%rsp), %rax
pushq %rax
pushq 0xe45dc(%rip)           # 0x142fe0
pushq 0xe45ae(%rip)           # 0x142fb8
callq 0x1e3ac
addq $0x20, %rsp
cmpl $0x1, %eax
je 0x5f719
movq 0x4d8(%r15), %rax
movq 0x500(%r15), %rcx
movq (%rax,%r14,8), %rdi
movslq (%rcx,%r14,4), %rsi
shlq $0x3, %rsi
callq 0x85c0
movq 0x4d8(%r15), %rcx
movq %rax, (%rcx,%r14,8)
movq 0x4d8(%r15), %rax
cmpq $0x0, (%rax,%r14,8)
je 0x5f79f
movq 0x4e0(%r15), %rax
movq 0x500(%r15), %rcx
movq (%rax,%r14,8), %rdi
movslq (%rcx,%r14,4), %rsi
shlq $0x3, %rsi
callq 0x85c0
movq 0x4e0(%r15), %rcx
movq %rax, (%rcx,%r14,8)
movq 0x4e0(%r15), %rax
cmpq $0x0, (%rax,%r14,8)
je 0x5f82d
cmpw $0x0, 0xd1a(%r15)
jle 0x5eabc
movq 0x500(%r15), %rax
movl (%rax,%r14,4), %edx
leal 0x1(%r14), %esi
leaq 0xa3e98(%rip), %rdi     # 0x10294d
xorl %eax, %eax
callq 0x8030
movq 0x508(%r15), %rax
movslq (%rax,%r14,4), %rdi
shlq $0x3, %rdi
callq 0x8490
movq 0x4f8(%r15), %rcx
movq %rax, (%rcx,%r14,8)
movq 0x4f8(%r15), %rax
cmpq $0x0, (%rax,%r14,8)
je 0x5f22a
xorl %ecx, %ecx
movq 0x508(%r15), %rax
movslq (%rax,%r14,4), %rax
cmpq %rax, %rcx
jge 0x5ee31
movq 0x4e8(%r15), %rax
movq (%rax,%r14,8), %rax
movq %rcx, 0x38(%rsp)
movsd (%rax,%rcx,8), %xmm0
leaq 0x40(%rsp), %rdi
movapd %xmm0, 0x20(%rsp)
leaq 0xa0(%rsp), %rsi
callq 0x5e1e7
testl %eax, %eax
jne 0x5f1e5
pushq $-0x20
popq %rax
movl %eax, %ebp
movq 0x38(%rsp), %r13
testl %ebp, %ebp
je 0x5ed3e
leal 0x2(%rbp), %eax
cvtsi2sd %eax, %xmm1
testq %r13, %r13
je 0x5eba6
movq %rbx, %r12
movq 0x508(%r15), %rax
movq 0x10(%rsp), %r14
movl (%rax,%r14,4), %ebx
decl %ebx
movapd %xmm1, %xmm0
callq 0x86a0
cmpq %rbx, %r13
jne 0x5ec1c
addsd %xmm0, %xmm0
movq 0x4e8(%r15), %rax
movq (%rax,%r14,8), %rax
movsd (%rax,%r13,8), %xmm1
subsd -0x8(%rax,%r13,8), %xmm1
mulsd %xmm0, %xmm1
movapd %xmm1, %xmm0
jmp 0x5ec39
movsd 0x87102(%rip), %xmm0    # 0xe5cb0
subsd 0xa28(%rbx), %xmm0
mulsd 0x20(%rsp), %xmm0
movsd %xmm0, 0x80(%rsp)
movsd %xmm1, 0x70(%rsp)
movapd %xmm1, %xmm0
callq 0x86a0
movapd 0x20(%rsp), %xmm2
addsd %xmm0, %xmm0
movq 0x4e8(%r15), %rax
movq 0x10(%rsp), %r14
movq (%rax,%r14,8), %rax
movsd 0x8(%rax), %xmm1
subsd %xmm2, %xmm1
mulsd %xmm0, %xmm1
ucomisd 0x80(%rsp), %xmm1
jbe 0x5ec48
movsd 0x870a2(%rip), %xmm0    # 0xe5cb0
subsd 0xa28(%rbx), %xmm0
mulsd %xmm2, %xmm0
jmp 0x5ec79
movq 0x4e8(%r15), %rax
movq (%rax,%r14,8), %rax
movsd 0x8(%rax,%r13,8), %xmm1
subsd -0x8(%rax,%r13,8), %xmm1
mulsd %xmm1, %xmm0
movq %r12, %rbx
pushq $0x1
popq %r12
movapd 0x20(%rsp), %xmm2
jmp 0x5ec79
movsd 0x70(%rsp), %xmm0
callq 0x86a0
movapd 0x20(%rsp), %xmm2
addsd %xmm0, %xmm0
movq 0x4e8(%r15), %rax
movq (%rax,%r14,8), %rax
movsd 0x8(%rax), %xmm1
subsd %xmm2, %xmm1
mulsd %xmm0, %xmm1
movapd %xmm1, %xmm0
movapd %xmm0, 0x70(%rsp)
movapd %xmm0, %xmm1
addsd %xmm0, %xmm1
movapd %xmm2, %xmm0
movsd %xmm1, 0x80(%rsp)
subsd %xmm1, %xmm0
leaq 0x40(%rsp), %rdi
leaq 0xa8(%rsp), %rsi
callq 0x5e1e7
testl %eax, %eax
jne 0x5f148
movsd 0x80(%rsp), %xmm0
addsd 0x20(%rsp), %xmm0
leaq 0x40(%rsp), %rdi
leaq 0x98(%rsp), %rsi
callq 0x5e1e7
testl %eax, %eax
jne 0x5f188
movsd 0x98(%rsp), %xmm1
subsd 0xa8(%rsp), %xmm1
divsd 0xa0(%rsp), %xmm1
movsd 0xa28(%rbx), %xmm0
ucomisd 0x86552(%rip), %xmm0    # 0xe5258
jb 0x5ed0e
sqrtsd %xmm0, %xmm0
jmp 0x5ed25
movapd %xmm1, 0x80(%rsp)
callq 0x82d0
movapd 0x80(%rsp), %xmm1
movq 0x38(%rsp), %r13
andpd 0x8650e(%rip), %xmm1    # 0xe5240
incl %ebp
ucomisd %xmm0, %xmm1
jbe 0x5eb42
movapd 0x20(%rsp), %xmm0
subsd 0x70(%rsp), %xmm0
leaq 0x40(%rsp), %rdi
leaq 0xb8(%rsp), %rsi
callq 0x5e1e7
testl %eax, %eax
jne 0x5f275
movapd 0x20(%rsp), %xmm0
addsd 0x70(%rsp), %xmm0
leaq 0x40(%rsp), %rdi
leaq 0xb0(%rsp), %rsi
callq 0x5e1e7
testl %eax, %eax
jne 0x5f2b8
movsd 0xa0(%rsp), %xmm0
ucomisd 0x864bd(%rip), %xmm0    # 0xe5258
jne 0x5edaf
jp 0x5edaf
movapd 0x20(%rsp), %xmm1
xorpd 0x86483(%rip), %xmm1    # 0xe5230
jmp 0x5ee0f
movsd 0xb8(%rsp), %xmm1
mulsd 0xa2c08(%rip), %xmm1    # 0x1019c8
addsd 0xa8(%rsp), %xmm1
movsd 0xb0(%rsp), %xmm2
mulsd 0x89656(%rip), %xmm2    # 0xe8430
addsd %xmm1, %xmm2
subsd 0x98(%rsp), %xmm2
divsd 0xa2be1(%rip), %xmm2    # 0x1019d0
movapd 0x20(%rsp), %xmm1
unpcklpd %xmm2, %xmm1            # xmm1 = xmm1[0],xmm2[0]
unpcklpd 0x70(%rsp), %xmm0       # xmm0 = xmm0[0],mem[0]
divpd %xmm0, %xmm1
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
mulsd %xmm0, %xmm1
movq 0x10(%rsp), %r14
movq 0x38(%rsp), %rcx
movq 0x4f8(%r15), %rax
movq (%rax,%r14,8), %rax
movsd %xmm1, (%rax,%rcx,8)
incq %rcx
jmp 0x5eaef
movq 0x2b0(%r15), %rax
movsd (%rax,%r14,8), %xmm2
movsd 0x895b2(%rip), %xmm1    # 0xe83f8
mulsd %xmm1, %xmm2
movsd 0x89146(%rip), %xmm0    # 0xe7f98
mulsd %xmm0, %xmm2
movsd %xmm2, 0x20(%rsp)
movsd 0x18(%r15), %xmm0
movq 0x290(%r15), %rax
mulsd (%rax,%r14,8), %xmm0
mulsd 0x8ac89(%rip), %xmm0    # 0xe9b00
callq 0x8650
mulsd 0x20(%rsp), %xmm0
mulsd 0x895a6(%rip), %xmm0    # 0xe8430
mulsd 0x89106(%rip), %xmm0    # 0xe7f98
mulsd 0x8ab1e(%rip), %xmm0    # 0xe99b8
divsd 0x878a6(%rip), %xmm0    # 0xe6748
divsd 0xa2b0e(%rip), %xmm0    # 0x1019b8
divsd 0xa2b0e(%rip), %xmm0    # 0x1019c0
movsd 0x8aaee(%rip), %xmm1    # 0xe99a8
mulsd %xmm1, %xmm0
mulsd %xmm1, %xmm0
movq 0x510(%r15), %rax
movsd %xmm0, (%rax,%r14,8)
movq 0x258(%r15), %rax
testq %rax, %rax
je 0x5ef00
cmpl $0x1, (%rax,%r14,4)
jne 0x5ef00
movq 0x50(%rsp), %rdi
callq 0x8430
movq 0x58(%rsp), %rdi
callq 0x8430
movq 0x60(%rsp), %rdi
callq 0x8430
incq %r14
movl 0x248(%r15), %ebp
movl 0x1c(%rsp), %ecx
jmp 0x5e4d8
shll $0x3, %ebp
leaq 0x860e7(%rip), %rsi     # 0xe5004
leaq 0xa3698(%rip), %rdx     # 0x1025bc
leaq 0xd0(%rsp), %r14
movq %r14, %rdi
movl %ebp, %ecx
xorl %eax, %eax
callq 0x2e014
addq $0xd1c, %r15            # imm = 0xD1C
leaq 0x860ee(%rip), %rsi     # 0xe5034
leaq 0xa367b(%rip), %rdx     # 0x1025c8
movq %r15, %rdi
movl $0x6d0, %ecx            # imm = 0x6D0
jmp 0x5f1c6
shll $0x3, %ebp
leaq 0x860a0(%rip), %rsi     # 0xe5004
leaq 0xa3672(%rip), %rdx     # 0x1025dd
leaq 0xd0(%rsp), %r14
movq %r14, %rdi
movl %ebp, %ecx
xorl %eax, %eax
callq 0x2e014
addq $0xd1c, %r15            # imm = 0xD1C
leaq 0x860a7(%rip), %rsi     # 0xe5034
leaq 0xa3634(%rip), %rdx     # 0x1025c8
movq %r15, %rdi
movl $0x6d1, %ecx            # imm = 0x6D1
jmp 0x5f1c6
shll $0x3, %ebp
leaq 0x86059(%rip), %rsi     # 0xe5004
leaq 0xa3637(%rip), %rdx     # 0x1025e9
leaq 0xd0(%rsp), %r14
movq %r14, %rdi
movl %ebp, %ecx
xorl %eax, %eax
callq 0x2e014
addq $0xd1c, %r15            # imm = 0xD1C
leaq 0x86060(%rip), %rsi     # 0xe5034
leaq 0xa35ed(%rip), %rdx     # 0x1025c8
movq %r15, %rdi
movl $0x6d2, %ecx            # imm = 0x6D2
jmp 0x5f1c6
shll $0x3, %ebp
leaq 0x86012(%rip), %rsi     # 0xe5004
leaq 0xa35ff(%rip), %rdx     # 0x1025f8
leaq 0xd0(%rsp), %r14
movq %r14, %rdi
movl %ebp, %ecx
xorl %eax, %eax
callq 0x2e014
addq $0xd1c, %r15            # imm = 0xD1C
leaq 0x86019(%rip), %rsi     # 0xe5034
leaq 0xa35a6(%rip), %rdx     # 0x1025c8
movq %r15, %rdi
movl $0x6d3, %ecx            # imm = 0x6D3
jmp 0x5f1c6
shll $0x3, %ebp
leaq 0x85fcb(%rip), %rsi     # 0xe5004
leaq 0xa35c7(%rip), %rdx     # 0x102607
leaq 0xd0(%rsp), %r14
movq %r14, %rdi
movl %ebp, %ecx
xorl %eax, %eax
callq 0x2e014
addq $0xd1c, %r15            # imm = 0xD1C
leaq 0x85fd2(%rip), %rsi     # 0xe5034
leaq 0xa355f(%rip), %rdx     # 0x1025c8
movq %r15, %rdi
movl $0x6d4, %ecx            # imm = 0x6D4
jmp 0x5f1c6
shll $0x2, %ebp
leaq 0x85f84(%rip), %rsi     # 0xe5004
leaq 0xa3595(%rip), %rdx     # 0x10261c
leaq 0xd0(%rsp), %r14
movq %r14, %rdi
movl %ebp, %ecx
xorl %eax, %eax
callq 0x2e014
addq $0xd1c, %r15            # imm = 0xD1C
leaq 0x85f8b(%rip), %rsi     # 0xe5034
leaq 0xa3518(%rip), %rdx     # 0x1025c8
movq %r15, %rdi
movl $0x6d7, %ecx            # imm = 0x6D7
jmp 0x5f1c6
shll $0x2, %ebp
leaq 0x85f3d(%rip), %rsi     # 0xe5004
leaq 0xa355f(%rip), %rdx     # 0x10262d
leaq 0xd0(%rsp), %r14
movq %r14, %rdi
movl %ebp, %ecx
xorl %eax, %eax
callq 0x2e014
addq $0xd1c, %r15            # imm = 0xD1C
leaq 0x85f44(%rip), %rsi     # 0xe5034
leaq 0xa34d1(%rip), %rdx     # 0x1025c8
movq %r15, %rdi
movl $0x6d8, %ecx            # imm = 0x6D8
jmp 0x5f1c6
shll $0x3, %ebp
leaq 0x85ef6(%rip), %rsi     # 0xe5004
leaq 0xa352c(%rip), %rdx     # 0x102641
leaq 0xd0(%rsp), %r14
movq %r14, %rdi
movl %ebp, %ecx
xorl %eax, %eax
callq 0x2e014
addq $0xd1c, %r15            # imm = 0xD1C
leaq 0x85efd(%rip), %rsi     # 0xe5034
leaq 0xa348a(%rip), %rdx     # 0x1025c8
movq %r15, %rdi
movl $0x6d9, %ecx            # imm = 0x6D9
jmp 0x5f1c6
leaq 0x862a1(%rip), %rsi     # 0xe53f0
leaq 0xa39dd(%rip), %rdx     # 0x102b33
leaq 0xd0(%rsp), %r14
movq %r14, %rdi
movq 0x8(%rsp), %rbx
movq %rbx, %rcx
xorl %eax, %eax
callq 0x2e014
leaq 0x85ebd(%rip), %rsi     # 0xe5034
leaq 0xa344a(%rip), %rdx     # 0x1025c8
movq %rbx, %rdi
movl $0x774, %ecx            # imm = 0x774
jmp 0x5f1c6
leaq 0x86261(%rip), %rsi     # 0xe53f0
leaq 0xa39d1(%rip), %rdx     # 0x102b67
leaq 0xd0(%rsp), %r14
movq %r14, %rdi
movq 0x8(%rsp), %rbx
movq %rbx, %rcx
xorl %eax, %eax
callq 0x2e014
leaq 0x85e7d(%rip), %rsi     # 0xe5034
leaq 0xa340a(%rip), %rdx     # 0x1025c8
movq %rbx, %rdi
movl $0x776, %ecx            # imm = 0x776
movq %r14, %r8
xorl %eax, %eax
callq 0x2e014
movl %r12d, %eax
addq $0x10d8, %rsp           # imm = 0x10D8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x86204(%rip), %rsi     # 0xe53f0
leaq 0xa3913(%rip), %rdx     # 0x102b06
leaq 0xd0(%rsp), %r14
movq %r14, %rdi
movq 0x8(%rsp), %rbx
movq %rbx, %rcx
xorl %eax, %eax
callq 0x2e014
leaq 0x85e20(%rip), %rsi     # 0xe5034
leaq 0xa33ad(%rip), %rdx     # 0x1025c8
movq %rbx, %rdi
movl $0x764, %ecx            # imm = 0x764
jmp 0x5f1c6
xorl %r12d, %r12d
jmp 0x5f1d0
movq 0x508(%r15), %rax
movl (%rax,%r14,4), %ecx
shll $0x3, %ecx
leaq 0x85dc5(%rip), %rsi     # 0xe5004
leaq 0xa38a8(%rip), %rdx     # 0x102aee
leaq 0xd0(%rsp), %r14
movq %r14, %rdi
xorl %eax, %eax
callq 0x2e014
leaq 0x85dd5(%rip), %rsi     # 0xe5034
leaq 0xa3362(%rip), %rdx     # 0x1025c8
movq 0x8(%rsp), %rdi
movl $0x75e, %ecx            # imm = 0x75E
jmp 0x5f1c6
leaq 0x86174(%rip), %rsi     # 0xe53f0
leaq 0xa3918(%rip), %rdx     # 0x102b9b
leaq 0xd0(%rsp), %r14
movq %r14, %rdi
movq 0x8(%rsp), %rbx
movq %rbx, %rcx
xorl %eax, %eax
callq 0x2e014
leaq 0x85d90(%rip), %rsi     # 0xe5034
leaq 0xa331d(%rip), %rdx     # 0x1025c8
movq %rbx, %rdi
movl $0x77c, %ecx            # imm = 0x77C
jmp 0x5f1c6
leaq 0x86131(%rip), %rsi     # 0xe53f0
leaq 0xa3907(%rip), %rdx     # 0x102bcd
leaq 0xd0(%rsp), %r14
movq %r14, %rdi
movq 0x8(%rsp), %rbx
movq %rbx, %rcx
xorl %eax, %eax
callq 0x2e014
leaq 0x85d4d(%rip), %rsi     # 0xe5034
leaq 0xa32da(%rip), %rdx     # 0x1025c8
movq %rbx, %rdi
movl $0x77e, %ecx            # imm = 0x77E
jmp 0x5f1c6
shll $0x3, %ecx
leaq 0x85cff(%rip), %rsi     # 0xe5004
leaq 0xa353e(%rip), %rdx     # 0x10284a
leaq 0xd0(%rsp), %r14
movq %r14, %rdi
xorl %eax, %eax
callq 0x2e014
leaq 0x85d0f(%rip), %rsi     # 0xe5034
leaq 0xa329c(%rip), %rdx     # 0x1025c8
movq 0x8(%rsp), %rdi
movl $0x73f, %ecx            # imm = 0x73F
jmp 0x5f1c6
movq 0x500(%r15), %rax
movl (%rax,%r14,4), %ecx
shll $0x3, %ecx
leaq 0x85cb4(%rip), %rsi     # 0xe5004
leaq 0xa3505(%rip), %rdx     # 0x10285c
leaq 0xd0(%rsp), %r14
movq %r14, %rdi
xorl %eax, %eax
callq 0x2e014
leaq 0x85cc4(%rip), %rsi     # 0xe5034
leaq 0xa3251(%rip), %rdx     # 0x1025c8
movq 0x8(%rsp), %rdi
movl $0x740, %ecx            # imm = 0x740
jmp 0x5f1c6
shll $0x3, %ecx
leaq 0x85c74(%rip), %rsi     # 0xe5004
leaq 0xa3370(%rip), %rdx     # 0x102707
leaq 0xd0(%rsp), %r14
movq %r14, %rdi
xorl %eax, %eax
callq 0x2e014
leaq 0x85c84(%rip), %rsi     # 0xe5034
leaq 0xa3211(%rip), %rdx     # 0x1025c8
movq 0x8(%rsp), %rdi
movl $0x741, %ecx            # imm = 0x741
jmp 0x5f1c6
movq 0x508(%r15), %rax
movl (%rax,%r14,4), %ecx
shll $0x3, %ecx
leaq 0x85c29(%rip), %rsi     # 0xe5004
leaq 0xa3334(%rip), %rdx     # 0x102716
leaq 0xd0(%rsp), %r14
movq %r14, %rdi
xorl %eax, %eax
callq 0x2e014
leaq 0x85c39(%rip), %rsi     # 0xe5034
leaq 0xa31c6(%rip), %rdx     # 0x1025c8
movq 0x8(%rsp), %rdi
movl $0x742, %ecx            # imm = 0x742
jmp 0x5f1c6
leaq 0x85fd8(%rip), %rsi     # 0xe53f0
leaq 0xa357e(%rip), %rdx     # 0x10299d
leaq 0xd0(%rsp), %r14
movq %r14, %rdi
movq 0x8(%rsp), %rbx
movq %rbx, %rcx
xorl %eax, %eax
callq 0x2e014
leaq 0x85bf4(%rip), %rsi     # 0xe5034
leaq 0xa3181(%rip), %rdx     # 0x1025c8
movq %rbx, %rdi
movl $0x74e, %ecx            # imm = 0x74E
jmp 0x5f1c6
leaq 0x85ba9(%rip), %rsi     # 0xe5004
leaq 0xa32a5(%rip), %rdx     # 0x102707
leaq 0xd0(%rsp), %r14
movq %r14, %rdi
movl $0x7d0, %ecx            # imm = 0x7D0
xorl %eax, %eax
callq 0x2e014
leaq 0x85bb4(%rip), %rsi     # 0xe5034
leaq 0xa3141(%rip), %rdx     # 0x1025c8
movq 0x8(%rsp), %rdi
movl $0x705, %ecx            # imm = 0x705
jmp 0x5f1c6
leaq 0x85b67(%rip), %rsi     # 0xe5004
leaq 0xa3272(%rip), %rdx     # 0x102716
leaq 0xd0(%rsp), %r14
movq %r14, %rdi
movl $0x7d0, %ecx            # imm = 0x7D0
xorl %eax, %eax
callq 0x2e014
leaq 0x85b72(%rip), %rsi     # 0xe5034
leaq 0xa30ff(%rip), %rdx     # 0x1025c8
movq 0x8(%rsp), %rdi
movl $0x706, %ecx            # imm = 0x706
jmp 0x5f1c6
leaq 0x85f11(%rip), %rsi     # 0xe53f0
leaq 0xa323f(%rip), %rdx     # 0x102725
leaq 0xd0(%rsp), %r14
movq %r14, %rdi
movq 0x8(%rsp), %rbx
movq %rbx, %rcx
xorl %eax, %eax
callq 0x2e014
leaq 0x85b2d(%rip), %rsi     # 0xe5034
leaq 0xa30ba(%rip), %rdx     # 0x1025c8
movq %rbx, %rdi
movl $0x714, %ecx            # imm = 0x714
jmp 0x5f1c6
movq 0x508(%r15), %rax
movl (%rax,%r14,4), %ecx
shll $0x3, %ecx
leaq 0x85ad4(%rip), %rsi     # 0xe5004
leaq 0xa31d0(%rip), %rdx     # 0x102707
leaq 0xd0(%rsp), %r14
movq %r14, %rdi
xorl %eax, %eax
callq 0x2e014
leaq 0x85ae4(%rip), %rsi     # 0xe5034
leaq 0xa3071(%rip), %rdx     # 0x1025c8
movq 0x8(%rsp), %rdi
movl $0x715, %ecx            # imm = 0x715
jmp 0x5f1c6
movq 0x508(%r15), %rax
movq 0x10(%rsp), %rcx
movl (%rax,%rcx,4), %ecx
shll $0x3, %ecx
leaq 0x85a85(%rip), %rsi     # 0xe5004
leaq 0xa3190(%rip), %rdx     # 0x102716
leaq 0xd0(%rsp), %r14
movq %r14, %rdi
xorl %eax, %eax
callq 0x2e014
leaq 0x85a95(%rip), %rsi     # 0xe5034
leaq 0xa3022(%rip), %rdx     # 0x1025c8
movq 0x8(%rsp), %rdi
movl $0x716, %ecx            # imm = 0x716
jmp 0x5f1c6
addq 0x250(%r15), %r14
leaq 0xa308f(%rip), %rsi     # 0x102652
leaq 0xd0(%rsp), %r15
movq %r15, %rdi
movq %r14, %rdx
xorl %eax, %eax
callq 0x2e014
leaq 0x85aa3(%rip), %rsi     # 0xe5082
leaq 0xa3084(%rip), %rdx     # 0x10266a
leaq 0x8d0(%rsp), %r14
movq %r14, %rdi
movq %r15, %rcx
xorl %eax, %eax
callq 0x2e014
leaq 0x85a32(%rip), %rsi     # 0xe5034
leaq 0xa2fbf(%rip), %rdx     # 0x1025c8
movq 0x8(%rsp), %rdi
movl $0x6e3, %ecx            # imm = 0x6E3
jmp 0x5f1c6
leaq 0x859e5(%rip), %rsi     # 0xe5004
leaq 0xa3224(%rip), %rdx     # 0x10284a
leaq 0xd0(%rsp), %r14
movq %r14, %rdi
movl $0x1900, %ecx           # imm = 0x1900
xorl %eax, %eax
callq 0x2e014
leaq 0x859f0(%rip), %rsi     # 0xe5034
leaq 0xa2f7d(%rip), %rdx     # 0x1025c8
movq 0x8(%rsp), %rdi
movl $0x71f, %ecx            # imm = 0x71F
jmp 0x5f1c6
leaq 0x859a3(%rip), %rsi     # 0xe5004
leaq 0xa3012(%rip), %rdx     # 0x10267a
leaq 0xd0(%rsp), %r15
movq %r15, %rdi
movl %r14d, %ecx
xorl %eax, %eax
callq 0x2e014
leaq 0x859b0(%rip), %rsi     # 0xe5034
leaq 0xa2f3d(%rip), %rdx     # 0x1025c8
movq 0x8(%rsp), %rdi
movl $0x6ec, %ecx            # imm = 0x6EC
jmp 0x5f797
leaq 0x85963(%rip), %rsi     # 0xe5004
leaq 0xa31b4(%rip), %rdx     # 0x10285c
leaq 0xd0(%rsp), %r14
movq %r14, %rdi
movl $0x1900, %ecx           # imm = 0x1900
xorl %eax, %eax
callq 0x2e014
leaq 0x8596e(%rip), %rsi     # 0xe5034
leaq 0xa2efb(%rip), %rdx     # 0x1025c8
movq 0x8(%rsp), %rdi
movl $0x720, %ecx            # imm = 0x720
jmp 0x5f1c6
leaq 0x85921(%rip), %rsi     # 0xe5004
leaq 0xa2f9a(%rip), %rdx     # 0x102684
leaq 0xd0(%rsp), %r15
movq %r15, %rdi
movl %r14d, %ecx
xorl %eax, %eax
callq 0x2e014
leaq 0x8592e(%rip), %rsi     # 0xe5034
leaq 0xa2ebb(%rip), %rdx     # 0x1025c8
movq 0x8(%rsp), %rdi
movl $0x6ed, %ecx            # imm = 0x6ED
jmp 0x5f797
leaq 0x85cd0(%rip), %rsi     # 0xe53f0
leaq 0xa3147(%rip), %rdx     # 0x10286e
leaq 0xd0(%rsp), %r14
movq %r14, %rdi
movq 0x8(%rsp), %rbx
movq %rbx, %rcx
xorl %eax, %eax
callq 0x2e014
leaq 0x858ec(%rip), %rsi     # 0xe5034
leaq 0xa2e79(%rip), %rdx     # 0x1025c8
movq %rbx, %rdi
movl $0x72e, %ecx            # imm = 0x72E
jmp 0x5f1c6
leaq 0x858a1(%rip), %rsi     # 0xe5004
leaq 0xa2f25(%rip), %rdx     # 0x10268f
leaq 0xd0(%rsp), %r15
movq %r15, %rdi
movl %r14d, %ecx
xorl %eax, %eax
callq 0x2e014
leaq 0x858ae(%rip), %rsi     # 0xe5034
leaq 0xa2e3b(%rip), %rdx     # 0x1025c8
movq 0x8(%rsp), %rdi
movl $0x6ee, %ecx            # imm = 0x6EE
movq %r15, %r8
jmp 0x5f1c9
movq 0x500(%r15), %rax
movl (%rax,%r14,4), %ecx
shll $0x3, %ecx
leaq 0x85850(%rip), %rsi     # 0xe5004
leaq 0xa308f(%rip), %rdx     # 0x10284a
leaq 0xd0(%rsp), %r14
movq %r14, %rdi
xorl %eax, %eax
callq 0x2e014
leaq 0x85860(%rip), %rsi     # 0xe5034
leaq 0xa2ded(%rip), %rdx     # 0x1025c8
movq 0x8(%rsp), %rdi
movl $0x730, %ecx            # imm = 0x730
jmp 0x5f1c6
leaq 0x85bff(%rip), %rsi     # 0xe53f0
leaq 0xa2ea4(%rip), %rdx     # 0x10269c
leaq 0xd0(%rsp), %r14
movq %r14, %rdi
movq 0x8(%rsp), %rbx
movq %rbx, %rcx
xorl %eax, %eax
callq 0x2e014
leaq 0x8581b(%rip), %rsi     # 0xe5034
leaq 0xa2da8(%rip), %rdx     # 0x1025c8
movq %rbx, %rdi
movl $0x6fe, %ecx            # imm = 0x6FE
jmp 0x5f1c6
movq 0x500(%r15), %rax
movl (%rax,%r14,4), %ecx
shll $0x3, %ecx
leaq 0x857c2(%rip), %rsi     # 0xe5004
leaq 0xa3013(%rip), %rdx     # 0x10285c
leaq 0xd0(%rsp), %r14
movq %r14, %rdi
xorl %eax, %eax
callq 0x2e014
leaq 0x857d2(%rip), %rsi     # 0xe5034
leaq 0xa2d5f(%rip), %rdx     # 0x1025c8
movq 0x8(%rsp), %rdi
movl $0x731, %ecx            # imm = 0x731
jmp 0x5f1c6