// File: /workspace/github_c_makefile_star2_O1/azhai[P]mlite/mlite.c
// Function: read_list
cell read_list(int lst, int delim) {
	cell	n,	/* Node read */
		m,	/* List */
		a;	/* Used to append nodes to m */
	cell	new;
	int	c;	/* Member counter */
	char	badcons[] = "malformed list constructor (::)";
	char	msg[80];

	if (!Level)
		Opening_line = Line_no;
	if (++Level > MAX_IO_DEPTH) {
		error("reader: too many nested lists or tuples", NOEXPR);
		return NIL;
	}
	m = node3(NIL, NIL, lst);		/* root */
	save(m);
	a = NIL;
	c = 0;
	while (1) {
		if (Error_flag) {
			unsave(1);
			return NIL;
		}
		n = read_form();
		if (n == END_OF_FILE)  {
			if (Load_level) {
				unsave(1);
				return END_OF_FILE;
			}
			sprintf(msg, "missing ')', started in line %d",
					Opening_line);
			error(msg, NOEXPR);
		}
		if (n == TOK_CONS) {
			if (c != 1 || lst == 0) {
				n = S_cons;
			}
			else {
				n = read_form();
				cdr(a) = n;
				if (	(!list_p(n) && !symbol_p(n)) ||
					read_form() != TOK_RBRACK
				) {
					error(badcons, NOEXPR);
					continue;
				}
				unsave(1);
				Level--;
				return m;
			}
		}
		if (n == TOK_RPAREN || n == TOK_RBRACK) {
			if (n != delim)
				error(n == TOK_RPAREN?
				  "expected ']' instead of `)'":
				  "expected `)' instead of `]'",
				  NOEXPR);
			break;
		}
		if (a == NIL)
			a = m;		/* First member: insert at root */
		else
			a = cdr(a);	/* Subsequent members: append */
		car(a) = n;
		set(cdr(a), node3(NIL, NIL, lst)); /* Space for next member */
		c++;
	}
	Level--;
	if (a != NIL)
		cdr(a) = NIL;	/* Remove trailing empty node */
	unsave(1);
	return c? m: NIL;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x88, %rsp
movl %edi, %r12d
movaps 0x105ff(%rip), %xmm0    # 0x17930
movaps %xmm0, -0x50(%rbp)
movaps 0x105e4(%rip), %xmm0    # 0x17920
movaps %xmm0, -0x60(%rbp)
movl 0x1733a(%rip), %eax     # 0x1e680
testl %eax, %eax
jne 0x7356
movl 0x17280(%rip), %ecx     # 0x1e5d0
movl %ecx, 0x1732e(%rip)     # 0x1e684
leal 0x1(%rax), %ecx
movl %ecx, 0x17321(%rip)     # 0x1e680
cmpl $0x10000, %eax          # imm = 0x10000
jl 0x737b
leaq 0xf034(%rip), %rdi      # 0x163a1
movq $-0x8, %rsi
callq 0x33eb
jmp 0x73c3
movl %esi, -0x34(%rbp)
movq $-0x1, %rdi
movq $-0x1, %rsi
movl %r12d, %edx
callq 0x36e8
movq 0x16d8d(%rip), %rsi     # 0x1e128
movq %rax, -0x30(%rbp)
movq %rax, %rdi
xorl %edx, %edx
callq 0x36e8
movq %rax, 0x16d78(%rip)     # 0x1e128
cmpl $0x0, 0x171fd(%rip)     # 0x1e5b4
je 0x73dc
movl $0x1, %edi
callq 0x3851
movq $-0x1, %rax
addq $0x88, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq $-0x1, %r13
xorl %r15d, %r15d
callq 0x75e0
cmpq $-0x67, %rax
je 0x7442
movq %rax, %rbx
cmpq $-0x4, %rax
jne 0x74e5
cmpl $0x0, 0x17283(%rip)     # 0x1e688
jne 0x754f
movl 0x17273(%rip), %edx     # 0x1e684
leaq -0xb0(%rbp), %r14
movq %r14, %rdi
leaq 0xefa7(%rip), %rsi      # 0x163c9
xorl %eax, %eax
callq 0x31f0
movq %r14, %rdi
movq $-0x8, %rsi
callq 0x33eb
cmpq $-0x67, %rbx
jne 0x74e5
testl %r12d, %r12d
je 0x74de
cmpl $0x1, %r15d
jne 0x74de
callq 0x75e0
movq 0x1715f(%rip), %rcx     # 0x1e5c0
movq %rax, (%rcx,%r13,8)
testq %rax, %rax
js 0x747a
movq 0x1716f(%rip), %rcx     # 0x1e5e0
movzbl (%rcx,%rax), %ecx
testb $0x11, %cl
je 0x74a2
cmpq $-0x1, %rax
je 0x74a7
testq %rax, %rax
js 0x74b6
movq 0x17154(%rip), %rcx     # 0x1e5e0
testb $0x10, (%rcx,%rax)
je 0x74b6
movq 0x16cd7(%rip), %rcx     # 0x1e170
cmpq $-0x22, (%rcx,%rax,8)
je 0x74a7
jmp 0x74b6
testb $0x8, %cl
je 0x7480
callq 0x75e0
cmpq $-0x6b, %rax
je 0x7565
leaq -0x60(%rbp), %rdi
movq $-0x8, %rsi
callq 0x33eb
movl $0x1, %r15d
cmpl $0x0, 0x170e1(%rip)     # 0x1e5b4
je 0x73e6
jmp 0x73b9
movq 0x171ab(%rip), %rbx     # 0x1e690
movq %rbx, %rax
orq $0x2, %rax
cmpq $-0x69, %rax
je 0x757e
movq -0x30(%rbp), %r14
cmpq $-0x1, %r13
je 0x750b
movq 0x170b9(%rip), %rax     # 0x1e5c0
movq (%rax,%r13,8), %r14
movq 0x16c5e(%rip), %rax     # 0x1e170
movq %rbx, (%rax,%r14,8)
movq $-0x1, %rdi
movq $-0x1, %rsi
movl %r12d, %edx
callq 0x36e8
movq 0x1708d(%rip), %rcx     # 0x1e5c0
movq %rax, (%rcx,%r14,8)
incl %r15d
cmpl $0x0, 0x17073(%rip)     # 0x1e5b4
movq %r14, %r13
je 0x73e6
jmp 0x73b9
movl $0x1, %edi
callq 0x3851
movq $-0x4, %rax
jmp 0x73ca
movl $0x1, %edi
callq 0x3851
decl 0x1710b(%rip)           # 0x1e680
movq -0x30(%rbp), %rax
jmp 0x73ca
movslq -0x34(%rbp), %rax
cmpq %rax, %rbx
je 0x75a9
cmpq $-0x69, %rbx
leaq 0xee57(%rip), %rax      # 0x163e9
leaq 0xee6c(%rip), %rdi      # 0x16405
cmoveq %rax, %rdi
movq $-0x8, %rsi
callq 0x33eb
decl 0x170d1(%rip)           # 0x1e680
cmpq $-0x1, %r13
je 0x75c4
movq 0x17004(%rip), %rax     # 0x1e5c0
movq $-0x1, (%rax,%r13,8)
movl $0x1, %edi
callq 0x3851
xorl %eax, %eax
cmpl $0x1, %r15d
sbbq %rax, %rax
orq -0x30(%rbp), %rax
jmp 0x73ca