// File: zeeev[P]DASVC/bamtools/src/third_party/jsoncpp/json_value.cpp
// Function: Json::Value::resolveReference(char const*, bool)
Value &
Value::resolveReference( const char *key, 
                         bool isStatic )
{
   JSON_ASSERT( type_ == nullValue  ||  type_ == objectValue );
   if ( type_ == nullValue )
      *this = Value( objectValue );
#ifndef JSON_VALUE_USE_INTERNAL_MAP
   CZString actualKey( key, isStatic ? CZString::noDuplication 
                                     : 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, null );
   it = value_.map_->insert( it, defaultValue );
   Value &value = (*it).second;
   return value;
#else
   return value_.map_->resolveReference( key, isStatic );
#endif
}

// Assembly:
subq $0x108, %rsp            # imm = 0x108
movb %dl, %al
movq %rdi, 0xf8(%rsp)
movq %rsi, 0xf0(%rsp)
andb $0x1, %al
movb %al, 0xef(%rsp)
movq 0xf8(%rsp), %rax
movq %rax, 0x50(%rsp)
movw 0x8(%rax), %ax
andw $0xff, %ax
movzwl %ax, %eax
cmpl $0x0, %eax
jne 0x123a7e
leaq 0xd0(%rsp), %rdi
movq %rdi, 0x48(%rsp)
movl $0x7, %esi
callq 0x1212e0
movq 0x50(%rsp), %rdi
movq 0x48(%rsp), %rsi
callq 0x121b00
jmp 0x123a47
leaq 0xd0(%rsp), %rdi
callq 0x121950
jmp 0x123a7e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xc8(%rsp)
movl %eax, 0xc4(%rsp)
leaq 0xd0(%rsp), %rdi
callq 0x121950
jmp 0x123a79
jmp 0x123c93
movq 0xf0(%rsp), %rsi
movb 0xef(%rsp), %al
notb %al
movzbl %al, %edx
andl $0x1, %edx
addl %edx, %edx
leaq 0xb0(%rsp), %rdi
movq %rdi, 0x38(%rsp)
callq 0x120ff0
movq 0x50(%rsp), %rax
movq 0x38(%rsp), %rsi
movq (%rax), %rdi
callq 0x125b40
movq %rax, 0x40(%rsp)
jmp 0x123ac2
movq 0x50(%rsp), %rax
movq 0x40(%rsp), %rcx
movq %rcx, 0xa8(%rsp)
movq (%rax), %rdi
callq 0x125a60
movq %rax, 0x30(%rsp)
jmp 0x123ae3
movq 0x30(%rsp), %rax
movq %rax, 0xa0(%rsp)
leaq 0xa8(%rsp), %rdi
leaq 0xa0(%rsp), %rsi
callq 0x125840
movb %al, 0x2f(%rsp)
jmp 0x123b0b
movb 0x2f(%rsp), %cl
xorl %eax, %eax
testb $0x1, %cl
movb %al, 0x2e(%rsp)
jne 0x123b1c
jmp 0x123b46
leaq 0xa8(%rsp), %rdi
callq 0x125880
movq %rax, 0x20(%rsp)
jmp 0x123b30
movq 0x20(%rsp), %rdi
leaq 0xb0(%rsp), %rsi
callq 0x121270
movb %al, 0x2e(%rsp)
movb 0x2e(%rsp), %al
testb $0x1, %al
jne 0x123b50
jmp 0x123b9e
leaq 0xa8(%rsp), %rdi
callq 0x125880
movq %rax, 0x18(%rsp)
jmp 0x123b64
movq 0x18(%rsp), %rax
addq $0x10, %rax
movq %rax, 0x100(%rsp)
movl $0x1, 0x9c(%rsp)
jmp 0x123c65
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xc8(%rsp)
movl %eax, 0xc4(%rsp)
jmp 0x123c82
leaq 0x42cc3(%rip), %rdx     # 0x166868
leaq 0x70(%rsp), %rdi
leaq 0xb0(%rsp), %rsi
callq 0x125b70
jmp 0x123bb9
movq 0x50(%rsp), %rax
movq (%rax), %rdi
movq 0xa8(%rsp), %rax
movq %rax, 0x60(%rsp)
movq 0x60(%rsp), %rsi
leaq 0x70(%rsp), %rdx
callq 0x125be0
movq %rax, 0x10(%rsp)
jmp 0x123be4
movq 0x10(%rsp), %rax
movq %rax, 0x68(%rsp)
movq 0x68(%rsp), %rax
movq %rax, 0xa8(%rsp)
leaq 0xa8(%rsp), %rdi
callq 0x125880
movq %rax, 0x8(%rsp)
jmp 0x123c0f
movq 0x8(%rsp), %rax
addq $0x10, %rax
movq %rax, 0x58(%rsp)
movq 0x58(%rsp), %rax
movq %rax, 0x100(%rsp)
movl $0x1, 0x9c(%rsp)
leaq 0x70(%rsp), %rdi
callq 0x125c30
jmp 0x123c61
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xc8(%rsp)
movl %eax, 0xc4(%rsp)
leaq 0x70(%rsp), %rdi
callq 0x125c30
jmp 0x123c63
jmp 0x123c65
jmp 0x123c82
leaq 0xb0(%rsp), %rdi
callq 0x121100
movq 0x100(%rsp), %rax
addq $0x108, %rsp            # imm = 0x108
retq
leaq 0xb0(%rsp), %rdi
callq 0x121100
jmp 0x123c91
jmp 0x123c93
movq 0xc8(%rsp), %rdi
callq 0x86d80
movq %rax, %rdi
callq 0x91290
nopl (%rax,%rax)