PnpAllocateWatchdog

VOID **PnpAllocateWatchdog(){
  VOID **PoolWithTag; 
  VOID **v1; 
  UINT8 *v2; 
  __int64 v4[3]; 
  int WatchdogTimeout; 
  int v6; 
  void(__fastcall __noreturn *v7)(__int64); 

  v4[1] = 0i64;
  PoolWithTag = ExAllocatePoolWithTag(0x200ui64, 0x28ui64, 1466200144i64);
  v1 = PoolWithTag;
  if( PoolWithTag )
  {
    v4[0] = (__int64)PoolWithTag;
    *(_OWORD *)PoolWithTag = 0i64;
    *((_OWORD *)PoolWithTag + 1) = 0i64;
    PoolWithTag[4] = 0i64;
    v4[2] = (__int64)PnpWatchdogWorkItem;
    WatchdogTimeout = PnpQueryWatchdogTimeout(1);
    v7 = PnpWatchdogBugcheck;
    v6 = PnpQueryWatchdogTimeout(0);
    v2 = PnpWatchdogTimerAllocate((__int64)v4);
    v1[1] = v2;
    if( !v2 )
    {
      ExFreePoolWithTag(v1, 0x57647050u);
      return 0i64;
    }
  }
  return v1;
}

Referenced by:

PnpEnableWatchdog