PopInitSystemSleeperThread

NTSTATUS __stdcall PopInitSystemSleeperThread(
        POWER_STATE_HANDLER_TYPE PowerStateHandlerType,
        POP_SLEEPER_HANDOFF *SleeperHandoff){
  NTSTATUS result; 
  __int128 v4; 
  __int64 v5; 
  int v6; 
  int v7; 
  __int128 v8; 
  VOID *Handle; 

  DWORD1(v4) = 0;
  v7 = 0;
  Handle = 0i64;
  SleeperHandoff[18] = PowerStateHandlerType;
  KeInitializeEvent((INT64)SleeperHandoff, 1, 0);
  KeInitializeEvent((INT64)(SleeperHandoff + 6), 1, 0);
  KeInitializeEvent((INT64)(SleeperHandoff + 12), 1, 0);
  *((_QWORD *)&v4 + 1) = 0i64;
  v5 = 0i64;
  LODWORD(v4) = 48;
  v6 = 512;
  v8 = 0i64;
  result = PsCreateSystemThreadEx(
             (__int64)&Handle,
             0,
             &v4,
             0i64,
             0i64,
             PopTransitionToSleep,
             (INT64)SleeperHandoff,
             0i64,
             0i64);
  if( result >= 0 )
  {
    ZwClose((_HANDLE)Handle);
    KeWaitForSingleObject((UINT64)SleeperHandoff, 0, 0, 0, 0i64);
    return 0;
  }
  return result;
}

Referenced by:

PopTransitionSystemPowerStateEx