CmpCleanupKeyNodeStack

VOID __fastcall CmpCleanupKeyNodeStack(INT64 a1){
  INT16 i; 
  _QWORD *EntryAtLayerHeight; 
  _PRIVILEGE_SET *v4; 

  for( i = 0; i <= *(__int16 *)a1; ++i )
  {
    EntryAtLayerHeight = (_QWORD *)CmpKeyNodeStackGetEntryAtLayerHeight(a1, i);
    if( EntryAtLayerHeight[2] )
      (*(void(__fastcall **)(_QWORD, _QWORD *))(*EntryAtLayerHeight + 16i64))(
        *EntryAtLayerHeight,
        EntryAtLayerHeight + 3);
  }
  v4 = *(_PRIVILEGE_SET **)(a1 + 72);
  if( v4 )
    CmSiFreeMemory(v4);
}

Referenced by:

CmQueryLayeredKey
CmSaveKey
CmpFullPromoteHiveRootFromKcbStack
CmpGetSubKeyCountForKcbStack
CmpKeyEnumStackCleanup
CmpKeyEnumStackStartFromKcbStack
CmpPromoteSingleKeyFromKcbStacks
CmpPromoteSingleKeyFromParentKcbAndChildKeyNode
CmpSubtreeEnumeratorCleanup
CmpValueEnumStackStartFromKcbStack