public static UInt32 tq_I(long origin_offset, long offset, ref INSTRUCTION instr, int op_index, OPERAND_SIZE opsize, INTERNAL_DATA idata, DISMODE mode)
{
instr.ops[op_index].flags |= (byte)OP_TYPE.OPERAND_TYPE_IMM;
instr.ops[op_index].size = (ushort)opsize.size;
instr.ops[op_index].value.imm.size = (byte)opsize.size_in_stream;
instr.ops[op_index].value.imm .offset = (byte)(offset - origin_offset);
//instr.ops[op_index].value.imm.immab = assembly.Image.ReadBytes(offset, opsize.size_in_stream);
byte[] bt = assembly.Image.ReadBytes(offset, (int)opsize.size_in_stream);
instr.ops[op_index].value.imm.imm64 = 0;
foreach (byte bb in bt.Reverse())
{
instr.ops[op_index].value.imm.imm64 <<= 8;
instr.ops[op_index].value.imm.imm64 += bb;
}
//!!!memcpy(&(instr.ops[op_index].value.imm.imm8), offset, opsize.size_in_stream);
//movsx(ref instr.ops[op_index].value.imm.immab, opsize.size_in_stream, 0x8);
return (byte)opsize.size_in_stream;
}