// File: /workspace/github_c_makefile_star2_O3/qq-smart[P]qq_sh_server/core/qq_json.c
// Function: parse_object
static const char *parse_object(cJSON *item,const char *value)
{
	cJSON *child;
	if (*value!='{')	{ep=value;return 0;}	/* not an object! */
	
	item->type=cJSON_Object;
	value=skip(value+1);
	if (*value=='}') return value+1;	/* empty array. */
	
	item->child=child=cJSON_New_Item();
	if (!item->child) return 0;
	value=skip(parse_string(child,skip(value)));
	if (!value) return 0;
	child->string=child->valuestring;child->valuestring=0;
	if (*value!=':') {ep=value;return 0;}	/* fail! */
	value=skip(parse_value(child,skip(value+1)));	/* skip any spacing, get the value. */
	if (!value) return 0;
	
	while (*value==',')
	{
		cJSON *new_item;
		if (!(new_item=cJSON_New_Item()))	return 0; /* memory fail */
		child->next=new_item;new_item->prev=child;child=new_item;
		value=skip(parse_string(child,skip(value+1)));
		if (!value) return 0;
		child->string=child->valuestring;child->valuestring=0;
		if (*value!=':') {ep=value;return 0;}	/* fail! */
		value=skip(parse_value(child,skip(value+1)));	/* skip any spacing, get the value. */
		if (!value) return 0;
	}
	
	if (*value=='}') return value+1;	/* end of array */
	ep=value;return 0;	/* malformed. */
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
movq %rsi, %rbx
cmpb $0x7b, (%rsi)
jne 0x563d
movq %rdi, %r15
movl $0x6, 0x18(%rdi)
incq %rbx
movb (%rbx), %al
leal -0x1(%rax), %ecx
incq %rbx
cmpb $0x20, %cl
jb 0x54bf
cmpb $0x7d, %al
je 0x5646
movl $0x40, %edi
callq *0x9cd9(%rip)           # 0xf1b8
testq %rax, %rax
je 0x5652
movq %rax, %r14
addq $-0x2, %rbx
xorps %xmm0, %xmm0
movups %xmm0, 0x30(%rax)
movups %xmm0, 0x20(%rax)
movups %xmm0, 0x10(%rax)
movups %xmm0, (%rax)
movq %rax, 0x10(%r15)
movb 0x1(%rbx), %al
incq %rbx
decb %al
cmpb $0x20, %al
jb 0x5505
movq %r14, %rdi
movq %rbx, %rsi
callq 0x513c
testq %rax, %rax
je 0x5644
decq %rax
movb 0x1(%rax), %cl
incq %rax
decb %cl
cmpb $0x20, %cl
jb 0x5528
movq 0x20(%r14), %rcx
movq %rcx, 0x38(%r14)
movq $0x0, 0x20(%r14)
cmpb $0x3a, (%rax)
jne 0x565c
movb 0x1(%rax), %cl
incq %rax
decb %cl
cmpb $0x20, %cl
jb 0x554e
movq %r14, %rdi
movq %rax, %rsi
callq 0x40a8
testq %rax, %rax
je 0x5644
movq %rax, %r15
decq %r15
movb 0x1(%r15), %al
incq %r15
leal -0x1(%rax), %ecx
cmpb $0x20, %cl
jb 0x5575
xorl %ebx, %ebx
cmpb $0x2c, %al
jne 0x5665
movl $0x40, %edi
callq *0x9c1f(%rip)           # 0xf1b8
testq %rax, %rax
je 0x5646
movq %rax, %r12
xorps %xmm0, %xmm0
movups %xmm0, 0x30(%rax)
movups %xmm0, 0x20(%rax)
movups %xmm0, 0x10(%rax)
movups %xmm0, (%rax)
movq %rax, (%r14)
movq %r14, 0x8(%rax)
movb 0x1(%r15), %al
incq %r15
decb %al
cmpb $0x20, %al
jb 0x55be
movq %r12, %rdi
movq %r15, %rsi
callq 0x513c
testq %rax, %rax
je 0x5646
decq %rax
movb 0x1(%rax), %cl
incq %rax
decb %cl
cmpb $0x20, %cl
jb 0x55de
movq 0x20(%r12), %rcx
movq %rcx, 0x38(%r12)
movq $0x0, 0x20(%r12)
cmpb $0x3a, (%rax)
jne 0x565c
movb 0x1(%rax), %cl
incq %rax
decb %cl
cmpb $0x20, %cl
jb 0x5603
movq %r12, %rdi
movq %rax, %rsi
callq 0x40a8
testq %rax, %rax
je 0x5646
movq %rax, %r15
decq %r15
movb 0x1(%r15), %al
incq %r15
leal -0x1(%rax), %ecx
cmpb $0x20, %cl
jb 0x5626
movq %r12, %r14
jmp 0x5586
movq %rbx, 0x9cec(%rip)      # 0xf330
xorl %ebx, %ebx
movq %rbx, %rax
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movq $0x0, 0x10(%r15)
jmp 0x5644
movq %rax, 0x9ccd(%rip)      # 0xf330
jmp 0x5644
movzbl %al, %eax
cmpl $0x7d, %eax
jne 0x5675
incq %r15
movq %r15, %rbx
jmp 0x5646
movq %r15, 0x9cb4(%rip)      # 0xf330
jmp 0x5644