CmpSubtreeEnumeratorCleanup

VOID __fastcall CmpSubtreeEnumeratorCleanup(INT64 a1){
  __int64 v2; 
  __int64 v3; 
  __int64 v4; 
  _PRIVILEGE_SET *v5; 

  if( *(_QWORD *)(a1 + 96) )
  {
    v2 = 0i64;
    v3 = 512i64;
    do
    {
      v4 = *(_QWORD *)(a1 + 96);
      v5 = *(_PRIVILEGE_SET **)(v2 + v4 + 48);
      if( v5 )
        CmSiFreeMemory(v5);
      CmpKeyEnumStackCleanup(v2 + v4 + 56);
      v2 += 408i64;
      --v3;
    }
    while( v3 );
    CmSiFreeMemory(*(PPRIVILEGE_SET *)(a1 + 96));
  }
  CmpCleanupKeyNodeStack(a1 + 16);
}

Referenced by:

CmRenameKey
CmpDoAccessCheckOnLayeredSubtree
CmpPromoteSubtree