// File: /workspace/github_cpp_makefile_star2_O3/acliusBackHome[P]kamaya/dist/ParseType.cpp
// Function: ParseType::get_base_type_name[abi:cxx11](BaseType, int)
string ParseType::get_base_type_name(BaseType base_type, int specifier) {
    string res;
    if (specifier & S_UNSIGNED) {
        res += "unsigned ";
    }
    if (specifier & S_LONG) {
        res += "long ";
    }
    switch (base_type) {
        case T_UNKNOWN:
            return "unknown";
        case T_SHORT:
            return res + "short";
        case T_INT:
            return res + "int";
        case T_LONG:
            return res + "long";
        case T_FLOAT:
            return res + "float";
        case T_DOUBLE:
            return res + "double";
        case T_BOOL:
            return "bool";
        case T_CHAR:
            return "char";
        case T_ENUM:
            return "enum";
        case T_VOID:
            return "void";
    }
    return "unknown";
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x20, %rsp
movl %edx, %r15d
movl %esi, %r14d
movq %rdi, %rbx
leaq -0x30(%rbp), %r12
movq %r12, -0x10(%r12)
movq $0x0, -0x8(%r12)
movb $0x0, (%r12)
testb $0x1, %r15b
je 0x27a23
leaq 0x1e493(%rip), %rsi     # 0x45ead
leaq -0x40(%rbp), %rdi
callq 0x45c0
testb $0x2, %r15b
je 0x27a39
leaq 0x1e487(%rip), %rsi     # 0x45eb7
leaq -0x40(%rbp), %rdi
callq 0x45c0
cmpl $0x9, %r14d
ja 0x27bbe
movl %r14d, %eax
leaq 0x1e3f7(%rip), %rcx     # 0x45e44
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0x1dba3(%rip), %rsi     # 0x45607
leaq 0x1dba3(%rip), %rdx     # 0x4560e
movq %rbx, %rdi
callq 0xf868
jmp 0x27bfa
leaq 0x10(%rbx), %r15
movq %r15, (%rbx)
movq -0x40(%rbp), %rsi
movq -0x38(%rbp), %rdx
addq %rsi, %rdx
movq %rbx, %rdi
callq 0xf7ca
leaq 0x1edb6(%rip), %rsi     # 0x4684f
movq %rbx, %rdi
callq 0x45c0
jmp 0x27bfa
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0x1e420(%rip), %rsi     # 0x45ed4
leaq 0x1e41d(%rip), %rdx     # 0x45ed8
movq %rbx, %rdi
callq 0xf868
jmp 0x27bfa
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0x1e3f9(%rip), %rsi     # 0x45ecf
leaq 0x1e3f6(%rip), %rdx     # 0x45ed3
movq %rbx, %rdi
callq 0xf868
jmp 0x27bfa
leaq 0x10(%rbx), %r15
movq %r15, (%rbx)
movq -0x40(%rbp), %rsi
movq -0x38(%rbp), %rdx
addq %rsi, %rdx
movq %rbx, %rdi
callq 0xf7ca
leaq 0x1e3b2(%rip), %rsi     # 0x45ebd
movq %rbx, %rdi
callq 0x45c0
jmp 0x27bfa
leaq 0x10(%rbx), %r15
movq %r15, (%rbx)
movq -0x40(%rbp), %rsi
movq -0x38(%rbp), %rdx
addq %rsi, %rdx
movq %rbx, %rdi
callq 0xf7ca
leaq 0x1e38f(%rip), %rsi     # 0x45ec8
movq %rbx, %rdi
callq 0x45c0
jmp 0x27bfa
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0x1ed24(%rip), %rsi     # 0x46878
leaq 0x1ed21(%rip), %rdx     # 0x4687c
movq %rbx, %rdi
callq 0xf868
jmp 0x27bfa
leaq 0x10(%rbx), %r15
movq %r15, (%rbx)
movq -0x40(%rbp), %rsi
movq -0x38(%rbp), %rdx
addq %rsi, %rdx
movq %rbx, %rdi
callq 0xf7ca
leaq 0x1e33a(%rip), %rsi     # 0x45ec3
movq %rbx, %rdi
callq 0x45c0
jmp 0x27bfa
leaq 0x10(%rbx), %r15
movq %r15, (%rbx)
movq -0x40(%rbp), %rsi
movq -0x38(%rbp), %rdx
addq %rsi, %rdx
movq %rbx, %rdi
callq 0xf7ca
leaq 0x1ecb8(%rip), %rsi     # 0x4686c
movq %rbx, %rdi
callq 0x45c0
jmp 0x27bfa
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0x1da3b(%rip), %rsi     # 0x45607
leaq 0x1da3b(%rip), %rdx     # 0x4560e
movq %rbx, %rdi
callq 0xf868
jmp 0x27bfa
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0x1debf(%rip), %rsi     # 0x45aaa
leaq 0x1debc(%rip), %rdx     # 0x45aae
movq %rbx, %rdi
callq 0xf868
movq -0x40(%rbp), %rdi
cmpq %r12, %rdi
je 0x27c08
callq 0x42b0
movq %rbx, %rax
addq $0x20, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
jmp 0x27c20
jmp 0x27c20
jmp 0x27c20
jmp 0x27c20
movq %rax, %r14
movq (%rbx), %rdi
cmpq %r15, %rdi
je 0x27c41
callq 0x42b0
jmp 0x27c41
jmp 0x27c3e
jmp 0x27c3e
jmp 0x27c3e
jmp 0x27c3e
jmp 0x27c3e
jmp 0x27c3e
movq %rax, %r14
movq -0x40(%rbp), %rdi
cmpq %r12, %rdi
je 0x27c4f
callq 0x42b0
movq %r14, %rdi
callq 0x4560
nop