CmpKeyEnumStackFreeResumeContext

INT64 __stdcall CmpKeyEnumStackFreeResumeContext(PPRIVILEGE_SET Privileges){
  INT64 v1; 
  char v2; 
  char v3; 
  INT64 v4; 
  unsigned int *p_Attributes; 
  __int64 v7; 
  void *v8; 
  INT64 result; 

  v3 = v2;
  v4 = v1;
  if( SLOWORD(Privileges->PrivilegeCount) >= 0 )
  {
    p_Attributes = &Privileges->Privilege[0].Attributes;
    v7 = (unsigned __int16)(LOWORD(Privileges->PrivilegeCount) + 1);
    do
    {
      v8 = *(void **)p_Attributes;
      if( *(_QWORD *)p_Attributes )
      {
        if( v3 )
          CmpDelayDerefKeyControlBlock(v8, v4);
        else
          CmpDereferenceKeyControlBlock((UINT64)v8);
      }
      p_Attributes += 6;
      --v7;
    }
    while( v7 );
  }
  CmSiFreeMemory(Privileges);
  return result;
}

Referenced by:

CmpDeleteKeyObject
CmpEnumerateLayeredKey
CmpFlushNotifiesOnKeyBodyList