EtwpCoverageProvEnableCallback

VOID __stdcall EtwpCoverageProvEnableCallback(){
  unsigned __int8 v0; 
  _ETHREAD *CurrentThread; 
  int v2[6]; 

  if( *(&stru_140C00F40 + 1834) && tlgKeywordOn((__int64)&stru_140C00F40 + 7336, 1i64) )
  {
    v0 = 1;
    if( !*(&stru_140CF2E80 + 1828) && dword_140C0EF54 < KUSER_SHARED_DATA.TelemetryCoverageRound )
    {
      if( !dword_140C0EF50 )
        dword_140C0EF50 = TelemetryCoverageStringHashInternal((_BYTE *)off_140C0EF48, v2);
      EtwTelemetryCoverageReport((INT64)&off_140C0EF48);
    }
  }
  else
  {
    v0 = 0;
  }
  CurrentThread = (_ETHREAD *)KeGetCurrentThread();
  --CurrentThread->Tcb.KernelApcDisable;
  ExAcquirePushLockExclusiveEx((_EX_PUSH_LOCK *)&ExBootDevicesRemovedEvent + 166, 0i64);
  qword_140C50300 = (__int64)KeGetCurrentThread();
  if( EtwpCoverageContext && *(&stru_140CF2E80 + 1828) != v0 )
  {
    if( v0 )
    {
      KUSER_SHARED_DATA.TelemetryCoverageRound = -256;
      *(_WORD *)(*(_QWORD *)(EtwpCoverageContext + 16) + 2i64) |= 1u;
    }
    else
    {
      KUSER_SHARED_DATA.TelemetryCoverageRound = *(_DWORD *)(*(_QWORD *)(EtwpCoverageContext + 16) + 24i64);
      *(_WORD *)(*(_QWORD *)(EtwpCoverageContext + 16) + 2i64) &= ~1u;
    }
  }
  qword_140C50300 = 0i64;
  *(&stru_140CF2E80 + 1828) = v0;
  if( (_InterlockedExchangeAdd64((_QWORD *)&ExBootDevicesRemovedEvent + 166, 0xFFFFFFFFFFFFFFFFui64) & 6) == 2 )
    ExfTryToWakePushLock((_EX_PUSH_LOCK *)&ExBootDevicesRemovedEvent + 166);
  KeAbPostRelease((char *)&ExBootDevicesRemovedEvent + 1328);
  KeLeaveCriticalRegionThread(KeGetCurrentThread());
}

Referenced by:

No references.