PopFxInitializeWorkPool

NTSTATUS __stdcall PopFxInitializeWorkPool(VOID *Context, INT64 a2){
  __int64 v4; 
  _KSEMAPHORE *v5; 
  _QWORD *v6; 
  __int64 v7; 

  memset((char *)Context + 24, 0i64, 0x118u);
  *((_QWORD *)Context + 1) = 0i64;
  *(_QWORD *)Context = a2;
  v4 = 2i64;
  *((_QWORD *)Context + 3) = (char *)Context + 16;
  v5 = (_KSEMAPHORE *)((char *)Context + 32);
  *((_QWORD *)Context + 2) = (char *)Context + 16;
  do
  {
    KeInitializeSemaphore(v5++, 0, 0x7FFFFFFF);
    --v4;
  }
  while( v4 );
  v6 = (char *)Context + 136;
  v7 = 4i64;
  do
  {
    *(v6 - 4) = Context;
    *(v6 - 3) = 0i64;
    *(v6 - 1) = PopFxPluginWork;
    *v6 = v6 - 4;
    v6 += 5;
    --v7;
  }
  while( v7 );
  return PopFxCreateEmergencyWorkerThread(Context);
}

Referenced by:

PoFxInitPowerManagement
PopFxRegisterPluginEx