// File: /workspace/github_c_makefile_star2_O1/samtools[P]htslib/annot-tsv.c
// Function: destroy_data
void destroy_data(args_t *args)
{
    if ( bgzf_close(args->out_fp)!=0 ) error("Failed to close: %s\n", args->out_fname?args->out_fname:"stdout");
    if ( hts_close(args->dst.fp)!=0 ) error("Failed to close: %s\n", args->dst.fname);
    int i;
    for (i=0; i<args->src.transfer->n; i++)
        khash_str2int_destroy(args->tmp_hash[i]);
    free(args->tmp_hash);
    for (i=0; i<args->src.transfer->n; i++) cols_clear(&args->tmp_cols[i]);
    free(args->tmp_cols);
    cols_destroy(args->src.core);
    cols_destroy(args->dst.core);
    cols_destroy(args->src.match);
    cols_destroy(args->dst.match);
    cols_destroy(args->src.transfer);
    cols_destroy(args->dst.transfer);
    if ( args->src.annots ) cols_destroy(args->src.annots);
    if ( args->dst.annots ) cols_destroy(args->dst.annots);
    if ( args->nbp ) nbp_destroy(args->nbp);
    destroy_header(&args->src);
    destroy_header(&args->dst);
    free(args->src.nannots_added);
    free(args->src.core_idx);
    free(args->dst.core_idx);
    free(args->src.match_idx);
    free(args->dst.match_idx);
    free(args->src.transfer_idx);
    free(args->dst.transfer_idx);
    free(args->src.annots_idx);
    free(args->dst.annots_idx);
    free(args->src.line.s);
    free(args->dst.line.s);
    if (args->itr) regitr_destroy(args->itr);
    if (args->idx) regidx_destroy(args->idx);
    free(args->tmp_kstr.s);
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %rbx
movq 0x190(%rdi), %rdi
callq 0xd4a4
testl %eax, %eax
jne 0x7dc8
leaq 0x8(%rbx), %r14
movq 0xa0(%rbx), %rdi
callq 0x156e5
testl %eax, %eax
jne 0x7ddf
movq 0xe0(%rbx), %rax
cmpl $0x0, (%rax)
je 0x7c3a
xorl %r12d, %r12d
movq 0x1f0(%rbx), %rax
movq (%rax,%r12,8), %r15
testq %r15, %r15
je 0x7c29
movq 0x18(%r15), %rdi
callq 0x45c0
movq 0x10(%r15), %rdi
callq 0x45c0
movq 0x20(%r15), %rdi
callq 0x45c0
movq %r15, %rdi
callq 0x45c0
incq %r12
movq 0xe0(%rbx), %rax
movl (%rax), %eax
cmpq %rax, %r12
jb 0x7bf6
movq 0x1f0(%rbx), %rdi
callq 0x45c0
movq 0xe0(%rbx), %rax
cmpl $0x0, (%rax)
je 0x7c7c
xorl %r15d, %r15d
xorl %r12d, %r12d
movq 0x1e8(%rbx), %rdi
addq %r15, %rdi
callq 0x6135
incq %r12
movq 0xe0(%rbx), %rax
movl (%rax), %eax
addq $0x18, %r15
cmpq %rax, %r12
jb 0x7c58
movq 0x1e8(%rbx), %rdi
callq 0x45c0
movq 0xd0(%rbx), %rdi
callq 0x6159
movq 0x30(%rbx), %rdi
callq 0x6159
movq 0xd8(%rbx), %rdi
callq 0x6159
movq 0x38(%rbx), %rdi
callq 0x6159
movq 0xe0(%rbx), %rdi
callq 0x6159
movq 0x40(%rbx), %rdi
callq 0x6159
movq 0xe8(%rbx), %rdi
testq %rdi, %rdi
je 0x7cd8
callq 0x6159
movq 0x48(%rbx), %rdi
testq %rdi, %rdi
je 0x7ce6
callq 0x6159
leaq 0xa8(%rbx), %r15
movq (%rbx), %r12
testq %r12, %r12
je 0x7d07
movq 0x10(%r12), %rdi
callq 0x45c0
movq %r12, %rdi
callq 0x45c0
movq %r15, %rdi
callq 0x6f64
movq %r14, %rdi
callq 0x6f64
movq 0x110(%rbx), %rdi
callq 0x45c0
movq 0xf0(%rbx), %rdi
callq 0x45c0
movq 0x50(%rbx), %rdi
callq 0x45c0
movq 0xf8(%rbx), %rdi
callq 0x45c0
movq 0x58(%rbx), %rdi
callq 0x45c0
movq 0x100(%rbx), %rdi
callq 0x45c0
movq 0x60(%rbx), %rdi
callq 0x45c0
movq 0x108(%rbx), %rdi
callq 0x45c0
movq 0x68(%rbx), %rdi
callq 0x45c0
movq 0x138(%rbx), %rdi
callq 0x45c0
movq 0x98(%rbx), %rdi
callq 0x45c0
movq 0x1c8(%rbx), %rdi
testq %rdi, %rdi
je 0x7da0
callq 0x21b55
movq 0x1c0(%rbx), %rdi
testq %rdi, %rdi
je 0x7db1
callq 0x20e99
movq 0x1e0(%rbx), %rdi
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
jmp 0x45c0
movq 0x188(%rbx), %rax
testq %rax, %rax
leaq 0x8e785(%rip), %rsi     # 0x9655e
cmovneq %rax, %rsi
jmp 0x7de2
movq (%r14), %rsi
leaq 0x8e735(%rip), %rdi     # 0x9651e
xorl %eax, %eax
callq 0x5ed4