EtwpCovSampSampleBufferProcess

void __fastcall EtwpCovSampSampleBufferProcess(INT64 *a1, _DWORD *a2){
  int v4; 
  _DWORD *v5; 
  int v6; 
  PVOID v7; 
  int v8; 
  INT64 v9; 
  int v10; 
  PVOID BugCheckParameter2; 

  BugCheckParameter2 = 0i64;
  if( (int)EtwpCovSampAcquireSamplerRundown((_LIST_ENTRY **)&BugCheckParameter2) < 0
    || (v4 = 0, v5 = a2 + 18, v6 = 0, (int)a2[14] <= 0) )
  {
    v7 = BugCheckParameter2;
  }
  else
  {
    v7 = BugCheckParameter2;
    do
    {
      if( v4 + 16 > a2[16] )
        break;
      v8 = v5[1];
      v9 = HIWORD(v8) & 0x7FFF;
      if( *v5 != v4
        || (unsigned __int16)v8 < (unsigned int)(8 * v9)
        || (unsigned int)(unsigned __int16)v8 + *v5 > a2[15] )
      {
        break;
      }
      if( v8 >= 0 )
      {
        if( !EtwpCovSampStackHashCheck(a1, (unsigned __int16)v8, (UINT8 *)v5 + 8, v9) )
        {
          v7 = BugCheckParameter2;
          EtwpCovSampContextAddAddresses(
            BugCheckParameter2,
            (__int64)KeGetCurrentThread()->ApcState.Process,
            (_QWORD *)v5 + 1,
            *((_WORD *)v5 + 3) & 0x7FFF);
        }
      }
      else
      {
        EtwpCovSampContextAddSamples(v7);
      }
      v10 = v5[1];
      ++v6;
      v4 += (unsigned __int16)v10;
      v5 = (_DWORD *)((char *)v5 + (unsigned __int16)v10);
    }
    while( v6 < a2[14] );
  }
  if( v7 )
  {
    ExReleaseRundownProtection((_EX_RUNDOWN_REF *)&ExBootDevicesRemovedEvent + 152);
    KeLeaveCriticalRegion();
  }
}

Referenced by:

EtwpCovSampCaptureWorkerThread