// File: /workspace/github_cpp_makefile_star2_O1/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:
pushq %r14
pushq %rbx
subq $0x38, %rsp
movq %rdi, %rbx
leaq 0x20(%rsp), %rsi
callq 0x67764
cmpb $0x1, 0x10a(%rbx)
jne 0x675a4
cmpq $0x0, 0xf0(%rbx)
je 0x675a4
leaq 0xe8(%rbx), %r14
movq 0x30(%rbx), %rax
cmpq 0x38(%rbx), %rax
jne 0x6757b
movq 0x48(%rbx), %rcx
movl $0x200, %eax            # imm = 0x200
addq -0x8(%rcx), %rax
movq -0x8(%rax), %rdi
movq %r14, %rsi
xorl %edx, %edx
callq 0x6d74c
movq 0xf0(%rbx), %rdx
leaq 0x10284(%rip), %rcx     # 0x7781b
movq %r14, %rdi
xorl %esi, %esi
xorl %r8d, %r8d
callq 0x27900
movl 0x20(%rsp), %eax
decl %eax
cmpl $0x8, %eax
ja 0x675cc
leaq 0xfbd6(%rip), %rcx      # 0x7718c
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq %rbx, %rdi
callq 0x67844
jmp 0x67699
leaq 0x10(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0xfc9a(%rip), %rsi      # 0x77276
leaq 0xfcc1(%rip), %rdx      # 0x772a4
movq %rsp, %rdi
callq 0x2f1b2
movq %rsp, %rsi
leaq 0x20(%rsp), %rdx
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0x677a2
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x6760b
callq 0x27560
xorl %eax, %eax
jmp 0x6770e
movq %rsp, %rdi
xorl %esi, %esi
callq 0x6c19e
movq 0x30(%rbx), %rax
cmpq 0x38(%rbx), %rax
jne 0x67633
movq 0x48(%rbx), %rcx
movl $0x200, %eax            # imm = 0x200
addq -0x8(%rcx), %rax
movq -0x8(%rax), %rdi
movq %rsp, %rsi
callq 0x6c3fa
jmp 0x676cb
movq %rbx, %rdi
callq 0x67ba8
jmp 0x67699
movq %rsp, %rdi
xorl %esi, %esi
callq 0x6bf78
movq 0x30(%rbx), %rax
cmpq 0x38(%rbx), %rax
jne 0x6766f
movq 0x48(%rbx), %rcx
movl $0x200, %eax            # imm = 0x200
addq -0x8(%rcx), %rax
movq -0x8(%rax), %rdi
movq %rsp, %rsi
callq 0x6c3fa
jmp 0x676cb
leaq 0x20(%rsp), %rsi
movq %rbx, %rdi
callq 0x6809c
jmp 0x67699
leaq 0x20(%rsp), %rsi
movq %rbx, %rdi
callq 0x67d30
jmp 0x676d5
movq %rsp, %rdi
movl $0x1, %esi
callq 0x6c19e
movq 0x30(%rbx), %rax
cmpq 0x38(%rbx), %rax
jne 0x676bf
movq 0x48(%rbx), %rcx
movl $0x200, %eax            # imm = 0x200
addq -0x8(%rcx), %rax
movq -0x8(%rax), %rdi
movq %rsp, %rsi
callq 0x6c3fa
movq %rsp, %rdi
callq 0x6c31c
movb $0x1, %al
cmpb $0x1, 0x10a(%rbx)
jne 0x6770e
movq 0x30(%rbx), %rcx
movq 0xd0(%rbx), %rdx
movq %rdx, 0xd8(%rbx)
cmpq 0x38(%rbx), %rcx
jne 0x67703
movq 0x48(%rbx), %rdx
movl $0x200, %ecx            # imm = 0x200
addq -0x8(%rdx), %rcx
movq -0x8(%rcx), %rcx
movq %rcx, 0xe0(%rbx)
addq $0x38, %rsp
popq %rbx
popq %r14
retq
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x67753
callq 0x27560
jmp 0x67753
movq %rax, %rbx
movq %rsp, %rdi
callq 0x6c31c
jmp 0x67753
movq %rax, %rbx
movq %rsp, %rdi
callq 0x6c31c
jmp 0x67753
movq %rax, %rbx
movq %rsp, %rdi
callq 0x6c31c
jmp 0x67753
movq %rax, %rbx
movq %rbx, %rdi
callq 0x27b20
movq %rax, %rdi
callq 0x2e1ed
nop