LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O1/BernardTatin[P]s7sh/s7.c
// Function: fx_c_cdr_t
static s7_pointer fx_c_cdr_t(s7_scheme *sc, s7_pointer arg)
                {
                    s7_pointer val;
                    check_let_slots(sc, __func__, arg, opt2_sym(cdr(arg)));
                    val = slot_value(let_slots(sc->envir));
                    set_car(sc->t1_1, (is_pair(val)) ? cdr(val) : g_cdr(sc, set_plist_1(sc, val)));
                    return(c_call(arg)(sc, sc->t1_1));
                }

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rsi, %r14
movq %rdi, %rbx
movq 0x8(%rdi), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rax
cmpb $0x1, (%rax)
jne 0xd9013
movq 0x10(%rax), %rax
jmp 0xd9049
movq 0x700(%rbx), %rcx
movq %rax, 0x8(%rcx)
movq 0x700(%rbx), %rcx
movq 0x8(%rcx), %rsi
cmpb $0x1, (%rsi)
jne 0xd9034
movq 0x10(%rsi), %rax
jmp 0xd9049
movq 0xda0(%rbx), %rdx
movq %rbx, %rdi
movl $0x1, %r8d
callq 0x9b739
movq 0x568(%rbx), %rcx
movq %rax, 0x8(%rcx)
movq 0x20(%r14), %rax
movq 0x568(%rbx), %rsi
movq %rbx, %rdi
addq $0x8, %rsp
popq %rbx
popq %r14
jmpq *%rax
// File: /workspace/github_c_makefile_star2_O1/BernardTatin[P]s7sh/s7.c
// Function: fx_is_eq_car_t_q
static s7_pointer fx_is_eq_car_t_q(s7_scheme *sc, s7_pointer arg)
                {
                    s7_pointer lst, a;
                    a = cdr(arg);
                    check_let_slots(sc, __func__, arg, opt3_sym(a));
                    lst = slot_value(let_slots(sc->envir));
                    if (is_pair(lst))
                        return(make_boolean(sc, car(lst) == opt2_con(a)));
                    return(make_boolean(sc, s7_is_eq(g_car(sc, set_plist_1(sc, lst)), opt2_con(a))));
                }

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
movq 0x10(%rsi), %r14
movq 0x8(%rdi), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rax
cmpb $0x1, (%rax)
jne 0xd909e
movq 0x8(%rax), %rax
xorl %ecx, %ecx
cmpq 0x20(%r14), %rax
setne %cl
leaq 0x118(,%rcx,8), %rcx
jmp 0xd90fe
movq 0x700(%rbx), %rcx
movq %rax, 0x8(%rcx)
movq 0x700(%rbx), %rcx
movq 0x8(%rcx), %rsi
cmpb $0x1, (%rsi)
jne 0xd90bf
movq 0x8(%rsi), %rax
jmp 0xd90d4
movq 0xd20(%rbx), %rdx
movq %rbx, %rdi
movl $0x1, %r8d
callq 0x9b739
movq 0x20(%r14), %rdx
cmpq %rdx, %rax
je 0xd90f9
movl $0x120, %ecx            # imm = 0x120
cmpb $0x5, (%rax)
jne 0xd90fe
xorl %eax, %eax
cmpb $0x5, (%rdx)
setne %al
leaq 0x118(,%rax,8), %rcx
jmp 0xd90fe
movl $0x118, %ecx            # imm = 0x118
movq (%rbx,%rcx), %rax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O1/BernardTatin[P]s7sh/s7.c
// Function: fx_c_optq_cu
static s7_pointer fx_c_optq_cu(s7_scheme *sc, s7_pointer arg)
                {
                    check_let_slots(sc, __func__, arg, opt3_sym(cdr(arg)));
                    check_next_let_slot(sc, __func__, arg, opt2_sym(cdr(arg)));
                    set_car(sc->t1_1, slot_value(let_slots(sc->envir)));
                    set_car(sc->t3_1, c_call(cadr(arg))(sc, sc->t1_1));
                    set_car(sc->t3_2, opt1_con(cdr(arg)));
                    set_car(sc->t3_3, slot_value(next_slot(let_slots(sc->envir))));
                    return(c_call(arg)(sc, sc->t3_1));
                }

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rsi, %rbx
movq %rdi, %r14
movq 0x8(%rdi), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rax
movq 0x568(%rdi), %rcx
movq %rax, 0x8(%rcx)
movq 0x10(%rsi), %rax
movq 0x8(%rax), %rax
movq 0x568(%rdi), %rsi
callq *0x20(%rax)
movq 0x580(%r14), %rcx
movq %rax, 0x8(%rcx)
movq 0x10(%rbx), %rax
movq 0x18(%rax), %rax
movq 0x588(%r14), %rcx
movq %rax, 0x8(%rcx)
movq 0x8(%r14), %rax
movq 0x8(%rax), %rax
movq 0x18(%rax), %rax
movq 0x10(%rax), %rax
movq 0x590(%r14), %rcx
movq %rax, 0x8(%rcx)
movq 0x20(%rbx), %rax
movq 0x580(%r14), %rsi
movq %r14, %rdi
addq $0x8, %rsp
popq %rbx
popq %r14
jmpq *%rax
// File: /workspace/github_c_makefile_star2_O1/BernardTatin[P]s7sh/s7.c
// Function: fx_c_optq_s
static s7_pointer fx_c_optq_s(s7_scheme *sc, s7_pointer arg)
                {
                    s7_pointer largs;
                    largs = cadr(arg);
                    check_let_slots(sc, __func__, arg, cadr(largs));
                    set_car(sc->t1_1, slot_value(let_slots(sc->envir)));
                    set_car(sc->t2_1, c_call(largs)(sc, sc->t1_1));
                    set_car(sc->t2_2, lookup(sc, caddr(arg)));
                    return(c_call(arg)(sc, sc->t2_1));
                }

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rsi, %r14
movq %rdi, %rbx
movq 0x10(%rsi), %rax
movq 0x8(%rax), %rax
movq 0x8(%rdi), %rcx
movq 0x8(%rcx), %rcx
movq 0x10(%rcx), %rcx
movq 0x568(%rdi), %rdx
movq %rcx, 0x8(%rdx)
movq 0x568(%rdi), %rsi
callq *0x20(%rax)
movq 0x570(%rbx), %rcx
movq %rax, 0x8(%rcx)
movq 0x10(%r14), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq 0x8(%rbx), %rcx
movq 0x18(%rcx), %rsi
movq 0x20(%rax), %rdx
cmpq %rdx, %rsi
je 0xd91fc
jle 0xd91f7
movq 0x10(%rcx), %rcx
movq 0x18(%rcx), %rsi
cmpq %rsi, %rdx
jl 0xd91ea
cmpq %rdx, %rsi
jne 0xd9226
movq 0x18(%rax), %rax
movq 0x10(%rax), %rdx
movq 0x578(%rbx), %rax
movq %rdx, 0x8(%rax)
movq 0x20(%r14), %rax
movq 0x570(%rbx), %rsi
movq %rbx, %rdi
addq $0x8, %rsp
popq %rbx
popq %r14
jmpq *%rax
cmpb $0x1c, (%rcx)
jne 0xd9256
movq 0x8(%rcx), %rdi
testq %rdi, %rdi
sete %sil
je 0xd9248
cmpq %rax, 0x8(%rdi)
je 0xd9244
movq 0x18(%rdi), %rdi
jmp 0xd922f
movq 0x10(%rdi), %rdx
testb %sil, %sil
je 0xd9204
movq 0x10(%rcx), %rcx
cmpb $0x1c, (%rcx)
je 0xd922b
movq 0x10(%rax), %rax
cmpb $0x20, (%rax)
je 0xd9200
xorl %edx, %edx
jmp 0xd9204
// File: /workspace/github_c_makefile_star2_O1/BernardTatin[P]s7sh/s7.c
// Function: fx_not_lt_ut
static s7_pointer fx_not_lt_ut(s7_scheme *sc, s7_pointer arg)
                {
                    s7_pointer x, y;
                    check_let_slots(sc, __func__, arg, caddr(cadr(arg)));
                    check_next_let_slot(sc, __func__, arg, cadadr(arg));
                    y = slot_value(next_slot(let_slots(sc->envir)));
                    x = slot_value(let_slots(sc->envir));
                    if ((is_t_integer(x)) && (is_t_integer(y)))
                        return(make_boolean(sc, integer(y) >= integer(x)));
                    return(make_boolean(sc, geq_b_7pp(sc, y, x)));
                }

// Assembly:
pushq %rbx
movq %rdi, %rbx
movq 0x8(%rdi), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rdx
movq 0x18(%rax), %rax
movq 0x10(%rax), %rsi
cmpb $0xb, (%rdx)
jne 0xd92c1
cmpb $0xb, (%rsi)
jne 0xd92c1
movq 0x8(%rsi), %rax
xorl %ecx, %ecx
cmpq 0x8(%rdx), %rax
setl %cl
leaq 0x118(,%rcx,8), %rax
jmp 0xd92d6
movq %rbx, %rdi
callq 0x906bc
xorb $0x1, %al
movzbl %al, %eax
leaq 0x118(,%rax,8), %rax
movq (%rbx,%rax), %rax
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O1/BernardTatin[P]s7sh/s7.c
// Function: fx_not_oputq
static s7_pointer fx_not_oputq(s7_scheme *sc, s7_pointer arg)
                {
                    s7_pointer largs;
                    largs = cadr(arg);
                    check_let_slots(sc, __func__, arg, caddr(largs));
                    check_next_let_slot(sc, __func__, arg, cadr(largs));
                    set_car(sc->t2_1, slot_value(next_slot(let_slots(sc->envir))));
                    set_car(sc->t2_2, slot_value(let_slots(sc->envir)));
                    if (c_call(largs)(sc, sc->t2_1) == sc->F) return(sc->T);
                    return(sc->F);
                }

// Assembly:
pushq %rbx
movq %rdi, %rbx
movq 0x10(%rsi), %rax
movq 0x8(%rax), %rax
movq 0x8(%rdi), %rcx
movq 0x8(%rcx), %rcx
movq 0x18(%rcx), %rcx
movq 0x10(%rcx), %rcx
movq 0x570(%rdi), %rdx
movq %rcx, 0x8(%rdx)
movq 0x8(%rdi), %rcx
movq 0x8(%rcx), %rcx
movq 0x10(%rcx), %rcx
movq 0x578(%rdi), %rdx
movq %rcx, 0x8(%rdx)
movq 0x570(%rdi), %rsi
callq *0x20(%rax)
movq %rax, %rcx
movq 0x120(%rbx), %rax
cmpq %rax, %rcx
jne 0xd933a
movq 0x118(%rbx), %rax
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O1/BernardTatin[P]s7sh/s7.c
// Function: fx_c_opuq_t
static s7_pointer fx_c_opuq_t(s7_scheme *sc, s7_pointer arg)
                {
                    s7_pointer largs;
                    largs = cadr(arg);
                    check_let_slots(sc, __func__, arg, caddr(arg));
                    check_next_let_slot(sc, __func__, arg, cadr(largs));
                    set_car(sc->t1_1, slot_value(next_slot(let_slots(sc->envir))));
                    set_car(sc->t2_1, c_call(largs)(sc, sc->t1_1));
                    set_car(sc->t2_2, slot_value(let_slots(sc->envir)));
                    return(c_call(arg)(sc, sc->t2_1));
                }

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rsi, %rbx
movq %rdi, %r14
movq 0x10(%rsi), %rax
movq 0x8(%rax), %rax
movq 0x8(%rdi), %rcx
movq 0x8(%rcx), %rcx
movq 0x18(%rcx), %rcx
movq 0x10(%rcx), %rcx
movq 0x568(%rdi), %rdx
movq %rcx, 0x8(%rdx)
movq 0x568(%rdi), %rsi
callq *0x20(%rax)
movq 0x570(%r14), %rcx
movq %rax, 0x8(%rcx)
movq 0x8(%r14), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rax
movq 0x578(%r14), %rcx
movq %rax, 0x8(%rcx)
movq 0x20(%rbx), %rax
movq 0x570(%r14), %rsi
movq %r14, %rdi
addq $0x8, %rsp
popq %rbx
popq %r14
jmpq *%rax
// File: /workspace/github_c_makefile_star2_O1/BernardTatin[P]s7sh/s7.c
// Function: fx_c_car_u
static s7_pointer fx_c_car_u(s7_scheme *sc, s7_pointer arg)
                {
                    s7_pointer val;
                    check_next_let_slot(sc, __func__, arg, opt2_sym(cdr(arg)));
                    val = slot_value(next_slot(let_slots(sc->envir)));
                    set_car(sc->t1_1, (is_pair(val)) ? car(val) : g_car(sc, set_plist_1(sc, val)));
                    return(c_call(arg)(sc, sc->t1_1));
                }

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rsi, %r14
movq %rdi, %rbx
movq 0x8(%rdi), %rax
movq 0x8(%rax), %rax
movq 0x18(%rax), %rax
movq 0x10(%rax), %rax
cmpb $0x1, (%rax)
jne 0xd93d1
movq 0x8(%rax), %rax
jmp 0xd9407
movq 0x700(%rbx), %rcx
movq %rax, 0x8(%rcx)
movq 0x700(%rbx), %rcx
movq 0x8(%rcx), %rsi
cmpb $0x1, (%rsi)
jne 0xd93f2
movq 0x8(%rsi), %rax
jmp 0xd9407
movq 0xd20(%rbx), %rdx
movq %rbx, %rdi
movl $0x1, %r8d
callq 0x9b739
movq 0x568(%rbx), %rcx
movq %rax, 0x8(%rcx)
movq 0x20(%r14), %rax
movq 0x568(%rbx), %rsi
movq %rbx, %rdi
addq $0x8, %rsp
popq %rbx
popq %r14
jmpq *%rax
// File: /workspace/github_c_makefile_star2_O1/BernardTatin[P]s7sh/s7.c
// Function: tree_set_memq_direct
static s7_pointer tree_set_memq_direct(s7_scheme *sc, s7_pointer syms, s7_pointer tree)
    {
        s7_pointer p;
        if ((sc->safety > NO_SAFETY) &&
                (tree_is_cyclic(sc, tree)))
            s7_error(sc, sc->wrong_type_arg_symbol, wrap_string(sc, "tree-set-memq: tree is cyclic", 29));
        clear_symbol_list(sc);
        for (p = syms; is_pair(p); p = cdr(p))
            add_symbol_to_list(sc, car(p));
        return(make_boolean(sc, tree_set_memq(sc, tree)));
    }

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rdx, %r14
movq %rsi, %r15
movq %rdi, %rbx
cmpq $0x0, 0x6a0(%rdi)
jle 0xd94a1
movq %rbx, %rdi
movq %r14, %rsi
callq 0x3b2ff
testb %al, %al
je 0xd94a1
movq 0x1940(%rbx), %rsi
movq 0x820(%rbx), %rax
movslq 0x7dc(%rbx), %rcx
movq (%rax,%rcx,8), %rdx
leal 0x1(%rcx), %eax
andl $0x7, %eax
movl %eax, 0x7dc(%rbx)
leaq 0x47490(%rip), %rax     # 0x12091d
movq %rax, 0x10(%rdx)
movq $0x1d, 0x8(%rdx)
movq %rbx, %rdi
callq 0x3b366
incl 0xa88(%rbx)
jne 0xd94dd
movl $0x1, 0xa88(%rbx)
incl 0xa8c(%rbx)
jmp 0xd94dd
movq 0x8(%r15), %rax
movl 0xa88(%rbx), %ecx
movl %ecx, 0x2c(%rax)
movl 0xa8c(%rbx), %ecx
movq 0x8(%rax), %rax
movq 0x20(%rax), %rax
movl %ecx, 0xc(%rax)
movq 0x10(%r15), %r15
cmpb $0x1, (%r15)
je 0xd94bb
movq %rbx, %rdi
movq %r14, %rsi
callq 0xd5599
xorb $0x1, %al
movzbl %al, %eax
movq 0x118(%rbx,%rax,8), %rax
popq %rbx
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O1/BernardTatin[P]s7sh/s7.c
// Function: fx_c_gt
static s7_pointer fx_c_gt(s7_scheme *sc, s7_pointer arg)
                {
                    check_let_slots(sc, __func__, arg, opt2_sym(cdr(arg)));
                    set_car(sc->t2_1, lookup_global(sc, cadr(arg)));
                    set_car(sc->t2_2, slot_value(let_slots(sc->envir)));
                    return(c_call(arg)(sc, sc->t2_1));
                }

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rsi, %r14
movq %rdi, %rbx
movq 0x10(%rsi), %rax
movq 0x8(%rax), %rsi
testb $0x1, 0x2(%rsi)
jne 0xd95a6
movq 0x8(%rbx), %rcx
movq 0x18(%rcx), %rdx
movq 0x20(%rsi), %rax
cmpq %rax, %rdx
je 0xd958f
jle 0xd958a
movq 0x10(%rcx), %rcx
movq 0x18(%rcx), %rdx
cmpq %rdx, %rax
jl 0xd957d
cmpq %rax, %rdx
jne 0xd95e7
movq 0x18(%rsi), %rax
movq 0x10(%rax), %rax
testq %rax, %rax
jne 0xd95ae
movq %rbx, %rdi
callq 0xa2ee9
jmp 0xd95ae
movq 0x10(%rsi), %rax
movq 0x10(%rax), %rax
movq 0x570(%rbx), %rcx
movq %rax, 0x8(%rcx)
movq 0x8(%rbx), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rax
movq 0x578(%rbx), %rcx
movq %rax, 0x8(%rcx)
movq 0x20(%r14), %rax
movq 0x570(%rbx), %rsi
movq %rbx, %rdi
addq $0x8, %rsp
popq %rbx
popq %r14
jmpq *%rax
cmpb $0x1c, (%rcx)
jne 0xd9615
movq 0x8(%rcx), %rdi
testq %rdi, %rdi
sete %dl
je 0xd9608
cmpq %rsi, 0x8(%rdi)
je 0xd9604
movq 0x18(%rdi), %rdi
jmp 0xd95f0
movq 0x10(%rdi), %rax
testb %dl, %dl
je 0xd9597
movq 0x10(%rcx), %rcx
cmpb $0x1c, (%rcx)
je 0xd95ec
movq 0x10(%rsi), %rax
cmpb $0x20, (%rax)
je 0xd9593
xorl %eax, %eax
jmp 0xd9597
// File: /workspace/github_c_makefile_star2_O1/BernardTatin[P]s7sh/s7.c
// Function: fx_c_st
static s7_pointer fx_c_st(s7_scheme *sc, s7_pointer arg)
                {
                    check_let_slots(sc, __func__, arg, opt2_sym(cdr(arg)));
                    set_car(sc->t2_1, lookup(sc, cadr(arg)));
                    set_car(sc->t2_2, slot_value(let_slots(sc->envir)));
                    return(c_call(arg)(sc, sc->t2_1));
                }

// Assembly:
movq 0x10(%rsi), %rax
movq 0x8(%rax), %rax
movq 0x8(%rdi), %rcx
movq 0x18(%rcx), %r8
movq 0x20(%rax), %rdx
cmpq %rdx, %r8
je 0xd9656
jle 0xd9651
movq 0x10(%rcx), %rcx
movq 0x18(%rcx), %r8
cmpq %r8, %rdx
jl 0xd9644
cmpq %rdx, %r8
jne 0xd968d
movq 0x18(%rax), %rax
movq 0x10(%rax), %rdx
movq 0x570(%rdi), %rax
movq %rdx, 0x8(%rax)
movq 0x8(%rdi), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rax
movq 0x578(%rdi), %rcx
movq %rax, 0x8(%rcx)
movq 0x20(%rsi), %rax
movq 0x570(%rdi), %rsi
jmpq *%rax
cmpb $0x1c, (%rcx)
jne 0xd96bd
movq 0x8(%rcx), %r9
testq %r9, %r9
sete %r8b
je 0xd96af
cmpq %rax, 0x8(%r9)
je 0xd96ab
movq 0x18(%r9), %r9
jmp 0xd9696
movq 0x10(%r9), %rdx
testb %r8b, %r8b
je 0xd965e
movq 0x10(%rcx), %rcx
cmpb $0x1c, (%rcx)
je 0xd9692
movq 0x10(%rax), %rax
cmpb $0x20, (%rax)
je 0xd965a
xorl %edx, %edx
jmp 0xd965e
// File: /workspace/github_c_makefile_star2_O1/BernardTatin[P]s7sh/s7.c
// Function: fx_c_opgsq_t_direct
static s7_pointer fx_c_opgsq_t_direct(s7_scheme *sc, s7_pointer arg)
                {
                    s7_pointer largs;
                    largs = cdadr(arg);
                    return(((s7_p_pp_t)opt2_direct(cdr(arg)))(sc,
                                ((s7_p_pp_t)opt3_direct(cdr(arg)))(sc, lookup_global(sc, car(largs)), lookup(sc, opt2_sym(largs))),
                                slot_value(let_slots(sc->envir))));
                }

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %rbx
movq 0x10(%rsi), %rax
movq 0x8(%rax), %rcx
movq 0x20(%rax), %r12
movq 0x10(%rcx), %r15
movq 0x28(%rax), %r14
movq 0x8(%r15), %rax
testb $0x1, 0x2(%rax)
jne 0xd9ab8
movq 0x8(%rbx), %rcx
movq 0x18(%rcx), %rsi
movq 0x20(%rax), %rdx
cmpq %rdx, %rsi
je 0xd9a9b
jle 0xd9a92
movq 0x10(%rcx), %rcx
movq 0x18(%rcx), %rsi
cmpq %rsi, %rdx
jl 0xd9a85
cmpq %rdx, %rsi
jne 0xd9b56
movq 0x18(%rax), %rcx
movq 0x10(%rcx), %rsi
testq %rsi, %rsi
jne 0xd9ac0
movq %rbx, %rdi
movq %rax, %rsi
callq 0xa2ee9
movq %rax, %rsi
jmp 0xd9ac0
movq 0x10(%rax), %rax
movq 0x10(%rax), %rsi
movq 0x20(%r15), %rax
movq 0x8(%rbx), %rcx
movq 0x18(%rcx), %rdi
movq 0x20(%rax), %rdx
cmpq %rdx, %rdi
je 0xd9ae9
jle 0xd9ae4
movq 0x10(%rcx), %rcx
movq 0x18(%rcx), %rdi
cmpq %rdi, %rdx
jl 0xd9ad7
cmpq %rdx, %rdi
jne 0xd9b19
movq 0x18(%rax), %rax
movq 0x10(%rax), %rdx
movq %rbx, %rdi
callq *%r14
movq 0x8(%rbx), %rcx
movq 0x8(%rcx), %rcx
movq 0x10(%rcx), %rdx
movq %rbx, %rdi
movq %rax, %rsi
movq %r12, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
jmpq *%rax
cmpb $0x1c, (%rcx)
jne 0xd9b49
movq 0x8(%rcx), %r8
testq %r8, %r8
sete %dil
je 0xd9b3b
cmpq %rax, 0x8(%r8)
je 0xd9b37
movq 0x18(%r8), %r8
jmp 0xd9b22
movq 0x10(%r8), %rdx
testb %dil, %dil
je 0xd9af1
movq 0x10(%rcx), %rcx
cmpb $0x1c, (%rcx)
je 0xd9b1e
movq 0x10(%rax), %rax
cmpb $0x20, (%rax)
je 0xd9aed
xorl %edx, %edx
jmp 0xd9af1
cmpb $0x1c, (%rcx)
jne 0xd9b88
movq 0x8(%rcx), %rdi
testq %rdi, %rdi
sete %dl
je 0xd9b77
cmpq %rax, 0x8(%rdi)
je 0xd9b73
movq 0x18(%rdi), %rdi
jmp 0xd9b5f
movq 0x10(%rdi), %rsi
testb %dl, %dl
je 0xd9aa3
movq 0x10(%rcx), %rcx
cmpb $0x1c, (%rcx)
je 0xd9b5b
movq 0x10(%rax), %rcx
cmpb $0x20, (%rcx)
je 0xd9a9f
xorl %esi, %esi
jmp 0xd9aa3
// File: /workspace/github_c_makefile_star2_O1/BernardTatin[P]s7sh/s7.c
// Function: ratio_lt_pi
static bool ratio_lt_pi(s7_pointer x, s7_int y)
    {
        if ((y >= 0) && (numerator(x) < 0))
            return(true);
        if ((y <= 0) && (numerator(x) > 0))
            return(false);
        if (denominator(x) < s7_int32_max)
            return(numerator(x) < (y * denominator(x)));
        return(fraction(x) < y);
    }

// Assembly:
testq %rsi, %rsi
js 0xd9be3
cmpq $0x0, 0x8(%rdi)
js 0xd9c41
testq %rsi, %rsi
jle 0xd9c37
movq 0x8(%rdi), %rcx
movq 0x10(%rdi), %rax
xorl %edx, %edx
cmpb $0x0, 0x837eb(%rip)     # 0x15d3e4
movl $0x7fffffff, %edi       # imm = 0x7FFFFFFF
cmoveq %rdx, %rdi
cmpq %rdi, %rax
jge 0xd9c12
imulq %rsi, %rax
cmpq %rax, %rcx
setl %al
retq
movq %rcx, -0x18(%rsp)
fildll -0x18(%rsp)
movq %rax, -0x10(%rsp)
fildll -0x10(%rsp)
fdivrp %st, %st(1)
movq %rsi, -0x8(%rsp)
fildll -0x8(%rsp)
fucompi %st(1), %st
fstp %st(0)
seta %al
retq
cmpq $0x0, 0x8(%rdi)
jle 0xd9be8
xorl %eax, %eax
retq
movb $0x1, %al
retq
// File: /workspace/github_c_makefile_star2_O1/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
cmpb $0x1, (%rdi)
jne 0xd9cd7
movq %rbx, %r14
movq 0x8(%r14), %rdi
callq 0xd9cb1
testb %al, %al
jne 0xd9ce9
movq 0x10(%r14), %r14
cmpb $0x1, (%r14)
je 0xd9cc0
cmpb $0xa, (%rbx)
jne 0xd9ce5
testb $0xc, 0x6(%rbx)
setne %al
jmp 0xd9ceb
xorl %eax, %eax
jmp 0xd9ceb
movb $0x1, %al
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O1/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 0xd9d9f
movq %rdi, %r15
movq 0x8(%rbx), %rsi
callq 0xd5964
movq 0x74be9(%rip), %rcx     # 0x14e960
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 0xd9dc6
testb $0x10, 0x1(%r14)
jne 0xd9df4
movw $0x16f, 0x4(%rbx)       # imm = 0x16F
movzbl (%r14), %eax
leaq 0x80e30(%rip), %rcx     # 0x15abe0
cmpb $0x1, (%rax,%rcx)
jne 0xd9dba
movq %r14, 0x18(%rbx)
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
movq 0x8(%r14), %rdx
movq %r15, %rdi
movq %r14, %rsi
callq 0xa0ae3
cmpl $0x2, 0x28(%r14)
movzwl (%r14), %eax
jne 0xd9e02
shrl $0xa, %eax
andl $0x4, %eax
addl %r12d, %eax
addl $0x11a, %eax            # imm = 0x11A
movw %ax, 0x4(%rbx)
jmp 0xd9e1a
orl $0x126, %r12d           # imm = 0x126
movw %r12w, 0x4(%rbx)
jmp 0xd9e1a
btl $0xc, %eax
movl $0x11a, %eax            # imm = 0x11A
movl $0x126, %ecx            # imm = 0x126
cmovael %eax, %ecx
orl %r12d, %ecx
movw %cx, 0x4(%rbx)
movzbl (%r14), %eax
leaq 0x80dbb(%rip), %rcx     # 0x15abe0
cmpb $0x0, (%rax,%rcx)
jne 0xd9db6
jmp 0xd9dba
// File: /workspace/github_c_makefile_star2_O1/BernardTatin[P]s7sh/s7.c
// Function: old_frame_with_three_slots
static s7_pointer old_frame_with_three_slots(s7_scheme *sc, s7_pointer env, s7_pointer val1, s7_pointer val2, s7_pointer val3)
    {
        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);
        x = next_slot(x);

        slot_set_value(x, val3);
        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)
movq 0x18(%rdx), %rcx
movq %r8, 0x10(%rcx)
movq 0x8(%rcx), %rdx
movq %rcx, 0x18(%rdx)
movq %rsi, 0x20(%rdx)
incl 0x28(%rdx)
retq
// File: /workspace/github_c_makefile_star2_O1/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 %r15
pushq %r14
pushq %rbx
movq %rdi, %rbx
cmpq $0x0, 0x2e8(%rdi)
jne 0xda014
movq 0x90(%rbx), %rax
cmpq 0x98(%rbx), %rax
ja 0xd9eb9
movq %rbx, %rdi
callq 0xb389
movq 0x90(%rbx), %rax
leaq -0x8(%rax), %rcx
movq %rcx, 0x90(%rbx)
movq -0x8(%rax), %r14
movq $0x200015, (%r14)       # imm = 0x200015
movq $0x400, 0x8(%r14)       # imm = 0x400
movq 0x8a0(%rbx), %r15
testq %r15, %r15
je 0xd9efa
movq 0x18(%r15), %rax
movq %rax, 0x8a0(%rbx)
jmp 0xd9f96
cmpq $0x0, 0x838(%rbx)
jne 0xd9f40
movl $0x2800, %edi           # imm = 0x2800
callq 0x9480
movq %rax, 0x838(%rbx)
addq $0x28, %rax
movl $0xff, %ecx
movq %rax, -0x10(%rax)
movl $0x0, -0x20(%rax)
addq $0x28, %rax
decl %ecx
jne 0xd9f1e
movq $0x0, -0x10(%rax)
movl $0x0, -0x20(%rax)
movq 0x838(%rbx), %r15
movq 0x18(%r15), %rax
movq %rax, 0x838(%rbx)
movl $0x0, 0x8(%r15)
movq 0x8c8(%rbx), %rax
leaq 0x2000(%rax), %rcx
cmpq $0x10001, %rcx          # imm = 0x10001
jb 0xd9f7d
movl $0x2000, %edi           # imm = 0x2000
callq 0x9480
jmp 0xd9f8b
addq 0x8d0(%rbx), %rax
movq %rcx, 0x8c8(%rbx)
movq %rax, (%r15)
movl $0xd, 0x8(%r15)
movq $0x2000, 0x10(%r15)     # imm = 0x2000
movq %r15, 0x18(%r14)
movq (%r15), %rax
movq %rax, 0x10(%r14)
movq $0x0, 0x20(%r15)
leaq -0x78c93(%rip), %rax    # 0x61325
movq %rax, 0x20(%r14)
leaq -0x78c95(%rip), %rax    # 0x6132e
movq %rax, 0x28(%r14)
movq 0x740(%rbx), %r15
movq 0x8(%r15), %rsi
cmpq %rsi, 0x10(%r15)
jne 0xd9fef
leaq (%rsi,%rsi), %rax
movq %rax, 0x8(%r15)
movq (%r15), %rdi
shlq $0x4, %rsi
callq 0x9510
movq %rax, (%r15)
movq (%r15), %rax
movq 0x10(%r15), %rcx
leaq 0x1(%rcx), %rdx
movq %rdx, 0x10(%r15)
movq %r14, (%rax,%rcx,8)
movq %r14, 0x2e8(%rbx)
movq $0x400, 0x2d8(%rbx) # imm = 0x400
movq $0x0, 0x2d0(%rbx)
movq 0x2e8(%rbx), %rax
popq %rbx
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O1/BernardTatin[P]s7sh/s7.c
// Function: opinit_if_a_a_opa_laq
static void opinit_if_a_a_opa_laq(s7_scheme *sc, bool a_op, s7_pointer code)
                {
                    s7_pointer caller;

                    rec_set_test(sc, cdr(code));
                    rec_set_res(sc, (a_op) ?  cddr(code) : cdddr(code));
                    caller = opt3_pair(code);
                    rec_set_f1(sc, cdr(caller));
                    rec_set_f2(sc, cdr(opt3_pair(caller)));
                    sc->rec_slot1 = let_slots(sc->envir);
                    sc->rec_call = c_callee(caller);
                }

// Assembly:
leaq 0x10(%rdx), %rax
movq 0x10(%rdx), %rcx
movq %rcx, 0x2f0(%rdi)
movq 0x20(%rcx), %r8
movq %r8, 0x360(%rdi)
movq 0x8(%rcx), %rcx
movq %rcx, 0x2f0(%rdi)
testl %esi, %esi
jne 0xda05c
movq (%rax), %rax
addq $0x10, %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq %rax, 0x340(%rdi)
movq 0x20(%rax), %rcx
movq %rcx, 0x3b0(%rdi)
movq 0x8(%rax), %rax
movq %rax, 0x340(%rdi)
movq 0x28(%rdx), %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 0x8(%rdi), %rcx
movq 0x8(%rcx), %rcx
movq %rcx, 0x348(%rdi)
movq 0x20(%rax), %rax
movq %rax, 0x3b8(%rdi)
retq
// File: /workspace/github_c_makefile_star2_O1/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 %r15
pushq %r14
pushq %rbx
movq %rdi, %rbx
movq 0x2f0(%rdi), %rsi
callq *0x360(%rdi)
cmpq 0x120(%rbx), %rax
je 0xda116
leaq 0x3b0(%rbx), %rcx
leaq 0x340(%rbx), %rax
jmp 0xda1ff
movq 0x2f8(%rbx), %rsi
movq %rbx, %rdi
callq *0x368(%rbx)
movq %rax, %r14
movq 0x2d8(%rbx), %rdx
cmpq %rdx, 0x2d0(%rbx)
jne 0xda176
movq 0x2e8(%rbx), %r15
leaq (%rdx,%rdx), %rax
movq %rax, 0x8(%r15)
movq 0x18(%r15), %rsi
shlq $0x4, %rdx
movq %rbx, %rdi
callq 0xae0f
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), %rax
movq 0x2e8(%rbx), %rcx
movq 0x10(%rcx), %rcx
movq %r14, (%rcx,%rax,8)
incq %rax
movq %rax, 0x2d0(%rbx)
movq 0x300(%rbx), %rsi
movq %rbx, %rdi
callq *0x370(%rbx)
movq 0x348(%rbx), %rcx
movq %rax, 0x10(%rcx)
movq %rbx, %rdi
callq 0xda0e5
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
popq %r14
popq %r15
jmpq *%rcx
// File: /workspace/github_c_makefile_star2_O1/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 %r15
pushq %r14
pushq %rbx
movq %rdi, %rbx
movq 0x2f0(%rdi), %rsi
callq *0x360(%rdi)
cmpq 0x120(%rbx), %rax
je 0xda31c
movq 0x2f8(%rbx), %rsi
movq %rbx, %rdi
callq *0x368(%rbx)
movq %rax, %r14
movq 0x2d8(%rbx), %rdx
cmpq %rdx, 0x2d0(%rbx)
jne 0xda291
movq 0x2e8(%rbx), %r15
leaq (%rdx,%rdx), %rax
movq %rax, 0x8(%r15)
movq 0x18(%r15), %rsi
shlq $0x4, %rdx
movq %rbx, %rdi
callq 0xae0f
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), %rax
movq 0x2e8(%rbx), %rcx
movq 0x10(%rcx), %rcx
movq %r14, (%rcx,%rax,8)
incq %rax
movq %rax, 0x2d0(%rbx)
movq 0x300(%rbx), %rsi
movq %rbx, %rdi
callq *0x370(%rbx)
movq 0x348(%rbx), %rcx
movq %rax, 0x10(%rcx)
movq %rbx, %rdi
callq 0xda20f
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 0xda32a
leaq 0x3b0(%rbx), %rcx
leaq 0x340(%rbx), %rax
movq (%rcx), %rcx
movq (%rax), %rsi
movq %rbx, %rdi
popq %rbx
popq %r14
popq %r15
jmpq *%rcx
// File: /workspace/github_c_makefile_star2_O1/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
leaq 0x10(%rax), %rcx
movq 0x10(%rax), %rdx
movq %rdx, 0x2f0(%rdi)
movq 0x20(%rdx), %r8
movq %r8, 0x360(%rdi)
movq 0x8(%rdx), %rdx
movq %rdx, 0x2f0(%rdi)
testl %esi, %esi
cmovneq %rdi, %rcx
movq (%rcx), %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_O1/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 %r15
pushq %r14
pushq %rbx
movq %rdi, %rbx
movq 0x2f0(%rdi), %rsi
callq *0x360(%rdi)
cmpq 0x120(%rbx), %rax
je 0xda45a
leaq 0x3b0(%rbx), %rcx
leaq 0x340(%rbx), %rax
jmp 0xda5f0
movq 0x2f8(%rbx), %rsi
movq %rbx, %rdi
callq *0x368(%rbx)
movq %rax, %r14
movq 0x2d8(%rbx), %rdx
cmpq %rdx, 0x2d0(%rbx)
jne 0xda4ba
movq 0x2e8(%rbx), %r15
leaq (%rdx,%rdx), %rax
movq %rax, 0x8(%r15)
movq 0x18(%r15), %rsi
shlq $0x4, %rdx
movq %rbx, %rdi
callq 0xae0f
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), %rax
movq 0x2e8(%rbx), %rcx
movq 0x10(%rcx), %rcx
movq %r14, (%rcx,%rax,8)
incq %rax
movq %rax, 0x2d0(%rbx)
movq 0x300(%rbx), %rsi
movq %rbx, %rdi
callq *0x370(%rbx)
movq %rax, %r14
movq 0x2d8(%rbx), %rdx
cmpq %rdx, 0x2d0(%rbx)
jne 0xda53a
movq 0x2e8(%rbx), %r15
leaq (%rdx,%rdx), %rax
movq %rax, 0x8(%r15)
movq 0x18(%r15), %rsi
shlq $0x4, %rdx
movq %rbx, %rdi
callq 0xae0f
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), %rax
movq 0x2e8(%rbx), %rcx
movq 0x10(%rcx), %rcx
movq %r14, (%rcx,%rax,8)
incq %rax
movq %rax, 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 0xda429
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
popq %r14
popq %r15
jmpq *%rcx
// File: /workspace/github_c_makefile_star2_O1/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 %r15
pushq %r14
pushq %rbx
movq %rdi, %rbx
movq 0x2f0(%rdi), %rsi
callq *0x360(%rdi)
cmpq 0x120(%rbx), %rax
je 0xda7ba
movq 0x2f8(%rbx), %rsi
movq %rbx, %rdi
callq *0x368(%rbx)
movq %rax, %r14
movq 0x2d8(%rbx), %rdx
cmpq %rdx, 0x2d0(%rbx)
jne 0xda682
movq 0x2e8(%rbx), %r15
leaq (%rdx,%rdx), %rax
movq %rax, 0x8(%r15)
movq 0x18(%r15), %rsi
shlq $0x4, %rdx
movq %rbx, %rdi
callq 0xae0f
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), %rax
movq 0x2e8(%rbx), %rcx
movq 0x10(%rcx), %rcx
movq %r14, (%rcx,%rax,8)
incq %rax
movq %rax, 0x2d0(%rbx)
movq 0x300(%rbx), %rsi
movq %rbx, %rdi
callq *0x370(%rbx)
movq %rax, %r14
movq 0x2d8(%rbx), %rdx
cmpq %rdx, 0x2d0(%rbx)
jne 0xda702
movq 0x2e8(%rbx), %r15
leaq (%rdx,%rdx), %rax
movq %rax, 0x8(%r15)
movq 0x18(%r15), %rsi
shlq $0x4, %rdx
movq %rbx, %rdi
callq 0xae0f
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), %rax
movq 0x2e8(%rbx), %rcx
movq 0x10(%rcx), %rcx
movq %r14, (%rcx,%rax,8)
incq %rax
movq %rax, 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 0xda600
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 0xda7c8
leaq 0x3b0(%rbx), %rcx
leaq 0x340(%rbx), %rax
movq (%rcx), %rcx
movq (%rax), %rsi
movq %rbx, %rdi
popq %rbx
popq %r14
popq %r15
jmpq *%rcx
// File: /workspace/github_c_makefile_star2_O1/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 0xda812
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 0xda85e
movq 0x408(%r13), %rdi
callq *0x3c0(%r13)
jmp 0xda8b6
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 0xda7d8
movq %rax, %r15
movq 0x450(%r13), %rax
movq %r14, 0x8(%rax)
movq 0x440(%r13), %r14
movq %r13, %rdi
callq 0xda7d8
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 0xda7d8
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_O1/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 0xda9a2
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 0xda9bd
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 0xda8e9
movq %rax, %r15
movq 0x450(%r13), %rax
movq %r14, 0x8(%rax)
movq 0x440(%r13), %r14
movq %r13, %rdi
callq 0xda8e9
movq %rax, %rdi
movq %r15, %rsi
callq *%r14
jmp 0xda9cb
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 0xda8e9
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_O1/BernardTatin[P]s7sh/s7.c
// Function: oprec_i_if_a_a_opla_laq
static s7_int oprec_i_if_a_a_opla_laq(s7_scheme *sc)
                {
                    s7_int i1, i2;
                    sc->pc = 0;
                    if (sc->rec_test_o->v[0].fb(sc->rec_test_o))                             /* if_(A) */
                    {
                        sc->pc++;
                        return(sc->rec_result_o->v[0].fi(sc->rec_result_o));                 /* if_a_(A) */
                    }
                    sc->pc = sc->rec_pc1;
                    i1 = sc->rec_a1_o->v[0].fi(sc->rec_a1_o);                                /* save a1 */
                    sc->pc++;
                    integer(sc->rec_val1) = sc->rec_a2_o->v[0].fi(sc->rec_a2_o);             /* slot1 = a2 */
                    i2 = oprec_i_if_a_a_opla_laq(sc);                                        /* save la2 */
                    integer(sc->rec_val1) = i1;                                              /* slot1 = a1 */
                    return(sc->rec_i_ii_f(oprec_i_if_a_a_opla_laq(sc), i2));                   /* call op(la1, la2) */
                }

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rdi, %rbx
movl $0x0, 0x2258(%rdi)
movq 0x400(%rdi), %rdi
callq *(%rdi)
testb %al, %al
je 0xdaa31
incl 0x2258(%rbx)
movq 0x408(%rbx), %rdi
popq %rbx
popq %r14
popq %r15
jmpq *(%rdi)
movl 0x460(%rbx), %eax
movl %eax, 0x2258(%rbx)
movq 0x410(%rbx), %rdi
callq *(%rdi)
movq %rax, %r14
incl 0x2258(%rbx)
movq 0x418(%rbx), %rdi
callq *(%rdi)
movq 0x450(%rbx), %rcx
movq %rax, 0x8(%rcx)
movq %rbx, %rdi
callq 0xda9fe
movq %rax, %r15
movq 0x450(%rbx), %rax
movq %r14, 0x8(%rax)
movq 0x440(%rbx), %r14
movq %rbx, %rdi
callq 0xda9fe
movq %rax, %rdi
movq %r15, %rsi
movq %r14, %rax
popq %rbx
popq %r14
popq %r15
jmpq *%rax
// File: /workspace/github_c_makefile_star2_O1/BernardTatin[P]s7sh/s7.c
// Function: oprec_i_if_a_opla_laq_a
static s7_int oprec_i_if_a_opla_laq_a(s7_scheme *sc)
                {
                    s7_int i1, i2;
                    sc->pc = 0;
                    if (!(sc->rec_test_o->v[0].fb(sc->rec_test_o)))
                    {
                        sc->pc++;
                        return(sc->rec_result_o->v[0].fi(sc->rec_result_o));
                    }
                    sc->pc = sc->rec_pc1;
                    i1 = sc->rec_a1_o->v[0].fi(sc->rec_a1_o);
                    sc->pc++;
                    integer(sc->rec_val1) = sc->rec_a2_o->v[0].fi(sc->rec_a2_o);
                    i2 = oprec_i_if_a_opla_laq_a(sc);
                    integer(sc->rec_val1) = i1;
                    return(sc->rec_i_ii_f(oprec_i_if_a_opla_laq_a(sc), i2));
                }

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rdi, %rbx
movl $0x0, 0x2258(%rdi)
movq 0x400(%rdi), %rdi
callq *(%rdi)
testb %al, %al
je 0xdab1e
movl 0x460(%rbx), %eax
movl %eax, 0x2258(%rbx)
movq 0x410(%rbx), %rdi
callq *(%rdi)
movq %rax, %r14
incl 0x2258(%rbx)
movq 0x418(%rbx), %rdi
callq *(%rdi)
movq 0x450(%rbx), %rcx
movq %rax, 0x8(%rcx)
movq %rbx, %rdi
callq 0xdaa98
movq %rax, %r15
movq 0x450(%rbx), %rax
movq %r14, 0x8(%rax)
movq 0x440(%rbx), %r14
movq %rbx, %rdi
callq 0xdaa98
movq %rax, %rdi
movq %r15, %rsi
movq %r14, %rax
popq %rbx
popq %r14
popq %r15
jmpq *%rax
incl 0x2258(%rbx)
movq 0x408(%rbx), %rdi
popq %rbx
popq %r14
popq %r15
jmpq *(%rdi)
// File: /workspace/github_c_makefile_star2_O1/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 %r15
pushq %r14
pushq %rbx
movq %rdi, %rbx
movq 0x2f0(%rdi), %rsi
callq *0x360(%rdi)
cmpq 0x120(%rbx), %rax
je 0xdab63
leaq 0x3b0(%rbx), %rax
leaq 0x340(%rbx), %rcx
jmp 0xdac7b
movq 0x2f8(%rbx), %rsi
movq %rbx, %rdi
callq *0x368(%rbx)
movq %rax, %r14
movq 0x2d8(%rbx), %rdx
cmpq %rdx, 0x2d0(%rbx)
jne 0xdabc3
movq 0x2e8(%rbx), %r15
leaq (%rdx,%rdx), %rax
movq %rax, 0x8(%r15)
movq 0x18(%r15), %rsi
shlq $0x4, %rdx
movq %rbx, %rdi
callq 0xae0f
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), %rax
movq 0x2e8(%rbx), %rcx
movq 0x10(%rcx), %rcx
movq %r14, (%rcx,%rax,8)
incq %rax
movq %rax, 0x2d0(%rbx)
movq 0x300(%rbx), %rsi
movq %rbx, %rdi
callq *0x370(%rbx)
movq 0x348(%rbx), %rcx
movq %rax, 0x10(%rcx)
movq %rbx, %rdi
callq 0xdab32
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 0xdab32
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
popq %r14
popq %r15
jmpq *%rax