RtlpInsertUCRBlock

VOID __stdcall RtlpInsertUCRBlock(_HEAP *Heap, _HEAP_UCR_DESCRIPTOR *UCRBlock){
  unsigned __int64 Size; 
  _LIST_ENTRY *UCREntry; 
  _LIST_ENTRY *Blink; 
  __int64 v7; 
  _HEAP *v8; 
  _LIST_ENTRY *p_UCRSegmentList; 
  _LIST_ENTRY *p_SegmentEntry; 
  _LIST_ENTRY *Flink; 
  _LIST_ENTRY *v12; 

  Size = UCRBlock->Size;
  if( Size )
  {
    UCREntry = RtlpFindUCREntry(Heap, Size);
    Blink = UCREntry->Blink;
    if( Blink->Flink == UCREntry )
    {
      UCRBlock->ListEntry.Flink = UCREntry;
      UCRBlock->ListEntry.Blink = Blink;
      Blink->Flink = &UCRBlock->ListEntry;
      UCREntry->Blink = &UCRBlock->ListEntry;
    }
    else
    {
      RtlpLogHeapFailure(heap_failure_freelists_corruption, 0i64, UCREntry, 0i64, Blink->Flink);
    }
  }
  v7 = BYTE6(UCRBlock[-1].Size);
  if( (_BYTE)v7 )
    v8 = (_HEAP *)(((unsigned __int64)&UCRBlock[-1].Address & 0xFFFFFFFFFFFF0000ui64) - (v7 << 16) + 0x10000);
  else
    v8 = Heap;
  p_UCRSegmentList = &v8->Segment.UCRSegmentList;
  p_SegmentEntry = &UCRBlock->SegmentEntry;
  Flink = v8->Segment.UCRSegmentList.Flink;
  v12 = Flink->Blink;
  if( v12 == &v8->UCRSegmentList )
  {
    p_SegmentEntry->Flink = Flink;
    p_SegmentEntry->Blink = p_UCRSegmentList;
    Flink->Blink = p_SegmentEntry;
    p_UCRSegmentList->Flink = p_SegmentEntry;
  }
  else
  {
    RtlpLogHeapFailure(heap_failure_freelists_corruption, 0i64, p_UCRSegmentList, v12, 0i64);
  }
}

Referenced by:

RtlpCreateUCREntry
RtlpDeCommitFreeBlock