// File: /workspace/github_c_makefile_star2_O3/almk277[P]ROSE/rasm/scanner.cpp
// Function: tokname[abi:cxx11](tok)
string tokname(tok t)
{
	struct tokhash {
		std::size_t operator()(tok t) const
		{ return static_cast<std::size_t>(t); }
	};

	static const std::unordered_map<tok, string, tokhash> names = {
		{ tok::STRING,  "string" },
		{ tok::LABEL,   "label" },
		{ tok::BYTE,    "byte" },
		{ tok::INT,     "int" },
		{ tok::FLOAT,   "float" },
		{ tok::ARRAY,   "array" },
		{ tok::NEWLINE, "new line" },
		{ tok::END,     "end of file" },
		{ tok::ARG,     ".arg" },
		{ tok::DATA,    ".data" },
		{ tok::EXPORT,  ".export" },
		{ tok::EXTERN,  ".extern" },
		{ tok::IMPORT,  ".import" },
		{ tok::MODULE,  ".module" },
		{ tok::STR,     ".str" },
		{ tok::SUB,     ".sub" },
		{ tok::VAR,     ".var" },
	};

	return names.at(t);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x2f8, %rsp            # imm = 0x2F8
movl %esi, %ebp
movq %rdi, %r15
movb 0xf36c(%rip), %al       # 0x14358
testb %al, %al
je 0x503e
movslq %ebp, %rsi
movq %rsi, %rax
xorl %edx, %edx
divq 0xf329(%rip)            # 0x14328
movq %rdx, %rdi
movq %rsi, %rdx
callq 0x6474
testq %rax, %rax
je 0x52ec
leaq 0x10(%r15), %rcx
movq %rcx, (%r15)
movq 0x10(%rax), %rsi
movq 0x18(%rax), %rdx
addq %rsi, %rdx
movq %r15, %rdi
callq 0x4e78
movq %r15, %rax
addq $0x2f8, %rsp            # imm = 0x2F8
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
leaq 0xf313(%rip), %rdi      # 0x14358
callq 0x34d0
testl %eax, %eax
je 0x4ff0
leaq 0x4c(%rsp), %rsi
movl $0x0, (%rsi)
leaq 0x9315(%rip), %rdx      # 0xe375
leaq 0x50(%rsp), %rbx
movq %rbx, %rdi
callq 0x64e8
leaq 0x78(%rsp), %r14
leaq 0x48(%rsp), %rsi
movl $0x1, (%rsi)
leaq 0x9084(%rip), %rdx      # 0xe108
movq %r14, %rdi
callq 0x651e
leaq 0xa0(%rsp), %r14
leaq 0x44(%rsp), %rsi
movl $0x2, (%rsi)
leaq 0x9068(%rip), %rdx      # 0xe10e
movq %r14, %rdi
callq 0x6554
leaq 0xc8(%rsp), %r14
leaq 0x40(%rsp), %rsi
movl $0x3, (%rsi)
leaq 0x93a2(%rip), %rdx      # 0xe46a
movq %r14, %rdi
callq 0x658a
leaq 0xf0(%rsp), %r14
leaq 0x3c(%rsp), %rsi
movl $0x4, (%rsi)
leaq 0x9029(%rip), %rdx      # 0xe113
movq %r14, %rdi
callq 0x651e
leaq 0x118(%rsp), %r14
leaq 0x38(%rsp), %rsi
movl $0x5, (%rsi)
leaq 0x957b(%rip), %rdx      # 0xe687
movq %r14, %rdi
callq 0x651e
leaq 0x140(%rsp), %r14
leaq 0x34(%rsp), %rsi
movl $0x6, (%rsi)
leaq 0x8feb(%rip), %rdx      # 0xe119
movq %r14, %rdi
callq 0x65c0
leaq 0x168(%rsp), %r14
leaq 0x30(%rsp), %rsi
movl $0x7, (%rsi)
leaq 0x905a(%rip), %rdx      # 0xe1aa
movq %r14, %rdi
callq 0x65f6
leaq 0x190(%rsp), %r14
leaq 0x2c(%rsp), %rsi
movl $0x8, (%rsi)
leaq 0x8fb0(%rip), %rdx      # 0xe122
movq %r14, %rdi
callq 0x6554
leaq 0x1b8(%rsp), %r14
leaq 0x28(%rsp), %rsi
movl $0x9, (%rsi)
leaq 0x8f93(%rip), %rdx      # 0xe127
movq %r14, %rdi
callq 0x651e
leaq 0x1e0(%rsp), %r14
leaq 0x24(%rsp), %rsi
movl $0xa, (%rsi)
leaq 0x8f77(%rip), %rdx      # 0xe12d
movq %r14, %rdi
callq 0x662c
leaq 0x208(%rsp), %r14
leaq 0x20(%rsp), %rsi
movl $0xb, (%rsi)
leaq 0x8f5d(%rip), %rdx      # 0xe135
movq %r14, %rdi
callq 0x662c
leaq 0x230(%rsp), %r14
leaq 0x1c(%rsp), %rsi
movl $0xc, (%rsi)
leaq 0x8f43(%rip), %rdx      # 0xe13d
movq %r14, %rdi
callq 0x662c
leaq 0x258(%rsp), %r14
leaq 0x18(%rsp), %rsi
movl $0xd, (%rsi)
leaq 0x8f29(%rip), %rdx      # 0xe145
movq %r14, %rdi
callq 0x662c
leaq 0x280(%rsp), %r14
leaq 0x14(%rsp), %rsi
movl $0xe, (%rsi)
leaq 0x9233(%rip), %rdx      # 0xe471
movq %r14, %rdi
callq 0x6554
leaq 0x2a8(%rsp), %r14
leaq 0x10(%rsp), %rsi
movl $0xf, (%rsi)
leaq 0x9276(%rip), %rdx      # 0xe4d6
movq %r14, %rdi
callq 0x6554
leaq 0x2d0(%rsp), %r14
leaq 0xc(%rsp), %rsi
movl $0x10, (%rsi)
leaq 0x8ecb(%rip), %rdx      # 0xe14d
movq %r14, %rdi
callq 0x6554
leaq 0x50(%rsp), %rdi
callq 0x5384
movq $-0x2a8, %rbx           # imm = 0xFD58
leaq 0x2e8(%rsp), %r14
movq -0x10(%r14), %rdi
cmpq %rdi, %r14
je 0x52b7
movq (%r14), %rsi
incq %rsi
callq 0x3260
addq $-0x28, %r14
addq $0x28, %rbx
jne 0x52a3
leaq 0x3ca(%rip), %rdi       # 0x5692
leaq 0xf051(%rip), %rsi      # 0x14320
leaq 0xefc2(%rip), %rdx      # 0x14298
callq 0x3230
leaq 0xf076(%rip), %rdi      # 0x14358
callq 0x31c0
jmp 0x4ff0
leaq 0x8f0c(%rip), %rdi      # 0xe1ff
callq 0x33c0
movq %rax, %r15
leaq 0x2f8(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0x3530
movb $0x1, %al
jmp 0x5334
jmp 0x532f
jmp 0x532f
jmp 0x532f
jmp 0x532f
jmp 0x532f
jmp 0x532f
jmp 0x532f
jmp 0x532f
jmp 0x532f
jmp 0x532f
jmp 0x532f
jmp 0x532f
jmp 0x532f
jmp 0x532f
jmp 0x532f
movq %rax, %r15
xorl %eax, %eax
cmpq %r14, %rbx
sete %cl
testb %al, %al
jne 0x536a
testb %cl, %cl
jne 0x536a
addq $-0x10, %r14
movq -0x10(%r14), %rdi
cmpq %rdi, %r14
je 0x535a
movq (%r14), %rsi
incq %rsi
callq 0x3260
leaq -0x28(%r14), %rax
addq $-0x18, %r14
cmpq %rbx, %r14
movq %rax, %r14
jne 0x5346
leaq 0xefe7(%rip), %rdi      # 0x14358
callq 0x31a0
movq %r15, %rdi
callq 0x34a0
movq %rax, %r15
jmp 0x536a
nop