RtlpUpcaseUnicodeStringPrivate

NTSTATUS __stdcall RtlpUpcaseUnicodeStringPrivate(UNICODE_STRING *DestinationString, UNICODE_STRING *SourceString){
  unsigned int Length; 
  wchar_t *PoolWithTag; 
  unsigned int v6; 
  unsigned int v7; 
  UINT16 v8; 
  __int64 v9; 
  int v10; 
  Length = SourceString->Length;
  DestinationString->MaximumLength = Length;
  PoolWithTag = (wchar_t *)ExAllocatePoolWithTag(NonPagedPoolNx, Length, 0x67727453ui64);
  DestinationString->Buffer = PoolWithTag;
  v6 = 0;
  if( !PoolWithTag )
    return -1073741801;
  v7 = SourceString->Length >> 1;
  while( v6 < v7 )
  {
    v8 = NLS_UPCASE(SourceString->Buffer[v6]);
    DestinationString->Buffer[v9] = v8;
    v6 = v10 + 1;
  }
  DestinationString->Length = SourceString->Length;
  return 0;
}

Referenced by:

RtlAreNamesEqual
RtlIsNameInExpression
RtlIsNameInUnUpcasedExpression