RtlpIsUtf8Process

BOOL __fastcall RtlpIsUtf8Process(CHAR a1){
  __int64 v1; 
  __int64 v2; 
  if( a1 )
    LODWORD(v1) = (unsigned __int8)NlsOemCodePageIsUTF8;
  else
    LODWORD(v1) = (unsigned __int8)NlsActiveCodePageIsUTF8;
  if( (_DWORD)v1 )
  {
    LOBYTE(v1) = 1;
    return v1;
  }
  v1 = *((_QWORD *)KeGetCurrentThread() + 23);
  v2 = *(_QWORD *)(v1 + 1360);
  if( !v2 )
  {
    LODWORD(v1) = 0;
    return v1;
  }
  if( a1 )
  {
    if( !*(_QWORD *)(v2 + 168) )
    {
      LOBYTE(v1) = 1;
      return v1;
    }
  }
  else if( !*(_QWORD *)(v2 + 160) )
  {
    LOBYTE(v1) = 1;
    return v1;
  }
  LOBYTE(v1) = 0;
  return v1;
}

Referenced by:

RtlAnsiCharToUnicodeChar
RtlIsValidOemCharacter
RtlMultiByteToUnicodeN
RtlMultiByteToUnicodeSize
RtlOemToUnicodeN
RtlUnicodeToMultiByteN
RtlUnicodeToMultiByteSize
RtlUnicodeToOemN
RtlUpcaseUnicodeToMultiByteN
RtlUpcaseUnicodeToOemN
RtlUpperChar
RtlUpperString
RtlpDidUnicodeToOemWork