LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: fx_subtract_U1
static s7_pointer fx_subtract_U1(s7_scheme *sc, s7_pointer arg)
                {
                    s7_pointer x;
                    check_outer_next_let_slot(sc, __func__, arg, cadr(arg));
                    x = slot_value(next_slot(let_slots(outlet(sc->envir))));
                    if (is_t_integer(x))
                        return(make_integer(sc, integer(x) - 1));
                    return(minus_c1(sc, x));
                }

// Assembly:
subq $0x48, %rsp
movq %rdi, 0x38(%rsp)
movq %rsi, 0x30(%rsp)
movq 0x38(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq 0x18(%rax), %rax
movq 0x10(%rax), %rax
movq %rax, 0x28(%rsp)
movq 0x28(%rsp), %rax
movzbl (%rax), %eax
cmpl $0xb, %eax
jne 0x18b411
movq 0x28(%rsp), %rax
movq 0x8(%rax), %rax
subq $0x1, %rax
movq %rax, 0x20(%rsp)
movq 0x20(%rsp), %rax
andq $-0x800, %rax           # imm = 0xF800
cmpq $0x0, %rax
jne 0x18b386
movq 0x20(%rsp), %rcx
leaq 0x8b104(%rip), %rax     # 0x216480
movq (%rax,%rcx,8), %rax
movq %rax, (%rsp)
jmp 0x18b3fc
jmp 0x18b388
movq 0x38(%rsp), %rax
movq 0x90(%rax), %rax
movq 0x38(%rsp), %rcx
cmpq 0x98(%rcx), %rax
ja 0x18b3ac
movq 0x38(%rsp), %rdi
callq 0xc670
movq 0x38(%rsp), %rcx
movq 0x90(%rcx), %rax
movq %rax, %rdx
addq $-0x8, %rdx
movq %rdx, 0x90(%rcx)
movq -0x8(%rax), %rax
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rax
movq $0xb, (%rax)
movq 0x20(%rsp), %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x10(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
movq %rax, (%rsp)
movq (%rsp), %rax
movq %rax, 0x18(%rsp)
movq 0x18(%rsp), %rax
movq %rax, 0x40(%rsp)
jmp 0x18b425
movq 0x38(%rsp), %rdi
movq 0x28(%rsp), %rsi
callq 0x111230
movq %rax, 0x40(%rsp)
movq 0x40(%rsp), %rax
addq $0x48, %rsp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: fx_add_U1
static s7_pointer fx_add_U1(s7_scheme *sc, s7_pointer arg) /* sub_t1 was not useful */
                {
                    s7_pointer x;
                    check_outer_next_let_slot(sc, __func__, arg, cadr(arg));
                    x = slot_value(next_slot(let_slots(outlet(sc->envir))));
                    if (is_t_integer(x))
                        return(make_integer(sc, integer(x) + 1));
                    return(g_add_x1_1(sc, x, cdr(arg)));
                }

// Assembly:
subq $0x48, %rsp
movq %rdi, 0x38(%rsp)
movq %rsi, 0x30(%rsp)
movq 0x38(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq 0x18(%rax), %rax
movq 0x10(%rax), %rax
movq %rax, 0x28(%rsp)
movq 0x28(%rsp), %rax
movzbl (%rax), %eax
cmpl $0xb, %eax
jne 0x18b531
movq 0x28(%rsp), %rax
movq 0x8(%rax), %rax
addq $0x1, %rax
movq %rax, 0x20(%rsp)
movq 0x20(%rsp), %rax
andq $-0x800, %rax           # imm = 0xF800
cmpq $0x0, %rax
jne 0x18b4a6
movq 0x20(%rsp), %rcx
leaq 0x8afe4(%rip), %rax     # 0x216480
movq (%rax,%rcx,8), %rax
movq %rax, (%rsp)
jmp 0x18b51c
jmp 0x18b4a8
movq 0x38(%rsp), %rax
movq 0x90(%rax), %rax
movq 0x38(%rsp), %rcx
cmpq 0x98(%rcx), %rax
ja 0x18b4cc
movq 0x38(%rsp), %rdi
callq 0xc670
movq 0x38(%rsp), %rcx
movq 0x90(%rcx), %rax
movq %rax, %rdx
addq $-0x8, %rdx
movq %rdx, 0x90(%rcx)
movq -0x8(%rax), %rax
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rax
movq $0xb, (%rax)
movq 0x20(%rsp), %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x10(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
movq %rax, (%rsp)
movq (%rsp), %rax
movq %rax, 0x18(%rsp)
movq 0x18(%rsp), %rax
movq %rax, 0x40(%rsp)
jmp 0x18b54e
movq 0x38(%rsp), %rdi
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rax
movq 0x10(%rax), %rdx
callq 0x110740
movq %rax, 0x40(%rsp)
movq 0x40(%rsp), %rax
addq $0x48, %rsp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: fx_num_eq_tT
static s7_pointer fx_num_eq_tT(s7_scheme *sc, s7_pointer arg)
                {
                    s7_pointer x, y;
                    check_let_slots(sc, __func__, arg, cadr(arg));
                    check_outer_let_slots(sc, __func__, arg, caddr(arg));
                    x = slot_value(let_slots(sc->envir));
                    y = slot_value(let_slots(outlet(sc->envir)));
                    if ((is_t_integer(x)) && (is_t_integer(y)))
                        return(make_boolean(sc, integer(x) == integer(y)));
                    return(num_eq_p_pp(sc, x, y));
                }

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x28(%rsp)
movq %rsi, 0x20(%rsp)
movq 0x28(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rax
movq %rax, 0x18(%rsp)
movq 0x28(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
movq 0x18(%rsp), %rax
movzbl (%rax), %eax
cmpl $0xb, %eax
jne 0x18b5fc
movq 0x10(%rsp), %rax
movzbl (%rax), %eax
cmpl $0xb, %eax
jne 0x18b5fc
movq 0x18(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x10(%rsp), %rcx
cmpq 0x8(%rcx), %rax
jne 0x18b5df
movq 0x28(%rsp), %rax
movq 0x118(%rax), %rax
movq %rax, 0x8(%rsp)
jmp 0x18b5f0
movq 0x28(%rsp), %rax
movq 0x120(%rax), %rax
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
movq %rax, 0x30(%rsp)
jmp 0x18b615
movq 0x28(%rsp), %rdi
movq 0x18(%rsp), %rsi
movq 0x10(%rsp), %rdx
callq 0xba5c0
movq %rax, 0x30(%rsp)
movq 0x30(%rsp), %rax
addq $0x38, %rsp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: fx_tree_out2
static bool fx_tree_out2(s7_scheme *sc, s7_pointer tree, s7_pointer v1, s7_pointer v2, s7_pointer v3, s7_pointer v4)
                {
                    s7_pointer p;
                    p = car(tree);
                    if ((is_pair(p)) && (is_pair(cdr(p))))
                    {
                        if ((c_callee(tree) == fx_c_st) &&
                                (cadr(p) != v1) && (cadr(p) != v2) && (cadr(p) != v3) && (cadr(p) != v4))
                        {
                            if (s7_p_pp_function(slot_value(global_slot(car(p)))))
                            {
                                set_direct_opt(p);
                                set_opt2_direct(cdr(p), (s7_pointer)(s7_p_pp_function(slot_value(global_slot(car(p))))));
                                return(with_c_call(tree, fx_c_Wt_direct));
                            }
                        }
                    }
                    return(false);
                }

// Assembly:
subq $0x48, %rsp
movq %rdi, 0x38(%rsp)
movq %rsi, 0x30(%rsp)
movq %rdx, 0x28(%rsp)
movq %rcx, 0x20(%rsp)
movq %r8, 0x18(%rsp)
movq %r9, 0x10(%rsp)
movq 0x30(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0x18b949
movq 0x8(%rsp), %rax
movq 0x10(%rax), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0x18b949
movq 0x30(%rsp), %rax
leaq -0x277c2(%rip), %rcx    # 0x1640b0
cmpq %rcx, 0x20(%rax)
jne 0x18b947
movq 0x8(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
cmpq 0x28(%rsp), %rax
je 0x18b947
movq 0x8(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
cmpq 0x20(%rsp), %rax
je 0x18b947
movq 0x8(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
cmpq 0x18(%rsp), %rax
je 0x18b947
movq 0x8(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
cmpq 0x10(%rsp), %rax
je 0x18b947
movq 0x8(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rdi
callq 0x102110
cmpq $0x0, %rax
je 0x18b945
movq 0x8(%rsp), %rax
movq (%rax), %rcx
orq $0x8000000, %rcx        # imm = 0x8000000
movq %rcx, (%rax)
movq 0x8(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rdi
callq 0x102110
movq %rax, %rcx
movq 0x8(%rsp), %rax
movq 0x10(%rax), %rax
movq %rcx, 0x20(%rax)
movq 0x30(%rsp), %rdi
leaq 0x28(%rip), %rsi        # 0x18b960
callq 0x15f030
andb $0x1, %al
movb %al, 0x47(%rsp)
jmp 0x18b94e
jmp 0x18b947
jmp 0x18b949
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: fx_c_Wt_direct
static s7_pointer fx_c_Wt_direct(s7_scheme *sc, s7_pointer arg)
                {
                    s7_pointer old_e, W;
                    old_e = sc->envir;
                    sc->envir = outlet(outlet(old_e));
                    W = lookup(sc, cadr(arg));
                    sc->envir = old_e;
                    return(((s7_p_pp_t)opt2_direct(cdr(arg)))(sc, W, slot_value(let_slots(sc->envir))));
                }

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
movq 0x20(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rcx
movq 0x20(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x20(%rsp), %rdi
movq 0x18(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rsi
callq 0xde990
movq %rax, 0x8(%rsp)
movq 0x10(%rsp), %rcx
movq 0x20(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x18(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x20(%rax), %rax
movq 0x20(%rsp), %rdi
movq 0x8(%rsp), %rsi
movq 0x20(%rsp), %rcx
movq 0x8(%rcx), %rcx
movq 0x8(%rcx), %rcx
movq 0x10(%rcx), %rdx
callq *%rax
addq $0x28, %rsp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: direct_assq
static bool direct_assq(s7_pointer symbol, s7_pointer symbols)
    { /* used only below in do_symbol_is_safe */
        s7_pointer x;
        for (x = symbols; is_pair(x); x = cdr(x))
            if (caar(x) == symbol)
                return(true);
        return(false);
    }

// Assembly:
movq %rdi, -0x10(%rsp)
movq %rsi, -0x18(%rsp)
movq -0x18(%rsp), %rax
movq %rax, -0x20(%rsp)
movq -0x20(%rsp), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0x18ba3e
movq -0x20(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
cmpq -0x10(%rsp), %rax
jne 0x18ba2c
movb $0x1, -0x1(%rsp)
jmp 0x18ba43
jmp 0x18ba2e
movq -0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x20(%rsp)
jmp 0x18ba04
movb $0x0, -0x1(%rsp)
movb -0x1(%rsp), %al
andb $0x1, %al
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: add_permanent_let_or_slot
static void add_permanent_let_or_slot(s7_scheme *sc, s7_pointer obj)
    {
        gc_obj *g;
        g = (gc_obj *)malloc(sizeof(gc_obj));
        g->p = obj;
        g->nxt = sc->permanent_lets;
        sc->permanent_lets = g;
    }

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq %rsi, 0x8(%rsp)
movl $0x10, %edi
callq 0x9480
movq %rax, (%rsp)
movq 0x8(%rsp), %rcx
movq (%rsp), %rax
movq %rcx, (%rax)
movq 0x10(%rsp), %rax
movq 0xc8(%rax), %rcx
movq (%rsp), %rax
movq %rcx, 0x8(%rax)
movq (%rsp), %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0xc8(%rax)
addq $0x18, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: make_closure
static s7_pointer make_closure(s7_scheme *sc, s7_pointer args, s7_pointer code, uint64_t type, int32_t arity)
    {
        /* this is called (almost?) every time a lambda form is evaluated, or during letrec, etc */
        s7_pointer x;
        new_cell(sc, x, (type | closure_bits(code)));
        closure_set_args(x, args);
        closure_set_body(x, code);
        if (is_pair(cdr(code))) set_closure_has_multiform(x); else set_closure_has_one_form(x);
        closure_set_let(x, sc->envir);
        closure_set_setter(x, sc->F);
        closure_set_arity(x, arity);
        sc->capture_let_counter++;
        return(x);
    }

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
movq %rsi, 0x28(%rsp)
movq %rdx, 0x20(%rsp)
movq %rcx, 0x18(%rsp)
movl %r8d, 0x14(%rsp)
movq 0x30(%rsp), %rax
movq 0x90(%rax), %rax
movq 0x30(%rsp), %rcx
cmpq 0x98(%rcx), %rax
ja 0x18d291
movq 0x30(%rsp), %rdi
callq 0xc670
movq 0x30(%rsp), %rcx
movq 0x90(%rcx), %rax
movq %rax, %rdx
addq $-0x8, %rdx
movq %rdx, 0x90(%rcx)
movq -0x8(%rax), %rax
movq %rax, 0x8(%rsp)
movq 0x18(%rsp), %rcx
movq 0x20(%rsp), %rdx
movabsq $0x12000000001000, %rax # imm = 0x12000000001000
andq (%rdx), %rax
orq %rax, %rcx
movq 0x8(%rsp), %rax
movq %rcx, (%rax)
movq 0x28(%rsp), %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x20(%rsp), %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0x18d317
movq 0x8(%rsp), %rax
movq (%rax), %rcx
orq $0x100, %rcx            # imm = 0x100
movq %rcx, (%rax)
jmp 0x18d329
movq 0x8(%rsp), %rax
movq (%rax), %rcx
orq $0x400, %rcx            # imm = 0x400
movq %rcx, (%rax)
movq 0x30(%rsp), %rax
movq 0x8(%rax), %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x18(%rax)
movq 0x30(%rsp), %rax
movq 0x120(%rax), %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x20(%rax)
movl 0x14(%rsp), %ecx
movq 0x8(%rsp), %rax
movl %ecx, 0x28(%rax)
movq 0x30(%rsp), %rax
movq 0x240(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x240(%rax)
movq 0x8(%rsp), %rax
addq $0x38, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: set_dilambda_opt
static void set_dilambda_opt(s7_scheme *sc, s7_pointer form, opcode_t opt, s7_pointer expr)
                {
                    s7_pointer func;
                    func = lookup_checked(sc, car(expr));
                    if ((is_closure(func)) &&
                            (is_closure(closure_setter(func))) &&
                            (is_safe_closure(closure_setter(func))))
                    {
                        s7_pointer setter;
                        setter = closure_setter(func);
                        pair_set_syntax_op(form, opt);
                        if ((!(is_let(closure_let(setter)))) ||
                                (!(is_funclet(closure_let(setter)))))
                            make_funclet(sc, setter, car(expr), closure_let(setter));
                    }
                }

// Assembly:
subq $0x48, %rsp
movq %rdi, 0x40(%rsp)
movq %rsi, 0x38(%rsp)
movq %rdx, 0x30(%rsp)
movq %rcx, 0x28(%rsp)
movq 0x40(%rsp), %rdi
movq 0x28(%rsp), %rax
movq 0x8(%rax), %rsi
callq 0xde990
movq %rax, 0x18(%rsp)
cmpq $0x0, 0x18(%rsp)
je 0x18d603
movq 0x18(%rsp), %rax
movq %rax, (%rsp)
jmp 0x18d61a
movq 0x40(%rsp), %rdi
movq 0x28(%rsp), %rax
movq 0x8(%rax), %rsi
callq 0xdead0
movq %rax, (%rsp)
movq (%rsp), %rax
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rax
movq %rax, 0x20(%rsp)
movq 0x20(%rsp), %rax
movzbl (%rax), %eax
cmpl $0x28, %eax
jne 0x18d6f6
movq 0x20(%rsp), %rax
movq 0x20(%rax), %rax
movzbl (%rax), %eax
cmpl $0x28, %eax
jne 0x18d6f6
movq 0x20(%rsp), %rax
movq 0x20(%rax), %rax
movzwl (%rax), %eax
andl $0x1000, %eax           # imm = 0x1000
cmpl $0x0, %eax
je 0x18d6f6
movq 0x20(%rsp), %rax
movq 0x20(%rax), %rax
movq %rax, 0x8(%rsp)
movq 0x30(%rsp), %rax
movw %ax, %cx
movq 0x38(%rsp), %rax
movw %cx, 0x4(%rax)
movq 0x38(%rsp), %rax
movq (%rax), %rcx
andq $-0x10000, %rcx         # imm = 0xFFFF0000
orq $0x201, %rcx            # imm = 0x201
movq 0x38(%rsp), %rax
movq %rcx, (%rax)
movq 0x8(%rsp), %rax
movq 0x18(%rax), %rax
movzbl (%rax), %eax
cmpl $0x1c, %eax
jne 0x18d6d3
movq 0x8(%rsp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
andq $0x20000000, %rax       # imm = 0x20000000
cmpq $0x0, %rax
jne 0x18d6f4
movq 0x40(%rsp), %rdi
movq 0x8(%rsp), %rsi
movq 0x28(%rsp), %rax
movq 0x8(%rax), %rdx
movq 0x8(%rsp), %rax
movq 0x18(%rax), %rcx
callq 0x18bcc0
jmp 0x18d6f6
addq $0x48, %rsp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: set_implicit_syntax
static goto_t set_implicit_syntax(s7_scheme *sc, s7_pointer cx)
                {
                    if (cx == slot_value(global_slot(sc->with_let_symbol)))
                    {
                        /* (set! (with-let a b) x), cx = with-let, sc->code = ((with-let a b) x)
                         *   a and x are in the current env, b is in a, we need to evaluate a and x, then
                         *   call (with-let a-value (set! b x-value))
                         */
                        sc->args = cdar(sc->code);
                        sc->code = cadr(sc->code);
                        push_stack(sc, OP_SET_WITH_LET_1, sc->args, sc->code);
                        sc->cur_op = optimize_op(sc->code);
                        return(goto_top_no_pop);
                    }
                    s7_error(sc, sc->syntax_error_symbol, set_elist_3(sc, no_setter_string, caar(sc->code), prepackaged_type_names[type(cx)]));
                    return(goto_top_no_pop);
                }

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x18(%rsp)
movq %rsi, 0x10(%rsp)
movq 0x10(%rsp), %rax
movq 0x18(%rsp), %rcx
movq 0x17e0(%rcx), %rcx
movq 0x10(%rcx), %rcx
cmpq 0x10(%rcx), %rax
jne 0x192742
movq 0x18(%rsp), %rax
movq (%rax), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rcx
movq 0x18(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x18(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rcx
movq 0x18(%rsp), %rax
movq %rcx, (%rax)
movq 0x18(%rsp), %rax
movq (%rax), %rcx
movq 0x18(%rsp), %rax
movq 0x50(%rax), %rax
movq %rcx, (%rax)
movq 0x18(%rsp), %rax
movq 0x8(%rax), %rcx
movq 0x18(%rsp), %rax
movq 0x50(%rax), %rax
movq %rcx, 0x8(%rax)
movq 0x18(%rsp), %rax
movq 0x10(%rax), %rcx
movq 0x18(%rsp), %rax
movq 0x50(%rax), %rax
movq %rcx, 0x10(%rax)
movq 0x18(%rsp), %rax
movq 0x50(%rax), %rax
movl $0x32c, %ecx            # imm = 0x32C
movq %rcx, 0x18(%rax)
movq 0x18(%rsp), %rax
movq 0x50(%rax), %rcx
addq $0x20, %rcx
movq %rcx, 0x50(%rax)
movq 0x18(%rsp), %rax
movq (%rax), %rax
movzwl 0x4(%rax), %eax
movl %eax, %ecx
movq 0x18(%rsp), %rax
movq %rcx, 0x18(%rax)
movl $0x9, 0x24(%rsp)
jmp 0x1927ab
movq 0x18(%rsp), %rax
movq %rax, (%rsp)
movq 0x18(%rsp), %rax
movq 0x1918(%rax), %rax
movq %rax, 0x8(%rsp)
movq 0x18(%rsp), %rdi
movq 0x927f8(%rip), %rsi     # 0x224f60
movq 0x18(%rsp), %rax
movq (%rax), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rdx
movq 0x10(%rsp), %rax
movzbl (%rax), %eax
movl %eax, %ecx
leaq 0x87e07(%rip), %rax     # 0x21a590
movq (%rax,%rcx,8), %rcx
callq 0xf240
movq (%rsp), %rdi
movq 0x8(%rsp), %rsi
movq %rax, %rdx
callq 0x2f940
movl $0x9, 0x24(%rsp)
movl 0x24(%rsp), %eax
addq $0x28, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: check_let_a_body
static void check_let_a_body(s7_scheme *sc, s7_pointer form)
                {
                    if (is_fxable(sc, cadr(sc->code)))
                    {
                        annotate_arg(sc, cdr(sc->code), set_plist_1(sc, caaar(sc->code))); /* was sc->envir) ? */
                        fx_tree(sc, cdr(sc->code), caaar(sc->code), NULL);
                        pair_set_syntax_op(form, OP_LET_A_A_OLD);
                    }
                    else
                    {
                        if (is_pair(cadr(sc->code)))
                            pair_set_syntax_op(form, OP_LET_A_P_OLD);
                    }
                }

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
movq 0x20(%rsp), %rdi
movq 0x20(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rsi
callq 0x15cfb0
testb $0x1, %al
jne 0x196be1
jmp 0x196c85
movq 0x20(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x20(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
movq 0x20(%rsp), %rdi
movq 0x20(%rsp), %rax
movq (%rax), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rsi
callq 0x35ea0
movq 0x8(%rsp), %rdi
movq 0x10(%rsp), %rsi
movq %rax, %rdx
callq 0x15d020
movq 0x20(%rsp), %rdi
movq 0x20(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rsi
movq 0x20(%rsp), %rax
movq (%rax), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rdx
xorl %eax, %eax
movl %eax, %ecx
callq 0x15d170
movq 0x18(%rsp), %rax
movw $0x25e, 0x4(%rax)       # imm = 0x25E
movq 0x18(%rsp), %rax
movq (%rax), %rcx
andq $-0x10000, %rcx         # imm = 0xFFFF0000
orq $0x201, %rcx            # imm = 0x201
movq 0x18(%rsp), %rax
movq %rcx, (%rax)
jmp 0x196ccc
movq 0x20(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0x196cca
jmp 0x196c9f
movq 0x18(%rsp), %rax
movw $0x25c, 0x4(%rax)       # imm = 0x25C
movq 0x18(%rsp), %rax
movq (%rax), %rcx
andq $-0x10000, %rcx         # imm = 0xFFFF0000
orq $0x201, %rcx            # imm = 0x201
movq 0x18(%rsp), %rax
movq %rcx, (%rax)
jmp 0x196cca
jmp 0x196ccc
addq $0x28, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: make_simple_let
static inline s7_pointer make_simple_let(s7_scheme *sc) /* called only in op_let_fx */
    {
        s7_pointer frame;
        new_cell(sc, frame, T_LET | T_SAFE_PROCEDURE);
        let_id(frame) = sc->let_number + 1;
        let_set_slots(frame, slot_end(sc));
        set_outlet(frame, sc->envir);
        return(frame);
    }

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq 0x10(%rsp), %rax
movq 0x90(%rax), %rax
movq 0x10(%rsp), %rcx
cmpq 0x98(%rcx), %rax
ja 0x196d0d
movq 0x10(%rsp), %rdi
callq 0xc670
movq 0x10(%rsp), %rcx
movq 0x90(%rcx), %rax
movq %rax, %rdx
addq $-0x8, %rdx
movq %rdx, 0x90(%rcx)
movq -0x8(%rax), %rax
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
movq $0x20001c, (%rax)       # imm = 0x20001C
movq 0x10(%rsp), %rax
movq 0x250(%rax), %rcx
addq $0x1, %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x18(%rax)
movq 0x8(%rsp), %rax
movq $0x0, 0x8(%rax)
movq 0x10(%rsp), %rax
movq 0x8(%rax), %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x8(%rsp), %rax
addq $0x18, %rsp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: op_let_opssq
static inline void op_let_opssq(s7_scheme *sc)
                {
                    s7_pointer largs, in_val;
                    start_let(sc);
                    largs = T_Pair(opt2_pair(sc->code));                              /* cadr(caar(sc->code)); */
                    in_val = lookup(sc, cadr(largs));
                    set_car(sc->t2_2, lookup(sc, opt3_sym(cdr(sc->code)))); /* caddr(largs)); */
                    set_car(sc->t2_1, in_val);
                    sc->value = c_call(largs)(sc, sc->t2_1);
                }

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq 0x10(%rsp), %rax
movq (%rax), %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0x28(%rax)
movq 0x10(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rcx
movq 0x10(%rsp), %rax
movq %rcx, (%rax)
movq 0x10(%rsp), %rax
movq (%rax), %rax
movq 0x20(%rax), %rax
movq %rax, 0x8(%rsp)
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rsi
callq 0xde990
movq %rax, (%rsp)
movq 0x10(%rsp), %rdi
movq 0x10(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq 0x28(%rax), %rsi
callq 0xde990
movq %rax, %rcx
movq 0x10(%rsp), %rax
movq 0x578(%rax), %rax
movq %rcx, 0x8(%rax)
movq (%rsp), %rcx
movq 0x10(%rsp), %rax
movq 0x570(%rax), %rax
movq %rcx, 0x8(%rax)
movq 0x8(%rsp), %rax
movq 0x20(%rax), %rax
movq 0x10(%rsp), %rdi
movq 0x10(%rsp), %rcx
movq 0x570(%rcx), %rsi
callq *%rax
movq %rax, %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0x20(%rax)
addq $0x18, %rsp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: op_let_opassq
static inline void op_let_opassq(s7_scheme *sc)
                {
                    s7_pointer largs, in_val, lst;
                    start_let(sc);
                    largs = T_Pair(opt2_pair(sc->code));                              /* cadr(caar(sc->code)); */
                    in_val = lookup(sc, cadr(largs));
                    lst = lookup(sc, opt3_sym(cdr(sc->code)));
                    if (is_pair(lst))
                        sc->value = s7_assq(sc, in_val, lst);
                    else
                    {
                        if (is_null(lst))
                            sc->value = sc->F;
                        else sc->value = g_assq(sc, set_plist_2(sc, in_val, lst));
                    }
                }

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq 0x20(%rsp), %rax
movq (%rax), %rcx
movq 0x20(%rsp), %rax
movq %rcx, 0x28(%rax)
movq 0x20(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rcx
movq 0x20(%rsp), %rax
movq %rcx, (%rax)
movq 0x20(%rsp), %rax
movq (%rax), %rax
movq 0x20(%rax), %rax
movq %rax, 0x18(%rsp)
movq 0x20(%rsp), %rdi
movq 0x18(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rsi
callq 0xde990
movq %rax, 0x10(%rsp)
movq 0x20(%rsp), %rdi
movq 0x20(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq 0x28(%rax), %rsi
callq 0xde990
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0x196ef9
movq 0x20(%rsp), %rdi
movq 0x10(%rsp), %rsi
movq 0x8(%rsp), %rdx
callq 0x31bb0
movq %rax, %rcx
movq 0x20(%rsp), %rax
movq %rcx, 0x20(%rax)
jmp 0x196f5a
movq 0x8(%rsp), %rax
movq 0x20(%rsp), %rcx
cmpq 0x110(%rcx), %rax
jne 0x196f23
movq 0x20(%rsp), %rax
movq 0x120(%rax), %rcx
movq 0x20(%rsp), %rax
movq %rcx, 0x20(%rax)
jmp 0x196f58
movq 0x20(%rsp), %rax
movq %rax, (%rsp)
movq 0x20(%rsp), %rdi
movq 0x10(%rsp), %rsi
movq 0x8(%rsp), %rdx
callq 0x36f70
movq (%rsp), %rdi
movq %rax, %rsi
callq 0x908b0
movq %rax, %rcx
movq 0x20(%rsp), %rax
movq %rcx, 0x20(%rax)
jmp 0x196f5a
addq $0x28, %rsp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: activate_permanent_let_star
static s7_pointer activate_permanent_let_star(s7_scheme *sc, s7_pointer frame, s7_pointer vars)
    {
        s7_pointer slot, var;
        let_id(frame) = ++sc->let_number;
        set_outlet(frame, sc->envir);
        sc->envir = frame;
        for (var = vars, slot = let_slots(frame); is_pair(var); var = cdr(var), slot = next_slot(slot))
        {
            slot_set_value(slot, fx_call(sc, cdar(var)));
            symbol_set_local(caar(var), sc->let_number, slot);
        }
        return(frame);
    }

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
movq %rsi, 0x28(%rsp)
movq %rdx, 0x20(%rsp)
movq 0x30(%rsp), %rax
movq 0x250(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x250(%rax)
movq 0x28(%rsp), %rax
movq %rcx, 0x18(%rax)
movq 0x30(%rsp), %rax
movq 0x8(%rax), %rcx
movq 0x28(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x28(%rsp), %rcx
movq 0x30(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x20(%rsp), %rax
movq %rax, 0x10(%rsp)
movq 0x28(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x18(%rsp)
movq 0x10(%rsp), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0x197084
movq 0x10(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rax
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
movq 0x20(%rax), %rax
movq 0x30(%rsp), %rdi
movq 0x8(%rsp), %rcx
movq 0x8(%rcx), %rsi
callq *%rax
movq %rax, (%rsp)
movq (%rsp), %rcx
movq 0x18(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x18(%rsp), %rcx
movq 0x10(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
movq %rcx, 0x18(%rax)
movq 0x30(%rsp), %rax
movq 0x250(%rax), %rcx
movq 0x10(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
movq %rcx, 0x20(%rax)
movq 0x10(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
movl 0x28(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x28(%rax)
jmp 0x197063
movq 0x10(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
movq 0x18(%rsp), %rax
movq 0x18(%rax), %rax
movq %rax, 0x18(%rsp)
jmp 0x196fcb
movq 0x28(%rsp), %rax
addq $0x38, %rsp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: fx_cond_value
static inline bool fx_cond_value(s7_scheme *sc, s7_pointer p)
                {
                    if (has_fx(p))
                    {
                        sc->value = fx_call(sc, p);
                        return(true);
                    }
                    sc->code = car(p);
                    return(false);
                }

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x18(%rsp)
movq %rsi, 0x10(%rsp)
movq 0x10(%rsp), %rax
movzwl 0x6(%rax), %eax
andl $0x4, %eax
cmpl $0x0, %eax
je 0x1971aa
movq 0x10(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
movq 0x20(%rax), %rax
movq 0x18(%rsp), %rdi
movq 0x8(%rsp), %rcx
movq 0x8(%rcx), %rsi
callq *%rax
movq %rax, (%rsp)
movq (%rsp), %rcx
movq 0x18(%rsp), %rax
movq %rcx, 0x20(%rax)
movb $0x1, 0x27(%rsp)
jmp 0x1971c0
movq 0x10(%rsp), %rax
movq 0x8(%rax), %rcx
movq 0x18(%rsp), %rax
movq %rcx, (%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: tree_descend
static s7_pointer tree_descend(s7_scheme *sc, s7_pointer p, uint32_t line)
                {
                    s7_pointer tp;
                    if (!is_pair(p)) return(NULL);
                    if (has_line_number(p))
                    {
                        uint32_t x;
                        x = (uint32_t)pair_line_number(p);
                        if (x > 0)
                        {
                            if (line == 0) /* first line number we encounter will be the current reader location (i.e. the end of the form) */
                                line = x;
                            else
                            {
                                if (x < line)
                                    return(p);
                            }
                        }
                    }
                    tp = tree_descend(sc, car(p), line);
                    if (tp) return(tp);
                    return(tree_descend(sc, cdr(p), line));
                }

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x28(%rsp)
movq %rsi, 0x20(%rsp)
movl %edx, 0x1c(%rsp)
movq 0x20(%rsp), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
je 0x19813d
movq $0x0, 0x30(%rsp)
jmp 0x1981dd
movq 0x20(%rsp), %rax
movq (%rax), %rax
andq $0x40000, %rax          # imm = 0x40000
cmpq $0x0, %rax
je 0x198191
movq 0x20(%rsp), %rax
movl 0x2c(%rax), %eax
movl %eax, 0xc(%rsp)
cmpl $0x0, 0xc(%rsp)
jbe 0x19818f
cmpl $0x0, 0x1c(%rsp)
jne 0x198175
movl 0xc(%rsp), %eax
movl %eax, 0x1c(%rsp)
jmp 0x19818d
movl 0xc(%rsp), %eax
cmpl 0x1c(%rsp), %eax
jae 0x19818b
movq 0x20(%rsp), %rax
movq %rax, 0x30(%rsp)
jmp 0x1981dd
jmp 0x19818d
jmp 0x19818f
jmp 0x198191
movq 0x28(%rsp), %rdi
movq 0x20(%rsp), %rax
movq 0x8(%rax), %rsi
movl 0x1c(%rsp), %edx
callq 0x198110
movq %rax, 0x10(%rsp)
cmpq $0x0, 0x10(%rsp)
je 0x1981c1
movq 0x10(%rsp), %rax
movq %rax, 0x30(%rsp)
jmp 0x1981dd
movq 0x28(%rsp), %rdi
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rsi
movl 0x1c(%rsp), %edx
callq 0x198110
movq %rax, 0x30(%rsp)
movq 0x30(%rsp), %rax
addq $0x38, %rsp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: back_up_stack
static void back_up_stack(s7_scheme *sc)
                {
                    opcode_t top_op;
                    top_op = stack_op(sc->stack, s7_stack_top(sc) - 1);
                    if (top_op == OP_READ_DOT)
                    {
                        pop_stack(sc);
                        top_op = stack_op(sc->stack, s7_stack_top(sc) - 1);
                    }
                    if ((top_op == OP_READ_VECTOR) ||
                            (top_op == OP_READ_BYTE_VECTOR) ||
                            (top_op == OP_READ_INT_VECTOR) ||
                            (top_op == OP_READ_FLOAT_VECTOR))
                    {
                        pop_stack(sc);
                        top_op = stack_op(sc->stack, s7_stack_top(sc) - 1);
                    }
                    if (top_op == OP_READ_QUOTE)
                        pop_stack(sc);
                }

// Assembly:
movq %rdi, -0x8(%rsp)
movq -0x8(%rsp), %rax
movq 0x38(%rax), %rax
movq 0x10(%rax), %rax
movq -0x8(%rsp), %rcx
movq 0x50(%rcx), %rcx
movq -0x8(%rsp), %rdx
movq 0x48(%rdx), %rdx
subq %rdx, %rcx
sarq $0x3, %rcx
subq $0x1, %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x10(%rsp)
cmpq $0x1d3, -0x10(%rsp)     # imm = 0x1D3
jne 0x1982a5
jmp 0x198235
movq -0x8(%rsp), %rax
movq 0x50(%rax), %rcx
addq $-0x20, %rcx
movq %rcx, 0x50(%rax)
movq -0x8(%rsp), %rax
movq -0x8(%rsp), %rcx
movq 0x50(%rcx), %rcx
movq (%rcx), %rdx
movq %rdx, (%rax)
movq 0x8(%rcx), %rdx
movq %rdx, 0x8(%rax)
movq 0x10(%rcx), %rdx
movq %rdx, 0x10(%rax)
movq 0x18(%rcx), %rcx
movq %rcx, 0x18(%rax)
movq -0x8(%rsp), %rax
movq 0x38(%rax), %rax
movq 0x10(%rax), %rax
movq -0x8(%rsp), %rcx
movq 0x50(%rcx), %rcx
movq -0x8(%rsp), %rdx
movq 0x48(%rdx), %rdx
subq %rdx, %rcx
sarq $0x3, %rcx
subq $0x1, %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x10(%rsp)
cmpq $0x1d8, -0x10(%rsp)     # imm = 0x1D8
je 0x1982d1
cmpq $0x1d9, -0x10(%rsp)     # imm = 0x1D9
je 0x1982d1
cmpq $0x1da, -0x10(%rsp)     # imm = 0x1DA
je 0x1982d1
cmpq $0x1db, -0x10(%rsp)     # imm = 0x1DB
jne 0x198343
jmp 0x1982d3
movq -0x8(%rsp), %rax
movq 0x50(%rax), %rcx
addq $-0x20, %rcx
movq %rcx, 0x50(%rax)
movq -0x8(%rsp), %rax
movq -0x8(%rsp), %rcx
movq 0x50(%rcx), %rcx
movq (%rcx), %rdx
movq %rdx, (%rax)
movq 0x8(%rcx), %rdx
movq %rdx, 0x8(%rax)
movq 0x10(%rcx), %rdx
movq %rdx, 0x10(%rax)
movq 0x18(%rcx), %rcx
movq %rcx, 0x18(%rax)
movq -0x8(%rsp), %rax
movq 0x38(%rax), %rax
movq 0x10(%rax), %rax
movq -0x8(%rsp), %rcx
movq 0x50(%rcx), %rcx
movq -0x8(%rsp), %rdx
movq 0x48(%rdx), %rdx
subq %rdx, %rcx
sarq $0x3, %rcx
subq $0x1, %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x10(%rsp)
cmpq $0x1d4, -0x10(%rsp)     # imm = 0x1D4
jne 0x19838f
jmp 0x198350
movq -0x8(%rsp), %rax
movq 0x50(%rax), %rcx
addq $-0x20, %rcx
movq %rcx, 0x50(%rax)
movq -0x8(%rsp), %rax
movq -0x8(%rsp), %rcx
movq 0x50(%rcx), %rcx
movq (%rcx), %rdx
movq %rdx, (%rax)
movq 0x8(%rcx), %rdx
movq %rdx, 0x8(%rax)
movq 0x10(%rcx), %rdx
movq %rdx, 0x10(%rax)
movq 0x18(%rcx), %rcx
movq %rcx, 0x18(%rax)
jmp 0x19838f
retq
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: unknown_string_constant
static s7_pointer unknown_string_constant(s7_scheme *sc, int32_t c)
                {
                    /* check *read-error-hook* */
                    if (hook_has_functions(sc->read_error_hook))
                    {
                        s7_pointer result;
                        result = s7_call(sc, sc->read_error_hook, list_2(sc, sc->F, s7_make_character(sc, (uint8_t)c)));
                        if (s7_is_character(result))
                            return(result);
                    }
                    return(sc->T);
                }

// Assembly:
subq $0x68, %rsp
movq %rdi, 0x58(%rsp)
movl %esi, 0x54(%rsp)
movq 0x58(%rsp), %rdi
movq 0x58(%rsp), %rax
movq 0x210(%rax), %rsi
callq 0xba20
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0x19911e
movq 0x58(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x58(%rsp), %rax
movq 0x210(%rax), %rax
movq %rax, 0x10(%rsp)
movq 0x58(%rsp), %rax
movq %rax, 0x18(%rsp)
movq 0x58(%rsp), %rax
movq 0x120(%rax), %rax
movq %rax, 0x20(%rsp)
movq 0x58(%rsp), %rdi
movl 0x54(%rsp), %eax
movzbl %al, %esi
callq 0x14410
movq %rax, 0x38(%rsp)
movq 0x58(%rsp), %rax
movq 0x110(%rax), %rax
movq %rax, 0x30(%rsp)
movq 0x58(%rsp), %rax
movq 0x90(%rax), %rax
movq 0x58(%rsp), %rcx
cmpq 0x98(%rcx), %rax
ja 0x199080
movq 0x58(%rsp), %rdi
callq 0xc670
movq 0x58(%rsp), %rcx
movq 0x90(%rcx), %rax
movq %rax, %rdx
addq $-0x8, %rdx
movq %rdx, 0x90(%rcx)
movq -0x8(%rax), %rax
movq %rax, 0x40(%rsp)
movq 0x40(%rsp), %rax
movq $0x200001, (%rax)       # imm = 0x200001
movq 0x20(%rsp), %rsi
movq 0x18(%rsp), %rdi
movq 0x38(%rsp), %rcx
movq 0x40(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x30(%rsp), %rcx
movq 0x40(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x40(%rsp), %rax
movq %rax, 0x28(%rsp)
movq 0x28(%rsp), %rdx
callq 0xd9f0
movq 0x8(%rsp), %rdi
movq 0x10(%rsp), %rsi
movq %rax, %rdx
callq 0x45890
movq %rax, 0x48(%rsp)
movq 0x48(%rsp), %rdi
callq 0x14430
testb $0x1, %al
jne 0x199110
jmp 0x19911c
movq 0x48(%rsp), %rax
movq %rax, 0x60(%rsp)
jmp 0x19912f
jmp 0x19911e
movq 0x58(%rsp), %rax
movq 0x118(%rax), %rax
movq %rax, 0x60(%rsp)
movq 0x60(%rsp), %rax
addq $0x68, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: reverse_in_place
static s7_pointer reverse_in_place(s7_scheme *sc, s7_pointer term, s7_pointer list)
                {
                    s7_pointer p, result;

                    if (is_null(list)) return(term);
                    p = list;
                    result = term;
                    while (true)
                    {
                        s7_pointer q;
                        q = cdr(p);
                        if (is_null(q))
                        {
                            set_cdr(p, result);
                            return(p);
                        }
                        if ((is_pair(q)) && (!is_immutable_pair(q)))
                        {
                            set_cdr(p, result);
                            result = p;
                            p = q;
                        }
                        else return(sc->nil); /* improper or immutable */
                    }
                    return(result);
                }

// Assembly:
movq %rdi, -0x10(%rsp)
movq %rsi, -0x18(%rsp)
movq %rdx, -0x20(%rsp)
movq -0x20(%rsp), %rax
movq -0x10(%rsp), %rcx
cmpq 0x110(%rcx), %rax
jne 0x199171
movq -0x18(%rsp), %rax
movq %rax, -0x8(%rsp)
jmp 0x19921d
movq -0x20(%rsp), %rax
movq %rax, -0x28(%rsp)
movq -0x18(%rsp), %rax
movq %rax, -0x30(%rsp)
movq -0x28(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x38(%rsp)
movq -0x38(%rsp), %rax
movq -0x10(%rsp), %rcx
cmpq 0x110(%rcx), %rax
jne 0x1991c0
movq -0x30(%rsp), %rcx
movq -0x28(%rsp), %rax
movq %rcx, 0x10(%rax)
movq -0x28(%rsp), %rax
movq %rax, -0x8(%rsp)
jmp 0x19921d
movq -0x38(%rsp), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0x199205
movq -0x38(%rsp), %rax
movq (%rax), %rax
andq $0x1000000, %rax        # imm = 0x1000000
cmpq $0x0, %rax
jne 0x199205
movq -0x30(%rsp), %rcx
movq -0x28(%rsp), %rax
movq %rcx, 0x10(%rax)
movq -0x28(%rsp), %rax
movq %rax, -0x30(%rsp)
movq -0x38(%rsp), %rax
movq %rax, -0x28(%rsp)
jmp 0x199218
movq -0x10(%rsp), %rax
movq 0x110(%rax), %rax
movq %rax, -0x8(%rsp)
jmp 0x19921d
jmp 0x199185
movq -0x8(%rsp), %rax
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: free_vlist
static void free_vlist(s7_scheme *sc, s7_pointer lst)
    {
        if (is_pair(lst))
        {
            s7_pointer p, np;
            for (p = lst, np = cdr(lst); is_pair(p); p = np, np = unchecked_cdr(np))
                free_cell(sc, p);
        }
    }

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
movq 0x18(%rsp), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0x19a70b
movq 0x18(%rsp), %rax
movq %rax, 0x10(%rsp)
movq 0x18(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, 0x8(%rsp)
movq 0x10(%rsp), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0x19a709
movq 0x20(%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0x2bcd0
movq 0x8(%rsp), %rax
movq %rax, 0x10(%rsp)
movq 0x8(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, 0x8(%rsp)
jmp 0x19a6d3
jmp 0x19a70b
addq $0x28, %rsp
retq
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: traverse_vector_data
static int32_t traverse_vector_data(s7_scheme *sc, s7_pointer vec, s7_int flat_ref, s7_int dimension, s7_int dimensions, s7_int *sizes, s7_pointer lst)
                {
                    /* we're filling vec, we're currently looking for element flat_ref,
                     *   we're at ref in dimension of dimensions, where sizes gives the bounds, and lst is our data
                     *   #3D(((1 2 3) (4 5 6)) ((7 8 9) (10 11 12)))
                     */
                    s7_int i;
                    s7_pointer x;

                    for (i = 0, x = lst; i < sizes[dimension]; i++, x = cdr(x))
                    {
                        if (!is_pair(x))
                            return(MULTIVECTOR_NOT_ENOUGH_ELEMENTS);

                        if (dimension == (dimensions - 1))
                            vector_setter(vec)(sc, vec, flat_ref++, car(x));
                        else
                        {
                            flat_ref = traverse_vector_data(sc, vec, flat_ref, dimension + 1, dimensions, sizes, car(x));
                            if (flat_ref < 0) return(flat_ref);
                        }
                    }
                    if (is_not_null(x))
                        return(MULTIVECTOR_TOO_MANY_ELEMENTS);
                    return(flat_ref);
                }

// Assembly:
subq $0x58, %rsp
movq 0x60(%rsp), %rax
movq %rdi, 0x48(%rsp)
movq %rsi, 0x40(%rsp)
movq %rdx, 0x38(%rsp)
movq %rcx, 0x30(%rsp)
movq %r8, 0x28(%rsp)
movq %r9, 0x20(%rsp)
movq $0x0, 0x18(%rsp)
movq 0x60(%rsp), %rax
movq %rax, 0x10(%rsp)
movq 0x18(%rsp), %rax
movq 0x20(%rsp), %rcx
movq 0x30(%rsp), %rdx
cmpq (%rcx,%rdx,8), %rax
jge 0x19a8c4
movq 0x10(%rsp), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
je 0x19a80d
movl $0xfffffffe, 0x54(%rsp) # imm = 0xFFFFFFFE
jmp 0x19a8ea
movq 0x30(%rsp), %rax
movq 0x28(%rsp), %rcx
subq $0x1, %rcx
cmpq %rcx, %rax
jne 0x19a851
movq 0x40(%rsp), %rax
movq 0x28(%rax), %rax
movq 0x48(%rsp), %rdi
movq 0x40(%rsp), %rsi
movq 0x38(%rsp), %rdx
movq %rdx, %rcx
addq $0x1, %rcx
movq %rcx, 0x38(%rsp)
movq 0x10(%rsp), %rcx
movq 0x8(%rcx), %rcx
callq *%rax
jmp 0x19a8a1
movq 0x48(%rsp), %rdi
movq 0x40(%rsp), %rsi
movq 0x38(%rsp), %rdx
movq 0x30(%rsp), %rcx
addq $0x1, %rcx
movq 0x28(%rsp), %r8
movq 0x20(%rsp), %r9
movq 0x10(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, (%rsp)
callq 0x19a7a0
cltq
movq %rax, 0x38(%rsp)
cmpq $0x0, 0x38(%rsp)
jge 0x19a89f
movq 0x38(%rsp), %rax
movl %eax, 0x54(%rsp)
jmp 0x19a8ea
jmp 0x19a8a1
jmp 0x19a8a3
movq 0x18(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x18(%rsp)
movq 0x10(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
jmp 0x19a7da
movq 0x10(%rsp), %rax
movq 0x48(%rsp), %rcx
cmpq 0x110(%rcx), %rax
je 0x19a8e1
movl $0xffffffff, 0x54(%rsp) # imm = 0xFFFFFFFF
jmp 0x19a8ea
movq 0x38(%rsp), %rax
movl %eax, 0x54(%rsp)
movl 0x54(%rsp), %eax
addq $0x58, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: g_int_multivector
static s7_pointer g_int_multivector(s7_scheme *sc, s7_int dims, s7_pointer data)
                {
                    /* dims > 1, sc->value is a pair (not null) */
                    s7_pointer *src;
                    s7_int i, len;
                    sc->value = g_multivector(sc, dims, data);
                    src = (s7_pointer *)vector_elements(sc->value);
                    len = vector_length(sc->value);
                    for (i = 0; i < len; i++)
                        if (!is_t_integer(src[i]))
                            return(s7_wrong_type_arg_error(sc, "#i(...)", i + 1, src[i], "an integer"));
                    sc->args = g_make_vector_1(sc, set_plist_2(sc, g_vector_dimensions(sc, set_plist_1(sc, sc->value)), small_int(0)), sc->make_int_vector_symbol);
                    return(s7_copy_1(sc, sc->int_vector_symbol, set_plist_2(sc, sc->value, sc->args)));
                }

// Assembly:
subq $0x68, %rsp
movq %rdi, 0x58(%rsp)
movq %rsi, 0x50(%rsp)
movq %rdx, 0x48(%rsp)
movq 0x58(%rsp), %rdi
movq 0x50(%rsp), %rsi
movq 0x48(%rsp), %rdx
callq 0x19a120
movq %rax, %rcx
movq 0x58(%rsp), %rax
movq %rcx, 0x20(%rax)
movq 0x58(%rsp), %rax
movq 0x20(%rax), %rax
movq 0x10(%rax), %rax
movq %rax, 0x40(%rsp)
movq 0x58(%rsp), %rax
movq 0x20(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, 0x30(%rsp)
movq $0x0, 0x38(%rsp)
movq 0x38(%rsp), %rax
cmpq 0x30(%rsp), %rax
jge 0x19a9cd
movq 0x40(%rsp), %rax
movq 0x38(%rsp), %rcx
movq (%rax,%rcx,8), %rax
movzbl (%rax), %eax
cmpl $0xb, %eax
je 0x19a9bb
movq 0x58(%rsp), %rdi
movq 0x38(%rsp), %rdx
addq $0x1, %rdx
movq 0x40(%rsp), %rax
movq 0x38(%rsp), %rcx
movq (%rax,%rcx,8), %rcx
leaq 0x56e00(%rip), %rsi     # 0x1f17a5
leaq 0x54286(%rip), %r8      # 0x1eec32
callq 0x12540
movq %rax, 0x60(%rsp)
jmp 0x19aa92
jmp 0x19a9bd
movq 0x38(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x38(%rsp)
jmp 0x19a960
movq 0x58(%rsp), %rax
movq %rax, 0x18(%rsp)
movq 0x58(%rsp), %rax
movq %rax, 0x10(%rsp)
movq 0x58(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x58(%rsp), %rdi
movq 0x58(%rsp), %rax
movq 0x20(%rax), %rsi
callq 0x35ea0
movq 0x8(%rsp), %rdi
movq %rax, %rsi
callq 0x359e0
movq 0x10(%rsp), %rdi
movq %rax, %rsi
movq 0x7ba66(%rip), %rdx     # 0x216480
callq 0x36f70
movq 0x18(%rsp), %rdi
movq %rax, %rsi
movq 0x58(%rsp), %rax
movq 0x12f0(%rax), %rdx
callq 0x35ed0
movq %rax, %rcx
movq 0x58(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x58(%rsp), %rax
movq %rax, 0x20(%rsp)
movq 0x58(%rsp), %rax
movq 0xfb8(%rax), %rax
movq %rax, 0x28(%rsp)
movq 0x58(%rsp), %rdi
movq 0x58(%rsp), %rax
movq 0x20(%rax), %rsi
movq 0x58(%rsp), %rax
movq 0x10(%rax), %rdx
callq 0x36f70
movq 0x20(%rsp), %rdi
movq 0x28(%rsp), %rsi
movq %rax, %rdx
callq 0x3e9e0
movq %rax, 0x60(%rsp)
movq 0x60(%rsp), %rax
addq $0x68, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: g_float_multivector
static s7_pointer g_float_multivector(s7_scheme *sc, s7_int dims, s7_pointer data)
                {
                    /* dims > 1, sc->value is a pair (not null) */
                    s7_pointer *src;
                    s7_int i, len;
                    sc->value = g_multivector(sc, dims, data);
                    src = (s7_pointer *)vector_elements(sc->value);
                    len = vector_length(sc->value);
                    for (i = 0; i < len; i++)
                        if (!s7_is_real(src[i]))
                            return(s7_wrong_type_arg_error(sc, "#r(...)", i + 1, src[i], "a real"));
                    sc->args = g_make_vector_1(sc, set_plist_2(sc, g_vector_dimensions(sc, set_plist_1(sc, sc->value)), real_zero), sc->make_float_vector_symbol);
                    return(s7_copy_1(sc, sc->float_vector_symbol, set_plist_2(sc, sc->value, sc->args)));
                }

// Assembly:
subq $0x68, %rsp
movq %rdi, 0x58(%rsp)
movq %rsi, 0x50(%rsp)
movq %rdx, 0x48(%rsp)
movq 0x58(%rsp), %rdi
movq 0x50(%rsp), %rsi
movq 0x48(%rsp), %rdx
callq 0x19a120
movq %rax, %rcx
movq 0x58(%rsp), %rax
movq %rcx, 0x20(%rax)
movq 0x58(%rsp), %rax
movq 0x20(%rax), %rax
movq 0x10(%rax), %rax
movq %rax, 0x40(%rsp)
movq 0x58(%rsp), %rax
movq 0x20(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, 0x30(%rsp)
movq $0x0, 0x38(%rsp)
movq 0x38(%rsp), %rax
cmpq 0x30(%rsp), %rax
jge 0x19ab6e
movq 0x40(%rsp), %rax
movq 0x38(%rsp), %rcx
movq (%rax,%rcx,8), %rdi
callq 0x11360
testb $0x1, %al
jne 0x19ab5c
movq 0x58(%rsp), %rdi
movq 0x38(%rsp), %rdx
addq $0x1, %rdx
movq 0x40(%rsp), %rax
movq 0x38(%rsp), %rcx
movq (%rax,%rcx,8), %rcx
leaq 0x56c97(%rip), %rsi     # 0x1f17dd
leaq 0x54054(%rip), %r8      # 0x1eeba1
callq 0x12540
movq %rax, 0x60(%rsp)
jmp 0x19ac33
jmp 0x19ab5e
movq 0x38(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x38(%rsp)
jmp 0x19ab00
movq 0x58(%rsp), %rax
movq %rax, 0x18(%rsp)
movq 0x58(%rsp), %rax
movq %rax, 0x10(%rsp)
movq 0x58(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x58(%rsp), %rdi
movq 0x58(%rsp), %rax
movq 0x20(%rax), %rsi
callq 0x35ea0
movq 0x8(%rsp), %rdi
movq %rax, %rsi
callq 0x359e0
movq 0x10(%rsp), %rdi
movq %rax, %rsi
movq 0x7fbcd(%rip), %rdx     # 0x21a788
callq 0x36f70
movq 0x18(%rsp), %rdi
movq %rax, %rsi
movq 0x58(%rsp), %rax
movq 0x12d8(%rax), %rdx
callq 0x35ed0
movq %rax, %rcx
movq 0x58(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x58(%rsp), %rax
movq %rax, 0x20(%rsp)
movq 0x58(%rsp), %rax
movq 0xf00(%rax), %rax
movq %rax, 0x28(%rsp)
movq 0x58(%rsp), %rdi
movq 0x58(%rsp), %rax
movq 0x20(%rax), %rsi
movq 0x58(%rsp), %rax
movq 0x10(%rax), %rdx
callq 0x36f70
movq 0x20(%rsp), %rdi
movq 0x28(%rsp), %rsi
movq %rax, %rdx
callq 0x3e9e0
movq %rax, 0x60(%rsp)
movq 0x60(%rsp), %rax
addq $0x68, %rsp
retq
nopl (%rax)