PopPowerRequestInit

INT64 __fastcall PopPowerRequestInit(){
  WCHAR v0; 
  int v1; 
  struct _UNICODE_STRING DestinationString; 
  __int16 result; 
  char result_2; 
  int v6; 
  __int128 v7; 
  int v8; 
  int v9; 
  int v10; 
  void(__fastcall *v11)(__int64, void *, __int64, __int64); 
  VOID(__stdcall *v12)(PVOID); 
  qword_140C24D18 = 0i64;
  PopPowerRequestLock = 0i64;
  DestinationString = 0i64;
  PopPowerRequestSpinLock = 0i64;
  PopPowerRequestObjectCount = 0i64;
  PopSpecialPowerRequestObjectCount = 0i64;
  memset((INT64)&result, 0i64);
  RtlInitUnicodeString(&DestinationString, L"PowerRequest", v0);
  result_2 |= 0x14u;
  v11 = PopClosePowerRequestObject;
  result = 120;
  v12 = PopDeletePowerRequestObject;
  v9 = 512;
  v10 = 152;
  v6 = 402;
  v7 = PopPowerRequestMapping;
  v8 = 2031616;
  v1 = ObCreateObjectType(&DestinationString, (__int64)&result, 0i64, (__int64)&PopPowerRequestObjectType);
  if( v1 >= 0 )
  {
    PopCallbackWorkItem.Parameter = 0i64;
    PopCallbackWorkItem.WorkerRoutine = (void(__fastcall *)(void *))PopPowerRequestCallbackWorker;
    PopCallbackWorkItem.List.Flink = 0i64;
    qword_140C24DD8 = (__int64)&PopPowerRequestObjectList;
    PopPowerRequestObjectList = (INT64)&PopPowerRequestObjectList;
    qword_140C24DC8 = (__int64)&PopSpecialPowerRequestObjectList;
    PopSpecialPowerRequestObjectList = (INT64)&PopSpecialPowerRequestObjectList;
    qword_140C24DB8 = (__int64)&PopPowerRequestCallbacks;
    PopPowerRequestCallbacks = (__int64)&PopPowerRequestCallbacks;
    RtlInitializeGenericTableAvl(
      &PopPowerRequestTable,
      PopPowerRequestCompare,
      (PRTL_AVL_ALLOCATE_ROUTINE)PopPowerRequestAllocate,
      PopPowerRequestFree,
      0i64);
    PopExecutionRequiredTimer = 8i64;
    qword_140C24C50 = 0i64;
    qword_140C24C70 = (__int64)&qword_140C24C68;
    qword_140C24C68 = (__int64)&qword_140C24C68;
    PopExecutionRequiredTimeoutDpc.DeferredRoutine = (void(__fastcall *)(_KDPC *, void *, void *, void *))PopExecutionRequiredTimeoutCallback;
    PopExecutionRequiredTimeoutWorker.WorkerRoutine = (void(__fastcall *)(void *))PopExecutionRequiredTimeoutWorkerRoutine;
    PopExecutionRequiredContext = 0i64;
    qword_140C24C78 = 0i64;
    dword_140C24C9C = 0;
    word_140C24C98 = 0;
    PopExecutionRequiredTimeoutDpc.TargetInfoAsUlong = 275;
    PopExecutionRequiredTimeoutDpc.DeferredContext = 0i64;
    PopExecutionRequiredTimeoutDpc.DpcData = 0i64;
    PopExecutionRequiredTimeoutDpc.ProcessorHistory = 0i64;
    PopExecutionRequiredTimeoutWorker.Parameter = 0i64;
    PopExecutionRequiredTimeoutWorker.List.Flink = 0i64;
    PopStatsInitPowerRequestLibrary();
  }
  return(unsigned int)v1;
}

Referenced by:

PoInitSystem