// File: /workspace/github_c_makefile_star2_O3/blakemcbride[P]LISP9/ls9.c
// Function: rdchar
cell rdchar(void) {
	char	name[TOKLEN+1];
	int	i, c, v;

	c = readc();
	name[0] = c;
	c = readc();
	for (i=1; i<TOKLEN; i++) {
		if (Intr || Readerr) return NIL;
		if (!isalpha(c) && !isdigit(c)) break;
		name[i] = c;
		c = readc();
	}
	name[i] = 0;
	rejectc(c);
	if (TOKLEN == i)
		rderror("char name too long",
			mkstr(name, strlen(name)));
	if (!strcmp_ci(name, "ht")) return mkchar(9);
	if (!strcmp_ci(name, "nl")) return mkchar(10);
	if (!strcmp_ci(name, "sp")) return mkchar(' ');
	v = octchar(&name[1]);
	if ('\\' == *name && v >= 0) return mkchar(v);
	if (i != 1) rderror("bad character name",
			mkstr(name, strlen(name)));
	return mkchar(name[0]);
}

// Assembly:
pushq %r14
pushq %rbx
subq $0x58, %rsp
callq 0x28ac
movb %al, (%rsp)
movl $0x1, %r14d
callq 0x28ac
movl %eax, %ebx
cmpl $0x0, 0x154bb(%rip)     # 0x19630
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
jne 0x431e
cmpq $0x0, 0x154a0(%rip)     # 0x19628
jne 0x431e
callq 0x2230
movq (%rax), %rax
movslq %ebx, %rcx
testb $0xc, 0x1(%rax,%rcx,2)
je 0x41ba
movb %bl, (%rsp,%r14)
callq 0x28ac
movl %eax, %ebx
incq %r14
cmpq $0x50, %r14
jne 0x416e
movl $0x50, %r14d
movl %r14d, %eax
movb $0x0, (%rsp,%rax)
cmpq $0x0, 0x1538f(%rip)     # 0x19558
je 0x41d3
movb %bl, 0x14f83(%rip)      # 0x19154
jmp 0x41ec
movslq 0x1536e(%rip), %rax     # 0x19548
leaq 0x1537f(%rip), %rcx     # 0x19560
movq (%rcx,%rax,8), %rsi
movl %ebx, %edi
callq 0x2180
cmpl $0x50, %r14d
jne 0x4223
movq %rsp, %rbx
movq %rbx, %rdi
callq 0x2080
movq %rbx, %rdi
movl %eax, %esi
callq 0x27b0
cmpq $0x0, 0x15349(%rip)     # 0x19558
je 0x4326
leaq 0xf287(%rip), %rax      # 0x134a3
movq %rax, 0x15405(%rip)     # 0x19628
leaq 0xf28c(%rip), %rsi      # 0x134b6
movq %rsp, %rdi
callq 0x40f6
testl %eax, %eax
je 0x42b2
leaq 0xf27c(%rip), %rsi      # 0x134b9
movq %rsp, %rdi
callq 0x40f6
testl %eax, %eax
je 0x42b9
leaq 0xfb2d(%rip), %rsi      # 0x13d7d
movq %rsp, %rdi
callq 0x40f6
testl %eax, %eax
je 0x42f9
movb 0x1(%rsp), %al
movl %eax, %ecx
andb $-0x8, %cl
cmpb $0x30, %cl
jne 0x42c0
xorl %ecx, %ecx
leaq 0x2(%rsp), %rdx
movzbl %al, %eax
leal (%rax,%rcx,8), %ecx
addl $-0x30, %ecx
movb (%rdx), %al
movl %eax, %esi
andb $-0x8, %sil
incq %rdx
cmpb $0x30, %sil
je 0x4275
cmpl $0x100, %ecx            # imm = 0x100
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
cmovll %ecx, %edx
xorl %ecx, %ecx
negb %al
sbbl %ecx, %ecx
cmpb $0x5c, (%rsp)
jne 0x42c0
orl %edx, %ecx
js 0x42c0
movzbl %cl, %edi
jmp 0x42fe
movl $0x9, %edi
jmp 0x42fe
movl $0xa, %edi
jmp 0x42fe
cmpl $0x1, %r14d
je 0x42f3
movq %rsp, %rbx
movq %rbx, %rdi
callq 0x2080
movq %rbx, %rdi
movl %eax, %esi
callq 0x27b0
cmpq $0x0, 0x15275(%rip)     # 0x19558
je 0x4334
leaq 0xf1d0(%rip), %rax      # 0x134bc
movq %rax, 0x15335(%rip)     # 0x19628
movzbl (%rsp), %edi
jmp 0x42fe
movl $0x20, %edi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
movl $0x1, %edx
callq 0x30e7
movl $0xfffffff4, %edi       # imm = 0xFFFFFFF4
movl %eax, %esi
movl $0x1, %edx
callq 0x30e7
addq $0x58, %rsp
popq %rbx
popq %r14
retq
leaq 0xf176(%rip), %rdi      # 0x134a3
movl %eax, %esi
callq 0x2643
leaq 0xf181(%rip), %rdi      # 0x134bc
jmp 0x432d