PopWakeInfoDereference

unsigned __int64 __fastcall PopWakeInfoDereference(__int64 a1){
  unsigned __int64 result; 
  _WORK_QUEUE_ITEM *v3; 

  result = (unsigned int)_InterlockedExchangeAdd((volatile signed __int32 *)(a1 + 16), 0xFFFFFFFF);
  if( (_DWORD)result == 1 )
  {
    v3 = (_WORK_QUEUE_ITEM *)(a1 + 48);
    v3->Parameter = (void *)a1;
    v3->List.Flink = 0i64;
    v3->WorkerRoutine = (void(__fastcall *)(void *))PopFreeWakeInfo;
    return(unsigned __int64)ExQueueWorkItem(v3, DelayedWorkQueue);
  }
  return result;
}

Referenced by:

PopDereferenceWakeInfos
PopNewWakeInfo
PopTimeoutWakeTracking
PopUpdateWakeSourceWorker