PopDirectedDripsDestroyBroadcast
VOID __stdcall PopDirectedDripsDestroyBroadcast(){
volatile signed __int32 *v0;
volatile signed __int32 *i;
int v2;
volatile signed __int32 *v3;
v0 = (volatile signed __int32 *)IopRootDeviceNode;
for( i = (volatile signed __int32 *)*((_QWORD *)IopRootDeviceNode + 1);
i;
i = (volatile signed __int32 *)*((_QWORD *)i + 1) )
{
v0 = i;
}
while( v0 != IopRootDeviceNode )
{
_InterlockedAnd(v0 + 74, 0xFFFFFEFF);
*((_QWORD *)v0 + 92) = v0 + 182;
*((_QWORD *)v0 + 94) = v0 + 186;
*((_QWORD *)v0 + 93) = v0 + 186;
v2 = *((_DWORD *)v0 + 190);
*((_DWORD *)v0 + 191) = 0;
*((_QWORD *)v0 + 91) = v0 + 182;
*((_DWORD *)v0 + 190) = v2 & 0xFFF8FFFF;
v3 = *(volatile signed __int32 **)v0;
if( *(_QWORD *)v0 )
{
do
{
v0 = v3;
v3 = (volatile signed __int32 *)*((_QWORD *)v3 + 1);
}
while( v3 );
}
else
{
v0 = (volatile signed __int32 *)*((_QWORD *)v0 + 2);
}
}
PoClearBroadcast();
}Referenced by:
PopDirectedDripsResumeDevices
PopDirectedDripsSuspendDevices