// File: /workspace/github_c_makefile_star2_O1/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 0xb79c(%rip), %eax      # 0x1e5b4
testq %rdi, %rdi
js 0x13022
testl %eax, %eax
jne 0x13022
movq 0xb7b0(%rip), %rax      # 0x1e5e0
testb $0x11, (%rax,%rbx)
jne 0x13022
movq 0xb32f(%rip), %rcx      # 0x1e170
movq (%rcx,%rbx,8), %rdi
cmpq 0xb85c(%rip), %rdi      # 0x1e6a8
je 0x13022
testq %rdi, %rdi
js 0x12f0c
testb $0x10, (%rax,%rdi)
je 0x12f0c
cmpq $-0x22, (%rcx,%rdi,8)
jne 0x12f0c
movq 0xb291(%rip), %rsi      # 0x1e108
xorl %edx, %edx
callq 0xdd28
cmpq $-0x1, %rax
je 0x12f0c
movq %rax, %r14
movq 0xb72e(%rip), %rax      # 0x1e5c0
movq (%rax,%r14,8), %rax
testq %rax, %rax
js 0x12f0c
movq 0xb73e(%rip), %rcx      # 0x1e5e0
testb $0x1, (%rcx,%rax)
je 0x12f0c
movq 0xb2c1(%rip), %rcx      # 0x1e170
cmpq $-0x23, (%rcx,%rax,8)
jne 0x12f0c
movq 0xb26b(%rip), %rsi      # 0x1e128
movq %rbx, %rdi
xorl %edx, %edx
callq 0x36e8
movq %rax, 0xb25a(%rip)      # 0x1e128
movq 0xb6eb(%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 0x3851
movq %rbx, %rdi
movl $0x1, %esi
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
jmp 0x13030
movq 0xb25d(%rip), %rax      # 0x1e170
movq (%rax,%rbx,8), %rcx
cmpq 0xb872(%rip), %rcx      # 0x1e790
jne 0x12f6e
movq 0xb699(%rip), %rcx      # 0x1e5c0
movq (%rcx,%rbx,8), %rcx
cmpq $-0x1, %rcx
je 0x12f6e
movq (%rax,%rcx,8), %rcx
testq %rcx, %rcx
js 0x12f6e
movq 0xb69f(%rip), %rdx      # 0x1e5e0
testb $0x19, (%rdx,%rcx)
jne 0x12f6e
movq (%rax,%rcx,8), %rdi
movq 0xb1b6(%rip), %rsi      # 0x1e108
xorl %edx, %edx
callq 0xdd28
cmpq $-0x1, %rax
je 0x12f6e
movq 0xb65a(%rip), %rcx      # 0x1e5c0
movq $-0x5, (%rcx,%rax,8)
movq 0xb1b3(%rip), %rsi      # 0x1e128
movq $-0x1, %r15
movq $-0x1, %rdi
xorl %edx, %edx
callq 0x36e8
movq %rax, 0xb197(%rip)      # 0x1e128
movq $-0x1, %r14
movq 0xb641(%rip), %rax      # 0x1e5e0
testb $0x19, (%rax,%rbx)
jne 0x13007
movq 0xb1c4(%rip), %rax      # 0x1e170
movq (%rax,%rbx,8), %rdi
callq 0x12e05
movq %rax, %rdi
movq $-0x1, %rsi
xorl %edx, %edx
callq 0x36e8
shlq $0x3, %r15
addq 0xb5ef(%rip), %r15      # 0x1e5c0
movq 0xb150(%rip), %rcx      # 0x1e128
shlq $0x3, %rcx
addq 0xb18d(%rip), %rcx      # 0x1e170
cmpq $-0x1, %r14
cmovneq %r15, %rcx
cmoveq %rax, %r14
movq %rax, (%rcx)
movq 0xb5c7(%rip), %rcx      # 0x1e5c0
movq (%rcx,%rbx,8), %rbx
movq %rax, %r15
testq %rbx, %rbx
jns 0x12f98
jmp 0x1300a
movq %r15, %rax
movq 0xb5af(%rip), %rcx      # 0x1e5c0
movq %rbx, (%rcx,%rax,8)
movl $0x1, %edi
callq 0x3851
movq %r14, %rbx
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq