LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O0/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:
subq $0x48, %rsp
movq %rdi, 0x40(%rsp)
movq 0x40(%rsp), %rax
movq 0x68(%rax), %rax
movq 0x40(%rsp), %rcx
movq 0x68(%rcx), %rdx
movl 0x2258(%rdx), %ecx
addl $0x2, %ecx
movl %ecx, 0x2258(%rdx)
movslq %ecx, %rcx
movq 0x2260(%rax,%rcx,8), %rax
movq %rax, 0x38(%rsp)
movq 0x40(%rsp), %rax
movq 0x68(%rax), %rdi
movq 0x38(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rsi
movq 0x38(%rsp), %rax
movq 0x18(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rdx
callq 0xa71f0
movq 0x38(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rax
mulsd 0x8(%rax), %xmm0
movsd %xmm0, 0x28(%rsp)
movq 0x40(%rsp), %rax
movq 0x68(%rax), %rax
movq 0x40(%rsp), %rcx
movq 0x68(%rcx), %rdx
movl 0x2258(%rdx), %ecx
addl $0x1, %ecx
movl %ecx, 0x2258(%rdx)
movslq %ecx, %rcx
movq 0x2260(%rax,%rcx,8), %rax
movq %rax, 0x30(%rsp)
movq 0x40(%rsp), %rax
movq 0x68(%rax), %rdi
movq 0x30(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rsi
movq 0x30(%rsp), %rax
movq 0x18(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rdx
callq 0xa71f0
movq 0x30(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rax
mulsd 0x8(%rax), %xmm0
movsd %xmm0, 0x20(%rsp)
movsd 0x28(%rsp), %xmm0
addsd 0x20(%rsp), %xmm0
movsd %xmm0, 0x10(%rsp)
movq 0x40(%rsp), %rax
movq 0x68(%rax), %rax
movq 0x90(%rax), %rax
movq 0x40(%rsp), %rcx
movq 0x68(%rcx), %rcx
cmpq 0x98(%rcx), %rax
ja 0xf7a35
movq 0x40(%rsp), %rax
movq 0x68(%rax), %rdi
callq 0xc670
movq 0x40(%rsp), %rax
movq 0x68(%rax), %rcx
movq 0x90(%rcx), %rax
movq %rax, %rdx
addq $-0x8, %rdx
movq %rdx, 0x90(%rcx)
movq -0x8(%rax), %rax
movq %rax, 0x18(%rsp)
movq 0x18(%rsp), %rax
movq $0xd, (%rax)
movsd 0x10(%rsp), %xmm0
movq 0x18(%rsp), %rax
movsd %xmm0, 0x8(%rax)
movq 0x18(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rcx
movq 0x40(%rsp), %rax
movq 0x8(%rax), %rax
movq %rcx, 0x10(%rax)
movq 0x40(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rax
addq $0x48, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/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:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq 0x20(%rsp), %rax
movq 0x28(%rax), %rax
movq %rax, 0x18(%rsp)
movq 0x20(%rsp), %rax
movq 0x68(%rax), %rax
movq %rax, (%rsp)
movq 0x20(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rax
movq %rax, 0x8(%rsp)
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, 0x10(%rsp)
movq 0x20(%rsp), %rax
movq 0x30(%rax), %rax
movq 0x20(%rsp), %rcx
movq 0x68(%rcx), %rdi
movq 0x20(%rsp), %rcx
movq 0x18(%rcx), %rcx
movq 0x10(%rcx), %rsi
movq 0x20(%rsp), %rcx
movq 0x20(%rcx), %rcx
movq 0x10(%rcx), %rcx
movq 0x8(%rcx), %rdx
callq *%rax
movq (%rsp), %rdi
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq %rax, %rcx
movq 0x18(%rsp), %rax
callq *%rax
addq $0x28, %rsp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/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, -0x8(%rsp)
movq -0x8(%rsp), %rax
leaq -0xbc31(%rip), %rcx     # 0xec340
cmpq %rcx, (%rax)
jne 0xf8019
movq -0x8(%rsp), %rax
leaq 0x20a(%rip), %rcx       # 0xf8190
movq %rcx, (%rax)
movq -0x8(%rsp), %rax
leaq -0x126a5(%rip), %rcx    # 0xe58f0
cmpq %rcx, 0x38(%rax)
jne 0xf7fac
movq -0x8(%rsp), %rax
leaq 0x209(%rip), %rcx       # 0xf81b0
movq %rcx, (%rax)
jmp 0xf8017
movq -0x8(%rsp), %rax
leaq -0x11b08(%rip), %rcx    # 0xe64b0
cmpq %rcx, 0x38(%rax)
jne 0xf8015
movq -0x8(%rsp), %rax
leaq 0x296(%rip), %rcx       # 0xf8260
movq %rcx, (%rax)
movq -0x8(%rsp), %rax
leaq -0x45399(%rip), %rcx    # 0xb2c40
cmpq %rcx, 0x30(%rax)
jne 0xf7ff0
movq -0x8(%rsp), %rax
leaq 0x2f5(%rip), %rcx       # 0xf82e0
movq %rcx, (%rax)
jmp 0xf8013
movq -0x8(%rsp), %rax
leaq -0x4539c(%rip), %rcx    # 0xb2c60
cmpq %rcx, 0x30(%rax)
jne 0xf8011
movq -0x8(%rsp), %rax
leaq 0x342(%rip), %rcx       # 0xf8350
movq %rcx, (%rax)
jmp 0xf8013
jmp 0xf8015
jmp 0xf8017
jmp 0xf803b
movq -0x8(%rsp), %rax
leaq -0xbc35(%rip), %rcx     # 0xec3f0
cmpq %rcx, (%rax)
jne 0xf8039
movq -0x8(%rsp), %rax
leaq 0x38a(%rip), %rcx       # 0xf83c0
movq %rcx, (%rax)
jmp 0xf803b
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/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:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq 0x10(%rsp), %rax
movq 0x68(%rax), %rax
movq %rax, (%rsp)
movq (%rsp), %rax
movq (%rsp), %rdx
movl 0x2258(%rdx), %ecx
addl $0x1, %ecx
movl %ecx, 0x2258(%rdx)
movslq %ecx, %rcx
movq 0x2260(%rax,%rcx,8), %rax
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
movq (%rax), %rax
movq 0x8(%rsp), %rdi
callq *%rax
movq (%rsp), %rax
movq (%rsp), %rdx
movl 0x2258(%rdx), %ecx
addl $0x1, %ecx
movl %ecx, 0x2258(%rdx)
movslq %ecx, %rcx
movq 0x2260(%rax,%rcx,8), %rax
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
movq (%rax), %rax
movq 0x8(%rsp), %rdi
callq *%rax
addq $0x18, %rsp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/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:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq 0x20(%rsp), %rax
movq 0x68(%rax), %rax
movq %rax, (%rsp)
movq 0x20(%rsp), %rax
movq 0x8(%rax), %rax
subq $0x1, %rax
movq %rax, 0x8(%rsp)
movq $0x0, 0x10(%rsp)
movq 0x10(%rsp), %rax
cmpq 0x8(%rsp), %rax
jge 0xf8153
movq (%rsp), %rax
movq (%rsp), %rdx
movl 0x2258(%rdx), %ecx
addl $0x1, %ecx
movl %ecx, 0x2258(%rdx)
movslq %ecx, %rcx
movq 0x2260(%rax,%rcx,8), %rax
movq %rax, 0x18(%rsp)
movq 0x18(%rsp), %rax
movq (%rax), %rax
movq 0x18(%rsp), %rdi
callq *%rax
movq 0x10(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x10(%rsp)
jmp 0xf8101
movq (%rsp), %rax
movq (%rsp), %rdx
movl 0x2258(%rdx), %ecx
addl $0x1, %ecx
movl %ecx, 0x2258(%rdx)
movslq %ecx, %rcx
movq 0x2260(%rax,%rcx,8), %rax
movq %rax, 0x18(%rsp)
movq 0x18(%rsp), %rax
movq (%rax), %rax
movq 0x18(%rsp), %rdi
callq *%rax
addq $0x28, %rsp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/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:
subq $0x28, %rsp
movq %rdi, 0x18(%rsp)
movq %rsi, 0x10(%rsp)
movq 0x18(%rsp), %rax
movl 0x2258(%rax), %eax
movl %eax, 0xc(%rsp)
movq 0x18(%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0xf8720
testb $0x1, %al
jne 0xf8412
jmp 0xf841c
movb $0x1, 0x27(%rsp)
jmp 0xf84a8
movq 0x18(%rsp), %rdi
movl 0xc(%rsp), %esi
callq 0xe59a0
movq 0x18(%rsp), %rax
movslq 0xc(%rsp), %rcx
movq 0x2260(%rax,%rcx,8), %rax
movq %rax, (%rsp)
movq 0x18(%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0xe9db0
testb $0x1, %al
jne 0xf8455
jmp 0xf84a3
movq (%rsp), %rax
cmpq $0x0, 0x38(%rax)
je 0xf8467
movb $0x0, 0x27(%rsp)
jmp 0xf84a8
movq (%rsp), %rax
cmpl $0x8, 0x60(%rax)
jge 0xf847f
movq (%rsp), %rdi
movl $0x8, %esi
callq 0xec320
movq (%rsp), %rax
movq (%rax), %rcx
movq (%rsp), %rax
movq %rcx, 0x38(%rax)
movq (%rsp), %rax
leaq 0x7c7(%rip), %rcx       # 0xf8c60
movq %rcx, (%rax)
movb $0x1, 0x27(%rsp)
jmp 0xf84a8
movb $0x0, 0x27(%rsp)
movb 0x27(%rsp), %al
andb $0x1, %al
addq $0x28, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/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:
subq $0x28, %rsp
movq %rdi, 0x18(%rsp)
movq 0x18(%rsp), %rax
movq 0x68(%rax), %rax
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
movq 0x8(%rsp), %rdx
movl 0x2258(%rdx), %ecx
addl $0x1, %ecx
movl %ecx, 0x2258(%rdx)
movslq %ecx, %rcx
movq 0x2260(%rax,%rcx,8), %rax
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rsp), %rdi
callq *%rax
testb $0x1, %al
jne 0xf8518
jmp 0xf85bd
movq 0x18(%rsp), %rax
movq 0x8(%rax), %rax
subq $0x1, %rax
movl %eax, (%rsp)
movl $0x0, 0x4(%rsp)
movl 0x4(%rsp), %eax
cmpl (%rsp), %eax
jge 0xf857e
movq 0x8(%rsp), %rax
movq 0x8(%rsp), %rdx
movl 0x2258(%rdx), %ecx
addl $0x1, %ecx
movl %ecx, 0x2258(%rdx)
movslq %ecx, %rcx
movq 0x2260(%rax,%rcx,8), %rax
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rsp), %rdi
callq *%rax
movl 0x4(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x4(%rsp)
jmp 0xf8530
movq 0x8(%rsp), %rax
movq 0x8(%rsp), %rdx
movl 0x2258(%rdx), %ecx
addl $0x1, %ecx
movl %ecx, 0x2258(%rdx)
movslq %ecx, %rcx
movq 0x2260(%rax,%rcx,8), %rax
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rsp), %rdi
callq *%rax
movq %rax, 0x20(%rsp)
jmp 0xf85e4
movq 0x18(%rsp), %rax
movq 0x18(%rax), %rax
movl %eax, %ecx
movq 0x8(%rsp), %rax
movl %ecx, 0x2258(%rax)
movq 0x8(%rsp), %rax
movq 0x130(%rax), %rax
movq %rax, 0x20(%rsp)
movq 0x20(%rsp), %rax
addq $0x28, %rsp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: opt_bool_not_pair
static bool opt_bool_not_pair(s7_scheme *sc, s7_pointer car_x)
                {
                    opt_info *opc;
                    s7_pointer p;
                    if (!is_symbol(car_x))
                    {
                        if (!s7_is_boolean(car_x))
                            return(return_false(sc, car_x, __func__, __LINE__)); /* i.e. use cell_optimize */
                        opc = alloc_opo(sc, car_x);
                        opc->v[0].fb = ((car_x == sc->F) ? opt_b_f : opt_b_t);
                        return(oo_set_type_0(opc, 1));
                    }
                    p = opt_simple_symbol(sc, car_x);
                    if ((p) &&
                            (s7_is_boolean(slot_value(p))))
                    {
                        opc = alloc_opo(sc, car_x);
                        opc->v[1].p = p;
                        opc->v[0].fb = opt_b_s;
                        return(oo_set_type_1(opc, 2, 1, OO_P));
                    }
                    return(return_false(sc, car_x, __func__, __LINE__));
                }

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x18(%rsp)
movq %rsi, 0x10(%rsp)
movq 0x10(%rsp), %rax
movzbl (%rax), %eax
cmpl $0xa, %eax
je 0xf8d26
movq 0x10(%rsp), %rdi
callq 0x9c50
testb $0x1, %al
jne 0xf8cc3
movb $0x0, 0x27(%rsp)
jmp 0xf8dae
movq 0x18(%rsp), %rdi
callq 0xe15e0
movq %rax, 0x8(%rsp)
movq 0x10(%rsp), %rdx
movq 0x18(%rsp), %rax
movq 0x120(%rax), %rsi
leaq 0x1436(%rip), %rcx      # 0xfa120
leaq 0x141f(%rip), %rax      # 0xfa110
cmpq %rsi, %rdx
cmoveq %rax, %rcx
movq 0x8(%rsp), %rax
movq %rcx, (%rax)
movq 0x8(%rsp), %rdi
movl $0x1, %esi
leaq 0xf6622(%rip), %rdx     # 0x1ef333
movl $0xe7f8, %ecx           # imm = 0xE7F8
callq 0xe4820
andb $0x1, %al
movb %al, 0x27(%rsp)
jmp 0xf8dae
movq 0x18(%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0xefdf0
movq %rax, (%rsp)
cmpq $0x0, (%rsp)
je 0xf8da9
movq (%rsp), %rax
movq 0x10(%rax), %rdi
callq 0x9c50
testb $0x1, %al
jne 0xf8d53
jmp 0xf8da9
movq 0x18(%rsp), %rdi
callq 0xe15e0
movq %rax, 0x8(%rsp)
movq (%rsp), %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x8(%rsp), %rax
leaq 0x13b5(%rip), %rcx      # 0xfa130
movq %rcx, (%rax)
movq 0x8(%rsp), %rdi
movl $0x2, %esi
movl $0x1, %edx
xorl %ecx, %ecx
leaq 0xf659d(%rip), %r8      # 0x1ef333
movl $0xe801, %r9d           # imm = 0xE801
callq 0xe4950
andb $0x1, %al
movb %al, 0x27(%rsp)
jmp 0xf8dae
movb $0x0, 0x27(%rsp)
movb 0x27(%rsp), %al
andb $0x1, %al
addq $0x28, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/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:
subq $0x38, %rsp
movq %rdi, 0x28(%rsp)
movq %rsi, 0x20(%rsp)
movq %rdx, 0x18(%rsp)
movq %rcx, 0x10(%rsp)
movq %r8, 0x8(%rsp)
movq 0x18(%rsp), %rdi
callq 0xfb170
movq %rax, (%rsp)
cmpq $0x0, (%rsp)
je 0xf98af
movq 0x28(%rsp), %rdi
movq 0x8(%rsp), %rsi
callq 0xfc80
movq %rax, %rcx
movq 0x20(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x28(%rsp), %rdi
movq 0x10(%rsp), %rax
movq 0x10(%rax), %rsi
callq 0xe9db0
testb $0x1, %al
jne 0xf9866
jmp 0xf98ad
movq (%rsp), %rcx
movq 0x20(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x20(%rsp), %rax
leaq 0x1911(%rip), %rcx      # 0xfb190
movq %rcx, (%rax)
movq 0x20(%rsp), %rdi
movl $0x3, %esi
movl $0x1, %edx
xorl %ecx, %ecx
leaq 0xf5ac9(%rip), %r8      # 0x1ef363
movl $0xea0e, %r9d           # imm = 0xEA0E
callq 0xe4950
andb $0x1, %al
movb %al, 0x37(%rsp)
jmp 0xf98b4
jmp 0xf98af
movb $0x0, 0x37(%rsp)
movb 0x37(%rsp), %al
andb $0x1, %al
addq $0x38, %rsp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/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:
subq $0x18, %rsp
movq %rdi, 0x8(%rsp)
movq 0x8(%rsp), %rax
movq 0x38(%rax), %rax
movq 0x8(%rsp), %rdi
callq *%rax
testb $0x1, %al
jne 0xfa68f
jmp 0xfa6e1
movq 0x8(%rsp), %rax
movq 0x68(%rax), %rax
movl 0x2258(%rax), %ecx
addl $0x2, %ecx
movl %ecx, 0x2258(%rax)
movq 0x8(%rsp), %rax
movq 0x68(%rax), %rax
movq 0x8(%rsp), %rcx
movq 0x68(%rcx), %rcx
movslq 0x2258(%rcx), %rcx
movq 0x2260(%rax,%rcx,8), %rax
movq %rax, (%rsp)
movq (%rsp), %rax
movq (%rax), %rax
movq (%rsp), %rdi
callq *%rax
andb $0x1, %al
movb %al, 0x17(%rsp)
jmp 0xfa700
movq 0x8(%rsp), %rax
movq 0x20(%rax), %rax
movl %eax, %ecx
movq 0x8(%rsp), %rax
movq 0x68(%rax), %rax
movl %ecx, 0x2258(%rax)
movb $0x0, 0x17(%rsp)
movb 0x17(%rsp), %al
andb $0x1, %al
addq $0x18, %rsp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/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:
subq $0x18, %rsp
movq %rdi, 0x8(%rsp)
movq 0x8(%rsp), %rax
movq 0x38(%rax), %rax
movq 0x8(%rsp), %rdi
callq *%rax
testb $0x1, %al
jne 0xfa72f
jmp 0xfa750
movq 0x8(%rsp), %rax
movq 0x20(%rax), %rax
movl %eax, %ecx
movq 0x8(%rsp), %rax
movq 0x68(%rax), %rax
movl %ecx, 0x2258(%rax)
movb $0x1, 0x17(%rsp)
jmp 0xfa7a0
movq 0x8(%rsp), %rax
movq 0x68(%rax), %rax
movl 0x2258(%rax), %ecx
addl $0x2, %ecx
movl %ecx, 0x2258(%rax)
movq 0x8(%rsp), %rax
movq 0x68(%rax), %rax
movq 0x8(%rsp), %rcx
movq 0x68(%rcx), %rcx
movslq 0x2258(%rcx), %rcx
movq 0x2260(%rax,%rcx,8), %rax
movq %rax, (%rsp)
movq (%rsp), %rax
movq (%rax), %rax
movq (%rsp), %rdi
callq *%rax
andb $0x1, %al
movb %al, 0x17(%rsp)
movb 0x17(%rsp), %al
andb $0x1, %al
addq $0x18, %rsp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/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:
subq $0x28, %rsp
movq %rdi, 0x18(%rsp)
movq 0x18(%rsp), %rax
movq 0x68(%rax), %rax
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
movq 0x8(%rsp), %rdx
movl 0x2258(%rdx), %ecx
addl $0x1, %ecx
movl %ecx, 0x2258(%rdx)
movslq %ecx, %rcx
movq 0x2260(%rax,%rcx,8), %rax
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rsp), %rdi
callq *%rax
testb $0x1, %al
jne 0xfa805
jmp 0xfa845
movq 0x8(%rsp), %rax
movq 0x8(%rsp), %rdx
movl 0x2258(%rdx), %ecx
addl $0x1, %ecx
movl %ecx, 0x2258(%rdx)
movslq %ecx, %rcx
movq 0x2260(%rax,%rcx,8), %rax
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rsp), %rdi
callq *%rax
andb $0x1, %al
movb %al, 0x27(%rsp)
jmp 0xfa860
movq 0x18(%rsp), %rax
movq 0x8(%rax), %rax
movl %eax, %ecx
movq 0x8(%rsp), %rax
movl %ecx, 0x2258(%rax)
movb $0x0, 0x27(%rsp)
movb 0x27(%rsp), %al
andb $0x1, %al
addq $0x28, %rsp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/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:
subq $0x18, %rsp
movq %rdi, 0x8(%rsp)
movq 0x8(%rsp), %rax
movq 0x68(%rax), %rax
movq 0x8(%rsp), %rcx
movq 0x68(%rcx), %rdx
movl 0x2258(%rdx), %ecx
addl $0x1, %ecx
movl %ecx, 0x2258(%rdx)
movslq %ecx, %rcx
movq 0x2260(%rax,%rcx,8), %rax
movq %rax, (%rsp)
movq (%rsp), %rax
movq (%rax), %rax
movq (%rsp), %rdi
callq *%rax
testb $0x1, %al
jne 0xfa8bc
jmp 0xfa8dd
movq 0x8(%rsp), %rax
movq 0x8(%rax), %rax
movl %eax, %ecx
movq 0x8(%rsp), %rax
movq 0x68(%rax), %rax
movl %ecx, 0x2258(%rax)
movb $0x1, 0x17(%rsp)
jmp 0xfa920
movq 0x8(%rsp), %rax
movq 0x68(%rax), %rax
movq 0x8(%rsp), %rcx
movq 0x68(%rcx), %rdx
movl 0x2258(%rdx), %ecx
addl $0x1, %ecx
movl %ecx, 0x2258(%rdx)
movslq %ecx, %rcx
movq 0x2260(%rax,%rcx,8), %rax
movq %rax, (%rsp)
movq (%rsp), %rax
movq (%rax), %rax
movq (%rsp), %rdi
callq *%rax
andb $0x1, %al
movb %al, 0x17(%rsp)
movb 0x17(%rsp), %al
andb $0x1, %al
addq $0x18, %rsp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/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:
subq $0x28, %rsp
movq %rdi, 0x18(%rsp)
movl $0x0, 0x14(%rsp)
movslq 0x14(%rsp), %rax
movq 0x18(%rsp), %rcx
cmpq 0x8(%rcx), %rax
jge 0xfa9c8
movq 0x18(%rsp), %rax
movq 0x68(%rax), %rax
movq 0x18(%rsp), %rcx
movq 0x68(%rcx), %rdx
movl 0x2258(%rdx), %ecx
addl $0x1, %ecx
movl %ecx, 0x2258(%rdx)
movslq %ecx, %rcx
movq 0x2260(%rax,%rcx,8), %rax
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
movq (%rax), %rax
movq 0x8(%rsp), %rdi
callq *%rax
testb $0x1, %al
jne 0xfa9b6
movq 0x18(%rsp), %rax
movq 0x10(%rax), %rax
movl %eax, %ecx
movq 0x18(%rsp), %rax
movq 0x68(%rax), %rax
movl %ecx, 0x2258(%rax)
movb $0x0, 0x27(%rsp)
jmp 0xfa9cd
jmp 0xfa9b8
movl 0x14(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x14(%rsp)
jmp 0xfa941
movb $0x1, 0x27(%rsp)
movb 0x27(%rsp), %al
andb $0x1, %al
addq $0x28, %rsp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/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:
subq $0x28, %rsp
movq %rdi, 0x18(%rsp)
movl $0x0, 0x14(%rsp)
movslq 0x14(%rsp), %rax
movq 0x18(%rsp), %rcx
cmpq 0x8(%rcx), %rax
jge 0xfaa7a
movq 0x18(%rsp), %rax
movq 0x68(%rax), %rax
movq 0x18(%rsp), %rcx
movq 0x68(%rcx), %rdx
movl 0x2258(%rdx), %ecx
addl $0x1, %ecx
movl %ecx, 0x2258(%rdx)
movslq %ecx, %rcx
movq 0x2260(%rax,%rcx,8), %rax
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
movq (%rax), %rax
movq 0x8(%rsp), %rdi
callq *%rax
testb $0x1, %al
jne 0xfaa47
jmp 0xfaa68
movq 0x18(%rsp), %rax
movq 0x10(%rax), %rax
movl %eax, %ecx
movq 0x18(%rsp), %rax
movq 0x68(%rax), %rax
movl %ecx, 0x2258(%rax)
movb $0x1, 0x27(%rsp)
jmp 0xfaa7f
jmp 0xfaa6a
movl 0x14(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x14(%rsp)
jmp 0xfa9f1
movb $0x0, 0x27(%rsp)
movb 0x27(%rsp), %al
andb $0x1, %al
addq $0x28, %rsp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: modulo_i_ii_direct
static s7_int modulo_i_ii_direct(s7_int i1, s7_int i2)
    {
        /* i2 > 1 */
        s7_int z;
        z = i1 % i2;
        if (z < 0)
            return(z + i2);
        return(z);
    }

// Assembly:
movq %rdi, -0x10(%rsp)
movq %rsi, -0x18(%rsp)
movq -0x10(%rsp), %rax
cqto
idivq -0x18(%rsp)
movq %rdx, -0x20(%rsp)
cmpq $0x0, -0x20(%rsp)
jge 0xfab14
movq -0x20(%rsp), %rax
addq -0x18(%rsp), %rax
movq %rax, -0x8(%rsp)
jmp 0xfab1e
movq -0x20(%rsp), %rax
movq %rax, -0x8(%rsp)
movq -0x8(%rsp), %rax
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/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:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
movq 0x30(%rsp), %rax
movq 0x68(%rax), %rax
movq %rax, 0x18(%rsp)
movq 0x18(%rsp), %rax
movq 0x18(%rsp), %rdx
movl 0x2258(%rdx), %ecx
addl $0x1, %ecx
movl %ecx, 0x2258(%rdx)
movslq %ecx, %rcx
movq 0x2260(%rax,%rcx,8), %rax
movq %rax, 0x28(%rsp)
movq 0x28(%rsp), %rax
movq (%rax), %rax
movq 0x28(%rsp), %rdi
callq *%rax
movq %rax, 0x20(%rsp)
movq 0x18(%rsp), %rax
movq 0x18(%rsp), %rdx
movl 0x2258(%rdx), %ecx
addl $0x1, %ecx
movl %ecx, 0x2258(%rdx)
movslq %ecx, %rcx
movq 0x2260(%rax,%rcx,8), %rax
movq %rax, 0x28(%rsp)
movq 0x30(%rsp), %rax
movq 0x18(%rax), %rax
movq %rax, 0x10(%rsp)
movq 0x20(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x28(%rsp), %rax
movq (%rax), %rax
movq 0x28(%rsp), %rdi
callq *%rax
movq 0x8(%rsp), %rdi
movq %rax, %rsi
movq 0x10(%rsp), %rax
callq *%rax
andb $0x1, %al
addq $0x38, %rsp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/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:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
movq 0x30(%rsp), %rax
movq 0x68(%rax), %rax
movq %rax, 0x18(%rsp)
movq 0x18(%rsp), %rax
movq 0x18(%rsp), %rdx
movl 0x2258(%rdx), %ecx
addl $0x1, %ecx
movl %ecx, 0x2258(%rdx)
movslq %ecx, %rcx
movq 0x2260(%rax,%rcx,8), %rax
movq %rax, 0x28(%rsp)
movq 0x28(%rsp), %rax
movq (%rax), %rax
movq 0x28(%rsp), %rdi
callq *%rax
movsd %xmm0, 0x20(%rsp)
movq 0x18(%rsp), %rax
movq 0x18(%rsp), %rdx
movl 0x2258(%rdx), %ecx
addl $0x1, %ecx
movl %ecx, 0x2258(%rdx)
movslq %ecx, %rcx
movq 0x2260(%rax,%rcx,8), %rax
movq %rax, 0x28(%rsp)
movq 0x30(%rsp), %rax
movq 0x18(%rax), %rax
movq %rax, 0x8(%rsp)
movsd 0x20(%rsp), %xmm0
movsd %xmm0, 0x10(%rsp)
movq 0x28(%rsp), %rax
movq (%rax), %rax
movq 0x28(%rsp), %rdi
callq *%rax
movq 0x8(%rsp), %rax
movaps %xmm0, %xmm1
movsd 0x10(%rsp), %xmm0
callq *%rax
andb $0x1, %al
addq $0x38, %rsp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: b_pp_sf_combinable
static bool b_pp_sf_combinable(s7_scheme *sc, opt_info *opc, bool bpf_case)
                {
                    if ((sc->pc > 1) &&
                            (opc == sc->opts[sc->pc - 2]))
                    {
                        opt_info *o1;
                        o1 = sc->opts[sc->pc - 1];
                        if (o1->v[0].fp == opt_p_p_s)
                        {
                            opc->v[2].p = o1->v[1].p;
                            opc->v[4].p_p_f = o1->v[2].p_p_f;
                            opc->v[0].fb = (bpf_case) ? opt_b_pp_sfo : ((opc->v[3].b_7pp_f == s7_is_equal) ? opt_is_equal_sfo : opt_b_7pp_sfo);
                            backup_pc(sc);
                            return(oo_set_type_2(opc, 5, 1, 2, OO_P, OO_P));
                        }
                    }
                    return(return_false(sc, NULL, __func__, __LINE__));
                }

// Assembly:
subq $0x48, %rsp
movb %dl, %al
movq %rdi, 0x38(%rsp)
movq %rsi, 0x30(%rsp)
andb $0x1, %al
movb %al, 0x2f(%rsp)
movq 0x38(%rsp), %rax
cmpl $0x1, 0x2258(%rax)
jle 0xfb659
movq 0x30(%rsp), %rax
movq 0x38(%rsp), %rcx
movq 0x38(%rsp), %rdx
movl 0x2258(%rdx), %edx
subl $0x2, %edx
movslq %edx, %rdx
cmpq 0x2260(%rcx,%rdx,8), %rax
jne 0xfb659
movq 0x38(%rsp), %rax
movq 0x38(%rsp), %rcx
movl 0x2258(%rcx), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movq 0x2260(%rax,%rcx,8), %rax
movq %rax, 0x20(%rsp)
movq 0x20(%rsp), %rax
leaq 0x640(%rip), %rcx       # 0xfbbd0
cmpq %rcx, (%rax)
jne 0xfb657
movq 0x20(%rsp), %rax
movq 0x8(%rax), %rcx
movq 0x30(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rcx
movq 0x30(%rsp), %rax
movq %rcx, 0x20(%rax)
testb $0x1, 0x2f(%rsp)
je 0xfb5d2
leaq 0x635(%rip), %rax       # 0xfbc00
movq %rax, 0x18(%rsp)
jmp 0xfb5fc
movq 0x30(%rsp), %rax
movq 0x18(%rax), %rdx
leaq -0xcbe72(%rip), %rsi    # 0x2f770
leaq 0x6e7(%rip), %rax       # 0xfbcd0
leaq 0x670(%rip), %rcx       # 0xfbc60
cmpq %rsi, %rdx
cmoveq %rcx, %rax
movq %rax, 0x18(%rsp)
movq 0x18(%rsp), %rcx
movq 0x30(%rsp), %rax
movq %rcx, (%rax)
movq 0x38(%rsp), %rax
movl 0x2258(%rax), %ecx
addl $-0x1, %ecx
movl %ecx, 0x2258(%rax)
movq 0x30(%rsp), %rdi
movl $0x5, %esi
movl $0x1, %edx
movl $0x2, %ecx
xorl %r9d, %r9d
leaq 0xf3d40(%rip), %rax     # 0x1ef37b
movl %r9d, %r8d
movq %rax, (%rsp)
movl $0xe978, 0x8(%rsp)      # imm = 0xE978
callq 0xe54b0
andb $0x1, %al
movb %al, 0x47(%rsp)
jmp 0xfb65e
jmp 0xfb659
movb $0x0, 0x47(%rsp)
movb 0x47(%rsp), %al
andb $0x1, %al
addq $0x48, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: b_pp_ff_combinable
static bool b_pp_ff_combinable(s7_scheme *sc, opt_info *opc, bool bpf_case)
                {
                    if ((sc->pc > 2) &&
                            (opc == sc->opts[sc->pc - 3]))
                    {
                        opt_info *o1, *o2;
                        o1 = sc->opts[sc->pc - 2];
                        o2 = sc->opts[sc->pc - 1];
                        if ((o1->v[0].fp == opt_p_p_s) &&
                                (o2->v[0].fp == opt_p_p_s))
                        {
                            opc->v[1].p = o1->v[1].p;
                            opc->v[4].p_p_f = o1->v[2].p_p_f;
                            opc->v[2].p = o2->v[1].p;
                            opc->v[5].p_p_f = o2->v[2].p_p_f;
                            opc->v[0].fb = (bpf_case) ? opt_b_pp_ffo : opt_b_7pp_ffo;
                            sc->pc -= 2;
                            return(oo_set_type_2(opc, 6, 1, 2, OO_P, OO_P));
                        }
                    }
                    return(return_false(sc, NULL, __func__, __LINE__));
                }

// Assembly:
subq $0x48, %rsp
movb %dl, %al
movq %rdi, 0x38(%rsp)
movq %rsi, 0x30(%rsp)
andb $0x1, %al
movb %al, 0x2f(%rsp)
movq 0x38(%rsp), %rax
cmpl $0x2, 0x2258(%rax)
jle 0xfba0a
movq 0x30(%rsp), %rax
movq 0x38(%rsp), %rcx
movq 0x38(%rsp), %rdx
movl 0x2258(%rdx), %edx
subl $0x3, %edx
movslq %edx, %rdx
cmpq 0x2260(%rcx,%rdx,8), %rax
jne 0xfba0a
movq 0x38(%rsp), %rax
movq 0x38(%rsp), %rcx
movl 0x2258(%rcx), %ecx
subl $0x2, %ecx
movslq %ecx, %rcx
movq 0x2260(%rax,%rcx,8), %rax
movq %rax, 0x20(%rsp)
movq 0x38(%rsp), %rax
movq 0x38(%rsp), %rcx
movl 0x2258(%rcx), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movq 0x2260(%rax,%rcx,8), %rax
movq %rax, 0x18(%rsp)
movq 0x20(%rsp), %rax
leaq 0x29d(%rip), %rcx       # 0xfbbd0
cmpq %rcx, (%rax)
jne 0xfba08
movq 0x18(%rsp), %rax
leaq 0x288(%rip), %rcx       # 0xfbbd0
cmpq %rcx, (%rax)
jne 0xfba08
movq 0x20(%rsp), %rax
movq 0x8(%rax), %rcx
movq 0x30(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rcx
movq 0x30(%rsp), %rax
movq %rcx, 0x20(%rax)
movq 0x18(%rsp), %rax
movq 0x8(%rax), %rcx
movq 0x30(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x18(%rsp), %rax
movq 0x10(%rax), %rcx
movq 0x30(%rsp), %rax
movq %rcx, 0x28(%rax)
movb 0x2f(%rsp), %dl
leaq 0x42c(%rip), %rcx       # 0xfbdd0
leaq 0x3a5(%rip), %rax       # 0xfbd50
testb $0x1, %dl
cmovneq %rax, %rcx
movq 0x30(%rsp), %rax
movq %rcx, (%rax)
movq 0x38(%rsp), %rax
movl 0x2258(%rax), %ecx
subl $0x2, %ecx
movl %ecx, 0x2258(%rax)
movq 0x30(%rsp), %rdi
movl $0x6, %esi
movl $0x1, %edx
movl $0x2, %ecx
xorl %r9d, %r9d
leaq 0xf39a2(%rip), %rax     # 0x1ef38e
movl %r9d, %r8d
movq %rax, (%rsp)
movl $0xe99f, 0x8(%rsp)      # imm = 0xE99F
callq 0xe54b0
andb $0x1, %al
movb %al, 0x47(%rsp)
jmp 0xfba0f
jmp 0xfba0a
movb $0x0, 0x47(%rsp)
movb 0x47(%rsp), %al
andb $0x1, %al
addq $0x48, %rsp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/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:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
movq 0x30(%rsp), %rax
movq 0x68(%rax), %rax
movq %rax, 0x18(%rsp)
movq 0x18(%rsp), %rax
movq 0x18(%rsp), %rdx
movl 0x2258(%rdx), %ecx
addl $0x1, %ecx
movl %ecx, 0x2258(%rdx)
movslq %ecx, %rcx
movq 0x2260(%rax,%rcx,8), %rax
movq %rax, 0x28(%rsp)
movq 0x28(%rsp), %rax
movq (%rax), %rax
movq 0x28(%rsp), %rdi
callq *%rax
movq %rax, 0x20(%rsp)
movq 0x18(%rsp), %rax
movq 0x18(%rsp), %rdx
movl 0x2258(%rdx), %ecx
addl $0x1, %ecx
movl %ecx, 0x2258(%rdx)
movslq %ecx, %rcx
movq 0x2260(%rax,%rcx,8), %rax
movq %rax, 0x28(%rsp)
movq 0x30(%rsp), %rax
movq 0x18(%rax), %rax
movq %rax, 0x10(%rsp)
movq 0x18(%rsp), %rax
movq %rax, (%rsp)
movq 0x20(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x28(%rsp), %rax
movq (%rax), %rax
movq 0x28(%rsp), %rdi
callq *%rax
movq (%rsp), %rdi
movq 0x8(%rsp), %rsi
movq %rax, %rdx
movq 0x10(%rsp), %rax
callq *%rax
andb $0x1, %al
addq $0x38, %rsp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/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:
subq $0x18, %rsp
movq %rdi, 0x8(%rsp)
movq 0x8(%rsp), %rax
movq 0x68(%rax), %rax
movq 0x8(%rsp), %rcx
movq 0x68(%rcx), %rdx
movl 0x2258(%rdx), %ecx
addl $0x1, %ecx
movl %ecx, 0x2258(%rdx)
movslq %ecx, %rcx
movq 0x2260(%rax,%rcx,8), %rax
movq %rax, (%rsp)
movq (%rsp), %rax
movq (%rax), %rax
movq (%rsp), %rdi
callq *%rax
testb $0x1, %al
jne 0xfbeac
jmp 0xfbebd
movq 0x8(%rsp), %rdi
callq 0xfc0d0
movq %rax, 0x10(%rsp)
jmp 0xfbeec
movq 0x8(%rsp), %rax
movq 0x18(%rax), %rax
movl %eax, %ecx
movq 0x8(%rsp), %rax
movq 0x68(%rax), %rax
movl %ecx, 0x2258(%rax)
movq 0x8(%rsp), %rax
movq 0x68(%rax), %rax
movq 0x130(%rax), %rax
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rax
addq $0x18, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/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:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq 0x10(%rsp), %rax
movq 0x68(%rax), %rax
movq 0x130(%rax), %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x10(%rsp), %rax
movq 0x68(%rax), %rax
movslq 0x2258(%rax), %rax
movq 0x10(%rsp), %rcx
cmpq 0x8(%rcx), %rax
jge 0xfbf7f
movq 0x10(%rsp), %rax
movq 0x68(%rax), %rax
movq 0x10(%rsp), %rcx
movq 0x68(%rcx), %rdx
movl 0x2258(%rdx), %ecx
addl $0x1, %ecx
movl %ecx, 0x2258(%rdx)
movslq %ecx, %rcx
movq 0x2260(%rax,%rcx,8), %rax
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
movq (%rax), %rax
movq 0x8(%rsp), %rdi
callq *%rax
jmp 0xfbf22
movq 0x10(%rsp), %rax
movq 0x10(%rax), %rax
addq $0x18, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/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:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq 0x10(%rsp), %rax
movq 0x68(%rax), %rax
movq 0x130(%rax), %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x10(%rsp), %rax
movq 0x68(%rax), %rax
movq 0x10(%rsp), %rcx
movq 0x68(%rcx), %rdx
movl 0x2258(%rdx), %ecx
addl $0x1, %ecx
movl %ecx, 0x2258(%rdx)
movslq %ecx, %rcx
movq 0x2260(%rax,%rcx,8), %rax
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
movq (%rax), %rax
movq 0x8(%rsp), %rdi
callq *%rax
movq 0x10(%rsp), %rax
movq 0x10(%rax), %rax
addq $0x18, %rsp
retq
// File: /workspace/github_c_makefile_star2_O0/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:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq 0x20(%rsp), %rax
movq 0x68(%rax), %rax
movq %rax, (%rsp)
movq (%rsp), %rax
movl 0x2258(%rax), %ecx
addl $0x2, %ecx
movl %ecx, 0x2258(%rax)
movq (%rsp), %rax
movq (%rsp), %rcx
movslq 0x2258(%rcx), %rcx
movq 0x2260(%rax,%rcx,8), %rax
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rsp), %rdi
callq *%rax
testb $0x1, %al
jne 0xfc06d
movq 0x20(%rsp), %rax
movq 0x18(%rax), %rax
movl %eax, %ecx
movq (%rsp), %rax
movl %ecx, 0x2258(%rax)
movq (%rsp), %rax
movq (%rsp), %rdx
movl 0x2258(%rdx), %ecx
addl $0x1, %ecx
movl %ecx, 0x2258(%rdx)
movslq %ecx, %rcx
movq 0x2260(%rax,%rcx,8), %rax
movq %rax, 0x18(%rsp)
movq 0x18(%rsp), %rax
movq (%rax), %rax
movq 0x18(%rsp), %rdi
callq *%rax
movq %rax, 0x8(%rsp)
movq 0x20(%rsp), %rax
movq 0x8(%rax), %rax
movl %eax, %ecx
movq (%rsp), %rax
movl %ecx, 0x2258(%rax)
movq 0x8(%rsp), %rax
addq $0x28, %rsp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/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:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq 0x20(%rsp), %rax
movq 0x68(%rax), %rax
movq %rax, (%rsp)
movq 0x20(%rsp), %rax
movq 0x28(%rax), %rax
movq %rax, 0x18(%rsp)
movq 0x20(%rsp), %rax
movq 0x8(%rax), %rax
subq $0x1, %rax
movl %eax, 0x8(%rsp)
movl $0x0, 0xc(%rsp)
movl 0xc(%rsp), %eax
cmpl 0x8(%rsp), %eax
jge 0xfc15a
movq (%rsp), %rax
movq (%rsp), %rdx
movl 0x2258(%rdx), %ecx
addl $0x1, %ecx
movl %ecx, 0x2258(%rdx)
movslq %ecx, %rcx
movq 0x2260(%rax,%rcx,8), %rax
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rsp), %rdi
callq *%rax
movl 0xc(%rsp), %eax
addl $0x1, %eax
movl %eax, 0xc(%rsp)
jmp 0xfc10d
movq (%rsp), %rax
movq (%rsp), %rdx
movl 0x2258(%rdx), %ecx
addl $0x1, %ecx
movl %ecx, 0x2258(%rdx)
movslq %ecx, %rcx
movq 0x2260(%rax,%rcx,8), %rax
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rsp), %rdi
callq *%rax
movq %rax, %rcx
movq 0x18(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x18(%rsp), %rax
movq 0x8(%rax), %rax
movl %eax, %ecx
movq (%rsp), %rax
movl %ecx, 0x2258(%rax)
movq 0x18(%rsp), %rax
movq 0x10(%rax), %rax
addq $0x28, %rsp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/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:
subq $0x28, %rsp
movq %rdi, 0x18(%rsp)
movq 0x18(%rsp), %rax
movq 0x68(%rax), %rax
movq 0x18(%rsp), %rcx
movq 0x68(%rcx), %rdx
movl 0x2258(%rdx), %ecx
addl $0x1, %ecx
movl %ecx, 0x2258(%rdx)
movslq %ecx, %rcx
movq 0x2260(%rax,%rcx,8), %rax
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rsp), %rdi
callq *%rax
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
movq 0x18(%rsp), %rcx
movq 0x68(%rcx), %rcx
cmpq 0x120(%rcx), %rax
je 0xfc24b
movq 0x18(%rsp), %rax
movq 0x8(%rax), %rax
movl %eax, %ecx
movq 0x18(%rsp), %rax
movq 0x68(%rax), %rax
movl %ecx, 0x2258(%rax)
movq 0x8(%rsp), %rax
movq %rax, 0x20(%rsp)
jmp 0xfc290
movq 0x18(%rsp), %rax
movq 0x68(%rax), %rax
movq 0x18(%rsp), %rcx
movq 0x68(%rcx), %rdx
movl 0x2258(%rdx), %ecx
addl $0x1, %ecx
movl %ecx, 0x2258(%rdx)
movslq %ecx, %rcx
movq 0x2260(%rax,%rcx,8), %rax
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rsp), %rdi
callq *%rax
movq %rax, 0x20(%rsp)
movq 0x20(%rsp), %rax
addq $0x28, %rsp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/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:
subq $0x18, %rsp
movq %rdi, 0x8(%rsp)
movq 0x8(%rsp), %rax
movq 0x68(%rax), %rax
movq 0x8(%rsp), %rcx
movq 0x68(%rcx), %rdx
movl 0x2258(%rdx), %ecx
addl $0x1, %ecx
movl %ecx, 0x2258(%rdx)
movslq %ecx, %rcx
movq 0x2260(%rax,%rcx,8), %rax
movq %rax, (%rsp)
movq (%rsp), %rax
movq (%rax), %rax
movq (%rsp), %rdi
callq *%rax
movq 0x8(%rsp), %rcx
movq 0x68(%rcx), %rcx
cmpq 0x120(%rcx), %rax
jne 0xfc329
movq 0x8(%rsp), %rax
movq 0x8(%rax), %rax
movl %eax, %ecx
movq 0x8(%rsp), %rax
movq 0x68(%rax), %rax
movl %ecx, 0x2258(%rax)
movq 0x8(%rsp), %rax
movq 0x68(%rax), %rax
movq 0x120(%rax), %rax
movq %rax, 0x10(%rsp)
jmp 0xfc36b
movq 0x8(%rsp), %rax
movq 0x68(%rax), %rax
movq 0x8(%rsp), %rcx
movq 0x68(%rcx), %rdx
movl 0x2258(%rdx), %ecx
addl $0x1, %ecx
movl %ecx, 0x2258(%rdx)
movslq %ecx, %rcx
movq 0x2260(%rax,%rcx,8), %rax
movq %rax, (%rsp)
movq (%rsp), %rax
movq (%rax), %rax
movq (%rsp), %rdi
callq *%rax
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rax
addq $0x18, %rsp
retq
nopw %cs:(%rax,%rax)