// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: i_add_any_ok
static bool i_add_any_ok(s7_scheme *sc, opt_info *opc, s7_pointer car_x)
                {
                    s7_pointer p, head;
                    int32_t cur_len, start;
                    start = sc->pc;
                    head = car(car_x);
                    for (cur_len = 0, p = cdr(car_x); is_pair(p); p = cdr(p), cur_len++)
                        if (!int_optimize(sc, p))
                            break;
                    if (is_null(p))
                    {
                        opc->v[1].i = cur_len;
                        if (cur_len == 2)
                            opc->v[0].fi = (head == sc->add_symbol) ? opt_i_add2 : opt_i_mul2;
                        else
                        {
                            if (cur_len == 3)
                                opc->v[0].fi = (head == sc->add_symbol) ? opt_i_add3 : opt_i_mul3;
                            else
                            {
                                if (cur_len == 4)
                                    opc->v[0].fi = (head == sc->add_symbol) ? opt_i_add4 : opt_i_mul4;
                                else opc->v[0].fi = (head == sc->add_symbol) ? opt_i_add_any_f : opt_i_multiply_any_f;
                            }
                        }
                        /* all v[1].i = cur_len */
                        return(oo_set_type_0(opc, 2));
                    }
                    pc_fallback(sc, start);
                    return(return_false(sc, car_x, __func__, __LINE__));
                }

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x28(%rsp)
movq %rsi, 0x20(%rsp)
movq %rdx, 0x18(%rsp)
movq 0x28(%rsp), %rax
movl 0x2258(%rax), %eax
movl %eax, (%rsp)
movq 0x18(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x8(%rsp)
movl $0x0, 0x4(%rsp)
movq 0x18(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0xe87f4
movq 0x28(%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0xe59c0
testb $0x1, %al
jne 0xe87d7
jmp 0xe87f4
jmp 0xe87d9
movq 0x10(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
movl 0x4(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x4(%rsp)
jmp 0xe87b5
movq 0x10(%rsp), %rax
movq 0x28(%rsp), %rcx
cmpq 0x110(%rcx), %rax
jne 0xe8916
movslq 0x4(%rsp), %rcx
movq 0x20(%rsp), %rax
movq %rcx, 0x8(%rax)
cmpl $0x2, 0x4(%rsp)
jne 0xe8853
movq 0x8(%rsp), %rdx
movq 0x28(%rsp), %rax
movq 0xba8(%rax), %rsi
leaq 0x2a6b8(%rip), %rcx     # 0x112ef0
leaq 0x2a601(%rip), %rax     # 0x112e40
cmpq %rsi, %rdx
cmoveq %rax, %rcx
movq 0x20(%rsp), %rax
movq %rcx, (%rax)
jmp 0xe88f3
cmpl $0x3, 0x4(%rsp)
jne 0xe888a
movq 0x8(%rsp), %rdx
movq 0x28(%rsp), %rax
movq 0xba8(%rax), %rsi
leaq 0x2a81e(%rip), %rcx     # 0x113090
leaq 0x2a727(%rip), %rax     # 0x112fa0
cmpq %rsi, %rdx
cmoveq %rax, %rcx
movq 0x20(%rsp), %rax
movq %rcx, (%rax)
jmp 0xe88f1
cmpl $0x4, 0x4(%rsp)
jne 0xe88c1
movq 0x8(%rsp), %rdx
movq 0x28(%rsp), %rax
movq 0xba8(%rax), %rsi
leaq 0x2aa07(%rip), %rcx     # 0x1132b0
leaq 0x2a8d0(%rip), %rax     # 0x113180
cmpq %rsi, %rdx
cmoveq %rax, %rcx
movq 0x20(%rsp), %rax
movq %rcx, (%rax)
jmp 0xe88ef
movq 0x8(%rsp), %rdx
movq 0x28(%rsp), %rax
movq 0xba8(%rax), %rsi
leaq 0x2ab97(%rip), %rcx     # 0x113470
leaq 0x2ab00(%rip), %rax     # 0x1133e0
cmpq %rsi, %rdx
cmoveq %rax, %rcx
movq 0x20(%rsp), %rax
movq %rcx, (%rax)
jmp 0xe88f1
jmp 0xe88f3
movq 0x20(%rsp), %rdi
movl $0x2, %esi
leaq 0x106d0c(%rip), %rdx    # 0x1ef610
movl $0xdd4d, %ecx           # imm = 0xDD4D
callq 0xe4820
andb $0x1, %al
movb %al, 0x37(%rsp)
jmp 0xe8928
movq 0x28(%rsp), %rdi
movl (%rsp), %esi
callq 0xe59a0
movb $0x0, 0x37(%rsp)
movb 0x37(%rsp), %al
andb $0x1, %al
addq $0x38, %rsp
retq
nopw %cs:(%rax,%rax)