// File: /workspace/github_c_makefile_star2_O2/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 0xa1e1(%rip), %rsi      # 0x1c128
pushq $-0x1
popq %rbx
movq %rbx, %rdi
xorl %edx, %edx
callq 0x3613
movq %rax, 0xa1cd(%rip)      # 0x1c128
movq %rbx, %rdi
movq %rax, %rsi
xorl %edx, %edx
callq 0x3613
movq %rax, 0xa1b9(%rip)      # 0x1c128
testq %r15, %r15
js 0x11f94
movq 0xa665(%rip), %rax      # 0x1c5e0
testb $0x10, (%rax,%r15)
je 0x11f94
movq 0xa1e7(%rip), %rax      # 0x1c170
cmpq $-0x22, (%rax,%r15,8)
je 0x12096
movq %r15, %rdi
movq %r14, %rsi
callq 0xf1b2
testl %eax, %eax
jne 0x12074
testq %r15, %r15
js 0x12157
movq 0xa629(%rip), %rax      # 0x1c5e0
movzbl (%rax,%r15), %ecx
testb $0x1, %cl
jne 0x12157
testb $0x10, %cl
jne 0x12157
testq %r14, %r14
js 0x12157
movb (%rax,%r14), %al
cmpb %al, %cl
jne 0x12157
andb $0x11, %al
jne 0x12157
movq 0xa5ce(%rip), %rax      # 0x1c5c0
movq (%rax,%r15,8), %rdi
movq 0xa173(%rip), %rcx      # 0x1c170
movq 0xa124(%rip), %rdx      # 0x1c128
movq (%rax,%rdx,8), %rax
movq (%rcx,%rax,8), %rsi
xorl %edx, %edx
callq 0x3613
movq 0xa156(%rip), %rcx      # 0x1c170
movq 0xa59f(%rip), %rdx      # 0x1c5c0
movq 0xa100(%rip), %rsi      # 0x1c128
movq (%rdx,%rsi,8), %rsi
movq %rax, (%rcx,%rsi,8)
movq (%rdx,%r14,8), %rdi
movq 0xa0ed(%rip), %rax      # 0x1c128
movq (%rdx,%rax,8), %rax
movq (%rcx,%rax,8), %rsi
xorl %edx, %edx
callq 0x3613
movq 0xa11f(%rip), %rcx      # 0x1c170
movq 0xa568(%rip), %rdx      # 0x1c5c0
movq 0xa0c9(%rip), %rsi      # 0x1c128
movq (%rdx,%rsi,8), %rdx
movq %rax, (%rcx,%rdx,8)
movq (%rcx,%r15,8), %r15
movq (%rcx,%r14,8), %r14
jmp 0x11f6f
testq %r15, %r15
js 0x1211b
movq 0xa55c(%rip), %rcx      # 0x1c5e0
movq 0xa0e5(%rip), %rax      # 0x1c170
testb $0x10, (%rcx,%r15)
je 0x12122
cmpq $-0x22, (%rax,%r15,8)
jne 0x12122
movq 0xa540(%rip), %rcx      # 0x1c5e8
movq 0xa511(%rip), %rdx      # 0x1c5c0
movq (%rdx,%r15,8), %rdx
cmpb $0x3a, (%rcx,%rdx,8)
jne 0x120c2
cmpq %r14, %r15
jne 0x12157
movq 0xa51f(%rip), %rcx      # 0x1c5e8
movq 0xa4f0(%rip), %rdx      # 0x1c5c0
movq (%rdx,%r15,8), %rdx
cmpb $0x3a, (%rcx,%rdx,8)
je 0x12122
cmpq 0xaaff(%rip), %r15      # 0x1cbe0
je 0x12122
movq %r15, %rdi
movq %r14, %rsi
xorl %edx, %edx
callq 0x3613
movq %rax, 0xa019(%rip)      # 0x1c110
movq %rax, %rdi
movq %rbx, %rsi
xorl %edx, %edx
callq 0x3613
movq %rax, %rbx
movq 0xa062(%rip), %rax      # 0x1c170
movq 0xa013(%rip), %rcx      # 0x1c128
movq %rbx, (%rax,%rcx,8)
jmp 0x12122
movq 0xa04e(%rip), %rax      # 0x1c170
movq 0xa497(%rip), %rcx      # 0x1c5c0
movq 0x9ff8(%rip), %rsi      # 0x1c128
movq (%rcx,%rsi,8), %rdx
movq (%rax,%rdx,8), %rdi
cmpq $-0x1, %rdi
je 0x12170
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 0x11f6f
pushq $0x2
popq %rdi
callq 0x3775
pushq $-0x5
popq %rbx
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
movq (%rax,%rsi,8), %rbx
pushq $0x2
popq %rdi
callq 0x3775
orq $-0x1, 0x9f8c(%rip)     # 0x1c110
jmp 0x12162