PopInitializeIrpWorkers

INT64 __fastcall PopInitializeIrpWorkers(){
  INT64 result; 
  int v1; 
  PopCreateIrpWorkerAllowed = 1;
  qword_140C20A68 = (__int64)&PopIrpThreadList;
  PopIrpThreadList = (__int64)&PopIrpThreadList;
  qword_140C23228 = (__int64)&PopIrpWorkerList;
  PopIrpWorkerList = (__int64)&PopIrpWorkerList;
  PopIrpWorkerSemaphore.Header.WaitListHead.Blink = &PopIrpWorkerSemaphore.Header.WaitListHead;
  PopIrpWorkerSemaphore.Header.WaitListHead.Flink = &PopIrpWorkerSemaphore.Header.WaitListHead;
  PopIrpWorkerControlEvent.Header.WaitListHead.Blink = &PopIrpWorkerControlEvent.Header.WaitListHead;
  PopIrpWorkerControlEvent.Header.WaitListHead.Flink = &PopIrpWorkerControlEvent.Header.WaitListHead;
  PopIrpWorkerMutex.Event.Header.WaitListHead.Blink = &PopIrpWorkerMutex.Event.Header.WaitListHead;
  PopIrpWorkerMutex.Event.Header.WaitListHead.Flink = &PopIrpWorkerMutex.Event.Header.WaitListHead;
  PopIrpWorkerCount = 0;
  PopIrpWorkerInFlightCount = 0;
  PopIrpWorkerPendingCount = 0;
  PopIrpWorkerRequested = 0;
  PopIrpWorkerSemaphore.Header.Type = 5;
  PopIrpWorkerSemaphore.Header.Size = 8;
  PopIrpWorkerSemaphore.Header.SignalState = 0;
  PopIrpWorkerSemaphore.Limit = 0x7FFFFFFF;
  LOWORD(PopIrpWorkerControlEvent.Header.Lock) = 1;
  PopIrpWorkerControlEvent.Header.Size = 6;
  PopIrpWorkerControlEvent.Header.SignalState = 0;
  PopIrpWorkerMutex.Count = 1;
  PopIrpWorkerMutex.Owner = 0i64;
  PopIrpWorkerMutex.Contention = 0;
  LOWORD(PopIrpWorkerMutex.Event.Header.Lock) = 1;
  PopIrpWorkerMutex.Event.Header.Size = 6;
  PopIrpWorkerMutex.Event.Header.SignalState = 0;
  ExInitializeNPagedLookasideListInternal((__int64)PopDynamicIrpWorkerLookaside, 0i64, 0i64, 512, 8, 1917415248, 0, 0);
  LODWORD(result) = PopCreatePowerThread(PopIrpWorkerControl, 0i64);
  if( (int)result >= 0 )
  {
    PopIrpWorkerPendingCount = 2;
    v1 = 0;
    while( 1 )
    {
      LODWORD(result) = PopCreatePowerThread((KSTART_ROUTINE *)PopIrpWorker, 0i64);
      if( (int)result < 0 )
        break;
      if( (unsigned int)++v1 >= 2 )
        return 0i64;
    }
  }
  return result;
}

Referenced by:

PoInitSystem