RtlpDidUnicodeToOemWork
UINT8 __stdcall RtlpDidUnicodeToOemWork(
_STRING *OemString,
_UNICODE_STRING *UnicodeString,
INT64 a3,
INT64 a4,
WCHAR *a5,
UINT64 a6,
UINT64 *a7,
UINT64 a8){
UINT8 v9;
unsigned int Length;
int v12;
unsigned int v14;
int v15;
char *Buffer;
__int64 v17;
__int64 v18;
bool v19;
v9 = 1;
if( !RtlpIsUtf8Process(1) )
{
Length = OemString->Length;
if( (_BYTE)NlsMbOemCodePageTag )
{
v14 = 0;
v15 = 0;
if( !OemString->Length )
return v9;
Buffer = OemString->Buffer;
while( 1 )
{
v17 = (unsigned __int8)Buffer[v14];
if( NlsOemLeadByteInfoTable[v17] && (v18 = v14 + 1, (unsigned int)v18 < Length) )
{
++v14;
v19 = ((char)v17 << 8) + (unsigned __int8)Buffer[v18] == OemDefaultChar;
}
else
{
v19 = (char)v17 == (unsigned __int8)OemDefaultChar;
}
if( v19 && UnicodeString->Buffer[v15] != OemTransUniDefaultChar )
break;
++v14;
++v15;
if( v14 >= Length )
return v9;
}
return 0;
}
v12 = 0;
if( OemString->Length )
{
while( OemString->Buffer[v12] != (unsigned __int8)OemDefaultChar
|| UnicodeString->Buffer[v12] == OemTransUniDefaultChar )
{
if( ++v12 >= Length )
return v9;
}
return 0;
}
}
return v9;
}Referenced by:
RtlUnicodeStringToCountedOemString
RtlUpcaseUnicodeStringToCountedOemString
RtlUpcaseUnicodeStringToOemString