// File: acliusBackHome[P]kamaya/dist/ParseNode.cpp
// Function: ParseNode::get_key_name[abi:cxx11](NodeKey)
string ParseNode::get_key_name(NodeKey type) noexcept {
    switch (type) {
        case K_SYMBOL:
            return "symbol";
        case K_CONST:
            return "constant";
        case K_VARIABLE:
            return "variable";
        case K_TYPE:
            return "type";
        case K_PTR_LV:
            return "pointer_level";
        case K_FUNCTION:
            return "function";
        case K_EXPRESSION:
            return "expression";
        case K_ARRAY_SIZE:
            return "array_size";
        case K_INIT_DECLARATORS:
            return "init_declarators";
        case K_SCOPE_ID:
            return "scope_id";
        case K_PARAM_LIST_NODE:
            return "param_list_node";
        case K_NEXT:
            return "next";
        case K_BEGIN:
            return "begin";
        case K_CODE:
            return "code";
        case K_INSTR:
            return "instr";
        case K_TRUE_LIST:
            return "true_list";
        case K_FALSE_LIST:
            return "false_list";
        case K_TRUE_JUMP:
            return "true_jump";
        case K_FALSE_JUMP:
            return "false_jump";
        case K_NEXT_LIST:
            return "next_list";
        case K_PARAM_LIST:
            return "parameters_list";
        case K_INIT_DEC:
            return "init_declarator";
        case K_BEGIN_CODE:
            return "begin_code";
        case K_EXPRESSION_LIST:
            return "expression_list";
    }
    return "unknown";
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x110, %rsp            # imm = 0x110
movq %rdi, -0x40(%rbp)
movq %rdi, %rax
movq %rax, -0x38(%rbp)
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movl -0xc(%rbp), %eax
movl %eax, -0x2c(%rbp)
subl $0x1, %eax
je 0x3b7b5
jmp 0x3b64e
movl -0x2c(%rbp), %eax
subl $0x2, %eax
je 0x3b7e6
jmp 0x3b65c
movl -0x2c(%rbp), %eax
subl $0x4, %eax
je 0x3b817
jmp 0x3b66a
movl -0x2c(%rbp), %eax
subl $0x8, %eax
je 0x3b848
jmp 0x3b678
movl -0x2c(%rbp), %eax
subl $0x10, %eax
je 0x3b879
jmp 0x3b686
movl -0x2c(%rbp), %eax
subl $0x20, %eax
je 0x3b8aa
jmp 0x3b694
movl -0x2c(%rbp), %eax
subl $0x40, %eax
je 0x3b8db
jmp 0x3b6a2
movl -0x2c(%rbp), %eax
subl $0x80, %eax
je 0x3b90c
jmp 0x3b6b2
movl -0x2c(%rbp), %eax
subl $0x100, %eax            # imm = 0x100
je 0x3b93d
jmp 0x3b6c2
movl -0x2c(%rbp), %eax
subl $0x200, %eax            # imm = 0x200
je 0x3b974
jmp 0x3b6d2
movl -0x2c(%rbp), %eax
subl $0x400, %eax            # imm = 0x400
je 0x3b9ab
jmp 0x3b6e2
movl -0x2c(%rbp), %eax
subl $0x800, %eax            # imm = 0x800
je 0x3b9e2
jmp 0x3b6f2
movl -0x2c(%rbp), %eax
subl $0x1000, %eax           # imm = 0x1000
je 0x3ba19
jmp 0x3b702
movl -0x2c(%rbp), %eax
subl $0x2000, %eax           # imm = 0x2000
je 0x3ba50
jmp 0x3b712
movl -0x2c(%rbp), %eax
subl $0x4000, %eax           # imm = 0x4000
je 0x3ba87
jmp 0x3b722
movl -0x2c(%rbp), %eax
subl $0x8000, %eax           # imm = 0x8000
je 0x3babe
jmp 0x3b732
movl -0x2c(%rbp), %eax
subl $0x10000, %eax          # imm = 0x10000
je 0x3baf5
jmp 0x3b742
movl -0x2c(%rbp), %eax
subl $0x20000, %eax          # imm = 0x20000
je 0x3bb2c
jmp 0x3b752
movl -0x2c(%rbp), %eax
subl $0x40000, %eax          # imm = 0x40000
je 0x3bb63
jmp 0x3b762
movl -0x2c(%rbp), %eax
subl $0x80000, %eax          # imm = 0x80000
je 0x3bb9a
jmp 0x3b772
movl -0x2c(%rbp), %eax
subl $0x100000, %eax         # imm = 0x100000
je 0x3bbd1
jmp 0x3b782
movl -0x2c(%rbp), %eax
subl $0x200000, %eax         # imm = 0x200000
je 0x3bc08
jmp 0x3b792
movl -0x2c(%rbp), %eax
subl $0x400000, %eax         # imm = 0x400000
je 0x3bc3f
jmp 0x3b7a2
movl -0x2c(%rbp), %eax
subl $0x800000, %eax         # imm = 0x800000
je 0x3bc73
jmp 0x3bca7
leaq -0xd(%rbp), %rdi
movq %rdi, -0x48(%rbp)
callq 0x45f0
movq -0x40(%rbp), %rdi
movq -0x48(%rbp), %rdx
leaq 0x540fc(%rip), %rsi     # 0x8f8cd
callq 0x4450
jmp 0x3b7d8
leaq -0xd(%rbp), %rdi
callq 0x4380
jmp 0x3bcd9
leaq -0xe(%rbp), %rdi
movq %rdi, -0x50(%rbp)
callq 0x45f0
movq -0x40(%rbp), %rdi
movq -0x50(%rbp), %rdx
leaq 0x540d2(%rip), %rsi     # 0x8f8d4
callq 0x4450
jmp 0x3b809
leaq -0xe(%rbp), %rdi
callq 0x4380
jmp 0x3bcd9
leaq -0xf(%rbp), %rdi
movq %rdi, -0x58(%rbp)
callq 0x45f0
movq -0x40(%rbp), %rdi
movq -0x58(%rbp), %rdx
leaq 0x540aa(%rip), %rsi     # 0x8f8dd
callq 0x4450
jmp 0x3b83a
leaq -0xf(%rbp), %rdi
callq 0x4380
jmp 0x3bcd9
leaq -0x10(%rbp), %rdi
movq %rdi, -0x60(%rbp)
callq 0x45f0
movq -0x40(%rbp), %rdi
movq -0x60(%rbp), %rdx
leaq 0x562f0(%rip), %rsi     # 0x91b54
callq 0x4450
jmp 0x3b86b
leaq -0x10(%rbp), %rdi
callq 0x4380
jmp 0x3bcd9
leaq -0x11(%rbp), %rdi
movq %rdi, -0x68(%rbp)
callq 0x45f0
movq -0x40(%rbp), %rdi
movq -0x68(%rbp), %rdx
leaq 0x54051(%rip), %rsi     # 0x8f8e6
callq 0x4450
jmp 0x3b89c
leaq -0x11(%rbp), %rdi
callq 0x4380
jmp 0x3bcd9
leaq -0x12(%rbp), %rdi
movq %rdi, -0x70(%rbp)
callq 0x45f0
movq -0x40(%rbp), %rdi
movq -0x70(%rbp), %rdx
leaq 0x515f5(%rip), %rsi     # 0x8cebb
callq 0x4450
jmp 0x3b8cd
leaq -0x12(%rbp), %rdi
callq 0x4380
jmp 0x3bcd9
leaq -0x13(%rbp), %rdi
movq %rdi, -0x78(%rbp)
callq 0x45f0
movq -0x40(%rbp), %rdi
movq -0x78(%rbp), %rdx
leaq 0x518fd(%rip), %rsi     # 0x8d1f4
callq 0x4450
jmp 0x3b8fe
leaq -0x13(%rbp), %rdi
callq 0x4380
jmp 0x3bcd9
leaq -0x14(%rbp), %rdi
movq %rdi, -0x80(%rbp)
callq 0x45f0
movq -0x40(%rbp), %rdi
movq -0x80(%rbp), %rdx
leaq 0x53fcc(%rip), %rsi     # 0x8f8f4
callq 0x4450
jmp 0x3b92f
leaq -0x14(%rbp), %rdi
callq 0x4380
jmp 0x3bcd9
leaq -0x15(%rbp), %rdi
movq %rdi, -0x88(%rbp)
callq 0x45f0
movq -0x40(%rbp), %rdi
movq -0x88(%rbp), %rdx
leaq 0x53fa0(%rip), %rsi     # 0x8f8ff
callq 0x4450
jmp 0x3b966
leaq -0x15(%rbp), %rdi
callq 0x4380
jmp 0x3bcd9
leaq -0x16(%rbp), %rdi
movq %rdi, -0x90(%rbp)
callq 0x45f0
movq -0x40(%rbp), %rdi
movq -0x90(%rbp), %rdx
leaq 0x53f7a(%rip), %rsi     # 0x8f910
callq 0x4450
jmp 0x3b99d
leaq -0x16(%rbp), %rdi
callq 0x4380
jmp 0x3bcd9
leaq -0x17(%rbp), %rdi
movq %rdi, -0x98(%rbp)
callq 0x45f0
movq -0x40(%rbp), %rdi
movq -0x98(%rbp), %rdx
leaq 0x53f4c(%rip), %rsi     # 0x8f919
callq 0x4450
jmp 0x3b9d4
leaq -0x17(%rbp), %rdi
callq 0x4380
jmp 0x3bcd9
leaq -0x18(%rbp), %rdi
movq %rdi, -0xa0(%rbp)
callq 0x45f0
movq -0x40(%rbp), %rdi
movq -0xa0(%rbp), %rdx
leaq 0x53f25(%rip), %rsi     # 0x8f929
callq 0x4450
jmp 0x3ba0b
leaq -0x18(%rbp), %rdi
callq 0x4380
jmp 0x3bcd9
leaq -0x19(%rbp), %rdi
movq %rdi, -0xa8(%rbp)
callq 0x45f0
movq -0x40(%rbp), %rdi
movq -0xa8(%rbp), %rdx
leaq 0x523b1(%rip), %rsi     # 0x8ddec
callq 0x4450
jmp 0x3ba42
leaq -0x19(%rbp), %rdi
callq 0x4380
jmp 0x3bcd9
leaq -0x1a(%rbp), %rdi
movq %rdi, -0xb0(%rbp)
callq 0x45f0
movq -0x40(%rbp), %rdi
movq -0xb0(%rbp), %rdx
leaq 0x53efc(%rip), %rsi     # 0x8f96e
callq 0x4450
jmp 0x3ba79
leaq -0x1a(%rbp), %rdi
callq 0x4380
jmp 0x3bcd9
leaq -0x1b(%rbp), %rdi
movq %rdi, -0xb8(%rbp)
callq 0x45f0
movq -0x40(%rbp), %rdi
movq -0xb8(%rbp), %rdx
leaq 0x53f31(%rip), %rsi     # 0x8f9da
callq 0x4450
jmp 0x3bab0
leaq -0x1b(%rbp), %rdi
callq 0x4380
jmp 0x3bcd9
leaq -0x1c(%rbp), %rdi
movq %rdi, -0xc0(%rbp)
callq 0x45f0
movq -0x40(%rbp), %rdi
movq -0xc0(%rbp), %rdx
leaq 0x53e4e(%rip), %rsi     # 0x8f92e
callq 0x4450
jmp 0x3bae7
leaq -0x1c(%rbp), %rdi
callq 0x4380
jmp 0x3bcd9
leaq -0x1d(%rbp), %rdi
movq %rdi, -0xc8(%rbp)
callq 0x45f0
movq -0x40(%rbp), %rdi
movq -0xc8(%rbp), %rdx
leaq 0x53e21(%rip), %rsi     # 0x8f938
callq 0x4450
jmp 0x3bb1e
leaq -0x1d(%rbp), %rdi
callq 0x4380
jmp 0x3bcd9
leaq -0x1e(%rbp), %rdi
movq %rdi, -0xd0(%rbp)
callq 0x45f0
movq -0x40(%rbp), %rdi
movq -0xd0(%rbp), %rdx
leaq 0x53df5(%rip), %rsi     # 0x8f943
callq 0x4450
jmp 0x3bb55
leaq -0x1e(%rbp), %rdi
callq 0x4380
jmp 0x3bcd9
leaq -0x1f(%rbp), %rdi
movq %rdi, -0xd8(%rbp)
callq 0x45f0
movq -0x40(%rbp), %rdi
movq -0xd8(%rbp), %rdx
leaq 0x53dc8(%rip), %rsi     # 0x8f94d
callq 0x4450
jmp 0x3bb8c
leaq -0x1f(%rbp), %rdi
callq 0x4380
jmp 0x3bcd9
leaq -0x20(%rbp), %rdi
movq %rdi, -0xe0(%rbp)
callq 0x45f0
movq -0x40(%rbp), %rdi
movq -0xe0(%rbp), %rdx
leaq 0x53e2f(%rip), %rsi     # 0x8f9eb
callq 0x4450
jmp 0x3bbc3
leaq -0x20(%rbp), %rdi
callq 0x4380
jmp 0x3bcd9
leaq -0x21(%rbp), %rdi
movq %rdi, -0xe8(%rbp)
callq 0x45f0
movq -0x40(%rbp), %rdi
movq -0xe8(%rbp), %rdx
leaq 0x53d65(%rip), %rsi     # 0x8f958
callq 0x4450
jmp 0x3bbfa
leaq -0x21(%rbp), %rdi
callq 0x4380
jmp 0x3bcd9
leaq -0x22(%rbp), %rdi
movq %rdi, -0xf0(%rbp)
callq 0x45f0
movq -0x40(%rbp), %rdi
movq -0xf0(%rbp), %rdx
leaq 0x51f0a(%rip), %rsi     # 0x8db34
callq 0x4450
jmp 0x3bc31
leaq -0x22(%rbp), %rdi
callq 0x4380
jmp 0x3bcd9
leaq -0x23(%rbp), %rdi
movq %rdi, -0xf8(%rbp)
callq 0x45f0
movq -0x40(%rbp), %rdi
movq -0xf8(%rbp), %rdx
leaq 0x53d07(%rip), %rsi     # 0x8f968
callq 0x4450
jmp 0x3bc68
leaq -0x23(%rbp), %rdi
callq 0x4380
jmp 0x3bcd9
leaq -0x24(%rbp), %rdi
movq %rdi, -0x100(%rbp)
callq 0x45f0
movq -0x40(%rbp), %rdi
movq -0x100(%rbp), %rdx
leaq 0x51d4d(%rip), %rsi     # 0x8d9e2
callq 0x4450
jmp 0x3bc9c
leaq -0x24(%rbp), %rdi
callq 0x4380
jmp 0x3bcd9
leaq -0x25(%rbp), %rdi
movq %rdi, -0x108(%rbp)
callq 0x45f0
movq -0x40(%rbp), %rdi
movq -0x108(%rbp), %rdx
leaq 0x5392e(%rip), %rsi     # 0x8f5f7
callq 0x4450
jmp 0x3bcd0
leaq -0x25(%rbp), %rdi
callq 0x4380
movq -0x38(%rbp), %rax
addq $0x110, %rsp            # imm = 0x110
popq %rbp
retq
movq %rax, %rdi
callq 0x16180
nop