// File: alfanick[P]rest-cpp/src/rest/json.hpp
// Function: nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, bool, long, double, std::allocator>::basic_json(nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, bool, long, double, std::allocator> const&)
basic_json(const basic_json& other)
        : m_type(other.m_type)
    {
        switch (m_type)
        {
            case value_t::object:
            {
                assert(other.m_value.object != nullptr);
                m_value = *other.m_value.object;
                break;
            }

            case value_t::array:
            {
                assert(other.m_value.array != nullptr);
                m_value = *other.m_value.array;
                break;
            }

            case value_t::string:
            {
                assert(other.m_value.string != nullptr);
                m_value = *other.m_value.string;
                break;
            }

            case value_t::boolean:
            {
                m_value = other.m_value.boolean;
                break;
            }

            case value_t::number_integer:
            {
                m_value = other.m_value.number_integer;
                break;
            }

            case value_t::number_float:
            {
                m_value = other.m_value.number_float;
                break;
            }

            default:
            {
                break;
            }
        }
    }

// Assembly:
subq $0x58, %rsp
movq %rdi, 0x50(%rsp)
movq %rsi, 0x48(%rsp)
movq 0x50(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x48(%rsp), %rcx
movb (%rcx), %cl
movb %cl, (%rax)
movq $0x0, 0x8(%rax)
movb (%rax), %al
decb %al
movzbl %al, %ecx
movq %rcx, 0x10(%rsp)
subb $0x5, %al
ja 0x9ebf6
movq 0x10(%rsp), %rax
leaq 0x455a3(%rip), %rcx     # 0xe402c
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq 0x48(%rsp), %rax
cmpq $0x0, 0x8(%rax)
je 0x9eaa0
jmp 0x9eabf
leaq 0x4620c(%rip), %rdi     # 0xe4cb3
leaq 0x458d9(%rip), %rsi     # 0xe4387
movl $0x6a3, %edx            # imm = 0x6A3
leaq 0x46219(%rip), %rcx     # 0xe4cd3
callq 0x90c40
movq 0x48(%rsp), %rax
movq 0x8(%rax), %rsi
leaq 0x40(%rsp), %rdi
callq 0x8ebd0
movq 0x8(%rsp), %rax
movq 0x40(%rsp), %rcx
movq %rcx, 0x8(%rax)
jmp 0x9ebf8
movq 0x48(%rsp), %rax
cmpq $0x0, 0x8(%rax)
je 0x9eaf3
jmp 0x9eb12
leaq 0x46332(%rip), %rdi     # 0xe4e2c
leaq 0x45886(%rip), %rsi     # 0xe4387
movl $0x6aa, %edx            # imm = 0x6AA
leaq 0x461c6(%rip), %rcx     # 0xe4cd3
callq 0x90c40
movq 0x48(%rsp), %rax
movq 0x8(%rax), %rsi
leaq 0x38(%rsp), %rdi
callq 0x93780
movq 0x8(%rsp), %rax
movq 0x38(%rsp), %rcx
movq %rcx, 0x8(%rax)
jmp 0x9ebf8
movq 0x48(%rsp), %rax
cmpq $0x0, 0x8(%rax)
je 0x9eb46
jmp 0x9eb65
leaq 0x462fe(%rip), %rdi     # 0xe4e4b
leaq 0x45833(%rip), %rsi     # 0xe4387
movl $0x6b1, %edx            # imm = 0x6B1
leaq 0x46173(%rip), %rcx     # 0xe4cd3
callq 0x90c40
movq 0x48(%rsp), %rax
movq 0x8(%rax), %rsi
leaq 0x30(%rsp), %rdi
callq 0x92700
movq 0x8(%rsp), %rax
movq 0x30(%rsp), %rcx
movq %rcx, 0x8(%rax)
jmp 0x9ebf8
movq 0x48(%rsp), %rax
movb 0x8(%rax), %al
leaq 0x28(%rsp), %rdi
andb $0x1, %al
movzbl %al, %esi
callq 0x93820
movq 0x8(%rsp), %rax
movq 0x28(%rsp), %rcx
movq %rcx, 0x8(%rax)
jmp 0x9ebf8
movq 0x48(%rsp), %rax
movq 0x8(%rax), %rsi
leaq 0x20(%rsp), %rdi
callq 0x96740
movq 0x8(%rsp), %rax
movq 0x20(%rsp), %rcx
movq %rcx, 0x8(%rax)
jmp 0x9ebf8
movq 0x48(%rsp), %rax
vmovsd 0x8(%rax), %xmm0
leaq 0x18(%rsp), %rdi
callq 0x96b40
movq 0x8(%rsp), %rax
movq 0x18(%rsp), %rcx
movq %rcx, 0x8(%rax)
jmp 0x9ebf8
jmp 0x9ebf8
addq $0x58, %rsp
retq
nopl (%rax)