1 #ifndef WIN32_LEAN_AND_MEAN 2 #define WIN32_LEAN_AND_MEAN 3 #endif 4 #define __CRT__NO_INLINE 5 #include <windows.h> 6 7 /* for __x86_64 only */ 8 MultiplyExtract128(LONG64 Multiplier,LONG64 Multiplicand,BYTE Shift)9LONG64 MultiplyExtract128(LONG64 Multiplier,LONG64 Multiplicand,BYTE Shift) { 10 LONG64 extractedProduct; 11 LONG64 highProduct; 12 LONG64 lowProduct; 13 lowProduct = Multiply128(Multiplier,Multiplicand,&highProduct); 14 extractedProduct = (LONG64)ShiftRight128((LONG64)lowProduct,(LONG64)highProduct,Shift); 15 return extractedProduct; 16 } 17 18