PiDevCfgParsePropertyKeyName

VOID __fastcall PiDevCfgParsePropertyKeyName(
        _UNICODE_STRING *PropertyKeyName,
        _DEVPROPKEY *PropertyKey,
        UINT64 *PropertyType){
  bool v4; 
  unsigned __int16 MaximumLength; 
  WORD *v8; 
  __int64 v9; 
  WORD *v10; 
  __int64 v11; 
  _UNICODE_STRING v12; 
  __int16 pszDest[12]; 

  v4 = PropertyKeyName->Length < 0x50u;
  *(_DWORD *)(&v12.MaximumLength + 1) = 0;
  if( !v4 )
  {
    v12.Buffer = PropertyKeyName->Buffer;
    MaximumLength = PropertyKeyName->MaximumLength;
    v12.Length = 76;
    v12.MaximumLength = MaximumLength;
    if( RtlGUIDFromString(&v12, &PropertyKey->fmtid) >= 0 && PropertyKeyName->Buffer[38] == 44 )
    {
      v8 = PropertyKeyName->Buffer + 39;
      v9 = (PropertyKeyName->Length >> 1) - 39;
      if( !v8[v9] )
      {
        v10 = wcschr(v8, 44);
        v11 = (__int64)v10;
        if( v10 )
        {
          v9 = v10 - v8;
          v11 = (__int64)(v10 + 1);
        }
        if( RtlStringCchCopyNW((WCHAR *)pszDest, 0xBui64, v8, (unsigned int)v9) >= 0
          && PnpStringToDwordValue((__int64)pszDest, &PropertyKey->pid)
          && PropertyType )
        {
          *(_DWORD *)PropertyType = 1;
          if( v11 )
            PnpStringToDwordValue(v11, PropertyType);
        }
      }
    }
  }
}

Referenced by:

PiDevCfgCopyDeviceKey