// File: /workspace/github_c_makefile_star2_O1/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), %r15d
movl 0x8(%rdi), %eax
cmpl %eax, %r15d
jge 0x2f515
movslq %r15d, %rcx
movq 0x30(%rbx), %rdx
movzbl (%rdx,%rcx), %r14d
leaq 0x19cb6(%rip), %rcx     # 0x491c0
cmpb $0x0, (%r14,%rcx)
je 0x2f67c
movb $0x1, %bpl
xorl %r13d, %r13d
movb $0x1, %r12b
movl %r15d, %ecx
movl %ecx, %r15d
cmpl %eax, %r15d
jl 0x2f556
movl (%rbx), %edi
testl %edi, %edi
js 0x2f5f1
movq 0x30(%rbx), %rsi
movl $0x2000, %edx           # imm = 0x2000
callq 0xe180
testl %eax, %eax
jle 0x2f5f1
movl %eax, 0x8(%rbx)
movl $0x0, 0x4(%rbx)
xorl %r15d, %r15d
movq 0x30(%rbx), %rdx
leal 0x1(%r15), %ecx
movslq %r15d, %rsi
movzbl (%rdx,%rsi), %r14d
testb $0x1, %r12b
je 0x2f574
cmpl $0xd, %r14d
jne 0x2f583
jmp 0x2f59c
cmpl $0xa, %r14d
je 0x2f57d
movl %r15d, %ecx
movl $0xa, %r14d
movl %ecx, %r15d
testl %r13d, %r13d
jne 0x2f5a1
cmpl $0x5c, %r14d
jne 0x2f5bc
incl 0xc(%rbx)
movl $0x1, %r13d
jmp 0x2f524
xorl %r12d, %r12d
jmp 0x2f521
cmpl $0xa, %r14d
jne 0x2f6ea
incl 0x10(%rbx)
movl $0x0, 0xc(%rbx)
xorl %ebp, %ebp
jmp 0x2f518
cmpl $0xa, %r14d
je 0x2f65a
cmpl $0x9, %r14d
jne 0x2f673
movl 0x3617a(%rip), %esi     # 0x65750
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 0x2f676
movl $0x5c, %r14d
testl %r13d, %r13d
jne 0x2f676
movl 0xc(%rbx), %eax
leaq 0x31fb6(%rip), %rcx     # 0x615bc
testl %eax, (%rcx)
je 0x2f698
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 0x19f4e(%rip), %rsi     # 0x49599
xorl %eax, %eax
callq 0x118b4
movl $0xffffffff, %r14d      # imm = 0xFFFFFFFF
jmp 0x2f686
incl 0x10(%rbx)
movl $0x0, 0xc(%rbx)
movl $0x1, 0x18(%rbx)
movl $0xa, %r14d
jmp 0x2f676
incl 0xc(%rbx)
movl %r15d, 0x4(%rbx)
jmp 0x2f686
incl %r15d
movl %r15d, 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, %bpl
jne 0x2f686
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 0x19ed2(%rip), %rsi     # 0x495b3
xorl %eax, %eax
callq 0x118b4
jmp 0x2f686
decl %r15d
movl $0x5c, %r14d
jmp 0x2f676