AlpcpAllocateSnapshotMessageLog

VOID __fastcall AlpcpAllocateSnapshotMessageLog(){
  __int64 v0; 
  __int64 v1; 
  __int64 v2; 
  _QWORD *v3; 
  _QWORD **v4; 
  _QWORD *v5; 
  _QWORD *v6; 
  _QWORD *v7; 
  __int64 *v8; 
  __int64 v9; 
  while( (__int64 *)AlpcpFreeMessageSnapshotListHead == &AlpcpFreeMessageSnapshotListHead )
  {
    v0 = AlpcpMessageLogListHead;
    if( (__int64 *)AlpcpMessageLogListHead == &AlpcpMessageLogListHead )
      return;
    if( *(__int64 **)(AlpcpMessageLogListHead + 8) != &AlpcpMessageLogListHead )
      goto LABEL_19;
    v1 = *(_QWORD *)AlpcpMessageLogListHead;
    if( *(_QWORD *)(*(_QWORD *)AlpcpMessageLogListHead + 8i64) != AlpcpMessageLogListHead )
      goto LABEL_19;
    AlpcpMessageLogListHead = *(_QWORD *)AlpcpMessageLogListHead;
    *(_QWORD *)(v1 + 8) = &AlpcpMessageLogListHead;
    *(_DWORD *)(v0 + 44) = 0;
    v2 = *(_QWORD *)(v0 + 16);
    if( *(_QWORD *)(v2 + 8) != v0 + 16 )
      goto LABEL_19;
    v3 = *(_QWORD **)(v0 + 24);
    if( *v3 != v0 + 16 )
      goto LABEL_19;
    *v3 = v2;
    *(_QWORD *)(v2 + 8) = v3;
    v4 = (_QWORD **)(v0 + 48);
    while( 1 )
    {
      v5 = *v4;
      if( *v4 == v4 )
        break;
      if( (_QWORD **)v5[1] != v4 )
        goto LABEL_19;
      v6 = (_QWORD *)*v5;
      if( *(_QWORD **)(*v5 + 8i64) != v5 )
        goto LABEL_19;
      *v4 = v6;
      v6[1] = v4;
      v7 = (_QWORD *)qword_140C2A768;
      if( *(__int64 **)qword_140C2A768 != &AlpcpFreeMessageSnapshotListHead )
        goto LABEL_19;
      *v5 = &AlpcpFreeMessageSnapshotListHead;
      v5[1] = v7;
      *v7 = v5;
      qword_140C2A768 = (__int64)v5;
    }
    v8 = (__int64 *)qword_140C2A778;
    if( *(__int64 **)qword_140C2A778 != &AlpcpFreeMessageLogListHead )
      goto LABEL_19;
    *(_QWORD *)v0 = &AlpcpFreeMessageLogListHead;
    *(_QWORD *)(v0 + 8) = v8;
    *v8 = v0;
    qword_140C2A778 = v0;
  }
  v9 = *(_QWORD *)AlpcpFreeMessageSnapshotListHead;
  if( *(__int64 **)(AlpcpFreeMessageSnapshotListHead + 8) != &AlpcpFreeMessageSnapshotListHead
    || *(_QWORD *)(v9 + 8) != AlpcpFreeMessageSnapshotListHead )
  {
LABEL_19:
    __fastfail(3u);
  }
  AlpcpFreeMessageSnapshotListHead = *(_QWORD *)AlpcpFreeMessageSnapshotListHead;
  *(_QWORD *)(v9 + 8) = &AlpcpFreeMessageSnapshotListHead;
}

Referenced by:

AlpcpEnterStateChangeEventMessageLog