// File: /workspace/github_c_makefile_star2_O0/blakemcbride[P]LISP9/ls9.c
// Function: complsubr0
void complsubr0(cell x, int op) {
	if (NIL == cdr(x)) {
		if (OP_PLUS == op)
			emitq(Zero);
		else if (OP_TIMES == op)
			emitq(One);
		else if (OP_VCONC == op)
			emitq(Nullvec);
		else if (OP_SCONC == op)
			emitq(Nullstr);
		else if (OP_CONC == op)
			emitq(NIL);
		else if (OP_NCONC == op)
			emitq(NIL);
	}
	else if (NIL == cddr(x)) {
		compexpr(cadr(x), 0);
	}
	else if (OP_CONC == op || OP_SCONC == op ||
		 OP_VCONC == op || OP_NCONC == op)
	{
		x = reverse(cdr(x));
		protect(x);
		emitq(NIL);
		while (x != NIL) {
			emitop(OP_PUSH);
			compexpr(car(x), 0);
			emitop(OP_CONS);
			x = cdr(x);
		}
		unprot(1);
		emitop(op);
	}
	else {
		x = cdr(x);
		protect(x);
		compexpr(car(x), 0);
		x = cdr(x);
		while (x != NIL) {
			emitop(OP_PUSH);
			compexpr(car(x), 0);
			emitop(op);
			x = cdr(x);
		}
		unprot(1);
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movl %edi, -0x4(%rbp)
movl %esi, -0x8(%rbp)
movq 0x140c3(%rip), %rcx     # 0x20348
movslq -0x4(%rbp), %rdx
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
cmpl (%rcx,%rdx,4), %eax
jne 0xc32c
movl $0x66, %eax
cmpl -0x8(%rbp), %eax
jne 0xc2ae
movl 0x13f05(%rip), %edi     # 0x201ac
callq 0xa320
jmp 0xc327
movl $0x8c, %eax
cmpl -0x8(%rbp), %eax
jne 0xc2c5
movl 0x13ef2(%rip), %edi     # 0x201b0
callq 0xa320
jmp 0xc325
movl $0x90, %eax
cmpl -0x8(%rbp), %eax
jne 0xc2dc
movl 0x13ea7(%rip), %edi     # 0x2017c
callq 0xa320
jmp 0xc323
movl $0x6f, %eax
cmpl -0x8(%rbp), %eax
jne 0xc2f3
movl 0x13e8c(%rip), %edi     # 0x20178
callq 0xa320
jmp 0xc321
movl $0x32, %eax
cmpl -0x8(%rbp), %eax
jne 0xc309
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
callq 0xa320
jmp 0xc31f
movl $0x59, %eax
cmpl -0x8(%rbp), %eax
jne 0xc31d
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
callq 0xa320
jmp 0xc31f
jmp 0xc321
jmp 0xc323
jmp 0xc325
jmp 0xc327
jmp 0xc4cc
movq 0x14015(%rip), %rcx     # 0x20348
movq 0x1400e(%rip), %rax     # 0x20348
movslq -0x4(%rbp), %rdx
movslq (%rax,%rdx,4), %rdx
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
cmpl (%rcx,%rdx,4), %eax
jne 0xc371
movq 0x13fed(%rip), %rax     # 0x20340
movq 0x13fee(%rip), %rcx     # 0x20348
movslq -0x4(%rbp), %rdx
movslq (%rcx,%rdx,4), %rcx
movl (%rax,%rcx,4), %edi
xorl %esi, %esi
callq 0xb170
jmp 0xc4ca
movl $0x32, %eax
cmpl -0x8(%rbp), %eax
je 0xc39d
movl $0x6f, %eax
cmpl -0x8(%rbp), %eax
je 0xc39d
movl $0x90, %eax
cmpl -0x8(%rbp), %eax
je 0xc39d
movl $0x59, %eax
cmpl -0x8(%rbp), %eax
jne 0xc431
movq 0x13fa4(%rip), %rax     # 0x20348
movslq -0x4(%rbp), %rcx
movl (%rax,%rcx,4), %edi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x4df0
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %edi
movl 0x13daf(%rip), %esi     # 0x20170
xorl %edx, %edx
callq 0x3990
movl %eax, 0x13da2(%rip)     # 0x20170
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
callq 0xa320
cmpl $-0x1, -0x4(%rbp)
je 0xc41a
movl $0x8, %edi
callq 0xa120
movq 0x13f51(%rip), %rax     # 0x20340
movslq -0x4(%rbp), %rcx
movl (%rax,%rcx,4), %edi
xorl %esi, %esi
callq 0xb170
movl $0x33, %edi
callq 0xa120
movq 0x13f3a(%rip), %rax     # 0x20348
movslq -0x4(%rbp), %rcx
movl (%rax,%rcx,4), %eax
movl %eax, -0x4(%rbp)
jmp 0xc3d8
movl $0x1, %edi
callq 0x3d00
movl -0x8(%rbp), %edi
callq 0xa120
jmp 0xc4c8
movq 0x13f10(%rip), %rax     # 0x20348
movslq -0x4(%rbp), %rcx
movl (%rax,%rcx,4), %eax
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %edi
movl 0x13d25(%rip), %esi     # 0x20170
xorl %edx, %edx
callq 0x3990
movl %eax, 0x13d18(%rip)     # 0x20170
movq 0x13ee1(%rip), %rax     # 0x20340
movslq -0x4(%rbp), %rcx
movl (%rax,%rcx,4), %edi
xorl %esi, %esi
callq 0xb170
movq 0x13ed4(%rip), %rax     # 0x20348
movslq -0x4(%rbp), %rcx
movl (%rax,%rcx,4), %eax
movl %eax, -0x4(%rbp)
cmpl $-0x1, -0x4(%rbp)
je 0xc4be
movl $0x8, %edi
callq 0xa120
movq 0x13eab(%rip), %rax     # 0x20340
movslq -0x4(%rbp), %rcx
movl (%rax,%rcx,4), %edi
xorl %esi, %esi
callq 0xb170
movl -0x8(%rbp), %edi
callq 0xa120
movq 0x13e96(%rip), %rax     # 0x20348
movslq -0x4(%rbp), %rcx
movl (%rax,%rcx,4), %eax
movl %eax, -0x4(%rbp)
jmp 0xc47e
movl $0x1, %edi
callq 0x3d00
jmp 0xc4ca
jmp 0xc4cc
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)