// File: /workspace/github_c_makefile_star2_O0/ccxvii[P]mujs/./json.c
// Function: jsonrevive
static void jsonrevive(js_State *J, const char *name)
{
	const char *key;
	char buf[32];

	/* revive is in 2 */
	/* holder is in -1 */

	js_getproperty(J, -1, name); /* get value from holder */

	if (js_isobject(J, -1)) {
		if (js_isarray(J, -1)) {
			int i = 0;
			int n = js_getlength(J, -1);
			for (i = 0; i < n; ++i) {
				jsonrevive(J, js_itoa(buf, i));
				if (js_isundefined(J, -1)) {
					js_pop(J, 1);
					js_delproperty(J, -1, buf);
				} else {
					js_setproperty(J, -2, buf);
				}
			}
		} else {
			js_pushiterator(J, -1, 1);
			while ((key = js_nextiterator(J, -1))) {
				js_rot2(J);
				jsonrevive(J, key);
				if (js_isundefined(J, -1)) {
					js_pop(J, 1);
					js_delproperty(J, -1, key);
				} else {
					js_setproperty(J, -2, key);
				}
				js_rot2(J);
			}
			js_pop(J, 1);
		}
	}

	js_copy(J, 2); /* reviver function */
	js_copy(J, -3); /* holder as this */
	js_pushstring(J, name); /* name */
	js_copy(J, -4); /* value */
	js_call(J, 2);
	js_rot2pop1(J); /* pop old value, leave new value on stack */
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rdx
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x4380
movq -0x8(%rbp), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x11730
cmpl $0x0, %eax
je 0x26a83
movq -0x8(%rbp), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x15310
cmpl $0x0, %eax
je 0x269e0
movl $0x0, -0x44(%rbp)
movq -0x8(%rbp), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x4330
movl %eax, -0x48(%rbp)
movl $0x0, -0x44(%rbp)
movl -0x44(%rbp), %eax
cmpl -0x48(%rbp), %eax
jge 0x269db
movq -0x8(%rbp), %rax
movq %rax, -0x50(%rbp)
leaq -0x40(%rbp), %rdi
movl -0x44(%rbp), %esi
callq 0x12b50
movq -0x50(%rbp), %rdi
movq %rax, %rsi
callq 0x268f0
movq -0x8(%rbp), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x15100
cmpl $0x0, %eax
je 0x269bc
movq -0x8(%rbp), %rdi
movl $0x1, %esi
callq 0x4400
movq -0x8(%rbp), %rdi
leaq -0x40(%rbp), %rdx
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x17590
jmp 0x269ce
movq -0x8(%rbp), %rdi
leaq -0x40(%rbp), %rdx
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x4560
jmp 0x269d0
movl -0x44(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x44(%rbp)
jmp 0x2695f
jmp 0x26a81
movq -0x8(%rbp), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
movl $0x1, %edx
callq 0x17d80
movq -0x8(%rbp), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x17dd0
movq %rax, -0x18(%rbp)
cmpq $0x0, %rax
je 0x26a73
movq -0x8(%rbp), %rdi
callq 0x162c0
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x268f0
movq -0x8(%rbp), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x15100
cmpl $0x0, %eax
je 0x26a56
movq -0x8(%rbp), %rdi
movl $0x1, %esi
callq 0x4400
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rdx
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x17590
jmp 0x26a68
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rdx
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x4560
movq -0x8(%rbp), %rdi
callq 0x162c0
jmp 0x269f3
movq -0x8(%rbp), %rdi
movl $0x1, %esi
callq 0x4400
jmp 0x26a83
movq -0x8(%rbp), %rdi
movl $0x2, %esi
callq 0x14410
movq -0x8(%rbp), %rdi
movl $0xfffffffd, %esi       # imm = 0xFFFFFFFD
callq 0x14410
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x13880
movq -0x8(%rbp), %rdi
movl $0xfffffffc, %esi       # imm = 0xFFFFFFFC
callq 0x14410
movq -0x8(%rbp), %rdi
movl $0x2, %esi
callq 0x17ea0
movq -0x8(%rbp), %rdi
callq 0x16600
addq $0x50, %rsp
popq %rbp
retq
nopw (%rax,%rax)