// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: tree_memq_1
static inline bool tree_memq_1(s7_scheme *sc, s7_pointer sym, s7_pointer tree)    /* sym need not be a symbol */
    {
        if (car(tree) == sc->quote_symbol)
        {
            if ((is_symbol(sym)) || (is_pair(sym)) || (!is_pair(cdr(tree))))
                return(false);
            return(sym == cadr(tree));
        }
        do {
            if (sym == car(tree))
                return(true);

            if (is_pair(car(tree)))
            {
                s7_pointer cp;
                cp = car(tree);
                if (car(cp) == sc->quote_symbol)
                {
                    if ((!is_symbol(sym)) && (!is_pair(sym)) && (is_pair(cdr(cp))) && (sym == cadr(cp)))
                        return(true);
                }
                else
                {
                    do {
                        if (sym == car(cp))
                            return(true);
                        if ((is_pair(car(cp))) &&
                                (tree_memq_1(sc, sym, car(cp))))
                            return(true);
                        cp = cdr(cp);
                        if (sym == cp)
                            return(true);
                    } while (is_pair(cp));
                }
            }

            tree = cdr(tree);
            if (sym == tree)
                return(true);
        } while (is_pair(tree));
        return(false);
    }

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x18(%rsp)
movq %rsi, 0x10(%rsp)
movq %rdx, 0x8(%rsp)
movq 0x8(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x18(%rsp), %rcx
cmpq 0x17b0(%rcx), %rax
jne 0x30ddf
movq 0x10(%rsp), %rax
movzbl (%rax), %eax
cmpl $0xa, %eax
je 0x30db5
movq 0x10(%rsp), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
je 0x30db5
movq 0x8(%rsp), %rax
movq 0x10(%rax), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
je 0x30dbf
movb $0x0, 0x27(%rsp)
jmp 0x30f34
movq 0x10(%rsp), %rax
movq 0x8(%rsp), %rcx
movq 0x10(%rcx), %rcx
cmpq 0x8(%rcx), %rax
sete %al
andb $0x1, %al
movb %al, 0x27(%rsp)
jmp 0x30f34
jmp 0x30de1
movq 0x10(%rsp), %rax
movq 0x8(%rsp), %rcx
cmpq 0x8(%rcx), %rax
jne 0x30dfb
movb $0x1, 0x27(%rsp)
jmp 0x30f34
movq 0x8(%rsp), %rax
movq 0x8(%rax), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0x30efb
movq 0x8(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, (%rsp)
movq (%rsp), %rax
movq 0x8(%rax), %rax
movq 0x18(%rsp), %rcx
cmpq 0x17b0(%rcx), %rax
jne 0x30e7c
movq 0x10(%rsp), %rax
movzbl (%rax), %eax
cmpl $0xa, %eax
je 0x30e7a
movq 0x10(%rsp), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
je 0x30e7a
movq (%rsp), %rax
movq 0x10(%rax), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0x30e7a
movq 0x10(%rsp), %rax
movq (%rsp), %rcx
movq 0x10(%rcx), %rcx
cmpq 0x8(%rcx), %rax
jne 0x30e7a
movb $0x1, 0x27(%rsp)
jmp 0x30f34
jmp 0x30ef9
jmp 0x30e7e
movq 0x10(%rsp), %rax
movq (%rsp), %rcx
cmpq 0x8(%rcx), %rax
jne 0x30e97
movb $0x1, 0x27(%rsp)
jmp 0x30f34
movq (%rsp), %rax
movq 0x8(%rax), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0x30ecb
movq 0x18(%rsp), %rdi
movq 0x10(%rsp), %rsi
movq (%rsp), %rax
movq 0x8(%rax), %rdx
callq 0x30d60
testb $0x1, %al
jne 0x30ec4
jmp 0x30ecb
movb $0x1, 0x27(%rsp)
jmp 0x30f34
movq (%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, (%rsp)
movq 0x10(%rsp), %rax
cmpq (%rsp), %rax
jne 0x30ee9
movb $0x1, 0x27(%rsp)
jmp 0x30f34
jmp 0x30eeb
movq (%rsp), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
je 0x30e7e
jmp 0x30ef9
jmp 0x30efb
movq 0x8(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, 0x8(%rsp)
movq 0x10(%rsp), %rax
cmpq 0x8(%rsp), %rax
jne 0x30f1c
movb $0x1, 0x27(%rsp)
jmp 0x30f34
jmp 0x30f1e
movq 0x8(%rsp), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
je 0x30de1
movb $0x0, 0x27(%rsp)
movb 0x27(%rsp), %al
andb $0x1, %al
addq $0x28, %rsp
retq
nop