// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: d_syntax_ok
static bool d_syntax_ok(s7_scheme *sc, s7_pointer car_x, int32_t len)
                {
                    if ((len == 3) &&
                            (car(car_x) == sc->set_symbol))
                    {
                        opt_info *opc;
                        opc = alloc_opo(sc, car_x);
                        if (is_symbol(cadr(car_x)))
                        {
                            s7_pointer settee;
                            if ((is_immutable(cadr(car_x))) ||
                                    (symbol_has_setter(cadr(car_x))))
                                return(return_false(sc, car_x, __func__, __LINE__));
                            settee = symbol_to_slot(sc, cadr(car_x));
                            if ((is_slot(settee)) &&
                                    (!is_immutable(settee)))
                            {
                                opc->v[1].p = settee;
                                if ((!is_t_integer(caddr(car_x))) &&
                                        (is_float(slot_value(settee))) &&
                                        (float_optimize(sc, cddr(car_x))))
                                {
                                    if (is_mutable_number(slot_value(opc->v[1].p)))
                                        opc->v[0].fd = opt_set_d_d_fm;
                                    else opc->v[0].fd = opt_set_d_d_f;
                                    return(oo_set_type_1(opc, 2, 1, OO_R));
                                }
                            }
                        }
                        else
                        {
                            /* if is_pair(settee) get setter */
                            if ((is_pair(cadr(car_x))) &&
                                    (is_symbol(caadr(car_x))) &&
                                    (is_pair(cdadr(car_x))))
                            {
                                if (is_null(cddadr(car_x)))
                                    return(opt_float_vector_set(sc, opc, caadr(car_x), cdadr(car_x), NULL, cddr(car_x)));
                                if (is_null(cdddr(cadr(car_x))))
                                    return(opt_float_vector_set(sc, opc, caadr(car_x), cdadr(car_x), cddadr(car_x), cddr(car_x)));
                            }}}
                    return(return_false(sc, car_x, __func__, __LINE__));
                }

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x28(%rsp)
movq %rsi, 0x20(%rsp)
movl %edx, 0x1c(%rsp)
cmpl $0x3, 0x1c(%rsp)
jne 0xe1044
movq 0x20(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x28(%rsp), %rcx
cmpq 0x18d8(%rcx), %rax
jne 0xe1044
movq 0x28(%rsp), %rdi
callq 0xe15e0
movq %rax, 0x10(%rsp)
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movzbl (%rax), %eax
cmpl $0xa, %eax
jne 0xe0ef8
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
andq $0x1000000, %rax        # imm = 0x1000000
cmpq $0x0, %rax
jne 0xe0dd8
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
andq $0x40000, %rax          # imm = 0x40000
cmpq $0x0, %rax
je 0xe0de2
movb $0x0, 0x37(%rsp)
jmp 0xe1049
movq 0x28(%rsp), %rdi
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rsi
callq 0xfc80
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
movzbl (%rax), %eax
cmpl $0x20, %eax
jne 0xe0ef3
movq 0x8(%rsp), %rax
movq (%rax), %rax
andq $0x1000000, %rax        # imm = 0x1000000
cmpq $0x0, %rax
jne 0xe0ef3
movq 0x8(%rsp), %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movzbl (%rax), %eax
cmpl $0xb, %eax
je 0xe0ef1
movq 0x8(%rsp), %rax
movq 0x10(%rax), %rax
movzbl (%rax), %eax
cmpl $0xd, %eax
jne 0xe0ef1
movq 0x28(%rsp), %rdi
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rsi
callq 0x473f0
testb $0x1, %al
jne 0xe0e84
jmp 0xe0ef1
movq 0x10(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rax
movq (%rax), %rax
andq $0x4000000, %rax        # imm = 0x4000000
cmpq $0x0, %rax
je 0xe0eb1
movq 0x10(%rsp), %rax
leaq 0x3b34(%rip), %rcx      # 0xe49e0
movq %rcx, (%rax)
jmp 0xe0ec0
movq 0x10(%rsp), %rax
leaq 0x3b93(%rip), %rcx      # 0xe4a50
movq %rcx, (%rax)
movq 0x10(%rsp), %rdi
movl $0x2, %esi
movl $0x1, %edx
movl $0x7, %ecx
leaq 0x10e308(%rip), %r8     # 0x1ef1e3
movl $0xe778, %r9d           # imm = 0xE778
callq 0xe4950
andb $0x1, %al
movb %al, 0x37(%rsp)
jmp 0xe1049
jmp 0xe0ef3
jmp 0xe1042
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0xe1040
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
movzbl (%rax), %eax
cmpl $0xa, %eax
jne 0xe1040
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0xe1040
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x28(%rsp), %rcx
cmpq 0x110(%rcx), %rax
jne 0xe0fbc
movq 0x28(%rsp), %rdi
movq 0x10(%rsp), %rsi
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rdx
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rcx
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %r9
xorl %eax, %eax
movl %eax, %r8d
callq 0xe4b50
andb $0x1, %al
movb %al, 0x37(%rsp)
jmp 0xe1049
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x28(%rsp), %rcx
cmpq 0x110(%rcx), %rax
jne 0xe103e
movq 0x28(%rsp), %rdi
movq 0x10(%rsp), %rsi
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rdx
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rcx
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %r8
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %r9
callq 0xe4b50
andb $0x1, %al
movb %al, 0x37(%rsp)
jmp 0xe1049
jmp 0xe1040
jmp 0xe1042
jmp 0xe1044
movb $0x0, 0x37(%rsp)
movb 0x37(%rsp), %al
andb $0x1, %al
addq $0x38, %rsp
retq
nopw %cs:(%rax,%rax)