LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O1/BernardTatin[P]s7sh/s7.c
// Function: typed_vector_set_p_piip_direct
static s7_pointer typed_vector_set_p_piip_direct(s7_scheme *sc, s7_pointer v, s7_int i1, s7_int i2, s7_pointer p)
                {
                    if ((i1 < 0) || (i2 < 0) ||
                            (i1 >= vector_dimension(v, 0)) ||
                            (i2 >= vector_dimension(v, 1)))
                        return(g_vector_set(sc, set_elist_4(sc, v, make_integer(sc, i1), make_integer(sc, i2), p)));
                    return(typed_vector_setter(sc, v, i2 + (i1 * vector_offset(v, 0)), p));
                }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rcx, %r12
movq %rdx, %r13
movq %rsi, %r15
movq %rdi, %r14
movq %rcx, %rax
orq %rdx, %rax
js 0xaf826
movq 0x18(%r15), %rax
movq 0x20(%rax), %rax
movq (%rax), %rcx
cmpq %r13, (%rcx)
jle 0xaf826
cmpq %r12, 0x8(%rcx)
jle 0xaf826
movq 0x18(%rax), %rax
imulq (%rax), %r13
cmpq $0x0, 0x6a0(%r14)
js 0xaf933
movq 0x28(%r15), %rsi
cmpb $0x30, (%rsi)
jb 0xaf90a
movq 0x10(%rsi), %rax
movq 0x700(%r14), %rcx
movq %r8, %rbx
movq %r8, 0x8(%rcx)
movq 0x700(%r14), %rsi
movq %r14, %rdi
callq *%rax
jmp 0xaf927
leaq 0x9f123(%rip), %rbx     # 0x14e950
cmpq $0x7ff, %r13            # imm = 0x7FF
ja 0xaf83c
movq (%rbx,%r13,8), %rbp
jmp 0xaf87c
movq 0x90(%r14), %rax
cmpq 0x98(%r14), %rax
ja 0xaf85a
movq %r14, %rdi
movq %r8, %rbp
callq 0xb389
movq %rbp, %r8
movq 0x90(%r14), %rax
leaq -0x8(%rax), %rcx
movq %rcx, 0x90(%r14)
movq -0x8(%rax), %rbp
movq $0xb, (%rbp)
movq %r13, 0x8(%rbp)
cmpq $0x7ff, %r12            # imm = 0x7FF
ja 0xaf88b
movq (%rbx,%r12,8), %rax
jmp 0xaf8ca
movq 0x90(%r14), %rax
cmpq 0x98(%r14), %rax
ja 0xaf8a9
movq %r14, %rdi
movq %r8, %rbx
callq 0xb389
movq %rbx, %r8
movq 0x90(%r14), %rax
leaq -0x8(%rax), %rcx
movq %rcx, 0x90(%r14)
movq -0x8(%rax), %rax
movq $0xb, (%rax)
movq %r12, 0x8(%rax)
movq 0x6f0(%r14), %rcx
movq %r15, 0x8(%rcx)
movq 0x10(%rcx), %rcx
movq %rbp, 0x8(%rcx)
movq 0x10(%rcx), %rcx
movq %rax, 0x8(%rcx)
movq 0x10(%rcx), %rax
movq %r8, 0x8(%rax)
movq 0x6f0(%r14), %rsi
movq %r14, %rdi
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x7fcf5
movq 0x700(%r14), %rax
movq %r8, %rbx
movq %r8, 0x8(%rax)
movq 0x700(%r14), %rdx
movq %r14, %rdi
callq 0xbd41
cmpq 0x120(%r14), %rax
movq %rbx, %r8
je 0xaf952
shlq $0x3, %r13
addq 0x10(%r15), %r13
movq %r8, (%r13,%r12,8)
movq %r8, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %r8, %rbx
movq 0x28(%r15), %rsi
cmpb $0x30, (%rsi)
jb 0xaf964
movq 0x8(%rsi), %rax
jmp 0xaf978
movq 0x18(%rsi), %rdx
movq %r14, %rdi
callq 0xa05a7
movq 0x8(%rax), %rax
addq $0x10, %rax
movq (%rax), %rsi
movq %r14, %rdi
movl $0x1, %edx
callq 0xa0491
leaq 0x6c0b9(%rip), %rsi     # 0x11ba48
movl $0x3, %edx
movq %r14, %rdi
movq %rbx, %rcx
movq %rax, %r8
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0xe25f
// File: /workspace/github_c_makefile_star2_O1/BernardTatin[P]s7sh/s7.c
// Function: vector_set_p_piip_direct
static s7_pointer vector_set_p_piip_direct(s7_scheme *sc, s7_pointer v, s7_int i1, s7_int i2, s7_pointer p)
                {
                    /* normal untyped vector, rank == 2 */
                    if ((i1 < 0) || (i2 < 0) ||
                            (i1 >= vector_dimension(v, 0)) ||
                            (i2 >= vector_dimension(v, 1)))
                        return(g_vector_set(sc, set_elist_4(sc, v, make_integer(sc, i1), make_integer(sc, i2), p)));
                    vector_element(v, i2 + (i1 * vector_offset(v, 0))) = p;
                    return(p);
                }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %r8, %rbx
movq %rcx, %r12
movq %rdx, %r13
movq %rsi, %r14
movq %rdi, %r15
movq %rcx, %rax
orq %rdx, %rax
js 0xafa0f
movq 0x18(%r14), %rax
movq 0x20(%rax), %rax
movq (%rax), %rcx
cmpq %r13, (%rcx)
jle 0xafa0f
cmpq %r12, 0x8(%rcx)
jle 0xafa0f
movq 0x18(%rax), %rax
imulq (%rax), %r13
shlq $0x3, %r13
addq 0x10(%r14), %r13
movq %rbx, (%r13,%r12,8)
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x9ef3a(%rip), %rdx     # 0x14e950
cmpq $0x7ff, %r13            # imm = 0x7FF
ja 0xafa25
movq (%rdx,%r13,8), %rbp
jmp 0xafa65
movq 0x90(%r15), %rax
cmpq 0x98(%r15), %rax
ja 0xafa43
movq %r15, %rdi
movq %rdx, %rbp
callq 0xb389
movq %rbp, %rdx
movq 0x90(%r15), %rax
leaq -0x8(%rax), %rcx
movq %rcx, 0x90(%r15)
movq -0x8(%rax), %rbp
movq $0xb, (%rbp)
movq %r13, 0x8(%rbp)
cmpq $0x7ff, %r12            # imm = 0x7FF
ja 0xafa74
movq (%rdx,%r12,8), %rax
jmp 0xafaad
movq 0x90(%r15), %rax
cmpq 0x98(%r15), %rax
ja 0xafa8c
movq %r15, %rdi
callq 0xb389
movq 0x90(%r15), %rax
leaq -0x8(%rax), %rcx
movq %rcx, 0x90(%r15)
movq -0x8(%rax), %rax
movq $0xb, (%rax)
movq %r12, 0x8(%rax)
movq 0x6f0(%r15), %rcx
movq %r14, 0x8(%rcx)
movq 0x10(%rcx), %rcx
movq %rbp, 0x8(%rcx)
movq 0x10(%rcx), %rcx
movq %rax, 0x8(%rcx)
movq 0x10(%rcx), %rax
movq %rbx, 0x8(%rax)
movq 0x6f0(%r15), %rsi
movq %r15, %rdi
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x7fcf5
// File: /workspace/github_c_makefile_star2_O1/BernardTatin[P]s7sh/s7.c
// Function: opt_set_p_i_fo_add
static s7_pointer opt_set_p_i_fo_add(opt_info *o)
                {
                    s7_pointer x;
                    s7_int i;
                    oo_rc(o->sc, o, 4, 3);
                    i = integer(slot_value(o->v[2].p)) + integer(slot_value(o->v[3].p));
                    x = make_integer(o->sc, i);
                    slot_set_value(o->v[1].p, x);
                    return(x);
                }

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
movq 0x10(%rdi), %rax
movq 0x18(%rdi), %rcx
movq 0x10(%rax), %rax
movq 0x10(%rcx), %rcx
movq 0x8(%rcx), %r14
addq 0x8(%rax), %r14
cmpq $0x7ff, %r14            # imm = 0x7FF
ja 0xb015b
leaq 0x9e7fb(%rip), %rax     # 0x14e950
movq (%rax,%r14,8), %rax
jmp 0xb0199
movq 0x68(%rbx), %rdi
movq 0x90(%rdi), %rax
cmpq 0x98(%rdi), %rax
ja 0xb0174
callq 0xb389
movq 0x68(%rbx), %rax
movq 0x90(%rax), %rcx
leaq -0x8(%rcx), %rdx
movq %rdx, 0x90(%rax)
movq -0x8(%rcx), %rax
movq $0xb, (%rax)
movq %r14, 0x8(%rax)
movq 0x8(%rbx), %rcx
movq %rax, 0x10(%rcx)
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O1/BernardTatin[P]s7sh/s7.c
// Function: opt_set_p_i_fo
static s7_pointer opt_set_p_i_fo(opt_info *o)
                {
                    s7_pointer x;
                    s7_int i;
                    oo_rc(o->sc, o, 4, 3);
                    i = o->v[4].i_ii_f(integer(slot_value(o->v[2].p)), integer(slot_value(o->v[3].p)));
                    x = make_integer(o->sc, i);
                    slot_set_value(o->v[1].p, x);
                    return(x);
                }

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
movq 0x10(%rdi), %rax
movq 0x18(%rdi), %rcx
movq 0x10(%rax), %rax
movq 0x8(%rax), %rdi
movq 0x10(%rcx), %rax
movq 0x8(%rax), %rsi
callq *0x20(%rbx)
movq %rax, %r14
cmpq $0x7ff, %rax            # imm = 0x7FF
ja 0xb01e3
leaq 0x9e773(%rip), %rax     # 0x14e950
movq (%rax,%r14,8), %rax
jmp 0xb0221
movq 0x68(%rbx), %rdi
movq 0x90(%rdi), %rax
cmpq 0x98(%rdi), %rax
ja 0xb01fc
callq 0xb389
movq 0x68(%rbx), %rax
movq 0x90(%rax), %rcx
leaq -0x8(%rcx), %rdx
movq %rdx, 0x90(%rax)
movq -0x8(%rcx), %rax
movq $0xb, (%rax)
movq %r14, 0x8(%rax)
movq 0x8(%rbx), %rcx
movq %rax, 0x10(%rcx)
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O1/BernardTatin[P]s7sh/s7.c
// Function: opt_set_p_i_fo1_add
static s7_pointer opt_set_p_i_fo1_add(opt_info *o)
                {
                    s7_pointer x;
                    s7_int i;
                    oo_rc(o->sc, o, 4, 2);
                    i = integer(slot_value(o->v[2].p)) + o->v[3].i;
                    x = make_integer(o->sc, i);
                    slot_set_value(o->v[1].p, x);
                    return(x);
                }

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
movq 0x10(%rdi), %rax
movq 0x18(%rdi), %r14
movq 0x10(%rax), %rax
addq 0x8(%rax), %r14
cmpq $0x7ff, %r14            # imm = 0x7FF
ja 0xb0285
leaq 0x9e6d1(%rip), %rax     # 0x14e950
movq (%rax,%r14,8), %rax
jmp 0xb02c3
movq 0x68(%rbx), %rdi
movq 0x90(%rdi), %rax
cmpq 0x98(%rdi), %rax
ja 0xb029e
callq 0xb389
movq 0x68(%rbx), %rax
movq 0x90(%rax), %rcx
leaq -0x8(%rcx), %rdx
movq %rdx, 0x90(%rax)
movq -0x8(%rcx), %rax
movq $0xb, (%rax)
movq %r14, 0x8(%rax)
movq 0x8(%rbx), %rcx
movq %rax, 0x10(%rcx)
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O1/BernardTatin[P]s7sh/s7.c
// Function: opt_set_p_i_fo1
static s7_pointer opt_set_p_i_fo1(opt_info *o)
                {
                    s7_pointer x;
                    s7_int i;
                    oo_rc(o->sc, o, 4, 2);
                    i = o->v[4].i_ii_f(integer(slot_value(o->v[2].p)), o->v[3].i);
                    x = make_integer(o->sc, i);
                    slot_set_value(o->v[1].p, x);
                    return(x);
                }

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
movq 0x10(%rdi), %rax
movq 0x18(%rdi), %rsi
movq 0x10(%rax), %rax
movq 0x8(%rax), %rdi
callq *0x20(%rbx)
movq %rax, %r14
cmpq $0x7ff, %rax            # imm = 0x7FF
ja 0xb0305
leaq 0x9e651(%rip), %rax     # 0x14e950
movq (%rax,%r14,8), %rax
jmp 0xb0343
movq 0x68(%rbx), %rdi
movq 0x90(%rdi), %rax
cmpq 0x98(%rdi), %rax
ja 0xb031e
callq 0xb389
movq 0x68(%rbx), %rax
movq 0x90(%rax), %rcx
leaq -0x8(%rcx), %rdx
movq %rdx, 0x90(%rax)
movq -0x8(%rcx), %rax
movq $0xb, (%rax)
movq %r14, 0x8(%rax)
movq 0x8(%rbx), %rcx
movq %rax, 0x10(%rcx)
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O1/BernardTatin[P]s7sh/s7.c
// Function: tree_count
static s7_int tree_count(s7_scheme *sc, s7_pointer x, s7_pointer p, s7_int count)
                {
                if (p == x)
                return(count + 1);
                if ((!is_pair(p)) || (car(p) == sc->quote_symbol))
                return(count);
                return(tree_count(sc, x, cdr(p), tree_count(sc, x, car(p), count)));
                }

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rcx, %rax
movq %rdx, %rbx
movq %rsi, %r14
movq %rdi, %r15
cmpq %r14, %rbx
je 0xb038f
cmpb $0x1, (%rbx)
jne 0xb0392
movq 0x8(%rbx), %rdx
cmpq 0x17b0(%r15), %rdx
je 0xb0392
movq 0x10(%rbx), %rbx
movq %r15, %rdi
movq %r14, %rsi
movq %rax, %rcx
callq 0xb0353
jmp 0xb0364
incq %rax
popq %rbx
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O1/BernardTatin[P]s7sh/s7.c
// Function: opt_d_mm_fff
static s7_double opt_d_mm_fff(opt_info *o)
                {
                    opt_info *o1, *o2;
                    s7_double x1, x2;
                    s7_scheme *sc;
                    sc = o->sc;
                    o1 = sc->opts[++sc->pc];
                    x1 = float_vector_ref_d_7pi(sc, slot_value(o1->v[2].p), integer(slot_value(o1->v[3].p))) * real(slot_value(o1->v[1].p));
                    o2 = sc->opts[++sc->pc];
                    x2 = float_vector_ref_d_7pi(sc, slot_value(o2->v[2].p), integer(slot_value(o2->v[3].p))) * real(slot_value(o2->v[1].p));
                    oo_rc(sc, o, 4, 0);
                    return(o->v[3].d_dd_f(x1, x2));
                }

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x10, %rsp
movq %rdi, %rbx
movq 0x68(%rdi), %r14
movslq 0x2258(%r14), %rax
leaq 0x1(%rax), %rcx
movl %ecx, 0x2258(%r14)
movq 0x2268(%r14,%rax,8), %r15
movq 0x10(%r15), %rax
movq 0x18(%r15), %rcx
movq 0x10(%rax), %rsi
movq 0x10(%rcx), %rax
movq 0x8(%rax), %rdx
movq %r14, %rdi
callq 0x87054
movq 0x8(%r15), %rax
movq 0x10(%rax), %rax
mulsd 0x8(%rax), %xmm0
movsd %xmm0, 0x8(%rsp)
movslq 0x2258(%r14), %rax
leaq 0x1(%rax), %rcx
movl %ecx, 0x2258(%r14)
movq 0x2268(%r14,%rax,8), %r15
movq 0x10(%r15), %rax
movq 0x18(%r15), %rcx
movq 0x10(%rax), %rsi
movq 0x10(%rcx), %rax
movq 0x8(%rax), %rdx
movq %r14, %rdi
callq 0x87054
movapd %xmm0, %xmm1
movq 0x8(%r15), %rax
movq 0x10(%rax), %rax
mulsd 0x8(%rax), %xmm1
movq 0x18(%rbx), %rax
movsd 0x8(%rsp), %xmm0
addq $0x10, %rsp
popq %rbx
popq %r14
popq %r15
jmpq *%rax
// File: /workspace/github_c_makefile_star2_O1/BernardTatin[P]s7sh/s7.c
// Function: opt_set_p_d_f_mm_add
static s7_pointer opt_set_p_d_f_mm_add(opt_info *o)
                {
                    opt_info *o1, *o2;
                    s7_double x1, x2;
                    oo_rc(o->sc, o, 3, 1); /* local sc is slower in these two functions */

                    o1 = o->sc->opts[o->sc->pc += 2];
                    x1 = float_vector_ref_d_7pi(o->sc, slot_value(o1->v[2].p), integer(slot_value(o1->v[3].p))) * real(slot_value(o1->v[1].p));
                    o2 = o->sc->opts[++o->sc->pc];
                    x2 = float_vector_ref_d_7pi(o->sc, slot_value(o2->v[2].p), integer(slot_value(o2->v[3].p))) * real(slot_value(o2->v[1].p));

                    slot_set_value(o->v[1].p, make_real(o->sc, x1 + x2));
                    return(slot_value(o->v[1].p));
                }

// Assembly:
pushq %r14
pushq %rbx
subq $0x28, %rsp
movq %rdi, %rbx
movq 0x68(%rdi), %rdi
movslq 0x2258(%rdi), %rax
leaq 0x2(%rax), %rcx
movl %ecx, 0x2258(%rdi)
movq 0x2270(%rdi,%rax,8), %r14
movq 0x10(%r14), %rax
movq 0x18(%r14), %rcx
movq 0x10(%rax), %rsi
movq 0x10(%rcx), %rax
movq 0x8(%rax), %rdx
callq 0x87054
movsd %xmm0, 0x20(%rsp)
movq 0x8(%r14), %rax
movq 0x10(%rax), %rax
movsd 0x8(%rax), %xmm0
movsd %xmm0, 0x18(%rsp)
movq 0x68(%rbx), %rdi
movslq 0x2258(%rdi), %rax
leaq 0x1(%rax), %rcx
movl %ecx, 0x2258(%rdi)
movq 0x2268(%rdi,%rax,8), %r14
movq 0x10(%r14), %rax
movq 0x18(%r14), %rcx
movq 0x10(%rax), %rsi
movq 0x10(%rcx), %rax
movq 0x8(%rax), %rdx
callq 0x87054
movq 0x8(%r14), %rax
movq 0x10(%rax), %rax
movsd 0x8(%rax), %xmm2
movq 0x68(%rbx), %rdi
movq 0x90(%rdi), %rax
cmpq 0x98(%rdi), %rax
ja 0xb051a
movsd %xmm0, 0x10(%rsp)
movsd %xmm2, 0x8(%rsp)
callq 0xb389
movsd 0x8(%rsp), %xmm2
movsd 0x10(%rsp), %xmm0
movsd 0x20(%rsp), %xmm1
mulsd 0x18(%rsp), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movq 0x68(%rbx), %rax
movq 0x90(%rax), %rcx
leaq -0x8(%rcx), %rdx
movq %rdx, 0x90(%rax)
movq -0x8(%rcx), %rax
movq $0xd, (%rax)
movsd %xmm0, 0x8(%rax)
movq 0x8(%rbx), %rcx
movq %rax, 0x10(%rcx)
movq 0x8(%rbx), %rax
movq 0x10(%rax), %rax
addq $0x28, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O1/BernardTatin[P]s7sh/s7.c
// Function: opt_p_pip_sso
static s7_pointer opt_p_pip_sso(opt_info *o)
                {
                    oo_rc(o->sc, o, 7, 4);
                    return(o->v[5].p_pip_f(o->sc, slot_value(o->v[1].p),
                                integer(slot_value(o->v[2].p)),
                                o->v[6].p_pi_f(o->sc, slot_value(o->v[3].p),
                                    integer(slot_value(o->v[4].p)))));
                }

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %rax
movq 0x28(%rdi), %r12
movq 0x68(%rdi), %rbx
movq 0x8(%rdi), %rcx
movq 0x10(%rdi), %rdx
movq 0x10(%rcx), %r14
movq 0x10(%rdx), %rcx
movq 0x8(%rcx), %r15
movq 0x18(%rdi), %rcx
movq 0x10(%rcx), %rsi
movq 0x20(%rdi), %rcx
movq 0x10(%rcx), %rcx
movq 0x8(%rcx), %rdx
movq %rbx, %rdi
callq *0x30(%rax)
movq %rbx, %rdi
movq %r14, %rsi
movq %r15, %rdx
movq %rax, %rcx
movq %r12, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
jmpq *%rax
// File: /workspace/github_c_makefile_star2_O1/BernardTatin[P]s7sh/s7.c
// Function: oo_idp_nr_fixup
static void oo_idp_nr_fixup(opt_info *start)
                {
                    if (start->v[0].fp == d_to_p)
                    {
                        start->v[0].fp = d_to_p_nr;
                        if (start->v[7].fd == opt_d_7pid_ssf)
                            start->v[0].fp = opt_d_7pid_ssf_nr;
                        else
                        {
                            if (start->v[7].fd == opt_d_7pid_ssfo_fv)
                            {
                                start->v[0].fp = opt_d_7pid_ssfo_fv_nr;
                                if (start->v[6].d_dd_f == add_d_dd)
                                    start->v[0].fp = opt_d_7pid_ssfo_fv_add_nr;
                                else
                                {
                                    if (start->v[6].d_dd_f == subtract_d_dd)
                                        start->v[0].fp = opt_d_7pid_ssfo_fv_sub_nr;
                                }}}}
                    else
                    {
                        if (start->v[0].fp == i_to_p)
                            start->v[0].fp = i_to_p_nr;
                    }
                }

// Assembly:
movq (%rdi), %rax
leaq -0x63f2(%rip), %rcx     # 0xaa422
cmpq %rcx, %rax
je 0xb0826
leaq -0x63a2(%rip), %rcx     # 0xaa47e
cmpq %rcx, %rax
je 0xb087b
retq
leaq 0xfd(%rip), %rax        # 0xb092a
movq %rax, (%rdi)
movq 0x38(%rdi), %rax
leaq -0xa1a6(%rip), %rcx     # 0xa6695
cmpq %rcx, %rax
je 0xb0884
leaq -0x9619(%rip), %rcx     # 0xa722e
cmpq %rcx, %rax
jne 0xb0825
leaq 0x13b(%rip), %rax       # 0xb098e
movq %rax, (%rdi)
movq 0x30(%rdi), %rax
leaq -0x23873(%rip), %rcx    # 0x8cfee
cmpq %rcx, %rax
je 0xb088f
leaq -0x2387a(%rip), %rcx    # 0x8cff3
cmpq %rcx, %rax
jne 0xb0825
leaq 0x1a4(%rip), %rax       # 0xb0a1d
jmp 0xb088b
leaq 0x1d9(%rip), %rax       # 0xb0a5b
jmp 0xb088b
leaq 0xa7(%rip), %rax        # 0xb0932
movq %rax, (%rdi)
retq
leaq 0x149(%rip), %rax       # 0xb09df
jmp 0xb088b
// File: /workspace/github_c_makefile_star2_O1/BernardTatin[P]s7sh/s7.c
// Function: opt_begin_p_1
static s7_pointer opt_begin_p_1(opt_info *o)
                {
                    opt_info *o1;
                    s7_scheme *sc;
                    sc = o->sc;
                    oo_rc(sc, o, 0, 0);   /* ?? */
                    o1 = sc->opts[++sc->pc];
                    o1->v[0].fp(o1);
                    o1 = sc->opts[++sc->pc];
                    return(o1->v[0].fp(o1));
                }

// Assembly:
pushq %rbx
movq 0x68(%rdi), %rbx
movslq 0x2258(%rbx), %rax
leaq 0x1(%rax), %rcx
movl %ecx, 0x2258(%rbx)
movq 0x2268(%rbx,%rax,8), %rdi
callq *(%rdi)
movslq 0x2258(%rbx), %rax
leaq 0x1(%rax), %rcx
movl %ecx, 0x2258(%rbx)
movq 0x2268(%rbx,%rax,8), %rdi
popq %rbx
jmpq *(%rdi)
// File: /workspace/github_c_makefile_star2_O1/BernardTatin[P]s7sh/s7.c
// Function: opt_begin_p
static s7_pointer opt_begin_p(opt_info *o)
                {
                    opt_info *o1;
                    s7_int i, len;
                    s7_scheme *sc;
                    sc = o->sc;
                    oo_rc(sc, o, 2, 0);
                    len = o->v[1].i - 1;
                    for (i = 0; i < len; i++)
                    {
                        o1 = sc->opts[++sc->pc];
                        o1->v[0].fp(o1);
                    }
                    o1 = sc->opts[++sc->pc];
                    return(o1->v[0].fp(o1));
                }

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq 0x8(%rdi), %r14
movq 0x68(%rdi), %rbx
cmpq $0x2, %r14
jl 0xb0908
decq %r14
movslq 0x2258(%rbx), %rax
leal 0x1(%rax), %ecx
movl %ecx, 0x2258(%rbx)
movq 0x2268(%rbx,%rax,8), %rdi
callq *(%rdi)
decq %r14
jne 0xb08e9
movslq 0x2258(%rbx), %rax
leaq 0x1(%rax), %rcx
movl %ecx, 0x2258(%rbx)
movq 0x2268(%rbx,%rax,8), %rdi
addq $0x8, %rsp
popq %rbx
popq %r14
jmpq *(%rdi)
// File: /workspace/github_c_makefile_star2_O1/BernardTatin[P]s7sh/s7.c
// Function: opt_d_7pid_ssfo_fv_nr
static s7_pointer opt_d_7pid_ssfo_fv_nr(opt_info *o)
                {
                    s7_double *els;
                    els = float_vector_floats(slot_value(o->v[1].p));
                    els[integer(slot_value(o->v[2].p))] = o->v[6].d_dd_f(els[integer(slot_value(o->v[3].p))], real(slot_value(o->v[8].p)));
                    oo_rc(o->sc, o, 9, 4);
                    return(NULL);
                }

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
movq 0x8(%rdi), %rax
movq 0x18(%rdi), %rcx
movq 0x10(%rax), %rax
movq 0x10(%rax), %r14
movq 0x10(%rcx), %rax
movq 0x8(%rax), %rax
movsd (%r14,%rax,8), %xmm0
movq 0x40(%rdi), %rax
movq 0x10(%rax), %rax
movsd 0x8(%rax), %xmm1
callq *0x30(%rdi)
movq 0x10(%rbx), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movsd %xmm0, (%r14,%rax,8)
xorl %eax, %eax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O1/BernardTatin[P]s7sh/s7.c
// Function: opt_d_7pid_ssfo_fv_add_nr
static s7_pointer opt_d_7pid_ssfo_fv_add_nr(opt_info *o)
                {
                    s7_double *els;
                    els = float_vector_floats(slot_value(o->v[1].p));
                    els[integer(slot_value(o->v[2].p))] = els[integer(slot_value(o->v[3].p))] + real(slot_value(o->v[8].p));
                    oo_rc(o->sc, o, 9, 4);
                    return(NULL);
                }

// Assembly:
movq 0x8(%rdi), %rax
movq 0x10(%rdi), %rcx
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x18(%rdi), %rdx
movq 0x10(%rdx), %rdx
movq 0x8(%rdx), %rdx
movsd (%rax,%rdx,8), %xmm0
movq 0x40(%rdi), %rdx
movq 0x10(%rdx), %rdx
addsd 0x8(%rdx), %xmm0
movq 0x10(%rcx), %rcx
movq 0x8(%rcx), %rcx
movsd %xmm0, (%rax,%rcx,8)
xorl %eax, %eax
retq
// File: /workspace/github_c_makefile_star2_O1/BernardTatin[P]s7sh/s7.c
// Function: bool_optimize
static bool bool_optimize(s7_scheme *sc, s7_pointer expr)
                {
                    int32_t start;
                    opt_info *wrapper;
                    start = sc->pc;
                    if (bool_optimize_nw(sc, expr))
                        return(true);
                    pc_fallback(sc, start);
                    wrapper = sc->opts[start];
                    if (cell_optimize(sc, expr))
                    {
                        if (wrapper->v[7].fp) /* (when (+ i 1) ...) */
                            return(return_false(sc, NULL, __func__, __LINE__));
                        if (oo_size(wrapper) < 8) oo_resize(wrapper, 8);
                        wrapper->v[7].fp = wrapper->v[0].fp;
                        wrapper->v[0].fb = p_to_b;
                        return(true);
                    }
                    return(return_false(sc, NULL, __func__, __LINE__));
                }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
movq %rsi, %r14
movq %rdi, %r15
movl 0x2258(%rdi), %ebp
callq 0xb0bfb
movb $0x1, %bl
testb %al, %al
jne 0xb0aad
movslq %ebp, %rax
movl %eax, 0x2258(%r15)
movq 0x2260(%r15,%rax,8), %r12
movq %r15, %rdi
movq %r14, %rsi
callq 0xa8bbb
testb %al, %al
je 0xb0aab
cmpq $0x0, 0x38(%r12)
je 0xb0ab8
xorl %ebx, %ebx
movl %ebx, %eax
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
cmpl $0x7, 0x60(%r12)
jg 0xb0ac9
movl $0x8, 0x60(%r12)
movq (%r12), %rax
movq %rax, 0x38(%r12)
leaq 0x4d1(%rip), %rax       # 0xb0faa
movq %rax, (%r12)
jmp 0xb0aad
// File: /workspace/github_c_makefile_star2_O1/BernardTatin[P]s7sh/s7.c
// Function: opt_when_p
static s7_pointer opt_when_p(opt_info *o)
                {
                    opt_info *o1;
                    s7_scheme *sc;
                    sc = o->sc;
                    oo_rc(sc, o, 4, 0);
                    o1 = sc->opts[++sc->pc];
                    if (o1->v[0].fb(o1))
                    {
                        int32_t i, len;
                        len = o->v[1].i - 1;
                        for (i = 0; i < len; i++)
                        {
                            o1 = sc->opts[++sc->pc];
                            o1->v[0].fp(o1);
                        }
                        o1 = sc->opts[++sc->pc];
                        return(o1->v[0].fp(o1));
                    }
                    sc->pc = o->v[3].i;
                    return(sc->unspecified);
                }

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
movq 0x68(%rdi), %r14
movslq 0x2258(%r14), %rax
leaq 0x1(%rax), %rcx
movl %ecx, 0x2258(%r14)
movq 0x2268(%r14,%rax,8), %rdi
callq *(%rdi)
testb %al, %al
je 0xb0b54
movl 0x8(%rbx), %ebx
decl %ebx
testl %ebx, %ebx
jle 0xb0b32
movslq 0x2258(%r14), %rax
leal 0x1(%rax), %ecx
movl %ecx, 0x2258(%r14)
movq 0x2268(%r14,%rax,8), %rdi
callq *(%rdi)
decl %ebx
jne 0xb0b13
movslq 0x2258(%r14), %rax
leal 0x1(%rax), %ecx
movl %ecx, 0x2258(%r14)
movq 0x2268(%r14,%rax,8), %rdi
addq $0x8, %rsp
popq %rbx
popq %r14
jmpq *(%rdi)
movl 0x18(%rbx), %eax
movl %eax, 0x2258(%r14)
movq 0x130(%r14), %rax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O1/BernardTatin[P]s7sh/s7.c
// Function: b_pi_ok
static bool b_pi_ok(s7_scheme *sc, opt_info *opc, s7_pointer s_func, s7_pointer car_x, s7_pointer arg2)
                {
                    s7_b_pi_t bpif;
                    bpif = s7_b_pi_function(s_func);
                    if (bpif)
                    {
                        opc->v[1].p = symbol_to_slot(sc, arg2); /* slot checked in opt_arg_type */
                        if (cell_optimize(sc, cdr(car_x)))
                        {
                            opc->v[2].b_pi_f = bpif;
                            opc->v[0].fb = opt_b_pi_fs;
                            return(oo_set_type_1(opc, 3, 1, OO_P));
                        }
                    }
                    return(return_false(sc, car_x, __func__, __LINE__));
                }

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rsi, %rbx
cmpb $0x30, (%rdx)
jb 0xb181a
movq 0x8(%rdx), %rax
movq 0x20(%rax), %rax
testq %rax, %rax
sete %dl
je 0xb1816
cmpl $0x20, (%rax)
je 0xb180e
movq 0x10(%rax), %rax
testq %rax, %rax
sete %dl
je 0xb1816
cmpl $0x20, (%rax)
jne 0xb17fd
movq 0x8(%rax), %r14
xorl %edx, %edx
jmp 0xb1816
testb %dl, %dl
je 0xb181d
xorl %r14d, %r14d
testq %r14, %r14
je 0xb18c3
movq 0x8(%rdi), %rdx
movq 0x18(%rdx), %r9
movq 0x20(%r8), %rsi
movl $0x18, %eax
cmpq %rsi, %r9
je 0xb1887
jle 0xb184b
movq 0x10(%rdx), %rdx
movq 0x18(%rdx), %r9
cmpq %r9, %rsi
jl 0xb183e
cmpq %rsi, %r9
je 0xb1887
movl $0x10, %eax
cmpb $0x1c, (%rdx)
jne 0xb1887
movq 0x8(%rdx), %rsi
testq %rsi, %rsi
sete %r10b
je 0xb1873
cmpq %r8, 0x8(%rsi)
je 0xb1876
movq 0x18(%rsi), %rsi
jmp 0xb185e
movq %r9, %rsi
testb %r10b, %r10b
je 0xb188b
movq 0x10(%rdx), %rdx
cmpb $0x1c, (%rdx)
movq %rsi, %r9
je 0xb185a
movq (%r8,%rax), %rsi
movq %rsi, 0x8(%rbx)
movq 0x10(%rcx), %rsi
callq 0xa8bbb
testb %al, %al
je 0xb18c3
movq %r14, 0x10(%rbx)
leaq 0xfa6(%rip), %rax       # 0xb284d
movq %rax, (%rbx)
movabsq $0x100000003, %rax      # imm = 0x100000003
movq %rax, 0x60(%rbx)
movl $0x0, 0x70(%rbx)
movb $0x1, %al
jmp 0xb18c5
xorl %eax, %eax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O1/BernardTatin[P]s7sh/s7.c
// Function: opt_and_bb1
static bool opt_and_bb1(opt_info *o)
                {
                    oo_rc(o->sc, o, 8, 0);
                    if (o->v[7].fb(o))
                    {
                        opt_info *o1;
                        o->sc->pc += 2;
                        o1 = o->sc->opts[o->sc->pc];
                        return(o1->v[0].fb(o1));
                    }
                    o->sc->pc = o->v[4].i;
                    return(false);
                }

// Assembly:
pushq %rbx
movq %rdi, %rbx
callq *0x38(%rdi)
testb %al, %al
je 0xb2355
movq 0x68(%rbx), %rax
movslq 0x2258(%rax), %rcx
leaq 0x2(%rcx), %rdx
movl %edx, 0x2258(%rax)
movq 0x2270(%rax,%rcx,8), %rdi
popq %rbx
jmpq *(%rdi)
movl 0x20(%rbx), %eax
movq 0x68(%rbx), %rcx
movl %eax, 0x2258(%rcx)
xorl %eax, %eax
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O1/BernardTatin[P]s7sh/s7.c
// Function: opt_or_bb1
static bool opt_or_bb1(opt_info *o)
                {
                    opt_info *o1;
                    oo_rc(o->sc, o, 8, 0);
                    if (o->v[7].fb(o))
                    {
                        o->sc->pc = o->v[4].i;
                        return(true);
                    }
                    o->sc->pc += 2;
                    o1 = o->sc->opts[o->sc->pc];
                    return(o1->v[0].fb(o1));
                }

// Assembly:
pushq %rbx
movq %rdi, %rbx
callq *0x38(%rdi)
testb %al, %al
je 0xb2382
movl 0x20(%rbx), %eax
movq 0x68(%rbx), %rcx
movl %eax, 0x2258(%rcx)
movb $0x1, %al
popq %rbx
retq
movq 0x68(%rbx), %rax
movslq 0x2258(%rax), %rcx
leaq 0x2(%rcx), %rdx
movl %edx, 0x2258(%rax)
movq 0x2270(%rax,%rcx,8), %rdi
popq %rbx
jmpq *(%rdi)
// File: /workspace/github_c_makefile_star2_O1/BernardTatin[P]s7sh/s7.c
// Function: opt_and_bb
static bool opt_and_bb(opt_info *o)
                {
                    opt_info *o1;
                    s7_scheme *sc;
                    sc = o->sc;
                    oo_rc(sc, o, 2, 0);
                    o1 = sc->opts[++sc->pc];
                    if (o1->v[0].fb(o1))
                    {
                        o1 = sc->opts[++sc->pc];
                        return(o1->v[0].fb(o1));
                    }
                    sc->pc = o->v[1].i;
                    return(false);
                }

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
movq 0x68(%rdi), %r14
movslq 0x2258(%r14), %rax
leaq 0x1(%rax), %rcx
movl %ecx, 0x2258(%r14)
movq 0x2268(%r14,%rax,8), %rdi
callq *(%rdi)
testb %al, %al
je 0xb23ef
movslq 0x2258(%r14), %rax
leal 0x1(%rax), %ecx
movl %ecx, 0x2258(%r14)
movq 0x2268(%r14,%rax,8), %rdi
addq $0x8, %rsp
popq %rbx
popq %r14
jmpq *(%rdi)
movl 0x8(%rbx), %eax
movl %eax, 0x2258(%r14)
xorl %eax, %eax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O1/BernardTatin[P]s7sh/s7.c
// Function: opt_or_bb
static bool opt_or_bb(opt_info *o)
                {
                    opt_info *o1;
                    oo_rc(o->sc, o, 2, 0);
                    o1 = o->sc->opts[++o->sc->pc];
                    if (o1->v[0].fb(o1))
                    {
                        o->sc->pc = o->v[1].i;
                        return(true);
                    }
                    o1 = o->sc->opts[++o->sc->pc];
                    return(o1->v[0].fb(o1));
                }

// Assembly:
pushq %rbx
movq %rdi, %rbx
movq 0x68(%rdi), %rax
movslq 0x2258(%rax), %rcx
leaq 0x1(%rcx), %rdx
movl %edx, 0x2258(%rax)
movq 0x2268(%rax,%rcx,8), %rdi
callq *(%rdi)
testb %al, %al
je 0xb243b
movl 0x8(%rbx), %eax
movq 0x68(%rbx), %rcx
movl %eax, 0x2258(%rcx)
movb $0x1, %al
popq %rbx
retq
movq 0x68(%rbx), %rax
movslq 0x2258(%rax), %rcx
leaq 0x1(%rcx), %rdx
movl %edx, 0x2258(%rax)
movq 0x2268(%rax,%rcx,8), %rdi
popq %rbx
jmpq *(%rdi)
// File: /workspace/github_c_makefile_star2_O1/BernardTatin[P]s7sh/s7.c
// Function: opt_and_any_b
static bool opt_and_any_b(opt_info *o)
                {
                    int32_t i;
                    oo_rc(o->sc, o, 3, 0);
                    for (i = 0; i < o->v[1].i; i++)
                    {
                        opt_info *o1;
                        o1 = o->sc->opts[++o->sc->pc];
                        if (!o1->v[0].fb(o1))
                        {
                            o->sc->pc = o->v[2].i;
                            return(false);
                        }
                    }
                    return(true);
                }

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
cmpq $0x0, 0x8(%rdi)
setle %bpl
jle 0xb24d0
movq %rdi, %rbx
movq 0x68(%rdi), %rax
movslq 0x2258(%rax), %rcx
leaq 0x1(%rcx), %rdx
movl %edx, 0x2258(%rax)
movq 0x2268(%rax,%rcx,8), %rdi
callq *(%rdi)
testb %al, %al
je 0xb24c3
xorl %r14d, %r14d
incq %r14
cmpq %r14, 0x8(%rbx)
setle %bpl
jle 0xb24d0
movq 0x68(%rbx), %rax
movslq 0x2258(%rax), %rcx
leaq 0x1(%rcx), %rdx
movl %edx, 0x2258(%rax)
movq 0x2268(%rax,%rcx,8), %rdi
callq *(%rdi)
testb %al, %al
jne 0xb2493
movl 0x10(%rbx), %eax
movq 0x68(%rbx), %rcx
movl %eax, 0x2258(%rcx)
movl %ebp, %eax
popq %rbx
popq %r14
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O1/BernardTatin[P]s7sh/s7.c
// Function: opt_or_any_b
static bool opt_or_any_b(opt_info *o)
                {
                    int32_t i;
                    oo_rc(o->sc, o, 3, 0);
                    for (i = 0; i < o->v[1].i; i++)
                    {
                        opt_info *o1;
                        o1 = o->sc->opts[++o->sc->pc];
                        if (o1->v[0].fb(o1))
                        {
                            o->sc->pc = o->v[2].i;
                            return(true);
                        }
                    }
                    return(false);
                }

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
cmpq $0x0, 0x8(%rdi)
setg %bpl
jle 0xb254c
movq %rdi, %rbx
movq 0x68(%rdi), %rax
movslq 0x2258(%rax), %rcx
leaq 0x1(%rcx), %rdx
movl %edx, 0x2258(%rax)
movq 0x2268(%rax,%rcx,8), %rdi
callq *(%rdi)
testb %al, %al
jne 0xb253f
xorl %r14d, %r14d
incq %r14
cmpq %r14, 0x8(%rbx)
setg %bpl
jle 0xb254c
movq 0x68(%rbx), %rax
movslq 0x2258(%rax), %rcx
leaq 0x1(%rcx), %rdx
movl %edx, 0x2258(%rax)
movq 0x2268(%rax,%rcx,8), %rdi
callq *(%rdi)
testb %al, %al
je 0xb250f
movl 0x10(%rbx), %eax
movq 0x68(%rbx), %rcx
movl %eax, 0x2258(%rcx)
movl %ebp, %eax
popq %rbx
popq %r14
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O1/BernardTatin[P]s7sh/s7.c
// Function: opt_b_ii_ff
static bool opt_b_ii_ff(opt_info *o)
                {
                    opt_info *o1;
                    s7_int i1;
                    s7_scheme *sc;
                    sc = o->sc;
                    o1 = sc->opts[++sc->pc];
                    i1 = o1->v[0].fi(o1);
                    o1 = sc->opts[++sc->pc];
                    oo_rc(sc, o, 4, 0);
                    return(o->v[3].b_ii_f(i1, o1->v[0].fi(o1)));
                }

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rdi, %rbx
movq 0x68(%rdi), %r15
movslq 0x2258(%r15), %rax
leaq 0x1(%rax), %rcx
movl %ecx, 0x2258(%r15)
movq 0x2268(%r15,%rax,8), %rdi
callq *(%rdi)
movq %rax, %r14
movslq 0x2258(%r15), %rax
leaq 0x1(%rax), %rcx
movl %ecx, 0x2258(%r15)
movq 0x2268(%r15,%rax,8), %rdi
movq 0x18(%rbx), %rbx
callq *(%rdi)
movq %r14, %rdi
movq %rax, %rsi
movq %rbx, %rax
popq %rbx
popq %r14
popq %r15
jmpq *%rax
// File: /workspace/github_c_makefile_star2_O1/BernardTatin[P]s7sh/s7.c
// Function: opt_b_dd_ff
static bool opt_b_dd_ff(opt_info *o)
                {
                    opt_info *o1;
                    s7_double x1;
                    s7_scheme *sc;
                    sc = o->sc;
                    o1 = sc->opts[++sc->pc];
                    x1 = o1->v[0].fd(o1);
                    o1 = sc->opts[++sc->pc];
                    oo_rc(sc, o, 4, 0);
                    return(o->v[3].b_dd_f(x1, o1->v[0].fd(o1)));
                }

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
movq 0x68(%rdi), %r14
movslq 0x2258(%r14), %rax
leaq 0x1(%rax), %rcx
movl %ecx, 0x2258(%r14)
movq 0x2268(%r14,%rax,8), %rdi
callq *(%rdi)
movsd %xmm0, (%rsp)
movslq 0x2258(%r14), %rax
leaq 0x1(%rax), %rcx
movl %ecx, 0x2258(%r14)
movq 0x2268(%r14,%rax,8), %rdi
movq 0x18(%rbx), %rbx
callq *(%rdi)
movaps %xmm0, %xmm1
movsd (%rsp), %xmm0
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
jmpq *%rax
// File: /workspace/github_c_makefile_star2_O1/BernardTatin[P]s7sh/s7.c
// Function: opt_b_7pp_ff
static bool opt_b_7pp_ff(opt_info *o)
                {
                    opt_info *o1;
                    s7_pointer p1;
                    s7_scheme *sc;
                    sc = o->sc;
                    o1 = sc->opts[++sc->pc];
                    p1 = o1->v[0].fp(o1);
                    o1 = sc->opts[++sc->pc];
                    oo_rc(sc, o, 4, 0);
                    return(o->v[3].b_7pp_f(sc, p1, o1->v[0].fp(o1)));
                }

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rdi, %rbx
movq 0x68(%rdi), %r14
movslq 0x2258(%r14), %rax
leaq 0x1(%rax), %rcx
movl %ecx, 0x2258(%r14)
movq 0x2268(%r14,%rax,8), %rdi
callq *(%rdi)
movq %rax, %r15
movslq 0x2258(%r14), %rax
leaq 0x1(%rax), %rcx
movl %ecx, 0x2258(%r14)
movq 0x2268(%r14,%rax,8), %rdi
movq 0x18(%rbx), %rbx
callq *(%rdi)
movq %r14, %rdi
movq %r15, %rsi
movq %rax, %rdx
movq %rbx, %rax
popq %rbx
popq %r14
popq %r15
jmpq *%rax
// File: /workspace/github_c_makefile_star2_O1/BernardTatin[P]s7sh/s7.c
// Function: opt_cond_clause
static s7_pointer opt_cond_clause(opt_info *o)
                {
                    /* top->p1 gets result, top->i1 is end index, o->v[3].i is end of current clause, o->v[1].i = body len */
                    opt_info *o1;
                    o1 = o->sc->opts[++o->sc->pc];
                    if (o1->v[0].fb(o1))
                        return(case_value(o));
                    o->sc->pc = o->v[3].i;
                    return(o->sc->unspecified);
                }

// Assembly:
pushq %rbx
movq %rdi, %rbx
movq 0x68(%rdi), %rax
movslq 0x2258(%rax), %rcx
leaq 0x1(%rcx), %rdx
movl %edx, 0x2258(%rax)
movq 0x2268(%rax,%rcx,8), %rdi
callq *(%rdi)
testb %al, %al
je 0xb2d79
movq %rbx, %rdi
popq %rbx
jmp 0xb2e75
movl 0x18(%rbx), %eax
movq 0x68(%rbx), %rcx
movl %eax, 0x2258(%rcx)
movq 0x130(%rcx), %rax
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O1/BernardTatin[P]s7sh/s7.c
// Function: opt_cond
static s7_pointer opt_cond(opt_info *o)
                {
                    oo_rc(o->sc, o, 3, 0);
                    o->v[2].p = o->sc->unspecified;
                    while (o->sc->pc < o->v[1].i)
                    {
                        opt_info *o1;
                        o1 = o->sc->opts[++o->sc->pc];
                        o1->v[0].fp(o1);
                    }
                    return(o->v[2].p);
                }

// Assembly:
pushq %rbx
movq %rdi, %rbx
movq 0x8(%rdi), %rdx
movq 0x68(%rdi), %rax
movq 0x130(%rax), %rcx
movq %rcx, 0x10(%rdi)
movslq 0x2258(%rax), %rcx
cmpq %rcx, %rdx
jle 0xb2dd9
leal 0x1(%rcx), %edx
movl %edx, 0x2258(%rax)
movslq %ecx, %rcx
movq 0x2268(%rax,%rcx,8), %rdi
callq *(%rdi)
movq 0x68(%rbx), %rax
movslq 0x2258(%rax), %rcx
cmpq %rcx, 0x8(%rbx)
jg 0xb2db2
movq 0x10(%rbx), %rax
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O1/BernardTatin[P]s7sh/s7.c
// Function: opt_cond_1
static s7_pointer opt_cond_1(opt_info *o)  /* cond as when */
                {
                    opt_info *o1;
                    oo_rc(o->sc, o, 3, 0);
                    o->v[2].p = o->sc->unspecified;
                    o1 = o->sc->opts[++o->sc->pc];
                    o1->v[0].fp(o1);
                    return(o->v[2].p);
                }

// Assembly:
pushq %rbx
movq %rdi, %rbx
movq 0x68(%rdi), %rax
movq 0x130(%rax), %rcx
movq %rcx, 0x10(%rdi)
movslq 0x2258(%rax), %rcx
leaq 0x1(%rcx), %rdx
movl %edx, 0x2258(%rax)
movq 0x2268(%rax,%rcx,8), %rdi
callq *(%rdi)
movq 0x10(%rbx), %rax
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O1/BernardTatin[P]s7sh/s7.c
// Function: opt_cond_2
static s7_pointer opt_cond_2(opt_info *o)
                {
                    /* 2 branches, results 1 expr, else */
                    opt_info *o1, *o2;
                    s7_pointer res;
                    s7_scheme *sc;
                    sc = o->sc;
                    oo_rc(sc, o, 2, 0);
                    sc->pc += 2;
                    o2 = sc->opts[sc->pc];           /* this is the boolean expr of the first clause */
                    if (!o2->v[0].fb(o2))
                        sc->pc = o->v[3].i;            /* jump over first clause and #t */
                    o1 = sc->opts[++sc->pc];
                    res = o1->v[0].fp(o1);
                    sc->pc = o->v[1].i;              /* end of cond index */
                    return(res);
                }

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
movq 0x68(%rdi), %r14
movslq 0x2258(%r14), %rax
leaq 0x2(%rax), %rcx
movl %ecx, 0x2258(%r14)
movq 0x2270(%r14,%rax,8), %rdi
callq *(%rdi)
testb %al, %al
jne 0xb2e48
movl 0x18(%rbx), %eax
movl %eax, 0x2258(%r14)
movslq 0x2258(%r14), %rax
leal 0x1(%rax), %ecx
movl %ecx, 0x2258(%r14)
movq 0x2268(%r14,%rax,8), %rdi
callq *(%rdi)
movl 0x8(%rbx), %ecx
movl %ecx, 0x2258(%r14)
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O1/BernardTatin[P]s7sh/s7.c
// Function: case_value
static s7_pointer case_value(opt_info *o)
                {
                    opt_info *top, *o1;
                    int32_t i, len;
                    s7_scheme *sc;
                    sc = o->sc;
                    top = (opt_info *)(o->v[5].obj);
                    len = o->v[1].i - 1;
                    for (i = 0; i < len; i++)
                    {
                        o1 = sc->opts[++sc->pc];
                        o1->v[0].fp(o1);
                    }
                    o1 = sc->opts[++sc->pc];
                    top->v[2].p = o1->v[0].fp(o1);
                    sc->pc = top->v[1].i;
                    return(top->v[2].p);
                }

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
movq 0x68(%rdi), %rbx
movq 0x28(%rdi), %r14
movl 0x8(%rdi), %ebp
decl %ebp
testl %ebp, %ebp
jle 0xb2ea8
movslq 0x2258(%rbx), %rax
leal 0x1(%rax), %ecx
movl %ecx, 0x2258(%rbx)
movq 0x2268(%rbx,%rax,8), %rdi
callq *(%rdi)
decl %ebp
jne 0xb2e8a
movslq 0x2258(%rbx), %rax
leaq 0x1(%rax), %rcx
movl %ecx, 0x2258(%rbx)
movq 0x2268(%rbx,%rax,8), %rdi
callq *(%rdi)
movq %rax, 0x10(%r14)
movl 0x8(%r14), %eax
movl %eax, 0x2258(%rbx)
movq 0x10(%r14), %rax
popq %rbx
popq %r14
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O1/BernardTatin[P]s7sh/s7.c
// Function: opt_or_pp
static s7_pointer opt_or_pp(opt_info *o)
                {
                    opt_info *o1;
                    s7_pointer val;
                    oo_rc(o->sc, o, 2, 0);
                    o1 = o->sc->opts[++o->sc->pc];
                    val = o1->v[0].fp(o1);
                    if (val != o->sc->F)
                    {
                        o->sc->pc = o->v[1].i;
                        return(val);
                    }
                    o1 = o->sc->opts[++o->sc->pc];
                    return(o1->v[0].fp(o1));
                }

// Assembly:
pushq %rbx
movq %rdi, %rbx
movq 0x68(%rdi), %rax
movslq 0x2258(%rax), %rcx
leaq 0x1(%rcx), %rdx
movl %edx, 0x2258(%rax)
movq 0x2268(%rax,%rcx,8), %rdi
callq *(%rdi)
movq 0x68(%rbx), %rcx
cmpq 0x120(%rcx), %rax
je 0xb2f15
movl 0x8(%rbx), %edx
movl %edx, 0x2258(%rcx)
popq %rbx
retq
movslq 0x2258(%rcx), %rax
leaq 0x1(%rax), %rdx
movl %edx, 0x2258(%rcx)
movq 0x2268(%rcx,%rax,8), %rdi
popq %rbx
jmpq *(%rdi)
// File: /workspace/github_c_makefile_star2_O1/BernardTatin[P]s7sh/s7.c
// Function: opt_and_pp
static s7_pointer opt_and_pp(opt_info *o)
                {
                    opt_info *o1;
                    oo_rc(o->sc, o, 2, 0);
                    o1 = o->sc->opts[++o->sc->pc];
                    if (o1->v[0].fp(o1) == o->sc->F)
                    {
                        o->sc->pc = o->v[1].i;
                        return(o->sc->F);
                    }
                    o1 = o->sc->opts[++o->sc->pc];
                    return(o1->v[0].fp(o1));
                }

// Assembly:
pushq %rbx
movq %rdi, %rbx
movq 0x68(%rdi), %rax
movslq 0x2258(%rax), %rcx
leaq 0x1(%rcx), %rdx
movl %edx, 0x2258(%rax)
movq 0x2268(%rax,%rcx,8), %rdi
callq *(%rdi)
movq %rax, %rcx
movq 0x68(%rbx), %rdx
movq 0x120(%rdx), %rax
cmpq %rax, %rcx
je 0xb2f83
movslq 0x2258(%rdx), %rax
leaq 0x1(%rax), %rcx
movl %ecx, 0x2258(%rdx)
movq 0x2268(%rdx,%rax,8), %rdi
popq %rbx
jmpq *(%rdi)
movl 0x8(%rbx), %ecx
movl %ecx, 0x2258(%rdx)
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O1/BernardTatin[P]s7sh/s7.c
// Function: opt_or_any_p
static s7_pointer opt_or_any_p(opt_info *o)
                {
                    int32_t i;
                    oo_rc(o->sc, o, 3, 0);
                    for (i = 0; i < o->v[1].i; i++)
                    {
                        s7_pointer val;
                        opt_info *o1;
                        o1 = o->sc->opts[++o->sc->pc];
                        val = o1->v[0].fp(o1);
                        if (val != o->sc->F)
                        {
                            o->sc->pc = o->v[2].i;
                            return(val);
                        }
                    }
                    return(o->sc->F);
                }

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rdi, %rbx
cmpq $0x0, 0x8(%rdi)
jle 0xb3003
xorl %r15d, %r15d
movq 0x68(%rbx), %rax
movslq 0x2258(%rax), %rcx
leaq 0x1(%rcx), %rdx
movl %edx, 0x2258(%rax)
movq 0x2268(%rax,%rcx,8), %rdi
callq *(%rdi)
movq 0x68(%rbx), %rdx
movq 0x120(%rdx), %rcx
cmpq %rcx, %rax
je 0xb2ff5
movl 0x10(%rbx), %esi
movl %esi, 0x2258(%rdx)
movq %rax, %r14
cmpq %rcx, %rax
jne 0xb300e
incq %r15
cmpq %r15, 0x8(%rbx)
jg 0xb2fba
movq 0x68(%rbx), %rax
movq 0x120(%rax), %r14
movq %r14, %rax
popq %rbx
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O1/BernardTatin[P]s7sh/s7.c
// Function: opt_and_any_p
static s7_pointer opt_and_any_p(opt_info *o)
                {
                    int32_t i;
                    s7_pointer val;
                    oo_rc(o->sc, o, 3, 0);
                    val = o->sc->T; /* (and) -> #t */
                    for (i = 0; i < o->v[1].i; i++)
                    {
                        opt_info *o1;
                        o1 = o->sc->opts[++o->sc->pc];
                        val = o1->v[0].fp(o1);
                        if (val == o->sc->F)
                        {
                            o->sc->pc = o->v[2].i;
                            return(o->sc->F);
                        }
                    }
                    return(val);
                }

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rdi, %rbx
cmpq $0x0, 0x8(%rdi)
jle 0xb3077
xorl %r15d, %r15d
movq 0x68(%rbx), %rax
movslq 0x2258(%rax), %rcx
leaq 0x1(%rcx), %rdx
movl %edx, 0x2258(%rax)
movq 0x2268(%rax,%rcx,8), %rdi
callq *(%rdi)
movq 0x68(%rbx), %rdx
movq 0x120(%rdx), %rcx
cmpq %rcx, %rax
jne 0xb3064
movl 0x10(%rbx), %esi
movl %esi, 0x2258(%rdx)
movq %rcx, %r14
cmpq %rcx, %rax
je 0xb3082
incq %r15
cmpq %r15, 0x8(%rbx)
jg 0xb3029
movq %rax, %r14
jmp 0xb3082
movq 0x68(%rbx), %rax
movq 0x118(%rax), %r14
movq %r14, %rax
popq %rbx
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O1/BernardTatin[P]s7sh/s7.c
// Function: opt_if_nbp
static s7_pointer opt_if_nbp(opt_info *o)
                {
                    opt_info *o1;
                    oo_rc(o->sc, o, 2, 0);
                    o1 = o->sc->opts[++o->sc->pc];
                    if (!o1->v[0].fb(o1))
                    {
                        o1 = o->sc->opts[++o->sc->pc];
                        return(o1->v[0].fp(o1));
                    }
                    o->sc->pc = o->v[1].i;
                    return(o->sc->unspecified);
                }

// Assembly:
pushq %rbx
movq %rdi, %rbx
movq 0x68(%rdi), %rax
movslq 0x2258(%rax), %rcx
leaq 0x1(%rcx), %rdx
movl %edx, 0x2258(%rax)
movq 0x2268(%rax,%rcx,8), %rdi
callq *(%rdi)
testb %al, %al
je 0xb30c8
movl 0x8(%rbx), %eax
movq 0x68(%rbx), %rcx
movl %eax, 0x2258(%rcx)
movq 0x130(%rcx), %rax
popq %rbx
retq
movq 0x68(%rbx), %rax
movslq 0x2258(%rax), %rcx
leaq 0x1(%rcx), %rdx
movl %edx, 0x2258(%rax)
movq 0x2268(%rax,%rcx,8), %rdi
popq %rbx
jmpq *(%rdi)
// File: /workspace/github_c_makefile_star2_O1/BernardTatin[P]s7sh/s7.c
// Function: opt_if_nbp_f
static s7_pointer opt_if_nbp_f(opt_info *o)
                {
                    opt_info *o1;
                    oo_rc(o->sc, o, 3, 0);
                    o->sc->pc += 2;
                    o1 = o->sc->opts[o->sc->pc];
                    if (!(o->v[2].b_p_f(o1->v[0].fp(o1))))
                    {
                        o1 = o->sc->opts[++o->sc->pc];
                        return(o1->v[0].fp(o1));
                    }
                    o->sc->pc = o->v[1].i;
                    return(o->sc->unspecified);
                }

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
movq 0x68(%rdi), %rax
movslq 0x2258(%rax), %rcx
leaq 0x2(%rcx), %rdx
movl %edx, 0x2258(%rax)
movq 0x2270(%rax,%rcx,8), %rdi
movq 0x10(%rbx), %r14
callq *(%rdi)
movq %rax, %rdi
callq *%r14
testb %al, %al
je 0xb3138
movl 0x8(%rbx), %eax
movq 0x68(%rbx), %rcx
movl %eax, 0x2258(%rcx)
movq 0x130(%rcx), %rax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
movq 0x68(%rbx), %rax
movslq 0x2258(%rax), %rcx
leaq 0x1(%rcx), %rdx
movl %edx, 0x2258(%rax)
movq 0x2268(%rax,%rcx,8), %rdi
addq $0x8, %rsp
popq %rbx
popq %r14
jmpq *(%rdi)