AslStringPatternMatchW

NTSTATUS __stdcall AslStringPatternMatchW(PWCHAR Pattern, PWCHAR TestString){
  WCHAR v2; 
  PWCHAR v4; 
  NTSTATUS v5; 
  UINT16 v6; 
  UINT16 v7; 
  __int16 v8; 
  UINT16 v10; 
  WCHAR *v11; 
  __int16 v12; 
  v2 = *Pattern;
  v4 = Pattern;
  v5 = 0;
  while( v2 || *TestString )
  {
    if( v2 != 42 )
    {
      if( v2 != 63 )
      {
        NLS_UPCASE(*TestString);
        v7 = NLS_UPCASE(v6);
        if( v7 != v8 )
          return v5;
      }
      ++v4;
      goto LABEL_7;
    }
    v2 = v4[1];
    if( v2 == 42 )
    {
      ++v4;
    }
    else
    {
      if( !v2 )
        return 1;
      NLS_UPCASE(v2);
      v10 = NLS_UPCASE(*TestString);
      if( v12 == v10 )
      {
        if( AslStringPatternMatchW(v11, TestString) )
          return 1;
      }
LABEL_7:
      if( !*TestString )
        return v5;
      v2 = *v4;
      ++TestString;
    }
  }
  return 1;
}

Referenced by:

AslStringPatternMatchW
AslpProcessMatchRegNode
KseLookupHardwareId
SdbpCheckAttribute
SdbpCheckMatchingRegistryValue
SdbpCheckPackageAttributes
SdbpFindFirstIndexedWildCardTag
SdbpFindNextIndexedWildCardTag