// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: let_fill
static s7_pointer let_fill(s7_scheme *sc, s7_pointer args)
    {
        s7_pointer e, val;
        e = car(args);

        if ((e == sc->rootlet) || (e == sc->s7_let))
            eval_error(sc, "attempt to fill! ~S?", 19, e);
        if (e == sc->owlet) /* (owlet) copies sc->owlet, so this probably can't happen */
            return(out_of_range(sc, sc->fill_symbol, small_int(1), e, wrap_string(sc, "can't fill! owlet", 17)));
        if (is_funclet(e))
            return(out_of_range(sc, sc->fill_symbol, small_int(1), e, wrap_string(sc, "can't fill! a funclet", 21)));
        if (is_immutable(e))
            return(immutable_object_error(sc, set_elist_3(sc, immutable_error_string, sc->fill_symbol, e)));

        val = cadr(args);
        if (val == sc->undefined)
        {
            let_set_slots(e, slot_end(sc));
            let_id(e) = ++sc->let_number; /* else previous symbol_id matches! */
        }
        else
        {
            s7_pointer p;
            for (p = let_slots(e); tis_slot(p); p = next_slot(p))
                checked_slot_set_value(sc, p, val);
        }
        return(val);
    }

// Assembly:
subq $0x98, %rsp
movq %rdi, 0x88(%rsp)
movq %rsi, 0x80(%rsp)
movq 0x80(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x78(%rsp)
movq 0x78(%rsp), %rax
movq 0x88(%rsp), %rcx
cmpq 0x150(%rcx), %rax
je 0x444f4
movq 0x78(%rsp), %rax
movq 0x88(%rsp), %rcx
cmpq 0x2150(%rcx), %rax
jne 0x4456c
movq 0x88(%rsp), %rax
movq %rax, 0x58(%rsp)
movq 0x88(%rsp), %rax
movq 0x1918(%rax), %rax
movq %rax, 0x60(%rsp)
movq 0x88(%rsp), %rax
movq %rax, 0x50(%rsp)
movq 0x88(%rsp), %rdi
leaq 0x1aaa7a(%rip), %rsi    # 0x1eefab
movl $0x13, %edx
callq 0xb880
movq 0x50(%rsp), %rdi
movq %rax, %rsi
movq 0x78(%rsp), %rdx
callq 0xb830
movq 0x58(%rsp), %rdi
movq 0x60(%rsp), %rsi
movq %rax, %rdx
callq 0x2f940
movq %rax, 0x90(%rsp)
jmp 0x4479c
movq 0x78(%rsp), %rax
movq 0x88(%rsp), %rcx
cmpq 0x198(%rcx), %rax
jne 0x445ff
movq 0x88(%rsp), %rax
movq %rax, 0x30(%rsp)
movq 0x88(%rsp), %rax
movq 0xee8(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, 0x38(%rsp)
movq 0x1d1eda(%rip), %rax    # 0x216488
movq %rax, 0x40(%rsp)
movq 0x78(%rsp), %rax
movq %rax, 0x48(%rsp)
movq 0x88(%rsp), %rdi
leaq 0x1aa9f4(%rip), %rsi    # 0x1eefc0
movl $0x11, %edx
callq 0xb880
movq 0x30(%rsp), %rdi
movq 0x38(%rsp), %rsi
movq 0x40(%rsp), %rdx
movq 0x48(%rsp), %rcx
movq %rax, %r8
callq 0x13880
movq %rax, 0x90(%rsp)
jmp 0x4479c
movq 0x78(%rsp), %rax
movq (%rax), %rax
andq $0x20000000, %rax       # imm = 0x20000000
cmpq $0x0, %rax
je 0x44690
movq 0x88(%rsp), %rax
movq %rax, 0x10(%rsp)
movq 0x88(%rsp), %rax
movq 0xee8(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, 0x18(%rsp)
movq 0x1d1e49(%rip), %rax    # 0x216488
movq %rax, 0x20(%rsp)
movq 0x78(%rsp), %rax
movq %rax, 0x28(%rsp)
movq 0x88(%rsp), %rdi
leaq 0x1aa975(%rip), %rsi    # 0x1eefd2
movl $0x15, %edx
callq 0xb880
movq 0x10(%rsp), %rdi
movq 0x18(%rsp), %rsi
movq 0x20(%rsp), %rdx
movq 0x28(%rsp), %rcx
movq %rax, %r8
callq 0x13880
movq %rax, 0x90(%rsp)
jmp 0x4479c
movq 0x78(%rsp), %rax
movq (%rax), %rax
andq $0x1000000, %rax        # imm = 0x1000000
cmpq $0x0, %rax
je 0x446f3
movq 0x88(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x88(%rsp), %rdi
movq 0x1d5dd8(%rip), %rsi    # 0x21a498
movq 0x88(%rsp), %rax
movq 0xee8(%rax), %rdx
movq 0x78(%rsp), %rcx
callq 0xf240
movq 0x8(%rsp), %rdi
movq %rax, %rsi
callq 0xb800
movq %rax, 0x90(%rsp)
jmp 0x4479c
movq 0x80(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, 0x70(%rsp)
movq 0x70(%rsp), %rax
movq 0x88(%rsp), %rcx
cmpq 0x128(%rcx), %rax
jne 0x44750
movq 0x78(%rsp), %rax
movq $0x0, 0x8(%rax)
movq 0x88(%rsp), %rax
movq 0x250(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x250(%rax)
movq 0x78(%rsp), %rax
movq %rcx, 0x18(%rax)
jmp 0x4478f
movq 0x78(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x68(%rsp)
cmpq $0x0, 0x68(%rsp)
je 0x4478d
movq 0x88(%rsp), %rdi
movq 0x68(%rsp), %rsi
movq 0x70(%rsp), %rdx
callq 0xc5e00
movq 0x68(%rsp), %rax
movq 0x18(%rax), %rax
movq %rax, 0x68(%rsp)
jmp 0x4475e
jmp 0x4478f
movq 0x70(%rsp), %rax
movq %rax, 0x90(%rsp)
movq 0x90(%rsp), %rax
addq $0x98, %rsp
retq
nopl (%rax)