EtwpParsePoolTagFilter

UINT16 __fastcall EtwpParsePoolTagFilter(_UNICODE_STRING *FilterString, UINT64 *Filter){
  wchar_t *Buffer; 
  int v3; 
  unsigned __int16 v4; 
  __int16 v5; 
  int v6; 
  wchar_t v7; 
  bool v8; 
  __int64 v9; 
  __int64 v10; 
  int v12; 
  Buffer = FilterString->Buffer;
  v12 = 0;
  v3 = 1;
  v4 = 0;
  v5 = 0;
  v6 = 0;
  v7 = *Buffer;
  if( !*Buffer )
    return 0;
  do
  {
    if( v3 == 1 )
    {
      v8 = v7 == 42;
      v9 = v5;
      if( v8 )
        v3 = 2;
      ++v5;
      *((_BYTE *)&v12 + v9) = *(_BYTE *)Buffer;
      v6 = v12;
      if( v5 == 4 )
        v3 = 2;
    }
    else
    {
      if( v7 != 59 || v4 >= 4u )
        return 0;
      v10 = v4;
      v5 = 0;
      ++v4;
      v12 = 0;
      v3 = 1;
      *((_DWORD *)Filter + v10) = v6;
      v6 = 0;
    }
    v7 = *++Buffer;
  }
  while( *Buffer );
  if( v3 != 2 || v4 >= 4u )
    return 0;
  *((_DWORD *)Filter + v4) = v6;
  return v4 + 1;
}

Referenced by:

EtwStartAutoLogger