// File: mattn[P]minijson/./minijson.h
// Function: minijson::error minijson::parse_array<char const*>(char const*&, minijson::value&)
inline error
parse_array(Iter& i, value& v) {
  array a;
  i++;
  _MINIJSON_SKIP(i);
  if (*i != ']') {
    while (*i) {
      value va;
      error e = parse_any(i, va);
      if (e != no_error) return e;
      a.push_back(va);
      _MINIJSON_SKIP(i);
      if (*i == ']') break;
      if (*i != ',') return invalid_token_error;
      i++;
      _MINIJSON_SKIP(i);
#ifdef __MINIJSON_LIBERAL
      if (*i == '\x7d') break;
#endif
    }
  }
  v = value(a);
  i++;
  return no_error;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x80, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x4830
movq -0x10(%rbp), %rax
movq (%rax), %rcx
addq $0x1, %rcx
movq %rcx, (%rax)
movq -0x10(%rbp), %rax
movq (%rax), %rcx
xorl %eax, %eax
cmpb $0x0, (%rcx)
movb %al, -0x69(%rbp)
je 0x6cfb
movq -0x10(%rbp), %rax
movq (%rax), %rax
movsbl (%rax), %esi
leaq 0x33cd(%rip), %rdi      # 0xa0b9
callq 0x2090
cmpq $0x0, %rax
setne %al
movb %al, -0x69(%rbp)
movb -0x69(%rbp), %al
testb $0x1, %al
jne 0x6d04
jmp 0x6d14
movq -0x10(%rbp), %rax
movq (%rax), %rcx
addq $0x1, %rcx
movq %rcx, (%rax)
jmp 0x6cca
movq -0x10(%rbp), %rax
movq (%rax), %rax
movsbl (%rax), %eax
cmpl $0x5d, %eax
je 0x6eb6
jmp 0x6d29
movq -0x10(%rbp), %rax
movq (%rax), %rax
cmpb $0x0, (%rax)
je 0x6eb4
leaq -0x40(%rbp), %rdi
callq 0x2a60
jmp 0x6d44
movq -0x10(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0x6750
movl %eax, -0x70(%rbp)
jmp 0x6d56
movl -0x70(%rbp), %eax
movl %eax, -0x50(%rbp)
cmpl $0x0, -0x50(%rbp)
je 0x6d9f
movl -0x50(%rbp), %eax
movl %eax, -0x4(%rbp)
movl $0x1, -0x54(%rbp)
jmp 0x6e90
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x6f27
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x40(%rbp), %rdi
callq 0x2f60
jmp 0x6f27
leaq -0x30(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0x87b0
jmp 0x6dae
jmp 0x6db0
movq -0x10(%rbp), %rax
movq (%rax), %rcx
xorl %eax, %eax
cmpb $0x0, (%rcx)
movb %al, -0x71(%rbp)
je 0x6de1
movq -0x10(%rbp), %rax
movq (%rax), %rax
movsbl (%rax), %esi
leaq 0x32e7(%rip), %rdi      # 0xa0b9
callq 0x2090
cmpq $0x0, %rax
setne %al
movb %al, -0x71(%rbp)
movb -0x71(%rbp), %al
testb $0x1, %al
jne 0x6dea
jmp 0x6dfa
movq -0x10(%rbp), %rax
movq (%rax), %rcx
addq $0x1, %rcx
movq %rcx, (%rax)
jmp 0x6db0
movq -0x10(%rbp), %rax
movq (%rax), %rax
movsbl (%rax), %eax
cmpl $0x5d, %eax
jne 0x6e12
movl $0x5, -0x54(%rbp)
jmp 0x6e90
movq -0x10(%rbp), %rax
movq (%rax), %rax
movsbl (%rax), %eax
cmpl $0x2c, %eax
je 0x6e31
movl $0x2, -0x4(%rbp)
movl $0x1, -0x54(%rbp)
jmp 0x6e90
movq -0x10(%rbp), %rax
movq (%rax), %rcx
addq $0x1, %rcx
movq %rcx, (%rax)
movq -0x10(%rbp), %rax
movq (%rax), %rcx
xorl %eax, %eax
cmpb $0x0, (%rcx)
movb %al, -0x72(%rbp)
je 0x6e70
movq -0x10(%rbp), %rax
movq (%rax), %rax
movsbl (%rax), %esi
leaq 0x3258(%rip), %rdi      # 0xa0b9
callq 0x2090
cmpq $0x0, %rax
setne %al
movb %al, -0x72(%rbp)
movb -0x72(%rbp), %al
testb $0x1, %al
jne 0x6e79
jmp 0x6e89
movq -0x10(%rbp), %rax
movq (%rax), %rcx
addq $0x1, %rcx
movq %rcx, (%rax)
jmp 0x6e3f
movl $0x0, -0x54(%rbp)
leaq -0x40(%rbp), %rdi
callq 0x2f60
movl -0x54(%rbp), %eax
movl %eax, -0x78(%rbp)
testl %eax, %eax
je 0x6eaf
jmp 0x6ea5
movl -0x78(%rbp), %eax
subl $0x5, %eax
je 0x6eb4
jmp 0x6f12
jmp 0x6d29
jmp 0x6eb6
leaq -0x68(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x8820
jmp 0x6ec5
movq -0x18(%rbp), %rdi
leaq -0x68(%rbp), %rsi
callq 0x50c0
jmp 0x6ed4
leaq -0x68(%rbp), %rdi
callq 0x2f60
movq -0x10(%rbp), %rax
movq (%rax), %rcx
addq $0x1, %rcx
movq %rcx, (%rax)
movl $0x0, -0x4(%rbp)
movl $0x1, -0x54(%rbp)
jmp 0x6f12
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x68(%rbp), %rdi
callq 0x2f60
jmp 0x6f27
leaq -0x30(%rbp), %rdi
callq 0x36c0
movl -0x4(%rbp), %eax
addq $0x80, %rsp
popq %rbp
retq
leaq -0x30(%rbp), %rdi
callq 0x36c0
movq -0x48(%rbp), %rdi
callq 0x2310
nopl (%rax)