PnpNeedToReleaseBootResources

__int64 __fastcall PnpNeedToReleaseBootResources(__int64 a1, _DWORD *a2, _DWORD *a3){
  unsigned int v3; 
  _DWORD *v4; 
  unsigned int v5; 
  _CM_PARTIAL_RESOURCE_DESCRIPTOR *v6; 
  unsigned int v7; 
  _CM_PARTIAL_RESOURCE_DESCRIPTOR *v8; 
  unsigned int v9; 
  unsigned __int8 Type; 
  __int64 LowPart; 
  unsigned int v12; 
  _CM_PARTIAL_RESOURCE_DESCRIPTOR *v13; 
  ULONG v14; 
  int v15; 
  unsigned int v17; 
  unsigned int Length; 
  unsigned int v19; 
  _DWORD *v20; 
  int v22; 

  v20 = a2;
  v3 = 0;
  *a3 = 0;
  if( *a2 != 1 )
    return v3;
  v4 = *(_DWORD **)(a1 + 544);
  if( !v4 )
    return v3;
  v5 = *v4;
  if( !*v4 )
    return v3;
  v6 = (_CM_PARTIAL_RESOURCE_DESCRIPTOR *)(v4 + 1);
  v7 = 0;
  if( !v5 )
    return v3;
  while( 1 )
  {
    v8 = v6 + 1;
    v9 = 0;
    Length = v6->u.Length;
    if( Length )
      break;
LABEL_22:
    ++v7;
    v6 = v8;
    if( v7 >= v5 )
      return v3;
  }
  while( 1 )
  {
    Type = v8->Type;
    LowPart = 0i64;
    if( !v8->Type )
      goto LABEL_21;
    if( Type != 5 )
      break;
    LowPart = v8->u.Start.anonymous_0.LowPart;
LABEL_21:
    ++v9;
    v8 = (_CM_PARTIAL_RESOURCE_DESCRIPTOR *)((char *)v8 + LowPart + 20);
    if( v9 >= Length )
      goto LABEL_22;
  }
  if( Type >= 8u )
    goto LABEL_21;
  v12 = 0;
  v22 = 0;
  v19 = 0;
  v17 = a2[4];
  if( !v17 )
    return 1;
  v13 = (_CM_PARTIAL_RESOURCE_DESCRIPTOR *)(a2 + 5);
  while( 1 )
  {
    v14 = 0;
    if( v13->Type == 5 )
    {
      v14 = v13->u.Start.anonymous_0.LowPart;
      goto LABEL_15;
    }
    if( Type == v13->Type )
      break;
LABEL_15:
    ++v12;
    v13 = (_CM_PARTIAL_RESOURCE_DESCRIPTOR *)((char *)v13 + v14 + 20);
    v19 = v12;
    if( v12 >= v17 )
    {
      v15 = 1;
      goto LABEL_18;
    }
  }
  v22 = 1;
  if( !(unsigned int)PnpIsRangeWithin(v8, v13) )
  {
    v12 = v19;
    goto LABEL_15;
  }
  v15 = 0;
LABEL_18:
  if( !v22 )
    return 1;
  if( !v15 )
  {
    a2 = v20;
    LowPart = 0i64;
    goto LABEL_21;
  }
  *a3 = 1;
  return v3;
}

Referenced by:

IopReleaseFilteredBootResources