EmonReleaseProfileResourcesInternal
NTSTATUS __stdcall EmonReleaseProfileResourcesInternal(INT64 a1){
unsigned int v2;
unsigned int ActiveProcessorCount;
__int64 v4;
UINT64 *v5;
__int64 v6;
__int64 v7;
int v8;
v2 = 0;
ActiveProcessorCount = KeQueryActiveProcessorCountEx(0xFFFFu);
if( ActiveProcessorCount )
{
v4 = 0i64;
v5 = (UINT64 *)(a1 + 32);
do
{
if( *v5 )
EmonReleaseReservedCounters(v2, *v5);
if( *(_QWORD *)(a1 + 24) )
{
v6 = *(&CmpDummyThreadEvent + 614);
if( *(&CmpDummyThreadEvent + 4920) )
{
v7 = *(_QWORD *)(v4 + *(&CmpDummyThreadEvent + 614) + 32);
*(_QWORD *)(v4 + *(&CmpDummyThreadEvent + 614) + 40) = v7;
*(_QWORD *)(v4 + v6 + 56) = v7;
}
else
{
v8 = *(_DWORD *)(v4 + *(&CmpDummyThreadEvent + 614) + 16);
*(_DWORD *)(v4 + *(&CmpDummyThreadEvent + 614) + 20) = v8;
*(_DWORD *)(v4 + v6 + 28) = v8;
}
*(&CmpDummyThreadEvent + 1238) = 0;
}
++v2;
++v5;
v4 += 160i64;
}
while( v2 < ActiveProcessorCount );
}
return 0;
}Referenced by:
EmonAllocateResources
EmonReleaseProfileResources