// File: /workspace/github_c_makefile_star2_O0/almk277[P]ROSE/rasm/parser.cpp
// Function: mangle(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
string mangle(const string &type)
{
	static const std::unordered_map<string, string> types = {
		{ "int", "i" },
		{ "float", "f" },
		{ "array", "a" },
		{ "bytearray", "b" },
		{ "file", "F" },
		{ "object", "o" },
	};

	auto it = types.find(type);
	if (it == types.end())
		throw error("wrong type " + type);
	return it->second;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x260, %rsp            # imm = 0x260
movq %rdi, -0x200(%rbp)
movq %rdi, %rax
movq %rax, -0x1f8(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
cmpb $0x0, 0x1a505(%rip)     # 0x35520
jne 0x1b1de
leaq 0x1a4f8(%rip), %rdi     # 0x35520
callq 0x46b0
cmpl $0x0, %eax
je 0x1b1de
leaq -0x1a0(%rbp), %rdi
movq %rdi, -0x1a8(%rbp)
leaq 0x8449(%rip), %rsi      # 0x23494
leaq 0x847c(%rip), %rdx      # 0x234ce
callq 0x1cfb0
jmp 0x1b059
leaq -0x160(%rbp), %rdi
movq %rdi, -0x1a8(%rbp)
leaq 0x80a4(%rip), %rsi      # 0x23112
leaq 0x8470(%rip), %rdx      # 0x234e5
callq 0x1d090
jmp 0x1b07c
leaq -0x120(%rbp), %rdi
movq %rdi, -0x1a8(%rbp)
leaq 0x8727(%rip), %rsi      # 0x237b8
leaq 0x838b(%rip), %rdx      # 0x23423
callq 0x1d090
jmp 0x1b09f
leaq -0xe0(%rbp), %rdi
movq %rdi, -0x1a8(%rbp)
leaq 0x8700(%rip), %rsi      # 0x237b4
leaq 0x837a(%rip), %rdx      # 0x23435
callq 0x1d170
jmp 0x1b0c2
leaq -0xa0(%rbp), %rdi
movq %rdi, -0x1a8(%rbp)
leaq 0x7f92(%rip), %rsi      # 0x23069
leaq 0x83d4(%rip), %rdx      # 0x234b2
callq 0x1d250
jmp 0x1b0e5
leaq -0x60(%rbp), %rdi
movq %rdi, -0x1a8(%rbp)
leaq 0x86c7(%rip), %rsi      # 0x237be
leaq 0x84a7(%rip), %rdx      # 0x235a5
callq 0x1d330
jmp 0x1b105
leaq -0x1a0(%rbp), %rax
movq %rax, -0x20(%rbp)
movq $0x6, -0x18(%rbp)
leaq -0x1b7(%rbp), %rdi
movq %rdi, -0x208(%rbp)
callq 0x1d440
movq -0x208(%rbp), %rcx
movq -0x20(%rbp), %rsi
movq -0x18(%rbp), %rdx
movq %rsp, %rax
movq %rcx, (%rax)
leaq 0x1a3a1(%rip), %rdi     # 0x354e8
xorl %eax, %eax
movl %eax, %ecx
leaq -0x1b5(%rbp), %r8
leaq -0x1b6(%rbp), %r9
callq 0x1d460
jmp 0x1b160
leaq -0x1b7(%rbp), %rdi
callq 0x1d4c0
leaq -0x1a0(%rbp), %rax
movq %rax, -0x218(%rbp)
addq $0x180, %rax            # imm = 0x180
movq %rax, -0x210(%rbp)
movq -0x210(%rbp), %rdi
addq $-0x40, %rdi
movq %rdi, -0x220(%rbp)
callq 0x1d410
movq -0x218(%rbp), %rcx
movq -0x220(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x210(%rbp)
jne 0x1b187
leaq 0x2321(%rip), %rdi      # 0x1d4e0
leaq 0x1a322(%rip), %rsi     # 0x354e8
leaq 0x1a1db(%rip), %rdx     # 0x353a8
callq 0x4300
leaq 0x1a347(%rip), %rdi     # 0x35520
callq 0x4260
movq -0x10(%rbp), %rsi
leaq 0x1a2ff(%rip), %rdi     # 0x354e8
callq 0x1d500
movq %rax, -0x1c0(%rbp)
leaq 0x1a2ec(%rip), %rdi     # 0x354e8
callq 0x1d560
movq %rax, -0x1c8(%rbp)
leaq -0x1c0(%rbp), %rdi
leaq -0x1c8(%rbp), %rsi
callq 0x1d530
testb $0x1, %al
jne 0x1b224
jmp 0x1b3b4
movb $0x1, -0x1e9(%rbp)
movl $0x10, %edi
callq 0x41e0
movq %rax, -0x228(%rbp)
movq -0x10(%rbp), %rdx
leaq 0x857e(%rip), %rsi      # 0x237c5
leaq -0x1e8(%rbp), %rdi
callq 0xb520
jmp 0x1b255
movq -0x228(%rbp), %rdi
leaq -0x1e8(%rbp), %rsi
callq 0x45f0
jmp 0x1b26a
movq -0x228(%rbp), %rdi
movb $0x0, -0x1e9(%rbp)
movq 0x19d69(%rip), %rsi     # 0x34fe8
movq 0x19d1a(%rip), %rdx     # 0x34fa0
callq 0x4640
jmp 0x1b3ef
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b0(%rbp)
movl %eax, -0x1b4(%rbp)
movq -0x1a8(%rbp), %rax
leaq -0x1a0(%rbp), %rcx
cmpq %rax, %rcx
movq %rax, -0x230(%rbp)
je 0x1b2ed
movq -0x230(%rbp), %rdi
addq $-0x40, %rdi
movq %rdi, -0x238(%rbp)
callq 0x1d410
movq -0x238(%rbp), %rax
leaq -0x1a0(%rbp), %rcx
cmpq %rcx, %rax
movq %rax, -0x230(%rbp)
jne 0x1b2bc
jmp 0x1b35b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b0(%rbp)
movl %eax, -0x1b4(%rbp)
leaq -0x1b7(%rbp), %rdi
callq 0x1d4c0
leaq -0x1a0(%rbp), %rax
movq %rax, -0x248(%rbp)
addq $0x180, %rax            # imm = 0x180
movq %rax, -0x240(%rbp)
movq -0x240(%rbp), %rdi
addq $-0x40, %rdi
movq %rdi, -0x250(%rbp)
callq 0x1d410
movq -0x248(%rbp), %rcx
movq -0x250(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x240(%rbp)
jne 0x1b328
jmp 0x1b35b
leaq 0x1a1be(%rip), %rdi     # 0x35520
callq 0x4240
jmp 0x1b3e3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b0(%rbp)
movl %eax, -0x1b4(%rbp)
jmp 0x1b39b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b0(%rbp)
movl %eax, -0x1b4(%rbp)
leaq -0x1e8(%rbp), %rdi
callq 0x4748
testb $0x1, -0x1e9(%rbp)
jne 0x1b3a6
jmp 0x1b3b2
movq -0x228(%rbp), %rdi
callq 0x42c0
jmp 0x1b3e3
leaq -0x1c0(%rbp), %rdi
callq 0x1d590
movq -0x200(%rbp), %rdi
movq %rax, %rsi
addq $0x20, %rsi
callq 0x4180
movq -0x1f8(%rbp), %rax
addq $0x260, %rsp            # imm = 0x260
popq %rbp
retq
movq -0x1b0(%rbp), %rdi
callq 0x4670
nop