// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: s7_assq
s7_pointer s7_assq(s7_scheme *sc, s7_pointer obj, s7_pointer x)
                {
                    s7_pointer y;
                    y = x;
                    while (true)
                    {
                        /* we can blithely take the car of anything, since we're not treating it as an object,
                         *   then if we get a bogus match, the following check that caar made sense ought to catch it.
                         * if car(#<unspecified>) = #<unspecified> (initialization time), then cdr(nil)->unspec
                         *   and subsequent caar(unspec)->unspec so we could forgo half the is_pair checks below.
                         *   This breaks if "x" is a dotted list -- the last cdr is not nil, so we lose.
                         */
                        LOOP_8(if ((obj == unchecked_car(car(x))) && (is_pair(car(x)))) return(car(x)); x = cdr(x); if (!is_pair(x)) return(sc->F));

                        y = cdr(y);
                        if (x == y) return(sc->F);
                    }
                    return(sc->F); /* not reached */
                }

// Assembly:
movq %rdi, -0x10(%rsp)
movq %rsi, -0x18(%rsp)
movq %rdx, -0x20(%rsp)
movq -0x20(%rsp), %rax
movq %rax, -0x28(%rsp)
jmp 0x31bcb
movq -0x18(%rsp), %rax
movq -0x20(%rsp), %rcx
movq 0x8(%rcx), %rcx
cmpq 0x8(%rcx), %rax
jne 0x31c03
movq -0x20(%rsp), %rax
movq 0x8(%rax), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0x31c03
movq -0x20(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x8(%rsp)
jmp 0x31f41
movq -0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x20(%rsp)
movq -0x20(%rsp), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
je 0x31c34
movq -0x10(%rsp), %rax
movq 0x120(%rax), %rax
movq %rax, -0x8(%rsp)
jmp 0x31f41
movq -0x18(%rsp), %rax
movq -0x20(%rsp), %rcx
movq 0x8(%rcx), %rcx
cmpq 0x8(%rcx), %rax
jne 0x31c6c
movq -0x20(%rsp), %rax
movq 0x8(%rax), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0x31c6c
movq -0x20(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x8(%rsp)
jmp 0x31f41
movq -0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x20(%rsp)
movq -0x20(%rsp), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
je 0x31c9d
movq -0x10(%rsp), %rax
movq 0x120(%rax), %rax
movq %rax, -0x8(%rsp)
jmp 0x31f41
movq -0x18(%rsp), %rax
movq -0x20(%rsp), %rcx
movq 0x8(%rcx), %rcx
cmpq 0x8(%rcx), %rax
jne 0x31cd5
movq -0x20(%rsp), %rax
movq 0x8(%rax), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0x31cd5
movq -0x20(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x8(%rsp)
jmp 0x31f41
movq -0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x20(%rsp)
movq -0x20(%rsp), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
je 0x31d06
movq -0x10(%rsp), %rax
movq 0x120(%rax), %rax
movq %rax, -0x8(%rsp)
jmp 0x31f41
movq -0x18(%rsp), %rax
movq -0x20(%rsp), %rcx
movq 0x8(%rcx), %rcx
cmpq 0x8(%rcx), %rax
jne 0x31d3e
movq -0x20(%rsp), %rax
movq 0x8(%rax), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0x31d3e
movq -0x20(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x8(%rsp)
jmp 0x31f41
movq -0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x20(%rsp)
movq -0x20(%rsp), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
je 0x31d6f
movq -0x10(%rsp), %rax
movq 0x120(%rax), %rax
movq %rax, -0x8(%rsp)
jmp 0x31f41
movq -0x18(%rsp), %rax
movq -0x20(%rsp), %rcx
movq 0x8(%rcx), %rcx
cmpq 0x8(%rcx), %rax
jne 0x31da7
movq -0x20(%rsp), %rax
movq 0x8(%rax), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0x31da7
movq -0x20(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x8(%rsp)
jmp 0x31f41
movq -0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x20(%rsp)
movq -0x20(%rsp), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
je 0x31dd8
movq -0x10(%rsp), %rax
movq 0x120(%rax), %rax
movq %rax, -0x8(%rsp)
jmp 0x31f41
movq -0x18(%rsp), %rax
movq -0x20(%rsp), %rcx
movq 0x8(%rcx), %rcx
cmpq 0x8(%rcx), %rax
jne 0x31e10
movq -0x20(%rsp), %rax
movq 0x8(%rax), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0x31e10
movq -0x20(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x8(%rsp)
jmp 0x31f41
movq -0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x20(%rsp)
movq -0x20(%rsp), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
je 0x31e41
movq -0x10(%rsp), %rax
movq 0x120(%rax), %rax
movq %rax, -0x8(%rsp)
jmp 0x31f41
movq -0x18(%rsp), %rax
movq -0x20(%rsp), %rcx
movq 0x8(%rcx), %rcx
cmpq 0x8(%rcx), %rax
jne 0x31e79
movq -0x20(%rsp), %rax
movq 0x8(%rax), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0x31e79
movq -0x20(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x8(%rsp)
jmp 0x31f41
movq -0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x20(%rsp)
movq -0x20(%rsp), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
je 0x31eaa
movq -0x10(%rsp), %rax
movq 0x120(%rax), %rax
movq %rax, -0x8(%rsp)
jmp 0x31f41
movq -0x18(%rsp), %rax
movq -0x20(%rsp), %rcx
movq 0x8(%rcx), %rcx
cmpq 0x8(%rcx), %rax
jne 0x31edf
movq -0x20(%rsp), %rax
movq 0x8(%rax), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0x31edf
movq -0x20(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x8(%rsp)
jmp 0x31f41
movq -0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x20(%rsp)
movq -0x20(%rsp), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
je 0x31f0d
movq -0x10(%rsp), %rax
movq 0x120(%rax), %rax
movq %rax, -0x8(%rsp)
jmp 0x31f41
jmp 0x31f0f
movq -0x28(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x28(%rsp)
movq -0x20(%rsp), %rax
cmpq -0x28(%rsp), %rax
jne 0x31f3c
movq -0x10(%rsp), %rax
movq 0x120(%rax), %rax
movq %rax, -0x8(%rsp)
jmp 0x31f41
jmp 0x31bc9
movq -0x8(%rsp), %rax
retq
nopw (%rax,%rax)