// File: /workspace/github_c_makefile_star2_O2/xapi-project[P]rrd-client-lib/parson/parson.c
// Function: parse_value
static JSON_Value * parse_value(const char **string, size_t nesting) {
    if (nesting > MAX_NESTING) {
        return NULL;
    }
    SKIP_WHITESPACES(string);
    switch (**string) {
        case '{':
            return parse_object_value(string, nesting + 1);
        case '[':
            return parse_array_value(string, nesting + 1);
        case '\"':
            return parse_string_value(string);
        case 'f': case 't':
            return parse_boolean_value(string);
        case '-':
        case '0': case '1': case '2': case '3': case '4':
        case '5': case '6': case '7': case '8': case '9':
            return parse_number_value(string);
        case 'n':
            return parse_null_value(string);
        default:
            return NULL;
    }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
cmpq $0x800, %rsi            # imm = 0x800
ja 0x2085
movq %rsi, %r12
movq %rdi, %rbx
callq 0x12c0
movq %rax, %r15
movq (%rbx), %r13
movq (%r15), %rcx
movsbq (%r13), %rax
testb $0x20, 0x1(%rcx,%rax,2)
je 0x205c
incq %r13
movq %r13, (%rbx)
jmp 0x2045
movzbl %al, %eax
leal -0x30(%rax), %ecx
cmpl $0xa, %ecx
jae 0x209a
callq 0x1050
movq %rax, %r14
andl $0x0, (%rax)
leaq 0x10(%rsp), %rsi
movq %r13, %rdi
callq 0x10c0
cmpl $0x0, (%r14)
je 0x20e9
xorl %r14d, %r14d
movq %r14, %rax
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
cmpl $0x22, %eax
je 0x21df
cmpl $0x2d, %eax
je 0x2067
cmpl $0x5b, %eax
je 0x2215
cmpl $0x66, %eax
je 0x2112
cmpl $0x6e, %eax
je 0x21ab
cmpl $0x74, %eax
je 0x2112
cmpl $0x7b, %eax
jne 0x2085
callq 0x2a87
testq %rax, %rax
je 0x2085
movq %rax, %r14
cmpl $0x4, 0x8(%rax)
jne 0x2269
movq 0x10(%r14), %rcx
jmp 0x226b
movq (%rbx), %rcx
movq 0x10(%rsp), %rax
movq %rax, %rdx
subq %rcx, %rdx
cmpq $0x2, %rdx
jb 0x217b
movb (%rcx), %sil
cmpb $0x30, %sil
jne 0x2156
cmpb $0x2e, 0x1(%rcx)
jne 0x2085
jmp 0x217b
leaq 0x31b3(%rip), %rdi      # 0x52cc
pushq $0x4
popq %r15
movq %r13, %rsi
movq %r15, %rdx
callq 0x1080
testl %eax, %eax
je 0x2249
leaq 0x319a(%rip), %rdi      # 0x52d1
pushq $0x5
popq %r15
movq %r13, %rsi
movq %r15, %rdx
callq 0x1080
xorl %r14d, %r14d
testl %eax, %eax
jne 0x2088
jmp 0x224d
cmpq $0x2, %rdx
sete %dil
cmpb $0x2d, %sil
setne %sil
orb %dil, %sil
jne 0x217b
cmpb $0x30, 0x1(%rcx)
jne 0x217b
cmpb $0x2e, 0x2(%rcx)
jne 0x2085
movq %rdx, %rsi
subq $0x1, %rsi
jb 0x2239
movzbl -0x1(%rcx,%rdx), %edi
testl %edi, %edi
je 0x2085
cmpl $0x58, %edi
je 0x2085
movq %rsi, %rdx
cmpl $0x78, %edi
jne 0x217e
jmp 0x2085
leaq 0x3301(%rip), %rdi      # 0x54b3
pushq $0x4
popq %rdx
movq %r13, %rsi
callq 0x1080
testl %eax, %eax
jne 0x2085
addq $0x4, %r13
movq %r13, (%rbx)
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x2de4
movq %rbx, %rdi
callq 0x449e
testq %rax, %rax
je 0x2085
movq %rax, %rbx
movq %rax, %rdi
callq 0x2d6e
movq %rax, %r14
testq %rax, %rax
jne 0x2088
movq %rbx, %rdi
callq *0x6f68(%rip)           # 0x9178
jmp 0x2085
callq 0x2adb
testq %rax, %rax
je 0x2085
movq %rax, %r14
cmpl $0x5, 0x8(%rax)
jne 0x2366
movq 0x10(%r14), %r13
jmp 0x2369
movq %rax, (%rbx)
callq 0x2d91
movq %rax, %r14
jmp 0x2088
pushq $0x1
popq %r14
addq %r15, %r13
movq %r13, (%rbx)
movl %r14d, %edi
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x2dbc
xorl %ecx, %ecx
movq (%rbx), %rax
cmpb $0x7b, (%rax)
jne 0x2085
movq %rcx, 0x8(%rsp)
incq %r12
incq %rax
movq %rax, (%rbx)
movq (%r15), %rcx
movsbq (%rax), %rdx
incq %rax
testb $0x20, 0x1(%rcx,%rdx,2)
jne 0x2282
cmpb $0x7d, %dl
je 0x2394
decq %rax
testb %dl, %dl
je 0x2448
movq %rbx, %rdi
callq 0x449e
testq %rax, %rax
je 0x24a6
movq %rax, %rbp
movq (%rbx), %rax
incq %rax
movq (%r15), %rdx
movsbq -0x1(%rax), %rcx
testb $0x20, 0x1(%rdx,%rcx,2)
je 0x22d8
movq %rax, (%rbx)
jmp 0x22c1
cmpb $0x3a, %cl
jne 0x2406
movq %rax, (%rbx)
movq %rbx, %rdi
movq %r12, %rsi
callq 0x201d
testq %rax, %rax
je 0x2406
movq %rax, %r13
movq 0x8(%rsp), %rdi
movq %rbp, %rsi
movq %rax, %rdx
callq 0x3025
movl %eax, 0x4(%rsp)
movq %rbp, %rdi
callq *0x6e60(%rip)           # 0x9178
cmpl $-0x1, 0x4(%rsp)
je 0x247c
movq (%rbx), %rdx
leaq 0x1(%rdx), %rax
movq (%r15), %rcx
movsbq (%rdx), %rsi
testb $0x20, 0x1(%rcx,%rsi,2)
je 0x2343
incq %rdx
movq %rdx, (%rbx)
incq %rax
jmp 0x232a
cmpb $0x2c, %sil
jne 0x2458
movq %rax, (%rbx)
movq (%r15), %rcx
movsbq (%rax), %rdx
incq %rax
testb $0x20, 0x1(%rcx,%rdx,2)
jne 0x234d
jmp 0x229f
xorl %r13d, %r13d
movq (%rbx), %rax
cmpb $0x5b, (%rax)
jne 0x2085
incq %r12
incq %rax
movq %rax, (%rbx)
movq (%r15), %rcx
movsbq (%rax), %rdx
incq %rax
testb $0x20, 0x1(%rcx,%rdx,2)
jne 0x237b
cmpb $0x5d, %dl
jne 0x239c
movq %rax, (%rbx)
jmp 0x2088
decq %rax
testb %dl, %dl
je 0x2414
movq %rbx, %rdi
movq %r12, %rsi
callq 0x201d
testq %rax, %rax
je 0x24a6
movq %rax, %rbp
movq %r13, %rdi
movq %rax, %rsi
callq 0x2fc5
cmpl $-0x1, %eax
je 0x2443
movq (%rbx), %rdx
leaq 0x1(%rdx), %rax
movq (%r15), %rcx
movsbq (%rdx), %rsi
testb $0x20, 0x1(%rcx,%rsi,2)
je 0x23ea
incq %rdx
movq %rdx, (%rbx)
incq %rax
jmp 0x23d1
cmpb $0x2c, %sil
jne 0x2424
movq %rax, (%rbx)
movq (%r15), %rcx
movsbq (%rax), %rdx
incq %rax
testb $0x20, 0x1(%rcx,%rdx,2)
jne 0x23f0
jmp 0x239c
movq %rbp, %rdi
callq *0x6d69(%rip)           # 0x9178
jmp 0x24a6
xorl %esi, %esi
movq %rax, %rdx
jmp 0x2424
movq %rdx, (%rbx)
movq (%r15), %rcx
movb (%rdx), %sil
incq %rdx
movsbq %sil, %rax
testb $0x20, 0x1(%rcx,%rax,2)
jne 0x241b
cmpb $0x5d, %sil
jne 0x24a6
testq %r13, %r13
je 0x2486
movq 0x10(%r13), %rsi
jmp 0x2488
movq %rbp, %rdi
jmp 0x247f
xorl %esi, %esi
movq %rax, %rdx
jmp 0x2458
movq %rdx, (%rbx)
movq (%r15), %rcx
movb (%rdx), %sil
incq %rdx
movsbq %sil, %rax
testb $0x20, 0x1(%rcx,%rax,2)
jne 0x244f
cmpb $0x7d, %sil
jne 0x24a6
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x2492
movq 0x18(%rdi), %rsi
jmp 0x2494
movq %r13, %rdi
callq 0x29e6
jmp 0x24a6
xorl %esi, %esi
movq %r13, %rdi
callq 0x4944
jmp 0x2499
xorl %esi, %esi
callq 0x477b
cmpl $-0x1, %eax
je 0x24a6
incq (%rbx)
jmp 0x2088
movq %r14, %rdi
callq 0x29e6
jmp 0x2085