// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: op_letrec_star_unchecked
static bool op_letrec_star_unchecked(s7_scheme *sc)
                {
                    start_let(sc);
                    /* get all local vars and set to #<undefined>
                     * eval each member of values list and assign immediately, as in let*
                     * eval body
                     */
                    sc->envir = new_frame_in_env(sc, sc->envir);
                    if (is_pair(car(sc->code)))
                    {
                        s7_pointer x, p, q;
                        for (x = car(sc->code); is_not_null(x); x = cdr(x))
                        {
                            s7_pointer slot;
                            slot = make_slot_1(sc, sc->envir, caar(x), sc->undefined);
                            slot_set_expression(slot, cadar(x));
                        }
                        /* these are reversed, and for letrec*, they need to be in order, so... (reverse_in_place on the slot list) */
                        p = let_slots(sc->envir);
                        x = slot_end(sc);
                        while (tis_slot(p))
                        {
                            q = next_slot(p);
                            slot_set_next(p, x);
                            x = p;
                            p = q;
                        }
                        let_set_slots(sc->envir, x);
                        sc->args = let_slots(sc->envir);
                        if (!(sc->args)) sc->args = sc->nil;
                        push_stack(sc, OP_LETREC_STAR1, sc->args, sc->code);
                        sc->code = slot_expression(sc->args);
                        return(true);
                    }
                    sc->code = T_Pair(cdr(sc->code));
                    return(false);
                }

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x28(%rsp)
movq 0x28(%rsp), %rax
movq (%rax), %rcx
movq 0x28(%rsp), %rax
movq %rcx, 0x28(%rax)
movq 0x28(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rcx
movq 0x28(%rsp), %rax
movq %rcx, (%rax)
movq 0x28(%rsp), %rdi
movq 0x28(%rsp), %rax
movq 0x8(%rax), %rsi
callq 0xc53b0
movq %rax, %rcx
movq 0x28(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x28(%rsp), %rax
movq (%rax), %rax
movq 0x8(%rax), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0x14eb7a
movq 0x28(%rsp), %rax
movq (%rax), %rax
movq 0x8(%rax), %rax
movq %rax, 0x20(%rsp)
movq 0x20(%rsp), %rax
movq 0x28(%rsp), %rcx
cmpq 0x110(%rcx), %rax
je 0x14ea5b
movq 0x28(%rsp), %rdi
movq 0x28(%rsp), %rax
movq 0x8(%rax), %rsi
movq 0x20(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rdx
movq 0x28(%rsp), %rax
movq 0x128(%rax), %rcx
callq 0xbec0
movq %rax, 0x8(%rsp)
movq 0x20(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x28(%rax)
movq 0x8(%rsp), %rax
movq (%rax), %rcx
orq $0x2000000, %rcx        # imm = 0x2000000
movq %rcx, (%rax)
jmp 0x14ea48
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, 0x20(%rsp)
jmp 0x14e9d6
movq 0x28(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, 0x18(%rsp)
movq $0x0, 0x20(%rsp)
cmpq $0x0, 0x18(%rsp)
je 0x14eab0
movq 0x18(%rsp), %rax
movq 0x18(%rax), %rax
movq %rax, 0x10(%rsp)
movq 0x20(%rsp), %rcx
movq 0x18(%rsp), %rax
movq %rcx, 0x18(%rax)
movq 0x18(%rsp), %rax
movq %rax, 0x20(%rsp)
movq 0x10(%rsp), %rax
movq %rax, 0x18(%rsp)
jmp 0x14ea76
movq 0x20(%rsp), %rcx
movq 0x28(%rsp), %rax
movq 0x8(%rax), %rax
movq %rcx, 0x8(%rax)
movq 0x28(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rcx
movq 0x28(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x28(%rsp), %rax
cmpq $0x0, 0x10(%rax)
jne 0x14eaf9
movq 0x28(%rsp), %rax
movq 0x110(%rax), %rcx
movq 0x28(%rsp), %rax
movq %rcx, 0x10(%rax)
jmp 0x14eafb
movq 0x28(%rsp), %rax
movq (%rax), %rcx
movq 0x28(%rsp), %rax
movq 0x50(%rax), %rax
movq %rcx, (%rax)
movq 0x28(%rsp), %rax
movq 0x8(%rax), %rcx
movq 0x28(%rsp), %rax
movq 0x50(%rax), %rax
movq %rcx, 0x8(%rax)
movq 0x28(%rsp), %rax
movq 0x10(%rax), %rcx
movq 0x28(%rsp), %rax
movq 0x50(%rax), %rax
movq %rcx, 0x10(%rax)
movq 0x28(%rsp), %rax
movq 0x50(%rax), %rax
movl $0x1b5, %ecx            # imm = 0x1B5
movq %rcx, 0x18(%rax)
movq 0x28(%rsp), %rax
movq 0x50(%rax), %rcx
addq $0x20, %rcx
movq %rcx, 0x50(%rax)
movq 0x28(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x28(%rax), %rcx
movq 0x28(%rsp), %rax
movq %rcx, (%rax)
movb $0x1, 0x37(%rsp)
jmp 0x14eb93
movq 0x28(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rcx
movq 0x28(%rsp), %rax
movq %rcx, (%rax)
movb $0x0, 0x37(%rsp)
movb 0x37(%rsp), %al
andb $0x1, %al
addq $0x38, %rsp
retq
nop