// File: /workspace/github_c_makefile_star2_O2/azhai[P]mlite/mlite.c
// Function: pat_logop
cell pat_logop(int op, int k) {
	cell	n, a, p, new;

	n = op == TOK_ALSO? pat_infix(k): pat_logop(TOK_ALSO, k);
	if (Token != op)
		return n;
	Tmp = n;
	p = pat(n);
	n = opr(n) == NIL? pat(n): opr(n);
	save(p);
	a = node(n, NIL);
	Tmp = NIL;
	save(a);
	while (Token == op) {
		Token = scan();
		set(cdr(a), node(NIL, NIL));
		a = cdr(a);
		n = op == TOK_ALSO? pat_infix(k):
				pat_logop(TOK_ALSO, k);
		if (symbol_p(pat(n)))
			p = cadr(Stack) = pat(n);
		n = opr(n) == NIL? pat(n): opr(n);
		car(a) = n;
	}
	n = unsave(1);
	if (cdr(n) == NIL) {
		p = unsave(1);
		return node(p, car(n));
	}
	n = node(op==TOK_OR? S_or: S_also, n);
	return node(unsave(1), n);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movl %esi, %r14d
movl %edi, %ebx
cmpl $0xffffff38, %edi       # imm = 0xFFFFFF38
jne 0xa280
movl %r14d, %edi
callq 0xa01f
jmp 0xa28d
movl $0xffffff38, %edi       # imm = 0xFFFFFF38
movl %r14d, %esi
callq 0xa25b
cmpl %ebx, 0x1243d(%rip)     # 0x1c6d0
jne 0xa404
movq %rax, 0x11e70(%rip)     # 0x1c110
movq 0x11ec9(%rip), %rcx     # 0x1c170
movq (%rcx,%rax,8), %rdi
movq 0x1230e(%rip), %rcx     # 0x1c5c0
movq (%rcx,%rax,8), %r12
cmpq $-0x1, %r12
cmoveq %rdi, %r12
movq 0x11e63(%rip), %rsi     # 0x1c128
xorl %edx, %edx
callq 0x3613
movq %rax, 0x11e55(%rip)     # 0x1c128
pushq $-0x1
popq %r15
movq %r12, %rdi
movq %r15, %rsi
xorl %edx, %edx
callq 0x3613
movq %rax, %r13
orq $-0x1, 0x11e21(%rip)    # 0x1c110
movq 0x11e32(%rip), %rsi     # 0x1c128
movq %rax, %rdi
xorl %edx, %edx
callq 0x3613
movq %rax, 0x11e21(%rip)     # 0x1c128
cmpl %ebx, 0x123c3(%rip)     # 0x1c6d0
jne 0xa3b3
callq 0x8d74
movl %eax, 0x123b2(%rip)     # 0x1c6d0
movq %r15, %rdi
movq %r15, %rsi
xorl %edx, %edx
callq 0x3613
movq %rax, %r12
movq 0x1228b(%rip), %rax     # 0x1c5c0
movq %r12, (%rax,%r13,8)
cmpl $0xffffff38, %ebx       # imm = 0xFFFFFF38
jne 0xa34b
movl %r14d, %edi
callq 0xa01f
jmp 0xa358
movl $0xffffff38, %edi       # imm = 0xFFFFFF38
movl %r14d, %esi
callq 0xa25b
movq 0x11e11(%rip), %rcx     # 0x1c170
movq (%rcx,%rax,8), %rdx
testq %rdx, %rdx
js 0xa392
movq 0x12271(%rip), %rsi     # 0x1c5e0
testb $0x10, (%rsi,%rdx)
je 0xa392
cmpq $-0x22, (%rcx,%rdx,8)
jne 0xa392
movq 0x1223d(%rip), %rsi     # 0x1c5c0
movq 0x11d9e(%rip), %rdi     # 0x1c128
movq (%rsi,%rdi,8), %rsi
movq %rdx, (%rcx,%rsi,8)
movq 0x12227(%rip), %rdx     # 0x1c5c0
movq (%rdx,%rax,8), %rdx
cmpq $-0x1, %rdx
jne 0xa3a7
movq (%rcx,%rax,8), %rdx
movq %rdx, (%rcx,%r12,8)
movq %r12, %r13
jmp 0xa307
pushq $0x1
popq %rdi
callq 0x3775
movq %rax, %r14
movq 0x121fb(%rip), %rax     # 0x1c5c0
cmpq $-0x1, (%rax,%r14,8)
je 0xa413
cmpl $0xffffff23, %ebx       # imm = 0xFFFFFF23
leaq 0x12327(%rip), %rax     # 0x1c700
leaq 0x12308(%rip), %rcx     # 0x1c6e8
cmoveq %rax, %rcx
movq (%rcx), %rdi
movq %r14, %rsi
xorl %edx, %edx
callq 0x3613
movq %rax, %rbx
pushq $0x1
popq %rdi
callq 0x3775
movq %rax, %rdi
movq %rbx, %rsi
jmp 0xa429
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
pushq $0x1
popq %rdi
callq 0x3775
movq 0x11d4e(%rip), %rcx     # 0x1c170
movq (%rcx,%r14,8), %rsi
movq %rax, %rdi
xorl %edx, %edx
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x3613