// File: /workspace/github_c_makefile_star2_O0/PoulinV[P]AxiCLASS/build/../source/transfer.c
// Function: transfer_free
int transfer_free(
                  struct transfer * ptr
                  ) {

  int index_md;

  if (ptr->has_cls == _TRUE_) {

    for (index_md = 0; index_md < ptr->md_size; index_md++) {
      free(ptr->l_size_tt[index_md]);
      free(ptr->transfer[index_md]);
      free(ptr->k[index_md]);
      if (ptr->do_lcmb_full_limber == _TRUE_) {
        free(ptr->transfer_limber[index_md]);
        free(ptr->k_limber[index_md]);
      }
    }

    free(ptr->tt_size);
    free(ptr->l_size_tt);
    free(ptr->l_size);
    free(ptr->l);
    free(ptr->q);
    free(ptr->k);
    free(ptr->transfer);
    if (ptr->do_lcmb_full_limber == _TRUE_) {
      free(ptr->q_limber);
      free(ptr->k_limber);
      free(ptr->transfer_limber);
    }

    if (ptr->nz_size > 0) {
      free(ptr->nz_z);
      free(ptr->nz_nz);
      free(ptr->nz_ddnz);
    }

    if (ptr->nz_evo_size > 0) {
      free(ptr->nz_evo_z);
      free(ptr->nz_evo_nz);
      free(ptr->nz_evo_dlog_nz);
      free(ptr->nz_evo_dd_dlog_nz);
    }
  }

  ptr->is_allocated = _FALSE_;

  return _SUCCESS_;

}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq 0x10(%rsp), %rax
movswl 0x8a0(%rax), %eax
cmpl $0x1, %eax
jne 0x137c10
movl $0x0, 0xc(%rsp)
movl 0xc(%rsp), %eax
movq 0x10(%rsp), %rcx
cmpl 0x8a4(%rcx), %eax
jge 0x137ac0
movq 0x10(%rsp), %rax
movq 0x8f8(%rax), %rax
movslq 0xc(%rsp), %rcx
movq (%rax,%rcx,8), %rdi
callq 0x8420
movq 0x10(%rsp), %rax
movq 0x958(%rax), %rax
movslq 0xc(%rsp), %rcx
movq (%rax,%rcx,8), %rdi
callq 0x8420
movq 0x10(%rsp), %rax
movq 0x930(%rax), %rax
movslq 0xc(%rsp), %rcx
movq (%rax,%rcx,8), %rdi
callq 0x8420
movq 0x10(%rsp), %rax
movswl 0x93c(%rax), %eax
cmpl $0x1, %eax
jne 0x137aae
movq 0x10(%rsp), %rax
movq 0x960(%rax), %rax
movslq 0xc(%rsp), %rcx
movq (%rax,%rcx,8), %rdi
callq 0x8420
movq 0x10(%rsp), %rax
movq 0x950(%rax), %rax
movslq 0xc(%rsp), %rcx
movq (%rax,%rcx,8), %rdi
callq 0x8420
jmp 0x137ab0
movl 0xc(%rsp), %eax
addl $0x1, %eax
movl %eax, 0xc(%rsp)
jmp 0x137a06
movq 0x10(%rsp), %rax
movq 0x8f0(%rax), %rdi
callq 0x8420
movq 0x10(%rsp), %rax
movq 0x8f8(%rax), %rdi
callq 0x8420
movq 0x10(%rsp), %rax
movq 0x900(%rax), %rdi
callq 0x8420
movq 0x10(%rsp), %rax
movq 0x910(%rax), %rdi
callq 0x8420
movq 0x10(%rsp), %rax
movq 0x928(%rax), %rdi
callq 0x8420
movq 0x10(%rsp), %rax
movq 0x930(%rax), %rdi
callq 0x8420
movq 0x10(%rsp), %rax
movq 0x958(%rax), %rdi
callq 0x8420
movq 0x10(%rsp), %rax
movswl 0x93c(%rax), %eax
cmpl $0x1, %eax
jne 0x137b7b
movq 0x10(%rsp), %rax
movq 0x948(%rax), %rdi
callq 0x8420
movq 0x10(%rsp), %rax
movq 0x950(%rax), %rdi
callq 0x8420
movq 0x10(%rsp), %rax
movq 0x960(%rax), %rdi
callq 0x8420
movq 0x10(%rsp), %rax
cmpl $0x0, 0x75c(%rax)
jle 0x137bbc
movq 0x10(%rsp), %rax
movq 0x760(%rax), %rdi
callq 0x8420
movq 0x10(%rsp), %rax
movq 0x768(%rax), %rdi
callq 0x8420
movq 0x10(%rsp), %rax
movq 0x770(%rax), %rdi
callq 0x8420
movq 0x10(%rsp), %rax
cmpl $0x0, 0x87c(%rax)
jle 0x137c0e
movq 0x10(%rsp), %rax
movq 0x880(%rax), %rdi
callq 0x8420
movq 0x10(%rsp), %rax
movq 0x888(%rax), %rdi
callq 0x8420
movq 0x10(%rsp), %rax
movq 0x890(%rax), %rdi
callq 0x8420
movq 0x10(%rsp), %rax
movq 0x898(%rax), %rdi
callq 0x8420
jmp 0x137c10
movq 0x10(%rsp), %rax
movw $0x0, 0x116a(%rax)
xorl %eax, %eax
addq $0x18, %rsp
retq
nopw %cs:(%rax,%rax)