RtlUnicodeStringPrintfEx

VOID __fastcall RtlUnicodeStringPrintfEx(
        _UNICODE_STRING *DestinationString,
        _UNICODE_STRING *RemainingString,
        UINT64 dwFlags,
        const WCHAR *pszFormat){
  ULONG v5; 
  size_t v6; 
  const wchar_t *v7; 
  wchar_t *v8; 
  size_t v9; 
  int v10; 
  unsigned __int16 Length; 
  unsigned __int64 MaximumLength; 
  wchar_t *Buffer; 
  wchar_t *v14; 
  size_t v15; 
  size_t v16; 
  int v17; 
  int v18; 
  const WCHAR *v19; 
  size_t pcchNewDestLength; 
  wchar_t *v21; 
  wchar_t *ppszDestEnd; 
  __int64 pcchRemaining[2]; 
  char Args; 
  v5 = dwFlags;
  v6 = 0i64;
  v7 = pszFormat;
  v8 = 0i64;
  v9 = 0i64;
  v21 = 0i64;
  v10 = 0;
  if( DestinationString || (v5 & 0x100) == 0 )
  {
    Length = DestinationString->Length;
    if( (DestinationString->Length & 1) != 0 )
      return;
    MaximumLength = DestinationString->MaximumLength;
    if( (MaximumLength & 1) != 0 || Length > (unsigned __int16)MaximumLength || (_WORD)MaximumLength == 0xFFFF )
      return;
    Buffer = DestinationString->Buffer;
    if( !Buffer && (Length || (_WORD)MaximumLength) )
    {
      v10 = -1073741811;
      v8 = 0i64;
    }
    else
    {
      v21 = DestinationString->Buffer;
      v9 = MaximumLength >> 1;
      v8 = Buffer;
    }
  }
  if( v10 < 0 )
    return;
  ppszDestEnd = v8;
  v14 = v8;
  pcchRemaining[0] = v9;
  LOWORD(v15) = v9;
  pcchNewDestLength = 0i64;
  LOWORD(v16) = 0;
  if( (v5 & 0x100) != 0 )
  {
    v19 = &::ppszDestEnd;
    if( pszFormat )
      v19 = pszFormat;
    v7 = v19;
  }
  v17 = 0;
  if( (v5 & 0xFFFFE000) != 0 )
  {
    v17 = -1073741811;
    goto LABEL_35;
  }
  if( v9 )
  {
    pcchRemaining[0] = 0i64;
    v18 = vsnwprintf(v8, v9, v7, &Args);
    if( v18 < 0 || (v16 = v18, v18 > v9) )
    {
      v16 = v9;
      pcchNewDestLength = v9;
      v17 = -2147483643;
    }
    else
    {
      pcchNewDestLength = v18;
    }
    v8 = v21;
    v15 = v9 - v16;
    pcchRemaining[0] = v9 - v16;
    v14 = &v21[v16];
    ppszDestEnd = v14;
    if( v17 >= 0 )
    {
      if( (v5 & 0x200) != 0 && v15 )
        memset((INT64)&v21[v16], (unsigned __int8)v5);
      goto LABEL_17;
    }
LABEL_35:
    if( (v5 & 0x1C00) != 0 && v9 )
    {
      RtlUnicodeStringExHandleOtherFlags(v8, v9, v6, &pcchNewDestLength, &ppszDestEnd, (size_t *)pcchRemaining, v5);
      v14 = ppszDestEnd;
      LOWORD(v15) = pcchRemaining[0];
      LOWORD(v16) = pcchNewDestLength;
    }
    goto LABEL_17;
  }
  if( *v7 )
  {
    v17 = v8 != 0i64 ? -2147483643 : -1073741811;
    goto LABEL_35;
  }
LABEL_17:
  if( DestinationString )
    DestinationString->Length = 2 * v16;
  if( (int)(v17 + 0x80000000) < 0 || v17 == -2147483643 )
  {
    if( RemainingString )
    {
      RemainingString->Length = 0;
      RemainingString->MaximumLength = 2 * v15;
      RemainingString->Buffer = v14;
    }
  }
}

Referenced by:

PiBuildAndOpenDeviceDirectoryPath
PiCreateDriverRedirectedStateKey
PiDevCfgBuildDriverConfigurationId
PiDevCfgBuildIndirectString
PiDevCfgLogDeviceConfigured
PiGetDriverMutableStateDirectory
PiOpenDriverRedirectedStateKey