// File: /workspace/github_c_makefile_star2_O0/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
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq $-0x1, -0x20(%rbp)
movq -0x20(%rbp), %rdi
movq 0xab85(%rip), %rsi      # 0x28138
xorl %edx, %edx
callq 0x3780
movq %rax, 0xab77(%rip)      # 0x28138
movq $-0x1, -0x28(%rbp)
movq -0x28(%rbp), %rdi
movq 0xab64(%rip), %rsi      # 0x28138
xorl %edx, %edx
callq 0x3780
movq %rax, 0xab56(%rip)      # 0x28138
cmpq $0x0, -0x10(%rbp)
jl 0x1d612
movq 0xb000(%rip), %rax      # 0x285f0
movq -0x10(%rbp), %rcx
movsbl (%rax,%rcx), %eax
andl $0x10, %eax
cmpl $0x0, %eax
je 0x1d612
movq 0xab79(%rip), %rax      # 0x28180
movq -0x10(%rbp), %rcx
cmpq $-0x22, (%rax,%rcx,8)
je 0x1d628
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x17ec0
cmpl $0x0, %eax
je 0x1d81b
cmpq $0x0, -0x10(%rbp)
jl 0x1d698
movq 0xafba(%rip), %rax      # 0x285f0
movq -0x10(%rbp), %rcx
movsbl (%rax,%rcx), %eax
andl $0x10, %eax
cmpl $0x0, %eax
je 0x1d698
movq 0xab33(%rip), %rax      # 0x28180
movq -0x10(%rbp), %rcx
cmpq $-0x22, (%rax,%rcx,8)
jne 0x1d698
movq 0xaf99(%rip), %rax      # 0x285f8
movq 0xaf6a(%rip), %rcx      # 0x285d0
movq -0x10(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
movsbl (%rax,%rcx,8), %eax
cmpl $0x3a, %eax
jne 0x1d698
movq -0x10(%rbp), %rax
cmpq -0x18(%rbp), %rax
je 0x1d698
movl $0x2, %edi
callq 0x3950
movq $-0x5, -0x8(%rbp)
jmp 0x1d9ea
cmpq $0x0, -0x10(%rbp)
jl 0x1d73e
movq 0xaf46(%rip), %rax      # 0x285f0
movq -0x10(%rbp), %rcx
movsbl (%rax,%rcx), %eax
andl $0x10, %eax
cmpl $0x0, %eax
je 0x1d73e
movq 0xaabb(%rip), %rax      # 0x28180
movq -0x10(%rbp), %rcx
cmpq $-0x22, (%rax,%rcx,8)
jne 0x1d73e
movq 0xaf21(%rip), %rax      # 0x285f8
movq 0xaef2(%rip), %rcx      # 0x285d0
movq -0x10(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
movsbl (%rax,%rcx,8), %eax
cmpl $0x3a, %eax
je 0x1d73e
movq -0x10(%rbp), %rax
cmpq 0xb4f6(%rip), %rax      # 0x28bf0
je 0x1d73e
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
xorl %edx, %edx
callq 0x3780
movq %rax, 0xaa0e(%rip)      # 0x28120
movq 0xaa07(%rip), %rdi      # 0x28120
movq -0x28(%rbp), %rsi
xorl %edx, %edx
callq 0x3780
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rdx
movq 0xaa4d(%rip), %rax      # 0x28180
movq 0xa9fe(%rip), %rcx      # 0x28138
movq %rdx, (%rax,%rcx,8)
movq 0xaa3b(%rip), %rax      # 0x28180
movq 0xae84(%rip), %rcx      # 0x285d0
movq 0xa9e5(%rip), %rdx      # 0x28138
movq (%rcx,%rdx,8), %rcx
cmpq $-0x1, (%rax,%rcx,8)
jne 0x1d763
jmp 0x1d9b7
movq 0xaa16(%rip), %rax      # 0x28180
movq 0xaa0f(%rip), %rcx      # 0x28180
movq 0xae58(%rip), %rdx      # 0x285d0
movq 0xa9b9(%rip), %rsi      # 0x28138
movq (%rdx,%rsi,8), %rdx
movq (%rcx,%rdx,8), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x18(%rbp)
movq 0xa9ea(%rip), %rax      # 0x28180
movq 0xae33(%rip), %rcx      # 0x285d0
movq 0xa9dc(%rip), %rdx      # 0x28180
movq 0xae25(%rip), %rsi      # 0x285d0
movq 0xa986(%rip), %rdi      # 0x28138
movq (%rsi,%rdi,8), %rsi
movq (%rdx,%rsi,8), %rdx
movq (%rcx,%rdx,8), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x10(%rbp)
movq 0xae03(%rip), %rax      # 0x285d0
movq 0xadfc(%rip), %rcx      # 0x285d0
movq 0xa9a5(%rip), %rdx      # 0x28180
movq 0xadee(%rip), %rsi      # 0x285d0
movq 0xa94f(%rip), %rdi      # 0x28138
movq (%rsi,%rdi,8), %rsi
movq (%rdx,%rsi,8), %rdx
movq (%rcx,%rdx,8), %rcx
movq (%rax,%rcx,8), %rdx
movq 0xa980(%rip), %rax      # 0x28180
movq 0xadc9(%rip), %rcx      # 0x285d0
movq 0xa92a(%rip), %rsi      # 0x28138
movq (%rcx,%rsi,8), %rcx
movq %rdx, (%rax,%rcx,8)
jmp 0x1d9b2
cmpq $0x0, -0x10(%rbp)
jl 0x1d99e
movq 0xadc3(%rip), %rax      # 0x285f0
movq -0x10(%rbp), %rcx
movsbl (%rax,%rcx), %eax
andl $0x1, %eax
cmpl $0x0, %eax
jne 0x1d99e
movq 0xada8(%rip), %rax      # 0x285f0
movq -0x10(%rbp), %rcx
movsbl (%rax,%rcx), %eax
andl $0x10, %eax
cmpl $0x0, %eax
jne 0x1d99e
cmpq $0x0, -0x18(%rbp)
jl 0x1d99e
movq 0xad82(%rip), %rax      # 0x285f0
movq -0x18(%rbp), %rcx
movsbl (%rax,%rcx), %eax
andl $0x1, %eax
cmpl $0x0, %eax
jne 0x1d99e
movq 0xad67(%rip), %rax      # 0x285f0
movq -0x18(%rbp), %rcx
movsbl (%rax,%rcx), %eax
andl $0x10, %eax
cmpl $0x0, %eax
jne 0x1d99e
movq 0xad4c(%rip), %rax      # 0x285f0
movq -0x10(%rbp), %rcx
movsbl (%rax,%rcx), %eax
movq 0xad3d(%rip), %rcx      # 0x285f0
movq -0x18(%rbp), %rdx
movsbl (%rcx,%rdx), %ecx
cmpl %ecx, %eax
jne 0x1d99e
movq 0xad06(%rip), %rax      # 0x285d0
movq -0x10(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
movq 0xa8a7(%rip), %rax      # 0x28180
movq 0xacf0(%rip), %rcx      # 0x285d0
movq 0xa851(%rip), %rdx      # 0x28138
movq (%rcx,%rdx,8), %rcx
movq (%rax,%rcx,8), %rsi
xorl %edx, %edx
callq 0x3780
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rdx
movq 0xa87b(%rip), %rax      # 0x28180
movq 0xacc4(%rip), %rcx      # 0x285d0
movq 0xa825(%rip), %rsi      # 0x28138
movq (%rcx,%rsi,8), %rcx
movq %rdx, (%rax,%rcx,8)
movq 0xacae(%rip), %rax      # 0x285d0
movq -0x18(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
movq 0xa84f(%rip), %rax      # 0x28180
movq 0xac98(%rip), %rcx      # 0x285d0
movq 0xa7f9(%rip), %rdx      # 0x28138
movq (%rcx,%rdx,8), %rcx
movq (%rax,%rcx,8), %rsi
xorl %edx, %edx
callq 0x3780
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rdx
movq 0xa823(%rip), %rax      # 0x28180
movq 0xac6c(%rip), %rcx      # 0x285d0
movq 0xa7cd(%rip), %rsi      # 0x28138
movq (%rcx,%rsi,8), %rcx
movq %rdx, (%rax,%rcx,8)
movq 0xa806(%rip), %rax      # 0x28180
movq -0x10(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x10(%rbp)
movq 0xa7f3(%rip), %rax      # 0x28180
movq -0x18(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x18(%rbp)
jmp 0x1d5e2
movl $0x2, %edi
callq 0x3950
movq $-0x5, -0x8(%rbp)
jmp 0x1d9ea
jmp 0x1d5e2
movq 0xa7c2(%rip), %rax      # 0x28180
movq 0xa773(%rip), %rcx      # 0x28138
movq (%rax,%rcx,8), %rax
movq %rax, -0x28(%rbp)
movl $0x2, %edi
callq 0x3950
movq $-0x1, 0xa73e(%rip) # 0x28120
movq -0x28(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)