// File: /workspace/github_c_makefile_star2_O0/lesgourg[P]class_public/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.) {
    if (pba->scf_parameters != NULL)
      free(pba->scf_parameters);
  }
  return _SUCCESS_;
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq 0x10(%rsp), %rax
movsd 0xa8(%rax), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x9a2a6
jp 0x9a2a6
jmp 0x9a4cf
movl $0x0, 0xc(%rsp)
movl 0xc(%rsp), %eax
movq 0x10(%rsp), %rcx
cmpl 0x70(%rcx), %eax
jge 0x9a352
movq 0x10(%rsp), %rax
movq 0x350(%rax), %rax
movslq 0xc(%rsp), %rcx
movq (%rax,%rcx,8), %rdi
callq 0x8420
movq 0x10(%rsp), %rax
movq 0x358(%rax), %rax
movslq 0xc(%rsp), %rcx
movq (%rax,%rcx,8), %rdi
callq 0x8420
movq 0x10(%rsp), %rax
movq 0x340(%rax), %rax
movslq 0xc(%rsp), %rcx
movq (%rax,%rcx,8), %rdi
callq 0x8420
movq 0x10(%rsp), %rax
movq 0x348(%rax), %rax
movslq 0xc(%rsp), %rcx
movq (%rax,%rcx,8), %rdi
callq 0x8420
movq 0x10(%rsp), %rax
movq 0x360(%rax), %rax
movslq 0xc(%rsp), %rcx
movq (%rax,%rcx,8), %rdi
callq 0x8420
movl 0xc(%rsp), %eax
addl $0x1, %eax
movl %eax, 0xc(%rsp)
jmp 0x9a2ae
movq 0x10(%rsp), %rax
movq 0x338(%rax), %rdi
callq 0x8420
movq 0x10(%rsp), %rax
movq 0xe0(%rax), %rdi
callq 0x8420
movq 0x10(%rsp), %rax
movq 0xe8(%rax), %rdi
callq 0x8420
movq 0x10(%rsp), %rax
movq 0x350(%rax), %rdi
callq 0x8420
movq 0x10(%rsp), %rax
movq 0x358(%rax), %rdi
callq 0x8420
movq 0x10(%rsp), %rax
movq 0x340(%rax), %rdi
callq 0x8420
movq 0x10(%rsp), %rax
movq 0x348(%rax), %rdi
callq 0x8420
movq 0x10(%rsp), %rax
movq 0x360(%rax), %rdi
callq 0x8420
movq 0x10(%rsp), %rax
movq 0x370(%rax), %rdi
callq 0x8420
movq 0x10(%rsp), %rax
movq 0x368(%rax), %rdi
callq 0x8420
movq 0x10(%rsp), %rax
movq 0x90(%rax), %rdi
callq 0x8420
movq 0x10(%rsp), %rax
movq 0xb0(%rax), %rdi
callq 0x8420
movq 0x10(%rsp), %rax
movq 0xc0(%rax), %rdi
callq 0x8420
movq 0x10(%rsp), %rax
movq 0xd0(%rax), %rdi
callq 0x8420
movq 0x10(%rsp), %rax
movq 0xa0(%rax), %rdi
callq 0x8420
movq 0x10(%rsp), %rax
movq 0x98(%rax), %rdi
callq 0x8420
movq 0x10(%rsp), %rax
movq 0x378(%rax), %rdi
callq 0x8420
movq 0x10(%rsp), %rax
cmpq $0x0, 0x80(%rax)
je 0x9a493
movq 0x10(%rsp), %rax
movq 0x80(%rax), %rdi
callq 0x8420
movq 0x10(%rsp), %rax
cmpq $0x0, 0x78(%rax)
je 0x9a4ad
movq 0x10(%rsp), %rax
movq 0x78(%rax), %rdi
callq 0x8420
movq 0x10(%rsp), %rax
cmpq $0x0, 0x88(%rax)
je 0x9a4cd
movq 0x10(%rsp), %rax
movq 0x88(%rax), %rdi
callq 0x8420
jmp 0x9a4cf
movq 0x10(%rsp), %rax
movsd 0x108(%rax), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x9a4e9
jp 0x9a4e9
jmp 0x9a50b
movq 0x10(%rsp), %rax
cmpq $0x0, 0x148(%rax)
je 0x9a509
movq 0x10(%rsp), %rax
movq 0x148(%rax), %rdi
callq 0x8420
jmp 0x9a50b
xorl %eax, %eax
addq $0x18, %rsp
retq
nopw %cs:(%rax,%rax)