// File: /workspace/github_c_makefile_star2_O0/hsjoihs[P]c-compiler/lexer.c
// Function: get_token
static struct Token get_token(const char **ptr_to_str)
{
	struct Token t = get_token_raw(ptr_to_str);
	if (t.kind != IDENT_OR_RESERVED) {
		return t;
	}
	const char *new_str = t.ident_str;
	if (strcmp(new_str, "return") == 0) {
		t.kind = RES_RETURN;
	} else if (strcmp(new_str, "if") == 0) {
		t.kind = RES_IF;
	} else if (strcmp(new_str, "else") == 0) {
		t.kind = RES_ELSE;
	} else if (strcmp(new_str, "do") == 0) {
		t.kind = RES_DO;
	} else if (strcmp(new_str, "while") == 0) {
		t.kind = RES_WHILE;
	} else if (strcmp(new_str, "break") == 0) {
		t.kind = RES_BREAK;
	} else if (strcmp(new_str, "continue") == 0) {
		t.kind = RES_CONTINUE;
	} else if (strcmp(new_str, "for") == 0) {
		t.kind = RES_FOR;
	} else if (strcmp(new_str, "int") == 0) {
		t.kind = RES_INT;
	} else if (strcmp(new_str, "char") == 0) {
		t.kind = RES_CHAR;
	} else if (strcmp(new_str, "struct") == 0) {
		t.kind = RES_STRUCT;
	} else if (strcmp(new_str, "sizeof") == 0) {
		t.kind = RES_SIZEOF;
	} else if (strcmp(new_str, "void") == 0) {
		t.kind = RES_VOID;
	} else if (strcmp(new_str, "switch") == 0) {
		t.kind = RES_SWITCH;
	} else if (strcmp(new_str, "case") == 0) {
		t.kind = RES_CASE;
	} else if (strcmp(new_str, "default") == 0) {
		t.kind = RES_DEFAULT;
	} else if (strcmp(new_str, "_Alignof") == 0) {
		t.kind = RES_ALIGNOF;
	} else if (strcmp(new_str, "enum") == 0) {
		t.kind = RES_ENUM;
	} else if (strcmp(new_str, "const") == 0) {
		t.kind = RES_CONST;
	} else if (strcmp(new_str, "_Noreturn") == 0) {
		t.kind = RES_NORETURN;
	} else if (strcmp(new_str, "extern") == 0) {
		t.kind = RES_EXTERN;
	} else if (strcmp(new_str, "static") == 0) {
		t.kind = RES_STATIC;
	} else if (strcmp(new_str, "goto") == 0) {
		t.kind = RES_GOTO;
	} else if (strcmp(new_str, "union") == 0) {
		t.kind = RES_UNION;
	}
	return t;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x18(%rbp)
movq %rdi, %rax
movq %rax, -0x20(%rbp)
movq %rsi, -0x8(%rbp)
movq -0x8(%rbp), %rsi
callq 0xfb90
movq -0x18(%rbp), %rdi
cmpl $0x18, (%rdi)
je 0xf7ee
jmp 0xfb7c
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
leaq 0x7c88(%rip), %rsi      # 0x1748d
callq 0x10c0
cmpl $0x0, %eax
jne 0xf81e
movq -0x18(%rbp), %rax
movl $0x19, (%rax)
jmp 0xfb7a
movq -0x10(%rbp), %rdi
leaq 0x7e5c(%rip), %rsi      # 0x17685
callq 0x10c0
cmpl $0x0, %eax
jne 0xf842
movq -0x18(%rbp), %rax
movl $0x2c, (%rax)
jmp 0xfb78
movq -0x10(%rbp), %rdi
leaq 0x7c1c(%rip), %rsi      # 0x17469
callq 0x10c0
cmpl $0x0, %eax
jne 0xf866
movq -0x18(%rbp), %rax
movl $0x2d, (%rax)
jmp 0xfb76
movq -0x10(%rbp), %rdi
leaq 0x7bfd(%rip), %rsi      # 0x1746e
callq 0x10c0
cmpl $0x0, %eax
jne 0xf88a
movq -0x18(%rbp), %rax
movl $0x2e, (%rax)
jmp 0xfb74
movq -0x10(%rbp), %rdi
leaq 0x4200(%rip), %rsi      # 0x13a95
callq 0x10c0
cmpl $0x0, %eax
jne 0xf8ae
movq -0x18(%rbp), %rax
movl $0x2f, (%rax)
jmp 0xfb72
movq -0x10(%rbp), %rdi
leaq 0x387d(%rip), %rsi      # 0x13136
callq 0x10c0
cmpl $0x0, %eax
jne 0xf8d2
movq -0x18(%rbp), %rax
movl $0x30, (%rax)
jmp 0xfb70
movq -0x10(%rbp), %rdi
leaq 0x38b9(%rip), %rsi      # 0x13196
callq 0x10c0
cmpl $0x0, %eax
jne 0xf8f6
movq -0x18(%rbp), %rax
movl $0x31, (%rax)
jmp 0xfb6e
movq -0x10(%rbp), %rdi
leaq 0x7b70(%rip), %rsi      # 0x17471
callq 0x10c0
cmpl $0x0, %eax
jne 0xf91a
movq -0x18(%rbp), %rax
movl $0x34, (%rax)
jmp 0xfb6c
movq -0x10(%rbp), %rdi
leaq 0x612f(%rip), %rsi      # 0x15a54
callq 0x10c0
cmpl $0x0, %eax
jne 0xf93e
movq -0x18(%rbp), %rax
movl $0x35, (%rax)
jmp 0xfb6a
movq -0x10(%rbp), %rdi
leaq 0x5b42(%rip), %rsi      # 0x1548b
callq 0x10c0
cmpl $0x0, %eax
jne 0xf962
movq -0x18(%rbp), %rax
movl $0x38, (%rax)
jmp 0xfb68
movq -0x10(%rbp), %rdi
leaq 0x37db(%rip), %rsi      # 0x13148
callq 0x10c0
cmpl $0x0, %eax
jne 0xf986
movq -0x18(%rbp), %rax
movl $0x3a, (%rax)
jmp 0xfb66
movq -0x10(%rbp), %rdi
leaq 0x7ae4(%rip), %rsi      # 0x17475
callq 0x10c0
cmpl $0x0, %eax
jne 0xf9aa
movq -0x18(%rbp), %rax
movl $0x3b, (%rax)
jmp 0xfb64
movq -0x10(%rbp), %rdi
leaq 0x5ad1(%rip), %rsi      # 0x15486
callq 0x10c0
cmpl $0x0, %eax
jne 0xf9ce
movq -0x18(%rbp), %rax
movl $0x3e, (%rax)
jmp 0xfb62
movq -0x10(%rbp), %rdi
leaq 0x7c24(%rip), %rsi      # 0x175fd
callq 0x10c0
cmpl $0x0, %eax
jne 0xf9f2
movq -0x18(%rbp), %rax
movl $0x3f, (%rax)
jmp 0xfb60
movq -0x10(%rbp), %rdi
leaq 0x3ebb(%rip), %rsi      # 0x138b8
callq 0x10c0
cmpl $0x0, %eax
jne 0xfa16
movq -0x18(%rbp), %rax
movl $0x40, (%rax)
jmp 0xfb5e
movq -0x10(%rbp), %rdi
leaq 0x7bea(%rip), %rsi      # 0x1760b
callq 0x10c0
cmpl $0x0, %eax
jne 0xfa3a
movq -0x18(%rbp), %rax
movl $0x41, (%rax)
jmp 0xfb5c
movq -0x10(%rbp), %rdi
leaq 0x7a37(%rip), %rsi      # 0x1747c
callq 0x10c0
cmpl $0x0, %eax
jne 0xfa5e
movq -0x18(%rbp), %rax
movl $0x42, (%rax)
jmp 0xfb5a
movq -0x10(%rbp), %rdi
leaq 0x7a1c(%rip), %rsi      # 0x17485
callq 0x10c0
cmpl $0x0, %eax
jne 0xfa82
movq -0x18(%rbp), %rax
movl $0x43, (%rax)
jmp 0xfb58
movq -0x10(%rbp), %rdi
leaq 0x6699(%rip), %rsi      # 0x16126
callq 0x10c0
cmpl $0x0, %eax
jne 0xfaa6
movq -0x18(%rbp), %rax
movl $0x44, (%rax)
jmp 0xfb56
movq -0x10(%rbp), %rdi
leaq 0x79d9(%rip), %rsi      # 0x1748a
callq 0x10c0
cmpl $0x0, %eax
jne 0xfaca
movq -0x18(%rbp), %rax
movl $0x45, (%rax)
jmp 0xfb54
movq -0x10(%rbp), %rdi
leaq 0x79bf(%rip), %rsi      # 0x17494
callq 0x10c0
cmpl $0x0, %eax
jne 0xfaeb
movq -0x18(%rbp), %rax
movl $0x46, (%rax)
jmp 0xfb52
movq -0x10(%rbp), %rdi
leaq 0x5e63(%rip), %rsi      # 0x15959
callq 0x10c0
cmpl $0x0, %eax
jne 0xfb0c
movq -0x18(%rbp), %rax
movl $0x47, (%rax)
jmp 0xfb50
movq -0x10(%rbp), %rdi
leaq 0x365d(%rip), %rsi      # 0x13174
callq 0x10c0
cmpl $0x0, %eax
jne 0xfb2d
movq -0x18(%rbp), %rax
movl $0x49, (%rax)
jmp 0xfb4e
movq -0x10(%rbp), %rdi
leaq 0x5a69(%rip), %rsi      # 0x155a1
callq 0x10c0
cmpl $0x0, %eax
jne 0xfb4c
movq -0x18(%rbp), %rax
movl $0x4a, (%rax)
jmp 0xfb4e
jmp 0xfb50
jmp 0xfb52
jmp 0xfb54
jmp 0xfb56
jmp 0xfb58
jmp 0xfb5a
jmp 0xfb5c
jmp 0xfb5e
jmp 0xfb60
jmp 0xfb62
jmp 0xfb64
jmp 0xfb66
jmp 0xfb68
jmp 0xfb6a
jmp 0xfb6c
jmp 0xfb6e
jmp 0xfb70
jmp 0xfb72
jmp 0xfb74
jmp 0xfb76
jmp 0xfb78
jmp 0xfb7a
jmp 0xfb7c
movq -0x20(%rbp), %rax
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)