// File: /workspace/github_c_makefile_star2_O3/BernardTatin[P]s7sh/s7.c
// Function: oprec_if_a_a_and_a_laa_laa
static s7_pointer oprec_if_a_a_and_a_laa_laa(s7_scheme *sc)
                {
                    if (sc->rec_testf(sc, sc->rec_testp) != sc->F)
                        return(sc->rec_resf(sc, sc->rec_resp));
                    if (sc->rec_f1f(sc, sc->rec_f1p) == sc->F)
                        return(sc->F);
                    recur_push(sc, slot_value(sc->rec_slot1));
                    recur_push(sc, slot_value(sc->rec_slot2));
                    recur_push(sc, sc->rec_f2f(sc, sc->rec_f2p));
                    slot_set_value(sc->rec_slot2, sc->rec_f3f(sc, sc->rec_f3p));
                    slot_set_value(sc->rec_slot1, recur_pop(sc));
                    if (oprec_if_a_a_and_a_laa_laa(sc) == sc->F)
                    {
                        sc->rec_loc -= 2;
                        return(sc->F);
                    }
                    slot_set_value(sc->rec_slot2, recur_pop(sc));
                    slot_set_value(sc->rec_slot1, recur_pop(sc));
                    recur_push(sc, sc->rec_f4f(sc, sc->rec_f4p));
                    slot_set_value(sc->rec_slot2, sc->rec_f5f(sc, sc->rec_f5p));
                    slot_set_value(sc->rec_slot1, recur_pop(sc));
                    return(oprec_if_a_a_and_a_laa_laa(sc));
                }

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rdi, %rbx
movq 0x2f0(%rdi), %rsi
callq *0x360(%rdi)
cmpq 0x120(%rbx), %rax
jne 0xd379c
movq 0x2f8(%rbx), %rsi
movq %rbx, %rdi
callq *0x368(%rbx)
movq %rax, %rcx
movq 0x120(%rbx), %rax
cmpq %rax, %rcx
je 0xd37bf
movq 0x348(%rbx), %rax
movq 0x10(%rax), %r14
movq 0x2d0(%rbx), %rdx
movq 0x2d8(%rbx), %rax
cmpq %rax, %rdx
jne 0xd34f9
movq 0x2e8(%rbx), %r15
leaq (%rdx,%rdx), %rax
movq %rax, 0x8(%r15)
movq 0x18(%r15), %rsi
shlq $0x4, %rdx
movq %rbx, %rdi
callq 0x9fd6
movq $0x0, 0x20(%rax)
movq %rax, 0x18(%r15)
movq (%rax), %rax
movq %rax, 0x10(%r15)
movq 0x8(%r15), %rax
movq %rax, 0x2d8(%rbx)
movq 0x2d0(%rbx), %rdx
movq 0x2e8(%rbx), %rcx
movq 0x10(%rcx), %rcx
movq %r14, (%rcx,%rdx,8)
incq %rdx
movq %rdx, 0x2d0(%rbx)
movq 0x350(%rbx), %rcx
movq 0x10(%rcx), %r14
cmpq %rax, %rdx
jne 0xd3569
movq 0x2e8(%rbx), %r15
leaq (%rax,%rax), %rcx
movq %rcx, 0x8(%r15)
movq 0x18(%r15), %rsi
shlq $0x4, %rax
movq %rbx, %rdi
movq %rax, %rdx
callq 0x9fd6
movq $0x0, 0x20(%rax)
movq %rax, 0x18(%r15)
movq (%rax), %rax
movq %rax, 0x10(%r15)
movq 0x8(%r15), %rax
movq %rax, 0x2d8(%rbx)
movq 0x2d0(%rbx), %rdx
movq 0x2e8(%rbx), %rax
movq 0x10(%rax), %rax
movq %r14, (%rax,%rdx,8)
incq %rdx
movq %rdx, 0x2d0(%rbx)
movq 0x300(%rbx), %rsi
movq %rbx, %rdi
callq *0x370(%rbx)
movq %rax, %r14
movq 0x2d0(%rbx), %rdx
cmpq 0x2d8(%rbx), %rdx
jne 0xd35e9
movq 0x2e8(%rbx), %r15
leaq (%rdx,%rdx), %rax
movq %rax, 0x8(%r15)
movq 0x18(%r15), %rsi
shlq $0x4, %rdx
movq %rbx, %rdi
callq 0x9fd6
movq $0x0, 0x20(%rax)
movq %rax, 0x18(%r15)
movq (%rax), %rax
movq %rax, 0x10(%r15)
movq 0x8(%r15), %rax
movq %rax, 0x2d8(%rbx)
movq 0x2d0(%rbx), %rdx
movq 0x2e8(%rbx), %rax
movq 0x10(%rax), %rax
movq %r14, (%rax,%rdx,8)
incq %rdx
movq %rdx, 0x2d0(%rbx)
movq 0x308(%rbx), %rsi
movq %rbx, %rdi
callq *0x378(%rbx)
movq 0x350(%rbx), %rcx
movq %rax, 0x10(%rcx)
movq 0x2d0(%rbx), %rax
movq 0x2e8(%rbx), %rcx
leaq -0x1(%rax), %rdx
movq %rdx, 0x2d0(%rbx)
movq 0x10(%rcx), %rcx
movq -0x8(%rcx,%rax,8), %rax
movq 0x348(%rbx), %rcx
movq %rax, 0x10(%rcx)
movq %rbx, %rdi
callq 0xd3452
movq %rax, %rcx
movq 0x120(%rbx), %rax
movq 0x2d0(%rbx), %rdx
cmpq %rax, %rcx
je 0xd37b4
leaq -0x1(%rdx), %rax
movq %rax, 0x2d0(%rbx)
movq 0x2e8(%rbx), %rax
movq 0x350(%rbx), %rcx
movq 0x10(%rax), %rax
movq -0x8(%rax,%rdx,8), %rax
movq %rax, 0x10(%rcx)
movq 0x2d0(%rbx), %rax
movq 0x2e8(%rbx), %rcx
leaq -0x1(%rax), %rdx
movq %rdx, 0x2d0(%rbx)
movq 0x10(%rcx), %rcx
movq -0x8(%rcx,%rax,8), %rax
movq 0x348(%rbx), %rcx
movq %rax, 0x10(%rcx)
movq 0x310(%rbx), %rsi
movq %rbx, %rdi
callq *0x380(%rbx)
movq %rax, %r14
movq 0x2d0(%rbx), %rdx
cmpq 0x2d8(%rbx), %rdx
jne 0xd3726
movq 0x2e8(%rbx), %r15
leaq (%rdx,%rdx), %rax
movq %rax, 0x8(%r15)
movq 0x18(%r15), %rsi
shlq $0x4, %rdx
movq %rbx, %rdi
callq 0x9fd6
movq $0x0, 0x20(%rax)
movq %rax, 0x18(%r15)
movq (%rax), %rax
movq %rax, 0x10(%r15)
movq 0x8(%r15), %rax
movq %rax, 0x2d8(%rbx)
movq 0x2d0(%rbx), %rdx
movq 0x2e8(%rbx), %rax
movq 0x10(%rax), %rax
movq %r14, (%rax,%rdx,8)
incq %rdx
movq %rdx, 0x2d0(%rbx)
movq 0x318(%rbx), %rsi
movq %rbx, %rdi
callq *0x388(%rbx)
movq 0x350(%rbx), %rcx
movq %rax, 0x10(%rcx)
movq 0x2d0(%rbx), %rax
movq 0x2e8(%rbx), %rcx
leaq -0x1(%rax), %rdx
movq %rdx, 0x2d0(%rbx)
movq 0x10(%rcx), %rcx
movq -0x8(%rcx,%rax,8), %rax
movq 0x348(%rbx), %rcx
movq %rax, 0x10(%rcx)
movq 0x2f0(%rbx), %rsi
movq %rbx, %rdi
callq *0x360(%rbx)
jmp 0xd3467
movq 0x340(%rbx), %rsi
movq 0x3b0(%rbx), %rax
movq %rbx, %rdi
popq %rbx
popq %r14
popq %r15
jmpq *%rax
addq $-0x2, %rdx
movq %rdx, 0x2d0(%rbx)
popq %rbx
popq %r14
popq %r15
retq