// File: /workspace/github_c_makefile_star2_O0/tomcatzh[P]RealityBenchmark/external/cJSON.c
// Function: print_value
static cJSON_bool print_value(const cJSON * const item, printbuffer * const output_buffer)
{
    unsigned char *output = NULL;

    if ((item == NULL) || (output_buffer == NULL))
    {
        return false;
    }

    switch ((item->type) & 0xFF)
    {
        case cJSON_NULL:
            output = ensure(output_buffer, 5);
            if (output == NULL)
            {
                return false;
            }
            strcpy((char*)output, "null");
            return true;

        case cJSON_False:
            output = ensure(output_buffer, 6);
            if (output == NULL)
            {
                return false;
            }
            strcpy((char*)output, "false");
            return true;

        case cJSON_True:
            output = ensure(output_buffer, 5);
            if (output == NULL)
            {
                return false;
            }
            strcpy((char*)output, "true");
            return true;

        case cJSON_Number:
            return print_number(item, output_buffer);

        case cJSON_Raw:
        {
            size_t raw_length = 0;
            if (item->valuestring == NULL)
            {
                return false;
            }

            raw_length = strlen(item->valuestring) + sizeof("");
            output = ensure(output_buffer, raw_length);
            if (output == NULL)
            {
                return false;
            }
            memcpy(output, item->valuestring, raw_length);
            return true;
        }

        case cJSON_String:
            return print_string(item, output_buffer);

        case cJSON_Array:
            return print_array(item, output_buffer);

        case cJSON_Object:
            return print_object(item, output_buffer);

        default:
            return false;
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq $0x0, -0x20(%rbp)
cmpq $0x0, -0x10(%rbp)
je 0x7286
cmpq $0x0, -0x18(%rbp)
jne 0x7292
movl $0x0, -0x4(%rbp)
jmp 0x7493
movq -0x10(%rbp), %rax
movzbl 0x18(%rax), %eax
movl %eax, -0x2c(%rbp)
subl $0x1, %eax
je 0x734c
jmp 0x72a8
movl -0x2c(%rbp), %eax
subl $0x2, %eax
je 0x738d
jmp 0x72b6
movl -0x2c(%rbp), %eax
subl $0x4, %eax
je 0x730b
jmp 0x72c0
movl -0x2c(%rbp), %eax
subl $0x8, %eax
je 0x73ce
jmp 0x72ce
movl -0x2c(%rbp), %eax
subl $0x10, %eax
je 0x7456
jmp 0x72dc
movl -0x2c(%rbp), %eax
subl $0x20, %eax
je 0x7468
jmp 0x72ea
movl -0x2c(%rbp), %eax
subl $0x40, %eax
je 0x747a
jmp 0x72f8
movl -0x2c(%rbp), %eax
subl $0x80, %eax
je 0x73e3
jmp 0x748c
movq -0x18(%rbp), %rdi
movl $0x5, %esi
callq 0xa700
movq %rax, -0x20(%rbp)
cmpq $0x0, -0x20(%rbp)
jne 0x7330
movl $0x0, -0x4(%rbp)
jmp 0x7493
movq -0x20(%rbp), %rdi
leaq 0x58ca(%rip), %rsi      # 0xcc05
callq 0x2220
movl $0x1, -0x4(%rbp)
jmp 0x7493
movq -0x18(%rbp), %rdi
movl $0x6, %esi
callq 0xa700
movq %rax, -0x20(%rbp)
cmpq $0x0, -0x20(%rbp)
jne 0x7371
movl $0x0, -0x4(%rbp)
jmp 0x7493
movq -0x20(%rbp), %rdi
leaq 0x588e(%rip), %rsi      # 0xcc0a
callq 0x2220
movl $0x1, -0x4(%rbp)
jmp 0x7493
movq -0x18(%rbp), %rdi
movl $0x5, %esi
callq 0xa700
movq %rax, -0x20(%rbp)
cmpq $0x0, -0x20(%rbp)
jne 0x73b2
movl $0x0, -0x4(%rbp)
jmp 0x7493
movq -0x20(%rbp), %rdi
leaq 0x5853(%rip), %rsi      # 0xcc10
callq 0x2220
movl $0x1, -0x4(%rbp)
jmp 0x7493
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0xa920
movl %eax, -0x4(%rbp)
jmp 0x7493
movq $0x0, -0x28(%rbp)
movq -0x10(%rbp), %rax
cmpq $0x0, 0x20(%rax)
jne 0x7402
movl $0x0, -0x4(%rbp)
jmp 0x7493
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rdi
callq 0x20e0
addq $0x1, %rax
movq %rax, -0x28(%rbp)
movq -0x18(%rbp), %rdi
movq -0x28(%rbp), %rsi
callq 0xa700
movq %rax, -0x20(%rbp)
cmpq $0x0, -0x20(%rbp)
jne 0x7438
movl $0x0, -0x4(%rbp)
jmp 0x7493
movq -0x20(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rsi
movq -0x28(%rbp), %rdx
callq 0x21f0
movl $0x1, -0x4(%rbp)
jmp 0x7493
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0xaac0
movl %eax, -0x4(%rbp)
jmp 0x7493
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0xaaf0
movl %eax, -0x4(%rbp)
jmp 0x7493
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0xacb0
movl %eax, -0x4(%rbp)
jmp 0x7493
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax)