LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O2/BernardTatin[P]s7sh/s7.c
// Function: tree_has_definers_or_binders
static bool tree_has_definers_or_binders(s7_scheme *sc, s7_pointer tree)
                {
                    s7_pointer p;
                    for (p = tree; is_pair(p); p = cdr(p))
                        if (tree_has_definers_or_binders(sc, car(p)))
                            return(true);
                    return((is_symbol(tree)) &&
                            (is_definer_or_binder(tree)));
                }

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
movq %rdi, %r14
cmpb $0x1, (%r14)
jne 0xa5d71
movq 0x8(%r14), %rdi
callq 0xa5d4e
testb %al, %al
jne 0xa5d7f
movq 0x10(%r14), %r14
jmp 0xa5d58
cmpb $0xa, (%rbx)
jne 0xa5d83
testb $0xc, 0x6(%rbx)
setne %al
jmp 0xa5d85
movb $0x1, %al
jmp 0xa5d85
xorl %eax, %eax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O2/BernardTatin[P]s7sh/s7.c
// Function: old_frame_with_two_slots
static s7_pointer old_frame_with_two_slots(s7_scheme *sc, s7_pointer env, s7_pointer val1, s7_pointer val2)
    {
        s7_pointer x, sym;
        uint64_t id;

        id = ++sc->let_number;
        let_id(env) = id;
        x = let_slots(env);
        slot_set_value(x, val1);
        sym = slot_symbol(x);
        symbol_set_local(sym, id, x);
        x = next_slot(x);
        slot_set_value(x, val2);
        sym = slot_symbol(x);
        symbol_set_local(sym, id, x);
        return(env);
    }

// Assembly:
movq %rsi, %rax
movq 0x250(%rdi), %rsi
incq %rsi
movq %rsi, 0x250(%rdi)
movq %rsi, 0x18(%rax)
movq 0x8(%rax), %rdi
movq %rdx, 0x10(%rdi)
movq 0x8(%rdi), %rdx
movq %rdi, 0x18(%rdx)
movq %rsi, 0x20(%rdx)
incl 0x28(%rdx)
movq 0x18(%rdi), %rdx
movq %rcx, 0x10(%rdx)
movq 0x8(%rdx), %rcx
movq %rdx, 0x18(%rcx)
movq %rsi, 0x20(%rcx)
incl 0x28(%rcx)
retq
// File: /workspace/github_c_makefile_star2_O2/BernardTatin[P]s7sh/s7.c
// Function: fixup_closure_star_aa
static goto_t fixup_closure_star_aa(s7_scheme *sc, s7_pointer f, s7_pointer code)
                {
                    if (!has_methods(f))
                    {
                        int32_t hop = 0;
                        if (is_immutable_and_stable(sc, car(code))) hop = 1;
                        set_opt3_arglen(code, small_int(2));
                        if (lambda_has_simple_defaults(closure_body(f)))
                        {
                            if (closure_star_arity_to_int(sc, f) == 2)
                                return(fixup_unknown_op(code, f, hop + ((is_safe_closure(f)) ? OP_SAFE_CLOSURE_STAR_AA : OP_CLOSURE_STAR_FX)));
                            return(fixup_unknown_op(code, f, hop + ((is_safe_closure(f)) ? OP_SAFE_CLOSURE_STAR_FX_2 : OP_CLOSURE_STAR_FX)));
                        }
                        if (is_safe_closure(f))
                            return(fixup_unknown_op(code, f, hop + OP_SAFE_CLOSURE_STAR_FX_2));
                    }
                    return(fixup_unknown_op(code, f, OP_S_AA));
                }

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movq %rdx, %rbx
movq %rsi, %r14
testb $0x40, 0x3(%rsi)
jne 0xa5e7d
movq %rdi, %r15
movq 0x8(%rbx), %rsi
callq 0xa263c
movq 0x6fb0b(%rip), %rcx     # 0x115960
movq 0x10(%rbx), %rdx
movq %rcx, 0x28(%rdx)
movq 0x10(%rbx), %rcx
andq $-0x40001, (%rcx)       # imm = 0xFFFBFFFF
movzbl %al, %r12d
movq 0x10(%r14), %rax
testb $0x4, 0x1(%rax)
jne 0xa5ea4
testb $0x10, 0x1(%r14)
jne 0xa5ecd
movw $0x16f, 0x4(%rbx)       # imm = 0x16F
movzbl (%r14), %eax
leaq 0x7bd52(%rip), %rcx     # 0x121be0
cmpb $0x1, (%rax,%rcx)
jne 0xa5e98
movq %r14, 0x18(%rbx)
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
movq %r15, %rdi
movq %r14, %rsi
callq 0xa274b
movzwl (%r14), %ecx
cmpl $0x2, %eax
jne 0xa5edb
shrl $0xa, %ecx
andl $0x4, %ecx
leal (%rcx,%r12), %eax
addl $0x11a, %eax            # imm = 0x11A
movw %ax, 0x4(%rbx)
jmp 0xa5ef3
orl $0x126, %r12d           # imm = 0x126
movw %r12w, 0x4(%rbx)
jmp 0xa5ef3
btl $0xc, %ecx
movl $0x11a, %eax            # imm = 0x11A
movl $0x126, %ecx            # imm = 0x126
cmovael %eax, %ecx
orl %r12d, %ecx
movw %cx, 0x4(%rbx)
movzbl (%r14), %eax
leaq 0x7bce2(%rip), %rcx     # 0x121be0
cmpb $0x0, (%rax,%rcx)
jne 0xa5e94
jmp 0xa5e98
// File: /workspace/github_c_makefile_star2_O2/BernardTatin[P]s7sh/s7.c
// Function: make_slot
static s7_pointer make_slot(s7_scheme *sc, s7_pointer variable, s7_pointer value)
    {
        /* this is for a do-loop optimization -- an unattached slot */
        s7_pointer y;
        new_cell(sc, y, T_SLOT);
        slot_set_symbol(y, variable);
        slot_set_value(y, value);
        return(y);
    }

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rdx, %rbx
movq %rsi, %r14
movq %rdi, %r15
movq 0x90(%rdi), %rax
cmpq 0x98(%rdi), %rax
ja 0xa5f91
movq %r15, %rdi
callq 0x9c27
movq 0x90(%r15), %rax
leaq -0x8(%rax), %rcx
movq %rcx, 0x90(%r15)
movq -0x8(%rax), %rax
movq $0x20, (%rax)
movq %r14, 0x8(%rax)
movq %rbx, 0x10(%rax)
popq %rbx
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O2/BernardTatin[P]s7sh/s7.c
// Function: op_tc_z
static bool op_tc_z(s7_scheme *sc, s7_pointer expr)
                {
                    if (has_fx(expr))
                    {
                        sc->value = fx_call(sc, expr);
                        return(true);
                    }
                    sc->code = car(expr);
                    return(false);
                }

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rsi, %rax
movq %rdi, %r14
movzwl 0x6(%rsi), %ebx
testb $0x4, %bl
je 0xa5fd8
movq 0x8(%rax), %rsi
movq %r14, %rdi
callq *0x20(%rax)
movq %rax, 0x20(%r14)
jmp 0xa5fdf
movq 0x8(%rax), %rax
movq %rax, (%r14)
andl $0x4, %ebx
shrl $0x2, %ebx
movl %ebx, %eax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O2/BernardTatin[P]s7sh/s7.c
// Function: recur_make_stack
static s7_pointer recur_make_stack(s7_scheme *sc)
                {
                    if (!sc->rec_stack)
                    {
                        sc->rec_stack = make_simple_vector(sc, RECUR_INITIAL_STACK_SIZE);
                        sc->rec_len = RECUR_INITIAL_STACK_SIZE;
                    }
                    sc->rec_loc = 0;
                    return(sc->rec_stack);
                }

// Assembly:
pushq %rbx
movq %rdi, %rbx
movq 0x2e8(%rdi), %rax
testq %rax, %rax
jne 0xa601e
movl $0x400, %esi            # imm = 0x400
movq %rbx, %rdi
callq 0x2f202
movq %rax, 0x2e8(%rbx)
movq $0x400, 0x2d8(%rbx) # imm = 0x400
andq $0x0, 0x2d0(%rbx)
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O2/BernardTatin[P]s7sh/s7.c
// Function: oprec_if_a_a_opa_laq
static s7_pointer oprec_if_a_a_opa_laq(s7_scheme *sc)
                {
                    if (sc->rec_testf(sc, sc->rec_testp) != sc->F)
                        return(sc->rec_resf(sc, sc->rec_resp));
                    recur_push(sc, sc->rec_f1f(sc, sc->rec_f1p));
                    slot_set_value(sc->rec_slot1, sc->rec_f2f(sc, sc->rec_f2p));
                    set_car(sc->t2_2, oprec_if_a_a_opa_laq(sc));
                    set_car(sc->t2_1, recur_pop(sc));
                    return(sc->rec_call(sc, sc->t2_1));
                }

// Assembly:
pushq %rbx
movq %rdi, %rbx
movq 0x2f0(%rdi), %rsi
callq *0x360(%rdi)
cmpq 0x120(%rbx), %rax
je 0xa610e
leaq 0x3b0(%rbx), %rcx
leaq 0x340(%rbx), %rax
jmp 0xa6192
movq 0x2f8(%rbx), %rsi
movq %rbx, %rdi
callq *0x368(%rbx)
movq %rbx, %rdi
movq %rax, %rsi
callq 0xa619e
movq 0x300(%rbx), %rsi
movq %rbx, %rdi
callq *0x370(%rbx)
movq 0x348(%rbx), %rcx
movq %rax, 0x10(%rcx)
movq %rbx, %rdi
callq 0xa60e1
movq 0x578(%rbx), %rcx
movq %rax, 0x8(%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), %rcx
leaq 0x570(%rbx), %rax
movq 0x570(%rbx), %rdx
movq %rcx, 0x8(%rdx)
leaq 0x3b8(%rbx), %rcx
movq (%rcx), %rcx
movq (%rax), %rsi
movq %rbx, %rdi
popq %rbx
jmpq *%rcx
// File: /workspace/github_c_makefile_star2_O2/BernardTatin[P]s7sh/s7.c
// Function: recur_push
static inline void recur_push(s7_scheme *sc, s7_pointer value)
                {
                    if (sc->rec_loc == sc->rec_len)
                        recur_resize(sc);
                    vector_element(sc->rec_stack, sc->rec_loc) = value;
                    sc->rec_loc++;
                }

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rsi, %r14
movq %rdi, %rbx
movq 0x2d0(%rdi), %rdx
cmpq 0x2d8(%rdi), %rdx
jne 0xa61fa
movq 0x2e8(%rbx), %r15
leaq (%rdx,%rdx), %rax
movq %rax, 0x8(%r15)
movq 0x18(%r15), %rsi
shlq $0x4, %rdx
movq %rbx, %rdi
callq 0x9859
andq $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)
popq %rbx
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O2/BernardTatin[P]s7sh/s7.c
// Function: oprec_if_a_opa_laq_a
static s7_pointer oprec_if_a_opa_laq_a(s7_scheme *sc)
                {
                    if (sc->rec_testf(sc, sc->rec_testp) == sc->F)
                        return(sc->rec_resf(sc, sc->rec_resp));
                    recur_push(sc, sc->rec_f1f(sc, sc->rec_f1p));
                    slot_set_value(sc->rec_slot1, sc->rec_f2f(sc, sc->rec_f2p));
                    set_car(sc->t2_2, oprec_if_a_opa_laq_a(sc));
                    set_car(sc->t2_1, recur_pop(sc));
                    return(sc->rec_call(sc, sc->t2_1));
                }

// Assembly:
pushq %rbx
movq %rdi, %rbx
movq 0x2f0(%rdi), %rsi
callq *0x360(%rdi)
cmpq 0x120(%rbx), %rax
je 0xa62bd
movq 0x2f8(%rbx), %rsi
movq %rbx, %rdi
callq *0x368(%rbx)
movq %rbx, %rdi
movq %rax, %rsi
callq 0xa619e
movq 0x300(%rbx), %rsi
movq %rbx, %rdi
callq *0x370(%rbx)
movq 0x348(%rbx), %rcx
movq %rax, 0x10(%rcx)
movq %rbx, %rdi
callq 0xa6219
movq 0x578(%rbx), %rcx
movq %rax, 0x8(%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), %rcx
leaq 0x570(%rbx), %rax
movq 0x570(%rbx), %rdx
movq %rcx, 0x8(%rdx)
leaq 0x3b8(%rbx), %rcx
jmp 0xa62cb
leaq 0x3b0(%rbx), %rcx
leaq 0x340(%rbx), %rax
movq (%rcx), %rcx
movq (%rax), %rsi
movq %rbx, %rdi
popq %rbx
jmpq *%rcx
// File: /workspace/github_c_makefile_star2_O2/BernardTatin[P]s7sh/s7.c
// Function: opinit_if_a_a_opa_laaq
static void opinit_if_a_a_opa_laaq(s7_scheme *sc, bool a_op)
                {
                    s7_pointer caller;
                    rec_set_test(sc, cdr(sc->code));
                    rec_set_res(sc, (a_op) ?  cddr(sc->code) : cdddr(sc->code));
                    caller = opt3_pair(sc->code);
                    rec_set_f1(sc, cdr(caller));
                    rec_set_f2(sc, cdr(opt3_pair(caller)));
                    rec_set_f3(sc, cddr(opt3_pair(caller)));
                    sc->rec_slot1 = let_slots(sc->envir);
                    sc->rec_slot2 = next_slot(sc->rec_slot1);
                    sc->rec_call = c_callee(caller);
                }

// Assembly:
movq (%rdi), %rax
movq 0x10(%rax), %rcx
movq %rcx, 0x2f0(%rdi)
movq 0x20(%rcx), %rdx
movq %rdx, 0x360(%rdi)
movq 0x8(%rcx), %rcx
movq %rcx, 0x2f0(%rdi)
movq %rax, %rcx
testl %esi, %esi
jne 0xa6306
movq 0x10(%rax), %rcx
movq 0x10(%rcx), %rcx
movq 0x10(%rcx), %rcx
movq %rcx, 0x340(%rdi)
movq 0x20(%rcx), %rdx
movq %rdx, 0x3b0(%rdi)
movq 0x8(%rcx), %rcx
movq %rcx, 0x340(%rdi)
movq 0x28(%rax), %rax
movq 0x10(%rax), %rcx
movq %rcx, 0x2f8(%rdi)
movq 0x20(%rcx), %rdx
movq %rdx, 0x368(%rdi)
movq 0x8(%rcx), %rcx
movq %rcx, 0x2f8(%rdi)
movq 0x28(%rax), %rcx
movq 0x10(%rcx), %rcx
movq %rcx, 0x300(%rdi)
movq 0x20(%rcx), %rdx
movq %rdx, 0x370(%rdi)
movq 0x8(%rcx), %rcx
movq %rcx, 0x300(%rdi)
movq 0x28(%rax), %rcx
movq 0x10(%rcx), %rcx
movq 0x10(%rcx), %rcx
movq %rcx, 0x308(%rdi)
movq 0x20(%rcx), %rdx
movq %rdx, 0x378(%rdi)
movq 0x8(%rcx), %rcx
movq %rcx, 0x308(%rdi)
movq 0x8(%rdi), %rcx
movq 0x8(%rcx), %rcx
movq %rcx, 0x348(%rdi)
movq 0x18(%rcx), %rcx
movq %rcx, 0x350(%rdi)
movq 0x20(%rax), %rax
movq %rax, 0x3b8(%rdi)
retq
// File: /workspace/github_c_makefile_star2_O2/BernardTatin[P]s7sh/s7.c
// Function: oprec_if_a_a_opa_laaq
static s7_pointer oprec_if_a_a_opa_laaq(s7_scheme *sc)
                {
                    if (sc->rec_testf(sc, sc->rec_testp) != sc->F)
                        return(sc->rec_resf(sc, sc->rec_resp));
                    recur_push(sc, sc->rec_f1f(sc, sc->rec_f1p));
                    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));
                    set_car(sc->t2_2, oprec_if_a_a_opa_laaq(sc));
                    set_car(sc->t2_1, recur_pop(sc));
                    return(sc->rec_call(sc, sc->t2_1));
                }

// Assembly:
pushq %rbx
movq %rdi, %rbx
movq 0x2f0(%rdi), %rsi
callq *0x360(%rdi)
cmpq 0x120(%rbx), %rax
je 0xa63f1
leaq 0x3b0(%rbx), %rcx
leaq 0x340(%rbx), %rax
jmp 0xa64bd
movq 0x2f8(%rbx), %rsi
movq %rbx, %rdi
callq *0x368(%rbx)
movq %rbx, %rdi
movq %rax, %rsi
callq 0xa619e
movq 0x300(%rbx), %rsi
movq %rbx, %rdi
callq *0x370(%rbx)
movq %rbx, %rdi
movq %rax, %rsi
callq 0xa619e
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 0xa63c4
movq 0x578(%rbx), %rcx
movq %rax, 0x8(%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), %rcx
leaq 0x570(%rbx), %rax
movq 0x570(%rbx), %rdx
movq %rcx, 0x8(%rdx)
leaq 0x3b8(%rbx), %rcx
movq (%rcx), %rcx
movq (%rax), %rsi
movq %rbx, %rdi
popq %rbx
jmpq *%rcx
// File: /workspace/github_c_makefile_star2_O2/BernardTatin[P]s7sh/s7.c
// Function: oprec_if_a_opa_laaq_a
static s7_pointer oprec_if_a_opa_laaq_a(s7_scheme *sc)
                {
                    if (sc->rec_testf(sc, sc->rec_testp) == sc->F)
                        return(sc->rec_resf(sc, sc->rec_resp));
                    recur_push(sc, sc->rec_f1f(sc, sc->rec_f1p));
                    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));
                    set_car(sc->t2_2, oprec_if_a_opa_laaq_a(sc));
                    set_car(sc->t2_1, recur_pop(sc));
                    return(sc->rec_call(sc, sc->t2_1));
                }

// Assembly:
pushq %rbx
movq %rdi, %rbx
movq 0x2f0(%rdi), %rsi
callq *0x360(%rdi)
cmpq 0x120(%rbx), %rax
je 0xa65b5
movq 0x2f8(%rbx), %rsi
movq %rbx, %rdi
callq *0x368(%rbx)
movq %rbx, %rdi
movq %rax, %rsi
callq 0xa619e
movq 0x300(%rbx), %rsi
movq %rbx, %rdi
callq *0x370(%rbx)
movq %rbx, %rdi
movq %rax, %rsi
callq 0xa619e
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 0xa64c9
movq 0x578(%rbx), %rcx
movq %rax, 0x8(%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), %rcx
leaq 0x570(%rbx), %rax
movq 0x570(%rbx), %rdx
movq %rcx, 0x8(%rdx)
leaq 0x3b8(%rbx), %rcx
jmp 0xa65c3
leaq 0x3b0(%rbx), %rcx
leaq 0x340(%rbx), %rax
movq (%rcx), %rcx
movq (%rax), %rsi
movq %rbx, %rdi
popq %rbx
jmpq *%rcx
// File: /workspace/github_c_makefile_star2_O2/BernardTatin[P]s7sh/s7.c
// Function: oprec_i_if_a_a_opla_laq_0
static s7_int oprec_i_if_a_a_opla_laq_0(s7_scheme *sc)
                {
                    s7_int i1, i2;
                    if (sc->rec_fb1(sc->rec_test_o))
                        return(sc->rec_fi1(sc->rec_result_o));
                    i1 = sc->rec_fi2(sc->rec_a1_o);
                    integer(sc->rec_val1) = sc->rec_fi3(sc->rec_a2_o);
                    if (sc->rec_fb1(sc->rec_test_o))
                        i2 = sc->rec_fi1(sc->rec_result_o);
                    else
                    {
                        s7_int i3;
                        i2 = sc->rec_fi2(sc->rec_a1_o);
                        integer(sc->rec_val1) = sc->rec_fi3(sc->rec_a2_o);
                        i3 = oprec_i_if_a_a_opla_laq_0(sc);
                        integer(sc->rec_val1) = i2;
                        i2 = sc->rec_i_ii_f(oprec_i_if_a_a_opla_laq_0(sc), i3);
                    }
                    integer(sc->rec_val1) = i1;
                    return(sc->rec_i_ii_f(oprec_i_if_a_a_opla_laq_0(sc), i2));
                }

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %rbx
pushq %rax
movq %rdi, %rax
movq 0x400(%rdi), %rdi
movq %rax, %r13
callq *0x3f0(%rax)
testb %al, %al
je 0xa6609
movq %r13, %rax
movq 0x408(%r13), %rdi
addq $0x8, %rsp
popq %rbx
popq %r13
popq %r14
popq %r15
jmpq *0x3c0(%rax)
movq 0x410(%r13), %rdi
callq *0x3c8(%r13)
movq %rax, %rbx
movq 0x418(%r13), %rdi
callq *0x3d0(%r13)
movq 0x450(%r13), %rcx
movq %rax, 0x8(%rcx)
movq 0x400(%r13), %rdi
callq *0x3f0(%r13)
testb %al, %al
je 0xa6655
movq 0x408(%r13), %rdi
callq *0x3c0(%r13)
jmp 0xa66ad
movq 0x410(%r13), %rdi
callq *0x3c8(%r13)
movq %rax, %r14
movq 0x418(%r13), %rdi
callq *0x3d0(%r13)
movq 0x450(%r13), %rcx
movq %rax, 0x8(%rcx)
movq %r13, %rdi
callq 0xa65cf
movq %rax, %r15
movq 0x450(%r13), %rax
movq %r14, 0x8(%rax)
movq 0x440(%r13), %r14
movq %r13, %rdi
callq 0xa65cf
movq %rax, %rdi
movq %r15, %rsi
callq *%r14
movq %rax, %r14
movq %r13, %rdi
movq 0x450(%r13), %rax
movq %rbx, 0x8(%rax)
movq 0x440(%r13), %rbx
callq 0xa65cf
movq %rax, %rdi
movq %r14, %rsi
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r13
popq %r14
popq %r15
jmpq *%rax
// File: /workspace/github_c_makefile_star2_O2/BernardTatin[P]s7sh/s7.c
// Function: oprec_i_if_a_opla_laq_a_0
static s7_int oprec_i_if_a_opla_laq_a_0(s7_scheme *sc)
                {
                    s7_int i1, i2;
                    if (!sc->rec_fb1(sc->rec_test_o))
                        return(sc->rec_fi1(sc->rec_result_o));
                    i1 = sc->rec_fi2(sc->rec_a1_o);
                    integer(sc->rec_val1) = sc->rec_fi3(sc->rec_a2_o);
                    if (!sc->rec_fb1(sc->rec_test_o))
                        i2 = sc->rec_fi1(sc->rec_result_o);
                    else
                    {
                        s7_int i3;
                        i2 = sc->rec_fi2(sc->rec_a1_o);
                        integer(sc->rec_val1) = sc->rec_fi3(sc->rec_a2_o);
                        i3 = oprec_i_if_a_opla_laq_a_0(sc);
                        integer(sc->rec_val1) = i2;
                        i2 = sc->rec_i_ii_f(oprec_i_if_a_opla_laq_a_0(sc), i3);
                    }
                    integer(sc->rec_val1) = i1;
                    return(sc->rec_i_ii_f(oprec_i_if_a_opla_laq_a_0(sc), i2));
                }

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %rbx
pushq %rax
movq %rdi, %rax
movq 0x400(%rdi), %rdi
movq %rax, %r13
callq *0x3f0(%rax)
testb %al, %al
je 0xa6799
movq 0x410(%r13), %rdi
callq *0x3c8(%r13)
movq %rax, %rbx
movq 0x418(%r13), %rdi
callq *0x3d0(%r13)
movq 0x450(%r13), %rcx
movq %rax, 0x8(%rcx)
movq 0x400(%r13), %rdi
callq *0x3f0(%r13)
testb %al, %al
je 0xa67b4
movq 0x410(%r13), %rdi
callq *0x3c8(%r13)
movq %rax, %r14
movq 0x418(%r13), %rdi
callq *0x3d0(%r13)
movq 0x450(%r13), %rcx
movq %rax, 0x8(%rcx)
movq %r13, %rdi
callq 0xa66e0
movq %rax, %r15
movq 0x450(%r13), %rax
movq %r14, 0x8(%rax)
movq 0x440(%r13), %r14
movq %r13, %rdi
callq 0xa66e0
movq %rax, %rdi
movq %r15, %rsi
callq *%r14
jmp 0xa67c2
movq %r13, %rax
movq 0x408(%r13), %rdi
addq $0x8, %rsp
popq %rbx
popq %r13
popq %r14
popq %r15
jmpq *0x3c0(%rax)
movq 0x408(%r13), %rdi
callq *0x3c0(%r13)
movq %rax, %r14
movq %r13, %rdi
movq 0x450(%r13), %rax
movq %rbx, 0x8(%rax)
movq 0x440(%r13), %rbx
callq 0xa66e0
movq %rax, %rdi
movq %r14, %rsi
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r13
popq %r14
popq %r15
jmpq *%rax
// File: /workspace/github_c_makefile_star2_O2/BernardTatin[P]s7sh/s7.c
// Function: oprec_if_a_a_opla_laq
static s7_pointer oprec_if_a_a_opla_laq(s7_scheme *sc)
                {
                    if (sc->rec_testf(sc, sc->rec_testp) != sc->F)
                        return(sc->rec_resf(sc, sc->rec_resp));
                    recur_push(sc, sc->rec_f1f(sc, sc->rec_f1p));
                    slot_set_value(sc->rec_slot1, sc->rec_f2f(sc, sc->rec_f2p));
                    slot_set_value(sc->rec_slot1, recur_swap(sc, oprec_if_a_a_opla_laq(sc)));
                    set_car(sc->t2_1, oprec_if_a_a_opla_laq(sc));
                    set_car(sc->t2_2, recur_pop(sc));
                    return(sc->rec_call(sc, sc->t2_1));
                }

// Assembly:
pushq %rbx
movq %rdi, %rbx
movq 0x2f0(%rdi), %rsi
callq *0x360(%rdi)
cmpq 0x120(%rbx), %rax
je 0xa6950
leaq 0x3b0(%rbx), %rax
leaq 0x340(%rbx), %rcx
jmp 0xa6a03
movq 0x2f8(%rbx), %rsi
movq %rbx, %rdi
callq *0x368(%rbx)
movq %rbx, %rdi
movq %rax, %rsi
callq 0xa619e
movq 0x300(%rbx), %rsi
movq %rbx, %rdi
callq *0x370(%rbx)
movq 0x348(%rbx), %rcx
movq %rax, 0x10(%rcx)
movq %rbx, %rdi
callq 0xa6923
movq 0x2d0(%rbx), %rcx
movq 0x2e8(%rbx), %rdx
movq 0x10(%rdx), %rdx
movq -0x8(%rdx,%rcx,8), %rsi
movq %rax, -0x8(%rdx,%rcx,8)
movq 0x348(%rbx), %rax
movq %rsi, 0x10(%rax)
movq %rbx, %rdi
callq 0xa6923
leaq 0x570(%rbx), %rcx
movq 0x570(%rbx), %rdx
movq %rax, 0x8(%rdx)
movq 0x2d0(%rbx), %rax
movq 0x2e8(%rbx), %rdx
leaq -0x1(%rax), %rsi
movq %rsi, 0x2d0(%rbx)
movq 0x10(%rdx), %rdx
movq -0x8(%rdx,%rax,8), %rax
movq 0x578(%rbx), %rdx
movq %rax, 0x8(%rdx)
leaq 0x3b8(%rbx), %rax
movq (%rax), %rax
movq (%rcx), %rsi
movq %rbx, %rdi
popq %rbx
jmpq *%rax
// File: /workspace/github_c_makefile_star2_O2/BernardTatin[P]s7sh/s7.c
// Function: oprec_if_a_opla_laq_a
static s7_pointer oprec_if_a_opla_laq_a(s7_scheme *sc)
                {
                    if (sc->rec_testf(sc, sc->rec_testp) == sc->F)
                        return(sc->rec_resf(sc, sc->rec_resp));
                    recur_push(sc, sc->rec_f1f(sc, sc->rec_f1p));
                    slot_set_value(sc->rec_slot1, sc->rec_f2f(sc, sc->rec_f2p));
                    slot_set_value(sc->rec_slot1, recur_swap(sc, oprec_if_a_opla_laq_a(sc)));
                    set_car(sc->t2_1, oprec_if_a_opla_laq_a(sc));
                    set_car(sc->t2_2, recur_pop(sc));
                    return(sc->rec_call(sc, sc->t2_1));
                }

// Assembly:
pushq %rbx
movq %rdi, %rbx
movq 0x2f0(%rdi), %rsi
callq *0x360(%rdi)
cmpq 0x120(%rbx), %rax
je 0xa6ae2
movq 0x2f8(%rbx), %rsi
movq %rbx, %rdi
callq *0x368(%rbx)
movq %rbx, %rdi
movq %rax, %rsi
callq 0xa619e
movq 0x300(%rbx), %rsi
movq %rbx, %rdi
callq *0x370(%rbx)
movq 0x348(%rbx), %rcx
movq %rax, 0x10(%rcx)
movq %rbx, %rdi
callq 0xa6a0f
movq 0x2d0(%rbx), %rcx
movq 0x2e8(%rbx), %rdx
movq 0x10(%rdx), %rdx
movq -0x8(%rdx,%rcx,8), %rsi
movq %rax, -0x8(%rdx,%rcx,8)
movq 0x348(%rbx), %rax
movq %rsi, 0x10(%rax)
movq %rbx, %rdi
callq 0xa6a0f
leaq 0x570(%rbx), %rcx
movq 0x570(%rbx), %rdx
movq %rax, 0x8(%rdx)
movq 0x2d0(%rbx), %rax
movq 0x2e8(%rbx), %rdx
leaq -0x1(%rax), %rsi
movq %rsi, 0x2d0(%rbx)
movq 0x10(%rdx), %rdx
movq -0x8(%rdx,%rax,8), %rax
movq 0x578(%rbx), %rdx
movq %rax, 0x8(%rdx)
leaq 0x3b8(%rbx), %rax
jmp 0xa6af0
leaq 0x3b0(%rbx), %rax
leaq 0x340(%rbx), %rcx
movq (%rax), %rax
movq (%rcx), %rsi
movq %rbx, %rdi
popq %rbx
jmpq *%rax
// File: /workspace/github_c_makefile_star2_O2/BernardTatin[P]s7sh/s7.c
// Function: oprec_d_if_a_a_opla_laq
static s7_double oprec_d_if_a_a_opla_laq(s7_scheme *sc)
                {
                    s7_double x1, x2;
                    sc->pc = 0;
                    if (sc->rec_test_o->v[0].fb(sc->rec_test_o))
                    {
                        sc->pc++;
                        return(sc->rec_result_o->v[0].fd(sc->rec_result_o));
                    }
                    sc->pc = sc->rec_pc1;
                    x1 = sc->rec_a1_o->v[0].fd(sc->rec_a1_o);
                    real(sc->rec_val1) = sc->rec_a2_o->v[0].fd(sc->rec_a2_o);
                    x2 = oprec_d_if_a_a_opla_laq(sc);
                    real(sc->rec_val1) = x1;
                    return(sc->rec_d_dd_f(oprec_d_if_a_a_opla_laq(sc), x2));
                }

// Assembly:
pushq %r14
pushq %rbx
subq $0x18, %rsp
movq %rdi, %rbx
andl $0x0, 0x2258(%rdi)
movq 0x400(%rdi), %rdi
callq *(%rdi)
testb %al, %al
je 0xa6b30
incl 0x2258(%rbx)
movq 0x408(%rbx), %rdi
addq $0x18, %rsp
popq %rbx
popq %r14
jmpq *(%rdi)
movl 0x460(%rbx), %eax
movl %eax, 0x2258(%rbx)
movq 0x410(%rbx), %rdi
callq *(%rdi)
movsd %xmm0, 0x10(%rsp)
movq 0x418(%rbx), %rdi
callq *(%rdi)
movq 0x450(%rbx), %rax
movsd %xmm0, 0x8(%rax)
movq %rbx, %rdi
callq 0xa6afc
movsd %xmm0, 0x8(%rsp)
movq 0x450(%rbx), %rax
movsd 0x10(%rsp), %xmm0
movsd %xmm0, 0x8(%rax)
movq 0x448(%rbx), %r14
movq %rbx, %rdi
callq 0xa6afc
movsd 0x8(%rsp), %xmm1
movq %r14, %rax
addq $0x18, %rsp
popq %rbx
popq %r14
jmpq *%rax
// File: /workspace/github_c_makefile_star2_O2/BernardTatin[P]s7sh/s7.c
// Function: oprec_d_if_a_opla_laq_a
static s7_double oprec_d_if_a_opla_laq_a(s7_scheme *sc)
                {
                    s7_double x1, x2;
                    sc->pc = 0;
                    if (!(sc->rec_test_o->v[0].fb(sc->rec_test_o)))
                    {
                        sc->pc++;
                        return(sc->rec_result_o->v[0].fd(sc->rec_result_o));
                    }
                    sc->pc = sc->rec_pc1;
                    x1 = sc->rec_a1_o->v[0].fd(sc->rec_a1_o);
                    sc->pc++;
                    real(sc->rec_val1) = sc->rec_a2_o->v[0].fd(sc->rec_a2_o);
                    x2 = oprec_d_if_a_opla_laq_a(sc);
                    real(sc->rec_val1) = x1;
                    return(sc->rec_d_dd_f(oprec_d_if_a_opla_laq_a(sc), x2));
                }

// Assembly:
pushq %r14
pushq %rbx
subq $0x18, %rsp
movq %rdi, %rbx
andl $0x0, 0x2258(%rdi)
movq 0x400(%rdi), %rdi
callq *(%rdi)
testb %al, %al
je 0xa6c36
movl 0x460(%rbx), %eax
movl %eax, 0x2258(%rbx)
movq 0x410(%rbx), %rdi
callq *(%rdi)
movsd %xmm0, 0x10(%rsp)
incl 0x2258(%rbx)
movq 0x418(%rbx), %rdi
callq *(%rdi)
movq 0x450(%rbx), %rax
movsd %xmm0, 0x8(%rax)
movq %rbx, %rdi
callq 0xa6ba1
movsd %xmm0, 0x8(%rsp)
movq 0x450(%rbx), %rax
movsd 0x10(%rsp), %xmm0
movsd %xmm0, 0x8(%rax)
movq 0x448(%rbx), %r14
movq %rbx, %rdi
callq 0xa6ba1
movsd 0x8(%rsp), %xmm1
movq %r14, %rax
addq $0x18, %rsp
popq %rbx
popq %r14
jmpq *%rax
incl 0x2258(%rbx)
movq 0x408(%rbx), %rdi
addq $0x18, %rsp
popq %rbx
popq %r14
jmpq *(%rdi)
// File: /workspace/github_c_makefile_star2_O2/BernardTatin[P]s7sh/s7.c
// Function: oprec_if_a_a_opa_la_laq
static s7_pointer oprec_if_a_a_opa_la_laq(s7_scheme *sc)
                {
                    if (sc->rec_testf(sc, sc->rec_testp) != sc->F)
                        return(sc->rec_resf(sc, sc->rec_resp));
                    recur_push(sc, sc->rec_f1f(sc, sc->rec_f1p));
                    recur_push(sc, sc->rec_f2f(sc, sc->rec_f2p));
                    slot_set_value(sc->rec_slot1, sc->rec_f3f(sc, sc->rec_f3p));
                    slot_set_value(sc->rec_slot1, recur_swap(sc, oprec_if_a_a_opa_la_laq(sc)));
                    set_car(sc->t3_2, oprec_if_a_a_opa_la_laq(sc));
                    set_car(sc->t3_3, recur_pop(sc));
                    set_car(sc->t3_1, recur_pop(sc));
                    return(sc->rec_call(sc, sc->t3_1));
                }

// Assembly:
pushq %rbx
movq %rdi, %rbx
movq 0x2f0(%rdi), %rsi
callq *0x360(%rdi)
cmpq 0x120(%rbx), %rax
je 0xa6d5f
leaq 0x3b0(%rbx), %rcx
leaq 0x340(%rbx), %rax
jmp 0xa6e5a
movq 0x2f8(%rbx), %rsi
movq %rbx, %rdi
callq *0x368(%rbx)
movq %rbx, %rdi
movq %rax, %rsi
callq 0xa619e
movq 0x300(%rbx), %rsi
movq %rbx, %rdi
callq *0x370(%rbx)
movq %rbx, %rdi
movq %rax, %rsi
callq 0xa619e
movq 0x308(%rbx), %rsi
movq %rbx, %rdi
callq *0x378(%rbx)
movq 0x348(%rbx), %rcx
movq %rax, 0x10(%rcx)
movq %rbx, %rdi
callq 0xa6d32
movq 0x2d0(%rbx), %rcx
movq 0x2e8(%rbx), %rdx
movq 0x10(%rdx), %rdx
movq -0x8(%rdx,%rcx,8), %rsi
movq %rax, -0x8(%rdx,%rcx,8)
movq 0x348(%rbx), %rax
movq %rsi, 0x10(%rax)
movq %rbx, %rdi
callq 0xa6d32
movq 0x588(%rbx), %rcx
movq %rax, 0x8(%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 0x590(%rbx), %rcx
movq %rax, 0x8(%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), %rcx
leaq 0x580(%rbx), %rax
movq 0x580(%rbx), %rdx
movq %rcx, 0x8(%rdx)
leaq 0x3b8(%rbx), %rcx
movq (%rcx), %rcx
movq (%rax), %rsi
movq %rbx, %rdi
popq %rbx
jmpq *%rcx
// File: /workspace/github_c_makefile_star2_O2/BernardTatin[P]s7sh/s7.c
// Function: oprec_if_a_opa_la_laq_a
static s7_pointer oprec_if_a_opa_la_laq_a(s7_scheme *sc)
                {
                    if (sc->rec_testf(sc, sc->rec_testp) == sc->F)
                        return(sc->rec_resf(sc, sc->rec_resp));
                    recur_push(sc, sc->rec_f1f(sc, sc->rec_f1p));
                    recur_push(sc, sc->rec_f2f(sc, sc->rec_f2p));
                    slot_set_value(sc->rec_slot1, sc->rec_f3f(sc, sc->rec_f3p));
                    slot_set_value(sc->rec_slot1, recur_swap(sc, oprec_if_a_opa_la_laq_a(sc)));
                    set_car(sc->t3_2, oprec_if_a_opa_la_laq_a(sc));
                    set_car(sc->t3_3, recur_pop(sc));
                    set_car(sc->t3_1, recur_pop(sc));
                    return(sc->rec_call(sc, sc->t3_1));
                }

// Assembly:
pushq %rbx
movq %rdi, %rbx
movq 0x2f0(%rdi), %rsi
callq *0x360(%rdi)
cmpq 0x120(%rbx), %rax
je 0xa6f81
movq 0x2f8(%rbx), %rsi
movq %rbx, %rdi
callq *0x368(%rbx)
movq %rbx, %rdi
movq %rax, %rsi
callq 0xa619e
movq 0x300(%rbx), %rsi
movq %rbx, %rdi
callq *0x370(%rbx)
movq %rbx, %rdi
movq %rax, %rsi
callq 0xa619e
movq 0x308(%rbx), %rsi
movq %rbx, %rdi
callq *0x378(%rbx)
movq 0x348(%rbx), %rcx
movq %rax, 0x10(%rcx)
movq %rbx, %rdi
callq 0xa6e66
movq 0x2d0(%rbx), %rcx
movq 0x2e8(%rbx), %rdx
movq 0x10(%rdx), %rdx
movq -0x8(%rdx,%rcx,8), %rsi
movq %rax, -0x8(%rdx,%rcx,8)
movq 0x348(%rbx), %rax
movq %rsi, 0x10(%rax)
movq %rbx, %rdi
callq 0xa6e66
movq 0x588(%rbx), %rcx
movq %rax, 0x8(%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 0x590(%rbx), %rcx
movq %rax, 0x8(%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), %rcx
leaq 0x580(%rbx), %rax
movq 0x580(%rbx), %rdx
movq %rcx, 0x8(%rdx)
leaq 0x3b8(%rbx), %rcx
jmp 0xa6f8f
leaq 0x3b0(%rbx), %rcx
leaq 0x340(%rbx), %rax
movq (%rcx), %rcx
movq (%rax), %rsi
movq %rbx, %rdi
popq %rbx
jmpq *%rcx
// File: /workspace/github_c_makefile_star2_O2/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 %rbx
movq %rdi, %rbx
movq 0x2f0(%rbx), %rsi
movq %rbx, %rdi
callq *0x360(%rbx)
cmpq 0x120(%rbx), %rax
jne 0xa7555
movq 0x2f8(%rbx), %rsi
movq %rbx, %rdi
callq *0x368(%rbx)
movq %rax, %rcx
movq 0x120(%rbx), %rax
cmpq %rax, %rcx
je 0xa7574
movq 0x348(%rbx), %rax
movq 0x10(%rax), %rsi
movq %rbx, %rdi
callq 0xa619e
movq 0x350(%rbx), %rax
movq 0x10(%rax), %rsi
movq %rbx, %rdi
callq 0xa619e
movq 0x300(%rbx), %rsi
movq %rbx, %rdi
callq *0x370(%rbx)
movq %rbx, %rdi
movq %rax, %rsi
callq 0xa619e
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 0xa73ab
movq %rax, %rcx
movq 0x120(%rbx), %rax
movq 0x2d0(%rbx), %rdx
cmpq %rax, %rcx
je 0xa7569
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 %rbx, %rdi
movq %rax, %rsi
callq 0xa619e
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)
jmp 0xa73af
movq 0x340(%rbx), %rsi
movq 0x3b0(%rbx), %rax
movq %rbx, %rdi
popq %rbx
jmpq *%rax
addq $-0x2, %rdx
movq %rdx, 0x2d0(%rbx)
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O2/BernardTatin[P]s7sh/s7.c
// Function: oprec_if_a_a_opla_la_laq
static s7_pointer oprec_if_a_a_opla_la_laq(s7_scheme *sc)
                {
                    if (sc->rec_testf(sc, sc->rec_testp) != sc->F)
                        return(sc->rec_resf(sc, sc->rec_resp));
                    recur_push(sc, sc->rec_f1f(sc, sc->rec_f1p));
                    recur_push(sc, sc->rec_f2f(sc, sc->rec_f2p));
                    slot_set_value(sc->rec_slot1, sc->rec_f3f(sc, sc->rec_f3p));
                    slot_set_value(sc->rec_slot1, recur_swap(sc, oprec_if_a_a_opla_la_laq(sc)));
                    recur_push(sc, oprec_if_a_a_opla_la_laq(sc));
                    slot_set_value(sc->rec_slot1, recur_ref(sc, 3));
                    set_car(sc->t3_1, oprec_if_a_a_opla_la_laq(sc));
                    set_car(sc->t3_2, recur_pop(sc));
                    set_car(sc->t3_3, recur_pop2(sc));
                    return(sc->rec_call(sc, sc->t3_1));
                }

// Assembly:
pushq %rbx
movq %rdi, %rbx
movq 0x2f0(%rdi), %rsi
callq *0x360(%rdi)
cmpq 0x120(%rbx), %rax
je 0xa75a3
leaq 0x3b0(%rbx), %rax
leaq 0x340(%rbx), %rcx
jmp 0xa76d3
movq 0x2f8(%rbx), %rsi
movq %rbx, %rdi
callq *0x368(%rbx)
movq %rbx, %rdi
movq %rax, %rsi
callq 0xa619e
movq 0x300(%rbx), %rsi
movq %rbx, %rdi
callq *0x370(%rbx)
movq %rbx, %rdi
movq %rax, %rsi
callq 0xa619e
movq 0x308(%rbx), %rsi
movq %rbx, %rdi
callq *0x378(%rbx)
movq 0x348(%rbx), %rcx
movq %rax, 0x10(%rcx)
movq %rbx, %rdi
callq 0xa7576
movq 0x2d0(%rbx), %rcx
movq 0x2e8(%rbx), %rdx
movq 0x10(%rdx), %rdx
movq -0x8(%rdx,%rcx,8), %rsi
movq %rax, -0x8(%rdx,%rcx,8)
movq 0x348(%rbx), %rax
movq %rsi, 0x10(%rax)
movq %rbx, %rdi
callq 0xa7576
movq %rbx, %rdi
movq %rax, %rsi
callq 0xa619e
movq 0x2d0(%rbx), %rax
movq 0x2e8(%rbx), %rcx
movq 0x10(%rcx), %rcx
movq -0x18(%rcx,%rax,8), %rax
movq 0x348(%rbx), %rcx
movq %rax, 0x10(%rcx)
movq %rbx, %rdi
callq 0xa7576
leaq 0x580(%rbx), %rcx
movq 0x580(%rbx), %rdx
movq %rax, 0x8(%rdx)
movq 0x2d0(%rbx), %rax
movq 0x2e8(%rbx), %rdx
leaq -0x1(%rax), %rsi
movq %rsi, 0x2d0(%rbx)
movq 0x10(%rdx), %rdx
movq -0x8(%rdx,%rax,8), %rax
movq 0x588(%rbx), %rdx
movq %rax, 0x8(%rdx)
movq 0x2d0(%rbx), %rax
movq 0x2e8(%rbx), %rdx
leaq -0x2(%rax), %rsi
movq %rsi, 0x2d0(%rbx)
movq 0x10(%rdx), %rdx
movq -0x8(%rdx,%rax,8), %rax
movq 0x590(%rbx), %rdx
movq %rax, 0x8(%rdx)
leaq 0x3b8(%rbx), %rax
movq (%rax), %rax
movq (%rcx), %rsi
movq %rbx, %rdi
popq %rbx
jmpq *%rax
// File: /workspace/github_c_makefile_star2_O2/BernardTatin[P]s7sh/s7.c
// Function: opinit_cond_a_a_a_laa_opa_laaq
static void opinit_cond_a_a_a_laa_opa_laaq(s7_scheme *sc, bool cond)
                {
                    s7_pointer caller;
                    rec_set_test(sc, (cond) ? cadr(sc->code) : cdr(sc->code));
                    rec_set_res(sc, (cond) ? cdadr(sc->code) : cddr(sc->code));

                    sc->rec_f1p = (cond) ? caddr(sc->code) : cdr(cadddr(sc->code));
                    sc->rec_f2p = cdadr(sc->rec_f1p);
                    rec_set_f3(sc, cdr(sc->rec_f2p));

                    sc->rec_f1f = c_callee(sc->rec_f1p);
                    sc->rec_f1p = car(sc->rec_f1p);
                    sc->rec_f2f = c_callee(sc->rec_f2p);
                    sc->rec_f2p = car(sc->rec_f2p);

                    caller = opt3_pair(sc->code);          /* opA_LAA */

                    rec_set_f4(sc, cdr(caller));
                    sc->rec_f5p = cdr(opt3_pair(caller));  /* (L)AA */
                    rec_set_f6(sc, cdr(sc->rec_f5p));
                    sc->rec_f5f = c_callee(sc->rec_f5p);
                    sc->rec_f5p = car(sc->rec_f5p);
                    sc->rec_call = c_callee(caller);

                    sc->rec_slot1 = let_slots(sc->envir);
                    sc->rec_slot2 = next_slot(sc->rec_slot1);
                }

// Assembly:
movq (%rdi), %rax
leaq 0x10(%rax), %rcx
movq %rcx, %rdx
testl %esi, %esi
je 0xa76f4
movq (%rcx), %rdx
addq $0x8, %rdx
movq (%rdx), %rdx
movq %rdx, 0x2f0(%rdi)
movq 0x20(%rdx), %r8
movq %r8, 0x360(%rdi)
movq 0x8(%rdx), %rdx
movq %rdx, 0x2f0(%rdi)
testb %sil, %sil
je 0xa7720
movq (%rcx), %rcx
addq $0x8, %rcx
movq (%rcx), %rcx
movq 0x10(%rcx), %rcx
movq %rcx, 0x340(%rdi)
movq 0x20(%rcx), %rdx
movq %rdx, 0x3b0(%rdi)
movq 0x8(%rcx), %rcx
movq %rcx, 0x340(%rdi)
movq 0x10(%rax), %rcx
movq 0x10(%rcx), %rcx
testb %sil, %sil
je 0xa7757
addq $0x8, %rcx
jmp 0xa7763
movq 0x10(%rcx), %rcx
movq 0x8(%rcx), %rcx
addq $0x10, %rcx
movq (%rcx), %rcx
movq %rcx, 0x2f8(%rdi)
movq 0x10(%rcx), %rdx
movq 0x8(%rdx), %rdx
movq 0x10(%rdx), %rdx
movq %rdx, 0x300(%rdi)
movq 0x10(%rdx), %rsi
movq %rsi, 0x308(%rdi)
movq 0x20(%rsi), %r8
movq %r8, 0x378(%rdi)
movq 0x8(%rsi), %rsi
movq %rsi, 0x308(%rdi)
movq 0x20(%rcx), %rsi
movq %rsi, 0x368(%rdi)
movq 0x8(%rcx), %rcx
movq %rcx, 0x2f8(%rdi)
movq 0x20(%rdx), %rcx
movq %rcx, 0x370(%rdi)
movq 0x8(%rdx), %rcx
movq %rcx, 0x300(%rdi)
movq 0x28(%rax), %rax
movq 0x10(%rax), %rcx
movq %rcx, 0x310(%rdi)
movq 0x20(%rcx), %rdx
movq %rdx, 0x380(%rdi)
movq 0x8(%rcx), %rcx
movq %rcx, 0x310(%rdi)
movq 0x28(%rax), %rcx
movq 0x10(%rcx), %rcx
movq %rcx, 0x318(%rdi)
movq 0x10(%rcx), %rdx
movq %rdx, 0x320(%rdi)
movq 0x20(%rdx), %rsi
movq %rsi, 0x390(%rdi)
movq 0x8(%rdx), %rdx
movq %rdx, 0x320(%rdi)
movq 0x20(%rcx), %rdx
movq %rdx, 0x388(%rdi)
movq 0x8(%rcx), %rcx
movq %rcx, 0x318(%rdi)
movq 0x20(%rax), %rax
movq %rax, 0x3b8(%rdi)
movq 0x8(%rdi), %rax
movq 0x8(%rax), %rax
movq %rax, 0x348(%rdi)
movq 0x18(%rax), %rax
movq %rax, 0x350(%rdi)
retq
// File: /workspace/github_c_makefile_star2_O2/BernardTatin[P]s7sh/s7.c
// Function: oprec_cond_a_a_a_laa_opa_laaq
static s7_pointer oprec_cond_a_a_a_laa_opa_laaq(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)
                    {
                        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));
                        return(oprec_cond_a_a_a_laa_opa_laaq(sc));
                    }
                    recur_push(sc, sc->rec_f4f(sc, sc->rec_f4p));
                    recur_push(sc, sc->rec_f5f(sc, sc->rec_f5p));
                    slot_set_value(sc->rec_slot2, sc->rec_f6f(sc, sc->rec_f6p));
                    slot_set_value(sc->rec_slot1, recur_pop(sc));
                    set_car(sc->t2_2, oprec_cond_a_a_a_laa_opa_laaq(sc));
                    set_car(sc->t2_1, recur_pop(sc));
                    return(sc->rec_call(sc, sc->t2_1));
                }

// Assembly:
pushq %rbx
movq %rdi, %rbx
movq 0x2f0(%rbx), %rsi
movq %rbx, %rdi
callq *0x360(%rbx)
cmpq 0x120(%rbx), %rax
jne 0xa7900
movq 0x2f8(%rbx), %rsi
movq %rbx, %rdi
callq *0x368(%rbx)
cmpq 0x120(%rbx), %rax
je 0xa7913
movq 0x300(%rbx), %rsi
movq %rbx, %rdi
callq *0x370(%rbx)
movq %rbx, %rdi
movq %rax, %rsi
callq 0xa619e
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)
jmp 0xa7862
leaq 0x3b0(%rbx), %rcx
leaq 0x340(%rbx), %rax
jmp 0xa79df
movq 0x310(%rbx), %rsi
movq %rbx, %rdi
callq *0x380(%rbx)
movq %rbx, %rdi
movq %rax, %rsi
callq 0xa619e
movq 0x318(%rbx), %rsi
movq %rbx, %rdi
callq *0x388(%rbx)
movq %rbx, %rdi
movq %rax, %rsi
callq 0xa619e
movq 0x320(%rbx), %rsi
movq %rbx, %rdi
callq *0x390(%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 0xa785e
movq 0x578(%rbx), %rcx
movq %rax, 0x8(%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), %rcx
leaq 0x570(%rbx), %rax
movq 0x570(%rbx), %rdx
movq %rcx, 0x8(%rdx)
leaq 0x3b8(%rbx), %rcx
movq (%rcx), %rcx
movq (%rax), %rsi
movq %rbx, %rdi
popq %rbx
jmpq *%rcx
// File: /workspace/github_c_makefile_star2_O2/BernardTatin[P]s7sh/s7.c
// Function: oprec_cond_a_a_a_a_opla_laq
static s7_pointer oprec_cond_a_a_a_a_opla_laq(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->rec_f2f(sc, sc->rec_f2p));
                    recur_push(sc, sc->rec_f3f(sc, sc->rec_f3p));
                    slot_set_value(sc->rec_slot1, sc->rec_f4f(sc, sc->rec_f4p));
                    slot_set_value(sc->rec_slot1, recur_swap(sc, oprec_cond_a_a_a_a_opla_laq(sc)));
                    set_car(sc->t2_1, oprec_cond_a_a_a_a_opla_laq(sc));
                    set_car(sc->t2_2, recur_pop(sc));
                    return(sc->rec_call(sc, sc->t2_1));
                }

// Assembly:
pushq %rbx
movq %rdi, %rbx
movq 0x2f0(%rdi), %rsi
callq *0x360(%rdi)
cmpq 0x120(%rbx), %rax
je 0xa7b25
leaq 0x3b0(%rbx), %rax
leaq 0x340(%rbx), %rcx
jmp 0xa7c04
movq 0x2f8(%rbx), %rsi
movq %rbx, %rdi
callq *0x368(%rbx)
cmpq 0x120(%rbx), %rax
je 0xa7b51
leaq 0x370(%rbx), %rax
leaq 0x300(%rbx), %rcx
jmp 0xa7c04
movq 0x308(%rbx), %rsi
movq %rbx, %rdi
callq *0x378(%rbx)
movq %rbx, %rdi
movq %rax, %rsi
callq 0xa619e
movq 0x310(%rbx), %rsi
movq %rbx, %rdi
callq *0x380(%rbx)
movq 0x348(%rbx), %rcx
movq %rax, 0x10(%rcx)
movq %rbx, %rdi
callq 0xa7af8
movq 0x2d0(%rbx), %rcx
movq 0x2e8(%rbx), %rdx
movq 0x10(%rdx), %rdx
movq -0x8(%rdx,%rcx,8), %rsi
movq %rax, -0x8(%rdx,%rcx,8)
movq 0x348(%rbx), %rax
movq %rsi, 0x10(%rax)
movq %rbx, %rdi
callq 0xa7af8
leaq 0x570(%rbx), %rcx
movq 0x570(%rbx), %rdx
movq %rax, 0x8(%rdx)
movq 0x2d0(%rbx), %rax
movq 0x2e8(%rbx), %rdx
leaq -0x1(%rax), %rsi
movq %rsi, 0x2d0(%rbx)
movq 0x10(%rdx), %rdx
movq -0x8(%rdx,%rax,8), %rax
movq 0x578(%rbx), %rdx
movq %rax, 0x8(%rdx)
leaq 0x3b8(%rbx), %rax
movq (%rax), %rax
movq (%rcx), %rsi
movq %rbx, %rdi
popq %rbx
jmpq *%rax
// File: /workspace/github_c_makefile_star2_O2/BernardTatin[P]s7sh/s7.c
// Function: oprec_cond_a_a_a_a_opa_laaq
static s7_pointer oprec_cond_a_a_a_a_opa_laaq(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->rec_f2f(sc, sc->rec_f2p));
                    recur_push(sc, sc->rec_f3f(sc, sc->rec_f3p));
                    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));
                    set_car(sc->t2_2, oprec_cond_a_a_a_a_opa_laaq(sc));
                    set_car(sc->t2_1, recur_pop(sc));
                    return(sc->rec_call(sc, sc->t2_1));
                }

// Assembly:
pushq %rbx
movq %rdi, %rbx
movq 0x2f0(%rdi), %rsi
callq *0x360(%rdi)
cmpq 0x120(%rbx), %rax
je 0xa7c3d
leaq 0x3b0(%rbx), %rcx
leaq 0x340(%rbx), %rax
jmp 0xa7d35
movq 0x2f8(%rbx), %rsi
movq %rbx, %rdi
callq *0x368(%rbx)
cmpq 0x120(%rbx), %rax
je 0xa7c69
leaq 0x370(%rbx), %rcx
leaq 0x300(%rbx), %rax
jmp 0xa7d35
movq 0x308(%rbx), %rsi
movq %rbx, %rdi
callq *0x378(%rbx)
movq %rbx, %rdi
movq %rax, %rsi
callq 0xa619e
movq 0x310(%rbx), %rsi
movq %rbx, %rdi
callq *0x380(%rbx)
movq %rbx, %rdi
movq %rax, %rsi
callq 0xa619e
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 %rbx, %rdi
callq 0xa7c10
movq 0x578(%rbx), %rcx
movq %rax, 0x8(%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), %rcx
leaq 0x570(%rbx), %rax
movq 0x570(%rbx), %rdx
movq %rcx, 0x8(%rdx)
leaq 0x3b8(%rbx), %rcx
movq (%rcx), %rcx
movq (%rax), %rsi
movq %rbx, %rdi
popq %rbx
jmpq *%rcx