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

	c = readc();
	u = 0;
	for (i=0; i<TOKLEN; i++) {
		if (Intr || Readerr) return NIL;
		if ('"' == c) break;
		if ('\n' == c) Line++;
		if (EOF == c) rderror("EOF in string", UNDEF);
		if ('\\' == c) {
			c = readc();
			if ('\\' == c || '"' == c) {
				/**/
			}
			else if ('t' == c) {
				c = '\t';
			}
			else if ('n' == c) {
				c = '\n';
			}
			else if (octalp(c)) {
				v = 0;
				j = 0;
				while (j < 3 && octalp(c)) {
					v = v * 8 + c-'0';
					c = readc();
					j++;
				}
				rejectc(c);
				if (v > 255) rderror("invalid char", mkfix(v));
				c = v;
			}
			else if (0 == u) {
				u = c;
			}
		}
		name[i] = c;
		c = readc();
	}
	name[i] = 0;
	if (u) rderror("unknown slash sequence", mkchar(u));
	if (i >= TOKLEN) rderror("string too long", mkstr(name, i));
	if (u) return NIL;
	n = mkstr(name, i);
	tag(n) |= CONST_TAG;
	return n;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x58, %rsp
xorl %r14d, %r14d
callq 0x28ac
leaq 0xe84d(%rip), %r12      # 0x13566
movl $0xffffffff, %ebx       # imm = 0xFFFFFFFF
xorl %ebp, %ebp
cmpl $0x0, 0x14909(%rip)     # 0x19630
jne 0x4f1d
cmpq $0x0, 0x148f3(%rip)     # 0x19628
jne 0x4f1d
cmpl $0x21, %eax
jg 0x4d5e
cmpl $-0x1, %eax
je 0x4db1
cmpl $0xa, %eax
jne 0x4e60
incl 0x143e0(%rip)           # 0x19134
movl $0xa, %eax
jmp 0x4e60
cmpl $0x5c, %eax
jne 0x4dd0
callq 0x28ac
cmpl $0x5b, %eax
jg 0x4dde
leal -0x30(%rax), %ecx
cmpl $0x8, %ecx
jae 0x4e78
xorl %r15d, %r15d
xorl %r13d, %r13d
leal (%rax,%r15,8), %r15d
addl $-0x30, %r15d
callq 0x28ac
cmpl $0x1, %r13d
ja 0x4d9f
incl %r13d
movl %eax, %ecx
andl $-0x8, %ecx
cmpl $0x30, %ecx
je 0x4d7f
cmpq $0x0, 0x147b1(%rip)     # 0x19558
je 0x4dfc
movb %al, 0x143a5(%rip)      # 0x19154
jmp 0x4e15
cmpq $0x0, 0x1479f(%rip)     # 0x19558
je 0x4f2e
movq %r12, 0x14862(%rip)     # 0x19628
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
jmp 0x4e60
cmpl $0x22, %eax
jne 0x4e60
jmp 0x4e8a
cmpl $0x5c, %eax
je 0x4e60
cmpl $0x6e, %eax
je 0x4d54
cmpl $0x74, %eax
jne 0x4e7d
movl $0x9, %eax
jmp 0x4e60
movslq 0x14745(%rip), %rcx     # 0x19548
leaq 0x14756(%rip), %rdx     # 0x19560
movq (%rdx,%rcx,8), %rsi
movl %eax, %edi
callq 0x2180
cmpl $0x100, %r15d           # imm = 0x100
jl 0x4e5d
movl %r15d, %edi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
movl $0x1, %edx
callq 0x30e7
movl $0xfffffff2, %edi       # imm = 0xFFFFFFF2
movl %eax, %esi
movl $0x1, %edx
callq 0x30e7
cmpq $0x0, 0x1470f(%rip)     # 0x19558
je 0x4f3f
leaq 0xe71e(%rip), %rax      # 0x13574
movq %rax, 0x147cb(%rip)     # 0x19628
movl %r15d, %eax
movb %al, (%rsp,%r14)
callq 0x28ac
incq %r14
cmpq $0x50, %r14
jne 0x4d20
jmp 0x4e84
cmpl $0x22, %eax
je 0x4e60
testl %ebp, %ebp
cmovel %eax, %ebp
jmp 0x4e60
movl $0x50, %r14d
movl %r14d, %eax
movb $0x0, (%rsp,%rax)
testl %ebp, %ebp
je 0x4ed5
movzbl %bpl, %edi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
movl $0x1, %edx
callq 0x30e7
movl $0xfffffff4, %edi       # imm = 0xFFFFFFF4
movl %eax, %esi
movl $0x1, %edx
callq 0x30e7
cmpq $0x0, 0x14697(%rip)     # 0x19558
je 0x4f48
leaq 0xe6b3(%rip), %rax      # 0x13581
movq %rax, 0x14753(%rip)     # 0x19628
cmpl $0x50, %r14d
jb 0x4efe
movq %rsp, %rdi
movl %r14d, %esi
callq 0x27b0
cmpq $0x0, 0x1466a(%rip)     # 0x19558
je 0x4f51
leaq 0xe6a1(%rip), %rax      # 0x13598
movq %rax, 0x1472a(%rip)     # 0x19628
testl %ebp, %ebp
jne 0x4f1d
movq %rsp, %rdi
movl %r14d, %esi
callq 0x27b0
movl %eax, %ebx
movq 0x1443a(%rip), %rax     # 0x19350
movslq %ebx, %rcx
orb $-0x80, (%rax,%rcx)
movl %ebx, %eax
addq $0x58, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0xe631(%rip), %rdi      # 0x13566
movl $0xfffffffc, %esi       # imm = 0xFFFFFFFC
callq 0x2643
leaq 0xe62e(%rip), %rdi      # 0x13574
jmp 0x4f58
leaq 0xe632(%rip), %rdi      # 0x13581
jmp 0x4f58
leaq 0xe640(%rip), %rdi      # 0x13598
movl %eax, %esi
callq 0x2643