AlpcpInsertMessageCanceledQueue

VOID __fastcall AlpcpInsertMessageCanceledQueue(INT64 a1, INT64 a2){
  volatile INT64 *v2; 
  v2 = (volatile INT64 *)(a1 + 136);
  ExAcquirePushLockExclusiveEx(a1 + 136, 0i64);
  *(_QWORD *)(a2 + 88) = *(_QWORD *)(a1 + 392);
  *(_QWORD *)(a2 + 80) = a1 + 384;
  **(_QWORD **)(a1 + 392) = a2 + 80;
  *(_QWORD *)(a1 + 392) = a2 + 80;
  *(_DWORD *)(a2 + 40) |= 0x10000u;
  ++*(_DWORD *)(a1 + 464);
  if( (_InterlockedExchangeAdd64(v2, 0xFFFFFFFFFFFFFFFFui64) & 6) == 2 )
    ExfTryToWakePushLock(v2);
  KeAbPostRelease((PVOID)v2);
}

Referenced by:

AlpcpCancelMessage
AlpcpDisconnectPort
AlpcpReturnMessageOnInsufficientBuffer