VrpComparePath
NTSTATUS __stdcall VrpComparePath(UNICODE_STRING *Path1, UNICODE_STRING *Path2, UINT64 *MatchedTokens){
UINT64 v3;
int v4;
int v8;
unsigned int v9;
wchar_t *Str2[2];
wchar_t *Str1[2];
UINT64 Position;
UINT64 v14;
Position = 0i64;
*(_OWORD *)Str1 = 0i64;
v3 = 0i64;
v4 = 0;
*(_OWORD *)Str2 = 0i64;
v14 = 0i64;
while( 1 )
{
VrpGetNextToken(Path1, &Position, (UNICODE_STRING *)Str1);
VrpGetNextToken(Path2, &v14, (UNICODE_STRING *)Str2);
v8 = LOWORD(Str1[0]);
if( !LOWORD(Str1[0]) && !LOWORD(Str2[0]) )
break;
v9 = LOWORD(Str1[0]);
if( LOWORD(Str1[0]) >= LOWORD(Str2[0]) )
v9 = LOWORD(Str2[0]);
v4 = wcsnicmp(Str1[1], Str2[1], (unsigned __int64)v9 >> 1);
if( v4 )
goto LABEL_8;
v4 = v8 - LOWORD(Str2[0]);
if( v8 != LOWORD(Str2[0]) )
{
if( !(_WORD)v8 || LOWORD(Str2[0]) )
{
LABEL_8:
v3 = 0i64;
break;
}
break;
}
++v3;
}
if( MatchedTokens )
*MatchedTokens = v3;
return v4;
}Referenced by:
VrpFindNamespaceNode