RtlUpcaseUnicodeToMultiByteN

NTSTATUS __stdcall RtlUpcaseUnicodeToMultiByteN(
        PSTR MultiByteString,
        UINT64 MaxBytesInMultiByteString,
        UINT64 *BytesInMultiByteString,
        PWCHAR UnicodeString,
        UINT64 BytesInUnicodeString){
  UINT32 v8; 
  UINT64 a5; 
  v8 = MaxBytesInMultiByteString;
  if( RtlpIsUtf8Process(0) )
    return UpcaseUnicodeToUTF8NHelper(MultiByteString, v8, (INT64)BytesInMultiByteString);
  LODWORD(a5) = (unsigned int)BytesInUnicodeString >> 1;
  if( (_BYTE)NlsMbCodePageTag )
    return UpcaseUnicodeToMultiByteNHelper((INT64)MultiByteString, v8, BytesInMultiByteString, UnicodeString, a5);
  else
    return UpcaseUnicodeToSingleByteNHelper(
             (INT64)MultiByteString,
             v8,
             BytesInMultiByteString,
             UnicodeString,
             a5,
             NlsUnicodeToAnsiData,
             NlsAnsiToUnicodeData);
}

Referenced by:

RtlUpcaseUnicodeStringToAnsiString
toupper