LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: apply_let
static void apply_let(s7_scheme *sc)                               /* -------- environment as applicable object -------- */
                {
                    if (is_null(sc->args))
                        wrong_type_argument_with_type(sc, sc->let_ref_symbol, 2, sc->args, a_symbol_string);
                    else
                    {
                        sc->value = s7_let_ref(sc, sc->code, car(sc->args));
                        if (is_pair(cdr(sc->args)))
                            sc->value = implicit_index(sc, sc->value, cdr(sc->args));
                    }
                    /*    (let ((v #(1 2 3))) (let ((e (curlet))) ((e 'v) 1))) -> 2
                     * so (let ((v #(1 2 3))) (let ((e (curlet))) (e 'v 1))) -> 2
                     */
                }

// Assembly:
subq $0x48, %rsp
movq %rdi, 0x40(%rsp)
movq 0x40(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x40(%rsp), %rcx
cmpq 0x110(%rcx), %rax
jne 0x1326f7
movq 0x40(%rsp), %rax
movq %rax, 0x10(%rsp)
movq 0x40(%rsp), %rax
movq 0x1230(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, 0x18(%rsp)
movq $0x2, 0x38(%rsp)
movq 0x38(%rsp), %rax
andq $-0x800, %rax           # imm = 0xF800
cmpq $0x0, %rax
jne 0x132644
movq 0x38(%rsp), %rcx
leaq 0xe3e47(%rip), %rax     # 0x216480
movq (%rax,%rcx,8), %rax
movq %rax, 0x8(%rsp)
jmp 0x1326bb
jmp 0x132646
movq 0x40(%rsp), %rax
movq 0x90(%rax), %rax
movq 0x40(%rsp), %rcx
cmpq 0x98(%rcx), %rax
ja 0x13266a
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, 0x28(%rsp)
movq 0x28(%rsp), %rax
movq $0xb, (%rax)
movq 0x38(%rsp), %rcx
movq 0x28(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x28(%rsp), %rax
movq %rax, 0x20(%rsp)
movq 0x20(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x18(%rsp), %rsi
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rax
movq %rax, 0x30(%rsp)
movq 0x30(%rsp), %rdx
movq 0x40(%rsp), %rax
movq 0x10(%rax), %rcx
movq 0x40(%rsp), %rax
movq 0x140(%rax), %r8
movq 0xe7da0(%rip), %r9      # 0x21a490
callq 0xc560
jmp 0x132765
movq 0x40(%rsp), %rdi
movq 0x40(%rsp), %rax
movq (%rax), %rsi
movq 0x40(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rdx
callq 0xe490
movq %rax, %rcx
movq 0x40(%rsp), %rax
movq %rcx, 0x20(%rax)
movq 0x40(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0x132763
movq 0x40(%rsp), %rdi
movq 0x40(%rsp), %rax
movq 0x20(%rax), %rsi
movq 0x40(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rdx
callq 0x16bc20
movq %rax, %rcx
movq 0x40(%rsp), %rax
movq %rcx, 0x20(%rax)
jmp 0x132765
addq $0x48, %rsp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: apply_pair
static bool apply_pair(s7_scheme *sc)                               /* -------- list as applicable object -------- */
                {
                    if (is_multiple_value(sc->code))                                  /* ((values 1 2 3) 0) */
                    {
                        /* car of values can be anything, so conjure up a new expression, and apply again */
                        sc->x = multiple_value(sc->code);                             /* ((values + 1 2) 3) */
                        sc->code = car(sc->x);
                        sc->args = s7_append(sc, cdr(sc->x), sc->args);
                        sc->x = sc->nil;
                        return(false);
                    }
                    if (is_null(sc->args))
                        s7_wrong_number_of_args_error(sc, "not enough args for list-ref (via list as applicable object): ~A", sc->args);
                    sc->value = list_ref_1(sc, sc->code, car(sc->args));            /* (L 1) */
                    if (!is_null(cdr(sc->args)))
                        sc->value = implicit_index(sc, sc->value, cdr(sc->args));     /* (L 1 2) */
                    return(true);
                }

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x8(%rsp)
movq 0x8(%rsp), %rax
movq (%rax), %rax
movzwl (%rax), %eax
andl $0x8000, %eax           # imm = 0x8000
cmpl $0x0, %eax
je 0x132bab
movq 0x8(%rsp), %rax
movq (%rax), %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x4e0(%rax)
movq 0x8(%rsp), %rax
movq 0x4e0(%rax), %rax
movq 0x8(%rax), %rcx
movq 0x8(%rsp), %rax
movq %rcx, (%rax)
movq 0x8(%rsp), %rdi
movq 0x8(%rsp), %rax
movq 0x4e0(%rax), %rax
movq 0x10(%rax), %rsi
movq 0x8(%rsp), %rax
movq 0x10(%rax), %rdx
callq 0x316f0
movq %rax, %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x8(%rsp), %rax
movq 0x110(%rax), %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x4e0(%rax)
movb $0x0, 0x17(%rsp)
jmp 0x132c53
movq 0x8(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rsp), %rcx
cmpq 0x110(%rcx), %rax
jne 0x132bdc
movq 0x8(%rsp), %rdi
movq 0x8(%rsp), %rax
movq 0x10(%rax), %rdx
leaq 0xbcfdd(%rip), %rsi     # 0x1efbb4
callq 0x33290
movq 0x8(%rsp), %rdi
movq 0x8(%rsp), %rax
movq (%rax), %rsi
movq 0x8(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rdx
callq 0x16cf70
movq %rax, %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x20(%rax)
movq 0x8(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rsp), %rcx
cmpq 0x110(%rcx), %rax
je 0x132c4e
movq 0x8(%rsp), %rdi
movq 0x8(%rsp), %rax
movq 0x20(%rax), %rsi
movq 0x8(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rdx
callq 0x16bc20
movq %rax, %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x20(%rax)
movb $0x1, 0x17(%rsp)
movb 0x17(%rsp), %al
andb $0x1, %al
addq $0x18, %rsp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: apply_closure_star
static bool apply_closure_star(s7_scheme *sc)
                {
                    if (is_safe_closure(sc->code))
                        return(apply_safe_closure_star_1(sc));
                    check_stack_size(sc);
                    sc->envir = new_frame_in_env(sc, closure_let(sc->code));
                    return(apply_unsafe_closure_star_1(sc));
                }

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x8(%rsp)
movq 0x8(%rsp), %rax
movq (%rax), %rax
movzwl (%rax), %eax
andl $0x1000, %eax           # imm = 0x1000
cmpl $0x0, %eax
je 0x132d70
movq 0x8(%rsp), %rdi
callq 0x169bb0
andb $0x1, %al
movb %al, 0x17(%rsp)
jmp 0x132dc4
jmp 0x132d72
movq 0x8(%rsp), %rax
movq 0x50(%rax), %rax
movq 0x8(%rsp), %rcx
cmpq 0x58(%rcx), %rax
jb 0x132d90
movq 0x8(%rsp), %rdi
callq 0x10fdc0
jmp 0x132d92
movq 0x8(%rsp), %rdi
movq 0x8(%rsp), %rax
movq (%rax), %rax
movq 0x18(%rax), %rsi
callq 0xc53b0
movq %rax, %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x8(%rsp), %rdi
callq 0x16b120
andb $0x1, %al
movb %al, 0x17(%rsp)
movb 0x17(%rsp), %al
andb $0x1, %al
addq $0x18, %rsp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: op_macro_star_d
static bool op_macro_star_d(s7_scheme *sc)
                {
                    sc->value = lookup(sc, car(sc->code));
                    if (!is_macro_star(sc->value))
                    {
                        set_unsafe_optimize_op(sc->code, OP_PAIR_SYM);
                        return(true);
                    }
                    sc->args = copy_list(sc, cdr(sc->code));
                    sc->code = sc->value;
                    push_stack_op_let(sc, OP_EVAL_MACRO);
                    new_frame(sc, closure_let(sc->code), sc->envir);
                    apply_macro_star_1(sc);
                    return(false);
                }

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x8(%rsp)
movq 0x8(%rsp), %rdi
movq 0x8(%rsp), %rax
movq (%rax), %rax
movq 0x8(%rax), %rsi
callq 0xde990
movq %rax, %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x20(%rax)
movq 0x8(%rsp), %rax
movq 0x20(%rax), %rax
movzbl (%rax), %eax
cmpl $0x2b, %eax
je 0x13322a
jmp 0x1331ee
movq 0x8(%rsp), %rax
movq (%rax), %rax
movq (%rax), %rcx
orq $0x800000, %rcx         # imm = 0x800000
orq $0x800, %rcx            # imm = 0x800
movq 0x8(%rsp), %rax
movq (%rax), %rax
movq %rcx, (%rax)
movq 0x8(%rsp), %rax
movq (%rax), %rax
movw $0x189, 0x4(%rax)       # imm = 0x189
movb $0x1, 0x17(%rsp)
jmp 0x133346
movq 0x8(%rsp), %rdi
movq 0x8(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rsi
callq 0x44270
movq %rax, %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x8(%rsp), %rax
movq 0x20(%rax), %rcx
movq 0x8(%rsp), %rax
movq %rcx, (%rax)
movq 0x8(%rsp), %rax
movq 0x8(%rax), %rcx
movq 0x8(%rsp), %rax
movq 0x50(%rax), %rax
movq %rcx, 0x8(%rax)
movq 0x8(%rsp), %rax
movq 0x50(%rax), %rax
movl $0x199, %ecx            # imm = 0x199
movq %rcx, 0x18(%rax)
movq 0x8(%rsp), %rax
movq 0x50(%rax), %rcx
addq $0x20, %rcx
movq %rcx, 0x50(%rax)
jmp 0x133298
jmp 0x13329a
movq 0x8(%rsp), %rax
movq 0x90(%rax), %rax
movq 0x8(%rsp), %rcx
cmpq 0x98(%rcx), %rax
ja 0x1332be
movq 0x8(%rsp), %rdi
callq 0xc670
movq 0x8(%rsp), %rcx
movq 0x90(%rcx), %rax
movq %rax, %rdx
addq $-0x8, %rdx
movq %rdx, 0x90(%rcx)
movq -0x8(%rax), %rax
movq %rax, (%rsp)
movq (%rsp), %rax
movq $0x20001c, (%rax)       # imm = 0x20001C
movq 0x8(%rsp), %rax
movq 0x250(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x250(%rax)
movq (%rsp), %rax
movq %rcx, 0x18(%rax)
movq (%rsp), %rax
movq $0x0, 0x8(%rax)
movq 0x8(%rsp), %rax
movq (%rax), %rax
movq 0x18(%rax), %rcx
movq (%rsp), %rax
movq %rcx, 0x10(%rax)
movq (%rsp), %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x8(%rsp), %rdi
callq 0x16e8d0
movb $0x0, 0x17(%rsp)
movb 0x17(%rsp), %al
andb $0x1, %al
addq $0x18, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: op_macro_d
static bool op_macro_d(s7_scheme *sc)
                {
                    sc->value = lookup(sc, car(sc->code));
                    if (!is_macro(sc->value))   /* for-each (etc) called a macro before, now it's something else -- a very rare case */
                    {
                        set_unsafe_optimize_op(sc->code, OP_PAIR_SYM);
                        return(true);
                    }
                    sc->args = copy_list(sc, cdr(sc->code));
                    sc->code = sc->value;                       /* the macro */
                    push_stack_op_let(sc, OP_EVAL_MACRO);
                    new_frame(sc, closure_let(sc->code), sc->envir);
                    return(false);
                }

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x8(%rsp)
movq 0x8(%rsp), %rdi
movq 0x8(%rsp), %rax
movq (%rax), %rax
movq 0x8(%rax), %rsi
callq 0xde990
movq %rax, %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x20(%rax)
movq 0x8(%rsp), %rax
movq 0x20(%rax), %rax
movzbl (%rax), %eax
cmpl $0x2a, %eax
je 0x1333da
jmp 0x13339e
movq 0x8(%rsp), %rax
movq (%rax), %rax
movq (%rax), %rcx
orq $0x800000, %rcx         # imm = 0x800000
orq $0x800, %rcx            # imm = 0x800
movq 0x8(%rsp), %rax
movq (%rax), %rax
movq %rcx, (%rax)
movq 0x8(%rsp), %rax
movq (%rax), %rax
movw $0x189, 0x4(%rax)       # imm = 0x189
movb $0x1, 0x17(%rsp)
jmp 0x1334ec
movq 0x8(%rsp), %rdi
movq 0x8(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rsi
callq 0x44270
movq %rax, %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x8(%rsp), %rax
movq 0x20(%rax), %rcx
movq 0x8(%rsp), %rax
movq %rcx, (%rax)
movq 0x8(%rsp), %rax
movq 0x8(%rax), %rcx
movq 0x8(%rsp), %rax
movq 0x50(%rax), %rax
movq %rcx, 0x8(%rax)
movq 0x8(%rsp), %rax
movq 0x50(%rax), %rax
movl $0x199, %ecx            # imm = 0x199
movq %rcx, 0x18(%rax)
movq 0x8(%rsp), %rax
movq 0x50(%rax), %rcx
addq $0x20, %rcx
movq %rcx, 0x50(%rax)
jmp 0x133448
jmp 0x13344a
movq 0x8(%rsp), %rax
movq 0x90(%rax), %rax
movq 0x8(%rsp), %rcx
cmpq 0x98(%rcx), %rax
ja 0x13346e
movq 0x8(%rsp), %rdi
callq 0xc670
movq 0x8(%rsp), %rcx
movq 0x90(%rcx), %rax
movq %rax, %rdx
addq $-0x8, %rdx
movq %rdx, 0x90(%rcx)
movq -0x8(%rax), %rax
movq %rax, (%rsp)
movq (%rsp), %rax
movq $0x20001c, (%rax)       # imm = 0x20001C
movq 0x8(%rsp), %rax
movq 0x250(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x250(%rax)
movq (%rsp), %rax
movq %rcx, 0x18(%rax)
movq (%rsp), %rax
movq $0x0, 0x8(%rax)
movq 0x8(%rsp), %rax
movq (%rax), %rax
movq 0x18(%rax), %rcx
movq (%rsp), %rax
movq %rcx, 0x10(%rax)
movq (%rsp), %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x8(%rax)
movb $0x0, 0x17(%rsp)
movb 0x17(%rsp), %al
andb $0x1, %al
addq $0x18, %rsp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: op_lambda_star_default
static bool op_lambda_star_default(s7_scheme *sc)
                {
                    /* sc->args is the current let slots position, sc->value is the default expression's value */
                    if (is_multiple_value(sc->value))
                        eval_error(sc, "lambda*: argument default value can't be ~S", 43, cons(sc, sc->values_symbol, sc->value));
                    slot_set_value(sc->args, sc->value);
                    sc->args = next_slot(sc->args);
                    if (lambda_star_default(sc) == goto_eval) return(true);
                    pop_stack_no_op(sc);
                    sc->code = T_Pair(closure_body(sc->code));
                    return(false);
                }

// Assembly:
subq $0x58, %rsp
movq %rdi, 0x48(%rsp)
movq 0x48(%rsp), %rax
movq 0x20(%rax), %rax
movzwl (%rax), %eax
andl $0x8000, %eax           # imm = 0x8000
cmpl $0x0, %eax
je 0x1338c3
movq 0x48(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x48(%rsp), %rax
movq 0x1918(%rax), %rax
movq %rax, 0x10(%rsp)
movq 0x48(%rsp), %rax
movq %rax, 0x18(%rsp)
movq 0x48(%rsp), %rdi
leaq 0xbc411(%rip), %rsi     # 0x1efbf5
movl $0x2b, %edx
callq 0xb880
movq %rax, 0x20(%rsp)
movq 0x48(%rsp), %rax
movq 0x1638(%rax), %rax
movq %rax, 0x38(%rsp)
movq 0x48(%rsp), %rax
movq 0x20(%rax), %rax
movq %rax, 0x30(%rsp)
movq 0x48(%rsp), %rax
movq 0x90(%rax), %rax
movq 0x48(%rsp), %rcx
cmpq 0x98(%rcx), %rax
ja 0x133836
movq 0x48(%rsp), %rdi
callq 0xc670
movq 0x48(%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 0xb830
movq 0x8(%rsp), %rdi
movq 0x10(%rsp), %rsi
movq %rax, %rdx
callq 0x2f940
cmpq $0x0, %rax
setne %al
andb $0x1, %al
movb %al, 0x57(%rsp)
jmp 0x13395d
movq 0x48(%rsp), %rax
movq 0x20(%rax), %rcx
movq 0x48(%rsp), %rax
movq 0x10(%rax), %rax
movq %rcx, 0x10(%rax)
movq 0x48(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x18(%rax), %rcx
movq 0x48(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x48(%rsp), %rdi
callq 0x16ab90
cmpl $0x5, %eax
jne 0x133905
movb $0x1, 0x57(%rsp)
jmp 0x13395d
movq 0x48(%rsp), %rax
movq 0x50(%rax), %rcx
addq $-0x20, %rcx
movq %rcx, 0x50(%rax)
movq 0x48(%rsp), %rax
movq 0x48(%rsp), %rcx
movq 0x50(%rcx), %rcx
movq (%rcx), %rdx
movq %rdx, (%rax)
movq 0x8(%rcx), %rdx
movq %rdx, 0x8(%rax)
movq 0x10(%rcx), %rcx
movq %rcx, 0x10(%rax)
xorl %eax, %eax
testb $0x1, %al
jne 0x133942
jmp 0x133944
jmp 0x13393a
movq 0x48(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rcx
movq 0x48(%rsp), %rax
movq %rcx, (%rax)
movb $0x0, 0x57(%rsp)
movb 0x57(%rsp), %al
andb $0x1, %al
addq $0x58, %rsp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: op_sort2
static bool op_sort2(s7_scheme *sc)
                {
                    s7_int j, k;
                    k = SORT_K1;
                    j = SORT_J;
                    if (is_true(sc, sc->value))
                    {
                        s7_pointer lx;
                        lx = SORT_DATA(j);
                        SORT_DATA(j) = SORT_DATA(k);
                        SORT_DATA(k) = lx;
                    }
                    else return(true);
                    SORT_K1 = SORT_J;
                    return(false);
                }

// Assembly:
movq %rdi, -0x10(%rsp)
movq -0x10(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq 0x18(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, -0x20(%rsp)
movq -0x10(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, -0x18(%rsp)
movq -0x10(%rsp), %rax
movq 0x20(%rax), %rax
movq -0x10(%rsp), %rcx
cmpq 0x120(%rcx), %rax
je 0x1343c2
movq -0x10(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rax
movq -0x18(%rsp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x28(%rsp)
movq -0x10(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rax
movq -0x20(%rsp), %rcx
movq (%rax,%rcx,8), %rdx
movq -0x10(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rax
movq -0x18(%rsp), %rcx
movq %rdx, (%rax,%rcx,8)
movq -0x28(%rsp), %rdx
movq -0x10(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rax
movq -0x20(%rsp), %rcx
movq %rdx, (%rax,%rcx,8)
jmp 0x1343c9
movb $0x1, -0x1(%rsp)
jmp 0x1343f6
movq -0x10(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rcx
movq -0x10(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq 0x18(%rax), %rax
movq %rcx, 0x8(%rax)
movb $0x0, -0x1(%rsp)
movb -0x1(%rsp), %al
andb $0x1, %al
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: op_sort
static bool op_sort(s7_scheme *sc)
                {
                    /* coming in sc->args is sort args (data less?), sc->code = #(n k 0 ...)
                     * here we call the inner loop until k <= 0 [the local k! -- this is tricky because scheme passes args by value]
                     */
                    s7_int k;
                    k = SORT_K;
                    if (k > 0)
                    {
                        SORT_K = k - 1;
                        SORT_K1 = k - 1;
                        push_stack(sc, OP_SORT, sc->args, sc->code);
                        return(false);
                    }
                    return(true);
                }

// Assembly:
movq %rdi, -0x10(%rsp)
movq -0x10(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, -0x18(%rsp)
cmpq $0x0, -0x18(%rsp)
jle 0x1344ce
movq -0x18(%rsp), %rcx
subq $0x1, %rcx
movq -0x10(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq %rcx, 0x8(%rax)
movq -0x18(%rsp), %rcx
subq $0x1, %rcx
movq -0x10(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq 0x18(%rax), %rax
movq %rcx, 0x8(%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 0x10(%rax), %rcx
movq -0x10(%rsp), %rax
movq 0x50(%rax), %rax
movq %rcx, 0x10(%rax)
movq -0x10(%rsp), %rax
movq 0x50(%rax), %rax
movl $0x208, %ecx            # imm = 0x208
movq %rcx, 0x18(%rax)
movq -0x10(%rsp), %rax
movq 0x50(%rax), %rcx
addq $0x20, %rcx
movq %rcx, 0x50(%rax)
movb $0x0, -0x1(%rsp)
jmp 0x1344d3
movb $0x1, -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: op_sort3
static bool op_sort3(s7_scheme *sc)
                {
                    s7_int n;
                    s7_pointer lx;
                    n = SORT_N;
                    if (n <= 0)
                    {
                        sc->value = car(sc->args);
                        return(true);
                    }
                    lx = SORT_DATA(0);
                    SORT_DATA(0) = SORT_DATA(n);
                    SORT_DATA(n) = lx;
                    SORT_N = n - 1;
                    SORT_K1 = 0;
                    push_stack(sc, OP_SORT3, sc->args, sc->code);
                    return(false);
                }

// Assembly:
movq %rdi, -0x10(%rsp)
movq -0x10(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq (%rax), %rax
movq 0x8(%rax), %rax
movq %rax, -0x18(%rsp)
cmpq $0x0, -0x18(%rsp)
jg 0x134525
movq -0x10(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rcx
movq -0x10(%rsp), %rax
movq %rcx, 0x20(%rax)
movb $0x1, -0x1(%rsp)
jmp 0x134627
movq -0x10(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rax
movq (%rax), %rax
movq %rax, -0x20(%rsp)
movq -0x10(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rax
movq -0x18(%rsp), %rcx
movq (%rax,%rcx,8), %rcx
movq -0x10(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rax
movq %rcx, (%rax)
movq -0x20(%rsp), %rdx
movq -0x10(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rax
movq -0x18(%rsp), %rcx
movq %rdx, (%rax,%rcx,8)
movq -0x18(%rsp), %rcx
subq $0x1, %rcx
movq -0x10(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq (%rax), %rax
movq %rcx, 0x8(%rax)
movq -0x10(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq 0x18(%rax), %rax
movq $0x0, 0x8(%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 0x10(%rax), %rcx
movq -0x10(%rsp), %rax
movq 0x50(%rax), %rax
movq %rcx, 0x10(%rax)
movq -0x10(%rsp), %rax
movq 0x50(%rax), %rax
movl $0x20b, %ecx            # imm = 0x20B
movq %rcx, 0x18(%rax)
movq -0x10(%rsp), %rax
movq 0x50(%rax), %rcx
addq $0x20, %rcx
movq %rcx, 0x50(%rax)
movb $0x0, -0x1(%rsp)
movb -0x1(%rsp), %al
andb $0x1, %al
retq
nop
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: vector_into_list
static s7_pointer vector_into_list(s7_pointer vect, s7_pointer lst)
                {
                    s7_pointer p;
                    s7_pointer *elements;
                    s7_int i, len;

                    elements = s7_vector_elements(vect);
                    len = vector_length(vect);
                    for (i = 0, p = lst; i < len; i++, p = cdr(p))
                        set_car(p, elements[i]);
                    return(lst);
                }

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
movq %rsi, 0x28(%rsp)
movq 0x30(%rsp), %rdi
callq 0x343f0
movq %rax, 0x18(%rsp)
movq 0x30(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x8(%rsp)
movq $0x0, 0x10(%rsp)
movq 0x28(%rsp), %rax
movq %rax, 0x20(%rsp)
movq 0x10(%rsp), %rax
cmpq 0x8(%rsp), %rax
jge 0x1346af
movq 0x18(%rsp), %rax
movq 0x10(%rsp), %rcx
movq (%rax,%rcx,8), %rcx
movq 0x20(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x10(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x10(%rsp)
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, 0x20(%rsp)
jmp 0x13466e
movq 0x28(%rsp), %rax
addq $0x38, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: vector_into_fi_vector
static s7_pointer vector_into_fi_vector(s7_pointer source, s7_pointer dest)
                {
                    s7_pointer *elements;
                    s7_int i, len;

                    elements = s7_vector_elements(source);
                    len = vector_length(source);

                    if (is_float_vector(dest))
                    {
                        s7_double *flts;
                        flts = float_vector_floats(dest);
                        for (i = 0; i < len; i++)
                            flts[i] = real(elements[i]);
                    }
                    else
                    {
                        s7_int *ints;
                        ints = int_vector_ints(dest);
                        for (i = 0; i < len; i++)
                            ints[i] = integer(elements[i]);
                    }
                    return(dest);
                }

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
movq %rsi, 0x28(%rsp)
movq 0x30(%rsp), %rdi
callq 0x343f0
movq %rax, 0x20(%rsp)
movq 0x30(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x10(%rsp)
movq 0x28(%rsp), %rax
movzbl (%rax), %eax
cmpl $0x17, %eax
jne 0x13474f
movq 0x28(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, 0x8(%rsp)
movq $0x0, 0x18(%rsp)
movq 0x18(%rsp), %rax
cmpq 0x10(%rsp), %rax
jge 0x13474d
movq 0x20(%rsp), %rax
movq 0x18(%rsp), %rcx
movq (%rax,%rcx,8), %rax
movsd 0x8(%rax), %xmm0
movq 0x8(%rsp), %rax
movq 0x18(%rsp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movq 0x18(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x18(%rsp)
jmp 0x13470f
jmp 0x1347a2
movq 0x28(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, (%rsp)
movq $0x0, 0x18(%rsp)
movq 0x18(%rsp), %rax
cmpq 0x10(%rsp), %rax
jge 0x1347a0
movq 0x20(%rsp), %rax
movq 0x18(%rsp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x8(%rax), %rdx
movq (%rsp), %rax
movq 0x18(%rsp), %rcx
movq %rdx, (%rax,%rcx,8)
movq 0x18(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x18(%rsp)
jmp 0x134765
jmp 0x1347a2
movq 0x28(%rsp), %rax
addq $0x38, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: vector_into_string
static s7_pointer vector_into_string(s7_pointer vect, s7_pointer dest)
                {
                    s7_pointer *elements;
                    s7_int i, len;
                    uint8_t *str;

                    elements = s7_vector_elements(vect);
                    len = vector_length(vect);

                    if (is_byte_vector(dest))
                    {
                        str = (uint8_t *)byte_vector_bytes(dest);
                        for (i = 0; i < len; i++)
                            str[i] = (uint8_t)integer(elements[i]);
                    }
                    else
                    {
                        str = (uint8_t *)string_value(dest);
                        for (i = 0; i < len; i++)
                            str[i] = character(elements[i]);
                    }
                    return(dest);
                }

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
movq %rsi, 0x28(%rsp)
movq 0x30(%rsp), %rdi
callq 0x343f0
movq %rax, 0x20(%rsp)
movq 0x30(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x10(%rsp)
movq 0x28(%rsp), %rax
movzbl (%rax), %eax
cmpl $0x18, %eax
jne 0x13483e
movq 0x28(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, 0x8(%rsp)
movq $0x0, 0x18(%rsp)
movq 0x18(%rsp), %rax
cmpq 0x10(%rsp), %rax
jge 0x13483c
movq 0x20(%rsp), %rax
movq 0x18(%rsp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x8(%rax), %rax
movb %al, %dl
movq 0x8(%rsp), %rax
movq 0x18(%rsp), %rcx
movb %dl, (%rax,%rcx)
movq 0x18(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x18(%rsp)
jmp 0x1347ff
jmp 0x134891
movq 0x28(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, 0x8(%rsp)
movq $0x0, 0x18(%rsp)
movq 0x18(%rsp), %rax
cmpq 0x10(%rsp), %rax
jge 0x13488f
movq 0x20(%rsp), %rax
movq 0x18(%rsp), %rcx
movq (%rax,%rcx,8), %rax
movb 0x8(%rax), %dl
movq 0x8(%rsp), %rax
movq 0x18(%rsp), %rcx
movb %dl, (%rax,%rcx)
movq 0x18(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x18(%rsp)
jmp 0x134855
jmp 0x134891
movq 0x28(%rsp), %rax
addq $0x38, %rsp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: op_for_each
static bool op_for_each(s7_scheme *sc)
                {
                    s7_pointer x, y, iterators, saved_args;
                    iterators = car(sc->args);
                    saved_args = cdr(sc->args);
                    for (x = saved_args, y = iterators; is_pair(x); x = cdr(x), y = cdr(y))
                    {
                        set_car(x, s7_iterate(sc, car(y)));
                        if (iterator_is_at_end(car(y)))
                        {
                            sc->value = sc->unspecified;
                            free_cell(sc, sc->args);
                            sc->args = sc->nil;
                            return(true);
                        }
                    }
                    push_stack(sc, OP_FOR_EACH, sc->args, sc->code);
                    sc->args = saved_args;
                    if (needs_copied_args(sc->code))
                        sc->args = copy_list(sc, sc->args);
                    return(false);
                }

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x28(%rsp)
movq 0x28(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, 0x10(%rsp)
movq 0x28(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
movq %rax, 0x20(%rsp)
movq 0x10(%rsp), %rax
movq %rax, 0x18(%rsp)
movq 0x20(%rsp), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0x135337
movq 0x28(%rsp), %rdi
movq 0x18(%rsp), %rax
movq 0x8(%rax), %rsi
callq 0xe430
movq %rax, %rcx
movq 0x20(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x18(%rsp), %rax
movq 0x8(%rax), %rcx
movabsq $0x80000000, %rax       # imm = 0x80000000
andq (%rcx), %rax
cmpq $0x0, %rax
jne 0x135314
movq 0x28(%rsp), %rax
movq 0x130(%rax), %rcx
movq 0x28(%rsp), %rax
movq %rcx, 0x20(%rax)
movq 0x28(%rsp), %rdi
movq 0x28(%rsp), %rax
movq 0x10(%rax), %rsi
callq 0x2bcd0
movq 0x28(%rsp), %rax
movq 0x110(%rax), %rcx
movq 0x28(%rsp), %rax
movq %rcx, 0x10(%rax)
movb $0x1, 0x37(%rsp)
jmp 0x1353e5
jmp 0x135316
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, 0x20(%rsp)
movq 0x18(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, 0x18(%rsp)
jmp 0x135281
jmp 0x135339
movq 0x28(%rsp), %rax
movq (%rax), %rcx
movq 0x28(%rsp), %rax
movq 0x50(%rax), %rax
movq %rcx, (%rax)
movq 0x28(%rsp), %rax
movq 0x8(%rax), %rcx
movq 0x28(%rsp), %rax
movq 0x50(%rax), %rax
movq %rcx, 0x8(%rax)
movq 0x28(%rsp), %rax
movq 0x10(%rax), %rcx
movq 0x28(%rsp), %rax
movq 0x50(%rax), %rax
movq %rcx, 0x10(%rax)
movq 0x28(%rsp), %rax
movq 0x50(%rax), %rax
movl $0x1f8, %ecx            # imm = 0x1F8
movq %rcx, 0x18(%rax)
movq 0x28(%rsp), %rax
movq 0x50(%rax), %rcx
addq $0x20, %rcx
movq %rcx, 0x50(%rax)
movq 0x8(%rsp), %rcx
movq 0x28(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x28(%rsp), %rax
movq (%rax), %rax
movq (%rax), %rax
andq $0x10000000, %rax       # imm = 0x10000000
cmpq $0x0, %rax
je 0x1353e0
movq 0x28(%rsp), %rdi
movq 0x28(%rsp), %rax
movq 0x10(%rax), %rsi
callq 0x44270
movq %rax, %rcx
movq 0x28(%rsp), %rax
movq %rcx, 0x10(%rax)
movb $0x0, 0x37(%rsp)
movb 0x37(%rsp), %al
andb $0x1, %al
addq $0x38, %rsp
retq
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: op_do_no_body_fx_vars_step
static bool op_do_no_body_fx_vars_step(s7_scheme *sc)
                {
                    s7_pointer slot;
                    if (sc->value != sc->F)
                    {
                        sc->code = cdadr(sc->code);
                        return(true);
                    }
                    for (slot = let_slots(sc->envir); tis_slot(slot); slot = next_slot(slot))
                        if (slot_has_expression(slot))
                            slot_set_value(slot, fx_call(sc, slot_expression(slot)));

                    push_stack_no_args(sc, OP_DO_NO_BODY_FX_VARS_STEP, sc->code);
                    sc->code = caadr(sc->code);
                    return(false);
                }

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x18(%rsp)
movq 0x18(%rsp), %rax
movq 0x20(%rax), %rax
movq 0x18(%rsp), %rcx
cmpq 0x120(%rcx), %rax
je 0x138d16
movq 0x18(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rcx
movq 0x18(%rsp), %rax
movq %rcx, (%rax)
movb $0x1, 0x27(%rsp)
jmp 0x138dfe
movq 0x18(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, 0x10(%rsp)
cmpq $0x0, 0x10(%rsp)
je 0x138d8e
movq 0x10(%rsp), %rax
movq (%rax), %rax
andq $0x2000000, %rax        # imm = 0x2000000
cmpq $0x0, %rax
je 0x138d7c
movq 0x10(%rsp), %rax
movq 0x28(%rax), %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 0x10(%rsp), %rax
movq %rcx, 0x10(%rax)
jmp 0x138d7e
movq 0x10(%rsp), %rax
movq 0x18(%rax), %rax
movq %rax, 0x10(%rsp)
jmp 0x138d28
jmp 0x138d90
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 0x50(%rax), %rax
movl $0x2fe, %ecx            # imm = 0x2FE
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
movq 0x10(%rax), %rax
movq 0x8(%rax), %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)
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: op_do_no_body_fx_vars_step_1
static bool op_do_no_body_fx_vars_step_1(s7_scheme *sc)
                {
                    if (sc->value != sc->F)
                    {
                        sc->code = cdadr(sc->code);
                        return(true);
                    }
                    slot_set_value(let_dox_slot1(sc->envir), fx_call(sc, slot_expression(let_dox_slot1(sc->envir))));
                    push_stack_no_args(sc, OP_DO_NO_BODY_FX_VARS_STEP_1, sc->code);
                    sc->code = caadr(sc->code);
                    return(false);
                }

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x18(%rsp)
movq 0x18(%rsp), %rax
movq 0x20(%rax), %rax
movq 0x18(%rsp), %rcx
cmpq 0x120(%rcx), %rax
je 0x138e56
movq 0x18(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rcx
movq 0x18(%rsp), %rax
movq %rcx, (%rax)
movb $0x1, 0x27(%rsp)
jmp 0x138f0e
movq 0x18(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x20(%rax), %rax
movq 0x28(%rax), %rax
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rax
movq 0x20(%rax), %rax
movq 0x18(%rsp), %rdi
movq 0x10(%rsp), %rcx
movq 0x8(%rcx), %rsi
callq *%rax
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rcx
movq 0x18(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x20(%rax), %rax
movq %rcx, 0x10(%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 0x50(%rax), %rax
movl $0x2ff, %ecx            # imm = 0x2FF
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
movq 0x10(%rax), %rax
movq 0x8(%rax), %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)
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: op_do_no_vars_no_opt_1
static bool op_do_no_vars_no_opt_1(s7_scheme *sc)
                {
                    sc->value = fx_call(sc, cadr(sc->code));
                    if (is_true(sc, sc->value))
                    {
                        sc->code = cdadr(sc->code);
                        return(true);
                    }
                    push_stack_no_args(sc, OP_DO_NO_VARS_NO_OPT_1, sc->code);
                    sc->code = T_Pair(cddr(sc->code));
                    return(false);
                }

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x18(%rsp)
movq 0x18(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rax
movq 0x20(%rax), %rax
movq 0x18(%rsp), %rdi
movq 0x10(%rsp), %rcx
movq 0x8(%rcx), %rsi
callq *%rax
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rcx
movq 0x18(%rsp), %rax
movq %rcx, 0x20(%rax)
movq 0x18(%rsp), %rax
movq 0x20(%rax), %rax
movq 0x18(%rsp), %rcx
cmpq 0x120(%rcx), %rax
je 0x139084
movq 0x18(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rcx
movq 0x18(%rsp), %rax
movq %rcx, (%rax)
movb $0x1, 0x27(%rsp)
jmp 0x1390f0
jmp 0x139086
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 0x50(%rax), %rax
movl $0x2fc, %ecx            # imm = 0x2FC
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
movq 0x10(%rax), %rax
movq 0x10(%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: op_safe_dotimes_step_p
static bool op_safe_dotimes_step_p(s7_scheme *sc)
                {
                    s7_pointer arg;
                    arg = slot_value(sc->args);
                    numerator(arg)++;
                    if (numerator(arg) == denominator(arg))
                    {
                        sc->value = sc->T;
                        sc->code = cdadr(sc->code);
                        return(true);
                    }
                    push_stack(sc, OP_SAFE_DOTIMES_STEP_P, sc->args, sc->code);
                    sc->code = opt2_pair(sc->code);
                    return(false);
                }

// Assembly:
movq %rdi, -0x10(%rsp)
movq -0x10(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq %rax, -0x18(%rsp)
movq -0x18(%rsp), %rax
movq 0x8(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x8(%rax)
movq -0x18(%rsp), %rax
movq 0x8(%rax), %rax
movq -0x18(%rsp), %rcx
cmpq 0x10(%rcx), %rax
jne 0x139624
movq -0x10(%rsp), %rax
movq 0x118(%rax), %rcx
movq -0x10(%rsp), %rax
movq %rcx, 0x20(%rax)
movq -0x10(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rcx
movq -0x10(%rsp), %rax
movq %rcx, (%rax)
movb $0x1, -0x1(%rsp)
jmp 0x1396a2
jmp 0x139626
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 0x10(%rax), %rcx
movq -0x10(%rsp), %rax
movq 0x50(%rax), %rax
movq %rcx, 0x10(%rax)
movq -0x10(%rsp), %rax
movq 0x50(%rax), %rax
movl $0x2ef, %ecx            # imm = 0x2EF
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 0x20(%rax), %rcx
movq -0x10(%rsp), %rax
movq %rcx, (%rax)
movb $0x0, -0x1(%rsp)
movb -0x1(%rsp), %al
andb $0x1, %al
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: op_safe_dotimes_step
static bool op_safe_dotimes_step(s7_scheme *sc)
                {
                    s7_pointer arg;
                    arg = slot_value(sc->args);
                    numerator(arg)++;
                    if (numerator(arg) == denominator(arg))
                    {
                        sc->value = sc->T;
                        sc->code = cdadr(sc->code);
                        return(true);
                    }
                    push_stack(sc, OP_SAFE_DOTIMES_STEP, sc->args, sc->code);
                    sc->code = opt2_pair(sc->code); /* here we know the body has more than one form */
                    push_stack_no_args(sc, sc->begin_op, cdr(sc->code));
                    sc->code = car(sc->code);
                    return(false);
                }

// Assembly:
movq %rdi, -0x10(%rsp)
movq -0x10(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq %rax, -0x18(%rsp)
movq -0x18(%rsp), %rax
movq 0x8(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x8(%rax)
movq -0x18(%rsp), %rax
movq 0x8(%rax), %rax
movq -0x18(%rsp), %rcx
cmpq 0x10(%rcx), %rax
jne 0x139727
movq -0x10(%rsp), %rax
movq 0x118(%rax), %rcx
movq -0x10(%rsp), %rax
movq %rcx, 0x20(%rax)
movq -0x10(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rcx
movq -0x10(%rsp), %rax
movq %rcx, (%rax)
movb $0x1, -0x1(%rsp)
jmp 0x139811
jmp 0x139729
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 0x10(%rax), %rcx
movq -0x10(%rsp), %rax
movq 0x50(%rax), %rax
movq %rcx, 0x10(%rax)
movq -0x10(%rsp), %rax
movq 0x50(%rax), %rax
movl $0x2ee, %ecx            # imm = 0x2EE
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 0x20(%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)
movb $0x0, -0x1(%rsp)
movb -0x1(%rsp), %al
andb $0x1, %al
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: op_dox_step
static bool op_dox_step(s7_scheme *sc)
                {
                    s7_pointer slot;
                    for (slot = let_slots(sc->envir); tis_slot(slot); slot = next_slot(slot))
                        if (slot_has_expression(slot))
                            slot_set_value(slot, fx_call(sc, slot_expression(slot)));
                    sc->value = fx_call(sc, cadr(sc->code));
                    if (is_true(sc, sc->value))
                    {
                        sc->code = cdadr(sc->code);
                        return(true);
                    }
                    push_stack_no_args(sc, OP_DOX_STEP, sc->code);
                    sc->code = T_Pair(cddr(sc->code));
                    return(false);
                }

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x28(%rsp)
movq 0x28(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, 0x20(%rsp)
cmpq $0x0, 0x20(%rsp)
je 0x13a413
movq 0x20(%rsp), %rax
movq (%rax), %rax
andq $0x2000000, %rax        # imm = 0x2000000
cmpq $0x0, %rax
je 0x13a401
movq 0x20(%rsp), %rax
movq 0x28(%rax), %rax
movq %rax, 0x18(%rsp)
movq 0x18(%rsp), %rax
movq 0x20(%rax), %rax
movq 0x28(%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, 0x10(%rax)
jmp 0x13a403
movq 0x20(%rsp), %rax
movq 0x18(%rax), %rax
movq %rax, 0x20(%rsp)
jmp 0x13a3ab
movq 0x28(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
movq 0x20(%rax), %rax
movq 0x28(%rsp), %rdi
movq 0x8(%rsp), %rcx
movq 0x8(%rcx), %rsi
callq *%rax
movq %rax, (%rsp)
movq (%rsp), %rcx
movq 0x28(%rsp), %rax
movq %rcx, 0x20(%rax)
movq 0x28(%rsp), %rax
movq 0x20(%rax), %rax
movq 0x28(%rsp), %rcx
cmpq 0x120(%rcx), %rax
je 0x13a48c
movq 0x28(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rcx
movq 0x28(%rsp), %rax
movq %rcx, (%rax)
movb $0x1, 0x37(%rsp)
jmp 0x13a4f8
jmp 0x13a48e
movq 0x28(%rsp), %rax
movq (%rax), %rcx
movq 0x28(%rsp), %rax
movq 0x50(%rax), %rax
movq %rcx, (%rax)
movq 0x28(%rsp), %rax
movq 0x8(%rax), %rcx
movq 0x28(%rsp), %rax
movq 0x50(%rax), %rax
movq %rcx, 0x8(%rax)
movq 0x28(%rsp), %rax
movq 0x50(%rax), %rax
movl $0x2f3, %ecx            # imm = 0x2F3
movq %rcx, 0x18(%rax)
movq 0x28(%rsp), %rax
movq 0x50(%rax), %rcx
addq $0x20, %rcx
movq %rcx, 0x50(%rax)
movq 0x28(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rcx
movq 0x28(%rsp), %rax
movq %rcx, (%rax)
movb $0x0, 0x37(%rsp)
movb 0x37(%rsp), %al
andb $0x1, %al
addq $0x38, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: op_dox_step_p
static bool op_dox_step_p(s7_scheme *sc)
                {
                    s7_pointer slot;
                    for (slot = let_slots(sc->envir); tis_slot(slot); slot = next_slot(slot))
                        if (slot_has_expression(slot))
                            slot_set_value(slot, fx_call(sc, slot_expression(slot)));
                    sc->value = fx_call(sc, cadr(sc->code));
                    if (is_true(sc, sc->value))
                    {
                        sc->code = cdadr(sc->code);
                        return(true);
                    }
                    push_stack_no_args(sc, OP_DOX_STEP_P, sc->code);
                    sc->code = caddr(sc->code);
                    return(false);
                }

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x28(%rsp)
movq 0x28(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, 0x20(%rsp)
cmpq $0x0, 0x20(%rsp)
je 0x13a593
movq 0x20(%rsp), %rax
movq (%rax), %rax
andq $0x2000000, %rax        # imm = 0x2000000
cmpq $0x0, %rax
je 0x13a581
movq 0x20(%rsp), %rax
movq 0x28(%rax), %rax
movq %rax, 0x18(%rsp)
movq 0x18(%rsp), %rax
movq 0x20(%rax), %rax
movq 0x28(%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, 0x10(%rax)
jmp 0x13a583
movq 0x20(%rsp), %rax
movq 0x18(%rax), %rax
movq %rax, 0x20(%rsp)
jmp 0x13a52b
movq 0x28(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
movq 0x20(%rax), %rax
movq 0x28(%rsp), %rdi
movq 0x8(%rsp), %rcx
movq 0x8(%rcx), %rsi
callq *%rax
movq %rax, (%rsp)
movq (%rsp), %rcx
movq 0x28(%rsp), %rax
movq %rcx, 0x20(%rax)
movq 0x28(%rsp), %rax
movq 0x20(%rax), %rax
movq 0x28(%rsp), %rcx
cmpq 0x120(%rcx), %rax
je 0x13a60c
movq 0x28(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rcx
movq 0x28(%rsp), %rax
movq %rcx, (%rax)
movb $0x1, 0x37(%rsp)
jmp 0x13a67c
jmp 0x13a60e
movq 0x28(%rsp), %rax
movq (%rax), %rcx
movq 0x28(%rsp), %rax
movq 0x50(%rax), %rax
movq %rcx, (%rax)
movq 0x28(%rsp), %rax
movq 0x8(%rax), %rcx
movq 0x28(%rsp), %rax
movq 0x50(%rax), %rax
movq %rcx, 0x8(%rax)
movq 0x28(%rsp), %rax
movq 0x50(%rax), %rax
movl $0x2f4, %ecx            # imm = 0x2F4
movq %rcx, 0x18(%rax)
movq 0x28(%rsp), %rax
movq 0x50(%rax), %rcx
addq $0x20, %rcx
movq %rcx, 0x50(%rax)
movq 0x28(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rcx
movq 0x28(%rsp), %rax
movq %rcx, (%rax)
movb $0x0, 0x37(%rsp)
movb 0x37(%rsp), %al
andb $0x1, %al
addq $0x38, %rsp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: op_do_init
static bool op_do_init(s7_scheme *sc)
                {
                    if (is_multiple_value(sc->value))               /* (do ((i (values 1 2)))...) */
                        eval_error_no_return(sc, sc->wrong_type_arg_symbol, "do: variable initial value can't be ~S", 38, cons(sc, sc->values_symbol, sc->value));
                    if (do_init_ex(sc) == goto_eval) return(false);
                    return(true);
                }

// Assembly:
subq $0x58, %rsp
movq %rdi, 0x48(%rsp)
movq 0x48(%rsp), %rax
movq 0x20(%rax), %rax
movzwl (%rax), %eax
andl $0x8000, %eax           # imm = 0x8000
cmpl $0x0, %eax
je 0x13b441
movq 0x48(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x48(%rsp), %rax
movq 0x1940(%rax), %rax
movq %rax, 0x10(%rsp)
movq 0x48(%rsp), %rax
movq %rax, 0x18(%rsp)
movq 0x48(%rsp), %rdi
leaq 0xb4958(%rip), %rsi     # 0x1efccc
movl $0x26, %edx
callq 0xb880
movq %rax, 0x20(%rsp)
movq 0x48(%rsp), %rax
movq 0x1638(%rax), %rax
movq %rax, 0x38(%rsp)
movq 0x48(%rsp), %rax
movq 0x20(%rax), %rax
movq %rax, 0x30(%rsp)
movq 0x48(%rsp), %rax
movq 0x90(%rax), %rax
movq 0x48(%rsp), %rcx
cmpq 0x98(%rcx), %rax
ja 0x13b3c6
movq 0x48(%rsp), %rdi
callq 0xc670
movq 0x48(%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 0xb830
movq 0x8(%rsp), %rdi
movq 0x10(%rsp), %rsi
movq %rax, %rdx
callq 0x2f940
movq 0x48(%rsp), %rdi
callq 0x173b30
cmpl $0x5, %eax
jne 0x13b457
movb $0x0, 0x57(%rsp)
jmp 0x13b45c
movb $0x1, 0x57(%rsp)
movb 0x57(%rsp), %al
andb $0x1, %al
addq $0x58, %rsp
retq
nopw (%rax,%rax)