PnpInitializeDeviceEvents

__int64 PnpInitializeDeviceEvents(){
  unsigned int v0; 
  VOID **PoolWithTag; 
  __int64 v2; 

  v0 = 0;
  PoolWithTag = ExAllocatePoolWithTag(0x200ui64, 0x88ui64, 1248882256i64);
  PnpDeviceEventList = (__int64)PoolWithTag;
  if( PoolWithTag )
  {
    KiInitializeMutant((_KMUTANT *)(PoolWithTag + 1), 0, 1u);
    v2 = PnpDeviceEventList;
    *(_DWORD *)(PnpDeviceEventList + 64) = 1;
    *(_QWORD *)(v2 + 72) = 0i64;
    *(_DWORD *)(v2 + 80) = 0;
    *(_QWORD *)(v2 + 104) = v2 + 96;
    *(_QWORD *)(v2 + 96) = v2 + 96;
    *(_WORD *)(v2 + 88) = 1;
    *(_BYTE *)(v2 + 90) = 6;
    *(_DWORD *)(v2 + 92) = 0;
    *(_QWORD *)(v2 + 128) = v2 + 120;
    *(_QWORD *)(v2 + 120) = v2 + 120;
    *(_DWORD *)v2 = 259;
    *(&PnpReplaceEvent + 13) = (char *)&PnpReplaceEvent + 96;
    *(&PnpReplaceEvent + 12) = (char *)&PnpReplaceEvent + 96;
    *(&PnpReplaceEvent + 6) = (char *)&PnpReplaceEvent + 40;
    *(&PnpReplaceEvent + 5) = (char *)&PnpReplaceEvent + 40;
    *(&PnpReplaceEvent + 16) = 1;
    *(&PnpReplaceEvent + 9) = 0i64;
    *(&PnpReplaceEvent + 20) = 0;
    *(&PnpReplaceEvent + 44) = 1;
    *(&PnpReplaceEvent + 90) = 6;
    *(&PnpReplaceEvent + 23) = 0;
    *(&PnpReplaceEvent + 16) = 0;
    *(&PnpReplaceEvent + 34) = 6;
    *(&PnpReplaceEvent + 9) = 1;
  }
  else
  {
    return(unsigned int)-1073741670;
  }
  return v0;
}

Referenced by:

IopInitializePlugPlayServices