WdtpTimerCallback
VOID __stdcall WdtpTimerCallback(PEX_TIMER Timer, INT64 Context){
UINT8 v2;
UINT8 v3;
void(__fastcall *v5)(_QWORD);
int v6;
IRP *v7;
if( *(_BYTE *)(Context + 48) )
{
(*(void(__fastcall **)(_QWORD))(Context + 40))(*(_QWORD *)(Context + 8));
}
else
{
v5 = *(void(__fastcall **)(_QWORD))(Context + 16);
*(_BYTE *)(Context + 48) = 1;
if( v5 )
v5(*(_QWORD *)(Context + 8));
if( *(_QWORD *)(Context + 24) )
{
KeResetEvent((VOID *)(Context + 104), Context, v2, v3, v7);
_InterlockedIncrement((volatile signed __int32 *)(Context + 96));
ExQueueWorkItem((WORK_QUEUE_ITEM *)(Context + 64), CriticalWorkQueue);
}
v6 = *(_DWORD *)(Context + 36);
if( v6 )
ExSetTimer(*(_QWORD *)(Context + 56), -10000i64 * (unsigned int)(v6 - *(_DWORD *)(Context + 32)), 0i64, 0i64);
}
}Referenced by:
No references.