// File: zeeev[P]DASVC/bamtools/src/third_party/jsoncpp/json_reader.cpp
// Function: Json::Reader::readValue()
bool
Reader::readValue()
{
   Token token;
   skipCommentTokens( token );
   bool successful = true;

   if ( collectComments_  &&  !commentsBefore_.empty() )
   {
      currentValue().setComment( commentsBefore_, commentBefore );
      commentsBefore_ = "";
   }


   switch ( token.type_ )
   {
   case tokenObjectBegin:
      successful = readObject( token );
      break;
   case tokenArrayBegin:
      successful = readArray( token );
      break;
   case tokenNumber:
      successful = decodeNumber( token );
      break;
   case tokenString:
      successful = decodeString( token );
      break;
   case tokenTrue:
      currentValue() = true;
      break;
   case tokenFalse:
      currentValue() = false;
      break;
   case tokenNull:
      currentValue() = Value();
      break;
   default:
      return addError( "Syntax error: value, object or array expected.", token );
   }

   if ( collectComments_ )
   {
      lastValueEnd_ = current_;
      lastValue_ = &currentValue();
   }

   return successful;
}

// Assembly:
subq $0xe8, %rsp
movq %rdi, 0xd8(%rsp)
movq 0xd8(%rsp), %rdi
movq %rdi, 0x30(%rsp)
leaq 0xc0(%rsp), %rsi
callq 0x116e00
movq 0x30(%rsp), %rax
movb $0x1, 0xbf(%rsp)
testb $0x1, 0x10a(%rax)
je 0x116afc
movq 0x30(%rsp), %rdi
addq $0xe8, %rdi
callq 0x86c90
testb $0x1, %al
jne 0x116afc
movq 0x30(%rsp), %rdi
callq 0x116f10
movq 0x30(%rsp), %rsi
movq %rax, %rdi
addq $0xe8, %rsi
xorl %edx, %edx
callq 0x124830
movq 0x30(%rsp), %rdi
addq $0xe8, %rdi
leaq 0x1e17c(%rip), %rsi     # 0x134c73
callq 0x869f0
movl 0xc0(%rsp), %eax
decl %eax
movl %eax, %ecx
movq %rcx, 0x28(%rsp)
subl $0x8, %eax
ja 0x116cdf
movq 0x28(%rsp), %rax
leaq 0x1d7eb(%rip), %rcx     # 0x13430c
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq 0x30(%rsp), %rdi
leaq 0xc0(%rsp), %rsi
callq 0x116f30
andb $0x1, %al
movb %al, 0xbf(%rsp)
jmp 0x116d93
movq 0x30(%rsp), %rdi
leaq 0xc0(%rsp), %rsi
callq 0x1175a0
andb $0x1, %al
movb %al, 0xbf(%rsp)
jmp 0x116d93
movq 0x30(%rsp), %rdi
leaq 0xc0(%rsp), %rsi
callq 0x117870
andb $0x1, %al
movb %al, 0xbf(%rsp)
jmp 0x116d93
movq 0x30(%rsp), %rdi
leaq 0xc0(%rsp), %rsi
callq 0x117e60
andb $0x1, %al
movb %al, 0xbf(%rsp)
jmp 0x116d93
leaq 0xa0(%rsp), %rdi
movl $0x1, %esi
callq 0x1216a0
movq 0x30(%rsp), %rdi
callq 0x116f10
movq %rax, 0x20(%rsp)
jmp 0x116bcd
movq 0x20(%rsp), %rdi
leaq 0xa0(%rsp), %rsi
callq 0x121b00
jmp 0x116be1
leaq 0xa0(%rsp), %rdi
callq 0x121950
jmp 0x116d93
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x98(%rsp)
movl %eax, 0x94(%rsp)
leaq 0xa0(%rsp), %rdi
callq 0x121950
jmp 0x116c16
jmp 0x116de9
leaq 0x78(%rsp), %rdi
xorl %esi, %esi
callq 0x1216a0
movq 0x30(%rsp), %rdi
callq 0x116f10
movq %rax, 0x18(%rsp)
jmp 0x116c38
movq 0x18(%rsp), %rdi
leaq 0x78(%rsp), %rsi
callq 0x121b00
jmp 0x116c49
leaq 0x78(%rsp), %rdi
callq 0x121950
jmp 0x116d93
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x98(%rsp)
movl %eax, 0x94(%rsp)
leaq 0x78(%rsp), %rdi
callq 0x121950
jmp 0x116c78
jmp 0x116de9
leaq 0x60(%rsp), %rdi
xorl %esi, %esi
callq 0x1212e0
movq 0x30(%rsp), %rdi
callq 0x116f10
movq %rax, 0x10(%rsp)
jmp 0x116c9a
movq 0x10(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x121b00
jmp 0x116cab
leaq 0x60(%rsp), %rdi
callq 0x121950
jmp 0x116d93
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x98(%rsp)
movl %eax, 0x94(%rsp)
leaq 0x60(%rsp), %rdi
callq 0x121950
jmp 0x116cda
jmp 0x116de9
leaq 0x3f(%rsp), %rdi
movq %rdi, 0x8(%rsp)
callq 0x86da0
movq 0x8(%rsp), %rdx
leaq 0x1d9c0(%rip), %rsi     # 0x1346ba
leaq 0x40(%rsp), %rdi
callq 0x86a00
jmp 0x116d06
movq 0x30(%rsp), %rdi
xorl %eax, %eax
movl %eax, %ecx
leaq 0x40(%rsp), %rsi
leaq 0xc0(%rsp), %rdx
callq 0x116e50
movb %al, 0x7(%rsp)
jmp 0x116d27
movb 0x7(%rsp), %al
andb $0x1, %al
movb %al, 0xe7(%rsp)
leaq 0x40(%rsp), %rdi
callq 0x86f68
jmp 0x116d40
leaq 0x3f(%rsp), %rdi
callq 0x867b0
jmp 0x116dd8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x98(%rsp)
movl %eax, 0x94(%rsp)
jmp 0x116d87
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x98(%rsp)
movl %eax, 0x94(%rsp)
leaq 0x40(%rsp), %rdi
callq 0x86f68
jmp 0x116d85
jmp 0x116d87
leaq 0x3f(%rsp), %rdi
callq 0x867b0
jmp 0x116de9
movq 0x30(%rsp), %rax
testb $0x1, 0x10a(%rax)
je 0x116dc8
movq 0x30(%rsp), %rdi
movq 0xd0(%rdi), %rax
movq %rax, 0xd8(%rdi)
callq 0x116f10
movq %rax, %rcx
movq 0x30(%rsp), %rax
movq %rcx, 0xe0(%rax)
movb 0xbf(%rsp), %al
andb $0x1, %al
movb %al, 0xe7(%rsp)
movb 0xe7(%rsp), %al
andb $0x1, %al
addq $0xe8, %rsp
retq
movq 0x98(%rsp), %rdi
callq 0x86d80
movq %rax, %rdi
callq 0x91290
nop