DbgkpTriageDumpCheckPresentHashTable

VOID __fastcall DbgkpTriageDumpCheckPresentHashTable(
        _TRIAGE_DUMP_OBJECT *DumpObject,
        VOID *Address,
        UINT64 Length,
        UINT64 *Bucket){
  __int64 v4; 
  __int64 i; 
  __int64 v6; 

  if( Bucket )
    *Bucket = -1i64;
  v4 = *((_QWORD *)DumpObject + 4);
  for( i = ((unsigned __int64)Address >> 4)
          - 3571
          * ((unsigned __int64)((((unsigned __int64)Address >> 4) * (unsigned __int128)0x92D1795E69F4AC57ui64) >> 64) >> 11);
        ;
        i = (i + 1) & -(__int64)((unsigned __int64)(i + 1) < 0xDF3) )
  {
    if( !*(_QWORD *)(v4 + 8 * i) )
    {
      if( Bucket )
        *Bucket = i;
      return;
    }
    v6 = *(_QWORD *)(v4 + 8 * i);
    if( *(VOID **)v6 == Address && (!(_DWORD)Length || *(_DWORD *)(v6 + 12) == (_DWORD)Length) )
      break;
  }
  if( Bucket )
    *Bucket = i;
}

Referenced by:

DbgkpTriageDumpIsMemoryBlockPresent
DbgkpTriageDumpSnapData