// File: /workspace/github_c_makefile_star2_O1/ejunjsh[P]mycc/scan.c
// Function: keyword
static int keyword(char *s) {
  switch (*s) {
    case 'b':
      if (!strcmp(s, "break"))
	    return (T_BREAK);
      break;
    case 'c':
      if (!strcmp(s, "case"))
	    return (T_CASE);
      if (!strcmp(s, "char"))
	    return (T_CHAR);
      if (!strcmp(s, "continue"))
	    return (T_CONTINUE);
      break;
    case 'd':
      if (!strcmp(s, "default"))
	    return (T_DEFAULT);
      break;
    case 'e':
      if (!strcmp(s, "else"))
	    return (T_ELSE);
      if (!strcmp(s, "enum"))
	    return (T_ENUM);
      if (!strcmp(s, "extern"))
	    return (T_EXTERN);
      break;
    case 'f':
      if (!strcmp(s, "for"))
	    return (T_FOR);
      break;
    case 'i':
      if (!strcmp(s, "if"))
	    return (T_IF);
      if (!strcmp(s, "int"))
	    return (T_INT);
      break;
    case 'l':
      if (!strcmp(s, "long"))
	    return (T_LONG);
      break;
    case 'r':
      if (!strcmp(s, "return"))
	    return (T_RETURN);
      break;
    case 's':
      if (!strcmp(s, "sizeof"))
	    return (T_SIZEOF);
      if (!strcmp(s, "static"))
	    return (T_STATIC);
      if (!strcmp(s, "struct"))
	    return (T_STRUCT);
      if (!strcmp(s, "switch"))
	    return (T_SWITCH);
      break;
    case 't':
      if (!strcmp(s, "typedef"))
	    return (T_TYPEDEF);
      break;
    case 'u':
      if (!strcmp(s, "union"))
	    return (T_UNION);
      break;
    case 'v':
      if (!strcmp(s, "void"))
	    return (T_VOID);
      break;
    case 'w':
      if (!strcmp(s, "while"))
	    return (T_WHILE);
      break;
  }
  return (0);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
leaq 0x8034(%rip), %rcx      # 0xf3d0
movzbl (%rcx), %eax
addl $-0x62, %eax
cmpl $0x15, %eax
ja 0x755a
leaq 0x4376(%rip), %rdx      # 0xb728
movslq (%rdx,%rax,4), %rax
addq %rdx, %rax
jmpq *%rax
movl $0x61657262, %eax       # imm = 0x61657262
xorl (%rcx), %eax
movzwl 0x4(%rcx), %ecx
xorl $0x6b, %ecx
orl %eax, %ecx
jne 0x755a
movl $0x2c, %eax
jmp 0x755c
movl $0x6f696e75, %eax       # imm = 0x6F696E75
xorl (%rcx), %eax
movzwl 0x4(%rcx), %ecx
xorl $0x6e, %ecx
orl %eax, %ecx
jne 0x755a
movl $0x28, %eax
jmp 0x755c
movl $0x25, %eax
cmpl $0x726f66, (%rcx)       # imm = 0x726F66
jne 0x755a
jmp 0x755c
movl $0x6c696877, %eax       # imm = 0x6C696877
xorl (%rcx), %eax
movzwl 0x4(%rcx), %ecx
xorl $0x65, %ecx
orl %eax, %ecx
jne 0x755a
movl $0x24, %eax
jmp 0x755c
movl $0x6669, %eax           # imm = 0x6669
xorl (%rcx), %eax
movzbl 0x2(%rcx), %edx
orw %ax, %dx
je 0x75b1
movl $0x20, %eax
cmpl $0x746e69, (%rcx)       # imm = 0x746E69
jne 0x755a
jmp 0x755c
movl $0x64696f76, %eax       # imm = 0x64696F76
xorl (%rcx), %eax
movzbl 0x4(%rcx), %ecx
orl %eax, %ecx
jne 0x755a
movl $0x1e, %eax
jmp 0x755c
movl $0x65736c65, %eax       # imm = 0x65736C65
xorl (%rcx), %eax
movzbl 0x4(%rcx), %edx
orl %eax, %edx
je 0x75b8
movl $0x6d756e65, %eax       # imm = 0x6D756E65
xorl (%rcx), %eax
movzbl 0x4(%rcx), %edx
orl %eax, %edx
je 0x75cd
movl $0x65747865, %eax       # imm = 0x65747865
xorl (%rcx), %eax
movl $0x6e7265, %edx         # imm = 0x6E7265
xorl 0x3(%rcx), %edx
orl %eax, %edx
jne 0x755a
movl $0x2b, %eax
jmp 0x755c
movl $0x30, %eax
movabsq $0x746c7561666564, %rdx # imm = 0x746C7561666564
jmp 0x7555
movl $0x65736163, %eax       # imm = 0x65736163
xorl (%rcx), %eax
movzbl 0x4(%rcx), %edx
orl %eax, %edx
je 0x75bf
movl $0x72616863, %eax       # imm = 0x72616863
xorl (%rcx), %eax
movzbl 0x4(%rcx), %edx
orl %eax, %edx
je 0x75d4
movabsq $0x65756e69746e6f63, %rax # imm = 0x65756E69746E6F63
xorq (%rcx), %rax
movzbl 0x8(%rcx), %ecx
orq %rax, %rcx
jne 0x755a
movl $0x2d, %eax
jmp 0x755c
movl $0x676e6f6c, %eax       # imm = 0x676E6F6C
xorl (%rcx), %eax
movzbl 0x4(%rcx), %ecx
orl %eax, %ecx
jne 0x755a
movl $0x21, %eax
jmp 0x755c
movl $0x75746572, %eax       # imm = 0x75746572
xorl (%rcx), %eax
movl $0x6e7275, %edx         # imm = 0x6E7275
xorl 0x3(%rcx), %edx
orl %eax, %edx
jne 0x755a
movl $0x26, %eax
jmp 0x755c
movl $0x2a, %eax
movabsq $0x66656465707974, %rdx # imm = 0x66656465707974
cmpq %rdx, (%rcx)
je 0x755c
xorl %eax, %eax
popq %rbp
retq
movl $0x657a6973, %eax       # imm = 0x657A6973
xorl (%rcx), %eax
movl $0x666f65, %edx         # imm = 0x666F65
xorl 0x3(%rcx), %edx
orl %eax, %edx
je 0x75c6
movl $0x74617473, %eax       # imm = 0x74617473
xorl (%rcx), %eax
movl $0x636974, %edx         # imm = 0x636974
xorl 0x3(%rcx), %edx
orl %eax, %edx
je 0x75db
movl $0x75727473, %eax       # imm = 0x75727473
xorl (%rcx), %eax
movl $0x746375, %edx         # imm = 0x746375
xorl 0x3(%rcx), %edx
orl %eax, %edx
je 0x75e5
movl $0x74697773, %eax       # imm = 0x74697773
xorl (%rcx), %eax
movl $0x686374, %edx         # imm = 0x686374
xorl 0x3(%rcx), %edx
orl %eax, %edx
jne 0x755a
movl $0x2e, %eax
jmp 0x755c
movl $0x22, %eax
jmp 0x755c
movl $0x23, %eax
jmp 0x755c
movl $0x2f, %eax
jmp 0x755c
movl $0x31, %eax
jmp 0x755c
movl $0x29, %eax
jmp 0x755c
movl $0x1f, %eax
jmp 0x755c
movl $0x32, %eax
jmp 0x755c
movl $0x27, %eax
jmp 0x755c
nop