// File: /workspace/github_c_makefile_star2_O2/ArtifexSoftware[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)
movl 0x64(%rbx), %r14d
movl %r14d, %edi
callq 0xad6d
cmpl $0xa, %r14d
je 0xb90b
testl %eax, %eax
je 0xb915
movq %rbx, %rdi
callq 0xae12
jmp 0xb8f5
leal -0x30(%r14), %eax
cmpl $0xa, %eax
jae 0xb9e8
movq 0x40(%rbx), %r15
cmpl $0x30, %r14d
jne 0xba6b
movq %rbx, %rdi
callq 0xae12
movl 0x64(%rbx), %r14d
cmpl $0x2e, %r14d
jne 0xb978
movq %rbx, %rdi
callq 0xae12
movl 0x64(%rbx), %r14d
leal -0x30(%r14), %eax
cmpl $0x9, %eax
jbe 0xb96f
leaq 0x1e00c(%rip), %rsi     # 0x2996a
jmp 0xbdd9
movq %rbx, %rdi
callq 0xae12
movl 0x64(%rbx), %r14d
leal -0x30(%r14), %eax
cmpl $0x9, %eax
jbe 0xb963
orl $0x20, %r14d
cmpl $0x65, %r14d
jne 0xb9c9
movq %rbx, %rdi
callq 0xae12
movl 0x64(%rbx), %eax
cmpl $0x2d, %eax
je 0xb997
cmpl $0x2b, %eax
jne 0xb9a2
movq %rbx, %rdi
callq 0xae12
movl 0x64(%rbx), %eax
leal -0x30(%rax), %ecx
cmpl $0x9, %ecx
jbe 0xb9c1
leaq 0x1dfdc(%rip), %rsi     # 0x2998d
jmp 0xbdd9
movq %rbx, %rdi
callq 0xae12
movl 0x64(%rbx), %eax
addl $-0x30, %eax
cmpl $0x9, %eax
jbe 0xb9b6
decq %r15
movq %r15, %rdi
xorl %esi, %esi
callq 0x92be
movsd %xmm0, 0x80(%rbx)
movl $0x101, %eax            # imm = 0x101
jmp 0xbd90
cmpl $-0x1, %r14d
je 0xbd9f
cmpl $0x22, %r14d
je 0xbbbf
cmpl $0x2c, %r14d
je 0xbd85
cmpl $0x2d, %r14d
je 0xbb35
cmpl $0x3a, %r14d
je 0xbb92
cmpl $0x5b, %r14d
je 0xbd79
cmpl $0x5d, %r14d
je 0xbbb0
cmpl $0x66, %r14d
je 0xba93
cmpl $0x6e, %r14d
je 0xbaed
cmpl $0x74, %r14d
je 0xbb4a
cmpl $0x7b, %r14d
je 0xbba1
cmpl $0x7d, %r14d
jne 0xbe16
movq %rbx, %rdi
callq 0xae12
pushq $0x7d
jmp 0xbd8f
leal -0x31(%r14), %eax
cmpl $0x8, %eax
ja 0xbde3
leal -0x30(%r14), %eax
cmpl $0x9, %eax
ja 0xb93c
movq %rbx, %rdi
callq 0xae12
movl 0x64(%rbx), %r14d
jmp 0xba78
movq %rbx, %rdi
callq 0xae12
cmpl $0x61, 0x64(%rbx)
jne 0xbe28
movq %rbx, %rdi
callq 0xae12
cmpl $0x6c, 0x64(%rbx)
jne 0xbdec
movq %rbx, %rdi
callq 0xae12
cmpl $0x73, 0x64(%rbx)
jne 0xbe3e
movq %rbx, %rdi
callq 0xae12
cmpl $0x65, 0x64(%rbx)
jne 0xbe0b
movq %rbx, %rdi
callq 0xae12
movl $0x125, %eax            # imm = 0x125
jmp 0xbd90
movq %rbx, %rdi
callq 0xae12
cmpl $0x75, 0x64(%rbx)
jne 0xbe00
movq %rbx, %rdi
callq 0xae12
cmpl $0x6c, 0x64(%rbx)
jne 0xbdec
movq %rbx, %rdi
callq 0xae12
cmpl $0x6c, 0x64(%rbx)
jne 0xbdec
movq %rbx, %rdi
callq 0xae12
movl $0x12d, %eax            # imm = 0x12D
jmp 0xbd90
movq 0x40(%rbx), %r15
movq %rbx, %rdi
callq 0xae12
movl 0x64(%rbx), %r14d
jmp 0xb926
movq %rbx, %rdi
callq 0xae12
cmpl $0x72, 0x64(%rbx)
jne 0xbe33
movq %rbx, %rdi
callq 0xae12
cmpl $0x75, 0x64(%rbx)
jne 0xbe00
movq %rbx, %rdi
callq 0xae12
cmpl $0x65, 0x64(%rbx)
jne 0xbe0b
movq %rbx, %rdi
callq 0xae12
movl $0x132, %eax            # imm = 0x132
jmp 0xbd90
movq %rbx, %rdi
callq 0xae12
pushq $0x3a
jmp 0xbd8f
movq %rbx, %rdi
callq 0xae12
pushq $0x7b
jmp 0xbd8f
movq %rbx, %rdi
callq 0xae12
pushq $0x5d
jmp 0xbd8f
movq %rbx, %rdi
callq 0xae12
movq %rbx, %rdi
callq 0x19257
leaq 0x14ab2(%rip), %r15     # 0x20688
movl 0x64(%rbx), %esi
cmpl $0x22, %esi
je 0xbda3
cmpl $-0x1, %esi
je 0xbdc9
cmpl $0x1f, %esi
jle 0xbdd2
movq %rbx, %rdi
cmpl $0x5c, %esi
jne 0xbd67
callq 0xae12
movl 0x64(%rbx), %eax
leal -0x6e(%rax), %ecx
cmpl $0x7, %ecx
jbe 0xbc47
cmpl $0x22, %eax
je 0xbd53
cmpl $0x2f, %eax
je 0xbd61
cmpl $0x5c, %eax
je 0xbd4c
cmpl $0x62, %eax
je 0xbd5a
cmpl $0x66, %eax
jne 0xbdf7
movq %rbx, %rdi
pushq $0xc
jmp 0xbd66
movslq (%r15,%rcx,4), %rax
addq %r15, %rax
jmpq *%rax
movq %rbx, %rdi
pushq $0xa
jmp 0xbd66
movq %rbx, %rdi
pushq $0xd
jmp 0xbd66
movq %rbx, %rdi
pushq $0x9
jmp 0xbd66
movq %rbx, %rdi
callq 0xae12
movl 0x64(%rbx), %edi
leal -0x3a(%rdi), %eax
cmpl $-0xb, %eax
ja 0xbc92
movl %edi, %eax
andl $-0x21, %eax
addl $-0x47, %eax
cmpl $-0x6, %eax
jb 0xbbd6
callq 0xadd8
movl %eax, %r12d
movq %rbx, %rdi
callq 0xae12
movl 0x64(%rbx), %edi
leal -0x3a(%rdi), %eax
cmpl $-0xb, %eax
ja 0xbcbe
movl %edi, %eax
andl $-0x21, %eax
addl $-0x47, %eax
cmpl $-0x6, %eax
jb 0xbbd6
callq 0xadd8
movl %eax, %r13d
movq %rbx, %rdi
callq 0xae12
movl 0x64(%rbx), %ebp
leal -0x3a(%rbp), %eax
cmpl $-0xb, %eax
ja 0xbcea
movl %ebp, %eax
andl $-0x21, %eax
addl $-0x47, %eax
cmpl $-0x6, %eax
jb 0xbbd6
movq %rbx, %rdi
callq 0xae12
movl 0x64(%rbx), %r14d
leal -0x3a(%r14), %eax
cmpl $-0xb, %eax
ja 0xbd11
movl %r14d, %eax
andl $-0x21, %eax
addl $-0x47, %eax
cmpl $-0x6, %eax
jb 0xbbd6
movl %ebp, %edi
callq 0xadd8
movl %eax, %ebp
shll $0xc, %r12d
shll $0x8, %r13d
orl %r12d, %r13d
shll $0x4, %ebp
movl %r14d, %edi
callq 0xadd8
orl %eax, %ebp
orl %r13d, %ebp
movq %rbx, %rdi
callq 0xae12
movq %rbx, %rdi
movl %ebp, %esi
callq 0x19280
jmp 0xbbd6
movq %rbx, %rdi
pushq $0x5c
jmp 0xbd66
movq %rbx, %rdi
pushq $0x22
jmp 0xbd66
movq %rbx, %rdi
pushq $0x8
jmp 0xbd66
movq %rbx, %rdi
pushq $0x2f
popq %rsi
callq 0x19280
movq %rbx, %rdi
callq 0xae12
jmp 0xbbd6
movq %rbx, %rdi
callq 0xae12
pushq $0x5b
jmp 0xbd8f
movq %rbx, %rdi
callq 0xae12
pushq $0x2c
popq %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
xorl %eax, %eax
jmp 0xbd90
movq %rbx, %rdi
callq 0xae12
movq %rbx, %rdi
callq 0x19314
movq %rbx, %rdi
movq %rax, %rsi
callq 0xab8e
movq %rax, 0x78(%rbx)
movl $0x102, %eax            # imm = 0x102
jmp 0xbd90
leaq 0x1dbe5(%rip), %rsi     # 0x299b5
jmp 0xbdd9
leaq 0x1dbf0(%rip), %rsi     # 0x299c9
movq %rbx, %rdi
xorl %eax, %eax
callq 0xbe61
leaq 0x1db6b(%rip), %rsi     # 0x29955
jmp 0xbdd9
leaq 0x1c489(%rip), %rsi     # 0x2827c
pushq $0x6c
jmp 0xbe47
leaq 0x1cee8(%rip), %rsi     # 0x28ce6
jmp 0xbdd9
leaq 0x1c475(%rip), %rsi     # 0x2827c
pushq $0x75
jmp 0xbe47
leaq 0x1c46a(%rip), %rsi     # 0x2827c
pushq $0x65
jmp 0xbe47
leal -0x20(%r14), %eax
cmpl $0x5e, %eax
ja 0xbe52
leaq 0x1c464(%rip), %rsi     # 0x2828a
jmp 0xbe59
leaq 0x1c44d(%rip), %rsi     # 0x2827c
pushq $0x61
jmp 0xbe47
leaq 0x1c442(%rip), %rsi     # 0x2827c
pushq $0x72
jmp 0xbe47
leaq 0x1c437(%rip), %rsi     # 0x2827c
pushq $0x73
popq %rdx
movq %rbx, %rdi
xorl %eax, %eax
callq 0xbe61
leaq 0x1c44c(%rip), %rsi     # 0x282a5
movq %rbx, %rdi
movl %r14d, %edx
jmp 0xbe4b