CmpRemoveSecurityCellList

void __fastcall CmpRemoveSecurityCellList(_HHIVE *Hive, INT64 SecurityCell){
  unsigned int v3; 
  _CELL_DATA *v4; 
  _CELL_DATA *v5; 
  _CELL_DATA *v6; 
  _CELL_DATA *v7; 
  _CELL_DATA *v8; 
  int v9; 
  int v10; 
  int v11; 
  int v12; 
  int v13; 
  int v14; 

  v12 = 0;
  v14 = 0;
  v11 = -1;
  v3 = SecurityCell;
  v13 = -1;
  v4 = 0i64;
  v9 = -1;
  v10 = 0;
  v5 = Hive->GetCellRoutine(Hive, SecurityCell, &v9);
  v6 = v5;
  if( v5 )
  {
    v7 = Hive->GetCellRoutine(Hive, v5->u.KeyNode.LastWriteTime.anonymous_0.LowPart, &v11);
    if( v7 )
    {
      v8 = Hive->GetCellRoutine(Hive, v6->u.KeyValue.Data, &v13);
      v4 = v8;
      if( v8 )
      {
        v7->u.KeyNode.LastWriteTime.anonymous_0.HighPart = v6->u.KeyNode.LastWriteTime.anonymous_0.HighPart;
        v8->u.KeyNode.LastWriteTime.anonymous_0.LowPart = v6->u.KeyNode.LastWriteTime.anonymous_0.LowPart;
        Hive->ReleaseCellRoutine(Hive, (_HV_GET_CELL_CONTEXT *)&v11);
        Hive->ReleaseCellRoutine(Hive, (_HV_GET_CELL_CONTEXT *)&v13);
        Hive->ReleaseCellRoutine(Hive, (_HV_GET_CELL_CONTEXT *)&v9);
        v7 = 0i64;
        v4 = 0i64;
        v6 = 0i64;
        CmpRemoveFromSecurityCache((CMHIVE *)Hive, v3);
      }
    }
    if( v6 )
      Hive->ReleaseCellRoutine(Hive, (_HV_GET_CELL_CONTEXT *)&v9);
    if( v7 )
      Hive->ReleaseCellRoutine(Hive, (_HV_GET_CELL_CONTEXT *)&v11);
    if( v4 )
      Hive->ReleaseCellRoutine(Hive, (_HV_GET_CELL_CONTEXT *)&v13);
  }
}

Referenced by:

CmpCommitSetSecurityUoW
CmpDereferenceSecurityNode
CmpFreeSecurityDescriptor
CmpLightWeightCommitSetSecDescUoW
CmpSetSecurityDescriptorInfo
CmpTransMgrFreeVolatileData