Index: /trunk/src/VBox/Disassembler/DisasmCore.cpp
===================================================================
--- /trunk/src/VBox/Disassembler/DisasmCore.cpp	(revision 41793)
+++ /trunk/src/VBox/Disassembler/DisasmCore.cpp	(revision 41794)
@@ -47,7 +47,4 @@
 *   Internal Functions                                                         *
 *******************************************************************************/
-static void     disasmModRMReg(PDISSTATE pDis, PCDISOPCODE pOp, unsigned idx, PDISOPPARAM pParam, int fRegAddr);
-
-
 /** @name Parsers
  * @{ */
@@ -523,5 +520,4 @@
 {
     size_t size = 0;
-    bool fFiltered = false;
 
     Assert(pOp); Assert(pDis);
@@ -534,4 +530,5 @@
      * Note! Multibyte opcodes are always marked harmless until the final byte.
      */
+    bool fFiltered;
     if ((pOp->fOpType & pDis->fFilter) == 0)
     {
@@ -542,4 +539,5 @@
     {
         /* Not filtered out -> full disassembly */
+        fFiltered = false;
         pDis->pfnDisasmFnTable = g_apfnFullDisasm;
     }
@@ -594,10 +592,9 @@
 static size_t ParseEscFP(size_t offInstr, PCDISOPCODE pOp, PDISSTATE pDis, PDISOPPARAM pParam)
 {
-    size_t      size = 0;
     PCDISOPCODE fpop;
     NOREF(pOp);
 
-    unsigned    ModRM = disReadByte(pDis, offInstr);
-    unsigned    index = pDis->bOpCode - 0xD8;
+    uint8_t    ModRM = disReadByte(pDis, offInstr);
+    uint8_t    index = pDis->bOpCode - 0xD8;
     if (ModRM <= 0xBF)
     {
@@ -638,4 +635,5 @@
 
     // Little hack to make sure the ModRM byte is included in the returned size
+    size_t      size = 0;
     if (fpop->idxParse1 != IDX_ParseModRM && fpop->idxParse2 != IDX_ParseModRM)
         size = sizeof(uint8_t); //ModRM byte
@@ -660,8 +658,6 @@
  *
  ********************************************************************************************************************************/
-static void UseSIB(size_t offInstr, PCDISOPCODE pOp, PDISSTATE pDis, PDISOPPARAM pParam)
-{
-    NOREF(offInstr); NOREF(pOp);
-
+static void UseSIB(PDISSTATE pDis, PDISOPPARAM pParam)
+{
     unsigned scale = pDis->SIB.Bits.Scale;
     unsigned base  = pDis->SIB.Bits.Base;
@@ -780,5 +776,5 @@
  *
  ********************************************************************************************************************************/
-static void disasmModRMReg(PDISSTATE pDis, PCDISOPCODE pOp, unsigned idx, PDISOPPARAM pParam, int fRegAddr)
+static void disasmModRMReg(unsigned idx, PCDISOPCODE pOp, PDISSTATE pDis, PDISOPPARAM pParam, int fRegAddr)
 {
     NOREF(pOp); NOREF(pDis);
@@ -854,5 +850,6 @@
 }
 
-static void disasmModRMReg16(PDISSTATE pDis, PCDISOPCODE pOp, unsigned idx, PDISOPPARAM pParam)
+
+static void disasmModRMReg16(unsigned idx, PCDISOPCODE pOp, PDISSTATE pDis, PDISOPPARAM pParam)
 {
     static const uint8_t s_auBaseModRMReg16[8]  =
@@ -869,7 +866,7 @@
     }
 }
-//*****************************************************************************
-//*****************************************************************************
-static void disasmModRMSReg(PDISSTATE pDis, PCDISOPCODE pOp, unsigned idx, PDISOPPARAM pParam)
+
+
+static void disasmModRMSReg(unsigned idx, PCDISOPCODE pOp, PDISSTATE pDis, PDISOPPARAM pParam)
 {
     NOREF(pOp);
@@ -896,5 +893,5 @@
     {
     case OP_PARM_G: //general purpose register
-        disasmModRMReg(pDis, pOp, reg, pParam, 0);
+        disasmModRMReg(reg, pOp, pDis, pParam, 0);
         return 0;
 
@@ -931,5 +928,5 @@
             case OP_PARM_S: //segment register
                 reg &= 7;   /* REX.R has no effect here */
-                disasmModRMSReg(pDis, pOp, reg, pParam);
+                disasmModRMSReg(reg, pOp, pDis, pParam);
                 pParam->fUse |= DISUSE_REG_SEG;
                 return 0;
@@ -967,8 +964,6 @@
         {
         case 0: //effective address
-            if (rm == 4)
-            {   /* SIB byte follows ModRM */
-                UseSIB(offInstr, pOp, pDis, pParam);
-            }
+            if (rm == 4)    /* SIB byte follows ModRM */
+                UseSIB(pDis, pParam);
             else
             if (rm == 5)
@@ -989,16 +984,15 @@
             {   //register address
                 pParam->fUse |= DISUSE_BASE;
-                disasmModRMReg(pDis, pOp, rm, pParam, 1);
+                disasmModRMReg(rm, pOp, pDis, pParam, 1);
             }
             break;
 
         case 1: //effective address + 8 bits displacement
-            if (rm == 4) {//SIB byte follows ModRM
-                UseSIB(offInstr, pOp, pDis, pParam);
-            }
+            if (rm == 4)    /* SIB byte follows ModRM */
+                UseSIB(pDis, pParam);
             else
             {
                 pParam->fUse |= DISUSE_BASE;
-                disasmModRMReg(pDis, pOp, rm, pParam, 1);
+                disasmModRMReg(rm, pOp, pDis, pParam, 1);
             }
             pParam->uDisp.i8 = pDis->i32SibDisp;
@@ -1007,11 +1001,10 @@
 
         case 2: //effective address + 32 bits displacement
-            if (rm == 4) {//SIB byte follows ModRM
-                UseSIB(offInstr, pOp, pDis, pParam);
-            }
+            if (rm == 4)    /* SIB byte follows ModRM */
+                UseSIB(pDis, pParam);
             else
             {
                 pParam->fUse |= DISUSE_BASE;
-                disasmModRMReg(pDis, pOp, rm, pParam, 1);
+                disasmModRMReg(rm, pOp, pDis, pParam, 1);
             }
             pParam->uDisp.i32 = pDis->i32SibDisp;
@@ -1020,5 +1013,5 @@
 
         case 3: //registers
-            disasmModRMReg(pDis, pOp, rm, pParam, 0);
+            disasmModRMReg(rm, pOp, pDis, pParam, 0);
             break;
         }
@@ -1037,10 +1030,10 @@
             {
                 pParam->fUse |= DISUSE_BASE;
-                disasmModRMReg16(pDis, pOp, rm, pParam);
+                disasmModRMReg16(rm, pOp, pDis, pParam);
             }
             break;
 
         case 1: //effective address + 8 bits displacement
-            disasmModRMReg16(pDis, pOp, rm, pParam);
+            disasmModRMReg16(rm, pOp, pDis, pParam);
             pParam->uDisp.i8 = pDis->i32SibDisp;
             pParam->fUse |= DISUSE_BASE | DISUSE_DISPLACEMENT8;
@@ -1048,5 +1041,5 @@
 
         case 2: //effective address + 16 bits displacement
-            disasmModRMReg16(pDis, pOp, rm, pParam);
+            disasmModRMReg16(rm, pOp, pDis, pParam);
             pParam->uDisp.i16 = pDis->i32SibDisp;
             pParam->fUse |= DISUSE_BASE | DISUSE_DISPLACEMENT16;
@@ -1054,5 +1047,5 @@
 
         case 3: //registers
-            disasmModRMReg(pDis, pOp, rm, pParam, 0);
+            disasmModRMReg(rm, pOp, pDis, pParam, 0);
             break;
         }
