RtlFormatMessageEx

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

Referenced by:

PiGetDeviceRegProperty
PiGetDeviceRegistryProperty
RtlFormatMessage