// File: /workspace/github_c_makefile_star2_O3/azhai[P]mlite/mlite.c
// Function: destructuring_bind
cell destructuring_bind(cell v, cell a) {
	cell	s;
	cell	rib, new;

	s = NIL;
	save(s);
	rib = NIL;
	save(rib);
	while (1) {
		if (symbol_p(v) || eqv_p(v, a)) {
			if (symbol_p(v) && consname_p(v) && v != a) {
				unsave(2);
				return UNDEFINED;
			}
			else {
				if (	symbol_p(v) &&
					!consname_p(v) &&
					v != S_ignore
				) {
					Tmp = make_binding(v, a);
					rib = node(Tmp, rib);
					car(Stack) = rib;
				}
				if (cadr(Stack) == NIL)
					break;
				a = caadr(Stack);
				v = cadadr(Stack);
				cadr(Stack) = cddadr(Stack);
			}
		}
		else if (cons_p(v) && cons_p(a) && Tag[v] == Tag[a]) {
			set(cadr(Stack), node(cdr(v), cadr(Stack)));
			set(cadr(Stack), node(cdr(a), cadr(Stack)));
			v = car(v);
			a = car(a);
			continue;
		}
		else {
			unsave(2);
			return UNDEFINED;
		}
	}
	rib = car(Stack);
	unsave(2);
	Tmp = NIL;
	return rib;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
movq %rsi, %r14
movq %rdi, %r15
movq 0xa665(%rip), %rsi      # 0x1e128
movq $-0x1, %rbx
movq $-0x1, %rdi
xorl %edx, %edx
callq 0x36e8
movq %rax, 0xa649(%rip)      # 0x1e128
movq $-0x1, %rdi
movq %rax, %rsi
xorl %edx, %edx
callq 0x36e8
movq %rax, 0xa631(%rip)      # 0x1e128
testq %r15, %r15
js 0x13bf7
movq 0xaad9(%rip), %rax      # 0x1e5e0
testb $0x10, (%rax,%r15)
je 0x13b20
movq 0xa65b(%rip), %rax      # 0x1e170
cmpq $-0x22, (%rax,%r15,8)
je 0x13c56
movq %r15, %rdi
movq %r14, %rsi
callq 0x106ff
movq 0xaaae(%rip), %rdx      # 0x1e5e0
movzbl (%rdx,%r15), %ecx
testl %eax, %eax
jne 0x13c4a
testb $0x1, %cl
jne 0x13cde
testb $0x10, %cl
jne 0x13cde
testq %r14, %r14
js 0x13cde
movb (%rdx,%r14), %al
cmpb %al, %cl
jne 0x13cde
andb $0x11, %al
jne 0x13cde
movq 0xaa4b(%rip), %rax      # 0x1e5c0
movq (%rax,%r15,8), %rdi
movq 0xa5f0(%rip), %rcx      # 0x1e170
movq 0xa5a1(%rip), %rdx      # 0x1e128
movq (%rax,%rdx,8), %rax
movq (%rcx,%rax,8), %rsi
xorl %edx, %edx
callq 0x36e8
movq 0xa5d3(%rip), %rcx      # 0x1e170
movq 0xaa1c(%rip), %rdx      # 0x1e5c0
movq 0xa57d(%rip), %rsi      # 0x1e128
movq (%rdx,%rsi,8), %rsi
movq %rax, (%rcx,%rsi,8)
movq (%rdx,%r14,8), %rdi
movq 0xa56a(%rip), %rax      # 0x1e128
movq (%rdx,%rax,8), %rax
movq (%rcx,%rax,8), %rsi
xorl %edx, %edx
callq 0x36e8
movq 0xa59c(%rip), %rcx      # 0x1e170
movq 0xa9e5(%rip), %rdx      # 0x1e5c0
movq 0xa546(%rip), %rsi      # 0x1e128
movq (%rdx,%rsi,8), %rdx
movq %rax, (%rcx,%rdx,8)
movq (%rcx,%r15,8), %r15
movq (%rcx,%r14,8), %r14
jmp 0x13af7
movq %r15, %rdi
movq %r14, %rsi
callq 0x106ff
testl %eax, %eax
je 0x13cde
movq 0xa55f(%rip), %rax      # 0x1e170
movq 0xa9a8(%rip), %rcx      # 0x1e5c0
movq 0xa509(%rip), %rsi      # 0x1e128
movq (%rcx,%rsi,8), %rdx
movq (%rax,%rdx,8), %rdi
cmpq $-0x1, %rdi
je 0x13cfd
movq (%rax,%rdi,8), %r14
movq (%rcx,%rdi,8), %rsi
movq (%rax,%rsi,8), %r15
movq (%rcx,%rsi,8), %rcx
movq %rcx, (%rax,%rdx,8)
jmp 0x13af7
movq 0xa51f(%rip), %rax      # 0x1e170
testb $0x10, %cl
je 0x13c11
cmpq $-0x22, (%rax,%r15,8)
jne 0x13c11
movq 0xa984(%rip), %rcx      # 0x1e5e8
movq 0xa955(%rip), %rdx      # 0x1e5c0
movq (%rdx,%r15,8), %rdx
cmpb $0x3a, (%rcx,%rdx,8)
jne 0x13c7a
cmpq %r14, %r15
jne 0x13cde
movq 0xa967(%rip), %rcx      # 0x1e5e8
movq 0xa938(%rip), %rdx      # 0x1e5c0
movq (%rdx,%r15,8), %rdx
cmpb $0x3a, (%rcx,%rdx,8)
je 0x13c11
cmpq 0xaf43(%rip), %r15      # 0x1ebe0
je 0x13c11
movq %r15, %rdi
movq %r14, %rsi
xorl %edx, %edx
callq 0x36e8
movq %rax, 0xa459(%rip)      # 0x1e110
movq %rax, %rdi
movq %rbx, %rsi
xorl %edx, %edx
callq 0x36e8
movq %rax, %rbx
movq 0xa4a2(%rip), %rax      # 0x1e170
movq 0xa453(%rip), %rcx      # 0x1e128
movq %rbx, (%rax,%rcx,8)
jmp 0x13c11
movl $0x2, %edi
callq 0x384f
movq $-0x5, %rbx
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
movq (%rax,%rsi,8), %rbx
movl $0x2, %edi
callq 0x384f
movq $-0x1, 0xa3fa(%rip) # 0x1e110
jmp 0x13cef