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