// File: /workspace/github_c_makefile_star2_O0/PoulinV[P]AxiCLASS/build/../external/heating/injection.c
// Function: injection_deposition_function_at_z
int injection_deposition_function_at_z(struct injection* pin,
                                       double x,
                                       double z){

  /** - Define local variables */
  int index_dep;

  if(z > pin->z_start_chi_approx){
    /** - In the verz early universe, whole energy goes into injection */
    pin->chi[pin->index_dep_heat]  = 1.;
    pin->chi[pin->index_dep_ionH]  = 0.;
    pin->chi[pin->index_dep_ionHe] = 0.;
    pin->chi[pin->index_dep_lya]   = 0.;
    pin->chi[pin->index_dep_lowE]  = 0.;
  }
  else{
    /** - Use the deposition factors for each channel */
    /* Old approximation from Chen and Kamionkowski */
    if(pin->chi_type == chi_CK){
      if(x<1.){
        pin->chi[pin->index_dep_heat]  = (1.+2.*x)/3.;
        pin->chi[pin->index_dep_ionH]  = (1.-x)/3.;
        pin->chi[pin->index_dep_ionHe] = 0.;
        pin->chi[pin->index_dep_lya]   = (1.-x)/3.;
        pin->chi[pin->index_dep_lowE]  = 0.;
      }
      else{
        pin->chi[pin->index_dep_heat]  = 1.;
        pin->chi[pin->index_dep_ionH]  = 0.;
        pin->chi[pin->index_dep_ionHe] = 0.;
        pin->chi[pin->index_dep_lya]   = 0.;
        pin->chi[pin->index_dep_lowE]  = 0.;
      }
    }
    /* Old approximation from Padmanabhan and Finkbeiner */
    else if(pin->chi_type == chi_PF){
      if(x<1.+pin->fHe){
        pin->chi[pin->index_dep_heat]  = (1.+2.*x/(1+pin->fHe))/3.;
        pin->chi[pin->index_dep_ionH]  = (1.-x/(1+pin->fHe))/3.;
        pin->chi[pin->index_dep_ionHe] = 0.;
        pin->chi[pin->index_dep_lya]   = (1.-x/(1+pin->fHe))/3.;
        pin->chi[pin->index_dep_lowE]  = 0.;
      }
      else{
        pin->chi[pin->index_dep_heat]  = 1.;
        pin->chi[pin->index_dep_ionH]  = 0.;
        pin->chi[pin->index_dep_ionHe] = 0.;
        pin->chi[pin->index_dep_lya]   = 0.;
        pin->chi[pin->index_dep_lowE]  = 0.;
      }
    }
    /* Coefficient as revised by Galli et al. 2013 */
    else if(pin->chi_type == chi_Galli_file){
      for(index_dep=0; index_dep<pin->dep_size; ++index_dep){
        class_call(array_interpolate_spline_transposed(pin->chix_table,
                                                       pin->chix_size,
                                                       2*pin->dep_size+1,
                                                       0,
                                                       index_dep+1,
                                                       index_dep+pin->dep_size+1,
                                                       x,
                                                       &pin->last_index_x_chi,
                                                       &(pin->chi[index_dep]),
                                                       pin->error_message),
                   pin->error_message,
                   pin->error_message);
      }
    }
    /* coefficient as revised by Vivian Poulin (analytical interpolation of Galli et al. 2013) */
    else if(pin->chi_type == chi_Galli_analytic){
      if(x<1.){
        pin->chi[pin->index_dep_heat]  = MIN(0.996857*(1.-pow(1.-pow(x,0.300134),1.51035)),1);
        pin->chi[pin->index_dep_ionH]  = 0.369202*pow(1.-pow(x,0.463929),1.70237);
        pin->chi[pin->index_dep_ionHe] = 0.;
        pin->chi[pin->index_dep_lya]   = 0.;
        pin->chi[pin->index_dep_lowE]  = 0.;
      }
      else{
        pin->chi[pin->index_dep_heat]  = 1.;
        pin->chi[pin->index_dep_ionH]  = 0.;
        pin->chi[pin->index_dep_ionHe] = 0.;
        pin->chi[pin->index_dep_lya]   = 0.;
        pin->chi[pin->index_dep_lowE]  = 0.;
      }
    }
    else if(pin->chi_type == chi_full_heating){
      pin->chi[pin->index_dep_heat]  = 1.;
      pin->chi[pin->index_dep_ionH]  = 0.;
      pin->chi[pin->index_dep_ionHe] = 0.;
      pin->chi[pin->index_dep_lya]   = 0.;
      pin->chi[pin->index_dep_lowE]  = 0.;
    }
    /* Read file in ionization fraction */
    else if(pin->chi_type == chi_from_x_file){
      for(index_dep=0; index_dep<pin->dep_size; ++index_dep){
        class_call(array_interpolate_spline_transposed(pin->chix_table,
                                                       pin->chix_size,
                                                       2*pin->dep_size+1,
                                                       0,
                                                       index_dep+1,
                                                       index_dep+pin->dep_size+1,
                                                       x,
                                                       &pin->last_index_x_chi,
                                                       &(pin->chi[index_dep]),
                                                       pin->error_message),
                   pin->error_message,
                   pin->error_message);
      }
    }
    /* Read file in redshift */
    else if(pin->chi_type == chi_from_z_file){
      for(index_dep=0;index_dep<pin->dep_size;++index_dep){
        class_call(array_interpolate_spline_transposed(pin->chiz_table,
                                                       pin->chiz_size,
                                                       2*pin->dep_size+1,
                                                       0,
                                                       index_dep+1,
                                                       index_dep+pin->dep_size+1,
                                                       z,
                                                       &pin->last_index_z_chi,
                                                       &(pin->chi[index_dep]),
                                                       pin->error_message),
                   pin->error_message,
                   pin->error_message);
      }
    }
    else{
      class_stop(pin->error_message,"No valid deposition function has been found found.");
    }
  }

  /** - Read the correction factor f_eff */
  /* For the on the spot, we take the user input */
  if(pin->f_eff_type == f_eff_on_the_spot){
    // pin->f_eff has already been seet by user
  }
  /* For the file, read in f_eff from file and multiply */
  else if(pin->f_eff_type == f_eff_from_file){
    class_call(array_interpolate_spline_transposed(pin->feff_table,
                                                   pin->feff_z_size,
                                                   3,
                                                   0,
                                                   1,
                                                   2,
                                                   z,
                                                   &(pin->last_index_z_feff),
                                                   &(pin->f_eff),
                                                   pin->error_message),
               pin->error_message,
               pin->error_message);
  }
  /* Otherwise, something must have gone wrong */
  else{
    class_stop(pin->error_message,
               "Unknown energy deposition mechanism");
  }

  /** Multiply deposition factors with overall correction factor */
  for(index_dep=0; index_dep<pin->dep_size; ++index_dep){
    pin->chi[index_dep] *= pin->f_eff;
  }

  return _SUCCESS_;
}

// Assembly:
subq $0x4048, %rsp           # imm = 0x4048
movq %rdi, 0x4038(%rsp)
movsd %xmm0, 0x4030(%rsp)
movsd %xmm1, 0x4028(%rsp)
movsd 0x4028(%rsp), %xmm0
movq 0x4038(%rsp), %rax
ucomisd 0x3b8(%rax), %xmm0
jbe 0x1a0ae8
movq 0x4038(%rsp), %rax
movq 0x530(%rax), %rax
movq 0x4038(%rsp), %rcx
movslq 0x538(%rcx), %rcx
movsd 0x31802(%rip), %xmm0    # 0x1d2248
movsd %xmm0, (%rax,%rcx,8)
movq 0x4038(%rsp), %rax
movq 0x530(%rax), %rax
movq 0x4038(%rsp), %rcx
movslq 0x53c(%rcx), %rcx
xorps %xmm0, %xmm0
movsd %xmm0, (%rax,%rcx,8)
movq 0x4038(%rsp), %rax
movq 0x530(%rax), %rax
movq 0x4038(%rsp), %rcx
movslq 0x540(%rcx), %rcx
xorps %xmm0, %xmm0
movsd %xmm0, (%rax,%rcx,8)
movq 0x4038(%rsp), %rax
movq 0x530(%rax), %rax
movq 0x4038(%rsp), %rcx
movslq 0x544(%rcx), %rcx
xorps %xmm0, %xmm0
movsd %xmm0, (%rax,%rcx,8)
movq 0x4038(%rsp), %rax
movq 0x530(%rax), %rax
movq 0x4038(%rsp), %rcx
movslq 0x548(%rcx), %rcx
xorps %xmm0, %xmm0
movsd %xmm0, (%rax,%rcx,8)
jmp 0x1a17f6
movq 0x4038(%rsp), %rax
cmpl $0x0, 0x1a4(%rax)
jne 0x1a0cf5
movsd 0x31743(%rip), %xmm0    # 0x1d2248
ucomisd 0x4030(%rsp), %xmm0
jbe 0x1a0c2d
movsd 0x4030(%rsp), %xmm0
addsd %xmm0, %xmm0
movsd 0x3171f(%rip), %xmm1    # 0x1d2248
addsd %xmm1, %xmm0
movsd 0x32b63(%rip), %xmm1    # 0x1d3698
divsd %xmm1, %xmm0
movq 0x4038(%rsp), %rax
movq 0x530(%rax), %rax
movq 0x4038(%rsp), %rcx
movslq 0x538(%rcx), %rcx
movsd %xmm0, (%rax,%rcx,8)
movsd 0x316e4(%rip), %xmm0    # 0x1d2248
subsd 0x4030(%rsp), %xmm0
movsd 0x32b23(%rip), %xmm1    # 0x1d3698
divsd %xmm1, %xmm0
movq 0x4038(%rsp), %rax
movq 0x530(%rax), %rax
movq 0x4038(%rsp), %rcx
movslq 0x53c(%rcx), %rcx
movsd %xmm0, (%rax,%rcx,8)
movq 0x4038(%rsp), %rax
movq 0x530(%rax), %rax
movq 0x4038(%rsp), %rcx
movslq 0x540(%rcx), %rcx
xorps %xmm0, %xmm0
movsd %xmm0, (%rax,%rcx,8)
movsd 0x3167e(%rip), %xmm0    # 0x1d2248
subsd 0x4030(%rsp), %xmm0
movsd 0x32abd(%rip), %xmm1    # 0x1d3698
divsd %xmm1, %xmm0
movq 0x4038(%rsp), %rax
movq 0x530(%rax), %rax
movq 0x4038(%rsp), %rcx
movslq 0x544(%rcx), %rcx
movsd %xmm0, (%rax,%rcx,8)
movq 0x4038(%rsp), %rax
movq 0x530(%rax), %rax
movq 0x4038(%rsp), %rcx
movslq 0x548(%rcx), %rcx
xorps %xmm0, %xmm0
movsd %xmm0, (%rax,%rcx,8)
jmp 0x1a0cf0
movq 0x4038(%rsp), %rax
movq 0x530(%rax), %rax
movq 0x4038(%rsp), %rcx
movslq 0x538(%rcx), %rcx
movsd 0x315f5(%rip), %xmm0    # 0x1d2248
movsd %xmm0, (%rax,%rcx,8)
movq 0x4038(%rsp), %rax
movq 0x530(%rax), %rax
movq 0x4038(%rsp), %rcx
movslq 0x53c(%rcx), %rcx
xorps %xmm0, %xmm0
movsd %xmm0, (%rax,%rcx,8)
movq 0x4038(%rsp), %rax
movq 0x530(%rax), %rax
movq 0x4038(%rsp), %rcx
movslq 0x540(%rcx), %rcx
xorps %xmm0, %xmm0
movsd %xmm0, (%rax,%rcx,8)
movq 0x4038(%rsp), %rax
movq 0x530(%rax), %rax
movq 0x4038(%rsp), %rcx
movslq 0x544(%rcx), %rcx
xorps %xmm0, %xmm0
movsd %xmm0, (%rax,%rcx,8)
movq 0x4038(%rsp), %rax
movq 0x530(%rax), %rax
movq 0x4038(%rsp), %rcx
movslq 0x548(%rcx), %rcx
xorps %xmm0, %xmm0
movsd %xmm0, (%rax,%rcx,8)
jmp 0x1a17f4
movq 0x4038(%rsp), %rax
cmpl $0x1, 0x1a4(%rax)
jne 0x1a0f76
movsd 0x4030(%rsp), %xmm1
movq 0x4038(%rsp), %rax
movsd 0x31525(%rip), %xmm0    # 0x1d2248
addsd 0x418(%rax), %xmm0
ucomisd %xmm1, %xmm0
jbe 0x1a0eae
movsd 0x31f43(%rip), %xmm1    # 0x1d2c80
mulsd 0x4030(%rsp), %xmm1
movq 0x4038(%rsp), %rax
movsd 0x314f2(%rip), %xmm0    # 0x1d2248
addsd 0x418(%rax), %xmm0
divsd %xmm0, %xmm1
movsd 0x314de(%rip), %xmm0    # 0x1d2248
addsd %xmm1, %xmm0
movsd 0x32922(%rip), %xmm1    # 0x1d3698
divsd %xmm1, %xmm0
movq 0x4038(%rsp), %rax
movq 0x530(%rax), %rax
movq 0x4038(%rsp), %rcx
movslq 0x538(%rcx), %rcx
movsd %xmm0, (%rax,%rcx,8)
movsd 0x4030(%rsp), %xmm1
movq 0x4038(%rsp), %rax
movsd 0x31492(%rip), %xmm0    # 0x1d2248
addsd 0x418(%rax), %xmm0
divsd %xmm0, %xmm1
movsd 0x3147e(%rip), %xmm0    # 0x1d2248
subsd %xmm1, %xmm0
movsd 0x328c2(%rip), %xmm1    # 0x1d3698
divsd %xmm1, %xmm0
movq 0x4038(%rsp), %rax
movq 0x530(%rax), %rax
movq 0x4038(%rsp), %rcx
movslq 0x53c(%rcx), %rcx
movsd %xmm0, (%rax,%rcx,8)
movq 0x4038(%rsp), %rax
movq 0x530(%rax), %rax
movq 0x4038(%rsp), %rcx
movslq 0x540(%rcx), %rcx
xorps %xmm0, %xmm0
movsd %xmm0, (%rax,%rcx,8)
movsd 0x4030(%rsp), %xmm1
movq 0x4038(%rsp), %rax
movsd 0x3140c(%rip), %xmm0    # 0x1d2248
addsd 0x418(%rax), %xmm0
divsd %xmm0, %xmm1
movsd 0x313f8(%rip), %xmm0    # 0x1d2248
subsd %xmm1, %xmm0
movsd 0x3283c(%rip), %xmm1    # 0x1d3698
divsd %xmm1, %xmm0
movq 0x4038(%rsp), %rax
movq 0x530(%rax), %rax
movq 0x4038(%rsp), %rcx
movslq 0x544(%rcx), %rcx
movsd %xmm0, (%rax,%rcx,8)
movq 0x4038(%rsp), %rax
movq 0x530(%rax), %rax
movq 0x4038(%rsp), %rcx
movslq 0x548(%rcx), %rcx
xorps %xmm0, %xmm0
movsd %xmm0, (%rax,%rcx,8)
jmp 0x1a0f71
movq 0x4038(%rsp), %rax
movq 0x530(%rax), %rax
movq 0x4038(%rsp), %rcx
movslq 0x538(%rcx), %rcx
movsd 0x31374(%rip), %xmm0    # 0x1d2248
movsd %xmm0, (%rax,%rcx,8)
movq 0x4038(%rsp), %rax
movq 0x530(%rax), %rax
movq 0x4038(%rsp), %rcx
movslq 0x53c(%rcx), %rcx
xorps %xmm0, %xmm0
movsd %xmm0, (%rax,%rcx,8)
movq 0x4038(%rsp), %rax
movq 0x530(%rax), %rax
movq 0x4038(%rsp), %rcx
movslq 0x540(%rcx), %rcx
xorps %xmm0, %xmm0
movsd %xmm0, (%rax,%rcx,8)
movq 0x4038(%rsp), %rax
movq 0x530(%rax), %rax
movq 0x4038(%rsp), %rcx
movslq 0x544(%rcx), %rcx
xorps %xmm0, %xmm0
movsd %xmm0, (%rax,%rcx,8)
movq 0x4038(%rsp), %rax
movq 0x530(%rax), %rax
movq 0x4038(%rsp), %rcx
movslq 0x548(%rcx), %rcx
xorps %xmm0, %xmm0
movsd %xmm0, (%rax,%rcx,8)
jmp 0x1a17f2
movq 0x4038(%rsp), %rax
cmpl $0x2, 0x1a4(%rax)
jne 0x1a10f0
movl $0x0, 0x4024(%rsp)
movl 0x4024(%rsp), %eax
movq 0x4038(%rsp), %rcx
cmpl 0x54c(%rcx), %eax
jge 0x1a10eb
movq 0x4038(%rsp), %rax
movq 0x518(%rax), %rdi
movq 0x4038(%rsp), %rax
movl 0x520(%rax), %esi
movq 0x4038(%rsp), %rax
movl 0x54c(%rax), %edx
shll %edx
addl $0x1, %edx
movl 0x4024(%rsp), %r8d
addl $0x1, %r8d
movl 0x4024(%rsp), %r9d
movq 0x4038(%rsp), %rax
addl 0x54c(%rax), %r9d
addl $0x1, %r9d
movsd 0x4030(%rsp), %xmm0
movq 0x4038(%rsp), %r11
addq $0x484, %r11            # imm = 0x484
movq 0x4038(%rsp), %rax
movq 0x530(%rax), %r10
movslq 0x4024(%rsp), %rax
shlq $0x3, %rax
addq %rax, %r10
movq 0x4038(%rsp), %rax
addq $0x570, %rax            # imm = 0x570
xorl %ecx, %ecx
movq %r11, (%rsp)
movq %r10, 0x8(%rsp)
movq %rax, 0x10(%rsp)
callq 0x23bf0
cmpl $0x1, %eax
jne 0x1a10d3
leaq 0x3820(%rsp), %rdi
movq 0x4038(%rsp), %rcx
addq $0x570, %rcx            # imm = 0x570
leaq 0x31354(%rip), %rsi     # 0x1d23d8
leaq 0x6c1f1(%rip), %rdx     # 0x20d27c
movb $0x0, %al
callq 0x5b9c0
movq 0x4038(%rsp), %rdi
addq $0x570, %rdi            # imm = 0x570
leaq 0x3820(%rsp), %r8
leaq 0x30f84(%rip), %rsi     # 0x1d2034
leaq 0x6c28f(%rip), %rdx     # 0x20d346
movl $0x224, %ecx            # imm = 0x224
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x4044(%rsp)
jmp 0x1a19ec
jmp 0x1a10d5
movl 0x4024(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x4024(%rsp)
jmp 0x1a0f96
jmp 0x1a17f0
movq 0x4038(%rsp), %rax
cmpl $0x3, 0x1a4(%rax)
jne 0x1a13a5
movsd 0x3113b(%rip), %xmm0    # 0x1d2248
ucomisd 0x4030(%rsp), %xmm0
jbe 0x1a12dd
movsd 0x4030(%rsp), %xmm0
movsd 0x6baa3(%rip), %xmm1    # 0x20cbd0
callq 0x8610
movaps %xmm0, %xmm1
movsd 0x3110b(%rip), %xmm0    # 0x1d2248
subsd %xmm1, %xmm0
movsd 0x6ba7f(%rip), %xmm1    # 0x20cbc8
callq 0x8610
movaps %xmm0, %xmm1
movsd 0x310ef(%rip), %xmm0    # 0x1d2248
subsd %xmm1, %xmm0
movsd 0x6ba5b(%rip), %xmm1    # 0x20cbc0
mulsd %xmm0, %xmm1
movsd 0x310d7(%rip), %xmm0    # 0x1d2248
ucomisd %xmm1, %xmm0
jbe 0x1a11c9
movsd 0x4030(%rsp), %xmm0
movsd 0x6ba48(%rip), %xmm1    # 0x20cbd0
callq 0x8610
movaps %xmm0, %xmm1
movsd 0x310b0(%rip), %xmm0    # 0x1d2248
subsd %xmm1, %xmm0
movsd 0x6ba24(%rip), %xmm1    # 0x20cbc8
callq 0x8610
movsd 0x31097(%rip), %xmm1    # 0x1d2248
subsd %xmm0, %xmm1
movsd 0x6ba03(%rip), %xmm0    # 0x20cbc0
mulsd %xmm1, %xmm0
movsd %xmm0, 0x18(%rsp)
jmp 0x1a11d9
movsd 0x31077(%rip), %xmm0    # 0x1d2248
movsd %xmm0, 0x18(%rsp)
jmp 0x1a11d9
movsd 0x18(%rsp), %xmm0
movq 0x4038(%rsp), %rax
movq 0x530(%rax), %rax
movq 0x4038(%rsp), %rcx
movslq 0x538(%rcx), %rcx
movsd %xmm0, (%rax,%rcx,8)
movsd 0x4030(%rsp), %xmm0
movsd 0x6b9d5(%rip), %xmm1    # 0x20cbe8
callq 0x8610
movaps %xmm0, %xmm1
movsd 0x31025(%rip), %xmm0    # 0x1d2248
subsd %xmm1, %xmm0
movsd 0x6b9b1(%rip), %xmm1    # 0x20cbe0
callq 0x8610
movaps %xmm0, %xmm1
movsd 0x6b999(%rip), %xmm0    # 0x20cbd8
mulsd %xmm1, %xmm0
movq 0x4038(%rsp), %rax
movq 0x530(%rax), %rax
movq 0x4038(%rsp), %rcx
movslq 0x53c(%rcx), %rcx
movsd %xmm0, (%rax,%rcx,8)
movq 0x4038(%rsp), %rax
movq 0x530(%rax), %rax
movq 0x4038(%rsp), %rcx
movslq 0x540(%rcx), %rcx
xorps %xmm0, %xmm0
movsd %xmm0, (%rax,%rcx,8)
movq 0x4038(%rsp), %rax
movq 0x530(%rax), %rax
movq 0x4038(%rsp), %rcx
movslq 0x544(%rcx), %rcx
xorps %xmm0, %xmm0
movsd %xmm0, (%rax,%rcx,8)
movq 0x4038(%rsp), %rax
movq 0x530(%rax), %rax
movq 0x4038(%rsp), %rcx
movslq 0x548(%rcx), %rcx
xorps %xmm0, %xmm0
movsd %xmm0, (%rax,%rcx,8)
jmp 0x1a13a0
movq 0x4038(%rsp), %rax
movq 0x530(%rax), %rax
movq 0x4038(%rsp), %rcx
movslq 0x538(%rcx), %rcx
movsd 0x30f45(%rip), %xmm0    # 0x1d2248
movsd %xmm0, (%rax,%rcx,8)
movq 0x4038(%rsp), %rax
movq 0x530(%rax), %rax
movq 0x4038(%rsp), %rcx
movslq 0x53c(%rcx), %rcx
xorps %xmm0, %xmm0
movsd %xmm0, (%rax,%rcx,8)
movq 0x4038(%rsp), %rax
movq 0x530(%rax), %rax
movq 0x4038(%rsp), %rcx
movslq 0x540(%rcx), %rcx
xorps %xmm0, %xmm0
movsd %xmm0, (%rax,%rcx,8)
movq 0x4038(%rsp), %rax
movq 0x530(%rax), %rax
movq 0x4038(%rsp), %rcx
movslq 0x544(%rcx), %rcx
xorps %xmm0, %xmm0
movsd %xmm0, (%rax,%rcx,8)
movq 0x4038(%rsp), %rax
movq 0x530(%rax), %rax
movq 0x4038(%rsp), %rcx
movslq 0x548(%rcx), %rcx
xorps %xmm0, %xmm0
movsd %xmm0, (%rax,%rcx,8)
jmp 0x1a17ee
movq 0x4038(%rsp), %rax
cmpl $0x4, 0x1a4(%rax)
jne 0x1a1482
movq 0x4038(%rsp), %rax
movq 0x530(%rax), %rax
movq 0x4038(%rsp), %rcx
movslq 0x538(%rcx), %rcx
movsd 0x30e68(%rip), %xmm0    # 0x1d2248
movsd %xmm0, (%rax,%rcx,8)
movq 0x4038(%rsp), %rax
movq 0x530(%rax), %rax
movq 0x4038(%rsp), %rcx
movslq 0x53c(%rcx), %rcx
xorps %xmm0, %xmm0
movsd %xmm0, (%rax,%rcx,8)
movq 0x4038(%rsp), %rax
movq 0x530(%rax), %rax
movq 0x4038(%rsp), %rcx
movslq 0x540(%rcx), %rcx
xorps %xmm0, %xmm0
movsd %xmm0, (%rax,%rcx,8)
movq 0x4038(%rsp), %rax
movq 0x530(%rax), %rax
movq 0x4038(%rsp), %rcx
movslq 0x544(%rcx), %rcx
xorps %xmm0, %xmm0
movsd %xmm0, (%rax,%rcx,8)
movq 0x4038(%rsp), %rax
movq 0x530(%rax), %rax
movq 0x4038(%rsp), %rcx
movslq 0x548(%rcx), %rcx
xorps %xmm0, %xmm0
movsd %xmm0, (%rax,%rcx,8)
jmp 0x1a17ec
movq 0x4038(%rsp), %rax
cmpl $0x5, 0x1a4(%rax)
jne 0x1a15fc
movl $0x0, 0x4024(%rsp)
movl 0x4024(%rsp), %eax
movq 0x4038(%rsp), %rcx
cmpl 0x54c(%rcx), %eax
jge 0x1a15f7
movq 0x4038(%rsp), %rax
movq 0x518(%rax), %rdi
movq 0x4038(%rsp), %rax
movl 0x520(%rax), %esi
movq 0x4038(%rsp), %rax
movl 0x54c(%rax), %edx
shll %edx
addl $0x1, %edx
movl 0x4024(%rsp), %r8d
addl $0x1, %r8d
movl 0x4024(%rsp), %r9d
movq 0x4038(%rsp), %rax
addl 0x54c(%rax), %r9d
addl $0x1, %r9d
movsd 0x4030(%rsp), %xmm0
movq 0x4038(%rsp), %r11
addq $0x484, %r11            # imm = 0x484
movq 0x4038(%rsp), %rax
movq 0x530(%rax), %r10
movslq 0x4024(%rsp), %rax
shlq $0x3, %rax
addq %rax, %r10
movq 0x4038(%rsp), %rax
addq $0x570, %rax            # imm = 0x570
xorl %ecx, %ecx
movq %r11, (%rsp)
movq %r10, 0x8(%rsp)
movq %rax, 0x10(%rsp)
callq 0x23bf0
cmpl $0x1, %eax
jne 0x1a15df
leaq 0x3020(%rsp), %rdi
movq 0x4038(%rsp), %rcx
addq $0x570, %rcx            # imm = 0x570
leaq 0x30e48(%rip), %rsi     # 0x1d23d8
leaq 0x6bce5(%rip), %rdx     # 0x20d27c
movb $0x0, %al
callq 0x5b9c0
movq 0x4038(%rsp), %rdi
addq $0x570, %rdi            # imm = 0x570
leaq 0x3020(%rsp), %r8
leaq 0x30a78(%rip), %rsi     # 0x1d2034
leaq 0x6bd83(%rip), %rdx     # 0x20d346
movl $0x24d, %ecx            # imm = 0x24D
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x4044(%rsp)
jmp 0x1a19ec
jmp 0x1a15e1
movl 0x4024(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x4024(%rsp)
jmp 0x1a14a2
jmp 0x1a17ea
movq 0x4038(%rsp), %rax
cmpl $0x6, 0x1a4(%rax)
jne 0x1a1773
movl $0x0, 0x4024(%rsp)
movl 0x4024(%rsp), %eax
movq 0x4038(%rsp), %rcx
cmpl 0x54c(%rcx), %eax
jge 0x1a1771
movq 0x4038(%rsp), %rax
movq 0x508(%rax), %rdi
movq 0x4038(%rsp), %rax
movl 0x510(%rax), %esi
movq 0x4038(%rsp), %rax
movl 0x54c(%rax), %edx
shll %edx
addl $0x1, %edx
movl 0x4024(%rsp), %r8d
addl $0x1, %r8d
movl 0x4024(%rsp), %r9d
movq 0x4038(%rsp), %rax
addl 0x54c(%rax), %r9d
addl $0x1, %r9d
movsd 0x4028(%rsp), %xmm0
movq 0x4038(%rsp), %r11
addq $0x474, %r11            # imm = 0x474
movq 0x4038(%rsp), %rax
movq 0x530(%rax), %r10
movslq 0x4024(%rsp), %rax
shlq $0x3, %rax
addq %rax, %r10
movq 0x4038(%rsp), %rax
addq $0x570, %rax            # imm = 0x570
xorl %ecx, %ecx
movq %r11, (%rsp)
movq %r10, 0x8(%rsp)
movq %rax, 0x10(%rsp)
callq 0x23bf0
cmpl $0x1, %eax
jne 0x1a1759
leaq 0x2820(%rsp), %rdi
movq 0x4038(%rsp), %rcx
addq $0x570, %rcx            # imm = 0x570
leaq 0x30cce(%rip), %rsi     # 0x1d23d8
leaq 0x6bc58(%rip), %rdx     # 0x20d369
movb $0x0, %al
callq 0x5b9c0
movq 0x4038(%rsp), %rdi
addq $0x570, %rdi            # imm = 0x570
leaq 0x2820(%rsp), %r8
leaq 0x308fe(%rip), %rsi     # 0x1d2034
leaq 0x6bc09(%rip), %rdx     # 0x20d346
movl $0x25e, %ecx            # imm = 0x25E
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x4044(%rsp)
jmp 0x1a19ec
jmp 0x1a175b
movl 0x4024(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x4024(%rsp)
jmp 0x1a161c
jmp 0x1a17e8
leaq 0x2020(%rsp), %rdi
leaq 0x6bcb1(%rip), %rsi     # 0x20d433
movb $0x0, %al
callq 0x5b9c0
leaq 0x1820(%rsp), %rdi
leaq 0x2020(%rsp), %rdx
leaq 0x30dcd(%rip), %rsi     # 0x1d256d
movb $0x0, %al
callq 0x5b9c0
movq 0x4038(%rsp), %rdi
addq $0x570, %rdi            # imm = 0x570
leaq 0x1820(%rsp), %r8
leaq 0x3086f(%rip), %rsi     # 0x1d2034
leaq 0x6bb7a(%rip), %rdx     # 0x20d346
movl $0x262, %ecx            # imm = 0x262
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x4044(%rsp)
jmp 0x1a19ec
jmp 0x1a17ea
jmp 0x1a17ec
jmp 0x1a17ee
jmp 0x1a17f0
jmp 0x1a17f2
jmp 0x1a17f4
jmp 0x1a17f6
movq 0x4038(%rsp), %rax
cmpl $0x0, 0xa0(%rax)
jne 0x1a180c
jmp 0x1a197b
movq 0x4038(%rsp), %rax
cmpl $0x1, 0xa0(%rax)
jne 0x1a190d
movq 0x4038(%rsp), %rax
movq 0x500(%rax), %rdi
movq 0x4038(%rsp), %rax
movl 0x4f8(%rax), %esi
movsd 0x4028(%rsp), %xmm0
movq 0x4038(%rsp), %r11
addq $0x470, %r11            # imm = 0x470
movq 0x4038(%rsp), %r10
addq $0x4f0, %r10            # imm = 0x4F0
movq 0x4038(%rsp), %rax
addq $0x570, %rax            # imm = 0x570
movl $0x3, %edx
xorl %ecx, %ecx
movl $0x1, %r8d
movl $0x2, %r9d
movq %r11, (%rsp)
movq %r10, 0x8(%rsp)
movq %rax, 0x10(%rsp)
callq 0x23bf0
cmpl $0x1, %eax
jne 0x1a190b
leaq 0x1020(%rsp), %rdi
movq 0x4038(%rsp), %rcx
addq $0x570, %rcx            # imm = 0x570
leaq 0x30b1c(%rip), %rsi     # 0x1d23d8
leaq 0x6bba3(%rip), %rdx     # 0x20d466
movb $0x0, %al
callq 0x5b9c0
movq 0x4038(%rsp), %rdi
addq $0x570, %rdi            # imm = 0x570
leaq 0x1020(%rsp), %r8
leaq 0x3074c(%rip), %rsi     # 0x1d2034
leaq 0x6ba57(%rip), %rdx     # 0x20d346
movl $0x278, %ecx            # imm = 0x278
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x4044(%rsp)
jmp 0x1a19ec
jmp 0x1a1979
leaq 0x820(%rsp), %rdi
leaq 0x6bbde(%rip), %rsi     # 0x20d4fa
movb $0x0, %al
callq 0x5b9c0
leaq 0x20(%rsp), %rdi
leaq 0x820(%rsp), %rdx
leaq 0x30c36(%rip), %rsi     # 0x1d256d
movb $0x0, %al
callq 0x5b9c0
movq 0x4038(%rsp), %rdi
addq $0x570, %rdi            # imm = 0x570
leaq 0x20(%rsp), %r8
leaq 0x306db(%rip), %rsi     # 0x1d2034
leaq 0x6b9e6(%rip), %rdx     # 0x20d346
movl $0x27d, %ecx            # imm = 0x27D
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x4044(%rsp)
jmp 0x1a19ec
jmp 0x1a197b
movl $0x0, 0x4024(%rsp)
movl 0x4024(%rsp), %eax
movq 0x4038(%rsp), %rcx
cmpl 0x54c(%rcx), %eax
jge 0x1a19e1
movq 0x4038(%rsp), %rax
movsd 0x4f0(%rax), %xmm0
movq 0x4038(%rsp), %rax
movq 0x530(%rax), %rax
movslq 0x4024(%rsp), %rcx
mulsd (%rax,%rcx,8), %xmm0
movsd %xmm0, (%rax,%rcx,8)
movl 0x4024(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x4024(%rsp)
jmp 0x1a1986
movl $0x0, 0x4044(%rsp)
movl 0x4044(%rsp), %eax
addq $0x4048, %rsp           # imm = 0x4048
retq
nopl (%rax,%rax)