// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: protect_setter
static void protect_setter(s7_scheme *sc, s7_pointer sym, s7_pointer acc)
                {
                    s7_int loc;
                    if (sc->protected_setters_size == sc->protected_setters_loc)
                    {
                        s7_int i, new_size, size;
                        block_t *ob, *nb;

                        size = sc->protected_setters_size;
                        new_size = 2 * size;

                        ob = vector_block(sc->protected_setters);
                        nb = reallocate(sc, ob, new_size * sizeof(s7_pointer));
                        block_info(nb) = NULL;
                        vector_block(sc->protected_setters) = nb;
                        vector_elements(sc->protected_setters) = (s7_pointer *)block_data(nb);
                        vector_length(sc->protected_setters) = new_size;

                        ob = vector_block(sc->protected_setter_symbols);
                        nb = reallocate(sc, ob, new_size * sizeof(s7_pointer));
                        vector_block(sc->protected_setter_symbols) = nb;
                        vector_elements(sc->protected_setter_symbols) = (s7_pointer *)block_data(nb);
                        vector_length(sc->protected_setter_symbols) = new_size;

                        for (i = size; i < new_size; i++)
                        {
                            vector_element(sc->protected_setters, i) = sc->unused;
                            vector_element(sc->protected_setter_symbols, i) = sc->unused;
                        }
                        sc->protected_setters_size = new_size;
                    }
                    loc = sc->protected_setters_loc++;
                    vector_element(sc->protected_setters, loc) = acc;
                    vector_element(sc->protected_setter_symbols, loc) = sym;
                }

// Assembly:
subq $0x48, %rsp
movq %rdi, 0x40(%rsp)
movq %rsi, 0x38(%rsp)
movq %rdx, 0x30(%rsp)
movq 0x40(%rsp), %rax
movq 0xf8(%rax), %rax
movq 0x40(%rsp), %rcx
cmpq 0x100(%rcx), %rax
jne 0x3e02e
movq 0x40(%rsp), %rax
movq 0xf8(%rax), %rax
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rax
shlq %rax
movq %rax, 0x18(%rsp)
movq 0x40(%rsp), %rax
movq 0xd8(%rax), %rax
movq 0x18(%rax), %rax
movq %rax, 0x8(%rsp)
movq 0x40(%rsp), %rdi
movq 0x8(%rsp), %rsi
movq 0x18(%rsp), %rdx
shlq $0x3, %rdx
callq 0xbb60
movq %rax, (%rsp)
movq (%rsp), %rax
movq $0x0, 0x20(%rax)
movq (%rsp), %rcx
movq 0x40(%rsp), %rax
movq 0xd8(%rax), %rax
movq %rcx, 0x18(%rax)
movq (%rsp), %rax
movq (%rax), %rcx
movq 0x40(%rsp), %rax
movq 0xd8(%rax), %rax
movq %rcx, 0x10(%rax)
movq 0x18(%rsp), %rcx
movq 0x40(%rsp), %rax
movq 0xd8(%rax), %rax
movq %rcx, 0x8(%rax)
movq 0x40(%rsp), %rax
movq 0xe0(%rax), %rax
movq 0x18(%rax), %rax
movq %rax, 0x8(%rsp)
movq 0x40(%rsp), %rdi
movq 0x8(%rsp), %rsi
movq 0x18(%rsp), %rdx
shlq $0x3, %rdx
callq 0xbb60
movq %rax, (%rsp)
movq (%rsp), %rcx
movq 0x40(%rsp), %rax
movq 0xe0(%rax), %rax
movq %rcx, 0x18(%rax)
movq (%rsp), %rax
movq (%rax), %rcx
movq 0x40(%rsp), %rax
movq 0xe0(%rax), %rax
movq %rcx, 0x10(%rax)
movq 0x18(%rsp), %rcx
movq 0x40(%rsp), %rax
movq 0xe0(%rax), %rax
movq %rcx, 0x8(%rax)
movq 0x10(%rsp), %rax
movq %rax, 0x20(%rsp)
movq 0x20(%rsp), %rax
cmpq 0x18(%rsp), %rax
jge 0x3e01d
movq 0x40(%rsp), %rax
movq 0x140(%rax), %rdx
movq 0x40(%rsp), %rax
movq 0xd8(%rax), %rax
movq 0x10(%rax), %rax
movq 0x20(%rsp), %rcx
movq %rdx, (%rax,%rcx,8)
movq 0x40(%rsp), %rax
movq 0x140(%rax), %rdx
movq 0x40(%rsp), %rax
movq 0xe0(%rax), %rax
movq 0x10(%rax), %rax
movq 0x20(%rsp), %rcx
movq %rdx, (%rax,%rcx,8)
movq 0x20(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x20(%rsp)
jmp 0x3dfb7
movq 0x18(%rsp), %rcx
movq 0x40(%rsp), %rax
movq %rcx, 0xf8(%rax)
movq 0x40(%rsp), %rcx
movq 0x100(%rcx), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, 0x100(%rcx)
movq %rax, 0x28(%rsp)
movq 0x30(%rsp), %rdx
movq 0x40(%rsp), %rax
movq 0xd8(%rax), %rax
movq 0x10(%rax), %rax
movq 0x28(%rsp), %rcx
movq %rdx, (%rax,%rcx,8)
movq 0x38(%rsp), %rdx
movq 0x40(%rsp), %rax
movq 0xe0(%rax), %rax
movq 0x10(%rax), %rax
movq 0x28(%rsp), %rcx
movq %rdx, (%rax,%rcx,8)
addq $0x48, %rsp
retq
nop