// File: xelia-it[P]mustache/src/./../third-party/json/single_include/nlohmann/json.hpp
// Function: void nlohmann::json_abi_v3_11_2::detail::from_json<nlohmann::json_abi_v3_11_2::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::json_abi_v3_11_2::adl_serializer, std::vector<unsigned char, std::allocator<unsigned char>>, void>, int, 0>(nlohmann::json_abi_v3_11_2::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::json_abi_v3_11_2::adl_serializer, std::vector<unsigned char, std::allocator<unsigned char>>, void> const&, int&)
inline void from_json(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;
        }
        case value_t::boolean:
        {
            val = static_cast<ArithmeticType>(*j.template get_ptr<const typename BasicJsonType::boolean_t*>());
            break;
        }

        case value_t::null:
        case value_t::object:
        case value_t::array:
        case value_t::string:
        case value_t::binary:
        case value_t::discarded:
        default:
            JSON_THROW(type_error::create(302, concat("type must be number, but is ", j.type_name()), &j));
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rdi
callq 0x6c970
movzbl %al, %ecx
movq %rcx, -0x50(%rbp)
subb $0x9, %al
ja 0xa473f
movq -0x50(%rbp), %rax
leaq 0x4eb9(%rip), %rcx      # 0xa9588
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x8(%rbp), %rdi
callq 0x68240
movq (%rax), %rax
movl %eax, %ecx
movq -0x10(%rbp), %rax
movl %ecx, (%rax)
jmp 0xa47df
movq -0x8(%rbp), %rdi
callq 0x6cb40
movq (%rax), %rax
movl %eax, %ecx
movq -0x10(%rbp), %rax
movl %ecx, (%rax)
jmp 0xa47df
movq -0x8(%rbp), %rdi
callq 0x6c7d0
cvttsd2si (%rax), %ecx
movq -0x10(%rbp), %rax
movl %ecx, (%rax)
jmp 0xa47df
movq -0x8(%rbp), %rdi
callq 0x6b5a0
movb (%rax), %al
andb $0x1, %al
movzbl %al, %ecx
movq -0x10(%rbp), %rax
movl %ecx, (%rax)
jmp 0xa47df
jmp 0xa473f
movb $0x1, -0x45(%rbp)
movl $0x20, %edi
callq 0x687d0
movq %rax, -0x58(%rbp)
movq -0x8(%rbp), %rdi
callq 0x69ed0
movq %rax, -0x38(%rbp)
leaq 0xa981(%rip), %rsi      # 0xaf0e6
leaq -0x30(%rbp), %rdi
leaq -0x38(%rbp), %rdx
callq 0x67b00
jmp 0xa4774
movq -0x58(%rbp), %rdi
movq -0x8(%rbp), %rcx
movl $0x12e, %esi            # imm = 0x12E
leaq -0x30(%rbp), %rdx
callq 0x6cf60
jmp 0xa478c
movq -0x58(%rbp), %rdi
movb $0x0, -0x45(%rbp)
movq 0x216f5(%rip), %rsi     # 0xc5e90
movq 0x21726(%rip), %rdx     # 0xc5ec8
callq 0x6d470
jmp 0xa47ee
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0xa47cc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x6e458
testb $0x1, -0x45(%rbp)
jne 0xa47d4
jmp 0xa47dd
movq -0x58(%rbp), %rdi
callq 0x69830
jmp 0xa47e5
addq $0x60, %rsp
popq %rbp
retq
movq -0x40(%rbp), %rdi
callq 0x6d7b0
nop