// File: /workspace/github_c_makefile_star2_O0/ccxvii[P]mujs/./json.c
// Function: jsonvalue
static void jsonvalue(js_State *J)
{
	int i;
	const char *name;

	switch (J->lookahead) {
	case TK_STRING:
		js_pushstring(J, J->text);
		jsonnext(J);
		break;

	case TK_NUMBER:
		js_pushnumber(J, J->number);
		jsonnext(J);
		break;

	case '{':
		js_newobject(J);
		jsonnext(J);
		if (jsonaccept(J, '}'))
			return;
		do {
			if (J->lookahead != TK_STRING)
				js_syntaxerror(J, "JSON: unexpected token: %s (expected string)", jsY_tokenstring(J->lookahead));
			name = J->text;
			jsonnext(J);
			jsonexpect(J, ':');
			jsonvalue(J);
			js_setproperty(J, -2, name);
		} while (jsonaccept(J, ','));
		jsonexpect(J, '}');
		break;

	case '[':
		js_newarray(J);
		jsonnext(J);
		i = 0;
		if (jsonaccept(J, ']'))
			return;
		do {
			jsonvalue(J);
			js_setindex(J, -2, i++);
		} while (jsonaccept(J, ','));
		jsonexpect(J, ']');
		break;

	case TK_TRUE:
		js_pushboolean(J, 1);
		jsonnext(J);
		break;

	case TK_FALSE:
		js_pushboolean(J, 0);
		jsonnext(J);
		break;

	case TK_NULL:
		js_pushnull(J);
		jsonnext(J);
		break;

	default:
		js_syntaxerror(J, "JSON: unexpected token: %s", jsY_tokenstring(J->lookahead));
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movl 0x74(%rax), %eax
movl %eax, -0x1c(%rbp)
subl $0x5b, %eax
je 0x26806
jmp 0x266a1
movl -0x1c(%rbp), %eax
subl $0x7b, %eax
je 0x2673c
jmp 0x266af
movl -0x1c(%rbp), %eax
subl $0x101, %eax            # imm = 0x101
je 0x26719
jmp 0x266bb
movl -0x1c(%rbp), %eax
subl $0x102, %eax            # imm = 0x102
je 0x266fa
jmp 0x266c7
movl -0x1c(%rbp), %eax
subl $0x125, %eax            # imm = 0x125
je 0x26897
jmp 0x266d7
movl -0x1c(%rbp), %eax
subl $0x12d, %eax            # imm = 0x12D
je 0x268ad
jmp 0x266e7
movl -0x1c(%rbp), %eax
subl $0x132, %eax            # imm = 0x132
je 0x2687e
jmp 0x268c1
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x78(%rax), %rsi
callq 0x13880
movq -0x8(%rbp), %rdi
callq 0x26650
jmp 0x268ea
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movsd 0x80(%rax), %xmm0
callq 0x44d0
movq -0x8(%rbp), %rdi
callq 0x26650
jmp 0x268ea
movq -0x8(%rbp), %rdi
callq 0x1b7a0
movq -0x8(%rbp), %rdi
callq 0x26650
movq -0x8(%rbp), %rdi
movl $0x7d, %esi
callq 0x26ae0
cmpl $0x0, %eax
je 0x26766
jmp 0x268ea
jmp 0x26768
movq -0x8(%rbp), %rax
cmpl $0x102, 0x74(%rax)      # imm = 0x102
je 0x2679e
movq -0x8(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x8(%rbp), %rax
movl 0x74(%rax), %edi
callq 0xddf0
movq -0x28(%rbp), %rdi
movq %rax, %rdx
leaq 0x16ad3(%rip), %rsi     # 0x3d26a
movb $0x0, %al
callq 0xbee0
movq -0x8(%rbp), %rax
movq 0x78(%rax), %rax
movq %rax, -0x18(%rbp)
movq -0x8(%rbp), %rdi
callq 0x26650
movq -0x8(%rbp), %rdi
movl $0x3a, %esi
callq 0x26b20
movq -0x8(%rbp), %rdi
callq 0x26680
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rdx
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x4560
movq -0x8(%rbp), %rdi
movl $0x2c, %esi
callq 0x26ae0
cmpl $0x0, %eax
jne 0x26768
movq -0x8(%rbp), %rdi
movl $0x7d, %esi
callq 0x26b20
jmp 0x268ea
movq -0x8(%rbp), %rdi
callq 0x13830
movq -0x8(%rbp), %rdi
callq 0x26650
movl $0x0, -0xc(%rbp)
movq -0x8(%rbp), %rdi
movl $0x5d, %esi
callq 0x26ae0
cmpl $0x0, %eax
je 0x26837
jmp 0x268ea
jmp 0x26839
movq -0x8(%rbp), %rdi
callq 0x26680
movq -0x8(%rbp), %rdi
movl -0xc(%rbp), %edx
movl %edx, %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x13bb0
movq -0x8(%rbp), %rdi
movl $0x2c, %esi
callq 0x26ae0
cmpl $0x0, %eax
jne 0x26839
movq -0x8(%rbp), %rdi
movl $0x5d, %esi
callq 0x26b20
jmp 0x268ea
movq -0x8(%rbp), %rdi
movl $0x1, %esi
callq 0x14e30
movq -0x8(%rbp), %rdi
callq 0x26650
jmp 0x268ea
movq -0x8(%rbp), %rdi
xorl %esi, %esi
callq 0x14e30
movq -0x8(%rbp), %rdi
callq 0x26650
jmp 0x268ea
movq -0x8(%rbp), %rdi
callq 0x136f0
movq -0x8(%rbp), %rdi
callq 0x26650
jmp 0x268ea
movq -0x8(%rbp), %rax
movq %rax, -0x30(%rbp)
movq -0x8(%rbp), %rax
movl 0x74(%rax), %edi
callq 0xddf0
movq -0x30(%rbp), %rdi
movq %rax, %rdx
leaq 0x169b4(%rip), %rsi     # 0x3d297
movb $0x0, %al
callq 0xbee0
addq $0x30, %rsp
popq %rbp
retq