LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O1/BernardTatin[P]s7sh/s7.c
// Function: fx_c_opcsq_s
static s7_pointer fx_c_opcsq_s(s7_scheme *sc, s7_pointer arg)
                {
                    s7_pointer largs;
                    largs = cadr(arg);
                    set_car(sc->t2_2, lookup(sc, caddr(largs)));
                    set_car(sc->t2_1, opt1_con(cdr(largs))); /* cadr(largs) or cadadr */
                    set_car(sc->t2_1, c_call(largs)(sc, sc->t2_1));
                    set_car(sc->t2_2, lookup(sc, caddr(arg)));
                    return(c_call(arg)(sc, sc->t2_1));
                }

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rsi, %r14
movq %rdi, %rbx
movq 0x10(%rsi), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rcx
movq 0x10(%rcx), %rcx
movq 0x8(%rcx), %rcx
movq 0x8(%rdi), %rdx
movq 0x18(%rdx), %rdi
movq 0x20(%rcx), %rsi
cmpq %rsi, %rdi
je 0xc7a3e
jle 0xc7a35
movq 0x10(%rdx), %rdx
movq 0x18(%rdx), %rdi
cmpq %rdi, %rsi
jl 0xc7a28
cmpq %rsi, %rdi
jne 0xc7ad7
movq 0x18(%rcx), %rcx
movq 0x10(%rcx), %rsi
movq 0x578(%rbx), %rcx
movq %rsi, 0x8(%rcx)
movq 0x10(%rax), %rcx
movq 0x18(%rcx), %rcx
movq 0x570(%rbx), %rdx
movq %rcx, 0x8(%rdx)
movq 0x570(%rbx), %rsi
movq %rbx, %rdi
callq *0x20(%rax)
movq 0x570(%rbx), %rcx
movq %rax, 0x8(%rcx)
movq 0x10(%r14), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq 0x8(%rbx), %rcx
movq 0x18(%rcx), %rsi
movq 0x20(%rax), %rdx
cmpq %rdx, %rsi
je 0xc7aad
jle 0xc7aa8
movq 0x10(%rcx), %rcx
movq 0x18(%rcx), %rsi
cmpq %rsi, %rdx
jl 0xc7a9b
cmpq %rdx, %rsi
jne 0xc7b1f
movq 0x18(%rax), %rax
movq 0x10(%rax), %rdx
movq 0x578(%rbx), %rax
movq %rdx, 0x8(%rax)
movq 0x20(%r14), %rax
movq 0x570(%rbx), %rsi
movq %rbx, %rdi
addq $0x8, %rsp
popq %rbx
popq %r14
jmpq *%rax
cmpb $0x1c, (%rdx)
jne 0xc7b0b
movq 0x8(%rdx), %r8
testq %r8, %r8
sete %dil
je 0xc7af9
cmpq %rcx, 0x8(%r8)
je 0xc7af5
movq 0x18(%r8), %r8
jmp 0xc7ae0
movq 0x10(%r8), %rsi
testb %dil, %dil
je 0xc7a46
movq 0x10(%rdx), %rdx
cmpb $0x1c, (%rdx)
je 0xc7adc
movq 0x10(%rcx), %rcx
cmpb $0x20, (%rcx)
je 0xc7a42
xorl %esi, %esi
jmp 0xc7a46
cmpb $0x1c, (%rcx)
jne 0xc7b53
movq 0x8(%rcx), %rdi
testq %rdi, %rdi
sete %sil
je 0xc7b41
cmpq %rax, 0x8(%rdi)
je 0xc7b3d
movq 0x18(%rdi), %rdi
jmp 0xc7b28
movq 0x10(%rdi), %rdx
testb %sil, %sil
je 0xc7ab5
movq 0x10(%rcx), %rcx
cmpb $0x1c, (%rcx)
je 0xc7b24
movq 0x10(%rax), %rax
cmpb $0x20, (%rax)
je 0xc7ab1
xorl %edx, %edx
jmp 0xc7ab5
// File: /workspace/github_c_makefile_star2_O1/BernardTatin[P]s7sh/s7.c
// Function: fx_c_s_opscq
static s7_pointer fx_c_s_opscq(s7_scheme *sc, s7_pointer arg)
                {
                    s7_pointer largs;
                    largs = caddr(arg);
                    set_car(sc->t2_1, lookup(sc, cadr(largs)));
                    set_car(sc->t2_2, opt2_con(cdr(largs)));
                    set_car(sc->t2_2, c_call(largs)(sc, sc->t2_1));
                    set_car(sc->t2_1, lookup(sc, cadr(arg)));
                    return(c_call(arg)(sc, sc->t2_1));
                }

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rsi, %r14
movq %rdi, %rbx
movq 0x10(%rsi), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rcx
movq 0x8(%rcx), %rcx
movq 0x8(%rdi), %rdx
movq 0x18(%rdx), %rdi
movq 0x20(%rcx), %rsi
cmpq %rsi, %rdi
je 0xc7bae
jle 0xc7ba5
movq 0x10(%rdx), %rdx
movq 0x18(%rdx), %rdi
cmpq %rdi, %rsi
jl 0xc7b98
cmpq %rsi, %rdi
jne 0xc7c43
movq 0x18(%rcx), %rcx
movq 0x10(%rcx), %rsi
movq 0x570(%rbx), %rcx
movq %rsi, 0x8(%rcx)
movq 0x10(%rax), %rcx
movq 0x20(%rcx), %rcx
movq 0x578(%rbx), %rdx
movq %rcx, 0x8(%rdx)
movq 0x570(%rbx), %rsi
movq %rbx, %rdi
callq *0x20(%rax)
movq 0x578(%rbx), %rcx
movq %rax, 0x8(%rcx)
movq 0x10(%r14), %rax
movq 0x8(%rax), %rax
movq 0x8(%rbx), %rcx
movq 0x18(%rcx), %rsi
movq 0x20(%rax), %rdx
cmpq %rdx, %rsi
je 0xc7c19
jle 0xc7c14
movq 0x10(%rcx), %rcx
movq 0x18(%rcx), %rsi
cmpq %rsi, %rdx
jl 0xc7c07
cmpq %rdx, %rsi
jne 0xc7c8b
movq 0x18(%rax), %rax
movq 0x10(%rax), %rdx
movq 0x570(%rbx), %rax
movq %rdx, 0x8(%rax)
movq 0x20(%r14), %rax
movq 0x570(%rbx), %rsi
movq %rbx, %rdi
addq $0x8, %rsp
popq %rbx
popq %r14
jmpq *%rax
cmpb $0x1c, (%rdx)
jne 0xc7c77
movq 0x8(%rdx), %r8
testq %r8, %r8
sete %dil
je 0xc7c65
cmpq %rcx, 0x8(%r8)
je 0xc7c61
movq 0x18(%r8), %r8
jmp 0xc7c4c
movq 0x10(%r8), %rsi
testb %dil, %dil
je 0xc7bb6
movq 0x10(%rdx), %rdx
cmpb $0x1c, (%rdx)
je 0xc7c48
movq 0x10(%rcx), %rcx
cmpb $0x20, (%rcx)
je 0xc7bb2
xorl %esi, %esi
jmp 0xc7bb6
cmpb $0x1c, (%rcx)
jne 0xc7cbf
movq 0x8(%rcx), %rdi
testq %rdi, %rdi
sete %sil
je 0xc7cad
cmpq %rax, 0x8(%rdi)
je 0xc7ca9
movq 0x18(%rdi), %rdi
jmp 0xc7c94
movq 0x10(%rdi), %rdx
testb %sil, %sil
je 0xc7c21
movq 0x10(%rcx), %rcx
cmpb $0x1c, (%rcx)
je 0xc7c90
movq 0x10(%rax), %rax
cmpb $0x20, (%rax)
je 0xc7c1d
xorl %edx, %edx
jmp 0xc7c21
// File: /workspace/github_c_makefile_star2_O1/BernardTatin[P]s7sh/s7.c
// Function: fx_c_c_opscq
static s7_pointer fx_c_c_opscq(s7_scheme *sc, s7_pointer arg)
                {
                    s7_pointer largs;
                    largs = caddr(arg);
                    set_car(sc->t2_1, lookup(sc, cadr(largs)));
                    set_car(sc->t2_2, opt2_con(cdr(largs)));
                    set_car(sc->t2_2, c_call(largs)(sc, sc->t2_1));
                    set_car(sc->t2_1, cadr(arg));
                    return(c_call(arg)(sc, sc->t2_1));
                }

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rsi, %r14
movq %rdi, %rbx
movq 0x10(%rsi), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rcx
movq 0x8(%rcx), %rcx
movq 0x8(%rdi), %rdx
movq 0x18(%rdx), %rdi
movq 0x20(%rcx), %rsi
cmpq %rsi, %rdi
je 0xc7d16
jle 0xc7d11
movq 0x10(%rdx), %rdx
movq 0x18(%rdx), %rdi
cmpq %rdi, %rsi
jl 0xc7d04
cmpq %rsi, %rdi
jne 0xc7d7e
movq 0x18(%rcx), %rcx
movq 0x10(%rcx), %rsi
movq 0x570(%rbx), %rcx
movq %rsi, 0x8(%rcx)
movq 0x10(%rax), %rcx
movq 0x20(%rcx), %rcx
movq 0x578(%rbx), %rdx
movq %rcx, 0x8(%rdx)
movq 0x570(%rbx), %rsi
movq %rbx, %rdi
callq *0x20(%rax)
movq 0x578(%rbx), %rcx
movq %rax, 0x8(%rcx)
movq 0x10(%r14), %rax
movq 0x8(%rax), %rax
movq 0x570(%rbx), %rcx
movq %rax, 0x8(%rcx)
movq 0x20(%r14), %rax
movq 0x570(%rbx), %rsi
movq %rbx, %rdi
addq $0x8, %rsp
popq %rbx
popq %r14
jmpq *%rax
cmpb $0x1c, (%rdx)
jne 0xc7db2
movq 0x8(%rdx), %r8
testq %r8, %r8
sete %dil
je 0xc7da0
cmpq %rcx, 0x8(%r8)
je 0xc7d9c
movq 0x18(%r8), %r8
jmp 0xc7d87
movq 0x10(%r8), %rsi
testb %dil, %dil
je 0xc7d1e
movq 0x10(%rdx), %rdx
cmpb $0x1c, (%rdx)
je 0xc7d83
movq 0x10(%rcx), %rcx
cmpb $0x20, (%rcx)
je 0xc7d1a
xorl %esi, %esi
jmp 0xc7d1e
// File: /workspace/github_c_makefile_star2_O1/BernardTatin[P]s7sh/s7.c
// Function: fx_c_s_opcsq
static s7_pointer fx_c_s_opcsq(s7_scheme *sc, s7_pointer arg)
                {
                    s7_pointer largs;
                    largs = caddr(arg);
                    set_car(sc->t2_2, lookup(sc, caddr(largs)));
                    set_car(sc->t2_1, opt1_con(cdr(largs))); /* cadr(largs) or cadadr */
                    set_car(sc->t2_2, c_call(largs)(sc, sc->t2_1));
                    set_car(sc->t2_1, lookup(sc, cadr(arg)));
                    return(c_call(arg)(sc, sc->t2_1));
                }

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rsi, %r14
movq %rdi, %rbx
movq 0x10(%rsi), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rcx
movq 0x10(%rcx), %rcx
movq 0x8(%rcx), %rcx
movq 0x8(%rdi), %rdx
movq 0x18(%rdx), %rdi
movq 0x20(%rcx), %rsi
cmpq %rsi, %rdi
je 0xc7e11
jle 0xc7e08
movq 0x10(%rdx), %rdx
movq 0x18(%rdx), %rdi
cmpq %rdi, %rsi
jl 0xc7dfb
cmpq %rsi, %rdi
jne 0xc7ea6
movq 0x18(%rcx), %rcx
movq 0x10(%rcx), %rsi
movq 0x578(%rbx), %rcx
movq %rsi, 0x8(%rcx)
movq 0x10(%rax), %rcx
movq 0x18(%rcx), %rcx
movq 0x570(%rbx), %rdx
movq %rcx, 0x8(%rdx)
movq 0x570(%rbx), %rsi
movq %rbx, %rdi
callq *0x20(%rax)
movq 0x578(%rbx), %rcx
movq %rax, 0x8(%rcx)
movq 0x10(%r14), %rax
movq 0x8(%rax), %rax
movq 0x8(%rbx), %rcx
movq 0x18(%rcx), %rsi
movq 0x20(%rax), %rdx
cmpq %rdx, %rsi
je 0xc7e7c
jle 0xc7e77
movq 0x10(%rcx), %rcx
movq 0x18(%rcx), %rsi
cmpq %rsi, %rdx
jl 0xc7e6a
cmpq %rdx, %rsi
jne 0xc7eee
movq 0x18(%rax), %rax
movq 0x10(%rax), %rdx
movq 0x570(%rbx), %rax
movq %rdx, 0x8(%rax)
movq 0x20(%r14), %rax
movq 0x570(%rbx), %rsi
movq %rbx, %rdi
addq $0x8, %rsp
popq %rbx
popq %r14
jmpq *%rax
cmpb $0x1c, (%rdx)
jne 0xc7eda
movq 0x8(%rdx), %r8
testq %r8, %r8
sete %dil
je 0xc7ec8
cmpq %rcx, 0x8(%r8)
je 0xc7ec4
movq 0x18(%r8), %r8
jmp 0xc7eaf
movq 0x10(%r8), %rsi
testb %dil, %dil
je 0xc7e19
movq 0x10(%rdx), %rdx
cmpb $0x1c, (%rdx)
je 0xc7eab
movq 0x10(%rcx), %rcx
cmpb $0x20, (%rcx)
je 0xc7e15
xorl %esi, %esi
jmp 0xc7e19
cmpb $0x1c, (%rcx)
jne 0xc7f22
movq 0x8(%rcx), %rdi
testq %rdi, %rdi
sete %sil
je 0xc7f10
cmpq %rax, 0x8(%rdi)
je 0xc7f0c
movq 0x18(%rdi), %rdi
jmp 0xc7ef7
movq 0x10(%rdi), %rdx
testb %sil, %sil
je 0xc7e84
movq 0x10(%rcx), %rcx
cmpb $0x1c, (%rcx)
je 0xc7ef3
movq 0x10(%rax), %rax
cmpb $0x20, (%rax)
je 0xc7e80
xorl %edx, %edx
jmp 0xc7e84
// File: /workspace/github_c_makefile_star2_O1/BernardTatin[P]s7sh/s7.c
// Function: fx_c_opsq_s
static s7_pointer fx_c_opsq_s(s7_scheme *sc, s7_pointer arg)
                {
                    s7_pointer largs;
                    largs = cadr(arg);
                    set_car(sc->t1_1, lookup(sc, cadr(largs)));
                    set_car(sc->t2_1, c_call(largs)(sc, sc->t1_1));
                    set_car(sc->t2_2, lookup(sc, caddr(arg)));
                    return(c_call(arg)(sc, sc->t2_1));
                }

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rsi, %r14
movq %rdi, %rbx
movq 0x10(%rsi), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rcx
movq 0x8(%rcx), %rcx
movq 0x8(%rdi), %rdx
movq 0x18(%rdx), %rdi
movq 0x20(%rcx), %rsi
cmpq %rsi, %rdi
je 0xc7f79
jle 0xc7f70
movq 0x10(%rdx), %rdx
movq 0x18(%rdx), %rdi
cmpq %rdi, %rsi
jl 0xc7f63
cmpq %rsi, %rdi
jne 0xc7fff
movq 0x18(%rcx), %rcx
movq 0x10(%rcx), %rsi
movq 0x568(%rbx), %rcx
movq %rsi, 0x8(%rcx)
movq 0x568(%rbx), %rsi
movq %rbx, %rdi
callq *0x20(%rax)
movq 0x570(%rbx), %rcx
movq %rax, 0x8(%rcx)
movq 0x10(%r14), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq 0x8(%rbx), %rcx
movq 0x18(%rcx), %rsi
movq 0x20(%rax), %rdx
cmpq %rdx, %rsi
je 0xc7fd5
jle 0xc7fd0
movq 0x10(%rcx), %rcx
movq 0x18(%rcx), %rsi
cmpq %rsi, %rdx
jl 0xc7fc3
cmpq %rdx, %rsi
jne 0xc8047
movq 0x18(%rax), %rax
movq 0x10(%rax), %rdx
movq 0x578(%rbx), %rax
movq %rdx, 0x8(%rax)
movq 0x20(%r14), %rax
movq 0x570(%rbx), %rsi
movq %rbx, %rdi
addq $0x8, %rsp
popq %rbx
popq %r14
jmpq *%rax
cmpb $0x1c, (%rdx)
jne 0xc8033
movq 0x8(%rdx), %r8
testq %r8, %r8
sete %dil
je 0xc8021
cmpq %rcx, 0x8(%r8)
je 0xc801d
movq 0x18(%r8), %r8
jmp 0xc8008
movq 0x10(%r8), %rsi
testb %dil, %dil
je 0xc7f81
movq 0x10(%rdx), %rdx
cmpb $0x1c, (%rdx)
je 0xc8004
movq 0x10(%rcx), %rcx
cmpb $0x20, (%rcx)
je 0xc7f7d
xorl %esi, %esi
jmp 0xc7f81
cmpb $0x1c, (%rcx)
jne 0xc807b
movq 0x8(%rcx), %rdi
testq %rdi, %rdi
sete %sil
je 0xc8069
cmpq %rax, 0x8(%rdi)
je 0xc8065
movq 0x18(%rdi), %rdi
jmp 0xc8050
movq 0x10(%rdi), %rdx
testb %sil, %sil
je 0xc7fdd
movq 0x10(%rcx), %rcx
cmpb $0x1c, (%rcx)
je 0xc804c
movq 0x10(%rax), %rax
cmpb $0x20, (%rax)
je 0xc7fd9
xorl %edx, %edx
jmp 0xc7fdd
// File: /workspace/github_c_makefile_star2_O1/BernardTatin[P]s7sh/s7.c
// Function: fx_c_opsq_cs
static s7_pointer fx_c_opsq_cs(s7_scheme *sc, s7_pointer arg)
                {
                    set_car(sc->t1_1, lookup(sc, opt3_sym(cdr(arg))));  /* cadadr(arg); */
                    set_car(sc->t3_1, c_call(cadr(arg))(sc, sc->t1_1));
                    set_car(sc->t3_2, opt1_con(cdr(arg)));              /* caddr(arg) or cadr(caddr(arg)) */
                    set_car(sc->t3_3, lookup(sc, opt2_sym(cdr(arg))));  /* cadddr(arg); */
                    return(c_call(arg)(sc, sc->t3_1));
                }

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rsi, %r14
movq %rdi, %rbx
movq 0x10(%rsi), %rax
movq 0x28(%rax), %rax
movq 0x8(%rdi), %rcx
movq 0x18(%rcx), %rsi
movq 0x20(%rax), %rdx
cmpq %rdx, %rsi
je 0xc80ca
jle 0xc80c1
movq 0x10(%rcx), %rcx
movq 0x18(%rcx), %rsi
cmpq %rsi, %rdx
jl 0xc80b4
cmpq %rdx, %rsi
jne 0xc8167
movq 0x18(%rax), %rax
movq 0x10(%rax), %rdx
movq 0x568(%rbx), %rax
movq %rdx, 0x8(%rax)
movq 0x10(%r14), %rax
movq 0x8(%rax), %rax
movq 0x568(%rbx), %rsi
movq %rbx, %rdi
callq *0x20(%rax)
movq 0x580(%rbx), %rcx
movq %rax, 0x8(%rcx)
movq 0x10(%r14), %rax
movq 0x18(%rax), %rax
movq 0x588(%rbx), %rcx
movq %rax, 0x8(%rcx)
movq 0x10(%r14), %rax
movq 0x20(%rax), %rax
movq 0x8(%rbx), %rcx
movq 0x18(%rcx), %rsi
movq 0x20(%rax), %rdx
cmpq %rdx, %rsi
je 0xc813d
jle 0xc8138
movq 0x10(%rcx), %rcx
movq 0x18(%rcx), %rsi
cmpq %rsi, %rdx
jl 0xc812b
cmpq %rdx, %rsi
jne 0xc81af
movq 0x18(%rax), %rax
movq 0x10(%rax), %rdx
movq 0x590(%rbx), %rax
movq %rdx, 0x8(%rax)
movq 0x20(%r14), %rax
movq 0x580(%rbx), %rsi
movq %rbx, %rdi
addq $0x8, %rsp
popq %rbx
popq %r14
jmpq *%rax
cmpb $0x1c, (%rcx)
jne 0xc819b
movq 0x8(%rcx), %rdi
testq %rdi, %rdi
sete %sil
je 0xc8189
cmpq %rax, 0x8(%rdi)
je 0xc8185
movq 0x18(%rdi), %rdi
jmp 0xc8170
movq 0x10(%rdi), %rdx
testb %sil, %sil
je 0xc80d2
movq 0x10(%rcx), %rcx
cmpb $0x1c, (%rcx)
je 0xc816c
movq 0x10(%rax), %rax
cmpb $0x20, (%rax)
je 0xc80ce
xorl %edx, %edx
jmp 0xc80d2
cmpb $0x1c, (%rcx)
jne 0xc81e3
movq 0x8(%rcx), %rdi
testq %rdi, %rdi
sete %sil
je 0xc81d1
cmpq %rax, 0x8(%rdi)
je 0xc81cd
movq 0x18(%rdi), %rdi
jmp 0xc81b8
movq 0x10(%rdi), %rdx
testb %sil, %sil
je 0xc8145
movq 0x10(%rcx), %rcx
cmpb $0x1c, (%rcx)
je 0xc81b4
movq 0x10(%rax), %rax
cmpb $0x20, (%rax)
je 0xc8141
xorl %edx, %edx
jmp 0xc8145
// File: /workspace/github_c_makefile_star2_O1/BernardTatin[P]s7sh/s7.c
// Function: fx_c_opdq_s
static s7_pointer fx_c_opdq_s(s7_scheme *sc, s7_pointer arg)
                {
                    s7_pointer largs;
                    largs = cadr(arg);
                    set_car(sc->t2_1, d_call(sc, largs));
                    set_car(sc->t2_2, lookup(sc, caddr(arg)));
                    return(c_call(arg)(sc, sc->t2_1));
                }

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rsi, %r14
movq %rdi, %rbx
movq 0x10(%rsi), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rsi
callq *0x20(%rax)
movq 0x570(%rbx), %rcx
movq %rax, 0x8(%rcx)
movq 0x10(%r14), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq 0x8(%rbx), %rcx
movq 0x18(%rcx), %rsi
movq 0x20(%rax), %rdx
cmpq %rdx, %rsi
je 0xc824c
jle 0xc8247
movq 0x10(%rcx), %rcx
movq 0x18(%rcx), %rsi
cmpq %rsi, %rdx
jl 0xc823a
cmpq %rdx, %rsi
jne 0xc8276
movq 0x18(%rax), %rax
movq 0x10(%rax), %rdx
movq 0x578(%rbx), %rax
movq %rdx, 0x8(%rax)
movq 0x20(%r14), %rax
movq 0x570(%rbx), %rsi
movq %rbx, %rdi
addq $0x8, %rsp
popq %rbx
popq %r14
jmpq *%rax
cmpb $0x1c, (%rcx)
jne 0xc82a6
movq 0x8(%rcx), %rdi
testq %rdi, %rdi
sete %sil
je 0xc8298
cmpq %rax, 0x8(%rdi)
je 0xc8294
movq 0x18(%rdi), %rdi
jmp 0xc827f
movq 0x10(%rdi), %rdx
testb %sil, %sil
je 0xc8254
movq 0x10(%rcx), %rcx
cmpb $0x1c, (%rcx)
je 0xc827b
movq 0x10(%rax), %rax
cmpb $0x20, (%rax)
je 0xc8250
xorl %edx, %edx
jmp 0xc8254
// File: /workspace/github_c_makefile_star2_O1/BernardTatin[P]s7sh/s7.c
// Function: op_call_with_exit
static s7_pointer op_call_with_exit(s7_scheme *sc)
    {
        s7_pointer go, args;
        set_current_code(sc, sc->code);
        args = opt2_pair(sc->code);
        go = make_goto(sc);
        push_stack_no_let_no_code(sc, OP_DEACTIVATE_GOTO, go); /* was also pushing code */
        new_frame_with_slot(sc, sc->envir, sc->envir, caar(args), go);
        sc->code = T_Pair(cdr(args));
        return(NULL);
    }

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %rbx
movq (%rdi), %rax
movq 0x90(%rdi), %rcx
movq %rax, 0x28(%rdi)
movq 0x20(%rax), %r14
cmpq 0x98(%rdi), %rcx
ja 0xc8b61
movq %rbx, %rdi
callq 0xb389
movq 0x90(%rbx), %rax
leaq -0x8(%rax), %rcx
movq %rcx, 0x90(%rbx)
movq -0x8(%rax), %r15
movq $0x26, (%r15)
movq 0x50(%rbx), %rax
subq 0x48(%rbx), %rax
sarq $0x3, %rax
movq %rax, 0x8(%r15)
movq 0x68(%rbx), %rax
subq 0x60(%rbx), %rax
shrq $0x3, %rax
cltq
movq %rax, 0x10(%r15)
movb $0x1, 0x18(%r15)
movq 0x50(%rbx), %rax
movq %r15, 0x10(%rax)
movq 0x50(%rbx), %rax
movq $0x204, 0x18(%rax)      # imm = 0x204
addq $0x20, 0x50(%rbx)
movq 0x8(%r14), %rax
movq 0x8(%rax), %r12
movq 0x90(%rbx), %rax
cmpq 0x98(%rbx), %rax
ja 0xc8bde
movq %rbx, %rdi
callq 0xb389
movq 0x90(%rbx), %rax
leaq -0x8(%rax), %rcx
movq %rcx, 0x90(%rbx)
movq -0x8(%rax), %rax
movq $0x20001c, (%rax)       # imm = 0x20001C
movq 0x250(%rbx), %rcx
incq %rcx
movq %rcx, 0x250(%rbx)
movq %rcx, 0x18(%rax)
movq 0x8(%rbx), %rcx
movq %rcx, 0x10(%rax)
movq %rax, 0x8(%rbx)
movq 0x90(%rbx), %rcx
leaq -0x8(%rcx), %rdx
movq %rdx, 0x90(%rbx)
movq -0x8(%rcx), %rcx
movq $0x20, (%rcx)
movq %r12, 0x8(%rcx)
movq %r15, 0x10(%rcx)
movq %rcx, 0x18(%r12)
movq 0x250(%rbx), %rdx
movq %rdx, 0x20(%r12)
incl 0x28(%r12)
movq $0x0, 0x18(%rcx)
movq %rcx, 0x8(%rax)
movq 0x10(%r14), %rax
movq %rax, (%rbx)
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O1/BernardTatin[P]s7sh/s7.c
// Function: fx_safe_thunk_a
static s7_pointer fx_safe_thunk_a(s7_scheme *sc, s7_pointer code)
                {
                    s7_pointer f, result;
                    gc_protect_direct(sc, sc->envir);
                    f = opt1_lambda(code);
                    sc->envir = closure_let(f);
                    result = fx_call(sc, closure_body(f));
                    sc->envir = sc->stack_end[-2];
                    sc->stack_end -= 4;
                    return(result);
                }

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

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rsi, %r14
movq %rdi, %rbx
movq 0x8(%rdi), %rax
movq 0x50(%rdi), %rcx
movq $0x1, 0x18(%rcx)
movq 0x50(%rdi), %rcx
leaq 0x20(%rcx), %rdx
movq %rdx, 0x50(%rdi)
movq %rax, 0x10(%rcx)
movq 0x10(%rsi), %rax
movq 0x18(%rsi), %rcx
movq 0x18(%rcx), %r15
movq 0x8(%rax), %rsi
callq *0x20(%rax)
movq 0x250(%rbx), %rcx
incq %rcx
movq %rcx, 0x250(%rbx)
movq %rcx, 0x18(%r15)
movq 0x8(%r15), %rdx
movq %rax, 0x10(%rdx)
movq 0x8(%rdx), %rax
movq %rdx, 0x18(%rax)
movq %rcx, 0x20(%rax)
incl 0x28(%rax)
movq %r15, 0x8(%rbx)
movq 0x18(%r14), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rsi
movq %rbx, %rdi
callq *0x20(%rax)
movq 0x50(%rbx), %rcx
movq -0x10(%rcx), %rdx
movq %rdx, 0x8(%rbx)
addq $-0x20, %rcx
movq %rcx, 0x50(%rbx)
popq %rbx
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O1/BernardTatin[P]s7sh/s7.c
// Function: fx_safe_closure_ss_a
static s7_pointer fx_safe_closure_ss_a(s7_scheme *sc, s7_pointer code)
                {
                    s7_pointer result;
                    gc_protect_direct(sc, sc->envir);
                    sc->envir = old_frame_with_two_slots(sc, closure_let(opt1_lambda(code)), lookup(sc, cadr(code)), lookup(sc, opt2_sym(code)));
                    result = fx_call(sc, closure_body(opt1_lambda(code)));
                    sc->envir = sc->stack_end[-2];
                    sc->stack_end -= 4;
                    return(result);
                }

// Assembly:
pushq %rbx
movq %rdi, %rbx
movq 0x8(%rdi), %rax
movq 0x50(%rdi), %rcx
movq $0x1, 0x18(%rcx)
movq 0x50(%rdi), %rcx
leaq 0x20(%rcx), %rdx
movq %rdx, 0x50(%rdi)
movq %rax, 0x10(%rcx)
movq 0x10(%rsi), %rax
movq 0x18(%rsi), %rdi
movq 0x8(%rax), %r8
movq 0x8(%rbx), %rax
movq 0x18(%rax), %rdx
movq 0x20(%r8), %rcx
cmpq %rcx, %rdx
je 0xca29e
movq %rax, %r9
movq %rdx, %r10
jle 0xca295
movq %rax, %r9
movq 0x10(%r9), %r9
movq 0x18(%r9), %r10
cmpq %r10, %rcx
jl 0xca288
cmpq %rcx, %r10
jne 0xca346
movq 0x18(%r8), %rcx
movq 0x10(%rcx), %rcx
movq 0x18(%rdi), %rdi
movq 0x20(%rsi), %r8
movq 0x20(%r8), %r9
cmpq %r9, %rdx
je 0xca2cf
jle 0xca2c6
movq 0x10(%rax), %rax
movq 0x18(%rax), %rdx
cmpq %rdx, %r9
jl 0xca2b9
cmpq %r9, %rdx
jne 0xca390
movq 0x18(%r8), %rax
movq 0x10(%rax), %rdx
movq 0x250(%rbx), %rax
incq %rax
movq %rax, 0x250(%rbx)
movq %rax, 0x18(%rdi)
movq 0x8(%rdi), %r8
movq %rcx, 0x10(%r8)
movq 0x8(%r8), %rcx
movq %r8, 0x18(%rcx)
movq %rax, 0x20(%rcx)
incl 0x28(%rcx)
movq 0x18(%r8), %rcx
movq %rdx, 0x10(%rcx)
movq 0x8(%rcx), %rdx
movq %rcx, 0x18(%rdx)
movq %rax, 0x20(%rdx)
incl 0x28(%rdx)
movq %rdi, 0x8(%rbx)
movq 0x18(%rsi), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rsi
movq %rbx, %rdi
callq *0x20(%rax)
movq 0x50(%rbx), %rcx
movq -0x10(%rcx), %rdx
movq %rdx, 0x8(%rbx)
addq $-0x20, %rcx
movq %rcx, 0x50(%rbx)
popq %rbx
retq
cmpb $0x1c, (%r9)
jne 0xca37c
movq 0x8(%r9), %r11
testq %r11, %r11
sete %r10b
je 0xca369
cmpq %r8, 0x8(%r11)
je 0xca365
movq 0x18(%r11), %r11
jmp 0xca350
movq 0x10(%r11), %rcx
testb %r10b, %r10b
je 0xca2a6
movq 0x10(%r9), %r9
cmpb $0x1c, (%r9)
je 0xca34c
movq 0x10(%r8), %rcx
cmpb $0x20, (%rcx)
je 0xca2a2
xorl %ecx, %ecx
jmp 0xca2a6
cmpb $0x1c, (%rax)
jne 0xca3c4
movq 0x8(%rax), %r10
testq %r10, %r10
sete %r9b
je 0xca3b2
cmpq %r8, 0x8(%r10)
je 0xca3ae
movq 0x18(%r10), %r10
jmp 0xca399
movq 0x10(%r10), %rdx
testb %r9b, %r9b
je 0xca2d7
movq 0x10(%rax), %rax
cmpb $0x1c, (%rax)
je 0xca395
movq 0x10(%r8), %rax
cmpb $0x20, (%rax)
je 0xca2d3
xorl %edx, %edx
jmp 0xca2d7
// File: /workspace/github_c_makefile_star2_O1/BernardTatin[P]s7sh/s7.c
// Function: fx_safe_closure_aa_a
static s7_pointer fx_safe_closure_aa_a(s7_scheme *sc, s7_pointer code)
                {
                    s7_pointer p;
                    p = cdr(code);
                    gc_protect_direct(sc, sc->envir);
                    sc->stack_end[-4] = fx_call(sc, cdr(p));
                    sc->stack_end[-3] = fx_call(sc, p);
                    p = opt1_lambda(sc->code);
                    sc->envir = old_frame_with_two_slots(sc, closure_let(p), sc->stack_end[-3], sc->stack_end[-4]);
                    p = fx_call(sc, closure_body(p));
                    sc->envir = sc->stack_end[-2];
                    sc->stack_end -= 4;
                    return(p);
                }

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
movq 0x10(%rsi), %r14
movq 0x8(%rdi), %rax
movq 0x50(%rdi), %rcx
movq $0x1, 0x18(%rcx)
movq 0x50(%rdi), %rcx
leaq 0x20(%rcx), %rdx
movq %rdx, 0x50(%rdi)
movq %rax, 0x10(%rcx)
movq 0x10(%r14), %rax
movq 0x8(%rax), %rsi
callq *0x20(%rax)
movq 0x50(%rbx), %rcx
movq %rax, -0x20(%rcx)
movq 0x8(%r14), %rsi
movq %rbx, %rdi
callq *0x20(%r14)
movq 0x50(%rbx), %rcx
movq %rax, -0x18(%rcx)
movq (%rbx), %rax
movq 0x50(%rbx), %rcx
movq 0x18(%rax), %rax
movq 0x18(%rax), %rdx
movq -0x20(%rcx), %rsi
movq -0x18(%rcx), %rcx
movq 0x250(%rbx), %rdi
incq %rdi
movq %rdi, 0x250(%rbx)
movq %rdi, 0x18(%rdx)
movq 0x8(%rdx), %r8
movq %rcx, 0x10(%r8)
movq 0x8(%r8), %rcx
movq %r8, 0x18(%rcx)
movq %rdi, 0x20(%rcx)
incl 0x28(%rcx)
movq 0x18(%r8), %rcx
movq %rsi, 0x10(%rcx)
movq 0x8(%rcx), %rsi
movq %rcx, 0x18(%rsi)
movq %rdi, 0x20(%rsi)
incl 0x28(%rsi)
movq %rdx, 0x8(%rbx)
movq 0x10(%rax), %rax
movq 0x8(%rax), %rsi
movq %rbx, %rdi
callq *0x20(%rax)
movq 0x50(%rbx), %rcx
movq -0x10(%rcx), %rdx
movq %rdx, 0x8(%rbx)
addq $-0x20, %rcx
movq %rcx, 0x50(%rbx)
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O1/BernardTatin[P]s7sh/s7.c
// Function: op_safe_closure_fp_1
static void op_safe_closure_fp_1(s7_scheme *sc)
                {
                    /* in-coming sc->value has the current arg value, sc->args is all previous args */
                    uint64_t id;
                    s7_pointer x, z;

                    sc->args = safe_reverse_in_place(sc, sc->args);
                    sc->code = opt1_lambda(car(sc->args));
                    sc->args = cdr(sc->args);

                    id = ++sc->let_number;
                    sc->envir = closure_let(sc->code);
                    let_id(sc->envir) = id;

                    for (x = let_slots(sc->envir), z = sc->args; tis_slot(x); x = next_slot(x), z = cdr(z))
                    {
                        slot_set_value(x, car(z));
                        symbol_set_local(slot_symbol(x), id, x);
                    }
                    if (is_pair(z))  /* these checks are needed because multiple-values might evade earlier arg num checks */
                        s7_error(sc, sc->wrong_number_of_args_symbol, set_elist_3(sc, too_many_arguments_string, sc->code, sc->args));
                    if (tis_slot(x))
                        s7_error(sc, sc->wrong_number_of_args_symbol, set_elist_3(sc, not_enough_arguments_string, sc->code, sc->args));

                    sc->code = closure_body(sc->code);
                    if (is_pair(cdr(sc->code)))
                        push_stack_no_args(sc, sc->begin_op, cdr(sc->code));
                    sc->code = car(sc->code);
                }

// Assembly:
pushq %rbx
movq %rdi, %rbx
movq 0x10(%rdi), %rdx
movq 0x110(%rdi), %rsi
callq 0xa000b
movq %rax, 0x10(%rbx)
movq 0x8(%rax), %rcx
movq 0x18(%rcx), %rcx
movq %rcx, (%rbx)
movq 0x10(%rax), %rax
movq %rax, 0x10(%rbx)
movq 0x250(%rbx), %rax
incq %rax
movq %rax, 0x250(%rbx)
movq 0x18(%rcx), %rcx
movq %rcx, 0x8(%rbx)
movq %rax, 0x18(%rcx)
movq 0x8(%rbx), %rdx
movq 0x10(%rbx), %rcx
movq 0x8(%rdx), %rdx
testq %rdx, %rdx
je 0xcb160
movq 0x8(%rcx), %rsi
movq %rsi, 0x10(%rdx)
movq 0x8(%rdx), %rsi
movq %rdx, 0x18(%rsi)
movq 0x8(%rdx), %rsi
movq %rax, 0x20(%rsi)
movq 0x8(%rdx), %rsi
incl 0x28(%rsi)
movq 0x10(%rcx), %rcx
movq 0x18(%rdx), %rdx
jmp 0xcb132
cmpb $0x1, (%rcx)
jne 0xcb1a4
movq 0x1900(%rbx), %rsi
movq 0x8ff25(%rip), %rax     # 0x15b098
movq (%rbx), %rcx
movq 0x10(%rbx), %rdx
movq 0x6e8(%rbx), %rdi
movq %rax, 0x8(%rdi)
movq 0x10(%rdi), %rax
movq %rcx, 0x8(%rax)
movq 0x10(%rax), %rax
movq %rdx, 0x8(%rax)
movq 0x6e8(%rbx), %rdx
movq %rbx, %rdi
callq 0x3b366
movq (%rbx), %rax
movq 0x10(%rax), %rax
movq %rax, (%rbx)
movq 0x10(%rax), %rax
cmpb $0x1, (%rax)
jne 0xcb1de
movq 0x50(%rbx), %rcx
movq %rax, (%rcx)
movq 0x8(%rbx), %rax
movq 0x50(%rbx), %rcx
movq %rax, 0x8(%rcx)
movq 0x688(%rbx), %rax
movq 0x50(%rbx), %rcx
movq %rax, 0x18(%rcx)
addq $0x20, 0x50(%rbx)
movq (%rbx), %rax
movq 0x8(%rax), %rax
movq %rax, (%rbx)
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O1/BernardTatin[P]s7sh/s7.c
// Function: op_tc_and_a_or_a_la
static void op_tc_and_a_or_a_la(s7_scheme *sc, s7_pointer code)
                {
                    s7_pointer fx_and, fx_or, fx_la, la_slot;

                    fx_and = cdr(code);           /* first clause of and */
                    fx_or = cdadr(fx_and);        /* same or */
                    fx_la = cdadr(fx_or);
                    la_slot = let_slots(sc->envir);
                    /* cell_optimize here is slower! */
                    while (true)
                    {
                        s7_pointer p;
                        p = fx_call(sc, fx_and);
                        if (p == sc->F) {sc->value = p; return;}
                        p = fx_call(sc, fx_or);
                        if (p != sc->F) {sc->value = p; return;}
                        slot_set_value(la_slot, fx_call(sc, fx_la));
                    }
                }

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
movq %rdi, %rbx
movq 0x10(%rsi), %r14
movq 0x8(%r14), %rsi
movq 0x10(%r14), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %r15
movq 0x10(%r15), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %r12
movq 0x8(%rdi), %rax
movq 0x8(%rax), %r13
callq *0x20(%r14)
cmpq 0x120(%rbx), %rax
je 0xcb259
movq 0x8(%r15), %rsi
movq %rbx, %rdi
callq *0x20(%r15)
cmpq 0x120(%rbx), %rax
jne 0xcb259
movq 0x8(%r12), %rsi
movq %rbx, %rdi
callq *0x20(%r12)
movq %rax, 0x10(%r13)
movq 0x8(%r14), %rsi
movq %rbx, %rdi
jmp 0xcb21e
movq %rax, 0x20(%rbx)
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O1/BernardTatin[P]s7sh/s7.c
// Function: op_tc_or_a_and_a_la
static void op_tc_or_a_and_a_la(s7_scheme *sc, s7_pointer code)
                {
                    s7_pointer fx_and, fx_or, fx_la, la_slot;

                    fx_or = cdr(code);             /* first clause of or */
                    fx_and = cdadr(fx_or);         /* same and */
                    fx_la = cdadr(fx_and);
                    la_slot = let_slots(sc->envir);

                    while (true)
                    {
                        s7_pointer p;
                        p = fx_call(sc, fx_or);
                        if (p != sc->F) {sc->value = p; return;}
                        p = fx_call(sc, fx_and);
                        if (p == sc->F) {sc->value = p; return;}
                        slot_set_value(la_slot, fx_call(sc, fx_la));
                    }
                }

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
movq %rdi, %rbx
movq 0x10(%rsi), %r14
movq 0x8(%r14), %rsi
movq 0x10(%r14), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %r15
movq 0x10(%r15), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %r12
movq 0x8(%rdi), %rax
movq 0x8(%rax), %r13
callq *0x20(%r14)
cmpq 0x120(%rbx), %rax
jne 0xcb2d6
movq 0x8(%r15), %rsi
movq %rbx, %rdi
callq *0x20(%r15)
cmpq 0x120(%rbx), %rax
je 0xcb2d6
movq 0x8(%r12), %rsi
movq %rbx, %rdi
callq *0x20(%r12)
movq %rax, 0x10(%r13)
movq 0x8(%r14), %rsi
movq %rbx, %rdi
jmp 0xcb29b
movq %rax, 0x20(%rbx)
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O1/BernardTatin[P]s7sh/s7.c
// Function: op_tc_and_a_or_a_laa
static void op_tc_and_a_or_a_laa(s7_scheme *sc, s7_pointer code)
                {
                    s7_pointer fx_and, fx_or, fx_la, la_slot, fx_laa, laa_slot;

                    fx_and = cdr(code);           /* first clause of and */
                    fx_or = cdadr(fx_and);        /* same or */
                    fx_la = cdadr(fx_or);
                    la_slot = let_slots(sc->envir);
                    fx_laa = cdr(fx_la);
                    laa_slot = next_slot(la_slot);

                    while (true)
                    {
                        s7_pointer p;
                        p = fx_call(sc, fx_and);
                        if (p == sc->F) {sc->value = p; return;}
                        p = fx_call(sc, fx_or);
                        if (p != sc->F) {sc->value = p; return;}
                        slot_set_value(la_slot, fx_call(sc, fx_la));
                        slot_set_value(laa_slot, fx_call(sc, fx_laa));
                    }
                }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %rbx
movq 0x10(%rsi), %r14
movq 0x8(%r14), %rsi
movq 0x10(%r14), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %r15
movq 0x10(%r15), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %r12
movq 0x8(%rdi), %rax
movq 0x8(%rax), %r13
movq 0x10(%r12), %rbp
movq 0x18(%r13), %rax
movq %rax, (%rsp)
callq *0x20(%r14)
cmpq 0x120(%rbx), %rax
je 0xcb374
movq 0x8(%r15), %rsi
movq %rbx, %rdi
callq *0x20(%r15)
cmpq 0x120(%rbx), %rax
jne 0xcb374
movq 0x8(%r12), %rsi
movq %rbx, %rdi
callq *0x20(%r12)
movq %rax, 0x10(%r13)
movq 0x8(%rbp), %rsi
movq %rbx, %rdi
callq *0x20(%rbp)
movq (%rsp), %rcx
movq %rax, 0x10(%rcx)
movq 0x8(%r14), %rsi
movq %rbx, %rdi
jmp 0xcb327
movq %rax, 0x20(%rbx)
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O1/BernardTatin[P]s7sh/s7.c
// Function: op_tc_or_a_and_a_laa
static void op_tc_or_a_and_a_laa(s7_scheme *sc, s7_pointer code)
                {
                    s7_pointer fx_and, fx_or, fx_la, la_slot, fx_laa, laa_slot;

                    fx_or = cdr(code);             /* first clause of or */
                    fx_and = cdadr(fx_or);         /* same and */
                    fx_la = cdadr(fx_and);
                    la_slot = let_slots(sc->envir);
                    fx_laa = cdr(fx_la);
                    laa_slot = next_slot(la_slot);

                    while (true)
                    {
                        s7_pointer p;
                        p = fx_call(sc, fx_or);
                        if (p != sc->F) {sc->value = p; return;}
                        p = fx_call(sc, fx_and);
                        if (p == sc->F) {sc->value = p; return;}
                        slot_set_value(la_slot, fx_call(sc, fx_la));
                        slot_set_value(laa_slot, fx_call(sc, fx_laa));
                    }
                }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %rbx
movq 0x10(%rsi), %r14
movq 0x8(%r14), %rsi
movq 0x10(%r14), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %r15
movq 0x10(%r15), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %r12
movq 0x8(%rdi), %rax
movq 0x8(%rax), %r13
movq 0x10(%r12), %rbp
movq 0x18(%r13), %rax
movq %rax, (%rsp)
callq *0x20(%r14)
cmpq 0x120(%rbx), %rax
jne 0xcb417
movq 0x8(%r15), %rsi
movq %rbx, %rdi
callq *0x20(%r15)
cmpq 0x120(%rbx), %rax
je 0xcb417
movq 0x8(%r12), %rsi
movq %rbx, %rdi
callq *0x20(%r12)
movq %rax, 0x10(%r13)
movq 0x8(%rbp), %rsi
movq %rbx, %rdi
callq *0x20(%rbp)
movq (%rsp), %rcx
movq %rax, 0x10(%rcx)
movq 0x8(%r14), %rsi
movq %rbx, %rdi
jmp 0xcb3ca
movq %rax, 0x20(%rbx)
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O1/BernardTatin[P]s7sh/s7.c
// Function: op_tc_or_a_a_and_a_a_la
static void op_tc_or_a_a_and_a_a_la(s7_scheme *sc, s7_pointer code)
                {
                    s7_pointer fx_and1, fx_and2, fx_or1, fx_or2, fx_la, la_slot;

                    fx_or1 = cdr(code);            /* first clause of or */
                    fx_or2 = cdr(fx_or1);
                    fx_and1 = cdadr(fx_or2);       /* same and */
                    fx_and2 = cdr(fx_and1);
                    fx_la = cdadr(fx_and2);
                    la_slot = let_slots(sc->envir);

                    while (true)
                    {
                        s7_pointer p;
                        p = fx_call(sc, fx_or1);
                        if (p != sc->F) {sc->value = p; return;}
                        p = fx_call(sc, fx_or2);
                        if (p != sc->F) {sc->value = p; return;}
                        p = fx_call(sc, fx_and1);
                        if (p == sc->F) {sc->value = p; return;}
                        p = fx_call(sc, fx_and2);
                        if (p == sc->F) {sc->value = p; return;}
                        slot_set_value(la_slot, fx_call(sc, fx_la));
                    }
                }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %rbx
movq 0x10(%rsi), %r14
movq 0x8(%r14), %rsi
movq 0x10(%r14), %r15
movq 0x10(%r15), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %r12
movq 0x10(%r12), %r13
movq 0x10(%r13), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rbp
movq 0x8(%rdi), %rax
movq 0x8(%rax), %rax
movq %rax, (%rsp)
callq *0x20(%r14)
cmpq 0x120(%rbx), %rax
jne 0xcb4d3
movq 0x8(%r15), %rsi
movq %rbx, %rdi
callq *0x20(%r15)
cmpq 0x120(%rbx), %rax
jne 0xcb4d3
movq 0x8(%r12), %rsi
movq %rbx, %rdi
callq *0x20(%r12)
cmpq 0x120(%rbx), %rax
je 0xcb4d3
movq 0x8(%r13), %rsi
movq %rbx, %rdi
callq *0x20(%r13)
cmpq 0x120(%rbx), %rax
je 0xcb4d3
movq 0x8(%rbp), %rsi
movq %rbx, %rdi
callq *0x20(%rbp)
movq (%rsp), %rcx
movq %rax, 0x10(%rcx)
movq 0x8(%r14), %rsi
movq %rbx, %rdi
jmp 0xcb46d
movq %rax, 0x20(%rbx)
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O1/BernardTatin[P]s7sh/s7.c
// Function: op_tc_or_a_and_a_a_l3a
static void op_tc_or_a_and_a_a_l3a(s7_scheme *sc, bool or_case, s7_pointer code)
                {
                    s7_pointer fx_and1, fx_and2, fx_or, fx_la, la_slot, fx_laa, laa_slot, fx_l3a, l3a_slot;

                    fx_or = cdr(code);             /* first clause of or */
                    fx_and1 = (or_case) ? cdadr(fx_or) : cdaddr(fx_or);
                    fx_and2 = cdr(fx_and1);
                    fx_la = cdadr(fx_and2);
                    la_slot = let_slots(sc->envir);
                    fx_laa = cdr(fx_la);
                    laa_slot = next_slot(la_slot);
                    fx_l3a = cdr(fx_laa);
                    l3a_slot = next_slot(laa_slot);

                    while (true)
                    {
                        s7_pointer p;
                        p = fx_call(sc, fx_or);
                        if (p != sc->F) {sc->value = p; return;}
                        p = fx_call(sc, fx_and1);
                        if (p == sc->F) {sc->value = p; return;}
                        p = fx_call(sc, fx_and2);
                        if (p == sc->F) {sc->value = p; return;}
                        slot_set_value(la_slot, fx_call(sc, fx_la));
                        slot_set_value(laa_slot, fx_call(sc, fx_laa));
                        slot_set_value(l3a_slot, fx_call(sc, fx_l3a));
                    }
                }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movq %rdi, %rbx
movq 0x10(%rdx), %r14
movq %r14, %rax
testl %esi, %esi
jne 0xcb506
movq 0x10(%r14), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %r15
movq 0x10(%r15), %r12
movq 0x10(%r12), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %r13
movq 0x8(%rbx), %rax
movq 0x8(%rax), %rax
movq 0x10(%r13), %rbp
movq %rax, 0x20(%rsp)
movq 0x18(%rax), %rax
movq 0x10(%rbp), %rcx
movq %rcx, 0x10(%rsp)
movq %rax, 0x18(%rsp)
movq 0x18(%rax), %rax
movq %rax, 0x8(%rsp)
movq 0x8(%r14), %rsi
movq %rbx, %rdi
callq *0x20(%r14)
cmpq 0x120(%rbx), %rax
jne 0xcb5ce
movq 0x8(%r15), %rsi
movq %rbx, %rdi
callq *0x20(%r15)
cmpq 0x120(%rbx), %rax
je 0xcb5ce
movq 0x8(%r12), %rsi
movq %rbx, %rdi
callq *0x20(%r12)
cmpq 0x120(%rbx), %rax
je 0xcb5ce
movq 0x8(%r13), %rsi
movq %rbx, %rdi
callq *0x20(%r13)
movq 0x20(%rsp), %rcx
movq %rax, 0x10(%rcx)
movq 0x8(%rbp), %rsi
movq %rbx, %rdi
callq *0x20(%rbp)
movq 0x18(%rsp), %rcx
movq %rax, 0x10(%rcx)
movq 0x10(%rsp), %rax
movq 0x8(%rax), %rsi
movq %rbx, %rdi
callq *0x20(%rax)
movq 0x8(%rsp), %rcx
movq %rax, 0x10(%rcx)
jmp 0xcb54f
movq %rax, 0x20(%rbx)
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O1/BernardTatin[P]s7sh/s7.c
// Function: op_tc_if_a_z_if_a_z_laa
static bool op_tc_if_a_z_if_a_z_laa(s7_scheme *sc, bool cond, s7_pointer code)
                {
                    s7_pointer if_test, if_true, if_false, f_test, f_true, la, la_slot, laa, laa_slot, endp;
                    if_test = (cond) ? cadr(code) : cdr(code);
                    if_true = cdr(if_test);
                    if (!cond) if_false = cadr(if_true);
                    f_test = (cond) ? caddr(code) : cdr(if_false);
                    f_true = cdr(f_test);
                    la = (cond) ?  cdadr(cadddr(code)) : cdadr(f_true);
                    la_slot = let_slots(sc->envir);
                    laa = cdr(la);
                    laa_slot = next_slot(la_slot);

                    while (true)
                    {
                        s7_pointer a1;
                        if (fx_call(sc, if_test) != sc->F) {endp = if_true; break;}
                        if (fx_call(sc, f_test) != sc->F) {endp = f_true; break;}
                        a1 = fx_call(sc, la);
                        sc->w = a1;
                        slot_set_value(laa_slot, fx_call(sc, laa));
                        slot_set_value(la_slot, a1);
                    }
                    return(op_tc_z(sc, endp));
                }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movq %rdi, %rbx
leaq 0x10(%rdx), %rax
testl %esi, %esi
je 0xcb8bf
movq (%rax), %rax
addq $0x8, %rax
movq (%rax), %r15
movq 0x10(%r15), %rbp
testb %sil, %sil
jne 0xcb8d3
movq 0x10(%rbp), %rax
movq 0x8(%rax), %rax
testb %sil, %sil
je 0xcb8e6
movq 0x10(%rdx), %rax
movq 0x10(%rax), %rax
addq $0x8, %rax
jmp 0xcb8ea
addq $0x10, %rax
movq (%rax), %r13
movq 0x10(%r13), %rax
movq %rax, 0x20(%rsp)
testb %sil, %sil
je 0xcb90b
movq 0x10(%rdx), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rcx
movq 0x8(%rbx), %rax
movq 0x8(%rax), %rax
movq %rcx, 0x18(%rsp)
movq 0x10(%rcx), %rcx
movq %rcx, 0x8(%rsp)
movq %rax, 0x10(%rsp)
movq 0x18(%rax), %rax
movq %rax, (%rsp)
movq 0x8(%r15), %rsi
movq %rbx, %rdi
callq *0x20(%r15)
cmpq 0x120(%rbx), %rax
je 0xcb955
xorl %eax, %eax
movq %rbp, %r12
jmp 0xcb9ad
movq 0x8(%r13), %rsi
movq %rbx, %rdi
callq *0x20(%r13)
cmpq 0x120(%rbx), %rax
je 0xcb972
xorl %eax, %eax
movq 0x20(%rsp), %r12
jmp 0xcb9ad
movq 0x18(%rsp), %rax
movq 0x8(%rax), %rsi
movq %rbx, %rdi
callq *0x20(%rax)
movq %rax, %r14
movq %rax, 0x4d8(%rbx)
movq 0x8(%rsp), %rax
movq 0x8(%rax), %rsi
movq %rbx, %rdi
callq *0x20(%rax)
movq (%rsp), %rcx
movq %rax, 0x10(%rcx)
movq 0x10(%rsp), %rax
movq %r14, 0x10(%rax)
movb $0x1, %al
testb %al, %al
jne 0xcb93a
movzwl 0x6(%r12), %ebp
testb $0x4, %bpl
je 0xcb9d0
movq 0x8(%r12), %rsi
movq %rbx, %rdi
callq *0x20(%r12)
movq %rax, 0x20(%rbx)
jmp 0xcb9d8
movq 0x8(%r12), %rax
movq %rax, (%rbx)
andl $0x4, %ebp
shrl $0x2, %ebp
movl %ebp, %eax
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O1/BernardTatin[P]s7sh/s7.c
// Function: op_tc_cond_a_z_a_laa_laa
static bool op_tc_cond_a_z_a_laa_laa(s7_scheme *sc, s7_pointer code)
                {
                    s7_pointer c1, c2, c3, la1, la2, laa1, laa2, la_slot, laa_slot;
                    c1 = cadr(code);
                    c2 = caddr(code);
                    la1 = cdadr(c2);
                    laa1 = cddadr(c2);
                    c3 = cadr(cadddr(code));
                    la2 = cdr(c3);
                    laa2 = cddr(c3);
                    la_slot = let_slots(sc->envir);
                    laa_slot = next_slot(la_slot);
                    while (true)
                    {
                        s7_pointer a1;
                        if (fx_call(sc, c1) != sc->F) {c1 = cdr(c1); break;}
                        if (fx_call(sc, c2) != sc->F)
                        {
                            a1 = fx_call(sc, la1);
                            sc->w = a1;
                            slot_set_value(laa_slot, fx_call(sc, laa1));
                        }
                        else
                        {
                            a1 = fx_call(sc, la2);
                            sc->w = a1;
                            slot_set_value(laa_slot, fx_call(sc, laa2));
                        }
                        slot_set_value(la_slot, a1);
                    }
                    return(op_tc_z(sc, c1));
                }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x38, %rsp
movq %rdi, %rbx
movq 0x10(%rsi), %rax
movq 0x8(%rax), %r12
movq 0x10(%rax), %rax
movq 0x8(%rax), %rcx
movq 0x10(%rax), %rax
movq %rcx, 0x30(%rsp)
movq 0x10(%rcx), %rcx
movq 0x8(%rcx), %rcx
movq 0x10(%rcx), %rcx
movq %rcx, 0x8(%rsp)
movq 0x10(%rcx), %rcx
movq %rcx, (%rsp)
movq 0x8(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rax
movq %rax, 0x28(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x20(%rsp)
movq 0x8(%rdi), %rax
movq 0x8(%rax), %rax
movq %rax, 0x18(%rsp)
movq 0x18(%rax), %rax
movq %rax, 0x10(%rsp)
movq 0x8(%r12), %rsi
movq %rbx, %rdi
callq *0x20(%r12)
movq %rax, %r14
movq 0x120(%rbx), %rbp
cmpq %rbp, %rax
je 0xcba89
movq 0x10(%r12), %r12
jmp 0xcbae5
movq 0x30(%rsp), %rax
movq 0x8(%rax), %rsi
movq %rbx, %rdi
callq *0x20(%rax)
movq 0x28(%rsp), %rcx
movq 0x20(%rsp), %r13
cmpq 0x120(%rbx), %rax
je 0xcbab4
movq 0x8(%rsp), %rcx
movq (%rsp), %r13
movq 0x8(%rcx), %rsi
movq %rbx, %rdi
callq *0x20(%rcx)
movq %rax, %r15
movq %rax, 0x4d8(%rbx)
movq 0x8(%r13), %rsi
movq %rbx, %rdi
callq *0x20(%r13)
movq 0x10(%rsp), %rcx
movq %rax, 0x10(%rcx)
movq 0x18(%rsp), %rax
movq %r15, 0x10(%rax)
cmpq %rbp, %r14
je 0xcba66
movzwl 0x6(%r12), %ebp
testb $0x4, %bpl
je 0xcbb0d
movq 0x8(%r12), %rsi
movq %rbx, %rdi
callq *0x20(%r12)
movq %rax, 0x20(%rbx)
jmp 0xcbb15
movq 0x8(%r12), %rax
movq %rax, (%rbx)
andl $0x4, %ebp
shrl $0x2, %ebp
movl %ebp, %eax
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O1/BernardTatin[P]s7sh/s7.c
// Function: op_tc_if_a_z_if_a_laa_z
static bool op_tc_if_a_z_if_a_laa_z(s7_scheme *sc, s7_pointer code)
                {
                    s7_pointer if_test, if_true, if_false, f_test, f_true, f_false, la, la_slot, laa, laa_slot, endp;
                    if_test = cdr(code);
                    if_true = cdr(if_test);
                    if_false = cadr(if_true);
                    f_test = cdr(if_false);
                    f_true = cdr(f_test);
                    f_false = cdr(f_true);
                    la = cdar(f_true);
                    la_slot = let_slots(sc->envir);
                    laa = cdr(la);
                    laa_slot = next_slot(la_slot);

                    while (true)
                    {
                        s7_pointer a1;
                        if (fx_call(sc, if_test) != sc->F) {endp = if_true; break;}
                        if (fx_call(sc, f_test) == sc->F) {endp = f_false; break;}
                        a1 = fx_call(sc, la);
                        sc->w = a1;
                        slot_set_value(laa_slot, fx_call(sc, laa));
                        slot_set_value(la_slot, a1);
                    }
                    return(op_tc_z(sc, endp));
                }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movq %rdi, %rbx
movq 0x10(%rsi), %r15
movq 0x10(%r15), %rbp
movq 0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %r13
movq 0x10(%r13), %rax
movq 0x8(%rax), %rcx
movq 0x10(%rax), %rax
movq %rax, (%rsp)
movq 0x10(%rcx), %rcx
movq 0x8(%rdi), %rax
movq 0x8(%rax), %rax
movq %rcx, 0x20(%rsp)
movq 0x10(%rcx), %rcx
movq %rcx, 0x10(%rsp)
movq %rax, 0x18(%rsp)
movq 0x18(%rax), %rax
movq %rax, 0x8(%rsp)
movq 0x8(%r15), %rsi
movq %rbx, %rdi
callq *0x20(%r15)
cmpq 0x120(%rbx), %rax
je 0xcd127
xorl %eax, %eax
movq %rbp, %r12
jmp 0xcd17f
movq 0x8(%r13), %rsi
movq %rbx, %rdi
callq *0x20(%r13)
cmpq 0x120(%rbx), %rax
je 0xcd179
movq 0x20(%rsp), %rax
movq 0x8(%rax), %rsi
movq %rbx, %rdi
callq *0x20(%rax)
movq %rax, %r14
movq %rax, 0x4d8(%rbx)
movq 0x10(%rsp), %rax
movq 0x8(%rax), %rsi
movq %rbx, %rdi
callq *0x20(%rax)
movq 0x8(%rsp), %rcx
movq %rax, 0x10(%rcx)
movq 0x18(%rsp), %rax
movq %r14, 0x10(%rax)
movb $0x1, %al
jmp 0xcd17f
xorl %eax, %eax
movq (%rsp), %r12
testb %al, %al
jne 0xcd10c
movzwl 0x6(%r12), %ebp
testb $0x4, %bpl
je 0xcd1a2
movq 0x8(%r12), %rsi
movq %rbx, %rdi
callq *0x20(%r12)
movq %rax, 0x20(%rbx)
jmp 0xcd1aa
movq 0x8(%r12), %rax
movq %rax, (%rbx)
andl $0x4, %ebp
shrl $0x2, %ebp
movl %ebp, %eax
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq