// File: /workspace/github_c_makefile_star2_O3/c-zhou[P]yahs/./agp-spec.h
// Function: agp_component_type_key
static inline const uint32_t agp_component_type_key(const char *val)
{
    uint32_t key = AGPSpec_hash(val);
    int c = 0;
    switch ((AGP_CT_t) key) {
        case AGP_CT_A: c = check_collision(val, "A"); break;
        case AGP_CT_D: c = check_collision(val, "D"); break;
        case AGP_CT_F: c = check_collision(val, "F"); break;
        case AGP_CT_G: c = check_collision(val, "G"); break;
        case AGP_CT_O: c = check_collision(val, "O"); break;
        case AGP_CT_P: c = check_collision(val, "P"); break;
        case AGP_CT_W: c = check_collision(val, "W"); break;
        case AGP_CT_N: c = check_collision(val, "N"); break;
        case AGP_CT_U: c = check_collision(val, "U"); break;
        default:       AGPSpec_die("[E::%s] AGP component type VAL error: %s\n", __func__, val);
    }
    if (c) AGPSpec_die("[E::%s] AGP component type VAL error (hash collision): %s\n", __func__, val);
    return key;
}

// Assembly:
pushq %rbx
movq %rdi, %rbx
callq 0x2560
movq (%rax), %rcx
movsbq (%rbx), %rax
movl (%rcx,%rax,4), %edx
testl %edx, %edx
je 0x21c98
leaq 0x1(%rbx), %rsi
movl $0x1505, %eax           # imm = 0x1505
movl %eax, %edi
shll $0x5, %edi
addl %edx, %eax
addl %edi, %eax
movsbq (%rsi), %rdx
movl (%rcx,%rdx,4), %edx
incq %rsi
testl %edx, %edx
jne 0x21a73
leal -0x2b609(%rax), %edx
cmpl $0x13, %edx
ja 0x21ade
leaq 0x2b6c(%rip), %rsi      # 0x24608
movslq (%rsi,%rdx,4), %rdx
addq %rsi, %rdx
jmpq *%rdx
leaq 0x3102(%rip), %rsi      # 0x24bae
cmpq %rsi, %rbx
je 0x21c96
xorl %edi, %edi
movzbl (%rbx,%rdi), %r8d
movl (%rcx,%r8,4), %edx
movzbl (%rdi,%rsi), %r9d
subl (%rcx,%r9,4), %edx
testl %r8d, %r8d
je 0x21c92
incq %rdi
testl %edx, %edx
je 0x21ab7
jmp 0x21c92
cmpl $0x2b606, %eax          # imm = 0x2B606
jne 0x21c98
leaq 0x175c(%rip), %rsi      # 0x2324c
cmpq %rsi, %rbx
je 0x21c96
xorl %edi, %edi
movzbl (%rbx,%rdi), %r8d
movl (%rcx,%r8,4), %edx
movzbl (%rdi,%rsi), %r9d
subl (%rcx,%r9,4), %edx
testl %r8d, %r8d
je 0x21c92
incq %rdi
testl %edx, %edx
je 0x21afb
jmp 0x21c92
leaq 0x14d9(%rip), %rsi      # 0x23002
cmpq %rsi, %rbx
je 0x21c96
xorl %edi, %edi
movzbl (%rbx,%rdi), %r8d
movl (%rcx,%r8,4), %edx
movzbl (%rdi,%rsi), %r9d
subl (%rcx,%r9,4), %edx
testl %r8d, %r8d
je 0x21c92
incq %rdi
testl %edx, %edx
je 0x21b34
jmp 0x21c92
leaq 0x16f2(%rip), %rsi      # 0x23254
cmpq %rsi, %rbx
je 0x21c96
xorl %edi, %edi
movzbl (%rbx,%rdi), %r8d
movl (%rcx,%r8,4), %edx
movzbl (%rdi,%rsi), %r9d
subl (%rcx,%r9,4), %edx
testl %r8d, %r8d
je 0x21c92
incq %rdi
testl %edx, %edx
je 0x21b6d
jmp 0x21c92
leaq 0x16b3(%rip), %rsi      # 0x2324e
cmpq %rsi, %rbx
je 0x21c96
xorl %edi, %edi
movzbl (%rbx,%rdi), %r8d
movl (%rcx,%r8,4), %edx
movzbl (%rdi,%rsi), %r9d
subl (%rcx,%r9,4), %edx
testl %r8d, %r8d
je 0x21c92
incq %rdi
testl %edx, %edx
je 0x21ba6
jmp 0x21c92
leaq 0x2fe2(%rip), %rsi      # 0x24bb6
cmpq %rsi, %rbx
je 0x21c96
xorl %edi, %edi
movzbl (%rbx,%rdi), %r8d
movl (%rcx,%r8,4), %edx
movzbl (%rdi,%rsi), %r9d
subl (%rcx,%r9,4), %edx
testl %r8d, %r8d
je 0x21c92
incq %rdi
testl %edx, %edx
je 0x21bdf
jmp 0x21c92
leaq 0x1645(%rip), %rsi      # 0x23252
cmpq %rsi, %rbx
je 0x21c96
xorl %edi, %edi
movzbl (%rbx,%rdi), %r8d
movl (%rcx,%r8,4), %edx
movzbl (%rdi,%rsi), %r9d
subl (%rcx,%r9,4), %edx
testl %r8d, %r8d
je 0x21c92
incq %rdi
testl %edx, %edx
je 0x21c18
jmp 0x21c92
leaq 0x1611(%rip), %rsi      # 0x23250
cmpq %rsi, %rbx
je 0x21c96
xorl %edi, %edi
movzbl (%rbx,%rdi), %r8d
movl (%rcx,%r8,4), %edx
movzbl (%rdi,%rsi), %r9d
subl (%rcx,%r9,4), %edx
testl %r8d, %r8d
je 0x21c92
incq %rdi
testl %edx, %edx
je 0x21c46
jmp 0x21c92
leaq 0x275c(%rip), %rsi      # 0x243c9
cmpq %rsi, %rbx
je 0x21c96
xorl %edi, %edi
movzbl (%rbx,%rdi), %r8d
movl (%rcx,%r8,4), %edx
movzbl (%rdi,%rsi), %r9d
subl (%rcx,%r9,4), %edx
testl %r8d, %r8d
je 0x21c92
incq %rdi
testl %edx, %edx
je 0x21c74
testl %edx, %edx
jne 0x21ca1
popq %rbx
retq
leaq 0x15b7(%rip), %rdi      # 0x23256
jmp 0x21ca8
leaq 0x15ef(%rip), %rdi      # 0x23297
leaq 0x15d1(%rip), %rsi      # 0x23280
movq %rbx, %rdx
xorl %eax, %eax
callq 0x21dac