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 UnsignedMultiplyExtract128(DWORD64 Multiplier,DWORD64 Multiplicand,BYTE Shift)9DWORD64 UnsignedMultiplyExtract128(DWORD64 Multiplier,DWORD64 Multiplicand,BYTE Shift) { 10 DWORD64 extractedProduct; 11 DWORD64 highProduct; 12 DWORD64 lowProduct; 13 lowProduct = UnsignedMultiply128(Multiplier,Multiplicand,&highProduct); 14 extractedProduct = ShiftRight128(lowProduct,highProduct,Shift); 15 return extractedProduct; 16 } 17 18