KeStartProfile

VOID __fastcall KeStartProfile(_KPROFILE *Profile){
  int v1; 
  UINT64 v2; 
  VOID **PoolWithTag; 
  ULONG_PTR Context[2]; 
  int v5; 
  int v6; 
  int v7; 
  _DWORD v8[45]; 

  v6 = KeNumberProcessors_0;
  v5 = KeNumberProcessors_0;
  v7 = 1310721;
  *(_QWORD *)Context = Profile;
  memset(v8, 0, sizeof(v8));
  KeQueryMaximumProcessorCountEx(0xFFFFu);
  v2 = (unsigned int)(4 * v1 + 196);
  PoolWithTag = ExAllocatePoolWithTag(0x200ui64, v2, 1718579792i64);
  *(_QWORD *)&v8[41] = PoolWithTag;
  if( PoolWithTag )
  {
    memset(PoolWithTag, 0i64, v2);
    if( (unsigned int)KeNumberProcessors_0 <= 1 )
      KiStartProfileTarget((UINT64)Context);
    else
      KeIpiGenericCall((PKIPI_BROADCAST_WORKER)KiStartProfileTarget, (ULONG_PTR)Context);
    if( *(_QWORD *)&v8[41] )
      ExFreePoolWithTag(*(PVOID *)&v8[41], 0x666F7250u);
  }
}

Referenced by:

EtwpCoverageSamplerStart
NtStartProfile