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