// File: DoubleString[P]RtConverter/src/Json/json_value.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, nullSingleton());
  it = value_.map_->insert(it, defaultValue);
  return (*it).second;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x2a0, %rsp            # imm = 0x2A0
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x260(%rbp)
movw 0x8(%rax), %ax
andw $0xff, %ax
movzwl %ax, %eax
cmpl $0x0, %eax
je 0x2214a
movq -0x260(%rbp), %rax
movw 0x8(%rax), %ax
andw $0xff, %ax
movzwl %ax, %eax
cmpl $0x6, %eax
je 0x2214a
leaq -0x190(%rbp), %rdi
movq %rdi, -0x268(%rbp)
callq 0x9a00
movq -0x268(%rbp), %rdi
leaq 0x9a217(%rip), %rsi     # 0xbc2f4
callq 0x9760
jmp 0x220e4
leaq -0x1c0(%rbp), %rdi
leaq -0x190(%rbp), %rsi
callq 0x9790
jmp 0x220f9
leaq -0x1c0(%rbp), %rdi
callq 0x1ddc0
jmp 0x22107
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x198(%rbp)
movl %eax, -0x19c(%rbp)
jmp 0x22139
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x198(%rbp)
movl %eax, -0x19c(%rbp)
leaq -0x1c0(%rbp), %rdi
callq 0x9480
leaq -0x190(%rbp), %rdi
callq 0x91d0
jmp 0x223b1
movq -0x260(%rbp), %rax
movw 0x8(%rax), %ax
andw $0xff, %ax
movzwl %ax, %eax
cmpl $0x0, %eax
jne 0x221bf
leaq -0x1e8(%rbp), %rdi
movq %rdi, -0x270(%rbp)
movl $0x6, %esi
callq 0x1e5c0
movq -0x260(%rbp), %rdi
movq -0x270(%rbp), %rsi
callq 0x1f1b0
jmp 0x2218e
leaq -0x1e8(%rbp), %rdi
callq 0x1f050
jmp 0x221bf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x198(%rbp)
movl %eax, -0x19c(%rbp)
leaq -0x1e8(%rbp), %rdi
callq 0x1f050
jmp 0x223b1
movl -0x14(%rbp), %esi
leaq -0x1f8(%rbp), %rdi
movq %rdi, -0x280(%rbp)
callq 0x1e0f0
movq -0x260(%rbp), %rax
movq -0x280(%rbp), %rsi
movq (%rax), %rdi
callq 0x258e0
movq %rax, -0x278(%rbp)
jmp 0x221f4
movq -0x260(%rbp), %rax
movq -0x278(%rbp), %rcx
movq %rcx, -0x200(%rbp)
movq (%rax), %rdi
callq 0x257e0
movq %rax, -0x208(%rbp)
leaq -0x200(%rbp), %rdi
leaq -0x208(%rbp), %rsi
callq 0x25490
movb %al, %cl
xorl %eax, %eax
testb $0x1, %cl
movb %al, -0x281(%rbp)
jne 0x2223c
jmp 0x2226d
leaq -0x200(%rbp), %rdi
callq 0x254f0
movq %rax, %rdi
leaq -0x1f8(%rbp), %rsi
callq 0x1e4b0
movb %al, -0x282(%rbp)
jmp 0x2225f
movb -0x282(%rbp), %al
movb %al, -0x281(%rbp)
jmp 0x2226d
movb -0x281(%rbp), %al
testb $0x1, %al
jne 0x22279
jmp 0x222b3
leaq -0x200(%rbp), %rdi
callq 0x254f0
addq $0x10, %rax
movq %rax, -0x8(%rbp)
movl $0x1, -0x20c(%rbp)
jmp 0x2238c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x198(%rbp)
movl %eax, -0x19c(%rbp)
jmp 0x223a5
callq 0x1d3c0
movq %rax, -0x290(%rbp)
jmp 0x222c1
movq -0x290(%rbp), %rdx
leaq -0x248(%rbp), %rdi
leaq -0x1f8(%rbp), %rsi
callq 0x25910
jmp 0x222dd
movq -0x260(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x2a0(%rbp)
leaq -0x258(%rbp), %rdi
leaq -0x200(%rbp), %rsi
callq 0x25810
movq -0x2a0(%rbp), %rdi
movq -0x258(%rbp), %rsi
leaq -0x248(%rbp), %rdx
callq 0x25970
movq %rax, -0x298(%rbp)
jmp 0x22324
movq -0x298(%rbp), %rax
movq %rax, -0x250(%rbp)
movq -0x250(%rbp), %rax
movq %rax, -0x200(%rbp)
leaq -0x200(%rbp), %rdi
callq 0x254f0
addq $0x10, %rax
movq %rax, -0x8(%rbp)
movl $0x1, -0x20c(%rbp)
leaq -0x248(%rbp), %rdi
callq 0x259b0
jmp 0x2238c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x198(%rbp)
movl %eax, -0x19c(%rbp)
leaq -0x248(%rbp), %rdi
callq 0x259b0
jmp 0x223a5
leaq -0x1f8(%rbp), %rdi
callq 0x1e280
movq -0x8(%rbp), %rax
addq $0x2a0, %rsp            # imm = 0x2A0
popq %rbp
retq
leaq -0x1f8(%rbp), %rdi
callq 0x1e280
movq -0x198(%rbp), %rdi
callq 0x9d20
nopl (%rax)