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

  /** - Define local variables */
  double L_ed, M_ed_dot, M_crit, v_B, v_l, v_eff, r_B, t_B;
  double lambda, M_b_dot;
  double Value_min, Value_med, Value_max, a=0, epsilon_0=0.1, epsilon;
  double L_acc;
  double beta_compton_drag, gamma_cooling, tau_cooling;
  double T_ion, T_s, Y_s, theta_s;
  double lambda_1, lambda_2, lambda_ad, lambda_iso, J;

  /** - Initialize local variables */
  /* Eddington luminosity */
  L_ed = 4.*_PI_*_G_*(pin->PBH_accretion_mass*_Sun_mass_)*_m_p_/_sigma_*_c_;                        // [W]
  M_ed_dot= 10.*L_ed/pow(_c_,2.);                                                                   // [kg/s]
  M_crit = 0.01*M_ed_dot;                                                                           // [kg/s]

  /* Boldi definitions */
  v_B = sqrt((1.+pin->x_e)*(pin->T_b*_k_B_)/(_m_p_*pow(_c_,2.)))*_c_;                               // [m/s]
  if(pin->PBH_accretion_relative_velocities < 0.){
    v_l = 30.*MIN(1.,(1.+z)/1.e3)*1.e3;                                                             // [m/s]
    if(v_B < v_l){
      v_eff = sqrt(v_B*v_l);                                                                        // [m/s]
    }
    else{
      v_eff = v_B;                                                                                  // [m/s]
    }
  }
  else{
    v_l = pin->PBH_accretion_relative_velocities*1.e3;                                              // [m/s]
    v_eff = pow(v_l*v_l+v_B*v_B,0.5);                                                               // [m/s]
  }
  r_B = _G_*(pin->PBH_accretion_mass*_Sun_mass_)/pow(v_eff,2.);                                     // [m]
  t_B = _G_*(pin->PBH_accretion_mass*_Sun_mass_)/pow(v_eff,3.);                                     // [s]

  switch(pin->PBH_accretion_recipe){
    /** - Disk accretion from Poulin et al. 1707.04206 */
    case disk_accretion:

    lambda = pin->PBH_accretion_eigenvalue;                                                         // [-]
    M_b_dot = 4.*_PI_*lambda*(pin->rho_b/pow(_c_,2.))*pow(r_B,2.)*v_eff;                            // [kg/s]

    if(pin->PBH_accretion_ADAF_delta == 1e-3){
      Value_min = 7.6e-5;
      Value_med = 4.5e-3;
      Value_max = 7.1e-3;
      if(M_b_dot/M_ed_dot <= Value_min){
        epsilon_0 = 0.065;
        a = 0.71;
      }
      else if(Value_min < M_b_dot/M_ed_dot && M_b_dot/M_ed_dot  <= Value_med){
        epsilon_0 = 0.020;
        a = 0.47;
      }
      else if(Value_med < M_b_dot/M_ed_dot && M_b_dot/M_ed_dot <= Value_max){
        epsilon_0 = 0.26;
        a = 3.67;
      }
      else{
        epsilon_0 = 0.1;
        a = 0.;
      }
    }
    else if(pin->PBH_accretion_ADAF_delta == 0.1){
      Value_min = 9.4e-5;
      Value_med = 5e-3;
      Value_max = 6.6e-3;
      if(M_b_dot/M_ed_dot <= Value_min){
        epsilon_0 = 0.12;
        a = 0.59;
      }
      else if(Value_min < M_b_dot/M_ed_dot && M_b_dot/M_ed_dot  <= Value_med){
        epsilon_0 = 0.026;
        a = 0.27;
      }
      else if(Value_med < M_b_dot/M_ed_dot && M_b_dot/M_ed_dot <= Value_max){
        epsilon_0 = 0.50;
        a = 4.53;
      }
      else{
        epsilon_0 = 0.1;
        a = 0.;
      }
    }
    else if (pin->PBH_accretion_ADAF_delta == 0.5){
      Value_min = 2.9e-5;
      Value_med = 3.3e-3;
      Value_max = 5.3e-3;
      if(M_b_dot/M_ed_dot <= Value_min){
        epsilon_0 = 1.58;
        a = 0.65;
      }
      else if(Value_min < M_b_dot/M_ed_dot && M_b_dot/M_ed_dot  <= Value_med){
        epsilon_0 = 0.055;
        a = 0.076;
      }
      else if(Value_med < M_b_dot/M_ed_dot && M_b_dot/M_ed_dot <= Value_max){
        epsilon_0 = 0.17;
        a = 1.12;
      }
      else{
        epsilon_0 = 0.1;
        a = 0.;
      }
    }

    epsilon = epsilon_0*pow(M_b_dot/M_crit,a);                                                      // [-]
    L_acc = epsilon*M_b_dot*pow(_c_,2.);                                                            // [W]
  break;

    /** - Spherical accretion from Ali-Haimoud et al. 1612.05644 */
    case spherical_accretion:

    beta_compton_drag = 4./3.*pin->x_e*_sigma_*pin->rho_g*t_B/_m_p_/_c_;                            // [-] Eq. (7)
    gamma_cooling = 2.*(_m_p_/_m_e_)/(1+pin->x_e)*beta_compton_drag;                                // [-] Eq. (8)
    tau_cooling = 1.5/(5.+pow(gamma_cooling,2./3.));                                                // [-] Eq. (28)

    lambda_ad = 0.25*pow(3./5.,1.5);                                                                // [-] Eq. (15)
    lambda_iso = 0.25*exp(1.5);                                                                     // [-] Eq. (20)
    lambda_1 = lambda_ad+(lambda_iso-lambda_ad)*
                                pow(pow(gamma_cooling,2.)/(88.+pow(gamma_cooling,2.)),0.22);        // [-] Eq. (27)
    lambda_2 = exp(4.5/(3.+pow(beta_compton_drag,0.75)))/(pow(pow(1.+beta_compton_drag,0.5)+1.,2.));// [-] Eq. (32)
    lambda = lambda_1*lambda_2/lambda_iso;                                                          // [-] Eq. (33)

    T_ion = 1.5e4*_eV_over_Kelvin_;                                                                 // [eV] see line below Eq. (39)
    Y_s = pow((1.+pin->x_e)/2.,2./3.*13.6/T_ion)*
                  tau_cooling/4.*pow(1.-5./2.*tau_cooling,1./3.)*(_m_p_/_m_e_);                     // [-] Eq. (51)
    T_s = _m_e_*pow(_c_,2.)/_k_B_*Y_s*pow(1.+Y_s/0.27,-1./3.);                                      // [K] Eqs. (50) and (47)
    theta_s = (T_s*_k_B_)/(_m_e_*pow(_c_,2.));

    M_b_dot = 4.*_PI_*lambda*(pin->rho_b/pow(_c_,2.))*pow(r_B,2.)*v_eff;                            // [kg/s] Eq. (6)

    if(theta_s > 1.){                                                                               // Eq. (55)
      J = 27./(2.*_PI_)*(log(2.*theta_s*exp(-0.577)+0.08)+4./3.);                                   // [-]
    }
    else{
      J = 4./_PI_*sqrt(2./_PI_)*pow(theta_s,-0.5)*(1+5.5*pow(theta_s,1.25));                        // [-]
    }

    L_acc = 1./137.*(T_s*_k_B_)/(_m_p_*pow(_c_,2.))*J*pow(M_b_dot*_c_*_c_,2.)/L_ed;                 // [W] Eq. (57)
    break;
    default:
      class_stop(pin->error_message,"Invalid PBH_accretion_recipe");
  }

  *energy_rate = pin->rho_cdm*pin->PBH_accretion_fraction/
                      (pin->PBH_accretion_mass*_Sun_mass_)*L_acc/pow(_c_,2.);                       // [J/(m^3 s)]

  return _SUCCESS_;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x1040, %rsp           # imm = 0x1040
movq %rdi, %rbx
movsd 0x78(%rdi), %xmm3
mulsd 0x55165(%rip), %xmm3    # 0x11f518
mulsd 0x55165(%rip), %xmm3    # 0x11f520
mulsd 0x3a21d(%rip), %xmm3    # 0x1045e0
movsd 0x438(%rdi), %xmm2
addsd 0x1ae8d(%rip), %xmm2    # 0xe5260
movsd 0x430(%rdi), %xmm1
mulsd 0x1f71d(%rip), %xmm1    # 0xe9b00
movq %rsi, %r14
mulsd %xmm2, %xmm1
divsd 0x5513e(%rip), %xmm1    # 0x11f530
movapd %xmm0, %xmm4
xorpd %xmm5, %xmm5
ucomisd %xmm5, %xmm1
jb 0xca406
sqrtsd %xmm1, %xmm2
jmp 0xca42f
movapd %xmm1, %xmm0
movsd %xmm3, 0x8(%rsp)
movsd %xmm4, 0x20(%rsp)
callq 0x82d0
xorpd %xmm5, %xmm5
movsd 0x20(%rsp), %xmm4
movsd 0x8(%rsp), %xmm3
movapd %xmm0, %xmm2
divsd 0x1f6f1(%rip), %xmm3    # 0xe9b28
mulsd 0x1f671(%rip), %xmm2    # 0xe9ab0
movsd 0x88(%rbx), %xmm0
ucomisd %xmm0, %xmm5
jbe 0xca493
movsd 0x1ae0b(%rip), %xmm0    # 0xe5260
addsd %xmm0, %xmm4
movsd 0x1f677(%rip), %xmm1    # 0xe9ad8
divsd %xmm1, %xmm4
minsd %xmm4, %xmm0
mulsd 0x1f65f(%rip), %xmm0    # 0xe9ad0
mulsd %xmm1, %xmm0
ucomisd %xmm2, %xmm0
jbe 0xca4c4
mulsd %xmm2, %xmm0
xorpd %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jb 0xca9d3
sqrtsd %xmm0, %xmm2
jmp 0xca4c4
mulsd 0x1f63d(%rip), %xmm0    # 0xe9ad8
mulsd %xmm2, %xmm2
mulsd %xmm0, %xmm0
addsd %xmm2, %xmm0
movsd 0x1b801(%rip), %xmm1    # 0xe5cb0
movsd %xmm3, 0x8(%rsp)
callq 0x8650
movsd 0x8(%rsp), %xmm3
movapd %xmm0, %xmm2
mulsd 0x1f5e4(%rip), %xmm3    # 0xe9ab0
movsd %xmm3, 0x8(%rsp)
movsd 0x78(%rbx), %xmm1
mulsd 0x55039(%rip), %xmm1    # 0x11f518
mulsd 0x1f4d1(%rip), %xmm1    # 0xe99b8
movapd %xmm2, %xmm0
mulsd %xmm2, %xmm0
movsd %xmm1, 0x10(%rsp)
divsd %xmm0, %xmm1
movsd %xmm1, 0x28(%rsp)
movsd 0x1c241(%rip), %xmm1    # 0xe6748
movsd %xmm2, 0x20(%rsp)
movapd %xmm2, %xmm0
callq 0x8650
movl 0x80(%rbx), %eax
testl %eax, %eax
je 0xca5f6
cmpl $0x1, %eax
jne 0xca87a
movsd 0x8(%rsp), %xmm5
mulsd 0x1b2b5(%rip), %xmm5    # 0xe57f0
divsd 0x54fe5(%rip), %xmm5    # 0x11f528
movsd 0x1da35(%rip), %xmm2    # 0xe7f80
movsd 0x98(%rbx), %xmm1
mulsd 0x1f60d(%rip), %xmm1    # 0xe9b68
mulsd %xmm5, %xmm2
movsd 0x408(%rbx), %xmm3
divsd 0x54fb9(%rip), %xmm3    # 0x11f528
movsd 0x90(%rbx), %xmm0
mulsd %xmm1, %xmm3
movsd 0x28(%rsp), %xmm1
mulsd %xmm1, %xmm1
mulsd %xmm3, %xmm1
movsd 0x20(%rsp), %xmm4
mulsd %xmm1, %xmm4
ucomisd 0x1b78d(%rip), %xmm0    # 0xe5d28
jne 0xca970
jp 0xca970
movapd %xmm4, %xmm0
divsd %xmm5, %xmm0
movsd 0x55099(%rip), %xmm1    # 0x11f650
ucomisd %xmm0, %xmm1
jae 0xca9e3
ucomisd 0x55087(%rip), %xmm0    # 0x11f650
jbe 0xca9f8
movsd 0x55091(%rip), %xmm1    # 0x11f668
ucomisd %xmm0, %xmm1
jb 0xca9f8
movsd 0x5506f(%rip), %xmm1    # 0x11f658
movsd 0x5506f(%rip), %xmm0    # 0x11f660
jmp 0xcaaef
movsd 0x438(%rbx), %xmm1
movsd 0x1de7a(%rip), %xmm2    # 0xe8480
mulsd %xmm1, %xmm2
mulsd 0x1f516(%rip), %xmm2    # 0xe9b28
mulsd 0x400(%rbx), %xmm2
movsd 0x10(%rsp), %xmm3
divsd %xmm0, %xmm3
mulsd %xmm3, %xmm2
divsd 0x39fb0(%rip), %xmm2    # 0x1045e0
divsd 0x1f478(%rip), %xmm2    # 0xe9ab0
movsd %xmm2, 0x18(%rsp)
addsd 0x1ac1a(%rip), %xmm1    # 0xe5260
movsd 0x54eea(%rip), %xmm0    # 0x11f538
divsd %xmm1, %xmm0
mulsd %xmm2, %xmm0
movsd %xmm0, 0x10(%rsp)
movsd 0x1de4c(%rip), %xmm1    # 0xe84b0
callq 0x8650
addsd 0x1abff(%rip), %xmm0    # 0xe5270
movsd 0x1d90f(%rip), %xmm1    # 0xe7f88
divsd %xmm0, %xmm1
movsd %xmm1, 0x38(%rsp)
movsd 0x10(%rsp), %xmm1
mulsd %xmm1, %xmm1
movsd 0x54eab(%rip), %xmm0    # 0x11f540
addsd %xmm1, %xmm0
divsd %xmm0, %xmm1
movapd %xmm1, %xmm0
movsd 0x54e9f(%rip), %xmm1    # 0x11f548
callq 0x8650
mulsd 0x54e9a(%rip), %xmm0    # 0x11f550
addsd 0x54e9a(%rip), %xmm0    # 0x11f558
movsd %xmm0, 0x30(%rsp)
movsd 0x1f34c(%rip), %xmm1    # 0xe9a18
movsd 0x18(%rsp), %xmm0
callq 0x8650
addsd 0x1c069(%rip), %xmm0    # 0xe6748
movsd 0x3ed69(%rip), %xmm1    # 0x109450
divsd %xmm0, %xmm1
movapd %xmm1, %xmm0
callq 0x86a0
movsd %xmm0, 0x10(%rsp)
movsd 0x18(%rsp), %xmm0
addsd 0x1ab58(%rip), %xmm0    # 0xe5260
movsd 0x1b5a0(%rip), %xmm1    # 0xe5cb0
callq 0x8650
movsd 0x1ab43(%rip), %xmm1    # 0xe5260
addsd %xmm1, %xmm0
mulsd %xmm0, %xmm0
movsd 0x10(%rsp), %xmm2
divsd %xmm0, %xmm2
mulsd 0x30(%rsp), %xmm2
divsd 0x54e23(%rip), %xmm2    # 0x11f560
movsd %xmm2, 0x10(%rsp)
movsd 0x438(%rbx), %xmm0
addsd %xmm1, %xmm0
mulsd 0x1b559(%rip), %xmm0    # 0xe5cb0
movsd 0x54e09(%rip), %xmm1    # 0x11f568
callq 0x8650
movsd 0x38(%rsp), %xmm1
mulsd %xmm1, %xmm0
mulsd 0x1dd8a(%rip), %xmm0    # 0xe8500
movsd %xmm0, 0x18(%rsp)
mulsd 0x54dec(%rip), %xmm1    # 0x11f570
addsd 0x1aad4(%rip), %xmm1    # 0xe5260
movapd %xmm1, %xmm0
movsd 0x1dc70(%rip), %xmm1    # 0xe8408
callq 0x8650
mulsd 0x18(%rsp), %xmm0
mulsd 0x54dcd(%rip), %xmm0    # 0x11f578
movsd 0x54dcd(%rip), %xmm1    # 0x11f580
mulsd %xmm0, %xmm1
movsd %xmm1, 0x18(%rsp)
divsd 0x54dc3(%rip), %xmm0    # 0x11f588
addsd 0x1aa93(%rip), %xmm0    # 0xe5260
movsd 0x1f22b(%rip), %xmm1    # 0xe9a00
callq 0x8650
movapd %xmm0, %xmm2
mulsd 0x18(%rsp), %xmm2
mulsd 0x1f314(%rip), %xmm2    # 0xe9b00
movsd %xmm2, 0x18(%rsp)
divsd 0x54d96(%rip), %xmm2    # 0x11f590
movsd 0x10(%rsp), %xmm1
mulsd 0x1f360(%rip), %xmm1    # 0xe9b68
movsd 0x408(%rbx), %xmm0
divsd 0x54d10(%rip), %xmm0    # 0x11f528
mulsd %xmm1, %xmm0
movsd 0x28(%rsp), %xmm1
mulsd %xmm1, %xmm1
mulsd %xmm0, %xmm1
movsd 0x20(%rsp), %xmm0
mulsd %xmm1, %xmm0
movsd %xmm0, 0x20(%rsp)
ucomisd 0x1aa1e(%rip), %xmm2    # 0xe5260
jbe 0xca8db
addsd %xmm2, %xmm2
mulsd 0x54d54(%rip), %xmm2    # 0x11f5a8
addsd 0x54d54(%rip), %xmm2    # 0x11f5b0
movapd %xmm2, %xmm0
callq 0x82e0
addsd 0x1dc13(%rip), %xmm0    # 0xe8480
mulsd 0x54d43(%rip), %xmm0    # 0x11f5b8
jmp 0xca929
leaq 0x559da(%rip), %rsi     # 0x12025b
leaq 0x840(%rsp), %r14
movq %r14, %rdi
xorl %eax, %eax
callq 0x2e014
leaq 0x1aceb(%rip), %rsi     # 0xe5585
leaq 0x40(%rsp), %r15
movq %r15, %rdi
movq %r14, %rdx
xorl %eax, %eax
callq 0x2e014
addq $0x570, %rbx            # imm = 0x570
leaq 0x1a77a(%rip), %rsi     # 0xe5034
leaq 0x559b7(%rip), %rdx     # 0x120278
movq %rbx, %rdi
movl $0x45b, %ecx            # imm = 0x45B
movq %r15, %r8
xorl %eax, %eax
callq 0x2e014
pushq $0x1
popq %rax
jmp 0xcab54
movsd 0x1db55(%rip), %xmm1    # 0xe8438
movapd %xmm2, %xmm0
movsd %xmm2, 0x10(%rsp)
callq 0x8650
mulsd 0x54c9e(%rip), %xmm0    # 0x11f598
movsd %xmm0, 0x28(%rsp)
movsd 0x1b390(%rip), %xmm1    # 0xe5c98
movsd 0x10(%rsp), %xmm0
callq 0x8650
mulsd 0x54c85(%rip), %xmm0    # 0x11f5a0
addsd 0x1a93d(%rip), %xmm0    # 0xe5260
mulsd 0x28(%rsp), %xmm0
movsd 0x18(%rsp), %xmm2
mulsd 0x54c89(%rip), %xmm2    # 0x11f5c0
divsd 0x54bf1(%rip), %xmm2    # 0x11f530
mulsd %xmm0, %xmm2
movsd 0x1f165(%rip), %xmm0    # 0xe9ab0
movsd 0x20(%rsp), %xmm1
mulsd %xmm0, %xmm1
mulsd %xmm0, %xmm1
mulsd %xmm1, %xmm1
mulsd %xmm2, %xmm1
divsd 0x8(%rsp), %xmm1
movapd %xmm1, %xmm0
jmp 0xcab1c
ucomisd 0x1a918(%rip), %xmm0    # 0xe5290
jne 0xcaa2d
jp 0xcaa2d
movapd %xmm4, %xmm0
divsd %xmm5, %xmm0
movsd 0x54c84(%rip), %xmm1    # 0x11f618
ucomisd %xmm0, %xmm1
jae 0xcaa95
ucomisd 0x54c72(%rip), %xmm0    # 0x11f618
jbe 0xcaaa7
movsd 0x54c74(%rip), %xmm1    # 0x11f628
ucomisd %xmm0, %xmm1
jb 0xcaaa7
movsd 0x54bc2(%rip), %xmm1    # 0x11f588
movsd 0x54c52(%rip), %xmm0    # 0x11f620
jmp 0xcaaef
movsd %xmm3, 0x8(%rsp)
callq 0x82d0
jmp 0xca4ba
movsd 0x54c55(%rip), %xmm1    # 0x11f640
movsd 0x54c55(%rip), %xmm0    # 0x11f648
jmp 0xcaaef
ucomisd 0x54c68(%rip), %xmm0    # 0x11f668
jbe 0xcaad1
movsd 0x54c72(%rip), %xmm1    # 0x11f680
ucomisd %xmm0, %xmm1
jb 0xcaad1
movsd 0x54c50(%rip), %xmm1    # 0x11f670
movsd 0x54c50(%rip), %xmm0    # 0x11f678
jmp 0xcaaef
xorpd %xmm1, %xmm1
movsd 0x1a857(%rip), %xmm6    # 0xe5290
ucomisd 0x1b26f(%rip), %xmm0    # 0xe5cb0
jne 0xcab8e
jp 0xcab8e
movapd %xmm4, %xmm0
divsd %xmm5, %xmm0
movsd 0x54b7b(%rip), %xmm3    # 0x11f5d8
ucomisd %xmm0, %xmm3
jae 0xcaadf
ucomisd 0x54b6d(%rip), %xmm0    # 0x11f5d8
jbe 0xcab61
movsd 0x54b77(%rip), %xmm3    # 0x11f5f0
ucomisd %xmm0, %xmm3
jb 0xcab61
movsd 0x54b55(%rip), %xmm1    # 0x11f5e0
movsd 0x54b55(%rip), %xmm0    # 0x11f5e8
jmp 0xcaaef
movsd 0x54b73(%rip), %xmm1    # 0x11f610
movsd 0x1f0bb(%rip), %xmm0    # 0xe9b60
jmp 0xcaaef
ucomisd 0x54b79(%rip), %xmm0    # 0x11f628
jbe 0xcaad1
movsd 0x54b7f(%rip), %xmm1    # 0x11f638
ucomisd %xmm0, %xmm1
jb 0xcaad1
movsd 0x54b69(%rip), %xmm1    # 0x11f630
movsd 0x1b1e1(%rip), %xmm0    # 0xe5cb0
jmp 0xcaaef
xorpd %xmm1, %xmm1
movsd 0x1a7b3(%rip), %xmm0    # 0xe5290
jmp 0xcaaef
movsd 0x54ae1(%rip), %xmm1    # 0x11f5c8
movsd 0x54ae1(%rip), %xmm0    # 0x11f5d0
movsd %xmm0, 0x8(%rsp)
movapd %xmm4, %xmm0
divsd %xmm2, %xmm0
movsd %xmm4, 0x20(%rsp)
callq 0x8650
mulsd 0x8(%rsp), %xmm0
mulsd 0x20(%rsp), %xmm0
mulsd 0x54a0c(%rip), %xmm0    # 0x11f528
movupd 0x70(%rbx), %xmm1
movapd 0x54b67(%rip), %xmm2    # 0x11f690
movlpd 0x410(%rbx), %xmm2      # xmm2 = mem[0],xmm2[1]
mulpd %xmm1, %xmm2
movapd %xmm2, %xmm1
unpckhpd %xmm2, %xmm1            # xmm1 = xmm1[1],xmm2[1]
divsd %xmm1, %xmm2
mulsd %xmm0, %xmm2
divsd 0x549db(%rip), %xmm2    # 0x11f528
movsd %xmm2, (%r14)
xorl %eax, %eax
addq $0x1040, %rsp           # imm = 0x1040
popq %rbx
popq %r14
popq %r15
retq
ucomisd 0x54a87(%rip), %xmm0    # 0x11f5f0
jbe 0xcab8e
movsd 0x54a95(%rip), %xmm3    # 0x11f608
ucomisd %xmm0, %xmm3
jb 0xcab8e
movsd 0x54a77(%rip), %xmm1    # 0x11f5f8
movsd 0x54a77(%rip), %xmm0    # 0x11f600
jmp 0xcaaef
movsd %xmm6, 0x8(%rsp)
jmp 0xcaaf5