// File: Konano[P]UselessDatabase/./json.hpp
// Function: nlohmann::detail::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>>::parse(bool, 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>&)
void parse(const bool strict, BasicJsonType& result)
    {
        if (callback)
        {
            json_sax_dom_callback_parser<BasicJsonType> sdp(result, callback, allow_exceptions);
            sax_parse_internal(&sdp);
            result.assert_invariant();

            // in strict mode, input must be completely read
            if (strict and (get_token() != token_type::end_of_input))
            {
                sdp.parse_error(m_lexer.get_position(),
                                m_lexer.get_token_string(),
                                parse_error::create(101, m_lexer.get_position(),
                                                    exception_message(token_type::end_of_input, "value")));
            }

            // in case of an error, return discarded value
            if (sdp.is_errored())
            {
                result = value_t::discarded;
                return;
            }

            // set top-level value to null if it was discarded by the callback
            // function
            if (result.is_discarded())
            {
                result = nullptr;
            }
        }
        else
        {
            json_sax_dom_parser<BasicJsonType> sdp(result, allow_exceptions);
            sax_parse_internal(&sdp);
            result.assert_invariant();

            // in strict mode, input must be completely read
            if (strict and (get_token() != token_type::end_of_input))
            {
                sdp.parse_error(m_lexer.get_position(),
                                m_lexer.get_token_string(),
                                parse_error::create(101, m_lexer.get_position(),
                                                    exception_message(token_type::end_of_input, "value")));
            }

            // in case of an error, return discarded value
            if (sdp.is_errored())
            {
                result = value_t::discarded;
                return;
            }
        }
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x360, %rsp            # imm = 0x360
movb %sil, %al
movq %rdi, -0x8(%rbp)
andb $0x1, %al
movb %al, -0x9(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x2f0(%rbp)
callq 0x20dd0
testb $0x1, %al
jne 0x206b4
jmp 0x20a31
movq -0x2f0(%rbp), %rsi
movq -0x18(%rbp), %rax
movq %rax, -0x300(%rbp)
leaq -0xf0(%rbp), %rdi
movq %rdi, -0x2f8(%rbp)
callq 0x20520
movq -0x2f0(%rbp), %rax
movq -0x300(%rbp), %rsi
movq -0x2f8(%rbp), %rdx
movzbl 0xb8(%rax), %ecx
andl $0x1, %ecx
leaq -0xd0(%rbp), %rdi
callq 0x237b0
jmp 0x20706
leaq -0xf0(%rbp), %rdi
callq 0xbca0
movq -0x2f0(%rbp), %rdi
leaq -0xd0(%rbp), %rsi
callq 0x23920
jmp 0x20727
movq -0x18(%rbp), %rdi
callq 0x17ae0
testb $0x1, -0x9(%rbp)
je 0x2095e
movq -0x2f0(%rbp), %rdi
callq 0x20ee0
movl %eax, -0x304(%rbp)
jmp 0x2074e
movl -0x304(%rbp), %eax
cmpl $0xf, %eax
je 0x2095e
movq -0x2f0(%rbp), %rsi
addq $0x28, %rsi
leaq -0x118(%rbp), %rdi
movq %rdi, -0x318(%rbp)
callq 0x252f0
movq -0x318(%rbp), %rdi
callq 0x25320
movq %rax, -0x310(%rbp)
jmp 0x20790
movq -0x2f0(%rbp), %rsi
addq $0x28, %rsi
leaq -0x138(%rbp), %rdi
callq 0x25340
jmp 0x207a9
movq -0x2f0(%rbp), %rsi
addq $0x28, %rsi
leaq -0x178(%rbp), %rdi
callq 0x252f0
leaq -0x1b9(%rbp), %rdi
movq %rdi, -0x320(%rbp)
callq 0x68a0
movq -0x320(%rbp), %rdx
leaq 0x613b4(%rip), %rsi     # 0x81b95
leaq -0x1b8(%rbp), %rdi
callq 0xc020
jmp 0x207ef
movq -0x2f0(%rbp), %rsi
leaq -0x198(%rbp), %rdi
movl $0xf, %edx
leaq -0x1b8(%rbp), %rcx
callq 0x25720
jmp 0x20810
leaq -0x160(%rbp), %rdi
movl $0x65, %esi
leaq -0x178(%rbp), %rdx
leaq -0x198(%rbp), %rcx
callq 0x25490
jmp 0x20831
movq -0x310(%rbp), %rsi
leaq -0xd0(%rbp), %rdi
leaq -0x138(%rbp), %rdx
leaq -0x160(%rbp), %rcx
callq 0x25140
jmp 0x20854
leaq -0x160(%rbp), %rdi
callq 0x25c40
leaq -0x198(%rbp), %rdi
callq 0x6340
leaq -0x1b8(%rbp), %rdi
callq 0x6340
leaq -0x1b9(%rbp), %rdi
callq 0x6530
leaq -0x138(%rbp), %rdi
callq 0x6340
jmp 0x2095e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
leaq -0xf0(%rbp), %rdi
callq 0xbca0
jmp 0x20d1a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x20a20
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x20941
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x20935
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x20929
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
leaq -0x160(%rbp), %rdi
callq 0x25c40
leaq -0x198(%rbp), %rdi
callq 0x6340
leaq -0x1b8(%rbp), %rdi
callq 0x6340
leaq -0x1b9(%rbp), %rdi
callq 0x6530
leaq -0x138(%rbp), %rdi
callq 0x6340
jmp 0x20a20
leaq -0xd0(%rbp), %rdi
callq 0x25c60
movb %al, -0x321(%rbp)
jmp 0x20972
movb -0x321(%rbp), %al
testb $0x1, %al
jne 0x2097e
jmp 0x209b9
leaq -0x1d0(%rbp), %rdi
movl $0x8, %esi
callq 0x25c80
jmp 0x20991
movq -0x18(%rbp), %rdi
leaq -0x1d0(%rbp), %rsi
callq 0xb0a0
leaq -0x1d0(%rbp), %rdi
callq 0xb110
movl $0x1, -0x1d4(%rbp)
jmp 0x209fe
movq -0x18(%rbp), %rdi
callq 0x25cc0
testb $0x1, %al
jne 0x209c8
jmp 0x209f4
leaq -0x1e8(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0xadd0
movq -0x18(%rbp), %rdi
leaq -0x1e8(%rbp), %rsi
callq 0xb0a0
leaq -0x1e8(%rbp), %rdi
callq 0xb110
movl $0x0, -0x1d4(%rbp)
leaq -0xd0(%rbp), %rdi
callq 0x25ce0
movl -0x1d4(%rbp), %eax
testl %eax, %eax
je 0x20a1b
jmp 0x20a16
jmp 0x20d11
jmp 0x20d11
leaq -0xd0(%rbp), %rdi
callq 0x25ce0
jmp 0x20d1a
movq -0x2f0(%rbp), %rax
movq -0x18(%rbp), %rsi
movzbl 0xb8(%rax), %edx
andl $0x1, %edx
leaq -0x218(%rbp), %rdi
movq %rdi, -0x330(%rbp)
callq 0x25d40
movq -0x2f0(%rbp), %rdi
movq -0x330(%rbp), %rsi
callq 0x25db0
jmp 0x20a6e
movq -0x18(%rbp), %rdi
callq 0x17ae0
testb $0x1, -0x9(%rbp)
je 0x20c82
movq -0x2f0(%rbp), %rdi
callq 0x20ee0
movl %eax, -0x334(%rbp)
jmp 0x20a95
movl -0x334(%rbp), %eax
cmpl $0xf, %eax
je 0x20c82
movq -0x2f0(%rbp), %rsi
addq $0x28, %rsi
leaq -0x230(%rbp), %rdi
movq %rdi, -0x348(%rbp)
callq 0x252f0
movq -0x348(%rbp), %rdi
callq 0x25320
movq %rax, -0x340(%rbp)
jmp 0x20ad7
movq -0x2f0(%rbp), %rsi
addq $0x28, %rsi
leaq -0x250(%rbp), %rdi
callq 0x25340
jmp 0x20af0
movq -0x2f0(%rbp), %rsi
addq $0x28, %rsi
leaq -0x290(%rbp), %rdi
callq 0x252f0
leaq -0x2d1(%rbp), %rdi
movq %rdi, -0x350(%rbp)
callq 0x68a0
movq -0x350(%rbp), %rdx
leaq 0x6106d(%rip), %rsi     # 0x81b95
leaq -0x2d0(%rbp), %rdi
callq 0xc020
jmp 0x20b36
movq -0x2f0(%rbp), %rsi
leaq -0x2b0(%rbp), %rdi
movl $0xf, %edx
leaq -0x2d0(%rbp), %rcx
callq 0x25720
jmp 0x20b57
leaq -0x278(%rbp), %rdi
movl $0x65, %esi
leaq -0x290(%rbp), %rdx
leaq -0x2b0(%rbp), %rcx
callq 0x25490
jmp 0x20b78
movq -0x340(%rbp), %rsi
leaq -0x218(%rbp), %rdi
leaq -0x250(%rbp), %rdx
leaq -0x278(%rbp), %rcx
callq 0x275a0
jmp 0x20b9b
leaq -0x278(%rbp), %rdi
callq 0x25c40
leaq -0x2b0(%rbp), %rdi
callq 0x6340
leaq -0x2d0(%rbp), %rdi
callq 0x6340
leaq -0x2d1(%rbp), %rdi
callq 0x6530
leaq -0x250(%rbp), %rdi
callq 0x6340
jmp 0x20c82
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x20d03
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x20c65
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x20c59
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x20c4d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
leaq -0x278(%rbp), %rdi
callq 0x25c40
leaq -0x2b0(%rbp), %rdi
callq 0x6340
leaq -0x2d0(%rbp), %rdi
callq 0x6340
leaq -0x2d1(%rbp), %rdi
callq 0x6530
leaq -0x250(%rbp), %rdi
callq 0x6340
jmp 0x20d03
leaq -0x218(%rbp), %rdi
callq 0x27750
movb %al, -0x351(%rbp)
jmp 0x20c96
movb -0x351(%rbp), %al
testb $0x1, %al
jne 0x20ca2
jmp 0x20cdd
leaq -0x2e8(%rbp), %rdi
movl $0x8, %esi
callq 0x25c80
jmp 0x20cb5
movq -0x18(%rbp), %rdi
leaq -0x2e8(%rbp), %rsi
callq 0xb0a0
leaq -0x2e8(%rbp), %rdi
callq 0xb110
movl $0x1, -0x1d4(%rbp)
jmp 0x20ce7
movl $0x0, -0x1d4(%rbp)
leaq -0x218(%rbp), %rdi
callq 0x27770
movl -0x1d4(%rbp), %eax
testl %eax, %eax
je 0x20d01
jmp 0x20cff
jmp 0x20d11
jmp 0x20d11
leaq -0x218(%rbp), %rdi
callq 0x27770
jmp 0x20d1a
addq $0x360, %rsp            # imm = 0x360
popq %rbp
retq
movq -0xf8(%rbp), %rdi
callq 0x6890
nopw %cs:(%rax,%rax)