+ else if (!isDefArg1(ea_flags)
+ && cmd.Operands[1].type == o_mem // why o_mem?
+ && cmd.Operands[1].dtyp == dt_dword)
+ {
+ if (inf.minEA <= cmd.Operands[1].addr
+ && cmd.Operands[1].addr < inf.maxEA)
+ {
+ // lea to segments, like ds:58D6A8h[edx*8]
+ msg("%x: lea offset to %x\n", ea, cmd.Operands[1].addr);
+ op_offset(ea, 1, REF_OFF32);
+ }
+ else
+ {
+ // ds:0[eax*8] -> [eax*8+0]
+ msg("%x: dropping ds: for %x\n", ea, cmd.Operands[1].addr);
+ op_hex(ea, 1);
+ }
+ }