AuthzBasepCompareUnicodeStringCaseSensitive

NTSTATUS __stdcall AuthzBasepCompareUnicodeStringCaseSensitive(UNICODE_STRING *String1, UNICODE_STRING *String2){
  int Length; 
  int v3; 
  __int64 v4; 
  wchar_t *Buffer; 
  wchar_t *v6; 
  char *v7; 
  int v8; 
  int v9; 
  Length = String1->Length;
  v3 = String2->Length;
  v4 = String1->Length;
  Buffer = String1->Buffer;
  if( (unsigned __int16)Length >= (unsigned __int16)v3 )
    v4 = String2->Length;
  v6 = (wchar_t *)((char *)Buffer + v4);
  if( Buffer >= v6 )
    return Length - v3;
  v7 = (char *)((char *)String2->Buffer - (char *)Buffer);
  while( 1 )
  {
    v8 = *Buffer;
    v9 = *(unsigned __int16 *)((char *)Buffer + (_QWORD)v7);
    if( (_WORD)v8 != (_WORD)v9 )
      break;
    if( ++Buffer >= v6 )
      return Length - v3;
  }
  return v8 - v9;
}

Referenced by:

AuthzBasepCompareUnicodeStringOperands