// File: /workspace/github_cpp_makefile_star2_O3/tomfunkhouser[P]gaps/pkgs/RNBasics/json.cpp
// Function: Json::Value::operator[](unsigned int)
Value& Value::operator[](ArrayIndex index) {
  JSON_ASSERT_MESSAGE(
      type_ == nullValue || type_ == arrayValue,
      "in Json::Value::operator[](ArrayIndex): requires arrayValue");
  if (type_ == nullValue)
    *this = Value(arrayValue);
  CZString key(index);
  ObjectValues::iterator it = value_.map_->lower_bound(key);
  if (it != value_.map_->end() && (*it).first == key)
    return (*it).second;

  ObjectValues::value_type defaultValue(key, nullRef);
  it = value_.map_->insert(it, defaultValue);
  return (*it).second;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1c8, %rsp            # imm = 0x1C8
movl %esi, %ebp
movq %rdi, %rbx
movzwl 0x8(%rdi), %r14d
testb %r14b, %r14b
je 0x81a51
movzbl %r14b, %eax
cmpl $0x6, %eax
je 0x81abd
leaq 0x50(%rsp), %rbx
movq %rbx, %rdi
callq 0x117f0
leaq 0x3ddad(%rip), %rsi     # 0xbf7d8
movl $0x3b, %edx
movq %rbx, %rdi
callq 0x116c0
leaq 0x58(%rsp), %rsi
leaq 0x8(%rsp), %rdi
callq 0x11980
leaq 0x8(%rsp), %rdi
callq 0x7fe09
movl $0x30, %edi
callq 0x115b0
leaq 0x8(%rax), %rcx
xorps %xmm0, %xmm0
movaps %xmm0, 0x10(%rax)
movaps %xmm0, (%rax)
movq %rcx, 0x18(%rax)
movq %rcx, 0x20(%rax)
xorl %ecx, %ecx
movq %rcx, 0x28(%rax)
movq (%rbx), %rdx
movq %rax, (%rbx)
leaq 0x28(%rsp), %rdi
movq %rdx, (%rdi)
movl %r14d, %eax
andl $0xfffffe00, %eax       # imm = 0xFFFFFE00
orl $0x6, %eax
movw %ax, 0x8(%rbx)
andl $0x1ff, %r14d           # imm = 0x1FF
movw %r14w, 0x8(%rdi)
movq 0x10(%rbx), %rax
movq %rcx, 0x10(%rbx)
movq %rax, 0x10(%rdi)
movups 0x18(%rbx), %xmm1
movups %xmm0, 0x18(%rbx)
movups %xmm1, 0x18(%rdi)
callq 0x80736
movq $0x0, 0x8(%rsp)
movl %ebp, 0x10(%rsp)
movq (%rbx), %r12
movq 0x10(%r12), %r13
addq $0x8, %r12
testq %r13, %r13
je 0x81b1b
leaq 0x8(%rsp), %r15
movq %r12, %r14
leaq 0x20(%r13), %rdi
movq %r15, %rsi
callq 0x80176
testb %al, %al
cmoveq %r13, %r14
movzbl %al, %eax
movq 0x10(%r13,%rax,8), %r13
testq %r13, %r13
jne 0x81ae3
cmpq %r12, %r14
je 0x81b1e
leaq 0x20(%r14), %rdi
leaq 0x8(%rsp), %rsi
callq 0x801c0
testb %al, %al
je 0x81b1e
jmp 0x81b89
movq %r12, %r14
leaq 0x3d42b(%rip), %rdx     # 0xbef50
leaq 0x50(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x87bb0
movq (%rbx), %rdi
leaq 0x50(%rsp), %rdx
movq %r14, %rsi
callq 0x8a266
movq %rax, %r14
leaq 0x60(%rsp), %rbx
movq %rbx, %rdi
callq 0x80736
movq -0x10(%rbx), %rdi
testq %rdi, %rdi
je 0x81b6e
movl 0x58(%rsp), %eax
andl $0x3, %eax
cmpl $0x1, %eax
jne 0x81b6e
callq 0x11710
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x81b89
movl 0x10(%rsp), %eax
andl $0x3, %eax
cmpl $0x1, %eax
jne 0x81b89
callq 0x11710
addq $0x30, %r14
movq %r14, %rax
addq $0x1c8, %rsp            # imm = 0x1C8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq 0x18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x81bc7
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x115c0
jmp 0x81bc7
jmp 0x81bc4
movq %rax, %rbx
movq 0x823d2(%rip), %rsi     # 0x103fa0
leaq 0x50(%rsp), %rdi
callq 0x112f0
leaq 0xc0(%rsp), %rdi
callq 0x111f0
jmp 0x81c14
movq %rax, %rbx
leaq 0x50(%rsp), %rdi
callq 0x87bf6
jmp 0x81bf9
movq %rax, %rbx
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x81c14
movl 0x10(%rsp), %eax
andl $0x3, %eax
cmpl $0x1, %eax
jne 0x81c14
callq 0x11710
movq %rbx, %rdi
callq 0x11a60