EtwpCopySchematizedFilters

VOID __fastcall EtwpCopySchematizedFilters(
        _EVENT_FILTER_HEADER *CurrentFilter,
        _ETW_GUID_ENTRY *GuidEntry,
        UINT8 EnableMask){
  _EVENT_FILTER_HEADER *v3; 
  _TRACE_ENABLE_INFO *EnableInfo; 
  unsigned int v5; 
  __int64 v7; 
  _ETW_FILTER_HEADER *FilterData; 
  _EVENT_FILTER_HEADER *ProviderSideFilter; 
  __int64 v12; 
  v3 = 0i64;
  EnableInfo = GuidEntry->EnableInfo;
  v5 = 0;
  v7 = 0i64;
  do
  {
    if( EnableInfo->IsEnabled )
    {
      FilterData = GuidEntry->FilterData;
      ProviderSideFilter = FilterData[v7].ProviderSideFilter;
      if( ProviderSideFilter )
      {
        if( ((unsigned __int8)(1 << v5) & EnableMask) != 0 )
        {
          memmove((UINT8 *)CurrentFilter, (UINT8 *)FilterData[v7].ProviderSideFilter, ProviderSideFilter->Size);
          v3 = CurrentFilter;
          v12 = (ProviderSideFilter->Size + 7) & 0xFFFFFFF8;
          CurrentFilter->NextOffset = v12;
          CurrentFilter = (_EVENT_FILTER_HEADER *)((char *)CurrentFilter + v12);
        }
      }
    }
    ++v5;
    ++EnableInfo;
    ++v7;
  }
  while( v5 < 8 );
  if( v3 )
    v3->NextOffset = 0;
}

Referenced by:

EtwpAddRegEntryToGroup
EtwpBuildNotificationPacket
EtwpClearSessionAndUnreferenceEntry
EtwpRegisterProvider
EtwpRegisterUMGuid