// File: /workspace/github_cpp_makefile_star2_O3/tomfunkhouser[P]gaps/pkgs/RNBasics/json.cpp
// Function: Json::Value::resolveReference(char const*, char const*)
Value& Value::resolveReference(char const* key, char const* cend)
{
  JSON_ASSERT_MESSAGE(
      type_ == nullValue || type_ == objectValue,
      "in Json::Value::resolveReference(key, end): requires objectValue");
  if (type_ == nullValue)
    *this = Value(objectValue);
  CZString actualKey(
      key, static_cast<unsigned>(cend-key), CZString::duplicateOnCopy);
  ObjectValues::iterator it = value_.map_->lower_bound(actualKey);
  if (it != value_.map_->end() && (*it).first == actualKey)
    return (*it).second;

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

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1c8, %rsp            # imm = 0x1C8
movq %rdx, %r15
movq %rsi, %r14
movq %rdi, %rbx
movzwl 0x8(%rdi), %ebp
testb %bpl, %bpl
je 0x8207c
movzbl %bpl, %eax
cmpl $0x7, %eax
je 0x820e5
leaq 0x50(%rsp), %rbx
movq %rbx, %rdi
callq 0x117f0
leaq 0x3d8be(%rip), %rsi     # 0xbf914
movl $0x40, %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 %ebp, %eax
andl $0xfffffe00, %eax       # imm = 0xFFFFFE00
orl $0x7, %eax
movw %ax, 0x8(%rbx)
andl $0x1ff, %ebp            # imm = 0x1FF
movw %bp, 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
subl %r14d, %r15d
movq %r14, 0x8(%rsp)
leal 0x2(,%r15,4), %eax
movl %eax, 0x10(%rsp)
movq (%rbx), %r13
movq 0x10(%r13), %rbp
addq $0x8, %r13
testq %rbp, %rbp
je 0x82149
leaq 0x8(%rsp), %r12
movq %r13, %r15
leaq 0x20(%rbp), %rdi
movq %r12, %rsi
callq 0x80176
testb %al, %al
cmoveq %rbp, %r15
movzbl %al, %eax
movq 0x10(%rbp,%rax,8), %rbp
testq %rbp, %rbp
jne 0x82111
cmpq %r13, %r15
je 0x8214c
leaq 0x20(%r15), %rdi
leaq 0x8(%rsp), %rsi
callq 0x801c0
testb %al, %al
je 0x8214c
jmp 0x821a1
movq %r13, %r15
leaq 0x3cdfd(%rip), %rdx     # 0xbef50
leaq 0x50(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x87bb0
movq (%rbx), %rdi
leaq 0x50(%rsp), %rdx
movq %r15, %rsi
callq 0x8a266
movq %rax, %r15
leaq 0x60(%rsp), %rbx
movq %rbx, %rdi
callq 0x80736
movq -0x10(%rbx), %rdi
testq %rdi, %rdi
je 0x8219c
movl 0x58(%rsp), %eax
andl $0x3, %eax
cmpl $0x1, %eax
jne 0x8219c
callq 0x11710
movq 0x8(%rsp), %r14
testq %r14, %r14
je 0x821ba
movl 0x10(%rsp), %eax
andl $0x3, %eax
cmpl $0x1, %eax
jne 0x821ba
movq %r14, %rdi
callq 0x11710
addq $0x30, %r15
movq %r15, %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 0x821f8
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x115c0
jmp 0x821f8
jmp 0x821f5
movq %rax, %rbx
movq 0x81da1(%rip), %rsi     # 0x103fa0
leaq 0x50(%rsp), %rdi
callq 0x112f0
leaq 0xc0(%rsp), %rdi
callq 0x111f0
jmp 0x82245
movq %rax, %rbx
leaq 0x50(%rsp), %rdi
callq 0x87bf6
jmp 0x8222a
movq %rax, %rbx
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x82245
movl 0x10(%rsp), %eax
andl $0x3, %eax
cmpl $0x1, %eax
jne 0x82245
callq 0x11710
movq %rbx, %rdi
callq 0x11a60
nop