LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: op_let_temp_setter
static void op_let_temp_setter(s7_scheme *sc)
                {
                    s7_pointer var, slot, sym, e;
                    set_current_code(sc, sc->code);
                    sc->code = cdr(sc->code);
                    var = caaar(sc->code);
                    sym = fx_call(sc, cdr(var));
                    e = sc->envir;
                    sc->envir = fx_call(sc, cddr(var));
                    slot = symbol_to_slot(sc, sym);
                    sc->envir = e;
                    push_stack(sc, OP_LET_TEMP_SETTER_UNWIND, slot_setter(slot), slot);
                    slot_set_setter(slot, sc->F);
                    sc->code = cdr(sc->code);
                }

// Assembly:
subq $0x48, %rsp
movq %rdi, 0x40(%rsp)
movq 0x40(%rsp), %rax
movq (%rax), %rcx
movq 0x40(%rsp), %rax
movq %rcx, 0x28(%rax)
movq 0x40(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rcx
movq 0x40(%rsp), %rax
movq %rcx, (%rax)
movq 0x40(%rsp), %rax
movq (%rax), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, 0x38(%rsp)
movq 0x38(%rsp), %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, 0x28(%rsp)
movq 0x40(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x20(%rsp)
movq 0x38(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
movq 0x20(%rax), %rax
movq 0x40(%rsp), %rdi
movq 0x8(%rsp), %rcx
movq 0x8(%rcx), %rsi
callq *%rax
movq %rax, (%rsp)
movq (%rsp), %rcx
movq 0x40(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x40(%rsp), %rdi
movq 0x28(%rsp), %rsi
callq 0xfc80
movq %rax, 0x30(%rsp)
movq 0x20(%rsp), %rcx
movq 0x40(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x30(%rsp), %rcx
movq 0x40(%rsp), %rax
movq 0x50(%rax), %rax
movq %rcx, (%rax)
movq 0x40(%rsp), %rax
movq 0x8(%rax), %rcx
movq 0x40(%rsp), %rax
movq 0x50(%rax), %rax
movq %rcx, 0x8(%rax)
movq 0x30(%rsp), %rax
movq 0x28(%rax), %rcx
movq 0x40(%rsp), %rax
movq 0x50(%rax), %rax
movq %rcx, 0x10(%rax)
movq 0x40(%rsp), %rax
movq 0x50(%rax), %rax
movl $0x1c2, %ecx            # imm = 0x1C2
movq %rcx, 0x18(%rax)
movq 0x40(%rsp), %rax
movq 0x50(%rax), %rcx
addq $0x20, %rcx
movq %rcx, 0x50(%rax)
movq 0x30(%rsp), %rdi
movq 0x40(%rsp), %rax
movq 0x120(%rax), %rsi
callq 0x3de20
movq 0x40(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rcx
movq 0x40(%rsp), %rax
movq %rcx, (%rax)
addq $0x48, %rsp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: op_cond_unchecked
static bool op_cond_unchecked(s7_scheme *sc)
                {
                    set_current_code(sc, sc->code);
                    sc->code = cdr(sc->code);
                    if (has_fx(car(sc->code)))
                    {
                        sc->value = fx_call(sc, car(sc->code)); /* false -> fall through into cond1 */
                        return(false);
                    }
                    push_stack_no_args(sc, OP_COND1, sc->code); /* true -> push cond1, goto eval */
                    sc->code = opt3_any(sc->code);  /* caar */
                    return(true);
                }

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x18(%rsp)
movq 0x18(%rsp), %rax
movq (%rax), %rcx
movq 0x18(%rsp), %rax
movq %rcx, 0x28(%rax)
movq 0x18(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rcx
movq 0x18(%rsp), %rax
movq %rcx, (%rax)
movq 0x18(%rsp), %rax
movq (%rax), %rax
movq 0x8(%rax), %rax
movzwl 0x6(%rax), %eax
andl $0x4, %eax
cmpl $0x0, %eax
je 0x15226a
movq 0x18(%rsp), %rax
movq (%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)
movb $0x0, 0x27(%rsp)
jmp 0x1522d2
jmp 0x15226c
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 $0x1c4, %ecx            # imm = 0x1C4
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 0x28(%rax), %rcx
movq 0x18(%rsp), %rax
movq %rcx, (%rax)
movb $0x1, 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_cond_simple
static bool op_cond_simple(s7_scheme *sc)  /* no => */
                {
                    set_current_code(sc, sc->code);
                    sc->code = cdr(sc->code);
                    if (has_fx(car(sc->code)))
                    {
                        sc->value = fx_call(sc, car(sc->code));
                        return(false);
                    }
                    push_stack_no_args(sc, OP_COND1_SIMPLE, sc->code);
                    sc->code = opt3_any(sc->code);  /* caar */
                    return(true);
                }

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x18(%rsp)
movq 0x18(%rsp), %rax
movq (%rax), %rcx
movq 0x18(%rsp), %rax
movq %rcx, 0x28(%rax)
movq 0x18(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rcx
movq 0x18(%rsp), %rax
movq %rcx, (%rax)
movq 0x18(%rsp), %rax
movq (%rax), %rax
movq 0x8(%rax), %rax
movzwl 0x6(%rax), %eax
andl $0x4, %eax
cmpl $0x0, %eax
je 0x152bda
movq 0x18(%rsp), %rax
movq (%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)
movb $0x0, 0x27(%rsp)
jmp 0x152c42
jmp 0x152bdc
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 $0x1c7, %ecx            # imm = 0x1C7
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 0x28(%rax), %rcx
movq 0x18(%rsp), %rax
movq %rcx, (%rax)
movb $0x1, 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_cond_simple_p
static bool op_cond_simple_p(s7_scheme *sc)  /* no =>, no null or multiform consequent */
                {
                    set_current_code(sc, sc->code);
                    sc->code = cdr(sc->code);
                    if (has_fx(car(sc->code)))
                    {
                        sc->value = fx_call(sc, car(sc->code));
                        return(false);
                    }
                    push_stack_no_args(sc, OP_COND1_SIMPLE_P, sc->code);
                    sc->code = opt3_any(sc->code);  /* caar */
                    return(true);
                }

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x18(%rsp)
movq 0x18(%rsp), %rax
movq (%rax), %rcx
movq 0x18(%rsp), %rax
movq %rcx, 0x28(%rax)
movq 0x18(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rcx
movq 0x18(%rsp), %rax
movq %rcx, (%rax)
movq 0x18(%rsp), %rax
movq (%rax), %rax
movq 0x8(%rax), %rax
movzwl 0x6(%rax), %eax
andl $0x4, %eax
cmpl $0x0, %eax
je 0x152ffa
movq 0x18(%rsp), %rax
movq (%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)
movb $0x0, 0x27(%rsp)
jmp 0x153062
jmp 0x152ffc
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 $0x1c9, %ecx            # imm = 0x1C9
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 0x28(%rax), %rcx
movq 0x18(%rsp), %rax
movq %rcx, (%rax)
movb $0x1, 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: fx_cond_fx_fx
static inline s7_pointer fx_cond_fx_fx(s7_scheme *sc, s7_pointer code)  /* all tests are fxable, results are all fx, no =>, no missing results */
                {
                    s7_pointer p;
                    for (p = cdr(code); is_pair(p); p = cdr(p))
                    {
                        if (is_true(sc, fx_call(sc, car(p))))
                        {
                            for (p = cdar(p); is_pair(cdr(p)); p = cdr(p))
                                fx_call(sc, p);
                            return(fx_call(sc, p));
                        }
                    }
                    return(sc->unspecified);
                }

// Assembly:
subq $0x58, %rsp
movq %rdi, 0x48(%rsp)
movq %rsi, 0x40(%rsp)
movq 0x40(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, 0x38(%rsp)
movq 0x38(%rsp), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0x153354
movq 0x38(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x30(%rsp)
movq 0x30(%rsp), %rax
movq 0x20(%rax), %rax
movq 0x48(%rsp), %rdi
movq 0x30(%rsp), %rcx
movq 0x8(%rcx), %rsi
callq *%rax
movq %rax, 0x28(%rsp)
movq 0x28(%rsp), %rax
movq 0x48(%rsp), %rcx
cmpq 0x120(%rcx), %rax
je 0x15333f
movq 0x38(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rax
movq %rax, 0x38(%rsp)
movq 0x38(%rsp), %rax
movq 0x10(%rax), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0x15330b
movq 0x38(%rsp), %rax
movq %rax, 0x20(%rsp)
movq 0x20(%rsp), %rax
movq 0x20(%rax), %rax
movq 0x48(%rsp), %rdi
movq 0x20(%rsp), %rcx
movq 0x8(%rcx), %rsi
callq *%rax
movq %rax, 0x18(%rsp)
movq 0x38(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, 0x38(%rsp)
jmp 0x1532c2
movq 0x38(%rsp), %rax
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rax
movq 0x20(%rax), %rax
movq 0x48(%rsp), %rdi
movq 0x10(%rsp), %rcx
movq 0x8(%rcx), %rsi
callq *%rax
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
movq %rax, 0x50(%rsp)
jmp 0x153365
jmp 0x153341
movq 0x38(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, 0x38(%rsp)
jmp 0x15325c
movq 0x48(%rsp), %rax
movq 0x130(%rax), %rax
movq %rax, 0x50(%rsp)
movq 0x50(%rsp), %rax
addq $0x58, %rsp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: op_cond_fx_fp_1
static bool op_cond_fx_fp_1(s7_scheme *sc)  /* continuing to handle a multi-statement result from cond_fx_fp */
                {
                    s7_pointer p;
                    for (p = sc->code; is_pair(p); p = cdr(p))
                    {
                        if (has_fx(T_Pair(p)))
                            sc->value = fx_call(sc, p);
                        else
                        {
                            if (is_pair(cdr(p)))
                                push_stack_no_args(sc, OP_COND_FX_FP_1, cdr(p));
                            sc->code = car(p);
                            return(false);
                        }
                    }
                    return(true);
                }

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x18(%rsp)
movq 0x18(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0x15361e
movq 0x10(%rsp), %rax
movzwl 0x6(%rax), %eax
andl $0x4, %eax
cmpl $0x0, %eax
je 0x15358e
movq 0x10(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
movq 0x20(%rax), %rax
movq 0x18(%rsp), %rdi
movq 0x8(%rsp), %rcx
movq 0x8(%rcx), %rsi
callq *%rax
movq %rax, (%rsp)
movq (%rsp), %rcx
movq 0x18(%rsp), %rax
movq %rcx, 0x20(%rax)
jmp 0x153609
movq 0x10(%rsp), %rax
movq 0x10(%rax), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0x1535f1
jmp 0x1535a1
movq 0x10(%rsp), %rax
movq 0x10(%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 $0x2e8, %ecx            # imm = 0x2E8
movq %rcx, 0x18(%rax)
movq 0x18(%rsp), %rax
movq 0x50(%rax), %rcx
addq $0x20, %rcx
movq %rcx, 0x50(%rax)
jmp 0x1535f1
movq 0x10(%rsp), %rax
movq 0x8(%rax), %rcx
movq 0x18(%rsp), %rax
movq %rcx, (%rax)
movb $0x0, 0x27(%rsp)
jmp 0x153623
jmp 0x15360b
movq 0x10(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
jmp 0x153536
movb $0x1, 0x27(%rsp)
movb 0x27(%rsp), %al
andb $0x1, %al
addq $0x28, %rsp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: op_cond_fx_2e
static bool op_cond_fx_2e(s7_scheme *sc)
                {
                    s7_pointer p;
                    p = cdr(sc->code);
                    if (is_true(sc, fx_call(sc, car(p))))
                        return(fx_cond_value(sc, cdar(p)));
                    return(fx_cond_value(sc, cdadr(p)));
                }

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x18(%rsp)
movq 0x18(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rax
movq 0x8(%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), %rax
movq 0x18(%rsp), %rcx
cmpq 0x120(%rcx), %rax
je 0x1536a6
movq 0x18(%rsp), %rdi
movq 0x10(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rsi
callq 0x197150
andb $0x1, %al
movb %al, 0x27(%rsp)
jmp 0x1536c7
movq 0x18(%rsp), %rdi
movq 0x10(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rsi
callq 0x197150
andb $0x1, %al
movb %al, 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_cond_fx_3e
static bool op_cond_fx_3e(s7_scheme *sc)
                {
                    s7_pointer p;
                    p = cdr(sc->code);
                    if (is_true(sc, fx_call(sc, car(p))))
                        return(fx_cond_value(sc, cdar(p)));
                    p = cdr(p);
                    if (is_true(sc, fx_call(sc, car(p))))
                        return(fx_cond_value(sc, cdar(p)));
                    return(fx_cond_value(sc, cdadr(p)));
                }

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x28(%rsp)
movq 0x28(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq %rax, 0x20(%rsp)
movq 0x20(%rsp), %rax
movq 0x8(%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), %rax
movq 0x28(%rsp), %rcx
cmpq 0x120(%rcx), %rax
je 0x15375b
movq 0x28(%rsp), %rdi
movq 0x20(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rsi
callq 0x197150
andb $0x1, %al
movb %al, 0x37(%rsp)
jmp 0x1537e6
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, 0x20(%rsp)
movq 0x20(%rsp), %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), %rax
movq 0x28(%rsp), %rcx
cmpq 0x120(%rcx), %rax
je 0x1537c5
movq 0x28(%rsp), %rdi
movq 0x20(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rsi
callq 0x197150
andb $0x1, %al
movb %al, 0x37(%rsp)
jmp 0x1537e6
movq 0x28(%rsp), %rdi
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rsi
callq 0x197150
andb $0x1, %al
movb %al, 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_and_ap
static bool op_and_ap(s7_scheme *sc)
                {
                    /* we know c_callee is set on sc->code, and there are only two branches */
                    if (is_false(sc, fx_call(sc, cdr(sc->code))))
                    {
                        sc->value = sc->F;
                        return(true);
                    }
                    sc->code = caddr(sc->code);
                    return(false);
                }

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x18(%rsp)
movq 0x18(%rsp), %rax
movq (%rax), %rax
movq 0x10(%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), %rax
movq 0x18(%rsp), %rcx
cmpq 0x120(%rcx), %rax
jne 0x153c77
movq 0x18(%rsp), %rax
movq 0x120(%rax), %rcx
movq 0x18(%rsp), %rax
movq %rcx, 0x20(%rax)
movb $0x1, 0x27(%rsp)
jmp 0x153c98
movq 0x18(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq 0x10(%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
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: fx_and_n
static s7_pointer fx_and_n(s7_scheme *sc, s7_pointer arg)
                {
                    s7_pointer p, x;
                    x = sc->T;
                    for (p = cdr(arg); is_pair(p); p = cdr(p)) /* in lg, 5/6 args appears to predominate */
                    {
                        x = fx_call(sc, p);
                        if (is_false(sc, x))
                            return(x);
                    }
                    return(x);
                }

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x28(%rsp)
movq %rsi, 0x20(%rsp)
movq 0x28(%rsp), %rax
movq 0x118(%rax), %rax
movq %rax, 0x10(%rsp)
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, 0x18(%rsp)
movq 0x18(%rsp), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0x153d4b
movq 0x18(%rsp), %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), %rax
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rax
movq 0x28(%rsp), %rcx
cmpq 0x120(%rcx), %rax
jne 0x153d39
movq 0x10(%rsp), %rax
movq %rax, 0x30(%rsp)
jmp 0x153d55
jmp 0x153d3b
movq 0x18(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, 0x18(%rsp)
jmp 0x153cdd
movq 0x10(%rsp), %rax
movq %rax, 0x30(%rsp)
movq 0x30(%rsp), %rax
addq $0x38, %rsp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: op_and_pair_p
static bool op_and_pair_p(s7_scheme *sc)
                {
                    if (!is_pair(lookup(sc, opt3_sym(sc->code)))) /* cadadr(sc->code) */
                    {
                        sc->value = sc->F;
                        return(true);
                    }
                    sc->code = opt2_con(sc->code);                /* caddr(sc->code); */
                    return(false);
                }

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x8(%rsp)
movq 0x8(%rsp), %rdi
movq 0x8(%rsp), %rax
movq (%rax), %rax
movq 0x28(%rax), %rsi
callq 0xde990
movzbl (%rax), %eax
cmpl $0x1, %eax
je 0x153e53
movq 0x8(%rsp), %rax
movq 0x120(%rax), %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x20(%rax)
movb $0x1, 0x17(%rsp)
jmp 0x153e6c
movq 0x8(%rsp), %rax
movq (%rax), %rax
movq 0x20(%rax), %rcx
movq 0x8(%rsp), %rax
movq %rcx, (%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_and_safe_aa
static void op_and_safe_aa(s7_scheme *sc)
                {
                    sc->code = cdr(sc->code);
                    sc->value = fx_call(sc, sc->code);
                    if (is_true(sc, sc->value))
                        sc->value = fx_call(sc, cdr(sc->code));
                }

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
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 %rax, 0x18(%rsp)
movq 0x18(%rsp), %rax
movq 0x20(%rax), %rax
movq 0x20(%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, 0x20(%rax)
movq 0x20(%rsp), %rax
movq 0x20(%rax), %rax
movq 0x20(%rsp), %rcx
cmpq 0x120(%rcx), %rax
je 0x153f28
movq 0x20(%rsp), %rax
movq (%rax), %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), %rcx
movq 0x20(%rsp), %rax
movq %rcx, 0x20(%rax)
addq $0x28, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: op_and_safe_p2
static bool op_and_safe_p2(s7_scheme *sc)
                {
                    sc->value = fx_call(sc, cdr(sc->code));
                    if (is_false(sc, sc->value)) return(true);
                    sc->code = cddr(sc->code);
                    push_stack_no_args(sc, OP_AND_SAFE_P_REST, sc->code);
                    sc->code = car(sc->code);
                    return(false);
                }

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x18(%rsp)
movq 0x18(%rsp), %rax
movq (%rax), %rax
movq 0x10(%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
jne 0x154014
movb $0x1, 0x27(%rsp)
jmp 0x154092
movq 0x18(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rcx
movq 0x18(%rsp), %rax
movq %rcx, (%rax)
movq 0x18(%rsp), %rax
movq (%rax), %rcx
movq 0x18(%rsp), %rax
movq 0x50(%rax), %rax
movq %rcx, (%rax)
movq 0x18(%rsp), %rax
movq 0x8(%rax), %rcx
movq 0x18(%rsp), %rax
movq 0x50(%rax), %rax
movq %rcx, 0x8(%rax)
movq 0x18(%rsp), %rax
movq 0x50(%rax), %rax
movl $0x28d, %ecx            # imm = 0x28D
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 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_and_safe_p3
static bool op_and_safe_p3(s7_scheme *sc)
                {
                    sc->value = fx_call(sc, cdr(sc->code));
                    if (is_false(sc, sc->value)) return(true);
                    sc->code = cddr(sc->code);
                    sc->value = fx_call(sc, sc->code);
                    if (is_false(sc, sc->value)) return(true);
                    sc->code = cadr(sc->code);
                    return(false);
                }

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x28(%rsp)
movq 0x28(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq %rax, 0x20(%rsp)
movq 0x20(%rsp), %rax
movq 0x20(%rax), %rax
movq 0x28(%rsp), %rdi
movq 0x20(%rsp), %rcx
movq 0x8(%rcx), %rsi
callq *%rax
movq %rax, 0x18(%rsp)
movq 0x18(%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
jne 0x154107
movb $0x1, 0x37(%rsp)
jmp 0x154193
movq 0x28(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rcx
movq 0x28(%rsp), %rax
movq %rcx, (%rax)
movq 0x28(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rax
movq 0x20(%rax), %rax
movq 0x28(%rsp), %rdi
movq 0x10(%rsp), %rcx
movq 0x8(%rcx), %rsi
callq *%rax
movq %rax, 0x8(%rsp)
movq 0x8(%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
jne 0x154176
movb $0x1, 0x37(%rsp)
jmp 0x154193
movq 0x28(%rsp), %rax
movq (%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
nop
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: op_or_ap
static bool op_or_ap(s7_scheme *sc)
                {
                    /* we know c_callee is set on sc->code, and there are only two branches */
                    sc->value = fx_call(sc, cdr(sc->code));
                    if (is_true(sc, sc->value))
                        return(true);
                    sc->code = caddr(sc->code);
                    return(false);
                }

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x18(%rsp)
movq 0x18(%rsp), %rax
movq (%rax), %rax
movq 0x10(%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 0x154454
movb $0x1, 0x27(%rsp)
jmp 0x154475
movq 0x18(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq 0x10(%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
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: fx_or_s_2
static s7_pointer fx_or_s_2(s7_scheme *sc, s7_pointer arg)
                {
                    s7_pointer x;
                    set_car(sc->t1_1, lookup(sc, opt3_sym(cdr(arg)))); /* cadadr(arg); */
                    x = c_call(cadr(arg))(sc, sc->t1_1);
                    if (x != sc->F) return(x);
                    return(c_call(caddr(arg))(sc, sc->t1_1));
                }

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x18(%rsp)
movq %rsi, 0x10(%rsp)
movq 0x18(%rsp), %rdi
movq 0x10(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x28(%rax), %rsi
callq 0xde990
movq %rax, %rcx
movq 0x18(%rsp), %rax
movq 0x568(%rax), %rax
movq %rcx, 0x8(%rax)
movq 0x10(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq 0x20(%rax), %rax
movq 0x18(%rsp), %rdi
movq 0x18(%rsp), %rcx
movq 0x568(%rcx), %rsi
callq *%rax
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
movq 0x18(%rsp), %rcx
cmpq 0x120(%rcx), %rax
je 0x154500
movq 0x8(%rsp), %rax
movq %rax, 0x20(%rsp)
jmp 0x15452d
movq 0x10(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq 0x20(%rax), %rax
movq 0x18(%rsp), %rdi
movq 0x18(%rsp), %rcx
movq 0x568(%rcx), %rsi
callq *%rax
movq %rax, 0x20(%rsp)
movq 0x20(%rsp), %rax
addq $0x28, %rsp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: fx_or_3
static s7_pointer fx_or_3(s7_scheme *sc, s7_pointer arg)
                {
                    s7_pointer p, val;
                    p = cdr(arg);
                    val = fx_call(sc, p);
                    if (val != sc->F) return(val);
                    p = cdr(p);
                    val = fx_call(sc, p);
                    if (val != sc->F) return(val);
                    return(fx_call(sc, cdr(p)));
                }

// Assembly:
subq $0x58, %rsp
movq %rdi, 0x48(%rsp)
movq %rsi, 0x40(%rsp)
movq 0x40(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, 0x38(%rsp)
movq 0x38(%rsp), %rax
movq %rax, 0x28(%rsp)
movq 0x28(%rsp), %rax
movq 0x20(%rax), %rax
movq 0x48(%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 0x30(%rsp), %rax
movq 0x48(%rsp), %rcx
cmpq 0x120(%rcx), %rax
je 0x154640
movq 0x30(%rsp), %rax
movq %rax, 0x50(%rsp)
jmp 0x1546d3
movq 0x38(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, 0x38(%rsp)
movq 0x38(%rsp), %rax
movq %rax, 0x18(%rsp)
movq 0x18(%rsp), %rax
movq 0x20(%rax), %rax
movq 0x48(%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 0x30(%rsp), %rax
movq 0x48(%rsp), %rcx
cmpq 0x120(%rcx), %rax
je 0x15469f
movq 0x30(%rsp), %rax
movq %rax, 0x50(%rsp)
jmp 0x1546d3
movq 0x38(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
movq 0x20(%rax), %rax
movq 0x48(%rsp), %rdi
movq 0x8(%rsp), %rcx
movq 0x8(%rcx), %rsi
callq *%rax
movq %rax, (%rsp)
movq (%rsp), %rax
movq %rax, 0x50(%rsp)
movq 0x50(%rsp), %rax
addq $0x58, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: fx_or_n
static s7_pointer fx_or_n(s7_scheme *sc, s7_pointer arg)
                {
                    s7_pointer p;
                    for (p = cdr(arg); is_pair(p); p = cdr(p))
                    {
                        s7_pointer x;
                        x = fx_call(sc, p);
                        if (is_true(sc, x))
                            return(x);
                    }
                    return(sc->F);
                }

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x28(%rsp)
movq %rsi, 0x20(%rsp)
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, 0x18(%rsp)
movq 0x18(%rsp), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0x15476a
movq 0x18(%rsp), %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), %rax
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rax
movq 0x28(%rsp), %rcx
cmpq 0x120(%rcx), %rax
je 0x154758
movq 0x10(%rsp), %rax
movq %rax, 0x30(%rsp)
jmp 0x15477b
jmp 0x15475a
movq 0x18(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, 0x18(%rsp)
jmp 0x1546fc
movq 0x28(%rsp), %rax
movq 0x120(%rax), %rax
movq %rax, 0x30(%rsp)
movq 0x30(%rsp), %rax
addq $0x38, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: op_eval_macro
static void op_eval_macro(s7_scheme *sc) /* after (scheme-side) macroexpansion, evaluate the resulting expression */
                {
                    /* (define-macro (hi a) `(+ ,a 1))
                     * (hi 2)
                     * here with value: (+ 2 1)
                     */
                    if (is_multiple_value(sc->value))
                    {
                        /* a normal macro's result is evaluated (below) and its value replaces the macro invocation,
                         *   so if a macro returns multiple values, evaluate each one, then replace the macro
                         *   invocation with (apply values evaluated-results-in-a-list).  We need to save the
                         *   new list of results, and where we are in the macro's output list, so code=macro output,
                         *   args=new list.  If it returns (values), should we use #<unspecified>?  I think that
                         *   happens now without generating a multiple_value object:
                         *       (define-macro (hi) (values)) (hi) -> #<unspecified>
                         *   (define-macro (ho) (values '(+ 1 2) '(* 3 4))) (+ 1 (ho) 3) -> 19
                         *   (define-macro (ha) (values '(define a 1) '(define b 2))) (let () (ha) (+ a b)) -> 3
                         */
                        push_stack(sc, OP_EVAL_MACRO_MV, sc->nil, cdr(sc->value));
                        sc->code = car(sc->value);
                    }
                    else sc->code = sc->value;
                }

// Assembly:
movq %rdi, -0x8(%rsp)
movq -0x8(%rsp), %rax
movq 0x20(%rax), %rax
movzwl (%rax), %eax
andl $0x8000, %eax           # imm = 0x8000
cmpl $0x0, %eax
je 0x1548e3
jmp 0x154861
movq -0x8(%rsp), %rax
movq 0x20(%rax), %rax
movq 0x10(%rax), %rcx
movq -0x8(%rsp), %rax
movq 0x50(%rax), %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 0x110(%rax), %rcx
movq -0x8(%rsp), %rax
movq 0x50(%rax), %rax
movq %rcx, 0x10(%rax)
movq -0x8(%rsp), %rax
movq 0x50(%rax), %rax
movl $0x30f, %ecx            # imm = 0x30F
movq %rcx, 0x18(%rax)
movq -0x8(%rsp), %rax
movq 0x50(%rax), %rcx
addq $0x20, %rcx
movq %rcx, 0x50(%rax)
movq -0x8(%rsp), %rax
movq 0x20(%rax), %rax
movq 0x8(%rax), %rcx
movq -0x8(%rsp), %rax
movq %rcx, (%rax)
jmp 0x1548f4
movq -0x8(%rsp), %rax
movq 0x20(%rax), %rcx
movq -0x8(%rsp), %rax
movq %rcx, (%rax)
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: op_eval_macro_mv
static bool op_eval_macro_mv(s7_scheme *sc)
                {
                    if (is_null(sc->code)) /* end of values list */
                    {
                        sc->value = splice_in_values(sc, multiple_value(safe_reverse_in_place(sc, cons(sc, sc->value, sc->args))));
                        return(true);
                    }
                    push_stack(sc, OP_EVAL_MACRO_MV, cons(sc, sc->value, sc->args), cdr(sc->code));
                    sc->code = car(sc->code);
                    return(false);
                }

// Assembly:
subq $0x68, %rsp
movq %rdi, 0x58(%rsp)
movq 0x58(%rsp), %rax
movq (%rax), %rax
movq 0x58(%rsp), %rcx
cmpq 0x110(%rcx), %rax
jne 0x1549fe
movq 0x58(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x58(%rsp), %rax
movq %rax, 0x10(%rsp)
movq 0x58(%rsp), %rax
movq 0x20(%rax), %rax
movq %rax, 0x48(%rsp)
movq 0x58(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, 0x40(%rsp)
movq 0x58(%rsp), %rax
movq 0x90(%rax), %rax
movq 0x58(%rsp), %rcx
cmpq 0x98(%rcx), %rax
ja 0x154977
movq 0x58(%rsp), %rdi
callq 0xc670
movq 0x58(%rsp), %rcx
movq 0x90(%rcx), %rax
movq %rax, %rdx
addq $-0x8, %rdx
movq %rdx, 0x90(%rcx)
movq -0x8(%rax), %rax
movq %rax, 0x50(%rsp)
movq 0x50(%rsp), %rax
movq $0x200001, (%rax)       # imm = 0x200001
movq 0x10(%rsp), %rdi
movq 0x48(%rsp), %rcx
movq 0x50(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x40(%rsp), %rcx
movq 0x50(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x50(%rsp), %rax
movq %rax, 0x38(%rsp)
movq 0x38(%rsp), %rsi
callq 0xe460
movq 0x8(%rsp), %rdi
movq %rax, %rsi
callq 0x28170
movq %rax, %rcx
movq 0x58(%rsp), %rax
movq %rcx, 0x20(%rax)
movb $0x1, 0x67(%rsp)
jmp 0x154b11
jmp 0x154a00
movq 0x58(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rcx
movq 0x58(%rsp), %rax
movq 0x50(%rax), %rax
movq %rcx, (%rax)
movq 0x58(%rsp), %rax
movq 0x8(%rax), %rcx
movq 0x58(%rsp), %rax
movq 0x50(%rax), %rax
movq %rcx, 0x8(%rax)
movq 0x58(%rsp), %rax
movq 0x20(%rax), %rax
movq %rax, 0x28(%rsp)
movq 0x58(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, 0x20(%rsp)
movq 0x58(%rsp), %rax
movq 0x90(%rax), %rax
movq 0x58(%rsp), %rcx
cmpq 0x98(%rcx), %rax
ja 0x154a6e
movq 0x58(%rsp), %rdi
callq 0xc670
movq 0x58(%rsp), %rcx
movq 0x90(%rcx), %rax
movq %rax, %rdx
addq $-0x8, %rdx
movq %rdx, 0x90(%rcx)
movq -0x8(%rax), %rax
movq %rax, 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, 0x18(%rsp)
movq 0x18(%rsp), %rcx
movq 0x58(%rsp), %rax
movq 0x50(%rax), %rax
movq %rcx, 0x10(%rax)
movq 0x58(%rsp), %rax
movq 0x50(%rax), %rax
movl $0x30f, %ecx            # imm = 0x30F
movq %rcx, 0x18(%rax)
movq 0x58(%rsp), %rax
movq 0x50(%rax), %rcx
addq $0x20, %rcx
movq %rcx, 0x50(%rax)
movq 0x58(%rsp), %rax
movq (%rax), %rax
movq 0x8(%rax), %rcx
movq 0x58(%rsp), %rax
movq %rcx, (%rax)
movb $0x0, 0x67(%rsp)
movb 0x67(%rsp), %al
andb $0x1, %al
addq $0x68, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: op_finish_expansion
static void op_finish_expansion(s7_scheme *sc)
                {
                    /* after the expander has finished, if a list was returned, we need to add some annotations.
                     *   if the expander returned (values), the list-in-progress vanishes! (This mimics map and *#readers*).
                     */
                    if (sc->value == sc->no_value)
                        sc->stack_end[-1] = (s7_pointer)OP_READ_NEXT;
                    else
                    {
                        if (is_pair(sc->value))
                            sc->value = copy_body(sc, sc->value);
                    }
                }

// Assembly:
pushq %rax
movq %rdi, (%rsp)
movq (%rsp), %rax
movq 0x20(%rax), %rax
movq (%rsp), %rcx
cmpq 0x138(%rcx), %rax
jne 0x154b4d
movq (%rsp), %rax
movq 0x50(%rax), %rax
movl $0x1d2, %ecx            # imm = 0x1D2
movq %rcx, -0x8(%rax)
jmp 0x154b7b
movq (%rsp), %rax
movq 0x20(%rax), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0x154b79
movq (%rsp), %rdi
movq (%rsp), %rax
movq 0x20(%rax), %rsi
callq 0xda1f0
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x20(%rax)
jmp 0x154b7b
popq %rax
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: op_define_macro_with_setter
static s7_pointer op_define_macro_with_setter(s7_scheme *sc)
                {
                    sc->code = sc->value;
                    if ((!is_pair(sc->code)) ||
                            (!is_pair(car(sc->code))) ||
                            (!is_symbol(caar(sc->code))))
                        eval_error(sc, "define-macro: ~S does not look like a macro?", 44, sc->code);
                    if ((is_immutable(sc->envir)) &&
                            (is_let(sc->envir))) /* not () */
                        eval_error_no_return(sc, sc->syntax_error_symbol, "define-macro ~S: let is immutable", 33, caar(sc->code));
                    sc->value = make_macro(sc, sc->cur_op);
                    return(NULL);
                }

// Assembly:
subq $0x48, %rsp
movq %rdi, 0x38(%rsp)
movq 0x38(%rsp), %rax
movq 0x20(%rax), %rcx
movq 0x38(%rsp), %rax
movq %rcx, (%rax)
movq 0x38(%rsp), %rax
movq (%rax), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0x154bd6
movq 0x38(%rsp), %rax
movq (%rax), %rax
movq 0x8(%rax), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0x154bd6
movq 0x38(%rsp), %rax
movq (%rax), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
movzbl (%rax), %eax
cmpl $0xa, %eax
je 0x154c42
movq 0x38(%rsp), %rax
movq %rax, 0x28(%rsp)
movq 0x38(%rsp), %rax
movq 0x1918(%rax), %rax
movq %rax, 0x30(%rsp)
movq 0x38(%rsp), %rax
movq %rax, 0x20(%rsp)
movq 0x38(%rsp), %rdi
leaq 0x9c4e0(%rip), %rsi     # 0x1f10e7
movl $0x2c, %edx
callq 0xb880
movq 0x20(%rsp), %rdi
movq %rax, %rsi
movq 0x38(%rsp), %rax
movq (%rax), %rdx
callq 0xb830
movq 0x28(%rsp), %rdi
movq 0x30(%rsp), %rsi
movq %rax, %rdx
callq 0x2f940
movq %rax, 0x40(%rsp)
jmp 0x154cfd
movq 0x38(%rsp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
andq $0x1000000, %rax        # imm = 0x1000000
cmpq $0x0, %rax
je 0x154cd5
movq 0x38(%rsp), %rax
movq 0x8(%rax), %rax
movzbl (%rax), %eax
cmpl $0x1c, %eax
jne 0x154cd5
movq 0x38(%rsp), %rax
movq %rax, 0x10(%rsp)
movq 0x38(%rsp), %rax
movq 0x1918(%rax), %rax
movq %rax, 0x18(%rsp)
movq 0x38(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x38(%rsp), %rdi
leaq 0x9c478(%rip), %rsi     # 0x1f1114
movl $0x21, %edx
callq 0xb880
movq 0x8(%rsp), %rdi
movq %rax, %rsi
movq 0x38(%rsp), %rax
movq (%rax), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rdx
callq 0xb830
movq 0x10(%rsp), %rdi
movq 0x18(%rsp), %rsi
movq %rax, %rdx
callq 0x2f940
movq 0x38(%rsp), %rdi
movq 0x38(%rsp), %rax
movq 0x18(%rax), %rsi
callq 0x1971d0
movq %rax, %rcx
movq 0x38(%rsp), %rax
movq %rcx, 0x20(%rax)
movq $0x0, 0x40(%rsp)
movq 0x40(%rsp), %rax
addq $0x48, %rsp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: op_lambda
static void op_lambda(s7_scheme *sc)
                {
                    int32_t arity;
                    set_current_code(sc, sc->code);  /* sc->value=new closure cell, car=args, cdr=body */
                    arity = check_lambda(sc);
                    set_opt3_any(sc->code, (s7_pointer)((intptr_t)arity));
                    make_closure_with_let(sc, sc->value, car(sc->code), cdr(sc->code), sc->envir, arity);
                }

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq 0x10(%rsp), %rax
movq (%rax), %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0x28(%rax)
movq 0x10(%rsp), %rdi
callq 0x197e20
movl %eax, 0xc(%rsp)
movslq 0xc(%rsp), %rcx
movq 0x10(%rsp), %rax
movq (%rax), %rax
movq %rcx, 0x28(%rax)
movq 0x10(%rsp), %rax
movq (%rax), %rax
movq (%rax), %rcx
andq $-0x40001, %rcx         # imm = 0xFFFBFFFF
movq %rcx, (%rax)
jmp 0x154f30
jmp 0x154f32
movq 0x10(%rsp), %rax
movq 0x90(%rax), %rax
movq 0x10(%rsp), %rcx
cmpq 0x98(%rcx), %rax
ja 0x154f56
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), %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0x20(%rax)
movq 0x10(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movabsq $0x12000000001000, %rcx # imm = 0x12000000001000
andq (%rax), %rcx
orq $0x10000028, %rcx       # imm = 0x10000028
movq 0x10(%rsp), %rax
movq 0x20(%rax), %rax
movq %rcx, (%rax)
movq 0x10(%rsp), %rax
movq (%rax), %rax
movq 0x8(%rax), %rcx
movq 0x10(%rsp), %rax
movq 0x20(%rax), %rax
movq %rcx, 0x8(%rax)
movq 0x10(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rcx
movq 0x10(%rsp), %rax
movq 0x20(%rax), %rax
movq %rcx, 0x10(%rax)
movq 0x10(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0x15500b
movq 0x10(%rsp), %rax
movq 0x20(%rax), %rax
movq (%rax), %rcx
orq $0x100, %rcx            # imm = 0x100
movq %rcx, (%rax)
jmp 0x155021
movq 0x10(%rsp), %rax
movq 0x20(%rax), %rax
movq (%rax), %rcx
orq $0x400, %rcx            # imm = 0x400
movq %rcx, (%rax)
movq 0x10(%rsp), %rax
movq 0x8(%rax), %rcx
movq 0x10(%rsp), %rax
movq 0x20(%rax), %rax
movq %rcx, 0x18(%rax)
movq 0x10(%rsp), %rax
movq 0x120(%rax), %rcx
movq 0x10(%rsp), %rax
movq 0x20(%rax), %rax
movq %rcx, 0x20(%rax)
movl 0xc(%rsp), %ecx
movq 0x10(%rsp), %rax
movq 0x20(%rax), %rax
movl %ecx, 0x28(%rax)
movq 0x10(%rsp), %rax
movq 0x240(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x240(%rax)
addq $0x18, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: op_case_e_s
static void op_case_e_s(s7_scheme *sc)
                {
                    s7_pointer x, selector;
                    selector = sc->value;
                    if (is_simple(selector))
                    {
                        for (x = cddr(sc->code); is_pair(x); x = cdr(x))
                            if (opt2_any(x) == selector)
                            {
                                sc->code = opt1_clause(x);
                                return;
                            }
                    }
                    sc->code = opt3_any(cdr(sc->code));
                }

// Assembly:
movq %rdi, -0x8(%rsp)
movq -0x8(%rsp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x18(%rsp)
movq -0x18(%rsp), %rax
movzbl (%rax), %eax
movl %eax, %ecx
leaq 0xcbcfc(%rip), %rax     # 0x222bf0
testb $0x1, (%rax,%rcx)
je 0x156f53
movq -0x8(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq %rax, -0x10(%rsp)
movq -0x10(%rsp), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0x156f51
movq -0x10(%rsp), %rax
movq 0x20(%rax), %rax
cmpq -0x18(%rsp), %rax
jne 0x156f3f
movq -0x10(%rsp), %rax
movq 0x18(%rax), %rcx
movq -0x8(%rsp), %rax
movq %rcx, (%rax)
jmp 0x156f6b
jmp 0x156f41
movq -0x10(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x10(%rsp)
jmp 0x156f0f
jmp 0x156f53
movq -0x8(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq 0x28(%rax), %rcx
movq -0x8(%rsp), %rax
movq %rcx, (%rax)
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: op_case_s_s
static void op_case_s_s(s7_scheme *sc)
                {
                    s7_pointer x, selector;
                    selector = sc->value;
                    if (is_symbol(selector))
                    {
                        for (x = cddr(sc->code); is_pair(x); x = cdr(x))
                            if (opt2_any(x) == selector)
                            {
                                sc->code = opt1_clause(x);
                                return;
                            }
                    }
                    sc->code = opt3_any(cdr(sc->code));
                }

// Assembly:
movq %rdi, -0x8(%rsp)
movq -0x8(%rsp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x18(%rsp)
movq -0x18(%rsp), %rax
movzbl (%rax), %eax
cmpl $0xa, %eax
jne 0x156fe9
movq -0x8(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq %rax, -0x10(%rsp)
movq -0x10(%rsp), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0x156fe7
movq -0x10(%rsp), %rax
movq 0x20(%rax), %rax
cmpq -0x18(%rsp), %rax
jne 0x156fd5
movq -0x10(%rsp), %rax
movq 0x18(%rax), %rcx
movq -0x8(%rsp), %rax
movq %rcx, (%rax)
jmp 0x157001
jmp 0x156fd7
movq -0x10(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x10(%rsp)
jmp 0x156fa5
jmp 0x156fe9
movq -0x8(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq 0x28(%rax), %rcx
movq -0x8(%rsp), %rax
movq %rcx, (%rax)
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: op_case_g_s
static void op_case_g_s(s7_scheme *sc)
                {
                    s7_pointer x, selector;
                    selector = sc->value;
                    for (x = cddr(sc->code); is_pair(x); x = cdr(x))
                        if (s7_is_eqv(opt2_any(x), selector))
                        {
                            sc->code = opt1_clause(x);
                            return;
                        }
                    sc->code = opt3_any(cdr(sc->code));
                }

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq 0x10(%rsp), %rax
movq 0x20(%rax), %rax
movq %rax, (%rsp)
movq 0x10(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0x157215
movq 0x8(%rsp), %rax
movq 0x20(%rax), %rdi
movq (%rsp), %rsi
callq 0x3e6b0
testb $0x1, %al
jne 0x1571f0
jmp 0x157203
movq 0x8(%rsp), %rax
movq 0x18(%rax), %rcx
movq 0x10(%rsp), %rax
movq %rcx, (%rax)
jmp 0x15722d
jmp 0x157205
movq 0x8(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, 0x8(%rsp)
jmp 0x1571cb
movq 0x10(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq 0x28(%rax), %rcx
movq 0x10(%rsp), %rax
movq %rcx, (%rax)
addq $0x18, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: op_error_hook_quit
static void op_error_hook_quit(s7_scheme *sc)
                {
                    sc->error_hook = sc->code;  /* restore old value */
                    /* now mimic the end of the normal error handler.  Since this error hook evaluation can happen
                     *   in an arbitrary s7_call nesting, we can't just return from the current evaluation --
                     *   we have to jump to the original (top-level) call.  Otherwise '#<unspecified> or whatever
                     *   is simply treated as the (non-error) return value, and the higher level evaluations
                     *   get confused.
                     */
                    stack_reset(sc);                                 /* is this necessary? is it a good idea?? */
                    push_stack_op(sc, OP_ERROR_QUIT);                /* added 3-Dec-16: try to make sure we actually exit! */
                    sc->cur_op = OP_ERROR_QUIT;
                    if (sc->longjmp_ok)
                        longjmp(sc->goto_start, ERROR_QUIT_JUMP);
                }

// Assembly:
pushq %rax
movq %rdi, (%rsp)
movq (%rsp), %rax
movq (%rax), %rcx
movq (%rsp), %rax
movq %rcx, 0x208(%rax)
movq (%rsp), %rdi
callq 0x46b80
movq (%rsp), %rax
movq 0x50(%rax), %rax
movl $0x1ed, %ecx            # imm = 0x1ED
movq %rcx, 0x18(%rax)
movq (%rsp), %rax
movq 0x50(%rax), %rcx
addq $0x20, %rcx
movq %rcx, 0x50(%rax)
movq (%rsp), %rax
movq $0x1ed, 0x18(%rax)      # imm = 0x1ED
movq (%rsp), %rax
testb $0x1, 0x678(%rax)
je 0x1575ff
movq (%rsp), %rdi
addq $0x5b0, %rdi            # imm = 0x5B0
movl $0x5, %esi
callq 0x9530
popq %rax
retq
nopw %cs:(%rax,%rax)