RtlIsValidOemCharacter

INT8 __fastcall RtlIsValidOemCharacter(UINT16 *a1){
  char IsUtf8Process; 
  __int64 v3; 
  UINT16 v4; 
  __int64 v5; 
  __int16 v6; 
  unsigned __int64 v7; 
  __int64 v8; 
  __int64 v9; 
  __int64 v10; 
  __int64 v11; 

  IsUtf8Process = RtlpIsUtf8Process(1);
  v3 = *a1;
  if( IsUtf8Process != 1 )
  {
    if( (_BYTE)NlsMbOemCodePageTag )
    {
      v7 = *(unsigned __int16 *)(NlsUnicodeToMbOemData + 2 * v3);
      v8 = (unsigned __int8)v7;
      v9 = (unsigned __int16)NlsOemLeadByteInfoTable[v7 >> 8];
      if( (_WORD)v9 )
      {
        v10 = NlsMbOemCodePageTables;
        v8 += v9;
      }
      else
      {
        v10 = NlsOemToUnicodeData;
      }
      v4 = NLS_UPCASE(*(_WORD *)(v10 + 2 * v8));
      v6 = *(_WORD *)(v11 + 2i64 * v4);
    }
    else
    {
      v4 = NLS_UPCASE(*(_WORD *)(NlsOemToUnicodeData + 2i64 * *(unsigned __int8 *)(v3 + NlsUnicodeToOemData)));
      v6 = *(char *)(v4 + v5);
    }
    if( v6 != OemDefaultChar )
    {
      *a1 = v4;
      return 1;
    }
    return 0;
  }
  if( (unsigned int)v3 > 0x7F )
    return 0;
  *a1 = NLS_UPCASE(v3);
  return 1;
}

Referenced by:

GetNextWchar