PopUnlinkWakeSources

void __fastcall PopUnlinkWakeSources(__int64 a1){
  _POP_WAKE_SOURCE **v2; 
  _POP_WAKE_SOURCE *v3; 
  __int64 v4; 

  v2 = (_POP_WAKE_SOURCE **)(a1 + 24);
  while( 1 )
  {
    v3 = *v2;
    if( *v2 == (_POP_WAKE_SOURCE *)v2 )
      break;
    if( *((_POP_WAKE_SOURCE ***)v3 + 1) != v2
      || (v4 = *(_QWORD *)v3, *(_POP_WAKE_SOURCE **)(*(_QWORD *)v3 + 8i64) != v3) )
    {
      __fastfail(3u);
    }
    *v2 = (_POP_WAKE_SOURCE *)v4;
    *(_QWORD *)(v4 + 8) = v2;
    PopFreeWakeSource(v3);
    --*(_DWORD *)(a1 + 40);
  }
}

Referenced by:

PopFreeWakeInfo
PopHandleWakeSources