// File: /workspace/github_c_makefile_star2_O2/blakemcbride[P]LISP9/ls9.c
// Function: xread2
cell xread2(void) {
	int	c;

	c = readc();
	while (1) {
		while (' ' == c || '\t' == c || '\n' == c || '\r' == c) {
			if (Intr || Readerr) return NIL;
			if ('\n' == c) Line++;
			c = readc();
		}
		if (c != ';') break;
		while (c != '\n' && c != EOF)
			c = readc();
	}
	if (Intr || Readerr) return NIL;
	if (EOF == c) {
		return EOFMARK;
	}
	else if ('#' == c) {
		c = readc();
		if ('\\' == c) return rdchar();
		else if (LP == c) return rdvec();
		else if (isdigit(c)) return rdfix(c);
		else rderror("bad # syntax", mkchar(c));
	}
	else if ('"' == c) {
		return rdstr();
	}
	else if (LP == c) {
		return rdlist();
	}
	else if (RP == c) {
		if (!Inlist) rderror("unexpected ')'", UNDEF);
		return RPAREN;
	}
	else if ('\'' == c) {
		return rdquote(S_quote);
	}
	else if ('`' == c || '@' == c) {
		return rdquote(S_qquote);
	}
	else if (',' == c) {
		if (!Inlist && !Quoting) return meta();
		c = readc();
		if ('@' == c) return rdquote(S_splice);
		rejectc(c);
		return rdquote(S_unquote);
	}
	else if ('.' == c) {
		if (!Inlist) rderror("unexpected '.'", UNDEF);
		return DOT;
	}
	else if (symbolic(c)) {
		return rdsymfix(c, 10, 1);
	}
	else {
		rderror("funny input character, code", mkfix(c));
	}
	return NIL;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
movabsq $0x100002600, %r15      # imm = 0x100002600
pushq $-0x1
popq %rbx
callq 0x278c
movl %eax, %r14d
cmpl $0x3b, %r14d
ja 0x40d5
movl %r14d, %eax
cmpq $0x3b, %rax
jne 0x40a6
cmpl $-0x1, %r14d
je 0x4081
cmpl $0xa, %r14d
je 0x4081
callq 0x278c
movl %eax, %r14d
jmp 0x4090
btq %rax, %r15
jae 0x40d5
cmpl $0x0, 0x1357d(%rip)     # 0x17630
jne 0x42cd
cmpq $0x0, 0x13567(%rip)     # 0x17628
jne 0x42cd
cmpl $0xa, %r14d
jne 0x4079
incl 0x13061(%rip)           # 0x17134
jmp 0x4079
cmpl $0x0, 0x13554(%rip)     # 0x17630
jne 0x42cd
cmpq $0x0, 0x1353e(%rip)     # 0x17628
jne 0x42cd
leal -0x22(%r14), %eax
cmpl $0x7, %eax
ja 0x4118
leaq 0xbf04(%rip), %rcx      # 0x10004
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
jmp 0x46e3
cmpl $-0x1, %r14d
jne 0x4126
pushq $-0x3
popq %rbx
jmp 0x42cd
movl %r14d, %eax
andl $-0x21, %eax
cmpl $0x40, %eax
jne 0x419c
movl 0x13505(%rip), %edi     # 0x1763c
jmp 0x415e
pushq $-0x5
popq %rbx
cmpl $0x0, 0x134d9(%rip)     # 0x1761c
jne 0x42cd
leaq 0xc445(%rip), %rdi      # 0x10595
pushq $-0x4
popq %rsi
jmp 0x42c8
movl 0x134da(%rip), %edi     # 0x17638
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
jmp 0x48dc
callq 0x278c
cmpl $0x28, %eax
je 0x41d4
movl %eax, %ebx
cmpl $0x5c, %eax
jne 0x41e3
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
jmp 0x3dab
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
jmp 0x3f12
cmpl $0x2e, %r14d
je 0x421f
cmpl $0x2c, %r14d
jne 0x423b
movl 0x1346e(%rip), %eax     # 0x17620
orl 0x13464(%rip), %eax     # 0x1761c
je 0x4276
callq 0x278c
cmpl $0x40, %eax
jne 0x42da
movl 0x1346e(%rip), %edi     # 0x17640
jmp 0x415e
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
jmp 0x42ec
callq 0x2230
movq (%rax), %rax
movslq %ebx, %rcx
testb $0x8, 0x1(%rax,%rcx,2)
jne 0x4265
movzbl %bl, %edi
pushq $-0x1
popq %rbx
pushq $0x1
popq %rbp
movl %ebx, %esi
movl %ebp, %edx
callq 0x2f8c
pushq $-0xc
popq %rdi
movl %eax, %esi
movl %ebp, %edx
callq 0x2f8c
leaq 0xc36e(%rip), %rdi      # 0x10588
jmp 0x42c6
pushq $-0x6
popq %rbx
cmpl $0x0, 0x133f3(%rip)     # 0x1761c
jne 0x42cd
leaq 0xc36e(%rip), %rdi      # 0x105a4
jmp 0x4150
callq 0x2230
movq (%rax), %rax
movslq %r14d, %rcx
testb $0xc, 0x1(%rax,%rcx,2)
je 0x4285
pushq $0xa
popq %rsi
pushq $0x1
popq %rdx
movl %r14d, %edi
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
jmp 0x451f
movl %ebx, %edi
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
jmp 0x464e
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
jmp 0x4908
testl %r14d, %r14d
je 0x42a1
leaq 0xc219(%rip), %rdi      # 0x104aa
pushq $0x12
popq %rdx
movl %r14d, %esi
callq 0x20d0
testq %rax, %rax
jne 0x424d
pushq $-0x1
popq %rbx
pushq $0x1
popq %rbp
movl %r14d, %edi
movl %ebx, %esi
movl %ebp, %edx
callq 0x2f8c
pushq $-0xe
popq %rdi
movl %eax, %esi
movl %ebp, %edx
callq 0x2f8c
leaq 0xc2ed(%rip), %rdi      # 0x105b3
movl %eax, %esi
callq 0x3d93
movl %ebx, %eax
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
movl %eax, %edi
callq 0x27ec
movl 0x1335d(%rip), %edi     # 0x17644
jmp 0x415e