// File: fgheng[P]keysound/src/cJSON.cc
// Function: print_value(cJSON*, int, int, printbuffer*)
static char *print_value(cJSON *item,int depth,int fmt,printbuffer *p)
{
	char *out=0;
	if (!item) return 0;
	if (p)
	{
		switch ((item->type)&255)
		{
			case cJSON_NULL:	{out=ensure(p,5);	if (out) strcpy(out,"null");	break;}
			case cJSON_False:	{out=ensure(p,6);	if (out) strcpy(out,"false");	break;}
			case cJSON_True:	{out=ensure(p,5);	if (out) strcpy(out,"true");	break;}
			case cJSON_Number:	out=print_number(item,p);break;
			case cJSON_String:	out=print_string(item,p);break;
			case cJSON_Array:	out=print_array(item,depth,fmt,p);break;
			case cJSON_Object:	out=print_object(item,depth,fmt,p);break;
		}
	}
	else
	{
		switch ((item->type)&255)
		{
			case cJSON_NULL:	out=cJSON_strdup("null");	break;
			case cJSON_False:	out=cJSON_strdup("false");break;
			case cJSON_True:	out=cJSON_strdup("true"); break;
			case cJSON_Number:	out=print_number(item,0);break;
			case cJSON_String:	out=print_string(item,0);break;
			case cJSON_Array:	out=print_array(item,depth,fmt,0);break;
			case cJSON_Object:	out=print_object(item,depth,fmt,0);break;
		}
	}
	return out;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
movl %edx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq $0x0, -0x28(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0xeb22
movq $0x0, -0x8(%rbp)
jmp 0xecfb
cmpq $0x0, -0x20(%rbp)
je 0xec3a
movq -0x10(%rbp), %rax
movzbl 0x18(%rax), %eax
movl %eax, %ecx
movq %rcx, -0x30(%rbp)
subl $0x6, %eax
ja 0xec35
movq -0x30(%rbp), %rax
leaq 0x7d8d(%rip), %rcx      # 0x168dc
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x20(%rbp), %rdi
movl $0x5, %esi
callq 0x10d80
movq %rax, -0x28(%rbp)
cmpq $0x0, -0x28(%rbp)
je 0xeb81
movq -0x28(%rbp), %rdi
leaq 0x7e44(%rip), %rsi      # 0x169c0
callq 0x4340
jmp 0xec35
movq -0x20(%rbp), %rdi
movl $0x6, %esi
callq 0x10d80
movq %rax, -0x28(%rbp)
cmpq $0x0, -0x28(%rbp)
je 0xebaf
movq -0x28(%rbp), %rdi
leaq 0x7e1b(%rip), %rsi      # 0x169c5
callq 0x4340
jmp 0xec35
movq -0x20(%rbp), %rdi
movl $0x5, %esi
callq 0x10d80
movq %rax, -0x28(%rbp)
cmpq $0x0, -0x28(%rbp)
je 0xebdd
movq -0x28(%rbp), %rdi
leaq 0x7df3(%rip), %rsi      # 0x169cb
callq 0x4340
jmp 0xec35
movq -0x10(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0x10ea0
movq %rax, -0x28(%rbp)
jmp 0xec35
movq -0x10(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0x110d0
movq %rax, -0x28(%rbp)
jmp 0xec35
movq -0x10(%rbp), %rdi
movl -0x14(%rbp), %esi
movl -0x18(%rbp), %edx
movq -0x20(%rbp), %rcx
callq 0x11100
movq %rax, -0x28(%rbp)
jmp 0xec35
movq -0x10(%rbp), %rdi
movl -0x14(%rbp), %esi
movl -0x18(%rbp), %edx
movq -0x20(%rbp), %rcx
callq 0x115d0
movq %rax, -0x28(%rbp)
jmp 0xecf3
movq -0x10(%rbp), %rax
movzbl 0x18(%rax), %eax
movl %eax, %ecx
movq %rcx, -0x38(%rbp)
subl $0x6, %eax
ja 0xecf1
movq -0x38(%rbp), %rax
leaq 0x7c64(%rip), %rcx      # 0x168c0
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x7d54(%rip), %rdi      # 0x169c0
callq 0xf080
movq %rax, -0x28(%rbp)
jmp 0xecf1
leaq 0x7d47(%rip), %rdi      # 0x169c5
callq 0xf080
movq %rax, -0x28(%rbp)
jmp 0xecf1
leaq 0x7d3b(%rip), %rdi      # 0x169cb
callq 0xf080
movq %rax, -0x28(%rbp)
jmp 0xecf1
movq -0x10(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x10ea0
movq %rax, -0x28(%rbp)
jmp 0xecf1
movq -0x10(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x110d0
movq %rax, -0x28(%rbp)
jmp 0xecf1
movq -0x10(%rbp), %rdi
movl -0x14(%rbp), %esi
movl -0x18(%rbp), %edx
xorl %eax, %eax
movl %eax, %ecx
callq 0x11100
movq %rax, -0x28(%rbp)
jmp 0xecf1
movq -0x10(%rbp), %rdi
movl -0x14(%rbp), %esi
movl -0x18(%rbp), %edx
xorl %eax, %eax
movl %eax, %ecx
callq 0x115d0
movq %rax, -0x28(%rbp)
jmp 0xecf3
movq -0x28(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x40, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)