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