RtlFormatMessageEx

NTSTATUS __stdcall RtlFormatMessageEx(
        WCHAR *MessageFormat,
        UINT64 MaximumWidth,
        UINT8 IgnoreInserts,
        UINT8 ArgumentsAreAnsi,
        UINT8 ArgumentsAreAnArray,
        INT8 **Arguments,
        WCHAR *Buffer,
        UINT64 Length,
        UINT64 *ReturnLength){
  INT8 **v9; 
  UINT8 v10; 
  unsigned int v12; 
  WCHAR *v13; 
  WCHAR *v14; 
  signed int v15; 
  unsigned int v16; 
  WCHAR *v17; 
  WCHAR v18; 
  WCHAR *v19; 
  int v20; 
  __int64 v21; 
  unsigned int v22; 
  unsigned int v23; 
  WCHAR v24; 
  unsigned int v25; 
  __int64 v26; 
  unsigned int v27; 
  WCHAR *v28; 
  WCHAR *v29; 
  char v30; 
  WCHAR v31; 
  WCHAR v32; 
  char *v33; 
  unsigned int v34; 
  int v35; 
  NTSTATUS v36; 
  char *v37; 
  __int16 v38; 
  unsigned __int16 v39; 
  int v40; 
  __int64 v41; 
  signed __int64 v42; 
  __int16 v43; 
  unsigned __int16 v44; 
  signed __int64 v45; 
  __int16 v46; 
  char *v47; 
  unsigned int v48; 
  unsigned int v49; 
  __int64 v50; 
  __int64 v51; 
  __int64 v52; 
  unsigned int v53; 
  __int64 v54; 
  __int64 v55; 
  WCHAR v56; 
  WCHAR *v57; 
  WCHAR *v58; 
  __int16 v59; 
  __int64 v60; 
  _WORD *v61; 
  _WORD *v62; 
  _WORD *v63; 
  UINT64 *v65; 
  UINT64 dwFlags; 
  unsigned int v69; 
  unsigned int v70; 
  INT8 **v71; 
  unsigned int v72; 
  unsigned int v73; 
  _NTSTRSAFE_PWSTR ppszDestEnd[2]; 
  _NTSTRSAFE_PWSTR v75[2]; 
  int v76; 
  int v77; 
  int v78; 
  WCHAR *v79; 
  __int64 v80; 
  WCHAR *v81; 
  UINT64 *v82; 
  __int64 v83[200]; 
  WCHAR pszDest; 
  _WORD pszDest_2[30]; 
  char v86; 

  v9 = Arguments;
  v10 = IgnoreInserts;
  v73 = MaximumWidth;
  v12 = MaximumWidth;
  v13 = Buffer;
  v82 = ReturnLength;
  v14 = Buffer;
  v71 = Arguments;
  v79 = Buffer;
  *(_QWORD *)ppszDestEnd = 0i64;
  *(_QWORD *)v75 = 0i64;
  v69 = 0;
  v15 = (unsigned int)Length >> 1;
  v76 = 37;
  v80 = 8i64;
  v77 = 10;
  v78 = 32;
LABEL_2:
  v16 = 0;
  v70 = 0;
LABEL_3:
  v17 = 0i64;
  while( 1 )
  {
    v18 = *MessageFormat;
    v19 = v14;
    if( !*MessageFormat )
      break;
    ++MessageFormat;
    if( v18 != (_WORD)v76 )
    {
      if( v18 == 13 || v18 == (_WORD)v77 )
      {
        if( v18 == 10 && *MessageFormat == 13 || v18 == 13 && *MessageFormat == 10 )
          ++MessageFormat;
        if( !v12 )
        {
          v15 -= 2;
          if( v15 < 0 )
            return -2147483643;
          *v14 = 13;
          v63 = v14 + 1;
          *v63 = 10;
          v14 = v63 + 1;
          goto LABEL_2;
        }
        v17 = v14;
        v18 = 32;
      }
      if( --v15 < 0 )
        return -2147483643;
      *v14 = v18;
      ++v16;
      ++v14;
      if( v18 != (_WORD)v78 )
        v19 = v17;
      v17 = v19;
      goto LABEL_118;
    }
    v20 = *MessageFormat;
    v21 = (__int64)v14;
    v81 = v14;
    if( (unsigned __int16)(v20 - 49) <= (unsigned __int16)v80 )
    {
      ++MessageFormat;
      v22 = v20 - 48;
      v23 = *MessageFormat;
      v24 = v23;
      if( (unsigned __int16)v23 >= 0x30u && v23 <= 0x39 )
      {
        ++MessageFormat;
        v22 = v23 + 2 * (5 * v22 - 24);
        v25 = *MessageFormat;
        v24 = v25;
        if( (unsigned __int16)v25 >= 0x30u && v25 <= 0x39 )
        {
          ++MessageFormat;
          v22 = v25 + 2 * (5 * v22 - 24);
          v24 = *MessageFormat;
          if( *MessageFormat >= 0x30u && *MessageFormat <= 0x39u )
            return -1073741811;
        }
      }
      v26 = v22 - 1;
      v72 = 0;
      v27 = 0;
      if( v24 == 33 )
      {
        v28 = MessageFormat + 1;
        pszDest = 37;
        v29 = pszDest_2;
        v30 = 0;
        *(_QWORD *)ppszDestEnd = pszDest_2;
        v31 = *v28;
        if( *v28 != 33 )
        {
          v32 = *v28;
          v33 = (char *)pszDest_2;
          while( v32 )
          {
            if( v33 >= &v86 )
              break;
            if( v32 == 42 )
            {
              v34 = v27;
              v32 = v31;
              v72 = ++v27;
              if( v34 > 1 )
                break;
            }
            *v29 = v32;
            ++v28;
            v29 = (WCHAR *)(v33 + 2);
            *(_QWORD *)ppszDestEnd = v33 + 2;
            v33 += 2;
            v31 = *v28;
            v32 = *v28;
            if( *v28 == 33 )
              goto LABEL_21;
          }
          return -1073741811;
        }
LABEL_21:
        MessageFormat = v28 + 1;
        *v29 = 0;
      }
      else
      {
        LODWORD(dwFlags) = 0;
        RtlStringCbCopyExW(&pszDest, 0x40ui64, (WCHAR *)L"%s", (WCHAR **)ppszDestEnd, 0i64, dwFlags);
        v29 = *(WCHAR **)ppszDestEnd;
        v30 = 1;
        v9 = v71;
      }
      if( IgnoreInserts )
      {
        if( v30 == 1 )
          goto LABEL_30;
        v35 = pszDest - 37;
        if( pszDest == 37 )
        {
          v35 = pszDest_2[0] - 115;
          if( pszDest_2[0] == 115 )
            v35 = pszDest_2[1];
        }
        if( !v35 )
LABEL_30:
          v36 = RtlStringCchPrintfExW(v14, v15, (WCHAR **)v75, 0i64, 0i64, (WCHAR *)L"%%%u");
        else
          v36 = RtlStringCchPrintfExW(v14, v15, (WCHAR **)v75, 0i64, 0i64, (WCHAR *)L"%%%u!%s!");
LABEL_73:
        if( v36 < 0 )
          return -2147483643;
        v55 = (__int64)(*(_QWORD *)v75 - (_QWORD)v14) >> 1;
        v15 -= v55;
        if( v15 < 0 )
          return -2147483643;
        v16 = v70;
        v9 = v71;
        v21 = (__int64)v81;
        v13 = v79;
        v12 = v73;
        v10 = IgnoreInserts;
        v14 += (int)v55;
        goto LABEL_102;
      }
      if( !v9 || v27 + (unsigned int)v26 >= 0xC8 )
        return -1073741811;
      if( ArgumentsAreAnsi )
      {
        v37 = (char *)(v29 - 1);
        v38 = *(v29 - 1);
        if( v38 == 99 )
        {
          v39 = *(v29 - 2) - 104;
          if( v39 > 0xFu || (v40 = 32785, !_bittest(&v40, v39)) )
          {
            v41 = 3i64;
            v42 = (char *)L"hc" - v37;
            do
            {
              if( v41 == -2147483643 )
                break;
              v43 = *(_WORD *)&v37[v42];
              if( !v43 )
                break;
              *(_WORD *)v37 = v43;
              v37 += 2;
              --v41;
            }
            while( v41 );
            goto LABEL_50;
          }
        }
        else
        {
          v40 = 32785;
        }
        if( v38 != 115 || (v44 = *(v29 - 2) - 104, v44 <= 0xFu) && _bittest(&v40, v44) )
        {
          if( v38 == 83 )
          {
            *(_WORD *)v37 = 115;
          }
          else if( v38 == 67 )
          {
            *(_WORD *)v37 = 99;
          }
        }
        else
        {
          v41 = 3i64;
          v45 = (char *)L"hs" - v37;
          do
          {
            if( v41 == -2147483643 )
              break;
            v46 = *(_WORD *)&v37[v45];
            if( !v46 )
              break;
            *(_WORD *)v37 = v46;
            v37 += 2;
            --v41;
          }
          while( v41 );
LABEL_50:
          v47 = v37 - 2;
          if( v41 )
            v47 = v37;
          *(_WORD *)v47 = 0;
        }
      }
      v48 = v69;
      if( (unsigned int)v26 >= v69 )
      {
        do
        {
          v49 = v48 + 1;
          if( ArgumentsAreAnArray )
          {
            v50 = (__int64)*v9++;
          }
          else
          {
            *v9 += 8;
            v50 = *((_QWORD *)*v9 - 1);
          }
          v83[v48++] = v50;
        }
        while( v49 <= (unsigned int)v26 );
        v27 = v72;
        v71 = v9;
        v69 = v49;
      }
      *(_QWORD *)ppszDestEnd = v83[v26];
      if( v27 )
      {
        if( ArgumentsAreAnArray )
        {
          v51 = v48++;
          v69 = v48;
          v83[v51] = (__int64)*v9++;
          v71 = v9;
        }
        else
        {
          *v9 += 8;
        }
        if( v27 > 1 )
        {
          v52 = v48;
          v53 = v48 + 1;
          v69 = v53;
          if( ArgumentsAreAnArray )
          {
            v54 = (__int64)*v9;
            v71 = v9 + 1;
          }
          else
          {
            *v9 += 8;
            v69 = v53;
            v54 = *((_QWORD *)*v9 - 1);
          }
          v83[v52] = v54;
        }
      }
      v36 = RtlStringCchPrintfExW(v14, v15, (WCHAR **)v75, 0i64, 0i64, &pszDest);
      goto LABEL_73;
    }
    if( (_WORD)v20 == 48 )
      break;
    if( !(_WORD)v20 )
      return -1073741811;
    switch( v20 )
    {
      case 'r':
        if( --v15 < 0 )
          return -2147483643;
        *v14 = 13;
LABEL_81:
        ++v14;
        ++MessageFormat;
LABEL_103:
        v17 = 0i64;
        v16 = 0;
        goto LABEL_118;
      case 'n':
        v15 -= 2;
        if( v15 < 0 )
          return -2147483643;
        *v14++ = 13;
        *v14 = 10;
        goto LABEL_81;
      case 't':
        if( --v15 < 0 )
          return -2147483643;
        if( (v16 & 7) != 0 )
          v16 = (v16 + 7) & 0xFFFFFFF8;
        else
          v16 += 8;
        v56 = 9;
LABEL_91:
        v17 = v14;
        goto LABEL_92;
      case 'b':
        if( --v15 < 0 )
          return -2147483643;
        v56 = 32;
        goto LABEL_91;
    }
    if( !v10 )
    {
      if( --v15 < 0 )
        return -2147483643;
      *v14 = v20;
      goto LABEL_101;
    }
    v15 -= 2;
    if( v15 < 0 )
      return -2147483643;
    *v14++ = 37;
    v56 = *MessageFormat;
LABEL_92:
    *v14 = v56;
LABEL_101:
    ++v14;
    ++MessageFormat;
LABEL_102:
    if( !v21 )
      goto LABEL_103;
    v16 += ((__int64)v14 - v21) >> 1;
LABEL_118:
    v70 = v16;
    if( v12 && v12 != -1 && v16 >= v12 )
    {
      if( v17 )
      {
        v57 = v17;
        do
        {
          if( *v57 != 32 && *v57 != 9 )
            break;
          ++v57;
        }
        while( v57 != v14 );
        if( v17 > v13 )
        {
          do
          {
            v58 = v17 - 1;
            v59 = *(v17 - 1);
            if( v59 != 32 && v59 != 9 )
              break;
            --v17;
          }
          while( v58 > v13 );
        }
        v60 = v57 - v17;
        if( (_DWORD)v60 == 1 )
        {
          if( --v15 >= 0 )
            goto LABEL_135;
          return -2147483643;
        }
        if( (unsigned int)v60 > 2 )
          v15 = v60 + v15 - 2;
LABEL_135:
        v16 = v14 - v57;
        v70 = v16;
        memmove(v17 + 2, v57, 2 * v16);
        v12 = v73;
        *v17 = 13;
        v61 = v17 + 1;
        *v61 = 10;
        v62 = &v61[v16];
      }
      else
      {
        v15 -= 2;
        if( v15 < 0 )
          return -2147483643;
        *v14 = 13;
        v62 = v14 + 1;
        v16 = 0;
        v70 = 0;
        *v62 = 10;
      }
      v9 = v71;
      v14 = v62 + 1;
      v13 = v79;
      v10 = IgnoreInserts;
      goto LABEL_3;
    }
  }
  if( v15 < 1 )
    return -2147483643;
  v65 = v82;
  *v14 = 0;
  if( v65 )
    *(_DWORD *)v65 = 2 * (((char *)v14 - (char *)v13 + 2) >> 1);
  return 0;
}

Referenced by:

PiGetDeviceRegProperty
PiGetDeviceRegistryProperty
RtlFormatMessage