EtwTelemetryCoverageReport

NTSTATUS __stdcall EtwTelemetryCoverageReport(INT64 a1){
  int v1; 
  int v2; 
  VOID **v4; 
  _BOOL4 v5; 
  __int64 v6; 
  __int64 v7; 
  int v8; 
  unsigned int v10; 
  unsigned __int8 v11; 
  INT64 v12; 
  unsigned __int64 v13; 
  int v14; 
  VOID **PoolWithTag; 
  unsigned __int64 v16; 
  __int64 v17; 
  _QWORD *v18; 
  _QWORD *v19; 
  int v20; 
  int v21; 
  int v22; 
  int v23; 
  const CHAR *v24; 
  INT64 v25; 
  int v26; 
  int v27; 
  int v28; 
  int v29; 
  int v30; 
  int v31; 
  int v32; 
  int v33; 
  __int64 v34; 
  _EVENT_DATA_DESCRIPTOR v35; 
  int *v36; 
  int v37; 
  int v38; 
  int *v39; 
  int v40; 
  int v41; 
  int *v42; 
  int v43; 
  int v44; 
  int *v45; 
  int v46; 
  int v47; 
  int *v48; 
  int v49; 
  int v50; 
  int *v51; 
  int v52; 
  int v53; 
  __int64 v54[2]; 

  v1 = 0;
  v2 = 0;
  v25 = 0i64;
  v27 = 0;
  v4 = 0i64;
  v5 = ObGetCurrentIrql() < 2u && (*(_DWORD *)(a1 + 16) & 1) == 0;
  if( !EtwpCoverageNonPagedContext )
  {
    if( !v5 )
      return -1073741641;
    v8 = EtwpCoverageEnsureContext();
    if( v8 < 0 )
      return v8;
  }
  v6 = EtwpCoverageNonPagedContext;
  v7 = EtwpCoverageNonPagedContext + 24;
  if( *(_DWORD *)(a1 + 12) >= 0xFFFFFF00 )
    return -1073741637;
  if( v5 )
  {
    EtwpCoverageRecord((INT64 **)EtwpCoverageContext, a1);
    return 0;
  }
  v26 = 1;
  if( !(unsigned int)EtwpCoverageValidateCP((_BYTE **)a1, &v25) )
  {
    v8 = -1073741811;
LABEL_39:
    if( *(&stru_140CF2E80 + 1828)
      && *(&stru_140C00F40 + 1834) > 5u
      && tlgKeywordOn((__int64)&stru_140C00F40 + 7336, 1i64) )
    {
      v21 = *(_DWORD *)v6;
      v38 = 0;
      v41 = 0;
      v44 = 0;
      v47 = 0;
      v50 = 0;
      v53 = 0;
      v28 = v21;
      v36 = &v28;
      v29 = *(_DWORD *)(v6 + 4);
      v39 = &v29;
      v22 = v20 - *(_DWORD *)(v6 + 16);
      v23 = v20 - *(_DWORD *)(v6 + 20);
      v30 = v22;
      v42 = &v30;
      v45 = &v31;
      v48 = &v32;
      v37 = 4;
      v40 = 4;
      v43 = 4;
      v46 = 4;
      v49 = 4;
      v52 = 4;
      v24 = *(const CHAR **)a1;
      v51 = &v33;
      v31 = v23;
      v32 = v2;
      v33 = v1;
      tlgCreate1Sz_char((INT64)v54, v24);
      tlgWriteTransfer_EtwWriteTransfer(
        (__int64)&stru_140C00F40 + 7336,
        (unsigned __int8 *)byte_14002B629,
        0i64,
        0i64,
        9u,
        &v35);
    }
    return v8;
  }
  v10 = *(_DWORD *)(a1 + 12);
  if( v10 >= *(_DWORD *)v6 )
  {
    v8 = 0;
    v2 = 1;
    v1 = 1;
    goto LABEL_39;
  }
  *(_DWORD *)(a1 + 12) = *(_DWORD *)v6;
  while( 1 )
  {
    v11 = KeAcquireSpinLockRaiseToDpc((UINT64 *)v7);
    v12 = *(_QWORD *)(v7 + 8);
    v13 = v11;
    v34 = *(_QWORD *)(v7 + 64);
    if( v12 )
    {
      HIDWORD(v25) = EtwpCoverageAddToStringBuffer(v12, *(const CHAR **)a1, (unsigned int)v25);
      if( HIDWORD(v25) == 1 )
        break;
    }
    KxReleaseSpinLock((UINT64 *)v7);
    __writecr8(v13);
    if( !v4 )
    {
      PoolWithTag = ExAllocatePoolWithTag(0x200ui64, 0x400ui64, 1450669125i64);
      v4 = PoolWithTag;
      if( !PoolWithTag )
      {
        *(_DWORD *)(a1 + 12) = v10;
        _InterlockedIncrement((volatile signed __int32 *)(v6 + 4));
        v14 = v26;
        v8 = -1073741670;
        goto LABEL_35;
      }
      memset(PoolWithTag, 0i64, 0x400u);
      v4[2] = v4 + 128;
      v4[3] = v4 + 5;
      v4[4] = v4 + 5;
    }
    v16 = (unsigned __int8)KeAcquireSpinLockRaiseToDpc((UINT64 *)v7);
    v17 = *(_QWORD *)(v7 + 64);
    if( v34 == v17 )
    {
      v18 = *(_QWORD **)(v7 + 8);
      if( v18 )
      {
        v19 = *(_QWORD **)(v7 + 24);
        if( *v19 != v7 + 16 )
          __fastfail(3u);
        *v18 = v7 + 16;
        v18[1] = v19;
        *v19 = v18;
        *(_QWORD *)(v7 + 24) = v18;
        v17 = *(_QWORD *)(v7 + 64);
      }
      *(_QWORD *)(v7 + 8) = v4;
      *(_QWORD *)(v7 + 64) = v17 + 1;
      v4 = 0i64;
    }
    KxReleaseSpinLock((UINT64 *)v7);
    __writecr8(v16);
  }
  if( !*(_DWORD *)(v7 + 72) )
  {
    ExQueueWorkItem((PWORK_QUEUE_ITEM)(v7 + 32), DelayedWorkQueue);
    *(_DWORD *)(v7 + 72) = 1;
  }
  KxReleaseSpinLock((UINT64 *)v7);
  __writecr8(v13);
  v14 = 0;
  v8 = 0;
LABEL_35:
  if( v4 )
    ExFreePoolWithTag(v4, 0x56777445u);
  if( v14 )
  {
    v2 = HIDWORD(v25);
    v1 = v27;
    goto LABEL_39;
  }
  return v8;
}

Referenced by:

EtwpCoverageEnsureContext
EtwpCoverageProvEnableCallback
EtwpCoverageRecordAtHighIrql
EtwpCoverageReset
EtwpCoverageResetCP
PopTransitionTelemetryOsState
PsSetProcessFaultInformation