// File: /workspace/github_c_makefile_star2_O0/ccxvii[P]mujs/./jslex.c
// Function: jsY_lexjson
int jsY_lexjson(js_State *J)
{
	while (1) {
		J->lexline = J->line; /* save location of beginning of token */

		while (jsY_iswhite(J->lexchar) || J->lexchar == '\n')
			jsY_next(J);

		if ((J->lexchar >= '0' && J->lexchar <= '9') || J->lexchar == '-')
			return lexjsonnumber(J);

		switch (J->lexchar) {
		case ',': jsY_next(J); return ',';
		case ':': jsY_next(J); return ':';
		case '[': jsY_next(J); return '[';
		case ']': jsY_next(J); return ']';
		case '{': jsY_next(J); return '{';
		case '}': jsY_next(J); return '}';

		case '"':
			jsY_next(J);
			return lexjsonstring(J);

		case 'f':
			jsY_next(J); jsY_expect(J, 'a'); jsY_expect(J, 'l'); jsY_expect(J, 's'); jsY_expect(J, 'e');
			return TK_FALSE;

		case 'n':
			jsY_next(J); jsY_expect(J, 'u'); jsY_expect(J, 'l'); jsY_expect(J, 'l');
			return TK_NULL;

		case 't':
			jsY_next(J); jsY_expect(J, 'r'); jsY_expect(J, 'u'); jsY_expect(J, 'e');
			return TK_TRUE;

		case EOF:
			return 0; /* EOF */
		}

		if (J->lexchar >= 0x20 && J->lexchar <= 0x7E)
			jsY_error(J, "unexpected character: '%c'", J->lexchar);
		jsY_error(J, "unexpected character: \\u%04X", J->lexchar);
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movl 0x48(%rax), %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x60(%rax)
movq -0x10(%rbp), %rax
movl 0x64(%rax), %edi
callq 0xded0
movl %eax, %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, -0x11(%rbp)
jne 0xead0
movq -0x10(%rbp), %rax
cmpl $0xa, 0x64(%rax)
sete %al
movb %al, -0x11(%rbp)
movb -0x11(%rbp), %al
testb $0x1, %al
jne 0xead9
jmp 0xeae4
movq -0x10(%rbp), %rdi
callq 0xe0a0
jmp 0xeaaa
movq -0x10(%rbp), %rax
cmpl $0x30, 0x64(%rax)
jl 0xeaf8
movq -0x10(%rbp), %rax
cmpl $0x39, 0x64(%rax)
jle 0xeb02
movq -0x10(%rbp), %rax
cmpl $0x2d, 0x64(%rax)
jne 0xeb13
movq -0x10(%rbp), %rdi
callq 0xef20
movl %eax, -0x4(%rbp)
jmp 0xef0a
movq -0x10(%rbp), %rax
movl 0x64(%rax), %eax
movl %eax, -0x18(%rbp)
subl $-0x1, %eax
je 0xeebb
jmp 0xeb28
movl -0x18(%rbp), %eax
subl $0x22, %eax
je 0xec21
jmp 0xeb36
movl -0x18(%rbp), %eax
subl $0x2c, %eax
je 0xeba3
jmp 0xeb40
movl -0x18(%rbp), %eax
subl $0x3a, %eax
je 0xebb8
jmp 0xeb4a
movl -0x18(%rbp), %eax
subl $0x5b, %eax
je 0xebcd
jmp 0xeb54
movl -0x18(%rbp), %eax
subl $0x5d, %eax
je 0xebe2
jmp 0xeb62
movl -0x18(%rbp), %eax
subl $0x66, %eax
je 0xec3b
jmp 0xeb70
movl -0x18(%rbp), %eax
subl $0x6e, %eax
je 0xed38
jmp 0xeb7e
movl -0x18(%rbp), %eax
subl $0x74, %eax
je 0xedfb
jmp 0xeb8c
movl -0x18(%rbp), %eax
subl $0x7b, %eax
je 0xebf7
jmp 0xeb96
movl -0x18(%rbp), %eax
subl $0x7d, %eax
je 0xec0c
jmp 0xeec4
movq -0x10(%rbp), %rdi
callq 0xe0a0
movl $0x2c, -0x4(%rbp)
jmp 0xef0a
movq -0x10(%rbp), %rdi
callq 0xe0a0
movl $0x3a, -0x4(%rbp)
jmp 0xef0a
movq -0x10(%rbp), %rdi
callq 0xe0a0
movl $0x5b, -0x4(%rbp)
jmp 0xef0a
movq -0x10(%rbp), %rdi
callq 0xe0a0
movl $0x5d, -0x4(%rbp)
jmp 0xef0a
movq -0x10(%rbp), %rdi
callq 0xe0a0
movl $0x7b, -0x4(%rbp)
jmp 0xef0a
movq -0x10(%rbp), %rdi
callq 0xe0a0
movl $0x7d, -0x4(%rbp)
jmp 0xef0a
movq -0x10(%rbp), %rdi
callq 0xe0a0
movq -0x10(%rbp), %rdi
callq 0xf130
movl %eax, -0x4(%rbp)
jmp 0xef0a
movq -0x10(%rbp), %rdi
callq 0xe0a0
movq -0x10(%rbp), %rax
cmpl $0x61, 0x64(%rax)
jne 0xec5f
movq -0x10(%rbp), %rdi
callq 0xe0a0
movb $0x1, %al
testb $0x1, %al
jne 0xec7e
jmp 0xec67
xorl %eax, %eax
testb $0x1, %al
jne 0xec7e
jmp 0xec67
movq -0x10(%rbp), %rdi
leaq 0x2ccb5(%rip), %rsi     # 0x3b927
movl $0x61, %edx
movb $0x0, %al
callq 0xf250
movq -0x10(%rbp), %rax
cmpl $0x6c, 0x64(%rax)
jne 0xec99
movq -0x10(%rbp), %rdi
callq 0xe0a0
movb $0x1, %al
testb $0x1, %al
jne 0xecb8
jmp 0xeca1
xorl %eax, %eax
testb $0x1, %al
jne 0xecb8
jmp 0xeca1
movq -0x10(%rbp), %rdi
leaq 0x2cc7b(%rip), %rsi     # 0x3b927
movl $0x6c, %edx
movb $0x0, %al
callq 0xf250
movq -0x10(%rbp), %rax
cmpl $0x73, 0x64(%rax)
jne 0xecd3
movq -0x10(%rbp), %rdi
callq 0xe0a0
movb $0x1, %al
testb $0x1, %al
jne 0xecf2
jmp 0xecdb
xorl %eax, %eax
testb $0x1, %al
jne 0xecf2
jmp 0xecdb
movq -0x10(%rbp), %rdi
leaq 0x2cc41(%rip), %rsi     # 0x3b927
movl $0x73, %edx
movb $0x0, %al
callq 0xf250
movq -0x10(%rbp), %rax
cmpl $0x65, 0x64(%rax)
jne 0xed0d
movq -0x10(%rbp), %rdi
callq 0xe0a0
movb $0x1, %al
testb $0x1, %al
jne 0xed2c
jmp 0xed15
xorl %eax, %eax
testb $0x1, %al
jne 0xed2c
jmp 0xed15
movq -0x10(%rbp), %rdi
leaq 0x2cc07(%rip), %rsi     # 0x3b927
movl $0x65, %edx
movb $0x0, %al
callq 0xf250
movl $0x125, -0x4(%rbp)      # imm = 0x125
jmp 0xef0a
movq -0x10(%rbp), %rdi
callq 0xe0a0
movq -0x10(%rbp), %rax
cmpl $0x75, 0x64(%rax)
jne 0xed5c
movq -0x10(%rbp), %rdi
callq 0xe0a0
movb $0x1, %al
testb $0x1, %al
jne 0xed7b
jmp 0xed64
xorl %eax, %eax
testb $0x1, %al
jne 0xed7b
jmp 0xed64
movq -0x10(%rbp), %rdi
leaq 0x2cbb8(%rip), %rsi     # 0x3b927
movl $0x75, %edx
movb $0x0, %al
callq 0xf250
movq -0x10(%rbp), %rax
cmpl $0x6c, 0x64(%rax)
jne 0xed96
movq -0x10(%rbp), %rdi
callq 0xe0a0
movb $0x1, %al
testb $0x1, %al
jne 0xedb5
jmp 0xed9e
xorl %eax, %eax
testb $0x1, %al
jne 0xedb5
jmp 0xed9e
movq -0x10(%rbp), %rdi
leaq 0x2cb7e(%rip), %rsi     # 0x3b927
movl $0x6c, %edx
movb $0x0, %al
callq 0xf250
movq -0x10(%rbp), %rax
cmpl $0x6c, 0x64(%rax)
jne 0xedd0
movq -0x10(%rbp), %rdi
callq 0xe0a0
movb $0x1, %al
testb $0x1, %al
jne 0xedef
jmp 0xedd8
xorl %eax, %eax
testb $0x1, %al
jne 0xedef
jmp 0xedd8
movq -0x10(%rbp), %rdi
leaq 0x2cb44(%rip), %rsi     # 0x3b927
movl $0x6c, %edx
movb $0x0, %al
callq 0xf250
movl $0x12d, -0x4(%rbp)      # imm = 0x12D
jmp 0xef0a
movq -0x10(%rbp), %rdi
callq 0xe0a0
movq -0x10(%rbp), %rax
cmpl $0x72, 0x64(%rax)
jne 0xee1f
movq -0x10(%rbp), %rdi
callq 0xe0a0
movb $0x1, %al
testb $0x1, %al
jne 0xee3e
jmp 0xee27
xorl %eax, %eax
testb $0x1, %al
jne 0xee3e
jmp 0xee27
movq -0x10(%rbp), %rdi
leaq 0x2caf5(%rip), %rsi     # 0x3b927
movl $0x72, %edx
movb $0x0, %al
callq 0xf250
movq -0x10(%rbp), %rax
cmpl $0x75, 0x64(%rax)
jne 0xee59
movq -0x10(%rbp), %rdi
callq 0xe0a0
movb $0x1, %al
testb $0x1, %al
jne 0xee78
jmp 0xee61
xorl %eax, %eax
testb $0x1, %al
jne 0xee78
jmp 0xee61
movq -0x10(%rbp), %rdi
leaq 0x2cabb(%rip), %rsi     # 0x3b927
movl $0x75, %edx
movb $0x0, %al
callq 0xf250
movq -0x10(%rbp), %rax
cmpl $0x65, 0x64(%rax)
jne 0xee93
movq -0x10(%rbp), %rdi
callq 0xe0a0
movb $0x1, %al
testb $0x1, %al
jne 0xeeb2
jmp 0xee9b
xorl %eax, %eax
testb $0x1, %al
jne 0xeeb2
jmp 0xee9b
movq -0x10(%rbp), %rdi
leaq 0x2ca81(%rip), %rsi     # 0x3b927
movl $0x65, %edx
movb $0x0, %al
callq 0xf250
movl $0x132, -0x4(%rbp)      # imm = 0x132
jmp 0xef0a
movl $0x0, -0x4(%rbp)
jmp 0xef0a
movq -0x10(%rbp), %rax
cmpl $0x20, 0x64(%rax)
jl 0xeef1
movq -0x10(%rbp), %rax
cmpl $0x7e, 0x64(%rax)
jg 0xeef1
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rax
movl 0x64(%rax), %edx
leaq 0x2ca4b(%rip), %rsi     # 0x3b935
movb $0x0, %al
callq 0xf250
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rax
movl 0x64(%rax), %edx
leaq 0x2ca4d(%rip), %rsi     # 0x3b950
movb $0x0, %al
callq 0xf250
movl -0x4(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)