EtwpCovSampProcessRemoveModule

INT64 __fastcall EtwpCovSampProcessRemoveModule(INT64 a1, UINT64 a2, INT64 a3){
  unsigned int v6; 
  UINT64 v7; 
  _QWORD *v8; 
  INT64 v9; 
  UINT8 *v10; 
  unsigned int v11; 
  v6 = EtwpCovSampProcessUpperBoundModule(a1, a2);
  if( v6 < *(_DWORD *)(a1 + 32) )
  {
    v7 = a2 + a3;
    do
    {
      v8 = (_QWORD *)(16i64 * v6 + *(_QWORD *)(a1 + 24));
      v9 = v8[1];
      if( *v8 - *(_QWORD *)(v9 + 40) >= v7 )
        break;
      EtwpCovSampModuleDereference(*(_QWORD *)a1, v9);
      v11 = *(_DWORD *)(a1 + 32);
      if( v11 > v6 + 1 )
      {
        memmove(v10, v10 + 16, 16i64 * (v11 - v6 - 1));
        v11 = *(_DWORD *)(a1 + 32);
      }
      *(_DWORD *)(a1 + 32) = v11 - 1;
    }
    while( v6 < v11 - 1 );
  }
  return v6;
}

Referenced by:

EtwpCovSampProcessAddModule
EtwpCoverageSamplerUnloadImage