// File: /workspace/github_c_makefile_star2_O1/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:
pushq %rbx
subq $0x10, %rsp
movq %rsi, %r10
cmpb $0x30, (%rdx)
jb 0xa7fa5
movq 0x8(%rdx), %rax
movq 0x20(%rax), %rax
testq %rax, %rax
sete %sil
je 0xa7fa0
cmpl $0x18, (%rax)
je 0xa7f98
movq 0x10(%rax), %rax
testq %rax, %rax
sete %sil
je 0xa7fa0
cmpl $0x18, (%rax)
jne 0xa7f86
movq 0x8(%rax), %rdx
xorl %esi, %esi
jmp 0xa7fa0
testb %sil, %sil
je 0xa7fa7
xorl %edx, %edx
testq %rdx, %rdx
je 0xa80c1
movq 0x10(%rcx), %r8
movq 0x8(%r8), %rax
cmpb $0xa, (%rax)
jne 0xa80c1
movq 0x8(%rcx), %rsi
cmpq 0xfb0(%rdi), %rsi
je 0xa8091
cmpq 0xc38(%rdi), %rsi
je 0xa809a
movq 0x8(%rdi), %r8
movq 0x18(%r8), %r11
movq 0x20(%rax), %r9
movl $0x18, %esi
cmpq %r9, %r11
je 0xa8040
jle 0xa8004
movq 0x10(%r8), %r8
movq 0x18(%r8), %r11
cmpq %r11, %r9
jl 0xa7ff7
cmpq %r9, %r11
je 0xa8040
movl $0x10, %esi
cmpb $0x1c, (%r8)
jne 0xa8040
movq 0x8(%r8), %r9
testq %r9, %r9
sete %bl
je 0xa802c
cmpq %rax, 0x8(%r9)
je 0xa802f
movq 0x18(%r9), %r9
jmp 0xa8018
movq %r11, %r9
testb %bl, %bl
je 0xa8044
movq 0x10(%r8), %r8
cmpb $0x1c, (%r8)
movq %r9, %r11
je 0xa8014
movq (%rax,%rsi), %r9
movb $0x1, %sil
cmpb $0x20, (%r9)
jne 0xa8098
movq 0x10(%r9), %rax
cmpb $0x16, (%rax)
jne 0xa8098
movq 0x18(%rax), %rax
movq 0x20(%rax), %rax
testq %rax, %rax
je 0xa8098
cmpq $0x3, 0x10(%rax)
jne 0xa80bc
movq %rdx, 0x28(%r10)
movq %r9, 0x8(%r10)
movq 0x10(%rcx), %rax
movq 0x10(%rax), %rcx
movq 0x10(%rcx), %r8
movq 0x10(%r8), %r9
movq %r10, %rsi
movl $0x4, %edx
callq 0xa871c
jmp 0xa80ba
movl $0x4, %esi
jmp 0xa809f
jmp 0xa80bc
movl $0xa, %esi
movq 0x10(%r8), %r8
movq 0x10(%r8), %r9
movq 0x10(%r9), %rcx
movq %rcx, (%rsp)
movq %r10, %rdx
movq %rax, %rcx
callq 0xa82ef
xorl %esi, %esi
testb %sil, %sil
je 0xa80c3
xorl %eax, %eax
andb $0x1, %al
addq $0x10, %rsp
popq %rbx
retq