PopEnableIrpWatchdog

VOID __stdcall PopEnableIrpWatchdog(_IRP *Irp){
  __int64 v1; 
  unsigned int v2; 

  v1 = *((_QWORD *)&Irp->Tail.IrpExtension + 9 * Irp->StackCount);
  v2 = PopComputeWatchdogTimeout((_POP_IRP_DATA *)v1);
  if( v2 )
  {
    *(_BYTE *)(v1 + 196) = 1;
    *(_DWORD *)(v1 + 120) = 275;
    *(_QWORD *)(v1 + 152) = v1;
    *(_QWORD *)(v1 + 144) = PopIrpWatchdog;
    *(_QWORD *)(v1 + 176) = 0i64;
    *(_QWORD *)(v1 + 136) = 0i64;
    *(_QWORD *)(v1 + 56) = 0i64;
    *(_BYTE *)(v1 + 56) = 8;
    *(_QWORD *)(v1 + 72) = v1 + 64;
    *(_QWORD *)(v1 + 64) = v1 + 64;
    *(_QWORD *)(v1 + 80) = 0i64;
    *(_DWORD *)(v1 + 116) = 0;
    *(_WORD *)(v1 + 112) = 0;
    KiSetTimerEx((_KTIMER *)(v1 + 56), (_LARGE_INTEGER)(-10000000i64 * v2), 0i64, 0, (_KDPC *)(v1 + 120));
    *(_QWORD *)(v1 + 48) = KiQueryUnbiasedInterruptTime(1u);
  }
}

Referenced by:

PopDequeueQuerySetIrp
PopQueueQuerySetIrp