CmpLockHashEntryExclusive

CHAR __fastcall CmpLockHashEntryExclusive(UINT64 P2, UINT64 P4){
  unsigned __int64 BugCheckParameter4; 
  _EX_PUSH_LOCK *v4; 
  CHAR result; 

  BugCheckParameter4 = (unsigned int)P4;
  v4 = (_EX_PUSH_LOCK *)(*(_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))));
  ExAcquirePushLockExclusiveEx(v4, 0i64);
  v4[1]._bf_0 = (__int64)KeGetCurrentThread();
  result = CmpReferenceHive(P2);
  if( !result )
    KeBugCheckEx(0x51u, (PVOID)0x17, (PVOID)P2, (PVOID)0xC, (PVOID)BugCheckParameter4);
  return result;
}

Referenced by:

CmpDelayCloseWorker