// File: /workspace/github_c_makefile_star2_O1/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 $0x10c8, %rsp           # imm = 0x10C8
movq %rsi, %r14
movq %rdi, %r15
movq %rsi, 0x28(%rsp)
movslq 0x248(%rsi), %rbx
leaq (,%rbx,8), %r12
movq %r12, %rdi
callq 0x8460
movq %rax, 0x4e8(%r14)
testq %rax, %rax
je 0x656ea
movq %r12, %rdi
callq 0x8460
movq %rax, 0x4f0(%r14)
testq %rax, %rax
je 0x65731
movq %r12, %rdi
callq 0x8460
movq %rax, 0x4d8(%r14)
testq %rax, %rax
je 0x65778
movq %r12, %rdi
callq 0x8460
movq %rax, 0x4e0(%r14)
testq %rax, %rax
je 0x657bf
movq %r12, %rdi
callq 0x8460
movq %rax, 0x4f8(%r14)
testq %rax, %rax
je 0x65806
leaq (,%rbx,4), %r13
movq %r13, %rdi
callq 0x8460
movq %rax, 0x508(%r14)
testq %rax, %rax
je 0x6584d
movq %r13, %rdi
callq 0x8460
movq %rax, 0x500(%r14)
testq %rax, %rax
je 0x65894
movq %r12, %rdi
callq 0x8460
movq %rax, 0x510(%r14)
testq %rax, %rax
je 0x658d8
cmpl $0x0, 0x248(%r14)
jle 0x6593b
movq %r15, 0x58(%rsp)
leaq 0xd1c(%r14), %r12
leaq -0x2fc(%rip), %r13      # 0x649c7
xorl %ebx, %ebx
movl $0x0, 0x24(%rsp)
movq %r12, 0x8(%rsp)
movl %ebx, 0x30(%rsp)
movq $0x0, 0x38(%rsp)
movl $0x0, 0x34(%rsp)
movq 0x258(%r14), %rax
testq %rax, %rax
je 0x64e56
cmpl $0x1, (%rax,%rbx,4)
jne 0x64e56
movl 0x24(%rsp), %eax
shll $0xa, %eax
movslq %eax, %r13
movq 0x250(%r14), %rdi
addq %r13, %rdi
leaq 0xab068(%rip), %rsi     # 0x10fd84
callq 0x8400
testq %rax, %rax
je 0x65cdb
movq %rax, %rbp
movq %rbx, 0x10(%rsp)
movq $-0x8, %r13
movl $0xffffffff, %r12d      # imm = 0xFFFFFFFF
leaq 0xb8(%rsp), %r15
leaq 0xb0(%rsp), %rbx
movq %rbp, %rdi
leaq 0xb9149(%rip), %rsi     # 0x11dea2
movq %r15, %rdx
movq %rbx, %rcx
xorl %eax, %eax
callq 0x8690
addq $0x8, %r13
incl %r12d
cmpl $0x2, %eax
je 0x64d4f
movq %rbp, %rdi
callq 0x8060
movl %r12d, 0x34(%rsp)
movq %r13, %rdi
callq 0x8460
movq %rax, 0x38(%rsp)
testq %rax, %rax
je 0x65d81
movq %r13, %rdi
callq 0x8460
movq %rax, 0x40(%rsp)
testq %rax, %rax
je 0x65e01
movq %r13, %rdi
callq 0x8460
movq %rax, 0x48(%rsp)
testq %rax, %rax
je 0x65e7f
cmpl $0x0, 0x34(%rsp)
leaq 0xb90d5(%rip), %rbx     # 0x11dea2
jle 0x64e03
xorl %r12d, %r12d
xorl %r13d, %r13d
movq 0x38(%rsp), %rdx
addq %r12, %rdx
movq 0x40(%rsp), %rcx
addq %r12, %rcx
movq %rbp, %rdi
movq %rbx, %rsi
xorl %eax, %eax
callq 0x8690
incq %r13
movslq 0x34(%rsp), %rax
addq $0x8, %r12
cmpq %rax, %r13
jl 0x64dd5
movq %rbp, %rdi
callq 0x83a0
movq 0x38(%rsp), %rdi
movl 0x34(%rsp), %esi
movq 0x40(%rsp), %rdx
movq 0x48(%rsp), %r8
subq $0x8, %rsp
movl $0x1, %ecx
movl $0x1, %r9d
movq 0x10(%rsp), %r12
pushq %r12
callq 0x14191
addq $0x10, %rsp
cmpl $0x1, %eax
movq 0x10(%rsp), %rbx
je 0x65f07
incl 0x24(%rsp)
leaq -0x48f(%rip), %r13      # 0x649c7
movq 0x4d0(%r14), %rax
cmpl $0x0, (%rax,%rbx,4)
je 0x6501f
movq 0x2c0(%r14), %rax
movl (%rax,%rbx,4), %ecx
movq 0x500(%r14), %rdx
movl %ecx, (%rdx,%rbx,4)
movl (%rax,%rbx,4), %eax
movq 0x508(%r14), %rcx
movl %eax, (%rcx,%rbx,4)
movslq (%rdx,%rbx,4), %rdi
shlq $0x3, %rdi
callq 0x8460
movq 0x4d8(%r14), %rcx
movq %rax, (%rcx,%rbx,8)
movq 0x4d8(%r14), %rax
movq 0x500(%r14), %rcx
cmpq $0x0, (%rax,%rbx,8)
movslq (%rcx,%rbx,4), %rcx
je 0x65a43
shlq $0x3, %rcx
movq %rcx, %rdi
callq 0x8460
movq 0x4e0(%r14), %rcx
movq %rax, (%rcx,%rbx,8)
movq 0x4e0(%r14), %rax
cmpq $0x0, (%rax,%rbx,8)
je 0x65a81
movq 0x508(%r14), %rax
movslq (%rax,%rbx,4), %rdi
shlq $0x3, %rdi
callq 0x8460
movq 0x4e8(%r14), %rcx
movq %rax, (%rcx,%rbx,8)
movq 0x4e8(%r14), %rax
movq 0x508(%r14), %rcx
cmpq $0x0, (%rax,%rbx,8)
movslq (%rcx,%rbx,4), %rcx
je 0x65ac9
shlq $0x3, %rcx
movq %rcx, %rdi
callq 0x8460
movq 0x4f0(%r14), %rcx
movq %rax, (%rcx,%rbx,8)
movq 0x4f0(%r14), %rax
movq (%rax,%rbx,8), %rsi
testq %rsi, %rsi
je 0x65b07
movq 0x4e8(%r14), %rax
movq (%rax,%rbx,8), %rdi
movq 0x508(%r14), %rax
movl (%rax,%rbx,4), %edx
movq 0x2c8(%r14), %rax
movsd (%rax,%rbx,8), %xmm0
movq 0x4d0(%r14), %rax
movl (%rax,%rbx,4), %ecx
movq 0x38(%rsp), %r8
movl 0x34(%rsp), %r9d
subq $0x8, %rsp
pushq %r12
leaq 0x38(%rsp), %rax
pushq %rax
pushq %r13
callq 0x1fea8
addq $0x20, %rsp
cmpl $0x1, %eax
je 0x65b4f
movq 0x508(%r14), %rax
movslq (%rax,%rbx,4), %rdx
testq %rdx, %rdx
jle 0x65001
movq 0x4e8(%r14), %rax
movq (%rax,%rbx,8), %rax
movq 0x4d8(%r14), %rcx
movq 0x4e0(%r14), %rdi
movq (%rcx,%rbx,8), %rcx
movq 0x4f0(%r14), %rsi
movq (%rsi,%rbx,8), %rsi
movq (%rdi,%rbx,8), %rdi
xorl %r8d, %r8d
movsd (%rax,%r8,8), %xmm0
movsd %xmm0, (%rcx,%r8,8)
movsd (%rsi,%r8,8), %xmm0
movsd %xmm0, (%rdi,%r8,8)
incq %r8
cmpq %r8, %rdx
jne 0x64fe1
cmpw $0x0, 0xd1a(%r14)
jle 0x652a3
leal 0x1(%rbx), %esi
leaq 0xa9b7c(%rip), %rdi     # 0x10eb96
jmp 0x6529c
movl $0x7d0, %edi            # imm = 0x7D0
callq 0x8460
movq 0x4e8(%r14), %rcx
movq %rax, (%rcx,%rbx,8)
movq 0x4e8(%r14), %rax
cmpq $0x0, (%rax,%rbx,8)
je 0x65b8d
movl $0x7d0, %edi            # imm = 0x7D0
callq 0x8460
movq 0x4f0(%r14), %rcx
movq %rax, (%rcx,%rbx,8)
movq 0x4f0(%r14), %rax
movq (%rax,%rbx,8), %rsi
testq %rsi, %rsi
je 0x65bcd
movq 0x4e8(%r14), %rax
movq (%rax,%rbx,8), %rdi
leaq (,%rbx,4), %rbp
movq 0x508(%r14), %rdx
addq %rbp, %rdx
movq 0x58(%rsp), %rax
movsd 0x30(%rax), %xmm0
movq 0x38(%rsp), %r8
movl 0x34(%rsp), %r9d
movl $0xfa, %ecx
pushq %r12
leaq 0x30(%rsp), %rax
pushq %rax
pushq %r13
pushq 0xe6f0b(%rip)           # 0x14bfc0
callq 0x204f3
addq $0x20, %rsp
cmpl $0x1, %eax
je 0x65c0d
movq 0x4e8(%r14), %rax
movq 0x508(%r14), %rcx
movq (%rax,%rbx,8), %rdi
movslq (%rcx,%rbx,4), %rsi
shlq $0x3, %rsi
callq 0x8590
movq 0x4e8(%r14), %rcx
movq %rax, (%rcx,%rbx,8)
movq 0x4e8(%r14), %rax
cmpq $0x0, (%rax,%rbx,8)
je 0x65c4b
movq 0x4f0(%r14), %rax
movq 0x508(%r14), %rcx
movq (%rax,%rbx,8), %rdi
movslq (%rcx,%rbx,4), %rsi
shlq $0x3, %rsi
callq 0x8590
movq 0x4f0(%r14), %rcx
movq %rax, (%rcx,%rbx,8)
movq 0x4f0(%r14), %rax
cmpq $0x0, (%rax,%rbx,8)
je 0x65c93
cmpw $0x0, 0xd1a(%r14)
jle 0x65165
movq 0x508(%r14), %rax
movl (%rax,%rbx,4), %edx
leal 0x1(%rbx), %esi
leaq 0xa97ba(%rip), %rdi     # 0x10e918
xorl %eax, %eax
callq 0x8030
movl $0x1900, %edi           # imm = 0x1900
callq 0x8460
movq 0x4d8(%r14), %rcx
movq %rax, (%rcx,%rbx,8)
movq 0x4d8(%r14), %rax
cmpq $0x0, (%rax,%rbx,8)
je 0x65d41
movl $0x1900, %edi           # imm = 0x1900
callq 0x8460
movq 0x4e0(%r14), %rcx
movq %rax, (%rcx,%rbx,8)
movq 0x4e0(%r14), %rax
movq (%rax,%rbx,8), %rsi
testq %rsi, %rsi
je 0x65dc1
movq 0x4d8(%r14), %rax
addq 0x500(%r14), %rbp
movq (%rax,%rbx,8), %rdi
movq 0x58(%rsp), %rax
movsd 0x48(%rax), %xmm0
movq 0x38(%rsp), %r8
movl 0x34(%rsp), %r9d
movq %rbp, %rdx
movl $0x320, %ecx            # imm = 0x320
pushq %r12
leaq 0x30(%rsp), %rax
pushq %rax
pushq %r13
pushq 0xe6dcd(%rip)           # 0x14bfc0
callq 0x204f3
addq $0x20, %rsp
cmpl $0x1, %eax
je 0x65e41
movq 0x4d8(%r14), %rax
movq 0x500(%r14), %rcx
movq (%rax,%rbx,8), %rdi
movslq (%rcx,%rbx,4), %rsi
shlq $0x3, %rsi
callq 0x8590
movq 0x4d8(%r14), %rcx
movq %rax, (%rcx,%rbx,8)
movq 0x4d8(%r14), %rax
cmpq $0x0, (%rax,%rbx,8)
je 0x65ebf
movq 0x4e0(%r14), %rax
movq 0x500(%r14), %rcx
movq (%rax,%rbx,8), %rdi
movslq (%rcx,%rbx,4), %rsi
shlq $0x3, %rsi
callq 0x8590
movq 0x4e0(%r14), %rcx
movq %rax, (%rcx,%rbx,8)
movq 0x4e0(%r14), %rax
cmpq $0x0, (%rax,%rbx,8)
je 0x65f45
cmpw $0x0, 0xd1a(%r14)
jle 0x652a3
movq 0x500(%r14), %rax
movl (%rax,%rbx,4), %edx
leal 0x1(%rbx), %esi
leaq 0xa97d1(%rip), %rdi     # 0x10ea6d
xorl %eax, %eax
callq 0x8030
movq 0x508(%r14), %rax
movslq (%rax,%rbx,4), %rdi
shlq $0x3, %rdi
callq 0x8460
movq 0x4f8(%r14), %rcx
movq %rax, (%rcx,%rbx,8)
movq 0x4f8(%r14), %rax
movq 0x508(%r14), %rcx
cmpq $0x0, (%rax,%rbx,8)
movl (%rcx,%rbx,4), %ecx
je 0x659c5
testl %ecx, %ecx
leaq 0x28(%rsp), %r15
jle 0x655f9
xorl %r13d, %r13d
movq 0x4e8(%r14), %rax
movq (%rax,%rbx,8), %rax
movsd (%rax,%r13,8), %xmm0
movq %r15, %rdi
movaps %xmm0, 0x10(%rsp)
leaq 0x90(%rsp), %rsi
callq 0x649c7
testl %eax, %eax
jne 0x65a00
movl $0xffffffe2, %ebp       # imm = 0xFFFFFFE2
xorps %xmm1, %xmm1
cvtsi2sd %ebp, %xmm1
testq %r13, %r13
je 0x65372
movq 0x508(%r14), %rax
movl (%rax,%rbx,4), %r12d
decl %r12d
movapd %xmm1, %xmm0
callq 0x8670
cmpq %r12, %r13
jne 0x653ea
addsd %xmm0, %xmm0
movq 0x4e8(%r14), %rax
movq (%rax,%rbx,8), %rax
movsd (%rax,%r13,8), %xmm1
subsd -0x8(%rax,%r13,8), %xmm1
mulsd %xmm0, %xmm1
jmp 0x6540b
movsd 0x8c956(%rip), %xmm0    # 0xf1cd0
movq %rbx, %r12
movq 0x58(%rsp), %rbx
subsd 0xa28(%rbx), %xmm0
mulsd 0x10(%rsp), %xmm0
movsd %xmm0, 0x60(%rsp)
movsd %xmm1, 0x70(%rsp)
movapd %xmm1, %xmm0
callq 0x8670
addsd %xmm0, %xmm0
movq 0x4e8(%r14), %rax
movq (%rax,%r12,8), %rax
movsd 0x8(%rax), %xmm1
subsd 0x10(%rsp), %xmm1
mulsd %xmm0, %xmm1
ucomisd 0x60(%rsp), %xmm1
jbe 0x65418
movsd 0x8c8fd(%rip), %xmm1    # 0xf1cd0
subsd 0xa28(%rbx), %xmm1
movapd 0x10(%rsp), %xmm0
mulsd %xmm0, %xmm1
movq %r12, %rbx
jmp 0x6544c
movq 0x4e8(%r14), %rax
movq (%rax,%rbx,8), %rax
movsd 0x8(%rax,%r13,8), %xmm1
subsd -0x8(%rax,%r13,8), %xmm1
mulsd %xmm1, %xmm0
movapd %xmm0, %xmm1
leaq 0x28(%rsp), %r15
movapd 0x10(%rsp), %xmm0
jmp 0x6544c
movsd 0x70(%rsp), %xmm0
callq 0x8670
addsd %xmm0, %xmm0
movq 0x4e8(%r14), %rax
movq (%rax,%r12,8), %rax
movsd 0x8(%rax), %xmm1
movapd 0x10(%rsp), %xmm2
subsd %xmm2, %xmm1
mulsd %xmm0, %xmm1
movq %r12, %rbx
movapd %xmm2, %xmm0
movapd %xmm1, 0x60(%rsp)
addsd %xmm1, %xmm1
movapd %xmm1, 0x70(%rsp)
subsd %xmm1, %xmm0
movq %r15, %rdi
leaq 0x98(%rsp), %rsi
callq 0x649c7
testl %eax, %eax
jne 0x6593f
movapd 0x70(%rsp), %xmm0
addsd 0x10(%rsp), %xmm0
movq %r15, %rdi
leaq 0x88(%rsp), %rsi
callq 0x649c7
testl %eax, %eax
jne 0x6597f
movsd 0x88(%rsp), %xmm2
subsd 0x98(%rsp), %xmm2
divsd 0x90(%rsp), %xmm2
movq 0x58(%rsp), %rax
movsd 0xa28(%rax), %xmm0
ucomisd 0x8bd8c(%rip), %xmm0    # 0xf1258
jb 0x654d4
sqrtsd %xmm0, %xmm0
jmp 0x654e5
movapd %xmm2, 0x70(%rsp)
callq 0x82b0
movapd 0x70(%rsp), %xmm2
movapd 0x60(%rsp), %xmm1
andpd 0x8bd4d(%rip), %xmm2    # 0xf1240
ucomisd %xmm0, %xmm2
ja 0x65506
leal 0x1(%rbp), %eax
testl %ebp, %ebp
movl %eax, %ebp
jle 0x65321
movapd 0x10(%rsp), %xmm0
subsd %xmm1, %xmm0
movq %r15, %rdi
leaq 0xa8(%rsp), %rsi
callq 0x649c7
testl %eax, %eax
jne 0x65f8d
movapd 0x10(%rsp), %xmm0
addsd 0x60(%rsp), %xmm0
movq %r15, %rdi
leaq 0xa0(%rsp), %rsi
callq 0x649c7
testl %eax, %eax
jne 0x65fd0
movsd 0x90(%rsp), %xmm0
ucomisd 0x8bcfb(%rip), %xmm0    # 0xf1258
jne 0x65571
jp 0x65571
movapd 0x10(%rsp), %xmm1
xorpd 0x8bcc1(%rip), %xmm1    # 0xf1230
jmp 0x655d1
movsd 0xa8(%rsp), %xmm1
mulsd 0xa8546(%rip), %xmm1    # 0x10dac8
addsd 0x98(%rsp), %xmm1
movsd 0xa0(%rsp), %xmm2
mulsd 0x8eec4(%rip), %xmm2    # 0xf4460
addsd %xmm1, %xmm2
subsd 0x88(%rsp), %xmm2
divsd 0xa851f(%rip), %xmm2    # 0x10dad0
movapd 0x10(%rsp), %xmm1
unpcklpd %xmm2, %xmm1            # xmm1 = xmm1[0],xmm2[0]
unpcklpd 0x60(%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 0x4f8(%r14), %rax
movq (%rax,%rbx,8), %rax
movsd %xmm1, (%rax,%r13,8)
incq %r13
movq 0x508(%r14), %rax
movslq (%rax,%rbx,4), %rax
cmpq %rax, %r13
jl 0x652ee
movq 0x2b0(%r14), %rax
movsd (%rax,%rbx,8), %xmm2
movsd 0x8ee1b(%rip), %xmm1    # 0xf4428
mulsd %xmm1, %xmm2
movsd 0x8e9af(%rip), %xmm0    # 0xf3fc8
mulsd %xmm0, %xmm2
movsd %xmm2, 0x10(%rsp)
movsd 0x18(%r14), %xmm0
movq 0x290(%r14), %rax
mulsd (%rax,%rbx,8), %xmm0
mulsd 0x905d3(%rip), %xmm0    # 0xf5c10
callq 0x8620
mulsd 0x10(%rsp), %xmm0
mulsd 0x8ee10(%rip), %xmm0    # 0xf4460
mulsd 0x8e970(%rip), %xmm0    # 0xf3fc8
mulsd 0x90468(%rip), %xmm0    # 0xf5ac8
divsd 0x8d018(%rip), %xmm0    # 0xf2680
divsd 0xa8468(%rip), %xmm0    # 0x10dad8
divsd 0xa8468(%rip), %xmm0    # 0x10dae0
movsd 0x90438(%rip), %xmm1    # 0xf5ab8
mulsd %xmm1, %xmm0
mulsd %xmm1, %xmm0
movq 0x510(%r14), %rax
movsd %xmm0, (%rax,%rbx,8)
movq 0x258(%r14), %rax
testq %rax, %rax
je 0x656c4
cmpl $0x1, (%rax,%rbx,4)
jne 0x656c4
movq 0x38(%rsp), %rdi
callq 0x8410
movq 0x40(%rsp), %rdi
callq 0x8410
movq 0x48(%rsp), %rdi
callq 0x8410
incq %rbx
movslq 0x248(%r14), %rcx
xorl %eax, %eax
cmpq %rcx, %rbx
movq 0x8(%rsp), %r12
leaq -0xd18(%rip), %r13      # 0x649c7
jl 0x64cd2
jmp 0x65929
shll $0x3, %ebx
leaq 0x8b910(%rip), %rsi     # 0xf1004
leaq 0xa8fe1(%rip), %rdx     # 0x10e6dc
leaq 0xc0(%rsp), %r15
movq %r15, %rdi
movl %ebx, %ecx
xorl %eax, %eax
callq 0x30c2c
addq $0xd1c, %r14            # imm = 0xD1C
leaq 0x8b917(%rip), %rsi     # 0xf1034
leaq 0xa8fc4(%rip), %rdx     # 0x10e6e8
movq %r14, %rdi
movl $0x6d0, %ecx            # imm = 0x6D0
jmp 0x6591a
shll $0x3, %ebx
leaq 0x8b8c9(%rip), %rsi     # 0xf1004
leaq 0xa8fbb(%rip), %rdx     # 0x10e6fd
leaq 0xc0(%rsp), %r15
movq %r15, %rdi
movl %ebx, %ecx
xorl %eax, %eax
callq 0x30c2c
addq $0xd1c, %r14            # imm = 0xD1C
leaq 0x8b8d0(%rip), %rsi     # 0xf1034
leaq 0xa8f7d(%rip), %rdx     # 0x10e6e8
movq %r14, %rdi
movl $0x6d1, %ecx            # imm = 0x6D1
jmp 0x6591a
shll $0x3, %ebx
leaq 0x8b882(%rip), %rsi     # 0xf1004
leaq 0xa8f80(%rip), %rdx     # 0x10e709
leaq 0xc0(%rsp), %r15
movq %r15, %rdi
movl %ebx, %ecx
xorl %eax, %eax
callq 0x30c2c
addq $0xd1c, %r14            # imm = 0xD1C
leaq 0x8b889(%rip), %rsi     # 0xf1034
leaq 0xa8f36(%rip), %rdx     # 0x10e6e8
movq %r14, %rdi
movl $0x6d2, %ecx            # imm = 0x6D2
jmp 0x6591a
shll $0x3, %ebx
leaq 0x8b83b(%rip), %rsi     # 0xf1004
leaq 0xa8f48(%rip), %rdx     # 0x10e718
leaq 0xc0(%rsp), %r15
movq %r15, %rdi
movl %ebx, %ecx
xorl %eax, %eax
callq 0x30c2c
addq $0xd1c, %r14            # imm = 0xD1C
leaq 0x8b842(%rip), %rsi     # 0xf1034
leaq 0xa8eef(%rip), %rdx     # 0x10e6e8
movq %r14, %rdi
movl $0x6d3, %ecx            # imm = 0x6D3
jmp 0x6591a
shll $0x3, %ebx
leaq 0x8b7f4(%rip), %rsi     # 0xf1004
leaq 0xa8f10(%rip), %rdx     # 0x10e727
leaq 0xc0(%rsp), %r15
movq %r15, %rdi
movl %ebx, %ecx
xorl %eax, %eax
callq 0x30c2c
addq $0xd1c, %r14            # imm = 0xD1C
leaq 0x8b7fb(%rip), %rsi     # 0xf1034
leaq 0xa8ea8(%rip), %rdx     # 0x10e6e8
movq %r14, %rdi
movl $0x6d4, %ecx            # imm = 0x6D4
jmp 0x6591a
shll $0x2, %ebx
leaq 0x8b7ad(%rip), %rsi     # 0xf1004
leaq 0xa8ede(%rip), %rdx     # 0x10e73c
leaq 0xc0(%rsp), %r15
movq %r15, %rdi
movl %ebx, %ecx
xorl %eax, %eax
callq 0x30c2c
addq $0xd1c, %r14            # imm = 0xD1C
leaq 0x8b7b4(%rip), %rsi     # 0xf1034
leaq 0xa8e61(%rip), %rdx     # 0x10e6e8
movq %r14, %rdi
movl $0x6d7, %ecx            # imm = 0x6D7
jmp 0x6591a
shll $0x2, %ebx
leaq 0x8b766(%rip), %rsi     # 0xf1004
leaq 0xa8ea8(%rip), %rdx     # 0x10e74d
leaq 0xc0(%rsp), %r15
movq %r15, %rdi
movl %ebx, %ecx
xorl %eax, %eax
callq 0x30c2c
addq $0xd1c, %r14            # imm = 0xD1C
leaq 0x8b76d(%rip), %rsi     # 0xf1034
leaq 0xa8e1a(%rip), %rdx     # 0x10e6e8
movq %r14, %rdi
movl $0x6d8, %ecx            # imm = 0x6D8
jmp 0x6591a
shll $0x3, %ebx
leaq 0x8b722(%rip), %rsi     # 0xf1004
leaq 0xa8e78(%rip), %rdx     # 0x10e761
leaq 0xc0(%rsp), %r15
movq %r15, %rdi
movl %ebx, %ecx
xorl %eax, %eax
callq 0x30c2c
addq $0xd1c, %r14            # imm = 0xD1C
leaq 0x8b729(%rip), %rsi     # 0xf1034
leaq 0xa8dd6(%rip), %rdx     # 0x10e6e8
movq %r14, %rdi
movl $0x6d9, %ecx            # imm = 0x6D9
movq %r15, %r8
xorl %eax, %eax
callq 0x30c2c
movl $0x1, %eax
addq $0x10c8, %rsp           # imm = 0x10C8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
xorl %eax, %eax
jmp 0x65929
leaq 0x8baaa(%rip), %rsi     # 0xf13f0
leaq 0xa9306(%rip), %rdx     # 0x10ec53
leaq 0xc0(%rsp), %rbx
movq %rbx, %rdi
movq 0x8(%rsp), %r14
movq %r14, %rcx
xorl %eax, %eax
callq 0x30c2c
leaq 0x8b6c6(%rip), %rsi     # 0xf1034
leaq 0xa8d73(%rip), %rdx     # 0x10e6e8
movq %r14, %rdi
movl $0x774, %ecx            # imm = 0x774
jmp 0x659bd
leaq 0x8ba6a(%rip), %rsi     # 0xf13f0
leaq 0xa92fa(%rip), %rdx     # 0x10ec87
leaq 0xc0(%rsp), %rbx
movq %rbx, %rdi
movq 0x8(%rsp), %r14
movq %r14, %rcx
xorl %eax, %eax
callq 0x30c2c
leaq 0x8b686(%rip), %rsi     # 0xf1034
leaq 0xa8d33(%rip), %rdx     # 0x10e6e8
movq %r14, %rdi
movl $0x776, %ecx            # imm = 0x776
movq %rbx, %r8
jmp 0x6591d
shll $0x3, %ecx
leaq 0x8b635(%rip), %rsi     # 0xf1004
leaq 0xa9238(%rip), %rdx     # 0x10ec0e
leaq 0xc0(%rsp), %rbx
movq %rbx, %rdi
xorl %eax, %eax
callq 0x30c2c
leaq 0x8b645(%rip), %rsi     # 0xf1034
leaq 0xa8cf2(%rip), %rdx     # 0x10e6e8
movq %r12, %rdi
movl $0x75e, %ecx            # imm = 0x75E
jmp 0x659bd
leaq 0x8b9e9(%rip), %rsi     # 0xf13f0
leaq 0xa9218(%rip), %rdx     # 0x10ec26
leaq 0xc0(%rsp), %rbx
movq %rbx, %rdi
movq 0x8(%rsp), %r14
movq %r14, %rcx
xorl %eax, %eax
callq 0x30c2c
leaq 0x8b605(%rip), %rsi     # 0xf1034
leaq 0xa8cb2(%rip), %rdx     # 0x10e6e8
movq %r14, %rdi
movl $0x764, %ecx            # imm = 0x764
jmp 0x659bd
shll $0x3, %ecx
leaq 0x8b5b7(%rip), %rsi     # 0xf1004
leaq 0xa8f16(%rip), %rdx     # 0x10e96a
leaq 0xc0(%rsp), %rbx
movq %rbx, %rdi
xorl %eax, %eax
callq 0x30c2c
leaq 0x8b5c7(%rip), %rsi     # 0xf1034
leaq 0xa8c74(%rip), %rdx     # 0x10e6e8
movq %r12, %rdi
movl $0x73f, %ecx            # imm = 0x73F
jmp 0x659bd
movq 0x500(%r14), %rax
movl (%rax,%rbx,4), %ecx
shll $0x3, %ecx
leaq 0x8b56f(%rip), %rsi     # 0xf1004
leaq 0xa8ee0(%rip), %rdx     # 0x10e97c
leaq 0xc0(%rsp), %rbx
movq %rbx, %rdi
xorl %eax, %eax
callq 0x30c2c
leaq 0x8b57f(%rip), %rsi     # 0xf1034
leaq 0xa8c2c(%rip), %rdx     # 0x10e6e8
movq %r12, %rdi
movl $0x740, %ecx            # imm = 0x740
jmp 0x659bd
shll $0x3, %ecx
leaq 0x8b531(%rip), %rsi     # 0xf1004
leaq 0xa8d4d(%rip), %rdx     # 0x10e827
leaq 0xc0(%rsp), %rbx
movq %rbx, %rdi
xorl %eax, %eax
callq 0x30c2c
leaq 0x8b541(%rip), %rsi     # 0xf1034
leaq 0xa8bee(%rip), %rdx     # 0x10e6e8
movq %r12, %rdi
movl $0x741, %ecx            # imm = 0x741
jmp 0x659bd
movq 0x508(%r14), %rax
movl (%rax,%rbx,4), %ecx
shll $0x3, %ecx
leaq 0x8b4e9(%rip), %rsi     # 0xf1004
leaq 0xa8d14(%rip), %rdx     # 0x10e836
leaq 0xc0(%rsp), %rbx
movq %rbx, %rdi
xorl %eax, %eax
callq 0x30c2c
leaq 0x8b4f9(%rip), %rsi     # 0xf1034
leaq 0xa8ba6(%rip), %rdx     # 0x10e6e8
movq %r12, %rdi
movl $0x742, %ecx            # imm = 0x742
jmp 0x659bd
leaq 0x8b89a(%rip), %rsi     # 0xf13f0
leaq 0xa8f60(%rip), %rdx     # 0x10eabd
leaq 0xc0(%rsp), %rbx
movq %rbx, %rdi
movq %r12, %rcx
xorl %eax, %eax
callq 0x30c2c
leaq 0x8b4bb(%rip), %rsi     # 0xf1034
leaq 0xa8b68(%rip), %rdx     # 0x10e6e8
movq %r12, %rdi
movl $0x74e, %ecx            # imm = 0x74E
jmp 0x659bd
leaq 0x8b470(%rip), %rsi     # 0xf1004
leaq 0xa8c8c(%rip), %rdx     # 0x10e827
leaq 0xc0(%rsp), %rbx
movq %rbx, %rdi
movl $0x7d0, %ecx            # imm = 0x7D0
xorl %eax, %eax
callq 0x30c2c
leaq 0x8b47b(%rip), %rsi     # 0xf1034
leaq 0xa8b28(%rip), %rdx     # 0x10e6e8
movq %r12, %rdi
movl $0x705, %ecx            # imm = 0x705
jmp 0x659bd
leaq 0x8b430(%rip), %rsi     # 0xf1004
leaq 0xa8c5b(%rip), %rdx     # 0x10e836
leaq 0xc0(%rsp), %rbx
movq %rbx, %rdi
movl $0x7d0, %ecx            # imm = 0x7D0
xorl %eax, %eax
callq 0x30c2c
leaq 0x8b43b(%rip), %rsi     # 0xf1034
leaq 0xa8ae8(%rip), %rdx     # 0x10e6e8
movq %r12, %rdi
movl $0x706, %ecx            # imm = 0x706
jmp 0x659bd
leaq 0x8b7dc(%rip), %rsi     # 0xf13f0
leaq 0xa8c2a(%rip), %rdx     # 0x10e845
leaq 0xc0(%rsp), %rbx
movq %rbx, %rdi
movq %r12, %rcx
xorl %eax, %eax
callq 0x30c2c
leaq 0x8b3fd(%rip), %rsi     # 0xf1034
leaq 0xa8aaa(%rip), %rdx     # 0x10e6e8
movq %r12, %rdi
movl $0x714, %ecx            # imm = 0x714
jmp 0x659bd
movq 0x508(%r14), %rax
movl (%rax,%rbx,4), %ecx
shll $0x3, %ecx
leaq 0x8b3a5(%rip), %rsi     # 0xf1004
leaq 0xa8bc1(%rip), %rdx     # 0x10e827
leaq 0xc0(%rsp), %rbx
movq %rbx, %rdi
xorl %eax, %eax
callq 0x30c2c
leaq 0x8b3b5(%rip), %rsi     # 0xf1034
leaq 0xa8a62(%rip), %rdx     # 0x10e6e8
movq %r12, %rdi
movl $0x715, %ecx            # imm = 0x715
jmp 0x659bd
movq 0x508(%r14), %rax
movl (%rax,%rbx,4), %ecx
shll $0x3, %ecx
leaq 0x8b35d(%rip), %rsi     # 0xf1004
leaq 0xa8b88(%rip), %rdx     # 0x10e836
leaq 0xc0(%rsp), %rbx
movq %rbx, %rdi
xorl %eax, %eax
callq 0x30c2c
leaq 0x8b36d(%rip), %rsi     # 0xf1034
leaq 0xa8a1a(%rip), %rdx     # 0x10e6e8
movq %r12, %rdi
movl $0x716, %ecx            # imm = 0x716
jmp 0x659bd
addq 0x250(%r14), %r13
leaq 0xa8a89(%rip), %rsi     # 0x10e772
leaq 0xc0(%rsp), %rbx
movq %rbx, %rdi
movq %r13, %rdx
xorl %eax, %eax
callq 0x30c2c
leaq 0x8b37d(%rip), %rsi     # 0xf1082
leaq 0xa8a7e(%rip), %rdx     # 0x10e78a
leaq 0x8c0(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x30c2c
leaq 0x8b30c(%rip), %rsi     # 0xf1034
leaq 0xa89b9(%rip), %rdx     # 0x10e6e8
movq 0x8(%rsp), %rdi
movl $0x6e3, %ecx            # imm = 0x6E3
movq %r14, %r8
jmp 0x6591d
leaq 0x8b2bc(%rip), %rsi     # 0xf1004
leaq 0xa8c1b(%rip), %rdx     # 0x10e96a
leaq 0xc0(%rsp), %rbx
movq %rbx, %rdi
movl $0x1900, %ecx           # imm = 0x1900
xorl %eax, %eax
callq 0x30c2c
leaq 0x8b2c7(%rip), %rsi     # 0xf1034
leaq 0xa8974(%rip), %rdx     # 0x10e6e8
movq %r12, %rdi
movl $0x71f, %ecx            # imm = 0x71F
jmp 0x659bd
leaq 0x8b27c(%rip), %rsi     # 0xf1004
leaq 0xa8a0b(%rip), %rdx     # 0x10e79a
leaq 0xc0(%rsp), %rbx
movq %rbx, %rdi
movl %r13d, %ecx
xorl %eax, %eax
callq 0x30c2c
leaq 0x8b289(%rip), %rsi     # 0xf1034
leaq 0xa8936(%rip), %rdx     # 0x10e6e8
movq 0x8(%rsp), %rdi
movl $0x6ec, %ecx            # imm = 0x6EC
jmp 0x659bd
leaq 0x8b23c(%rip), %rsi     # 0xf1004
leaq 0xa8bad(%rip), %rdx     # 0x10e97c
leaq 0xc0(%rsp), %rbx
movq %rbx, %rdi
movl $0x1900, %ecx           # imm = 0x1900
xorl %eax, %eax
callq 0x30c2c
leaq 0x8b247(%rip), %rsi     # 0xf1034
leaq 0xa88f4(%rip), %rdx     # 0x10e6e8
movq %r12, %rdi
movl $0x720, %ecx            # imm = 0x720
jmp 0x659bd
leaq 0x8b1fc(%rip), %rsi     # 0xf1004
leaq 0xa8995(%rip), %rdx     # 0x10e7a4
leaq 0xc0(%rsp), %rbx
movq %rbx, %rdi
movl %r13d, %ecx
xorl %eax, %eax
callq 0x30c2c
leaq 0x8b209(%rip), %rsi     # 0xf1034
leaq 0xa88b6(%rip), %rdx     # 0x10e6e8
movq 0x8(%rsp), %rdi
movl $0x6ed, %ecx            # imm = 0x6ED
jmp 0x659bd
leaq 0x8b5a8(%rip), %rsi     # 0xf13f0
leaq 0xa8b3f(%rip), %rdx     # 0x10e98e
leaq 0xc0(%rsp), %rbx
movq %rbx, %rdi
movq %r12, %rcx
xorl %eax, %eax
callq 0x30c2c
leaq 0x8b1c9(%rip), %rsi     # 0xf1034
leaq 0xa8876(%rip), %rdx     # 0x10e6e8
movq %r12, %rdi
movl $0x72e, %ecx            # imm = 0x72E
jmp 0x659bd
leaq 0x8b17e(%rip), %rsi     # 0xf1004
leaq 0xa8922(%rip), %rdx     # 0x10e7af
leaq 0xc0(%rsp), %rbx
movq %rbx, %rdi
movl %r13d, %ecx
xorl %eax, %eax
callq 0x30c2c
leaq 0x8b18b(%rip), %rsi     # 0xf1034
leaq 0xa8838(%rip), %rdx     # 0x10e6e8
movq 0x8(%rsp), %rdi
movl $0x6ee, %ecx            # imm = 0x6EE
jmp 0x659bd
movq 0x500(%r14), %rax
movl (%rax,%rbx,4), %ecx
shll $0x3, %ecx
leaq 0x8b131(%rip), %rsi     # 0xf1004
leaq 0xa8a90(%rip), %rdx     # 0x10e96a
leaq 0xc0(%rsp), %rbx
movq %rbx, %rdi
xorl %eax, %eax
callq 0x30c2c
leaq 0x8b141(%rip), %rsi     # 0xf1034
leaq 0xa87ee(%rip), %rdx     # 0x10e6e8
movq %r12, %rdi
movl $0x730, %ecx            # imm = 0x730
jmp 0x659bd
leaq 0x8b4e2(%rip), %rsi     # 0xf13f0
leaq 0xa88a7(%rip), %rdx     # 0x10e7bc
leaq 0xc0(%rsp), %rbx
movq %rbx, %rdi
movq %r12, %rcx
xorl %eax, %eax
callq 0x30c2c
leaq 0x8b103(%rip), %rsi     # 0xf1034
leaq 0xa87b0(%rip), %rdx     # 0x10e6e8
movq %r12, %rdi
movl $0x6fe, %ecx            # imm = 0x6FE
jmp 0x659bd
movq 0x500(%r14), %rax
movl (%rax,%rbx,4), %ecx
shll $0x3, %ecx
leaq 0x8b0ab(%rip), %rsi     # 0xf1004
leaq 0xa8a1c(%rip), %rdx     # 0x10e97c
leaq 0xc0(%rsp), %rbx
movq %rbx, %rdi
xorl %eax, %eax
callq 0x30c2c
leaq 0x8b0bb(%rip), %rsi     # 0xf1034
leaq 0xa8768(%rip), %rdx     # 0x10e6e8
movq %r12, %rdi
movl $0x731, %ecx            # imm = 0x731
jmp 0x659bd
leaq 0x8b45c(%rip), %rsi     # 0xf13f0
leaq 0xa8d20(%rip), %rdx     # 0x10ecbb
leaq 0xc0(%rsp), %rbx
movq %rbx, %rdi
movq 0x8(%rsp), %r14
movq %r14, %rcx
xorl %eax, %eax
callq 0x30c2c
leaq 0x8b078(%rip), %rsi     # 0xf1034
leaq 0xa8725(%rip), %rdx     # 0x10e6e8
movq %r14, %rdi
movl $0x77c, %ecx            # imm = 0x77C
jmp 0x659bd
leaq 0x8b419(%rip), %rsi     # 0xf13f0
leaq 0xa8d0f(%rip), %rdx     # 0x10eced
leaq 0xc0(%rsp), %rbx
movq %rbx, %rdi
movq 0x8(%rsp), %r14
movq %r14, %rcx
xorl %eax, %eax
callq 0x30c2c
leaq 0x8b035(%rip), %rsi     # 0xf1034
leaq 0xa86e2(%rip), %rdx     # 0x10e6e8
movq %r14, %rdi
movl $0x77e, %ecx            # imm = 0x77E
jmp 0x659bd