// File: /workspace/github_c_makefile_star2_O2/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 $0x68, %rsp
xorl %ebp, %ebp
callq 0x278c
movl %eax, %r13d
pushq $-0x1
popq %rbx
leaq 0xbe21(%rip), %r15      # 0x10526
pushq $-0x4
popq %r14
pushq $0xa
popq %r12
movl $0x0, 0xc(%rsp)
cmpq $0x50, %rbp
je 0x4844
cmpl $0x0, 0x12f0a(%rip)     # 0x17630
jne 0x48c6
cmpq $0x0, 0x12ef4(%rip)     # 0x17628
jne 0x48c6
cmpl $-0x1, %r13d
je 0x4769
cmpl $0xa, %r13d
je 0x475b
cmpl $0x5c, %r13d
je 0x477c
cmpl $0x22, %r13d
jne 0x482f
jmp 0x48d7
incl 0x129d3(%rip)           # 0x17134
movl %r12d, %r13d
jmp 0x482f
movq %r15, %rdi
movl %r14d, %esi
callq 0x3d93
movl %ebx, %r13d
jmp 0x482f
callq 0x278c
leal -0x30(%rax), %ecx
cmpl $0x8, %ecx
jae 0x47ff
movl %r14d, %r12d
movq %r15, %r14
xorl %r15d, %r15d
xorl %r13d, %r13d
cmpl $0x2, %r15d
ja 0x47b7
movl %eax, %ecx
andl $-0x8, %ecx
cmpl $0x30, %ecx
jne 0x47b7
leal (%rax,%r13,8), %r13d
addl $-0x30, %r13d
callq 0x278c
incl %r15d
jmp 0x4795
movl %eax, %edi
callq 0x27ec
cmpl $0x100, %r13d           # imm = 0x100
jl 0x47f3
movl %r13d, %edi
movl %ebx, %esi
pushq $0x1
popq %r15
movl %r15d, %edx
callq 0x2f8c
pushq $-0xe
popq %rdi
movl %eax, %esi
movl %r15d, %edx
callq 0x2f8c
leaq 0xbd48(%rip), %rdi      # 0x10534
movl %eax, %esi
callq 0x3d93
movq %r14, %r15
movl %r12d, %r14d
pushq $0xa
popq %r12
jmp 0x482f
cmpl $0x22, %eax
je 0x482c
cmpl $0x5c, %eax
je 0x482c
cmpl $0x6e, %eax
je 0x4761
cmpl $0x74, %eax
jne 0x481f
pushq $0x9
popq %rax
movl %eax, %r13d
jmp 0x482f
movl 0xc(%rsp), %ecx
testl %ecx, %ecx
cmovel %eax, %ecx
movl %ecx, 0xc(%rsp)
movl %eax, %r13d
movb %r13b, 0x10(%rsp,%rbp)
callq 0x278c
movl %eax, %r13d
incq %rbp
jmp 0x4715
pushq $0x50
popq %rbp
movl %ebp, %eax
movb $0x0, 0x10(%rsp,%rax)
movl 0xc(%rsp), %r15d
testl %r15d, %r15d
je 0x4886
movzbl %r15b, %edi
pushq $-0x1
popq %rsi
pushq $0x1
popq %r14
movl %r14d, %edx
callq 0x2f8c
pushq $-0xc
popq %rdi
movl %eax, %esi
movl %r14d, %edx
callq 0x2f8c
leaq 0xbcc2(%rip), %rdi      # 0x10541
movl %eax, %esi
callq 0x3d93
cmpl $0x50, %ebp
jb 0x48a5
leaq 0x10(%rsp), %rdi
movl %ebp, %esi
callq 0x2698
leaq 0xbcba(%rip), %rdi      # 0x10558
movl %eax, %esi
callq 0x3d93
testl %r15d, %r15d
jne 0x48c6
leaq 0x10(%rsp), %rdi
movl %ebp, %esi
callq 0x2698
movl %eax, %ebx
movq 0x12a91(%rip), %rax     # 0x17350
movslq %ebx, %rcx
orb $-0x80, (%rax,%rcx)
movl %ebx, %eax
addq $0x68, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x4847