// File: Konano[P]UselessDatabase/./Type.h
// Function: Type::toJson[abi:cxx11]()
json toJson() {
        json j;
        j["name"] = name;
        j["ty"] = ty;
        j["char_len"] = char_len;
        j["key"] = key;
        j["null"] = null;
        if (def.anyCast<int>() != nullptr) {
            j["def"] = def.anyRefCast<int>();
        } else if (def.anyCast<char*>() != nullptr) {
            j["def"] = def.anyRefCast<char*>();
        }
        return j;
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x130, %rsp            # imm = 0x130
movq %rdi, -0xb0(%rbp)
movq %rdi, %rax
movq %rax, -0xa8(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0xa0(%rbp)
movb $0x0, -0x11(%rbp)
xorl %eax, %eax
movl %eax, %esi
callq 0xadd0
movq -0xa0(%rbp), %rsi
addq $0x2, %rsi
leaq -0x28(%rbp), %rdi
callq 0xae10
jmp 0x521e2
movq -0xb0(%rbp), %rdi
leaq 0x31a26(%rip), %rsi     # 0x83c16
callq 0xae60
movq %rax, -0xb8(%rbp)
jmp 0x521fe
movq -0xb8(%rbp), %rdi
leaq -0x28(%rbp), %rsi
movq %rsi, -0xc8(%rbp)
callq 0xb0a0
movq -0xc8(%rbp), %rdi
callq 0xb110
movq -0xa0(%rbp), %rsi
addq $0x24, %rsi
leaq -0x48(%rbp), %rdi
callq 0x3cfd0
movq -0xb0(%rbp), %rdi
leaq 0x31972(%rip), %rsi     # 0x83bb5
callq 0xae60
movq %rax, -0xc0(%rbp)
jmp 0x52251
movq -0xc0(%rbp), %rdi
leaq -0x48(%rbp), %rsi
movq %rsi, -0xd8(%rbp)
callq 0xb0a0
movq -0xd8(%rbp), %rdi
callq 0xb110
movq -0xa0(%rbp), %rsi
addq $0x28, %rsi
leaq -0x58(%rbp), %rdi
callq 0x53ac0
movq -0xb0(%rbp), %rdi
leaq 0x319d3(%rip), %rsi     # 0x83c69
callq 0xae60
movq %rax, -0xd0(%rbp)
jmp 0x522a4
movq -0xd0(%rbp), %rdi
leaq -0x58(%rbp), %rsi
movq %rsi, -0xe8(%rbp)
callq 0xb0a0
movq -0xe8(%rbp), %rdi
callq 0xb110
movq -0xa0(%rbp), %rsi
addq $0x2c, %rsi
leaq -0x68(%rbp), %rdi
callq 0x53b10
movq -0xb0(%rbp), %rdi
leaq 0x2f26f(%rip), %rsi     # 0x81558
callq 0xae60
movq %rax, -0xe0(%rbp)
jmp 0x522f7
movq -0xe0(%rbp), %rdi
leaq -0x68(%rbp), %rsi
movq %rsi, -0xf8(%rbp)
callq 0xb0a0
movq -0xf8(%rbp), %rdi
callq 0xb110
movq -0xa0(%rbp), %rsi
leaq -0x78(%rbp), %rdi
callq 0x2e060
movq -0xb0(%rbp), %rdi
leaq 0x2c93e(%rip), %rsi     # 0x7ec76
callq 0xae60
movq %rax, -0xf0(%rbp)
jmp 0x52346
movq -0xf0(%rbp), %rdi
leaq -0x78(%rbp), %rsi
movq %rsi, -0x108(%rbp)
callq 0xb0a0
movq -0x108(%rbp), %rdi
callq 0xb110
movq -0xa0(%rbp), %rdi
addq $0x30, %rdi
callq 0x10b40
movq %rax, -0x100(%rbp)
jmp 0x52382
movq -0x100(%rbp), %rax
cmpq $0x0, %rax
je 0x524af
movq -0xa0(%rbp), %rdi
addq $0x30, %rdi
callq 0xd670
movq %rax, -0x110(%rbp)
jmp 0x523ac
movq -0x110(%rbp), %rsi
leaq -0x88(%rbp), %rdi
callq 0x52600
movq -0xb0(%rbp), %rdi
leaq 0x318a5(%rip), %rsi     # 0x83c72
callq 0xae60
movq %rax, -0x118(%rbp)
jmp 0x523db
movq -0x118(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0xb0a0
leaq -0x88(%rbp), %rdi
callq 0xb110
jmp 0x52560
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x52586
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x28(%rbp), %rdi
callq 0xb110
jmp 0x52586
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x48(%rbp), %rdi
callq 0xb110
jmp 0x52586
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x58(%rbp), %rdi
callq 0xb110
jmp 0x52586
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x68(%rbp), %rdi
callq 0xb110
jmp 0x52586
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x78(%rbp), %rdi
callq 0xb110
jmp 0x52586
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x88(%rbp), %rdi
callq 0xb110
jmp 0x52586
movq -0xa0(%rbp), %rdi
addq $0x30, %rdi
callq 0x10a50
movq %rax, -0x120(%rbp)
jmp 0x524c8
movq -0x120(%rbp), %rax
cmpq $0x0, %rax
je 0x5255e
movq -0xa0(%rbp), %rdi
addq $0x30, %rdi
callq 0x53b60
movq %rax, -0x128(%rbp)
jmp 0x524f2
movq -0x128(%rbp), %rsi
leaq -0x98(%rbp), %rdi
callq 0x53bb0
jmp 0x52507
movq -0xb0(%rbp), %rdi
leaq 0x3175d(%rip), %rsi     # 0x83c72
callq 0xae60
movq %rax, -0x130(%rbp)
jmp 0x52523
movq -0x130(%rbp), %rdi
leaq -0x98(%rbp), %rsi
callq 0xb0a0
leaq -0x98(%rbp), %rdi
callq 0xb110
jmp 0x5255e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x98(%rbp), %rdi
callq 0xb110
jmp 0x52586
jmp 0x52560
movb $0x1, -0x11(%rbp)
testb $0x1, -0x11(%rbp)
jne 0x52576
movq -0xb0(%rbp), %rdi
callq 0xb110
movq -0xa8(%rbp), %rax
addq $0x130, %rsp            # imm = 0x130
popq %rbp
retq
movq -0xb0(%rbp), %rdi
callq 0xb110
movq -0x30(%rbp), %rdi
callq 0x6890
nopl (%rax,%rax)