// File: /workspace/github_c_makefile_star2_O0/jtuu[P]quesler/src/scanner.c
// Function: identifier_type
static TokenType identifier_type(void) {
    switch (scanner.start[0]) {
        case 'e': return check_keyword(1, 3, "lse", TOKEN_ELSE);
        case 'f':
            if (scanner.current - scanner.start > 1) {
                switch (scanner.start[1]) {
                    case 'a': return check_keyword(2, 3, "lse", TOKEN_FALSE);
                    case 'o': return check_keyword(2, 1, "r", TOKEN_FOR);
                    case 'u': return check_keyword(2, 6, "nction", TOKEN_FUNCTION);
                }
            }
            break;
        case 'i': return check_keyword(1, 1, "f", TOKEN_IF);
        case 'l': return check_keyword(1, 2, "et", TOKEN_LET);
        case 'n': return check_keyword(1, 3, "ull", TOKEN_NULL);
        case 'p': return check_keyword(1, 4, "rint", TOKEN_PRINT);
        case 'r': return check_keyword(1, 5, "eturn", TOKEN_RETURN);
        case 't': return check_keyword(1, 3, "rue", TOKEN_TRUE);
        case 'w': return check_keyword(1, 4, "hile", TOKEN_WHILE);
    }

    return TOKEN_IDENTIFIER;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq 0x104b9(%rip), %rax     # 0x19758
movsbl (%rax), %eax
addl $-0x65, %eax
movl %eax, %ecx
movq %rcx, -0x10(%rbp)
subl $0x12, %eax
ja 0x9486
movq -0x10(%rbp), %rax
leaq 0x4e8d(%rip), %rcx      # 0xe14c
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movl $0x1, %edi
movl $0x3, %esi
leaq 0x4f4a(%rip), %rdx      # 0xe223
movl $0x1e, %ecx
callq 0x94a0
movl %eax, -0x4(%rbp)
jmp 0x948d
movq 0x1046e(%rip), %rax     # 0x19760
movq 0x1045f(%rip), %rcx     # 0x19758
subq %rcx, %rax
cmpq $0x1, %rax
jle 0x939a
movq 0x1044b(%rip), %rax     # 0x19758
movsbl 0x1(%rax), %eax
movl %eax, -0x14(%rbp)
subl $0x61, %eax
je 0x932f
jmp 0x931b
movl -0x14(%rbp), %eax
subl $0x6f, %eax
je 0x9352
jmp 0x9325
movl -0x14(%rbp), %eax
subl $0x75, %eax
je 0x9375
jmp 0x9398
movl $0x2, %edi
movl $0x3, %esi
leaq 0x4ee3(%rip), %rdx      # 0xe223
movl $0x1f, %ecx
callq 0x94a0
movl %eax, -0x4(%rbp)
jmp 0x948d
movl $0x2, %edi
movl $0x1, %esi
leaq 0x383c(%rip), %rdx      # 0xcb9f
movl $0x20, %ecx
callq 0x94a0
movl %eax, -0x4(%rbp)
jmp 0x948d
movl $0x2, %edi
movl $0x6, %esi
leaq 0x2cff(%rip), %rdx      # 0xc085
movl $0x21, %ecx
callq 0x94a0
movl %eax, -0x4(%rbp)
jmp 0x948d
jmp 0x939a
jmp 0x9486
movl $0x1, %esi
leaq 0x4e86(%rip), %rdx      # 0xe231
movl $0x22, %ecx
movq %rsi, %rdi
callq 0x94a0
movl %eax, -0x4(%rbp)
jmp 0x948d
movl $0x1, %edi
movl $0x2, %esi
leaq 0x341b(%rip), %rdx      # 0xc7ec
movl $0x27, %ecx
callq 0x94a0
movl %eax, -0x4(%rbp)
jmp 0x948d
movl $0x1, %edi
movl $0x3, %esi
leaq 0x4e40(%rip), %rdx      # 0xe234
movl $0x23, %ecx
callq 0x94a0
movl %eax, -0x4(%rbp)
jmp 0x948d
movl $0x1, %edi
movl $0x4, %esi
leaq 0x4d96(%rip), %rdx      # 0xe1ad
movl $0x24, %ecx
callq 0x94a0
movl %eax, -0x4(%rbp)
jmp 0x948d
movl $0x1, %edi
movl $0x5, %esi
leaq 0x4d7b(%rip), %rdx      # 0xe1b2
movl $0x25, %ecx
callq 0x94a0
movl %eax, -0x4(%rbp)
jmp 0x948d
movl $0x1, %edi
movl $0x3, %esi
leaq 0x4dc6(%rip), %rdx      # 0xe21d
movl $0x26, %ecx
callq 0x94a0
movl %eax, -0x4(%rbp)
jmp 0x948d
movl $0x1, %edi
movl $0x4, %esi
leaq 0x4d41(%rip), %rdx      # 0xe1b8
movl $0x28, %ecx
callq 0x94a0
movl %eax, -0x4(%rbp)
jmp 0x948d
movl $0x1a, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)