// File: /workspace/github_c_makefile_star2_O3/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)
movabsq $0x100001e00, %r14      # imm = 0x100001E00
movl 0x64(%rbx), %edx
cmpq $0x20, %rdx
ja 0xefa0
btq %rdx, %r14
jae 0xefa0
movq %rbx, %rdi
callq 0xe2b6
jmp 0xef87
cmpl $0xfeff, %edx           # imm = 0xFEFF
je 0xef96
cmpl $0xa0, %edx
je 0xef96
leal -0x30(%rdx), %eax
cmpl $0xa, %eax
jae 0xefce
movq 0x40(%rbx), %r14
cmpl $0x30, %edx
jne 0xf00d
movq %rbx, %rdi
callq 0xe2b6
movl 0x64(%rbx), %eax
jmp 0xf02c
cmpl $0x5c, %edx
jg 0xf0cb
cmpl $0x2c, %edx
jg 0xf134
cmpl $-0x1, %edx
je 0xf186
cmpl $0x22, %edx
je 0xf1fb
cmpl $0x2c, %edx
jne 0xf5bd
movq %rbx, %rdi
callq 0xe2b6
movl $0x2c, %eax
jmp 0xf0bc
addl $-0x31, %edx
cmpl $0x8, %edx
ja 0xf531
movq %rbx, %rdi
callq 0xe2b6
movl 0x64(%rbx), %eax
leal -0x30(%rax), %ecx
cmpl $0xa, %ecx
jb 0xf019
cmpl $0x2e, %eax
jne 0xf05b
movq %rbx, %rdi
callq 0xe2b6
movl 0x64(%rbx), %eax
addl $-0x30, %eax
cmpl $0x9, %eax
ja 0xf53a
movq %rbx, %rdi
callq 0xe2b6
movl 0x64(%rbx), %eax
leal -0x30(%rax), %ecx
cmpl $0xa, %ecx
jb 0xf048
orl $0x20, %eax
cmpl $0x65, %eax
jne 0xf0a2
movq %rbx, %rdi
callq 0xe2b6
movl 0x64(%rbx), %eax
cmpl $0x2d, %eax
je 0xf078
cmpl $0x2b, %eax
jne 0xf083
movq %rbx, %rdi
callq 0xe2b6
movl 0x64(%rbx), %eax
addl $-0x30, %eax
cmpl $0x9, %eax
ja 0xf528
movq %rbx, %rdi
callq 0xe2b6
movl 0x64(%rbx), %eax
addl $-0x30, %eax
cmpl $0xa, %eax
jb 0xf08f
decq %r14
movq %r14, %rdi
xorl %esi, %esi
callq 0xc2ce
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 0xf15d
cmpl $0x5d, %edx
je 0xf18d
cmpl $0x66, %edx
je 0xf448
cmpl $0x6e, %edx
jne 0xf5bd
movq %rbx, %rdi
callq 0xe2b6
cmpl $0x75, 0x64(%rbx)
jne 0xf568
movq %rbx, %rdi
callq 0xe2b6
cmpl $0x6c, 0x64(%rbx)
jne 0xf543
movq %rbx, %rdi
callq 0xe2b6
cmpl $0x6c, 0x64(%rbx)
jne 0xf543
movq %rbx, %rdi
callq 0xe2b6
movl $0x12d, %eax            # imm = 0x12D
jmp 0xf0bc
cmpl $0x2d, %edx
je 0xf19f
cmpl $0x3a, %edx
je 0xf4a2
cmpl $0x5b, %edx
jne 0xf5bd
movq %rbx, %rdi
callq 0xe2b6
movl $0x5b, %eax
jmp 0xf0bc
cmpl $0x74, %edx
je 0xf1b3
cmpl $0x7b, %edx
je 0xf4b4
cmpl $0x7d, %edx
jne 0xf5bd
movq %rbx, %rdi
callq 0xe2b6
movl $0x7d, %eax
jmp 0xf0bc
xorl %eax, %eax
jmp 0xf0bc
movq %rbx, %rdi
callq 0xe2b6
movl $0x5d, %eax
jmp 0xf0bc
movq 0x40(%rbx), %r14
movq %rbx, %rdi
callq 0xe2b6
movl 0x64(%rbx), %edx
jmp 0xefbc
movq %rbx, %rdi
callq 0xe2b6
cmpl $0x72, 0x64(%rbx)
jne 0xf58a
movq %rbx, %rdi
callq 0xe2b6
cmpl $0x75, 0x64(%rbx)
jne 0xf568
movq %rbx, %rdi
callq 0xe2b6
cmpl $0x65, 0x64(%rbx)
jne 0xf579
movq %rbx, %rdi
callq 0xe2b6
movl $0x132, %eax            # imm = 0x132
jmp 0xf0bc
movq %rbx, %rdi
callq 0xe2b6
cmpq $0x0, 0x50(%rbx)
jne 0xf222
movl $0x1000, 0x5c(%rbx)     # imm = 0x1000
movq %rbx, %rdi
movl $0x1000, %esi           # imm = 0x1000
callq 0xde05
movq %rax, 0x50(%rbx)
movl $0x0, 0x58(%rbx)
leaq 0x1c468(%rip), %r14     # 0x2b698
xorl %r15d, %r15d
movl 0x64(%rbx), %esi
cmpl $0x22, %esi
je 0xf4c6
cmpl $-0x1, %esi
je 0xf516
cmpl $0x1f, %esi
jle 0xf51f
movq %rbx, %rdi
cmpl $0x5c, %esi
jne 0xf329
callq 0xe2b6
movl 0x64(%rbx), %eax
cmpl $0x61, %eax
jg 0xf28a
cmpl $0x22, %eax
je 0xf2a8
cmpl $0x2f, %eax
je 0xf2b2
cmpl $0x5c, %eax
jne 0xf557
movq %rbx, %rdi
movl $0x5c, %esi
jmp 0xf329
leal -0x6e(%rax), %ecx
cmpl $0x7, %ecx
ja 0xf2bc
movslq (%r14,%rcx,4), %rax
addq %r14, %rax
jmpq *%rax
movq %rbx, %rdi
movl $0xa, %esi
jmp 0xf329
movq %rbx, %rdi
movl $0x22, %esi
jmp 0xf329
movq %rbx, %rdi
movl $0x2f, %esi
jmp 0xf329
cmpl $0x62, %eax
je 0xf321
cmpl $0x66, %eax
jne 0xf557
movq %rbx, %rdi
movl $0xc, %esi
jmp 0xf329
movq %rbx, %rdi
callq 0xe2b6
movl 0x64(%rbx), %eax
leal -0x30(%rax), %r12d
cmpl $0xa, %r12d
jb 0xf2fa
movl %eax, %ecx
andl $-0x21, %ecx
addl $-0x47, %ecx
cmpl $-0x6, %ecx
jb 0xf233
cmpl $0xa, %r12d
jb 0xf34b
leal -0x61(%rax), %ecx
cmpl $0x5, %ecx
ja 0xf33b
addl $-0x57, %eax
jmp 0xf348
movq %rbx, %rdi
movl $0xd, %esi
jmp 0xf329
movq %rbx, %rdi
movl $0x9, %esi
jmp 0xf329
movq %rbx, %rdi
movl $0x8, %esi
callq 0x21826
movq %rbx, %rdi
callq 0xe2b6
jmp 0xf233
leal -0x41(%rax), %ecx
addl $-0x37, %eax
cmpl $0x6, %ecx
cmovael %r15d, %eax
movl %eax, %r12d
movq %rbx, %rdi
callq 0xe2b6
movl 0x64(%rbx), %eax
leal -0x30(%rax), %r13d
cmpl $0xa, %r13d
jb 0xf371
movl %eax, %ecx
andl $-0x21, %ecx
addl $-0x47, %ecx
cmpl $-0x6, %ecx
jb 0xf233
cmpl $0xa, %r13d
jb 0xf394
leal -0x61(%rax), %ecx
cmpl $0x5, %ecx
ja 0xf384
addl $-0x57, %eax
jmp 0xf391
leal -0x41(%rax), %ecx
addl $-0x37, %eax
cmpl $0x6, %ecx
cmovael %r15d, %eax
movl %eax, %r13d
movq %rbx, %rdi
callq 0xe2b6
movl 0x64(%rbx), %eax
leal -0x30(%rax), %ebp
cmpl $0xa, %ebp
jb 0xf3b8
movl %eax, %ecx
andl $-0x21, %ecx
addl $-0x47, %ecx
cmpl $-0x6, %ecx
jb 0xf233
cmpl $0xa, %ebp
jb 0xf3d9
leal -0x61(%rax), %ecx
cmpl $0x5, %ecx
ja 0xf3ca
addl $-0x57, %eax
jmp 0xf3d7
leal -0x41(%rax), %ecx
addl $-0x37, %eax
cmpl $0x6, %ecx
cmovael %r15d, %eax
movl %eax, %ebp
movq %rbx, %rdi
callq 0xe2b6
movl 0x64(%rbx), %eax
leal -0x30(%rax), %ecx
cmpl $0xa, %ecx
jb 0xf3fd
movl %eax, %edx
andl $-0x21, %edx
addl $-0x47, %edx
cmpl $-0x6, %edx
jb 0xf233
cmpl $0xa, %ecx
jb 0xf41e
leal -0x61(%rax), %ecx
cmpl $0x5, %ecx
ja 0xf40f
addl $-0x57, %eax
jmp 0xf41c
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 0xe2b6
movq %rbx, %rdi
movl %ebp, %esi
callq 0x21826
jmp 0xf233
movq %rbx, %rdi
callq 0xe2b6
cmpl $0x61, 0x64(%rbx)
jne 0xf59b
movq %rbx, %rdi
callq 0xe2b6
cmpl $0x6c, 0x64(%rbx)
jne 0xf543
movq %rbx, %rdi
callq 0xe2b6
cmpl $0x73, 0x64(%rbx)
jne 0xf5ac
movq %rbx, %rdi
callq 0xe2b6
cmpl $0x65, 0x64(%rbx)
jne 0xf579
movq %rbx, %rdi
callq 0xe2b6
movl $0x125, %eax            # imm = 0x125
jmp 0xf0bc
movq %rbx, %rdi
callq 0xe2b6
movl $0x3a, %eax
jmp 0xf0bc
movq %rbx, %rdi
callq 0xe2b6
movl $0x7b, %eax
jmp 0xf0bc
movq %rbx, %rdi
callq 0xe2b6
movq %rbx, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x21826
movq 0x50(%rbx), %rdx
movq 0x28(%rbx), %rsi
testq %rsi, %rsi
jne 0xf4f3
leaq 0x30d31(%rip), %rsi     # 0x40220
movq %rsi, 0x28(%rbx)
movq %rsp, %r14
movq %rbx, %rdi
movq %r14, %rcx
callq 0xe061
movq %rax, 0x28(%rbx)
movq (%r14), %rax
movq %rax, 0x78(%rbx)
movl $0x102, %eax            # imm = 0x102
jmp 0xf0bc
leaq 0x254bd(%rip), %rsi     # 0x349da
jmp 0xf55e
leaq 0x254c8(%rip), %rsi     # 0x349ee
jmp 0xf55e
leaq 0x25483(%rip), %rsi     # 0x349b2
jmp 0xf55e
leaq 0x25442(%rip), %rsi     # 0x3497a
jmp 0xf55e
leaq 0x2544e(%rip), %rsi     # 0x3498f
jmp 0xf55e
leaq 0x23d62(%rip), %rsi     # 0x332ac
movq %rbx, %rdi
movl $0x6c, %edx
jmp 0xf5d8
leaq 0x247b8(%rip), %rsi     # 0x33d16
movq %rbx, %rdi
xorl %eax, %eax
callq 0xf5df
leaq 0x23d3d(%rip), %rsi     # 0x332ac
movq %rbx, %rdi
movl $0x75, %edx
jmp 0xf5d8
leaq 0x23d2c(%rip), %rsi     # 0x332ac
movq %rbx, %rdi
movl $0x65, %edx
jmp 0xf5d8
leaq 0x23d1b(%rip), %rsi     # 0x332ac
movq %rbx, %rdi
movl $0x72, %edx
jmp 0xf5d8
leaq 0x23d0a(%rip), %rsi     # 0x332ac
movq %rbx, %rdi
movl $0x61, %edx
jmp 0xf5d8
leaq 0x23cf9(%rip), %rsi     # 0x332ac
movq %rbx, %rdi
movl $0x73, %edx
jmp 0xf5d8
leal -0x20(%rdx), %eax
cmpl $0x5e, %eax
ja 0xf5ce
leaq 0x23cee(%rip), %rsi     # 0x332ba
jmp 0xf5d5
leaq 0x23d00(%rip), %rsi     # 0x332d5
movq %rbx, %rdi
xorl %eax, %eax
callq 0xf5df