EtwpCoverageHighIrqlCPWorkItemCallback

NTSTATUS __stdcall EtwpCoverageHighIrqlCPWorkItemCallback(INT64 **a1){
  INT64 *v1; 
  __int64 **v2; 
  unsigned __int8 v3; 
  __int64 *v4; 
  unsigned __int64 v5; 
  __int64 v6; 
  int v7; 
  unsigned __int64 v8; 
  _BYTE *v9; 
  NTSTATUS result; 
  INT64 v11[11]; 
  int v13; 

  v1 = *a1 + 3;
  v13 = 0;
  memset(v11, 0, 24);
  v2 = (__int64 **)(v1 + 2);
  while( 1 )
  {
    v3 = KeAcquireSpinLockRaiseToDpc((UINT64 *)v1);
    v4 = *v2;
    v5 = v3;
    if( *v2 == (__int64 *)v2 )
      break;
    v6 = *v4;
    if( (__int64 **)v4[1] != v2 || *(__int64 **)(v6 + 8) != v4 )
      __fastfail(3u);
    *v2 = (__int64 *)v6;
    v7 = 1;
    *(_QWORD *)(v6 + 8) = v2;
LABEL_8:
    v8 = v4[3];
    v9 = (_BYTE *)v4[4];
    v4[4] = v8;
    KxReleaseSpinLock((UINT64 *)v1);
    __writecr8(v5);
    if( (unsigned __int64)v9 < v8 )
    {
      do
      {
        *(INT64 *)((char *)&v11[1] + 4) = 0i64;
        HIDWORD(v11[2]) = 0;
        v11[0] = (INT64)v9;
        LODWORD(v11[1]) = TelemetryCoverageStringHashInternal(v9, &v13);
        EtwpCoverageRecord(a1, (INT64)v11);
        v9 += (unsigned int)(v13 + 1);
      }
      while( (unsigned __int64)v9 < v8 );
      v2 = (__int64 **)(v1 + 2);
    }
    if( v7 )
      ExFreePoolWithTag(v4, 0x56777445u);
  }
  v4 = (__int64 *)v1[1];
  if( v4[4] < (unsigned __int64)v4[3] )
  {
    v7 = 0;
    goto LABEL_8;
  }
  v4[3] = (__int64)(v4 + 5);
  v4[4] = (__int64)(v4 + 5);
  *((_DWORD *)v1 + 18) = 0;
  KxReleaseSpinLock((UINT64 *)v1);
  result = KiIrqlFlags;
  __writecr8(v5);
  return result;
}

Referenced by:

No references.