// File: /workspace/github_cpp_makefile_star2_O3/Konano[P]UselessDatabase/./Type.h
// Function: Type::Type(nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, bool, long, unsigned long, double, std::allocator, nlohmann::adl_serializer>)
Type(json j) {
        strcpy(name, j["name"].get<std::string>().c_str());
        ty = (enumType)j["ty"].get<int>();
        char_len = j["char_len"].get<int>();
        key = (enumKeyType)j["key"].get<int>();
        null = j["null"].get<bool>();
        if (j.count("def")) {
            switch (ty) {
            case INT: { def = j["def"].get<int>(); break; }
            case DATE: { def = j["def"].get<int>(); break; }
            case CHAR: { def = j["def"].get<std::string>().c_str(); break; }
            case VARCHAR: { def = j["def"].get<std::string>().c_str(); break; }
            case DECIMAL: { def = j["def"].get<long double>(); break; }
            }
        } else {
            def = Any();
        }
    }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x30, %rsp
movq %rsi, %r14
movq %rdi, %rbx
movw $0x1, (%rdi)
movl $0x0, 0x24(%rdi)
movb $0x0, 0x28(%rdi)
movl $0x2, 0x2c(%rdi)
movq $0x0, 0x30(%rdi)
leaq 0x18e9c(%rip), %rsi     # 0x40c46
movq %r14, %rdi
callq 0x8eb2
movq %rsp, %rdi
movq %rax, %rsi
callq 0x91f2
leaq 0x2(%rbx), %rdi
leaq 0x10(%rsp), %r12
movq -0x10(%r12), %r15
movq %r15, %rsi
callq 0x5360
cmpq %r12, %r15
je 0x27de8
movq 0x10(%rsp), %rsi
incq %rsi
movq %r15, %rdi
callq 0x53a0
leaq 0x18df6(%rip), %rsi     # 0x40be5
movq %r14, %rdi
callq 0x8eb2
movq %rsp, %rsi
movq %rax, %rdi
callq 0xdf5b
movl (%rsp), %eax
movl %eax, 0x24(%rbx)
leaq 0x18e8a(%rip), %rsi     # 0x40c99
movq %r14, %rdi
callq 0x8eb2
movq %rsp, %rsi
movq %rax, %rdi
callq 0xdf5b
movb (%rsp), %al
movb %al, 0x28(%rbx)
leaq 0x16795(%rip), %rsi     # 0x3e5c4
movq %r14, %rdi
callq 0x8eb2
movq %rsp, %rsi
movq %rax, %rdi
callq 0xdf5b
movl (%rsp), %eax
movl %eax, 0x2c(%rbx)
leaq 0x14ae0(%rip), %rsi     # 0x3c92f
movq %r14, %rdi
callq 0x8eb2
movq %rsp, %rsi
movq %rax, %rdi
callq 0x2833b
movb (%rsp), %al
movb %al, (%rbx)
cmpb $0x1, (%r14)
jne 0x27ec7
movq 0x8(%r14), %rdi
leaq 0x18e2a(%rip), %rsi     # 0x40ca2
callq 0x2845a
testq %rax, %rax
je 0x27ec7
movl 0x24(%rbx), %eax
cmpq $0x4, %rax
ja 0x27ecf
leaq 0x18cfe(%rip), %rcx     # 0x40b90
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x18e00(%rip), %rsi     # 0x40ca2
movq %r14, %rdi
callq 0x8eb2
movq %rsp, %rsi
movq %rax, %rdi
callq 0xdf5b
movl (%rsp), %ebp
movl $0x10, %edi
callq 0x5390
jmp 0x27f6f
movq $0x0, 0x30(%rbx)
addq $0x30, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
leaq 0x18dbf(%rip), %rsi     # 0x40ca2
movq %r14, %rdi
callq 0x8eb2
movq %rsp, %rsi
movq %rax, %rdi
callq 0x28544
fldt (%rsp)
fstpt 0x24(%rsp)
movl $0x20, %edi
callq 0x5390
movq %rax, %r14
leaq 0x2ab8f(%rip), %rax     # 0x52aa0
movq %rax, (%r14)
fldt 0x24(%rsp)
fstpt 0x10(%r14)
jmp 0x27f80
leaq 0x18d7d(%rip), %rsi     # 0x40ca2
movq %r14, %rdi
callq 0x8eb2
movq %rsp, %rdi
movq %rax, %rsi
callq 0x91f2
movq (%rsp), %r15
movl $0x10, %edi
callq 0x5390
jmp 0x27fc0
leaq 0x18d53(%rip), %rsi     # 0x40ca2
movq %r14, %rdi
callq 0x8eb2
movq %rsp, %rsi
movq %rax, %rdi
callq 0xdf5b
movl (%rsp), %ebp
movl $0x10, %edi
callq 0x5390
movq %rax, %r14
leaq 0x2aaff(%rip), %rax     # 0x52a78
movq %rax, (%r14)
movl %ebp, 0x8(%r14)
movq 0x30(%rbx), %rdi
testq %rdi, %rdi
je 0x27f8f
movq (%rdi), %rax
callq *0x8(%rax)
movq %r14, 0x30(%rbx)
jmp 0x27ecf
leaq 0x18d03(%rip), %rsi     # 0x40ca2
movq %r14, %rdi
callq 0x8eb2
movq %rsp, %rdi
movq %rax, %rsi
callq 0x91f2
movq (%rsp), %r15
movl $0x10, %edi
callq 0x5390
movq %rax, %r14
leaq 0x2ac4e(%rip), %rax     # 0x52c18
movq %rax, (%r14)
movq %r15, 0x8(%r14)
movq 0x30(%rbx), %rdi
testq %rdi, %rdi
je 0x27fe4
movq (%rdi), %rax
callq *0x8(%rax)
movq (%rsp), %r15
movq %r14, 0x30(%rbx)
cmpq %r12, %r15
je 0x27ecf
movq 0x10(%rsp), %rsi
incq %rsi
movq %r15, %rdi
callq 0x53a0
jmp 0x27ecf
jmp 0x28008
movq %rax, %r14
cmpq %r12, %r15
je 0x28031
movq 0x10(%rsp), %rsi
incq %rsi
movq %r15, %rdi
callq 0x53a0
jmp 0x28031
jmp 0x2802e
jmp 0x2802e
jmp 0x2802e
jmp 0x2802e
jmp 0x2802e
jmp 0x2802e
movq %rax, %r14
movq 0x30(%rbx), %rdi
testq %rdi, %rdi
je 0x28040
movq (%rdi), %rax
callq *0x8(%rax)
movq %r14, %rdi
callq 0x56e0