// File: Eba-M[P]E3DC-Control/cJSON.c
// Function: print_object(cJSON const*, printbuffer*)
static cJSON_bool print_object(const cJSON * const item, printbuffer * const output_buffer)
{
    unsigned char *output_pointer = NULL;
    size_t length = 0;
    cJSON *current_item = item->child;

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

    /* Compose the output: */
    length = (size_t) (output_buffer->format ? 2 : 1); /* fmt: {\n */
    output_pointer = ensure(output_buffer, length + 1);
    if (output_pointer == NULL)
    {
        return false;
    }

    *output_pointer++ = '{';
    output_buffer->depth++;
    if (output_buffer->format)
    {
        *output_pointer++ = '\n';
    }
    output_buffer->offset += length;

    while (current_item)
    {
        if (output_buffer->format)
        {
            size_t i;
            output_pointer = ensure(output_buffer, output_buffer->depth);
            if (output_pointer == NULL)
            {
                return false;
            }
            for (i = 0; i < output_buffer->depth; i++)
            {
                *output_pointer++ = '\t';
            }
            output_buffer->offset += output_buffer->depth;
        }

        /* print key */
        if (!print_string_ptr((unsigned char*)current_item->string, output_buffer))
        {
            return false;
        }
        update_offset(output_buffer);

        length = (size_t) (output_buffer->format ? 2 : 1);
        output_pointer = ensure(output_buffer, length);
        if (output_pointer == NULL)
        {
            return false;
        }
        *output_pointer++ = ':';
        if (output_buffer->format)
        {
            *output_pointer++ = '\t';
        }
        output_buffer->offset += length;

        /* print value */
        if (!print_value(current_item, output_buffer))
        {
            return false;
        }
        update_offset(output_buffer);

        /* print comma if not last */
        length = ((size_t)(output_buffer->format ? 1 : 0) + (size_t)(current_item->next ? 1 : 0));
        output_pointer = ensure(output_buffer, length + 1);
        if (output_pointer == NULL)
        {
            return false;
        }
        if (current_item->next)
        {
            *output_pointer++ = ',';
        }

        if (output_buffer->format)
        {
            *output_pointer++ = '\n';
        }
        *output_pointer = '\0';
        output_buffer->offset += length;

        current_item = current_item->next;
    }

    output_pointer = ensure(output_buffer, output_buffer->format ? (output_buffer->depth + 1) : 2);
    if (output_pointer == NULL)
    {
        return false;
    }
    if (output_buffer->format)
    {
        size_t i;
        for (i = 0; i < (output_buffer->depth - 1); i++)
        {
            *output_pointer++ = '\t';
        }
    }
    *output_pointer++ = '}';
    *output_pointer = '\0';
    output_buffer->depth--;

    return true;
}

// Assembly:
subq $0x58, %rsp
movq %rdi, 0x48(%rsp)
movq %rsi, 0x40(%rsp)
movq $0x0, 0x38(%rsp)
movq $0x0, 0x30(%rsp)
movq 0x48(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, 0x28(%rsp)
cmpq $0x0, 0x40(%rsp)
jne 0x5de53
movl $0x0, 0x54(%rsp)
jmp 0x5e22a
movq 0x40(%rsp), %rax
movl 0x24(%rax), %edx
movl $0x1, %eax
movl $0x2, %ecx
cmpl $0x0, %edx
cmovnel %ecx, %eax
cltq
movq %rax, 0x30(%rsp)
movq 0x40(%rsp), %rdi
movq 0x30(%rsp), %rsi
addq $0x1, %rsi
callq 0x5d750
movq %rax, 0x38(%rsp)
cmpq $0x0, 0x38(%rsp)
jne 0x5de9f
movl $0x0, 0x54(%rsp)
jmp 0x5e22a
movq 0x38(%rsp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, 0x38(%rsp)
movb $0x7b, (%rax)
movq 0x40(%rsp), %rax
movq 0x18(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x18(%rax)
movq 0x40(%rsp), %rax
cmpl $0x0, 0x24(%rax)
je 0x5dee3
movq 0x38(%rsp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, 0x38(%rsp)
movb $0xa, (%rax)
movq 0x30(%rsp), %rcx
movq 0x40(%rsp), %rax
addq 0x10(%rax), %rcx
movq %rcx, 0x10(%rax)
cmpq $0x0, 0x28(%rsp)
je 0x5e146
movq 0x40(%rsp), %rax
cmpl $0x0, 0x24(%rax)
je 0x5df90
movq 0x40(%rsp), %rdi
movq 0x40(%rsp), %rax
movq 0x18(%rax), %rsi
callq 0x5d750
movq %rax, 0x38(%rsp)
cmpq $0x0, 0x38(%rsp)
jne 0x5df3d
movl $0x0, 0x54(%rsp)
jmp 0x5e22a
movq $0x0, 0x20(%rsp)
movq 0x20(%rsp), %rax
movq 0x40(%rsp), %rcx
cmpq 0x18(%rcx), %rax
jae 0x5df7a
movq 0x38(%rsp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, 0x38(%rsp)
movb $0x9, (%rax)
movq 0x20(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x20(%rsp)
jmp 0x5df46
movq 0x40(%rsp), %rax
movq 0x18(%rax), %rcx
movq 0x40(%rsp), %rax
addq 0x10(%rax), %rcx
movq %rcx, 0x10(%rax)
movq 0x28(%rsp), %rax
movq 0x38(%rax), %rdi
movq 0x40(%rsp), %rsi
callq 0x5e240
cmpl $0x0, %eax
jne 0x5dfb5
movl $0x0, 0x54(%rsp)
jmp 0x5e22a
movq 0x40(%rsp), %rdi
callq 0x5c6f0
movq 0x40(%rsp), %rax
movl 0x24(%rax), %edx
movl $0x1, %eax
movl $0x2, %ecx
cmpl $0x0, %edx
cmovnel %ecx, %eax
cltq
movq %rax, 0x30(%rsp)
movq 0x40(%rsp), %rdi
movq 0x30(%rsp), %rsi
callq 0x5d750
movq %rax, 0x38(%rsp)
cmpq $0x0, 0x38(%rsp)
jne 0x5e007
movl $0x0, 0x54(%rsp)
jmp 0x5e22a
movq 0x38(%rsp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, 0x38(%rsp)
movb $0x3a, (%rax)
movq 0x40(%rsp), %rax
cmpl $0x0, 0x24(%rax)
je 0x5e03a
movq 0x38(%rsp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, 0x38(%rsp)
movb $0x9, (%rax)
movq 0x30(%rsp), %rcx
movq 0x40(%rsp), %rax
addq 0x10(%rax), %rcx
movq %rcx, 0x10(%rax)
movq 0x28(%rsp), %rdi
movq 0x40(%rsp), %rsi
callq 0x59d20
cmpl $0x0, %eax
jne 0x5e06d
movl $0x0, 0x54(%rsp)
jmp 0x5e22a
movq 0x40(%rsp), %rdi
callq 0x5c6f0
movq 0x40(%rsp), %rax
movl 0x24(%rax), %edx
xorl %eax, %eax
movl $0x1, %ecx
cmpl $0x0, %edx
cmovnel %ecx, %eax
cltq
movq 0x28(%rsp), %rcx
movq (%rcx), %rsi
xorl %ecx, %ecx
movl $0x1, %edx
cmpq $0x0, %rsi
cmovnel %edx, %ecx
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, 0x30(%rsp)
movq 0x40(%rsp), %rdi
movq 0x30(%rsp), %rsi
addq $0x1, %rsi
callq 0x5d750
movq %rax, 0x38(%rsp)
cmpq $0x0, 0x38(%rsp)
jne 0x5e0dc
movl $0x0, 0x54(%rsp)
jmp 0x5e22a
movq 0x28(%rsp), %rax
cmpq $0x0, (%rax)
je 0x5e0fb
movq 0x38(%rsp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, 0x38(%rsp)
movb $0x2c, (%rax)
movq 0x40(%rsp), %rax
cmpl $0x0, 0x24(%rax)
je 0x5e11a
movq 0x38(%rsp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, 0x38(%rsp)
movb $0xa, (%rax)
movq 0x38(%rsp), %rax
movb $0x0, (%rax)
movq 0x30(%rsp), %rcx
movq 0x40(%rsp), %rax
addq 0x10(%rax), %rcx
movq %rcx, 0x10(%rax)
movq 0x28(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x28(%rsp)
jmp 0x5def5
movq 0x40(%rsp), %rax
movq %rax, 0x10(%rsp)
movq 0x40(%rsp), %rax
cmpl $0x0, 0x24(%rax)
je 0x5e16f
movq 0x40(%rsp), %rax
movq 0x18(%rax), %rax
addq $0x1, %rax
movq %rax, 0x8(%rsp)
jmp 0x5e17b
movl $0x2, %eax
movq %rax, 0x8(%rsp)
jmp 0x5e17b
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rsi
callq 0x5d750
movq %rax, 0x38(%rsp)
cmpq $0x0, 0x38(%rsp)
jne 0x5e1a4
movl $0x0, 0x54(%rsp)
jmp 0x5e22a
movq 0x40(%rsp), %rax
cmpl $0x0, 0x24(%rax)
je 0x5e1f5
movq $0x0, 0x18(%rsp)
movq 0x18(%rsp), %rax
movq 0x40(%rsp), %rcx
movq 0x18(%rcx), %rcx
subq $0x1, %rcx
cmpq %rcx, %rax
jae 0x5e1f3
movq 0x38(%rsp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, 0x38(%rsp)
movb $0x9, (%rax)
movq 0x18(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x18(%rsp)
jmp 0x5e1b8
jmp 0x5e1f5
movq 0x38(%rsp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, 0x38(%rsp)
movb $0x7d, (%rax)
movq 0x38(%rsp), %rax
movb $0x0, (%rax)
movq 0x40(%rsp), %rax
movq 0x18(%rax), %rcx
addq $-0x1, %rcx
movq %rcx, 0x18(%rax)
movl $0x1, 0x54(%rsp)
movl 0x54(%rsp), %eax
addq $0x58, %rsp
retq
nopw %cs:(%rax,%rax)