PnpIsRangeWithin

__int64 __fastcall PnpIsRangeWithin(_CM_PARTIAL_RESOURCE_DESCRIPTOR *a1, _CM_PARTIAL_RESOURCE_DESCRIPTOR *a2){
  unsigned int v2; 
  ULONGLONG HighPart; 
  unsigned __int64 LowPart; 
  unsigned __int64 v7; 
  unsigned __int64 v8; 
  ULONGLONG v10; 
  ULONGLONG v11; 
  unsigned __int64 Start; 
  unsigned __int64 v13; 

  v2 = 0;
  Start = 0i64;
  v13 = 0i64;
  switch( a1->Type )
  {
    case 1u:
      goto LABEL_13;
    case 2u:
      HighPart = (unsigned int)a1->u.Start.anonymous_0.HighPart;
      LowPart = (unsigned int)a2->u.Start.anonymous_0.HighPart;
LABEL_4:
      v7 = HighPart;
      v8 = LowPart;
LABEL_5:
      if( HighPart > LowPart || v7 < v8 )
        return v2;
      break;
    case 3u:
      goto LABEL_13;
    case 4u:
      HighPart = a1->u.Start.anonymous_0.LowPart;
      LowPart = a2->u.Start.anonymous_0.LowPart;
      goto LABEL_4;
    case 6u:
      v7 = a1->u.Start.anonymous_0.LowPart;
      HighPart = (unsigned int)(v7 + a1->u.Start.anonymous_0.HighPart - 1);
      v8 = a2->u.Start.anonymous_0.LowPart;
      LowPart = (unsigned int)(v8 + a2->u.Start.anonymous_0.HighPart - 1);
      goto LABEL_5;
    case 7u:
LABEL_13:
      v10 = RtlCmDecodeMemIoResource(a1, &Start);
      v7 = Start;
      HighPart = v10 + Start - 1;
      v11 = RtlCmDecodeMemIoResource(a2, &v13);
      v8 = v13;
      LowPart = v13 + v11 - 1;
      goto LABEL_5;
  }
  if( a1->ShareDisposition == a2->ShareDisposition && a1->Flags == a2->Flags )
    return 1;
  return v2;
}

Referenced by:

PnpNeedToReleaseBootResources