// File: /workspace/github_c_makefile_star2_O3/BernardTatin[P]s7sh/s7.c
// Function: op_closure_3s
static void op_closure_3s(s7_scheme *sc)
                {
                    s7_pointer e, p, args, last_slot;
                    s7_int id;
                    check_stack_size(sc);
                    args = cdr(sc->code);
                    sc->code = opt1_lambda(sc->code);

                    new_frame(sc, closure_let(sc->code), e);
                    sc->z = e;
                    id = let_id(e);
                    p = closure_args(sc->code);
                    add_slot(e, car(p), lookup(sc, car(args)));
                    last_slot = let_slots(e);
                    p = cdr(p);
                    args = cdr(args);
                    add_slot_at_end(id, last_slot, car(p), lookup(sc, car(args)));
                    add_slot_at_end(id, last_slot, cadr(p), lookup(sc, cadr(args)));

                    sc->envir = e;
                    sc->z = sc->nil;
                }

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
movq 0x50(%rdi), %rax
cmpq 0x58(%rdi), %rax
jb 0xc23f1
movq %rbx, %rdi
callq 0xb990b
movq (%rbx), %rcx
movq 0x90(%rbx), %rax
movq 0x10(%rcx), %r14
movq 0x18(%rcx), %rcx
movq %rcx, (%rbx)
cmpq 0x98(%rbx), %rax
ja 0xc241e
movq %rbx, %rdi
callq 0xa550
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 $0x0, 0x8(%rax)
movq (%rbx), %rcx
movq 0x18(%rcx), %rcx
movq %rcx, 0x10(%rax)
movq %rax, 0x4f0(%rbx)
movq (%rbx), %rdx
movq 0x8(%rbx), %rcx
movq 0x8(%rdx), %rsi
movq 0x8(%rsi), %rdi
movq 0x8(%r14), %rdx
movq 0x18(%rcx), %r9
movq 0x20(%rdx), %r8
cmpq %r8, %r9
je 0xc249b
jle 0xc2492
movq 0x10(%rcx), %rcx
movq 0x18(%rcx), %r9
cmpq %r9, %r8
jl 0xc2485
cmpq %r8, %r9
jne 0xc25fc
movq 0x18(%rdx), %r8
movq 0x10(%r8), %r8
movq 0x18(%rax), %rcx
movq 0x90(%rbx), %rdx
leaq -0x8(%rdx), %r9
movq %r9, 0x90(%rbx)
movq -0x8(%rdx), %rdx
movq $0x20, (%rdx)
movq %rdi, 0x8(%rdx)
movq %r8, 0x10(%rdx)
movq %rdx, 0x18(%rdi)
movq 0x18(%rax), %r8
movq %r8, 0x20(%rdi)
incl 0x28(%rdi)
movq 0x8(%rax), %rdi
movq %rdi, 0x18(%rdx)
movq %rdx, 0x8(%rax)
movq 0x10(%rsi), %r8
movq 0x10(%r14), %rdi
movq 0x8(%r8), %r9
movq 0x8(%rdi), %rsi
movq 0x8(%rbx), %r10
movq 0x18(%r10), %r14
movq 0x20(%rsi), %r11
cmpq %r11, %r14
je 0xc2520
jle 0xc2517
movq 0x10(%r10), %r10
movq 0x18(%r10), %r14
cmpq %r14, %r11
jl 0xc250a
cmpq %r11, %r14
jne 0xc2620
movq 0x18(%rsi), %r11
movq 0x10(%r11), %r10
movq 0x90(%rbx), %rsi
leaq -0x8(%rsi), %r11
movq %r11, 0x90(%rbx)
movq -0x8(%rsi), %rsi
movq $0x20, (%rsi)
movq %r9, 0x8(%rsi)
movq $0x0, 0x18(%rsi)
movq %r10, 0x10(%rsi)
movq %rsi, 0x18(%r9)
movq %rcx, 0x20(%r9)
incl 0x28(%r9)
movq %rsi, 0x18(%rdx)
movq 0x10(%r8), %rdx
movq 0x8(%rdx), %rdx
movq 0x10(%rdi), %rdi
movq 0x8(%rdi), %rdi
movq 0x8(%rbx), %r8
movq 0x18(%r8), %r10
movq 0x20(%rdi), %r9
cmpq %r9, %r10
je 0xc259e
jle 0xc2595
movq 0x10(%r8), %r8
movq 0x18(%r8), %r10
cmpq %r10, %r9
jl 0xc2588
cmpq %r9, %r10
jne 0xc2645
movq 0x18(%rdi), %r9
movq 0x10(%r9), %rdi
movq 0x90(%rbx), %r8
leaq -0x8(%r8), %r9
movq %r9, 0x90(%rbx)
movq -0x8(%r8), %r8
movq $0x20, (%r8)
movq %rdx, 0x8(%r8)
movq $0x0, 0x18(%r8)
movq %rdi, 0x10(%r8)
movq %r8, 0x18(%rdx)
movq %rcx, 0x20(%rdx)
incl 0x28(%rdx)
movq %r8, 0x18(%rsi)
movq %rax, 0x8(%rbx)
movq 0x110(%rbx), %rax
movq %rax, 0x4f0(%rbx)
addq $0x8, %rsp
popq %rbx
popq %r14
retq
cmpb $0x1c, (%rcx)
jne 0xc266a
movq 0x8(%rcx), %r8
testq %r8, %r8
je 0xc261a
cmpq %rdx, 0x8(%r8)
je 0xc249f
movq 0x18(%r8), %r8
jmp 0xc2605
movq 0x10(%rcx), %rcx
jmp 0xc25fc
cmpb $0x1c, (%r10)
jne 0xc2680
movq 0x8(%r10), %r11
testq %r11, %r11
je 0xc263f
cmpq %rsi, 0x8(%r11)
je 0xc2524
movq 0x18(%r11), %r11
jmp 0xc262a
movq 0x10(%r10), %r10
jmp 0xc2620
cmpb $0x1c, (%r8)
jne 0xc2696
movq 0x8(%r8), %r9
testq %r9, %r9
je 0xc2664
cmpq %rdi, 0x8(%r9)
je 0xc25a2
movq 0x18(%r9), %r9
jmp 0xc264f
movq 0x10(%r8), %r8
jmp 0xc2645
movq 0x10(%rdx), %r8
cmpb $0x20, (%r8)
je 0xc249f
xorl %r8d, %r8d
jmp 0xc24a3
movq 0x10(%rsi), %r11
cmpb $0x20, (%r11)
je 0xc2524
xorl %r10d, %r10d
jmp 0xc2528
movq 0x10(%rdi), %r9
cmpb $0x20, (%r9)
je 0xc25a2
xorl %edi, %edi
jmp 0xc25a6