// File: /workspace/github_c_makefile_star2_O1/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
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %rbx
movl 0x48(%rdi), %eax
movl %eax, 0x60(%rdi)
movabsq $0x100001a00, %r14      # imm = 0x100001A00
movl 0x64(%rbx), %edx
movb $0x1, %al
cmpq $0x20, %rdx
ja 0xf2b2
btq %rdx, %r14
jae 0xf2b2
cmpl $0xa, %edx
setne %cl
xorb $0x1, %al
testb %al, %cl
jne 0xf2c6
movq %rbx, %rdi
callq 0xe5c9
jmp 0xf28b
cmpl $0xa0, %edx
je 0xf29c
cmpl $0xfeff, %edx           # imm = 0xFEFF
je 0xf29c
xorl %eax, %eax
jmp 0xf29c
leal -0x30(%rdx), %eax
cmpl $0xa, %eax
jae 0xf2f1
movq 0x40(%rbx), %r14
cmpl $0x2d, %edx
jne 0xf2df
movq %rbx, %rdi
callq 0xe5c9
movl 0x64(%rbx), %eax
cmpl $0x30, %eax
jne 0xf330
movq %rbx, %rdi
callq 0xe5c9
jmp 0xf357
cmpl $0x5c, %edx
jg 0xf3fa
cmpl $0x2c, %edx
jg 0xf463
cmpl $-0x1, %edx
je 0xf4b9
cmpl $0x22, %edx
je 0xf51a
cmpl $0x2c, %edx
jne 0xf8bb
movq %rbx, %rdi
callq 0xe5c9
movl $0x2c, %eax
jmp 0xf3eb
leal -0x31(%rax), %ecx
cmpl $0x8, %ecx
ja 0xf82f
addl $-0x30, %eax
cmpl $0x9, %eax
ja 0xf357
movq %rbx, %rdi
callq 0xe5c9
movl 0x64(%rbx), %eax
addl $-0x30, %eax
cmpl $0xa, %eax
jb 0xf344
cmpl $0x2e, 0x64(%rbx)
jne 0xf387
movq %rbx, %rdi
callq 0xe5c9
movl 0x64(%rbx), %eax
addl $-0x30, %eax
cmpl $0x9, %eax
ja 0xf838
movq %rbx, %rdi
callq 0xe5c9
movl 0x64(%rbx), %eax
addl $-0x30, %eax
cmpl $0xa, %eax
jb 0xf374
movl 0x64(%rbx), %eax
orl $0x20, %eax
cmpl $0x65, %eax
jne 0xf3d1
movq %rbx, %rdi
callq 0xe5c9
movl 0x64(%rbx), %eax
cmpl $0x2d, %eax
je 0xf3a7
cmpl $0x2b, %eax
jne 0xf3af
movq %rbx, %rdi
callq 0xe5c9
movl 0x64(%rbx), %eax
addl $-0x30, %eax
cmpl $0x9, %eax
ja 0xf826
movq %rbx, %rdi
callq 0xe5c9
movl 0x64(%rbx), %eax
addl $-0x30, %eax
cmpl $0xa, %eax
jb 0xf3be
decq %r14
movq %r14, %rdi
xorl %esi, %esi
callq 0xc57f
movsd %xmm0, 0x80(%rbx)
movl $0x101, %eax            # imm = 0x101
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
cmpl $0x73, %edx
jg 0xf490
cmpl $0x5d, %edx
je 0xf4c0
cmpl $0x66, %edx
je 0xf767
cmpl $0x6e, %edx
jne 0xf8bb
movq %rbx, %rdi
callq 0xe5c9
cmpl $0x75, 0x64(%rbx)
jne 0xf866
movq %rbx, %rdi
callq 0xe5c9
cmpl $0x6c, 0x64(%rbx)
jne 0xf841
movq %rbx, %rdi
callq 0xe5c9
cmpl $0x6c, 0x64(%rbx)
jne 0xf841
movq %rbx, %rdi
callq 0xe5c9
movl $0x12d, %eax            # imm = 0x12D
jmp 0xf3eb
cmpl $0x2d, %edx
je 0xf2ce
cmpl $0x3a, %edx
je 0xf7c1
cmpl $0x5b, %edx
jne 0xf8bb
movq %rbx, %rdi
callq 0xe5c9
movl $0x5b, %eax
jmp 0xf3eb
cmpl $0x74, %edx
je 0xf4d2
cmpl $0x7b, %edx
je 0xf7d3
cmpl $0x7d, %edx
jne 0xf8bb
movq %rbx, %rdi
callq 0xe5c9
movl $0x7d, %eax
jmp 0xf3eb
xorl %eax, %eax
jmp 0xf3eb
movq %rbx, %rdi
callq 0xe5c9
movl $0x5d, %eax
jmp 0xf3eb
movq %rbx, %rdi
callq 0xe5c9
cmpl $0x72, 0x64(%rbx)
jne 0xf888
movq %rbx, %rdi
callq 0xe5c9
cmpl $0x75, 0x64(%rbx)
jne 0xf866
movq %rbx, %rdi
callq 0xe5c9
cmpl $0x65, 0x64(%rbx)
jne 0xf877
movq %rbx, %rdi
callq 0xe5c9
movl $0x132, %eax            # imm = 0x132
jmp 0xf3eb
movq %rbx, %rdi
callq 0xe5c9
cmpq $0x0, 0x50(%rbx)
jne 0xf541
movl $0x1000, 0x5c(%rbx)     # imm = 0x1000
movq %rbx, %rdi
movl $0x1000, %esi           # imm = 0x1000
callq 0xe119
movq %rax, 0x50(%rbx)
movl $0x0, 0x58(%rbx)
leaq 0x1c149(%rip), %r14     # 0x2b698
xorl %r15d, %r15d
movl 0x64(%rbx), %esi
cmpl $0x22, %esi
je 0xf7e5
cmpl $-0x1, %esi
je 0xf814
cmpl $0x1f, %esi
jle 0xf81d
movq %rbx, %rdi
cmpl $0x5c, %esi
jne 0xf648
callq 0xe5c9
movl 0x64(%rbx), %eax
cmpl $0x61, %eax
jg 0xf5a9
cmpl $0x22, %eax
je 0xf5c7
cmpl $0x2f, %eax
je 0xf5d1
cmpl $0x5c, %eax
jne 0xf855
movq %rbx, %rdi
movl $0x5c, %esi
jmp 0xf648
leal -0x6e(%rax), %ecx
cmpl $0x7, %ecx
ja 0xf5db
movslq (%r14,%rcx,4), %rax
addq %r14, %rax
jmpq *%rax
movq %rbx, %rdi
movl $0xa, %esi
jmp 0xf648
movq %rbx, %rdi
movl $0x22, %esi
jmp 0xf648
movq %rbx, %rdi
movl $0x2f, %esi
jmp 0xf648
cmpl $0x62, %eax
je 0xf640
cmpl $0x66, %eax
jne 0xf855
movq %rbx, %rdi
movl $0xc, %esi
jmp 0xf648
movq %rbx, %rdi
callq 0xe5c9
movl 0x64(%rbx), %eax
leal -0x30(%rax), %r12d
cmpl $0xa, %r12d
jb 0xf619
movl %eax, %ecx
andl $-0x21, %ecx
addl $-0x47, %ecx
cmpl $-0x6, %ecx
jb 0xf552
cmpl $0xa, %r12d
jb 0xf66a
leal -0x61(%rax), %ecx
cmpl $0x5, %ecx
ja 0xf65a
addl $-0x57, %eax
jmp 0xf667
movq %rbx, %rdi
movl $0xd, %esi
jmp 0xf648
movq %rbx, %rdi
movl $0x9, %esi
jmp 0xf648
movq %rbx, %rdi
movl $0x8, %esi
callq 0x21b5f
movq %rbx, %rdi
callq 0xe5c9
jmp 0xf552
leal -0x41(%rax), %ecx
addl $-0x37, %eax
cmpl $0x6, %ecx
cmovael %r15d, %eax
movl %eax, %r12d
movq %rbx, %rdi
callq 0xe5c9
movl 0x64(%rbx), %eax
leal -0x30(%rax), %r13d
cmpl $0xa, %r13d
jb 0xf690
movl %eax, %ecx
andl $-0x21, %ecx
addl $-0x47, %ecx
cmpl $-0x6, %ecx
jb 0xf552
cmpl $0xa, %r13d
jb 0xf6b3
leal -0x61(%rax), %ecx
cmpl $0x5, %ecx
ja 0xf6a3
addl $-0x57, %eax
jmp 0xf6b0
leal -0x41(%rax), %ecx
addl $-0x37, %eax
cmpl $0x6, %ecx
cmovael %r15d, %eax
movl %eax, %r13d
movq %rbx, %rdi
callq 0xe5c9
movl 0x64(%rbx), %eax
leal -0x30(%rax), %ebp
cmpl $0xa, %ebp
jb 0xf6d7
movl %eax, %ecx
andl $-0x21, %ecx
addl $-0x47, %ecx
cmpl $-0x6, %ecx
jb 0xf552
cmpl $0xa, %ebp
jb 0xf6f8
leal -0x61(%rax), %ecx
cmpl $0x5, %ecx
ja 0xf6e9
addl $-0x57, %eax
jmp 0xf6f6
leal -0x41(%rax), %ecx
addl $-0x37, %eax
cmpl $0x6, %ecx
cmovael %r15d, %eax
movl %eax, %ebp
movq %rbx, %rdi
callq 0xe5c9
movl 0x64(%rbx), %eax
leal -0x30(%rax), %ecx
cmpl $0xa, %ecx
jb 0xf71c
movl %eax, %edx
andl $-0x21, %edx
addl $-0x47, %edx
cmpl $-0x6, %edx
jb 0xf552
cmpl $0xa, %ecx
jb 0xf73d
leal -0x61(%rax), %ecx
cmpl $0x5, %ecx
ja 0xf72e
addl $-0x57, %eax
jmp 0xf73b
leal -0x41(%rax), %ecx
addl $-0x37, %eax
cmpl $0x6, %ecx
cmovael %r15d, %eax
movl %eax, %ecx
shll $0xc, %r12d
shll $0x8, %r13d
addl %r12d, %r13d
shll $0x4, %ebp
addl %r13d, %ebp
addl %ecx, %ebp
movq %rbx, %rdi
callq 0xe5c9
movq %rbx, %rdi
movl %ebp, %esi
callq 0x21b5f
jmp 0xf552
movq %rbx, %rdi
callq 0xe5c9
cmpl $0x61, 0x64(%rbx)
jne 0xf899
movq %rbx, %rdi
callq 0xe5c9
cmpl $0x6c, 0x64(%rbx)
jne 0xf841
movq %rbx, %rdi
callq 0xe5c9
cmpl $0x73, 0x64(%rbx)
jne 0xf8aa
movq %rbx, %rdi
callq 0xe5c9
cmpl $0x65, 0x64(%rbx)
jne 0xf877
movq %rbx, %rdi
callq 0xe5c9
movl $0x125, %eax            # imm = 0x125
jmp 0xf3eb
movq %rbx, %rdi
callq 0xe5c9
movl $0x3a, %eax
jmp 0xf3eb
movq %rbx, %rdi
callq 0xe5c9
movl $0x7b, %eax
jmp 0xf3eb
movq %rbx, %rdi
callq 0xe5c9
movq %rbx, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x21b5f
movq 0x50(%rbx), %rsi
movq %rbx, %rdi
callq 0xe33c
movq %rax, 0x78(%rbx)
movl $0x102, %eax            # imm = 0x102
jmp 0xf3eb
leaq 0x2518f(%rip), %rsi     # 0x349aa
jmp 0xf85c
leaq 0x2519a(%rip), %rsi     # 0x349be
jmp 0xf85c
leaq 0x25155(%rip), %rsi     # 0x34982
jmp 0xf85c
leaq 0x25114(%rip), %rsi     # 0x3494a
jmp 0xf85c
leaq 0x25120(%rip), %rsi     # 0x3495f
jmp 0xf85c
leaq 0x23a34(%rip), %rsi     # 0x3327c
movq %rbx, %rdi
movl $0x6c, %edx
jmp 0xf8d6
leaq 0x2448a(%rip), %rsi     # 0x33ce6
movq %rbx, %rdi
xorl %eax, %eax
callq 0xf8dd
leaq 0x23a0f(%rip), %rsi     # 0x3327c
movq %rbx, %rdi
movl $0x75, %edx
jmp 0xf8d6
leaq 0x239fe(%rip), %rsi     # 0x3327c
movq %rbx, %rdi
movl $0x65, %edx
jmp 0xf8d6
leaq 0x239ed(%rip), %rsi     # 0x3327c
movq %rbx, %rdi
movl $0x72, %edx
jmp 0xf8d6
leaq 0x239dc(%rip), %rsi     # 0x3327c
movq %rbx, %rdi
movl $0x61, %edx
jmp 0xf8d6
leaq 0x239cb(%rip), %rsi     # 0x3327c
movq %rbx, %rdi
movl $0x73, %edx
jmp 0xf8d6
leal -0x20(%rdx), %eax
cmpl $0x5e, %eax
ja 0xf8cc
leaq 0x239c0(%rip), %rsi     # 0x3328a
jmp 0xf8d3
leaq 0x239d2(%rip), %rsi     # 0x332a5
movq %rbx, %rdi
xorl %eax, %eax
callq 0xf8dd