PnpFreeResourceRequirementsForAssignTable

VOID __stdcall PnpFreeResourceRequirementsForAssignTable(
        _PNP_RESOURCE_REQUEST *RequestTable,
        _PNP_RESOURCE_REQUEST *RequestTableEnd){
  void **p_ReqList; 
  unsigned __int64 v3; 
  void *v4; 
  if( RequestTable < RequestTableEnd )
  {
    p_ReqList = &RequestTable->ReqList;
    v3 = ((unsigned __int64)((char *)RequestTableEnd - (char *)RequestTable - 1) >> 6) + 1;
    do
    {
      IopFreeReqList(*p_ReqList);
      *p_ReqList = 0i64;
      if( (*(_DWORD *)(p_ReqList - 3) & 0x200) != 0 )
      {
        v4 = *(p_ReqList - 1);
        if( v4 )
        {
          ExFreePoolWithTag(v4, 0);
          *(p_ReqList - 1) = 0i64;
        }
      }
      p_ReqList += 8;
      --v3;
    }
    while( v3 );
  }
}

Referenced by:

PnpAllocateResources
PnpGetResourceRequirementsForAssignTable
PnpReallocateResources
PnpRebalance
PnpRestoreResourcesInternal