// File: benjibc[P]json-universal-container/./json.h
// Function: JSON::operator[](char const*)
inline
JSON & JSON::operator[](const char *key)
{
    //turn itself into an array 
    if(m_type != type_obj)
    {
        this->clear();
        m_type = type_obj;
        new (&(m_data.u_map)) Map_t();
    }
    auto it = m_data.u_map.find(key);
    if(it == m_data.u_map.end())
        m_data.u_map[key] = JSON();
    return m_data.u_map[key];
}

// Assembly:
subq $0x158, %rsp            # imm = 0x158
movq %rdi, 0x150(%rsp)
movq %rsi, 0x148(%rsp)
movq 0x150(%rsp), %rax
movq %rax, 0x70(%rsp)
cmpl $0x2, 0x28(%rax)
je 0x6231
movq 0x70(%rsp), %rdi
callq 0x58c0
movq 0x70(%rsp), %rax
movl $0x2, 0x28(%rax)
leaq 0x145(%rsp), %rdi
movq %rdi, 0x68(%rsp)
callq 0x5fc0
movq 0x70(%rsp), %rdi
movq 0x68(%rsp), %r8
movl $0xb, %esi
leaq 0x147(%rsp), %rdx
leaq 0x146(%rsp), %rcx
callq 0x5fd0
jmp 0x61fc
leaq 0x145(%rsp), %rdi
callq 0x60f0
jmp 0x6231
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x138(%rsp)
movl %eax, 0x134(%rsp)
leaq 0x145(%rsp), %rdi
callq 0x60f0
jmp 0x64e7
movq 0x70(%rsp), %rax
movq %rax, 0x50(%rsp)
movq 0x148(%rsp), %rax
movq %rax, 0x58(%rsp)
leaq 0x107(%rsp), %rdi
movq %rdi, 0x60(%rsp)
callq 0x33f0
movq 0x58(%rsp), %rsi
movq 0x60(%rsp), %rdx
leaq 0x108(%rsp), %rdi
callq 0x3340
jmp 0x6273
movq 0x50(%rsp), %rdi
leaq 0x108(%rsp), %rsi
callq 0xd930
movq %rax, 0x48(%rsp)
jmp 0x628c
movq 0x48(%rsp), %rax
movq %rax, 0x128(%rsp)
leaq 0x108(%rsp), %rdi
callq 0x3150
leaq 0x107(%rsp), %rdi
callq 0x32c0
movq 0x70(%rsp), %rdi
callq 0xd980
movq %rax, 0xf8(%rsp)
leaq 0x128(%rsp), %rdi
leaq 0xf8(%rsp), %rsi
callq 0xd960
testb $0x1, %al
jne 0x62e3
jmp 0x642a
leaq 0xc8(%rsp), %rdi
callq 0x5890
movq 0x70(%rsp), %rax
movq %rax, 0x30(%rsp)
movq 0x148(%rsp), %rax
movq %rax, 0x38(%rsp)
leaq 0xa7(%rsp), %rdi
movq %rdi, 0x40(%rsp)
callq 0x33f0
movq 0x38(%rsp), %rsi
movq 0x40(%rsp), %rdx
leaq 0xa8(%rsp), %rdi
callq 0x3340
jmp 0x6332
movq 0x30(%rsp), %rdi
leaq 0xa8(%rsp), %rsi
callq 0xb140
movq %rax, 0x28(%rsp)
jmp 0x634b
movq 0x28(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
callq 0x6630
jmp 0x635f
leaq 0xa8(%rsp), %rdi
callq 0x3150
leaq 0xa7(%rsp), %rdi
callq 0x32c0
leaq 0xc8(%rsp), %rdi
callq 0x5c80
jmp 0x642a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x138(%rsp)
movl %eax, 0x134(%rsp)
jmp 0x63c2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x138(%rsp)
movl %eax, 0x134(%rsp)
leaq 0x108(%rsp), %rdi
callq 0x3150
leaq 0x107(%rsp), %rdi
callq 0x32c0
jmp 0x64e7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x138(%rsp)
movl %eax, 0x134(%rsp)
jmp 0x640b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x138(%rsp)
movl %eax, 0x134(%rsp)
leaq 0xa8(%rsp), %rdi
callq 0x3150
leaq 0xa7(%rsp), %rdi
callq 0x32c0
leaq 0xc8(%rsp), %rdi
callq 0x5c80
jmp 0x64e7
movq 0x70(%rsp), %rax
movq %rax, 0x10(%rsp)
movq 0x148(%rsp), %rax
movq %rax, 0x18(%rsp)
leaq 0x7f(%rsp), %rdi
movq %rdi, 0x20(%rsp)
callq 0x33f0
movq 0x18(%rsp), %rsi
movq 0x20(%rsp), %rdx
leaq 0x80(%rsp), %rdi
callq 0x3340
jmp 0x6469
movq 0x10(%rsp), %rdi
leaq 0x80(%rsp), %rsi
callq 0xb140
movq %rax, 0x8(%rsp)
jmp 0x6482
leaq 0x80(%rsp), %rdi
callq 0x3150
leaq 0x7f(%rsp), %rdi
callq 0x32c0
movq 0x8(%rsp), %rax
addq $0x158, %rsp            # imm = 0x158
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x138(%rsp)
movl %eax, 0x134(%rsp)
jmp 0x64dd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x138(%rsp)
movl %eax, 0x134(%rsp)
leaq 0x80(%rsp), %rdi
callq 0x3150
leaq 0x7f(%rsp), %rdi
callq 0x32c0
movq 0x138(%rsp), %rdi
callq 0x33e0
nopw %cs:(%rax,%rax)
nop