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