// File: /workspace/github_c_makefile_star2_O3/BernardTatin[P]s7sh/s7.c
// Function: d_vd_f_combinable
static bool d_vd_f_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)
                    {
                        opc->v[2].p = o1->v[1].p;
                        opc->v[6].obj = o1->v[5].obj;
                        opc->v[4].d_v_f = o1->v[3].d_v_f;
                        opc->v[0].fd = opt_d_vd_o;
                        backup_pc(sc);
                        return(oo_set_type_2(opc, 7, 1 + (5 << 4), 2 + (6 << 4), OO_V, OO_V));
                    }
                    if (o1->v[0].fd == opt_d_vd_s)
                    {
                        opc->v[6].obj = opc->v[5].obj;
                        opc->v[4].d_vd_f = opc->v[3].d_vd_f; /* room for symbols */
                        opc->v[2].obj = o1->v[5].obj;
                        opc->v[5].d_vd_f = o1->v[3].d_vd_f;
                        opc->v[3].p = o1->v[2].p;
                        opc->v[7].p = o1->v[1].p;
                        opc->v[0].fd = opt_d_vd_o2;
                        backup_pc(sc);
                        return(oo_set_type_3(opc, 8, 1 + (6 << 4), 3, 7 + (2 << 4), OO_V, OO_D, OO_V));
                    }
                    if (o1->v[0].fd == opt_d_dd_cs)
                    {
                        opc->v[4].d_dd_f = o1->v[3].d_dd_f;
                        opc->v[6].x = o1->v[2].x;
                        opc->v[2].p = o1->v[1].p;
                        opc->v[0].fd = opt_d_vd_o3;
                        backup_pc(sc);
                        return(oo_set_type_2(opc, 7, 1 + (5 << 4), 2, OO_V, OO_D));
                    }
                    if ((o1->v[0].fd == opt_d_dd_sf_mul) || (o1->v[0].fd == opt_d_dd_sf))
                    {
                        opc->v[2].p = o1->v[1].p;
                        opc->v[4].d_dd_f = o1->v[3].d_dd_f;
                        if (o1->v[0].fd == opt_d_dd_sf_mul)
                            opc->v[0].fd = opt_d_vd_o1_mul;
                        else opc->v[0].fd = opt_d_vd_o1;
                        return(oo_set_type_2(opc, 6, 1 + (5 << 4), 2, OO_V, OO_D));
                    }
                    if (o1->v[0].fd == opt_d_vd_f)
                    {
                        opc->v[2].d_vd_f = o1->v[3].d_vd_f;
                        opc->v[4].obj = o1->v[5].obj;
                        opc->v[6].p = o1->v[1].p;
                        opc->v[0].fd = opt_d_vd_ff;
                        return(oo_set_type_2(opc, 7, 1 + (5 << 4), 6 + ((4 << 4)), OO_V, OO_V));
                    }
                    return(return_false(sc, NULL, __func__, __LINE__));
                }

// Assembly:
movslq %esi, %rcx
movq 0x2258(%rdi,%rcx,8), %rax
movq 0x2260(%rdi,%rcx,8), %rcx
movq (%rcx), %rdx
leaq -0x1bdf6(%rip), %rsi    # 0xa0528
cmpq %rsi, %rdx
je 0xbc39f
leaq -0x520(%rip), %rsi      # 0xbbe0a
cmpq %rsi, %rdx
je 0xbc3e6
leaq -0x1000(%rip), %rsi     # 0xbb33a
cmpq %rsi, %rdx
je 0xbc44e
leaq -0xe2b(%rip), %rsi      # 0xbb51f
cmpq %rsi, %rdx
setne %dil
leaq -0xe0b(%rip), %r8       # 0xbb54d
cmpq %r8, %rdx
setne %r8b
testb %r8b, %dil
jne 0xbc49d
movq 0x8(%rcx), %rdx
movq %rdx, 0x10(%rax)
movq 0x18(%rcx), %rdx
movq %rdx, 0x20(%rax)
cmpq %rsi, (%rcx)
leaq 0x1e2(%rip), %rcx       # 0xbc564
leaq 0x22f(%rip), %rdx       # 0xbc5b8
cmoveq %rcx, %rdx
movq %rdx, (%rax)
movabsq $0x200000006, %rcx      # imm = 0x200000006
jmp 0xbc482
movq 0x8(%rcx), %rdx
movq %rdx, 0x10(%rax)
movq 0x28(%rcx), %rdx
movq %rdx, 0x30(%rax)
movq 0x18(%rcx), %rcx
movq %rcx, 0x20(%rax)
leaq -0x39f(%rip), %rcx      # 0xbc01f
movq %rcx, (%rax)
decl 0x2258(%rdi)
movabsq $0x200000007, %rcx      # imm = 0x200000007
movq %rcx, 0x60(%rax)
movl $0x3, 0x70(%rax)
movl $0x3, %ecx
jmp 0xbc492
movq 0x18(%rax), %rdx
movq 0x28(%rax), %rsi
movq %rsi, 0x30(%rax)
movq %rdx, 0x20(%rax)
movq 0x28(%rcx), %rdx
movq %rdx, 0x10(%rax)
movq 0x18(%rcx), %rdx
movq %rdx, 0x28(%rax)
movq 0x10(%rcx), %rdx
movq %rdx, 0x18(%rax)
movq 0x8(%rcx), %rcx
movq %rcx, 0x38(%rax)
leaq 0xe5(%rip), %rcx        # 0xbc502
movq %rcx, (%rax)
decl 0x2258(%rdi)
movabsq $0x200000003, %rcx      # imm = 0x200000003
movq %rcx, 0x70(%rax)
movabsq $0x300000008, %rcx      # imm = 0x300000008
movq %rcx, 0x60(%rax)
movl $0x3, %ecx
movl $0x78, %edx
jmp 0xbc497
movq 0x18(%rcx), %rdx
movq %rdx, 0x20(%rax)
movsd 0x10(%rcx), %xmm0
movsd %xmm0, 0x30(%rax)
movq 0x8(%rcx), %rcx
movq %rcx, 0x10(%rax)
leaq 0xc5(%rip), %rcx        # 0xbc534
movq %rcx, (%rax)
decl 0x2258(%rdi)
movabsq $0x200000007, %rcx      # imm = 0x200000007
movq %rcx, 0x60(%rax)
movl $0x3, 0x70(%rax)
movl $0x2, %ecx
movl $0x74, %edx
movl %ecx, (%rax,%rdx)
movb $0x1, %al
retq
leaq 0x2f(%rip), %rsi        # 0xbc4d3
cmpq %rsi, %rdx
je 0xbc4ac
xorl %eax, %eax
retq
movq 0x18(%rcx), %rdx
movq %rdx, 0x10(%rax)
movq 0x28(%rcx), %rdx
movq %rdx, 0x20(%rax)
movq 0x8(%rcx), %rcx
movq %rcx, 0x30(%rax)
leaq 0x154(%rip), %rcx       # 0xbc61f
movq %rcx, (%rax)
jmp 0xbc3c7