// File: xelia-it[P]mustache/test/src/../../src/../third-party/json/single_include/nlohmann/json.hpp
// Function: 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>::json_value::json_value(nlohmann::json_abi_v3_11_2::detail::value_t)
json_value(value_t t)
        {
            switch (t)
            {
                case value_t::object:
                {
                    object = create<object_t>();
                    break;
                }

                case value_t::array:
                {
                    array = create<array_t>();
                    break;
                }

                case value_t::string:
                {
                    string = create<string_t>("");
                    break;
                }

                case value_t::binary:
                {
                    binary = create<binary_t>();
                    break;
                }

                case value_t::boolean:
                {
                    boolean = static_cast<boolean_t>(false);
                    break;
                }

                case value_t::number_integer:
                {
                    number_integer = static_cast<number_integer_t>(0);
                    break;
                }

                case value_t::number_unsigned:
                {
                    number_unsigned = static_cast<number_unsigned_t>(0);
                    break;
                }

                case value_t::number_float:
                {
                    number_float = static_cast<number_float_t>(0.0);
                    break;
                }

                case value_t::null:
                {
                    object = nullptr;  // silence warning, see #821
                    break;
                }

                case value_t::discarded:
                default:
                {
                    object = nullptr;  // silence warning, see #821
                    if (JSON_HEDLEY_UNLIKELY(t == value_t::null))
                    {
                        JSON_THROW(other_error::create(500, "961c151d2e87f2686a955a9be24d316f1362bf21 3.11.2", nullptr)); // LCOV_EXCL_LINE
                    }
                    break;
                }
            }
        }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movb %sil, %al
movq %rdi, -0x8(%rbp)
movb %al, -0x9(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x58(%rbp)
movzbl -0x9(%rbp), %eax
movq %rax, -0x50(%rbp)
subq $0x9, %rax
ja 0x111585
movq -0x50(%rbp), %rax
leaq 0x32661(%rip), %rcx     # 0x143b38
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
callq 0x111660
movq %rax, %rcx
movq -0x58(%rbp), %rax
movq %rcx, (%rax)
jmp 0x11164f
callq 0x111730
movq %rax, %rcx
movq -0x58(%rbp), %rax
movq %rcx, (%rax)
jmp 0x11164f
leaq 0x2da80(%rip), %rdi     # 0x13ef8f
callq 0x111800
movq %rax, %rcx
movq -0x58(%rbp), %rax
movq %rcx, (%rax)
jmp 0x11164f
callq 0x111900
movq %rax, %rcx
movq -0x58(%rbp), %rax
movq %rcx, (%rax)
jmp 0x11164f
movq -0x58(%rbp), %rax
movb $0x0, (%rax)
jmp 0x11164f
movq -0x58(%rbp), %rax
movq $0x0, (%rax)
jmp 0x11164f
movq -0x58(%rbp), %rax
movq $0x0, (%rax)
jmp 0x11164f
movq -0x58(%rbp), %rax
xorps %xmm0, %xmm0
movsd %xmm0, (%rax)
jmp 0x11164f
movq -0x58(%rbp), %rax
movq $0x0, (%rax)
jmp 0x11164f
jmp 0x111585
movq -0x58(%rbp), %rax
movq $0x0, (%rax)
cmpb $0x0, -0x9(%rbp)
sete %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x1115a4
jmp 0x11164d
movb $0x1, -0x45(%rbp)
movl $0x20, %edi
callq 0x52380
movq %rax, -0x68(%rbp)
leaq -0x31(%rbp), %rdi
movq %rdi, -0x60(%rbp)
callq 0x52ca0
movq -0x60(%rbp), %rdx
leaq 0x332d9(%rip), %rsi     # 0x1448a7
leaq -0x30(%rbp), %rdi
callq 0x529e0
jmp 0x1115d9
movq -0x68(%rbp), %rdi
xorl %eax, %eax
movl %eax, %ecx
movl $0x1f4, %esi            # imm = 0x1F4
leaq -0x30(%rbp), %rdx
callq 0x1119d0
jmp 0x1115f1
movq -0x68(%rbp), %rdi
movb $0x0, -0x45(%rbp)
leaq 0xaf390(%rip), %rsi     # 0x1c0990
leaq 0x579(%rip), %rdx       # 0x111b80
callq 0x52c20
jmp 0x11165e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x111631
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x52e58
leaq -0x31(%rbp), %rdi
callq 0x527d0
testb $0x1, -0x45(%rbp)
jne 0x111642
jmp 0x11164b
movq -0x68(%rbp), %rdi
callq 0x52540
jmp 0x111655
jmp 0x11164f
addq $0x70, %rsp
popq %rbp
retq
movq -0x40(%rbp), %rdi
callq 0x52c90
nop