// File: /workspace/github_cpp_makefile_star2_O1/rofl0r[P]ascc/cc_symboltable.cpp
// Function: symbolTable::get_friendly_name[abi:cxx11](int)
std::string symbolTable::get_friendly_name(int idx) {

    int actualIdx = idx & STYPE_MASK;
    if (actualIdx < 0 || (size_t)actualIdx >= entries.size()) {
        return std::string("(invalid symbol)");
    }
    
    std::string result;
    int mask = idx & (~STYPE_MASK);
    result = entries[actualIdx].sname;
    if (mask & STYPE_POINTER) {
        result = result + std::string("*");
    }
    if (mask & STYPE_DYNARRAY) {
        result = result + std::string("[]");
    }
    if (mask & STYPE_CONST) {
        result = std::string("const ") + result;
    }
    return result;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x48, %rsp
movl %edx, %ebp
movq %rsi, %rax
movq %rdi, %rbx
movl %edx, %ecx
andl $0xfffffff, %ecx        # imm = 0xFFFFFFF
movq 0x28(%rsi), %rsi
movq 0x30(%rax), %rax
subq %rsi, %rax
sarq $0x4, %rax
movabsq $0x2e8ba2e8ba2e8ba3, %rdx # imm = 0x2E8BA2E8BA2E8BA3
imulq %rax, %rdx
leaq 0x10(%rdi), %r15
movq %r15, (%rdi)
cmpq %rcx, %rdx
jbe 0x12071
movq $0x0, 0x8(%rbx)
movb $0x0, 0x10(%rbx)
imulq $0xb0, %rcx, %rax
addq %rax, %rsi
movq %rbx, %rdi
callq 0x3200
btl $0x1e, %ebp
jae 0x120e7
leaq 0x18(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0xb274(%rip), %rsi      # 0x1d298
leaq 0xb26e(%rip), %rdx      # 0x1d299
leaq 0x8(%rsp), %rdi
callq 0x10276
movq (%rbx), %rcx
movq 0x8(%rbx), %r8
leaq 0x8(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x3390
leaq 0x38(%rsp), %r13
movq %r13, -0x10(%r13)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x1208c
movq %rdx, 0x28(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x38(%rsp)
jmp 0x12094
leaq 0xaa6d(%rip), %rsi      # 0x1cae5
leaq 0xaa76(%rip), %rdx      # 0x1caf5
movq %rbx, %rdi
callq 0x10276
jmp 0x12268
movups (%rcx), %xmm0
movups %xmm0, (%r13)
movq 0x8(%rax), %rdx
leaq 0x28(%rsp), %r14
movq %rdx, 0x8(%r14)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq %rbx, %rdi
movq %r14, %rsi
callq 0x33f0
movq (%r14), %rdi
cmpq %r13, %rdi
je 0x120d0
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x3320
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0x120e7
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x3320
btl $0x1c, %ebp
jae 0x121aa
leaq 0x18(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0xa9f4(%rip), %rsi      # 0x1caf6
leaq 0xa9ef(%rip), %rdx      # 0x1caf8
leaq 0x8(%rsp), %rdi
callq 0x10276
movq (%rbx), %rcx
movq 0x8(%rbx), %r8
leaq 0x8(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x3390
leaq 0x38(%rsp), %r13
movq %r13, -0x10(%r13)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x1214f
movq %rdx, 0x28(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x38(%rsp)
jmp 0x12157
movups (%rcx), %xmm0
movups %xmm0, (%r13)
movq 0x8(%rax), %rdx
leaq 0x28(%rsp), %r14
movq %rdx, 0x8(%r14)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq %rbx, %rdi
movq %r14, %rsi
callq 0x33f0
movq (%r14), %rdi
cmpq %r13, %rdi
je 0x12193
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x3320
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0x121aa
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x3320
btl $0x1d, %ebp
jae 0x12268
leaq 0x18(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0xa934(%rip), %rsi      # 0x1caf9
leaq 0xa933(%rip), %rdx      # 0x1caff
leaq 0x8(%rsp), %rdi
callq 0x10276
movq (%rbx), %rsi
movq 0x8(%rbx), %rdx
leaq 0x8(%rsp), %rdi
callq 0x3140
leaq 0x38(%rsp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x1220e
movq %rdx, 0x28(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x38(%rsp)
jmp 0x12215
movups (%rcx), %xmm0
movups %xmm0, (%r15)
movq 0x8(%rax), %rdx
leaq 0x28(%rsp), %r14
movq %rdx, 0x8(%r14)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq %rbx, %rdi
movq %r14, %rsi
callq 0x33f0
movq (%r14), %rdi
cmpq %r15, %rdi
je 0x12251
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x3320
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0x12268
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x3320
movq %rbx, %rax
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x12282
jmp 0x122a0
jmp 0x12282
jmp 0x122a0
movq %rax, %r14
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0x122a3
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x3320
jmp 0x122a3
jmp 0x122a0
movq %rax, %r14
movq (%rbx), %rdi
cmpq %r15, %rdi
je 0x122b6
movq (%r15), %rsi
incq %rsi
callq 0x3320
movq %r14, %rdi
callq 0x3560