PnpSetInterruptInformation

UINT8 __fastcall PnpSetInterruptInformation(UINT16 *a1, INT64 a2, EVENT_DESCRIPTOR *a3){
  unsigned int v3; 
  UINT8 *PoolWithTag; 
  UINT8 *v7; 
  __int64 v8; 
  void *v9; 
  v3 = (unsigned int)a3;
  PoolWithTag = (UINT8 *)ExAllocatePoolWithTag(PagedPool, (unsigned int)((_DWORD)a3 + 4), 0x47706E50ui64);
  v7 = PoolWithTag;
  if( !PoolWithTag )
    return -102;
  *(_DWORD *)PoolWithTag = v3;
  memmove(PoolWithTag + 4, (UINT8 *)a2, v3);
  v8 = *((_QWORD *)a1 + 39);
  v9 = *(void **)(v8 + 88);
  *(_QWORD *)(v8 + 88) = v7;
  if( v9 )
    ExFreePoolWithTag(v9, 0x47706E50u);
  return 0;
}

Referenced by:

PnpSetDevicePropertyData