PopNewWakeInfo

VOID __stdcall PopNewWakeInfo(){
  VOID **PoolWithTag; 
  VOID **v1; 
  _QWORD *v2; 
  _QWORD *v3; 
  __int64 v4; 
  __int64 v5; 
  _QWORD *v6; 
  _QWORD *v7; 
  _KLOCK_QUEUE_HANDLE LockHandle; 

  memset(&LockHandle, 0, sizeof(LockHandle));
  PoolWithTag = ExAllocatePoolWithTag(0x200ui64, 0xB0ui64, 544040269i64);
  v1 = PoolWithTag;
  if( PoolWithTag )
  {
    memset(PoolWithTag, 0i64, 0xB0u);
    *((_DWORD *)v1 + 4) = 1;
    v1[4] = v1 + 3;
    v1[3] = v1 + 3;
    v1[1] = v1;
    *v1 = v1;
  }
  PopAcquireWakeSourceSpinLock(&LockHandle);
  v2 = (_QWORD *)*(&stru_140C23628 + 356);
  if( *(&stru_140C23628 + 356) )
  {
    v4 = *(&stru_140C23628 + 359);
    if( *(_UNKNOWN **)(*(&stru_140C23628 + 359) + 8i64) != (_UNKNOWN *)((char *)&stru_140C23628 + 2872) )
      goto LABEL_15;
    *(&stru_140C23628 + 356) = 0i64;
    ++*(&stru_140C23628 + 708);
    *v2 = *(&stru_140C23628 + 359);
    v2[1] = (char *)&stru_140C23628 + 2872;
    *(_QWORD *)(v4 + 8) = v2;
    *(&stru_140C23628 + 359) = v2;
  }
  v3 = (_QWORD *)*(&stru_140C23628 + 357);
  if( *(&stru_140C23628 + 357) )
  {
    v5 = *(&stru_140C23628 + 359);
    if( *(_UNKNOWN **)(*(&stru_140C23628 + 359) + 8i64) != (_UNKNOWN *)((char *)&stru_140C23628 + 2872) )
      goto LABEL_15;
    *(&stru_140C23628 + 357) = 0i64;
    ++*(&stru_140C23628 + 708);
    *v3 = *(&stru_140C23628 + 359);
    v3[1] = (char *)&stru_140C23628 + 2872;
    *(_QWORD *)(v5 + 8) = v3;
    *(&stru_140C23628 + 359) = v3;
  }
  if( v1 )
  {
    *(&stru_140C23628 + 357) = v1;
    if( *(&stru_140C23628 + 708) == 1 )
    {
      v6 = (_QWORD *)*(&stru_140C23628 + 360);
      v7 = *(_QWORD **)(*(&stru_140C23628 + 360) + 8i64);
      if( (_UNKNOWN *)**(&stru_140C23628 + 360) == (_UNKNOWN *)((char *)&stru_140C23628 + 2872)
        && *v7 == *(&stru_140C23628 + 360) )
      {
        *(&stru_140C23628 + 360) = *(_QWORD *)(*(&stru_140C23628 + 360) + 8i64);
        *v7 = (char *)&stru_140C23628 + 2872;
        v6[1] = v6;
        *v6 = v6;
        PopWakeInfoDereference((__int64)v6);
        --*(&stru_140C23628 + 708);
        goto LABEL_7;
      }
LABEL_15:
      __fastfail(3u);
    }
  }
LABEL_7:
  PopReleaseWakeSourceSpinLock(&LockHandle);
  KeResetEvent((_KEVENT *)((char *)&stru_140C23628 + 2936));
  *(&stru_140C23628 + 740) = 0;
}

Referenced by:

PopTransitionSystemPowerStateEx