EtwpCoverageCheckCP

NTSTATUS __stdcall EtwpCoverageCheckCP(INT64 a1, INT64 a2){
  NTSTATUS v4; 
  _ETHREAD *CurrentThread; 
  __int64 v6; 
  INT64 v7; 
  UINT64 *Internal; 
  int v9; 
  int v11; 

  v4 = 0;
  v11 = 0;
  if( (unsigned int)EtwpCoverageValidateCP((_BYTE **)a2, &v11) )
  {
    CurrentThread = (_ETHREAD *)KeGetCurrentThread();
    --CurrentThread->Tcb.KernelApcDisable;
    ExAcquirePushLockExclusiveEx((_EX_PUSH_LOCK *)&ExBootDevicesRemovedEvent + 166, 0i64);
    v6 = *(_QWORD *)(a1 + 16);
    v7 = *(unsigned int *)(a2 + 8);
    qword_140C50300 = (__int64)KeGetCurrentThread();
    Internal = TelemetryCoverageTableLocateInternal((UINT64 *)v6, v7);
    if( *(_DWORD *)Internal == v9 )
    {
      v4 = 1;
      *(_DWORD *)(a2 + 12) = *(_DWORD *)(v6 + 24);
    }
    else
    {
      *(_DWORD *)(a2 + 12) = 0;
    }
  }
  if( (struct _KTHREAD *)qword_140C50300 == KeGetCurrentThread() )
  {
    qword_140C50300 = 0i64;
    if( (_InterlockedExchangeAdd64((_QWORD *)&ExBootDevicesRemovedEvent + 166, 0xFFFFFFFFFFFFFFFFui64) & 6) == 2 )
      ExfTryToWakePushLock((_EX_PUSH_LOCK *)&ExBootDevicesRemovedEvent + 166);
    KeAbPostRelease((char *)&ExBootDevicesRemovedEvent + 1328);
    KeLeaveCriticalRegionThread(KeGetCurrentThread());
  }
  return v4;
}

Referenced by:

EtwSetProcessTelemetryCoverage