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.