PnpProcessAssignResourcesWorker

INT64 __fastcall PnpProcessAssignResourcesWorker(
        _DEVICE_NODE *DeviceNode,
        _PNP_ASSIGN_RESOURCES_CONTEXT *ResourceContext){
  INT64 v2; 
  _DEVICE_NODE *i; 
  _DEVICE_NODE *v6; 
  unsigned __int64 v7; 
  __int64 v9; 
  for( i = DeviceNode; ; i = v6 )
  {
    if( ResourceContext->IncludeFailedDevices )
    {
      if( (*((_DWORD *)i + 99) & 0x2000) != 0 )
      {
        v7 = *((unsigned int *)i + 101);
        if( (unsigned int)v7 <= 0x24 )
        {
          v9 = 0x1200001000i64;
          if( _bittest64(&v9, v7) )
            PipClearDevNodeProblem((INT64)i, (const WCHAR *)ResourceContext, v2);
        }
      }
    }
    if( (*((_DWORD *)i + 99) & 0x6000) == 0 && *((_DWORD *)i + 75) == 771 )
      ResourceContext->DeviceList[ResourceContext->DeviceCount++] = (_DEVICE_OBJECT *)*((_QWORD *)i + 4);
    v6 = (_DEVICE_NODE *)*((_QWORD *)i + 1);
    if( !v6 )
      break;
LABEL_9:
    ;
  }
  while( i != DeviceNode )
  {
    v6 = *(_DEVICE_NODE **)i;
    if( *(_QWORD *)i )
      goto LABEL_9;
    if( *((_QWORD *)i + 2) )
      i = (_DEVICE_NODE *)*((_QWORD *)i + 2);
  }
  return 0i64;
}

Referenced by:

PnpProcessAssignResources