WmipFindMRByNames
_QWORD *__fastcall WmipFindMRByNames(__int64 a1, __int64 a2){
_QWORD *v4;
unsigned __int16 *v5;
__int64 v6;
int v7;
int v8;
unsigned __int16 *v10;
__int64 v11;
int v12;
int v13;
KeWaitForSingleObject(&WmipSMMutex, Executive, 0, 0, 0i64);
v4 = *(_QWORD **)WmipMRHeadPtr;
if( *(_QWORD *)WmipMRHeadPtr == WmipMRHeadPtr )
{
LABEL_7:
v4 = 0i64;
}
else
{
while( 1 )
{
v5 = (unsigned __int16 *)v4[5];
v6 = a1 - (_QWORD)v5;
do
{
v7 = *(unsigned __int16 *)((char *)v5 + v6);
v8 = *v5 - v7;
if( v8 )
break;
++v5;
}
while( v7 );
if( !v8 )
{
v10 = (unsigned __int16 *)v4[6];
v11 = a2 - (_QWORD)v10;
do
{
v12 = *(unsigned __int16 *)((char *)v10 + v11);
v13 = *v10 - v12;
if( v13 )
break;
++v10;
}
while( v12 );
if( !v13 )
break;
}
v4 = (_QWORD *)*v4;
if( v4 == (_QWORD *)WmipMRHeadPtr )
goto LABEL_7;
}
WmipReferenceEntry((UINT64)v4);
}
KeReleaseMutex(&WmipSMMutex, 0);
return v4;
}Referenced by:
WmipAddMofResource