// File: /workspace/github_c_makefile_star2_O0/samtools[P]htslib/hts.c
// Function: hts_format_description
char *hts_format_description(const htsFormat *format)
{
    kstring_t str = { 0, 0, NULL };

    switch (format->format) {
    case sam:   kputs("SAM", &str); break;
    case bam:   kputs("BAM", &str); break;
    case cram:  kputs("CRAM", &str); break;
    case fasta_format:  kputs("FASTA", &str); break;
    case fastq_format:  kputs("FASTQ", &str); break;
    case vcf:   kputs("VCF", &str); break;
    case bcf:
        if (format->version.major == 1) kputs("Legacy BCF", &str);
        else kputs("BCF", &str);
        break;
    case bai:   kputs("BAI", &str); break;
    case crai:  kputs("CRAI", &str); break;
    case csi:   kputs("CSI", &str); break;
    case fai_format:    kputs("FASTA-IDX", &str); break;
    case fqi_format:    kputs("FASTQ-IDX", &str); break;
    case gzi:   kputs("GZI", &str); break;
    case tbi:   kputs("Tabix", &str); break;
    case bed:   kputs("BED", &str); break;
    case d4_format:     kputs("D4", &str); break;
    case htsget: kputs("htsget", &str); break;
    case hts_crypt4gh_format: kputs("crypt4gh", &str); break;
    case empty_format:  kputs("empty", &str); break;
    default:    kputs("unknown", &str); break;
    }

    if (format->version.major >= 0) {
        kputs(" version ", &str);
        kputw(format->version.major, &str);
        if (format->version.minor >= 0) {
            kputc('.', &str);
            kputw(format->version.minor, &str);
        }
    }

    switch (format->compression) {
    case bzip2_compression:  kputs(" bzip2-compressed", &str); break;
    case razf_compression:   kputs(" legacy-RAZF-compressed", &str); break;
    case xz_compression:     kputs(" XZ-compressed", &str); break;
    case zstd_compression:   kputs(" Zstandard-compressed", &str); break;
    case custom: kputs(" compressed", &str); break;
    case gzip:   kputs(" gzip-compressed", &str); break;

    case bgzf:
        switch (format->format) {
        case bam:
        case bcf:
        case csi:
        case tbi:
            // These are by definition BGZF, so just use the generic term
            kputs(" compressed", &str);
            break;
        default:
            kputs(" BGZF-compressed", &str);
            break;
        }
        break;

    case no_compression:
        switch (format->format) {
        case bam:
        case bcf:
        case cram:
        case csi:
        case tbi:
            // These are normally compressed, so emphasise that this one isn't
            kputs(" uncompressed", &str);
            break;
        default:
            break;
        }
        break;

    default: break;
    }

    switch (format->category) {
    case sequence_data: kputs(" sequence", &str); break;
    case variant_data:  kputs(" variant calling", &str); break;
    case index_file:    kputs(" index", &str); break;
    case region_list:   kputs(" genomic region", &str); break;
    default: break;
    }

    if (format->compression == no_compression)
        switch (format->format) {
        case text_format:
        case sam:
        case crai:
        case vcf:
        case bed:
        case fai_format:
        case fqi_format:
        case fasta_format:
        case fastq_format:
        case htsget:
            kputs(" text", &str);
            break;

        case empty_format:
            break;

        default:
            kputs(" data", &str);
            break;
        }
    else
        kputs(" data", &str);

    return ks_release(&str);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x8(%rbp)
xorps %xmm0, %xmm0
movaps %xmm0, -0x20(%rbp)
movq $0x0, -0x10(%rbp)
movq -0x8(%rbp), %rax
movl 0x4(%rax), %eax
addl $-0x3, %eax
movl %eax, %ecx
movq %rcx, -0x28(%rbp)
subl $0x12, %eax
ja 0x19dd1
movq -0x28(%rbp), %rax
leaq 0xd5cf1(%rip), %rcx     # 0xef920
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0xd63cb(%rip), %rdi     # 0xf000a
leaq -0x20(%rbp), %rsi
callq 0x1a080
jmp 0x19de1
leaq 0xd63ba(%rip), %rdi     # 0xf000e
leaq -0x20(%rbp), %rsi
callq 0x1a080
jmp 0x19de1
leaq 0xd62fe(%rip), %rdi     # 0xeff67
leaq -0x20(%rbp), %rsi
callq 0x1a080
jmp 0x19de1
leaq 0xd6394(%rip), %rdi     # 0xf0012
leaq -0x20(%rbp), %rsi
callq 0x1a080
jmp 0x19de1
leaq 0xd6385(%rip), %rdi     # 0xf0018
leaq -0x20(%rbp), %rsi
callq 0x1a080
jmp 0x19de1
leaq 0xd62ef(%rip), %rdi     # 0xeff97
leaq -0x20(%rbp), %rsi
callq 0x1a080
jmp 0x19de1
movq -0x8(%rbp), %rax
movswl 0x8(%rax), %eax
cmpl $0x1, %eax
jne 0x19cd5
leaq 0xd6354(%rip), %rdi     # 0xf001e
leaq -0x20(%rbp), %rsi
callq 0x1a080
jmp 0x19ce5
leaq 0xd6349(%rip), %rdi     # 0xf0025
leaq -0x20(%rbp), %rsi
callq 0x1a080
jmp 0x19de1
leaq 0xd6338(%rip), %rdi     # 0xf0029
leaq -0x20(%rbp), %rsi
callq 0x1a080
jmp 0x19de1
leaq 0xd6327(%rip), %rdi     # 0xf002d
leaq -0x20(%rbp), %rsi
callq 0x1a080
jmp 0x19de1
leaq 0xd6317(%rip), %rdi     # 0xf0032
leaq -0x20(%rbp), %rsi
callq 0x1a080
jmp 0x19de1
leaq 0xd6306(%rip), %rdi     # 0xf0036
leaq -0x20(%rbp), %rsi
callq 0x1a080
jmp 0x19de1
leaq 0xd62fb(%rip), %rdi     # 0xf0040
leaq -0x20(%rbp), %rsi
callq 0x1a080
jmp 0x19de1
leaq 0xd62f0(%rip), %rdi     # 0xf004a
leaq -0x20(%rbp), %rsi
callq 0x1a080
jmp 0x19de1
leaq 0xd62e2(%rip), %rdi     # 0xf004e
leaq -0x20(%rbp), %rsi
callq 0x1a080
jmp 0x19de1
leaq 0xd62d6(%rip), %rdi     # 0xf0054
leaq -0x20(%rbp), %rsi
callq 0x1a080
jmp 0x19de1
leaq 0xd62c8(%rip), %rdi     # 0xf0058
leaq -0x20(%rbp), %rsi
callq 0x1a080
jmp 0x19de1
leaq 0xd62b9(%rip), %rdi     # 0xf005b
leaq -0x20(%rbp), %rsi
callq 0x1a080
jmp 0x19de1
leaq 0xd5898(%rip), %rdi     # 0xef64c
leaq -0x20(%rbp), %rsi
callq 0x1a080
jmp 0x19de1
leaq 0xd629c(%rip), %rdi     # 0xf0062
leaq -0x20(%rbp), %rsi
callq 0x1a080
jmp 0x19de1
leaq 0xd5636(%rip), %rdi     # 0xef40e
leaq -0x20(%rbp), %rsi
callq 0x1a080
movq -0x8(%rbp), %rax
movswl 0x8(%rax), %eax
cmpl $0x0, %eax
jl 0x19e3d
leaq 0xd6273(%rip), %rdi     # 0xf0068
leaq -0x20(%rbp), %rsi
callq 0x1a080
movq -0x8(%rbp), %rax
movswl 0x8(%rax), %edi
leaq -0x20(%rbp), %rsi
callq 0x1a0e0
movq -0x8(%rbp), %rax
movswl 0xa(%rax), %eax
cmpl $0x0, %eax
jl 0x19e3b
movl $0x2e, %edi
leaq -0x20(%rbp), %rsi
callq 0x1a160
movq -0x8(%rbp), %rax
movswl 0xa(%rax), %edi
leaq -0x20(%rbp), %rsi
callq 0x1a0e0
jmp 0x19e3d
movq -0x8(%rbp), %rax
movl 0xc(%rax), %eax
movq %rax, -0x30(%rbp)
subq $0x7, %rax
ja 0x19f78
movq -0x30(%rbp), %rax
leaq 0xd5b0f(%rip), %rcx     # 0xef96c
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0xd6205(%rip), %rdi     # 0xf0072
leaq -0x20(%rbp), %rsi
callq 0x1a080
jmp 0x19f7a
leaq 0xd6202(%rip), %rdi     # 0xf0084
leaq -0x20(%rbp), %rsi
callq 0x1a080
jmp 0x19f7a
leaq 0xd6205(%rip), %rdi     # 0xf009c
leaq -0x20(%rbp), %rsi
callq 0x1a080
jmp 0x19f7a
leaq 0xd61ff(%rip), %rdi     # 0xf00ab
leaq -0x20(%rbp), %rsi
callq 0x1a080
jmp 0x19f7a
leaq 0xd7f7d(%rip), %rdi     # 0xf1e3e
leaq -0x20(%rbp), %rsi
callq 0x1a080
jmp 0x19f7a
leaq 0xd61eb(%rip), %rdi     # 0xf00c1
leaq -0x20(%rbp), %rsi
callq 0x1a080
jmp 0x19f7a
movq -0x8(%rbp), %rax
movl 0x4(%rax), %eax
movl %eax, -0x34(%rbp)
subl $0x4, %eax
je 0x19f0c
jmp 0x19ef5
movl -0x34(%rbp), %eax
addl $-0x9, %eax
subl $0x2, %eax
jb 0x19f0c
jmp 0x19f02
movl -0x34(%rbp), %eax
subl $0xc, %eax
jne 0x19f1e
jmp 0x19f0c
leaq 0xd7f2b(%rip), %rdi     # 0xf1e3e
leaq -0x20(%rbp), %rsi
callq 0x1a080
jmp 0x19f2e
leaq 0xd61ad(%rip), %rdi     # 0xf00d2
leaq -0x20(%rbp), %rsi
callq 0x1a080
jmp 0x19f7a
movq -0x8(%rbp), %rax
movl 0x4(%rax), %eax
movl %eax, -0x38(%rbp)
subl $0x4, %eax
je 0x19f62
jmp 0x19f41
movl -0x38(%rbp), %eax
subl $0x6, %eax
je 0x19f62
jmp 0x19f4b
movl -0x38(%rbp), %eax
addl $-0x9, %eax
subl $0x2, %eax
jb 0x19f62
jmp 0x19f58
movl -0x38(%rbp), %eax
subl $0xc, %eax
jne 0x19f74
jmp 0x19f62
leaq 0xd617a(%rip), %rdi     # 0xf00e3
leaq -0x20(%rbp), %rsi
callq 0x1a080
jmp 0x19f76
jmp 0x19f76
jmp 0x19f7a
jmp 0x19f7a
movq -0x8(%rbp), %rax
movl (%rax), %eax
decl %eax
movl %eax, %ecx
movq %rcx, -0x40(%rbp)
subl $0x3, %eax
ja 0x19fe9
movq -0x40(%rbp), %rax
leaq 0xd59f4(%rip), %rcx     # 0xef98c
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0xddf44(%rip), %rdi     # 0xf7eec
leaq -0x20(%rbp), %rsi
callq 0x1a080
jmp 0x19feb
leaq 0xd6137(%rip), %rdi     # 0xf00f1
leaq -0x20(%rbp), %rsi
callq 0x1a080
jmp 0x19feb
leaq 0xd896e(%rip), %rdi     # 0xf293a
leaq -0x20(%rbp), %rsi
callq 0x1a080
jmp 0x19feb
leaq 0xd6124(%rip), %rdi     # 0xf0102
leaq -0x20(%rbp), %rsi
callq 0x1a080
jmp 0x19feb
jmp 0x19feb
movq -0x8(%rbp), %rax
cmpl $0x0, 0xc(%rax)
jne 0x1a060
movq -0x8(%rbp), %rax
movl 0x4(%rax), %eax
movl %eax, -0x44(%rbp)
addl $-0x2, %eax
subl $0x2, %eax
jb 0x1a03a
jmp 0x1a009
movl -0x44(%rbp), %eax
addl $-0x7, %eax
subl $0x2, %eax
jb 0x1a03a
jmp 0x1a016
movl -0x44(%rbp), %eax
addl $-0xd, %eax
subl $0x2, %eax
jb 0x1a03a
jmp 0x1a023
movl -0x44(%rbp), %eax
subl $0xf, %eax
je 0x1a04c
jmp 0x1a02d
movl -0x44(%rbp), %eax
addl $-0x10, %eax
subl $0x3, %eax
ja 0x1a04e
jmp 0x1a03a
leaq 0xd60d1(%rip), %rdi     # 0xf0112
leaq -0x20(%rbp), %rsi
callq 0x1a080
jmp 0x1a05e
jmp 0x1a05e
leaq 0xda64a(%rip), %rdi     # 0xf469f
leaq -0x20(%rbp), %rsi
callq 0x1a080
jmp 0x1a070
leaq 0xda638(%rip), %rdi     # 0xf469f
leaq -0x20(%rbp), %rsi
callq 0x1a080
leaq -0x20(%rbp), %rdi
callq 0x1a1e0
addq $0x50, %rsp
popq %rbp
retq
nop