WmipMangleInstanceName

NTSTATUS __stdcall WmipMangleInstanceName(
        const _GUID *Guid,
        const WCHAR *OriginalName,
        UINT64 MaxMangledNameLen,
        WCHAR *MangledName){
  NTSTATUS v5; 
  WCHAR *v8; 
  tagGUIDENTRY *GEByGuid; 
  __int64 v10; 
  WCHAR i; 
  tagInstanceSet *ISinGEbyName; 
  UINT64 InstanceIndex; 
  __int64 v15[6]; 

  v5 = 0;
  LODWORD(InstanceIndex) = 0;
  v15[0] = 0i64;
  RtlStringCchLengthW((WCHAR *)OriginalName, 0x7FFFFFFFui64, (UINT64 *)v15);
  RtlStringCchCopyW(MangledName, MaxMangledNameLen, v8);
  GEByGuid = WmipFindGEByGuid((_GUID *)Guid, 0);
  if( GEByGuid )
  {
    v10 = v15[0] - 1;
    for( i = 90; ; MangledName[v10] = i )
    {
      ISinGEbyName = WmipFindISinGEbyName(GEByGuid, MangledName, &InstanceIndex);
      if( !ISinGEbyName )
        break;
      WmipUnreferenceEntry((__int64)&stru_140C00F40 + 4496, (volatile signed __int64 *)ISinGEbyName);
      if( i == 90 )
      {
        ++v10;
        i = 65;
        if( v10 == MaxMangledNameLen - 1 )
        {
          v5 = -1073741670;
          break;
        }
        MangledName[v10 + 1] = 0;
      }
      else
      {
        ++i;
      }
    }
    WmipUnreferenceEntry((__int64)&stru_140C00F40 + 4528, (volatile signed __int64 *)GEByGuid);
  }
  return v5;
}

Referenced by:

WmipBuildInstanceSet