// File: /workspace/github_c_makefile_star2_O2/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 0xbc96
testl %eax, %eax
jne 0x753f
leaq 0x8(%rbx), %r14
movq 0xa0(%rbx), %rdi
callq 0x1239d
testl %eax, %eax
jne 0x7556
xorl %r15d, %r15d
movq 0xe0(%rbx), %rax
movq 0x1f0(%rbx), %rdi
movl (%rax), %eax
cmpq %rax, %r15
jae 0x73c2
movq (%rdi,%r15,8), %rdi
callq 0x68fc
incq %r15
jmp 0x739f
callq 0x45c0
xorl %r15d, %r15d
xorl %r12d, %r12d
movq 0xe0(%rbx), %rax
movl (%rax), %eax
cmpq %rax, %r12
jae 0x73f3
movq 0x1e8(%rbx), %rdi
addq %r15, %rdi
callq 0x5dd2
incq %r12
addq $0x18, %r15
jmp 0x73cd
movq 0x1e8(%rbx), %rdi
callq 0x45c0
movq 0xd0(%rbx), %rdi
callq 0x5df6
movq 0x30(%rbx), %rdi
callq 0x5df6
movq 0xd8(%rbx), %rdi
callq 0x5df6
movq 0x38(%rbx), %rdi
callq 0x5df6
movq 0xe0(%rbx), %rdi
callq 0x5df6
movq 0x40(%rbx), %rdi
callq 0x5df6
movq 0xe8(%rbx), %rdi
testq %rdi, %rdi
je 0x744f
callq 0x5df6
movq 0x48(%rbx), %rdi
testq %rdi, %rdi
je 0x745d
callq 0x5df6
leaq 0xa8(%rbx), %r15
movq (%rbx), %r12
testq %r12, %r12
je 0x747e
movq 0x10(%r12), %rdi
callq 0x45c0
movq %r12, %rdi
callq 0x45c0
movq %r15, %rdi
callq 0x68e3
movq %r14, %rdi
callq 0x68e3
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 0x7517
callq 0x1c7d4
movq 0x1c0(%rbx), %rdi
testq %rdi, %rdi
je 0x7528
callq 0x1bd98
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 0x6e00e(%rip), %rsi     # 0x7555e
cmovneq %rax, %rsi
jmp 0x7559
movq (%r14), %rsi
leaq 0x6dfbe(%rip), %rdi     # 0x7551e
xorl %eax, %eax
callq 0x5b9e