WdipSemGetGuidKey

INT64 __stdcall WdipSemGetGuidKey(const _GUID *Guid, UINT64 *Key){
  unsigned int v2; 
  __int64 v3; 
  unsigned int v4; 
  unsigned __int8 *Data4; 
  int v6; 
  v2 = 0;
  if( Guid && Key )
  {
    v3 = 8i64;
    v4 = Guid->Data1
       + ((320411091 * Guid->Data3 + 1) & 0xFFFF0000 | ((12345 - 393795277 * (unsigned int)Guid->Data3) >> 16))
       + ((320411091 * Guid->Data2 + 1) & 0xFFFF0000 | ((12345 - 393795277 * (unsigned int)Guid->Data2) >> 16));
    Data4 = Guid->Data4;
    do
    {
      v6 = *Data4++;
      v4 += (320411091 * v6 + 1) & 0xFFFF0000 | ((unsigned int)(12345 - 393795277 * v6) >> 16);
      --v3;
    }
    while( v3 );
    *(_DWORD *)Key = ((69069 * v4 + 1) & 0xFFFF0000 | ((1103515245 * v4 + 12345) >> 16)) % 0x7FFFFFFF;
  }
  else
  {
    return(unsigned int)-1073741811;
  }
  return v2;
}

Referenced by:

WdipSemSqmLogInflightLimitExceededDataPoints
WdipSemSqmLogTimeoutDataPoints