// File: zeeev[P]DASVC/bamtools/src/third_party/jsoncpp/json_reader.cpp
// Function: Json::Reader::readArray(Json::Reader::Token&)
bool 
Reader::readArray( Token &tokenStart )
{
   currentValue() = Value( arrayValue );
   skipSpaces();
   if ( *current_ == ']' ) // empty array
   {
      Token endArray;
      readToken( endArray );
      return true;
   }
   int index = 0;
   while ( true )
   {
      Value &value = currentValue()[ index++ ];
      nodes_.push( &value );
      bool ok = readValue();
      nodes_.pop();
      if ( !ok ) // error already set
         return recoverFromError( tokenArrayEnd );

      Token token;
      // Accept Comment after last item in the array.
      ok = readToken( token );
      while ( token.type_ == tokenComment  &&  ok )
      {
         ok = readToken( token );
      }
      bool badTokenType = ( token.type_ == tokenArraySeparator  &&  
                            token.type_ == tokenArrayEnd );
      if ( !ok  ||  badTokenType )
      {
         return addErrorAndRecover( "Missing ',' or ']' in array declaration", 
                                    token, 
                                    tokenArrayEnd );
      }
      if ( token.type_ == tokenArrayEnd )
         break;
   }
   return true;
}

// Assembly:
subq $0xe8, %rsp
movq %rdi, 0xd8(%rsp)
movq %rsi, 0xd0(%rsp)
movq 0xd8(%rsp), %rax
movq %rax, 0x18(%rsp)
leaq 0xb8(%rsp), %rdi
movl $0x6, %esi
callq 0x1212e0
movq 0x18(%rsp), %rdi
callq 0x116f10
movq %rax, 0x20(%rsp)
jmp 0x1175e7
movq 0x20(%rsp), %rdi
leaq 0xb8(%rsp), %rsi
callq 0x121b00
jmp 0x1175fb
leaq 0xb8(%rsp), %rdi
callq 0x121950
movq 0x18(%rsp), %rdi
callq 0x118280
movq 0x18(%rsp), %rax
movq 0xd0(%rax), %rax
movsbl (%rax), %eax
cmpl $0x5d, %eax
jne 0x11766d
movq 0x18(%rsp), %rdi
leaq 0x90(%rsp), %rsi
callq 0x117f80
movb $0x1, 0xe7(%rsp)
jmp 0x117844
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb0(%rsp)
movl %eax, 0xac(%rsp)
leaq 0xb8(%rsp), %rdi
callq 0x121950
jmp 0x117668
jmp 0x117855
movl $0x0, 0x8c(%rsp)
movq 0x18(%rsp), %rdi
callq 0x116f10
movq %rax, %rdi
movl 0x8c(%rsp), %esi
movl %esi, %eax
addl $0x1, %eax
movl %eax, 0x8c(%rsp)
callq 0x1235a0
movq 0x18(%rsp), %rdi
movq %rax, 0x80(%rsp)
movq 0x80(%rsp), %rax
movq %rax, 0x78(%rsp)
leaq 0x78(%rsp), %rsi
callq 0x11a640
movq 0x18(%rsp), %rdi
callq 0x116a70
movq 0x18(%rsp), %rdi
andb $0x1, %al
movb %al, 0x77(%rsp)
callq 0x11a630
testb $0x1, 0x77(%rsp)
jne 0x1176ff
movq 0x18(%rsp), %rdi
movl $0x4, %esi
callq 0x118ea0
andb $0x1, %al
movb %al, 0xe7(%rsp)
jmp 0x117844
movq 0x18(%rsp), %rdi
leaq 0x58(%rsp), %rsi
callq 0x117f80
andb $0x1, %al
movb %al, 0x77(%rsp)
xorl %eax, %eax
cmpl $0xc, 0x58(%rsp)
movb %al, 0x17(%rsp)
jne 0x117729
movb 0x77(%rsp), %al
movb %al, 0x17(%rsp)
movb 0x17(%rsp), %al
testb $0x1, %al
jne 0x117733
jmp 0x11774a
movq 0x18(%rsp), %rdi
leaq 0x58(%rsp), %rsi
callq 0x117f80
andb $0x1, %al
movb %al, 0x77(%rsp)
jmp 0x117714
xorl %eax, %eax
cmpl $0xa, 0x58(%rsp)
movb %al, 0x16(%rsp)
jne 0x117763
cmpl $0x4, 0x58(%rsp)
sete %al
movb %al, 0x16(%rsp)
movb 0x16(%rsp), %al
andb $0x1, %al
movb %al, 0x57(%rsp)
testb $0x1, 0x77(%rsp)
je 0x11777f
testb $0x1, 0x57(%rsp)
je 0x11782e
leaq 0x2f(%rsp), %rdi
movq %rdi, 0x8(%rsp)
callq 0x86da0
movq 0x8(%rsp), %rdx
leaq 0x1cfbf(%rip), %rsi     # 0x134759
leaq 0x30(%rsp), %rdi
callq 0x86a00
jmp 0x1177a6
movq 0x18(%rsp), %rdi
leaq 0x30(%rsp), %rsi
leaq 0x58(%rsp), %rdx
movl $0x4, %ecx
callq 0x119050
movb %al, 0x7(%rsp)
jmp 0x1177c5
movb 0x7(%rsp), %al
andb $0x1, %al
movb %al, 0xe7(%rsp)
leaq 0x30(%rsp), %rdi
callq 0x86f68
jmp 0x1177de
leaq 0x2f(%rsp), %rdi
callq 0x867b0
jmp 0x117844
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb0(%rsp)
movl %eax, 0xac(%rsp)
jmp 0x117822
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb0(%rsp)
movl %eax, 0xac(%rsp)
leaq 0x30(%rsp), %rdi
callq 0x86f68
jmp 0x117820
jmp 0x117822
leaq 0x2f(%rsp), %rdi
callq 0x867b0
jmp 0x117855
cmpl $0x4, 0x58(%rsp)
jne 0x117837
jmp 0x11783c
jmp 0x117678
movb $0x1, 0xe7(%rsp)
movb 0xe7(%rsp), %al
andb $0x1, %al
addq $0xe8, %rsp
retq
movq 0xb0(%rsp), %rdi
callq 0x86d80
movq %rax, %rdi
callq 0x91290
nopw (%rax,%rax)