// File: DoubleString[P]RtConverter/src/Json/json_value.cpp
// Function: Json::Value::resolveReference(char const*)
Value& Value::resolveReference(const char* key) {
  JSON_ASSERT_MESSAGE(
      type_ == nullValue || type_ == objectValue,
      "in Json::Value::resolveReference(): requires objectValue");
  if (type_ == nullValue)
    *this = Value(objectValue);
  CZString actualKey(key, static_cast<unsigned>(strlen(key)),
                     CZString::noDuplication); // NOTE!
  ObjectValues::iterator it = value_.map_->lower_bound(actualKey);
  if (it != value_.map_->end() && (*it).first == actualKey)
    return (*it).second;

  ObjectValues::value_type defaultValue(actualKey, nullSingleton());
  it = value_.map_->insert(it, defaultValue);
  Value& value = (*it).second;
  return value;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x2b0, %rsp            # imm = 0x2B0
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x268(%rbp)
movw 0x8(%rax), %ax
andw $0xff, %ax
movzwl %ax, %eax
cmpl $0x0, %eax
je 0x2289b
movq -0x268(%rbp), %rax
movw 0x8(%rax), %ax
andw $0xff, %ax
movzwl %ax, %eax
cmpl $0x7, %eax
je 0x2289b
leaq -0x190(%rbp), %rdi
movq %rdi, -0x270(%rbp)
callq 0x9a00
movq -0x270(%rbp), %rdi
leaq 0x99c18(%rip), %rsi     # 0xbc446
callq 0x9760
jmp 0x22835
leaq -0x1c0(%rbp), %rdi
leaq -0x190(%rbp), %rsi
callq 0x9790
jmp 0x2284a
leaq -0x1c0(%rbp), %rdi
callq 0x1ddc0
jmp 0x22858
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x198(%rbp)
movl %eax, -0x19c(%rbp)
jmp 0x2288a
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 0x22b28
movq -0x268(%rbp), %rax
movw 0x8(%rax), %ax
andw $0xff, %ax
movzwl %ax, %eax
cmpl $0x0, %eax
jne 0x22910
leaq -0x1e8(%rbp), %rdi
movq %rdi, -0x278(%rbp)
movl $0x7, %esi
callq 0x1e5c0
movq -0x268(%rbp), %rdi
movq -0x278(%rbp), %rsi
callq 0x1f1b0
jmp 0x228df
leaq -0x1e8(%rbp), %rdi
callq 0x1f050
jmp 0x22910
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x198(%rbp)
movl %eax, -0x19c(%rbp)
leaq -0x1e8(%rbp), %rdi
callq 0x1f050
jmp 0x22b28
movq -0x18(%rbp), %rdi
movq %rdi, -0x290(%rbp)
callq 0x92e0
movq -0x290(%rbp), %rsi
movl %eax, %edx
leaq -0x1f8(%rbp), %rdi
movq %rdi, -0x288(%rbp)
xorl %ecx, %ecx
callq 0x1e110
movq -0x268(%rbp), %rax
movq -0x288(%rbp), %rsi
movq (%rax), %rdi
callq 0x258e0
movq %rax, -0x280(%rbp)
jmp 0x2295d
movq -0x268(%rbp), %rax
movq -0x280(%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, -0x291(%rbp)
jne 0x229a5
jmp 0x229d6
leaq -0x200(%rbp), %rdi
callq 0x254f0
movq %rax, %rdi
leaq -0x1f8(%rbp), %rsi
callq 0x1e4b0
movb %al, -0x292(%rbp)
jmp 0x229c8
movb -0x292(%rbp), %al
movb %al, -0x291(%rbp)
jmp 0x229d6
movb -0x291(%rbp), %al
testb $0x1, %al
jne 0x229e2
jmp 0x22a1c
leaq -0x200(%rbp), %rdi
callq 0x254f0
addq $0x10, %rax
movq %rax, -0x8(%rbp)
movl $0x1, -0x20c(%rbp)
jmp 0x22b03
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x198(%rbp)
movl %eax, -0x19c(%rbp)
jmp 0x22b1c
callq 0x1d3c0
movq %rax, -0x2a0(%rbp)
jmp 0x22a2a
movq -0x2a0(%rbp), %rdx
leaq -0x248(%rbp), %rdi
leaq -0x1f8(%rbp), %rsi
callq 0x25910
jmp 0x22a46
movq -0x268(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x2b0(%rbp)
leaq -0x258(%rbp), %rdi
leaq -0x200(%rbp), %rsi
callq 0x25810
movq -0x2b0(%rbp), %rdi
movq -0x258(%rbp), %rsi
leaq -0x248(%rbp), %rdx
callq 0x25970
movq %rax, -0x2a8(%rbp)
jmp 0x22a8d
movq -0x2a8(%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, -0x260(%rbp)
movq -0x260(%rbp), %rax
movq %rax, -0x8(%rbp)
movl $0x1, -0x20c(%rbp)
leaq -0x248(%rbp), %rdi
callq 0x259b0
jmp 0x22b03
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x198(%rbp)
movl %eax, -0x19c(%rbp)
leaq -0x248(%rbp), %rdi
callq 0x259b0
jmp 0x22b1c
leaq -0x1f8(%rbp), %rdi
callq 0x1e280
movq -0x8(%rbp), %rax
addq $0x2b0, %rsp            # imm = 0x2B0
popq %rbp
retq
leaq -0x1f8(%rbp), %rdi
callq 0x1e280
movq -0x198(%rbp), %rdi
callq 0x9d20
nopw %cs:(%rax,%rax)