RtlUpcaseUnicodeToMultiByteN

NTSTATUS __stdcall RtlUpcaseUnicodeToMultiByteN(
        PCHAR MultiByteString,
        UINT64 MaxBytesInMultiByteString,
        PULONG BytesInMultiByteString,
        WCHAR *UnicodeString,
        UINT64 BytesInUnicodeString){
  UINT32 v8; 
  UINT64 v10; 

  v8 = MaxBytesInMultiByteString;
  if( RtlpIsUtf8Process(0) )
    return UpcaseUnicodeToUTF8NHelper(MultiByteString, v8, (INT64)BytesInMultiByteString);
  if( (_BYTE)NlsMbCodePageTag )
    return UpcaseUnicodeToMultiByteNHelper(
             (int)MultiByteString,
             v8,
             BytesInMultiByteString,
             UnicodeString,
             (unsigned int)BytesInUnicodeString >> 1);
  LODWORD(v10) = (unsigned int)BytesInUnicodeString >> 1;
  return UpcaseUnicodeToSingleByteNHelper(
           (INT64)MultiByteString,
           v8,
           (UINT64 *)BytesInMultiByteString,
           UnicodeString,
           v10,
           NlsUnicodeToAnsiData,
           NlsAnsiToUnicodeData);
}

Referenced by:

RtlUpcaseUnicodeStringToAnsiString
toupper