def mk_op_list(op): if op is None: return [None] if isinstance(op,X86UnknownSizeImmediate): v = op.value l = [X86.Id(v)] if v <= 0xFF or (v <= 0x7F or v >= 0xFFFFFF80) or (v <= 0x7F or (v >= 0xFF80 and v <= 0xFFFF)): l.append(X86.Ib(v)) if v <= 0xFFFF or (v <= 0x7F or v >= 0xFFFF8000) or (v <= 0x7F or (v >= 0xFF80 and v <= 0xFFFF)): l.append(X86.Iw(v)) return l elif isinstance(op,X86UnknownSizeMem16): return map(lambda s: X86.Mem16(op.Seg,s,op.BaseReg,op.IndexReg,op.Disp),memsizes) elif isinstance(op,X86UnknownSizeMem32): return map(lambda s: X86.Mem32(op.Seg,s,op.BaseReg,op.IndexReg,op.ScaleFac,op.Disp),memsizes) else: return [op]