LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: op_c_catch_all_p
static void op_c_catch_all_p(s7_scheme *sc)
                {
                    new_frame(sc, sc->envir, sc->envir);               /* frame is needed even if no definers because we're setting the dox1/2 slots */
                    catch_all_set_goto_loc(sc->envir, s7_stack_top(sc));
                    catch_all_set_op_loc(sc->envir, sc->op_stack_now - sc->op_stack);
                    push_stack(sc, OP_CATCH_ALL, opt2_con(sc->code), sc->code);
                    sc->code = opt1_pair(cdr(sc->code));
                }

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
jmp 0x11f2fb
movq 0x10(%rsp), %rax
movq 0x90(%rax), %rax
movq 0x10(%rsp), %rcx
cmpq 0x98(%rcx), %rax
ja 0x11f31f
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 %rcx, 0x250(%rax)
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), %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x10(%rsp), %rax
movq 0x50(%rax), %rcx
movq 0x10(%rsp), %rax
movq 0x48(%rax), %rax
subq %rax, %rcx
sarq $0x3, %rcx
movq 0x10(%rsp), %rax
movq 0x8(%rax), %rax
movq %rcx, 0x28(%rax)
movq 0x10(%rsp), %rax
movq 0x68(%rax), %rcx
movq 0x10(%rsp), %rax
movq 0x60(%rax), %rax
subq %rax, %rcx
sarq $0x3, %rcx
movq 0x10(%rsp), %rax
movq 0x8(%rax), %rax
movq %rcx, 0x20(%rax)
movq 0x10(%rsp), %rax
movq (%rax), %rcx
movq 0x10(%rsp), %rax
movq 0x50(%rax), %rax
movq %rcx, (%rax)
movq 0x10(%rsp), %rax
movq 0x8(%rax), %rcx
movq 0x10(%rsp), %rax
movq 0x50(%rax), %rax
movq %rcx, 0x8(%rax)
movq 0x10(%rsp), %rax
movq (%rax), %rax
movq 0x20(%rax), %rcx
movq 0x10(%rsp), %rax
movq 0x50(%rax), %rax
movq %rcx, 0x10(%rax)
movq 0x10(%rsp), %rax
movq 0x50(%rax), %rax
movl $0x218, %ecx            # imm = 0x218
movq %rcx, 0x18(%rax)
movq 0x10(%rsp), %rax
movq 0x50(%rax), %rcx
addq $0x20, %rcx
movq %rcx, 0x50(%rax)
movq 0x10(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq 0x18(%rax), %rcx
movq 0x10(%rsp), %rax
movq %rcx, (%rax)
addq $0x18, %rsp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: op_c_catch_all_fx
static void op_c_catch_all_fx(s7_scheme *sc)
                {
                    new_frame(sc, sc->envir, sc->envir);
                    catch_all_set_goto_loc(sc->envir, s7_stack_top(sc));
                    catch_all_set_op_loc(sc->envir, sc->op_stack_now - sc->op_stack);
                    push_stack(sc, OP_CATCH_ALL, opt2_con(sc->code), sc->code);
                    sc->value = fx_call(sc, opt1_pair(cdr(sc->code)));
                }

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
jmp 0x11f47b
movq 0x20(%rsp), %rax
movq 0x90(%rax), %rax
movq 0x20(%rsp), %rcx
cmpq 0x98(%rcx), %rax
ja 0x11f49f
movq 0x20(%rsp), %rdi
callq 0xc670
movq 0x20(%rsp), %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 $0x20001c, (%rax)       # imm = 0x20001C
movq 0x20(%rsp), %rax
movq 0x250(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x250(%rax)
movq 0x18(%rsp), %rax
movq %rcx, 0x18(%rax)
movq 0x18(%rsp), %rax
movq $0x0, 0x8(%rax)
movq 0x20(%rsp), %rax
movq 0x8(%rax), %rcx
movq 0x18(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x18(%rsp), %rcx
movq 0x20(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x20(%rsp), %rax
movq 0x50(%rax), %rcx
movq 0x20(%rsp), %rax
movq 0x48(%rax), %rax
subq %rax, %rcx
sarq $0x3, %rcx
movq 0x20(%rsp), %rax
movq 0x8(%rax), %rax
movq %rcx, 0x28(%rax)
movq 0x20(%rsp), %rax
movq 0x68(%rax), %rcx
movq 0x20(%rsp), %rax
movq 0x60(%rax), %rax
subq %rax, %rcx
sarq $0x3, %rcx
movq 0x20(%rsp), %rax
movq 0x8(%rax), %rax
movq %rcx, 0x20(%rax)
movq 0x20(%rsp), %rax
movq (%rax), %rcx
movq 0x20(%rsp), %rax
movq 0x50(%rax), %rax
movq %rcx, (%rax)
movq 0x20(%rsp), %rax
movq 0x8(%rax), %rcx
movq 0x20(%rsp), %rax
movq 0x50(%rax), %rax
movq %rcx, 0x8(%rax)
movq 0x20(%rsp), %rax
movq (%rax), %rax
movq 0x20(%rax), %rcx
movq 0x20(%rsp), %rax
movq 0x50(%rax), %rax
movq %rcx, 0x10(%rax)
movq 0x20(%rsp), %rax
movq 0x50(%rax), %rax
movl $0x218, %ecx            # imm = 0x218
movq %rcx, 0x18(%rax)
movq 0x20(%rsp), %rax
movq 0x50(%rax), %rcx
addq $0x20, %rcx
movq %rcx, 0x50(%rax)
movq 0x20(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq 0x18(%rax), %rax
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rax
movq 0x20(%rax), %rax
movq 0x20(%rsp), %rdi
movq 0x10(%rsp), %rcx
movq 0x8(%rcx), %rsi
callq *%rax
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rcx
movq 0x20(%rsp), %rax
movq %rcx, 0x20(%rax)
addq $0x28, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: op_s
static inline void op_s(s7_scheme *sc)
                {
                    sc->code = lookup(sc, car(sc->code));
                    if (!is_applicable(sc->code))
                        apply_error(sc, sc->code, sc->nil);
                    sc->args = sc->nil;
                }

// Assembly:
pushq %rax
movq %rdi, (%rsp)
movq (%rsp), %rdi
movq (%rsp), %rax
movq (%rax), %rax
movq 0x8(%rax), %rsi
callq 0xde990
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, (%rax)
movq (%rsp), %rax
movq (%rax), %rax
movzbl (%rax), %eax
movl %eax, %ecx
leaq 0x1058aa(%rip), %rax    # 0x224f00
testb $0x1, (%rax,%rcx)
jne 0x11f677
movq (%rsp), %rdi
movq (%rsp), %rax
movq (%rax), %rsi
movq (%rsp), %rax
movq 0x110(%rax), %rdx
callq 0xd9820
movq (%rsp), %rax
movq 0x110(%rax), %rcx
movq (%rsp), %rax
movq %rcx, 0x10(%rax)
popq %rax
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: op_s_c
static s7_pointer op_s_c(s7_scheme *sc)
                {
                    s7_pointer code;
                    code = sc->code;
                    sc->code = lookup_checked(sc, car(code));
                    if (!is_applicable(sc->code))
                        apply_error(sc, sc->code, cdr(code));
                    if (dont_eval_args(sc->code))
                        sc->args = copy_list(sc, cdr(code));
                    else sc->args = list_1(sc, cadr(code));
                    return(NULL);
                }

// Assembly:
subq $0x48, %rsp
movq %rdi, 0x40(%rsp)
movq 0x40(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x38(%rsp)
movq 0x40(%rsp), %rdi
movq 0x38(%rsp), %rax
movq 0x8(%rax), %rsi
callq 0xde990
movq %rax, 0x30(%rsp)
cmpq $0x0, 0x30(%rsp)
je 0x11f6d1
movq 0x30(%rsp), %rax
movq %rax, (%rsp)
jmp 0x11f6e8
movq 0x40(%rsp), %rdi
movq 0x38(%rsp), %rax
movq 0x8(%rax), %rsi
callq 0xdead0
movq %rax, (%rsp)
movq (%rsp), %rax
movq %rax, 0x28(%rsp)
movq 0x28(%rsp), %rcx
movq 0x40(%rsp), %rax
movq %rcx, (%rax)
movq 0x40(%rsp), %rax
movq (%rax), %rax
movzbl (%rax), %eax
movl %eax, %ecx
leaq 0x1057ee(%rip), %rax    # 0x224f00
testb $0x1, (%rax,%rcx)
jne 0x11f733
movq 0x40(%rsp), %rdi
movq 0x40(%rsp), %rax
movq (%rax), %rsi
movq 0x38(%rsp), %rax
movq 0x10(%rax), %rdx
callq 0xd9820
movq 0x40(%rsp), %rax
movq (%rax), %rax
movzwl (%rax), %eax
andl $0x2000, %eax           # imm = 0x2000
cmpl $0x0, %eax
je 0x11f76c
movq 0x40(%rsp), %rdi
movq 0x38(%rsp), %rax
movq 0x10(%rax), %rsi
callq 0x44270
movq %rax, %rcx
movq 0x40(%rsp), %rax
movq %rcx, 0x10(%rax)
jmp 0x11f816
movq 0x38(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, 0x18(%rsp)
movq 0x40(%rsp), %rax
movq 0x110(%rax), %rax
movq %rax, 0x10(%rsp)
movq 0x40(%rsp), %rax
movq 0x90(%rax), %rax
movq 0x40(%rsp), %rcx
cmpq 0x98(%rcx), %rax
ja 0x11f7b3
movq 0x40(%rsp), %rdi
callq 0xc670
movq 0x40(%rsp), %rcx
movq 0x90(%rcx), %rax
movq %rax, %rdx
addq $-0x8, %rdx
movq %rdx, 0x90(%rcx)
movq -0x8(%rax), %rax
movq %rax, 0x20(%rsp)
movq 0x20(%rsp), %rax
movq $0x200001, (%rax)       # imm = 0x200001
movq 0x18(%rsp), %rcx
movq 0x20(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x10(%rsp), %rcx
movq 0x20(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x20(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rcx
movq 0x40(%rsp), %rax
movq %rcx, 0x10(%rax)
xorl %eax, %eax
addq $0x48, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: op_s_a
static inline s7_pointer op_s_a(s7_scheme *sc)
                {
                    s7_pointer code;
                    code = sc->code;
                    sc->code = lookup_checked(sc, car(code));
                    if (!is_applicable(sc->code))
                        apply_error(sc, sc->code, cdr(code));
                    if (dont_eval_args(sc->code))
                        sc->args = copy_list(sc, cdr(code));
                    else sc->args = list_1(sc, fx_call(sc, cdr(code)));
                    return(NULL);
                }

// Assembly:
subq $0x58, %rsp
movq %rdi, 0x50(%rsp)
movq 0x50(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x48(%rsp)
movq 0x50(%rsp), %rdi
movq 0x48(%rsp), %rax
movq 0x8(%rax), %rsi
callq 0xde990
movq %rax, 0x40(%rsp)
cmpq $0x0, 0x40(%rsp)
je 0x11faa1
movq 0x40(%rsp), %rax
movq %rax, (%rsp)
jmp 0x11fab8
movq 0x50(%rsp), %rdi
movq 0x48(%rsp), %rax
movq 0x8(%rax), %rsi
callq 0xdead0
movq %rax, (%rsp)
movq (%rsp), %rax
movq %rax, 0x38(%rsp)
movq 0x38(%rsp), %rcx
movq 0x50(%rsp), %rax
movq %rcx, (%rax)
movq 0x50(%rsp), %rax
movq (%rax), %rax
movzbl (%rax), %eax
movl %eax, %ecx
leaq 0x10541e(%rip), %rax    # 0x224f00
testb $0x1, (%rax,%rcx)
jne 0x11fb03
movq 0x50(%rsp), %rdi
movq 0x50(%rsp), %rax
movq (%rax), %rsi
movq 0x48(%rsp), %rax
movq 0x10(%rax), %rdx
callq 0xd9820
movq 0x50(%rsp), %rax
movq (%rax), %rax
movzwl (%rax), %eax
andl $0x2000, %eax           # imm = 0x2000
cmpl $0x0, %eax
je 0x11fb3c
movq 0x50(%rsp), %rdi
movq 0x48(%rsp), %rax
movq 0x10(%rax), %rsi
callq 0x44270
movq %rax, %rcx
movq 0x50(%rsp), %rax
movq %rcx, 0x10(%rax)
jmp 0x11fc0a
movq 0x48(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, 0x18(%rsp)
movq 0x18(%rsp), %rax
movq 0x20(%rax), %rax
movq 0x50(%rsp), %rdi
movq 0x18(%rsp), %rcx
movq 0x8(%rcx), %rsi
callq *%rax
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rax
movq %rax, 0x28(%rsp)
movq 0x50(%rsp), %rax
movq 0x110(%rax), %rax
movq %rax, 0x20(%rsp)
movq 0x50(%rsp), %rax
movq 0x90(%rax), %rax
movq 0x50(%rsp), %rcx
cmpq 0x98(%rcx), %rax
ja 0x11fba7
movq 0x50(%rsp), %rdi
callq 0xc670
movq 0x50(%rsp), %rcx
movq 0x90(%rcx), %rax
movq %rax, %rdx
addq $-0x8, %rdx
movq %rdx, 0x90(%rcx)
movq -0x8(%rax), %rax
movq %rax, 0x30(%rsp)
movq 0x30(%rsp), %rax
movq $0x200001, (%rax)       # imm = 0x200001
movq 0x28(%rsp), %rcx
movq 0x30(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x20(%rsp), %rcx
movq 0x30(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x30(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rcx
movq 0x50(%rsp), %rax
movq %rcx, 0x10(%rax)
xorl %eax, %eax
addq $0x58, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: op_safe_c_function_star_aa
static void op_safe_c_function_star_aa(s7_scheme *sc)
                {
                    s7_pointer val;
                    val = fx_call(sc, cdr(sc->code));
                    set_car(sc->t2_2, fx_call(sc, cddr(sc->code)));
                    set_car(sc->t2_1, val);
                    sc->args = sc->t2_1;
                    sc->code = opt1_cfunc(sc->code);
                    apply_c_function_star(sc);
                }

// Assembly:
subq $0x48, %rsp
movq %rdi, 0x40(%rsp)
movq 0x40(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq %rax, 0x30(%rsp)
movq 0x30(%rsp), %rax
movq 0x20(%rax), %rax
movq 0x40(%rsp), %rdi
movq 0x30(%rsp), %rcx
movq 0x8(%rcx), %rsi
callq *%rax
movq %rax, 0x28(%rsp)
movq 0x28(%rsp), %rax
movq %rax, 0x38(%rsp)
movq 0x40(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq %rax, 0x20(%rsp)
movq 0x20(%rsp), %rax
movq 0x20(%rax), %rax
movq 0x40(%rsp), %rdi
movq 0x20(%rsp), %rcx
movq 0x8(%rcx), %rsi
callq *%rax
movq %rax, 0x18(%rsp)
movq 0x18(%rsp), %rcx
movq 0x40(%rsp), %rax
movq 0x578(%rax), %rax
movq %rcx, 0x8(%rax)
movq 0x38(%rsp), %rcx
movq 0x40(%rsp), %rax
movq 0x570(%rax), %rax
movq %rcx, 0x8(%rax)
movq 0x40(%rsp), %rax
movq 0x570(%rax), %rcx
movq 0x40(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x40(%rsp), %rax
movq (%rax), %rax
movq 0x18(%rax), %rcx
movq 0x40(%rsp), %rax
movq %rcx, (%rax)
movq 0x40(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
movq 0x40(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x40(%rsp), %rdi
callq 0x460a0
movq 0x8(%rsp), %rdi
movq %rax, %rsi
movq 0x10(%rsp), %rax
callq *%rax
movq %rax, %rcx
movq 0x40(%rsp), %rax
movq %rcx, 0x20(%rax)
addq $0x48, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: op_safe_c_function_star_fx
static void op_safe_c_function_star_fx(s7_scheme *sc)
                {
                    s7_pointer args, p;
                    sc->args = safe_list_if_possible(sc, integer(opt3_arglen(sc->code)));
                    for (args = cdr(sc->code), p = sc->args; is_pair(args); args = cdr(args), p = cdr(p))
                        set_car(p, fx_call(sc, args));
                    sc->code = opt1_cfunc(sc->code);
                    apply_c_function_star(sc);
                    clear_list_in_use(sc->args);
                    sc->args = sc->nil;
                }

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
movq 0x30(%rsp), %rdi
movq 0x30(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq 0x28(%rax), %rax
movq 0x8(%rax), %rsi
callq 0x101200
movq %rax, %rcx
movq 0x30(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x30(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq %rax, 0x28(%rsp)
movq 0x30(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, 0x20(%rsp)
movq 0x28(%rsp), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0x1201f3
movq 0x28(%rsp), %rax
movq %rax, 0x18(%rsp)
movq 0x18(%rsp), %rax
movq 0x20(%rax), %rax
movq 0x30(%rsp), %rdi
movq 0x18(%rsp), %rcx
movq 0x8(%rcx), %rsi
callq *%rax
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rcx
movq 0x20(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x28(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, 0x28(%rsp)
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, 0x20(%rsp)
jmp 0x120192
movq 0x30(%rsp), %rax
movq (%rax), %rax
movq 0x18(%rax), %rcx
movq 0x30(%rsp), %rax
movq %rcx, (%rax)
movq 0x30(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq %rax, 0x8(%rsp)
movq 0x30(%rsp), %rax
movq %rax, (%rsp)
movq 0x30(%rsp), %rdi
callq 0x460a0
movq (%rsp), %rdi
movq %rax, %rsi
movq 0x8(%rsp), %rax
callq *%rax
movq %rax, %rcx
movq 0x30(%rsp), %rax
movq %rcx, 0x20(%rax)
movq 0x30(%rsp), %rax
movq 0x10(%rax), %rax
movq (%rax), %rcx
andq $-0x401, %rcx           # imm = 0xFBFF
movq %rcx, (%rax)
movq 0x30(%rsp), %rax
movl $0x0, 0x2138(%rax)
movq 0x30(%rsp), %rax
movq 0x110(%rax), %rcx
movq 0x30(%rsp), %rax
movq %rcx, 0x10(%rax)
addq $0x38, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: closure_is_ok_1
static inline bool closure_is_ok_1(s7_scheme *sc, s7_pointer code, uint16_t type, int32_t args)
                {
                    s7_pointer f;
#if S7_DEBUGGING
                    if ((type & (T_ONE_FORM | T_MULTIFORM)) == 0) fprintf(stderr, "%s %s: type has no body bits\n", __func__, DISPLAY(code));
#endif
                    f = lookup_unexamined(sc, car(code));
                    if ((f == opt1_lambda_unchecked(code)) ||
                            ((f) &&
                             (typesflag(f) == type) &&
                             ((closure_arity(f) == args) || (closure_arity_to_int(sc, f) == args)) && /* 3 type bits to replace this but not hit enough to warrant them */
                             (set_opt1_lambda(code, f))))
                        return(true);
                    sc->last_function = f;
                    return(false);
                }

// Assembly:
subq $0x28, %rsp
movw %dx, %ax
movq %rdi, 0x18(%rsp)
movq %rsi, 0x10(%rsp)
movw %ax, 0xe(%rsp)
movl %ecx, 0x8(%rsp)
movq 0x18(%rsp), %rdi
movq 0x10(%rsp), %rax
movq 0x8(%rax), %rsi
callq 0xde990
movq %rax, (%rsp)
movq (%rsp), %rax
movq 0x10(%rsp), %rcx
cmpq 0x18(%rcx), %rax
je 0x12031b
cmpq $0x0, (%rsp)
je 0x120322
movq (%rsp), %rax
movzwl (%rax), %eax
movzwl 0xe(%rsp), %ecx
cmpl %ecx, %eax
jne 0x120322
movq (%rsp), %rax
movl 0x28(%rax), %eax
cmpl 0x8(%rsp), %eax
je 0x120308
movq 0x18(%rsp), %rdi
movq (%rsp), %rsi
callq 0x15cd60
cmpl 0x8(%rsp), %eax
jne 0x120322
movq (%rsp), %rax
movq 0x10(%rsp), %rcx
movq %rax, 0x18(%rcx)
cmpq $0x0, %rax
je 0x120322
movb $0x1, 0x27(%rsp)
jmp 0x120337
movq (%rsp), %rcx
movq 0x18(%rsp), %rax
movq %rcx, 0x1ed8(%rax)
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: op_thunk
static void op_thunk(s7_scheme *sc)
                {
                    check_stack_size(sc);
                    /* this recursion check is consistent with the other unsafe closure calls, but we're probably in big trouble:
                     *   (letrec ((a (lambda () (cons 1 (b)))) (b (lambda () (a)))) (b))
                     */
                    sc->code = opt1_lambda(sc->code);
                    new_frame(sc, closure_let(sc->code), sc->envir);
                    closure_push(sc);
                }

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq 0x10(%rsp), %rax
movq 0x50(%rax), %rax
movq 0x10(%rsp), %rcx
cmpq 0x58(%rcx), %rax
jb 0x120727
movq 0x10(%rsp), %rdi
callq 0x10fdc0
jmp 0x120729
movq 0x10(%rsp), %rax
movq (%rax), %rax
movq 0x18(%rax), %rcx
movq 0x10(%rsp), %rax
movq %rcx, (%rax)
jmp 0x12073f
movq 0x10(%rsp), %rax
movq 0x90(%rax), %rax
movq 0x10(%rsp), %rcx
cmpq 0x98(%rcx), %rax
ja 0x120763
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 %rcx, 0x250(%rax)
movq 0x8(%rsp), %rax
movq %rcx, 0x18(%rax)
movq 0x8(%rsp), %rax
movq $0x0, 0x8(%rax)
movq 0x10(%rsp), %rax
movq (%rax), %rax
movq 0x18(%rax), %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x8(%rsp), %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0x8(%rax)
jmp 0x1207e4
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 0x10(%rax), %rcx
movq 0x10(%rsp), %rax
movq 0x50(%rax), %rax
movq %rcx, (%rax)
movq 0x10(%rsp), %rax
movq 0x8(%rax), %rcx
movq 0x10(%rsp), %rax
movq 0x50(%rax), %rax
movq %rcx, 0x8(%rax)
movq 0x10(%rsp), %rax
movq 0x688(%rax), %rcx
movq 0x10(%rsp), %rax
movq 0x50(%rax), %rax
movq %rcx, 0x18(%rax)
movq 0x10(%rsp), %rax
movq 0x50(%rax), %rcx
addq $0x20, %rcx
movq %rcx, 0x50(%rax)
movq 0x10(%rsp), %rax
movq (%rax), %rax
movq 0x8(%rax), %rcx
movq 0x10(%rsp), %rax
movq %rcx, (%rax)
addq $0x18, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: closure_is_fine_1
static inline bool closure_is_fine_1(s7_scheme *sc, s7_pointer code, uint16_t type, int32_t args)
                {
                    s7_pointer f;
#if S7_DEBUGGING
                    if ((type & (T_ONE_FORM | T_MULTIFORM)) != 0) fprintf(stderr, "%s %s: type has body bits\n", __func__, DISPLAY(code));
#endif
                    f = lookup_unexamined(sc, car(code));
                    if ((f == opt1_lambda_unchecked(code)) ||
                            ((f) &&
                             ((typesflag(f) & (TYPE_MASK | T_SAFE_CLOSURE)) == type) &&
                             ((closure_arity(f) == args) || (closure_arity_to_int(sc, f) == args)) &&
                             (set_opt1_lambda(code, f))))
                        return(true);
                    sc->last_function = f;
                    return(false);
                }

// Assembly:
subq $0x28, %rsp
movw %dx, %ax
movq %rdi, 0x18(%rsp)
movq %rsi, 0x10(%rsp)
movw %ax, 0xe(%rsp)
movl %ecx, 0x8(%rsp)
movq 0x18(%rsp), %rdi
movq 0x10(%rsp), %rax
movq 0x8(%rax), %rsi
callq 0xde990
movq %rax, (%rsp)
movq (%rsp), %rax
movq 0x10(%rsp), %rcx
cmpq 0x18(%rcx), %rax
je 0x120a90
cmpq $0x0, (%rsp)
je 0x120a97
movq (%rsp), %rax
movzwl (%rax), %eax
andl $0x10ff, %eax           # imm = 0x10FF
movzwl 0xe(%rsp), %ecx
cmpl %ecx, %eax
jne 0x120a97
movq (%rsp), %rax
movl 0x28(%rax), %eax
cmpl 0x8(%rsp), %eax
je 0x120a7d
movq 0x18(%rsp), %rdi
movq (%rsp), %rsi
callq 0x15cd60
cmpl 0x8(%rsp), %eax
jne 0x120a97
movq (%rsp), %rax
movq 0x10(%rsp), %rcx
movq %rax, 0x18(%rcx)
cmpq $0x0, %rax
je 0x120a97
movb $0x1, 0x27(%rsp)
jmp 0x120aac
movq (%rsp), %rcx
movq 0x18(%rsp), %rax
movq %rcx, 0x1ed8(%rax)
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: fx_safe_thunk_a
static s7_pointer fx_safe_thunk_a(s7_scheme *sc, s7_pointer code)
                {
                    s7_pointer f, result;
                    gc_protect_direct(sc, sc->envir);
                    f = opt1_lambda(code);
                    sc->envir = closure_let(f);
                    result = fx_call(sc, closure_body(f));
                    sc->envir = sc->stack_end[-2];
                    sc->stack_end -= 4;
                    return(result);
                }

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
movq %rsi, 0x28(%rsp)
movq 0x30(%rsp), %rdi
movq 0x30(%rsp), %rax
movq 0x8(%rax), %rsi
callq 0xfd720
movq 0x28(%rsp), %rax
movq 0x18(%rax), %rax
movq %rax, 0x20(%rsp)
movq 0x20(%rsp), %rax
movq 0x18(%rax), %rcx
movq 0x30(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rax
movq 0x20(%rax), %rax
movq 0x30(%rsp), %rdi
movq 0x10(%rsp), %rcx
movq 0x8(%rcx), %rsi
callq *%rax
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
movq %rax, 0x18(%rsp)
movq 0x30(%rsp), %rax
movq 0x50(%rax), %rax
movq -0x10(%rax), %rcx
movq 0x30(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x30(%rsp), %rax
movq 0x50(%rax), %rcx
addq $-0x20, %rcx
movq %rcx, 0x50(%rax)
movq 0x18(%rsp), %rax
addq $0x38, %rsp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: op_closure_s_p
static void op_closure_s_p(s7_scheme *sc)
                {
                    sc->value = lookup(sc, opt2_sym(sc->code));
                    check_stack_size(sc);
                    sc->code = opt1_lambda(sc->code);
                    new_frame_with_slot(sc, closure_let(sc->code), sc->envir, car(closure_args(sc->code)), sc->value);
                    sc->code = car(closure_body(sc->code));
                }

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq 0x20(%rsp), %rdi
movq 0x20(%rsp), %rax
movq (%rax), %rax
movq 0x20(%rax), %rsi
callq 0xde990
movq %rax, %rcx
movq 0x20(%rsp), %rax
movq %rcx, 0x20(%rax)
movq 0x20(%rsp), %rax
movq 0x50(%rax), %rax
movq 0x20(%rsp), %rcx
cmpq 0x58(%rcx), %rax
jb 0x121979
movq 0x20(%rsp), %rdi
callq 0x10fdc0
jmp 0x12197b
movq 0x20(%rsp), %rax
movq (%rax), %rax
movq 0x18(%rax), %rcx
movq 0x20(%rsp), %rax
movq %rcx, (%rax)
movq 0x20(%rsp), %rax
movq (%rax), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, 0x8(%rsp)
movq 0x20(%rsp), %rax
movq 0x20(%rax), %rax
movq %rax, (%rsp)
movq 0x20(%rsp), %rax
movq 0x90(%rax), %rax
movq 0x20(%rsp), %rcx
cmpq 0x98(%rcx), %rax
ja 0x1219d5
movq 0x20(%rsp), %rdi
callq 0xc670
movq 0x20(%rsp), %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 $0x20001c, (%rax)       # imm = 0x20001C
movq 0x20(%rsp), %rax
movq 0x250(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x250(%rax)
movq 0x18(%rsp), %rax
movq %rcx, 0x18(%rax)
movq 0x20(%rsp), %rax
movq (%rax), %rax
movq 0x18(%rax), %rcx
movq 0x18(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x18(%rsp), %rcx
movq 0x20(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x20(%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 $0x20, (%rax)
movq 0x8(%rsp), %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0x8(%rax)
movq (%rsp), %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x10(%rsp), %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x18(%rax)
movq 0x20(%rsp), %rax
movq 0x250(%rax), %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x20(%rax)
movq 0x8(%rsp), %rax
movl 0x28(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x28(%rax)
movq 0x10(%rsp), %rax
movq $0x0, 0x18(%rax)
movq 0x10(%rsp), %rcx
movq 0x18(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x20(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rcx
movq 0x20(%rsp), %rax
movq %rcx, (%rax)
addq $0x28, %rsp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: op_safe_closure_s
static void op_safe_closure_s(s7_scheme *sc)
                {
                    sc->value = lookup(sc, opt2_sym(sc->code));
                    sc->code = opt1_lambda(sc->code);
                    sc->envir = old_frame_with_slot(sc, closure_let(sc->code), sc->value);
                    sc->code = T_Pair(closure_body(sc->code));
                    push_stack_no_args(sc, sc->begin_op, cdr(sc->code));
                    sc->code = car(sc->code);
                }

// Assembly:
pushq %rax
movq %rdi, (%rsp)
movq (%rsp), %rdi
movq (%rsp), %rax
movq (%rax), %rax
movq 0x20(%rax), %rsi
callq 0xde990
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x20(%rax)
movq (%rsp), %rax
movq (%rax), %rax
movq 0x18(%rax), %rcx
movq (%rsp), %rax
movq %rcx, (%rax)
movq (%rsp), %rdi
movq (%rsp), %rax
movq (%rax), %rax
movq 0x18(%rax), %rsi
movq (%rsp), %rax
movq 0x20(%rax), %rdx
callq 0x111f60
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x8(%rax)
movq (%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rcx
movq (%rsp), %rax
movq %rcx, (%rax)
movq (%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rcx
movq (%rsp), %rax
movq 0x50(%rax), %rax
movq %rcx, (%rax)
movq (%rsp), %rax
movq 0x8(%rax), %rcx
movq (%rsp), %rax
movq 0x50(%rax), %rax
movq %rcx, 0x8(%rax)
movq (%rsp), %rax
movq 0x688(%rax), %rcx
movq (%rsp), %rax
movq 0x50(%rax), %rax
movq %rcx, 0x18(%rax)
movq (%rsp), %rax
movq 0x50(%rax), %rcx
addq $0x20, %rcx
movq %rcx, 0x50(%rax)
movq (%rsp), %rax
movq (%rax), %rax
movq 0x8(%rax), %rcx
movq (%rsp), %rax
movq %rcx, (%rax)
popq %rax
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: op_safe_closure_s_p
static void op_safe_closure_s_p(s7_scheme *sc)
                {
                    sc->value = lookup(sc, opt2_sym(sc->code));
                    sc->code = opt1_lambda(sc->code);
                    sc->envir = old_frame_with_slot(sc, closure_let(sc->code), sc->value);
                    sc->code = car(closure_body(sc->code));
                }

// Assembly:
pushq %rax
movq %rdi, (%rsp)
movq (%rsp), %rdi
movq (%rsp), %rax
movq (%rax), %rax
movq 0x20(%rax), %rsi
callq 0xde990
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x20(%rax)
movq (%rsp), %rax
movq (%rax), %rax
movq 0x18(%rax), %rcx
movq (%rsp), %rax
movq %rcx, (%rax)
movq (%rsp), %rdi
movq (%rsp), %rax
movq (%rax), %rax
movq 0x18(%rax), %rsi
movq (%rsp), %rax
movq 0x20(%rax), %rdx
callq 0x111f60
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x8(%rax)
movq (%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rcx
movq (%rsp), %rax
movq %rcx, (%rax)
popq %rax
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: op_closure_c
static void op_closure_c(s7_scheme *sc)
                {
                    check_stack_size(sc);
                    sc->value = cadr(sc->code);
                    sc->code = opt1_lambda(sc->code);
                    new_frame_with_slot(sc, closure_let(sc->code), sc->envir, car(closure_args(sc->code)), sc->value);
                    closure_push(sc);
                }

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq 0x20(%rsp), %rax
movq 0x50(%rax), %rax
movq 0x20(%rsp), %rcx
cmpq 0x58(%rcx), %rax
jb 0x121df7
movq 0x20(%rsp), %rdi
callq 0x10fdc0
jmp 0x121df9
movq 0x20(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rcx
movq 0x20(%rsp), %rax
movq %rcx, 0x20(%rax)
movq 0x20(%rsp), %rax
movq (%rax), %rax
movq 0x18(%rax), %rcx
movq 0x20(%rsp), %rax
movq %rcx, (%rax)
movq 0x20(%rsp), %rax
movq (%rax), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, 0x8(%rsp)
movq 0x20(%rsp), %rax
movq 0x20(%rax), %rax
movq %rax, (%rsp)
movq 0x20(%rsp), %rax
movq 0x90(%rax), %rax
movq 0x20(%rsp), %rcx
cmpq 0x98(%rcx), %rax
ja 0x121e6c
movq 0x20(%rsp), %rdi
callq 0xc670
movq 0x20(%rsp), %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 $0x20001c, (%rax)       # imm = 0x20001C
movq 0x20(%rsp), %rax
movq 0x250(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x250(%rax)
movq 0x18(%rsp), %rax
movq %rcx, 0x18(%rax)
movq 0x20(%rsp), %rax
movq (%rax), %rax
movq 0x18(%rax), %rcx
movq 0x18(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x18(%rsp), %rcx
movq 0x20(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x20(%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 $0x20, (%rax)
movq 0x8(%rsp), %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0x8(%rax)
movq (%rsp), %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x10(%rsp), %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x18(%rax)
movq 0x20(%rsp), %rax
movq 0x250(%rax), %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x20(%rax)
movq 0x8(%rsp), %rax
movl 0x28(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x28(%rax)
movq 0x10(%rsp), %rax
movq $0x0, 0x18(%rax)
movq 0x10(%rsp), %rcx
movq 0x18(%rsp), %rax
movq %rcx, 0x8(%rax)
jmp 0x121f76
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 0x10(%rax), %rcx
movq 0x20(%rsp), %rax
movq 0x50(%rax), %rax
movq %rcx, (%rax)
movq 0x20(%rsp), %rax
movq 0x8(%rax), %rcx
movq 0x20(%rsp), %rax
movq 0x50(%rax), %rax
movq %rcx, 0x8(%rax)
movq 0x20(%rsp), %rax
movq 0x688(%rax), %rcx
movq 0x20(%rsp), %rax
movq 0x50(%rax), %rax
movq %rcx, 0x18(%rax)
movq 0x20(%rsp), %rax
movq 0x50(%rax), %rcx
addq $0x20, %rcx
movq %rcx, 0x50(%rax)
movq 0x20(%rsp), %rax
movq (%rax), %rax
movq 0x8(%rax), %rcx
movq 0x20(%rsp), %rax
movq %rcx, (%rax)
addq $0x28, %rsp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: op_closure_c_p
static void op_closure_c_p(s7_scheme *sc)
                {
                    sc->value = cadr(sc->code);
                    check_stack_size(sc);
                    sc->code = opt1_lambda(sc->code);
                    new_frame_with_slot(sc, closure_let(sc->code), sc->envir, car(closure_args(sc->code)), sc->value);
                    sc->code = car(closure_body(sc->code));
                }

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq 0x20(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rcx
movq 0x20(%rsp), %rax
movq %rcx, 0x20(%rax)
movq 0x20(%rsp), %rax
movq 0x50(%rax), %rax
movq 0x20(%rsp), %rcx
cmpq 0x58(%rcx), %rax
jb 0x122040
movq 0x20(%rsp), %rdi
callq 0x10fdc0
jmp 0x122042
movq 0x20(%rsp), %rax
movq (%rax), %rax
movq 0x18(%rax), %rcx
movq 0x20(%rsp), %rax
movq %rcx, (%rax)
movq 0x20(%rsp), %rax
movq (%rax), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, 0x8(%rsp)
movq 0x20(%rsp), %rax
movq 0x20(%rax), %rax
movq %rax, (%rsp)
movq 0x20(%rsp), %rax
movq 0x90(%rax), %rax
movq 0x20(%rsp), %rcx
cmpq 0x98(%rcx), %rax
ja 0x12209c
movq 0x20(%rsp), %rdi
callq 0xc670
movq 0x20(%rsp), %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 $0x20001c, (%rax)       # imm = 0x20001C
movq 0x20(%rsp), %rax
movq 0x250(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x250(%rax)
movq 0x18(%rsp), %rax
movq %rcx, 0x18(%rax)
movq 0x20(%rsp), %rax
movq (%rax), %rax
movq 0x18(%rax), %rcx
movq 0x18(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x18(%rsp), %rcx
movq 0x20(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x20(%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 $0x20, (%rax)
movq 0x8(%rsp), %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0x8(%rax)
movq (%rsp), %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x10(%rsp), %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x18(%rax)
movq 0x20(%rsp), %rax
movq 0x250(%rax), %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x20(%rax)
movq 0x8(%rsp), %rax
movl 0x28(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x28(%rax)
movq 0x10(%rsp), %rax
movq $0x0, 0x18(%rax)
movq 0x10(%rsp), %rcx
movq 0x18(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x20(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rcx
movq 0x20(%rsp), %rax
movq %rcx, (%rax)
addq $0x28, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: op_safe_closure_c
static void op_safe_closure_c(s7_scheme *sc)
                {
                    sc->value = cadr(sc->code);
                    sc->code = opt1_lambda(sc->code);
                    sc->envir = old_frame_with_slot(sc, closure_let(sc->code), sc->value);
                    closure_push(sc);
                }

// Assembly:
pushq %rax
movq %rdi, (%rsp)
movq (%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rcx
movq (%rsp), %rax
movq %rcx, 0x20(%rax)
movq (%rsp), %rax
movq (%rax), %rax
movq 0x18(%rax), %rcx
movq (%rsp), %rax
movq %rcx, (%rax)
movq (%rsp), %rdi
movq (%rsp), %rax
movq (%rax), %rax
movq 0x18(%rax), %rsi
movq (%rsp), %rax
movq 0x20(%rax), %rdx
callq 0x111f60
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x8(%rax)
movq (%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rcx
movq (%rsp), %rax
movq %rcx, (%rax)
movq (%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rcx
movq (%rsp), %rax
movq 0x50(%rax), %rax
movq %rcx, (%rax)
movq (%rsp), %rax
movq 0x8(%rax), %rcx
movq (%rsp), %rax
movq 0x50(%rax), %rax
movq %rcx, 0x8(%rax)
movq (%rsp), %rax
movq 0x688(%rax), %rcx
movq (%rsp), %rax
movq 0x50(%rax), %rax
movq %rcx, 0x18(%rax)
movq (%rsp), %rax
movq 0x50(%rax), %rcx
addq $0x20, %rcx
movq %rcx, 0x50(%rax)
movq (%rsp), %rax
movq (%rax), %rax
movq 0x8(%rax), %rcx
movq (%rsp), %rax
movq %rcx, (%rax)
popq %rax
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: op_safe_closure_c_p
static void op_safe_closure_c_p(s7_scheme *sc)
                {
                    sc->value = cadr(sc->code);
                    sc->code = opt1_lambda(sc->code);
                    sc->envir = old_frame_with_slot(sc, closure_let(sc->code), sc->value);
                    sc->code = car(closure_body(sc->code));
                }

// Assembly:
pushq %rax
movq %rdi, (%rsp)
movq (%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rcx
movq (%rsp), %rax
movq %rcx, 0x20(%rax)
movq (%rsp), %rax
movq (%rax), %rax
movq 0x18(%rax), %rcx
movq (%rsp), %rax
movq %rcx, (%rax)
movq (%rsp), %rdi
movq (%rsp), %rax
movq (%rax), %rax
movq 0x18(%rax), %rsi
movq (%rsp), %rax
movq 0x20(%rax), %rdx
callq 0x111f60
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x8(%rax)
movq (%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rcx
movq (%rsp), %rax
movq %rcx, (%rax)
popq %rax
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: op_safe_closure_c_a
static void op_safe_closure_c_a(s7_scheme *sc)
                {
                    sc->value = cadr(sc->code);
                    sc->code = opt1_lambda(sc->code);
                    sc->envir = old_frame_with_slot(sc, closure_let(sc->code), sc->value);
                    sc->value = fx_call(sc, closure_body(sc->code));
                }

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq 0x10(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0x20(%rax)
movq 0x10(%rsp), %rax
movq (%rax), %rax
movq 0x18(%rax), %rcx
movq 0x10(%rsp), %rax
movq %rcx, (%rax)
movq 0x10(%rsp), %rdi
movq 0x10(%rsp), %rax
movq (%rax), %rax
movq 0x18(%rax), %rsi
movq 0x10(%rsp), %rax
movq 0x20(%rax), %rdx
callq 0x111f60
movq %rax, %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x10(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
movq 0x20(%rax), %rax
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rcx
movq 0x8(%rcx), %rsi
callq *%rax
movq %rax, (%rsp)
movq (%rsp), %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0x20(%rax)
addq $0x18, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: op_safe_closure_a
static void op_safe_closure_a(s7_scheme *sc)
                {
                    s7_pointer code;
                    code = sc->code;
                    sc->value = fx_call(sc, cdr(sc->code));
                    sc->code = opt1_lambda(code);
                    sc->envir = old_frame_with_slot(sc, closure_let(sc->code), sc->value);
                    closure_push(sc);
                }

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq 0x20(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x18(%rsp)
movq 0x20(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rax
movq 0x20(%rax), %rax
movq 0x20(%rsp), %rdi
movq 0x10(%rsp), %rcx
movq 0x8(%rcx), %rsi
callq *%rax
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rcx
movq 0x20(%rsp), %rax
movq %rcx, 0x20(%rax)
movq 0x18(%rsp), %rax
movq 0x18(%rax), %rcx
movq 0x20(%rsp), %rax
movq %rcx, (%rax)
movq 0x20(%rsp), %rdi
movq 0x20(%rsp), %rax
movq (%rax), %rax
movq 0x18(%rax), %rsi
movq 0x20(%rsp), %rax
movq 0x20(%rax), %rdx
callq 0x111f60
movq %rax, %rcx
movq 0x20(%rsp), %rax
movq %rcx, 0x8(%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 0x10(%rax), %rcx
movq 0x20(%rsp), %rax
movq 0x50(%rax), %rax
movq %rcx, (%rax)
movq 0x20(%rsp), %rax
movq 0x8(%rax), %rcx
movq 0x20(%rsp), %rax
movq 0x50(%rax), %rax
movq %rcx, 0x8(%rax)
movq 0x20(%rsp), %rax
movq 0x688(%rax), %rcx
movq 0x20(%rsp), %rax
movq 0x50(%rax), %rax
movq %rcx, 0x18(%rax)
movq 0x20(%rsp), %rax
movq 0x50(%rax), %rcx
addq $0x20, %rcx
movq %rcx, 0x50(%rax)
movq 0x20(%rsp), %rax
movq (%rax), %rax
movq 0x8(%rax), %rcx
movq 0x20(%rsp), %rax
movq %rcx, (%rax)
addq $0x28, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: op_safe_closure_a_p
static void op_safe_closure_a_p(s7_scheme *sc)
                {
                    s7_pointer code;
                    code = sc->code;
                    sc->value = fx_call(sc, cdr(sc->code));
                    sc->code = opt1_lambda(code);
                    sc->envir = old_frame_with_slot(sc, closure_let(sc->code), sc->value);
                    sc->code = car(closure_body(sc->code));
                }

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq 0x20(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x18(%rsp)
movq 0x20(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rax
movq 0x20(%rax), %rax
movq 0x20(%rsp), %rdi
movq 0x10(%rsp), %rcx
movq 0x8(%rcx), %rsi
callq *%rax
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rcx
movq 0x20(%rsp), %rax
movq %rcx, 0x20(%rax)
movq 0x18(%rsp), %rax
movq 0x18(%rax), %rcx
movq 0x20(%rsp), %rax
movq %rcx, (%rax)
movq 0x20(%rsp), %rdi
movq 0x20(%rsp), %rax
movq (%rax), %rax
movq 0x18(%rax), %rsi
movq 0x20(%rsp), %rax
movq 0x20(%rax), %rdx
callq 0x111f60
movq %rax, %rcx
movq 0x20(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x20(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rcx
movq 0x20(%rsp), %rax
movq %rcx, (%rax)
addq $0x28, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: fx_safe_closure_a_a
static s7_pointer fx_safe_closure_a_a(s7_scheme *sc, s7_pointer code)
                {
                    s7_pointer result;
                    gc_protect_direct(sc, sc->envir);
                    sc->envir = old_frame_with_slot(sc, closure_let(opt1_lambda(code)), fx_call(sc, cdr(code)));
                    result = fx_call(sc, closure_body(opt1_lambda(code)));
                    sc->envir = sc->stack_end[-2];
                    sc->stack_end -= 4;
                    return(result);
                }

// Assembly:
subq $0x48, %rsp
movq %rdi, 0x40(%rsp)
movq %rsi, 0x38(%rsp)
movq 0x40(%rsp), %rdi
movq 0x40(%rsp), %rax
movq 0x8(%rax), %rsi
callq 0xfd720
movq 0x40(%rsp), %rax
movq %rax, (%rsp)
movq 0x38(%rsp), %rax
movq 0x18(%rax), %rax
movq 0x18(%rax), %rax
movq %rax, 0x8(%rsp)
movq 0x38(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, 0x28(%rsp)
movq 0x28(%rsp), %rax
movq 0x20(%rax), %rax
movq 0x40(%rsp), %rdi
movq 0x28(%rsp), %rcx
movq 0x8(%rcx), %rsi
callq *%rax
movq (%rsp), %rdi
movq 0x8(%rsp), %rsi
movq %rax, 0x20(%rsp)
movq 0x20(%rsp), %rdx
callq 0x111f60
movq %rax, %rcx
movq 0x40(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x38(%rsp), %rax
movq 0x18(%rax), %rax
movq 0x10(%rax), %rax
movq %rax, 0x18(%rsp)
movq 0x18(%rsp), %rax
movq 0x20(%rax), %rax
movq 0x40(%rsp), %rdi
movq 0x18(%rsp), %rcx
movq 0x8(%rcx), %rsi
callq *%rax
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rax
movq %rax, 0x30(%rsp)
movq 0x40(%rsp), %rax
movq 0x50(%rax), %rax
movq -0x10(%rax), %rcx
movq 0x40(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x40(%rsp), %rax
movq 0x50(%rax), %rcx
addq $-0x20, %rcx
movq %rcx, 0x50(%rax)
movq 0x30(%rsp), %rax
addq $0x48, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: op_closure_ap
static void op_closure_ap(s7_scheme *sc)
                {
                    s7_pointer val, code;
                    code = sc->code;
                    val = fx_call(sc, cdr(code));
                    /* (hook-push (undo-hook ind 0) (lambda (hook) (set! u0 #t))) -> #<unused>
                     *    g_undo_hook calls s7_eval_c_string so it obviously should be declared unsafe!
                     */
                    push_stack(sc, OP_CLOSURE_AP_1, val, code);
                    sc->code = caddr(code);
                }

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq 0x20(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
movq 0x20(%rax), %rax
movq 0x20(%rsp), %rdi
movq 0x8(%rsp), %rcx
movq 0x8(%rcx), %rsi
callq *%rax
movq %rax, (%rsp)
movq (%rsp), %rax
movq %rax, 0x18(%rsp)
movq 0x10(%rsp), %rcx
movq 0x20(%rsp), %rax
movq 0x50(%rax), %rax
movq %rcx, (%rax)
movq 0x20(%rsp), %rax
movq 0x8(%rax), %rcx
movq 0x20(%rsp), %rax
movq 0x50(%rax), %rax
movq %rcx, 0x8(%rax)
movq 0x18(%rsp), %rcx
movq 0x20(%rsp), %rax
movq 0x50(%rax), %rax
movq %rcx, 0x10(%rax)
movq 0x20(%rsp), %rax
movq 0x50(%rax), %rax
movl $0x324, %ecx            # imm = 0x324
movq %rcx, 0x18(%rax)
movq 0x20(%rsp), %rax
movq 0x50(%rax), %rcx
addq $0x20, %rcx
movq %rcx, 0x50(%rax)
movq 0x10(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rcx
movq 0x20(%rsp), %rax
movq %rcx, (%rax)
addq $0x28, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: op_safe_closure_ss
static void op_safe_closure_ss(s7_scheme *sc)
                {
                    sc->temp5 = lookup(sc, opt2_sym(sc->code));
                    sc->value = lookup(sc, cadr(sc->code));
                    sc->code = opt1_lambda(sc->code);
                    sc->envir = old_frame_with_two_slots(sc, closure_let(sc->code), sc->value, sc->temp5);
                    closure_push(sc);
                }

// Assembly:
pushq %rax
movq %rdi, (%rsp)
movq (%rsp), %rdi
movq (%rsp), %rax
movq (%rax), %rax
movq 0x20(%rax), %rsi
callq 0xde990
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x518(%rax)
movq (%rsp), %rdi
movq (%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rsi
callq 0xde990
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x20(%rax)
movq (%rsp), %rax
movq (%rax), %rax
movq 0x18(%rax), %rcx
movq (%rsp), %rax
movq %rcx, (%rax)
movq (%rsp), %rdi
movq (%rsp), %rax
movq (%rax), %rax
movq 0x18(%rax), %rsi
movq (%rsp), %rax
movq 0x20(%rax), %rdx
movq (%rsp), %rax
movq 0x518(%rax), %rcx
callq 0x164710
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x8(%rax)
movq (%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rcx
movq (%rsp), %rax
movq %rcx, (%rax)
movq (%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rcx
movq (%rsp), %rax
movq 0x50(%rax), %rax
movq %rcx, (%rax)
movq (%rsp), %rax
movq 0x8(%rax), %rcx
movq (%rsp), %rax
movq 0x50(%rax), %rax
movq %rcx, 0x8(%rax)
movq (%rsp), %rax
movq 0x688(%rax), %rcx
movq (%rsp), %rax
movq 0x50(%rax), %rax
movq %rcx, 0x18(%rax)
movq (%rsp), %rax
movq 0x50(%rax), %rcx
addq $0x20, %rcx
movq %rcx, 0x50(%rax)
movq (%rsp), %rax
movq (%rax), %rax
movq 0x8(%rax), %rcx
movq (%rsp), %rax
movq %rcx, (%rax)
popq %rax
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: op_safe_closure_ss_p
static void op_safe_closure_ss_p(s7_scheme *sc)
                {
                    sc->temp5 = lookup(sc, opt2_sym(sc->code));
                    sc->value = lookup(sc, cadr(sc->code));
                    sc->code = opt1_lambda(sc->code);
                    sc->envir = old_frame_with_two_slots(sc, closure_let(sc->code), sc->value, sc->temp5);
                    sc->code = car(closure_body(sc->code));
                }

// Assembly:
pushq %rax
movq %rdi, (%rsp)
movq (%rsp), %rdi
movq (%rsp), %rax
movq (%rax), %rax
movq 0x20(%rax), %rsi
callq 0xde990
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x518(%rax)
movq (%rsp), %rdi
movq (%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rsi
callq 0xde990
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x20(%rax)
movq (%rsp), %rax
movq (%rax), %rax
movq 0x18(%rax), %rcx
movq (%rsp), %rax
movq %rcx, (%rax)
movq (%rsp), %rdi
movq (%rsp), %rax
movq (%rax), %rax
movq 0x18(%rax), %rsi
movq (%rsp), %rax
movq 0x20(%rax), %rdx
movq (%rsp), %rax
movq 0x518(%rax), %rcx
callq 0x164710
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x8(%rax)
movq (%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rcx
movq (%rsp), %rax
movq %rcx, (%rax)
popq %rax
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: fx_safe_closure_ss_a
static s7_pointer fx_safe_closure_ss_a(s7_scheme *sc, s7_pointer code)
                {
                    s7_pointer result;
                    gc_protect_direct(sc, sc->envir);
                    sc->envir = old_frame_with_two_slots(sc, closure_let(opt1_lambda(code)), lookup(sc, cadr(code)), lookup(sc, opt2_sym(code)));
                    result = fx_call(sc, closure_body(opt1_lambda(code)));
                    sc->envir = sc->stack_end[-2];
                    sc->stack_end -= 4;
                    return(result);
                }

// Assembly:
subq $0x48, %rsp
movq %rdi, 0x40(%rsp)
movq %rsi, 0x38(%rsp)
movq 0x40(%rsp), %rdi
movq 0x40(%rsp), %rax
movq 0x8(%rax), %rsi
callq 0xfd720
movq 0x40(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x38(%rsp), %rax
movq 0x18(%rax), %rax
movq 0x18(%rax), %rax
movq %rax, 0x10(%rsp)
movq 0x40(%rsp), %rdi
movq 0x38(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rsi
callq 0xde990
movq %rax, 0x18(%rsp)
movq 0x40(%rsp), %rdi
movq 0x38(%rsp), %rax
movq 0x20(%rax), %rsi
callq 0xde990
movq 0x8(%rsp), %rdi
movq 0x10(%rsp), %rsi
movq 0x18(%rsp), %rdx
movq %rax, %rcx
callq 0x164710
movq %rax, %rcx
movq 0x40(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x38(%rsp), %rax
movq 0x18(%rax), %rax
movq 0x10(%rax), %rax
movq %rax, 0x28(%rsp)
movq 0x28(%rsp), %rax
movq 0x20(%rax), %rax
movq 0x40(%rsp), %rdi
movq 0x28(%rsp), %rcx
movq 0x8(%rcx), %rsi
callq *%rax
movq %rax, 0x20(%rsp)
movq 0x20(%rsp), %rax
movq %rax, 0x30(%rsp)
movq 0x40(%rsp), %rax
movq 0x50(%rax), %rax
movq -0x10(%rax), %rcx
movq 0x40(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x40(%rsp), %rax
movq 0x50(%rax), %rcx
addq $-0x20, %rcx
movq %rcx, 0x50(%rax)
movq 0x30(%rsp), %rax
addq $0x48, %rsp
retq
nopw (%rax,%rax)