CmpSortedValueEnumStackCleanup
void __fastcall CmpSortedValueEnumStackCleanup(__int64 a1){
__int16 i;
_QWORD *EntryAtLayerHeight;
_PRIVILEGE_SET *v4;
_PRIVILEGE_SET *v5;
unsigned int v6;
_PRIVILEGE_SET *v7;
for( i = 0; i <= *(__int16 *)(a1 + 8); ++i )
{
EntryAtLayerHeight = (_QWORD *)CmpSortedValueEnumStackGetEntryAtLayerHeight(a1, i);
v4 = (_PRIVILEGE_SET *)EntryAtLayerHeight[1];
if( v4 )
CmSiFreeMemory(v4);
v5 = (_PRIVILEGE_SET *)EntryAtLayerHeight[2];
if( v5 )
{
v6 = 0;
if( *((_DWORD *)EntryAtLayerHeight + 6) )
{
do(*(void(__fastcall **)(_QWORD, __int64))(*EntryAtLayerHeight + 16i64))(
*EntryAtLayerHeight,
EntryAtLayerHeight[2] + 8i64 * v6++);
while( v6 < *((_DWORD *)EntryAtLayerHeight + 6) );
v5 = (_PRIVILEGE_SET *)EntryAtLayerHeight[2];
}
CmSiFreeMemory(v5);
}
}
v7 = *(_PRIVILEGE_SET **)(a1 + 80);
if( v7 )
CmSiFreeMemory(v7);
}Referenced by:
CmpGetValueCountForKeyNodeStack