DmrCheckPathMatch
CHAR __fastcall DmrCheckPathMatch(CHAR *a1, CHAR *a2){
CHAR v2;
CHAR v3;
CHAR v6;
char v7;
unsigned int v8;
unsigned int v9;
bool v10;
unsigned int v11;
CHAR *v12;
signed __int64 v13;
v2 = *a1;
v3 = 0;
if( (unsigned __int8)(*a1 - 1) <= 1u )
{
v6 = *a2;
if( (unsigned __int8)(*a2 - 1) <= 1u && a1[5] == a2[5] )
{
v7 = 0;
if( v2 == 1 && v6 == 1 )
v7 = 1;
v8 = ((unsigned int)(unsigned __int8)a1[1] - 6) >> 1;
v9 = ((unsigned int)(unsigned __int8)a2[1] - 6) >> 1;
if( !v7 || v8 == v9 )
{
v10 = v9 < v8;
if( v9 > v8 )
{
if( v2 == 1 && v6 == 2 )
return v3;
v10 = v9 < v8;
}
if( !v10 || v6 != 1 || v2 != 2 )
{
v11 = 0;
if( v8 >= v9 )
v8 = ((unsigned int)(unsigned __int8)a2[1] - 6) >> 1;
if( v8 )
{
v12 = a2 + 6;
v13 = a1 - a2;
while( v12[v13] == *v12 && v12[v13 + 1] == v12[1] )
{
++v11;
v12 += 2;
if( v11 >= v8 )
return 1;
}
}
else
{
return 1;
}
}
}
}
}
return v3;
}Referenced by:
DmrEnumerateRmrrDomains
DmrFindDrhdForDeviceScope
DmrValidateDeviceScope