// File: /workspace/github_c_makefile_star2_O3/lucvoo[P]sparse-dev/tokenize.c
// Function: nextchar
static inline int nextchar(stream_t *stream)
{
	int offset = stream->offset;

	if (offset < stream->size) {
		int c = stream->buffer[offset++];
		static const char special[256] = {
			['\t'] = 1, ['\r'] = 1, ['\n'] = 1, ['\\'] = 1
		};
		if (!special[c]) {
			stream->offset = offset;
			stream->pos++;
			return c;
		}
	}
	return nextchar_slow(stream);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %rbx
movl 0x4(%rdi), %ebp
movl 0x8(%rdi), %eax
cmpl %eax, %ebp
jge 0x2ee89
movslq %ebp, %rcx
movq 0x30(%rbx), %rdx
movzbl (%rdx,%rcx), %r14d
leaq 0x192a2(%rip), %rcx     # 0x48120
cmpb $0x0, (%r14,%rcx)
je 0x2effc
movb $0x1, %cl
movl %ecx, 0x4(%rsp)
xorl %r15d, %r15d
movb $0x1, %r13b
xorl %r12d, %r12d
cmpl %eax, %ebp
jge 0x2eea0
movl %ebp, %ecx
jmp 0x2eecc
movl (%rbx), %edi
testl %edi, %edi
js 0x2ef6e
movq 0x30(%rbx), %rsi
movl $0x2000, %edx           # imm = 0x2000
callq 0xe180
testl %eax, %eax
jle 0x2ef6e
movl %eax, 0x8(%rbx)
movl $0x0, 0x4(%rbx)
xorl %ecx, %ecx
movq 0x30(%rbx), %rdx
leal 0x1(%rcx), %ebp
movslq %ecx, %rsi
movzbl (%rdx,%rsi), %r14d
testb $0x1, %r13b
je 0x2ef05
cmpl $0xd, %r14d
je 0x2eefd
testl %r12d, %r12d
jne 0x2ef18
cmpl $0x5c, %r14d
jne 0x2ef39
incl 0xc(%rbx)
movl $0x1, %r12d
jmp 0x2ee98
xorl %r13d, %r13d
movl %r12d, %r15d
jmp 0x2ee98
cmpl $0xa, %r14d
cmovel %ebp, %ecx
movl %ecx, %ebp
testl %r15d, %r15d
jne 0x2ef22
jmp 0x2efd9
cmpl $0xa, %r14d
jne 0x2f069
incl 0x10(%rbx)
movl $0x0, 0xc(%rbx)
movl $0x0, 0x4(%rsp)
jmp 0x2ee8f
cmpl $0xa, %r14d
je 0x2efd7
cmpl $0x9, %r14d
jne 0x2eff4
movl 0x357fd(%rip), %esi     # 0x64750
movl 0xc(%rbx), %ecx
movl %ecx, %eax
xorl %edx, %edx
divl %esi
addl %esi, %ecx
subl %edx, %ecx
movl %ecx, 0xc(%rbx)
movl $0x9, %r14d
jmp 0x2eff7
movl $0x5c, %r14d
testl %r12d, %r12d
jne 0x2eff7
movl 0xc(%rbx), %eax
leaq 0x31639(%rip), %rcx     # 0x605bc
testl %eax, (%rcx)
je 0x2f016
movl 0x14(%rbx), %ecx
movl 0x18(%rbx), %edx
shll $0x6, %ecx
andl $0x1, %edx
shll $0x14, %edx
andl $0xfffc0, %ecx          # imm = 0xFFFC0
movl 0x1c(%rbx), %esi
shll $0x16, %eax
orl %ecx, %eax
orl %edx, %eax
andl $0x1, %esi
shll $0x15, %esi
orl %eax, %esi
movl $0x7fffffff, %edi       # imm = 0x7FFFFFFF
andl 0x10(%rbx), %edi
shlq $0x20, %rdi
orq %rsi, %rdi
leaq 0x19541(%rip), %rsi     # 0x48509
xorl %eax, %eax
callq 0x118fc
movl $0xffffffff, %r14d      # imm = 0xFFFFFFFF
jmp 0x2f004
movl %ebp, %ecx
incl 0x10(%rbx)
movl $0x0, 0xc(%rbx)
movl $0x1, 0x18(%rbx)
movl $0xa, %r14d
movl %ecx, %ebp
jmp 0x2eff7
incl 0xc(%rbx)
movl %ebp, 0x4(%rbx)
jmp 0x2f004
incl %ebp
movl %ebp, 0x4(%rbx)
incl 0xc(%rbx)
movl %r14d, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movl $0xffffffff, %r14d      # imm = 0xFFFFFFFF
testb $0x1, 0x4(%rsp)
jne 0x2f004
movl 0x14(%rbx), %ecx
movl 0x18(%rbx), %edx
shll $0x6, %ecx
andl $0x1, %edx
shll $0x14, %edx
andl $0xfffc0, %ecx          # imm = 0xFFFC0
movl 0x1c(%rbx), %esi
shll $0x16, %eax
orl %ecx, %eax
orl %edx, %eax
andl $0x1, %esi
shll $0x15, %esi
orl %eax, %esi
movl $0x7fffffff, %edi       # imm = 0x7FFFFFFF
andl 0x10(%rbx), %edi
shlq $0x20, %rdi
orq %rsi, %rdi
leaq 0x194c3(%rip), %rsi     # 0x48523
xorl %eax, %eax
callq 0x118fc
jmp 0x2f004
movl $0x5c, %r14d
jmp 0x2eff0