RtlpUpcaseUnicodeStringPrivate

NTSTATUS __stdcall RtlpUpcaseUnicodeStringPrivate(
        _UNICODE_STRING *DestinationString,
        _UNICODE_STRING *SourceString,
        UINT8 AllocateDestinationString){
  unsigned int Length; 
  VOID **PoolWithTag; 
  unsigned int v7; 
  unsigned int v8; 
  UINT16 v9; 
  __int64 v10; 
  int v11; 

  Length = SourceString->Length;
  DestinationString->MaximumLength = Length;
  PoolWithTag = ExAllocatePoolWithTag(0x200ui64, Length, 1735554131i64);
  DestinationString->Buffer = (wchar_t *)PoolWithTag;
  v7 = 0;
  if( !PoolWithTag )
    return -1073741801;
  v8 = SourceString->Length >> 1;
  while( v7 < v8 )
  {
    v9 = NLS_UPCASE(SourceString->Buffer[v7]);
    DestinationString->Buffer[v10] = v9;
    v7 = v11 + 1;
  }
  DestinationString->Length = SourceString->Length;
  return 0;
}

Referenced by:

RtlAreNamesEqual
RtlIsNameInExpression
RtlIsNameInUnUpcasedExpression