EtwpApplyExeFilter

UINT8 __stdcall EtwpApplyExeFilter(_ETW_REG_ENTRY *RegEntry, _ETW_FILTER_STRING_TOKEN *TokenList){
  _OBJECT_NAME_INFORMATION *ImageFileName; 
  unsigned int v5; 
  const wchar_t *v6; 
  unsigned int v7; 
  const wchar_t *v8; 
  const wchar_t *v9; 
  unsigned __int16 v10; 
  size_t v11; 
  UINT8 v12; 

  ImageFileName = RegEntry->Process->SeAuditProcessCreationInfo.ImageFileName;
  if( !ImageFileName )
    return 1;
  v5 = *(_WORD *)ImageFileName;
  v6 = (const wchar_t *)*((_QWORD *)ImageFileName + 1);
  v7 = v5 >> 1;
  v8 = &v6[v7];
  while( v8 != v6 )
  {
    v9 = v8--;
    if( *v8 == 92 )
    {
      v8 = v9;
      break;
    }
  }
  v10 = 0;
  v11 = v7 - (v8 - v6);
  if( !TokenList->Count )
    return 0;
  v12 = 1;
  while( TokenList->Tokens[v10].Length != v11 || wcsnicmp(TokenList->Tokens[v10].String, v8, v11) )
  {
    if( ++v10 >= TokenList->Count )
      return 0;
  }
  return v12;
}

Referenced by:

EtwpApplyScopeFilters
EtwpApplyTransientFilters