// File: /workspace/github_c_makefile_star2_O3/azhai[P]mlite/mlite.c
// Function: expand_syntax_1
cell expand_syntax_1(cell x) {
	cell	y, m, n, a, app;

	if (Error_flag || atom_p(x) || car(x) == S_quote)
		return x;
	if (symbol_p(car(x))) {
		y = lookup(car(x), Environment, 0);
		if (y != NIL && syntax_p(binding_value(y))) {
			save(x);
			app = node(cdr(binding_value(y)), cdr(x));
			unsave(1);
			return xeval(app, 1);
		}
	}
	/*
	 * If DEFINE-SYNTAX is followed by (MACRO-NAME ...)
	 * unbind the MACRO-NAME first to avoid erroneous
	 * expansion.
	 */
	if (	car(x) == S_define_syntax &&
		cdr(x) != NIL &&
		tuple_p(cadr(x))
	) {
		m = lookup(caadr(x), Environment, 0);
		if (m != NIL)
			binding_value(m) = UNDEFINED;
	}
	n = a = NIL;
	save(n);
	while (tuple_p(x)) {
		m = node(expand_syntax_1(car(x)), NIL);
		if (n == NIL) {
			n = m;
			car(Stack) = n;
			a = n;
		}
		else {
			cdr(a) = m;
			a = cdr(a);
		}
		x = cdr(x);
	}
	cdr(a) = x;
	unsave(1);
	return n;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
movl 0xbaf3(%rip), %eax      # 0x1e5b4
testq %rdi, %rdi
js 0x12cc7
testl %eax, %eax
jne 0x12cc7
movq 0xbb07(%rip), %rax      # 0x1e5e0
testb $0x11, (%rax,%rbx)
jne 0x12cc7
movq 0xb686(%rip), %rcx      # 0x1e170
movq (%rcx,%rbx,8), %rdi
cmpq 0xbbb3(%rip), %rdi      # 0x1e6a8
je 0x12cc7
testq %rdi, %rdi
js 0x12bb5
testb $0x10, (%rax,%rdi)
je 0x12bb5
cmpq $-0x22, (%rcx,%rdi,8)
jne 0x12bb5
movq 0xb5e8(%rip), %rsi      # 0x1e108
xorl %edx, %edx
callq 0xdb9e
cmpq $-0x1, %rax
je 0x12bb5
movq %rax, %r14
movq 0xba85(%rip), %rax      # 0x1e5c0
movq (%rax,%r14,8), %rax
testq %rax, %rax
js 0x12bb5
movq 0xba95(%rip), %rcx      # 0x1e5e0
testb $0x1, (%rcx,%rax)
je 0x12bb5
movq 0xb618(%rip), %rcx      # 0x1e170
cmpq $-0x23, (%rcx,%rax,8)
jne 0x12bb5
movq 0xb5c2(%rip), %rsi      # 0x1e128
movq %rbx, %rdi
xorl %edx, %edx
callq 0x36e8
movq %rax, 0xb5b1(%rip)      # 0x1e128
movq 0xba42(%rip), %rax      # 0x1e5c0
movq (%rax,%r14,8), %rcx
movq (%rax,%rcx,8), %rdi
movq (%rax,%rbx,8), %rsi
xorl %edx, %edx
callq 0x36e8
movq %rax, %rbx
movl $0x1, %edi
callq 0x384f
movq %rbx, %rdi
movl $0x1, %esi
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
jmp 0x12cd5
movq 0xb5b4(%rip), %rax      # 0x1e170
movq (%rax,%rbx,8), %rcx
cmpq 0xbbc9(%rip), %rcx      # 0x1e790
jne 0x12c17
movq 0xb9f0(%rip), %rcx      # 0x1e5c0
movq (%rcx,%rbx,8), %rcx
cmpq $-0x1, %rcx
je 0x12c17
movq (%rax,%rcx,8), %rcx
testq %rcx, %rcx
js 0x12c17
movq 0xb9f6(%rip), %rdx      # 0x1e5e0
testb $0x19, (%rdx,%rcx)
jne 0x12c17
movq (%rax,%rcx,8), %rdi
movq 0xb50d(%rip), %rsi      # 0x1e108
xorl %edx, %edx
callq 0xdb9e
cmpq $-0x1, %rax
je 0x12c17
movq 0xb9b1(%rip), %rcx      # 0x1e5c0
movq $-0x5, (%rcx,%rax,8)
movq 0xb50a(%rip), %rsi      # 0x1e128
movq $-0x1, %r15
movq $-0x1, %rdi
xorl %edx, %edx
callq 0x36e8
movq %rax, 0xb4ee(%rip)      # 0x1e128
movq $-0x1, %r14
movq 0xb998(%rip), %rax      # 0x1e5e0
testb $0x19, (%rax,%rbx)
jne 0x12cac
movq 0xb51b(%rip), %rax      # 0x1e170
movq (%rax,%rbx,8), %rdi
callq 0x12aae
movq %rax, %rdi
movq $-0x1, %rsi
xorl %edx, %edx
callq 0x36e8
cmpq $-0x1, %r14
je 0x12c82
movq 0xb944(%rip), %rcx      # 0x1e5c0
movq %rax, (%rcx,%r15,8)
jmp 0x12c9e
movq 0xb4e7(%rip), %rcx      # 0x1e170
movq 0xb498(%rip), %rdx      # 0x1e128
movq %rax, (%rcx,%rdx,8)
movq 0xb925(%rip), %rcx      # 0x1e5c0
movq %rax, %r14
movq (%rcx,%rbx,8), %rbx
movq %rax, %r15
testq %rbx, %rbx
jns 0x12c41
jmp 0x12caf
movq %r15, %rax
movq 0xb90a(%rip), %rcx      # 0x1e5c0
movq %rbx, (%rcx,%rax,8)
movl $0x1, %edi
callq 0x384f
movq %r14, %rbx
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq