PopDripsWatchdogCallbackHandler
VOID __fastcall PopDripsWatchdogCallbackHandler(INT16 a1, UINT64 a2, UINT64 a3, UINT64 a4, INT64 a5, CHAR a6){
unsigned int v6;
int v7;
bool v8;
INT64 v10;
INT64 v11;
INT64 v12;
__int128 *i;
unsigned __int64 v14;
unsigned __int64 v15;
INT64 v16;
__int128 v17[2];
v6 = a2;
v17[0] = 0i64;
v7 = a1 & 0x100;
v8 = 0;
if( PopDirectedDripsTimeout && a4 / 0x989680 >= (unsigned int)PopDirectedDripsTimeout || a6 )
v8 = (byte_140C4FD00 & 1) == 0 || (a1 & 1) != 0;
if( ((a1 & 0x80) != 0 || (a1 & 0x100) != 0 || v8)
&& PopDeviceConstraintsEnforced()
&& (int)PopFxBuildDripsBlockingDeviceList(a3, v17) >= 0 )
{
if( v8 )
{
v12 = 4i64;
}
else
{
if( !v7 )
{
LABEL_17:
for( i = *(__int128 **)&v17[0]; i != v17; i = *(__int128 **)i )
{
if( v8
|| v7
&& ((PopDripsWatchdogGetDeviceActiveTime((INT64)i - 872),
!PopFxIsDirectedPowerTransitionSupported((INT64)i - 872, 0i64)) ? (v15 = (unsigned int)PopFxDirectedFxDefaultTimeout) : (v15 = *((unsigned int *)i + 10)),
v14 >= v15) )
{
PopDirectedDripsMarkCandidateDevice((INT64)i - 872);
}
else
{
PopDripsWatchdogInvokeDeviceCallbacks((INT64)i - 872, v6);
}
}
if( v8 )
{
v16 = 5i64;
}
else
{
if( !v7 )
{
LABEL_33:
PopFxDestroyDripsBlockingDeviceList(v17);
return;
}
v16 = 3i64;
}
PopDirectedDripsNotify(v16, &a5, v10, v11);
goto LABEL_33;
}
v12 = 2i64;
}
PopDirectedDripsNotify(v12, &a5, v10, v11);
goto LABEL_17;
}
}Referenced by:
PopDripsWatchdogCallbackWorker