// File: /workspace/github_c_makefile_star2_O1/PoulinV[P]AxiCLASS/build/../source/background.c
// Function: background_free_input
int background_free_input(
                          struct background *pba
                          ) {

  int k;

  if (pba->Omega0_ncdm_tot != 0.) {
    for (k=0; k<pba->N_ncdm; k++) {
      free(pba->q_ncdm[k]);
      free(pba->w_ncdm[k]);
      free(pba->q_ncdm_bg[k]);
      free(pba->w_ncdm_bg[k]);
      free(pba->dlnf0_dlnq_ncdm[k]);
    }

    free(pba->ncdm_quadrature_strategy);
    free(pba->ncdm_input_q_size);
    free(pba->ncdm_qmax);
    free(pba->q_ncdm);
    free(pba->w_ncdm);
    free(pba->q_ncdm_bg);
    free(pba->w_ncdm_bg);
    free(pba->dlnf0_dlnq_ncdm);
    free(pba->q_size_ncdm);
    free(pba->q_size_ncdm_bg);
    free(pba->M_ncdm);
    free(pba->T_ncdm);
    free(pba->ksi_ncdm);
    free(pba->deg_ncdm);
    free(pba->Omega0_ncdm);
    free(pba->m_ncdm_in_eV);
    free(pba->factor_ncdm);
    if (pba->got_files!=NULL)
      free(pba->got_files);
    if (pba->ncdm_psd_files!=NULL)
      free(pba->ncdm_psd_files);
    if (pba->ncdm_psd_parameters!=NULL)
      free(pba->ncdm_psd_parameters);
  }

  if (pba->Omega0_scf != 0.  || pba->log10_fraction_axion_ac > -30. || pba->log10_axion_ac > -30 || pba->m_scf != 0 || pba->f_axion != 0){
    if (pba->scf_parameters != NULL)
      free(pba->scf_parameters);
  }
  return _SUCCESS_;
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
movsd 0x288(%rdi), %xmm0
xorpd %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x647e6
jnp 0x64950
cmpl $0x0, 0x248(%rbx)
jle 0x64851
xorl %r14d, %r14d
movq 0x4e8(%rbx), %rax
movq (%rax,%r14,8), %rdi
callq 0x8410
movq 0x4f0(%rbx), %rax
movq (%rax,%r14,8), %rdi
callq 0x8410
movq 0x4d8(%rbx), %rax
movq (%rax,%r14,8), %rdi
callq 0x8410
movq 0x4e0(%rbx), %rax
movq (%rax,%r14,8), %rdi
callq 0x8410
movq 0x4f8(%rbx), %rax
movq (%rax,%r14,8), %rdi
callq 0x8410
incq %r14
movslq 0x248(%rbx), %rax
cmpq %rax, %r14
jl 0x647f2
movq 0x4d0(%rbx), %rdi
callq 0x8410
movq 0x2c0(%rbx), %rdi
callq 0x8410
movq 0x2c8(%rbx), %rdi
callq 0x8410
movq 0x4e8(%rbx), %rdi
callq 0x8410
movq 0x4f0(%rbx), %rdi
callq 0x8410
movq 0x4d8(%rbx), %rdi
callq 0x8410
movq 0x4e0(%rbx), %rdi
callq 0x8410
movq 0x4f8(%rbx), %rdi
callq 0x8410
movq 0x508(%rbx), %rdi
callq 0x8410
movq 0x500(%rbx), %rdi
callq 0x8410
movq 0x270(%rbx), %rdi
callq 0x8410
movq 0x290(%rbx), %rdi
callq 0x8410
movq 0x2a0(%rbx), %rdi
callq 0x8410
movq 0x2b0(%rbx), %rdi
callq 0x8410
movq 0x280(%rbx), %rdi
callq 0x8410
movq 0x278(%rbx), %rdi
callq 0x8410
movq 0x510(%rbx), %rdi
callq 0x8410
movq 0x258(%rbx), %rdi
testq %rdi, %rdi
je 0x6492e
callq 0x8410
movq 0x250(%rbx), %rdi
testq %rdi, %rdi
je 0x6493f
callq 0x8410
movq 0x260(%rbx), %rdi
testq %rdi, %rdi
je 0x64950
callq 0x8410
movsd 0x128(%rbx), %xmm0
ucomisd 0x8c8f8(%rip), %xmm0    # 0xf1258
jne 0x649ac
jp 0x649ac
movsd 0x1d0(%rbx), %xmm0
ucomisd 0x911cc(%rip), %xmm0    # 0xf5b40
ja 0x649ac
movsd 0x1b8(%rbx), %xmm0
ucomisd 0x911ba(%rip), %xmm0    # 0xf5b40
ja 0x649ac
movsd 0x188(%rbx), %xmm1
xorpd %xmm0, %xmm0
ucomisd %xmm0, %xmm1
jne 0x649ac
jp 0x649ac
movsd 0x190(%rbx), %xmm1
ucomisd %xmm0, %xmm1
jne 0x649ac
jnp 0x649bd
movq 0x168(%rbx), %rdi
testq %rdi, %rdi
je 0x649bd
callq 0x8410
xorl %eax, %eax
addq $0x8, %rsp
popq %rbx
popq %r14
retq