// File: /workspace/github_c_makefile_star2_O0/blakemcbride[P]LISP9/ls9.c
// Function: lconc
cell lconc(cell x) {
	cell	p, q, n, m;
	int	k;

	if (NIL == cdr(x)) return car(x);
	protect(n = cons(NIL, NIL));
	k = 0;
	for (p = x; cdr(p) != NIL; p = cdr(p)) {
		if (NIL == car(p)) continue;
		for (q = car(p); q != NIL; q = cdr(q)) {
			if (!pairp(q))
				expect("conc", "list", car(p));
			if (k != 0) {
				m = cons(NIL, NIL);
				cdr(n) = m;
				n = cdr(n);
			}
			car(n) = car(q);
			k++;
		}
	}
	m = unprot(1);
	if (0 == k) return car(p);
	cdr(n) = car(p);
	return m;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movl %edi, -0x8(%rbp)
movq 0xf586(%rip), %rcx      # 0x20348
movslq -0x8(%rbp), %rdx
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
cmpl (%rcx,%rdx,4), %eax
jne 0x10de6
movq 0xf569(%rip), %rax      # 0x20340
movslq -0x8(%rbp), %rcx
movl (%rax,%rcx,4), %eax
movl %eax, -0x4(%rbp)
jmp 0x10f8d
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
xorl %edx, %edx
movl %esi, %edi
callq 0x3990
movl %eax, %edi
movl %edi, -0x14(%rbp)
movl 0xf371(%rip), %esi      # 0x20170
xorl %edx, %edx
callq 0x3990
movl %eax, 0xf364(%rip)      # 0x20170
movl $0x0, -0x1c(%rbp)
movl -0x8(%rbp), %eax
movl %eax, -0xc(%rbp)
movq 0xf528(%rip), %rax      # 0x20348
movslq -0xc(%rbp), %rcx
cmpl $-0x1, (%rax,%rcx,4)
je 0x10f44
movq 0xf50b(%rip), %rcx      # 0x20340
movslq -0xc(%rbp), %rdx
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
cmpl (%rcx,%rdx,4), %eax
jne 0x10e48
jmp 0x10f2e
movq 0xf4f1(%rip), %rax      # 0x20340
movslq -0xc(%rbp), %rcx
movl (%rax,%rcx,4), %eax
movl %eax, -0x10(%rbp)
cmpl $-0x1, -0x10(%rbp)
je 0x10f2c
cmpl $0x0, -0x10(%rbp)
jl 0x10e97
movq 0xf4e0(%rip), %rax      # 0x20350
movslq -0x10(%rbp), %rcx
movzbl (%rax,%rcx), %eax
andl $0x1, %eax
cmpl $0x0, %eax
jne 0x10e97
movq 0xf4c9(%rip), %rax      # 0x20350
movslq -0x10(%rbp), %rcx
movzbl (%rax,%rcx), %eax
andl $0x8, %eax
cmpl $0x0, %eax
je 0x10eb8
movq 0xf4a2(%rip), %rax      # 0x20340
movslq -0xc(%rbp), %rcx
movl (%rax,%rcx,4), %edx
leaq 0xb007(%rip), %rdi      # 0x1beb3
leaq 0xae7f(%rip), %rsi      # 0x1bd32
callq 0x2950
cmpl $0x0, -0x1c(%rbp)
je 0x10ef1
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
xorl %edx, %edx
movl %esi, %edi
callq 0x3990
movl %eax, -0x18(%rbp)
movl -0x18(%rbp), %edx
movq 0xf46f(%rip), %rax      # 0x20348
movslq -0x14(%rbp), %rcx
movl %edx, (%rax,%rcx,4)
movq 0xf461(%rip), %rax      # 0x20348
movslq -0x14(%rbp), %rcx
movl (%rax,%rcx,4), %eax
movl %eax, -0x14(%rbp)
movq 0xf448(%rip), %rax      # 0x20340
movslq -0x10(%rbp), %rcx
movl (%rax,%rcx,4), %edx
movq 0xf43a(%rip), %rax      # 0x20340
movslq -0x14(%rbp), %rcx
movl %edx, (%rax,%rcx,4)
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
movq 0xf42b(%rip), %rax      # 0x20348
movslq -0x10(%rbp), %rcx
movl (%rax,%rcx,4), %eax
movl %eax, -0x10(%rbp)
jmp 0x10e59
jmp 0x10f2e
movq 0xf413(%rip), %rax      # 0x20348
movslq -0xc(%rbp), %rcx
movl (%rax,%rcx,4), %eax
movl %eax, -0xc(%rbp)
jmp 0x10e19
movl $0x1, %edi
callq 0x3d00
movl %eax, -0x18(%rbp)
xorl %eax, %eax
cmpl -0x1c(%rbp), %eax
jne 0x10f6b
movq 0xf3e1(%rip), %rax      # 0x20340
movslq -0xc(%rbp), %rcx
movl (%rax,%rcx,4), %eax
movl %eax, -0x4(%rbp)
jmp 0x10f8d
movq 0xf3ce(%rip), %rax      # 0x20340
movslq -0xc(%rbp), %rcx
movl (%rax,%rcx,4), %edx
movq 0xf3c8(%rip), %rax      # 0x20348
movslq -0x14(%rbp), %rcx
movl %edx, (%rax,%rcx,4)
movl -0x18(%rbp), %eax
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)