ExAcquireRundownProtectionCacheAware

VOID __fastcall ExAcquireRundownProtectionCacheAware(INT64 a1, UINT64 a2){
  EX_RUNDOWN_REF *v2; 
  signed __int64 v3; 
  v2 = (EX_RUNDOWN_REF *)(*(_QWORD *)a1
                        + (unsigned int)(*(_DWORD *)(a1 + 16) * (*((_DWORD *)KeGetPcr() + 105) % *(_DWORD *)(a1 + 20))));
  _m_prefetchw(v2);
  v3 = v2->Count & 0xFFFFFFFFFFFFFFFEui64;
  if( v3 != _InterlockedCompareExchange64((volatile signed __int64 *)v2, v3 + 2, v3) )
    ExfAcquireRundownProtection(v2);
}

Referenced by:

MiProbeLockFrame
MiSwitchToTransition