public Instruction decode( byte[] bytesArray, int index, int instrStartIndex, int segmentOverride, int prefixes, X86InstructionFactory factory) { this.byteIndex = index; this.instrStartIndex = instrStartIndex; this.prefixes = prefixes; int ModRM = readByte(bytesArray, byteIndex); int rm = ModRM & 7; FPInstructionDecoder instrDecoder = null; instrDecoder = floatGRPMap[number][rm]; Instruction instr = null; if (instrDecoder != null) { instr = instrDecoder.decode( bytesArray, byteIndex, instrStartIndex, segmentOverride, prefixes, factory); byteIndex = instrDecoder.getCurrentIndex(); } else { instr = factory.newIllegalInstruction(); } return instr; }