ExCleanTimerResolutionRequest

VOID __stdcall ExCleanTimerResolutionRequest(){
  __int64 v0; 
  UINT64 v1; 
  unsigned __int8 v2; 
  unsigned __int64 v3; 
  __int64 v4; 
  _QWORD *v5; 
  void *v6; 
  UINT64 ActualResolution; 
  LODWORD(ActualResolution) = 0;
  v0 = *((_QWORD *)KeGetCurrentThread() + 23);
  if( (*(_DWORD *)(v0 + 1124) & 0x1000) != 0 )
    ZwSetTimerResolution(KeMaximumIncrement, 0, &ActualResolution);
  ExAcquireTimeRefreshLock(1u);
  KeAcquireSpinLockRaiseToDpc(&ExpKernelResolutionLock, v1);
  v3 = v2;
  v4 = *(_QWORD *)(v0 + 2080);
  v5 = *(_QWORD **)(v0 + 2088);
  if( *(_QWORD *)(v4 + 8) != v0 + 2080 || *v5 != v0 + 2080 )
    __fastfail(3u);
  *v5 = v4;
  *(_QWORD *)(v4 + 8) = v5;
  KxReleaseSpinLock(&ExpKernelResolutionLock);
  __writecr8(v3);
  v6 = *(void **)(v0 + 2096);
  *(_QWORD *)(v0 + 2096) = 0i64;
  ExReleaseTimeRefreshLock();
  if( v6 )
    PoDiagFreeUsermodeStack(v6);
}

Referenced by:

PspExitProcess