PopDripsWatchdogCallbackWorker
VOID __stdcall PopDripsWatchdogCallbackWorker(INT64 a1){
__int64 v1;
INT64 v2;
char v4;
__int64 v5;
UINT64 *v6;
int v7;
__int128 v8;
int v9;
__int128 v10;
unsigned int v11;
int v12;
int v13;
UINT64 v14;
unsigned __int64 v15;
__int64 v16;
INT64 v17;
__int128 v18;
__int128 v19;
char v20;
unsigned int v21;
INT64 v22;
v18 = 0i64;
v19 = 0i64;
PopDripsWatchdogAcquireContextLock((_ERESOURCE *)a1, v1, v2);
if( (*(_DWORD *)(a1 + 104) & 4) != 0 && (*(_DWORD *)(a1 + 292) & 2) != 0 )
{
v4 = 1;
++*(_DWORD *)(a1 + 640);
++*(_DWORD *)(a1 + 308);
PopDripsWatchdogScheduleNextTimer((_KTIMER2 *)(a1 + 112));
v5 = *(_QWORD *)&KUSER_SHARED_DATA.InterruptTime.LowPart;
PopCalculateIdleInformation((__int64)&v18, v6);
v7 = DWORD2(v19) - *(_DWORD *)(a1 + 368);
if( DWORD2(v19) != *(_DWORD *)(a1 + 368) )
{
v8 = v18;
v9 = *(&PopIrpWorkerControlEvent + 668);
v10 = v19;
*(_DWORD *)(a1 + 308) = 0;
*(_OWORD *)(a1 + 344) = v8;
*(_QWORD *)(a1 + 328) = v5;
*(_OWORD *)(a1 + 360) = v10;
*(_DWORD *)(a1 + 312) = v9;
*(_QWORD *)(a1 + 320) = v5;
}
v11 = *(_DWORD *)(a1 + 312);
if( v11 )
{
if( *(_DWORD *)(a1 + 308) < v11 )
{
PopDirectedDripsClearDisengageReason(0);
}
else
{
PopDirectedDripsSetDisengageReason(0);
*(_DWORD *)(a1 + 312) = *(&PopIrpWorkerControlEvent + 668) + *(_DWORD *)(a1 + 308);
}
}
v12 = *(_DWORD *)(a1 + 292);
if( (v12 & 4) == 0 )
{
v13 = *(_DWORD *)(a1 + 108);
v14 = v5 - *(_QWORD *)(a1 + 320);
v15 = v5 - *(_QWORD *)(a1 + 328);
v21 = *(_DWORD *)(a1 + 304);
v22 = *(_QWORD *)(a1 + 648);
v20 = *(_BYTE *)(a1 + 336);
*(_DWORD *)(a1 + 292) = v12 | 4;
PopDripsWatchdogReleaseContextLock((PFN_WDFIOQUEUEASSIGNFORWARDPROGRESSPOLICY *)a1);
PopAcquirePolicyLock();
if( v7 || qword_140C4FC98 )
v4 = 0;
PopReleasePolicyLock();
if( v4 )
PopDripsWatchdogCallbackHandler(v13, v21, v14, v15, v22, v20);
PopDripsWatchdogAcquireContextLock((_ERESOURCE *)a1, v16, v17);
*(_QWORD *)(a1 + 320) = v5;
*(_DWORD *)(a1 + 292) &= ~4u;
}
}
PopDripsWatchdogReleaseContextLock((PFN_WDFIOQUEUEASSIGNFORWARDPROGRESSPOLICY *)a1);
}Referenced by:
No references.