// File: /workspace/github_cpp_makefile_star2_O3/fgheng[P]keysound/src/cJSON.cc
// Function: parse_object(cJSON*, char const*)
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 %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movq %rsi, %rbx
cmpb $0x7b, (%rsi)
jne 0xb1d9
movq %rdi, %r15
movl $0x6, 0x18(%rdi)
incq %rbx
movb (%rbx), %al
leal -0x1(%rax), %ecx
incq %rbx
cmpb $0x20, %cl
jb 0xb05b
cmpb $0x7d, %al
je 0xb1e2
movl $0x40, %edi
callq *0x82c5(%rip)           # 0x13340
testq %rax, %rax
je 0xb1f1
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 0xb0a1
movq %r14, %rdi
movq %rbx, %rsi
callq 0xace8
testq %rax, %rax
je 0xb1e0
decq %rax
movb 0x1(%rax), %cl
incq %rax
decb %cl
cmpb $0x20, %cl
jb 0xb0c4
movq 0x20(%r14), %rcx
movq %rcx, 0x38(%r14)
movq $0x0, 0x20(%r14)
cmpb $0x3a, (%rax)
jne 0xb1fb
movb 0x1(%rax), %cl
incq %rax
decb %cl
cmpb $0x20, %cl
jb 0xb0ea
movq %r14, %rdi
movq %rax, %rsi
callq 0x9d57
testq %rax, %rax
je 0xb1e0
movq %rax, %r15
decq %r15
movb 0x1(%r15), %al
incq %r15
leal -0x1(%rax), %ecx
cmpb $0x20, %cl
jb 0xb111
xorl %ebx, %ebx
cmpb $0x2c, %al
jne 0xb204
movl $0x40, %edi
callq *0x820b(%rip)           # 0x13340
testq %rax, %rax
je 0xb1e2
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 0xb15a
movq %r12, %rdi
movq %r15, %rsi
callq 0xace8
testq %rax, %rax
je 0xb1e2
decq %rax
movb 0x1(%rax), %cl
incq %rax
decb %cl
cmpb $0x20, %cl
jb 0xb17a
movq 0x20(%r12), %rcx
movq %rcx, 0x38(%r12)
movq $0x0, 0x20(%r12)
cmpb $0x3a, (%rax)
jne 0xb1fb
movb 0x1(%rax), %cl
incq %rax
decb %cl
cmpb $0x20, %cl
jb 0xb19f
movq %r12, %rdi
movq %rax, %rsi
callq 0x9d57
testq %rax, %rax
je 0xb1e2
movq %rax, %r15
decq %r15
movb 0x1(%r15), %al
incq %r15
leal -0x1(%rax), %ecx
cmpb $0x20, %cl
jb 0xb1c2
movq %r12, %r14
jmp 0xb122
movq %rbx, 0xaa20(%rip)      # 0x15c00
xorl %ebx, %ebx
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
movq $0x0, 0x10(%r15)
jmp 0xb1e0
movq %rax, 0xa9fe(%rip)      # 0x15c00
jmp 0xb1e0
movzbl %al, %eax
cmpl $0x7d, %eax
jne 0xb214
incq %r15
movq %r15, %rbx
jmp 0xb1e2
movq %r15, 0xa9e5(%rip)      # 0x15c00
jmp 0xb1e0