PnpIsRangeWithin
UINT64 __stdcall PnpIsRangeWithin(_CM_PARTIAL_RESOURCE_DESCRIPTOR *Inner, _CM_PARTIAL_RESOURCE_DESCRIPTOR *Outer){
unsigned int v2;
unsigned __int64 v5;
UINT64 v6;
unsigned __int64 v7;
UINT64 v8;
UINT64 v10;
UINT64 v11;
unsigned __int64 Start;
UINT64 v13;
v2 = 0;
Start = 0i64;
v13 = 0i64;
switch( *(_BYTE *)Inner )
{
case 1:
goto LABEL_13;
case 2:
v5 = *((unsigned int *)Inner + 2);
v6 = *((unsigned int *)Outer + 2);
LABEL_4:
v7 = v5;
v8 = v6;
LABEL_5:
if( v5 > v6 || v7 < v8 )
return v2;
break;
case 3:
goto LABEL_13;
case 4:
v5 = *((unsigned int *)Inner + 1);
v6 = *((unsigned int *)Outer + 1);
goto LABEL_4;
case 6:
v7 = *((unsigned int *)Inner + 1);
v5 = (unsigned int)(v7 + *((_DWORD *)Inner + 2) - 1);
v8 = *((unsigned int *)Outer + 1);
v6 = (unsigned int)(v8 + *((_DWORD *)Outer + 2) - 1);
goto LABEL_5;
case 7:
LABEL_13:
v10 = RtlCmDecodeMemIoResource(Inner, &Start);
v7 = Start;
v5 = v10 + Start - 1;
v11 = RtlCmDecodeMemIoResource(Outer, &v13);
v8 = v13;
v6 = v13 + v11 - 1;
goto LABEL_5;
}
if( *((_BYTE *)Inner + 1) == *((_BYTE *)Outer + 1) && *((_WORD *)Inner + 1) == *((_WORD *)Outer + 1) )
return 1;
return v2;
}Referenced by:
PnpNeedToReleaseBootResources