// File: /workspace/github_cpp_makefile_star2_O3/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 0x11efd
movq $0x0, 0x8(%rbx)
movb $0x0, 0x10(%rbx)
imulq $0xb0, %rcx, %rax
addq %rax, %rsi
movq %rbx, %rdi
callq 0x3200
btl $0x1e, %ebp
jae 0x11f73
leaq 0x18(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x9164(%rip), %rsi      # 0x1b014
leaq 0x915e(%rip), %rdx      # 0x1b015
leaq 0x8(%rsp), %rdi
callq 0x1015a
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 0x11f18
movq %rdx, 0x28(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x38(%rsp)
jmp 0x11f20
leaq 0xabe1(%rip), %rsi      # 0x1cae5
leaq 0xabea(%rip), %rdx      # 0x1caf5
movq %rbx, %rdi
callq 0x1015a
jmp 0x120f4
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 0x11f5c
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x3320
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0x11f73
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x3320
btl $0x1c, %ebp
jae 0x12036
leaq 0x18(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0xab68(%rip), %rsi      # 0x1caf6
leaq 0xab63(%rip), %rdx      # 0x1caf8
leaq 0x8(%rsp), %rdi
callq 0x1015a
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 0x11fdb
movq %rdx, 0x28(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x38(%rsp)
jmp 0x11fe3
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 0x1201f
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x3320
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0x12036
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x3320
btl $0x1d, %ebp
jae 0x120f4
leaq 0x18(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0xaaa8(%rip), %rsi      # 0x1caf9
leaq 0xaaa7(%rip), %rdx      # 0x1caff
leaq 0x8(%rsp), %rdi
callq 0x1015a
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 0x1209a
movq %rdx, 0x28(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x38(%rsp)
jmp 0x120a1
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 0x120dd
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x3320
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0x120f4
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 0x1210e
jmp 0x1212c
jmp 0x1210e
jmp 0x1212c
movq %rax, %r14
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0x1212f
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x3320
jmp 0x1212f
jmp 0x1212c
movq %rax, %r14
movq (%rbx), %rdi
cmpq %r15, %rdi
je 0x12142
movq (%r15), %rsi
incq %rsi
callq 0x3320
movq %r14, %rdi
callq 0x3560