public virtual x86Instruction DisassembleNextInstruction()
{
x86Instruction newInstruction = new x86Instruction();
newInstruction.Offset = Offset.FromFileOffset((uint)reader.BaseStream.Position, assembly) ;
newInstruction.OpCode = RetrieveNextOpCode();
ProcessVariableByteIndex(ref newInstruction.code);
ProcessRegisterOperands(newInstruction);
byte[] rawOperand = ReadRawOperand(newInstruction.OpCode);
newInstruction.operandbytes = ASMGlobals.MergeBytes(newInstruction.operandbytes, rawOperand);
ProcessOperandBytes(newInstruction);
ProcessOverrideOperand(newInstruction);
return newInstruction;
}