EtwpCovSampCaptureFlushSampleBuffers

VOID __fastcall EtwpCovSampCaptureFlushSampleBuffers(INT64 a1){
  unsigned int MaximumProcessorCount; 
  __int64 v3; 
  __int64 v4; 
  INT64 v5; 
  unsigned int v6; 
  unsigned int v7; 
  UINT64 *v8; 
  INT64 v9; 
  MaximumProcessorCount = KeQueryMaximumProcessorCountEx(0xFFFFu);
  if( MaximumProcessorCount )
  {
    v3 = 0i64;
    v4 = MaximumProcessorCount;
    do
    {
      v5 = 0i64;
      v6 = ((unsigned int)*(_QWORD *)(a1 + 8) >> 13) & 0x3FFFF;
      _BitScanReverse(&v7, v6);
      v8 = (UINT64 *)(*(_QWORD *)(*(_QWORD *)(*(_QWORD *)(v3 + ExSaPageArrays) + 8i64 * (v7 - 2))
                                + 8i64 * (v6 ^ (1 << v7))
                                + 8)
                    + 8 * ((*(_QWORD *)(a1 + 8) >> 4) & 0x1FFi64));
      if( EtwpCovSampTryAcquireBufferLock(v8) )
      {
        v9 = v8[1];
        if( v9 )
        {
          v8[1] = 0i64;
          v5 = v9;
        }
        KxReleaseSpinLock(v8);
        __writecr8(0i64);
        if( v5 )
          EtwpCovSampSampleBufferDecRef(a1, v5);
      }
      v3 += 8i64;
      --v4;
    }
    while( v4 );
  }
}

Referenced by:

EtwpCovSampCaptureContextStop
EtwpCovSampCaptureFlush