// File: /workspace/github_c_makefile_star2_O2/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 %r12
pushq %rbx
movq %rdi, %rbx
movl 0xb4a3(%rip), %eax      # 0x1c5b4
testq %rdi, %rdi
js 0x1113b
testl %eax, %eax
jne 0x1113b
movq 0xb4bf(%rip), %rax      # 0x1c5e0
testb $0x11, (%rax,%rbx)
jne 0x1113b
movq 0xb042(%rip), %rcx      # 0x1c170
movq (%rcx,%rbx,8), %rdi
cmpq 0xb56f(%rip), %rdi      # 0x1c6a8
jne 0x1114a
movq %rbx, %r14
movq %r14, %rax
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
testq %rdi, %rdi
js 0x11202
testb $0x10, (%rax,%rdi)
je 0x11202
cmpq $-0x22, (%rcx,%rdi,8)
jne 0x11202
movq 0xaf99(%rip), %rsi      # 0x1c108
xorl %edx, %edx
callq 0xca03
cmpq $-0x1, %rax
je 0x11202
movq %rax, %r14
movq 0xb436(%rip), %rax      # 0x1c5c0
movq (%rax,%r14,8), %rax
testq %rax, %rax
js 0x11202
movq 0xb446(%rip), %rcx      # 0x1c5e0
testb $0x1, (%rcx,%rax)
je 0x11202
movq 0xafc9(%rip), %rcx      # 0x1c170
cmpq $-0x23, (%rcx,%rax,8)
jne 0x11202
movq 0xaf73(%rip), %rsi      # 0x1c128
movq %rbx, %rdi
xorl %edx, %edx
callq 0x3613
movq %rax, 0xaf62(%rip)      # 0x1c128
movq 0xb3f3(%rip), %rax      # 0x1c5c0
movq (%rax,%r14,8), %rcx
movq (%rax,%rcx,8), %rdi
movq (%rax,%rbx,8), %rsi
xorl %edx, %edx
callq 0x3613
movq %rax, %rbx
pushq $0x1
popq %r14
movl %r14d, %edi
callq 0x3775
movq %rbx, %rdi
movl %r14d, %esi
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
jmp 0x11305
movq 0xaf67(%rip), %rax      # 0x1c170
movq (%rax,%rbx,8), %rcx
cmpq 0xb57c(%rip), %rcx      # 0x1c790
jne 0x11264
movq 0xb3a3(%rip), %rcx      # 0x1c5c0
movq (%rcx,%rbx,8), %rcx
cmpq $-0x1, %rcx
je 0x11264
movq (%rax,%rcx,8), %rcx
testq %rcx, %rcx
js 0x11264
movq 0xb3a9(%rip), %rdx      # 0x1c5e0
testb $0x19, (%rdx,%rcx)
jne 0x11264
movq (%rax,%rcx,8), %rdi
movq 0xaec0(%rip), %rsi      # 0x1c108
xorl %edx, %edx
callq 0xca03
cmpq $-0x1, %rax
je 0x11264
movq 0xb364(%rip), %rcx      # 0x1c5c0
movq $-0x5, (%rcx,%rax,8)
movq 0xaebd(%rip), %rsi      # 0x1c128
pushq $-0x1
popq %r15
movq %r15, %rdi
xorl %edx, %edx
callq 0x3613
movq %rax, 0xaea8(%rip)      # 0x1c128
movq %r15, %r14
movq %r15, %r12
testq %rbx, %rbx
js 0x112ed
movq 0xb34e(%rip), %rax      # 0x1c5e0
testb $0x19, (%rax,%rbx)
jne 0x112ed
movq 0xaed1(%rip), %rax      # 0x1c170
movq (%rax,%rbx,8), %rdi
callq 0x110fd
movq %rax, %rdi
movq %r15, %rsi
xorl %edx, %edx
callq 0x3613
cmpq $-0x1, %r14
je 0x112c8
movq 0xb2fe(%rip), %rcx      # 0x1c5c0
movq %rax, (%rcx,%r12,8)
jmp 0x112e4
movq 0xaea1(%rip), %rcx      # 0x1c170
movq 0xae52(%rip), %rdx      # 0x1c128
movq %rax, (%rcx,%rdx,8)
movq 0xb2df(%rip), %rcx      # 0x1c5c0
movq %rax, %r14
movq (%rcx,%rbx,8), %rbx
movq %rax, %r12
jmp 0x11286
movq 0xb2cc(%rip), %rax      # 0x1c5c0
movq %rbx, (%rax,%r12,8)
pushq $0x1
popq %rdi
callq 0x3775
jmp 0x1113e