// File: /workspace/github_c_makefile_star2_O2/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 %r13
pushq %r12
pushq %rbx
subq $0x328, %rsp            # imm = 0x328
movq %rdi, %r15
movl %esi, 0x24(%rsp)
movb 0x105da(%rip), %al      # 0x15358
testb %al, %al
je 0x4dce
leaq 0x24(%rsp), %rsi
movslq (%rsi), %rcx
movq %rcx, %rax
xorl %edx, %edx
divq 0x10592(%rip)           # 0x15328
movq %rdx, %rdi
movq %rcx, %rdx
callq 0x5eba
testq %rax, %rax
je 0x5276
addq $0x10, %rax
movq %r15, %rdi
movq %rax, %rsi
callq 0x3360
movq %r15, %rax
addq $0x328, %rsp            # imm = 0x328
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x10583(%rip), %rdi     # 0x15358
callq 0x34c0
testl %eax, %eax
je 0x4d82
leaq 0x7c(%rsp), %rsi
andl $0x0, (%rsi)
leaq 0x8571(%rip), %rdx      # 0xd35e
leaq 0x80(%rsp), %rdi
callq 0x5f2e
leaq 0xa8(%rsp), %rdi
leaq 0x78(%rsp), %rsi
movl $0x1, (%rsi)
leaq 0x82f4(%rip), %rdx      # 0xd108
movq %rdi, 0x8(%rsp)
callq 0x5f4a
leaq 0xd0(%rsp), %rdi
leaq 0x74(%rsp), %rsi
movl $0x2, (%rsi)
leaq 0x864b(%rip), %rdx      # 0xd483
movq %rdi, 0x8(%rsp)
callq 0x5f66
leaq 0xf8(%rsp), %rdi
leaq 0x70(%rsp), %rsi
movl $0x3, (%rsi)
leaq 0x8638(%rip), %rdx      # 0xd494
movq %rdi, 0x8(%rsp)
callq 0x5f82
leaq 0x120(%rsp), %rdi
leaq 0x6c(%rsp), %rsi
movl $0x4, (%rsi)
leaq 0x828e(%rip), %rdx      # 0xd10e
movq %rdi, 0x8(%rsp)
callq 0x5f4a
leaq 0x148(%rsp), %rdi
leaq 0x68(%rsp), %rsi
movl $0x5, (%rsi)
leaq 0x8827(%rip), %rdx      # 0xd6cb
movq %rdi, 0x8(%rsp)
callq 0x5f4a
leaq 0x170(%rsp), %rdi
leaq 0x64(%rsp), %rsi
movl $0x6, (%rsi)
leaq 0x824c(%rip), %rdx      # 0xd114
movq %rdi, 0x8(%rsp)
callq 0x5f9e
leaq 0x198(%rsp), %rdi
leaq 0x60(%rsp), %rsi
movl $0x7, (%rsi)
leaq 0x82b9(%rip), %rdx      # 0xd1a5
movq %rdi, 0x8(%rsp)
callq 0x5fba
leaq 0x1c0(%rsp), %rdi
leaq 0x5c(%rsp), %rsi
movl $0x8, (%rsi)
leaq 0x820d(%rip), %rdx      # 0xd11d
movq %rdi, 0x8(%rsp)
callq 0x5f66
leaq 0x1e8(%rsp), %rdi
leaq 0x58(%rsp), %rsi
movl $0x9, (%rsi)
leaq 0x81ee(%rip), %rdx      # 0xd122
movq %rdi, 0x8(%rsp)
callq 0x5f4a
leaq 0x210(%rsp), %rdi
leaq 0x54(%rsp), %rsi
movl $0xa, (%rsi)
leaq 0x81d0(%rip), %rdx      # 0xd128
movq %rdi, 0x8(%rsp)
callq 0x5fd6
leaq 0x238(%rsp), %rdi
leaq 0x50(%rsp), %rsi
movl $0xb, (%rsi)
leaq 0x81b4(%rip), %rdx      # 0xd130
movq %rdi, 0x8(%rsp)
callq 0x5fd6
leaq 0x260(%rsp), %rdi
leaq 0x4c(%rsp), %rsi
movl $0xc, (%rsi)
leaq 0x8198(%rip), %rdx      # 0xd138
movq %rdi, 0x8(%rsp)
callq 0x5fd6
leaq 0x288(%rsp), %rdi
leaq 0x48(%rsp), %rsi
movl $0xd, (%rsi)
leaq 0x817c(%rip), %rdx      # 0xd140
movq %rdi, 0x8(%rsp)
callq 0x5fd6
leaq 0x2b0(%rsp), %rdi
leaq 0x44(%rsp), %rsi
movl $0xe, (%rsi)
leaq 0x84b3(%rip), %rdx      # 0xd49b
movq %rdi, 0x8(%rsp)
callq 0x5f66
leaq 0x2d8(%rsp), %rdi
leaq 0x40(%rsp), %rsi
movl $0xf, (%rsi)
leaq 0x84f9(%rip), %rdx      # 0xd505
movq %rdi, 0x8(%rsp)
callq 0x5f66
leaq 0x300(%rsp), %rdi
leaq 0x3c(%rsp), %rsi
movl $0x10, (%rsi)
leaq 0x8118(%rip), %rdx      # 0xd148
movq %rdi, 0x8(%rsp)
callq 0x5f66
leaq 0x1030f(%rip), %rax     # 0x15350
movq %rax, 0x102d8(%rip)     # 0x15320
movq $0x1, 0x102d5(%rip) # 0x15328
xorps %xmm0, %xmm0
movups %xmm0, 0x102d3(%rip)    # 0x15330
movl $0x3f800000, 0x102d9(%rip) # imm = 0x3F800000
leaq 0x102d2(%rip), %rdi     # 0x15340
movups %xmm0, 0x102d3(%rip)    # 0x15348
xorl %esi, %esi
callq 0x31f0
movq %rax, %rbx
cmpq 0x102a2(%rip), %rax     # 0x15328
jbe 0x509e
movq %rbx, %rdi
callq 0x5e94
movq %rax, 0x10289(%rip)     # 0x15320
movq %rbx, 0x1028a(%rip)     # 0x15328
movq $0x0, 0x18(%rsp)
cmpq $0x2a8, 0x18(%rsp)      # imm = 0x2A8
je 0x5282
movq 0x18(%rsp), %rax
leaq (%rsp,%rax), %rbx
addq $0x80, %rbx
movslq (%rbx), %rbp
movq %rbp, %rax
xorl %edx, %edx
divq 0x10253(%rip)           # 0x15328
movq %rdx, %r12
movq %rdx, %rdi
movq %rbx, %rsi
movq %rbp, %rdx
callq 0x5eba
testq %rax, %rax
jne 0x526b
leaq 0x1022a(%rip), %rdi     # 0x15320
movq %rbx, %rsi
callq 0x66be
movq %rax, 0x10(%rsp)
leaq 0x10216(%rip), %rax     # 0x15320
movq %rax, 0x28(%rsp)
movq 0x10(%rsp), %rax
movq %rax, 0x30(%rsp)
movq 0x10228(%rip), %r13     # 0x15348
movq 0x10201(%rip), %rsi     # 0x15328
movq 0x1020a(%rip), %rdx     # 0x15338
leaq 0x1020b(%rip), %rdi     # 0x15340
pushq $0x1
popq %rcx
callq 0x3340
testb $0x1, %al
je 0x51ba
movq %rdx, %r14
movq %rdx, %rdi
callq 0x5e94
movq %rax, %rbx
movq 0x101da(%rip), %rcx     # 0x15330
andq $0x0, 0x101d2(%rip)     # 0x15330
xorl %edx, %edx
testq %rcx, %rcx
je 0x51c3
movq %rcx, %rsi
movq %rdx, %rdi
movq (%rcx), %rcx
movq 0x30(%rsi), %rax
xorl %edx, %edx
divq %r14
movq (%rbx,%rdx,8), %rax
testq %rax, %rax
je 0x518f
movq (%rax), %rax
movq %rax, (%rsi)
movq (%rbx,%rdx,8), %rax
movq %rdi, %rdx
jmp 0x51b5
movq 0x1019a(%rip), %rax     # 0x15330
movq %rax, (%rsi)
movq %rsi, 0x10190(%rip)     # 0x15330
leaq 0x10189(%rip), %rax     # 0x15330
movq %rax, (%rbx,%rdx,8)
cmpq $0x0, (%rsi)
je 0x5160
leaq (%rbx,%rdi,8), %rax
movq %rsi, (%rax)
jmp 0x5160
movq 0x1015f(%rip), %rbx     # 0x15320
jmp 0x51e8
leaq 0x10156(%rip), %rdi     # 0x15320
callq 0x5e76
movq %r14, 0x10152(%rip)     # 0x15328
movq %rbx, 0x10143(%rip)     # 0x15320
movq %rbp, %rax
xorl %edx, %edx
divq %r14
movq %rdx, %r12
movq 0x10(%rsp), %rax
movq %rbp, 0x30(%rax)
movq (%rbx,%r12,8), %rax
testq %rax, %rax
je 0x520e
movq (%rax), %rax
movq 0x10(%rsp), %rcx
movq %rax, (%rcx)
movq (%rbx,%r12,8), %rax
movq %rcx, (%rax)
jmp 0x5254
movq 0x1011b(%rip), %rax     # 0x15330
movq 0x10(%rsp), %rcx
movq %rax, (%rcx)
movq %rcx, 0x1010c(%rip)     # 0x15330
movq (%rcx), %rax
testq %rax, %rax
je 0x5249
movq 0x30(%rax), %rax
xorl %edx, %edx
divq 0x100ef(%rip)           # 0x15328
movq 0x10(%rsp), %rax
movq %rax, (%rbx,%rdx,8)
movq 0x100d7(%rip), %rbx     # 0x15320
leaq 0x100e0(%rip), %rax     # 0x15330
movq %rax, (%rbx,%r12,8)
incq 0x100dd(%rip)           # 0x15338
andq $0x0, 0x30(%rsp)
leaq 0x28(%rsp), %rdi
callq 0x5f12
addq $0x28, 0x18(%rsp)
jmp 0x50a7
leaq 0x7f7d(%rip), %rdi      # 0xd1fa
callq 0x33c0
movl $0x288, %ebx            # imm = 0x288
leaq (%rsp,%rbx), %rdi
addq $0x80, %rdi
callq 0x3528
addq $-0x28, %rbx
cmpq $-0x20, %rbx
jne 0x5287
leaq 0x108(%rip), %rdi       # 0x53b0
leaq 0x10071(%rip), %rsi     # 0x15320
leaq 0xffe2(%rip), %rdx      # 0x15298
callq 0x3240
leaq 0x10096(%rip), %rdi     # 0x15358
callq 0x31e0
jmp 0x4d82
jmp 0x52ea
jmp 0x52ea
jmp 0x52ea
jmp 0x52ea
jmp 0x52ea
jmp 0x52ea
jmp 0x52ea
jmp 0x52ea
jmp 0x52ea
jmp 0x52ea
jmp 0x52ea
jmp 0x52ea
jmp 0x52ea
jmp 0x52ea
jmp 0x52ea
movq %rax, %r15
xorl %eax, %eax
jmp 0x5360
movq %rax, %r15
jmp 0x539c
jmp 0x5321
movq %rax, %rdi
callq 0x3110
movq %r13, 0x1003e(%rip)     # 0x15348
callq 0x33d0
movq %rax, %r15
callq 0x3460
jmp 0x5329
movq %rax, %rdi
callq 0x47d9
movq %rax, %r15
jmp 0x5333
movq %rax, %r15
leaq 0x28(%rsp), %rdi
callq 0x5f12
leaq 0xffe6(%rip), %rdi      # 0x15320
callq 0x5e34
movl $0x288, %ebx            # imm = 0x288
leaq (%rsp,%rbx), %rdi
addq $0x80, %rdi
callq 0x3528
addq $-0x28, %rbx
cmpq $-0x20, %rbx
jne 0x5344
movb $0x1, %al
leaq 0x80(%rsp), %rcx
cmpq 0x8(%rsp), %rcx
sete %cl
testb %al, %al
jne 0x539c
testb %cl, %cl
jne 0x539c
movq 0x8(%rsp), %rdi
leaq -0x28(%rdi), %rbx
addq $-0x20, %rdi
callq 0x3528
movq %rbx, 0x8(%rsp)
leaq 0x80(%rsp), %rax
cmpq %rax, %rbx
jne 0x5378
leaq 0xffb5(%rip), %rdi      # 0x15358
callq 0x31c0
movq %r15, %rdi
callq 0x3490