PopFinalizeWakeInfo

VOID __fastcall PopFinalizeWakeInfo(INT64 a1){
  __int64 **v2; 
  __int64 *i; 
  void *v4; 
  void *v5; 
  KeSetEvent(&PopWakeSourceAvailable, 0);
  v2 = (__int64 **)(a1 + 24);
  for( i = *v2; i != (__int64 *)v2; i = (__int64 *)*i )
  {
    if( !*((_DWORD *)i + 4) )
    {
      v4 = (void *)i[6];
      if( v4 )
      {
        ExFreePoolWithTag(v4, 0x206D654Du);
        *(_OWORD *)(i + 5) = 0i64;
      }
      v5 = (void *)i[8];
      if( v5 )
      {
        ExFreePoolWithTag(v5, 0x206D654Du);
        *(_OWORD *)(i + 7) = 0i64;
      }
    }
  }
}

Referenced by:

PopHandleWakeSources
PopTimeoutWakeTracking