// File: /workspace/github_c_makefile_star2_O0/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:
subq $0x28, %rsp
movq %rdi, 0x18(%rsp)
movq 0x18(%rsp), %rax
movq 0x360(%rax), %rax
movq 0x18(%rsp), %rdi
movq 0x18(%rsp), %rcx
movq 0x2f0(%rcx), %rsi
callq *%rax
movq 0x18(%rsp), %rcx
cmpq 0x120(%rcx), %rax
je 0x1677bf
movq 0x18(%rsp), %rax
movq 0x3b0(%rax), %rax
movq 0x18(%rsp), %rdi
movq 0x18(%rsp), %rcx
movq 0x340(%rcx), %rsi
callq *%rax
movq %rax, 0x20(%rsp)
jmp 0x1679ce
movq 0x18(%rsp), %rax
movq 0x368(%rax), %rax
movq 0x18(%rsp), %rdi
movq 0x18(%rsp), %rcx
movq 0x2f8(%rcx), %rsi
callq *%rax
movq 0x18(%rsp), %rcx
cmpq 0x120(%rcx), %rax
jne 0x167802
movq 0x18(%rsp), %rax
movq 0x120(%rax), %rax
movq %rax, 0x20(%rsp)
jmp 0x1679ce
movq 0x18(%rsp), %rdi
movq 0x18(%rsp), %rax
movq 0x348(%rax), %rax
movq 0x10(%rax), %rsi
callq 0x1650c0
movq 0x18(%rsp), %rdi
movq 0x18(%rsp), %rax
movq 0x350(%rax), %rax
movq 0x10(%rax), %rsi
callq 0x1650c0
movq 0x18(%rsp), %rax
movq %rax, 0x10(%rsp)
movq 0x18(%rsp), %rax
movq 0x370(%rax), %rax
movq 0x18(%rsp), %rdi
movq 0x18(%rsp), %rcx
movq 0x300(%rcx), %rsi
callq *%rax
movq 0x10(%rsp), %rdi
movq %rax, %rsi
callq 0x1650c0
movq 0x18(%rsp), %rax
movq 0x378(%rax), %rax
movq 0x18(%rsp), %rdi
movq 0x18(%rsp), %rcx
movq 0x308(%rcx), %rsi
callq *%rax
movq %rax, %rcx
movq 0x18(%rsp), %rax
movq 0x350(%rax), %rax
movq %rcx, 0x10(%rax)
movq 0x18(%rsp), %rdi
callq 0x165140
movq %rax, %rcx
movq 0x18(%rsp), %rax
movq 0x348(%rax), %rax
movq %rcx, 0x10(%rax)
movq 0x18(%rsp), %rdi
callq 0x167760
movq 0x18(%rsp), %rcx
cmpq 0x120(%rcx), %rax
jne 0x167900
movq 0x18(%rsp), %rax
movq 0x2d0(%rax), %rcx
subq $0x2, %rcx
movq %rcx, 0x2d0(%rax)
movq 0x18(%rsp), %rax
movq 0x120(%rax), %rax
movq %rax, 0x20(%rsp)
jmp 0x1679ce
movq 0x18(%rsp), %rdi
callq 0x165140
movq %rax, %rcx
movq 0x18(%rsp), %rax
movq 0x350(%rax), %rax
movq %rcx, 0x10(%rax)
movq 0x18(%rsp), %rdi
callq 0x165140
movq %rax, %rcx
movq 0x18(%rsp), %rax
movq 0x348(%rax), %rax
movq %rcx, 0x10(%rax)
movq 0x18(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x18(%rsp), %rax
movq 0x380(%rax), %rax
movq 0x18(%rsp), %rdi
movq 0x18(%rsp), %rcx
movq 0x310(%rcx), %rsi
callq *%rax
movq 0x8(%rsp), %rdi
movq %rax, %rsi
callq 0x1650c0
movq 0x18(%rsp), %rax
movq 0x388(%rax), %rax
movq 0x18(%rsp), %rdi
movq 0x18(%rsp), %rcx
movq 0x318(%rcx), %rsi
callq *%rax
movq %rax, %rcx
movq 0x18(%rsp), %rax
movq 0x350(%rax), %rax
movq %rcx, 0x10(%rax)
movq 0x18(%rsp), %rdi
callq 0x165140
movq %rax, %rcx
movq 0x18(%rsp), %rax
movq 0x348(%rax), %rax
movq %rcx, 0x10(%rax)
movq 0x18(%rsp), %rdi
callq 0x167760
movq %rax, 0x20(%rsp)
movq 0x20(%rsp), %rax
addq $0x28, %rsp
retq
nopl (%rax,%rax)