PopFreeWakeSource
VOID __stdcall PopFreeWakeSource(_POP_WAKE_SOURCE *WakeSource){
VOID *v1;
_POP_WAKE_SOURCE v2;
VOID *v4;
void *v5;
void *v6;
void *v7;
v2 = WakeSource[4];
if( v2 )
{
if( (unsigned int)(v2 - 2) <= 1 )
{
v4 = (VOID *)*((_QWORD *)WakeSource + 3);
if( v4 )
ExFreePoolEx(v4, v1);
}
}
else
{
v5 = (void *)*((_QWORD *)WakeSource + 4);
if( v5 )
ExFreePoolWithTag(v5, 0x206D654Du);
v6 = (void *)*((_QWORD *)WakeSource + 6);
if( v6 )
ExFreePoolWithTag(v6, 0x206D654Du);
v7 = (void *)*((_QWORD *)WakeSource + 8);
if( v7 )
ExFreePoolWithTag(v7, 0x206D654Du);
}
ExFreePoolWithTag(WakeSource, 0x206D654Du);
}Referenced by:
PopProcessWakeSourceWork
PopUnlinkWakeSources
PopUpdateWakeSourceWorker