// File: rofl0r[P]ascc/cc_symboltable.cpp
// Function: symbolTable::get_name_string[abi:cxx11](int)
std::string symbolTable::get_name_string(int idx) {
	if (idx & STYPE_CONST) {
        idx &= ~STYPE_CONST;
		return std::string("const ") + get_name_string(idx);
    }

    if (idx & STYPE_DYNARRAY) {
        idx &= ~(STYPE_DYNARRAY | STYPE_POINTER);
		return get_name_string(idx) + std::string("[]");
    }

    if (idx & STYPE_POINTER) {
        idx &= ~STYPE_POINTER;
		return get_name_string(idx) + std::string("*");
    }

    return entries[idx].sname;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x130, %rsp            # imm = 0x130
movq %rdi, -0x118(%rbp)
movq %rdi, %rax
movq %rax, -0x110(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x108(%rbp)
movl -0x14(%rbp), %eax
andl $0x20000000, %eax       # imm = 0x20000000
cmpl $0x0, %eax
je 0x1f527
movb -0x11(%rbp), %al
andb $-0x21, %al
movb %al, -0x11(%rbp)
leaq -0x39(%rbp), %rdi
movq %rdi, -0x120(%rbp)
callq 0x4680
movq -0x120(%rbp), %rdx
leaq 0x14604(%rip), %rsi     # 0x33a8d
leaq -0x38(%rbp), %rdi
callq 0x18000
jmp 0x1f494
movq -0x108(%rbp), %rsi
movl -0x14(%rbp), %edx
leaq -0x70(%rbp), %rdi
callq 0x1f420
jmp 0x1f4a9
movq -0x118(%rbp), %rdi
leaq -0x38(%rbp), %rsi
leaq -0x70(%rbp), %rdx
callq 0x1fae0
jmp 0x1f4bf
leaq -0x70(%rbp), %rdi
callq 0x4270
leaq -0x38(%rbp), %rdi
callq 0x4270
leaq -0x39(%rbp), %rdi
callq 0x43e0
jmp 0x1f710
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x1f519
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x1f510
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x70(%rbp), %rdi
callq 0x4270
leaq -0x38(%rbp), %rdi
callq 0x4270
leaq -0x39(%rbp), %rdi
callq 0x43e0
jmp 0x1f720
movl -0x14(%rbp), %eax
andl $0x10000000, %eax       # imm = 0x10000000
cmpl $0x0, %eax
je 0x1f60d
movq -0x108(%rbp), %rsi
movb -0x11(%rbp), %al
andb $-0x51, %al
movb %al, -0x11(%rbp)
movl -0x14(%rbp), %edx
leaq -0x90(%rbp), %rdi
callq 0x1f420
leaq -0xb1(%rbp), %rdi
movq %rdi, -0x128(%rbp)
callq 0x4680
movq -0x128(%rbp), %rdx
leaq 0x14513(%rip), %rsi     # 0x33a8a
leaq -0xb0(%rbp), %rdi
callq 0x18000
jmp 0x1f585
movq -0x118(%rbp), %rdi
leaq -0x90(%rbp), %rsi
leaq -0xb0(%rbp), %rdx
callq 0x1fae0
jmp 0x1f5a1
leaq -0xb0(%rbp), %rdi
callq 0x4270
leaq -0xb1(%rbp), %rdi
callq 0x43e0
leaq -0x90(%rbp), %rdi
callq 0x4270
jmp 0x1f710
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x1f5f0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0xb0(%rbp), %rdi
callq 0x4270
leaq -0xb1(%rbp), %rdi
callq 0x43e0
leaq -0x90(%rbp), %rdi
callq 0x4270
jmp 0x1f720
movl -0x14(%rbp), %eax
andl $0x40000000, %eax       # imm = 0x40000000
cmpl $0x0, %eax
je 0x1f6ed
movq -0x108(%rbp), %rsi
movb -0x11(%rbp), %al
andb $-0x41, %al
movb %al, -0x11(%rbp)
movl -0x14(%rbp), %edx
leaq -0xd8(%rbp), %rdi
callq 0x1f420
leaq -0xf9(%rbp), %rdi
movq %rdi, -0x130(%rbp)
callq 0x4680
movq -0x130(%rbp), %rdx
leaq 0x14bbf(%rip), %rsi     # 0x3421c
leaq -0xf8(%rbp), %rdi
callq 0x18000
jmp 0x1f66b
movq -0x118(%rbp), %rdi
leaq -0xd8(%rbp), %rsi
leaq -0xf8(%rbp), %rdx
callq 0x1fae0
jmp 0x1f687
leaq -0xf8(%rbp), %rdi
callq 0x4270
leaq -0xf9(%rbp), %rdi
callq 0x43e0
leaq -0xd8(%rbp), %rdi
callq 0x4270
jmp 0x1f710
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x1f6d3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0xf8(%rbp), %rdi
callq 0x4270
leaq -0xf9(%rbp), %rdi
callq 0x43e0
leaq -0xd8(%rbp), %rdi
callq 0x4270
jmp 0x1f720
movq -0x108(%rbp), %rdi
addq $0x28, %rdi
movslq -0x14(%rbp), %rsi
callq 0x17e60
movq -0x118(%rbp), %rdi
movq %rax, %rsi
callq 0x41c0
movq -0x110(%rbp), %rax
addq $0x130, %rsp            # imm = 0x130
popq %rbp
retq
movq -0x48(%rbp), %rdi
callq 0x4670
nopl (%rax)