// File: /workspace/github_c_makefile_star2_O2/BernardTatin[P]s7sh/s7.c
// Function: opt_i_7piii_args
static bool opt_i_7piii_args(s7_scheme *sc, opt_info *opc, opt_type_t otype, s7_pointer indexp1, s7_pointer indexp2, s7_pointer valp)
                {
                    s7_pointer slot;
                    slot = opt_integer_symbol(sc, car(indexp2));
                    if (slot)
                    {
                        opc->v[3].p = slot;
                        slot = opt_integer_symbol(sc, car(indexp1));
                        if (slot)
                        {
                            opc->v[2].p = slot;
                            if (is_t_integer(car(valp)))
                            {
                                opc->v[0].fi = opt_i_7piii_sssc;
                                opc->v[4].i = integer(car(valp));
                                return(oo_set_type_3(opc, 6, 1, 2, 3, otype, OO_I, OO_I));
                            }
                            slot = opt_integer_symbol(sc, car(valp));
                            if (slot)
                            {
                                opc->v[4].p = slot;
                                opc->v[0].fi = opt_i_7piii_ssss;
                                return(oo_set_type_4(opc, 6, 1, 2, 3, 4, otype, OO_I, OO_I, OO_I));
                            }
                            if (int_optimize(sc, valp))
                            {
                                opc->v[0].fi = opt_i_7piii_sssf;
                                return(oo_set_type_3(opc, 6, 1, 2, 3, otype, OO_I, OO_I));
                            }
                        }
                        return(return_false(sc, NULL, __func__, __LINE__));
                    }
                    if ((int_optimize(sc, indexp1)) &&
                            (int_optimize(sc, indexp2)) &&
                            (int_optimize(sc, valp)))
                    {
                        opc->v[0].fi = opt_i_7piii_sfff;
                        return(oo_set_type_1(opc, 6, 1, otype));
                    }
                    return(return_false(sc, indexp1, __func__, __LINE__));
                }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %r9, %r14
movq %r8, %r12
movq %rcx, %r13
movl %edx, %ebp
movq %rsi, %rbx
movq %rdi, %r15
movq 0x8(%r8), %rsi
callq 0x7e6b7
testq %rax, %rax
je 0x80661
movq %rax, 0x18(%rbx)
movq 0x8(%r13), %rsi
movq %r15, %rdi
callq 0x7e6b7
testq %rax, %rax
je 0x80710
movq %rax, 0x10(%rbx)
movq 0x8(%r14), %rsi
cmpb $0xb, (%rsi)
jne 0x806ab
leaq 0xea(%rip), %rax        # 0x80721
movq %rax, (%rbx)
movq 0x8(%r14), %rax
movq 0x8(%rax), %rax
movq %rax, 0x20(%rbx)
movl %ebp, 0x70(%rbx)
movl $0x1, 0x74(%rbx)
movl $0x3, 0x64(%rbx)
pushq $0x1
popq %rbp
pushq $0x78
jmp 0x806e3
movq %r15, %rdi
movq %r13, %rsi
callq 0x7e94f
testb %al, %al
je 0x80710
movq %r15, %rdi
movq %r12, %rsi
callq 0x7e94f
testb %al, %al
je 0x80710
movq %r15, %rdi
movq %r14, %rsi
callq 0x7e94f
testb %al, %al
je 0x80710
leaq 0x15c(%rip), %rax       # 0x807f9
movq %rax, (%rbx)
movl $0x1, 0x64(%rbx)
pushq $0x70
jmp 0x806e3
movq %r15, %rdi
callq 0x7e6b7
testq %rax, %rax
je 0x806f2
movq %rax, 0x20(%rbx)
leaq 0x90(%rip), %rax        # 0x80753
movq %rax, (%rbx)
movl %ebp, 0x70(%rbx)
movabsq $0x100000001, %rax      # imm = 0x100000001
movq %rax, 0x74(%rbx)
movl $0x4, 0x64(%rbx)
pushq $0x1
popq %rbp
pushq $0x7c
popq %rax
movl $0x6, 0x60(%rbx)
movl %ebp, (%rbx,%rax)
movb $0x1, %al
jmp 0x80712
movq %r15, %rdi
movq %r14, %rsi
callq 0x7e94f
testb %al, %al
je 0x80710
leaq 0x85(%rip), %rax        # 0x8078d
movq %rax, (%rbx)
jmp 0x80646
xorl %eax, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq