RtlUnicodeToMultiByteSize

NTSTATUS __stdcall RtlUnicodeToMultiByteSize(
        UINT64 *BytesInMultiByteString,
        WCHAR *UnicodeString,
        UINT64 BytesInUnicodeString){
  unsigned int v4; 
  unsigned int v6; 
  unsigned int v7; 
  __int64 v9; 
  UINT64 UnicodeStringByteCount; 

  v4 = BytesInUnicodeString;
  v6 = 0;
  if( RtlpIsUtf8Process(0) )
  {
    if( v4 )
    {
      LODWORD(UnicodeStringByteCount) = v4;
      RtlUnicodeToUTF8N(0i64, 0i64, (PULONG)BytesInMultiByteString, UnicodeString, UnicodeStringByteCount);
    }
    else
    {
      *(_DWORD *)BytesInMultiByteString = 0;
    }
  }
  else
  {
    v7 = v4 >> 1;
    if( (_BYTE)NlsMbCodePageTag )
    {
      for( ; v7; --v7 )
      {
        v9 = *UnicodeString++;
        v6 += (HIBYTE(*(_WORD *)(NlsUnicodeToMbAnsiData + 2 * v9)) != 0) + 1;
      }
    }
    else
    {
      v6 = v7;
    }
    *(_DWORD *)BytesInMultiByteString = v6;
  }
  return 0;
}

Referenced by:

RtlUnicodeStringToAnsiString
RtlxUnicodeStringToAnsiSize
RtlxUnicodeStringToOemSize
wcstombs