// File: Konano[P]UselessDatabase/./json.hpp
// Function: void nlohmann::detail::get_arithmetic_value<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>, unsigned long, 0>(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> const&, unsigned long&)
void get_arithmetic_value(const BasicJsonType& j, ArithmeticType& val)
{
    switch (static_cast<value_t>(j))
    {
        case value_t::number_unsigned:
        {
            val = static_cast<ArithmeticType>(*j.template get_ptr<const typename BasicJsonType::number_unsigned_t*>());
            break;
        }
        case value_t::number_integer:
        {
            val = static_cast<ArithmeticType>(*j.template get_ptr<const typename BasicJsonType::number_integer_t*>());
            break;
        }
        case value_t::number_float:
        {
            val = static_cast<ArithmeticType>(*j.template get_ptr<const typename BasicJsonType::number_float_t*>());
            break;
        }

        default:
            JSON_THROW(type_error::create(302, "type must be number, but is " + std::string(j.type_name())));
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x80, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rdi
callq 0x1cfb0
movb %al, %cl
movb %cl, -0x66(%rbp)
subb $0x5, %al
je 0x203a1
jmp 0x20377
movb -0x66(%rbp), %al
subb $0x6, %al
je 0x20389
jmp 0x20380
movb -0x66(%rbp), %al
subb $0x7, %al
je 0x203b9
jmp 0x203f8
movq -0x8(%rbp), %rdi
callq 0x1cfc0
movq (%rax), %rcx
movq -0x10(%rbp), %rax
movq %rcx, (%rax)
jmp 0x204d4
movq -0x8(%rbp), %rdi
callq 0x1cfe0
movq (%rax), %rcx
movq -0x10(%rbp), %rax
movq %rcx, (%rax)
jmp 0x204d4
movq -0x8(%rbp), %rdi
callq 0x1d000
movsd (%rax), %xmm0
movsd 0x5dd52(%rip), %xmm2    # 0x7e120
movaps %xmm0, %xmm1
subsd %xmm2, %xmm1
cvttsd2si %xmm1, %rax
cvttsd2si %xmm0, %rcx
movq %rcx, %rdx
sarq $0x3f, %rdx
andq %rdx, %rax
orq %rax, %rcx
movq -0x10(%rbp), %rax
movq %rcx, (%rax)
jmp 0x204d4
movb $0x1, -0x65(%rbp)
movl $0x20, %edi
callq 0x62a0
movq %rax, -0x80(%rbp)
movq -0x8(%rbp), %rdi
callq 0x1b400
movq %rax, -0x78(%rbp)
leaq -0x51(%rbp), %rdi
movq %rdi, -0x70(%rbp)
callq 0x68a0
movq -0x78(%rbp), %rsi
movq -0x70(%rbp), %rdx
leaq -0x50(%rbp), %rdi
callq 0xc020
jmp 0x20437
leaq 0x5fb53(%rip), %rsi     # 0x7ff91
leaq -0x30(%rbp), %rdi
leaq -0x50(%rbp), %rdx
callq 0x150c0
jmp 0x2044d
movq -0x80(%rbp), %rdi
movl $0x12e, %esi            # imm = 0x12E
leaq -0x30(%rbp), %rdx
callq 0x14ed0
jmp 0x20461
movq -0x80(%rbp), %rdi
movb $0x0, -0x65(%rbp)
leaq 0x904c8(%rip), %rsi     # 0xb0938
leaq -0xb287(%rip), %rdx     # 0x151f0
callq 0x6850
jmp 0x204e6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x204b8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x204af
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x6340
leaq -0x50(%rbp), %rdi
callq 0x6340
leaq -0x51(%rbp), %rdi
callq 0x6530
testb $0x1, -0x65(%rbp)
jne 0x204c9
jmp 0x204d2
movq -0x80(%rbp), %rdi
callq 0x63a0
jmp 0x204dd
addq $0x80, %rsp
popq %rbp
retq
movq -0x60(%rbp), %rdi
callq 0x6890
nopw %cs:(%rax,%rax)