// File: /workspace/github_c_makefile_star2_O1/azhai[P]mlite/mlite.c
// Function: keyword
int keyword(char *s) {
	switch (*s) {
	case '<':	if (!strcmp(s, "<<")) return TOK_TO;
			return UNDEFINED;
	case '>':	if (!strcmp(s, ">>")) return TOK_FROM;
			return UNDEFINED;
	case 'a':	if (!strcmp(s, "also")) return TOK_ALSO;
			if (!strcmp(s, "and")) return TOK_AND;
			return UNDEFINED;
	case 'c':	if (!strcmp(s, "case")) return TOK_CASE;
			if (!strcmp(s, "compile")) return TOK_COMPILE;
			return UNDEFINED;
	case 'e':	if (!strcmp(s, "else")) return TOK_ELSE;
			if (!strcmp(s, "end")) return TOK_END;
			if (!strcmp(s, "eval")) return TOK_EVAL;
			if (!strcmp(s, "exception")) return TOK_EXCEPTION;
			return UNDEFINED;
	case 'f':	if (!strcmp(s, "fn")) return TOK_FN;
			if (!strcmp(s, "fun")) return TOK_FUN;
			return UNDEFINED;
	case 'h':	if (!strcmp(s, "handle")) return TOK_HANDLE;
			return UNDEFINED;
	case 'i':	if (!strcmp(s, "if")) return TOK_IF;
			if (!strcmp(s, "in")) return TOK_IN;
			if (!strcmp(s, "infix")) return TOK_INFIX;
			if (!strcmp(s, "infixr")) return TOK_INFIXR;
			return UNDEFINED;
	case 'l':	if (!strcmp(s, "let")) return TOK_LET;
			if (!strcmp(s, "local")) return TOK_LOCAL;
			return UNDEFINED;
	case 'n':	if (!strcmp(s, "nonfix")) return TOK_NONFIX;
			return UNDEFINED;
	case 'o':	if (!strcmp(s, "of")) return TOK_OF;
			if (!strcmp(s, "op")) return TOK_OP;
			if (!strcmp(s, "or")) return TOK_OR;
			return UNDEFINED;
	case 'r':	if (!strcmp(s, "raise")) return TOK_RAISE;
			return UNDEFINED;
	case 't':	if (!strcmp(s, "then")) return TOK_THEN;
			if (!strcmp(s, "type")) return TOK_TYPE;
			return UNDEFINED;
	case 'v':	if (!strcmp(s, "val")) return TOK_VAL;
			return UNDEFINED;
	case 'w':	if (!strcmp(s, "where")) return TOK_WHERE;
			return UNDEFINED;
	default:	return UNDEFINED;
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %rbx
pushq %rax
movq %rdi, %rbx
movzbl (%rdi), %ecx
movl $0xfffffffb, %eax       # imm = 0xFFFFFFFB
leal -0x61(%rcx), %edx
cmpl $0x16, %edx
ja 0x984e
leaq 0xc841(%rip), %rcx      # 0x16054
movslq (%rcx,%rdx,4), %rdx
addq %rcx, %rdx
jmpq *%rdx
leaq 0xce9a(%rip), %rsi      # 0x166bd
movq %rbx, %rdi
callq 0x3110
testl %eax, %eax
je 0x9afd
leaq 0xce88(%rip), %rsi      # 0x166c2
movq %rbx, %rdi
callq 0x3110
testl %eax, %eax
movl $0xffffff37, %ecx       # imm = 0xFFFFFF37
jmp 0x9ae0
cmpl $0x3e, %ecx
je 0x9aca
cmpl $0x3c, %ecx
jne 0x9ae8
leaq 0xce50(%rip), %rsi      # 0x166b7
movq %rbx, %rdi
callq 0x3110
testl %eax, %eax
movl $0xffffff93, %ecx       # imm = 0xFFFFFF93
jmp 0x9ae0
leaq 0xce8e(%rip), %rsi      # 0x16710
movq %rbx, %rdi
callq 0x3110
testl %eax, %eax
movl $0xffffff1d, %ecx       # imm = 0xFFFFFF1D
jmp 0x9ae0
leaq 0xce64(%rip), %rsi      # 0x16701
movq %rbx, %rdi
callq 0x3110
testl %eax, %eax
movl $0xffffff26, %ecx       # imm = 0xFFFFFF26
jmp 0x9ae0
leaq 0xce28(%rip), %rsi      # 0x166e0
movq %rbx, %rdi
callq 0x3110
testl %eax, %eax
movl $0xffffff2d, %ecx       # imm = 0xFFFFFF2D
jmp 0x9ae0
leaq 0xd1de(%rip), %rsi      # 0x16ab1
movq %rbx, %rdi
callq 0x3110
testl %eax, %eax
je 0x9aef
leaq 0xcddc(%rip), %rsi      # 0x166c6
movq %rbx, %rdi
callq 0x3110
testl %eax, %eax
movl $0xffffff34, %ecx       # imm = 0xFFFFFF34
jmp 0x9ae0
leaq 0xcdd3(%rip), %rsi      # 0x166d8
movq %rbx, %rdi
callq 0x3110
testl %eax, %eax
movl $0xffffff1e, %ecx       # imm = 0xFFFFFF1E
jmp 0x9ae0
leaq 0xcdc7(%rip), %rsi      # 0x166e7
movq %rbx, %rdi
callq 0x3110
testl %eax, %eax
je 0x9af6
leaq 0xdb4d(%rip), %rsi      # 0x17484
movq %rbx, %rdi
callq 0x3110
testl %eax, %eax
je 0x9b27
leaq 0xcd9c(%rip), %rsi      # 0x166ea
movq %rbx, %rdi
callq 0x3110
testl %eax, %eax
je 0x9b3c
leaq 0xcd8b(%rip), %rsi      # 0x166f0
movq %rbx, %rdi
callq 0x3110
testl %eax, %eax
movl $0xffffff29, %ecx       # imm = 0xFFFFFF29
jmp 0x9ae0
leaq 0xcd4e(%rip), %rsi      # 0x166ce
movq %rbx, %rdi
callq 0x3110
testl %eax, %eax
je 0x9b04
leaq 0xcd3c(%rip), %rsi      # 0x166d3
movq %rbx, %rdi
callq 0x3110
testl %eax, %eax
je 0x9b2e
leaq 0xcd29(%rip), %rsi      # 0x166d7
movq %rbx, %rdi
callq 0x3110
testl %eax, %eax
je 0x9b43
leaq 0xd797(%rip), %rsi      # 0x1715c
movq %rbx, %rdi
callq 0x3110
testl %eax, %eax
movl $0xffffff30, %ecx       # imm = 0xFFFFFF30
jmp 0x9ae0
leaq 0xcc2c(%rip), %rsi      # 0x1660c
movq %rbx, %rdi
callq 0x3110
testl %eax, %eax
je 0x9b0b
leaq 0xcce5(%rip), %rsi      # 0x166dc
movq %rbx, %rdi
callq 0x3110
testl %eax, %eax
movl $0xffffff2e, %ecx       # imm = 0xFFFFFF2E
jmp 0x9ae0
leaq 0xcce5(%rip), %rsi      # 0x166f7
movq %rbx, %rdi
callq 0x3110
testl %eax, %eax
je 0x9b12
leaq 0xccd2(%rip), %rsi      # 0x166fb
movq %rbx, %rdi
callq 0x3110
testl %eax, %eax
movl $0xffffff27, %ecx       # imm = 0xFFFFFF27
jmp 0x9ae0
leaq 0xd60f(%rip), %rsi      # 0x17053
movq %rbx, %rdi
callq 0x3110
testl %eax, %eax
je 0x9b19
leaq 0xccad(%rip), %rsi      # 0x16708
movq %rbx, %rdi
callq 0x3110
testl %eax, %eax
je 0x9b35
leaq 0xd5ef(%rip), %rsi      # 0x17061
movq %rbx, %rdi
callq 0x3110
testl %eax, %eax
movl $0xffffff23, %ecx       # imm = 0xFFFFFF23
jmp 0x9ae0
leaq 0xcc81(%rip), %rsi      # 0x1670b
movq %rbx, %rdi
callq 0x3110
testl %eax, %eax
je 0x9b20
leaq 0xda02(%rip), %rsi      # 0x174a3
movq %rbx, %rdi
callq 0x3110
testl %eax, %eax
movl $0xffffff1f, %ecx       # imm = 0xFFFFFF1F
jmp 0x9ae0
leaq 0xda04(%rip), %rsi      # 0x174bd
movq %rbx, %rdi
callq 0x3110
testl %eax, %eax
movl $0xffffff22, %ecx       # imm = 0xFFFFFF22
jmp 0x9ae0
leaq 0xcbe9(%rip), %rsi      # 0x166ba
movq %rbx, %rdi
callq 0x3110
testl %eax, %eax
movl $0xffffff94, %ecx       # imm = 0xFFFFFF94
movl $0xfffffffb, %eax       # imm = 0xFFFFFFFB
cmovel %ecx, %eax
addq $0x8, %rsp
popq %rbx
popq %rbp
retq
movl $0xffffff35, %eax       # imm = 0xFFFFFF35
jmp 0x9ae8
movl $0xffffff2c, %eax       # imm = 0xFFFFFF2C
jmp 0x9ae8
movl $0xffffff38, %eax       # imm = 0xFFFFFF38
jmp 0x9ae8
movl $0xffffff33, %eax       # imm = 0xFFFFFF33
jmp 0x9ae8
movl $0xffffff2f, %eax       # imm = 0xFFFFFF2F
jmp 0x9ae8
movl $0xffffff28, %eax       # imm = 0xFFFFFF28
jmp 0x9ae8
movl $0xffffff25, %eax       # imm = 0xFFFFFF25
jmp 0x9ae8
movl $0xffffff20, %eax       # imm = 0xFFFFFF20
jmp 0x9ae8
movl $0xffffff2b, %eax       # imm = 0xFFFFFF2B
jmp 0x9ae8
movl $0xffffff32, %eax       # imm = 0xFFFFFF32
jmp 0x9ae8
movl $0xffffff24, %eax       # imm = 0xFFFFFF24
jmp 0x9ae8
movl $0xffffff2a, %eax       # imm = 0xFFFFFF2A
jmp 0x9ae8
movl $0xffffff31, %eax       # imm = 0xFFFFFF31
jmp 0x9ae8