// File: Falldog[P]dcinja/src/include/nlohmann/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, std::vector<unsigned char, std::allocator<unsigned char>>>* 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, std::vector<unsigned char, std::allocator<unsigned char>>>>::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;
        }

        JSON_ASSERT(ref_stack.back()->is_array() || 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());
        }

        JSON_ASSERT(ref_stack.back()->is_object());
        JSON_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 0x4a890
testb $0x1, %al
jne 0x56ba7
jmp 0x56be0
movq -0x18(%rbp), %rax
leaq -0x28(%rbp), %rdi
movzbl (%rax), %esi
callq 0x457f0
movq -0x40(%rbp), %rax
movq (%rax), %rdi
leaq -0x28(%rbp), %rsi
callq 0x12800
leaq -0x28(%rbp), %rdi
callq 0x12460
movq -0x40(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x8(%rbp)
jmp 0x56d3b
movq -0x40(%rbp), %rdi
addq $0x8, %rdi
callq 0x4a7b0
movq (%rax), %rdi
callq 0x4a970
movb %al, %cl
movb $0x1, %al
testb $0x1, %cl
movb %al, -0x41(%rbp)
jne 0x56c19
movq -0x40(%rbp), %rdi
addq $0x8, %rdi
callq 0x4a7b0
movq (%rax), %rdi
callq 0x4a990
movb %al, -0x41(%rbp)
movb -0x41(%rbp), %al
testb $0x1, %al
jne 0x56c22
jmp 0x56c24
jmp 0x56c43
leaq 0x6d425(%rip), %rdi     # 0xc4050
leaq 0x6bd3b(%rip), %rsi     # 0xc296d
movl $0x1563, %edx           # imm = 0x1563
leaq 0x6ef71(%rip), %rcx     # 0xc5baf
callq 0xb410
movq -0x40(%rbp), %rdi
addq $0x8, %rdi
callq 0x4a7b0
movq (%rax), %rdi
callq 0x4a970
testb $0x1, %al
jne 0x56c5e
jmp 0x56c9d
movq -0x40(%rbp), %rdi
addq $0x8, %rdi
callq 0x4a7b0
movq (%rax), %rax
movq 0x8(%rax), %rdi
movq -0x18(%rbp), %rsi
callq 0x56fa0
movq -0x40(%rbp), %rdi
addq $0x8, %rdi
callq 0x4a7b0
movq (%rax), %rax
movq 0x8(%rax), %rdi
callq 0x4a9e0
movq %rax, -0x8(%rbp)
jmp 0x56d3b
movq -0x40(%rbp), %rdi
addq $0x8, %rdi
callq 0x4a7b0
movq (%rax), %rdi
callq 0x4a990
testb $0x1, %al
jne 0x56cb8
jmp 0x56cba
jmp 0x56cd9
leaq 0x6d3af(%rip), %rdi     # 0xc4070
leaq 0x6bca5(%rip), %rsi     # 0xc296d
movl $0x156b, %edx           # imm = 0x156B
leaq 0x6eedb(%rip), %rcx     # 0xc5baf
callq 0xb410
movq -0x40(%rbp), %rax
cmpq $0x0, 0x20(%rax)
je 0x56ce6
jmp 0x56d05
leaq 0x6d3b9(%rip), %rdi     # 0xc40a6
leaq 0x6bc79(%rip), %rsi     # 0xc296d
movl $0x156c, %edx           # imm = 0x156C
leaq 0x6eeaf(%rip), %rcx     # 0xc5baf
callq 0xb410
movq -0x18(%rbp), %rax
leaq -0x38(%rbp), %rdi
movzbl (%rax), %esi
callq 0x457f0
movq -0x40(%rbp), %rax
movq 0x20(%rax), %rdi
leaq -0x38(%rbp), %rsi
callq 0x12800
leaq -0x38(%rbp), %rdi
callq 0x12460
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