// File: Konano[P]UselessDatabase/./json.hpp
// Function: 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>* nlohmann::detail::json_sax_dom_parser<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>>::handle_value<nlohmann::detail::value_t>(nlohmann::detail::value_t&&)
JSON_HEDLEY_RETURNS_NON_NULL
    BasicJsonType* handle_value(Value&& v)
    {
        if (ref_stack.empty())
        {
            root = BasicJsonType(std::forward<Value>(v));
            return &root;
        }

        assert(ref_stack.back()->is_array() or ref_stack.back()->is_object());

        if (ref_stack.back()->is_array())
        {
            ref_stack.back()->m_value.array->emplace_back(std::forward<Value>(v));
            return &(ref_stack.back()->m_value.array->back());
        }

        assert(ref_stack.back()->is_object());
        assert(object_element);
        *object_element = BasicJsonType(std::forward<Value>(v));
        return object_element;
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x10(%rbp), %rdi
movq %rdi, -0x40(%rbp)
addq $0x8, %rdi
callq 0x2adb0
testb $0x1, %al
jne 0x30237
jmp 0x30270
movq -0x18(%rbp), %rax
leaq -0x28(%rbp), %rdi
movzbl (%rax), %esi
callq 0x25c80
movq -0x40(%rbp), %rax
movq (%rax), %rdi
leaq -0x28(%rbp), %rsi
callq 0xb0a0
leaq -0x28(%rbp), %rdi
callq 0xb110
movq -0x40(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x8(%rbp)
jmp 0x303cb
movq -0x40(%rbp), %rdi
addq $0x8, %rdi
callq 0x2acd0
movq (%rax), %rdi
callq 0x18420
movb %al, %cl
movb $0x1, %al
testb $0x1, %cl
movb %al, -0x41(%rbp)
jne 0x302a9
movq -0x40(%rbp), %rdi
addq $0x8, %rdi
callq 0x2acd0
movq (%rax), %rdi
callq 0x18460
movb %al, -0x41(%rbp)
movb -0x41(%rbp), %al
testb $0x1, %al
jne 0x302b2
jmp 0x302b4
jmp 0x302d3
leaq 0x514ae(%rip), %rdi     # 0x81769
leaq 0x4e87f(%rip), %rsi     # 0x7eb41
movl $0x1201, %edx           # imm = 0x1201
leaq 0x521b7(%rip), %rcx     # 0x82485
callq 0x6350
movq -0x40(%rbp), %rdi
addq $0x8, %rdi
callq 0x2acd0
movq (%rax), %rdi
callq 0x18420
testb $0x1, %al
jne 0x302ee
jmp 0x3032d
movq -0x40(%rbp), %rdi
addq $0x8, %rdi
callq 0x2acd0
movq (%rax), %rax
movq 0x8(%rax), %rdi
movq -0x18(%rbp), %rsi
callq 0x30630
movq -0x40(%rbp), %rdi
addq $0x8, %rdi
callq 0x2acd0
movq (%rax), %rax
movq 0x8(%rax), %rdi
callq 0x147d0
movq %rax, -0x8(%rbp)
jmp 0x303cb
movq -0x40(%rbp), %rdi
addq $0x8, %rdi
callq 0x2acd0
movq (%rax), %rdi
callq 0x18460
testb $0x1, %al
jne 0x30348
jmp 0x3034a
jmp 0x30369
leaq 0x51438(%rip), %rdi     # 0x81789
leaq 0x4e7e9(%rip), %rsi     # 0x7eb41
movl $0x1209, %edx           # imm = 0x1209
leaq 0x52121(%rip), %rcx     # 0x82485
callq 0x6350
movq -0x40(%rbp), %rax
cmpq $0x0, 0x20(%rax)
je 0x30376
jmp 0x30395
leaq 0x51445(%rip), %rdi     # 0x817c2
leaq 0x4e7bd(%rip), %rsi     # 0x7eb41
movl $0x120a, %edx           # imm = 0x120A
leaq 0x520f5(%rip), %rcx     # 0x82485
callq 0x6350
movq -0x18(%rbp), %rax
leaq -0x38(%rbp), %rdi
movzbl (%rax), %esi
callq 0x25c80
movq -0x40(%rbp), %rax
movq 0x20(%rax), %rdi
leaq -0x38(%rbp), %rsi
callq 0xb0a0
leaq -0x38(%rbp), %rdi
callq 0xb110
movq -0x40(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x50, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
nop