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