ExpWorkQueueManagerInitialize

UINT64 __fastcall ExpWorkQueueManagerInitialize(INT64 a1, INT64 a2, INT64 a3){
  __int16 v6; 
  UINT64 result; 
  struct _GROUP_AFFINITY Affinity; 
  Affinity = 0i64;
  memset(a1 + 16, 0i64);
  *(_QWORD *)a1 = a2;
  *(_QWORD *)(a1 + 8) = a3;
  KeInitializeEvent((_KEVENT *)(a1 + 16), SynchronizationEvent, 0);
  KeInitializeTimerEx((PKTIMER)(a1 + 40), SynchronizationTimer);
  KeInitializeEvent((_KEVENT *)(a1 + 104), SynchronizationEvent, 0);
  KeInitializeTimer2(a1 + 128, (INT64)ExpWorkQueueManagerReaperTimer, a1, 8i64);
  KeQueryNodeActiveAffinity(*(_WORD *)(*(_QWORD *)(a1 + 8) + 146i64), &Affinity, 0i64);
  v6 = 0;
  result = (0x101010101010101i64
          * ((((Affinity.Mask - ((Affinity.Mask >> 1) & 0x5555555555555555i64)) & 0x3333333333333333i64)
            + (((Affinity.Mask - ((Affinity.Mask >> 1) & 0x5555555555555555i64)) >> 2) & 0x3333333333333333i64)
            + ((((Affinity.Mask - ((Affinity.Mask >> 1) & 0x5555555555555555i64)) & 0x3333333333333333i64)
              + (((Affinity.Mask - ((Affinity.Mask >> 1) & 0x5555555555555555i64)) >> 2) & 0x3333333333333333i64)) >> 4)) & 0xF0F0F0F0F0F0F0Fi64)) >> 56;
  if( (_BYTE)result )
  {
    result = KeSelectIdealProcessor(*(_KNODE **)(a1 + 8), &Affinity, 0i64);
    v6 = result;
  }
  *(_WORD *)(a1 + 276) = v6;
  return result;
}

Referenced by:

ExpPartitionInitialize