// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: d_dd_ff_combinable
static bool d_dd_ff_combinable(s7_scheme *sc, int32_t start)
                {
                    opt_info *opc, *o1;
                    opc = sc->opts[start - 1];
                    o1 = sc->opts[start];
                    if (o1->v[0].fd == opt_d_v)
                    {
                        opt_info *o2;
                        /* opc->v[3] is in use */
                        o2 = sc->opts[start + 1];
                        if ((o2->v[0].fd == opt_d_v) &&
                                (sc->pc == start + 2))
                        {
                            opc->v[1].obj = o1->v[5].obj;
                            opc->v[6].p = o1->v[1].p;
                            opc->v[4].d_v_f = o1->v[3].d_v_f;
                            opc->v[2].obj = o2->v[5].obj;
                            opc->v[7].p = o2->v[1].p;
                            opc->v[5].d_v_f = o2->v[3].d_v_f;
                            if (opc->v[3].d_dd_f == multiply_d_dd)
                                opc->v[0].fd = opt_d_dd_ff_mul2;
                            else opc->v[0].fd = opt_d_dd_ff_o2;
                            sc->pc -= 2;
                            return(oo_set_type_2(opc, 8, 6 + (1 << 4), 7 + (2 << 4), OO_V, OO_V));
                        }
                        if ((o2->v[0].fd == opt_d_vd_s) &&
                                (sc->pc == start + 2))
                        {
                            opc->v[4].d_dd_f = opc->v[3].d_dd_f; /* make room for symbols */
                            opc->v[1].obj = o1->v[5].obj;
                            opc->v[7].p = o1->v[1].p;
                            opc->v[5].d_v_f = o1->v[3].d_v_f;
                            opc->v[2].obj = o2->v[5].obj;
                            opc->v[8].p = o2->v[1].p;
                            opc->v[6].d_vd_f = o2->v[3].d_vd_f;
                            opc->v[3].p = o2->v[2].p;
                            opc->v[0].fd = opt_d_dd_ff_o3;
                            sc->pc -= 2;
                            return(oo_set_type_3(opc, 9, 3, 7 + (1 << 4), 8 + (2 << 4), OO_D, OO_V, OO_V));
                        }
                        if ((o2->v[0].fd == opt_d_vd_o) &&
                                (sc->pc == start + 2))
                        {
                            opc->v[1].obj = o1->v[5].obj;
                            opc->v[8].p = o1->v[1].p;
                            opc->v[2].d_v_f = o1->v[3].d_v_f;
                            opc->v[7].d_vd_f = o2->v[3].d_vd_f;
                            opc->v[4].d_v_f = o2->v[4].d_v_f;
                            opc->v[5].obj = o2->v[5].obj;
                            opc->v[9].p = o2->v[1].p;
                            opc->v[6].obj = o2->v[6].obj;
                            opc->v[10].p = o2->v[2].p;
                            if (opc->v[3].d_dd_f == multiply_d_dd)
                                opc->v[0].fd = opt_d_dd_ff_mul4;
                            else opc->v[0].fd = opt_d_dd_ff_o4;
                            sc->pc -= 2;
                            return(oo_set_type_3(opc, 11, 8 + (1 << 4), 9 + (5 << 4), 10 + (6 << 4), OO_V, OO_V, OO_V));
                        }
                        opc->v[1].obj = o1->v[5].obj;
                        opc->v[4].p = o1->v[1].p;
                        opc->v[2].d_v_f = o1->v[3].d_v_f;
                        if (opc->v[3].d_dd_f == multiply_d_dd)
                            opc->v[0].fd = opt_d_dd_ff_mul1;
                        else opc->v[0].fd = opt_d_dd_ff_o1;
                        return(oo_set_type_1(opc, 5, 4 + (1 << 4), OO_V));
                    }

                    if (o1->v[0].fd == opt_d_dd_fso)
                    {
                        opt_info *o2;
                        o2 = sc->opts[start + 1];
                        if (o2->v[0].fd == opt_d_dd_fso)
                        {
                            if ((o1->v[4].d_dd_f == multiply_d_dd) &&
                                    (o2->v[4].d_dd_f == multiply_d_dd) &&
                                    (o1->v[5].d_7pi_f == float_vector_ref_d_7pi) &&
                                    (o2->v[5].d_7pi_f == float_vector_ref_d_7pi))
                                opc->v[0].fd = opt_d_mm_fff;
                            else opc->v[0].fd = opt_d_dd_fff;
                            return(oo_set_type_0(opc, 4));
                        }
                    }
                    if (o1->v[0].fd == opt_d_dd_sfo)
                    {
                        opt_info *o2;
                        o2 = sc->opts[start + 1];
                        if (o2->v[0].fd == opt_d_dd_sfo)
                        {
                            if ((o1->v[4].d_dd_f == multiply_d_dd) &&
                                    (o2->v[4].d_dd_f == multiply_d_dd) &&
                                    (o1->v[5].d_7pi_f == float_vector_ref_d_7pi) &&
                                    (o2->v[5].d_7pi_f == float_vector_ref_d_7pi))
                                opc->v[0].fd = opt_d_mm_fff; /* multiply is commutative */
                            else opc->v[0].fd = opt_d_dd_fff_rev;
                            return(oo_set_type_0(opc, 4));
                        }
                    }
                    return(return_false(sc, NULL, __func__, __LINE__));
                }

// Assembly:
subq $0x68, %rsp
movq %rdi, 0x58(%rsp)
movl %esi, 0x54(%rsp)
movq 0x58(%rsp), %rax
movl 0x54(%rsp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movq 0x2260(%rax,%rcx,8), %rax
movq %rax, 0x48(%rsp)
movq 0x58(%rsp), %rax
movslq 0x54(%rsp), %rcx
movq 0x2260(%rax,%rcx,8), %rax
movq %rax, 0x40(%rsp)
movq 0x40(%rsp), %rax
leaq -0x2e57c(%rip), %rcx    # 0xe6100
cmpq %rcx, (%rax)
jne 0x114afa
movq 0x58(%rsp), %rax
movl 0x54(%rsp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movq 0x2260(%rax,%rcx,8), %rax
movq %rax, 0x38(%rsp)
movq 0x38(%rsp), %rax
leaq -0x2e5ad(%rip), %rcx    # 0xe6100
cmpq %rcx, (%rax)
jne 0x1147c2
movq 0x58(%rsp), %rax
movl 0x2258(%rax), %eax
movl 0x54(%rsp), %ecx
addl $0x2, %ecx
cmpl %ecx, %eax
jne 0x1147c2
movq 0x40(%rsp), %rax
movq 0x28(%rax), %rcx
movq 0x48(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x40(%rsp), %rax
movq 0x8(%rax), %rcx
movq 0x48(%rsp), %rax
movq %rcx, 0x30(%rax)
movq 0x40(%rsp), %rax
movq 0x18(%rax), %rcx
movq 0x48(%rsp), %rax
movq %rcx, 0x20(%rax)
movq 0x38(%rsp), %rax
movq 0x28(%rax), %rcx
movq 0x48(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x38(%rsp), %rax
movq 0x8(%rax), %rcx
movq 0x48(%rsp), %rax
movq %rcx, 0x38(%rax)
movq 0x38(%rsp), %rax
movq 0x18(%rax), %rcx
movq 0x48(%rsp), %rax
movq %rcx, 0x28(%rax)
movq 0x48(%rsp), %rax
leaq -0x61ac8(%rip), %rcx    # 0xb2c80
cmpq %rcx, 0x18(%rax)
jne 0x11475f
movq 0x48(%rsp), %rax
leaq 0xe46(%rip), %rcx       # 0x1155a0
movq %rcx, (%rax)
jmp 0x11476e
movq 0x48(%rsp), %rax
leaq 0xe85(%rip), %rcx       # 0x1155f0
movq %rcx, (%rax)
movq 0x58(%rsp), %rax
movl 0x2258(%rax), %ecx
subl $0x2, %ecx
movl %ecx, 0x2258(%rax)
movq 0x48(%rsp), %rdi
movl $0x8, %esi
movl $0x16, %edx
movl $0x27, %ecx
movl $0x3, %r9d
leaq 0xdaee0(%rip), %rax     # 0x1ef683
movl %r9d, %r8d
movq %rax, (%rsp)
movl $0xe291, 0x8(%rsp)      # imm = 0xE291
callq 0xe54b0
andb $0x1, %al
movb %al, 0x67(%rsp)
jmp 0x114ca8
movq 0x38(%rsp), %rax
leaq 0xb32(%rip), %rcx       # 0x115300
cmpq %rcx, (%rax)
jne 0x1148f7
movq 0x58(%rsp), %rax
movl 0x2258(%rax), %eax
movl 0x54(%rsp), %ecx
addl $0x2, %ecx
cmpl %ecx, %eax
jne 0x1148f7
movq 0x48(%rsp), %rax
movq 0x18(%rax), %rcx
movq 0x48(%rsp), %rax
movq %rcx, 0x20(%rax)
movq 0x40(%rsp), %rax
movq 0x28(%rax), %rcx
movq 0x48(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x40(%rsp), %rax
movq 0x8(%rax), %rcx
movq 0x48(%rsp), %rax
movq %rcx, 0x38(%rax)
movq 0x40(%rsp), %rax
movq 0x18(%rax), %rcx
movq 0x48(%rsp), %rax
movq %rcx, 0x28(%rax)
movq 0x38(%rsp), %rax
movq 0x28(%rax), %rcx
movq 0x48(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x38(%rsp), %rax
movq 0x8(%rax), %rcx
movq 0x48(%rsp), %rax
movq %rcx, 0x40(%rax)
movq 0x38(%rsp), %rax
movq 0x18(%rax), %rcx
movq 0x48(%rsp), %rax
movq %rcx, 0x30(%rax)
movq 0x38(%rsp), %rax
movq 0x10(%rax), %rcx
movq 0x48(%rsp), %rax
movq %rcx, 0x18(%rax)
movq 0x48(%rsp), %rax
leaq 0xdd3(%rip), %rcx       # 0x115660
movq %rcx, (%rax)
movq 0x58(%rsp), %rax
movl 0x2258(%rax), %ecx
subl $0x2, %ecx
movl %ecx, 0x2258(%rax)
movq 0x48(%rsp), %rdi
movl $0x9, %esi
movl $0x3, %edx
movl $0x17, %ecx
movl $0x28, %r8d
movl $0x2, %r9d
leaq 0xdadb8(%rip), %rax     # 0x1ef683
movl $0x3, (%rsp)
movl $0x3, 0x8(%rsp)
movq %rax, 0x10(%rsp)
movl $0xe2a0, 0x18(%rsp)     # imm = 0xE2A0
callq 0xe53d0
andb $0x1, %al
movb %al, 0x67(%rsp)
jmp 0x114ca8
movq 0x38(%rsp), %rax
leaq 0xddd(%rip), %rcx       # 0x1156e0
cmpq %rcx, (%rax)
jne 0x114a61
movq 0x58(%rsp), %rax
movl 0x2258(%rax), %eax
movl 0x54(%rsp), %ecx
addl $0x2, %ecx
cmpl %ecx, %eax
jne 0x114a61
movq 0x40(%rsp), %rax
movq 0x28(%rax), %rcx
movq 0x48(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x40(%rsp), %rax
movq 0x8(%rax), %rcx
movq 0x48(%rsp), %rax
movq %rcx, 0x40(%rax)
movq 0x40(%rsp), %rax
movq 0x18(%rax), %rcx
movq 0x48(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x38(%rsp), %rax
movq 0x18(%rax), %rcx
movq 0x48(%rsp), %rax
movq %rcx, 0x38(%rax)
movq 0x38(%rsp), %rax
movq 0x20(%rax), %rcx
movq 0x48(%rsp), %rax
movq %rcx, 0x20(%rax)
movq 0x38(%rsp), %rax
movq 0x28(%rax), %rcx
movq 0x48(%rsp), %rax
movq %rcx, 0x28(%rax)
movq 0x38(%rsp), %rax
movq 0x8(%rax), %rcx
movq 0x48(%rsp), %rax
movq %rcx, 0x48(%rax)
movq 0x38(%rsp), %rax
movq 0x30(%rax), %rcx
movq 0x48(%rsp), %rax
movq %rcx, 0x30(%rax)
movq 0x38(%rsp), %rax
movq 0x10(%rax), %rcx
movq 0x48(%rsp), %rax
movq %rcx, 0x50(%rax)
movq 0x48(%rsp), %rax
leaq -0x61d54(%rip), %rcx    # 0xb2c80
cmpq %rcx, 0x18(%rax)
jne 0x1149eb
movq 0x48(%rsp), %rax
leaq 0xd4a(%rip), %rcx       # 0x115730
movq %rcx, (%rax)
jmp 0x1149fa
movq 0x48(%rsp), %rax
leaq 0xdb9(%rip), %rcx       # 0x1157b0
movq %rcx, (%rax)
movq 0x58(%rsp), %rax
movl 0x2258(%rax), %ecx
subl $0x2, %ecx
movl %ecx, 0x2258(%rax)
movq 0x48(%rsp), %rdi
movl $0xb, %esi
movl $0x18, %edx
movl $0x59, %ecx
movl $0x6a, %r8d
movl $0x3, %r9d
leaq 0xdac4e(%rip), %rax     # 0x1ef683
movl $0x3, (%rsp)
movl $0x3, 0x8(%rsp)
movq %rax, 0x10(%rsp)
movl $0xe2b2, 0x18(%rsp)     # imm = 0xE2B2
callq 0xe53d0
andb $0x1, %al
movb %al, 0x67(%rsp)
jmp 0x114ca8
movq 0x40(%rsp), %rax
movq 0x28(%rax), %rcx
movq 0x48(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x40(%rsp), %rax
movq 0x8(%rax), %rcx
movq 0x48(%rsp), %rax
movq %rcx, 0x20(%rax)
movq 0x40(%rsp), %rax
movq 0x18(%rax), %rcx
movq 0x48(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x48(%rsp), %rax
leaq -0x61e23(%rip), %rcx    # 0xb2c80
cmpq %rcx, 0x18(%rax)
jne 0x114aba
movq 0x48(%rsp), %rax
leaq 0xd8b(%rip), %rcx       # 0x115840
movq %rcx, (%rax)
jmp 0x114ac9
movq 0x48(%rsp), %rax
leaq 0xdfa(%rip), %rcx       # 0x1158c0
movq %rcx, (%rax)
movq 0x48(%rsp), %rdi
movl $0x5, %esi
movl $0x14, %edx
movl $0x3, %ecx
leaq 0xdab9f(%rip), %r8      # 0x1ef683
movl $0xe2ba, %r9d           # imm = 0xE2BA
callq 0xe4950
andb $0x1, %al
movb %al, 0x67(%rsp)
jmp 0x114ca8
movq 0x40(%rsp), %rax
leaq -0x2e7c6(%rip), %rcx    # 0xe6340
cmpq %rcx, (%rax)
jne 0x114bd0
movq 0x58(%rsp), %rax
movl 0x54(%rsp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movq 0x2260(%rax,%rcx,8), %rax
movq %rax, 0x30(%rsp)
movq 0x30(%rsp), %rax
leaq -0x2e7f7(%rip), %rcx    # 0xe6340
cmpq %rcx, (%rax)
jne 0x114bce
movq 0x40(%rsp), %rax
leaq -0x61ecc(%rip), %rcx    # 0xb2c80
cmpq %rcx, 0x20(%rax)
jne 0x114b99
movq 0x30(%rsp), %rax
leaq -0x61ede(%rip), %rcx    # 0xb2c80
cmpq %rcx, 0x20(%rax)
jne 0x114b99
movq 0x40(%rsp), %rax
leaq -0x6d980(%rip), %rcx    # 0xa71f0
cmpq %rcx, 0x28(%rax)
jne 0x114b99
movq 0x30(%rsp), %rax
leaq -0x6d992(%rip), %rcx    # 0xa71f0
cmpq %rcx, 0x28(%rax)
jne 0x114b99
movq 0x48(%rsp), %rax
leaq -0x1d3a4(%rip), %rcx    # 0xf77f0
movq %rcx, (%rax)
jmp 0x114ba8
movq 0x48(%rsp), %rax
leaq 0xdab(%rip), %rcx       # 0x115950
movq %rcx, (%rax)
movq 0x48(%rsp), %rdi
movl $0x4, %esi
leaq 0xdaaca(%rip), %rdx     # 0x1ef683
movl $0xe2c9, %ecx           # imm = 0xE2C9
callq 0xe4820
andb $0x1, %al
movb %al, 0x67(%rsp)
jmp 0x114ca8
jmp 0x114bd0
movq 0x40(%rsp), %rax
leaq 0x834(%rip), %rcx       # 0x115410
cmpq %rcx, (%rax)
jne 0x114ca3
movq 0x58(%rsp), %rax
movl 0x54(%rsp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movq 0x2260(%rax,%rcx,8), %rax
movq %rax, 0x28(%rsp)
movq 0x28(%rsp), %rax
leaq 0x803(%rip), %rcx       # 0x115410
cmpq %rcx, (%rax)
jne 0x114ca1
movq 0x40(%rsp), %rax
leaq -0x61fa2(%rip), %rcx    # 0xb2c80
cmpq %rcx, 0x20(%rax)
jne 0x114c6f
movq 0x28(%rsp), %rax
leaq -0x61fb4(%rip), %rcx    # 0xb2c80
cmpq %rcx, 0x20(%rax)
jne 0x114c6f
movq 0x40(%rsp), %rax
leaq -0x6da56(%rip), %rcx    # 0xa71f0
cmpq %rcx, 0x28(%rax)
jne 0x114c6f
movq 0x28(%rsp), %rax
leaq -0x6da68(%rip), %rcx    # 0xa71f0
cmpq %rcx, 0x28(%rax)
jne 0x114c6f
movq 0x48(%rsp), %rax
leaq -0x1d47a(%rip), %rcx    # 0xf77f0
movq %rcx, (%rax)
jmp 0x114c7e
movq 0x48(%rsp), %rax
leaq 0xe15(%rip), %rcx       # 0x115a90
movq %rcx, (%rax)
movq 0x48(%rsp), %rdi
movl $0x4, %esi
leaq 0xda9f4(%rip), %rdx     # 0x1ef683
movl $0xe2d8, %ecx           # imm = 0xE2D8
callq 0xe4820
andb $0x1, %al
movb %al, 0x67(%rsp)
jmp 0x114ca8
jmp 0x114ca3
movb $0x0, 0x67(%rsp)
movb 0x67(%rsp), %al
andb $0x1, %al
addq $0x68, %rsp
retq
nopw %cs:(%rax,%rax)