CmpLockTwoSecurityCachesExclusiveShared

void __fastcall CmpLockTwoSecurityCachesExclusiveShared(unsigned __int64 a1, unsigned __int64 a2){
  UINT64 v2; 
  bool v4; 
  UINT64 v5; 
  v2 = a2 + 1776;
  v4 = a1 <= a2;
  if( a1 < a2 )
  {
    ExAcquirePushLockExclusiveEx(a1 + 1776, 0i64);
    ExAcquirePushLockSharedEx(v2, 0i64);
  }
  else
  {
    v5 = a2 + 1776;
    if( !v4 )
    {
      ExAcquirePushLockSharedEx(v5, 0i64);
      v5 = a1 + 1776;
    }
    ExAcquirePushLockExclusiveEx(v5, 0i64);
  }
}

Referenced by:

CmpCopyKeyPartial
CmpDoBuildVirtualStack
CmpSyncKeyValues