// File: /workspace/github_c_makefile_star2_O0/samtools[P]htslib/cram/cram_external.c
// Function: cram_ds_to_key
static int cram_ds_to_key(enum cram_DS_ID ds) {
    switch(ds) {
    case DS_RN: return 256*'R'+'N';
    case DS_QS: return 256*'Q'+'S';
    case DS_IN: return 256*'I'+'N';
    case DS_SC: return 256*'S'+'C';
    case DS_BF: return 256*'B'+'F';
    case DS_CF: return 256*'C'+'F';
    case DS_AP: return 256*'A'+'P';
    case DS_RG: return 256*'R'+'G';
    case DS_MQ: return 256*'M'+'Q';
    case DS_NS: return 256*'N'+'S';
    case DS_MF: return 256*'M'+'F';
    case DS_TS: return 256*'T'+'S';
    case DS_NP: return 256*'N'+'P';
    case DS_NF: return 256*'N'+'F';
    case DS_RL: return 256*'R'+'L';
    case DS_FN: return 256*'F'+'N';
    case DS_FC: return 256*'F'+'C';
    case DS_FP: return 256*'F'+'P';
    case DS_DL: return 256*'D'+'L';
    case DS_BA: return 256*'B'+'A';
    case DS_BS: return 256*'B'+'S';
    case DS_TL: return 256*'T'+'L';
    case DS_RI: return 256*'R'+'I';
    case DS_RS: return 256*'R'+'S';
    case DS_PD: return 256*'P'+'D';
    case DS_HC: return 256*'H'+'C';
    case DS_BB: return 256*'B'+'B';
    case DS_QQ: return 256*'Q'+'Q';
    case DS_TN: return 256*'T'+'N';
    case DS_TC: return 256*'T'+'C';
    case DS_TM: return 256*'T'+'M';
    case DS_TV: return 256*'T'+'V';
    default: break;
    }

    return -1; // unknown
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movl %edi, -0x8(%rbp)
movl -0x8(%rbp), %eax
addl $-0xb, %eax
movl %eax, %ecx
movq %rcx, -0x10(%rbp)
subl $0x23, %eax
ja 0xc51e6
movq -0x10(%rbp), %rax
leaq 0x76461(%rip), %rcx     # 0x13b4e8
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movl $0x524e, -0x4(%rbp)     # imm = 0x524E
jmp 0xc51ef
movl $0x5153, -0x4(%rbp)     # imm = 0x5153
jmp 0xc51ef
movl $0x494e, -0x4(%rbp)     # imm = 0x494E
jmp 0xc51ef
movl $0x5343, -0x4(%rbp)     # imm = 0x5343
jmp 0xc51ef
movl $0x4246, -0x4(%rbp)     # imm = 0x4246
jmp 0xc51ef
movl $0x4346, -0x4(%rbp)     # imm = 0x4346
jmp 0xc51ef
movl $0x4150, -0x4(%rbp)     # imm = 0x4150
jmp 0xc51ef
movl $0x5247, -0x4(%rbp)     # imm = 0x5247
jmp 0xc51ef
movl $0x4d51, -0x4(%rbp)     # imm = 0x4D51
jmp 0xc51ef
movl $0x4e53, -0x4(%rbp)     # imm = 0x4E53
jmp 0xc51ef
movl $0x4d46, -0x4(%rbp)     # imm = 0x4D46
jmp 0xc51ef
movl $0x5453, -0x4(%rbp)     # imm = 0x5453
jmp 0xc51ef
movl $0x4e50, -0x4(%rbp)     # imm = 0x4E50
jmp 0xc51ef
movl $0x4e46, -0x4(%rbp)     # imm = 0x4E46
jmp 0xc51ef
movl $0x524c, -0x4(%rbp)     # imm = 0x524C
jmp 0xc51ef
movl $0x464e, -0x4(%rbp)     # imm = 0x464E
jmp 0xc51ef
movl $0x4643, -0x4(%rbp)     # imm = 0x4643
jmp 0xc51ef
movl $0x4650, -0x4(%rbp)     # imm = 0x4650
jmp 0xc51ef
movl $0x444c, -0x4(%rbp)     # imm = 0x444C
jmp 0xc51ef
movl $0x4241, -0x4(%rbp)     # imm = 0x4241
jmp 0xc51ef
movl $0x4253, -0x4(%rbp)     # imm = 0x4253
jmp 0xc51ef
movl $0x544c, -0x4(%rbp)     # imm = 0x544C
jmp 0xc51ef
movl $0x5249, -0x4(%rbp)     # imm = 0x5249
jmp 0xc51ef
movl $0x5253, -0x4(%rbp)     # imm = 0x5253
jmp 0xc51ef
movl $0x5044, -0x4(%rbp)     # imm = 0x5044
jmp 0xc51ef
movl $0x4843, -0x4(%rbp)     # imm = 0x4843
jmp 0xc51ef
movl $0x4242, -0x4(%rbp)     # imm = 0x4242
jmp 0xc51ef
movl $0x5151, -0x4(%rbp)     # imm = 0x5151
jmp 0xc51ef
movl $0x544e, -0x4(%rbp)     # imm = 0x544E
jmp 0xc51ef
movl $0x5443, -0x4(%rbp)     # imm = 0x5443
jmp 0xc51ef
movl $0x544d, -0x4(%rbp)     # imm = 0x544D
jmp 0xc51ef
movl $0x5456, -0x4(%rbp)     # imm = 0x5456
jmp 0xc51ef
jmp 0xc51e8
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
movl -0x4(%rbp), %eax
popq %rbp
retq
nopw %cs:(%rax,%rax)