CmpGetLastHive

INT64 __stdcall CmpGetLastHive(){
  INT64 v0; 
  __int64 v1; 
  __int64 *v2; 
  INT64 v3; 
  __int64 v4; 
  v0 = 0i64;
  ExAcquirePushLockSharedEx((UINT64)&CmpHiveListHeadLock, 0i64);
  v1 = qword_140D2D918;
  v2 = &CmpHiveListHead;
  while( (__int64 *)v1 != v2 )
  {
    if( CmpReferenceHive((_CMHIVE *)(v1 - 1600)) )
    {
      v0 = v3;
      break;
    }
    v1 = *(_QWORD *)(v4 + 8);
  }
  ExReleasePushLockEx((UINT64)&CmpHiveListHeadLock, 0i64);
  return v0;
}

Referenced by:

CmLoadAppKey
CmpDoFlushAll