EtwpCovSampCaptureCleanupLookasides
NTSTATUS __stdcall EtwpCovSampCaptureCleanupLookasides(INT64 a1){
UINT64 *v1;
int v3;
unsigned __int64 v4;
union _SLIST_HEADER *i;
__int64 *v6;
bool v7;
NTSTATUS result;
v1 = (UINT64 *)(a1 + 264);
v3 = 1;
v4 = (unsigned __int8)KeAcquireSpinLockRaiseToDpc((UINT64 *)(a1 + 264));
if( !*(_DWORD *)(a1 + 912) && !*(_DWORD *)(a1 + 920) )
{
for( i = *(union _SLIST_HEADER **)(a1 + 576);
i != (union _SLIST_HEADER *)(a1 + 576);
i = (union _SLIST_HEADER *)i->Alignment )
{
EtwpCovSampLookasideFlushFreeListToCleanupList(i - 1);
}
v6 = *(__int64 **)(a1 + 592);
if( v6 == (__int64 *)(a1 + 592) )
goto LABEL_11;
do
{
v7 = *((_DWORD *)v6 + 15) < *((_DWORD *)v6 + 14);
v6 = (__int64 *)*v6;
if( v7 )
v3 = 0;
}
while( v6 != (__int64 *)(a1 + 592) );
if( v3 )
{
LABEL_11:
*(_DWORD *)(a1 + 920) = 1;
KeSetEvent((PRKEVENT)(a1 + 888), 0, 0);
}
}
KxReleaseSpinLock(v1);
result = KiIrqlFlags;
__writecr8(v4);
return result;
}Referenced by:
EtwpCovSampCaptureCleanupDpc
EtwpCovSampCaptureContextStop