CmpLockHashEntryShared

CHAR __fastcall CmpLockHashEntryShared(UINT64 P2, UINT64 P4){
  ULONG_PTR BugCheckParameter4; 
  CHAR result; 
  BugCheckParameter4 = (unsigned int)P4;
  ExAcquirePushLockSharedEx(
    *(_QWORD *)(P2 + 1640)
  + 24
  * ((unsigned int)(*(_DWORD *)(P2 + 1648) - 1) & ((101027 * ((unsigned int)P4 ^ ((unsigned int)P4 >> 9))) ^ ((unsigned __int64)(101027 * ((unsigned int)P4 ^ ((unsigned int)P4 >> 9))) >> 9))),
    0i64);
  result = CmpReferenceHive((_CMHIVE *)P2);
  if( !result )
    KeBugCheckEx(0x51u, 0x17ui64, P2, 9ui64, BugCheckParameter4);
  return result;
}

Referenced by:

CmpFindSubkeyInHashByChildCell
CmpWalkOneLevel