HalpRestartProfiling

INT64 __stdcall HalpRestartProfiling(){
  __int64 v0; 
  __int64 v1; 
  __int64 **v2; 
  __int64 *i; 
  unsigned int j; 
  __int64 v6; 
  v0 = (*((__int64(**)(void))HalpProfileInterface[0] + 6))();
  LODWORD(v0) = *((_DWORD *)KeGetPcr() + 105);
  v2 = (__int64 **)(HalpCounterSetInfo + 24 * v0);
  for( i = *v2; i != (__int64 *)v2; i = (__int64 *)*i )
  {
    for( j = 0; j < *((_DWORD *)i + 5); *(__int64 *)((char *)i + v6 + 32) = __readpmc(v1) )
    {
      v6 = j++;
      v6 *= 32i64;
      v1 = *(unsigned int *)((char *)i + v6 + 28);
    }
  }
  LOBYTE(v1) = 1;
  return((__int64(__fastcall *)(__int64))off_140C009A8[0])(v1);
}

Referenced by:

HalpDpPostReplaceInitialization
HalpPostSleepMP