// File: /workspace/github_c_makefile_star2_O0/PoulinV[P]AxiCLASS/build/../source/distortions.c
// Function: distortions_compute_spectral_shapes
int distortions_compute_spectral_shapes(struct precision * ppr,
                                        struct background * pba,
                                        struct thermodynamics * pth,
                                        struct distortions * psd){

  /** Define local variables */
  double * S;
  int last_index = 0;
  int index_type, index_x, index_k;
  double sum_S, sum_G;
  double g;
  double y_reio, DI_reio;

  /** Allocate space for spectral distortion amplitude in table sd_parameter_table */
  class_alloc(psd->sd_parameter_table,
              psd->type_size*sizeof(double),
              psd->error_message);

  /** Compute distortion amplitudes corresponding to each branching ratio (g, y and mu) */
  /* Define y, mu, g and mu_k from heating rates */
  for (index_type=0; index_type<psd->type_size; ++index_type){
    class_call(array_trapezoidal_convolution(psd->dQrho_dz_tot,
                                             psd->br_table[index_type],
                                             psd->z_size,
                                             psd->z_weights,
                                             &(psd->sd_parameter_table[index_type]),
                                             psd->error_message),
               psd->error_message,
               psd->error_message);

    if (index_type>=psd->index_type_PCA) {
      /* The S_k are not properly normalized, we have to renormalize here */
      psd->sd_parameter_table[index_type] /= (log(1.+psd->z[1])-log(1.+psd->z[0]));
    }
  }

  psd->sd_parameter_table[psd->index_type_g] /= 4.;
  psd->sd_parameter_table[psd->index_type_y] /= 4.;
  psd->sd_parameter_table[psd->index_type_mu] *= 1.401;

  psd->sd_parameter_table[psd->index_type_y] += psd->sd_add_y;
  psd->sd_parameter_table[psd->index_type_mu] += psd->sd_add_mu;

  /** Allocate space for distortions shapes in distortions_table */
  class_alloc(psd->sd_shape_table,
              psd->type_size*sizeof(double*),
              psd->error_message);
  for (index_type=0; index_type<psd->type_size; ++index_type){
    class_alloc(psd->sd_shape_table[index_type],
                psd->x_size*sizeof(double),
                psd->error_message);
  }

  /** Calculate spectral shapes */
  if (psd->sd_branching_approx != bra_exact || psd->sd_PCA_size == 0) {
    /* If no PCA analysis is required, the shapes have simple analistical form */
    for (index_x=0; index_x<psd->x_size; ++index_x){
      psd->sd_shape_table[psd->index_type_g][index_x] = pow(psd->x[index_x],4.)*exp(-psd->x[index_x])/
        pow(1.-exp(-psd->x[index_x]),2.);        // [-]
      psd->sd_shape_table[psd->index_type_y][index_x] = psd->sd_shape_table[psd->index_type_g][index_x]*
        (psd->x[index_x]*(1.+exp(-psd->x[index_x]))/
         (1.-exp(-psd->x[index_x]))-4.);          // [-]
      psd->sd_shape_table[psd->index_type_mu][index_x] = psd->sd_shape_table[psd->index_type_g][index_x]*
        (1./2.19229-1./psd->x[index_x]);         // [-]
    }
  }
  else {
    /* If PCA analysis is required, the shapes has to be vectorized. This is done in the external
       file spectral_shapes.dat using generate_PCA_files.py */

    /* Read and spline data from file spectral_shapes.dat */
    class_call(distortions_read_sd_data(ppr,psd),
               psd->error_message,
               psd->error_message);
    class_call(distortions_spline_sd_data(psd),
               psd->error_message,
               psd->error_message);

    /* Allocate local variable */
    class_alloc(S,
                psd->sd_PCA_size*sizeof(double),
                psd->error_message);

    /* Interpolate over z */
    for (index_x=0; index_x<psd->x_size; ++index_x){
      class_call(distortions_interpolate_sd_data(psd,
                                                 psd->x[index_x]*psd->x_to_nu,
                                                 &psd->sd_shape_table[psd->index_type_g][index_x],
                                                 &psd->sd_shape_table[psd->index_type_y][index_x],
                                                 &psd->sd_shape_table[psd->index_type_mu][index_x],
                                                 S,
                                                 &last_index),
                 psd->error_message,
                 psd->error_message);

      for (index_k=0; index_k<psd->sd_PCA_size; ++index_k){
        psd->sd_shape_table[psd->index_type_PCA+index_k][index_x] = S[index_k];
      }
    }

    /* Free allocated space */
    class_call(distortions_free_sd_data(psd),
               psd->error_message,
               psd->error_message);
    free(S);
  }

  /** Compute distortion amplitude for residual parameter epsilon */
  /* For the details of the calculation see Chluba & Jeong 2014, left column of page 6 */
  psd->epsilon = 0.;

  if (psd->sd_branching_approx == bra_exact && psd->sd_PCA_size != 0) {
    class_call(array_trapezoidal_integral(psd->sd_shape_table[psd->index_type_g],
                                          psd->x_size,
                                          psd->x_weights,
                                          &(sum_G),
                                          psd->error_message),
               psd->error_message,
               psd->error_message);
    for (index_k=0; index_k<psd->sd_PCA_size; ++index_k){
      class_call(array_trapezoidal_integral(psd->sd_shape_table[psd->index_type_PCA+index_k],
                                            psd->x_size,
                                            psd->x_weights,
                                            &(sum_S),
                                            psd->error_message),
                 psd->error_message,
                 psd->error_message);
      psd->epsilon += (4.*sum_S/sum_G)*psd->sd_parameter_table[psd->index_type_PCA+index_k];
    }
  }

  /** Allocate space for final spectral distortion */
  class_alloc(psd->DI,
              psd->x_size*sizeof(double),
              psd->error_message);

  class_alloc(psd->sd_table,
              psd->type_size*sizeof(double*),
              psd->error_message);
  for (index_type=0; index_type<psd->type_size; ++index_type){
    class_alloc(psd->sd_table[index_type],
                psd->x_size*sizeof(double),
                psd->error_message);
  }

  /** Calculate spectral distortions according to Chluba & Jeong 2014 (arxiv:1306.5751, Eq. (11)) */
  for (index_x=0;index_x<psd->x_size;++index_x){
    psd->DI[index_x] = 0.;

    for (index_type=0;index_type<psd->type_size;++index_type){
      if (index_type==psd->index_type_g) {
        if (psd->include_g_distortion == _TRUE_) {
          g = psd->sd_parameter_table[psd->index_type_g];
          psd->sd_table[index_type][index_x] = (1.+g)*g*psd->sd_shape_table[psd->index_type_g][index_x]+
            g*g*0.5*psd->sd_shape_table[psd->index_type_y][index_x];
        }
        else {
          g = 0.;
          psd->sd_table[index_type][index_x] = 0.;
        }
      }
      else {
        psd->sd_table[index_type][index_x] = psd->sd_parameter_table[index_type]*psd->sd_shape_table[index_type][index_x];
      }

      psd->DI[index_x] += psd->sd_table[index_type][index_x];
    }
  }

  /** Include additional sources of distortions */
  /* Superposition of blackbodies */
  //psd->sd_parameter_table[psd->index_type_y] += 2.525e-7;   // CMB Dipole (Chluba & Sunyaev 2004)
  //psd->sd_parameter_table[psd->index_type_y] += 4.59e-13;   // CMB Quadrupole (Chluba & Sunyaev 2004)

  /* Reionization */
  if (psd->has_SZ_effect == _TRUE_) {
    for (index_x=0;index_x<psd->x_size;++index_x){
      class_call(distortions_add_effects_reio(pba,pth,psd,
                                              5.e0,
                                              2.e-4,
                                              1./300.,
                                              1./300.,
                                              psd->x[index_x],
                                              &y_reio,
                                              &DI_reio),
                 psd->error_message,
                 psd->error_message);
      psd->DI[index_x] += DI_reio;
    }

    psd->sd_parameter_table[psd->index_type_y] += y_reio;
  }

  /** Compute total heating */
  psd->Drho_over_rho = psd->sd_parameter_table[psd->index_type_y]*4.+
    psd->sd_parameter_table[psd->index_type_mu]/1.401+
    psd->epsilon;

  if (psd->include_g_distortion == _TRUE_) {
    psd->Drho_over_rho += psd->sd_parameter_table[psd->index_type_g]*4.;
  }

  /** Print found parameters */
  if (psd->distortions_verbose > 1) {

    if (psd->distortions_verbose > 3 && psd->include_g_distortion == _TRUE_) {
      printf(" -> g-parameter %g (Note, that this does not include contributions from earlier than sd_z_max=%g)\n", psd->sd_parameter_table[psd->index_type_g], ppr->sd_z_max);
    }

    if (psd->sd_parameter_table[psd->index_type_mu] > 9.e-5) {
      printf(" -> mu-parameter = %g. WARNING: The value of your mu-parameter is larger than the FIRAS constraint mu<9e-5.\n", psd->sd_parameter_table[psd->index_type_mu]);
    }
    else {
      printf(" -> mu-parameter = %g\n", psd->sd_parameter_table[psd->index_type_mu]);
    }

    if (psd->sd_parameter_table[psd->index_type_y]>1.5e-5) {
      printf(" -> y-parameter = %g. WARNING: The value of your y-parameter is larger than the FIRAS constraint y<1.5e-5.\n", psd->sd_parameter_table[psd->index_type_y]);
    }
    else {
      printf(" -> y-parameter = %g\n", psd->sd_parameter_table[psd->index_type_y]);
    }

    if (psd->sd_branching_approx == bra_exact && psd->sd_PCA_size != 0) {
      if (psd->distortions_verbose > 2) {
        for (index_k=0; index_k<psd->sd_PCA_size; ++index_k){
          printf(" -> PCA multipole mu_%d = %g\n", index_k+1, psd->sd_parameter_table[psd->index_type_PCA+index_k]);
        }
      }
      printf(" -> epsilon-parameter = %g\n", psd->epsilon);
    }

    printf(" -> total injected/extracted heat = %g\n", psd->Drho_over_rho);
  }

  return _SUCCESS_;
}

// Assembly:
subq $0x7908, %rsp           # imm = 0x7908
movq %rdi, 0x78f8(%rsp)
movq %rsi, 0x78f0(%rsp)
movq %rdx, 0x78e8(%rsp)
movq %rcx, 0x78e0(%rsp)
movl $0x0, 0x78d4(%rsp)
movq 0x78e0(%rsp), %rax
movslq 0xbf0(%rax), %rdi
shlq $0x3, %rdi
callq 0x8460
movq %rax, %rcx
movq 0x78e0(%rsp), %rax
movq %rcx, 0xbc8(%rax)
movq 0x78e0(%rsp), %rax
cmpq $0x0, 0xbc8(%rax)
jne 0x191c8d
movq 0x78e0(%rsp), %rax
movslq 0xbf0(%rax), %rax
shlq $0x3, %rax
movl %eax, 0x789c(%rsp)
leaq 0x7090(%rsp), %rdi
movl 0x789c(%rsp), %ecx
leaq 0x403c6(%rip), %rsi     # 0x1d2004
leaq 0x799b2(%rip), %rdx     # 0x20b5f7
movb $0x0, %al
callq 0x5b9c0
movq 0x78e0(%rsp), %rdi
addq $0x1602, %rdi           # imm = 0x1602
leaq 0x7090(%rsp), %r8
leaq 0x403ca(%rip), %rsi     # 0x1d2034
leaq 0x7999e(%rip), %rdx     # 0x20b60f
movl $0x38a, %ecx            # imm = 0x38A
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x7904(%rsp)
jmp 0x19353a
movl $0x0, 0x78d0(%rsp)
movl 0x78d0(%rsp), %eax
movq 0x78e0(%rsp), %rcx
cmpl 0xbf0(%rcx), %eax
jge 0x191e43
movq 0x78e0(%rsp), %rax
movq 0xc00(%rax), %rdi
movq 0x78e0(%rsp), %rax
movq 0xbc0(%rax), %rax
movslq 0x78d0(%rsp), %rcx
movq (%rax,%rcx,8), %rsi
movq 0x78e0(%rsp), %rax
movl 0x330(%rax), %edx
movq 0x78e0(%rsp), %rax
movq 0x348(%rax), %rcx
movq 0x78e0(%rsp), %rax
movq 0xbc8(%rax), %r8
movslq 0x78d0(%rsp), %rax
shlq $0x3, %rax
addq %rax, %r8
movq 0x78e0(%rsp), %r9
addq $0x1602, %r9            # imm = 0x1602
callq 0x2aba0
cmpl $0x1, %eax
jne 0x191d9e
leaq 0x6890(%rsp), %rdi
movq 0x78e0(%rsp), %rcx
addq $0x1602, %rcx           # imm = 0x1602
leaq 0x40689(%rip), %rsi     # 0x1d23d8
leaq 0x798dd(%rip), %rdx     # 0x20b633
movb $0x0, %al
callq 0x5b9c0
movq 0x78e0(%rsp), %rdi
addq $0x1602, %rdi           # imm = 0x1602
leaq 0x6890(%rsp), %r8
leaq 0x402b9(%rip), %rsi     # 0x1d2034
leaq 0x7988d(%rip), %rdx     # 0x20b60f
movl $0x396, %ecx            # imm = 0x396
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x7904(%rsp)
jmp 0x19353a
movl 0x78d0(%rsp), %eax
movq 0x78e0(%rsp), %rcx
cmpl 0xbec(%rcx), %eax
jl 0x191e2b
movq 0x78e0(%rsp), %rax
movq 0x340(%rax), %rax
movsd 0x4047c(%rip), %xmm0    # 0x1d2248
addsd 0x8(%rax), %xmm0
callq 0x82f0
movsd %xmm0, 0x28(%rsp)
movq 0x78e0(%rsp), %rax
movq 0x340(%rax), %rax
movsd 0x40455(%rip), %xmm0    # 0x1d2248
addsd (%rax), %xmm0
callq 0x82f0
movsd 0x28(%rsp), %xmm1
subsd %xmm0, %xmm1
movq 0x78e0(%rsp), %rax
movq 0xbc8(%rax), %rax
movslq 0x78d0(%rsp), %rcx
movsd (%rax,%rcx,8), %xmm0
divsd %xmm1, %xmm0
movsd %xmm0, (%rax,%rcx,8)
jmp 0x191e2d
movl 0x78d0(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x78d0(%rsp)
jmp 0x191c98
movq 0x78e0(%rsp), %rax
movq 0xbc8(%rax), %rax
movq 0x78e0(%rsp), %rcx
movslq 0xbe0(%rcx), %rcx
movsd (%rax,%rcx,8), %xmm0
movsd 0x4365a(%rip), %xmm1    # 0x1d54c8
divsd %xmm1, %xmm0
movsd %xmm0, (%rax,%rcx,8)
movq 0x78e0(%rsp), %rax
movq 0xbc8(%rax), %rax
movq 0x78e0(%rsp), %rcx
movslq 0xbe8(%rcx), %rcx
movsd (%rax,%rcx,8), %xmm0
movsd 0x43626(%rip), %xmm1    # 0x1d54c8
divsd %xmm1, %xmm0
movsd %xmm0, (%rax,%rcx,8)
movq 0x78e0(%rsp), %rax
movq 0xbc8(%rax), %rax
movq 0x78e0(%rsp), %rcx
movslq 0xbe4(%rcx), %rcx
movsd 0x78457(%rip), %xmm0    # 0x20a328
mulsd (%rax,%rcx,8), %xmm0
movsd %xmm0, (%rax,%rcx,8)
movq 0x78e0(%rsp), %rax
movsd 0x300(%rax), %xmm0
movq 0x78e0(%rsp), %rax
movq 0xbc8(%rax), %rax
movq 0x78e0(%rsp), %rcx
movslq 0xbe8(%rcx), %rcx
addsd (%rax,%rcx,8), %xmm0
movsd %xmm0, (%rax,%rcx,8)
movq 0x78e0(%rsp), %rax
movsd 0x308(%rax), %xmm0
movq 0x78e0(%rsp), %rax
movq 0xbc8(%rax), %rax
movq 0x78e0(%rsp), %rcx
movslq 0xbe4(%rcx), %rcx
addsd (%rax,%rcx,8), %xmm0
movsd %xmm0, (%rax,%rcx,8)
movq 0x78e0(%rsp), %rax
movslq 0xbf0(%rax), %rdi
shlq $0x3, %rdi
callq 0x8460
movq %rax, %rcx
movq 0x78e0(%rsp), %rax
movq %rcx, 0xbd0(%rax)
movq 0x78e0(%rsp), %rax
cmpq $0x0, 0xbd0(%rax)
jne 0x192006
movq 0x78e0(%rsp), %rax
movslq 0xbf0(%rax), %rax
shlq $0x3, %rax
movl %eax, 0x688c(%rsp)
leaq 0x6080(%rsp), %rdi
movl 0x688c(%rsp), %ecx
leaq 0x4004d(%rip), %rsi     # 0x1d2004
leaq 0x7971a(%rip), %rdx     # 0x20b6d8
movb $0x0, %al
callq 0x5b9c0
movq 0x78e0(%rsp), %rdi
addq $0x1602, %rdi           # imm = 0x1602
leaq 0x6080(%rsp), %r8
leaq 0x40051(%rip), %rsi     # 0x1d2034
leaq 0x79625(%rip), %rdx     # 0x20b60f
movl $0x3a8, %ecx            # imm = 0x3A8
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x7904(%rsp)
jmp 0x19353a
movl $0x0, 0x78d0(%rsp)
movl 0x78d0(%rsp), %eax
movq 0x78e0(%rsp), %rcx
cmpl 0xbf0(%rcx), %eax
jge 0x192117
movq 0x78e0(%rsp), %rax
movslq 0x368(%rax), %rdi
shlq $0x3, %rdi
callq 0x8460
movq %rax, %rdx
movq 0x78e0(%rsp), %rax
movq 0xbd0(%rax), %rax
movslq 0x78d0(%rsp), %rcx
movq %rdx, (%rax,%rcx,8)
movq 0x78e0(%rsp), %rax
movq 0xbd0(%rax), %rax
movslq 0x78d0(%rsp), %rcx
cmpq $0x0, (%rax,%rcx,8)
jne 0x1920ff
movq 0x78e0(%rsp), %rax
movslq 0x368(%rax), %rax
shlq $0x3, %rax
movl %eax, 0x607c(%rsp)
leaq 0x5870(%rsp), %rdi
movl 0x607c(%rsp), %ecx
leaq 0x3ff54(%rip), %rsi     # 0x1d2004
leaq 0x79635(%rip), %rdx     # 0x20b6ec
movb $0x0, %al
callq 0x5b9c0
movq 0x78e0(%rsp), %rdi
addq $0x1602, %rdi           # imm = 0x1602
leaq 0x5870(%rsp), %r8
leaq 0x3ff58(%rip), %rsi     # 0x1d2034
leaq 0x7952c(%rip), %rdx     # 0x20b60f
movl $0x3ac, %ecx            # imm = 0x3AC
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x7904(%rsp)
jmp 0x19353a
jmp 0x192101
movl 0x78d0(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x78d0(%rsp)
jmp 0x192011
movq 0x78e0(%rsp), %rax
cmpl $0x4, (%rax)
jne 0x192136
movq 0x78e0(%rsp), %rax
cmpl $0x0, 0x4(%rax)
jne 0x192455
movl $0x0, 0x78cc(%rsp)
movl 0x78cc(%rsp), %eax
movq 0x78e0(%rsp), %rcx
cmpl 0x368(%rcx), %eax
jge 0x192450
movq 0x78e0(%rsp), %rax
movq 0x370(%rax), %rax
movslq 0x78cc(%rsp), %rcx
movsd (%rax,%rcx,8), %xmm0
movsd 0x43348(%rip), %xmm1    # 0x1d54c8
callq 0x8610
movsd %xmm0, (%rsp)
movq 0x78e0(%rsp), %rax
movq 0x370(%rax), %rax
movslq 0x78cc(%rsp), %rcx
movsd (%rax,%rcx,8), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
callq 0x8670
movaps %xmm0, %xmm1
movsd (%rsp), %xmm0
mulsd %xmm1, %xmm0
movsd %xmm0, 0x8(%rsp)
movq 0x78e0(%rsp), %rax
movq 0x370(%rax), %rax
movslq 0x78cc(%rsp), %rcx
movsd (%rax,%rcx,8), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
callq 0x8670
movaps %xmm0, %xmm1
movsd 0x40031(%rip), %xmm0    # 0x1d2248
subsd %xmm1, %xmm0
movsd 0x40a5d(%rip), %xmm1    # 0x1d2c80
callq 0x8610
movaps %xmm0, %xmm1
movsd 0x8(%rsp), %xmm0
divsd %xmm1, %xmm0
movq 0x78e0(%rsp), %rax
movq 0xbd0(%rax), %rax
movq 0x78e0(%rsp), %rcx
movslq 0xbe0(%rcx), %rcx
movq (%rax,%rcx,8), %rax
movslq 0x78cc(%rsp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movq 0x78e0(%rsp), %rax
movq 0xbd0(%rax), %rax
movq 0x78e0(%rsp), %rcx
movslq 0xbe0(%rcx), %rcx
movq (%rax,%rcx,8), %rax
movslq 0x78cc(%rsp), %rcx
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, 0x20(%rsp)
movq 0x78e0(%rsp), %rax
movq 0x370(%rax), %rax
movslq 0x78cc(%rsp), %rcx
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, 0x10(%rsp)
movq 0x78e0(%rsp), %rax
movq 0x370(%rax), %rax
movslq 0x78cc(%rsp), %rcx
movsd (%rax,%rcx,8), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
callq 0x8670
movaps %xmm0, %xmm2
movsd 0x10(%rsp), %xmm0
movsd 0x3ff44(%rip), %xmm1    # 0x1d2248
addsd %xmm2, %xmm1
mulsd %xmm1, %xmm0
movsd %xmm0, 0x18(%rsp)
movq 0x78e0(%rsp), %rax
movq 0x370(%rax), %rax
movslq 0x78cc(%rsp), %rcx
movsd (%rax,%rcx,8), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
callq 0x8670
movsd 0x18(%rsp), %xmm1
movaps %xmm0, %xmm3
movsd 0x20(%rsp), %xmm0
movsd 0x3fee7(%rip), %xmm2    # 0x1d2248
subsd %xmm3, %xmm2
divsd %xmm2, %xmm1
movsd 0x43157(%rip), %xmm2    # 0x1d54c8
subsd %xmm2, %xmm1
mulsd %xmm1, %xmm0
movq 0x78e0(%rsp), %rax
movq 0xbd0(%rax), %rax
movq 0x78e0(%rsp), %rcx
movslq 0xbe8(%rcx), %rcx
movq (%rax,%rcx,8), %rax
movslq 0x78cc(%rsp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movq 0x78e0(%rsp), %rax
movq 0xbd0(%rax), %rax
movq 0x78e0(%rsp), %rcx
movslq 0xbe0(%rcx), %rcx
movq (%rax,%rcx,8), %rax
movslq 0x78cc(%rsp), %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x78e0(%rsp), %rax
movq 0x370(%rax), %rax
movslq 0x78cc(%rsp), %rcx
movsd 0x3fe52(%rip), %xmm2    # 0x1d2248
divsd (%rax,%rcx,8), %xmm2
movsd 0x77f4d(%rip), %xmm1    # 0x20a350
subsd %xmm2, %xmm1
mulsd %xmm1, %xmm0
movq 0x78e0(%rsp), %rax
movq 0xbd0(%rax), %rax
movq 0x78e0(%rsp), %rcx
movslq 0xbe4(%rcx), %rcx
movq (%rax,%rcx,8), %rax
movslq 0x78cc(%rsp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movl 0x78cc(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x78cc(%rsp)
jmp 0x192141
jmp 0x192896
movq 0x78f8(%rsp), %rdi
movq 0x78e0(%rsp), %rsi
callq 0x195ce0
cmpl $0x1, %eax
jne 0x1924dc
leaq 0x5070(%rsp), %rdi
movq 0x78e0(%rsp), %rcx
addq $0x1602, %rcx           # imm = 0x1602
leaq 0x3ff4b(%rip), %rsi     # 0x1d23d8
leaq 0x79278(%rip), %rdx     # 0x20b70c
movb $0x0, %al
callq 0x5b9c0
movq 0x78e0(%rsp), %rdi
addq $0x1602, %rdi           # imm = 0x1602
leaq 0x5070(%rsp), %r8
leaq 0x3fb7b(%rip), %rsi     # 0x1d2034
leaq 0x7914f(%rip), %rdx     # 0x20b60f
movl $0x3c3, %ecx            # imm = 0x3C3
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x7904(%rsp)
jmp 0x19353a
movq 0x78e0(%rsp), %rdi
callq 0x196910
cmpl $0x1, %eax
jne 0x19255b
leaq 0x4870(%rsp), %rdi
movq 0x78e0(%rsp), %rcx
addq $0x1602, %rcx           # imm = 0x1602
leaq 0x3fecc(%rip), %rsi     # 0x1d23d8
leaq 0x7921b(%rip), %rdx     # 0x20b72e
movb $0x0, %al
callq 0x5b9c0
movq 0x78e0(%rsp), %rdi
addq $0x1602, %rdi           # imm = 0x1602
leaq 0x4870(%rsp), %r8
leaq 0x3fafc(%rip), %rsi     # 0x1d2034
leaq 0x790d0(%rip), %rdx     # 0x20b60f
movl $0x3c6, %ecx            # imm = 0x3C6
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x7904(%rsp)
jmp 0x19353a
movq 0x78e0(%rsp), %rax
movslq 0x4(%rax), %rdi
shlq $0x3, %rdi
callq 0x8460
movq %rax, 0x78d8(%rsp)
cmpq $0x0, 0x78d8(%rsp)
jne 0x1925ff
movq 0x78e0(%rsp), %rax
movslq 0x4(%rax), %rax
shlq $0x3, %rax
movl %eax, 0x486c(%rsp)
leaq 0x4060(%rsp), %rdi
movl 0x486c(%rsp), %ecx
leaq 0x3fa54(%rip), %rsi     # 0x1d2004
leaq 0x421ca(%rip), %rdx     # 0x1d4781
movb $0x0, %al
callq 0x5b9c0
movq 0x78e0(%rsp), %rdi
addq $0x1602, %rdi           # imm = 0x1602
leaq 0x4060(%rsp), %r8
leaq 0x3fa58(%rip), %rsi     # 0x1d2034
leaq 0x7902c(%rip), %rdx     # 0x20b60f
movl $0x3cb, %ecx            # imm = 0x3CB
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x7904(%rsp)
jmp 0x19353a
movl $0x0, 0x78cc(%rsp)
movl 0x78cc(%rsp), %eax
movq 0x78e0(%rsp), %rcx
cmpl 0x368(%rcx), %eax
jge 0x19280a
movq 0x78e0(%rsp), %rdi
movq 0x78e0(%rsp), %rax
movq 0x370(%rax), %rax
movslq 0x78cc(%rsp), %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x78e0(%rsp), %rax
mulsd 0x380(%rax), %xmm0
movq 0x78e0(%rsp), %rax
movq 0xbd0(%rax), %rax
movq 0x78e0(%rsp), %rcx
movslq 0xbe0(%rcx), %rcx
movq (%rax,%rcx,8), %rsi
movslq 0x78cc(%rsp), %rax
shlq $0x3, %rax
addq %rax, %rsi
movq 0x78e0(%rsp), %rax
movq 0xbd0(%rax), %rax
movq 0x78e0(%rsp), %rcx
movslq 0xbe8(%rcx), %rcx
movq (%rax,%rcx,8), %rdx
movslq 0x78cc(%rsp), %rax
shlq $0x3, %rax
addq %rax, %rdx
movq 0x78e0(%rsp), %rax
movq 0xbd0(%rax), %rax
movq 0x78e0(%rsp), %rcx
movslq 0xbe4(%rcx), %rcx
movq (%rax,%rcx,8), %rcx
movslq 0x78cc(%rsp), %rax
shlq $0x3, %rax
addq %rax, %rcx
movq 0x78d8(%rsp), %r8
leaq 0x78d4(%rsp), %r9
callq 0x196f80
cmpl $0x1, %eax
jne 0x192773
leaq 0x3860(%rsp), %rdi
movq 0x78e0(%rsp), %rcx
addq $0x1602, %rcx           # imm = 0x1602
leaq 0x3fcb4(%rip), %rsi     # 0x1d23d8
leaq 0x79023(%rip), %rdx     # 0x20b74e
movb $0x0, %al
callq 0x5b9c0
movq 0x78e0(%rsp), %rdi
addq $0x1602, %rdi           # imm = 0x1602
leaq 0x3860(%rsp), %r8
leaq 0x3f8e4(%rip), %rsi     # 0x1d2034
leaq 0x78eb8(%rip), %rdx     # 0x20b60f
movl $0x3d7, %ecx            # imm = 0x3D7
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x7904(%rsp)
jmp 0x19353a
movl $0x0, 0x78c8(%rsp)
movl 0x78c8(%rsp), %eax
movq 0x78e0(%rsp), %rcx
cmpl 0x4(%rcx), %eax
jge 0x1927f2
movq 0x78d8(%rsp), %rax
movslq 0x78c8(%rsp), %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x78e0(%rsp), %rax
movq 0xbd0(%rax), %rax
movq 0x78e0(%rsp), %rcx
movl 0xbec(%rcx), %ecx
addl 0x78c8(%rsp), %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rax
movslq 0x78cc(%rsp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movl 0x78c8(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x78c8(%rsp)
jmp 0x19277e
jmp 0x1927f4
movl 0x78cc(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x78cc(%rsp)
jmp 0x19260a
movq 0x78e0(%rsp), %rdi
callq 0x197730
cmpl $0x1, %eax
jne 0x192889
leaq 0x3060(%rsp), %rdi
movq 0x78e0(%rsp), %rcx
addq $0x1602, %rcx           # imm = 0x1602
leaq 0x3fb9e(%rip), %rsi     # 0x1d23d8
leaq 0x78ff7(%rip), %rdx     # 0x20b838
movb $0x0, %al
callq 0x5b9c0
movq 0x78e0(%rsp), %rdi
addq $0x1602, %rdi           # imm = 0x1602
leaq 0x3060(%rsp), %r8
leaq 0x3f7ce(%rip), %rsi     # 0x1d2034
leaq 0x78da2(%rip), %rdx     # 0x20b60f
movl $0x3e1, %ecx            # imm = 0x3E1
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x7904(%rsp)
jmp 0x19353a
movq 0x78d8(%rsp), %rdi
callq 0x8420
movq 0x78e0(%rsp), %rax
xorps %xmm0, %xmm0
movsd %xmm0, 0xbf8(%rax)
movq 0x78e0(%rsp), %rax
cmpl $0x4, (%rax)
jne 0x192b10
movq 0x78e0(%rsp), %rax
cmpl $0x0, 0x4(%rax)
je 0x192b10
movq 0x78e0(%rsp), %rax
movq 0xbd0(%rax), %rax
movq 0x78e0(%rsp), %rcx
movslq 0xbe0(%rcx), %rcx
movq (%rax,%rcx,8), %rdi
movq 0x78e0(%rsp), %rax
movl 0x368(%rax), %esi
movq 0x78e0(%rsp), %rax
movq 0x378(%rax), %rdx
movq 0x78e0(%rsp), %r8
addq $0x1602, %r8            # imm = 0x1602
leaq 0x78b8(%rsp), %rcx
callq 0x2ab10
cmpl $0x1, %eax
jne 0x192999
leaq 0x2860(%rsp), %rdi
movq 0x78e0(%rsp), %rcx
addq $0x1602, %rcx           # imm = 0x1602
leaq 0x3fa8e(%rip), %rsi     # 0x1d23d8
leaq 0x78f05(%rip), %rdx     # 0x20b856
movb $0x0, %al
callq 0x5b9c0
movq 0x78e0(%rsp), %rdi
addq $0x1602, %rdi           # imm = 0x1602
leaq 0x2860(%rsp), %r8
leaq 0x3f6be(%rip), %rsi     # 0x1d2034
leaq 0x78c92(%rip), %rdx     # 0x20b60f
movl $0x3f0, %ecx            # imm = 0x3F0
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x7904(%rsp)
jmp 0x19353a
movl $0x0, 0x78c8(%rsp)
movl 0x78c8(%rsp), %eax
movq 0x78e0(%rsp), %rcx
cmpl 0x4(%rcx), %eax
jge 0x192b0e
movq 0x78e0(%rsp), %rax
movq 0xbd0(%rax), %rax
movq 0x78e0(%rsp), %rcx
movl 0xbec(%rcx), %ecx
addl 0x78c8(%rsp), %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdi
movq 0x78e0(%rsp), %rax
movl 0x368(%rax), %esi
movq 0x78e0(%rsp), %rax
movq 0x378(%rax), %rdx
movq 0x78e0(%rsp), %r8
addq $0x1602, %r8            # imm = 0x1602
leaq 0x78c0(%rsp), %rcx
callq 0x2ab10
cmpl $0x1, %eax
jne 0x192a92
leaq 0x2060(%rsp), %rdi
movq 0x78e0(%rsp), %rcx
addq $0x1602, %rcx           # imm = 0x1602
leaq 0x3f995(%rip), %rsi     # 0x1d23d8
leaq 0x78e8a(%rip), %rdx     # 0x20b8d4
movb $0x0, %al
callq 0x5b9c0
movq 0x78e0(%rsp), %rdi
addq $0x1602, %rdi           # imm = 0x1602
leaq 0x2060(%rsp), %r8
leaq 0x3f5c5(%rip), %rsi     # 0x1d2034
leaq 0x78b99(%rip), %rdx     # 0x20b60f
movl $0x3f8, %ecx            # imm = 0x3F8
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x7904(%rsp)
jmp 0x19353a
movsd 0x42a2e(%rip), %xmm0    # 0x1d54c8
mulsd 0x78c0(%rsp), %xmm0
divsd 0x78b8(%rsp), %xmm0
movq 0x78e0(%rsp), %rax
movq 0xbc8(%rax), %rax
movq 0x78e0(%rsp), %rcx
movl 0xbec(%rcx), %ecx
addl 0x78c8(%rsp), %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm2
movq 0x78e0(%rsp), %rax
movsd 0xbf8(%rax), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, 0xbf8(%rax)
movl 0x78c8(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x78c8(%rsp)
jmp 0x1929a4
jmp 0x192b10
movq 0x78e0(%rsp), %rax
movslq 0x368(%rax), %rdi
shlq $0x3, %rdi
callq 0x8460
movq %rax, %rcx
movq 0x78e0(%rsp), %rax
movq %rcx, 0xc10(%rax)
movq 0x78e0(%rsp), %rax
cmpq $0x0, 0xc10(%rax)
jne 0x192bcb
movq 0x78e0(%rsp), %rax
movslq 0x368(%rax), %rax
shlq $0x3, %rax
movl %eax, 0x205c(%rsp)
leaq 0x1850(%rsp), %rdi
movl 0x205c(%rsp), %ecx
leaq 0x3f488(%rip), %rsi     # 0x1d2004
leaq 0x78dd9(%rip), %rdx     # 0x20b95c
movb $0x0, %al
callq 0x5b9c0
movq 0x78e0(%rsp), %rdi
addq $0x1602, %rdi           # imm = 0x1602
leaq 0x1850(%rsp), %r8
leaq 0x3f48c(%rip), %rsi     # 0x1d2034
leaq 0x78a60(%rip), %rdx     # 0x20b60f
movl $0x400, %ecx            # imm = 0x400
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x7904(%rsp)
jmp 0x19353a
movq 0x78e0(%rsp), %rax
movslq 0xbf0(%rax), %rdi
shlq $0x3, %rdi
callq 0x8460
movq %rax, %rcx
movq 0x78e0(%rsp), %rax
movq %rcx, 0xbd8(%rax)
movq 0x78e0(%rsp), %rax
cmpq $0x0, 0xbd8(%rax)
jne 0x192c86
movq 0x78e0(%rsp), %rax
movslq 0xbf0(%rax), %rax
shlq $0x3, %rax
movl %eax, 0x184c(%rsp)
leaq 0x1040(%rsp), %rdi
movl 0x184c(%rsp), %ecx
leaq 0x3f3cd(%rip), %rsi     # 0x1d2004
leaq 0x78d26(%rip), %rdx     # 0x20b964
movb $0x0, %al
callq 0x5b9c0
movq 0x78e0(%rsp), %rdi
addq $0x1602, %rdi           # imm = 0x1602
leaq 0x1040(%rsp), %r8
leaq 0x3f3d1(%rip), %rsi     # 0x1d2034
leaq 0x789a5(%rip), %rdx     # 0x20b60f
movl $0x404, %ecx            # imm = 0x404
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x7904(%rsp)
jmp 0x19353a
movl $0x0, 0x78d0(%rsp)
movl 0x78d0(%rsp), %eax
movq 0x78e0(%rsp), %rcx
cmpl 0xbf0(%rcx), %eax
jge 0x192d97
movq 0x78e0(%rsp), %rax
movslq 0x368(%rax), %rdi
shlq $0x3, %rdi
callq 0x8460
movq %rax, %rdx
movq 0x78e0(%rsp), %rax
movq 0xbd8(%rax), %rax
movslq 0x78d0(%rsp), %rcx
movq %rdx, (%rax,%rcx,8)
movq 0x78e0(%rsp), %rax
movq 0xbd8(%rax), %rax
movslq 0x78d0(%rsp), %rcx
cmpq $0x0, (%rax,%rcx,8)
jne 0x192d7f
movq 0x78e0(%rsp), %rax
movslq 0x368(%rax), %rax
shlq $0x3, %rax
movl %eax, 0x103c(%rsp)
leaq 0x830(%rsp), %rdi
movl 0x103c(%rsp), %ecx
leaq 0x3f2d4(%rip), %rsi     # 0x1d2004
leaq 0x78c3b(%rip), %rdx     # 0x20b972
movb $0x0, %al
callq 0x5b9c0
movq 0x78e0(%rsp), %rdi
addq $0x1602, %rdi           # imm = 0x1602
leaq 0x830(%rsp), %r8
leaq 0x3f2d8(%rip), %rsi     # 0x1d2034
leaq 0x788ac(%rip), %rdx     # 0x20b60f
movl $0x408, %ecx            # imm = 0x408
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x7904(%rsp)
jmp 0x19353a
jmp 0x192d81
movl 0x78d0(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x78d0(%rsp)
jmp 0x192c91
movl $0x0, 0x78cc(%rsp)
movl 0x78cc(%rsp), %eax
movq 0x78e0(%rsp), %rcx
cmpl 0x368(%rcx), %eax
jge 0x193042
movq 0x78e0(%rsp), %rax
movq 0xc10(%rax), %rax
movslq 0x78cc(%rsp), %rcx
xorps %xmm0, %xmm0
movsd %xmm0, (%rax,%rcx,8)
movl $0x0, 0x78d0(%rsp)
movl 0x78d0(%rsp), %eax
movq 0x78e0(%rsp), %rcx
cmpl 0xbf0(%rcx), %eax
jge 0x19302a
movl 0x78d0(%rsp), %eax
movq 0x78e0(%rsp), %rcx
cmpl 0xbe0(%rcx), %eax
jne 0x192f5f
movq 0x78e0(%rsp), %rax
cmpl $0x1, 0xce8(%rax)
jne 0x192f26
movq 0x78e0(%rsp), %rax
movq 0xbc8(%rax), %rax
movq 0x78e0(%rsp), %rcx
movslq 0xbe0(%rcx), %rcx
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, 0x78b0(%rsp)
movsd 0x3f3e2(%rip), %xmm0    # 0x1d2248
addsd 0x78b0(%rsp), %xmm0
mulsd 0x78b0(%rsp), %xmm0
movq 0x78e0(%rsp), %rax
movq 0xbd0(%rax), %rax
movq 0x78e0(%rsp), %rcx
movslq 0xbe0(%rcx), %rcx
movq (%rax,%rcx,8), %rax
movslq 0x78cc(%rsp), %rcx
movsd (%rax,%rcx,8), %xmm2
movsd 0x78b0(%rsp), %xmm1
mulsd 0x78b0(%rsp), %xmm1
movsd 0x3fdc7(%rip), %xmm3    # 0x1d2c88
mulsd %xmm3, %xmm1
movq 0x78e0(%rsp), %rax
movq 0xbd0(%rax), %rax
movq 0x78e0(%rsp), %rcx
movslq 0xbe8(%rcx), %rcx
movq (%rax,%rcx,8), %rax
movslq 0x78cc(%rsp), %rcx
mulsd (%rax,%rcx,8), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movq 0x78e0(%rsp), %rax
movq 0xbd8(%rax), %rax
movslq 0x78d0(%rsp), %rcx
movq (%rax,%rcx,8), %rax
movslq 0x78cc(%rsp), %rcx
movsd %xmm0, (%rax,%rcx,8)
jmp 0x192f5d
xorps %xmm0, %xmm0
movsd %xmm0, 0x78b0(%rsp)
movq 0x78e0(%rsp), %rax
movq 0xbd8(%rax), %rax
movslq 0x78d0(%rsp), %rcx
movq (%rax,%rcx,8), %rax
movslq 0x78cc(%rsp), %rcx
xorps %xmm0, %xmm0
movsd %xmm0, (%rax,%rcx,8)
jmp 0x192fcb
movq 0x78e0(%rsp), %rax
movq 0xbc8(%rax), %rax
movslq 0x78d0(%rsp), %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x78e0(%rsp), %rax
movq 0xbd0(%rax), %rax
movslq 0x78d0(%rsp), %rcx
movq (%rax,%rcx,8), %rax
movslq 0x78cc(%rsp), %rcx
mulsd (%rax,%rcx,8), %xmm0
movq 0x78e0(%rsp), %rax
movq 0xbd8(%rax), %rax
movslq 0x78d0(%rsp), %rcx
movq (%rax,%rcx,8), %rax
movslq 0x78cc(%rsp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movq 0x78e0(%rsp), %rax
movq 0xbd8(%rax), %rax
movslq 0x78d0(%rsp), %rcx
movq (%rax,%rcx,8), %rax
movslq 0x78cc(%rsp), %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x78e0(%rsp), %rax
movq 0xc10(%rax), %rax
movslq 0x78cc(%rsp), %rcx
addsd (%rax,%rcx,8), %xmm0
movsd %xmm0, (%rax,%rcx,8)
movl 0x78d0(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x78d0(%rsp)
jmp 0x192de7
jmp 0x19302c
movl 0x78cc(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x78cc(%rsp)
jmp 0x192da2
movq 0x78e0(%rsp), %rax
cmpl $0x1, 0xce0(%rax)
jne 0x1931be
movl $0x0, 0x78cc(%rsp)
movl 0x78cc(%rsp), %eax
movq 0x78e0(%rsp), %rcx
cmpl 0x368(%rcx), %eax
jge 0x19318d
movq 0x78f0(%rsp), %rdi
movq 0x78e8(%rsp), %rsi
movq 0x78e0(%rsp), %rdx
movq 0x78e0(%rsp), %rax
movq 0x370(%rax), %rax
movslq 0x78cc(%rsp), %rcx
movsd (%rax,%rcx,8), %xmm4
movsd 0x3f1b7(%rip), %xmm0    # 0x1d2270
movsd 0x7727f(%rip), %xmm1    # 0x20a340
movsd 0x7727f(%rip), %xmm3    # 0x20a348
leaq 0x78a8(%rsp), %rcx
leaq 0x78a0(%rsp), %r8
movaps %xmm3, %xmm2
callq 0x1977d0
cmpl $0x1, %eax
jne 0x19314d
leaq 0x30(%rsp), %rdi
movq 0x78e0(%rsp), %rcx
addq $0x1602, %rcx           # imm = 0x1602
leaq 0x3f2d7(%rip), %rsi     # 0x1d23d8
leaq 0x78884(%rip), %rdx     # 0x20b98c
movb $0x0, %al
callq 0x5b9c0
movq 0x78e0(%rsp), %rdi
addq $0x1602, %rdi           # imm = 0x1602
leaq 0x30(%rsp), %r8
leaq 0x3ef0a(%rip), %rsi     # 0x1d2034
leaq 0x784de(%rip), %rdx     # 0x20b60f
movl $0x434, %ecx            # imm = 0x434
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x7904(%rsp)
jmp 0x19353a
movsd 0x78a0(%rsp), %xmm0
movq 0x78e0(%rsp), %rax
movq 0xc10(%rax), %rax
movslq 0x78cc(%rsp), %rcx
addsd (%rax,%rcx,8), %xmm0
movsd %xmm0, (%rax,%rcx,8)
movl 0x78cc(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x78cc(%rsp)
jmp 0x193062
movsd 0x78a8(%rsp), %xmm0
movq 0x78e0(%rsp), %rax
movq 0xbc8(%rax), %rax
movq 0x78e0(%rsp), %rcx
movslq 0xbe8(%rcx), %rcx
addsd (%rax,%rcx,8), %xmm0
movsd %xmm0, (%rax,%rcx,8)
movq 0x78e0(%rsp), %rax
movq 0xbc8(%rax), %rax
movq 0x78e0(%rsp), %rcx
movslq 0xbe8(%rcx), %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x78e0(%rsp), %rax
movq 0xbc8(%rax), %rax
movq 0x78e0(%rsp), %rcx
movslq 0xbe4(%rcx), %rcx
movsd (%rax,%rcx,8), %xmm1
movsd 0x7711c(%rip), %xmm2    # 0x20a328
divsd %xmm2, %xmm1
movsd 0x422b0(%rip), %xmm2    # 0x1d54c8
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movq 0x78e0(%rsp), %rax
addsd 0xbf8(%rax), %xmm0
movq 0x78e0(%rsp), %rax
movsd %xmm0, 0xc08(%rax)
movq 0x78e0(%rsp), %rax
cmpl $0x1, 0xce8(%rax)
jne 0x19329c
movq 0x78e0(%rsp), %rax
movq 0xbc8(%rax), %rax
movq 0x78e0(%rsp), %rcx
movslq 0xbe0(%rcx), %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x78e0(%rsp), %rax
movsd 0xc08(%rax), %xmm1
movsd 0x4223c(%rip), %xmm2    # 0x1d54c8
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, 0xc08(%rax)
movq 0x78e0(%rsp), %rax
movswl 0x1600(%rax), %eax
cmpl $0x1, %eax
jle 0x19352f
movq 0x78e0(%rsp), %rax
movswl 0x1600(%rax), %eax
cmpl $0x3, %eax
jle 0x19331a
movq 0x78e0(%rsp), %rax
cmpl $0x1, 0xce8(%rax)
jne 0x19331a
movq 0x78e0(%rsp), %rax
movq 0xbc8(%rax), %rax
movq 0x78e0(%rsp), %rcx
movslq 0xbe0(%rcx), %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x78f8(%rsp), %rax
movsd 0x8f8(%rax), %xmm1
leaq 0x786e6(%rip), %rdi     # 0x20b9f9
movb $0x2, %al
callq 0x8030
movq 0x78e0(%rsp), %rax
movq 0xbc8(%rax), %rax
movq 0x78e0(%rsp), %rcx
movslq 0xbe4(%rcx), %rcx
movsd (%rax,%rcx,8), %xmm0
movsd 0x76feb(%rip), %xmm1    # 0x20a330
ucomisd %xmm1, %xmm0
jbe 0x19337e
movq 0x78e0(%rsp), %rax
movq 0xbc8(%rax), %rax
movq 0x78e0(%rsp), %rcx
movslq 0xbe4(%rcx), %rcx
movsd (%rax,%rcx,8), %xmm0
leaq 0x786e7(%rip), %rdi     # 0x20ba5c
movb $0x1, %al
callq 0x8030
jmp 0x1933af
movq 0x78e0(%rsp), %rax
movq 0xbc8(%rax), %rax
movq 0x78e0(%rsp), %rcx
movslq 0xbe4(%rcx), %rcx
movsd (%rax,%rcx,8), %xmm0
leaq 0x78721(%rip), %rdi     # 0x20bac9
movb $0x1, %al
callq 0x8030
movq 0x78e0(%rsp), %rax
movq 0xbc8(%rax), %rax
movq 0x78e0(%rsp), %rcx
movslq 0xbe8(%rcx), %rcx
movsd (%rax,%rcx,8), %xmm0
movsd 0x76f5e(%rip), %xmm1    # 0x20a338
ucomisd %xmm1, %xmm0
jbe 0x193413
movq 0x78e0(%rsp), %rax
movq 0xbc8(%rax), %rax
movq 0x78e0(%rsp), %rcx
movslq 0xbe8(%rcx), %rcx
movsd (%rax,%rcx,8), %xmm0
leaq 0x786d6(%rip), %rdi     # 0x20bae0
movb $0x1, %al
callq 0x8030
jmp 0x193444
movq 0x78e0(%rsp), %rax
movq 0xbc8(%rax), %rax
movq 0x78e0(%rsp), %rcx
movslq 0xbe8(%rcx), %rcx
movsd (%rax,%rcx,8), %xmm0
leaq 0x7870f(%rip), %rdi     # 0x20bb4c
movb $0x1, %al
callq 0x8030
movq 0x78e0(%rsp), %rax
cmpl $0x4, (%rax)
jne 0x193511
movq 0x78e0(%rsp), %rax
cmpl $0x0, 0x4(%rax)
je 0x193511
movq 0x78e0(%rsp), %rax
movswl 0x1600(%rax), %eax
cmpl $0x2, %eax
jle 0x1934f3
movl $0x0, 0x78c8(%rsp)
movl 0x78c8(%rsp), %eax
movq 0x78e0(%rsp), %rcx
cmpl 0x4(%rcx), %eax
jge 0x1934f1
movl 0x78c8(%rsp), %esi
addl $0x1, %esi
movq 0x78e0(%rsp), %rax
movq 0xbc8(%rax), %rax
movq 0x78e0(%rsp), %rcx
movl 0xbec(%rcx), %ecx
addl 0x78c8(%rsp), %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
leaq 0x7868b(%rip), %rdi     # 0x20bb62
movb $0x1, %al
callq 0x8030
movl 0x78c8(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x78c8(%rsp)
jmp 0x193486
jmp 0x1934f3
movq 0x78e0(%rsp), %rax
movsd 0xbf8(%rax), %xmm0
leaq 0x78676(%rip), %rdi     # 0x20bb80
movb $0x1, %al
callq 0x8030
movq 0x78e0(%rsp), %rax
movsd 0xc08(%rax), %xmm0
leaq 0x78674(%rip), %rdi     # 0x20bb9c
movb $0x1, %al
callq 0x8030
movl $0x0, 0x7904(%rsp)
movl 0x7904(%rsp), %eax
addq $0x7908, %rsp           # imm = 0x7908
retq
nopl (%rax)