// File: /workspace/github_c_makefile_star2_O0/lesgourg[P]class_public/build/../source/input.c
// Function: input_get_guess
int input_get_guess(double *xguess,
                    double *dxdy,
                    struct fzerofun_workspace * pfzw,
                    ErrorMsg errmsg){

  /** Summary: */

  /** Define local variables */
  struct precision pr;        /* for precision parameters */
  struct background ba;       /* for cosmological background */
  struct thermodynamics th;           /* for thermodynamics */
  struct perturbations pt;         /* for source functions */
  struct transfer tr;        /* for transfer functions */
  struct primordial pm;       /* for primordial spectra */
  struct harmonic hr;          /* for output spectra */
  struct fourier fo;        /* for non-linear spectra */
  struct lensing le;          /* for lensed spectra */
  struct distortions sd;      /* for spectral distortions */
  struct output op;           /* for output files */
  int i;
  double Omega_M, a_decay, gamma, Omega0_dcdmdr=1.0;
  int index_guess;
  int index_ncdm; double N_nonur_guess = 0.0;

  /* Cheat to read only known parameters: */
  pfzw->fc.size -= pfzw->target_size;

  /* Assume for now shooting did not fail */
  ba.shooting_failed = _FALSE_;

  class_call(input_read_precisions(&(pfzw->fc),&pr,&ba,&th,&pt,&tr,&pm,&hr,&fo,&le,&sd,&op,
                                   errmsg),
             errmsg,
             errmsg);
  class_call(input_read_parameters(&(pfzw->fc),&pr,&ba,&th,&pt,&tr,&pm,&hr,&fo,&le,&sd,&op,
                                   errmsg),
             errmsg,
             errmsg);

  pfzw->fc.size += pfzw->target_size;

  /** Estimate dxdy */
  for (index_guess=0; index_guess < pfzw->target_size; index_guess++) {
    switch (pfzw->target_name[index_guess]) {
    case theta_s:
    case theta_s_100:
      xguess[index_guess] = 3.54*pow(pfzw->target_value[index_guess],2)-5.455*pfzw->target_value[index_guess]+2.548;
      dxdy[index_guess] = (7.08*pfzw->target_value[index_guess]-5.455);
      /** Update pb to reflect guess */
      ba.h = xguess[index_guess];
      ba.H0 = ba.h *  1.e5 / _c_;
      break;
    case Neff:
      for(index_ncdm=0;index_ncdm<ba.N_ncdm;++index_ncdm){
        N_nonur_guess += ba.deg_ncdm[index_ncdm]* 1.0132;
      }
      N_nonur_guess += ba.Omega0_idr/ba.Omega0_g/(7./8.)*pow(11./4.,(4./3.));
      xguess[index_guess] = pfzw->target_value[index_guess] - N_nonur_guess;
      dxdy[index_guess] = 1.;
      break;
    case Omega_dcdmdr:
      Omega_M = ba.Omega0_cdm+ba.Omega0_idm+ba.Omega0_dcdmdr+ba.Omega0_b;
      /* *
       * This formula is exact in a Matter + Lambda Universe, but only for Omega_dcdm,
       * not the combined.
       * sqrt_one_minus_M = sqrt(1.0 - Omega_M);
       * xguess[index_guess] = pfzw->target_value[index_guess]*
       *                       exp(2./3.*ba.Gamma_dcdm/ba.H0*
       *                       atanh(sqrt_one_minus_M)/sqrt_one_minus_M);
       * dxdy[index_guess] = 1.0;//exp(2./3.*ba.Gamma_dcdm/ba.H0*atanh(sqrt_one_minus_M)/sqrt_one_minus_M);
       * */
      gamma = ba.Gamma_dcdm/ba.H0;
      if (gamma < 1)
        a_decay = 1.0;
      else
        a_decay = pow(1+(gamma*gamma-1.)/Omega_M,-1./3.);
      xguess[index_guess] = pfzw->target_value[index_guess]/a_decay;
      dxdy[index_guess] = 1./a_decay;
      break;
    case omega_dcdmdr:
      Omega_M = ba.Omega0_cdm+ba.Omega0_idm+ba.Omega0_dcdmdr+ba.Omega0_b;
      gamma = ba.Gamma_dcdm/ba.H0;
      if (gamma < 1)
        a_decay = 1.0;
      else
        a_decay = pow(1+(gamma*gamma-1.)/Omega_M,-1./3.);
      xguess[index_guess] = pfzw->target_value[index_guess]/ba.h/ba.h/a_decay;
      dxdy[index_guess] = 1./a_decay/ba.h/ba.h;
      break;
    case Omega_scf:
      /* *
       * This guess is arbitrary, something nice using WKB should be implemented.
       * Version 2 uses a fit
       * xguess[index_guess] = 1.77835*pow(ba.Omega0_scf,-2./7.);
       * dxdy[index_guess] = -0.5081*pow(ba.Omega0_scf,-9./7.)`;
       * Version 3: use attractor solution
       * */
      if (ba.scf_tuning_index == 0){
        xguess[index_guess] = sqrt(3.0/ba.Omega0_scf);
        dxdy[index_guess] = -0.5*sqrt(3.0)*pow(ba.Omega0_scf,-1.5);
      }
      else{
        /* Default: take the passed value as xguess and set dxdy to 1. */
        xguess[index_guess] = ba.scf_parameters[ba.scf_tuning_index];
        dxdy[index_guess] = 1.;
      }
      break;
    case omega_ini_dcdm:
      Omega0_dcdmdr = 1./(ba.h*ba.h);
    case Omega_ini_dcdm:
      /* This works since correspondence is Omega_ini_dcdm -> Omega_dcdmdr and
         omega_ini_dcdm -> omega_dcdmdr */
      Omega0_dcdmdr *=pfzw->target_value[index_guess];
      Omega_M = ba.Omega0_cdm+ba.Omega0_idm+Omega0_dcdmdr+ba.Omega0_b;
      gamma = ba.Gamma_dcdm/ba.H0;
      if (gamma < 1)
        a_decay = 1.0;
      else
        a_decay = pow(1+(gamma*gamma-1.)/Omega_M,-1./3.);
      xguess[index_guess] = pfzw->target_value[index_guess]*a_decay;
      dxdy[index_guess] = a_decay;
      if (gamma > 100)
        dxdy[index_guess] *= gamma/100;
      break;

    case sigma8:
      /* Assume linear relationship between A_s and sigma8 and fix coefficient
         according to vanilla LambdaCDM. Should be good enough... */
      xguess[index_guess] = 2.43e-9/0.87659*pfzw->target_value[index_guess];
      dxdy[index_guess] = 2.43e-9/0.87659;
      break;
    case S8:
      /* Assume linear relationship between A_s and S8 and fix coefficient
         according to vanilla LambdaCDM. Should be good enough... */
      xguess[index_guess] = 2.43e-9/0.891*pfzw->target_value[index_guess];
      dxdy[index_guess] = 2.43e-9/0.891;
      break;
    }
  }

  for (i=0; i<pfzw->fc.size; i++) {
    pfzw->fc.read[i] = _FALSE_;
  }

  /** - Deallocate everything allocated by input_read_parameters */
  background_free_input(&ba);
  thermodynamics_free_input(&th);
  perturbations_free_input(&pt);

  return _SUCCESS_;

}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x12478, %rsp          # imm = 0x12478
movq %rdi, 0x12468(%rsp)
movq %rsi, 0x12460(%rsp)
movq %rdx, 0x12458(%rsp)
movq %rcx, 0x12450(%rsp)
movsd 0x14a552(%rip), %xmm0   # 0x1b7248
movsd %xmm0, 0x1068(%rsp)
xorps %xmm0, %xmm0
movsd %xmm0, 0x1058(%rsp)
movq 0x12458(%rsp), %rax
movl 0x40(%rax), %edx
movq 0x12458(%rsp), %rax
movl 0x10(%rax), %ecx
subl %edx, %ecx
movl %ecx, 0x10(%rax)
movw $0x0, 0x10218(%rsp)
movq 0x12458(%rsp), %rdi
addq $0x8, %rdi
movq 0x12450(%rsp), %rax
leaq 0x11220(%rsp), %rsi
leaq 0xfe98(%rsp), %rdx
leaq 0xe630(%rsp), %rcx
leaq 0x7238(%rsp), %r8
leaq 0x60c8(%rsp), %r9
leaq 0x5598(%rsp), %r12
leaq 0x4cb0(%rsp), %r15
leaq 0x4348(%rsp), %r14
leaq 0x3ab8(%rsp), %rbx
leaq 0x1cb0(%rsp), %r11
leaq 0x1090(%rsp), %r10
movq %r12, (%rsp)
movq %r15, 0x8(%rsp)
movq %r14, 0x10(%rsp)
movq %rbx, 0x18(%rsp)
movq %r11, 0x20(%rsp)
movq %r10, 0x28(%rsp)
movq %rax, 0x30(%rsp)
callq 0x5e490
cmpl $0x1, %eax
jne 0x6ce27
leaq 0x850(%rsp), %rdi
movq 0x12450(%rsp), %rcx
leaq 0x14a5f9(%rip), %rsi    # 0x1b73d8
leaq 0x14f8f2(%rip), %rdx    # 0x1bc6d8
movb $0x0, %al
callq 0x5b9c0
movq 0x12450(%rsp), %rdi
leaq 0x850(%rsp), %r8
leaq 0x14a230(%rip), %rsi    # 0x1b7034
leaq 0x14f924(%rip), %rdx    # 0x1bc72f
movl $0x493, %ecx            # imm = 0x493
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x12474(%rsp)
jmp 0x6d7f1
movq 0x12458(%rsp), %rdi
addq $0x8, %rdi
movq 0x12450(%rsp), %rax
leaq 0x11220(%rsp), %rsi
leaq 0xfe98(%rsp), %rdx
leaq 0xe630(%rsp), %rcx
leaq 0x7238(%rsp), %r8
leaq 0x60c8(%rsp), %r9
leaq 0x5598(%rsp), %r12
leaq 0x4cb0(%rsp), %r15
leaq 0x4348(%rsp), %r14
leaq 0x3ab8(%rsp), %rbx
leaq 0x1cb0(%rsp), %r11
leaq 0x1090(%rsp), %r10
movq %r12, (%rsp)
movq %r15, 0x8(%rsp)
movq %r14, 0x10(%rsp)
movq %rbx, 0x18(%rsp)
movq %r11, 0x20(%rsp)
movq %r10, 0x28(%rsp)
movq %rax, 0x30(%rsp)
callq 0x6a490
cmpl $0x1, %eax
jne 0x6cf18
leaq 0x50(%rsp), %rdi
movq 0x12450(%rsp), %rcx
leaq 0x14a505(%rip), %rsi    # 0x1b73d8
leaq 0x14f865(%rip), %rdx    # 0x1bc73f
movb $0x0, %al
callq 0x5b9c0
movq 0x12450(%rsp), %rdi
leaq 0x50(%rsp), %r8
leaq 0x14a13f(%rip), %rsi    # 0x1b7034
leaq 0x14f833(%rip), %rdx    # 0x1bc72f
movl $0x497, %ecx            # imm = 0x497
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x12474(%rsp)
jmp 0x6d7f1
movq 0x12458(%rsp), %rax
movl 0x40(%rax), %ecx
movq 0x12458(%rsp), %rax
addl 0x10(%rax), %ecx
movl %ecx, 0x10(%rax)
movl $0x0, 0x1064(%rsp)
movl 0x1064(%rsp), %eax
movq 0x12458(%rsp), %rcx
cmpl 0x40(%rcx), %eax
jge 0x6d773
movq 0x12458(%rsp), %rax
movq 0x30(%rax), %rax
movslq 0x1064(%rsp), %rcx
movl (%rax,%rcx,4), %eax
movq %rax, 0x48(%rsp)
subq $0x9, %rax
ja 0x6d75b
movq 0x48(%rsp), %rax
leaq 0x14e852(%rip), %rcx    # 0x1bb7d8
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq 0x12458(%rsp), %rax
movq 0x38(%rax), %rax
movslq 0x1064(%rsp), %rcx
movsd (%rax,%rcx,8), %xmm0
movsd 0x14acd0(%rip), %xmm1   # 0x1b7c80
callq 0x8610
movq 0x12458(%rsp), %rax
movq 0x38(%rax), %rax
movslq 0x1064(%rsp), %rcx
movsd 0x14e6cf(%rip), %xmm1   # 0x1bb6a0
mulsd (%rax,%rcx,8), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
movsd 0x14e6a3(%rip), %xmm2   # 0x1bb698
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd 0x14e68b(%rip), %xmm1   # 0x1bb690
addsd %xmm1, %xmm0
movq 0x12468(%rsp), %rax
movslq 0x1064(%rsp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movq 0x12458(%rsp), %rax
movq 0x38(%rax), %rax
movslq 0x1064(%rsp), %rcx
movsd (%rax,%rcx,8), %xmm0
movsd 0x14e641(%rip), %xmm1   # 0x1bb680
mulsd %xmm1, %xmm0
movsd 0x14e63d(%rip), %xmm1   # 0x1bb688
addsd %xmm1, %xmm0
movq 0x12460(%rsp), %rax
movslq 0x1064(%rsp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movq 0x12468(%rsp), %rax
movslq 0x1064(%rsp), %rcx
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, 0xfea0(%rsp)
movsd 0x14e5ee(%rip), %xmm0   # 0x1bb678
mulsd 0xfea0(%rsp), %xmm0
movsd 0x14e5d5(%rip), %xmm1   # 0x1bb670
divsd %xmm1, %xmm0
movsd %xmm0, 0xfe98(%rsp)
jmp 0x6d75b
movl $0x0, 0x1060(%rsp)
movl 0x1060(%rsp), %eax
cmpl 0xff08(%rsp), %eax
jge 0x6d112
movq 0xff68(%rsp), %rax
movslq 0x1060(%rsp), %rcx
movsd (%rax,%rcx,8), %xmm0
movsd 0x1058(%rsp), %xmm1
movsd 0x14e57a(%rip), %xmm2   # 0x1bb668
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, 0x1058(%rsp)
movl 0x1060(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x1060(%rsp)
jmp 0x6d0b8
movsd 0xfed8(%rsp), %xmm0
divsd 0xfea8(%rsp), %xmm0
movsd 0x14a16c(%rip), %xmm1   # 0x1b7298
divsd %xmm1, %xmm0
movsd %xmm0, 0x40(%rsp)
movsd 0x14e522(%rip), %xmm0   # 0x1bb660
movsd 0x14d3ca(%rip), %xmm1   # 0x1ba510
callq 0x8610
movaps %xmm0, %xmm2
movsd 0x40(%rsp), %xmm0
movsd 0x1058(%rsp), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, 0x1058(%rsp)
movq 0x12458(%rsp), %rax
movq 0x38(%rax), %rax
movslq 0x1064(%rsp), %rcx
movsd (%rax,%rcx,8), %xmm0
subsd 0x1058(%rsp), %xmm0
movq 0x12468(%rsp), %rax
movslq 0x1064(%rsp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movq 0x12460(%rsp), %rax
movslq 0x1064(%rsp), %rcx
movsd 0x14a08b(%rip), %xmm0   # 0x1b7248
movsd %xmm0, (%rax,%rcx,8)
jmp 0x6d75b
movsd 0xfec8(%rsp), %xmm0
addsd 0xfed0(%rsp), %xmm0
addsd 0xfee8(%rsp), %xmm0
addsd 0xfeb8(%rsp), %xmm0
movsd %xmm0, 0x1080(%rsp)
movsd 0xfef8(%rsp), %xmm0
divsd 0xfe98(%rsp), %xmm0
movsd %xmm0, 0x1070(%rsp)
movsd 0x14a031(%rip), %xmm0   # 0x1b7248
ucomisd 0x1070(%rsp), %xmm0
jbe 0x6d235
movsd 0x14a01e(%rip), %xmm0   # 0x1b7248
movsd %xmm0, 0x1078(%rsp)
jmp 0x6d282
movsd 0x1070(%rsp), %xmm1
movsd 0x1070(%rsp), %xmm0
mulsd %xmm0, %xmm1
movsd 0x14a57d(%rip), %xmm0   # 0x1b77d0
addsd %xmm0, %xmm1
divsd 0x1080(%rsp), %xmm1
movsd 0x149fe0(%rip), %xmm0   # 0x1b7248
addsd %xmm1, %xmm0
movsd 0x14e3e4(%rip), %xmm1   # 0x1bb658
callq 0x8610
movsd %xmm0, 0x1078(%rsp)
movq 0x12458(%rsp), %rax
movq 0x38(%rax), %rax
movslq 0x1064(%rsp), %rcx
movsd (%rax,%rcx,8), %xmm0
divsd 0x1078(%rsp), %xmm0
movq 0x12468(%rsp), %rax
movslq 0x1064(%rsp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movsd 0x149f87(%rip), %xmm0   # 0x1b7248
divsd 0x1078(%rsp), %xmm0
movq 0x12460(%rsp), %rax
movslq 0x1064(%rsp), %rcx
movsd %xmm0, (%rax,%rcx,8)
jmp 0x6d75b
movsd 0xfec8(%rsp), %xmm0
addsd 0xfed0(%rsp), %xmm0
addsd 0xfee8(%rsp), %xmm0
addsd 0xfeb8(%rsp), %xmm0
movsd %xmm0, 0x1080(%rsp)
movsd 0xfef8(%rsp), %xmm0
divsd 0xfe98(%rsp), %xmm0
movsd %xmm0, 0x1070(%rsp)
movsd 0x149f14(%rip), %xmm0   # 0x1b7248
ucomisd 0x1070(%rsp), %xmm0
jbe 0x6d352
movsd 0x149f01(%rip), %xmm0   # 0x1b7248
movsd %xmm0, 0x1078(%rsp)
jmp 0x6d39f
movsd 0x1070(%rsp), %xmm1
movsd 0x1070(%rsp), %xmm0
mulsd %xmm0, %xmm1
movsd 0x14a460(%rip), %xmm0   # 0x1b77d0
addsd %xmm0, %xmm1
divsd 0x1080(%rsp), %xmm1
movsd 0x149ec3(%rip), %xmm0   # 0x1b7248
addsd %xmm1, %xmm0
movsd 0x14e2c7(%rip), %xmm1   # 0x1bb658
callq 0x8610
movsd %xmm0, 0x1078(%rsp)
movq 0x12458(%rsp), %rax
movq 0x38(%rax), %rax
movslq 0x1064(%rsp), %rcx
movsd (%rax,%rcx,8), %xmm0
divsd 0xfea0(%rsp), %xmm0
divsd 0xfea0(%rsp), %xmm0
divsd 0x1078(%rsp), %xmm0
movq 0x12468(%rsp), %rax
movslq 0x1064(%rsp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movsd 0x149e58(%rip), %xmm0   # 0x1b7248
divsd 0x1078(%rsp), %xmm0
divsd 0xfea0(%rsp), %xmm0
divsd 0xfea0(%rsp), %xmm0
movq 0x12460(%rsp), %rax
movslq 0x1064(%rsp), %rcx
movsd %xmm0, (%rax,%rcx,8)
jmp 0x6d75b
cmpl $0x0, 0xffec(%rsp)
jne 0x6d4ba
movsd 0x14b25d(%rip), %xmm0   # 0x1b8698
divsd 0xffa0(%rsp), %xmm0
callq 0x82e0
movq 0x12468(%rsp), %rax
movslq 0x1064(%rsp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movsd 0x14b232(%rip), %xmm0   # 0x1b8698
callq 0x82e0
movaps %xmm0, %xmm1
movsd 0x14b22a(%rip), %xmm0   # 0x1b86a0
mulsd %xmm1, %xmm0
movsd %xmm0, 0x38(%rsp)
movsd 0xffa0(%rsp), %xmm0
movsd 0x14d057(%rip), %xmm1   # 0x1ba4e8
callq 0x8610
movaps %xmm0, %xmm1
movsd 0x38(%rsp), %xmm0
mulsd %xmm1, %xmm0
movq 0x12460(%rsp), %rax
movslq 0x1064(%rsp), %rcx
movsd %xmm0, (%rax,%rcx,8)
jmp 0x6d501
movq 0xffe0(%rsp), %rax
movslq 0xffec(%rsp), %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x12468(%rsp), %rax
movslq 0x1064(%rsp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movq 0x12460(%rsp), %rax
movslq 0x1064(%rsp), %rcx
movsd 0x149d4c(%rip), %xmm0   # 0x1b7248
movsd %xmm0, (%rax,%rcx,8)
jmp 0x6d75b
movsd 0xfea0(%rsp), %xmm1
mulsd 0xfea0(%rsp), %xmm1
movsd 0x149d28(%rip), %xmm0   # 0x1b7248
divsd %xmm1, %xmm0
movsd %xmm0, 0x1068(%rsp)
movq 0x12458(%rsp), %rax
movq 0x38(%rax), %rax
movslq 0x1064(%rsp), %rcx
movsd (%rax,%rcx,8), %xmm0
mulsd 0x1068(%rsp), %xmm0
movsd %xmm0, 0x1068(%rsp)
movsd 0xfec8(%rsp), %xmm0
addsd 0xfed0(%rsp), %xmm0
addsd 0x1068(%rsp), %xmm0
addsd 0xfeb8(%rsp), %xmm0
movsd %xmm0, 0x1080(%rsp)
movsd 0xfef8(%rsp), %xmm0
divsd 0xfe98(%rsp), %xmm0
movsd %xmm0, 0x1070(%rsp)
movsd 0x149ca0(%rip), %xmm0   # 0x1b7248
ucomisd 0x1070(%rsp), %xmm0
jbe 0x6d5c6
movsd 0x149c8d(%rip), %xmm0   # 0x1b7248
movsd %xmm0, 0x1078(%rsp)
jmp 0x6d613
movsd 0x1070(%rsp), %xmm1
movsd 0x1070(%rsp), %xmm0
mulsd %xmm0, %xmm1
movsd 0x14a1ec(%rip), %xmm0   # 0x1b77d0
addsd %xmm0, %xmm1
divsd 0x1080(%rsp), %xmm1
movsd 0x149c4f(%rip), %xmm0   # 0x1b7248
addsd %xmm1, %xmm0
movsd 0x14e053(%rip), %xmm1   # 0x1bb658
callq 0x8610
movsd %xmm0, 0x1078(%rsp)
movq 0x12458(%rsp), %rax
movq 0x38(%rax), %rax
movslq 0x1064(%rsp), %rcx
movsd (%rax,%rcx,8), %xmm0
mulsd 0x1078(%rsp), %xmm0
movq 0x12468(%rsp), %rax
movslq 0x1064(%rsp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movsd 0x1078(%rsp), %xmm0
movq 0x12460(%rsp), %rax
movslq 0x1064(%rsp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movsd 0x1070(%rsp), %xmm0
movsd 0x14a5df(%rip), %xmm1   # 0x1b7c58
ucomisd %xmm1, %xmm0
jbe 0x6d6ae
movsd 0x1070(%rsp), %xmm0
movsd 0x14a5c8(%rip), %xmm1   # 0x1b7c58
divsd %xmm1, %xmm0
movq 0x12460(%rsp), %rax
movslq 0x1064(%rsp), %rcx
mulsd (%rax,%rcx,8), %xmm0
movsd %xmm0, (%rax,%rcx,8)
jmp 0x6d75b
movq 0x12458(%rsp), %rax
movq 0x38(%rax), %rax
movslq 0x1064(%rsp), %rcx
movsd 0x14df81(%rip), %xmm0   # 0x1bb650
mulsd (%rax,%rcx,8), %xmm0
movq 0x12468(%rsp), %rax
movslq 0x1064(%rsp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movq 0x12460(%rsp), %rax
movslq 0x1064(%rsp), %rcx
movsd 0x14df4f(%rip), %xmm0   # 0x1bb650
movsd %xmm0, (%rax,%rcx,8)
jmp 0x6d75b
movq 0x12458(%rsp), %rax
movq 0x38(%rax), %rax
movslq 0x1064(%rsp), %rcx
movsd 0x14df24(%rip), %xmm0   # 0x1bb648
mulsd (%rax,%rcx,8), %xmm0
movq 0x12468(%rsp), %rax
movslq 0x1064(%rsp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movq 0x12460(%rsp), %rax
movslq 0x1064(%rsp), %rcx
movsd 0x14def2(%rip), %xmm0   # 0x1bb648
movsd %xmm0, (%rax,%rcx,8)
jmp 0x6d75d
movl 0x1064(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x1064(%rsp)
jmp 0x6cf3c
movl $0x0, 0x108c(%rsp)
movl 0x108c(%rsp), %eax
movq 0x12458(%rsp), %rcx
cmpl 0x10(%rcx), %eax
jge 0x6d7bf
movq 0x12458(%rsp), %rax
movq 0x28(%rax), %rax
movslq 0x108c(%rsp), %rcx
movw $0x0, (%rax,%rcx,2)
movl 0x108c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x108c(%rsp)
jmp 0x6d77e
leaq 0xfe98(%rsp), %rdi
callq 0x9a280
leaq 0xe630(%rsp), %rdi
callq 0xaa7b0
leaq 0x7238(%rsp), %rdi
callq 0xc0dc0
movl $0x0, 0x12474(%rsp)
movl 0x12474(%rsp), %eax
addq $0x12478, %rsp          # imm = 0x12478
popq %rbx
popq %r12
popq %r14
popq %r15
retq
nopw (%rax,%rax)