void handleInst(UCHAR *inst) { while(1) { switch(*inst) { case 0x26: // ES: case 0x36: // SS: case 0x64: // FS: Hint alt taken for Jcc (P4) case 0x65: // GS: case 0x66: // OPSIZE: case 0x67: // ADSIZE: case 0xF0: // LOCK: case 0xF2: // REPNE: case 0xF3: // REP(E): case 0x2E: // CS: Hint not taken for Jcc (P4) case 0x3E: // DS: Hint taken for Jcc (P4) break; default: goto prefixEnd; } ++inst; }prefixEnd: switch(*inst) { case 0x0F: // Two-byte opcodes switch(*++inst) { case 0x31: // RDTSC break; } break; case 0x88: // MOV Eb,Gb case 0x89: // MOV Ev,Gv case 0x8A: // MOV Gb,Eb case 0x8B: // MOV Gv,Ev case 0x8C: // MOV (Mw,Sw)/(Rv,Sw) case 0x8E: // MOV (Sw,Mw)/(Sw,Rv) case 0x9C: // PUSHF Fv case 0x9A: // POPF Fv case 0xE8: // CALL Jz break; }}