SmUniqueIdParseProductName

NTSTATUS __stdcall SmUniqueIdParseProductName(PWCHAR UniqueId, PWCHAR ProductName, UINT64 ProductNameSize){
  UINT64 v4; 
  WCHAR *v5; 
  WORD *v7; 
  NTSTATUS v8; 
  WCHAR *v9; 
  __int64 v10; 
  WORD *v11; 
  WCHAR *v12; 
  __int64 v13; 
  WORD *i; 
  WORD *v15; 

  v4 = (unsigned int)ProductNameSize;
  v5 = ProductName;
  v7 = wcsstr(UniqueId, (INT8 *)L"&Ven_");
  v8 = 0;
  if( !v7 )
    return -1073700864;
  v9 = v7 + 5;
  v10 = wcschr(v7 + 5, 38) - (v7 + 5);
  if( (_DWORD)v10 )
  {
    if( StringCbCopyNW(ProductName, v4, v9, 2i64 * (unsigned int)v10) < 0 || StringCbCatW(ProductName, v4) < 0 )
      return -1073741789;
    v5 = &ProductName[(unsigned int)(v10 + 1)];
    LODWORD(v4) = -2 - 2 * v10 + v4;
  }
  v11 = wcsstr(UniqueId, (INT8 *)L"&Prod_");
  if( !v11 )
    return -1073700864;
  v12 = v11 + 6;
  v13 = wcschr(v11 + 6, 38) - (v11 + 6);
  if( (_DWORD)v13 && StringCbCopyNW(v5, (unsigned int)v4, v12, 2i64 * (unsigned int)v13) < 0 )
    return -1073741789;
  for( i = ProductName; ; i = v15 )
  {
    v15 = wcschr(i, 95);
    if( !v15 )
      break;
    *v15 = 32;
  }
  return v8;
}

Referenced by:

SmKmEtwAppendProductName