AlpcpEnterAllocationEventMessageLog

void __fastcall AlpcpEnterAllocationEventMessageLog(__int64 a1){
  INT64 MessageLog; 
  INT64 *v3; 
  char *v4; 
  char *v5; 
  char **v6; 
  ExAcquirePushLockExclusiveEx((UINT64)&AlpcpMessageLogLock, 0i64);
  MessageLog = AlpcpAllocateMessageLog();
  if( MessageLog )
  {
    *(_QWORD *)(MessageLog + 32) = a1;
    *(_DWORD *)(MessageLog + 40) = *(_DWORD *)(a1 + 264);
    *(_DWORD *)(MessageLog + 44) = 1;
    v3 = (INT64 *)qword_140C2A788;
    if( *(__int64 **)qword_140C2A788 != &AlpcpMessageLogListHead
      || (*(_QWORD *)(MessageLog + 8) = qword_140C2A788,
          *(_QWORD *)MessageLog = &AlpcpMessageLogListHead,
          v4 = (char *)(MessageLog + 16),
          *v3 = MessageLog,
          qword_140C2A788 = MessageLog,
          v5 = (char *)AlpcpMessageLogLookupTable + 16 * ((*(_DWORD *)(MessageLog + 40) >> 2) & 0x3FF),
          v6 = (char **)*((_QWORD *)v5 + 1),
          *v6 != v5) )
    {
      __fastfail(3u);
    }
    *(_QWORD *)v4 = v5;
    *((_QWORD *)v4 + 1) = v6;
    *v6 = v4;
    *((_QWORD *)v5 + 1) = v4;
  }
  if( (_InterlockedExchangeAdd64((volatile signed __int64 *)&AlpcpMessageLogLock, 0xFFFFFFFFFFFFFFFFui64) & 6) == 2 )
    ExfTryToWakePushLock((volatile INT64 *)&AlpcpMessageLogLock);
  KeAbPostRelease(&AlpcpMessageLogLock);
}

Referenced by:

AlpcpAllocateMessage
AlpcpSendLegacySynchronousRequest
AlpcpSendMessage