// File: 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 %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x18(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x7b, %eax
je 0x10864
movq -0x18(%rbp), %rax
movq %rax, 0x11411(%rip)     # 0x21c68
movq $0x0, -0x8(%rbp)
jmp 0x10ac2
movq -0x10(%rbp), %rax
movl $0x6, 0x18(%rax)
movq -0x18(%rbp), %rdi
addq $0x1, %rdi
callq 0xea40
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x7d, %eax
jne 0x1089d
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x8(%rbp)
jmp 0x10ac2
callq 0xe870
movq %rax, %rcx
movq %rcx, -0x20(%rbp)
movq -0x10(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x10(%rbp), %rax
cmpq $0x0, 0x10(%rax)
jne 0x108c9
movq $0x0, -0x8(%rbp)
jmp 0x10ac2
movq -0x20(%rbp), %rax
movq %rax, -0x30(%rbp)
movq -0x18(%rbp), %rdi
callq 0xea40
movq -0x30(%rbp), %rdi
movq %rax, %rsi
callq 0xff80
movq %rax, %rdi
callq 0xea40
movq %rax, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
jne 0x10906
movq $0x0, -0x8(%rbp)
jmp 0x10ac2
movq -0x20(%rbp), %rax
movq 0x20(%rax), %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x38(%rax)
movq -0x20(%rbp), %rax
movq $0x0, 0x20(%rax)
movq -0x18(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x3a, %eax
je 0x10946
movq -0x18(%rbp), %rax
movq %rax, 0x1132f(%rip)     # 0x21c68
movq $0x0, -0x8(%rbp)
jmp 0x10ac2
movq -0x20(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x18(%rbp), %rdi
addq $0x1, %rdi
callq 0xea40
movq -0x38(%rbp), %rdi
movq %rax, %rsi
callq 0xe8b0
movq %rax, %rdi
callq 0xea40
movq %rax, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
jne 0x10987
movq $0x0, -0x8(%rbp)
jmp 0x10ac2
jmp 0x10989
movq -0x18(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x2c, %eax
jne 0x10a95
callq 0xe870
movq %rax, -0x28(%rbp)
cmpq $0x0, %rax
jne 0x109b5
movq $0x0, -0x8(%rbp)
jmp 0x10ac2
movq -0x28(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, (%rax)
movq -0x20(%rbp), %rcx
movq -0x28(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x28(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x18(%rbp), %rdi
addq $0x1, %rdi
callq 0xea40
movq -0x40(%rbp), %rdi
movq %rax, %rsi
callq 0xff80
movq %rax, %rdi
callq 0xea40
movq %rax, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
jne 0x10a15
movq $0x0, -0x8(%rbp)
jmp 0x10ac2
movq -0x20(%rbp), %rax
movq 0x20(%rax), %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x38(%rax)
movq -0x20(%rbp), %rax
movq $0x0, 0x20(%rax)
movq -0x18(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x3a, %eax
je 0x10a52
movq -0x18(%rbp), %rax
movq %rax, 0x11220(%rip)     # 0x21c68
movq $0x0, -0x8(%rbp)
jmp 0x10ac2
movq -0x20(%rbp), %rax
movq %rax, -0x48(%rbp)
movq -0x18(%rbp), %rdi
addq $0x1, %rdi
callq 0xea40
movq -0x48(%rbp), %rdi
movq %rax, %rsi
callq 0xe8b0
movq %rax, %rdi
callq 0xea40
movq %rax, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
jne 0x10a90
movq $0x0, -0x8(%rbp)
jmp 0x10ac2
jmp 0x10989
movq -0x18(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x7d, %eax
jne 0x10aaf
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x8(%rbp)
jmp 0x10ac2
movq -0x18(%rbp), %rax
movq %rax, 0x111ae(%rip)     # 0x21c68
movq $0x0, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x50, %rsp
popq %rbp
retq
nopl (%rax)