// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: i_7piii_ok
static bool i_7piii_ok(s7_scheme *sc, opt_info *opc, s7_pointer s_func, s7_pointer car_x)
                {
                    s7_i_7piii_t f;
                    f = s7_i_7piii_function(s_func);
                    if ((f) &&
                            (is_symbol(cadr(car_x))))
                    {
                        s7_pointer settee;
                        if ((car(car_x) == sc->int_vector_set_symbol) || (car(car_x) == sc->byte_vector_set_symbol))
                            return(opt_int_vector_set(sc, (car(car_x) == sc->int_vector_set_symbol) ? OO_IV : OO_BV, opc, cadr(car_x), cddr(car_x), cdddr(car_x), cddddr(car_x)));

                        settee = symbol_to_slot(sc, cadr(car_x));
                        if (is_slot(settee))
                        {
                            s7_pointer vect;
                            vect = slot_value(settee);
                            if ((is_int_vector(vect)) && (vector_rank(vect) == 3))
                            {
                                opc->v[5].i_7piii_f = f;
                                opc->v[1].p = settee;
                                return(opt_i_7piii_args(sc, opc, OO_IV, cddr(car_x), cdddr(car_x), cddddr(car_x)));
                            }
                        }
                    }
                    return(return_false(sc, car_x, __func__, __LINE__));
                }

// Assembly:
subq $0x58, %rsp
movq %rdi, 0x48(%rsp)
movq %rsi, 0x40(%rsp)
movq %rdx, 0x38(%rsp)
movq %rcx, 0x30(%rsp)
movq 0x38(%rsp), %rdi
callq 0x112e20
movq %rax, 0x28(%rsp)
cmpq $0x0, 0x28(%rsp)
je 0xe875b
movq 0x30(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movzbl (%rax), %eax
cmpl $0xa, %eax
jne 0xe875b
movq 0x30(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x48(%rsp), %rcx
cmpq 0xfb0(%rcx), %rax
je 0xe85de
movq 0x30(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x48(%rsp), %rcx
cmpq 0xc38(%rcx), %rax
jne 0xe8661
movq 0x48(%rsp), %rdi
movq 0x30(%rsp), %rax
movq 0x8(%rax), %rcx
movq 0x48(%rsp), %rax
movq 0xfb0(%rax), %rdx
movl $0xa, %esi
movl $0x4, %eax
cmpq %rdx, %rcx
cmovel %eax, %esi
movq 0x40(%rsp), %rdx
movq 0x30(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rcx
movq 0x30(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %r8
movq 0x30(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %r9
movq 0x30(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq %rax, (%rsp)
callq 0xe8c30
andb $0x1, %al
movb %al, 0x57(%rsp)
jmp 0xe8760
movq 0x48(%rsp), %rdi
movq 0x30(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rsi
callq 0xfc80
movq %rax, 0x20(%rsp)
movq 0x20(%rsp), %rax
movzbl (%rax), %eax
cmpl $0x20, %eax
jne 0xe8759
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, 0x18(%rsp)
movq 0x18(%rsp), %rax
movzbl (%rax), %eax
cmpl $0x16, %eax
jne 0xe8757
movq 0x18(%rsp), %rax
movq 0x18(%rax), %rax
cmpq $0x0, 0x20(%rax)
je 0xe86d5
movq 0x18(%rsp), %rax
movq 0x18(%rax), %rax
movq 0x20(%rax), %rax
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
jmp 0xe86e1
movl $0x1, %eax
movq %rax, 0x10(%rsp)
jmp 0xe86e1
movq 0x10(%rsp), %rax
cmpq $0x3, %rax
jne 0xe8757
movq 0x28(%rsp), %rcx
movq 0x40(%rsp), %rax
movq %rcx, 0x28(%rax)
movq 0x20(%rsp), %rcx
movq 0x40(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x48(%rsp), %rdi
movq 0x40(%rsp), %rsi
movq 0x30(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rcx
movq 0x30(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %r8
movq 0x30(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %r9
movl $0x4, %edx
callq 0xe9430
andb $0x1, %al
movb %al, 0x57(%rsp)
jmp 0xe8760
jmp 0xe8759
jmp 0xe875b
movb $0x0, 0x57(%rsp)
movb 0x57(%rsp), %al
andb $0x1, %al
addq $0x58, %rsp
retq
nopl (%rax,%rax)