// File: /workspace/github_c_makefile_star2_O0/tomcatzh[P]RealityBenchmark/external/cJSON.c
// Function: parse_value
static cJSON_bool parse_value(cJSON * const item, parse_buffer * const input_buffer)
{
    if ((input_buffer == NULL) || (input_buffer->content == NULL))
    {
        return false; /* no input */
    }

    /* parse the different types of values */
    /* null */
    if (can_read(input_buffer, 4) && (strncmp((const char*)buffer_at_offset(input_buffer), "null", 4) == 0))
    {
        item->type = cJSON_NULL;
        input_buffer->offset += 4;
        return true;
    }
    /* false */
    if (can_read(input_buffer, 5) && (strncmp((const char*)buffer_at_offset(input_buffer), "false", 5) == 0))
    {
        item->type = cJSON_False;
        input_buffer->offset += 5;
        return true;
    }
    /* true */
    if (can_read(input_buffer, 4) && (strncmp((const char*)buffer_at_offset(input_buffer), "true", 4) == 0))
    {
        item->type = cJSON_True;
        item->valueint = 1;
        input_buffer->offset += 4;
        return true;
    }
    /* string */
    if (can_access_at_index(input_buffer, 0) && (buffer_at_offset(input_buffer)[0] == '\"'))
    {
        return parse_string(item, input_buffer);
    }
    /* number */
    if (can_access_at_index(input_buffer, 0) && ((buffer_at_offset(input_buffer)[0] == '-') || ((buffer_at_offset(input_buffer)[0] >= '0') && (buffer_at_offset(input_buffer)[0] <= '9'))))
    {
        return parse_number(item, input_buffer);
    }
    /* array */
    if (can_access_at_index(input_buffer, 0) && (buffer_at_offset(input_buffer)[0] == '['))
    {
        return parse_array(item, input_buffer);
    }
    /* object */
    if (can_access_at_index(input_buffer, 0) && (buffer_at_offset(input_buffer)[0] == '{'))
    {
        return parse_object(item, input_buffer);
    }

    return false;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
je 0x6b41
movq -0x18(%rbp), %rax
cmpq $0x0, (%rax)
jne 0x6b4d
movl $0x0, -0x4(%rbp)
jmp 0x6dec
cmpq $0x0, -0x18(%rbp)
je 0x6bb6
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rax
addq $0x4, %rax
movq -0x18(%rbp), %rcx
cmpq 0x8(%rcx), %rax
ja 0x6bb6
movq -0x18(%rbp), %rax
movq (%rax), %rdi
movq -0x18(%rbp), %rax
addq 0x10(%rax), %rdi
leaq 0x6085(%rip), %rsi      # 0xcc05
movl $0x4, %edx
callq 0x2100
cmpl $0x0, %eax
jne 0x6bb6
movq -0x10(%rbp), %rax
movl $0x4, 0x18(%rax)
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rcx
addq $0x4, %rcx
movq %rcx, 0x10(%rax)
movl $0x1, -0x4(%rbp)
jmp 0x6dec
cmpq $0x0, -0x18(%rbp)
je 0x6c1f
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rax
addq $0x5, %rax
movq -0x18(%rbp), %rcx
cmpq 0x8(%rcx), %rax
ja 0x6c1f
movq -0x18(%rbp), %rax
movq (%rax), %rdi
movq -0x18(%rbp), %rax
addq 0x10(%rax), %rdi
leaq 0x6021(%rip), %rsi      # 0xcc0a
movl $0x5, %edx
callq 0x2100
cmpl $0x0, %eax
jne 0x6c1f
movq -0x10(%rbp), %rax
movl $0x1, 0x18(%rax)
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rcx
addq $0x5, %rcx
movq %rcx, 0x10(%rax)
movl $0x1, -0x4(%rbp)
jmp 0x6dec
cmpq $0x0, -0x18(%rbp)
je 0x6c93
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rax
addq $0x4, %rax
movq -0x18(%rbp), %rcx
cmpq 0x8(%rcx), %rax
ja 0x6c93
movq -0x18(%rbp), %rax
movq (%rax), %rdi
movq -0x18(%rbp), %rax
addq 0x10(%rax), %rdi
leaq 0x5fbe(%rip), %rsi      # 0xcc10
movl $0x4, %edx
callq 0x2100
cmpl $0x0, %eax
jne 0x6c93
movq -0x10(%rbp), %rax
movl $0x2, 0x18(%rax)
movq -0x10(%rbp), %rax
movl $0x1, 0x28(%rax)
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rcx
addq $0x4, %rcx
movq %rcx, 0x10(%rax)
movl $0x1, -0x4(%rbp)
jmp 0x6dec
cmpq $0x0, -0x18(%rbp)
je 0x6cdd
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rax
addq $0x0, %rax
movq -0x18(%rbp), %rcx
cmpq 0x8(%rcx), %rax
jae 0x6cdd
movq -0x18(%rbp), %rax
movq (%rax), %rax
movq -0x18(%rbp), %rcx
movq 0x10(%rcx), %rcx
movzbl (%rax,%rcx), %eax
cmpl $0x22, %eax
jne 0x6cdd
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x9890
movl %eax, -0x4(%rbp)
jmp 0x6dec
cmpq $0x0, -0x18(%rbp)
je 0x6d57
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rax
addq $0x0, %rax
movq -0x18(%rbp), %rcx
cmpq 0x8(%rcx), %rax
jae 0x6d57
movq -0x18(%rbp), %rax
movq (%rax), %rax
movq -0x18(%rbp), %rcx
movq 0x10(%rcx), %rcx
movzbl (%rax,%rcx), %eax
cmpl $0x2d, %eax
je 0x6d42
movq -0x18(%rbp), %rax
movq (%rax), %rax
movq -0x18(%rbp), %rcx
movq 0x10(%rcx), %rcx
movzbl (%rax,%rcx), %eax
cmpl $0x30, %eax
jl 0x6d57
movq -0x18(%rbp), %rax
movq (%rax), %rax
movq -0x18(%rbp), %rcx
movq 0x10(%rcx), %rcx
movzbl (%rax,%rcx), %eax
cmpl $0x39, %eax
jg 0x6d57
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x9be0
movl %eax, -0x4(%rbp)
jmp 0x6dec
cmpq $0x0, -0x18(%rbp)
je 0x6d9e
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rax
addq $0x0, %rax
movq -0x18(%rbp), %rcx
cmpq 0x8(%rcx), %rax
jae 0x6d9e
movq -0x18(%rbp), %rax
movq (%rax), %rax
movq -0x18(%rbp), %rcx
movq 0x10(%rcx), %rcx
movzbl (%rax,%rcx), %eax
cmpl $0x5b, %eax
jne 0x6d9e
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x9e00
movl %eax, -0x4(%rbp)
jmp 0x6dec
cmpq $0x0, -0x18(%rbp)
je 0x6de5
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rax
addq $0x0, %rax
movq -0x18(%rbp), %rcx
cmpq 0x8(%rcx), %rax
jae 0x6de5
movq -0x18(%rbp), %rax
movq (%rax), %rax
movq -0x18(%rbp), %rcx
movq 0x10(%rcx), %rcx
movzbl (%rax,%rcx), %eax
cmpl $0x7b, %eax
jne 0x6de5
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0xa070
movl %eax, -0x4(%rbp)
jmp 0x6dec
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)