# dwmcore.dll KB5074109 vs KB5077181 (CVE-2026-21519)

# TOC

* [Visual Chart Diff](#visual-chart-diff)
* [Metadata](#metadata)
	* [Ghidra Diff Engine](#ghidra-diff-engine)
		* [Command Line](#command-line)
	* [Binary Metadata Diff](#binary-metadata-diff)
	* [Program Options](#program-options)
	* [Diff Stats](#diff-stats)
	* [Strings](#strings)
* [Deleted](#deleted)
	* [CThreadContext::GetObjectCache](#cthreadcontextgetobjectcache)
	* [CWindowOcclusionInfo::GetFlipExSurfaceZ](#cwindowocclusioninfogetflipexsurfacez)
	* [detail::vector_facade<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,detail::buffer_impl<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,1,1,detail::liberal_expansion_policy>_>::push_back](#detailvector_facadestdunique_ptrcocclusioninfostddefault_deletecocclusioninfo_detailbuffer_implstdunique_ptrcocclusioninfostddefault_deletecocclusioninfo_11detailliberal_expansion_policy_push_back)
	* [FUN_1800ee5a8](#fun_1800ee5a8)
	* [CPropertySet::operator_new](#cpropertysetoperator_new)
	* [CRectangleGeometry::operator_new](#crectanglegeometryoperator_new)
	* [CPropertySet::CPropertySet](#cpropertysetcpropertyset)
	* [CComponentTransform3D::operator_new](#ccomponenttransform3doperator_new)
	* [CRectangleGeometry::CRectangleGeometry](#crectanglegeometrycrectanglegeometry)
	* [CPrimitiveGroup::operator_new](#cprimitivegroupoperator_new)
	* [CEffectGroup::operator_new](#ceffectgroupoperator_new)
	* [CInteraction::operator_new](#cinteractionoperator_new)
	* [CGdiSpriteBitmap::operator_new](#cgdispritebitmapoperator_new)
	* [CImageLegacyMilBrush::operator_new](#cimagelegacymilbrushoperator_new)
	* [CWindowNode::operator_new](#cwindownodeoperator_new)
	* [CManipulationTransform::operator_new](#cmanipulationtransformoperator_new)
	* [CProjectedShadowCaster::operator_new](#cprojectedshadowcasteroperator_new)
	* [CSurfaceBrush::operator_new](#csurfacebrushoperator_new)
	* [CExpression::operator_new](#cexpressionoperator_new)
	* [std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>::~unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>](#stdunique_ptrcocclusioninfostddefault_deletecocclusioninfo_unique_ptrcocclusioninfostddefault_deletecocclusioninfo_)
	* [std::_Get_size_of_n<128>](#std_get_size_of_n128)
	* [CShapeVisual::operator_new](#cshapevisualoperator_new)
	* [CPathGeometry::CPathGeometry](#cpathgeometrycpathgeometry)
	* [CDrawingContext::ComputeExternalLayerOffsetAndBounds](#cdrawingcontextcomputeexternallayeroffsetandbounds)
	* [CWindowNode::RenderBlackContent](#cwindownoderenderblackcontent)
	* [CEffectBrush::CEffectBrush](#ceffectbrushceffectbrush)
	* [CImageLegacyMilBrush::CImageLegacyMilBrush](#cimagelegacymilbrushcimagelegacymilbrush)
	* [CEffectBrush::operator_new](#ceffectbrushoperator_new)
	* [CManipulation::operator_new](#cmanipulationoperator_new)
	* [CLayerVisual::operator_new](#clayervisualoperator_new)
	* [CLinearGradientBrush::operator_new](#clineargradientbrushoperator_new)
	* [CTurbulenceEffect::operator_new](#cturbulenceeffectoperator_new)
	* [CConditionalExpression::operator_new](#cconditionalexpressionoperator_new)
	* [CMatrixTransform3D::CMatrixTransform3D](#cmatrixtransform3dcmatrixtransform3d)
	* [CDropShadow::operator_new](#cdropshadowoperator_new)
	* [CBrushDrawListGenerator::ProcessBrushClampEdges_Polygon](#cbrushdrawlistgeneratorprocessbrushclampedges_polygon)
	* [McTemplateU0nqq_EventWriteTransfer](#mctemplateu0nqq_eventwritetransfer)
	* [CDrawingContext::PushColorSpaceLayer](#cdrawingcontextpushcolorspacelayer)
	* [CArithmeticCompositeEffect::CArithmeticCompositeEffect](#carithmeticcompositeeffectcarithmeticcompositeeffect)
	* [CBrightnessEffect::CBrightnessEffect](#cbrightnesseffectcbrightnesseffect)
	* [CFloodEffect::CFloodEffect](#cfloodeffectcfloodeffect)
	* [CGaussianBlurEffect::CGaussianBlurEffect](#cgaussianblureffectcgaussianblureffect)
	* [CColorSpaceLayer::Create](#ccolorspacelayercreate)
	* [CCursorVisual::TryEnableHardwareCursor](#ccursorvisualtryenablehardwarecursor)
	* [CCompositionDynamicTexture::CCompositionDynamicTexture](#ccompositiondynamictextureccompositiondynamictexture)
	* [std::_Move_unchecked<CCursorState::MonitorData*___ptr64,CCursorState::MonitorData*___ptr64>](#std_move_uncheckedccursorstatemonitordata___ptr64ccursorstatemonitordata___ptr64)
	* [CCursorState::DisableHardwareCursor](#ccursorstatedisablehardwarecursor)
	* [CCursorState::GetScaleAndRotation](#ccursorstategetscaleandrotation)
	* [CCursorState::IsBetterRotationMatch](#ccursorstateisbetterrotationmatch)
	* [CCursorState::TryEnableHardwareCursor](#ccursorstatetryenablehardwarecursor)
	* [FUN_1802e4e42](#fun_1802e4e42)
	* [FUN_1802ef016](#fun_1802ef016)
	* [FUN_1802ef0c0](#fun_1802ef0c0)
	* [FUN_1802f6efe](#fun_1802f6efe)
* [Added](#added)
	* [CSurfaceDrawListBrush::CSurfaceDrawListBrush](#csurfacedrawlistbrushcsurfacedrawlistbrush)
	* [CTreeData::GetBackdropVisualImage](#ctreedatagetbackdropvisualimage)
	* [CSurfaceDrawListBrush::ComputeLocalToTextureTransform](#csurfacedrawlistbrushcomputelocaltotexturetransform)
	* [CBrushDrawListGenerator::ProcessBrushClampEdges_Rectangle](#cbrushdrawlistgeneratorprocessbrushclampedges_rectangle)
	* [CDrawListBitmap::CDrawListBitmap](#cdrawlistbitmapcdrawlistbitmap)
	* [HrAlloc](#hralloc)
	* [wil::com_ptr_t<CBackdropVisualImage,wil::err_returncode_policy>::com_ptr_t<CBackdropVisualImage,wil::err_returncode_policy>](#wilcom_ptr_tcbackdropvisualimagewilerr_returncode_policycom_ptr_tcbackdropvisualimagewilerr_returncode_policy)
	* [CBrush::CBrush](#cbrushcbrush)
	* [McTemplateU0ppffffubr6_EventWriteTransfer](#mctemplateu0ppffffubr6_eventwritetransfer)
	* [CLinearGradientLegacyMilBrush::CLinearGradientLegacyMilBrush](#clineargradientlegacymilbrushclineargradientlegacymilbrush)
	* [CValueColorTransformLayer::`vector_deleting_destructor'](#cvaluecolortransformlayervector_deleting_destructor)
	* [CDrawingContext::PushValueColorTransformLayer](#cdrawingcontextpushvaluecolortransformlayer)
	* [std::shared_ptr<CCursorState::ShapeData>::~shared_ptr<CCursorState::ShapeData>](#stdshared_ptrccursorstateshapedatashared_ptrccursorstateshapedata)
	* [CCursorState::MonitorData::operator=](#ccursorstatemonitordataoperator)
	* [COverlayContext::CVisitedContent::CalcContentOnTop](#coverlaycontextcvisitedcontentcalccontentontop)
	* [COverlayContext::CVisitedContent::CalcInvertedContentOnTop](#coverlaycontextcvisitedcontentcalcinvertedcontentontop)
	* [COverlayContext::ClearHardwareCursor](#coverlaycontextclearhardwarecursor)
	* [CCursorState::GetMonitorData](#ccursorstategetmonitordata)
	* [COverlayContext::IsCursorVisibleInSoftware](#coverlaycontextiscursorvisibleinsoftware)
	* [CCursorVisual::RemoveMonitorData](#ccursorvisualremovemonitordata)
	* [COverlayContext::UpdateHardwareCursor](#coverlaycontextupdatehardwarecursor)
	* [std::vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_>::erase](#stdvectorccursorstatemonitordatastdallocatorccursorstatemonitordata_erase)
	* [CInk::CInk](#cinkcink)
	* [CCompositionMagnifierBrush::IsOfType](#ccompositionmagnifierbrushisoftype)
	* [CValueColorTransformLayer::CValueColorTransformLayer](#cvaluecolortransformlayercvaluecolortransformlayer)
	* [CValueColorTransformLayer::Create](#cvaluecolortransformlayercreate)
	* [CValueColorTransformLayer::RenderLayer](#cvaluecolortransformlayerrenderlayer)
	* [CCursorVisual::IsMaskInvert](#ccursorvisualismaskinvert)
	* [CDrawingContext::IsSoftwareCursor](#cdrawingcontextissoftwarecursor)
	* [CCompositionMagnifierBrush::GetBVIBrushParameters](#ccompositionmagnifierbrushgetbvibrushparameters)
	* [CCompositionMagnifierBrush::GetBrushParameters](#ccompositionmagnifierbrushgetbrushparameters)
	* [CComposition::GetCursorVisuals](#ccompositiongetcursorvisuals)
	* [CCompositionMagnifierBrush::GetLayeredBrushParameters](#ccompositionmagnifierbrushgetlayeredbrushparameters)
	* [CCompositionMagnifierBrush::HitTest](#ccompositionmagnifierbrushhittest)
	* [CCompositionMagnifierBrush::ProcessClearFocusPoint](#ccompositionmagnifierbrushprocessclearfocuspoint)
	* [CCompositionMagnifierBrush::ProcessSetColorTransform](#ccompositionmagnifierbrushprocesssetcolortransform)
	* [CCompositionMagnifierBrush::ProcessSetFocusPoint](#ccompositionmagnifierbrushprocesssetfocuspoint)
	* [CCompositionMagnifierBrush::ProcessSetMagnification](#ccompositionmagnifierbrushprocesssetmagnification)
	* [CCompositionMagnifierBrush::ProcessSetShowCursor](#ccompositionmagnifierbrushprocesssetshowcursor)
	* [CCompositionMagnifierBrush::ProcessSetTrackCursor](#ccompositionmagnifierbrushprocesssettrackcursor)
	* [CCompositionMagnifierBrush::ProcessSetUseSmoothing](#ccompositionmagnifierbrushprocesssetusesmoothing)
	* [CCompositionMagnifierBrush::UnregisterCursorListener](#ccompositionmagnifierbrushunregistercursorlistener)
	* [CCompositionMagnifierBrush::UpdateCursorListenerRegistration](#ccompositionmagnifierbrushupdatecursorlistenerregistration)
	* [std::_Sort_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_39668c2dc6e40fe158f11373301c566a>_>_>](#std_sort_uncheckedstdshared_ptrccursorstateshapedata_std_ref_fnlambda_39668c2dc6e40fe158f11373301c566a__)
	* [std::shared_ptr<CCursorState::ShapeData>::shared_ptr<CCursorState::ShapeData>](#stdshared_ptrccursorstateshapedatashared_ptrccursorstateshapedata)
	* [std::vector<std::shared_ptr<CCursorState::ShapeData>,std::allocator<std::shared_ptr<CCursorState::ShapeData>_>_>::~vector<std::shared_ptr<CCursorState::ShapeData>,std::allocator<std::shared_ptr<CCursorState::ShapeData>_>_>](#stdvectorstdshared_ptrccursorstateshapedatastdallocatorstdshared_ptrccursorstateshapedata__vectorstdshared_ptrccursorstateshapedatastdallocatorstdshared_ptrccursorstateshapedata__)
	* [std::vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_>::~vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_>](#stdvectorccursorstatemonitordatastdallocatorccursorstatemonitordata_vectorccursorstatemonitordatastdallocatorccursorstatemonitordata_)
	* [CCursorState::MonitorData::CalcShapeRects](#ccursorstatemonitordatacalcshaperects)
	* [CCursorState::EnsureMonitorData](#ccursorstateensuremonitordata)
	* [CCursorState::ForceSoftwareShape](#ccursorstateforcesoftwareshape)
	* [CCursorState::ShapeData::GetNonRotatedSize](#ccursorstateshapedatagetnonrotatedsize)
	* [CCursorState::ShapeData::GetSize](#ccursorstateshapedatagetsize)
	* [CCursorState::GetSnappedShapeRect](#ccursorstategetsnappedshaperect)
	* [CCursorState::GetTrailPointOpacity](#ccursorstategettrailpointopacity)
	* [CCursorState::HasVisibleShape](#ccursorstatehasvisibleshape)
	* [CCursorState::UpdateHardwareCursor](#ccursorstateupdatehardwarecursor)
	* [std::vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_>::_Change_array](#stdvectorccursorstatemonitordatastdallocatorccursorstatemonitordata__change_array)
* [Modified](#modified)
	* [CCursorState::ProcessStateChanges](#ccursorstateprocessstatechanges)
	* [wil::details::FeatureImpl<__WilFeatureTraits_Feature_UxPerfImp>::GetCurrentFeatureEnabledState](#wildetailsfeatureimpl__wilfeaturetraits_feature_uxperfimpgetcurrentfeatureenabledstate)
	* [CShape::GetWidenedBounds](#cshapegetwidenedbounds)
	* [CRenderingTechnique::CreateSurfaceDrawListBrushForIntermediate](#crenderingtechniquecreatesurfacedrawlistbrushforintermediate)
	* [CComputeScribbleScheduler::DecideBufferToDispatch](#ccomputescribbleschedulerdecidebuffertodispatch)
	* [CCursorVisual::CollectOcclusion](#ccursorvisualcollectocclusion)
	* [COverlayContext::UpdateMPOCaps](#coverlaycontextupdatempocaps)
	* [CDrawingContext::FillRectanglesWithDrawListBitmap](#cdrawingcontextfillrectangleswithdrawlistbitmap)
	* [COcclusionContext::PostSubgraph](#cocclusioncontextpostsubgraph)
	* [CBitmapRenderStrategy::GetBrushParameters](#cbitmaprenderstrategygetbrushparameters)
	* [CVisual::GetRootTransform](#cvisualgetroottransform)
	* [CSurfaceDrawListBrush::CreateWithContentRect](#csurfacedrawlistbrushcreatewithcontentrect)
	* [CResampleLayer::RenderLanczos](#cresamplelayerrenderlanczos)
	* [CCursorState::SetShape](#ccursorstatesetshape)
	* [CPrimitiveGroupDrawListBrush::EnumerateBrushes](#cprimitivegroupdrawlistbrushenumeratebrushes)
	* [COcclusionContext::CheckAndRecordOverlayCandidateForContext](#cocclusioncontextcheckandrecordoverlaycandidateforcontext)
	* [CSurfaceDrawListBrush::CreateWithTextureTransform](#csurfacedrawlistbrushcreatewithtexturetransform)
	* [CBrushDrawListGenerator::GenerateDrawListPrimitive](#cbrushdrawlistgeneratorgeneratedrawlistprimitive)
	* [CDrawingContext::BeginFrame](#cdrawingcontextbeginframe)
	* [CDrawingContext::ValidateBVIEffectInputForRender](#cdrawingcontextvalidatebvieffectinputforrender)
	* [COverlayContext::OnSwapChainCreated](#coverlaycontextonswapchaincreated)
	* [CPreComputeContext::ProcessPostSubgraphBackdropInput](#cprecomputecontextprocesspostsubgraphbackdropinput)
	* [CNineGridDrawListBrush::EnumerateBrushes](#cninegriddrawlistbrushenumeratebrushes)
	* [CBaseExpression::SetOutputValue](#cbaseexpressionsetoutputvalue)
	* [wil::details::FeatureImpl<__WilFeatureTraits_Feature_DisplayBugBundle_2506>::GetCurrentFeatureEnabledState](#wildetailsfeatureimpl__wilfeaturetraits_feature_displaybugbundle_2506getcurrentfeatureenabledstate)
	* [CBlurredWallpaperBackdropBrush::IsOfType](#cblurredwallpaperbackdropbrushisoftype)
	* [CCursorVisual::ProcessStateChanges](#ccursorvisualprocessstatechanges)
	* [CCursorVisual::HasNonEmptyContent](#ccursorvisualhasnonemptycontent)
	* [CCursorState::FindMonitorData](#ccursorstatefindmonitordata)
	* [CCursorVisual::GetContentBounds](#ccursorvisualgetcontentbounds)
	* [std::vector<std::shared_ptr<CCursorState::ShapeData>,std::allocator<std::shared_ptr<CCursorState::ShapeData>_>_>::_Emplace_reallocate<std::shared_ptr<CCursorState::ShapeData>&___ptr64>](#stdvectorstdshared_ptrccursorstateshapedatastdallocatorstdshared_ptrccursorstateshapedata___emplace_reallocatestdshared_ptrccursorstateshapedata___ptr64)
	* [COcclusionContext::CollectCursor](#cocclusioncontextcollectcursor)
	* [COverlayContext::Present](#coverlaycontextpresent)
	* [CResampleLayer::CResampleLayer](#cresamplelayercresamplelayer)
	* [wil::details::FeatureImpl<__WilFeatureTraits_Feature_CompSwapchainDX12Support>::GetCurrentFeatureEnabledState](#wildetailsfeatureimpl__wilfeaturetraits_feature_compswapchaindx12supportgetcurrentfeatureenabledstate)
	* [CCursorVisual::RenderContent](#ccursorvisualrendercontent)
	* [CDrawingContext::FillShapeWithBitmap](#cdrawingcontextfillshapewithbitmap)
	* [CCpuClipAntialiasSinkContext::ProcessRenderCommands_OffscreenRenderPass](#ccpuclipantialiassinkcontextprocessrendercommands_offscreenrenderpass)
	* [wil::details::FeatureImpl<__WilFeatureTraits_Feature_Capture_DirtyRegionOcclusion>::GetCurrentFeatureEnabledState](#wildetailsfeatureimpl__wilfeaturetraits_feature_capture_dirtyregionocclusiongetcurrentfeatureenabledstate)
	* [std::_Destroy_range<std::allocator<CCursorState::MonitorData>_>](#std_destroy_rangestdallocatorccursorstatemonitordata_)
	* [CCursorState::~CCursorState](#ccursorstateccursorstate)
	* [COverlayContext::EndOverlayCandidateCollection](#coverlaycontextendoverlaycandidatecollection)
	* [CDesktopTree::NeedsCursorPositionUpdates](#cdesktoptreeneedscursorpositionupdates)
	* [COverlayContext::COverlayContext](#coverlaycontextcoverlaycontext)
	* [CDrawingContext::PreSubgraph](#cdrawingcontextpresubgraph)
	* [std::make_shared<CCursorState::ShapeData>](#stdmake_sharedccursorstateshapedata)
	* [CCursorState::CCursorState](#ccursorstateccursorstate)
	* [std::vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_>::_Emplace_reallocate<CCursorState::MonitorData>](#stdvectorccursorstatemonitordatastdallocatorccursorstatemonitordata__emplace_reallocateccursorstatemonitordata)
	* [CBaseExpression::CalculateValue](#cbaseexpressioncalculatevalue)
	* [CCursorState::PaddedBitmap::Reset](#ccursorstatepaddedbitmapreset)
	* [CThreadLocalObjectCache<CPolygonBuilder,CPolygonBuilder>::Alloc](#cthreadlocalobjectcachecpolygonbuildercpolygonbuilderalloc)
	* [CDrawingContext::PushResampleLayer](#cdrawingcontextpushresamplelayer)
	* [CScalar::IsOfType](#cscalarisoftype)
	* [COverlayContext::ApplyConfiguration](#coverlaycontextapplyconfiguration)
	* [wil::details::FeatureImpl<__WilFeatureTraits_Feature_FixLerpLayerRenderOpacity>::GetCurrentFeatureEnabledState](#wildetailsfeatureimpl__wilfeaturetraits_feature_fixlerplayerrenderopacitygetcurrentfeatureenabledstate)
	* [CCursorState::EnsureCompositionResources](#ccursorstateensurecompositionresources)
	* [std::vector<DWM_PRESENT_MULTIPLANE_OVERLAY,std::allocator<DWM_PRESENT_MULTIPLANE_OVERLAY>_>::_Emplace_reallocate<DWM_PRESENT_MULTIPLANE_OVERLAY_const&___ptr64>](#stdvectordwm_present_multiplane_overlaystdallocatordwm_present_multiplane_overlay__emplace_reallocatedwm_present_multiplane_overlay_const___ptr64)
	* [CResampleLayer::RenderXBR](#cresamplelayerrenderxbr)
	* [CResampleLayer::Create](#cresamplelayercreate)
	* [CCursorState::ScaleShape](#ccursorstatescaleshape)
	* [CDrawingContext::DrawSubVisualTree](#cdrawingcontextdrawsubvisualtree)
	* [CBitmapResourceRenderStrategy::GetBrushParametersWorker](#cbitmapresourcerenderstrategygetbrushparametersworker)
	* [wil::details::FeatureImpl<__WilFeatureTraits_Feature_TestAccPerf>::GetCurrentFeatureEnabledState](#wildetailsfeatureimpl__wilfeaturetraits_feature_testaccperfgetcurrentfeatureenabledstate)
	* [CDDisplayRenderTarget::SyncLock](#cddisplayrendertargetsynclock)
	* [CDrawingContext::FillShapeWithBitmapRealization](#cdrawingcontextfillshapewithbitmaprealization)
	* [COverlayContext::Reset](#coverlaycontextreset)
	* [COverlayContext::BeginOverlayCandidateCollection](#coverlaycontextbeginoverlaycandidatecollection)
	* [wil::details::FeatureImpl<__WilFeatureTraits_Feature_GatePerf>::ReportUsage](#wildetailsfeatureimpl__wilfeaturetraits_feature_gateperfreportusage)
	* [COverlayContext::CheckAndRecordOverlayCandidate](#coverlaycontextcheckandrecordoverlaycandidate)
	* [CResourceFactory::Create](#cresourcefactorycreate)
	* [CWindowNode::RenderContent](#cwindownoderendercontent)
	* [CMaskBrush::ProcessSetMask](#cmaskbrushprocesssetmask)
	* [CPolygonBuilder::`vector_deleting_destructor'](#cpolygonbuildervector_deleting_destructor)
	* [COcclusionContext::CheckAndRecordOverlayCandidate](#cocclusioncontextcheckandrecordoverlaycandidate)
	* [CCompositionTextLineGeneratedT<CCompositionTextLine,CTextObject>::IsOfType](#ccompositiontextlinegeneratedtccompositiontextlinectextobjectisoftype)
	* [COverlayContext::IsCursorScaledByHardware](#coverlaycontextiscursorscaledbyhardware)
	* [CCursorVisual::HasVisibleCursor](#ccursorvisualhasvisiblecursor)
	* [wil::details::FeatureImpl<__WilFeatureTraits_Feature_GatePerf>::GetCurrentFeatureEnabledState](#wildetailsfeatureimpl__wilfeaturetraits_feature_gateperfgetcurrentfeatureenabledstate)
	* [CDrawingContext::PushEffects](#cdrawingcontextpusheffects)
	* [CPreComputeContext::UpdateBVIForVisual](#cprecomputecontextupdatebviforvisual)
	* [CPathGeometry::ProcessSetPath](#cpathgeometryprocesssetpath)
	* [CCursorState::TryGetShape](#ccursorstatetrygetshape)
	* [CCursorState::MonitorData::MonitorData](#ccursorstatemonitordatamonitordata)
	* [FUN_1802ef069](#fun_1802ef069)
	* [std::_Partition_by_median_guess_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_4f96f9abf6f4efc73c76f9e3716c5312>_>_>](#std_partition_by_median_guess_uncheckedstdshared_ptrccursorstateshapedata_std_ref_fnlambda_4f96f9abf6f4efc73c76f9e3716c5312__)
	* [CCursorVisual::GetCursorShapeBounds](#ccursorvisualgetcursorshapebounds)
	* [CCursorState::EnsureDestRectAndTransform](#ccursorstateensuredestrectandtransform)
	* [CExpression::CExpression](#cexpressioncexpression)
	* [CLayerVisual::CLayerVisual](#clayervisualclayervisual)
	* [CCursorState::EnsureHardwareOverlayCleared](#ccursorstateensurehardwareoverlaycleared)
	* [CCursorState::UpdateHardwareCursorOverlay](#ccursorstateupdatehardwarecursoroverlay)
	* [CBatchDeferral::`scalar_deleting_destructor'](#cbatchdeferralscalar_deleting_destructor)
	* [CScenePbrMaterial::`vector_deleting_destructor'](#cscenepbrmaterialvector_deleting_destructor)
	* [CScenePbrMaterial::`vector_deleting_destructor'](#cscenepbrmaterialvector_deleting_destructor)
	* [CCursorVisual::SetNotificationMode](#ccursorvisualsetnotificationmode)
	* [std::shared_ptr<CCursorState::ShapeData>::operator=](#stdshared_ptrccursorstateshapedataoperator)
	* [wil::details::FeatureImpl<__WilFeatureTraits_Feature_TouchpadPublicApis2>::GetCurrentFeatureEnabledState](#wildetailsfeatureimpl__wilfeaturetraits_feature_touchpadpublicapis2getcurrentfeatureenabledstate)
	* [COverlayContext::TryEnableHardwareCursor](#coverlaycontexttryenablehardwarecursor)
	* [<lambda_4f96f9abf6f4efc73c76f9e3716c5312>::operator()<std::shared_ptr<CCursorState::ShapeData>,std::shared_ptr<CCursorState::ShapeData>_>](#lambda_4f96f9abf6f4efc73c76f9e3716c5312operatorstdshared_ptrccursorstateshapedatastdshared_ptrccursorstateshapedata_)
	* [wil::details::FeatureImpl<__WilFeatureTraits_Feature_TouchpadPublicApis2>::GetCurrentFeatureEnabledState](#wildetailsfeatureimpl__wilfeaturetraits_feature_touchpadpublicapis2getcurrentfeatureenabledstate)
	* [CVisual::EnsureTreeData](#cvisualensuretreedata)
	* [CDrawingContext::DrawVisualTree](#cdrawingcontextdrawvisualtree)
	* [CScenePbrMaterialGeneratedT<CScenePbrMaterial,CSceneMaterial>::~CScenePbrMaterialGeneratedT<CScenePbrMaterial,CSceneMaterial>](#cscenepbrmaterialgeneratedtcscenepbrmaterialcscenematerialcscenepbrmaterialgeneratedtcscenepbrmaterialcscenematerial)
	* [std::_Sort_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_4f96f9abf6f4efc73c76f9e3716c5312>_>_>](#std_sort_uncheckedstdshared_ptrccursorstateshapedata_std_ref_fnlambda_4f96f9abf6f4efc73c76f9e3716c5312__)
	* [McTemplateU0nqqt_EventWriteTransfer](#mctemplateu0nqqt_eventwritetransfer)
	* [CResource::SetPropertyImpl](#cresourcesetpropertyimpl)
	* [CCursorVisual::GetCursorShapeBounds](#ccursorvisualgetcursorshapebounds)
	* [COverlayContext::DisableHardwareCursor](#coverlaycontextdisablehardwarecursor)
	* [CCachedVisualImage::MarkAllTargetsDirty](#ccachedvisualimagemarkalltargetsdirty)
	* [DwmDbg::Backdrops::LogBrushEtwEvent](#dwmdbgbackdropslogbrushetwevent)
	* [CWindowNode::GetWindowOcclusionInfo](#cwindownodegetwindowocclusioninfo)
	* [CGeometry::CGeometry](#cgeometrycgeometry)
	* [CBitmapResource::CBitmapResource](#cbitmapresourcecbitmapresource)
* [Modified (No Code Changes)](#modified-no-code-changes)
	* [Section Skipped](#section-skipped)

# Visual Chart Diff



```mermaid

flowchart LR

CCursorStateProcessStateChanges-2-old<--Match 53%-->CCursorStateProcessStateChanges-2-new
wildetailsFeatureImpl__WilFeatureTraits_Feature_UxPerfImpGetCurrentFeatureEnabledState-2-old<--Match 88%-->wildetailsFeatureImpl__WilFeatureTraits_Feature_UxPerfImpGetCurrentFeatureEnabledState-2-new
CShapeGetWidenedBounds-5-old<--Match 92%-->CShapeGetWidenedBounds-5-new
CRenderingTechniqueCreateSurfaceDrawListBrushForIntermediate-4-old<--Match 86%-->CRenderingTechniqueCreateSurfaceDrawListBrushForIntermediate-4-new
CComputeScribbleSchedulerDecideBufferToDispatch-3-old<--Match 97%-->CComputeScribbleSchedulerDecideBufferToDispatch-3-new
CCursorVisualCollectOcclusion-3-old<--Match 71%-->CCursorVisualCollectOcclusion-3-new
COverlayContextUpdateMPOCaps-1-old<--Match 96%-->COverlayContextUpdateMPOCaps-1-new
CDrawingContextFillRectanglesWithDrawListBitmap-4-old<--Match 66%-->CDrawingContextFillRectanglesWithDrawListBitmap-4-new
COcclusionContextPostSubgraph-3-old<--Match 60%-->COcclusionContextPostSubgraph-3-new
CBitmapRenderStrategyGetBrushParameters-3-old<--Match 37%-->CBitmapRenderStrategyGetBrushParameters-3-new
CVisualGetRootTransform-4-old<--Match 94%-->CVisualGetRootTransform-4-new
CSurfaceDrawListBrushCreateWithContentRect-4-old<--Match 77%-->CSurfaceDrawListBrushCreateWithContentRect-4-new
CResampleLayerRenderLanczos-5-old<--Match 99%-->CResampleLayerRenderLanczos-5-new
CCursorStateSetShape-8-old<--Match 93%-->CCursorStateSetShape-8-new
CPrimitiveGroupDrawListBrushEnumerateBrushes-4-old<--Match 84%-->CPrimitiveGroupDrawListBrushEnumerateBrushes-4-new
COcclusionContextCheckAndRecordOverlayCandidateForContext-8-old<--Match 89%-->COcclusionContextCheckAndRecordOverlayCandidateForContext-8-new
CSurfaceDrawListBrushCreateWithTextureTransform-4-old<--Match 70%-->CSurfaceDrawListBrushCreateWithTextureTransform-4-new
CBrushDrawListGeneratorGenerateDrawListPrimitive-2-old<--Match 8%-->CBrushDrawListGeneratorGenerateDrawListPrimitive-2-new
CDrawingContextBeginFrame-6-old<--Match 94%-->CDrawingContextBeginFrame-6-new
CDrawingContextValidateBVIEffectInputForRender-3-old<--Match 81%-->CDrawingContextValidateBVIEffectInputForRender-3-new
COverlayContextOnSwapChainCreated-1-old<--Match 96%-->COverlayContextOnSwapChainCreated-1-new
CPreComputeContextProcessPostSubgraphBackdropInput-3-old<--Match 13%-->CPreComputeContextProcessPostSubgraphBackdropInput-3-new
CNineGridDrawListBrushEnumerateBrushes-4-old<--Match 93%-->CNineGridDrawListBrushEnumerateBrushes-4-new
CBaseExpressionSetOutputValue-2-old<--Match 28%-->CBaseExpressionSetOutputValue-2-new
wildetailsFeatureImpl__WilFeatureTraits_Feature_DisplayBugBundle_2506GetCurrentFeatureEnabledState-2-old<--Match 94%-->wildetailsFeatureImpl__WilFeatureTraits_Feature_DisplayBugBundle_2506GetCurrentFeatureEnabledState-2-new
CBlurredWallpaperBackdropBrushIsOfType-2-old<--Match 56%-->CBlurredWallpaperBackdropBrushIsOfType-2-new
dwmcore-10.0.26100.7623.dll<--88ommited-->dwmcore-10.0.26100.7840.dll

subgraph dwmcore-10.0.26100.7840.dll
    CCursorStateProcessStateChanges-2-new
wildetailsFeatureImpl__WilFeatureTraits_Feature_UxPerfImpGetCurrentFeatureEnabledState-2-new
CShapeGetWidenedBounds-5-new
CRenderingTechniqueCreateSurfaceDrawListBrushForIntermediate-4-new
CComputeScribbleSchedulerDecideBufferToDispatch-3-new
CCursorVisualCollectOcclusion-3-new
COverlayContextUpdateMPOCaps-1-new
CDrawingContextFillRectanglesWithDrawListBitmap-4-new
COcclusionContextPostSubgraph-3-new
CBitmapRenderStrategyGetBrushParameters-3-new
CVisualGetRootTransform-4-new
CSurfaceDrawListBrushCreateWithContentRect-4-new
CResampleLayerRenderLanczos-5-new
CCursorStateSetShape-8-new
CPrimitiveGroupDrawListBrushEnumerateBrushes-4-new
COcclusionContextCheckAndRecordOverlayCandidateForContext-8-new
CSurfaceDrawListBrushCreateWithTextureTransform-4-new
CBrushDrawListGeneratorGenerateDrawListPrimitive-2-new
CDrawingContextBeginFrame-6-new
CDrawingContextValidateBVIEffectInputForRender-3-new
COverlayContextOnSwapChainCreated-1-new
CPreComputeContextProcessPostSubgraphBackdropInput-3-new
CNineGridDrawListBrushEnumerateBrushes-4-new
CBaseExpressionSetOutputValue-2-new
wildetailsFeatureImpl__WilFeatureTraits_Feature_DisplayBugBundle_2506GetCurrentFeatureEnabledState-2-new
CBlurredWallpaperBackdropBrushIsOfType-2-new
    subgraph Added
direction LR
CSurfaceDrawListBrush-CSurfaceDrawListBrush
    CTreeData-GetBackdropVisualImage
    CSurfaceDrawListBrush-ComputeLocalToTextureTransform
    CBrushDrawListGenerator-ProcessBrushClampEdges_Rectangle
    CDrawListBitmap-CDrawListBitmap
    HrAlloc
    wil-com_ptr_tCBackdropVisualImagewil-err_returncode_policy-com_ptr_tCBackdropVisualImagewil-err_returncode_policy
    CBrush-CBrush
    McTemplateU0ppffffubr6_EventWriteTransfer
    CLinearGradientLegacyMilBrush-CLinearGradientLegacyMilBrush
    CValueColorTransformLayer-vector_deleting_destructor
    CDrawingContext-PushValueColorTransformLayer
    std-shared_ptrCCursorState-ShapeData-shared_ptrCCursorState-ShapeData
    CCursorState-MonitorData-operator
    COverlayContext-CVisitedContent-CalcContentOnTop
    COverlayContext-CVisitedContent-CalcInvertedContentOnTop
    COverlayContext-ClearHardwareCursor
    CCursorState-GetMonitorData
    COverlayContext-IsCursorVisibleInSoftware
    CCursorVisual-RemoveMonitorData
    COverlayContext-UpdateHardwareCursor
    std-vectorCCursorState-MonitorDatastd-allocatorCCursorState-MonitorData_-erase
    CInk-CInk
    CCompositionMagnifierBrush-IsOfType
    CValueColorTransformLayer-CValueColorTransformLayer
    CValueColorTransformLayer-Create
    CValueColorTransformLayer-RenderLayer
    32_more_added_funcs_omitted
end
end

subgraph dwmcore-10.0.26100.7623.dll
    CCursorStateProcessStateChanges-2-old
wildetailsFeatureImpl__WilFeatureTraits_Feature_UxPerfImpGetCurrentFeatureEnabledState-2-old
CShapeGetWidenedBounds-5-old
CRenderingTechniqueCreateSurfaceDrawListBrushForIntermediate-4-old
CComputeScribbleSchedulerDecideBufferToDispatch-3-old
CCursorVisualCollectOcclusion-3-old
COverlayContextUpdateMPOCaps-1-old
CDrawingContextFillRectanglesWithDrawListBitmap-4-old
COcclusionContextPostSubgraph-3-old
CBitmapRenderStrategyGetBrushParameters-3-old
CVisualGetRootTransform-4-old
CSurfaceDrawListBrushCreateWithContentRect-4-old
CResampleLayerRenderLanczos-5-old
CCursorStateSetShape-8-old
CPrimitiveGroupDrawListBrushEnumerateBrushes-4-old
COcclusionContextCheckAndRecordOverlayCandidateForContext-8-old
CSurfaceDrawListBrushCreateWithTextureTransform-4-old
CBrushDrawListGeneratorGenerateDrawListPrimitive-2-old
CDrawingContextBeginFrame-6-old
CDrawingContextValidateBVIEffectInputForRender-3-old
COverlayContextOnSwapChainCreated-1-old
CPreComputeContextProcessPostSubgraphBackdropInput-3-old
CNineGridDrawListBrushEnumerateBrushes-4-old
CBaseExpressionSetOutputValue-2-old
wildetailsFeatureImpl__WilFeatureTraits_Feature_DisplayBugBundle_2506GetCurrentFeatureEnabledState-2-old
CBlurredWallpaperBackdropBrushIsOfType-2-old
    subgraph Deleted
direction LR
CThreadContext-GetObjectCache
    CWindowOcclusionInfo-GetFlipExSurfaceZ
    detail-vector_facadestd-unique_ptrCOcclusionInfostd-default_deleteCOcclusionInfo_detail-buffer_implstd-unique_ptrCOcclusionInfostd-default_deleteCOcclusionInfo_11detail-liberal_expansion_policy_-push_back
    FUN_1800ee5a8
    CPropertySet-operator_new
    CRectangleGeometry-operator_new
    CPropertySet-CPropertySet
    CComponentTransform3D-operator_new
    CRectangleGeometry-CRectangleGeometry
    CPrimitiveGroup-operator_new
    CEffectGroup-operator_new
    CInteraction-operator_new
    CGdiSpriteBitmap-operator_new
    CImageLegacyMilBrush-operator_new
    CWindowNode-operator_new
    CManipulationTransform-operator_new
    CProjectedShadowCaster-operator_new
    CSurfaceBrush-operator_new
    CExpression-operator_new
    std-unique_ptrCOcclusionInfostd-default_deleteCOcclusionInfo_-unique_ptrCOcclusionInfostd-default_deleteCOcclusionInfo_
    std-_Get_size_of_n128
    CShapeVisual-operator_new
    CPathGeometry-CPathGeometry
    CDrawingContext-ComputeExternalLayerOffsetAndBounds
    CWindowNode-RenderBlackContent
    CEffectBrush-CEffectBrush
    CImageLegacyMilBrush-CImageLegacyMilBrush
    29_more_deleted_funcs_omitted
end
end

```


```mermaid
pie showData
    title Function Matches - 99.5656%
"unmatched_funcs_len" : 111
"matched_funcs_len" : 25443
```



```mermaid
pie showData
    title Matched Function Similarity - 97.7676%
"matched_funcs_with_code_changes_len" : 113
"matched_funcs_with_non_code_changes_len" : 455
"matched_funcs_no_changes_len" : 24875
```

# Metadata

## Ghidra Diff Engine

### Command Line

#### Captured Command Line


```
ghidriff --project-location C:\tools\hugo\patchpalooza\ghidriff\CVE-2026-21519\ghidra_projects --project-name CVE-2026-21519 --symbols-path C:\tools\hugo\patchpalooza\ghidriff\CVE-2026-21519\symbols --gzfs-path gzfs --threaded --log-level INFO --file-log-level INFO --log-path ghidriff.log --min-func-len 10 --gdt [] --bsim --max-ram-percent 60.0 --max-section-funcs 200 --md-title dwmcore.dll KB5074109 vs KB5077181 (CVE-2026-21519) dwmcore-10.0.26100.7623.dll dwmcore-10.0.26100.7840.dll
```


#### Verbose Args


<details>

```
--old ['C:\\tools\\hugo\\patchpalooza\\ghidriff\\CVE-2026-21519\\dwmcore-10.0.26100.7623.dll'] --new [['C:\\tools\\hugo\\patchpalooza\\ghidriff\\CVE-2026-21519\\dwmcore-10.0.26100.7840.dll']] --engine VersionTrackingDiff --output-path C:\tools\hugo\patchpalooza\ghidriff\CVE-2026-21519\output --summary False --project-location C:\tools\hugo\patchpalooza\ghidriff\CVE-2026-21519\ghidra_projects --project-name CVE-2026-21519 --symbols-path C:\tools\hugo\patchpalooza\ghidriff\CVE-2026-21519\symbols --gzfs-path gzfs --base-address None --program-options None --threaded True --force-analysis False --force-diff False --no-symbols False --log-level INFO --file-log-level INFO --log-path ghidriff.log --va False --min-func-len 10 --use-calling-counts False --gdt [] --bsim True --bsim-full False --max-ram-percent 60.0 --print-flags False --jvm-args None --side-by-side False --max-section-funcs 200 --md-title dwmcore.dll KB5074109 vs KB5077181 (CVE-2026-21519)
```


</details>

#### Download Original PEs


```
wget https://msdl.microsoft.com/download/symbols/dwmcore/46568E3C431000/dwmcore -O dwmcore.x64.10.0.26100.7623
wget https://msdl.microsoft.com/download/symbols/dwmcore/EE4AFD74432000/dwmcore -O dwmcore.x64.10.0.26100.7840
```


## Binary Metadata Diff


```diff
--- dwmcore-10.0.26100.7623.dll Meta
+++ dwmcore-10.0.26100.7840.dll Meta
@@ -1,44 +1,44 @@
-Program Name: dwmcore-10.0.26100.7623.dll
+Program Name: dwmcore-10.0.26100.7840.dll
 Language ID: x86:LE:64:default (4.7)
 Compiler ID: windows
 Processor: x86
 Endian: Little
 Address Size: 64
 Minimum Address: 180000000
 Maximum Address: ff0000184f
-# of Bytes: 4400720
+# of Bytes: 4404848
 # of Memory Blocks: 10
-# of Instructions: 725147
-# of Defined Data: 57246
-# of Functions: 12792
-# of Symbols: 112096
-# of Data Types: 6622
+# of Instructions: 725076
+# of Defined Data: 57075
+# of Functions: 12762
+# of Symbols: 111825
+# of Data Types: 6647
 # of Data Type Categories: 394
 Analyzed: true
 Compiler: visualstudio:unknown
 Created With Ghidra Version: 12.1.2
-Date Created: Fri Jul 24 22:50:40 SGT 2026
+Date Created: Fri Jul 24 22:50:52 SGT 2026
 Executable Format: Portable Executable (PE)
-Executable Location: /C:/tools/hugo/patchpalooza/ghidriff/CVE-2026-21519/dwmcore-10.0.26100.7623.dll
-Executable MD5: db168b893bdcbca7dd648d89f6d35c11
-Executable SHA256: fafc2eef140df62be31213bb6a74058273aaf56cf09bb383d05c15c25d952ba5
-FSRL: file:///C:/tools/hugo/patchpalooza/ghidriff/CVE-2026-21519/dwmcore-10.0.26100.7623.dll?MD5=db168b893bdcbca7dd648d89f6d35c11
+Executable Location: /C:/tools/hugo/patchpalooza/ghidriff/CVE-2026-21519/dwmcore-10.0.26100.7840.dll
+Executable MD5: b6d5c840954572c6577630d73cc72d65
+Executable SHA256: 68b48704c3c38b0badd5004b5ba0840afa3f20b6b1c64356e269b0e5947ad559
+FSRL: file:///C:/tools/hugo/patchpalooza/ghidriff/CVE-2026-21519/dwmcore-10.0.26100.7840.dll?MD5=b6d5c840954572c6577630d73cc72d65
 PDB Age: 1
 PDB File: dwmcore.pdb
-PDB GUID: 56a78d7a-cba9-8067-8b62-3e5784b9e094
+PDB GUID: 8f1e559b-e229-182f-e1e2-ab0a8f72abad
 PDB Loaded: true
 PDB Version: RSDS
 PE Property[CompanyName]: Microsoft Corporation
 PE Property[FileDescription]: Microsoft DWM Core Library
-PE Property[FileVersion]: 10.0.26100.7623 (WinBuild.160101.0800)
+PE Property[FileVersion]: 10.0.26100.7840 (WinBuild.160101.0800)
 PE Property[InternalName]: dwmcore
 PE Property[LegalCopyright]: © Microsoft Corporation. All rights reserved.
 PE Property[OriginalFilename]: dwmcore
 PE Property[ProductName]: Microsoft® Windows® Operating System
-PE Property[ProductVersion]: 10.0.26100.7623
+PE Property[ProductVersion]: 10.0.26100.7840
 PE Property[Translation]: 4b00409
 Preferred Root Namespace Category: 
 RTTI Found: true
 Relocatable: true
 SectionAlignment: 4096
 Should Ask To Analyze: false

```


## Program Options


<details>
<summary>Ghidra dwmcore-10.0.26100.7623.dll Decompiler Options</summary>


|Decompiler Option|Value|
| :---: | :---: |
|Prototype Evaluation|__fastcall|

</details>


<details>
<summary>Ghidra dwmcore-10.0.26100.7623.dll Specification extensions Options</summary>


|Specification extensions Option|Value|
| :---: | :---: |
|FormatVersion|0|
|VersionCounter|0|

</details>


<details>
<summary>Ghidra dwmcore-10.0.26100.7623.dll Analyzers Options</summary>


|Analyzers Option|Value|
| :---: | :---: |
|ASCII Strings|true|
|ASCII Strings.Create Strings Containing Existing Strings|true|
|ASCII Strings.Create Strings Containing References|true|
|ASCII Strings.Force Model Reload|false|
|ASCII Strings.Minimum String Length|LEN_5|
|ASCII Strings.Model File|StringModel.sng|
|ASCII Strings.Require Null Termination for String|true|
|ASCII Strings.Search Only in Accessible Memory Blocks|true|
|ASCII Strings.String Start Alignment|ALIGN_1|
|ASCII Strings.String end alignment|4|
|Aggressive Instruction Finder|false|
|Aggressive Instruction Finder.Create Analysis Bookmarks|true|
|Apply Data Archives|true|
|Apply Data Archives.Archive Chooser|[Auto-Detect]|
|Apply Data Archives.Create Analysis Bookmarks|true|
|Apply Data Archives.GDT User File Archive Path|None|
|Apply Data Archives.User Project Archive Path|None|
|Call Convention ID|true|
|Call Convention ID.Analysis Decompiler Timeout (sec)|60|
|Call-Fixup Installer|true|
|Condense Filler Bytes|false|
|Condense Filler Bytes.Filler Value|Auto|
|Condense Filler Bytes.Minimum number of sequential bytes|1|
|Create Address Tables|true|
|Create Address Tables.Allow Offcut References|false|
|Create Address Tables.Auto Label Table|false|
|Create Address Tables.Create Analysis Bookmarks|true|
|Create Address Tables.Maxmimum Pointer Distance|16777215|
|Create Address Tables.Minimum Pointer Address|4132|
|Create Address Tables.Minimum Table Size|2|
|Create Address Tables.Pointer Alignment|1|
|Create Address Tables.Relocation Table Guide|true|
|Create Address Tables.Table Alignment|4|
|Data Reference|true|
|Data Reference.Address Table Alignment|1|
|Data Reference.Address Table Minimum Size|2|
|Data Reference.Align End of Strings|false|
|Data Reference.Ascii String References|true|
|Data Reference.Create Address Tables|true|
|Data Reference.Minimum String Length|5|
|Data Reference.References to Pointers|true|
|Data Reference.Relocation Table Guide|true|
|Data Reference.Respect Execute Flag|true|
|Data Reference.Subroutine References|true|
|Data Reference.Switch Table References|false|
|Data Reference.Unicode String References|true|
|Decompiler Parameter ID|false|
|Decompiler Parameter ID.Analysis Clear Level|ANALYSIS|
|Decompiler Parameter ID.Analysis Decompiler Timeout (sec)|60|
|Decompiler Parameter ID.Commit Data Types|true|
|Decompiler Parameter ID.Commit Void Return Values|false|
|Decompiler Parameter ID.Prototype Evaluation|__fastcall|
|Decompiler Switch Analysis|true|
|Decompiler Switch Analysis.Analysis Decompiler Timeout (sec)|60|
|Demangler Microsoft|true|
|Demangler Microsoft.msdApplyOptions|{
	interpretation: FUNCTION_IF_EXISTS,
	applyCallingConvention: true,
	applySignature: true,
	demangleOnlyKnownPatterns: true,
	doDisassembly: true
}|
|Demangler Microsoft.msdOutputOptions|ghidra.app.util.demangler.microsoft.options.MsdOutputOption@9e5b|
|Disassemble Entry Points|true|
|Disassemble Entry Points.Respect Execute Flag|true|
|Embedded Media|true|
|Embedded Media.Create Analysis Bookmarks|true|
|External Entry References|true|
|Function ID|true|
|Function ID.Always Apply FID Labels|false|
|Function ID.Create Analysis Bookmarks|true|
|Function ID.Instruction Count Threshold|14.6|
|Function ID.Multiple Match Threshold|30.0|
|Function Start Search|true|
|Function Start Search.Bookmark Functions|false|
|Function Start Search.Search Data Blocks|false|
|Non-Returning Functions - Discovered|true|
|Non-Returning Functions - Discovered.Create Analysis Bookmarks|true|
|Non-Returning Functions - Discovered.Function Non-return Threshold|3|
|Non-Returning Functions - Discovered.Repair Flow Damage|true|
|Non-Returning Functions - Known|true|
|Non-Returning Functions - Known.Create Analysis Bookmarks|true|
|PDB MSDIA|false|
|PDB MSDIA.Search untrusted symbol servers|false|
|PDB Universal|true|
|PDB Universal.Import Source Line Info|true|
|PDB Universal.Search untrusted symbol servers|false|
|Reference|true|
|Reference.Address Table Alignment|1|
|Reference.Address Table Minimum Size|2|
|Reference.Align End of Strings|false|
|Reference.Ascii String References|true|
|Reference.Create Address Tables|true|
|Reference.Minimum String Length|5|
|Reference.References to Pointers|true|
|Reference.Relocation Table Guide|true|
|Reference.Respect Execute Flag|true|
|Reference.Subroutine References|true|
|Reference.Switch Table References|false|
|Reference.Unicode String References|true|
|Scalar Operand References|true|
|Scalar Operand References.Relocation Table Guide|true|
|Shared Return Calls|true|
|Shared Return Calls.Allow Conditional Jumps|false|
|Shared Return Calls.Assume Contiguous Functions Only|true|
|Stack|true|
|Stack.Create Local Variables|true|
|Stack.Create Param Variables|false|
|Stack.Max Threads|2|
|Subroutine References|true|
|Subroutine References.Create Thunks Early|true|
|Variadic Function Signature Override|false|
|Variadic Function Signature Override.Create Analysis Bookmarks|false|
|Windows x86 PE Exception Handling|true|
|Windows x86 PE RTTI Analyzer|true|
|Windows x86 Thread Environment Block (TEB) Analyzer|true|
|Windows x86 Thread Environment Block (TEB) Analyzer.Starting Address of the TEB||
|Windows x86 Thread Environment Block (TEB) Analyzer.Windows OS Version|Windows 7|
|WindowsPE x86 Propagate External Parameters|false|
|WindowsResourceReference|true|
|WindowsResourceReference.Create Analysis Bookmarks|true|
|x86 Constant Reference Analyzer|true|
|x86 Constant Reference Analyzer.Create Data from pointer|false|
|x86 Constant Reference Analyzer.Function parameter/return Pointer analysis|true|
|x86 Constant Reference Analyzer.Max Threads|2|
|x86 Constant Reference Analyzer.Min absolute reference|4|
|x86 Constant Reference Analyzer.Require pointer param data type|false|
|x86 Constant Reference Analyzer.Speculative reference max|256|
|x86 Constant Reference Analyzer.Speculative reference min|1024|
|x86 Constant Reference Analyzer.Stored Value Pointer analysis|true|
|x86 Constant Reference Analyzer.Trust values read from writable memory|true|

</details>


<details>
<summary>Ghidra dwmcore-10.0.26100.7840.dll Decompiler Options</summary>


|Decompiler Option|Value|
| :---: | :---: |
|Prototype Evaluation|__fastcall|

</details>


<details>
<summary>Ghidra dwmcore-10.0.26100.7840.dll Specification extensions Options</summary>


|Specification extensions Option|Value|
| :---: | :---: |
|FormatVersion|0|
|VersionCounter|0|

</details>


<details>
<summary>Ghidra dwmcore-10.0.26100.7840.dll Analyzers Options</summary>


|Analyzers Option|Value|
| :---: | :---: |
|ASCII Strings|true|
|ASCII Strings.Create Strings Containing Existing Strings|true|
|ASCII Strings.Create Strings Containing References|true|
|ASCII Strings.Force Model Reload|false|
|ASCII Strings.Minimum String Length|LEN_5|
|ASCII Strings.Model File|StringModel.sng|
|ASCII Strings.Require Null Termination for String|true|
|ASCII Strings.Search Only in Accessible Memory Blocks|true|
|ASCII Strings.String Start Alignment|ALIGN_1|
|ASCII Strings.String end alignment|4|
|Aggressive Instruction Finder|false|
|Aggressive Instruction Finder.Create Analysis Bookmarks|true|
|Apply Data Archives|true|
|Apply Data Archives.Archive Chooser|[Auto-Detect]|
|Apply Data Archives.Create Analysis Bookmarks|true|
|Apply Data Archives.GDT User File Archive Path|None|
|Apply Data Archives.User Project Archive Path|None|
|Call Convention ID|true|
|Call Convention ID.Analysis Decompiler Timeout (sec)|60|
|Call-Fixup Installer|true|
|Condense Filler Bytes|false|
|Condense Filler Bytes.Filler Value|Auto|
|Condense Filler Bytes.Minimum number of sequential bytes|1|
|Create Address Tables|true|
|Create Address Tables.Allow Offcut References|false|
|Create Address Tables.Auto Label Table|false|
|Create Address Tables.Create Analysis Bookmarks|true|
|Create Address Tables.Maxmimum Pointer Distance|16777215|
|Create Address Tables.Minimum Pointer Address|4132|
|Create Address Tables.Minimum Table Size|2|
|Create Address Tables.Pointer Alignment|1|
|Create Address Tables.Relocation Table Guide|true|
|Create Address Tables.Table Alignment|4|
|Data Reference|true|
|Data Reference.Address Table Alignment|1|
|Data Reference.Address Table Minimum Size|2|
|Data Reference.Align End of Strings|false|
|Data Reference.Ascii String References|true|
|Data Reference.Create Address Tables|true|
|Data Reference.Minimum String Length|5|
|Data Reference.References to Pointers|true|
|Data Reference.Relocation Table Guide|true|
|Data Reference.Respect Execute Flag|true|
|Data Reference.Subroutine References|true|
|Data Reference.Switch Table References|false|
|Data Reference.Unicode String References|true|
|Decompiler Parameter ID|false|
|Decompiler Parameter ID.Analysis Clear Level|ANALYSIS|
|Decompiler Parameter ID.Analysis Decompiler Timeout (sec)|60|
|Decompiler Parameter ID.Commit Data Types|true|
|Decompiler Parameter ID.Commit Void Return Values|false|
|Decompiler Parameter ID.Prototype Evaluation|__fastcall|
|Decompiler Switch Analysis|true|
|Decompiler Switch Analysis.Analysis Decompiler Timeout (sec)|60|
|Demangler Microsoft|true|
|Demangler Microsoft.msdApplyOptions|{
	interpretation: FUNCTION_IF_EXISTS,
	applyCallingConvention: true,
	applySignature: true,
	demangleOnlyKnownPatterns: true,
	doDisassembly: true
}|
|Demangler Microsoft.msdOutputOptions|ghidra.app.util.demangler.microsoft.options.MsdOutputOption@9e5b|
|Disassemble Entry Points|true|
|Disassemble Entry Points.Respect Execute Flag|true|
|Embedded Media|true|
|Embedded Media.Create Analysis Bookmarks|true|
|External Entry References|true|
|Function ID|true|
|Function ID.Always Apply FID Labels|false|
|Function ID.Create Analysis Bookmarks|true|
|Function ID.Instruction Count Threshold|14.6|
|Function ID.Multiple Match Threshold|30.0|
|Function Start Search|true|
|Function Start Search.Bookmark Functions|false|
|Function Start Search.Search Data Blocks|false|
|Non-Returning Functions - Discovered|true|
|Non-Returning Functions - Discovered.Create Analysis Bookmarks|true|
|Non-Returning Functions - Discovered.Function Non-return Threshold|3|
|Non-Returning Functions - Discovered.Repair Flow Damage|true|
|Non-Returning Functions - Known|true|
|Non-Returning Functions - Known.Create Analysis Bookmarks|true|
|PDB MSDIA|false|
|PDB MSDIA.Search untrusted symbol servers|false|
|PDB Universal|true|
|PDB Universal.Import Source Line Info|true|
|PDB Universal.Search untrusted symbol servers|false|
|Reference|true|
|Reference.Address Table Alignment|1|
|Reference.Address Table Minimum Size|2|
|Reference.Align End of Strings|false|
|Reference.Ascii String References|true|
|Reference.Create Address Tables|true|
|Reference.Minimum String Length|5|
|Reference.References to Pointers|true|
|Reference.Relocation Table Guide|true|
|Reference.Respect Execute Flag|true|
|Reference.Subroutine References|true|
|Reference.Switch Table References|false|
|Reference.Unicode String References|true|
|Scalar Operand References|true|
|Scalar Operand References.Relocation Table Guide|true|
|Shared Return Calls|true|
|Shared Return Calls.Allow Conditional Jumps|false|
|Shared Return Calls.Assume Contiguous Functions Only|true|
|Stack|true|
|Stack.Create Local Variables|true|
|Stack.Create Param Variables|false|
|Stack.Max Threads|2|
|Subroutine References|true|
|Subroutine References.Create Thunks Early|true|
|Variadic Function Signature Override|false|
|Variadic Function Signature Override.Create Analysis Bookmarks|false|
|Windows x86 PE Exception Handling|true|
|Windows x86 PE RTTI Analyzer|true|
|Windows x86 Thread Environment Block (TEB) Analyzer|true|
|Windows x86 Thread Environment Block (TEB) Analyzer.Starting Address of the TEB||
|Windows x86 Thread Environment Block (TEB) Analyzer.Windows OS Version|Windows 7|
|WindowsPE x86 Propagate External Parameters|false|
|WindowsResourceReference|true|
|WindowsResourceReference.Create Analysis Bookmarks|true|
|x86 Constant Reference Analyzer|true|
|x86 Constant Reference Analyzer.Create Data from pointer|false|
|x86 Constant Reference Analyzer.Function parameter/return Pointer analysis|true|
|x86 Constant Reference Analyzer.Max Threads|2|
|x86 Constant Reference Analyzer.Min absolute reference|4|
|x86 Constant Reference Analyzer.Require pointer param data type|false|
|x86 Constant Reference Analyzer.Speculative reference max|256|
|x86 Constant Reference Analyzer.Speculative reference min|1024|
|x86 Constant Reference Analyzer.Stored Value Pointer analysis|true|
|x86 Constant Reference Analyzer.Trust values read from writable memory|true|

</details>

## Diff Stats



|Stat|Value|
| :---: | :---: |
|added_funcs_len|57|
|deleted_funcs_len|54|
|modified_funcs_len|568|
|added_symbols_len|10|
|deleted_symbols_len|10|
|diff_time|220.35678434371948|
|deleted_strings_len|1|
|added_strings_len|3|
|match_types|Counter({'SymbolsHash': 12156, 'StructuralGraphHash': 415, 'ExternalsName': 349, 'ExactInstructionsFunctionHasher': 291, 'BulkBasicBlockMnemonicHash': 246, 'BSIM': 33, 'Implied Match': 31, 'SigCallingCalledHasher': 21, 'ExactBytesFunctionHasher': 13, 'StructuralGraphExactHash': 6, 'ExactMnemonicsFunctionHasher': 1, 'StringsRefsHasher': 1})|
|items_to_process|699|
|diff_types|Counter({'address': 554, 'refcount': 484, 'calling': 409, 'fullname': 187, 'parent': 174, 'called': 139, 'length': 127, 'code': 113, 'sig': 81, 'name': 39})|
|unmatched_funcs_len|111|
|total_funcs_len|25554|
|matched_funcs_len|25443|
|matched_funcs_with_code_changes_len|113|
|matched_funcs_with_non_code_changes_len|455|
|matched_funcs_no_changes_len|24875|
|match_func_similarity_percent|97.7676%|
|func_match_overall_percent|99.5656%|
|first_matches|Counter({'SymbolsHash': 12156, 'StructuralGraphHash': 415, 'ExactInstructionsFunctionHasher': 291, 'BulkBasicBlockMnemonicHash': 246, 'BSIM': 31, 'Implied Match': 31, 'SigCallingCalledHasher': 21, 'ExactBytesFunctionHasher': 13, 'StructuralGraphExactHash': 6, 'ExactMnemonicsFunctionHasher': 1, 'StringsRefsHasher': 1})|



```mermaid
pie showData
    title All Matches
"SymbolsHash" : 12156
"ExternalsName" : 349
"BSIM" : 33
"ExactBytesFunctionHasher" : 13
"ExactInstructionsFunctionHasher" : 291
"StructuralGraphExactHash" : 6
"ExactMnemonicsFunctionHasher" : 1
"SigCallingCalledHasher" : 21
"StringsRefsHasher" : 1
"StructuralGraphHash" : 415
"BulkBasicBlockMnemonicHash" : 246
"Implied-Match" : 31
```



```mermaid
pie showData
    title First Matches
"SymbolsHash" : 12156
"ExactBytesFunctionHasher" : 13
"ExactInstructionsFunctionHasher" : 291
"StructuralGraphExactHash" : 6
"ExactMnemonicsFunctionHasher" : 1
"BSIM" : 31
"SigCallingCalledHasher" : 21
"StringsRefsHasher" : 1
"StructuralGraphHash" : 415
"BulkBasicBlockMnemonicHash" : 246
"Implied-Match" : 31
```



```mermaid
pie showData
    title Diff Stats
"added_funcs_len" : 57
"deleted_funcs_len" : 54
"modified_funcs_len" : 568
```



```mermaid
pie showData
    title Symbols
"added_symbols_len" : 10
"deleted_symbols_len" : 10
```

## Strings



```mermaid
pie showData
    title Strings
"deleted_strings_len" : 1
"added_strings_len" : 3
```

### Strings Diff


```diff
--- deleted strings
+++ added strings
@@ -1 +1,3 @@
-s_d:\os\tools\BamoCodegen\Inc\Bam
+s_DWM_Magnifier_Brush_Resample_Su
+s_NumSuspendedAnimations
+s_g:\os\tools\BamoCodegen\Inc\Bam

```


### String References

#### Old



|String|Ref Count|Ref Func|
| :---: | :---: | :---: |
|s_d:\os\tools\BamoCodegen\Inc\Bam|3|Thunk_MarkPrincipalReadyOnPropertiesRefreshed_5,PrepareForRemoteCall,AckProxyReference|

#### New



|String|Ref Count|Ref Func|
| :---: | :---: | :---: |
|s_g:\os\tools\BamoCodegen\Inc\Bam|3|Thunk_MarkPrincipalReadyOnPropertiesRefreshed_5,PrepareForRemoteCall,AckProxyReference|
|s_NumSuspendedAnimations_1803d0801|1|UpdateExpressions|
|s_DWM_Magnifier_Brush_Resample_Su|2|GetLayeredBrushParameters|

# Deleted

## CThreadContext::GetObjectCache

### Function Meta



|Key|dwmcore-10.0.26100.7623.dll|
| :---: | :---: |
|name|GetObjectCache|
|fullname|CThreadContext::GetObjectCache|
|refcount|3|
|length|143|
|called|?Alloc@DefaultHeap@@SAPEAX_K@Z<br>API-MS-WIN-CORE-PROCESSTHREADS-L1-1-0.DLL::TlsGetValue<br>API-MS-WIN-CORE-PROCESSTHREADS-L1-1-0.DLL::TlsSetValue<br>CThreadContext::CThreadContext<br>MilInstrumentationCheckHR_MaybeFailFast<br>ModuleFailFastForHRESULT|
|calling|CPolygonBuilder::`vector_deleting_destructor'<br>CThreadLocalObjectCache<CPolygonBuilder,CPolygonBuilder>::Alloc|
|paramcount|1|
|address|18002a050|
|sig|CObjectCache * __cdecl GetObjectCache(CPolygonBuilder * param_1)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CThreadContext::GetObjectCache
+++ CThreadContext::GetObjectCache
@@ -1,29 +0,0 @@
-
-/* public: static class CObjectCache * __ptr64 __cdecl CThreadContext::GetObjectCache(class
-   CPolygonBuilder * __ptr64) */
-
-CObjectCache * __cdecl CThreadContext::GetObjectCache(CPolygonBuilder *param_1)
-
-{
-  LPVOID lpTlsValue;
-  CThreadContext *this;
-  undefined8 unaff_retaddr;
-  
-  lpTlsValue = TlsGetValue(s_dwTlsIndex);
-  if (lpTlsValue != (LPVOID)0x0) {
-LAB_18002a070:
-    return (CObjectCache *)((longlong)lpTlsValue + 0x70);
-  }
-  this = _Alloc_DefaultHeap__SAPEAX_K_Z(0x1c0);
-  if (this != (CThreadContext *)0x0) {
-    lpTlsValue = (LPVOID)CThreadContext(this);
-    if (lpTlsValue != (LPVOID)0x0) {
-      TlsSetValue(s_dwTlsIndex,lpTlsValue);
-      goto LAB_18002a070;
-    }
-  }
-  MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,-0x7ff8fff2,0x28,(void *)0x0);
-                    /* WARNING: Subroutine does not return */
-  ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
-}
-

```


## CWindowOcclusionInfo::GetFlipExSurfaceZ

### Function Meta



|Key|dwmcore-10.0.26100.7623.dll|
| :---: | :---: |
|name|GetFlipExSurfaceZ|
|fullname|CWindowOcclusionInfo::GetFlipExSurfaceZ|
|refcount|2|
|length|57|
|called|COcclusionInfo::UpdateZFromValidParent<br>GetCurrentFrameId|
|calling|CWindowNode::RenderContent|
|paramcount|2|
|address|180063a90|
|sig|int __thiscall GetFlipExSurfaceZ(CWindowOcclusionInfo * this, CVisualTree * param_1)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CWindowOcclusionInfo::GetFlipExSurfaceZ
+++ CWindowOcclusionInfo::GetFlipExSurfaceZ
@@ -1,21 +0,0 @@
-
-/* public: int __cdecl CWindowOcclusionInfo::GetFlipExSurfaceZ(class CVisualTree const * __ptr64)
-   __ptr64 */
-
-int __thiscall
-CWindowOcclusionInfo::GetFlipExSurfaceZ(CWindowOcclusionInfo *this,CVisualTree *param_1)
-
-{
-  __uint64 _Var1;
-  CWindowOcclusionInfo *this_00;
-  
-  this_00 = this;
-  _Var1 = GetCurrentFrameId();
-  if (*(__uint64 *)(this_00 + 0x10) != _Var1) {
-    COcclusionInfo::UpdateZFromValidParent((COcclusionInfo *)this_00,param_1,_Var1);
-    *(undefined4 *)(this + 0x30) = *(undefined4 *)(this + 0x24);
-    *(undefined4 *)(this + 0x34) = *(undefined4 *)(this + 0x24);
-  }
-  return *(int *)(this + 0x34);
-}
-

```


## detail::vector_facade<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,detail::buffer_impl<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,1,1,detail::liberal_expansion_policy>_>::push_back

### Function Meta



|Key|dwmcore-10.0.26100.7623.dll|
| :---: | :---: |
|name|push_back|
|fullname|detail::vector_facade<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,detail::buffer_impl<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,1,1,detail::liberal_expansion_policy>_>::push_back|
|refcount|3|
|length|586|
|called|<details><summary>Expand for full list:<br>?Free@DefaultHeap@@SAXPEAX@Z<br>CMultiPrimitiveDrawListBrush::`scalar_deleting_destructor'<br>CSurfaceDrawListBrush::`scalar_deleting_destructor'<br>FUN_1800ee5a8<br>MSVCP_WIN.DLL::std::_Xoverflow_error<br>_guard_dispatch_icall$thunk$10345483385596137414<br>detail::destruct_range<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>_><br>detail::liberal_expansion_policy::expand<br>operator_delete[]<br>operator_new[]<br>std::_Get_unwrapped_n<stdext::checked_array_iterator<CBlurredBackdropCache*___ptr64*___ptr64>&___ptr64,__int64></summary>std::uninitialized_move<std::move_iterator<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>*___ptr64>,stdext::checked_array_iterator<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>*___ptr64>_><br>std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>::operator=<std::default_delete<COcclusionInfo>,0></details>|
|calling|CWindowNode::GetWindowOcclusionInfo|
|paramcount|2|
|address|1800ee400|
|sig|void __thiscall push_back(vector_facade<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,detail::buffer_impl<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,1,1,detail::liberal_expansion_policy>_> * this, unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_> * param_1)|
|sym_type|Function|
|sym_source|IMPORTED|
|external|False|


```diff
--- detail::vector_facade<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,detail::buffer_impl<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,1,1,detail::liberal_expansion_policy>_>::push_back
+++ detail::vector_facade<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,detail::buffer_impl<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,1,1,detail::liberal_expansion_policy>_>::push_back
@@ -1,178 +0,0 @@
-
-/* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
-   guard_dispatch_icall */
-/* public: void __cdecl detail::vector_facade<class std::unique_ptr<class COcclusionInfo,struct
-   std::default_delete<class COcclusionInfo> >,class detail::buffer_impl<class std::unique_ptr<class
-   COcclusionInfo,struct std::default_delete<class COcclusionInfo> >,1,1,class
-   detail::liberal_expansion_policy> >::push_back(class std::unique_ptr<class COcclusionInfo,struct
-   std::default_delete<class COcclusionInfo> > && __ptr64) __ptr64 */
-
-void __thiscall
-detail::
-vector_facade<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,detail::buffer_impl<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,1,1,detail::liberal_expansion_policy>_>
-::push_back(vector_facade<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,detail::buffer_impl<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,1,1,detail::liberal_expansion_policy>_>
-            *this,unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_> *param_1)
-
-{
-  undefined8 *puVar1;
-  longlong lVar2;
-  undefined8 *puVar3;
-  CSurfaceDrawListBrush *this_00;
-  undefined8 uVar4;
-  code *pcVar5;
-  undefined1 auVar6 [16];
-  longlong lVar7;
-  ulonglong uVar8;
-  __uint64 _Var9;
-  __uint64 _Var10;
-  void *pvVar11;
-  longlong lVar12;
-  vector_facade<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,detail::buffer_impl<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,1,1,detail::liberal_expansion_policy>_>
-  *pvVar13;
-  ulonglong uVar14;
-  unique_ptr<class_COcclusionInfo,struct_std::default_delete<class_COcclusionInfo>_> *puVar15;
-  undefined8 *puVar16;
-  undefined8 *puVar17;
-  ulonglong uVar18;
-  undefined8 local_68;
-  undefined8 uStack_60;
-  longlong local_58;
-  undefined4 local_48;
-  undefined4 uStack_44;
-  undefined4 uStack_40;
-  int iStack_3c;
-  undefined8 local_38;
-  
-  lVar2 = *(longlong *)(this + 8);
-  puVar3 = *(undefined8 **)this;
-  uVar18 = lVar2 - (longlong)puVar3 >> 3;
-  if (*(longlong *)(this + 0x10) - lVar2 >> 3 == 0) {
-    if (uVar18 <= uVar18 + 1) {
-      _Var9 = liberal_expansion_policy::expand
-                        ((liberal_expansion_policy *)this,
-                         *(longlong *)(this + 0x10) - (longlong)puVar3 >> 3,uVar18 + 1);
-      auVar6._8_8_ = 0;
-      auVar6._0_8_ = _Var9;
-      _Var10 = SUB168(ZEXT816(8) * auVar6,0);
-      if (SUB168(ZEXT816(8) * auVar6,8) != 0) {
-        _Var10 = 0xffffffffffffffff;
-      }
-      pvVar11 = operator_new__(_Var10);
-      local_68._0_4_ = SUB84(pvVar11,0);
-      local_68._4_4_ = (undefined4)((ulonglong)pvVar11 >> 0x20);
-      uStack_60._0_4_ = (undefined4)uVar18;
-      uStack_60._4_4_ = (int)(lVar2 - (longlong)puVar3 >> 0x23);
-      local_58 = 0;
-      local_48 = (undefined4)local_68;
-      uStack_44 = local_68._4_4_;
-      uStack_40 = (undefined4)uStack_60;
-      iStack_3c = uStack_60._4_4_;
-      local_38 = 0;
-      local_68 = pvVar11;
-      uStack_60 = uVar18;
-      std::
-      uninitialized_move<std::move_iterator<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>*___ptr64>,stdext::checked_array_iterator<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>*___ptr64>_>
-                (&local_68,*(undefined8 *)this,*(undefined8 *)(this + 8),&local_48);
-      destruct_range<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>_>
-                (*(unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_> **)this,
-                 *(unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_> **)(this + 8));
-      pvVar13 = *(vector_facade<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,detail::buffer_impl<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,1,1,detail::liberal_expansion_policy>_>
-                  **)this;
-      *(void **)this = pvVar11;
-      if (pvVar13 == this + 0x18) {
-        pvVar13 = (vector_facade<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,detail::buffer_impl<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,1,1,detail::liberal_expansion_policy>_>
-                   *)0x0;
-      }
-      _Free_DefaultHeap__SAXPEAX_Z(pvVar13);
-      *(ulonglong *)(this + 8) = *(longlong *)this + uVar18 * 8;
-      *(__uint64 *)(this + 0x10) = *(longlong *)this + _Var9 * 8;
-      FUN_1800ee5a8();
-      return;
-    }
-    std::_Xoverflow_error("overflow");
-    pcVar5 = (code *)swi(3);
-    (*pcVar5)();
-    return;
-  }
-  local_58 = 0;
-  local_38 = 0;
-  lVar12 = lVar2 - (longlong)puVar3 >> 3;
-  uVar14 = lVar12 - uVar18;
-  puVar1 = puVar3 + lVar12;
-  lVar7 = local_58;
-  local_68 = puVar1;
-  if (puVar1 != (undefined8 *)0x0) {
-    local_38 = 1;
-    uVar8 = uVar14;
-    if (1 < uVar14) {
-      uVar8 = 1;
-    }
-    uStack_60 = 1;
-    local_58 = 1;
-    if (lVar2 != lVar2 + uVar8 * -8) {
-      FUN_1802eb979();
-      return;
-    }
-    lVar2 = 1;
-    if (1 < uVar14) {
-      if ((lVar12 != 0) &&
-         ((lVar7 = 1, puVar3 == (undefined8 *)0x0 ||
-          ((lVar12 < 0 && (lVar7 = local_58, lVar12 != 0)))))) goto LAB_1800ee591;
-      puVar15 = (unique_ptr<class_COcclusionInfo,struct_std::default_delete<class_COcclusionInfo>_>
-                 *)(puVar3 + lVar12 + -1);
-      local_68 = puVar3;
-      uStack_60 = lVar12;
-      local_58 = lVar12;
-      lVar7 = std::
-              _Get_unwrapped_n<stdext::checked_array_iterator<CBlurredBackdropCache*___ptr64*___ptr64>&___ptr64,__int64>
-                        ((checked_array_iterator<CBlurredBackdropCache*___ptr64*___ptr64> *)
-                         &local_68,-((longlong)puVar15 - (longlong)(puVar3 + uVar18) >> 3));
-      lVar7 = lVar7 - (longlong)puVar15;
-      while (lVar2 = local_58,
-            (unique_ptr<class_COcclusionInfo,struct_std::default_delete<class_COcclusionInfo>_> *)
-            (puVar3 + uVar18) != puVar15) {
-        puVar15 = puVar15 + -8;
-        std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>::
-        operator=<std::default_delete<COcclusionInfo>,0>
-                  ((unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_> *)
-                   (puVar15 + lVar7),puVar15);
-      }
-    }
-    local_58 = lVar2;
-    puVar16 = puVar3 + uVar18;
-    puVar17 = puVar3 + uVar18 + 1;
-    if (puVar1 < puVar3 + uVar18 + 1) {
-      puVar17 = puVar1;
-    }
-    for (; puVar16 != puVar17; puVar16 = puVar16 + 1) {
-      this_00 = (CSurfaceDrawListBrush *)*puVar16;
-      if (this_00 != (CSurfaceDrawListBrush *)0x0) {
-        pcVar5 = (code *)**(undefined8 **)this_00;
-        if (pcVar5 == CWindowOcclusionInfo::_scalar_deleting_destructor_) {
-          operator_delete__(this_00,0x38);
-        }
-        else if (pcVar5 == CSurfaceDrawListBrush::_scalar_deleting_destructor_) {
-          CSurfaceDrawListBrush::_scalar_deleting_destructor_(this_00,1);
-        }
-        else if (pcVar5 == CMultiPrimitiveDrawListBrush::_scalar_deleting_destructor_) {
-          CMultiPrimitiveDrawListBrush::_scalar_deleting_destructor_
-                    ((CMultiPrimitiveDrawListBrush *)this_00,1);
-        }
-        else {
-          (*pcVar5)();
-        }
-      }
-    }
-    *(longlong *)(this + 8) = *(longlong *)(this + 8) + 8;
-    uVar4 = *(undefined8 *)param_1;
-    *(undefined8 *)param_1 = 0;
-    puVar3[uVar18] = uVar4;
-    return;
-  }
-LAB_1800ee591:
-  local_58 = lVar7;
-  uStack_60 = 1;
-                    /* WARNING: Subroutine does not return */
-  _invalid_parameter_noinfo_noreturn();
-}
-

```


## FUN_1800ee5a8

### Function Meta



|Key|dwmcore-10.0.26100.7623.dll|
| :---: | :---: |
|name|FUN_1800ee5a8|
|fullname|FUN_1800ee5a8|
|refcount|2|
|length|152|
|called|FUN_1802eb979|
|calling|detail::vector_facade<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,detail::buffer_impl<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,1,1,detail::liberal_expansion_policy>_>::push_back|
|paramcount|0|
|address|1800ee5a8|
|sig|undefined FUN_1800ee5a8(void)|
|sym_type|Function|
|sym_source|DEFAULT|
|external|False|


```diff
--- FUN_1800ee5a8
+++ FUN_1800ee5a8
@@ -1,108 +0,0 @@
-
-/* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
-   guard_dispatch_icall */
-
-void FUN_1800ee5a8(undefined8 param_1,undefined8 param_2,longlong param_3)
-
-{
-  unique_ptr<class_COcclusionInfo,struct_std::default_delete<class_COcclusionInfo>_> *puVar1;
-  undefined8 *puVar2;
-  CSurfaceDrawListBrush *this;
-  code *pcVar3;
-  undefined8 uVar4;
-  ulonglong uVar5;
-  longlong lVar6;
-  ulonglong uVar7;
-  unique_ptr<class_COcclusionInfo,struct_std::default_delete<class_COcclusionInfo>_> *puVar8;
-  undefined8 *puVar9;
-  longlong unaff_RBP;
-  undefined8 *unaff_RSI;
-  undefined8 *puVar10;
-  longlong unaff_R12;
-  longlong unaff_R13;
-  longlong unaff_R15;
-  
-  *(undefined8 *)(unaff_RBP + -0x30) = 0;
-  lVar6 = param_3 - unaff_R15 >> 3;
-  *(undefined8 *)(unaff_RBP + -0x38) = 1;
-  uVar7 = lVar6 - unaff_R13;
-  *(undefined8 *)(unaff_RBP + -0x10) = *(undefined8 *)(unaff_RBP + -0x30);
-  puVar2 = (undefined8 *)(unaff_R15 + lVar6 * 8);
-  *(undefined8 **)(unaff_RBP + -0x40) = puVar2;
-  if (puVar2 != (undefined8 *)0x0) {
-    *(undefined8 *)(unaff_RBP + -0x10) = 1;
-    uVar5 = uVar7;
-    if (1 < uVar7) {
-      uVar5 = 1;
-    }
-    *(undefined4 *)(unaff_RBP + -0x40) = *(undefined4 *)(unaff_RBP + -0x40);
-    *(undefined4 *)(unaff_RBP + -0x3c) = *(undefined4 *)(unaff_RBP + -0x3c);
-    *(undefined4 *)(unaff_RBP + -0x38) = *(undefined4 *)(unaff_RBP + -0x38);
-    *(undefined4 *)(unaff_RBP + -0x34) = *(undefined4 *)(unaff_RBP + -0x34);
-    *(undefined8 *)(unaff_RBP + -0x30) = *(undefined8 *)(unaff_RBP + -0x10);
-    if (param_3 != param_3 + uVar5 * -8) {
-      FUN_1802eb979();
-      return;
-    }
-    if (1 < uVar7) {
-      if ((lVar6 != 0) && ((unaff_R15 == 0 || ((lVar6 < 0 && (lVar6 != 0)))))) goto LAB_1800ee591;
-      *(longlong *)(unaff_RBP + -0x38) = lVar6;
-      puVar1 = (unique_ptr<class_COcclusionInfo,struct_std::default_delete<class_COcclusionInfo>_> *
-               )(unaff_R15 + unaff_R13 * 8);
-      *(longlong *)(unaff_RBP + -0x30) = lVar6;
-      *(longlong *)(unaff_RBP + -0x40) = unaff_R15;
-      puVar8 = (unique_ptr<class_COcclusionInfo,struct_std::default_delete<class_COcclusionInfo>_> *
-               )(unaff_R15 + (lVar6 + -1) * 8);
-      lVar6 = std::
-              _Get_unwrapped_n<stdext::checked_array_iterator<CBlurredBackdropCache*___ptr64*___ptr64>&___ptr64,__int64>
-                        ((checked_array_iterator<CBlurredBackdropCache*___ptr64*___ptr64> *)
-                         (unaff_RBP + -0x40),-((longlong)puVar8 - (longlong)puVar1 >> 3));
-      lVar6 = lVar6 - (longlong)puVar8;
-      while (puVar1 != puVar8) {
-        puVar8 = puVar8 + -8;
-        std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>::
-        operator=<std::default_delete<COcclusionInfo>,0>
-                  ((unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_> *)
-                   (puVar8 + lVar6),puVar8);
-      }
-      unaff_RSI = *(undefined8 **)(unaff_RBP + 0x38);
-    }
-    puVar10 = (undefined8 *)(unaff_R15 + (unaff_R13 + 1) * 8);
-    puVar9 = (undefined8 *)(unaff_R15 + unaff_R13 * 8);
-    if (puVar2 < puVar10) {
-      puVar10 = puVar2;
-    }
-    if (puVar9 != puVar10) {
-      do {
-        this = (CSurfaceDrawListBrush *)*puVar9;
-        if (this != (CSurfaceDrawListBrush *)0x0) {
-          pcVar3 = (code *)**(undefined8 **)this;
-          if (pcVar3 == CWindowOcclusionInfo::_scalar_deleting_destructor_) {
-            operator_delete__(this,0x38);
-          }
-          else if (pcVar3 == CSurfaceDrawListBrush::_scalar_deleting_destructor_) {
-            CSurfaceDrawListBrush::_scalar_deleting_destructor_(this,1);
-          }
-          else if (pcVar3 == CMultiPrimitiveDrawListBrush::_scalar_deleting_destructor_) {
-            CMultiPrimitiveDrawListBrush::_scalar_deleting_destructor_
-                      ((CMultiPrimitiveDrawListBrush *)this,1);
-          }
-          else {
-            (*pcVar3)();
-          }
-        }
-        puVar9 = puVar9 + 1;
-      } while (puVar9 != puVar10);
-      unaff_RSI = *(undefined8 **)(unaff_RBP + 0x38);
-    }
-    *(longlong *)(unaff_R12 + 8) = *(longlong *)(unaff_R12 + 8) + 8;
-    uVar4 = *unaff_RSI;
-    *unaff_RSI = 0;
-    *(undefined8 *)(unaff_R15 + unaff_R13 * 8) = uVar4;
-    return;
-  }
-LAB_1800ee591:
-                    /* WARNING: Subroutine does not return */
-  _invalid_parameter_noinfo_noreturn();
-}
-

```


## CPropertySet::operator_new

### Function Meta



|Key|dwmcore-10.0.26100.7623.dll|
| :---: | :---: |
|name|operator_new|
|fullname|CPropertySet::operator_new|
|refcount|2|
|length|67|
|called|API-MS-WIN-CORE-HEAP-L1-1-0.DLL::GetProcessHeap<br>API-MS-WIN-CORE-HEAP-L1-1-0.DLL::HeapAlloc<br>ModuleFailFastForHRESULT|
|calling|CResourceFactory::Create|
|paramcount|1|
|address|18014e438|
|sig|void * __cdecl operator_new(__uint64 param_1)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CPropertySet::operator_new
+++ CPropertySet::operator_new
@@ -1,19 +0,0 @@
-
-/* public: static void * __ptr64 __cdecl CPropertySet::operator new(unsigned __int64) */
-
-void * __cdecl CPropertySet::operator_new(__uint64 param_1)
-
-{
-  HANDLE hHeap;
-  LPVOID pvVar1;
-  undefined8 unaff_retaddr;
-  
-  hHeap = GetProcessHeap();
-  pvVar1 = HeapAlloc(hHeap,8,0xa0);
-  if (pvVar1 != (LPVOID)0x0) {
-    return pvVar1;
-  }
-                    /* WARNING: Subroutine does not return */
-  ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
-}
-

```


## CRectangleGeometry::operator_new

### Function Meta



|Key|dwmcore-10.0.26100.7623.dll|
| :---: | :---: |
|name|operator_new|
|fullname|CRectangleGeometry::operator_new|
|refcount|2|
|length|39|
|called|DefaultHeap::AllocClear<br>ModuleFailFastForHRESULT|
|calling|CResourceFactory::Create|
|paramcount|1|
|address|18014e4cc|
|sig|void * __cdecl operator_new(__uint64 param_1)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CRectangleGeometry::operator_new
+++ CRectangleGeometry::operator_new
@@ -1,17 +0,0 @@
-
-/* protected: static void * __ptr64 __cdecl CRectangleGeometry::operator new(unsigned __int64) */
-
-void * __cdecl CRectangleGeometry::operator_new(__uint64 param_1)
-
-{
-  void *pvVar1;
-  undefined8 unaff_retaddr;
-  
-  pvVar1 = DefaultHeap::AllocClear(200);
-  if (pvVar1 != (void *)0x0) {
-    return pvVar1;
-  }
-                    /* WARNING: Subroutine does not return */
-  ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
-}
-

```


## CPropertySet::CPropertySet

### Function Meta



|Key|dwmcore-10.0.26100.7623.dll|
| :---: | :---: |
|name|CPropertySet|
|fullname|CPropertySet::CPropertySet|
|refcount|1|
|length|83|
|called||
|calling|CResourceFactory::Create|
|paramcount|2|
|address|18014e5d4|
|sig|undefined __thiscall CPropertySet(CPropertySet * this, CComposition * param_1)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CPropertySet::CPropertySet
+++ CPropertySet::CPropertySet
@@ -1,24 +0,0 @@
-
-/* public: __cdecl CPropertySet::CPropertySet(class CComposition * __ptr64) __ptr64 */
-
-CPropertySet * __thiscall CPropertySet::CPropertySet(CPropertySet *this,CComposition *param_1)
-
-{
-  *(undefined4 *)(this + 8) = 0;
-  *(undefined8 *)(this + 0x10) = 0;
-  *(CComposition **)(this + 0x18) = param_1;
-  *(undefined8 *)(this + 0x20) = 0;
-  *(undefined8 *)(this + 0x30) = 0;
-  *(undefined4 *)(this + 0x28) = 0;
-  *(undefined ***)this = &_vftable_;
-  *(undefined8 *)(this + 0x58) = 0;
-  *(undefined8 *)(this + 0x60) = 0;
-  *(undefined8 *)(this + 0x68) = 0;
-  *(undefined4 *)(this + 0x70) = 0;
-  *(undefined8 *)(this + 0x78) = 0;
-  *(undefined8 *)(this + 0x80) = 0;
-  *(undefined8 *)(this + 0x88) = 0;
-  *(undefined4 *)(this + 0x90) = 0;
-  return this;
-}
-

```


## CComponentTransform3D::operator_new

### Function Meta



|Key|dwmcore-10.0.26100.7623.dll|
| :---: | :---: |
|name|operator_new|
|fullname|CComponentTransform3D::operator_new|
|refcount|2|
|length|39|
|called|DefaultHeap::AllocClear<br>ModuleFailFastForHRESULT|
|calling|CResourceFactory::Create|
|paramcount|1|
|address|18014e87c|
|sig|void * __cdecl operator_new(__uint64 param_1)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CComponentTransform3D::operator_new
+++ CComponentTransform3D::operator_new
@@ -1,17 +0,0 @@
-
-/* protected: static void * __ptr64 __cdecl CComponentTransform3D::operator new(unsigned __int64) */
-
-void * __cdecl CComponentTransform3D::operator_new(__uint64 param_1)
-
-{
-  void *pvVar1;
-  undefined8 unaff_retaddr;
-  
-  pvVar1 = DefaultHeap::AllocClear(0x130);
-  if (pvVar1 != (void *)0x0) {
-    return pvVar1;
-  }
-                    /* WARNING: Subroutine does not return */
-  ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
-}
-

```


## CRectangleGeometry::CRectangleGeometry

### Function Meta



|Key|dwmcore-10.0.26100.7623.dll|
| :---: | :---: |
|name|CRectangleGeometry|
|fullname|CRectangleGeometry::CRectangleGeometry|
|refcount|1|
|length|76|
|called||
|calling|CResourceFactory::Create|
|paramcount|2|
|address|18014e960|
|sig|undefined __thiscall CRectangleGeometry(CRectangleGeometry * this, CComposition * param_1)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CRectangleGeometry::CRectangleGeometry
+++ CRectangleGeometry::CRectangleGeometry
@@ -1,25 +0,0 @@
-
-/* protected: __cdecl CRectangleGeometry::CRectangleGeometry(class CComposition * __ptr64) __ptr64
-    */
-
-CRectangleGeometry * __thiscall
-CRectangleGeometry::CRectangleGeometry(CRectangleGeometry *this,CComposition *param_1)
-
-{
-  *(undefined4 *)(this + 8) = 0;
-  *(undefined8 *)(this + 0x10) = 0;
-  *(CComposition **)(this + 0x18) = param_1;
-  *(undefined8 *)(this + 0x20) = 0;
-  *(undefined8 *)(this + 0x30) = 0;
-  *(undefined4 *)(this + 0x28) = 0;
-  *(undefined8 *)(this + 0x58) = 0;
-  this[0x60] = (CRectangleGeometry)0x0;
-  *(undefined8 *)(this + 0x68) = 0;
-  this[0x70] = (CRectangleGeometry)0x0;
-  *(uint *)(this + 0x28) = *(uint *)(this + 0x28) | 1;
-  *(undefined ***)this = &_vftable_;
-  *(undefined4 *)(this + 0x7c) = 0x3f800000;
-  *(undefined4 *)(this + 0xb8) = 0;
-  return this;
-}
-

```


## CPrimitiveGroup::operator_new

### Function Meta



|Key|dwmcore-10.0.26100.7623.dll|
| :---: | :---: |
|name|operator_new|
|fullname|CPrimitiveGroup::operator_new|
|refcount|2|
|length|39|
|called|DefaultHeap::AllocClear<br>ModuleFailFastForHRESULT|
|calling|CResourceFactory::Create|
|paramcount|1|
|address|18014e9b4|
|sig|void * __cdecl operator_new(__uint64 param_1)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CPrimitiveGroup::operator_new
+++ CPrimitiveGroup::operator_new
@@ -1,17 +0,0 @@
-
-/* protected: static void * __ptr64 __cdecl CPrimitiveGroup::operator new(unsigned __int64) */
-
-void * __cdecl CPrimitiveGroup::operator_new(__uint64 param_1)
-
-{
-  void *pvVar1;
-  undefined8 unaff_retaddr;
-  
-  pvVar1 = DefaultHeap::AllocClear(0x250);
-  if (pvVar1 != (void *)0x0) {
-    return pvVar1;
-  }
-                    /* WARNING: Subroutine does not return */
-  ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
-}
-

```


## CEffectGroup::operator_new

### Function Meta



|Key|dwmcore-10.0.26100.7623.dll|
| :---: | :---: |
|name|operator_new|
|fullname|CEffectGroup::operator_new|
|refcount|2|
|length|39|
|called|DefaultHeap::AllocClear<br>ModuleFailFastForHRESULT|
|calling|CResourceFactory::Create|
|paramcount|1|
|address|18014e9e4|
|sig|void * __cdecl operator_new(__uint64 param_1)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CEffectGroup::operator_new
+++ CEffectGroup::operator_new
@@ -1,17 +0,0 @@
-
-/* protected: static void * __ptr64 __cdecl CEffectGroup::operator new(unsigned __int64) */
-
-void * __cdecl CEffectGroup::operator_new(__uint64 param_1)
-
-{
-  void *pvVar1;
-  undefined8 unaff_retaddr;
-  
-  pvVar1 = DefaultHeap::AllocClear(0x60);
-  if (pvVar1 != (void *)0x0) {
-    return pvVar1;
-  }
-                    /* WARNING: Subroutine does not return */
-  ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
-}
-

```


## CInteraction::operator_new

### Function Meta



|Key|dwmcore-10.0.26100.7623.dll|
| :---: | :---: |
|name|operator_new|
|fullname|CInteraction::operator_new|
|refcount|2|
|length|39|
|called|DefaultHeap::AllocClear<br>ModuleFailFastForHRESULT|
|calling|CResourceFactory::Create|
|paramcount|1|
|address|18014ee18|
|sig|void * __cdecl operator_new(__uint64 param_1)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CInteraction::operator_new
+++ CInteraction::operator_new
@@ -1,17 +0,0 @@
-
-/* protected: static void * __ptr64 __cdecl CInteraction::operator new(unsigned __int64) */
-
-void * __cdecl CInteraction::operator_new(__uint64 param_1)
-
-{
-  void *pvVar1;
-  undefined8 unaff_retaddr;
-  
-  pvVar1 = DefaultHeap::AllocClear(0x6c8);
-  if (pvVar1 != (void *)0x0) {
-    return pvVar1;
-  }
-                    /* WARNING: Subroutine does not return */
-  ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
-}
-

```


## CGdiSpriteBitmap::operator_new

### Function Meta



|Key|dwmcore-10.0.26100.7623.dll|
| :---: | :---: |
|name|operator_new|
|fullname|CGdiSpriteBitmap::operator_new|
|refcount|2|
|length|39|
|called|DefaultHeap::AllocClear<br>ModuleFailFastForHRESULT|
|calling|CResourceFactory::Create|
|paramcount|1|
|address|18014ee48|
|sig|void * __cdecl operator_new(__uint64 param_1)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CGdiSpriteBitmap::operator_new
+++ CGdiSpriteBitmap::operator_new
@@ -1,17 +0,0 @@
-
-/* protected: static void * __ptr64 __cdecl CGdiSpriteBitmap::operator new(unsigned __int64) */
-
-void * __cdecl CGdiSpriteBitmap::operator_new(__uint64 param_1)
-
-{
-  void *pvVar1;
-  undefined8 unaff_retaddr;
-  
-  pvVar1 = DefaultHeap::AllocClear(0x1e0);
-  if (pvVar1 != (void *)0x0) {
-    return pvVar1;
-  }
-                    /* WARNING: Subroutine does not return */
-  ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
-}
-

```


## CImageLegacyMilBrush::operator_new

### Function Meta



|Key|dwmcore-10.0.26100.7623.dll|
| :---: | :---: |
|name|operator_new|
|fullname|CImageLegacyMilBrush::operator_new|
|refcount|2|
|length|39|
|called|DefaultHeap::AllocClear<br>ModuleFailFastForHRESULT|
|calling|CResourceFactory::Create|
|paramcount|1|
|address|18014eea8|
|sig|void * __cdecl operator_new(__uint64 param_1)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CImageLegacyMilBrush::operator_new
+++ CImageLegacyMilBrush::operator_new
@@ -1,17 +0,0 @@
-
-/* protected: static void * __ptr64 __cdecl CImageLegacyMilBrush::operator new(unsigned __int64) */
-
-void * __cdecl CImageLegacyMilBrush::operator_new(__uint64 param_1)
-
-{
-  void *pvVar1;
-  undefined8 unaff_retaddr;
-  
-  pvVar1 = DefaultHeap::AllocClear(0x108);
-  if (pvVar1 != (void *)0x0) {
-    return pvVar1;
-  }
-                    /* WARNING: Subroutine does not return */
-  ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
-}
-

```


## CWindowNode::operator_new

### Function Meta



|Key|dwmcore-10.0.26100.7623.dll|
| :---: | :---: |
|name|operator_new|
|fullname|CWindowNode::operator_new|
|refcount|2|
|length|39|
|called|DefaultHeap::AllocClear<br>ModuleFailFastForHRESULT|
|calling|CResourceFactory::Create|
|paramcount|1|
|address|18014eed8|
|sig|void * __cdecl operator_new(__uint64 param_1)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CWindowNode::operator_new
+++ CWindowNode::operator_new
@@ -1,17 +0,0 @@
-
-/* protected: static void * __ptr64 __cdecl CWindowNode::operator new(unsigned __int64) */
-
-void * __cdecl CWindowNode::operator_new(__uint64 param_1)
-
-{
-  void *pvVar1;
-  undefined8 unaff_retaddr;
-  
-  pvVar1 = DefaultHeap::AllocClear(0x388);
-  if (pvVar1 != (void *)0x0) {
-    return pvVar1;
-  }
-                    /* WARNING: Subroutine does not return */
-  ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
-}
-

```


## CManipulationTransform::operator_new

### Function Meta



|Key|dwmcore-10.0.26100.7623.dll|
| :---: | :---: |
|name|operator_new|
|fullname|CManipulationTransform::operator_new|
|refcount|2|
|length|39|
|called|DefaultHeap::AllocClear<br>ModuleFailFastForHRESULT|
|calling|CResourceFactory::Create|
|paramcount|1|
|address|18014ef84|
|sig|void * __cdecl operator_new(__uint64 param_1)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CManipulationTransform::operator_new
+++ CManipulationTransform::operator_new
@@ -1,18 +0,0 @@
-
-/* protected: static void * __ptr64 __cdecl CManipulationTransform::operator new(unsigned __int64)
-    */
-
-void * __cdecl CManipulationTransform::operator_new(__uint64 param_1)
-
-{
-  void *pvVar1;
-  undefined8 unaff_retaddr;
-  
-  pvVar1 = DefaultHeap::AllocClear(0x118);
-  if (pvVar1 != (void *)0x0) {
-    return pvVar1;
-  }
-                    /* WARNING: Subroutine does not return */
-  ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
-}
-

```


## CProjectedShadowCaster::operator_new

### Function Meta



|Key|dwmcore-10.0.26100.7623.dll|
| :---: | :---: |
|name|operator_new|
|fullname|CProjectedShadowCaster::operator_new|
|refcount|3|
|length|39|
|called|DefaultHeap::AllocClear<br>ModuleFailFastForHRESULT|
|calling|CResourceFactory::Create|
|paramcount|1|
|address|18017fe70|
|sig|void * __cdecl operator_new(__uint64 param_1)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CProjectedShadowCaster::operator_new
+++ CProjectedShadowCaster::operator_new
@@ -1,17 +0,0 @@
-
-/* public: static void * __ptr64 __cdecl CProjectedShadowCaster::operator new(unsigned __int64) */
-
-void * __cdecl CProjectedShadowCaster::operator_new(__uint64 param_1)
-
-{
-  void *pvVar1;
-  undefined8 unaff_retaddr;
-  
-  pvVar1 = DefaultHeap::AllocClear(0x90);
-  if (pvVar1 != (void *)0x0) {
-    return pvVar1;
-  }
-                    /* WARNING: Subroutine does not return */
-  ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
-}
-

```


## CSurfaceBrush::operator_new

### Function Meta



|Key|dwmcore-10.0.26100.7623.dll|
| :---: | :---: |
|name|operator_new|
|fullname|CSurfaceBrush::operator_new|
|refcount|2|
|length|39|
|called|DefaultHeap::AllocClear<br>ModuleFailFastForHRESULT|
|calling|CResourceFactory::Create|
|paramcount|1|
|address|18017ffc8|
|sig|void * __cdecl operator_new(__uint64 param_1)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CSurfaceBrush::operator_new
+++ CSurfaceBrush::operator_new
@@ -1,17 +0,0 @@
-
-/* public: static void * __ptr64 __cdecl CSurfaceBrush::operator new(unsigned __int64) */
-
-void * __cdecl CSurfaceBrush::operator_new(__uint64 param_1)
-
-{
-  void *pvVar1;
-  undefined8 unaff_retaddr;
-  
-  pvVar1 = DefaultHeap::AllocClear(0xd0);
-  if (pvVar1 != (void *)0x0) {
-    return pvVar1;
-  }
-                    /* WARNING: Subroutine does not return */
-  ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
-}
-

```


## CExpression::operator_new

### Function Meta



|Key|dwmcore-10.0.26100.7623.dll|
| :---: | :---: |
|name|operator_new|
|fullname|CExpression::operator_new|
|refcount|2|
|length|39|
|called|DefaultHeap::AllocClear<br>ModuleFailFastForHRESULT|
|calling|CResourceFactory::Create|
|paramcount|1|
|address|180180268|
|sig|void * __cdecl operator_new(__uint64 param_1)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CExpression::operator_new
+++ CExpression::operator_new
@@ -1,17 +0,0 @@
-
-/* public: static void * __ptr64 __cdecl CExpression::operator new(unsigned __int64) */
-
-void * __cdecl CExpression::operator_new(__uint64 param_1)
-
-{
-  void *pvVar1;
-  undefined8 unaff_retaddr;
-  
-  pvVar1 = DefaultHeap::AllocClear(0x180);
-  if (pvVar1 != (void *)0x0) {
-    return pvVar1;
-  }
-                    /* WARNING: Subroutine does not return */
-  ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
-}
-

```


## std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>::~unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>

### Function Meta



|Key|dwmcore-10.0.26100.7623.dll|
| :---: | :---: |
|name|~unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>|
|fullname|std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>::~unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>|
|refcount|2|
|length|106|
|called|CMultiPrimitiveDrawListBrush::`scalar_deleting_destructor'<br>CSurfaceDrawListBrush::`scalar_deleting_destructor'<br>_guard_dispatch_icall$thunk$10345483385596137414<br>operator_delete[]|
|calling|CWindowNode::GetWindowOcclusionInfo|
|paramcount|1|
|address|1801c7610|
|sig|void __thiscall ~unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>(unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_> * this)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>::~unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>
+++ std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>::~unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>
@@ -1,37 +0,0 @@
-
-/* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
-   guard_dispatch_icall */
-/* public: __cdecl std::unique_ptr<class COcclusionInfo,struct std::default_delete<class
-   COcclusionInfo> >::~unique_ptr<class COcclusionInfo,struct std::default_delete<class
-   COcclusionInfo> >(void) __ptr64 */
-
-void __thiscall
-std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>::
-~unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>
-          (unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_> *this)
-
-{
-  CSurfaceDrawListBrush *this_00;
-  code *pcVar1;
-  
-  this_00 = *(CSurfaceDrawListBrush **)this;
-  if (this_00 != (CSurfaceDrawListBrush *)0x0) {
-    pcVar1 = (code *)**(undefined8 **)this_00;
-    if (pcVar1 == CWindowOcclusionInfo::_scalar_deleting_destructor_) {
-      operator_delete__(this_00,0x38);
-      return;
-    }
-    if (pcVar1 == CSurfaceDrawListBrush::_scalar_deleting_destructor_) {
-      CSurfaceDrawListBrush::_scalar_deleting_destructor_(this_00,1);
-      return;
-    }
-    if (pcVar1 == CMultiPrimitiveDrawListBrush::_scalar_deleting_destructor_) {
-      CMultiPrimitiveDrawListBrush::_scalar_deleting_destructor_
-                ((CMultiPrimitiveDrawListBrush *)this_00,1);
-      return;
-    }
-    (*pcVar1)();
-  }
-  return;
-}
-

```


## std::_Get_size_of_n<128>

### Function Meta



|Key|dwmcore-10.0.26100.7623.dll|
| :---: | :---: |
|name|_Get_size_of_n<128>|
|fullname|std::_Get_size_of_n<128>|
|refcount|3|
|length|36|
|called|std::_Throw_bad_array_new_length|
|calling|std::vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_>::_Emplace_reallocate<CCursorState::MonitorData><br>std::vector<DWM_PRESENT_MULTIPLANE_OVERLAY,std::allocator<DWM_PRESENT_MULTIPLANE_OVERLAY>_>::_Emplace_reallocate<DWM_PRESENT_MULTIPLANE_OVERLAY_const&___ptr64>|
|paramcount|1|
|address|1801e5618|
|sig|__uint64 __cdecl _Get_size_of_n<128>(__uint64 param_1)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- std::_Get_size_of_n<128>
+++ std::_Get_size_of_n<128>
@@ -1,13 +0,0 @@
-
-/* unsigned __int64 __cdecl std::_Get_size_of_n<128>(unsigned __int64) */
-
-__uint64 __cdecl std::_Get_size_of_n<128>(__uint64 param_1)
-
-{
-  if (param_1 < 0x200000000000000) {
-    return param_1 << 7;
-  }
-                    /* WARNING: Subroutine does not return */
-  _Throw_bad_array_new_length();
-}
-

```


## CShapeVisual::operator_new

### Function Meta



|Key|dwmcore-10.0.26100.7623.dll|
| :---: | :---: |
|name|operator_new|
|fullname|CShapeVisual::operator_new|
|refcount|2|
|length|39|
|called|DefaultHeap::AllocClear<br>ModuleFailFastForHRESULT|
|calling|CResourceFactory::Create|
|paramcount|1|
|address|180203b84|
|sig|void * __cdecl operator_new(__uint64 param_1)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CShapeVisual::operator_new
+++ CShapeVisual::operator_new
@@ -1,17 +0,0 @@
-
-/* public: static void * __ptr64 __cdecl CShapeVisual::operator new(unsigned __int64) */
-
-void * __cdecl CShapeVisual::operator_new(__uint64 param_1)
-
-{
-  void *pvVar1;
-  undefined8 unaff_retaddr;
-  
-  pvVar1 = DefaultHeap::AllocClear(0x2a8);
-  if (pvVar1 != (void *)0x0) {
-    return pvVar1;
-  }
-                    /* WARNING: Subroutine does not return */
-  ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
-}
-

```


## CPathGeometry::CPathGeometry

### Function Meta



|Key|dwmcore-10.0.26100.7623.dll|
| :---: | :---: |
|name|CPathGeometry|
|fullname|CPathGeometry::CPathGeometry|
|refcount|1|
|length|76|
|called||
|calling|CResourceFactory::Create|
|paramcount|2|
|address|1802061d0|
|sig|undefined __thiscall CPathGeometry(CPathGeometry * this, CComposition * param_1)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CPathGeometry::CPathGeometry
+++ CPathGeometry::CPathGeometry
@@ -1,23 +0,0 @@
-
-/* public: __cdecl CPathGeometry::CPathGeometry(class CComposition * __ptr64) __ptr64 */
-
-CPathGeometry * __thiscall CPathGeometry::CPathGeometry(CPathGeometry *this,CComposition *param_1)
-
-{
-  *(undefined4 *)(this + 8) = 0;
-  *(undefined8 *)(this + 0x10) = 0;
-  *(CComposition **)(this + 0x18) = param_1;
-  *(undefined8 *)(this + 0x20) = 0;
-  *(undefined8 *)(this + 0x30) = 0;
-  *(undefined4 *)(this + 0x28) = 0;
-  *(undefined8 *)(this + 0x58) = 0;
-  this[0x60] = (CPathGeometry)0x0;
-  *(undefined8 *)(this + 0x68) = 0;
-  this[0x70] = (CPathGeometry)0x0;
-  *(uint *)(this + 0x28) = *(uint *)(this + 0x28) | 1;
-  *(undefined ***)this = &_vftable_;
-  *(undefined4 *)(this + 0x7c) = 0x3f800000;
-  *(undefined8 *)(this + 0x88) = 0;
-  return this;
-}
-

```


## CDrawingContext::ComputeExternalLayerOffsetAndBounds

### Function Meta



|Key|dwmcore-10.0.26100.7623.dll|
| :---: | :---: |
|name|ComputeExternalLayerOffsetAndBounds|
|fullname|CDrawingContext::ComputeExternalLayerOffsetAndBounds|
|refcount|3|
|length|86|
|called|AlignRectFToPointAndSizeL<br>CDrawingContext::GetClipBoundsWorld<br>MilInstrumentationCheckHR_MaybeFailFast|
|calling|CDrawingContext::PushColorSpaceLayer<br>CDrawingContext::PushEffects|
|paramcount|2|
|address|180206998|
|sig|long __thiscall ComputeExternalLayerOffsetAndBounds(CDrawingContext * this, D2D_POINTANDSIZE_L * param_1)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CDrawingContext::ComputeExternalLayerOffsetAndBounds
+++ CDrawingContext::ComputeExternalLayerOffsetAndBounds
@@ -1,27 +0,0 @@
-
-/* private: long __cdecl CDrawingContext::ComputeExternalLayerOffsetAndBounds(struct
-   D2D_POINTANDSIZE_L * __ptr64)const __ptr64 */
-
-long __thiscall
-CDrawingContext::ComputeExternalLayerOffsetAndBounds
-          (CDrawingContext *this,D2D_POINTANDSIZE_L *param_1)
-
-{
-  long lVar1;
-  bool in_R8B;
-  undefined8 local_18;
-  undefined8 uStack_10;
-  
-  local_18 = 0;
-  uStack_10 = 0;
-  GetClipBoundsWorld(this,(TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
-                           *)&local_18,in_R8B);
-  lVar1 = AlignRectFToPointAndSizeL
-                    ((TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
-                      *)&local_18,param_1);
-  if (lVar1 < 0) {
-    MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar1,0xe4a,(void *)0x0);
-  }
-  return lVar1;
-}
-

```


## CWindowNode::RenderBlackContent

### Function Meta



|Key|dwmcore-10.0.26100.7623.dll|
| :---: | :---: |
|name|RenderBlackContent|
|fullname|CWindowNode::RenderBlackContent|
|refcount|4|
|length|253|
|called|CRectanglesShape::SetSingleRect<br>CRectanglesShape::~CRectanglesShape<br>CShapePtr::Release<br>CWindowNode::GetSpriteClipShape<br>FUN_1802f6efe<br>MilInstrumentationCheckHR_MaybeFailFast<br>__security_check_cookie|
|calling|CWindowNode::RenderContent|
|paramcount|2|
|address|180209734|
|sig|long __thiscall RenderBlackContent(CWindowNode * this, CDrawingContext * param_1)|
|sym_type|Function|
|sym_source|IMPORTED|
|external|False|


```diff
--- CWindowNode::RenderBlackContent
+++ CWindowNode::RenderBlackContent
@@ -1,48 +0,0 @@
-
-/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
-/* private: long __cdecl CWindowNode::RenderBlackContent(class CDrawingContext * __ptr64) __ptr64 */
-
-long __thiscall CWindowNode::RenderBlackContent(CWindowNode *this,CDrawingContext *param_1)
-
-{
-  long lVar1;
-  undefined1 auStackY_98 [32];
-  undefined ***local_68;
-  undefined1 local_60;
-  undefined **local_58;
-  undefined8 local_50;
-  undefined1 *local_48;
-  undefined1 *local_40;
-  undefined8 *local_38;
-  undefined1 local_30 [16];
-  undefined8 local_20;
-  ulonglong local_18;
-  
-  local_18 = __security_cookie ^ (ulonglong)auStackY_98;
-  local_68 = (undefined ***)0x0;
-  local_50 = 0;
-  local_20 = 0;
-  local_58 = &CRectanglesShape::_vftable_;
-  local_48 = local_30;
-  local_40 = local_30;
-  local_38 = &local_20;
-  local_60 = 0;
-  if (*(longlong *)(this + 0x330) == 0) {
-    CRectanglesShape::SetSingleRect((CRectanglesShape *)&local_58,(D2D_RECT_F *)(this + 0xb0));
-    CShapePtr::Release((CShapePtr *)&local_68);
-    local_68 = &local_58;
-    local_60 = 0;
-    lVar1 = FUN_1802f6efe();
-    return lVar1;
-  }
-  lVar1 = GetSpriteClipShape(this,(CShapePtr *)&local_68);
-  if (lVar1 < 0) {
-    MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar1,0x578,(void *)0x0);
-    CRectanglesShape::~CRectanglesShape((CRectanglesShape *)&local_58);
-    CShapePtr::Release((CShapePtr *)&local_68);
-    return lVar1;
-  }
-  lVar1 = FUN_1802f6efe();
-  return lVar1;
-}
-

```


## CEffectBrush::CEffectBrush

### Function Meta



|Key|dwmcore-10.0.26100.7623.dll|
| :---: | :---: |
|name|CEffectBrush|
|fullname|CEffectBrush::CEffectBrush|
|refcount|1|
|length|132|
|called||
|calling|CResourceFactory::Create|
|paramcount|2|
|address|18020aa04|
|sig|undefined __thiscall CEffectBrush(CEffectBrush * this, CComposition * param_1)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CEffectBrush::CEffectBrush
+++ CEffectBrush::CEffectBrush
@@ -1,28 +0,0 @@
-
-/* protected: __cdecl CEffectBrush::CEffectBrush(class CComposition * __ptr64) __ptr64 */
-
-CEffectBrush * __thiscall CEffectBrush::CEffectBrush(CEffectBrush *this,CComposition *param_1)
-
-{
-  *(undefined4 *)(this + 8) = 0;
-  *(undefined8 *)(this + 0x10) = 0;
-  *(CComposition **)(this + 0x18) = param_1;
-  *(undefined8 *)(this + 0x20) = 0;
-  *(undefined8 *)(this + 0x30) = 0;
-  *(undefined4 *)(this + 0x28) = 0;
-  *(undefined8 *)(this + 0x50) = 0;
-  *(undefined ***)this = &_vftable__for__CContent__;
-  *(undefined ***)(this + 0x48) = &CMaskBrush::_vftable__for__IBrushChangeNotification__;
-  *(undefined ***)(this + 0x68) = &_vftable_;
-  *(undefined8 *)(this + 0x58) = 0;
-  *(undefined8 *)(this + 0x78) = 0;
-  *(undefined8 *)(this + 0x80) = 0;
-  *(CEffectBrush **)(this + 0x88) = this + 0xa8;
-  *(CEffectBrush **)(this + 0x90) = this + 0xa8;
-  *(undefined4 *)(this + 0x98) = 2;
-  *(undefined8 *)(this + 0x9c) = 2;
-  this[0xb8] = (CEffectBrush)0x0;
-  this[0x60] = (CEffectBrush)0x1;
-  return this;
-}
-

```


## CImageLegacyMilBrush::CImageLegacyMilBrush

### Function Meta



|Key|dwmcore-10.0.26100.7623.dll|
| :---: | :---: |
|name|CImageLegacyMilBrush|
|fullname|CImageLegacyMilBrush::CImageLegacyMilBrush|
|refcount|1|
|length|111|
|called||
|calling|CResourceFactory::Create|
|paramcount|2|
|address|18020c260|
|sig|undefined __thiscall CImageLegacyMilBrush(CImageLegacyMilBrush * this, CComposition * param_1)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CImageLegacyMilBrush::CImageLegacyMilBrush
+++ CImageLegacyMilBrush::CImageLegacyMilBrush
@@ -1,28 +0,0 @@
-
-/* protected: __cdecl CImageLegacyMilBrush::CImageLegacyMilBrush(class CComposition * __ptr64)
-   __ptr64 */
-
-CImageLegacyMilBrush * __thiscall
-CImageLegacyMilBrush::CImageLegacyMilBrush(CImageLegacyMilBrush *this,CComposition *param_1)
-
-{
-  *(undefined4 *)(this + 8) = 0;
-  *(undefined8 *)(this + 0x10) = 0;
-  *(CComposition **)(this + 0x18) = param_1;
-  *(undefined8 *)(this + 0x20) = 0;
-  *(undefined8 *)(this + 0x30) = 0;
-  *(undefined4 *)(this + 0x28) = 0;
-  *(uint *)(this + 0x28) = *(uint *)(this + 0x28) | 1;
-  *(undefined ***)this = &_vftable_;
-  *(undefined4 *)(this + 200) = 0x3f800000;
-  *(undefined4 *)(this + 0xcc) = 0x3f800000;
-  *(undefined4 *)(this + 0xd0) = 0x3f800000;
-  *(undefined8 *)(this + 0xd4) = 0x3f800000;
-  *(undefined8 *)(this + 0xdc) = 0;
-  *(undefined4 *)(this + 0xe4) = 0;
-  this[0xe8] = (CImageLegacyMilBrush)0x0;
-  *(undefined8 *)(this + 0xf4) = 0;
-  *(undefined8 *)(this + 0xfc) = 0;
-  return this;
-}
-

```


## CEffectBrush::operator_new

### Function Meta



|Key|dwmcore-10.0.26100.7623.dll|
| :---: | :---: |
|name|operator_new|
|fullname|CEffectBrush::operator_new|
|refcount|2|
|length|39|
|called|DefaultHeap::AllocClear<br>ModuleFailFastForHRESULT|
|calling|CResourceFactory::Create|
|paramcount|1|
|address|180211e7c|
|sig|void * __cdecl operator_new(__uint64 param_1)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CEffectBrush::operator_new
+++ CEffectBrush::operator_new
@@ -1,17 +0,0 @@
-
-/* protected: static void * __ptr64 __cdecl CEffectBrush::operator new(unsigned __int64) */
-
-void * __cdecl CEffectBrush::operator_new(__uint64 param_1)
-
-{
-  void *pvVar1;
-  undefined8 unaff_retaddr;
-  
-  pvVar1 = DefaultHeap::AllocClear(0xc0);
-  if (pvVar1 != (void *)0x0) {
-    return pvVar1;
-  }
-                    /* WARNING: Subroutine does not return */
-  ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
-}
-

```


## CManipulation::operator_new

### Function Meta



|Key|dwmcore-10.0.26100.7623.dll|
| :---: | :---: |
|name|operator_new|
|fullname|CManipulation::operator_new|
|refcount|2|
|length|39|
|called|DefaultHeap::AllocClear<br>ModuleFailFastForHRESULT|
|calling|CResourceFactory::Create|
|paramcount|1|
|address|18021babc|
|sig|void * __cdecl operator_new(__uint64 param_1)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CManipulation::operator_new
+++ CManipulation::operator_new
@@ -1,17 +0,0 @@
-
-/* protected: static void * __ptr64 __cdecl CManipulation::operator new(unsigned __int64) */
-
-void * __cdecl CManipulation::operator_new(__uint64 param_1)
-
-{
-  void *pvVar1;
-  undefined8 unaff_retaddr;
-  
-  pvVar1 = DefaultHeap::AllocClear(0x2e0);
-  if (pvVar1 != (void *)0x0) {
-    return pvVar1;
-  }
-                    /* WARNING: Subroutine does not return */
-  ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
-}
-

```


## CLayerVisual::operator_new

### Function Meta



|Key|dwmcore-10.0.26100.7623.dll|
| :---: | :---: |
|name|operator_new|
|fullname|CLayerVisual::operator_new|
|refcount|2|
|length|39|
|called|DefaultHeap::AllocClear<br>ModuleFailFastForHRESULT|
|calling|CResourceFactory::Create|
|paramcount|1|
|address|18021c820|
|sig|void * __cdecl operator_new(__uint64 param_1)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CLayerVisual::operator_new
+++ CLayerVisual::operator_new
@@ -1,17 +0,0 @@
-
-/* public: static void * __ptr64 __cdecl CLayerVisual::operator new(unsigned __int64) */
-
-void * __cdecl CLayerVisual::operator_new(__uint64 param_1)
-
-{
-  void *pvVar1;
-  undefined8 unaff_retaddr;
-  
-  pvVar1 = DefaultHeap::AllocClear(0x2c8);
-  if (pvVar1 != (void *)0x0) {
-    return pvVar1;
-  }
-                    /* WARNING: Subroutine does not return */
-  ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
-}
-

```


## CLinearGradientBrush::operator_new

### Function Meta



|Key|dwmcore-10.0.26100.7623.dll|
| :---: | :---: |
|name|operator_new|
|fullname|CLinearGradientBrush::operator_new|
|refcount|2|
|length|39|
|called|DefaultHeap::AllocClear<br>ModuleFailFastForHRESULT|
|calling|CResourceFactory::Create|
|paramcount|1|
|address|18021c9a0|
|sig|void * __cdecl operator_new(__uint64 param_1)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CLinearGradientBrush::operator_new
+++ CLinearGradientBrush::operator_new
@@ -1,17 +0,0 @@
-
-/* public: static void * __ptr64 __cdecl CLinearGradientBrush::operator new(unsigned __int64) */
-
-void * __cdecl CLinearGradientBrush::operator_new(__uint64 param_1)
-
-{
-  void *pvVar1;
-  undefined8 unaff_retaddr;
-  
-  pvVar1 = DefaultHeap::AllocClear(0x100);
-  if (pvVar1 != (void *)0x0) {
-    return pvVar1;
-  }
-                    /* WARNING: Subroutine does not return */
-  ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
-}
-

```


## CTurbulenceEffect::operator_new

### Function Meta



|Key|dwmcore-10.0.26100.7623.dll|
| :---: | :---: |
|name|operator_new|
|fullname|CTurbulenceEffect::operator_new|
|refcount|2|
|length|39|
|called|DefaultHeap::AllocClear<br>ModuleFailFastForHRESULT|
|calling|CResourceFactory::Create|
|paramcount|1|
|address|18021d9c0|
|sig|void * __cdecl operator_new(__uint64 param_1)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CTurbulenceEffect::operator_new
+++ CTurbulenceEffect::operator_new
@@ -1,17 +0,0 @@
-
-/* protected: static void * __ptr64 __cdecl CTurbulenceEffect::operator new(unsigned __int64) */
-
-void * __cdecl CTurbulenceEffect::operator_new(__uint64 param_1)
-
-{
-  void *pvVar1;
-  undefined8 unaff_retaddr;
-  
-  pvVar1 = DefaultHeap::AllocClear(0xd8);
-  if (pvVar1 != (void *)0x0) {
-    return pvVar1;
-  }
-                    /* WARNING: Subroutine does not return */
-  ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
-}
-

```


## CConditionalExpression::operator_new

### Function Meta



|Key|dwmcore-10.0.26100.7623.dll|
| :---: | :---: |
|name|operator_new|
|fullname|CConditionalExpression::operator_new|
|refcount|2|
|length|39|
|called|DefaultHeap::AllocClear<br>ModuleFailFastForHRESULT|
|calling|CResourceFactory::Create|
|paramcount|1|
|address|18021e4c4|
|sig|void * __cdecl operator_new(__uint64 param_1)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CConditionalExpression::operator_new
+++ CConditionalExpression::operator_new
@@ -1,17 +0,0 @@
-
-/* public: static void * __ptr64 __cdecl CConditionalExpression::operator new(unsigned __int64) */
-
-void * __cdecl CConditionalExpression::operator_new(__uint64 param_1)
-
-{
-  void *pvVar1;
-  undefined8 unaff_retaddr;
-  
-  pvVar1 = DefaultHeap::AllocClear(0x170);
-  if (pvVar1 != (void *)0x0) {
-    return pvVar1;
-  }
-                    /* WARNING: Subroutine does not return */
-  ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
-}
-

```


## CMatrixTransform3D::CMatrixTransform3D

### Function Meta



|Key|dwmcore-10.0.26100.7623.dll|
| :---: | :---: |
|name|CMatrixTransform3D|
|fullname|CMatrixTransform3D::CMatrixTransform3D|
|refcount|1|
|length|89|
|called||
|calling|CResourceFactory::Create|
|paramcount|2|
|address|18021f178|
|sig|undefined __thiscall CMatrixTransform3D(CMatrixTransform3D * this, CComposition * param_1)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CMatrixTransform3D::CMatrixTransform3D
+++ CMatrixTransform3D::CMatrixTransform3D
@@ -1,25 +0,0 @@
-
-/* protected: __cdecl CMatrixTransform3D::CMatrixTransform3D(class CComposition * __ptr64) __ptr64
-    */
-
-CMatrixTransform3D * __thiscall
-CMatrixTransform3D::CMatrixTransform3D(CMatrixTransform3D *this,CComposition *param_1)
-
-{
-  *(undefined4 *)(this + 8) = 0;
-  *(undefined8 *)(this + 0x10) = 0;
-  *(CComposition **)(this + 0x18) = param_1;
-  *(undefined8 *)(this + 0x20) = 0;
-  *(undefined8 *)(this + 0x30) = 0;
-  *(undefined4 *)(this + 0x28) = 0;
-  *(undefined4 *)(this + 0x90) = 0;
-  *(uint *)(this + 0x28) = *(uint *)(this + 0x28) | 1;
-  *(undefined ***)this = &_vftable_;
-  *(undefined4 *)(this + 0xa0) = 0x3f800000;
-  *(undefined4 *)(this + 0xb4) = 0x3f800000;
-  *(undefined4 *)(this + 200) = 0x3f800000;
-  *(undefined4 *)(this + 0xdc) = 0x3f800000;
-  this[0x9c] = (CMatrixTransform3D)0x0;
-  return this;
-}
-

```


## CDropShadow::operator_new

### Function Meta



|Key|dwmcore-10.0.26100.7623.dll|
| :---: | :---: |
|name|operator_new|
|fullname|CDropShadow::operator_new|
|refcount|2|
|length|39|
|called|DefaultHeap::AllocClear<br>ModuleFailFastForHRESULT|
|calling|CResourceFactory::Create|
|paramcount|1|
|address|180220e20|
|sig|void * __cdecl operator_new(__uint64 param_1)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CDropShadow::operator_new
+++ CDropShadow::operator_new
@@ -1,17 +0,0 @@
-
-/* public: static void * __ptr64 __cdecl CDropShadow::operator new(unsigned __int64) */
-
-void * __cdecl CDropShadow::operator_new(__uint64 param_1)
-
-{
-  void *pvVar1;
-  undefined8 unaff_retaddr;
-  
-  pvVar1 = DefaultHeap::AllocClear(0x110);
-  if (pvVar1 != (void *)0x0) {
-    return pvVar1;
-  }
-                    /* WARNING: Subroutine does not return */
-  ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
-}
-

```


## CBrushDrawListGenerator::ProcessBrushClampEdges_Polygon

### Function Meta



|Key|dwmcore-10.0.26100.7623.dll|
| :---: | :---: |
|name|ProcessBrushClampEdges_Polygon|
|fullname|CBrushDrawListGenerator::ProcessBrushClampEdges_Polygon|
|refcount|2|
|length|402|
|called|CEdgeFlagsMap::AddEdgeFlags<br>Matrix3x3::operator*<br>_guard_dispatch_icall$thunk$10345483385596137414|
|calling|CBrushDrawListGenerator::GenerateDrawListPrimitive|
|paramcount|5|
|address|180227fd8|
|sig|void __cdecl ProcessBrushClampEdges_Polygon(D2D1_ANTIALIAS_MODE param_1, span<CDrawListBrush_const*___ptr64,-1> param_2, ulong param_3, Matrix3x3 * param_4, CEdgeFlagsMap * param_5)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CBrushDrawListGenerator::ProcessBrushClampEdges_Polygon
+++ CBrushDrawListGenerator::ProcessBrushClampEdges_Polygon
@@ -1,84 +0,0 @@
-
-/* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
-   guard_dispatch_icall */
-/* private: static void __cdecl CBrushDrawListGenerator::ProcessBrushClampEdges_Polygon(enum
-   D2D1_ANTIALIAS_MODE,class gsl::span<class CDrawListBrush const * __ptr64,-1>,unsigned long,class
-   Matrix3x3 const & __ptr64,class CEdgeFlagsMap * __ptr64) */
-
-void __cdecl
-CBrushDrawListGenerator::ProcessBrushClampEdges_Polygon
-          (int param_1,ulonglong *param_2,uint param_3,undefined8 param_4,CEdgeFlagsMap *param_5)
-
-{
-  code *pcVar1;
-  undefined8 *puVar2;
-  ulonglong uVar3;
-  D2D1_EDGE_FLAGS DVar4;
-  longlong lVar5;
-  undefined8 local_98;
-  longlong lStack_90;
-  ulonglong local_88;
-  undefined8 uStack_80;
-  undefined4 local_78;
-  undefined4 local_70;
-  undefined4 local_6c;
-  undefined4 local_68;
-  undefined4 local_64;
-  undefined4 local_60;
-  undefined4 local_5c;
-  undefined4 local_58;
-  undefined4 local_54;
-  undefined4 local_50;
-  Matrix3x3 local_4c [52];
-  
-  uVar3 = 0;
-  if (*param_2 != 0) {
-    if (*param_2 == 0) {
-      (*(code *)`void_(__cdecl*&___ptr64___cdecl_gsl::details::get_terminate_handler(void))(void)'::
-                __l2::handler)();
-      pcVar1 = (code *)swi(3);
-      (*pcVar1)();
-      return;
-    }
-    do {
-      lVar5 = *(longlong *)(param_2[1] + uVar3 * 8);
-      if ((lVar5 != 0) && (*(char *)(lVar5 + 0x34) != '\0')) {
-        if ((param_3 & 1 << ((byte)uVar3 & 0x1f)) == 0) {
-          lStack_90 = (ulonglong)*(uint *)(lVar5 + 0x10) << 0x20;
-          local_88 = (ulonglong)*(uint *)(lVar5 + 0x14);
-          uStack_80 = *(undefined8 *)(lVar5 + 0x18);
-          local_78 = 0x3f800000;
-          local_98 = *(undefined8 *)(lVar5 + 8);
-        }
-        else {
-          local_68 = 0;
-          local_5c = 0;
-          local_64 = *(undefined4 *)(lVar5 + 0x10);
-          local_60 = *(undefined4 *)(lVar5 + 0x14);
-          local_58 = *(undefined4 *)(lVar5 + 0x18);
-          local_54 = *(undefined4 *)(lVar5 + 0x1c);
-          local_50 = 0x3f800000;
-          local_70 = *(undefined4 *)(lVar5 + 8);
-          local_6c = *(undefined4 *)(lVar5 + 0xc);
-          puVar2 = (undefined8 *)Matrix3x3::operator*((Matrix3x3 *)&local_70,local_4c);
-          lStack_90 = puVar2[1];
-          local_88 = puVar2[2];
-          uStack_80 = puVar2[3];
-          local_78 = *(undefined4 *)(puVar2 + 4);
-          local_98 = *puVar2;
-        }
-        if (param_1 == 1) {
-          DVar4 = 0;
-        }
-        else {
-          DVar4 = *(D2D1_EDGE_FLAGS *)(lVar5 + 0x30);
-        }
-        CEdgeFlagsMap::AddEdgeFlags
-                  (param_5,(D2D_RECT_F *)(lVar5 + 0x20),DVar4,(Matrix3x3 *)&local_98,8.138021e-05);
-      }
-      uVar3 = uVar3 + 1;
-    } while (uVar3 < *param_2);
-  }
-  return;
-}
-

```


## McTemplateU0nqq_EventWriteTransfer

### Function Meta



|Key|dwmcore-10.0.26100.7623.dll|
| :---: | :---: |
|name|McTemplateU0nqq_EventWriteTransfer|
|fullname|McTemplateU0nqq_EventWriteTransfer|
|refcount|2|
|length|117|
|called|McGenEventWrite_EventWriteTransfer<br>__security_check_cookie|
|calling|COverlayContext::Present|
|paramcount|0|
|address|180250064|
|sig|undefined McTemplateU0nqq_EventWriteTransfer(void)|
|sym_type|Function|
|sym_source|IMPORTED|
|external|False|


```diff
--- McTemplateU0nqq_EventWriteTransfer
+++ McTemplateU0nqq_EventWriteTransfer
@@ -1,30 +0,0 @@
-
-/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
-
-void McTemplateU0nqq_EventWriteTransfer(void)
-
-{
-  undefined8 in_R9;
-  undefined1 auStack_88 [32];
-  undefined1 *local_68;
-  undefined1 local_58 [16];
-  undefined8 local_48;
-  undefined8 local_40;
-  undefined1 *local_38;
-  undefined8 local_30;
-  undefined1 *local_28;
-  undefined8 local_20;
-  ulonglong local_18;
-  
-  local_18 = __security_cookie ^ (ulonglong)auStack_88;
-  local_38 = &stack0x00000028;
-  local_40 = 0x1c;
-  local_28 = &stack0x00000030;
-  local_30 = 4;
-  local_68 = local_58;
-  local_20 = 4;
-  local_48 = in_R9;
-  McGenEventWrite_EventWriteTransfer(&Microsoft_Windows_Dwm_Compositor_Context,&Present_Legacy);
-  return;
-}
-

```


## CDrawingContext::PushColorSpaceLayer

### Function Meta



|Key|dwmcore-10.0.26100.7623.dll|
| :---: | :---: |
|name|PushColorSpaceLayer|
|fullname|CDrawingContext::PushColorSpaceLayer|
|refcount|2|
|length|241|
|called|CColorSpaceLayer::Create<br>CColorSpaceLayer::`scalar_deleting_destructor'<br>CDrawingContext::ComputeExternalLayerOffsetAndBounds<br>CDrawingContext::PushLayer<br>MilInstrumentationCheckHR_MaybeFailFast|
|calling|CDrawingContext::PushEffects|
|paramcount|3|
|address|180269480|
|sig|long __thiscall PushColorSpaceLayer(CDrawingContext * this, CVisual * param_1, DXGI_COLOR_SPACE_TYPE param_2)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CDrawingContext::PushColorSpaceLayer
+++ CDrawingContext::PushColorSpaceLayer
@@ -1,49 +0,0 @@
-
-/* private: long __cdecl CDrawingContext::PushColorSpaceLayer(class CVisual const * __ptr64,enum
-   DXGI_COLOR_SPACE_TYPE) __ptr64 */
-
-long __thiscall
-CDrawingContext::PushColorSpaceLayer
-          (CDrawingContext *this,CVisual *param_1,DXGI_COLOR_SPACE_TYPE param_2)
-
-{
-  long lVar1;
-  CColorSpaceLayer *this_00;
-  CColorSpaceLayer *local_res20;
-  uint uVar2;
-  undefined8 local_28;
-  undefined8 uStack_20;
-  
-  this_00 = (CColorSpaceLayer *)0x0;
-  local_28 = 0;
-  uStack_20 = 0;
-  local_res20 = (CColorSpaceLayer *)0x0;
-  lVar1 = ComputeExternalLayerOffsetAndBounds(this,(D2D_POINTANDSIZE_L *)&local_28);
-  if (lVar1 < 0) {
-    uVar2 = 0xe66;
-  }
-  else {
-    lVar1 = CColorSpaceLayer::Create
-                      (*(IDeviceTarget **)(this + 0x20),(D2D_POINTANDSIZE_L *)&local_28,param_2,
-                       &local_res20);
-    this_00 = local_res20;
-    if (lVar1 < 0) {
-      MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar1,0xe6b,(void *)0x0);
-      this_00 = local_res20;
-      goto LAB_18026954a;
-    }
-    lVar1 = PushLayer(this,param_1,(CLayer *)local_res20,true,true);
-    if (-1 < lVar1) {
-      this_00 = (CColorSpaceLayer *)0x0;
-      goto LAB_18026954a;
-    }
-    uVar2 = 0xe71;
-  }
-  MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar1,uVar2,(void *)0x0);
-LAB_18026954a:
-  if (this_00 != (CColorSpaceLayer *)0x0) {
-    CColorSpaceLayer::_scalar_deleting_destructor_(this_00,1);
-  }
-  return lVar1;
-}
-

```


## CArithmeticCompositeEffect::CArithmeticCompositeEffect

### Function Meta



|Key|dwmcore-10.0.26100.7623.dll|
| :---: | :---: |
|name|CArithmeticCompositeEffect|
|fullname|CArithmeticCompositeEffect::CArithmeticCompositeEffect|
|refcount|2|
|length|53|
|called|CFilterEffect::CFilterEffect|
|calling|CResourceFactory::Create|
|paramcount|2|
|address|18027707c|
|sig|undefined __thiscall CArithmeticCompositeEffect(CArithmeticCompositeEffect * this, CComposition * param_1)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CArithmeticCompositeEffect::CArithmeticCompositeEffect
+++ CArithmeticCompositeEffect::CArithmeticCompositeEffect
@@ -1,17 +0,0 @@
-
-/* protected: __cdecl CArithmeticCompositeEffect::CArithmeticCompositeEffect(class CComposition *
-   __ptr64) __ptr64 */
-
-CArithmeticCompositeEffect * __thiscall
-CArithmeticCompositeEffect::CArithmeticCompositeEffect
-          (CArithmeticCompositeEffect *this,CComposition *param_1)
-
-{
-  CFilterEffect::CFilterEffect((CFilterEffect *)this,param_1);
-  *(undefined8 *)(this + 0xb0) = 0x3f800000;
-  *(undefined8 *)(this + 0xb8) = 0;
-  *(undefined4 *)(this + 0xc0) = 0;
-  *(undefined ***)this = &_vftable_;
-  return this;
-}
-

```


## CBrightnessEffect::CBrightnessEffect

### Function Meta



|Key|dwmcore-10.0.26100.7623.dll|
| :---: | :---: |
|name|CBrightnessEffect|
|fullname|CBrightnessEffect::CBrightnessEffect|
|refcount|2|
|length|58|
|called|CFilterEffect::CFilterEffect|
|calling|CResourceFactory::Create|
|paramcount|2|
|address|1802770b8|
|sig|undefined __thiscall CBrightnessEffect(CBrightnessEffect * this, CComposition * param_1)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CBrightnessEffect::CBrightnessEffect
+++ CBrightnessEffect::CBrightnessEffect
@@ -1,16 +0,0 @@
-
-/* protected: __cdecl CBrightnessEffect::CBrightnessEffect(class CComposition * __ptr64) __ptr64 */
-
-CBrightnessEffect * __thiscall
-CBrightnessEffect::CBrightnessEffect(CBrightnessEffect *this,CComposition *param_1)
-
-{
-  CFilterEffect::CFilterEffect((CFilterEffect *)this,param_1);
-  *(undefined4 *)(this + 0xb8) = 0;
-  *(undefined4 *)(this + 0xbc) = 0;
-  *(undefined4 *)(this + 0xb0) = 0x3f800000;
-  *(undefined4 *)(this + 0xb4) = 0x3f800000;
-  *(undefined ***)this = &_vftable_;
-  return this;
-}
-

```


## CFloodEffect::CFloodEffect

### Function Meta



|Key|dwmcore-10.0.26100.7623.dll|
| :---: | :---: |
|name|CFloodEffect|
|fullname|CFloodEffect::CFloodEffect|
|refcount|2|
|length|52|
|called|CFilterEffect::CFilterEffect|
|calling|CResourceFactory::Create|
|paramcount|2|
|address|18027738c|
|sig|undefined __thiscall CFloodEffect(CFloodEffect * this, CComposition * param_1)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CFloodEffect::CFloodEffect
+++ CFloodEffect::CFloodEffect
@@ -1,14 +0,0 @@
-
-/* protected: __cdecl CFloodEffect::CFloodEffect(class CComposition * __ptr64) __ptr64 */
-
-CFloodEffect * __thiscall CFloodEffect::CFloodEffect(CFloodEffect *this,CComposition *param_1)
-
-{
-  CFilterEffect::CFilterEffect((CFilterEffect *)this,param_1);
-  *(undefined4 *)(this + 0xbc) = 0x3f800000;
-  *(undefined8 *)(this + 0xb0) = 0;
-  *(undefined4 *)(this + 0xb8) = 0;
-  *(undefined ***)this = &_vftable_;
-  return this;
-}
-

```


## CGaussianBlurEffect::CGaussianBlurEffect

### Function Meta



|Key|dwmcore-10.0.26100.7623.dll|
| :---: | :---: |
|name|CGaussianBlurEffect|
|fullname|CGaussianBlurEffect::CGaussianBlurEffect|
|refcount|2|
|length|51|
|called|CFilterEffect::CFilterEffect|
|calling|CResourceFactory::Create|
|paramcount|2|
|address|1802773c8|
|sig|undefined __thiscall CGaussianBlurEffect(CGaussianBlurEffect * this, CComposition * param_1)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CGaussianBlurEffect::CGaussianBlurEffect
+++ CGaussianBlurEffect::CGaussianBlurEffect
@@ -1,16 +0,0 @@
-
-/* protected: __cdecl CGaussianBlurEffect::CGaussianBlurEffect(class CComposition * __ptr64) __ptr64
-    */
-
-CGaussianBlurEffect * __thiscall
-CGaussianBlurEffect::CGaussianBlurEffect(CGaussianBlurEffect *this,CComposition *param_1)
-
-{
-  CFilterEffect::CFilterEffect((CFilterEffect *)this,param_1);
-  *(undefined4 *)(this + 0xb4) = 0;
-  *(undefined4 *)(this + 0xb8) = 0;
-  *(undefined ***)this = &_vftable_;
-  *(undefined4 *)(this + 0xb0) = 0x40400000;
-  return this;
-}
-

```


## CColorSpaceLayer::Create

### Function Meta



|Key|dwmcore-10.0.26100.7623.dll|
| :---: | :---: |
|name|Create|
|fullname|CColorSpaceLayer::Create|
|refcount|2|
|length|305|
|called|CExternalLayer::CExternalLayer<br>CExternalLayer::CreateBitmap<br>IsDXGIColorSpaceHDR<br>MilInstrumentationCheckHR_MaybeFailFast<br>_guard_dispatch_icall$thunk$10345483385596137414<br>operator_new<br>wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy><br>wil::com_ptr_t<IRenderTargetBitmap,wil::err_returncode_policy>::reset|
|calling|CDrawingContext::PushColorSpaceLayer|
|paramcount|4|
|address|18027e6cc|
|sig|long __cdecl Create(IDeviceTarget * param_1, D2D_POINTANDSIZE_L * param_2, DXGI_COLOR_SPACE_TYPE param_3, CColorSpaceLayer * * param_4)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CColorSpaceLayer::Create
+++ CColorSpaceLayer::Create
@@ -1,62 +0,0 @@
-
-/* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
-   guard_dispatch_icall */
-/* public: static long __cdecl CColorSpaceLayer::Create(class IDeviceTarget * __ptr64,struct
-   D2D_POINTANDSIZE_L const & __ptr64,enum DXGI_COLOR_SPACE_TYPE,class CColorSpaceLayer * __ptr64 *
-   __ptr64) */
-
-long __cdecl
-CColorSpaceLayer::Create
-          (IDeviceTarget *param_1,D2D_POINTANDSIZE_L *param_2,DXGI_COLOR_SPACE_TYPE param_3,
-          CColorSpaceLayer **param_4)
-
-{
-  bool bVar1;
-  long lVar2;
-  RenderTargetInfo *pRVar3;
-  CExternalLayer *this;
-  IRenderTargetBitmap *local_res8;
-  uint uVar4;
-  int local_58 [4];
-  char *local_48;
-  undefined4 local_40;
-  undefined1 local_38 [32];
-  
-  *param_4 = (CColorSpaceLayer *)0x0;
-  bVar1 = IsDXGIColorSpaceHDR(param_3);
-  local_58[1] = 1;
-  local_res8 = (IRenderTargetBitmap *)0x0;
-  local_58[0] = (-(uint)bVar1 & 0xffffffb3) + 0x57;
-  local_58[2] = param_3;
-  wil::com_ptr_t<IRenderTargetBitmap,wil::err_returncode_policy>::reset
-            ((com_ptr_t<IRenderTargetBitmap,wil::err_returncode_policy> *)&local_res8);
-  pRVar3 = (RenderTargetInfo *)(**(code **)(*(longlong *)param_1 + 0x78))(param_1,local_38);
-  local_40 = 0x2b;
-  local_48 = "DWM Scratch Rendertarget (colorspace layer)";
-  lVar2 = CExternalLayer::CreateBitmap
-                    ((CResourceTag *)&local_48,param_2,(PixelFormatInfo *)local_58,pRVar3,1,
-                     &local_res8);
-  if (lVar2 < 0) {
-    uVar4 = 0x20;
-  }
-  else {
-    this = ::operator_new(0x80);
-    if (this != (CExternalLayer *)0x0) {
-      CExternalLayer::CExternalLayer(this,param_2,local_res8);
-      this[0x78] = (CExternalLayer)0x1;
-      *(undefined ***)this = &_vftable_;
-      *param_4 = (CColorSpaceLayer *)this;
-      goto LAB_18027e7dd;
-    }
-    *param_4 = (CColorSpaceLayer *)0x0;
-    lVar2 = -0x7ff8fff2;
-    uVar4 = 0x24;
-  }
-  MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar2,uVar4,(void *)0x0);
-LAB_18027e7dd:
-  wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::
-  ~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>
-            ((com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy> *)&local_res8);
-  return lVar2;
-}
-

```


## CCursorVisual::TryEnableHardwareCursor

### Function Meta



|Key|dwmcore-10.0.26100.7623.dll|
| :---: | :---: |
|name|TryEnableHardwareCursor|
|fullname|CCursorVisual::TryEnableHardwareCursor|
|refcount|2|
|length|116|
|called|CCursorState::TryEnableHardwareCursor|
|calling|COverlayContext::TryEnableHardwareCursor|
|paramcount|6|
|address|180294878|
|sig|bool __thiscall TryEnableHardwareCursor(CCursorVisual * this, _LUID param_1, uint param_2, TMilRect<unsigned_int,MilRectU,Mil3DRectU,RectUniqueness::NotNeeded> * param_3, CMILMatrix * param_4, bool param_5)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CCursorVisual::TryEnableHardwareCursor
+++ CCursorVisual::TryEnableHardwareCursor
@@ -1,26 +0,0 @@
-
-/* public: bool __cdecl CCursorVisual::TryEnableHardwareCursor(struct _LUID,unsigned int,class
-   TMilRect<unsigned int,struct MilRectU,struct Mil3DRectU,struct RectUniqueness::NotNeeded> const &
-   __ptr64,class CMILMatrix const & __ptr64,bool) __ptr64 */
-
-bool __thiscall
-CCursorVisual::TryEnableHardwareCursor
-          (CCursorVisual *this,_LUID param_1,uint param_2,
-          TMilRect<unsigned_int,MilRectU,Mil3DRectU,RectUniqueness::NotNeeded> *param_3,
-          CMILMatrix *param_4,bool param_5)
-
-{
-  bool bVar1;
-  bool bVar2;
-  
-  bVar2 = false;
-  if (*(longlong *)(this + 0x2c0) != 0) {
-    bVar1 = CCursorState::TryEnableHardwareCursor();
-    bVar2 = false;
-    if (bVar1) {
-      bVar2 = true;
-    }
-  }
-  return bVar2;
-}
-

```


## CCompositionDynamicTexture::CCompositionDynamicTexture

### Function Meta



|Key|dwmcore-10.0.26100.7623.dll|
| :---: | :---: |
|name|CCompositionDynamicTexture|
|fullname|CCompositionDynamicTexture::CCompositionDynamicTexture|
|refcount|1|
|length|101|
|called||
|calling|CResourceFactory::Create|
|paramcount|2|
|address|18029942c|
|sig|undefined __thiscall CCompositionDynamicTexture(CCompositionDynamicTexture * this, CComposition * param_1)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CCompositionDynamicTexture::CCompositionDynamicTexture
+++ CCompositionDynamicTexture::CCompositionDynamicTexture
@@ -1,27 +0,0 @@
-
-/* protected: __cdecl CCompositionDynamicTexture::CCompositionDynamicTexture(class CComposition *
-   __ptr64) __ptr64 */
-
-CCompositionDynamicTexture * __thiscall
-CCompositionDynamicTexture::CCompositionDynamicTexture
-          (CCompositionDynamicTexture *this,CComposition *param_1)
-
-{
-  *(undefined4 *)(this + 8) = 0;
-  *(undefined8 *)(this + 0x10) = 0;
-  *(CComposition **)(this + 0x18) = param_1;
-  *(undefined8 *)(this + 0x20) = 0;
-  *(undefined8 *)(this + 0x30) = 0;
-  *(undefined4 *)(this + 0x28) = 0;
-  *(undefined ***)this =
-       &_vftable__for__CCompositionDynamicTextureGeneratedT<CCompositionDynamicTexture,CContent>__;
-  *(undefined ***)(this + 0x50) = &_vftable__for__IDirtyRectSource__;
-  *(undefined8 *)(this + 0x60) = 0;
-  *(undefined ***)(this + 0x58) = &CRectanglesShape::_vftable_;
-  *(CCompositionDynamicTexture **)(this + 0x68) = this + 0x80;
-  *(CCompositionDynamicTexture **)(this + 0x70) = this + 0x80;
-  *(CCompositionDynamicTexture **)(this + 0x78) = this + 0x90;
-  *(undefined8 *)(this + 0x90) = 0;
-  return this;
-}
-

```


## std::_Move_unchecked<CCursorState::MonitorData*___ptr64,CCursorState::MonitorData*___ptr64>

### Function Meta



|Key|dwmcore-10.0.26100.7623.dll|
| :---: | :---: |
|name|_Move_unchecked<CCursorState::MonitorData*___ptr64,CCursorState::MonitorData*___ptr64>|
|fullname|std::_Move_unchecked<CCursorState::MonitorData*___ptr64,CCursorState::MonitorData*___ptr64>|
|refcount|2|
|length|203|
|called|std::shared_ptr<CCursorState::ShapeData>::operator=|
|calling|CCursorState::DisableHardwareCursor|
|paramcount|3|
|address|1802b3aac|
|sig|MonitorData * __cdecl _Move_unchecked<CCursorState::MonitorData*___ptr64,CCursorState::MonitorData*___ptr64>(MonitorData * param_1, MonitorData * param_2, MonitorData * param_3)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- std::_Move_unchecked<CCursorState::MonitorData*___ptr64,CCursorState::MonitorData*___ptr64>
+++ std::_Move_unchecked<CCursorState::MonitorData*___ptr64,CCursorState::MonitorData*___ptr64>
@@ -1,55 +0,0 @@
-
-/* struct CCursorState::MonitorData * __ptr64 __cdecl std::_Move_unchecked<struct
-   CCursorState::MonitorData * __ptr64,struct CCursorState::MonitorData * __ptr64>(struct
-   CCursorState::MonitorData * __ptr64,struct CCursorState::MonitorData * __ptr64,struct
-   CCursorState::MonitorData * __ptr64) */
-
-MonitorData * __cdecl
-std::_Move_unchecked<CCursorState::MonitorData*___ptr64,CCursorState::MonitorData*___ptr64>
-          (MonitorData *param_1,MonitorData *param_2,MonitorData *param_3)
-
-{
-  MonitorData *pMVar1;
-  undefined8 uVar2;
-  MonitorData *pMVar3;
-  MonitorData *pMVar4;
-  
-  if (param_1 != param_2) {
-    pMVar4 = param_3 + 0xc;
-    pMVar3 = param_1 + 0xc;
-    do {
-      *(undefined8 *)param_3 = *(undefined8 *)(pMVar3 + -0xc);
-      *(undefined4 *)(pMVar4 + -4) = *(undefined4 *)(pMVar3 + -4);
-      uVar2 = *(undefined8 *)(pMVar3 + 8);
-      *(undefined8 *)pMVar4 = *(undefined8 *)pMVar3;
-      *(undefined8 *)(pMVar4 + 8) = uVar2;
-      uVar2 = *(undefined8 *)(pMVar3 + 0x18);
-      *(undefined8 *)(pMVar4 + 0x10) = *(undefined8 *)(pMVar3 + 0x10);
-      *(undefined8 *)(pMVar4 + 0x18) = uVar2;
-      uVar2 = *(undefined8 *)(pMVar3 + 0x28);
-      *(undefined8 *)(pMVar4 + 0x20) = *(undefined8 *)(pMVar3 + 0x20);
-      *(undefined8 *)(pMVar4 + 0x28) = uVar2;
-      uVar2 = *(undefined8 *)(pMVar3 + 0x38);
-      *(undefined8 *)(pMVar4 + 0x30) = *(undefined8 *)(pMVar3 + 0x30);
-      *(undefined8 *)(pMVar4 + 0x38) = uVar2;
-      *(undefined4 *)(pMVar4 + 0x40) = *(undefined4 *)(pMVar3 + 0x40);
-      uVar2 = *(undefined8 *)(pMVar3 + 0x4c);
-      *(undefined8 *)(pMVar4 + 0x44) = *(undefined8 *)(pMVar3 + 0x44);
-      *(undefined8 *)(pMVar4 + 0x4c) = uVar2;
-      shared_ptr<CCursorState::ShapeData>::operator=
-                ((shared_ptr<CCursorState::ShapeData> *)(pMVar4 + 0x54),
-                 (shared_ptr<struct_CCursorState::ShapeData> *)(pMVar3 + 0x54));
-      param_3 = param_3 + 0x80;
-      *(undefined4 *)(pMVar4 + 100) = *(undefined4 *)(pMVar3 + 100);
-      *(undefined4 *)(pMVar4 + 0x68) = *(undefined4 *)(pMVar3 + 0x68);
-      *(undefined4 *)(pMVar4 + 0x6c) = *(undefined4 *)(pMVar3 + 0x6c);
-      pMVar4[0x70] = pMVar3[0x70];
-      pMVar4[0x71] = pMVar3[0x71];
-      pMVar4 = pMVar4 + 0x80;
-      pMVar1 = pMVar3 + 0x74;
-      pMVar3 = pMVar3 + 0x80;
-    } while (pMVar1 != param_2);
-  }
-  return param_3;
-}
-

```


## CCursorState::DisableHardwareCursor

### Function Meta



|Key|dwmcore-10.0.26100.7623.dll|
| :---: | :---: |
|name|DisableHardwareCursor|
|fullname|CCursorState::DisableHardwareCursor|
|refcount|2|
|length|139|
|called|API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::EnterCriticalSection<br>API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::LeaveCriticalSection<br>CCursorState::EnsureHardwareOverlayCleared<br>CCursorState::FindMonitorData<br>std::_Move_unchecked<CCursorState::MonitorData*___ptr64,CCursorState::MonitorData*___ptr64><br>std::_Ref_count_base::_Decref|
|calling|COverlayContext::DisableHardwareCursor|
|paramcount|3|
|address|1802b50fc|
|sig|void __thiscall DisableHardwareCursor(CCursorState * this, _LUID param_1, uint param_2)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CCursorState::DisableHardwareCursor
+++ CCursorState::DisableHardwareCursor
@@ -1,25 +0,0 @@
-
-/* public: void __cdecl CCursorState::DisableHardwareCursor(struct _LUID,unsigned int) __ptr64 */
-
-void __thiscall CCursorState::DisableHardwareCursor(CCursorState *this,_LUID param_1,uint param_2)
-
-{
-  CCursorManager *this_00;
-  MonitorData *local_res8;
-  
-  FindMonitorData(this,(_LUID)&local_res8,param_1.LowPart);
-  if (local_res8 != *(MonitorData **)(this + 0x60)) {
-    this_00 = &g_CursorManager;
-    EnterCriticalSection((LPCRITICAL_SECTION)&g_CursorManager);
-    EnsureHardwareOverlayCleared((CCursorState *)this_00,local_res8);
-    std::_Move_unchecked<CCursorState::MonitorData*___ptr64,CCursorState::MonitorData*___ptr64>
-              (local_res8 + 0x80,*(MonitorData **)(this + 0x60),local_res8);
-    if (*(_Ref_count_base **)(*(longlong *)(this + 0x60) + -0x18) != (_Ref_count_base *)0x0) {
-      std::_Ref_count_base::_Decref(*(_Ref_count_base **)(*(longlong *)(this + 0x60) + -0x18));
-    }
-    *(longlong *)(this + 0x60) = *(longlong *)(this + 0x60) + -0x80;
-    LeaveCriticalSection((LPCRITICAL_SECTION)&g_CursorManager);
-  }
-  return;
-}
-

```


## CCursorState::GetScaleAndRotation

### Function Meta



|Key|dwmcore-10.0.26100.7623.dll|
| :---: | :---: |
|name|GetScaleAndRotation|
|fullname|CCursorState::GetScaleAndRotation|
|refcount|2|
|length|133|
|called|CMILMatrix::Get2DScaleDimensions<br>CMILMatrix::GetRotation|
|calling|CCursorState::TryEnableHardwareCursor|
|paramcount|3|
|address|1802b5628|
|sig|bool __cdecl GetScaleAndRotation(CMILMatrix * param_1, float * param_2, DXGI_MODE_ROTATION * param_3)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CCursorState::GetScaleAndRotation
+++ CCursorState::GetScaleAndRotation
@@ -1,29 +0,0 @@
-
-/* private: static bool __cdecl CCursorState::GetScaleAndRotation(class CMILMatrix const &
-   __ptr64,float * __ptr64,enum DXGI_MODE_ROTATION * __ptr64) */
-
-bool __cdecl
-CCursorState::GetScaleAndRotation(CMILMatrix *param_1,float *param_2,DXGI_MODE_ROTATION *param_3)
-
-{
-  DXGI_MODE_ROTATION DVar1;
-  bool bVar2;
-  float local_res18 [2];
-  float local_res20 [2];
-  
-  DVar1 = CMILMatrix::GetRotation(param_1);
-  *param_3 = DVar1;
-  bVar2 = false;
-  if (DVar1 != 0) {
-    local_res18[0] = 0.0;
-    local_res20[0] = 0.0;
-    CMILMatrix::Get2DScaleDimensions(param_1,local_res18,local_res20);
-    if ((ABS(local_res18[0] - local_res20[0]) <= 1.1920929e-06) &&
-       (bVar2 = false, 1.1920929e-06 <= ABS(local_res18[0]))) {
-      *param_2 = local_res18[0];
-      bVar2 = true;
-    }
-  }
-  return bVar2;
-}
-

```


## CCursorState::IsBetterRotationMatch

### Function Meta



|Key|dwmcore-10.0.26100.7623.dll|
| :---: | :---: |
|name|IsBetterRotationMatch|
|fullname|CCursorState::IsBetterRotationMatch|
|refcount|1|
|length|38|
|called||
|calling|<lambda_4f96f9abf6f4efc73c76f9e3716c5312>::operator()<std::shared_ptr<CCursorState::ShapeData>,std::shared_ptr<CCursorState::ShapeData>_>|
|paramcount|3|
|address|1802b56f8|
|sig|bool __cdecl IsBetterRotationMatch(DXGI_MODE_ROTATION param_1, DXGI_MODE_ROTATION param_2, DXGI_MODE_ROTATION param_3)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CCursorState::IsBetterRotationMatch
+++ CCursorState::IsBetterRotationMatch
@@ -1,15 +0,0 @@
-
-/* private: static bool __cdecl CCursorState::IsBetterRotationMatch(enum DXGI_MODE_ROTATION,enum
-   DXGI_MODE_ROTATION,enum DXGI_MODE_ROTATION) */
-
-bool __cdecl
-CCursorState::IsBetterRotationMatch
-          (DXGI_MODE_ROTATION param_1,DXGI_MODE_ROTATION param_2,DXGI_MODE_ROTATION param_3)
-
-{
-  if ((param_1 != param_3) && ((param_2 == param_3 || ((int)((param_1 - param_3) + 4) % 4 != 2)))) {
-    return false;
-  }
-  return true;
-}
-

```


## CCursorState::TryEnableHardwareCursor

### Function Meta



|Key|dwmcore-10.0.26100.7623.dll|
| :---: | :---: |
|name|TryEnableHardwareCursor|
|fullname|CCursorState::TryEnableHardwareCursor|
|refcount|2|
|length|722|
|called|<details><summary>Expand for full list:<br>API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::EnterCriticalSection<br>API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::LeaveCriticalSection<br>CCursorState::EnsureHardwareOverlayCleared<br>CCursorState::FindMonitorData<br>CCursorState::GetScaleAndRotation<br>CCursorState::MonitorData::MonitorData<br>CCursorState::TryGetShape<br>CCursorState::UpdateHardwareCursorOverlay<br>CMILMatrix::Multiply<br>CMILMatrix::SetRotation<br>__security_check_cookie</summary>std::_Ref_count_base::_Decref<br>std::shared_ptr<CCursorState::ShapeData>::operator=<br>std::vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_>::_Emplace_reallocate<CCursorState::MonitorData></details>|
|calling|CCursorVisual::TryEnableHardwareCursor|
|paramcount|6|
|address|1802b6908|
|sig|bool __thiscall TryEnableHardwareCursor(CCursorState * this, _LUID param_1, uint param_2, TMilRect<unsigned_int,MilRectU,Mil3DRectU,RectUniqueness::NotNeeded> * param_3, CMILMatrix param_4, bool param_5)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CCursorState::TryEnableHardwareCursor
+++ CCursorState::TryEnableHardwareCursor
@@ -1,152 +0,0 @@
-
-/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
-/* public: bool __cdecl CCursorState::TryEnableHardwareCursor(struct _LUID,unsigned int,class
-   TMilRect<unsigned int,struct MilRectU,struct Mil3DRectU,struct RectUniqueness::NotNeeded> const &
-   __ptr64,class CMILMatrix,bool) __ptr64 */
-
-bool __thiscall
-CCursorState::TryEnableHardwareCursor
-          (CCursorState *this,undefined8 param_1,undefined4 param_2,undefined8 *param_3,
-          CMILMatrix *param_5,MonitorData param_6)
-
-{
-  undefined4 uVar1;
-  undefined8 uVar2;
-  undefined8 uVar3;
-  undefined8 uVar4;
-  undefined8 uVar5;
-  DXGI_MODE_ROTATION DVar6;
-  bool bVar7;
-  shared_ptr<struct_CCursorState::ShapeData> *psVar8;
-  CCursorState *this_00;
-  MonitorData *pMVar9;
-  DXGI_MODE_ROTATION DVar10;
-  undefined1 auStack_118 [32];
-  CCursorState local_f8;
-  float local_e8;
-  DXGI_MODE_ROTATION local_e4;
-  MonitorData *local_e0;
-  _Ref_count_base *p_Stack_d8;
-  undefined8 local_c8;
-  undefined4 local_c0;
-  undefined4 local_88;
-  undefined8 local_7c;
-  undefined8 local_74;
-  undefined4 local_6c;
-  undefined8 local_68;
-  _Ref_count_base *p_Stack_60;
-  undefined4 local_50;
-  undefined2 local_4c;
-  ulonglong local_48;
-  
-  local_48 = __security_cookie ^ (ulonglong)auStack_118;
-  EnterCriticalSection((LPCRITICAL_SECTION)&g_CursorManager);
-  local_e8 = 0.0;
-  local_e4 = 0;
-  FindMonitorData(this,(_LUID)&local_e0,(uint)param_1);
-  pMVar9 = local_e0;
-  if (local_e0 == *(MonitorData **)(this + 0x60)) {
-    pMVar9 = *(MonitorData **)(this + 0x60);
-    local_7c = 0;
-    local_74 = 0;
-    local_6c = 0;
-    local_68 = 0;
-    p_Stack_60 = (_Ref_count_base *)0x0;
-    local_50 = 0;
-    local_4c = 0;
-    local_c8 = param_1;
-    local_c0 = param_2;
-    if (pMVar9 == *(MonitorData **)(this + 0x68)) {
-      std::vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_>::
-      _Emplace_reallocate<CCursorState::MonitorData>
-                ((vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_> *)
-                 (this + 0x58),pMVar9,(MonitorData *)&local_c8);
-    }
-    else {
-      MonitorData::MonitorData(pMVar9,(MonitorData *)&local_c8);
-      *(longlong *)(this + 0x60) = *(longlong *)(this + 0x60) + 0x80;
-    }
-    if (p_Stack_60 != (_Ref_count_base *)0x0) {
-      std::_Ref_count_base::_Decref(p_Stack_60);
-    }
-    pMVar9 = (MonitorData *)(*(longlong *)(this + 0x60) + -0x80);
-  }
-  uVar2 = *(undefined8 *)(param_5 + 8);
-  uVar3 = *(undefined8 *)(param_5 + 0x10);
-  uVar4 = *(undefined8 *)(param_5 + 0x18);
-  uVar1 = *(undefined4 *)(param_5 + 0x40);
-  *(undefined8 *)(pMVar9 + 0xc) = *(undefined8 *)param_5;
-  *(undefined8 *)(pMVar9 + 0x14) = uVar2;
-  uVar2 = *(undefined8 *)(param_5 + 0x20);
-  uVar5 = *(undefined8 *)(param_5 + 0x28);
-  *(undefined8 *)(pMVar9 + 0x1c) = uVar3;
-  *(undefined8 *)(pMVar9 + 0x24) = uVar4;
-  uVar3 = *(undefined8 *)(param_5 + 0x30);
-  uVar4 = *(undefined8 *)(param_5 + 0x38);
-  *(undefined8 *)(pMVar9 + 0x2c) = uVar2;
-  *(undefined8 *)(pMVar9 + 0x34) = uVar5;
-  uVar2 = *param_3;
-  uVar5 = param_3[1];
-  *(undefined8 *)(pMVar9 + 0x3c) = uVar3;
-  *(undefined8 *)(pMVar9 + 0x44) = uVar4;
-  *(undefined4 *)(pMVar9 + 0x4c) = uVar1;
-  *(undefined8 *)(pMVar9 + 0x50) = uVar2;
-  *(undefined8 *)(pMVar9 + 0x58) = uVar5;
-  pMVar9[0x7d] = param_6;
-  if (1.1920929e-06 <= ABS(*(float *)(this + 0xc0))) {
-    local_e0 = (MonitorData *)0x0;
-    local_88 = 0;
-    p_Stack_d8 = (_Ref_count_base *)CONCAT44(p_Stack_d8._4_4_,0x3f800000);
-    CMILMatrix::SetRotation((CMILMatrix *)&local_c8,(float3 *)&local_e0,*(float *)(this + 0xc0));
-    CMILMatrix::Multiply(param_5,(CMILMatrix *)&local_c8);
-  }
-  if (g_disableHardwareCursors == false) {
-    bVar7 = GetScaleAndRotation(param_5,&local_e8,&local_e4);
-    DVar6 = local_e4;
-    if (bVar7) {
-      this_00 = (CCursorState *)(ulonglong)*(uint *)(*(longlong *)(this + 0xb0) + 0xc);
-      local_e8 = (local_e8 / *(float *)(this + 0xa8)) * (float)(longlong)this_00 + 6291456.0;
-      DVar10 = ((int)local_e8 << 10) >> 0xb;
-      if (((*(int *)(pMVar9 + 0x78) != *(int *)(this + 0xf8)) ||
-          (*(DXGI_MODE_ROTATION *)(pMVar9 + 0x70) != DVar10)) ||
-         (*(DXGI_MODE_ROTATION *)(pMVar9 + 0x74) != local_e4)) {
-        local_f8 = this[0x71];
-        psVar8 = (shared_ptr<struct_CCursorState::ShapeData> *)
-                 TryGetShape(this,(uint)&local_e0,DVar10,SUB41(local_e4,0));
-        std::shared_ptr<CCursorState::ShapeData>::operator=
-                  ((shared_ptr<CCursorState::ShapeData> *)(pMVar9 + 0x60),psVar8);
-        this_00 = (CCursorState *)p_Stack_d8;
-        if (p_Stack_d8 != (_Ref_count_base *)0x0) {
-          std::_Ref_count_base::_Decref(p_Stack_d8);
-        }
-        if (*(longlong *)(pMVar9 + 0x60) != 0) {
-          this_00 = this;
-          UpdateHardwareCursorOverlay(this,pMVar9,true);
-        }
-        *(undefined4 *)(pMVar9 + 0x78) = *(undefined4 *)(this + 0xf8);
-        *(DXGI_MODE_ROTATION *)(pMVar9 + 0x70) = DVar10;
-        *(DXGI_MODE_ROTATION *)(pMVar9 + 0x74) = DVar6;
-      }
-      goto LAB_1802b6b89;
-    }
-  }
-  local_e0 = (MonitorData *)0x0;
-  p_Stack_d8 = (_Ref_count_base *)0x0;
-  std::shared_ptr<CCursorState::ShapeData>::operator=
-            ((shared_ptr<CCursorState::ShapeData> *)(pMVar9 + 0x60),
-             (shared_ptr<struct_CCursorState::ShapeData> *)&local_e0);
-  this_00 = (CCursorState *)p_Stack_d8;
-  if (p_Stack_d8 != (_Ref_count_base *)0x0) {
-    std::_Ref_count_base::_Decref(p_Stack_d8);
-  }
-  *(undefined4 *)(pMVar9 + 0x78) = 0;
-LAB_1802b6b89:
-  bVar7 = false;
-  if (*(longlong *)(pMVar9 + 0x60) == 0) {
-    EnsureHardwareOverlayCleared(this_00,pMVar9);
-    bVar7 = *(longlong *)(pMVar9 + 0x60) == 0;
-  }
-  LeaveCriticalSection((LPCRITICAL_SECTION)&g_CursorManager);
-  return !bVar7;
-}
-

```


## FUN_1802e4e42

### Function Meta



|Key|dwmcore-10.0.26100.7623.dll|
| :---: | :---: |
|name|FUN_1802e4e42|
|fullname|FUN_1802e4e42|
|refcount|3|
|length|40|
|called|wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy><br>wil::details::in1diag3::Return_Hr|
|calling|CResampleLayer::RenderXBR|
|paramcount|0|
|address|1802e4e42|
|sig|undefined FUN_1802e4e42(void)|
|sym_type|Function|
|sym_source|DEFAULT|
|external|False|


```diff
--- FUN_1802e4e42
+++ FUN_1802e4e42
@@ -1,22 +0,0 @@
-
-/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
-/* PDB: Separated code (from the compiler): 1802e4e42 - 1802e4e69 for parent address: 180045908 */
-
-undefined4 FUN_1802e4e42(undefined8 param_1,uint param_2,undefined8 param_3,long param_4)
-
-{
-  undefined4 unaff_EBX;
-  longlong unaff_RBP;
-  
-  wil::details::in1diag3::Return_Hr
-            (*(void **)(unaff_RBP + 0x57),param_2,
-             "onecoreuap\\windows\\dwm\\dwmcore\\engine\\resamplelayer.cpp",param_4);
-  wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::
-  ~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>
-            ((com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy> *)(unaff_RBP + -0x61));
-  wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::
-  ~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>
-            ((com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy> *)(unaff_RBP + -0x69));
-  return unaff_EBX;
-}
-

```


## FUN_1802ef016

### Function Meta



|Key|dwmcore-10.0.26100.7623.dll|
| :---: | :---: |
|name|FUN_1802ef016|
|fullname|FUN_1802ef016|
|refcount|1|
|length|83|
|called||
|calling|CResourceFactory::Create|
|paramcount|0|
|address|1802ef016|
|sig|undefined FUN_1802ef016(void)|
|sym_type|Function|
|sym_source|DEFAULT|
|external|False|


```diff
--- FUN_1802ef016
+++ FUN_1802ef016
@@ -1,47 +0,0 @@
-
-/* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
-   guard_dispatch_icall */
-
-undefined4 FUN_1802ef016(void)
-
-{
-  longlong in_RAX;
-  CMILRefCountImpl *unaff_RBX;
-  void *unaff_RBP;
-  undefined4 unaff_ESI;
-  undefined8 unaff_RDI;
-  undefined8 *unaff_R14;
-  
-  *(int *)(in_RAX + 8) = (int)unaff_RBP;
-  *(void **)(in_RAX + 0x10) = unaff_RBP;
-  *(undefined8 *)(in_RAX + 0x18) = unaff_RDI;
-  *(void **)(in_RAX + 0x20) = unaff_RBP;
-  *(void **)(in_RAX + 0x30) = unaff_RBP;
-  *(undefined4 *)(unaff_RBX + 0x28) = 0;
-  unaff_RBX[0x48] = (CMILRefCountImpl)0x1;
-  unaff_RBX[0x54] = (CMILRefCountImpl)0x1;
-  *(undefined4 *)(unaff_RBX + 0x58) = 0x40000000;
-  unaff_RBX[100] = SUB81(unaff_RBP,0);
-  *(void **)(unaff_RBX + 0x80) = unaff_RBP;
-  *(void **)(unaff_RBX + 0x88) = unaff_RBP;
-  *(void **)(unaff_RBX + 0x90) = unaff_RBP;
-  *(undefined ***)unaff_RBX = &CCaptureController::_vftable_;
-  *(void **)(unaff_RBX + 0xa0) = unaff_RBP;
-  *(void **)(unaff_RBX + 0x98) = unaff_RBP;
-  *(void **)(unaff_RBX + 0xa8) = unaff_RBP;
-  if (unaff_RBX == (CMILRefCountImpl *)0x0) {
-    unaff_ESI = 0x8007000e;
-    MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,-0x7ff8fff2,0x28f,unaff_RBP);
-  }
-  else {
-    if (*(code **)(*(longlong *)unaff_RBX + 8) == CMILRefCountImpl::AddReference) {
-      CMILRefCountImpl::AddReference(unaff_RBX);
-    }
-    else {
-      (**(code **)(*(longlong *)unaff_RBX + 8))();
-    }
-    *unaff_R14 = unaff_RBX;
-  }
-  return unaff_ESI;
-}
-

```


## FUN_1802ef0c0

### Function Meta



|Key|dwmcore-10.0.26100.7623.dll|
| :---: | :---: |
|name|FUN_1802ef0c0|
|fullname|FUN_1802ef0c0|
|refcount|1|
|length|32|
|called|CFilterEffect::CFilterEffect|
|calling|CResourceFactory::Create|
|paramcount|0|
|address|1802ef0c0|
|sig|undefined FUN_1802ef0c0(void)|
|sym_type|Function|
|sym_source|DEFAULT|
|external|False|


```diff
--- FUN_1802ef0c0
+++ FUN_1802ef0c0
@@ -1,32 +0,0 @@
-
-/* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
-   guard_dispatch_icall */
-
-undefined4 FUN_1802ef0c0(void)
-
-{
-  CMILRefCountImpl *unaff_RBX;
-  void *unaff_RBP;
-  undefined4 unaff_ESI;
-  CComposition *unaff_RDI;
-  undefined8 *unaff_R14;
-  
-  CFilterEffect::CFilterEffect((CFilterEffect *)unaff_RBX,unaff_RDI);
-  *(undefined ***)unaff_RBX = &CHueRotationEffect::_vftable_;
-  *(int *)(unaff_RBX + 0xb0) = (int)unaff_RBP;
-  if (unaff_RBX == (CMILRefCountImpl *)0x0) {
-    unaff_ESI = 0x8007000e;
-    MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,-0x7ff8fff2,0x28f,unaff_RBP);
-  }
-  else {
-    if (*(code **)(*(longlong *)unaff_RBX + 8) == CMILRefCountImpl::AddReference) {
-      CMILRefCountImpl::AddReference(unaff_RBX);
-    }
-    else {
-      (**(code **)(*(longlong *)unaff_RBX + 8))();
-    }
-    *unaff_R14 = unaff_RBX;
-  }
-  return unaff_ESI;
-}
-

```


## FUN_1802f6efe

### Function Meta



|Key|dwmcore-10.0.26100.7623.dll|
| :---: | :---: |
|name|FUN_1802f6efe|
|fullname|FUN_1802f6efe|
|refcount|3|
|length|44|
|called|CDrawingContext::FillShapeWithSolidColor|
|calling|CWindowNode::RenderBlackContent|
|paramcount|0|
|address|1802f6efe|
|sig|undefined FUN_1802f6efe(void)|
|sym_type|Function|
|sym_source|DEFAULT|
|external|False|


```diff
--- FUN_1802f6efe
+++ FUN_1802f6efe
@@ -1,21 +0,0 @@
-
-/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
-/* PDB: Separated code (from the compiler): 1802f6efe - 1802f6f29 for parent address: 180209734 */
-
-long FUN_1802f6efe(undefined8 param_1,CShape *param_2)
-
-{
-  long lVar1;
-  longlong unaff_RBP;
-  CDrawingContext *unaff_RDI;
-  
-  lVar1 = CDrawingContext::FillShapeWithSolidColor
-                    (unaff_RDI,param_2,(_D3DCOLORVALUE *)&__xmm_3f800000000000000000000000000000);
-  if (lVar1 < 0) {
-    MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar1,0x57d,(void *)0x0);
-  }
-  CRectanglesShape::~CRectanglesShape((CRectanglesShape *)(unaff_RBP + 7));
-  CShapePtr::Release((CShapePtr *)(unaff_RBP + -9));
-  return lVar1;
-}
-

```


# Added

## CSurfaceDrawListBrush::CSurfaceDrawListBrush

### Function Meta



|Key|dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|name|CSurfaceDrawListBrush|
|fullname|CSurfaceDrawListBrush::CSurfaceDrawListBrush|
|refcount|12|
|length|188|
|called|CDrawListBitmap::CDrawListBitmap|
|calling|<details><summary>Expand for full list:<br>CBitmapRenderStrategy::GetBrushParameters<br>CBitmapResourceRenderStrategy::GetBrushParametersWorker<br>CCpuClipAntialiasSinkContext::ProcessRenderCommands_OffscreenRenderPass<br>CDrawingContext::FillRectanglesWithDrawListBitmap<br>CDrawingContext::FillShapeWithBitmap<br>CDrawingContext::FillShapeWithBitmapRealization<br>CNineGridDrawListBrush::EnumerateBrushes<br>CPrimitiveGroupDrawListBrush::EnumerateBrushes<br>CRenderingTechnique::CreateSurfaceDrawListBrushForIntermediate<br>CSurfaceDrawListBrush::CreateWithContentRect<br>CSurfaceDrawListBrush::CreateWithTextureTransform</summary></details>|
|paramcount|5|
|address|1800ba8b0|
|sig|undefined __thiscall CSurfaceDrawListBrush(CSurfaceDrawListBrush * this, CDrawListBitmap * param_1, SamplerMode param_2, Matrix3x3 * param_3, bool param_4)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CSurfaceDrawListBrush::CSurfaceDrawListBrush
+++ CSurfaceDrawListBrush::CSurfaceDrawListBrush
@@ -0,0 +1,35 @@
+
+/* protected: __cdecl CSurfaceDrawListBrush::CSurfaceDrawListBrush(class CDrawListBitmap const &
+   __ptr64,struct SamplerMode,class Matrix3x3 const & __ptr64,bool) __ptr64 */
+
+CSurfaceDrawListBrush * __thiscall
+CSurfaceDrawListBrush::CSurfaceDrawListBrush
+          (CSurfaceDrawListBrush *this,CDrawListBitmap *param_1,undefined2 *param_3,
+          undefined4 *param_4,CSurfaceDrawListBrush param_5)
+
+{
+  *(undefined8 *)(this + 8) = 0x3f800000;
+  *(undefined4 *)(this + 0x10) = 0;
+  *(undefined8 *)(this + 0x14) = 0x3f800000;
+  *(undefined4 *)(this + 0x1c) = 0;
+  this[0x34] = (CSurfaceDrawListBrush)0x0;
+  *(undefined ***)this = &_vftable_;
+  CDrawListBitmap::CDrawListBitmap((CDrawListBitmap *)(this + 0x38),param_1);
+  *(undefined2 *)(this + 0x50) = *param_3;
+  this[0x52] = *(CSurfaceDrawListBrush *)(param_3 + 1);
+  *(undefined4 *)(this + 0x54) = *param_4;
+  *(undefined4 *)(this + 0x58) = param_4[1];
+  *(undefined4 *)(this + 0x5c) = param_4[2];
+  *(undefined4 *)(this + 0x60) = param_4[3];
+  *(undefined4 *)(this + 100) = param_4[4];
+  *(undefined4 *)(this + 0x68) = param_4[5];
+  *(undefined4 *)(this + 0x6c) = param_4[6];
+  *(undefined4 *)(this + 0x70) = param_4[7];
+  *(undefined4 *)(this + 0x74) = param_4[8];
+  this[0x90] = param_5;
+  *(undefined8 *)(this + 0x78) = 0xff7fffffff7fffff;
+  *(undefined8 *)(this + 0x80) = 0x7f7fffff7f7fffff;
+  *(undefined4 *)(this + 0x91) = 0;
+  return this;
+}
+

```


## CTreeData::GetBackdropVisualImage

### Function Meta



|Key|dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|name|GetBackdropVisualImage|
|fullname|CTreeData::GetBackdropVisualImage|
|refcount|2|
|length|152|
|called||
|calling|CVisual::CreateOrUpdateBVI|
|paramcount|2|
|address|1801abb60|
|sig|CBackdropVisualImage * __thiscall GetBackdropVisualImage(CTreeData * this, CVisualTreePath * param_1)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CTreeData::GetBackdropVisualImage
+++ CTreeData::GetBackdropVisualImage
@@ -0,0 +1,40 @@
+
+/* protected: class CBackdropVisualImage * __ptr64 __cdecl CTreeData::GetBackdropVisualImage(class
+   CVisualTreePath const & __ptr64)const __ptr64 */
+
+CBackdropVisualImage * __thiscall
+CTreeData::GetBackdropVisualImage(CTreeData *this,CVisualTreePath *param_1)
+
+{
+  longlong *plVar1;
+  longlong *plVar2;
+  longlong *plVar3;
+  longlong lVar4;
+  longlong *plVar5;
+  
+  plVar5 = *(longlong **)(this + 0x90);
+  do {
+    if (plVar5 == *(longlong **)(this + 0x98)) {
+      return (CBackdropVisualImage *)0x0;
+    }
+    plVar3 = *(longlong **)param_1;
+    plVar2 = *(longlong **)(*plVar5 + 0x820);
+    lVar4 = *(longlong *)(*plVar5 + 0x818);
+    if ((longlong)plVar2 - lVar4 == *(longlong *)(param_1 + 8) - (longlong)plVar3) {
+      lVar4 = lVar4 - (longlong)plVar3;
+      while( true ) {
+        plVar1 = (longlong *)((longlong)plVar3 + lVar4);
+        if (plVar1 == plVar2) {
+          *(undefined8 *)(*plVar5 + 0x8b8) =
+               *(undefined8 *)(*(longlong *)(*(longlong *)(this + 0xf8) + 0x18) + 0x378);
+          return (CBackdropVisualImage *)*plVar5;
+        }
+        if ((*plVar1 != *plVar3) || (*(longlong *)(lVar4 + 8 + (longlong)plVar3) != plVar3[1]))
+        break;
+        plVar3 = plVar3 + 2;
+      }
+    }
+    plVar5 = plVar5 + 1;
+  } while( true );
+}
+

```


## CSurfaceDrawListBrush::ComputeLocalToTextureTransform

### Function Meta



|Key|dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|name|ComputeLocalToTextureTransform|
|fullname|CSurfaceDrawListBrush::ComputeLocalToTextureTransform|
|refcount|4|
|length|1184|
|called||
|calling|CBrushDrawListGenerator::GenerateDrawListPrimitive|
|paramcount|2|
|address|1801ae870|
|sig|void __thiscall ComputeLocalToTextureTransform(CSurfaceDrawListBrush * this, Matrix3x3 * param_1)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CSurfaceDrawListBrush::ComputeLocalToTextureTransform
+++ CSurfaceDrawListBrush::ComputeLocalToTextureTransform
@@ -0,0 +1,109 @@
+
+/* public: void __cdecl CSurfaceDrawListBrush::ComputeLocalToTextureTransform(class Matrix3x3 *
+   __ptr64)const __ptr64 */
+
+void __thiscall
+CSurfaceDrawListBrush::ComputeLocalToTextureTransform
+          (CSurfaceDrawListBrush *this,Matrix3x3 *param_1)
+
+{
+  float fVar1;
+  float fVar2;
+  float fVar3;
+  float fVar4;
+  float fVar5;
+  float fVar6;
+  float fVar7;
+  float fVar8;
+  float fVar9;
+  float fVar10;
+  float fVar11;
+  float fVar12;
+  float fVar13;
+  float fVar14;
+  float fVar15;
+  float fVar16;
+  float fVar17;
+  float fVar18;
+  float fVar19;
+  float fVar20;
+  float fVar21;
+  float local_res8;
+  
+  fVar21 = *(float *)(this + 8);
+  *(float *)param_1 = fVar21;
+  fVar6 = *(float *)(this + 0xc);
+  *(float *)(param_1 + 4) = fVar6;
+  *(undefined4 *)(param_1 + 8) = 0;
+  fVar7 = *(float *)(this + 0x10);
+  fVar16 = 0.0;
+  *(float *)(param_1 + 0xc) = fVar7;
+  fVar17 = *(float *)(this + 0x14);
+  *(float *)(param_1 + 0x10) = fVar17;
+  *(undefined4 *)(param_1 + 0x14) = 0;
+  fVar20 = *(float *)(this + 0x18);
+  *(float *)(param_1 + 0x18) = fVar20;
+  fVar11 = *(float *)(this + 0x1c);
+  fVar8 = (((fVar11 * fVar7 * 0.0 + fVar17 * fVar21 + fVar20 * fVar6 * 0.0) - fVar21 * fVar20 * 0.0)
+          - fVar17 * fVar20 * 0.0) - fVar6 * fVar7;
+  if (ABS(fVar8) < 1.1920929e-06) {
+    fVar11 = INFINITY;
+    fVar20 = 0.0;
+    fVar17 = 1.0;
+    local_res8 = 0.0;
+    fVar8 = 0.0;
+    fVar6 = 0.0;
+    fVar7 = 0.0;
+    fVar21 = fVar11;
+  }
+  else {
+    fVar8 = 1.0 / fVar8;
+    fVar9 = (fVar11 * fVar7 - fVar17 * fVar20) * fVar8;
+    fVar19 = (fVar17 * fVar21 - fVar6 * fVar7) * fVar8;
+    fVar12 = (fVar20 * 0.0 - fVar7) * fVar8;
+    *(float *)(param_1 + 0x18) = fVar9;
+    *(float *)(param_1 + 0xc) = fVar12;
+    *(float *)(param_1 + 0x20) = fVar19;
+    fVar13 = (fVar7 * 0.0 - fVar21 * 0.0) * fVar8;
+    fVar18 = (fVar17 - fVar11 * 0.0) * fVar8;
+    *(float *)(param_1 + 0x14) = fVar13;
+    fVar14 = (fVar11 * 0.0 - fVar6) * fVar8;
+    *(float *)param_1 = fVar18;
+    fVar10 = (fVar21 - fVar20 * 0.0) * fVar8;
+    *(float *)(param_1 + 4) = fVar14;
+    *(float *)(param_1 + 0x10) = fVar10;
+    fVar15 = (fVar6 * 0.0 - fVar17 * 0.0) * fVar8;
+    *(float *)(param_1 + 8) = fVar15;
+    fVar8 = (fVar20 * fVar6 - fVar11 * fVar21) * fVar8;
+    *(float *)(param_1 + 0x1c) = fVar8;
+    fVar21 = *(float *)(this + 0x54);
+    fVar6 = *(float *)(this + 0x5c);
+    fVar7 = *(float *)(this + 0x74);
+    fVar1 = *(float *)(this + 0x70);
+    fVar11 = *(float *)(this + 0x60);
+    fVar2 = *(float *)(this + 0x6c);
+    fVar3 = *(float *)(this + 0x58);
+    fVar4 = *(float *)(this + 0x68);
+    fVar5 = *(float *)(this + 100);
+    fVar17 = fVar4 * fVar8 + fVar6 * fVar9 + fVar7 * fVar19;
+    fVar16 = fVar5 * fVar8 + fVar3 * fVar9 + fVar1 * fVar19;
+    local_res8 = fVar11 * fVar8 + fVar21 * fVar9 + fVar2 * fVar19;
+    fVar20 = fVar4 * fVar10 + fVar6 * fVar12 + fVar7 * fVar13;
+    fVar6 = fVar4 * fVar14 + fVar6 * fVar18 + fVar7 * fVar15;
+    fVar8 = fVar11 * fVar10 + fVar21 * fVar12 + fVar2 * fVar13;
+    fVar11 = fVar21 * fVar18 + fVar11 * fVar14 + fVar2 * fVar15;
+    fVar7 = fVar3 * fVar18 + fVar5 * fVar14 + fVar1 * fVar15;
+    fVar21 = fVar5 * fVar10 + fVar3 * fVar12 + fVar1 * fVar13;
+  }
+  *(float *)param_1 = fVar11;
+  *(float *)(param_1 + 4) = fVar7;
+  *(float *)(param_1 + 8) = fVar6;
+  *(float *)(param_1 + 0xc) = fVar8;
+  *(float *)(param_1 + 0x10) = fVar21;
+  *(float *)(param_1 + 0x14) = fVar20;
+  *(float *)(param_1 + 0x18) = local_res8;
+  *(float *)(param_1 + 0x1c) = fVar16;
+  *(float *)(param_1 + 0x20) = fVar17;
+  return;
+}
+

```


## CBrushDrawListGenerator::ProcessBrushClampEdges_Rectangle

### Function Meta



|Key|dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|name|ProcessBrushClampEdges_Rectangle|
|fullname|CBrushDrawListGenerator::ProcessBrushClampEdges_Rectangle|
|refcount|7|
|length|1030|
|called|__security_check_cookie|
|calling|CBrushDrawListGenerator::GenerateDrawListPrimitive|
|paramcount|3|
|address|1801b3290|
|sig|void __cdecl ProcessBrushClampEdges_Rectangle(span<CDrawListBrush_const*___ptr64,-1> param_1, D2D_RECT_F * param_2, D2D1_EDGE_FLAGS * param_3)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CBrushDrawListGenerator::ProcessBrushClampEdges_Rectangle
+++ CBrushDrawListGenerator::ProcessBrushClampEdges_Rectangle
@@ -0,0 +1,156 @@
+
+/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
+/* private: static void __cdecl CBrushDrawListGenerator::ProcessBrushClampEdges_Rectangle(class
+   gsl::span<class CDrawListBrush const * __ptr64,-1>,struct D2D_RECT_F const & __ptr64,enum
+   D2D1_EDGE_FLAGS * __ptr64) */
+
+void __cdecl
+CBrushDrawListGenerator::ProcessBrushClampEdges_Rectangle
+          (longlong *param_1,float *param_2,uint *param_3)
+
+{
+  uint uVar1;
+  uint uVar2;
+  longlong *plVar3;
+  longlong lVar4;
+  uint uVar5;
+  uint uVar6;
+  longlong *plVar7;
+  longlong lVar8;
+  uint *puVar9;
+  uint *puVar10;
+  uint uVar11;
+  float fVar12;
+  float fVar13;
+  float fVar14;
+  float fVar15;
+  float fVar16;
+  uint local_f8 [4];
+  uint local_e8 [8];
+  ulonglong local_c8;
+  
+  local_c8 = __security_cookie ^ (ulonglong)local_f8;
+  plVar7 = (longlong *)param_1[1];
+  uVar11 = 0;
+  plVar3 = plVar7 + *param_1;
+  if (plVar7 == plVar3) {
+    *param_3 = 0;
+  }
+  else {
+    uVar1 = 1;
+    uVar2 = 2;
+    do {
+      lVar4 = *plVar7;
+      if (((lVar4 != 0) && (*(char *)(lVar4 + 0x34) != '\0')) &&
+         (((ABS(*(float *)(lVar4 + 0xc)) < 8.138021e-05 &&
+           (ABS(*(float *)(lVar4 + 0x10)) < 8.138021e-05)) ||
+          ((ABS(*(float *)(lVar4 + 8)) < 8.138021e-05 &&
+           (ABS(*(float *)(lVar4 + 0x14)) < 8.138021e-05)))))) {
+        uVar6 = *(uint *)(lVar4 + 0x30);
+        uVar5 = uVar6;
+        if ((uVar6 != 0x3030303) && (uVar6 != 0)) {
+          local_e8[0] = 0x1000000;
+          local_e8[1] = 0x2000000;
+          local_e8[2] = 1;
+          local_e8[3] = 2;
+          local_e8[4] = 0x100;
+          local_e8[5] = 0x200;
+          local_e8[6] = 0x10000;
+          local_e8[7] = 0x20000;
+          uVar5 = 3;
+          if ((8.138021e-05 <= ABS(*(float *)(lVar4 + 0xc))) ||
+             (8.138021e-05 <= ABS(*(float *)(lVar4 + 0x10)))) {
+            local_f8[0] = uVar5;
+            if (0.0 < *(float *)(lVar4 + 0x10)) {
+              local_f8[0] = uVar1;
+            }
+            local_f8[2] = uVar1;
+            if (0.0 < *(float *)(lVar4 + 0x10)) {
+              local_f8[2] = uVar5;
+            }
+            local_f8[1] = uVar2;
+            if (0.0 < *(float *)(lVar4 + 0xc)) {
+              local_f8[1] = 0;
+            }
+            local_f8[3] = 0;
+            if (0.0 < *(float *)(lVar4 + 0xc)) {
+              local_f8[3] = uVar2;
+            }
+          }
+          else {
+            local_f8[0] = uVar2;
+            if (0.0 < *(float *)(lVar4 + 8)) {
+              local_f8[0] = 0;
+            }
+            local_f8[2] = 0;
+            if (0.0 < *(float *)(lVar4 + 8)) {
+              local_f8[2] = uVar2;
+            }
+            local_f8[1] = uVar5;
+            if (0.0 < *(float *)(lVar4 + 0x14)) {
+              local_f8[1] = uVar1;
+            }
+            local_f8[3] = uVar1;
+            if (0.0 < *(float *)(lVar4 + 0x14)) {
+              local_f8[3] = uVar5;
+            }
+          }
+          uVar5 = 0;
+          puVar9 = local_e8;
+          lVar8 = 4;
+          puVar10 = local_f8;
+          do {
+            if ((local_e8[(ulonglong)*puVar10 * 2] & uVar6) != 0) {
+              uVar5 = uVar5 | *puVar9;
+            }
+            if ((local_e8[(ulonglong)*puVar10 * 2 + 1] & uVar6) != 0) {
+              uVar5 = uVar5 | puVar9[1];
+            }
+            puVar10 = puVar10 + 1;
+            puVar9 = puVar9 + 2;
+            lVar8 = lVar8 + -1;
+          } while (lVar8 != 0);
+        }
+        if (uVar5 != uVar11) {
+          fVar13 = *(float *)(lVar4 + 0x10) * *(float *)(lVar4 + 0x24) +
+                   *(float *)(lVar4 + 8) * *(float *)(lVar4 + 0x20) + *(float *)(lVar4 + 0x18);
+          fVar16 = *(float *)(lVar4 + 0x14) * *(float *)(lVar4 + 0x24) +
+                   *(float *)(lVar4 + 0xc) * *(float *)(lVar4 + 0x20) + *(float *)(lVar4 + 0x1c);
+          fVar15 = *(float *)(lVar4 + 0x10) * *(float *)(lVar4 + 0x2c) +
+                   *(float *)(lVar4 + 8) * *(float *)(lVar4 + 0x28) + *(float *)(lVar4 + 0x18);
+          fVar14 = fVar13;
+          if (fVar15 <= fVar13) {
+            fVar14 = fVar15;
+          }
+          fVar12 = *(float *)(lVar4 + 0x14) * *(float *)(lVar4 + 0x2c) +
+                   *(float *)(lVar4 + 0xc) * *(float *)(lVar4 + 0x28) + *(float *)(lVar4 + 0x1c);
+          if (fVar13 <= fVar15) {
+            fVar13 = fVar15;
+          }
+          fVar15 = fVar16;
+          if (fVar12 <= fVar16) {
+            fVar15 = fVar12;
+          }
+          if (fVar16 <= fVar12) {
+            fVar16 = fVar12;
+          }
+          uVar6 = -(uint)(ABS(*param_2 - fVar14) <= 1.1920929e-06) & 0x3000000;
+          if (ABS(param_2[2] - fVar13) <= 1.1920929e-06) {
+            uVar6 = uVar6 | 0x300;
+          }
+          if (ABS(param_2[1] - fVar15) <= 1.1920929e-06) {
+            uVar6 = uVar6 | 3;
+          }
+          if (ABS(param_2[3] - fVar16) <= 1.1920929e-06) {
+            uVar6 = uVar6 | 0x30000;
+          }
+          if ((uVar6 != 0) && (uVar11 = uVar11 | uVar5 & uVar6, uVar11 == 0x3030303)) break;
+        }
+      }
+      plVar7 = plVar7 + 1;
+    } while (plVar7 != plVar3);
+    *param_3 = uVar11;
+  }
+  return;
+}
+

```


## CDrawListBitmap::CDrawListBitmap

### Function Meta



|Key|dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|name|CDrawListBitmap|
|fullname|CDrawListBitmap::CDrawListBitmap|
|refcount|2|
|length|103|
|called|CMILRefCountImpl::AddReference<br>_guard_dispatch_icall$thunk$10345483385596137414|
|calling|CSurfaceDrawListBrush::CSurfaceDrawListBrush|
|paramcount|2|
|address|1801d121c|
|sig|undefined __thiscall CDrawListBitmap(CDrawListBitmap * this, CDrawListBitmap * param_1)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CDrawListBitmap::CDrawListBitmap
+++ CDrawListBitmap::CDrawListBitmap
@@ -0,0 +1,32 @@
+
+/* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
+   guard_dispatch_icall */
+/* public: __cdecl CDrawListBitmap::CDrawListBitmap(class CDrawListBitmap const & __ptr64) __ptr64
+    */
+
+CDrawListBitmap * __thiscall
+CDrawListBitmap::CDrawListBitmap(CDrawListBitmap *this,CDrawListBitmap *param_1)
+
+{
+  CMILRefCountImpl *this_00;
+  longlong *plVar1;
+  
+  this_00 = *(CMILRefCountImpl **)param_1;
+  *(CMILRefCountImpl **)this = this_00;
+  if (this_00 != (CMILRefCountImpl *)0x0) {
+    if (*(code **)(*(longlong *)this_00 + 8) == CMILRefCountImpl::AddReference) {
+      CMILRefCountImpl::AddReference(this_00);
+    }
+    else {
+      (**(code **)(*(longlong *)this_00 + 8))();
+    }
+  }
+  plVar1 = *(longlong **)(param_1 + 8);
+  *(longlong **)(this + 8) = plVar1;
+  if (plVar1 != (longlong *)0x0) {
+    (**(code **)(*plVar1 + 8))();
+  }
+  this[0x10] = param_1[0x10];
+  return this;
+}
+

```


## HrAlloc

### Function Meta



|Key|dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|name|HrAlloc|
|fullname|HrAlloc|
|refcount|2|
|length|105|
|called|API-MS-WIN-CORE-HEAP-L1-1-0.DLL::GetProcessHeap<br>API-MS-WIN-CORE-HEAP-L1-1-0.DLL::HeapAlloc|
|calling|CCursorState::PaddedBitmap::Reset|
|paramcount|2|
|address|1801d6388|
|sig|long __cdecl HrAlloc(__uint64 param_1, void * * param_2)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- HrAlloc
+++ HrAlloc
@@ -0,0 +1,25 @@
+
+/* long __cdecl HrAlloc(unsigned __int64,void * __ptr64 * __ptr64) */
+
+long __cdecl HrAlloc(__uint64 param_1,void **param_2)
+
+{
+  HANDLE hHeap;
+  LPVOID pvVar1;
+  long lVar2;
+  
+  lVar2 = 0;
+  if ((param_2 == (void **)0x0) || (param_1 == 0)) {
+    lVar2 = -0x7ff8ffa9;
+  }
+  else {
+    hHeap = GetProcessHeap();
+    pvVar1 = HeapAlloc(hHeap,0,param_1);
+    *param_2 = pvVar1;
+    if (pvVar1 == (LPVOID)0x0) {
+      lVar2 = -0x7ff8fff2;
+    }
+  }
+  return lVar2;
+}
+

```


## wil::com_ptr_t<CBackdropVisualImage,wil::err_returncode_policy>::com_ptr_t<CBackdropVisualImage,wil::err_returncode_policy>

### Function Meta



|Key|dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|name|com_ptr_t<CBackdropVisualImage,wil::err_returncode_policy>|
|fullname|wil::com_ptr_t<CBackdropVisualImage,wil::err_returncode_policy>::com_ptr_t<CBackdropVisualImage,wil::err_returncode_policy>|
|refcount|2|
|length|63|
|called|wil::details::in1diag3::Log_Hr|
|calling|CVisual::CreateOrUpdateBVI|
|paramcount|2|
|address|1801ea860|
|sig|undefined __thiscall com_ptr_t<CBackdropVisualImage,wil::err_returncode_policy>(com_ptr_t<CBackdropVisualImage,wil::err_returncode_policy> * this, CBackdropVisualImage * param_1)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- wil::com_ptr_t<CBackdropVisualImage,wil::err_returncode_policy>::com_ptr_t<CBackdropVisualImage,wil::err_returncode_policy>
+++ wil::com_ptr_t<CBackdropVisualImage,wil::err_returncode_policy>::com_ptr_t<CBackdropVisualImage,wil::err_returncode_policy>
@@ -0,0 +1,32 @@
+
+/* public: __cdecl wil::com_ptr_t<class CBackdropVisualImage,struct
+   wil::err_returncode_policy>::com_ptr_t<class CBackdropVisualImage,struct
+   wil::err_returncode_policy>(class CBackdropVisualImage * __ptr64) __ptr64 */
+
+com_ptr_t<CBackdropVisualImage,wil::err_returncode_policy> * __thiscall
+wil::com_ptr_t<CBackdropVisualImage,wil::err_returncode_policy>::
+com_ptr_t<CBackdropVisualImage,wil::err_returncode_policy>
+          (com_ptr_t<CBackdropVisualImage,wil::err_returncode_policy> *this,
+          CBackdropVisualImage *param_1)
+
+{
+  CBackdropVisualImage *pCVar1;
+  int iVar2;
+  void *unaff_retaddr;
+  
+  *(CBackdropVisualImage **)this = param_1;
+  if (param_1 != (CBackdropVisualImage *)0x0) {
+    LOCK();
+    pCVar1 = param_1 + 8;
+    iVar2 = *(int *)pCVar1;
+    *(int *)pCVar1 = *(int *)pCVar1 + 1;
+    UNLOCK();
+    if (*(int *)pCVar1 == 0 || SCARRY4(iVar2,1) != *(int *)pCVar1 < 0) {
+      details::in1diag3::Log_Hr
+                (unaff_retaddr,0x18,"onecoreuap\\windows\\dwm\\common\\shared\\refcountbase.cpp",
+                 -0x7ff8fd64);
+    }
+  }
+  return this;
+}
+

```


## CBrush::CBrush

### Function Meta



|Key|dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|name|CBrush|
|fullname|CBrush::CBrush|
|refcount|1|
|length|54|
|called||
|calling|CResourceFactory::Create|
|paramcount|2|
|address|1801f2230|
|sig|undefined __thiscall CBrush(CBrush * this, CComposition * param_1)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CBrush::CBrush
+++ CBrush::CBrush
@@ -0,0 +1,19 @@
+
+/* protected: __cdecl CBrush::CBrush(class CComposition * __ptr64) __ptr64 */
+
+CBrush * __thiscall CBrush::CBrush(CBrush *this,CComposition *param_1)
+
+{
+  *(undefined ***)this = &IUnknownWeakRefSource::_vftable_;
+  *(undefined4 *)(this + 8) = 0;
+  *(undefined8 *)(this + 0x10) = 0;
+  *(CComposition **)(this + 0x18) = param_1;
+  *(undefined8 *)(this + 0x20) = 0;
+  *(undefined8 *)(this + 0x30) = 0;
+  *(undefined4 *)(this + 0x28) = 0;
+  *(undefined8 *)(this + 0x50) = 0;
+  *(undefined8 *)(this + 0x58) = 0;
+  this[0x60] = (CBrush)0x0;
+  return this;
+}
+

```


## McTemplateU0ppffffubr6_EventWriteTransfer

### Function Meta



|Key|dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|name|McTemplateU0ppffffubr6_EventWriteTransfer|
|fullname|McTemplateU0ppffffubr6_EventWriteTransfer|
|refcount|2|
|length|222|
|called|McGenEventWrite_EventWriteTransfer<br>__security_check_cookie|
|calling|CDrawingContext::BeginFrame|
|paramcount|0|
|address|1801f8df4|
|sig|undefined McTemplateU0ppffffubr6_EventWriteTransfer(void)|
|sym_type|Function|
|sym_source|IMPORTED|
|external|False|


```diff
--- McTemplateU0ppffffubr6_EventWriteTransfer
+++ McTemplateU0ppffffubr6_EventWriteTransfer
@@ -0,0 +1,60 @@
+
+/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
+
+void McTemplateU0ppffffubr6_EventWriteTransfer
+               (undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)
+
+{
+  undefined8 local_res18;
+  undefined8 local_res20;
+  byte in_stack_00000048;
+  undefined8 in_stack_00000050;
+  undefined1 auStack_d8 [32];
+  undefined1 *local_b8;
+  undefined1 local_a8 [16];
+  undefined8 *local_98;
+  undefined8 local_90;
+  undefined8 *local_88;
+  undefined8 local_80;
+  undefined1 *local_78;
+  undefined8 local_70;
+  undefined1 *local_68;
+  undefined8 local_60;
+  undefined1 *local_58;
+  undefined8 local_50;
+  undefined1 *local_48;
+  undefined8 local_40;
+  undefined1 *local_38;
+  undefined8 local_30;
+  undefined8 local_28;
+  uint local_20;
+  undefined4 local_1c;
+  ulonglong local_18;
+  
+  local_18 = __security_cookie ^ (ulonglong)auStack_d8;
+  local_90 = 8;
+  local_98 = &local_res18;
+  local_1c = 0;
+  local_88 = &local_res20;
+  local_80 = 8;
+  local_78 = &stack0x00000028;
+  local_70 = 4;
+  local_68 = &stack0x00000030;
+  local_60 = 4;
+  local_58 = &stack0x00000038;
+  local_48 = &stack0x00000040;
+  local_38 = &stack0x00000048;
+  local_28 = in_stack_00000050;
+  local_20 = (uint)in_stack_00000048;
+  local_b8 = local_a8;
+  local_50 = 4;
+  local_40 = 4;
+  local_30 = 1;
+  local_res18 = param_3;
+  local_res20 = param_4;
+  McGenEventWrite_EventWriteTransfer
+            (&Microsoft_Windows_Dwm_Core_Provider_Context,
+             &EVTDESC_ETWGUID_DRAWING_CONTEXT_FRAME_Start,param_3,9);
+  return;
+}
+

```


## CLinearGradientLegacyMilBrush::CLinearGradientLegacyMilBrush

### Function Meta



|Key|dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|name|CLinearGradientLegacyMilBrush|
|fullname|CLinearGradientLegacyMilBrush::CLinearGradientLegacyMilBrush|
|refcount|1|
|length|99|
|called||
|calling|CResourceFactory::Create|
|paramcount|2|
|address|18024891c|
|sig|undefined __thiscall CLinearGradientLegacyMilBrush(CLinearGradientLegacyMilBrush * this, CComposition * param_1)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CLinearGradientLegacyMilBrush::CLinearGradientLegacyMilBrush
+++ CLinearGradientLegacyMilBrush::CLinearGradientLegacyMilBrush
@@ -0,0 +1,28 @@
+
+/* protected: __cdecl CLinearGradientLegacyMilBrush::CLinearGradientLegacyMilBrush(class
+   CComposition * __ptr64) __ptr64 */
+
+CLinearGradientLegacyMilBrush * __thiscall
+CLinearGradientLegacyMilBrush::CLinearGradientLegacyMilBrush
+          (CLinearGradientLegacyMilBrush *this,CComposition *param_1)
+
+{
+  *(undefined4 *)(this + 8) = 0;
+  *(undefined8 *)(this + 0x10) = 0;
+  *(CComposition **)(this + 0x18) = param_1;
+  *(undefined8 *)(this + 0x20) = 0;
+  *(undefined8 *)(this + 0x30) = 0;
+  *(undefined4 *)(this + 0x28) = 0;
+  *(uint *)(this + 0x28) = *(uint *)(this + 0x28) | 1;
+  *(undefined8 *)(this + 0x78) = 0;
+  *(undefined8 *)(this + 0x80) = 0;
+  *(undefined8 *)(this + 0x88) = 0;
+  *(undefined ***)this = &_vftable_;
+  *(undefined8 *)(this + 0xb8) = 0;
+  *(undefined8 *)(this + 0xc0) = 0;
+  *(undefined8 *)(this + 200) = 0;
+  *(undefined8 *)(this + 0xa0) = 0;
+  *(undefined8 *)(this + 0xa8) = 0;
+  return this;
+}
+

```


## CValueColorTransformLayer::`vector_deleting_destructor'

### Function Meta



|Key|dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|name|`vector_deleting_destructor'|
|fullname|CValueColorTransformLayer::`vector_deleting_destructor'|
|refcount|4|
|length|62|
|called|CExternalLayer::~CExternalLayer<br>operator_delete[]|
|calling|CDrawingContext::PushValueColorTransformLayer|
|paramcount|2|
|address|1802655b0|
|sig|void * __thiscall `vector_deleting_destructor'(CValueColorTransformLayer * this, uint param_1)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CValueColorTransformLayer::`vector_deleting_destructor'
+++ CValueColorTransformLayer::`vector_deleting_destructor'
@@ -0,0 +1,17 @@
+
+/* public: virtual void * __ptr64 __cdecl CValueColorTransformLayer::`vector deleting
+   destructor'(unsigned int) __ptr64 */
+
+void * __thiscall
+CValueColorTransformLayer::_vector_deleting_destructor_
+          (CValueColorTransformLayer *this,uint param_1)
+
+{
+  *(undefined ***)this = &_vftable_;
+  CExternalLayer::~CExternalLayer((CExternalLayer *)this);
+  if ((param_1 & 1) != 0) {
+    operator_delete__(this,0xe0);
+  }
+  return this;
+}
+

```


## CDrawingContext::PushValueColorTransformLayer

### Function Meta



|Key|dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|name|PushValueColorTransformLayer|
|fullname|CDrawingContext::PushValueColorTransformLayer|
|refcount|2|
|length|280|
|called|AlignRectFToPointAndSizeL<br>CDrawingContext::GetClipBoundsWorld<br>CDrawingContext::PushLayer<br>CValueColorTransformLayer::Create<br>CValueColorTransformLayer::`vector_deleting_destructor'<br>MilInstrumentationCheckHR_MaybeFailFast<br>__security_check_cookie|
|calling|CCompositionMagnifierBrush::GetLayeredBrushParameters|
|paramcount|3|
|address|180267028|
|sig|long __thiscall PushValueColorTransformLayer(CDrawingContext * this, TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> * param_1, MilColorTransform * param_2)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CDrawingContext::PushValueColorTransformLayer
+++ CDrawingContext::PushValueColorTransformLayer
@@ -0,0 +1,64 @@
+
+/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
+/* public: long __cdecl CDrawingContext::PushValueColorTransformLayer(class TMilRect_<float,struct
+   D2D_RECT_F,struct D3D_RECT_F,struct D2D_POINTANDSIZE_F,struct RectUniqueness::NotNeeded> const *
+   __ptr64,struct MilColorTransform const & __ptr64) __ptr64 */
+
+long __thiscall
+CDrawingContext::PushValueColorTransformLayer
+          (CDrawingContext *this,
+          TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
+          *param_1,MilColorTransform *param_2)
+
+{
+  long lVar1;
+  CValueColorTransformLayer *this_00;
+  undefined1 auStackY_78 [32];
+  uint uVar2;
+  CValueColorTransformLayer *local_48;
+  undefined8 local_40;
+  undefined8 uStack_38;
+  undefined8 local_30;
+  undefined8 uStack_28;
+  ulonglong local_20;
+  
+  local_20 = __security_cookie ^ (ulonglong)auStackY_78;
+  this_00 = (CValueColorTransformLayer *)0x0;
+  local_48 = (CValueColorTransformLayer *)0x0;
+  local_30 = 0;
+  uStack_28 = 0;
+  local_40 = 0;
+  uStack_38 = 0;
+  GetClipBoundsWorld(this,(TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
+                           *)&local_30,SUB81(param_2,0));
+  lVar1 = AlignRectFToPointAndSizeL
+                    ((TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
+                      *)&local_30,(D2D_POINTANDSIZE_L *)&local_40);
+  if (lVar1 < 0) {
+    uVar2 = 0xeb5;
+  }
+  else {
+    lVar1 = CValueColorTransformLayer::Create
+                      (*(IDeviceTarget **)(this + 0x20),(D2D_POINTANDSIZE_L *)&local_40,param_2,
+                       &local_48);
+    this_00 = local_48;
+    if (lVar1 < 0) {
+      MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar1,0xebb,(void *)0x0);
+      this_00 = local_48;
+      goto LAB_18026710f;
+    }
+    lVar1 = PushLayer(this,(CVisual *)0x0,(CLayer *)local_48,true,true);
+    if (-1 < lVar1) {
+      this_00 = (CValueColorTransformLayer *)0x0;
+      goto LAB_18026710f;
+    }
+    uVar2 = 0xec1;
+  }
+  MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar1,uVar2,(void *)0x0);
+LAB_18026710f:
+  if (this_00 != (CValueColorTransformLayer *)0x0) {
+    CValueColorTransformLayer::_vector_deleting_destructor_(this_00,1);
+  }
+  return lVar1;
+}
+

```


## std::shared_ptr<CCursorState::ShapeData>::~shared_ptr<CCursorState::ShapeData>

### Function Meta



|Key|dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|name|~shared_ptr<CCursorState::ShapeData>|
|fullname|std::shared_ptr<CCursorState::ShapeData>::~shared_ptr<CCursorState::ShapeData>|
|refcount|4|
|length|23|
|called|std::_Ref_count_base::_Decref|
|calling|CCursorState::ClearShape<br>CCursorState::~CCursorState|
|paramcount|1|
|address|180269d6c|
|sig|void __thiscall ~shared_ptr<CCursorState::ShapeData>(shared_ptr<CCursorState::ShapeData> * this)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- std::shared_ptr<CCursorState::ShapeData>::~shared_ptr<CCursorState::ShapeData>
+++ std::shared_ptr<CCursorState::ShapeData>::~shared_ptr<CCursorState::ShapeData>
@@ -0,0 +1,15 @@
+
+/* public: __cdecl std::shared_ptr<class CCursorState::ShapeData>::~shared_ptr<class
+   CCursorState::ShapeData>(void) __ptr64 */
+
+void __thiscall
+std::shared_ptr<CCursorState::ShapeData>::~shared_ptr<CCursorState::ShapeData>
+          (shared_ptr<CCursorState::ShapeData> *this)
+
+{
+  if (*(_Ref_count_base **)(this + 8) != (_Ref_count_base *)0x0) {
+    _Ref_count_base::_Decref(*(_Ref_count_base **)(this + 8));
+  }
+  return;
+}
+

```


## CCursorState::MonitorData::operator=

### Function Meta



|Key|dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|name|operator=|
|fullname|CCursorState::MonitorData::operator=|
|refcount|2|
|length|197|
|called|std::shared_ptr<CCursorState::ShapeData>::operator=|
|calling|std::vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_>::erase|
|paramcount|2|
|address|180269d8c|
|sig|MonitorData * __thiscall operator=(MonitorData * this, MonitorData * param_1)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CCursorState::MonitorData::operator=
+++ CCursorState::MonitorData::operator=
@@ -0,0 +1,44 @@
+
+/* public: class CCursorState::MonitorData & __ptr64 __cdecl
+   CCursorState::MonitorData::operator=(class CCursorState::MonitorData && __ptr64) __ptr64 */
+
+MonitorData * __thiscall
+CCursorState::MonitorData::operator=(MonitorData *this,MonitorData *param_1)
+
+{
+  undefined8 uVar1;
+  
+  *(undefined8 *)this = *(undefined8 *)param_1;
+  *(undefined4 *)(this + 8) = *(undefined4 *)(param_1 + 8);
+  uVar1 = *(undefined8 *)(param_1 + 0x14);
+  *(undefined8 *)(this + 0xc) = *(undefined8 *)(param_1 + 0xc);
+  *(undefined8 *)(this + 0x14) = uVar1;
+  uVar1 = *(undefined8 *)(param_1 + 0x24);
+  *(undefined8 *)(this + 0x1c) = *(undefined8 *)(param_1 + 0x1c);
+  *(undefined8 *)(this + 0x24) = uVar1;
+  uVar1 = *(undefined8 *)(param_1 + 0x34);
+  *(undefined8 *)(this + 0x2c) = *(undefined8 *)(param_1 + 0x2c);
+  *(undefined8 *)(this + 0x34) = uVar1;
+  uVar1 = *(undefined8 *)(param_1 + 0x44);
+  *(undefined8 *)(this + 0x3c) = *(undefined8 *)(param_1 + 0x3c);
+  *(undefined8 *)(this + 0x44) = uVar1;
+  *(undefined4 *)(this + 0x4c) = *(undefined4 *)(param_1 + 0x4c);
+  uVar1 = *(undefined8 *)(param_1 + 0x58);
+  *(undefined8 *)(this + 0x50) = *(undefined8 *)(param_1 + 0x50);
+  *(undefined8 *)(this + 0x58) = uVar1;
+  uVar1 = *(undefined8 *)(param_1 + 0x68);
+  *(undefined8 *)(this + 0x60) = *(undefined8 *)(param_1 + 0x60);
+  *(undefined8 *)(this + 0x68) = uVar1;
+  std::shared_ptr<CCursorState::ShapeData>::operator=
+            ((shared_ptr<CCursorState::ShapeData> *)(this + 0x70),
+             (shared_ptr<class_CCursorState::ShapeData> *)(param_1 + 0x70));
+  *(undefined4 *)(this + 0x80) = *(undefined4 *)(param_1 + 0x80);
+  *(undefined8 *)(this + 0x84) = *(undefined8 *)(param_1 + 0x84);
+  *(undefined4 *)(this + 0x8c) = *(undefined4 *)(param_1 + 0x8c);
+  *(undefined4 *)(this + 0x90) = *(undefined4 *)(param_1 + 0x90);
+  *(undefined4 *)(this + 0x94) = *(undefined4 *)(param_1 + 0x94);
+  *(undefined4 *)(this + 0x98) = *(undefined4 *)(param_1 + 0x98);
+  this[0x9c] = param_1[0x9c];
+  return this;
+}
+

```


## COverlayContext::CVisitedContent::CalcContentOnTop

### Function Meta



|Key|dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|name|CalcContentOnTop|
|fullname|COverlayContext::CVisitedContent::CalcContentOnTop|
|refcount|2|
|length|157|
|called|PixelAlign<br>TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::IsEmpty|
|calling|COverlayContext::CheckAndRecordOverlayCandidate|
|paramcount|2|
|address|18026a094|
|sig|TMilRect_<int,tagRECT,D2D_POINTANDSIZE_L,Mil3DRectL,RectUniqueness::_CMilRectL_> __thiscall CalcContentOnTop(CVisitedContent * this, TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> * param_1)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- COverlayContext::CVisitedContent::CalcContentOnTop
+++ COverlayContext::CVisitedContent::CalcContentOnTop
@@ -0,0 +1,54 @@
+
+/* public: class TMilRect_<int,struct tagRECT,struct D2D_POINTANDSIZE_L,struct Mil3DRectL,struct
+   RectUniqueness::_CMilRectL_> __cdecl COverlayContext::CVisitedContent::CalcContentOnTop(class
+   TMilRect_<float,struct D2D_RECT_F,struct D3D_RECT_F,struct D2D_POINTANDSIZE_F,struct
+   RectUniqueness::NotNeeded> const & __ptr64)const __ptr64 */
+
+TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> * __thiscall
+COverlayContext::CVisitedContent::CalcContentOnTop
+          (CVisitedContent *this,
+          TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
+          *param_1)
+
+{
+  bool bVar1;
+  TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> *pTVar2;
+  float *in_R8;
+  float local_18;
+  float fStack_14;
+  float fStack_10;
+  float fStack_c;
+  
+  pTVar2 = param_1;
+  bVar1 = TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::IsEmpty
+                    ((TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded> *)this);
+  if (!bVar1) {
+    local_18 = *(float *)this;
+    if (*(float *)this < *in_R8) {
+      local_18 = *in_R8;
+    }
+    fStack_14 = *(float *)(this + 4);
+    if (*(float *)(this + 4) < in_R8[1]) {
+      fStack_14 = in_R8[1];
+    }
+    fStack_10 = *(float *)(this + 8);
+    if (in_R8[2] < *(float *)(this + 8)) {
+      fStack_10 = in_R8[2];
+    }
+    fStack_c = *(float *)(this + 0xc);
+    if (in_R8[3] < *(float *)(this + 0xc)) {
+      fStack_c = in_R8[3];
+    }
+    bVar1 = TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::IsEmpty
+                      ((TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded> *)&local_18)
+    ;
+    if (!bVar1) {
+      PixelAlign((D2D_RECT_F *)param_1);
+      return param_1;
+    }
+  }
+  *(undefined8 *)pTVar2 = 0;
+  *(undefined8 *)(pTVar2 + 8) = 0;
+  return param_1;
+}
+

```


## COverlayContext::CVisitedContent::CalcInvertedContentOnTop

### Function Meta



|Key|dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|name|CalcInvertedContentOnTop|
|fullname|COverlayContext::CVisitedContent::CalcInvertedContentOnTop|
|refcount|2|
|length|161|
|called|PixelAlign<br>TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::IsEmpty|
|calling|COverlayContext::CheckAndRecordOverlayCandidate|
|paramcount|2|
|address|18026a138|
|sig|TMilRect_<int,tagRECT,D2D_POINTANDSIZE_L,Mil3DRectL,RectUniqueness::_CMilRectL_> __thiscall CalcInvertedContentOnTop(CVisitedContent * this, TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> * param_1)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- COverlayContext::CVisitedContent::CalcInvertedContentOnTop
+++ COverlayContext::CVisitedContent::CalcInvertedContentOnTop
@@ -0,0 +1,56 @@
+
+/* public: class TMilRect_<int,struct tagRECT,struct D2D_POINTANDSIZE_L,struct Mil3DRectL,struct
+   RectUniqueness::_CMilRectL_> __cdecl
+   COverlayContext::CVisitedContent::CalcInvertedContentOnTop(class TMilRect_<float,struct
+   D2D_RECT_F,struct D3D_RECT_F,struct D2D_POINTANDSIZE_F,struct RectUniqueness::NotNeeded> const &
+   __ptr64)const __ptr64 */
+
+TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> * __thiscall
+COverlayContext::CVisitedContent::CalcInvertedContentOnTop
+          (CVisitedContent *this,
+          TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
+          *param_1)
+
+{
+  bool bVar1;
+  TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded> *this_00;
+  TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> *pTVar2;
+  float *in_R8;
+  float local_18;
+  float fStack_14;
+  float fStack_10;
+  float fStack_c;
+  
+  this_00 = (TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded> *)(this + 0x10);
+  pTVar2 = param_1;
+  bVar1 = TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::IsEmpty(this_00);
+  if (!bVar1) {
+    local_18 = *(float *)this_00;
+    if (*(float *)this_00 < *in_R8) {
+      local_18 = *in_R8;
+    }
+    fStack_14 = *(float *)(this_00 + 4);
+    if (*(float *)(this_00 + 4) < in_R8[1]) {
+      fStack_14 = in_R8[1];
+    }
+    fStack_10 = *(float *)(this_00 + 8);
+    if (in_R8[2] < *(float *)(this_00 + 8)) {
+      fStack_10 = in_R8[2];
+    }
+    fStack_c = *(float *)(this_00 + 0xc);
+    if (in_R8[3] < *(float *)(this_00 + 0xc)) {
+      fStack_c = in_R8[3];
+    }
+    bVar1 = TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::IsEmpty
+                      ((TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded> *)&local_18)
+    ;
+    if (!bVar1) {
+      PixelAlign((D2D_RECT_F *)param_1);
+      return param_1;
+    }
+  }
+  *(undefined8 *)pTVar2 = 0;
+  *(undefined8 *)(pTVar2 + 8) = 0;
+  return param_1;
+}
+

```


## COverlayContext::ClearHardwareCursor

### Function Meta



|Key|dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|name|ClearHardwareCursor|
|fullname|COverlayContext::ClearHardwareCursor|
|refcount|4|
|length|92|
|called|CCursorVisual::RemoveMonitorData<br>CMILCOMBaseWeakRefSource<CResourceDeleter>::InternalRelease|
|calling|COverlayContext::Reset<br>COverlayContext::SetHardwareCursor<br>COverlayContext::UpdateMPOCaps|
|paramcount|1|
|address|18026b544|
|sig|void __thiscall ClearHardwareCursor(COverlayContext * this)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- COverlayContext::ClearHardwareCursor
+++ COverlayContext::ClearHardwareCursor
@@ -0,0 +1,23 @@
+
+/* private: void __cdecl COverlayContext::ClearHardwareCursor(void) __ptr64 */
+
+void __thiscall COverlayContext::ClearHardwareCursor(COverlayContext *this)
+
+{
+  CMILCOMBaseWeakRefSource<CResourceDeleter> *this_00;
+  
+  if (*(CCursorVisual **)(this + 0x4b18) != (CCursorVisual *)0x0) {
+    CCursorVisual::RemoveMonitorData
+              (*(CCursorVisual **)(this + 0x4b18),*(_LUID *)(this + 0x4b20),*(uint *)(this + 0x4b28)
+              );
+    this_00 = *(CMILCOMBaseWeakRefSource<CResourceDeleter> **)(this + 0x4b18);
+    *(undefined8 *)(this + 0x4b18) = 0;
+    if (this_00 != (CMILCOMBaseWeakRefSource<CResourceDeleter> *)0x0) {
+      CMILCOMBaseWeakRefSource<CResourceDeleter>::InternalRelease(this_00);
+    }
+  }
+  *(undefined4 *)(this + 0x4b28) = 0xffffffff;
+  *(undefined8 *)(this + 0x4b20) = 0;
+  return;
+}
+

```


## CCursorState::GetMonitorData

### Function Meta



|Key|dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|name|GetMonitorData|
|fullname|CCursorState::GetMonitorData|
|refcount|3|
|length|90|
|called||
|calling|COverlayContext::ForceSoftwareCursor<br>COverlayContext::IsCursorVisibleInSoftware<br>COverlayContext::UpdateHardwareCursor|
|paramcount|3|
|address|18026d680|
|sig|MonitorData * __thiscall GetMonitorData(CCursorState * this, _LUID param_1, uint param_2)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CCursorState::GetMonitorData
+++ CCursorState::GetMonitorData
@@ -0,0 +1,28 @@
+
+/* private: class CCursorState::MonitorData * __ptr64 __cdecl CCursorState::GetMonitorData(struct
+   _LUID,unsigned int)const __ptr64 */
+
+MonitorData * __thiscall CCursorState::GetMonitorData(CCursorState *this,_LUID param_1,uint param_2)
+
+{
+  MonitorData *pMVar1;
+  ulonglong uVar2;
+  ulonglong uVar3;
+  int iStackX_14;
+  
+  uVar2 = 0;
+  uVar3 = (*(longlong *)(this + 0x60) - *(longlong *)(this + 0x58) >> 5) * -0x3333333333333333;
+  if (uVar3 != 0) {
+    iStackX_14 = param_1.HighPart;
+    do {
+      pMVar1 = (MonitorData *)(uVar2 * 0xa0 + *(longlong *)(this + 0x58));
+      if (((*(DWORD *)pMVar1 == param_1.LowPart) && (*(int *)(pMVar1 + 4) == iStackX_14)) &&
+         (*(uint *)(pMVar1 + 8) == param_2)) {
+        return pMVar1;
+      }
+      uVar2 = (ulonglong)((int)uVar2 + 1);
+    } while (uVar2 < uVar3);
+  }
+  return (MonitorData *)0x0;
+}
+

```


## COverlayContext::IsCursorVisibleInSoftware

### Function Meta



|Key|dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|name|IsCursorVisibleInSoftware|
|fullname|COverlayContext::IsCursorVisibleInSoftware|
|refcount|5|
|length|110|
|called|API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::EnterCriticalSection<br>API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::LeaveCriticalSection<br>CCursorState::GetMonitorData|
|calling|COverlayContext::ApplyConfiguration<br>COverlayContext::Present|
|paramcount|1|
|address|18026dbd4|
|sig|bool __thiscall IsCursorVisibleInSoftware(COverlayContext * this)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- COverlayContext::IsCursorVisibleInSoftware
+++ COverlayContext::IsCursorVisibleInSoftware
@@ -0,0 +1,25 @@
+
+/* private: bool __cdecl COverlayContext::IsCursorVisibleInSoftware(void)const __ptr64 */
+
+bool __thiscall COverlayContext::IsCursorVisibleInSoftware(COverlayContext *this)
+
+{
+  int iVar1;
+  MonitorData *pMVar2;
+  bool bVar3;
+  
+  pMVar2 = CCursorState::GetMonitorData
+                     (*(CCursorState **)(*(longlong *)(this + 0x4b18) + 0x2c0),
+                      *(_LUID *)(this + 0x4b20),*(uint *)(this + 0x4b28));
+  if (pMVar2 == (MonitorData *)0x0) {
+    bVar3 = true;
+  }
+  else {
+    EnterCriticalSection((LPCRITICAL_SECTION)&g_CursorManager);
+    iVar1 = *(int *)(pMVar2 + 0x98);
+    LeaveCriticalSection((LPCRITICAL_SECTION)&g_CursorManager);
+    bVar3 = iVar1 == 2;
+  }
+  return bVar3;
+}
+

```


## CCursorVisual::RemoveMonitorData

### Function Meta



|Key|dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|name|RemoveMonitorData|
|fullname|CCursorVisual::RemoveMonitorData|
|refcount|2|
|length|121|
|called|API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::EnterCriticalSection<br>API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::LeaveCriticalSection<br>CCursorState::FindMonitorData<br>CCursorState::HideHardwareShape<br>std::vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_>::erase|
|calling|COverlayContext::ClearHardwareCursor|
|paramcount|3|
|address|18026ddec|
|sig|void __thiscall RemoveMonitorData(CCursorVisual * this, _LUID param_1, uint param_2)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CCursorVisual::RemoveMonitorData
+++ CCursorVisual::RemoveMonitorData
@@ -0,0 +1,24 @@
+
+/* public: void __cdecl CCursorVisual::RemoveMonitorData(struct _LUID,unsigned int) __ptr64 */
+
+void __thiscall CCursorVisual::RemoveMonitorData(CCursorVisual *this,_LUID param_1,uint param_2)
+
+{
+  CCursorState *this_00;
+  CCursorManager *this_01;
+  MonitorData *local_res8;
+  
+  this_00 = *(CCursorState **)(this + 0x2c0);
+  CCursorState::FindMonitorData(this_00,(_LUID)&local_res8,param_1.LowPart);
+  if (local_res8 != *(MonitorData **)(this_00 + 0x60)) {
+    this_01 = &g_CursorManager;
+    EnterCriticalSection((LPCRITICAL_SECTION)&g_CursorManager);
+    CCursorState::HideHardwareShape((CCursorState *)this_01,local_res8);
+    std::vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_>::erase
+              ((vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_> *)
+               (this_00 + 0x58),&local_res8,local_res8);
+    LeaveCriticalSection((LPCRITICAL_SECTION)&g_CursorManager);
+  }
+  return;
+}
+

```


## COverlayContext::UpdateHardwareCursor

### Function Meta



|Key|dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|name|UpdateHardwareCursor|
|fullname|COverlayContext::UpdateHardwareCursor|
|refcount|2|
|length|470|
|called|<details><summary>Expand for full list:<br>API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::EnterCriticalSection<br>API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::LeaveCriticalSection<br>CCursorState::EnsureMonitorData<br>CCursorState::GetMonitorData<br>CCursorState::UpdateHardwareCursor<br>CCursorVisual::IsMaskInvert<br>CMILMatrix::Multiply<br>COverlayContext::GetCursorBounds<br>COverlayContext::GetMonitorTransform<br>COverlayContext::IsCursorScaledByHardware<br>TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::UnionUnsafe</summary>_guard_dispatch_icall$thunk$10345483385596137414<br>wil::details::FeatureImpl<__WilFeatureTraits_Feature_ContentOnTop>::__private_IsEnabled</details>|
|calling|COverlayContext::SetHardwareCursor|
|paramcount|1|
|address|18026e71c|
|sig|bool __thiscall UpdateHardwareCursor(COverlayContext * this)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- COverlayContext::UpdateHardwareCursor
+++ COverlayContext::UpdateHardwareCursor
@@ -0,0 +1,81 @@
+
+/* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
+   guard_dispatch_icall */
+/* private: bool __cdecl COverlayContext::UpdateHardwareCursor(void) __ptr64 */
+
+bool __thiscall COverlayContext::UpdateHardwareCursor(COverlayContext *this)
+
+{
+  CCursorState *this_00;
+  bool bVar1;
+  CMonitorTransform *pCVar2;
+  MonitorData *pMVar3;
+  TMilRect<float,struct_D2D_RECT_F,struct_D3D_RECT_F,struct_RectUniqueness::NotNeeded> *pTVar4;
+  undefined8 local_68;
+  undefined8 uStack_60;
+  undefined8 local_58;
+  undefined8 uStack_50;
+  undefined8 local_48;
+  undefined8 uStack_40;
+  undefined8 local_38;
+  undefined8 uStack_30;
+  undefined8 local_28;
+  undefined8 uStack_20;
+  undefined4 local_18;
+  
+  bVar1 = IsCursorScaledByHardware(this);
+  pCVar2 = GetMonitorTransform(this);
+  if (bVar1) {
+    local_68 = *(undefined8 *)(this + 0x4a24);
+    uStack_60 = *(undefined8 *)(this + 0x4a2c);
+  }
+  else {
+    local_68 = *(undefined8 *)(pCVar2 + 0x18);
+    uStack_60 = *(undefined8 *)(pCVar2 + 0x20);
+  }
+  local_58 = *(undefined8 *)(this + 0x4b2c);
+  uStack_50 = *(undefined8 *)(this + 0x4b34);
+  local_18 = *(undefined4 *)(this + 0x4b6c);
+  local_48 = *(undefined8 *)(this + 0x4b3c);
+  uStack_40 = *(undefined8 *)(this + 0x4b44);
+  local_38 = *(undefined8 *)(this + 0x4b4c);
+  uStack_30 = *(undefined8 *)(this + 0x4b54);
+  local_28 = *(undefined8 *)(this + 0x4b5c);
+  uStack_20 = *(undefined8 *)(this + 0x4b64);
+  CMILMatrix::Multiply
+            ((CMILMatrix *)&local_58,
+             (CMILMatrix *)(pCVar2 + (ulonglong)(-(uint)bVar1 & 0x88) + 0x34));
+  bVar1 = CCursorState::EnsureMonitorData
+                    (*(CCursorState **)(*(longlong *)(this + 0x4b18) + 0x2c0),
+                     *(_LUID *)(this + 0x4b20),*(uint *)(this + 0x4b28),
+                     (TMilRect<unsigned_int,MilRectU,Mil3DRectU,RectUniqueness::NotNeeded> *)
+                     &local_68,(bool)pCVar2[0x100],(CMILMatrix *)&local_58);
+  this_00 = *(CCursorState **)(*(longlong *)(this + 0x4b18) + 0x2c0);
+  pMVar3 = CCursorState::GetMonitorData(this_00,*(_LUID *)(this + 0x4b20),*(uint *)(this + 0x4b28));
+  EnterCriticalSection((LPCRITICAL_SECTION)&g_CursorManager);
+  bVar1 = CCursorState::UpdateHardwareCursor(this_00,pMVar3,bVar1);
+  LeaveCriticalSection((LPCRITICAL_SECTION)&g_CursorManager);
+  if (bVar1) {
+    (**(code **)(**(longlong **)this + 0x128))(*(longlong **)this,this + 0x4b70);
+    bVar1 = true;
+  }
+  else {
+    bVar1 = wil::details::FeatureImpl<__WilFeatureTraits_Feature_ContentOnTop>::__private_IsEnabled
+                      ((FeatureImpl<__WilFeatureTraits_Feature_ContentOnTop> *)
+                       &`private:_static_class_wil::details::FeatureImpl<__WilFeatureTraits_Feature_ContentOnTop>&___ptr64___cdecl_wil::Feature<__WilFeatureTraits_Feature_ContentOnTop>::GetImpl(void)'
+                        ::__l2::impl);
+    if (!bVar1) {
+      bVar1 = CCursorVisual::IsMaskInvert(*(CCursorVisual **)(this + 0x4b18));
+      if (bVar1) {
+        pTVar4 = (TMilRect<float,struct_D2D_RECT_F,struct_D3D_RECT_F,struct_RectUniqueness::NotNeeded>
+                  *)GetCursorBounds(this);
+        TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::UnionUnsafe
+                  ((TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded> *)
+                   (this + 0x4b90),pTVar4);
+      }
+    }
+    bVar1 = false;
+  }
+  return bVar1;
+}
+

```


## std::vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_>::erase

### Function Meta



|Key|dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|name|erase|
|fullname|std::vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_>::erase|
|refcount|2|
|length|133|
|called|CCursorState::MonitorData::operator=<br>std::_Ref_count_base::_Decref|
|calling|CCursorVisual::RemoveMonitorData|
|paramcount|2|
|address|18026ec4c|
|sig|_Vector_iterator<std::_Vector_val<std::_Simple_types<CCursorState::MonitorData>_>_> __thiscall erase(vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_> * this, _Vector_const_iterator<std::_Vector_val<std::_Simple_types<CCursorState::MonitorData>_>_> param_1)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- std::vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_>::erase
+++ std::vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_>::erase
@@ -0,0 +1,30 @@
+
+/* public: class std::_Vector_iterator<class std::_Vector_val<struct std::_Simple_types<class
+   CCursorState::MonitorData> > > __cdecl std::vector<class CCursorState::MonitorData,class
+   std::allocator<class CCursorState::MonitorData> >::erase(class std::_Vector_const_iterator<class
+   std::_Vector_val<struct std::_Simple_types<class CCursorState::MonitorData> > >) __ptr64 */
+
+undefined8 * __thiscall
+std::vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_>::erase
+          (vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_> *this,
+          undefined8 *param_2,MonitorData *param_3)
+
+{
+  MonitorData *pMVar1;
+  MonitorData *this_00;
+  MonitorData *pMVar2;
+  
+  pMVar1 = *(MonitorData **)(this + 8);
+  this_00 = param_3;
+  while (pMVar2 = this_00 + 0xa0, pMVar2 != pMVar1) {
+    CCursorState::MonitorData::operator=(this_00,pMVar2);
+    this_00 = pMVar2;
+  }
+  if (*(_Ref_count_base **)(*(longlong *)(this + 8) + -0x28) != (_Ref_count_base *)0x0) {
+    _Ref_count_base::_Decref(*(_Ref_count_base **)(*(longlong *)(this + 8) + -0x28));
+  }
+  *(longlong *)(this + 8) = *(longlong *)(this + 8) + -0xa0;
+  *param_2 = param_3;
+  return param_2;
+}
+

```


## CInk::CInk

### Function Meta



|Key|dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|name|CInk|
|fullname|CInk::CInk|
|refcount|1|
|length|108|
|called||
|calling|CResourceFactory::Create|
|paramcount|2|
|address|180275e70|
|sig|undefined __thiscall CInk(CInk * this, CComposition * param_1)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CInk::CInk
+++ CInk::CInk
@@ -0,0 +1,25 @@
+
+/* public: __cdecl CInk::CInk(class CComposition * __ptr64) __ptr64 */
+
+CInk * __thiscall CInk::CInk(CInk *this,CComposition *param_1)
+
+{
+  *(undefined4 *)(this + 8) = 0;
+  *(undefined8 *)(this + 0x10) = 0;
+  *(CComposition **)(this + 0x18) = param_1;
+  *(undefined8 *)(this + 0x20) = 0;
+  *(undefined8 *)(this + 0x30) = 0;
+  *(undefined4 *)(this + 0x28) = 0;
+  *(undefined ***)this = &_vftable_;
+  *(undefined ***)(this + 0x48) = &CDeviceResourceTable<CD2DInk,CInk>::_vftable_;
+  *(CInk **)(this + 0x50) = this;
+  *(CInk **)(this + 0x58) = this + 0x70;
+  *(CInk **)(this + 0x60) = this + 0x70;
+  *(CInk **)(this + 0x68) = this + 0x80;
+  *(undefined8 *)(this + 0x90) = 0;
+  *(undefined8 *)(this + 0x98) = 0;
+  *(undefined8 *)(this + 0xa0) = 0;
+  *(undefined4 *)(this + 0xa8) = 0;
+  return this;
+}
+

```


## CCompositionMagnifierBrush::IsOfType

### Function Meta



|Key|dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|name|IsOfType|
|fullname|CCompositionMagnifierBrush::IsOfType|
|refcount|2|
|length|27|
|called||
|calling||
|paramcount|2|
|address|180278df0|
|sig|bool __thiscall IsOfType(CCompositionMagnifierBrush * this, MIL_RESOURCE_TYPE param_1)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CCompositionMagnifierBrush::IsOfType
+++ CCompositionMagnifierBrush::IsOfType
@@ -0,0 +1,14 @@
+
+/* public: virtual bool __cdecl CCompositionMagnifierBrush::IsOfType(enum MIL_RESOURCE_TYPE)const
+   __ptr64 */
+
+bool __thiscall
+CCompositionMagnifierBrush::IsOfType(CCompositionMagnifierBrush *this,MIL_RESOURCE_TYPE param_1)
+
+{
+  if ((param_1 < 0x30) && ((0x802000020000U >> ((ulonglong)param_1 & 0x3f) & 1) != 0)) {
+    return true;
+  }
+  return false;
+}
+

```


## CValueColorTransformLayer::CValueColorTransformLayer

### Function Meta



|Key|dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|name|CValueColorTransformLayer|
|fullname|CValueColorTransformLayer::CValueColorTransformLayer|
|refcount|2|
|length|116|
|called|CExternalLayer::CExternalLayer|
|calling|CValueColorTransformLayer::Create|
|paramcount|4|
|address|18027cc38|
|sig|undefined __thiscall CValueColorTransformLayer(CValueColorTransformLayer * this, D2D_POINTANDSIZE_L * param_1, IRenderTargetBitmap * param_2, MilColorTransform * param_3)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CValueColorTransformLayer::CValueColorTransformLayer
+++ CValueColorTransformLayer::CValueColorTransformLayer
@@ -0,0 +1,37 @@
+
+/* private: __cdecl CValueColorTransformLayer::CValueColorTransformLayer(struct D2D_POINTANDSIZE_L
+   const & __ptr64,class IRenderTargetBitmap * __ptr64,struct MilColorTransform const & __ptr64)
+   __ptr64 */
+
+CValueColorTransformLayer * __thiscall
+CValueColorTransformLayer::CValueColorTransformLayer
+          (CValueColorTransformLayer *this,D2D_POINTANDSIZE_L *param_1,IRenderTargetBitmap *param_2,
+          MilColorTransform *param_3)
+
+{
+  undefined8 uVar1;
+  
+  CExternalLayer::CExternalLayer((CExternalLayer *)this,param_1,param_2);
+  *(undefined ***)this = &_vftable_;
+  uVar1 = *(undefined8 *)(param_3 + 8);
+  *(undefined8 *)(this + 0x78) = *(undefined8 *)param_3;
+  *(undefined8 *)(this + 0x80) = uVar1;
+  uVar1 = *(undefined8 *)(param_3 + 0x18);
+  *(undefined8 *)(this + 0x88) = *(undefined8 *)(param_3 + 0x10);
+  *(undefined8 *)(this + 0x90) = uVar1;
+  uVar1 = *(undefined8 *)(param_3 + 0x28);
+  *(undefined8 *)(this + 0x98) = *(undefined8 *)(param_3 + 0x20);
+  *(undefined8 *)(this + 0xa0) = uVar1;
+  uVar1 = *(undefined8 *)(param_3 + 0x38);
+  *(undefined8 *)(this + 0xa8) = *(undefined8 *)(param_3 + 0x30);
+  *(undefined8 *)(this + 0xb0) = uVar1;
+  uVar1 = *(undefined8 *)(param_3 + 0x48);
+  *(undefined8 *)(this + 0xb8) = *(undefined8 *)(param_3 + 0x40);
+  *(undefined8 *)(this + 0xc0) = uVar1;
+  uVar1 = *(undefined8 *)(param_3 + 0x58);
+  *(undefined8 *)(this + 200) = *(undefined8 *)(param_3 + 0x50);
+  *(undefined8 *)(this + 0xd0) = uVar1;
+  *(undefined4 *)(this + 0xd8) = *(undefined4 *)(param_3 + 0x60);
+  return this;
+}
+

```


## CValueColorTransformLayer::Create

### Function Meta



|Key|dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|name|Create|
|fullname|CValueColorTransformLayer::Create|
|refcount|2|
|length|305|
|called|CExternalLayer::CreateBitmap<br>CValueColorTransformLayer::CValueColorTransformLayer<br>MilInstrumentationCheckHR_MaybeFailFast<br>__security_check_cookie<br>_guard_dispatch_icall$thunk$10345483385596137414<br>operator_new<br>wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy><br>wil::com_ptr_t<IRenderTargetBitmap,wil::err_returncode_policy>::reset|
|calling|CDrawingContext::PushValueColorTransformLayer|
|paramcount|4|
|address|18027ccb4|
|sig|long __cdecl Create(IDeviceTarget * param_1, D2D_POINTANDSIZE_L * param_2, MilColorTransform * param_3, CValueColorTransformLayer * * param_4)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CValueColorTransformLayer::Create
+++ CValueColorTransformLayer::Create
@@ -0,0 +1,64 @@
+
+/* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
+   guard_dispatch_icall */
+/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
+/* public: static long __cdecl CValueColorTransformLayer::Create(class IDeviceTarget *
+   __ptr64,struct D2D_POINTANDSIZE_L const & __ptr64,struct MilColorTransform const & __ptr64,class
+   CValueColorTransformLayer * __ptr64 * __ptr64) */
+
+long __cdecl
+CValueColorTransformLayer::Create
+          (IDeviceTarget *param_1,D2D_POINTANDSIZE_L *param_2,MilColorTransform *param_3,
+          CValueColorTransformLayer **param_4)
+
+{
+  long lVar1;
+  RenderTargetInfo *pRVar2;
+  CValueColorTransformLayer *pCVar3;
+  undefined1 auStackY_a8 [32];
+  uint uVar4;
+  IRenderTargetBitmap *local_78;
+  char *local_70;
+  undefined4 local_68;
+  undefined1 local_60 [24];
+  PixelFormatInfo local_48 [4];
+  undefined4 local_44;
+  ulonglong local_38;
+  
+  local_38 = __security_cookie ^ (ulonglong)auStackY_a8;
+  *param_4 = (CValueColorTransformLayer *)0x0;
+  (**(code **)(*(longlong *)(param_1 + 8) + 0x18))(param_1 + 8,local_48);
+  local_78 = (IRenderTargetBitmap *)0x0;
+  local_44 = 1;
+  wil::com_ptr_t<IRenderTargetBitmap,wil::err_returncode_policy>::reset
+            ((com_ptr_t<IRenderTargetBitmap,wil::err_returncode_policy> *)&local_78);
+  pRVar2 = (RenderTargetInfo *)(**(code **)(*(longlong *)param_1 + 0x78))(param_1,local_60);
+  local_68 = 0x30;
+  local_70 = "DWM Scratch Rendertarget (color transform layer)";
+  lVar1 = CExternalLayer::CreateBitmap
+                    ((CResourceTag *)&local_70,param_2,local_48,pRVar2,1,&local_78);
+  if (lVar1 < 0) {
+    uVar4 = 0xb1;
+  }
+  else {
+    pCVar3 = ::operator_new(0xe0);
+    if (pCVar3 == (CValueColorTransformLayer *)0x0) {
+      *param_4 = (CValueColorTransformLayer *)0x0;
+    }
+    else {
+      pCVar3 = (CValueColorTransformLayer *)
+               CValueColorTransformLayer(pCVar3,param_2,local_78,param_3);
+      *param_4 = pCVar3;
+      if (pCVar3 != (CValueColorTransformLayer *)0x0) goto LAB_18027cdc0;
+    }
+    lVar1 = -0x7ff8fff2;
+    uVar4 = 0xb6;
+  }
+  MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar1,uVar4,(void *)0x0);
+LAB_18027cdc0:
+  wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::
+  ~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>
+            ((com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy> *)&local_78);
+  return lVar1;
+}
+

```


## CValueColorTransformLayer::RenderLayer

### Function Meta



|Key|dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|name|RenderLayer|
|fullname|CValueColorTransformLayer::RenderLayer|
|refcount|3|
|length|794|
|called|CD2DContext::GetCachedEffectNoRef<br>CDrawingContext::FillEffect<br>CDrawingContext::PopRenderOptionsInternal<br>CDrawingContext::PushRenderOptionsInternal<br>MilInstrumentationCheckHR_MaybeFailFast<br>__security_check_cookie<br>_guard_dispatch_icall$thunk$10345483385596137414<br>wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy><br>wil::com_ptr_t<ILegacyRemotingSwapChain,wil::err_returncode_policy>::reset|
|calling||
|paramcount|2|
|address|18027cdf0|
|sig|long __thiscall RenderLayer(CValueColorTransformLayer * this, CDrawingContext * param_1)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CValueColorTransformLayer::RenderLayer
+++ CValueColorTransformLayer::RenderLayer
@@ -0,0 +1,136 @@
+
+/* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
+   guard_dispatch_icall */
+/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
+/* private: virtual long __cdecl CValueColorTransformLayer::RenderLayer(class CDrawingContext *
+   __ptr64) __ptr64 */
+
+long __thiscall
+CValueColorTransformLayer::RenderLayer(CValueColorTransformLayer *this,CDrawingContext *param_1)
+
+{
+  code *pcVar1;
+  ID2D1Effect *pIVar2;
+  long lVar3;
+  longlong lVar4;
+  longlong *plVar5;
+  undefined1 auStackY_f8 [32];
+  uint uVar6;
+  undefined8 local_c8;
+  undefined8 local_c0;
+  undefined4 local_b8;
+  undefined8 local_b4;
+  undefined8 uStack_ac;
+  undefined8 local_a4;
+  undefined8 uStack_9c;
+  undefined4 local_94;
+  undefined4 local_90;
+  undefined4 local_8c;
+  float local_88;
+  float local_84;
+  undefined8 local_78;
+  undefined8 uStack_70;
+  undefined8 local_68;
+  undefined8 uStack_60;
+  undefined8 local_58;
+  undefined8 uStack_50;
+  undefined8 local_48;
+  ulonglong uStack_40;
+  undefined8 local_38;
+  undefined8 uStack_30;
+  ulonglong local_28;
+  
+  local_28 = __security_cookie ^ (ulonglong)auStackY_f8;
+  plVar5 = *(longlong **)(this + 8);
+  local_c0 = 0;
+  local_c8 = (ID2D1Effect *)0x0;
+  local_94 = 0;
+  local_b4 = 0;
+  uStack_ac = 0;
+  local_a4 = 0;
+  uStack_9c = 0;
+  pcVar1 = *(code **)(*plVar5 + 0x98);
+  wil::com_ptr_t<ILegacyRemotingSwapChain,wil::err_returncode_policy>::reset
+            ((com_ptr_t<ILegacyRemotingSwapChain,wil::err_returncode_policy> *)&local_c0);
+  lVar3 = (*pcVar1)(plVar5);
+  if (lVar3 < 0) {
+    uVar6 = 199;
+  }
+  else {
+    lVar3 = CD2DContext::GetCachedEffectNoRef
+                      ((CD2DContext *)(*(longlong *)(param_1 + 0x28) + 0x10),0,
+                       (ID2D1Effect **)&local_c8);
+    if (lVar3 < 0) {
+      uVar6 = 0xca;
+    }
+    else {
+      local_b8 = 6;
+      local_b4 = 0x1ff000000;
+      lVar3 = CDrawingContext::PushRenderOptionsInternal
+                        (param_1,(CVisual *)0x0,(MilRenderOptions *)&local_b8,true);
+      if (-1 < lVar3) {
+        local_78 = *(undefined8 *)(this + 0x78);
+        uStack_70 = *(undefined8 *)(this + 0x80);
+        local_68 = *(undefined8 *)(this + 0x8c);
+        uStack_60 = *(undefined8 *)(this + 0x94);
+        local_58 = *(undefined8 *)(this + 0xa0);
+        uStack_50 = *(undefined8 *)(this + 0xa8);
+        local_48 = *(undefined8 *)(this + 0xb4);
+        uStack_40 = *(ulonglong *)(this + 0xbc);
+        local_38 = *(undefined8 *)(this + 200);
+        uStack_30 = *(undefined8 *)(this + 0xd0);
+        lVar4 = (**(code **)(*(longlong *)(*(longlong *)(this + 8) + 8) + 0x18))();
+        pIVar2 = local_c8;
+        if (*(int *)(lVar4 + 4) == 3) {
+          uStack_40 = uStack_40 & 0xffffffff;
+          uStack_30 = CONCAT44(0x3f800000,(undefined4)uStack_30);
+        }
+        lVar3 = (**(code **)(*(longlong *)local_c8 + 0x48))(local_c8,0,0,&local_78);
+        if (lVar3 < 0) {
+          uVar6 = 0xfe;
+LAB_18027d083:
+          MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar3,uVar6,(void *)0x0);
+        }
+        else {
+          local_c8 = (ID2D1Effect *)CONCAT44(local_c8._4_4_,2);
+          lVar3 = (**(code **)(*(longlong *)pIVar2 + 0x48))(pIVar2,1,0,&local_c8);
+          if (lVar3 < 0) {
+            uVar6 = 0x101;
+            goto LAB_18027d083;
+          }
+          (**(code **)(*(longlong *)pIVar2 + 0x70))(pIVar2,0,local_c0,1);
+          if (g_LockAndReadLayer != false) {
+            plVar5 = (longlong *)(**(code **)(**(longlong **)(this + 8) + 0x90))();
+            (**(code **)(*plVar5 + 0x70))
+                      (plVar5,(ulonglong)(param_1 + 0x18) &
+                              -(ulonglong)(param_1 != (CDrawingContext *)0x0));
+          }
+          local_90 = 0;
+          local_8c = 0;
+          local_88 = (float)*(int *)(this + 0x18);
+          local_84 = (float)*(int *)(this + 0x1c);
+          local_c8 = (ID2D1Effect *)
+                     CONCAT44((float)*(int *)(this + 0x14),(float)*(int *)(this + 0x10));
+          lVar3 = CDrawingContext::FillEffect
+                            (param_1,pIVar2,
+                             (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
+                              *)&local_90,(D2D_POINT_2F *)&local_c8,true);
+          if (lVar3 < 0) {
+            MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar3,0x11b,(void *)0x0);
+          }
+          (**(code **)(*(longlong *)pIVar2 + 0x70))(pIVar2,0,0,1);
+        }
+        CDrawingContext::PopRenderOptionsInternal(param_1,true);
+        goto LAB_18027d0db;
+      }
+      uVar6 = 0xd9;
+    }
+  }
+  MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar3,uVar6,(void *)0x0);
+LAB_18027d0db:
+  wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::
+  ~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>
+            ((com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy> *)&local_c0);
+  return lVar3;
+}
+

```


## CCursorVisual::IsMaskInvert

### Function Meta



|Key|dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|name|IsMaskInvert|
|fullname|CCursorVisual::IsMaskInvert|
|refcount|2|
|length|31|
|called||
|calling|COcclusionContext::PostSubgraph<br>COverlayContext::UpdateHardwareCursor|
|paramcount|1|
|address|1802932a8|
|sig|bool __thiscall IsMaskInvert(CCursorVisual * this)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CCursorVisual::IsMaskInvert
+++ CCursorVisual::IsMaskInvert
@@ -0,0 +1,17 @@
+
+/* public: bool __cdecl CCursorVisual::IsMaskInvert(void)const __ptr64 */
+
+bool __thiscall CCursorVisual::IsMaskInvert(CCursorVisual *this)
+
+{
+  longlong lVar1;
+  bool bVar2;
+  
+  lVar1 = *(longlong *)(this + 0x2c0);
+  bVar2 = false;
+  if (((lVar1 != 0) && (*(longlong *)(lVar1 + 0xb0) != 0)) && (*(char *)(lVar1 + 0x51) != '\0')) {
+    bVar2 = true;
+  }
+  return bVar2;
+}
+

```


## CDrawingContext::IsSoftwareCursor

### Function Meta



|Key|dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|name|IsSoftwareCursor|
|fullname|CDrawingContext::IsSoftwareCursor|
|refcount|1|
|length|25|
|called||
|calling|CCursorVisual::RenderContent|
|paramcount|2|
|address|1802932fc|
|sig|bool __thiscall IsSoftwareCursor(CDrawingContext * this, CCursorVisual * param_1)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CDrawingContext::IsSoftwareCursor
+++ CDrawingContext::IsSoftwareCursor
@@ -0,0 +1,31 @@
+
+/* public: bool __cdecl CDrawingContext::IsSoftwareCursor(class CCursorVisual const * __ptr64)const
+   __ptr64 */
+
+bool __thiscall CDrawingContext::IsSoftwareCursor(CDrawingContext *this,CCursorVisual *param_1)
+
+{
+  int iVar1;
+  longlong lVar2;
+  MonitorData *pMVar3;
+  bool bVar4;
+  
+  lVar2 = *(longlong *)(this + 0x30);
+  if ((lVar2 != 0) && (*(CCursorVisual **)(lVar2 + 0x4b18) == param_1)) {
+    pMVar3 = CCursorState::GetMonitorData
+                       (*(CCursorState **)(*(longlong *)(lVar2 + 0x4b18) + 0x2c0),
+                        *(_LUID *)(lVar2 + 0x4b20),*(uint *)(lVar2 + 0x4b28));
+    if (pMVar3 == (MonitorData *)0x0) {
+      bVar4 = true;
+    }
+    else {
+      EnterCriticalSection((LPCRITICAL_SECTION)&g_CursorManager);
+      iVar1 = *(int *)(pMVar3 + 0x98);
+      LeaveCriticalSection((LPCRITICAL_SECTION)&g_CursorManager);
+      bVar4 = iVar1 == 2;
+    }
+    return bVar4;
+  }
+  return true;
+}
+

```


## CCompositionMagnifierBrush::GetBVIBrushParameters

### Function Meta



|Key|dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|name|GetBVIBrushParameters|
|fullname|CCompositionMagnifierBrush::GetBVIBrushParameters|
|refcount|3|
|length|619|
|called|<details><summary>Expand for full list:<br>CBrushDrawListGenerator::AttachInput<br>CBrushDrawListGenerator::Reset<br>CDrawListBitmap::CDrawListBitmap<br>CDrawListBitmap::~CDrawListBitmap<br>CDrawingContext::GetCurrentVisual<br>CSurfaceDrawListBrush::CreateWithTextureTransform<br>CVisual::GetBackdropVisualImage<br>InterpolationMode::FromD2D1InterpolationMode<br>PixelAlign<br>std::unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_>::~unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_><br>std::unique_ptr<CSurfaceDrawListBrush,std::default_delete<CSurfaceDrawListBrush>_>::~unique_ptr<CSurfaceDrawListBrush,std::default_delete<CSurfaceDrawListBrush>_></summary>wil::details::in1diag3::Return_Hr<br>wil::details::out_param_t<std::unique_ptr<CSurfaceDrawListBrush,std::default_delete<CSurfaceDrawListBrush>_>_>::~out_param_t<std::unique_ptr<CSurfaceDrawListBrush,std::default_delete<CSurfaceDrawListBrush>_>_></details>|
|calling|CCompositionMagnifierBrush::GetBrushParameters<br>CCompositionMagnifierBrush::GetLayeredBrushParameters|
|paramcount|2|
|address|1802986a0|
|sig|long __thiscall GetBVIBrushParameters(CCompositionMagnifierBrush * this, CBrushDrawListGenerator * param_1)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CCompositionMagnifierBrush::GetBVIBrushParameters
+++ CCompositionMagnifierBrush::GetBVIBrushParameters
@@ -0,0 +1,117 @@
+
+/* private: long __cdecl CCompositionMagnifierBrush::GetBVIBrushParameters(class
+   CBrushDrawListGenerator * __ptr64)const __ptr64 */
+
+long __thiscall
+CCompositionMagnifierBrush::GetBVIBrushParameters
+          (CCompositionMagnifierBrush *this,CBrushDrawListGenerator *param_1)
+
+{
+  float fVar1;
+  float fVar2;
+  int iVar3;
+  int iVar4;
+  Enum EVar5;
+  long lVar6;
+  CVisual *this_00;
+  CBackdropVisualImage *pCVar7;
+  CDrawingContext *this_01;
+  D2D1_INTERPOLATION_MODE DVar8;
+  float fVar9;
+  float fVar10;
+  float fVar11;
+  float fVar12;
+  void *unaff_retaddr;
+  undefined8 local_res8;
+  longlong local_res10;
+  undefined8 local_c8;
+  undefined8 uStack_c0;
+  undefined1 local_b8;
+  CDrawListBitmap local_b0 [16];
+  undefined1 local_a0;
+  float local_98 [5];
+  undefined4 local_84;
+  float local_80;
+  float local_7c;
+  undefined4 local_78;
+  
+  this_01 = *(CDrawingContext **)param_1;
+  this_00 = CDrawingContext::GetCurrentVisual(this_01);
+  pCVar7 = CVisual::GetBackdropVisualImage(this_00,*(CVisualTreePath **)(this_01 + 0x1f20));
+  fVar9 = *(float *)(pCVar7 + 0x850);
+  fVar10 = *(float *)(pCVar7 + 0x854);
+  fVar1 = *(float *)(pCVar7 + 0x858);
+  fVar2 = *(float *)(pCVar7 + 0x85c);
+  iVar3 = PixelAlign(fVar9,0);
+  fVar11 = (float)iVar3;
+  iVar3 = PixelAlign(fVar10,0);
+  fVar12 = (float)iVar3;
+  iVar3 = PixelAlign((fVar1 - fVar9) + fVar9,1);
+  iVar4 = PixelAlign((fVar2 - fVar10) + fVar10,1);
+  local_98[0] = (float)iVar3 - fVar11;
+  local_98[4] = (float)iVar4 - fVar12;
+  fVar9 = local_98[0];
+  fVar10 = local_98[4];
+  DVar8 = 0;
+  if ((this[0x6c] == (CCompositionMagnifierBrush)0x0) &&
+     (fVar1 = *(float *)(this + 0x68), DVar8 = 0, 1.0 < fVar1)) {
+    fVar9 = local_98[0] * fVar1;
+    DVar8 = 1;
+    fVar10 = local_98[4] * fVar1;
+  }
+  local_98[1] = 0.0;
+  local_98[2] = 0.0;
+  local_7c = fVar12 / *(float *)(pCVar7 + 0x7c);
+  local_98[3] = 0.0;
+  local_84 = 0;
+  local_78 = 0x3f800000;
+  local_98[0] = local_98[0] / (fVar9 * *(float *)(pCVar7 + 0x78));
+  local_98[4] = local_98[4] / (*(float *)(pCVar7 + 0x7c) * fVar10);
+  local_80 = fVar11 / *(float *)(pCVar7 + 0x78);
+  local_res10 = 0;
+  CDrawListBitmap::CDrawListBitmap
+            (local_b0,(IBitmapResource *)
+                      (-(ulonglong)(pCVar7 != (CBackdropVisualImage *)0x0) &
+                      (ulonglong)(pCVar7 + 0x48)));
+  uStack_c0 = 0;
+  local_c8 = &local_res10;
+  local_a0 = 1;
+  local_b8 = 1;
+  EVar5 = InterpolationMode::FromD2D1InterpolationMode(DVar8);
+  local_res8._0_3_ = CONCAT21(0x101,(char)EVar5);
+  lVar6 = CSurfaceDrawListBrush::CreateWithTextureTransform
+                    (local_b0,&local_res8,local_98,&uStack_c0);
+  wil::details::
+  out_param_t<std::unique_ptr<CSurfaceDrawListBrush,std::default_delete<CSurfaceDrawListBrush>_>_>::
+  ~out_param_t<std::unique_ptr<CSurfaceDrawListBrush,std::default_delete<CSurfaceDrawListBrush>_>_>
+            ((out_param_t<std::unique_ptr<CSurfaceDrawListBrush,std::default_delete<CSurfaceDrawListBrush>_>_>
+              *)&local_c8);
+  if (lVar6 < 0) {
+    wil::details::in1diag3::Return_Hr
+              (unaff_retaddr,0x226,
+               "onecoreuap\\windows\\dwm\\dwmcore\\resources\\compositionmagnifierbrush.cpp",lVar6);
+  }
+  else {
+    local_c8 = (longlong *)CONCAT44(fVar12,fVar11);
+    uStack_c0 = CONCAT44((float)iVar4,(float)iVar3);
+    *(longlong **)(local_res10 + 0x78) = local_c8;
+    *(undefined8 *)(local_res10 + 0x80) = uStack_c0;
+    CBrushDrawListGenerator::Reset(param_1);
+    local_res8 = local_res10;
+    local_res10 = 0;
+    CBrushDrawListGenerator::AttachInput
+              (param_1,0,
+               (unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_> *)&local_res8);
+    std::unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_>::
+    ~unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_>
+              ((unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_> *)&local_res8);
+    lVar6 = 0;
+  }
+  CDrawListBitmap::~CDrawListBitmap(local_b0);
+  std::unique_ptr<CSurfaceDrawListBrush,std::default_delete<CSurfaceDrawListBrush>_>::
+  ~unique_ptr<CSurfaceDrawListBrush,std::default_delete<CSurfaceDrawListBrush>_>
+            ((unique_ptr<CSurfaceDrawListBrush,std::default_delete<CSurfaceDrawListBrush>_> *)
+             &local_res10);
+  return lVar6;
+}
+

```


## CCompositionMagnifierBrush::GetBrushParameters

### Function Meta



|Key|dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|name|GetBrushParameters|
|fullname|CCompositionMagnifierBrush::GetBrushParameters|
|refcount|3|
|length|93|
|called|CCompositionMagnifierBrush::GetBVIBrushParameters<br>CCompositionMagnifierBrush::GetLayeredBrushParameters<br>wil::details::in1diag3::Return_Hr|
|calling||
|paramcount|2|
|address|180298920|
|sig|long __thiscall GetBrushParameters(CCompositionMagnifierBrush * this, CBrushDrawListGenerator * param_1)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CCompositionMagnifierBrush::GetBrushParameters
+++ CCompositionMagnifierBrush::GetBrushParameters
@@ -0,0 +1,35 @@
+
+/* public: virtual long __cdecl CCompositionMagnifierBrush::GetBrushParameters(class
+   CBrushDrawListGenerator * __ptr64)const __ptr64 */
+
+long __thiscall
+CCompositionMagnifierBrush::GetBrushParameters
+          (CCompositionMagnifierBrush *this,CBrushDrawListGenerator *param_1)
+
+{
+  long lVar1;
+  uint uVar2;
+  void *unaff_retaddr;
+  
+  if (((this[0x6c] == (CCompositionMagnifierBrush)0x0) &&
+      (this[0x6d] == (CCompositionMagnifierBrush)0x0)) &&
+     (this[0xcd] == (CCompositionMagnifierBrush)0x0)) {
+    lVar1 = GetBVIBrushParameters(this,param_1);
+    if (-1 < lVar1) {
+      return 0;
+    }
+    uVar2 = 0xcd;
+  }
+  else {
+    lVar1 = GetLayeredBrushParameters(this,param_1);
+    if (-1 < lVar1) {
+      return 0;
+    }
+    uVar2 = 0xc9;
+  }
+  wil::details::in1diag3::Return_Hr
+            (unaff_retaddr,uVar2,
+             "onecoreuap\\windows\\dwm\\dwmcore\\resources\\compositionmagnifierbrush.cpp",lVar1);
+  return lVar1;
+}
+

```


## CComposition::GetCursorVisuals

### Function Meta



|Key|dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|name|GetCursorVisuals|
|fullname|CComposition::GetCursorVisuals|
|refcount|2|
|length|194|
|called|CExcludeVisualReference::GetVisualNoRef<br>gsl::details::extent_type<-1>::extent_type<-1><br>gsl::details::terminate<br>std::vector<CursorVisualData,std::allocator<CursorVisualData>_>::erase|
|calling|CCompositionMagnifierBrush::GetLayeredBrushParameters|
|paramcount|1|
|address|180298984|
|sig|span<CursorVisualData_const_,-1> __thiscall GetCursorVisuals(CComposition * this)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CComposition::GetCursorVisuals
+++ CComposition::GetCursorVisuals
@@ -0,0 +1,44 @@
+
+/* public: class gsl::span<struct CursorVisualData const ,-1> const __cdecl
+   CComposition::GetCursorVisuals(void) __ptr64 */
+
+void __thiscall CComposition::GetCursorVisuals(CComposition *this)
+
+{
+  CExcludeVisualReference *pCVar1;
+  longlong lVar2;
+  CVisual *pCVar3;
+  longlong *plVar4;
+  longlong *in_RDX;
+  CExcludeVisualReference *this_00;
+  extent_type<_1> local_res8 [8];
+  __uint64 local_28 [2];
+  
+  this_00 = *(CExcludeVisualReference **)(this + 0x1800);
+  while (pCVar1 = *(CExcludeVisualReference **)(this + 0x17f8), this_00 != pCVar1) {
+    this_00 = this_00 + -0x20;
+    pCVar3 = CExcludeVisualReference::GetVisualNoRef(this_00);
+    if (pCVar3 == (CVisual *)0x0) {
+      std::vector<CursorVisualData,std::allocator<CursorVisualData>_>::erase
+                ((vector<CursorVisualData,std::allocator<CursorVisualData>_> *)(this + 0x17f8),
+                 local_res8,this_00);
+    }
+  }
+  gsl::details::extent_type<-1>::extent_type<_1>
+            ((extent_type<_1> *)local_28,*(longlong *)(this + 0x1800) - (longlong)pCVar1 >> 5);
+  if ((local_28[0] != 0xffffffffffffffff) &&
+     ((pCVar1 != (CExcludeVisualReference *)0x0 || (local_28[0] == 0)))) {
+    plVar4 = (longlong *)gsl::details::extent_type<-1>::extent_type<_1>(local_res8,local_28[0]);
+    lVar2 = *plVar4;
+    *in_RDX = lVar2;
+    in_RDX[1] = (longlong)pCVar1;
+    if ((lVar2 != -1) && ((pCVar1 != (CExcludeVisualReference *)0x0 || (lVar2 == 0)))) {
+      return;
+    }
+                    /* WARNING: Subroutine does not return */
+    gsl::details::terminate();
+  }
+                    /* WARNING: Subroutine does not return */
+  gsl::details::terminate();
+}
+

```


## CCompositionMagnifierBrush::GetLayeredBrushParameters

### Function Meta



|Key|dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|name|GetLayeredBrushParameters|
|fullname|CCompositionMagnifierBrush::GetLayeredBrushParameters|
|refcount|2|
|length|3783|
|called|<details><summary>Expand for full list:<br>CBrush::CreateLayoutGeometryDrawListBrush<br>CBrushDrawListGenerator::AttachInput<br>CBrushDrawListGenerator::CBrushDrawListGenerator<br>CBrushDrawListGenerator::GenerateDrawList<br>CBrushDrawListGenerator::Reset<br>CBrushDrawListGenerator::~CBrushDrawListGenerator<br>CComposition::GetCursorVisuals<br>CCompositionMagnifierBrush::GetBVIBrushParameters<br>CDrawListBitmap::CDrawListBitmap<br>CDrawListBitmap::~CDrawListBitmap<br>CDrawListCache::InternalCreate</summary>CDrawListCache::Render<br>CDrawListCache::Update<br>CDrawListEntryBuilder::CDrawListEntryBuilder<br>CDrawListEntryBuilder::~CDrawListEntryBuilder<br>CDrawingContext::DrawSubVisualTree<br>CDrawingContext::GetCurrentVisual<br>CDrawingContext::PopLayer<br>CDrawingContext::PopRenderOptionsInternal<br>CDrawingContext::PushOffScreenRenderingLayer<br>CDrawingContext::PushRenderOptionsInternal<br>CDrawingContext::PushResampleLayer<br>CDrawingContext::PushValueColorTransformLayer<br>CExcludeVisualReference::GetVisualNoRef<br>CMILMatrix::Multiply<br>CMILMatrix::Scale<br>CMILMatrix::Translate<br>CSurfaceDrawListBrush::CreateWithContentRect<br>CVisual::GetBackdropVisualImage<br>CVisual::GetWorldTransform<br>CVisualTree::GetRootVisualTree<br>CVisualTree::_IsInTree<br>PixelAlign<br>__chkstk<br>__security_check_cookie<br>_guard_dispatch_icall$thunk$10345483385596137414<br>std::unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_>::~unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_><br>std::unique_ptr<CSurfaceDrawListBrush,std::default_delete<CSurfaceDrawListBrush>_>::~unique_ptr<CSurfaceDrawListBrush,std::default_delete<CSurfaceDrawListBrush>_><br>wil::com_ptr_t<CDrawListCache,wil::err_returncode_policy>::~com_ptr_t<CDrawListCache,wil::err_returncode_policy><br>wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy><br>wil::com_ptr_t<IRenderTargetBitmap,wil::err_returncode_policy>::reset<br>wil::details::in1diag3::Return_Hr<br>wil::details::in1diag3::_FailFast_Hr<br>wil::details::out_param_t<std::unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_>_>::~out_param_t<std::unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_>_><br>wil::details::out_param_t<std::unique_ptr<CSurfaceDrawListBrush,std::default_delete<CSurfaceDrawListBrush>_>_>::~out_param_t<std::unique_ptr<CSurfaceDrawListBrush,std::default_delete<CSurfaceDrawListBrush>_>_></details>|
|calling|CCompositionMagnifierBrush::GetBrushParameters|
|paramcount|2|
|address|180298a50|
|sig|long __thiscall GetLayeredBrushParameters(CCompositionMagnifierBrush * this, CBrushDrawListGenerator * param_1)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CCompositionMagnifierBrush::GetLayeredBrushParameters
+++ CCompositionMagnifierBrush::GetLayeredBrushParameters
@@ -0,0 +1,720 @@
+
+/* WARNING: Function: __chkstk replaced with injection: alloca_probe */
+/* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
+   guard_dispatch_icall */
+/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
+/* private: long __cdecl CCompositionMagnifierBrush::GetLayeredBrushParameters(class
+   CBrushDrawListGenerator * __ptr64)const __ptr64 */
+
+long __thiscall
+CCompositionMagnifierBrush::GetLayeredBrushParameters
+          (CCompositionMagnifierBrush *this,CBrushDrawListGenerator *param_1)
+
+{
+  CDrawingContext *this_00;
+  float fVar1;
+  CExcludeVisualReference *pCVar2;
+  float fVar3;
+  bool bVar4;
+  long lVar5;
+  int iVar6;
+  long lVar7;
+  CVisual *pCVar8;
+  longlong lVar9;
+  CBackdropVisualImage *pCVar10;
+  CVisualTree *this_01;
+  CVisual *pCVar11;
+  TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> *pTVar12;
+  CExcludeVisualReference *this_02;
+  CExcludeVisualReference *pCVar13;
+  void *unaff_retaddr;
+  undefined1 auStackY_14c8 [32];
+  undefined8 local_1498;
+  undefined8 local_1490;
+  undefined2 local_1488;
+  undefined1 local_1486;
+  CVisualTree *local_1478;
+  longlong local_1470;
+  char *local_1468;
+  undefined8 local_1460;
+  undefined1 local_1458;
+  longlong local_1450;
+  undefined4 local_1448;
+  undefined1 local_1444;
+  undefined8 local_1438;
+  undefined8 uStack_1430;
+  undefined4 local_1428;
+  undefined4 uStack_1424;
+  undefined4 uStack_1420;
+  undefined4 uStack_141c;
+  undefined4 uStack_1418;
+  undefined4 uStack_1414;
+  undefined8 uStack_1410;
+  undefined8 uStack_1408;
+  undefined4 local_1400;
+  undefined4 local_13fc;
+  undefined4 uStack_13f8;
+  undefined8 uStack_13f4;
+  undefined4 local_13ec;
+  undefined8 local_13e8;
+  undefined8 uStack_13e0;
+  undefined4 local_13d8;
+  CBrushDrawListGenerator *local_13c8;
+  longlong *local_13c0;
+  undefined8 local_13b8;
+  undefined1 local_13b0;
+  CDrawListBitmap local_13a8 [16];
+  undefined1 local_1398;
+  undefined8 local_1388;
+  undefined8 uStack_1380;
+  undefined8 local_1378;
+  undefined8 uStack_1370;
+  undefined8 local_1368;
+  undefined8 uStack_1360;
+  undefined8 local_1358;
+  undefined8 uStack_1350;
+  undefined4 local_1348;
+  undefined8 local_1338;
+  undefined8 uStack_1330;
+  undefined4 local_1328;
+  undefined4 uStack_1324;
+  undefined8 uStack_1320;
+  undefined8 local_1318;
+  undefined8 uStack_1310;
+  undefined8 local_1308;
+  undefined8 uStack_1300;
+  undefined4 local_12f8;
+  undefined4 local_12dc;
+  undefined1 local_12d8;
+  undefined8 local_12c8;
+  undefined8 uStack_12c0;
+  undefined8 local_12b8;
+  undefined8 uStack_12b0;
+  undefined8 local_12a8;
+  undefined8 uStack_12a0;
+  undefined8 local_1298;
+  undefined8 uStack_1290;
+  undefined4 local_1288;
+  undefined8 local_1278;
+  undefined8 uStack_1270;
+  undefined4 local_1268;
+  undefined4 uStack_1264;
+  CBrushDrawListGenerator local_1248 [80];
+  CDrawListEntryBuilder local_11f8 [4496];
+  ulonglong local_68;
+  
+  local_68 = __security_cookie ^ (ulonglong)auStackY_14c8;
+  this_00 = *(CDrawingContext **)param_1;
+  local_1498 = *(CExcludeVisualReference **)(param_1 + 0x2c);
+  local_1450 = 0;
+  local_13c8 = param_1;
+  pCVar8 = CDrawingContext::GetCurrentVisual(this_00);
+  wil::com_ptr_t<IRenderTargetBitmap,wil::err_returncode_policy>::reset
+            ((com_ptr_t<IRenderTargetBitmap,wil::err_returncode_policy> *)&local_1450);
+  lVar9 = (**(code **)(*(longlong *)(this_00 + 0x18) + 0x10))(this_00 + 0x18);
+  local_1460 = (CExcludeVisualReference *)CONCAT44(local_1460._4_4_,0x24);
+  local_1468 = "DWM Magnifier Brush Resample Surface";
+  pTVar12 = (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> *)
+            &local_1468;
+  lVar5 = CDrawingContext::PushOffScreenRenderingLayer
+                    (this_00,pTVar12,&local_1498,*(undefined4 *)(lVar9 + 8));
+  pCVar2 = local_1498;
+  if (lVar5 < 0) {
+    wil::details::in1diag3::Return_Hr
+              (unaff_retaddr,0xe4,
+               "onecoreuap\\windows\\dwm\\dwmcore\\resources\\compositionmagnifierbrush.cpp",lVar5);
+  }
+  else {
+    fVar3 = local_1498._4_4_;
+    fVar1 = (float)local_1498;
+    if (this[0x6c] != (CCompositionMagnifierBrush)0x0) {
+      local_1448 = *(undefined4 *)(this + 0x68);
+      local_1444 = 1;
+      local_1478 = (CVisualTree *)0x3f8000003f800000;
+      local_1468 = (char *)0x0;
+      iVar6 = PixelAlign((float)local_1498,1);
+      local_1460 = (CExcludeVisualReference *)CONCAT44(local_1460._4_4_,iVar6);
+      iVar6 = PixelAlign(fVar3,1);
+      local_1460 = (CExcludeVisualReference *)CONCAT44(iVar6,(undefined4)local_1460);
+      pTVar12 = (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
+                 *)pCVar8;
+      lVar5 = CDrawingContext::PushResampleLayer
+                        (this_00,pCVar8,2,(D2D_POINTANDSIZE_L *)&local_1468,
+                         (D2D_SIZE_F *)&local_1478,(optional<float> *)&local_1448);
+      if (lVar5 < 0) {
+        wil::details::in1diag3::Return_Hr
+                  (unaff_retaddr,0x101,
+                   "onecoreuap\\windows\\dwm\\dwmcore\\resources\\compositionmagnifierbrush.cpp",
+                   lVar5);
+        lVar7 = CDrawingContext::PopLayer(this_00);
+        if (lVar7 < 0) {
+                    /* WARNING: Subroutine does not return */
+          wil::details::in1diag3::_FailFast_Hr
+                    (unaff_retaddr,0xe7,
+                     "onecoreuap\\windows\\dwm\\dwmcore\\resources\\compositionmagnifierbrush.cpp",
+                     lVar7);
+        }
+        goto LAB_180299512;
+      }
+    }
+    if (this[0x6d] != (CCompositionMagnifierBrush)0x0) {
+      local_1438 = *(undefined8 *)(this + 0x70);
+      uStack_1430 = *(undefined8 *)(this + 0x78);
+      local_1428 = 0;
+      uStack_1414 = 0;
+      local_1400 = 0;
+      local_13ec = 0;
+      local_13d8 = 0x3f800000;
+      uStack_1424 = (undefined4)*(undefined8 *)(this + 0x80);
+      uStack_1420 = (undefined4)((ulonglong)*(undefined8 *)(this + 0x80) >> 0x20);
+      uStack_141c = (undefined4)*(undefined8 *)(this + 0x88);
+      uStack_1418 = (undefined4)((ulonglong)*(undefined8 *)(this + 0x88) >> 0x20);
+      uStack_1410 = *(undefined8 *)(this + 0x90);
+      uStack_1408 = *(undefined8 *)(this + 0x98);
+      uStack_13f4 = *(undefined8 *)(this + 0xa8);
+      local_13fc = (undefined4)*(undefined8 *)(this + 0xa0);
+      uStack_13f8 = (undefined4)((ulonglong)*(undefined8 *)(this + 0xa0) >> 0x20);
+      local_13e8 = *(undefined8 *)(this + 0xb0);
+      uStack_13e0 = *(undefined8 *)(this + 0xb8);
+      lVar5 = CDrawingContext::PushValueColorTransformLayer
+                        (this_00,pTVar12,(MilColorTransform *)&local_1438);
+      if (lVar5 < 0) {
+        wil::details::in1diag3::Return_Hr
+                  (unaff_retaddr,0x118,
+                   "onecoreuap\\windows\\dwm\\dwmcore\\resources\\compositionmagnifierbrush.cpp",
+                   lVar5);
+        if ((this[0x6c] != (CCompositionMagnifierBrush)0x0) &&
+           (lVar7 = CDrawingContext::PopLayer(this_00), lVar7 < 0)) {
+                    /* WARNING: Subroutine does not return */
+          wil::details::in1diag3::_FailFast_Hr
+                    (unaff_retaddr,0x107,
+                     "onecoreuap\\windows\\dwm\\dwmcore\\resources\\compositionmagnifierbrush.cpp",
+                     lVar7);
+        }
+        lVar7 = CDrawingContext::PopLayer(this_00);
+        if (lVar7 < 0) {
+                    /* WARNING: Subroutine does not return */
+          wil::details::in1diag3::_FailFast_Hr
+                    (unaff_retaddr,0xe7,
+                     "onecoreuap\\windows\\dwm\\dwmcore\\resources\\compositionmagnifierbrush.cpp",
+                     lVar7);
+        }
+        goto LAB_180299512;
+      }
+    }
+    local_1468 = (char *)&local_1490;
+    local_1490 = 0;
+    local_1460 = (CExcludeVisualReference *)0x0;
+    local_1458 = 1;
+    lVar5 = CBrush::CreateLayoutGeometryDrawListBrush
+                      ((CBrush *)this,this_00,(D2D_SIZE_F *)&local_1498,
+                       (CDrawListBrush **)&local_1460);
+    wil::details::out_param_t<std::unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_>_>
+    ::~out_param_t<std::unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_>_>
+              ((out_param_t<std::unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_>_> *
+               )&local_1468);
+    if (lVar5 < 0) {
+      wil::details::in1diag3::Return_Hr
+                (unaff_retaddr,0x126,
+                 "onecoreuap\\windows\\dwm\\dwmcore\\resources\\compositionmagnifierbrush.cpp",lVar5
+                );
+      std::unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_>::
+      ~unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_>
+                ((unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_> *)&local_1490);
+      if ((this[0x6d] != (CCompositionMagnifierBrush)0x0) &&
+         (lVar7 = CDrawingContext::PopLayer(this_00), lVar7 < 0)) {
+                    /* WARNING: Subroutine does not return */
+        wil::details::in1diag3::_FailFast_Hr
+                  (unaff_retaddr,0x11e,
+                   "onecoreuap\\windows\\dwm\\dwmcore\\resources\\compositionmagnifierbrush.cpp",
+                   lVar7);
+      }
+      if ((this[0x6c] != (CCompositionMagnifierBrush)0x0) &&
+         (lVar7 = CDrawingContext::PopLayer(this_00), lVar7 < 0)) {
+                    /* WARNING: Subroutine does not return */
+        wil::details::in1diag3::_FailFast_Hr
+                  (unaff_retaddr,0x107,
+                   "onecoreuap\\windows\\dwm\\dwmcore\\resources\\compositionmagnifierbrush.cpp",
+                   lVar7);
+      }
+      lVar7 = CDrawingContext::PopLayer(this_00);
+      if (lVar7 < 0) {
+                    /* WARNING: Subroutine does not return */
+        wil::details::in1diag3::_FailFast_Hr
+                  (unaff_retaddr,0xe7,
+                   "onecoreuap\\windows\\dwm\\dwmcore\\resources\\compositionmagnifierbrush.cpp",
+                   lVar7);
+      }
+    }
+    else {
+      CBrushDrawListGenerator::CBrushDrawListGenerator(local_1248,this_00,(D2D_SIZE_F *)&local_1498)
+      ;
+      lVar5 = GetBVIBrushParameters(this,local_1248);
+      if (lVar5 < 0) {
+        wil::details::in1diag3::Return_Hr
+                  (unaff_retaddr,300,
+                   "onecoreuap\\windows\\dwm\\dwmcore\\resources\\compositionmagnifierbrush.cpp",
+                   lVar5);
+        CBrushDrawListGenerator::~CBrushDrawListGenerator(local_1248);
+        std::unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_>::
+        ~unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_>
+                  ((unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_> *)&local_1490);
+        if ((this[0x6d] != (CCompositionMagnifierBrush)0x0) &&
+           (lVar7 = CDrawingContext::PopLayer(this_00), lVar7 < 0)) {
+                    /* WARNING: Subroutine does not return */
+          wil::details::in1diag3::_FailFast_Hr
+                    (unaff_retaddr,0x11e,
+                     "onecoreuap\\windows\\dwm\\dwmcore\\resources\\compositionmagnifierbrush.cpp",
+                     lVar7);
+        }
+        if ((this[0x6c] != (CCompositionMagnifierBrush)0x0) &&
+           (lVar7 = CDrawingContext::PopLayer(this_00), lVar7 < 0)) {
+                    /* WARNING: Subroutine does not return */
+          wil::details::in1diag3::_FailFast_Hr
+                    (unaff_retaddr,0x107,
+                     "onecoreuap\\windows\\dwm\\dwmcore\\resources\\compositionmagnifierbrush.cpp",
+                     lVar7);
+        }
+        lVar7 = CDrawingContext::PopLayer(this_00);
+        if (lVar7 < 0) {
+                    /* WARNING: Subroutine does not return */
+          wil::details::in1diag3::_FailFast_Hr
+                    (unaff_retaddr,0xe7,
+                     "onecoreuap\\windows\\dwm\\dwmcore\\resources\\compositionmagnifierbrush.cpp",
+                     lVar7);
+        }
+      }
+      else {
+        local_1338 = local_1490;
+        uStack_1330 = 0;
+        local_1328 = 0;
+        local_12dc = 0x101;
+        local_12d8 = 0;
+        CDrawListEntryBuilder::CDrawListEntryBuilder(local_11f8);
+        lVar5 = CBrushDrawListGenerator::GenerateDrawList
+                          (local_1248,(GenerateDrawListProperties *)&local_1338,local_11f8);
+        if (lVar5 < 0) {
+          wil::details::in1diag3::Return_Hr
+                    (unaff_retaddr,0x133,
+                     "onecoreuap\\windows\\dwm\\dwmcore\\resources\\compositionmagnifierbrush.cpp",
+                     lVar5);
+          CDrawListEntryBuilder::~CDrawListEntryBuilder(local_11f8);
+          CBrushDrawListGenerator::~CBrushDrawListGenerator(local_1248);
+          std::unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_>::
+          ~unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_>
+                    ((unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_> *)&local_1490)
+          ;
+          if ((this[0x6d] != (CCompositionMagnifierBrush)0x0) &&
+             (lVar7 = CDrawingContext::PopLayer(this_00), lVar7 < 0)) {
+                    /* WARNING: Subroutine does not return */
+            wil::details::in1diag3::_FailFast_Hr
+                      (unaff_retaddr,0x11e,
+                       "onecoreuap\\windows\\dwm\\dwmcore\\resources\\compositionmagnifierbrush.cpp"
+                       ,lVar7);
+          }
+          if ((this[0x6c] != (CCompositionMagnifierBrush)0x0) &&
+             (lVar7 = CDrawingContext::PopLayer(this_00), lVar7 < 0)) {
+                    /* WARNING: Subroutine does not return */
+            wil::details::in1diag3::_FailFast_Hr
+                      (unaff_retaddr,0x107,
+                       "onecoreuap\\windows\\dwm\\dwmcore\\resources\\compositionmagnifierbrush.cpp"
+                       ,lVar7);
+          }
+          lVar7 = CDrawingContext::PopLayer(this_00);
+          if (lVar7 < 0) {
+                    /* WARNING: Subroutine does not return */
+            wil::details::in1diag3::_FailFast_Hr
+                      (unaff_retaddr,0xe7,
+                       "onecoreuap\\windows\\dwm\\dwmcore\\resources\\compositionmagnifierbrush.cpp"
+                       ,lVar7);
+          }
+        }
+        else {
+          local_1498 = (CExcludeVisualReference *)0x0;
+          lVar5 = CDrawListCache::InternalCreate(true,(CDrawListCache **)&local_1498);
+          if (lVar5 < 0) {
+            wil::details::in1diag3::Return_Hr
+                      (unaff_retaddr,0x136,
+                       "onecoreuap\\windows\\dwm\\dwmcore\\resources\\compositionmagnifierbrush.cpp"
+                       ,lVar5);
+            wil::com_ptr_t<CDrawListCache,wil::err_returncode_policy>::
+            ~com_ptr_t<CDrawListCache,wil::err_returncode_policy>
+                      ((com_ptr_t<CDrawListCache,wil::err_returncode_policy> *)&local_1498);
+            CDrawListEntryBuilder::~CDrawListEntryBuilder(local_11f8);
+            CBrushDrawListGenerator::~CBrushDrawListGenerator(local_1248);
+            std::unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_>::
+            ~unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_>
+                      ((unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_> *)
+                       &local_1490);
+            if ((this[0x6d] != (CCompositionMagnifierBrush)0x0) &&
+               (lVar7 = CDrawingContext::PopLayer(this_00), lVar7 < 0)) {
+                    /* WARNING: Subroutine does not return */
+              wil::details::in1diag3::_FailFast_Hr
+                        (unaff_retaddr,0x11e,
+                         "onecoreuap\\windows\\dwm\\dwmcore\\resources\\compositionmagnifierbrush.cpp"
+                         ,lVar7);
+            }
+            if ((this[0x6c] != (CCompositionMagnifierBrush)0x0) &&
+               (lVar7 = CDrawingContext::PopLayer(this_00), lVar7 < 0)) {
+                    /* WARNING: Subroutine does not return */
+              wil::details::in1diag3::_FailFast_Hr
+                        (unaff_retaddr,0x107,
+                         "onecoreuap\\windows\\dwm\\dwmcore\\resources\\compositionmagnifierbrush.cpp"
+                         ,lVar7);
+            }
+            lVar7 = CDrawingContext::PopLayer(this_00);
+            if (lVar7 < 0) {
+                    /* WARNING: Subroutine does not return */
+              wil::details::in1diag3::_FailFast_Hr
+                        (unaff_retaddr,0xe7,
+                         "onecoreuap\\windows\\dwm\\dwmcore\\resources\\compositionmagnifierbrush.cpp"
+                         ,lVar7);
+            }
+          }
+          else {
+            CDrawListCache::Update((CDrawListCache *)local_1498,this_00,local_11f8);
+            local_12c8 = 0x3f800000;
+            uStack_12c0 = 0;
+            local_12b8 = 0x3f80000000000000;
+            uStack_12b0 = 0;
+            local_12a8 = 0;
+            uStack_12a0 = 0x3f800000;
+            local_1298 = 0;
+            uStack_1290 = 0x3f80000000000000;
+            local_1288 = 0x29aa;
+            lVar5 = CDrawListCache::Render
+                              ((CDrawListCache *)local_1498,this_00,(CMILMatrix *)&local_12c8,1.0,5)
+            ;
+            if (lVar5 < 0) {
+              wil::details::in1diag3::Return_Hr
+                        (unaff_retaddr,0x13e,
+                         "onecoreuap\\windows\\dwm\\dwmcore\\resources\\compositionmagnifierbrush.cpp"
+                         ,lVar5);
+              wil::com_ptr_t<CDrawListCache,wil::err_returncode_policy>::
+              ~com_ptr_t<CDrawListCache,wil::err_returncode_policy>
+                        ((com_ptr_t<CDrawListCache,wil::err_returncode_policy> *)&local_1498);
+              CDrawListEntryBuilder::~CDrawListEntryBuilder(local_11f8);
+              CBrushDrawListGenerator::~CBrushDrawListGenerator(local_1248);
+              std::unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_>::
+              ~unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_>
+                        ((unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_> *)
+                         &local_1490);
+              if ((this[0x6d] != (CCompositionMagnifierBrush)0x0) &&
+                 (lVar7 = CDrawingContext::PopLayer(this_00), lVar7 < 0)) {
+                    /* WARNING: Subroutine does not return */
+                wil::details::in1diag3::_FailFast_Hr
+                          (unaff_retaddr,0x11e,
+                           "onecoreuap\\windows\\dwm\\dwmcore\\resources\\compositionmagnifierbrush.cpp"
+                           ,lVar7);
+              }
+              if ((this[0x6c] != (CCompositionMagnifierBrush)0x0) &&
+                 (lVar7 = CDrawingContext::PopLayer(this_00), lVar7 < 0)) {
+                    /* WARNING: Subroutine does not return */
+                wil::details::in1diag3::_FailFast_Hr
+                          (unaff_retaddr,0x107,
+                           "onecoreuap\\windows\\dwm\\dwmcore\\resources\\compositionmagnifierbrush.cpp"
+                           ,lVar7);
+              }
+              lVar7 = CDrawingContext::PopLayer(this_00);
+              if (lVar7 < 0) {
+                    /* WARNING: Subroutine does not return */
+                wil::details::in1diag3::_FailFast_Hr
+                          (unaff_retaddr,0xe7,
+                           "onecoreuap\\windows\\dwm\\dwmcore\\resources\\compositionmagnifierbrush.cpp"
+                           ,lVar7);
+              }
+            }
+            else {
+              if (this[0xcd] != (CCompositionMagnifierBrush)0x0) {
+                local_1388 = 0x3f800000;
+                uStack_1380 = 0;
+                local_1378 = 0x3f80000000000000;
+                uStack_1370 = 0;
+                local_1368 = 0;
+                uStack_1360 = 0x3f800000;
+                local_1358 = 0;
+                uStack_1350 = 0x3f80000000000000;
+                local_1348 = 0x29aa;
+                pCVar10 = CVisual::GetBackdropVisualImage
+                                    (pCVar8,*(CVisualTreePath **)(this_00 + 0x1f20));
+                CMILMatrix::Translate
+                          ((CMILMatrix *)&local_1388,
+                           -*(float *)(pCVar10 + 0x60) - *(float *)(pCVar10 + 0x850),
+                           -*(float *)(pCVar10 + 100) - *(float *)(pCVar10 + 0x854));
+                local_1278 = 6;
+                uStack_1270 = CONCAT44(uStack_1270._4_4_,1);
+                if (this[0x6c] == (CCompositionMagnifierBrush)0x0) {
+                  CMILMatrix::Scale((CMILMatrix *)&local_1388,*(float *)(this + 0x68),
+                                    *(float *)(this + 0x68),0.0);
+                  local_1278 = CONCAT44(1,(undefined4)local_1278);
+                }
+                lVar5 = CDrawingContext::PushRenderOptionsInternal
+                                  (this_00,(CVisual *)0x0,(MilRenderOptions *)&local_1278,true);
+                if (lVar5 < 0) {
+                  wil::details::in1diag3::Return_Hr
+                            (unaff_retaddr,0x15a,
+                             "onecoreuap\\windows\\dwm\\dwmcore\\resources\\compositionmagnifierbrush.cpp"
+                             ,lVar5);
+                  wil::com_ptr_t<CDrawListCache,wil::err_returncode_policy>::
+                  ~com_ptr_t<CDrawListCache,wil::err_returncode_policy>
+                            ((com_ptr_t<CDrawListCache,wil::err_returncode_policy> *)&local_1498);
+                  CDrawListEntryBuilder::~CDrawListEntryBuilder(local_11f8);
+                  CBrushDrawListGenerator::~CBrushDrawListGenerator(local_1248);
+                  std::unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_>::
+                  ~unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_>
+                            ((unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_> *)
+                             &local_1490);
+                  if ((this[0x6d] != (CCompositionMagnifierBrush)0x0) &&
+                     (lVar7 = CDrawingContext::PopLayer(this_00), lVar7 < 0)) {
+                    /* WARNING: Subroutine does not return */
+                    wil::details::in1diag3::_FailFast_Hr
+                              (unaff_retaddr,0x11e,
+                               "onecoreuap\\windows\\dwm\\dwmcore\\resources\\compositionmagnifierbrush.cpp"
+                               ,lVar7);
+                  }
+                  if ((this[0x6c] != (CCompositionMagnifierBrush)0x0) &&
+                     (lVar7 = CDrawingContext::PopLayer(this_00), lVar7 < 0)) {
+                    /* WARNING: Subroutine does not return */
+                    wil::details::in1diag3::_FailFast_Hr
+                              (unaff_retaddr,0x107,
+                               "onecoreuap\\windows\\dwm\\dwmcore\\resources\\compositionmagnifierbrush.cpp"
+                               ,lVar7);
+                  }
+                  lVar7 = CDrawingContext::PopLayer(this_00);
+                  if (lVar7 < 0) {
+                    /* WARNING: Subroutine does not return */
+                    wil::details::in1diag3::_FailFast_Hr
+                              (unaff_retaddr,0xe7,
+                               "onecoreuap\\windows\\dwm\\dwmcore\\resources\\compositionmagnifierbrush.cpp"
+                               ,lVar7);
+                  }
+                  goto LAB_180299512;
+                }
+                CComposition::GetCursorVisuals(*(CComposition **)(this + 0x18));
+                this_01 = CVisualTree::GetRootVisualTree(*(CVisualTree **)(this_00 + 0x1f08));
+                pCVar13 = local_1460 + (longlong)local_1468 * 0x20;
+                for (this_02 = local_1460; this_02 != pCVar13; this_02 = this_02 + 0x20) {
+                  pCVar8 = CExcludeVisualReference::GetVisualNoRef(this_02);
+                  bVar4 = CVisualTree::_IsInTree(this_01,pCVar8,0);
+                  if (bVar4) {
+                    local_1478 = *(CVisualTree **)(this_02 + 0x18);
+                    local_12f8 = 0;
+                    lVar5 = CVisual::GetWorldTransform
+                                      (pCVar8,this_01,3,(CMILMatrix *)&local_1338,(bool *)0x0,
+                                       (CMILMatrix *)0x0);
+                    if (lVar5 < 0) {
+                      wil::details::in1diag3::Return_Hr
+                                (unaff_retaddr,0x170,
+                                 "onecoreuap\\windows\\dwm\\dwmcore\\resources\\compositionmagnifierbrush.cpp"
+                                 ,lVar5);
+                      CDrawingContext::PopRenderOptionsInternal(this_00,true);
+                      wil::com_ptr_t<CDrawListCache,wil::err_returncode_policy>::
+                      ~com_ptr_t<CDrawListCache,wil::err_returncode_policy>
+                                ((com_ptr_t<CDrawListCache,wil::err_returncode_policy> *)&local_1498
+                                );
+                      CDrawListEntryBuilder::~CDrawListEntryBuilder(local_11f8);
+                      CBrushDrawListGenerator::~CBrushDrawListGenerator(local_1248);
+                      std::unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_>::
+                      ~unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_>
+                                ((unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_> *)
+                                 &local_1490);
+                      if ((this[0x6d] != (CCompositionMagnifierBrush)0x0) &&
+                         (lVar7 = CDrawingContext::PopLayer(this_00), lVar7 < 0)) {
+                    /* WARNING: Subroutine does not return */
+                        wil::details::in1diag3::_FailFast_Hr
+                                  (unaff_retaddr,0x11e,
+                                   "onecoreuap\\windows\\dwm\\dwmcore\\resources\\compositionmagnifierbrush.cpp"
+                                   ,lVar7);
+                      }
+                      if ((this[0x6c] != (CCompositionMagnifierBrush)0x0) &&
+                         (lVar7 = CDrawingContext::PopLayer(this_00), lVar7 < 0)) {
+                    /* WARNING: Subroutine does not return */
+                        wil::details::in1diag3::_FailFast_Hr
+                                  (unaff_retaddr,0x107,
+                                   "onecoreuap\\windows\\dwm\\dwmcore\\resources\\compositionmagnifierbrush.cpp"
+                                   ,lVar7);
+                      }
+                      lVar7 = CDrawingContext::PopLayer(this_00);
+                      if (lVar7 < 0) {
+                    /* WARNING: Subroutine does not return */
+                        wil::details::in1diag3::_FailFast_Hr
+                                  (unaff_retaddr,0xe7,
+                                   "onecoreuap\\windows\\dwm\\dwmcore\\resources\\compositionmagnifierbrush.cpp"
+                                   ,lVar7);
+                      }
+                      goto LAB_180299512;
+                    }
+                    local_1438 = local_1338;
+                    uStack_1430 = uStack_1330;
+                    local_1428 = local_1328;
+                    uStack_1424 = uStack_1324;
+                    uStack_1420 = (undefined4)uStack_1320;
+                    uStack_141c = (undefined4)((ulonglong)uStack_1320 >> 0x20);
+                    uStack_1418 = (undefined4)local_1318;
+                    uStack_1414 = (undefined4)((ulonglong)local_1318 >> 0x20);
+                    uStack_1410 = uStack_1310;
+                    uStack_1408 = local_1308;
+                    local_1400 = (undefined4)uStack_1300;
+                    local_13fc = (undefined4)((ulonglong)uStack_1300 >> 0x20);
+                    uStack_13f8 = local_12f8;
+                    CMILMatrix::Multiply((CMILMatrix *)&local_1438,(CMILMatrix *)&local_1388);
+                    pCVar11 = (CVisual *)(local_1478 + 0x50);
+                    if (pCVar8 != *(CVisual **)(local_1478 + 0x48)) {
+                      pCVar11 = pCVar8 + 0x98;
+                    }
+                    local_1278 = *(undefined8 *)pCVar11;
+                    uStack_1270 = *(undefined8 *)(pCVar11 + 8);
+                    local_1268 = *(undefined4 *)(pCVar11 + 0x10);
+                    uStack_1264 = *(undefined4 *)(pCVar11 + 0x14);
+                    lVar5 = CDrawingContext::DrawSubVisualTree
+                                      (this_00,local_1478,
+                                       (TMil3DRect<float,TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,D3D_RECT_F,MilPointAndSizeF,RectUniqueness::NotNeeded>
+                                        *)&local_1278,(CMILMatrix *)&local_1438);
+                    if (lVar5 < 0) {
+                      wil::details::in1diag3::Return_Hr
+                                (unaff_retaddr,0x178,
+                                 "onecoreuap\\windows\\dwm\\dwmcore\\resources\\compositionmagnifierbrush.cpp"
+                                 ,lVar5);
+                      CDrawingContext::PopRenderOptionsInternal(this_00,true);
+                      wil::com_ptr_t<CDrawListCache,wil::err_returncode_policy>::
+                      ~com_ptr_t<CDrawListCache,wil::err_returncode_policy>
+                                ((com_ptr_t<CDrawListCache,wil::err_returncode_policy> *)&local_1498
+                                );
+                      CDrawListEntryBuilder::~CDrawListEntryBuilder(local_11f8);
+                      CBrushDrawListGenerator::~CBrushDrawListGenerator(local_1248);
+                      std::unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_>::
+                      ~unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_>
+                                ((unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_> *)
+                                 &local_1490);
+                      if ((this[0x6d] != (CCompositionMagnifierBrush)0x0) &&
+                         (lVar7 = CDrawingContext::PopLayer(this_00), lVar7 < 0)) {
+                    /* WARNING: Subroutine does not return */
+                        wil::details::in1diag3::_FailFast_Hr
+                                  (unaff_retaddr,0x11e,
+                                   "onecoreuap\\windows\\dwm\\dwmcore\\resources\\compositionmagnifierbrush.cpp"
+                                   ,lVar7);
+                      }
+                      if ((this[0x6c] != (CCompositionMagnifierBrush)0x0) &&
+                         (lVar7 = CDrawingContext::PopLayer(this_00), lVar7 < 0)) {
+                    /* WARNING: Subroutine does not return */
+                        wil::details::in1diag3::_FailFast_Hr
+                                  (unaff_retaddr,0x107,
+                                   "onecoreuap\\windows\\dwm\\dwmcore\\resources\\compositionmagnifierbrush.cpp"
+                                   ,lVar7);
+                      }
+                      lVar7 = CDrawingContext::PopLayer(this_00);
+                      if (lVar7 < 0) {
+                    /* WARNING: Subroutine does not return */
+                        wil::details::in1diag3::_FailFast_Hr
+                                  (unaff_retaddr,0xe7,
+                                   "onecoreuap\\windows\\dwm\\dwmcore\\resources\\compositionmagnifierbrush.cpp"
+                                   ,lVar7);
+                      }
+                      goto LAB_180299512;
+                    }
+                  }
+                }
+                CDrawingContext::PopRenderOptionsInternal(this_00,true);
+                param_1 = local_13c8;
+              }
+              wil::com_ptr_t<CDrawListCache,wil::err_returncode_policy>::
+              ~com_ptr_t<CDrawListCache,wil::err_returncode_policy>
+                        ((com_ptr_t<CDrawListCache,wil::err_returncode_policy> *)&local_1498);
+              CDrawListEntryBuilder::~CDrawListEntryBuilder(local_11f8);
+              CBrushDrawListGenerator::~CBrushDrawListGenerator(local_1248);
+              std::unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_>::
+              ~unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_>
+                        ((unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_> *)
+                         &local_1490);
+              if ((this[0x6d] != (CCompositionMagnifierBrush)0x0) &&
+                 (lVar5 = CDrawingContext::PopLayer(this_00), lVar5 < 0)) {
+                    /* WARNING: Subroutine does not return */
+                wil::details::in1diag3::_FailFast_Hr
+                          (unaff_retaddr,0x11e,
+                           "onecoreuap\\windows\\dwm\\dwmcore\\resources\\compositionmagnifierbrush.cpp"
+                           ,lVar5);
+              }
+              if ((this[0x6c] != (CCompositionMagnifierBrush)0x0) &&
+                 (lVar5 = CDrawingContext::PopLayer(this_00), lVar5 < 0)) {
+                    /* WARNING: Subroutine does not return */
+                wil::details::in1diag3::_FailFast_Hr
+                          (unaff_retaddr,0x107,
+                           "onecoreuap\\windows\\dwm\\dwmcore\\resources\\compositionmagnifierbrush.cpp"
+                           ,lVar5);
+              }
+              lVar5 = CDrawingContext::PopLayer(this_00);
+              if (lVar5 < 0) {
+                    /* WARNING: Subroutine does not return */
+                wil::details::in1diag3::_FailFast_Hr
+                          (unaff_retaddr,0xe7,
+                           "onecoreuap\\windows\\dwm\\dwmcore\\resources\\compositionmagnifierbrush.cpp"
+                           ,lVar5);
+              }
+              local_1470 = 0;
+              CDrawListBitmap::CDrawListBitmap
+                        (local_13a8,
+                         (IBitmapRealization *)(-(ulonglong)(local_1450 != 0) & local_1450 + 8U));
+              local_13c0 = &local_1470;
+              local_1468 = (char *)0x0;
+              local_1460 = pCVar2;
+              local_1398 = 1;
+              local_13b8 = 0;
+              local_13b0 = 1;
+              local_1488 = 0x100;
+              local_1486 = 1;
+              lVar5 = CSurfaceDrawListBrush::CreateWithContentRect
+                                (local_13a8,&local_1488,&local_1468,&local_13b8);
+              wil::details::
+              out_param_t<std::unique_ptr<CSurfaceDrawListBrush,std::default_delete<CSurfaceDrawListBrush>_>_>
+              ::
+              ~out_param_t<std::unique_ptr<CSurfaceDrawListBrush,std::default_delete<CSurfaceDrawListBrush>_>_>
+                        ((out_param_t<std::unique_ptr<CSurfaceDrawListBrush,std::default_delete<CSurfaceDrawListBrush>_>_>
+                          *)&local_13c0);
+              if (-1 < lVar5) {
+                *(undefined8 *)(local_1470 + 0x78) = 0;
+                *(float *)(local_1470 + 0x80) = fVar1;
+                *(float *)(local_1470 + 0x84) = fVar3;
+                CBrushDrawListGenerator::Reset(param_1);
+                local_1478 = (CVisualTree *)local_1470;
+                local_1470 = 0;
+                CBrushDrawListGenerator::AttachInput
+                          (param_1,0,
+                           (unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_> *)
+                           &local_1478);
+                std::unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_>::
+                ~unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_>
+                          ((unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_> *)
+                           &local_1478);
+                CDrawListBitmap::~CDrawListBitmap(local_13a8);
+                std::unique_ptr<CSurfaceDrawListBrush,std::default_delete<CSurfaceDrawListBrush>_>::
+                ~unique_ptr<CSurfaceDrawListBrush,std::default_delete<CSurfaceDrawListBrush>_>
+                          ((unique_ptr<CSurfaceDrawListBrush,std::default_delete<CSurfaceDrawListBrush>_>
+                            *)&local_1470);
+                wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::
+                ~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>
+                          ((com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy> *)&local_1450)
+                ;
+                return 0;
+              }
+              wil::details::in1diag3::Return_Hr
+                        (unaff_retaddr,0x18d,
+                         "onecoreuap\\windows\\dwm\\dwmcore\\resources\\compositionmagnifierbrush.cpp"
+                         ,lVar5);
+              CDrawListBitmap::~CDrawListBitmap(local_13a8);
+              std::unique_ptr<CSurfaceDrawListBrush,std::default_delete<CSurfaceDrawListBrush>_>::
+              ~unique_ptr<CSurfaceDrawListBrush,std::default_delete<CSurfaceDrawListBrush>_>
+                        ((unique_ptr<CSurfaceDrawListBrush,std::default_delete<CSurfaceDrawListBrush>_>
+                          *)&local_1470);
+            }
+          }
+        }
+      }
+    }
+  }
+LAB_180299512:
+  wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::
+  ~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>
+            ((com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy> *)&local_1450);
+  return lVar5;
+}
+

```


## CCompositionMagnifierBrush::HitTest

### Function Meta



|Key|dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|name|HitTest|
|fullname|CCompositionMagnifierBrush::HitTest|
|refcount|3|
|length|64|
|called|Contains|
|calling||
|paramcount|4|
|address|180299940|
|sig|long __thiscall HitTest(CCompositionMagnifierBrush * this, D2D_SIZE_F * param_1, D2D_POINT_2F * param_2, bool * param_3)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CCompositionMagnifierBrush::HitTest
+++ CCompositionMagnifierBrush::HitTest
@@ -0,0 +1,20 @@
+
+/* public: virtual long __cdecl CCompositionMagnifierBrush::HitTest(struct D2D_SIZE_F const &
+   __ptr64,struct D2D_POINT_2F const & __ptr64,bool * __ptr64)const __ptr64 */
+
+long __thiscall
+CCompositionMagnifierBrush::HitTest
+          (CCompositionMagnifierBrush *this,D2D_SIZE_F *param_1,D2D_POINT_2F *param_2,bool *param_3)
+
+{
+  bool bVar1;
+  undefined8 local_18;
+  undefined8 uStack_10;
+  
+  uStack_10 = *(undefined8 *)param_1;
+  local_18 = 0;
+  bVar1 = Contains((D2D_RECT_F *)&local_18,param_2);
+  *param_3 = bVar1;
+  return 0;
+}
+

```


## CCompositionMagnifierBrush::ProcessClearFocusPoint

### Function Meta



|Key|dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|name|ProcessClearFocusPoint|
|fullname|CCompositionMagnifierBrush::ProcessClearFocusPoint|
|refcount|1|
|length|40|
|called|CBrush::NotifyOnChanged|
|calling||
|paramcount|3|
|address|180299988|
|sig|long __thiscall ProcessClearFocusPoint(CCompositionMagnifierBrush * this, CResourceTable * param_1, tagMILCMD_COMPOSITIONMAGNIFIERBRUSH_CLEARFOCUSPOINT * param_2)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CCompositionMagnifierBrush::ProcessClearFocusPoint
+++ CCompositionMagnifierBrush::ProcessClearFocusPoint
@@ -0,0 +1,17 @@
+
+/* public: long __cdecl CCompositionMagnifierBrush::ProcessClearFocusPoint(class CResourceTable *
+   __ptr64,struct tagMILCMD_COMPOSITIONMAGNIFIERBRUSH_CLEARFOCUSPOINT const * __ptr64) __ptr64 */
+
+long __thiscall
+CCompositionMagnifierBrush::ProcessClearFocusPoint
+          (CCompositionMagnifierBrush *this,CResourceTable *param_1,
+          tagMILCMD_COMPOSITIONMAGNIFIERBRUSH_CLEARFOCUSPOINT *param_2)
+
+{
+  if (this[200] != (CCompositionMagnifierBrush)0x0) {
+    this[200] = (CCompositionMagnifierBrush)0x0;
+    CBrush::NotifyOnChanged((CBrush *)this,6,(IUnknown *)this);
+  }
+  return 0;
+}
+

```


## CCompositionMagnifierBrush::ProcessSetColorTransform

### Function Meta



|Key|dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|name|ProcessSetColorTransform|
|fullname|CCompositionMagnifierBrush::ProcessSetColorTransform|
|refcount|1|
|length|974|
|called|CBrush::NotifyOnChanged|
|calling||
|paramcount|3|
|address|1802999b8|
|sig|long __thiscall ProcessSetColorTransform(CCompositionMagnifierBrush * this, CResourceTable * param_1, tagMILCMD_COMPOSITIONMAGNIFIERBRUSH_SETCOLORTRANSFORM * param_2)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CCompositionMagnifierBrush::ProcessSetColorTransform
+++ CCompositionMagnifierBrush::ProcessSetColorTransform
@@ -0,0 +1,79 @@
+
+/* public: long __cdecl CCompositionMagnifierBrush::ProcessSetColorTransform(class CResourceTable *
+   __ptr64,struct tagMILCMD_COMPOSITIONMAGNIFIERBRUSH_SETCOLORTRANSFORM const * __ptr64) __ptr64 */
+
+long __thiscall
+CCompositionMagnifierBrush::ProcessSetColorTransform
+          (CCompositionMagnifierBrush *this,CResourceTable *param_1,
+          tagMILCMD_COMPOSITIONMAGNIFIERBRUSH_SETCOLORTRANSFORM *param_2)
+
+{
+  undefined8 uVar1;
+  CCompositionMagnifierBrush CVar2;
+  
+  if ((((((1.1920929e-06 < ABS(*(float *)(this + 0x70) - *(float *)(param_2 + 8))) ||
+         (1.1920929e-06 < ABS(*(float *)(this + 0x74) - *(float *)(param_2 + 0xc)))) ||
+        (1.1920929e-06 < ABS(*(float *)(this + 0x78) - *(float *)(param_2 + 0x10)))) ||
+       ((1.1920929e-06 < ABS(*(float *)(this + 0x7c) - *(float *)(param_2 + 0x14)) ||
+        (1.1920929e-06 < ABS(*(float *)(this + 0x80) - *(float *)(param_2 + 0x18)))))) ||
+      ((((1.1920929e-06 < ABS(*(float *)(this + 0x84) - *(float *)(param_2 + 0x1c)) ||
+         ((1.1920929e-06 < ABS(*(float *)(this + 0x88) - *(float *)(param_2 + 0x20)) ||
+          (1.1920929e-06 < ABS(*(float *)(this + 0x8c) - *(float *)(param_2 + 0x24)))))) ||
+        (1.1920929e-06 < ABS(*(float *)(this + 0x90) - *(float *)(param_2 + 0x28)))) ||
+       ((((1.1920929e-06 < ABS(*(float *)(this + 0x94) - *(float *)(param_2 + 0x2c)) ||
+          (1.1920929e-06 < ABS(*(float *)(this + 0x98) - *(float *)(param_2 + 0x30)))) ||
+         (1.1920929e-06 < ABS(*(float *)(this + 0x9c) - *(float *)(param_2 + 0x34)))) ||
+        (((1.1920929e-06 < ABS(*(float *)(this + 0xa0) - *(float *)(param_2 + 0x38)) ||
+          (1.1920929e-06 < ABS(*(float *)(this + 0xa4) - *(float *)(param_2 + 0x3c)))) ||
+         ((1.1920929e-06 < ABS(*(float *)(this + 0xa8) - *(float *)(param_2 + 0x40)) ||
+          ((1.1920929e-06 < ABS(*(float *)(this + 0xac) - *(float *)(param_2 + 0x44)) ||
+           (1.1920929e-06 < ABS(*(float *)(this + 0xb0) - *(float *)(param_2 + 0x48)))))))))))))) ||
+     ((1.1920929e-06 < ABS(*(float *)(this + 0xb4) - *(float *)(param_2 + 0x4c)) ||
+      ((1.1920929e-06 < ABS(*(float *)(this + 0xb8) - *(float *)(param_2 + 0x50)) ||
+       (1.1920929e-06 < ABS(*(float *)(this + 0xbc) - *(float *)(param_2 + 0x54)))))))) {
+    uVar1 = *(undefined8 *)(param_2 + 0x10);
+    *(undefined8 *)(this + 0x70) = *(undefined8 *)(param_2 + 8);
+    *(undefined8 *)(this + 0x78) = uVar1;
+    uVar1 = *(undefined8 *)(param_2 + 0x20);
+    *(undefined8 *)(this + 0x80) = *(undefined8 *)(param_2 + 0x18);
+    *(undefined8 *)(this + 0x88) = uVar1;
+    uVar1 = *(undefined8 *)(param_2 + 0x30);
+    *(undefined8 *)(this + 0x90) = *(undefined8 *)(param_2 + 0x28);
+    *(undefined8 *)(this + 0x98) = uVar1;
+    uVar1 = *(undefined8 *)(param_2 + 0x40);
+    *(undefined8 *)(this + 0xa0) = *(undefined8 *)(param_2 + 0x38);
+    *(undefined8 *)(this + 0xa8) = uVar1;
+    uVar1 = *(undefined8 *)(param_2 + 0x50);
+    *(undefined8 *)(this + 0xb0) = *(undefined8 *)(param_2 + 0x48);
+    *(undefined8 *)(this + 0xb8) = uVar1;
+    if (((((1.1920929e-06 <= ABS(*(float *)(this + 0x70) - 1.0)) ||
+          (((1.1920929e-06 <= ABS(*(float *)(this + 0x74)) ||
+            (1.1920929e-06 <= ABS(*(float *)(this + 0x78)))) ||
+           (1.1920929e-06 <= ABS(*(float *)(this + 0x7c)))))) ||
+         (((((1.1920929e-06 <= ABS(*(float *)(this + 0x80)) ||
+             (1.1920929e-06 <= ABS(*(float *)(this + 0x84) - 1.0))) ||
+            (1.1920929e-06 <= ABS(*(float *)(this + 0x88)))) ||
+           ((1.1920929e-06 <= ABS(*(float *)(this + 0x8c)) ||
+            (1.1920929e-06 <= ABS(*(float *)(this + 0x90)))))) ||
+          ((1.1920929e-06 <= ABS(*(float *)(this + 0x94)) ||
+           ((((1.1920929e-06 <= ABS(*(float *)(this + 0x98) - 1.0) ||
+              (1.1920929e-06 <= ABS(*(float *)(this + 0x9c)))) ||
+             (1.1920929e-06 <= ABS(*(float *)(this + 0xa0)))) ||
+            ((1.1920929e-06 <= ABS(*(float *)(this + 0xa4)) ||
+             (1.1920929e-06 <= ABS(*(float *)(this + 0xa8)))))))))))) ||
+        (1.1920929e-06 <= ABS(*(float *)(this + 0xac) - 1.0))) ||
+       (((1.1920929e-06 <= ABS(*(float *)(this + 0xb0)) ||
+         (1.1920929e-06 <= ABS(*(float *)(this + 0xb4)))) ||
+        ((1.1920929e-06 <= ABS(*(float *)(this + 0xb8)) ||
+         (1.1920929e-06 <= ABS(*(float *)(this + 0xbc)))))))) {
+      CVar2 = (CCompositionMagnifierBrush)0x1;
+    }
+    else {
+      CVar2 = (CCompositionMagnifierBrush)0x0;
+    }
+    this[0x6d] = CVar2;
+    CBrush::NotifyOnChanged((CBrush *)this,6,(IUnknown *)this);
+  }
+  return 0;
+}
+

```


## CCompositionMagnifierBrush::ProcessSetFocusPoint

### Function Meta



|Key|dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|name|ProcessSetFocusPoint|
|fullname|CCompositionMagnifierBrush::ProcessSetFocusPoint|
|refcount|1|
|length|146|
|called|CBrush::NotifyOnChanged<br>operator!=|
|calling||
|paramcount|3|
|address|180299d90|
|sig|long __thiscall ProcessSetFocusPoint(CCompositionMagnifierBrush * this, CResourceTable * param_1, tagMILCMD_COMPOSITIONMAGNIFIERBRUSH_SETFOCUSPOINT * param_2)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CCompositionMagnifierBrush::ProcessSetFocusPoint
+++ CCompositionMagnifierBrush::ProcessSetFocusPoint
@@ -0,0 +1,41 @@
+
+/* public: long __cdecl CCompositionMagnifierBrush::ProcessSetFocusPoint(class CResourceTable *
+   __ptr64,struct tagMILCMD_COMPOSITIONMAGNIFIERBRUSH_SETFOCUSPOINT const * __ptr64) __ptr64 */
+
+long __thiscall
+CCompositionMagnifierBrush::ProcessSetFocusPoint
+          (CCompositionMagnifierBrush *this,CResourceTable *param_1,
+          tagMILCMD_COMPOSITIONMAGNIFIERBRUSH_SETFOCUSPOINT *param_2)
+
+{
+  bool bVar1;
+  CCompositionMagnifierBrush *pCVar2;
+  tagMILCMD_COMPOSITIONMAGNIFIERBRUSH_SETFOCUSPOINT *ptVar3;
+  CCompositionMagnifierBrush CVar4;
+  undefined4 local_res8;
+  undefined4 local_resc;
+  CResourceTable *local_res10 [3];
+  
+  CVar4 = (CCompositionMagnifierBrush)0x0;
+  ptVar3 = param_2 + 8;
+  pCVar2 = this + 0xc0;
+  local_res10[0] = param_1;
+  if ((this[200] != (CCompositionMagnifierBrush)0x0) &&
+     (this[200] != (CCompositionMagnifierBrush)0x0)) {
+    local_res10[0] = *(CResourceTable **)ptVar3;
+    local_res8 = *(undefined4 *)pCVar2;
+    local_resc = *(undefined4 *)(this + 0xc4);
+    CVar4 = (CCompositionMagnifierBrush)0x0;
+    bVar1 = operator!=((CMilPoint2F *)&local_res8,(CMilPoint2F *)local_res10);
+    if (!bVar1) {
+      return 0;
+    }
+  }
+  *(undefined8 *)pCVar2 = *(undefined8 *)ptVar3;
+  if (pCVar2[8] == CVar4) {
+    pCVar2[8] = (CCompositionMagnifierBrush)0x1;
+  }
+  CBrush::NotifyOnChanged((CBrush *)this,6,(IUnknown *)this);
+  return 0;
+}
+

```


## CCompositionMagnifierBrush::ProcessSetMagnification

### Function Meta



|Key|dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|name|ProcessSetMagnification|
|fullname|CCompositionMagnifierBrush::ProcessSetMagnification|
|refcount|1|
|length|47|
|called|CBrush::NotifyOnChanged|
|calling||
|paramcount|3|
|address|180299e2c|
|sig|long __thiscall ProcessSetMagnification(CCompositionMagnifierBrush * this, CResourceTable * param_1, tagMILCMD_COMPOSITIONMAGNIFIERBRUSH_SETMAGNIFICATION * param_2)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CCompositionMagnifierBrush::ProcessSetMagnification
+++ CCompositionMagnifierBrush::ProcessSetMagnification
@@ -0,0 +1,17 @@
+
+/* public: long __cdecl CCompositionMagnifierBrush::ProcessSetMagnification(class CResourceTable *
+   __ptr64,struct tagMILCMD_COMPOSITIONMAGNIFIERBRUSH_SETMAGNIFICATION const * __ptr64) __ptr64 */
+
+long __thiscall
+CCompositionMagnifierBrush::ProcessSetMagnification
+          (CCompositionMagnifierBrush *this,CResourceTable *param_1,
+          tagMILCMD_COMPOSITIONMAGNIFIERBRUSH_SETMAGNIFICATION *param_2)
+
+{
+  if (*(float *)(this + 0x68) != *(float *)(param_2 + 8)) {
+    *(float *)(this + 0x68) = *(float *)(param_2 + 8);
+    CBrush::NotifyOnChanged((CBrush *)this,6,(IUnknown *)this);
+  }
+  return 0;
+}
+

```


## CCompositionMagnifierBrush::ProcessSetShowCursor

### Function Meta



|Key|dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|name|ProcessSetShowCursor|
|fullname|CCompositionMagnifierBrush::ProcessSetShowCursor|
|refcount|1|
|length|56|
|called|CBrush::NotifyOnChanged<br>CCompositionMagnifierBrush::UpdateCursorListenerRegistration|
|calling||
|paramcount|3|
|address|180299e64|
|sig|long __thiscall ProcessSetShowCursor(CCompositionMagnifierBrush * this, CResourceTable * param_1, tagMILCMD_COMPOSITIONMAGNIFIERBRUSH_SETSHOWCURSOR * param_2)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CCompositionMagnifierBrush::ProcessSetShowCursor
+++ CCompositionMagnifierBrush::ProcessSetShowCursor
@@ -0,0 +1,18 @@
+
+/* public: long __cdecl CCompositionMagnifierBrush::ProcessSetShowCursor(class CResourceTable *
+   __ptr64,struct tagMILCMD_COMPOSITIONMAGNIFIERBRUSH_SETSHOWCURSOR const * __ptr64) __ptr64 */
+
+long __thiscall
+CCompositionMagnifierBrush::ProcessSetShowCursor
+          (CCompositionMagnifierBrush *this,CResourceTable *param_1,
+          tagMILCMD_COMPOSITIONMAGNIFIERBRUSH_SETSHOWCURSOR *param_2)
+
+{
+  if (this[0xcd] != *(CCompositionMagnifierBrush *)(param_2 + 8)) {
+    this[0xcd] = *(CCompositionMagnifierBrush *)(param_2 + 8);
+    UpdateCursorListenerRegistration(this);
+    CBrush::NotifyOnChanged((CBrush *)this,6,(IUnknown *)this);
+  }
+  return 0;
+}
+

```


## CCompositionMagnifierBrush::ProcessSetTrackCursor

### Function Meta



|Key|dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|name|ProcessSetTrackCursor|
|fullname|CCompositionMagnifierBrush::ProcessSetTrackCursor|
|refcount|1|
|length|56|
|called|CBrush::NotifyOnChanged<br>CCompositionMagnifierBrush::UpdateCursorListenerRegistration|
|calling||
|paramcount|3|
|address|180299ea4|
|sig|long __thiscall ProcessSetTrackCursor(CCompositionMagnifierBrush * this, CResourceTable * param_1, tagMILCMD_COMPOSITIONMAGNIFIERBRUSH_SETTRACKCURSOR * param_2)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CCompositionMagnifierBrush::ProcessSetTrackCursor
+++ CCompositionMagnifierBrush::ProcessSetTrackCursor
@@ -0,0 +1,18 @@
+
+/* public: long __cdecl CCompositionMagnifierBrush::ProcessSetTrackCursor(class CResourceTable *
+   __ptr64,struct tagMILCMD_COMPOSITIONMAGNIFIERBRUSH_SETTRACKCURSOR const * __ptr64) __ptr64 */
+
+long __thiscall
+CCompositionMagnifierBrush::ProcessSetTrackCursor
+          (CCompositionMagnifierBrush *this,CResourceTable *param_1,
+          tagMILCMD_COMPOSITIONMAGNIFIERBRUSH_SETTRACKCURSOR *param_2)
+
+{
+  if (this[0xcc] != *(CCompositionMagnifierBrush *)(param_2 + 8)) {
+    this[0xcc] = *(CCompositionMagnifierBrush *)(param_2 + 8);
+    UpdateCursorListenerRegistration(this);
+    CBrush::NotifyOnChanged((CBrush *)this,6,(IUnknown *)this);
+  }
+  return 0;
+}
+

```


## CCompositionMagnifierBrush::ProcessSetUseSmoothing

### Function Meta



|Key|dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|name|ProcessSetUseSmoothing|
|fullname|CCompositionMagnifierBrush::ProcessSetUseSmoothing|
|refcount|1|
|length|36|
|called|CBrush::NotifyOnChanged|
|calling||
|paramcount|3|
|address|180299ee4|
|sig|long __thiscall ProcessSetUseSmoothing(CCompositionMagnifierBrush * this, CResourceTable * param_1, tagMILCMD_COMPOSITIONMAGNIFIERBRUSH_SETUSESMOOTHING * param_2)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CCompositionMagnifierBrush::ProcessSetUseSmoothing
+++ CCompositionMagnifierBrush::ProcessSetUseSmoothing
@@ -0,0 +1,17 @@
+
+/* public: long __cdecl CCompositionMagnifierBrush::ProcessSetUseSmoothing(class CResourceTable *
+   __ptr64,struct tagMILCMD_COMPOSITIONMAGNIFIERBRUSH_SETUSESMOOTHING const * __ptr64) __ptr64 */
+
+long __thiscall
+CCompositionMagnifierBrush::ProcessSetUseSmoothing
+          (CCompositionMagnifierBrush *this,CResourceTable *param_1,
+          tagMILCMD_COMPOSITIONMAGNIFIERBRUSH_SETUSESMOOTHING *param_2)
+
+{
+  if (this[0x6c] != *(CCompositionMagnifierBrush *)(param_2 + 8)) {
+    this[0x6c] = *(CCompositionMagnifierBrush *)(param_2 + 8);
+    CBrush::NotifyOnChanged((CBrush *)this,6,(IUnknown *)this);
+  }
+  return 0;
+}
+

```


## CCompositionMagnifierBrush::UnregisterCursorListener

### Function Meta



|Key|dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|name|UnregisterCursorListener|
|fullname|CCompositionMagnifierBrush::UnregisterCursorListener|
|refcount|3|
|length|33|
|called|CComposition::RemoveCursorVisualListener|
|calling|CCompositionMagnifierBrush::UpdateCursorListenerRegistration<br>CCompositionMagnifierBrush::~CCompositionMagnifierBrush|
|paramcount|1|
|address|180299f10|
|sig|void __thiscall UnregisterCursorListener(CCompositionMagnifierBrush * this)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CCompositionMagnifierBrush::UnregisterCursorListener
+++ CCompositionMagnifierBrush::UnregisterCursorListener
@@ -0,0 +1,14 @@
+
+/* private: void __cdecl CCompositionMagnifierBrush::UnregisterCursorListener(void) __ptr64 */
+
+void __thiscall
+CCompositionMagnifierBrush::UnregisterCursorListener(CCompositionMagnifierBrush *this)
+
+{
+  if (this[0xce] != (CCompositionMagnifierBrush)0x0) {
+    this[0xce] = (CCompositionMagnifierBrush)0x0;
+    CComposition::RemoveCursorVisualListener((CComposition *)this,(CResource *)this);
+  }
+  return;
+}
+

```


## CCompositionMagnifierBrush::UpdateCursorListenerRegistration

### Function Meta



|Key|dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|name|UpdateCursorListenerRegistration|
|fullname|CCompositionMagnifierBrush::UpdateCursorListenerRegistration|
|refcount|3|
|length|77|
|called|CComposition::AddCursorVisualListener<br>CCompositionMagnifierBrush::UnregisterCursorListener|
|calling|CCompositionMagnifierBrush::ProcessSetShowCursor<br>CCompositionMagnifierBrush::ProcessSetTrackCursor|
|paramcount|1|
|address|180299f38|
|sig|void __thiscall UpdateCursorListenerRegistration(CCompositionMagnifierBrush * this)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CCompositionMagnifierBrush::UpdateCursorListenerRegistration
+++ CCompositionMagnifierBrush::UpdateCursorListenerRegistration
@@ -0,0 +1,28 @@
+
+/* private: void __cdecl CCompositionMagnifierBrush::UpdateCursorListenerRegistration(void) __ptr64
+    */
+
+void __thiscall
+CCompositionMagnifierBrush::UpdateCursorListenerRegistration(CCompositionMagnifierBrush *this)
+
+{
+  CCompositionMagnifierBrush CVar1;
+  
+  if ((this[0xcd] == (CCompositionMagnifierBrush)0x0) &&
+     (this[0xcc] == (CCompositionMagnifierBrush)0x0)) {
+    CVar1 = (CCompositionMagnifierBrush)0x0;
+  }
+  else {
+    CVar1 = (CCompositionMagnifierBrush)0x1;
+  }
+  if (CVar1 != this[0xce]) {
+    if (CVar1 != (CCompositionMagnifierBrush)0x0) {
+      CComposition::AddCursorVisualListener((CComposition *)this,(CResource *)this);
+      this[0xce] = (CCompositionMagnifierBrush)0x1;
+      return;
+    }
+    UnregisterCursorListener(this);
+  }
+  return;
+}
+

```


## std::_Sort_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_39668c2dc6e40fe158f11373301c566a>_>_>

### Function Meta



|Key|dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|name|_Sort_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_39668c2dc6e40fe158f11373301c566a>_>_>|
|fullname|std::_Sort_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_39668c2dc6e40fe158f11373301c566a>_>_>|
|refcount|4|
|length|241|
|called|std::_Insertion_sort_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_39668c2dc6e40fe158f11373301c566a>_>_><br>std::_Make_heap_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_39668c2dc6e40fe158f11373301c566a>_>_><br>std::_Partition_by_median_guess_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_39668c2dc6e40fe158f11373301c566a>_>_><br>std::_Sort_heap_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_39668c2dc6e40fe158f11373301c566a>_>_><br>std::_Sort_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_39668c2dc6e40fe158f11373301c566a>_>_>|
|calling|CCursorState::SortShapeCache<br>std::_Sort_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_39668c2dc6e40fe158f11373301c566a>_>_>|
|paramcount|0|
|address|1802b47dc|
|sig|undefined _Sort_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_39668c2dc6e40fe158f11373301c566a>_>_>(void)|
|sym_type|Function|
|sym_source|IMPORTED|
|external|False|


```diff
--- std::_Sort_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_39668c2dc6e40fe158f11373301c566a>_>_>
+++ std::_Sort_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_39668c2dc6e40fe158f11373301c566a>_>_>
@@ -0,0 +1,41 @@
+
+void std::
+     _Sort_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_39668c2dc6e40fe158f11373301c566a>_>_>
+               (longlong param_1,longlong param_2,longlong param_3,undefined8 param_4)
+
+{
+  ulonglong uVar1;
+  longlong local_18;
+  longlong local_10;
+  
+  uVar1 = param_2 - param_1;
+  while( true ) {
+    if ((longlong)(uVar1 & 0xfffffffffffffff0) < 0x201) {
+      _Insertion_sort_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_39668c2dc6e40fe158f11373301c566a>_>_>
+                (param_1,param_2,param_4);
+      return;
+    }
+    if (param_3 < 1) break;
+    _Partition_by_median_guess_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_39668c2dc6e40fe158f11373301c566a>_>_>
+              (&local_18,param_1,param_2,param_4);
+    param_3 = (param_3 >> 1) + (param_3 >> 2);
+    if ((longlong)(local_18 - param_1 & 0xfffffffffffffff0U) <
+        (longlong)(param_2 - local_10 & 0xfffffffffffffff0U)) {
+      _Sort_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_39668c2dc6e40fe158f11373301c566a>_>_>
+                (param_1,local_18,param_3,param_4);
+      param_1 = local_10;
+    }
+    else {
+      _Sort_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_39668c2dc6e40fe158f11373301c566a>_>_>
+                (local_10,param_2,param_3,param_4);
+      param_2 = local_18;
+    }
+    uVar1 = param_2 - param_1;
+  }
+  _Make_heap_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_39668c2dc6e40fe158f11373301c566a>_>_>
+            (param_1,param_2,param_4);
+  _Sort_heap_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_39668c2dc6e40fe158f11373301c566a>_>_>
+            (param_1,param_2,param_4);
+  return;
+}
+

```


## std::shared_ptr<CCursorState::ShapeData>::shared_ptr<CCursorState::ShapeData>

### Function Meta



|Key|dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|name|shared_ptr<CCursorState::ShapeData>|
|fullname|std::shared_ptr<CCursorState::ShapeData>::shared_ptr<CCursorState::ShapeData>|
|refcount|3|
|length|13|
|called||
|calling|CCursorState::CCursorState<br>CCursorState::ClearShape|
|paramcount|2|
|address|1802b4ac8|
|sig|undefined __thiscall shared_ptr<CCursorState::ShapeData>(shared_ptr<CCursorState::ShapeData> * this, std::nullptr_t param_1)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- std::shared_ptr<CCursorState::ShapeData>::shared_ptr<CCursorState::ShapeData>
+++ std::shared_ptr<CCursorState::ShapeData>::shared_ptr<CCursorState::ShapeData>
@@ -0,0 +1,14 @@
+
+/* public: __cdecl std::shared_ptr<class CCursorState::ShapeData>::shared_ptr<class
+   CCursorState::ShapeData>(std::nullptr_t) __ptr64 */
+
+shared_ptr<CCursorState::ShapeData> * __thiscall
+std::shared_ptr<CCursorState::ShapeData>::shared_ptr<CCursorState::ShapeData>
+          (shared_ptr<CCursorState::ShapeData> *this)
+
+{
+  *(undefined8 *)this = 0;
+  *(undefined8 *)(this + 8) = 0;
+  return this;
+}
+

```


## std::vector<std::shared_ptr<CCursorState::ShapeData>,std::allocator<std::shared_ptr<CCursorState::ShapeData>_>_>::~vector<std::shared_ptr<CCursorState::ShapeData>,std::allocator<std::shared_ptr<CCursorState::ShapeData>_>_>

### Function Meta



|Key|dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|name|~vector<std::shared_ptr<CCursorState::ShapeData>,std::allocator<std::shared_ptr<CCursorState::ShapeData>_>_>|
|fullname|std::vector<std::shared_ptr<CCursorState::ShapeData>,std::allocator<std::shared_ptr<CCursorState::ShapeData>_>_>::~vector<std::shared_ptr<CCursorState::ShapeData>,std::allocator<std::shared_ptr<CCursorState::ShapeData>_>_>|
|refcount|2|
|length|65|
|called|std::_Deallocate<16,0><br>std::_Destroy_range<std::allocator<std::shared_ptr<CCursorState::ShapeData>_>_>|
|calling|CCursorState::~CCursorState|
|paramcount|1|
|address|1802b4d40|
|sig|void __thiscall ~vector<std::shared_ptr<CCursorState::ShapeData>,std::allocator<std::shared_ptr<CCursorState::ShapeData>_>_>(vector<std::shared_ptr<CCursorState::ShapeData>,std::allocator<std::shared_ptr<CCursorState::ShapeData>_>_> * this)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- std::vector<std::shared_ptr<CCursorState::ShapeData>,std::allocator<std::shared_ptr<CCursorState::ShapeData>_>_>::~vector<std::shared_ptr<CCursorState::ShapeData>,std::allocator<std::shared_ptr<CCursorState::ShapeData>_>_>
+++ std::vector<std::shared_ptr<CCursorState::ShapeData>,std::allocator<std::shared_ptr<CCursorState::ShapeData>_>_>::~vector<std::shared_ptr<CCursorState::ShapeData>,std::allocator<std::shared_ptr<CCursorState::ShapeData>_>_>
@@ -0,0 +1,30 @@
+
+/* public: __cdecl std::vector<class std::shared_ptr<class CCursorState::ShapeData>,class
+   std::allocator<class std::shared_ptr<class CCursorState::ShapeData> > >::~vector<class
+   std::shared_ptr<class CCursorState::ShapeData>,class std::allocator<class std::shared_ptr<class
+   CCursorState::ShapeData> > >(void) __ptr64 */
+
+void __thiscall
+std::
+vector<std::shared_ptr<CCursorState::ShapeData>,std::allocator<std::shared_ptr<CCursorState::ShapeData>_>_>
+::
+~vector<std::shared_ptr<CCursorState::ShapeData>,std::allocator<std::shared_ptr<CCursorState::ShapeData>_>_>
+          (vector<std::shared_ptr<CCursorState::ShapeData>,std::allocator<std::shared_ptr<CCursorState::ShapeData>_>_>
+           *this)
+
+{
+  allocator<std::shared_ptr<CCursorState::ShapeData>_> *in_R8;
+  
+  if (*(shared_ptr<CCursorState::ShapeData> **)this != (shared_ptr<CCursorState::ShapeData> *)0x0) {
+    _Destroy_range<std::allocator<std::shared_ptr<CCursorState::ShapeData>_>_>
+              (*(shared_ptr<CCursorState::ShapeData> **)this,
+               *(shared_ptr<class_CCursorState::ShapeData> **)(this + 8),in_R8);
+    _Deallocate<16,0>(*(void **)this,
+                      *(longlong *)(this + 0x10) - *(longlong *)this & 0xfffffffffffffff0);
+    *(undefined8 *)this = 0;
+    *(undefined8 *)(this + 8) = 0;
+    *(undefined8 *)(this + 0x10) = 0;
+  }
+  return;
+}
+

```


## std::vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_>::~vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_>

### Function Meta



|Key|dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|name|~vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_>|
|fullname|std::vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_>::~vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_>|
|refcount|2|
|length|87|
|called|std::_Deallocate<16,0><br>std::_Destroy_range<std::allocator<CCursorState::MonitorData>_>|
|calling|CCursorState::~CCursorState|
|paramcount|1|
|address|1802b4d88|
|sig|void __thiscall ~vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_>(vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_> * this)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- std::vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_>::~vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_>
+++ std::vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_>::~vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_>
@@ -0,0 +1,24 @@
+
+/* public: __cdecl std::vector<class CCursorState::MonitorData,class std::allocator<class
+   CCursorState::MonitorData> >::~vector<class CCursorState::MonitorData,class std::allocator<class
+   CCursorState::MonitorData> >(void) __ptr64 */
+
+void __thiscall
+std::vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_>::
+~vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_>
+          (vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_> *this)
+
+{
+  allocator<CCursorState::MonitorData> *in_R8;
+  
+  if (*(MonitorData **)this != (MonitorData *)0x0) {
+    _Destroy_range<std::allocator<CCursorState::MonitorData>_>
+              (*(MonitorData **)this,*(MonitorData **)(this + 8),in_R8);
+    _Deallocate<16,0>(*(void **)this,(*(longlong *)(this + 0x10) - *(longlong *)this >> 5) << 5);
+    *(undefined8 *)this = 0;
+    *(undefined8 *)(this + 8) = 0;
+    *(undefined8 *)(this + 0x10) = 0;
+  }
+  return;
+}
+

```


## CCursorState::MonitorData::CalcShapeRects

### Function Meta



|Key|dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|name|CalcShapeRects|
|fullname|CCursorState::MonitorData::CalcShapeRects|
|refcount|3|
|length|329|
|called|CMILMatrix::Transform2DBoundsHelper<0><br>TMilRect<int,tagRECT,D2D_POINTANDSIZE_L,RectUniqueness::_CMilRectL_>::IntersectUnsafe<br>__security_check_cookie|
|calling|CCursorState::SetPosition<br>CCursorState::UpdateHardwareCursor|
|paramcount|4|
|address|1802b55d4|
|sig|bool __thiscall CalcShapeRects(MonitorData * this, D2D_POINT_2F * param_1, TMilRect_<int,tagRECT,D2D_POINTANDSIZE_L,Mil3DRectL,RectUniqueness::_CMilRectL_> * param_2, TMilRect_<int,tagRECT,D2D_POINTANDSIZE_L,Mil3DRectL,RectUniqueness::_CMilRectL_> * param_3)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CCursorState::MonitorData::CalcShapeRects
+++ CCursorState::MonitorData::CalcShapeRects
@@ -0,0 +1,51 @@
+
+/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
+/* public: bool __cdecl CCursorState::MonitorData::CalcShapeRects(struct D2D_POINT_2F const &
+   __ptr64,class TMilRect_<int,struct tagRECT,struct D2D_POINTANDSIZE_L,struct Mil3DRectL,struct
+   RectUniqueness::_CMilRectL_> * __ptr64,class TMilRect_<int,struct tagRECT,struct
+   D2D_POINTANDSIZE_L,struct Mil3DRectL,struct RectUniqueness::_CMilRectL_> * __ptr64)const __ptr64
+    */
+
+bool __thiscall
+CCursorState::MonitorData::CalcShapeRects
+          (MonitorData *this,D2D_POINT_2F *param_1,
+          TMilRect_<int,tagRECT,D2D_POINTANDSIZE_L,Mil3DRectL,RectUniqueness::_CMilRectL_> *param_2,
+          TMilRect_<int,tagRECT,D2D_POINTANDSIZE_L,Mil3DRectL,RectUniqueness::_CMilRectL_> *param_3)
+
+{
+  bool bVar1;
+  int iVar2;
+  int iVar3;
+  undefined1 auStack_58 [32];
+  float local_38;
+  float local_30;
+  float fStack_2c;
+  float fStack_28;
+  float fStack_24;
+  ulonglong local_20;
+  
+  local_20 = __security_cookie ^ (ulonglong)auStack_58;
+  local_30 = *(float *)(this + 0x60) + *(float *)param_1;
+  fStack_28 = *(float *)(this + 0x68) + *(float *)param_1;
+  fStack_2c = *(float *)(this + 100) + *(float *)(param_1 + 4);
+  fStack_24 = *(float *)(this + 0x6c) + *(float *)(param_1 + 4);
+  CMILMatrix::Transform2DBoundsHelper<0>
+            ((CMILMatrix *)(this + 0xc),(D2D_RECT_F *)&local_30,(D2D_RECT_F *)&local_30);
+  iVar2 = ((int)(local_30 + 6291456.0) << 10) >> 0xb;
+  *(int *)param_2 = iVar2;
+  iVar3 = ((int)(fStack_2c + 6291456.0) << 10) >> 0xb;
+  *(int *)(param_2 + 4) = iVar3;
+  *(int *)(param_2 + 8) = (((int)((fStack_28 - local_30) + 6291456.0) << 10) >> 0xb) + iVar2;
+  local_38 = (fStack_24 - fStack_2c) + 6291456.0;
+  *(int *)(param_2 + 0xc) = (((int)local_38 << 10) >> 0xb) + iVar3;
+  *(undefined4 *)param_3 = *(undefined4 *)(this + 0x50);
+  *(undefined4 *)(param_3 + 4) = *(undefined4 *)(this + 0x54);
+  *(undefined4 *)(param_3 + 8) = *(undefined4 *)(this + 0x58);
+  *(undefined4 *)(param_3 + 0xc) = *(undefined4 *)(this + 0x5c);
+  bVar1 = TMilRect<int,tagRECT,D2D_POINTANDSIZE_L,RectUniqueness::_CMilRectL_>::IntersectUnsafe
+                    ((TMilRect<int,tagRECT,D2D_POINTANDSIZE_L,RectUniqueness::_CMilRectL_> *)param_3
+                     ,(TMilRect<int,struct_tagRECT,struct_D2D_POINTANDSIZE_L,struct_RectUniqueness::_CMilRectL_>
+                       *)param_2);
+  return bVar1;
+}
+

```


## CCursorState::EnsureMonitorData

### Function Meta



|Key|dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|name|EnsureMonitorData|
|fullname|CCursorState::EnsureMonitorData|
|refcount|2|
|length|920|
|called|<details><summary>Expand for full list:<br>API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::EnterCriticalSection<br>API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::LeaveCriticalSection<br>CCursorState::FindMonitorData<br>CCursorState::ForceSoftwareShape<br>CCursorState::MonitorData::MonitorData<br>CCursorState::TryGetShape<br>CMILMatrix::GetRotation<br>CMILMatrix::Multiply<br>CMILMatrix::SetRotation<br>CMILMatrix::Transform2DBoundsHelper<0><br>__security_check_cookie</summary>std::_Ref_count_base::_Decref<br>std::shared_ptr<CCursorState::ShapeData>::operator=<br>std::vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_>::_Emplace_reallocate<CCursorState::MonitorData></details>|
|calling|COverlayContext::UpdateHardwareCursor|
|paramcount|6|
|address|1802b5c28|
|sig|bool __thiscall EnsureMonitorData(CCursorState * this, _LUID param_1, uint param_2, TMilRect<unsigned_int,MilRectU,Mil3DRectU,RectUniqueness::NotNeeded> * param_3, bool param_4, CMILMatrix * param_5)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CCursorState::EnsureMonitorData
+++ CCursorState::EnsureMonitorData
@@ -0,0 +1,186 @@
+
+/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
+/* public: bool __cdecl CCursorState::EnsureMonitorData(struct _LUID,unsigned int,class
+   TMilRect<unsigned int,struct MilRectU,struct Mil3DRectU,struct RectUniqueness::NotNeeded> const &
+   __ptr64,bool,class CMILMatrix const & __ptr64) __ptr64 */
+
+bool __thiscall
+CCursorState::EnsureMonitorData
+          (CCursorState *this,_LUID param_1,uint param_2,
+          TMilRect<unsigned_int,MilRectU,Mil3DRectU,RectUniqueness::NotNeeded> *param_3,bool param_4
+          ,CMILMatrix *param_5)
+
+{
+  undefined8 uVar1;
+  undefined8 uVar2;
+  DXGI_MODE_ROTATION DVar3;
+  shared_ptr<class_CCursorState::ShapeData> *psVar4;
+  int iVar5;
+  CMILMatrix *this_00;
+  int iVar6;
+  MonitorData *pMVar7;
+  bool bVar8;
+  undefined1 auStack_1e8 [32];
+  CCursorState local_1c8;
+  undefined8 local_1b8;
+  undefined4 local_1b0;
+  float local_1a8;
+  undefined8 local_198;
+  undefined8 uStack_190;
+  undefined8 local_188;
+  undefined8 uStack_180;
+  undefined8 local_178;
+  undefined8 uStack_170;
+  undefined8 local_168;
+  undefined8 uStack_160;
+  undefined4 local_158;
+  CMILMatrix local_148 [64];
+  undefined4 local_108;
+  float local_f8 [2];
+  undefined8 uStack_f0;
+  _LUID local_e8;
+  uint local_e0;
+  undefined8 local_9c;
+  undefined8 local_94;
+  undefined4 local_8c;
+  undefined8 local_88;
+  undefined8 uStack_80;
+  undefined8 local_78;
+  _Ref_count_base *p_Stack_70;
+  undefined8 local_5c;
+  undefined4 local_54;
+  undefined4 local_50;
+  undefined1 local_4c;
+  ulonglong local_48;
+  
+  local_48 = __security_cookie ^ (ulonglong)auStack_1e8;
+  bVar8 = false;
+  EnterCriticalSection((LPCRITICAL_SECTION)&g_CursorManager);
+  FindMonitorData(this,(_LUID)&local_1b8,param_1.LowPart);
+  pMVar7 = local_1b8;
+  if (local_1b8 == *(MonitorData **)(this + 0x60)) {
+    pMVar7 = *(MonitorData **)(this + 0x60);
+    local_9c = 0;
+    local_94 = 0;
+    local_8c = 0;
+    local_88 = 0;
+    uStack_80 = 0;
+    local_78 = 0;
+    p_Stack_70 = (_Ref_count_base *)0x0;
+    local_5c = 0;
+    local_54 = 0;
+    local_50 = 2;
+    local_4c = 0;
+    local_e8 = param_1;
+    local_e0 = param_2;
+    if (pMVar7 == *(MonitorData **)(this + 0x68)) {
+      std::vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_>::
+      _Emplace_reallocate<CCursorState::MonitorData>
+                ((vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_> *)
+                 (this + 0x58),pMVar7,(MonitorData *)&local_e8);
+    }
+    else {
+      MonitorData::MonitorData(pMVar7,(MonitorData *)&local_e8);
+      *(longlong *)(this + 0x60) = *(longlong *)(this + 0x60) + 0xa0;
+    }
+    if (p_Stack_70 != (_Ref_count_base *)0x0) {
+      std::_Ref_count_base::_Decref(p_Stack_70);
+    }
+    bVar8 = true;
+    pMVar7 = (MonitorData *)(*(longlong *)(this + 0x60) + -0xa0);
+  }
+  DVar3 = 0;
+  uVar1 = *(undefined8 *)(param_5 + 8);
+  *(undefined8 *)(pMVar7 + 0xc) = *(undefined8 *)param_5;
+  *(undefined8 *)(pMVar7 + 0x14) = uVar1;
+  uVar1 = *(undefined8 *)(param_5 + 0x18);
+  *(undefined8 *)(pMVar7 + 0x1c) = *(undefined8 *)(param_5 + 0x10);
+  *(undefined8 *)(pMVar7 + 0x24) = uVar1;
+  uVar1 = *(undefined8 *)(param_5 + 0x28);
+  *(undefined8 *)(pMVar7 + 0x2c) = *(undefined8 *)(param_5 + 0x20);
+  *(undefined8 *)(pMVar7 + 0x34) = uVar1;
+  uVar1 = *(undefined8 *)(param_5 + 0x38);
+  *(undefined8 *)(pMVar7 + 0x3c) = *(undefined8 *)(param_5 + 0x30);
+  *(undefined8 *)(pMVar7 + 0x44) = uVar1;
+  *(undefined4 *)(pMVar7 + 0x4c) = *(undefined4 *)(param_5 + 0x40);
+  uVar1 = *(undefined8 *)param_3;
+  uVar2 = *(undefined8 *)(param_3 + 8);
+  pMVar7[0x9c] = (MonitorData)param_4;
+  *(undefined8 *)(pMVar7 + 0x50) = uVar1;
+  *(undefined8 *)(pMVar7 + 0x58) = uVar2;
+  uVar1 = *(undefined8 *)(this + 0x88);
+  *(undefined8 *)(pMVar7 + 0x60) = *(undefined8 *)(this + 0x80);
+  *(undefined8 *)(pMVar7 + 0x68) = uVar1;
+  if (*(longlong *)(this + 0xb0) == 0) {
+    if (*(longlong *)(pMVar7 + 0x70) != 0) {
+      local_f8[0] = 0.0;
+      local_f8[1] = 0.0;
+      uStack_f0 = (_Ref_count_base *)0x0;
+      std::shared_ptr<CCursorState::ShapeData>::operator=
+                ((shared_ptr<CCursorState::ShapeData> *)(pMVar7 + 0x70),
+                 (shared_ptr<class_CCursorState::ShapeData> *)local_f8);
+      if (uStack_f0 != (_Ref_count_base *)0x0) {
+        std::_Ref_count_base::_Decref(uStack_f0);
+      }
+      bVar8 = true;
+    }
+    local_1b8 = (MonitorData *)0x0;
+    *(undefined4 *)(pMVar7 + 0x94) = *(undefined4 *)(this + 0xf8);
+    *(undefined8 *)(pMVar7 + 0x84) = 0;
+  }
+  else {
+    local_188 = *(undefined8 *)(param_5 + 0x10);
+    uStack_180 = *(undefined8 *)(param_5 + 0x18);
+    local_198 = *(undefined8 *)param_5;
+    uStack_190 = *(undefined8 *)(param_5 + 8);
+    local_158 = *(undefined4 *)(param_5 + 0x40);
+    local_168 = *(undefined8 *)(param_5 + 0x30);
+    uStack_160 = *(undefined8 *)(param_5 + 0x38);
+    local_178 = *(undefined8 *)(param_5 + 0x20);
+    uStack_170 = *(undefined8 *)(param_5 + 0x28);
+    if (1.1920929e-06 <= ABS(*(float *)(this + 0xc0))) {
+      local_1b8 = (MonitorData *)0x0;
+      local_108 = 0;
+      local_1b0 = 0x3f800000;
+      CMILMatrix::SetRotation(local_148,(float3 *)&local_1b8,*(float *)(this + 0xc0));
+      CMILMatrix::Multiply((CMILMatrix *)&local_198,local_148);
+    }
+    this_00 = (CMILMatrix *)&local_198;
+    DVar3 = CMILMatrix::GetRotation(this_00);
+    if (DVar3 == 0) {
+      if (0 < *(int *)(pMVar7 + 0x98)) {
+        ForceSoftwareShape((CCursorState *)this_00,pMVar7);
+      }
+      *(undefined4 *)(pMVar7 + 0x94) = 0;
+      goto LAB_1802b5f80;
+    }
+    local_f8[0] = 0.0;
+    local_f8[1] = 0.0;
+    uStack_f0 = (_Ref_count_base *)0x0;
+    CMILMatrix::Transform2DBoundsHelper<0>
+              ((CMILMatrix *)&local_198,(D2D_RECT_F *)(this + 0x80),(D2D_RECT_F *)local_f8);
+    iVar5 = ((int)(((float)uStack_f0 - local_f8[0]) + 6291456.0) << 10) >> 0xb;
+    local_1a8 = (uStack_f0._4_4_ - local_f8[1]) + 6291456.0;
+    iVar6 = ((int)local_1a8 << 10) >> 0xb;
+    local_1b8 = (MonitorData *)CONCAT44(iVar6,iVar5);
+    if ((((*(int *)(pMVar7 + 0x94) == *(int *)(this + 0xf8)) && (*(int *)(pMVar7 + 0x84) == iVar5))
+        && (*(int *)(pMVar7 + 0x88) == iVar6)) && (*(DXGI_MODE_ROTATION *)(pMVar7 + 0x80) == DVar3))
+    goto LAB_1802b5f80;
+    local_1c8 = this[0x71];
+    psVar4 = (shared_ptr<class_CCursorState::ShapeData> *)
+             TryGetShape(this,(D2D_SIZE_U *)local_f8,(DXGI_MODE_ROTATION)&local_1b8,SUB41(DVar3,0));
+    std::shared_ptr<CCursorState::ShapeData>::operator=
+              ((shared_ptr<CCursorState::ShapeData> *)(pMVar7 + 0x70),psVar4);
+    if (uStack_f0 != (_Ref_count_base *)0x0) {
+      std::_Ref_count_base::_Decref(uStack_f0);
+    }
+    bVar8 = true;
+    *(undefined4 *)(pMVar7 + 0x94) = *(undefined4 *)(this + 0xf8);
+    *(MonitorData **)(pMVar7 + 0x84) = local_1b8;
+  }
+  *(DXGI_MODE_ROTATION *)(pMVar7 + 0x80) = DVar3;
+LAB_1802b5f80:
+  LeaveCriticalSection((LPCRITICAL_SECTION)&g_CursorManager);
+  return bVar8;
+}
+

```


## CCursorState::ForceSoftwareShape

### Function Meta



|Key|dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|name|ForceSoftwareShape|
|fullname|CCursorState::ForceSoftwareShape|
|refcount|4|
|length|45|
|called|CCursorState::HideHardwareShape|
|calling|CCursorState::EnsureMonitorData<br>CCursorState::UpdateHardwareCursor<br>COverlayContext::ForceSoftwareCursor|
|paramcount|2|
|address|1802b6290|
|sig|bool __thiscall ForceSoftwareShape(CCursorState * this, MonitorData * param_1)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CCursorState::ForceSoftwareShape
+++ CCursorState::ForceSoftwareShape
@@ -0,0 +1,17 @@
+
+/* private: bool __cdecl CCursorState::ForceSoftwareShape(class CCursorState::MonitorData * __ptr64)
+   __ptr64 */
+
+bool __thiscall CCursorState::ForceSoftwareShape(CCursorState *this,MonitorData *param_1)
+
+{
+  int iVar1;
+  
+  iVar1 = *(int *)(param_1 + 0x98);
+  if (iVar1 != 2) {
+    HideHardwareShape(this,param_1);
+    *(undefined4 *)(param_1 + 0x98) = 2;
+  }
+  return iVar1 != 2;
+}
+

```


## CCursorState::ShapeData::GetNonRotatedSize

### Function Meta



|Key|dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|name|GetNonRotatedSize|
|fullname|CCursorState::ShapeData::GetNonRotatedSize|
|refcount|3|
|length|58|
|called|CCursorState::ShapeData::GetSize|
|calling|<lambda_39668c2dc6e40fe158f11373301c566a>::operator()<std::shared_ptr<CCursorState::ShapeData>,std::shared_ptr<CCursorState::ShapeData>_>|
|paramcount|1|
|address|1802b62c4|
|sig|D2D_SIZE_U __thiscall GetNonRotatedSize(ShapeData * this)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CCursorState::ShapeData::GetNonRotatedSize
+++ CCursorState::ShapeData::GetNonRotatedSize
@@ -0,0 +1,19 @@
+
+/* public: struct D2D_SIZE_U __cdecl CCursorState::ShapeData::GetNonRotatedSize(void)const __ptr64
+    */
+
+void __thiscall CCursorState::ShapeData::GetNonRotatedSize(ShapeData *this)
+
+{
+  undefined4 uVar1;
+  undefined4 *in_RDX;
+  
+  GetSize(this);
+  if ((*(int *)(this + 8) - 2U & 0xfffffffd) == 0) {
+    uVar1 = *in_RDX;
+    *in_RDX = in_RDX[1];
+    in_RDX[1] = uVar1;
+  }
+  return;
+}
+

```


## CCursorState::ShapeData::GetSize

### Function Meta



|Key|dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|name|GetSize|
|fullname|CCursorState::ShapeData::GetSize|
|refcount|6|
|length|38|
|called|_guard_dispatch_icall$thunk$10345483385596137414|
|calling|CCursorState::EnsureCompositionResources<br>CCursorState::ScaleShape<br>CCursorState::ShapeData::GetNonRotatedSize<br>CCursorState::TryGetShape|
|paramcount|1|
|address|1802b6308|
|sig|D2D_SIZE_U __thiscall GetSize(ShapeData * this)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CCursorState::ShapeData::GetSize
+++ CCursorState::ShapeData::GetSize
@@ -0,0 +1,12 @@
+
+/* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
+   guard_dispatch_icall */
+/* public: struct D2D_SIZE_U __cdecl CCursorState::ShapeData::GetSize(void)const __ptr64 */
+
+void __thiscall CCursorState::ShapeData::GetSize(ShapeData *this)
+
+{
+  (**(code **)(*(longlong *)(*(longlong *)(this + 0x10) + 0x78) + 0x20))();
+  return;
+}
+

```


## CCursorState::GetSnappedShapeRect

### Function Meta



|Key|dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|name|GetSnappedShapeRect|
|fullname|CCursorState::GetSnappedShapeRect|
|refcount|2|
|length|75|
|called||
|calling|CCursorVisual::GetContentBounds<br>CCursorVisual::RenderContent|
|paramcount|1|
|address|1802b6338|
|sig|TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> __thiscall GetSnappedShapeRect(CCursorState * this)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CCursorState::GetSnappedShapeRect
+++ CCursorState::GetSnappedShapeRect
@@ -0,0 +1,25 @@
+
+/* public: class TMilRect_<float,struct D2D_RECT_F,struct D3D_RECT_F,struct
+   D2D_POINTANDSIZE_F,struct RectUniqueness::NotNeeded> __cdecl
+   CCursorState::GetSnappedShapeRect(void)const __ptr64 */
+
+void __thiscall CCursorState::GetSnappedShapeRect(CCursorState *this)
+
+{
+  float fVar1;
+  float fVar2;
+  undefined8 uVar3;
+  float *in_RDX;
+  
+  uVar3 = *(undefined8 *)(this + 0x88);
+  fVar1 = *(float *)(this + 0xd8);
+  fVar2 = *(float *)(this + 0xd4);
+  *(undefined8 *)in_RDX = *(undefined8 *)(this + 0x80);
+  *(undefined8 *)(in_RDX + 2) = uVar3;
+  in_RDX[1] = fVar1 + in_RDX[1];
+  in_RDX[3] = fVar1 + in_RDX[3];
+  *in_RDX = fVar2 + *in_RDX;
+  in_RDX[2] = fVar2 + in_RDX[2];
+  return;
+}
+

```


## CCursorState::GetTrailPointOpacity

### Function Meta



|Key|dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|name|GetTrailPointOpacity|
|fullname|CCursorState::GetTrailPointOpacity|
|refcount|1|
|length|101|
|called||
|calling|CCursorVisual::RenderContent|
|paramcount|3|
|address|1802b638c|
|sig|float __thiscall GetTrailPointOpacity(CCursorState * this, TrailPoint * param_1, __uint64 param_2)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CCursorState::GetTrailPointOpacity
+++ CCursorState::GetTrailPointOpacity
@@ -0,0 +1,12 @@
+
+/* public: float __cdecl CCursorState::GetTrailPointOpacity(struct CCursorState::TrailPoint const &
+   __ptr64,unsigned __int64)const __ptr64 */
+
+float __thiscall
+CCursorState::GetTrailPointOpacity(CCursorState *this,TrailPoint *param_1,__uint64 param_2)
+
+{
+  return 1.0 - (float)(param_2 - *(longlong *)param_1) /
+               (float)(ulonglong)(*(longlong *)(this + 0x110) * 10);
+}
+

```


## CCursorState::HasVisibleShape

### Function Meta



|Key|dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|name|HasVisibleShape|
|fullname|CCursorState::HasVisibleShape|
|refcount|3|
|length|12|
|called||
|calling|CCursorVisual::GetContentBounds<br>CCursorVisual::HasNonEmptyContent<br>CCursorVisual::HasVisibleCursor|
|paramcount|1|
|address|1802b63f8|
|sig|bool __thiscall HasVisibleShape(CCursorState * this)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CCursorState::HasVisibleShape
+++ CCursorState::HasVisibleShape
@@ -0,0 +1,9 @@
+
+/* public: bool __cdecl CCursorState::HasVisibleShape(void)const __ptr64 */
+
+bool __thiscall CCursorState::HasVisibleShape(CCursorState *this)
+
+{
+  return *(longlong *)(this + 0xb0) != 0;
+}
+

```


## CCursorState::UpdateHardwareCursor

### Function Meta



|Key|dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|name|UpdateHardwareCursor|
|fullname|CCursorState::UpdateHardwareCursor|
|refcount|2|
|length|236|
|called|CCursorState::ForceSoftwareShape<br>CCursorState::HideHardwareShape<br>CCursorState::MonitorData::CalcShapeRects<br>CCursorState::SetHardwareShapeAndPosition|
|calling|COverlayContext::UpdateHardwareCursor|
|paramcount|3|
|address|1802b7ddc|
|sig|bool __thiscall UpdateHardwareCursor(CCursorState * this, MonitorData * param_1, bool param_2)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- CCursorState::UpdateHardwareCursor
+++ CCursorState::UpdateHardwareCursor
@@ -0,0 +1,61 @@
+
+/* private: bool __cdecl CCursorState::UpdateHardwareCursor(class CCursorState::MonitorData *
+   __ptr64,bool) __ptr64 */
+
+bool __thiscall
+CCursorState::UpdateHardwareCursor(CCursorState *this,MonitorData *param_1,bool param_2)
+
+{
+  bool bVar1;
+  MonitorData *this_00;
+  undefined8 local_res8;
+  int local_28 [4];
+  undefined8 local_18;
+  undefined8 uStack_10;
+  
+  local_28[0] = 0;
+  local_28[1] = 0;
+  local_28[2] = 0;
+  local_28[3] = 0;
+  local_18 = 0;
+  uStack_10 = 0;
+  this_00 = (MonitorData *)this;
+  if (*(longlong *)(this + 0xb0) != 0) {
+    local_res8 = *(undefined8 *)(this + 0x38);
+    if ((this[0x50] != (CCursorState)0x0) || (*(longlong *)(param_1 + 0x70) == 0)) {
+      local_res8 = *(undefined8 *)(this + 0xd4);
+    }
+    this_00 = param_1;
+    bVar1 = MonitorData::CalcShapeRects
+                      (param_1,(D2D_POINT_2F *)&local_res8,
+                       (TMilRect_<int,tagRECT,D2D_POINTANDSIZE_L,Mil3DRectL,RectUniqueness::_CMilRectL_>
+                        *)local_28,
+                       (TMilRect_<int,tagRECT,D2D_POINTANDSIZE_L,Mil3DRectL,RectUniqueness::_CMilRectL_>
+                        *)&local_18);
+    if (bVar1) {
+      if (this[0x50] == (CCursorState)0x0) {
+        if ((((*(int *)(param_1 + 0x98) == 1) && (!param_2)) &&
+            (*(int *)(param_1 + 0x8c) == local_28[0])) && (*(int *)(param_1 + 0x90) == local_28[1]))
+        {
+          return true;
+        }
+        bVar1 = SetHardwareShapeAndPosition
+                          (this,param_1,
+                           (TMilRect_<int,tagRECT,D2D_POINTANDSIZE_L,Mil3DRectL,RectUniqueness::_CMilRectL_>
+                            *)local_28,
+                           (TMilRect_<int,tagRECT,D2D_POINTANDSIZE_L,Mil3DRectL,RectUniqueness::_CMilRectL_>
+                            *)&local_18,param_2);
+        this_00 = (MonitorData *)this;
+        if (bVar1) {
+          return true;
+        }
+      }
+      ForceSoftwareShape((CCursorState *)this_00,param_1);
+      return false;
+    }
+  }
+  HideHardwareShape((CCursorState *)this_00,param_1);
+  *(undefined4 *)(param_1 + 0x98) = 0;
+  return true;
+}
+

```


## std::vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_>::_Change_array

### Function Meta



|Key|dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|name|_Change_array|
|fullname|std::vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_>::_Change_array|
|refcount|2|
|length|146|
|called|std::_Deallocate<16,0><br>std::_Destroy_range<std::allocator<CCursorState::MonitorData>_>|
|calling|std::vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_>::_Emplace_reallocate<CCursorState::MonitorData>|
|paramcount|4|
|address|1802b7f4c|
|sig|void __thiscall _Change_array(vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_> * this, MonitorData * param_1, __uint64 param_2, __uint64 param_3)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- std::vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_>::_Change_array
+++ std::vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_>::_Change_array
@@ -0,0 +1,23 @@
+
+/* private: void __cdecl std::vector<class CCursorState::MonitorData,class std::allocator<class
+   CCursorState::MonitorData> >::_Change_array(class CCursorState::MonitorData * __ptr64
+   const,unsigned __int64,unsigned __int64) __ptr64 */
+
+void __thiscall
+std::vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_>::_Change_array
+          (vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_> *this,
+          MonitorData *param_1,__uint64 param_2,__uint64 param_3)
+
+{
+  if (*(MonitorData **)this != (MonitorData *)0x0) {
+    _Destroy_range<std::allocator<CCursorState::MonitorData>_>
+              (*(MonitorData **)this,*(MonitorData **)(this + 8),
+               (allocator<CCursorState::MonitorData> *)param_2);
+    _Deallocate<16,0>(*(void **)this,(*(longlong *)(this + 0x10) - *(longlong *)this >> 5) << 5);
+  }
+  *(MonitorData **)this = param_1;
+  *(MonitorData **)(this + 8) = param_1 + param_2 * 0xa0;
+  *(MonitorData **)(this + 0x10) = param_1 + param_3 * 0xa0;
+  return;
+}
+

```


# Modified


*Modified functions contain code changes*
## CCursorState::ProcessStateChanges

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.44|
|i_ratio|0.42|
|m_ratio|0.91|
|b_ratio|0.53|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|ProcessStateChanges|ProcessStateChanges|
|fullname|CCursorState::ProcessStateChanges|CCursorState::ProcessStateChanges|
|refcount|2|2|
|`length`|992|1229|
|`called`|<details><summary>Expand for full list:<br>API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::EnterCriticalSection<br>API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::LeaveCriticalSection<br>CCursorState::EnsureCompositionResources<br>CCursorState::EnsureDestRectAndTransform<br>CCursorState::ScheduleCompositionPass<br>TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::IsEmpty<br>std::_Destroy_range<std::allocator<std::shared_ptr<CCursorState::ShapeData>_>_><br>std::_List_node<CCursorState::TrailPoint,void*___ptr64>::_Freenode<std::allocator<std::_List_node<CCursorState::TrailPoint,void*___ptr64>_>_><br>std::_Ref_count_base::_Decref<br>std::list<CCursorState::TrailPoint,std::allocator<CCursorState::TrailPoint>_>::emplace_back<unsigned___int64&___ptr64,IBitmapRealization*___ptr64,bool&___ptr64,TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>&___ptr64,MILMatrix3x2&___ptr64><br>std::shared_ptr<CCursorState::ShapeData>::operator=</summary>std::shared_ptr<CCursorState::ShapeData>::operator=<br>std::shared_ptr<CCursorState::ShapeData>::shared_ptr<CCursorState::ShapeData><br>std::vector<std::shared_ptr<CCursorState::ShapeData>,std::allocator<std::shared_ptr<CCursorState::ShapeData>_>_>::emplace_back<std::shared_ptr<CCursorState::ShapeData>&___ptr64><br>wil::com_ptr_t<ILegacyRemotingSwapChain,wil::err_returncode_policy>::reset</details>|<details><summary>Expand for full list:<br>API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::EnterCriticalSection<br>API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::LeaveCriticalSection<br>CCursorState::EnsureCompositionResources<br>CCursorState::EnsureShapeRectAndTransform<br>CCursorState::HideHardwareShape<br>CCursorState::ScheduleCompositionPass<br>TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::IsEmpty<br>__security_check_cookie<br>std::_Destroy_range<std::allocator<std::shared_ptr<CCursorState::ShapeData>_>_><br>std::_List_node<CCursorState::TrailPoint,void*___ptr64>::_Freenode<std::allocator<std::_List_node<CCursorState::TrailPoint,void*___ptr64>_>_><br>std::_Ref_count_base::_Decref</summary>std::list<CCursorState::TrailPoint,std::allocator<CCursorState::TrailPoint>_>::emplace_back<unsigned___int64&___ptr64,IBitmapRealization*___ptr64,bool&___ptr64,TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,MILMatrix3x2&___ptr64><br>std::shared_ptr<CCursorState::ShapeData>::operator=<br>std::shared_ptr<CCursorState::ShapeData>::operator=<br>std::shared_ptr<CCursorState::ShapeData>::shared_ptr<CCursorState::ShapeData><br>std::vector<std::shared_ptr<CCursorState::ShapeData>,std::allocator<std::shared_ptr<CCursorState::ShapeData>_>_>::emplace_back<std::shared_ptr<CCursorState::ShapeData>&___ptr64><br>wil::com_ptr_t<ILegacyRemotingSwapChain,wil::err_returncode_policy>::reset</details>|
|calling|CCursorVisual::ProcessStateChanges|CCursorVisual::ProcessStateChanges|
|paramcount|2|2|
|`address`|1802b5728|1802b64b8|
|sig|bool __thiscall ProcessStateChanges(CCursorState * this, __uint64 param_1)|bool __thiscall ProcessStateChanges(CCursorState * this, __uint64 param_1)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### CCursorState::ProcessStateChanges Called Diff


```diff
--- CCursorState::ProcessStateChanges called
+++ CCursorState::ProcessStateChanges called
@@ -4 +4,2 @@
-CCursorState::EnsureDestRectAndTransform
+CCursorState::EnsureShapeRectAndTransform
+CCursorState::HideHardwareShape
@@ -6,0 +8 @@
+__security_check_cookie
@@ -10 +12 @@
-std::list<CCursorState::TrailPoint,std::allocator<CCursorState::TrailPoint>_>::emplace_back<unsigned___int64&___ptr64,IBitmapRealization*___ptr64,bool&___ptr64,TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>&___ptr64,MILMatrix3x2&___ptr64>
+std::list<CCursorState::TrailPoint,std::allocator<CCursorState::TrailPoint>_>::emplace_back<unsigned___int64&___ptr64,IBitmapRealization*___ptr64,bool&___ptr64,TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,MILMatrix3x2&___ptr64>
```


### CCursorState::ProcessStateChanges Diff


```diff
--- CCursorState::ProcessStateChanges
+++ CCursorState::ProcessStateChanges
@@ -1,208 +1,242 @@
 
+/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
 /* public: bool __cdecl CCursorState::ProcessStateChanges(unsigned __int64) __ptr64 */
 
 bool __thiscall CCursorState::ProcessStateChanges(CCursorState *this,__uint64 param_1)
 
 {
   vector<std::shared_ptr<CCursorState::ShapeData>,std::allocator<std::shared_ptr<CCursorState::ShapeData>_>_>
   *this_00;
   CCursorState CVar1;
   int iVar2;
   uint uVar3;
-  longlong lVar4;
-  allocator<std::_List_node<CCursorState::TrailPoint,void*___ptr64>_> *paVar5;
-  CCursorState CVar6;
-  bool bVar7;
-  longlong lVar8;
-  _List_node<struct_CCursorState::TrailPoint,void*___ptr64> *p_Var9;
+  MonitorData *pMVar4;
+  longlong lVar5;
+  allocator<std::_List_node<CCursorState::TrailPoint,void*___ptr64>_> *paVar6;
+  CCursorState CVar7;
+  bool bVar8;
+  longlong lVar9;
+  _Ref_count_base *this_01;
   CCursorState CVar10;
   char cVar11;
   _List_node<struct_CCursorState::TrailPoint,void*___ptr64> *p_Var12;
-  CCursorState CVar13;
-  undefined4 uVar14;
-  undefined4 uVar15;
-  bool local_res8;
+  MonitorData *pMVar13;
+  char cVar14;
+  _List_node<struct_CCursorState::TrailPoint,void*___ptr64> *p_Var15;
+  CCursorState CVar16;
+  undefined4 uVar17;
+  undefined4 uVar18;
   __uint64 local_res10;
-  char local_res18;
-  undefined8 local_res20;
-  longlong local_88;
-  _Ref_count_base *local_80;
+  undefined1 auStackY_c8 [32];
+  CCursorState local_97;
+  bool local_96;
+  longlong local_90;
+  _Ref_count_base *local_88;
+  undefined8 local_80;
   undefined8 local_78;
   undefined8 uStack_70;
+  ulonglong local_68;
   
+  local_68 = __security_cookie ^ (ulonglong)auStackY_c8;
   CVar1 = this[0x71];
-  CVar10 = (CCursorState)0x0;
-  local_res8 = false;
-  p_Var9 = (_List_node<struct_CCursorState::TrailPoint,void*___ptr64> *)0x0;
+  p_Var12 = (_List_node<struct_CCursorState::TrailPoint,void*___ptr64> *)0x0;
+  local_97 = (CCursorState)0x0;
+  local_96 = false;
   local_res10 = param_1;
   std::shared_ptr<CCursorState::ShapeData>::shared_ptr<CCursorState::ShapeData>
-            ((shared_ptr<CCursorState::ShapeData> *)&local_88,
-             (shared_ptr<struct_CCursorState::ShapeData> *)(this + 0xb0));
-  CVar13 = this[0x51];
-  uVar14 = *(undefined4 *)(this + 0xd4);
-  uVar15 = *(undefined4 *)(this + 0xd8);
+            ((shared_ptr<CCursorState::ShapeData> *)&local_90,
+             (shared_ptr<class_CCursorState::ShapeData> *)(this + 0xb0));
+  CVar16 = this[0x51];
+  uVar17 = *(undefined4 *)(this + 0xd4);
+  uVar18 = *(undefined4 *)(this + 0xd8);
   EnterCriticalSection((LPCRITICAL_SECTION)&g_CursorManager);
+  lVar9 = local_90;
   if (this[0x17] != (CCursorState)0x0) {
     std::shared_ptr<CCursorState::ShapeData>::operator=
-              ((shared_ptr<CCursorState::ShapeData> *)&local_88,
-               (shared_ptr<struct_CCursorState::ShapeData> *)(this + 0x28));
+              ((shared_ptr<CCursorState::ShapeData> *)&local_90,
+               (shared_ptr<class_CCursorState::ShapeData> *)(this + 0x28));
     local_78 = 0;
     uStack_70 = (_Ref_count_base *)0x0;
     std::shared_ptr<CCursorState::ShapeData>::operator=
               ((shared_ptr<CCursorState::ShapeData> *)(this + 0x28),
-               (shared_ptr<struct_CCursorState::ShapeData> *)&local_78);
+               (shared_ptr<class_CCursorState::ShapeData> *)&local_78);
     if (uStack_70 != (_Ref_count_base *)0x0) {
       std::_Ref_count_base::_Decref(uStack_70);
     }
-    CVar13 = this[0x14];
-    p_Var9 = (_List_node<struct_CCursorState::TrailPoint,void*___ptr64> *)0x1;
+    p_Var12 = (_List_node<struct_CCursorState::TrailPoint,void*___ptr64> *)0x1;
+    CVar16 = this[0x14];
+    *(undefined4 *)(this + 0xa8) = *(undefined4 *)(this + 0x20);
     this[0x15] = (CCursorState)0x1;
-    *(undefined4 *)(this + 0xa8) = *(undefined4 *)(this + 0x20);
     this[0x17] = (CCursorState)0x0;
-  }
-  p_Var12 = (_List_node<struct_CCursorState::TrailPoint,void*___ptr64> *)0x1;
-  local_res18 = (char)p_Var9;
-  if (((this[0x12] == (CCursorState)0x0) || (local_88 == 0)) ||
-     (CVar6 = (CCursorState)0x1, CVar13 != (CCursorState)0x0)) {
-    CVar6 = (CCursorState)0x0;
-  }
-  this[0x71] = CVar6;
-  if ((local_res18 != '\0') || (CVar6 != CVar1)) {
-    this[0x72] = CVar6;
-    p_Var9 = (_List_node<struct_CCursorState::TrailPoint,void*___ptr64> *)0x1;
-  }
-  cVar11 = (char)p_Var9;
+    lVar9 = local_90;
+    if (local_90 == 0) {
+      pMVar4 = *(MonitorData **)(this + 0x60);
+      for (pMVar13 = *(MonitorData **)(this + 0x58); pMVar13 != pMVar4; pMVar13 = pMVar13 + 0xa0) {
+        local_78 = 0;
+        uStack_70 = (_Ref_count_base *)0x0;
+        std::shared_ptr<CCursorState::ShapeData>::operator=
+                  ((shared_ptr<CCursorState::ShapeData> *)(pMVar13 + 0x70),
+                   (shared_ptr<class_CCursorState::ShapeData> *)&local_78);
+        this_01 = uStack_70;
+        if (uStack_70 != (_Ref_count_base *)0x0) {
+          std::_Ref_count_base::_Decref(uStack_70);
+        }
+        HideHardwareShape((CCursorState *)this_01,pMVar13);
+      }
+    }
+  }
+  p_Var15 = (_List_node<struct_CCursorState::TrailPoint,void*___ptr64> *)0x1;
+  cVar11 = (char)p_Var12;
+  CVar10 = (CCursorState)0x0;
+  if (((this[0x12] == (CCursorState)0x0) || (lVar9 == 0)) ||
+     (CVar7 = (CCursorState)0x1, CVar16 != (CCursorState)0x0)) {
+    CVar7 = (CCursorState)0x0;
+  }
+  this[0x71] = CVar7;
+  if ((cVar11 != '\0') || (CVar7 != CVar1)) {
+    this[0x72] = CVar7;
+    p_Var12 = (_List_node<struct_CCursorState::TrailPoint,void*___ptr64> *)0x1;
+  }
+  cVar14 = (char)p_Var12;
   if (this[0x16] != (CCursorState)0x0) {
-    if (local_88 != 0) {
-      p_Var9 = p_Var12;
-    }
-    cVar11 = (char)p_Var9;
+    if (lVar9 != 0) {
+      p_Var12 = p_Var15;
+    }
+    cVar14 = (char)p_Var12;
     *(undefined4 *)(this + 0xc0) = *(undefined4 *)(this + 0x1c);
     this[0x16] = (CCursorState)0x0;
   }
   if (this[0x15] != (CCursorState)0x0) {
-    uVar14 = *(undefined4 *)(this + 0x38);
-    uVar15 = *(undefined4 *)(this + 0x3c);
-    CVar10 = this[0x13];
+    local_97 = this[0x13];
+    uVar17 = *(undefined4 *)(this + 0x38);
+    uVar18 = *(undefined4 *)(this + 0x3c);
+    CVar10 = (CCursorState)0x0;
     if ((this[0x73] == (CCursorState)0x0) ||
-       ((local_88 == 0 &&
-        (bVar7 = TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::IsEmpty
-                           ((TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded> *)
-                            (this + 0x80)), bVar7)))) {
-      if (this[0x70] != (CCursorState)0x0) {
-        cVar11 = (char)p_Var12;
+       ((lVar9 == 0 &&
+        (CVar10 = (CCursorState)0x0,
+        bVar8 = TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::IsEmpty
+                          ((TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded> *)
+                           (this + 0x80)), bVar8)))) {
+      if (this[0x70] != CVar10) {
+        cVar14 = (char)p_Var15;
       }
     }
     else {
-      cVar11 = (char)p_Var12;
-      local_res8 = (bool)cVar11;
-    }
-    this[0x15] = (CCursorState)0x0;
+      cVar14 = (char)p_Var15;
+      local_96 = (bool)cVar14;
+    }
+    this[0x15] = CVar10;
   }
   iVar2 = *(int *)(this + 0x18);
-  lVar4 = *(longlong *)(this + 0x110);
-  if (this[0x10] != (CCursorState)0x0) {
+  lVar5 = *(longlong *)(this + 0x110);
+  if (this[0x10] != CVar10) {
     uVar3 = *(uint *)(this + 0x24);
     this[0x70] = this[0x11];
-    this[0x10] = (CCursorState)0x0;
-    if (local_88 != 0) {
-      cVar11 = (char)p_Var12;
+    this[0x10] = CVar10;
+    if (lVar9 != 0) {
+      cVar14 = (char)p_Var15;
     }
     local_78 = CONCAT44((float)(uVar3 >> 8 & 0xff) / 255.0,(float)(uVar3 & 0xff) / 255.0);
     uStack_70 = (_Ref_count_base *)
                 CONCAT44((float)(uVar3 >> 0x18) / 255.0,(float)(uVar3 >> 0x10 & 0xff) / 255.0);
     *(undefined8 *)(this + 0xc4) = local_78;
     *(_Ref_count_base **)(this + 0xcc) = uStack_70;
   }
   LeaveCriticalSection((LPCRITICAL_SECTION)&g_CursorManager);
   if (g_disableHardwareCursors != false) {
-    for (lVar8 = *(longlong *)(this + 0x58); lVar8 != *(longlong *)(this + 0x60);
-        lVar8 = lVar8 + 0x80) {
-      if (*(char *)(lVar8 + 0x7c) != '\0') {
-        cVar11 = '\x01';
+    for (lVar9 = *(longlong *)(this + 0x58); lVar9 != *(longlong *)(this + 0x60);
+        lVar9 = lVar9 + 0xa0) {
+      if (*(int *)(lVar9 + 0x98) == 1) {
+        cVar14 = '\x01';
         break;
       }
     }
   }
-  lVar8 = 0;
+  lVar9 = 0;
   if (*(longlong *)(this + 0x108) != 0) {
-    while ((lVar8 = *(longlong *)(this + 0x108), lVar8 != 0 &&
-           (p_Var12 = (_List_node<struct_CCursorState::TrailPoint,void*___ptr64> *)
+    while ((lVar9 = *(longlong *)(this + 0x108), lVar9 != 0 &&
+           (p_Var15 = (_List_node<struct_CCursorState::TrailPoint,void*___ptr64> *)
                       **(undefined8 **)(this + 0x100),
-           (ulonglong)(iVar2 * lVar4) <= param_1 - *(longlong *)(p_Var12 + 0x10)))) {
-      paVar5 = *(allocator<std::_List_node<CCursorState::TrailPoint,void*___ptr64>_> **)p_Var12;
-      *(longlong *)(this + 0x108) = lVar8 + -1;
-      **(undefined8 **)(p_Var12 + 8) = paVar5;
-      *(undefined8 *)(paVar5 + 8) = *(undefined8 *)(p_Var12 + 8);
+           (ulonglong)(iVar2 * lVar5) <= param_1 - *(longlong *)(p_Var15 + 0x10)))) {
+      paVar6 = *(allocator<std::_List_node<CCursorState::TrailPoint,void*___ptr64>_> **)p_Var15;
+      *(longlong *)(this + 0x108) = lVar9 + -1;
+      **(undefined8 **)(p_Var15 + 8) = paVar6;
+      *(undefined8 *)(paVar6 + 8) = *(undefined8 *)(p_Var15 + 8);
       std::_List_node<CCursorState::TrailPoint,void*___ptr64>::
       _Freenode<std::allocator<std::_List_node<CCursorState::TrailPoint,void*___ptr64>_>_>
-                (paVar5,p_Var12);
-    }
-    cVar11 = '\x01';
-  }
-  if ((((CVar10 != (CCursorState)0x0) && (*(longlong *)(this + 0xb0) != 0)) && (iVar2 * lVar4 != 0))
-     && ((lVar8 == 0 ||
-         (*(ulonglong *)(this + 0x110) <=
-          param_1 - *(longlong *)(*(longlong *)(*(longlong *)(this + 0x100) + 8) + 0x10))))) {
+                (paVar6,p_Var15);
+    }
+    cVar14 = '\x01';
+  }
+  if ((((local_97 != (CCursorState)0x0) && (*(longlong *)(this + 0xb0) != 0)) &&
+      (iVar2 * lVar5 != 0)) &&
+     ((lVar9 == 0 ||
+      (*(ulonglong *)(this + 0x110) <=
+       param_1 - *(longlong *)(*(longlong *)(*(longlong *)(this + 0x100) + 8) + 0x10))))) {
     EnsureCompositionResources(this);
-    local_res20 = *(undefined8 *)(this + 0x78);
-    p_Var12 = (_List_node<struct_CCursorState::TrailPoint,void*___ptr64> *)&local_res20;
+    local_80 = *(undefined8 *)(this + 0x78);
+    p_Var15 = (_List_node<struct_CCursorState::TrailPoint,void*___ptr64> *)&local_80;
+    local_78 = CONCAT44(*(float *)(this + 0x84) + *(float *)(this + 0xd8),
+                        *(float *)(this + 0x80) + *(float *)(this + 0xd4));
+    uStack_70 = (_Ref_count_base *)
+                CONCAT44(*(float *)(this + 0x8c) + *(float *)(this + 0xd8),
+                         *(float *)(this + 0x88) + *(float *)(this + 0xd4));
     std::list<CCursorState::TrailPoint,std::allocator<CCursorState::TrailPoint>_>::
-    emplace_back<unsigned___int64&___ptr64,IBitmapRealization*___ptr64,bool&___ptr64,TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>&___ptr64,MILMatrix3x2&___ptr64>
+    emplace_back<unsigned___int64&___ptr64,IBitmapRealization*___ptr64,bool&___ptr64,TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,MILMatrix3x2&___ptr64>
               ((list<CCursorState::TrailPoint,std::allocator<CCursorState::TrailPoint>_> *)
-               (this + 0x100),&local_res10,(IBitmapRealization **)p_Var12,(bool *)(this + 0x51),
+               (this + 0x100),&local_res10,(IBitmapRealization **)p_Var15,(bool *)(this + 0x51),
                (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
-                *)(this + 0x80),(MILMatrix3x2 *)(this + 0x90));
-    cVar11 = '\x01';
+                *)&local_78,(MILMatrix3x2 *)(this + 0x90));
+    cVar14 = '\x01';
   }
   if (*(longlong *)(this + 0x108) != 0) {
     ScheduleCompositionPass(this);
   }
-  *(undefined4 *)(this + 0xd4) = uVar14;
-  *(undefined4 *)(this + 0xd8) = uVar15;
+  *(undefined4 *)(this + 0xd4) = uVar17;
+  *(undefined4 *)(this + 0xd8) = uVar18;
+  if (cVar14 == '\0') {
+    if (local_88 != (_Ref_count_base *)0x0) {
+      std::_Ref_count_base::_Decref(local_88);
+    }
+    return false;
+  }
   if (cVar11 == '\0') {
-    if (local_80 != (_Ref_count_base *)0x0) {
-      std::_Ref_count_base::_Decref(local_80);
-    }
-    return false;
-  }
-  if (local_res18 == '\0') {
     if (this[0x71] == CVar1) goto LAB_0;
     wil::com_ptr_t<ILegacyRemotingSwapChain,wil::err_returncode_policy>::reset
               ((com_ptr_t<ILegacyRemotingSwapChain,wil::err_returncode_policy> *)(this + 0x78));
     this[0x73] = (CCursorState)0x0;
   }
   else {
     wil::com_ptr_t<ILegacyRemotingSwapChain,wil::err_returncode_policy>::reset
               ((com_ptr_t<ILegacyRemotingSwapChain,wil::err_returncode_policy> *)(this + 0x78));
     this_00 = (vector<std::shared_ptr<CCursorState::ShapeData>,std::allocator<std::shared_ptr<CCursorState::ShapeData>_>_>
                *)(this + 0xe0);
     this[0x73] = (CCursorState)0x0;
-    if (*(shared_ptr<struct_CCursorState::ShapeData> **)this_00 !=
-        *(shared_ptr<struct_CCursorState::ShapeData> **)(this + 0xe8)) {
+    if (*(shared_ptr<class_CCursorState::ShapeData> **)this_00 !=
+        *(shared_ptr<class_CCursorState::ShapeData> **)(this + 0xe8)) {
       std::_Destroy_range<std::allocator<std::shared_ptr<CCursorState::ShapeData>_>_>
                 (*(shared_ptr<CCursorState::ShapeData> **)this_00,
-                 *(shared_ptr<struct_CCursorState::ShapeData> **)(this + 0xe8),
-                 (allocator<std::shared_ptr<CCursorState::ShapeData>_> *)p_Var12);
+                 *(shared_ptr<class_CCursorState::ShapeData> **)(this + 0xe8),
+                 (allocator<std::shared_ptr<CCursorState::ShapeData>_> *)p_Var15);
       *(undefined8 *)(this + 0xe8) = *(undefined8 *)this_00;
     }
     std::shared_ptr<CCursorState::ShapeData>::operator=
               ((shared_ptr<CCursorState::ShapeData> *)(this + 0xb0),
-               (shared_ptr<struct_CCursorState::ShapeData> *)&local_88);
-    this[0x51] = CVar13;
+               (shared_ptr<class_CCursorState::ShapeData> *)&local_90);
+    this[0x51] = CVar16;
     if (*(longlong *)(this + 0xb0) != 0) {
       std::
       vector<std::shared_ptr<CCursorState::ShapeData>,std::allocator<std::shared_ptr<CCursorState::ShapeData>_>_>
       ::emplace_back<std::shared_ptr<CCursorState::ShapeData>&___ptr64>
                 (this_00,(shared_ptr<CCursorState::ShapeData> *)(this + 0xb0));
     }
   }
   *(int *)(this + 0xf8) = *(int *)(this + 0xf8) + 1;
 LAB_0:
-  EnsureDestRectAndTransform(this,local_res8);
-  if (local_80 != (_Ref_count_base *)0x0) {
-    std::_Ref_count_base::_Decref(local_80);
+  EnsureShapeRectAndTransform(this,local_96);
+  if (local_88 != (_Ref_count_base *)0x0) {
+    std::_Ref_count_base::_Decref(local_88);
   }
   return true;
 }
 

```


## wil::details::FeatureImpl<__WilFeatureTraits_Feature_UxPerfImp>::GetCurrentFeatureEnabledState

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.32|
|i_ratio|0.64|
|m_ratio|0.91|
|b_ratio|0.88|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|GetCurrentFeatureEnabledState|GetCurrentFeatureEnabledState|
|fullname|wil::details::FeatureImpl<__WilFeatureTraits_Feature_UxPerfImp>::GetCurrentFeatureEnabledState|wil::details::FeatureImpl<__WilFeatureTraits_Feature_UxPerfImp>::GetCurrentFeatureEnabledState|
|refcount|2|2|
|`length`|259|220|
|`called`|wil::details::FeatureImpl<__WilFeatureTraits_Feature_GatePerf>::__private_IsEnabled<br>wil::details::FeatureImpl<__WilFeatureTraits_Feature_Standalone_25_07_NonSec>::ReportUsage<br>wil::details::WilApi_GetFeatureEnabledState|wil::details::FeatureImpl<__WilFeatureTraits_Feature_GatePerf>::ReportUsage<br>wil::details::FeatureImpl<__WilFeatureTraits_Feature_Standalone_25_07_NonSec>::ReportUsage<br>wil::details::WilApi_GetFeatureEnabledState|
|calling|wil::details::FeatureImpl<__WilFeatureTraits_Feature_UxPerfImp>::GetCachedFeatureEnabledState|wil::details::FeatureImpl<__WilFeatureTraits_Feature_UxPerfImp>::GetCachedFeatureEnabledState|
|paramcount|2|2|
|`address`|18025f5f4|18025d028|
|sig|wil_details_FeatureStateCache __thiscall GetCurrentFeatureEnabledState(FeatureImpl<__WilFeatureTraits_Feature_UxPerfImp> * this, int * param_1)|wil_details_FeatureStateCache __thiscall GetCurrentFeatureEnabledState(FeatureImpl<__WilFeatureTraits_Feature_UxPerfImp> * this, int * param_1)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### wil::details::FeatureImpl<__WilFeatureTraits_Feature_UxPerfImp>::GetCurrentFeatureEnabledState Called Diff


```diff
--- wil::details::FeatureImpl<__WilFeatureTraits_Feature_UxPerfImp>::GetCurrentFeatureEnabledState called
+++ wil::details::FeatureImpl<__WilFeatureTraits_Feature_UxPerfImp>::GetCurrentFeatureEnabledState called
@@ -1 +1 @@
-wil::details::FeatureImpl<__WilFeatureTraits_Feature_GatePerf>::__private_IsEnabled
+wil::details::FeatureImpl<__WilFeatureTraits_Feature_GatePerf>::ReportUsage
```


### wil::details::FeatureImpl<__WilFeatureTraits_Feature_UxPerfImp>::GetCurrentFeatureEnabledState Diff


```diff
--- wil::details::FeatureImpl<__WilFeatureTraits_Feature_UxPerfImp>::GetCurrentFeatureEnabledState
+++ wil::details::FeatureImpl<__WilFeatureTraits_Feature_UxPerfImp>::GetCurrentFeatureEnabledState
@@ -1,73 +1,61 @@
 
 /* private: union wil_details_FeatureStateCache __cdecl wil::details::FeatureImpl<struct
    __WilFeatureTraits_Feature_UxPerfImp>::GetCurrentFeatureEnabledState(int * __ptr64) __ptr64 */
 
 int * __thiscall
 wil::details::FeatureImpl<__WilFeatureTraits_Feature_UxPerfImp>::GetCurrentFeatureEnabledState
           (FeatureImpl<__WilFeatureTraits_Feature_UxPerfImp> *this,int *param_1)
 
 {
   bool bVar1;
-  bool bVar2;
-  FEATURE_ENABLED_STATE FVar3;
-  ReportingKind RVar4;
-  undefined1 uVar5;
-  ReportingKind RVar6;
+  FEATURE_ENABLED_STATE FVar2;
+  uint uVar3;
+  bool bVar4;
+  uint uVar5;
+  uint uVar6;
   ReportingKind RVar7;
-  uint uVar8;
-  ReportingKind RVar9;
   int *in_R8;
-  FEATURE_ENABLED_STATE FVar10;
-  __uint64 _Var11;
+  FEATURE_ENABLED_STATE FVar8;
+  __uint64 _Var9;
   
-  FVar3 = WilApi_GetFeatureEnabledState(0x3667c98,3,in_R8);
+  FVar2 = WilApi_GetFeatureEnabledState(0x3667c98,3,in_R8);
   param_1[0] = 0;
   param_1[1] = 0;
-  FVar10 = FVar3 & 0xffffff3f;
-  _Var11 = (__uint64)FVar10;
-  RVar6 = -(uint)((FVar3 & 0x40) != 0) & 0x800 | -(uint)((FVar3 & 0x80) != 0) & 0x400;
-  RVar7 = RVar6 | (FVar3 & 3) << 7;
-  *param_1 = RVar7;
-  if (FVar10 == 0) {
-    RVar4 = 0x40;
+  FVar8 = FVar2 & 0xffffff3f;
+  _Var9 = (__uint64)FVar8;
+  uVar5 = -(uint)((FVar2 & 0x40) != 0) & 0x800 | -(uint)((FVar2 & 0x80) != 0) & 0x400;
+  uVar6 = uVar5 | (FVar2 & 3) << 7;
+  *param_1 = uVar6;
+  if (FVar8 == 0) {
+    uVar3 = 0x40;
   }
   else {
-    RVar4 = 0;
-    if (FVar10 == 2) {
-      RVar4 = 0x40;
+    uVar3 = 0;
+    if (FVar8 == 2) {
+      uVar3 = 0x40;
     }
   }
-  RVar7 = RVar7 | RVar4;
-  uVar5 = (undefined1)RVar7;
-  RVar9 = 0xc00;
-  *param_1 = RVar7;
-  bVar2 = false;
-  uVar8 = 1;
-  if (RVar6 == 0xc00) {
-    bVar1 = true;
-  }
-  else {
-    bVar1 = false;
-    if (RVar4 == 0) goto LAB_0;
-  }
-  bVar2 = FeatureImpl<__WilFeatureTraits_Feature_GatePerf>::__private_IsEnabled
-                    ((FeatureImpl<__WilFeatureTraits_Feature_GatePerf> *)
-                     &`private:_static_class_wil::details::FeatureImpl<__WilFeatureTraits_Feature_GatePerf>&___ptr64___cdecl_wil::Feature<__WilFeatureTraits_Feature_GatePerf>::GetImpl(void)'
-                      ::__l2::impl,RVar7);
-  if (bVar2) {
+  uVar6 = uVar6 | uVar3;
+  bVar4 = SUB41(uVar6,0);
+  RVar7 = 0xc00;
+  *param_1 = uVar6;
+  bVar1 = false;
+  uVar6 = 1;
+  if ((uVar5 == 0xc00) || (uVar3 != 0)) {
+    FeatureImpl<__WilFeatureTraits_Feature_GatePerf>::ReportUsage
+              ((FeatureImpl<__WilFeatureTraits_Feature_GatePerf> *)
+               &`private:_static_class_wil::details::FeatureImpl<__WilFeatureTraits_Feature_GatePerf>&___ptr64___cdecl_wil::Feature<__WilFeatureTraits_Feature_GatePerf>::GetImpl(void)'
+                ::__l2::impl,bVar4,0xc00,_Var9);
     FeatureImpl<__WilFeatureTraits_Feature_Standalone_25_07_NonSec>::ReportUsage
               ((FeatureImpl<__WilFeatureTraits_Feature_Standalone_25_07_NonSec> *)
                &`private:_static_class_wil::details::FeatureImpl<__WilFeatureTraits_Feature_Standalone_25_07_NonSec>&___ptr64___cdecl_wil::Feature<__WilFeatureTraits_Feature_Standalone_25_07_NonSec>::GetImpl(void)'
-                ::__l2::impl,(bool)uVar5,RVar9,_Var11);
+                ::__l2::impl,bVar4,RVar7,_Var9);
+    bVar1 = true;
   }
-  if ((bVar1) && (!bVar2)) {
-    *param_1 = *param_1 & 0xfffffbff;
+  if (((*param_1 & 0x40U) == 0) || (!bVar1)) {
+    uVar6 = 0;
   }
-LAB_0:
-  if (((*param_1 & 0x40U) == 0) || (!bVar2)) {
-    uVar8 = 0;
-  }
-  *param_1 = *param_1 & 0xfffffffeU | uVar8;
+  *param_1 = *param_1 & 0xfffffffeU | uVar6;
   return param_1;
 }
 

```


## CShape::GetWidenedBounds

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.69|
|i_ratio|0.62|
|m_ratio|0.98|
|b_ratio|0.92|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|GetWidenedBounds|GetWidenedBounds|
|fullname|CShape::GetWidenedBounds|CShape::GetWidenedBounds|
|refcount|4|4|
|`length`|431|427|
|`called`|CPathSegmentsShape::GetD2DGeometry<br>CRoundedRectangleShape::GetD2DGeometry<br>Microsoft::WRL::ComPtr<IMessageCallReceiveHost>::InternalRelease<br>MilInstrumentationCheckHR_MaybeFailFast<br>__security_check_cookie<br>_guard_dispatch_icall$thunk$10345483385596137414|CPathSegmentsShape::GetD2DGeometry<br>CRoundedRectangleShape::GetD2DGeometry<br>Microsoft::WRL::ComPtr<IMessageCallReceiveHost>::InternalRelease<br>MilInstrumentationCheckHR_MaybeFailFast<br>TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::HasValidValues<br>__security_check_cookie<br>_guard_dispatch_icall$thunk$10345483385596137414|
|calling|CDrawingContext::StrokeShapeWithBrush<br>CSpriteVectorShape::ComputeBounds|CDrawingContext::StrokeShapeWithBrush<br>CSpriteVectorShape::ComputeBounds|
|paramcount|5|5|
|`address`|1800b866c|18014cd9c|
|sig|long __thiscall GetWidenedBounds(CShape * this, TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> * param_1, float param_2, ID2D1StrokeStyle1 * param_3, D2D_MATRIX_3X2_F * param_4)|long __thiscall GetWidenedBounds(CShape * this, TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> * param_1, float param_2, ID2D1StrokeStyle1 * param_3, D2D_MATRIX_3X2_F * param_4)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### CShape::GetWidenedBounds Called Diff


```diff
--- CShape::GetWidenedBounds called
+++ CShape::GetWidenedBounds called
@@ -4,0 +5 @@
+TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::HasValidValues
```


### CShape::GetWidenedBounds Diff


```diff
--- CShape::GetWidenedBounds
+++ CShape::GetWidenedBounds
@@ -1,80 +1,91 @@
 
 /* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
    guard_dispatch_icall */
 /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
 /* public: long __cdecl CShape::GetWidenedBounds(class TMilRect_<float,struct D2D_RECT_F,struct
    D3D_RECT_F,struct D2D_POINTANDSIZE_F,struct RectUniqueness::NotNeeded> * __ptr64,float,struct
    ID2D1StrokeStyle1 * __ptr64,struct D2D_MATRIX_3X2_F const * __ptr64)const __ptr64 */
 
 long __thiscall
 CShape::GetWidenedBounds
           (CShape *this,
           TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
           *param_1,float param_2,ID2D1StrokeStyle1 *param_3,D2D_MATRIX_3X2_F *param_4)
 
 {
   code *pcVar1;
   ID2D1Geometry *pIVar2;
-  int iVar3;
+  bool bVar3;
+  int iVar4;
+  float fVar5;
+  float fVar6;
+  float fVar7;
+  float fVar8;
   undefined1 auStackY_98 [32];
-  uint uVar4;
+  uint uVar9;
   ID2D1Geometry *local_58;
   undefined8 local_50;
   undefined8 uStack_48;
   ulonglong local_40;
   
   local_40 = __security_cookie ^ (ulonglong)auStackY_98;
   local_58 = (ID2D1Geometry *)0x0;
   pcVar1 = *(code **)(*(longlong *)this + 0x18);
   Microsoft::WRL::ComPtr<IMessageCallReceiveHost>::InternalRelease
             ((ComPtr<IMessageCallReceiveHost> *)&local_58);
   if (pcVar1 == CPathSegmentsShape::GetD2DGeometry) {
-    iVar3 = CPathSegmentsShape::GetD2DGeometry
+    iVar4 = CPathSegmentsShape::GetD2DGeometry
                       ((CPathSegmentsShape *)this,(CMILMatrix *)0x0,&local_58);
   }
   else if (pcVar1 == CRoundedRectangleShape::GetD2DGeometry) {
-    iVar3 = CRoundedRectangleShape::GetD2DGeometry
+    iVar4 = CRoundedRectangleShape::GetD2DGeometry
                       ((CRoundedRectangleShape *)this,(CMILMatrix *)0x0,&local_58);
   }
   else {
-    iVar3 = (*pcVar1)();
+    iVar4 = (*pcVar1)();
   }
-  if (iVar3 < 0) {
-    uVar4 = 0x422;
+  if (iVar4 < 0) {
+    uVar9 = 0x422;
   }
   else {
     local_50 = 0;
     uStack_48 = 0;
-    iVar3 = (**(code **)(*(longlong *)local_58 + 0x28))(local_58,param_2,param_3,0);
-    if (iVar3 < 0) {
-      uVar4 = 0x42b;
+    iVar4 = (**(code **)(*(longlong *)local_58 + 0x28))(local_58,param_2,param_3,0);
+    if (iVar4 < 0) {
+      uVar9 = 0x42b;
     }
     else {
       *(float *)param_1 = (float)local_50;
       *(float *)(param_1 + 4) = local_50._4_4_;
       *(float *)(param_1 + 8) = (float)uStack_48;
       *(float *)(param_1 + 0xc) = uStack_48._4_4_;
-      if ((((!NAN((float)local_50)) && (!NAN(local_50._4_4_))) && (!NAN((float)uStack_48))) &&
-         (!NAN(uStack_48._4_4_))) {
-        if (((float)uStack_48 < (float)local_50) || (uStack_48._4_4_ < local_50._4_4_)) {
+      fVar5 = local_50._4_4_;
+      fVar6 = uStack_48._4_4_;
+      fVar7 = (float)uStack_48;
+      fVar8 = (float)local_50;
+      bVar3 = TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::HasValidValues
+                        ((TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded> *)param_1)
+      ;
+      if (bVar3) {
+        if ((fVar7 < fVar8) || (fVar6 < fVar5)) {
           *(undefined4 *)(param_1 + 0xc) = 0;
           *(undefined4 *)(param_1 + 8) = 0;
           *(undefined4 *)(param_1 + 4) = 0;
           *(undefined4 *)param_1 = 0;
         }
         goto LAB_0;
       }
-      iVar3 = -0x7767fff6;
-      uVar4 = 0x431;
+      iVar4 = -0x7767fff6;
+      uVar9 = 0x431;
     }
   }
-  MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,iVar3,uVar4,(void *)0x0);
+  MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,iVar4,uVar9,(void *)0x0);
 LAB_0:
   pIVar2 = local_58;
   if (local_58 != (ID2D1Geometry *)0x0) {
     local_58 = (ID2D1Geometry *)0x0;
     (**(code **)(*(longlong *)pIVar2 + 0x10))();
   }
-  return iVar3;
+  return iVar4;
 }
 

```


## CRenderingTechnique::CreateSurfaceDrawListBrushForIntermediate

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.36|
|i_ratio|0.36|
|m_ratio|0.9|
|b_ratio|0.86|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|CreateSurfaceDrawListBrushForIntermediate|CreateSurfaceDrawListBrushForIntermediate|
|fullname|CRenderingTechnique::CreateSurfaceDrawListBrushForIntermediate|CRenderingTechnique::CreateSurfaceDrawListBrushForIntermediate|
|refcount|2|2|
|`length`|887|736|
|`called`|CDxHandleBitmapRealization::GetSize`adjustor{256}'<br>CMILRefCountImpl::AddReference<br>CThreadLocalObjectCache<CSurfaceDrawListBrush,CSurfaceDrawListBrush>::Alloc<br>IBitmapRealizationMethodsT<CDxHandleBitmapRealization,IGDIBitmapRealization>::GetSize`adjustor{320}'<br>MilInstrumentationCheckHR_MaybeFailFast<br>_guard_dispatch_icall$thunk$10345483385596137414<br>ceilf<br>floorf<br>wil::details::in1diag3::Return_Hr|CDxHandleBitmapRealization::GetSize`adjustor{256}'<br>CSurfaceDrawListBrush::CSurfaceDrawListBrush<br>CSurfaceDrawListBrush::`scalar_deleting_destructor'<br>CThreadLocalObjectCache<CSurfaceDrawListBrush,CSurfaceDrawListBrush>::Alloc<br>IBitmapRealizationMethodsT<CDxHandleBitmapRealization,IGDIBitmapRealization>::GetSize`adjustor{320}'<br>MilInstrumentationCheckHR_MaybeFailFast<br>_guard_dispatch_icall$thunk$10345483385596137414<br>ceilf<br>floorf<br>wil::details::in1diag3::Return_Hr|
|calling|CBrushRenderingGraph::UpdateDrawListCache|CBrushRenderingGraph::UpdateDrawListCache|
|paramcount|4|4|
|`address`|18009d838|1800b9f58|
|sig|long __thiscall CreateSurfaceDrawListBrushForIntermediate(CRenderingTechnique * this, uint param_1, EffectInput * param_2, CSurfaceDrawListBrush * * param_3)|long __thiscall CreateSurfaceDrawListBrushForIntermediate(CRenderingTechnique * this, uint param_1, EffectInput * param_2, CSurfaceDrawListBrush * * param_3)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### CRenderingTechnique::CreateSurfaceDrawListBrushForIntermediate Called Diff


```diff
--- CRenderingTechnique::CreateSurfaceDrawListBrushForIntermediate called
+++ CRenderingTechnique::CreateSurfaceDrawListBrushForIntermediate called
@@ -2 +2,2 @@
-CMILRefCountImpl::AddReference
+CSurfaceDrawListBrush::CSurfaceDrawListBrush
+CSurfaceDrawListBrush::`scalar_deleting_destructor'
```


### CRenderingTechnique::CreateSurfaceDrawListBrushForIntermediate Diff


```diff
--- CRenderingTechnique::CreateSurfaceDrawListBrushForIntermediate
+++ CRenderingTechnique::CreateSurfaceDrawListBrushForIntermediate
@@ -1,157 +1,126 @@
 
 /* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
    guard_dispatch_icall */
+/* WARNING: Removing unreachable block (ram,0x0001800ba1f5) */
 /* public: long __cdecl CRenderingTechnique::CreateSurfaceDrawListBrushForIntermediate(unsigned
    int,struct EffectInput const & __ptr64,class CSurfaceDrawListBrush * __ptr64 * __ptr64)const
    __ptr64 */
 
 long __thiscall
 CRenderingTechnique::CreateSurfaceDrawListBrushForIntermediate
           (CRenderingTechnique *this,uint param_1,EffectInput *param_2,
           CSurfaceDrawListBrush **param_3)
 
 {
   EffectInput EVar1;
-  CMILRefCountImpl *this_00;
-  longlong *plVar2;
-  IBitmapRealizationMethodsT<CDxHandleBitmapRealization,IGDIBitmapRealization> *this_01;
-  code *pcVar3;
-  long lVar4;
-  CSurfaceDrawListBrush *pCVar5;
-  ulonglong *puVar6;
+  IBitmapRealizationMethodsT<CDxHandleBitmapRealization,IGDIBitmapRealization> *this_00;
+  code *pcVar2;
+  long lVar3;
+  CSurfaceDrawListBrush *pCVar4;
+  ulonglong *puVar5;
+  ulonglong uVar6;
   CRenderingTechnique CVar7;
-  ulonglong uVar8;
-  CRenderingTechnique CVar9;
+  CRenderingTechnique CVar8;
+  float fVar9;
   float fVar10;
   float fVar11;
   float fVar12;
-  float fVar13;
   float _X;
   void *unaff_retaddr;
-  undefined2 local_res8;
+  EffectInput local_res8;
+  CRenderingTechnique local_res9;
+  CRenderingTechnique local_resa;
+  uint in_stack_ffffffffffffff78;
   
-  uVar8 = 0;
+  uVar6 = 0;
   CVar7 = this[(ulonglong)param_1 * 0x2c + 0x58];
-  CVar9 = this[(ulonglong)param_1 * 0x2c + 0x59];
+  CVar8 = this[(ulonglong)param_1 * 0x2c + 0x59];
   if (CVar7 == (CRenderingTechnique)0x0) {
     CVar7 = (CRenderingTechnique)0x1;
-    CVar9 = (CRenderingTechnique)0x1;
+    CVar8 = (CRenderingTechnique)0x1;
   }
   EVar1 = param_2[0x68];
-  pCVar5 = CThreadLocalObjectCache<CSurfaceDrawListBrush,CSurfaceDrawListBrush>::Alloc
+  pCVar4 = CThreadLocalObjectCache<CSurfaceDrawListBrush,CSurfaceDrawListBrush>::Alloc
                      ((__uint64)this);
-  if (pCVar5 == (CSurfaceDrawListBrush *)0x0) {
+  if ((pCVar4 == (CSurfaceDrawListBrush *)0x0) ||
+     (local_res8 = EVar1, local_res9 = CVar7, local_resa = CVar8,
+     pCVar4 = (CSurfaceDrawListBrush *)
+              CSurfaceDrawListBrush::CSurfaceDrawListBrush
+                        (pCVar4,param_2,&local_res8,param_2 + 0x30,
+                         in_stack_ffffffffffffff78 & 0xffffff00),
+     pCVar4 == (CSurfaceDrawListBrush *)0x0)) {
     MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,-0x7ff8fff2,0x3a,(void *)0x0);
     wil::details::in1diag3::Return_Hr
               (unaff_retaddr,0x86,
                "onecoreuap\\windows\\dwm\\dwmcore\\rendering\\renderingtechnique.cpp",-0x7ff8fff2);
-    lVar4 = -0x7ff8fff2;
+    lVar3 = -0x7ff8fff2;
   }
   else {
-    local_res8 = CONCAT11(CVar7,EVar1);
-    *(undefined8 *)(pCVar5 + 8) = 0x3f800000;
-    *(undefined4 *)(pCVar5 + 0x10) = 0;
-    *(undefined8 *)(pCVar5 + 0x14) = 0x3f800000;
-    *(undefined4 *)(pCVar5 + 0x1c) = 0;
-    pCVar5[0x34] = (CSurfaceDrawListBrush)0x0;
-    *(undefined ***)pCVar5 = &CSurfaceDrawListBrush::_vftable_;
-    this_00 = *(CMILRefCountImpl **)param_2;
-    *(CMILRefCountImpl **)(pCVar5 + 0x38) = this_00;
-    if (this_00 != (CMILRefCountImpl *)0x0) {
-      if (*(code **)(*(longlong *)this_00 + 8) == CMILRefCountImpl::AddReference) {
-        CMILRefCountImpl::AddReference(this_00);
-      }
-      else {
-        (**(code **)(*(longlong *)this_00 + 8))();
-      }
-    }
-    plVar2 = *(longlong **)(param_2 + 8);
-    *(longlong **)(pCVar5 + 0x40) = plVar2;
-    if (plVar2 != (longlong *)0x0) {
-      (**(code **)(*plVar2 + 8))();
-    }
-    *(EffectInput *)(pCVar5 + 0x48) = param_2[0x10];
-    *(undefined2 *)(pCVar5 + 0x50) = local_res8;
-    *(CRenderingTechnique *)(pCVar5 + 0x52) = CVar9;
-    *(undefined4 *)(pCVar5 + 0x54) = *(undefined4 *)(param_2 + 0x30);
-    *(undefined4 *)(pCVar5 + 0x58) = *(undefined4 *)(param_2 + 0x34);
-    *(undefined4 *)(pCVar5 + 0x5c) = *(undefined4 *)(param_2 + 0x38);
-    *(undefined4 *)(pCVar5 + 0x60) = *(undefined4 *)(param_2 + 0x3c);
-    *(undefined4 *)(pCVar5 + 100) = *(undefined4 *)(param_2 + 0x40);
-    *(undefined4 *)(pCVar5 + 0x68) = *(undefined4 *)(param_2 + 0x44);
-    *(undefined4 *)(pCVar5 + 0x6c) = *(undefined4 *)(param_2 + 0x48);
-    *(undefined4 *)(pCVar5 + 0x70) = *(undefined4 *)(param_2 + 0x4c);
-    *(undefined4 *)(pCVar5 + 0x74) = *(undefined4 *)(param_2 + 0x50);
-    *(undefined4 *)(pCVar5 + 0x90) = 0;
-    *(undefined4 *)(pCVar5 + 0x78) = 0xff7fffff;
-    *(undefined4 *)(pCVar5 + 0x7c) = 0xff7fffff;
-    *(undefined4 *)(pCVar5 + 0x80) = 0x7f7fffff;
-    *(undefined4 *)(pCVar5 + 0x84) = 0x7f7fffff;
     if (EVar1 == (EffectInput)0x0) {
       _X = *(float *)(param_2 + 0x54);
-      fVar11 = *(float *)(param_2 + 0x58);
-      fVar10 = *(float *)(param_2 + 0x5c);
-      fVar12 = *(float *)(param_2 + 0x60);
+      fVar10 = *(float *)(param_2 + 0x58);
+      fVar9 = *(float *)(param_2 + 0x5c);
+      fVar11 = *(float *)(param_2 + 0x60);
     }
     else {
       _X = *(float *)(param_2 + 0x54);
-      fVar10 = floorf(_X);
-      if (_X - fVar10 < 0.5) {
-        _X = fVar10 + 0.5;
+      fVar9 = floorf(_X);
+      if (_X - fVar9 < 0.5) {
+        _X = fVar9 + 0.5;
       }
-      fVar10 = *(float *)(param_2 + 0x5c);
-      fVar11 = ceilf(fVar10);
-      if (fVar11 - fVar10 < 0.5) {
-        fVar10 = fVar11 - 0.5;
+      fVar9 = *(float *)(param_2 + 0x5c);
+      fVar10 = ceilf(fVar9);
+      if (fVar10 - fVar9 < 0.5) {
+        fVar9 = fVar10 - 0.5;
       }
-      if (fVar10 < _X) {
-        fVar10 = (*(float *)(param_2 + 0x5c) + *(float *)(param_2 + 0x54)) * 0.5;
-        _X = fVar10;
+      if (fVar9 < _X) {
+        fVar9 = (*(float *)(param_2 + 0x5c) + *(float *)(param_2 + 0x54)) * 0.5;
+        _X = fVar9;
       }
-      fVar11 = *(float *)(param_2 + 0x58);
-      fVar12 = floorf(fVar11);
-      if (fVar11 - fVar12 < 0.5) {
-        fVar11 = fVar12 + 0.5;
+      fVar10 = *(float *)(param_2 + 0x58);
+      fVar11 = floorf(fVar10);
+      if (fVar10 - fVar11 < 0.5) {
+        fVar10 = fVar11 + 0.5;
       }
-      fVar12 = *(float *)(param_2 + 0x60);
-      fVar13 = ceilf(fVar12);
-      if (fVar13 - fVar12 < 0.5) {
-        fVar12 = fVar13 - 0.5;
+      fVar11 = *(float *)(param_2 + 0x60);
+      fVar12 = ceilf(fVar11);
+      if (fVar12 - fVar11 < 0.5) {
+        fVar11 = fVar12 - 0.5;
       }
-      if (fVar12 < fVar11) {
-        fVar11 = (*(float *)(param_2 + 0x60) + *(float *)(param_2 + 0x58)) * 0.5;
-        fVar12 = fVar11;
+      if (fVar11 < fVar10) {
+        fVar10 = (*(float *)(param_2 + 0x60) + *(float *)(param_2 + 0x58)) * 0.5;
+        fVar11 = fVar10;
       }
     }
-    this_01 = *(IBitmapRealizationMethodsT<CDxHandleBitmapRealization,IGDIBitmapRealization> **)
+    this_00 = *(IBitmapRealizationMethodsT<CDxHandleBitmapRealization,IGDIBitmapRealization> **)
                (param_2 + 8);
-    if (this_01 !=
+    if (this_00 !=
         (IBitmapRealizationMethodsT<CDxHandleBitmapRealization,IGDIBitmapRealization> *)0x0) {
-      pcVar3 = *(code **)(*(longlong *)this_01 + 0x20);
-      if (pcVar3 == IBitmapRealizationMethodsT<CDxHandleBitmapRealization,IGDIBitmapRealization>::
+      pcVar2 = *(code **)(*(longlong *)this_00 + 0x20);
+      if (pcVar2 == IBitmapRealizationMethodsT<CDxHandleBitmapRealization,IGDIBitmapRealization>::
                     GetSize_adjustor_320__) {
-        puVar6 = (ulonglong *)
+        puVar5 = (ulonglong *)
                  IBitmapRealizationMethodsT<CDxHandleBitmapRealization,IGDIBitmapRealization>::
-                 GetSize_adjustor_320__(this_01);
+                 GetSize_adjustor_320__(this_00);
       }
-      else if (pcVar3 == CDxHandleBitmapRealization::GetSize_adjustor_256__) {
-        puVar6 = (ulonglong *)
+      else if (pcVar2 == CDxHandleBitmapRealization::GetSize_adjustor_256__) {
+        puVar5 = (ulonglong *)
                  CDxHandleBitmapRealization::GetSize_adjustor_256__
-                           ((CDxHandleBitmapRealization *)this_01);
+                           ((CDxHandleBitmapRealization *)this_00);
       }
       else {
-        puVar6 = (ulonglong *)(*pcVar3)(this_01,&local_res8);
+        puVar5 = (ulonglong *)(*pcVar2)(this_00,&local_res8);
       }
-      uVar8 = *puVar6;
+      uVar6 = *puVar5;
     }
-    lVar4 = 0;
-    *(float *)(pCVar5 + 0x78) = _X / (float)(uVar8 & 0xffffffff);
-    *(float *)(pCVar5 + 0x7c) = fVar11 / (float)(uVar8 >> 0x20);
-    *(float *)(pCVar5 + 0x80) = fVar10 / (float)(uVar8 & 0xffffffff);
-    *(float *)(pCVar5 + 0x84) = fVar12 / (float)(uVar8 >> 0x20);
-    pCVar5[0x91] = (CSurfaceDrawListBrush)0x1;
-    *param_3 = pCVar5;
+    lVar3 = 0;
+    *(float *)(pCVar4 + 0x78) = _X / (float)(uVar6 & 0xffffffff);
+    *(float *)(pCVar4 + 0x7c) = fVar10 / (float)(uVar6 >> 0x20);
+    *(float *)(pCVar4 + 0x80) = fVar9 / (float)(uVar6 & 0xffffffff);
+    *(float *)(pCVar4 + 0x84) = fVar11 / (float)(uVar6 >> 0x20);
+    pCVar4[0x91] = (CSurfaceDrawListBrush)0x1;
+    *param_3 = pCVar4;
   }
-  return lVar4;
+  return lVar3;
 }
 

```


## CComputeScribbleScheduler::DecideBufferToDispatch

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.97|
|i_ratio|0.75|
|m_ratio|1.0|
|b_ratio|0.97|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|DecideBufferToDispatch|DecideBufferToDispatch|
|fullname|CComputeScribbleScheduler::DecideBufferToDispatch|CComputeScribbleScheduler::DecideBufferToDispatch|
|refcount|2|2|
|`length`|992|997|
|`called`|API-MS-WIN-CORE-PROFILE-L1-1-0.DLL::QueryPerformanceCounter<br>CComputeScribbleRenderer::GetOverlayMonitorTarget<br>McTemplateU0qqqff_EventWriteTransfer<br>__security_check_cookie<br>_guard_dispatch_icall$thunk$10345483385596137414<br>wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy><br>wil::details::FeatureImpl<__WilFeatureTraits_Feature_InkScanoutBuffer>::__private_IsEnabled<br>wil::details::in1diag3::Return_Hr|API-MS-WIN-CORE-PROFILE-L1-1-0.DLL::QueryPerformanceCounter<br>CComputeScribbleRenderer::GetOverlayMonitorTarget<br>McTemplateU0qqqff_EventWriteTransfer<br>__security_check_cookie<br>_guard_dispatch_icall$thunk$10345483385596137414<br>wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy><br>wil::details::FeatureImpl<__WilFeatureTraits_Feature_InkScanoutBuffer2>::__private_IsEnabled<br>wil::details::in1diag3::Return_Hr|
|calling|CComputeScribbleScheduler::ProcessScribbleFrame|CComputeScribbleScheduler::ProcessScribbleFrame|
|paramcount|3|3|
|`address`|1801c9cb0|1801c6160|
|sig|long __thiscall DecideBufferToDispatch(CComputeScribbleScheduler * this, CComputeScribbleFramebuffer * * param_1, CComputeScribbleFramebuffer * * param_2)|long __thiscall DecideBufferToDispatch(CComputeScribbleScheduler * this, CComputeScribbleFramebuffer * * param_1, CComputeScribbleFramebuffer * * param_2)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### CComputeScribbleScheduler::DecideBufferToDispatch Called Diff


```diff
--- CComputeScribbleScheduler::DecideBufferToDispatch called
+++ CComputeScribbleScheduler::DecideBufferToDispatch called
@@ -7 +7 @@
-wil::details::FeatureImpl<__WilFeatureTraits_Feature_InkScanoutBuffer>::__private_IsEnabled
+wil::details::FeatureImpl<__WilFeatureTraits_Feature_InkScanoutBuffer2>::__private_IsEnabled
```


### CComputeScribbleScheduler::DecideBufferToDispatch Diff


```diff
--- CComputeScribbleScheduler::DecideBufferToDispatch
+++ CComputeScribbleScheduler::DecideBufferToDispatch
@@ -1,212 +1,212 @@
 
 /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
 /* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
    guard_dispatch_icall */
 /* private: long __cdecl CComputeScribbleScheduler::DecideBufferToDispatch(class
    CComputeScribbleFramebuffer * __ptr64 * __ptr64,class CComputeScribbleFramebuffer * __ptr64 *
    __ptr64) __ptr64 */
 
 long __thiscall
 CComputeScribbleScheduler::DecideBufferToDispatch
           (CComputeScribbleScheduler *this,CComputeScribbleFramebuffer **param_1,
           CComputeScribbleFramebuffer **param_2)
 
 {
   undefined8 uVar1;
   undefined1 auVar2 [16];
   undefined1 auVar3 [16];
   double dVar4;
   bool bVar5;
   char cVar6;
   long lVar7;
   longlong *plVar8;
   CComputeScribbleFramebuffer *pCVar9;
   ulonglong uVar10;
   ulonglong uVar11;
   ulonglong uVar12;
   uint uVar13;
   undefined4 uVar14;
   longlong lVar15;
   int iVar16;
   double dVar17;
   undefined4 uVar18;
   uint uVar19;
   undefined4 uVar20;
   undefined4 uVar21;
   void *unaff_retaddr;
   undefined1 auStack_d8 [32];
   undefined4 local_b8;
   float local_b0;
   float local_a8;
   LARGE_INTEGER local_98;
   longlong *local_90;
   IOverlayMonitorTarget *local_88;
   undefined8 local_80;
   undefined8 uStack_78;
   longlong local_70;
   undefined8 uStack_68;
   ulonglong local_60;
   
   local_60 = __security_cookie ^ (ulonglong)auStack_d8;
   *param_1 = (CComputeScribbleFramebuffer *)0x0;
   *param_2 = (CComputeScribbleFramebuffer *)0x0;
   local_88 = (IOverlayMonitorTarget *)0x0;
   uVar12 = *(longlong *)(this + 0x88) - *(longlong *)(this + 0x80) >> 3;
   lVar7 = CComputeScribbleRenderer::GetOverlayMonitorTarget
                     (*(CComputeScribbleRenderer **)(this + 200),&local_88);
   if (lVar7 < 0) {
     wil::details::in1diag3::Return_Hr
               (unaff_retaddr,0x2f0,
                "onecoreuap\\windows\\dwm\\dwmcore\\rendering\\global\\computescribblescheduler.cpp",
                lVar7);
   }
   else {
     plVar8 = (longlong *)(**(code **)(*(longlong *)local_88 + 0x118))();
     local_90 = plVar8;
     if (plVar8 == (longlong *)0x0) {
       wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::
       ~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>
                 ((com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy> *)&local_90);
       wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::
       ~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>
                 ((com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy> *)&local_88);
       return -0x7767fffa;
     }
     (**(code **)(*plVar8 + 8))(plVar8);
     uVar18 = 0;
     uVar19 = 0;
     uVar20 = 0;
     uVar21 = 0;
-    bVar5 = wil::details::FeatureImpl<__WilFeatureTraits_Feature_InkScanoutBuffer>::
-            __private_IsEnabled((FeatureImpl<__WilFeatureTraits_Feature_InkScanoutBuffer> *)
-                                &`private:_static_class_wil::details::FeatureImpl<__WilFeatureTraits_Feature_InkScanoutBuffer>&___ptr64___cdecl_wil::Feature<__WilFeatureTraits_Feature_InkScanoutBuffer>::GetImpl(void)'
+    bVar5 = wil::details::FeatureImpl<__WilFeatureTraits_Feature_InkScanoutBuffer2>::
+            __private_IsEnabled((FeatureImpl<__WilFeatureTraits_Feature_InkScanoutBuffer2> *)
+                                &`private:_static_class_wil::details::FeatureImpl<__WilFeatureTraits_Feature_InkScanoutBuffer2>&___ptr64___cdecl_wil::Feature<__WilFeatureTraits_Feature_InkScanoutBuffer2>::GetImpl(void)'
                                  ::__l2::impl);
     if ((bVar5) && (this[0xd8] != (CComputeScribbleScheduler)0x0)) {
       local_98.QuadPart = 0;
       iVar16 = (**(code **)*plVar8)(plVar8,&_GUID_78f95c0d_ffd7_47bf_b918_8d28789a139f,&local_98);
       if (iVar16 < 0) {
         wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::
         ~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>
                   ((com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy> *)&local_98.s);
         wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::
         ~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>
                   ((com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy> *)&local_90);
         lVar7 = -0x7767d0fc;
       }
       else {
         plVar8 = (longlong *)(**(code **)(*(longlong *)local_98 + 0x58))();
-        cVar6 = (**(code **)(*plVar8 + 0xa0))(plVar8);
-        if (cVar6 != '\0') {
+        if ((plVar8 != (longlong *)0x0) &&
+           (cVar6 = (**(code **)(*plVar8 + 0xa0))(plVar8), cVar6 != '\0')) {
           iVar16 = (**(code **)(*plVar8 + 0x58))(plVar8);
           pCVar9 = (CComputeScribbleFramebuffer *)(**(code **)(*plVar8 + 200))(plVar8);
           *param_1 = pCVar9;
           wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::
           ~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>
                     ((com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy> *)&local_98.s);
           goto LAB_0;
         }
         wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::
         ~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>
                   ((com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy> *)&local_98.s);
         wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::
         ~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>
                   ((com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy> *)&local_90);
         lVar7 = -0x7767ff75;
       }
     }
     else {
       local_80 = 0;
       uStack_78 = 0;
       local_70 = 0;
       uStack_68 = 0;
       lVar7 = (**(code **)(*plVar8 + 0x88))(plVar8,&local_80);
       if (-1 < lVar7) {
         local_98.QuadPart = 0;
         QueryPerformanceCounter(&local_98);
         auVar3._8_8_ = 0;
         auVar3._0_8_ = DAT_1;
         auVar2._8_8_ = 0;
         auVar2._0_8_ = local_98.QuadPart - local_70;
         auVar2 = auVar2 / (auVar3 / (undefined1  [16])0xf4240 & (undefined1  [16])0x3fffffffffff);
         uVar10 = auVar2._0_8_;
         if ((longlong)uVar10 < 0) {
           dVar4 = (double)(uVar10 >> 1 | (ulonglong)(auVar2._0_4_ & 1));
           dVar4 = dVar4 + dVar4;
         }
         else {
           dVar4 = (double)(longlong)uVar10;
         }
         uVar13 = 0;
         iVar16 = (int)local_80 - *(int *)(this + 0xc0);
         if ((uint)uVar12 != 0) {
           do {
             uVar10 = (ulonglong)(uVar13 + iVar16) % (uVar12 & 0xffffffff);
             pCVar9 = *(CComputeScribbleFramebuffer **)(*(longlong *)(this + 0x80) + uVar10 * 8);
             if (pCVar9[0x100] != (CComputeScribbleFramebuffer)0x0) {
               if (this[0xd8] == (CComputeScribbleScheduler)0x0) {
                 lVar15 = uVar10 * 0x20;
                 dVar17 = (*(double *)(this + 0x30) - dVar4 / 1000000.0) -
                          (*(double *)(lVar15 + 8 + *(longlong *)(this + 0x98)) -
                          (double)uVar13 * *(double *)(this + 0x30));
                 if (uVar13 == 0) {
                   uVar1 = *(undefined8 *)(lVar15 + 8 + *(longlong *)(this + 0x98));
                   uVar20 = (undefined4)uVar1;
                   uVar21 = (undefined4)((ulonglong)uVar1 >> 0x20);
                   uVar18 = SUB84(dVar17,0);
                   uVar19 = (uint)((ulonglong)dVar17 >> 0x20) & 0x7fffffff;
                 }
                 if (0.0024999999441206455 <= ABS(dVar17)) goto LAB_2;
               }
               *param_1 = pCVar9;
               break;
             }
 LAB_2:
             uVar13 = uVar13 + 1;
           } while (uVar13 < (uint)uVar12);
         }
 LAB_0:
         uVar10 = (ulonglong)(iVar16 + 1) % (uVar12 & 0xffffffff);
         uVar11 = uVar10;
         if (*param_1 != (CComputeScribbleFramebuffer *)0x0) {
           uVar11 = (ulonglong)(*(int *)(*param_1 + 0x104) + 1) % (uVar12 & 0xffffffff);
         }
         pCVar9 = *(CComputeScribbleFramebuffer **)(*(longlong *)(this + 0x80) + uVar11 * 8);
         if (pCVar9[0x100] != (CComputeScribbleFramebuffer)0x0) {
           *param_2 = pCVar9;
         }
         if ((Microsoft_Windows_Dwm_CoreEnableBits._2_1_ & 0x10) != 0) {
           uVar14 = 0xffffffff;
           local_a8 = (float)(double)CONCAT44(uVar21,uVar20);
           local_b0 = (float)(double)CONCAT44(uVar19,uVar18);
           local_b8 = uVar14;
           if (*param_2 != (CComputeScribbleFramebuffer *)0x0) {
             local_b8 = *(undefined4 *)(*param_2 + 0x104);
           }
           if (*param_1 != (CComputeScribbleFramebuffer *)0x0) {
             uVar14 = *(undefined4 *)(*param_1 + 0x104);
           }
           McTemplateU0qqqff_EventWriteTransfer(local_a8,pCVar9,uVar10,uVar14);
         }
         wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::
         ~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>
                   ((com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy> *)&local_90);
         wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::
         ~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>
                   ((com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy> *)&local_88);
         return 0;
       }
       wil::details::in1diag3::Return_Hr
                 (unaff_retaddr,0x315,
                  "onecoreuap\\windows\\dwm\\dwmcore\\rendering\\global\\computescribblescheduler.cpp"
                  ,lVar7);
       wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::
       ~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>
                 ((com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy> *)&local_90);
     }
   }
   wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::
   ~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>
             ((com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy> *)&local_88);
   return lVar7;
 }
 

```


## CCursorVisual::CollectOcclusion

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.5|
|i_ratio|0.18|
|m_ratio|0.71|
|b_ratio|0.71|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|CollectOcclusion|CollectOcclusion|
|fullname|CCursorVisual::CollectOcclusion|CCursorVisual::CollectOcclusion|
|refcount|3|3|
|`length`|76|44|
|`called`|CCursorVisual::HasVisibleCursor<br>COcclusionContext::CollectCursor|COcclusionContext::CollectCursor|
|calling|||
|paramcount|3|3|
|`address`|1802939d0|1802927b0|
|sig|long __thiscall CollectOcclusion(CCursorVisual * this, COcclusionContext * param_1, COcclusionInfo * param_2)|long __thiscall CollectOcclusion(CCursorVisual * this, COcclusionContext * param_1, COcclusionInfo * param_2)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### CCursorVisual::CollectOcclusion Called Diff


```diff
--- CCursorVisual::CollectOcclusion called
+++ CCursorVisual::CollectOcclusion called
@@ -1 +0,0 @@
-CCursorVisual::HasVisibleCursor
```


### CCursorVisual::CollectOcclusion Diff


```diff
--- CCursorVisual::CollectOcclusion
+++ CCursorVisual::CollectOcclusion
@@ -1,21 +1,15 @@
 
 /* public: virtual long __cdecl CCursorVisual::CollectOcclusion(class COcclusionContext *
    __ptr64,class COcclusionInfo * __ptr64) __ptr64 */
 
 long __thiscall
 CCursorVisual::CollectOcclusion
           (CCursorVisual *this,COcclusionContext *param_1,COcclusionInfo *param_2)
 
 {
-  bool bVar1;
-  
-  if (((param_1[0x61e] != (COcclusionContext)0x0) && (this[0x2b8] != (CCursorVisual)0x0)) &&
-     (this[0x2b9] == (CCursorVisual)0x0)) {
-    bVar1 = HasVisibleCursor(this);
-    if (bVar1) {
-      COcclusionContext::CollectCursor(param_1,this);
-    }
+  if ((this[0x2b8] != (CCursorVisual)0x0) && (*(longlong *)(this + 0x2c0) != 0)) {
+    COcclusionContext::CollectCursor(param_1,this);
   }
   return 0;
 }
 

```


## COverlayContext::UpdateMPOCaps

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.83|
|i_ratio|0.65|
|m_ratio|0.96|
|b_ratio|0.96|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|UpdateMPOCaps|UpdateMPOCaps|
|fullname|COverlayContext::UpdateMPOCaps|COverlayContext::UpdateMPOCaps|
|refcount|3|3|
|`length`|338|366|
|`called`|CDirectFlipInfo::DisableIndependentFlip<br>COverlayContext::EnsureIndependentFlipState<br>GetCurrentFrameId<br>McTemplateU0qq_EventWriteTransfer<br>MilInstrumentationCheckHR_MaybeFailFast<br>_guard_dispatch_icall$thunk$10345483385596137414<br>wil::details::FeatureImpl<__WilFeatureTraits_Feature_DWM_MPO_Enhancement>::__private_IsEnabled|CDirectFlipInfo::DisableIndependentFlip<br>COverlayContext::ClearHardwareCursor<br>COverlayContext::EnsureIndependentFlipState<br>GetCurrentFrameId<br>McTemplateU0qq_EventWriteTransfer<br>MilInstrumentationCheckHR_MaybeFailFast<br>_guard_dispatch_icall$thunk$10345483385596137414<br>wil::details::FeatureImpl<__WilFeatureTraits_Feature_DWM_MPO_Enhancement>::__private_IsEnabled<br>wil::details::FeatureImpl<__WilFeatureTraits_Feature_DesktopDWMCursor>::__private_IsEnabled|
|calling|CDDisplayRenderTarget::UpdateMPOCaps<br>CLegacyRenderTarget::UpdateMPOCaps|CDDisplayRenderTarget::UpdateMPOCaps<br>CLegacyRenderTarget::UpdateMPOCaps|
|paramcount|1|1|
|`address`|18018d79c|18018a39c|
|sig|long __thiscall UpdateMPOCaps(COverlayContext * this)|long __thiscall UpdateMPOCaps(COverlayContext * this)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### COverlayContext::UpdateMPOCaps Called Diff


```diff
--- COverlayContext::UpdateMPOCaps called
+++ COverlayContext::UpdateMPOCaps called
@@ -1,0 +2 @@
+COverlayContext::ClearHardwareCursor
@@ -7,0 +9 @@
+wil::details::FeatureImpl<__WilFeatureTraits_Feature_DesktopDWMCursor>::__private_IsEnabled
```


### COverlayContext::UpdateMPOCaps Diff


```diff
--- COverlayContext::UpdateMPOCaps
+++ COverlayContext::UpdateMPOCaps
@@ -1,55 +1,62 @@
 
 /* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
    guard_dispatch_icall */
 /* public: long __cdecl COverlayContext::UpdateMPOCaps(void) __ptr64 */
 
 long __thiscall COverlayContext::UpdateMPOCaps(COverlayContext *this)
 
 {
   OverlayPlaneInfo *pOVar1;
   bool bVar2;
   int iVar3;
   longlong *plVar4;
   __uint64 _Var5;
   OverlayPlaneInfo *pOVar6;
   
   plVar4 = (longlong *)(**(code **)(**(longlong **)this + 0x118))();
-  if (*(CDirectFlipInfo **)(this + 0x4bb0) != (CDirectFlipInfo *)0x0) {
-    CDirectFlipInfo::DisableIndependentFlip(*(CDirectFlipInfo **)(this + 0x4bb0));
+  if (*(CDirectFlipInfo **)(this + 0x4c38) != (CDirectFlipInfo *)0x0) {
+    CDirectFlipInfo::DisableIndependentFlip(*(CDirectFlipInfo **)(this + 0x4c38));
   }
   pOVar1 = *(OverlayPlaneInfo **)(this + 0x3190);
   for (pOVar6 = *(OverlayPlaneInfo **)(this + 0x3188); pOVar6 != pOVar1; pOVar6 = pOVar6 + 0x188) {
     EnsureIndependentFlipState(this,pOVar6,false);
   }
   if (CDeviceManager::s_bXbox == false) {
     _Var5 = GetCurrentFrameId();
-    *(__uint64 *)(this + 0x4bc0) = _Var5;
+    *(__uint64 *)(this + 0x4c48) = _Var5;
   }
-  this[0x4bfb] = (COverlayContext)0x1;
+  this[0x4c84] = (COverlayContext)0x1;
   iVar3 = (**(code **)(*plVar4 + 0x158))(plVar4);
   if (iVar3 < 0) {
-    MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,iVar3,0x8af,(void *)0x0);
+    MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,iVar3,0x947,(void *)0x0);
   }
   else {
     if (CCommonRegistryData::m_dwOverlayTestMode == 5) {
       *(undefined4 *)(this + 0x28) = 1;
       bVar2 = wil::details::FeatureImpl<__WilFeatureTraits_Feature_DWM_MPO_Enhancement>::
               __private_IsEnabled((FeatureImpl<__WilFeatureTraits_Feature_DWM_MPO_Enhancement> *)
                                   &`private:_static_class_wil::details::FeatureImpl<__WilFeatureTraits_Feature_DWM_MPO_Enhancement>&___ptr64___cdecl_wil::Feature<__WilFeatureTraits_Feature_DWM_MPO_Enhancement>::GetImpl(void)'
                                    ::__l2::impl);
       *(uint *)(this + 0x2c) = bVar2 ^ 1;
       *(undefined4 *)(this + 0x30) = 0;
     }
     if ((*(longlong *)(this + 0x3190) != *(longlong *)(this + 0x3188)) ||
        (this[0x4a91] != (COverlayContext)0x0)) {
       (**(code **)(*(longlong *)(*(longlong *)this + 8) + 0x30))();
     }
+    bVar2 = wil::details::FeatureImpl<__WilFeatureTraits_Feature_DesktopDWMCursor>::
+            __private_IsEnabled((FeatureImpl<__WilFeatureTraits_Feature_DesktopDWMCursor> *)
+                                &`private:_static_class_wil::details::FeatureImpl<__WilFeatureTraits_Feature_DesktopDWMCursor>&___ptr64___cdecl_wil::Feature<__WilFeatureTraits_Feature_DesktopDWMCursor>::GetImpl(void)'
+                                 ::__l2::impl);
+    if (bVar2) {
+      ClearHardwareCursor(this);
+    }
     if ((Microsoft_Windows_Dwm_CoreEnableBits._1_1_ & 2) != 0) {
       McTemplateU0qq_EventWriteTransfer
                 (&Microsoft_Windows_Dwm_Core_Provider_Context,&EVTDESC_OVERLAY_GETCAPS,
                  *(undefined4 *)(this + 0x28),*(undefined4 *)(this + 0x34));
     }
   }
   return iVar3;
 }
 

```


## CDrawingContext::FillRectanglesWithDrawListBitmap

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,refcount,length,address,called|
|ratio|0.15|
|i_ratio|0.29|
|m_ratio|0.98|
|b_ratio|0.66|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|FillRectanglesWithDrawListBitmap|FillRectanglesWithDrawListBitmap|
|fullname|CDrawingContext::FillRectanglesWithDrawListBitmap|CDrawingContext::FillRectanglesWithDrawListBitmap|
|`refcount`|13|9|
|`length`|2269|2163|
|`called`|<details><summary>Expand for full list:<br>CBrushDrawListGenerator::GenerateDrawList<br>CDrawListEntryBuilder::Render<br>CDrawListPrimitive0::`vector_deleting_destructor'<br>CDrawingContext::GetD2DInterpolationMode<br>CDrawingContext::GetOpacity<br>CDxHandleBitmapRealization::GetSize`adjustor{256}'<br>CMILRefCountImpl::AddReference<br>CMultiPrimitiveDrawListBrush::`scalar_deleting_destructor'<br>CSurfaceDrawListBrush::`scalar_deleting_destructor'<br>CSurfaceShaderComposer::SurfaceShader::SurfaceShader<br>CThreadLocalObjectCache<CMultiPrimitiveDrawListBrush,CMultiPrimitiveDrawListBrush>::Alloc</summary>CThreadLocalObjectCache<CSurfaceDrawListBrush,CSurfaceDrawListBrush>::Alloc<br>CWatermarkStack<float,64,2,10>::Grow<br>IBitmapRealizationMethodsT<CDxHandleBitmapRealization,IGDIBitmapRealization>::GetSize`adjustor{320}'<br>InterpolationMode::FromD2D1InterpolationMode<br>MilInstrumentationCheckHR_MaybeFailFast<br>__security_check_cookie<br>_guard_dispatch_icall$thunk$10345483385596137414<br>std::unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_>::~unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_><br>wil::details::in1diag3::Return_Hr</details>|<details><summary>Expand for full list:<br>CBrushDrawListGenerator::GenerateDrawList<br>CDrawListEntryBuilder::Render<br>CDrawListPrimitive0::`vector_deleting_destructor'<br>CDrawingContext::GetD2DInterpolationMode<br>CDrawingContext::GetOpacity<br>CDxHandleBitmapRealization::GetSize`adjustor{256}'<br>CMultiPrimitiveDrawListBrush::`scalar_deleting_destructor'<br>CSurfaceDrawListBrush::CSurfaceDrawListBrush<br>CSurfaceDrawListBrush::`scalar_deleting_destructor'<br>CSurfaceDrawListBrush::~CSurfaceDrawListBrush<br>CSurfaceShaderComposer::SurfaceShader::SurfaceShader</summary>CThreadLocalObjectCache<CMultiPrimitiveDrawListBrush,CMultiPrimitiveDrawListBrush>::Alloc<br>CThreadLocalObjectCache<CSurfaceDrawListBrush,CSurfaceDrawListBrush>::Alloc<br>CThreadLocalObjectCache<CSurfaceDrawListBrush,CSurfaceDrawListBrush>::Free<br>CWatermarkStack<float,64,2,10>::Grow<br>IBitmapRealizationMethodsT<CDxHandleBitmapRealization,IGDIBitmapRealization>::GetSize`adjustor{320}'<br>InterpolationMode::FromD2D1InterpolationMode<br>MilInstrumentationCheckHR_MaybeFailFast<br>__security_check_cookie<br>_guard_dispatch_icall$thunk$10345483385596137414<br>std::unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_>::~unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_><br>wil::details::in1diag3::Return_Hr</details>|
|calling|CDrawingContext::DrawBitmap<br>CDrawingContext::DrawBitmapRealization|CDrawingContext::DrawBitmap<br>CDrawingContext::DrawBitmapRealization|
|paramcount|4|4|
|`address`|18009f670|1800ba9d0|
|sig|long __thiscall FillRectanglesWithDrawListBitmap(CDrawingContext * this, CDrawListBitmap * param_1, span<D2D_RECT_F_const_,-1> * param_2, MILMatrix3x2 * param_3)|long __thiscall FillRectanglesWithDrawListBitmap(CDrawingContext * this, CDrawListBitmap * param_1, span<D2D_RECT_F_const_,-1> * param_2, MILMatrix3x2 * param_3)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### CDrawingContext::FillRectanglesWithDrawListBitmap Called Diff


```diff
--- CDrawingContext::FillRectanglesWithDrawListBitmap called
+++ CDrawingContext::FillRectanglesWithDrawListBitmap called
@@ -7 +6,0 @@
-CMILRefCountImpl::AddReference
@@ -8,0 +8 @@
+CSurfaceDrawListBrush::CSurfaceDrawListBrush
@@ -9,0 +10 @@
+CSurfaceDrawListBrush::~CSurfaceDrawListBrush
@@ -12,0 +14 @@
+CThreadLocalObjectCache<CSurfaceDrawListBrush,CSurfaceDrawListBrush>::Free
```


### CDrawingContext::FillRectanglesWithDrawListBitmap Diff


```diff
--- CDrawingContext::FillRectanglesWithDrawListBitmap
+++ CDrawingContext::FillRectanglesWithDrawListBitmap
@@ -1,379 +1,352 @@
 
 /* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
    guard_dispatch_icall */
 /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
-/* WARNING: Removing unreachable block (ram,0x00018009fa04) */
-/* WARNING: Removing unreachable block (ram,0x00018009f9f3) */
-/* WARNING: Removing unreachable block (ram,0x00018009f9e3) */
-/* WARNING: Removing unreachable block (ram,0x00018009ff3c) */
+/* WARNING: Removing unreachable block (ram,0x0001800bacdd) */
+/* WARNING: Removing unreachable block (ram,0x0001800baccc) */
+/* WARNING: Removing unreachable block (ram,0x0001800bacbc) */
+/* WARNING: Removing unreachable block (ram,0x0001800bb232) */
+/* WARNING: Removing unreachable block (ram,0x0001800bb074) */
 /* private: long __cdecl CDrawingContext::FillRectanglesWithDrawListBitmap(class CDrawListBitmap
    const & __ptr64,class gsl::span<struct D2D_RECT_F const ,-1> const & __ptr64,class MILMatrix3x2
    const & __ptr64) __ptr64 */
 
 long __thiscall
 CDrawingContext::FillRectanglesWithDrawListBitmap
           (CDrawingContext *this,CDrawListBitmap *param_1,span<D2D_RECT_F_const_,_1> *param_2,
           MILMatrix3x2 *param_3)
 
 {
   CDrawListEntryBuilder *this_00;
   CWatermarkStack<float,64,2,10> *this_01;
   IBitmapRealizationMethodsT<CDxHandleBitmapRealization,IGDIBitmapRealization> *this_02;
   code *pcVar1;
-  CMILRefCountImpl *this_03;
   longlong *plVar2;
   undefined8 uVar3;
   char cVar4;
   D2D1_INTERPOLATION_MODE DVar5;
   Enum EVar6;
   long lVar7;
   CSurfaceDrawListBrush *pCVar8;
   CSurfaceDrawListBrush *pCVar9;
   longlong lVar10;
   ulonglong *puVar11;
   __uint64 _Var12;
   ulonglong uVar13;
   CSurfaceDrawListBrush *pCVar14;
   GenerateDrawListProperties *pGVar15;
-  uint uVar16;
-  longlong *plVar17;
+  CSurfaceDrawListBrush *pCVar16;
+  uint uVar17;
+  longlong *plVar18;
   CDrawListEntryBuilder *pCVar19;
   float fVar20;
   float fVar21;
+  float fVar22;
   void *unaff_retaddr;
-  undefined1 auStackY_238 [32];
-  undefined2 local_208;
-  undefined1 local_1f8 [8];
-  float local_1f0;
-  float fStack_1ec;
-  undefined4 uStack_1e8;
-  float fStack_1e4;
-  float local_1e0;
-  undefined4 uStack_1dc;
-  float fStack_1d8;
-  float fStack_1d4;
-  undefined8 local_1b8;
-  undefined8 uStack_1b0;
-  undefined4 local_1a8;
-  undefined4 local_15c;
-  undefined1 local_158;
-  CDrawingContext *local_148;
-  CSurfaceDrawListBrush *local_140;
-  unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_> local_138 [8];
-  unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_> local_130 [8];
-  unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_> local_128 [8];
-  ulonglong uStack_120;
-  undefined8 local_118;
-  undefined4 uStack_110;
-  undefined4 uStack_10c;
-  undefined4 uStack_108;
-  float fStack_104;
-  undefined4 local_f8;
-  undefined4 uStack_f4;
-  undefined4 uStack_f0;
-  float fStack_ec;
-  ulonglong local_e8;
-  CSurfaceDrawListBrush *pCVar18;
+  undefined1 auStackY_1f8 [32];
+  undefined1 local_1c8;
+  undefined2 local_1c7;
+  undefined1 local_1b8 [16];
+  undefined8 local_1a8;
+  undefined8 uStack_1a0;
+  undefined4 local_198;
+  undefined4 local_14c;
+  undefined1 local_148;
+  undefined8 local_138;
+  CSurfaceDrawListBrush *local_130;
+  float local_128 [2];
+  float local_120;
+  float local_11c;
+  undefined4 local_118 [2];
+  ulonglong uStack_110;
+  undefined8 local_108;
+  undefined4 uStack_100;
+  undefined4 uStack_fc;
+  undefined4 uStack_f8;
+  float fStack_f4;
+  undefined4 local_e8;
+  undefined4 uStack_e4;
+  undefined4 uStack_e0;
+  float fStack_dc;
+  ulonglong local_d8;
   
-  local_e8 = __security_cookie ^ (ulonglong)auStackY_238;
-  pCVar18 = (CSurfaceDrawListBrush *)0x0;
+  local_d8 = __security_cookie ^ (ulonglong)auStackY_1f8;
+  pCVar16 = (CSurfaceDrawListBrush *)0x0;
   this_02 = *(IBitmapRealizationMethodsT<CDxHandleBitmapRealization,IGDIBitmapRealization> **)
              (param_1 + 8);
-  pCVar8 = pCVar18;
-  pCVar14 = pCVar18;
+  pCVar8 = pCVar16;
+  pCVar14 = pCVar16;
   if (this_02 != (IBitmapRealizationMethodsT<CDxHandleBitmapRealization,IGDIBitmapRealization> *)0x0
      ) {
     pcVar1 = *(code **)(*(longlong *)this_02 + 0x20);
     if (pcVar1 == IBitmapRealizationMethodsT<CDxHandleBitmapRealization,IGDIBitmapRealization>::
                   GetSize_adjustor_320__) {
       puVar11 = (ulonglong *)
                 IBitmapRealizationMethodsT<CDxHandleBitmapRealization,IGDIBitmapRealization>::
                 GetSize_adjustor_320__(this_02);
     }
     else if (pcVar1 == CDxHandleBitmapRealization::GetSize_adjustor_256__) {
       puVar11 = (ulonglong *)
                 CDxHandleBitmapRealization::GetSize_adjustor_256__
                           ((CDxHandleBitmapRealization *)this_02);
     }
     else {
-      puVar11 = (ulonglong *)(*pcVar1)(this_02,local_1f8);
+      puVar11 = (ulonglong *)(*pcVar1)(this_02,local_1b8);
     }
     pCVar8 = (CSurfaceDrawListBrush *)*puVar11;
     pCVar14 = (CSurfaceDrawListBrush *)((ulonglong)pCVar8 >> 0x20);
   }
-  uStack_1e8 = 0;
-  uStack_1dc = 0;
-  fVar20 = 1.0 / (float)((ulonglong)pCVar8 & 0xffffffff);
-  fVar21 = 1.0 / (float)(longlong)pCVar14;
-  fStack_1d8 = 0.0 - fVar20 * 0.0;
-  fStack_1d4 = 0.0 - fVar21 * 0.0;
-  fStack_1e4 = fStack_1d8 * 0.0;
-  local_1e0 = fStack_1d4 * 0.0;
-  local_1f0 = fVar20 * *(float *)param_3 + *(float *)(param_3 + 4) * 0.0 + fStack_1e4;
-  fStack_1ec = fVar21 * *(float *)(param_3 + 4) + *(float *)param_3 * 0.0 + local_1e0;
-  fStack_1e4 = fVar20 * *(float *)(param_3 + 8) + *(float *)(param_3 + 0xc) * 0.0 + fStack_1e4;
-  fStack_1d4 = fVar21 * *(float *)(param_3 + 0x14) + *(float *)(param_3 + 0x10) * 0.0 + fStack_1d4;
-  local_1e0 = fVar21 * *(float *)(param_3 + 0xc) + *(float *)(param_3 + 8) * 0.0 + local_1e0;
-  fStack_1d8 = fVar20 * *(float *)(param_3 + 0x10) + *(float *)(param_3 + 0x14) * 0.0 + fStack_1d8;
+  local_128[1] = 0.0;
+  local_118[0] = 0x3f800000;
+  fVar21 = 1.0 / (float)((ulonglong)pCVar8 & 0xffffffff);
+  fVar22 = 1.0 / (float)(longlong)pCVar14;
+  local_120 = 0.0 - fVar21 * 0.0;
+  local_11c = 0.0 - fVar22 * 0.0;
+  fVar20 = local_120 * 0.0;
+  local_128[0] = local_11c * 0.0;
+  local_138 = (CDrawingContext *)
+              CONCAT44(*(float *)(param_3 + 4) * fVar22 + *(float *)param_3 * 0.0 + local_128[0],
+                       *(float *)param_3 * fVar21 + *(float *)(param_3 + 4) * 0.0 + fVar20);
+  local_128[0] = *(float *)(param_3 + 0xc) * fVar22 + *(float *)(param_3 + 8) * 0.0 + local_128[0];
+  local_130 = (CSurfaceDrawListBrush *)
+              ((ulonglong)
+               (uint)(*(float *)(param_3 + 8) * fVar21 + *(float *)(param_3 + 0xc) * 0.0 + fVar20)
+              << 0x20);
+  local_120 = *(float *)(param_3 + 0x10) * fVar21 + *(float *)(param_3 + 0x14) * 0.0 + local_120;
+  local_11c = *(float *)(param_3 + 0x14) * fVar22 + *(float *)(param_3 + 0x10) * 0.0 + local_11c;
   DVar5 = GetD2DInterpolationMode(this);
   _Var12 = (__uint64)DVar5;
   EVar6 = InterpolationMode::FromD2D1InterpolationMode(DVar5);
   pCVar8 = CThreadLocalObjectCache<CSurfaceDrawListBrush,CSurfaceDrawListBrush>::Alloc(_Var12);
-  if (pCVar8 == (CSurfaceDrawListBrush *)0x0) {
-    lVar7 = -0x7ff8fff2;
-    MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,-0x7ff8fff2,0x3a,(void *)0x0);
-    uVar16 = 0x351;
-    goto LAB_0;
-  }
-  local_208 = CONCAT11(1,(char)EVar6);
-  *(longlong *)(pCVar8 + 8) = 0x3f800000;
-  *(undefined4 *)(pCVar8 + 0x10) = 0;
-  *(undefined8 *)(pCVar8 + 0x14) = 0x3f800000;
-  *(undefined4 *)(pCVar8 + 0x1c) = 0;
-  pCVar8[0x34] = (CSurfaceDrawListBrush)0x0;
-  *(undefined ***)pCVar8 = &CSurfaceDrawListBrush::_vftable_;
-  this_03 = *(CMILRefCountImpl **)param_1;
-  *(CMILRefCountImpl **)(pCVar8 + 0x38) = this_03;
-  if (this_03 != (CMILRefCountImpl *)0x0) {
-    if (*(code **)(*(longlong *)this_03 + 8) == CMILRefCountImpl::AddReference) {
-      CMILRefCountImpl::AddReference(this_03);
-    }
-    else {
-      (**(code **)(*(longlong *)this_03 + 8))();
+  if (pCVar8 != (CSurfaceDrawListBrush *)0x0) {
+    local_1c8 = (undefined1)EVar6;
+    local_1c7 = 0x101;
+    pCVar8 = (CSurfaceDrawListBrush *)
+             CSurfaceDrawListBrush::CSurfaceDrawListBrush(pCVar8,param_1,&local_1c8,&local_138);
+    if (pCVar8 != (CSurfaceDrawListBrush *)0x0) {
+      pCVar8[0x34] = (CSurfaceDrawListBrush)0x1;
+      *(longlong *)(pCVar8 + 0x20) = 0;
+      *(longlong *)(pCVar8 + 0x28) = 0;
+      *(undefined4 *)(pCVar8 + 0x30) = 0;
+      local_e8 = 0x3f800000;
+      uStack_e4 = 0x3f800000;
+      uStack_e0 = 0x3f800000;
+      fStack_dc = GetOpacity(this);
+      local_138 = this;
+      CSurfaceShaderComposer::SurfaceShader::SurfaceShader((SurfaceShader *)&local_130);
+      CSurfaceShaderComposer::SurfaceShader::SurfaceShader((SurfaceShader *)local_128);
+      CSurfaceShaderComposer::SurfaceShader::SurfaceShader((SurfaceShader *)&local_120);
+      CSurfaceShaderComposer::SurfaceShader::SurfaceShader((SurfaceShader *)local_118);
+      uStack_110 = 0;
+      local_108 = 0;
+      uStack_100 = 0x3f800000;
+      uStack_fc = 0x3f800000;
+      uStack_f8 = 0x3f800000;
+      fStack_f4 = 1.0;
+      local_1a8 = 0;
+      uStack_1a0 = 0;
+      local_198 = 0;
+      local_14c = 0x101;
+      local_148 = 0;
+      cVar4 = (**(code **)(*(longlong *)pCVar8 + 0x18))(pCVar8);
+      uVar13 = local_108 >> 0x20;
+      if (cVar4 != '\0') {
+        uVar13 = 0x80;
+      }
+      local_108 = CONCAT44((int)uVar13,(undefined4)local_108);
+      pCVar9 = CThreadLocalObjectCache<CMultiPrimitiveDrawListBrush,CMultiPrimitiveDrawListBrush>::
+               Alloc(uVar13);
+      pCVar14 = local_130;
+      uVar17 = 0x8016ae30;
+      if (pCVar9 == (CSurfaceDrawListBrush *)0x0) {
+        lVar7 = -0x7ff8fff2;
+        MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,-0x7ff8fff2,0x1f,(void *)0x0);
+        MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,-0x7ff8fff2,0x378,(void *)0x0);
+      }
+      else {
+        *(undefined8 *)(pCVar9 + 8) = 0x3f800000;
+        *(undefined4 *)(pCVar9 + 0x10) = 0;
+        *(undefined8 *)(pCVar9 + 0x14) = 0x3f800000;
+        *(undefined4 *)(pCVar9 + 0x1c) = 0;
+        pCVar9[0x34] = (CSurfaceDrawListBrush)0x0;
+        pCVar9[0x40] = (CSurfaceDrawListBrush)0x0;
+        *(undefined ***)pCVar9 = &CMultiPrimitiveDrawListBrush::_vftable_;
+        *(CSurfaceDrawListBrush **)(pCVar9 + 0x48) = pCVar8;
+        uVar3 = *(undefined8 *)(param_2 + 8);
+        *(undefined8 *)(pCVar9 + 0x50) = *(undefined8 *)param_2;
+        *(undefined8 *)(pCVar9 + 0x58) = uVar3;
+        uStack_100 = local_e8;
+        uStack_fc = uStack_e4;
+        uStack_f8 = uStack_e0;
+        fStack_f4 = fStack_dc;
+        if (local_130 != (CSurfaceDrawListBrush *)0x0) {
+          pcVar1 = (code *)**(undefined8 **)local_130;
+          local_130 = pCVar9;
+          uVar17 = 0x8016ae30;
+          if (pcVar1 == CMultiPrimitiveDrawListBrush::_scalar_deleting_destructor_) {
+            CMultiPrimitiveDrawListBrush::_scalar_deleting_destructor_
+                      ((CMultiPrimitiveDrawListBrush *)pCVar14,1);
+            pCVar9 = local_130;
+          }
+          else if (pcVar1 == CSurfaceDrawListBrush::_scalar_deleting_destructor_) {
+            CSurfaceDrawListBrush::_scalar_deleting_destructor_(pCVar14,1);
+            pCVar9 = local_130;
+          }
+          else {
+            uVar17 = 0x8016ae30;
+            if (pcVar1 == CDrawListPrimitive0::_vector_deleting_destructor_) {
+              CDrawListPrimitive0::_vector_deleting_destructor_((CDrawListPrimitive0 *)pCVar14,1);
+              pCVar9 = local_130;
+            }
+            else {
+              (*pcVar1)();
+              pCVar9 = local_130;
+            }
+          }
+        }
+        local_130 = pCVar9;
+        if ((uint)uStack_110 < 2) {
+          uStack_110 = CONCAT44(uStack_110._4_4_,1);
+        }
+        this_00 = (CDrawListEntryBuilder *)(this + 0xd70);
+        pGVar15 = (GenerateDrawListProperties *)&local_1a8;
+        pCVar19 = this_00;
+        lVar7 = CBrushDrawListGenerator::GenerateDrawList
+                          ((CBrushDrawListGenerator *)&local_138,pGVar15,this_00);
+        pCVar8 = pCVar16;
+        if (lVar7 < 0) {
+          uVar17 = 0x380;
+        }
+        else {
+          this_01 = (CWatermarkStack<float,64,2,10> *)(this + 0xc58);
+          if ((*(int *)(this + 0xc60) != *(int *)(this + 0xc64)) ||
+             (lVar7 = CWatermarkStack<float,64,2,10>::Grow
+                                (this_01,(__uint64)pGVar15,(uint)pCVar19,uVar17,(void **)this_01),
+             -1 < lVar7)) {
+            *(undefined4 *)(*(longlong *)this_01 + (ulonglong)*(uint *)(this + 0xc60) * 4) =
+                 0x3f800000;
+            *(int *)(this + 0xc60) = *(int *)(this + 0xc60) + 1;
+            uVar17 = *(uint *)(this + 0xc6c);
+            if (*(uint *)(this + 0xc6c) <= *(uint *)(this + 0xc60)) {
+              uVar17 = *(uint *)(this + 0xc60);
+            }
+            *(uint *)(this + 0xc6c) = uVar17;
+            lVar7 = CDrawListEntryBuilder::Render(this_00,this);
+            if (lVar7 < 0) {
+              MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar7,0x386,(void *)0x0);
+            }
+            if (*(int *)(this + 0xc60) != 0) {
+              *(int *)(this + 0xc60) = *(int *)(this + 0xc60) + -1;
+            }
+            goto LAB_0;
+          }
+          wil::details::in1diag3::Return_Hr
+                    (unaff_retaddr,0x83,
+                     "onecoreuap\\windows\\DWM\\dwmcore\\common\\WatermarkStack.inl",lVar7);
+          uVar17 = 899;
+        }
+        MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar7,uVar17,(void *)0x0);
+      }
+LAB_0:
+      plVar2 = *(longlong **)(this + 0xde8);
+      for (plVar18 = *(longlong **)(this + 0xde0); plVar18 != plVar2; plVar18 = plVar18 + 1) {
+        if ((longlong *)*plVar18 != (longlong *)0x0) {
+          (**(code **)(*(longlong *)*plVar18 + 8))();
+          *plVar18 = 0;
+        }
+      }
+      lVar10 = *(longlong *)(this + 0xde8) - *(longlong *)(this + 0xde0) >> 3;
+      if (lVar10 != 0) {
+        *(longlong *)(this + 0xde8) = *(longlong *)(this + 0xde8) + lVar10 * -8;
+      }
+      this[0x1ef8] = (CDrawingContext)0x0;
+      plVar18 = *(longlong **)(this + 0xdc0);
+      *(undefined8 *)(this + 0xdc0) = 0;
+      if (plVar18 != (longlong *)0x0) {
+        (**(code **)(*plVar18 + 8))();
+      }
+      plVar18 = *(longlong **)(this + 0xdc8);
+      *(undefined8 *)(this + 0xdc8) = 0;
+      if (plVar18 != (longlong *)0x0) {
+        (**(code **)(*plVar18 + 8))();
+      }
+      plVar18 = *(longlong **)(this + 0xdd0);
+      *(undefined8 *)(this + 0xdd0) = 0;
+      if (plVar18 != (longlong *)0x0) {
+        (**(code **)(*plVar18 + 8))();
+      }
+      plVar18 = *(longlong **)(this + 0xdd8);
+      *(undefined8 *)(this + 0xdd8) = 0;
+      if (plVar18 != (longlong *)0x0) {
+        (**(code **)(*plVar18 + 8))();
+      }
+      uStack_100 = 0x3f800000;
+      uStack_fc = 0x3f800000;
+      uStack_f8 = 0x3f800000;
+      fStack_f4 = 1.0;
+      local_108 = local_108 & 0xffffffff;
+      if ((uint)uStack_110 != 0) {
+        do {
+          pCVar14 = (&local_130)[(longlong)pCVar16];
+          (&local_130)[(longlong)pCVar16] = (CSurfaceDrawListBrush *)0x0;
+          if (pCVar14 != (CSurfaceDrawListBrush *)0x0) {
+            pcVar1 = (code *)**(undefined8 **)pCVar14;
+            if (pcVar1 == CMultiPrimitiveDrawListBrush::_scalar_deleting_destructor_) {
+              CMultiPrimitiveDrawListBrush::_scalar_deleting_destructor_
+                        ((CMultiPrimitiveDrawListBrush *)pCVar14,1);
+            }
+            else if (pcVar1 == CSurfaceDrawListBrush::_scalar_deleting_destructor_) {
+              CSurfaceDrawListBrush::_scalar_deleting_destructor_(pCVar14,1);
+            }
+            else if (pcVar1 == CDrawListPrimitive0::_vector_deleting_destructor_) {
+              CDrawListPrimitive0::_vector_deleting_destructor_((CDrawListPrimitive0 *)pCVar14,1);
+            }
+            else {
+              (*pcVar1)();
+            }
+          }
+          uVar17 = (int)pCVar16 + 1;
+          pCVar16 = (CSurfaceDrawListBrush *)(ulonglong)uVar17;
+        } while (uVar17 < (uint)uStack_110);
+      }
+      uStack_110 = uStack_110 & 0xffffffff00000000;
+      std::unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_>::
+      ~unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_>
+                ((unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_> *)local_118);
+      std::unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_>::
+      ~unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_>
+                ((unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_> *)&local_120);
+      std::unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_>::
+      ~unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_>
+                ((unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_> *)local_128);
+      std::unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_>::
+      ~unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_>
+                ((unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_> *)&local_130);
+      if (pCVar8 != (CSurfaceDrawListBrush *)0x0) {
+        pcVar1 = (code *)**(undefined8 **)pCVar8;
+        if (pcVar1 == CMultiPrimitiveDrawListBrush::_scalar_deleting_destructor_) {
+          CMultiPrimitiveDrawListBrush::_scalar_deleting_destructor_
+                    ((CMultiPrimitiveDrawListBrush *)pCVar8,1);
+        }
+        else if (pcVar1 == CSurfaceDrawListBrush::_scalar_deleting_destructor_) {
+          CSurfaceDrawListBrush::_scalar_deleting_destructor_(pCVar8,1);
+        }
+        else if (pcVar1 == CDrawListPrimitive0::_vector_deleting_destructor_) {
+          CDrawListPrimitive0::_vector_deleting_destructor_((CDrawListPrimitive0 *)pCVar8,1);
+        }
+        else {
+          (*pcVar1)();
+        }
+      }
+      if (-1 < lVar7) {
+        return lVar7;
+      }
+      MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar7,0x35c,(void *)0x0);
+      return lVar7;
     }
   }
-  plVar17 = *(longlong **)(param_1 + 8);
-  *(longlong **)(pCVar8 + 0x40) = plVar17;
-  if (plVar17 != (longlong *)0x0) {
-    (**(code **)(*plVar17 + 8))();
-  }
-  *(CDrawListBitmap *)(pCVar8 + 0x48) = param_1[0x10];
-  *(undefined2 *)(pCVar8 + 0x50) = local_208;
-  pCVar8[0x52] = (CSurfaceDrawListBrush)0x1;
-  *(float *)(pCVar8 + 0x74) = 1.0;
-  *(ulonglong *)(pCVar8 + 0x54) = CONCAT44(fStack_1ec,local_1f0);
-  *(ulonglong *)(pCVar8 + 0x5c) = CONCAT44(fStack_1e4,uStack_1e8);
-  *(ulonglong *)(pCVar8 + 100) = CONCAT44(uStack_1dc,local_1e0);
-  *(ulonglong *)(pCVar8 + 0x6c) = CONCAT44(fStack_1d4,fStack_1d8);
-  *(undefined4 *)(pCVar8 + 0x90) = 0;
-  *(longlong *)(pCVar8 + 0x78) = -0x80000000800001;
-  *(longlong *)(pCVar8 + 0x80) = 0x7f7fffff7f7fffff;
-  pCVar8[0x34] = (CSurfaceDrawListBrush)0x1;
-  *(longlong *)(pCVar8 + 0x20) = 0;
-  *(longlong *)(pCVar8 + 0x28) = 0;
-  *(undefined4 *)(pCVar8 + 0x30) = 0;
-  local_f8 = 0x3f800000;
-  uStack_f4 = 0x3f800000;
-  uStack_f0 = 0x3f800000;
-  fStack_ec = GetOpacity(this);
-  local_148 = this;
-  CSurfaceShaderComposer::SurfaceShader::SurfaceShader((SurfaceShader *)&local_140);
-  CSurfaceShaderComposer::SurfaceShader::SurfaceShader((SurfaceShader *)local_138);
-  CSurfaceShaderComposer::SurfaceShader::SurfaceShader((SurfaceShader *)local_130);
-  CSurfaceShaderComposer::SurfaceShader::SurfaceShader((SurfaceShader *)local_128);
-  uStack_120 = 0;
-  local_118 = 0;
-  uStack_110 = 0x3f800000;
-  uStack_10c = 0x3f800000;
-  uStack_108 = 0x3f800000;
-  fStack_104 = 1.0;
-  local_1b8 = 0;
-  uStack_1b0 = 0;
-  local_1a8 = 0;
-  local_15c = 0x101;
-  local_158 = 0;
-  cVar4 = (**(code **)(*(longlong *)pCVar8 + 0x18))(pCVar8);
-  uVar13 = local_118 >> 0x20;
-  if (cVar4 != '\0') {
-    uVar13 = 0x80;
-  }
-  local_118 = CONCAT44((int)uVar13,(undefined4)local_118);
-  pCVar9 = CThreadLocalObjectCache<CMultiPrimitiveDrawListBrush,CMultiPrimitiveDrawListBrush>::Alloc
-                     (uVar13);
-  pCVar14 = local_140;
-  uVar16 = 0x8009d810;
-  if (pCVar9 == (CSurfaceDrawListBrush *)0x0) {
-    lVar7 = -0x7ff8fff2;
-    MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,-0x7ff8fff2,0x1f,(void *)0x0);
-    MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,-0x7ff8fff2,0x378,(void *)0x0);
-  }
-  else {
-    *(undefined8 *)(pCVar9 + 8) = 0x3f800000;
-    *(undefined4 *)(pCVar9 + 0x10) = 0;
-    *(undefined8 *)(pCVar9 + 0x14) = 0x3f800000;
-    *(undefined4 *)(pCVar9 + 0x1c) = 0;
-    pCVar9[0x34] = (CSurfaceDrawListBrush)0x0;
-    pCVar9[0x40] = (CSurfaceDrawListBrush)0x0;
-    *(undefined ***)pCVar9 = &CMultiPrimitiveDrawListBrush::_vftable_;
-    *(CSurfaceDrawListBrush **)(pCVar9 + 0x48) = pCVar8;
-    uVar3 = *(undefined8 *)(param_2 + 8);
-    *(undefined8 *)(pCVar9 + 0x50) = *(undefined8 *)param_2;
-    *(undefined8 *)(pCVar9 + 0x58) = uVar3;
-    uStack_110 = local_f8;
-    uStack_10c = uStack_f4;
-    uStack_108 = uStack_f0;
-    fStack_104 = fStack_ec;
-    if (local_140 != (CSurfaceDrawListBrush *)0x0) {
-      pcVar1 = (code *)**(undefined8 **)local_140;
-      local_140 = pCVar9;
-      uVar16 = 0x8009d810;
-      if (pcVar1 == CMultiPrimitiveDrawListBrush::_scalar_deleting_destructor_) {
-        CMultiPrimitiveDrawListBrush::_scalar_deleting_destructor_
-                  ((CMultiPrimitiveDrawListBrush *)pCVar14,1);
-        pCVar9 = local_140;
-      }
-      else if (pcVar1 == CSurfaceDrawListBrush::_scalar_deleting_destructor_) {
-        CSurfaceDrawListBrush::_scalar_deleting_destructor_(pCVar14,1);
-        pCVar9 = local_140;
-      }
-      else {
-        uVar16 = 0x8009d810;
-        if (pcVar1 == CDrawListPrimitive0::_vector_deleting_destructor_) {
-          CDrawListPrimitive0::_vector_deleting_destructor_((CDrawListPrimitive0 *)pCVar14,1);
-          pCVar9 = local_140;
-        }
-        else {
-          (*pcVar1)();
-          pCVar9 = local_140;
-        }
-      }
-    }
-    local_140 = pCVar9;
-    if ((uint)uStack_120 < 2) {
-      uStack_120 = CONCAT44(uStack_120._4_4_,1);
-    }
-    this_00 = (CDrawListEntryBuilder *)(this + 0xd70);
-    pGVar15 = (GenerateDrawListProperties *)&local_1b8;
-    pCVar19 = this_00;
-    lVar7 = CBrushDrawListGenerator::GenerateDrawList
-                      ((CBrushDrawListGenerator *)&local_148,pGVar15,this_00);
-    pCVar8 = pCVar18;
-    if (lVar7 < 0) {
-      uVar16 = 0x380;
-    }
-    else {
-      this_01 = (CWatermarkStack<float,64,2,10> *)(this + 0xc58);
-      if ((*(int *)(this + 0xc60) != *(int *)(this + 0xc64)) ||
-         (lVar7 = CWatermarkStack<float,64,2,10>::Grow
-                            (this_01,(__uint64)pGVar15,(uint)pCVar19,uVar16,(void **)this_01),
-         -1 < lVar7)) {
-        *(undefined4 *)(*(longlong *)this_01 + (ulonglong)*(uint *)(this + 0xc60) * 4) = 0x3f800000;
-        *(int *)(this + 0xc60) = *(int *)(this + 0xc60) + 1;
-        uVar16 = *(uint *)(this + 0xc6c);
-        if (*(uint *)(this + 0xc6c) <= *(uint *)(this + 0xc60)) {
-          uVar16 = *(uint *)(this + 0xc60);
-        }
-        *(uint *)(this + 0xc6c) = uVar16;
-        lVar7 = CDrawListEntryBuilder::Render(this_00,this);
-        if (lVar7 < 0) {
-          MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar7,0x386,(void *)0x0);
-        }
-        if (*(int *)(this + 0xc60) != 0) {
-          *(int *)(this + 0xc60) = *(int *)(this + 0xc60) + -1;
-        }
-        goto LAB_1;
-      }
-      wil::details::in1diag3::Return_Hr
-                (unaff_retaddr,0x83,"onecoreuap\\windows\\DWM\\dwmcore\\common\\WatermarkStack.inl",
-                 lVar7);
-      uVar16 = 899;
-    }
-    MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar7,uVar16,(void *)0x0);
-  }
-LAB_1:
-  plVar2 = *(longlong **)(this + 0xde8);
-  for (plVar17 = *(longlong **)(this + 0xde0); plVar17 != plVar2; plVar17 = plVar17 + 1) {
-    if ((longlong *)*plVar17 != (longlong *)0x0) {
-      (**(code **)(*(longlong *)*plVar17 + 8))();
-      *plVar17 = 0;
-    }
-  }
-  lVar10 = *(longlong *)(this + 0xde8) - *(longlong *)(this + 0xde0) >> 3;
-  if (lVar10 != 0) {
-    *(longlong *)(this + 0xde8) = *(longlong *)(this + 0xde8) + lVar10 * -8;
-  }
-  this[0x1ef8] = (CDrawingContext)0x0;
-  plVar17 = *(longlong **)(this + 0xdc0);
-  *(undefined8 *)(this + 0xdc0) = 0;
-  if (plVar17 != (longlong *)0x0) {
-    (**(code **)(*plVar17 + 8))();
-  }
-  plVar17 = *(longlong **)(this + 0xdc8);
-  *(undefined8 *)(this + 0xdc8) = 0;
-  if (plVar17 != (longlong *)0x0) {
-    (**(code **)(*plVar17 + 8))();
-  }
-  plVar17 = *(longlong **)(this + 0xdd0);
-  *(undefined8 *)(this + 0xdd0) = 0;
-  if (plVar17 != (longlong *)0x0) {
-    (**(code **)(*plVar17 + 8))();
-  }
-  plVar17 = *(longlong **)(this + 0xdd8);
-  *(undefined8 *)(this + 0xdd8) = 0;
-  if (plVar17 != (longlong *)0x0) {
-    (**(code **)(*plVar17 + 8))();
-  }
-  uStack_110 = 0x3f800000;
-  uStack_10c = 0x3f800000;
-  uStack_108 = 0x3f800000;
-  fStack_104 = 1.0;
-  local_118 = local_118 & 0xffffffff;
-  if ((uint)uStack_120 != 0) {
-    do {
-      pCVar14 = *(CSurfaceDrawListBrush **)(local_138 + (longlong)pCVar18 * 8 + -8);
-      *(undefined8 *)(local_138 + (longlong)pCVar18 * 8 + -8) = 0;
-      if (pCVar14 != (CSurfaceDrawListBrush *)0x0) {
-        pcVar1 = (code *)**(undefined8 **)pCVar14;
-        if (pcVar1 == CMultiPrimitiveDrawListBrush::_scalar_deleting_destructor_) {
-          CMultiPrimitiveDrawListBrush::_scalar_deleting_destructor_
-                    ((CMultiPrimitiveDrawListBrush *)pCVar14,1);
-        }
-        else if (pcVar1 == CSurfaceDrawListBrush::_scalar_deleting_destructor_) {
-          CSurfaceDrawListBrush::_scalar_deleting_destructor_(pCVar14,1);
-        }
-        else if (pcVar1 == CDrawListPrimitive0::_vector_deleting_destructor_) {
-          CDrawListPrimitive0::_vector_deleting_destructor_((CDrawListPrimitive0 *)pCVar14,1);
-        }
-        else {
-          (*pcVar1)();
-        }
-      }
-      uVar16 = (int)pCVar18 + 1;
-      pCVar18 = (CSurfaceDrawListBrush *)(ulonglong)uVar16;
-    } while (uVar16 < (uint)uStack_120);
-  }
-  uStack_120 = uStack_120 & 0xffffffff00000000;
-  std::unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_>::
-  ~unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_>(local_128);
-  std::unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_>::
-  ~unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_>(local_130);
-  std::unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_>::
-  ~unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_>(local_138);
-  std::unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_>::
-  ~unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_>
-            ((unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_> *)&local_140);
-  if (pCVar8 != (CSurfaceDrawListBrush *)0x0) {
-    pcVar1 = (code *)**(undefined8 **)pCVar8;
-    if (pcVar1 == CMultiPrimitiveDrawListBrush::_scalar_deleting_destructor_) {
-      CMultiPrimitiveDrawListBrush::_scalar_deleting_destructor_
-                ((CMultiPrimitiveDrawListBrush *)pCVar8,1);
-    }
-    else if (pcVar1 == CSurfaceDrawListBrush::_scalar_deleting_destructor_) {
-      CSurfaceDrawListBrush::_scalar_deleting_destructor_(pCVar8,1);
-    }
-    else if (pcVar1 == CDrawListPrimitive0::_vector_deleting_destructor_) {
-      CDrawListPrimitive0::_vector_deleting_destructor_((CDrawListPrimitive0 *)pCVar8,1);
-    }
-    else {
-      (*pcVar1)();
-    }
-  }
-  if (-1 < lVar7) {
-    return lVar7;
-  }
-  uVar16 = 0x35c;
-LAB_0:
-  MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar7,uVar16,(void *)0x0);
-  return lVar7;
+  MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,-0x7ff8fff2,0x3a,(void *)0x0);
+  MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,-0x7ff8fff2,0x351,(void *)0x0);
+  return -0x7ff8fff2;
 }
 

```


## COcclusionContext::PostSubgraph

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.24|
|i_ratio|0.24|
|m_ratio|0.74|
|b_ratio|0.6|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|PostSubgraph|PostSubgraph|
|fullname|COcclusionContext::PostSubgraph|COcclusionContext::PostSubgraph|
|refcount|4|4|
|`length`|1755|3080|
|`called`|<details><summary>Expand for full list:<br>CBackdropVisualImage::IsVisualInAncestorList<br>CLightStack::PopLightsFromVisual<br>COcclusionContext::CalcNodeWorldBounds<br>COcclusionContext::CollectOcclusion<br>COcclusionContext::PopClip<br>CTreeData::GetOcclusionInfo<br>CVisual::FindTreeData<br>CVisual::GetBackdropVisualImage<br>CVisual::RequiresExternalLayer<br>MilInstrumentationCheckHR_MaybeFailFast<br>_guard_dispatch_icall$thunk$10345483385596137414</summary>wil::details::FeatureImpl<__WilFeatureTraits_Feature_DesktopDWMCursor>::__private_IsEnabled</details>|<details><summary>Expand for full list:<br>API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::EnterCriticalSection<br>API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::LeaveCriticalSection<br>CBackdropVisualImage::IsVisualInAncestorList<br>CCursorVisual::IsMaskInvert<br>CLightStack::PopLightsFromVisual<br>CMILMatrix::Transform2DBoundsHelper<0><br>COcclusionContext::CalcNodeWorldBounds<br>COcclusionContext::CollectOcclusion<br>COcclusionContext::PopClip<br>COverlayContext::GetMonitorTransform<br>CTreeData::GetOcclusionInfo</summary>CVisual::FindTreeData<br>CVisual::GetBackdropVisualImage<br>CVisual::RequiresExternalLayer<br>MilInstrumentationCheckHR_MaybeFailFast<br>__security_check_cookie<br>_guard_dispatch_icall$thunk$10345483385596137414<br>wil::details::FeatureImpl<__WilFeatureTraits_Feature_ContentOnTop>::__private_IsEnabled<br>wil::details::FeatureImpl<__WilFeatureTraits_Feature_DesktopDWMCursor>::__private_IsEnabled</details>|
|calling|CVisualTreeIterator::WalkSubtree<COcclusionContext>|CVisualTreeIterator::WalkSubtree<COcclusionContext>|
|paramcount|3|3|
|`address`|1800f1a30|1800a1be0|
|sig|long __thiscall PostSubgraph(COcclusionContext * this, CVisualTree * param_1, bool * param_2)|long __thiscall PostSubgraph(COcclusionContext * this, CVisualTree * param_1, bool * param_2)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### COcclusionContext::PostSubgraph Called Diff


```diff
--- COcclusionContext::PostSubgraph called
+++ COcclusionContext::PostSubgraph called
@@ -0,0 +1,2 @@
+API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::EnterCriticalSection
+API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::LeaveCriticalSection
@@ -1,0 +4 @@
+CCursorVisual::IsMaskInvert
@@ -2,0 +6 @@
+CMILMatrix::Transform2DBoundsHelper<0>
@@ -5,0 +10 @@
+COverlayContext::GetMonitorTransform
@@ -10,0 +16 @@
+__security_check_cookie
@@ -11,0 +18 @@
+wil::details::FeatureImpl<__WilFeatureTraits_Feature_ContentOnTop>::__private_IsEnabled
```


### COcclusionContext::PostSubgraph Diff


```diff
--- COcclusionContext::PostSubgraph
+++ COcclusionContext::PostSubgraph
@@ -1,301 +1,536 @@
 
 /* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
    guard_dispatch_icall */
+/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
 /* public: long __cdecl COcclusionContext::PostSubgraph(class CVisualTree const * __ptr64,bool *
    __ptr64) __ptr64 */
 
 long __thiscall
 COcclusionContext::PostSubgraph(COcclusionContext *this,CVisualTree *param_1,bool *param_2)
 
 {
   float *pfVar1;
   COcclusionContext CVar2;
   int iVar3;
   CVisual *this_00;
   longlong *plVar4;
   undefined8 *puVar5;
-  bool bVar6;
-  bool bVar7;
+  COverlayContext *this_01;
+  CVisual *pCVar6;
+  undefined8 uVar7;
   bool bVar8;
-  char cVar9;
-  long lVar10;
-  CTreeData *pCVar11;
-  COcclusionInfo *pCVar12;
-  CBackdropVisualImage *pCVar13;
-  longlong lVar14;
-  COcclusionContext CVar15;
-  longlong *plVar16;
-  longlong lVar17;
-  float fVar18;
-  float fVar19;
-  float fVar20;
-  float fVar21;
-  float fVar22;
-  float fVar23;
-  float fVar24;
-  long local_res20;
-  float local_e0 [2];
-  undefined8 uStack_d8;
+  bool bVar9;
+  char cVar10;
+  bool bVar11;
+  long lVar12;
+  COcclusionInfo *pCVar13;
+  CBackdropVisualImage *pCVar14;
+  longlong lVar15;
+  CMonitorTransform *pCVar16;
+  CTreeData *pCVar17;
+  CCursorVisual *this_02;
+  ulonglong uVar18;
+  COcclusionContext CVar19;
+  longlong *plVar20;
+  undefined8 *puVar21;
+  CVisualTree *pCVar22;
+  int *piVar23;
+  ulonglong uVar24;
+  int iVar25;
+  ulonglong uVar26;
+  float fVar27;
+  float fVar28;
+  float fVar29;
+  float fVar30;
+  float fVar31;
+  float fVar32;
+  float fVar33;
+  float fVar34;
+  float fVar35;
+  undefined1 auStackY_148 [32];
+  undefined8 local_110;
+  undefined8 uStack_108;
+  CVisualTree *local_100;
+  long local_f8;
+  int local_f4;
+  bool *local_f0;
+  COcclusionInfo *local_e8;
+  CTreeData *local_e0;
+  undefined8 local_d8;
+  undefined8 uStack_d0;
+  ulonglong local_c8;
   
-  lVar17 = 0;
+  local_c8 = __security_cookie ^ (ulonglong)auStackY_148;
+  uVar26 = 0;
+  lVar12 = 0;
   this_00 = *(CVisual **)(this + 0x40);
-  lVar10 = 0;
-  local_res20 = 0;
-  pCVar11 = CVisual::FindTreeData(this_00,param_1);
-  pCVar12 = CTreeData::GetOcclusionInfo(pCVar11,*(uint *)(this + 0x600),false);
-  iVar3 = *(int *)(this + 0x6b0);
-  (**(code **)(*(longlong *)pCVar12 + 8))(pCVar12,*(undefined4 *)(this + 0x6ac));
+  local_f8 = 0;
+  local_100 = param_1;
+  local_f0 = param_2;
+  local_e0 = CVisual::FindTreeData(this_00,param_1);
+  pCVar13 = CTreeData::GetOcclusionInfo(local_e0,*(uint *)(this + 0x600),false);
+  iVar25 = *(int *)(this + 0x6b0);
+  local_f4 = iVar25;
+  local_e8 = pCVar13;
+  (**(code **)(*(longlong *)pCVar13 + 8))(pCVar13,*(undefined4 *)(this + 0x6ac));
   if (*(CBackdropVisualImage **)(this + 0x610) == (CBackdropVisualImage *)0x0) {
 LAB_0:
-    CVar15 = (COcclusionContext)0x0;
-    cVar9 = (**(code **)(*(longlong *)this_00 + 0x108))(this_00);
-    if (cVar9 == '\0') {
+    CVar19 = (COcclusionContext)0x0;
+    cVar10 = (**(code **)(*(longlong *)this_00 + 0x108))(this_00);
+    lVar12 = 0;
+    if (cVar10 == '\0') {
 LAB_1:
-      if ((iVar3 == 0) ||
-         ((*(int *)(this + 0x6b0) == 1 && ((*(uint *)(this_00 + 0x60) & 0x100) != 0)))) {
-        local_e0[0] = 0.0;
-        local_e0[1] = 0.0;
-        uStack_d8 = 0;
-        if (pCVar12[0x18] == (COcclusionInfo)0x0) {
-          bVar8 = CalcNodeWorldBounds(this,this_00,
+      if ((iVar25 == 0) ||
+         ((pCVar22 = local_100, *(int *)(this + 0x6b0) == 1 &&
+          ((*(uint *)(this_00 + 0x60) & 0x100) != 0)))) {
+        local_110 = 0;
+        uStack_108 = 0;
+        if (pCVar13[0x18] == (COcclusionInfo)0x0) {
+          bVar9 = CalcNodeWorldBounds(this,this_00,
                                       (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
-                                       *)local_e0);
-          fVar19 = local_e0[1];
-          fVar18 = uStack_d8._4_4_;
-          fVar20 = (float)uStack_d8;
-          fVar24 = local_e0[0];
+                                       *)&local_110);
+          fVar28 = local_110._4_4_;
+          fVar27 = uStack_108._4_4_;
+          fVar30 = (float)uStack_108;
+          fVar35 = (float)local_110;
         }
         else {
           if (*(int *)(this + 0x6c8) == 0) {
-            fVar18 = 0.0;
-            fVar24 = 0.0;
-            fVar20 = 0.0;
-            fVar19 = 0.0;
+            fVar27 = 0.0;
+            fVar35 = 0.0;
+            fVar30 = 0.0;
+            fVar28 = 0.0;
           }
           else {
             pfVar1 = (float *)(*(longlong *)(this + 0x6c0) +
                               (ulonglong)(*(int *)(this + 0x6c8) - 1) * 0x10);
-            fVar24 = *pfVar1;
-            fVar19 = pfVar1[1];
-            fVar20 = pfVar1[2];
-            fVar18 = pfVar1[3];
-            if ((fVar24 < fVar20) && (fVar19 < fVar18)) {
-              bVar8 = true;
+            fVar35 = *pfVar1;
+            fVar28 = pfVar1[1];
+            fVar30 = pfVar1[2];
+            fVar27 = pfVar1[3];
+            if ((fVar35 < fVar30) && (fVar28 < fVar27)) {
+              bVar9 = true;
               goto LAB_2;
             }
           }
-          bVar8 = false;
+          bVar9 = false;
         }
 LAB_2:
-        if (bVar8 != false) {
+        if (bVar9 != false) {
           if (*(int *)(this + 0x6b8) == 0) {
             this[0x621] = (COcclusionContext)0x1;
           }
           else {
             this[0x620] = (COcclusionContext)0x1;
           }
-          cVar9 = (**(code **)(*(longlong *)this_00 + 0x118))(this_00);
-          bVar8 = false;
-          if (cVar9 != '\0') {
-            plVar16 = *(longlong **)(this + 0x708);
+          cVar10 = (**(code **)(*(longlong *)this_00 + 0x118))(this_00);
+          bVar9 = false;
+          if (cVar10 != '\0') {
+            plVar20 = *(longlong **)(this + 0x708);
             plVar4 = *(longlong **)(this + 0x710);
 LAB_3:
-            if (plVar16 != plVar4) {
-              puVar5 = (undefined8 *)*plVar16;
-              lVar14 = (**(code **)(*(longlong *)*puVar5 + 0x100))();
-              fVar23 = *(float *)(lVar14 + 0x10);
-              local_e0[0] = *(float *)(lVar14 + 8);
-              if (*(float *)(lVar14 + 8) < fVar24) {
-                local_e0[0] = fVar24;
-              }
-              local_e0[1] = *(float *)(lVar14 + 0xc);
-              if (*(float *)(lVar14 + 0xc) < fVar19) {
-                local_e0[1] = fVar19;
-              }
-              uStack_d8 = *(undefined8 *)(lVar14 + 0x10);
-              fVar22 = *(float *)(lVar14 + 0x14);
-              if (fVar20 < fVar23) {
-                uStack_d8 = CONCAT44(uStack_d8._4_4_,fVar20);
-                fVar22 = uStack_d8._4_4_;
-                fVar23 = fVar20;
-              }
-              fVar21 = fVar23;
-              if (fVar18 < fVar22) {
-                uStack_d8 = CONCAT44(fVar18,(float)uStack_d8);
-                fVar21 = (float)uStack_d8;
-                fVar22 = fVar18;
-              }
-              if ((local_e0[0] < fVar23) && (local_e0[1] < fVar22)) {
-                if ((*(float *)(puVar5 + 0x967) <= *(float *)(puVar5 + 0x966)) ||
-                   (bVar6 = false,
-                   *(float *)((longlong)puVar5 + 0x4b3c) < *(float *)((longlong)puVar5 + 0x4b34) ||
-                   *(float *)((longlong)puVar5 + 0x4b3c) == *(float *)((longlong)puVar5 + 0x4b34)))
-                {
-                  bVar6 = true;
-                }
-                if ((fVar23 <= local_e0[0]) || (bVar7 = bVar8, fVar22 <= local_e0[1])) {
-                  bVar7 = true;
-                }
-                if (bVar6) {
-                  if ((((bVar7) || (NAN(local_e0[0]))) || (NAN(local_e0[1]))) ||
-                     ((NAN(fVar23) || (NAN(fVar22))))) {
-                    puVar5[0x967] = 0;
-                    plVar16 = plVar16 + 1;
-                    puVar5[0x966] = 0;
+            pCVar13 = local_e8;
+            if (plVar20 != plVar4) {
+              puVar21 = (undefined8 *)*plVar20;
+              lVar15 = (**(code **)(*(longlong *)*puVar21 + 0x100))();
+              fVar34 = *(float *)(lVar15 + 0x10);
+              fVar29 = *(float *)(lVar15 + 8);
+              if (*(float *)(lVar15 + 8) < fVar35) {
+                fVar29 = fVar35;
+              }
+              fVar31 = *(float *)(lVar15 + 0xc);
+              if (*(float *)(lVar15 + 0xc) < fVar28) {
+                fVar31 = fVar28;
+              }
+              uStack_108 = *(undefined8 *)(lVar15 + 0x10);
+              fVar33 = *(float *)(lVar15 + 0x14);
+              if (fVar30 < fVar34) {
+                uStack_108 = CONCAT44(uStack_108._4_4_,fVar30);
+                fVar33 = uStack_108._4_4_;
+                fVar34 = fVar30;
+              }
+              local_110 = CONCAT44(fVar31,fVar29);
+              fVar32 = fVar34;
+              if (fVar27 < fVar33) {
+                uStack_108 = CONCAT44(fVar27,(float)uStack_108);
+                fVar32 = (float)uStack_108;
+                fVar33 = fVar27;
+              }
+              if ((fVar29 < fVar34) && (fVar31 < fVar33)) {
+                if ((*(float *)(puVar21 + 0x973) <= *(float *)(puVar21 + 0x972)) ||
+                   (bVar11 = false,
+                   *(float *)((longlong)puVar21 + 0x4b9c) < *(float *)((longlong)puVar21 + 0x4b94)
+                   || *(float *)((longlong)puVar21 + 0x4b9c) ==
+                      *(float *)((longlong)puVar21 + 0x4b94))) {
+                  bVar11 = true;
+                }
+                if ((fVar34 <= fVar29) || (bVar8 = bVar9, fVar33 <= fVar31)) {
+                  bVar8 = true;
+                }
+                if (bVar11) {
+                  if ((((bVar8) || (NAN(fVar29))) || (NAN(fVar31))) ||
+                     ((NAN(fVar34) || (NAN(fVar33))))) {
+                    puVar21[0x973] = 0;
+                    plVar20 = plVar20 + 1;
+                    puVar21[0x972] = 0;
                   }
                   else {
-                    *(float *)(puVar5 + 0x966) = local_e0[0];
-                    *(float *)((longlong)puVar5 + 0x4b34) = local_e0[1];
-                    *(float *)(puVar5 + 0x967) = fVar21;
-                    *(float *)((longlong)puVar5 + 0x4b3c) = fVar22;
-                    plVar16 = plVar16 + 1;
+                    *(float *)(puVar21 + 0x972) = fVar29;
+                    *(float *)((longlong)puVar21 + 0x4b94) = fVar31;
+                    *(float *)(puVar21 + 0x973) = fVar32;
+                    *(float *)((longlong)puVar21 + 0x4b9c) = fVar33;
+                    plVar20 = plVar20 + 1;
                   }
                   goto LAB_3;
                 }
-                if (!bVar7) {
-                  if (local_e0[0] < *(float *)(puVar5 + 0x966)) {
-                    *(float *)(puVar5 + 0x966) = local_e0[0];
-                  }
-                  if (local_e0[1] < *(float *)((longlong)puVar5 + 0x4b34)) {
-                    *(float *)((longlong)puVar5 + 0x4b34) = local_e0[1];
-                  }
-                  if (*(float *)(puVar5 + 0x967) <= fVar23 && fVar23 != *(float *)(puVar5 + 0x967))
-                  {
-                    *(float *)(puVar5 + 0x967) = fVar23;
-                  }
-                  if (*(float *)((longlong)puVar5 + 0x4b3c) <= fVar22 &&
-                      fVar22 != *(float *)((longlong)puVar5 + 0x4b3c)) {
-                    *(float *)((longlong)puVar5 + 0x4b3c) = fVar22;
-                  }
-                }
-              }
-              plVar16 = plVar16 + 1;
+                if (!bVar8) {
+                  if (fVar29 < *(float *)(puVar21 + 0x972)) {
+                    *(float *)(puVar21 + 0x972) = fVar29;
+                  }
+                  if (fVar31 < *(float *)((longlong)puVar21 + 0x4b94)) {
+                    *(float *)((longlong)puVar21 + 0x4b94) = fVar31;
+                  }
+                  if (*(float *)(puVar21 + 0x973) <= fVar34 && fVar34 != *(float *)(puVar21 + 0x973)
+                     ) {
+                    *(float *)(puVar21 + 0x973) = fVar34;
+                  }
+                  if (*(float *)((longlong)puVar21 + 0x4b9c) <= fVar33 &&
+                      fVar33 != *(float *)((longlong)puVar21 + 0x4b9c)) {
+                    *(float *)((longlong)puVar21 + 0x4b9c) = fVar33;
+                  }
+                }
+              }
+              plVar20 = plVar20 + 1;
               goto LAB_3;
             }
           }
           if ((*(float *)(this + 0x260) <= *(float *)(this + 600)) ||
-             (bVar6 = bVar8,
+             (bVar11 = bVar9,
              *(float *)(this + 0x264) < *(float *)(this + 0x25c) ||
              *(float *)(this + 0x264) == *(float *)(this + 0x25c))) {
-            bVar6 = true;
-          }
-          bVar7 = true;
-          if ((fVar24 < fVar20) && (fVar19 < fVar18)) {
-            bVar7 = bVar8;
-          }
-          if (bVar6) {
-            if ((((bVar7) || (NAN(fVar24))) || (NAN(fVar19))) || ((NAN(fVar20) || (NAN(fVar18))))) {
+            bVar11 = true;
+          }
+          if ((fVar30 <= fVar35) || (bVar8 = bVar9, fVar27 <= fVar28)) {
+            bVar8 = true;
+          }
+          if (bVar11) {
+            if ((((bVar8) || (NAN(fVar35))) || (NAN(fVar28))) || ((NAN(fVar30) || (NAN(fVar27))))) {
               *(undefined8 *)(this + 0x260) = 0;
               *(undefined8 *)(this + 600) = 0;
             }
             else {
-              *(float *)(this + 600) = fVar24;
-              *(float *)(this + 0x25c) = fVar19;
-              *(float *)(this + 0x260) = fVar20;
-              *(float *)(this + 0x264) = fVar18;
-            }
-          }
-          else if (!bVar7) {
-            if (fVar24 < *(float *)(this + 600)) {
-              *(float *)(this + 600) = fVar24;
-            }
-            if (fVar19 < *(float *)(this + 0x25c)) {
-              *(float *)(this + 0x25c) = fVar19;
-            }
-            if (*(float *)(this + 0x260) <= fVar20 && fVar20 != *(float *)(this + 0x260)) {
-              *(float *)(this + 0x260) = fVar20;
-            }
-            if (*(float *)(this + 0x264) <= fVar18 && fVar18 != *(float *)(this + 0x264)) {
-              *(float *)(this + 0x264) = fVar18;
+              *(float *)(this + 600) = fVar35;
+              *(float *)(this + 0x25c) = fVar28;
+              *(float *)(this + 0x260) = fVar30;
+              *(float *)(this + 0x264) = fVar27;
+            }
+          }
+          else if (!bVar8) {
+            if (fVar35 < *(float *)(this + 600)) {
+              *(float *)(this + 600) = fVar35;
+            }
+            if (fVar28 < *(float *)(this + 0x25c)) {
+              *(float *)(this + 0x25c) = fVar28;
+            }
+            if (*(float *)(this + 0x260) <= fVar30 && fVar30 != *(float *)(this + 0x260)) {
+              *(float *)(this + 0x260) = fVar30;
+            }
+            if (*(float *)(this + 0x264) <= fVar27 && fVar27 != *(float *)(this + 0x264)) {
+              *(float *)(this + 0x264) = fVar27;
+            }
+          }
+          bVar11 = wil::details::FeatureImpl<__WilFeatureTraits_Feature_ContentOnTop>::
+                   __private_IsEnabled((FeatureImpl<__WilFeatureTraits_Feature_ContentOnTop> *)
+                                       &`private:_static_class_wil::details::FeatureImpl<__WilFeatureTraits_Feature_ContentOnTop>&___ptr64___cdecl_wil::Feature<__WilFeatureTraits_Feature_ContentOnTop>::GetImpl(void)'
+                                        ::__l2::impl);
+          if (bVar11) {
+            puVar21 = *(undefined8 **)(this + 0x708);
+            puVar5 = *(undefined8 **)(this + 0x710);
+LAB_4:
+            while (pCVar13 = local_e8, iVar25 = local_f4, lVar12 = local_f8, puVar21 != puVar5) {
+              this_01 = (COverlayContext *)*puVar21;
+              iVar25 = *(int *)(this + 0x6b8);
+              lVar15 = (**(code **)(**(longlong **)this_01 + 0x100))();
+              fVar34 = *(float *)(lVar15 + 8);
+              if (*(float *)(lVar15 + 8) < fVar35) {
+                fVar34 = fVar35;
+              }
+              fVar29 = *(float *)(lVar15 + 0xc);
+              if (*(float *)(lVar15 + 0xc) < fVar28) {
+                fVar29 = fVar28;
+              }
+              local_110 = CONCAT44(fVar29,fVar34);
+              fVar31 = *(float *)(lVar15 + 0x10);
+              if (fVar30 < *(float *)(lVar15 + 0x10)) {
+                fVar31 = fVar30;
+              }
+              fVar33 = *(float *)(lVar15 + 0x14);
+              if (fVar27 < *(float *)(lVar15 + 0x14)) {
+                fVar33 = fVar27;
+              }
+              uStack_108 = CONCAT44(fVar33,fVar31);
+              uVar7 = local_d8;
+              if ((fVar31 <= fVar34) || (fVar33 <= fVar29)) goto LAB_5;
+              pCVar6 = *(CVisual **)(this_01 + 0x4b18);
+              if (this_00 == pCVar6) {
+                if ((pCVar6[0x2e9] == (CVisual)0x0) && (this_01[0x4c89] != (COverlayContext)0x0)) {
+                  uVar7 = *(undefined8 *)(this_01 + 0x4b20);
+                  lVar15 = *(longlong *)(*(longlong *)(pCVar6 + 0x2c0) + 0x58);
+                  uVar24 = (*(longlong *)(*(longlong *)(pCVar6 + 0x2c0) + 0x60) - lVar15 >> 5) *
+                           -0x3333333333333333;
+                  if (uVar24 != 0) {
+                    local_d8._4_4_ = (float)((ulonglong)uVar7 >> 0x20);
+                    uVar18 = uVar26;
+                    do {
+                      piVar23 = (int *)(uVar18 * 0xa0 + lVar15);
+                      if (((*piVar23 == (int)uVar7) && ((float)piVar23[1] == local_d8._4_4_)) &&
+                         (piVar23[2] == *(int *)(this_01 + 0x4b28))) {
+                        local_d8 = uVar7;
+                        EnterCriticalSection((LPCRITICAL_SECTION)&g_CursorManager);
+                        iVar3 = piVar23[0x26];
+                        LeaveCriticalSection((LPCRITICAL_SECTION)&g_CursorManager);
+                        if (iVar3 != 2) {
+                          uVar7 = local_d8;
+                          if (((CCommonRegistryData::m_dwOverlayTestMode == 5) ||
+                              (*(uint *)(this_01 + 0x28) < 2)) ||
+                             (this_01[0x4c7e] != (COverlayContext)0x0)) goto LAB_5;
+                          this_02 = *(CCursorVisual **)(this_01 + 0x4b18);
+                          bVar11 = CCursorVisual::IsMaskInvert(this_02);
+                          uVar7 = local_d8;
+                          if (!bVar11) goto LAB_5;
+                          uVar7 = *(undefined8 *)(this_01 + 0x4b20);
+                          lVar15 = *(longlong *)(*(longlong *)(this_02 + 0x2c0) + 0x58);
+                          uVar24 = (*(longlong *)(*(longlong *)(this_02 + 0x2c0) + 0x60) - lVar15 >>
+                                   5) * -0x3333333333333333;
+                          if (uVar24 == 0) goto LAB_5;
+                          local_d8._4_4_ = (float)((ulonglong)uVar7 >> 0x20);
+                          uVar18 = uVar26;
+                          goto LAB_6;
+                        }
+                        break;
+                      }
+                      uVar18 = (ulonglong)((int)uVar18 + 1);
+                    } while (uVar18 < uVar24);
+                  }
+                }
+LAB_7:
+                lVar15 = *(longlong *)(*(longlong *)(this_01 + 0x4b18) + 0x2c0);
+                if (((lVar15 == 0) || (*(longlong *)(lVar15 + 0xb0) == 0)) ||
+                   (*(char *)(lVar15 + 0x51) == '\0')) {
+                  cVar10 = '\0';
+                }
+                else {
+                  cVar10 = '\x01';
+                }
+              }
+              else {
+                cVar10 = (**(code **)(*(longlong *)this_00 + 0x118))(this_00);
+              }
+              local_d8 = 0;
+              uStack_d0 = 0;
+              pCVar16 = COverlayContext::GetMonitorTransform(this_01);
+              CMILMatrix::Transform2DBoundsHelper<0>
+                        ((CMILMatrix *)(pCVar16 + 0x34),(D2D_RECT_F *)&local_110,
+                         (D2D_RECT_F *)&local_d8);
+              if ((*(float *)(this_01 + 0x4ba8) <= *(float *)(this_01 + 0x4ba0)) ||
+                 (bVar11 = bVar9,
+                 *(float *)(this_01 + 0x4bac) < *(float *)(this_01 + 0x4ba4) ||
+                 *(float *)(this_01 + 0x4bac) == *(float *)(this_01 + 0x4ba4))) {
+                bVar11 = true;
+              }
+              if (((float)uStack_d0 <= (float)local_d8) ||
+                 (bVar8 = bVar9, uStack_d0._4_4_ <= local_d8._4_4_)) {
+                bVar8 = true;
+              }
+              if (bVar11) {
+                if ((((bVar8) || (NAN((float)local_d8))) || (NAN(local_d8._4_4_))) ||
+                   ((NAN((float)uStack_d0) || (NAN(uStack_d0._4_4_))))) {
+                  *(undefined8 *)(this_01 + 0x4ba8) = 0;
+                  *(undefined8 *)(this_01 + 0x4ba0) = 0;
+                }
+                else {
+                  *(undefined8 *)(this_01 + 0x4ba0) = local_d8;
+                  *(undefined8 *)(this_01 + 0x4ba8) = uStack_d0;
+                }
+              }
+              else if (!bVar8) {
+                if ((float)local_d8 < *(float *)(this_01 + 0x4ba0)) {
+                  *(float *)(this_01 + 0x4ba0) = (float)local_d8;
+                }
+                if (local_d8._4_4_ < *(float *)(this_01 + 0x4ba4)) {
+                  *(float *)(this_01 + 0x4ba4) = local_d8._4_4_;
+                }
+                if (*(float *)(this_01 + 0x4ba8) <= (float)uStack_d0 &&
+                    (float)uStack_d0 != *(float *)(this_01 + 0x4ba8)) {
+                  *(float *)(this_01 + 0x4ba8) = (float)uStack_d0;
+                }
+                if (*(float *)(this_01 + 0x4bac) <= uStack_d0._4_4_ &&
+                    uStack_d0._4_4_ != *(float *)(this_01 + 0x4bac)) {
+                  *(float *)(this_01 + 0x4bac) = uStack_d0._4_4_;
+                }
+              }
+              if (cVar10 != '\0') {
+                if ((*(float *)(this_01 + 0x4bb8) <= *(float *)(this_01 + 0x4bb0)) ||
+                   (bVar11 = bVar9,
+                   *(float *)(this_01 + 0x4bbc) < *(float *)(this_01 + 0x4bb4) ||
+                   *(float *)(this_01 + 0x4bbc) == *(float *)(this_01 + 0x4bb4))) {
+                  bVar11 = true;
+                }
+                if (((float)uStack_108 <= (float)local_110) ||
+                   (bVar8 = bVar9, uStack_108._4_4_ <= local_110._4_4_)) {
+                  bVar8 = true;
+                }
+                if (bVar11) {
+                  if ((((bVar8) || (NAN((float)local_110))) || (NAN(local_110._4_4_))) ||
+                     ((NAN((float)uStack_108) || (NAN(uStack_108._4_4_))))) {
+                    *(undefined8 *)(this_01 + 0x4bb8) = 0;
+                    *(undefined8 *)(this_01 + 0x4bb0) = 0;
+                  }
+                  else {
+                    *(undefined8 *)(this_01 + 0x4bb0) = local_110;
+                    *(undefined8 *)(this_01 + 0x4bb8) = uStack_108;
+                  }
+                }
+                else if (!bVar8) {
+                  if ((float)local_110 < *(float *)(this_01 + 0x4bb0)) {
+                    *(float *)(this_01 + 0x4bb0) = (float)local_110;
+                  }
+                  if (local_110._4_4_ < *(float *)(this_01 + 0x4bb4)) {
+                    *(float *)(this_01 + 0x4bb4) = local_110._4_4_;
+                  }
+                  if (*(float *)(this_01 + 0x4bb8) <= (float)uStack_108 &&
+                      (float)uStack_108 != *(float *)(this_01 + 0x4bb8)) {
+                    *(float *)(this_01 + 0x4bb8) = (float)uStack_108;
+                  }
+                  if (*(float *)(this_01 + 0x4bbc) <= uStack_108._4_4_ &&
+                      uStack_108._4_4_ != *(float *)(this_01 + 0x4bbc)) {
+                    *(float *)(this_01 + 0x4bbc) = uStack_108._4_4_;
+                  }
+                }
+              }
+              if (iVar25 == 0) {
+                this_01[0x4bc1] = (COverlayContext)0x1;
+                puVar21 = puVar21 + 1;
+              }
+              else {
+                this_01[0x4bc0] = (COverlayContext)0x1;
+                puVar21 = puVar21 + 1;
+              }
             }
           }
         }
-        goto LAB_4;
+        goto LAB_8;
       }
     }
     else {
-      if (iVar3 == 0) {
+      lVar12 = 0;
+      if (iVar25 == 0) {
         CVar2 = this[0x61e];
-        lVar10 = CollectOcclusion(this,pCVar12,this_00);
-        if (lVar10 < 0) {
-          MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar10,0x253,(void *)0x0);
-          goto LAB_5;
+        lVar12 = CollectOcclusion(this,pCVar13,this_00);
+        local_f8 = lVar12;
+        if (lVar12 < 0) {
+          MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar12,0x253,(void *)0x0);
+          pCVar22 = local_100;
+          goto LAB_9;
         }
-        local_res20 = lVar10;
-        if ((CVar2 != (COcclusionContext)0x0) && (this[0x61e] == (COcclusionContext)0x0)) {
-          CVar15 = this[0x61f];
+        bVar9 = wil::details::FeatureImpl<__WilFeatureTraits_Feature_ContentOnTop>::
+                __private_IsEnabled((FeatureImpl<__WilFeatureTraits_Feature_ContentOnTop> *)
+                                    &`private:_static_class_wil::details::FeatureImpl<__WilFeatureTraits_Feature_ContentOnTop>&___ptr64___cdecl_wil::Feature<__WilFeatureTraits_Feature_ContentOnTop>::GetImpl(void)'
+                                     ::__l2::impl);
+        if (((!bVar9) && (CVar2 != (COcclusionContext)0x0)) &&
+           (this[0x61e] == (COcclusionContext)0x0)) {
+          CVar19 = this[0x61f];
         }
       }
-      bVar8 = wil::details::FeatureImpl<__WilFeatureTraits_Feature_DesktopDWMCursor>::
+      bVar9 = wil::details::FeatureImpl<__WilFeatureTraits_Feature_DesktopDWMCursor>::
               __private_IsEnabled((FeatureImpl<__WilFeatureTraits_Feature_DesktopDWMCursor> *)
                                   &`private:_static_class_wil::details::FeatureImpl<__WilFeatureTraits_Feature_DesktopDWMCursor>&___ptr64___cdecl_wil::Feature<__WilFeatureTraits_Feature_DesktopDWMCursor>::GetImpl(void)'
                                    ::__l2::impl);
-      if (bVar8) {
+      if (bVar9) {
         this[0x61e] = (COcclusionContext)0x0;
       }
-      if (CVar15 == (COcclusionContext)0x0) goto LAB_1;
-LAB_4:
-      if (((iVar3 == 0) &&
-          (CLightStack::PopLightsFromVisual((CLightStack *)(this + 0xe0),this_00,param_1),
-          pCVar12[0x1b] != (COcclusionInfo)0x0)) && (*(int *)(this + 0x6f8) != 0)) {
+      if (CVar19 == (COcclusionContext)0x0) goto LAB_1;
+LAB_8:
+      pCVar22 = local_100;
+      if (((iVar25 == 0) &&
+          (CLightStack::PopLightsFromVisual((CLightStack *)(this + 0xe0),this_00,local_100),
+          pCVar13[0x1b] != (COcclusionInfo)0x0)) && (*(int *)(this + 0x6f8) != 0)) {
         *(int *)(this + 0x6f8) = *(int *)(this + 0x6f8) + -1;
       }
     }
-    if (pCVar12[0x1a] != (COcclusionInfo)0x0) {
+    if (pCVar13[0x1a] != (COcclusionInfo)0x0) {
       PopClip(this);
     }
-    if ((pCVar12[0x19] != (COcclusionInfo)0x0) && (*(int *)(this + 0x28) != 0)) {
+    if ((pCVar13[0x19] != (COcclusionInfo)0x0) && (*(int *)(this + 0x28) != 0)) {
       *(int *)(this + 0x28) = *(int *)(this + 0x28) + -1;
     }
-    if ((pCVar12[0x18] != (COcclusionInfo)0x0) && (*(int *)(this + 0x6c8) != 0)) {
+    if ((pCVar13[0x18] != (COcclusionInfo)0x0) && (*(int *)(this + 0x6c8) != 0)) {
       *(int *)(this + 0x6c8) = *(int *)(this + 0x6c8) + -1;
     }
     if (((byte)this_00[0x6a] & 4) != 0) {
       *(int *)(this + 0x6b8) = *(int *)(this + 0x6b8) + -1;
     }
-    bVar8 = CVisual::RequiresExternalLayer(this_00);
-    lVar10 = local_res20;
-    if (bVar8) {
+    bVar9 = CVisual::RequiresExternalLayer(this_00);
+    if (bVar9) {
       *(int *)(this + 0x6b4) = *(int *)(this + 0x6b4) + -1;
     }
   }
   else {
-    bVar8 = CBackdropVisualImage::IsVisualInAncestorList
+    bVar9 = CBackdropVisualImage::IsVisualInAncestorList
                       (*(CBackdropVisualImage **)(this + 0x610),this_00,
                        *(CVisualTreePath **)(this + 0x10));
-    pCVar13 = CVisual::GetBackdropVisualImage(this_00,*(CVisualTreePath **)(this + 0x10));
-    if (pCVar13 != *(CBackdropVisualImage **)(this + 0x610)) {
+    pCVar14 = CVisual::GetBackdropVisualImage(this_00,*(CVisualTreePath **)(this + 0x10));
+    pCVar22 = local_100;
+    if (pCVar14 != *(CBackdropVisualImage **)(this + 0x610)) {
       if (this[0x622] == (COcclusionContext)0x0) {
-        if (!bVar8) goto LAB_6;
+        if (!bVar9) goto LAB_10;
         this[0x622] = (COcclusionContext)0x1;
       }
       goto LAB_0;
     }
   }
-LAB_6:
-  if (iVar3 != 0) {
+LAB_10:
+  if (iVar25 != 0) {
     *(int *)(this + 0x6b0) = *(int *)(this + 0x6b0) + -1;
   }
-LAB_5:
+LAB_9:
   *(int *)(this + 0x6ac) = *(int *)(this + 0x6ac) + 2;
   if (**(int **)(this + 0x1c8) == 0) {
     if (g_pComposition != (CComposition *)0x0) {
-      lVar17 = *(longlong *)(g_pComposition + 0x378);
-    }
-    if (*(longlong *)(pCVar11 + 0xd0) != lVar17) {
+      uVar26 = *(ulonglong *)(g_pComposition + 0x378);
+    }
+    if (*(ulonglong *)(local_e0 + 0xd0) != uVar26) {
       if (((*(CVisual **)(this + 0x48) == (CVisual *)0x0) ||
-          (pCVar11 = CVisual::FindTreeData(*(CVisual **)(this + 0x48),param_1),
-          pCVar11 == (CTreeData *)0x0)) || (*(longlong *)(pCVar11 + 0xd0) != lVar17)) {
-        bVar8 = false;
+          (pCVar17 = CVisual::FindTreeData(*(CVisual **)(this + 0x48),pCVar22),
+          pCVar17 == (CTreeData *)0x0)) || (*(ulonglong *)(pCVar17 + 0xd0) != uVar26)) {
+        bVar9 = false;
       }
       else {
-        bVar8 = true;
-      }
-      *param_2 = bVar8;
-      return lVar10;
+        bVar9 = true;
+      }
+      *local_f0 = bVar9;
+      return lVar12;
     }
   }
-  *param_2 = true;
-  return lVar10;
+  *local_f0 = true;
+  return lVar12;
+  while (uVar18 = (ulonglong)((int)uVar18 + 1), uVar18 < uVar24) {
+LAB_6:
+    piVar23 = (int *)(uVar18 * 0xa0 + lVar15);
+    if (((*piVar23 == (int)uVar7) && ((float)piVar23[1] == local_d8._4_4_)) &&
+       (piVar23[2] == *(int *)(this_01 + 0x4b28))) {
+      local_d8 = uVar7;
+      EnterCriticalSection((LPCRITICAL_SECTION)&g_CursorManager);
+      iVar3 = piVar23[0x26];
+      LeaveCriticalSection((LPCRITICAL_SECTION)&g_CursorManager);
+      uVar7 = local_d8;
+      if (iVar3 == 1) goto LAB_7;
+      break;
+    }
+  }
+LAB_5:
+  local_d8 = uVar7;
+  puVar21 = puVar21 + 1;
+  goto LAB_4;
 }
 

```


## CBitmapRenderStrategy::GetBrushParameters

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.4|
|i_ratio|0.25|
|m_ratio|0.96|
|b_ratio|0.37|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|GetBrushParameters|GetBrushParameters|
|fullname|CBitmapRenderStrategy::GetBrushParameters|CBitmapRenderStrategy::GetBrushParameters|
|refcount|12|12|
|`length`|1212|1105|
|`called`|<details><summary>Expand for full list:<br>CBrushDrawListGenerator::Reset<br>CCachedImageProducer::GetCurrentRenderingRealization<br>CCachedVisualImage::GetCurrentRenderingRealization<br>CCompositionSurfaceBitmap::GetCurrentRenderingRealization<br>CDrawListBitmap::~CDrawListBitmap<br>CDrawListPrimitive0::`vector_deleting_destructor'<br>CDxHandleBitmapRealization::GetSize`adjustor{256}'<br>CMILCOMBaseWeakRefSource<CResourceDeleter>::InternalQueryInterface<br>CMILRefCountBaseT<IBitmapResource,CMilObjectDeleter>::InternalRelease<br>CMILRefCountImpl::AddReference<br>CMultiPrimitiveDrawListBrush::`scalar_deleting_destructor'</summary>CSurfaceBrush::ComputeLayout<br>CSurfaceDrawListBrush::`scalar_deleting_destructor'<br>CThreadLocalObjectCache<CSurfaceDrawListBrush,CSurfaceDrawListBrush>::Alloc<br>IBitmapRealizationMethodsT<CDxHandleBitmapRealization,IGDIBitmapRealization>::GetSize`adjustor{320}'<br>InterpolationMode::FromD2D1InterpolationMode<br>MilInstrumentationCheckHR_MaybeFailFast<br>_guard_dispatch_icall$thunk$10345483385596137414<br>wil::com_ptr_t<IBitmapResource,wil::err_returncode_policy>::~com_ptr_t<IBitmapResource,wil::err_returncode_policy></details>|<details><summary>Expand for full list:<br>CBrushDrawListGenerator::Reset<br>CCachedImageProducer::GetCurrentRenderingRealization<br>CCachedVisualImage::GetCurrentRenderingRealization<br>CCompositionSurfaceBitmap::GetCurrentRenderingRealization<br>CDrawListBitmap::~CDrawListBitmap<br>CDrawListPrimitive0::`vector_deleting_destructor'<br>CDxHandleBitmapRealization::GetSize`adjustor{256}'<br>CMILCOMBaseWeakRefSource<CResourceDeleter>::InternalQueryInterface<br>CMILRefCountBaseT<IBitmapResource,CMilObjectDeleter>::InternalRelease<br>CMILRefCountImpl::AddReference<br>CMultiPrimitiveDrawListBrush::`scalar_deleting_destructor'</summary>CSurfaceBrush::ComputeLayout<br>CSurfaceDrawListBrush::CSurfaceDrawListBrush<br>CSurfaceDrawListBrush::`scalar_deleting_destructor'<br>CSurfaceDrawListBrush::~CSurfaceDrawListBrush<br>CThreadLocalObjectCache<CSurfaceDrawListBrush,CSurfaceDrawListBrush>::Alloc<br>CThreadLocalObjectCache<CSurfaceDrawListBrush,CSurfaceDrawListBrush>::Free<br>IBitmapRealizationMethodsT<CDxHandleBitmapRealization,IGDIBitmapRealization>::GetSize`adjustor{320}'<br>InterpolationMode::FromD2D1InterpolationMode<br>MilInstrumentationCheckHR_MaybeFailFast<br>_guard_dispatch_icall$thunk$10345483385596137414<br>wil::com_ptr_t<IBitmapResource,wil::err_returncode_policy>::~com_ptr_t<IBitmapResource,wil::err_returncode_policy></details>|
|calling|CBrush::GenerateDrawList<br>CBrushRenderingGraph::GetInputBrushParameters<br>CMaskBrush::GetBrushParameters<br>CNineGridBrush::GetBrushParameters|CBrush::GenerateDrawList<br>CBrushRenderingGraph::GetInputBrushParameters<br>CMaskBrush::GetBrushParameters<br>CNineGridBrush::GetBrushParameters|
|paramcount|3|3|
|`address`|180120210|18004c1a0|
|sig|long __thiscall GetBrushParameters(CBitmapRenderStrategy * this, CSurfaceBrush * param_1, CBrushDrawListGenerator * param_2)|long __thiscall GetBrushParameters(CBitmapRenderStrategy * this, CSurfaceBrush * param_1, CBrushDrawListGenerator * param_2)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### CBitmapRenderStrategy::GetBrushParameters Called Diff


```diff
--- CBitmapRenderStrategy::GetBrushParameters called
+++ CBitmapRenderStrategy::GetBrushParameters called
@@ -12,0 +13 @@
+CSurfaceDrawListBrush::CSurfaceDrawListBrush
@@ -13,0 +15 @@
+CSurfaceDrawListBrush::~CSurfaceDrawListBrush
@@ -14,0 +17 @@
+CThreadLocalObjectCache<CSurfaceDrawListBrush,CSurfaceDrawListBrush>::Free
```


### CBitmapRenderStrategy::GetBrushParameters Diff


```diff
--- CBitmapRenderStrategy::GetBrushParameters
+++ CBitmapRenderStrategy::GetBrushParameters
@@ -1,221 +1,217 @@
 
 /* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
    guard_dispatch_icall */
+/* WARNING: Removing unreachable block (ram,0x00018004c560) */
 /* public: virtual long __cdecl CBitmapRenderStrategy::GetBrushParameters(class CSurfaceBrush const
    * __ptr64,class CBrushDrawListGenerator * __ptr64)const __ptr64 */
 
 long __thiscall
 CBitmapRenderStrategy::GetBrushParameters
           (CBitmapRenderStrategy *this,CSurfaceBrush *param_1,CBrushDrawListGenerator *param_2)
 
 {
   D2D1_INTERPOLATION_MODE DVar1;
   code *pcVar2;
-  CSurfaceDrawListBrush *this_00;
-  CCompositionSurfaceBitmap *this_01;
-  CMILRefCountBaseT<IBitmapResource,CMilObjectDeleter> *this_02;
+  CCompositionSurfaceBitmap *this_00;
+  CMILRefCountBaseT<IBitmapResource,CMilObjectDeleter> *this_01;
   long lVar3;
   Enum EVar4;
-  undefined8 *puVar5;
-  ulonglong *puVar6;
-  IBitmapRealization *pIVar7;
-  ulonglong uVar8;
-  undefined4 uVar9;
-  float fVar10;
+  CSurfaceDrawListBrush *pCVar5;
+  longlong lVar6;
+  ulonglong *puVar7;
+  IBitmapRealization *pIVar8;
+  ulonglong uVar9;
+  undefined4 uVar10;
   float fVar11;
+  float fVar12;
   CCompositionSurfaceBitmap *local_res10;
   undefined8 local_res18;
   undefined1 local_res20 [8];
-  uint uVar12;
-  CMILRefCountBaseT<IBitmapResource,CMilObjectDeleter> *local_b8;
-  IBitmapRealization *local_b0;
-  undefined1 local_a8;
-  undefined8 local_a0;
-  undefined8 uStack_98;
-  undefined8 local_90;
-  undefined8 uStack_88;
-  undefined8 local_80;
+  uint uVar13;
+  CMILRefCountBaseT<IBitmapResource,CMilObjectDeleter> *local_c8;
+  IBitmapRealization *local_c0;
+  undefined1 local_b8;
+  float local_b0;
+  float fStack_ac;
+  float fStack_a8;
+  float fStack_a4;
+  float local_a0 [5];
+  undefined4 local_8c;
+  float local_88;
+  float local_84;
+  undefined4 local_80;
+  undefined8 local_78;
+  undefined8 uStack_70;
+  undefined8 local_68;
+  undefined8 uStack_60;
+  undefined8 local_58;
   
-  uVar8 = 0;
   local_res10 = (CCompositionSurfaceBitmap *)0x0;
   local_res18 = 0;
   pcVar2 = (code *)**(undefined8 **)*(CMILCOMBaseWeakRefSource<CResourceDeleter> **)(param_1 + 0x80)
   ;
   if (pcVar2 == CMILCOMBaseWeakRefSource<CResourceDeleter>::InternalQueryInterface) {
     CMILCOMBaseWeakRefSource<CResourceDeleter>::InternalQueryInterface
               (*(CMILCOMBaseWeakRefSource<CResourceDeleter> **)(param_1 + 0x80),
                (_GUID *)&_GUID_b35f2031_4b76_4d4e_b98c_6771dfcc753c,&local_res10);
   }
   else {
     (*pcVar2)();
   }
   wil::com_ptr_t<IBitmapResource,wil::err_returncode_policy>::
   ~com_ptr_t<IBitmapResource,wil::err_returncode_policy>
             ((com_ptr_t<IBitmapResource,wil::err_returncode_policy> *)&local_res18);
-  local_80 = 0;
-  local_a0 = 0;
-  uStack_98 = 0;
-  local_90 = 0;
-  uStack_88 = 0;
+  local_58 = 0;
+  local_78 = 0;
+  uStack_70 = 0;
+  local_68 = 0;
+  uStack_60 = 0;
   lVar3 = CSurfaceBrush::ComputeLayout
-                    (param_1,(D2D_SIZE_F *)(param_2 + 0x2c),(LayoutData *)&local_a0,(CShape **)0x0);
-  this_01 = local_res10;
+                    (param_1,(D2D_SIZE_F *)(param_2 + 0x2c),(LayoutData *)&local_78,(CShape **)0x0);
+  this_00 = local_res10;
   if (lVar3 < 0) {
-    uVar12 = 0x431;
+    uVar13 = 0x431;
   }
   else {
     DVar1 = *(D2D1_INTERPOLATION_MODE *)(param_1 + 0x7c);
     CBrushDrawListGenerator::Reset(param_2);
-    local_b8 = (CMILRefCountBaseT<IBitmapResource,CMilObjectDeleter> *)0x0;
-    local_a8 = 0;
-    local_b0 = (IBitmapRealization *)0x0;
-    pcVar2 = *(code **)(*(longlong *)this_01 + 0x40);
+    local_c8 = (CMILRefCountBaseT<IBitmapResource,CMilObjectDeleter> *)0x0;
+    local_c0 = (IBitmapRealization *)0x0;
+    local_b8 = 0;
+    pcVar2 = *(code **)(*(longlong *)this_00 + 0x40);
     if (pcVar2 == CCompositionSurfaceBitmap::GetCurrentRenderingRealization) {
-      CCompositionSurfaceBitmap::GetCurrentRenderingRealization(this_01,&local_b0);
+      CCompositionSurfaceBitmap::GetCurrentRenderingRealization(this_00,&local_c0);
     }
     else if (pcVar2 == CCachedVisualImage::GetCurrentRenderingRealization) {
-      CCachedVisualImage::GetCurrentRenderingRealization((CCachedVisualImage *)this_01,&local_b0);
+      CCachedVisualImage::GetCurrentRenderingRealization((CCachedVisualImage *)this_00,&local_c0);
     }
     else if (pcVar2 == CCachedImageProducer::GetCurrentRenderingRealization) {
       CCachedImageProducer::GetCurrentRenderingRealization
-                ((CCachedImageProducer *)this_01,&local_b0);
+                ((CCachedImageProducer *)this_00,&local_c0);
     }
     else {
       (*pcVar2)();
     }
-    this_02 = local_b8;
-    local_b8 = (CMILRefCountBaseT<IBitmapResource,CMilObjectDeleter> *)this_01;
-    if (*(code **)(*(longlong *)this_01 + 8) == CMILRefCountImpl::AddReference) {
-      CMILRefCountImpl::AddReference((CMILRefCountImpl *)this_01);
+    this_01 = local_c8;
+    local_c8 = (CMILRefCountBaseT<IBitmapResource,CMilObjectDeleter> *)this_00;
+    if (*(code **)(*(longlong *)this_00 + 8) == CMILRefCountImpl::AddReference) {
+      CMILRefCountImpl::AddReference((CMILRefCountImpl *)this_00);
     }
     else {
-      (**(code **)(*(longlong *)this_01 + 8))();
-    }
-    if (this_02 != (CMILRefCountBaseT<IBitmapResource,CMilObjectDeleter> *)0x0) {
-      if (*(code **)(*(longlong *)this_02 + 0x10) ==
+      (**(code **)(*(longlong *)this_00 + 8))();
+    }
+    if (this_01 != (CMILRefCountBaseT<IBitmapResource,CMilObjectDeleter> *)0x0) {
+      if (*(code **)(*(longlong *)this_01 + 0x10) ==
           CMILRefCountBaseT<IBitmapResource,CMilObjectDeleter>::InternalRelease) {
-        CMILRefCountBaseT<IBitmapResource,CMilObjectDeleter>::InternalRelease(this_02);
+        CMILRefCountBaseT<IBitmapResource,CMilObjectDeleter>::InternalRelease(this_01);
       }
       else {
-        (**(code **)(*(longlong *)this_02 + 0x10))();
+        (**(code **)(*(longlong *)this_01 + 0x10))();
       }
     }
     EVar4 = InterpolationMode::FromD2D1InterpolationMode(DVar1);
-    pIVar7 = local_b0;
-    if (local_b0 != (IBitmapRealization *)0x0) {
-      pcVar2 = *(code **)(*(longlong *)local_b0 + 0x20);
+    uVar9 = 0;
+    pIVar8 = local_c0;
+    if (local_c0 != (IBitmapRealization *)0x0) {
+      pcVar2 = *(code **)(*(longlong *)local_c0 + 0x20);
       if (pcVar2 == IBitmapRealizationMethodsT<CDxHandleBitmapRealization,IGDIBitmapRealization>::
                     GetSize_adjustor_320__) {
-        puVar6 = (ulonglong *)
+        puVar7 = (ulonglong *)
                  IBitmapRealizationMethodsT<CDxHandleBitmapRealization,IGDIBitmapRealization>::
                  GetSize_adjustor_320__
                            ((IBitmapRealizationMethodsT<CDxHandleBitmapRealization,IGDIBitmapRealization>
-                             *)local_b0);
+                             *)local_c0);
       }
       else if (pcVar2 == CDxHandleBitmapRealization::GetSize_adjustor_256__) {
-        puVar6 = (ulonglong *)
+        puVar7 = (ulonglong *)
                  CDxHandleBitmapRealization::GetSize_adjustor_256__
-                           ((CDxHandleBitmapRealization *)local_b0);
+                           ((CDxHandleBitmapRealization *)local_c0);
       }
       else {
-        puVar6 = (ulonglong *)(*pcVar2)(local_b0,local_res20);
-      }
-      uVar8 = *puVar6;
-    }
-    fVar11 = 1.0 / (float)(uVar8 & 0xffffffff);
-    fVar10 = 1.0 / (float)(uVar8 >> 0x20);
-    puVar5 = CThreadLocalObjectCache<CSurfaceDrawListBrush,CSurfaceDrawListBrush>::Alloc
-                       ((__uint64)pIVar7);
-    if (puVar5 == (undefined8 *)0x0) {
+        puVar7 = (ulonglong *)(*pcVar2)(local_c0,local_res20);
+      }
+      uVar9 = *puVar7;
+    }
+    local_a0[1] = 0.0;
+    local_a0[2] = 0.0;
+    local_a0[3] = 0.0;
+    local_8c = 0;
+    local_80 = 0x3f800000;
+    fVar12 = 1.0 / (float)(uVar9 & 0xffffffff);
+    fVar11 = 1.0 / (float)(uVar9 >> 0x20);
+    local_88 = 0.0 - fVar12 * 0.0;
+    local_84 = 0.0 - fVar11 * 0.0;
+    local_a0[0] = fVar12;
+    local_a0[4] = fVar11;
+    pCVar5 = CThreadLocalObjectCache<CSurfaceDrawListBrush,CSurfaceDrawListBrush>::Alloc
+                       ((__uint64)pIVar8);
+    if (pCVar5 == (CSurfaceDrawListBrush *)0x0) {
+LAB_0:
       lVar3 = -0x7ff8fff2;
       MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,-0x7ff8fff2,0x1f,(void *)0x0);
       MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,-0x7ff8fff2,0x37f,(void *)0x0);
     }
     else {
-      local_res18._0_2_ = CONCAT11(1,(char)EVar4);
-      puVar5[1] = 0x3f800000;
+      local_res18._0_3_ = CONCAT21(0x101,(char)EVar4);
+      lVar6 = CSurfaceDrawListBrush::CSurfaceDrawListBrush(pCVar5,&local_c8,&local_res18,local_a0,1)
+      ;
+      if (lVar6 == 0) goto LAB_0;
+      *(undefined1 *)(lVar6 + 0x34) = 1;
+      *(undefined4 *)(lVar6 + 0x30) = 0x3030303;
+      local_b0 = (float)uStack_60 * fVar12;
+      fStack_ac = uStack_60._4_4_ * fVar11;
+      fStack_a8 = (float)local_58 * fVar12;
+      fStack_a4 = local_58._4_4_ * fVar11;
+      *(float *)(lVar6 + 0x20) = (float)uStack_60;
+      *(float *)(lVar6 + 0x24) = uStack_60._4_4_;
+      *(float *)(lVar6 + 0x28) = (float)local_58;
+      *(float *)(lVar6 + 0x2c) = local_58._4_4_;
+      *(ulonglong *)(lVar6 + 0x78) = CONCAT44(fStack_ac,local_b0);
+      *(ulonglong *)(lVar6 + 0x80) = CONCAT44(fStack_a4,fStack_a8);
       lVar3 = 0;
-      *(undefined4 *)(puVar5 + 2) = 0;
-      *(undefined8 *)((longlong)puVar5 + 0x14) = 0x3f800000;
-      *(undefined4 *)((longlong)puVar5 + 0x1c) = 0;
-      *(undefined1 *)((longlong)puVar5 + 0x34) = 0;
-      *puVar5 = &CSurfaceDrawListBrush::_vftable_;
-      puVar5[7] = local_b8;
-      if (local_b8 != (CMILRefCountBaseT<IBitmapResource,CMilObjectDeleter> *)0x0) {
-        if (*(code **)(*(longlong *)local_b8 + 8) == CMILRefCountImpl::AddReference) {
-          CMILRefCountImpl::AddReference((CMILRefCountImpl *)local_b8);
-        }
-        else {
-          (**(code **)(*(longlong *)local_b8 + 8))();
-        }
-      }
-      puVar5[8] = local_b0;
-      if (local_b0 != (IBitmapRealization *)0x0) {
-        (**(code **)(*(longlong *)local_b0 + 8))();
-      }
-      *(undefined1 *)(puVar5 + 9) = local_a8;
-      *(undefined2 *)(puVar5 + 10) = (undefined2)local_res18;
-      *(undefined1 *)((longlong)puVar5 + 0x52) = 1;
-      puVar5[0xb] = 0;
-      *(float *)((longlong)puVar5 + 0x54) = fVar11;
-      *(float *)((longlong)puVar5 + 100) = fVar10;
-      *(float *)((longlong)puVar5 + 0x6c) = 0.0 - fVar11 * 0.0;
-      *(float *)(puVar5 + 0xe) = 0.0 - fVar10 * 0.0;
-      *(undefined4 *)(puVar5 + 0xc) = 0;
-      *(undefined4 *)(puVar5 + 0xd) = 0;
-      *(undefined4 *)((longlong)puVar5 + 0x74) = 0x3f800000;
-      *(undefined4 *)(puVar5 + 0x12) = 1;
-      *(undefined1 *)((longlong)puVar5 + 0x34) = 1;
-      *(undefined4 *)(puVar5 + 6) = 0x3030303;
-      *(float *)(puVar5 + 4) = (float)uStack_88;
-      *(float *)((longlong)puVar5 + 0x24) = uStack_88._4_4_;
-      *(float *)(puVar5 + 5) = (float)local_80;
-      *(float *)((longlong)puVar5 + 0x2c) = local_80._4_4_;
-      puVar5[0xf] = CONCAT44(uStack_88._4_4_ * fVar10,(float)uStack_88 * fVar11);
-      puVar5[0x10] = CONCAT44(local_80._4_4_ * fVar10,(float)local_80 * fVar11);
-      *(undefined4 *)(puVar5 + 1) = (undefined4)local_a0;
-      *(undefined4 *)((longlong)puVar5 + 0xc) = local_a0._4_4_;
-      *(undefined4 *)(puVar5 + 2) = (undefined4)uStack_98;
-      *(undefined4 *)((longlong)puVar5 + 0x14) = uStack_98._4_4_;
-      puVar5[3] = local_90;
+      *(undefined4 *)(lVar6 + 8) = (undefined4)local_78;
+      *(undefined4 *)(lVar6 + 0xc) = local_78._4_4_;
+      *(undefined4 *)(lVar6 + 0x10) = (undefined4)uStack_70;
+      *(undefined4 *)(lVar6 + 0x14) = uStack_70._4_4_;
+      *(undefined8 *)(lVar6 + 0x18) = local_68;
       if (param_1[200] != (CSurfaceBrush)0x0) {
-        *(undefined1 *)((longlong)puVar5 + 0x93) = 1;
-        *(float *)(puVar5 + 0x11) = (float)uStack_88;
-        *(float *)((longlong)puVar5 + 0x8c) = uStack_88._4_4_;
-      }
-      this_00 = *(CSurfaceDrawListBrush **)(param_2 + 8);
-      *(undefined8 **)(param_2 + 8) = puVar5;
-      if (this_00 != (CSurfaceDrawListBrush *)0x0) {
-        pcVar2 = (code *)**(undefined8 **)this_00;
+        *(undefined1 *)(lVar6 + 0x93) = 1;
+        *(float *)(lVar6 + 0x88) = (float)uStack_60;
+        *(float *)(lVar6 + 0x8c) = uStack_60._4_4_;
+      }
+      pCVar5 = *(CSurfaceDrawListBrush **)(param_2 + 8);
+      *(longlong *)(param_2 + 8) = lVar6;
+      if (pCVar5 != (CSurfaceDrawListBrush *)0x0) {
+        pcVar2 = (code *)**(undefined8 **)pCVar5;
         if (pcVar2 == CMultiPrimitiveDrawListBrush::_scalar_deleting_destructor_) {
           CMultiPrimitiveDrawListBrush::_scalar_deleting_destructor_
-                    ((CMultiPrimitiveDrawListBrush *)this_00,1);
+                    ((CMultiPrimitiveDrawListBrush *)pCVar5,1);
         }
         else if (pcVar2 == CSurfaceDrawListBrush::_scalar_deleting_destructor_) {
-          CSurfaceDrawListBrush::_scalar_deleting_destructor_(this_00,1);
+          CSurfaceDrawListBrush::_scalar_deleting_destructor_(pCVar5,1);
         }
         else if (pcVar2 == CDrawListPrimitive0::_vector_deleting_destructor_) {
-          CDrawListPrimitive0::_vector_deleting_destructor_((CDrawListPrimitive0 *)this_00,1);
+          CDrawListPrimitive0::_vector_deleting_destructor_((CDrawListPrimitive0 *)pCVar5,1);
         }
         else {
           (*pcVar2)();
         }
       }
-      uVar9 = 1;
+      uVar10 = 1;
       if (1 < *(uint *)(param_2 + 0x28)) {
-        uVar9 = *(undefined4 *)(param_2 + 0x28);
-      }
-      *(undefined4 *)(param_2 + 0x28) = uVar9;
-    }
-    CDrawListBitmap::~CDrawListBitmap((CDrawListBitmap *)&local_b8);
-    if (-1 < lVar3) goto LAB_0;
-    uVar12 = 0x433;
-  }
-  MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar3,uVar12,(void *)0x0);
-LAB_0:
+        uVar10 = *(undefined4 *)(param_2 + 0x28);
+      }
+      *(undefined4 *)(param_2 + 0x28) = uVar10;
+    }
+    CDrawListBitmap::~CDrawListBitmap((CDrawListBitmap *)&local_c8);
+    if (-1 < lVar3) goto LAB_1;
+    uVar13 = 0x433;
+  }
+  MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar3,uVar13,(void *)0x0);
+LAB_1:
   wil::com_ptr_t<IBitmapResource,wil::err_returncode_policy>::
   ~com_ptr_t<IBitmapResource,wil::err_returncode_policy>
             ((com_ptr_t<IBitmapResource,wil::err_returncode_policy> *)&local_res10);
   return lVar3;
 }
 

```


## CVisual::GetRootTransform

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,length,address|
|ratio|0.42|
|i_ratio|0.81|
|m_ratio|0.99|
|b_ratio|0.94|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|GetRootTransform|GetRootTransform|
|fullname|CVisual::GetRootTransform|CVisual::GetRootTransform|
|refcount|24|24|
|`length`|7004|6869|
|called|<details><summary>Expand for full list:<br>CComponentTransform3D::GetRealization<br>CEffectGeneratedT<CEffect,CPropertyChangeResource>::IsOfType<br>CMILMatrix::IsPure2DUniformZ<1><br>CMILMatrix::IsTranslate<1><br>CMILMatrix::IsTranslateAndScale<1><br>CMILMatrix::IsTranslateAndScaleIgnoreZ<1><br>CMILMatrix::Multiply<br>CMatrixTransform::GetRealization<br>CPtrArrayBase::GetCount<br>CVisual::GetEffectInternal<br>_guard_dispatch_icall$thunk$10345483385596137414</summary></details>|<details><summary>Expand for full list:<br>CComponentTransform3D::GetRealization<br>CEffectGeneratedT<CEffect,CPropertyChangeResource>::IsOfType<br>CMILMatrix::IsPure2DUniformZ<1><br>CMILMatrix::IsTranslate<1><br>CMILMatrix::IsTranslateAndScale<1><br>CMILMatrix::IsTranslateAndScaleIgnoreZ<1><br>CMILMatrix::Multiply<br>CMatrixTransform::GetRealization<br>CPtrArrayBase::GetCount<br>CVisual::GetEffectInternal<br>_guard_dispatch_icall$thunk$10345483385596137414</summary></details>|
|calling|CCpuClippingData::Update<br>CCursorVisual::GetContentBounds<br>CDrawingContext::DrawBspPolygonList<br>CDrawingContext::DrawVisual<br>CRemoteAppRenderTarget::RailMultimonRenderAndPresent<br>CVisualCapture::UpdateTransformAndTreeBounds|CCpuClippingData::Update<br>CCursorVisual::GetContentBounds<br>CDrawingContext::DrawBspPolygonList<br>CDrawingContext::DrawVisual<br>CRemoteAppRenderTarget::RailMultimonRenderAndPresent<br>CVisualCapture::UpdateTransformAndTreeBounds|
|paramcount|4|4|
|`address`|1800c1fb0|1800b3000|
|sig|bool __thiscall GetRootTransform(CVisual * this, CMILMatrix * param_1, bool param_2, bool param_3)|bool __thiscall GetRootTransform(CVisual * this, CMILMatrix * param_1, bool param_2, bool param_3)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### CVisual::GetRootTransform Diff


```diff
--- CVisual::GetRootTransform
+++ CVisual::GetRootTransform
@@ -1,1016 +1,1009 @@
 
 /* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
    guard_dispatch_icall */
 /* public: bool __cdecl CVisual::GetRootTransform(class CMILMatrix * __ptr64,bool,bool)const __ptr64
     */
 
 bool __thiscall
 CVisual::GetRootTransform(CVisual *this,CMILMatrix *param_1,bool param_2,bool param_3)
 
 {
   CComponentTransform3D *pCVar1;
   CComponentTransform3D *pCVar2;
   D2D_SIZE_F *pDVar3;
   CComponentTransform3D *pCVar4;
   undefined4 uVar5;
-  int iVar6;
-  undefined4 uVar7;
+  undefined4 uVar6;
+  int iVar7;
   CComponentTransform3D *this_00;
   code *pcVar8;
   uint *puVar9;
   float fVar10;
   float fVar11;
   float fVar12;
   float fVar13;
   float fVar14;
   float fVar15;
   float fVar16;
   float fVar17;
-  undefined1 auVar18 [16];
-  undefined8 uVar19;
-  byte bVar20;
-  bool bVar21;
-  bool bVar22;
-  char cVar23;
-  uint uVar24;
-  __uint64 _Var25;
-  CEffect *pCVar27;
-  longlong lVar28;
-  CMILMatrix CVar29;
-  uint *puVar30;
+  float fVar18;
+  undefined1 auVar19 [16];
+  ulonglong uVar20;
+  ulonglong uVar21;
+  byte bVar22;
+  bool bVar23;
+  bool bVar24;
+  char cVar25;
+  uint uVar26;
+  __uint64 _Var27;
+  CEffect *pCVar29;
+  longlong lVar30;
+  CMILMatrix CVar31;
+  byte bVar32;
+  uint *puVar33;
   CEffectGeneratedT<CEffect,CPropertyChangeResource> *this_01;
-  byte bVar31;
-  uint uVar32;
-  float fVar33;
-  float fVar34;
-  float fVar35;
-  float fVar36;
+  undefined1 uVar34;
+  uint uVar35;
+  byte bVar36;
   float fVar37;
   float fVar38;
   float fVar39;
   float fVar40;
   float fVar41;
   float fVar42;
   float fVar43;
   float fVar44;
   float fVar45;
   float fVar46;
   float fVar47;
   float fVar48;
   float fVar49;
   float fVar50;
   float fVar51;
   float fVar52;
-  undefined8 local_1f8;
+  float fVar53;
+  float fVar54;
+  float fVar55;
+  float local_1f8;
+  float fStack_1f4;
   undefined8 uStack_1f0;
-  undefined8 local_1e8;
+  float local_1e8;
+  float fStack_1e4;
   undefined8 uStack_1e0;
   undefined8 local_1d8;
-  undefined8 uStack_1d0;
-  undefined8 local_1c8;
+  float fStack_1d0;
+  float fStack_1cc;
+  float local_1c8;
+  float fStack_1c4;
   float fStack_1c0;
-  float fStack_1bc;
-  byte bStack_1b8;
-  byte bStack_1b7;
-  undefined2 uStack_1b6;
+  undefined8 uStack_1bc;
   undefined1 local_1a8 [8];
   float fStack_1a0;
   float fStack_19c;
   undefined1 local_198 [8];
   float fStack_190;
   float fStack_18c;
   undefined1 local_188 [16];
   undefined1 local_178 [8];
   float fStack_170;
   float fStack_16c;
   undefined1 local_168 [8];
   float fStack_160;
   float fStack_15c;
   float local_158;
   undefined1 local_148 [8];
   float fStack_140;
   float fStack_13c;
   undefined1 local_138 [8];
   float fStack_130;
   float fStack_12c;
   undefined1 local_128 [8];
   float fStack_120;
   float fStack_11c;
   undefined1 local_118 [8];
   float fStack_110;
   float fStack_10c;
   undefined1 local_108 [8];
   float fStack_100;
   float fStack_fc;
   undefined1 local_f8 [8];
   float fStack_f0;
   float fStack_ec;
   undefined1 local_e8 [16];
-  CEffectGeneratedT<CEffect,CPropertyChangeResource> *pCVar26;
+  CEffectGeneratedT<CEffect,CPropertyChangeResource> *pCVar28;
   
   *(undefined8 *)param_1 = 0x3f800000;
   this_01 = (CEffectGeneratedT<CEffect,CPropertyChangeResource> *)0x0;
   *(undefined8 *)(param_1 + 8) = 0;
-  uVar24 = 0;
+  uVar26 = 0;
   *(undefined4 *)(param_1 + 0x10) = 0;
-  bVar21 = false;
+  bVar23 = false;
   *(undefined8 *)(param_1 + 0x14) = 0x3f800000;
   *(undefined8 *)(param_1 + 0x1c) = 0;
   *(undefined4 *)(param_1 + 0x24) = 0;
   *(undefined8 *)(param_1 + 0x28) = 0x3f800000;
   *(undefined8 *)(param_1 + 0x30) = 0;
   *(undefined4 *)(param_1 + 0x38) = 0;
   *(undefined4 *)(param_1 + 0x3c) = 0x3f800000;
-  CVar29 = (CMILMatrix)((byte)param_1[0x41] & 0xe9 | 0x29);
-  param_1[0x41] = CVar29;
+  CVar31 = (CMILMatrix)((byte)param_1[0x41] & 0xe9 | 0x29);
+  param_1[0x41] = CVar31;
   param_1[0x40] = (CMILMatrix)0xaa;
   if (!param_3) {
     if (((*(float *)(this + 0x80) != 0.0) || (*(float *)(this + 0x84) != 0.0)) ||
        (*(float *)(this + 0x7c) != 0.0)) {
-      uVar7 = *(undefined4 *)(this + 0x84);
-      uVar5 = *(undefined4 *)(this + 0x7c);
+      uVar5 = *(undefined4 *)(this + 0x84);
+      uVar6 = *(undefined4 *)(this + 0x7c);
       *(float *)(param_1 + 0x30) = *(float *)(this + 0x80);
-      bVar21 = true;
-      *(undefined4 *)(param_1 + 0x34) = uVar7;
-      *(undefined4 *)(param_1 + 0x38) = uVar5;
+      bVar23 = true;
+      *(undefined4 *)(param_1 + 0x34) = uVar5;
+      *(undefined4 *)(param_1 + 0x38) = uVar6;
       param_1[0x40] = (CMILMatrix)0xa8;
-      param_1[0x41] = CVar29;
+      param_1[0x41] = CVar31;
     }
     this_00 = *(CComponentTransform3D **)(this + 0xf0);
     if (this_00 != (CComponentTransform3D *)0x0) {
       pDVar3 = (D2D_SIZE_F *)(this + 0x90);
-      bVar20 = (byte)this_00[0x28] & 1;
+      bVar22 = (byte)this_00[0x28] & 1;
       if (pDVar3 != (D2D_SIZE_F *)0x0) {
-        if (((bVar20 == 0) && (this_00[0x9c] != (CComponentTransform3D)0x0)) &&
+        if (((bVar22 == 0) && (this_00[0x9c] != (CComponentTransform3D)0x0)) &&
            ((*(float *)(this_00 + 0x94) != *(float *)pDVar3 ||
             (*(float *)(this_00 + 0x98) != *(float *)(this + 0x94))))) {
-          bVar20 = 1;
+          bVar22 = 1;
         }
         *(undefined8 *)(this_00 + 0x94) = *(undefined8 *)pDVar3;
       }
-      if (bVar20 != 0) {
+      if (bVar22 != 0) {
         pcVar8 = *(code **)(*(longlong *)this_00 + 200);
         if (pcVar8 == CComponentTransform3D::GetRealization) {
           CComponentTransform3D::GetRealization(this_00,pDVar3,(CMILMatrix *)(this_00 + 0x50));
         }
         else if (pcVar8 == CMatrixTransform::GetRealization) {
           CMatrixTransform::GetRealization
                     ((CMatrixTransform *)this_00,pDVar3,(CMILMatrix *)(this_00 + 0x50));
         }
         else {
           (*pcVar8)();
         }
         *(uint *)(this_00 + 0x28) = *(uint *)(this_00 + 0x28) & 0xfffffffe;
       }
-      uVar32 = *(uint *)(this_00 + 0x90);
-      bStack_1b8 = (byte)uVar32;
+      uVar35 = *(uint *)(this_00 + 0x90);
+      bVar32 = (byte)uVar35;
       pCVar1 = this_00 + 0x50;
-      fVar46 = *(float *)pCVar1;
-      fVar47 = *(float *)(this_00 + 0x54);
-      local_1f8 = *(undefined8 *)pCVar1;
-      fVar45 = *(float *)(this_00 + 0x58);
+      local_1f8 = *(float *)pCVar1;
+      fStack_1f4 = *(float *)(this_00 + 0x54);
+      fVar48 = *(float *)(this_00 + 0x58);
       fVar40 = *(float *)(this_00 + 0x5c);
       uStack_1f0 = *(undefined8 *)(this_00 + 0x58);
-      fVar44 = *(float *)(this_00 + 0x60);
-      fVar42 = *(float *)(this_00 + 100);
-      local_1e8 = *(undefined8 *)(this_00 + 0x60);
-      fVar43 = *(float *)(this_00 + 0x68);
+      local_1e8 = *(float *)(this_00 + 0x60);
+      fStack_1e4 = *(float *)(this_00 + 100);
+      fVar45 = *(float *)(this_00 + 0x68);
       fVar51 = *(float *)(this_00 + 0x6c);
       uStack_1e0 = *(undefined8 *)(this_00 + 0x68);
-      bStack_1b7 = (byte)(uVar32 >> 8);
-      uStack_1b6 = (undefined2)(uVar32 >> 0x10);
       pCVar2 = this_00 + 0x70;
-      fVar37 = *(float *)pCVar2;
-      fVar39 = *(float *)(this_00 + 0x74);
+      fVar42 = *(float *)pCVar2;
+      fVar43 = *(float *)(this_00 + 0x74);
       local_1d8 = *(undefined8 *)pCVar2;
-      fVar49 = *(float *)(this_00 + 0x78);
-      fVar52 = *(float *)(this_00 + 0x7c);
-      auVar18 = *(undefined1 (*) [16])pCVar2;
-      uStack_1d0 = *(ulonglong *)(this_00 + 0x78);
+      fStack_1d0 = *(float *)(this_00 + 0x78);
+      fStack_1cc = *(float *)(this_00 + 0x7c);
+      auVar19 = *(undefined1 (*) [16])pCVar2;
       pCVar4 = this_00 + 0x80;
-      fVar38 = *(float *)pCVar4;
-      fVar41 = *(float *)(this_00 + 0x84);
-      local_1c8 = *(undefined8 *)pCVar4;
+      local_1c8 = *(float *)pCVar4;
+      fStack_1c4 = *(float *)(this_00 + 0x84);
       fStack_1c0 = *(float *)(this_00 + 0x88);
-      fStack_1bc = *(float *)(this_00 + 0x8c);
-      cVar23 = (char)(bStack_1b8 << 6) >> 6;
-      if ('\0' < cVar23) {
-        local_f8._0_4_ = fStack_1bc;
-        local_138._0_4_ = fVar52;
-        local_108._0_4_ = fVar39;
+      fVar47 = *(float *)(this_00 + 0x8c);
+      uVar21 = *(ulonglong *)(this_00 + 0x8c);
+      cVar25 = (char)(bVar32 << 6) >> 6;
+      uStack_1bc._5_1_ = (byte)(uVar21 >> 0x28);
+      bVar22 = uStack_1bc._5_1_;
+      uStack_1bc = uVar21;
+      if ('\0' < cVar25) {
+        local_f8._0_4_ = fVar47;
+        local_138._0_4_ = fStack_1cc;
+        local_108._0_4_ = fVar43;
         local_118._0_4_ = fVar51;
         local_1a8._0_4_ = fStack_1c0;
-        local_178._0_4_ = fVar42;
-        local_168._0_4_ = fVar43;
-        local_148._0_4_ = fVar45;
-        local_198._0_4_ = fVar38;
-        local_e8._0_4_ = fVar37;
+        local_178._0_4_ = fStack_1e4;
+        local_168._0_4_ = fVar45;
+        local_148._0_4_ = fVar48;
+        local_198._0_4_ = local_1c8;
+        local_e8._0_4_ = fVar42;
         local_128._0_4_ = fVar40;
-        local_188._0_4_ = fVar46;
+        local_188._0_4_ = local_1f8;
         goto LAB_0;
       }
-      if (cVar23 < '\0') {
+      if (cVar25 < '\0') {
 LAB_1:
-        uVar7 = *(undefined4 *)(param_1 + 0x40);
-        fVar46 = *(float *)param_1;
-        fVar47 = *(float *)(param_1 + 4);
-        fVar45 = *(float *)(param_1 + 8);
+        uStack_1bc = uVar21;
+        fVar49 = *(float *)param_1;
+        fVar50 = *(float *)(param_1 + 4);
+        fVar48 = *(float *)(param_1 + 8);
         fVar40 = *(float *)(param_1 + 0xc);
-        bStack_1b8 = (byte)uVar7;
-        bStack_1b7 = (byte)((uint)uVar7 >> 8);
-        uStack_1b6 = (undefined2)((uint)uVar7 >> 0x10);
-        fVar44 = *(float *)(param_1 + 0x10);
-        fVar42 = *(float *)(param_1 + 0x14);
-        fVar43 = *(float *)(param_1 + 0x18);
+        uStack_1bc = CONCAT44(*(undefined4 *)(param_1 + 0x40),(float)uStack_1bc);
+        fVar46 = *(float *)(param_1 + 0x10);
+        fVar44 = *(float *)(param_1 + 0x14);
+        fVar45 = *(float *)(param_1 + 0x18);
         fVar51 = *(float *)(param_1 + 0x1c);
-        fVar37 = *(float *)(param_1 + 0x20);
-        fVar39 = *(float *)(param_1 + 0x24);
-        fVar49 = *(float *)(param_1 + 0x28);
-        fVar52 = *(float *)(param_1 + 0x2c);
-        fVar38 = *(float *)(param_1 + 0x30);
-        fVar41 = *(float *)(param_1 + 0x34);
-        fVar34 = *(float *)(param_1 + 0x38);
-        fVar50 = *(float *)(param_1 + 0x3c);
-        uVar19 = local_1c8;
-        fVar36 = fStack_1c0;
+        fVar42 = *(float *)(param_1 + 0x20);
+        fVar43 = *(float *)(param_1 + 0x24);
+        fVar53 = *(float *)(param_1 + 0x28);
+        fVar55 = *(float *)(param_1 + 0x2c);
+        fVar37 = *(float *)(param_1 + 0x30);
+        fVar54 = *(float *)(param_1 + 0x34);
+        fVar38 = *(float *)(param_1 + 0x38);
+        fVar47 = *(float *)(param_1 + 0x3c);
+        fVar10 = local_1c8;
+        fVar11 = fStack_1c4;
+        fVar12 = fStack_1c0;
       }
       else {
-        cVar23 = (char)(bStack_1b7 << 4) >> 6;
-        if (cVar23 < '\x01') {
-          local_f8._4_4_ = fStack_1bc;
-          local_f8._0_4_ = fStack_1bc;
-          fStack_f0 = fStack_1bc;
-          fStack_ec = fStack_1bc;
-          local_138._4_4_ = fVar52;
-          local_138._0_4_ = fVar52;
-          fStack_130 = fVar52;
-          fStack_12c = fVar52;
-          local_108._4_4_ = fVar39;
-          local_108._0_4_ = fVar39;
-          fStack_100 = fVar39;
-          fStack_fc = fVar39;
+        cVar25 = (char)(uStack_1bc._5_1_ << 4) >> 6;
+        if (cVar25 < '\x01') {
+          local_f8._4_4_ = fVar47;
+          local_f8._0_4_ = fVar47;
+          fStack_f0 = fVar47;
+          fStack_ec = fVar47;
+          local_138._4_4_ = fStack_1cc;
+          local_138._0_4_ = fStack_1cc;
+          fStack_130 = fStack_1cc;
+          fStack_12c = fStack_1cc;
+          local_108._4_4_ = fVar43;
+          local_108._0_4_ = fVar43;
+          fStack_100 = fVar43;
+          fStack_fc = fVar43;
           local_118._4_4_ = fVar51;
           local_118._0_4_ = fVar51;
           fStack_110 = fVar51;
           fStack_10c = fVar51;
           local_128._4_4_ = fVar40;
           local_128._0_4_ = fVar40;
           fStack_120 = fVar40;
           fStack_11c = fVar40;
-          if (-1 < cVar23) {
-            cVar23 = (char)(bStack_1b7 << 2) >> 6;
-            if (cVar23 < '\x01') {
-              if (-1 < cVar23) {
+          bVar36 = uStack_1bc._5_1_;
+          if (-1 < cVar25) {
+            cVar25 = (char)(uStack_1bc._5_1_ << 2) >> 6;
+            uStack_1bc._6_2_ = (undefined2)(uVar35 >> 0x10);
+            uStack_1bc._0_5_ = (undefined5)uVar21;
+            if (cVar25 < '\x01') {
+              if (-1 < cVar25) {
                 if (8.138021e-05 <=
-                    ABS((ABS(fVar51) * 61440.0 + ABS(fVar40) * 61440.0 + ABS(fStack_1bc)) - 1.0)) {
-                  bStack_1b7 = bStack_1b7 & 0xdf | 0x10;
+                    ABS((ABS(fVar51) * 61440.0 + ABS(fVar40) * 61440.0 + ABS(fVar47)) - 1.0)) {
+                  uStack_1bc._5_1_ = uStack_1bc._5_1_ & 0xdf | 0x10;
                   goto LAB_2;
                 }
-                bStack_1b7 = bStack_1b7 | 0x30;
-              }
-              if (((ABS(ABS(fVar52) * 61440.0 - 0.0) < 8.138021e-05) &&
-                  (ABS(fVar37 - 0.0) < 8.138021e-05)) && (ABS(fVar39 - 0.0) < 8.138021e-05)) {
-                bStack_1b7 = bStack_1b7 | 0xc;
+                uStack_1bc._5_1_ = uStack_1bc._5_1_ | 0x30;
+              }
+              if (((ABS(ABS(fStack_1cc) * 61440.0 - 0.0) < 8.138021e-05) &&
+                  (ABS(fVar42 - 0.0) < 8.138021e-05)) && (ABS(fVar43 - 0.0) < 8.138021e-05)) {
+                bVar36 = uStack_1bc._5_1_ | 0xc;
+                uStack_1bc = CONCAT26(uStack_1bc._6_2_,
+                                      CONCAT15(uStack_1bc._5_1_,(undefined5)uStack_1bc)) |
+                             0xc0000000000;
+                uVar21 = uStack_1bc;
                 goto LAB_3;
               }
             }
 LAB_2:
-            bStack_1b7 = bStack_1b7 & 0xf7 | 4;
+            bVar22 = uStack_1bc._5_1_ & 0xf7;
+            uStack_1bc = CONCAT26(uStack_1bc._6_2_,CONCAT15(uStack_1bc._5_1_,(undefined5)uStack_1bc)
+                                 ) & 0xfffff7ffffffffff | 0x40000000000;
+            bVar22 = bVar22 | 4;
             goto LAB_4;
           }
 LAB_3:
-          cVar23 = (char)(bStack_1b8 << 4) >> 6;
-          if ('\0' < cVar23) goto LAB_4;
-          local_148._4_4_ = fVar45;
-          local_148._0_4_ = fVar45;
-          fStack_140 = fVar45;
-          fStack_13c = fVar45;
-          local_168._4_4_ = fVar43;
-          local_168._0_4_ = fVar43;
-          fStack_160 = fVar43;
-          fStack_15c = fVar43;
-          local_e8 = auVar18;
-          if (-1 < cVar23) {
-            cVar23 = (char)(bStack_1b7 << 2) >> 6;
-            if (cVar23 < '\x01') {
-              if (-1 < cVar23) {
+          uStack_1bc = uVar21;
+          cVar25 = (char)(bVar32 << 4) >> 6;
+          bVar22 = bVar36;
+          if ('\0' < cVar25) goto LAB_4;
+          local_148._4_4_ = fVar48;
+          local_148._0_4_ = fVar48;
+          fStack_140 = fVar48;
+          fStack_13c = fVar48;
+          local_168._4_4_ = fVar45;
+          local_168._0_4_ = fVar45;
+          fStack_160 = fVar45;
+          fStack_15c = fVar45;
+          local_e8 = auVar19;
+          if (-1 < cVar25) {
+            cVar25 = (char)(bVar36 << 2) >> 6;
+            if (cVar25 < '\x01') {
+              if (-1 < cVar25) {
                 if (8.138021e-05 <=
-                    ABS((ABS(fVar51) * 61440.0 + ABS(fVar40) * 61440.0 + ABS(fStack_1bc)) - 1.0)) {
-                  bStack_1b7 = bStack_1b7 & 0xdf | 0x10;
+                    ABS((ABS(fVar51) * 61440.0 + ABS(fVar40) * 61440.0 + ABS(fVar47)) - 1.0)) {
+                  bVar22 = bVar36 & 0xdf | 0x10;
+                  uStack_1bc = CONCAT26(uStack_1bc._6_2_,CONCAT15(bVar36,(undefined5)uStack_1bc)) &
+                               0xffffdfffffffffff | 0x100000000000;
                   goto LAB_5;
                 }
-                bStack_1b7 = bStack_1b7 | 0x30;
-              }
-              if ((ABS(fVar45 - 0.0) < 8.138021e-05) && (ABS(fVar43 - 0.0) < 8.138021e-05)) {
-                bStack_1b8 = bStack_1b8 | 0xc;
-                uVar32 = (uint)bStack_1b8;
+                bVar22 = bVar36 | 0x30;
+                uStack_1bc = CONCAT26(uStack_1bc._6_2_,CONCAT15(bVar36,(undefined5)uStack_1bc)) |
+                             0x300000000000;
+              }
+              if ((ABS(fVar48 - 0.0) < 8.138021e-05) && (ABS(fVar45 - 0.0) < 8.138021e-05)) {
+                uVar35 = (uint)(bVar32 | 0xc);
+                uStack_1bc = CONCAT35(uStack_1bc._5_3_,CONCAT14(bVar32,(float)uStack_1bc)) |
+                             0xc00000000;
                 goto LAB_6;
               }
             }
 LAB_5:
             local_1a8._4_4_ = fStack_1c0;
             local_1a8._0_4_ = fStack_1c0;
             fStack_1a0 = fStack_1c0;
             fStack_19c = fStack_1c0;
-            bStack_1b8 = bStack_1b8 & 0xf5 | 5;
-            uVar32 = (uint)bStack_1b8;
-            local_178._4_4_ = fVar42;
-            local_178._0_4_ = fVar42;
-            fStack_170 = fVar42;
-            fStack_16c = fVar42;
+            uVar35 = (uint)(bVar32 & 0xf5 | 5);
+            local_178._4_4_ = fStack_1e4;
+            local_178._0_4_ = fStack_1e4;
+            fStack_170 = fStack_1e4;
+            fStack_16c = fStack_1e4;
+            uStack_1bc = CONCAT35(uStack_1bc._5_3_,CONCAT14(bVar32,(float)uStack_1bc)) &
+                         0xfffffff5ffffffff | 0x500000000;
             _local_198 = *(undefined1 (*) [16])pCVar4;
             local_188 = *(undefined1 (*) [16])pCVar1;
             goto LAB_0;
           }
 LAB_6:
-          bVar20 = (byte)uVar32;
-          cVar23 = (char)(bVar20 << 2) >> 6;
-          if ('\0' < cVar23) goto LAB_7;
-          if (cVar23 < '\0') {
-            local_178._4_4_ = fVar42;
-            local_178._0_4_ = fVar42;
-            fStack_170 = fVar42;
-            fStack_16c = fVar42;
+          bVar32 = (byte)uVar35;
+          cVar25 = (char)(bVar32 << 2) >> 6;
+          if ('\0' < cVar25) goto LAB_7;
+          if (cVar25 < '\0') {
+            local_178._4_4_ = fStack_1e4;
+            local_178._0_4_ = fStack_1e4;
+            fStack_170 = fStack_1e4;
+            fStack_16c = fStack_1e4;
             local_188 = *(undefined1 (*) [16])pCVar1;
           }
           else {
-            bVar21 = CMILMatrix::IsTranslateAndScaleIgnoreZ<1>((CMILMatrix *)&local_1f8);
-            _local_178 = ZEXT416((uint)local_1e8._4_4_);
-            local_188 = ZEXT416((uint)(float)local_1f8);
-            fVar52 = uStack_1d0._4_4_;
-            fVar38 = (float)local_1c8;
-            fVar41 = local_1c8._4_4_;
-            fVar46 = (float)local_1f8;
-            fVar47 = local_1f8._4_4_;
-            fVar45 = (float)uStack_1f0;
+            bVar23 = CMILMatrix::IsTranslateAndScaleIgnoreZ<1>((CMILMatrix *)&local_1f8);
+            _local_178 = ZEXT416((uint)fStack_1e4);
+            local_188 = ZEXT416((uint)local_1f8);
+            bVar22 = uStack_1bc._5_1_;
+            fVar47 = (float)uStack_1bc;
+            fVar48 = (float)uStack_1f0;
             fVar40 = uStack_1f0._4_4_;
-            fVar37 = (float)local_1d8;
-            fVar39 = local_1d8._4_4_;
-            fVar49 = (float)uStack_1d0;
-            fVar44 = (float)local_1e8;
-            fVar42 = local_1e8._4_4_;
-            fVar43 = (float)uStack_1e0;
+            fVar42 = (float)local_1d8;
+            fVar43 = local_1d8._4_4_;
+            fVar45 = (float)uStack_1e0;
             fVar51 = uStack_1e0._4_4_;
-            if (((!bVar21) || (8.138021e-05 <= ABS((float)local_1f8 - 1.0))) ||
-               (8.138021e-05 <= ABS(local_1e8._4_4_ - 1.0))) {
-              bStack_1b8 = bStack_1b8 & 0xdd | 0x11;
-              uVar32 = (uint)bStack_1b8;
-              _local_f8 = ZEXT416((uint)fStack_1bc);
-              _local_138 = ZEXT416((uint)uStack_1d0._4_4_);
+            if (((!bVar23) || (8.138021e-05 <= ABS(local_1f8 - 1.0))) ||
+               (8.138021e-05 <= ABS(fStack_1e4 - 1.0))) {
+              uVar35 = (uint)(uStack_1bc._4_1_ & 0xdd | 0x11);
+              _local_f8 = ZEXT416((uint)(float)uStack_1bc);
+              _local_138 = ZEXT416((uint)fStack_1cc);
               _local_108 = ZEXT416((uint)local_1d8._4_4_);
               _local_118 = ZEXT416((uint)uStack_1e0._4_4_);
               _local_1a8 = ZEXT416((uint)fStack_1c0);
               _local_128 = ZEXT416((uint)uStack_1f0._4_4_);
               _local_148 = ZEXT416((uint)(float)uStack_1f0);
               _local_168 = ZEXT416((uint)(float)uStack_1e0);
-              _local_198 = ZEXT416((uint)(float)local_1c8);
+              uStack_1bc = uStack_1bc & 0xffffffddffffffff | 0x1100000000;
+              _local_198 = ZEXT416((uint)local_1c8);
               local_e8 = ZEXT416((uint)(float)local_1d8);
               goto LAB_0;
             }
-            bVar20 = bStack_1b8 | 0x30;
-            _local_f8 = ZEXT416((uint)fStack_1bc);
-            _local_138 = ZEXT416((uint)uStack_1d0._4_4_);
+            bVar32 = uStack_1bc._4_1_ | 0x30;
+            _local_f8 = ZEXT416((uint)(float)uStack_1bc);
+            _local_138 = ZEXT416((uint)fStack_1cc);
             _local_108 = ZEXT416((uint)local_1d8._4_4_);
             _local_118 = ZEXT416((uint)uStack_1e0._4_4_);
             _local_128 = ZEXT416((uint)uStack_1f0._4_4_);
             local_e8 = ZEXT416((uint)(float)local_1d8);
             _local_148 = ZEXT416((uint)(float)uStack_1f0);
             _local_168 = ZEXT416((uint)(float)uStack_1e0);
           }
-          if (8.138021e-05 <= ABS(fVar49 - 1.0)) {
-            local_198._0_4_ = fVar38;
+          if (8.138021e-05 <= ABS(fStack_1d0 - 1.0)) {
+            local_198._0_4_ = local_1c8;
             local_1a8._0_4_ = fStack_1c0;
             goto LAB_8;
           }
-          local_198._4_4_ = fVar41;
-          local_198._0_4_ = fVar38;
+          local_198._4_4_ = fStack_1c4;
+          local_198._0_4_ = local_1c8;
           fStack_190 = fStack_1c0;
-          fStack_18c = fStack_1bc;
-          if (ABS(fVar38 - 0.0) < 8.138021e-05) {
-            if (ABS(fVar41 - 0.0) < 8.138021e-05) {
+          fStack_18c = fVar47;
+          if (ABS(local_1c8 - 0.0) < 8.138021e-05) {
+            if (ABS(fStack_1c4 - 0.0) < 8.138021e-05) {
               local_1a8._4_4_ = fStack_1c0;
               local_1a8._0_4_ = fStack_1c0;
               fStack_1a0 = fStack_1c0;
               fStack_19c = fStack_1c0;
+              uVar21 = uStack_1bc;
               if (ABS(fStack_1c0 - 0.0) < 8.138021e-05) goto LAB_1;
               goto LAB_8;
             }
-            bStack_1b8 = bVar20 & 0xfd | 1;
-            uVar32 = (uint)bStack_1b8;
+            uVar35 = (uint)(bVar32 & 0xfd);
             local_1a8._4_4_ = fStack_1c0;
             local_1a8._0_4_ = fStack_1c0;
             fStack_1a0 = fStack_1c0;
             fStack_19c = fStack_1c0;
+            uStack_1bc = CONCAT35(uStack_1bc._5_3_,CONCAT14(bVar32,(float)uStack_1bc)) &
+                         0xfffffffdffffffff | 0x100000000;
           }
           else {
-            bStack_1b8 = bVar20 & 0xfd | 1;
-            uVar32 = (uint)bStack_1b8;
+            uVar35 = (uint)(bVar32 & 0xfd);
             local_1a8._0_4_ = fStack_1c0;
+            uStack_1bc = CONCAT35(uStack_1bc._5_3_,CONCAT14(bVar32,(float)uStack_1bc)) &
+                         0xfffffffdffffffff | 0x100000000;
           }
         }
         else {
-          local_f8._0_4_ = fStack_1bc;
-          local_138._0_4_ = fVar52;
-          local_108._4_4_ = fVar39;
-          local_108._0_4_ = fVar39;
-          fStack_100 = fVar39;
-          fStack_fc = fVar39;
+          local_f8._0_4_ = fVar47;
+          local_138._0_4_ = fStack_1cc;
+          local_108._4_4_ = fVar43;
+          local_108._0_4_ = fVar43;
+          fStack_100 = fVar43;
+          fStack_fc = fVar43;
           local_118._0_4_ = fVar51;
           local_128._0_4_ = fVar40;
 LAB_4:
-          local_168._4_4_ = fVar43;
-          local_168._0_4_ = fVar43;
-          fStack_160 = fVar43;
-          fStack_15c = fVar43;
-          local_148._4_4_ = fVar45;
-          local_148._0_4_ = fVar45;
-          fStack_140 = fVar45;
-          fStack_13c = fVar45;
+          local_168._4_4_ = fVar45;
+          local_168._0_4_ = fVar45;
+          fStack_160 = fVar45;
+          fStack_15c = fVar45;
+          local_148._4_4_ = fVar48;
+          local_148._0_4_ = fVar48;
+          fStack_140 = fVar48;
+          fStack_13c = fVar48;
 LAB_7:
           _local_198 = *(undefined1 (*) [16])pCVar4;
-          local_178._4_4_ = fVar42;
-          local_178._0_4_ = fVar42;
+          local_178._4_4_ = fStack_1e4;
+          local_178._0_4_ = fStack_1e4;
           local_1a8._4_4_ = fStack_1c0;
           local_1a8._0_4_ = fStack_1c0;
-          fStack_170 = fVar42;
+          fStack_170 = fStack_1e4;
           fStack_1a0 = fStack_1c0;
           local_e8 = *(undefined1 (*) [16])pCVar2;
-          fStack_16c = fVar42;
+          fStack_16c = fStack_1e4;
           fStack_19c = fStack_1c0;
-          bVar20 = (byte)uVar32;
+          bVar32 = (byte)uVar35;
           local_188 = *(undefined1 (*) [16])pCVar1;
 LAB_8:
-          bStack_1b8 = bVar20 & 0xfd | 1;
-          uVar32 = (uint)bStack_1b8;
+          uVar35 = (uint)(bVar32 & 0xfd);
+          uStack_1bc = CONCAT35(uStack_1bc._5_3_,CONCAT14(bVar32,(float)uStack_1bc)) &
+                       0xfffffffdffffffff | 0x100000000;
         }
 LAB_0:
-        fVar50 = fStack_1bc;
-        fVar34 = fStack_1c0;
-        bVar31 = (byte)uVar32;
-        cVar23 = (char)((char)param_1[0x40] << 6) >> 6;
-        bVar20 = bStack_1b7;
-        if (cVar23 < '\x01') {
-          uVar19 = local_1c8;
-          fVar36 = fStack_1c0;
-          if ((cVar23 < '\0') ||
-             (((bVar21 = CMILMatrix::IsTranslate<1>(param_1), bVar21 &&
+        fVar38 = fStack_1c0;
+        fVar54 = fStack_1c4;
+        fVar37 = local_1c8;
+        fVar55 = fStack_1cc;
+        fVar53 = fStack_1d0;
+        fVar44 = fStack_1e4;
+        fVar46 = local_1e8;
+        fVar50 = fStack_1f4;
+        fVar49 = local_1f8;
+        uVar34 = (undefined1)uVar35;
+        cVar25 = (char)((char)param_1[0x40] << 6) >> 6;
+        if (cVar25 < '\x01') {
+          fVar10 = local_1c8;
+          fVar11 = fStack_1c4;
+          fVar12 = fStack_1c0;
+          if ((cVar25 < '\0') ||
+             (((bVar23 = CMILMatrix::IsTranslate<1>(param_1), bVar23 &&
                (ABS(*(float *)(param_1 + 0x30) - 0.0) < 8.138021e-05)) &&
               ((ABS(*(float *)(param_1 + 0x34) - 0.0) < 8.138021e-05 &&
-               (uVar19 = local_1c8, fVar36 = fStack_1c0,
+               (fVar10 = local_1c8, fVar11 = fStack_1c4, fVar12 = fStack_1c0,
                ABS(*(float *)(param_1 + 0x38) - 0.0) < 8.138021e-05)))))) goto LAB_9;
           param_1[0x40] = (CMILMatrix)((byte)param_1[0x40] & 0xfd | 1);
         }
-        CVar29 = param_1[0x41];
-        if ((char)(((byte)CVar29 & 0xfc) << 4) < '\x01') {
-          if (((byte)CVar29 & 8) == 0) {
-            cVar23 = (char)((char)CVar29 << 2) >> 6;
-            if (cVar23 < '\x01') {
-              if (cVar23 < '\0') {
+        CVar31 = param_1[0x41];
+        if ((char)(((byte)CVar31 & 0xfc) << 4) < '\x01') {
+          if (((byte)CVar31 & 8) == 0) {
+            cVar25 = (char)((char)CVar31 << 2) >> 6;
+            if (cVar25 < '\x01') {
+              if (cVar25 < '\0') {
                 if (ABS(ABS(*(float *)(param_1 + 0x2c)) * 61440.0 - 0.0) < 8.138021e-05) {
-                  CVar29 = param_1[0x41];
+                  CVar31 = param_1[0x41];
 LAB_10:
                   if ((ABS(*(float *)(param_1 + 0x20) - 0.0) < 8.138021e-05) &&
                      (ABS(*(float *)(param_1 + 0x24) - 0.0) < 8.138021e-05)) {
-                    CVar29 = (CMILMatrix)((byte)CVar29 | 0xc);
-                    param_1[0x41] = CVar29;
+                    CVar31 = (CMILMatrix)((byte)CVar31 | 0xc);
+                    param_1[0x41] = CVar31;
                     goto LAB_11;
                   }
                 }
               }
               else if (ABS((ABS(*(float *)(param_1 + 0x1c)) * 61440.0 +
                             ABS(*(float *)(param_1 + 0xc)) * 61440.0 +
                            ABS(*(float *)(param_1 + 0x3c))) - 1.0) < 8.138021e-05) {
-                CVar29 = (CMILMatrix)((byte)CVar29 | 0x30);
+                CVar31 = (CMILMatrix)((byte)CVar31 | 0x30);
                 if (ABS(ABS(*(float *)(param_1 + 0x2c)) * 61440.0 - 0.0) < 8.138021e-05)
                 goto LAB_10;
               }
               else {
-                CVar29 = (CMILMatrix)((byte)CVar29 & 0xdf | 0x10);
+                CVar31 = (CMILMatrix)((byte)CVar31 & 0xdf | 0x10);
               }
             }
-            param_1[0x41] = (CMILMatrix)((byte)CVar29 & 0xf7 | 4);
+            param_1[0x41] = (CMILMatrix)((byte)CVar31 & 0xf7 | 4);
           }
           else {
 LAB_11:
-            cVar23 = (char)((char)param_1[0x40] << 4) >> 6;
-            if (cVar23 < '\x01') {
-              if (cVar23 < '\0') {
+            cVar25 = (char)((char)param_1[0x40] << 4) >> 6;
+            if (cVar25 < '\x01') {
+              if (cVar25 < '\0') {
 LAB_12:
-                cVar23 = (char)((char)param_1[0x40] << 2) >> 6;
-                if (cVar23 < '\x01') {
-                  if (-1 < cVar23) {
-                    bVar21 = CMILMatrix::IsTranslateAndScaleIgnoreZ<1>(param_1);
-                    if (((!bVar21) || (8.138021e-05 <= ABS(*(float *)param_1 - 1.0))) ||
+                cVar25 = (char)((char)param_1[0x40] << 2) >> 6;
+                if (cVar25 < '\x01') {
+                  if (-1 < cVar25) {
+                    bVar23 = CMILMatrix::IsTranslateAndScaleIgnoreZ<1>(param_1);
+                    if (((!bVar23) || (8.138021e-05 <= ABS(*(float *)param_1 - 1.0))) ||
                        (8.138021e-05 <= ABS(*(float *)(param_1 + 0x14) - 1.0))) {
                       param_1[0x40] = (CMILMatrix)((byte)param_1[0x40] & 0xdf | 0x10);
                       goto LAB_13;
                     }
                     param_1[0x40] = (CMILMatrix)((byte)param_1[0x40] | 0x30);
                   }
                   if (ABS(*(float *)(param_1 + 0x28) - 1.0) < 8.138021e-05) {
-                    fVar33 = *(float *)(param_1 + 0x30);
-                    fVar48 = *(float *)(param_1 + 0x38);
-                    fVar35 = *(float *)(param_1 + 0x34);
-                    if (((ABS(fVar33) < 8.138021e-05) && (ABS(fVar35) < 8.138021e-05)) &&
-                       (uVar19 = local_1c8, fVar36 = fStack_1c0, ABS(fVar48) < 8.138021e-05))
-                    goto LAB_9;
-                    cVar23 = (char)(bVar20 << 2) >> 6;
-                    if (cVar23 < '\x01') {
-                      if (-1 < cVar23) {
+                    fVar39 = *(float *)(param_1 + 0x30);
+                    fVar52 = *(float *)(param_1 + 0x38);
+                    fVar41 = *(float *)(param_1 + 0x34);
+                    if (((ABS(fVar39) < 8.138021e-05) && (ABS(fVar41) < 8.138021e-05)) &&
+                       (fVar10 = local_1c8, fVar11 = fStack_1c4, fVar12 = fStack_1c0,
+                       ABS(fVar52) < 8.138021e-05)) goto LAB_9;
+                    cVar25 = (char)(bVar22 << 2) >> 6;
+                    if (cVar25 < '\x01') {
+                      if (-1 < cVar25) {
                         if (8.138021e-05 <=
                             ABS((ABS((float)local_118._0_4_) * 61440.0 +
                                  ABS((float)local_128._0_4_) * 61440.0 + ABS((float)local_f8._0_4_))
                                 - 1.0)) {
-                          bVar20 = bVar20 & 0xdf | 0x10;
+                          bVar22 = bVar22 & 0xdf | 0x10;
                         }
                         else {
-                          bVar20 = bVar20 | 0x30;
-                          bStack_1b7 = bVar20;
+                          uStack_1bc = CONCAT26(uStack_1bc._6_2_,
+                                                CONCAT15(bVar22,(undefined5)uStack_1bc)) |
+                                       0x300000000000;
+                          bVar22 = bVar22 | 0x30;
                           if (ABS(ABS((float)local_138._0_4_) * 61440.0 - 0.0) < 8.138021e-05)
                           goto LAB_14;
                         }
                         goto LAB_15;
                       }
                       if (8.138021e-05 <= ABS(ABS((float)local_138._0_4_) * 61440.0 - 0.0))
                       goto LAB_15;
                     }
                     else {
 LAB_15:
-                      fVar46 = (float)local_188._0_4_ + (float)local_128._0_4_ * fVar33;
-                      fVar47 = local_1f8._4_4_ + (float)local_128._0_4_ * fVar35;
-                      fVar45 = (float)local_148._0_4_ + (float)local_128._0_4_ * fVar48;
-                      fVar44 = (float)local_1e8 + (float)local_118._0_4_ * fVar33;
-                      fVar42 = (float)local_178._0_4_ + (float)local_118._0_4_ * fVar35;
-                      fVar43 = (float)local_168._0_4_ + (float)local_118._0_4_ * fVar48;
-                      fVar37 = (float)local_e8._0_4_ + (float)local_138._0_4_ * fVar33;
-                      fVar39 = (float)local_108._0_4_ +
+                      uStack_1bc = CONCAT26(uStack_1bc._6_2_,CONCAT15(bVar22,(undefined5)uStack_1bc)
+                                           ) & 0xfffff3ffffffffff;
+                      fVar49 = (float)local_188._0_4_ + (float)local_128._0_4_ * fVar39;
+                      fVar50 = fStack_1f4 + (float)local_128._0_4_ * fVar41;
+                      fVar48 = (float)local_148._0_4_ + (float)local_128._0_4_ * fVar52;
+                      fVar46 = local_1e8 + (float)local_118._0_4_ * fVar39;
+                      fVar44 = (float)local_178._0_4_ + (float)local_118._0_4_ * fVar41;
+                      fVar45 = (float)local_168._0_4_ + (float)local_118._0_4_ * fVar52;
+                      fVar42 = (float)local_e8._0_4_ + (float)local_138._0_4_ * fVar39;
+                      fVar43 = (float)local_108._0_4_ +
                                (float)local_138._0_4_ * *(float *)(param_1 + 0x34);
-                      fVar49 = fVar49 + (float)local_138._0_4_ * fVar48;
-                      fVar33 = (float)local_f8._0_4_ * *(float *)(param_1 + 0x30);
-                      local_1e8 = CONCAT44(fVar42,fVar44);
-                      uStack_1e0 = CONCAT44(uStack_1e0._4_4_,fVar43);
-                      local_1d8 = CONCAT44(fVar39,fVar37);
-                      uStack_1d0 = CONCAT44(uStack_1d0._4_4_,fVar49);
-                      fVar48 = (float)local_f8._0_4_ * *(float *)(param_1 + 0x38);
-                      fVar35 = (float)local_f8._0_4_ * *(float *)(param_1 + 0x34);
-                      local_1f8 = CONCAT44(fVar47,fVar46);
-                      uStack_1f0 = CONCAT44(uStack_1f0._4_4_,fVar45);
+                      fVar53 = fVar53 + (float)local_138._0_4_ * fVar52;
+                      fVar39 = (float)local_f8._0_4_ * *(float *)(param_1 + 0x30);
+                      fVar52 = (float)local_f8._0_4_ * *(float *)(param_1 + 0x38);
+                      fVar41 = (float)local_f8._0_4_ * *(float *)(param_1 + 0x34);
                       fVar40 = uStack_1f0._4_4_;
-                      fVar52 = uStack_1d0._4_4_;
+                      fVar55 = fStack_1cc;
                       fVar51 = uStack_1e0._4_4_;
-                      bStack_1b7 = bVar20 & 0xf3;
                     }
 LAB_14:
-                    bStack_1b8 = bVar31 & 0xfc;
-                    local_1c8 = CONCAT44(fVar41 + fVar35,(float)local_198._0_4_ + fVar33);
-                    fVar38 = (float)local_198._0_4_ + fVar33;
-                    fVar41 = fVar41 + fVar35;
-                    fVar34 = (float)local_1a8._0_4_ + fVar48;
-                    fVar50 = fStack_1bc;
-                    uVar19 = local_1c8;
-                    fVar36 = (float)local_1a8._0_4_ + fVar48;
+                    local_1c8 = (float)local_198._0_4_ + fVar39;
+                    fVar54 = fVar54 + fVar41;
+                    fVar47 = (float)uStack_1bc;
+                    uStack_1bc = CONCAT35(uStack_1bc._5_3_,CONCAT14(uVar34,(float)uStack_1bc)) &
+                                 0xfffffffcffffffff;
+                    fVar37 = local_1c8;
+                    fVar38 = (float)local_1a8._0_4_ + fVar52;
+                    fVar10 = local_1c8;
+                    fVar11 = fVar54;
+                    fVar12 = (float)local_1a8._0_4_ + fVar52;
                     goto LAB_9;
                   }
                 }
               }
               else {
-                cVar23 = (char)((char)CVar29 << 2) >> 6;
-                if (cVar23 < '\x01') {
-                  if (-1 < cVar23) {
+                cVar25 = (char)((char)CVar31 << 2) >> 6;
+                if (cVar25 < '\x01') {
+                  if (-1 < cVar25) {
                     if (8.138021e-05 <=
                         ABS((ABS(*(float *)(param_1 + 0x1c)) * 61440.0 +
                              ABS(*(float *)(param_1 + 0xc)) * 61440.0 +
                             ABS(*(float *)(param_1 + 0x3c))) - 1.0)) {
-                      param_1[0x41] = (CMILMatrix)((byte)CVar29 & 0xdf | 0x10);
+                      param_1[0x41] = (CMILMatrix)((byte)CVar31 & 0xdf | 0x10);
                       param_1[0x40] = (CMILMatrix)((byte)param_1[0x40] & 0xf7 | 4);
                       goto LAB_13;
                     }
-                    param_1[0x41] = (CMILMatrix)((byte)CVar29 | 0x30);
+                    param_1[0x41] = (CMILMatrix)((byte)CVar31 | 0x30);
                   }
                   if ((ABS(*(float *)(param_1 + 8) - 0.0) < 8.138021e-05) &&
                      (ABS(*(float *)(param_1 + 0x18) - 0.0) < 8.138021e-05)) {
                     param_1[0x40] = (CMILMatrix)((byte)param_1[0x40] | 0xc);
                     goto LAB_12;
                   }
                 }
                 param_1[0x40] = (CMILMatrix)((byte)param_1[0x40] & 0xf7 | 4);
               }
             }
           }
         }
 LAB_13:
-        bVar21 = CMILMatrix::IsTranslate<1>((CMILMatrix *)&local_1f8);
-        if (bVar21) {
-          fVar33 = (float)local_1c8;
-          fVar48 = local_1c8._4_4_;
-          local_158 = local_1c8._4_4_;
-          fVar38 = *(float *)(param_1 + 0x30);
-          fVar41 = *(float *)(param_1 + 0x34);
-          fVar34 = *(float *)(param_1 + 0x38);
-          fVar50 = *(float *)(param_1 + 0x3c);
-          uVar7 = *(undefined4 *)(param_1 + 0x40);
-          bStack_1b8 = (byte)uVar7;
-          bStack_1b7 = (byte)((uint)uVar7 >> 8);
-          uStack_1b6 = (undefined2)((uint)uVar7 >> 0x10);
-          fVar46 = *(float *)param_1;
-          fVar47 = *(float *)(param_1 + 4);
-          fVar45 = *(float *)(param_1 + 8);
+        bVar23 = CMILMatrix::IsTranslate<1>((CMILMatrix *)&local_1f8);
+        if (bVar23) {
+          local_158 = fStack_1c4;
+          fVar37 = *(float *)(param_1 + 0x30);
+          fVar54 = *(float *)(param_1 + 0x34);
+          fVar38 = *(float *)(param_1 + 0x38);
+          fVar47 = *(float *)(param_1 + 0x3c);
+          uVar21 = *(ulonglong *)(param_1 + 0x3c);
+          fVar49 = *(float *)param_1;
+          fVar50 = *(float *)(param_1 + 4);
+          fVar48 = *(float *)(param_1 + 8);
           fVar40 = *(float *)(param_1 + 0xc);
-          fVar44 = *(float *)(param_1 + 0x10);
-          fVar42 = *(float *)(param_1 + 0x14);
-          fVar43 = *(float *)(param_1 + 0x18);
+          fVar46 = *(float *)(param_1 + 0x10);
+          fVar44 = *(float *)(param_1 + 0x14);
+          fVar45 = *(float *)(param_1 + 0x18);
           fVar51 = *(float *)(param_1 + 0x1c);
-          fVar37 = *(float *)(param_1 + 0x20);
-          fVar39 = *(float *)(param_1 + 0x24);
-          fVar49 = *(float *)(param_1 + 0x28);
-          fVar52 = *(float *)(param_1 + 0x2c);
-          fStack_1bc = fVar50;
-          if (((8.138021e-05 <= ABS((float)local_1c8)) || (8.138021e-05 <= ABS(local_1c8._4_4_))) ||
-             (uVar19 = *(undefined8 *)(param_1 + 0x30), fVar36 = fVar34,
+          fVar42 = *(float *)(param_1 + 0x20);
+          fVar43 = *(float *)(param_1 + 0x24);
+          fVar53 = *(float *)(param_1 + 0x28);
+          fVar55 = *(float *)(param_1 + 0x2c);
+          if (((8.138021e-05 <= ABS(local_1c8)) || (8.138021e-05 <= ABS(fStack_1c4))) ||
+             (fVar10 = fVar37, fVar11 = fVar54, fVar12 = fVar38, uStack_1bc = uVar21,
              8.138021e-05 <= ABS(fStack_1c0))) {
-            fVar38 = fVar38 + fVar44 * local_1c8._4_4_ + fVar46 * (float)local_1c8 +
-                              fStack_1c0 * fVar37;
-            fVar41 = fVar41 + fVar47 * (float)local_1c8 + fVar42 * local_1c8._4_4_ +
-                              fStack_1c0 * fVar39;
-            fVar36 = fVar43 * local_1c8._4_4_;
-            local_1c8 = CONCAT44(fVar41,fVar38);
-            fVar34 = fVar34 + fVar36 + fVar45 * fVar33 + fStack_1c0 * fVar49;
-            cVar23 = (char)(bStack_1b7 << 2) >> 6;
-            fVar36 = fVar34;
-            if (cVar23 < '\x01') {
-              if (-1 < cVar23) {
+            uStack_1bc._5_1_ = (byte)((uint)*(undefined4 *)(param_1 + 0x40) >> 8);
+            fVar37 = fVar37 + fVar46 * fStack_1c4 + fVar49 * local_1c8 + fStack_1c0 * fVar42;
+            fVar54 = fVar54 + fVar50 * local_1c8 + fVar44 * fStack_1c4 + fStack_1c0 * fVar43;
+            fVar38 = fVar38 + fVar45 * fStack_1c4 + fVar48 * local_1c8 + fStack_1c0 * fVar53;
+            cVar25 = (char)(uStack_1bc._5_1_ << 2) >> 6;
+            fVar10 = fVar37;
+            fVar11 = fVar54;
+            fVar12 = fVar38;
+            if (cVar25 < '\x01') {
+              if (-1 < cVar25) {
                 if (8.138021e-05 <=
-                    ABS((ABS(fVar51) * 61440.0 + ABS(fVar40) * 61440.0 + ABS(fVar50)) - 1.0))
+                    ABS((ABS(fVar51) * 61440.0 + ABS(fVar40) * 61440.0 + ABS(fVar47)) - 1.0))
                 goto LAB_16;
-                bStack_1b7 = bStack_1b7 | 0x30;
-              }
-              if (ABS(ABS(fVar52) * 61440.0 - 0.0) < 8.138021e-05) {
-                bStack_1b8 = bStack_1b8 & 0xfc;
-                uVar19 = local_1c8;
+                uStack_1bc._6_2_ = (undefined2)((uint)*(undefined4 *)(param_1 + 0x40) >> 0x10);
+                uStack_1bc._0_5_ = (undefined5)uVar21;
+                uStack_1bc = CONCAT26(uStack_1bc._6_2_,
+                                      CONCAT15(uStack_1bc._5_1_,(undefined5)uStack_1bc)) |
+                             0x300000000000;
+                uVar21 = uStack_1bc;
+              }
+              if (ABS(ABS(fVar55) * 61440.0 - 0.0) < 8.138021e-05) {
+                uStack_1bc = uVar21 & 0xfffffffcffffffff;
+                fVar47 = (float)uStack_1bc;
                 goto LAB_9;
               }
             }
 LAB_16:
-            bStack_1b8 = 0;
-            bStack_1b7 = 0;
-            uStack_1b6 = 0;
-            fVar50 = fVar50 + fVar51 * fVar48 + fVar40 * fVar33 + fStack_1c0 * fVar52;
-            uVar19 = CONCAT44(fVar41,fVar38);
-            fStack_1bc = fVar50;
+            uStack_1bc = uVar21;
+            uStack_1bc = uStack_1bc & 0xffffffff;
+            fVar47 = fVar47 + fVar51 * fStack_1c4 + fVar40 * local_1c8 + fStack_1c0 * fVar55;
           }
         }
         else {
-          bVar21 = CMILMatrix::IsTranslateAndScale<1>(param_1);
-          if (bVar21) {
-            fVar46 = *(float *)param_1;
-            fVar47 = *(float *)(param_1 + 0x28);
+          bVar23 = CMILMatrix::IsTranslateAndScale<1>(param_1);
+          if (bVar23) {
+            fVar48 = *(float *)param_1;
+            fVar40 = *(float *)(param_1 + 0x28);
             fVar45 = *(float *)(param_1 + 0x14);
-            if (((8.138021e-05 <= ABS(fVar46 - 1.0)) || (8.138021e-05 <= ABS(fVar45 - 1.0))) ||
-               (fVar40 = local_1c8._4_4_, fVar44 = (float)local_1c8, fVar42 = local_1d8._4_4_,
-               fVar43 = (float)local_1d8, fVar51 = local_1e8._4_4_, fVar37 = (float)local_1e8,
-               fVar39 = local_1f8._4_4_, 8.138021e-05 <= ABS(fVar47 - 1.0))) {
-              fVar37 = (float)local_1e8 * fVar46;
-              fVar43 = (float)local_1d8 * fVar46;
-              fVar44 = (float)local_1c8 * fVar46;
-              fVar39 = local_1f8._4_4_ * fVar45;
-              fVar51 = local_1e8._4_4_ * fVar45;
-              fVar42 = local_1d8._4_4_ * fVar45;
-              fVar40 = local_1c8._4_4_ * fVar45;
-              local_1f8 = CONCAT44(fVar39,(float)local_1f8 * fVar46);
-              local_1e8 = CONCAT44(fVar51,fVar37);
-              local_1d8 = CONCAT44(fVar42,fVar43);
-              local_1c8 = CONCAT44(fVar40,fVar44);
-              if (8.138021e-05 <= ABS(fVar47 - 1.0)) {
-                uStack_1f0 = CONCAT44(uStack_1f0._4_4_,(float)uStack_1f0 * fVar47);
-                fStack_1c0 = fStack_1c0 * fVar47;
-                uStack_1d0 = CONCAT44(uStack_1d0._4_4_,(float)uStack_1d0 * fVar47);
-                uStack_1e0 = CONCAT44(uStack_1e0._4_4_,(float)uStack_1e0 * fVar47);
-              }
-              bStack_1b8 = bStack_1b8 & 0xcc;
+            if (((8.138021e-05 <= ABS(fVar48 - 1.0)) || (8.138021e-05 <= ABS(fVar45 - 1.0))) ||
+               (fVar51 = local_1d8._4_4_, fVar42 = (float)local_1d8, bVar22 = uStack_1bc._4_1_,
+               8.138021e-05 <= ABS(fVar40 - 1.0))) {
+              local_1f8 = local_1f8 * fVar48;
+              local_1e8 = local_1e8 * fVar48;
+              fVar42 = (float)local_1d8 * fVar48;
+              local_1c8 = local_1c8 * fVar48;
+              fStack_1f4 = fStack_1f4 * fVar45;
+              fStack_1e4 = fStack_1e4 * fVar45;
+              fVar51 = local_1d8._4_4_ * fVar45;
+              fStack_1c4 = fStack_1c4 * fVar45;
+              local_1d8 = CONCAT44(fVar51,fVar42);
+              if (8.138021e-05 <= ABS(fVar40 - 1.0)) {
+                uStack_1f0 = CONCAT44(uStack_1f0._4_4_,(float)uStack_1f0 * fVar40);
+                fStack_1d0 = fStack_1d0 * fVar40;
+                fStack_1c0 = fStack_1c0 * fVar40;
+                uStack_1e0 = CONCAT44(uStack_1e0._4_4_,(float)uStack_1e0 * fVar40);
+              }
+              bVar22 = uStack_1bc._4_1_ & 0xcc;
+              uStack_1bc = uStack_1bc & 0xffffffccffffffff;
             }
             if (((8.138021e-05 <= ABS(*(float *)(param_1 + 0x30))) ||
                 (8.138021e-05 <= ABS(*(float *)(param_1 + 0x34)))) ||
                (8.138021e-05 <= ABS(*(float *)(param_1 + 0x38)))) {
-              cVar23 = (char)(bStack_1b7 << 2) >> 6;
-              if (cVar23 < '\x01') {
-                if (-1 < cVar23) {
+              cVar25 = (char)(uStack_1bc._5_1_ << 2) >> 6;
+              bVar32 = uStack_1bc._5_1_;
+              if (cVar25 < '\x01') {
+                if (-1 < cVar25) {
                   if (8.138021e-05 <=
                       ABS((ABS(uStack_1e0._4_4_) * 61440.0 + ABS(uStack_1f0._4_4_) * 61440.0 +
-                          ABS(fStack_1bc)) - 1.0)) {
-                    bStack_1b7 = bStack_1b7 & 0xdf | 0x10;
+                          ABS((float)uStack_1bc)) - 1.0)) {
+                    bVar32 = uStack_1bc._5_1_ & 0xdf | 0x10;
                   }
                   else {
-                    bStack_1b7 = bStack_1b7 | 0x30;
-                    if (ABS(ABS(uStack_1d0._4_4_) * 61440.0 - 0.0) < 8.138021e-05)
-                    goto LAB_17;
+                    bVar32 = uStack_1bc._5_1_ | 0x30;
+                    uStack_1bc = uStack_1bc | 0x300000000000;
+                    if (ABS(ABS(fStack_1cc) * 61440.0 - 0.0) < 8.138021e-05) goto LAB_17;
                   }
                   goto LAB_18;
                 }
-                if (8.138021e-05 <= ABS(ABS(uStack_1d0._4_4_) * 61440.0 - 0.0)) goto LAB_18;
+                if (8.138021e-05 <= ABS(ABS(fStack_1cc) * 61440.0 - 0.0)) goto LAB_18;
 LAB_17:
-                fVar47 = *(float *)(param_1 + 0x30);
+                fVar40 = *(float *)(param_1 + 0x30);
                 fVar45 = *(float *)(param_1 + 0x34);
-                fVar49 = *(float *)(param_1 + 0x38);
+                fVar43 = *(float *)(param_1 + 0x38);
               }
               else {
 LAB_18:
-                bStack_1b7 = bStack_1b7 & 0xf3;
-                fVar47 = *(float *)(param_1 + 0x30);
-                fVar49 = *(float *)(param_1 + 0x38);
-                fVar46 = *(float *)(param_1 + 0x34);
-                local_1f8 = CONCAT44(fVar39 + uStack_1f0._4_4_ * fVar46,
-                                     (float)local_1f8 + uStack_1f0._4_4_ * fVar47);
-                uStack_1f0 = CONCAT44(uStack_1f0._4_4_,(float)uStack_1f0 + uStack_1f0._4_4_ * fVar49
+                fVar40 = *(float *)(param_1 + 0x30);
+                fVar43 = *(float *)(param_1 + 0x38);
+                fVar48 = *(float *)(param_1 + 0x34);
+                uStack_1bc = CONCAT26(uStack_1bc._6_2_,CONCAT15(bVar32,(undefined5)uStack_1bc)) &
+                             0xfffff3ffffffffff;
+                local_1f8 = local_1f8 + uStack_1f0._4_4_ * fVar40;
+                fStack_1f4 = fStack_1f4 + uStack_1f0._4_4_ * fVar48;
+                uStack_1f0 = CONCAT44(uStack_1f0._4_4_,(float)uStack_1f0 + uStack_1f0._4_4_ * fVar43
                                      );
-                local_1e8 = CONCAT44(fVar51 + uStack_1e0._4_4_ * fVar46,
-                                     fVar37 + uStack_1e0._4_4_ * fVar47);
-                uStack_1e0 = CONCAT44(uStack_1e0._4_4_,(float)uStack_1e0 + uStack_1e0._4_4_ * fVar49
+                fStack_1e4 = fStack_1e4 + uStack_1e0._4_4_ * fVar48;
+                local_1e8 = local_1e8 + uStack_1e0._4_4_ * fVar40;
+                uStack_1e0 = CONCAT44(uStack_1e0._4_4_,(float)uStack_1e0 + uStack_1e0._4_4_ * fVar43
                                      );
-                fVar45 = fStack_1bc * fVar46;
-                local_1d8 = CONCAT44(fVar42 + uStack_1d0._4_4_ * fVar46,
-                                     fVar43 + uStack_1d0._4_4_ * fVar47);
-                uStack_1d0 = CONCAT44(uStack_1d0._4_4_,(float)uStack_1d0 + uStack_1d0._4_4_ * fVar49
-                                     );
-                fVar47 = fStack_1bc * fVar47;
-                fVar49 = fStack_1bc * fVar49;
-              }
-              fStack_1c0 = fStack_1c0 + fVar49;
-              bStack_1b8 = bStack_1b8 & 0xfc;
-              local_1c8 = CONCAT44(fVar40 + fVar45,fVar44 + fVar47);
+                fStack_1d0 = fStack_1d0 + fStack_1cc * fVar43;
+                fVar45 = (float)uStack_1bc * fVar48;
+                local_1d8 = CONCAT44(fVar51 + fStack_1cc * fVar48,fVar42 + fStack_1cc * fVar40);
+                fVar40 = (float)uStack_1bc * fVar40;
+                fVar43 = (float)uStack_1bc * fVar43;
+              }
+              local_1c8 = local_1c8 + fVar40;
+              fStack_1c4 = fStack_1c4 + fVar45;
+              fStack_1c0 = fStack_1c0 + fVar43;
+              uStack_1bc = CONCAT35(uStack_1bc._5_3_,CONCAT14(bVar22,(float)uStack_1bc)) &
+                           0xfffffffcffffffff;
             }
-            fVar38 = (float)local_1c8;
-            fVar41 = local_1c8._4_4_;
-            fVar34 = fStack_1c0;
-            fVar50 = fStack_1bc;
-            fVar46 = (float)local_1f8;
-            fVar47 = local_1f8._4_4_;
-            fVar45 = (float)uStack_1f0;
+            fVar37 = local_1c8;
+            fVar54 = fStack_1c4;
+            fVar38 = fStack_1c0;
+            fVar47 = (float)uStack_1bc;
+            fVar49 = local_1f8;
+            fVar50 = fStack_1f4;
+            fVar48 = (float)uStack_1f0;
             fVar40 = uStack_1f0._4_4_;
-            fVar37 = (float)local_1d8;
-            fVar39 = local_1d8._4_4_;
-            fVar49 = (float)uStack_1d0;
-            fVar52 = uStack_1d0._4_4_;
-            fVar44 = (float)local_1e8;
-            fVar42 = local_1e8._4_4_;
-            fVar43 = (float)uStack_1e0;
+            fVar42 = (float)local_1d8;
+            fVar43 = local_1d8._4_4_;
+            fVar53 = fStack_1d0;
+            fVar55 = fStack_1cc;
+            fVar46 = local_1e8;
+            fVar44 = fStack_1e4;
+            fVar45 = (float)uStack_1e0;
             fVar51 = uStack_1e0._4_4_;
-            uVar19 = local_1c8;
-            fVar36 = fStack_1c0;
+            fVar10 = local_1c8;
+            fVar11 = fStack_1c4;
+            fVar12 = fStack_1c0;
           }
           else {
-            bVar21 = CMILMatrix::IsPure2DUniformZ<1>((CMILMatrix *)&local_1f8);
-            if ((bVar21) && (bVar21 = CMILMatrix::IsPure2DUniformZ<1>(param_1), bVar21)) {
+            bVar23 = CMILMatrix::IsPure2DUniformZ<1>((CMILMatrix *)&local_1f8);
+            if ((bVar23) && (bVar23 = CMILMatrix::IsPure2DUniformZ<1>(param_1), bVar23)) {
               fVar45 = *(float *)(param_1 + 0x10);
-              fVar40 = *(float *)(param_1 + 4);
-              fVar43 = *(float *)(param_1 + 0x14);
-              fVar51 = *(float *)param_1;
-              fStack_1bc = 1.0;
-              uStack_1b6 = 0;
-              bStack_1b7 = 0x28;
+              fVar51 = *(float *)(param_1 + 4);
+              fVar44 = *(float *)(param_1 + 0x14);
+              fVar46 = *(float *)param_1;
+              uStack_1e0 = 0;
+              uStack_1f0 = 0;
               uStack_1e0._0_4_ = 0.0;
               uStack_1e0._4_4_ = 0.0;
-              fVar49 = (float)uStack_1d0;
+              local_1d8 = 0;
+              fStack_1cc = 0.0;
               local_1d8._0_4_ = 0.0;
               local_1d8._4_4_ = 0.0;
-              uStack_1d0._4_4_ = 0.0;
-              fVar52 = uStack_1d0._4_4_;
-              fVar42 = local_1e8._4_4_ * fVar43 + (float)local_1e8 * fVar40;
-              fVar44 = local_1e8._4_4_ * fVar45 + (float)local_1e8 * fVar51;
-              bStack_1b8 = 8;
-              fVar46 = local_1f8._4_4_ * fVar45 + (float)local_1f8 * fVar51;
-              fVar34 = fStack_1c0 * *(float *)(param_1 + 0x28) + *(float *)(param_1 + 0x38);
+              uStack_1bc = 0x28083f800000;
+              uStack_1bc._0_4_ = 1.0;
               uStack_1f0._0_4_ = 0.0;
               uStack_1f0._4_4_ = 0.0;
-              local_1e8 = CONCAT44(fVar42,fVar44);
-              uStack_1e0 = 0;
-              fVar47 = local_1f8._4_4_ * fVar43 + (float)local_1f8 * fVar40;
-              fVar38 = local_1c8._4_4_ * fVar45 + (float)local_1c8 * fVar51 +
-                       *(float *)(param_1 + 0x30);
-              fVar49 = fVar49 * *(float *)(param_1 + 0x28);
-              fVar41 = local_1c8._4_4_ * fVar43 + (float)local_1c8 * fVar40 +
-                       *(float *)(param_1 + 0x34);
-              local_1d8 = 0;
-              uStack_1d0 = (ulonglong)(uint)fVar49;
-              local_1f8 = CONCAT44(fVar47,fVar46);
-              uStack_1f0 = 0;
-              local_1c8 = CONCAT44(fVar41,fVar38);
-              fVar50 = fStack_1bc;
-              fVar45 = (float)uStack_1f0;
+              fVar37 = fStack_1c4 * fVar45 + local_1c8 * fVar46 + *(float *)(param_1 + 0x30);
+              fVar54 = fStack_1c4 * fVar44 + local_1c8 * fVar51 + *(float *)(param_1 + 0x34);
+              fVar38 = fStack_1c0 * *(float *)(param_1 + 0x28) + *(float *)(param_1 + 0x38);
+              fVar47 = (float)uStack_1bc;
+              fVar49 = fStack_1f4 * fVar45 + local_1f8 * fVar46;
+              fVar50 = fStack_1f4 * fVar44 + local_1f8 * fVar51;
+              fVar48 = (float)uStack_1f0;
               fVar40 = uStack_1f0._4_4_;
-              fVar37 = (float)local_1d8;
-              fVar39 = local_1d8._4_4_;
-              fVar43 = (float)uStack_1e0;
+              fVar42 = (float)local_1d8;
+              fVar43 = local_1d8._4_4_;
+              fVar53 = fStack_1d0 * *(float *)(param_1 + 0x28);
+              fVar55 = fStack_1cc;
+              fVar46 = fStack_1e4 * fVar45 + local_1e8 * fVar46;
+              fVar44 = fStack_1e4 * fVar44 + local_1e8 * fVar51;
+              fVar45 = (float)uStack_1e0;
               fVar51 = uStack_1e0._4_4_;
-              uVar19 = local_1c8;
-              fVar36 = fVar34;
+              fVar10 = local_1c8;
+              fVar11 = fStack_1c4;
+              fVar12 = fStack_1c0;
             }
             else {
-              fVar44 = *(float *)param_1;
-              fVar42 = *(float *)(param_1 + 4);
-              fVar43 = *(float *)(param_1 + 8);
-              fVar51 = *(float *)(param_1 + 0xc);
-              bStack_1b8 = 0;
-              bStack_1b7 = 0;
-              uStack_1b6 = 0;
-              fVar36 = *(float *)(param_1 + 0x10);
-              fVar33 = *(float *)(param_1 + 0x14);
-              fVar48 = *(float *)(param_1 + 0x18);
-              fVar35 = *(float *)(param_1 + 0x1c);
-              fVar10 = *(float *)(param_1 + 0x20);
-              fVar11 = *(float *)(param_1 + 0x24);
-              fVar12 = *(float *)(param_1 + 0x28);
-              fVar13 = *(float *)(param_1 + 0x2c);
-              fVar14 = *(float *)(param_1 + 0x30);
-              fVar15 = *(float *)(param_1 + 0x34);
-              fVar16 = *(float *)(param_1 + 0x38);
-              fVar17 = *(float *)(param_1 + 0x3c);
-              fVar38 = fStack_1bc * fVar14 + local_1c8._4_4_ * fVar36 +
-                       fStack_1c0 * fVar10 + (float)local_1c8 * fVar44;
-              fVar41 = fStack_1bc * fVar15 + local_1c8._4_4_ * fVar33 +
-                       fStack_1c0 * fVar11 + (float)local_1c8 * fVar42;
-              fVar34 = fStack_1bc * fVar16 + local_1c8._4_4_ * fVar48 +
-                       fStack_1c0 * fVar12 + (float)local_1c8 * fVar43;
-              fVar50 = fStack_1bc * fVar17 + local_1c8._4_4_ * fVar35 +
-                       fStack_1c0 * fVar13 + (float)local_1c8 * fVar51;
-              fVar46 = uStack_1f0._4_4_ * fVar14 + local_1f8._4_4_ * fVar36 +
-                       (float)uStack_1f0 * fVar10 + (float)local_1f8 * fVar44;
-              fVar47 = uStack_1f0._4_4_ * fVar15 + local_1f8._4_4_ * fVar33 +
-                       (float)uStack_1f0 * fVar11 + (float)local_1f8 * fVar42;
-              fVar45 = uStack_1f0._4_4_ * fVar16 + local_1f8._4_4_ * fVar48 +
-                       (float)uStack_1f0 * fVar12 + (float)local_1f8 * fVar43;
-              fVar40 = uStack_1f0._4_4_ * fVar17 + local_1f8._4_4_ * fVar35 +
-                       (float)uStack_1f0 * fVar13 + (float)local_1f8 * fVar51;
-              fVar37 = uStack_1d0._4_4_ * fVar14 + local_1d8._4_4_ * fVar36 +
-                       (float)uStack_1d0 * fVar10 + (float)local_1d8 * fVar44;
-              fVar39 = uStack_1d0._4_4_ * fVar15 + local_1d8._4_4_ * fVar33 +
-                       (float)uStack_1d0 * fVar11 + (float)local_1d8 * fVar42;
-              fVar49 = uStack_1d0._4_4_ * fVar16 + local_1d8._4_4_ * fVar48 +
-                       (float)uStack_1d0 * fVar12 + (float)local_1d8 * fVar43;
-              fVar52 = uStack_1d0._4_4_ * fVar17 + local_1d8._4_4_ * fVar35 +
-                       (float)uStack_1d0 * fVar13 + (float)local_1d8 * fVar51;
-              fVar44 = uStack_1e0._4_4_ * fVar14 + local_1e8._4_4_ * fVar36 +
-                       (float)uStack_1e0 * fVar10 + (float)local_1e8 * fVar44;
-              fVar42 = uStack_1e0._4_4_ * fVar15 + local_1e8._4_4_ * fVar33 +
-                       (float)uStack_1e0 * fVar11 + (float)local_1e8 * fVar42;
-              fVar43 = uStack_1e0._4_4_ * fVar16 + local_1e8._4_4_ * fVar48 +
-                       (float)uStack_1e0 * fVar12 + (float)local_1e8 * fVar43;
-              fVar51 = uStack_1e0._4_4_ * fVar17 + local_1e8._4_4_ * fVar35 +
-                       (float)uStack_1e0 * fVar13 + (float)local_1e8 * fVar51;
-              uVar19 = local_1c8;
-              fVar36 = fStack_1c0;
+              uVar21 = uStack_1bc;
+              fVar45 = *(float *)param_1;
+              fVar51 = *(float *)(param_1 + 4);
+              fVar10 = *(float *)(param_1 + 8);
+              fVar11 = *(float *)(param_1 + 0xc);
+              uStack_1bc = uStack_1bc & 0xffffffff;
+              uVar20 = uStack_1bc;
+              fVar46 = *(float *)(param_1 + 0x10);
+              fVar44 = *(float *)(param_1 + 0x14);
+              fVar12 = *(float *)(param_1 + 0x18);
+              fVar39 = *(float *)(param_1 + 0x1c);
+              fVar52 = *(float *)(param_1 + 0x20);
+              fVar41 = *(float *)(param_1 + 0x24);
+              fVar13 = *(float *)(param_1 + 0x28);
+              fVar14 = *(float *)(param_1 + 0x2c);
+              fVar15 = *(float *)(param_1 + 0x30);
+              fVar16 = *(float *)(param_1 + 0x34);
+              fVar17 = *(float *)(param_1 + 0x38);
+              fVar18 = *(float *)(param_1 + 0x3c);
+              uStack_1bc._0_4_ = (float)uVar21;
+              fVar37 = (float)uStack_1bc * fVar15 + fStack_1c4 * fVar46 +
+                       fStack_1c0 * fVar52 + local_1c8 * fVar45;
+              fVar54 = (float)uStack_1bc * fVar16 + fStack_1c4 * fVar44 +
+                       fStack_1c0 * fVar41 + local_1c8 * fVar51;
+              fVar38 = (float)uStack_1bc * fVar17 + fStack_1c4 * fVar12 +
+                       fStack_1c0 * fVar13 + local_1c8 * fVar10;
+              fVar47 = (float)uStack_1bc * fVar18 + fStack_1c4 * fVar39 +
+                       fStack_1c0 * fVar14 + local_1c8 * fVar11;
+              fVar49 = uStack_1f0._4_4_ * fVar15 + fStack_1f4 * fVar46 +
+                       (float)uStack_1f0 * fVar52 + local_1f8 * fVar45;
+              fVar50 = uStack_1f0._4_4_ * fVar16 + fStack_1f4 * fVar44 +
+                       (float)uStack_1f0 * fVar41 + local_1f8 * fVar51;
+              fVar48 = uStack_1f0._4_4_ * fVar17 + fStack_1f4 * fVar12 +
+                       (float)uStack_1f0 * fVar13 + local_1f8 * fVar10;
+              fVar40 = uStack_1f0._4_4_ * fVar18 + fStack_1f4 * fVar39 +
+                       (float)uStack_1f0 * fVar14 + local_1f8 * fVar11;
+              fVar42 = fStack_1cc * fVar15 + local_1d8._4_4_ * fVar46 +
+                       fStack_1d0 * fVar52 + (float)local_1d8 * fVar45;
+              fVar43 = fStack_1cc * fVar16 + local_1d8._4_4_ * fVar44 +
+                       fStack_1d0 * fVar41 + (float)local_1d8 * fVar51;
+              fVar53 = fStack_1cc * fVar17 + local_1d8._4_4_ * fVar12 +
+                       fStack_1d0 * fVar13 + (float)local_1d8 * fVar10;
+              fVar55 = fStack_1cc * fVar18 + local_1d8._4_4_ * fVar39 +
+                       fStack_1d0 * fVar14 + (float)local_1d8 * fVar11;
+              fVar46 = uStack_1e0._4_4_ * fVar15 + fStack_1e4 * fVar46 +
+                       (float)uStack_1e0 * fVar52 + local_1e8 * fVar45;
+              fVar44 = uStack_1e0._4_4_ * fVar16 + fStack_1e4 * fVar44 +
+                       (float)uStack_1e0 * fVar41 + local_1e8 * fVar51;
+              fVar45 = uStack_1e0._4_4_ * fVar17 + fStack_1e4 * fVar12 +
+                       (float)uStack_1e0 * fVar13 + local_1e8 * fVar10;
+              fVar51 = uStack_1e0._4_4_ * fVar18 + fStack_1e4 * fVar39 +
+                       (float)uStack_1e0 * fVar14 + local_1e8 * fVar11;
+              fVar10 = local_1c8;
+              fVar11 = fStack_1c4;
+              fVar12 = fStack_1c0;
+              uStack_1bc = uVar20;
             }
           }
         }
       }
 LAB_9:
-      fStack_1c0 = fVar36;
-      local_1c8 = uVar19;
-      bVar21 = true;
-      *(float *)param_1 = fVar46;
-      *(float *)(param_1 + 4) = fVar47;
-      *(float *)(param_1 + 8) = fVar45;
+      fStack_1c0 = fVar12;
+      fStack_1c4 = fVar11;
+      local_1c8 = fVar10;
+      bVar23 = true;
+      *(float *)param_1 = fVar49;
+      *(float *)(param_1 + 4) = fVar50;
+      *(float *)(param_1 + 8) = fVar48;
       *(float *)(param_1 + 0xc) = fVar40;
-      *(float *)(param_1 + 0x10) = fVar44;
-      *(float *)(param_1 + 0x14) = fVar42;
-      *(float *)(param_1 + 0x18) = fVar43;
+      *(float *)(param_1 + 0x10) = fVar46;
+      *(float *)(param_1 + 0x14) = fVar44;
+      *(float *)(param_1 + 0x18) = fVar45;
       *(float *)(param_1 + 0x1c) = fVar51;
-      *(float *)(param_1 + 0x20) = fVar37;
-      *(float *)(param_1 + 0x24) = fVar39;
-      *(float *)(param_1 + 0x28) = fVar49;
-      *(float *)(param_1 + 0x2c) = fVar52;
-      *(float *)(param_1 + 0x30) = fVar38;
-      *(float *)(param_1 + 0x34) = fVar41;
-      *(float *)(param_1 + 0x38) = fVar34;
-      *(float *)(param_1 + 0x3c) = fVar50;
-      *(uint *)(param_1 + 0x40) = CONCAT22(uStack_1b6,CONCAT11(bStack_1b7,bStack_1b8));
+      *(float *)(param_1 + 0x20) = fVar42;
+      *(float *)(param_1 + 0x24) = fVar43;
+      *(float *)(param_1 + 0x28) = fVar53;
+      *(float *)(param_1 + 0x2c) = fVar55;
+      *(float *)(param_1 + 0x30) = fVar37;
+      *(float *)(param_1 + 0x34) = fVar54;
+      *(float *)(param_1 + 0x38) = fVar38;
+      *(float *)(param_1 + 0x3c) = fVar47;
+      *(undefined4 *)(param_1 + 0x40) = uStack_1bc._4_4_;
     }
   }
   if (param_2) {
-    return bVar21;
+    return bVar23;
   }
   puVar9 = *(uint **)(this + 0xe8);
   if ((*puVar9 & 0x800000) != 0) {
-    puVar30 = puVar9 + 2;
-    pCVar26 = this_01;
+    puVar33 = puVar9 + 2;
+    pCVar28 = this_01;
     if (puVar9[1] != 0) {
       do {
-        uVar24 = (uint)pCVar26;
-        if ((char)*puVar30 == '\t') break;
-        uVar24 = uVar24 + 1;
-        pCVar26 = (CEffectGeneratedT<CEffect,CPropertyChangeResource> *)(ulonglong)uVar24;
-        puVar30 = (uint *)((longlong)puVar30 + 1);
-      } while (uVar24 < puVar9[1]);
+        uVar26 = (uint)pCVar28;
+        if ((char)*puVar33 == '\t') break;
+        uVar26 = uVar26 + 1;
+        pCVar28 = (CEffectGeneratedT<CEffect,CPropertyChangeResource> *)(ulonglong)uVar26;
+        puVar33 = (uint *)((longlong)puVar33 + 1);
+      } while (uVar26 < puVar9[1]);
     }
-    pCVar26 = this_01;
-    if (uVar24 < puVar9[1]) {
-      lVar28 = (ulonglong)puVar9[1] + 0xf;
-      pCVar26 = (CEffectGeneratedT<CEffect,CPropertyChangeResource> *)
-                ((longlong)puVar9 + lVar28 + ((ulonglong)uVar24 * 8 - (ulonglong)((uint)lVar28 & 7))
+    pCVar28 = this_01;
+    if (uVar26 < puVar9[1]) {
+      lVar30 = (ulonglong)puVar9[1] + 0xf;
+      pCVar28 = (CEffectGeneratedT<CEffect,CPropertyChangeResource> *)
+                ((longlong)puVar9 + lVar30 + ((ulonglong)uVar26 * 8 - (ulonglong)((uint)lVar30 & 7))
                 );
     }
-    pCVar26 = *(CEffectGeneratedT<CEffect,CPropertyChangeResource> **)pCVar26;
-    if (*(code **)(*(longlong *)pCVar26 + 0x40) ==
+    pCVar28 = *(CEffectGeneratedT<CEffect,CPropertyChangeResource> **)pCVar28;
+    if (*(code **)(*(longlong *)pCVar28 + 0x40) ==
         CEffectGroupGeneratedT<CEffectGroup,CEffect>::IsOfType) {
-      bVar22 = CEffectGeneratedT<CEffect,CPropertyChangeResource>::IsOfType(pCVar26,0xad);
-      if (!bVar22) {
+      bVar24 = CEffectGeneratedT<CEffect,CPropertyChangeResource>::IsOfType(pCVar28,0xaf);
+      if (!bVar24) {
 LAB_19:
-        if ((*(code **)(*(longlong *)pCVar26 + 0x40) !=
+        if ((*(code **)(*(longlong *)pCVar28 + 0x40) !=
              CEffectGroupGeneratedT<CEffectGroup,CEffect>::IsOfType) &&
-           (cVar23 = (**(code **)(*(longlong *)pCVar26 + 0x40))(pCVar26,0x39), cVar23 == '\0'))
+           (cVar25 = (**(code **)(*(longlong *)pCVar28 + 0x40))(pCVar28,0x3a), cVar25 == '\0'))
         goto LAB_20;
-        pCVar26 = *(CEffectGeneratedT<CEffect,CPropertyChangeResource> **)(pCVar26 + 0x58);
+        pCVar28 = *(CEffectGeneratedT<CEffect,CPropertyChangeResource> **)(pCVar28 + 0x58);
       }
     }
     else {
-      cVar23 = (**(code **)(*(longlong *)pCVar26 + 0x40))();
-      if (cVar23 == '\0') goto LAB_19;
+      cVar25 = (**(code **)(*(longlong *)pCVar28 + 0x40))();
+      if (cVar25 == '\0') goto LAB_19;
     }
-    this_01 = pCVar26;
-    if (pCVar26 != (CEffectGeneratedT<CEffect,CPropertyChangeResource> *)0x0) goto LAB_21;
+    this_01 = pCVar28;
+    if (pCVar28 != (CEffectGeneratedT<CEffect,CPropertyChangeResource> *)0x0) goto LAB_21;
   }
 LAB_20:
   if (*(longlong *)(this + 0x58) == 0) {
-    return bVar21;
+    return bVar23;
   }
   if (*(int *)(*(longlong *)(this + 0x58) + 0x70) != 1) {
-    return bVar21;
+    return bVar23;
   }
-  iVar6 = *(int *)(this + 0x70);
-  _Var25 = CPtrArrayBase::GetCount((CPtrArrayBase *)(this + 0x50));
+  iVar7 = *(int *)(this + 0x70);
+  _Var27 = CPtrArrayBase::GetCount((CPtrArrayBase *)(this + 0x50));
   if ((**(uint **)(this + 0xe8) & 0x800000) == 0) {
 LAB_22:
-    bVar22 = false;
+    bVar24 = false;
   }
   else {
-    pCVar27 = GetEffectInternal(this);
-    cVar23 = (**(code **)(*(longlong *)pCVar27 + 0x40))(pCVar27,0x3c);
-    if (cVar23 == '\0') goto LAB_22;
-    bVar22 = true;
+    pCVar29 = GetEffectInternal(this);
+    cVar25 = (**(code **)(*(longlong *)pCVar29 + 0x40))(pCVar29,0x3d);
+    if (cVar25 == '\0') goto LAB_22;
+    bVar24 = true;
   }
   if (*(code **)(*(longlong *)this + 0xe0) == CLayerVisual::GetTreeEffect) {
-    lVar28 = *(longlong *)(this + 0x2b0);
+    lVar30 = *(longlong *)(this + 0x2b0);
   }
   else {
-    lVar28 = (**(code **)(*(longlong *)this + 0xe0))(this);
+    lVar30 = (**(code **)(*(longlong *)this + 0xe0))(this);
   }
-  if ((((iVar6 == 1) || ((int)_Var25 == 0)) && (!bVar22)) && (lVar28 == 0)) {
-    return bVar21;
+  if ((((iVar7 == 1) || ((int)_Var27 == 0)) && (!bVar24)) && (lVar30 == 0)) {
+    return bVar23;
   }
 LAB_21:
   *(undefined8 *)(param_1 + 0x20) = 0;
   *(undefined8 *)(param_1 + 0x28) = 0;
   param_1[0x40] = (CMILMatrix)((byte)param_1[0x40] & 0xf1 | 1);
   if (this_01 != (CEffectGeneratedT<CEffect,CPropertyChangeResource> *)0x0) {
     pDVar3 = (D2D_SIZE_F *)(this + 0x90);
-    bVar20 = (byte)*(CComponentTransform3D *)(this_01 + 0x28) & 1;
+    bVar22 = (byte)*(CComponentTransform3D *)(this_01 + 0x28) & 1;
     if (pDVar3 != (D2D_SIZE_F *)0x0) {
-      if (((bVar20 == 0) &&
+      if (((bVar22 == 0) &&
           (*(CComponentTransform3D *)(this_01 + 0x9c) != (CComponentTransform3D)0x0)) &&
          ((*(float *)(this_01 + 0x94) != *(float *)pDVar3 ||
           (*(float *)(this_01 + 0x98) != *(float *)(this + 0x94))))) {
-        bVar20 = 1;
+        bVar22 = 1;
       }
       *(undefined8 *)(this_01 + 0x94) = *(undefined8 *)pDVar3;
     }
-    if (bVar20 != 0) {
+    if (bVar22 != 0) {
       pcVar8 = *(code **)(*(longlong *)this_01 + 200);
       if (pcVar8 == CComponentTransform3D::GetRealization) {
         CComponentTransform3D::GetRealization
                   ((CComponentTransform3D *)this_01,pDVar3,(CMILMatrix *)(this_01 + 0x50));
       }
       else if (pcVar8 == CMatrixTransform::GetRealization) {
         CMatrixTransform::GetRealization
                   ((CMatrixTransform *)this_01,pDVar3,(CMILMatrix *)(this_01 + 0x50));
       }
       else {
         (*pcVar8)();
       }
       *(uint *)(this_01 + 0x28) = *(uint *)(this_01 + 0x28) & 0xfffffffe;
     }
-    local_1f8 = *(undefined8 *)(this_01 + 0x50);
-    uStack_1f0 = *(undefined8 *)(this_01 + 0x58);
-    uVar7 = *(undefined4 *)(this_01 + 0x90);
-    local_1e8 = *(undefined8 *)(this_01 + 0x60);
-    uStack_1e0 = *(undefined8 *)(this_01 + 0x68);
-    bStack_1b8 = (byte)uVar7;
-    bStack_1b7 = (byte)((uint)uVar7 >> 8);
-    uStack_1b6 = (undefined2)((uint)uVar7 >> 0x10);
-    local_1d8 = *(undefined8 *)(this_01 + 0x70);
-    uStack_1d0 = *(ulonglong *)(this_01 + 0x78);
-    local_1c8 = *(undefined8 *)(this_01 + 0x80);
-    fStack_1c0 = (float)*(undefined8 *)(this_01 + 0x88);
-    fStack_1bc = (float)((ulonglong)*(undefined8 *)(this_01 + 0x88) >> 0x20);
-    CMILMatrix::Multiply((CMILMatrix *)&local_1f8,param_1);
-    *(undefined8 *)param_1 = local_1f8;
-    *(undefined8 *)(param_1 + 8) = uStack_1f0;
-    *(undefined8 *)(param_1 + 0x10) = local_1e8;
-    *(undefined8 *)(param_1 + 0x18) = uStack_1e0;
-    *(undefined8 *)(param_1 + 0x20) = local_1d8;
-    *(ulonglong *)(param_1 + 0x28) = uStack_1d0;
-    *(undefined8 *)(param_1 + 0x30) = local_1c8;
-    *(ulonglong *)(param_1 + 0x38) = CONCAT44(fStack_1bc,fStack_1c0);
-    *(uint *)(param_1 + 0x40) = CONCAT22(uStack_1b6,CONCAT11(bStack_1b7,bStack_1b8));
+    CMILMatrix::Multiply((CMILMatrix *)(this_01 + 0x50),param_1,param_1);
   }
   return true;
 }
 

```


## CSurfaceDrawListBrush::CreateWithContentRect

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,length,address,calling,called|
|ratio|0.21|
|i_ratio|0.26|
|m_ratio|0.88|
|b_ratio|0.77|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|CreateWithContentRect|CreateWithContentRect|
|fullname|CSurfaceDrawListBrush::CreateWithContentRect|CSurfaceDrawListBrush::CreateWithContentRect|
|refcount|10|10|
|`length`|631|469|
|`called`|CDxHandleBitmapRealization::GetSize`adjustor{256}'<br>CMILRefCountImpl::AddReference<br>CThreadLocalObjectCache<CSurfaceDrawListBrush,CSurfaceDrawListBrush>::Alloc<br>IBitmapRealizationMethodsT<CDxHandleBitmapRealization,IGDIBitmapRealization>::GetSize`adjustor{320}'<br>MilInstrumentationCheckHR_MaybeFailFast<br>_guard_dispatch_icall$thunk$10345483385596137414|CDxHandleBitmapRealization::GetSize`adjustor{256}'<br>CSurfaceDrawListBrush::CSurfaceDrawListBrush<br>CThreadLocalObjectCache<CSurfaceDrawListBrush,CSurfaceDrawListBrush>::Alloc<br>IBitmapRealizationMethodsT<CDxHandleBitmapRealization,IGDIBitmapRealization>::GetSize`adjustor{320}'<br>MilInstrumentationCheckHR_MaybeFailFast<br>_guard_dispatch_icall$thunk$10345483385596137414|
|`calling`|CBrushDrawListGenerator::GenerateIntermediateSurfaceBrush<br>CCompositionSurfaceBitmap::GenerateDrawList<br>CCpuClipAntialiasSinkContext::ProcessRenderCommands_OffscreenRenderPass<br>CDropShadow::ShadowIntermediates::CreateShadowOpacityBrush<br>CProjectedShadow::GetCasterShadowInputBrush<br>CRenderData::DrawImageResource_FillMode<br>CShadowMaskProducer::CreateDrawListBrush<br>CShapeTree::GenerateDrawList<br>CVisualBitmap::GenerateDrawList|CBrushDrawListGenerator::GenerateIntermediateSurfaceBrush<br>CCompositionMagnifierBrush::GetLayeredBrushParameters<br>CCompositionSurfaceBitmap::GenerateDrawList<br>CDropShadow::ShadowIntermediates::CreateShadowOpacityBrush<br>CProjectedShadow::GetCasterShadowInputBrush<br>CRenderData::DrawImageResource_FillMode<br>CShadowMaskProducer::CreateDrawListBrush<br>CShapeTree::GenerateDrawList<br>CVisualBitmap::GenerateDrawList|
|paramcount|4|4|
|`address`|18009dfcc|1800ba240|
|sig|long __cdecl CreateWithContentRect(CDrawListBitmap * param_1, SamplerMode param_2, D2D_RECT_F * param_3, CSurfaceDrawListBrush * * param_4)|long __cdecl CreateWithContentRect(CDrawListBitmap * param_1, SamplerMode param_2, D2D_RECT_F * param_3, CSurfaceDrawListBrush * * param_4)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### CSurfaceDrawListBrush::CreateWithContentRect Called Diff


```diff
--- CSurfaceDrawListBrush::CreateWithContentRect called
+++ CSurfaceDrawListBrush::CreateWithContentRect called
@@ -2 +2 @@
-CMILRefCountImpl::AddReference
+CSurfaceDrawListBrush::CSurfaceDrawListBrush
```


### CSurfaceDrawListBrush::CreateWithContentRect Calling Diff


```diff
--- CSurfaceDrawListBrush::CreateWithContentRect calling
+++ CSurfaceDrawListBrush::CreateWithContentRect calling
@@ -1,0 +2 @@
+CCompositionMagnifierBrush::GetLayeredBrushParameters
@@ -3 +3,0 @@
-CCpuClipAntialiasSinkContext::ProcessRenderCommands_OffscreenRenderPass
```


### CSurfaceDrawListBrush::CreateWithContentRect Diff


```diff
--- CSurfaceDrawListBrush::CreateWithContentRect
+++ CSurfaceDrawListBrush::CreateWithContentRect
@@ -1,114 +1,93 @@
 
 /* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
    guard_dispatch_icall */
 /* public: static long __cdecl CSurfaceDrawListBrush::CreateWithContentRect(class CDrawListBitmap
    const & __ptr64,struct SamplerMode,struct D2D_RECT_F const & __ptr64,class CSurfaceDrawListBrush
    * __ptr64 * __ptr64) */
 
 long __cdecl
 CSurfaceDrawListBrush::CreateWithContentRect
-          (undefined8 *param_1,undefined2 *param_2,float *param_3,longlong *param_4)
+          (longlong param_1,undefined2 *param_2,float *param_3,longlong *param_4)
 
 {
   float fVar1;
   float fVar2;
-  undefined1 uVar3;
-  undefined2 uVar4;
   IBitmapRealizationMethodsT<CDxHandleBitmapRealization,IGDIBitmapRealization> *this;
-  code *pcVar5;
-  CMILRefCountImpl *this_00;
-  longlong *plVar6;
-  longlong lVar7;
-  undefined8 uVar8;
-  undefined8 uVar9;
-  ulonglong uVar10;
-  undefined8 *puVar11;
-  ulonglong *puVar12;
-  long lVar13;
-  float fVar14;
-  float fVar15;
+  code *pcVar3;
+  undefined8 uVar4;
+  undefined8 uVar5;
+  ulonglong uVar6;
+  CSurfaceDrawListBrush *pCVar7;
+  longlong lVar8;
+  ulonglong *puVar9;
+  float fVar10;
+  float fVar11;
+  undefined2 local_res8;
+  undefined1 local_resa;
+  float local_68 [5];
+  undefined4 local_54;
+  float local_50;
+  float local_4c;
+  undefined4 local_48;
   
-  uVar10 = 0;
-  lVar13 = 0;
-  this = (IBitmapRealizationMethodsT<CDxHandleBitmapRealization,IGDIBitmapRealization> *)param_1[1];
+  this = *(IBitmapRealizationMethodsT<CDxHandleBitmapRealization,IGDIBitmapRealization> **)
+          (param_1 + 8);
+  uVar6 = 0;
   if (this != (IBitmapRealizationMethodsT<CDxHandleBitmapRealization,IGDIBitmapRealization> *)0x0) {
-    pcVar5 = *(code **)(*(longlong *)this + 0x20);
-    if (pcVar5 == IBitmapRealizationMethodsT<CDxHandleBitmapRealization,IGDIBitmapRealization>::
+    pcVar3 = *(code **)(*(longlong *)this + 0x20);
+    if (pcVar3 == IBitmapRealizationMethodsT<CDxHandleBitmapRealization,IGDIBitmapRealization>::
                   GetSize_adjustor_320__) {
-      puVar12 = (ulonglong *)
-                IBitmapRealizationMethodsT<CDxHandleBitmapRealization,IGDIBitmapRealization>::
-                GetSize_adjustor_320__(this);
+      puVar9 = (ulonglong *)
+               IBitmapRealizationMethodsT<CDxHandleBitmapRealization,IGDIBitmapRealization>::
+               GetSize_adjustor_320__(this);
     }
-    else if (pcVar5 == CDxHandleBitmapRealization::GetSize_adjustor_256__) {
-      puVar12 = (ulonglong *)
-                CDxHandleBitmapRealization::GetSize_adjustor_256__
-                          ((CDxHandleBitmapRealization *)this);
+    else if (pcVar3 == CDxHandleBitmapRealization::GetSize_adjustor_256__) {
+      puVar9 = (ulonglong *)
+               CDxHandleBitmapRealization::GetSize_adjustor_256__
+                         ((CDxHandleBitmapRealization *)this);
     }
     else {
-      puVar12 = (ulonglong *)(*pcVar5)();
+      puVar9 = (ulonglong *)(*pcVar3)();
     }
-    uVar10 = *puVar12;
+    uVar6 = *puVar9;
   }
-  fVar15 = 1.0 / (float)(uVar10 & 0xffffffff);
-  fVar14 = 1.0 / (float)(uVar10 >> 0x20);
-  puVar11 = CThreadLocalObjectCache<CSurfaceDrawListBrush,CSurfaceDrawListBrush>::Alloc
-                      (uVar10 & 0xffffffff);
-  if (puVar11 == (undefined8 *)0x0) {
-    lVar13 = -0x7ff8fff2;
+  local_68[1] = 0.0;
+  local_68[2] = 0.0;
+  local_68[3] = 0.0;
+  local_54 = 0;
+  local_48 = 0x3f800000;
+  fVar11 = 1.0 / (float)(uVar6 & 0xffffffff);
+  fVar10 = 1.0 / (float)(uVar6 >> 0x20);
+  local_50 = 0.0 - fVar11 * 0.0;
+  local_4c = 0.0 - fVar10 * 0.0;
+  local_68[0] = fVar11;
+  local_68[4] = fVar10;
+  pCVar7 = CThreadLocalObjectCache<CSurfaceDrawListBrush,CSurfaceDrawListBrush>::Alloc
+                     (uVar6 & 0xffffffff);
+  if (pCVar7 == (CSurfaceDrawListBrush *)0x0) {
     *param_4 = 0;
-    MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,-0x7ff8fff2,0x1f,(void *)0x0);
   }
   else {
-    uVar4 = *param_2;
-    uVar3 = *(undefined1 *)(param_2 + 1);
-    puVar11[1] = 0x3f800000;
-    *(undefined4 *)(puVar11 + 2) = 0;
-    *(undefined8 *)((longlong)puVar11 + 0x14) = 0x3f800000;
-    *(undefined4 *)((longlong)puVar11 + 0x1c) = 0;
-    *(undefined1 *)((longlong)puVar11 + 0x34) = 0;
-    *puVar11 = &_vftable_;
-    this_00 = (CMILRefCountImpl *)*param_1;
-    puVar11[7] = this_00;
-    if (this_00 != (CMILRefCountImpl *)0x0) {
-      if (*(code **)(*(longlong *)this_00 + 8) == CMILRefCountImpl::AddReference) {
-        CMILRefCountImpl::AddReference(this_00);
-      }
-      else {
-        (**(code **)(*(longlong *)this_00 + 8))();
-      }
+    local_res8 = *param_2;
+    local_resa = *(undefined1 *)(param_2 + 1);
+    lVar8 = CSurfaceDrawListBrush(pCVar7,param_1,&local_res8,local_68,1);
+    *param_4 = lVar8;
+    if (lVar8 != 0) {
+      *(undefined1 *)(lVar8 + 0x34) = 1;
+      uVar4 = *(undefined8 *)param_3;
+      uVar5 = *(undefined8 *)(param_3 + 2);
+      *(undefined4 *)(lVar8 + 0x30) = 0x3030303;
+      *(undefined8 *)(lVar8 + 0x20) = uVar4;
+      *(undefined8 *)(lVar8 + 0x28) = uVar5;
+      lVar8 = *param_4;
+      fVar1 = param_3[2];
+      fVar2 = param_3[3];
+      *(ulonglong *)(lVar8 + 0x78) = CONCAT44(fVar10 * param_3[1],fVar11 * *param_3);
+      *(ulonglong *)(lVar8 + 0x80) = CONCAT44(fVar10 * fVar2,fVar11 * fVar1);
+      return 0;
     }
-    plVar6 = (longlong *)param_1[1];
-    puVar11[8] = plVar6;
-    if (plVar6 != (longlong *)0x0) {
-      (**(code **)(*plVar6 + 8))();
-    }
-    *(undefined1 *)(puVar11 + 9) = *(undefined1 *)(param_1 + 2);
-    *(undefined2 *)(puVar11 + 10) = uVar4;
-    *(undefined1 *)((longlong)puVar11 + 0x52) = uVar3;
-    *(float *)((longlong)puVar11 + 0x54) = fVar15;
-    *(float *)((longlong)puVar11 + 100) = fVar14;
-    *(float *)((longlong)puVar11 + 0x6c) = 0.0 - fVar15 * 0.0;
-    *(float *)(puVar11 + 0xe) = 0.0 - fVar14 * 0.0;
-    puVar11[0xb] = 0;
-    *(undefined4 *)(puVar11 + 0xc) = 0;
-    *(undefined4 *)(puVar11 + 0xd) = 0;
-    *(undefined4 *)((longlong)puVar11 + 0x74) = 0x3f800000;
-    *(undefined4 *)(puVar11 + 0x12) = 1;
-    puVar11[0xf] = 0xff7fffffff7fffff;
-    puVar11[0x10] = 0x7f7fffff7f7fffff;
-    *param_4 = (longlong)puVar11;
-    *(undefined1 *)((longlong)puVar11 + 0x34) = 1;
-    uVar8 = *(undefined8 *)param_3;
-    uVar9 = *(undefined8 *)(param_3 + 2);
-    *(undefined4 *)(puVar11 + 6) = 0x3030303;
-    puVar11[4] = uVar8;
-    puVar11[5] = uVar9;
-    lVar7 = *param_4;
-    fVar1 = param_3[2];
-    fVar2 = param_3[3];
-    *(ulonglong *)(lVar7 + 0x78) = CONCAT44(fVar14 * param_3[1],fVar15 * *param_3);
-    *(ulonglong *)(lVar7 + 0x80) = CONCAT44(fVar14 * fVar2,fVar15 * fVar1);
   }
-  return lVar13;
+  MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,-0x7ff8fff2,0x1f,(void *)0x0);
+  return -0x7ff8fff2;
 }
 

```


## CResampleLayer::RenderLanczos

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,length,address|
|ratio|0.94|
|i_ratio|0.65|
|m_ratio|1.0|
|b_ratio|0.99|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|RenderLanczos|RenderLanczos|
|fullname|CResampleLayer::RenderLanczos|CResampleLayer::RenderLanczos|
|refcount|2|2|
|`length`|527|530|
|called|CSurfaceShaderComposer::GetSurfacePixelShaderNoRef<br>CSurfaceShaderComposer::RunShader<br>ComputeLanczosKernel<br>FillLanczosUpBuffer<br>_guard_dispatch_icall$thunk$10345483385596137414<br>floorf<br>wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy><br>wil::details::in1diag3::Return_Hr|CSurfaceShaderComposer::GetSurfacePixelShaderNoRef<br>CSurfaceShaderComposer::RunShader<br>ComputeLanczosKernel<br>FillLanczosUpBuffer<br>_guard_dispatch_icall$thunk$10345483385596137414<br>floorf<br>wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy><br>wil::details::in1diag3::Return_Hr|
|calling|CResampleLayer::RenderLayer|CResampleLayer::RenderLayer|
|paramcount|5|5|
|`address`|18027f694|18027e180|
|sig|long __thiscall RenderLanczos(CResampleLayer * this, CSurfaceShaderComposer * param_1, ID3D11RenderTargetView * param_2, bool param_3, D3D11_VIEWPORT * param_4)|long __thiscall RenderLanczos(CResampleLayer * this, CSurfaceShaderComposer * param_1, ID3D11RenderTargetView * param_2, bool param_3, D3D11_VIEWPORT * param_4)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### CResampleLayer::RenderLanczos Diff


```diff
--- CResampleLayer::RenderLanczos
+++ CResampleLayer::RenderLanczos
@@ -1,109 +1,109 @@
 
 /* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
    guard_dispatch_icall */
 /* private: long __cdecl CResampleLayer::RenderLanczos(class CSurfaceShaderComposer * __ptr64,struct
    ID3D11RenderTargetView * __ptr64,bool,struct D3D11_VIEWPORT const & __ptr64) __ptr64 */
 
 long __thiscall
 CResampleLayer::RenderLanczos
           (CResampleLayer *this,CSurfaceShaderComposer *param_1,ID3D11RenderTargetView *param_2,
           bool param_3,D3D11_VIEWPORT *param_4)
 
 {
   longlong *plVar1;
   code *pcVar2;
   D3D11_VIEWPORT *pDVar3;
   bool bVar4;
   long lVar5;
   undefined8 uVar6;
   uint uVar7;
   float fVar8;
   float fVar9;
   void *unaff_retaddr;
   longlong *local_res8;
   bool local_res20 [8];
   tagRECT *in_stack_ffffffffffffffa0;
   undefined1 in_stack_ffffffffffffffa8;
   ID3D11ShaderResourceView *local_48;
   undefined8 local_40;
   bool *local_38;
   
   pDVar3 = param_4;
   local_res20[0] = param_3;
   fVar8 = floorf(*(float *)(param_4 + 8) + 0.5);
   fVar9 = floorf(*(float *)(pDVar3 + 0xc) + 0.5);
   param_4 = (D3D11_VIEWPORT *)0x0;
   if ((*(float *)(this + 0x88) < 1.0) || (*(float *)(this + 0x8c) < 1.0)) {
     bVar4 = false;
   }
   else {
     bVar4 = true;
   }
   if (bVar4) {
     lVar5 = FillLanczosUpBuffer(param_1,*(uint *)(this + 0x18),*(uint *)(this + 0x1c),(int)fVar8,
                                 (int)fVar9);
     if (lVar5 < 0) {
-      uVar7 = 0x137;
+      uVar7 = 0x139;
 LAB_0:
       wil::details::in1diag3::Return_Hr
                 (unaff_retaddr,uVar7,"onecoreuap\\windows\\dwm\\dwmcore\\engine\\resamplelayer.cpp",
                  lVar5);
       return lVar5;
     }
     lVar5 = CSurfaceShaderComposer::GetSurfacePixelShaderNoRef
                       (param_1,1,(ID3D11PixelShader **)&param_4);
     if (lVar5 < 0) {
-      uVar7 = 0x13a;
+      uVar7 = 0x13c;
       goto LAB_0;
     }
   }
   else {
     lVar5 = ComputeLanczosKernel
                       (param_1,*(uint *)(this + 0x18),*(uint *)(this + 0x1c),(int)fVar8,(int)fVar9);
     if (lVar5 < 0) {
-      uVar7 = 0x143;
+      uVar7 = 0x145;
       goto LAB_0;
     }
     lVar5 = CSurfaceShaderComposer::GetSurfacePixelShaderNoRef
                       (param_1,0,(ID3D11PixelShader **)&param_4);
     if (lVar5 < 0) {
-      uVar7 = 0x146;
+      uVar7 = 0x148;
       goto LAB_0;
     }
   }
   plVar1 = *(longlong **)(this + 8);
   local_res20[0] = false;
   local_res20[1] = true;
   local_res20[2] = true;
   local_res8 = (longlong *)0x0;
   pcVar2 = *(code **)(plVar1[1] + 0x68);
   uVar6 = (**(code **)(*plVar1 + 0x58))(plVar1,&local_40);
   lVar5 = (*pcVar2)(plVar1 + 1,uVar6,&local_res8);
   if (lVar5 < 0) {
-    uVar7 = 0x151;
+    uVar7 = 0x153;
   }
   else {
     local_48 = (ID3D11ShaderResourceView *)(**(code **)(*local_res8 + 0x80))();
     bVar4 = (bool)(**(code **)(**(longlong **)(this + 8) + 0x38))();
     local_38 = local_res20;
     local_40 = 1;
     lVar5 = CSurfaceShaderComposer::RunShader
                       (param_1,&local_48,1,pDVar3,0,(span<SamplerMode,_1> *)&local_40,bVar4,param_2,
                        (ID3D11PixelShader *)param_4,in_stack_ffffffffffffffa0,
                        (bool)in_stack_ffffffffffffffa8);
     if (-1 < lVar5) {
       lVar5 = 0;
       goto LAB_1;
     }
-    uVar7 = 0x15c;
+    uVar7 = 0x15e;
   }
   wil::details::in1diag3::Return_Hr
             (unaff_retaddr,uVar7,"onecoreuap\\windows\\dwm\\dwmcore\\engine\\resamplelayer.cpp",
              lVar5);
 LAB_1:
   wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::
   ~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>
             ((com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy> *)&local_res8);
   return lVar5;
 }
 

```


## CCursorState::SetShape

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,length,address|
|ratio|0.61|
|i_ratio|0.61|
|m_ratio|0.99|
|b_ratio|0.93|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|SetShape|SetShape|
|fullname|CCursorState::SetShape|CCursorState::SetShape|
|refcount|3|3|
|`length`|772|758|
|called|<details><summary>Expand for full list:<br>API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::EnterCriticalSection<br>API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::LeaveCriticalSection<br>CCursorState::ScheduleCompositionPass<br>CSystemMemoryBitmap::CSystemMemoryBitmap<br>CSystemMemoryBitmap::HrInit<br>_guard_dispatch_icall$thunk$10345483385596137414<br>memcpy<br>memset<br>operator_new<br>std::_Ref_count_base::_Decref<br>std::make_shared<CCursorState::ShapeData></summary>std::shared_ptr<CCursorState::ShapeData>::operator=<br>wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy><br>wil::com_ptr_t<IDXGIResource,wil::err_returncode_policy>::com_ptr_t<IDXGIResource,wil::err_returncode_policy><br>wil::com_ptr_t<ILegacyRemotingSwapChain,wil::err_returncode_policy>::reset<br>wil::com_ptr_t<Windows::Devices::Display::Core::IDisplayTarget,wil::err_returncode_policy>::operator=<br>wil::details::in1diag3::Return_Hr</details>|<details><summary>Expand for full list:<br>API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::EnterCriticalSection<br>API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::LeaveCriticalSection<br>CCursorState::ScheduleCompositionPass<br>CSystemMemoryBitmap::CSystemMemoryBitmap<br>CSystemMemoryBitmap::HrInit<br>_guard_dispatch_icall$thunk$10345483385596137414<br>memcpy<br>memset<br>operator_new<br>std::_Ref_count_base::_Decref<br>std::make_shared<CCursorState::ShapeData></summary>std::shared_ptr<CCursorState::ShapeData>::operator=<br>wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy><br>wil::com_ptr_t<IDXGIResource,wil::err_returncode_policy>::com_ptr_t<IDXGIResource,wil::err_returncode_policy><br>wil::com_ptr_t<ILegacyRemotingSwapChain,wil::err_returncode_policy>::reset<br>wil::com_ptr_t<Windows::Devices::Display::Core::IDisplayTarget,wil::err_returncode_policy>::operator=<br>wil::details::in1diag3::Return_Hr</details>|
|calling|||
|paramcount|8|8|
|`address`|1802b6580|1802b7790|
|sig|long __thiscall SetShape(CCursorState * this, void * param_1, uint param_2, uint param_3, uint param_4, uint param_5, bool param_6, float param_7)|long __thiscall SetShape(CCursorState * this, void * param_1, uint param_2, uint param_3, uint param_4, uint param_5, bool param_6, float param_7)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### CCursorState::SetShape Diff


```diff
--- CCursorState::SetShape
+++ CCursorState::SetShape
@@ -1,160 +1,158 @@
 
 /* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
    guard_dispatch_icall */
 /* public: virtual long __cdecl CCursorState::SetShape(void * __ptr64,unsigned int,unsigned
    int,unsigned int,unsigned int,bool,float) __ptr64 */
 
 long __thiscall
 CCursorState::SetShape
           (CCursorState *this,void *param_1,uint param_2,uint param_3,uint param_4,uint param_5,
           bool param_6,float param_7)
 
 {
   shared_ptr<CCursorState::ShapeData> *this_00;
   code *pcVar1;
-  uint uVar2;
-  long lVar3;
-  uint uVar4;
+  long lVar2;
+  uint uVar3;
   CSystemMemoryBitmap *this_01;
-  IDXGIResource *pIVar5;
-  shared_ptr<struct_CCursorState::ShapeData> *psVar6;
-  ulonglong uVar7;
-  longlong lVar8;
-  undefined4 *puVar9;
+  IDXGIResource *pIVar4;
+  shared_ptr<class_CCursorState::ShapeData> *psVar5;
+  ulonglong uVar6;
+  longlong lVar7;
+  undefined4 *puVar8;
   ulonglong _Size;
   void *unaff_retaddr;
-  undefined4 local_res20 [2];
+  undefined4 local_res18 [4];
   undefined4 *local_68;
   longlong *local_60;
   CSystemMemoryBitmap *local_58;
   undefined4 local_50;
   undefined4 local_4c;
   undefined4 uStack_48;
   undefined4 uStack_44;
   
-  uVar7 = (ulonglong)param_3;
+  uVar6 = (ulonglong)param_3;
   EnterCriticalSection((LPCRITICAL_SECTION)&g_CursorManager);
   this_01 = ::operator_new(0x98);
-  pIVar5 = (IDXGIResource *)0x0;
+  pIVar4 = (IDXGIResource *)0x0;
   if (this_01 != (CSystemMemoryBitmap *)0x0) {
-    pIVar5 = (IDXGIResource *)CSystemMemoryBitmap::CSystemMemoryBitmap(this_01);
+    pIVar4 = (IDXGIResource *)CSystemMemoryBitmap::CSystemMemoryBitmap(this_01);
   }
   wil::com_ptr_t<IDXGIResource,wil::err_returncode_policy>::
   com_ptr_t<IDXGIResource,wil::err_returncode_policy>
-            ((com_ptr_t<IDXGIResource,wil::err_returncode_policy> *)&local_58,pIVar5);
+            ((com_ptr_t<IDXGIResource,wil::err_returncode_policy> *)&local_58,pIVar4);
   local_50 = 0x57;
   local_4c = 1;
   uStack_48 = 0;
-  uVar2 = param_3;
-  if (param_3 <= param_2) {
-    uVar2 = param_2;
+  uVar3 = param_2;
+  if (param_2 <= param_3) {
+    uVar3 = param_3;
   }
-  lVar3 = CSystemMemoryBitmap::HrInit(local_58,uVar2,uVar2,(PixelFormatInfo *)&local_50,false);
-  if (lVar3 < 0) {
+  lVar2 = CSystemMemoryBitmap::HrInit(local_58,uVar3,uVar3,(PixelFormatInfo *)&local_50,false);
+  if (lVar2 < 0) {
     wil::details::in1diag3::Return_Hr
-              (unaff_retaddr,0x4d5,"onecoreuap\\windows\\dwm\\dwmcore\\cursor\\cursorstate.cpp",
-               lVar3);
+              (unaff_retaddr,0x525,"onecoreuap\\windows\\dwm\\dwmcore\\cursor\\cursorstate.cpp",
+               lVar2);
   }
   else {
     local_60 = (longlong *)0x0;
     pcVar1 = *(code **)(*(longlong *)(local_58 + 0x10) + 0x18);
     wil::com_ptr_t<ILegacyRemotingSwapChain,wil::err_returncode_policy>::reset
               ((com_ptr_t<ILegacyRemotingSwapChain,wil::err_returncode_policy> *)&local_60);
-    lVar3 = (*pcVar1)(local_58 + 0x10,0,2,&local_60);
-    if (lVar3 < 0) {
-      uVar2 = 0x4d8;
+    lVar2 = (*pcVar1)(local_58 + 0x10,0,2,&local_60);
+    if (lVar2 < 0) {
+      uVar3 = 0x528;
     }
     else {
-      local_res20[0] = 0;
+      local_res18[0] = 0;
       local_68 = (undefined4 *)0x0;
-      lVar3 = (**(code **)(*local_60 + 0x30))(local_60,local_res20,&local_68);
-      if (-1 < lVar3) {
-        if (param_2 == uVar2) {
-          uVar4 = param_2 * param_3 * 4;
-          memcpy(local_68,param_1,(ulonglong)uVar4);
+      lVar2 = (**(code **)(*local_60 + 0x30))(local_60,local_res18,&local_68);
+      if (-1 < lVar2) {
+        if (param_2 == uVar3) {
+          uVar3 = param_2 * param_3 * 4;
+          memcpy(local_68,param_1,(ulonglong)uVar3);
           if (param_3 < param_2) {
-            local_68 = (undefined4 *)((ulonglong)uVar4 + (longlong)local_68);
-            uVar4 = (param_2 - param_3) * param_2;
+            local_68 = (undefined4 *)((ulonglong)uVar3 + (longlong)local_68);
+            uVar3 = (param_2 - param_3) * param_2;
             if (param_6) {
-              if (uVar4 != 0) {
-                puVar9 = local_68;
-                for (uVar7 = (ulonglong)uVar4; uVar7 != 0; uVar7 = uVar7 - 1) {
-                  *puVar9 = 0xff000000;
-                  puVar9 = puVar9 + 1;
+              if (uVar3 != 0) {
+                puVar8 = local_68;
+                for (uVar6 = (ulonglong)uVar3; uVar6 != 0; uVar6 = uVar6 - 1) {
+                  *puVar8 = 0xff000000;
+                  puVar8 = puVar8 + 1;
                 }
               }
             }
             else {
-              memset(local_68,0,(ulonglong)(uVar4 * 4));
+              memset(local_68,0,(ulonglong)(uVar3 * 4));
             }
           }
         }
         else if (param_3 != 0) {
           _Size = (ulonglong)(param_2 * 4);
           do {
             memcpy(local_68,param_1,_Size);
             param_1 = (void *)((longlong)param_1 + _Size);
             local_68 = (undefined4 *)((longlong)local_68 + _Size);
             if (param_6) {
-              puVar9 = local_68 + (param_3 - param_2);
-              for (; local_68 < puVar9; local_68 = local_68 + 1) {
+              puVar8 = local_68 + (param_3 - param_2);
+              for (; local_68 < puVar8; local_68 = local_68 + 1) {
                 *local_68 = 0xff000000;
               }
             }
             else {
-              uVar4 = (param_3 - param_2) * 4;
-              memset(local_68,0,(ulonglong)uVar4);
-              puVar9 = (undefined4 *)((longlong)local_68 + (ulonglong)uVar4);
+              uVar3 = (param_3 - param_2) * 4;
+              memset(local_68,0,(ulonglong)uVar3);
+              puVar8 = (undefined4 *)((longlong)local_68 + (ulonglong)uVar3);
             }
-            local_68 = puVar9;
-            uVar7 = uVar7 - 1;
-          } while (uVar7 != 0);
+            local_68 = puVar8;
+            uVar6 = uVar6 - 1;
+          } while (uVar6 != 0);
         }
         this_00 = (shared_ptr<CCursorState::ShapeData> *)(this + 0x28);
-        psVar6 = (shared_ptr<struct_CCursorState::ShapeData> *)
+        psVar5 = (shared_ptr<class_CCursorState::ShapeData> *)
                  std::make_shared<CCursorState::ShapeData>();
-        std::shared_ptr<CCursorState::ShapeData>::operator=(this_00,psVar6);
+        std::shared_ptr<CCursorState::ShapeData>::operator=(this_00,psVar5);
         if ((_Ref_count_base *)CONCAT44(uStack_44,uStack_48) != (_Ref_count_base *)0x0) {
           std::_Ref_count_base::_Decref((_Ref_count_base *)CONCAT44(uStack_44,uStack_48));
         }
         **(uint **)this_00 = param_4;
         *(uint *)(*(longlong *)this_00 + 4) = param_5;
-        lVar8 = 0;
+        lVar7 = 0;
         *(undefined4 *)(*(longlong *)this_00 + 8) = 1;
-        *(uint *)(*(longlong *)this_00 + 0xc) = uVar2;
         do {
-          *(undefined1 *)(*(longlong *)this_00 + 0x10 + lVar8) = 0;
-          lVar8 = lVar8 + 1;
-        } while (lVar8 < 2);
+          *(undefined1 *)(lVar7 + 0xc + *(longlong *)this_00) = 0;
+          lVar7 = lVar7 + 1;
+        } while (lVar7 < 2);
         wil::com_ptr_t<Windows::Devices::Display::Core::IDisplayTarget,wil::err_returncode_policy>::
         operator=((com_ptr_t<Windows::Devices::Display::Core::IDisplayTarget,wil::err_returncode_policy>
-                   *)(*(longlong *)this_00 + 0x18),
+                   *)(*(longlong *)this_00 + 0x10),
                   (com_ptr_t<struct_Windows::Devices::Display::Core::IDisplayTarget,struct_wil::err_returncode_policy>
                    *)&local_58);
         *(float *)(this + 0x20) = param_7;
         this[0x14] = (CCursorState)param_6;
         this[0x17] = (CCursorState)0x1;
         ScheduleCompositionPass(this);
         wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::
         ~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>
                   ((com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy> *)&local_60);
-        lVar3 = 0;
+        lVar2 = 0;
         goto LAB_0;
       }
-      uVar2 = 0x4dc;
+      uVar3 = 0x52c;
     }
     wil::details::in1diag3::Return_Hr
-              (unaff_retaddr,uVar2,"onecoreuap\\windows\\dwm\\dwmcore\\cursor\\cursorstate.cpp",
-               lVar3);
+              (unaff_retaddr,uVar3,"onecoreuap\\windows\\dwm\\dwmcore\\cursor\\cursorstate.cpp",
+               lVar2);
     wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::
     ~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>
               ((com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy> *)&local_60);
   }
 LAB_0:
   wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::
   ~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>
             ((com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy> *)&local_58);
   LeaveCriticalSection((LPCRITICAL_SECTION)&g_CursorManager);
-  return lVar3;
+  return lVar2;
 }
 

```


## CPrimitiveGroupDrawListBrush::EnumerateBrushes

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.28|
|i_ratio|0.39|
|m_ratio|1.0|
|b_ratio|0.84|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|EnumerateBrushes|EnumerateBrushes|
|fullname|CPrimitiveGroupDrawListBrush::EnumerateBrushes|CPrimitiveGroupDrawListBrush::EnumerateBrushes|
|refcount|5|5|
|`length`|1753|1770|
|`called`|<details><summary>Expand for full list:<br><lambda_6f49ef1c5e266dfff6ad3ca7d4dec8df>::<lambda_invoker_cdecl><br>CMILMatrix::Multiply<br>CPrimitiveGroupDrawListGenerator::ShouldUseTexCoordClamp<br>CSurfaceDrawListBrush::CreateWithTextureTransform<br>CSurfaceDrawListBrush::SetSnapToPixelsReference<br>CSurfaceDrawListBrush::`scalar_deleting_destructor'<br>D2DMatrixHelper::ComputeRectangleTransform<br>MILMatrix3x2::SetProduct<br>MilInstrumentationCheckHR_MaybeFailFast<br>__security_check_cookie<br>_guard_dispatch_icall$thunk$10345483385596137414</summary>sqrtf<br>std::default_delete<CSurfaceDrawListBrush>::operator()</details>|<details><summary>Expand for full list:<br><lambda_6f49ef1c5e266dfff6ad3ca7d4dec8df>::<lambda_invoker_cdecl><br>CMILMatrix::Multiply<br>CPrimitiveGroupDrawListGenerator::ShouldUseTexCoordClamp<br>CSurfaceDrawListBrush::CSurfaceDrawListBrush<br>CSurfaceDrawListBrush::SetSnapToPixelsReference<br>CSurfaceDrawListBrush::`scalar_deleting_destructor'<br>CThreadLocalObjectCache<CSurfaceDrawListBrush,CSurfaceDrawListBrush>::Alloc<br>D2DMatrixHelper::ComputeRectangleTransform<br>MILMatrix3x2::SetProduct<br>MilInstrumentationCheckHR_MaybeFailFast<br>__security_check_cookie</summary>_guard_dispatch_icall$thunk$10345483385596137414<br>sqrtf<br>std::default_delete<CSurfaceDrawListBrush>::operator()</details>|
|calling|CBrushDrawListGenerator::GenerateDrawListWorker|CBrushDrawListGenerator::GenerateDrawListWorker|
|paramcount|4|4|
|`address`|18011ce30|1800b97d0|
|sig|long __thiscall EnumerateBrushes(CPrimitiveGroupDrawListBrush * this, CDrawingContext * param_1, _func_long_CDrawListBrush_ptr_void_ptr * param_2, void * param_3)|long __thiscall EnumerateBrushes(CPrimitiveGroupDrawListBrush * this, CDrawingContext * param_1, _func_long_CDrawListBrush_ptr_void_ptr * param_2, void * param_3)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### CPrimitiveGroupDrawListBrush::EnumerateBrushes Called Diff


```diff
--- CPrimitiveGroupDrawListBrush::EnumerateBrushes called
+++ CPrimitiveGroupDrawListBrush::EnumerateBrushes called
@@ -4 +4 @@
-CSurfaceDrawListBrush::CreateWithTextureTransform
+CSurfaceDrawListBrush::CSurfaceDrawListBrush
@@ -6,0 +7 @@
+CThreadLocalObjectCache<CSurfaceDrawListBrush,CSurfaceDrawListBrush>::Alloc
```


### CPrimitiveGroupDrawListBrush::EnumerateBrushes Diff


```diff
--- CPrimitiveGroupDrawListBrush::EnumerateBrushes
+++ CPrimitiveGroupDrawListBrush::EnumerateBrushes
@@ -1,390 +1,395 @@
 
 /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
 /* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
    guard_dispatch_icall */
 /* public: virtual long __cdecl CPrimitiveGroupDrawListBrush::EnumerateBrushes(class CDrawingContext
    const * __ptr64,long (__cdecl*)(class CDrawListBrush const * __ptr64,void * __ptr64),void *
    __ptr64)const __ptr64 */
 
 long __thiscall
 CPrimitiveGroupDrawListBrush::EnumerateBrushes
           (CPrimitiveGroupDrawListBrush *this,CDrawingContext *param_1,
           _func_long_CDrawListBrush_ptr_void_ptr *param_2,void *param_3)
 
 {
-  undefined8 *puVar1;
-  undefined4 *puVar2;
-  CSurfaceDrawListBrush *this_00;
-  bool bVar3;
-  undefined8 uVar4;
-  bool bVar5;
-  uint uVar6;
-  int iVar7;
-  default_delete<CSurfaceDrawListBrush> *this_01;
-  D2D_RECT_F *pDVar8;
-  longlong lVar9;
-  D2D_RECT_F *pDVar10;
-  int *piVar11;
-  longlong lVar12;
-  uint uVar13;
-  ulonglong uVar14;
-  float fVar15;
-  float fVar16;
-  undefined4 uVar17;
-  float fVar18;
-  undefined4 uVar19;
+  MILMatrix3x2 *pMVar1;
+  undefined8 *puVar2;
+  undefined4 *puVar3;
+  CPrimitiveGroupDrawListBrush CVar4;
+  undefined2 uVar5;
+  longlong lVar6;
+  bool bVar7;
+  bool bVar8;
+  undefined8 uVar9;
+  bool bVar10;
+  uint uVar11;
+  int iVar12;
+  CSurfaceDrawListBrush *pCVar13;
+  default_delete<CSurfaceDrawListBrush> *this_00;
+  D2D_RECT_F *pDVar14;
+  MILMatrix3x2 *this_01;
+  longlong lVar15;
+  uint uVar16;
+  D2D_RECT_F *pDVar17;
+  int *piVar18;
+  ulonglong uVar19;
   float fVar20;
   float fVar21;
+  undefined4 uVar22;
+  float fVar23;
+  undefined4 uVar24;
+  float fVar25;
   undefined1 auStackY_2b8 [32];
-  CSurfaceDrawListBrush *local_288 [2];
   undefined2 local_278;
   CPrimitiveGroupDrawListBrush local_276;
-  uint local_268;
-  float local_260;
-  float fStack_25c;
-  undefined4 uStack_258;
-  undefined4 uStack_254;
-  float local_250;
-  float fStack_24c;
+  float local_268;
+  float fStack_264;
+  undefined4 uStack_260;
+  undefined4 uStack_25c;
+  float local_258;
+  float fStack_254;
+  undefined8 uStack_250;
   undefined8 uStack_248;
-  undefined8 uStack_240;
-  undefined4 uStack_238;
+  undefined4 uStack_240;
+  undefined4 uStack_23c;
+  undefined4 local_238;
   undefined4 uStack_234;
-  undefined4 local_230;
+  undefined4 uStack_230;
   undefined4 uStack_22c;
-  undefined4 uStack_228;
-  undefined4 uStack_224;
-  undefined4 local_220;
-  undefined8 local_218;
-  undefined8 local_210;
-  undefined4 local_208;
-  undefined4 local_204;
-  void *local_200;
-  int *local_1f8;
+  undefined4 local_228;
+  uint local_220;
+  void *local_218;
+  float local_210;
+  float fStack_20c;
+  float fStack_208;
+  float fStack_204;
+  float local_200;
+  float local_1fc;
+  float local_1f8;
+  float local_1f4;
   float local_1f0;
-  float fStack_1ec;
-  float fStack_1e8;
-  float fStack_1e4;
-  float local_1e0;
-  float local_1dc;
-  float local_1d8;
-  float local_1d4;
-  _func_long_CDrawListBrush_ptr_void_ptr *local_1d0;
+  float local_1ec;
+  undefined4 local_1e8;
+  float local_1e4;
+  undefined4 local_1e0;
+  undefined4 local_1dc;
+  _func_long_CDrawListBrush_ptr_void_ptr *local_1d8;
+  int *local_1d0;
   D2D_RECT_F *local_1c8;
   undefined8 local_1b8;
   undefined8 uStack_1b0;
   undefined8 local_1a8;
   undefined8 uStack_1a0;
   undefined4 local_198;
   undefined4 uStack_194;
   undefined4 uStack_190;
   undefined4 uStack_18c;
   undefined4 local_188;
   undefined4 uStack_184;
   undefined4 uStack_180;
   undefined4 uStack_17c;
   undefined4 local_178;
   float local_168;
   float fStack_164;
   undefined8 uStack_160;
   float local_158;
   float fStack_154;
   undefined8 uStack_150;
   undefined8 local_148;
   undefined8 uStack_140;
   undefined8 local_138;
   undefined8 uStack_130;
   undefined4 local_128;
   undefined8 local_118;
   undefined8 uStack_110;
   ulonglong local_108;
   undefined8 uStack_100;
   undefined8 local_f8;
   undefined8 uStack_f0;
   undefined8 local_e8;
   undefined8 uStack_e0;
   undefined8 local_d8;
   undefined8 uStack_d0;
   undefined8 local_c8;
   undefined8 uStack_c0;
   undefined8 local_b8;
   undefined8 uStack_b0;
   undefined8 local_a8;
   undefined8 uStack_a0;
   undefined8 local_98;
   undefined8 uStack_90;
   undefined8 local_88;
   undefined8 uStack_80;
   undefined8 local_78;
   ulonglong local_70;
   
   local_70 = __security_cookie ^ (ulonglong)auStackY_2b8;
-  iVar7 = 0;
+  iVar12 = 0;
   if (*(int *)(param_1 + 0x128) == 0) {
     local_1b8 = 0x3f800000;
     uStack_1b0 = 0;
     local_198 = 0;
     uStack_194 = 0;
     uStack_190 = 0x3f800000;
     uStack_18c = 0;
     local_1a8 = 0x3f80000000000000;
     uStack_1a0 = 0;
     local_188 = 0;
     uStack_184 = 0;
     uStack_180 = 0;
     uStack_17c = 0x3f800000;
     local_178 = 0x29aa;
   }
   else {
-    lVar12 = *(longlong *)(param_1 + 0x120);
-    lVar9 = (ulonglong)(*(int *)(param_1 + 0x128) - 1) * 0x44;
-    local_1b8 = *(undefined8 *)(lVar9 + lVar12);
-    uStack_1b0 = ((undefined8 *)(lVar9 + lVar12))[1];
-    puVar1 = (undefined8 *)(lVar9 + 0x10 + lVar12);
-    local_1a8 = *puVar1;
-    uStack_1a0 = puVar1[1];
-    puVar2 = (undefined4 *)(lVar9 + 0x20 + lVar12);
-    local_198 = *puVar2;
-    uStack_194 = puVar2[1];
-    uStack_190 = puVar2[2];
-    uStack_18c = puVar2[3];
-    puVar2 = (undefined4 *)(lVar9 + 0x30 + lVar12);
-    local_188 = *puVar2;
-    uStack_184 = puVar2[1];
-    uStack_180 = puVar2[2];
-    uStack_17c = puVar2[3];
-    local_178 = *(undefined4 *)(lVar9 + 0x40 + lVar12);
-  }
-  uStack_258 = 0;
-  uStack_254 = 0;
-  uStack_234 = 0;
-  uStack_228 = 0;
-  local_260 = *(float *)(this + 8);
-  local_250 = *(float *)(this + 0x10);
-  fStack_25c = *(float *)(this + 0xc);
-  fStack_24c = *(float *)(this + 0x14);
+    lVar6 = *(longlong *)(param_1 + 0x120);
+    lVar15 = (ulonglong)(*(int *)(param_1 + 0x128) - 1) * 0x44;
+    local_1b8 = *(undefined8 *)(lVar15 + lVar6);
+    uStack_1b0 = ((undefined8 *)(lVar15 + lVar6))[1];
+    puVar2 = (undefined8 *)(lVar15 + 0x10 + lVar6);
+    local_1a8 = *puVar2;
+    uStack_1a0 = puVar2[1];
+    puVar3 = (undefined4 *)(lVar15 + 0x20 + lVar6);
+    local_198 = *puVar3;
+    uStack_194 = puVar3[1];
+    uStack_190 = puVar3[2];
+    uStack_18c = puVar3[3];
+    puVar3 = (undefined4 *)(lVar15 + 0x30 + lVar6);
+    local_188 = *puVar3;
+    uStack_184 = puVar3[1];
+    uStack_180 = puVar3[2];
+    uStack_17c = puVar3[3];
+    local_178 = *(undefined4 *)(lVar15 + 0x40 + lVar6);
+  }
+  uStack_260 = 0;
+  uStack_25c = 0;
+  uStack_23c = 0;
+  uStack_230 = 0;
+  local_268 = *(float *)(this + 8);
+  local_258 = *(float *)(this + 0x10);
+  fStack_264 = *(float *)(this + 0xc);
+  fStack_254 = *(float *)(this + 0x14);
+  uStack_250 = 0;
   uStack_248 = 0;
-  uStack_240 = 0;
-  local_230 = *(undefined4 *)(this + 0x18);
-  uStack_22c = *(undefined4 *)(this + 0x1c);
+  local_238 = *(undefined4 *)(this + 0x18);
+  uStack_234 = *(undefined4 *)(this + 0x1c);
   local_138 = *(undefined8 *)(this + 0x18);
   uStack_160 = 0;
-  uStack_238 = 0x3f800000;
-  uStack_224 = 0x3f800000;
-  local_220 = 0x2808;
+  uStack_240 = 0x3f800000;
+  uStack_22c = 0x3f800000;
+  local_228 = 0x2808;
   uStack_140 = 0x3f800000;
   uStack_150 = 0;
   local_128 = 0x2808;
   uStack_130 = 0x3f80000000000000;
   local_148 = 0;
-  local_200 = param_3;
-  local_1d0 = param_2;
-  local_168 = local_260;
-  fStack_164 = fStack_25c;
-  local_158 = local_250;
-  fStack_154 = fStack_24c;
+  local_218 = param_3;
+  local_1d8 = param_2;
+  local_168 = local_268;
+  fStack_164 = fStack_264;
+  local_158 = local_258;
+  fStack_154 = fStack_254;
   CMILMatrix::Multiply((CMILMatrix *)&local_168,(CMILMatrix *)&local_1b8);
-  fVar15 = sqrtf(fStack_164 * fStack_164 + local_168 * local_168);
-  fVar16 = sqrtf(fStack_154 * fStack_154 + local_158 * local_158);
-  if (NAN(fVar15)) {
-    fVar15 = 0.0;
-  }
-  if (NAN(fVar16)) {
-    fVar16 = 0.0;
-  }
-  bVar3 = 8.138021e-05 <= ABS(fVar16 - 1.0);
-  uVar14 = 0;
+  fVar20 = sqrtf(fStack_164 * fStack_164 + local_168 * local_168);
+  fVar21 = sqrtf(fStack_154 * fStack_154 + local_158 * local_158);
+  if (NAN(fVar20)) {
+    fVar20 = 0.0;
+  }
+  if (NAN(fVar21)) {
+    fVar21 = 0.0;
+  }
+  bVar7 = ABS(fVar20 - 1.0) < 8.138021e-05;
+  bVar8 = 8.138021e-05 <= ABS(fVar21 - 1.0);
+  uVar19 = 0;
   while( true ) {
-    lVar12 = *(longlong *)(this + 0x48);
-    if (*(uint *)(*(longlong **)(lVar12 + 0x10) + 1) <= (uint)uVar14) {
-      return iVar7;
+    lVar6 = *(longlong *)(this + 0x48);
+    if (*(uint *)(*(longlong **)(lVar6 + 0x10) + 1) <= (uint)uVar19) {
+      return iVar12;
     }
-    piVar11 = (int *)(uVar14 * 0x90 + **(longlong **)(lVar12 + 0x10));
-    local_118 = *(undefined8 *)piVar11;
-    uStack_110 = *(undefined8 *)(piVar11 + 2);
-    local_108 = *(ulonglong *)(piVar11 + 4);
-    uStack_100 = *(undefined8 *)(piVar11 + 6);
-    local_f8 = *(undefined8 *)(piVar11 + 8);
-    uStack_f0 = *(undefined8 *)(piVar11 + 10);
-    local_e8 = *(undefined8 *)(piVar11 + 0xc);
-    uStack_e0 = *(undefined8 *)(piVar11 + 0xe);
-    local_d8 = *(undefined8 *)(piVar11 + 0x10);
-    uStack_d0 = *(undefined8 *)(piVar11 + 0x12);
-    local_c8 = *(undefined8 *)(piVar11 + 0x14);
-    uStack_c0 = *(undefined8 *)(piVar11 + 0x16);
-    local_b8 = *(undefined8 *)(piVar11 + 0x18);
-    uStack_b0 = *(undefined8 *)(piVar11 + 0x1a);
-    local_a8 = *(undefined8 *)(piVar11 + 0x1c);
-    uStack_a0 = *(undefined8 *)(piVar11 + 0x1e);
-    local_98 = *(undefined8 *)(piVar11 + 0x20);
-    uStack_90 = *(undefined8 *)(piVar11 + 0x22);
-    pDVar10 = (D2D_RECT_F *)(**(longlong **)(lVar12 + 0x18) + (local_108 & 0xffffffff));
-    uVar13 = (int)local_118 * 100 + 0x30;
-    local_1c8 = pDVar10 + ((int)(local_108 >> 0x20) + -1) * uVar13;
-    if ((*piVar11 != 0) &&
-       (local_268 = uVar13, local_1f8 = piVar11, (uint)piVar11[10] < *(uint *)(lVar12 + 0x20)))
+    piVar18 = (int *)(uVar19 * 0x90 + **(longlong **)(lVar6 + 0x10));
+    local_118 = *(undefined8 *)piVar18;
+    uStack_110 = *(undefined8 *)(piVar18 + 2);
+    local_108 = *(ulonglong *)(piVar18 + 4);
+    uStack_100 = *(undefined8 *)(piVar18 + 6);
+    local_f8 = *(undefined8 *)(piVar18 + 8);
+    uStack_f0 = *(undefined8 *)(piVar18 + 10);
+    local_e8 = *(undefined8 *)(piVar18 + 0xc);
+    uStack_e0 = *(undefined8 *)(piVar18 + 0xe);
+    local_d8 = *(undefined8 *)(piVar18 + 0x10);
+    uStack_d0 = *(undefined8 *)(piVar18 + 0x12);
+    local_c8 = *(undefined8 *)(piVar18 + 0x14);
+    uStack_c0 = *(undefined8 *)(piVar18 + 0x16);
+    local_b8 = *(undefined8 *)(piVar18 + 0x18);
+    uStack_b0 = *(undefined8 *)(piVar18 + 0x1a);
+    local_a8 = *(undefined8 *)(piVar18 + 0x1c);
+    uStack_a0 = *(undefined8 *)(piVar18 + 0x1e);
+    local_98 = *(undefined8 *)(piVar18 + 0x20);
+    uStack_90 = *(undefined8 *)(piVar18 + 0x22);
+    pDVar17 = (D2D_RECT_F *)(**(longlong **)(lVar6 + 0x18) + (local_108 & 0xffffffff));
+    uVar16 = (int)local_118 * 100 + 0x30;
+    local_1c8 = pDVar17 + ((int)(local_108 >> 0x20) + -1) * uVar16;
+    if ((*piVar18 != 0) &&
+       (local_220 = uVar16, local_1d0 = piVar18, (uint)piVar18[10] < *(uint *)(lVar6 + 0x20)))
     break;
 LAB_0:
-    uVar14 = (ulonglong)((uint)uVar14 + 1);
+    uVar19 = (ulonglong)((uint)uVar19 + 1);
   }
   do {
-    lVar12 = *(longlong *)(*(longlong *)(this + 0x48) + 0x50) + (ulonglong)(uint)piVar11[10] * 0x18;
+    this_01 = *(MILMatrix3x2 **)(*(longlong *)(this + 0x48) + 0x50);
+    pMVar1 = this_01 + (ulonglong)(uint)piVar18[10] * 0x18;
     if (this[0x34] == (CPrimitiveGroupDrawListBrush)0x0) {
-      fVar21 = *(float *)pDVar10;
-      fVar16 = *(float *)(pDVar10 + 4);
-      fVar20 = *(float *)(pDVar10 + 8);
-      fVar18 = *(float *)(pDVar10 + 0xc);
-      uVar6 = *(uint *)(pDVar10 + 0x2c);
+      fVar25 = *(float *)pDVar17;
+      fVar20 = *(float *)(pDVar17 + 4);
+      fVar21 = *(float *)(pDVar17 + 8);
+      fVar23 = *(float *)(pDVar17 + 0xc);
+      uVar11 = *(uint *)(pDVar17 + 0x2c);
     }
     else {
-      fVar21 = *(float *)(this + 0x20);
-      bVar5 = fVar21 - *(float *)pDVar10 <= 1.1920929e-06;
-      if (bVar5) {
-        fVar21 = *(float *)pDVar10;
-      }
-      fVar16 = *(float *)(this + 0x24);
-      uVar6 = -(uint)!bVar5 & 0x3000000;
-      if (fVar16 - *(float *)(pDVar10 + 4) <= 1.1920929e-06) {
-        fVar16 = *(float *)(pDVar10 + 4);
-      }
-      else {
-        uVar6 = uVar6 | 3;
-      }
-      fVar20 = *(float *)(this + 0x28);
-      if (*(float *)(pDVar10 + 8) - fVar20 <= 1.1920929e-06) {
-        fVar20 = *(float *)(pDVar10 + 8);
-      }
-      else {
-        uVar6 = uVar6 | 0x300;
-      }
-      fVar18 = *(float *)(this + 0x2c);
-      if (*(float *)(pDVar10 + 0xc) - fVar18 <= 1.1920929e-06) {
-        fVar18 = *(float *)(pDVar10 + 0xc);
-      }
-      else {
-        uVar6 = uVar6 | 0x30000;
-      }
-      uVar6 = ~uVar6 & *(uint *)(pDVar10 + 0x2c) | uVar6 & *(uint *)(this + 0x30);
+      fVar25 = *(float *)(this + 0x20);
+      bVar10 = fVar25 - *(float *)pDVar17 <= 1.1920929e-06;
+      if (bVar10) {
+        fVar25 = *(float *)pDVar17;
+      }
+      fVar20 = *(float *)(this + 0x24);
+      uVar11 = -(uint)!bVar10 & 0x3000000;
+      if (fVar20 - *(float *)(pDVar17 + 4) <= 1.1920929e-06) {
+        fVar20 = *(float *)(pDVar17 + 4);
+      }
+      else {
+        uVar11 = uVar11 | 3;
+      }
+      fVar21 = *(float *)(this + 0x28);
+      if (*(float *)(pDVar17 + 8) - fVar21 <= 1.1920929e-06) {
+        fVar21 = *(float *)(pDVar17 + 8);
+      }
+      else {
+        uVar11 = uVar11 | 0x300;
+      }
+      fVar23 = *(float *)(this + 0x2c);
+      if (*(float *)(pDVar17 + 0xc) - fVar23 <= 1.1920929e-06) {
+        fVar23 = *(float *)(pDVar17 + 0xc);
+      }
+      else {
+        uVar11 = uVar11 | 0x30000;
+      }
+      uVar11 = ~uVar11 & *(uint *)(pDVar17 + 0x2c) | uVar11 & *(uint *)(this + 0x30);
     }
-    if ((fVar21 < fVar20) && (fVar16 < fVar18)) {
-      local_1f0 = fVar21;
-      fStack_1ec = fVar16;
-      fStack_1e8 = fVar20;
-      fStack_1e4 = fVar18;
-      if (8.138021e-05 <= ABS(fVar15 - 1.0)) {
-        if (bVar3) goto LAB_1;
-        local_1d4 = 0.0;
+    if ((fVar25 < fVar21) && (fVar20 < fVar23)) {
+      local_210 = fVar25;
+      fStack_20c = fVar20;
+      fStack_208 = fVar21;
+      fStack_204 = fVar23;
+      if (bVar7) {
+        if (bVar8) {
+LAB_1:
+          local_1f4 = -0.5;
+          goto LAB_2;
+        }
+        local_268 = *(float *)(pDVar17 + 0x40);
+        fStack_264 = *(float *)(pDVar17 + 0x44);
+        uStack_25c = *(undefined4 *)(pDVar17 + 0x48);
+        local_258 = *(float *)(pDVar17 + 0x4c);
+        uVar22 = *(undefined4 *)(pDVar17 + 0x50);
+        uVar24 = *(undefined4 *)(pDVar17 + 0x54);
+      }
+      else {
+        if (bVar8) goto LAB_1;
+        local_1f4 = 0.0;
 LAB_2:
-        if (ABS(fVar15 - 1.0) < 8.138021e-05) {
-          local_1d8 = 0.0;
+        if (bVar7) {
+          local_1f8 = 0.0;
         }
         else {
-          local_1d8 = -0.5;
+          local_1f8 = -0.5;
         }
-        local_1e0 = *(float *)pDVar10 - local_1d8;
-        local_1d8 = local_1d8 + *(float *)(pDVar10 + 8);
-        local_1dc = *(float *)(pDVar10 + 4) - local_1d4;
-        local_1d4 = local_1d4 + *(float *)(pDVar10 + 0xc);
+        local_200 = *(float *)pDVar17 - local_1f8;
+        local_1f8 = local_1f8 + *(float *)(pDVar17 + 8);
+        local_1fc = *(float *)(pDVar17 + 4) - local_1f4;
+        local_1f4 = local_1f4 + *(float *)(pDVar17 + 0xc);
         local_78 = 0;
         local_88 = 0;
         uStack_80 = 0;
         D2DMatrixHelper::ComputeRectangleTransform
-                  (pDVar10,(D2D_RECT_F *)&local_1e0,(D2D_MATRIX_3X2_F *)&local_88);
-        MILMatrix3x2::SetProduct
-                  ((MILMatrix3x2 *)&local_218,(MILMatrix3x2 *)&local_88,
-                   (MILMatrix3x2 *)(pDVar10 + 0x40));
-        uStack_254 = (undefined4)local_210;
-        local_250 = local_210._4_4_;
-        local_260 = (float)local_218;
-        fStack_25c = local_218._4_4_;
-        uVar17 = local_208;
-        uVar19 = local_204;
-      }
-      else {
-        if (bVar3) {
-LAB_1:
-          local_1d4 = -0.5;
-          goto LAB_2;
+                  (pDVar17,(D2D_RECT_F *)&local_200,(D2D_MATRIX_3X2_F *)&local_88);
+        this_01 = (MILMatrix3x2 *)&local_1f0;
+        MILMatrix3x2::SetProduct(this_01,(MILMatrix3x2 *)&local_88,(MILMatrix3x2 *)(pDVar17 + 0x40))
+        ;
+        uStack_25c = local_1e8;
+        local_258 = local_1e4;
+        local_268 = local_1f0;
+        fStack_264 = local_1ec;
+        uVar22 = local_1e0;
+        uVar24 = local_1dc;
+      }
+      uStack_260 = 0;
+      fStack_254 = 0.0;
+      uVar5 = *(undefined2 *)(this + 0x50);
+      CVar4 = this[0x52];
+      uStack_250 = CONCAT44(uVar24,uVar22);
+      uStack_248 = CONCAT44(uStack_248._4_4_,0x3f800000);
+      pCVar13 = CThreadLocalObjectCache<CSurfaceDrawListBrush,CSurfaceDrawListBrush>::Alloc
+                          ((__uint64)this_01);
+      if (pCVar13 == (CSurfaceDrawListBrush *)0x0) {
+        pCVar13 = (CSurfaceDrawListBrush *)0x0;
+      }
+      else {
+        local_278 = uVar5;
+        local_276 = CVar4;
+        pCVar13 = (CSurfaceDrawListBrush *)
+                  CSurfaceDrawListBrush::CSurfaceDrawListBrush(pCVar13,pMVar1,&local_278,&local_268)
+        ;
+        if (pCVar13 != (CSurfaceDrawListBrush *)0x0) {
+          pCVar13[0x92] = (CSurfaceDrawListBrush)0x1;
+          pDVar14 = pDVar17 + 0x58;
+          uVar9 = *(undefined8 *)(this + 0x10);
+          *(undefined8 *)(pCVar13 + 8) = *(undefined8 *)(this + 8);
+          *(undefined8 *)(pCVar13 + 0x10) = uVar9;
+          *(undefined8 *)(pCVar13 + 0x18) = *(undefined8 *)(this + 0x18);
+          pCVar13[0x34] = (CSurfaceDrawListBrush)0x1;
+          *(float *)(pCVar13 + 0x20) = fVar25;
+          *(float *)(pCVar13 + 0x24) = fVar20;
+          *(float *)(pCVar13 + 0x28) = fVar21;
+          *(float *)(pCVar13 + 0x2c) = fVar23;
+          *(uint *)(pCVar13 + 0x30) = uVar11;
+          bVar10 = CPrimitiveGroupDrawListGenerator::ShouldUseTexCoordClamp(pDVar14);
+          if (bVar10) {
+            uVar9 = *(undefined8 *)(pDVar14 + 8);
+            *(undefined8 *)(pCVar13 + 0x78) = *(undefined8 *)pDVar14;
+            *(undefined8 *)(pCVar13 + 0x80) = uVar9;
+          }
+          if (this[0x40] != (CPrimitiveGroupDrawListBrush)0x0) {
+            CSurfaceDrawListBrush::SetSnapToPixelsReference(pCVar13,(D2D_VECTOR_2F *)(this + 0x38));
+          }
+          if (local_1d8 == <lambda_6f49ef1c5e266dfff6ad3ca7d4dec8df>::<lambda_invoker_cdecl>) {
+            iVar12 = <lambda_6f49ef1c5e266dfff6ad3ca7d4dec8df>::<lambda_invoker_cdecl>();
+          }
+          else {
+            iVar12 = (*local_1d8)((CDrawListBrush *)pCVar13,local_218);
+          }
+          if (iVar12 < 0) {
+            this_00 = (default_delete<CSurfaceDrawListBrush> *)0x14;
+            MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,iVar12,0xa2,(void *)0x0);
+            goto LAB_3;
+          }
+          CSurfaceDrawListBrush::_scalar_deleting_destructor_(pCVar13,1);
+          piVar18 = local_1d0;
+          uVar16 = local_220;
+          goto LAB_4;
         }
-        local_260 = *(float *)(pDVar10 + 0x40);
-        fStack_25c = *(float *)(pDVar10 + 0x44);
-        uStack_254 = *(undefined4 *)(pDVar10 + 0x48);
-        local_250 = *(float *)(pDVar10 + 0x4c);
-        uVar17 = *(undefined4 *)(pDVar10 + 0x50);
-        uVar19 = *(undefined4 *)(pDVar10 + 0x54);
-      }
-      uStack_258 = 0;
-      local_218 = local_288;
-      fStack_24c = 0.0;
-      local_288[0] = (CSurfaceDrawListBrush *)0x0;
-      local_210 = (CSurfaceDrawListBrush *)0x0;
-      local_278 = *(undefined2 *)(this + 0x50);
-      local_276 = this[0x52];
-      uStack_248 = CONCAT44(uVar19,uVar17);
-      uStack_240 = CONCAT44(uStack_240._4_4_,0x3f800000);
-      local_208 = CONCAT31(local_208._1_3_,1);
-      iVar7 = CSurfaceDrawListBrush::CreateWithTextureTransform
-                        (lVar12,&local_278,&local_260,&local_210);
-      if ((char)local_208 != '\0') {
-        this_00 = *local_218;
-        *local_218 = local_210;
-        if (this_00 != (CSurfaceDrawListBrush *)0x0) {
-          CSurfaceDrawListBrush::_scalar_deleting_destructor_(this_00,1);
-        }
-      }
-      if (iVar7 < 0) {
-        uVar13 = 0x92;
+      }
+      iVar12 = -0x7ff8fff2;
+      MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,-0x7ff8fff2,0x3a,(void *)0x0);
+      this_00 = (default_delete<CSurfaceDrawListBrush> *)0x14;
+      MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,-0x7ff8fff2,0x92,(void *)0x0);
+      if (pCVar13 == (CSurfaceDrawListBrush *)0x0) {
+        return -0x7ff8fff2;
+      }
 LAB_3:
-        this_01 = (default_delete<CSurfaceDrawListBrush> *)0x14;
-        MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,iVar7,uVar13,(void *)0x0);
-        if (local_288[0] == (CSurfaceDrawListBrush *)0x0) {
-          return iVar7;
-        }
-        std::default_delete<CSurfaceDrawListBrush>::operator()(this_01,local_288[0]);
-        return iVar7;
-      }
-      pDVar8 = pDVar10 + 0x58;
-      local_288[0][0x92] = (CSurfaceDrawListBrush)0x1;
-      uVar4 = *(undefined8 *)(this + 0x10);
-      *(undefined8 *)(local_288[0] + 8) = *(undefined8 *)(this + 8);
-      *(undefined8 *)(local_288[0] + 0x10) = uVar4;
-      *(undefined8 *)(local_288[0] + 0x18) = *(undefined8 *)(this + 0x18);
-      local_288[0][0x34] = (CSurfaceDrawListBrush)0x1;
-      *(float *)(local_288[0] + 0x20) = fVar21;
-      *(float *)(local_288[0] + 0x24) = fVar16;
-      *(float *)(local_288[0] + 0x28) = fVar20;
-      *(float *)(local_288[0] + 0x2c) = fVar18;
-      *(uint *)(local_288[0] + 0x30) = uVar6;
-      bVar5 = CPrimitiveGroupDrawListGenerator::ShouldUseTexCoordClamp(pDVar8);
-      if (bVar5) {
-        uVar4 = *(undefined8 *)(pDVar8 + 8);
-        *(undefined8 *)(local_288[0] + 0x78) = *(undefined8 *)pDVar8;
-        *(undefined8 *)(local_288[0] + 0x80) = uVar4;
-      }
-      if (this[0x40] != (CPrimitiveGroupDrawListBrush)0x0) {
-        CSurfaceDrawListBrush::SetSnapToPixelsReference(local_288[0],(D2D_VECTOR_2F *)(this + 0x38))
-        ;
-      }
-      if (local_1d0 == <lambda_6f49ef1c5e266dfff6ad3ca7d4dec8df>::<lambda_invoker_cdecl>) {
-        iVar7 = <lambda_6f49ef1c5e266dfff6ad3ca7d4dec8df>::<lambda_invoker_cdecl>();
-      }
-      else {
-        iVar7 = (*local_1d0)((CDrawListBrush *)local_288[0],local_200);
-      }
-      if (iVar7 < 0) {
-        uVar13 = 0xa2;
-        goto LAB_3;
-      }
-      piVar11 = local_1f8;
-      uVar13 = local_268;
-      if (local_288[0] != (CSurfaceDrawListBrush *)0x0) {
-        CSurfaceDrawListBrush::_scalar_deleting_destructor_(local_288[0],1);
-        piVar11 = local_1f8;
-        uVar13 = local_268;
-      }
+      std::default_delete<CSurfaceDrawListBrush>::operator()(this_00,pCVar13);
+      return iVar12;
     }
-    if (pDVar10 == local_1c8) goto LAB_0;
-    pDVar10 = pDVar10 + uVar13;
+LAB_4:
+    if (pDVar17 == local_1c8) goto LAB_0;
+    pDVar17 = pDVar17 + uVar16;
   } while( true );
 }
 

```


## COcclusionContext::CheckAndRecordOverlayCandidateForContext

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,refcount,length,address|
|ratio|0.53|
|i_ratio|0.61|
|m_ratio|0.99|
|b_ratio|0.89|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|CheckAndRecordOverlayCandidateForContext|CheckAndRecordOverlayCandidateForContext|
|fullname|COcclusionContext::CheckAndRecordOverlayCandidateForContext|COcclusionContext::CheckAndRecordOverlayCandidateForContext|
|`refcount`|4|3|
|`length`|2219|2260|
|called|<details><summary>Expand for full list:<br>CBaseClipStack::Top<br>CMILMatrix::Is2DAxisAlignedPreserving<br>CMILMatrix::Multiply<br>CMILMatrix::Transform2DBoundsHelper<0><br>CMatrixStack::Top<br>COccluderClipStack::GetCornerRects<br>COcclusionContext::CalcContentOnTopRect<br>COverlayContext::CalcInvertedContentOnTop<br>COverlayContext::CheckAndRecordOverlayCandidate<br>COverlayContext::DeriveOverlayRotationParameters<br>COverlayContext::GetDeviceTransform</summary>COverlayContext::GetMonitorTransform<br>COverlayContext::GetVirtualModeClip<br>CShape::IsAxisAlignedRectangle<br>CTreeDirty::DoesContain<br>McTemplateU0xdddddddd_EventWriteTransfer<br>McTemplateU0xq_EventWriteTransfer<br>MilInstrumentationCheckHR_MaybeFailFast<br>TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::IsEmpty<br>__security_check_cookie<br>_guard_dispatch_icall$thunk$10345483385596137414<br>wil::details::FeatureImpl<__WilFeatureTraits_Feature_DWM_MPO_Enhancement>::__private_IsEnabled</details>|<details><summary>Expand for full list:<br>CBaseClipStack::Top<br>CMILMatrix::Is2DAxisAlignedPreserving<br>CMILMatrix::Multiply<br>CMILMatrix::Transform2DBoundsHelper<0><br>CMatrixStack::Top<br>COccluderClipStack::GetCornerRects<br>COcclusionContext::CalcContentOnTopRect<br>COverlayContext::CalcInvertedContentOnTop<br>COverlayContext::CheckAndRecordOverlayCandidate<br>COverlayContext::DeriveOverlayRotationParameters<br>COverlayContext::GetDeviceTransform</summary>COverlayContext::GetMonitorTransform<br>COverlayContext::GetVirtualModeClip<br>CShape::IsAxisAlignedRectangle<br>CTreeDirty::DoesContain<br>McTemplateU0xdddddddd_EventWriteTransfer<br>McTemplateU0xq_EventWriteTransfer<br>MilInstrumentationCheckHR_MaybeFailFast<br>TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::IsEmpty<br>__security_check_cookie<br>_guard_dispatch_icall$thunk$10345483385596137414<br>wil::details::FeatureImpl<__WilFeatureTraits_Feature_DWM_MPO_Enhancement>::__private_IsEnabled</details>|
|calling|COcclusionContext::CheckAndRecordOverlayCandidate|COcclusionContext::CheckAndRecordOverlayCandidate|
|paramcount|8|8|
|`address`|1802377ec|18023503c|
|sig|long __thiscall CheckAndRecordOverlayCandidateForContext(COcclusionContext * this, COverlayContext * param_1, CVisual * param_2, CCompositionSurfaceInfo * param_3, ISwapChainRealization * param_4, CMILMatrix * param_5, CShape * param_6, TMILFlagsEnum<MilSourceModification::FlagsEnum> param_7)|long __thiscall CheckAndRecordOverlayCandidateForContext(COcclusionContext * this, COverlayContext * param_1, CVisual * param_2, CCompositionSurfaceInfo * param_3, ISwapChainRealization * param_4, CMILMatrix * param_5, CShape * param_6, TMILFlagsEnum<MilSourceModification::FlagsEnum> param_7)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### COcclusionContext::CheckAndRecordOverlayCandidateForContext Diff


```diff
--- COcclusionContext::CheckAndRecordOverlayCandidateForContext
+++ COcclusionContext::CheckAndRecordOverlayCandidateForContext
@@ -1,397 +1,405 @@
 
 /* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
    guard_dispatch_icall */
 /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
 /* public: long __cdecl COcclusionContext::CheckAndRecordOverlayCandidateForContext(class
    COverlayContext * __ptr64,class CVisual * __ptr64,class CCompositionSurfaceInfo * __ptr64,class
    ISwapChainRealization * __ptr64,class CMILMatrix const & __ptr64,class CShape const *
    __ptr64,struct TMILFlagsEnum<enum MilSourceModification::FlagsEnum>) __ptr64 */
 
 long __thiscall
 COcclusionContext::CheckAndRecordOverlayCandidateForContext
           (COcclusionContext *this,COverlayContext *param_1,CVisual *param_2,
           CCompositionSurfaceInfo *param_3,ISwapChainRealization *param_4,CMILMatrix *param_5,
           CShape *param_6)
 
 {
   float fVar1;
   undefined1 uVar2;
   char cVar3;
   bool bVar4;
   int iVar5;
   CMILMatrix *this_00;
   CMonitorTransform *pCVar6;
   float *pfVar7;
   undefined8 *puVar8;
   TMilRect_<int,tagRECT,D2D_POINTANDSIZE_L,Mil3DRectL,RectUniqueness::_CMilRectL_> *pTVar9;
   bool bVar10;
   undefined8 uVar11;
   float fVar12;
   float fVar13;
   float fVar14;
   float fVar15;
-  undefined1 auStackY_2b8 [32];
+  undefined1 auStackY_2d8 [32];
   uint uVar16;
-  bool local_238 [4];
-  float local_234;
-  float local_230 [2];
-  CVisual *local_228;
-  CCompositionSurfaceInfo *local_220;
-  float local_218;
-  float local_214;
-  CMILMatrix *local_210;
-  CMILMatrix local_208 [64];
-  undefined4 local_1c8;
-  CMILMatrix local_1b8 [64];
-  undefined4 local_178;
-  undefined8 local_168;
-  undefined8 uStack_160;
+  bool local_248 [4];
+  float local_244;
+  float local_240 [2];
+  CVisual *local_238;
+  CCompositionSurfaceInfo *local_230;
+  float local_228;
+  float local_224;
+  CMILMatrix local_218 [64];
+  undefined4 local_1d8;
+  CMILMatrix local_1c8 [64];
+  undefined4 local_188;
+  undefined8 local_178;
+  undefined8 uStack_170;
+  float local_168 [4];
   float local_158 [4];
   float local_148 [4];
-  float local_138 [4];
-  undefined8 local_128;
-  undefined8 uStack_120;
+  undefined8 local_138;
+  undefined8 uStack_130;
+  CMILMatrix *local_128 [2];
   undefined8 local_118;
   undefined8 uStack_110;
   undefined8 local_108;
   undefined8 uStack_100;
   undefined8 local_f8;
   undefined8 uStack_f0;
   undefined8 local_e8;
   undefined8 uStack_e0;
   undefined8 local_d8;
   undefined8 uStack_d0;
   undefined8 local_c8;
   undefined8 uStack_c0;
   undefined8 local_b8;
   undefined8 uStack_b0;
   undefined4 local_a8;
   ulonglong local_98;
   
-  local_98 = __security_cookie ^ (ulonglong)auStackY_2b8;
+  local_98 = __security_cookie ^ (ulonglong)auStackY_2d8;
   iVar5 = 0;
-  local_210 = param_5;
-  local_228 = param_2;
-  local_220 = param_3;
-  local_168 = param_1;
+  local_128[0] = param_5;
+  local_238 = param_2;
+  local_230 = param_3;
+  local_178 = param_1;
   if ((Microsoft_Windows_Dwm_CoreEnableBits._1_1_ & 2) != 0) {
-    local_1c8 = 0;
-    local_138[0] = 0.0;
-    local_138[1] = 0.0;
-    local_138[2] = 0.0;
-    local_138[3] = 0.0;
-    (**(code **)(*(longlong *)(param_4 + 8) + 0x28))(param_4 + 8,local_208,local_138);
+    local_1d8 = 0;
+    local_148[0] = 0.0;
+    local_148[1] = 0.0;
+    local_148[2] = 0.0;
+    local_148[3] = 0.0;
+    (**(code **)(*(longlong *)(param_4 + 8) + 0x28))(param_4 + 8,local_218,local_148);
     if ((Microsoft_Windows_Dwm_CoreEnableBits._1_1_ & 2) != 0) {
-      local_230[0] = local_138[3] + 6291456.0;
-      local_234 = local_138[2] + 6291456.0;
-      local_218 = local_138[1] + 6291456.0;
-      local_214 = local_138[0] + 6291456.0;
+      local_240[0] = local_148[3] + 6291456.0;
+      local_244 = local_148[2] + 6291456.0;
+      local_228 = local_148[1] + 6291456.0;
+      local_224 = local_148[0] + 6291456.0;
       (**(code **)(*(longlong *)param_4 + 0x98))(param_4);
       (**(code **)(*(longlong *)param_4 + 0x90))(param_4);
-      (**(code **)(*(longlong *)local_220 + 0x70))();
+      (**(code **)(*(longlong *)local_230 + 0x70))();
       uVar2 = (**(code **)(*(longlong *)param_4 + 0xa8))(param_4);
       McTemplateU0xdddddddd_EventWriteTransfer
-                (((int)local_214 << 10) >> 0xb,((int)local_218 << 10) >> 0xb,
-                 CONCAT44((int)((ulonglong)*(longlong *)(local_220 + 0x28) >> 0x20),
-                          *(undefined4 *)(local_220 + 0x28)),uVar2);
-      param_5 = local_210;
-      param_3 = local_220;
-      param_1 = local_168;
+                (((int)local_224 << 10) >> 0xb,((int)local_228 << 10) >> 0xb,
+                 CONCAT44((int)((ulonglong)*(longlong *)(local_230 + 0x28) >> 0x20),
+                          *(undefined4 *)(local_230 + 0x28)),uVar2);
+      param_5 = local_128[0];
+      param_3 = local_230;
+      param_1 = local_178;
     }
   }
   cVar3 = (**(code **)(*(longlong *)param_3 + 0xb8))(param_3);
   if (cVar3 == '\0') {
-    local_178 = 0;
-    CMatrixStack::Top((CMatrixStack *)(this + 0x20),local_1b8);
-    local_1c8 = 0;
-    CMILMatrix::Multiply(param_5,local_1b8,local_208);
+    local_188 = 0;
+    CMatrixStack::Top((CMatrixStack *)(this + 0x20),local_1c8);
+    local_1d8 = 0;
+    CMILMatrix::Multiply(param_5,local_1c8,local_218);
     local_a8 = 0;
     this_00 = COverlayContext::GetDeviceTransform(param_1);
-    local_210 = this_00;
-    CMILMatrix::Multiply(local_208,this_00,(CMILMatrix *)&local_e8);
-    local_234 = 0.0;
+    local_128[0] = this_00;
+    CMILMatrix::Multiply(local_218,this_00,(CMILMatrix *)&local_e8);
+    local_244 = 0.0;
     bVar10 = true;
-    local_238[0] = true;
-    local_230[0] = 1.4013e-45;
+    local_248[0] = true;
+    local_240[0] = 1.4013e-45;
     bVar4 = CMILMatrix::Is2DAxisAlignedPreserving((CMILMatrix *)&local_e8);
     if ((!bVar4) ||
        (bVar4 = COverlayContext::DeriveOverlayRotationParameters
-                          (param_1,(CMILMatrix *)&local_e8,(DXGI_MODE_ROTATION *)local_230,
-                           (uint *)&local_234,local_238), !bVar4)) {
+                          (param_1,(CMILMatrix *)&local_e8,(DXGI_MODE_ROTATION *)local_240,
+                           (uint *)&local_244,local_248), !bVar4)) {
       if ((Microsoft_Windows_Dwm_CoreEnableBits._1_1_ & 2) == 0) {
         return 0;
       }
       puVar8 = (undefined8 *)
-               (**(code **)(*(longlong *)(param_4 + 0x10) + 0x18))(param_4 + 0x10,&local_228);
+               (**(code **)(*(longlong *)(param_4 + 0x10) + 0x18))(param_4 + 0x10,&local_238);
       uVar11 = 1;
       goto LAB_0;
     }
     if ((param_6 != (CShape *)0x0) && (bVar4 = CShape::IsAxisAlignedRectangle(param_6), !bVar4)) {
       if ((Microsoft_Windows_Dwm_CoreEnableBits._1_1_ & 2) == 0) {
         return 0;
       }
       puVar8 = (undefined8 *)
-               (**(code **)(*(longlong *)(param_4 + 0x10) + 0x18))(param_4 + 0x10,&local_228);
+               (**(code **)(*(longlong *)(param_4 + 0x10) + 0x18))(param_4 + 0x10,&local_238);
       uVar11 = 2;
       goto LAB_0;
     }
-    local_168 = (COverlayContext *)0x0;
-    uStack_160 = 0;
+    local_178 = (COverlayContext *)0x0;
+    uStack_170 = 0;
     CBaseClipStack::Top((CBaseClipStack *)(this + 0x80),
                         (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
-                         *)&local_168);
+                         *)&local_178);
     if (param_6 == (CShape *)0x0) {
-      fVar12 = uStack_160._4_4_;
-      fVar13 = local_168._4_4_;
-      fVar14 = (float)uStack_160;
-      fVar15 = (float)local_168;
+      fVar12 = uStack_170._4_4_;
+      fVar13 = local_178._4_4_;
+      fVar14 = (float)uStack_170;
+      fVar15 = (float)local_178;
       iVar5 = 0;
     }
     else {
-      local_138[0] = 0.0;
-      local_138[1] = 0.0;
-      local_138[2] = 0.0;
-      local_138[3] = 0.0;
-      local_158[0] = 0.0;
-      local_158[1] = 0.0;
-      local_158[2] = 0.0;
-      local_158[3] = 0.0;
+      local_148[0] = 0.0;
+      local_148[1] = 0.0;
+      local_148[2] = 0.0;
+      local_148[3] = 0.0;
+      local_168[0] = 0.0;
+      local_168[1] = 0.0;
+      local_168[2] = 0.0;
+      local_168[3] = 0.0;
       iVar5 = (**(code **)(*(longlong *)param_6 + 0x30))(param_6);
       if (iVar5 < 0) {
         uVar16 = 0xb6;
         goto LAB_1;
       }
       CMILMatrix::Transform2DBoundsHelper<0>
-                (local_1b8,(D2D_RECT_F *)local_138,(D2D_RECT_F *)local_158);
-      fVar15 = (float)local_168;
-      if ((float)local_168 < local_158[0]) {
-        local_168 = (COverlayContext *)CONCAT44(local_168._4_4_,local_158[0]);
-        fVar15 = local_158[0];
-      }
-      fVar13 = local_168._4_4_;
-      if (local_168._4_4_ < local_158[1]) {
-        local_168 = (COverlayContext *)CONCAT44(local_158[1],(float)local_168);
-        fVar13 = local_158[1];
-      }
-      fVar14 = (float)uStack_160;
-      if (local_158[2] < (float)uStack_160) {
-        uStack_160 = CONCAT44(uStack_160._4_4_,local_158[2]);
-        fVar14 = local_158[2];
-      }
-      fVar12 = uStack_160._4_4_;
-      if (local_158[3] < uStack_160._4_4_) {
-        uStack_160 = CONCAT44(local_158[3],(float)uStack_160);
-        fVar12 = local_158[3];
+                (local_1c8,(D2D_RECT_F *)local_148,(D2D_RECT_F *)local_168);
+      fVar15 = (float)local_178;
+      if ((float)local_178 < local_168[0]) {
+        local_178 = (COverlayContext *)CONCAT44(local_178._4_4_,local_168[0]);
+        fVar15 = local_168[0];
+      }
+      fVar13 = local_178._4_4_;
+      if (local_178._4_4_ < local_168[1]) {
+        local_178 = (COverlayContext *)CONCAT44(local_168[1],(float)local_178);
+        fVar13 = local_168[1];
+      }
+      fVar14 = (float)uStack_170;
+      if (local_168[2] < (float)uStack_170) {
+        uStack_170 = CONCAT44(uStack_170._4_4_,local_168[2]);
+        fVar14 = local_168[2];
+      }
+      fVar12 = uStack_170._4_4_;
+      if (local_168[3] < uStack_170._4_4_) {
+        uStack_170 = CONCAT44(local_168[3],(float)uStack_170);
+        fVar12 = local_168[3];
       }
       bVar4 = TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::IsEmpty
                         ((TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded> *)
-                         &local_168);
+                         &local_178);
       if (bVar4) {
-        uStack_160 = 0;
-        local_168 = (COverlayContext *)0x0;
+        uStack_170 = 0;
+        local_178 = (COverlayContext *)0x0;
         fVar12 = 0.0;
         fVar13 = 0.0;
         fVar14 = 0.0;
         fVar15 = 0.0;
       }
     }
     pCVar6 = COverlayContext::GetMonitorTransform(param_1);
     fVar1 = *(float *)(pCVar6 + 8);
     if (fVar15 < fVar1) {
-      local_168 = (COverlayContext *)CONCAT44(local_168._4_4_,fVar1);
+      local_178 = (COverlayContext *)CONCAT44(local_178._4_4_,fVar1);
       fVar15 = fVar1;
     }
     fVar1 = *(float *)(pCVar6 + 0xc);
     if (fVar13 < fVar1) {
-      local_168 = (COverlayContext *)CONCAT44(fVar1,(float)local_168);
+      local_178 = (COverlayContext *)CONCAT44(fVar1,(float)local_178);
       fVar13 = fVar1;
     }
     if (*(float *)(pCVar6 + 0x10) <= fVar14 && fVar14 != *(float *)(pCVar6 + 0x10)) {
       fVar14 = *(float *)(pCVar6 + 0x10);
-      uStack_160 = CONCAT44(uStack_160._4_4_,fVar14);
+      uStack_170 = CONCAT44(uStack_170._4_4_,fVar14);
     }
     if (*(float *)(pCVar6 + 0x14) <= fVar12 && fVar12 != *(float *)(pCVar6 + 0x14)) {
       fVar12 = *(float *)(pCVar6 + 0x14);
-      uStack_160 = CONCAT44(fVar12,(float)uStack_160);
+      uStack_170 = CONCAT44(fVar12,(float)uStack_170);
     }
     bVar4 = TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::IsEmpty
-                      ((TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded> *)&local_168
+                      ((TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded> *)&local_178
                       );
     if (!bVar4) {
       local_f8 = 0;
       uStack_f0 = 0;
-      local_128 = 0;
-      uStack_120 = 0;
-      local_138[0] = 0.0;
-      local_138[1] = 0.0;
-      local_138[2] = 0.0;
-      local_138[3] = 0.0;
-      (**(code **)(*(longlong *)param_4 + 0xe8))(param_4,local_208,&local_f8,&local_128);
-      if (fVar15 < (float)local_128) {
-        local_168 = (COverlayContext *)CONCAT44(local_168._4_4_,(float)local_128);
-        fVar15 = (float)local_128;
-      }
-      if (fVar13 < local_128._4_4_) {
-        local_168 = (COverlayContext *)CONCAT44(local_128._4_4_,(float)local_168);
-        fVar13 = local_128._4_4_;
-      }
-      if ((float)uStack_120 < fVar14) {
-        uStack_160 = CONCAT44(uStack_160._4_4_,(float)uStack_120);
-        fVar14 = (float)uStack_120;
-      }
-      if (uStack_120._4_4_ < fVar12) {
-        uStack_160 = CONCAT44(uStack_120._4_4_,(float)uStack_160);
-        fVar12 = uStack_120._4_4_;
+      local_138 = 0;
+      uStack_130 = 0;
+      local_148[0] = 0.0;
+      local_148[1] = 0.0;
+      local_148[2] = 0.0;
+      local_148[3] = 0.0;
+      (**(code **)(*(longlong *)param_4 + 0xe8))(param_4,local_218,&local_f8,&local_138);
+      if (fVar15 < (float)local_138) {
+        local_178 = (COverlayContext *)CONCAT44(local_178._4_4_,(float)local_138);
+        fVar15 = (float)local_138;
+      }
+      if (fVar13 < local_138._4_4_) {
+        local_178 = (COverlayContext *)CONCAT44(local_138._4_4_,(float)local_178);
+        fVar13 = local_138._4_4_;
+      }
+      if ((float)uStack_130 < fVar14) {
+        uStack_170 = CONCAT44(uStack_170._4_4_,(float)uStack_130);
+        fVar14 = (float)uStack_130;
+      }
+      if (uStack_130._4_4_ < fVar12) {
+        uStack_170 = CONCAT44(uStack_130._4_4_,(float)uStack_170);
+        fVar12 = uStack_130._4_4_;
       }
       bVar4 = TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::IsEmpty
                         ((TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded> *)
-                         &local_168);
+                         &local_178);
       if (bVar4) {
         fVar12 = 0.0;
         fVar14 = 0.0;
         fVar13 = 0.0;
         fVar15 = 0.0;
-        uStack_160 = 0;
-        local_168 = (COverlayContext *)0x0;
-      }
-      local_158[0] = local_138[0];
-      if (local_138[0] < fVar15) {
-        local_158[0] = fVar15;
-      }
-      local_158[1] = local_138[1];
-      if (local_138[1] < fVar13) {
-        local_158[1] = fVar13;
-      }
-      local_158[2] = local_138[2];
-      if (fVar14 < local_138[2]) {
-        local_158[2] = fVar14;
-      }
-      local_158[3] = local_138[3];
-      if (fVar12 < local_138[3]) {
-        local_158[3] = fVar12;
+        uStack_170 = 0;
+        local_178 = (COverlayContext *)0x0;
+      }
+      local_168[0] = local_148[0];
+      if (local_148[0] < fVar15) {
+        local_168[0] = fVar15;
+      }
+      local_168[1] = local_148[1];
+      if (local_148[1] < fVar13) {
+        local_168[1] = fVar13;
+      }
+      local_168[2] = local_148[2];
+      if (fVar14 < local_148[2]) {
+        local_168[2] = fVar14;
+      }
+      local_168[3] = local_148[3];
+      if (fVar12 < local_148[3]) {
+        local_168[3] = fVar12;
       }
       bVar4 = TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::IsEmpty
                         ((TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded> *)
-                         local_158);
-      if (!bVar4) {
+                         local_168);
+      if (bVar4) {
+        local_168[2] = 0.0;
+        local_168[3] = 0.0;
+        local_168[0] = 0.0;
+        local_168[1] = 0.0;
+      }
+      else {
         local_108 = 0;
         uStack_100 = 0;
         CMILMatrix::Transform2DBoundsHelper<0>
-                  (this_00,(D2D_RECT_F *)local_138,(D2D_RECT_F *)&local_108);
-        local_148[0] = 0.0;
-        local_148[1] = 0.0;
-        local_148[2] = 0.0;
-        local_148[3] = 0.0;
+                  (this_00,(D2D_RECT_F *)local_148,(D2D_RECT_F *)&local_108);
+        local_158[0] = 0.0;
+        local_158[1] = 0.0;
+        local_158[2] = 0.0;
+        local_158[3] = 0.0;
         CMILMatrix::Transform2DBoundsHelper<0>
-                  (this_00,(D2D_RECT_F *)&local_168,(D2D_RECT_F *)local_148);
+                  (this_00,(D2D_RECT_F *)&local_178,(D2D_RECT_F *)local_158);
         pfVar7 = (float *)COverlayContext::GetVirtualModeClip(param_1);
-        if (local_148[0] < *pfVar7) {
-          local_148[0] = *pfVar7;
+        if (local_158[0] < *pfVar7) {
+          local_158[0] = *pfVar7;
         }
-        if (local_148[1] < pfVar7[1]) {
-          local_148[1] = pfVar7[1];
+        if (local_158[1] < pfVar7[1]) {
+          local_158[1] = pfVar7[1];
         }
-        if (pfVar7[2] < local_148[2]) {
-          local_148[2] = pfVar7[2];
+        if (pfVar7[2] < local_158[2]) {
+          local_158[2] = pfVar7[2];
         }
-        if (pfVar7[3] < local_148[3]) {
-          local_148[3] = pfVar7[3];
+        if (pfVar7[3] < local_158[3]) {
+          local_158[3] = pfVar7[3];
         }
         bVar4 = TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::IsEmpty
                           ((TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded> *)
-                           local_148);
+                           local_158);
         if (!bVar4) {
           local_a8 = CONCAT31(local_a8._1_3_,1);
           local_e8 = 0;
           uStack_e0 = 0;
           local_d8 = 0;
           uStack_d0 = 0;
           local_c8 = 0;
           uStack_c0 = 0;
           local_b8 = 0;
           uStack_b0 = 0;
           bVar4 = wil::details::FeatureImpl<__WilFeatureTraits_Feature_DWM_MPO_Enhancement>::
                   __private_IsEnabled((FeatureImpl<__WilFeatureTraits_Feature_DWM_MPO_Enhancement> *
                                       )&`private:_static_class_wil::details::FeatureImpl<__WilFeatureTraits_Feature_DWM_MPO_Enhancement>&___ptr64___cdecl_wil::Feature<__WilFeatureTraits_Feature_DWM_MPO_Enhancement>::GetImpl(void)'
                                         ::__l2::impl);
           if (bVar4) {
             pCVar6 = COverlayContext::GetMonitorTransform(param_1);
-            local_168 = (COverlayContext *)0x0;
-            uStack_160 = 0;
+            local_178 = (COverlayContext *)0x0;
+            uStack_170 = 0;
             CMILMatrix::Transform2DBoundsHelper<0>
-                      ((CMILMatrix *)(pCVar6 + 0x78),(D2D_RECT_F *)local_148,
-                       (D2D_RECT_F *)&local_168);
+                      ((CMILMatrix *)(pCVar6 + 0x78),(D2D_RECT_F *)local_158,
+                       (D2D_RECT_F *)&local_178);
             COccluderClipStack::GetCornerRects
                       ((COccluderClipStack *)(this + 0xb0),
                        (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
-                        *)&local_168,(CCornerRects *)&local_e8);
+                        *)&local_178,(CCornerRects *)&local_e8);
           }
           bVar4 = CTreeDirty::DoesContain
                             ((CTreeDirty *)(*(longlong *)(this + 8) + 0x70),
                              (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
-                              *)local_158);
+                              *)local_168);
           cVar3 = (**(code **)(*(longlong *)param_4 + 200))(param_4);
-          fVar15 = local_234;
+          fVar15 = local_244;
           if (cVar3 != '\0') {
-            fVar15 = (float)((uint)local_234 | 8);
+            fVar15 = (float)((uint)local_244 | 8);
           }
           local_118 = 0;
           uStack_110 = 0;
           puVar8 = (undefined8 *)
                    COverlayContext::CalcInvertedContentOnTop
                              (param_1,(TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
-                                       *)&local_168);
+                                       *)&local_178);
           local_118 = *puVar8;
           uStack_110 = puVar8[1];
           if ((this[0x620] == (COcclusionContext)0x0) || (this[0x621] != (COcclusionContext)0x0)) {
             bVar10 = false;
           }
           pTVar9 = (TMilRect_<int,tagRECT,D2D_POINTANDSIZE_L,Mil3DRectL,RectUniqueness::_CMilRectL_>
-                    *)CalcContentOnTopRect(this,(CMILMatrix *)local_158);
+                    *)CalcContentOnTopRect(this,(CMILMatrix *)local_128);
           iVar5 = COverlayContext::CheckAndRecordOverlayCandidate
-                            (param_1,local_228,local_220,param_4,
+                            (param_1,local_238,
+                             (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
+                              *)local_168,local_230,param_4,
                              (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
                               *)&local_f8,
                              (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
                               *)&local_108,
                              (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
-                              *)local_148,(CCornerRects *)&local_e8,local_1b8,
-                             (DXGI_MODE_ROTATION)local_230[0],(uint)fVar15,local_238[0],bVar4,pTVar9
+                              *)local_158,(CCornerRects *)&local_e8,local_1c8,
+                             (DXGI_MODE_ROTATION)local_240[0],(uint)fVar15,local_248[0],bVar4,pTVar9
                              ,bVar10,(TMilRect_<int,tagRECT,D2D_POINTANDSIZE_L,Mil3DRectL,RectUniqueness::_CMilRectL_>
                                       *)&local_118);
           if (-1 < iVar5) {
             return iVar5;
           }
-          uVar16 = 0x10b;
+          uVar16 = 0x10c;
 LAB_1:
           MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,iVar5,uVar16,(void *)0x0);
           return iVar5;
         }
-        local_148[2] = 0.0;
-        local_148[3] = 0.0;
-        local_148[0] = 0.0;
-        local_148[1] = 0.0;
+        local_158[2] = 0.0;
+        local_158[3] = 0.0;
+        local_158[0] = 0.0;
+        local_158[1] = 0.0;
       }
     }
     if ((Microsoft_Windows_Dwm_CoreEnableBits._1_1_ & 2) == 0) {
       return iVar5;
     }
     puVar8 = (undefined8 *)
-             (**(code **)(*(longlong *)(param_4 + 0x10) + 0x18))(param_4 + 0x10,&local_228);
+             (**(code **)(*(longlong *)(param_4 + 0x10) + 0x18))(param_4 + 0x10,&local_238);
     uVar11 = 3;
   }
   else {
     if ((Microsoft_Windows_Dwm_CoreEnableBits._1_1_ & 2) == 0) {
       return 0;
     }
     puVar8 = (undefined8 *)
-             (**(code **)(*(longlong *)(param_4 + 0x10) + 0x18))(param_4 + 0x10,&local_228);
+             (**(code **)(*(longlong *)(param_4 + 0x10) + 0x18))(param_4 + 0x10,&local_238);
     uVar11 = 8;
   }
 LAB_0:
   McTemplateU0xq_EventWriteTransfer
             (*(undefined4 *)puVar8,&EVTDESC_DISPLAYSURFACE_REJECTCANDIDATE,
              CONCAT44((int)((ulonglong)*puVar8 >> 0x20),*(undefined4 *)puVar8),uVar11);
   return iVar5;
 }
 

```


## CSurfaceDrawListBrush::CreateWithTextureTransform

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,refcount,length,address,calling,called|
|ratio|0.36|
|i_ratio|0.27|
|m_ratio|0.8|
|b_ratio|0.7|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|CreateWithTextureTransform|CreateWithTextureTransform|
|fullname|CSurfaceDrawListBrush::CreateWithTextureTransform|CSurfaceDrawListBrush::CreateWithTextureTransform|
|`refcount`|10|7|
|`length`|564|380|
|`called`|?Alloc@DefaultHeap@@SAPEAX_K@Z<br>API-MS-WIN-CORE-HEAP-L1-1-0.DLL::GetProcessHeap<br>API-MS-WIN-CORE-HEAP-L1-1-0.DLL::HeapAlloc<br>API-MS-WIN-CORE-PROCESSTHREADS-L1-1-0.DLL::TlsGetValue<br>API-MS-WIN-CORE-PROCESSTHREADS-L1-1-0.DLL::TlsSetValue<br>CMILRefCountImpl::AddReference<br>CThreadContext::CThreadContext<br>MilInstrumentationCheckHR_MaybeFailFast<br>ModuleFailFastForHRESULT<br>_guard_dispatch_icall$thunk$10345483385596137414|?Alloc@DefaultHeap@@SAPEAX_K@Z<br>API-MS-WIN-CORE-HEAP-L1-1-0.DLL::GetProcessHeap<br>API-MS-WIN-CORE-HEAP-L1-1-0.DLL::HeapAlloc<br>API-MS-WIN-CORE-PROCESSTHREADS-L1-1-0.DLL::TlsGetValue<br>API-MS-WIN-CORE-PROCESSTHREADS-L1-1-0.DLL::TlsSetValue<br>CSurfaceDrawListBrush::CSurfaceDrawListBrush<br>CThreadContext::CThreadContext<br>MilInstrumentationCheckHR_MaybeFailFast<br>ModuleFailFastForHRESULT|
|`calling`|CBlurredWallpaperBackdropBrush::GetBrushParameters<br>CEmptyRegionDrawListBrush::Initialize<br>CLinearGradientBrush::GetBrushParameters<br>CPrimitiveGroupDrawListBrush::EnumerateBrushes<br>CRadialGradientBrush::GetBrushParameters<br>CWindowBackdropBrush::GetBrushParameters|CBlurredWallpaperBackdropBrush::GetBrushParameters<br>CCompositionMagnifierBrush::GetBVIBrushParameters<br>CEmptyRegionDrawListBrush::Initialize<br>CLinearGradientBrush::GetBrushParameters<br>CRadialGradientBrush::GetBrushParameters<br>CWindowBackdropBrush::GetBrushParameters|
|paramcount|4|4|
|`address`|18011d510|1800ba720|
|sig|long __cdecl CreateWithTextureTransform(CDrawListBitmap * param_1, SamplerMode param_2, Matrix3x3 * param_3, CSurfaceDrawListBrush * * param_4)|long __cdecl CreateWithTextureTransform(CDrawListBitmap * param_1, SamplerMode param_2, Matrix3x3 * param_3, CSurfaceDrawListBrush * * param_4)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### CSurfaceDrawListBrush::CreateWithTextureTransform Called Diff


```diff
--- CSurfaceDrawListBrush::CreateWithTextureTransform called
+++ CSurfaceDrawListBrush::CreateWithTextureTransform called
@@ -6 +6 @@
-CMILRefCountImpl::AddReference
+CSurfaceDrawListBrush::CSurfaceDrawListBrush
@@ -10 +9,0 @@
-_guard_dispatch_icall$thunk$10345483385596137414
```


### CSurfaceDrawListBrush::CreateWithTextureTransform Calling Diff


```diff
--- CSurfaceDrawListBrush::CreateWithTextureTransform calling
+++ CSurfaceDrawListBrush::CreateWithTextureTransform calling
@@ -1,0 +2 @@
+CCompositionMagnifierBrush::GetBVIBrushParameters
@@ -4 +4,0 @@
-CPrimitiveGroupDrawListBrush::EnumerateBrushes
```


### CSurfaceDrawListBrush::CreateWithTextureTransform Diff


```diff
--- CSurfaceDrawListBrush::CreateWithTextureTransform
+++ CSurfaceDrawListBrush::CreateWithTextureTransform
@@ -1,90 +1,58 @@
 
-/* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
-   guard_dispatch_icall */
 /* public: static long __cdecl CSurfaceDrawListBrush::CreateWithTextureTransform(class
    CDrawListBitmap const & __ptr64,struct SamplerMode,class Matrix3x3 const & __ptr64,class
    CSurfaceDrawListBrush * __ptr64 * __ptr64) */
 
 long __cdecl
 CSurfaceDrawListBrush::CreateWithTextureTransform
-          (undefined8 *param_1,undefined2 *param_2,undefined4 *param_3,undefined8 *param_4)
+          (undefined8 param_1,undefined2 *param_2,undefined8 param_3,longlong *param_4)
 
 {
-  undefined1 uVar1;
-  undefined2 uVar2;
-  CMILRefCountImpl *this;
-  longlong *plVar3;
   LPVOID lpTlsValue;
   HANDLE hHeap;
-  undefined8 *puVar4;
-  CThreadContext *this_00;
+  CSurfaceDrawListBrush *pCVar1;
+  longlong lVar2;
+  CThreadContext *this;
   undefined8 unaff_retaddr;
+  uint in_stack_ffffffffffffffc8;
+  undefined2 local_28;
+  undefined1 local_26;
   
-  puVar4 = (undefined8 *)0x0;
   lpTlsValue = TlsGetValue(CThreadContext::s_dwTlsIndex);
   if (lpTlsValue == (LPVOID)0x0) {
-    this_00 = _Alloc_DefaultHeap__SAPEAX_K_Z(0x1c0);
-    if ((this_00 == (CThreadContext *)0x0) ||
-       (lpTlsValue = (LPVOID)CThreadContext::CThreadContext(this_00), lpTlsValue == (LPVOID)0x0)) {
+    this = _Alloc_DefaultHeap__SAPEAX_K_Z(0x1c0);
+    if ((this == (CThreadContext *)0x0) ||
+       (lpTlsValue = (LPVOID)CThreadContext::CThreadContext(this), lpTlsValue == (LPVOID)0x0)) {
       MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,-0x7ff8fff2,0x28,(void *)0x0);
                     /* WARNING: Subroutine does not return */
       ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
     }
     TlsSetValue(CThreadContext::s_dwTlsIndex,lpTlsValue);
   }
+  pCVar1 = (CSurfaceDrawListBrush *)0x0;
   if (*(int *)((longlong)lpTlsValue + 0x144) != 0) {
-    puVar4 = *(undefined8 **)((longlong)lpTlsValue + 0x148);
-    *(undefined8 *)((longlong)lpTlsValue + 0x148) = *puVar4;
+    pCVar1 = *(CSurfaceDrawListBrush **)((longlong)lpTlsValue + 0x148);
+    *(undefined8 *)((longlong)lpTlsValue + 0x148) = *(undefined8 *)pCVar1;
     *(int *)((longlong)lpTlsValue + 0x144) = *(int *)((longlong)lpTlsValue + 0x144) + -1;
   }
-  if (puVar4 == (undefined8 *)0x0) {
+  if (pCVar1 == (CSurfaceDrawListBrush *)0x0) {
     hHeap = GetProcessHeap();
-    puVar4 = HeapAlloc(hHeap,0,0x98);
-    if (puVar4 == (undefined8 *)0x0) {
+    pCVar1 = HeapAlloc(hHeap,0,0x98);
+    if (pCVar1 == (CSurfaceDrawListBrush *)0x0) {
       *param_4 = 0;
-      MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,-0x7ff8fff2,0x3a,(void *)0x0);
-      return -0x7ff8fff2;
+      goto LAB_0;
     }
   }
-  uVar2 = *param_2;
-  uVar1 = *(undefined1 *)(param_2 + 1);
-  puVar4[1] = 0x3f800000;
-  *(undefined4 *)(puVar4 + 2) = 0;
-  *(undefined8 *)((longlong)puVar4 + 0x14) = 0x3f800000;
-  *(undefined4 *)((longlong)puVar4 + 0x1c) = 0;
-  *(undefined1 *)((longlong)puVar4 + 0x34) = 0;
-  *puVar4 = &_vftable_;
-  this = (CMILRefCountImpl *)*param_1;
-  puVar4[7] = this;
-  if (this != (CMILRefCountImpl *)0x0) {
-    if (*(code **)(*(longlong *)this + 8) == CMILRefCountImpl::AddReference) {
-      CMILRefCountImpl::AddReference(this);
-    }
-    else {
-      (**(code **)(*(longlong *)this + 8))();
-    }
+  local_28 = *param_2;
+  local_26 = *(undefined1 *)(param_2 + 1);
+  lVar2 = CSurfaceDrawListBrush
+                    (pCVar1,param_1,&local_28,param_3,in_stack_ffffffffffffffc8 & 0xffffff00);
+  *param_4 = lVar2;
+  if (lVar2 != 0) {
+    return 0;
   }
-  plVar3 = (longlong *)param_1[1];
-  puVar4[8] = plVar3;
-  if (plVar3 != (longlong *)0x0) {
-    (**(code **)(*plVar3 + 8))();
-  }
-  *(undefined1 *)(puVar4 + 9) = *(undefined1 *)(param_1 + 2);
-  *(undefined2 *)(puVar4 + 10) = uVar2;
-  *(undefined1 *)((longlong)puVar4 + 0x52) = uVar1;
-  *(undefined4 *)((longlong)puVar4 + 0x54) = *param_3;
-  *(undefined4 *)(puVar4 + 0xb) = param_3[1];
-  *(undefined4 *)((longlong)puVar4 + 0x5c) = param_3[2];
-  *(undefined4 *)(puVar4 + 0xc) = param_3[3];
-  *(undefined4 *)((longlong)puVar4 + 100) = param_3[4];
-  *(undefined4 *)(puVar4 + 0xd) = param_3[5];
-  *(undefined4 *)((longlong)puVar4 + 0x6c) = param_3[6];
-  *(undefined4 *)(puVar4 + 0xe) = param_3[7];
-  *(undefined4 *)((longlong)puVar4 + 0x74) = param_3[8];
-  *(undefined4 *)(puVar4 + 0x12) = 0;
-  puVar4[0xf] = 0xff7fffffff7fffff;
-  puVar4[0x10] = 0x7f7fffff7f7fffff;
-  *param_4 = puVar4;
-  return 0;
+LAB_0:
+  MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,-0x7ff8fff2,0x3a,(void *)0x0);
+  return -0x7ff8fff2;
 }
 

```


## CBrushDrawListGenerator::GenerateDrawListPrimitive

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,refcount,length,address,called|
|ratio|0.03|
|i_ratio|0.05|
|m_ratio|0.43|
|b_ratio|0.08|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|GenerateDrawListPrimitive|GenerateDrawListPrimitive|
|fullname|CBrushDrawListGenerator::GenerateDrawListPrimitive|CBrushDrawListGenerator::GenerateDrawListPrimitive|
|`refcount`|2|6|
|`length`|10483|2593|
|`called`|<details><summary>Expand for full list:<br>?Alloc@DefaultHeap@@SAPEAX_K@Z<br>API-MS-WIN-CORE-HEAP-L1-1-0.DLL::GetProcessHeap<br>API-MS-WIN-CORE-HEAP-L1-1-0.DLL::HeapFree<br>API-MS-WIN-CORE-PROCESSTHREADS-L1-1-0.DLL::TlsGetValue<br>API-MS-WIN-CORE-PROCESSTHREADS-L1-1-0.DLL::TlsSetValue<br>CBrushDrawListGenerator::ProcessBrushClampEdges_Polygon<br>CBrushRenderingEffectFactory::CreateRenderingEffect<br>CCommonRenderingEffectFactory::CreateRenderingEffect<br>CDrawListBitmap::IsOpaque<br>CDrawListEntryBuilder::Begin<br>CDrawListEntryBuilder::Insert</summary>CMILCOMBaseWeakRefSource<CResourceDeleter>::InternalRelease<br>CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter>::InternalRelease<br>CRectanglesShape::IsRectangles<br>CRectanglesShape::~CRectanglesShape<br>CRegionShape::IsRectangles<br>CRoundedRectangleGeometryData::HasAnyRoundedCorners<br>CShape::CopyShape<br>CShape::D2DCombine<br>CShape::TryOptimizedCombinePaths<br>CThreadContext::CThreadContext<br>CThreadLocalObjectCache<CRectanglesShape,CRectanglesShape>::Free<br>D2DMatrixHelper::Is2DAxisAlignedPreserving<br>Matrix3x3::As3DHomogeneous<br>Matrix3x3::operator*<br>MilInstrumentationCheckHR_MaybeFailFast<br>ModuleFailFastForHRESULT<br>TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::IsEmpty<br>TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::UnionUnsafe<br>__security_check_cookie<br>_guard_dispatch_icall$thunk$10345483385596137414<br>memset<br>std::_Tree<std::_Tmap_traits<CSceneNode*___ptr64,void*___ptr64,std::less<CSceneNode*___ptr64>,std::allocator<std::pair<CSceneNode*___ptr64_const,void*___ptr64>_>,0>_>::~_Tree<std::_Tmap_traits<CSceneNode*___ptr64,void*___ptr64,std::less<CSceneNode*___ptr64>,std::allocator<std::pair<CSceneNode*___ptr64_const,void*___ptr64>_>,0>_><br>std::unique_ptr<CShape,std::default_delete<CShape>_>::~unique_ptr<CShape,std::default_delete<CShape>_></details>|<details><summary>Expand for full list:<br>CBrushDrawListGenerator::ComputeBrushClamp<br>CBrushDrawListGenerator::ProcessBrushClampEdges_Rectangle<br>CDrawListBitmap::IsOpaque<br>CDrawListEntryBuilder::Begin<br>CDrawListEntryBuilder::Insert<br>CEdgeFlagsMap::AddEdgeFlags<br>CShape::IsAxisAlignedRectangle<br>CSurfaceDrawListBrush::ComputeLocalToTextureTransform<br>Matrix3x3::operator*<br>MilInstrumentationCheckHR_MaybeFailFast<br>__security_check_cookie</summary>_guard_dispatch_icall$thunk$10345483385596137414<br>gsl::details::terminate<br>memset<br>operator_delete[]<br>std::_Tree_val<std::_Tree_simple_types<std::pair<unsigned___int64_const_,CCursorState*___ptr64>_>_>::_Erase_tree<std::allocator<std::_Tree_node<std::pair<unsigned___int64_const_,CCursorState*___ptr64>,void*___ptr64>_>_><br>std::default_delete<CShape>::operator()</details>|
|calling|CBrushDrawListGenerator::GenerateDrawListWorker|CBrushDrawListGenerator::GenerateDrawListWorker|
|paramcount|2|2|
|`address`|180136c60|18016d620|
|sig|long __thiscall GenerateDrawListPrimitive(CBrushDrawListGenerator * this, GenerateDrawListParameters * param_1)|long __thiscall GenerateDrawListPrimitive(CBrushDrawListGenerator * this, GenerateDrawListParameters * param_1)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### CBrushDrawListGenerator::GenerateDrawListPrimitive Called Diff


```diff
--- CBrushDrawListGenerator::GenerateDrawListPrimitive called
+++ CBrushDrawListGenerator::GenerateDrawListPrimitive called
@@ -1,8 +1,2 @@
-?Alloc@DefaultHeap@@SAPEAX_K@Z
-API-MS-WIN-CORE-HEAP-L1-1-0.DLL::GetProcessHeap
-API-MS-WIN-CORE-HEAP-L1-1-0.DLL::HeapFree
-API-MS-WIN-CORE-PROCESSTHREADS-L1-1-0.DLL::TlsGetValue
-API-MS-WIN-CORE-PROCESSTHREADS-L1-1-0.DLL::TlsSetValue
-CBrushDrawListGenerator::ProcessBrushClampEdges_Polygon
-CBrushRenderingEffectFactory::CreateRenderingEffect
-CCommonRenderingEffectFactory::CreateRenderingEffect
+CBrushDrawListGenerator::ComputeBrushClamp
+CBrushDrawListGenerator::ProcessBrushClampEdges_Rectangle
@@ -12,13 +6,3 @@
-CMILCOMBaseWeakRefSource<CResourceDeleter>::InternalRelease
-CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter>::InternalRelease
-CRectanglesShape::IsRectangles
-CRectanglesShape::~CRectanglesShape
-CRegionShape::IsRectangles
-CRoundedRectangleGeometryData::HasAnyRoundedCorners
-CShape::CopyShape
-CShape::D2DCombine
-CShape::TryOptimizedCombinePaths
-CThreadContext::CThreadContext
-CThreadLocalObjectCache<CRectanglesShape,CRectanglesShape>::Free
-D2DMatrixHelper::Is2DAxisAlignedPreserving
-Matrix3x3::As3DHomogeneous
+CEdgeFlagsMap::AddEdgeFlags
+CShape::IsAxisAlignedRectangle
+CSurfaceDrawListBrush::ComputeLocalToTextureTransform
@@ -27,3 +10,0 @@
-ModuleFailFastForHRESULT
-TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::IsEmpty
-TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::UnionUnsafe
@@ -31,0 +13 @@
+gsl::details::terminate
@@ -33,2 +15,3 @@
-std::_Tree<std::_Tmap_traits<CSceneNode*___ptr64,void*___ptr64,std::less<CSceneNode*___ptr64>,std::allocator<std::pair<CSceneNode*___ptr64_const,void*___ptr64>_>,0>_>::~_Tree<std::_Tmap_traits<CSceneNode*___ptr64,void*___ptr64,std::less<CSceneNode*___ptr64>,std::allocator<std::pair<CSceneNode*___ptr64_const,void*___ptr64>_>,0>_>
-std::unique_ptr<CShape,std::default_delete<CShape>_>::~unique_ptr<CShape,std::default_delete<CShape>_>
+operator_delete[]
+std::_Tree_val<std::_Tree_simple_types<std::pair<unsigned___int64_const_,CCursorState*___ptr64>_>_>::_Erase_tree<std::allocator<std::_Tree_node<std::pair<unsigned___int64_const_,CCursorState*___ptr64>,void*___ptr64>_>_>
+std::default_delete<CShape>::operator()
```


### CBrushDrawListGenerator::GenerateDrawListPrimitive Diff


```diff
--- CBrushDrawListGenerator::GenerateDrawListPrimitive
+++ CBrushDrawListGenerator::GenerateDrawListPrimitive
@@ -1,1471 +1,470 @@
 
 /* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
    guard_dispatch_icall */
 /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
-/* WARNING: Restarted to delay deadcode elimination for space: stack */
 /* private: long __cdecl CBrushDrawListGenerator::GenerateDrawListPrimitive(struct
    CBrushDrawListGenerator::GenerateDrawListParameters * __ptr64)const __ptr64 */
 
 long __thiscall
 CBrushDrawListGenerator::GenerateDrawListPrimitive
           (CBrushDrawListGenerator *this,GenerateDrawListParameters *param_1)
 
 {
-  GenerateDrawListParameters *pGVar1;
-  float fVar2;
-  float fVar3;
-  float fVar4;
-  float fVar5;
-  float fVar6;
-  float fVar7;
-  float fVar8;
-  float fVar9;
-  float fVar10;
-  CMILCOMBaseWeakRefSource<CResourceDeleter> *pCVar11;
-  CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter> *pCVar12;
-  bool bVar13;
-  char cVar14;
-  bool bVar15;
-  int iVar16;
-  long lVar17;
-  uint uVar18;
-  undefined4 uVar19;
-  undefined4 uVar20;
-  LPVOID pvVar21;
-  HANDLE pvVar22;
-  CThreadContext *pCVar23;
-  undefined8 *puVar24;
-  code *pcVar25;
-  uint uVar26;
-  CMILMatrix *pCVar27;
-  longlong *plVar28;
-  longlong lVar29;
-  GenerateDrawListParameters *pGVar30;
-  CRenderingEffect *pCVar31;
-  undefined4 uVar32;
-  uint uVar33;
-  uint uVar34;
-  CRectanglesShape *pCVar35;
-  CRectanglesShape *pCVar36;
-  CRectanglesShape *pCVar37;
-  longlong *plVar38;
-  ulonglong uVar39;
-  longlong lVar40;
-  Enum EVar41;
-  uint *puVar42;
-  uint *puVar43;
-  undefined4 uVar44;
-  CRectanglesShape *pCVar45;
-  CRectanglesShape *pCVar46;
-  CRectanglesShape *pCVar47;
-  undefined8 *puVar48;
-  CRectanglesShape *pCVar49;
-  float fVar50;
-  float fVar51;
-  float fVar52;
-  float fVar53;
-  float fVar54;
-  float fVar55;
-  float fVar56;
-  float fVar57;
-  float fVar58;
-  float fVar59;
-  float fVar60;
-  undefined8 unaff_retaddr;
-  undefined1 auStackY_498 [32];
-  CShape *local_460;
-  undefined8 local_458;
-  CRectanglesShape *local_448;
-  longlong local_440;
-  undefined8 local_438;
-  float local_418 [2];
-  CRenderingEffect *local_410;
-  CRectanglesShape *local_408;
-  float local_400;
-  float local_3fc;
-  undefined4 local_3f8;
-  undefined4 uStack_3f4;
-  longlong lStack_3f0;
-  undefined4 local_3e8;
-  undefined4 local_3e4;
-  undefined8 local_3e0;
-  undefined8 uStack_3d8;
-  undefined8 local_3d0;
-  undefined4 local_3c8;
-  undefined4 uStack_3c4;
-  undefined4 uStack_3c0;
-  undefined8 uStack_3bc;
-  undefined8 local_3b0;
-  undefined8 uStack_3a8;
-  GenerateDrawListParameters *local_3a0;
-  ulonglong uStack_398;
-  float local_390;
-  float local_38c;
-  float local_388;
-  CBrushDrawListGenerator *local_380;
-  undefined8 local_378;
-  longlong *local_370;
-  CShape *local_368;
-  char local_360;
-  GenerateDrawListParameters *local_358;
-  undefined8 local_348;
-  undefined8 uStack_340;
-  undefined8 local_338;
-  undefined8 uStack_330;
-  undefined8 local_328;
-  undefined8 uStack_320;
-  undefined8 local_318;
-  undefined8 uStack_310;
-  undefined4 local_308;
-  CRectanglesShape *local_2b0;
-  GenerateDrawListParameters *pGStack_2a8;
-  undefined8 uStack_2a0;
-  undefined8 *local_298;
-  CRectanglesShape *local_290;
-  float *pfStack_288;
-  undefined8 local_278;
-  undefined8 uStack_270;
-  undefined **local_268;
-  CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter> *local_260;
-  CRectanglesShape *local_258;
-  CMILCOMBaseWeakRefSource<CResourceDeleter> **local_250;
-  CMILCOMBaseWeakRefSource<CResourceDeleter> **local_248;
-  CRectanglesShape *local_240;
-  GenerateDrawListParameters *pGStack_238;
-  CMILCOMBaseWeakRefSource<CResourceDeleter> *local_230;
+  float fVar1;
+  CRenderingEffect *pCVar2;
+  CSurfaceDrawListBrush *this_00;
+  longlong *plVar3;
+  undefined4 uVar4;
+  undefined4 uVar5;
+  undefined8 uVar6;
+  undefined8 *puVar7;
+  char cVar8;
+  bool bVar9;
+  bool bVar10;
+  int iVar11;
+  long lVar12;
+  undefined4 *puVar13;
+  longlong *plVar14;
+  ulonglong *puVar15;
+  void *pvVar16;
+  CDrawListEntryBuilder *this_01;
+  CBrushDrawListGenerator *pCVar17;
+  undefined8 *puVar18;
+  ulonglong uVar19;
+  uint uVar20;
+  ulonglong uVar21;
+  D2D1_EDGE_FLAGS DVar22;
+  Matrix3x3 *pMVar23;
+  longlong lVar24;
+  undefined4 uVar25;
+  undefined1 auStackY_2b8 [32];
+  CRenderingEffect *local_288;
+  uint local_280;
+  undefined4 uStack_27c;
+  undefined4 local_278;
+  undefined4 local_274;
+  GenerateDrawListParameters *local_270;
+  uint local_268;
+  GenerateDrawListParameters local_264;
+  GenerateDrawListParameters local_263;
+  undefined2 local_262;
+  CRenderingEffect **local_260;
+  CRenderingEffect *pCStack_258;
+  ulonglong local_250;
+  longlong lStack_248;
+  undefined4 local_240;
+  undefined8 *local_238;
+  GenerateDrawListParameters *pGStack_230;
   undefined8 local_228;
-  undefined8 uStack_220;
-  undefined8 local_218;
+  undefined4 local_220;
+  undefined4 local_21c;
+  undefined4 local_218;
+  undefined4 local_214;
   undefined4 local_210;
   undefined4 local_20c;
-  longlong local_208 [3];
-  ulonglong uStack_1f0;
-  uint local_1e8 [8];
-  float local_1c8 [2];
-  undefined8 uStack_1c0;
-  float afStack_1b8 [2];
-  undefined8 uStack_1b0;
-  float afStack_1a8 [5];
-  undefined1 auStack_194 [172];
-  ulonglong local_e8;
+  undefined4 local_208;
+  undefined4 local_204;
+  undefined4 local_200;
+  Matrix3x3 local_1fc [36];
+  ulonglong local_1d8;
+  ulonglong uStack_1d0;
+  undefined8 uStack_1c8;
+  undefined8 *local_1c0;
+  ulonglong local_1b8;
+  GenerateDrawListParameters *pGStack_1b0;
+  undefined8 local_1a8;
+  undefined8 uStack_1a0;
+  ulonglong local_198;
+  GenerateDrawListParameters *pGStack_190;
+  CBrushDrawListGenerator *local_188;
+  uint *puStack_180;
+  undefined8 local_178;
+  ulonglong uStack_170;
+  GenerateDrawListParameters local_168 [224];
+  ulonglong local_88;
   
-  local_e8 = __security_cookie ^ (ulonglong)auStackY_498;
-  bVar13 = false;
-  local_380 = this;
-  local_358 = param_1;
+  local_88 = __security_cookie ^ (ulonglong)auStackY_2b8;
+  uVar19 = 0;
+  local_1a8 = this;
   if (*(longlong *)(*(longlong *)(param_1 + 8) + 0x50) == 0) {
-    local_208[0] = 0;
-    local_208[1] = 0;
-    local_208[2] = 0;
-    uStack_1f0 = 0;
-    iVar16 = (**(code **)(**(longlong **)(param_1 + 0x10) + 8))();
-    if ((iVar16 != 1) || (1.1920929e-06 <= ABS(*(float *)(this + 0x44) - 1.0))) {
-      bVar15 = false;
+    local_188 = (CBrushDrawListGenerator *)0x0;
+    puStack_180 = (uint *)0x0;
+    local_178 = 0;
+    uStack_170 = 0;
+    iVar11 = (**(code **)(**(longlong **)(param_1 + 0x10) + 8))();
+    if ((iVar11 != 1) || (1.1920929e-06 <= ABS(*(float *)(this + 0x44) - 1.0))) {
+      bVar9 = false;
     }
     else {
-      bVar15 = true;
-    }
-    uVar34 = 0;
-    plVar38 = (longlong *)0x0;
+      bVar9 = true;
+    }
+    bVar10 = false;
+    local_280 = 0;
     if (*(int *)(param_1 + 0xb4) != 0) {
       do {
-        plVar28 = *(longlong **)(param_1 + (longlong)plVar38 * 8 + 0x88);
-        if (plVar28 != (longlong *)0x0) {
-          pcVar25 = *(code **)(*plVar28 + 8);
-          if ((pcVar25 == CGeometryOnlyDrawListBrush::IsOfType) ||
-             ((pcVar25 != CSurfaceDrawListBrush::IsOfType &&
-              (cVar14 = (*pcVar25)(plVar28,2), cVar14 == '\0')))) {
-            if ((*(code **)(*plVar28 + 8) == CGeometryOnlyDrawListBrush::IsOfType) ||
-               (cVar14 = (**(code **)(*plVar28 + 8))(plVar28,1), cVar14 == '\0')) {
-              plVar28 = (longlong *)0x0;
+        pCVar17 = *(CBrushDrawListGenerator **)(param_1 + uVar19 * 8 + 0x88);
+        if (pCVar17 != (CBrushDrawListGenerator *)0x0) {
+          cVar8 = (**(code **)(*(longlong *)pCVar17 + 8))(pCVar17,2);
+          if (cVar8 == '\0') {
+            cVar8 = (**(code **)(*(longlong *)pCVar17 + 8))(pCVar17,1);
+            if (cVar8 == '\0') {
+              pCVar17 = (CBrushDrawListGenerator *)0x0;
             }
           }
           else {
-            if ((bVar15) &&
-               (bVar15 = CDrawListBitmap::IsOpaque((CDrawListBitmap *)(plVar28 + 7)), bVar15)) {
-              bVar15 = true;
+            if ((bVar9) &&
+               (bVar9 = CDrawListBitmap::IsOpaque((CDrawListBitmap *)(pCVar17 + 0x38)), bVar9)) {
+              bVar9 = true;
             }
             else {
-              bVar15 = false;
-            }
-            if ((bVar13) || (*(char *)((longlong)plVar28 + 0x92) != '\0')) {
-              bVar13 = true;
-            }
-          }
-        }
-        uVar33 = (int)plVar38 + 1;
-        local_208[(longlong)plVar38] = (longlong)plVar28;
-        uVar34 = *(uint *)(param_1 + 0xb4);
-        plVar38 = (longlong *)(ulonglong)uVar33;
-        this = local_380;
-      } while (uVar33 < uVar34);
-    }
-    local_3a0 = param_1 + 0x18;
-    local_3b0 = (CRectanglesShape *)CONCAT44(*(undefined4 *)(param_1 + 0x10c),uVar34);
-    uStack_398 = (ulonglong)
-                 CONCAT24(*(undefined2 *)(param_1 + 0x114),
-                          (uint)bVar15 | -(uint)bVar13 & 0x10 | *(uint *)(this + 0x34));
-    uStack_3a8 = (float *)CONCAT44(*(undefined4 *)(param_1 + 0x108),*(undefined4 *)(param_1 + 0x110)
-                                  );
-    uStack_270 = (GenerateDrawListParameters *)local_208;
-    pcVar25 = *(code **)(**(longlong **)(param_1 + 0x10) + 0x10);
-    local_410 = (CRenderingEffect *)0x0;
-    local_278 = (CRectanglesShape *)(ulonglong)uVar34;
-    if (pcVar25 == CCommonRenderingEffectFactory::CreateRenderingEffect) {
-      iVar16 = CCommonRenderingEffectFactory::CreateRenderingEffect();
-    }
-    else if (pcVar25 == CBrushRenderingEffectFactory::CreateRenderingEffect) {
-      iVar16 = CBrushRenderingEffectFactory::CreateRenderingEffect();
-    }
-    else {
-      iVar16 = (*pcVar25)();
-    }
-    if (iVar16 < 0) {
-      MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,iVar16,0x1f0,(void *)0x0);
-      if (local_410 == (CRenderingEffect *)0x0) {
-        return iVar16;
-      }
-      (**(code **)(*(longlong *)local_410 + 8))();
-      return iVar16;
+              bVar9 = false;
+            }
+            if ((bVar10) || (pCVar17[0x92] != (CBrushDrawListGenerator)0x0)) {
+              bVar10 = true;
+            }
+          }
+        }
+        local_280 = *(uint *)(param_1 + 0xb4);
+        uVar20 = (int)uVar19 + 1;
+        (&local_188)[uVar19] = pCVar17;
+        uVar19 = (ulonglong)uVar20;
+      } while (uVar20 < local_280);
+    }
+    local_238 = (undefined8 *)(ulonglong)local_280;
+    local_274 = *(undefined4 *)(param_1 + 0x108);
+    uStack_27c = *(undefined4 *)(param_1 + 0x10c);
+    local_278 = *(undefined4 *)(param_1 + 0x110);
+    local_268 = -(uint)bVar10 & 0x10 | *(uint *)(this + 0x34);
+    local_270 = param_1 + 0x18;
+    local_263 = param_1[0x115];
+    local_264 = param_1[0x114];
+    local_262 = 0;
+    if (bVar9) {
+      local_268 = local_268 | 1;
+    }
+    pGStack_230 = (GenerateDrawListParameters *)&local_188;
+    local_198 = (ulonglong)local_280;
+    local_288 = (CRenderingEffect *)0x0;
+    pGStack_190 = pGStack_230;
+    iVar11 = (**(code **)(**(longlong **)(param_1 + 0x10) + 0x10))();
+    if (iVar11 < 0) {
+      MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,iVar11,0x1f6,(void *)0x0);
+      if (local_288 == (CRenderingEffect *)0x0) {
+        return iVar11;
+      }
+      (**(code **)(*(longlong *)local_288 + 8))();
+      return iVar11;
     }
     CDrawListEntryBuilder::Begin
               (*(CDrawListEntryBuilder **)(param_1 + 8),
-               (DrawListEntryBuilderSetupParams *)&local_3b0,local_410);
-    if (local_410 != (CRenderingEffect *)0x0) {
-      (**(code **)(*(longlong *)local_410 + 8))();
-    }
-  }
-  pCVar47 = (CRectanglesShape *)0x0;
-  pCVar46 = (CRectanglesShape *)(ulonglong)*(uint *)(param_1 + 0xb0);
-  uStack_270 = param_1 + 0x88;
-  local_418[0] = *(float *)(param_1 + 0xbc);
-  local_410 = (CRenderingEffect *)0x0;
-  local_278 = pCVar46;
-  if ((uStack_270 == (GenerateDrawListParameters *)0x0) && (pCVar46 != (CRectanglesShape *)0x0))
-  goto LAB_0;
-  local_408 = (CRectanglesShape *)0x0;
-  pCVar49 = pCVar47;
-  local_228 = pCVar46;
-  uStack_220 = uStack_270;
-  fVar53 = local_418[0];
-  while( true ) {
-    pCVar45 = local_408;
-    lVar17 = 0;
-    EVar41 = 1;
-    if (pCVar46 <= pCVar49) break;
-    lVar29 = *(longlong *)(uStack_220 + (longlong)pCVar49 * 8);
-    if ((lVar29 != 0) && (*(char *)(lVar29 + 0x34) != '\0')) {
-      local_258 = (CRectanglesShape *)&local_240;
-      local_260 = (CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter> *)0x0;
-      local_268 = &CRectanglesShape::_vftable_;
-      local_248 = &local_230;
-      local_250 = &local_230;
-      local_230 = (CMILCOMBaseWeakRefSource<CResourceDeleter> *)0x0;
-      local_278 = *(CRectanglesShape **)(lVar29 + 0x20);
-      uStack_270 = *(GenerateDrawListParameters **)(lVar29 + 0x28);
-      local_308 = 0;
-      local_240 = local_278;
-      pGStack_238 = uStack_270;
-      if (((uint)fVar53 & 1 << ((byte)pCVar49 & 0x1f)) == 0) {
-        local_338 = *(undefined8 *)(lVar29 + 0x10);
-        local_3e8 = *(undefined4 *)(lVar29 + 0x10);
-        local_3e4 = *(undefined4 *)(lVar29 + 0x14);
-        local_348 = *(undefined8 *)(lVar29 + 8);
-        local_3f8 = *(undefined4 *)(lVar29 + 8);
-        uStack_3f4 = *(undefined4 *)(lVar29 + 0xc);
-        local_318 = *(undefined8 *)(lVar29 + 0x18);
-        local_3c8 = *(undefined4 *)(lVar29 + 0x18);
-        uStack_3c4 = *(undefined4 *)(lVar29 + 0x1c);
-        uStack_3d8 = 0;
-        local_3d0 = 0x3f800000;
-        uStack_3bc._4_4_ = 0x2808;
-        local_3e0 = 0;
-        uStack_330 = 0;
-        lStack_3f0 = 0;
-        uStack_340 = 0;
-        local_328 = 0;
-        uStack_320 = 0x3f800000;
-        uStack_3c0 = 0;
-        uStack_3bc = 0x28083f800000;
-        uStack_310 = 0x3f80000000000000;
-        local_308 = uStack_3bc._4_4_;
-      }
-      else {
-        local_3f8 = *(undefined4 *)(lVar29 + 8);
-        uStack_3f4 = *(undefined4 *)(lVar29 + 0xc);
-        local_3e8 = *(undefined4 *)(lVar29 + 0x14);
-        local_3e0 = *(undefined8 *)(lVar29 + 0x18);
-        lStack_3f0 = (ulonglong)*(uint *)(lVar29 + 0x10) << 0x20;
-        local_3e4 = 0;
-        uStack_3d8 = CONCAT44(uStack_3d8._4_4_,0x3f800000);
-        Matrix3x3::operator*((Matrix3x3 *)&local_3f8,(Matrix3x3 *)&local_448);
-        puVar24 = (undefined8 *)Matrix3x3::As3DHomogeneous((Matrix3x3 *)&local_448);
-        local_348 = *puVar24;
-        uStack_340 = puVar24[1];
-        local_338 = puVar24[2];
-        uStack_330 = puVar24[3];
-        local_328 = puVar24[4];
-        uStack_320 = puVar24[5];
-        local_318 = puVar24[6];
-        uStack_310 = puVar24[7];
-        local_308 = *(undefined4 *)(puVar24 + 8);
-      }
-      pCVar37 = local_408;
-      pCVar45 = pCVar47;
-      if (local_408 == (CRectanglesShape *)0x0) {
-        local_460 = (CShape *)0x0;
-        local_458 = CONCAT71(local_458._1_7_,1);
-        lVar17 = CShape::CopyShape((CShape *)&local_268,(CMILMatrix *)&local_348,&local_460);
-        pCVar37 = local_408;
-        if (((char)local_458 != '\0') &&
-           (local_408 = (CRectanglesShape *)local_460, pCVar37 != (CRectanglesShape *)0x0)) {
-          if ((code *)**(undefined8 **)pCVar37 == CRectanglesShape::_vector_deleting_destructor_) {
-            *(undefined ***)pCVar37 = &CRectanglesShape::_vftable_;
-            pCVar35 = (CRectanglesShape *)
-                      (*(longlong *)(pCVar37 + 0x18) - *(longlong *)(pCVar37 + 0x10) >> 4);
-            if (pCVar35 != (CRectanglesShape *)0x0) {
-              *(longlong *)(pCVar37 + 0x18) =
-                   *(longlong *)(pCVar37 + 0x18) + (longlong)pCVar35 * -0x10;
-              local_458 = 0;
-              local_460 = (CShape *)pCVar35;
-            }
-            pCVar11 = *(CMILCOMBaseWeakRefSource<CResourceDeleter> **)(pCVar37 + 0x38);
-            if (pCVar11 != (CMILCOMBaseWeakRefSource<CResourceDeleter> *)0x0) {
-              if (*(code **)(*(longlong *)pCVar11 + 0x10) ==
-                  CMILCOMBaseWeakRefSource<CResourceDeleter>::InternalRelease) {
-                CMILCOMBaseWeakRefSource<CResourceDeleter>::InternalRelease(pCVar11);
-              }
-              else {
-                (**(code **)(*(longlong *)pCVar11 + 0x10))();
-              }
-              *(longlong *)(pCVar37 + 0x38) = 0;
-            }
-            pCVar35 = *(CRectanglesShape **)(pCVar37 + 0x10);
-            pCVar36 = (CRectanglesShape *)(*(longlong *)(pCVar37 + 0x18) - (longlong)pCVar35 >> 4);
-            if (pCVar36 != (CRectanglesShape *)0x0) {
-              *(longlong *)(pCVar37 + 0x18) =
-                   *(longlong *)(pCVar37 + 0x18) + (longlong)pCVar36 * -0x10;
-              local_458 = 0;
-              local_460 = (CShape *)pCVar36;
-            }
-            *(longlong *)(pCVar37 + 0x10) = 0;
-            if ((pCVar35 != pCVar37 + 0x28) && (pCVar35 != (CRectanglesShape *)0x0)) {
-              pvVar22 = GetProcessHeap();
-              HeapFree(pvVar22,0,pCVar35);
-            }
-            pCVar12 = *(CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter> **)(pCVar37 + 8);
-            if (pCVar12 != (CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter> *)0x0) {
-              *(longlong *)(pCVar37 + 8) = 0;
-              if (*(code **)(*(longlong *)pCVar12 + 0x10) ==
-                  CMILCOMBaseT<ID2D1GeometrySink,ID2D1GeometrySink,CMilObjectDeleter>::Release) {
-                CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter>::InternalRelease(pCVar12);
-              }
-              else {
-                (**(code **)(*(longlong *)pCVar12 + 0x10))();
-              }
-            }
-            pvVar21 = TlsGetValue(CThreadContext::s_dwTlsIndex);
-            if (pvVar21 == (LPVOID)0x0) {
-              pCVar23 = _Alloc_DefaultHeap__SAPEAX_K_Z(0x1c0);
-              if ((pCVar23 == (CThreadContext *)0x0) ||
-                 (pvVar21 = (LPVOID)CThreadContext::CThreadContext(pCVar23), pvVar21 == (LPVOID)0x0)
-                 ) {
-                MilInstrumentationCheckHR_MaybeFailFast
-                          (0x14,(long *)0x0,0,-0x7ff8fff2,0x28,(void *)0x0);
-                    /* WARNING: Subroutine does not return */
-                ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
-              }
-              TlsSetValue(CThreadContext::s_dwTlsIndex,pvVar21);
-            }
-            if (*(uint *)((longlong)pvVar21 + 0x34) < *(uint *)((longlong)pvVar21 + 0x30)) {
-              *(longlong *)pCVar37 = *(longlong *)((longlong)pvVar21 + 0x38);
-              *(int *)((longlong)pvVar21 + 0x34) = *(int *)((longlong)pvVar21 + 0x34) + 1;
-              *(CRectanglesShape **)((longlong)pvVar21 + 0x38) = pCVar37;
-            }
-            else {
-              pvVar22 = GetProcessHeap();
-              HeapFree(pvVar22,0,pCVar37);
-            }
-          }
-          else {
-            (*(code *)**(undefined8 **)pCVar37)(pCVar37);
-          }
-        }
-        if (lVar17 < 0) {
-          MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar17,0x5f,(void *)0x0);
-          CRectanglesShape::~CRectanglesShape((CRectanglesShape *)&local_268);
-          goto LAB_1;
-        }
-      }
-      else {
-        local_370 = &local_218;
-        local_218 = (CRectanglesShape *)0x0;
-        pCVar27 = (CMILMatrix *)0x0;
-        local_368 = (CShape *)0x0;
-        local_360 = '\x01';
-        lVar17 = CShape::TryOptimizedCombinePaths
-                           ((CShape *)local_408,(CMILMatrix *)0x0,(CShape *)&local_268,
-                            (CMILMatrix *)&local_348,EVar41,&local_368);
-        if (lVar17 < 0) {
-          uVar34 = 0x1c8;
-LAB_2:
-          MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar17,uVar34,(void *)0x0);
-        }
-        else if ((local_368 == (CShape *)0x0) &&
-                (lVar17 = CShape::D2DCombine((CShape *)pCVar37,pCVar27,(CShape *)&local_268,
-                                             (CMILMatrix *)&local_348,1,&local_368), lVar17 < 0)) {
-          uVar34 = 0x1d3;
-          goto LAB_2;
-        }
-        if (local_360 != '\0') {
-          puVar24 = (undefined8 *)*local_370;
-          *local_370 = (longlong)local_368;
-          if (puVar24 != (undefined8 *)0x0) {
-            if (*(code **)*puVar24 == CRectanglesShape::_vector_deleting_destructor_) {
-              *puVar24 = &CRectanglesShape::_vftable_;
-              pCVar37 = (CRectanglesShape *)((longlong)(puVar24[3] - puVar24[2]) >> 4);
-              if (pCVar37 != (CRectanglesShape *)0x0) {
-                puVar24[3] = puVar24[3] + (longlong)pCVar37 * -0x10;
-                local_458 = 0;
-                local_460 = (CShape *)pCVar37;
-              }
-              pCVar11 = (CMILCOMBaseWeakRefSource<CResourceDeleter> *)puVar24[7];
-              if (pCVar11 != (CMILCOMBaseWeakRefSource<CResourceDeleter> *)0x0) {
-                if (*(code **)(*(longlong *)pCVar11 + 0x10) ==
-                    CMILCOMBaseWeakRefSource<CResourceDeleter>::InternalRelease) {
-                  CMILCOMBaseWeakRefSource<CResourceDeleter>::InternalRelease(pCVar11);
-                }
-                else {
-                  (**(code **)(*(longlong *)pCVar11 + 0x10))();
-                }
-                puVar24[7] = 0;
-              }
-              puVar48 = (undefined8 *)puVar24[2];
-              pCVar37 = (CRectanglesShape *)(puVar24[3] - (longlong)puVar48 >> 4);
-              if (pCVar37 != (CRectanglesShape *)0x0) {
-                puVar24[3] = puVar24[3] + (longlong)pCVar37 * -0x10;
-                local_458 = 0;
-                local_460 = (CShape *)pCVar37;
-              }
-              puVar24[2] = 0;
-              if ((puVar48 != puVar24 + 5) && (puVar48 != (undefined8 *)0x0)) {
-                pvVar22 = GetProcessHeap();
-                HeapFree(pvVar22,0,puVar48);
-              }
-              pCVar12 = (CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter> *)puVar24[1];
-              if (pCVar12 != (CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter> *)0x0) {
-                puVar24[1] = 0;
-                if (*(code **)(*(longlong *)pCVar12 + 0x10) ==
-                    CMILCOMBaseT<ID2D1GeometrySink,ID2D1GeometrySink,CMilObjectDeleter>::Release) {
-                  CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter>::InternalRelease(pCVar12);
-                }
-                else {
-                  (**(code **)(*(longlong *)pCVar12 + 0x10))();
-                }
-              }
-              pvVar21 = TlsGetValue(CThreadContext::s_dwTlsIndex);
-              if (pvVar21 == (LPVOID)0x0) {
-                pCVar23 = _Alloc_DefaultHeap__SAPEAX_K_Z(0x1c0);
-                if ((pCVar23 == (CThreadContext *)0x0) ||
-                   (pvVar21 = (LPVOID)CThreadContext::CThreadContext(pCVar23),
-                   pvVar21 == (LPVOID)0x0)) {
-                  MilInstrumentationCheckHR_MaybeFailFast
-                            (0x14,(long *)0x0,0,-0x7ff8fff2,0x28,(void *)0x0);
-                    /* WARNING: Subroutine does not return */
-                  ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
-                }
-                TlsSetValue(CThreadContext::s_dwTlsIndex,pvVar21);
-              }
-              if (*(uint *)((longlong)pvVar21 + 0x34) < *(uint *)((longlong)pvVar21 + 0x30)) {
-                *puVar24 = *(undefined8 *)((longlong)pvVar21 + 0x38);
-                *(int *)((longlong)pvVar21 + 0x34) = *(int *)((longlong)pvVar21 + 0x34) + 1;
-                *(undefined8 **)((longlong)pvVar21 + 0x38) = puVar24;
-              }
-              else {
-                pvVar22 = GetProcessHeap();
-                HeapFree(pvVar22,0,puVar24);
-              }
-            }
-            else {
-              (**(code **)*puVar24)(puVar24);
-            }
-          }
-        }
-        pCVar35 = local_218;
-        pCVar37 = local_408;
-        if (lVar17 < 0) {
-          MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar17,0x6a,(void *)0x0);
-          std::unique_ptr<CShape,std::default_delete<CShape>_>::
-          ~unique_ptr<CShape,std::default_delete<CShape>_>
-                    ((unique_ptr<CShape,std::default_delete<CShape>_> *)&local_218);
-          CRectanglesShape::~CRectanglesShape((CRectanglesShape *)&local_268);
-          goto LAB_1;
-        }
-        local_408 = local_218;
-        local_218 = (CRectanglesShape *)0x0;
-        if (pCVar37 != (CRectanglesShape *)0x0) {
-          if ((code *)**(undefined8 **)pCVar37 == CRectanglesShape::_vector_deleting_destructor_) {
-            CRectanglesShape::~CRectanglesShape(pCVar37);
-            CThreadLocalObjectCache<CRectanglesShape,CRectanglesShape>::Free(pCVar37);
-          }
-          else {
-            (*(code *)**(undefined8 **)pCVar37)();
-          }
-          pCVar45 = local_218;
-          if (local_218 != (CRectanglesShape *)0x0) {
-            if ((code *)**(undefined8 **)local_218 == CRectanglesShape::_vector_deleting_destructor_
-               ) {
-              *(undefined ***)local_218 = &CRectanglesShape::_vftable_;
-              pCVar37 = (CRectanglesShape *)
-                        (*(longlong *)(local_218 + 0x18) - *(longlong *)(local_218 + 0x10) >> 4);
-              if (pCVar37 != (CRectanglesShape *)0x0) {
-                *(longlong *)(local_218 + 0x18) =
-                     *(longlong *)(local_218 + 0x18) + (longlong)pCVar37 * -0x10;
-                local_458 = 0;
-                local_460 = (CShape *)pCVar37;
-              }
-              pCVar11 = *(CMILCOMBaseWeakRefSource<CResourceDeleter> **)(local_218 + 0x38);
-              if (pCVar11 != (CMILCOMBaseWeakRefSource<CResourceDeleter> *)0x0) {
-                if (*(code **)(*(longlong *)pCVar11 + 0x10) ==
-                    CMILCOMBaseWeakRefSource<CResourceDeleter>::InternalRelease) {
-                  CMILCOMBaseWeakRefSource<CResourceDeleter>::InternalRelease(pCVar11);
-                }
-                else {
-                  (**(code **)(*(longlong *)pCVar11 + 0x10))();
-                }
-                *(longlong *)(pCVar45 + 0x38) = 0;
-              }
-              pCVar37 = *(CRectanglesShape **)(pCVar45 + 0x10);
-              lVar29 = *(longlong *)(pCVar45 + 0x18) - (longlong)pCVar37 >> 4;
-              if (lVar29 != 0) {
-                *(longlong *)(pCVar45 + 0x18) = *(longlong *)(pCVar45 + 0x18) + lVar29 * -0x10;
-                local_438 = 0;
-                local_448 = pCVar37;
-                local_440 = lVar29;
-              }
-              *(longlong *)(pCVar45 + 0x10) = 0;
-              if ((pCVar37 != pCVar45 + 0x28) && (pCVar37 != (CRectanglesShape *)0x0)) {
-                pvVar22 = GetProcessHeap();
-                HeapFree(pvVar22,0,pCVar37);
-              }
-              pCVar12 = *(CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter> **)(pCVar45 + 8);
-              if (pCVar12 != (CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter> *)0x0) {
-                *(longlong *)(pCVar45 + 8) = 0;
-                if (*(code **)(*(longlong *)pCVar12 + 0x10) ==
-                    CMILCOMBaseT<ID2D1GeometrySink,ID2D1GeometrySink,CMilObjectDeleter>::Release) {
-                  CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter>::InternalRelease(pCVar12);
-                }
-                else {
-                  (**(code **)(*(longlong *)pCVar12 + 0x10))();
-                }
-              }
-              pvVar21 = TlsGetValue(CThreadContext::s_dwTlsIndex);
-              if (pvVar21 == (LPVOID)0x0) {
-                pCVar23 = _Alloc_DefaultHeap__SAPEAX_K_Z(0x1c0);
-                if ((pCVar23 == (CThreadContext *)0x0) ||
-                   (pvVar21 = (LPVOID)CThreadContext::CThreadContext(pCVar23),
-                   pvVar21 == (LPVOID)0x0)) {
-                  MilInstrumentationCheckHR_MaybeFailFast
-                            (0x14,(long *)0x0,0,-0x7ff8fff2,0x28,(void *)0x0);
-                    /* WARNING: Subroutine does not return */
-                  ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
-                }
-                TlsSetValue(CThreadContext::s_dwTlsIndex,pvVar21);
-              }
-              if (*(uint *)((longlong)pvVar21 + 0x34) < *(uint *)((longlong)pvVar21 + 0x30)) {
-                *(longlong *)pCVar45 = *(longlong *)((longlong)pvVar21 + 0x38);
-                *(int *)((longlong)pvVar21 + 0x34) = *(int *)((longlong)pvVar21 + 0x34) + 1;
-                *(CRectanglesShape **)((longlong)pvVar21 + 0x38) = pCVar45;
-              }
-              else {
-                pvVar22 = GetProcessHeap();
-                HeapFree(pvVar22,0,pCVar45);
-              }
-            }
-            else {
-              (*(code *)**(undefined8 **)local_218)(local_218);
-            }
-          }
-        }
-      }
-      local_268 = &CRectanglesShape::_vftable_;
-      lVar29 = (longlong)local_250 - (longlong)local_258 >> 4;
-      if (lVar29 != 0) {
-        local_250 = local_250 + lVar29 * -2;
-        local_448 = local_258;
-        local_438 = 0;
-        local_440 = lVar29;
-      }
-      if (local_230 != (CMILCOMBaseWeakRefSource<CResourceDeleter> *)0x0) {
-        if (*(code **)(*(longlong *)local_230 + 0x10) ==
-            CMILCOMBaseWeakRefSource<CResourceDeleter>::InternalRelease) {
-          CMILCOMBaseWeakRefSource<CResourceDeleter>::InternalRelease(local_230);
-        }
-        else {
-          (**(code **)(*(longlong *)local_230 + 0x10))();
-        }
-        local_230 = (CMILCOMBaseWeakRefSource<CResourceDeleter> *)0x0;
-      }
-      pCVar45 = local_258;
-      lVar29 = (longlong)local_250 - (longlong)local_258 >> 4;
-      if (lVar29 != 0) {
-        local_250 = local_250 + lVar29 * -2;
-        local_448 = local_258;
-        local_438 = 0;
-        local_440 = lVar29;
-      }
-      local_258 = (CRectanglesShape *)0x0;
-      if ((pCVar45 != (CRectanglesShape *)&local_240) && (pCVar45 != (CRectanglesShape *)0x0)) {
-        pvVar22 = GetProcessHeap();
-        HeapFree(pvVar22,0,pCVar45);
-      }
-      pCVar12 = local_260;
-      fVar53 = local_418[0];
-      if (local_260 != (CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter> *)0x0) {
-        local_260 = (CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter> *)0x0;
-        pcVar25 = *(code **)(*(longlong *)pCVar12 + 0x10);
-        if (pcVar25 == CMILCOMBaseT<ID2D1GeometrySink,ID2D1GeometrySink,CMilObjectDeleter>::Release)
-        {
-          CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter>::InternalRelease(pCVar12);
-          fVar53 = local_418[0];
-        }
-        else {
-          (*pcVar25)();
-          fVar53 = local_418[0];
-        }
-      }
-    }
-    pCVar49 = pCVar49 + 1;
-  }
-  local_408 = (CRectanglesShape *)0x0;
-LAB_1:
-  pCVar46 = local_408;
-  if (local_408 != (CRectanglesShape *)0x0) {
-    if ((code *)**(undefined8 **)local_408 == CRectanglesShape::_vector_deleting_destructor_) {
-      *(undefined ***)local_408 = &CRectanglesShape::_vftable_;
-      lVar29 = *(longlong *)(local_408 + 0x18) - *(longlong *)(local_408 + 0x10) >> 4;
-      if (lVar29 != 0) {
-        local_438 = 0;
-        *(longlong *)(local_408 + 0x18) = *(longlong *)(local_408 + 0x18) + lVar29 * -0x10;
-      }
-      pCVar11 = *(CMILCOMBaseWeakRefSource<CResourceDeleter> **)(local_408 + 0x38);
-      if (pCVar11 != (CMILCOMBaseWeakRefSource<CResourceDeleter> *)0x0) {
-        if (*(code **)(*(longlong *)pCVar11 + 0x10) ==
-            CMILCOMBaseWeakRefSource<CResourceDeleter>::InternalRelease) {
-          CMILCOMBaseWeakRefSource<CResourceDeleter>::InternalRelease(pCVar11);
-        }
-        else {
-          (**(code **)(*(longlong *)pCVar11 + 0x10))();
-        }
-        *(longlong *)(pCVar46 + 0x38) = 0;
-      }
-      pCVar47 = *(CRectanglesShape **)(pCVar46 + 0x10);
-      lVar29 = *(longlong *)(pCVar46 + 0x18) - (longlong)pCVar47 >> 4;
-      if (lVar29 != 0) {
-        *(longlong *)(pCVar46 + 0x18) = *(longlong *)(pCVar46 + 0x18) + lVar29 * -0x10;
-        local_438 = 0;
-      }
-      *(longlong *)(pCVar46 + 0x10) = 0;
-      if ((pCVar47 != pCVar46 + 0x28) && (pCVar47 != (CRectanglesShape *)0x0)) {
-        pvVar22 = GetProcessHeap();
-        HeapFree(pvVar22,0,pCVar47);
-      }
-      pCVar12 = *(CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter> **)(pCVar46 + 8);
-      if (pCVar12 != (CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter> *)0x0) {
-        *(longlong *)(pCVar46 + 8) = 0;
-        if (*(code **)(*(longlong *)pCVar12 + 0x10) ==
-            CMILCOMBaseT<ID2D1GeometrySink,ID2D1GeometrySink,CMilObjectDeleter>::Release) {
-          CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter>::InternalRelease(pCVar12);
-        }
-        else {
-          (**(code **)(*(longlong *)pCVar12 + 0x10))();
-        }
-      }
-      pvVar21 = TlsGetValue(CThreadContext::s_dwTlsIndex);
-      if (pvVar21 == (LPVOID)0x0) {
-        pCVar23 = _Alloc_DefaultHeap__SAPEAX_K_Z(0x1c0);
-        if ((pCVar23 == (CThreadContext *)0x0) ||
-           (pvVar21 = (LPVOID)CThreadContext::CThreadContext(pCVar23), pvVar21 == (LPVOID)0x0)) {
-          MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,-0x7ff8fff2,0x28,(void *)0x0);
-                    /* WARNING: Subroutine does not return */
-          ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
-        }
-        TlsSetValue(CThreadContext::s_dwTlsIndex,pvVar21);
-      }
-      if (*(uint *)((longlong)pvVar21 + 0x34) < *(uint *)((longlong)pvVar21 + 0x30)) {
-        *(longlong *)pCVar46 = *(longlong *)((longlong)pvVar21 + 0x38);
-        *(int *)((longlong)pvVar21 + 0x34) = *(int *)((longlong)pvVar21 + 0x34) + 1;
-        *(CRectanglesShape **)((longlong)pvVar21 + 0x38) = pCVar46;
-      }
-      else {
-        pvVar22 = GetProcessHeap();
-        HeapFree(pvVar22,0,pCVar46);
-      }
-    }
-    else {
-      (*(code *)**(undefined8 **)local_408)(local_408);
-    }
-  }
-  pCVar31 = local_410;
-  puVar24 = (undefined8 *)0x0;
-  if (local_410 != (CRenderingEffect *)0x0) {
-    puVar48 = *(undefined8 **)local_410;
-    if ((code *)*puVar48 == CRectanglesShape::_vector_deleting_destructor_) {
-      *(undefined ***)local_410 = &CRectanglesShape::_vftable_;
-      lVar29 = *(longlong *)(local_410 + 0x18) - *(longlong *)(local_410 + 0x10) >> 4;
-      if (lVar29 != 0) {
-        *(longlong *)(local_410 + 0x18) = *(longlong *)(local_410 + 0x18) + lVar29 * -0x10;
-      }
-      pCVar11 = *(CMILCOMBaseWeakRefSource<CResourceDeleter> **)(local_410 + 0x38);
-      local_410 = (CRenderingEffect *)pCVar45;
-      if (pCVar11 != (CMILCOMBaseWeakRefSource<CResourceDeleter> *)0x0) {
-        if (*(code **)(*(longlong *)pCVar11 + 0x10) ==
-            CMILCOMBaseWeakRefSource<CResourceDeleter>::InternalRelease) {
-          CMILCOMBaseWeakRefSource<CResourceDeleter>::InternalRelease(pCVar11);
-        }
-        else {
-          (**(code **)(*(longlong *)pCVar11 + 0x10))();
-        }
-        *(longlong *)(pCVar31 + 0x38) = 0;
-      }
-      pCVar46 = *(CRectanglesShape **)(pCVar31 + 0x10);
-      lVar29 = *(longlong *)(pCVar31 + 0x18) - (longlong)pCVar46 >> 4;
-      if (lVar29 != 0) {
-        *(longlong *)(pCVar31 + 0x18) = *(longlong *)(pCVar31 + 0x18) + lVar29 * -0x10;
-      }
-      *(longlong *)(pCVar31 + 0x10) = 0;
-      if ((pCVar46 != (CRectanglesShape *)(pCVar31 + 0x28)) && (pCVar46 != (CRectanglesShape *)0x0))
-      {
-        pvVar22 = GetProcessHeap();
-        HeapFree(pvVar22,0,pCVar46);
-      }
-      pCVar12 = *(CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter> **)(pCVar31 + 8);
-      if (pCVar12 != (CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter> *)0x0) {
-        *(longlong *)(pCVar31 + 8) = 0;
-        if (*(code **)(*(longlong *)pCVar12 + 0x10) ==
-            CMILCOMBaseT<ID2D1GeometrySink,ID2D1GeometrySink,CMilObjectDeleter>::Release) {
-          CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter>::InternalRelease(pCVar12);
-        }
-        else {
-          (**(code **)(*(longlong *)pCVar12 + 0x10))();
-        }
-      }
-      pvVar21 = TlsGetValue(CThreadContext::s_dwTlsIndex);
-      if (pvVar21 == (LPVOID)0x0) {
-        pCVar23 = _Alloc_DefaultHeap__SAPEAX_K_Z(0x1c0);
-        if ((pCVar23 == (CThreadContext *)0x0) ||
-           (pvVar21 = (LPVOID)CThreadContext::CThreadContext(pCVar23), pvVar21 == (LPVOID)0x0)) {
-          MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,-0x7ff8fff2,0x28,(void *)0x0);
-                    /* WARNING: Subroutine does not return */
-          ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
-        }
-        TlsSetValue(CThreadContext::s_dwTlsIndex,pvVar21);
-      }
-      if (*(uint *)((longlong)pvVar21 + 0x34) < *(uint *)((longlong)pvVar21 + 0x30)) {
-        *(longlong *)pCVar31 = *(longlong *)((longlong)pvVar21 + 0x38);
-        *(int *)((longlong)pvVar21 + 0x34) = *(int *)((longlong)pvVar21 + 0x34) + 1;
-        *(CRenderingEffect **)((longlong)pvVar21 + 0x38) = pCVar31;
-        pCVar45 = (CRectanglesShape *)local_410;
-      }
-      else {
-        pvVar22 = GetProcessHeap();
-        HeapFree(pvVar22,0,pCVar31);
-        pCVar45 = (CRectanglesShape *)local_410;
-      }
-    }
-    else {
-      local_410 = (CRenderingEffect *)pCVar45;
-      (*(code *)*puVar48)(pCVar31);
-      pCVar45 = (CRectanglesShape *)local_410;
-    }
-  }
-  local_410 = (CRenderingEffect *)pCVar45;
-  if (lVar17 < 0) {
-    MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar17,0x203,(void *)0x0);
-    std::unique_ptr<CShape,std::default_delete<CShape>_>::
-    ~unique_ptr<CShape,std::default_delete<CShape>_>
-              ((unique_ptr<CShape,std::default_delete<CShape>_> *)&local_410);
-    return lVar17;
-  }
-  if (*(code **)(*(longlong *)local_410 + 0x10) == CRectanglesShape::IsEmpty) {
-    cVar14 = '\x01';
-    lVar29 = *(longlong *)(local_410 + 0x18) -
-             (longlong)
-             *(TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded> **)(local_410 + 0x10)
-             >> 4;
-    if (lVar29 != 0) {
-      if (lVar29 == 1) {
-        cVar14 = TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::IsEmpty
-                           (*(TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded> **)
-                             (local_410 + 0x10));
-      }
-      else {
-        cVar14 = '\0';
-      }
-    }
-  }
-  else {
-    cVar14 = (**(code **)(*(longlong *)local_410 + 0x10))(local_410);
-  }
-  pCVar31 = local_410;
-  if (cVar14 != '\0') {
-    if (local_410 == (CRenderingEffect *)0x0) {
-      return lVar17;
-    }
-    if ((code *)**(undefined8 **)local_410 == CRectanglesShape::_vector_deleting_destructor_) {
-      CRectanglesShape::~CRectanglesShape((CRectanglesShape *)local_410);
-      CThreadLocalObjectCache<CRectanglesShape,CRectanglesShape>::Free(pCVar31);
-      return lVar17;
-    }
-    (*(code *)**(undefined8 **)local_410)(local_410,1);
-    return lVar17;
-  }
-  local_408 = (CRectanglesShape *)0x0;
-  local_378 = 0;
-  bVar13 = true;
-  memset(local_1c8,0,0xe0);
-  puVar48 = puVar24;
-  pCVar46 = local_408;
-  bVar15 = true;
+               (DrawListEntryBuilderSetupParams *)&local_280,local_288);
+    if (local_288 != (CRenderingEffect *)0x0) {
+      (**(code **)(*(longlong *)local_288 + 8))();
+    }
+  }
+  puVar18 = (undefined8 *)0x0;
+  uVar20 = *(uint *)(param_1 + 0xb0);
+  local_238 = (undefined8 *)(ulonglong)uVar20;
+  local_260 = &local_288;
+  pGStack_230 = param_1 + 0x88;
+  local_288 = (CRenderingEffect *)0x0;
+  pCStack_258 = (CRenderingEffect *)0x0;
+  local_250 = CONCAT71(local_250._1_7_,1);
+  if ((pGStack_230 == (GenerateDrawListParameters *)0x0) && (uVar20 != 0)) goto LAB_0;
+  local_198 = (ulonglong)uVar20;
+  pGStack_190 = pGStack_230;
+  lVar12 = ComputeBrushClamp(&local_198);
+  if ((char)local_250 != '\0') {
+    pCVar2 = *local_260;
+    *local_260 = pCStack_258;
+    if (pCVar2 != (CRenderingEffect *)0x0) {
+      (*(code *)**(undefined8 **)pCVar2)();
+    }
+  }
+  if (lVar12 < 0) {
+    MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar12,0x209,(void *)0x0);
+    goto LAB_1;
+  }
+  cVar8 = (**(code **)(*(longlong *)local_288 + 0x10))();
+  if (cVar8 != '\0') goto LAB_1;
+  local_238 = (undefined8 *)0x0;
+  local_228 = 0;
+  bVar9 = true;
+  memset(local_168,0,0xe0);
+  uVar19 = 0;
+  puVar7 = local_238;
   if (*(int *)(param_1 + 0xb0) != 0) {
     do {
-      bVar13 = bVar15;
-      plVar38 = *(longlong **)(param_1 + (longlong)puVar24 * 8 + 0x88);
-      if (plVar38 != (longlong *)0x0) {
-        if ((((bVar13) && (*(int *)(param_1 + 0x108) != 1)) &&
-            (*(char *)((longlong)plVar38 + 0x34) != '\0')) && ((int)plVar38[6] != 0x3030303)) {
-          bVar13 = false;
-        }
-        pcVar25 = *(code **)(*plVar38 + 8);
-        if ((pcVar25 != CGeometryOnlyDrawListBrush::IsOfType) &&
-           ((pcVar25 == CSurfaceDrawListBrush::IsOfType ||
-            (cVar14 = (*pcVar25)(plVar38,2), cVar14 != '\0')))) {
-          fVar53 = *(float *)(plVar38 + 1);
-          lVar29 = (longlong)puVar24 * 0x38;
-          local_1c8[(longlong)puVar24 * 0xe] = fVar53;
-          fVar59 = *(float *)((longlong)plVar38 + 0xc);
-          local_1c8[(longlong)puVar24 * 0xe + 1] = fVar59;
-          *(undefined4 *)(&uStack_1c0 + (longlong)puVar24 * 7) = 0;
-          fVar60 = *(float *)(plVar38 + 2);
-          afStack_1b8[(longlong)puVar24 * 0xe + -1] = fVar60;
-          fVar54 = *(float *)((longlong)plVar38 + 0x14);
-          afStack_1b8[(longlong)puVar24 * 0xe] = fVar54;
-          afStack_1b8[(longlong)puVar24 * 0xe + 1] = 0.0;
-          fVar57 = *(float *)(plVar38 + 3);
-          *(float *)(&uStack_1b0 + (longlong)puVar24 * 7) = fVar57;
-          fVar2 = *(float *)((longlong)plVar38 + 0x1c);
-          afStack_1a8[(longlong)puVar24 * 0xe] = 1.0;
-          afStack_1a8[(longlong)puVar24 * 0xe + -1] = fVar2;
-          fVar51 = (((fVar60 * fVar2 * 0.0 + fVar54 * fVar53 + fVar57 * fVar59 * 0.0) -
-                    fVar57 * fVar53 * 0.0) - fVar54 * fVar57 * 0.0) - fVar60 * fVar59;
-          if (ABS(fVar51) < 1.1920929e-06) {
-            (local_1c8 + (longlong)puVar24 * 0xe)[0] = INFINITY;
-            (local_1c8 + (longlong)puVar24 * 0xe)[1] = 0.0;
-            (&uStack_1c0)[(longlong)puVar24 * 7] = 0;
-            (afStack_1b8 + (longlong)puVar24 * 0xe)[0] = INFINITY;
-            (afStack_1b8 + (longlong)puVar24 * 0xe)[1] = 0.0;
-            (&uStack_1b0)[(longlong)puVar24 * 7] = 0;
-            fVar53 = 1.0;
+      this_00 = *(CSurfaceDrawListBrush **)(param_1 + uVar19 * 8 + 0x88);
+      if (this_00 != (CSurfaceDrawListBrush *)0x0) {
+        if ((((bVar9) && (*(int *)(param_1 + 0x108) != 1)) &&
+            (this_00[0x34] != (CSurfaceDrawListBrush)0x0)) &&
+           (*(int *)(this_00 + 0x30) != 0x3030303)) {
+          bVar9 = false;
+        }
+        cVar8 = (**(code **)(*(longlong *)this_00 + 8))(this_00,2);
+        if (cVar8 != '\0') {
+          pMVar23 = (Matrix3x3 *)(local_168 + uVar19 * 0x38);
+          CSurfaceDrawListBrush::ComputeLocalToTextureTransform(this_00,pMVar23);
+          if ((*(uint *)(param_1 + 0xbc) >> ((uint)uVar19 & 0x1f) & 1) == 0) {
+            if (((puVar18 == (undefined8 *)0x0) && (this_00[0x93] != (CSurfaceDrawListBrush)0x0)) &&
+               (((ABS(*(float *)(this_00 + 0xc)) < 8.138021e-05 &&
+                 (ABS(*(float *)(this_00 + 0x10)) < 8.138021e-05)) ||
+                ((ABS(*(float *)(this_00 + 8)) < 8.138021e-05 &&
+                 (ABS(*(float *)(this_00 + 0x14)) < 8.138021e-05)))))) {
+              puVar18 = &local_228;
+              local_228 = CONCAT44(*(float *)(this_00 + 0x88) * *(float *)(this_00 + 0xc) +
+                                   *(float *)(this_00 + 0x8c) * *(float *)(this_00 + 0x14) +
+                                   *(float *)(this_00 + 0x1c),
+                                   *(float *)(this_00 + 0x8c) * *(float *)(this_00 + 0x10) +
+                                   *(float *)(this_00 + 0x88) * *(float *)(this_00 + 8) +
+                                   *(float *)(this_00 + 0x18));
+            }
           }
           else {
-            fVar51 = 1.0 / fVar51;
-            fVar58 = (fVar60 * fVar2 - fVar54 * fVar57) * fVar51;
-            *(float *)(&uStack_1b0 + (longlong)puVar24 * 7) = fVar58;
-            fVar55 = (fVar54 * fVar53 - fVar60 * fVar59) * fVar51;
-            afStack_1a8[(longlong)puVar24 * 0xe] = fVar55;
-            local_38c = (fVar57 * fVar59 - fVar2 * fVar53) * fVar51;
-            local_418[0] = (fVar53 - fVar57 * 0.0) * fVar51;
-            afStack_1b8[(longlong)puVar24 * 0xe] = local_418[0];
-            afStack_1a8[(longlong)puVar24 * 0xe + -1] = local_38c;
-            local_3fc = (fVar54 - fVar2 * 0.0) * fVar51;
-            local_388 = (fVar60 * 0.0 - fVar53 * 0.0) * fVar51;
-            local_390 = (fVar57 * 0.0 - fVar60) * fVar51;
-            local_1c8[(longlong)puVar24 * 0xe] = local_3fc;
-            fVar52 = (fVar59 * 0.0 - fVar54 * 0.0) * fVar51;
-            afStack_1b8[(longlong)puVar24 * 0xe + -1] = local_390;
-            afStack_1b8[(longlong)puVar24 * 0xe + 1] = local_388;
-            *(float *)(&uStack_1c0 + (longlong)puVar24 * 7) = fVar52;
-            fVar51 = (fVar2 * 0.0 - fVar59) * fVar51;
-            local_218 = (CRectanglesShape *)CONCAT44(local_218._4_4_,fVar52);
-            local_1c8[(longlong)puVar24 * 0xe + 1] = fVar51;
-            fVar59 = *(float *)(plVar38 + 0xd);
-            fVar60 = *(float *)((longlong)plVar38 + 0x5c);
-            fVar54 = *(float *)((longlong)plVar38 + 0x74);
-            fVar57 = *(float *)((longlong)plVar38 + 100);
-            fVar2 = *(float *)(plVar38 + 0xb);
-            fVar3 = *(float *)(plVar38 + 0xc);
-            fVar53 = fVar58 * fVar60 + local_38c * fVar59 + fVar55 * fVar54;
-            fVar4 = *(float *)(plVar38 + 0xe);
-            fVar5 = *(float *)((longlong)plVar38 + 0x6c);
-            local_408 = (CRectanglesShape *)CONCAT44(local_408._4_4_,fVar53);
-            fVar6 = *(float *)((longlong)plVar38 + 0x54);
-            local_400 = fVar58 * fVar6 + local_38c * fVar3 + fVar55 * fVar5;
-            local_1c8[(longlong)puVar24 * 0xe] = fVar3 * fVar51 + fVar6 * local_3fc + fVar5 * fVar52
-            ;
-            local_1c8[(longlong)puVar24 * 0xe + 1] =
-                 fVar57 * fVar51 + fVar2 * local_3fc + fVar4 * fVar52;
-            *(float *)(&uStack_1c0 + (longlong)puVar24 * 7) =
-                 fVar59 * fVar51 + fVar60 * local_3fc + fVar54 * fVar52;
-            afStack_1b8[(longlong)puVar24 * 0xe + -1] =
-                 fVar6 * local_390 + fVar3 * local_418[0] + fVar5 * local_388;
-            afStack_1b8[(longlong)puVar24 * 0xe] =
-                 fVar57 * local_418[0] + fVar2 * local_390 + fVar4 * local_388;
-            afStack_1b8[(longlong)puVar24 * 0xe + 1] =
-                 fVar60 * local_390 + fVar59 * local_418[0] + fVar54 * local_388;
-            *(float *)(&uStack_1b0 + (longlong)puVar24 * 7) = local_400;
-            afStack_1a8[(longlong)puVar24 * 0xe + -1] =
-                 fVar58 * fVar2 + local_38c * fVar57 + fVar55 * fVar4;
-          }
-          uVar34 = *(uint *)(param_1 + 0xbc);
-          afStack_1a8[(longlong)puVar24 * 0xe] = fVar53;
-          if ((uVar34 >> ((uint)puVar24 & 0x1f) & 1) == 0) {
-            if (((puVar48 == (undefined8 *)0x0) && (*(char *)((longlong)plVar38 + 0x93) != '\0')) &&
-               (bVar15 = D2DMatrixHelper::Is2DAxisAlignedPreserving
-                                   ((D2D_MATRIX_3X2_F *)(plVar38 + 1)), bVar15)) {
-              puVar48 = &local_378;
-              local_378 = CONCAT44(*(float *)(plVar38 + 0x11) * *(float *)((longlong)plVar38 + 0xc)
-                                   + *(float *)((longlong)plVar38 + 0x8c) *
-                                     *(float *)((longlong)plVar38 + 0x14) +
-                                   *(float *)((longlong)plVar38 + 0x1c),
-                                   *(float *)((longlong)plVar38 + 0x8c) * *(float *)(plVar38 + 2) +
-                                   *(float *)(plVar38 + 0x11) * *(float *)(plVar38 + 1) +
-                                   *(float *)(plVar38 + 3));
-            }
+            puVar13 = (undefined4 *)
+                      Matrix3x3::operator*((Matrix3x3 *)(param_1 + 0xe4),(Matrix3x3 *)&local_220);
+            uVar25 = puVar13[1];
+            uVar4 = puVar13[2];
+            uVar5 = puVar13[3];
+            *(undefined4 *)pMVar23 = *puVar13;
+            *(undefined4 *)(pMVar23 + 4) = uVar25;
+            *(undefined4 *)(pMVar23 + 8) = uVar4;
+            *(undefined4 *)(pMVar23 + 0xc) = uVar5;
+            uVar6 = *(undefined8 *)(puVar13 + 6);
+            *(undefined8 *)(pMVar23 + 0x10) = *(undefined8 *)(puVar13 + 4);
+            *(undefined8 *)(pMVar23 + 0x18) = uVar6;
+            *(undefined4 *)(pMVar23 + 0x20) = puVar13[8];
+          }
+          if (((this_00[0x34] == (CSurfaceDrawListBrush)0x0) ||
+              (this_00[0x90] != (CSurfaceDrawListBrush)0x0)) ||
+             ((*(float *)(this_00 + 0x78) == -3.4028235e+38 &&
+              (((*(float *)(this_00 + 0x7c) == -3.4028235e+38 &&
+                (*(float *)(this_00 + 0x80) == 3.4028235e+38)) &&
+               (*(float *)(this_00 + 0x84) == 3.4028235e+38)))))) {
+            pMVar23[0x34] = (Matrix3x3)0x0;
           }
           else {
-            fVar53 = *(float *)(param_1 + 0x100);
-            fVar59 = *(float *)(param_1 + 0xfc);
-            fVar60 = *(float *)(param_1 + 0x104);
-            fVar54 = *(float *)(&uStack_1c0 + (longlong)puVar24 * 7);
-            fVar57 = afStack_1a8[(longlong)puVar24 * 0xe];
-            fVar2 = afStack_1b8[(longlong)puVar24 * 0xe];
-            fVar51 = local_1c8[(longlong)puVar24 * 0xe + 1];
-            fVar3 = afStack_1a8[(longlong)puVar24 * 0xe + -1];
-            fVar4 = afStack_1b8[(longlong)puVar24 * 0xe + 1];
-            fVar5 = afStack_1b8[(longlong)puVar24 * 0xe + -1];
-            fVar6 = *(float *)(&uStack_1b0 + (longlong)puVar24 * 7);
-            local_3fc = fVar54 * fVar59 + fVar4 * fVar53 + fVar57 * fVar60;
-            fVar52 = *(float *)(param_1 + 0xf0);
-            fVar56 = fVar51 * fVar59 + fVar2 * fVar53 + fVar3 * fVar60;
-            fVar55 = *(float *)(param_1 + 0xf4);
-            local_218 = (CRectanglesShape *)CONCAT44(local_218._4_4_,fVar56);
-            fVar58 = local_1c8[(longlong)puVar24 * 0xe];
-            fVar7 = *(float *)(param_1 + 0xf8);
-            fVar8 = *(float *)(param_1 + 0xe4);
-            fVar9 = *(float *)(param_1 + 0xe8);
-            fVar10 = *(float *)(param_1 + 0xec);
-            fVar50 = afStack_1b8[(longlong)puVar24 * 0xe + 1] * fVar9 + fVar54 * fVar8 +
-                     fVar57 * fVar10;
-            local_408 = (CRectanglesShape *)CONCAT44(local_408._4_4_,fVar50);
-            local_1c8[(longlong)puVar24 * 0xe] = fVar8 * fVar58 + fVar9 * fVar5 + fVar6 * fVar10;
-            local_1c8[(longlong)puVar24 * 0xe + 1] = fVar8 * fVar51 + fVar2 * fVar9 + fVar3 * fVar10
-            ;
-            *(float *)(&uStack_1c0 + (longlong)puVar24 * 7) = fVar50;
-            afStack_1b8[(longlong)puVar24 * 0xe + -1] =
-                 fVar52 * fVar58 + fVar55 * fVar5 + fVar6 * fVar7;
-            afStack_1b8[(longlong)puVar24 * 0xe] = fVar55 * fVar2 + fVar52 * fVar51 + fVar7 * fVar3;
-            afStack_1b8[(longlong)puVar24 * 0xe + 1] =
-                 fVar4 * fVar55 + fVar54 * fVar52 + fVar57 * fVar7;
-            *(float *)(&uStack_1b0 + (longlong)puVar24 * 7) =
-                 fVar58 * fVar59 + fVar5 * fVar53 + fVar6 * fVar60;
-            afStack_1a8[(longlong)puVar24 * 0xe + -1] = fVar56;
-            afStack_1a8[(longlong)puVar24 * 0xe] = local_3fc;
-          }
-          if (((*(char *)((longlong)plVar38 + 0x34) == '\0') || ((char)plVar38[0x12] != '\0')) ||
-             ((*(float *)(plVar38 + 0xf) == -3.4028235e+38 &&
-              (((*(float *)((longlong)plVar38 + 0x7c) == -3.4028235e+38 &&
-                (*(float *)(plVar38 + 0x10) == 3.4028235e+38)) &&
-               (*(float *)((longlong)plVar38 + 0x84) == 3.4028235e+38)))))) {
-            auStack_194[lVar29] = 0;
-          }
-          else {
-            auStack_194[lVar29] = 1;
-            uVar32 = *(undefined4 *)((longlong)plVar38 + 0x7c);
-            lVar40 = plVar38[0x10];
-            uVar44 = *(undefined4 *)((longlong)plVar38 + 0x84);
-            *(int *)((longlong)afStack_1a8 + lVar29 + 4) = (int)plVar38[0xf];
-            *(undefined4 *)((longlong)afStack_1a8 + lVar29 + 8) = uVar32;
-            *(int *)((longlong)afStack_1a8 + lVar29 + 0xc) = (int)lVar40;
-            *(undefined4 *)((longlong)afStack_1a8 + lVar29 + 0x10) = uVar44;
-          }
-        }
-      }
-      uVar34 = (uint)puVar24 + 1;
-      puVar24 = (undefined8 *)(ulonglong)uVar34;
-      pCVar31 = local_410;
-      pCVar46 = (CRectanglesShape *)puVar48;
-      bVar15 = bVar13;
-    } while (uVar34 < *(uint *)(param_1 + 0xb0));
-  }
-  local_408 = pCVar46;
-  uStack_1f0 = uStack_1f0 & 0xffffffffffffff00;
-  local_3b0 = (CRectanglesShape *)0x0;
-  uStack_3a8 = (float *)0x0;
-  local_418[0] = 0.0;
-  local_3a0 = (GenerateDrawListParameters *)0x0;
-  uStack_398 = 0;
-  pcVar25 = *(code **)(*(longlong *)pCVar31 + 0x40);
-  if (pcVar25 == CRoundedRectangleShape::IsRectangles) {
-    bVar15 = CRoundedRectangleGeometryData::HasAnyRoundedCorners
-                       ((CRoundedRectangleGeometryData *)(*(longlong *)(pCVar31 + 0x10) + 0x10));
-    if (bVar15) goto LAB_3;
-LAB_4:
-    pCVar31 = local_410;
-    local_278 = (CRectanglesShape *)0x0;
-    uStack_270 = (GenerateDrawListParameters *)0x0;
-    if (*(code **)(*(longlong *)local_410 + 0x30) == CRectanglesShape::GetTightBounds) {
-      puVar24 = *(undefined8 **)(local_410 + 0x10);
-      if (*(undefined8 **)(local_410 + 0x18) != puVar24) {
-        local_278 = (CRectanglesShape *)*puVar24;
-        uStack_270 = (GenerateDrawListParameters *)puVar24[1];
-        uVar39 = 1;
-        lVar29 = *(longlong *)(local_410 + 0x10);
-        if (1 < (ulonglong)(*(longlong *)(local_410 + 0x18) - lVar29 >> 4)) {
-          lVar40 = 0x10;
+            pMVar23[0x34] = (Matrix3x3)0x1;
+            uVar25 = *(undefined4 *)(this_00 + 0x7c);
+            uVar4 = *(undefined4 *)(this_00 + 0x80);
+            uVar5 = *(undefined4 *)(this_00 + 0x84);
+            *(undefined4 *)(pMVar23 + 0x24) = *(undefined4 *)(this_00 + 0x78);
+            *(undefined4 *)(pMVar23 + 0x28) = uVar25;
+            *(undefined4 *)(pMVar23 + 0x2c) = uVar4;
+            *(undefined4 *)(pMVar23 + 0x30) = uVar5;
+          }
+        }
+      }
+      uVar20 = (uint)uVar19 + 1;
+      uVar19 = (ulonglong)uVar20;
+      this = local_1a8;
+      puVar7 = puVar18;
+    } while (uVar20 < *(uint *)(param_1 + 0xb0));
+  }
+  local_238 = puVar7;
+  uVar19 = 0;
+  local_188 = (CBrushDrawListGenerator *)0x0;
+  puStack_180 = (uint *)0x0;
+  local_268 = local_268 & 0xffffff00;
+  local_178 = 0;
+  uStack_170 = 0;
+  bVar10 = CShape::IsAxisAlignedRectangle((CShape *)local_288);
+  if (bVar10) {
+    local_1a8 = (CBrushDrawListGenerator *)0x0;
+    uStack_1a0 = (uint *)0x0;
+    lVar12 = (**(code **)(*(longlong *)local_288 + 0x30))();
+    if (-1 < lVar12) {
+      local_188 = local_1a8;
+      puStack_180 = uStack_1a0;
+      if (bVar9) {
+        uVar25 = 0x3030303;
+        if (*(int *)(param_1 + 0x108) == 1) {
+          uVar25 = 0;
+        }
+        local_178 = CONCAT44(local_178._4_4_,uVar25);
+      }
+      else {
+        uVar20 = *(uint *)(param_1 + 0xb0);
+        local_198 = (ulonglong)uVar20;
+        pGStack_190 = param_1 + 0x88;
+        if ((pGStack_190 == (GenerateDrawListParameters *)0x0) && (uVar20 != 0)) {
+                    /* WARNING: Subroutine does not return */
+          gsl::details::terminate();
+        }
+        local_198 = (ulonglong)uVar20;
+        ProcessBrushClampEdges_Rectangle(&local_198,&local_188,&local_178);
+      }
+      goto LAB_2;
+    }
+    MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar12,0x25a,(void *)0x0);
+    if ((((char)local_268 == -1) || ((char)local_268 == '\0')) || ((char)local_268 == '\x01'))
+    goto LAB_1;
+    pvVar16 = (void *)CONCAT44(uStack_27c,local_280);
+    plVar14 = *(longlong **)((longlong)pvVar16 + 8);
+    if (*(char *)((longlong)plVar14 + 0x19) == '\0') {
+      do {
+        std::
+        _Tree_val<std::_Tree_simple_types<std::pair<unsigned___int64_const_,CCursorState*___ptr64>_>_>
+        ::
+        _Erase_tree<std::allocator<std::_Tree_node<std::pair<unsigned___int64_const_,CCursorState*___ptr64>,void*___ptr64>_>_>
+                  ((_Tree_val<std::_Tree_simple_types<std::pair<unsigned___int64_const_,CCursorState*___ptr64>_>_>
+                    *)&local_280,
+                   (allocator<std::_Tree_node<std::pair<unsigned___int64_const_,CCursorState*___ptr64>,void*___ptr64>_>
+                    *)&local_280,
+                   (_Tree_node<std::pair<unsigned___int64_const_,CCursorState*___ptr64>,void*___ptr64>
+                    *)plVar14[2]);
+        plVar3 = (longlong *)*plVar14;
+        operator_delete__(plVar14,0x30);
+        plVar14 = plVar3;
+      } while (*(char *)((longlong)plVar3 + 0x19) == '\0');
+      pvVar16 = (void *)CONCAT44(uStack_27c,local_280);
+    }
+  }
+  else {
+    uStack_170 = uStack_170 | 1;
+    local_188 = (CBrushDrawListGenerator *)local_288;
+    if (((!bVar9) || (*(longlong *)(param_1 + 0x18) != 0)) || (*(longlong *)(param_1 + 0x28) != 0))
+    {
+      uVar21 = (ulonglong)*(uint *)(param_1 + 0xb0);
+      uVar20 = *(uint *)(param_1 + 0xbc);
+      if ((param_1 + 0x88 == (GenerateDrawListParameters *)0x0) && (uVar21 != 0)) {
+LAB_0:
+                    /* WARNING: Subroutine does not return */
+        gsl::details::terminate();
+      }
+      iVar11 = *(int *)(param_1 + 0x108);
+      if (uVar21 != 0) {
+        if (uVar21 == 0) goto LAB_0;
+        do {
+          lVar24 = *(longlong *)(param_1 + 0x88 + uVar19 * 8);
+          if ((lVar24 != 0) && (*(char *)(lVar24 + 0x34) != '\0')) {
+            if ((uVar20 & 1 << ((byte)uVar19 & 0x1f)) == 0) {
+              lStack_248 = *(longlong *)(lVar24 + 0x18);
+              pCStack_258 = (CRenderingEffect *)((ulonglong)*(uint *)(lVar24 + 0x10) << 0x20);
+              local_250 = (ulonglong)*(uint *)(lVar24 + 0x14);
+              local_240 = 0x3f800000;
+              local_260 = *(CRenderingEffect ***)(lVar24 + 8);
+            }
+            else {
+              local_214 = *(undefined4 *)(lVar24 + 0x10);
+              local_210 = *(undefined4 *)(lVar24 + 0x14);
+              local_208 = *(undefined4 *)(lVar24 + 0x18);
+              local_204 = *(undefined4 *)(lVar24 + 0x1c);
+              local_218 = 0;
+              local_20c = 0;
+              local_200 = 0x3f800000;
+              local_220 = *(undefined4 *)(lVar24 + 8);
+              local_21c = *(undefined4 *)(lVar24 + 0xc);
+              plVar14 = (longlong *)Matrix3x3::operator*((Matrix3x3 *)&local_220,local_1fc);
+              pCStack_258 = (CRenderingEffect *)plVar14[1];
+              local_250 = plVar14[2];
+              lStack_248 = plVar14[3];
+              local_240 = (undefined4)plVar14[4];
+              local_260 = (CRenderingEffect **)*plVar14;
+            }
+            if (iVar11 == 1) {
+              DVar22 = 0;
+            }
+            else {
+              DVar22 = *(D2D1_EDGE_FLAGS *)(lVar24 + 0x30);
+            }
+            CEdgeFlagsMap::AddEdgeFlags
+                      ((CEdgeFlagsMap *)&local_280,(D2D_RECT_F *)(lVar24 + 0x20),DVar22,
+                       (Matrix3x3 *)&local_260,8.138021e-05);
+          }
+          uVar19 = uVar19 + 1;
+          this = local_1a8;
+        } while (uVar19 < uVar21);
+      }
+      puStack_180 = &local_280;
+    }
+LAB_2:
+    local_1b8 = (ulonglong)*(uint *)(param_1 + 0xb4);
+    local_198 = local_1b8;
+    pGStack_1b0 = local_168;
+    pGStack_190 = pGStack_1b0;
+    uStack_1c8 = 0;
+    if (param_1[0x115] == (GenerateDrawListParameters)0x0) {
+      fVar1 = *(float *)(this + 0x44);
+      puVar15 = &local_1a8;
+      local_1a8 = (CBrushDrawListGenerator *)
+                  CONCAT44(fVar1 * *(float *)(this + 0x3c),fVar1 * *(float *)(this + 0x38));
+      uStack_1a0 = (uint *)CONCAT44(fVar1,fVar1 * *(float *)(this + 0x40));
+    }
+    else {
+      puVar15 = &local_198;
+      local_198 = *(ulonglong *)(this + 0x38);
+      pGStack_190 = *(GenerateDrawListParameters **)(this + 0x40);
+    }
+    local_1d8 = *puVar15;
+    uStack_1d0 = puVar15[1];
+    this_01 = *(CDrawListEntryBuilder **)(param_1 + 8);
+    local_1c0 = local_238;
+    lVar12 = CDrawListEntryBuilder::Insert
+                       (this_01,(PrimitiveGeometryDesc *)&local_188,
+                        (PrimitiveVertexAttributesDesc *)&local_1d8,(D2D_MATRIX_3X2_F *)0x0);
+    if (-1 < lVar12) {
+      if ((((char)local_268 != -1) && ((char)local_268 != '\0')) && ((char)local_268 != '\x01')) {
+        this_01 = (CDrawListEntryBuilder *)CONCAT44(uStack_27c,local_280);
+        plVar14 = *(longlong **)(this_01 + 8);
+        if (*(char *)((longlong)plVar14 + 0x19) == '\0') {
           do {
-            TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::UnionUnsafe
-                      ((TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded> *)&local_278
-                       ,(TMilRect<float,struct_D2D_RECT_F,struct_D3D_RECT_F,struct_RectUniqueness::NotNeeded>
-                         *)(lVar29 + lVar40));
-            lVar29 = *(longlong *)(pCVar31 + 0x10);
-            lVar40 = lVar40 + 0x10;
-            uVar39 = uVar39 + 1;
-          } while (uVar39 < (ulonglong)(*(longlong *)(pCVar31 + 0x18) - lVar29 >> 4));
-        }
-      }
-LAB_5:
-      local_3b0 = local_278;
-      uStack_3a8 = (float *)uStack_270;
-      if (bVar13) {
-        uVar32 = 0x3030303;
-        if (*(int *)(param_1 + 0x108) == 1) {
-          uVar32 = 0;
-        }
-        local_3a0 = (GenerateDrawListParameters *)CONCAT44(local_3a0._4_4_,uVar32);
-      }
-      else {
-        pGVar30 = param_1 + 0x88;
-        if ((pGVar30 == (GenerateDrawListParameters *)0x0) &&
-           ((ulonglong)*(uint *)(param_1 + 0xb0) != 0)) {
-          (*(code *)`void_(__cdecl*&___ptr64___cdecl_gsl::details::get_terminate_handler(void))(void)'
-                    ::__l2::handler)();
-          pcVar25 = (code *)swi(3);
-          lVar17 = (*pcVar25)();
-          return lVar17;
-        }
-        pGVar1 = pGVar30 + (ulonglong)*(uint *)(param_1 + 0xb0) * 8;
-        uVar33 = 0;
-        uVar34 = uVar33;
-        if (pGVar30 != pGVar1) {
-          uVar32 = 1;
-          uVar44 = 3;
-          uVar34 = 0;
-          do {
-            lVar29 = *(longlong *)pGVar30;
-            param_1 = local_358;
-            if (((lVar29 != 0) && (*(char *)(lVar29 + 0x34) != '\0')) &&
-               (((ABS(*(float *)(lVar29 + 0xc)) < 8.138021e-05 &&
-                 (ABS(*(float *)(lVar29 + 0x10)) < 8.138021e-05)) ||
-                ((ABS(*(float *)(lVar29 + 8)) < 8.138021e-05 &&
-                 (ABS(*(float *)(lVar29 + 0x14)) < 8.138021e-05)))))) {
-              uVar18 = *(uint *)(lVar29 + 0x30);
-              uVar26 = uVar18;
-              if ((uVar18 != 0x3030303) && (uVar18 != 0)) {
-                local_1e8[0] = 0x1000000;
-                local_1e8[1] = 0x2000000;
-                local_1e8[2] = 1;
-                local_1e8[3] = 2;
-                local_1e8[4] = 0x100;
-                local_1e8[5] = 0x200;
-                local_1e8[6] = 0x10000;
-                local_1e8[7] = 0x20000;
-                local_20c = 0;
-                if ((8.138021e-05 <= ABS(*(float *)(lVar29 + 0xc))) ||
-                   (8.138021e-05 <= ABS(*(float *)(lVar29 + 0x10)))) {
-                  local_210 = uVar32;
-                  uVar19 = uVar44;
-                  if (0.0 < *(float *)(lVar29 + 0x10)) {
-                    local_210 = uVar44;
-                    uVar19 = uVar32;
-                  }
-                  uVar20 = 2;
-                  if (0.0 < *(float *)(lVar29 + 0xc)) {
-                    uVar20 = local_20c;
-                  }
-                  local_218 = (CRectanglesShape *)CONCAT44(uVar20,uVar19);
-                  if (0.0 < *(float *)(lVar29 + 0xc)) {
-                    local_20c = 2;
-                  }
-                }
-                else {
-                  uVar26 = 2;
-                  if (0.0 < *(float *)(lVar29 + 8)) {
-                    local_20c = 2;
-                    uVar26 = uVar33;
-                  }
-                  local_210 = local_20c;
-                  uVar19 = uVar44;
-                  if (0.0 < *(float *)(lVar29 + 0x14)) {
-                    uVar19 = uVar32;
-                  }
-                  local_218 = (CRectanglesShape *)CONCAT44(uVar19,uVar26);
-                  local_20c = uVar32;
-                  if (0.0 < *(float *)(lVar29 + 0x14)) {
-                    local_20c = uVar44;
-                  }
-                }
-                puVar43 = (uint *)&local_218;
-                puVar42 = local_1e8;
-                lVar40 = 4;
-                uVar26 = uVar33;
-                do {
-                  if ((local_1e8[(ulonglong)*puVar43 * 2] & uVar18) != 0) {
-                    uVar26 = uVar26 | *puVar42;
-                  }
-                  if ((local_1e8[(ulonglong)*puVar43 * 2 + 1] & uVar18) != 0) {
-                    uVar26 = uVar26 | puVar42[1];
-                  }
-                  puVar43 = puVar43 + 1;
-                  puVar42 = puVar42 + 2;
-                  lVar40 = lVar40 + -1;
-                } while (lVar40 != 0);
-              }
-              if (uVar26 != uVar34) {
-                fVar59 = *(float *)(lVar29 + 0x20) * *(float *)(lVar29 + 8) +
-                         *(float *)(lVar29 + 0x24) * *(float *)(lVar29 + 0x10) +
-                         *(float *)(lVar29 + 0x18);
-                fVar60 = *(float *)(lVar29 + 0x20) * *(float *)(lVar29 + 0xc) +
-                         *(float *)(lVar29 + 0x24) * *(float *)(lVar29 + 0x14) +
-                         *(float *)(lVar29 + 0x1c);
-                fVar54 = *(float *)(lVar29 + 0x28) * *(float *)(lVar29 + 8) +
-                         *(float *)(lVar29 + 0x2c) * *(float *)(lVar29 + 0x10) +
-                         *(float *)(lVar29 + 0x18);
-                fVar57 = *(float *)(lVar29 + 0x28) * *(float *)(lVar29 + 0xc) +
-                         *(float *)(lVar29 + 0x2c) * *(float *)(lVar29 + 0x14) +
-                         *(float *)(lVar29 + 0x1c);
-                fVar53 = fVar59;
-                if (fVar54 <= fVar59) {
-                  fVar53 = fVar54;
-                }
-                if (fVar59 <= fVar54) {
-                  fVar59 = fVar54;
-                }
-                fVar54 = fVar60;
-                if (fVar57 <= fVar60) {
-                  fVar54 = fVar57;
-                }
-                if (fVar60 <= fVar57) {
-                  fVar60 = fVar57;
-                }
-                uVar18 = 0x3000000;
-                if (1.1920929e-06 < ABS((float)local_278 - fVar53)) {
-                  uVar18 = 0;
-                }
-                if (ABS((float)uStack_270 - fVar59) <= 1.1920929e-06) {
-                  uVar18 = uVar18 | 0x300;
-                }
-                if (ABS(local_278._4_4_ - fVar54) <= 1.1920929e-06) {
-                  uVar18 = uVar18 | 3;
-                }
-                if (ABS(uStack_270._4_4_ - fVar60) <= 1.1920929e-06) {
-                  uVar18 = uVar18 | 0x30000;
-                }
-                if ((uVar18 != 0) && (uVar34 = uVar34 | uVar26 & uVar18, uVar34 == 0x3030303))
-                break;
-              }
-            }
-            pGVar30 = pGVar30 + 8;
-          } while (pGVar30 != pGVar1);
-        }
-        local_3a0 = (GenerateDrawListParameters *)CONCAT44(local_3a0._4_4_,uVar34);
-      }
-      goto LAB_6;
-    }
-    lVar17 = (**(code **)(*(longlong *)local_410 + 0x30))(local_410);
-    if (-1 < lVar17) goto LAB_5;
-    MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar17,0x254,(void *)0x0);
-    if ((((char)uStack_1f0 != -1) && ((char)uStack_1f0 != '\0')) && ((char)uStack_1f0 != '\x01')) {
-      std::
-      _Tree<std::_Tmap_traits<CSceneNode*___ptr64,void*___ptr64,std::less<CSceneNode*___ptr64>,std::allocator<std::pair<CSceneNode*___ptr64_const,void*___ptr64>_>,0>_>
-      ::
-      ~_Tree<std::_Tmap_traits<CSceneNode*___ptr64,void*___ptr64,std::less<CSceneNode*___ptr64>,std::allocator<std::pair<CSceneNode*___ptr64_const,void*___ptr64>_>,0>_>
-                ((_Tree<std::_Tmap_traits<CSceneNode*___ptr64,void*___ptr64,std::less<CSceneNode*___ptr64>,std::allocator<std::pair<CSceneNode*___ptr64_const,void*___ptr64>_>,0>_>
-                  *)local_208);
-    }
-    pCVar31 = local_410;
-    if (local_410 == (CRenderingEffect *)0x0) {
-      return lVar17;
-    }
-    pcVar25 = (code *)**(longlong **)local_410;
-    if (pcVar25 != CRectanglesShape::_vector_deleting_destructor_) goto LAB_7;
-    *(undefined ***)local_410 = &CRectanglesShape::_vftable_;
-    lVar29 = *(longlong *)(local_410 + 0x18) - *(longlong *)(local_410 + 0x10) >> 4;
-    if (lVar29 != 0) {
-      *(longlong *)(local_410 + 0x18) = *(longlong *)(local_410 + 0x18) + lVar29 * -0x10;
-    }
-    pCVar11 = *(CMILCOMBaseWeakRefSource<CResourceDeleter> **)(local_410 + 0x38);
-    if (pCVar11 != (CMILCOMBaseWeakRefSource<CResourceDeleter> *)0x0) {
-      if (*(code **)(*(longlong *)pCVar11 + 0x10) ==
-          CMILCOMBaseWeakRefSource<CResourceDeleter>::InternalRelease) {
-        CMILCOMBaseWeakRefSource<CResourceDeleter>::InternalRelease(pCVar11);
-      }
-      else {
-        (**(code **)(*(longlong *)pCVar11 + 0x10))();
-      }
-      *(longlong *)(pCVar31 + 0x38) = 0;
-    }
-    pCVar46 = *(CRectanglesShape **)(pCVar31 + 0x10);
-    lVar29 = *(longlong *)(pCVar31 + 0x18) - (longlong)pCVar46 >> 4;
-    if (lVar29 != 0) {
-      *(longlong *)(pCVar31 + 0x18) = *(longlong *)(pCVar31 + 0x18) + lVar29 * -0x10;
-    }
-    *(longlong *)(pCVar31 + 0x10) = 0;
-    if ((pCVar46 != (CRectanglesShape *)(pCVar31 + 0x28)) && (pCVar46 != (CRectanglesShape *)0x0)) {
-      pvVar22 = GetProcessHeap();
-      HeapFree(pvVar22,0,pCVar46);
-    }
-    pCVar12 = *(CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter> **)(pCVar31 + 8);
-    if (pCVar12 != (CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter> *)0x0) {
-      *(longlong *)(pCVar31 + 8) = 0;
-      if (*(code **)(*(longlong *)pCVar12 + 0x10) ==
-          CMILCOMBaseT<ID2D1GeometrySink,ID2D1GeometrySink,CMilObjectDeleter>::Release) {
-        CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter>::InternalRelease(pCVar12);
-      }
-      else {
-        (**(code **)(*(longlong *)pCVar12 + 0x10))();
-      }
-    }
-    pvVar21 = TlsGetValue(CThreadContext::s_dwTlsIndex);
-    if (pvVar21 == (LPVOID)0x0) {
-      pCVar23 = _Alloc_DefaultHeap__SAPEAX_K_Z(0x1c0);
-      if ((pCVar23 == (CThreadContext *)0x0) ||
-         (pvVar21 = (LPVOID)CThreadContext::CThreadContext(pCVar23), pvVar21 == (LPVOID)0x0)) {
-        MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,-0x7ff8fff2,0x28,(void *)0x0);
-                    /* WARNING: Subroutine does not return */
-        ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
-      }
-      TlsSetValue(CThreadContext::s_dwTlsIndex,pvVar21);
-    }
-    if (*(uint *)((longlong)pvVar21 + 0x34) < *(uint *)((longlong)pvVar21 + 0x30))
-    goto LAB_8;
-LAB_9:
-    pvVar22 = GetProcessHeap();
-    HeapFree(pvVar22,0,pCVar31);
-  }
-  else {
-    if (pcVar25 == CRectanglesShape::IsRectangles) {
-      cVar14 = CRectanglesShape::IsRectangles((CRectanglesShape *)pCVar31,(uint *)local_418);
-    }
-    else if (pcVar25 == CRegionShape::IsRectangles) {
-      cVar14 = CRegionShape::IsRectangles((CRegionShape *)pCVar31,(uint *)local_418);
-    }
-    else {
-      cVar14 = (*pcVar25)();
-    }
-    if ((cVar14 != '\0') && (local_418[0] == 1.4013e-45)) goto LAB_4;
-LAB_3:
-    uStack_398 = uStack_398 | 1;
-    local_3b0 = (CRectanglesShape *)local_410;
-    if (bVar13) {
-      if ((*(longlong *)(param_1 + 0x18) != 0) || (*(longlong *)(param_1 + 0x28) != 0)) {
-        uVar34 = *(uint *)(param_1 + 0xb0);
-        goto LAB_10;
-      }
-    }
-    else {
-      uVar34 = *(uint *)(param_1 + 0xb0);
-LAB_10:
-      local_278 = (CRectanglesShape *)(ulonglong)uVar34;
-      uStack_270 = param_1 + 0x88;
-      if ((uStack_270 == (GenerateDrawListParameters *)0x0) && (uVar34 != 0)) {
-LAB_0:
-        uStack_270 = param_1 + 0x88;
-        (*(code *)`void_(__cdecl*&___ptr64___cdecl_gsl::details::get_terminate_handler(void))(void)'
-                  ::__l2::handler)();
-        pcVar25 = (code *)swi(3);
-        lVar17 = (*pcVar25)();
-        return lVar17;
-      }
-      local_228 = local_278;
-      uStack_220 = uStack_270;
-      ProcessBrushClampEdges_Polygon(*(undefined4 *)(param_1 + 0x108),&local_228);
-      uStack_3a8 = (float *)local_208;
-    }
-LAB_6:
-    local_290 = (CRectanglesShape *)(ulonglong)*(uint *)(param_1 + 0xb4);
-    pfStack_288 = local_1c8;
-    uStack_2a0 = 0;
-    if (param_1[0x115] == (GenerateDrawListParameters)0x0) {
-      fVar53 = *(float *)(local_380 + 0x44);
-      local_228 = (CRectanglesShape *)
-                  CONCAT44(fVar53 * *(float *)(local_380 + 0x3c),
-                           fVar53 * *(float *)(local_380 + 0x38));
-      uStack_220 = (GenerateDrawListParameters *)
-                   CONCAT44(fVar53,fVar53 * *(float *)(local_380 + 0x40));
-    }
-    else {
-      local_228 = *(CRectanglesShape **)(local_380 + 0x38);
-      uStack_220 = *(GenerateDrawListParameters **)(local_380 + 0x40);
-    }
-    local_298 = (undefined8 *)local_408;
-    local_2b0 = local_228;
-    pGStack_2a8 = uStack_220;
-    local_278 = local_290;
-    uStack_270 = (GenerateDrawListParameters *)pfStack_288;
-    lVar17 = CDrawListEntryBuilder::Insert
-                       (*(CDrawListEntryBuilder **)(param_1 + 8),(PrimitiveGeometryDesc *)&local_3b0
-                        ,(PrimitiveVertexAttributesDesc *)&local_2b0,(D2D_MATRIX_3X2_F *)0x0);
-    if (lVar17 < 0) {
-      MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar17,0x286,(void *)0x0);
-      if ((((char)uStack_1f0 != -1) && ((char)uStack_1f0 != '\0')) && ((char)uStack_1f0 != '\x01'))
-      {
+            std::
+            _Tree_val<std::_Tree_simple_types<std::pair<unsigned___int64_const_,CCursorState*___ptr64>_>_>
+            ::
+            _Erase_tree<std::allocator<std::_Tree_node<std::pair<unsigned___int64_const_,CCursorState*___ptr64>,void*___ptr64>_>_>
+                      ((_Tree_val<std::_Tree_simple_types<std::pair<unsigned___int64_const_,CCursorState*___ptr64>_>_>
+                        *)&local_280,
+                       (allocator<std::_Tree_node<std::pair<unsigned___int64_const_,CCursorState*___ptr64>,void*___ptr64>_>
+                        *)&local_280,
+                       (_Tree_node<std::pair<unsigned___int64_const_,CCursorState*___ptr64>,void*___ptr64>
+                        *)plVar14[2]);
+            plVar3 = (longlong *)*plVar14;
+            operator_delete__(plVar14,0x30);
+            plVar14 = plVar3;
+          } while (*(char *)((longlong)plVar3 + 0x19) == '\0');
+          this_01 = (CDrawListEntryBuilder *)CONCAT44(uStack_27c,local_280);
+        }
+        operator_delete__(this_01,0x30);
+      }
+      if (local_288 == (CRenderingEffect *)0x0) {
+        return lVar12;
+      }
+      std::default_delete<CShape>::operator()((default_delete<CShape> *)this_01,(CShape *)local_288)
+      ;
+      return lVar12;
+    }
+    MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar12,0x28c,(void *)0x0);
+    if ((((char)local_268 == -1) || ((char)local_268 == '\0')) || ((char)local_268 == '\x01'))
+    goto LAB_1;
+    pvVar16 = (void *)CONCAT44(uStack_27c,local_280);
+    plVar14 = *(longlong **)((longlong)pvVar16 + 8);
+    if (*(char *)((longlong)plVar14 + 0x19) == '\0') {
+      do {
         std::
-        _Tree<std::_Tmap_traits<CSceneNode*___ptr64,void*___ptr64,std::less<CSceneNode*___ptr64>,std::allocator<std::pair<CSceneNode*___ptr64_const,void*___ptr64>_>,0>_>
+        _Tree_val<std::_Tree_simple_types<std::pair<unsigned___int64_const_,CCursorState*___ptr64>_>_>
         ::
-        ~_Tree<std::_Tmap_traits<CSceneNode*___ptr64,void*___ptr64,std::less<CSceneNode*___ptr64>,std::allocator<std::pair<CSceneNode*___ptr64_const,void*___ptr64>_>,0>_>
-                  ((_Tree<std::_Tmap_traits<CSceneNode*___ptr64,void*___ptr64,std::less<CSceneNode*___ptr64>,std::allocator<std::pair<CSceneNode*___ptr64_const,void*___ptr64>_>,0>_>
-                    *)local_208);
-      }
-      pCVar31 = local_410;
-      if (local_410 == (CRenderingEffect *)0x0) {
-        return lVar17;
-      }
-      pcVar25 = (code *)**(longlong **)local_410;
-      if (pcVar25 == CRectanglesShape::_vector_deleting_destructor_) {
-        *(undefined ***)local_410 = &CRectanglesShape::_vftable_;
-        lVar29 = *(longlong *)(local_410 + 0x18) - *(longlong *)(local_410 + 0x10) >> 4;
-        if (lVar29 != 0) {
-          *(longlong *)(local_410 + 0x18) = *(longlong *)(local_410 + 0x18) + lVar29 * -0x10;
-        }
-        pCVar11 = *(CMILCOMBaseWeakRefSource<CResourceDeleter> **)(local_410 + 0x38);
-        if (pCVar11 != (CMILCOMBaseWeakRefSource<CResourceDeleter> *)0x0) {
-          if (*(code **)(*(longlong *)pCVar11 + 0x10) ==
-              CMILCOMBaseWeakRefSource<CResourceDeleter>::InternalRelease) {
-            CMILCOMBaseWeakRefSource<CResourceDeleter>::InternalRelease(pCVar11);
-          }
-          else {
-            (**(code **)(*(longlong *)pCVar11 + 0x10))();
-          }
-          *(longlong *)(pCVar31 + 0x38) = 0;
-        }
-        pCVar46 = *(CRectanglesShape **)(pCVar31 + 0x10);
-        lVar29 = *(longlong *)(pCVar31 + 0x18) - (longlong)pCVar46 >> 4;
-        if (lVar29 != 0) {
-          *(longlong *)(pCVar31 + 0x18) = *(longlong *)(pCVar31 + 0x18) + lVar29 * -0x10;
-        }
-        *(longlong *)(pCVar31 + 0x10) = 0;
-        if ((pCVar46 != (CRectanglesShape *)(pCVar31 + 0x28)) &&
-           (pCVar46 != (CRectanglesShape *)0x0)) {
-          pvVar22 = GetProcessHeap();
-          HeapFree(pvVar22,0,pCVar46);
-        }
-        pCVar12 = *(CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter> **)(pCVar31 + 8);
-        if (pCVar12 != (CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter> *)0x0) {
-          *(longlong *)(pCVar31 + 8) = 0;
-          if (*(code **)(*(longlong *)pCVar12 + 0x10) ==
-              CMILCOMBaseT<ID2D1GeometrySink,ID2D1GeometrySink,CMilObjectDeleter>::Release) {
-            CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter>::InternalRelease(pCVar12);
-          }
-          else {
-            (**(code **)(*(longlong *)pCVar12 + 0x10))();
-          }
-        }
-        pvVar21 = TlsGetValue(CThreadContext::s_dwTlsIndex);
-        if (pvVar21 == (LPVOID)0x0) {
-          pCVar23 = _Alloc_DefaultHeap__SAPEAX_K_Z(0x1c0);
-          if ((pCVar23 == (CThreadContext *)0x0) ||
-             (pvVar21 = (LPVOID)CThreadContext::CThreadContext(pCVar23), pvVar21 == (LPVOID)0x0)) {
-            MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,-0x7ff8fff2,0x28,(void *)0x0)
-            ;
-                    /* WARNING: Subroutine does not return */
-            ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
-          }
-LAB_11:
-          TlsSetValue(CThreadContext::s_dwTlsIndex,pvVar21);
-        }
-LAB_12:
-        if (*(uint *)((longlong)pvVar21 + 0x34) < *(uint *)((longlong)pvVar21 + 0x30)) {
-LAB_8:
-          *(longlong *)pCVar31 = *(longlong *)((longlong)pvVar21 + 0x38);
-          *(CRenderingEffect **)((longlong)pvVar21 + 0x38) = pCVar31;
-          *(int *)((longlong)pvVar21 + 0x34) = *(int *)((longlong)pvVar21 + 0x34) + 1;
-          return lVar17;
-        }
-        goto LAB_9;
-      }
-    }
-    else {
-      if ((((char)uStack_1f0 != -1) && ((char)uStack_1f0 != '\0')) && ((char)uStack_1f0 != '\x01'))
-      {
-        std::
-        _Tree<std::_Tmap_traits<CSceneNode*___ptr64,void*___ptr64,std::less<CSceneNode*___ptr64>,std::allocator<std::pair<CSceneNode*___ptr64_const,void*___ptr64>_>,0>_>
-        ::
-        ~_Tree<std::_Tmap_traits<CSceneNode*___ptr64,void*___ptr64,std::less<CSceneNode*___ptr64>,std::allocator<std::pair<CSceneNode*___ptr64_const,void*___ptr64>_>,0>_>
-                  ((_Tree<std::_Tmap_traits<CSceneNode*___ptr64,void*___ptr64,std::less<CSceneNode*___ptr64>,std::allocator<std::pair<CSceneNode*___ptr64_const,void*___ptr64>_>,0>_>
-                    *)local_208);
-      }
-      pCVar31 = local_410;
-      if (local_410 == (CRenderingEffect *)0x0) {
-        return lVar17;
-      }
-      pcVar25 = (code *)**(longlong **)local_410;
-      if (pcVar25 == CRectanglesShape::_vector_deleting_destructor_) {
-        *(undefined ***)local_410 = &CRectanglesShape::_vftable_;
-        lVar29 = *(longlong *)(local_410 + 0x18) - *(longlong *)(local_410 + 0x10) >> 4;
-        if (lVar29 != 0) {
-          *(longlong *)(local_410 + 0x18) = *(longlong *)(local_410 + 0x18) + lVar29 * -0x10;
-        }
-        pCVar11 = *(CMILCOMBaseWeakRefSource<CResourceDeleter> **)(local_410 + 0x38);
-        if (pCVar11 != (CMILCOMBaseWeakRefSource<CResourceDeleter> *)0x0) {
-          if (*(code **)(*(longlong *)pCVar11 + 0x10) ==
-              CMILCOMBaseWeakRefSource<CResourceDeleter>::InternalRelease) {
-            CMILCOMBaseWeakRefSource<CResourceDeleter>::InternalRelease(pCVar11);
-          }
-          else {
-            (**(code **)(*(longlong *)pCVar11 + 0x10))();
-          }
-          *(longlong *)(pCVar31 + 0x38) = 0;
-        }
-        pCVar46 = *(CRectanglesShape **)(pCVar31 + 0x10);
-        lVar29 = *(longlong *)(pCVar31 + 0x18) - (longlong)pCVar46 >> 4;
-        if (lVar29 != 0) {
-          *(longlong *)(pCVar31 + 0x18) = *(longlong *)(pCVar31 + 0x18) + lVar29 * -0x10;
-        }
-        *(longlong *)(pCVar31 + 0x10) = 0;
-        if ((pCVar46 != (CRectanglesShape *)(pCVar31 + 0x28)) &&
-           (pCVar46 != (CRectanglesShape *)0x0)) {
-          pvVar22 = GetProcessHeap();
-          HeapFree(pvVar22,0,pCVar46);
-        }
-        pCVar12 = *(CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter> **)(pCVar31 + 8);
-        if (pCVar12 != (CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter> *)0x0) {
-          *(longlong *)(pCVar31 + 8) = 0;
-          if (*(code **)(*(longlong *)pCVar12 + 0x10) ==
-              CMILCOMBaseT<ID2D1GeometrySink,ID2D1GeometrySink,CMilObjectDeleter>::Release) {
-            CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter>::InternalRelease(pCVar12);
-          }
-          else {
-            (**(code **)(*(longlong *)pCVar12 + 0x10))();
-          }
-        }
-        pvVar21 = TlsGetValue(CThreadContext::s_dwTlsIndex);
-        if (pvVar21 == (LPVOID)0x0) {
-          pCVar23 = _Alloc_DefaultHeap__SAPEAX_K_Z(0x1c0);
-          if ((pCVar23 == (CThreadContext *)0x0) ||
-             (pvVar21 = (LPVOID)CThreadContext::CThreadContext(pCVar23), pvVar21 == (LPVOID)0x0)) {
-            MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,-0x7ff8fff2,0x28,(void *)0x0)
-            ;
-                    /* WARNING: Subroutine does not return */
-            ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
-          }
-          goto LAB_11;
-        }
-        goto LAB_12;
-      }
-    }
-LAB_7:
-    (*pcVar25)(local_410,1);
-  }
-  return lVar17;
+        _Erase_tree<std::allocator<std::_Tree_node<std::pair<unsigned___int64_const_,CCursorState*___ptr64>,void*___ptr64>_>_>
+                  ((_Tree_val<std::_Tree_simple_types<std::pair<unsigned___int64_const_,CCursorState*___ptr64>_>_>
+                    *)&local_280,
+                   (allocator<std::_Tree_node<std::pair<unsigned___int64_const_,CCursorState*___ptr64>,void*___ptr64>_>
+                    *)&local_280,
+                   (_Tree_node<std::pair<unsigned___int64_const_,CCursorState*___ptr64>,void*___ptr64>
+                    *)plVar14[2]);
+        plVar3 = (longlong *)*plVar14;
+        operator_delete__(plVar14,0x30);
+        plVar14 = plVar3;
+      } while (*(char *)((longlong)plVar3 + 0x19) == '\0');
+      operator_delete__((void *)CONCAT44(uStack_27c,local_280),0x30);
+      goto LAB_1;
+    }
+  }
+  operator_delete__(pvVar16,0x30);
+LAB_1:
+  if (local_288 != (CRenderingEffect *)0x0) {
+    (*(code *)**(undefined8 **)local_288)(local_288,1);
+  }
+  return lVar12;
 }
 

```


## CDrawingContext::BeginFrame

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,refcount,length,address,called|
|ratio|0.51|
|i_ratio|0.62|
|m_ratio|0.98|
|b_ratio|0.94|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|BeginFrame|BeginFrame|
|fullname|CDrawingContext::BeginFrame|CDrawingContext::BeginFrame|
|`refcount`|18|20|
|`length`|3107|2903|
|`called`|<details><summary>Expand for full list:<br>?Alloc@DefaultHeap@@SAPEAX_K@Z<br>?Free@DefaultHeap@@SAXPEAX@Z<br>CD2DContext::PushTarget<br>CD3DDevice::Release<br>CDDisplayRenderTarget::GetTargetId`adjustor{72}'<br>CDeviceTextureTarget::GetRenderTargetInfo<br>CDrawingContext::UpdateRenderTargetInfo<br>CLegacyRenderTarget::GetTargetId<br>CLegacyRenderTarget::GetTargetId`adjustor{72}'<br>CMILMatrix::IsIdentity<0><br>CMILRefCountImpl::AddReference</summary>CProcessAttributionManager::CreateNullProcessAttribution<br>CRenderPerf::NotifyBeginFrame<br>CWatermarkStack<CDrawingContext::StackStateEntry,64,2,10>::Grow<br>DynArrayImpl<0>::Grow<br>IDeviceResourceMethodsT<CD2DBitmap,IDeviceTextureTarget>::GetDevice`adjustor{256}'<br>IDeviceResourceMethodsT<CD2DBitmap,IDeviceTextureTarget>::IsValid<br>IDeviceResourceMethodsT<CD2DBitmap,IDeviceTextureTarget>::IsValid`adjustor{256}'<br>IDeviceSurfaceMethodsT<CD2DBitmap,IDeviceTextureTarget>::GetSize`adjustor{184}'<br>McGenEventWrite_EventWriteTransfer<br>MilInstrumentationCheckHR_MaybeFailFast<br>ModuleFailFastForHRESULT<br>_Init_thread_footer<br>_Init_thread_header<br>__security_check_cookie<br>_guard_dispatch_icall$thunk$10345483385596137414<br>detail::vector_facade<CScopedClipStack::ClippingScopeState,detail::buffer_impl<CScopedClipStack::ClippingScopeState,10,1,detail::liberal_expansion_policy>_>::emplace_back<><br>memcpy<br>wil::com_ptr_t<CD2DBitmap,wil::err_returncode_policy>::operator=<br>wil::com_ptr_t<CD3DDevice,wil::err_returncode_policy>::reset<br>wil::details::in1diag3::Log_Hr<br>wil::details::in1diag3::Return_Hr</details>|<details><summary>Expand for full list:<br>?Alloc@DefaultHeap@@SAPEAX_K@Z<br>?Free@DefaultHeap@@SAXPEAX@Z<br>CD2DContext::PushTarget<br>CD3DDevice::Release<br>CDDisplayRenderTarget::GetTargetId`adjustor{72}'<br>CDeviceTextureTarget::GetRenderTargetInfo<br>CDrawingContext::UpdateRenderTargetInfo<br>CLegacyRenderTarget::GetTargetId<br>CLegacyRenderTarget::GetTargetId`adjustor{72}'<br>CMILMatrix::IsIdentity<0><br>CMILRefCountImpl::AddReference</summary>CProcessAttributionManager::CreateNullProcessAttribution<br>CRenderPerf::NotifyBeginFrame<br>CWatermarkStack<CDrawingContext::StackStateEntry,64,2,10>::Grow<br>DynArrayImpl<0>::Grow<br>IDeviceResourceMethodsT<CD2DBitmap,IDeviceTextureTarget>::GetDevice`adjustor{256}'<br>IDeviceResourceMethodsT<CD2DBitmap,IDeviceTextureTarget>::IsValid<br>IDeviceResourceMethodsT<CD2DBitmap,IDeviceTextureTarget>::IsValid`adjustor{256}'<br>IDeviceSurfaceMethodsT<CD2DBitmap,IDeviceTextureTarget>::GetSize`adjustor{184}'<br>McTemplateU0ppffffubr6_EventWriteTransfer<br>MilInstrumentationCheckHR_MaybeFailFast<br>ModuleFailFastForHRESULT<br>_Init_thread_footer<br>_Init_thread_header<br>_guard_dispatch_icall$thunk$10345483385596137414<br>detail::vector_facade<CScopedClipStack::ClippingScopeState,detail::buffer_impl<CScopedClipStack::ClippingScopeState,10,1,detail::liberal_expansion_policy>_>::emplace_back<><br>memcpy<br>wil::com_ptr_t<CD2DBitmap,wil::err_returncode_policy>::operator=<br>wil::com_ptr_t<CD3DDevice,wil::err_returncode_policy>::reset<br>wil::details::in1diag3::Log_Hr<br>wil::details::in1diag3::Return_Hr</details>|
|calling|<details><summary>Expand for full list:<br><lambda_e4077e5e8eddb22a4c31a0c3987f7b3a>::operator()<br>CCachedVisualImage::CCachedTarget::Update<br>CCaptureRenderTarget::RenderCursors_Feature_FixCaptureMagnifierCursors_Iteration2_Off<br>CCursorState::AddShadowToShape<br>CDDARenderTarget::Render<br>CDDisplayRenderTarget::Render<br>CHolographicInteropTarget::RenderTexture<br>CLegacyRenderTarget::Render<br>COffScreenRenderTarget::RenderTargetDirty<br>CRemoteAppRenderTarget::RenderDirtyRegion<br>CRemoteRenderTarget::Render</summary>CStockBitmapProducer::EnsureDeviceTexture<br>CSubDrawingContext::BeginFrame<br>CaptureBitsResponse::RenderForCapture</details>|<details><summary>Expand for full list:<br><lambda_e4077e5e8eddb22a4c31a0c3987f7b3a>::operator()<br>CCachedVisualImage::CCachedTarget::Update<br>CCaptureRenderTarget::RenderCursors_Feature_FixCaptureMagnifierCursors_Iteration2_Off<br>CCursorState::AddShadowToShape<br>CDDARenderTarget::Render<br>CDDisplayRenderTarget::Render<br>CHolographicInteropTarget::RenderTexture<br>CLegacyRenderTarget::Render<br>COffScreenRenderTarget::RenderTargetDirty<br>CRemoteAppRenderTarget::RenderDirtyRegion<br>CRemoteRenderTarget::Render</summary>CStockBitmapProducer::EnsureDeviceTexture<br>CSubDrawingContext::BeginFrame<br>CaptureBitsResponse::RenderForCapture</details>|
|paramcount|6|6|
|`address`|180140680|1800cf3a0|
|sig|long __thiscall BeginFrame(CDrawingContext * this, IDeviceTarget * param_1, CMILMatrix * param_2, _D3DCOLORVALUE * param_3, Type param_4, COverlayContext * param_5)|long __thiscall BeginFrame(CDrawingContext * this, IDeviceTarget * param_1, CMILMatrix * param_2, _D3DCOLORVALUE * param_3, Type param_4, COverlayContext * param_5)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### CDrawingContext::BeginFrame Called Diff


```diff
--- CDrawingContext::BeginFrame called
+++ CDrawingContext::BeginFrame called
@@ -20 +20 @@
-McGenEventWrite_EventWriteTransfer
+McTemplateU0ppffffubr6_EventWriteTransfer
@@ -25 +24,0 @@
-__security_check_cookie
```


### CDrawingContext::BeginFrame Diff


```diff
--- CDrawingContext::BeginFrame
+++ CDrawingContext::BeginFrame
@@ -1,599 +1,540 @@
 
 /* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
    guard_dispatch_icall */
-/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
 /* public: long __cdecl CDrawingContext::BeginFrame(class IDeviceTarget * __ptr64,class CMILMatrix
    const * __ptr64,struct _D3DCOLORVALUE const * __ptr64,enum IRenderTarget::Type,class
    COverlayContext * __ptr64) __ptr64 */
 
 long __thiscall
 CDrawingContext::BeginFrame
           (CDrawingContext *this,IDeviceTarget *param_1,CMILMatrix *param_2,_D3DCOLORVALUE *param_3,
           Type param_4,COverlayContext *param_5)
 
 {
   CMILMatrix *this_00;
   CDrawingContext *pCVar1;
   CWatermarkStack<CDrawingContext::StackStateEntry,64,2,10> *this_01;
   int iVar2;
   CMILRefCountImpl *this_02;
   CD3DDevice *this_03;
   code *pcVar3;
   CDeviceTextureTarget *this_04;
-  undefined8 uVar4;
-  longlong *plVar5;
-  undefined1 auVar6 [16];
-  undefined4 uVar7;
+  longlong lVar4;
+  undefined8 uVar5;
+  longlong *plVar6;
+  undefined1 auVar7 [16];
   undefined4 uVar8;
   undefined4 uVar9;
-  char cVar10;
+  undefined4 uVar10;
   CProcessAttribution *pCVar11;
   CProcessAttribution *pCVar12;
   CDrawingContext CVar13;
-  bool bVar14;
-  long lVar15;
-  undefined4 *puVar16;
-  CD3DDevice *pCVar17;
-  tagCOMPOSITION_TARGET_ID *ptVar18;
-  undefined8 *puVar19;
+  long lVar14;
+  undefined4 *puVar15;
+  CD3DDevice *pCVar16;
+  tagCOMPOSITION_TARGET_ID *ptVar17;
+  undefined8 *puVar18;
   void *_Dst;
-  longlong lVar20;
-  uint *puVar21;
   CLegacyRenderTarget *this_05;
+  ulonglong uVar19;
+  CProcessAttributionManager *this_06;
+  uint uVar20;
+  __uint64 _Var21;
   ulonglong uVar22;
-  CProcessAttributionManager *this_06;
-  uint uVar23;
-  __uint64 _Var24;
-  ulonglong uVar25;
   DynArrayImpl<0> *this_07;
-  ulonglong uVar26;
-  char *pcVar27;
-  uint uVar28;
-  _D3DCOLORVALUE *p_Var29;
-  uint uVar30;
+  ulonglong uVar23;
+  char *pcVar24;
+  uint uVar25;
+  IDeviceTarget *pIVar26;
+  uint uVar27;
   void *unaff_retaddr;
-  undefined1 auStackY_1b8 [32];
-  byte local_188 [8];
-  undefined4 local_180 [2];
-  undefined4 local_178 [2];
-  float local_170 [2];
-  float local_168 [2];
-  undefined8 local_160;
-  undefined4 uStack_158;
-  undefined4 uStack_154;
-  undefined8 local_150;
-  undefined8 local_140;
-  CProcessAttribution *local_138;
-  undefined8 uStack_130;
-  undefined1 local_118 [8];
-  CDrawingContext *local_110;
-  IDeviceTarget *local_108;
-  undefined1 local_100 [8];
-  undefined1 local_f8 [48];
-  CDrawingContext **local_c8;
-  undefined8 local_c0;
-  IDeviceTarget **local_b8;
-  undefined8 local_b0;
-  undefined4 *local_a8;
-  undefined8 local_a0;
-  undefined4 *local_98;
-  undefined8 local_90;
-  float *local_88;
-  undefined8 local_80;
-  float *local_78;
-  undefined8 local_70;
-  byte *local_68;
-  undefined8 local_60;
-  CMILMatrix *local_58;
-  uint local_50;
-  undefined4 local_4c;
-  ulonglong local_48;
+  undefined8 local_b8;
+  undefined4 uStack_b0;
+  undefined4 uStack_ac;
+  undefined8 local_a8;
+  undefined8 local_98;
+  CProcessAttribution *local_90;
+  undefined8 uStack_88;
+  undefined1 local_70 [8];
+  undefined1 local_68 [8];
+  undefined1 local_60 [40];
   
-  local_48 = __security_cookie ^ (ulonglong)auStackY_1b8;
   *(undefined4 *)(this + 0x1f2c) = 0;
   this[0x1f30] = (CDrawingContext)0x0;
   *(undefined8 *)(this + 0x1f00) = 0;
   *(undefined8 *)(this + 0x1f08) = 0;
   *(undefined8 *)(this + 0x1f10) = 0;
   *(undefined8 *)(this + 0x1f18) = 0;
   *(undefined8 *)(this + 0x1f20) = 0;
-  pcVar27 = (char *)param_2;
-  p_Var29 = param_3;
+  pcVar24 = (char *)param_2;
+  pIVar26 = (IDeviceTarget *)param_3;
   if (*(code **)(*(longlong *)param_1 + 0x78) == CDeviceTextureTarget::GetRenderTargetInfo) {
-    puVar16 = (undefined4 *)
+    puVar15 = (undefined4 *)
               CDeviceTextureTarget::GetRenderTargetInfo((CDeviceTextureTarget *)param_1);
   }
   else {
-    puVar16 = (undefined4 *)(**(code **)(*(longlong *)param_1 + 0x78))();
-  }
-  uVar7 = puVar16[1];
-  uVar8 = puVar16[2];
-  uVar9 = puVar16[3];
-  uVar22 = 0;
+    puVar15 = (undefined4 *)(**(code **)(*(longlong *)param_1 + 0x78))();
+  }
+  uVar8 = puVar15[1];
+  uVar9 = puVar15[2];
+  uVar10 = puVar15[3];
+  uVar19 = 0;
   this_02 = *(CMILRefCountImpl **)(this + 0x20);
-  *(undefined4 *)(this + 0x38) = *puVar16;
-  *(undefined4 *)(this + 0x3c) = uVar7;
-  *(undefined4 *)(this + 0x40) = uVar8;
-  *(undefined4 *)(this + 0x44) = uVar9;
-  local_140 = 0xc0;
-  *(undefined8 *)(this + 0x48) = *(undefined8 *)(puVar16 + 4);
+  *(undefined4 *)(this + 0x38) = *puVar15;
+  *(undefined4 *)(this + 0x3c) = uVar8;
+  *(undefined4 *)(this + 0x40) = uVar9;
+  *(undefined4 *)(this + 0x44) = uVar10;
+  local_98 = 0xc0;
+  *(undefined8 *)(this + 0x48) = *(undefined8 *)(puVar15 + 4);
   if (*(longlong *)(this + 0xd0) == 0) {
     if (this_02 != (CMILRefCountImpl *)0x0) {
       if (*(code **)(*(longlong *)this_02 + 8) == CMILRefCountImpl::AddReference) {
         CMILRefCountImpl::AddReference(this_02);
       }
       else {
         (**(code **)(*(longlong *)this_02 + 8))();
       }
     }
     pcVar3 = *(code **)(*(longlong *)param_1 + 0x18);
     if (pcVar3 == IDeviceResourceMethodsT<CD2DBitmap,IDeviceTextureTarget>::IsValid_adjustor_256__)
     {
-      uVar30 = IDeviceResourceMethodsT<CD2DBitmap,IDeviceTextureTarget>::IsValid_adjustor_256__
+      uVar27 = IDeviceResourceMethodsT<CD2DBitmap,IDeviceTextureTarget>::IsValid_adjustor_256__
                          ((IDeviceResourceMethodsT<CD2DBitmap,IDeviceTextureTarget> *)param_1);
     }
     else if (pcVar3 == IDeviceResourceMethodsT<CD2DBitmap,IDeviceTextureTarget>::IsValid) {
-      uVar30 = IDeviceResourceMethodsT<CD2DBitmap,IDeviceTextureTarget>::IsValid
+      uVar27 = IDeviceResourceMethodsT<CD2DBitmap,IDeviceTextureTarget>::IsValid
                          ((IDeviceResourceMethodsT<CD2DBitmap,IDeviceTextureTarget> *)param_1);
     }
     else {
-      uVar30 = (*pcVar3)();
-    }
-    if ((int)uVar30 < 0) {
-      uVar23 = 0x6c;
+      uVar27 = (*pcVar3)();
+    }
+    if ((int)uVar27 < 0) {
+      uVar20 = 0x6c;
 LAB_0:
-      p_Var29 = (_D3DCOLORVALUE *)(ulonglong)uVar30;
-      pcVar27 = (char *)0x0;
-      MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,uVar30,uVar23,(void *)0x0);
+      pIVar26 = (IDeviceTarget *)(ulonglong)uVar27;
+      pcVar24 = (char *)0x0;
+      MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,uVar27,uVar20,(void *)0x0);
       wil::com_ptr_t<CD2DBitmap,wil::err_returncode_policy>::operator=
                 ((com_ptr_t<CD2DBitmap,wil::err_returncode_policy> *)(this + 0x20),
                  (CD2DBitmap *)this_02);
       if (*(longlong *)(this + 0x20) == 0) {
         wil::com_ptr_t<CD3DDevice,wil::err_returncode_policy>::reset
                   ((com_ptr_t<CD3DDevice,wil::err_returncode_policy> *)(this + 0x28));
       }
       else {
         UpdateRenderTargetInfo(this);
       }
     }
     else {
       this[0x1f81] = (CDrawingContext)0x1;
-      local_160 = *(CD3DDevice **)(this + 0x20);
+      local_b8 = *(CD3DDevice **)(this + 0x20);
       *(IDeviceTarget **)(this + 0x20) = param_1;
       (**(code **)(*(longlong *)param_1 + 8))(param_1);
-      if (local_160 != (CD3DDevice *)0x0) {
-        (**(code **)(*(CProcessAttribution **)local_160 + 0x10))();
+      if (local_b8 != (CD3DDevice *)0x0) {
+        (**(code **)(*(CProcessAttribution **)local_b8 + 0x10))();
       }
       if (*(longlong *)(this + 0x28) == 0) {
         if (*(code **)(*(longlong *)param_1 + 0x28) ==
             IDeviceResourceMethodsT<CD2DBitmap,IDeviceTextureTarget>::GetDevice_adjustor_256__) {
-          pCVar17 = IDeviceResourceMethodsT<CD2DBitmap,IDeviceTextureTarget>::
+          pCVar16 = IDeviceResourceMethodsT<CD2DBitmap,IDeviceTextureTarget>::
                     GetDevice_adjustor_256__
                               ((IDeviceResourceMethodsT<CD2DBitmap,IDeviceTextureTarget> *)param_1);
         }
         else {
-          pCVar17 = (CD3DDevice *)(**(code **)(*(longlong *)param_1 + 0x28))();
-        }
-        local_160 = *(CD3DDevice **)(this + 0x28);
-        *(CD3DDevice **)(this + 0x28) = pCVar17;
-        if (pCVar17 != (CD3DDevice *)0x0) {
+          pCVar16 = (CD3DDevice *)(**(code **)(*(longlong *)param_1 + 0x28))();
+        }
+        local_b8 = *(CD3DDevice **)(this + 0x28);
+        *(CD3DDevice **)(this + 0x28) = pCVar16;
+        if (pCVar16 != (CD3DDevice *)0x0) {
           LOCK();
-          pCVar17 = pCVar17 + 8;
-          iVar2 = *(int *)pCVar17;
-          *(int *)pCVar17 = *(int *)pCVar17 + 1;
+          pCVar16 = pCVar16 + 8;
+          iVar2 = *(int *)pCVar16;
+          *(int *)pCVar16 = *(int *)pCVar16 + 1;
           UNLOCK();
-          if (*(int *)pCVar17 == 0 || SCARRY4(iVar2,1) != *(int *)pCVar17 < 0) {
-            p_Var29 = (_D3DCOLORVALUE *)0x8007029c;
+          if (*(int *)pCVar16 == 0 || SCARRY4(iVar2,1) != *(int *)pCVar16 < 0) {
+            pIVar26 = (IDeviceTarget *)0x8007029c;
             wil::details::in1diag3::Log_Hr
                       (unaff_retaddr,0x18,
                        "onecoreuap\\windows\\dwm\\common\\shared\\refcountbase.cpp",-0x7ff8fd64);
           }
         }
-        if (local_160 != (CD3DDevice *)0x0) {
-          CD3DDevice::Release(local_160);
+        if (local_b8 != (CD3DDevice *)0x0) {
+          CD3DDevice::Release(local_b8);
         }
       }
       this_04 = *(CDeviceTextureTarget **)(this + 0x20);
       if (*(code **)(*(longlong *)this_04 + 0x78) == CDeviceTextureTarget::GetRenderTargetInfo) {
-        puVar19 = (undefined8 *)CDeviceTextureTarget::GetRenderTargetInfo(this_04);
+        puVar18 = (undefined8 *)CDeviceTextureTarget::GetRenderTargetInfo(this_04);
       }
       else {
-        puVar19 = (undefined8 *)(**(code **)(*(longlong *)this_04 + 0x78))(this_04,local_f8);
-      }
-      uVar4 = puVar19[1];
-      pcVar27 = *(char **)(this + 0x20);
-      *(undefined8 *)(this + 0x38) = *puVar19;
-      *(undefined8 *)(this + 0x40) = uVar4;
-      *(undefined8 *)(this + 0x48) = puVar19[2];
-      uVar30 = CD2DContext::PushTarget
+        puVar18 = (undefined8 *)(**(code **)(*(longlong *)this_04 + 0x78))(this_04,local_60);
+      }
+      uVar5 = puVar18[1];
+      pcVar24 = *(char **)(this + 0x20);
+      *(undefined8 *)(this + 0x38) = *puVar18;
+      *(undefined8 *)(this + 0x40) = uVar5;
+      *(undefined8 *)(this + 0x48) = puVar18[2];
+      uVar27 = CD2DContext::PushTarget
                          ((CD2DContext *)(*(longlong *)(this + 0x28) + 0x10),
-                          (ID2DContextOwner *)(this + 0x18),(IDeviceTarget *)pcVar27);
-      if ((int)uVar30 < 0) {
-        uVar23 = 0x85;
+                          (ID2DContextOwner *)(this + 0x18),(IDeviceTarget *)pcVar24);
+      if ((int)uVar27 < 0) {
+        uVar20 = 0x85;
         goto LAB_0;
       }
       *(undefined4 *)(this + 0x1f2c) = 0;
       this[0x1f30] = (CDrawingContext)0x0;
-      lVar20 = *(longlong *)(this + 0x2f0);
-      if ((lVar20 != *(longlong *)(this + 0x2e8)) && (*(longlong *)(lVar20 + -0xb8) == 0)) {
+      lVar4 = *(longlong *)(this + 0x2f0);
+      if ((lVar4 != *(longlong *)(this + 0x2e8)) && (*(longlong *)(lVar4 + -0xb8) == 0)) {
         pcVar3 = *(code **)(*(longlong *)
                              *(IDeviceSurfaceMethodsT<CD2DBitmap,IDeviceTextureTarget> **)
-                              (lVar20 + -0xc0) + 0x58);
+                              (lVar4 + -0xc0) + 0x58);
         if (pcVar3 == IDeviceSurfaceMethodsT<CD2DBitmap,IDeviceTextureTarget>::
                       GetSize_adjustor_184__) {
           IDeviceSurfaceMethodsT<CD2DBitmap,IDeviceTextureTarget>::GetSize_adjustor_184__
-                    (*(IDeviceSurfaceMethodsT<CD2DBitmap,IDeviceTextureTarget> **)(lVar20 + -0xc0));
+                    (*(IDeviceSurfaceMethodsT<CD2DBitmap,IDeviceTextureTarget> **)(lVar4 + -0xc0));
         }
         else {
           (*pcVar3)();
         }
       }
-      uVar4 = *(undefined8 *)(this + 0x20);
+      uVar5 = *(undefined8 *)(this + 0x20);
       detail::
       vector_facade<CScopedClipStack::ClippingScopeState,detail::buffer_impl<CScopedClipStack::ClippingScopeState,10,1,detail::liberal_expansion_policy>_>
       ::emplace_back<>((vector_facade<CScopedClipStack::ClippingScopeState,detail::buffer_impl<CScopedClipStack::ClippingScopeState,10,1,detail::liberal_expansion_policy>_>
                         *)(this + 0x2e8));
-      lVar20 = *(longlong *)(this + 0x2f0);
-      *(undefined1 *)(lVar20 + -8) = 0;
-      *(undefined8 *)(lVar20 + -0xc0) = uVar4;
-      *(undefined8 *)(lVar20 + -0x98) = 0x3f800000;
-      *(undefined8 *)(lVar20 + -0x90) = 0;
-      *(undefined4 *)(lVar20 + -0x88) = 0;
-      *(undefined8 *)(lVar20 + -0x84) = 0x3f800000;
-      *(undefined8 *)(lVar20 + -0x7c) = 0;
-      *(undefined4 *)(lVar20 + -0x74) = 0;
-      *(undefined8 *)(lVar20 + -0x70) = 0x3f800000;
-      *(undefined8 *)(lVar20 + -0x68) = 0;
-      *(undefined4 *)(lVar20 + -0x60) = 0;
-      *(undefined4 *)(lVar20 + -0x5c) = 0x3f800000;
-      *(byte *)(lVar20 + -0x57) = *(byte *)(lVar20 + -0x57) & 0xe9;
-      *(byte *)(lVar20 + -0x57) = *(byte *)(lVar20 + -0x57) | 0x29;
-      *(undefined1 *)(lVar20 + -0x58) = 0xaa;
-      *(undefined8 *)(lVar20 + -0x54) = 0x3f800000;
-      *(undefined8 *)(lVar20 + -0x4c) = 0;
-      *(undefined4 *)(lVar20 + -0x44) = 0;
-      *(undefined8 *)(lVar20 + -0x40) = 0x3f800000;
-      *(undefined8 *)(lVar20 + -0x38) = 0;
-      *(undefined4 *)(lVar20 + -0x30) = 0;
-      *(undefined8 *)(lVar20 + -0x2c) = 0x3f800000;
-      *(undefined8 *)(lVar20 + -0x24) = 0;
-      *(undefined4 *)(lVar20 + -0x1c) = 0;
-      *(undefined4 *)(lVar20 + -0x18) = 0x3f800000;
-      *(byte *)(lVar20 + -0x13) = *(byte *)(lVar20 + -0x13) & 0xe9;
-      *(byte *)(lVar20 + -0x13) = *(byte *)(lVar20 + -0x13) | 0x29;
-      *(undefined1 *)(lVar20 + -0x14) = 0xaa;
+      lVar4 = *(longlong *)(this + 0x2f0);
+      *(undefined1 *)(lVar4 + -8) = 0;
+      *(undefined8 *)(lVar4 + -0xc0) = uVar5;
+      *(undefined8 *)(lVar4 + -0x98) = 0x3f800000;
+      *(undefined8 *)(lVar4 + -0x90) = 0;
+      *(undefined4 *)(lVar4 + -0x88) = 0;
+      *(undefined8 *)(lVar4 + -0x84) = 0x3f800000;
+      *(undefined8 *)(lVar4 + -0x7c) = 0;
+      *(undefined4 *)(lVar4 + -0x74) = 0;
+      *(undefined8 *)(lVar4 + -0x70) = 0x3f800000;
+      *(undefined8 *)(lVar4 + -0x68) = 0;
+      *(undefined4 *)(lVar4 + -0x60) = 0;
+      *(undefined4 *)(lVar4 + -0x5c) = 0x3f800000;
+      *(byte *)(lVar4 + -0x57) = *(byte *)(lVar4 + -0x57) & 0xe9;
+      *(byte *)(lVar4 + -0x57) = *(byte *)(lVar4 + -0x57) | 0x29;
+      *(undefined1 *)(lVar4 + -0x58) = 0xaa;
+      *(undefined8 *)(lVar4 + -0x54) = 0x3f800000;
+      *(undefined8 *)(lVar4 + -0x4c) = 0;
+      *(undefined4 *)(lVar4 + -0x44) = 0;
+      *(undefined8 *)(lVar4 + -0x40) = 0x3f800000;
+      *(undefined8 *)(lVar4 + -0x38) = 0;
+      *(undefined4 *)(lVar4 + -0x30) = 0;
+      *(undefined8 *)(lVar4 + -0x2c) = 0x3f800000;
+      *(undefined8 *)(lVar4 + -0x24) = 0;
+      *(undefined4 *)(lVar4 + -0x1c) = 0;
+      *(undefined4 *)(lVar4 + -0x18) = 0x3f800000;
+      *(byte *)(lVar4 + -0x13) = *(byte *)(lVar4 + -0x13) & 0xe9;
+      *(byte *)(lVar4 + -0x13) = *(byte *)(lVar4 + -0x13) | 0x29;
+      *(undefined1 *)(lVar4 + -0x14) = 0xaa;
       this[0x1f82] = (CDrawingContext)0x0;
-      uVar30 = 0;
+      uVar27 = 0;
     }
     if (this_02 != (CMILRefCountImpl *)0x0) {
       (**(code **)(*(longlong *)this_02 + 0x10))(this_02);
     }
-    if ((int)uVar30 < 0) {
-      uVar23 = 0xf6;
+    if ((int)uVar27 < 0) {
+      uVar20 = 0xf6;
       goto LAB_1;
     }
   }
   else {
     *(IDeviceTarget **)(this + 0x20) = param_1;
     (**(code **)(*(longlong *)param_1 + 8))(param_1);
     if (this_02 != (CMILRefCountImpl *)0x0) {
       (**(code **)(*(longlong *)this_02 + 0x10))(this_02);
     }
     if (*(code **)(*(longlong *)param_1 + 0x28) ==
         IDeviceResourceMethodsT<CD2DBitmap,IDeviceTextureTarget>::GetDevice_adjustor_256__) {
-      pCVar17 = IDeviceResourceMethodsT<CD2DBitmap,IDeviceTextureTarget>::GetDevice_adjustor_256__
+      pCVar16 = IDeviceResourceMethodsT<CD2DBitmap,IDeviceTextureTarget>::GetDevice_adjustor_256__
                           ((IDeviceResourceMethodsT<CD2DBitmap,IDeviceTextureTarget> *)param_1);
     }
     else {
-      pCVar17 = (CD3DDevice *)(**(code **)(*(longlong *)param_1 + 0x28))();
+      pCVar16 = (CD3DDevice *)(**(code **)(*(longlong *)param_1 + 0x28))();
     }
     this_03 = *(CD3DDevice **)(this + 0x28);
-    *(CD3DDevice **)(this + 0x28) = pCVar17;
-    if (pCVar17 != (CD3DDevice *)0x0) {
+    *(CD3DDevice **)(this + 0x28) = pCVar16;
+    if (pCVar16 != (CD3DDevice *)0x0) {
       LOCK();
-      pCVar17 = pCVar17 + 8;
-      iVar2 = *(int *)pCVar17;
-      *(int *)pCVar17 = *(int *)pCVar17 + 1;
+      pCVar16 = pCVar16 + 8;
+      iVar2 = *(int *)pCVar16;
+      *(int *)pCVar16 = *(int *)pCVar16 + 1;
       UNLOCK();
-      if (*(int *)pCVar17 == 0 || SCARRY4(iVar2,1) != *(int *)pCVar17 < 0) {
-        pcVar27 = "onecoreuap\\windows\\dwm\\common\\shared\\refcountbase.cpp";
-        p_Var29 = (_D3DCOLORVALUE *)0x8007029c;
+      if (*(int *)pCVar16 == 0 || SCARRY4(iVar2,1) != *(int *)pCVar16 < 0) {
+        pcVar24 = "onecoreuap\\windows\\dwm\\common\\shared\\refcountbase.cpp";
+        pIVar26 = (IDeviceTarget *)0x8007029c;
         wil::details::in1diag3::Log_Hr
                   (unaff_retaddr,0x18,"onecoreuap\\windows\\dwm\\common\\shared\\refcountbase.cpp",
                    -0x7ff8fd64);
       }
     }
     if (this_03 != (CD3DDevice *)0x0) {
       CD3DDevice::Release(this_03);
     }
   }
   if ((Microsoft_Windows_Dwm_CoreEnableBits._1_1_ & 0x20) != 0) {
-    if ((param_2 == (CMILMatrix *)0x0) || (bVar14 = CMILMatrix::IsIdentity<0>(param_2), bVar14)) {
-      cVar10 = '\0';
-    }
-    else {
-      cVar10 = '\x01';
+    if (param_2 != (CMILMatrix *)0x0) {
+      CMILMatrix::IsIdentity<0>(param_2);
     }
     if ((Microsoft_Windows_Dwm_CoreEnableBits._1_1_ & 0x20) != 0) {
       if (*(code **)(*(longlong *)param_1 + 0x58) ==
           IDeviceSurfaceMethodsT<CD2DBitmap,IDeviceTextureTarget>::GetSize_adjustor_184__) {
-        lVar20 = IDeviceSurfaceMethodsT<CD2DBitmap,IDeviceTextureTarget>::GetSize_adjustor_184__
-                           ((IDeviceSurfaceMethodsT<CD2DBitmap,IDeviceTextureTarget> *)param_1);
+        IDeviceSurfaceMethodsT<CD2DBitmap,IDeviceTextureTarget>::GetSize_adjustor_184__
+                  ((IDeviceSurfaceMethodsT<CD2DBitmap,IDeviceTextureTarget> *)param_1);
       }
       else {
-        lVar20 = (**(code **)(*(longlong *)param_1 + 0x58))(param_1,local_118);
-      }
-      local_168[0] = (float)*(uint *)(lVar20 + 4);
-      puVar21 = (uint *)(**(code **)(*(longlong *)param_1 + 0x58))(param_1,local_100);
-      local_178[0] = 0;
-      local_180[0] = 0;
-      p_Var29 = (_D3DCOLORVALUE *)0x9;
-      local_188[0] = -cVar10 & 0x44;
-      local_c0 = 8;
-      local_b0 = 8;
-      local_170[0] = (float)*puVar21;
-      local_c8 = &local_110;
-      local_b8 = &local_108;
-      local_a8 = local_180;
-      local_98 = local_178;
-      local_88 = local_170;
-      local_78 = local_168;
-      local_68 = local_188;
-      local_50 = (uint)local_188[0];
-      local_a0 = 4;
-      local_90 = 4;
-      local_80 = 4;
-      local_70 = 4;
-      local_60 = 1;
-      local_4c = 0;
-      local_110 = this;
-      local_108 = param_1;
-      local_58 = param_2;
-      McGenEventWrite_EventWriteTransfer
-                (&Microsoft_Windows_Dwm_Core_Provider_Context,
-                 &EVTDESC_ETWGUID_DRAWING_CONTEXT_FRAME_Start);
+        (**(code **)(*(longlong *)param_1 + 0x58))(param_1,local_70);
+      }
+      (**(code **)(*(longlong *)param_1 + 0x58))(param_1,local_68);
+      pcVar24 = (char *)this;
+      McTemplateU0ppffffubr6_EventWriteTransfer();
+      pIVar26 = param_1;
     }
   }
   this_00 = (CMILMatrix *)(this + 0x60);
   if (param_2 == (CMILMatrix *)0x0) {
     *(undefined4 *)(this + 0xa0) = 0;
     *(undefined4 *)this_00 = 0x3f800000;
     *(undefined8 *)(this + 100) = 0;
     *(undefined8 *)(this + 0x6c) = 0;
     *(undefined8 *)(this + 0x74) = 0x3f800000;
     *(undefined8 *)(this + 0x7c) = 0;
     *(undefined4 *)(this + 0x84) = 0;
     *(undefined8 *)(this + 0x88) = 0x3f800000;
     *(undefined8 *)(this + 0x90) = 0;
     *(undefined4 *)(this + 0x98) = 0;
     *(undefined4 *)(this + 0x9c) = 0x3f800000;
     this[0xa0] = (CDrawingContext)0xaa;
     this[0xa1] = (CDrawingContext)((byte)this[0xa1] & 0xe9 | 0x29);
     CVar13 = (CDrawingContext)0x1;
   }
   else {
-    uVar4 = *(undefined8 *)(param_2 + 8);
+    uVar5 = *(undefined8 *)(param_2 + 8);
     *(undefined8 *)this_00 = *(undefined8 *)param_2;
-    *(undefined8 *)(this + 0x68) = uVar4;
-    uVar4 = *(undefined8 *)(param_2 + 0x18);
+    *(undefined8 *)(this + 0x68) = uVar5;
+    uVar5 = *(undefined8 *)(param_2 + 0x18);
     *(undefined8 *)(this + 0x70) = *(undefined8 *)(param_2 + 0x10);
-    *(undefined8 *)(this + 0x78) = uVar4;
-    uVar4 = *(undefined8 *)(param_2 + 0x28);
+    *(undefined8 *)(this + 0x78) = uVar5;
+    uVar5 = *(undefined8 *)(param_2 + 0x28);
     *(undefined8 *)(this + 0x80) = *(undefined8 *)(param_2 + 0x20);
-    *(undefined8 *)(this + 0x88) = uVar4;
-    uVar4 = *(undefined8 *)(param_2 + 0x38);
+    *(undefined8 *)(this + 0x88) = uVar5;
+    uVar5 = *(undefined8 *)(param_2 + 0x38);
     *(undefined8 *)(this + 0x90) = *(undefined8 *)(param_2 + 0x30);
-    *(undefined8 *)(this + 0x98) = uVar4;
+    *(undefined8 *)(this + 0x98) = uVar5;
     *(undefined4 *)(this + 0xa0) = *(undefined4 *)(param_2 + 0x40);
     CVar13 = (CDrawingContext)CMILMatrix::IsIdentity<0>(this_00);
   }
   this[0x1f80] = CVar13;
   if (param_3 == (_D3DCOLORVALUE *)0x0) {
     *(undefined8 *)(this + 0x50) = 0;
     *(undefined8 *)(this + 0x58) = 0;
   }
   else {
-    uVar7 = *(undefined4 *)(param_3 + 4);
-    uVar8 = *(undefined4 *)(param_3 + 8);
-    uVar9 = *(undefined4 *)(param_3 + 0xc);
+    uVar8 = *(undefined4 *)(param_3 + 4);
+    uVar9 = *(undefined4 *)(param_3 + 8);
+    uVar10 = *(undefined4 *)(param_3 + 0xc);
     *(undefined4 *)(this + 0x50) = *(undefined4 *)param_3;
-    *(undefined4 *)(this + 0x54) = uVar7;
-    *(undefined4 *)(this + 0x58) = uVar8;
-    *(undefined4 *)(this + 0x5c) = uVar9;
+    *(undefined4 *)(this + 0x54) = uVar8;
+    *(undefined4 *)(this + 0x58) = uVar9;
+    *(undefined4 *)(this + 0x5c) = uVar10;
   }
   *(COverlayContext **)(this + 0x30) = param_5;
   if (param_5 == (COverlayContext *)0x0) {
     CVar13 = (CDrawingContext)0x0;
     *(undefined8 *)(this + 0xa4) = 0;
     *(undefined8 *)(this + 0xac) = 0;
-    local_150 = 0;
+    local_a8 = 0;
     *(undefined8 *)(this + 0xb4) = 0;
     *(undefined4 *)(this + 0xbc) = 0;
   }
   else {
     this_05 = (CLegacyRenderTarget *)(*(longlong *)param_5 + 8);
     pcVar3 = *(code **)(*(longlong *)(*(longlong *)param_5 + 8) + 0x20);
     if (pcVar3 == CLegacyRenderTarget::GetTargetId_adjustor_72__) {
-      ptVar18 = CLegacyRenderTarget::GetTargetId_adjustor_72__(this_05);
+      ptVar17 = CLegacyRenderTarget::GetTargetId_adjustor_72__(this_05);
     }
     else if (pcVar3 == CDDisplayRenderTarget::GetTargetId_adjustor_72__) {
-      ptVar18 = CDDisplayRenderTarget::GetTargetId_adjustor_72__((CDDisplayRenderTarget *)this_05);
+      ptVar17 = CDDisplayRenderTarget::GetTargetId_adjustor_72__((CDDisplayRenderTarget *)this_05);
     }
     else if (pcVar3 == CLegacyRenderTarget::GetTargetId) {
-      ptVar18 = CLegacyRenderTarget::GetTargetId(this_05);
+      ptVar17 = CLegacyRenderTarget::GetTargetId(this_05);
     }
     else {
-      ptVar18 = (tagCOMPOSITION_TARGET_ID *)(*pcVar3)();
-    }
-    uVar4 = *(undefined8 *)(ptVar18 + 8);
-    *(undefined8 *)(this + 0xa4) = *(undefined8 *)ptVar18;
-    *(undefined8 *)(this + 0xac) = uVar4;
-    *(undefined8 *)(this + 0xb4) = *(undefined8 *)(ptVar18 + 0x10);
-    *(undefined4 *)(this + 0xbc) = *(undefined4 *)(ptVar18 + 0x18);
+      ptVar17 = (tagCOMPOSITION_TARGET_ID *)(*pcVar3)();
+    }
+    uVar5 = *(undefined8 *)(ptVar17 + 8);
+    *(undefined8 *)(this + 0xa4) = *(undefined8 *)ptVar17;
+    *(undefined8 *)(this + 0xac) = uVar5;
+    *(undefined8 *)(this + 0xb4) = *(undefined8 *)(ptVar17 + 0x10);
+    *(undefined4 *)(this + 0xbc) = *(undefined4 *)(ptVar17 + 0x18);
     CVar13 = (CDrawingContext)0x1;
   }
   this[0xc0] = CVar13;
   *(undefined4 *)(this + 0xf0) = 1;
   *(undefined8 *)(this + 0xf4) = 1;
   *(undefined8 *)(this + 0xfc) = 0;
-  local_160 = (CD3DDevice *)0x0;
-  uStack_158 = CONCAT31(uStack_158._1_3_,1);
+  local_b8 = (CD3DDevice *)0x0;
+  uStack_b0 = CONCAT31(uStack_b0._1_3_,1);
   if (*(uint *)(this + 0xcd8) != *(uint *)(this + 0xcdc)) {
 LAB_2:
-    uVar28 = (uint)p_Var29;
-    uVar23 = (uint)pcVar27;
+    uVar25 = (uint)pIVar26;
+    uVar20 = (uint)pcVar24;
     pCVar1 = this + 0x1b0;
-    puVar16 = (undefined4 *)
+    puVar15 = (undefined4 *)
               (*(longlong *)(this + 0xcd0) + (ulonglong)*(uint *)(this + 0xcd8) * 0x10);
-    *puVar16 = (undefined4)local_160;
-    puVar16[1] = local_160._4_4_;
-    puVar16[2] = uStack_158;
-    puVar16[3] = uStack_154;
+    *puVar15 = (undefined4)local_b8;
+    puVar15[1] = local_b8._4_4_;
+    puVar15[2] = uStack_b0;
+    puVar15[3] = uStack_ac;
     *(int *)(this + 0xcd8) = *(int *)(this + 0xcd8) + 1;
-    uVar30 = *(uint *)(this + 0xce4);
+    uVar27 = *(uint *)(this + 0xce4);
     if (*(uint *)(this + 0xce4) <= *(uint *)(this + 0xcd8)) {
-      uVar30 = *(uint *)(this + 0xcd8);
-    }
-    *(uint *)(this + 0xce4) = uVar30;
+      uVar27 = *(uint *)(this + 0xcd8);
+    }
+    *(uint *)(this + 0xce4) = uVar27;
     if (*(int *)(this + 0x1c8) != 0) {
       do {
-        plVar5 = *(longlong **)(*(longlong *)pCVar1 + uVar22 * 0x10);
-        if (plVar5 != (longlong *)0x0) {
-          (**(code **)(*plVar5 + 0x10))();
-        }
-        uVar28 = (uint)p_Var29;
-        uVar23 = (uint)pcVar27;
-        uVar30 = (int)uVar22 + 1;
-        uVar22 = (ulonglong)uVar30;
-      } while (uVar30 < *(uint *)(this + 0x1c8));
+        plVar6 = *(longlong **)(*(longlong *)pCVar1 + uVar19 * 0x10);
+        if (plVar6 != (longlong *)0x0) {
+          (**(code **)(*plVar6 + 0x10))();
+        }
+        uVar25 = (uint)pIVar26;
+        uVar20 = (uint)pcVar24;
+        uVar27 = (int)uVar19 + 1;
+        uVar19 = (ulonglong)uVar27;
+      } while (uVar27 < *(uint *)(this + 0x1c8));
     }
     *(undefined4 *)(this + 0x1c8) = 0;
     if (*(void **)pCVar1 != *(void **)(this + 0x1b8)) {
       _Free_DefaultHeap__SAXPEAX_Z(*(void **)pCVar1);
       *(longlong *)pCVar1 = *(longlong *)(this + 0x1b8);
       *(undefined4 *)(this + 0x1c4) = *(undefined4 *)(this + 0x1c0);
     }
     if (*(longlong **)(this + 0x1a8) != (longlong *)0x0) {
       (**(code **)(**(longlong **)(this + 0x1a8) + 8))();
       *(undefined8 *)(this + 0x1a8) = 0;
     }
     *(undefined4 *)(this + 0x228) = 0;
     if (*(void **)(this + 0x210) != *(void **)(this + 0x218)) {
       _Free_DefaultHeap__SAXPEAX_Z(*(void **)(this + 0x210));
       *(undefined8 *)(this + 0x210) = *(undefined8 *)(this + 0x218);
       *(undefined4 *)(this + 0x224) = *(undefined4 *)(this + 0x220);
     }
-    uVar22 = (ulonglong)_tls_index;
+    uVar19 = (ulonglong)_tls_index;
     *(undefined8 *)(this + 0xce8) = 0;
-    _Var24 = 4;
+    _Var21 = 4;
     **(undefined4 **)(this + 0x1f38) = 0;
-    if (*(int *)(*(longlong *)((longlong)ThreadLocalStoragePointer + uVar22 * 8) + 4) <
+    if (*(int *)(*(longlong *)((longlong)ThreadLocalStoragePointer + uVar19 * 8) + 4) <
         DAT_3) {
       this_06 = (CProcessAttributionManager *)&DAT_3;
       _Init_thread_header();
       if (DAT_3 == -1) {
         DAT_4 = CProcessAttributionManager::CreateNullProcessAttribution(this_06);
         _Init_thread_footer(&DAT_3);
       }
     }
     pCVar11 = DAT_4;
     this_01 = (CWatermarkStack<CDrawingContext::StackStateEntry,64,2,10> *)(this + 0x108);
-    local_138 = (CProcessAttribution *)0xb;
-    uStack_130 = 0;
+    local_90 = (CProcessAttribution *)0xb;
+    uStack_88 = 0;
     if ((*(int *)(this + 0x110) == *(int *)(this + 0x114)) &&
-       (lVar15 = CWatermarkStack<CDrawingContext::StackStateEntry,64,2,10>::Grow
-                           (this_01,_Var24,uVar23,uVar28,(void **)this_01), lVar15 < 0)) {
+       (lVar14 = CWatermarkStack<CDrawingContext::StackStateEntry,64,2,10>::Grow
+                           (this_01,_Var21,uVar20,uVar25,(void **)this_01), lVar14 < 0)) {
       wil::details::in1diag3::Return_Hr
                 (unaff_retaddr,0x83,"onecoreuap\\windows\\DWM\\dwmcore\\common\\WatermarkStack.inl",
-                 lVar15);
+                 lVar14);
                     /* WARNING: Subroutine does not return */
-      ModuleFailFastForHRESULT(lVar15,unaff_retaddr);
-    }
-    pCVar12 = local_138;
-    local_138 = pCVar11;
-    puVar19 = (undefined8 *)(*(longlong *)this_01 + (ulonglong)*(uint *)(this + 0x110) * 0x10);
-    *puVar19 = pCVar12;
-    puVar19[1] = uStack_130;
+      ModuleFailFastForHRESULT(lVar14,unaff_retaddr);
+    }
+    pCVar12 = local_90;
+    local_90 = pCVar11;
+    puVar18 = (undefined8 *)(*(longlong *)this_01 + (ulonglong)*(uint *)(this + 0x110) * 0x10);
+    *puVar18 = pCVar12;
+    puVar18[1] = uStack_88;
     *(int *)(this + 0x110) = *(int *)(this + 0x110) + 1;
-    uVar30 = *(uint *)(this + 0x11c);
+    uVar27 = *(uint *)(this + 0x11c);
     if (*(uint *)(this + 0x11c) <= *(uint *)(this + 0x110)) {
-      uVar30 = *(uint *)(this + 0x110);
+      uVar27 = *(uint *)(this + 0x110);
     }
     this_07 = (DynArrayImpl<0> *)(this + 0x290);
-    *(uint *)(this + 0x11c) = uVar30;
-    uVar23 = *(uint *)(this + 0x2a8);
-    uVar30 = uVar23 + 1;
-    if (uVar23 <= uVar30) {
-      if (*(uint *)(this + 0x2a4) < uVar30) {
-        local_160 = (CD3DDevice *)&local_138;
-        lVar15 = DynArrayImpl<0>::Grow(this_07,8,1,0,(void **)&local_160);
-        if (lVar15 < 0) goto LAB_5;
+    *(uint *)(this + 0x11c) = uVar27;
+    uVar20 = *(uint *)(this + 0x2a8);
+    uVar27 = uVar20 + 1;
+    if (uVar20 <= uVar27) {
+      if (*(uint *)(this + 0x2a4) < uVar27) {
+        local_b8 = (CD3DDevice *)&local_90;
+        lVar14 = DynArrayImpl<0>::Grow(this_07,8,1,0,(void **)&local_b8);
+        if (lVar14 < 0) goto LAB_5;
         *(CProcessAttribution **)
          ((ulonglong)(uint)(*(int *)(this + 0x2a8) << 3) + *(longlong *)this_07) =
-             *(CProcessAttribution **)local_160;
+             *(CProcessAttribution **)local_b8;
         *(int *)(this + 0x2a8) = *(int *)(this + 0x2a8) + 1;
       }
       else {
-        *(CProcessAttribution **)(*(longlong *)this_07 + (ulonglong)uVar23 * 8) = pCVar11;
-        *(uint *)(this + 0x2a8) = uVar30;
+        *(CProcessAttribution **)(*(longlong *)this_07 + (ulonglong)uVar20 * 8) = pCVar11;
+        *(uint *)(this + 0x2a8) = uVar27;
       }
       if (((byte)Microsoft_Windows_Dwm_CompositorEnableBits & 2) == 0) {
         return 0;
       }
       CRenderPerf::NotifyBeginFrame((CRenderPerf *)(g_pComposition + 0x10),param_4);
       return 0;
     }
-    lVar15 = -0x7ff8fdea;
-    local_140 = CONCAT44(local_140._4_4_,0xb5);
+    lVar14 = -0x7ff8fdea;
+    local_98 = CONCAT44(local_98._4_4_,0xb5);
 LAB_5:
-    MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar15,(uint)local_140,(void *)0x0);
+    MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar14,(uint)local_98,(void *)0x0);
                     /* WARNING: Subroutine does not return */
-    ModuleFailFastForHRESULT(lVar15,unaff_retaddr);
-  }
-  uVar26 = (ulonglong)*(uint *)(this + 0xcdc) * 2;
-  if (uVar26 < 0x100000000) {
-    uVar25 = uVar26 & 0xffffffff;
-    if ((uint)uVar26 < 0x41) {
-      uVar25 = 0x40;
-    }
-    uVar26 = (ulonglong)*(uint *)(this + 0xcd8) << 4;
-    if (0xffffffff < uVar26) {
-      uVar23 = 0x65;
+    ModuleFailFastForHRESULT(lVar14,unaff_retaddr);
+  }
+  uVar23 = (ulonglong)*(uint *)(this + 0xcdc) * 2;
+  if (uVar23 < 0x100000000) {
+    uVar22 = uVar23 & 0xffffffff;
+    if ((uint)uVar23 < 0x41) {
+      uVar22 = 0x40;
+    }
+    uVar23 = (ulonglong)*(uint *)(this + 0xcd8) << 4;
+    if (0xffffffff < uVar23) {
+      uVar20 = 0x65;
       goto LAB_6;
     }
-    if (((int)uVar25 == 0) ||
-       (auVar6._8_8_ = 0, auVar6._0_8_ = uVar25,
-       SUB168((ZEXT816(0) << 0x40 | ZEXT816(0xffffffffffffffff)) / auVar6,0) < 0x11)) {
-      uVar30 = 0x80070057;
+    if (((int)uVar22 == 0) ||
+       (auVar7._8_8_ = 0, auVar7._0_8_ = uVar22,
+       SUB168((ZEXT816(0) << 0x40 | ZEXT816(0xffffffffffffffff)) / auVar7,0) < 0x11)) {
+      uVar27 = 0x80070057;
     }
     else {
-      _Dst = _Alloc_DefaultHeap__SAPEAX_K_Z(uVar25 << 4);
+      _Dst = _Alloc_DefaultHeap__SAPEAX_K_Z(uVar22 << 4);
       if (_Dst != (void *)0x0) {
-        pcVar27 = (char *)(uVar26 & 0xffffffff);
-        memcpy(_Dst,*(void **)(this + 0xcd0),(size_t)pcVar27);
+        pcVar24 = (char *)(uVar23 & 0xffffffff);
+        memcpy(_Dst,*(void **)(this + 0xcd0),(size_t)pcVar24);
         _Free_DefaultHeap__SAXPEAX_Z(*(void **)(this + 0xcd0));
         *(void **)(this + 0xcd0) = _Dst;
-        *(int *)(this + 0xcdc) = (int)uVar25;
+        *(int *)(this + 0xcdc) = (int)uVar22;
         goto LAB_2;
       }
-      uVar30 = 0x8007000e;
-    }
-    uVar23 = 0x68;
+      uVar27 = 0x8007000e;
+    }
+    uVar20 = 0x68;
   }
   else {
-    uVar23 = 0x62;
+    uVar20 = 0x62;
 LAB_6:
-    uVar30 = 0x80070216;
+    uVar27 = 0x80070216;
   }
   wil::details::in1diag3::Return_Hr
-            (unaff_retaddr,uVar23,"onecoreuap\\windows\\DWM\\dwmcore\\common\\WatermarkStack.inl",
-             uVar30);
+            (unaff_retaddr,uVar20,"onecoreuap\\windows\\DWM\\dwmcore\\common\\WatermarkStack.inl",
+             uVar27);
   wil::details::in1diag3::Return_Hr
             (unaff_retaddr,0x83,"onecoreuap\\windows\\DWM\\dwmcore\\common\\WatermarkStack.inl",
-             uVar30);
-  uVar23 = 0x13a;
+             uVar27);
+  uVar20 = 0x13a;
 LAB_1:
-  MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,uVar30,uVar23,(void *)0x0);
-  return uVar30;
+  MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,uVar27,uVar20,(void *)0x0);
+  return uVar27;
 }
 

```


## CDrawingContext::ValidateBVIEffectInputForRender

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.18|
|i_ratio|0.42|
|m_ratio|0.92|
|b_ratio|0.81|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|ValidateBVIEffectInputForRender|ValidateBVIEffectInputForRender|
|fullname|CDrawingContext::ValidateBVIEffectInputForRender|CDrawingContext::ValidateBVIEffectInputForRender|
|refcount|4|4|
|`length`|3040|2615|
|`called`|<details><summary>Expand for full list:<br>?Free@DefaultHeap@@SAXPEAX@Z<br>CBackdropVisualImage::CanUseAsEffectInput<br>CBackdropVisualImage::Create<br>CBackdropVisualImage::HasValidRenderingRealization<br>CBackdropVisualImage::InvalidateAllBlurCaches<br>CBackdropVisualImage::IsValid<br>CBackdropVisualImage::LogEtwEvent<br>CBackdropVisualImage::RequireClippedBounds<br>CBackdropVisualImage::RequiresRendering<br>CBackdropVisualImage::ValidateRootAndSourceRectangle<br>CCachedVisualImage::GetRenderTargetBitmap</summary>CDrawingContext::CalcWorldSpaceClippedBounds<br>CMILCOMBaseWeakRefSource<CResourceDeleter>::InternalRelease<br>CMILMatrix::Invert<br>CMILMatrix::Multiply<br>CMILMatrix::Transform2DBoundsHelper<1><br>CMILRefCountImpl::AddReference<br>CTreeData::SetBackdropVisualImage<br>CVisual::EnsureTreeData<br>CVisual::GetTreeDataListHead<br>CVisual::GetVisualTreeNoRef<br>CVisual::GetWorldTransform<br>CVisualTreePath::GetDebugString<br>DwmDbg::Backdrops::IsEtwEnabled<br>DwmDbg::Backdrops::LogBrushEtwEvent<br>DwmDbg::DbgString::DbgString<br>__security_check_cookie<br>_guard_dispatch_icall$thunk$10345483385596137414<br>std::unique_ptr<class_CWeakReference<CResource>*___ptr64_[0],std::default_delete<class_CWeakReference<CResource>*___ptr64_[0]>_>::~unique_ptr<class_CWeakReference<CResource>*___ptr64_[0],std::default_delete<class_CWeakReference<CResource>*___ptr64_[0]>_><br>wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy><br>wil::com_ptr_t<IRenderTargetBitmap,wil::err_returncode_policy>::reset<br>wil::details::in1diag3::Log_Hr<br>wil::details::in1diag3::Return_Hr</details>|<details><summary>Expand for full list:<br>?Free@DefaultHeap@@SAXPEAX@Z<br>CBackdropVisualImage::CanUseAsEffectInput<br>CBackdropVisualImage::HasValidRenderingRealization<br>CBackdropVisualImage::InvalidateAllBlurCaches<br>CBackdropVisualImage::IsValid<br>CBackdropVisualImage::LogEtwEvent<br>CBackdropVisualImage::RequireClippedBounds<br>CBackdropVisualImage::RequiresRendering<br>CCachedVisualImage::GetRenderTargetBitmap<br>CDrawingContext::CalcWorldSpaceClippedBounds<br>CMILMatrix::Invert</summary>CMILMatrix::Multiply<br>CMILMatrix::Transform2DBoundsHelper<1><br>CVisual::CreateOrUpdateBVI<br>CVisual::GetTreeDataListHead<br>CVisual::GetWorldTransform<br>DwmDbg::DbgString::DbgString<br>__security_check_cookie<br>_guard_dispatch_icall$thunk$10345483385596137414<br>wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy><br>wil::com_ptr_t<IRenderTargetBitmap,wil::err_returncode_policy>::reset<br>wil::details::in1diag3::Log_Hr<br>wil::details::in1diag3::Return_Hr</details>|
|calling|CVisual::RenderContent<br>CWindowBackgroundBitmapProducer::ProduceRealization|CVisual::RenderContent<br>CWindowBackgroundBitmapProducer::ProduceRealization|
|paramcount|3|3|
|`address`|18017d118|1800097b8|
|sig|long __thiscall ValidateBVIEffectInputForRender(CDrawingContext * this, TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> * param_1, bool * param_2)|long __thiscall ValidateBVIEffectInputForRender(CDrawingContext * this, TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> * param_1, bool * param_2)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### CDrawingContext::ValidateBVIEffectInputForRender Called Diff


```diff
--- CDrawingContext::ValidateBVIEffectInputForRender called
+++ CDrawingContext::ValidateBVIEffectInputForRender called
@@ -3 +2,0 @@
-CBackdropVisualImage::Create
@@ -10 +8,0 @@
-CBackdropVisualImage::ValidateRootAndSourceRectangle
@@ -13 +10,0 @@
-CMILCOMBaseWeakRefSource<CResourceDeleter>::InternalRelease
@@ -17,3 +14 @@
-CMILRefCountImpl::AddReference
-CTreeData::SetBackdropVisualImage
-CVisual::EnsureTreeData
+CVisual::CreateOrUpdateBVI
@@ -21 +15,0 @@
-CVisual::GetVisualTreeNoRef
@@ -23,3 +16,0 @@
-CVisualTreePath::GetDebugString
-DwmDbg::Backdrops::IsEtwEnabled
-DwmDbg::Backdrops::LogBrushEtwEvent
@@ -29 +19,0 @@
-std::unique_ptr<class_CWeakReference<CResource>*___ptr64_[0],std::default_delete<class_CWeakReference<CResource>*___ptr64_[0]>_>::~unique_ptr<class_CWeakReference<CResource>*___ptr64_[0],std::default_delete<class_CWeakReference<CResource>*___ptr64_[0]>_>
```


### CDrawingContext::ValidateBVIEffectInputForRender Diff


```diff
--- CDrawingContext::ValidateBVIEffectInputForRender
+++ CDrawingContext::ValidateBVIEffectInputForRender
@@ -1,446 +1,380 @@
 
 /* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
    guard_dispatch_icall */
 /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
 /* public: long __cdecl CDrawingContext::ValidateBVIEffectInputForRender(class
    TMilRect_<float,struct D2D_RECT_F,struct D3D_RECT_F,struct D2D_POINTANDSIZE_F,struct
    RectUniqueness::NotNeeded> const & __ptr64,bool * __ptr64)const __ptr64 */
 
 long __thiscall
 CDrawingContext::ValidateBVIEffectInputForRender
           (CDrawingContext *this,
           TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
           *param_1,bool *param_2)
 
 {
-  longlong *plVar1;
-  undefined4 uVar2;
-  CVisualTreePath *this_00;
-  CDrawingContext *pCVar3;
-  IRenderTargetBitmap *pIVar4;
-  bool *pbVar5;
-  char cVar6;
-  bool bVar7;
-  bool bVar8;
-  long lVar9;
-  CDrawingContext *pCVar10;
-  CTreeData *this_01;
-  RenderTargetInfo *pRVar11;
-  undefined8 uVar12;
-  undefined8 uVar13;
-  CVisualTree *pCVar14;
-  undefined8 *puVar15;
+  CVisualTreePath *pCVar1;
+  CDrawingContext *pCVar2;
+  IRenderTargetBitmap *pIVar3;
+  char cVar4;
+  bool bVar5;
+  bool bVar6;
+  long lVar7;
+  CDrawingContext *pCVar8;
+  RenderTargetInfo *pRVar9;
+  undefined8 uVar10;
+  undefined8 uVar11;
+  _LIST_ENTRY *p_Var12;
+  longlong *plVar13;
+  _LIST_ENTRY *p_Var14;
+  uint uVar15;
   _LIST_ENTRY *p_Var16;
-  longlong *plVar17;
-  longlong *plVar18;
-  _LIST_ENTRY *p_Var19;
+  char *pcVar17;
+  TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> *pTVar18;
+  CVisual *this_00;
+  WalkReason WVar19;
   _LIST_ENTRY *p_Var20;
   longlong lVar21;
-  char *pcVar22;
-  CBackdropVisualImage *this_02;
-  WalkReason WVar23;
-  _LIST_ENTRY *p_Var24;
-  longlong lVar25;
-  _LIST_ENTRY *p_Var26;
-  byte bVar27;
-  byte bVar28;
-  byte bVar29;
-  CVisual *this_03;
+  _LIST_ENTRY *p_Var22;
+  byte bVar23;
+  byte bVar24;
   void *unaff_retaddr;
-  undefined1 auStackY_288 [32];
-  bool local_1f8 [8];
-  IRenderTargetBitmap *local_1f0;
-  CVisualTree *local_1e8;
-  bool *local_1e0;
-  CBackdropVisualImage *local_1d8;
-  CVisual *local_1d0;
+  undefined1 auStackY_278 [32];
+  bool local_1e8 [8];
+  IRenderTargetBitmap *local_1e0;
+  TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> *local_1d8 [2]
+  ;
   undefined8 local_1c8;
   undefined8 uStack_1c0;
   undefined8 local_1b8;
   undefined8 uStack_1b0;
   undefined8 local_1a8;
   undefined8 uStack_1a0;
   undefined8 local_198;
-  undefined4 uStack_190;
-  float fStack_18c;
-  undefined1 uStack_188;
-  undefined1 uStack_187;
-  undefined2 uStack_186;
+  undefined8 uStack_190;
+  undefined4 local_188;
   float local_178 [20];
   float local_128;
   float fStack_124;
   float fStack_120;
   float fStack_11c;
   float local_118;
   float fStack_114;
   float fStack_110;
   float fStack_10c;
   undefined8 local_100;
   undefined8 uStack_f8;
   undefined8 local_f0;
   undefined8 uStack_e8;
   ulonglong local_e0;
   
-  local_e0 = __security_cookie ^ (ulonglong)auStackY_288;
-  bVar7 = false;
-  local_1f8[0] = false;
+  local_e0 = __security_cookie ^ (ulonglong)auStackY_278;
+  bVar5 = false;
+  local_1e8[0] = false;
   if (this[0x1f00] == (CDrawingContext)0x0) {
-    this_03 = (CVisual *)0x0;
+    this_00 = (CVisual *)0x0;
   }
   else if (this[0x1f01] == (CDrawingContext)0x0) {
-    this_03 = *(CVisual **)(this + 0x1f10);
+    this_00 = *(CVisual **)(this + 0x1f10);
   }
   else {
-    this_03 = *(CVisual **)(this + 0xc90);
-  }
-  this_00 = *(CVisualTreePath **)(this + 0x1f20);
-  p_Var20 = *(_LIST_ENTRY **)(*(longlong *)(this_00 + 8) + -8);
-  p_Var24 = (_LIST_ENTRY *)param_2;
-  local_1f0 = (IRenderTargetBitmap *)param_1;
-  local_1e0 = param_2;
-  cVar6 = (*(code *)p_Var20->Flink[0xb].Blink)(p_Var20);
-  if (cVar6 == '\0') {
-    p_Var16 = CVisual::GetTreeDataListHead(this_03);
-    if (p_Var16 != (_LIST_ENTRY *)0x0) {
-      for (p_Var19 = p_Var16->Flink; p_Var19 != p_Var16; p_Var19 = p_Var19->Flink) {
-        p_Var26 = p_Var19 + -0x16;
-        if (p_Var19[2].Flink == p_Var20) goto LAB_0;
+    this_00 = *(CVisual **)(this + 0xc90);
+  }
+  pCVar1 = *(CVisualTreePath **)(this + 0x1f20);
+  p_Var16 = *(_LIST_ENTRY **)(*(longlong *)(pCVar1 + 8) + -8);
+  p_Var20 = (_LIST_ENTRY *)param_2;
+  local_1d8[0] = param_1;
+  cVar4 = (*(code *)p_Var16->Flink[0xb].Blink)(p_Var16);
+  if (cVar4 == '\0') {
+    p_Var12 = CVisual::GetTreeDataListHead(this_00);
+    if (p_Var12 != (_LIST_ENTRY *)0x0) {
+      for (p_Var14 = p_Var12->Flink; p_Var14 != p_Var12; p_Var14 = p_Var14->Flink) {
+        p_Var22 = p_Var14 + -0x16;
+        if (p_Var14[2].Flink == p_Var16) goto LAB_0;
       }
     }
   }
   else {
-    p_Var26 = (_LIST_ENTRY *)(this_03 + 0x148);
+    p_Var22 = (_LIST_ENTRY *)(this_00 + 0x148);
 LAB_0:
-    if (p_Var26 != (_LIST_ENTRY *)0x0) {
-      for (p_Var20 = p_Var26[9].Flink; p_Var20 != p_Var26[9].Blink;
-          p_Var20 = (_LIST_ENTRY *)&p_Var20->Blink) {
-        p_Var16 = p_Var20->Flink;
-        plVar17 = *(longlong **)this_00;
-        p_Var24 = p_Var16[0x81].Blink;
-        if ((longlong)p_Var16[0x82].Flink - (longlong)p_Var24 ==
-            *(longlong *)(this_00 + 8) - (longlong)plVar17) {
-          p_Var24 = (_LIST_ENTRY *)((longlong)p_Var24 - (longlong)plVar17);
+    if (p_Var22 != (_LIST_ENTRY *)0x0) {
+      for (p_Var16 = p_Var22[9].Flink; p_Var16 != p_Var22[9].Blink;
+          p_Var16 = (_LIST_ENTRY *)&p_Var16->Blink) {
+        p_Var12 = p_Var16->Flink;
+        plVar13 = *(longlong **)pCVar1;
+        p_Var20 = p_Var12[0x81].Blink;
+        if ((longlong)p_Var12[0x82].Flink - (longlong)p_Var20 ==
+            *(longlong *)(pCVar1 + 8) - (longlong)plVar13) {
+          p_Var20 = (_LIST_ENTRY *)((longlong)p_Var20 - (longlong)plVar13);
           while( true ) {
-            if ((_LIST_ENTRY *)((longlong)plVar17 + (longlong)p_Var24) == p_Var16[0x82].Flink) {
-              p_Var16[0x8b].Blink = p_Var26[0xf].Blink[1].Blink[0x37].Blink;
-              p_Var20 = p_Var20->Flink;
+            p_Var14 = (_LIST_ENTRY *)((longlong)&p_Var20->Flink + (longlong)plVar13);
+            if (p_Var14 == p_Var12[0x82].Flink) {
+              p_Var12[0x8b].Blink = p_Var22[0xf].Blink[1].Blink[0x37].Blink;
+              p_Var16 = p_Var16->Flink;
               goto LAB_1;
             }
-            if ((((_LIST_ENTRY *)((longlong)plVar17 + (longlong)p_Var24))->Flink !=
-                 (_LIST_ENTRY *)*plVar17) ||
-               (*(longlong *)((longlong)&p_Var24->Blink + (longlong)plVar17) != plVar17[1])) break;
-            plVar17 = plVar17 + 2;
-          }
-        }
-      }
-    }
-  }
-  p_Var20 = (_LIST_ENTRY *)0x0;
+            if ((p_Var14->Flink != (_LIST_ENTRY *)*plVar13) ||
+               (*(longlong *)((longlong)&p_Var20->Blink + (longlong)plVar13) != plVar13[1])) break;
+            plVar13 = plVar13 + 2;
+          }
+        }
+      }
+    }
+  }
+  p_Var16 = (_LIST_ENTRY *)0x0;
 LAB_1:
-  WVar23 = (WalkReason)p_Var24;
-  pCVar3 = this;
-  if (((*(longlong *)(this + 200) == 0) || (p_Var20 == (_LIST_ENTRY *)0x0)) ||
-     (bVar8 = CBackdropVisualImage::CanUseAsEffectInput((CBackdropVisualImage *)p_Var20), !bVar8)) {
+  WVar19 = (WalkReason)p_Var20;
+  pCVar2 = this;
+  if (((*(longlong *)(this + 200) == 0) || (p_Var16 == (_LIST_ENTRY *)0x0)) ||
+     (bVar6 = CBackdropVisualImage::CanUseAsEffectInput((CBackdropVisualImage *)p_Var16), !bVar6)) {
     do {
-      pCVar10 = pCVar3;
-      pCVar3 = *(CDrawingContext **)(pCVar10 + 0xd0);
-    } while (pCVar3 != (CDrawingContext *)0x0);
-    plVar17 = *(longlong **)(pCVar10 + 0x1f08);
-    plVar18 = *(longlong **)(this + 0x1f08);
+      pCVar8 = pCVar2;
+      pCVar2 = *(CDrawingContext **)(pCVar8 + 0xd0);
+    } while (pCVar2 != (CDrawingContext *)0x0);
+    pIVar3 = *(IRenderTargetBitmap **)(pCVar8 + 0x1f08);
+    local_1e0 = *(IRenderTargetBitmap **)(this + 0x1f08);
     local_178[0] = 1.0;
     local_178[1] = 0.0;
     local_178[2] = 0.0;
     local_178[3] = 0.0;
     local_178[8] = 0.0;
     local_178[9] = 0.0;
     local_178[10] = 1.0;
     local_178[0xb] = 0.0;
     local_178[4] = 0.0;
     local_178[5] = 1.0;
     local_178[6] = 0.0;
     local_178[7] = 0.0;
     local_100 = 0;
     uStack_f8 = 0;
     local_178[0x10] = 1.49462e-41;
     local_178[0xc] = 0.0;
     local_178[0xd] = 0.0;
     local_178[0xe] = 0.0;
     local_178[0xf] = 1.0;
-    lVar9 = CVisual::GetWorldTransform(this_03,this_00,WVar23,(CMILMatrix *)local_178);
-    pIVar4 = local_1f0;
-    if (lVar9 < 0) {
-      wil::details::in1diag3::Return_Hr
-                (unaff_retaddr,0x67e,"onecoreuap\\windows\\dwm\\dwmcore\\engine\\drawingcontext.cpp"
-                 ,lVar9);
-      return lVar9;
-    }
-    CMILMatrix::Transform2DBoundsHelper<1>
-              ((CMILMatrix *)local_178,(D2D_RECT_F *)local_1f0,(D2D_RECT_F *)&local_100);
-    bVar7 = CBackdropVisualImage::RequireClippedBounds
-                      ((TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
-                        *)&local_100);
-    if (bVar7) {
-      local_f0 = 0;
-      uStack_e8 = 0;
-      CalcWorldSpaceClippedBounds
-                (this,(TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
-                       *)pIVar4,
-                 (TMilRect_<float,struct_D2D_RECT_F,struct_D3D_RECT_F,struct_D2D_POINTANDSIZE_F,struct_RectUniqueness::NotNeeded>
-                  *)&local_f0);
-      local_1c8 = *(undefined8 *)(this + 0x60);
-      uStack_1c0 = *(undefined8 *)(this + 0x68);
-      uVar2 = *(undefined4 *)(this + 0xa0);
-      local_1b8 = *(undefined8 *)(this + 0x70);
-      uStack_1b0 = *(undefined8 *)(this + 0x78);
-      uStack_188 = (undefined1)uVar2;
-      uStack_187 = (undefined1)((uint)uVar2 >> 8);
-      uStack_186 = (undefined2)((uint)uVar2 >> 0x10);
-      local_1a8 = *(undefined8 *)(this + 0x80);
-      uStack_1a0 = *(undefined8 *)(this + 0x88);
-      local_198 = *(undefined8 *)(this + 0x90);
-      uStack_190 = (undefined4)*(undefined8 *)(this + 0x98);
-      fStack_18c = (float)((ulonglong)*(undefined8 *)(this + 0x98) >> 0x20);
-      bVar7 = CMILMatrix::Invert((CMILMatrix *)&local_1c8);
-      if (bVar7) {
-        CMILMatrix::Transform2DBoundsHelper<1>
-                  ((CMILMatrix *)&local_1c8,(D2D_RECT_F *)&local_f0,(D2D_RECT_F *)&local_100);
+    lVar7 = CVisual::GetWorldTransform(this_00,pCVar1,WVar19,(CMILMatrix *)local_178);
+    if (lVar7 < 0) {
+      uVar15 = 0x67e;
+    }
+    else {
+      CMILMatrix::Transform2DBoundsHelper<1>
+                ((CMILMatrix *)local_178,(D2D_RECT_F *)param_1,(D2D_RECT_F *)&local_100);
+      bVar5 = CBackdropVisualImage::RequireClippedBounds
+                        ((TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
+                          *)&local_100);
+      if (bVar5) {
+        local_f0 = 0;
+        uStack_e8 = 0;
+        CalcWorldSpaceClippedBounds
+                  (this,param_1,
+                   (TMilRect_<float,struct_D2D_RECT_F,struct_D3D_RECT_F,struct_D2D_POINTANDSIZE_F,struct_RectUniqueness::NotNeeded>
+                    *)&local_f0);
+        local_1c8 = *(undefined8 *)(this + 0x60);
+        uStack_1c0 = *(undefined8 *)(this + 0x68);
+        local_188 = *(undefined4 *)(this + 0xa0);
+        local_1b8 = *(undefined8 *)(this + 0x70);
+        uStack_1b0 = *(undefined8 *)(this + 0x78);
+        local_1a8 = *(undefined8 *)(this + 0x80);
+        uStack_1a0 = *(undefined8 *)(this + 0x88);
+        local_198 = *(undefined8 *)(this + 0x90);
+        uStack_190 = *(undefined8 *)(this + 0x98);
+        bVar5 = CMILMatrix::Invert((CMILMatrix *)&local_1c8);
+        if (bVar5) {
+          CMILMatrix::Transform2DBoundsHelper<1>
+                    ((CMILMatrix *)&local_1c8,(D2D_RECT_F *)&local_f0,(D2D_RECT_F *)&local_100);
+        }
+        else {
+          wil::details::in1diag3::Log_Hr
+                    (unaff_retaddr,0x692,
+                     "onecoreuap\\windows\\dwm\\dwmcore\\engine\\drawingcontext.cpp",-0x7ff8fd64);
+          local_100 = 0;
+          uStack_f8 = 0;
+        }
+      }
+      bVar23 = 1;
+      if ((local_1e0 == pIVar3) &&
+         (cVar4 = (**(code **)(*(longlong *)pIVar3 + 0xb8))(pIVar3), cVar4 != '\0')) {
+        bVar5 = false;
       }
       else {
-        wil::details::in1diag3::Log_Hr
-                  (unaff_retaddr,0x692,
-                   "onecoreuap\\windows\\dwm\\dwmcore\\engine\\drawingcontext.cpp",-0x7ff8fd64);
-        local_100 = 0;
-        uStack_f8 = 0;
-      }
-    }
-    bVar28 = 1;
-    if ((plVar18 == plVar17) && (cVar6 = (**(code **)(*plVar17 + 0xb8))(plVar17), cVar6 != '\0')) {
-      bVar7 = false;
-    }
-    else {
-      bVar7 = true;
-    }
-    local_1d0 = *(CVisual **)(*(longlong *)(*(longlong *)this_00 + 8) + 0x48);
-    local_1e8 = *(CVisualTree **)(*(longlong *)(this_00 + 8) + -8);
-    this_01 = CVisual::EnsureTreeData(this_03,local_1e8);
-    for (plVar17 = *(longlong **)(this_01 + 0x90); plVar17 != *(longlong **)(this_01 + 0x98);
-        plVar17 = plVar17 + 1) {
-      lVar25 = *plVar17;
-      plVar18 = *(longlong **)this_00;
-      if (*(longlong *)(lVar25 + 0x820) - *(longlong *)(lVar25 + 0x818) ==
-          *(longlong *)(this_00 + 8) - (longlong)plVar18) {
-        lVar21 = *(longlong *)(lVar25 + 0x818) - (longlong)plVar18;
-        while( true ) {
-          plVar1 = (longlong *)((longlong)plVar18 + lVar21);
-          if (plVar1 == *(longlong **)(lVar25 + 0x820)) {
-            *(undefined8 *)(lVar25 + 0x8b8) =
-                 *(undefined8 *)(*(longlong *)(*(longlong *)(this_01 + 0xf8) + 0x18) + 0x378);
-            this_02 = (CBackdropVisualImage *)*plVar17;
-            if (this_02 == (CBackdropVisualImage *)0x0) goto LAB_2;
-            CMILRefCountImpl::AddReference((CMILRefCountImpl *)(this_02 + 8));
-            goto LAB_3;
-          }
-          if ((*plVar1 != *plVar18) || (*(longlong *)(lVar21 + 8 + (longlong)plVar18) != plVar18[1])
-             ) break;
-          plVar18 = plVar18 + 2;
-        }
-      }
-    }
+        bVar5 = true;
+      }
+      lVar7 = CVisual::CreateOrUpdateBVI
+                        (this_00,pCVar1,
+                         (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
+                          *)&local_100,bVar5,local_1e8);
+      if (-1 < lVar7) {
+        p_Var16 = *(_LIST_ENTRY **)(*(longlong *)(pCVar1 + 8) + -8);
+        cVar4 = (*(code *)p_Var16->Flink[0xb].Blink)(p_Var16);
+        if (cVar4 == '\0') {
+          p_Var20 = CVisual::GetTreeDataListHead(this_00);
+          if (p_Var20 != (_LIST_ENTRY *)0x0) {
+            for (p_Var12 = p_Var20->Flink; p_Var12 != p_Var20; p_Var12 = p_Var12->Flink) {
+              p_Var14 = p_Var12 + -0x16;
+              if (p_Var12[2].Flink == p_Var16) goto LAB_2;
+            }
+          }
+        }
+        else {
+          p_Var14 = (_LIST_ENTRY *)(this_00 + 0x148);
 LAB_2:
-    local_1d8 = (CBackdropVisualImage *)0x0;
-    pCVar14 = CVisual::GetVisualTreeNoRef(local_1d0);
-    CBackdropVisualImage::Create(g_pComposition,this_03,this_00,pCVar14 == local_1e8,&local_1d8);
-    this_02 = local_1d8;
-    CTreeData::SetBackdropVisualImage(this_01,this_00,local_1d8);
-    bVar8 = DwmDbg::Backdrops::IsEtwEnabled();
-    if (bVar8) {
-      puVar15 = (undefined8 *)CVisualTreePath::GetDebugString(this_00);
-      uVar12 = DwmDbg::DbgString::DbgString
-                         ((DbgString *)&local_1d8,"pBVI=0x%p, bviPath=[%s]",this_02,*puVar15);
-      uVar13 = DwmDbg::DbgString::DbgString((DbgString *)&local_f0,"Visual-CreatedNewBVI");
-      DwmDbg::Backdrops::LogBrushEtwEvent(uVar13,this_03,uVar12);
-      std::
-      unique_ptr<class_CWeakReference<CResource>*___ptr64_[0],std::default_delete<class_CWeakReference<CResource>*___ptr64_[0]>_>
-      ::
-      ~unique_ptr<class_CWeakReference<CResource>*___ptr64_[0],std::default_delete<class_CWeakReference<CResource>*___ptr64_[0]>_>
-                ((unique_ptr<class_CWeakReference<CResource>*___ptr64_[0],std::default_delete<class_CWeakReference<CResource>*___ptr64_[0]>_>
-                  *)&local_1e8);
-    }
+          if (p_Var14 != (_LIST_ENTRY *)0x0) {
+            for (p_Var16 = p_Var14[9].Flink; p_Var16 != p_Var14[9].Blink;
+                p_Var16 = (_LIST_ENTRY *)&p_Var16->Blink) {
+              p_Var20 = p_Var16->Flink;
+              plVar13 = *(longlong **)pCVar1;
+              if ((longlong)p_Var20[0x82].Flink - (longlong)p_Var20[0x81].Blink ==
+                  *(longlong *)(pCVar1 + 8) - (longlong)plVar13) {
+                lVar21 = (longlong)p_Var20[0x81].Blink - (longlong)plVar13;
+                while( true ) {
+                  p_Var12 = (_LIST_ENTRY *)(lVar21 + (longlong)plVar13);
+                  if (p_Var12 == p_Var20[0x82].Flink) {
+                    p_Var20[0x8b].Blink = p_Var14[0xf].Blink[1].Blink[0x37].Blink;
+                    p_Var16 = p_Var16->Flink;
+                    goto LAB_3;
+                  }
+                  if ((p_Var12->Flink != (_LIST_ENTRY *)*plVar13) ||
+                     (*(longlong *)(lVar21 + 8 + (longlong)plVar13) != plVar13[1])) break;
+                  plVar13 = plVar13 + 2;
+                }
+              }
+            }
+          }
+        }
+        p_Var16 = (_LIST_ENTRY *)0x0;
 LAB_3:
-    lVar9 = CBackdropVisualImage::ValidateRootAndSourceRectangle
-                      (this_02,local_1d0,
-                       (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
-                        *)&local_100,bVar7,local_1f8);
-    p_Var20 = (_LIST_ENTRY *)0x0;
-    if (this_02 != (CBackdropVisualImage *)0x0) {
-      CMILCOMBaseWeakRefSource<CResourceDeleter>::InternalRelease
-                ((CMILCOMBaseWeakRefSource<CResourceDeleter> *)this_02);
-    }
-    if (lVar9 < 0) {
-      wil::details::in1diag3::Return_Hr
-                (unaff_retaddr,0x69a,"onecoreuap\\windows\\dwm\\dwmcore\\engine\\drawingcontext.cpp"
-                 ,lVar9);
-      return lVar9;
-    }
-    p_Var24 = *(_LIST_ENTRY **)(*(longlong *)(this_00 + 8) + -8);
-    cVar6 = (*(code *)p_Var24->Flink[0xb].Blink)(p_Var24);
-    if (cVar6 == '\0') {
-      p_Var16 = CVisual::GetTreeDataListHead(this_03);
-      if (p_Var16 != (_LIST_ENTRY *)0x0) {
-        for (p_Var19 = p_Var16->Flink; p_Var19 != p_Var16; p_Var19 = p_Var19->Flink) {
-          p_Var26 = p_Var19 + -0x16;
-          if (p_Var19[2].Flink == p_Var24) goto LAB_4;
-        }
-      }
-    }
-    else {
-      p_Var26 = (_LIST_ENTRY *)(this_03 + 0x148);
-LAB_4:
-      if (p_Var26 != (_LIST_ENTRY *)0x0) {
-        for (p_Var24 = p_Var26[9].Flink; p_Var24 != p_Var26[9].Blink;
-            p_Var24 = (_LIST_ENTRY *)&p_Var24->Blink) {
-          p_Var16 = p_Var24->Flink;
-          plVar17 = *(longlong **)this_00;
-          if ((longlong)p_Var16[0x82].Flink - (longlong)p_Var16[0x81].Blink ==
-              *(longlong *)(this_00 + 8) - (longlong)plVar17) {
-            lVar25 = (longlong)p_Var16[0x81].Blink - (longlong)plVar17;
-            while( true ) {
-              p_Var19 = (_LIST_ENTRY *)((longlong)plVar17 + lVar25);
-              if (p_Var19 == p_Var16[0x82].Flink) {
-                p_Var16[0x8b].Blink = p_Var26[0xf].Blink[1].Blink[0x37].Blink;
-                p_Var20 = p_Var24->Flink;
-                goto LAB_5;
-              }
-              if ((p_Var19->Flink != (_LIST_ENTRY *)*plVar17) ||
-                 (*(longlong *)(lVar25 + 8 + (longlong)plVar17) != plVar17[1])) break;
-              plVar17 = plVar17 + 2;
+        bVar5 = CBackdropVisualImage::IsValid((CBackdropVisualImage *)p_Var16);
+        pTVar18 = local_1d8[0];
+        bVar24 = local_1e8[0];
+        if (bVar5) {
+          local_198 = *(undefined8 *)local_1d8[0];
+          local_1c8 = 0x3f800000;
+          uStack_1c0 = 0;
+          local_1b8 = 0x3f80000000000000;
+          uStack_1b0 = 0;
+          local_1a8 = 0;
+          uStack_1a0 = 0x3f800000;
+          uStack_190 = 0x3f80000000000000;
+          local_188 = 0x29a8;
+          CMILMatrix::Multiply((CMILMatrix *)&local_1c8,(CMILMatrix *)local_178);
+          bVar24 = 0;
+          local_128 = (float)local_1c8;
+          fStack_124 = local_1c8._4_4_;
+          fStack_120 = uStack_1c0._4_4_;
+          fStack_11c = (float)local_1b8;
+          local_118 = local_1b8._4_4_;
+          fStack_114 = uStack_1b0._4_4_;
+          fStack_110 = (float)local_198;
+          fStack_10c = local_198._4_4_;
+          if ((((((8.138021e-05 <=
+                   ABS(*(float *)((longlong)&p_Var16[0x87].Blink + 4) - (float)local_1c8)) ||
+                 (8.138021e-05 <= ABS(*(float *)&p_Var16[0x88].Flink - local_1c8._4_4_))) ||
+                (8.138021e-05 <=
+                 ABS(*(float *)((longlong)&p_Var16[0x88].Flink + 4) - uStack_1c0._4_4_))) ||
+               ((8.138021e-05 <= ABS(*(float *)&p_Var16[0x88].Blink - (float)local_1b8) ||
+                (8.138021e-05 <=
+                 ABS(*(float *)((longlong)&p_Var16[0x88].Blink + 4) - local_1b8._4_4_))))) ||
+              ((8.138021e-05 <= ABS(*(float *)&p_Var16[0x89].Flink - uStack_1b0._4_4_) ||
+               ((8.138021e-05 <=
+                 ABS(*(float *)((longlong)&p_Var16[0x89].Flink + 4) - (float)local_198) ||
+                (8.138021e-05 <= ABS(*(float *)&p_Var16[0x89].Blink - local_198._4_4_))))))) ||
+             (8.138021e-05 <= ABS(*(float *)((longlong)&p_Var16[0x89].Blink + 4) - uStack_190._4_4_)
+             )) {
+            *(undefined8 *)((longlong)&p_Var16[0x87].Blink + 4) = local_1c8;
+            *(ulonglong *)((longlong)&p_Var16[0x88].Flink + 4) =
+                 CONCAT44((float)local_1b8,uStack_1c0._4_4_);
+            *(ulonglong *)((longlong)&p_Var16[0x88].Blink + 4) =
+                 CONCAT44(uStack_1b0._4_4_,local_1b8._4_4_);
+            *(undefined8 *)((longlong)&p_Var16[0x89].Flink + 4) = local_198;
+            *(float *)((longlong)&p_Var16[0x89].Blink + 4) = uStack_190._4_4_;
+            CBackdropVisualImage::InvalidateAllBlurCaches((CBackdropVisualImage *)p_Var16);
+            bVar24 = 1;
+          }
+          bVar24 = local_1e8[0] | bVar24;
+          *(undefined1 *)((longlong)&p_Var16[0x8c].Flink + 1) = 1;
+          if (g_LockAndReadBackdropTexture != false) {
+            local_1e0 = (IRenderTargetBitmap *)0x0;
+            wil::com_ptr_t<IRenderTargetBitmap,wil::err_returncode_policy>::reset
+                      ((com_ptr_t<IRenderTargetBitmap,wil::err_returncode_policy> *)&local_1e0);
+            pCVar2 = this + 0x18;
+            pRVar9 = (RenderTargetInfo *)(**(code **)(*(longlong *)pCVar2 + 0x10))(pCVar2);
+            lVar7 = CCachedVisualImage::GetRenderTargetBitmap
+                              ((CCachedVisualImage *)p_Var16,pRVar9,&local_1e0);
+            if (-1 < lVar7) {
+              plVar13 = (longlong *)(**(code **)(*(longlong *)local_1e0 + 0x90))();
+              (**(code **)(*plVar13 + 0x70))
+                        (plVar13,-(ulonglong)(this != (CDrawingContext *)0x0) & (ulonglong)pCVar2);
             }
-          }
-        }
-      }
-    }
-LAB_5:
-    bVar7 = CBackdropVisualImage::IsValid((CBackdropVisualImage *)p_Var20);
-    pIVar4 = local_1f0;
-    bVar27 = 0;
-    bVar29 = local_1f8[0];
-    if (bVar7) {
-      local_198 = *(undefined8 *)local_1f0;
-      uStack_190 = 0;
-      fStack_18c = 1.0;
-      uStack_186 = 0;
-      local_1c8 = 0x3f800000;
-      uStack_1c0 = 0;
-      uStack_187 = 0x29;
-      local_1b8 = 0x3f80000000000000;
-      uStack_1b0 = 0;
-      local_1a8 = 0;
-      uStack_1a0 = 0x3f800000;
-      uStack_188 = 0xa8;
-      CMILMatrix::Multiply((CMILMatrix *)&local_1c8,(CMILMatrix *)local_178);
-      local_128 = (float)local_1c8;
-      fStack_124 = local_1c8._4_4_;
-      fStack_120 = uStack_1c0._4_4_;
-      fStack_11c = (float)local_1b8;
-      local_118 = local_1b8._4_4_;
-      fStack_114 = uStack_1b0._4_4_;
-      fStack_110 = (float)local_198;
-      fStack_10c = local_198._4_4_;
-      if ((((((8.138021e-05 <=
-               ABS(*(float *)((longlong)&p_Var20[0x87].Blink + 4) - (float)local_1c8)) ||
-             (8.138021e-05 <= ABS(*(float *)&p_Var20[0x88].Flink - local_1c8._4_4_))) ||
-            (8.138021e-05 <= ABS(*(float *)((longlong)&p_Var20[0x88].Flink + 4) - uStack_1c0._4_4_))
-            ) || ((8.138021e-05 <= ABS(*(float *)&p_Var20[0x88].Blink - (float)local_1b8) ||
-                  (8.138021e-05 <=
-                   ABS(*(float *)((longlong)&p_Var20[0x88].Blink + 4) - local_1b8._4_4_))))) ||
-          ((8.138021e-05 <= ABS(*(float *)&p_Var20[0x89].Flink - uStack_1b0._4_4_) ||
-           ((8.138021e-05 <= ABS(*(float *)((longlong)&p_Var20[0x89].Flink + 4) - (float)local_198)
-            || (8.138021e-05 <= ABS(*(float *)&p_Var20[0x89].Blink - local_198._4_4_))))))) ||
-         (8.138021e-05 <= ABS(*(float *)((longlong)&p_Var20[0x89].Blink + 4) - fStack_18c))) {
-        *(undefined8 *)((longlong)&p_Var20[0x87].Blink + 4) = local_1c8;
-        *(ulonglong *)((longlong)&p_Var20[0x88].Flink + 4) =
-             CONCAT44((float)local_1b8,uStack_1c0._4_4_);
-        *(ulonglong *)((longlong)&p_Var20[0x88].Blink + 4) =
-             CONCAT44(uStack_1b0._4_4_,local_1b8._4_4_);
-        *(undefined8 *)((longlong)&p_Var20[0x89].Flink + 4) = local_198;
-        *(float *)((longlong)&p_Var20[0x89].Blink + 4) = fStack_18c;
-        CBackdropVisualImage::InvalidateAllBlurCaches((CBackdropVisualImage *)p_Var20);
-        bVar27 = 1;
-      }
-      bVar29 = local_1f8[0] | bVar27;
-      *(undefined1 *)((longlong)&p_Var20[0x8c].Flink + 1) = 1;
-      if (g_LockAndReadBackdropTexture != false) {
-        local_1f0 = (IRenderTargetBitmap *)0x0;
-        wil::com_ptr_t<IRenderTargetBitmap,wil::err_returncode_policy>::reset
-                  ((com_ptr_t<IRenderTargetBitmap,wil::err_returncode_policy> *)&local_1f0);
-        pCVar3 = this + 0x18;
-        pRVar11 = (RenderTargetInfo *)(**(code **)(*(longlong *)pCVar3 + 0x10))(pCVar3);
-        lVar9 = CCachedVisualImage::GetRenderTargetBitmap
-                          ((CCachedVisualImage *)p_Var20,pRVar11,&local_1f0);
-        if (-1 < lVar9) {
-          plVar17 = (longlong *)(**(code **)(*(longlong *)local_1f0 + 0x90))();
-          (**(code **)(*plVar17 + 0x70))
-                    (plVar17,-(ulonglong)(this != (CDrawingContext *)0x0) & (ulonglong)pCVar3);
-        }
-        wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::
-        ~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>
-                  ((com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy> *)&local_1f0);
-      }
-    }
-    pbVar5 = local_1e0;
-    if (local_1e0 != (bool *)0x0) {
-      pRVar11 = (RenderTargetInfo *)(**(code **)(*(longlong *)(this + 0x18) + 0x10))();
-      p_Var24 = p_Var20;
-      bVar7 = CBackdropVisualImage::IsValid((CBackdropVisualImage *)p_Var20);
-      if ((bVar7) &&
-         (bVar7 = CBackdropVisualImage::RequiresRendering((CBackdropVisualImage *)p_Var24,pRVar11),
-         !bVar7)) {
-        bVar28 = 0;
-      }
-      bVar29 = bVar29 | bVar28;
-      *pbVar5 = (bool)bVar29;
-    }
-    DwmDbg::DbgString::DbgString
-              ((DbgString *)&local_1e8,
-               "(%.2f, %.2f, %.2f, %.2f), (%.2f, %.2f, %.2f, %.2f), (%.2f, %.2f, %.2f, %.2f), (%.2f, %.2f, %.2f, %.2f)"
-               ,(double)local_178[0],(double)local_178[1]);
-    DwmDbg::DbgString::DbgString
-              ((DbgString *)&local_1e0,"%.2f, %.2f, %.2f, %.2f (%.2f x %.2f)",
-               (double)*(float *)pIVar4,(double)*(float *)(pIVar4 + 4));
-    pbVar5 = local_1e0;
-    pCVar14 = local_1e8;
-    uVar12 = DwmDbg::DbgString::DbgString
-                       ((DbgString *)&local_f0,"rcBackdropLocal=[%s], worldTransform=[%s]",local_1e0
-                        ,local_1e8);
-    pcVar22 = "BVI-Validate-InvalidatedCache";
-    if (bVar29 == 0) {
-      pcVar22 = "BVI-Validate-DidNotInvalidateCache";
-    }
-    uVar13 = DwmDbg::DbgString::DbgString((DbgString *)&local_1d0,pcVar22);
-    CBackdropVisualImage::LogEtwEvent((CBackdropVisualImage *)p_Var20,uVar13,uVar12);
-    if (pbVar5 != (bool *)0x0) {
-      _Free_DefaultHeap__SAXPEAX_Z(pbVar5);
-    }
-    if (pCVar14 != (CVisualTree *)0x0) {
-      _Free_DefaultHeap__SAXPEAX_Z(pCVar14);
-    }
+            wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::
+            ~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>
+                      ((com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy> *)&local_1e0);
+            pTVar18 = local_1d8[0];
+          }
+        }
+        if (param_2 != (bool *)0x0) {
+          pRVar9 = (RenderTargetInfo *)(**(code **)(*(longlong *)(this + 0x18) + 0x10))();
+          p_Var20 = p_Var16;
+          bVar5 = CBackdropVisualImage::IsValid((CBackdropVisualImage *)p_Var16);
+          if ((bVar5) &&
+             (bVar5 = CBackdropVisualImage::RequiresRendering
+                                ((CBackdropVisualImage *)p_Var20,pRVar9), !bVar5)) {
+            bVar23 = 0;
+          }
+          bVar24 = bVar24 | bVar23;
+          *param_2 = (bool)bVar24;
+        }
+        DwmDbg::DbgString::DbgString
+                  ((DbgString *)local_1d8,
+                   "(%.2f, %.2f, %.2f, %.2f), (%.2f, %.2f, %.2f, %.2f), (%.2f, %.2f, %.2f, %.2f), (%.2f, %.2f, %.2f, %.2f)"
+                   ,(double)local_178[0],(double)local_178[1]);
+        DwmDbg::DbgString::DbgString
+                  ((DbgString *)&local_1e0,"%.2f, %.2f, %.2f, %.2f (%.2f x %.2f)",
+                   (double)*(float *)pTVar18,(double)*(float *)(pTVar18 + 4));
+        pTVar18 = local_1d8[0];
+        pIVar3 = local_1e0;
+        uVar10 = DwmDbg::DbgString::DbgString
+                           ((DbgString *)&local_f0,"rcBackdropLocal=[%s], worldTransform=[%s]",
+                            local_1e0,local_1d8[0]);
+        pcVar17 = "BVI-Validate-InvalidatedCache";
+        if (bVar24 == 0) {
+          pcVar17 = "BVI-Validate-DidNotInvalidateCache";
+        }
+        uVar11 = DwmDbg::DbgString::DbgString((DbgString *)&local_100,pcVar17);
+        CBackdropVisualImage::LogEtwEvent((CBackdropVisualImage *)p_Var16,uVar11,uVar10);
+        if (pIVar3 != (IRenderTargetBitmap *)0x0) {
+          _Free_DefaultHeap__SAXPEAX_Z(pIVar3);
+        }
+        if (pTVar18 !=
+            (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> *)
+            0x0) {
+          _Free_DefaultHeap__SAXPEAX_Z(pTVar18);
+        }
+        goto LAB_4;
+      }
+      uVar15 = 0x69a;
+    }
+    wil::details::in1diag3::Return_Hr
+              (unaff_retaddr,uVar15,"onecoreuap\\windows\\dwm\\dwmcore\\engine\\drawingcontext.cpp",
+               lVar7);
   }
   else {
     if (param_2 != (bool *)0x0) {
-      pRVar11 = (RenderTargetInfo *)(**(code **)(*(longlong *)(this + 0x18) + 0x10))();
-      bVar7 = CBackdropVisualImage::HasValidRenderingRealization
-                        ((CBackdropVisualImage *)p_Var20,pRVar11);
-      bVar7 = !bVar7;
-      *param_2 = bVar7;
-    }
-    uVar12 = DwmDbg::DbgString::DbgString((DbgString *)&local_1e8,"");
-    pcVar22 = "BVI-SkipValidationInNestedBackdropWalk-InvalidatedCache";
-    if (!bVar7) {
-      pcVar22 = "BVI-SkipValidationInNestedBackdropWalk-DidNotInvalidateCache";
-    }
-    uVar13 = DwmDbg::DbgString::DbgString((DbgString *)&local_1e0,pcVar22);
-    CBackdropVisualImage::LogEtwEvent((CBackdropVisualImage *)p_Var20,uVar13,uVar12);
-  }
-  return 0;
+      pRVar9 = (RenderTargetInfo *)(**(code **)(*(longlong *)(this + 0x18) + 0x10))();
+      bVar5 = CBackdropVisualImage::HasValidRenderingRealization
+                        ((CBackdropVisualImage *)p_Var16,pRVar9);
+      bVar5 = !bVar5;
+      *param_2 = bVar5;
+    }
+    uVar10 = DwmDbg::DbgString::DbgString((DbgString *)local_1d8,"");
+    pcVar17 = "BVI-SkipValidationInNestedBackdropWalk-InvalidatedCache";
+    if (!bVar5) {
+      pcVar17 = "BVI-SkipValidationInNestedBackdropWalk-DidNotInvalidateCache";
+    }
+    uVar11 = DwmDbg::DbgString::DbgString((DbgString *)&local_1e0,pcVar17);
+    CBackdropVisualImage::LogEtwEvent((CBackdropVisualImage *)p_Var16,uVar11,uVar10);
+LAB_4:
+    lVar7 = 0;
+  }
+  return lVar7;
 }
 

```


## COverlayContext::OnSwapChainCreated

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.73|
|i_ratio|0.64|
|m_ratio|0.96|
|b_ratio|0.96|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|OnSwapChainCreated|OnSwapChainCreated|
|fullname|COverlayContext::OnSwapChainCreated|COverlayContext::OnSwapChainCreated|
|refcount|4|4|
|`length`|702|763|
|`called`|API-MS-WIN-DX-D3DKMT-L1-1-0.DLL::D3DKMTQueryAdapterInfo<br>CKMAdapterHandle::Initialize<br>CKMAdapterHandle::~CKMAdapterHandle<br>_guard_dispatch_icall$thunk$10345483385596137414<br>wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy><br>wil::details::FeatureImpl<__WilFeatureTraits_Feature_ComposedFlipPerf>::__private_IsEnabled|API-MS-WIN-DX-D3DKMT-L1-1-0.DLL::D3DKMTQueryAdapterInfo<br>CKMAdapterHandle::Initialize<br>CKMAdapterHandle::~CKMAdapterHandle<br>_guard_dispatch_icall$thunk$10345483385596137414<br>wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy><br>wil::details::FeatureImpl<__WilFeatureTraits_Feature_ComposedFlipPerf>::__private_IsEnabled<br>wil::details::FeatureImpl<__WilFeatureTraits_Feature_DesktopDWMCursor>::__private_IsEnabled|
|calling|CDDisplayRenderTarget::TryEnsureSwapChain<br>CLegacyRenderTarget::EnsureSwapChain<br>CLegacyStereoRenderTarget::EnsureSwapChain|CDDisplayRenderTarget::TryEnsureSwapChain<br>CLegacyRenderTarget::EnsureSwapChain<br>CLegacyStereoRenderTarget::EnsureSwapChain|
|paramcount|1|1|
|`address`|180236fdc|1802336dc|
|sig|void __thiscall OnSwapChainCreated(COverlayContext * this)|void __thiscall OnSwapChainCreated(COverlayContext * this)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### COverlayContext::OnSwapChainCreated Called Diff


```diff
--- COverlayContext::OnSwapChainCreated called
+++ COverlayContext::OnSwapChainCreated called
@@ -6,0 +7 @@
+wil::details::FeatureImpl<__WilFeatureTraits_Feature_DesktopDWMCursor>::__private_IsEnabled
```


### COverlayContext::OnSwapChainCreated Diff


```diff
--- COverlayContext::OnSwapChainCreated
+++ COverlayContext::OnSwapChainCreated
@@ -1,131 +1,145 @@
 
 /* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
    guard_dispatch_icall */
 /* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
 /* public: void __cdecl COverlayContext::OnSwapChainCreated(void) __ptr64 */
 
 void __thiscall COverlayContext::OnSwapChainCreated(COverlayContext *this)
 
 {
   COverlayContext *pCVar1;
   code *pcVar2;
   bool bVar3;
   COverlayContext CVar4;
   long lVar5;
   int iVar6;
   longlong *plVar7;
   longlong lVar8;
   undefined8 *puVar9;
   uint **ppuVar10;
   _LUID *p_Var11;
   int iVar12;
   uint uVar13;
   uint local_res8;
   uint local_resc;
-  longlong *local_res10;
-  undefined8 local_res18 [2];
+  undefined8 local_res10;
+  longlong *local_res18 [2];
   uint local_58 [2];
   undefined8 *local_50;
   undefined8 local_48;
   
   plVar7 = (longlong *)(**(code **)(**(longlong **)this + 0x118))();
   lVar8 = (**(code **)(*plVar7 + 0x28))(plVar7);
   bVar3 = wil::details::FeatureImpl<__WilFeatureTraits_Feature_ComposedFlipPerf>::
           __private_IsEnabled((FeatureImpl<__WilFeatureTraits_Feature_ComposedFlipPerf> *)
                               &`private:_static_class_wil::details::FeatureImpl<__WilFeatureTraits_Feature_ComposedFlipPerf>&___ptr64___cdecl_wil::Feature<__WilFeatureTraits_Feature_ComposedFlipPerf>::GetImpl(void)'
                                ::__l2::impl);
   uVar13 = 0;
   if (bVar3) {
-    *(undefined8 *)(this + 0x4bd0) = 0;
-    *(undefined8 *)(this + 0x4bc8) = 0;
-    this[0x4bf0] = (COverlayContext)0x0;
+    *(undefined8 *)(this + 0x4c58) = 0;
+    *(undefined8 *)(this + 0x4c50) = 0;
+    this[0x4c78] = (COverlayContext)0x0;
     (**(code **)(*(longlong *)(*(longlong *)this + 8) + 0x28))();
-    *(ulonglong *)(this + 0x4be8) = (ulonglong)local_resc * (ulonglong)local_res8;
+    *(ulonglong *)(this + 0x4c70) = (ulonglong)local_resc * (ulonglong)local_res8;
     if (_GameAreaScreenRatio == 0) {
-      *(undefined8 *)(this + 0x4be8) = 0;
+      *(undefined8 *)(this + 0x4c70) = 0;
     }
     else {
-      *(ulonglong *)(this + 0x4be8) =
+      *(ulonglong *)(this + 0x4c70) =
            ((ulonglong)local_resc * (ulonglong)local_res8) / (ulonglong)_GameAreaScreenRatio;
     }
   }
-  local_res10 = (longlong *)0x0;
+  local_res18[0] = (longlong *)0x0;
   puVar9 = (undefined8 *)(**(code **)(**(longlong **)this + 0x118))();
   pcVar2 = *(code **)*puVar9;
-  if (local_res10 != (longlong *)0x0) {
-    (**(code **)(*local_res10 + 0x10))();
+  if (local_res18[0] != (longlong *)0x0) {
+    (**(code **)(*local_res18[0] + 0x10))();
   }
-  iVar6 = (*pcVar2)(puVar9,&_GUID_cf12c0b8_aae0_4ef0_b8e3_97cd3b4d6f91,&local_res10);
+  iVar6 = (*pcVar2)(puVar9,&_GUID_cf12c0b8_aae0_4ef0_b8e3_97cd3b4d6f91,local_res18);
   if (iVar6 < 0) {
-    this[0x4bf1] = (COverlayContext)0x0;
+    this[0x4c79] = (COverlayContext)0x0;
     CVar4 = (COverlayContext)(**(code **)(**(longlong **)this + 0x110))();
   }
   else {
-    this[0x4bf1] = (COverlayContext)0x1;
+    this[0x4c79] = (COverlayContext)0x1;
     CVar4 = (COverlayContext)0x0;
   }
-  this[0x4bfa] = CVar4;
-  pCVar1 = this + 0x4bb8;
+  this[0x4c83] = CVar4;
+  pCVar1 = this + 0x4c40;
   iVar6 = *(int *)(lVar8 + 0x26c);
   *(int *)pCVar1 = iVar6;
-  this[0x4bf3] = (COverlayContext)0x0;
+  this[0x4c7b] = (COverlayContext)0x0;
   if (*(int *)(lVar8 + 0x380) == 0x8086) {
     if (*(longlong *)(lVar8 + 0x270) < 0x140013000f112e) {
-      this[0x4bf2] = (COverlayContext)0x1;
+      this[0x4c7a] = (COverlayContext)0x1;
     }
     ppuVar10 = &`bool___cdecl_IsIntelFullDesktopClipRequired(unsigned_int)'::__l2::s_deviceIds;
     do {
       if (*(int *)(lVar8 + 900) == *(int *)ppuVar10) {
         CVar4 = (COverlayContext)0x1;
         goto LAB_0;
       }
       uVar13 = uVar13 + 1;
       ppuVar10 = (uint **)((longlong)ppuVar10 + 4);
     } while (uVar13 < 0x2b);
     CVar4 = (COverlayContext)0x0;
 LAB_0:
     iVar12 = *(int *)pCVar1;
     iVar6 = *(int *)pCVar1;
-    this[0x4bf3] = CVar4;
+    this[0x4c7b] = CVar4;
   }
   else {
     iVar12 = iVar6;
     if (((*(int *)(lVar8 + 0x380) == 0x4d4f4351) && (*(int *)(lVar8 + 900) == 0x46363432)) &&
        (*(longlong *)(lVar8 + 0x270) < 0xb001204360027)) {
-      this[0x4bf4] = (COverlayContext)0x1;
+      this[0x4c7c] = (COverlayContext)0x1;
     }
   }
   if (((CCommonRegistryData::m_customRefreshRateMode == 1) && (iVar6 = iVar12, 0x897 < iVar12)) &&
      ((*(int *)(lVar8 + 0x380) != 0x8086 || (0x139 < (ushort)(*(short *)(lVar8 + 0x270) + 0xe49dU)))
      )) {
-    this[0x4bf6] = (COverlayContext)0x1;
+    this[0x4c7f] = (COverlayContext)0x1;
   }
-  this[0x4bf5] = (COverlayContext)0x0;
+  *(undefined2 *)(this + 0x4c7d) = 0x100;
   if (iVar6 < 0x834) {
     if (*(int *)(lVar8 + 0x380) == 0x1002) {
-      this[0x4bf5] = (COverlayContext)0x1;
+      this[0x4c7d] = (COverlayContext)0x1;
+      bVar3 = wil::details::FeatureImpl<__WilFeatureTraits_Feature_DesktopDWMCursor>::
+              __private_IsEnabled((FeatureImpl<__WilFeatureTraits_Feature_DesktopDWMCursor> *)
+                                  &`private:_static_class_wil::details::FeatureImpl<__WilFeatureTraits_Feature_DesktopDWMCursor>&___ptr64___cdecl_wil::Feature<__WilFeatureTraits_Feature_DesktopDWMCursor>::GetImpl(void)'
+                                   ::__l2::impl);
+      if (bVar3) {
+        this[0x4c7e] = (COverlayContext)0x0;
+      }
     }
   }
   else {
     local_res8 = 0;
-    p_Var11 = (_LUID *)(**(code **)(*plVar7 + 0xd8))(plVar7,local_res18);
+    p_Var11 = (_LUID *)(**(code **)(*plVar7 + 0xd8))(plVar7,&local_res10);
     lVar5 = CKMAdapterHandle::Initialize((CKMAdapterHandle *)&local_res8,*p_Var11);
     if (-1 < lVar5) {
       local_58[0] = local_res8;
-      local_50 = local_res18;
-      local_res18[0] = 0;
+      local_50 = &local_res10;
+      local_res10 = 0;
       local_48 = 8;
       local_58[1] = 0x4a;
       iVar6 = D3DKMTQueryAdapterInfo(local_58);
       if (-1 < iVar6) {
-        this[0x4bf5] = (COverlayContext)((byte)local_res18[0] >> 1 & 1);
+        this[0x4c7d] = (COverlayContext)((byte)local_res10 >> 1 & 1);
+        bVar3 = wil::details::FeatureImpl<__WilFeatureTraits_Feature_DesktopDWMCursor>::
+                __private_IsEnabled((FeatureImpl<__WilFeatureTraits_Feature_DesktopDWMCursor> *)
+                                    &`private:_static_class_wil::details::FeatureImpl<__WilFeatureTraits_Feature_DesktopDWMCursor>&___ptr64___cdecl_wil::Feature<__WilFeatureTraits_Feature_DesktopDWMCursor>::GetImpl(void)'
+                                     ::__l2::impl);
+        if (bVar3) {
+          this[0x4c7e] = (COverlayContext)(~((byte)local_res10 >> 2) & 1);
+        }
       }
     }
     CKMAdapterHandle::~CKMAdapterHandle((CKMAdapterHandle *)&local_res8);
   }
   wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::
   ~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>
-            ((com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy> *)&local_res10);
+            ((com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy> *)local_res18);
   return;
 }
 

```


## CPreComputeContext::ProcessPostSubgraphBackdropInput

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,refcount,length,address,called|
|ratio|0.09|
|i_ratio|0.12|
|m_ratio|0.64|
|b_ratio|0.13|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|ProcessPostSubgraphBackdropInput|ProcessPostSubgraphBackdropInput|
|fullname|CPreComputeContext::ProcessPostSubgraphBackdropInput|CPreComputeContext::ProcessPostSubgraphBackdropInput|
|`refcount`|3|2|
|`length`|2672|1263|
|`called`|<details><summary>Expand for full list:<br>?Free@DefaultHeap@@SAXPEAX@Z<br>CBackdropVisualImage::Create<br>CBackdropVisualImage::RequireClippedBounds<br>CBackdropVisualImage::ValidateRootAndSourceRectangle<br>CCachedVisualImage::MarkAllTargetsDirty<br>CDrawListCache::Invalidate<br>CMILCOMBaseWeakRefSource<CResourceDeleter>::InternalRelease<br>CMILMatrix::Transform3DBoundsHelper<1><br>CMILRefCountImpl::AddReference<br>CMatrixTransform3D::IsOfType<br>CPreComputeContext::SubTreeContext::IsDirtyCollectionEnabled</summary>CTreeData::SetBackdropVisualImage<br>CTreeDirty::SetFullDirty<br>CTreeDirty::_Add<br>CVisual::EnsureTreeData<br>CVisual::GetTreeDataListHead<br>CVisual::GetVisualTreeNoRef<br>CVisualTreePath::CVisualTreePath<br>CVisualTreePath::GetDebugString<br>DwmDbg::Backdrops::IsEtwEnabled<br>DwmDbg::Backdrops::LogBrushEtwEvent<br>DwmDbg::Backdrops::LogTreeWalkEtwEvent<br>DwmDbg::DbgString::DbgString<br>DwmDbg::DbgString::DbgString<br>TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::IsEmpty<br>TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::IsInfinite<br>__security_check_cookie<br>_guard_dispatch_icall$thunk$10345483385596137414<br>detail::destruct_range<wil::com_ptr_t<CBackdropVisualImage,wil::err_returncode_policy>_><br>detail::vector_facade<CVisualTreePath::VisualTreePathUnit,detail::buffer_impl<CVisualTreePath::VisualTreePathUnit,2,1,detail::liberal_expansion_policy>_>::push_back<br>detail::vector_facade<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,detail::buffer_impl<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,10,1,detail::liberal_expansion_policy>_>::~vector_facade<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,detail::buffer_impl<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,10,1,detail::liberal_expansion_policy>_><br>wil::details::in1diag3::Return_Hr</details>|<details><summary>Expand for full list:<br>API-MS-WIN-CORE-HEAP-L1-1-0.DLL::GetProcessHeap<br>API-MS-WIN-CORE-HEAP-L1-1-0.DLL::HeapFree<br>CBackdropVisualImage::RequireClippedBounds<br>CBaseClipStack::Clip<br>CMILMatrix::Transform3DBoundsHelper<1><br>CPreComputeContext::SubTreeContext::AddWorldBoundsToDirtyRegion<br>CPreComputeContext::UpdateBVIForVisual<br>CVisual::InvalidateDrawListCaches<br>CVisual::MarkAllBackdropVisualImagesDirty<br>CVisual::ResetAllBackdropVisualImagesForVisualTree<br>CVisualTree::_IsInTree</summary>DwmDbg::Backdrops::LogTreeWalkEtwEvent<br>DwmDbg::DbgString::DbgString<br>__security_check_cookie<br>_guard_dispatch_icall$thunk$10345483385596137414<br>detail::vector_facade<CVisualTreePath::VisualTreePathUnit,detail::buffer_impl<CVisualTreePath::VisualTreePathUnit,2,1,detail::liberal_expansion_policy>_>::push_back<br>detail::vector_facade<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,detail::buffer_impl<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,10,1,detail::liberal_expansion_policy>_>::~vector_facade<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,detail::buffer_impl<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,10,1,detail::liberal_expansion_policy>_><br>wil::details::in1diag3::Return_Hr</details>|
|calling|CPreComputeContext::PostSubgraph|CPreComputeContext::PostSubgraph|
|paramcount|3|3|
|`address`|1800fe7f0|1802307e0|
|sig|long __thiscall ProcessPostSubgraphBackdropInput(CPreComputeContext * this, CVisual * param_1, bool param_2)|long __thiscall ProcessPostSubgraphBackdropInput(CPreComputeContext * this, CVisual * param_1, bool param_2)|
|sym_type|Function|Function|
|sym_source|IMPORTED|ANALYSIS|
|external|False|False|

### CPreComputeContext::ProcessPostSubgraphBackdropInput Called Diff


```diff
--- CPreComputeContext::ProcessPostSubgraphBackdropInput called
+++ CPreComputeContext::ProcessPostSubgraphBackdropInput called
@@ -1,2 +1,2 @@
-?Free@DefaultHeap@@SAXPEAX@Z
-CBackdropVisualImage::Create
+API-MS-WIN-CORE-HEAP-L1-1-0.DLL::GetProcessHeap
+API-MS-WIN-CORE-HEAP-L1-1-0.DLL::HeapFree
@@ -4,4 +4 @@
-CBackdropVisualImage::ValidateRootAndSourceRectangle
-CCachedVisualImage::MarkAllTargetsDirty
-CDrawListCache::Invalidate
-CMILCOMBaseWeakRefSource<CResourceDeleter>::InternalRelease
+CBaseClipStack::Clip
@@ -9,13 +6,6 @@
-CMILRefCountImpl::AddReference
-CMatrixTransform3D::IsOfType
-CPreComputeContext::SubTreeContext::IsDirtyCollectionEnabled
-CTreeData::SetBackdropVisualImage
-CTreeDirty::SetFullDirty
-CTreeDirty::_Add
-CVisual::EnsureTreeData
-CVisual::GetTreeDataListHead
-CVisual::GetVisualTreeNoRef
-CVisualTreePath::CVisualTreePath
-CVisualTreePath::GetDebugString
-DwmDbg::Backdrops::IsEtwEnabled
-DwmDbg::Backdrops::LogBrushEtwEvent
+CPreComputeContext::SubTreeContext::AddWorldBoundsToDirtyRegion
+CPreComputeContext::UpdateBVIForVisual
+CVisual::InvalidateDrawListCaches
+CVisual::MarkAllBackdropVisualImagesDirty
+CVisual::ResetAllBackdropVisualImagesForVisualTree
+CVisualTree::_IsInTree
@@ -24,3 +13,0 @@
-DwmDbg::DbgString::DbgString
-TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::IsEmpty
-TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::IsInfinite
@@ -29 +15,0 @@
-detail::destruct_range<wil::com_ptr_t<CBackdropVisualImage,wil::err_returncode_policy>_>
```


### CPreComputeContext::ProcessPostSubgraphBackdropInput Diff


```diff
--- CPreComputeContext::ProcessPostSubgraphBackdropInput
+++ CPreComputeContext::ProcessPostSubgraphBackdropInput
@@ -1,506 +1,206 @@
 
+/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
 /* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
    guard_dispatch_icall */
-/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
-/* WARNING: Type propagation algorithm not settling */
 /* private: long __cdecl CPreComputeContext::ProcessPostSubgraphBackdropInput(class CVisual *
    __ptr64,bool) __ptr64 */
 
 long __thiscall
 CPreComputeContext::ProcessPostSubgraphBackdropInput
           (CPreComputeContext *this,CVisual *param_1,bool param_2)
 
 {
-  longlong *plVar1;
   SubTreeContext *this_00;
-  longlong lVar2;
-  CMatrixTransform3D *this_01;
-  code *pcVar3;
-  CVisual *this_02;
-  CVisualTree *pCVar4;
-  longlong *plVar5;
-  bool bVar6;
-  char cVar7;
-  bool bVar8;
-  uint uVar9;
-  long lVar10;
-  _LIST_ENTRY *p_Var11;
-  CTreeData *this_03;
-  undefined8 *puVar12;
-  undefined8 uVar13;
-  undefined8 uVar14;
-  _LIST_ENTRY *p_Var15;
-  CVisualTree *pCVar16;
-  uint uVar17;
-  CMILMatrix_IdentityType *this_04;
-  float *pfVar18;
-  _LIST_ENTRY *p_Var19;
+  CVisualTree *this_01;
+  longlong lVar1;
+  float fVar2;
+  float fVar3;
+  float fVar4;
+  float fVar5;
+  LPVOID lpMem;
+  char cVar6;
+  bool bVar7;
+  uint uVar8;
+  long lVar9;
+  undefined8 uVar10;
+  HANDLE pvVar11;
+  CMILMatrix_IdentityType *this_02;
+  float *pfVar12;
   TMil3DRect<float,TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,D3D_RECT_F,MilPointAndSizeF,RectUniqueness::NotNeeded>
-  *pTVar20;
-  uint *puVar21;
-  _LIST_ENTRY **pp_Var22;
-  _LIST_ENTRY *p_Var23;
-  longlong lVar24;
-  CBackdropVisualImage *this_05;
-  longlong *plVar25;
-  longlong *plVar26;
-  CTreeDirty *this_06;
-  float fVar27;
-  float fVar28;
-  float fVar29;
-  float fVar30;
-  float fVar31;
-  float fVar32;
-  float fVar33;
-  float fVar34;
+  *pTVar13;
+  longlong lVar14;
+  TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> *pTVar15;
+  ulonglong in_R9;
+  bool bVar16;
   void *unaff_retaddr;
-  undefined1 auStackY_168 [32];
-  bool local_138;
-  bool local_136 [6];
-  CBackdropVisualImage *local_130;
-  void *local_128;
-  DbgString local_120 [8];
-  float local_118;
-  float fStack_114;
-  float fStack_110;
+  undefined1 auStackY_178 [32];
+  bool local_138 [8];
+  LPVOID local_130;
+  CVisualTree *local_128;
+  LPVOID local_120;
+  DbgString local_118 [8];
+  float local_110;
   float fStack_10c;
-  float local_108 [2];
-  undefined8 uStack_100;
-  undefined8 local_f8;
-  undefined8 uStack_f0;
-  undefined8 local_e8;
-  longlong *local_e0;
-  longlong *local_d8;
-  ulonglong *local_d0;
-  longlong local_c8 [4];
-  ulonglong local_a8 [14];
+  float fStack_108;
+  float fStack_104;
+  undefined8 local_100;
+  undefined8 uStack_f8;
+  undefined8 local_f0;
+  undefined1 *local_e8;
+  undefined1 *local_e0;
+  ulonglong *local_d8;
+  undefined1 local_d0 [32];
+  ulonglong local_b0 [15];
   
-  local_a8[0] = __security_cookie ^ (ulonglong)auStackY_168;
-  bVar6 = false;
-  local_138 = false;
-  local_136[0] = false;
+  local_b0[0] = __security_cookie ^ (ulonglong)auStackY_178;
+  bVar16 = false;
+  local_138[0] = false;
   if (*(int *)(this + 0x588) == 0) {
     return 0;
   }
-  uVar9 = *(int *)(this + 0x588) - 1;
-  local_e8 = 0;
-  *(uint *)(this + 0x588) = uVar9;
+  uVar8 = *(int *)(this + 0x588) - 1;
+  local_f0 = 0;
+  *(uint *)(this + 0x588) = uVar8;
   this_00 = *(SubTreeContext **)this;
-  local_f8 = 0;
-  uStack_f0 = 0;
-  pfVar18 = (float *)(*(longlong *)(this + 0x580) + (ulonglong)uVar9 * 0x10);
-  fVar32 = *pfVar18;
-  fVar29 = pfVar18[1];
-  fVar28 = pfVar18[2];
-  fVar27 = pfVar18[3];
+  local_100 = 0;
+  uStack_f8 = 0;
+  pfVar12 = (float *)(*(longlong *)(this + 0x580) + (ulonglong)uVar8 * 0x10);
+  fVar2 = *pfVar12;
+  fVar3 = pfVar12[1];
+  fVar4 = pfVar12[2];
+  fVar5 = pfVar12[3];
   if (*(int *)(this_00 + 0x118) == 0) {
-    this_04 = &CMILMatrix::Identity;
+    this_02 = &CMILMatrix::Identity;
   }
   else {
-    this_04 = (CMILMatrix_IdentityType *)
+    this_02 = (CMILMatrix_IdentityType *)
               ((ulonglong)(*(int *)(this_00 + 0x118) - 1) * 0x44 + *(longlong *)(this_00 + 0x110));
   }
   if (param_1 == *(CVisual **)(*(longlong *)(this_00 + 0x148) + 0x48)) {
-    pTVar20 = (TMil3DRect<float,TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,D3D_RECT_F,MilPointAndSizeF,RectUniqueness::NotNeeded>
+    pTVar13 = (TMil3DRect<float,TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,D3D_RECT_F,MilPointAndSizeF,RectUniqueness::NotNeeded>
                *)(*(longlong *)(this_00 + 0x148) + 0x50);
   }
   else {
-    pTVar20 = (TMil3DRect<float,TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,D3D_RECT_F,MilPointAndSizeF,RectUniqueness::NotNeeded>
+    pTVar13 = (TMil3DRect<float,TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,D3D_RECT_F,MilPointAndSizeF,RectUniqueness::NotNeeded>
                *)(param_1 + 0x98);
   }
-  local_118 = fVar32;
-  fStack_114 = fVar29;
-  fStack_110 = fVar28;
-  fStack_10c = fVar27;
   CMILMatrix::Transform3DBoundsHelper<1>
-            ((CMILMatrix *)this_04,pTVar20,
+            ((CMILMatrix *)this_02,pTVar13,
              (TMil3DRect<float,class_TMilRect_<float,struct_D2D_RECT_F,struct_D3D_RECT_F,struct_D2D_POINTANDSIZE_F,struct_RectUniqueness::NotNeeded>,struct_D3D_RECT_F,struct_MilPointAndSizeF,struct_RectUniqueness::NotNeeded>
-              *)&local_f8);
-  fVar30 = (float)local_f8;
-  fVar31 = (float)uStack_f0;
-  fVar33 = local_f8._4_4_;
-  fVar34 = uStack_f0._4_4_;
-  if (*(int *)(this_00 + 0x130) != 0) {
-    pfVar18 = (float *)((ulonglong)(*(int *)(this_00 + 0x130) - 1) * 0x10 +
-                       *(longlong *)(this_00 + 0x128));
-    fVar30 = *pfVar18;
-    if (*pfVar18 < (float)local_f8) {
-      fVar30 = (float)local_f8;
-    }
-    fVar33 = pfVar18[1];
-    if (pfVar18[1] < local_f8._4_4_) {
-      fVar33 = local_f8._4_4_;
-    }
-    fVar31 = pfVar18[2];
-    if ((float)uStack_f0 < pfVar18[2]) {
-      fVar31 = (float)uStack_f0;
-    }
-    fVar34 = pfVar18[3];
-    if (uStack_f0._4_4_ < pfVar18[3]) {
-      fVar34 = uStack_f0._4_4_;
-    }
-    if ((fVar31 <= fVar30) || (fVar34 <= fVar33)) {
-      fVar30 = 0.0;
-      fVar31 = 0.0;
-      fVar33 = 0.0;
-      fVar34 = 0.0;
-    }
-  }
-  uStack_100 = CONCAT44(fVar34,fVar31);
-  local_108[1] = fVar33;
-  local_108[0] = fVar30;
-  if ((fVar28 <= fVar32) || (fVar27 <= fVar29)) goto LAB_0;
-  if (fVar30 < fVar31) {
-    if ((((fVar33 < fVar34) && (fVar30 < fVar28)) && (fVar32 < fVar31)) &&
-       ((fVar33 < fVar27 && (fVar29 < fVar34)))) {
-      bVar6 = true;
-      local_138 = true;
-      bVar8 = SubTreeContext::IsDirtyCollectionEnabled(this_00);
-      if ((bVar8) &&
-         (bVar8 = TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::IsEmpty
-                            ((TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded> *)
-                             local_108), !bVar8)) {
-        this_06 = *(CTreeDirty **)(this_00 + 0x140);
-        if (this_06[0x914] == (CTreeDirty)0x0) {
-          bVar8 = TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::IsInfinite
-                            ((TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded> *)
-                             local_108);
-          if (bVar8) {
-            CTreeDirty::SetFullDirty(this_06);
-            goto LAB_1;
-          }
-          lVar10 = CTreeDirty::_Add(this_06,param_1,true,
-                                    (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
-                                     *)local_108);
-          if (-1 < lVar10) goto LAB_1;
-          wil::details::in1diag3::Return_Hr
-                    (unaff_retaddr,0xf6,"onecoreuap\\windows\\dwm\\dwmcore\\engine\\treedirty.cpp",
-                     lVar10);
-        }
-        else {
-LAB_1:
-          lVar10 = 0;
-        }
-        if (lVar10 < 0) {
-          wil::details::in1diag3::Return_Hr
-                    (unaff_retaddr,0x57c,
-                     "onecoreuap\\windows\\dwm\\dwmcore\\engine\\precomputecontext.cpp",lVar10);
-          return lVar10;
+              *)&local_100);
+  pTVar15 = (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> *)
+            &local_100;
+  CBaseClipStack::Clip
+            ((CBaseClipStack *)(this_00 + 0x128),
+             (TMilRect_<float,struct_D2D_RECT_F,struct_D3D_RECT_F,struct_D2D_POINTANDSIZE_F,struct_RectUniqueness::NotNeeded>
+              *)&local_110);
+  if ((fVar4 <= fVar2) || (fVar5 <= fVar3)) {
+LAB_0:
+    if ((local_110 < fStack_108) && (fStack_10c < fStack_104)) {
+      if ((bVar16 == false) && (!param_2)) {
+        return 0;
+      }
+      this_01 = *(CVisualTree **)(this_00 + 0x148);
+      cVar6 = (**(code **)(*(longlong *)this_01 + 0xb8))(this_01);
+      if (cVar6 != '\0') {
+        pTVar15 = (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
+                   *)0x2;
+        bVar7 = CVisualTree::_IsInTree(this_01,param_1,2);
+        if (bVar7) {
+          bVar7 = CBackdropVisualImage::RequireClippedBounds
+                            ((TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
+                              *)&local_100);
+          pfVar12 = (float *)&local_100;
+          if (bVar7) {
+            pfVar12 = &local_110;
+          }
+          fVar4 = *pfVar12;
+          fVar5 = pfVar12[1];
+          local_100 = *(undefined8 *)pfVar12;
+          uStack_f8 = *(undefined8 *)(pfVar12 + 2);
+          if (DAT_1 != 0) {
+            DwmDbg::DbgString::DbgString
+                      ((DbgString *)&local_120,"%.2f, %.2f, %.2f, %.2f (%.2f x %.2f)",(double)fVar2,
+                       (double)fVar3);
+            DwmDbg::DbgString::DbgString
+                      ((DbgString *)&local_130,"%.2f, %.2f, %.2f, %.2f (%.2f x %.2f)",(double)fVar4,
+                       (double)fVar5);
+            lpMem = local_130;
+            DwmDbg::DbgString::DbgString
+                      (local_118,
+                       "fNodeHasDirtyBackdrop=%d, boundsDirty=%d, bviBounds=[%s], dirtyRegionBehindBackdrop=[%s]"
+                       ,(ulonglong)bVar16,param_2);
+            local_130 = (LPVOID)0x0;
+            local_e8 = local_d0;
+            local_e0 = local_d0;
+            local_d8 = local_b0;
+            local_128 = this_01;
+            detail::
+            vector_facade<CVisualTreePath::VisualTreePathUnit,detail::buffer_impl<CVisualTreePath::VisualTreePathUnit,2,1,detail::liberal_expansion_policy>_>
+            ::push_back((vector_facade<CVisualTreePath::VisualTreePathUnit,detail::buffer_impl<CVisualTreePath::VisualTreePathUnit,2,1,detail::liberal_expansion_policy>_>
+                         *)&local_e8,(VisualTreePathUnit *)&local_130);
+            uVar10 = DwmDbg::DbgString::DbgString
+                               ((DbgString *)&local_110,"PreCompute-BackdropInputBVIUpdate");
+            DwmDbg::Backdrops::LogTreeWalkEtwEvent(uVar10,param_1,this_01,&local_e8);
+            detail::
+            vector_facade<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,detail::buffer_impl<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,10,1,detail::liberal_expansion_policy>_>
+            ::
+            ~vector_facade<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,detail::buffer_impl<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,10,1,detail::liberal_expansion_policy>_>
+                      ((vector_facade<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,detail::buffer_impl<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,10,1,detail::liberal_expansion_policy>_>
+                        *)&local_e8);
+            if (lpMem != (LPVOID)0x0) {
+              pvVar11 = GetProcessHeap();
+              HeapFree(pvVar11,0,lpMem);
+            }
+            if (local_120 != (LPVOID)0x0) {
+              pvVar11 = GetProcessHeap();
+              HeapFree(pvVar11,0,local_120);
+            }
+          }
+          in_R9 = (ulonglong)bVar16;
+          pTVar15 = (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
+                     *)&local_100;
+          lVar9 = UpdateBVIForVisual(this,param_1,pTVar15,bVar16,local_138);
+          if (lVar9 < 0) {
+            wil::details::in1diag3::Return_Hr
+                      (unaff_retaddr,0x5b4,
+                       "onecoreuap\\windows\\dwm\\dwmcore\\engine\\precomputecontext.cpp",lVar9);
+            return lVar9;
+          }
+          if (local_138[0] == false) {
+            return 0;
+          }
+          goto LAB_2;
         }
       }
+      CVisual::MarkAllBackdropVisualImagesDirty(param_1,this_01);
+      goto LAB_2;
     }
-LAB_0:
-    if ((fVar30 < fVar31) && (fVar33 < fVar34)) {
-      if ((!bVar6) && (!param_2)) {
-        return 0;
-      }
-      p_Var23 = *(_LIST_ENTRY **)(this_00 + 0x148);
-      cVar7 = (*(code *)p_Var23->Flink[0xb].Blink)();
-      if (cVar7 != '\0') {
-        fVar32 = 1.0;
-        p_Var19 = (_LIST_ENTRY *)param_1;
-        p_Var15 = (_LIST_ENTRY *)param_1;
-        while (((p_Var19 != (_LIST_ENTRY *)0x0 && (((ulonglong)p_Var19[6].Blink & 0x400000) != 0))
-               && (((ulonglong)p_Var19[6].Blink & 0x10000) == 0))) {
-          p_Var11 = p_Var19[0xe].Blink;
-          fVar29 = 1.0;
-          if (((ulonglong)p_Var11->Flink & 0x800000) != 0) {
-            uVar9 = *(uint *)((longlong)&p_Var11->Flink + 4);
-            pp_Var22 = &p_Var11->Blink;
-            uVar17 = 0;
-            if (uVar9 != 0) {
-              do {
-                if (*(char *)pp_Var22 == '\t') break;
-                uVar17 = uVar17 + 1;
-                pp_Var22 = (_LIST_ENTRY **)((longlong)pp_Var22 + 1);
-              } while (uVar17 < uVar9);
-            }
-            if (uVar17 < uVar9) {
-              puVar12 = (undefined8 *)
-                        ((longlong)p_Var11 +
-                        (ulonglong)uVar9 + 0xf +
-                        ((ulonglong)uVar17 * 8 - (ulonglong)((uint)((ulonglong)uVar9 + 0xf) & 7)));
-            }
-            else {
-              puVar12 = (undefined8 *)0x0;
-            }
-            this_01 = (CMatrixTransform3D *)*puVar12;
-            pcVar3 = *(code **)(*(longlong *)this_01 + 0x40);
-            if (pcVar3 != CEffectGroupGeneratedT<CEffectGroup,CEffect>::IsOfType) {
-              if (pcVar3 == CMatrixTransform3D::IsOfType) {
-                cVar7 = CMatrixTransform3D::IsOfType(this_01,0x39);
-              }
-              else {
-                cVar7 = (*pcVar3)();
-              }
-              if (cVar7 == '\0') goto LAB_2;
-            }
-            fVar29 = *(float *)(this_01 + 0x50);
-          }
-LAB_2:
-          if (fVar29 <= 0.0) {
-            fVar29 = 0.0;
-          }
-          fVar28 = 1.0;
-          if (fVar29 <= 1.0) {
-            fVar28 = fVar29;
-          }
-          if (p_Var19 == p_Var23[4].Blink) {
-            fVar29 = 1.0;
-          }
-          else {
-            p_Var11 = p_Var19[0xe].Flink;
-            if (((ulonglong)p_Var11->Flink & 0x800000000000000) == 0) {
-              fVar27 = 1.0;
-            }
-            else {
-              puVar21 = (uint *)((longlong)&p_Var11->Blink + 4);
-              uVar9 = *(uint *)((longlong)&p_Var11->Blink + 4);
-              while ((uVar9 & 0x7f000000) != 0x5000000) {
-                puVar21 = (uint *)((longlong)puVar21 + (ulonglong)(uVar9 & 0xffffff) + 4);
-                uVar9 = *puVar21;
-              }
-              fVar27 = (float)puVar21[1];
-            }
-            if (fVar27 <= 0.0) {
-              fVar27 = 0.0;
-            }
-            fVar29 = 1.0;
-            if (fVar27 <= 1.0) {
-              fVar29 = fVar27;
-            }
-          }
-          fVar32 = fVar32 * fVar29 * fVar28;
-          if (ABS(fVar32) < 1.1920929e-06) break;
-          if (p_Var19 == p_Var23[4].Blink) {
-            bVar6 = CBackdropVisualImage::RequireClippedBounds
-                              ((TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
-                                *)&local_f8);
-            pfVar18 = (float *)&local_f8;
-            if (bVar6) {
-              pfVar18 = local_108;
-            }
-            fVar32 = *pfVar18;
-            fVar29 = pfVar18[1];
-            local_f8 = *(undefined8 *)pfVar18;
-            fVar28 = pfVar18[2];
-            fVar27 = pfVar18[3];
-            uStack_f0 = *(undefined8 *)(pfVar18 + 2);
-            if (DAT_3 != 0) {
-              DwmDbg::DbgString::DbgString((DbgString *)&local_128,(D2D_RECT_F *)&local_118);
-              DwmDbg::DbgString::DbgString((DbgString *)&local_130,(D2D_RECT_F *)&local_f8);
-              DwmDbg::DbgString::DbgString
-                        (local_120,
-                         "fNodeHasDirtyBackdrop=%d, boundsDirty=%d, bviBounds=[%s], dirtyRegionBehindBackdrop=[%s]"
-                         ,(ulonglong)local_138,(ulonglong)param_2);
-              uVar13 = CVisualTreePath::CVisualTreePath
-                                 ((CVisualTreePath *)&local_e0,(CVisualTree *)p_Var23);
-              uVar14 = DwmDbg::DbgString::DbgString
-                                 ((DbgString *)local_108,"PreCompute-BackdropInputBVIUpdate");
-              DwmDbg::Backdrops::LogTreeWalkEtwEvent(uVar14,param_1,p_Var23,uVar13);
-              detail::
-              vector_facade<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,detail::buffer_impl<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,10,1,detail::liberal_expansion_policy>_>
-              ::
-              ~vector_facade<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,detail::buffer_impl<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,10,1,detail::liberal_expansion_policy>_>
-                        ((vector_facade<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,detail::buffer_impl<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,10,1,detail::liberal_expansion_policy>_>
-                          *)&local_e0);
-              if (local_130 != (CBackdropVisualImage *)0x0) {
-                _Free_DefaultHeap__SAXPEAX_Z(local_130);
-              }
-              if (local_128 != (void *)0x0) {
-                _Free_DefaultHeap__SAXPEAX_Z(local_128);
-              }
-            }
-            cVar7 = '\0';
-            if ((fVar32 < fVar28) && (fVar29 < fVar27)) {
-              uStack_100 = *(undefined8 *)(*(longlong *)this + 0x148);
-              local_e0 = local_c8;
-              local_d8 = local_c8;
-              local_108[0] = 0.0;
-              local_108[1] = 0.0;
-              local_d0 = local_a8;
-              detail::
-              vector_facade<CVisualTreePath::VisualTreePathUnit,detail::buffer_impl<CVisualTreePath::VisualTreePathUnit,2,1,detail::liberal_expansion_policy>_>
-              ::push_back((vector_facade<CVisualTreePath::VisualTreePathUnit,detail::buffer_impl<CVisualTreePath::VisualTreePathUnit,2,1,detail::liberal_expansion_policy>_>
-                           *)&local_e0,(VisualTreePathUnit *)local_108);
-              this_02 = *(CVisual **)(local_e0[1] + 0x48);
-              pCVar4 = (CVisualTree *)local_d8[-1];
-              this_03 = CVisual::EnsureTreeData(param_1,pCVar4);
-              for (plVar25 = *(longlong **)(this_03 + 0x90);
-                  plVar25 != *(longlong **)(this_03 + 0x98); plVar25 = plVar25 + 1) {
-                plVar5 = *(longlong **)(*plVar25 + 0x820);
-                lVar24 = *(longlong *)(*plVar25 + 0x818);
-                if ((longlong)plVar5 - lVar24 == (longlong)local_d8 - (longlong)local_e0) {
-                  lVar24 = lVar24 - (longlong)local_e0;
-                  plVar26 = local_e0;
-                  while( true ) {
-                    plVar1 = (longlong *)((longlong)plVar26 + lVar24);
-                    if (plVar1 == plVar5) {
-                      *(undefined8 *)(*plVar25 + 0x8b8) =
-                           *(undefined8 *)
-                            (*(longlong *)(*(longlong *)(this_03 + 0xf8) + 0x18) + 0x378);
-                      this_05 = (CBackdropVisualImage *)*plVar25;
-                      if (this_05 != (CBackdropVisualImage *)0x0) {
-                        CMILRefCountImpl::AddReference((CMILRefCountImpl *)(this_05 + 8));
-                        goto LAB_4;
-                      }
-                      pCVar16 = CVisual::GetVisualTreeNoRef(this_02);
-                      local_130 = (CBackdropVisualImage *)0x0;
-                      goto LAB_5;
-                    }
-                    if ((*plVar1 != *plVar26) ||
-                       (*(longlong *)(lVar24 + 8 + (longlong)plVar26) != plVar26[1])) break;
-                    plVar26 = plVar26 + 2;
-                  }
-                }
-              }
-              local_130 = (CBackdropVisualImage *)0x0;
-              pCVar16 = CVisual::GetVisualTreeNoRef(this_02);
-LAB_5:
-              CBackdropVisualImage::Create
-                        (g_pComposition,param_1,(CVisualTreePath *)&local_e0,pCVar16 == pCVar4,
-                         &local_130);
-              this_05 = local_130;
-              CTreeData::SetBackdropVisualImage(this_03,(CVisualTreePath *)&local_e0,local_130);
-              bVar6 = DwmDbg::Backdrops::IsEtwEnabled();
-              if (bVar6) {
-                puVar12 = (undefined8 *)
-                          CVisualTreePath::GetDebugString((CVisualTreePath *)&local_e0);
-                uVar13 = DwmDbg::DbgString::DbgString
-                                   ((DbgString *)local_108,"pBVI=0x%p, bviPath=[%s]",this_05,
-                                    *puVar12);
-                uVar14 = DwmDbg::DbgString::DbgString(local_120,"Visual-CreatedNewBVI");
-                DwmDbg::Backdrops::LogBrushEtwEvent(uVar14,param_1,uVar13);
-                if (local_128 != (void *)0x0) {
-                  _Free_DefaultHeap__SAXPEAX_Z(local_128);
-                }
-              }
-LAB_4:
-              lVar10 = CBackdropVisualImage::ValidateRootAndSourceRectangle
-                                 (this_05,this_02,
-                                  (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
-                                   *)&local_f8,local_138,local_136);
-              if (this_05 != (CBackdropVisualImage *)0x0) {
-                CMILCOMBaseWeakRefSource<CResourceDeleter>::InternalRelease
-                          ((CMILCOMBaseWeakRefSource<CResourceDeleter> *)this_05);
-              }
-              if (lVar10 < 0) {
-                wil::details::in1diag3::Return_Hr
-                          (unaff_retaddr,0x724,
-                           "onecoreuap\\windows\\dwm\\dwmcore\\engine\\precomputecontext.cpp",lVar10
-                          );
-                detail::
-                vector_facade<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,detail::buffer_impl<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,10,1,detail::liberal_expansion_policy>_>
-                ::
-                ~vector_facade<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,detail::buffer_impl<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,10,1,detail::liberal_expansion_policy>_>
-                          ((vector_facade<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,detail::buffer_impl<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,10,1,detail::liberal_expansion_policy>_>
-                            *)&local_e0);
-                wil::details::in1diag3::Return_Hr
-                          (unaff_retaddr,0x5a4,
-                           "onecoreuap\\windows\\dwm\\dwmcore\\engine\\precomputecontext.cpp",lVar10
-                          );
-                return lVar10;
-              }
-              detail::
-              vector_facade<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,detail::buffer_impl<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,10,1,detail::liberal_expansion_policy>_>
-              ::
-              ~vector_facade<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,detail::buffer_impl<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,10,1,detail::liberal_expansion_policy>_>
-                        ((vector_facade<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,detail::buffer_impl<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,10,1,detail::liberal_expansion_policy>_>
-                          *)&local_e0);
-              cVar7 = local_136[0];
-            }
-            if (cVar7 == '\0') {
-              return 0;
-            }
-            goto LAB_6;
-          }
-          if (((p_Var15 != (_LIST_ENTRY *)0x0) &&
-              (p_Var15 = p_Var15[5].Blink, p_Var15 != (_LIST_ENTRY *)0x0)) &&
-             ((p_Var19 == p_Var15 || (p_Var15 = p_Var15[5].Blink, p_Var19 == p_Var15)))) break;
-          p_Var19 = p_Var19[5].Blink;
-        }
-      }
-      cVar7 = (*(code *)p_Var23->Flink[0xb].Blink)(p_Var23);
-      if (cVar7 == '\0') {
-        p_Var15 = CVisual::GetTreeDataListHead(param_1);
-        if (p_Var15 != (_LIST_ENTRY *)0x0) {
-          for (p_Var19 = p_Var15->Flink; p_Var19 != p_Var15; p_Var19 = p_Var19->Flink) {
-            p_Var11 = p_Var19 + -0x16;
-            if (p_Var19[2].Flink == p_Var23) goto LAB_7;
-          }
-        }
-      }
-      else {
-        p_Var11 = (_LIST_ENTRY *)(param_1 + 0x148);
-LAB_7:
-        if (p_Var11 != (_LIST_ENTRY *)0x0) {
-          p_Var15 = p_Var11[9].Blink;
-          for (p_Var23 = p_Var11[9].Flink; p_Var23 != p_Var15;
-              p_Var23 = (_LIST_ENTRY *)&p_Var23->Blink) {
-            CCachedVisualImage::MarkAllTargetsDirty((CCachedVisualImage *)p_Var23->Flink);
-          }
-        }
-      }
-      goto LAB_6;
-    }
-  }
-  p_Var23 = *(_LIST_ENTRY **)(this_00 + 0x148);
-  cVar7 = (*(code *)p_Var23->Flink[0xb].Blink)(p_Var23);
-  if (cVar7 == '\0') {
-    p_Var15 = CVisual::GetTreeDataListHead(param_1);
-    if (p_Var15 != (_LIST_ENTRY *)0x0) {
-      for (p_Var19 = p_Var15->Flink; p_Var19 != p_Var15; p_Var19 = p_Var19->Flink) {
-        p_Var11 = p_Var19 + -0x16;
-        if (p_Var19[2].Flink == p_Var23) goto LAB_8;
+  }
+  else if (local_110 < fStack_108) {
+    if (((((fStack_10c < fStack_104) && (local_110 < fVar4)) && (fVar2 < fStack_108)) &&
+        ((fStack_10c < fVar5 && (fVar3 < fStack_104)))) &&
+       ((bVar16 = true, *(int *)(this_00 + 0x154) == 0 &&
+        (*(char *)(*(longlong *)(this_00 + 0x140) + 0x914) == '\0')))) {
+      pTVar15 = (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
+                 *)&local_110;
+      lVar9 = SubTreeContext::AddWorldBoundsToDirtyRegion(this_00,param_1,pTVar15);
+      if (lVar9 < 0) {
+        wil::details::in1diag3::Return_Hr
+                  (unaff_retaddr,0x58c,
+                   "onecoreuap\\windows\\dwm\\dwmcore\\engine\\precomputecontext.cpp",lVar9);
+        return lVar9;
       }
     }
-  }
-  else {
-    p_Var11 = (_LIST_ENTRY *)(param_1 + 0x148);
-LAB_8:
-    if (p_Var11 != (_LIST_ENTRY *)0x0) {
-      p_Var23 = p_Var11[9].Flink;
-      lVar24 = (longlong)p_Var11[9].Blink - (longlong)p_Var23 >> 3;
-      if (lVar24 != 0) {
-        detail::destruct_range<wil::com_ptr_t<CBackdropVisualImage,wil::err_returncode_policy>_>
-                  ((com_ptr_t<CBackdropVisualImage,wil::err_returncode_policy> *)p_Var23,
-                   (com_ptr_t<CBackdropVisualImage,wil::err_returncode_policy> *)
-                   (&p_Var23->Flink + lVar24));
-        p_Var11[9].Blink = (_LIST_ENTRY *)((longlong)p_Var11[9].Blink + lVar24 * -8);
-      }
-    }
-  }
-LAB_6:
-  lVar24 = *(longlong *)this;
-  lVar2 = *(longlong *)(this + 8);
-  do {
-    if (lVar24 == lVar2) {
-      return 0;
-    }
-    p_Var23 = *(_LIST_ENTRY **)(lVar24 + 0x148);
-    cVar7 = (*(code *)p_Var23->Flink[0xb].Blink)(p_Var23);
-    if (cVar7 == '\0') {
-      p_Var15 = CVisual::GetTreeDataListHead(param_1);
-      if (p_Var15 != (_LIST_ENTRY *)0x0) {
-        for (p_Var19 = p_Var15->Flink; p_Var19 != p_Var15; p_Var19 = p_Var19->Flink) {
-          p_Var11 = p_Var19 + -0x16;
-          if (p_Var19[2].Flink == p_Var23) goto LAB_9;
-        }
-      }
-    }
-    else {
-      p_Var11 = (_LIST_ENTRY *)(param_1 + 0x148);
-LAB_9:
-      if (p_Var11 != (_LIST_ENTRY *)0x0) {
-        p_Var15 = p_Var11[1].Blink;
-        for (p_Var23 = p_Var11[1].Flink; p_Var23 != p_Var15; p_Var23 = p_Var23 + 1) {
-          if ((*(int *)&p_Var23->Flink == 0) && (*(int *)((longlong)&p_Var23->Flink + 4) == 0)) {
-            CDrawListCache::Invalidate((CDrawListCache *)p_Var23->Blink);
-          }
-        }
-      }
-    }
-    lVar24 = lVar24 + 0x160;
-  } while( true );
+    goto LAB_0;
+  }
+  CVisual::ResetAllBackdropVisualImagesForVisualTree(param_1,*(CVisualTree **)(this_00 + 0x148));
+LAB_2:
+  lVar1 = *(longlong *)(this + 8);
+  for (lVar14 = *(longlong *)this; lVar14 != lVar1; lVar14 = lVar14 + 0x160) {
+    CVisual::InvalidateDrawListCaches
+              (param_1,*(CVisualTree **)(lVar14 + 0x148),(uint)pTVar15,(uint)in_R9);
+  }
+  return 0;
 }
 

```


## CNineGridDrawListBrush::EnumerateBrushes

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.14|
|i_ratio|0.33|
|m_ratio|0.98|
|b_ratio|0.93|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|EnumerateBrushes|EnumerateBrushes|
|fullname|CNineGridDrawListBrush::EnumerateBrushes|CNineGridDrawListBrush::EnumerateBrushes|
|refcount|11|11|
|`length`|4722|4576|
|`called`|<details><summary>Expand for full list:<br><lambda_6f49ef1c5e266dfff6ad3ca7d4dec8df>::<lambda_invoker_cdecl><br><lambda_6f49ef1c5e266dfff6ad3ca7d4dec8df>::operator()<br>CMILMatrix::Is2DAffineOrNaN<br>CMILMatrix::Multiply<br>CMILRefCountImpl::AddReference<br>CPrimitiveGroupDrawListBrush::IsOfType<br>CSurfaceDrawListBrush::IsBoundless<br>CSurfaceDrawListBrush::IsOfType<br>CSurfaceDrawListBrush::SetSnapToPixelsReference<br>CSurfaceDrawListBrush::`scalar_deleting_destructor'<br>CThreadLocalObjectCache<CSurfaceDrawListBrush,CSurfaceDrawListBrush>::Alloc</summary>CoordMap::ComputeTexPositions<detail::vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>,detail::vector_facade<float,class_detail::buffer_impl<float,6,1,class_detail::liberal_expansion_policy>_>_><br>CoordMap::GetAllPositions<detail::vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>_><br>D2DMatrixHelper::ComputeRectangleTransform<br>MILMatrix3x2::SetProduct<br>Matrix3x3::Get2DScaleDimensionsWithPerspective<br>MilInstrumentationCheckHR_MaybeFailFast<br>__security_check_cookie<br>_guard_dispatch_icall$thunk$10345483385596137414<br>detail::vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>::~vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_><br>sqrtf</details>|<details><summary>Expand for full list:<br><lambda_6f49ef1c5e266dfff6ad3ca7d4dec8df>::<lambda_invoker_cdecl><br><lambda_6f49ef1c5e266dfff6ad3ca7d4dec8df>::operator()<br>CMILMatrix::Is2DAffineOrNaN<br>CMILMatrix::Multiply<br>CPrimitiveGroupDrawListBrush::IsOfType<br>CSurfaceDrawListBrush::CSurfaceDrawListBrush<br>CSurfaceDrawListBrush::IsBoundless<br>CSurfaceDrawListBrush::IsOfType<br>CSurfaceDrawListBrush::SetSnapToPixelsReference<br>CSurfaceDrawListBrush::`scalar_deleting_destructor'<br>CThreadLocalObjectCache<CSurfaceDrawListBrush,CSurfaceDrawListBrush>::Alloc</summary>CoordMap::ComputeTexPositions<detail::vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>,detail::vector_facade<float,class_detail::buffer_impl<float,6,1,class_detail::liberal_expansion_policy>_>_><br>CoordMap::GetAllPositions<detail::vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>_><br>D2DMatrixHelper::ComputeRectangleTransform<br>MILMatrix3x2::SetProduct<br>Matrix3x3::Get2DScaleDimensionsWithPerspective<br>MilInstrumentationCheckHR_MaybeFailFast<br>__security_check_cookie<br>_guard_dispatch_icall$thunk$10345483385596137414<br>detail::vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>::~vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_><br>sqrtf</details>|
|calling|CBrushDrawListGenerator::GenerateDrawListWorker|CBrushDrawListGenerator::GenerateDrawListWorker|
|paramcount|4|4|
|`address`|18011a780|1800b7180|
|sig|long __thiscall EnumerateBrushes(CNineGridDrawListBrush * this, CDrawingContext * param_1, _func_long_CDrawListBrush_ptr_void_ptr * param_2, void * param_3)|long __thiscall EnumerateBrushes(CNineGridDrawListBrush * this, CDrawingContext * param_1, _func_long_CDrawListBrush_ptr_void_ptr * param_2, void * param_3)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### CNineGridDrawListBrush::EnumerateBrushes Called Diff


```diff
--- CNineGridDrawListBrush::EnumerateBrushes called
+++ CNineGridDrawListBrush::EnumerateBrushes called
@@ -5 +4,0 @@
-CMILRefCountImpl::AddReference
@@ -6,0 +6 @@
+CSurfaceDrawListBrush::CSurfaceDrawListBrush
```


### CNineGridDrawListBrush::EnumerateBrushes Diff


```diff
--- CNineGridDrawListBrush::EnumerateBrushes
+++ CNineGridDrawListBrush::EnumerateBrushes
@@ -1,762 +1,743 @@
 
+/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
 /* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
    guard_dispatch_icall */
-/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
 /* public: virtual long __cdecl CNineGridDrawListBrush::EnumerateBrushes(class CDrawingContext const
    * __ptr64,long (__cdecl*)(class CDrawListBrush const * __ptr64,void * __ptr64),void *
    __ptr64)const __ptr64 */
 
 long __thiscall
 CNineGridDrawListBrush::EnumerateBrushes
           (CNineGridDrawListBrush *this,CDrawingContext *param_1,
           _func_long_CDrawListBrush_ptr_void_ptr *param_2,void *param_3)
 
 {
   undefined8 *puVar1;
   undefined4 *puVar2;
   float fVar3;
   float fVar4;
   float fVar5;
   float fVar6;
   float fVar7;
   float fVar8;
-  CSurfaceDrawListBrush CVar9;
-  undefined2 uVar10;
-  code *pcVar11;
+  code *pcVar9;
   CSurfaceDrawListBrush *this_00;
-  CMILRefCountImpl *this_01;
-  longlong *plVar12;
-  undefined8 uVar13;
+  undefined8 uVar10;
+  undefined3 uVar11;
+  bool bVar12;
+  char cVar13;
   bool bVar14;
-  char cVar15;
-  bool bVar16;
-  uint uVar17;
-  int iVar18;
-  uint uVar19;
-  long lVar20;
-  CSurfaceDrawListBrush *this_02;
-  longlong lVar21;
-  undefined1 *puVar22;
-  CMILMatrix *this_03;
-  uint uVar23;
-  longlong lVar24;
-  CMILMatrix *pCVar25;
-  ulonglong uVar26;
-  undefined1 *puVar27;
-  uint uVar28;
+  uint uVar15;
+  uint uVar16;
+  long lVar17;
+  CSurfaceDrawListBrush *pCVar18;
+  CSurfaceDrawListBrush *this_01;
+  longlong lVar19;
+  Matrix3x3 *this_02;
+  undefined1 *puVar20;
+  uint uVar21;
+  longlong lVar22;
+  CMILMatrix *pCVar23;
+  ulonglong uVar24;
+  CSurfaceDrawListBrush *pCVar25;
+  undefined1 *puVar26;
+  uint uVar27;
+  undefined1 *puVar28;
   undefined1 *puVar29;
-  undefined1 *puVar30;
-  ulonglong uVar31;
-  undefined1 *puVar32;
-  undefined4 uVar33;
+  ulonglong uVar30;
+  undefined1 *puVar31;
+  undefined4 uVar32;
+  float fVar33;
   float fVar34;
-  float fVar35;
+  undefined4 uVar35;
   undefined4 uVar36;
   undefined4 uVar37;
   undefined4 uVar38;
-  undefined4 uVar39;
-  float fVar40;
-  float fVar41;
+  float fVar39;
+  undefined4 uVar40;
+  undefined4 uVar41;
   undefined4 uVar42;
-  undefined4 uVar43;
-  undefined4 uVar44;
+  float fVar43;
+  float fVar44;
   float fVar45;
   float fVar46;
   float fVar47;
   float fVar48;
-  float fVar49;
-  undefined1 auStackY_368 [32];
-  float local_324;
-  float local_320;
-  float local_31c;
+  undefined1 auStackY_378 [32];
+  float local_328 [4];
   float local_318;
+  float local_314;
+  float local_310;
   undefined8 local_308;
   undefined8 uStack_300;
   float local_2f8;
   float local_2f4;
   float local_2f0;
   float local_2ec;
   undefined8 local_2e8;
   undefined8 uStack_2e0;
   uint local_2d8;
   uint local_2d4;
   float local_2d0;
   float fStack_2cc;
   undefined8 uStack_2c8;
   float local_2c0;
   float fStack_2bc;
   undefined8 local_2b8;
   undefined8 uStack_2b0;
   undefined8 local_2a8;
   undefined4 local_2a0;
   undefined4 uStack_29c;
   undefined4 uStack_298;
   undefined8 uStack_294;
   void *local_288;
   float local_280;
   float local_27c;
   undefined8 local_278;
   undefined8 uStack_270;
   undefined8 local_268;
   undefined8 uStack_260;
   undefined8 local_258;
   undefined8 uStack_250;
   undefined8 local_248;
   undefined8 uStack_240;
   undefined4 local_238;
   _func_long_CDrawListBrush_ptr_void_ptr *local_220;
   float local_218;
   float fStack_214;
   undefined4 uStack_210;
   undefined4 uStack_20c;
   undefined4 local_208;
   undefined4 uStack_204;
   undefined4 uStack_200;
   undefined4 uStack_1fc;
   undefined8 local_1f8;
   undefined8 uStack_1f0;
   undefined4 local_1e8;
   undefined4 uStack_1e4;
   undefined4 uStack_1e0;
   undefined4 uStack_1dc;
   undefined4 local_1d8;
   float local_1d0 [6];
   undefined1 *local_1b8;
   undefined1 *local_1b0;
   undefined1 **local_1a8;
   undefined1 local_1a0 [24];
   undefined1 *local_188;
   undefined1 *local_180;
   undefined1 **local_178;
   undefined1 local_170 [24];
   undefined1 *local_158;
   undefined1 *local_150;
   undefined1 **local_148;
   undefined1 local_140 [24];
   undefined1 *local_128;
   undefined1 *local_120;
   ulonglong *local_118;
   undefined1 local_110 [24];
   ulonglong local_f8 [23];
   
-  local_f8[0] = __security_cookie ^ (ulonglong)auStackY_368;
-  this_02 = (CSurfaceDrawListBrush *)0x0;
+  this_02 = (Matrix3x3 *)&local_278;
+  local_f8[0] = __security_cookie ^ (ulonglong)auStackY_378;
+  pCVar25 = (CSurfaceDrawListBrush *)0x0;
   local_288 = param_3;
   local_220 = param_2;
   if (((*(longlong *)(this + 0x78) == *(longlong *)(this + 0x70)) &&
       (*(longlong *)(this + 0x130) == *(longlong *)(this + 0x128))) &&
      (*(longlong *)(this + 0x1e8) == *(longlong *)(this + 0x1e0))) {
-    lVar21 = *(longlong *)(this + 0x48);
-    uVar13 = *(undefined8 *)(this + 0x10);
-    *(undefined8 *)(lVar21 + 8) = *(undefined8 *)(this + 8);
-    *(undefined8 *)(lVar21 + 0x10) = uVar13;
-    *(undefined8 *)(lVar21 + 0x18) = *(undefined8 *)(this + 0x18);
-    lVar20 = (*param_2)(*(CDrawListBrush **)(this + 0x48),param_3);
-    if (-1 < lVar20) {
-      return lVar20;
+    lVar19 = *(longlong *)(this + 0x48);
+    uVar10 = *(undefined8 *)(this + 0x10);
+    *(undefined8 *)(lVar19 + 8) = *(undefined8 *)(this + 8);
+    *(undefined8 *)(lVar19 + 0x10) = uVar10;
+    *(undefined8 *)(lVar19 + 0x18) = *(undefined8 *)(this + 0x18);
+    lVar17 = (*param_2)(*(CDrawListBrush **)(this + 0x48),param_3);
+    if (-1 < lVar17) {
+      return lVar17;
     }
-    uVar17 = 0x90;
-LAB_0:
-    MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar20,uVar17,(void *)0x0);
-    return lVar20;
-  }
-  this_03 = *(CMILMatrix **)(this + 0x48);
-  fVar49 = 0.0;
-  fVar48 = 0.0;
-  local_2ec = 0.0;
-  local_320 = 0.0;
-  local_2f0 = 0.0;
-  local_324 = 0.0;
-  bVar14 = false;
-  pcVar11 = *(code **)(*(longlong *)this_03 + 8);
-  if (pcVar11 == CSurfaceDrawListBrush::IsOfType) {
-    cVar15 = CSurfaceDrawListBrush::IsOfType((CSurfaceDrawListBrush *)this_03,2);
-  }
-  else if (pcVar11 == CPrimitiveGroupDrawListBrush::IsOfType) {
-    cVar15 = CPrimitiveGroupDrawListBrush::IsOfType((CPrimitiveGroupDrawListBrush *)this_03,2);
+    uVar15 = 0x90;
   }
   else {
-    cVar15 = (*pcVar11)();
-  }
-  if (cVar15 != '\0') {
+    pCVar18 = *(CSurfaceDrawListBrush **)(this + 0x48);
+    fVar48 = 0.0;
+    bVar12 = false;
+    fVar47 = 0.0;
+    local_2ec = 0.0;
+    local_314 = 0.0;
+    local_2f0 = 0.0;
+    local_318 = 0.0;
+    pcVar9 = *(code **)(*(longlong *)pCVar18 + 8);
+    if (pcVar9 == CSurfaceDrawListBrush::IsOfType) {
+      cVar13 = CSurfaceDrawListBrush::IsOfType(pCVar18,2);
+    }
+    else if (pcVar9 == CPrimitiveGroupDrawListBrush::IsOfType) {
+      cVar13 = CPrimitiveGroupDrawListBrush::IsOfType((CPrimitiveGroupDrawListBrush *)pCVar18,2);
+    }
+    else {
+      cVar13 = (*pcVar9)();
+    }
+    this_01 = pCVar25;
+    if (cVar13 == '\0') {
+LAB_0:
+      local_1b8 = local_1a0;
+      local_1b0 = local_1a0;
+      local_1a8 = &local_188;
+      local_188 = local_170;
+      local_180 = local_170;
+      local_178 = &local_158;
+      CoordMap::
+      GetAllPositions<detail::vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>_>
+                ((CoordMap *)pCVar18,
+                 (vector_facade<CoordMap::RampEntry,detail::buffer_impl<CoordMap::RampEntry,10,1,detail::liberal_expansion_policy>_>
+                  *)(this + 0x70),
+                 (vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>
+                  *)&local_1b8,*(float *)(this + 0x20),*(float *)(this + 0x28),1.1920929e-07);
+      CoordMap::
+      GetAllPositions<detail::vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>_>
+                ((CoordMap *)pCVar18,
+                 (vector_facade<CoordMap::RampEntry,detail::buffer_impl<CoordMap::RampEntry,10,1,detail::liberal_expansion_policy>_>
+                  *)(this + 0x128),
+                 (vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>
+                  *)&local_188,*(float *)(this + 0x24),*(float *)(this + 0x2c),1.1920929e-07);
+      local_128 = local_110;
+      local_120 = local_110;
+      local_118 = local_f8;
+      local_158 = local_140;
+      local_150 = local_140;
+      local_148 = &local_128;
+      lVar19 = (longlong)local_180 - (longlong)local_188 >> 2;
+      if (((lVar19 != -1) && ((local_188 != (undefined1 *)0x0 || (lVar19 == 0)))) &&
+         ((uStack_2e0 = local_188, local_2e8 = lVar19, local_188 != (undefined1 *)0x0 ||
+          (lVar19 == 0)))) {
+        lVar22 = (longlong)local_1b0 - (longlong)local_1b8 >> 2;
+        if (((lVar22 != -1) && ((local_1b8 != (undefined1 *)0x0 || (lVar22 == 0)))) &&
+           ((uStack_300 = local_1b8, local_1b8 != (undefined1 *)0x0 ||
+            (local_308 = lVar22, lVar22 == 0)))) {
+          local_2e8._4_4_ = (int)((longlong)local_180 - (longlong)local_188 >> 0x22);
+          local_308._0_4_ = (undefined4)lVar22;
+          local_308._4_4_ = (int)((longlong)local_1b0 - (longlong)local_1b8 >> 0x22);
+          local_2e8 = CONCAT44(local_2e8._4_4_,(int)lVar19);
+          CoordMap::
+          ComputeTexPositions<detail::vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>,detail::vector_facade<float,class_detail::buffer_impl<float,6,1,class_detail::liberal_expansion_policy>_>_>
+                    ((CoordMap *)(this + 0x70),(undefined4)local_308,&local_308,&local_2e8);
+          local_2d4 = 1;
+          puVar20 = local_1b0;
+          puVar26 = local_180;
+          puVar28 = local_1b8;
+          puVar29 = local_188;
+          puVar31 = local_128;
+          do {
+            uVar15 = (uint)pCVar25;
+            uVar30 = (ulonglong)local_2d4;
+            if ((ulonglong)((longlong)puVar26 - (longlong)puVar29 >> 2) <= uVar30) {
+              detail::
+              vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>
+              ::
+              ~vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>
+                        ((vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>
+                          *)&local_158);
+              detail::
+              vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>
+              ::
+              ~vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>
+                        ((vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>
+                          *)&local_128);
+              detail::
+              vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>
+              ::
+              ~vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>
+                        ((vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>
+                          *)&local_188);
+              detail::
+              vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>
+              ::
+              ~vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>
+                        ((vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>
+                          *)&local_1b8);
+              if (this_01 == (CSurfaceDrawListBrush *)0x0) {
+                return uVar15;
+              }
+LAB_1:
+              CSurfaceDrawListBrush::_scalar_deleting_destructor_(this_01,1);
+              return uVar15;
+            }
+            local_2d8 = local_2d4 - 1;
+            if (1.1920929e-06 <
+                ABS(*(float *)(puVar29 + (ulonglong)local_2d8 * 4) -
+                    *(float *)(puVar29 + uVar30 * 4))) {
+              uVar24 = 1;
+              while( true ) {
+                fVar34 = 0.0;
+                if ((ulonglong)((longlong)puVar20 - (longlong)puVar28 >> 2) <= uVar24) break;
+                fVar3 = *(float *)(puVar28 + uVar24 * 4);
+                uVar15 = (int)uVar24 - 1;
+                fVar4 = *(float *)(puVar28 + (ulonglong)uVar15 * 4);
+                if (1.1920929e-06 < ABS(fVar4 - fVar3)) {
+                  fVar5 = *(float *)(puVar29 + uVar30 * 4);
+                  fVar39 = *(float *)(puVar31 + (ulonglong)uVar15 * 4);
+                  fVar6 = *(float *)(puVar29 + (ulonglong)local_2d8 * 4);
+                  fVar7 = *(float *)(puVar31 + uVar24 * 4);
+                  local_2e8 = CONCAT44(fVar6,fVar4);
+                  fVar8 = *(float *)(local_158 + (ulonglong)local_2d8 * 4);
+                  fVar44 = *(float *)(local_158 + uVar30 * 4);
+                  uStack_2e0 = (undefined1 *)CONCAT44(fVar5,fVar3);
+                  local_308 = CONCAT44(fVar8,fVar39);
+                  uStack_300 = (undefined1 *)CONCAT44(fVar44,fVar7);
+                  if ((((this[0x239] == (CNineGridDrawListBrush)0x0) ||
+                       (1.1920929e-06 < *(float *)(this + 0x228) - fVar4)) ||
+                      (1.1920929e-06 < *(float *)(this + 0x22c) - fVar6)) ||
+                     ((1.1920929e-06 < fVar3 - *(float *)(this + 0x230) ||
+                      (puVar28 = local_1b8, 1.1920929e-06 < fVar5 - *(float *)(this + 0x234))))) {
+                    if (uVar15 == 0) {
+                      uVar15 = *(uint *)(this + 0x30) & 0x3000000;
+                    }
+                    else {
+                      uVar15 = 0;
+                    }
+                    if (local_2d8 == 0) {
+                      uVar21 = *(uint *)(this + 0x30) & 3;
+                    }
+                    else {
+                      uVar21 = 0;
+                    }
+                    if (uVar24 == ((longlong)puVar20 - (longlong)local_1b8 >> 2) - 1U) {
+                      uVar16 = *(uint *)(this + 0x30) & 0x300;
+                    }
+                    else {
+                      uVar16 = 0;
+                    }
+                    if (uVar30 == ((longlong)puVar26 - (longlong)puVar29 >> 2) - 1U) {
+                      uVar27 = *(uint *)(this + 0x30) & 0x30000;
+                    }
+                    else {
+                      uVar27 = 0;
+                    }
+                    uVar27 = uVar27 | uVar21 | uVar15 | uVar16;
+                    if ((this[0x239] != (CNineGridDrawListBrush)0x0) && (uVar27 != 0x3030303)) {
+                      if ((*(float *)(this + 0x22c) <= fVar6) && (fVar5 <= *(float *)(this + 0x234))
+                         ) {
+                        if (fVar4 == *(float *)(this + 0x230)) {
+                          uVar27 = uVar27 | 0x3000000;
+                        }
+                        if (fVar3 == *(float *)(this + 0x228)) {
+                          uVar27 = uVar27 | 0x300;
+                        }
+                      }
+                      if ((*(float *)(this + 0x228) <= fVar4) && (fVar3 <= *(float *)(this + 0x230))
+                         ) {
+                        if (fVar6 == *(float *)(this + 0x234)) {
+                          uVar27 = uVar27 | 3;
+                        }
+                        if (fVar5 == *(float *)(this + 0x22c)) {
+                          uVar27 = uVar27 | 0x30000;
+                        }
+                      }
+                    }
+                    if (this_01 == (CSurfaceDrawListBrush *)0x0) {
+                      if (ABS(fVar39 - fVar7) <= 0.0009765625) {
+                        fVar47 = (fVar7 + fVar39) * 0.5;
+                        local_308 = CONCAT44(fVar8,fVar47 - 0.00048828125);
+                        uStack_300 = (undefined1 *)CONCAT44(fVar44,fVar47 + 0.00048828125);
+                      }
+                      if (ABS(fVar8 - fVar44) <= 0.0009765625) {
+                        fVar47 = (fVar8 + fVar44) * 0.5;
+                        local_308 = CONCAT44(fVar47 - 0.00048828125,(undefined4)local_308);
+                        uStack_300 = (undefined1 *)
+                                     CONCAT44(fVar47 + 0.00048828125,(undefined4)uStack_300);
+                      }
+                      local_1d0[4] = 0.0;
+                      local_1d0[5] = 0.0;
+                      local_1d0[0] = 0.0;
+                      local_1d0[1] = 0.0;
+                      local_1d0[2] = 0.0;
+                      local_1d0[3] = 0.0;
+                      D2DMatrixHelper::ComputeRectangleTransform
+                                ((D2D_RECT_F *)&local_308,(D2D_RECT_F *)&local_2e8,
+                                 (D2D_MATRIX_3X2_F *)local_1d0);
+                      lVar19 = *(longlong *)(this + 0x48);
+                      *(undefined1 *)(lVar19 + 0x34) = 1;
+                      *(longlong *)(lVar19 + 0x20) = local_308;
+                      *(undefined1 **)(lVar19 + 0x28) = uStack_300;
+                      *(uint *)(lVar19 + 0x30) = uVar27;
+                      MILMatrix3x2::SetProduct
+                                ((MILMatrix3x2 *)&local_2d0,(MILMatrix3x2 *)local_1d0,
+                                 (MILMatrix3x2 *)(this + 8));
+                      lVar19 = *(longlong *)(this + 0x48);
+                      *(ulonglong *)(lVar19 + 8) = CONCAT44(fStack_2cc,local_2d0);
+                      *(undefined8 *)(lVar19 + 0x10) = uStack_2c8;
+                      *(ulonglong *)(lVar19 + 0x18) = CONCAT44(fStack_2bc,local_2c0);
+                      if (this[0x40] != (CNineGridDrawListBrush)0x0) {
+                        local_1d0[4] = 0.0;
+                        local_1d0[5] = 0.0;
+                        local_1d0[0] = 0.0;
+                        local_1d0[1] = 0.0;
+                        local_1d0[2] = 0.0;
+                        local_1d0[3] = 0.0;
+                        D2DMatrixHelper::ComputeRectangleTransform
+                                  ((D2D_RECT_F *)&local_2e8,(D2D_RECT_F *)&local_308,
+                                   (D2D_MATRIX_3X2_F *)local_1d0);
+                        fVar47 = *(float *)(this + 0x38);
+                        lVar19 = *(longlong *)(this + 0x48);
+                        fVar48 = *(float *)(this + 0x3c);
+                        fVar34 = *(float *)(this + 0x38);
+                        fVar3 = *(float *)(this + 0x3c);
+                        *(undefined1 *)(lVar19 + 0x40) = 1;
+                        *(ulonglong *)(lVar19 + 0x38) =
+                             CONCAT44(local_1d0[1] * fVar34 + local_1d0[3] * fVar3 + local_1d0[5],
+                                      local_1d0[0] * fVar47 + local_1d0[2] * fVar48 + local_1d0[4]);
+                      }
+                      if (local_220 ==
+                          <lambda_6f49ef1c5e266dfff6ad3ca7d4dec8df>::<lambda_invoker_cdecl>) {
+                        uVar15 = <lambda_6f49ef1c5e266dfff6ad3ca7d4dec8df>::<lambda_invoker_cdecl>()
+                        ;
+                      }
+                      else {
+                        uVar15 = (*local_220)(*(CDrawListBrush **)(this + 0x48),local_288);
+                      }
+                      if ((int)uVar15 < 0) {
+                        MilInstrumentationCheckHR_MaybeFailFast
+                                  (0x14,(long *)0x0,0,uVar15,0x1bf,(void *)0x0);
+                        detail::
+                        vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>
+                        ::
+                        ~vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>
+                                  ((vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>
+                                    *)&local_158);
+                        detail::
+                        vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>
+                        ::
+                        ~vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>
+                                  ((vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>
+                                    *)&local_128);
+                        detail::
+                        vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>
+                        ::
+                        ~vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>
+                                  ((vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>
+                                    *)&local_188);
+                        detail::
+                        vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>
+                        ::
+                        ~vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>
+                                  ((vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>
+                                    *)&local_1b8);
+                        return uVar15;
+                      }
+                    }
+                    else {
+                      lVar19 = *(longlong *)(this + 0x48);
+                      fVar46 = fVar8;
+                      fVar43 = fVar44;
+                      fVar33 = fVar7;
+                      fVar45 = fVar39;
+                      if (bVar12) {
+                        if ((0.5 < fVar7 - fVar39) &&
+                           (8.138021e-05 <= ABS(((fVar3 - fVar4) / (fVar7 - fVar39)) * fVar48 - 1.0)
+                           )) {
+                          fVar48 = fVar34;
+                          if (*(float *)(lVar19 + 0x20) <= fVar39 &&
+                              fVar39 != *(float *)(lVar19 + 0x20)) {
+                            fVar48 = 0.5;
+                          }
+                          fVar33 = fVar34;
+                          if (fVar7 < *(float *)(lVar19 + 0x28)) {
+                            fVar33 = 0.5;
+                          }
+                          fVar33 = fVar7 - fVar33;
+                          fVar45 = fVar48 + fVar39;
+                        }
+                        if ((0.5 < fVar44 - fVar8) &&
+                           (8.138021e-05 <= ABS(((fVar5 - fVar6) / (fVar44 - fVar8)) * fVar47 - 1.0)
+                           )) {
+                          fVar46 = fVar34;
+                          if (*(float *)(lVar19 + 0x24) <= fVar8 &&
+                              fVar8 != *(float *)(lVar19 + 0x24)) {
+                            fVar46 = 0.5;
+                          }
+                          fVar46 = fVar8 + fVar46;
+                          if (fVar44 < *(float *)(lVar19 + 0x2c)) {
+                            fVar34 = 0.5;
+                          }
+                          fVar43 = fVar44 - fVar34;
+                        }
+                      }
+                      uStack_300 = (undefined1 *)CONCAT44(fVar44,fVar7);
+                      local_308 = CONCAT44(fVar8,fVar39);
+                      local_318 = 0.0;
+                      local_2f8 = 0.0;
+                      local_328[0] = 0.0;
+                      local_310 = 0.0;
+                      local_314 = 0.0;
+                      local_2f4 = 0.0;
+                      if ((((fVar4 == fVar45) && (fVar6 == fVar46)) && (fVar3 == fVar33)) &&
+                         (fVar5 == fVar43)) {
+                        bVar14 = true;
+                      }
+                      else {
+                        bVar14 = false;
+                      }
+                      if (bVar14) {
+                        local_2f8 = 1.0;
+                        local_310 = 1.0;
+                        local_318 = 0.0;
+                        local_328[0] = 0.0;
+                        local_314 = 0.0;
+                        local_2f4 = 0.0;
+                      }
+                      else if ((fVar3 - fVar4 != 0.0) || (fVar5 - fVar6 != 0.0)) {
+                        fVar48 = (fVar33 - fVar45) / (fVar3 - fVar4);
+                        fVar47 = (fVar43 - fVar46) / (fVar5 - fVar6);
+                        local_2f8 = fVar48 + 0.0;
+                        local_328[0] = fVar48 * 0.0 + 0.0;
+                        local_310 = fVar47 + 0.0;
+                        local_318 = fVar47 * 0.0 + 0.0;
+                        local_2f4 = fVar47 * -fVar6 + -fVar4 * 0.0 + fVar46;
+                        local_314 = fVar48 * -fVar4 + -fVar6 * 0.0 + fVar45;
+                      }
+                      local_27c = *(float *)(lVar19 + 0x58);
+                      fVar47 = *(float *)(lVar19 + 0x60);
+                      local_280 = *(float *)(lVar19 + 0x54);
+                      fVar48 = *(float *)(lVar19 + 100);
+                      fVar34 = *(float *)(lVar19 + 0x68);
+                      fVar39 = *(float *)(lVar19 + 0x6c);
+                      fVar7 = *(float *)(lVar19 + 0x74);
+                      fVar44 = fVar39 * 0.0;
+                      local_2d0 = local_280 * local_2f8 + fVar47 * local_318 + fVar44;
+                      fVar8 = *(float *)(lVar19 + 0x5c);
+                      fStack_2bc = fVar7 * 0.0;
+                      local_2c0 = *(float *)(lVar19 + 0x70) * 0.0;
+                      fStack_2cc = local_27c * local_2f8 + fVar48 * local_318 + local_2c0;
+                      fVar46 = fVar8 * local_2f8 + fVar34 * local_318 + fStack_2bc;
+                      fVar44 = local_280 * local_328[0] + fVar47 * local_310 + fVar44;
+                      local_2c0 = local_27c * local_328[0] + fVar48 * local_310 + local_2c0;
+                      fStack_2bc = fVar8 * local_328[0] + fVar34 * local_310 + fStack_2bc;
+                      fVar48 = local_27c * local_314 + fVar48 * local_2f4 +
+                               *(float *)(lVar19 + 0x70);
+                      uStack_2c8 = CONCAT44(fVar44,fVar46);
+                      *(float *)(this_01 + 0x54) = local_2d0;
+                      *(float *)(this_01 + 0x58) = fStack_2cc;
+                      *(float *)(this_01 + 0x5c) = fVar46;
+                      *(float *)(this_01 + 0x60) = fVar44;
+                      fVar39 = local_280 * local_314 + fVar47 * local_2f4 + fVar39;
+                      *(float *)(this_01 + 100) = local_2c0;
+                      *(float *)(this_01 + 0x68) = fStack_2bc;
+                      *(float *)(this_01 + 0x6c) = fVar39;
+                      *(float *)(this_01 + 0x70) = fVar48;
+                      *(float *)(this_01 + 0x74) = fVar8 * local_314 + fVar34 * local_2f4 + fVar7;
+                      this_01[0x34] = (CSurfaceDrawListBrush)0x1;
+                      *(uint *)(this_01 + 0x30) = uVar27;
+                      *(float *)(this_01 + 0x20) = fVar4;
+                      *(float *)(this_01 + 0x24) = fVar6;
+                      *(float *)(this_01 + 0x28) = fVar3;
+                      *(float *)(this_01 + 0x2c) = fVar5;
+                      local_2b8 = CONCAT44(fVar48,fVar39);
+                      if (local_220 ==
+                          <lambda_6f49ef1c5e266dfff6ad3ca7d4dec8df>::<lambda_invoker_cdecl>) {
+                        uVar15 = <lambda_6f49ef1c5e266dfff6ad3ca7d4dec8df>::operator()(0);
+                      }
+                      else {
+                        uVar15 = (*local_220)((CDrawListBrush *)this_01,local_288);
+                      }
+                      if ((int)uVar15 < 0) {
+                        MilInstrumentationCheckHR_MaybeFailFast
+                                  (0x14,(long *)0x0,0,uVar15,0x18e,(void *)0x0);
+                        detail::
+                        vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>
+                        ::
+                        ~vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>
+                                  ((vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>
+                                    *)&local_158);
+                        detail::
+                        vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>
+                        ::
+                        ~vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>
+                                  ((vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>
+                                    *)&local_128);
+                        detail::
+                        vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>
+                        ::
+                        ~vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>
+                                  ((vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>
+                                    *)&local_188);
+                        detail::
+                        vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>
+                        ::
+                        ~vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>
+                                  ((vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>
+                                    *)&local_1b8);
+                        goto LAB_1;
+                      }
+                    }
+                    pCVar25 = (CSurfaceDrawListBrush *)(ulonglong)uVar15;
+                    puVar20 = local_1b0;
+                    puVar26 = local_180;
+                    puVar28 = local_1b8;
+                    puVar29 = local_188;
+                    puVar31 = local_128;
+                  }
+                }
+                uVar24 = (ulonglong)((int)uVar24 + 1);
+                fVar47 = local_2f0;
+                fVar48 = local_2ec;
+              }
+            }
+            local_2d4 = local_2d4 + 1;
+          } while( true );
+        }
+      }
+      (*(code *)`void_(__cdecl*&___ptr64___cdecl_gsl::details::get_terminate_handler(void))(void)'::
+                __l2::handler)();
+      pcVar9 = (code *)swi(3);
+      lVar17 = (*pcVar9)();
+      return lVar17;
+    }
     this_00 = *(CSurfaceDrawListBrush **)(this + 0x48);
-    uVar10 = *(undefined2 *)(this_00 + 0x50);
-    CVar9 = this_00[0x52];
-    this_02 = CThreadLocalObjectCache<CSurfaceDrawListBrush,CSurfaceDrawListBrush>::Alloc
-                        ((__uint64)this_03);
-    if (this_02 == (CSurfaceDrawListBrush *)0x0) {
-      lVar20 = -0x7ff8fff2;
-      MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,-0x7ff8fff2,0x3a,(void *)0x0);
-      uVar17 = 0xa2;
-      goto LAB_0;
-    }
-    *(undefined4 *)(this_02 + 8) = 0x3f800000;
-    *(undefined8 *)(this_02 + 0xc) = 0;
-    *(undefined8 *)(this_02 + 0x14) = 0x3f800000;
-    *(undefined4 *)(this_02 + 0x1c) = 0;
-    this_02[0x34] = (CSurfaceDrawListBrush)0x0;
-    *(undefined ***)this_02 = &CSurfaceDrawListBrush::_vftable_;
-    this_01 = *(CMILRefCountImpl **)(this_00 + 0x38);
-    *(CMILRefCountImpl **)(this_02 + 0x38) = this_01;
-    if (this_01 != (CMILRefCountImpl *)0x0) {
-      if (*(code **)(*(longlong *)this_01 + 8) == CMILRefCountImpl::AddReference) {
-        CMILRefCountImpl::AddReference(this_01);
-      }
-      else {
-        (**(code **)(*(longlong *)this_01 + 8))();
+    uVar11 = *(undefined3 *)(this_00 + 0x50);
+    pCVar18 = CThreadLocalObjectCache<CSurfaceDrawListBrush,CSurfaceDrawListBrush>::Alloc
+                        ((__uint64)pCVar18);
+    if (pCVar18 != (CSurfaceDrawListBrush *)0x0) {
+      local_328[0] = (float)CONCAT13(local_328[0]._3_1_,uVar11);
+      this_01 = (CSurfaceDrawListBrush *)
+                CSurfaceDrawListBrush::CSurfaceDrawListBrush
+                          (pCVar18,this_00 + 0x38,local_328,&Matrix3x3::Identity);
+      if (this_01 != (CSurfaceDrawListBrush *)0x0) {
+        pCVar18 = this_00;
+        bVar14 = CSurfaceDrawListBrush::IsBoundless(this_00);
+        if (!bVar14) {
+          uVar10 = *(undefined8 *)(this_00 + 0x80);
+          *(undefined8 *)(this_01 + 0x78) = *(undefined8 *)(this_00 + 0x78);
+          *(undefined8 *)(this_01 + 0x80) = uVar10;
+        }
+        uVar10 = *(undefined8 *)(this + 0x10);
+        *(undefined8 *)(this_01 + 8) = *(undefined8 *)(this + 8);
+        *(undefined8 *)(this_01 + 0x10) = uVar10;
+        *(undefined8 *)(this_01 + 0x18) = *(undefined8 *)(this + 0x18);
+        if (this[0x40] != (CNineGridDrawListBrush)0x0) {
+          pCVar18 = this_01;
+          CSurfaceDrawListBrush::SetSnapToPixelsReference(this_01,(D2D_VECTOR_2F *)(this + 0x38));
+        }
+        if (this_00[0x90] != (CSurfaceDrawListBrush)0x0) {
+          bVar12 = true;
+          if (*(int *)(param_1 + 0x128) == 0) {
+            local_278 = 0x3f800000;
+            uStack_270 = 0;
+            uVar32 = 0;
+            uVar35 = 0;
+            uVar36 = 0x3f800000;
+            uVar37 = 0;
+            local_268 = 0x3f80000000000000;
+            uStack_260 = 0;
+            uVar38 = 0;
+            uVar40 = 0;
+            uVar41 = 0;
+            uVar42 = 0x3f800000;
+            local_238 = 0x29aa;
+          }
+          else {
+            lVar19 = *(longlong *)(param_1 + 0x120);
+            lVar22 = (ulonglong)(*(int *)(param_1 + 0x128) - 1) * 0x44;
+            local_278 = *(undefined8 *)(lVar22 + lVar19);
+            uStack_270 = ((undefined8 *)(lVar22 + lVar19))[1];
+            puVar1 = (undefined8 *)(lVar22 + 0x10 + lVar19);
+            local_268 = *puVar1;
+            uStack_260 = puVar1[1];
+            puVar2 = (undefined4 *)(lVar22 + 0x20 + lVar19);
+            uVar32 = *puVar2;
+            uVar35 = puVar2[1];
+            uVar36 = puVar2[2];
+            uVar37 = puVar2[3];
+            puVar2 = (undefined4 *)(lVar22 + 0x30 + lVar19);
+            uVar38 = *puVar2;
+            uVar40 = puVar2[1];
+            uVar41 = puVar2[2];
+            uVar42 = puVar2[3];
+            local_238 = *(undefined4 *)(lVar22 + 0x40 + lVar19);
+          }
+          local_208 = *(undefined4 *)(this + 0x10);
+          uStack_204 = *(undefined4 *)(this + 0x14);
+          local_2c0 = *(float *)(this + 0x10);
+          fStack_2bc = *(float *)(this + 0x14);
+          fStack_2cc = *(float *)(this + 0xc);
+          local_1e8 = *(undefined4 *)(this + 0x18);
+          uStack_1e4 = *(undefined4 *)(this + 0x1c);
+          local_2a0 = *(undefined4 *)(this + 0x18);
+          uStack_29c = *(undefined4 *)(this + 0x1c);
+          local_248 = CONCAT44(uVar40,uVar38);
+          uStack_240 = CONCAT44(uVar42,uVar41);
+          local_2d0 = *(float *)(this + 8);
+          local_258 = CONCAT44(uVar35,uVar32);
+          uStack_250 = CONCAT44(uVar37,uVar36);
+          uStack_2b0 = 0;
+          local_2a8 = 0x3f800000;
+          local_2b8 = 0;
+          local_1d8 = 0x2808;
+          uStack_200 = 0;
+          uStack_1fc = 0;
+          uStack_2c8 = 0;
+          uStack_210 = 0;
+          uStack_20c = 0;
+          uStack_298 = 0;
+          uStack_294 = 0x28083f800000;
+          uStack_1e0 = 0;
+          uStack_1dc = 0x3f800000;
+          local_1f8 = 0;
+          uStack_1f0 = 0x3f800000;
+          pCVar23 = (CMILMatrix *)this_02;
+          local_218 = local_2d0;
+          fStack_214 = fStack_2cc;
+          CMILMatrix::Multiply((CMILMatrix *)&local_218,(CMILMatrix *)this_02);
+          local_278 = CONCAT44(fStack_214,local_218);
+          uStack_270 = CONCAT44(uStack_20c,uStack_210);
+          local_268 = CONCAT44(uStack_204,local_208);
+          uStack_260 = CONCAT44(uStack_1fc,uStack_200);
+          local_238 = local_1d8;
+          local_248 = CONCAT44(uStack_1e4,local_1e8);
+          uStack_240 = CONCAT44(uStack_1dc,uStack_1e0);
+          local_258 = local_1f8;
+          uStack_250 = uStack_1f0;
+          local_2e8 = *(longlong *)(this + 0x20);
+          uStack_2e0 = *(undefined1 **)(this + 0x28);
+          bVar14 = CMILMatrix::Is2DAffineOrNaN((CMILMatrix *)this_02,SUB81(pCVar23,0));
+          if (bVar14) {
+            fVar48 = sqrtf((float)local_278 * (float)local_278 + local_278._4_4_ * local_278._4_4_);
+            local_2ec = fVar48;
+            fVar47 = sqrtf((float)local_268 * (float)local_268 + local_268._4_4_ * local_268._4_4_);
+            if (NAN(fVar48)) {
+              fVar48 = 0.0;
+              local_2ec = 0.0;
+            }
+            if (NAN(fVar47)) {
+              fVar47 = 0.0;
+            }
+          }
+          else {
+            local_2d0 = (float)local_278;
+            this_02 = (Matrix3x3 *)&local_2d0;
+            fStack_2cc = local_278._4_4_;
+            local_2c0 = local_268._4_4_;
+            uStack_2c8 = CONCAT44((float)local_268,uStack_270._4_4_);
+            fStack_2bc = uStack_260._4_4_;
+            uStack_2b0 = CONCAT44(uStack_2b0._4_4_,uStack_240._4_4_);
+            local_2b8 = local_248;
+            Matrix3x3::Get2DScaleDimensionsWithPerspective
+                      (this_02,&local_314,&local_318,
+                       (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
+                        *)&local_2e8);
+            local_2ec = local_314;
+            fVar47 = local_318;
+            fVar48 = local_314;
+          }
+          this_01[0x92] = (CSurfaceDrawListBrush)0x1;
+          pCVar18 = (CSurfaceDrawListBrush *)this_02;
+          local_2f0 = fVar47;
+        }
+        goto LAB_0;
       }
     }
-    plVar12 = *(longlong **)(this_00 + 0x40);
-    *(longlong **)(this_02 + 0x40) = plVar12;
-    if (plVar12 != (longlong *)0x0) {
-      (**(code **)(*plVar12 + 8))();
-    }
-    this_02[0x48] = this_00[0x48];
-    *(undefined2 *)(this_02 + 0x50) = uVar10;
-    this_02[0x52] = CVar9;
-    *(undefined8 *)(this_02 + 0x5c) = 0;
-    *(undefined8 *)(this_02 + 0x6c) = 0;
-    *(undefined8 *)(this_02 + 0x54) = 0x3f800000;
-    *(undefined8 *)(this_02 + 100) = 0x3f800000;
-    *(undefined4 *)(this_02 + 0x74) = 0x3f800000;
-    *(undefined4 *)(this_02 + 0x90) = 0;
-    *(undefined8 *)(this_02 + 0x78) = 0xff7fffffff7fffff;
-    *(undefined8 *)(this_02 + 0x80) = 0x7f7fffff7f7fffff;
-    this_03 = (CMILMatrix *)this_00;
-    bVar16 = CSurfaceDrawListBrush::IsBoundless(this_00);
-    if (!bVar16) {
-      uVar13 = *(undefined8 *)(this_00 + 0x80);
-      *(undefined8 *)(this_02 + 0x78) = *(undefined8 *)(this_00 + 0x78);
-      *(undefined8 *)(this_02 + 0x80) = uVar13;
-    }
-    uVar13 = *(undefined8 *)(this + 0x10);
-    *(undefined8 *)(this_02 + 8) = *(undefined8 *)(this + 8);
-    *(undefined8 *)(this_02 + 0x10) = uVar13;
-    *(undefined8 *)(this_02 + 0x18) = *(undefined8 *)(this + 0x18);
-    if (this[0x40] != (CNineGridDrawListBrush)0x0) {
-      this_03 = (CMILMatrix *)this_02;
-      CSurfaceDrawListBrush::SetSnapToPixelsReference(this_02,(D2D_VECTOR_2F *)(this + 0x38));
-    }
-    if (this_00[0x90] != (CSurfaceDrawListBrush)0x0) {
-      bVar14 = true;
-      if (*(int *)(param_1 + 0x128) == 0) {
-        local_278 = 0x3f800000;
-        uStack_270 = 0;
-        uVar33 = 0;
-        uVar36 = 0;
-        uVar37 = 0x3f800000;
-        uVar38 = 0;
-        local_268 = 0x3f80000000000000;
-        uStack_260 = 0;
-        uVar39 = 0;
-        uVar42 = 0;
-        uVar43 = 0;
-        uVar44 = 0x3f800000;
-        local_238 = 0x29aa;
-      }
-      else {
-        lVar21 = *(longlong *)(param_1 + 0x120);
-        lVar24 = (ulonglong)(*(int *)(param_1 + 0x128) - 1) * 0x44;
-        local_278 = *(undefined8 *)(lVar24 + lVar21);
-        uStack_270 = ((undefined8 *)(lVar24 + lVar21))[1];
-        puVar1 = (undefined8 *)(lVar24 + 0x10 + lVar21);
-        local_268 = *puVar1;
-        uStack_260 = puVar1[1];
-        puVar2 = (undefined4 *)(lVar24 + 0x20 + lVar21);
-        uVar33 = *puVar2;
-        uVar36 = puVar2[1];
-        uVar37 = puVar2[2];
-        uVar38 = puVar2[3];
-        puVar2 = (undefined4 *)(lVar24 + 0x30 + lVar21);
-        uVar39 = *puVar2;
-        uVar42 = puVar2[1];
-        uVar43 = puVar2[2];
-        uVar44 = puVar2[3];
-        local_238 = *(undefined4 *)(lVar24 + 0x40 + lVar21);
-      }
-      pCVar25 = (CMILMatrix *)&local_278;
-      local_208 = *(undefined4 *)(this + 0x10);
-      uStack_204 = *(undefined4 *)(this + 0x14);
-      local_2c0 = *(float *)(this + 0x10);
-      fStack_2bc = *(float *)(this + 0x14);
-      fStack_2cc = *(float *)(this + 0xc);
-      local_1e8 = *(undefined4 *)(this + 0x18);
-      uStack_1e4 = *(undefined4 *)(this + 0x1c);
-      local_2a0 = *(undefined4 *)(this + 0x18);
-      uStack_29c = *(undefined4 *)(this + 0x1c);
-      local_248 = CONCAT44(uVar42,uVar39);
-      uStack_240 = CONCAT44(uVar44,uVar43);
-      local_2d0 = *(float *)(this + 8);
-      local_258 = CONCAT44(uVar36,uVar33);
-      uStack_250 = CONCAT44(uVar38,uVar37);
-      uStack_2b0 = 0;
-      local_2a8 = 0x3f800000;
-      local_2b8 = 0;
-      local_1d8 = 0x2808;
-      uStack_200 = 0;
-      uStack_1fc = 0;
-      uStack_2c8 = 0;
-      uStack_210 = 0;
-      uStack_20c = 0;
-      uStack_298 = 0;
-      uStack_294 = 0x28083f800000;
-      uStack_1e0 = 0;
-      uStack_1dc = 0x3f800000;
-      local_1f8 = 0;
-      uStack_1f0 = 0x3f800000;
-      local_218 = local_2d0;
-      fStack_214 = fStack_2cc;
-      CMILMatrix::Multiply((CMILMatrix *)&local_218,pCVar25);
-      local_278 = CONCAT44(fStack_214,local_218);
-      uStack_270 = CONCAT44(uStack_20c,uStack_210);
-      this_03 = (CMILMatrix *)&local_278;
-      local_268 = CONCAT44(uStack_204,local_208);
-      uStack_260 = CONCAT44(uStack_1fc,uStack_200);
-      local_238 = local_1d8;
-      local_248 = CONCAT44(uStack_1e4,local_1e8);
-      uStack_240 = CONCAT44(uStack_1dc,uStack_1e0);
-      local_258 = local_1f8;
-      uStack_250 = uStack_1f0;
-      local_2e8 = *(longlong *)(this + 0x20);
-      uStack_2e0 = *(undefined1 **)(this + 0x28);
-      bVar16 = CMILMatrix::Is2DAffineOrNaN(this_03,SUB81(pCVar25,0));
-      if (bVar16) {
-        fVar49 = sqrtf((float)local_278 * (float)local_278 + local_278._4_4_ * local_278._4_4_);
-        local_2ec = fVar49;
-        fVar48 = sqrtf((float)local_268 * (float)local_268 + local_268._4_4_ * local_268._4_4_);
-        if (NAN(fVar49)) {
-          fVar49 = 0.0;
-          local_2ec = 0.0;
-        }
-        if (NAN(fVar48)) {
-          fVar48 = 0.0;
-        }
-      }
-      else {
-        local_2d0 = (float)local_278;
-        this_03 = (CMILMatrix *)&local_2d0;
-        fStack_2cc = local_278._4_4_;
-        local_2c0 = local_268._4_4_;
-        uStack_2c8 = CONCAT44((float)local_268,uStack_270._4_4_);
-        fStack_2bc = uStack_260._4_4_;
-        uStack_2b0 = CONCAT44(uStack_2b0._4_4_,uStack_240._4_4_);
-        local_2b8 = local_248;
-        Matrix3x3::Get2DScaleDimensionsWithPerspective
-                  ((Matrix3x3 *)this_03,&local_320,&local_324,
-                   (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
-                    *)&local_2e8);
-        local_2ec = local_320;
-        fVar48 = local_324;
-        fVar49 = local_320;
-      }
-      this_02[0x92] = (CSurfaceDrawListBrush)0x1;
-      local_2f0 = fVar48;
-    }
+    lVar17 = -0x7ff8fff2;
+    MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,-0x7ff8fff2,0x3a,(void *)0x0);
+    uVar15 = 0xa2;
   }
-  iVar18 = 0;
-  local_1b8 = local_1a0;
-  local_1b0 = local_1a0;
-  local_1a8 = &local_188;
-  local_188 = local_170;
-  local_180 = local_170;
-  local_178 = &local_158;
-  CoordMap::
-  GetAllPositions<detail::vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>_>
-            ((CoordMap *)this_03,
-             (vector_facade<CoordMap::RampEntry,detail::buffer_impl<CoordMap::RampEntry,10,1,detail::liberal_expansion_policy>_>
-              *)(this + 0x70),
-             (vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>
-              *)&local_1b8,*(float *)(this + 0x20),*(float *)(this + 0x28),1.1920929e-07);
-  CoordMap::
-  GetAllPositions<detail::vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>_>
-            ((CoordMap *)this_03,
-             (vector_facade<CoordMap::RampEntry,detail::buffer_impl<CoordMap::RampEntry,10,1,detail::liberal_expansion_policy>_>
-              *)(this + 0x128),
-             (vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>
-              *)&local_188,*(float *)(this + 0x24),*(float *)(this + 0x2c),1.1920929e-07);
-  local_128 = local_110;
-  local_120 = local_110;
-  local_118 = local_f8;
-  local_158 = local_140;
-  local_150 = local_140;
-  local_148 = &local_128;
-  lVar21 = (longlong)local_180 - (longlong)local_188 >> 2;
-  if (((lVar21 != -1) && ((local_188 != (undefined1 *)0x0 || (lVar21 == 0)))) &&
-     ((uStack_2e0 = local_188, local_2e8 = lVar21, local_188 != (undefined1 *)0x0 || (lVar21 == 0)))
-     ) {
-    lVar24 = (longlong)local_1b0 - (longlong)local_1b8 >> 2;
-    if (((lVar24 != -1) && ((local_1b8 != (undefined1 *)0x0 || (lVar24 == 0)))) &&
-       ((uStack_300 = local_1b8, local_1b8 != (undefined1 *)0x0 || (local_308 = lVar24, lVar24 == 0)
-        ))) {
-      local_2e8._4_4_ = (int)((longlong)local_180 - (longlong)local_188 >> 0x22);
-      local_308._0_4_ = (undefined4)lVar24;
-      local_308._4_4_ = (int)((longlong)local_1b0 - (longlong)local_1b8 >> 0x22);
-      local_2e8 = CONCAT44(local_2e8._4_4_,(int)lVar21);
-      CoordMap::
-      ComputeTexPositions<detail::vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>,detail::vector_facade<float,class_detail::buffer_impl<float,6,1,class_detail::liberal_expansion_policy>_>_>
-                ((CoordMap *)(this + 0x70),(undefined4)local_308,&local_308,&local_2e8);
-      local_2d4 = 1;
-      puVar22 = local_1b0;
-      puVar27 = local_180;
-      puVar29 = local_1b8;
-      puVar30 = local_188;
-      puVar32 = local_128;
-      do {
-        uVar31 = (ulonglong)local_2d4;
-        if ((ulonglong)((longlong)puVar27 - (longlong)puVar30 >> 2) <= uVar31) {
-          detail::
-          vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>::
-          ~vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>
-                    ((vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>
-                      *)&local_158);
-          detail::
-          vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>::
-          ~vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>
-                    ((vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>
-                      *)&local_128);
-          detail::
-          vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>::
-          ~vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>
-                    ((vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>
-                      *)&local_188);
-          detail::
-          vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>::
-          ~vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>
-                    ((vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>
-                      *)&local_1b8);
-          if (this_02 == (CSurfaceDrawListBrush *)0x0) {
-            return iVar18;
-          }
-LAB_1:
-          CSurfaceDrawListBrush::_scalar_deleting_destructor_(this_02,1);
-          return iVar18;
-        }
-        local_2d8 = local_2d4 - 1;
-        if (1.1920929e-06 <
-            ABS(*(float *)(puVar30 + (ulonglong)local_2d8 * 4) - *(float *)(puVar30 + uVar31 * 4)))
-        {
-          uVar26 = 1;
-          while( true ) {
-            fVar35 = 0.0;
-            if ((ulonglong)((longlong)puVar22 - (longlong)puVar29 >> 2) <= uVar26) break;
-            fVar3 = *(float *)(puVar29 + uVar26 * 4);
-            uVar17 = (int)uVar26 - 1;
-            fVar4 = *(float *)(puVar29 + (ulonglong)uVar17 * 4);
-            if (1.1920929e-06 < ABS(fVar4 - fVar3)) {
-              fVar5 = *(float *)(puVar30 + uVar31 * 4);
-              fVar6 = *(float *)(puVar32 + (ulonglong)uVar17 * 4);
-              fVar7 = *(float *)(puVar30 + (ulonglong)local_2d8 * 4);
-              fVar8 = *(float *)(puVar32 + uVar26 * 4);
-              local_2e8 = CONCAT44(fVar7,fVar4);
-              fVar40 = *(float *)(local_158 + (ulonglong)local_2d8 * 4);
-              fVar45 = *(float *)(local_158 + uVar31 * 4);
-              uStack_2e0 = (undefined1 *)CONCAT44(fVar5,fVar3);
-              local_308 = CONCAT44(fVar40,fVar6);
-              uStack_300 = (undefined1 *)CONCAT44(fVar45,fVar8);
-              if ((((this[0x239] == (CNineGridDrawListBrush)0x0) ||
-                   (1.1920929e-06 < *(float *)(this + 0x228) - fVar4)) ||
-                  (1.1920929e-06 < *(float *)(this + 0x22c) - fVar7)) ||
-                 ((1.1920929e-06 < fVar3 - *(float *)(this + 0x230) ||
-                  (puVar29 = local_1b8, 1.1920929e-06 < fVar5 - *(float *)(this + 0x234))))) {
-                if (uVar17 == 0) {
-                  uVar17 = *(uint *)(this + 0x30) & 0x3000000;
-                }
-                else {
-                  uVar17 = 0;
-                }
-                if (local_2d8 == 0) {
-                  uVar23 = *(uint *)(this + 0x30) & 3;
-                }
-                else {
-                  uVar23 = 0;
-                }
-                if (uVar26 == ((longlong)puVar22 - (longlong)local_1b8 >> 2) - 1U) {
-                  uVar19 = *(uint *)(this + 0x30) & 0x300;
-                }
-                else {
-                  uVar19 = 0;
-                }
-                if (uVar31 == ((longlong)puVar27 - (longlong)puVar30 >> 2) - 1U) {
-                  uVar28 = *(uint *)(this + 0x30) & 0x30000;
-                }
-                else {
-                  uVar28 = 0;
-                }
-                uVar28 = uVar28 | uVar23 | uVar17 | uVar19;
-                if ((this[0x239] != (CNineGridDrawListBrush)0x0) && (uVar28 != 0x3030303)) {
-                  if ((*(float *)(this + 0x22c) <= fVar7) && (fVar5 <= *(float *)(this + 0x234))) {
-                    if (fVar4 == *(float *)(this + 0x230)) {
-                      uVar28 = uVar28 | 0x3000000;
-                    }
-                    if (fVar3 == *(float *)(this + 0x228)) {
-                      uVar28 = uVar28 | 0x300;
-                    }
-                  }
-                  if ((*(float *)(this + 0x228) <= fVar4) && (fVar3 <= *(float *)(this + 0x230))) {
-                    if (fVar7 == *(float *)(this + 0x234)) {
-                      uVar28 = uVar28 | 3;
-                    }
-                    if (fVar5 == *(float *)(this + 0x22c)) {
-                      uVar28 = uVar28 | 0x30000;
-                    }
-                  }
-                }
-                if (this_02 == (CSurfaceDrawListBrush *)0x0) {
-                  if (ABS(fVar6 - fVar8) <= 0.0009765625) {
-                    fVar48 = (fVar8 + fVar6) * 0.5;
-                    local_308 = CONCAT44(fVar40,fVar48 - 0.00048828125);
-                    uStack_300 = (undefined1 *)CONCAT44(fVar45,fVar48 + 0.00048828125);
-                  }
-                  if (ABS(fVar40 - fVar45) <= 0.0009765625) {
-                    fVar48 = (fVar45 + fVar40) * 0.5;
-                    local_308 = CONCAT44(fVar48 - 0.00048828125,(undefined4)local_308);
-                    uStack_300 = (undefined1 *)
-                                 CONCAT44(fVar48 + 0.00048828125,(undefined4)uStack_300);
-                  }
-                  local_1d0[4] = 0.0;
-                  local_1d0[5] = 0.0;
-                  local_1d0[0] = 0.0;
-                  local_1d0[1] = 0.0;
-                  local_1d0[2] = 0.0;
-                  local_1d0[3] = 0.0;
-                  D2DMatrixHelper::ComputeRectangleTransform
-                            ((D2D_RECT_F *)&local_308,(D2D_RECT_F *)&local_2e8,
-                             (D2D_MATRIX_3X2_F *)local_1d0);
-                  lVar21 = *(longlong *)(this + 0x48);
-                  *(undefined1 *)(lVar21 + 0x34) = 1;
-                  *(longlong *)(lVar21 + 0x20) = local_308;
-                  *(undefined1 **)(lVar21 + 0x28) = uStack_300;
-                  *(uint *)(lVar21 + 0x30) = uVar28;
-                  MILMatrix3x2::SetProduct
-                            ((MILMatrix3x2 *)&local_2d0,(MILMatrix3x2 *)local_1d0,
-                             (MILMatrix3x2 *)(this + 8));
-                  lVar21 = *(longlong *)(this + 0x48);
-                  *(float *)(lVar21 + 8) = local_2d0;
-                  *(float *)(lVar21 + 0xc) = fStack_2cc;
-                  *(undefined4 *)(lVar21 + 0x10) = (undefined4)uStack_2c8;
-                  *(undefined4 *)(lVar21 + 0x14) = uStack_2c8._4_4_;
-                  *(ulonglong *)(lVar21 + 0x18) = CONCAT44(fStack_2bc,local_2c0);
-                  if (this[0x40] != (CNineGridDrawListBrush)0x0) {
-                    local_1d0[4] = 0.0;
-                    local_1d0[5] = 0.0;
-                    local_1d0[0] = 0.0;
-                    local_1d0[1] = 0.0;
-                    local_1d0[2] = 0.0;
-                    local_1d0[3] = 0.0;
-                    D2DMatrixHelper::ComputeRectangleTransform
-                              ((D2D_RECT_F *)&local_2e8,(D2D_RECT_F *)&local_308,
-                               (D2D_MATRIX_3X2_F *)local_1d0);
-                    fVar48 = *(float *)(this + 0x3c);
-                    fVar49 = *(float *)(this + 0x38);
-                    lVar21 = *(longlong *)(this + 0x48);
-                    *(undefined1 *)(lVar21 + 0x40) = 1;
-                    *(ulonglong *)(lVar21 + 0x38) =
-                         CONCAT44(fVar49 * local_1d0[1] + fVar48 * local_1d0[3] + local_1d0[5],
-                                  fVar49 * local_1d0[0] + fVar48 * local_1d0[2] + local_1d0[4]);
-                  }
-                  if (local_220 == <lambda_6f49ef1c5e266dfff6ad3ca7d4dec8df>::<lambda_invoker_cdecl>
-                     ) {
-                    iVar18 = <lambda_6f49ef1c5e266dfff6ad3ca7d4dec8df>::<lambda_invoker_cdecl>();
-                  }
-                  else {
-                    iVar18 = (*local_220)(*(CDrawListBrush **)(this + 0x48),local_288);
-                  }
-                  puVar22 = local_1b0;
-                  puVar27 = local_180;
-                  puVar29 = local_1b8;
-                  puVar30 = local_188;
-                  puVar32 = local_128;
-                  if (iVar18 < 0) {
-                    MilInstrumentationCheckHR_MaybeFailFast
-                              (0x14,(long *)0x0,0,iVar18,0x1bf,(void *)0x0);
-                    detail::
-                    vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>
-                    ::
-                    ~vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>
-                              ((vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>
-                                *)&local_158);
-                    detail::
-                    vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>
-                    ::
-                    ~vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>
-                              ((vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>
-                                *)&local_128);
-                    detail::
-                    vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>
-                    ::
-                    ~vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>
-                              ((vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>
-                                *)&local_188);
-                    detail::
-                    vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>
-                    ::
-                    ~vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>
-                              ((vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>
-                                *)&local_1b8);
-                    return iVar18;
-                  }
-                }
-                else {
-                  lVar21 = *(longlong *)(this + 0x48);
-                  fVar41 = fVar45;
-                  fVar34 = fVar8;
-                  fVar47 = fVar40;
-                  fVar46 = fVar6;
-                  if (bVar14) {
-                    if ((0.5 < fVar8 - fVar6) &&
-                       (8.138021e-05 <= ABS(((fVar3 - fVar4) / (fVar8 - fVar6)) * fVar49 - 1.0))) {
-                      fVar49 = fVar35;
-                      if (*(float *)(lVar21 + 0x20) <= fVar6 && fVar6 != *(float *)(lVar21 + 0x20))
-                      {
-                        fVar49 = 0.5;
-                      }
-                      fVar34 = fVar35;
-                      if (fVar8 < *(float *)(lVar21 + 0x28)) {
-                        fVar34 = 0.5;
-                      }
-                      fVar34 = fVar8 - fVar34;
-                      fVar46 = fVar49 + fVar6;
-                    }
-                    if ((0.5 < fVar45 - fVar40) &&
-                       (8.138021e-05 <= ABS(((fVar5 - fVar7) / (fVar45 - fVar40)) * fVar48 - 1.0)))
-                    {
-                      fVar47 = fVar35;
-                      if (*(float *)(lVar21 + 0x24) <= fVar40 && fVar40 != *(float *)(lVar21 + 0x24)
-                         ) {
-                        fVar47 = 0.5;
-                      }
-                      fVar47 = fVar47 + fVar40;
-                      if (fVar45 < *(float *)(lVar21 + 0x2c)) {
-                        fVar35 = 0.5;
-                      }
-                      fVar41 = fVar45 - fVar35;
-                    }
-                  }
-                  uStack_300 = (undefined1 *)CONCAT44(fVar45,fVar8);
-                  local_308 = CONCAT44(fVar40,fVar6);
-                  local_324 = 0.0;
-                  local_2f8 = 0.0;
-                  local_31c = 0.0;
-                  local_318 = 0.0;
-                  local_2f4 = 0.0;
-                  local_320 = 0.0;
-                  if ((((fVar4 == fVar46) && (fVar7 == fVar47)) && (fVar3 == fVar34)) &&
-                     (fVar5 == fVar41)) {
-                    bVar16 = true;
-                  }
-                  else {
-                    bVar16 = false;
-                  }
-                  if (bVar16) {
-                    local_324 = 0.0;
-                    local_31c = 0.0;
-                    local_318 = 1.0;
-                    local_2f4 = 0.0;
-                    local_320 = 0.0;
-                    local_2f8 = 1.0;
-                  }
-                  else if ((fVar3 - fVar4 != 0.0) || (fVar5 - fVar7 != 0.0)) {
-                    fVar49 = (fVar34 - fVar46) / (fVar3 - fVar4);
-                    fVar48 = (fVar41 - fVar47) / (fVar5 - fVar7);
-                    local_31c = fVar49 * 0.0 + 0.0;
-                    local_324 = fVar48 * 0.0 + 0.0;
-                    local_318 = fVar48 + 0.0;
-                    local_320 = -fVar7 * fVar48 + -fVar4 * 0.0 + fVar47;
-                    local_2f4 = -fVar4 * fVar49 + -fVar7 * 0.0 + fVar46;
-                    local_2f8 = fVar49 + 0.0;
-                  }
-                  local_27c = *(float *)(lVar21 + 0x58);
-                  fVar48 = *(float *)(lVar21 + 0x60);
-                  local_280 = *(float *)(lVar21 + 0x54);
-                  fVar49 = *(float *)(lVar21 + 100);
-                  fVar35 = *(float *)(lVar21 + 0x68);
-                  fVar6 = *(float *)(lVar21 + 0x74);
-                  fVar45 = *(float *)(lVar21 + 0x6c) * 0.0;
-                  local_2d0 = local_280 * local_2f8 + fVar48 * local_324 + fVar45;
-                  fVar8 = *(float *)(lVar21 + 0x5c);
-                  fStack_2bc = fVar6 * 0.0;
-                  local_2c0 = *(float *)(lVar21 + 0x70) * 0.0;
-                  fStack_2cc = local_27c * local_2f8 + fVar49 * local_324 + local_2c0;
-                  fVar47 = fVar8 * local_2f8 + fVar35 * local_324 + fStack_2bc;
-                  fVar45 = local_280 * local_31c + fVar48 * local_318 + fVar45;
-                  local_2c0 = local_27c * local_31c + fVar49 * local_318 + local_2c0;
-                  fStack_2bc = fVar8 * local_31c + fVar35 * local_318 + fStack_2bc;
-                  uStack_2c8 = CONCAT44(fVar45,fVar47);
-                  fVar40 = local_280 * local_2f4 + fVar48 * local_320 + *(float *)(lVar21 + 0x6c);
-                  fVar48 = local_27c * local_2f4 + fVar49 * local_320 + *(float *)(lVar21 + 0x70);
-                  *(float *)(this_02 + 0x54) = local_2d0;
-                  *(float *)(this_02 + 0x58) = fStack_2cc;
-                  *(float *)(this_02 + 0x5c) = fVar47;
-                  *(float *)(this_02 + 0x60) = fVar45;
-                  *(float *)(this_02 + 100) = local_2c0;
-                  *(float *)(this_02 + 0x68) = fStack_2bc;
-                  *(float *)(this_02 + 0x6c) = fVar40;
-                  *(float *)(this_02 + 0x70) = fVar48;
-                  *(float *)(this_02 + 0x74) = fVar8 * local_2f4 + fVar35 * local_320 + fVar6;
-                  this_02[0x34] = (CSurfaceDrawListBrush)0x1;
-                  *(uint *)(this_02 + 0x30) = uVar28;
-                  *(float *)(this_02 + 0x20) = fVar4;
-                  *(float *)(this_02 + 0x24) = fVar7;
-                  *(float *)(this_02 + 0x28) = fVar3;
-                  *(float *)(this_02 + 0x2c) = fVar5;
-                  local_2b8 = CONCAT44(fVar48,fVar40);
-                  if (local_220 == <lambda_6f49ef1c5e266dfff6ad3ca7d4dec8df>::<lambda_invoker_cdecl>
-                     ) {
-                    iVar18 = <lambda_6f49ef1c5e266dfff6ad3ca7d4dec8df>::operator()(0);
-                  }
-                  else {
-                    iVar18 = (*local_220)((CDrawListBrush *)this_02,local_288);
-                  }
-                  puVar22 = local_1b0;
-                  puVar27 = local_180;
-                  puVar29 = local_1b8;
-                  puVar30 = local_188;
-                  puVar32 = local_128;
-                  if (iVar18 < 0) {
-                    MilInstrumentationCheckHR_MaybeFailFast
-                              (0x14,(long *)0x0,0,iVar18,0x18e,(void *)0x0);
-                    detail::
-                    vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>
-                    ::
-                    ~vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>
-                              ((vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>
-                                *)&local_158);
-                    detail::
-                    vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>
-                    ::
-                    ~vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>
-                              ((vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>
-                                *)&local_128);
-                    detail::
-                    vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>
-                    ::
-                    ~vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>
-                              ((vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>
-                                *)&local_188);
-                    detail::
-                    vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>
-                    ::
-                    ~vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>
-                              ((vector_facade<float,detail::buffer_impl<float,6,1,detail::liberal_expansion_policy>_>
-                                *)&local_1b8);
-                    goto LAB_1;
-                  }
-                }
-              }
-            }
-            uVar26 = (ulonglong)((int)uVar26 + 1);
-            fVar48 = local_2f0;
-            fVar49 = local_2ec;
-          }
-        }
-        local_2d4 = local_2d4 + 1;
-      } while( true );
-    }
-  }
-  (*(code *)`void_(__cdecl*&___ptr64___cdecl_gsl::details::get_terminate_handler(void))(void)'::__l2
-            ::handler)();
-  pcVar11 = (code *)swi(3);
-  lVar20 = (*pcVar11)();
-  return lVar20;
+  MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar17,uVar15,(void *)0x0);
+  return lVar17;
 }
 

```


## CBaseExpression::SetOutputValue

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,refcount,length,address,calling,called|
|ratio|0.06|
|i_ratio|0.04|
|m_ratio|0.36|
|b_ratio|0.28|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|SetOutputValue|SetOutputValue|
|fullname|CBaseExpression::SetOutputValue|CBaseExpression::SetOutputValue|
|`refcount`|18|7|
|`length`|2466|512|
|`called`|<details><summary>Expand for full list:<br>API-MS-WIN-CORE-HANDLE-L1-1-0.DLL::CloseHandle<br>API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::CreateEventW<br>API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::SetEvent<br>AnimationHelper::FindAnimatablePropertyInfo<br>CBaseExpression::GetTracingCookie<br>CBaseExpression::LogSetOutputValue<br>CBaseExpression::ResolveTargetNoRef<br>CComponentTransform3D::SetProperty<br>CExpressionValue::CopyFrom<br>CExpressionValue::operator==<br>CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter>::InternalRelease</summary>CPropertySet::GetProperty<br>CPropertySet::SetProperty<br>CResource::GetPropertyImpl<br>CResource::SetPropertyImpl<br>CVisual::GetOpacityInternal<br>CVisual::GetRelativeLayoutSizeInternal<br>CVisual::GetRelativeOffsetInternal<br>CVisual::SetProperty<br>MilInstrumentationCheckHR_MaybeFailFast<br>StringCchPrintfW<br>__security_check_cookie<br>_guard_dispatch_icall$thunk$10345483385596137414<br>gsl::span<AnimationHelper::AnimatedProperty_const*___ptr64_const,-1>::storage_type<gsl::details::extent_type<-1>_>::storage_type<gsl::details::extent_type<-1>_><gsl::details::extent_type<6>_><br>gsl::span<AnimationHelper::AnimatedProperty_const*___ptr64_const,-1>::storage_type<gsl::details::extent_type<-1>_>::storage_type<gsl::details::extent_type<-1>_><gsl::details::extent_type<8>_></details>|<details><summary>Expand for full list:<br>API-MS-WIN-CORE-HANDLE-L1-1-0.DLL::CloseHandle<br>API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::CreateEventW<br>API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::SetEvent<br>CBaseExpression::GetTracingCookie<br>CBaseExpression::LogSetOutputValue<br>CBaseExpression::SetOutputValueOnTarget<br>CExpressionValue::SetValue<br>CExpressionValue::operator==<br>CWeakReference<CInteractionTracker>::GetTargetResource<br>MilInstrumentationCheckHR_MaybeFailFast<br>StringCchPrintfW</summary>__security_check_cookie<br>wil::details::FeatureImpl<__WilFeatureTraits_Feature_3909349690>::__private_IsEnabled</details>|
|`calling`|CKeyframeAnimation::CalculateValueWorker<br>CKeyframeAnimation::ProcessSetBindingBroken<br>CNaturalAnimation::ProcessSetBindingBroken|CBaseExpression::CalculateValue<br>CKeyframeAnimation::CalculateValueWorker<br>CKeyframeAnimation::ProcessSetBindingBroken<br>CNaturalAnimation::ProcessSetBindingBroken|
|paramcount|2|2|
|`address`|18000e040|180154280|
|sig|long __thiscall SetOutputValue(CBaseExpression * this, CExpressionValue * param_1)|long __thiscall SetOutputValue(CBaseExpression * this, CExpressionValue * param_1)|
|sym_type|Function|Function|
|sym_source|IMPORTED|ANALYSIS|
|external|False|False|

### CBaseExpression::SetOutputValue Called Diff


```diff
--- CBaseExpression::SetOutputValue called
+++ CBaseExpression::SetOutputValue called
@@ -4 +3,0 @@
-AnimationHelper::FindAnimatablePropertyInfo
@@ -7,3 +6,2 @@
-CBaseExpression::ResolveTargetNoRef
-CComponentTransform3D::SetProperty
-CExpressionValue::CopyFrom
+CBaseExpression::SetOutputValueOnTarget
+CExpressionValue::SetValue
@@ -11,9 +9 @@
-CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter>::InternalRelease
-CPropertySet::GetProperty
-CPropertySet::SetProperty
-CResource::GetPropertyImpl
-CResource::SetPropertyImpl
-CVisual::GetOpacityInternal
-CVisual::GetRelativeLayoutSizeInternal
-CVisual::GetRelativeOffsetInternal
-CVisual::SetProperty
+CWeakReference<CInteractionTracker>::GetTargetResource
@@ -23,3 +13 @@
-_guard_dispatch_icall$thunk$10345483385596137414
-gsl::span<AnimationHelper::AnimatedProperty_const*___ptr64_const,-1>::storage_type<gsl::details::extent_type<-1>_>::storage_type<gsl::details::extent_type<-1>_><gsl::details::extent_type<6>_>
-gsl::span<AnimationHelper::AnimatedProperty_const*___ptr64_const,-1>::storage_type<gsl::details::extent_type<-1>_>::storage_type<gsl::details::extent_type<-1>_><gsl::details::extent_type<8>_>
+wil::details::FeatureImpl<__WilFeatureTraits_Feature_3909349690>::__private_IsEnabled
```


### CBaseExpression::SetOutputValue Calling Diff


```diff
--- CBaseExpression::SetOutputValue calling
+++ CBaseExpression::SetOutputValue calling
@@ -0,0 +1 @@
+CBaseExpression::CalculateValue
```


### CBaseExpression::SetOutputValue Diff


```diff
--- CBaseExpression::SetOutputValue
+++ CBaseExpression::SetOutputValue
@@ -1,409 +1,71 @@
 
-/* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
-   guard_dispatch_icall */
 /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
 /* protected: long __cdecl CBaseExpression::SetOutputValue(class CExpressionValue const * __ptr64)
    __ptr64 */
 
 long __thiscall CBaseExpression::SetOutputValue(CBaseExpression *this,CExpressionValue *param_1)
 
 {
-  byte bVar1;
-  DCOMPOSITION_EXPRESSION_TYPE DVar2;
-  code *pcVar3;
-  int *piVar4;
-  bool bVar5;
-  char cVar6;
-  int iVar7;
-  long lVar8;
-  CResource *this_00;
-  AnimatedProperty *pAVar9;
+  CExpressionValue *pCVar1;
+  bool bVar2;
+  bool bVar3;
+  uint uVar4;
+  long lVar5;
   HANDLE hEvent;
-  ulonglong uVar10;
-  int iVar11;
-  ulonglong uVar12;
-  CExpressionValue *this_01;
-  CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter> *pCVar13;
-  float fVar14;
-  undefined1 auStackY_168 [32];
-  uint uVar15;
-  undefined1 local_138;
-  float local_130;
-  undefined4 local_12c;
-  undefined4 local_128;
-  undefined4 local_124;
-  undefined4 local_120;
-  undefined8 local_118;
-  ulonglong uStack_110;
-  undefined8 local_108;
-  undefined8 uStack_100;
-  undefined8 local_f8;
-  undefined8 uStack_f0;
-  undefined8 local_e8;
-  undefined8 uStack_e0;
-  CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter> *local_d8;
-  int local_d0;
-  undefined8 local_c8;
-  undefined8 uStack_c0;
-  undefined8 local_b8;
-  undefined8 uStack_b0;
-  undefined8 local_a8;
-  undefined8 uStack_a0;
-  undefined8 local_98;
-  undefined8 uStack_90;
-  CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter> *local_88;
-  DCOMPOSITION_EXPRESSION_TYPE local_80;
-  ulonglong local_48;
+  CInteractionTracker *pCVar6;
+  undefined1 auStackY_d8 [32];
+  WCHAR local_a8 [64];
+  ulonglong local_28;
   
-  local_48 = __security_cookie ^ (ulonglong)auStackY_168;
-  bVar5 = false;
-  if ((*(uint *)(*(longlong *)(this + 0x138) + 4) & 0x40000000) != 0) {
-    bVar5 = CExpressionValue::operator==((CExpressionValue *)(this + 0x50),param_1);
-    bVar5 = !bVar5;
+  local_28 = __security_cookie ^ (ulonglong)auStackY_d8;
+  bVar2 = wil::details::FeatureImpl<__WilFeatureTraits_Feature_3909349690>::__private_IsEnabled
+                    ((FeatureImpl<__WilFeatureTraits_Feature_3909349690> *)
+                     &`private:_static_class_wil::details::FeatureImpl<__WilFeatureTraits_Feature_3909349690>&___ptr64___cdecl_wil::Feature<__WilFeatureTraits_Feature_3909349690>::GetImpl(void)'
+                      ::__l2::impl);
+  if ((bVar2) && (*(int *)(param_1 + 0x48) != *(int *)(this + 0xa0))) {
+    MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,-0x7ff8ffa9,0x22f,(void *)0x0);
+    return -0x7ff8ffa9;
   }
-  this_01 = (CExpressionValue *)(this + 0x50);
-  CExpressionValue::CopyFrom(this_01,param_1);
-  if (bVar5) {
+  bVar2 = false;
+  if (((*(uint *)(*(longlong *)(this + 0x138) + 4) & 0x40000000) != 0) &&
+     (bVar3 = CExpressionValue::operator==((CExpressionValue *)(this + 0x50),param_1), bVar2 = false
+     , !bVar3)) {
+    bVar2 = true;
+  }
+  pCVar1 = param_1 + 0x48;
+  if (*(DCOMPOSITION_EXPRESSION_TYPE *)pCVar1 == 0xb) {
+    param_1 = *(CExpressionValue **)(param_1 + 0x40);
+  }
+  CExpressionValue::SetValue
+            ((CExpressionValue *)(this + 0x50),*(DCOMPOSITION_EXPRESSION_TYPE *)pCVar1,param_1);
+  if (bVar2) {
     LogSetOutputValue(this);
-    uVar15 = GetTracingCookie(this);
-    lVar8 = StringCchPrintfW((ushort *)&local_c8,0x3c,(ushort *)L"DwmExpression_SetValue_%d",
-                             (ulonglong)uVar15);
-    if (lVar8 < 0) {
-      MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar8,0x243,(void *)0x0);
-      return lVar8;
+    uVar4 = GetTracingCookie(this);
+    lVar5 = StringCchPrintfW((ushort *)local_a8,0x3c,(ushort *)L"DwmExpression_SetValue_%d",
+                             (ulonglong)uVar4);
+    if (lVar5 < 0) {
+      MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar5,0x256,(void *)0x0);
+      return lVar5;
     }
-    hEvent = CreateEventW((LPSECURITY_ATTRIBUTES)0x0,1,0,(LPCWSTR)&local_c8);
+    hEvent = CreateEventW((LPSECURITY_ATTRIBUTES)0x0,1,0,local_a8);
     SetEvent(hEvent);
     CloseHandle(hEvent);
   }
-  iVar11 = 0;
-  if (((byte)this[0xe0] & 3) != 3) {
-    return 0;
-  }
-  this_00 = ResolveTargetNoRef(this);
-  if (this_00 == (CResource *)0x0) {
-    MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,-0x7ff8ff8e,599,(void *)0x0);
-    return -0x7ff8ff8e;
-  }
-  uVar15 = *(uint *)(this + 0xbc);
-  lVar8 = -0x7ff8ffa9;
-  pcVar3 = *(code **)(*(longlong *)this_00 + 0x88);
-  local_d8 = (CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter> *)0x0;
-  local_d0 = 0;
-  local_118 = 0;
-  uStack_110 = 0;
-  local_108 = 0;
-  uStack_100 = 0;
-  local_f8 = 0;
-  uStack_f0 = 0;
-  local_e8 = 0;
-  uStack_e0 = 0;
-  if (pcVar3 != CVisual::GetProperty) {
-    if (pcVar3 == CComponentTransform3D::GetProperty) {
-      iVar7 = 0;
-      if (uVar15 == 6) {
-        local_d0 = 0x12;
-        local_118 = (ulonglong)(uint)(*(float *)(this_00 + 0xe8) * 57.295776);
-      }
-      else {
-        gsl::span<AnimationHelper::AnimatedProperty_const*___ptr64_const,-1>::
-        storage_type<gsl::details::extent_type<-1>_>::
-        storage_type<gsl::details::extent_type<_1>_><gsl::details::extent_type<8>_>
-                  ((storage_type<gsl::details::extent_type<_1>_> *)&local_128,
-                   &CComponentTransform3D::k_rgAnimDef);
-        pAVar9 = AnimationHelper::FindAnimatablePropertyInfo
-                           ((span<AnimationHelper::AnimatedProperty_const*___ptr64_const,_1> *)
-                            &local_128,uVar15,0);
-        if (pAVar9 == (AnimatedProperty *)0x0) {
-          uVar15 = 0x78;
-          goto LAB_0;
-        }
-        CResource::GetPropertyImpl(this_00,pAVar9,(CExpressionValue *)&local_118);
-        iVar7 = 0;
-      }
+  if ((((byte)this[0xe0] & 2) != 0) && (((byte)this[0xe0] & 1) != 0)) {
+    if ((*(CWeakReference<CInteractionTracker> **)(this + 0xc0) ==
+         (CWeakReference<CInteractionTracker> *)0x0) ||
+       (pCVar6 = CWeakReference<CInteractionTracker>::GetTargetResource
+                           (*(CWeakReference<CInteractionTracker> **)(this + 0xc0)),
+       pCVar6 == (CInteractionTracker *)0x0)) {
+      MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,-0x7ff8ff8e,0x26a,(void *)0x0);
+      return -0x7ff8ff8e;
     }
-    else if (pcVar3 == CPropertySet::GetProperty) {
-      iVar7 = CPropertySet::GetProperty
-                        ((CPropertySet *)this_00,uVar15,(CExpressionValue *)&local_118);
-    }
-    else {
-      iVar7 = (*pcVar3)();
-    }
-    goto LAB_1;
-  }
-  iVar7 = 0;
-  if (uVar15 == 0x26) {
-    local_d0 = 0x11;
-    local_118 = (ulonglong)((byte)this_00[0x6a] >> 6) & 0xffffffffffffff01;
-    iVar7 = 0;
-    goto LAB_1;
-  }
-  switch(uVar15) {
-  case 0x1a:
-    fVar14 = CVisual::GetOpacityInternal((CVisual *)this_00);
-    local_118 = CONCAT44(local_118._4_4_,fVar14);
-    local_d0 = 0x12;
-    break;
-  case 0x1b:
-    local_d0 = 0x11;
-    local_118 = (ulonglong)((byte)this_00[0x69] >> 6) & 0xffffffffffffff01;
-    break;
-  case 0x1c:
-    local_118 = *(ulonglong *)(this_00 + 0x74);
-    uStack_110 = (ulonglong)*(uint *)(this_00 + 0x7c);
-    local_d0 = 0x34;
-    break;
-  case 0x1d:
-    fVar14 = *(float *)(this_00 + 0x88);
-    local_12c = *(undefined4 *)(this_00 + 0x8c);
-    goto LAB_2;
-  case 0x1e:
-    CVisual::GetRelativeOffsetInternal((CVisual *)this_00);
-    uStack_110 = CONCAT44(uStack_110._4_4_,local_120);
-    local_118 = CONCAT44(local_124,local_128);
-    local_d0 = 0x34;
-    break;
-  case 0x1f:
-    CVisual::GetRelativeLayoutSizeInternal((CVisual *)this_00);
-    fVar14 = local_130;
-LAB_2:
-    local_118 = CONCAT44(local_12c,fVar14);
-    local_d0 = 0x23;
-    break;
-  default:
-    uVar15 = 0x1728;
-LAB_0:
-    MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,-0x7ff8ffa9,uVar15,(void *)0x0);
-    iVar7 = -0x7ff8ffa9;
-  }
-LAB_1:
-  if (iVar7 < 0) {
-    uVar15 = 0x275;
-  }
-  else {
-    piVar4 = *(int **)(this + 200);
-    if ((piVar4 != (int *)0x0) && ((char)piVar4[1] != '\0')) {
-      local_88 = (CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter> *)0x0;
-      local_c8 = 0;
-      uStack_c0 = 0;
-      local_80 = 0;
-      local_b8 = 0;
-      uStack_b0 = 0;
-      local_a8 = 0;
-      uStack_a0 = 0;
-      local_98 = 0;
-      uStack_90 = 0;
-      if (*piVar4 == 1) {
-        if ((0x33 < local_d0 - 0x12U) ||
-           ((0x8000400020001U >> ((ulonglong)(local_d0 - 0x12U) & 0x3f) & 1) == 0)) {
-          uVar15 = 0x77a;
-          goto LAB_3;
-        }
-LAB_4:
-        CExpressionValue::CopyFrom((CExpressionValue *)&local_c8,(CExpressionValue *)&local_118);
-        uVar10 = 0;
-        while( true ) {
-          bVar1 = *(byte *)(piVar4 + 1);
-          if ((uint)bVar1 <= (uint)uVar10) break;
-          if (*piVar4 == 1) {
-            uVar12 = (ulonglong)
-                     (*(byte *)(piVar4 + 2) >> ((bVar1 - (char)uVar10) * '\x02' - 2 & 0x1f) & 3);
-          }
-          else if (*piVar4 == 2) {
-            uVar12 = (ulonglong)
-                     ((uint)(*(ulonglong *)(piVar4 + 2) >>
-                            ((bVar1 - (char)uVar10) * '\x04' - 4 & 0x3f)) & 0xf);
-          }
-          else {
-            uVar12 = 0xffffffff;
-          }
-          if (local_d0 != 0x2a) {
-            switch(local_d0) {
-            case 0x11:
-            case 0x12:
-            case 0x23:
-            case 0x34:
-            case 0x45:
-            case 0x46:
-            case 0x47:
-            case 0x68:
-            case 0x109:
-              goto switchD_1802e2d5c_caseD_11;
-            }
-switchD_1802e2d5c_caseD_b:
-            lVar8 = -0x7fffbffb;
-            uVar15 = 0x7b4;
-            goto LAB_3;
-          }
-switchD_1802e2d5c_caseD_11:
-          if (((uint)(local_d0 >> 4) <= (uint)uVar12) || (0xf < (uint)uVar12))
-          goto switchD_1802e2d5c_caseD_b;
-          *(undefined4 *)((longlong)&local_c8 + uVar12 * 4) = *(undefined4 *)(this_01 + uVar10 * 4);
-          uVar10 = (ulonglong)((uint)uVar10 + 1);
-        }
-        bVar5 = CExpressionValue::operator==
-                          ((CExpressionValue *)&local_c8,(CExpressionValue *)&local_118);
-        if ((bVar5) && (cVar6 = (**(code **)(*(longlong *)this_00 + 0x80))(this_00), cVar6 == '\0'))
-        {
-LAB_5:
-          pCVar13 = local_88;
-          lVar8 = iVar11;
-          if (local_88 != (CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter> *)0x0) {
-            local_88 = (CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter> *)0x0;
-            pcVar3 = *(code **)(*(longlong *)pCVar13 + 0x10);
-            if (pcVar3 == CMILCOMBaseT<ID2D1GeometrySink,ID2D1GeometrySink,CMilObjectDeleter>::
-                          Release) {
-              CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter>::InternalRelease(pCVar13);
-            }
-            else {
-              (*pcVar3)();
-            }
-          }
-          goto LAB_6;
-        }
-        DVar2 = local_80;
-        uVar15 = *(uint *)(this + 0xbc);
-        pcVar3 = *(code **)(*(longlong *)this_00 + 0x60);
-        pCVar13 = (CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter> *)&local_c8;
-        if (local_80 == 0xb) {
-          pCVar13 = local_88;
-        }
-        if (pcVar3 == CComponentTransform2D::SetProperty) {
-          local_130 = 0.0;
-          if ((uVar15 == 5) && (local_80 == 0x12)) {
-            pAVar9 = &CComponentTransform2D::sc_RotationAngle;
-            local_130 = *(float *)pCVar13 * 0.017453292;
-            pCVar13 = (CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter> *)&local_130;
-          }
-          else {
-            gsl::span<AnimationHelper::AnimatedProperty_const*___ptr64_const,-1>::
-            storage_type<gsl::details::extent_type<-1>_>::
-            storage_type<gsl::details::extent_type<_1>_><gsl::details::extent_type<6>_>
-                      ((storage_type<gsl::details::extent_type<_1>_> *)&local_128,
-                       &CComponentTransform2D::k_rgAnimDef,local_138);
-            pAVar9 = AnimationHelper::FindAnimatablePropertyInfo
-                               ((span<AnimationHelper::AnimatedProperty_const*___ptr64_const,_1> *)
-                                &local_128,uVar15,DVar2);
-            if (pAVar9 == (AnimatedProperty *)0x0) {
-              lVar8 = -0x7ff8ffa9;
-              MilInstrumentationCheckHR_MaybeFailFast
-                        (0x14,(long *)0x0,0,-0x7ff8ffa9,0x4a,(void *)0x0);
-              goto LAB_7;
-            }
-          }
-          lVar8 = CResource::SetPropertyImpl(this_00,pAVar9,pCVar13);
-          if (lVar8 < 0) {
-            MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar8,0x46,(void *)0x0);
-          }
-        }
-        else if (pcVar3 == CComponentTransform3D::SetProperty) {
-          lVar8 = CComponentTransform3D::SetProperty
-                            ((CComponentTransform3D *)this_00,uVar15,local_80,pCVar13);
-        }
-        else if (pcVar3 == CVisual::SetProperty) {
-          lVar8 = CVisual::SetProperty((CVisual *)this_00,uVar15,local_80,pCVar13);
-        }
-        else {
-          lVar8 = (*pcVar3)();
-        }
-LAB_7:
-        if (-1 < lVar8) goto LAB_5;
-        uVar15 = 0x28b;
-      }
-      else {
-        if (*piVar4 == 2) {
-          if ((local_d0 == 0x68) || (local_d0 == 0x109)) goto LAB_4;
-          uVar15 = 0x783;
-        }
-        else {
-          lVar8 = -0x7fffbffb;
-          uVar15 = 0x78d;
-        }
-LAB_3:
-        MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar8,uVar15,(void *)0x0);
-        uVar15 = 0x287;
-      }
-      MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar8,uVar15,(void *)0x0);
-      pCVar13 = local_88;
-      if (local_88 != (CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter> *)0x0) {
-        local_88 = (CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter> *)0x0;
-        pcVar3 = *(code **)(*(longlong *)pCVar13 + 0x10);
-        if (pcVar3 == CMILCOMBaseT<ID2D1GeometrySink,ID2D1GeometrySink,CMilObjectDeleter>::Release)
-        {
-          CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter>::InternalRelease(pCVar13);
-        }
-        else {
-          (*pcVar3)();
-        }
-      }
-      goto LAB_6;
-    }
-    bVar5 = CExpressionValue::operator==((CExpressionValue *)&local_118,this_01);
-    if ((bVar5) &&
-       ((cVar6 = (**(code **)(*(longlong *)this + 0x108))(this), cVar6 == '\0' &&
-        (cVar6 = (**(code **)(*(longlong *)this_00 + 0x80))(this_00), lVar8 = iVar11, cVar6 == '\0')
-        ))) goto LAB_6;
-    pcVar3 = *(code **)(*(longlong *)this_00 + 0x60);
-    if (*(int *)(this + 0x98) == 0xb) {
-      this_01 = *(CExpressionValue **)(this + 0x90);
-    }
-    DVar2 = *(DCOMPOSITION_EXPRESSION_TYPE *)(this + 0xa0);
-    uVar15 = *(uint *)(this + 0xbc);
-    if (pcVar3 == CComponentTransform3D::SetProperty) {
-      local_130 = 0.0;
-      if ((uVar15 == 6) && (DVar2 == 0x12)) {
-        pAVar9 = &CComponentTransform3D::sc_RotationAngle;
-        local_130 = *(float *)this_01 * 0.017453292;
-        this_01 = (CExpressionValue *)&local_130;
-LAB_8:
-        iVar7 = CResource::SetPropertyImpl(this_00,pAVar9,this_01);
-        if (-1 < iVar7) goto LAB_9;
-        uVar15 = 0x50;
-      }
-      else {
-        gsl::span<AnimationHelper::AnimatedProperty_const*___ptr64_const,-1>::
-        storage_type<gsl::details::extent_type<-1>_>::
-        storage_type<gsl::details::extent_type<_1>_><gsl::details::extent_type<8>_>
-                  ((storage_type<gsl::details::extent_type<_1>_> *)&local_128,
-                   &CComponentTransform3D::k_rgAnimDef,local_138);
-        pAVar9 = AnimationHelper::FindAnimatablePropertyInfo
-                           ((span<AnimationHelper::AnimatedProperty_const*___ptr64_const,_1> *)
-                            &local_128,uVar15,DVar2);
-        if (pAVar9 != (AnimatedProperty *)0x0) goto LAB_8;
-        iVar7 = -0x7ff8ffa9;
-        uVar15 = 0x54;
-      }
-      MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,iVar7,uVar15,(void *)0x0);
-    }
-    else if (pcVar3 == CPropertySet::SetProperty) {
-      iVar7 = CPropertySet::SetProperty((CPropertySet *)this_00,uVar15,DVar2,this_01);
-    }
-    else {
-      iVar7 = (*pcVar3)();
-    }
-LAB_9:
-    lVar8 = iVar11;
-    if (-1 < iVar7) goto LAB_6;
-    uVar15 = 0x27c;
-  }
-  MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,iVar7,uVar15,(void *)0x0);
-  lVar8 = iVar7;
-LAB_6:
-  pCVar13 = local_d8;
-  if (local_d8 != (CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter> *)0x0) {
-    local_d8 = (CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter> *)0x0;
-    pcVar3 = *(code **)(*(longlong *)pCVar13 + 0x10);
-    if (pcVar3 == CMILCOMBaseT<ID2D1GeometrySink,ID2D1GeometrySink,CMilObjectDeleter>::Release) {
-      CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter>::InternalRelease(pCVar13);
-    }
-    else {
-      (*pcVar3)();
+    lVar5 = SetOutputValueOnTarget(this,(CResource *)pCVar6);
+    if (lVar5 < 0) {
+      MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar5,0x26d,(void *)0x0);
+      return lVar5;
     }
   }
-  if (lVar8 < 0) {
-    MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar8,0x25a,(void *)0x0);
-    iVar11 = lVar8;
-  }
-  return iVar11;
+  return 0;
 }
 

```


## wil::details::FeatureImpl<__WilFeatureTraits_Feature_DisplayBugBundle_2506>::GetCurrentFeatureEnabledState

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.75|
|i_ratio|0.78|
|m_ratio|0.97|
|b_ratio|0.94|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|GetCurrentFeatureEnabledState|GetCurrentFeatureEnabledState|
|fullname|wil::details::FeatureImpl<__WilFeatureTraits_Feature_DisplayBugBundle_2506>::GetCurrentFeatureEnabledState|wil::details::FeatureImpl<__WilFeatureTraits_Feature_DisplayBugBundle_2506>::GetCurrentFeatureEnabledState|
|refcount|2|2|
|`length`|263|253|
|`called`|wil::details::FeatureImpl<__WilFeatureTraits_Feature_DisplayBugBundle_2504>::__private_IsEnabled<br>wil::details::FeatureImpl<__WilFeatureTraits_Feature_GatePerf>::__private_IsEnabled<br>wil::details::WilApi_GetFeatureEnabledState|wil::details::FeatureImpl<__WilFeatureTraits_Feature_DisplayBugBundle_2504>::__private_IsEnabled<br>wil::details::FeatureImpl<__WilFeatureTraits_Feature_GatePerf>::ReportUsage<br>wil::details::WilApi_GetFeatureEnabledState|
|calling|wil::details::FeatureImpl<__WilFeatureTraits_Feature_DisplayBugBundle_2506>::GetCachedFeatureEnabledState|wil::details::FeatureImpl<__WilFeatureTraits_Feature_DisplayBugBundle_2506>::GetCachedFeatureEnabledState|
|paramcount|2|2|
|`address`|18026e810|18026cbdc|
|sig|wil_details_FeatureStateCache __thiscall GetCurrentFeatureEnabledState(FeatureImpl<__WilFeatureTraits_Feature_DisplayBugBundle_2506> * this, int * param_1)|wil_details_FeatureStateCache __thiscall GetCurrentFeatureEnabledState(FeatureImpl<__WilFeatureTraits_Feature_DisplayBugBundle_2506> * this, int * param_1)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### wil::details::FeatureImpl<__WilFeatureTraits_Feature_DisplayBugBundle_2506>::GetCurrentFeatureEnabledState Called Diff


```diff
--- wil::details::FeatureImpl<__WilFeatureTraits_Feature_DisplayBugBundle_2506>::GetCurrentFeatureEnabledState called
+++ wil::details::FeatureImpl<__WilFeatureTraits_Feature_DisplayBugBundle_2506>::GetCurrentFeatureEnabledState called
@@ -2 +2 @@
-wil::details::FeatureImpl<__WilFeatureTraits_Feature_GatePerf>::__private_IsEnabled
+wil::details::FeatureImpl<__WilFeatureTraits_Feature_GatePerf>::ReportUsage
```


### wil::details::FeatureImpl<__WilFeatureTraits_Feature_DisplayBugBundle_2506>::GetCurrentFeatureEnabledState Diff


```diff
--- wil::details::FeatureImpl<__WilFeatureTraits_Feature_DisplayBugBundle_2506>::GetCurrentFeatureEnabledState
+++ wil::details::FeatureImpl<__WilFeatureTraits_Feature_DisplayBugBundle_2506>::GetCurrentFeatureEnabledState
@@ -1,72 +1,66 @@
 
 /* private: union wil_details_FeatureStateCache __cdecl wil::details::FeatureImpl<struct
    __WilFeatureTraits_Feature_DisplayBugBundle_2506>::GetCurrentFeatureEnabledState(int * __ptr64)
    __ptr64 */
 
 int * __thiscall
 wil::details::FeatureImpl<__WilFeatureTraits_Feature_DisplayBugBundle_2506>::
 GetCurrentFeatureEnabledState
           (FeatureImpl<__WilFeatureTraits_Feature_DisplayBugBundle_2506> *this,int *param_1)
 
 {
   bool bVar1;
   bool bVar2;
   FEATURE_ENABLED_STATE FVar3;
   ReportingKind RVar4;
   ReportingKind RVar5;
   uint uVar6;
   int *in_R8;
+  FEATURE_ENABLED_STATE FVar7;
   
   FVar3 = WilApi_GetFeatureEnabledState(0x34e193a,3,in_R8);
   param_1[0] = 0;
   param_1[1] = 0;
+  FVar7 = FVar3 & 0xffffff3f;
   RVar5 = -(uint)((FVar3 & 0x40) != 0) & 0x800 | -(uint)((FVar3 & 0x80) != 0) & 0x400 |
           (FVar3 & 3) << 7;
   *param_1 = RVar5;
-  if ((FVar3 & 0xffffff3f) == 0) {
+  if (FVar7 == 0) {
     RVar5 = RVar5 | 0x40;
   }
   else {
     RVar4 = 0;
-    if ((FVar3 & 0xffffff3f) == 2) {
+    if (FVar7 == 2) {
       RVar4 = 0x40;
     }
     RVar5 = RVar5 | RVar4;
   }
   *param_1 = RVar5;
   bVar2 = false;
   uVar6 = 1;
   if ((RVar5 & 0xc00) == 0xc00) {
     bVar1 = true;
   }
   else {
     bVar1 = false;
     if ((RVar5 & 0x40) == 0) goto LAB_0;
   }
-  bVar2 = FeatureImpl<__WilFeatureTraits_Feature_GatePerf>::__private_IsEnabled
-                    ((FeatureImpl<__WilFeatureTraits_Feature_GatePerf> *)
-                     &`private:_static_class_wil::details::FeatureImpl<__WilFeatureTraits_Feature_GatePerf>&___ptr64___cdecl_wil::Feature<__WilFeatureTraits_Feature_GatePerf>::GetImpl(void)'
+  FeatureImpl<__WilFeatureTraits_Feature_GatePerf>::ReportUsage
+            ((FeatureImpl<__WilFeatureTraits_Feature_GatePerf> *)
+             &`private:_static_class_wil::details::FeatureImpl<__WilFeatureTraits_Feature_GatePerf>&___ptr64___cdecl_wil::Feature<__WilFeatureTraits_Feature_GatePerf>::GetImpl(void)'
+              ::__l2::impl,SUB41(RVar5,0),0xc00,(ulonglong)FVar7);
+  bVar2 = FeatureImpl<__WilFeatureTraits_Feature_DisplayBugBundle_2504>::__private_IsEnabled
+                    ((FeatureImpl<__WilFeatureTraits_Feature_DisplayBugBundle_2504> *)
+                     &`private:_static_class_wil::details::FeatureImpl<__WilFeatureTraits_Feature_DisplayBugBundle_2504>&___ptr64___cdecl_wil::Feature<__WilFeatureTraits_Feature_DisplayBugBundle_2504>::GetImpl(void)'
                       ::__l2::impl,RVar5);
-  if (bVar2) {
-    bVar2 = FeatureImpl<__WilFeatureTraits_Feature_DisplayBugBundle_2504>::__private_IsEnabled
-                      ((FeatureImpl<__WilFeatureTraits_Feature_DisplayBugBundle_2504> *)
-                       &`private:_static_class_wil::details::FeatureImpl<__WilFeatureTraits_Feature_DisplayBugBundle_2504>&___ptr64___cdecl_wil::Feature<__WilFeatureTraits_Feature_DisplayBugBundle_2504>::GetImpl(void)'
-                        ::__l2::impl,RVar5);
-    if (!bVar2) goto LAB_1;
-    bVar2 = true;
-  }
-  else {
-LAB_1:
-    bVar2 = false;
-  }
   if ((bVar1) && (!bVar2)) {
     *param_1 = *param_1 & 0xfffffbff;
   }
 LAB_0:
-  if (((*param_1 & 0x40U) == 0) || (!bVar2)) {
+  if (((*param_1 & 0x40U) == 0) || (bVar2 == false)) {
     uVar6 = 0;
   }
   *param_1 = *param_1 & 0xfffffffeU | uVar6;
   return param_1;
 }
 

```


## CBlurredWallpaperBackdropBrush::IsOfType

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,length,address|
|ratio|0.86|
|i_ratio|0.44|
|m_ratio|1.0|
|b_ratio|0.56|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|IsOfType|IsOfType|
|fullname|CBlurredWallpaperBackdropBrush::IsOfType|CBlurredWallpaperBackdropBrush::IsOfType|
|refcount|4|4|
|`length`|27|21|
|called|||
|calling|CBrushRenderingGraph::GatherEffectInputs|CBrushRenderingGraph::GatherEffectInputs|
|paramcount|2|2|
|`address`|180209840|1802067e0|
|sig|bool __thiscall IsOfType(CBlurredWallpaperBackdropBrush * this, MIL_RESOURCE_TYPE param_1)|bool __thiscall IsOfType(CBlurredWallpaperBackdropBrush * this, MIL_RESOURCE_TYPE param_1)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### CBlurredWallpaperBackdropBrush::IsOfType Diff


```diff
--- CBlurredWallpaperBackdropBrush::IsOfType
+++ CBlurredWallpaperBackdropBrush::IsOfType
@@ -1,15 +1,15 @@
 
 /* public: virtual bool __cdecl CBlurredWallpaperBackdropBrush::IsOfType(enum
    MIL_RESOURCE_TYPE)const __ptr64 */
 
 bool __thiscall
 CBlurredWallpaperBackdropBrush::IsOfType
           (CBlurredWallpaperBackdropBrush *this,MIL_RESOURCE_TYPE param_1)
 
 {
-  if ((param_1 < 0x2f) && ((0x400000028000U >> ((ulonglong)param_1 & 0x3f) & 1) != 0)) {
+  if (((param_1 - 0xf & 0xffffffdd) == 0) && (param_1 != 0x31)) {
     return true;
   }
   return false;
 }
 

```


## CCursorVisual::ProcessStateChanges

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,length,address,calling|
|ratio|0.64|
|i_ratio|0.36|
|m_ratio|0.99|
|b_ratio|0.84|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|ProcessStateChanges|ProcessStateChanges|
|fullname|CCursorVisual::ProcessStateChanges|CCursorVisual::ProcessStateChanges|
|refcount|2|2|
|`length`|128|119|
|called|CCursorState::ProcessStateChanges<br>CVisual::PropagateFlags|CCursorState::ProcessStateChanges<br>CVisual::PropagateFlags|
|`calling`|FUN_1802f3fee|FUN_1802f426a|
|paramcount|2|2|
|`address`|1802944bc|1802933dc|
|sig|void __thiscall ProcessStateChanges(CCursorVisual * this, __uint64 param_1)|void __thiscall ProcessStateChanges(CCursorVisual * this, __uint64 param_1)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### CCursorVisual::ProcessStateChanges Calling Diff


```diff
--- CCursorVisual::ProcessStateChanges calling
+++ CCursorVisual::ProcessStateChanges calling
@@ -1 +1 @@
-FUN_1802f3fee
+FUN_1802f426a
```


### CCursorVisual::ProcessStateChanges Diff


```diff
--- CCursorVisual::ProcessStateChanges
+++ CCursorVisual::ProcessStateChanges
@@ -1,31 +1,29 @@
 
 /* public: void __cdecl CCursorVisual::ProcessStateChanges(unsigned __int64) __ptr64 */
 
 void __thiscall CCursorVisual::ProcessStateChanges(CCursorVisual *this,__uint64 param_1)
 
 {
   CCursorState *this_00;
   bool bVar1;
   bool bVar2;
   CCursorVisual CVar3;
   
+  CVar3 = (CCursorVisual)0x0;
   this_00 = *(CCursorState **)(this + 0x2c0);
-  CVar3 = (CCursorVisual)0x1;
-  if ((this_00[0x70] == (CCursorState)0x0) && (*(longlong *)(this_00 + 0x108) == 0)) {
-    bVar1 = false;
-  }
-  else {
+  bVar1 = false;
+  if ((this_00[0x70] != (CCursorState)0x0) || (*(longlong *)(this_00 + 0x108) != 0)) {
     bVar1 = true;
   }
   bVar2 = CCursorState::ProcessStateChanges(this_00,param_1);
   if (bVar2) {
     CVisual::PropagateFlags((CVisual *)this,0x15);
-    if (((bVar1) || (*(char *)(*(longlong *)(this + 0x2c0) + 0x70) != '\0')) ||
-       (*(longlong *)(*(longlong *)(this + 0x2c0) + 0x108) != 0)) {
-      CVar3 = (CCursorVisual)0x0;
-    }
-    this[0x2e9] = CVar3;
   }
+  if (((bVar1) || (*(char *)(*(longlong *)(this + 0x2c0) + 0x70) != '\0')) ||
+     (*(longlong *)(*(longlong *)(this + 0x2c0) + 0x108) != 0)) {
+    CVar3 = (CCursorVisual)0x1;
+  }
+  this[0x2e9] = CVar3;
   return;
 }
 

```


## CCursorVisual::HasNonEmptyContent

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.82|
|i_ratio|0.51|
|m_ratio|0.91|
|b_ratio|0.86|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|HasNonEmptyContent|HasNonEmptyContent|
|fullname|CCursorVisual::HasNonEmptyContent|CCursorVisual::HasNonEmptyContent|
|refcount|3|3|
|`length`|48|54|
|`called`|CVisual::HasNonEmptyContent|CCursorState::HasVisibleShape<br>CVisual::HasNonEmptyContent|
|calling|||
|paramcount|1|1|
|`address`|180294360|180293230|
|sig|bool __thiscall HasNonEmptyContent(CCursorVisual * this)|bool __thiscall HasNonEmptyContent(CCursorVisual * this)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### CCursorVisual::HasNonEmptyContent Called Diff


```diff
--- CCursorVisual::HasNonEmptyContent called
+++ CCursorVisual::HasNonEmptyContent called
@@ -0,0 +1 @@
+CCursorState::HasVisibleShape
```


### CCursorVisual::HasNonEmptyContent Diff


```diff
--- CCursorVisual::HasNonEmptyContent
+++ CCursorVisual::HasNonEmptyContent
@@ -1,16 +1,16 @@
 
 /* public: virtual bool __cdecl CCursorVisual::HasNonEmptyContent(void)const __ptr64 */
 
 bool __thiscall CCursorVisual::HasNonEmptyContent(CCursorVisual *this)
 
 {
   bool bVar1;
   
-  if (((*(longlong *)(this + 0x2c0) == 0) ||
-      (*(longlong *)(*(longlong *)(this + 0x2c0) + 0xb0) == 0)) &&
+  if (((*(CCursorState **)(this + 0x2c0) == (CCursorState *)0x0) ||
+      (bVar1 = CCursorState::HasVisibleShape(*(CCursorState **)(this + 0x2c0)), !bVar1)) &&
      (bVar1 = CVisual::HasNonEmptyContent((CVisual *)this), !bVar1)) {
     return false;
   }
   return true;
 }
 

```


## CCursorState::FindMonitorData

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,length,address,calling|
|ratio|0.93|
|i_ratio|0.67|
|m_ratio|1.0|
|b_ratio|0.94|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|FindMonitorData|FindMonitorData|
|fullname|CCursorState::FindMonitorData|CCursorState::FindMonitorData|
|refcount|2|2|
|`length`|54|56|
|called|||
|`calling`|CCursorState::DisableHardwareCursor<br>CCursorState::TryEnableHardwareCursor|CCursorState::EnsureMonitorData<br>CCursorVisual::RemoveMonitorData|
|paramcount|3|3|
|`address`|1802b55e8|1802b6250|
|sig|_Vector_iterator<std::_Vector_val<std::_Simple_types<CCursorState::MonitorData>_>_> __thiscall FindMonitorData(CCursorState * this, _LUID param_1, uint param_2)|_Vector_iterator<std::_Vector_val<std::_Simple_types<CCursorState::MonitorData>_>_> __thiscall FindMonitorData(CCursorState * this, _LUID param_1, uint param_2)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### CCursorState::FindMonitorData Calling Diff


```diff
--- CCursorState::FindMonitorData calling
+++ CCursorState::FindMonitorData calling
@@ -1,2 +1,2 @@
-CCursorState::DisableHardwareCursor
-CCursorState::TryEnableHardwareCursor
+CCursorState::EnsureMonitorData
+CCursorVisual::RemoveMonitorData
```


### CCursorState::FindMonitorData Diff


```diff
--- CCursorState::FindMonitorData
+++ CCursorState::FindMonitorData
@@ -1,21 +1,21 @@
 
-/* private: class std::_Vector_iterator<class std::_Vector_val<struct std::_Simple_types<struct
+/* private: class std::_Vector_iterator<class std::_Vector_val<struct std::_Simple_types<class
    CCursorState::MonitorData> > > __cdecl CCursorState::FindMonitorData(struct _LUID,unsigned int)
    __ptr64 */
 
 _LUID __thiscall CCursorState::FindMonitorData(CCursorState *this,_LUID param_1,uint param_2)
 
 {
   uint *puVar1;
   uint in_register_00000084;
   uint in_R9D;
   
   for (puVar1 = *(uint **)(this + 0x58);
       (puVar1 != *(uint **)(this + 0x60) &&
       (((*puVar1 != param_2 || (puVar1[1] != in_register_00000084)) || (puVar1[2] != in_R9D))));
-      puVar1 = puVar1 + 0x20) {
+      puVar1 = puVar1 + 0x28) {
   }
   *(uint **)param_1 = puVar1;
   return param_1;
 }
 

```


## CCursorVisual::GetContentBounds

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.93|
|i_ratio|0.69|
|m_ratio|0.99|
|b_ratio|0.94|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|GetContentBounds|GetContentBounds|
|fullname|CCursorVisual::GetContentBounds|CCursorVisual::GetContentBounds|
|refcount|3|3|
|`length`|1117|1125|
|`called`|<details><summary>Expand for full list:<br>CMILMatrix::Invert<br>CMILMatrix::Is2DAxisAlignedPreserving<br>CMILMatrix::Transform2DBoundsHelper<1><br>CMILMatrix::Transform3DBoundsHelper<0><br>CRegion::AddRectangle<br>CVisual::GetContentBounds<br>CVisual::GetDesktopTree<br>CVisual::GetRootTransform<br>CVisual::GetWorldTransform<br>Contains<br>FastRegion::CRegion::BeginIterator</summary>FastRegion::CRegion::FreeMemory<br>FastRegion::CRegion::GetBoundingRect<br>FastRegion::Internal::CRgnData::StepIterator<br>PixelAlign<br>TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::IsEmpty<br>TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::UnionUnsafe<br>__security_check_cookie<br>_guard_dispatch_icall$thunk$10345483385596137414<br>roundf<br>std::vector<TMil3DRect<float,TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,D3D_RECT_F,MilPointAndSizeF,RectUniqueness::NotNeeded>,std::allocator<TMil3DRect<float,TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,D3D_RECT_F,MilPointAndSizeF,RectUniqueness::NotNeeded>_>_>::_Emplace_reallocate<TMil3DRect<float,TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,D3D_RECT_F,MilPointAndSizeF,RectUniqueness::NotNeeded>&___ptr64><br>wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy><br>wil::details::in1diag3::Return_Hr</details>|<details><summary>Expand for full list:<br>CCursorState::GetSnappedShapeRect<br>CCursorState::HasVisibleShape<br>CMILMatrix::Invert<br>CMILMatrix::Is2DAxisAlignedPreserving<br>CMILMatrix::Transform2DBoundsHelper<1><br>CMILMatrix::Transform3DBoundsHelper<0><br>CRegion::AddRectangle<br>CVisual::GetContentBounds<br>CVisual::GetDesktopTree<br>CVisual::GetRootTransform<br>CVisual::GetWorldTransform</summary>Contains<br>FastRegion::CRegion::BeginIterator<br>FastRegion::CRegion::FreeMemory<br>FastRegion::CRegion::GetBoundingRect<br>FastRegion::Internal::CRgnData::StepIterator<br>PixelAlign<br>TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::IsEmpty<br>TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::UnionUnsafe<br>__security_check_cookie<br>_guard_dispatch_icall$thunk$10345483385596137414<br>roundf<br>std::vector<TMil3DRect<float,TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,D3D_RECT_F,MilPointAndSizeF,RectUniqueness::NotNeeded>,std::allocator<TMil3DRect<float,TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,D3D_RECT_F,MilPointAndSizeF,RectUniqueness::NotNeeded>_>_>::_Emplace_reallocate<TMil3DRect<float,TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,D3D_RECT_F,MilPointAndSizeF,RectUniqueness::NotNeeded>&___ptr64><br>wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy><br>wil::details::in1diag3::Return_Hr</details>|
|calling|||
|paramcount|2|2|
|`address`|180293de0|180292ba0|
|sig|long __thiscall GetContentBounds(CCursorVisual * this, TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> * param_1)|long __thiscall GetContentBounds(CCursorVisual * this, TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> * param_1)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### CCursorVisual::GetContentBounds Called Diff


```diff
--- CCursorVisual::GetContentBounds called
+++ CCursorVisual::GetContentBounds called
@@ -0,0 +1,2 @@
+CCursorState::GetSnappedShapeRect
+CCursorState::HasVisibleShape
```


### CCursorVisual::GetContentBounds Diff


```diff
--- CCursorVisual::GetContentBounds
+++ CCursorVisual::GetContentBounds
@@ -1,207 +1,211 @@
 
 /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
 /* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
    guard_dispatch_icall */
 /* public: virtual long __cdecl CCursorVisual::GetContentBounds(class TMilRect_<float,struct
    D2D_RECT_F,struct D3D_RECT_F,struct D2D_POINTANDSIZE_F,struct RectUniqueness::NotNeeded> *
    __ptr64) __ptr64 */
 
 long __thiscall
 CCursorVisual::GetContentBounds
           (CCursorVisual *this,
           TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
           *param_1)
 
 {
   vector<TMil3DRect<float,TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,D3D_RECT_F,MilPointAndSizeF,RectUniqueness::NotNeeded>,std::allocator<TMil3DRect<float,TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,D3D_RECT_F,MilPointAndSizeF,RectUniqueness::NotNeeded>_>_>
   *this_00;
   TMil3DRect<float,class_TMilRect_<float,struct_D2D_RECT_F,struct_D3D_RECT_F,struct_D2D_POINTANDSIZE_F,struct_RectUniqueness::NotNeeded>,struct_D3D_RECT_F,struct_MilPointAndSizeF,struct_RectUniqueness::NotNeeded>
   *pTVar1;
   bool bVar2;
   long lVar3;
   int iVar4;
   tagRECT *ptVar5;
   CDesktopTree *pCVar6;
   longlong lVar7;
-  CMILMatrix *this_01;
+  CCursorState *this_01;
+  CMILMatrix *this_02;
   undefined8 *puVar8;
   undefined8 *puVar9;
   longlong lVar10;
   float fVar11;
   float fVar12;
   void *unaff_retaddr;
   undefined1 auStackY_1a8 [32];
   undefined8 local_178;
   undefined8 uStack_170;
   longlong *local_168 [2];
   CMILMatrix local_158 [8];
   int *local_150;
   int *local_148;
   longlong local_140;
   int local_138;
   undefined4 local_118;
   CMILMatrix local_108 [64];
   undefined4 local_c8;
   tagRECT local_b8;
   undefined4 local_a8;
   undefined4 uStack_a4;
   int *local_98;
   int local_90 [18];
   ulonglong local_48;
   
   local_48 = __security_cookie ^ (ulonglong)auStackY_1a8;
   lVar3 = CVisual::GetContentBounds((CVisual *)this,param_1);
   if (lVar3 < 0) {
     wil::details::in1diag3::Return_Hr
-              (unaff_retaddr,0x92,
+              (unaff_retaddr,0x91,
                "onecoreuap\\windows\\dwm\\dwmcore\\resources\\global\\cursorvisual.cpp",lVar3);
     return lVar3;
   }
   this_00 = (vector<TMil3DRect<float,TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,D3D_RECT_F,MilPointAndSizeF,RectUniqueness::NotNeeded>,std::allocator<TMil3DRect<float,TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,D3D_RECT_F,MilPointAndSizeF,RectUniqueness::NotNeeded>_>_>
              *)(this + 0x2d0);
   if (*(longlong *)this_00 != *(longlong *)(this + 0x2d8)) {
     *(longlong *)(this + 0x2d8) = *(longlong *)this_00;
   }
-  if (*(longlong *)(this + 0x2c0) == 0) {
+  this_01 = *(CCursorState **)(this + 0x2c0);
+  if (this_01 == (CCursorState *)0x0) {
     return 0;
   }
   local_90[0] = 0;
   local_98 = local_90;
-  if (*(longlong *)(*(longlong *)(this + 0x2c0) + 0xb0) != 0) {
-    ptVar5 = (tagRECT *)PixelAlign((D2D_RECT_F *)&local_b8);
+  bVar2 = CCursorState::HasVisibleShape(this_01);
+  if (bVar2) {
+    CCursorState::GetSnappedShapeRect(this_01);
+    ptVar5 = (tagRECT *)PixelAlign((D2D_RECT_F *)&local_178);
     CRegion::AddRectangle((CRegion *)&local_98,ptVar5);
     if (*(char *)(*(longlong *)(this + 0x2c0) + 0x70) != '\0') {
       local_118 = 0;
       local_178 = 0;
       uStack_170 = 0;
       pCVar6 = CVisual::GetDesktopTree((CVisual *)this);
       lVar3 = CVisual::GetWorldTransform
                         ((CVisual *)this,(CVisualTree *)pCVar6,1,local_158,(bool *)0x0,
                          (CMILMatrix *)0x0);
       if (((lVar3 < 0) || (bVar2 = CMILMatrix::Is2DAxisAlignedPreserving(local_158), !bVar2)) ||
          (bVar2 = CMILMatrix::Invert(local_158), !bVar2)) {
         *(undefined8 *)param_1 = 0xff7fffffff7fffff;
         *(undefined8 *)(param_1 + 8) = 0x7f7fffff7f7fffff;
         goto LAB_0;
       }
       lVar10 = *(longlong *)(this + 0x2c0);
       puVar9 = *(undefined8 **)(*(longlong *)(*(longlong *)(this + 0x18) + 0x268) + 0x20);
       fVar11 = 1.0;
       for (puVar8 = *(undefined8 **)(*(longlong *)(*(longlong *)(this + 0x18) + 0x268) + 0x18);
           puVar8 != puVar9; puVar8 = puVar8 + 1) {
         local_168[0] = (longlong *)0x0;
         iVar4 = (*(code *)**(undefined8 **)*puVar8)
                           ((undefined8 *)*puVar8,&_GUID_8ddf9ce7_e3f9_4bcf_983c_9c1b1b407c97,
                            local_168);
         fVar12 = fVar11;
         if (-1 < iVar4) {
           lVar7 = (**(code **)(*local_168[0] + 0x100))();
           local_b8._0_8_ = *(undefined8 *)(lVar7 + 8);
           local_b8._8_8_ = *(undefined8 *)(lVar7 + 0x10);
           CMILMatrix::Transform2DBoundsHelper<1>
                     (local_158,(D2D_RECT_F *)&local_b8,(D2D_RECT_F *)&local_b8);
           bVar2 = Contains((D2D_RECT_F *)&local_b8,(D2D_POINT_2F *)(lVar10 + 0xd4));
           if (bVar2) {
             TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::UnionUnsafe
                       ((TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded> *)&local_178
                        ,(TMilRect<float,struct_D2D_RECT_F,struct_D3D_RECT_F,struct_RectUniqueness::NotNeeded>
                          *)&local_b8);
             lVar7 = (**(code **)(*local_168[0] + 0x100))();
             fVar12 = *(float *)(lVar7 + 4);
             if (*(float *)(lVar7 + 4) <= fVar11) {
               fVar12 = fVar11;
             }
           }
         }
         wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::
         ~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>
                   ((com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy> *)local_168);
         fVar11 = fVar12;
       }
       bVar2 = TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::IsEmpty
                         ((TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded> *)
                          &local_178);
       if (!bVar2) {
         fVar11 = (float)roundf();
         local_b8.top = (LONG)(*(float *)(lVar10 + 0xd8) - fVar11);
         local_b8.left = (LONG)local_178;
         local_b8.bottom = (LONG)(*(float *)(lVar10 + 0xd8) + fVar11);
         local_b8.right = (LONG)uStack_170;
         ptVar5 = (tagRECT *)PixelAlign((D2D_RECT_F *)local_168);
         CRegion::AddRectangle((CRegion *)&local_98,ptVar5);
         local_b8.top = local_178._4_4_;
         local_b8.left = (LONG)(*(float *)(lVar10 + 0xd4) - fVar11);
         local_b8.bottom = (LONG)((ulonglong)uStack_170 >> 0x20);
         local_b8.right = (LONG)(*(float *)(lVar10 + 0xd4) + fVar11);
         ptVar5 = (tagRECT *)PixelAlign((D2D_RECT_F *)&local_178);
         CRegion::AddRectangle((CRegion *)&local_98,ptVar5);
       }
     }
   }
   puVar8 = *(undefined8 **)(*(longlong *)(this + 0x2c0) + 0x100);
   for (puVar9 = (undefined8 *)*puVar8; puVar9 != puVar8; puVar9 = (undefined8 *)*puVar9) {
     ptVar5 = (tagRECT *)PixelAlign((D2D_RECT_F *)&local_b8);
     CRegion::AddRectangle((CRegion *)&local_98,ptVar5);
   }
   if (*local_98 != 0) {
     local_b8.left = 0;
     local_b8.top = 0;
     local_b8.right = 0;
     local_b8.bottom = 0;
     FastRegion::CRegion::GetBoundingRect((CRegion *)&local_98,&local_b8);
     lVar10 = 0;
     do {
       *(float *)((longlong)&local_178 + lVar10) = (float)*(int *)((longlong)&local_b8.left + lVar10)
       ;
       lVar10 = lVar10 + 4;
     } while (lVar10 < 0x10);
     TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::UnionUnsafe
               ((TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded> *)param_1,
                (TMilRect<float,struct_D2D_RECT_F,struct_D3D_RECT_F,struct_RectUniqueness::NotNeeded>
                 *)&local_178);
     local_c8 = 0;
     bVar2 = CVisual::GetRootTransform((CVisual *)this,local_108,true,false);
     FastRegion::CRegion::BeginIterator((CRegion *)&local_98);
     while (local_148 < local_150) {
-      this_01 = (CMILMatrix *)(longlong)(local_138 * 2);
+      this_02 = (CMILMatrix *)(longlong)(local_138 * 2);
       local_a8 = 0;
       uStack_a4 = 0;
       local_b8.top = (LONG)(float)*local_148;
-      local_b8.left = (LONG)(float)*(int *)(local_140 + (longlong)this_01 * 4);
+      local_b8.left = (LONG)(float)*(int *)(local_140 + (longlong)this_02 * 4);
       local_b8.bottom = (LONG)(float)local_148[2];
-      local_b8.right = (LONG)(float)*(int *)(local_140 + 4 + (longlong)this_01 * 4);
+      local_b8.right = (LONG)(float)*(int *)(local_140 + 4 + (longlong)this_02 * 4);
       if (bVar2) {
-        this_01 = local_108;
+        this_02 = local_108;
         CMILMatrix::Transform3DBoundsHelper<0>
-                  (this_01,(TMil3DRect<float,TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,D3D_RECT_F,MilPointAndSizeF,RectUniqueness::NotNeeded>
+                  (this_02,(TMil3DRect<float,TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,D3D_RECT_F,MilPointAndSizeF,RectUniqueness::NotNeeded>
                             *)&local_b8,
                    (TMil3DRect<float,class_TMilRect_<float,struct_D2D_RECT_F,struct_D3D_RECT_F,struct_D2D_POINTANDSIZE_F,struct_RectUniqueness::NotNeeded>,struct_D3D_RECT_F,struct_MilPointAndSizeF,struct_RectUniqueness::NotNeeded>
                     *)&local_b8);
       }
       pTVar1 = *(TMil3DRect<float,class_TMilRect_<float,struct_D2D_RECT_F,struct_D3D_RECT_F,struct_D2D_POINTANDSIZE_F,struct_RectUniqueness::NotNeeded>,struct_D3D_RECT_F,struct_MilPointAndSizeF,struct_RectUniqueness::NotNeeded>
                  **)(this + 0x2d8);
       if (pTVar1 == *(TMil3DRect<float,class_TMilRect_<float,struct_D2D_RECT_F,struct_D3D_RECT_F,struct_D2D_POINTANDSIZE_F,struct_RectUniqueness::NotNeeded>,struct_D3D_RECT_F,struct_MilPointAndSizeF,struct_RectUniqueness::NotNeeded>
                       **)(this + 0x2e0)) {
-        this_01 = (CMILMatrix *)this_00;
+        this_02 = (CMILMatrix *)this_00;
         std::
         vector<TMil3DRect<float,TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,D3D_RECT_F,MilPointAndSizeF,RectUniqueness::NotNeeded>,std::allocator<TMil3DRect<float,TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,D3D_RECT_F,MilPointAndSizeF,RectUniqueness::NotNeeded>_>_>
         ::
         _Emplace_reallocate<TMil3DRect<float,TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,D3D_RECT_F,MilPointAndSizeF,RectUniqueness::NotNeeded>&___ptr64>
                   (this_00,pTVar1,
                    (TMil3DRect<float,class_TMilRect_<float,struct_D2D_RECT_F,struct_D3D_RECT_F,struct_D2D_POINTANDSIZE_F,struct_RectUniqueness::NotNeeded>,struct_D3D_RECT_F,struct_MilPointAndSizeF,struct_RectUniqueness::NotNeeded>
                     *)&local_b8);
       }
       else {
         *(undefined8 *)pTVar1 = local_b8._0_8_;
         *(undefined8 *)(pTVar1 + 8) = local_b8._8_8_;
         *(ulonglong *)(pTVar1 + 0x10) = CONCAT44(uStack_a4,local_a8);
         *(longlong *)(this + 0x2d8) = *(longlong *)(this + 0x2d8) + 0x18;
       }
-      FastRegion::Internal::CRgnData::StepIterator((CRgnData *)this_01,(Iterator *)local_158);
+      FastRegion::Internal::CRgnData::StepIterator((CRgnData *)this_02,(Iterator *)local_158);
     }
   }
 LAB_0:
   FastRegion::CRegion::FreeMemory((CRegion *)&local_98);
   return 0;
 }
 

```


## std::vector<std::shared_ptr<CCursorState::ShapeData>,std::allocator<std::shared_ptr<CCursorState::ShapeData>_>_>::_Emplace_reallocate<std::shared_ptr<CCursorState::ShapeData>&___ptr64>

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,length,sig,address,called|
|ratio|0.17|
|i_ratio|0.58|
|m_ratio|0.9|
|b_ratio|0.84|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|_Emplace_reallocate<std::shared_ptr<CCursorState::ShapeData>&___ptr64>|_Emplace_reallocate<std::shared_ptr<CCursorState::ShapeData>&___ptr64>|
|fullname|std::vector<std::shared_ptr<CCursorState::ShapeData>,std::allocator<std::shared_ptr<CCursorState::ShapeData>_>_>::_Emplace_reallocate<std::shared_ptr<CCursorState::ShapeData>&___ptr64>|std::vector<std::shared_ptr<CCursorState::ShapeData>,std::allocator<std::shared_ptr<CCursorState::ShapeData>_>_>::_Emplace_reallocate<std::shared_ptr<CCursorState::ShapeData>&___ptr64>|
|refcount|2|2|
|`length`|303|249|
|`called`|MSVCP_WIN.DLL::std::_Xlength_error<br>std::_Allocate<16,std::_Default_allocate_traits,0><br>std::_Deallocate<16,0><br>std::_Destroy_range<std::allocator<std::shared_ptr<CCursorState::ShapeData>_>_><br>std::_Get_size_of_n<16><br>std::_Uninitialized_move<std::shared_ptr<CCursorState::ShapeData>*___ptr64,std::allocator<std::shared_ptr<CCursorState::ShapeData>_>_><br>std::shared_ptr<CCursorState::ShapeData>::shared_ptr<CCursorState::ShapeData>|std::_Allocate<16,std::_Default_allocate_traits,0><br>std::_Get_size_of_n<16><br>std::_Uninitialized_move<std::shared_ptr<CCursorState::ShapeData>*___ptr64,std::allocator<std::shared_ptr<CCursorState::ShapeData>_>_><br>std::shared_ptr<CCursorState::ShapeData>::shared_ptr<CCursorState::ShapeData><br>std::vector<std::shared_ptr<CCursorState::ShapeData>,std::allocator<std::shared_ptr<CCursorState::ShapeData>_>_>::_Change_array<br>std::vector<tagRECT,std::allocator<tagRECT>_>::_Xlength|
|calling|std::vector<std::shared_ptr<CCursorState::ShapeData>,std::allocator<std::shared_ptr<CCursorState::ShapeData>_>_>::emplace_back<std::shared_ptr<CCursorState::ShapeData>&___ptr64>|std::vector<std::shared_ptr<CCursorState::ShapeData>,std::allocator<std::shared_ptr<CCursorState::ShapeData>_>_>::emplace_back<std::shared_ptr<CCursorState::ShapeData>&___ptr64>|
|paramcount|3|3|
|`address`|1802b34c8|1802b3dac|
|`sig`|shared_ptr<CCursorState::ShapeData> * __thiscall _Emplace_reallocate<std::shared_ptr<CCursorState::ShapeData>&___ptr64>(vector<std::shared_ptr<CCursorState::ShapeData>,std::allocator<std::shared_ptr<CCursorState::ShapeData>_>_> * this, shared_ptr<struct_CCursorState::ShapeData> * param_1, shared_ptr<struct_CCursorState::ShapeData> * param_2)|shared_ptr<CCursorState::ShapeData> * __thiscall _Emplace_reallocate<std::shared_ptr<CCursorState::ShapeData>&___ptr64>(vector<std::shared_ptr<CCursorState::ShapeData>,std::allocator<std::shared_ptr<CCursorState::ShapeData>_>_> * this, shared_ptr<class_CCursorState::ShapeData> * param_1, shared_ptr<class_CCursorState::ShapeData> * param_2)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### std::vector<std::shared_ptr<CCursorState::ShapeData>,std::allocator<std::shared_ptr<CCursorState::ShapeData>_>_>::_Emplace_reallocate<std::shared_ptr<CCursorState::ShapeData>&___ptr64> Called Diff


```diff
--- std::vector<std::shared_ptr<CCursorState::ShapeData>,std::allocator<std::shared_ptr<CCursorState::ShapeData>_>_>::_Emplace_reallocate<std::shared_ptr<CCursorState::ShapeData>&___ptr64> called
+++ std::vector<std::shared_ptr<CCursorState::ShapeData>,std::allocator<std::shared_ptr<CCursorState::ShapeData>_>_>::_Emplace_reallocate<std::shared_ptr<CCursorState::ShapeData>&___ptr64> called
@@ -1 +0,0 @@
-MSVCP_WIN.DLL::std::_Xlength_error
@@ -3,2 +1,0 @@
-std::_Deallocate<16,0>
-std::_Destroy_range<std::allocator<std::shared_ptr<CCursorState::ShapeData>_>_>
@@ -7,0 +5,2 @@
+std::vector<std::shared_ptr<CCursorState::ShapeData>,std::allocator<std::shared_ptr<CCursorState::ShapeData>_>_>::_Change_array
+std::vector<tagRECT,std::allocator<tagRECT>_>::_Xlength
```


### std::vector<std::shared_ptr<CCursorState::ShapeData>,std::allocator<std::shared_ptr<CCursorState::ShapeData>_>_>::_Emplace_reallocate<std::shared_ptr<CCursorState::ShapeData>&___ptr64> Diff


```diff
--- std::vector<std::shared_ptr<CCursorState::ShapeData>,std::allocator<std::shared_ptr<CCursorState::ShapeData>_>_>::_Emplace_reallocate<std::shared_ptr<CCursorState::ShapeData>&___ptr64>
+++ std::vector<std::shared_ptr<CCursorState::ShapeData>,std::allocator<std::shared_ptr<CCursorState::ShapeData>_>_>::_Emplace_reallocate<std::shared_ptr<CCursorState::ShapeData>&___ptr64>
@@ -1,77 +1,63 @@
 
-/* private: class std::shared_ptr<struct CCursorState::ShapeData> * __ptr64 __cdecl
-   std::vector<class std::shared_ptr<struct CCursorState::ShapeData>,class std::allocator<class
-   std::shared_ptr<struct CCursorState::ShapeData> > >::_Emplace_reallocate<class
-   std::shared_ptr<struct CCursorState::ShapeData> & __ptr64>(class std::shared_ptr<struct
-   CCursorState::ShapeData> * __ptr64 const,class std::shared_ptr<struct CCursorState::ShapeData> &
-   __ptr64) __ptr64 */
+/* private: class std::shared_ptr<class CCursorState::ShapeData> * __ptr64 __cdecl std::vector<class
+   std::shared_ptr<class CCursorState::ShapeData>,class std::allocator<class std::shared_ptr<class
+   CCursorState::ShapeData> > >::_Emplace_reallocate<class std::shared_ptr<class
+   CCursorState::ShapeData> & __ptr64>(class std::shared_ptr<class CCursorState::ShapeData> *
+   __ptr64 const,class std::shared_ptr<class CCursorState::ShapeData> & __ptr64) __ptr64 */
 
 shared_ptr<CCursorState::ShapeData> * __thiscall
 std::
 vector<std::shared_ptr<CCursorState::ShapeData>,std::allocator<std::shared_ptr<CCursorState::ShapeData>_>_>
 ::_Emplace_reallocate<std::shared_ptr<CCursorState::ShapeData>&___ptr64>
           (vector<std::shared_ptr<CCursorState::ShapeData>,std::allocator<std::shared_ptr<CCursorState::ShapeData>_>_>
-           *this,shared_ptr<struct_CCursorState::ShapeData> *param_1,
-          shared_ptr<struct_CCursorState::ShapeData> *param_2)
+           *this,shared_ptr<class_CCursorState::ShapeData> *param_1,
+          shared_ptr<class_CCursorState::ShapeData> *param_2)
 
 {
-  longlong lVar1;
-  code *pcVar2;
-  shared_ptr<CCursorState::ShapeData> *psVar3;
+  ulonglong uVar1;
+  longlong lVar2;
+  longlong lVar3;
   __uint64 _Var4;
-  shared_ptr<struct_CCursorState::ShapeData> *psVar5;
+  shared_ptr<CCursorState::ShapeData> *psVar5;
   ulonglong uVar6;
-  shared_ptr<struct_CCursorState::ShapeData> *psVar7;
-  shared_ptr<struct_CCursorState::ShapeData> *psVar8;
+  shared_ptr<class_CCursorState::ShapeData> *psVar7;
+  shared_ptr<class_CCursorState::ShapeData> *psVar8;
   ulonglong uVar9;
-  longlong lVar10;
-  ulonglong uVar11;
-  shared_ptr<struct_CCursorState::ShapeData> *psVar12;
+  shared_ptr<class_CCursorState::ShapeData> *psVar10;
   allocator<std::shared_ptr<CCursorState::ShapeData>_> *in_R9;
+  shared_ptr<CCursorState::ShapeData> *this_00;
   
-  lVar1 = *(longlong *)this;
-  lVar10 = *(longlong *)(this + 8) - *(longlong *)this >> 4;
-  if (lVar10 == 0xfffffffffffffff) {
-    std::_Xlength_error("vector too long");
-    pcVar2 = (code *)swi(3);
-    psVar3 = (shared_ptr<CCursorState::ShapeData> *)(*pcVar2)();
-    return psVar3;
+  lVar2 = *(longlong *)this;
+  lVar3 = *(longlong *)(this + 8) - *(longlong *)this >> 4;
+  if (lVar3 != 0xfffffffffffffff) {
+    uVar1 = lVar3 + 1;
+    uVar6 = *(longlong *)(this + 0x10) - *(longlong *)this >> 4;
+    uVar9 = 0xfffffffffffffff;
+    if ((uVar6 <= 0xfffffffffffffff - (uVar6 >> 1)) && (uVar9 = (uVar6 >> 1) + uVar6, uVar9 < uVar1)
+       ) {
+      uVar9 = uVar1;
+    }
+    _Var4 = _Get_size_of_n<16>(uVar9);
+    psVar5 = _Allocate<16,std::_Default_allocate_traits,0>(_Var4);
+    this_00 = psVar5 + ((longlong)param_1 - lVar2 & 0xfffffffffffffff0);
+    shared_ptr<CCursorState::ShapeData>::shared_ptr<CCursorState::ShapeData>(this_00,param_2);
+    psVar8 = *(shared_ptr<class_CCursorState::ShapeData> **)(this + 8);
+    psVar7 = *(shared_ptr<class_CCursorState::ShapeData> **)this;
+    psVar10 = (shared_ptr<class_CCursorState::ShapeData> *)psVar5;
+    if (param_1 != psVar8) {
+      _Uninitialized_move<std::shared_ptr<CCursorState::ShapeData>*___ptr64,std::allocator<std::shared_ptr<CCursorState::ShapeData>_>_>
+                (*(shared_ptr<class_CCursorState::ShapeData> **)this,param_1,
+                 (shared_ptr<class_CCursorState::ShapeData> *)psVar5,in_R9);
+      psVar8 = *(shared_ptr<class_CCursorState::ShapeData> **)(this + 8);
+      psVar10 = (shared_ptr<class_CCursorState::ShapeData> *)(this_00 + 0x10);
+      psVar7 = param_1;
+    }
+    _Uninitialized_move<std::shared_ptr<CCursorState::ShapeData>*___ptr64,std::allocator<std::shared_ptr<CCursorState::ShapeData>_>_>
+              (psVar7,psVar8,psVar10,in_R9);
+    _Change_array(this,psVar5,uVar1,uVar9);
+    return this_00;
   }
-  uVar11 = lVar10 + 1;
-  uVar6 = *(longlong *)(this + 0x10) - *(longlong *)this >> 4;
-  uVar9 = 0xfffffffffffffff;
-  if ((uVar6 <= 0xfffffffffffffff - (uVar6 >> 1)) && (uVar9 = (uVar6 >> 1) + uVar6, uVar9 < uVar11))
-  {
-    uVar9 = uVar11;
-  }
-  _Var4 = _Get_size_of_n<16>(uVar9);
-  psVar5 = _Allocate<16,std::_Default_allocate_traits,0>(_Var4);
-  psVar3 = (shared_ptr<CCursorState::ShapeData> *)
-           (psVar5 + ((longlong)param_1 - lVar1 & 0xfffffffffffffff0));
-  shared_ptr<CCursorState::ShapeData>::shared_ptr<CCursorState::ShapeData>(psVar3,param_2);
-  psVar8 = *(shared_ptr<struct_CCursorState::ShapeData> **)(this + 8);
-  psVar7 = *(shared_ptr<struct_CCursorState::ShapeData> **)this;
-  psVar12 = psVar5;
-  if (param_1 != psVar8) {
-    _Uninitialized_move<std::shared_ptr<CCursorState::ShapeData>*___ptr64,std::allocator<std::shared_ptr<CCursorState::ShapeData>_>_>
-              (*(shared_ptr<struct_CCursorState::ShapeData> **)this,param_1,psVar5,in_R9);
-    psVar8 = *(shared_ptr<struct_CCursorState::ShapeData> **)(this + 8);
-    psVar12 = (shared_ptr<struct_CCursorState::ShapeData> *)(psVar3 + 0x10);
-    psVar7 = param_1;
-  }
-  _Uninitialized_move<std::shared_ptr<CCursorState::ShapeData>*___ptr64,std::allocator<std::shared_ptr<CCursorState::ShapeData>_>_>
-            (psVar7,psVar8,psVar12,in_R9);
-  if (*(shared_ptr<CCursorState::ShapeData> **)this != (shared_ptr<CCursorState::ShapeData> *)0x0) {
-    _Destroy_range<std::allocator<std::shared_ptr<CCursorState::ShapeData>_>_>
-              (*(shared_ptr<CCursorState::ShapeData> **)this,
-               *(shared_ptr<struct_CCursorState::ShapeData> **)(this + 8),
-               (allocator<std::shared_ptr<CCursorState::ShapeData>_> *)psVar12);
-    _Deallocate<16,0>(*(void **)this,
-                      *(longlong *)(this + 0x10) - *(longlong *)this & 0xfffffffffffffff0);
-  }
-  *(shared_ptr<struct_CCursorState::ShapeData> **)this = psVar5;
-  *(shared_ptr<struct_CCursorState::ShapeData> **)(this + 8) = psVar5 + uVar11 * 0x10;
-  *(shared_ptr<struct_CCursorState::ShapeData> **)(this + 0x10) = psVar5 + uVar9 * 0x10;
-  return psVar3;
+                    /* WARNING: Subroutine does not return */
+  vector<tagRECT,std::allocator<tagRECT>_>::_Xlength();
 }
 

```


## COcclusionContext::CollectCursor

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.24|
|i_ratio|0.36|
|m_ratio|0.93|
|b_ratio|0.73|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|CollectCursor|CollectCursor|
|fullname|COcclusionContext::CollectCursor|COcclusionContext::CollectCursor|
|refcount|2|2|
|`length`|176|164|
|`called`|CMatrixStack::GetTopByReference<br>COverlayContext::TryEnableHardwareCursor<br>CWatermarkStack<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,8,2,8>::GetTopByReference|CMatrixStack::GetTopByReference<br>COverlayContext::SetHardwareCursor<br>CWatermarkStack<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,8,2,8>::GetTopByReference|
|calling|CCursorVisual::CollectOcclusion|CCursorVisual::CollectOcclusion|
|paramcount|2|2|
|`address`|18027dc60|18027c380|
|sig|void __thiscall CollectCursor(COcclusionContext * this, CCursorVisual * param_1)|void __thiscall CollectCursor(COcclusionContext * this, CCursorVisual * param_1)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### COcclusionContext::CollectCursor Called Diff


```diff
--- COcclusionContext::CollectCursor called
+++ COcclusionContext::CollectCursor called
@@ -2 +2 @@
-COverlayContext::TryEnableHardwareCursor
+COverlayContext::SetHardwareCursor
```


### COcclusionContext::CollectCursor Diff


```diff
--- COcclusionContext::CollectCursor
+++ COcclusionContext::CollectCursor
@@ -1,37 +1,31 @@
 
 /* public: void __cdecl COcclusionContext::CollectCursor(class CCursorVisual * __ptr64) __ptr64 */
 
 void __thiscall COcclusionContext::CollectCursor(COcclusionContext *this,CCursorVisual *param_1)
 
 {
   undefined8 *puVar1;
-  COcclusionContext CVar2;
-  bool bVar3;
-  CMILMatrix *pCVar4;
-  TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> *pTVar5;
-  undefined8 *puVar6;
+  TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> *pTVar2;
+  CMILMatrix *pCVar3;
+  undefined8 *puVar4;
   
-  if ((*(char *)(*(longlong *)(param_1 + 0x2c0) + 0x70) == '\0') &&
-     (*(longlong *)(*(longlong *)(param_1 + 0x2c0) + 0x108) == 0)) {
-    CVar2 = (COcclusionContext)0x1;
+  if (this[0x61e] != (COcclusionContext)0x0) {
+    this[0x61f] = (COcclusionContext)(param_1[0x2e9] == (CCursorVisual)0x0);
+    if (*(int *)(this + 0x6b4) == 0) {
+      pTVar2 = CWatermarkStack<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,8,2,8>
+               ::GetTopByReference((CWatermarkStack<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,8,2,8>
+                                    *)(this + 0x80));
+      if (pTVar2 == (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
+                     *)0x0) {
+        pCVar3 = CMatrixStack::GetTopByReference((CMatrixStack *)(this + 0x20));
+        puVar1 = *(undefined8 **)(this + 0x710);
+        for (puVar4 = *(undefined8 **)(this + 0x708); puVar4 != puVar1; puVar4 = puVar4 + 1) {
+          COverlayContext::SetHardwareCursor((COverlayContext *)*puVar4,param_1,pCVar3);
+        }
+      }
+    }
+    this[0x61e] = (COcclusionContext)0x0;
   }
-  else {
-    CVar2 = (COcclusionContext)0x0;
-  }
-  this[0x61f] = CVar2;
-  pCVar4 = CMatrixStack::GetTopByReference((CMatrixStack *)(this + 0x20));
-  pTVar5 = CWatermarkStack<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,8,2,8>
-           ::GetTopByReference((CWatermarkStack<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,8,2,8>
-                                *)(this + 0x80));
-  puVar1 = *(undefined8 **)(this + 0x710);
-  for (puVar6 = *(undefined8 **)(this + 0x708); puVar6 != puVar1; puVar6 = puVar6 + 1) {
-    bVar3 = COverlayContext::TryEnableHardwareCursor
-                      ((COverlayContext *)*puVar6,param_1,pCVar4,pTVar5);
-    if (!bVar3) {
-      this[0x61f] = (COcclusionContext)0x0;
-    }
-  }
-  this[0x61e] = (COcclusionContext)0x0;
   return;
 }
 

```


## COverlayContext::Present

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,refcount,length,address,called|
|ratio|0.11|
|i_ratio|0.22|
|m_ratio|0.95|
|b_ratio|0.1|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|Present|Present|
|fullname|COverlayContext::Present|COverlayContext::Present|
|`refcount`|7|3|
|`length`|1129|1211|
|`called`|<details><summary>Expand for full list:<br>CDDisplayRenderTarget::GetTargetId`adjustor{72}'<br>CDirectFlipInfo::Present<br>CLegacyRenderTarget::GetTargetId<br>CLegacyRenderTarget::GetTargetId`adjustor{72}'<br>CLegacySwapChain::Present<br>COverlayContext::ClearDirectFlip<br>COverlayContext::PresentMPO<br>McTemplateU0nqq_EventWriteTransfer<br>McTemplateU0nqqt_EventWriteTransfer<br>McTemplateU0nqxxxq_EventWriteTransfer<br>MilInstrumentationCheckHR_MaybeFailFast</summary>__security_check_cookie<br>_guard_dispatch_icall$thunk$10345483385596137414</details>|<details><summary>Expand for full list:<br>CDirectFlipInfo::Present<br>COverlayContext::ClearDirectFlip<br>COverlayContext::GetCursorBounds<br>COverlayContext::IsCursorVisibleInSoftware<br>COverlayContext::LegacyPresentRequired<br>COverlayContext::PresentMPO<br>McGenEventWrite_EventWriteTransfer<br>MilInstrumentationCheckHR_MaybeFailFast<br>__security_check_cookie<br>_guard_dispatch_icall$thunk$10345483385596137414<br>wil::details::FeatureImpl<__WilFeatureTraits_Feature_DesktopDWMCursor>::__private_IsEnabled</summary></details>|
|calling|CDDisplayRenderTarget::Present<br>CLegacyRenderTarget::Present|CDDisplayRenderTarget::Present<br>CLegacyRenderTarget::Present|
|paramcount|7|7|
|`address`|1801ae000|1802339e0|
|sig|long __thiscall Present(COverlayContext * this, IOverlaySwapChain * param_1, uint param_2, vector<tagRECT,std::allocator<tagRECT>_> * param_3, uint param_4, bool * param_5, bool param_6)|long __thiscall Present(COverlayContext * this, IOverlaySwapChain * param_1, uint param_2, vector<tagRECT,std::allocator<tagRECT>_> * param_3, uint param_4, bool * param_5, bool param_6)|
|sym_type|Function|Function|
|sym_source|IMPORTED|ANALYSIS|
|external|False|False|

### COverlayContext::Present Called Diff


```diff
--- COverlayContext::Present called
+++ COverlayContext::Present called
@@ -1 +0,0 @@
-CDDisplayRenderTarget::GetTargetId`adjustor{72}'
@@ -3,3 +1,0 @@
-CLegacyRenderTarget::GetTargetId
-CLegacyRenderTarget::GetTargetId`adjustor{72}'
-CLegacySwapChain::Present
@@ -6,0 +3,3 @@
+COverlayContext::GetCursorBounds
+COverlayContext::IsCursorVisibleInSoftware
+COverlayContext::LegacyPresentRequired
@@ -8,3 +7 @@
-McTemplateU0nqq_EventWriteTransfer
-McTemplateU0nqqt_EventWriteTransfer
-McTemplateU0nqxxxq_EventWriteTransfer
+McGenEventWrite_EventWriteTransfer
@@ -13,0 +11 @@
+wil::details::FeatureImpl<__WilFeatureTraits_Feature_DesktopDWMCursor>::__private_IsEnabled
```


### COverlayContext::Present Diff


```diff
--- COverlayContext::Present
+++ COverlayContext::Present
@@ -1,142 +1,183 @@
 
-/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
 /* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
    guard_dispatch_icall */
+/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
 /* public: long __cdecl COverlayContext::Present(class IOverlaySwapChain * __ptr64,unsigned
    int,class std::vector<struct tagRECT,class std::allocator<struct tagRECT> > const &
    __ptr64,unsigned int,bool * __ptr64,bool) __ptr64 */
 
 long __thiscall
 COverlayContext::Present
           (COverlayContext *this,IOverlaySwapChain *param_1,uint param_2,
           vector<tagRECT,std::allocator<tagRECT>_> *param_3,uint param_4,bool *param_5,bool param_6)
 
 {
-  code *pcVar1;
   CDirectFlipInfo *this_00;
-  long lVar2;
-  longlong *plVar3;
-  CLegacyRenderTarget *this_01;
-  undefined1 auStackY_b8 [32];
-  bool local_68 [4];
-  uint local_64;
-  undefined4 local_60;
-  undefined4 local_5c;
-  undefined4 local_58;
-  undefined4 local_54;
-  longlong local_50;
-  longlong lStack_48;
-  ulonglong local_40;
+  bool bVar1;
+  uint uVar2;
+  uint uVar3;
+  undefined8 uVar4;
+  undefined8 *puVar5;
+  longlong lVar6;
+  COverlayContext *this_01;
+  undefined1 auStackY_138 [32];
+  bool local_108 [8];
+  uint local_100 [2];
+  ulonglong local_f8;
+  ulonglong local_f0;
+  ulonglong local_e8;
+  undefined4 local_e0;
+  undefined4 local_dc;
+  undefined8 local_d8;
+  undefined8 uStack_d0;
+  undefined8 local_b8;
+  undefined8 local_b0;
+  uint *local_a8;
+  undefined8 local_a0;
+  uint *local_98;
+  undefined8 local_90;
+  ulonglong *local_88;
+  undefined8 local_80;
+  ulonglong *local_78;
+  undefined8 local_70;
+  uint *local_68;
+  undefined8 local_60;
+  ulonglong local_58;
   
-  local_40 = __security_cookie ^ (ulonglong)auStackY_b8;
-  this_01 = (CLegacyRenderTarget *)(*(longlong *)this + 8);
-  pcVar1 = *(code **)(*(longlong *)this_01 + 0x20);
-  if (pcVar1 == CLegacyRenderTarget::GetTargetId_adjustor_72__) {
-    CLegacyRenderTarget::GetTargetId_adjustor_72__(this_01);
-  }
-  else if (pcVar1 == CDDisplayRenderTarget::GetTargetId_adjustor_72__) {
-    CDDisplayRenderTarget::GetTargetId_adjustor_72__((CDDisplayRenderTarget *)this_01);
-  }
-  else if (pcVar1 == CLegacyRenderTarget::GetTargetId) {
-    CLegacyRenderTarget::GetTargetId(this_01);
-  }
-  else {
-    (*pcVar1)();
-  }
-  this_00 = *(CDirectFlipInfo **)(this + 0x4bb0);
-  local_68[0] = false;
-  if (this_00 == (CDirectFlipInfo *)0x0) {
-    this[0x4bf7] = (COverlayContext)0x0;
-    if ((param_6) ||
-       ((((*(longlong *)(this + 0x3190) == *(longlong *)(this + 0x3188) &&
-          (this[0x4a90] != (COverlayContext)0x0)) && (this[0x4a91] == (COverlayContext)0x0)) &&
-        (((*(int *)(this + 0x4bb8) < 0x898 || (this[0x4bf4] != (COverlayContext)0x0)) ||
-         ((*(uint *)(this + 0x34) & 0x40000) == 0)))))) {
-      if (*(code **)(*(longlong *)param_1 + 0x178) == CLegacySwapChain::Present) {
-        lVar2 = CLegacySwapChain::Present((CLegacySwapChain *)param_1,1,param_2,param_3,param_4);
-      }
-      else {
-        lVar2 = (**(code **)(*(longlong *)param_1 + 0x178))(param_1);
-      }
-      if (lVar2 < 0) {
-        MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar2,0xda6,(void *)0x0);
-      }
-      if (((byte)Microsoft_Windows_Dwm_CompositorEnableBits & 1) != 0) {
-        McTemplateU0nqq_EventWriteTransfer();
-      }
-      if (-1 < lVar2) {
-        *(undefined2 *)(this + 0x4a90) = 1;
-        local_68[0] = true;
-        *(undefined8 *)(this + 0x4b10) = 0;
-        *(undefined8 *)(this + 0x4a98) = *(undefined8 *)(this + 0x4a20);
-        *(undefined8 *)(this + 0x4aa0) = *(undefined8 *)(this + 0x4a28);
-        *(undefined8 *)(this + 0x4aa8) = *(undefined8 *)(this + 0x4a30);
-        *(undefined8 *)(this + 0x4ab0) = *(undefined8 *)(this + 19000);
-        *(undefined8 *)(this + 0x4ab8) = *(undefined8 *)(this + 0x4a40);
-        *(undefined8 *)(this + 0x4ac0) = *(undefined8 *)(this + 0x4a48);
-        *(undefined8 *)(this + 0x4ac8) = *(undefined8 *)(this + 0x4a50);
-        *(undefined8 *)(this + 0x4ad0) = *(undefined8 *)(this + 0x4a58);
-        *(undefined8 *)(this + 0x4ad8) = *(undefined8 *)(this + 0x4a60);
-        *(undefined8 *)(this + 0x4ae0) = *(undefined8 *)(this + 0x4a68);
-        *(undefined8 *)(this + 0x4ae8) = *(undefined8 *)(this + 0x4a70);
-        *(undefined8 *)(this + 0x4af0) = *(undefined8 *)(this + 0x4a78);
-        *(undefined8 *)(this + 0x4af8) = *(undefined8 *)(this + 0x4a80);
-        *(undefined8 *)(this + 0x4b00) = *(undefined8 *)(this + 0x4a88);
-        *(undefined8 *)(this + 0x4b08) = *(undefined8 *)(this + 0x4a90);
-      }
+  local_58 = __security_cookie ^ (ulonglong)auStackY_138;
+  uVar4 = (**(code **)(*(longlong *)(*(longlong *)this + 8) + 0x20))();
+  this_00 = *(CDirectFlipInfo **)(this + 0x4c38);
+  local_108[0] = false;
+  if (this_00 != (CDirectFlipInfo *)0x0) {
+    local_e8 = *(ulonglong *)(this + 0x4a24);
+    local_e0 = *(undefined4 *)(this + 0x4a2c);
+    local_dc = *(undefined4 *)(this + 0x4a30);
+    lVar6 = (**(code **)(**(longlong **)this + 0x100))();
+    local_d8 = *(ulonglong *)(lVar6 + 0x18);
+    uStack_d0 = *(undefined8 *)(lVar6 + 0x20);
+    uVar2 = CDirectFlipInfo::Present
+                      (this_00,param_1,param_4,
+                       (TMilRect<unsigned_int,MilRectU,Mil3DRectU,RectUniqueness::NotNeeded> *)
+                       &local_e8,
+                       (TMilRect<unsigned_int,MilRectU,Mil3DRectU,RectUniqueness::NotNeeded> *)
+                       &local_d8);
+    if ((int)uVar2 < 0) {
+      MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,uVar2,0xe73,(void *)0x0);
+    }
+    if (((byte)Microsoft_Windows_Dwm_CompositorEnableBits & 1) != 0) {
+      local_100[0] = *(uint *)(*(longlong *)(this + 0x4c38) + 0x5c);
+      uVar3 = (**(code **)(**(longlong **)(*(longlong *)(this + 0x4c38) + 0x10) + 0x150))();
+      local_e8 = (ulonglong)uVar3;
+      local_f0 = *(ulonglong *)(*(longlong *)(this + 0x4c38) + 0x18);
+      local_b0 = 0x1c;
+      local_a0 = 4;
+      local_d8 = *(ulonglong *)(*(longlong *)(*(longlong *)(this + 0x4c38) + 0x10) + 0x28);
+      local_a8 = (uint *)&local_f8;
+      local_98 = (uint *)&local_d8;
+      local_88 = &local_f0;
+      local_78 = &local_e8;
+      local_68 = local_100;
+      local_90 = 8;
+      local_80 = 8;
+      local_70 = 8;
+      local_60 = 4;
+      local_f8._0_4_ = uVar2;
+      local_b8 = uVar4;
+      McGenEventWrite_EventWriteTransfer(&Microsoft_Windows_Dwm_Compositor_Context,&Present_DFlip);
+    }
+    if (((uVar2 + 0x80000000 & 0x80000000) == 0) && (uVar2 != 0x8898008b)) {
+      ClearDirectFlip(this);
     }
     else {
-      local_64 = 0;
-      lVar2 = PresentMPO(this,param_1,param_2,param_3,&local_64,local_68);
-      if (lVar2 < 0) {
-        MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar2,0xd91,(void *)0x0);
-      }
-      if (((byte)Microsoft_Windows_Dwm_CompositorEnableBits & 1) != 0) {
-        McTemplateU0nqqt_EventWriteTransfer();
-      }
+      this[0x4c80] = (COverlayContext)0x1;
+    }
+    goto LAB_0;
+  }
+  this[0x4c80] = (COverlayContext)0x0;
+  if (param_6) {
+LAB_1:
+    uVar2 = (**(code **)(*(longlong *)param_1 + 0x178))(param_1,1,param_2,param_3);
+    if ((int)uVar2 < 0) {
+      MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,uVar2,0xe44,(void *)0x0);
+    }
+    if (((byte)Microsoft_Windows_Dwm_CompositorEnableBits & 1) != 0) {
+      local_a8 = (uint *)&local_f8;
+      local_98 = local_100;
+      local_b0 = 0x1c;
+      local_a0 = 4;
+      local_90 = 4;
+      local_100[0] = param_2;
+      local_f8._0_4_ = uVar2;
+      local_b8 = uVar4;
+      McGenEventWrite_EventWriteTransfer(&Microsoft_Windows_Dwm_Compositor_Context,&Present_Legacy);
+    }
+    if (-1 < (int)uVar2) {
+      *(undefined2 *)(this + 0x4a90) = 1;
+      local_108[0] = true;
+      *(undefined8 *)(this + 0x4b10) = 0;
+      *(undefined8 *)(this + 0x4a98) = *(undefined8 *)(this + 0x4a20);
+      *(undefined8 *)(this + 0x4aa0) = *(undefined8 *)(this + 0x4a28);
+      *(undefined8 *)(this + 0x4aa8) = *(undefined8 *)(this + 0x4a30);
+      *(undefined8 *)(this + 0x4ab0) = *(undefined8 *)(this + 19000);
+      *(undefined8 *)(this + 0x4ab8) = *(undefined8 *)(this + 0x4a40);
+      *(undefined8 *)(this + 0x4ac0) = *(undefined8 *)(this + 0x4a48);
+      *(undefined8 *)(this + 0x4ac8) = *(undefined8 *)(this + 0x4a50);
+      *(undefined8 *)(this + 0x4ad0) = *(undefined8 *)(this + 0x4a58);
+      *(undefined8 *)(this + 0x4ad8) = *(undefined8 *)(this + 0x4a60);
+      *(undefined8 *)(this + 0x4ae0) = *(undefined8 *)(this + 0x4a68);
+      *(undefined8 *)(this + 0x4ae8) = *(undefined8 *)(this + 0x4a70);
+      *(undefined8 *)(this + 0x4af0) = *(undefined8 *)(this + 0x4a78);
+      *(undefined8 *)(this + 0x4af8) = *(undefined8 *)(this + 0x4a80);
+      *(undefined8 *)(this + 0x4b00) = *(undefined8 *)(this + 0x4a88);
+      *(undefined8 *)(this + 0x4b08) = *(undefined8 *)(this + 0x4a90);
     }
   }
   else {
-    local_60 = *(undefined4 *)(this + 0x4a24);
-    plVar3 = *(longlong **)this;
-    local_5c = *(undefined4 *)(this + 0x4a28);
-    local_58 = *(undefined4 *)(this + 0x4a2c);
-    local_54 = *(undefined4 *)(this + 0x4a30);
-    pcVar1 = *(code **)(*plVar3 + 0x100);
-    if (pcVar1 == CLegacyRenderTarget::GetMonitorTransform) {
-      plVar3 = plVar3 + 0xec0;
-    }
-    else if (pcVar1 == CDDisplayRenderTarget::GetMonitorTransform) {
-      plVar3 = plVar3 + 0xec1;
-    }
-    else {
-      plVar3 = (longlong *)(*pcVar1)();
-    }
-    local_50 = plVar3[3];
-    lStack_48 = plVar3[4];
-    lVar2 = CDirectFlipInfo::Present
-                      (this_00,param_1,param_4,
-                       (TMilRect<unsigned_int,MilRectU,Mil3DRectU,RectUniqueness::NotNeeded> *)
-                       &local_60,
-                       (TMilRect<unsigned_int,MilRectU,Mil3DRectU,RectUniqueness::NotNeeded> *)
-                       &local_50);
-    if (lVar2 < 0) {
-      MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar2,0xdc6,(void *)0x0);
+    this_01 = this;
+    bVar1 = LegacyPresentRequired(this);
+    if (bVar1) goto LAB_1;
+    local_f0 = local_f0 & 0xffffffff00000000;
+    uVar2 = PresentMPO(this_01,param_1,param_2,param_3,(uint *)&local_f0,local_108);
+    if ((int)uVar2 < 0) {
+      MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,uVar2,0xe2f,(void *)0x0);
     }
     if (((byte)Microsoft_Windows_Dwm_CompositorEnableBits & 1) != 0) {
-      (**(code **)(**(longlong **)(*(longlong *)(this + 0x4bb0) + 0x10) + 0x150))();
-      McTemplateU0nqxxxq_EventWriteTransfer();
-    }
-    if (((lVar2 + 0x80000000U & 0x80000000) == 0) && (lVar2 != -0x7767ff75)) {
-      ClearDirectFlip(this);
-    }
-    else {
-      this[0x4bf7] = (COverlayContext)0x1;
+      local_f8._0_4_ = (uint)local_108[0];
+      local_100[0] = (uint)local_f0;
+      local_a8 = (uint *)&local_d8;
+      local_98 = local_100;
+      local_88 = &local_f8;
+      local_d8 = CONCAT44(local_d8._4_4_,uVar2);
+      local_b0 = 0x1c;
+      local_a0 = 4;
+      local_90 = 4;
+      local_80 = 4;
+      local_b8 = uVar4;
+      McGenEventWrite_EventWriteTransfer(&Microsoft_Windows_Dwm_Compositor_Context,&Present_MPO);
     }
   }
+  bVar1 = wil::details::FeatureImpl<__WilFeatureTraits_Feature_DesktopDWMCursor>::
+          __private_IsEnabled((FeatureImpl<__WilFeatureTraits_Feature_DesktopDWMCursor> *)
+                              &`private:_static_class_wil::details::FeatureImpl<__WilFeatureTraits_Feature_DesktopDWMCursor>&___ptr64___cdecl_wil::Feature<__WilFeatureTraits_Feature_DesktopDWMCursor>::GetImpl(void)'
+                               ::__l2::impl);
+  if (((bVar1) && (local_108[0] != false)) && ((param_2 & 2) == 0)) {
+    if (*(longlong *)(this + 0x4b18) != 0) {
+      bVar1 = IsCursorVisibleInSoftware(this);
+      if (bVar1) {
+        puVar5 = (undefined8 *)GetCursorBounds(this);
+        uVar4 = puVar5[1];
+        *(undefined8 *)(this + 0x4b70) = *puVar5;
+        *(undefined8 *)(this + 0x4b78) = uVar4;
+        goto LAB_0;
+      }
+    }
+    *(undefined8 *)(this + 0x4b78) = 0;
+    *(undefined8 *)(this + 0x4b70) = 0;
+  }
+LAB_0:
   if (param_5 != (bool *)0x0) {
-    *param_5 = local_68[0];
+    *param_5 = local_108[0];
   }
-  return lVar2;
+  return uVar2;
 }
 

```


## CResampleLayer::CResampleLayer

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,length,sig,address|
|ratio|0.42|
|i_ratio|0.12|
|m_ratio|0.97|
|b_ratio|0.88|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|CResampleLayer|CResampleLayer|
|fullname|CResampleLayer::CResampleLayer|CResampleLayer::CResampleLayer|
|refcount|2|2|
|`length`|142|154|
|called|CExternalLayer::CExternalLayer<br>wil::com_ptr_t<IDXGIResource,wil::err_returncode_policy>::com_ptr_t<IDXGIResource,wil::err_returncode_policy>|CExternalLayer::CExternalLayer<br>wil::com_ptr_t<IDXGIResource,wil::err_returncode_policy>::com_ptr_t<IDXGIResource,wil::err_returncode_policy>|
|calling|CResampleLayer::Create|CResampleLayer::Create|
|paramcount|8|8|
|`address`|18003eda8|18027dc0c|
|`sig`|undefined __thiscall CResampleLayer(CResampleLayer * this, D2D_POINTANDSIZE_L * param_1, D2D_POINTANDSIZE_L * param_2, float param_3, float param_4, Enum param_5, IRenderTargetBitmap * param_6, IRenderTargetBitmap * param_7)|undefined __thiscall CResampleLayer(CResampleLayer * this, Enum param_1, D2D_POINTANDSIZE_L * param_2, D2D_POINTANDSIZE_L * param_3, D2D_SIZE_F * param_4, optional<float> param_5, IRenderTargetBitmap * param_6, IRenderTargetBitmap * param_7)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### CResampleLayer::CResampleLayer Diff


```diff
--- CResampleLayer::CResampleLayer
+++ CResampleLayer::CResampleLayer
@@ -1,37 +1,38 @@
 
-/* private: __cdecl CResampleLayer::CResampleLayer(struct D2D_POINTANDSIZE_L const & __ptr64,struct
-   D2D_POINTANDSIZE_L const & __ptr64,float,float,enum CompositionResampleMode::Enum,class
-   IRenderTargetBitmap * __ptr64,class IRenderTargetBitmap * __ptr64) __ptr64 */
+/* private: __cdecl CResampleLayer::CResampleLayer(enum CompositionResampleMode::Enum,struct
+   D2D_POINTANDSIZE_L const & __ptr64,struct D2D_POINTANDSIZE_L const & __ptr64,struct D2D_SIZE_F
+   const & __ptr64,class std::optional<float>,class IRenderTargetBitmap * __ptr64,class
+   IRenderTargetBitmap * __ptr64) __ptr64 */
 
 CResampleLayer * __thiscall
 CResampleLayer::CResampleLayer
-          (CResampleLayer *this,D2D_POINTANDSIZE_L *param_1,D2D_POINTANDSIZE_L *param_2,
-          float param_3,float param_4,Enum param_5,IRenderTargetBitmap *param_6,
-          IRenderTargetBitmap *param_7)
+          (CResampleLayer *this,undefined4 param_1,undefined8 *param_2,D2D_POINTANDSIZE_L *param_3,
+          float *param_4,undefined8 param_6,IRenderTargetBitmap *param_7,IDXGIResource *param_8)
 
 {
   undefined8 uVar1;
-  undefined8 uVar2;
+  float fVar2;
   
-  CExternalLayer::CExternalLayer((CExternalLayer *)this,param_2,param_6);
+  CExternalLayer::CExternalLayer((CExternalLayer *)this,param_3,param_7);
   *(undefined ***)this = &_vftable_;
-  *(Enum *)(this + 0x78) = param_5;
+  *(undefined4 *)(this + 0x78) = param_1;
   wil::com_ptr_t<IDXGIResource,wil::err_returncode_policy>::
   com_ptr_t<IDXGIResource,wil::err_returncode_policy>
-            ((com_ptr_t<IDXGIResource,wil::err_returncode_policy> *)(this + 0x80),
-             (IDXGIResource *)param_7);
-  if (param_4 <= 1.0) {
-    param_4 = 1.0;
+            ((com_ptr_t<IDXGIResource,wil::err_returncode_policy> *)(this + 0x80),param_8);
+  fVar2 = *param_4;
+  if (fVar2 <= 1.0) {
+    fVar2 = 1.0;
   }
-  if (param_3 <= 1.0) {
-    param_3 = 1.0;
+  *(float *)(this + 0x88) = fVar2;
+  fVar2 = param_4[1];
+  if (fVar2 <= 1.0) {
+    fVar2 = 1.0;
   }
-  *(float *)(this + 0x8c) = param_4;
-  uVar1 = *(undefined8 *)param_1;
-  uVar2 = *(undefined8 *)(param_1 + 8);
-  *(float *)(this + 0x88) = param_3;
-  *(undefined8 *)(this + 0x90) = uVar1;
-  *(undefined8 *)(this + 0x98) = uVar2;
+  *(undefined8 *)(this + 0x90) = param_6;
+  *(float *)(this + 0x8c) = fVar2;
+  uVar1 = param_2[1];
+  *(undefined8 *)(this + 0x98) = *param_2;
+  *(undefined8 *)(this + 0xa0) = uVar1;
   return this;
 }
 

```


## wil::details::FeatureImpl<__WilFeatureTraits_Feature_CompSwapchainDX12Support>::GetCurrentFeatureEnabledState

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.34|
|i_ratio|0.61|
|m_ratio|0.93|
|b_ratio|0.86|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|GetCurrentFeatureEnabledState|GetCurrentFeatureEnabledState|
|fullname|wil::details::FeatureImpl<__WilFeatureTraits_Feature_CompSwapchainDX12Support>::GetCurrentFeatureEnabledState|wil::details::FeatureImpl<__WilFeatureTraits_Feature_CompSwapchainDX12Support>::GetCurrentFeatureEnabledState|
|refcount|2|2|
|`length`|238|208|
|`called`|wil::details::FeatureImpl<__WilFeatureTraits_Feature_GatePerf>::__private_IsEnabled<br>wil::details::WilApi_GetFeatureEnabledState|wil::details::FeatureImpl<__WilFeatureTraits_Feature_GatePerf>::ReportUsage<br>wil::details::WilApi_GetFeatureEnabledState|
|calling|wil::details::FeatureImpl<__WilFeatureTraits_Feature_CompSwapchainDX12Support>::GetCachedFeatureEnabledState|wil::details::FeatureImpl<__WilFeatureTraits_Feature_CompSwapchainDX12Support>::GetCachedFeatureEnabledState|
|paramcount|2|2|
|`address`|1802bcb7c|1802bd63c|
|sig|wil_details_FeatureStateCache __thiscall GetCurrentFeatureEnabledState(FeatureImpl<__WilFeatureTraits_Feature_CompSwapchainDX12Support> * this, int * param_1)|wil_details_FeatureStateCache __thiscall GetCurrentFeatureEnabledState(FeatureImpl<__WilFeatureTraits_Feature_CompSwapchainDX12Support> * this, int * param_1)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### wil::details::FeatureImpl<__WilFeatureTraits_Feature_CompSwapchainDX12Support>::GetCurrentFeatureEnabledState Called Diff


```diff
--- wil::details::FeatureImpl<__WilFeatureTraits_Feature_CompSwapchainDX12Support>::GetCurrentFeatureEnabledState called
+++ wil::details::FeatureImpl<__WilFeatureTraits_Feature_CompSwapchainDX12Support>::GetCurrentFeatureEnabledState called
@@ -1 +1 @@
-wil::details::FeatureImpl<__WilFeatureTraits_Feature_GatePerf>::__private_IsEnabled
+wil::details::FeatureImpl<__WilFeatureTraits_Feature_GatePerf>::ReportUsage
```


### wil::details::FeatureImpl<__WilFeatureTraits_Feature_CompSwapchainDX12Support>::GetCurrentFeatureEnabledState Diff


```diff
--- wil::details::FeatureImpl<__WilFeatureTraits_Feature_CompSwapchainDX12Support>::GetCurrentFeatureEnabledState
+++ wil::details::FeatureImpl<__WilFeatureTraits_Feature_CompSwapchainDX12Support>::GetCurrentFeatureEnabledState
@@ -1,61 +1,54 @@
 
 /* private: union wil_details_FeatureStateCache __cdecl wil::details::FeatureImpl<struct
    __WilFeatureTraits_Feature_CompSwapchainDX12Support>::GetCurrentFeatureEnabledState(int *
    __ptr64) __ptr64 */
 
 int * __thiscall
 wil::details::FeatureImpl<__WilFeatureTraits_Feature_CompSwapchainDX12Support>::
 GetCurrentFeatureEnabledState
           (FeatureImpl<__WilFeatureTraits_Feature_CompSwapchainDX12Support> *this,int *param_1)
 
 {
   bool bVar1;
-  bool bVar2;
-  FEATURE_ENABLED_STATE FVar3;
-  ReportingKind RVar4;
-  ReportingKind RVar5;
-  ReportingKind RVar6;
-  ReportingKind RVar7;
+  FEATURE_ENABLED_STATE FVar2;
+  uint uVar3;
+  uint uVar4;
+  uint uVar5;
+  uint uVar6;
   int *in_R8;
+  FEATURE_ENABLED_STATE FVar7;
   
-  FVar3 = WilApi_GetFeatureEnabledState(0x337e473,3,in_R8);
+  FVar2 = WilApi_GetFeatureEnabledState(0x337e473,3,in_R8);
   param_1[0] = 0;
   param_1[1] = 0;
-  RVar5 = -(uint)((FVar3 & 0x40) != 0) & 0x800 | -(uint)((FVar3 & 0x80) != 0) & 0x400;
-  RVar6 = RVar5 | (FVar3 & 3) << 7;
-  *param_1 = RVar6;
-  if ((FVar3 & 0xffffff3f) == 0) {
-    RVar4 = 0x40;
+  FVar7 = FVar2 & 0xffffff3f;
+  uVar4 = -(uint)((FVar2 & 0x40) != 0) & 0x800 | -(uint)((FVar2 & 0x80) != 0) & 0x400;
+  uVar5 = uVar4 | (FVar2 & 3) << 7;
+  *param_1 = uVar5;
+  if (FVar7 == 0) {
+    uVar3 = 0x40;
   }
   else {
-    RVar4 = 0;
-    if ((FVar3 & 0xffffff3f) == 2) {
-      RVar4 = 0x40;
+    uVar3 = 0;
+    if (FVar7 == 2) {
+      uVar3 = 0x40;
     }
   }
-  RVar6 = RVar6 | RVar4;
-  *param_1 = RVar6;
-  RVar7 = 1;
-  if (RVar5 == 0xc00) {
+  uVar5 = uVar5 | uVar3;
+  *param_1 = uVar5;
+  bVar1 = false;
+  uVar6 = 1;
+  if ((uVar4 == 0xc00) || (uVar3 != 0)) {
+    FeatureImpl<__WilFeatureTraits_Feature_GatePerf>::ReportUsage
+              ((FeatureImpl<__WilFeatureTraits_Feature_GatePerf> *)
+               &`private:_static_class_wil::details::FeatureImpl<__WilFeatureTraits_Feature_GatePerf>&___ptr64___cdecl_wil::Feature<__WilFeatureTraits_Feature_GatePerf>::GetImpl(void)'
+                ::__l2::impl,SUB41(uVar5,0),0xc00,(ulonglong)FVar7);
     bVar1 = true;
-LAB_0:
-    bVar2 = FeatureImpl<__WilFeatureTraits_Feature_GatePerf>::__private_IsEnabled
-                      ((FeatureImpl<__WilFeatureTraits_Feature_GatePerf> *)
-                       &`private:_static_class_wil::details::FeatureImpl<__WilFeatureTraits_Feature_GatePerf>&___ptr64___cdecl_wil::Feature<__WilFeatureTraits_Feature_GatePerf>::GetImpl(void)'
-                        ::__l2::impl,RVar6);
-    RVar6 = *param_1;
-    if ((bVar1) && (!bVar2)) {
-      RVar6 = RVar6 & 0xfffffbff;
-    }
-    if (((RVar6 & 0x40) != 0) && (bVar2)) goto LAB_1;
   }
-  else {
-    bVar1 = false;
-    if (RVar4 != 0) goto LAB_0;
+  if (((*param_1 & 0x40U) == 0) || (!bVar1)) {
+    uVar6 = 0;
   }
-  RVar7 = 0;
-LAB_1:
-  *param_1 = RVar6 & 0xfffffffe | RVar7;
+  *param_1 = *param_1 & 0xfffffffeU | uVar6;
   return param_1;
 }
 

```


## CCursorVisual::RenderContent

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.4|
|i_ratio|0.32|
|m_ratio|0.95|
|b_ratio|0.85|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|RenderContent|RenderContent|
|fullname|CCursorVisual::RenderContent|CCursorVisual::RenderContent|
|refcount|3|3|
|`length`|801|730|
|`called`|CComposition::GetFrameTargetTime<br>CCursorState::EnsureCompositionResources<br>CCursorVisual::DrawCrosshair<br>CCursorVisual::HasVisibleCursor<br>CDrawingContext::DrawBitmapRealization<br>CDrawingContext::PopRenderOptionsInternal<br>CDrawingContext::PushRenderOptionsInternal<br>CVisual::RenderContent<br>gsl::final_action<<lambda_f5980df7b8a7e043f4787e76bfd73b62>_>::~final_action<<lambda_f5980df7b8a7e043f4787e76bfd73b62>_><br>wil::details::in1diag3::Return_Hr|<details><summary>Expand for full list:<br>CComposition::GetFrameTargetTime<br>CCursorState::EnsureCompositionResources<br>CCursorState::GetSnappedShapeRect<br>CCursorState::GetTrailPointOpacity<br>CCursorVisual::DrawCrosshair<br>CCursorVisual::HasVisibleCursor<br>CDrawingContext::DrawBitmapRealization<br>CDrawingContext::IsSoftwareCursor<br>CDrawingContext::PopRenderOptionsInternal<br>CDrawingContext::PushRenderOptionsInternal<br>CVisual::RenderContent</summary>__security_check_cookie<br>gsl::final_action<<lambda_f5980df7b8a7e043f4787e76bfd73b62>_>::~final_action<<lambda_f5980df7b8a7e043f4787e76bfd73b62>_><br>wil::details::in1diag3::Return_Hr</details>|
|calling|||
|paramcount|3|3|
|`address`|180294550|180293460|
|sig|long __thiscall RenderContent(CCursorVisual * this, CDrawingContext * param_1, bool * param_2)|long __thiscall RenderContent(CCursorVisual * this, CDrawingContext * param_1, bool * param_2)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### CCursorVisual::RenderContent Called Diff


```diff
--- CCursorVisual::RenderContent called
+++ CCursorVisual::RenderContent called
@@ -2,0 +3,2 @@
+CCursorState::GetSnappedShapeRect
+CCursorState::GetTrailPointOpacity
@@ -5,0 +8 @@
+CDrawingContext::IsSoftwareCursor
@@ -8,0 +12 @@
+__security_check_cookie
```


### CCursorVisual::RenderContent Diff


```diff
--- CCursorVisual::RenderContent
+++ CCursorVisual::RenderContent
@@ -1,140 +1,143 @@
 
+/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
 /* public: virtual long __cdecl CCursorVisual::RenderContent(class CDrawingContext * __ptr64,bool *
    __ptr64) __ptr64 */
 
 long __thiscall
 CCursorVisual::RenderContent(CCursorVisual *this,CDrawingContext *param_1,bool *param_2)
 
 {
   undefined8 *puVar1;
-  longlong lVar2;
-  bool bVar3;
+  bool bVar2;
+  long lVar3;
   long lVar4;
-  long lVar5;
-  __uint64 _Var6;
+  __uint64 _Var5;
+  TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> *pTVar6;
+  CCursorState *this_00;
   uint uVar7;
   undefined8 *puVar8;
+  float fVar9;
   void *unaff_retaddr;
-  char local_res20 [8];
-  char *local_78;
-  CDrawingContext *local_70;
-  undefined1 local_68;
-  undefined4 local_60;
-  undefined8 local_5c;
-  undefined8 uStack_54;
-  undefined8 local_4c;
-  undefined8 uStack_44;
-  undefined4 local_3c;
+  undefined1 auStackY_d8 [32];
+  char local_98 [8];
+  undefined4 local_90;
+  undefined8 local_8c;
+  undefined8 uStack_84;
+  undefined8 local_7c;
+  undefined8 uStack_74;
+  undefined4 local_6c;
+  char *local_68;
+  CDrawingContext *local_60;
+  undefined1 local_58;
+  ulonglong local_40;
   
-  lVar4 = CVisual::RenderContent((CVisual *)this,param_1,param_2);
-  if (lVar4 < 0) {
+  local_40 = __security_cookie ^ (ulonglong)auStackY_d8;
+  lVar3 = CVisual::RenderContent((CVisual *)this,param_1,param_2);
+  lVar4 = 0;
+  if (lVar3 < 0) {
     wil::details::in1diag3::Return_Hr
-              (unaff_retaddr,0x128,
-               "onecoreuap\\windows\\dwm\\dwmcore\\resources\\global\\cursorvisual.cpp",lVar4);
-    return lVar4;
+              (unaff_retaddr,0x12f,
+               "onecoreuap\\windows\\dwm\\dwmcore\\resources\\global\\cursorvisual.cpp",lVar3);
+    return lVar3;
   }
-  local_78 = local_res20;
-  local_res20[0] = '\0';
-  local_68 = 1;
-  lVar4 = 0;
-  local_70 = param_1;
+  local_68 = local_98;
+  local_98[0] = '\0';
+  local_58 = 1;
+  local_60 = param_1;
   if (*(longlong *)(this + 0x2c0) == 0) goto LAB_0;
-  _Var6 = CComposition::GetFrameTargetTime(*(CComposition **)(this + 0x18));
+  _Var5 = CComposition::GetFrameTargetTime(*(CComposition **)(this + 0x18));
   if ((*(char *)(*(longlong *)(this + 0x2c0) + 0x70) == '\0') ||
-     (lVar5 = DrawCrosshair(this,param_1), -1 < lVar5)) {
+     (lVar4 = DrawCrosshair(this,param_1), -1 < lVar4)) {
     puVar1 = *(undefined8 **)(*(longlong *)(this + 0x2c0) + 0x100);
-    for (puVar8 = (undefined8 *)*puVar1; puVar8 != puVar1; puVar8 = (undefined8 *)*puVar8) {
+    for (puVar8 = (undefined8 *)*puVar1; lVar4 = 0, puVar8 != puVar1; puVar8 = (undefined8 *)*puVar8
+        ) {
       if (*(char *)(puVar8 + 4) != '\0') {
-        if (local_res20[0] != '\0') goto LAB_1;
-        local_60 = 8;
-        uStack_44 = 0;
-        local_4c = 2;
-        local_3c = 0;
-        local_5c = 0;
-        uStack_54 = 0;
-        lVar5 = CDrawingContext::PushRenderOptionsInternal
-                          (param_1,(CVisual *)0x0,(MilRenderOptions *)&local_60,true);
-        if (-1 < lVar5) {
-          local_res20[0] = '\x01';
+        if (local_98[0] != '\0') goto LAB_1;
+        local_90 = 8;
+        uStack_74 = 0;
+        local_7c = 2;
+        local_6c = 0;
+        local_8c = 0;
+        uStack_84 = 0;
+        lVar4 = CDrawingContext::PushRenderOptionsInternal
+                          (param_1,(CVisual *)0x0,(MilRenderOptions *)&local_90,true);
+        if (-1 < lVar4) {
+          local_98[0] = '\x01';
           goto LAB_1;
         }
-        uVar7 = 0x14a;
-        lVar4 = lVar5;
+        uVar7 = 0x151;
 LAB_2:
         wil::details::in1diag3::Return_Hr
                   (unaff_retaddr,uVar7,
                    "onecoreuap\\windows\\dwm\\dwmcore\\resources\\global\\cursorvisual.cpp",lVar4);
         goto LAB_0;
       }
-      if (local_res20[0] != '\0') {
+      if (local_98[0] != '\0') {
         CDrawingContext::PopRenderOptionsInternal(param_1,true);
-        local_res20[0] = '\0';
+        local_98[0] = '\0';
       }
 LAB_1:
-      lVar5 = CDrawingContext::DrawBitmapRealization
+      fVar9 = CCursorState::GetTrailPointOpacity
+                        (*(CCursorState **)(this + 0x2c0),(TrailPoint *)(puVar8 + 2),_Var5);
+      lVar4 = CDrawingContext::DrawBitmapRealization
                         (param_1,(IBitmapRealization *)puVar8[3],
                          (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
                           *)((longlong)puVar8 + 0x24),(MILMatrix3x2 *)((longlong)puVar8 + 0x34),
-                         false,0,1.0 - (float)(_Var6 - puVar8[2]) /
-                                       (float)(ulonglong)
-                                              (*(longlong *)(*(longlong *)(this + 0x2c0) + 0x110) *
-                                              10));
-      if (lVar5 < 0) {
-        uVar7 = 0x15c;
-        lVar4 = lVar5;
+                         false,0,fVar9);
+      if (lVar4 < 0) {
+        uVar7 = 0x164;
         goto LAB_2;
       }
     }
-    bVar3 = HasVisibleCursor(this);
-    if ((!bVar3) ||
-       ((*(longlong *)(param_1 + 0x30) != 0 &&
-        (*(CCursorVisual **)(*(longlong *)(param_1 + 0x30) + 0x4b18) == this)))) goto LAB_0;
+    bVar2 = HasVisibleCursor(this);
+    if ((!bVar2) || (bVar2 = CDrawingContext::IsSoftwareCursor(param_1,this), !bVar2))
+    goto LAB_0;
     if (*(char *)(*(longlong *)(this + 0x2c0) + 0x51) == '\0') {
-      if (local_res20[0] != '\0') {
+      if (local_98[0] != '\0') {
         CDrawingContext::PopRenderOptionsInternal(param_1,true);
-        local_res20[0] = '\0';
+        local_98[0] = '\0';
       }
     }
-    else if (local_res20[0] == '\0') {
-      local_60 = 8;
-      uStack_44 = 0;
-      local_4c = 2;
-      local_3c = 0;
-      local_5c = 0;
-      uStack_54 = 0;
-      lVar5 = CDrawingContext::PushRenderOptionsInternal
-                        (param_1,(CVisual *)0x0,(MilRenderOptions *)&local_60,true);
-      if (lVar5 < 0) {
-        uVar7 = 0x168;
-        lVar4 = lVar5;
+    else if (local_98[0] == '\0') {
+      local_90 = 8;
+      uStack_74 = 0;
+      local_7c = 2;
+      local_6c = 0;
+      local_8c = 0;
+      uStack_84 = 0;
+      lVar3 = CDrawingContext::PushRenderOptionsInternal
+                        (param_1,(CVisual *)0x0,(MilRenderOptions *)&local_90,true);
+      if (lVar3 < 0) {
+        uVar7 = 0x170;
+        lVar4 = lVar3;
         goto LAB_3;
       }
-      local_res20[0] = '\x01';
+      local_98[0] = '\x01';
     }
     CCursorState::EnsureCompositionResources(*(CCursorState **)(this + 0x2c0));
-    lVar2 = *(longlong *)(this + 0x2c0);
-    lVar5 = CDrawingContext::DrawBitmapRealization
-                      (param_1,*(IBitmapRealization **)(lVar2 + 0x78),
-                       (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
-                        *)(lVar2 + 0x80),(MILMatrix3x2 *)(lVar2 + 0x90),false,0,1.0);
-    if (-1 < lVar5) {
+    this_00 = *(CCursorState **)(this + 0x2c0);
+    pTVar6 = (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> *)
+             CCursorState::GetSnappedShapeRect(this_00);
+    lVar3 = CDrawingContext::DrawBitmapRealization
+                      (param_1,*(IBitmapRealization **)(this_00 + 0x78),pTVar6,
+                       (MILMatrix3x2 *)(this_00 + 0x90),false,0,1.0);
+    if (-1 < lVar3) {
       *(undefined8 *)(this + 0x2c8) = *(undefined8 *)(*(longlong *)(this + 0x18) + 0x378);
       goto LAB_0;
     }
-    uVar7 = 0x178;
-    lVar4 = lVar5;
+    uVar7 = 0x181;
+    lVar4 = lVar3;
   }
   else {
-    uVar7 = 0x13e;
-    lVar4 = lVar5;
+    uVar7 = 0x145;
   }
 LAB_3:
   wil::details::in1diag3::Return_Hr
             (unaff_retaddr,uVar7,
              "onecoreuap\\windows\\dwm\\dwmcore\\resources\\global\\cursorvisual.cpp",lVar4);
 LAB_0:
   gsl::final_action<<lambda_f5980df7b8a7e043f4787e76bfd73b62>_>::
-  ~final_action<<lambda_f5980df7b8a7e043f4787e76bfd73b62>_>(&local_78);
+  ~final_action<<lambda_f5980df7b8a7e043f4787e76bfd73b62>_>(&local_68);
   return lVar4;
 }
 

```


## CDrawingContext::FillShapeWithBitmap

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.36|
|i_ratio|0.41|
|m_ratio|0.99|
|b_ratio|0.81|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|FillShapeWithBitmap|FillShapeWithBitmap|
|fullname|CDrawingContext::FillShapeWithBitmap|CDrawingContext::FillShapeWithBitmap|
|refcount|8|8|
|`length`|6141|5951|
|`called`|<details><summary>Expand for full list:<br>?Free@DefaultHeap@@SAXPEAX@Z<br>API-MS-WIN-CORE-HEAP-L1-1-0.DLL::GetProcessHeap<br>API-MS-WIN-CORE-HEAP-L1-1-0.DLL::HeapFree<br>API-MS-WIN-CRT-RUNTIME-L1-1-0.DLL::_invalid_parameter_noinfo_noreturn<br>CDrawListBitmap::~CDrawListBitmap<br>CDrawListPrimitive0::`vector_deleting_destructor'<br>CDrawingContext::FillRectanglesWithDrawListBrush<br>CDrawingContext::FillShapeWithBitmapRealization<br>CDrawingContext::GetD2DInterpolationMode<br>CDrawingContext::GetOpacity<br>CDrawingContext::PushTransformInternal</summary>CDxHandleBitmapRealization::GetSize`adjustor{256}'<br>CGDISectionBitmapRealization::AddRef`adjustor{392}'<br>CMILMatrix::Is90Or270RotationWithTranslateAndScaleIgnoreZ<1><br>CMILMatrix::IsTranslateAndScaleIgnoreZ<1><br>CMILMatrix::IsTranslateIgnoreZ<1><br>CMILMatrix::Transform2DRectToPerspective<br>CMILRefCountImpl::AddReference<br>CMultiPrimitiveDrawListBrush::`scalar_deleting_destructor'<br>CRectanglesShape::GetRectangles<br>CRectanglesShape::GetTightBounds<br>CRectanglesShape::GetUnOccludedWorldShape<br>CRectanglesShape::IsEmpty<br>CRectanglesShape::~CRectanglesShape<br>CSurfaceDrawListBrush::`scalar_deleting_destructor'<br>CThreadLocalObjectCache<CRectanglesShape,CRectanglesShape>::Free<br>CThreadLocalObjectCache<CSurfaceDrawListBrush,CSurfaceDrawListBrush>::Alloc<br>IBitmapRealizationMethodsT<CDxHandleBitmapRealization,IGDIBitmapRealization>::GetSize`adjustor{320}'<br>IDeviceSurfaceMethodsT<CD2DBitmap,IDeviceTextureTarget>::GetSize`adjustor{184}'<br>InterpolationMode::FromD2D1InterpolationMode<br>MilInstrumentationCheckHR_MaybeFailFast<br>__security_check_cookie<br>_guard_dispatch_icall$thunk$10345483385596137414<br>detail::vector_facade<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,detail::buffer_impl<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,10,1,detail::liberal_expansion_policy>_>::~vector_facade<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,detail::buffer_impl<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,10,1,detail::liberal_expansion_policy>_><br>detail::vector_facade<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,detail::buffer_impl<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,4,1,detail::liberal_expansion_policy>_>::clear_region<br>gsl::final_action<<lambda_8739158a9a179f14d1c8f93c1d3d537f>_>::~final_action<<lambda_8739158a9a179f14d1c8f93c1d3d537f>_><br>memmove<br>operator_new[]<br>std::_Get_unwrapped_n<stdext::checked_array_iterator<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>*___ptr64>&___ptr64,__int64><br>std::unique_ptr<CShape,std::default_delete<CShape>_>::~unique_ptr<CShape,std::default_delete<CShape>_><br>wil::details::in1diag3::Log_Hr</details>|<details><summary>Expand for full list:<br>?Free@DefaultHeap@@SAXPEAX@Z<br>API-MS-WIN-CORE-HEAP-L1-1-0.DLL::GetProcessHeap<br>API-MS-WIN-CORE-HEAP-L1-1-0.DLL::HeapFree<br>API-MS-WIN-CRT-RUNTIME-L1-1-0.DLL::_invalid_parameter_noinfo_noreturn<br>CDrawListBitmap::~CDrawListBitmap<br>CDrawListPrimitive0::`vector_deleting_destructor'<br>CDrawingContext::FillRectanglesWithDrawListBrush<br>CDrawingContext::FillShapeWithBitmapRealization<br>CDrawingContext::GetD2DInterpolationMode<br>CDrawingContext::GetOpacity<br>CDrawingContext::PushTransformInternal</summary>CDxHandleBitmapRealization::GetSize`adjustor{256}'<br>CGDISectionBitmapRealization::AddRef`adjustor{392}'<br>CMILMatrix::Is90Or270RotationWithTranslateAndScaleIgnoreZ<1><br>CMILMatrix::IsTranslateAndScaleIgnoreZ<1><br>CMILMatrix::IsTranslateIgnoreZ<1><br>CMILMatrix::Transform2DRectToPerspective<br>CMultiPrimitiveDrawListBrush::`scalar_deleting_destructor'<br>CRectanglesShape::GetRectangles<br>CRectanglesShape::GetTightBounds<br>CRectanglesShape::GetUnOccludedWorldShape<br>CRectanglesShape::IsEmpty<br>CRectanglesShape::~CRectanglesShape<br>CSurfaceDrawListBrush::CSurfaceDrawListBrush<br>CSurfaceDrawListBrush::`scalar_deleting_destructor'<br>CSurfaceDrawListBrush::~CSurfaceDrawListBrush<br>CThreadLocalObjectCache<CRectanglesShape,CRectanglesShape>::Free<br>CThreadLocalObjectCache<CSurfaceDrawListBrush,CSurfaceDrawListBrush>::Alloc<br>CThreadLocalObjectCache<CSurfaceDrawListBrush,CSurfaceDrawListBrush>::Free<br>IBitmapRealizationMethodsT<CDxHandleBitmapRealization,IGDIBitmapRealization>::GetSize`adjustor{320}'<br>IDeviceSurfaceMethodsT<CD2DBitmap,IDeviceTextureTarget>::GetSize`adjustor{184}'<br>InterpolationMode::FromD2D1InterpolationMode<br>MilInstrumentationCheckHR_MaybeFailFast<br>__security_check_cookie<br>_guard_dispatch_icall$thunk$10345483385596137414<br>detail::vector_facade<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,detail::buffer_impl<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,10,1,detail::liberal_expansion_policy>_>::~vector_facade<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,detail::buffer_impl<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,10,1,detail::liberal_expansion_policy>_><br>detail::vector_facade<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,detail::buffer_impl<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,4,1,detail::liberal_expansion_policy>_>::clear_region<br>gsl::final_action<<lambda_8739158a9a179f14d1c8f93c1d3d537f>_>::~final_action<<lambda_8739158a9a179f14d1c8f93c1d3d537f>_><br>memmove<br>operator_new[]<br>std::_Get_unwrapped_n<stdext::checked_array_iterator<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>*___ptr64>&___ptr64,__int64><br>std::unique_ptr<CShape,std::default_delete<CShape>_>::~unique_ptr<CShape,std::default_delete<CShape>_><br>wil::details::in1diag3::Log_Hr</details>|
|calling|CComposeTop::RenderWorker<br>CWindowNode::RenderImage|CComposeTop::RenderWorker<br>CWindowNode::RenderImage|
|paramcount|6|6|
|`address`|1800a1000|1800bc280|
|sig|long __thiscall FillShapeWithBitmap(CDrawingContext * this, IBitmapResource * param_1, CMILMatrix * param_2, CShape * param_3, bool param_4, int param_5)|long __thiscall FillShapeWithBitmap(CDrawingContext * this, IBitmapResource * param_1, CMILMatrix * param_2, CShape * param_3, bool param_4, int param_5)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### CDrawingContext::FillShapeWithBitmap Called Diff


```diff
--- CDrawingContext::FillShapeWithBitmap called
+++ CDrawingContext::FillShapeWithBitmap called
@@ -18 +17,0 @@
-CMILRefCountImpl::AddReference
@@ -24,0 +24 @@
+CSurfaceDrawListBrush::CSurfaceDrawListBrush
@@ -25,0 +26 @@
+CSurfaceDrawListBrush::~CSurfaceDrawListBrush
@@ -27,0 +29 @@
+CThreadLocalObjectCache<CSurfaceDrawListBrush,CSurfaceDrawListBrush>::Free
```


### CDrawingContext::FillShapeWithBitmap Diff


```diff
--- CDrawingContext::FillShapeWithBitmap
+++ CDrawingContext::FillShapeWithBitmap
@@ -1,964 +1,932 @@
 
 /* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
    guard_dispatch_icall */
 /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
-/* WARNING: Removing unreachable block (ram,0x0001800a15e8) */
-/* WARNING: Removing unreachable block (ram,0x0001800a14ee) */
-/* WARNING: Removing unreachable block (ram,0x0001800a14c8) */
-/* WARNING: Removing unreachable block (ram,0x0001800a14f3) */
-/* WARNING: Removing unreachable block (ram,0x0001800a1515) */
-/* WARNING: Removing unreachable block (ram,0x0001800a151e) */
-/* WARNING: Removing unreachable block (ram,0x0001800a15da) */
-/* WARNING: Removing unreachable block (ram,0x0001800a15e3) */
-/* WARNING: Removing unreachable block (ram,0x0001800a153f) */
-/* WARNING: Removing unreachable block (ram,0x0001800a1544) */
-/* WARNING: Removing unreachable block (ram,0x0001800a1546) */
-/* WARNING: Removing unreachable block (ram,0x0001800a15f4) */
-/* WARNING: Removing unreachable block (ram,0x0001800a1b5a) */
-/* WARNING: Removing unreachable block (ram,0x0001800a1b70) */
-/* WARNING: Removing unreachable block (ram,0x0001800a1b80) */
-/* WARNING: Removing unreachable block (ram,0x0001800a1b89) */
-/* WARNING: Removing unreachable block (ram,0x0001800a1b9b) */
-/* WARNING: Removing unreachable block (ram,0x0001800a1ba7) */
+/* WARNING: Removing unreachable block (ram,0x0001800bc829) */
+/* WARNING: Removing unreachable block (ram,0x0001800bc72e) */
+/* WARNING: Removing unreachable block (ram,0x0001800bc709) */
+/* WARNING: Removing unreachable block (ram,0x0001800bc733) */
+/* WARNING: Removing unreachable block (ram,0x0001800bc755) */
+/* WARNING: Removing unreachable block (ram,0x0001800bc75e) */
+/* WARNING: Removing unreachable block (ram,0x0001800bc81b) */
+/* WARNING: Removing unreachable block (ram,0x0001800bc824) */
+/* WARNING: Removing unreachable block (ram,0x0001800bc77f) */
+/* WARNING: Removing unreachable block (ram,0x0001800bc784) */
+/* WARNING: Removing unreachable block (ram,0x0001800bc786) */
+/* WARNING: Removing unreachable block (ram,0x0001800bc835) */
+/* WARNING: Removing unreachable block (ram,0x0001800bce09) */
+/* WARNING: Removing unreachable block (ram,0x0001800bce20) */
+/* WARNING: Removing unreachable block (ram,0x0001800bce2f) */
+/* WARNING: Removing unreachable block (ram,0x0001800bce38) */
+/* WARNING: Removing unreachable block (ram,0x0001800bce49) */
+/* WARNING: Removing unreachable block (ram,0x0001800bce55) */
+/* WARNING: Removing unreachable block (ram,0x0001800bcc8a) */
 /* public: long __cdecl CDrawingContext::FillShapeWithBitmap(class IBitmapResource * __ptr64,class
    CMILMatrix const & __ptr64,class CShape const & __ptr64,bool,int) __ptr64 */
 
 long __thiscall
 CDrawingContext::FillShapeWithBitmap
           (CDrawingContext *this,IBitmapResource *param_1,CMILMatrix *param_2,CShape *param_3,
           bool param_4,int param_5)
 
 {
   CMILMatrix CVar1;
   CMILMatrix CVar2;
   code *pcVar3;
   longlong lVar4;
   undefined1 auVar5 [16];
-  IBitmapRealizationMethodsT<CDxHandleBitmapRealization,IGDIBitmapRealization> *this_00;
-  CRectanglesShape *pCVar6;
-  char cVar7;
-  bool bVar8;
-  bool bVar9;
-  long lVar10;
-  int iVar11;
-  int iVar12;
-  D2D1_INTERPOLATION_MODE DVar13;
-  Enum EVar14;
-  __uint64 _Var15;
-  TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> *pTVar16;
+  char cVar6;
+  bool bVar7;
+  long lVar8;
+  int iVar9;
+  int iVar10;
+  D2D1_INTERPOLATION_MODE DVar11;
+  Enum EVar12;
+  __uint64 _Var13;
+  TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> *pTVar14;
   void *_Dst;
-  longlong lVar17;
-  CMILMatrix_IdentityType *pCVar18;
+  longlong lVar15;
+  CMILMatrix_IdentityType *pCVar16;
   HANDLE hHeap;
-  float *pfVar19;
-  CMultiPrimitiveDrawListBrush *pCVar20;
-  ulonglong *puVar21;
+  float *pfVar17;
+  CSurfaceDrawListBrush *pCVar18;
+  CMultiPrimitiveDrawListBrush *pCVar19;
+  ulonglong *puVar20;
+  TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> *pTVar21;
   ulonglong uVar22;
-  undefined8 uVar23;
-  CShape *this_01;
+  ulonglong uVar23;
+  undefined8 uVar24;
   size_t _Size;
-  TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> *pTVar24;
-  CMultiPrimitiveDrawListBrush CVar25;
-  CRectanglesShape *pCVar26;
-  ulonglong uVar27;
-  float fVar28;
+  CGDISectionBitmapRealization *this_00;
+  char cVar25;
+  bool bVar26;
+  CRectanglesShape *pCVar27;
+  CRectanglesShape *pCVar28;
   float fVar29;
   float fVar30;
   float fVar31;
   float fVar32;
   float fVar33;
   float fVar34;
   float fVar35;
   float fVar36;
   float fVar37;
   float fVar38;
   float fVar39;
   float fVar40;
   float fVar41;
   float fVar42;
   float fVar43;
   float fVar44;
+  float fVar45;
   void *unaff_retaddr;
-  undefined1 auStackY_2e8 [32];
-  uint uVar45;
-  undefined2 local_2a8;
+  undefined1 auStackY_2d8 [32];
+  uint uVar46;
   uint local_298;
-  CShape *local_290;
-  undefined8 local_288;
-  undefined8 uStack_280;
-  undefined8 local_278;
-  undefined8 uStack_270;
+  undefined4 local_288;
+  CShape *local_278;
+  IBitmapRealizationMethodsT<CDxHandleBitmapRealization,IGDIBitmapRealization> *local_270;
   undefined8 local_268;
+  undefined8 uStack_260;
   CRectanglesShape *local_258;
-  IBitmapRealizationMethodsT<CDxHandleBitmapRealization,IGDIBitmapRealization> *local_250;
-  IBitmapRealizationMethodsT<CDxHandleBitmapRealization,IGDIBitmapRealization> *local_248;
-  CMILRefCountImpl *local_240;
-  uint local_238;
-  uint local_234;
+  CGDISectionBitmapRealization *local_250;
+  undefined8 local_248;
+  undefined8 uStack_240;
+  undefined8 local_238;
   float local_230;
   float local_22c;
-  float local_228;
-  undefined8 local_220;
-  undefined8 uStack_218;
-  CMILRefCountImpl *local_210;
-  IBitmapRealizationMethodsT<CDxHandleBitmapRealization,IGDIBitmapRealization> *local_208;
-  CMultiPrimitiveDrawListBrush local_200;
-  TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> *local_1f8;
-  undefined8 uStack_1f0;
-  CRectanglesShape *local_1e8;
-  float local_1d8;
-  float fStack_1d4;
-  undefined4 uStack_1d0;
-  float fStack_1cc;
-  float local_1c8;
-  undefined4 uStack_1c4;
-  float fStack_1c0;
-  float fStack_1bc;
+  undefined4 local_228;
+  float local_218;
+  uint local_210;
+  uint local_20c;
+  float local_208;
+  float local_204;
+  undefined8 local_200;
+  undefined8 uStack_1f8;
+  TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> *local_1e8;
+  undefined8 uStack_1e0;
+  CRectanglesShape *local_1d8;
+  undefined8 local_1c8;
+  CGDISectionBitmapRealization *local_1c0;
+  bool local_1b8;
   float local_1b0 [4];
   float local_1a0 [4];
   float local_190;
   float fStack_18c;
   float fStack_188;
   float fStack_184;
   TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> *local_178;
   TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> *local_170;
-  TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> *local_168;
+  TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> *pTStack_168;
   TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> local_160 [64]
   ;
   TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> local_120 [8];
   undefined1 local_118 [16];
   float local_108 [8];
   ulonglong local_e8;
   
-  local_e8 = __security_cookie ^ (ulonglong)auStackY_2e8;
-  local_290 = param_3;
+  local_e8 = __security_cookie ^ (ulonglong)auStackY_2d8;
+  local_278 = param_3;
   if (*(code **)(*(longlong *)param_3 + 0x10) == CRectanglesShape::IsEmpty) {
-    cVar7 = CRectanglesShape::IsEmpty((CRectanglesShape *)param_3);
+    cVar6 = CRectanglesShape::IsEmpty((CRectanglesShape *)param_3);
   }
   else {
-    cVar7 = (**(code **)(*(longlong *)param_3 + 0x10))();
-  }
-  if (cVar7 != '\0') {
+    cVar6 = (**(code **)(*(longlong *)param_3 + 0x10))();
+  }
+  if (cVar6 != '\0') {
     return 0;
   }
-  fVar41 = *(float *)(param_2 + 0x10);
-  fVar38 = *(float *)(param_2 + 0x14);
-  fVar43 = *(float *)param_2;
-  fVar32 = *(float *)(param_2 + 4);
-  lVar17 = *(longlong *)param_1;
-  fVar35 = 1.0 / (fVar38 * fVar43 - fVar41 * fVar32);
-  local_230 = fVar38 * fVar35;
-  fVar44 = -fVar32 * fVar35;
-  fVar39 = -fVar41 * fVar35;
-  local_22c = fVar43 * fVar35;
-  local_240 = (CMILRefCountImpl *)CONCAT44(local_240._4_4_,fVar44);
-  fVar43 = (*(float *)(param_2 + 0x30) * fVar32 - *(float *)(param_2 + 0x34) * fVar43) * fVar35;
-  fVar35 = (*(float *)(param_2 + 0x34) * fVar41 - *(float *)(param_2 + 0x30) * fVar38) * fVar35;
-  local_248 = (IBitmapRealizationMethodsT<CDxHandleBitmapRealization,IGDIBitmapRealization> *)
-              CONCAT44(local_248._4_4_,fVar35);
-  local_228 = fVar43;
-  if (*(code **)(lVar17 + 0x20) == CGdiSpriteBitmap::IsOpaque) {
+  fVar42 = *(float *)(param_2 + 0x10);
+  fVar35 = *(float *)(param_2 + 0x14);
+  fVar44 = *(float *)param_2;
+  fVar38 = *(float *)(param_2 + 4);
+  lVar15 = *(longlong *)param_1;
+  fVar36 = 1.0 / (fVar35 * fVar44 - fVar42 * fVar38);
+  local_208 = fVar35 * fVar36;
+  fVar39 = -fVar38 * fVar36;
+  fVar45 = -fVar42 * fVar36;
+  local_204 = fVar44 * fVar36;
+  local_270 = (IBitmapRealizationMethodsT<CDxHandleBitmapRealization,IGDIBitmapRealization> *)
+              CONCAT44(local_270._4_4_,fVar45);
+  fVar44 = (*(float *)(param_2 + 0x30) * fVar38 - *(float *)(param_2 + 0x34) * fVar44) * fVar36;
+  fVar36 = (*(float *)(param_2 + 0x34) * fVar42 - *(float *)(param_2 + 0x30) * fVar35) * fVar36;
+  local_288 = fVar44;
+  local_218 = fVar36;
+  if (*(code **)(lVar15 + 0x20) == CGdiSpriteBitmap::IsOpaque) {
     if ((param_1[0x33] == (IBitmapResource)0x0) && (*(int *)(param_1 + 0x24) == 3)) {
-      cVar7 = '\x01';
+      cVar6 = '\x01';
     }
     else {
-      cVar7 = '\0';
+      cVar6 = '\0';
     }
   }
   else {
-    cVar7 = (**(code **)(lVar17 + 0x20))(param_1);
-    lVar17 = *(longlong *)param_1;
-  }
-  CVar25 = (CMultiPrimitiveDrawListBrush)0x1;
-  if (cVar7 == '\0') {
-    CVar25 = (CMultiPrimitiveDrawListBrush)param_4;
-  }
-  uVar23 = 0;
-  if ((*(longlong *)(this + 0x30) != 0) && (uVar23 = 0, g_pComposition[0x195a] == (CComposition)0x0)
-     ) {
-    uVar23 = 1;
-  }
-  pcVar3 = *(code **)(lVar17 + 0x30);
+    cVar6 = (**(code **)(lVar15 + 0x20))(param_1);
+    lVar15 = *(longlong *)param_1;
+  }
+  bVar26 = true;
+  if (cVar6 == '\0') {
+    bVar26 = param_4;
+  }
+  if ((*(longlong *)(this + 0x30) == 0) || (g_pComposition[0x195a] != (CComposition)0x0)) {
+    uVar24 = 0;
+  }
+  else {
+    uVar24 = 1;
+  }
+  pcVar3 = *(code **)(lVar15 + 0x30);
   (**(code **)(*(longlong *)(*(longlong *)(this + 0x20) + 8) + 0x18))
             ((longlong *)(*(longlong *)(this + 0x20) + 8),local_118);
-  (*pcVar3)(param_1,uVar23);
-  local_250 = (IBitmapRealizationMethodsT<CDxHandleBitmapRealization,IGDIBitmapRealization> *)0x0;
-  lVar10 = (**(code **)(*(longlong *)param_1 + 0x40))(param_1);
-  this_01 = local_290;
-  if (lVar10 < 0) {
-    MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar10,0x892,(void *)0x0);
+  (*pcVar3)(param_1,uVar24);
+  local_250 = (CGDISectionBitmapRealization *)0x0;
+  lVar8 = (**(code **)(*(longlong *)param_1 + 0x40))(param_1);
+  if (lVar8 < 0) {
+    MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar8,0x892,(void *)0x0);
     goto LAB_0;
   }
-  local_278 = (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> *
+  local_258 = (CRectanglesShape *)0x0;
+  local_248 = (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> *
               )&local_258;
-  local_258 = (CRectanglesShape *)0x0;
-  uStack_270 = (CRectanglesShape *)0x0;
-  iVar12 = -0x7767ff75;
-  lVar17 = *(longlong *)(this + 0x1f18);
-  fVar41 = 0.0;
-  local_268 = (CRectanglesShape *)CONCAT71(local_268._1_7_,1);
-  if (((lVar17 != 0) &&
-      (((*(code **)(*(longlong *)local_290 + 0x40) == CRectanglesShape::IsRectangles ||
-        (cVar7 = (**(code **)(*(longlong *)local_290 + 0x40))(local_290,0), cVar7 != '\0')) &&
-       (param_5 != 0)))) &&
+  uStack_240 = (CRectanglesShape *)0x0;
+  lVar15 = *(longlong *)(this + 0x1f18);
+  iVar10 = -0x7767ff75;
+  fVar42 = 0.0;
+  local_238 = (CRectanglesShape *)CONCAT71(local_238._1_7_,1);
+  if (((lVar15 != 0) &&
+      (((*(code **)(*(longlong *)param_3 + 0x40) == CRectanglesShape::IsRectangles ||
+        (cVar6 = (**(code **)(*(longlong *)param_3 + 0x40))(param_3,0), cVar6 != '\0')) &&
+       (param_3 = local_278, param_5 != 0)))) &&
      (((*(int *)(this + 0x140) == 0 || (*(int *)(this + 0x140) == 0)) ||
       (*(char *)((ulonglong)(*(int *)(this + 0x140) - 1) + *(longlong *)(this + 0x138)) == '\0'))))
   {
     if (*(int *)(this + 0x128) == 0) {
-      pCVar18 = &CMILMatrix::Identity;
+      pCVar16 = &CMILMatrix::Identity;
     }
     else {
-      pCVar18 = (CMILMatrix_IdentityType *)
+      pCVar16 = (CMILMatrix_IdentityType *)
                 ((ulonglong)(*(int *)(this + 0x128) - 1) * 0x44 + *(longlong *)(this + 0x120));
     }
-    CVar1 = *(CMILMatrix *)(pCVar18 + 0x40);
+    CVar1 = *(CMILMatrix *)(pCVar16 + 0x40);
     if ((char)CVar1 >> 6 < '\x01') {
       if (-1 < (char)CVar1 >> 6) {
-        CVar2 = *(CMILMatrix *)(pCVar18 + 0x41);
-        cVar7 = (char)((char)CVar2 << 2) >> 6;
-        if (cVar7 < '\x01') {
-          if (-1 < cVar7) {
+        CVar2 = *(CMILMatrix *)(pCVar16 + 0x41);
+        cVar6 = (char)((char)CVar2 << 2) >> 6;
+        if (cVar6 < '\x01') {
+          if (-1 < cVar6) {
             if (8.138021e-05 <=
-                ABS((ABS(*(float *)(pCVar18 + 0x1c)) * 61440.0 +
-                     ABS(*(float *)(pCVar18 + 0xc)) * 61440.0 + ABS(*(float *)(pCVar18 + 0x3c))) -
+                ABS((ABS(*(float *)(pCVar16 + 0x1c)) * 61440.0 +
+                     ABS(*(float *)(pCVar16 + 0xc)) * 61440.0 + ABS(*(float *)(pCVar16 + 0x3c))) -
                     1.0)) {
-              *(byte *)(pCVar18 + 0x41) = (byte)CVar2 & 0xdf | 0x10;
+              *(byte *)(pCVar16 + 0x41) = (byte)CVar2 & 0xdf | 0x10;
               goto LAB_1;
             }
-            *(byte *)(pCVar18 + 0x41) = (byte)CVar2 | 0x30;
-          }
-          if ((ABS(*(float *)(pCVar18 + 4) - 0.0) < 8.138021e-05) &&
-             (ABS(*(float *)(pCVar18 + 0x10) - 0.0) < 8.138021e-05)) {
-            *(byte *)(pCVar18 + 0x40) = (byte)CVar1 | 0xc0;
+            *(byte *)(pCVar16 + 0x41) = (byte)CVar2 | 0x30;
+          }
+          if ((ABS(*(float *)(pCVar16 + 4) - 0.0) < 8.138021e-05) &&
+             (ABS(*(float *)(pCVar16 + 0x10) - 0.0) < 8.138021e-05)) {
+            *(byte *)(pCVar16 + 0x40) = (byte)CVar1 | 0xc0;
             goto LAB_2;
           }
         }
 LAB_1:
-        *(byte *)(pCVar18 + 0x40) = (byte)CVar1 & 0x3f | 0x40;
+        *(byte *)(pCVar16 + 0x40) = (byte)CVar1 & 0x3f | 0x40;
         goto LAB_3;
       }
     }
     else {
 LAB_3:
-      bVar9 = CMILMatrix::Is90Or270RotationWithTranslateAndScaleIgnoreZ<1>((CMILMatrix *)pCVar18);
-      if (!bVar9) goto LAB_4;
+      bVar7 = CMILMatrix::Is90Or270RotationWithTranslateAndScaleIgnoreZ<1>((CMILMatrix *)pCVar16);
+      param_3 = local_278;
+      if (!bVar7) goto LAB_4;
     }
 LAB_2:
     local_1a0[0] = 0.0;
     local_1a0[1] = 0.0;
     local_1a0[2] = 0.0;
     local_1a0[3] = 0.0;
-    if (*(code **)(*(longlong *)this_01 + 0x30) == CRectanglesShape::GetTightBounds) {
-      iVar11 = CRectanglesShape::GetTightBounds
-                         ((CRectanglesShape *)this_01,
-                          (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
-                           *)local_1a0,(CMILMatrix *)0x0);
+    if (*(code **)(*(longlong *)local_278 + 0x30) == CRectanglesShape::GetTightBounds) {
+      iVar9 = CRectanglesShape::GetTightBounds
+                        ((CRectanglesShape *)local_278,
+                         (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
+                          *)local_1a0,(CMILMatrix *)0x0);
     }
     else {
-      iVar11 = (**(code **)(*(longlong *)this_01 + 0x30))();
-    }
-    if (-1 < iVar11) {
+      iVar9 = (**(code **)(*(longlong *)local_278 + 0x30))();
+    }
+    param_3 = local_278;
+    if (-1 < iVar9) {
       local_1b0[0] = 0.0;
       local_1b0[1] = 0.0;
       local_1b0[2] = 0.0;
       local_1b0[3] = 0.0;
-      local_288 = 0;
-      uStack_280 = 0;
+      local_268 = 0;
+      uStack_260 = 0;
       if (*(int *)(this + 0x128) == 0) {
-        pCVar18 = &CMILMatrix::Identity;
+        pCVar16 = &CMILMatrix::Identity;
       }
       else {
-        pCVar18 = (CMILMatrix_IdentityType *)
+        pCVar16 = (CMILMatrix_IdentityType *)
                   ((ulonglong)(*(int *)(this + 0x128) - 1) * 0x44 + *(longlong *)(this + 0x120));
       }
-      cVar7 = '\0';
-      bVar9 = false;
-      bVar8 = CMILMatrix::IsTranslateIgnoreZ<1>((CMILMatrix *)pCVar18);
-      if (bVar8) {
-        fVar28 = *(float *)(pCVar18 + 0x30) + local_1a0[0];
-        fVar37 = *(float *)(pCVar18 + 0x30) + local_1a0[2];
-        fVar42 = *(float *)(pCVar18 + 0x34) + local_1a0[1];
-        fVar40 = *(float *)(pCVar18 + 0x34) + local_1a0[3];
-        local_1b0[1] = fVar42;
-        local_1b0[0] = fVar28;
-        local_1b0[3] = fVar40;
-        local_1b0[2] = fVar37;
+      cVar25 = '\0';
+      cVar6 = '\0';
+      bVar7 = CMILMatrix::IsTranslateIgnoreZ<1>((CMILMatrix *)pCVar16);
+      if (bVar7) {
+        fVar29 = *(float *)(pCVar16 + 0x30) + local_1a0[0];
+        fVar40 = *(float *)(pCVar16 + 0x30) + local_1a0[2];
+        fVar43 = *(float *)(pCVar16 + 0x34) + local_1a0[1];
+        fVar41 = *(float *)(pCVar16 + 0x34) + local_1a0[3];
+        local_1b0[1] = fVar43;
+        local_1b0[0] = fVar29;
+        local_1b0[3] = fVar41;
+        local_1b0[2] = fVar40;
 LAB_5:
-        bVar9 = true;
+        cVar6 = '\x01';
 LAB_6:
-        cVar7 = '\x01';
-        pfVar19 = local_1b0;
-        uVar45 = 4;
+        cVar25 = '\x01';
+        pfVar17 = local_1b0;
+        uVar46 = 4;
       }
       else {
-        bVar8 = CMILMatrix::IsTranslateAndScaleIgnoreZ<1>((CMILMatrix *)pCVar18);
-        if (bVar8) {
-          fVar38 = *(float *)pCVar18;
-          fVar32 = *(float *)(pCVar18 + 0x14);
-          fVar28 = fVar38 * local_1a0[0] + *(float *)(pCVar18 + 0x30);
-          fVar42 = fVar32 * local_1a0[1] + *(float *)(pCVar18 + 0x34);
-          fVar37 = fVar38 * local_1a0[2] + *(float *)(pCVar18 + 0x30);
-          fVar40 = fVar32 * local_1a0[3] + *(float *)(pCVar18 + 0x34);
-          local_1b0[1] = fVar42;
-          local_1b0[0] = fVar28;
-          local_1b0[3] = fVar40;
-          local_1b0[2] = fVar37;
-          if ((0.0 < fVar38) && (0.0 < fVar32)) goto LAB_5;
+        bVar7 = CMILMatrix::IsTranslateAndScaleIgnoreZ<1>((CMILMatrix *)pCVar16);
+        if (bVar7) {
+          fVar35 = *(float *)pCVar16;
+          fVar38 = *(float *)(pCVar16 + 0x14);
+          fVar29 = fVar35 * local_1a0[0] + *(float *)(pCVar16 + 0x30);
+          fVar43 = fVar38 * local_1a0[1] + *(float *)(pCVar16 + 0x34);
+          fVar40 = fVar35 * local_1a0[2] + *(float *)(pCVar16 + 0x30);
+          fVar41 = fVar38 * local_1a0[3] + *(float *)(pCVar16 + 0x34);
+          local_1b0[1] = fVar43;
+          local_1b0[0] = fVar29;
+          local_1b0[3] = fVar41;
+          local_1b0[2] = fVar40;
+          if ((0.0 < fVar35) && (0.0 < fVar38)) goto LAB_5;
           goto LAB_6;
         }
         CMILMatrix::Transform2DRectToPerspective
-                  ((CMILMatrix *)pCVar18,(D2D_RECT_F *)local_1a0,(D2D_POINT_2F *)local_108);
-        pfVar19 = local_108;
-        uVar45 = 8;
-        fVar28 = local_1b0[0];
-        fVar37 = local_1b0[2];
-        fVar40 = local_1b0[3];
-        fVar42 = local_1b0[1];
-      }
-      for (uVar27 = 0; (uint)uVar27 < uVar45; uVar27 = (ulonglong)((uint)uVar27 + 1)) {
-        if (NAN(pfVar19[uVar27])) {
-          fVar37 = 3.4028235e+38;
+                  ((CMILMatrix *)pCVar16,(D2D_RECT_F *)local_1a0,(D2D_POINT_2F *)local_108);
+        pfVar17 = local_108;
+        uVar46 = 8;
+        fVar29 = local_1b0[0];
+        fVar40 = local_1b0[2];
+        fVar41 = local_1b0[3];
+        fVar43 = local_1b0[1];
+      }
+      for (uVar22 = 0; (uint)uVar22 < uVar46; uVar22 = (ulonglong)((uint)uVar22 + 1)) {
+        if (NAN(pfVar17[uVar22])) {
+          fVar40 = 3.4028235e+38;
           local_1b0[0] = -3.4028235e+38;
           local_1b0[1] = -3.4028235e+38;
           local_1b0[2] = 3.4028235e+38;
           local_1b0[3] = 3.4028235e+38;
-          fVar28 = -3.4028235e+38;
-          fVar38 = 3.4028235e+38;
-          fVar42 = -3.4028235e+38;
+          fVar29 = -3.4028235e+38;
+          fVar35 = 3.4028235e+38;
+          fVar43 = -3.4028235e+38;
           goto LAB_7;
         }
       }
-      fVar38 = fVar40;
-      if (!bVar9) {
-        if (cVar7 == '\0') {
-          uVar27 = 1;
-          fVar37 = local_108[0];
-          fVar38 = local_108[1];
+      fVar35 = fVar41;
+      if (cVar6 == '\0') {
+        if (cVar25 == '\0') {
+          uVar22 = 1;
+          fVar40 = local_108[0];
+          fVar35 = local_108[1];
           do {
-            fVar32 = local_108[uVar27 * 2];
-            fVar28 = local_108[uVar27 * 2 + 1];
-            if (fVar32 <= local_108[0]) {
-              local_108[0] = fVar32;
+            fVar38 = local_108[uVar22 * 2];
+            fVar29 = local_108[uVar22 * 2 + 1];
+            if (fVar38 <= local_108[0]) {
+              local_108[0] = fVar38;
             }
-            if (fVar28 <= local_108[1]) {
-              local_108[1] = fVar28;
+            if (fVar29 <= local_108[1]) {
+              local_108[1] = fVar29;
             }
-            uVar27 = uVar27 + 1;
-            if (fVar37 <= fVar32) {
-              fVar37 = fVar32;
+            uVar22 = uVar22 + 1;
+            if (fVar40 <= fVar38) {
+              fVar40 = fVar38;
             }
-            if (fVar38 <= fVar28) {
-              fVar38 = fVar28;
+            if (fVar35 <= fVar29) {
+              fVar35 = fVar29;
             }
             local_1b0[1] = local_108[1];
             local_1b0[0] = local_108[0];
-            local_1b0[3] = fVar38;
-            local_1b0[2] = fVar37;
-            fVar28 = local_108[0];
-            fVar42 = local_108[1];
-          } while (uVar27 < 4);
+            local_1b0[3] = fVar35;
+            local_1b0[2] = fVar40;
+            fVar29 = local_108[0];
+            fVar43 = local_108[1];
+          } while (uVar22 < 4);
         }
         else {
-          fVar32 = fVar28;
-          if (fVar37 < fVar28) {
-            local_1b0[0] = fVar37;
-            local_1b0[2] = fVar28;
-            fVar32 = fVar37;
-            fVar37 = fVar28;
-          }
-          fVar28 = fVar32;
-          if (fVar40 < fVar42) {
-            local_1b0[1] = fVar40;
-            local_1b0[3] = fVar42;
-            fVar38 = fVar42;
-            fVar42 = fVar40;
+          fVar38 = fVar29;
+          if (fVar40 < fVar29) {
+            local_1b0[0] = fVar40;
+            local_1b0[2] = fVar29;
+            fVar38 = fVar40;
+            fVar40 = fVar29;
+          }
+          fVar29 = fVar38;
+          if (fVar41 < fVar43) {
+            local_1b0[1] = fVar41;
+            local_1b0[3] = fVar43;
+            fVar35 = fVar43;
+            fVar43 = fVar41;
           }
         }
       }
 LAB_7:
       lVar4 = *(longlong *)(this + 0x2f0);
       if (lVar4 == *(longlong *)(this + 0x2e8)) {
-        fVar32 = -3.4028235e+38;
-        fVar40 = -3.4028235e+38;
+        fVar38 = -3.4028235e+38;
+        fVar41 = -3.4028235e+38;
         fVar33 = 3.4028235e+38;
-        fVar36 = 3.4028235e+38;
-        local_288 = 0xff7fffffff7fffff;
-        uStack_280 = 0x7f7fffff7f7fffff;
+        fVar37 = 3.4028235e+38;
+        local_268 = 0xff7fffffff7fffff;
+        uStack_260 = 0x7f7fffff7f7fffff;
       }
       else {
         if (*(longlong *)(lVar4 + -0xb8) == 0) {
           pcVar3 = *(code **)(*(longlong *)
                                *(IDeviceSurfaceMethodsT<CD2DBitmap,IDeviceTextureTarget> **)
                                 (lVar4 + -0xc0) + 0x58);
           if (pcVar3 == IDeviceSurfaceMethodsT<CD2DBitmap,IDeviceTextureTarget>::
                         GetSize_adjustor_184__) {
             IDeviceSurfaceMethodsT<CD2DBitmap,IDeviceTextureTarget>::GetSize_adjustor_184__
                       (*(IDeviceSurfaceMethodsT<CD2DBitmap,IDeviceTextureTarget> **)(lVar4 + -0xc0))
             ;
           }
           else {
             (*pcVar3)();
           }
-          local_288 = 0;
-          fVar33 = (float)local_238;
-          fVar36 = (float)local_234;
-          uStack_280 = CONCAT44(fVar36,fVar33);
-          fVar32 = fVar41;
-          fVar40 = fVar41;
+          local_268 = 0;
+          fVar33 = (float)local_210;
+          fVar37 = (float)local_20c;
+          uStack_260 = CONCAT44(fVar37,fVar33);
+          fVar38 = fVar42;
+          fVar41 = fVar42;
         }
         else {
           if (*(int *)(this + 0xc30) == 0) {
-            fVar32 = -3.4028235e+38;
-            fVar40 = -3.4028235e+38;
+            fVar38 = -3.4028235e+38;
+            fVar41 = -3.4028235e+38;
             fVar33 = 3.4028235e+38;
-            fVar36 = 3.4028235e+38;
+            fVar37 = 3.4028235e+38;
           }
           else {
-            pfVar19 = (float *)(*(longlong *)(this + 0xc28) +
+            pfVar17 = (float *)(*(longlong *)(this + 0xc28) +
                                (ulonglong)(*(int *)(this + 0xc30) - 1) * 0x10);
-            fVar32 = *pfVar19;
-            fVar40 = pfVar19[1];
-            fVar33 = pfVar19[2];
-            fVar36 = pfVar19[3];
-          }
-          local_288 = CONCAT44(fVar40,fVar32);
-          uStack_280 = CONCAT44(fVar36,fVar33);
+            fVar38 = *pfVar17;
+            fVar41 = pfVar17[1];
+            fVar33 = pfVar17[2];
+            fVar37 = pfVar17[3];
+          }
+          local_268 = CONCAT44(fVar41,fVar38);
+          uStack_260 = CONCAT44(fVar37,fVar33);
         }
         if ((*(longlong *)(this + 0x2f0) != *(longlong *)(this + 0x2e8)) &&
            (*(longlong *)(*(longlong *)(this + 0x2f0) + -0xa8) != 0)) {
           if (*(int *)(this + 0xc48) == 0) {
             fVar34 = -3.4028235e+38;
-            fVar29 = -3.4028235e+38;
-            fVar30 = 3.4028235e+38;
+            fVar30 = -3.4028235e+38;
             fVar31 = 3.4028235e+38;
+            fVar32 = 3.4028235e+38;
           }
           else {
-            pfVar19 = (float *)(*(longlong *)(this + 0xc40) +
+            pfVar17 = (float *)(*(longlong *)(this + 0xc40) +
                                (ulonglong)(*(int *)(this + 0xc48) - 1) * 0x10);
-            fVar34 = *pfVar19;
-            fVar29 = pfVar19[1];
-            fVar30 = pfVar19[2];
-            fVar31 = pfVar19[3];
-          }
-          local_220 = (CDrawingContext *)CONCAT44(fVar29,fVar34);
-          uStack_218 = (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
-                        *)CONCAT44(fVar31,fVar30);
-          if (fVar32 < fVar34) {
-            local_288 = CONCAT44(local_288._4_4_,fVar34);
-            fVar32 = fVar34;
-          }
-          if (fVar40 < fVar29) {
-            local_288 = CONCAT44(fVar29,(undefined4)local_288);
-            fVar40 = fVar29;
-          }
-          if (fVar30 < fVar33) {
-            uStack_280 = CONCAT44(uStack_280._4_4_,fVar30);
-            fVar33 = fVar30;
-          }
-          if (fVar31 < fVar36) {
-            uStack_280 = CONCAT44(fVar31,(undefined4)uStack_280);
-            fVar36 = fVar31;
-          }
-          if ((fVar33 <= fVar32) || (fVar36 <= fVar40)) {
-            uStack_280 = 0;
-            local_288 = 0;
-            fVar32 = fVar41;
-            fVar40 = fVar41;
-            fVar33 = fVar41;
-            fVar36 = fVar41;
-          }
-        }
-      }
-      this_01 = local_290;
-      if (fVar28 < fVar32) {
-        local_1b0[0] = fVar32;
-        fVar28 = fVar32;
-      }
-      if (fVar42 < fVar40) {
-        local_1b0[1] = fVar40;
-        fVar42 = fVar40;
-      }
-      if (fVar33 < fVar37) {
+            fVar34 = *pfVar17;
+            fVar30 = pfVar17[1];
+            fVar31 = pfVar17[2];
+            fVar32 = pfVar17[3];
+          }
+          local_200 = (CDrawingContext *)CONCAT44(fVar30,fVar34);
+          uStack_1f8 = (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
+                        *)CONCAT44(fVar32,fVar31);
+          if (fVar38 < fVar34) {
+            local_268 = CONCAT44(local_268._4_4_,fVar34);
+            fVar38 = fVar34;
+          }
+          if (fVar41 < fVar30) {
+            local_268 = CONCAT44(fVar30,(undefined4)local_268);
+            fVar41 = fVar30;
+          }
+          if (fVar31 < fVar33) {
+            uStack_260 = CONCAT44(uStack_260._4_4_,fVar31);
+            fVar33 = fVar31;
+          }
+          if (fVar32 < fVar37) {
+            uStack_260 = CONCAT44(fVar32,(undefined4)uStack_260);
+            fVar37 = fVar32;
+          }
+          if ((fVar33 <= fVar38) || (fVar37 <= fVar41)) {
+            uStack_260 = 0;
+            local_268 = 0;
+            fVar38 = fVar42;
+            fVar41 = fVar42;
+            fVar33 = fVar42;
+            fVar37 = fVar42;
+          }
+        }
+      }
+      param_3 = local_278;
+      if (fVar29 < fVar38) {
+        local_1b0[0] = fVar38;
+        fVar29 = fVar38;
+      }
+      if (fVar43 < fVar41) {
+        local_1b0[1] = fVar41;
+        fVar43 = fVar41;
+      }
+      if (fVar33 < fVar40) {
         local_1b0[2] = fVar33;
-        fVar37 = fVar33;
-      }
-      if (fVar36 < fVar38) {
-        local_1b0[3] = fVar36;
-        fVar38 = fVar36;
-      }
-      if ((fVar37 <= fVar28) || (fVar38 <= fVar42)) {
+        fVar40 = fVar33;
+      }
+      if (fVar37 < fVar35) {
+        local_1b0[3] = fVar37;
+        fVar35 = fVar37;
+      }
+      if ((fVar40 <= fVar29) || (fVar35 <= fVar43)) {
         local_1b0[2] = 0.0;
         local_1b0[3] = 0.0;
         local_1b0[0] = 0.0;
         local_1b0[1] = 0.0;
-        fVar28 = fVar41;
-        fVar37 = fVar41;
-        fVar38 = fVar41;
-        fVar42 = fVar41;
-      }
-      uVar45 = 0;
+        fVar29 = fVar42;
+        fVar40 = fVar42;
+        fVar35 = fVar42;
+        fVar43 = fVar42;
+      }
+      uVar46 = 0;
+      fVar42 = 0.0;
+      fVar38 = 0.0;
       fVar41 = 0.0;
-      fVar32 = 0.0;
-      fVar40 = 0.0;
       fVar33 = 0.0;
-      fVar36 = 0.0;
+      fVar37 = 0.0;
       local_190 = 0.0;
       fStack_18c = 0.0;
       fStack_188 = 0.0;
       fStack_184 = 0.0;
-      local_1f8 = (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
+      local_1e8 = (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
                    *)0x0;
-      uStack_1f0 = 0;
-      if (*(uint *)(lVar17 + 0x280) != 0) {
-        pfVar19 = *(float **)(lVar17 + 0x268);
+      uStack_1e0 = 0;
+      if (*(uint *)(lVar15 + 0x280) != 0) {
+        pfVar17 = *(float **)(lVar15 + 0x268);
         do {
-          if (param_5 <= (int)pfVar19[4]) break;
-          fVar43 = pfVar19[2];
-          fVar35 = *pfVar19;
-          if ((fVar35 < fVar43) && (pfVar19[1] <= pfVar19[3] && pfVar19[3] != pfVar19[1])) {
-            fVar44 = fVar28;
-            if (fVar28 < fVar35) {
-              fVar44 = fVar35;
+          if (param_5 <= (int)pfVar17[4]) break;
+          fVar44 = pfVar17[2];
+          fVar36 = *pfVar17;
+          if ((fVar36 < fVar44) && (pfVar17[1] <= pfVar17[3] && pfVar17[3] != pfVar17[1])) {
+            fVar45 = fVar29;
+            if (fVar29 < fVar36) {
+              fVar45 = fVar36;
             }
-            fVar35 = fVar42;
-            if (fVar42 < pfVar19[1]) {
-              fVar35 = pfVar19[1];
+            fVar36 = fVar43;
+            if (fVar43 < pfVar17[1]) {
+              fVar36 = pfVar17[1];
             }
-            fVar34 = fVar37;
-            if (fVar43 < fVar37) {
-              fVar34 = fVar43;
+            fVar34 = fVar40;
+            if (fVar44 < fVar40) {
+              fVar34 = fVar44;
             }
-            fVar43 = fVar38;
-            if (pfVar19[3] < fVar38) {
-              fVar43 = pfVar19[3];
+            fVar44 = fVar35;
+            if (pfVar17[3] < fVar35) {
+              fVar44 = pfVar17[3];
             }
-            if (((fVar44 < fVar34) && (fVar35 < fVar43)) &&
-               (fVar43 = (fVar43 - fVar35) * (fVar34 - fVar44), fVar36 < fVar43)) {
-              fVar41 = *pfVar19;
-              fVar32 = pfVar19[1];
-              fVar40 = pfVar19[2];
-              fVar33 = pfVar19[3];
-              local_1f8 = *(TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
-                            **)pfVar19;
-              uStack_1f0 = *(undefined8 *)(pfVar19 + 2);
-              fVar36 = fVar43;
+            if (((fVar45 < fVar34) && (fVar36 < fVar44)) &&
+               (fVar44 = (fVar44 - fVar36) * (fVar34 - fVar45), fVar37 < fVar44)) {
+              fVar42 = *pfVar17;
+              fVar38 = pfVar17[1];
+              fVar41 = pfVar17[2];
+              fVar33 = pfVar17[3];
+              local_1e8 = *(TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
+                            **)pfVar17;
+              uStack_1e0 = *(undefined8 *)(pfVar17 + 2);
+              fVar37 = fVar44;
             }
           }
-          uVar45 = uVar45 + 1;
-          pfVar19 = pfVar19 + 0xc;
-        } while (uVar45 < *(uint *)(lVar17 + 0x280));
-        if (fVar36 <= 0.0) {
-          fVar43 = local_228;
-          fVar35 = local_248._0_4_;
-          fVar44 = local_240._0_4_;
-        }
-        else {
+          uVar46 = uVar46 + 1;
+          pfVar17 = pfVar17 + 0xc;
+        } while (uVar46 < *(uint *)(lVar15 + 0x280));
+        if (0.0 < fVar37) {
           if (*(int *)(this + 0x128) == 0) {
-            pCVar18 = &CMILMatrix::Identity;
+            pCVar16 = &CMILMatrix::Identity;
           }
           else {
-            pCVar18 = (CMILMatrix_IdentityType *)
+            pCVar16 = (CMILMatrix_IdentityType *)
                       ((ulonglong)(*(int *)(this + 0x128) - 1) * 0x44 + *(longlong *)(this + 0x120))
             ;
           }
-          local_190 = fVar41;
-          fStack_18c = fVar32;
-          fStack_188 = fVar40;
+          local_190 = fVar42;
+          fStack_18c = fVar38;
+          fStack_188 = fVar41;
           fStack_184 = fVar33;
-          if (*(code **)(*(longlong *)local_290 + 0x60) == CRectanglesShape::GetUnOccludedWorldShape
+          if (*(code **)(*(longlong *)local_278 + 0x60) == CRectanglesShape::GetUnOccludedWorldShape
              ) {
-            iVar12 = CRectanglesShape::GetUnOccludedWorldShape
-                               ((CRectanglesShape *)local_290,
+            iVar10 = CRectanglesShape::GetUnOccludedWorldShape
+                               ((CRectanglesShape *)local_278,
                                 (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
-                                 *)&local_190,(CMILMatrix *)pCVar18,(CShape **)&uStack_270);
+                                 *)&local_190,(CMILMatrix *)pCVar16,(CShape **)&uStack_240);
           }
           else {
-            iVar12 = (**(code **)(*(longlong *)local_290 + 0x60))();
-          }
-          if (iVar12 < 0) {
-            MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,iVar12,0x1472,(void *)0x0);
-          }
-          fVar43 = local_228;
-          fVar35 = local_248._0_4_;
-          fVar44 = local_240._0_4_;
-        }
+            iVar10 = (**(code **)(*(longlong *)local_278 + 0x60))();
+          }
+          if (iVar10 < 0) {
+            MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,iVar10,0x149a,(void *)0x0);
+          }
+        }
+        fVar44 = local_288;
+        fVar36 = local_218;
+        fVar45 = local_270._0_4_;
       }
     }
   }
 LAB_4:
-  if ((char)local_268 != '\0') {
-    pCVar26 = *(CRectanglesShape **)local_278;
-    *(CRectanglesShape **)local_278 = uStack_270;
-    if (pCVar26 != (CRectanglesShape *)0x0) {
-      if ((code *)**(undefined8 **)pCVar26 == CRectanglesShape::_vector_deleting_destructor_) {
-        CRectanglesShape::~CRectanglesShape(pCVar26);
-        CThreadLocalObjectCache<CRectanglesShape,CRectanglesShape>::Free(pCVar26);
+  if ((char)local_238 != '\0') {
+    pCVar27 = *(CRectanglesShape **)local_248;
+    *(CRectanglesShape **)local_248 = uStack_240;
+    if (pCVar27 != (CRectanglesShape *)0x0) {
+      if ((code *)**(undefined8 **)pCVar27 == CRectanglesShape::_vector_deleting_destructor_) {
+        CRectanglesShape::~CRectanglesShape(pCVar27);
+        CThreadLocalObjectCache<CRectanglesShape,CRectanglesShape>::Free(pCVar27);
       }
       else {
-        (*(code *)**(undefined8 **)pCVar26)(pCVar26,1);
+        (*(code *)**(undefined8 **)pCVar27)(pCVar27,1);
       }
     }
   }
   this_00 = local_250;
-  if (iVar12 < 0) {
+  if (iVar10 < 0) {
+    local_270 = (IBitmapRealizationMethodsT<CDxHandleBitmapRealization,IGDIBitmapRealization> *)
+                local_250;
     local_298 = 0;
-    if (*(code **)(*(longlong *)this_01 + 0x40) == CRectanglesShape::IsRectangles) {
-      local_298 = (uint)(*(longlong *)(this_01 + 0x18) - *(longlong *)(this_01 + 0x10) >> 4);
+    if (*(code **)(*(longlong *)param_3 + 0x40) == CRectanglesShape::IsRectangles) {
+      local_298 = (uint)(*(longlong *)(param_3 + 0x18) - *(longlong *)(param_3 + 0x10) >> 4);
 LAB_8:
-      local_248 = this_00;
-      local_208 = this_00;
-      local_240 = (CMILRefCountImpl *)0x0;
-      local_210 = (CMILRefCountImpl *)0x0;
-      if (this_00 !=
-          (IBitmapRealizationMethodsT<CDxHandleBitmapRealization,IGDIBitmapRealization> *)0x0) {
+      local_1c8 = 0;
+      local_1c0 = this_00;
+      if (this_00 != (CGDISectionBitmapRealization *)0x0) {
         pcVar3 = *(code **)(*(longlong *)this_00 + 8);
         if (pcVar3 == CMILRefCountImpl::AddReference) {
           LOCK();
-          iVar12 = *(int *)this_00;
+          iVar10 = *(int *)this_00;
           *(int *)this_00 = *(int *)this_00 + 1;
           UNLOCK();
-          if (*(int *)this_00 == 0 || SCARRY4(iVar12,1) != *(int *)this_00 < 0) {
+          if (*(int *)this_00 == 0 || SCARRY4(iVar10,1) != *(int *)this_00 < 0) {
             wil::details::in1diag3::Log_Hr
                       (unaff_retaddr,0x18,
                        "onecoreuap\\windows\\dwm\\common\\shared\\refcountbase.cpp",-0x7ff8fd64);
           }
-          local_248 = local_208;
-          local_240 = local_210;
         }
         else if (pcVar3 == CGDISectionBitmapRealization::AddRef_adjustor_392__) {
-          CGDISectionBitmapRealization::AddRef_adjustor_392__
-                    ((CGDISectionBitmapRealization *)this_00);
+          CGDISectionBitmapRealization::AddRef_adjustor_392__(this_00);
         }
         else {
           (*pcVar3)();
         }
       }
-      pCVar26 = (CRectanglesShape *)(ulonglong)local_298;
-      local_200 = CVar25;
+      pCVar27 = (CRectanglesShape *)(ulonglong)local_298;
+      local_1b8 = bVar26;
       local_178 = local_160;
       local_170 = local_160;
-      local_168 = local_120;
-      if (pCVar26 == (CRectanglesShape *)0x0) {
+      pTStack_168 = local_120;
+      if (pCVar27 == (CRectanglesShape *)0x0) {
         detail::
         vector_facade<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,detail::buffer_impl<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,4,1,detail::liberal_expansion_policy>_>
         ::clear_region((vector_facade<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,detail::buffer_impl<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,4,1,detail::liberal_expansion_policy>_>
                         *)&local_178,0,0);
       }
       else {
-        if ((CRectanglesShape *)0x4 < pCVar26) {
-          uVar27 = (ulonglong)local_298;
-          if (pCVar26 < (CRectanglesShape *)&DAT_9) {
-            uVar27 = 6;
+        if ((CRectanglesShape *)0x4 < pCVar27) {
+          pCVar28 = pCVar27;
+          if (pCVar27 < (CRectanglesShape *)&DAT_9) {
+            pCVar28 = (CRectanglesShape *)0x6;
           }
           auVar5._8_8_ = 0;
-          auVar5._0_8_ = uVar27;
-          _Var15 = SUB168(ZEXT816(0x10) * auVar5,0);
+          auVar5._0_8_ = pCVar28;
+          _Var13 = SUB168(ZEXT816(0x10) * auVar5,0);
           if (SUB168(ZEXT816(0x10) * auVar5,8) != 0) {
-            _Var15 = 0xffffffffffffffff;
-          }
-          pTVar16 = operator_new__(_Var15);
-          pTVar24 = local_178;
+            _Var13 = 0xffffffffffffffff;
+          }
+          pTVar14 = operator_new__(_Var13);
+          pTVar21 = local_178;
           _Size = (longlong)local_170 - (longlong)local_178;
-          uStack_270 = (CRectanglesShape *)0x0;
-          local_268 = (CRectanglesShape *)0x0;
-          uStack_1f0 = 0;
-          local_1e8 = (CRectanglesShape *)0x0;
-          local_278 = pTVar16;
-          local_1f8 = pTVar16;
+          uStack_240 = (CRectanglesShape *)0x0;
+          local_238 = (CRectanglesShape *)0x0;
+          uStack_1e0 = 0;
+          local_1d8 = (CRectanglesShape *)0x0;
+          local_248 = pTVar14;
+          local_1e8 = pTVar14;
           _Dst = (void *)std::
                          _Get_unwrapped_n<stdext::checked_array_iterator<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>*___ptr64>&___ptr64,__int64>
                                    ((checked_array_iterator<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>*___ptr64>
-                                     *)&local_1f8,(longlong)_Size >> 4);
-          memmove(_Dst,pTVar24,_Size);
+                                     *)&local_1e8,(longlong)_Size >> 4);
+          memmove(_Dst,pTVar21,_Size);
+          pTVar21 = local_178;
           if (local_178 == local_160) {
-            local_178 = (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
-                         *)0x0;
-          }
-          pTVar24 = local_178;
-          local_178 = pTVar16;
-          _Free_DefaultHeap__SAXPEAX_Z(pTVar24);
+            pTVar21 = (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
+                       *)0x0;
+          }
+          local_178 = pTVar14;
+          _Free_DefaultHeap__SAXPEAX_Z(pTVar21);
           local_170 = local_178;
-          local_168 = local_178 + uVar27 * 0x10;
-        }
-        local_278 = local_170;
-        local_1e8 = (CRectanglesShape *)0x0;
-        pCVar6 = local_1e8;
-        uStack_270 = pCVar26;
+          pTStack_168 = local_178 + (longlong)pCVar28 * 0x10;
+        }
+        local_178 = local_170;
+        local_1d8 = (CRectanglesShape *)0x0;
+        pCVar28 = local_1d8;
         if (local_170 ==
             (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> *)
             0x0) {
-          local_1e8 = (CRectanglesShape *)0x0;
-          local_268 = local_1e8;
-          local_1e8 = pCVar6;
-          local_178 = local_170;
+          local_1d8 = (CRectanglesShape *)0x0;
+          local_248 = local_170;
+          uStack_240 = pCVar27;
+          local_238 = local_1d8;
+          local_1d8 = pCVar28;
                     /* WARNING: Subroutine does not return */
           _invalid_parameter_noinfo_noreturn();
         }
-        local_1e8 = pCVar26;
-        local_170 = local_170 + (longlong)pCVar26 * 0x10;
-        *(CRectanglesShape **)local_278 = (CRectanglesShape *)0x0;
-        *(CRectanglesShape **)(local_278 + 8) = (CRectanglesShape *)0x0;
-        pTVar24 = local_278;
-        pTVar16 = local_278 + 0x10;
-        for (uVar27 = (longlong)pCVar26 * 0x10 - 9U >> 3; local_268 = pCVar26, local_178 = local_278
-            , uVar27 != 0; uVar27 = uVar27 - 1) {
-          *(CRectanglesShape **)pTVar16 = *(CRectanglesShape **)pTVar24;
-          pTVar24 = pTVar24 + 8;
-          pTVar16 = pTVar16 + 8;
-        }
-      }
-      uVar27 = 0;
-      if (*(code **)(*(longlong *)local_290 + 0x50) == CRectanglesShape::GetRectangles) {
-        CRectanglesShape::GetRectangles((CRectanglesShape *)local_290,local_178,local_298);
+        local_1d8 = pCVar27;
+        local_248 = local_170;
+        uStack_240 = pCVar27;
+        local_238 = pCVar27;
+        local_170 = local_170 + (longlong)pCVar27 * 0x10;
+        *(CRectanglesShape **)local_178 = (CRectanglesShape *)0x0;
+        *(CRectanglesShape **)(local_178 + 8) = (CRectanglesShape *)0x0;
+        pTVar21 = local_178;
+        pTVar14 = local_178 + 0x10;
+        for (uVar22 = (longlong)pCVar27 * 0x10 - 9U >> 3;
+            this_00 = (CGDISectionBitmapRealization *)local_270, param_3 = local_278, uVar22 != 0;
+            uVar22 = uVar22 - 1) {
+          *(CRectanglesShape **)pTVar14 = *(CRectanglesShape **)pTVar21;
+          pTVar21 = pTVar21 + 8;
+          pTVar14 = pTVar14 + 8;
+        }
+      }
+      uVar22 = 0;
+      if (*(code **)(*(longlong *)param_3 + 0x50) == CRectanglesShape::GetRectangles) {
+        CRectanglesShape::GetRectangles((CRectanglesShape *)param_3,local_178,local_298);
       }
       else {
-        (**(code **)(*(longlong *)local_290 + 0x50))();
-      }
-      local_220 = (CDrawingContext *)(ulonglong)local_298;
-      uStack_218 = local_178;
+        (**(code **)(*(longlong *)param_3 + 0x50))();
+      }
+      local_200 = (CDrawingContext *)(ulonglong)local_298;
+      uStack_1f8 = local_178;
       if ((local_178 ==
            (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> *)
-           0x0) && (local_220 != (CDrawingContext *)0x0)) {
+           0x0) && (local_200 != (CDrawingContext *)0x0)) {
         (*(code *)`void_(__cdecl*&___ptr64___cdecl_gsl::details::get_terminate_handler(void))(void)'
                   ::__l2::handler)();
         pcVar3 = (code *)swi(3);
-        lVar10 = (*pcVar3)();
-        return lVar10;
-      }
-      uVar22 = uVar27;
-      if (this_00 !=
-          (IBitmapRealizationMethodsT<CDxHandleBitmapRealization,IGDIBitmapRealization> *)0x0) {
+        lVar8 = (*pcVar3)();
+        return lVar8;
+      }
+      uVar23 = uVar22;
+      if (this_00 != (CGDISectionBitmapRealization *)0x0) {
         pcVar3 = *(code **)(*(longlong *)this_00 + 0x20);
         if (pcVar3 == IBitmapRealizationMethodsT<CDxHandleBitmapRealization,IGDIBitmapRealization>::
                       GetSize_adjustor_320__) {
-          puVar21 = (ulonglong *)
+          puVar20 = (ulonglong *)
                     IBitmapRealizationMethodsT<CDxHandleBitmapRealization,IGDIBitmapRealization>::
-                    GetSize_adjustor_320__(this_00);
+                    GetSize_adjustor_320__
+                              ((IBitmapRealizationMethodsT<CDxHandleBitmapRealization,IGDIBitmapRealization>
+                                *)this_00);
         }
         else if (pcVar3 == CDxHandleBitmapRealization::GetSize_adjustor_256__) {
-          puVar21 = (ulonglong *)
+          puVar20 = (ulonglong *)
                     CDxHandleBitmapRealization::GetSize_adjustor_256__
                               ((CDxHandleBitmapRealization *)this_00);
         }
         else {
-          puVar21 = (ulonglong *)(*pcVar3)();
-        }
-        uVar27 = *puVar21;
-        uVar22 = uVar27 >> 0x20;
-      }
-      uStack_1d0 = 0;
-      uStack_1c4 = 0;
-      fVar41 = 1.0 / (float)(uVar27 & 0xffffffff);
-      fVar38 = 1.0 / (float)uVar22;
-      fStack_1c0 = 0.0 - fVar41 * 0.0;
-      fStack_1bc = 0.0 - fVar38 * 0.0;
-      fStack_1cc = fStack_1c0 * 0.0;
-      local_1c8 = fStack_1bc * 0.0;
-      local_1d8 = fVar41 * local_230 + fVar44 * 0.0 + fStack_1cc;
-      fStack_1d4 = fVar44 * fVar38 + local_230 * 0.0 + local_1c8;
-      fStack_1cc = fVar41 * fVar39 + local_22c * 0.0 + fStack_1cc;
-      local_1c8 = local_22c * fVar38 + fVar39 * 0.0 + local_1c8;
-      fStack_1c0 = fVar35 * fVar41 + fVar43 * 0.0 + fStack_1c0;
-      fStack_1bc = fVar38 * fVar43 + fVar35 * 0.0 + fStack_1bc;
-      DVar13 = GetD2DInterpolationMode(this);
-      _Var15 = (__uint64)DVar13;
-      EVar14 = InterpolationMode::FromD2D1InterpolationMode(DVar13);
-      pCVar20 = CThreadLocalObjectCache<CSurfaceDrawListBrush,CSurfaceDrawListBrush>::Alloc(_Var15);
-      if (pCVar20 == (CMultiPrimitiveDrawListBrush *)0x0) {
-        lVar10 = -0x7ff8fff2;
+          puVar20 = (ulonglong *)(*pcVar3)();
+        }
+        uVar22 = *puVar20;
+        uVar23 = uVar22 >> 0x20;
+      }
+      local_228 = 0x3f800000;
+      fVar38 = 1.0 / (float)(uVar22 & 0xffffffff);
+      fVar40 = 1.0 / (float)uVar23;
+      local_230 = 0.0 - fVar38 * 0.0;
+      local_22c = 0.0 - fVar40 * 0.0;
+      fVar35 = local_230 * 0.0;
+      fVar42 = local_22c * 0.0;
+      local_248 = (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
+                   *)CONCAT44(fVar40 * fVar39 + local_208 * 0.0 + fVar42,
+                              fVar38 * local_208 + fVar39 * 0.0 + fVar35);
+      uStack_240 = (CRectanglesShape *)
+                   ((ulonglong)(uint)(fVar38 * fVar45 + local_204 * 0.0 + fVar35) << 0x20);
+      local_238 = (CRectanglesShape *)(ulonglong)(uint)(local_204 * fVar40 + fVar45 * 0.0 + fVar42);
+      local_230 = fVar36 * fVar38 + fVar44 * 0.0 + local_230;
+      local_22c = fVar44 * fVar40 + fVar36 * 0.0 + local_22c;
+      DVar11 = GetD2DInterpolationMode(this);
+      _Var13 = (__uint64)DVar11;
+      EVar12 = InterpolationMode::FromD2D1InterpolationMode(DVar11);
+      pCVar18 = CThreadLocalObjectCache<CSurfaceDrawListBrush,CSurfaceDrawListBrush>::Alloc(_Var13);
+      if (pCVar18 == (CSurfaceDrawListBrush *)0x0) {
+LAB_10:
+        lVar8 = -0x7ff8fff2;
         MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,-0x7ff8fff2,0x3a,(void *)0x0);
         MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,-0x7ff8fff2,0x351,(void *)0x0);
+LAB_11:
+        pTVar21 = local_178;
+        if (-1 < lVar8) {
+          lVar15 = (longlong)local_170 - (longlong)local_178 >> 4;
+          if (lVar15 != 0) {
+            local_170 = local_170 + lVar15 * -0x10;
+          }
+          local_178 = (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
+                       *)0x0;
+          if ((pTVar21 != local_160) &&
+             (pTVar21 !=
+              (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> *
+              )0x0)) {
+            hHeap = GetProcessHeap();
+            HeapFree(hHeap,0,pTVar21);
+          }
+          CDrawListBitmap::~CDrawListBitmap((CDrawListBitmap *)&local_1c8);
+          goto LAB_12;
+        }
       }
       else {
-        local_2a8 = CONCAT11(1,(char)EVar14);
-        *(undefined8 *)(pCVar20 + 8) = 0x3f800000;
-        *(undefined4 *)(pCVar20 + 0x10) = 0;
-        *(undefined8 *)(pCVar20 + 0x14) = 0x3f800000;
-        *(undefined4 *)(pCVar20 + 0x1c) = 0;
-        pCVar20[0x34] = (CMultiPrimitiveDrawListBrush)0x0;
-        *(undefined ***)pCVar20 = &CSurfaceDrawListBrush::_vftable_;
-        *(CMILRefCountImpl **)(pCVar20 + 0x38) = local_240;
-        if (local_240 != (CMILRefCountImpl *)0x0) {
-          if (*(code **)(*(longlong *)local_240 + 8) == CMILRefCountImpl::AddReference) {
-            CMILRefCountImpl::AddReference(local_240);
-          }
-          else {
-            (**(code **)(*(longlong *)local_240 + 8))();
-          }
-        }
-        *(IBitmapRealizationMethodsT<CDxHandleBitmapRealization,IGDIBitmapRealization> **)
-         (pCVar20 + 0x40) = local_248;
-        if (local_248 !=
-            (IBitmapRealizationMethodsT<CDxHandleBitmapRealization,IGDIBitmapRealization> *)0x0) {
-          (**(code **)(*(longlong *)local_248 + 8))();
-        }
-        pCVar20[0x48] = CVar25;
-        *(undefined2 *)(pCVar20 + 0x50) = local_2a8;
-        pCVar20[0x52] = (CMultiPrimitiveDrawListBrush)0x1;
-        *(float *)(pCVar20 + 0x74) = 1.0;
-        *(ulonglong *)(pCVar20 + 0x54) = CONCAT44(fStack_1d4,local_1d8);
-        *(ulonglong *)(pCVar20 + 0x5c) = CONCAT44(fStack_1cc,uStack_1d0);
-        *(ulonglong *)(pCVar20 + 100) = CONCAT44(uStack_1c4,local_1c8);
-        *(ulonglong *)(pCVar20 + 0x6c) = CONCAT44(fStack_1bc,fStack_1c0);
-        *(undefined4 *)(pCVar20 + 0x90) = 0;
-        *(undefined8 *)(pCVar20 + 0x78) = 0xff7fffffff7fffff;
-        *(undefined8 *)(pCVar20 + 0x80) = 0x7f7fffff7f7fffff;
-        pCVar20[0x34] = (CMultiPrimitiveDrawListBrush)0x1;
-        *(undefined8 *)(pCVar20 + 0x20) = 0;
-        *(undefined8 *)(pCVar20 + 0x28) = 0;
-        *(undefined4 *)(pCVar20 + 0x30) = 0;
+        local_288._0_3_ = CONCAT21(0x101,(char)EVar12);
+        pCVar19 = (CMultiPrimitiveDrawListBrush *)
+                  CSurfaceDrawListBrush::CSurfaceDrawListBrush
+                            (pCVar18,&local_1c8,&local_288,&local_248);
+        if (pCVar19 == (CMultiPrimitiveDrawListBrush *)0x0) goto LAB_10;
+        pCVar19[0x34] = (CMultiPrimitiveDrawListBrush)0x1;
+        *(undefined8 *)(pCVar19 + 0x20) = 0;
+        *(undefined8 *)(pCVar19 + 0x28) = 0;
+        *(undefined4 *)(pCVar19 + 0x30) = 0;
         local_190 = 1.0;
         fStack_18c = 1.0;
         fStack_188 = 1.0;
         fStack_184 = GetOpacity(this);
-        local_290 = (CShape *)pCVar20;
-        lVar10 = FillRectanglesWithDrawListBrush
-                           (this,(unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_> *)
-                                 &local_290,(span<D2D_RECT_F_const_,_1> *)&local_220,
-                            (_D3DCOLORVALUE *)&local_190);
-        if (local_290 != (CShape *)0x0) {
-          pcVar3 = (code *)**(undefined8 **)local_290;
+        local_278 = (CShape *)pCVar19;
+        lVar8 = FillRectanglesWithDrawListBrush
+                          (this,(unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_> *)
+                                &local_278,(span<D2D_RECT_F_const_,_1> *)&local_200,
+                           (_D3DCOLORVALUE *)&local_190);
+        if (local_278 != (CShape *)0x0) {
+          pcVar3 = (code *)**(undefined8 **)local_278;
           if (pcVar3 == CMultiPrimitiveDrawListBrush::_scalar_deleting_destructor_) {
             CMultiPrimitiveDrawListBrush::_scalar_deleting_destructor_
-                      ((CMultiPrimitiveDrawListBrush *)local_290,1);
+                      ((CMultiPrimitiveDrawListBrush *)local_278,1);
           }
           else if (pcVar3 == CSurfaceDrawListBrush::_scalar_deleting_destructor_) {
             CSurfaceDrawListBrush::_scalar_deleting_destructor_
-                      ((CSurfaceDrawListBrush *)local_290,1);
+                      ((CSurfaceDrawListBrush *)local_278,1);
           }
           else if (pcVar3 == CDrawListPrimitive0::_vector_deleting_destructor_) {
-            CDrawListPrimitive0::_vector_deleting_destructor_((CDrawListPrimitive0 *)local_290,1);
+            CDrawListPrimitive0::_vector_deleting_destructor_((CDrawListPrimitive0 *)local_278,1);
           }
           else {
             (*pcVar3)();
           }
         }
-        pTVar24 = local_178;
-        if (lVar10 < 0) {
-          MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar10,0x35c,(void *)0x0);
-        }
-        else if (-1 < lVar10) {
-          lVar17 = (longlong)local_170 - (longlong)local_178 >> 4;
-          if (lVar17 != 0) {
-            local_170 = local_170 + lVar17 * -0x10;
-          }
-          local_178 = (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
-                       *)0x0;
-          if ((pTVar24 != local_160) &&
-             (pTVar24 !=
-              (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> *
-              )0x0)) {
-            hHeap = GetProcessHeap();
-            HeapFree(hHeap,0,pTVar24);
-          }
-          CDrawListBitmap::~CDrawListBitmap((CDrawListBitmap *)&local_210);
-          goto LAB_10;
-        }
-      }
-      MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar10,0x8da,(void *)0x0);
+        if (-1 < lVar8) goto LAB_11;
+        MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar8,0x35c,(void *)0x0);
+      }
+      MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar8,0x8da,(void *)0x0);
       detail::
       vector_facade<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,detail::buffer_impl<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,10,1,detail::liberal_expansion_policy>_>
       ::
       ~vector_facade<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,detail::buffer_impl<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,10,1,detail::liberal_expansion_policy>_>
                 ((vector_facade<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,detail::buffer_impl<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,10,1,detail::liberal_expansion_policy>_>
                   *)&local_178);
-      CDrawListBitmap::~CDrawListBitmap((CDrawListBitmap *)&local_210);
+      CDrawListBitmap::~CDrawListBitmap((CDrawListBitmap *)&local_1c8);
     }
     else {
-      cVar7 = (**(code **)(*(longlong *)this_01 + 0x40))(this_01);
-      if (cVar7 != '\0') goto LAB_8;
-      lVar10 = -0x7ff8ffa9;
+      cVar6 = (**(code **)(*(longlong *)param_3 + 0x40))(param_3);
+      if (cVar6 != '\0') goto LAB_8;
+      lVar8 = -0x7ff8ffa9;
       MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,-0x7ff8ffa9,0x8de,(void *)0x0);
     }
-    uVar45 = 0x8bb;
-LAB_11:
-    MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar10,uVar45,(void *)0x0);
+    uVar46 = 0x8bb;
+LAB_13:
+    MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar8,uVar46,(void *)0x0);
   }
   else {
     if (*(code **)(*(longlong *)local_258 + 0x10) == CRectanglesShape::IsEmpty) {
-      cVar7 = CRectanglesShape::IsEmpty(local_258);
+      cVar6 = CRectanglesShape::IsEmpty(local_258);
     }
     else {
-      cVar7 = (**(code **)(*(longlong *)local_258 + 0x10))(local_258);
-    }
-    if (cVar7 == '\0') {
+      cVar6 = (**(code **)(*(longlong *)local_258 + 0x10))(local_258);
+    }
+    if (cVar6 == '\0') {
       if (*(int *)(this + 0x128) == 0) {
-        pCVar18 = &CMILMatrix::Identity;
+        pCVar16 = &CMILMatrix::Identity;
       }
       else {
-        pCVar18 = (CMILMatrix_IdentityType *)
+        pCVar16 = (CMILMatrix_IdentityType *)
                   ((ulonglong)(*(int *)(this + 0x128) - 1) * 0x44 + *(longlong *)(this + 0x120));
       }
-      fVar41 = *(float *)(pCVar18 + 0x10);
-      fVar38 = *(float *)(pCVar18 + 0x14);
-      fVar32 = *(float *)(pCVar18 + 4);
-      fVar37 = *(float *)pCVar18;
-      fVar28 = 1.0 / (fVar38 * fVar37 - fVar41 * fVar32);
-      fVar40 = (*(float *)(pCVar18 + 0x34) * fVar41 - *(float *)(pCVar18 + 0x30) * fVar38) * fVar28;
-      fVar42 = (*(float *)(pCVar18 + 0x30) * fVar32 - *(float *)(pCVar18 + 0x34) * fVar37) * fVar28;
-      local_278 = (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
-                   *)CONCAT44(local_22c * -fVar32 * fVar28 + fVar44 * fVar38 * fVar28,
-                              fVar39 * -fVar32 * fVar28 + local_230 * fVar38 * fVar28);
-      uStack_270 = (CRectanglesShape *)
-                   CONCAT44(local_22c * fVar37 * fVar28 + fVar44 * -fVar41 * fVar28,
-                            fVar39 * fVar37 * fVar28 + local_230 * -fVar41 * fVar28);
-      local_268 = (CRectanglesShape *)
-                  CONCAT44(local_22c * fVar42 + fVar44 * fVar40 + fVar43,
-                           fVar39 * fVar42 + local_230 * fVar40 + fVar35);
-      lVar10 = PushTransformInternal
-                         (this,(CVisual *)0x0,(CMILMatrix *)&CMILMatrix::Identity,false,true);
-      if (lVar10 < 0) {
-        uVar45 = 0x8aa;
-        goto LAB_11;
-      }
-      uStack_218 = (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
-                    *)CONCAT71(uStack_218._1_7_,1);
-      local_220 = this;
-      lVar10 = FillShapeWithBitmapRealization
-                         (this,(IBitmapRealization *)local_250,(CShape *)local_258,
-                          (MILMatrix3x2 *)&local_278,(bool)CVar25);
-      if (lVar10 < 0) {
-        MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar10,0x8b3,(void *)0x0);
+      fVar42 = *(float *)(pCVar16 + 0x10);
+      fVar35 = *(float *)(pCVar16 + 0x14);
+      fVar38 = *(float *)(pCVar16 + 4);
+      fVar40 = *(float *)pCVar16;
+      fVar29 = 1.0 / (fVar35 * fVar40 - fVar42 * fVar38);
+      local_270 = (IBitmapRealizationMethodsT<CDxHandleBitmapRealization,IGDIBitmapRealization> *)
+                  CONCAT44(local_270._4_4_,fVar29);
+      fVar41 = (*(float *)(pCVar16 + 0x34) * fVar42 - *(float *)(pCVar16 + 0x30) * fVar35) * fVar29;
+      fVar43 = (*(float *)(pCVar16 + 0x30) * fVar38 - *(float *)(pCVar16 + 0x34) * fVar40) * fVar29;
+      local_248 = (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
+                   *)CONCAT44(-fVar38 * fVar29 * local_204 + fVar35 * fVar29 * fVar39,
+                              -fVar38 * fVar29 * fVar45 + fVar35 * fVar29 * local_208);
+      uStack_240 = (CRectanglesShape *)
+                   CONCAT44(fVar40 * fVar29 * local_204 + -fVar42 * fVar29 * fVar39,
+                            fVar40 * fVar29 * fVar45 + -fVar42 * fVar29 * local_208);
+      local_238 = (CRectanglesShape *)
+                  CONCAT44(fVar41 * fVar39 + local_204 * fVar43 + fVar44,
+                           fVar41 * local_208 + fVar45 * fVar43 + fVar36);
+      lVar8 = PushTransformInternal
+                        (this,(CVisual *)0x0,(CMILMatrix *)&CMILMatrix::Identity,false,true);
+      if (lVar8 < 0) {
+        uVar46 = 0x8aa;
+        goto LAB_13;
+      }
+      uStack_1f8 = (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
+                    *)CONCAT71(uStack_1f8._1_7_,1);
+      local_200 = this;
+      lVar8 = FillShapeWithBitmapRealization
+                        (this,(IBitmapRealization *)local_250,(CShape *)local_258,
+                         (MILMatrix3x2 *)&local_248,bVar26);
+      if (lVar8 < 0) {
+        MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar8,0x8b3,(void *)0x0);
         gsl::final_action<<lambda_8739158a9a179f14d1c8f93c1d3d537f>_>::
-        ~final_action<<lambda_8739158a9a179f14d1c8f93c1d3d537f>_>(&local_220);
+        ~final_action<<lambda_8739158a9a179f14d1c8f93c1d3d537f>_>(&local_200);
         std::unique_ptr<CShape,std::default_delete<CShape>_>::
         ~unique_ptr<CShape,std::default_delete<CShape>_>
                   ((unique_ptr<CShape,std::default_delete<CShape>_> *)&local_258);
         goto LAB_0;
       }
-      lVar17 = 0;
+      lVar15 = 0;
       if (*(int *)(this + 0x110) != 0) {
-        uVar45 = *(int *)(this + 0x110) - 1;
-        *(uint *)(this + 0x110) = uVar45;
-        lVar17 = *(longlong *)(*(longlong *)(this + 0x108) + (ulonglong)uVar45 * 0x10 + 8);
-      }
-      if ((lVar17 != 0) && (*(int *)(this + 0x158) != 0)) {
+        uVar46 = *(int *)(this + 0x110) - 1;
+        *(uint *)(this + 0x110) = uVar46;
+        lVar15 = *(longlong *)(*(longlong *)(this + 0x108) + (ulonglong)uVar46 * 0x10 + 8);
+      }
+      if ((lVar15 != 0) && (*(int *)(this + 0x158) != 0)) {
         *(int *)(this + 0x158) = *(int *)(this + 0x158) + -1;
       }
       if (*(int *)(this + 0x128) != 0) {
         *(int *)(this + 0x128) = *(int *)(this + 0x128) + -1;
       }
       if (*(int *)(this + 0x140) != 0) {
         *(int *)(this + 0x140) = *(int *)(this + 0x140) + -1;
       }
     }
   }
-LAB_10:
-  pCVar26 = local_258;
+LAB_12:
+  pCVar27 = local_258;
   if (local_258 != (CRectanglesShape *)0x0) {
     if ((code *)**(undefined8 **)local_258 == CRectanglesShape::_vector_deleting_destructor_) {
       CRectanglesShape::~CRectanglesShape(local_258);
-      CThreadLocalObjectCache<CRectanglesShape,CRectanglesShape>::Free(pCVar26);
+      CThreadLocalObjectCache<CRectanglesShape,CRectanglesShape>::Free(pCVar27);
     }
     else {
       (*(code *)**(undefined8 **)local_258)(local_258,1);
     }
   }
 LAB_0:
-  if (local_250 !=
-      (IBitmapRealizationMethodsT<CDxHandleBitmapRealization,IGDIBitmapRealization> *)0x0) {
+  if (local_250 != (CGDISectionBitmapRealization *)0x0) {
     (**(code **)(*(longlong *)local_250 + 0x10))();
   }
-  return lVar10;
+  return lVar8;
 }
 

```


## CCpuClipAntialiasSinkContext::ProcessRenderCommands_OffscreenRenderPass

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,refcount,length,address,called|
|ratio|0.14|
|i_ratio|0.42|
|m_ratio|0.98|
|b_ratio|0.71|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|ProcessRenderCommands_OffscreenRenderPass|ProcessRenderCommands_OffscreenRenderPass|
|fullname|CCpuClipAntialiasSinkContext::ProcessRenderCommands_OffscreenRenderPass|CCpuClipAntialiasSinkContext::ProcessRenderCommands_OffscreenRenderPass|
|`refcount`|25|28|
|`length`|5268|5566|
|`called`|<details><summary>Expand for full list:<br>?Alloc@DefaultHeap@@SAPEAX_K@Z<br>CBatchCommand::InitializeForRendering<br>CBatchCommand::`scalar_deleting_destructor'<br>CBrushRenderingEffect::UpdateBitmaps<br>CCommonRenderingEffect::UpdateBitmaps<br>CCommonRenderingEffectFactory::CreateRenderingEffect<br>CCpuClipAntialiasDrawListEntry::Create<br>CCpuClipAntialiasSink::CalcBoundingRect<br>CCpuClipAntialiasSink::CreateUVData<br>CD2DContext::EnsureBeginDraw<br>CD2DContext::EnsureDrawListBatch</summary>CDrawListBitmap::~CDrawListBitmap<br>CDrawListEntryBatch::AppendRenderCommand<br>CDrawingContext::ApplyRenderStateInternal<br>CDrawingContext::PopLayer<br>CDrawingContext::PushOffScreenRenderingLayer<br>CDxHandleBitmapRealization::GetSize`adjustor{256}'<br>CGDISectionBitmapRealization::AddRef`adjustor{392}'<br>CMILMatrix::Is2DAffineOrNaN<br>CMILRefCountBaseT<IMILRefCount,CMilObjectDeleter>::InternalRelease<br>CMILRefCountImpl::AddReference<br>CRenderTargetBitmap::SetAlphaMode<br>CSurfaceDrawListBrush::CreateWithContentRect<br>CSurfaceDrawListBrush::`scalar_deleting_destructor'<br>DynArray<CBatchCommand*___ptr64,0>::AddMultipleAndSet<br>IBitmapRealizationMethodsT<CDxHandleBitmapRealization,IGDIBitmapRealization>::GetSize`adjustor{320}'<br>MSVCP_WIN.DLL::std::_Xlength_error<br>Matrix3x3::Get2DScaleDimensionsWithPerspective<br>MilInstrumentationCheckHR_MaybeFailFast<br>__security_check_cookie<br>_guard_dispatch_icall$thunk$10345483385596137414<br>ceilf<br>detail::expandable_buffer_base<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,1>::~expandable_buffer_base<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,1><br>detail::vector_facade<CCpuClipAntialiasSinkContext::SinkRenderParameters,detail::buffer_impl<CCpuClipAntialiasSinkContext::SinkRenderParameters,10,1,detail::liberal_expansion_policy>_>::reserve_region<br>detail::vector_facade<D2D_RECT_F,detail::buffer_impl<D2D_RECT_F,4,1,detail::liberal_expansion_policy>_>::clear_region<br>detail::vector_facade<D2D_RECT_F,detail::buffer_impl<D2D_RECT_F,4,1,detail::liberal_expansion_policy>_>::reserve_region<br>detail::vector_facade<D2D_RECT_F,detail::buffer_impl<D2D_RECT_F,4,1,detail::liberal_expansion_policy>_>::~vector_facade<D2D_RECT_F,detail::buffer_impl<D2D_RECT_F,4,1,detail::liberal_expansion_policy>_><br>memset<br>operator_delete[]<br>sqrtf<br>std::allocator<std::_List_node<CCpuClipAntialiasSinkContext::SinkRenderCommand,void*___ptr64>_>::allocate<br>std::default_delete<CBatchCommand>::operator()<br>std::default_delete<CCpuClipAntialiasSink::UVData>::operator()<br>std::default_delete<CSurfaceDrawListBrush>::operator()<br>std::unique_ptr<struct_D2D_POINT_2F_[0],std::default_delete<struct_D2D_POINT_2F_[0]>_>::~unique_ptr<struct_D2D_POINT_2F_[0],std::default_delete<struct_D2D_POINT_2F_[0]>_><br>wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy><br>wil::com_ptr_t<IRenderTargetBitmap,wil::err_returncode_policy>::reset<br>wil::com_ptr_t<Mesh::VertexAAOffsetsResource,wil::err_returncode_policy>::~com_ptr_t<Mesh::VertexAAOffsetsResource,wil::err_returncode_policy><br>wil::details::in1diag3::Log_Hr<br>wil::details::in1diag3::Return_Hr</details>|<details><summary>Expand for full list:<br>?Alloc@DefaultHeap@@SAPEAX_K@Z<br>CBatchCommand::InitializeForRendering<br>CBatchCommand::`scalar_deleting_destructor'<br>CBrushRenderingEffect::UpdateBitmaps<br>CCommonRenderingEffect::UpdateBitmaps<br>CCommonRenderingEffectFactory::CreateRenderingEffect<br>CCpuClipAntialiasDrawListEntry::Create<br>CCpuClipAntialiasSink::CalcBoundingRect<br>CCpuClipAntialiasSink::CreateUVData<br>CD2DContext::EnsureBeginDraw<br>CD2DContext::EnsureDrawListBatch</summary>CDrawListBitmap::~CDrawListBitmap<br>CDrawListEntryBatch::AppendRenderCommand<br>CDrawingContext::ApplyRenderStateInternal<br>CDrawingContext::PopLayer<br>CDrawingContext::PushOffScreenRenderingLayer<br>CDxHandleBitmapRealization::GetSize`adjustor{256}'<br>CGDISectionBitmapRealization::AddRef`adjustor{392}'<br>CMILMatrix::Is2DAffineOrNaN<br>CMILRefCountBaseT<IMILRefCount,CMilObjectDeleter>::InternalRelease<br>CMILRefCountImpl::AddReference<br>CRenderTargetBitmap::SetAlphaMode<br>CSurfaceDrawListBrush::CSurfaceDrawListBrush<br>CSurfaceDrawListBrush::`scalar_deleting_destructor'<br>CThreadLocalObjectCache<CSurfaceDrawListBrush,CSurfaceDrawListBrush>::Alloc<br>DynArray<CBatchCommand*___ptr64,0>::AddMultipleAndSet<br>IBitmapRealizationMethodsT<CDxHandleBitmapRealization,IGDIBitmapRealization>::GetSize`adjustor{320}'<br>MSVCP_WIN.DLL::std::_Xlength_error<br>Matrix3x3::Get2DScaleDimensionsWithPerspective<br>MilInstrumentationCheckHR_MaybeFailFast<br>__security_check_cookie<br>_guard_dispatch_icall$thunk$10345483385596137414<br>ceilf<br>detail::expandable_buffer_base<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,1>::~expandable_buffer_base<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,1><br>detail::vector_facade<CCpuClipAntialiasSinkContext::SinkRenderParameters,detail::buffer_impl<CCpuClipAntialiasSinkContext::SinkRenderParameters,10,1,detail::liberal_expansion_policy>_>::reserve_region<br>detail::vector_facade<D2D_RECT_F,detail::buffer_impl<D2D_RECT_F,4,1,detail::liberal_expansion_policy>_>::clear_region<br>detail::vector_facade<D2D_RECT_F,detail::buffer_impl<D2D_RECT_F,4,1,detail::liberal_expansion_policy>_>::reserve_region<br>detail::vector_facade<D2D_RECT_F,detail::buffer_impl<D2D_RECT_F,4,1,detail::liberal_expansion_policy>_>::~vector_facade<D2D_RECT_F,detail::buffer_impl<D2D_RECT_F,4,1,detail::liberal_expansion_policy>_><br>memset<br>operator_delete[]<br>sqrtf<br>std::allocator<std::_List_node<CCpuClipAntialiasSinkContext::SinkRenderCommand,void*___ptr64>_>::allocate<br>std::default_delete<CBatchCommand>::operator()<br>std::default_delete<CCpuClipAntialiasSink::UVData>::operator()<br>std::default_delete<CSurfaceDrawListBrush>::operator()<br>std::unique_ptr<struct_D2D_POINT_2F_[0],std::default_delete<struct_D2D_POINT_2F_[0]>_>::~unique_ptr<struct_D2D_POINT_2F_[0],std::default_delete<struct_D2D_POINT_2F_[0]>_><br>wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy><br>wil::com_ptr_t<IRenderTargetBitmap,wil::err_returncode_policy>::reset<br>wil::com_ptr_t<Mesh::VertexAAOffsetsResource,wil::err_returncode_policy>::~com_ptr_t<Mesh::VertexAAOffsetsResource,wil::err_returncode_policy><br>wil::details::in1diag3::Log_Hr<br>wil::details::in1diag3::Return_Hr</details>|
|calling|CCpuClipAntialiasSinkContext::FlushDrawList<br>CDrawingContext::PopCpuClip<br>CScopedClipStack::PopCpuClipFromScope|CCpuClipAntialiasSinkContext::FlushDrawList<br>CDrawingContext::PopCpuClip<br>CScopedClipStack::PopCpuClipFromScope|
|paramcount|5|5|
|`address`|1800b4680|180148c80|
|sig|long __thiscall ProcessRenderCommands_OffscreenRenderPass(CCpuClipAntialiasSinkContext * this, CDrawingContext * param_1, uint param_2, list<CCpuClipAntialiasSinkContext::SinkRenderCommand,std::allocator<CCpuClipAntialiasSinkContext::SinkRenderCommand>_> * param_3, vector_facade<CCpuClipAntialiasSink::Bounds,detail::buffer_impl<CCpuClipAntialiasSink::Bounds,4,1,detail::liberal_expansion_policy>_> * param_4)|long __thiscall ProcessRenderCommands_OffscreenRenderPass(CCpuClipAntialiasSinkContext * this, CDrawingContext * param_1, uint param_2, list<CCpuClipAntialiasSinkContext::SinkRenderCommand,std::allocator<CCpuClipAntialiasSinkContext::SinkRenderCommand>_> * param_3, vector_facade<CCpuClipAntialiasSink::Bounds,detail::buffer_impl<CCpuClipAntialiasSink::Bounds,4,1,detail::liberal_expansion_policy>_> * param_4)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### CCpuClipAntialiasSinkContext::ProcessRenderCommands_OffscreenRenderPass Called Diff


```diff
--- CCpuClipAntialiasSinkContext::ProcessRenderCommands_OffscreenRenderPass called
+++ CCpuClipAntialiasSinkContext::ProcessRenderCommands_OffscreenRenderPass called
@@ -23 +23 @@
-CSurfaceDrawListBrush::CreateWithContentRect
+CSurfaceDrawListBrush::CSurfaceDrawListBrush
@@ -24,0 +25 @@
+CThreadLocalObjectCache<CSurfaceDrawListBrush,CSurfaceDrawListBrush>::Alloc
```


### CCpuClipAntialiasSinkContext::ProcessRenderCommands_OffscreenRenderPass Diff


```diff
--- CCpuClipAntialiasSinkContext::ProcessRenderCommands_OffscreenRenderPass
+++ CCpuClipAntialiasSinkContext::ProcessRenderCommands_OffscreenRenderPass
@@ -1,890 +1,905 @@
 
 /* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
    guard_dispatch_icall */
 /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
+/* WARNING: Removing unreachable block (ram,0x00018014a0a1) */
 /* private: long __cdecl
    CCpuClipAntialiasSinkContext::ProcessRenderCommands_OffscreenRenderPass(class CDrawingContext *
    __ptr64,unsigned int,class std::list<struct CCpuClipAntialiasSinkContext::SinkRenderCommand,class
    std::allocator<struct CCpuClipAntialiasSinkContext::SinkRenderCommand> > * __ptr64,class
    detail::vector_facade<struct CCpuClipAntialiasSink::Bounds,class detail::buffer_impl<struct
    CCpuClipAntialiasSink::Bounds,4,1,class detail::liberal_expansion_policy> > const * __ptr64)
    __ptr64 */
 
 long __thiscall
 CCpuClipAntialiasSinkContext::ProcessRenderCommands_OffscreenRenderPass
           (CCpuClipAntialiasSinkContext *this,CDrawingContext *param_1,uint param_2,
           list<CCpuClipAntialiasSinkContext::SinkRenderCommand,std::allocator<CCpuClipAntialiasSinkContext::SinkRenderCommand>_>
           *param_3,vector_facade<CCpuClipAntialiasSink::Bounds,detail::buffer_impl<CCpuClipAntialiasSink::Bounds,4,1,detail::liberal_expansion_policy>_>
                    *param_4)
 
 {
-  CSurfaceDrawListBrush *this_00;
-  CCommonRenderingEffect *this_01;
-  CHwLightCollectionBuffer *pCVar1;
-  char *pcVar2;
-  longlong lVar3;
-  undefined8 uVar4;
-  bool bVar5;
-  UVData *pUVar6;
-  CCpuClipAntialiasSinkContext *pCVar7;
-  bool bVar8;
-  long lVar9;
-  int iVar10;
-  D2D_RECT_F *pDVar11;
-  SinkRenderParameters *pSVar12;
-  _List_node<CCpuClipAntialiasSinkContext::SinkRenderCommand,void*___ptr64> *p_Var13;
-  uint *puVar14;
-  code *pcVar15;
-  longlong *plVar16;
-  uint uVar17;
-  uint uVar18;
-  ulonglong uVar19;
-  char *pcVar20;
-  CCpuClipAntialiasDrawListEntry *pCVar21;
+  code *pcVar1;
+  CCommonRenderingEffect *this_00;
+  CHwLightCollectionBuffer *pCVar2;
+  void *pvVar3;
+  char *pcVar4;
+  longlong lVar5;
+  undefined8 uVar6;
+  bool bVar7;
+  vector_facade<CCpuClipAntialiasSinkContext::SinkRenderParameters,detail::buffer_impl<CCpuClipAntialiasSinkContext::SinkRenderParameters,10,1,detail::liberal_expansion_policy>_>
+  *this_01;
+  UVData *pUVar8;
+  bool bVar9;
+  long lVar10;
+  int iVar11;
+  D2D_RECT_F *pDVar12;
+  CGDISectionBitmapRealization *pCVar13;
+  CSurfaceDrawListBrush *pCVar14;
+  SinkRenderParameters *pSVar15;
+  _List_node<CCpuClipAntialiasSinkContext::SinkRenderCommand,void*___ptr64> *p_Var16;
+  uint *puVar17;
+  undefined8 *puVar18;
+  ulonglong *puVar19;
+  longlong *plVar20;
+  uint uVar21;
+  ulonglong uVar22;
+  CGDISectionBitmapRealization *pCVar23;
+  char *pcVar24;
+  CCpuClipAntialiasDrawListEntry *pCVar25;
   default_delete<CBatchCommand> *this_02;
-  CRenderTargetBitmap *pCVar22;
-  undefined1 *puVar23;
-  unique_ptr<CBatchCommand,std::default_delete<CBatchCommand>_> *puVar24;
-  __uint64 _Var25;
-  CBatchCommand **ppCVar26;
-  CBatchCommand *pCVar27;
-  CDrawingContext *pCVar28;
-  longlong lVar29;
-  float *pfVar30;
-  char *pcVar31;
-  D2D_RECT_F *pDVar32;
-  uint uVar33;
-  CGDISectionBitmapRealization *pCVar34;
-  vector_facade<CCpuClipAntialiasSinkContext::SinkRenderParameters,detail::buffer_impl<CCpuClipAntialiasSinkContext::SinkRenderParameters,10,1,detail::liberal_expansion_policy>_>
-  *this_03;
-  CMILMatrix *this_04;
-  CGDISectionBitmapRealization *pCVar35;
-  undefined8 *puVar36;
-  float fVar37;
+  undefined1 *puVar26;
+  unique_ptr<CBatchCommand,std::default_delete<CBatchCommand>_> *puVar27;
+  __uint64 _Var28;
+  CBatchCommand *pCVar29;
+  longlong lVar30;
+  float *pfVar31;
+  CGDISectionBitmapRealization *pCVar32;
+  char *pcVar33;
+  D2D_RECT_F *pDVar34;
+  uint uVar35;
+  CGDISectionBitmapRealization *pCVar36;
+  CMILMatrix *this_03;
+  CCpuClipAntialiasDrawListEntry *pCVar37;
   float fVar38;
   float fVar39;
   float fVar40;
   float fVar41;
   float fVar42;
   float fVar43;
   float fVar44;
   float fVar45;
   float fVar46;
   float fVar47;
+  float fVar48;
   default_delete<CBatchCommand> *unaff_retaddr;
   undefined1 auStackY_388 [32];
   CCpuClipAntialiasDrawListEntry *local_348 [2];
   float local_338 [4];
   undefined8 local_328;
   undefined8 local_320;
-  CRenderTargetBitmap *local_318;
-  CDrawingContext *local_310;
+  longlong *local_318;
+  undefined8 *local_310;
   list<CCpuClipAntialiasSinkContext::SinkRenderCommand,std::allocator<CCpuClipAntialiasSinkContext::SinkRenderCommand>_>
   *local_308;
   undefined8 *local_300;
-  CCpuClipAntialiasSinkContext *local_2f8;
+  CDrawingContext *local_2f8;
   float local_2f0;
   float local_2ec;
   ulong local_2e8;
   char *local_2e0;
-  undefined4 local_2d8;
-  undefined4 local_2d4;
-  CCpuClipAntialiasDrawListEntry **local_2d0;
-  CCpuClipAntialiasDrawListEntry *local_2c8;
-  undefined4 local_2c0;
-  undefined4 local_2bc;
-  undefined4 local_2b8;
-  undefined4 local_2b4;
-  undefined4 local_2b0;
-  undefined8 *local_2a8;
-  undefined8 local_2a0;
-  CGDISectionBitmapRealization *local_298;
-  undefined1 local_290;
-  float local_288;
-  longlong local_280;
-  longlong local_278;
+  float fStack_2d8;
+  float fStack_2d4;
+  longlong local_2d0;
+  CCpuClipAntialiasSinkContext *local_2c8;
+  CBatchCommand *local_2b8;
+  CDrawingContext **ppCStack_2b0;
+  char local_2a8;
+  undefined8 local_298;
+  CGDISectionBitmapRealization *local_290;
+  undefined1 local_288;
+  float local_280;
+  CBatchCommand *local_278;
   longlong local_270;
   vector_facade<CCpuClipAntialiasSink::Bounds,detail::buffer_impl<CCpuClipAntialiasSink::Bounds,4,1,detail::liberal_expansion_policy>_>
   *local_268;
   CBatchCommand *local_260;
-  CBatchCommand *local_258;
-  CMILMatrix *local_250;
-  CDrawingContext *local_248;
-  undefined8 local_238;
-  CCpuClipAntialiasSinkContext **ppCStack_230;
-  longlong *local_228;
-  undefined4 local_220;
-  undefined8 local_1f8;
+  CMILMatrix *local_258;
+  undefined8 local_248;
+  float *pfStack_240;
+  longlong *local_238;
+  undefined4 local_230;
+  undefined8 local_208;
+  undefined8 local_200;
+  undefined4 local_1f8;
   undefined8 local_1f0;
-  undefined4 local_1e8;
-  undefined8 local_1e0;
-  undefined1 local_1d7;
-  undefined8 local_1c8;
-  undefined8 uStack_1c0;
-  undefined8 local_1b8;
-  undefined8 local_1a8;
-  longlong local_1a0;
-  float local_198;
-  float local_194;
-  undefined8 local_190;
-  undefined8 uStack_188;
-  undefined8 local_180;
-  float local_178;
-  float local_174;
+  undefined1 local_1e7;
+  float local_1d8;
+  float local_1d4;
+  undefined4 uStack_1d0;
+  float local_1cc;
+  float local_1c8;
+  float local_1c4;
+  undefined8 local_1c0;
+  undefined8 uStack_1b8;
+  undefined8 local_1b0;
+  float local_1a8;
+  float local_1a4;
+  undefined4 local_1a0;
+  undefined8 local_19c;
+  undefined8 local_188;
+  undefined8 uStack_180;
+  undefined8 local_178;
   undefined4 local_170;
-  undefined8 local_16c;
+  undefined4 local_16c;
+  undefined4 local_168;
   undefined1 *local_158;
   undefined1 *local_150;
   undefined1 *local_148;
   undefined1 local_140 [64];
   undefined1 local_100 [8];
   ulonglong local_f8;
   
   local_f8 = __security_cookie ^ (ulonglong)auStackY_388;
-  local_280 = *(longlong *)(param_1 + 0x28);
-  fVar41 = 0.0;
-  local_238 = 0;
-  ppCStack_230 = (CCpuClipAntialiasSinkContext **)0x0;
-  lVar29 = *(longlong *)(param_4 + 8) - *(longlong *)param_4 >> 2;
+  local_2d0 = *(longlong *)(param_1 + 0x28);
+  fVar39 = 0.0;
+  local_248 = 0;
+  pfStack_240 = (float *)0x0;
+  lVar30 = *(longlong *)(param_4 + 8) - *(longlong *)param_4 >> 2;
+  local_310 = (undefined8 *)((ulonglong)param_2 * 0x1b0 + *(longlong *)(this + 0x10));
   local_158 = local_140;
-  puVar36 = (undefined8 *)((ulonglong)param_2 * 0x1b0 + *(longlong *)(this + 0x10));
   local_150 = local_140;
   local_148 = local_100;
   local_268 = param_4;
-  local_310 = param_1;
   local_308 = param_3;
-  local_2f8 = this;
-  local_2a8 = puVar36;
-  if (lVar29 * -0x5555555555555555 == 0) {
+  local_2f8 = param_1;
+  local_2c8 = this;
+  if (lVar30 * -0x5555555555555555 == 0) {
     detail::
     vector_facade<D2D_RECT_F,detail::buffer_impl<D2D_RECT_F,4,1,detail::liberal_expansion_policy>_>
     ::clear_region((vector_facade<D2D_RECT_F,detail::buffer_impl<D2D_RECT_F,4,1,detail::liberal_expansion_policy>_>
-                    *)&local_158,lVar29 * -0x5555555555555550 >> 4,lVar29 * 0x5555555555555550 >> 4)
+                    *)&local_158,lVar30 * -0x5555555555555550 >> 4,lVar30 * 0x5555555555555550 >> 4)
     ;
   }
   else {
-    pDVar11 = detail::
+    pDVar12 = detail::
               vector_facade<D2D_RECT_F,detail::buffer_impl<D2D_RECT_F,4,1,detail::liberal_expansion_policy>_>
               ::reserve_region((vector_facade<D2D_RECT_F,detail::buffer_impl<D2D_RECT_F,4,1,detail::liberal_expansion_policy>_>
-                                *)&local_158,0,lVar29 * -0x5555555555555555);
-    *(undefined8 *)pDVar11 = 0;
-    *(undefined8 *)(pDVar11 + 8) = 0;
-    pDVar32 = pDVar11 + 0x10;
-    for (uVar19 = lVar29 * -0x5555555555555550 - 9U >> 3; uVar19 != 0; uVar19 = uVar19 - 1) {
-      *(undefined8 *)pDVar32 = *(undefined8 *)pDVar11;
-      pDVar11 = pDVar11 + 8;
-      pDVar32 = pDVar32 + 8;
+                                *)&local_158,0,lVar30 * -0x5555555555555555);
+    *(undefined8 *)pDVar12 = 0;
+    *(undefined8 *)(pDVar12 + 8) = 0;
+    pDVar34 = pDVar12 + 0x10;
+    for (uVar22 = lVar30 * -0x5555555555555550 - 9U >> 3; uVar22 != 0; uVar22 = uVar22 - 1) {
+      *(undefined8 *)pDVar34 = *(undefined8 *)pDVar12;
+      pDVar12 = pDVar12 + 8;
+      pDVar34 = pDVar34 + 8;
     }
   }
-  lVar29 = *(longlong *)param_4;
-  uVar19 = (*(longlong *)(param_4 + 8) - lVar29 >> 2) * -0x5555555555555555;
-  fVar38 = (float)uVar19;
-  pCVar34 = (CGDISectionBitmapRealization *)0x0;
-  uVar33 = 0;
-  local_320 = (CCpuClipAntialiasDrawListEntry *)CONCAT44(local_320._4_4_,fVar38 + fVar38);
-  puVar23 = (undefined1 *)0x0;
-  pCVar35 = pCVar34;
-  if (uVar19 != 0) {
+  puVar18 = local_310;
+  lVar30 = *(longlong *)param_4;
+  uVar22 = (*(longlong *)(param_4 + 8) - lVar30 >> 2) * -0x5555555555555555;
+  fVar38 = (float)uVar22;
+  pCVar36 = (CGDISectionBitmapRealization *)0x0;
+  uVar35 = 0;
+  local_320 = (UVData *)CONCAT44(local_320._4_4_,fVar38 + fVar38);
+  puVar26 = (undefined1 *)0x0;
+  pCVar32 = pCVar36;
+  if (uVar22 != 0) {
     do {
       CCpuClipAntialiasSink::CalcBoundingRect
-                ((CCpuClipAntialiasSink *)*puVar36,1,(Bounds *)(lVar29 + (longlong)pCVar35 * 0xc),
-                 (D2D_RECT_F *)(local_158 + (longlong)pCVar35 * 0x10));
-      if (fVar41 <= *(float *)(local_158 + (longlong)pCVar35 * 0x10 + 0xc) -
-                    *(float *)(local_158 + (longlong)pCVar35 * 0x10 + 4)) {
-        fVar41 = *(float *)(local_158 + (longlong)pCVar35 * 0x10 + 0xc) -
-                 *(float *)(local_158 + (longlong)pCVar35 * 0x10 + 4);
-      }
-      lVar29 = *(longlong *)param_4;
-      pCVar35 = (CGDISectionBitmapRealization *)(ulonglong)((int)pCVar35 + 1);
-      puVar23 = local_158;
-      this = local_2f8;
-    } while (pCVar35 < (CGDISectionBitmapRealization *)
-                       ((*(longlong *)(param_4 + 8) - lVar29 >> 2) * -0x5555555555555555));
+                ((CCpuClipAntialiasSink *)*puVar18,1,(Bounds *)(lVar30 + (longlong)pCVar32 * 0xc),
+                 (D2D_RECT_F *)(local_158 + (longlong)pCVar32 * 0x10));
+      if (fVar39 <= *(float *)(local_158 + (longlong)pCVar32 * 0x10 + 0xc) -
+                    *(float *)(local_158 + (longlong)pCVar32 * 0x10 + 4)) {
+        fVar39 = *(float *)(local_158 + (longlong)pCVar32 * 0x10 + 0xc) -
+                 *(float *)(local_158 + (longlong)pCVar32 * 0x10 + 4);
+      }
+      lVar30 = *(longlong *)param_4;
+      pCVar32 = (CGDISectionBitmapRealization *)(ulonglong)((int)pCVar32 + 1);
+      puVar26 = local_158;
+      param_1 = local_2f8;
+      this = local_2c8;
+    } while (pCVar32 < (CGDISectionBitmapRealization *)
+                       ((*(longlong *)(param_4 + 8) - lVar30 >> 2) * -0x5555555555555555));
   }
-  this_04 = (CMILMatrix *)(this + 0x388);
+  this_03 = (CMILMatrix *)(this + 0x388);
+  local_328 = (vector_facade<CCpuClipAntialiasSinkContext::SinkRenderParameters,detail::buffer_impl<CCpuClipAntialiasSinkContext::SinkRenderParameters,10,1,detail::liberal_expansion_policy>_>
+               *)((ulonglong)local_328._4_4_ << 0x20);
   local_338[0] = 0.0;
-  local_328 = (longlong *)((ulonglong)local_328._4_4_ << 0x20);
-  local_250 = this_04;
-  bVar8 = CMILMatrix::Is2DAffineOrNaN(this_04,SUB81(puVar23,0));
-  if (bVar8) {
-    fVar37 = sqrtf(*(float *)this_04 * *(float *)this_04 +
-                   *(float *)(this + 0x38c) * *(float *)(this + 0x38c));
-    fVar38 = sqrtf(*(float *)(this + 0x39c) * *(float *)(this + 0x39c) +
-                   *(float *)(this + 0x398) * *(float *)(this + 0x398));
-    if (NAN(fVar37)) {
-      fVar37 = 0.0;
-    }
+  local_258 = this_03;
+  bVar9 = CMILMatrix::Is2DAffineOrNaN(this_03,SUB81(puVar26,0));
+  if (bVar9) {
+    fVar38 = sqrtf(*(float *)(this + 0x38c) * *(float *)(this + 0x38c) +
+                   *(float *)this_03 * *(float *)this_03);
+    local_338[0] = sqrtf(*(float *)(this + 0x39c) * *(float *)(this + 0x39c) +
+                         *(float *)(this + 0x398) * *(float *)(this + 0x398));
     if (NAN(fVar38)) {
       fVar38 = 0.0;
     }
-    local_328 = (longlong *)CONCAT44(local_328._4_4_,fVar38);
-    local_338[0] = fVar37;
+    if (NAN(local_338[0])) {
+      local_338[0] = 0.0;
+    }
+    local_328 = (vector_facade<CCpuClipAntialiasSinkContext::SinkRenderParameters,detail::buffer_impl<CCpuClipAntialiasSinkContext::SinkRenderParameters,10,1,detail::liberal_expansion_policy>_>
+                 *)CONCAT44(local_328._4_4_,fVar38);
   }
   else {
-    local_2d0 = *(CCpuClipAntialiasDrawListEntry ***)this_04;
-    local_2c0 = *(undefined4 *)(this + 0x39c);
-    local_2c8 = *(CCpuClipAntialiasDrawListEntry **)(this + 0x394);
-    local_2b8 = *(undefined4 *)(this + 0x3b8);
-    local_2bc = *(undefined4 *)(this + 0x3a4);
-    local_2b0 = *(undefined4 *)(this + 0x3c4);
-    local_2b4 = *(undefined4 *)(this + 0x3bc);
+    uStack_180 = *(float **)(this + 0x394);
+    local_170 = *(undefined4 *)(this + 0x3b8);
+    local_168 = *(undefined4 *)(this + 0x3c4);
+    local_178 = CONCAT44(*(undefined4 *)(this + 0x3a4),*(undefined4 *)(this + 0x39c));
+    local_16c = *(undefined4 *)(this + 0x3bc);
+    local_188 = *(CDrawListEntry **)this_03;
     Matrix3x3::Get2DScaleDimensionsWithPerspective
-              ((Matrix3x3 *)&local_2d0,local_338,(float *)&local_328,
+              ((Matrix3x3 *)&local_188,(float *)&local_328,local_338,
                (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
                 *)0x0);
     fVar38 = (float)local_328;
   }
-  fVar37 = local_338[0];
-  if (local_338[0] <= fVar38) {
-    fVar37 = fVar38;
+  if (fVar38 <= local_338[0]) {
+    fVar38 = local_338[0];
   }
-  local_2ec = fVar37;
-  fVar41 = ceilf(fVar37 * fVar41);
-  local_320 = (CCpuClipAntialiasDrawListEntry *)CONCAT44(fVar41,(undefined4)local_320);
-  local_318 = (CRenderTargetBitmap *)0x0;
+  local_2ec = fVar38;
+  fVar39 = ceilf(fVar38 * fVar39);
+  local_320 = (UVData *)CONCAT44(fVar39,(float)local_320);
+  local_348[0] = (CCpuClipAntialiasDrawListEntry *)0x0;
   wil::com_ptr_t<IRenderTargetBitmap,wil::err_returncode_policy>::reset
-            ((com_ptr_t<IRenderTargetBitmap,wil::err_returncode_policy> *)&local_318);
-  pCVar28 = local_310;
-  local_248 = local_310 + 0x18;
-  lVar29 = (**(code **)(*(longlong *)(local_310 + 0x18) + 0x10))();
-  local_2d8 = 0x28;
+            ((com_ptr_t<IRenderTargetBitmap,wil::err_returncode_policy> *)local_348);
+  lVar30 = (**(code **)(*(longlong *)(param_1 + 0x18) + 0x10))(param_1 + 0x18);
+  fStack_2d8 = 5.60519e-44;
   local_2e0 = "DWM CPU-clip antialias sink intermediate";
-  lVar9 = CDrawingContext::PushOffScreenRenderingLayer
-                    (pCVar28,&local_2e0,&local_320,*(undefined4 *)(lVar29 + 8));
-  pCVar22 = local_318;
-  if (lVar9 < 0) {
+  lVar10 = CDrawingContext::PushOffScreenRenderingLayer
+                     (param_1,&local_2e0,&local_320,*(undefined4 *)(lVar30 + 8));
+  pCVar37 = local_348[0];
+  if (lVar10 < 0) {
     wil::details::in1diag3::Return_Hr
               (unaff_retaddr,0x14b,
-               "onecoreuap\\windows\\dwm\\dwmcore\\rendering\\cpuclipantialiassinkcontext.cpp",lVar9
-              );
-    if (local_318 == (CRenderTargetBitmap *)0x0) goto LAB_0;
-    pcVar15 = *(code **)(*(longlong *)local_318 + 0x10);
-    pCVar22 = local_318;
+               "onecoreuap\\windows\\dwm\\dwmcore\\rendering\\cpuclipantialiassinkcontext.cpp",
+               lVar10);
+    if (local_348[0] != (CCpuClipAntialiasDrawListEntry *)0x0) {
+      (**(code **)(*(longlong *)local_348[0] + 0x10))();
+    }
+    lVar30 = (longlong)local_150 - (longlong)local_158 >> 4;
+    if (lVar30 != 0) {
+      local_150 = local_150 + lVar30 * -0x10;
+    }
+    detail::
+    expandable_buffer_base<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,1>::
+    ~expandable_buffer_base<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,1>
+              ((expandable_buffer_base<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,1>
+                *)&local_158);
   }
   else {
-    if (*(code **)(*(longlong *)local_318 + 0x60) == CRenderTargetBitmap::SetAlphaMode) {
-      CRenderTargetBitmap::SetAlphaMode(local_318,1);
+    if (*(code **)(*(longlong *)local_348[0] + 0x60) == CRenderTargetBitmap::SetAlphaMode) {
+      CRenderTargetBitmap::SetAlphaMode((CRenderTargetBitmap *)local_348[0],1);
     }
     else {
-      (**(code **)(*(longlong *)local_318 + 0x60))();
-    }
-    local_2a0 = 0;
-    local_290 = 0;
-    pCVar35 = (CGDISectionBitmapRealization *)(pCVar22 + 8);
-    if (pCVar22 == (CRenderTargetBitmap *)0x0) {
-      pCVar35 = pCVar34;
-    }
-    uVar17 = uVar33;
-    local_298 = pCVar35;
-    if (pCVar35 != (CGDISectionBitmapRealization *)0x0) {
-      pcVar15 = *(code **)(*(longlong *)pCVar35 + 8);
-      if (pcVar15 == CMILRefCountImpl::AddReference) {
+      (**(code **)(*(longlong *)local_348[0] + 0x60))();
+    }
+    local_298 = 0;
+    local_288 = 0;
+    pCVar32 = (CGDISectionBitmapRealization *)(pCVar37 + 8);
+    if (pCVar37 == (CCpuClipAntialiasDrawListEntry *)0x0) {
+      pCVar32 = pCVar36;
+    }
+    uVar21 = uVar35;
+    local_290 = pCVar32;
+    if (pCVar32 != (CGDISectionBitmapRealization *)0x0) {
+      pcVar1 = *(code **)(*(longlong *)pCVar32 + 8);
+      if (pcVar1 == CMILRefCountImpl::AddReference) {
         LOCK();
-        iVar10 = *(int *)pCVar35;
-        *(int *)pCVar35 = *(int *)pCVar35 + 1;
+        iVar11 = *(int *)pCVar32;
+        *(int *)pCVar32 = *(int *)pCVar32 + 1;
         UNLOCK();
-        pCVar22 = local_318;
-        if (*(int *)pCVar35 == 0 || SCARRY4(iVar10,1) != *(int *)pCVar35 < 0) {
+        pCVar37 = local_348[0];
+        if (*(int *)pCVar32 == 0 || SCARRY4(iVar11,1) != *(int *)pCVar32 < 0) {
           wil::details::in1diag3::Log_Hr
                     (unaff_retaddr,0x18,"onecoreuap\\windows\\dwm\\common\\shared\\refcountbase.cpp"
                      ,-0x7ff8fd64);
-          pCVar35 = local_298;
-          pCVar22 = local_318;
+          pCVar32 = local_290;
+          pCVar37 = local_348[0];
         }
       }
-      else if (pcVar15 == CGDISectionBitmapRealization::AddRef_adjustor_392__) {
-        CGDISectionBitmapRealization::AddRef_adjustor_392__(pCVar35);
+      else if (pcVar1 == CGDISectionBitmapRealization::AddRef_adjustor_392__) {
+        CGDISectionBitmapRealization::AddRef_adjustor_392__(pCVar32);
       }
       else {
-        (*pcVar15)();
-      }
-      pcVar15 = *(code **)(*(longlong *)pCVar35 + 0x20);
-      if (pcVar15 ==
-          IBitmapRealizationMethodsT<CDxHandleBitmapRealization,IGDIBitmapRealization>::
-          GetSize_adjustor_320__) {
-        puVar14 = (uint *)IBitmapRealizationMethodsT<CDxHandleBitmapRealization,IGDIBitmapRealization>
+        (*pcVar1)();
+      }
+      pcVar1 = *(code **)(*(longlong *)pCVar32 + 0x20);
+      if (pcVar1 == IBitmapRealizationMethodsT<CDxHandleBitmapRealization,IGDIBitmapRealization>::
+                    GetSize_adjustor_320__) {
+        puVar17 = (uint *)IBitmapRealizationMethodsT<CDxHandleBitmapRealization,IGDIBitmapRealization>
                           ::GetSize_adjustor_320__
                                     ((IBitmapRealizationMethodsT<CDxHandleBitmapRealization,IGDIBitmapRealization>
-                                      *)pCVar35);
-      }
-      else if (pcVar15 == CDxHandleBitmapRealization::GetSize_adjustor_256__) {
-        puVar14 = (uint *)CDxHandleBitmapRealization::GetSize_adjustor_256__
-                                    ((CDxHandleBitmapRealization *)pCVar35);
+                                      *)pCVar32);
+      }
+      else if (pcVar1 == CDxHandleBitmapRealization::GetSize_adjustor_256__) {
+        puVar17 = (uint *)CDxHandleBitmapRealization::GetSize_adjustor_256__
+                                    ((CDxHandleBitmapRealization *)pCVar32);
       }
       else {
-        puVar14 = (uint *)(*pcVar15)(pCVar35,&local_300);
-      }
-      uVar17 = *puVar14;
-    }
-    local_288 = 1.0 / (float)uVar17;
-    if (pCVar35 != (CGDISectionBitmapRealization *)0x0) {
-      pcVar15 = *(code **)(*(longlong *)pCVar35 + 0x20);
-      if (pcVar15 ==
-          IBitmapRealizationMethodsT<CDxHandleBitmapRealization,IGDIBitmapRealization>::
-          GetSize_adjustor_320__) {
-        puVar36 = (undefined8 *)
+        puVar17 = (uint *)(*pcVar1)(pCVar32,&local_300);
+      }
+      uVar21 = *puVar17;
+    }
+    local_2f0 = 1.0 / (float)uVar21;
+    if (pCVar32 != (CGDISectionBitmapRealization *)0x0) {
+      pcVar1 = *(code **)(*(longlong *)pCVar32 + 0x20);
+      if (pcVar1 == IBitmapRealizationMethodsT<CDxHandleBitmapRealization,IGDIBitmapRealization>::
+                    GetSize_adjustor_320__) {
+        puVar18 = (undefined8 *)
                   IBitmapRealizationMethodsT<CDxHandleBitmapRealization,IGDIBitmapRealization>::
                   GetSize_adjustor_320__
                             ((IBitmapRealizationMethodsT<CDxHandleBitmapRealization,IGDIBitmapRealization>
-                              *)pCVar35);
-      }
-      else if (pcVar15 == CDxHandleBitmapRealization::GetSize_adjustor_256__) {
-        puVar36 = (undefined8 *)
+                              *)pCVar32);
+      }
+      else if (pcVar1 == CDxHandleBitmapRealization::GetSize_adjustor_256__) {
+        puVar18 = (undefined8 *)
                   CDxHandleBitmapRealization::GetSize_adjustor_256__
-                            ((CDxHandleBitmapRealization *)pCVar35);
+                            ((CDxHandleBitmapRealization *)pCVar32);
       }
       else {
-        puVar36 = (undefined8 *)(*pcVar15)(pCVar35,local_348);
-      }
-      uVar33 = (uint)((ulonglong)*puVar36 >> 0x20);
-    }
-    local_348[0] = (CCpuClipAntialiasDrawListEntry *)0x0;
-    local_2c8 = (CCpuClipAntialiasDrawListEntry *)0x0;
-    local_2c0 = CONCAT31(local_2c0._1_3_,1);
-    local_2d0 = local_348;
+        puVar18 = (undefined8 *)(*pcVar1)();
+      }
+      uVar35 = (uint)((ulonglong)*puVar18 >> 0x20);
+    }
+    fVar39 = (float)local_320;
+    fVar48 = local_320._4_4_;
+    fStack_2d8 = (float)local_320;
+    fStack_2d4 = local_320._4_4_;
     local_2e0 = (char *)0x0;
-    local_338[0] = (float)CONCAT13(local_338[0]._3_1_,0x10101);
-    local_2f0 = 1.0 / (float)uVar33;
-    local_2d4 = local_320._4_4_;
-    local_2d8 = (undefined4)local_320;
-    lVar9 = CSurfaceDrawListBrush::CreateWithContentRect(&local_2a0,local_338,&local_2e0,&local_2c8)
-    ;
-    if ((char)local_2c0 != '\0') {
-      this_00 = (CSurfaceDrawListBrush *)*local_2d0;
-      *local_2d0 = local_2c8;
-      if (this_00 != (CSurfaceDrawListBrush *)0x0) {
-        CSurfaceDrawListBrush::_scalar_deleting_destructor_(this_00,1);
-      }
-    }
-    if (lVar9 < 0) {
-      wil::details::in1diag3::Return_Hr
-                (unaff_retaddr,0x15c,
-                 "onecoreuap\\windows\\dwm\\dwmcore\\rendering\\cpuclipantialiassinkcontext.cpp",
-                 lVar9);
-      if (local_348[0] != (CCpuClipAntialiasDrawListEntry *)0x0) {
-        std::default_delete<CSurfaceDrawListBrush>::operator()
-                  ((default_delete<CSurfaceDrawListBrush> *)unaff_retaddr,
-                   (CSurfaceDrawListBrush *)local_348[0]);
-      }
-      CDrawListBitmap::~CDrawListBitmap((CDrawListBitmap *)&local_2a0);
-      CDrawingContext::PopLayer(pCVar28);
-      if (pCVar22 != (CRenderTargetBitmap *)0x0) {
-        (**(code **)(*(longlong *)pCVar22 + 0x10))(pCVar22);
-      }
-      lVar29 = (longlong)local_150 - (longlong)local_158 >> 4;
-      if (lVar29 != 0) {
-        local_150 = local_150 + lVar29 * -0x10;
-      }
-      detail::
-      expandable_buffer_base<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,1>
-      ::
-      ~expandable_buffer_base<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,1>
-                ((expandable_buffer_base<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,1>
-                  *)&local_158);
-      return lVar9;
-    }
-    local_2f8 = (CCpuClipAntialiasSinkContext *)local_348[0];
-    uStack_1c0 = &local_2f8;
-    local_328 = (longlong *)0x0;
-    local_1c8 = (CDrawListEntry *)0x1;
-    lVar9 = CCommonRenderingEffectFactory::CreateRenderingEffect
-                      ((CCommonRenderingEffectFactory *)&local_2e0,&local_1c8,&local_328);
-    if (-1 < lVar9) {
-      if (local_348[0] != (CCpuClipAntialiasDrawListEntry *)0x0) {
-        CSurfaceDrawListBrush::_scalar_deleting_destructor_((CSurfaceDrawListBrush *)local_348[0],1)
-        ;
-      }
-      lVar9 = CDrawingContext::ApplyRenderStateInternal(pCVar28,true);
-      plVar16 = local_328;
-      if (lVar9 < 0) {
-        wil::details::in1diag3::Return_Hr
-                  (unaff_retaddr,0x165,
-                   "onecoreuap\\windows\\dwm\\dwmcore\\rendering\\cpuclipantialiassinkcontext.cpp",
-                   lVar9);
-        wil::com_ptr_t<Mesh::VertexAAOffsetsResource,wil::err_returncode_policy>::
-        ~com_ptr_t<Mesh::VertexAAOffsetsResource,wil::err_returncode_policy>
-                  ((com_ptr_t<Mesh::VertexAAOffsetsResource,wil::err_returncode_policy> *)&local_328
-                  );
-        CDrawListBitmap::~CDrawListBitmap((CDrawListBitmap *)&local_2a0);
-        CDrawingContext::PopLayer(pCVar28);
-        wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::
-        ~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>
-                  ((com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy> *)&local_318);
-        detail::
-        vector_facade<D2D_RECT_F,detail::buffer_impl<D2D_RECT_F,4,1,detail::liberal_expansion_policy>_>
-        ::
-        ~vector_facade<D2D_RECT_F,detail::buffer_impl<D2D_RECT_F,4,1,detail::liberal_expansion_policy>_>
-                  ((vector_facade<D2D_RECT_F,detail::buffer_impl<D2D_RECT_F,4,1,detail::liberal_expansion_policy>_>
-                    *)&local_158);
-        return lVar9;
-      }
-      pcVar31 = *(char **)local_308;
-      local_338[0] = 0.0;
-      local_2e8 = 0x14;
-      pCVar35 = pCVar34;
-      do {
-        pcVar20 = *(char **)pcVar31;
-        while( true ) {
-          if (((CGDISectionBitmapRealization *)
-               ((*(longlong *)(param_4 + 8) - *(longlong *)param_4 >> 2) * -0x5555555555555555) <=
-               pCVar35) || (pcVar20 == *(char **)local_308)) {
-            if (plVar16 != (longlong *)0x0) {
-              (**(code **)(*plVar16 + 8))(plVar16);
-            }
-            CDrawListBitmap::~CDrawListBitmap((CDrawListBitmap *)&local_2a0);
-            CDrawingContext::PopLayer(local_310);
-            if (g_LockAndReadCpuClipAntialiasSinkTexture != false) {
-              plVar16 = (longlong *)(**(code **)(*(longlong *)pCVar22 + 0x90))(pCVar22);
-              (**(code **)(*plVar16 + 0x70))(plVar16,local_248);
-            }
-            if (pCVar22 != (CRenderTargetBitmap *)0x0) {
-              (**(code **)(*(longlong *)pCVar22 + 0x10))(pCVar22);
-            }
-            lVar29 = (longlong)local_150 - (longlong)local_158 >> 4;
-            if (lVar29 != 0) {
-              local_150 = local_150 + lVar29 * -0x10;
-            }
-            detail::
-            expandable_buffer_base<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,1>
-            ::
-            ~expandable_buffer_base<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,1>
-                      ((expandable_buffer_base<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,1>
-                        *)&local_158);
-            return 0;
+    local_280 = 1.0 / (float)uVar35;
+    pCVar13 = pCVar36;
+    pCVar23 = pCVar36;
+    if (pCVar32 != (CGDISectionBitmapRealization *)0x0) {
+      pcVar1 = *(code **)(*(longlong *)pCVar32 + 0x20);
+      if (pcVar1 == IBitmapRealizationMethodsT<CDxHandleBitmapRealization,IGDIBitmapRealization>::
+                    GetSize_adjustor_320__) {
+        puVar19 = (ulonglong *)
+                  IBitmapRealizationMethodsT<CDxHandleBitmapRealization,IGDIBitmapRealization>::
+                  GetSize_adjustor_320__
+                            ((IBitmapRealizationMethodsT<CDxHandleBitmapRealization,IGDIBitmapRealization>
+                              *)pCVar32);
+      }
+      else if (pcVar1 == CDxHandleBitmapRealization::GetSize_adjustor_256__) {
+        puVar19 = (ulonglong *)
+                  CDxHandleBitmapRealization::GetSize_adjustor_256__
+                            ((CDxHandleBitmapRealization *)pCVar32);
+      }
+      else {
+        puVar19 = (ulonglong *)(*pcVar1)();
+      }
+      pCVar13 = (CGDISectionBitmapRealization *)*puVar19;
+      pCVar23 = (CGDISectionBitmapRealization *)(*puVar19 >> 0x20);
+    }
+    local_1d4 = 0.0;
+    uStack_1d0 = 0;
+    local_1cc = 0.0;
+    local_1c4 = 0.0;
+    uStack_1b8 = CONCAT44(uStack_1b8._4_4_,0x3f800000);
+    fVar40 = 1.0 / (float)((ulonglong)pCVar13 & 0xffffffff);
+    fVar42 = 1.0 / (float)(longlong)pCVar23;
+    local_1c0 = CONCAT44(0.0 - fVar42 * 0.0,0.0 - fVar40 * 0.0);
+    local_1d8 = fVar40;
+    local_1c8 = fVar42;
+    pCVar14 = CThreadLocalObjectCache<CSurfaceDrawListBrush,CSurfaceDrawListBrush>::Alloc
+                        ((__uint64)pCVar23);
+    if (pCVar14 != (CSurfaceDrawListBrush *)0x0) {
+      local_338[0] = (float)CONCAT13(local_338[0]._3_1_,0x10101);
+      pCVar14 = (CSurfaceDrawListBrush *)
+                CSurfaceDrawListBrush::CSurfaceDrawListBrush
+                          (pCVar14,&local_298,local_338,&local_1d8);
+      if (pCVar14 != (CSurfaceDrawListBrush *)0x0) {
+        pCVar14[0x34] = (CSurfaceDrawListBrush)0x1;
+        *(undefined4 *)(pCVar14 + 0x30) = 0x3030303;
+        *(char **)(pCVar14 + 0x20) = local_2e0;
+        *(ulonglong *)(pCVar14 + 0x28) = CONCAT44(fStack_2d4,fStack_2d8);
+        *(float *)(pCVar14 + 0x78) = fVar40 * 0.0;
+        *(float *)(pCVar14 + 0x7c) = fVar42 * 0.0;
+        *(float *)(pCVar14 + 0x80) = fVar40 * fVar39;
+        *(float *)(pCVar14 + 0x84) = fVar42 * fVar48;
+        ppCStack_2b0 = &local_2f8;
+        local_318 = (longlong *)0x0;
+        local_2b8 = (CBatchCommand *)0x1;
+        local_2f8 = (CDrawingContext *)pCVar14;
+        lVar10 = CCommonRenderingEffectFactory::CreateRenderingEffect
+                           ((CCommonRenderingEffectFactory *)&local_2e0,&local_2b8,&local_318);
+        if (lVar10 < 0) {
+          wil::details::in1diag3::Return_Hr
+                    (unaff_retaddr,0x161,
+                     "onecoreuap\\windows\\dwm\\dwmcore\\rendering\\cpuclipantialiassinkcontext.cpp"
+                     ,lVar10);
+          std::default_delete<CSurfaceDrawListBrush>::operator()
+                    ((default_delete<CSurfaceDrawListBrush> *)unaff_retaddr,pCVar14);
+          if (local_318 != (longlong *)0x0) {
+            (**(code **)(*local_318 + 8))();
           }
-          local_300 = (undefined8 *)(*(longlong *)param_4 + (longlong)pCVar35 * 0xc);
-          for (pcVar31 = pcVar20;
-              ((pcVar31 != *(char **)local_308 &&
-               (*(float *)(pcVar31 + 0x18) <= *(float *)(local_300 + 1) &&
-                *(float *)(local_300 + 1) != *(float *)(pcVar31 + 0x18))) &&
-              (*(float *)((longlong)local_300 + 4) <= *(float *)(pcVar31 + 0x1c) &&
-               *(float *)(pcVar31 + 0x1c) != *(float *)((longlong)local_300 + 4)));
-              pcVar31 = *(char **)pcVar31) {
+          CDrawListBitmap::~CDrawListBitmap((CDrawListBitmap *)&local_298);
+          CDrawingContext::PopLayer(param_1);
+          if (pCVar37 != (CCpuClipAntialiasDrawListEntry *)0x0) {
+            (**(code **)(*(longlong *)pCVar37 + 0x10))(pCVar37);
           }
-          local_2e0 = pcVar20;
-          if (pcVar31 == pcVar20) break;
-          pfVar30 = (float *)(local_158 + (longlong)pCVar35 * 0x10);
-          fVar41 = pfVar30[3];
-          fVar45 = (float)(longlong)pCVar35 + (float)(longlong)pCVar35;
-          fVar46 = fVar45 + 1.0;
-          fVar38 = pfVar30[1];
-          fVar43 = fVar41 - fVar38;
-          fVar39 = ceilf(fVar43 * fVar37);
-          fVar37 = *pfVar30;
-          bVar5 = false;
-          local_1b8 = 0;
-          uStack_1c0 = (CCpuClipAntialiasSinkContext **)0x0;
-          bVar8 = false;
-          if (((fVar37 == fVar45) && (bVar8 = bVar5, fVar38 == 0.0)) &&
-             ((pfVar30[2] == fVar46 && (fVar41 == fVar39)))) {
-            bVar8 = true;
+          lVar30 = (longlong)local_150 - (longlong)local_158 >> 4;
+          if (lVar30 != 0) {
+            local_150 = local_150 + lVar30 * -0x10;
           }
-          if (bVar8) {
-            fVar41 = 1.0;
-            fVar38 = 0.0;
-            fVar37 = 0.0;
-            fVar47 = 1.0;
-            fVar44 = 0.0;
-            fVar42 = 0.0;
-          }
-          else if ((pfVar30[2] - fVar37 == 0.0) && (fVar43 == 0.0)) {
-            local_1b8._4_4_ = 0.0;
-            local_1b8._0_4_ = 0.0;
-            uStack_1c0._4_4_ = 0.0;
-            uStack_1c0._0_4_ = 0.0;
-            local_1c8._4_4_ = 0.0;
-            local_1c8._0_4_ = 0.0;
-            fVar42 = local_1b8._4_4_;
-            fVar44 = (float)local_1b8;
-            fVar41 = (float)local_1c8;
-            fVar47 = uStack_1c0._4_4_;
-            fVar38 = local_1c8._4_4_;
-            fVar37 = (float)uStack_1c0;
-          }
-          else {
-            fVar40 = (fVar46 - fVar45) / (pfVar30[2] - fVar37);
-            fVar43 = (fVar39 - 0.0) / fVar43;
-            fVar42 = -fVar38 * fVar43 + -fVar37 * 0.0 + 0.0;
-            fVar44 = -fVar37 * fVar40 + -fVar38 * 0.0 + fVar45;
-            fVar41 = fVar40 + 0.0;
-            fVar47 = fVar43 + 0.0;
-            fVar38 = fVar43 * 0.0 + 0.0;
-            fVar37 = fVar40 * 0.0 + 0.0;
-          }
-          local_2f8 = (CCpuClipAntialiasSinkContext *)(local_2a8 + 1);
-          for (; pcVar20 != pcVar31; pcVar20 = *(char **)pcVar20) {
-            local_270 = local_2a8[1];
-            local_2f8 = (CCpuClipAntialiasSinkContext *)(local_2a8 + 1);
-            local_278 = (ulonglong)*(uint *)(pcVar20 + 0x10) * 5;
-            local_1c8 = *(CDrawListEntry **)
-                         (local_270 + (ulonglong)*(uint *)(pcVar20 + 0x10) * 0x28);
-            this_01 = *(CCommonRenderingEffect **)(local_1c8 + 0x18);
-            pcVar15 = *(code **)(*(longlong *)this_01 + 0x30);
-            if (pcVar15 == CCommonRenderingEffect::UpdateBitmaps) {
-              pCVar28 = local_310;
-              iVar10 = CCommonRenderingEffect::UpdateBitmaps(this_01,local_310);
-              uVar33 = (uint)pCVar28;
-            }
-            else if (pcVar15 == CBrushRenderingEffect::UpdateBitmaps) {
-              pCVar28 = local_310;
-              iVar10 = CBrushRenderingEffect::UpdateBitmaps
-                                 ((CBrushRenderingEffect *)this_01,local_310);
-              uVar33 = (uint)pCVar28;
+          detail::
+          expandable_buffer_base<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,1>
+          ::
+          ~expandable_buffer_base<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,1>
+                    ((expandable_buffer_base<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,1>
+                      *)&local_158);
+          return lVar10;
+        }
+        CSurfaceDrawListBrush::_scalar_deleting_destructor_(pCVar14,1);
+        lVar10 = CDrawingContext::ApplyRenderStateInternal(param_1,true);
+        if (lVar10 < 0) {
+          wil::details::in1diag3::Return_Hr
+                    (unaff_retaddr,0x165,
+                     "onecoreuap\\windows\\dwm\\dwmcore\\rendering\\cpuclipantialiassinkcontext.cpp"
+                     ,lVar10);
+          wil::com_ptr_t<Mesh::VertexAAOffsetsResource,wil::err_returncode_policy>::
+          ~com_ptr_t<Mesh::VertexAAOffsetsResource,wil::err_returncode_policy>
+                    ((com_ptr_t<Mesh::VertexAAOffsetsResource,wil::err_returncode_policy> *)
+                     &local_318);
+          CDrawListBitmap::~CDrawListBitmap((CDrawListBitmap *)&local_298);
+          CDrawingContext::PopLayer(param_1);
+          wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::
+          ~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>
+                    ((com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy> *)local_348);
+          detail::
+          vector_facade<D2D_RECT_F,detail::buffer_impl<D2D_RECT_F,4,1,detail::liberal_expansion_policy>_>
+          ::
+          ~vector_facade<D2D_RECT_F,detail::buffer_impl<D2D_RECT_F,4,1,detail::liberal_expansion_policy>_>
+                    ((vector_facade<D2D_RECT_F,detail::buffer_impl<D2D_RECT_F,4,1,detail::liberal_expansion_policy>_>
+                      *)&local_158);
+          return lVar10;
+        }
+        local_338[0] = 0.0;
+        pcVar33 = *(char **)local_308;
+        local_2e8 = 0x14;
+        pCVar32 = pCVar36;
+        plVar20 = local_318;
+        do {
+          pcVar24 = *(char **)pcVar33;
+          while( true ) {
+            if (((CGDISectionBitmapRealization *)
+                 ((*(longlong *)(local_268 + 8) - *(longlong *)local_268 >> 2) * -0x5555555555555555
+                 ) <= pCVar32) || (pcVar24 == *(char **)local_308)) {
+              if (plVar20 != (longlong *)0x0) {
+                (**(code **)(*plVar20 + 8))(plVar20);
+              }
+              CDrawListBitmap::~CDrawListBitmap((CDrawListBitmap *)&local_298);
+              CDrawingContext::PopLayer(param_1);
+              if (g_LockAndReadCpuClipAntialiasSinkTexture != false) {
+                plVar20 = (longlong *)(**(code **)(*(longlong *)pCVar37 + 0x90))(pCVar37);
+                (**(code **)(*plVar20 + 0x70))(plVar20,param_1 + 0x18);
+              }
+              if (pCVar37 != (CCpuClipAntialiasDrawListEntry *)0x0) {
+                (**(code **)(*(longlong *)pCVar37 + 0x10))(pCVar37);
+              }
+              lVar30 = (longlong)local_150 - (longlong)local_158 >> 4;
+              if (lVar30 != 0) {
+                local_150 = local_150 + lVar30 * -0x10;
+              }
+              detail::
+              expandable_buffer_base<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,1>
+              ::
+              ~expandable_buffer_base<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,1>
+                        ((expandable_buffer_base<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,1>
+                          *)&local_158);
+              return 0;
+            }
+            local_300 = (undefined8 *)(*(longlong *)local_268 + (longlong)pCVar32 * 0xc);
+            for (pcVar33 = pcVar24;
+                ((pcVar33 != *(char **)local_308 &&
+                 (*(float *)(pcVar33 + 0x18) <= *(float *)(local_300 + 1) &&
+                  *(float *)(local_300 + 1) != *(float *)(pcVar33 + 0x18))) &&
+                (*(float *)((longlong)local_300 + 4) <= *(float *)(pcVar33 + 0x1c) &&
+                 *(float *)(pcVar33 + 0x1c) != *(float *)((longlong)local_300 + 4)));
+                pcVar33 = *(char **)pcVar33) {
+            }
+            local_2e0 = pcVar24;
+            if (pcVar33 == pcVar24) break;
+            pfVar31 = (float *)(local_158 + (longlong)pCVar32 * 0x10);
+            fVar39 = pfVar31[3];
+            fVar48 = pfVar31[1];
+            fVar42 = fVar39 - fVar48;
+            fVar45 = (float)(longlong)pCVar32 + (float)(longlong)pCVar32;
+            fVar46 = fVar45 + 1.0;
+            fVar40 = ceilf(fVar42 * fVar38);
+            fVar38 = *pfVar31;
+            bVar7 = false;
+            local_178 = 0;
+            uStack_180 = (float *)0x0;
+            bVar9 = false;
+            if (((fVar38 == fVar45) && (bVar9 = bVar7, fVar48 == 0.0)) &&
+               ((pfVar31[2] == fVar46 && (fVar39 == fVar40)))) {
+              bVar9 = true;
+            }
+            if (bVar9) {
+              fVar39 = 1.0;
+              fVar38 = 0.0;
+              fVar48 = 0.0;
+              fVar47 = 1.0;
+              fVar44 = 0.0;
+              fVar41 = 0.0;
+            }
+            else if ((pfVar31[2] - fVar38 == 0.0) && (fVar42 == 0.0)) {
+              local_178._4_4_ = 0.0;
+              local_178._0_4_ = 0.0;
+              uStack_180._4_4_ = 0.0;
+              uStack_180._0_4_ = 0.0;
+              local_188._4_4_ = 0.0;
+              local_188._0_4_ = 0.0;
+              fVar41 = local_178._4_4_;
+              fVar44 = (float)local_178;
+              fVar39 = (float)local_188;
+              fVar47 = uStack_180._4_4_;
+              fVar38 = local_188._4_4_;
+              fVar48 = (float)uStack_180;
             }
             else {
-              pCVar28 = local_310;
-              iVar10 = (*pcVar15)();
-              uVar33 = (uint)pCVar28;
-            }
-            lVar29 = local_280;
-            if (-1 < iVar10) {
-              local_348[0] = (CCpuClipAntialiasDrawListEntry *)0x0;
-              local_328 = (longlong *)((ulonglong)local_328 & 0xffffffff00000000);
-              if (*(int *)(local_280 + 0x58) == 0) {
-                local_258 = _Alloc_DefaultHeap__SAPEAX_K_Z(0xb8);
-                pCVar35 = pCVar34;
-                if (local_258 != (CBatchCommand *)0x0) {
-                  *(undefined4 *)local_258 = 0;
-                  ppCVar26 = &local_260;
-                  local_260 = local_258;
-                  lVar9 = DynArray<CBatchCommand*___ptr64,0>::AddMultipleAndSet
-                                    ((DynArray<CBatchCommand*___ptr64,0> *)(lVar29 + 0x40),ppCVar26,
-                                     1);
-                  uVar33 = (uint)ppCVar26;
-                  local_328 = (longlong *)CONCAT44(local_328._4_4_,lVar9);
-                  if (-1 < lVar9) goto LAB_1;
-                  this_02 = (default_delete<CBatchCommand> *)0x14;
-                  MilInstrumentationCheckHR_MaybeFailFast
-                            (0x14,(long *)0x0,0,lVar9,0x160,(void *)0x0);
-                  pCVar27 = local_258;
-                  std::default_delete<CBatchCommand>::operator()(this_02,local_258);
-                  uVar33 = (uint)pCVar27;
-                  goto LAB_2;
+              fVar43 = (fVar46 - fVar45) / (pfVar31[2] - fVar38);
+              fVar42 = (fVar40 - 0.0) / fVar42;
+              fVar41 = -fVar48 * fVar42 + -fVar38 * 0.0 + 0.0;
+              fVar44 = fVar43 * -fVar38 + -fVar48 * 0.0 + fVar45;
+              fVar39 = fVar43 + 0.0;
+              fVar47 = fVar42 + 0.0;
+              fVar38 = fVar42 * 0.0 + 0.0;
+              fVar48 = fVar43 * 0.0 + 0.0;
+            }
+            local_2f8 = (CDrawingContext *)(local_310 + 1);
+            for (; pcVar24 != pcVar33; pcVar24 = *(char **)pcVar24) {
+              local_2c8 = (CCpuClipAntialiasSinkContext *)local_310[1];
+              local_2f8 = (CDrawingContext *)(local_310 + 1);
+              local_270 = (ulonglong)*(uint *)(pcVar24 + 0x10) * 5;
+              local_188 = *(CDrawListEntry **)
+                           (local_2c8 + (ulonglong)*(uint *)(pcVar24 + 0x10) * 0x28);
+              this_00 = *(CCommonRenderingEffect **)(local_188 + 0x18);
+              pcVar1 = *(code **)(*(longlong *)this_00 + 0x30);
+              if (pcVar1 == CCommonRenderingEffect::UpdateBitmaps) {
+                iVar11 = CCommonRenderingEffect::UpdateBitmaps(this_00,param_1);
+              }
+              else if (pcVar1 == CBrushRenderingEffect::UpdateBitmaps) {
+                iVar11 = CBrushRenderingEffect::UpdateBitmaps
+                                   ((CBrushRenderingEffect *)this_00,param_1);
+              }
+              else {
+                iVar11 = (*pcVar1)();
+              }
+              if (-1 < iVar11) {
+                pCVar32 = (CGDISectionBitmapRealization *)0x0;
+                local_278 = (CBatchCommand *)(local_2d0 + 0x40);
+                local_348[0] = (CCpuClipAntialiasDrawListEntry *)0x0;
+                local_328 = (vector_facade<CCpuClipAntialiasSinkContext::SinkRenderParameters,detail::buffer_impl<CCpuClipAntialiasSinkContext::SinkRenderParameters,10,1,detail::liberal_expansion_policy>_>
+                             *)((ulonglong)local_328 & 0xffffffff00000000);
+                if (*(int *)(local_2d0 + 0x58) == 0) {
+                  local_2b8 = _Alloc_DefaultHeap__SAPEAX_K_Z(0xb8);
+                  if (local_2b8 == (CBatchCommand *)0x0) {
+                    pCVar29 = (CBatchCommand *)0x0;
+                    local_328 = (vector_facade<CCpuClipAntialiasSinkContext::SinkRenderParameters,detail::buffer_impl<CCpuClipAntialiasSinkContext::SinkRenderParameters,10,1,detail::liberal_expansion_policy>_>
+                                 *)CONCAT44(local_328._4_4_,0x8007000e);
+                    MilInstrumentationCheckHR_MaybeFailFast
+                              (0x14,(long *)0x0,0,-0x7ff8fff2,0x15e,(void *)0x0);
+                  }
+                  else {
+                    *(undefined4 *)local_2b8 = 0;
+                    local_260 = local_2b8;
+                    lVar10 = DynArray<CBatchCommand*___ptr64,0>::AddMultipleAndSet
+                                       ((DynArray<CBatchCommand*___ptr64,0> *)local_278,&local_260,1
+                                       );
+                    local_328 = (vector_facade<CCpuClipAntialiasSinkContext::SinkRenderParameters,detail::buffer_impl<CCpuClipAntialiasSinkContext::SinkRenderParameters,10,1,detail::liberal_expansion_policy>_>
+                                 *)CONCAT44(local_328._4_4_,lVar10);
+                    if (-1 < lVar10) goto LAB_0;
+                    this_02 = (default_delete<CBatchCommand> *)0x14;
+                    MilInstrumentationCheckHR_MaybeFailFast
+                              (0x14,(long *)0x0,0,lVar10,0x160,(void *)0x0);
+                    pCVar29 = local_2b8;
+                    std::default_delete<CBatchCommand>::operator()(this_02,local_2b8);
+                    pCVar32 = pCVar36;
+                  }
                 }
-                fVar43 = -6.42868e-40;
-                uVar33 = 0;
+                else {
+LAB_0:
+                  uVar21 = *(int *)(local_278 + 0x18) - 1;
+                  uVar35 = *(uint *)(local_278 + 0x20);
+                  if (uVar21 <= *(uint *)(local_278 + 0x20)) {
+                    uVar35 = uVar21;
+                  }
+                  pCVar32 = *(CGDISectionBitmapRealization **)
+                             (*(longlong *)local_278 + (ulonglong)uVar21 * 8);
+                  *(uint *)(local_278 + 0x20) = uVar35;
+                  *(uint *)(local_278 + 0x18) = uVar21;
+                  pCVar29 = local_278;
+                }
+                pCVar25 = local_348[0];
+                bVar9 = local_348[0] != (CCpuClipAntialiasDrawListEntry *)0x0;
+                local_348[0] = (CCpuClipAntialiasDrawListEntry *)pCVar32;
+                if (bVar9) {
+                  CBatchCommand::_scalar_deleting_destructor_
+                            ((CBatchCommand *)pCVar25,(uint)pCVar29);
+                }
+                if ((int)(float)local_328 < 0) {
+                  wil::details::in1diag3::Return_Hr
+                            (unaff_retaddr,0x195,
+                             "onecoreuap\\windows\\dwm\\dwmcore\\rendering\\cpuclipantialiassinkcontext.cpp"
+                             ,(long)(float)local_328);
+                  if (local_348[0] != (CCpuClipAntialiasDrawListEntry *)0x0) {
+                    std::default_delete<CBatchCommand>::operator()
+                              (unaff_retaddr,(CBatchCommand *)local_348[0]);
+                  }
+                  if (plVar20 != (longlong *)0x0) {
+                    (**(code **)(*plVar20 + 8))(plVar20);
+                  }
+                  CDrawListBitmap::~CDrawListBitmap((CDrawListBitmap *)&local_298);
+                  CDrawingContext::PopLayer(param_1);
+                  if (pCVar37 != (CCpuClipAntialiasDrawListEntry *)0x0) {
+                    (**(code **)(*(longlong *)pCVar37 + 0x10))(pCVar37);
+                  }
+                  lVar30 = (longlong)local_150 - (longlong)local_158 >> 4;
+                  if (lVar30 != 0) {
+                    local_150 = local_150 + lVar30 * -0x10;
+                  }
+                  detail::
+                  expandable_buffer_base<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,1>
+                  ::
+                  ~expandable_buffer_base<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,1>
+                            ((expandable_buffer_base<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,1>
+                              *)&local_158);
+                  return (long)(float)local_328;
+                }
+                uStack_1d0 = 0;
+                local_1cc = 0.0;
+                local_1c0 = 0;
+                uStack_1b8 = 0;
+                local_1b0 = 0x3f800000;
+                local_1a0 = 0;
+                local_19c = 0x28083f800000;
+                local_1d8 = fVar39;
+                local_1d4 = fVar38;
+                local_1c8 = fVar48;
+                local_1c4 = fVar47;
+                local_1a8 = fVar44;
+                local_1a4 = fVar41;
+                CBatchCommand::InitializeForRendering
+                          ((CBatchCommand *)local_348[0],local_188,
+                           *(Enum *)(local_2c8 + local_270 * 8 + 0xc),
+                           *(float *)(local_2c8 + local_270 * 8 + 8),(CMILMatrix *)&local_1d8,false)
+                ;
+                *(undefined4 *)(local_348[0] + 0x60) = 1;
+                *(undefined8 *)(local_348[0] + 100) = *(undefined8 *)(pcVar24 + 0x14);
+                *(undefined4 *)(local_348[0] + 0x6c) = *(undefined4 *)(pcVar24 + 0x1c);
+                uVar6 = *(undefined8 *)(local_258 + 8);
+                *(undefined8 *)(local_348[0] + 0x70) = *(undefined8 *)local_258;
+                *(undefined8 *)(local_348[0] + 0x78) = uVar6;
+                uVar6 = *(undefined8 *)(local_258 + 0x18);
+                *(undefined8 *)(local_348[0] + 0x80) = *(undefined8 *)(local_258 + 0x10);
+                *(undefined8 *)(local_348[0] + 0x88) = uVar6;
+                uVar6 = *(undefined8 *)(local_258 + 0x28);
+                *(undefined8 *)(local_348[0] + 0x90) = *(undefined8 *)(local_258 + 0x20);
+                *(undefined8 *)(local_348[0] + 0x98) = uVar6;
+                uVar6 = *(undefined8 *)(local_258 + 0x38);
+                *(undefined8 *)(local_348[0] + 0xa0) = *(undefined8 *)(local_258 + 0x30);
+                *(undefined8 *)(local_348[0] + 0xa8) = uVar6;
+                *(undefined4 *)(local_348[0] + 0xb0) = *(undefined4 *)(local_258 + 0x40);
+                pCVar2 = *(CHwLightCollectionBuffer **)(local_2c8 + local_270 * 8 + 0x10);
+                CD2DContext::EnsureBeginDraw((CD2DContext *)(local_2d0 + 0x10));
+                lVar10 = CD2DContext::EnsureDrawListBatch
+                                   ((CD2DContext *)(local_2d0 + 0x10),pCVar2,(ClipPlaneInfoRef *)0x0
+                                   );
+                if (lVar10 < 0) {
+                  local_2e8 = 0x14;
+                  uVar35 = 0x207;
+                }
+                else {
+                  puVar27 = (unique_ptr<CBatchCommand,std::default_delete<CBatchCommand>_> *)
+                            local_348;
+                  lVar10 = CDrawListEntryBatch::AppendRenderCommand
+                                     (*(CDrawListEntryBatch **)(local_2d0 + 0x98),puVar27);
+                  if (-1 < lVar10) {
+                    if (local_348[0] != (CCpuClipAntialiasDrawListEntry *)0x0) {
+                      CBatchCommand::_scalar_deleting_destructor_
+                                ((CBatchCommand *)local_348[0],(uint)puVar27);
+                    }
+                    goto LAB_1;
+                  }
+                  uVar35 = 0x20a;
+                }
                 MilInstrumentationCheckHR_MaybeFailFast
-                          (0x14,(long *)0x0,0,-0x7ff8fff2,0x15e,(void *)0x0);
-              }
-              else {
-LAB_1:
-                uVar18 = *(int *)(lVar29 + 0x58) - 1;
-                uVar17 = *(uint *)(lVar29 + 0x60);
-                if (uVar18 <= *(uint *)(lVar29 + 0x60)) {
-                  uVar17 = uVar18;
-                }
-                pCVar35 = *(CGDISectionBitmapRealization **)
-                           (*(longlong *)(lVar29 + 0x40) + (ulonglong)uVar18 * 8);
-                *(uint *)(lVar29 + 0x60) = uVar17;
-                *(uint *)(lVar29 + 0x58) = uVar18;
-LAB_2:
-                fVar43 = (float)local_328;
-              }
-              pCVar21 = local_348[0];
-              bVar8 = local_348[0] != (CCpuClipAntialiasDrawListEntry *)0x0;
-              local_348[0] = (CCpuClipAntialiasDrawListEntry *)pCVar35;
-              if (bVar8) {
-                CBatchCommand::_scalar_deleting_destructor_((CBatchCommand *)pCVar21,uVar33);
-              }
-              if ((int)fVar43 < 0) {
+                          (local_2e8,(long *)0x0,0,lVar10,uVar35,(void *)0x0);
                 wil::details::in1diag3::Return_Hr
-                          (unaff_retaddr,0x195,
+                          (unaff_retaddr,0x1a5,
                            "onecoreuap\\windows\\dwm\\dwmcore\\rendering\\cpuclipantialiassinkcontext.cpp"
-                           ,(long)fVar43);
+                           ,lVar10);
                 if (local_348[0] != (CCpuClipAntialiasDrawListEntry *)0x0) {
                   std::default_delete<CBatchCommand>::operator()
                             (unaff_retaddr,(CBatchCommand *)local_348[0]);
                 }
-                if (plVar16 != (longlong *)0x0) {
-                  (**(code **)(*plVar16 + 8))(plVar16);
-                }
-                CDrawListBitmap::~CDrawListBitmap((CDrawListBitmap *)&local_2a0);
-                CDrawingContext::PopLayer(local_310);
-                if (pCVar22 != (CRenderTargetBitmap *)0x0) {
-                  (**(code **)(*(longlong *)pCVar22 + 0x10))(pCVar22);
-                }
-                lVar29 = (longlong)local_150 - (longlong)local_158 >> 4;
-                if (lVar29 != 0) {
-                  local_150 = local_150 + lVar29 * -0x10;
-                }
-                detail::
-                expandable_buffer_base<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,1>
-                ::
-                ~expandable_buffer_base<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,1>
-                          ((expandable_buffer_base<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,1>
-                            *)&local_158);
-                return (long)fVar43;
-              }
-              local_1a0 = 0;
-              local_190 = 0;
-              uStack_188 = 0;
-              local_180 = 0x3f800000;
-              local_170 = 0;
-              local_16c = 0x28083f800000;
-              local_1a8._0_4_ = fVar41;
-              local_1a8._4_4_ = fVar38;
-              local_198 = fVar37;
-              local_194 = fVar47;
-              local_178 = fVar44;
-              local_174 = fVar42;
-              CBatchCommand::InitializeForRendering
-                        ((CBatchCommand *)local_348[0],local_1c8,
-                         *(Enum *)(local_270 + 0xc + local_278 * 8),
-                         *(float *)(local_270 + 8 + local_278 * 8),(CMILMatrix *)&local_1a8,false);
-              lVar29 = local_280;
-              *(undefined4 *)(local_348[0] + 0x60) = 1;
-              *(undefined8 *)(local_348[0] + 100) = *(undefined8 *)(pcVar20 + 0x14);
-              *(undefined4 *)(local_348[0] + 0x6c) = *(undefined4 *)(pcVar20 + 0x1c);
-              uVar4 = *(undefined8 *)(local_250 + 8);
-              *(undefined8 *)(local_348[0] + 0x70) = *(undefined8 *)local_250;
-              *(undefined8 *)(local_348[0] + 0x78) = uVar4;
-              uVar4 = *(undefined8 *)(local_250 + 0x18);
-              *(undefined8 *)(local_348[0] + 0x80) = *(undefined8 *)(local_250 + 0x10);
-              *(undefined8 *)(local_348[0] + 0x88) = uVar4;
-              uVar4 = *(undefined8 *)(local_250 + 0x28);
-              *(undefined8 *)(local_348[0] + 0x90) = *(undefined8 *)(local_250 + 0x20);
-              *(undefined8 *)(local_348[0] + 0x98) = uVar4;
-              uVar4 = *(undefined8 *)(local_250 + 0x38);
-              *(undefined8 *)(local_348[0] + 0xa0) = *(undefined8 *)(local_250 + 0x30);
-              *(undefined8 *)(local_348[0] + 0xa8) = uVar4;
-              *(undefined4 *)(local_348[0] + 0xb0) = *(undefined4 *)(local_250 + 0x40);
-              pCVar1 = *(CHwLightCollectionBuffer **)(local_270 + 0x10 + local_278 * 8);
-              CD2DContext::EnsureBeginDraw((CD2DContext *)(local_280 + 0x10));
-              lVar9 = CD2DContext::EnsureDrawListBatch
-                                ((CD2DContext *)(lVar29 + 0x10),pCVar1,(ClipPlaneInfoRef *)0x0);
-              if (lVar9 < 0) {
-                local_2e8 = 0x14;
-                uVar33 = 0x207;
-LAB_3:
-                MilInstrumentationCheckHR_MaybeFailFast
-                          (local_2e8,(long *)0x0,0,lVar9,uVar33,(void *)0x0);
-                wil::details::in1diag3::Return_Hr
-                          (unaff_retaddr,0x1a5,
-                           "onecoreuap\\windows\\dwm\\dwmcore\\rendering\\cpuclipantialiassinkcontext.cpp"
-                           ,lVar9);
-                if (local_348[0] != (CCpuClipAntialiasDrawListEntry *)0x0) {
-                  std::default_delete<CBatchCommand>::operator()
-                            (unaff_retaddr,(CBatchCommand *)local_348[0]);
-                }
-                if (plVar16 != (longlong *)0x0) {
-                  (**(code **)(*plVar16 + 8))(plVar16);
-                }
-                CDrawListBitmap::~CDrawListBitmap((CDrawListBitmap *)&local_2a0);
-                CDrawingContext::PopLayer(local_310);
-                if (pCVar22 != (CRenderTargetBitmap *)0x0) {
-                  (**(code **)(*(longlong *)pCVar22 + 0x10))(pCVar22);
-                }
-                lVar29 = (longlong)local_150 - (longlong)local_158 >> 4;
-                if (lVar29 != 0) {
-                  local_150 = local_150 + lVar29 * -0x10;
-                }
-                detail::
-                expandable_buffer_base<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,1>
-                ::
-                ~expandable_buffer_base<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,1>
-                          ((expandable_buffer_base<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,1>
-                            *)&local_158);
-                return lVar9;
-              }
-              puVar24 = (unique_ptr<CBatchCommand,std::default_delete<CBatchCommand>_> *)local_348;
-              lVar9 = CDrawListEntryBatch::AppendRenderCommand
-                                (*(CDrawListEntryBatch **)(lVar29 + 0x98),puVar24);
-              if (lVar9 < 0) {
-                uVar33 = 0x20a;
-                goto LAB_3;
-              }
+                goto LAB_2;
+              }
+LAB_1:
+            }
+            local_2b8 = (CBatchCommand *)&local_320;
+            pfStack_240 = &local_1d8;
+            local_1d8 = fVar39 * local_2f0 + fVar38 * 0.0;
+            local_248 = 1;
+            local_1d4 = fVar38 * local_280 + fVar39 * 0.0;
+            local_320 = (UVData *)0x0;
+            uStack_1d0 = 0;
+            local_1c4 = 0.0;
+            local_1cc = fVar48 * local_2f0 + fVar47 * 0.0;
+            local_1a4 = 1.4013e-45;
+            local_1c8 = fVar47 * local_280 + fVar48 * 0.0;
+            ppCStack_2b0 = (CDrawingContext **)0x0;
+            local_2a8 = '\x01';
+            local_1c0 = CONCAT44(fVar41 * local_280 + fVar44 * 0.0 + (0.0 - local_280 * 0.0),
+                                 fVar44 * local_2f0 + fVar41 * 0.0 + (0.0 - local_2f0 * 0.0));
+            local_1a8 = (fVar40 - 0.5) * local_280;
+            uStack_1b8 = CONCAT44((fVar45 + 0.5) * local_2f0,0x3f800000);
+            local_1b0 = CONCAT44((fVar46 - 0.5) * local_2f0,local_280 * 0.5);
+            local_188 = (CDrawListEntry *)0x1;
+            uStack_180 = pfStack_240;
+            CCpuClipAntialiasSink::CreateUVData((CCpuClipAntialiasSink *)*local_310,1,local_300);
+            local_328 = (vector_facade<CCpuClipAntialiasSinkContext::SinkRenderParameters,detail::buffer_impl<CCpuClipAntialiasSinkContext::SinkRenderParameters,10,1,detail::liberal_expansion_policy>_>
+                         *)(local_310 + 1);
+            if (local_2a8 != '\0') {
+              pvVar3 = *(void **)local_2b8;
+              *(CDrawingContext ***)local_2b8 = ppCStack_2b0;
+              local_328 = (vector_facade<CCpuClipAntialiasSinkContext::SinkRenderParameters,detail::buffer_impl<CCpuClipAntialiasSinkContext::SinkRenderParameters,10,1,detail::liberal_expansion_policy>_>
+                           *)local_2f8;
+              if (pvVar3 != (void *)0x0) {
+                std::
+                unique_ptr<struct_D2D_POINT_2F_[0],std::default_delete<struct_D2D_POINT_2F_[0]>_>::
+                ~unique_ptr<struct_D2D_POINT_2F_[0],std::default_delete<struct_D2D_POINT_2F_[0]>_>
+                          ((unique_ptr<struct_D2D_POINT_2F_[0],std::default_delete<struct_D2D_POINT_2F_[0]>_>
+                            *)((longlong)pvVar3 + 0x10));
+                operator_delete__(pvVar3,0x18);
+                local_328 = (vector_facade<CCpuClipAntialiasSinkContext::SinkRenderParameters,detail::buffer_impl<CCpuClipAntialiasSinkContext::SinkRenderParameters,10,1,detail::liberal_expansion_policy>_>
+                             *)(local_310 + 1);
+              }
+            }
+            this_01 = local_328;
+            memset(&local_238,0,0x58);
+            local_230 = 4;
+            local_1e7 = 1;
+            local_1f0 = *(undefined8 *)local_320;
+            local_348[0] = (CCpuClipAntialiasDrawListEntry *)0x0;
+            local_208 = *local_310;
+            local_200 = *local_300;
+            local_1f8 = *(undefined4 *)(local_300 + 1);
+            local_238 = plVar20;
+            lVar10 = CCpuClipAntialiasDrawListEntry::Create
+                               ((CpuClipAntialiasEntryParams *)&local_238,
+                                (unique_ptr<CCpuClipAntialiasSink::UVData,std::default_delete<CCpuClipAntialiasSink::UVData>_>
+                                 *)&local_320,local_348);
+            if (lVar10 < 0) {
+              wil::details::in1diag3::Return_Hr
+                        (unaff_retaddr,0x1c9,
+                         "onecoreuap\\windows\\dwm\\dwmcore\\rendering\\cpuclipantialiassinkcontext.cpp"
+                         ,lVar10);
+              pCVar25 = local_348[0];
               if (local_348[0] != (CCpuClipAntialiasDrawListEntry *)0x0) {
-                CBatchCommand::_scalar_deleting_destructor_
-                          ((CBatchCommand *)local_348[0],(uint)puVar24);
-              }
-            }
-          }
-          local_2d0 = (CCpuClipAntialiasDrawListEntry **)&local_320;
-          ppCStack_230 = (CCpuClipAntialiasSinkContext **)&local_1a8;
-          local_238 = 1;
-          local_1a8._4_4_ = fVar38 * local_2f0 + fVar41 * 0.0;
-          local_320 = (CCpuClipAntialiasDrawListEntry *)0x0;
-          local_1a8._0_4_ = fVar41 * local_288 + fVar38 * 0.0;
-          local_194 = 0.0;
-          local_174 = 1.4013e-45;
-          local_198 = fVar47 * local_2f0 + fVar37 * 0.0;
-          local_2c8 = (CCpuClipAntialiasDrawListEntry *)0x0;
-          local_2c0 = CONCAT31(local_2c0._1_3_,1);
-          local_1a0 = (ulonglong)(uint)(fVar37 * local_288 + fVar47 * 0.0) << 0x20;
-          uStack_188 = CONCAT44((fVar45 + 0.5) * local_288,0x3f800000);
-          local_178 = (fVar39 - 0.5) * local_2f0;
-          local_190 = CONCAT44(fVar42 * local_2f0 + fVar44 * 0.0 + (0.0 - local_2f0 * 0.0),
-                               fVar44 * local_288 + fVar42 * 0.0 + (0.0 - local_288 * 0.0));
-          local_180 = CONCAT44((fVar46 - 0.5) * local_288,local_2f0 * 0.5);
-          local_1c8 = (CDrawListEntry *)0x1;
-          uStack_1c0 = ppCStack_230;
-          CCpuClipAntialiasSink::CreateUVData((CCpuClipAntialiasSink *)*local_2a8,1,local_300);
-          puVar36 = local_2a8;
-          pCVar7 = local_2f8;
-          this_03 = (vector_facade<CCpuClipAntialiasSinkContext::SinkRenderParameters,detail::buffer_impl<CCpuClipAntialiasSinkContext::SinkRenderParameters,10,1,detail::liberal_expansion_policy>_>
-                     *)(local_2a8 + 1);
-          if ((char)local_2c0 != '\0') {
-            pCVar21 = *local_2d0;
-            *local_2d0 = local_2c8;
-            this_03 = (vector_facade<CCpuClipAntialiasSinkContext::SinkRenderParameters,detail::buffer_impl<CCpuClipAntialiasSinkContext::SinkRenderParameters,10,1,detail::liberal_expansion_policy>_>
-                       *)pCVar7;
-            if (pCVar21 != (CCpuClipAntialiasDrawListEntry *)0x0) {
+                CMILRefCountBaseT<IMILRefCount,CMilObjectDeleter>::InternalRelease
+                          ((CMILRefCountBaseT<IMILRefCount,CMilObjectDeleter> *)local_348[0]);
+              }
+              if (local_320 != (UVData *)0x0) {
+                std::default_delete<CCpuClipAntialiasSink::UVData>::operator()
+                          ((default_delete<CCpuClipAntialiasSink::UVData> *)pCVar25,local_320);
+              }
+LAB_2:
+              if (plVar20 != (longlong *)0x0) {
+                (**(code **)(*plVar20 + 8))(plVar20);
+              }
+              CDrawListBitmap::~CDrawListBitmap((CDrawListBitmap *)&local_298);
+              CDrawingContext::PopLayer(param_1);
+              if (pCVar37 != (CCpuClipAntialiasDrawListEntry *)0x0) {
+                (**(code **)(*(longlong *)pCVar37 + 0x10))(pCVar37);
+              }
+              lVar30 = (longlong)local_150 - (longlong)local_158 >> 4;
+              if (lVar30 != 0) {
+                local_150 = local_150 + lVar30 * -0x10;
+              }
+              detail::
+              expandable_buffer_base<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,1>
+              ::
+              ~expandable_buffer_base<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,1>
+                        ((expandable_buffer_base<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,1>
+                          *)&local_158);
+              return lVar10;
+            }
+            pSVar15 = detail::
+                      vector_facade<CCpuClipAntialiasSinkContext::SinkRenderParameters,detail::buffer_impl<CCpuClipAntialiasSinkContext::SinkRenderParameters,10,1,detail::liberal_expansion_policy>_>
+                      ::reserve_region(this_01,(*(longlong *)(this_01 + 8) - *(longlong *)this_01 >>
+                                               3) * -0x3333333333333333,1);
+            pCVar25 = local_348[0];
+            *(CCpuClipAntialiasDrawListEntry **)pSVar15 = local_348[0];
+            if (local_348[0] != (CCpuClipAntialiasDrawListEntry *)0x0) {
+              CMILRefCountImpl::AddReference((CMILRefCountImpl *)(local_348[0] + 8));
+            }
+            *(undefined8 *)(pSVar15 + 8) = 0x3f800000;
+            *(undefined8 *)(pSVar15 + 0x10) = 0;
+            *(undefined8 *)(pSVar15 + 0x18) = 0;
+            *(undefined2 *)(pSVar15 + 0x20) = 1;
+            puVar18 = *(undefined8 **)(local_2e0 + 8);
+            *puVar18 = pcVar33;
+            *(undefined8 **)(pcVar33 + 8) = puVar18;
+            pcVar24 = local_2e0;
+            pCVar32 = pCVar36;
+            do {
+              pcVar4 = *(char **)pcVar24;
+              _Var28 = 0x20;
+              operator_delete__(pcVar24,0x20);
+              plVar20 = local_318;
+              pCVar32 = pCVar32 + 1;
+              pcVar24 = pcVar4;
+            } while (pcVar4 != pcVar33);
+            *(longlong *)(local_308 + 8) = *(longlong *)(local_308 + 8) - (longlong)pCVar32;
+            lVar30 = *(longlong *)(local_328 + 8);
+            lVar5 = *(longlong *)local_328;
+            local_348[0] = (CCpuClipAntialiasDrawListEntry *)pCVar32;
+            if (*(longlong *)(local_308 + 8) == 0x7ffffffffffffff) {
+              std::_Xlength_error("list too long");
+              pcVar1 = (code *)swi(3);
+              lVar10 = (*pcVar1)();
+              return lVar10;
+            }
+            p_Var16 = std::
+                      allocator<std::_List_node<CCpuClipAntialiasSinkContext::SinkRenderCommand,void*___ptr64>_>
+                      ::allocate((allocator<std::_List_node<CCpuClipAntialiasSinkContext::SinkRenderCommand,void*___ptr64>_>
+                                  *)local_308,_Var28);
+            local_338[0] = (float)((int)local_338[0] + 1);
+            *(int *)(p_Var16 + 0x10) = (int)(lVar30 - lVar5 >> 3) * -0x33333333 + -1;
+            *(undefined8 *)(p_Var16 + 0x14) = *local_300;
+            *(undefined4 *)(p_Var16 + 0x1c) = *(undefined4 *)(local_300 + 1);
+            *(longlong *)(local_308 + 8) = *(longlong *)(local_308 + 8) + 1;
+            puVar18 = *(undefined8 **)(pcVar33 + 8);
+            *(char **)p_Var16 = pcVar33;
+            *(undefined8 **)(p_Var16 + 8) = puVar18;
+            *(_List_node<CCpuClipAntialiasSinkContext::SinkRenderCommand,void*___ptr64> **)
+             (pcVar33 + 8) = p_Var16;
+            *puVar18 = p_Var16;
+            if (pCVar25 != (CCpuClipAntialiasDrawListEntry *)0x0) {
+              CMILRefCountBaseT<IMILRefCount,CMilObjectDeleter>::InternalRelease
+                        ((CMILRefCountBaseT<IMILRefCount,CMilObjectDeleter> *)pCVar25);
+            }
+            fVar38 = local_2ec;
+            pUVar8 = local_320;
+            pCVar32 = (CGDISectionBitmapRealization *)(ulonglong)(uint)local_338[0];
+            pcVar24 = pcVar33;
+            if (local_320 != (UVData *)0x0) {
               std::unique_ptr<struct_D2D_POINT_2F_[0],std::default_delete<struct_D2D_POINT_2F_[0]>_>
               ::~unique_ptr<struct_D2D_POINT_2F_[0],std::default_delete<struct_D2D_POINT_2F_[0]>_>
                         ((unique_ptr<struct_D2D_POINT_2F_[0],std::default_delete<struct_D2D_POINT_2F_[0]>_>
-                          *)(pCVar21 + 0x10));
-              operator_delete__(pCVar21,0x18);
-              this_03 = (vector_facade<CCpuClipAntialiasSinkContext::SinkRenderParameters,detail::buffer_impl<CCpuClipAntialiasSinkContext::SinkRenderParameters,10,1,detail::liberal_expansion_policy>_>
-                         *)(puVar36 + 1);
+                          *)(local_320 + 0x10));
+              operator_delete__(pUVar8,0x18);
+              pCVar32 = (CGDISectionBitmapRealization *)(ulonglong)(uint)local_338[0];
             }
           }
-          memset(&local_228,0,0x58);
-          local_220 = 4;
-          local_228 = plVar16;
-          local_1d7 = 1;
-          local_1e0 = *(undefined8 *)local_320;
-          local_1f8 = *puVar36;
-          local_348[0] = (CCpuClipAntialiasDrawListEntry *)0x0;
-          local_1f0 = *local_300;
-          local_1e8 = *(undefined4 *)(local_300 + 1);
-          lVar9 = CCpuClipAntialiasDrawListEntry::Create
-                            ((CpuClipAntialiasEntryParams *)&local_228,
-                             (unique_ptr<CCpuClipAntialiasSink::UVData,std::default_delete<CCpuClipAntialiasSink::UVData>_>
-                              *)&local_320,local_348);
-          if (lVar9 < 0) {
-            wil::details::in1diag3::Return_Hr
-                      (unaff_retaddr,0x1c9,
-                       "onecoreuap\\windows\\dwm\\dwmcore\\rendering\\cpuclipantialiassinkcontext.cpp"
-                       ,lVar9);
-            pCVar21 = local_348[0];
-            if (local_348[0] != (CCpuClipAntialiasDrawListEntry *)0x0) {
-              CMILRefCountBaseT<IMILRefCount,CMilObjectDeleter>::InternalRelease
-                        ((CMILRefCountBaseT<IMILRefCount,CMilObjectDeleter> *)local_348[0]);
-            }
-            if (local_320 != (CCpuClipAntialiasDrawListEntry *)0x0) {
-              std::default_delete<CCpuClipAntialiasSink::UVData>::operator()
-                        ((default_delete<CCpuClipAntialiasSink::UVData> *)pCVar21,
-                         (UVData *)local_320);
-            }
-            if (plVar16 != (longlong *)0x0) {
-              (**(code **)(*plVar16 + 8))(plVar16);
-            }
-            CDrawListBitmap::~CDrawListBitmap((CDrawListBitmap *)&local_2a0);
-            CDrawingContext::PopLayer(local_310);
-            if (pCVar22 != (CRenderTargetBitmap *)0x0) {
-              (**(code **)(*(longlong *)pCVar22 + 0x10))(pCVar22);
-            }
-            lVar29 = (longlong)local_150 - (longlong)local_158 >> 4;
-            if (lVar29 != 0) {
-              local_150 = local_150 + lVar29 * -0x10;
-            }
-            detail::
-            expandable_buffer_base<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,1>
-            ::
-            ~expandable_buffer_base<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,1>
-                      ((expandable_buffer_base<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,1>
-                        *)&local_158);
-            return lVar9;
-          }
-          pSVar12 = detail::
-                    vector_facade<CCpuClipAntialiasSinkContext::SinkRenderParameters,detail::buffer_impl<CCpuClipAntialiasSinkContext::SinkRenderParameters,10,1,detail::liberal_expansion_policy>_>
-                    ::reserve_region(this_03,(*(longlong *)(this_03 + 8) - *(longlong *)this_03 >> 3
-                                             ) * -0x3333333333333333,1);
-          pCVar21 = local_348[0];
-          *(CCpuClipAntialiasDrawListEntry **)pSVar12 = local_348[0];
-          if (local_348[0] != (CCpuClipAntialiasDrawListEntry *)0x0) {
-            CMILRefCountImpl::AddReference((CMILRefCountImpl *)(local_348[0] + 8));
-          }
-          *(undefined8 *)(pSVar12 + 8) = 0x3f800000;
-          *(undefined8 *)(pSVar12 + 0x10) = 0;
-          *(undefined8 *)(pSVar12 + 0x18) = 0;
-          *(undefined2 *)(pSVar12 + 0x20) = 1;
-          puVar36 = *(undefined8 **)(local_2e0 + 8);
-          *puVar36 = pcVar31;
-          *(undefined8 **)(pcVar31 + 8) = puVar36;
-          pcVar20 = local_2e0;
-          pCVar35 = pCVar34;
-          do {
-            pcVar2 = *(char **)pcVar20;
-            _Var25 = 0x20;
-            operator_delete__(pcVar20,0x20);
-            pCVar22 = local_318;
-            pCVar35 = pCVar35 + 1;
-            pcVar20 = pcVar2;
-          } while (pcVar2 != pcVar31);
-          *(longlong *)(local_308 + 8) = *(longlong *)(local_308 + 8) - (longlong)pCVar35;
-          lVar29 = *(longlong *)(this_03 + 8);
-          lVar3 = *(longlong *)this_03;
-          local_348[0] = (CCpuClipAntialiasDrawListEntry *)pCVar35;
-          if (*(longlong *)(local_308 + 8) == 0x7ffffffffffffff) {
-            std::_Xlength_error("list too long");
-            pcVar15 = (code *)swi(3);
-            lVar9 = (*pcVar15)();
-            return lVar9;
-          }
-          p_Var13 = std::
-                    allocator<std::_List_node<CCpuClipAntialiasSinkContext::SinkRenderCommand,void*___ptr64>_>
-                    ::allocate((allocator<std::_List_node<CCpuClipAntialiasSinkContext::SinkRenderCommand,void*___ptr64>_>
-                                *)local_308,_Var25);
-          local_338[0] = (float)((int)local_338[0] + 1);
-          *(int *)(p_Var13 + 0x10) = (int)(lVar29 - lVar3 >> 3) * -0x33333333 + -1;
-          *(undefined8 *)(p_Var13 + 0x14) = *local_300;
-          *(undefined4 *)(p_Var13 + 0x1c) = *(undefined4 *)(local_300 + 1);
-          *(longlong *)(local_308 + 8) = *(longlong *)(local_308 + 8) + 1;
-          puVar36 = *(undefined8 **)(pcVar31 + 8);
-          *(char **)p_Var13 = pcVar31;
-          *(undefined8 **)(p_Var13 + 8) = puVar36;
-          *(_List_node<CCpuClipAntialiasSinkContext::SinkRenderCommand,void*___ptr64> **)
-           (pcVar31 + 8) = p_Var13;
-          *puVar36 = p_Var13;
-          if (pCVar21 != (CCpuClipAntialiasDrawListEntry *)0x0) {
-            CMILRefCountBaseT<IMILRefCount,CMilObjectDeleter>::InternalRelease
-                      ((CMILRefCountBaseT<IMILRefCount,CMilObjectDeleter> *)pCVar21);
-          }
-          param_4 = local_268;
-          fVar37 = local_2ec;
-          pUVar6 = (UVData *)local_320;
-          pCVar35 = (CGDISectionBitmapRealization *)(ulonglong)(uint)local_338[0];
-          pcVar20 = pcVar31;
-          if (local_320 != (CCpuClipAntialiasDrawListEntry *)0x0) {
-            std::unique_ptr<struct_D2D_POINT_2F_[0],std::default_delete<struct_D2D_POINT_2F_[0]>_>::
-            ~unique_ptr<struct_D2D_POINT_2F_[0],std::default_delete<struct_D2D_POINT_2F_[0]>_>
-                      ((unique_ptr<struct_D2D_POINT_2F_[0],std::default_delete<struct_D2D_POINT_2F_[0]>_>
-                        *)(local_320 + 0x10));
-            operator_delete__(pUVar6,0x18);
-            pCVar35 = (CGDISectionBitmapRealization *)(ulonglong)(uint)local_338[0];
-          }
-        }
-      } while( true );
-    }
+        } while( true );
+      }
+    }
+    MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,-0x7ff8fff2,0x1f,(void *)0x0);
     wil::details::in1diag3::Return_Hr
-              (unaff_retaddr,0x161,
-               "onecoreuap\\windows\\dwm\\dwmcore\\rendering\\cpuclipantialiassinkcontext.cpp",lVar9
-              );
-    if (local_348[0] != (CCpuClipAntialiasDrawListEntry *)0x0) {
-      std::default_delete<CSurfaceDrawListBrush>::operator()
-                ((default_delete<CSurfaceDrawListBrush> *)unaff_retaddr,
-                 (CSurfaceDrawListBrush *)local_348[0]);
-    }
-    if (local_328 != (longlong *)0x0) {
-      (**(code **)(*local_328 + 8))();
-    }
-    CDrawListBitmap::~CDrawListBitmap((CDrawListBitmap *)&local_2a0);
-    CDrawingContext::PopLayer(pCVar28);
-    if (pCVar22 == (CRenderTargetBitmap *)0x0) goto LAB_0;
-    pcVar15 = *(code **)(*(longlong *)pCVar22 + 0x10);
+              (unaff_retaddr,0x15c,
+               "onecoreuap\\windows\\dwm\\dwmcore\\rendering\\cpuclipantialiassinkcontext.cpp",
+               -0x7ff8fff2);
+    CDrawListBitmap::~CDrawListBitmap((CDrawListBitmap *)&local_298);
+    CDrawingContext::PopLayer(param_1);
+    if (pCVar37 != (CCpuClipAntialiasDrawListEntry *)0x0) {
+      (**(code **)(*(longlong *)pCVar37 + 0x10))(pCVar37);
+    }
+    lVar30 = (longlong)local_150 - (longlong)local_158 >> 4;
+    if (lVar30 != 0) {
+      local_150 = local_150 + lVar30 * -0x10;
+    }
+    detail::
+    expandable_buffer_base<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,1>::
+    ~expandable_buffer_base<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,1>
+              ((expandable_buffer_base<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,1>
+                *)&local_158);
+    lVar10 = -0x7ff8fff2;
   }
-  (*pcVar15)(pCVar22);
-LAB_0:
-  lVar29 = (longlong)local_150 - (longlong)local_158 >> 4;
-  if (lVar29 != 0) {
-    local_150 = local_150 + lVar29 * -0x10;
-  }
-  detail::
-  expandable_buffer_base<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,1>::
-  ~expandable_buffer_base<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,1>
-            ((expandable_buffer_base<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,1>
-              *)&local_158);
-  return lVar9;
+  return lVar10;
 }
 

```


## wil::details::FeatureImpl<__WilFeatureTraits_Feature_Capture_DirtyRegionOcclusion>::GetCurrentFeatureEnabledState

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,length,address|
|ratio|0.49|
|i_ratio|0.7|
|m_ratio|0.97|
|b_ratio|0.93|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|GetCurrentFeatureEnabledState|GetCurrentFeatureEnabledState|
|fullname|wil::details::FeatureImpl<__WilFeatureTraits_Feature_Capture_DirtyRegionOcclusion>::GetCurrentFeatureEnabledState|wil::details::FeatureImpl<__WilFeatureTraits_Feature_Capture_DirtyRegionOcclusion>::GetCurrentFeatureEnabledState|
|refcount|2|2|
|`length`|238|229|
|called|wil::details::FeatureImpl<__WilFeatureTraits_Feature_ValAccTest>::__private_IsEnabled<br>wil::details::WilApi_GetFeatureEnabledState|wil::details::FeatureImpl<__WilFeatureTraits_Feature_ValAccTest>::__private_IsEnabled<br>wil::details::WilApi_GetFeatureEnabledState|
|calling|wil::details::FeatureImpl<__WilFeatureTraits_Feature_Capture_DirtyRegionOcclusion>::GetCachedFeatureEnabledState|wil::details::FeatureImpl<__WilFeatureTraits_Feature_Capture_DirtyRegionOcclusion>::GetCachedFeatureEnabledState|
|paramcount|2|2|
|`address`|180285930|180284710|
|sig|wil_details_FeatureStateCache __thiscall GetCurrentFeatureEnabledState(FeatureImpl<__WilFeatureTraits_Feature_Capture_DirtyRegionOcclusion> * this, int * param_1)|wil_details_FeatureStateCache __thiscall GetCurrentFeatureEnabledState(FeatureImpl<__WilFeatureTraits_Feature_Capture_DirtyRegionOcclusion> * this, int * param_1)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### wil::details::FeatureImpl<__WilFeatureTraits_Feature_Capture_DirtyRegionOcclusion>::GetCurrentFeatureEnabledState Diff


```diff
--- wil::details::FeatureImpl<__WilFeatureTraits_Feature_Capture_DirtyRegionOcclusion>::GetCurrentFeatureEnabledState
+++ wil::details::FeatureImpl<__WilFeatureTraits_Feature_Capture_DirtyRegionOcclusion>::GetCurrentFeatureEnabledState
@@ -1,61 +1,56 @@
 
 /* private: union wil_details_FeatureStateCache __cdecl wil::details::FeatureImpl<struct
    __WilFeatureTraits_Feature_Capture_DirtyRegionOcclusion>::GetCurrentFeatureEnabledState(int *
    __ptr64) __ptr64 */
 
 int * __thiscall
 wil::details::FeatureImpl<__WilFeatureTraits_Feature_Capture_DirtyRegionOcclusion>::
 GetCurrentFeatureEnabledState
           (FeatureImpl<__WilFeatureTraits_Feature_Capture_DirtyRegionOcclusion> *this,int *param_1)
 
 {
   bool bVar1;
   bool bVar2;
   FEATURE_ENABLED_STATE FVar3;
   ReportingKind RVar4;
   ReportingKind RVar5;
-  ReportingKind RVar6;
-  ReportingKind RVar7;
+  uint uVar6;
   int *in_R8;
   
   FVar3 = WilApi_GetFeatureEnabledState(0x3847f76,3,in_R8);
   param_1[0] = 0;
   param_1[1] = 0;
-  RVar5 = -(uint)((FVar3 & 0x40) != 0) & 0x800 | -(uint)((FVar3 & 0x80) != 0) & 0x400;
-  RVar6 = RVar5 | (FVar3 & 3) << 7;
-  *param_1 = RVar6;
-  if ((FVar3 & 0xffffff3f) == 0) {
-    RVar4 = 0x40;
-  }
-  else {
+  RVar5 = -(uint)((FVar3 & 0x40) != 0) & 0x800 | -(uint)((FVar3 & 0x80) != 0) & 0x400 |
+          (FVar3 & 3) << 7;
+  if ((FVar3 & 0xffffff3f) != 0) {
     RVar4 = 0;
     if ((FVar3 & 0xffffff3f) == 2) {
       RVar4 = 0x40;
     }
+    RVar5 = RVar5 | RVar4;
   }
-  RVar6 = RVar6 | RVar4;
-  *param_1 = RVar6;
-  RVar7 = 1;
-  if (RVar5 == 0xc00) {
+  *param_1 = RVar5;
+  bVar2 = false;
+  uVar6 = 1;
+  if ((RVar5 & 0xc00) == 0xc00) {
     bVar1 = true;
-LAB_0:
-    bVar2 = FeatureImpl<__WilFeatureTraits_Feature_ValAccTest>::__private_IsEnabled
-                      ((FeatureImpl<__WilFeatureTraits_Feature_ValAccTest> *)
-                       &`private:_static_class_wil::details::FeatureImpl<__WilFeatureTraits_Feature_ValAccTest>&___ptr64___cdecl_wil::Feature<__WilFeatureTraits_Feature_ValAccTest>::GetImpl(void)'
-                        ::__l2::impl,RVar6);
-    RVar6 = *param_1;
-    if ((bVar1) && (!bVar2)) {
-      RVar6 = RVar6 & 0xfffffbff;
-    }
-    if (((RVar6 & 0x40) != 0) && (bVar2)) goto LAB_1;
   }
   else {
     bVar1 = false;
-    if (RVar4 != 0) goto LAB_0;
+    if ((RVar5 & 0x40) == 0) goto LAB_0;
   }
-  RVar7 = 0;
-LAB_1:
-  *param_1 = RVar6 & 0xfffffffe | RVar7;
+  bVar2 = FeatureImpl<__WilFeatureTraits_Feature_ValAccTest>::__private_IsEnabled
+                    ((FeatureImpl<__WilFeatureTraits_Feature_ValAccTest> *)
+                     &`private:_static_class_wil::details::FeatureImpl<__WilFeatureTraits_Feature_ValAccTest>&___ptr64___cdecl_wil::Feature<__WilFeatureTraits_Feature_ValAccTest>::GetImpl(void)'
+                      ::__l2::impl,RVar5);
+  if ((bVar1) && (!bVar2)) {
+    *param_1 = *param_1 & 0xfffffbff;
+  }
+LAB_0:
+  if (((*param_1 & 0x40U) == 0) || (bVar2 == false)) {
+    uVar6 = 0;
+  }
+  *param_1 = *param_1 & 0xfffffffeU | uVar6;
   return param_1;
 }
 

```


## std::_Destroy_range<std::allocator<CCursorState::MonitorData>_>

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,length,address,calling|
|ratio|0.67|
|i_ratio|0.67|
|m_ratio|1.0|
|b_ratio|0.94|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|_Destroy_range<std::allocator<CCursorState::MonitorData>_>|_Destroy_range<std::allocator<CCursorState::MonitorData>_>|
|fullname|std::_Destroy_range<std::allocator<CCursorState::MonitorData>_>|std::_Destroy_range<std::allocator<CCursorState::MonitorData>_>|
|refcount|5|5|
|`length`|55|58|
|called|std::_Ref_count_base::_Decref|std::_Ref_count_base::_Decref|
|`calling`|CCursorState::ClearVisual<br>CCursorState::~CCursorState<br>std::_Uninitialized_move<CCursorState::MonitorData*___ptr64,std::allocator<CCursorState::MonitorData>_><br>std::vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_>::_Emplace_reallocate<CCursorState::MonitorData>|CCursorState::ClearVisual<br>std::_Uninitialized_move<CCursorState::MonitorData*___ptr64,std::allocator<CCursorState::MonitorData>_><br>std::vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_>::_Change_array<br>std::vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_>::~vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_>|
|paramcount|3|3|
|`address`|1802b3448|1802b3d68|
|sig|void __cdecl _Destroy_range<std::allocator<CCursorState::MonitorData>_>(MonitorData * param_1, MonitorData * param_2, allocator<CCursorState::MonitorData> * param_3)|void __cdecl _Destroy_range<std::allocator<CCursorState::MonitorData>_>(MonitorData * param_1, MonitorData * param_2, allocator<CCursorState::MonitorData> * param_3)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### std::_Destroy_range<std::allocator<CCursorState::MonitorData>_> Calling Diff


```diff
--- std::_Destroy_range<std::allocator<CCursorState::MonitorData>_> calling
+++ std::_Destroy_range<std::allocator<CCursorState::MonitorData>_> calling
@@ -2 +1,0 @@
-CCursorState::~CCursorState
@@ -4 +3,2 @@
-std::vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_>::_Emplace_reallocate<CCursorState::MonitorData>
+std::vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_>::_Change_array
+std::vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_>::~vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_>
```


### std::_Destroy_range<std::allocator<CCursorState::MonitorData>_> Diff


```diff
--- std::_Destroy_range<std::allocator<CCursorState::MonitorData>_>
+++ std::_Destroy_range<std::allocator<CCursorState::MonitorData>_>
@@ -1,18 +1,18 @@
 
-/* void __cdecl std::_Destroy_range<class std::allocator<struct CCursorState::MonitorData> >(struct
-   CCursorState::MonitorData * __ptr64,struct CCursorState::MonitorData * __ptr64 const,class
-   std::allocator<struct CCursorState::MonitorData> & __ptr64) */
+/* void __cdecl std::_Destroy_range<class std::allocator<class CCursorState::MonitorData> >(class
+   CCursorState::MonitorData * __ptr64,class CCursorState::MonitorData * __ptr64 const,class
+   std::allocator<class CCursorState::MonitorData> & __ptr64) */
 
 void __cdecl
 std::_Destroy_range<std::allocator<CCursorState::MonitorData>_>
           (MonitorData *param_1,MonitorData *param_2,allocator<CCursorState::MonitorData> *param_3)
 
 {
-  for (; param_1 != param_2; param_1 = param_1 + 0x80) {
-    if (*(_Ref_count_base **)(param_1 + 0x68) != (_Ref_count_base *)0x0) {
-      _Ref_count_base::_Decref(*(_Ref_count_base **)(param_1 + 0x68));
+  for (; param_1 != param_2; param_1 = param_1 + 0xa0) {
+    if (*(_Ref_count_base **)(param_1 + 0x78) != (_Ref_count_base *)0x0) {
+      _Ref_count_base::_Decref(*(_Ref_count_base **)(param_1 + 0x78));
     }
   }
   return;
 }
 

```


## CCursorState::~CCursorState

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.69|
|i_ratio|0.44|
|m_ratio|0.81|
|b_ratio|0.65|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|~CCursorState|~CCursorState|
|fullname|CCursorState::~CCursorState|CCursorState::~CCursorState|
|refcount|2|2|
|`length`|371|254|
|`called`|<details><summary>Expand for full list:<br>?Free@DefaultHeap@@SAXPEAX@Z<br>API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::EnterCriticalSection<br>CGuard<CCriticalSection>::~CGuard<CCriticalSection><br>std::_Deallocate<16,0><br>std::_Destroy_range<std::allocator<CCursorState::MonitorData>_><br>std::_Destroy_range<std::allocator<std::shared_ptr<CCursorState::ShapeData>_>_><br>std::_List_node<CCursorState::TrailPoint,void*___ptr64>::_Freenode<std::allocator<std::_List_node<CCursorState::TrailPoint,void*___ptr64>_>_><br>std::_Ref_count_base::_Decref<br>std::_Tree_unchecked_const_iterator<std::_Tree_val<std::_Tree_simple_types<std::pair<_LUID_const_,wil::com_ptr_t<Windows::Devices::Display::Core::IDisplayDevice,wil::err_returncode_policy>_>_>_>,std::_Iterator_base0>::operator++<br>std::_Tree_val<std::_Tree_simple_types<std::pair<unsigned___int64_const_,CCursorState*___ptr64>_>_>::_Extract<br>wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy></summary></details>|<details><summary>Expand for full list:<br>?Free@DefaultHeap@@SAXPEAX@Z<br>API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::EnterCriticalSection<br>CGuard<CCriticalSection>::~CGuard<CCriticalSection><br>std::_Deallocate<16,0><br>std::_List_node<CCursorState::TrailPoint,void*___ptr64>::_Freenode<std::allocator<std::_List_node<CCursorState::TrailPoint,void*___ptr64>_>_><br>std::_Tree_unchecked_const_iterator<std::_Tree_val<std::_Tree_simple_types<std::pair<_LUID_const_,wil::com_ptr_t<Windows::Devices::Display::Core::IDisplayDevice,wil::err_returncode_policy>_>_>_>,std::_Iterator_base0>::operator++<br>std::_Tree_val<std::_Tree_simple_types<std::pair<unsigned___int64_const_,CCursorState*___ptr64>_>_>::_Extract<br>std::shared_ptr<CCursorState::ShapeData>::~shared_ptr<CCursorState::ShapeData><br>std::vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_>::~vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_><br>std::vector<std::shared_ptr<CCursorState::ShapeData>,std::allocator<std::shared_ptr<CCursorState::ShapeData>_>_>::~vector<std::shared_ptr<CCursorState::ShapeData>,std::allocator<std::shared_ptr<CCursorState::ShapeData>_>_><br>wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy></summary></details>|
|calling|CCursorState::`scalar_deleting_destructor'|CCursorState::`scalar_deleting_destructor'|
|paramcount|1|1|
|`address`|1802b450c|1802b4de8|
|sig|void __thiscall ~CCursorState(CCursorState * this)|void __thiscall ~CCursorState(CCursorState * this)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### CCursorState::~CCursorState Called Diff


```diff
--- CCursorState::~CCursorState called
+++ CCursorState::~CCursorState called
@@ -5,2 +4,0 @@
-std::_Destroy_range<std::allocator<CCursorState::MonitorData>_>
-std::_Destroy_range<std::allocator<std::shared_ptr<CCursorState::ShapeData>_>_>
@@ -8 +5,0 @@
-std::_Ref_count_base::_Decref
@@ -10,0 +8,3 @@
+std::shared_ptr<CCursorState::ShapeData>::~shared_ptr<CCursorState::ShapeData>
+std::vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_>::~vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_>
+std::vector<std::shared_ptr<CCursorState::ShapeData>,std::allocator<std::shared_ptr<CCursorState::ShapeData>_>_>::~vector<std::shared_ptr<CCursorState::ShapeData>,std::allocator<std::shared_ptr<CCursorState::ShapeData>_>_>
```


### CCursorState::~CCursorState Diff


```diff
--- CCursorState::~CCursorState
+++ CCursorState::~CCursorState
@@ -1,88 +1,70 @@
 
 /* public: virtual __cdecl CCursorState::~CCursorState(void) __ptr64 */
 
 void __thiscall CCursorState::~CCursorState(CCursorState *this)
 
 {
   _List_node<struct_CCursorState::TrailPoint,void*___ptr64> *p_Var1;
   _List_node<struct_CCursorState::TrailPoint,void*___ptr64> *p_Var2;
   _Tree_node<std::pair<unsigned___int64_const_,CCursorState*___ptr64>,void*___ptr64> *p_Var3;
   allocator<std::_List_node<CCursorState::TrailPoint,void*___ptr64>_> *paVar4;
-  allocator<std::shared_ptr<CCursorState::ShapeData>_> *in_R8;
   undefined8 *puVar5;
   undefined8 *local_res8;
   CCursorManager *local_res10;
   
   *(undefined ***)this = &_vftable_;
   local_res10 = &g_CursorManager;
   EnterCriticalSection((LPCRITICAL_SECTION)&g_CursorManager);
   local_res8 = (undefined8 *)*DAT_0;
   puVar5 = DAT_0;
   do {
     if (local_res8 == puVar5) {
 LAB_1:
       CGuard<CCriticalSection>::~CGuard<CCriticalSection>((CGuard<CCriticalSection> *)&local_res10);
       _Free_DefaultHeap__SAXPEAX_Z(*(void **)(this + 0x118));
       paVar4 = *(allocator<std::_List_node<CCursorState::TrailPoint,void*___ptr64>_> **)
                 (this + 0x100);
       **(undefined8 **)(paVar4 + 8) = 0;
       p_Var2 = *(_List_node<struct_CCursorState::TrailPoint,void*___ptr64> **)paVar4;
       while (p_Var2 != (_List_node<struct_CCursorState::TrailPoint,void*___ptr64> *)0x0) {
         p_Var1 = *(_List_node<struct_CCursorState::TrailPoint,void*___ptr64> **)p_Var2;
         std::_List_node<CCursorState::TrailPoint,void*___ptr64>::
         _Freenode<std::allocator<std::_List_node<CCursorState::TrailPoint,void*___ptr64>_>_>
                   (paVar4,p_Var2);
         p_Var2 = p_Var1;
       }
       std::_Deallocate<16,0>(*(void **)(this + 0x100),0x50);
-      if (*(shared_ptr<CCursorState::ShapeData> **)(this + 0xe0) !=
-          (shared_ptr<CCursorState::ShapeData> *)0x0) {
-        std::_Destroy_range<std::allocator<std::shared_ptr<CCursorState::ShapeData>_>_>
-                  (*(shared_ptr<CCursorState::ShapeData> **)(this + 0xe0),
-                   *(shared_ptr<struct_CCursorState::ShapeData> **)(this + 0xe8),in_R8);
-        std::_Deallocate<16,0>
-                  (*(void **)(this + 0xe0),
-                   *(longlong *)(this + 0xf0) - (longlong)*(void **)(this + 0xe0) &
-                   0xfffffffffffffff0);
-        *(undefined8 *)(this + 0xe0) = 0;
-        *(undefined8 *)(this + 0xe8) = 0;
-        *(undefined8 *)(this + 0xf0) = 0;
-      }
-      if (*(_Ref_count_base **)(this + 0xb8) != (_Ref_count_base *)0x0) {
-        std::_Ref_count_base::_Decref(*(_Ref_count_base **)(this + 0xb8));
-      }
+      std::
+      vector<std::shared_ptr<CCursorState::ShapeData>,std::allocator<std::shared_ptr<CCursorState::ShapeData>_>_>
+      ::
+      ~vector<std::shared_ptr<CCursorState::ShapeData>,std::allocator<std::shared_ptr<CCursorState::ShapeData>_>_>
+                ((vector<std::shared_ptr<CCursorState::ShapeData>,std::allocator<std::shared_ptr<CCursorState::ShapeData>_>_>
+                  *)(this + 0xe0));
+      std::shared_ptr<CCursorState::ShapeData>::~shared_ptr<CCursorState::ShapeData>
+                ((shared_ptr<CCursorState::ShapeData> *)(this + 0xb0));
       wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::
       ~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>
                 ((com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy> *)(this + 0x78));
-      if (*(MonitorData **)(this + 0x58) != (MonitorData *)0x0) {
-        std::_Destroy_range<std::allocator<CCursorState::MonitorData>_>
-                  (*(MonitorData **)(this + 0x58),*(MonitorData **)(this + 0x60),
-                   (allocator<CCursorState::MonitorData> *)in_R8);
-        std::_Deallocate<16,0>
-                  (*(void **)(this + 0x58),
-                   *(longlong *)(this + 0x68) - (longlong)*(void **)(this + 0x58) &
-                   0xffffffffffffff80);
-        *(undefined8 *)(this + 0x58) = 0;
-        *(undefined8 *)(this + 0x60) = 0;
-        *(undefined8 *)(this + 0x68) = 0;
-      }
-      if (*(_Ref_count_base **)(this + 0x30) != (_Ref_count_base *)0x0) {
-        std::_Ref_count_base::_Decref(*(_Ref_count_base **)(this + 0x30));
-      }
+      std::vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_>::
+      ~vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_>
+                ((vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_> *)
+                 (this + 0x58));
+      std::shared_ptr<CCursorState::ShapeData>::~shared_ptr<CCursorState::ShapeData>
+                ((shared_ptr<CCursorState::ShapeData> *)(this + 0x28));
       return;
     }
     if ((CCursorState *)local_res8[5] == this) {
       p_Var3 = std::
                _Tree_val<std::_Tree_simple_types<std::pair<unsigned___int64_const_,CCursorState*___ptr64>_>_>
                ::_Extract((_Tree_val<std::_Tree_simple_types<std::pair<unsigned___int64_const_,CCursorState*___ptr64>_>_>
                            *)&DAT_0);
       std::_Deallocate<16,0>(p_Var3,0x30);
       goto LAB_1;
     }
     std::
     _Tree_unchecked_const_iterator<std::_Tree_val<std::_Tree_simple_types<std::pair<_LUID_const_,wil::com_ptr_t<Windows::Devices::Display::Core::IDisplayDevice,wil::err_returncode_policy>_>_>_>,std::_Iterator_base0>
     ::operator++((_Tree_unchecked_const_iterator<std::_Tree_val<std::_Tree_simple_types<std::pair<_LUID_const_,wil::com_ptr_t<Windows::Devices::Display::Core::IDisplayDevice,wil::err_returncode_policy>_>_>_>,std::_Iterator_base0>
                   *)&local_res8);
   } while( true );
 }
 

```


## COverlayContext::EndOverlayCandidateCollection

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.35|
|i_ratio|0.53|
|m_ratio|0.96|
|b_ratio|0.88|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|EndOverlayCandidateCollection|EndOverlayCandidateCollection|
|fullname|COverlayContext::EndOverlayCandidateCollection|COverlayContext::EndOverlayCandidateCollection|
|refcount|3|3|
|`length`|2934|2664|
|`called`|<details><summary>Expand for full list:<br>CComposition::GetCompositorClockBoost<br>CComposition::IsPowerSaverEnabled<br>CCursorVisual::GetCursorShapeBounds<br>CMILMatrix::IsTranslateAndScale<1><br>CMILMatrix::Transform2DBoundsHelper<0><br>COcclusionContext::IsOccluded<br>COverlayContext::ComparePlaneAttributes<br>COverlayContext::DisableHardwareCursor<br>COverlayContext::FindOverlayCandidateIndex<br>COverlayContext::GetDeviceTransform<br>COverlayContext::GetMonitorTransform</summary>COverlayContext::IsRevokable<br>COverlayContext::OverlayPlaneInfo::CalcVisibleArea<br>COverlayContext::OverlayPlaneInfo::CopyTransientProperties<br>COverlayContext::OverlayPlaneInfo::GetLocalClipRect<br>COverlayContext::OverlayPlaneInfo::IsRevokable<br>COverlayContext::OverlayPlaneInfo::OverlayPlaneInfo<br>COverlayContext::OverlaysEnabled<br>CTreeDirty::DoesContain<br>CTreeDirty::DoesIntersect<br>CVisual::GetZ<br>GetCurrentFrameId<br>McTemplateU0d_EventWriteTransfer<br>McTemplateU0xd_EventWriteTransfer<br>McTemplateU0xq_EventWriteTransfer<br>TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::IsEmpty<br>TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::UnionUnsafe<br>__security_check_cookie<br>_guard_dispatch_icall$thunk$10345483385596137414<br>detail::vector_facade<COverlayContext::OverlayPlaneInfo,detail::buffer_impl<COverlayContext::OverlayPlaneInfo,16,1,detail::liberal_expansion_policy>_>::clear<br>detail::vector_facade<COverlayContext::OverlayPlaneInfo,detail::buffer_impl<COverlayContext::OverlayPlaneInfo,16,1,detail::liberal_expansion_policy>_>::emplace<COverlayContext::OverlayPlaneInfo><br>detail::vector_facade<COverlayContext::OverlayPlaneInfo,detail::buffer_impl<COverlayContext::OverlayPlaneInfo,16,1,detail::liberal_expansion_policy>_>::emplace_back<COverlayContext::OverlayPlaneInfo><br>detail::vector_facade<COverlayContext::OverlayPlaneInfo,detail::buffer_impl<COverlayContext::OverlayPlaneInfo,16,1,detail::liberal_expansion_policy>_>::erase<br>wil::details::FeatureImpl<__WilFeatureTraits_Feature_ComposedFlipPerf>::__private_IsEnabled<br>wil::details::FeatureImpl<__WilFeatureTraits_Feature_DWM_MPO_Enhancement>::__private_IsEnabled</details>|<details><summary>Expand for full list:<br>CComposition::GetCompositorClockBoost<br>CComposition::IsPowerSaverEnabled<br>CMILMatrix::IsTranslateAndScale<1><br>CMILMatrix::Transform2DBoundsHelper<0><br>COcclusionContext::IsOccluded<br>COverlayContext::ComparePlaneAttributes<br>COverlayContext::FindOverlayCandidateIndex<br>COverlayContext::ForceSoftwareCursor<br>COverlayContext::GetDeviceTransform<br>COverlayContext::GetMonitorTransform<br>COverlayContext::IsRevokable</summary>COverlayContext::OverlayPlaneInfo::CalcVisibleArea<br>COverlayContext::OverlayPlaneInfo::CopyTransientProperties<br>COverlayContext::OverlayPlaneInfo::GetLocalClipRect<br>COverlayContext::OverlayPlaneInfo::IsRevokable<br>COverlayContext::OverlayPlaneInfo::OverlayPlaneInfo<br>COverlayContext::OverlaysEnabled<br>CTreeDirty::DoesContain<br>CTreeDirty::DoesIntersect<br>CVisual::GetZ<br>GetCurrentFrameId<br>McTemplateU0d_EventWriteTransfer<br>McTemplateU0xd_EventWriteTransfer<br>McTemplateU0xq_EventWriteTransfer<br>TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::IsEmpty<br>TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::UnionUnsafe<br>__security_check_cookie<br>_guard_dispatch_icall$thunk$10345483385596137414<br>detail::vector_facade<COverlayContext::OverlayPlaneInfo,detail::buffer_impl<COverlayContext::OverlayPlaneInfo,16,1,detail::liberal_expansion_policy>_>::clear<br>detail::vector_facade<COverlayContext::OverlayPlaneInfo,detail::buffer_impl<COverlayContext::OverlayPlaneInfo,16,1,detail::liberal_expansion_policy>_>::emplace<COverlayContext::OverlayPlaneInfo><br>detail::vector_facade<COverlayContext::OverlayPlaneInfo,detail::buffer_impl<COverlayContext::OverlayPlaneInfo,16,1,detail::liberal_expansion_policy>_>::emplace_back<COverlayContext::OverlayPlaneInfo><br>detail::vector_facade<COverlayContext::OverlayPlaneInfo,detail::buffer_impl<COverlayContext::OverlayPlaneInfo,16,1,detail::liberal_expansion_policy>_>::erase<br>wil::details::FeatureImpl<__WilFeatureTraits_Feature_ComposedFlipPerf>::__private_IsEnabled<br>wil::details::FeatureImpl<__WilFeatureTraits_Feature_DWM_MPO_Enhancement>::__private_IsEnabled<br>wil::details::FeatureImpl<__WilFeatureTraits_Feature_DesktopDWMCursor>::__private_IsEnabled</details>|
|calling|COcclusionContext::Compute|COcclusionContext::Compute|
|paramcount|3|3|
|`address`|180235cb4|1802324c4|
|sig|void __thiscall EndOverlayCandidateCollection(COverlayContext * this, COcclusionContext * param_1, CVisualTree * param_2)|void __thiscall EndOverlayCandidateCollection(COverlayContext * this, COcclusionContext * param_1, CVisualTree * param_2)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### COverlayContext::EndOverlayCandidateCollection Called Diff


```diff
--- COverlayContext::EndOverlayCandidateCollection called
+++ COverlayContext::EndOverlayCandidateCollection called
@@ -3 +2,0 @@
-CCursorVisual::GetCursorShapeBounds
@@ -8 +6,0 @@
-COverlayContext::DisableHardwareCursor
@@ -9,0 +8 @@
+COverlayContext::ForceSoftwareCursor
@@ -35,0 +35 @@
+wil::details::FeatureImpl<__WilFeatureTraits_Feature_DesktopDWMCursor>::__private_IsEnabled
```


### COverlayContext::EndOverlayCandidateCollection Diff


```diff
--- COverlayContext::EndOverlayCandidateCollection
+++ COverlayContext::EndOverlayCandidateCollection
@@ -1,482 +1,444 @@
 
 /* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
    guard_dispatch_icall */
 /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
 /* public: void __cdecl COverlayContext::EndOverlayCandidateCollection(class COcclusionContext const
    * __ptr64,class CVisualTree const * __ptr64) __ptr64 */
 
 void __thiscall
 COverlayContext::EndOverlayCandidateCollection
           (COverlayContext *this,COcclusionContext *param_1,CVisualTree *param_2)
 
 {
   vector_facade<COverlayContext::OverlayPlaneInfo,detail::buffer_impl<COverlayContext::OverlayPlaneInfo,16,1,detail::liberal_expansion_policy>_>
   *pvVar1;
   TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded> *this_00;
   undefined8 *puVar2;
   byte *pbVar3;
   undefined4 uVar4;
   __uint64 _Var5;
-  CVisualTree *pCVar6;
-  char cVar7;
-  bool bVar8;
-  int iVar9;
-  __uint64 _Var10;
-  CMonitorTransform *pCVar11;
-  ulonglong uVar12;
-  undefined8 uVar13;
-  longlong lVar14;
+  char cVar6;
+  bool bVar7;
+  int iVar8;
+  __uint64 _Var9;
+  CMonitorTransform *pCVar10;
+  undefined8 uVar11;
+  longlong lVar12;
   CMILMatrix *this_01;
-  COverlayContext *pCVar15;
-  ulonglong uVar16;
-  uint *puVar17;
+  COverlayContext *pCVar13;
+  ulonglong uVar14;
+  uint *puVar15;
   CComposition *this_02;
-  longlong lVar18;
-  float *pfVar19;
+  longlong lVar16;
+  longlong *plVar17;
+  OverlayPlaneInfo *pOVar18;
+  ulonglong uVar19;
   OverlayPlaneInfo *pOVar20;
-  OverlayPlaneInfo *pOVar21;
-  ulonglong uVar22;
-  COverlayContext CVar23;
-  float fVar24;
+  ulonglong uVar21;
+  CVisualTree *this_03;
+  COverlayContext CVar22;
+  float fVar23;
   undefined1 auStack_248 [32];
   bool local_218;
   bool local_217;
   bool local_216;
-  uint local_214;
   longlong local_210;
   CMonitorTransform *local_208;
-  CVisualTree *local_200;
-  float local_1f8 [2];
-  OverlayPlaneInfo local_1f0 [392];
-  float local_68 [4];
-  CMILMatrix local_58 [16];
-  ulonglong local_48;
+  longlong local_200;
+  CVisualTree *local_1f8;
+  CVisualTree *local_1f0;
+  OverlayPlaneInfo local_1e8 [392];
+  longlong local_60 [2];
+  CMILMatrix local_50 [16];
+  ulonglong local_40;
   
-  local_48 = __security_cookie ^ (ulonglong)auStack_248;
-  pCVar15 = this;
-  local_200 = param_2;
-  _Var10 = GetCurrentFrameId();
-  _Var5 = *(__uint64 *)(pCVar15 + 0x4bc0);
-  if (((0 < *(int *)(pCVar15 + 0x4b70)) && (*(longlong **)(pCVar15 + 0x4b50) != (longlong *)0x0)) &&
-     (cVar7 = (**(code **)(**(longlong **)(pCVar15 + 0x4b50) + 0x70))(), cVar7 != '\0')) {
+  local_40 = __security_cookie ^ (ulonglong)auStack_248;
+  pCVar13 = this;
+  local_1f0 = param_2;
+  _Var9 = GetCurrentFrameId();
+  _Var5 = *(__uint64 *)(pCVar13 + 0x4c48);
+  if (((0 < *(int *)(pCVar13 + 0x4bf8)) && (*(longlong **)(pCVar13 + 0x4bd8) != (longlong *)0x0)) &&
+     (cVar6 = (**(code **)(**(longlong **)(pCVar13 + 0x4bd8) + 0x70))(), cVar6 != '\0')) {
     detail::
     vector_facade<COverlayContext::OverlayPlaneInfo,detail::buffer_impl<COverlayContext::OverlayPlaneInfo,16,1,detail::liberal_expansion_policy>_>
     ::clear((vector_facade<COverlayContext::OverlayPlaneInfo,detail::buffer_impl<COverlayContext::OverlayPlaneInfo,16,1,detail::liberal_expansion_policy>_>
              *)(this + 0x58));
   }
-  bVar8 = wil::details::FeatureImpl<__WilFeatureTraits_Feature_DWM_MPO_Enhancement>::
+  bVar7 = wil::details::FeatureImpl<__WilFeatureTraits_Feature_DWM_MPO_Enhancement>::
           __private_IsEnabled((FeatureImpl<__WilFeatureTraits_Feature_DWM_MPO_Enhancement> *)
                               &`private:_static_class_wil::details::FeatureImpl<__WilFeatureTraits_Feature_DWM_MPO_Enhancement>&___ptr64___cdecl_wil::Feature<__WilFeatureTraits_Feature_DWM_MPO_Enhancement>::GetImpl(void)'
                                ::__l2::impl);
-  if ((bVar8) && ((this[0x4bfe] == (COverlayContext)0x0 || (this[0x4bfd] != (COverlayContext)0x0))))
+  if ((bVar7) && ((this[0x4c87] == (COverlayContext)0x0 || (this[0x4c86] != (COverlayContext)0x0))))
   {
     detail::
     vector_facade<COverlayContext::OverlayPlaneInfo,detail::buffer_impl<COverlayContext::OverlayPlaneInfo,16,1,detail::liberal_expansion_policy>_>
     ::clear((vector_facade<COverlayContext::OverlayPlaneInfo,detail::buffer_impl<COverlayContext::OverlayPlaneInfo,16,1,detail::liberal_expansion_policy>_>
              *)(this + 0x58));
   }
-  pCVar11 = GetMonitorTransform(this);
-  pCVar11 = pCVar11 + 0x78;
-  local_208 = pCVar11;
-  bVar8 = wil::details::FeatureImpl<__WilFeatureTraits_Feature_DWM_MPO_Enhancement>::
+  this_03 = param_2 + 0x70;
+  local_1f8 = this_03;
+  pCVar10 = GetMonitorTransform(this);
+  pCVar10 = pCVar10 + 0x78;
+  local_208 = pCVar10;
+  bVar7 = wil::details::FeatureImpl<__WilFeatureTraits_Feature_DWM_MPO_Enhancement>::
           __private_IsEnabled((FeatureImpl<__WilFeatureTraits_Feature_DWM_MPO_Enhancement> *)
                               &`private:_static_class_wil::details::FeatureImpl<__WilFeatureTraits_Feature_DWM_MPO_Enhancement>&___ptr64___cdecl_wil::Feature<__WilFeatureTraits_Feature_DWM_MPO_Enhancement>::GetImpl(void)'
                                ::__l2::impl);
-  CVar23 = (COverlayContext)0x1;
-  if (bVar8) {
-    if (this[0x4bfe] == (COverlayContext)0x0) {
-      pOVar20 = *(OverlayPlaneInfo **)(this + 0x3190);
-      for (pOVar21 = *(OverlayPlaneInfo **)(this + 0x3188); pOVar21 != pOVar20;
-          pOVar21 = pOVar21 + 0x188) {
-        uVar13 = OverlayPlaneInfo::OverlayPlaneInfo(local_1f0,pOVar21);
+  CVar22 = (COverlayContext)0x1;
+  if (bVar7) {
+    if (this[0x4c87] == (COverlayContext)0x0) {
+      pOVar18 = *(OverlayPlaneInfo **)(this + 0x3190);
+      for (pOVar20 = *(OverlayPlaneInfo **)(this + 0x3188); pOVar20 != pOVar18;
+          pOVar20 = pOVar20 + 0x188) {
+        uVar11 = OverlayPlaneInfo::OverlayPlaneInfo(local_1e8,pOVar20);
         detail::
         vector_facade<COverlayContext::OverlayPlaneInfo,detail::buffer_impl<COverlayContext::OverlayPlaneInfo,16,1,detail::liberal_expansion_policy>_>
         ::emplace_back<COverlayContext::OverlayPlaneInfo>
                   ((vector_facade<COverlayContext::OverlayPlaneInfo,detail::buffer_impl<COverlayContext::OverlayPlaneInfo,16,1,detail::liberal_expansion_policy>_>
-                    *)(this + 0x58),uVar13);
+                    *)(this + 0x58),uVar11);
       }
     }
     else {
       local_216 = (bool)(**(code **)(**(longlong **)this + 0x28))();
       pvVar1 = (vector_facade<COverlayContext::OverlayPlaneInfo,detail::buffer_impl<COverlayContext::OverlayPlaneInfo,16,1,detail::liberal_expansion_policy>_>
                 *)(this + 0x58);
-      lVar14 = *(longlong *)(this + 0x60);
-      lVar18 = *(longlong *)pvVar1;
-      uVar12 = 0;
-      local_214 = 0;
-      if ((lVar14 - lVar18 >> 3) * 0x7d6343eb1a1f58d1 != 0) {
+      lVar12 = *(longlong *)(this + 0x60);
+      lVar16 = *(longlong *)pvVar1;
+      uVar19 = 0;
+      if ((lVar12 - lVar16 >> 3) * 0x7d6343eb1a1f58d1 != 0) {
         do {
-          uVar22 = 0;
-          pOVar21 = (OverlayPlaneInfo *)(lVar18 + uVar12 * 0x188);
-          lVar14 = *(longlong *)(this + 0x3188);
-          uVar16 = (*(longlong *)(this + 0x3190) - lVar14 >> 3) * 0x7d6343eb1a1f58d1;
-          if (uVar16 != 0) {
+          uVar21 = 0;
+          local_210 = uVar19 * 0x188;
+          pOVar20 = (OverlayPlaneInfo *)(local_210 + lVar16);
+          lVar12 = *(longlong *)(this + 0x3188);
+          uVar14 = (*(longlong *)(this + 0x3190) - lVar12 >> 3) * 0x7d6343eb1a1f58d1;
+          if (uVar14 != 0) {
             do {
-              iVar9 = (int)uVar22;
-              lVar18 = uVar22 * 0x188;
-              if (((*(longlong *)(lVar18 + 8 + lVar14) == *(longlong *)(pOVar21 + 8)) &&
-                  (*(longlong *)(lVar18 + 0x10 + lVar14) == *(longlong *)(pOVar21 + 0x10))) &&
-                 (*(longlong *)(lVar18 + 0x18 + lVar14) == *(longlong *)(pOVar21 + 0x18)))
+              iVar8 = (int)uVar21;
+              lVar16 = uVar21 * 0x188;
+              if (((*(longlong *)(lVar16 + 8 + lVar12) == *(longlong *)(pOVar20 + 8)) &&
+                  (*(longlong *)(lVar16 + 0x10 + lVar12) == *(longlong *)(pOVar20 + 0x10))) &&
+                 (*(longlong *)(lVar16 + 0x18 + lVar12) == *(longlong *)(pOVar20 + 0x18)))
               goto LAB_0;
-              uVar22 = (ulonglong)(iVar9 + 1);
-            } while (uVar22 < uVar16);
-          }
-          iVar9 = -1;
+              uVar21 = (ulonglong)(iVar8 + 1);
+            } while (uVar21 < uVar14);
+          }
+          iVar8 = -1;
 LAB_0:
-          bVar8 = OverlayPlaneInfo::CalcVisibleArea
-                            (pOVar21,(CDesktopTree *)local_200,(CMILMatrix *)local_208,local_216,
-                             iVar9 != -1);
-          if (bVar8) {
-            if (iVar9 == -1) {
-              for (lVar14 = *(longlong *)(this + 0x3188); lVar14 != *(longlong *)(this + 0x3190);
-                  lVar14 = lVar14 + 0x188) {
-                lVar18 = *(longlong *)(pOVar21 + 0x10);
-                if ((lVar18 == *(longlong *)(lVar14 + 0x10)) &&
-                   (*(longlong *)(pOVar21 + 8) != *(longlong *)(lVar14 + 8))) {
+          bVar7 = OverlayPlaneInfo::CalcVisibleArea
+                            (pOVar20,(CDesktopTree *)local_1f0,(CMILMatrix *)local_208,local_216,
+                             iVar8 != -1);
+          if (bVar7) {
+            if (iVar8 == -1) {
+              for (lVar12 = *(longlong *)(this + 0x3188); lVar12 != *(longlong *)(this + 0x3190);
+                  lVar12 = lVar12 + 0x188) {
+                lVar16 = *(longlong *)(pOVar20 + 0x10);
+                if ((lVar16 == *(longlong *)(lVar12 + 0x10)) &&
+                   (*(longlong *)(pOVar20 + 8) != *(longlong *)(lVar12 + 8))) {
                   if ((Microsoft_Windows_Dwm_CoreEnableBits._1_1_ & 2) != 0) {
                     McTemplateU0xq_EventWriteTransfer
-                              (*(longlong *)(lVar14 + 8),&EVTDESC_DISPLAYSURFACE_REJECTCANDIDATE,
-                               CONCAT44((int)((ulonglong)*(undefined8 *)(lVar18 + 0x28) >> 0x20),
-                                        *(undefined4 *)(lVar18 + 0x28)),9);
+                              (*(longlong *)(lVar12 + 8),&EVTDESC_DISPLAYSURFACE_REJECTCANDIDATE,
+                               CONCAT44((int)((ulonglong)*(undefined8 *)(lVar16 + 0x28) >> 0x20),
+                                        *(undefined4 *)(lVar16 + 0x28)),9);
                   }
-                  pfVar19 = local_68;
+                  plVar17 = local_60;
                   goto LAB_1;
                 }
               }
             }
             else {
-              uVar13 = *(undefined8 *)(pOVar21 + 0xfc);
-              pOVar20 = (OverlayPlaneInfo *)((longlong)iVar9 * 0x188 + *(longlong *)(this + 0x3188))
+              uVar11 = *(undefined8 *)(pOVar20 + 0xfc);
+              pOVar18 = (OverlayPlaneInfo *)((longlong)iVar8 * 0x188 + *(longlong *)(this + 0x3188))
               ;
-              *(undefined8 *)(pOVar20 + 0xf4) = *(undefined8 *)(pOVar21 + 0xf4);
-              *(undefined8 *)(pOVar20 + 0xfc) = uVar13;
-              OverlayPlaneInfo::CopyTransientProperties(pOVar21,pOVar20);
+              *(undefined8 *)(pOVar18 + 0xf4) = *(undefined8 *)(pOVar20 + 0xf4);
+              *(undefined8 *)(pOVar18 + 0xfc) = uVar11;
+              OverlayPlaneInfo::CopyTransientProperties(pOVar20,pOVar18);
               local_218 = false;
               local_217 = false;
               ComparePlaneAttributes
-                        ((DXGI_MULTIPLANE_OVERLAY_ATTRIBUTES *)(pOVar21 + 0x20),
-                         (DXGI_MULTIPLANE_OVERLAY_ATTRIBUTES *)(pOVar20 + 0x20),&local_218,
+                        ((DXGI_MULTIPLANE_OVERLAY_ATTRIBUTES *)(pOVar20 + 0x20),
+                         (DXGI_MULTIPLANE_OVERLAY_ATTRIBUTES *)(pOVar18 + 0x20),&local_218,
                          &local_217);
-              pOVar21[0x170] = (OverlayPlaneInfo)((byte)pOVar21[0x170] | local_218);
-              if ((pOVar21[0x171] != (OverlayPlaneInfo)0x0) && (local_217 == false)) {
-                pOVar21[0x171] = (OverlayPlaneInfo)0x0;
+              pOVar20[0x170] = (OverlayPlaneInfo)((byte)pOVar20[0x170] | local_218);
+              if ((pOVar20[0x171] != (OverlayPlaneInfo)0x0) && (local_217 == false)) {
+                pOVar20[0x171] = (OverlayPlaneInfo)0x0;
               }
             }
-            local_214 = local_214 + 1;
+            uVar19 = (ulonglong)((int)uVar19 + 1);
           }
           else {
-            if (*(longlong *)(pOVar21 + 0x160) == 1) {
-              OverlayPlaneInfo::GetLocalClipRect(pOVar21,local_58);
+            if (*(longlong *)(pOVar20 + 0x160) == 1) {
+              OverlayPlaneInfo::GetLocalClipRect(pOVar20,local_50);
               TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::UnionUnsafe
                         ((TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded> *)
-                         (this + 0x4b20),
+                         (this + 0x4b80),
                          (TMilRect<float,struct_D2D_RECT_F,struct_D3D_RECT_F,struct_RectUniqueness::NotNeeded>
-                          *)local_58);
+                          *)local_50);
             }
             if ((Microsoft_Windows_Dwm_CoreEnableBits._1_1_ & 2) != 0) {
               McTemplateU0xd_EventWriteTransfer();
             }
-            pfVar19 = local_1f8;
+            plVar17 = &local_200;
 LAB_1:
-            local_210 = *(longlong *)pvVar1 + uVar12 * 0x188;
+            local_210 = local_210 + *(longlong *)pvVar1;
             detail::
             vector_facade<COverlayContext::OverlayPlaneInfo,detail::buffer_impl<COverlayContext::OverlayPlaneInfo,16,1,detail::liberal_expansion_policy>_>
-            ::erase(pvVar1,pfVar19,&local_210);
-          }
-          lVar14 = *(longlong *)(this + 0x60);
-          lVar18 = *(longlong *)pvVar1;
-          uVar12 = (ulonglong)local_214;
-        } while ((ulonglong)local_214 < (ulonglong)((lVar14 - lVar18 >> 3) * 0x7d6343eb1a1f58d1));
-      }
-      uVar12 = 0;
-      pCVar11 = local_208;
-      if ((lVar14 - lVar18 >> 3) * 0x7d6343eb1a1f58d1 != 0) {
+            ::erase(pvVar1,plVar17,&local_210);
+          }
+          lVar12 = *(longlong *)(this + 0x60);
+          lVar16 = *(longlong *)pvVar1;
+        } while (uVar19 < (ulonglong)((lVar12 - lVar16 >> 3) * 0x7d6343eb1a1f58d1));
+      }
+      uVar19 = 0;
+      this_03 = local_1f8;
+      pCVar10 = local_208;
+      if ((lVar12 - lVar16 >> 3) * 0x7d6343eb1a1f58d1 != 0) {
         do {
-          pOVar21 = (OverlayPlaneInfo *)(lVar18 + uVar12 * 0x188);
-          bVar8 = OverlayPlaneInfo::IsRevokable(pOVar21);
-          if ((bVar8) &&
-             (cVar7 = (**(code **)(**(longlong **)(pOVar21 + 0x10) + 0xc0))(), cVar7 == '\0')) {
-            (**(code **)(**(longlong **)(pOVar21 + 0x10) + 0xa8))();
+          pOVar20 = (OverlayPlaneInfo *)(lVar16 + uVar19 * 0x188);
+          bVar7 = OverlayPlaneInfo::IsRevokable(pOVar20);
+          if ((bVar7) &&
+             (cVar6 = (**(code **)(**(longlong **)(pOVar20 + 0x10) + 0xc0))(), cVar6 == '\0')) {
+            (**(code **)(**(longlong **)(pOVar20 + 0x10) + 0xa8))();
             if ((Microsoft_Windows_Dwm_CoreEnableBits._1_1_ & 2) != 0) {
-              uVar4 = *(undefined4 *)(*(longlong *)(pOVar21 + 0x10) + 0x28);
+              uVar4 = *(undefined4 *)(*(longlong *)(pOVar20 + 0x10) + 0x28);
               McTemplateU0xq_EventWriteTransfer
                         (uVar4,&EVTDESC_DISPLAYSURFACE_REJECTCANDIDATE,
                          CONCAT44((int)((ulonglong)
-                                        *(undefined8 *)(*(longlong *)(pOVar21 + 0x10) + 0x28) >>
+                                        *(undefined8 *)(*(longlong *)(pOVar20 + 0x10) + 0x28) >>
                                        0x20),uVar4),5);
             }
-            local_210 = *(longlong *)(this + 0x58) + uVar12 * 0x188;
+            local_1f0 = (CVisualTree *)(*(longlong *)(this + 0x58) + uVar19 * 0x188);
             detail::
             vector_facade<COverlayContext::OverlayPlaneInfo,detail::buffer_impl<COverlayContext::OverlayPlaneInfo,16,1,detail::liberal_expansion_policy>_>
-            ::erase(pvVar1,local_68,&local_210);
+            ::erase(pvVar1,local_60,&local_1f0);
           }
           else {
-            uVar12 = (ulonglong)((int)uVar12 + 1);
-          }
-          lVar18 = *(longlong *)(this + 0x58);
-          pCVar11 = local_208;
-        } while (uVar12 < (ulonglong)
-                          ((*(longlong *)(this + 0x60) - lVar18 >> 3) * 0x7d6343eb1a1f58d1));
-      }
-    }
-  }
-  else if (_Var5 != _Var10) {
-    local_214 = *(uint *)(param_1 + 0x600);
+            uVar19 = (ulonglong)((int)uVar19 + 1);
+          }
+          lVar16 = *(longlong *)(this + 0x58);
+          this_03 = local_1f8;
+          pCVar10 = local_208;
+        } while (uVar19 < (ulonglong)
+                          ((*(longlong *)(this + 0x60) - lVar16 >> 3) * 0x7d6343eb1a1f58d1));
+      }
+    }
+  }
+  else if (_Var5 != _Var9) {
     pvVar1 = (vector_facade<COverlayContext::OverlayPlaneInfo,detail::buffer_impl<COverlayContext::OverlayPlaneInfo,16,1,detail::liberal_expansion_policy>_>
               *)(this + 0x58);
-    lVar14 = *(longlong *)pvVar1;
-    uVar12 = 0;
-    if ((int)(*(longlong *)(this + 0x60) - lVar14 >> 3) * 0x1a1f58d1 != 0) {
+    lVar12 = *(longlong *)pvVar1;
+    local_210 = CONCAT44(local_210._4_4_,*(undefined4 *)(param_1 + 0x600));
+    uVar19 = 0;
+    if ((int)(*(longlong *)(this + 0x60) - lVar12 >> 3) * 0x1a1f58d1 != 0) {
       do {
-        uVar16 = 0;
-        pOVar21 = (OverlayPlaneInfo *)(uVar12 * 0x188 + lVar14);
-        OverlayPlaneInfo::GetLocalClipRect(pOVar21,local_58);
-        iVar9 = CVisual::GetZ(*(CVisual **)(pOVar21 + 8),local_200,local_214);
-        if (iVar9 != 0) {
-          bVar8 = COcclusionContext::IsOccluded
+        uVar14 = 0;
+        pOVar20 = (OverlayPlaneInfo *)(uVar19 * 0x188 + lVar12);
+        OverlayPlaneInfo::GetLocalClipRect(pOVar20,local_50);
+        iVar8 = CVisual::GetZ(*(CVisual **)(pOVar20 + 8),local_1f0,(uint)local_210);
+        if (iVar8 != 0) {
+          bVar7 = COcclusionContext::IsOccluded
                             (param_1,(TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
-                                      *)local_58,iVar9,false);
-          uVar16 = (ulonglong)bVar8;
+                                      *)local_50,iVar8,false);
+          uVar14 = (ulonglong)bVar7;
           if ((Microsoft_Windows_Dwm_CoreEnableBits._1_1_ & 2) != 0) {
             McTemplateU0xd_EventWriteTransfer();
           }
         }
-        *(ulonglong *)(pOVar21 + 0x160) = uVar16 ^ 1;
-        if ((char)uVar16 == '\0') {
-          for (lVar14 = *(longlong *)(this + 0x3188); lVar14 != *(longlong *)(this + 0x3190);
-              lVar14 = lVar14 + 0x188) {
-            lVar18 = *(longlong *)(pOVar21 + 0x10);
-            if ((lVar18 == *(longlong *)(lVar14 + 0x10)) &&
-               (*(longlong *)(pOVar21 + 8) != *(longlong *)(lVar14 + 8))) {
+        *(ulonglong *)(pOVar20 + 0x160) = uVar14 ^ 1;
+        if ((char)uVar14 == '\0') {
+          for (lVar12 = *(longlong *)(this + 0x3188); lVar12 != *(longlong *)(this + 0x3190);
+              lVar12 = lVar12 + 0x188) {
+            lVar16 = *(longlong *)(pOVar20 + 0x10);
+            if ((lVar16 == *(longlong *)(lVar12 + 0x10)) &&
+               (*(longlong *)(pOVar20 + 8) != *(longlong *)(lVar12 + 8))) {
               if ((Microsoft_Windows_Dwm_CoreEnableBits._1_1_ & 2) != 0) {
                 McTemplateU0xq_EventWriteTransfer
-                          (*(longlong *)(lVar14 + 8),&EVTDESC_DISPLAYSURFACE_REJECTCANDIDATE,
-                           CONCAT44((int)((ulonglong)*(undefined8 *)(lVar18 + 0x28) >> 0x20),
-                                    *(undefined4 *)(lVar18 + 0x28)));
+                          (*(longlong *)(lVar12 + 8),&EVTDESC_DISPLAYSURFACE_REJECTCANDIDATE,
+                           CONCAT44((int)((ulonglong)*(undefined8 *)(lVar16 + 0x28) >> 0x20),
+                                    *(undefined4 *)(lVar16 + 0x28)));
               }
               goto LAB_2;
             }
           }
-          uVar12 = (ulonglong)((int)uVar12 + 1);
+          uVar19 = (ulonglong)((int)uVar19 + 1);
         }
         else {
 LAB_2:
-          local_210 = uVar12 * 0x188 + *(longlong *)pvVar1;
+          local_200 = uVar19 * 0x188 + *(longlong *)pvVar1;
           detail::
           vector_facade<COverlayContext::OverlayPlaneInfo,detail::buffer_impl<COverlayContext::OverlayPlaneInfo,16,1,detail::liberal_expansion_policy>_>
-          ::erase(pvVar1,local_68,&local_210);
-        }
-        lVar14 = *(longlong *)pvVar1;
-      } while ((uint)uVar12 < (uint)((int)(*(longlong *)(this + 0x60) - lVar14 >> 3) * 0x1a1f58d1));
+          ::erase(pvVar1,local_60,&local_200);
+        }
+        lVar12 = *(longlong *)pvVar1;
+      } while ((uint)uVar19 < (uint)((int)(*(longlong *)(this + 0x60) - lVar12 >> 3) * 0x1a1f58d1));
     }
     pvVar1 = (vector_facade<COverlayContext::OverlayPlaneInfo,detail::buffer_impl<COverlayContext::OverlayPlaneInfo,16,1,detail::liberal_expansion_policy>_>
               *)(this + 0x58);
-    pOVar20 = *(OverlayPlaneInfo **)(this + 0x3190);
-    for (pOVar21 = *(OverlayPlaneInfo **)(this + 0x3188); pOVar21 != pOVar20;
-        pOVar21 = pOVar21 + 0x188) {
-      iVar9 = FindOverlayCandidateIndex
-                        (this,*(CVisual **)(pOVar21 + 8),
-                         *(CCompositionSurfaceInfo **)(pOVar21 + 0x10),*(__uint64 *)(pOVar21 + 0x18)
+    pOVar18 = *(OverlayPlaneInfo **)(this + 0x3190);
+    for (pOVar20 = *(OverlayPlaneInfo **)(this + 0x3188); pOVar20 != pOVar18;
+        pOVar20 = pOVar20 + 0x188) {
+      iVar8 = FindOverlayCandidateIndex
+                        (this,*(CVisual **)(pOVar20 + 8),
+                         *(CCompositionSurfaceInfo **)(pOVar20 + 0x10),*(__uint64 *)(pOVar20 + 0x18)
                         );
-      if (iVar9 == -1) {
-        OverlayPlaneInfo::GetLocalClipRect(pOVar21,local_58);
-        bVar8 = CTreeDirty::DoesIntersect
-                          ((CTreeDirty *)(local_200 + 0x70),
+      if (iVar8 == -1) {
+        OverlayPlaneInfo::GetLocalClipRect(pOVar20,local_50);
+        bVar7 = CTreeDirty::DoesIntersect
+                          ((CTreeDirty *)local_1f8,
                            (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
-                            *)local_58);
-        if (!bVar8) {
-          iVar9 = (int)(*(longlong *)(this + 0x60) - *(longlong *)pvVar1 >> 3) * 0x1a1f58d1 + -1;
-          if (iVar9 != -1) {
-            lVar14 = (longlong)iVar9;
-            puVar17 = (uint *)(*(longlong *)pvVar1 + 0x178 + lVar14 * 0x188);
+                            *)local_50);
+        if (!bVar7) {
+          iVar8 = (int)(*(longlong *)(this + 0x60) - *(longlong *)pvVar1 >> 3) * 0x1a1f58d1 + -1;
+          if (iVar8 != -1) {
+            lVar12 = (longlong)iVar8;
+            puVar15 = (uint *)(*(longlong *)pvVar1 + 0x178 + lVar12 * 0x188);
             do {
-              if ((*(char *)((longlong)puVar17 + -9) != '\0') &&
-                 (*puVar17 < *(uint *)(pOVar21 + 0x178))) break;
-              iVar9 = iVar9 + -1;
-              lVar14 = lVar14 + -1;
-              puVar17 = puVar17 + -0x62;
-            } while (lVar14 != -1);
-          }
-          uVar13 = OverlayPlaneInfo::OverlayPlaneInfo(local_1f0,pOVar21);
-          local_210 = ((longlong)iVar9 + 1) * 0x188 + *(longlong *)pvVar1;
+              if ((*(char *)((longlong)puVar15 + -9) != '\0') &&
+                 (*puVar15 < *(uint *)(pOVar20 + 0x178))) break;
+              iVar8 = iVar8 + -1;
+              lVar12 = lVar12 + -1;
+              puVar15 = puVar15 + -0x62;
+            } while (lVar12 != -1);
+          }
+          uVar11 = OverlayPlaneInfo::OverlayPlaneInfo(local_1e8,pOVar20);
+          local_200 = ((longlong)iVar8 + 1) * 0x188 + *(longlong *)pvVar1;
           detail::
           vector_facade<COverlayContext::OverlayPlaneInfo,detail::buffer_impl<COverlayContext::OverlayPlaneInfo,16,1,detail::liberal_expansion_policy>_>
-          ::emplace<COverlayContext::OverlayPlaneInfo>(pvVar1,local_68,&local_210,uVar13);
+          ::emplace<COverlayContext::OverlayPlaneInfo>(pvVar1,local_60,&local_200,uVar11);
         }
       }
       else {
-        lVar14 = (longlong)iVar9 * 0x188;
-        puVar2 = (undefined8 *)(lVar14 + 0xf4 + *(longlong *)pvVar1);
-        uVar13 = puVar2[1];
-        *(undefined8 *)(pOVar21 + 0xf4) = *puVar2;
-        *(undefined8 *)(pOVar21 + 0xfc) = uVar13;
+        lVar12 = (longlong)iVar8 * 0x188;
+        puVar2 = (undefined8 *)(lVar12 + 0xf4 + *(longlong *)pvVar1);
+        uVar11 = puVar2[1];
+        *(undefined8 *)(pOVar20 + 0xf4) = *puVar2;
+        *(undefined8 *)(pOVar20 + 0xfc) = uVar11;
         OverlayPlaneInfo::CopyTransientProperties
-                  ((OverlayPlaneInfo *)(*(longlong *)pvVar1 + lVar14),pOVar21);
+                  ((OverlayPlaneInfo *)(*(longlong *)pvVar1 + lVar12),pOVar20);
         local_217 = false;
         local_218 = false;
         ComparePlaneAttributes
-                  ((DXGI_MULTIPLANE_OVERLAY_ATTRIBUTES *)(*(longlong *)pvVar1 + 0x20 + lVar14),
-                   (DXGI_MULTIPLANE_OVERLAY_ATTRIBUTES *)(pOVar21 + 0x20),&local_217,&local_218);
-        pbVar3 = (byte *)(lVar14 + 0x170 + *(longlong *)pvVar1);
+                  ((DXGI_MULTIPLANE_OVERLAY_ATTRIBUTES *)(*(longlong *)pvVar1 + 0x20 + lVar12),
+                   (DXGI_MULTIPLANE_OVERLAY_ATTRIBUTES *)(pOVar20 + 0x20),&local_217,&local_218);
+        pbVar3 = (byte *)(lVar12 + 0x170 + *(longlong *)pvVar1);
         *pbVar3 = *pbVar3 | local_217;
-        if ((*(char *)(lVar14 + 0x171 + *(longlong *)pvVar1) != '\0') && (local_218 == false)) {
-          *(undefined1 *)(lVar14 + 0x171 + *(longlong *)pvVar1) = 0;
-        }
-      }
-    }
-    lVar14 = *(longlong *)(this + 0x58);
-    uVar12 = 0;
-    pCVar11 = local_208;
-    if ((int)(*(longlong *)(this + 0x60) - lVar14 >> 3) * 0x1a1f58d1 != 0) {
+        if ((*(char *)(lVar12 + 0x171 + *(longlong *)pvVar1) != '\0') && (local_218 == false)) {
+          *(undefined1 *)(lVar12 + 0x171 + *(longlong *)pvVar1) = 0;
+        }
+      }
+    }
+    lVar12 = *(longlong *)(this + 0x58);
+    uVar19 = 0;
+    this_03 = local_1f8;
+    pCVar10 = local_208;
+    if ((int)(*(longlong *)(this + 0x60) - lVar12 >> 3) * 0x1a1f58d1 != 0) {
       pvVar1 = (vector_facade<COverlayContext::OverlayPlaneInfo,detail::buffer_impl<COverlayContext::OverlayPlaneInfo,16,1,detail::liberal_expansion_policy>_>
                 *)(this + 0x58);
       do {
-        pOVar21 = (OverlayPlaneInfo *)(lVar14 + uVar12 * 0x188);
-        bVar8 = IsRevokable(this,pOVar21);
-        if ((bVar8) &&
-           (cVar7 = (**(code **)(**(longlong **)(pOVar21 + 0x10) + 0xc0))(), cVar7 == '\0')) {
+        pOVar20 = (OverlayPlaneInfo *)(lVar12 + uVar19 * 0x188);
+        bVar7 = IsRevokable(this,pOVar20);
+        if ((bVar7) &&
+           (cVar6 = (**(code **)(**(longlong **)(pOVar20 + 0x10) + 0xc0))(), cVar6 == '\0')) {
           if ((Microsoft_Windows_Dwm_CoreEnableBits._1_1_ & 2) != 0) {
-            uVar4 = *(undefined4 *)(*(longlong *)(pOVar21 + 0x10) + 0x28);
+            uVar4 = *(undefined4 *)(*(longlong *)(pOVar20 + 0x10) + 0x28);
             McTemplateU0xq_EventWriteTransfer
                       (uVar4,&EVTDESC_DISPLAYSURFACE_REJECTCANDIDATE,
                        CONCAT44((int)((ulonglong)
-                                      *(undefined8 *)(*(longlong *)(pOVar21 + 0x10) + 0x28) >> 0x20)
+                                      *(undefined8 *)(*(longlong *)(pOVar20 + 0x10) + 0x28) >> 0x20)
                                 ,uVar4),5);
           }
-          local_210 = *(longlong *)pvVar1 + uVar12 * 0x188;
+          local_200 = *(longlong *)pvVar1 + uVar19 * 0x188;
           detail::
           vector_facade<COverlayContext::OverlayPlaneInfo,detail::buffer_impl<COverlayContext::OverlayPlaneInfo,16,1,detail::liberal_expansion_policy>_>
-          ::erase(pvVar1,local_68,&local_210);
+          ::erase(pvVar1,local_60,&local_200);
         }
         else {
-          uVar12 = (ulonglong)((int)uVar12 + 1);
-        }
-        lVar14 = *(longlong *)pvVar1;
-        pCVar11 = local_208;
-      } while ((uint)uVar12 < (uint)((int)(*(longlong *)(this + 0x60) - lVar14 >> 3) * 0x1a1f58d1));
-    }
-  }
-  bVar8 = wil::details::FeatureImpl<__WilFeatureTraits_Feature_ComposedFlipPerf>::
+          uVar19 = (ulonglong)((int)uVar19 + 1);
+        }
+        lVar12 = *(longlong *)pvVar1;
+        this_03 = local_1f8;
+        pCVar10 = local_208;
+      } while ((uint)uVar19 < (uint)((int)(*(longlong *)(this + 0x60) - lVar12 >> 3) * 0x1a1f58d1));
+    }
+  }
+  bVar7 = wil::details::FeatureImpl<__WilFeatureTraits_Feature_DesktopDWMCursor>::
+          __private_IsEnabled((FeatureImpl<__WilFeatureTraits_Feature_DesktopDWMCursor> *)
+                              &`private:_static_class_wil::details::FeatureImpl<__WilFeatureTraits_Feature_DesktopDWMCursor>&___ptr64___cdecl_wil::Feature<__WilFeatureTraits_Feature_DesktopDWMCursor>::GetImpl(void)'
+                               ::__l2::impl);
+  if (((bVar7) && (this[0x4c88] != (COverlayContext)0x0)) && (this[0x4c89] == (COverlayContext)0x0))
+  {
+    ForceSoftwareCursor(this);
+  }
+  bVar7 = wil::details::FeatureImpl<__WilFeatureTraits_Feature_ComposedFlipPerf>::
           __private_IsEnabled((FeatureImpl<__WilFeatureTraits_Feature_ComposedFlipPerf> *)
                               &`private:_static_class_wil::details::FeatureImpl<__WilFeatureTraits_Feature_ComposedFlipPerf>&___ptr64___cdecl_wil::Feature<__WilFeatureTraits_Feature_ComposedFlipPerf>::GetImpl(void)'
                                ::__l2::impl);
-  if (bVar8) {
-    this_00 = (TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded> *)(this + 0x4bc8);
-    bVar8 = TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::IsEmpty(this_00);
-    if (!bVar8) {
-      local_68[0] = 0.0;
-      local_68[1] = 0.0;
-      local_68[2] = 0.0;
-      local_68[3] = 0.0;
+  if (bVar7) {
+    this_00 = (TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded> *)(this + 0x4c50);
+    bVar7 = TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::IsEmpty(this_00);
+    if (!bVar7) {
+      local_60[0] = 0;
+      local_60[1] = 0;
       CMILMatrix::Transform2DBoundsHelper<0>
-                ((CMILMatrix *)pCVar11,(D2D_RECT_F *)this_00,(D2D_RECT_F *)local_68);
-      bVar8 = CTreeDirty::DoesContain
-                        ((CTreeDirty *)(local_200 + 0x70),
+                ((CMILMatrix *)pCVar10,(D2D_RECT_F *)this_00,(D2D_RECT_F *)local_60);
+      bVar7 = CTreeDirty::DoesContain
+                        ((CTreeDirty *)this_03,
                          (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
-                          *)local_68);
-      if (bVar8) {
-        *(undefined4 *)(this + 0x4bd4) = 0;
-        *(undefined4 *)(this + 0x4bd0) = 0;
-        *(undefined4 *)(this + 0x4bcc) = 0;
+                          *)local_60);
+      if (bVar7) {
+        *(undefined4 *)(this + 0x4c5c) = 0;
+        *(undefined4 *)(this + 0x4c58) = 0;
+        *(undefined4 *)(this + 0x4c54) = 0;
         *(undefined4 *)this_00 = 0;
       }
     }
-    if ((*(float *)(this + 0x4bd0) - *(float *)this_00) *
-        (*(float *)(this + 0x4bd4) - *(float *)(this + 0x4bcc)) <=
-        (*(float *)(this + 0x4be4) - *(float *)(this + 0x4bdc)) *
-        (*(float *)(this + 0x4be0) - *(float *)(this + 0x4bd8))) {
-      *(undefined8 *)(this + 0x4bc8) = *(undefined8 *)(this + 0x4bd8);
-      *(undefined8 *)(this + 0x4bd0) = *(undefined8 *)(this + 0x4be0);
-    }
-    lVar14 = 0;
-    fVar24 = (*(float *)(this + 0x4bd4) - *(float *)(this + 0x4bcc)) *
-             (*(float *)(this + 0x4bd0) - *(float *)(this + 0x4bc8));
-    if ((9.223372e+18 <= fVar24) && (fVar24 = fVar24 - 9.223372e+18, fVar24 < 9.223372e+18)) {
-      lVar14 = -0x8000000000000000;
-    }
-    uVar12 = *(ulonglong *)(this + 0x4be8);
-    uVar16 = (longlong)fVar24 + lVar14;
-    if (this[0x4bf0] != (COverlayContext)(uVar12 < uVar16)) {
-      this[0x4bf0] = (COverlayContext)(uVar12 < uVar16);
-      cVar7 = (**(code **)(**(longlong **)this + 0xb8))();
-      if (cVar7 != '\0') {
+    if ((*(float *)(this + 0x4c58) - *(float *)this_00) *
+        (*(float *)(this + 0x4c5c) - *(float *)(this + 0x4c54)) <=
+        (*(float *)(this + 0x4c6c) - *(float *)(this + 0x4c64)) *
+        (*(float *)(this + 0x4c68) - *(float *)(this + 0x4c60))) {
+      *(undefined8 *)(this + 0x4c50) = *(undefined8 *)(this + 0x4c60);
+      *(undefined8 *)(this + 0x4c58) = *(undefined8 *)(this + 0x4c68);
+    }
+    lVar12 = 0;
+    fVar23 = (*(float *)(this + 0x4c58) - *(float *)(this + 0x4c50)) *
+             (*(float *)(this + 0x4c5c) - *(float *)(this + 0x4c54));
+    if ((9.223372e+18 <= fVar23) && (fVar23 = fVar23 - 9.223372e+18, fVar23 < 9.223372e+18)) {
+      lVar12 = -0x8000000000000000;
+    }
+    uVar19 = *(ulonglong *)(this + 0x4c70);
+    uVar14 = (longlong)fVar23 + lVar12;
+    if (this[0x4c78] != (COverlayContext)(uVar19 < uVar14)) {
+      this[0x4c78] = (COverlayContext)(uVar19 < uVar14);
+      cVar6 = (**(code **)(**(longlong **)this + 0xb8))();
+      if (cVar6 != '\0') {
         this_02 = g_pComposition;
-        bVar8 = CComposition::IsPowerSaverEnabled(g_pComposition);
-        if ((bVar8) ||
-           ((bVar8 = CComposition::GetCompositorClockBoost(this_02), !bVar8 && (uVar16 <= uVar12))))
+        bVar7 = CComposition::IsPowerSaverEnabled(g_pComposition);
+        if ((bVar7) ||
+           ((bVar7 = CComposition::GetCompositorClockBoost(this_02), !bVar7 && (uVar14 <= uVar19))))
         {
-          uVar13 = 0;
+          uVar11 = 0;
         }
         else {
-          uVar13 = 1;
-        }
-        (**(code **)(**(longlong **)this + 0xc0))(*(longlong **)this,uVar13);
+          uVar11 = 1;
+        }
+        (**(code **)(**(longlong **)this + 0xc0))(*(longlong **)this,uVar11);
       }
     }
   }
   this_01 = GetDeviceTransform(this);
-  bVar8 = OverlaysEnabled(this);
-  if ((((((!bVar8) && (*(int *)(this + 0x40) == 0)) || (this[0x4bf1] != (COverlayContext)0x0)) ||
-       ((this[0x4bf4] != (COverlayContext)0x0 ||
-        (bVar8 = CMILMatrix::IsTranslateAndScale<1>(this_01), !bVar8)))) ||
+  bVar7 = OverlaysEnabled(this);
+  if ((((((!bVar7) && (*(int *)(this + 0x40) == 0)) || (this[0x4c79] != (COverlayContext)0x0)) ||
+       ((this[0x4c7c] != (COverlayContext)0x0 ||
+        (bVar7 = CMILMatrix::IsTranslateAndScale<1>(this_01), !bVar7)))) ||
       ((*(float *)(this_01 + 0x28) != 1.0 ||
        ((*(float *)this_01 < 1.0 || (*(float *)(this_01 + 0x14) < 1.0)))))) ||
      ((*(float *)this_01 <= 1.0 && (*(float *)(this_01 + 0x14) <= 1.0)))) {
-    CVar23 = (COverlayContext)0x0;
-  }
-  this[0x4bf8] = CVar23;
-  if ((this[0x4bff] != (COverlayContext)0x0) || (*(longlong *)(this + 0x4b18) == 0))
-  goto LAB_3;
-  bVar8 = wil::details::FeatureImpl<__WilFeatureTraits_Feature_DWM_MPO_Enhancement>::
-          __private_IsEnabled((FeatureImpl<__WilFeatureTraits_Feature_DWM_MPO_Enhancement> *)
-                              &`private:_static_class_wil::details::FeatureImpl<__WilFeatureTraits_Feature_DWM_MPO_Enhancement>&___ptr64___cdecl_wil::Feature<__WilFeatureTraits_Feature_DWM_MPO_Enhancement>::GetImpl(void)'
-                               ::__l2::impl);
-  pCVar6 = local_200;
-  if (bVar8) {
-    CCursorVisual::GetCursorShapeBounds(*(CCursorVisual **)(this + 0x4b18),(CDesktopTree *)local_68)
-    ;
-    bVar8 = TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::IsEmpty
-                      ((TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded> *)local_68);
-    if ((!bVar8) &&
-       (bVar8 = CTreeDirty::DoesIntersect
-                          ((CTreeDirty *)(pCVar6 + 0x70),
-                           (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
-                            *)local_68), !bVar8)) goto LAB_3;
-    DisableHardwareCursor(this);
-    pCVar11 = GetMonitorTransform(this);
-    if (local_68[0] < *(float *)(pCVar11 + 8)) {
-      local_68[0] = *(float *)(pCVar11 + 8);
-    }
-    if (local_68[1] < *(float *)(pCVar11 + 0xc)) {
-      local_68[1] = *(float *)(pCVar11 + 0xc);
-    }
-    if (*(float *)(pCVar11 + 0x10) < local_68[2]) {
-      local_68[2] = *(float *)(pCVar11 + 0x10);
-    }
-    if (*(float *)(pCVar11 + 0x14) < local_68[3]) {
-      local_68[3] = *(float *)(pCVar11 + 0x14);
-    }
-    bVar8 = TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::IsEmpty
-                      ((TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded> *)local_68);
-    if (bVar8) goto LAB_3;
-  }
-  else {
-    CCursorVisual::GetCursorShapeBounds(*(CCursorVisual **)(this + 0x4b18),(CDesktopTree *)local_68)
-    ;
-    bVar8 = TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::IsEmpty
-                      ((TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded> *)local_68);
-    if ((!bVar8) &&
-       (bVar8 = CTreeDirty::DoesIntersect
-                          ((CTreeDirty *)(pCVar6 + 0x70),
-                           (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
-                            *)local_68), !bVar8)) goto LAB_3;
-    DisableHardwareCursor(this);
-  }
-  (**(code **)(**(longlong **)this + 0x128))(*(longlong **)this,local_68);
-LAB_3:
+    CVar22 = (COverlayContext)0x0;
+  }
+  this[0x4c81] = CVar22;
   if ((Microsoft_Windows_Dwm_CoreEnableBits._1_1_ & 2) != 0) {
     McTemplateU0d_EventWriteTransfer();
   }
   return;
 }
 

```


## CDesktopTree::NeedsCursorPositionUpdates

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,length,address,calling,called|
|ratio|0.81|
|i_ratio|0.73|
|m_ratio|0.97|
|b_ratio|0.95|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|NeedsCursorPositionUpdates|NeedsCursorPositionUpdates|
|fullname|CDesktopTree::NeedsCursorPositionUpdates|CDesktopTree::NeedsCursorPositionUpdates|
|refcount|2|2|
|`length`|175|181|
|`called`|_guard_dispatch_icall$thunk$10345483385596137414<br>wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy><br>wil::com_ptr_t<ILegacyRemotingSwapChain,wil::err_returncode_policy>::reset|COverlayContext::IsSoftwareCursor<br>_guard_dispatch_icall$thunk$10345483385596137414<br>wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy><br>wil::com_ptr_t<ILegacyRemotingSwapChain,wil::err_returncode_policy>::reset|
|`calling`|CCursorVisual::SetNotificationMode|CCursorVisual::UpdateNotificationMode|
|paramcount|2|2|
|`address`|18028ebb0|18028d980|
|sig|bool __thiscall NeedsCursorPositionUpdates(CDesktopTree * this, CCursorVisual * param_1)|bool __thiscall NeedsCursorPositionUpdates(CDesktopTree * this, CCursorVisual * param_1)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### CDesktopTree::NeedsCursorPositionUpdates Called Diff


```diff
--- CDesktopTree::NeedsCursorPositionUpdates called
+++ CDesktopTree::NeedsCursorPositionUpdates called
@@ -0,0 +1 @@
+COverlayContext::IsSoftwareCursor
```


### CDesktopTree::NeedsCursorPositionUpdates Calling Diff


```diff
--- CDesktopTree::NeedsCursorPositionUpdates calling
+++ CDesktopTree::NeedsCursorPositionUpdates calling
@@ -1 +1 @@
-CCursorVisual::SetNotificationMode
+CCursorVisual::UpdateNotificationMode
```


### CDesktopTree::NeedsCursorPositionUpdates Diff


```diff
--- CDesktopTree::NeedsCursorPositionUpdates
+++ CDesktopTree::NeedsCursorPositionUpdates
@@ -1,40 +1,43 @@
 
 /* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
    guard_dispatch_icall */
 /* public: bool __cdecl CDesktopTree::NeedsCursorPositionUpdates(class CCursorVisual const *
    __ptr64)const __ptr64 */
 
 bool __thiscall CDesktopTree::NeedsCursorPositionUpdates(CDesktopTree *this,CCursorVisual *param_1)
 
 {
   undefined8 *puVar1;
   undefined8 *puVar2;
-  int iVar3;
-  longlong lVar4;
+  bool bVar3;
+  int iVar4;
+  COverlayContext *this_00;
   undefined8 *puVar5;
   longlong *local_res8;
   
   puVar5 = *(undefined8 **)(this + 0x990);
   puVar1 = *(undefined8 **)(this + 0x998);
   while( true ) {
     if (puVar5 == puVar1) {
       return false;
     }
     puVar2 = (undefined8 *)*puVar5;
     local_res8 = (longlong *)0x0;
     wil::com_ptr_t<ILegacyRemotingSwapChain,wil::err_returncode_policy>::reset
               ((com_ptr_t<ILegacyRemotingSwapChain,wil::err_returncode_policy> *)&local_res8);
-    iVar3 = (**(code **)*puVar2)(puVar2,&_GUID_246c9be3_da00_417e_8eb0_aefc3aebe2a9,&local_res8);
-    if (((iVar3 < 0) || (lVar4 = (**(code **)(*local_res8 + 0x48))(), lVar4 == 0)) ||
-       (*(CCursorVisual **)(lVar4 + 0x4b18) != param_1)) break;
+    iVar4 = (**(code **)*puVar2)(puVar2,&_GUID_246c9be3_da00_417e_8eb0_aefc3aebe2a9,&local_res8);
+    if (((iVar4 < 0) ||
+        (this_00 = (COverlayContext *)(**(code **)(*local_res8 + 0x48))(),
+        this_00 == (COverlayContext *)0x0)) ||
+       (bVar3 = COverlayContext::IsSoftwareCursor(this_00,param_1), bVar3)) break;
     wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::
     ~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>
               ((com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy> *)&local_res8);
     puVar5 = puVar5 + 1;
   }
   wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::
   ~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>
             ((com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy> *)&local_res8);
   return true;
 }
 

```


## COverlayContext::COverlayContext

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,length,address|
|ratio|0.38|
|i_ratio|0.43|
|m_ratio|0.94|
|b_ratio|0.94|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|COverlayContext|COverlayContext|
|fullname|COverlayContext::COverlayContext|COverlayContext::COverlayContext|
|refcount|2|2|
|`length`|398|454|
|called|||
|calling|CDDisplayRenderTarget::CDDisplayRenderTarget<br>CLegacyRenderTarget::CLegacyRenderTarget|CDDisplayRenderTarget::CDDisplayRenderTarget<br>CLegacyRenderTarget::CLegacyRenderTarget|
|paramcount|3|3|
|`address`|18026be60|180269970|
|sig|undefined __thiscall COverlayContext(COverlayContext * this, IOverlayMonitorTarget * param_1, bool param_2)|undefined __thiscall COverlayContext(COverlayContext * this, IOverlayMonitorTarget * param_1, bool param_2)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### COverlayContext::COverlayContext Diff


```diff
--- COverlayContext::COverlayContext
+++ COverlayContext::COverlayContext
@@ -1,68 +1,76 @@
 
 /* public: __cdecl COverlayContext::COverlayContext(class IOverlayMonitorTarget * __ptr64,bool)
    __ptr64 */
 
 COverlayContext * __thiscall
 COverlayContext::COverlayContext(COverlayContext *this,IOverlayMonitorTarget *param_1,bool param_2)
 
 {
   *(IOverlayMonitorTarget **)this = param_1;
   *(undefined4 *)(this + 8) = 0;
   *(undefined8 *)(this + 0x28) = 0;
   *(undefined8 *)(this + 0x30) = 0;
   *(undefined8 *)(this + 0x38) = 0;
   *(undefined8 *)(this + 0x40) = 0;
   *(undefined8 *)(this + 0x48) = 0;
   *(undefined4 *)(this + 0x50) = 0;
   *(COverlayContext **)(this + 0x58) = this + 0x70;
   *(COverlayContext **)(this + 0x60) = this + 0x70;
   *(COverlayContext **)(this + 0x68) = this + 0x18f0;
   *(COverlayContext **)(this + 0x18f0) = this + 0x1908;
   *(COverlayContext **)(this + 0x18f8) = this + 0x1908;
   *(COverlayContext **)(this + 0x1900) = this + 0x3188;
-  *(undefined8 *)(this + 0x4b20) = 0;
-  *(undefined8 *)(this + 0x4b28) = 0;
-  *(undefined8 *)(this + 0x4b30) = 0;
-  *(undefined8 *)(this + 0x4b38) = 0;
+  *(undefined8 *)(this + 0x4b6c) = 0;
+  *(undefined8 *)(this + 0x4b74) = 0;
+  *(undefined8 *)(this + 0x4b7c) = 0;
+  *(undefined8 *)(this + 0x4b84) = 0;
+  *(undefined8 *)(this + 0x4b8c) = 0;
+  *(undefined8 *)(this + 0x4b94) = 0;
+  *(undefined8 *)(this + 0x4b9c) = 0;
+  *(undefined8 *)(this + 0x4ba4) = 0;
+  *(undefined8 *)(this + 0x4bac) = 0;
+  *(undefined8 *)(this + 0x4bb4) = 0;
+  *(undefined4 *)(this + 0x4bbc) = 0;
   *(COverlayContext **)(this + 0x3188) = this + 0x31a0;
   *(COverlayContext **)(this + 0x3190) = this + 0x31a0;
   *(COverlayContext **)(this + 0x3198) = this + 0x4a20;
-  *(undefined8 *)(this + 0x4b40) = 0;
-  *(undefined8 *)(this + 0x4b48) = 0;
-  *(undefined8 *)(this + 0x4b58) = 0;
-  *(undefined8 *)(this + 0x4b70) = 0;
-  *(undefined8 *)(this + 0x4b78) = 0;
-  *(undefined8 *)(this + 0x4b18) = 0;
-  *(undefined8 *)(this + 0x4b50) = 0;
-  *(undefined8 *)(this + 0x4b60) = 0;
-  *(undefined8 *)(this + 0x4b68) = 0;
-  *(undefined8 *)(this + 0x4b10) = 0;
-  *(undefined8 *)(this + 0x4b80) = 0;
-  *(undefined8 *)(this + 0x4b88) = 0;
-  *(undefined8 *)(this + 0x4b90) = 0;
-  *(undefined8 *)(this + 0x4b98) = 0;
-  *(undefined8 *)(this + 0x4ba0) = 0;
-  *(undefined4 *)(this + 0x4ba8) = 0x1000000;
-  *(undefined2 *)(this + 0x4bac) = 0;
-  *(undefined4 *)(this + 0x75c0) = 0xffffffff;
-  *(undefined8 *)(this + 0x4bb0) = 0;
-  *(undefined4 *)(this + 0x4bb8) = 0;
-  *(undefined8 *)(this + 0x4bc0) = 0;
   *(undefined8 *)(this + 0x4bc8) = 0;
   *(undefined8 *)(this + 0x4bd0) = 0;
+  *(undefined8 *)(this + 0x4be0) = 0;
+  *(undefined8 *)(this + 0x4bf8) = 0;
+  *(undefined8 *)(this + 0x4c00) = 0;
+  *(undefined8 *)(this + 0x4b18) = 0;
   *(undefined8 *)(this + 0x4bd8) = 0;
-  *(undefined8 *)(this + 0x4be0) = 0;
   *(undefined8 *)(this + 0x4be8) = 0;
-  *(undefined2 *)(this + 0x4bf0) = 0;
-  this[0x4bf3] = (COverlayContext)0x0;
-  *(undefined2 *)(this + 0x4bf5) = 0;
-  this[0x4bfc] = (COverlayContext)0x1;
-  this[0x4c00] = (COverlayContext)param_2;
-  *(undefined8 *)(this + 0x4c04) = 0;
-  *(undefined4 *)(this + 0x4c0c) = 0;
-  this[0x4c10] = (COverlayContext)0x0;
-  *(undefined8 *)(this + 0x4c14) = 0;
-  *(undefined4 *)(this + 0x4c1c) = 0;
+  *(undefined8 *)(this + 0x4bf0) = 0;
+  *(undefined8 *)(this + 0x4b10) = 0;
+  *(undefined8 *)(this + 0x4c08) = 0;
+  *(undefined8 *)(this + 0x4c10) = 0;
+  *(undefined8 *)(this + 0x4c18) = 0;
+  *(undefined8 *)(this + 0x4c20) = 0;
+  *(undefined8 *)(this + 0x4c28) = 0;
+  *(undefined4 *)(this + 0x4c30) = 0x1000000;
+  *(undefined2 *)(this + 0x4c34) = 0;
+  *(undefined4 *)(this + 0x7648) = 0xffffffff;
+  *(undefined8 *)(this + 0x4c38) = 0;
+  *(undefined4 *)(this + 0x4c40) = 0;
+  *(undefined8 *)(this + 0x4c48) = 0;
+  *(undefined8 *)(this + 0x4c50) = 0;
+  *(undefined8 *)(this + 0x4c58) = 0;
+  *(undefined8 *)(this + 0x4c60) = 0;
+  *(undefined8 *)(this + 0x4c68) = 0;
+  *(undefined8 *)(this + 0x4c70) = 0;
+  *(undefined2 *)(this + 0x4c78) = 0;
+  this[0x4c7b] = (COverlayContext)0x0;
+  *(undefined2 *)(this + 0x4c7d) = 0x100;
+  this[0x4c7f] = (COverlayContext)0x0;
+  this[0x4c85] = (COverlayContext)0x1;
+  this[0x4c8a] = (COverlayContext)param_2;
+  *(undefined8 *)(this + 0x4c8c) = 0;
+  *(undefined4 *)(this + 0x4c94) = 0;
+  this[0x4c98] = (COverlayContext)0x0;
+  *(undefined8 *)(this + 0x4c9c) = 0;
+  *(undefined4 *)(this + 0x4ca4) = 0;
   return this;
 }
 

```


## CDrawingContext::PreSubgraph

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,length,address|
|ratio|0.47|
|i_ratio|0.63|
|m_ratio|1.0|
|b_ratio|0.95|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|PreSubgraph|PreSubgraph|
|fullname|CDrawingContext::PreSubgraph|CDrawingContext::PreSubgraph|
|refcount|22|22|
|`length`|23613|23719|
|called|<details><summary>Expand for full list:<br><lambda_88375b7c038d402b80e7daa8931735f4>::operator()<br>?Alloc@DefaultHeap@@SAPEAX_K@Z<br>?Free@DefaultHeap@@SAXPEAX@Z<br>API-MS-WIN-CORE-HEAP-L1-1-0.DLL::GetProcessHeap<br>API-MS-WIN-CORE-HEAP-L1-1-0.DLL::HeapAlloc<br>API-MS-WIN-CORE-HEAP-L1-1-0.DLL::HeapFree<br>API-MS-WIN-CRT-RUNTIME-L1-1-0.DLL::_invalid_parameter_noinfo_noreturn<br>API-MS-WIN-EVENTING-PROVIDER-L1-1-0.DLL::EventEnabled<br>CArrayBasedCoverageSet::IsCovered<br>CBackdropVisualImage::IsVisualInAncestorList<br>CComposition::IsScreenReadBack</summary>CComposition::IsTextureMemoryHeatMapEnabled<br>CCpuClippingData::CanIgnoreAncestorCpuClips<br>CCpuClippingData::GetScopeMode<br>CCpuClippingData::HasCpuClip<br>CCpuClippingData::Update<br>CDeviceResourceT<CMILCOMBaseT<ILegacyRemotingSwapChain,IDeviceResource,CMilObjectDeleter>_>::GetUniqueDeviceResource<br>CDrawingContext::CalcInversedWorldInputBoundsFromVisibleWorldOutputBounds<br>CDrawingContext::CalcNodeWorldSpaceInputBounds<br>CDrawingContext::DoesCpuClipFullyContainRect<br>CDrawingContext::DrawBspPolygonList<br>CDrawingContext::DrawSubVisualTree<br>CDrawingContext::GetClipBoundsWorld<br>CDrawingContext::GetCurrentVisual<br>CDrawingContext::GetCurrentVisualTreePath<br>CDrawingContext::GetD2DAntialiasMode<br>CDrawingContext::GetWorldTransform<br>CDrawingContext::IsBackdropWalk<br>CDrawingContext::NodeEffects::HasEffects<br>CDrawingContext::NodeEffects::~NodeEffects<br>CDrawingContext::NotifyFrameContainsProtectedContent<br>CDrawingContext::PushClippingScope<br>CDrawingContext::PushEffects<br>CDrawingContext::PushGpuClipRectInternal<br>CDrawingContext::SetHeatMapForCurrentNode<br>CDrawingContext::StackBackfaceVisibilityEntry::StackBackfaceVisibilityEntry<br>CEffectGeneratedT<CEffect,CPropertyChangeResource>::IsOfType<br>CGeometry::GetShapeData<br>CLayerStack::Top<br>CLayerVisual::GetFlatteningVisualTree<br>CLayerVisual::IsAutomaticBoundsToLocalSpaceEnabled<br>CLayerVisual::IsOfType<br>CLightStack::Push<br>CMILMatrix::CMILMatrix<br>CMILMatrix::IsPure2DUniformZ<1><br>CMILMatrix::IsTranslateAndScaleIgnoreZ<1><br>CMILMatrix::Multiply<br>CMILMatrix::Transform3DBounds<br>CMILMatrix::Transform3DBoundsHelper<1><br>CMatrixStack::GetTopByReference<br>CMatrixTransform3D::IsOfType<br>CMultiPrimitiveDrawListBrush::`scalar_deleting_destructor'<br>COcclusionInfo::UpdateZFromValidParent<br>CPolygonShape::`vector_deleting_destructor'<br>CProcessAttribution::MarkCompositorRendered<br>CProjectedShadowCaster::IsEmptyMaskContent<br>CProjectedShadowReceiver::IsEmptyMaskContent<br>CProjectedShadowScene::IsEmptyProjection<br>CPtrArrayBase::GetCount<br>CRectanglesShape::~CRectanglesShape<br>CRoundedRectangleShape::GetTightBounds<br>CRoundedRectangleShape::~CRoundedRectangleShape<br>CScopedClipStack::UseCpuClippingInScope<br>CSparseStorage::AllocatedStorage::FindSlot<br>CSpriteVisual::RenderContent<br>CSurfaceDrawListBrush::`scalar_deleting_destructor'<br>CTelemetryFrames::IncrementWindowBackdropBrushCacheMisses<br>CThreadLocalObjectCache<CRectanglesShape,CRectanglesShape>::Free<br>CThreadLocalObjectCache<CRoundedRectangleShape,CRoundedRectangleShape>::Free<br>CTreeData::GetWorldTransform<br>CTreeEffectLayer::GetTransformToLayerSpace<br>CVisual::EnsureWorldTransform<br>CVisual::GetColorSpace<br>CVisual::GetCpuClippingData<br>CVisual::GetHeatMapProperties<br>CVisual::GetInputBounds<br>CVisual::GetLightsCount<br>CVisual::GetSubtreeZ<br>CVisual::GetTreeDataListHead<br>CVisual::GetWindowBackgroundTreatmentInternal<br>CVisual::HasBspPolygonList<br>CVisual::HasNonDefaultEffectInternal<br>CVisual::HasNonDefaultWindowBackgroundTreatmentInternal<br>CVisual::HasProtectedContent<br>CVisual::IsOfType<br>CVisual::IsPreserve3DRoot<br>CVisual::IsSimple3DRootOrHasEffects<br>CVisual::RenderContent<br>CVisual::RenderProjectedShadows<br>CVisual::SubgraphHasBackdropInput<br>CVisual::SubgraphHasWindowBackdropInput<br>CVisualTree::GetBounds<br>CWatermarkStack<CComposition::HeatMapOptions,2,2,2>::Push<br>CWatermarkStack<CDrawingContext::SavedRenderOptions,64,2,10>::Grow<br>CWatermarkStack<CDrawingContext::StackBackfaceVisibilityEntry,64,2,10>::Push<br>CWatermarkStack<CDrawingContext::StackStateEntry,64,2,10>::Pop<br>CWatermarkStack<CDrawingContext::StackStateEntry,64,2,10>::Push<br>CWatermarkStack<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,8,2,8>::GetTopByReference<br>CWatermarkStack<bool,64,2,10>::Grow<br>CWatermarkStack<bool,64,2,10>::TopOrDefault<br>CWatermarkStack<unsigned_int,64,2,10>::Pop<br>CWeakReference<CVisual>::GetTargetResource<br>CWindowBackgroundTreatment::GenerateBitmapForEffectInput<br>CWindowBackgroundTreatment::GetBackdropBrushNoRef<br>CWindowBackgroundTreatment::GetBounds<br>CWindowBackgroundTreatment::HasValidBounds<br>CWindowBackgroundTreatment::HasValidRenderingRealization<br>CWindowBackgroundTreatment::SetCacheInvalidationRequired<br>CWindowBackgroundTreatment::SetWorldTransform<br>CWindowNode::RenderContent<br>CWindowNodeGeneratedT<CWindowNode,CVisual>::IsOfType<br>DwmDbg::Backdrops::IsEtwEnabled<br>DwmDbg::Backdrops::LogTreeWalkEtwEvent<br>DwmDbg::DbgString::DbgString<br>DwmDbg::DbgString::DbgString<br>DwmDbg::DbgString::DbgString<br>DwmDbg::DbgString::~DbgString<br>DynArrayImpl<0>::Grow<br>FastRegion::CRegion::GetBoundingRect<br>IDeviceSurfaceMethodsT<CD2DBitmap,IDeviceTextureTarget>::GetSize`adjustor{184}'<br>MSVCP_WIN.DLL::std::_Xoverflow_error<br>McTemplateU0_EventWriteTransfer<br>MilInstrumentationCheckHR_MaybeFailFast<br>ModuleFailFastForHRESULT<br>TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::DoesIntersect<br>TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::UnionUnsafe<br>TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>::TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded><br>__security_check_cookie<br>_guard_dispatch_icall$thunk$10345483385596137414<br>detail::vector_facade<Mesh::VertexAAOffsetDesc,detail::buffer_impl<Mesh::VertexAAOffsetDesc,40,1,detail::liberal_expansion_policy>_>::data<br>detail::vector_facade<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,detail::buffer_impl<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,1,1,detail::liberal_expansion_policy>_>::erase<br>memcpy<br>operator_delete[]<br>std::vector<std::unique_ptr<CBetterCheckMPOCache,std::default_delete<CBetterCheckMPOCache>_>,std::allocator<std::unique_ptr<CBetterCheckMPOCache,std::default_delete<CBetterCheckMPOCache>_>_>_>::vector<std::unique_ptr<CBetterCheckMPOCache,std::default_delete<CBetterCheckMPOCache>_>,std::allocator<std::unique_ptr<CBetterCheckMPOCache,std::default_delete<CBetterCheckMPOCache>_>_>_><br>wil::details::in1diag3::Return_Hr<br>wil::operator!=<ICompositionSurfaceStatistics,wil::err_returncode_policy></details>|<details><summary>Expand for full list:<br><lambda_88375b7c038d402b80e7daa8931735f4>::operator()<br>?Alloc@DefaultHeap@@SAPEAX_K@Z<br>?Free@DefaultHeap@@SAXPEAX@Z<br>API-MS-WIN-CORE-HEAP-L1-1-0.DLL::GetProcessHeap<br>API-MS-WIN-CORE-HEAP-L1-1-0.DLL::HeapAlloc<br>API-MS-WIN-CORE-HEAP-L1-1-0.DLL::HeapFree<br>API-MS-WIN-CRT-RUNTIME-L1-1-0.DLL::_invalid_parameter_noinfo_noreturn<br>API-MS-WIN-EVENTING-PROVIDER-L1-1-0.DLL::EventEnabled<br>CArrayBasedCoverageSet::IsCovered<br>CBackdropVisualImage::IsVisualInAncestorList<br>CComposition::IsScreenReadBack</summary>CComposition::IsTextureMemoryHeatMapEnabled<br>CCpuClippingData::CanIgnoreAncestorCpuClips<br>CCpuClippingData::GetScopeMode<br>CCpuClippingData::HasCpuClip<br>CCpuClippingData::Update<br>CDeviceResourceT<CMILCOMBaseT<ILegacyRemotingSwapChain,IDeviceResource,CMilObjectDeleter>_>::GetUniqueDeviceResource<br>CDrawingContext::CalcInversedWorldInputBoundsFromVisibleWorldOutputBounds<br>CDrawingContext::CalcNodeWorldSpaceInputBounds<br>CDrawingContext::DoesCpuClipFullyContainRect<br>CDrawingContext::DrawBspPolygonList<br>CDrawingContext::DrawSubVisualTree<br>CDrawingContext::GetClipBoundsWorld<br>CDrawingContext::GetCurrentVisual<br>CDrawingContext::GetCurrentVisualTreePath<br>CDrawingContext::GetD2DAntialiasMode<br>CDrawingContext::GetWorldTransform<br>CDrawingContext::IsBackdropWalk<br>CDrawingContext::NodeEffects::HasEffects<br>CDrawingContext::NodeEffects::~NodeEffects<br>CDrawingContext::NotifyFrameContainsProtectedContent<br>CDrawingContext::PushClippingScope<br>CDrawingContext::PushEffects<br>CDrawingContext::PushGpuClipRectInternal<br>CDrawingContext::SetHeatMapForCurrentNode<br>CDrawingContext::StackBackfaceVisibilityEntry::StackBackfaceVisibilityEntry<br>CEffectGeneratedT<CEffect,CPropertyChangeResource>::IsOfType<br>CGeometry::GetShapeData<br>CLayerStack::Top<br>CLayerVisual::GetFlatteningVisualTree<br>CLayerVisual::IsAutomaticBoundsToLocalSpaceEnabled<br>CLayerVisual::IsOfType<br>CLightStack::Push<br>CMILMatrix::CMILMatrix<br>CMILMatrix::IsPure2DUniformZ<1><br>CMILMatrix::IsTranslate<1><br>CMILMatrix::IsTranslateAndScaleIgnoreZ<1><br>CMILMatrix::Multiply<br>CMILMatrix::Transform3DBounds<br>CMILMatrix::Transform3DBoundsHelper<1><br>CMatrixStack::GetTopByReference<br>CMatrixTransform3D::IsOfType<br>CMultiPrimitiveDrawListBrush::`scalar_deleting_destructor'<br>COcclusionInfo::UpdateZFromValidParent<br>CPolygonShape::`vector_deleting_destructor'<br>CProcessAttribution::MarkCompositorRendered<br>CProjectedShadowCaster::IsEmptyMaskContent<br>CProjectedShadowReceiver::IsEmptyMaskContent<br>CProjectedShadowScene::IsEmptyProjection<br>CPtrArrayBase::GetCount<br>CRectanglesShape::~CRectanglesShape<br>CRoundedRectangleShape::GetTightBounds<br>CRoundedRectangleShape::~CRoundedRectangleShape<br>CScopedClipStack::UseCpuClippingInScope<br>CSparseStorage::AllocatedStorage::FindSlot<br>CSpriteVisual::RenderContent<br>CSurfaceDrawListBrush::`scalar_deleting_destructor'<br>CTelemetryFrames::IncrementWindowBackdropBrushCacheMisses<br>CThreadLocalObjectCache<CRectanglesShape,CRectanglesShape>::Free<br>CThreadLocalObjectCache<CRoundedRectangleShape,CRoundedRectangleShape>::Free<br>CTreeData::GetWorldTransform<br>CTreeEffectLayer::GetTransformToLayerSpace<br>CVisual::EnsureWorldTransform<br>CVisual::GetColorSpace<br>CVisual::GetCpuClippingData<br>CVisual::GetHeatMapProperties<br>CVisual::GetInputBounds<br>CVisual::GetLightsCount<br>CVisual::GetSubtreeZ<br>CVisual::GetTreeDataListHead<br>CVisual::GetWindowBackgroundTreatmentInternal<br>CVisual::HasBspPolygonList<br>CVisual::HasNonDefaultEffectInternal<br>CVisual::HasNonDefaultWindowBackgroundTreatmentInternal<br>CVisual::HasProtectedContent<br>CVisual::IsOfType<br>CVisual::IsPreserve3DRoot<br>CVisual::IsSimple3DRootOrHasEffects<br>CVisual::RenderContent<br>CVisual::RenderProjectedShadows<br>CVisual::SubgraphHasBackdropInput<br>CVisual::SubgraphHasWindowBackdropInput<br>CVisualTree::GetBounds<br>CWatermarkStack<CComposition::HeatMapOptions,2,2,2>::Push<br>CWatermarkStack<CDrawingContext::SavedRenderOptions,64,2,10>::Grow<br>CWatermarkStack<CDrawingContext::StackBackfaceVisibilityEntry,64,2,10>::Push<br>CWatermarkStack<CDrawingContext::StackStateEntry,64,2,10>::Pop<br>CWatermarkStack<CDrawingContext::StackStateEntry,64,2,10>::Push<br>CWatermarkStack<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,8,2,8>::GetTopByReference<br>CWatermarkStack<bool,64,2,10>::Grow<br>CWatermarkStack<bool,64,2,10>::TopOrDefault<br>CWeakReference<CVisual>::GetTargetResource<br>CWindowBackgroundTreatment::GenerateBitmapForEffectInput<br>CWindowBackgroundTreatment::GetBackdropBrushNoRef<br>CWindowBackgroundTreatment::GetBounds<br>CWindowBackgroundTreatment::HasValidBounds<br>CWindowBackgroundTreatment::HasValidRenderingRealization<br>CWindowBackgroundTreatment::SetCacheInvalidationRequired<br>CWindowBackgroundTreatment::SetWorldTransform<br>CWindowNode::RenderContent<br>CWindowNodeGeneratedT<CWindowNode,CVisual>::IsOfType<br>DwmDbg::Backdrops::IsEtwEnabled<br>DwmDbg::Backdrops::LogTreeWalkEtwEvent<br>DwmDbg::DbgString::DbgString<br>DwmDbg::DbgString::DbgString<br>DwmDbg::DbgString::DbgString<br>DwmDbg::DbgString::~DbgString<br>DynArrayImpl<0>::Grow<br>FastRegion::CRegion::GetBoundingRect<br>IDeviceSurfaceMethodsT<CD2DBitmap,IDeviceTextureTarget>::GetSize`adjustor{184}'<br>MSVCP_WIN.DLL::std::_Xoverflow_error<br>McTemplateU0_EventWriteTransfer<br>MilInstrumentationCheckHR_MaybeFailFast<br>ModuleFailFastForHRESULT<br>TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::DoesIntersect<br>TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::UnionUnsafe<br>TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>::TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded><br>__security_check_cookie<br>_guard_dispatch_icall$thunk$10345483385596137414<br>detail::vector_facade<Mesh::VertexAAOffsetDesc,detail::buffer_impl<Mesh::VertexAAOffsetDesc,40,1,detail::liberal_expansion_policy>_>::data<br>detail::vector_facade<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,detail::buffer_impl<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,1,1,detail::liberal_expansion_policy>_>::erase<br>memcpy<br>operator_delete[]<br>std::vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_>::vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_><br>wil::details::in1diag3::Return_Hr<br>wil::operator!=<ICompositionSurfaceStatistics,wil::err_returncode_policy></details>|
|calling|CVisualTreeIterator::WalkSubtree<CDrawingContext>|CVisualTreeIterator::WalkSubtree<CDrawingContext>|
|paramcount|3|3|
|`address`|180095590|180083d50|
|sig|long __thiscall PreSubgraph(CDrawingContext * this, CVisualTree * param_1, bool * param_2)|long __thiscall PreSubgraph(CDrawingContext * this, CVisualTree * param_1, bool * param_2)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### CDrawingContext::PreSubgraph Diff


```diff
--- CDrawingContext::PreSubgraph
+++ CDrawingContext::PreSubgraph
@@ -1,3768 +1,3783 @@
 
 /* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
    guard_dispatch_icall */
 /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
+/* WARNING: Removing unreachable block (ram,0x00018008995d) */
 /* WARNING: Type propagation algorithm not settling */
 /* public: long __cdecl CDrawingContext::PreSubgraph(class CVisualTree const * __ptr64,bool *
    __ptr64) __ptr64 */
 
 long __thiscall
 CDrawingContext::PreSubgraph(CDrawingContext *this,CVisualTree *param_1,bool *param_2)
 
 {
   TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> TVar1;
   CMILMatrix_IdentityType CVar2;
   LightBehavior LVar3;
   CSurfaceDrawListBrush *pCVar4;
   _LIST_ENTRY *p_Var5;
   CMatrixTransform3D *this_00;
   undefined1 auVar6 [16];
   undefined1 auVar7 [16];
   undefined1 auVar8 [16];
   undefined1 auVar9 [16];
   undefined1 auVar10 [16];
   undefined1 auVar11 [16];
   float fVar12;
   float fVar13;
   float fVar14;
   float fVar15;
   bool bVar16;
   char cVar17;
   TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> TVar18;
   bool bVar19;
   undefined1 uVar20;
   BOOLEAN BVar21;
-  D2D1_ANTIALIAS_MODE DVar22;
-  uint uVar23;
+  uint uVar22;
+  D2D1_ANTIALIAS_MODE DVar23;
   CpuClippingScopeMode CVar24;
-  uint uVar25;
-  int iVar26;
+  int iVar25;
+  uint uVar26;
   DXGI_COLOR_SPACE_TYPE DVar27;
   long lVar28;
   _LIST_ENTRY *p_Var29;
   _LIST_ENTRY *p_Var30;
   undefined8 *puVar31;
   CVisualTreePath *pCVar32;
   undefined8 uVar33;
   CCpuClippingData *this_01;
   VertexAAOffsetDesc *pVVar34;
   TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> *pTVar35;
   undefined8 *puVar36;
+  NodeEffects *pNVar37;
   CWindowBackgroundTreatment *this_02;
   CMILMatrix *pCVar38;
   TMil3DRect<float,TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,D3D_RECT_F,MilPointAndSizeF,RectUniqueness::NotNeeded>
   *pTVar39;
   IDeviceResource *pIVar40;
   CBackdropBrush *pCVar41;
   RenderTargetInfo *pRVar42;
   CLayer *this_03;
   HANDLE pvVar43;
   _LIST_ENTRY *p_Var44;
-  longlong *plVar45;
-  longlong *plVar46;
-  DataInfo *pDVar47;
-  _LIST_ENTRY *p_Var48;
-  __uint64 _Var49;
+  _LIST_ENTRY *p_Var45;
+  _LIST_ENTRY *p_Var46;
+  longlong *plVar47;
+  longlong *plVar48;
+  DataInfo *pDVar49;
   _LIST_ENTRY *p_Var50;
-  uint uVar51;
-  CMILMatrix_IdentityType *pCVar52;
+  __uint64 _Var51;
+  uint uVar52;
+  CMILMatrix_IdentityType *pCVar53;
   CCpuClippingData *this_04;
-  NodeEffects *pNVar53;
-  _LIST_ENTRY **pp_Var54;
-  CWindowBackgroundTreatment *pCVar55;
-  _LIST_ENTRY *p_Var56;
+  NodeEffects *pNVar54;
+  _LIST_ENTRY **pp_Var55;
+  CWindowBackgroundTreatment *pCVar56;
   _LIST_ENTRY *p_Var57;
   uint *puVar58;
   code *pcVar59;
   char *pcVar60;
   longlong lVar61;
   uint uVar62;
   bool *pbVar63;
   CTreeData *this_05;
   _LIST_ENTRY *p_Var64;
   _LIST_ENTRY **pp_Var65;
   undefined4 uVar66;
   byte bVar67;
   CComposition *_Size;
   _LIST_ENTRY *in_R9;
   undefined4 uVar68;
   ulonglong uVar69;
   undefined1 *puVar70;
   ulonglong uVar71;
   float fVar72;
   float fVar73;
   float fVar74;
   float fVar75;
   float fVar76;
   float fVar77;
   float fVar78;
   float fVar79;
   float fVar80;
   float fVar81;
   float fVar82;
   float fVar83;
   float fVar84;
   float fVar85;
   float fVar86;
   float fVar87;
   float fVar88;
   float fVar89;
   float fVar90;
   float fVar91;
   float fVar92;
   float fVar93;
   float fVar94;
   float fVar95;
   float fVar96;
   float fVar97;
   float fVar98;
   void *unaff_retaddr;
   undefined1 auStackY_468 [32];
   _LIST_ENTRY *in_stack_fffffffffffffbb8;
   undefined1 local_418 [4];
   uint local_414;
-  uint local_410 [2];
+  uint local_410;
   _LIST_ENTRY *local_408;
   _LIST_ENTRY *local_400;
-  bool *local_3f8;
-  bool local_3f0 [8];
-  _LIST_ENTRY *local_3e8;
+  _LIST_ENTRY *local_3f8;
+  bool *local_3f0;
+  bool local_3e8 [16];
   undefined1 local_3d8 [8];
   _LIST_ENTRY *p_Stack_3d0;
   char local_3c8;
   CCpuClippingData *local_3c0;
   int local_3b8;
   float local_3b4;
   undefined1 local_3b0 [8];
   undefined8 uStack_3a8;
   undefined8 local_3a0;
   undefined1 auStack_398 [8];
   undefined8 local_390;
   undefined8 uStack_388;
   undefined8 local_380;
   float fStack_378;
   float fStack_374;
   byte bStack_370;
   byte bStack_36f;
   undefined2 uStack_36e;
   undefined4 uStack_36c;
   undefined8 local_368;
   undefined8 uStack_360;
   undefined8 local_358;
   undefined8 uStack_350;
   undefined8 local_348;
   undefined8 uStack_340;
   undefined8 local_338;
   undefined8 local_330;
   undefined8 local_328;
   undefined4 local_320;
   undefined2 local_31c;
   _LIST_ENTRY *local_318;
   _LIST_ENTRY *local_310;
   _LIST_ENTRY local_308;
   undefined8 uStack_2f8;
   _LIST_ENTRY *local_2f0;
   _LIST_ENTRY *local_2e8;
   char local_2e0;
   _LIST_ENTRY *local_2d8;
   float local_2d0;
   float fStack_2cc;
   float fStack_2c8;
   _LIST_ENTRY *p_Stack_2c4;
   undefined4 local_2bc;
   undefined4 local_2b8;
   undefined4 local_2b4;
   uint local_2b0;
   uint local_2ac;
   _LIST_ENTRY local_2a8;
   _LIST_ENTRY *local_298;
   undefined8 local_290;
   undefined8 uStack_288;
   _LIST_ENTRY local_280;
   DbgString local_270 [8];
   _LIST_ENTRY *local_268;
   DbgString local_260 [48];
   _LIST_ENTRY local_230;
   DbgString local_220 [8];
   DbgString local_218 [48];
   CMILMatrix local_1e8 [80];
   undefined1 local_198 [8];
   undefined8 uStack_190;
   undefined8 local_188;
   _LIST_ENTRY local_180;
   undefined4 local_170;
   undefined4 uStack_16c;
   _LIST_ENTRY local_168;
   undefined8 local_158;
   undefined8 uStack_150;
   tagRECT local_148;
   undefined8 local_138;
   undefined8 uStack_130;
   undefined8 local_128;
   _LIST_ENTRY local_120;
   _LIST_ENTRY local_110;
   undefined1 local_f8 [16];
   ulonglong local_e8;
-  NodeEffects *pNVar37;
   
   local_e8 = __security_cookie ^ (ulonglong)auStackY_468;
-  p_Var44 = (_LIST_ENTRY *)0x0;
+  p_Var45 = (_LIST_ENTRY *)0x0;
   uVar66 = 0;
   local_188 = 0;
   local_128 = 0;
-  local_414 = 0;
+  local_410 = 0;
   fVar93 = 0.0;
   fVar94 = 0.0;
-  local_410[0] = 0;
+  local_414 = 0;
   local_198 = (undefined1  [8])0x0;
   uStack_190 = (_LIST_ENTRY *)0x0;
   local_138 = 0;
   uStack_130 = 0;
   local_120.Flink = (_LIST_ENTRY *)0x0;
   local_120.Blink = (_LIST_ENTRY *)0x0;
   local_298 = *(_LIST_ENTRY **)(this + 0xc98);
-  local_400 = *(_LIST_ENTRY **)(this + 0xc90);
+  local_3f8 = *(_LIST_ENTRY **)(this + 0xc90);
   local_3d8 = (undefined1  [8])0x0;
   p_Stack_3d0 = (_LIST_ENTRY *)0x0;
   local_3c8 = '\0';
   local_2a8.Flink = (_LIST_ENTRY *)local_3b0;
   local_3c0 = (CCpuClippingData *)0x0;
   local_3b8 = 0;
   local_3b4 = 1.0;
   bStack_370 = 0;
   bStack_36f = 0;
   uStack_36e = 0;
   uStack_36c = 0;
   local_328 = 0;
   local_320 = 0;
   local_31c = 0;
   local_368 = 0;
   uStack_360 = 0;
   local_358 = 0;
   uStack_350 = 0;
   local_348 = 0;
   uStack_340 = 0;
   local_338 = 0;
   local_330 = 0x2a993f800000;
-  p_Var50 = local_400[0xe].Blink;
+  p_Var44 = local_3f8[0xe].Blink;
   local_290 = 0;
   uStack_288 = 0;
   local_168.Flink = (_LIST_ENTRY *)0x0;
   local_168.Blink = (_LIST_ENTRY *)0x0;
   pcVar60 = param_2;
   local_408 = (_LIST_ENTRY *)param_1;
-  local_3f8 = param_2;
-  local_3e8 = (_LIST_ENTRY *)this;
-  if (((ulonglong)p_Var50->Flink & 0x40000) != 0) {
-    uVar23 = *(uint *)((longlong)&p_Var50->Flink + 4);
-    pp_Var54 = &p_Var50->Blink;
-    pcVar60 = (char *)p_Var44;
-    if (uVar23 != 0) {
+  local_400 = (_LIST_ENTRY *)this;
+  local_3f0 = param_2;
+  if (((ulonglong)p_Var44->Flink & 0x40000) != 0) {
+    uVar62 = *(uint *)((longlong)&p_Var44->Flink + 4);
+    pp_Var55 = &p_Var44->Blink;
+    pcVar60 = (char *)p_Var45;
+    if (uVar62 != 0) {
       do {
-        if (*(char *)pp_Var54 == '\x0e') break;
-        uVar62 = (int)pcVar60 + 1;
-        pcVar60 = (char *)(ulonglong)uVar62;
-        pp_Var54 = (_LIST_ENTRY **)((longlong)pp_Var54 + 1);
-      } while (uVar62 < uVar23);
-    }
-    p_Var56 = p_Var44;
-    if ((uint)pcVar60 < uVar23) {
-      p_Var56 = (_LIST_ENTRY *)
-                ((longlong)p_Var50 +
+        if (*(char *)pp_Var55 == '\x0e') break;
+        uVar22 = (int)pcVar60 + 1;
+        pcVar60 = (char *)(ulonglong)uVar22;
+        pp_Var55 = (_LIST_ENTRY **)((longlong)pp_Var55 + 1);
+      } while (uVar22 < uVar62);
+    }
+    p_Var46 = p_Var45;
+    if ((uint)pcVar60 < uVar62) {
+      p_Var46 = (_LIST_ENTRY *)
+                ((longlong)p_Var44 +
                 (longlong)pcVar60 * 8 +
-                (((ulonglong)uVar23 + 0xf) - (ulonglong)((uint)((ulonglong)uVar23 + 0xf) & 7)));
-    }
-    local_2d8 = p_Var56->Flink->Blink;
-    for (p_Var50 = p_Var56->Flink->Flink; p_Var50 != local_2d8;
-        p_Var50 = (_LIST_ENTRY *)&p_Var50->Blink) {
-      p_Var56 = p_Var50->Flink;
-      p_Var57 = p_Var56[5].Blink;
-      for (p_Var64 = p_Var56[5].Flink; p_Var64 != p_Var57; p_Var64 = (_LIST_ENTRY *)&p_Var64->Blink)
+                (((ulonglong)uVar62 + 0xf) - (ulonglong)((uint)((ulonglong)uVar62 + 0xf) & 7)));
+    }
+    local_2d8 = p_Var46->Flink->Blink;
+    for (p_Var44 = p_Var46->Flink->Flink; p_Var44 != local_2d8;
+        p_Var44 = (_LIST_ENTRY *)&p_Var44->Blink) {
+      p_Var46 = p_Var44->Flink;
+      p_Var57 = p_Var46[5].Blink;
+      for (p_Var64 = p_Var46[5].Flink; p_Var64 != p_Var57; p_Var64 = (_LIST_ENTRY *)&p_Var64->Blink)
       {
         p_Var29 = p_Var64->Flink;
         if (((CCommonRegistryData::DisableProjectedShadows == (CRegistryKey<bool,bool>)0x0) &&
             (bVar19 = CProjectedShadowScene::IsEmptyProjection((CProjectedShadowScene *)p_Var29),
             !bVar19)) &&
            (bVar19 = CProjectedShadowReceiver::IsEmptyMaskContent
-                               ((CProjectedShadowReceiver *)p_Var56), !bVar19)) {
+                               ((CProjectedShadowReceiver *)p_Var46), !bVar19)) {
           p_Var29 = p_Var29[4].Blink;
           for (p_Var30 = p_Var29->Flink; p_Var30 != p_Var29; p_Var30 = p_Var30->Flink) {
             bVar19 = CProjectedShadowCaster::IsEmptyMaskContent
                                ((CProjectedShadowCaster *)p_Var30[1].Flink);
             if (!bVar19) {
               uVar20 = 1;
               goto LAB_0;
             }
           }
         }
       }
     }
   }
   uVar20 = 0;
 LAB_0:
-  p_Var56 = local_3e8;
-  p_Var50 = local_400;
-  p_Var64 = (_LIST_ENTRY *)(ulonglong)*(uint *)&local_3e8[199].Blink;
-  uVar23 = *(uint *)((longlong)&local_3e8[199].Blink + 4);
+  p_Var46 = local_3f8;
+  p_Var44 = local_400;
+  p_Var64 = (_LIST_ENTRY *)(ulonglong)*(uint *)&local_400[199].Blink;
+  uVar62 = *(uint *)((longlong)&local_400[199].Blink + 4);
   pcVar59 = (code *)0x40;
-  if (*(uint *)&local_3e8[199].Blink == uVar23) {
-    uVar71 = (ulonglong)uVar23 * 2;
+  if (*(uint *)&local_400[199].Blink == uVar62) {
+    uVar71 = (ulonglong)uVar62 * 2;
     if (uVar71 < 0x100000000) {
-      uVar23 = (uint)uVar71;
-      if (uVar23 < 0x41) {
-        uVar23 = 0x40;
-      }
-      if ((uVar23 == 0) ||
-         (SUB168((ZEXT816(0) << 0x40 | ZEXT816(0xffffffffffffffff)) / ZEXT416(uVar23),0) < 2)) {
-        uVar23 = 0x80070057;
+      uVar62 = (uint)uVar71;
+      if (uVar62 < 0x41) {
+        uVar62 = 0x40;
+      }
+      if ((uVar62 == 0) ||
+         (SUB168((ZEXT816(0) << 0x40 | ZEXT816(0xffffffffffffffff)) / ZEXT416(uVar62),0) < 2)) {
+        uVar62 = 0x80070057;
       }
       else {
         pvVar43 = GetProcessHeap();
-        p_Var57 = HeapAlloc(pvVar43,0,(ulonglong)uVar23);
+        p_Var57 = HeapAlloc(pvVar43,0,(ulonglong)uVar62);
         if (p_Var57 != (_LIST_ENTRY *)0x0) {
-          pcVar59 = (code *)p_Var56[199].Flink;
+          pcVar59 = (code *)p_Var44[199].Flink;
           memcpy(p_Var57,pcVar59,(size_t)p_Var64);
-          p_Var29 = p_Var56[199].Flink;
+          p_Var44 = p_Var44[199].Flink;
           pcVar60 = (char *)p_Var64;
-          if (p_Var29 != (_LIST_ENTRY *)0x0) {
+          if (p_Var44 != (_LIST_ENTRY *)0x0) {
             pvVar43 = GetProcessHeap();
             pcVar59 = (code *)0x0;
-            HeapFree(pvVar43,0,p_Var29);
-            pcVar60 = (char *)p_Var29;
-          }
-          p_Var56[199].Flink = p_Var57;
-          *(uint *)((longlong)&p_Var56[199].Blink + 4) = uVar23;
+            HeapFree(pvVar43,0,p_Var44);
+            pcVar60 = (char *)p_Var44;
+          }
+          local_400[199].Flink = p_Var57;
+          *(uint *)((longlong)&local_400[199].Blink + 4) = uVar62;
           goto LAB_1;
         }
-        uVar23 = 0x8007000e;
-      }
-      uVar62 = 0x68;
+        uVar62 = 0x8007000e;
+      }
+      uVar22 = 0x68;
     }
     else {
-      uVar23 = 0x80070216;
-      uVar62 = 0x62;
+      uVar62 = 0x80070216;
+      uVar22 = 0x62;
     }
     wil::details::in1diag3::Return_Hr
-              (unaff_retaddr,uVar62,"onecoreuap\\windows\\DWM\\dwmcore\\common\\WatermarkStack.inl",
-               uVar23);
+              (unaff_retaddr,uVar22,"onecoreuap\\windows\\DWM\\dwmcore\\common\\WatermarkStack.inl",
+               uVar62);
     pcVar60 = "onecoreuap\\windows\\DWM\\dwmcore\\common\\WatermarkStack.inl";
-    in_R9 = (_LIST_ENTRY *)(ulonglong)uVar23;
+    in_R9 = (_LIST_ENTRY *)(ulonglong)uVar62;
     pcVar59 = (code *)0x83;
     wil::details::in1diag3::Return_Hr
               (unaff_retaddr,0x83,"onecoreuap\\windows\\DWM\\dwmcore\\common\\WatermarkStack.inl",
-               uVar23);
+               uVar62);
   }
   else {
 LAB_1:
     *(undefined1 *)
-     ((longlong)&(p_Var56[199].Flink)->Flink + (ulonglong)*(uint *)&p_Var56[199].Blink) = uVar20;
-    *(int *)&p_Var56[199].Blink = *(int *)&p_Var56[199].Blink + 1;
-    uVar23 = *(uint *)((longlong)&p_Var56[200].Flink + 4);
-    if (uVar23 <= *(uint *)&p_Var56[199].Blink) {
-      uVar23 = *(uint *)&p_Var56[199].Blink;
-    }
-    *(uint *)((longlong)&p_Var56[200].Flink + 4) = uVar23;
-  }
-  if (p_Var56[0xc].Blink != (_LIST_ENTRY *)0x0) {
-    p_Var64 = p_Var56[0x1f2].Flink;
+     ((longlong)&(local_400[199].Flink)->Flink + (ulonglong)*(uint *)&local_400[199].Blink) = uVar20
+    ;
+    *(int *)&local_400[199].Blink = *(int *)&local_400[199].Blink + 1;
+    uVar62 = *(uint *)((longlong)&local_400[200].Flink + 4);
+    if (uVar62 <= *(uint *)&local_400[199].Blink) {
+      uVar62 = *(uint *)&local_400[199].Blink;
+    }
+    *(uint *)((longlong)&local_400[200].Flink + 4) = uVar62;
+  }
+  p_Var44 = local_400;
+  if (local_400[0xc].Blink != (_LIST_ENTRY *)0x0) {
+    p_Var64 = local_400[0x1f2].Flink;
     p_Var57 = p_Var64->Blink[-1].Blink;
     cVar17 = (*(code *)p_Var57->Flink[0xb].Blink)(p_Var57);
-    p_Var29 = p_Var44;
+    p_Var29 = p_Var45;
     if (cVar17 == '\0') {
-      p_Var30 = CVisual::GetTreeDataListHead((CVisual *)p_Var50);
-      p_Var50 = p_Var30;
+      p_Var30 = CVisual::GetTreeDataListHead((CVisual *)p_Var46);
+      p_Var46 = p_Var30;
       if (p_Var30 != (_LIST_ENTRY *)0x0) {
         do {
-          p_Var50 = p_Var50->Flink;
-          if (p_Var50 == p_Var30) goto LAB_2;
-          p_Var48 = p_Var50 + -0x16;
-        } while (p_Var50[2].Flink != p_Var57);
+          p_Var46 = p_Var46->Flink;
+          if (p_Var46 == p_Var30) goto LAB_2;
+          p_Var50 = p_Var46 + -0x16;
+        } while (p_Var46[2].Flink != p_Var57);
         goto LAB_3;
       }
     }
     else {
-      p_Var48 = (_LIST_ENTRY *)&p_Var50[0x14].Blink;
+      p_Var50 = (_LIST_ENTRY *)&p_Var46[0x14].Blink;
 LAB_3:
-      if (p_Var48 != (_LIST_ENTRY *)0x0) {
-        for (pcVar59 = (code *)p_Var48[9].Flink; (_LIST_ENTRY *)pcVar59 != p_Var48[9].Blink;
+      if (p_Var50 != (_LIST_ENTRY *)0x0) {
+        for (pcVar59 = (code *)p_Var50[9].Flink; (_LIST_ENTRY *)pcVar59 != p_Var50[9].Blink;
             pcVar59 = (code *)&((_LIST_ENTRY *)pcVar59)->Blink) {
-          p_Var50 = p_Var64->Flink;
+          p_Var46 = p_Var64->Flink;
           in_R9 = ((_LIST_ENTRY *)pcVar59)->Flink[0x82].Flink;
           pcVar60 = (char *)((_LIST_ENTRY *)pcVar59)->Flink[0x81].Blink;
-          if ((longlong)in_R9 - (longlong)pcVar60 == (longlong)p_Var64->Blink - (longlong)p_Var50) {
-            pcVar60 = (char *)((longlong)pcVar60 - (longlong)p_Var50);
+          if ((longlong)in_R9 - (longlong)pcVar60 == (longlong)p_Var64->Blink - (longlong)p_Var46) {
+            pcVar60 = (char *)((longlong)pcVar60 - (longlong)p_Var46);
             while( true ) {
-              if ((_LIST_ENTRY *)((longlong)p_Var50 + (longlong)pcVar60) == in_R9) {
+              p_Var57 = (_LIST_ENTRY *)
+                        ((longlong)&((_LIST_ENTRY *)pcVar60)->Flink + (longlong)p_Var46);
+              if (p_Var57 == in_R9) {
                 pcVar60 = (char *)((_LIST_ENTRY *)pcVar59)->Flink;
                 ((_LIST_ENTRY *)((longlong)pcVar60 + 0x8b0))->Blink =
-                     p_Var48[0xf].Blink[1].Blink[0x37].Blink;
+                     p_Var50[0xf].Blink[1].Blink[0x37].Blink;
                 p_Var29 = ((_LIST_ENTRY *)pcVar59)->Flink;
                 goto LAB_2;
               }
-              if ((((_LIST_ENTRY *)((longlong)p_Var50 + (longlong)pcVar60))->Flink != p_Var50->Flink
-                  ) || (*(_LIST_ENTRY **)
-                         ((longlong)&((_LIST_ENTRY *)pcVar60)->Blink + (longlong)p_Var50) !=
-                        p_Var50->Blink)) break;
-              p_Var50 = p_Var50 + 1;
+              if ((p_Var57->Flink != p_Var46->Flink) ||
+                 (*(_LIST_ENTRY **)((longlong)&((_LIST_ENTRY *)pcVar60)->Blink + (longlong)p_Var46)
+                  != p_Var46->Blink)) break;
+              p_Var46 = p_Var46 + 1;
             }
           }
         }
       }
     }
 LAB_2:
-    if (p_Var29 == p_Var56[0xc].Blink) {
-      *(undefined1 *)((longlong)&p_Var56[0xc].Flink + 1) = 1;
-    }
-  }
-  p_Var64 = local_400;
-  p_Var50 = local_408;
-  if ((((ulonglong)local_400[6].Blink & 0x10000) != 0) ||
-     (((ulonglong)local_400[6].Flink & 0x100) == 0)) {
+    if (p_Var29 == p_Var44[0xc].Blink) {
+      *(undefined1 *)((longlong)&p_Var44[0xc].Flink + 1) = 1;
+    }
+  }
+  p_Var64 = local_3f8;
+  p_Var46 = local_408;
+  if ((((ulonglong)local_3f8[6].Blink & 0x10000) != 0) ||
+     (((ulonglong)local_3f8[6].Flink & 0x100) == 0)) {
 LAB_4:
-    uVar23 = *(uint *)&p_Var56[199].Blink;
-    if (uVar23 != 0) {
-      uVar23 = uVar23 - 1;
-      *(uint *)&p_Var56[199].Blink = uVar23;
-    }
-    uVar62 = *(uint *)((longlong)&p_Var56[199].Blink + 4);
-    if (uVar23 == uVar62) {
-      uVar71 = (ulonglong)uVar62 * 2;
+    uVar62 = *(uint *)&p_Var44[199].Blink;
+    if (uVar62 != 0) {
+      uVar62 = uVar62 - 1;
+      *(uint *)&p_Var44[199].Blink = uVar62;
+    }
+    uVar22 = *(uint *)((longlong)&p_Var44[199].Blink + 4);
+    if (uVar62 == uVar22) {
+      uVar71 = (ulonglong)uVar22 * 2;
       if (uVar71 < 0x100000000) {
-        uVar62 = (uint)uVar71;
-        if (uVar62 < 0x41) {
-          uVar62 = 0x40;
-        }
-        if ((uVar62 == 0) ||
-           (SUB168((ZEXT816(0) << 0x40 | ZEXT816(0xffffffffffffffff)) / ZEXT416(uVar62),0) < 2)) {
+        uVar22 = (uint)uVar71;
+        if (uVar22 < 0x41) {
+          uVar22 = 0x40;
+        }
+        if ((uVar22 == 0) ||
+           (SUB168((ZEXT816(0) << 0x40 | ZEXT816(0xffffffffffffffff)) / ZEXT416(uVar22),0) < 2)) {
           lVar28 = -0x7ff8ffa9;
         }
         else {
           pvVar43 = GetProcessHeap();
-          p_Var44 = HeapAlloc(pvVar43,0,(ulonglong)uVar62);
-          if (p_Var44 != (_LIST_ENTRY *)0x0) {
-            pcVar59 = (code *)p_Var56[199].Flink;
-            pcVar60 = (char *)(ulonglong)uVar23;
-            memcpy(p_Var44,pcVar59,(size_t)pcVar60);
-            p_Var57 = p_Var56[199].Flink;
+          p_Var45 = HeapAlloc(pvVar43,0,(ulonglong)uVar22);
+          if (p_Var45 != (_LIST_ENTRY *)0x0) {
+            pcVar59 = (code *)p_Var44[199].Flink;
+            pcVar60 = (char *)(ulonglong)uVar62;
+            memcpy(p_Var45,pcVar59,(size_t)pcVar60);
+            p_Var57 = p_Var44[199].Flink;
             if (p_Var57 != (_LIST_ENTRY *)0x0) {
               pvVar43 = GetProcessHeap();
               pcVar59 = (code *)0x0;
               HeapFree(pvVar43,0,p_Var57);
               pcVar60 = (char *)p_Var57;
             }
-            p_Var56[199].Flink = p_Var44;
-            *(uint *)((longlong)&p_Var56[199].Blink + 4) = uVar62;
+            p_Var44[199].Flink = p_Var45;
+            *(uint *)((longlong)&p_Var44[199].Blink + 4) = uVar22;
             goto LAB_5;
           }
           lVar28 = -0x7ff8fff2;
         }
-        uVar23 = 0x68;
+        uVar62 = 0x68;
       }
       else {
         lVar28 = -0x7ff8fdea;
-        uVar23 = 0x62;
+        uVar62 = 0x62;
       }
       wil::details::in1diag3::Return_Hr
-                (unaff_retaddr,uVar23,
+                (unaff_retaddr,uVar62,
                  "onecoreuap\\windows\\DWM\\dwmcore\\common\\WatermarkStack.inl",lVar28);
       pcVar60 = "onecoreuap\\windows\\DWM\\dwmcore\\common\\WatermarkStack.inl";
       pcVar59 = (code *)0x83;
       wil::details::in1diag3::Return_Hr
                 (unaff_retaddr,0x83,"onecoreuap\\windows\\DWM\\dwmcore\\common\\WatermarkStack.inl",
                  lVar28);
-      uVar23 = local_414;
+      uVar62 = local_410;
     }
     else {
 LAB_5:
       *(undefined1 *)
-       ((longlong)&(p_Var56[199].Flink)->Flink + (ulonglong)*(uint *)&p_Var56[199].Blink) = 0;
-      uVar62 = *(int *)&p_Var56[199].Blink + 1;
-      *(uint *)&p_Var56[199].Blink = uVar62;
-      uVar23 = *(uint *)((longlong)&p_Var56[200].Flink + 4);
-      if (uVar23 <= uVar62) {
-        uVar23 = uVar62;
-      }
-      *(uint *)((longlong)&p_Var56[200].Flink + 4) = uVar23;
-      uVar23 = local_414;
+       ((longlong)&(p_Var44[199].Flink)->Flink + (ulonglong)*(uint *)&p_Var44[199].Blink) = 0;
+      uVar22 = *(int *)&p_Var44[199].Blink + 1;
+      *(uint *)&p_Var44[199].Blink = uVar22;
+      uVar62 = *(uint *)((longlong)&p_Var44[200].Flink + 4);
+      if (uVar62 <= uVar22) {
+        uVar62 = uVar22;
+      }
+      *(uint *)((longlong)&p_Var44[200].Flink + 4) = uVar62;
+      uVar62 = local_410;
     }
     goto LAB_6;
   }
   cVar17 = (*(code *)local_408->Flink[0xb].Blink)(local_408);
   if ((cVar17 == '\0') &&
-     ((p_Var64 != p_Var50[4].Blink &&
+     ((p_Var64 != p_Var46[4].Blink &&
       (pcVar59 = (code *)p_Var64[0xe].Blink,
       ((ulonglong)((_LIST_ENTRY *)pcVar59)->Flink & 0x2000000) != 0)))) {
-    uVar23 = *(uint *)((longlong)&((_LIST_ENTRY *)pcVar59)->Flink + 4);
-    pp_Var54 = &((_LIST_ENTRY *)pcVar59)->Blink;
-    pcVar60 = (char *)p_Var44;
-    if (uVar23 != 0) {
+    uVar62 = *(uint *)((longlong)&((_LIST_ENTRY *)pcVar59)->Flink + 4);
+    pp_Var55 = &((_LIST_ENTRY *)pcVar59)->Blink;
+    pcVar60 = (char *)p_Var45;
+    if (uVar62 != 0) {
       do {
-        if (*(char *)pp_Var54 == '\a') break;
-        uVar62 = (int)pcVar60 + 1;
-        pcVar60 = (char *)(ulonglong)uVar62;
-        pp_Var54 = (_LIST_ENTRY **)((longlong)pp_Var54 + 1);
-      } while (uVar62 < uVar23);
-    }
-    p_Var57 = p_Var44;
-    if ((uint)pcVar60 < uVar23) {
+        if (*(char *)pp_Var55 == '\a') break;
+        uVar22 = (int)pcVar60 + 1;
+        pcVar60 = (char *)(ulonglong)uVar22;
+        pp_Var55 = (_LIST_ENTRY **)((longlong)pp_Var55 + 1);
+      } while (uVar22 < uVar62);
+    }
+    p_Var57 = p_Var45;
+    if ((uint)pcVar60 < uVar62) {
       pcVar59 = (code *)((longlong)pcVar59 +
-                        (((ulonglong)uVar23 + 0xf) -
-                        (ulonglong)((uint)((ulonglong)uVar23 + 0xf) & 7)));
+                        (((ulonglong)uVar62 + 0xf) -
+                        (ulonglong)((uint)((ulonglong)uVar62 + 0xf) & 7)));
       p_Var57 = (_LIST_ENTRY *)(&((_LIST_ENTRY *)pcVar59)->Flink + (longlong)pcVar60);
     }
     if (p_Var57->Flink != (_LIST_ENTRY *)0x0) {
       p_Var57 = p_Var57->Flink->Flink;
       pcVar59 = CVisualReferenceController::GetVisualNoRef;
       p_Var29 = p_Var57->Flink[0xb].Blink;
       if (p_Var29 == (_LIST_ENTRY *)CVisualReferenceController::GetVisualNoRef) {
         p_Var57 = p_Var57 + 5;
         pcVar59 = (code *)0x0;
         bVar19 = wil::operator!=<ICompositionSurfaceStatistics,wil::err_returncode_policy>(p_Var57);
-        p_Var29 = p_Var44;
+        p_Var29 = p_Var45;
         if (bVar19) {
           p_Var29 = (_LIST_ENTRY *)
                     CWeakReference<CVisual>::GetTargetResource
                               ((CWeakReference<CVisual> *)p_Var57->Flink);
         }
       }
       else {
         p_Var29 = (_LIST_ENTRY *)(*(code *)p_Var29)();
       }
       if (p_Var29 != (_LIST_ENTRY *)0x0) {
-        cVar17 = (*(code *)p_Var50->Flink[0xb].Blink)(p_Var50);
+        cVar17 = (*(code *)p_Var46->Flink[0xb].Blink)(p_Var46);
         if (cVar17 == '\0') {
           p_Var57 = CVisual::GetTreeDataListHead((CVisual *)p_Var64);
           if (p_Var57 != (_LIST_ENTRY *)0x0) {
             for (p_Var30 = p_Var57->Flink; p_Var30 != p_Var57; p_Var30 = p_Var30->Flink) {
-              p_Var48 = p_Var30 + -0x16;
-              if (p_Var30[2].Flink == p_Var50) goto LAB_7;
+              p_Var50 = p_Var30 + -0x16;
+              if (p_Var30[2].Flink == p_Var46) goto LAB_7;
             }
           }
         }
         else {
-          p_Var48 = (_LIST_ENTRY *)&p_Var64[0x14].Blink;
+          p_Var50 = (_LIST_ENTRY *)&p_Var64[0x14].Blink;
 LAB_7:
-          if ((p_Var48 != (_LIST_ENTRY *)0x0) &&
-             (p_Var57 = p_Var29, *(char *)((longlong)&p_Var48->Blink + 4) == '\0')) {
+          if ((p_Var50 != (_LIST_ENTRY *)0x0) &&
+             (p_Var57 = p_Var29, *(char *)((longlong)&p_Var50->Blink + 4) == '\0')) {
             for (; p_Var57 != (_LIST_ENTRY *)0x0; p_Var57 = p_Var57[5].Blink) {
-              if (p_Var57 == p_Var50[4].Blink) goto LAB_8;
+              if (p_Var57 == p_Var46[4].Blink) goto LAB_8;
               if (((p_Var29 != (_LIST_ENTRY *)0x0) &&
                   (p_Var29 = p_Var29[5].Blink, p_Var29 != (_LIST_ENTRY *)0x0)) &&
                  ((p_Var57 == p_Var29 || (p_Var29 = p_Var29[5].Blink, p_Var57 == p_Var29)))) break;
             }
             goto LAB_4;
           }
         }
       }
     }
   }
 LAB_8:
-  if (*(char *)((longlong)&p_Var56[0xc].Flink + 1) != '\0') goto LAB_4;
+  if (*(char *)((longlong)&p_Var44[0xc].Flink + 1) != '\0') goto LAB_4;
   if (((int)((longlong)p_Var64[0x11].Blink - (longlong)p_Var64[0x11].Flink >> 4) != 0) ||
-     ((int)((longlong)p_Var64[0x13].Flink - (longlong)p_Var64[0x12].Blink >> 4) != 0)) {
+     (p_Var57 = p_Var44,
+     (int)((longlong)p_Var64[0x13].Flink - (longlong)p_Var64[0x12].Blink >> 4) != 0)) {
     local_2b8 = 0;
     local_2b4 = 1;
-    for (puVar70 = (undefined1 *)&local_2b8; p_Var50 = local_408, (uint *)puVar70 != &local_2b0;
-        puVar70 = puVar70 + 4) {
+    for (puVar70 = (undefined1 *)&local_2b8; p_Var46 = local_408, p_Var57 = local_400,
+        (uint *)puVar70 != &local_2b0; puVar70 = puVar70 + 4) {
       LVar3 = *(LightBehavior *)puVar70;
-      p_Var50 = p_Var44;
+      p_Var44 = p_Var45;
       while( true ) {
-        uVar23 = CVisual::GetLightsCount((CVisual *)p_Var64,LVar3);
-        uVar62 = (uint)p_Var50;
-        if (uVar23 <= uVar62) break;
+        uVar62 = CVisual::GetLightsCount((CVisual *)p_Var64,LVar3);
+        uVar22 = (uint)p_Var44;
+        if (uVar62 <= uVar22) break;
         if (LVar3 == 0) {
           lVar61 = (longlong)p_Var64[0x11].Blink - (longlong)p_Var64[0x11].Flink;
         }
         else {
           lVar61 = (longlong)p_Var64[0x13].Flink - (longlong)p_Var64[0x12].Blink;
         }
-        p_Var57 = p_Var44;
-        if (uVar62 < (uint)(lVar61 >> 4)) {
+        p_Var46 = p_Var45;
+        if (uVar22 < (uint)(lVar61 >> 4)) {
           if (LVar3 == 0) {
-            p_Var57 = p_Var64[0x11].Flink;
+            p_Var46 = p_Var64[0x11].Flink;
           }
           else {
-            p_Var57 = p_Var64[0x12].Blink;
-          }
-          p_Var57 = p_Var57[(longlong)p_Var50].Flink;
-        }
-        p_Var29 = p_Var56;
-        uVar23 = local_410[0];
-        if ((*(char *)((longlong)&p_Var57[10].Blink + 2) != '\0') &&
-           (cVar17 = (*(code *)p_Var57->Flink[0xf].Flink)(p_Var57,local_408), uVar23 = local_410[0],
-           cVar17 != '\0')) {
+            p_Var46 = p_Var64[0x12].Blink;
+          }
+          p_Var46 = p_Var46[(longlong)p_Var44].Flink;
+        }
+        uVar62 = local_414;
+        if ((*(char *)((longlong)&p_Var46[10].Blink + 2) != '\0') &&
+           (cVar17 = (*(code *)p_Var46->Flink[0xf].Flink)(p_Var46,local_408), p_Var44 = local_400,
+           uVar62 = local_414, cVar17 != '\0')) {
           local_180.Flink = (_LIST_ENTRY *)0xa;
           local_180.Blink = p_Var64;
-          uVar23 = CWatermarkStack<CDrawingContext::StackStateEntry,64,2,10>::Push
+          uVar26 = CWatermarkStack<CDrawingContext::StackStateEntry,64,2,10>::Push
                              ((CWatermarkStack<CDrawingContext::StackStateEntry,64,2,10> *)
-                              &p_Var56[0x10].Blink,(StackStateEntry *)&local_180);
-          local_414 = uVar23;
-          if ((int)uVar23 < 0) {
-            MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,uVar23,0x18a5,(void *)0x0);
-            uVar62 = local_414;
+                              &local_400[0x10].Blink,(StackStateEntry *)&local_180);
+          local_410 = uVar26;
+          if ((int)uVar26 < 0) {
+            MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,uVar26,0x18cd,(void *)0x0);
           }
           else {
-            uVar23 = CLightStack::Push((CLightStack *)&local_3e8[0x1a].Blink,
-                                       (CCompositionLight *)p_Var57,LVar3);
-            p_Var29 = local_3e8;
-            p_Var64 = local_400;
-            local_414 = uVar23;
-            if (-1 < (int)uVar23) goto LAB_9;
-            MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,uVar23,0x18a8,(void *)0x0);
+            local_410 = CLightStack::Push((CLightStack *)&p_Var44[0x1a].Blink,
+                                          (CCompositionLight *)p_Var46,LVar3);
+            p_Var64 = local_3f8;
+            uVar62 = local_410;
+            if (-1 < (int)local_410) goto LAB_9;
+            MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,local_410,0x18d0,(void *)0x0)
+            ;
             CWatermarkStack<CDrawingContext::StackStateEntry,64,2,10>::Pop
                       ((CWatermarkStack<CDrawingContext::StackStateEntry,64,2,10> *)
-                       &p_Var56[0x10].Blink,(StackStateEntry *)0x0);
-            uVar62 = uVar23;
-          }
+                       &p_Var44[0x10].Blink,(StackStateEntry *)0x0);
+            uVar26 = local_410;
+          }
+          uVar62 = local_410;
           pcVar60 = (char *)0x0;
           pcVar59 = (code *)0x0;
-          local_410[0] = uVar62;
-          MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,uVar23,0x1582,(void *)0x0);
-          pbVar63 = local_3f8;
-          p_Var50 = local_408;
-          p_Var56 = local_3e8;
-          p_Var64 = local_400;
+          local_414 = local_410;
+          MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,uVar26,0x15aa,(void *)0x0);
+          pbVar63 = local_3f0;
+          p_Var46 = local_408;
+          p_Var64 = local_3f8;
+          p_Var57 = local_400;
           goto LAB_10;
         }
 LAB_9:
-        local_410[0] = uVar23;
-        p_Var50 = (_LIST_ENTRY *)(ulonglong)(uVar62 + 1);
-        p_Var56 = p_Var29;
-      }
-    }
-  }
-  p_Var57 = p_Var56[0x29].Flink;
-  p_Var29 = (&p_Var57->Flink)[*(int *)&p_Var56[0x2a].Blink - 1];
+        local_414 = uVar62;
+        p_Var44 = (_LIST_ENTRY *)(ulonglong)(uVar22 + 1);
+      }
+    }
+  }
+  p_Var29 = p_Var57[0x29].Flink;
+  p_Var44 = (&p_Var29->Flink)[*(int *)&p_Var57[0x2a].Blink - 1];
   p_Var30 = p_Var64->Flink[10].Flink;
-  local_2a8.Blink = p_Var29;
+  local_2a8.Blink = p_Var44;
   if (p_Var30 == (_LIST_ENTRY *)CResource::GetProcessAttributionNoRef) {
     if (p_Var64[3].Blink != (_LIST_ENTRY *)0x0) {
       p_Var30 = p_Var64[3].Blink[4].Flink;
       goto LAB_11;
     }
   }
   else {
     if (p_Var30 == (_LIST_ENTRY *)CWindowNode::GetProcessAttributionNoRef) {
       p_Var30 = p_Var64[0x33].Blink;
     }
     else {
       p_Var30 = (_LIST_ENTRY *)(*(code *)p_Var30)(p_Var64);
     }
 LAB_11:
-    if ((p_Var30 != (_LIST_ENTRY *)0x0) && (p_Var30 != p_Var29)) {
-      uVar23 = *(uint *)((longlong)&p_Var56[0x11].Flink + 4);
+    if ((p_Var30 != (_LIST_ENTRY *)0x0) && (p_Var30 != p_Var44)) {
+      uVar62 = *(uint *)((longlong)&p_Var57[0x11].Flink + 4);
       local_180.Flink = (_LIST_ENTRY *)&DAT_12;
       local_2a8.Blink = p_Var30;
       local_180.Blink = p_Var64;
-      if (*(uint *)&p_Var56[0x11].Flink == uVar23) {
-        uVar71 = (ulonglong)uVar23 * 2;
+      if (*(uint *)&p_Var57[0x11].Flink == uVar62) {
+        uVar71 = (ulonglong)uVar62 * 2;
         if (uVar71 < 0x100000000) {
           uVar69 = uVar71 & 0xffffffff;
           if ((uint)uVar71 < 0x41) {
             uVar69 = 0x40;
           }
-          uVar71 = (ulonglong)*(uint *)&p_Var56[0x11].Flink << 4;
+          uVar71 = (ulonglong)*(uint *)&p_Var57[0x11].Flink << 4;
           if (uVar71 < 0x100000000) {
             if (((int)uVar69 == 0) ||
                (auVar6._8_8_ = 0, auVar6._0_8_ = uVar69,
                SUB168((ZEXT416(0) << 0x40 | ZEXT816(0xffffffffffffffff)) / auVar6,0) < 0x11)) {
               lVar28 = -0x7ff8ffa9;
             }
             else {
-              p_Var64 = _Alloc_DefaultHeap__SAPEAX_K_Z(uVar69 << 4);
-              if (p_Var64 != (_LIST_ENTRY *)0x0) {
-                memcpy(p_Var64,p_Var56[0x10].Blink,uVar71 & 0xffffffff);
-                _Free_DefaultHeap__SAXPEAX_Z(p_Var56[0x10].Blink);
-                p_Var56[0x10].Blink = p_Var64;
-                *(int *)((longlong)&p_Var56[0x11].Flink + 4) = (int)uVar69;
-                p_Var64 = local_400;
+              p_Var44 = _Alloc_DefaultHeap__SAPEAX_K_Z(uVar69 << 4);
+              p_Var57 = local_400;
+              if (p_Var44 != (_LIST_ENTRY *)0x0) {
+                memcpy(p_Var44,local_400[0x10].Blink,uVar71 & 0xffffffff);
+                _Free_DefaultHeap__SAXPEAX_Z(p_Var57[0x10].Blink);
+                p_Var57[0x10].Blink = p_Var44;
+                *(int *)((longlong)&p_Var57[0x11].Flink + 4) = (int)uVar69;
+                p_Var64 = local_3f8;
                 goto LAB_13;
               }
               lVar28 = -0x7ff8fff2;
             }
-            uVar23 = 0x68;
+            uVar62 = 0x68;
             goto LAB_14;
           }
-          uVar23 = 0x65;
+          uVar62 = 0x65;
         }
         else {
-          uVar23 = 0x62;
+          uVar62 = 0x62;
         }
         lVar28 = -0x7ff8fdea;
 LAB_14:
         wil::details::in1diag3::Return_Hr
-                  (unaff_retaddr,uVar23,
+                  (unaff_retaddr,uVar62,
                    "onecoreuap\\windows\\DWM\\dwmcore\\common\\WatermarkStack.inl",lVar28);
         wil::details::in1diag3::Return_Hr
                   (unaff_retaddr,0x83,
                    "onecoreuap\\windows\\DWM\\dwmcore\\common\\WatermarkStack.inl",lVar28);
                     /* WARNING: Subroutine does not return */
         ModuleFailFastForHRESULT(lVar28,unaff_retaddr);
       }
 LAB_13:
-      p_Var57 = p_Var56[0x10].Blink;
-      p_Var29 = p_Var56 + 0x29;
-      uVar23 = *(uint *)&p_Var56[0x11].Flink;
-      p_Var57[uVar23].Flink = local_180.Flink;
-      p_Var57[uVar23].Blink = local_180.Blink;
-      uVar62 = *(int *)&p_Var56[0x11].Flink + 1;
-      *(uint *)&p_Var56[0x11].Flink = uVar62;
-      uVar23 = *(uint *)((longlong)&p_Var56[0x11].Blink + 4);
-      if (uVar23 <= uVar62) {
-        uVar23 = uVar62;
-      }
-      *(uint *)((longlong)&p_Var56[0x11].Blink + 4) = uVar23;
-      uVar62 = *(uint *)&p_Var56[0x2a].Blink;
-      uVar23 = uVar62 + 1;
-      p_Var57 = (_LIST_ENTRY *)(ulonglong)uVar23;
+      p_Var29 = p_Var57[0x10].Blink;
+      p_Var44 = p_Var57 + 0x29;
+      uVar62 = *(uint *)&p_Var57[0x11].Flink;
+      p_Var29[uVar62].Flink = local_180.Flink;
+      p_Var29[uVar62].Blink = local_180.Blink;
+      uVar22 = *(int *)&p_Var57[0x11].Flink + 1;
+      *(uint *)&p_Var57[0x11].Flink = uVar22;
+      uVar62 = *(uint *)((longlong)&p_Var57[0x11].Blink + 4);
+      if (uVar62 <= uVar22) {
+        uVar62 = uVar22;
+      }
+      *(uint *)((longlong)&p_Var57[0x11].Blink + 4) = uVar62;
+      uVar22 = *(uint *)&p_Var57[0x2a].Blink;
+      uVar62 = uVar22 + 1;
+      p_Var29 = (_LIST_ENTRY *)(ulonglong)uVar62;
       local_280.Flink = p_Var30;
-      if (uVar23 < uVar62) {
+      if (uVar62 < uVar22) {
         lVar28 = -0x7ff8fdea;
-        uVar23 = 0xb5;
+        uVar62 = 0xb5;
 LAB_15:
-        MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar28,uVar23,(void *)0x0);
+        MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar28,uVar62,(void *)0x0);
                     /* WARNING: Subroutine does not return */
         ModuleFailFastForHRESULT(lVar28,unaff_retaddr);
       }
-      if (*(uint *)((longlong)&p_Var56[0x2a].Flink + 4) < uVar23) {
+      if (*(uint *)((longlong)&p_Var57[0x2a].Flink + 4) < uVar62) {
         in_R9 = (_LIST_ENTRY *)0x0;
         local_308.Flink = &local_280;
         in_stack_fffffffffffffbb8 = &local_308;
         lVar28 = DynArrayImpl<0>::Grow
-                           ((DynArrayImpl<0> *)p_Var29,8,1,0,&in_stack_fffffffffffffbb8->Flink);
+                           ((DynArrayImpl<0> *)p_Var44,8,1,0,&in_stack_fffffffffffffbb8->Flink);
         if (lVar28 < 0) {
-          uVar23 = 0xc0;
+          uVar62 = 0xc0;
           goto LAB_15;
         }
-        p_Var57 = p_Var29->Flink;
+        p_Var29 = p_Var44->Flink;
         *(_LIST_ENTRY **)
-         ((longlong)&p_Var57->Flink + (ulonglong)(uint)(*(int *)&p_Var56[0x2a].Blink << 3)) =
+         ((longlong)&p_Var29->Flink + (ulonglong)(uint)(*(int *)&p_Var57[0x2a].Blink << 3)) =
              (local_308.Flink)->Flink;
-        *(int *)&p_Var56[0x2a].Blink = *(int *)&p_Var56[0x2a].Blink + 1;
+        *(int *)&p_Var57[0x2a].Blink = *(int *)&p_Var57[0x2a].Blink + 1;
       }
       else {
-        (&p_Var29->Flink->Flink)[uVar62] = p_Var30;
-        *(uint *)&p_Var56[0x2a].Blink = uVar23;
+        (&p_Var44->Flink->Flink)[uVar22] = p_Var30;
+        *(uint *)&p_Var57[0x2a].Blink = uVar62;
       }
       if ((g_HeatMaps_TargetProcessId != 0) &&
          (g_HeatMaps_TargetProcessId == *(uint *)&p_Var30[8].Flink)) {
-        SetHeatMapForCurrentNode((CDrawingContext *)p_Var56);
-      }
-    }
-  }
-  pbVar63 = local_3f8;
-  *local_3f8 = true;
+        SetHeatMapForCurrentNode((CDrawingContext *)p_Var57);
+      }
+    }
+  }
+  pbVar63 = local_3f0;
+  *local_3f0 = true;
   if (((ulonglong)p_Var64[6].Blink & 0xc00) != 0) {
     CVisual::GetHeatMapProperties((CVisual *)p_Var64);
-    p_Var57 = (_LIST_ENTRY *)&local_2d0;
+    p_Var29 = (_LIST_ENTRY *)&local_2d0;
     fStack_2cc = SUB84(local_180.Flink,0);
     fStack_2c8 = (float)((ulonglong)local_180.Flink >> 0x20);
     p_Stack_2c4 = local_180.Blink;
     local_2d0 = (float)(2 - (uint)(((ulonglong)p_Var64[6].Blink & 0x400) != 0));
     local_2bc = local_170;
     uVar62 = CWatermarkStack<CComposition::HeatMapOptions,2,2,2>::Push
                        ((CWatermarkStack<CComposition::HeatMapOptions,2,2,2> *)
-                        (g_pComposition + 0x1898),(HeatMapOptions *)p_Var57);
+                        (g_pComposition + 0x1898),(HeatMapOptions *)p_Var29);
     local_414 = uVar62;
-    local_410[0] = uVar62;
+    local_410 = uVar62;
     if ((int)uVar62 < 0) {
       pcVar59 = (code *)0x0;
       pcVar60 = (char *)0x0;
-      MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,uVar62,0x15ab,(void *)0x0);
+      MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,uVar62,0x15d3,(void *)0x0);
       goto LAB_10;
     }
   }
   uVar62 = *(uint *)&p_Var64[6].Flink >> 0x18;
+  p_Var44 = p_Var57;
   if ((uVar62 & 0x7f) == 0) {
 LAB_16:
-    uVar23 = local_414;
+    uVar62 = local_410;
     local_308.Blink = (_LIST_ENTRY *)0x0;
     uStack_2f8 = 0;
-    if (*(int *)&p_Var56[0x12].Blink == 0) {
-      pCVar52 = &CMILMatrix::Identity;
+    if (*(int *)&p_Var44[0x12].Blink == 0) {
+      pCVar53 = &CMILMatrix::Identity;
     }
     else {
-      pCVar52 = (CMILMatrix_IdentityType *)
-                ((ulonglong)(*(int *)&p_Var56[0x12].Blink - 1) * 0x44 +
-                (longlong)p_Var56[0x12].Flink);
-    }
-    pcVar59 = (code *)(p_Var56[0x1f0].Blink + 5);
-    if (p_Var64 != p_Var56[0x1f0].Blink[4].Blink) {
+      pCVar53 = (CMILMatrix_IdentityType *)
+                ((ulonglong)(*(int *)&p_Var44[0x12].Blink - 1) * 0x44 +
+                (longlong)p_Var44[0x12].Flink);
+    }
+    pcVar59 = (code *)(p_Var44[0x1f0].Blink + 5);
+    if (p_Var64 != p_Var44[0x1f0].Blink[4].Blink) {
       pcVar59 = (code *)&p_Var64[9].Blink;
     }
     pcVar60 = local_198;
     CMILMatrix::Transform3DBoundsHelper<1>
-              ((CMILMatrix *)pCVar52,
+              ((CMILMatrix *)pCVar53,
                (TMil3DRect<float,TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,D3D_RECT_F,MilPointAndSizeF,RectUniqueness::NotNeeded>
                 *)pcVar59,
                (TMil3DRect<float,class_TMilRect_<float,struct_D2D_RECT_F,struct_D3D_RECT_F,struct_D2D_POINTANDSIZE_F,struct_RectUniqueness::NotNeeded>,struct_D3D_RECT_F,struct_MilPointAndSizeF,struct_RectUniqueness::NotNeeded>
                 *)pcVar60);
     fVar95 = uStack_190._4_4_;
     fVar96 = (float)local_198._4_4_;
     fVar97 = (float)uStack_190;
     fVar98 = (float)local_198._0_4_;
     if (((float)local_198._0_4_ < (float)uStack_190) && ((float)local_198._4_4_ < uStack_190._4_4_))
     {
-      uVar62 = (int)*(uint *)&p_Var64[6].Flink >> 8;
-      if ((uVar62 & 2) == 0) {
-        if ((uVar62 & 8) == 0) {
+      uVar22 = (int)*(uint *)&p_Var64[6].Flink >> 8;
+      if ((uVar22 & 2) == 0) {
+        if ((uVar22 & 8) == 0) {
           fVar72 = 0.0;
         }
         else {
           fVar72 = 0.5;
         }
       }
       else {
         fVar72 = 4.0;
       }
       if ((*(uint *)&p_Var64[6].Flink >> 0xc & 1) != 0) {
         fVar72 = fVar72 + 0.5;
       }
       if (fVar72 != 0.0) {
         fVar98 = (float)local_198._0_4_ - fVar72;
         fVar96 = (float)local_198._4_4_ - fVar72;
         fVar97 = (float)uStack_190 + fVar72;
         fVar95 = uStack_190._4_4_ + fVar72;
         local_198._4_4_ = fVar96;
         local_198._0_4_ = fVar98;
         uStack_190 = (_LIST_ENTRY *)CONCAT44(fVar95,fVar97);
         local_188 = CONCAT44(local_188._4_4_ + 0.0,(float)local_188 + 0.0);
       }
     }
-    p_Var44 = p_Var56[0x2f].Flink;
-    if (p_Var44 == p_Var56[0x2e].Blink) {
+    p_Var45 = p_Var44[0x2f].Flink;
+    if (p_Var45 == p_Var44[0x2e].Blink) {
       fVar93 = -3.4028235e+38;
       fVar94 = -3.4028235e+38;
       fVar72 = 3.4028235e+38;
       fVar82 = 3.4028235e+38;
     }
     else {
-      if (p_Var44[-0xc].Blink == (_LIST_ENTRY *)0x0) {
-        p_Var57 = (p_Var44[-0xc].Flink)->Flink[5].Blink;
+      if (p_Var45[-0xc].Blink == (_LIST_ENTRY *)0x0) {
+        p_Var57 = (p_Var45[-0xc].Flink)->Flink[5].Blink;
         pcVar59 = (code *)&local_2b0;
         if (p_Var57 ==
             (_LIST_ENTRY *)
             IDeviceSurfaceMethodsT<CD2DBitmap,IDeviceTextureTarget>::GetSize_adjustor_184__) {
           IDeviceSurfaceMethodsT<CD2DBitmap,IDeviceTextureTarget>::GetSize_adjustor_184__
-                    ((IDeviceSurfaceMethodsT<CD2DBitmap,IDeviceTextureTarget> *)p_Var44[-0xc].Flink)
+                    ((IDeviceSurfaceMethodsT<CD2DBitmap,IDeviceTextureTarget> *)p_Var45[-0xc].Flink)
           ;
         }
         else {
           (*(code *)p_Var57)();
         }
         fVar72 = (float)local_2b0;
         fVar82 = (float)local_2ac;
         fVar95 = uStack_190._4_4_;
         fVar96 = (float)local_198._4_4_;
         fVar97 = (float)uStack_190;
         fVar98 = (float)local_198._0_4_;
       }
-      else if (*(int *)&p_Var56[0xc3].Flink == 0) {
+      else if (*(int *)&p_Var44[0xc3].Flink == 0) {
         fVar93 = -3.4028235e+38;
         fVar94 = -3.4028235e+38;
         fVar72 = 3.4028235e+38;
         fVar82 = 3.4028235e+38;
       }
       else {
-        p_Var44 = p_Var56[0xc2].Blink + (*(int *)&p_Var56[0xc3].Flink - 1);
-        fVar93 = *(float *)&p_Var44->Flink;
-        fVar94 = *(float *)((longlong)&p_Var44->Flink + 4);
-        fVar72 = *(float *)&p_Var44->Blink;
-        fVar82 = *(float *)((longlong)&p_Var44->Blink + 4);
-      }
-      if ((p_Var56[0x2f].Flink != p_Var56[0x2e].Blink) &&
-         (p_Var56[0x2f].Flink[-0xb].Blink != (_LIST_ENTRY *)0x0)) {
-        if (*(int *)&p_Var56[0xc4].Blink == 0) {
+        p_Var45 = p_Var44[0xc2].Blink + (*(int *)&p_Var44[0xc3].Flink - 1);
+        fVar93 = *(float *)&p_Var45->Flink;
+        fVar94 = *(float *)((longlong)&p_Var45->Flink + 4);
+        fVar72 = *(float *)&p_Var45->Blink;
+        fVar82 = *(float *)((longlong)&p_Var45->Blink + 4);
+      }
+      if ((p_Var44[0x2f].Flink != p_Var44[0x2e].Blink) &&
+         (p_Var44[0x2f].Flink[-0xb].Blink != (_LIST_ENTRY *)0x0)) {
+        if (*(int *)&p_Var44[0xc4].Blink == 0) {
           fVar73 = -3.4028235e+38;
           fVar75 = -3.4028235e+38;
           fVar76 = 3.4028235e+38;
           fVar79 = 3.4028235e+38;
         }
         else {
-          p_Var44 = p_Var56[0xc4].Flink + (*(int *)&p_Var56[0xc4].Blink - 1);
-          fVar73 = *(float *)&p_Var44->Flink;
-          fVar75 = *(float *)((longlong)&p_Var44->Flink + 4);
-          fVar76 = *(float *)&p_Var44->Blink;
-          fVar79 = *(float *)((longlong)&p_Var44->Blink + 4);
+          p_Var45 = p_Var44[0xc4].Flink + (*(int *)&p_Var44[0xc4].Blink - 1);
+          fVar73 = *(float *)&p_Var45->Flink;
+          fVar75 = *(float *)((longlong)&p_Var45->Flink + 4);
+          fVar76 = *(float *)&p_Var45->Blink;
+          fVar79 = *(float *)((longlong)&p_Var45->Blink + 4);
         }
         if (fVar93 < fVar73) {
           fVar93 = fVar73;
         }
         if (fVar94 < fVar75) {
           fVar94 = fVar75;
         }
         if (fVar76 < fVar72) {
           fVar72 = fVar76;
         }
         if (fVar79 < fVar82) {
           fVar82 = fVar79;
         }
         if ((fVar72 <= fVar93) || (fVar82 <= fVar94)) {
           fVar82 = 0.0;
           fVar72 = 0.0;
           fVar94 = 0.0;
           fVar93 = 0.0;
         }
       }
     }
     if (fVar98 < fVar93) {
       local_198._0_4_ = fVar93;
       fVar98 = fVar93;
     }
     if (fVar96 < fVar94) {
       local_198._4_4_ = fVar94;
       fVar96 = fVar94;
     }
     if (fVar72 < fVar97) {
       uStack_190 = (_LIST_ENTRY *)CONCAT44(uStack_190._4_4_,fVar72);
       fVar97 = fVar72;
     }
     if (fVar82 < fVar95) {
       uStack_190 = (_LIST_ENTRY *)CONCAT44(fVar82,(float)uStack_190);
       fVar95 = fVar82;
     }
     bVar67 = local_188._4_4_ <= (float)local_188;
     if (fVar97 <= fVar98) {
       bVar67 = bVar67 + 1;
     }
     if (fVar95 <= fVar96) {
       bVar67 = bVar67 + 1;
     }
     if (1 < bVar67) {
       fVar95 = 0.0;
       uStack_190 = (_LIST_ENTRY *)0x0;
       fVar97 = 0.0;
       fVar96 = 0.0;
       local_198 = (undefined1  [8])0x0;
       fVar98 = 0.0;
       local_188 = 0;
     }
     local_290 = CONCAT44(fVar96,fVar98);
     uStack_288 = CONCAT44(fVar95,fVar97);
     if ((fVar98 < fVar97) && (fVar96 < fVar95)) {
-      local_180.Flink = p_Var56[0x1f1].Blink;
+      local_180.Flink = p_Var44[0x1f1].Blink;
       if (local_180.Flink != (_LIST_ENTRY *)0x0) {
-        iVar26 = *(int *)&local_180.Flink[0x60].Flink;
-        local_310 = (_LIST_ENTRY *)CONCAT44(local_310._4_4_,iVar26);
+        iVar25 = *(int *)&local_180.Flink[0x60].Flink;
+        local_310 = (_LIST_ENTRY *)CONCAT44(local_310._4_4_,iVar25);
         while( true ) {
-          p_Var44 = p_Var64;
+          p_Var45 = p_Var64;
           uVar20 = SUB81(in_stack_fffffffffffffbb8,0);
           pcVar60 = (char *)0x0;
-          local_2f0 = p_Var44;
-          if (p_Var44 == (_LIST_ENTRY *)0x0) break;
-          cVar17 = (*(code *)p_Var50->Flink[0xb].Blink)(p_Var50);
+          local_2f0 = p_Var45;
+          if (p_Var45 == (_LIST_ENTRY *)0x0) break;
+          cVar17 = (*(code *)p_Var46->Flink[0xb].Blink)(p_Var46);
           if (cVar17 == '\0') {
-            p_Var56 = p_Var44[0xe].Blink;
-            if (*(int *)&p_Var56->Flink < 0) {
-              uVar23 = *(uint *)((longlong)&p_Var56->Flink + 4);
-              pcVar59 = (code *)(ulonglong)uVar23;
-              pp_Var54 = &p_Var56->Blink;
-              uVar62 = 0;
+            p_Var44 = p_Var45[0xe].Blink;
+            if (*(int *)&p_Var44->Flink < 0) {
+              uVar62 = *(uint *)((longlong)&p_Var44->Flink + 4);
+              pcVar59 = (code *)(ulonglong)uVar62;
+              pp_Var55 = &p_Var44->Blink;
+              uVar22 = 0;
               p_Var64 = (_LIST_ENTRY *)pcVar60;
-              if (uVar23 != 0) {
+              if (uVar62 != 0) {
                 do {
-                  uVar62 = (uint)p_Var64;
-                  if (*(char *)pp_Var54 == '\x01') break;
-                  uVar62 = uVar62 + 1;
-                  p_Var64 = (_LIST_ENTRY *)(ulonglong)uVar62;
-                  pp_Var54 = (_LIST_ENTRY **)((longlong)pp_Var54 + 1);
-                } while (uVar62 < uVar23);
-              }
-              uVar23 = *(uint *)((longlong)&p_Var56->Flink + 4);
-              if (uVar62 < uVar23) {
-                pcVar59 = (code *)((ulonglong)uVar23 + 0xf);
+                  uVar22 = (uint)p_Var64;
+                  if (*(char *)pp_Var55 == '\x01') break;
+                  uVar22 = uVar22 + 1;
+                  p_Var64 = (_LIST_ENTRY *)(ulonglong)uVar22;
+                  pp_Var55 = (_LIST_ENTRY **)((longlong)pp_Var55 + 1);
+                } while (uVar22 < uVar62);
+              }
+              uVar62 = *(uint *)((longlong)&p_Var44->Flink + 4);
+              if (uVar22 < uVar62) {
+                pcVar59 = (code *)((ulonglong)uVar62 + 0xf);
                 pcVar60 = (char *)((NodeEffects *)
-                                   (((ulonglong)uVar62 * 8 - (ulonglong)((uint)pcVar59 & 7)) +
-                                   (longlong)pcVar59) + (longlong)p_Var56);
-              }
-              p_Var56 = ((_LIST_ENTRY *)pcVar60)->Flink;
-              if (p_Var56 != (_LIST_ENTRY *)0x0) {
-                for (p_Var64 = p_Var56->Flink; p_Var64 != p_Var56; p_Var64 = p_Var64->Flink) {
+                                   (((ulonglong)uVar22 * 8 - (ulonglong)((uint)pcVar59 & 7)) +
+                                   (longlong)pcVar59) + (longlong)p_Var44);
+              }
+              p_Var44 = ((_LIST_ENTRY *)pcVar60)->Flink;
+              if (p_Var44 != (_LIST_ENTRY *)0x0) {
+                for (p_Var64 = p_Var44->Flink; p_Var64 != p_Var44; p_Var64 = p_Var64->Flink) {
                   p_Var57 = p_Var64 + -0x16;
-                  if (p_Var64[2].Flink == p_Var50) goto LAB_17;
+                  if (p_Var64[2].Flink == p_Var46) goto LAB_17;
                   local_308.Flink = p_Var57;
                 }
               }
             }
           }
           else {
-            p_Var57 = (_LIST_ENTRY *)&p_Var44[0x14].Blink;
+            p_Var57 = (_LIST_ENTRY *)&p_Var45[0x14].Blink;
 LAB_17:
             local_308.Flink = p_Var57;
             if (p_Var57 != (_LIST_ENTRY *)0x0) {
-              p_Var56 = p_Var57[0xb].Flink;
+              p_Var44 = p_Var57[0xb].Flink;
               local_318 = (_LIST_ENTRY *)0x0;
-              while ((p_Var64 = local_318, p_Var56 != p_Var57[0xb].Blink &&
-                     (p_Var64 = p_Var56->Flink, *(int *)&p_Var56->Flink[2].Flink != iVar26))) {
-                p_Var56 = (_LIST_ENTRY *)&p_Var56->Blink;
+              while ((p_Var64 = local_318, p_Var44 != p_Var57[0xb].Blink &&
+                     (p_Var64 = p_Var44->Flink, *(int *)&p_Var44->Flink[2].Flink != iVar25))) {
+                p_Var44 = (_LIST_ENTRY *)&p_Var44->Blink;
               }
               local_318 = p_Var64;
               pcVar59 = (code *)p_Var57[0xf].Blink[1].Blink[0x37].Blink;
               local_2d0 = SUB84(pcVar59,0);
               fStack_2cc = (float)((ulonglong)pcVar59 >> 0x20);
               in_R9 = local_318;
               if (p_Var57[0xd].Blink != (_LIST_ENTRY *)pcVar59) {
                 p_Var57[0xd].Blink = (_LIST_ENTRY *)pcVar59;
-                p_Var56 = p_Var57[0xb].Flink;
-                p_Var50 = local_408;
-                if (1 < (ulonglong)((longlong)p_Var57[0xb].Blink - (longlong)p_Var56 >> 3)) {
-                  while (p_Var56 != p_Var57[0xb].Blink) {
-                    if (((p_Var56->Flink == in_R9) ||
-                        (p_Var50 = p_Var56->Flink[1].Flink, p_Var50 == (_LIST_ENTRY *)0x0)) ||
-                       ((ulonglong)((longlong)pcVar59 - (longlong)p_Var50) < 10)) {
-                      p_Var56 = (_LIST_ENTRY *)&p_Var56->Blink;
+                p_Var44 = p_Var57[0xb].Flink;
+                p_Var46 = local_408;
+                if (1 < (ulonglong)((longlong)p_Var57[0xb].Blink - (longlong)p_Var44 >> 3)) {
+                  while (p_Var44 != p_Var57[0xb].Blink) {
+                    if (((p_Var44->Flink == in_R9) ||
+                        (p_Var46 = p_Var44->Flink[1].Flink, p_Var46 == (_LIST_ENTRY *)0x0)) ||
+                       ((ulonglong)((longlong)pcVar59 - (longlong)p_Var46) < 10)) {
+                      p_Var44 = (_LIST_ENTRY *)&p_Var44->Blink;
                     }
                     else {
-                      p_Var64 = p_Var57[0xb].Flink;
-                      local_2d8 = (_LIST_ENTRY *)((longlong)p_Var56 - (longlong)p_Var64 >> 3);
-                      p_Var56 = (_LIST_ENTRY *)
-                                ((longlong)p_Var57[0xb].Blink - (longlong)p_Var64 >> 3);
-                      p_Var50 = (_LIST_ENTRY *)((longlong)&local_2d8->Flink + 1);
-                      if (p_Var56 < p_Var50) goto LAB_18;
-                      pp_Var54 = &p_Var64->Flink + (longlong)p_Var56;
-                      if (p_Var50 != p_Var56) {
+                      p_Var46 = p_Var57[0xb].Flink;
+                      local_2d8 = (_LIST_ENTRY *)((longlong)p_Var44 - (longlong)p_Var46 >> 3);
+                      p_Var64 = (_LIST_ENTRY *)
+                                ((longlong)p_Var57[0xb].Blink - (longlong)p_Var46 >> 3);
+                      p_Var44 = (_LIST_ENTRY *)((longlong)&local_2d8->Flink + 1);
+                      if (p_Var64 < p_Var44) goto LAB_18;
+                      pp_Var55 = &p_Var46->Flink + (longlong)p_Var64;
+                      if (p_Var44 != p_Var64) {
                         if ((local_2d8 != (_LIST_ENTRY *)0x0) &&
-                           (((p_Var64 == (_LIST_ENTRY *)0x0 ||
+                           (((p_Var46 == (_LIST_ENTRY *)0x0 ||
                              (((longlong)local_2d8 < 0 && (local_2d8 != (_LIST_ENTRY *)0x0)))) ||
-                            ((0 < (longlong)local_2d8 && (p_Var56 < local_2d8))))))
+                            ((0 < (longlong)local_2d8 && (p_Var64 < local_2d8))))))
                         goto LAB_19;
-                        pp_Var65 = &p_Var64->Blink + (longlong)&local_2d8->Flink;
-                        uVar71 = (longlong)pp_Var54 - (longlong)pp_Var65 >> 3;
+                        pp_Var65 = &p_Var46->Blink + (longlong)&local_2d8->Flink;
+                        uVar71 = (longlong)pp_Var55 - (longlong)pp_Var65 >> 3;
                         if ((((longlong)uVar71 < 0) && (local_2d8 < (_LIST_ENTRY *)-uVar71)) ||
                            ((0 < (longlong)uVar71 &&
-                            ((ulonglong)((longlong)p_Var56 - (longlong)local_2d8) < uVar71))))
+                            ((ulonglong)((longlong)p_Var64 - (longlong)local_2d8) < uVar71))))
                         goto LAB_19;
-                        lVar61 = ((longlong)local_2d8 * 8 - (longlong)pp_Var65) + (longlong)p_Var64;
-                        while (in_R9 = local_318, p_Var44 = local_2f0, p_Var57 = local_308.Flink,
-                              pp_Var65 != pp_Var54) {
-                          p_Var44 = *pp_Var65;
+                        lVar61 = ((longlong)local_2d8 * 8 - (longlong)pp_Var65) + (longlong)p_Var46;
+                        while (in_R9 = local_318, p_Var45 = local_2f0, p_Var57 = local_308.Flink,
+                              pp_Var65 != pp_Var55) {
+                          p_Var45 = *pp_Var65;
                           *pp_Var65 = (_LIST_ENTRY *)0x0;
                           pCVar4 = *(CSurfaceDrawListBrush **)((longlong)pp_Var65 + lVar61);
-                          *(_LIST_ENTRY **)((longlong)pp_Var65 + lVar61) = p_Var44;
+                          *(_LIST_ENTRY **)((longlong)pp_Var65 + lVar61) = p_Var45;
                           if (pCVar4 == (CSurfaceDrawListBrush *)0x0) {
 LAB_20:
                             pp_Var65 = pp_Var65 + 1;
                           }
                           else {
                             pcVar59 = (code *)**(undefined8 **)pCVar4;
                             if (pcVar59 == CWindowOcclusionInfo::_scalar_deleting_destructor_) {
                               operator_delete__(pCVar4,0x38);
                               goto LAB_20;
                             }
                             if (pcVar59 == CSurfaceDrawListBrush::_scalar_deleting_destructor_) {
                               CSurfaceDrawListBrush::_scalar_deleting_destructor_(pCVar4,1);
                               pp_Var65 = pp_Var65 + 1;
                             }
                             else {
                               if (pcVar59 !=
                                   CMultiPrimitiveDrawListBrush::_scalar_deleting_destructor_) {
                                 (*pcVar59)();
                                 goto LAB_20;
                               }
                               CMultiPrimitiveDrawListBrush::_scalar_deleting_destructor_
                                         ((CMultiPrimitiveDrawListBrush *)pCVar4,1);
                               pp_Var65 = pp_Var65 + 1;
                             }
                           }
                         }
                       }
-                      p_Var56 = local_2d8;
-                      for (puVar31 = pp_Var54 + -1; (_LIST_ENTRY **)puVar31 != pp_Var54;
+                      p_Var44 = local_2d8;
+                      for (puVar31 = pp_Var55 + -1; (_LIST_ENTRY **)puVar31 != pp_Var55;
                           puVar31 = puVar31 + 1) {
                         pCVar4 = (CSurfaceDrawListBrush *)*puVar31;
                         if (pCVar4 != (CSurfaceDrawListBrush *)0x0) {
                           pcVar59 = (code *)**(undefined8 **)pCVar4;
                           if (pcVar59 == CWindowOcclusionInfo::_scalar_deleting_destructor_) {
                             operator_delete__(pCVar4,0x38);
                           }
                           else if (pcVar59 == CSurfaceDrawListBrush::_scalar_deleting_destructor_) {
                             CSurfaceDrawListBrush::_scalar_deleting_destructor_(pCVar4,1);
                           }
                           else if (pcVar59 ==
                                    CMultiPrimitiveDrawListBrush::_scalar_deleting_destructor_) {
                             CMultiPrimitiveDrawListBrush::_scalar_deleting_destructor_
                                       ((CMultiPrimitiveDrawListBrush *)pCVar4,1);
                           }
                           else {
                             (*pcVar59)();
                           }
                         }
                         in_R9 = local_318;
-                        p_Var44 = local_2f0;
+                        p_Var45 = local_2f0;
                         p_Var57 = local_308.Flink;
                       }
                       p_Var57[0xb].Blink = (_LIST_ENTRY *)&p_Var57[0xb].Blink[-1].Blink;
                       pcVar59 = (code *)CONCAT44(fStack_2cc,local_2d0);
-                      p_Var56 = (_LIST_ENTRY *)(&(p_Var57[0xb].Flink)->Flink + (longlong)p_Var56);
+                      p_Var44 = (_LIST_ENTRY *)(&(p_Var57[0xb].Flink)->Flink + (longlong)p_Var44);
                     }
                   }
-                  p_Var50 = local_408;
-                  iVar26 = (int)local_310;
+                  p_Var46 = local_408;
+                  iVar25 = (int)local_310;
                 }
               }
               uVar20 = SUB81(in_stack_fffffffffffffbb8,0);
-              p_Var56 = (_LIST_ENTRY *)0x0;
+              p_Var44 = (_LIST_ENTRY *)0x0;
               if (in_R9 != (_LIST_ENTRY *)0x0) {
-                p_Var44 = p_Var56;
+                p_Var45 = p_Var44;
                 if (g_pComposition != (CComposition *)0x0) {
-                  p_Var44 = *(_LIST_ENTRY **)(g_pComposition + 0x378);
+                  p_Var45 = *(_LIST_ENTRY **)(g_pComposition + 0x378);
                 }
-                if (in_R9[1].Flink == p_Var44) goto LAB_21;
+                if (in_R9[1].Flink == p_Var45) goto LAB_21;
                 p_Var64 = in_R9->Flink[1].Flink;
                 if (p_Var64 == (_LIST_ENTRY *)COcclusionInfo::UpdateZFromValidParent) {
                   p_Var64 = in_R9->Blink;
                   goto LAB_22;
                 }
-                (*(code *)p_Var64)(in_R9,p_Var50,p_Var44);
-                pcVar59 = (code *)p_Var50;
+                (*(code *)p_Var64)(in_R9,p_Var46,p_Var45);
+                pcVar59 = (code *)p_Var46;
                 in_R9 = local_318;
                 goto LAB_21;
               }
             }
           }
           p_Var64 = (_LIST_ENTRY *)0x0;
-          if (p_Var44 != p_Var50[4].Blink) {
-            p_Var64 = p_Var44[5].Blink;
+          if (p_Var45 != p_Var46[4].Blink) {
+            p_Var64 = p_Var45[5].Blink;
           }
         }
         goto LAB_23;
       }
       goto LAB_24;
     }
-    uVar62 = *(uint *)&p_Var56[199].Blink;
-    if (uVar62 != 0) {
-      uVar62 = uVar62 - 1;
-      *(uint *)&p_Var56[199].Blink = uVar62;
-    }
-    uVar25 = *(uint *)((longlong)&p_Var56[199].Blink + 4);
-    if (uVar62 == uVar25) {
-      uVar71 = (ulonglong)uVar25 * 2;
+    uVar22 = *(uint *)&p_Var44[199].Blink;
+    if (uVar22 != 0) {
+      uVar22 = uVar22 - 1;
+      *(uint *)&p_Var44[199].Blink = uVar22;
+    }
+    uVar26 = *(uint *)((longlong)&p_Var44[199].Blink + 4);
+    if (uVar22 == uVar26) {
+      uVar71 = (ulonglong)uVar26 * 2;
       if (uVar71 < 0x100000000) {
-        uVar25 = (uint)uVar71;
-        if (uVar25 < 0x41) {
-          uVar25 = 0x40;
-        }
-        if ((uVar25 == 0) ||
-           (auVar10._8_8_ = 0, auVar10._0_8_ = CONCAT44(0,uVar25),
+        uVar26 = (uint)uVar71;
+        if (uVar26 < 0x41) {
+          uVar26 = 0x40;
+        }
+        if ((uVar26 == 0) ||
+           (auVar10._8_8_ = 0, auVar10._0_8_ = CONCAT44(0,uVar26),
            SUB168((ZEXT816(0) << 0x40 | ZEXT816(0xffffffffffffffff)) / auVar10,0) < 2)) {
           lVar28 = -0x7ff8ffa9;
         }
         else {
-          p_Var44 = _Alloc_DefaultHeap__SAPEAX_K_Z(CONCAT44(0,uVar25));
-          if (p_Var44 != (_LIST_ENTRY *)0x0) {
-            pcVar59 = (code *)p_Var56[199].Flink;
-            pcVar60 = (char *)(ulonglong)uVar62;
-            memcpy(p_Var44,pcVar59,(size_t)pcVar60);
-            _Free_DefaultHeap__SAXPEAX_Z(p_Var56[199].Flink);
-            p_Var56[199].Flink = p_Var44;
-            *(uint *)((longlong)&p_Var56[199].Blink + 4) = uVar25;
+          p_Var45 = _Alloc_DefaultHeap__SAPEAX_K_Z(CONCAT44(0,uVar26));
+          if (p_Var45 != (_LIST_ENTRY *)0x0) {
+            pcVar59 = (code *)p_Var44[199].Flink;
+            pcVar60 = (char *)(ulonglong)uVar22;
+            memcpy(p_Var45,pcVar59,(size_t)pcVar60);
+            _Free_DefaultHeap__SAXPEAX_Z(p_Var44[199].Flink);
+            p_Var44[199].Flink = p_Var45;
+            *(uint *)((longlong)&p_Var44[199].Blink + 4) = uVar26;
             goto LAB_25;
           }
           lVar28 = -0x7ff8fff2;
         }
-        uVar62 = 0x68;
+        uVar22 = 0x68;
       }
       else {
         lVar28 = -0x7ff8fdea;
-        uVar62 = 0x62;
+        uVar22 = 0x62;
       }
       wil::details::in1diag3::Return_Hr
-                (unaff_retaddr,uVar62,
+                (unaff_retaddr,uVar22,
                  "onecoreuap\\windows\\DWM\\dwmcore\\common\\WatermarkStack.inl",lVar28);
       pcVar60 = "onecoreuap\\windows\\DWM\\dwmcore\\common\\WatermarkStack.inl";
       pcVar59 = (code *)0x83;
       wil::details::in1diag3::Return_Hr
                 (unaff_retaddr,0x83,"onecoreuap\\windows\\DWM\\dwmcore\\common\\WatermarkStack.inl",
                  lVar28);
     }
     else {
 LAB_25:
       *(undefined1 *)
-       ((longlong)&(p_Var56[199].Flink)->Flink + (ulonglong)*(uint *)&p_Var56[199].Blink) = 0;
-      uVar25 = *(int *)&p_Var56[199].Blink + 1;
-      *(uint *)&p_Var56[199].Blink = uVar25;
-      uVar62 = *(uint *)((longlong)&p_Var56[200].Flink + 4);
-      if (uVar62 <= uVar25) {
-        uVar62 = uVar25;
-      }
-      *(uint *)((longlong)&p_Var56[200].Flink + 4) = uVar62;
+       ((longlong)&(p_Var44[199].Flink)->Flink + (ulonglong)*(uint *)&p_Var44[199].Blink) = 0;
+      uVar26 = *(int *)&p_Var44[199].Blink + 1;
+      *(uint *)&p_Var44[199].Blink = uVar26;
+      uVar22 = *(uint *)((longlong)&p_Var44[200].Flink + 4);
+      if (uVar22 <= uVar26) {
+        uVar22 = uVar26;
+      }
+      *(uint *)((longlong)&p_Var44[200].Flink + 4) = uVar22;
     }
     goto LAB_6;
   }
-  uVar25 = (int)(*(uint *)&p_Var64[6].Flink << 8) >> 0x1c;
+  uVar22 = (int)(*(uint *)&p_Var64[6].Flink << 8) >> 0x1c;
   local_318 = (_LIST_ENTRY *)CONCAT44(local_318._4_4_,*(undefined4 *)&p_Var64[0xc].Blink);
   if (*(int *)(g_pComposition + 0x18a0) == 0) {
 LAB_26:
     uVar66 = *(undefined4 *)((longlong)&p_Var64[0xc].Blink + 4);
   }
   else {
     if (*(int *)(g_pComposition + 0x18a0) != 0) {
       uVar71 = (ulonglong)(*(int *)(g_pComposition + 0x18a0) - 1);
-      p_Var57 = (_LIST_ENTRY *)(uVar71 * 3);
-      p_Var44 = (_LIST_ENTRY *)(*(longlong *)(g_pComposition + 0x1898) + uVar71 * 0x18);
-    }
-    if (*(int *)&p_Var44->Flink != 2) goto LAB_26;
-  }
-  local_410[0] = *(uint *)&p_Var64[0xd].Flink;
+      p_Var29 = (_LIST_ENTRY *)(uVar71 * 3);
+      p_Var45 = (_LIST_ENTRY *)(*(longlong *)(g_pComposition + 0x1898) + uVar71 * 0x18);
+    }
+    if (*(int *)&p_Var45->Flink != 2) goto LAB_26;
+  }
+  local_414 = *(uint *)&p_Var64[0xd].Flink;
   local_310 = (_LIST_ENTRY *)
               CONCAT44(local_310._4_4_,*(undefined4 *)((longlong)&p_Var64[0xd].Flink + 4));
-  uVar23 = *(uint *)((longlong)&local_3e8[0x11].Flink + 4);
+  uVar26 = *(uint *)((longlong)&p_Var57[0x11].Flink + 4);
   local_180.Flink = (_LIST_ENTRY *)0x9;
   _Size = g_pComposition;
-  p_Var44 = local_3e8;
   uVar68 = *(undefined4 *)&p_Var64[0xc].Blink;
   local_180.Blink = p_Var64;
-  if (*(uint *)&local_3e8[0x11].Flink == uVar23) {
-    uVar71 = (ulonglong)uVar23 * 2;
+  if (*(uint *)&p_Var57[0x11].Flink == uVar26) {
+    uVar71 = (ulonglong)uVar26 * 2;
     if (uVar71 < 0x100000000) {
       uVar69 = uVar71 & 0xffffffff;
       if ((uint)uVar71 < 0x41) {
         uVar69 = 0x40;
       }
-      uVar71 = (ulonglong)*(uint *)&local_3e8[0x11].Flink << 4;
-      if (0xffffffff < uVar71) {
-        uVar62 = 0x65;
-        goto LAB_27;
-      }
-      if (((int)uVar69 == 0) ||
-         (auVar11._8_8_ = 0, auVar11._0_8_ = uVar69,
-         SUB168((ZEXT416(0) << 0x40 | ZEXT816(0xffffffffffffffff)) / auVar11,0) < 0x11)) {
-        uVar23 = 0x80070057;
+      uVar71 = (ulonglong)*(uint *)&p_Var57[0x11].Flink << 4;
+      if (uVar71 < 0x100000000) {
+        if (((int)uVar69 == 0) ||
+           (auVar11._8_8_ = 0, auVar11._0_8_ = uVar69,
+           SUB168((ZEXT416(0) << 0x40 | ZEXT816(0xffffffffffffffff)) / auVar11,0) < 0x11)) {
+          uVar26 = 0x80070057;
+        }
+        else {
+          p_Var45 = _Alloc_DefaultHeap__SAPEAX_K_Z(uVar69 << 4);
+          p_Var57 = local_400;
+          if (p_Var45 != (_LIST_ENTRY *)0x0) {
+            _Size = (CComposition *)(uVar71 & 0xffffffff);
+            p_Var29 = local_400[0x10].Blink;
+            memcpy(p_Var45,p_Var29,(size_t)_Size);
+            _Free_DefaultHeap__SAXPEAX_Z(p_Var57[0x10].Blink);
+            p_Var57[0x10].Blink = p_Var45;
+            *(int *)((longlong)&p_Var57[0x11].Flink + 4) = (int)uVar69;
+            uVar68 = (uint)local_318;
+            goto LAB_27;
+          }
+          uVar26 = 0x8007000e;
+        }
+        wil::details::in1diag3::Return_Hr
+                  (unaff_retaddr,0x68,
+                   "onecoreuap\\windows\\DWM\\dwmcore\\common\\WatermarkStack.inl",uVar26);
+        p_Var44 = local_400;
       }
       else {
-        p_Var50 = _Alloc_DefaultHeap__SAPEAX_K_Z(uVar69 << 4);
-        p_Var44 = local_3e8;
-        if (p_Var50 != (_LIST_ENTRY *)0x0) {
-          _Size = (CComposition *)(uVar71 & 0xffffffff);
-          p_Var57 = local_3e8[0x10].Blink;
-          memcpy(p_Var50,p_Var57,(size_t)_Size);
-          _Free_DefaultHeap__SAXPEAX_Z(p_Var44[0x10].Blink);
-          p_Var44[0x10].Blink = p_Var50;
-          *(int *)((longlong)&p_Var44[0x11].Flink + 4) = (int)uVar69;
-          uVar68 = (uint)local_318;
-          goto LAB_28;
-        }
-        uVar23 = 0x8007000e;
-      }
-      uVar62 = 0x68;
+        uVar26 = 0x80070216;
+        wil::details::in1diag3::Return_Hr
+                  (unaff_retaddr,0x65,
+                   "onecoreuap\\windows\\DWM\\dwmcore\\common\\WatermarkStack.inl",-0x7ff8fdea);
+        p_Var44 = local_400;
+      }
     }
     else {
-      uVar62 = 0x62;
-LAB_27:
-      uVar23 = 0x80070216;
-    }
-    wil::details::in1diag3::Return_Hr
-              (unaff_retaddr,uVar62,"onecoreuap\\windows\\DWM\\dwmcore\\common\\WatermarkStack.inl",
-               uVar23);
+      uVar26 = 0x80070216;
+      wil::details::in1diag3::Return_Hr
+                (unaff_retaddr,0x62,"onecoreuap\\windows\\DWM\\dwmcore\\common\\WatermarkStack.inl",
+                 -0x7ff8fdea);
+    }
     wil::details::in1diag3::Return_Hr
               (unaff_retaddr,0x83,"onecoreuap\\windows\\DWM\\dwmcore\\common\\WatermarkStack.inl",
-               uVar23);
-    MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,uVar23,0x120b,(void *)0x0);
-    local_410[0] = uVar23;
+               uVar26);
+    MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,uVar26,0x1233,(void *)0x0);
   }
   else {
-LAB_28:
-    uVar23 = *(uint *)&p_Var44[0x11].Flink;
-    p_Var50 = p_Var44 + 0x2d;
-    p_Var56 = p_Var44[0x10].Blink;
-    p_Var56[uVar23].Flink = local_180.Flink;
-    p_Var56[uVar23].Blink = local_180.Blink;
-    uVar51 = *(int *)&p_Var44[0x11].Flink + 1;
-    *(uint *)&p_Var44[0x11].Flink = uVar51;
-    uVar23 = *(uint *)((longlong)&p_Var44[0x11].Blink + 4);
-    if (uVar23 <= uVar51) {
-      uVar23 = uVar51;
-    }
-    *(uint *)((longlong)&p_Var44[0x11].Blink + 4) = uVar23;
-    local_180.Flink = p_Var44[0xf].Flink;
-    local_180.Blink = (_LIST_ENTRY *)((ulonglong)*(uint *)&p_Var44[0xf].Blink << 0x20);
-    local_170 = *(undefined4 *)((longlong)&p_Var44[0xf].Blink + 4);
-    uStack_16c = *(undefined4 *)&p_Var44[0x10].Flink;
-    p_Var56 = p_Var44;
-    if ((*(int *)&p_Var44[0x2d].Blink != *(int *)((longlong)&p_Var44[0x2d].Blink + 4)) ||
-       (in_stack_fffffffffffffbb8 = p_Var50,
-       uVar23 = CWatermarkStack<CDrawingContext::SavedRenderOptions,64,2,10>::Grow
-                          ((CWatermarkStack<CDrawingContext::SavedRenderOptions,64,2,10> *)p_Var50,
-                           (__uint64)p_Var57,(uint)_Size,(uint)in_R9,&p_Var50->Flink),
-       p_Var56 = local_3e8, -1 < (int)uVar23)) {
-      uVar23 = *(uint *)&p_Var44[0x2d].Blink;
-      p_Var50 = p_Var50->Flink;
-      puVar31 = (undefined8 *)((longlong)p_Var50 + (ulonglong)uVar23 * 0x18);
+LAB_27:
+    uVar26 = *(uint *)&p_Var57[0x11].Flink;
+    p_Var45 = p_Var57 + 0x2d;
+    p_Var44 = p_Var57[0x10].Blink;
+    p_Var44[uVar26].Flink = local_180.Flink;
+    p_Var44[uVar26].Blink = local_180.Blink;
+    uVar52 = *(int *)&p_Var57[0x11].Flink + 1;
+    *(uint *)&p_Var57[0x11].Flink = uVar52;
+    uVar26 = *(uint *)((longlong)&p_Var57[0x11].Blink + 4);
+    if (uVar26 <= uVar52) {
+      uVar26 = uVar52;
+    }
+    *(uint *)((longlong)&p_Var57[0x11].Blink + 4) = uVar26;
+    local_180.Flink = p_Var57[0xf].Flink;
+    local_180.Blink = (_LIST_ENTRY *)((ulonglong)*(uint *)&p_Var57[0xf].Blink << 0x20);
+    local_170 = *(undefined4 *)((longlong)&p_Var57[0xf].Blink + 4);
+    uStack_16c = *(undefined4 *)&p_Var57[0x10].Flink;
+    p_Var44 = p_Var57;
+    if ((*(int *)&p_Var57[0x2d].Blink != *(int *)((longlong)&p_Var57[0x2d].Blink + 4)) ||
+       (in_stack_fffffffffffffbb8 = p_Var45,
+       uVar26 = CWatermarkStack<CDrawingContext::SavedRenderOptions,64,2,10>::Grow
+                          ((CWatermarkStack<CDrawingContext::SavedRenderOptions,64,2,10> *)p_Var45,
+                           (__uint64)p_Var29,(uint)_Size,(uint)in_R9,&p_Var45->Flink),
+       p_Var44 = local_400, -1 < (int)uVar26)) {
+      uVar26 = *(uint *)&p_Var57[0x2d].Blink;
+      p_Var45 = p_Var45->Flink;
+      puVar31 = (undefined8 *)((longlong)p_Var45 + (ulonglong)uVar26 * 0x18);
       *puVar31 = local_180.Flink;
       puVar31[1] = local_180.Blink;
-      *(ulonglong *)((longlong)p_Var50 + (ulonglong)uVar23 * 0x18 + 0x10) =
+      *(ulonglong *)((longlong)p_Var45 + (ulonglong)uVar26 * 0x18 + 0x10) =
            CONCAT44(uStack_16c,local_170);
-      *(int *)&p_Var44[0x2d].Blink = *(int *)&p_Var44[0x2d].Blink + 1;
-      uVar23 = *(uint *)((longlong)&p_Var44[0x2e].Flink + 4);
-      if (uVar23 <= *(uint *)&p_Var44[0x2d].Blink) {
-        uVar23 = *(uint *)&p_Var44[0x2d].Blink;
-      }
-      *(uint *)((longlong)&p_Var44[0x2e].Flink + 4) = uVar23;
+      *(int *)&p_Var57[0x2d].Blink = *(int *)&p_Var57[0x2d].Blink + 1;
+      uVar26 = *(uint *)((longlong)&p_Var57[0x2e].Flink + 4);
+      if (uVar26 <= *(uint *)&p_Var57[0x2d].Blink) {
+        uVar26 = *(uint *)&p_Var57[0x2d].Blink;
+      }
+      *(uint *)((longlong)&p_Var57[0x2e].Flink + 4) = uVar26;
       if ((uVar62 & 2) != 0) {
-        if ((uVar25 & 0xff000000) == 0xff000000) {
-          *(uint *)&p_Var56[0xf].Flink = uVar25 & 0xffffff;
-        }
-        else if (*(char *)((longlong)&p_Var56[0x1f0].Flink + 2) == '\0') {
-          *(uint *)&p_Var56[0xf].Flink = uVar25;
+        if ((uVar22 & 0xff000000) == 0xff000000) {
+          *(uint *)&p_Var44[0xf].Flink = uVar22 & 0xffffff;
+        }
+        else if (*(char *)((longlong)&p_Var44[0x1f0].Flink + 2) == '\0') {
+          *(uint *)&p_Var44[0xf].Flink = uVar22;
         }
       }
       if ((uVar62 & 4) != 0) {
-        *(undefined4 *)((longlong)&p_Var56[0xf].Flink + 4) = uVar68;
+        *(undefined4 *)((longlong)&p_Var44[0xf].Flink + 4) = uVar68;
       }
       if ((uVar62 & 8) != 0) {
-        *(undefined4 *)&p_Var56[0xf].Blink = uVar66;
+        *(undefined4 *)&p_Var44[0xf].Blink = uVar66;
       }
       if ((uVar62 & 0x10) != 0) {
-        *(uint *)((longlong)&local_3e8[0xf].Blink + 4) = local_410[0];
-      }
+        *(uint *)((longlong)&p_Var44[0xf].Blink + 4) = local_414;
+      }
+      local_410 = 0;
       local_414 = 0;
-      local_410[0] = 0;
-      p_Var50 = local_408;
-      p_Var56 = local_3e8;
-      p_Var64 = local_400;
+      p_Var46 = local_408;
+      p_Var64 = local_3f8;
       if ((uVar62 & 0x20) != 0) {
-        *(int *)&local_3e8[0x10].Flink = (int)local_310;
+        *(int *)&p_Var44[0x10].Flink = (int)local_310;
       }
       goto LAB_16;
     }
     wil::details::in1diag3::Return_Hr
               (unaff_retaddr,0x83,"onecoreuap\\windows\\DWM\\dwmcore\\common\\WatermarkStack.inl",
-               uVar23);
-    local_414 = uVar23;
-    MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,uVar23,0x1219,(void *)0x0);
-    local_410[0] = local_414;
-    if (*(int *)&local_3e8[0x11].Flink != 0) {
-      *(int *)&local_3e8[0x11].Flink = *(int *)&local_3e8[0x11].Flink + -1;
-    }
-  }
-  uVar25 = 0x15ba;
-  p_Var56 = local_3e8;
-  goto LAB_29;
+               uVar26);
+    MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,uVar26,0x1241,(void *)0x0);
+    p_Var44 = local_400;
+    if (*(int *)&local_400[0x11].Flink != 0) {
+      *(int *)&local_400[0x11].Flink = *(int *)&local_400[0x11].Flink + -1;
+    }
+  }
+  uVar22 = 0x15e2;
+  local_414 = uVar26;
+  goto LAB_28;
 LAB_22:
   do {
     uVar20 = SUB81(in_stack_fffffffffffffbb8,0);
-    p_Var57 = p_Var56;
-    if (p_Var64 != p_Var50[4].Blink) {
+    p_Var57 = p_Var44;
+    if (p_Var64 != p_Var46[4].Blink) {
       p_Var57 = p_Var64[5].Blink;
     }
     if (p_Var57 == (_LIST_ENTRY *)0x0) goto LAB_21;
     p_Var64 = (_LIST_ENTRY *)0x0;
-    cVar17 = (*(code *)p_Var50->Flink[0xb].Blink)(p_Var50);
+    cVar17 = (*(code *)p_Var46->Flink[0xb].Blink)(p_Var46);
     if (cVar17 == '\0') {
       p_Var29 = p_Var57[0xe].Blink;
       if (*(int *)&p_Var29->Flink < 0) {
-        uVar23 = *(uint *)((longlong)&p_Var29->Flink + 4);
-        pp_Var54 = &p_Var29->Blink;
-        uVar25 = 0;
-        uVar62 = 0;
-        if (uVar23 != 0) {
+        uVar62 = *(uint *)((longlong)&p_Var29->Flink + 4);
+        pp_Var55 = &p_Var29->Blink;
+        uVar26 = 0;
+        uVar22 = 0;
+        if (uVar62 != 0) {
           do {
-            uVar25 = uVar62;
-            if (*(char *)pp_Var54 == '\x01') break;
-            uVar25 = uVar25 + 1;
-            pp_Var54 = (_LIST_ENTRY **)((longlong)pp_Var54 + 1);
-            uVar62 = uVar25;
-          } while (uVar25 < uVar23);
-        }
-        uVar23 = *(uint *)((longlong)&p_Var29->Flink + 4);
-        p_Var30 = p_Var56;
-        if (uVar25 < uVar23) {
-          lVar61 = (ulonglong)uVar23 + 0xf;
+            uVar26 = uVar22;
+            if (*(char *)pp_Var55 == '\x01') break;
+            uVar26 = uVar26 + 1;
+            pp_Var55 = (_LIST_ENTRY **)((longlong)pp_Var55 + 1);
+            uVar22 = uVar26;
+          } while (uVar26 < uVar62);
+        }
+        uVar62 = *(uint *)((longlong)&p_Var29->Flink + 4);
+        p_Var30 = p_Var44;
+        if (uVar26 < uVar62) {
+          lVar61 = (ulonglong)uVar62 + 0xf;
           p_Var30 = (_LIST_ENTRY *)
                     ((longlong)p_Var29 +
-                    lVar61 + ((ulonglong)uVar25 * 8 - (ulonglong)((uint)lVar61 & 7)));
+                    lVar61 + ((ulonglong)uVar26 * 8 - (ulonglong)((uint)lVar61 & 7)));
         }
         p_Var29 = p_Var30->Flink;
         if (p_Var29 != (_LIST_ENTRY *)0x0) {
           for (p_Var30 = p_Var29->Flink; p_Var30 != p_Var29; p_Var30 = p_Var30->Flink) {
-            if (p_Var30[2].Flink == p_Var50) {
+            if (p_Var30[2].Flink == p_Var46) {
               p_Var64 = p_Var30 + -0x16;
               break;
             }
           }
         }
       }
     }
     else {
       p_Var64 = (_LIST_ENTRY *)&p_Var57[0x14].Blink;
     }
-    p_Var50 = p_Var64[0xb].Flink;
+    p_Var46 = p_Var64[0xb].Flink;
     pcVar59 = (code *)(ulonglong)*(uint *)&local_318[2].Flink;
-    while ((p_Var29 = p_Var56, p_Var50 != p_Var64[0xb].Blink &&
-           (p_Var29 = p_Var50->Flink, *(uint *)&p_Var29[2].Flink != *(uint *)&local_318[2].Flink)))
+    while ((p_Var29 = p_Var44, p_Var46 != p_Var64[0xb].Blink &&
+           (p_Var29 = p_Var46->Flink, *(uint *)&p_Var29[2].Flink != *(uint *)&local_318[2].Flink)))
     {
-      p_Var50 = (_LIST_ENTRY *)&p_Var50->Blink;
-    }
-    p_Var50 = p_Var64[0xf].Blink[1].Blink[0x37].Blink;
-    if (p_Var64[0xd].Blink != p_Var50) {
-      p_Var64[0xd].Blink = p_Var50;
+      p_Var46 = (_LIST_ENTRY *)&p_Var46->Blink;
+    }
+    p_Var46 = p_Var64[0xf].Blink[1].Blink[0x37].Blink;
+    if (p_Var64[0xd].Blink != p_Var46) {
+      p_Var64[0xd].Blink = p_Var46;
       p_Var30 = p_Var64[0xb].Flink;
       if (1 < (ulonglong)((longlong)p_Var64[0xb].Blink - (longlong)p_Var30 >> 3)) {
         while (p_Var30 != p_Var64[0xb].Blink) {
           if (((p_Var30->Flink == p_Var29) ||
               (pcVar59 = (code *)p_Var30->Flink[1].Flink,
               (_LIST_ENTRY *)pcVar59 == (_LIST_ENTRY *)0x0)) ||
-             ((ulonglong)((longlong)p_Var50 - (longlong)pcVar59) < 10)) {
+             ((ulonglong)((longlong)p_Var46 - (longlong)pcVar59) < 10)) {
             p_Var30 = (_LIST_ENTRY *)&p_Var30->Blink;
           }
           else {
             pcVar59 = (code *)&local_230;
             local_280.Blink = p_Var30;
             puVar31 = (undefined8 *)
                       detail::
                       vector_facade<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,detail::buffer_impl<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,1,1,detail::liberal_expansion_policy>_>
                       ::erase((vector_facade<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,detail::buffer_impl<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,1,1,detail::liberal_expansion_policy>_>
                                *)(p_Var64 + 0xb),pcVar59,&local_280.Blink);
             p_Var30 = (_LIST_ENTRY *)*puVar31;
           }
         }
       }
     }
     uVar20 = SUB81(in_stack_fffffffffffffbb8,0);
     p_Var64 = p_Var57;
     in_R9 = local_318;
-    p_Var50 = local_408;
-  } while ((p_Var29 == (_LIST_ENTRY *)0x0) || (p_Var29[1].Flink != p_Var44));
+    p_Var46 = local_408;
+  } while ((p_Var29 == (_LIST_ENTRY *)0x0) || (p_Var29[1].Flink != p_Var45));
   *(undefined4 *)((longlong)&local_318[2].Flink + 4) = *(undefined4 *)&p_Var29[2].Blink;
   *(undefined4 *)&local_318[2].Blink = *(undefined4 *)&p_Var29[2].Blink;
-  local_318[1].Flink = p_Var44;
+  local_318[1].Flink = p_Var45;
 LAB_21:
   pcVar60 = (char *)(ulonglong)*(uint *)((longlong)&in_R9[2].Flink + 4);
 LAB_23:
-  uVar23 = (uint)in_R9;
+  uVar62 = (uint)in_R9;
   if ((fVar98 < fVar97) && (fVar96 < fVar95)) {
-    p_Var56 = local_3e8;
-    p_Var64 = local_400;
+    p_Var64 = local_3f8;
+    p_Var44 = local_400;
     if ((int)pcVar60 != 0) {
       pcVar59 = (code *)&local_2d0;
       p_Stack_2c4 = (_LIST_ENTRY *)CONCAT44(p_Stack_2c4._4_4_,fVar95);
       local_2d0 = fVar98;
       fStack_2cc = fVar96;
       fStack_2c8 = fVar97;
       bVar19 = CArrayBasedCoverageSet::IsCovered
                          ((CArrayBasedCoverageSet *)&local_180.Flink[0x26].Blink,
                           (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
                            *)pcVar59,(int)pcVar60,SUB81(in_R9,0),(bool)uVar20);
-      p_Var56 = local_3e8;
-      p_Var64 = local_400;
-      if (bVar19) goto LAB_30;
+      p_Var64 = local_3f8;
+      p_Var44 = local_400;
+      if (bVar19) goto LAB_29;
     }
 LAB_24:
-    p_Var44 = p_Var56[0x1f1].Blink;
-    local_2d0 = SUB84(p_Var44,0);
-    fStack_2cc = (float)((ulonglong)p_Var44 >> 0x20);
-    if (p_Var44 != (_LIST_ENTRY *)0x0) {
-      uVar23 = *(uint *)&p_Var44[0x60].Flink;
-      local_318 = (_LIST_ENTRY *)CONCAT44(local_318._4_4_,uVar23);
-      p_Var44 = local_400;
+    p_Var45 = p_Var44[0x1f1].Blink;
+    local_2d0 = SUB84(p_Var45,0);
+    fStack_2cc = (float)((ulonglong)p_Var45 >> 0x20);
+    if (p_Var45 != (_LIST_ENTRY *)0x0) {
+      uVar62 = *(uint *)&p_Var45[0x60].Flink;
+      local_318 = (_LIST_ENTRY *)CONCAT44(local_318._4_4_,uVar62);
+      p_Var45 = local_3f8;
       while( true ) {
-        p_Var50 = p_Var44;
-        plVar45 = (longlong *)0x0;
-        uVar62 = 0;
-        p_Var44 = local_408;
-        local_2f0 = p_Var50;
-        if (p_Var50 == (_LIST_ENTRY *)0x0) break;
+        p_Var44 = p_Var45;
+        plVar47 = (longlong *)0x0;
+        uVar22 = 0;
+        p_Var45 = local_408;
+        local_2f0 = p_Var44;
+        if (p_Var44 == (_LIST_ENTRY *)0x0) break;
         cVar17 = (*(code *)local_408->Flink[0xb].Blink)(local_408);
         if (cVar17 == '\0') {
-          p_Var44 = p_Var50[0xe].Blink;
-          if (*(int *)&p_Var44->Flink < 0) {
-            uVar25 = *(uint *)((longlong)&p_Var44->Flink + 4);
-            pp_Var54 = &p_Var44->Blink;
-            plVar46 = plVar45;
-            if (uVar25 != 0) {
+          p_Var45 = p_Var44[0xe].Blink;
+          if (*(int *)&p_Var45->Flink < 0) {
+            uVar26 = *(uint *)((longlong)&p_Var45->Flink + 4);
+            pp_Var55 = &p_Var45->Blink;
+            plVar48 = plVar47;
+            if (uVar26 != 0) {
               do {
-                uVar62 = (uint)plVar46;
-                if (*(char *)pp_Var54 == '\x01') break;
-                uVar62 = uVar62 + 1;
-                plVar46 = (longlong *)(ulonglong)uVar62;
-                pp_Var54 = (_LIST_ENTRY **)((longlong)pp_Var54 + 1);
-              } while (uVar62 < uVar25);
-            }
-            uVar25 = *(uint *)((longlong)&p_Var44->Flink + 4);
-            if (uVar62 < uVar25) {
-              lVar61 = (ulonglong)uVar25 + 0xf;
-              plVar45 = (longlong *)
-                        ((longlong)p_Var44 +
-                        lVar61 + ((ulonglong)uVar62 * 8 - (ulonglong)((uint)lVar61 & 7)));
-            }
-            puVar31 = (undefined8 *)*plVar45;
+                uVar22 = (uint)plVar48;
+                if (*(char *)pp_Var55 == '\x01') break;
+                uVar22 = uVar22 + 1;
+                plVar48 = (longlong *)(ulonglong)uVar22;
+                pp_Var55 = (_LIST_ENTRY **)((longlong)pp_Var55 + 1);
+              } while (uVar22 < uVar26);
+            }
+            uVar26 = *(uint *)((longlong)&p_Var45->Flink + 4);
+            if (uVar22 < uVar26) {
+              lVar61 = (ulonglong)uVar26 + 0xf;
+              plVar47 = (longlong *)
+                        ((longlong)p_Var45 +
+                        lVar61 + ((ulonglong)uVar22 * 8 - (ulonglong)((uint)lVar61 & 7)));
+            }
+            puVar31 = (undefined8 *)*plVar47;
             if (puVar31 != (undefined8 *)0x0) {
               for (puVar36 = (undefined8 *)*puVar31; puVar36 != puVar31;
                   puVar36 = (undefined8 *)*puVar36) {
-                p_Var44 = (_LIST_ENTRY *)(puVar36 + -0x2c);
-                if ((_LIST_ENTRY *)puVar36[4] == local_408) goto LAB_31;
-                local_308.Flink = p_Var44;
+                p_Var45 = (_LIST_ENTRY *)(puVar36 + -0x2c);
+                if ((_LIST_ENTRY *)puVar36[4] == local_408) goto LAB_30;
+                local_308.Flink = p_Var45;
               }
             }
           }
         }
         else {
-          p_Var44 = (_LIST_ENTRY *)&p_Var50[0x14].Blink;
-LAB_31:
-          local_308.Flink = p_Var44;
-          if (p_Var44 != (_LIST_ENTRY *)0x0) {
-            p_Var56 = p_Var44[0xb].Flink;
+          p_Var45 = (_LIST_ENTRY *)&p_Var44[0x14].Blink;
+LAB_30:
+          local_308.Flink = p_Var45;
+          if (p_Var45 != (_LIST_ENTRY *)0x0) {
+            p_Var46 = p_Var45[0xb].Flink;
             local_310 = (_LIST_ENTRY *)0x0;
-            while ((p_Var64 = local_310, p_Var56 != p_Var44[0xb].Blink &&
-                   (p_Var64 = p_Var56->Flink, *(uint *)&p_Var56->Flink[2].Flink != uVar23))) {
-              p_Var56 = (_LIST_ENTRY *)&p_Var56->Blink;
+            while ((p_Var64 = local_310, p_Var46 != p_Var45[0xb].Blink &&
+                   (p_Var64 = p_Var46->Flink, *(uint *)&p_Var46->Flink[2].Flink != uVar62))) {
+              p_Var46 = (_LIST_ENTRY *)&p_Var46->Blink;
             }
             local_310 = p_Var64;
-            p_Var56 = p_Var44[0xf].Blink[1].Blink[0x37].Blink;
+            p_Var46 = p_Var45[0xf].Blink[1].Blink[0x37].Blink;
             p_Var64 = local_310;
-            local_180.Flink = p_Var56;
-            if (p_Var44[0xd].Blink != p_Var56) {
-              p_Var44[0xd].Blink = p_Var56;
-              p_Var57 = p_Var44[0xb].Flink;
-              if (1 < (ulonglong)((longlong)p_Var44[0xb].Blink - (longlong)p_Var57 >> 3)) {
-                while (p_Var57 != p_Var44[0xb].Blink) {
+            local_180.Flink = p_Var46;
+            if (p_Var45[0xd].Blink != p_Var46) {
+              p_Var45[0xd].Blink = p_Var46;
+              p_Var57 = p_Var45[0xb].Flink;
+              if (1 < (ulonglong)((longlong)p_Var45[0xb].Blink - (longlong)p_Var57 >> 3)) {
+                while (p_Var57 != p_Var45[0xb].Blink) {
                   if (((p_Var57->Flink == p_Var64) ||
-                      (p_Var50 = p_Var57->Flink[1].Flink, p_Var50 == (_LIST_ENTRY *)0x0)) ||
-                     ((ulonglong)((longlong)p_Var56 - (longlong)p_Var50) < 10)) {
+                      (p_Var44 = p_Var57->Flink[1].Flink, p_Var44 == (_LIST_ENTRY *)0x0)) ||
+                     ((ulonglong)((longlong)p_Var46 - (longlong)p_Var44) < 10)) {
                     p_Var57 = (_LIST_ENTRY *)&p_Var57->Blink;
                   }
                   else {
-                    p_Var56 = p_Var44[0xb].Flink;
-                    local_2d8 = (_LIST_ENTRY *)((longlong)p_Var57 - (longlong)p_Var56 >> 3);
-                    p_Var57 = (_LIST_ENTRY *)((longlong)p_Var44[0xb].Blink - (longlong)p_Var56 >> 3)
+                    p_Var46 = p_Var45[0xb].Flink;
+                    local_2d8 = (_LIST_ENTRY *)((longlong)p_Var57 - (longlong)p_Var46 >> 3);
+                    p_Var57 = (_LIST_ENTRY *)((longlong)p_Var45[0xb].Blink - (longlong)p_Var46 >> 3)
                     ;
-                    p_Var50 = (_LIST_ENTRY *)((longlong)&local_2d8->Flink + 1);
-                    if (p_Var57 < p_Var50) {
+                    p_Var44 = (_LIST_ENTRY *)((longlong)&local_2d8->Flink + 1);
+                    if (p_Var57 < p_Var44) {
 LAB_18:
                       std::_Xoverflow_error("overflow");
                       pcVar59 = (code *)swi(3);
                       lVar28 = (*pcVar59)();
                       return lVar28;
                     }
-                    pp_Var54 = &p_Var56->Flink + (longlong)p_Var57;
-                    if (p_Var50 != p_Var57) {
+                    pp_Var55 = &p_Var46->Flink + (longlong)p_Var57;
+                    if (p_Var44 != p_Var57) {
                       if ((local_2d8 != (_LIST_ENTRY *)0x0) &&
-                         (((p_Var56 == (_LIST_ENTRY *)0x0 ||
+                         (((p_Var46 == (_LIST_ENTRY *)0x0 ||
                            (((longlong)local_2d8 < 0 && (local_2d8 != (_LIST_ENTRY *)0x0)))) ||
                           ((0 < (longlong)local_2d8 && (p_Var57 < local_2d8)))))) {
 LAB_19:
                     /* WARNING: Subroutine does not return */
                         _invalid_parameter_noinfo_noreturn();
                       }
-                      pp_Var65 = &p_Var56->Blink + (longlong)&local_2d8->Flink;
-                      uVar71 = (longlong)pp_Var54 - (longlong)pp_Var65 >> 3;
+                      pp_Var65 = &p_Var46->Blink + (longlong)&local_2d8->Flink;
+                      uVar71 = (longlong)pp_Var55 - (longlong)pp_Var65 >> 3;
                       if ((((longlong)uVar71 < 0) && (local_2d8 < (_LIST_ENTRY *)-uVar71)) ||
                          ((0 < (longlong)uVar71 &&
                           ((ulonglong)((longlong)p_Var57 - (longlong)local_2d8) < uVar71))))
                       goto LAB_19;
-                      lVar61 = ((longlong)local_2d8 * 8 - (longlong)pp_Var65) + (longlong)p_Var56;
-                      while (p_Var64 = local_310, p_Var44 = local_308.Flink, pp_Var65 != pp_Var54) {
-                        p_Var44 = *pp_Var65;
+                      lVar61 = ((longlong)local_2d8 * 8 - (longlong)pp_Var65) + (longlong)p_Var46;
+                      while (p_Var64 = local_310, p_Var45 = local_308.Flink, pp_Var65 != pp_Var55) {
+                        p_Var45 = *pp_Var65;
                         *pp_Var65 = (_LIST_ENTRY *)0x0;
                         pCVar4 = *(CSurfaceDrawListBrush **)(lVar61 + (longlong)pp_Var65);
-                        *(_LIST_ENTRY **)(lVar61 + (longlong)pp_Var65) = p_Var44;
+                        *(_LIST_ENTRY **)(lVar61 + (longlong)pp_Var65) = p_Var45;
                         if (pCVar4 == (CSurfaceDrawListBrush *)0x0) {
-LAB_32:
+LAB_31:
                           pp_Var65 = pp_Var65 + 1;
                         }
                         else {
                           pcVar59 = (code *)**(undefined8 **)pCVar4;
                           if (pcVar59 == CWindowOcclusionInfo::_scalar_deleting_destructor_) {
                             operator_delete__(pCVar4,0x38);
-                            goto LAB_32;
+                            goto LAB_31;
                           }
                           if (pcVar59 == CSurfaceDrawListBrush::_scalar_deleting_destructor_) {
                             CSurfaceDrawListBrush::_scalar_deleting_destructor_(pCVar4,1);
                             pp_Var65 = pp_Var65 + 1;
                           }
                           else {
                             if (pcVar59 !=
                                 CMultiPrimitiveDrawListBrush::_scalar_deleting_destructor_) {
                               (*pcVar59)();
-                              goto LAB_32;
+                              goto LAB_31;
                             }
                             CMultiPrimitiveDrawListBrush::_scalar_deleting_destructor_
                                       ((CMultiPrimitiveDrawListBrush *)pCVar4,1);
                             pp_Var65 = pp_Var65 + 1;
                           }
                         }
                       }
                     }
-                    p_Var56 = local_180.Flink;
-                    for (puVar31 = pp_Var54 + -1; local_180.Flink = p_Var56,
-                        (_LIST_ENTRY **)puVar31 != pp_Var54; puVar31 = puVar31 + 1) {
+                    p_Var46 = local_180.Flink;
+                    for (puVar31 = pp_Var55 + -1; local_180.Flink = p_Var46,
+                        (_LIST_ENTRY **)puVar31 != pp_Var55; puVar31 = puVar31 + 1) {
                       pCVar4 = (CSurfaceDrawListBrush *)*puVar31;
                       if (pCVar4 != (CSurfaceDrawListBrush *)0x0) {
                         pcVar59 = (code *)**(undefined8 **)pCVar4;
                         if (pcVar59 == CWindowOcclusionInfo::_scalar_deleting_destructor_) {
                           operator_delete__(pCVar4,0x38);
                         }
                         else if (pcVar59 == CSurfaceDrawListBrush::_scalar_deleting_destructor_) {
                           CSurfaceDrawListBrush::_scalar_deleting_destructor_(pCVar4,1);
                         }
                         else if (pcVar59 ==
                                  CMultiPrimitiveDrawListBrush::_scalar_deleting_destructor_) {
                           CMultiPrimitiveDrawListBrush::_scalar_deleting_destructor_
                                     ((CMultiPrimitiveDrawListBrush *)pCVar4,1);
                         }
                         else {
                           (*pcVar59)();
                         }
                       }
                       p_Var64 = local_310;
-                      p_Var44 = local_308.Flink;
-                      p_Var56 = local_180.Flink;
+                      p_Var45 = local_308.Flink;
+                      p_Var46 = local_180.Flink;
                     }
-                    p_Var44[0xb].Blink = (_LIST_ENTRY *)&p_Var44[0xb].Blink[-1].Blink;
-                    p_Var57 = (_LIST_ENTRY *)(&(p_Var44[0xb].Flink)->Flink + (longlong)local_2d8);
+                    p_Var45[0xb].Blink = (_LIST_ENTRY *)&p_Var45[0xb].Blink[-1].Blink;
+                    p_Var57 = (_LIST_ENTRY *)(&(p_Var45[0xb].Flink)->Flink + (longlong)local_2d8);
                   }
                 }
-                p_Var50 = local_2f0;
-                uVar23 = (uint)local_318;
-              }
-            }
-            p_Var56 = (_LIST_ENTRY *)0x0;
+                p_Var44 = local_2f0;
+                uVar62 = (uint)local_318;
+              }
+            }
+            p_Var46 = (_LIST_ENTRY *)0x0;
             if (p_Var64 != (_LIST_ENTRY *)0x0) {
-              p_Var50 = p_Var56;
+              p_Var44 = p_Var46;
               if (g_pComposition != (CComposition *)0x0) {
-                p_Var50 = *(_LIST_ENTRY **)(g_pComposition + 0x378);
-              }
-              p_Var44 = local_408;
-              if (p_Var64[1].Flink == p_Var50) goto LAB_33;
+                p_Var44 = *(_LIST_ENTRY **)(g_pComposition + 0x378);
+              }
+              p_Var45 = local_408;
+              if (p_Var64[1].Flink == p_Var44) goto LAB_32;
               p_Var57 = p_Var64->Flink[1].Flink;
               if (p_Var57 == (_LIST_ENTRY *)COcclusionInfo::UpdateZFromValidParent) {
                 p_Var57 = p_Var64->Blink;
-                goto LAB_34;
+                goto LAB_33;
               }
               if (p_Var57 == (_LIST_ENTRY *)CWindowOcclusionInfo::UpdateZFromValidParent) {
                 COcclusionInfo::UpdateZFromValidParent
-                          ((COcclusionInfo *)p_Var64,(CVisualTree *)local_408,(__uint64)p_Var50);
+                          ((COcclusionInfo *)p_Var64,(CVisualTree *)local_408,(__uint64)p_Var44);
                 uVar66 = *(undefined4 *)((longlong)&p_Var64[2].Flink + 4);
                 *(undefined4 *)&p_Var64[3].Flink = uVar66;
                 *(undefined4 *)((longlong)&p_Var64[3].Flink + 4) = uVar66;
               }
               else {
                 (*(code *)p_Var57)();
               }
-              goto LAB_33;
-            }
-          }
-        }
-        p_Var44 = (_LIST_ENTRY *)0x0;
-        if (p_Var50 != local_408[4].Blink) {
-          p_Var44 = p_Var50[5].Blink;
-        }
-      }
-      goto LAB_35;
-    }
-    goto LAB_36;
-  }
-LAB_30:
-  p_Var56 = local_3e8;
-  iVar26 = *(int *)&local_3e8[199].Blink;
-  if (iVar26 != 0) {
-    iVar26 = iVar26 + -1;
-    *(int *)&local_3e8[199].Blink = iVar26;
-  }
-  p_Var44 = local_3e8 + 199;
-  if ((iVar26 == *(int *)((longlong)&local_3e8[199].Blink + 4)) &&
+              goto LAB_32;
+            }
+          }
+        }
+        p_Var45 = (_LIST_ENTRY *)0x0;
+        if (p_Var44 != local_408[4].Blink) {
+          p_Var45 = p_Var44[5].Blink;
+        }
+      }
+      goto LAB_34;
+    }
+    goto LAB_35;
+  }
+LAB_29:
+  p_Var44 = local_400;
+  iVar25 = *(int *)&local_400[199].Blink;
+  if (iVar25 != 0) {
+    iVar25 = iVar25 + -1;
+    *(int *)&local_400[199].Blink = iVar25;
+  }
+  p_Var45 = local_400 + 199;
+  if ((iVar25 == *(int *)((longlong)&local_400[199].Blink + 4)) &&
      (lVar28 = CWatermarkStack<bool,64,2,10>::Grow
-                         ((CWatermarkStack<bool,64,2,10> *)p_Var44,(__uint64)pcVar59,(uint)pcVar60,
-                          uVar23,&p_Var44->Flink), lVar28 < 0)) {
+                         ((CWatermarkStack<bool,64,2,10> *)p_Var45,(__uint64)pcVar59,(uint)pcVar60,
+                          uVar62,&p_Var45->Flink), lVar28 < 0)) {
     pcVar60 = "onecoreuap\\windows\\DWM\\dwmcore\\common\\WatermarkStack.inl";
     pcVar59 = (code *)0x83;
     wil::details::in1diag3::Return_Hr
               (unaff_retaddr,0x83,"onecoreuap\\windows\\DWM\\dwmcore\\common\\WatermarkStack.inl",
                lVar28);
-    p_Var50 = local_408;
-    p_Var64 = local_400;
-    uVar23 = local_414;
+    p_Var46 = local_408;
+    p_Var64 = local_3f8;
+    uVar62 = local_410;
   }
   else {
-    *(undefined1 *)((longlong)&p_Var44->Flink->Flink + (ulonglong)*(uint *)&p_Var56[199].Blink) = 0;
-    uVar62 = *(int *)&p_Var56[199].Blink + 1;
-    *(uint *)&p_Var56[199].Blink = uVar62;
-    uVar23 = *(uint *)((longlong)&p_Var56[200].Flink + 4);
-    if (uVar23 <= uVar62) {
-      uVar23 = uVar62;
-    }
-    *(uint *)((longlong)&p_Var56[200].Flink + 4) = uVar23;
-    p_Var50 = local_408;
-    p_Var64 = local_400;
-    uVar23 = local_414;
+    *(undefined1 *)((longlong)&p_Var45->Flink->Flink + (ulonglong)*(uint *)&p_Var44[199].Blink) = 0;
+    uVar22 = *(int *)&p_Var44[199].Blink + 1;
+    *(uint *)&p_Var44[199].Blink = uVar22;
+    uVar62 = *(uint *)((longlong)&p_Var44[200].Flink + 4);
+    if (uVar62 <= uVar22) {
+      uVar62 = uVar22;
+    }
+    *(uint *)((longlong)&p_Var44[200].Flink + 4) = uVar62;
+    p_Var46 = local_408;
+    p_Var64 = local_3f8;
+    uVar62 = local_410;
   }
   goto LAB_6;
-LAB_34:
+LAB_33:
   do {
-    p_Var29 = p_Var56;
+    p_Var29 = p_Var46;
     if (p_Var57 != local_408[4].Blink) {
       p_Var29 = p_Var57[5].Blink;
     }
-    p_Var44 = local_408;
-    if (p_Var29 == (_LIST_ENTRY *)0x0) goto LAB_37;
+    p_Var45 = local_408;
+    if (p_Var29 == (_LIST_ENTRY *)0x0) goto LAB_36;
     cVar17 = (*(code *)local_408->Flink[0xb].Blink)(local_408);
     if (cVar17 == '\0') {
       p_Var30 = p_Var29[0xe].Blink;
-      p_Var57 = p_Var56;
+      p_Var57 = p_Var46;
       if (*(int *)&p_Var30->Flink < 0) {
-        uVar23 = *(uint *)((longlong)&p_Var30->Flink + 4);
-        pp_Var54 = &p_Var30->Blink;
-        uVar62 = 0;
-        p_Var48 = p_Var56;
-        if (uVar23 != 0) {
+        uVar62 = *(uint *)((longlong)&p_Var30->Flink + 4);
+        pp_Var55 = &p_Var30->Blink;
+        uVar22 = 0;
+        p_Var50 = p_Var46;
+        if (uVar62 != 0) {
           do {
-            uVar62 = (uint)p_Var48;
-            if (*(char *)pp_Var54 == '\x01') break;
-            uVar62 = uVar62 + 1;
-            p_Var48 = (_LIST_ENTRY *)(ulonglong)uVar62;
-            pp_Var54 = (_LIST_ENTRY **)((longlong)pp_Var54 + 1);
-          } while (uVar62 < uVar23);
-        }
-        uVar23 = *(uint *)((longlong)&p_Var30->Flink + 4);
-        p_Var48 = p_Var56;
-        if (uVar62 < uVar23) {
-          lVar61 = (ulonglong)uVar23 + 0xf;
-          p_Var48 = (_LIST_ENTRY *)
+            uVar22 = (uint)p_Var50;
+            if (*(char *)pp_Var55 == '\x01') break;
+            uVar22 = uVar22 + 1;
+            p_Var50 = (_LIST_ENTRY *)(ulonglong)uVar22;
+            pp_Var55 = (_LIST_ENTRY **)((longlong)pp_Var55 + 1);
+          } while (uVar22 < uVar62);
+        }
+        uVar62 = *(uint *)((longlong)&p_Var30->Flink + 4);
+        p_Var50 = p_Var46;
+        if (uVar22 < uVar62) {
+          lVar61 = (ulonglong)uVar62 + 0xf;
+          p_Var50 = (_LIST_ENTRY *)
                     ((longlong)p_Var30 +
-                    lVar61 + ((ulonglong)uVar62 * 8 - (ulonglong)((uint)lVar61 & 7)));
-        }
-        p_Var30 = p_Var48->Flink;
+                    lVar61 + ((ulonglong)uVar22 * 8 - (ulonglong)((uint)lVar61 & 7)));
+        }
+        p_Var30 = p_Var50->Flink;
         if (p_Var30 != (_LIST_ENTRY *)0x0) {
-          for (p_Var48 = p_Var30->Flink; p_Var57 = (_LIST_ENTRY *)0x0, p_Var48 != p_Var30;
-              p_Var48 = p_Var48->Flink) {
-            if (p_Var48[2].Flink == local_408) {
-              p_Var57 = p_Var48 + -0x16;
+          for (p_Var50 = p_Var30->Flink; p_Var57 = (_LIST_ENTRY *)0x0, p_Var50 != p_Var30;
+              p_Var50 = p_Var50->Flink) {
+            if (p_Var50[2].Flink == local_408) {
+              p_Var57 = p_Var50 + -0x16;
               break;
             }
           }
         }
       }
     }
     else {
       p_Var57 = (_LIST_ENTRY *)&p_Var29[0x14].Blink;
     }
     p_Var30 = p_Var57[0xb].Flink;
-    while ((p_Var48 = p_Var56, p_Var30 != p_Var57[0xb].Blink &&
-           (p_Var48 = p_Var30->Flink, *(int *)&p_Var48[2].Flink != *(int *)&p_Var64[2].Flink))) {
+    while ((p_Var50 = p_Var46, p_Var30 != p_Var57[0xb].Blink &&
+           (p_Var50 = p_Var30->Flink, *(int *)&p_Var50[2].Flink != *(int *)&p_Var64[2].Flink))) {
       p_Var30 = (_LIST_ENTRY *)&p_Var30->Blink;
     }
     p_Var64 = p_Var57[0xf].Blink[1].Blink[0x37].Blink;
     if (p_Var57[0xd].Blink != p_Var64) {
       p_Var57[0xd].Blink = p_Var64;
       p_Var30 = p_Var57[0xb].Flink;
       if (1 < (ulonglong)((longlong)p_Var57[0xb].Blink - (longlong)p_Var30 >> 3)) {
         while (p_Var30 != p_Var57[0xb].Blink) {
-          if (((p_Var30->Flink == p_Var48) ||
+          if (((p_Var30->Flink == p_Var50) ||
               (p_Var5 = p_Var30->Flink[1].Flink, p_Var5 == (_LIST_ENTRY *)0x0)) ||
              ((ulonglong)((longlong)p_Var64 - (longlong)p_Var5) < 10)) {
             p_Var30 = (_LIST_ENTRY *)&p_Var30->Blink;
           }
           else {
             local_268 = p_Var30;
-            plVar45 = (longlong *)
+            plVar47 = (longlong *)
                       detail::
                       vector_facade<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,detail::buffer_impl<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,1,1,detail::liberal_expansion_policy>_>
                       ::erase((vector_facade<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,detail::buffer_impl<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,1,1,detail::liberal_expansion_policy>_>
                                *)(p_Var57 + 0xb),&local_230.Blink,&local_268);
-            p_Var30 = (_LIST_ENTRY *)*plVar45;
+            p_Var30 = (_LIST_ENTRY *)*plVar47;
           }
         }
       }
     }
     p_Var57 = p_Var29;
     p_Var64 = local_310;
-  } while ((p_Var48 == (_LIST_ENTRY *)0x0) || (p_Var48[1].Flink != p_Var50));
-  *(undefined4 *)((longlong)&local_310[2].Flink + 4) = *(undefined4 *)&p_Var48[2].Blink;
-  *(undefined4 *)&local_310[2].Blink = *(undefined4 *)&p_Var48[2].Blink;
-  local_310[1].Flink = p_Var50;
-LAB_37:
-  uVar23 = (uint)local_318;
-LAB_33:
-  uVar62 = *(uint *)&p_Var64[2].Blink;
-LAB_35:
-  p_Var56 = local_3e8;
-  p_Var64 = local_400;
-  p_Var50 = local_408;
-  uVar25 = (uint)p_Var44;
+  } while ((p_Var50 == (_LIST_ENTRY *)0x0) || (p_Var50[1].Flink != p_Var44));
+  *(undefined4 *)((longlong)&local_310[2].Flink + 4) = *(undefined4 *)&p_Var50[2].Blink;
+  *(undefined4 *)&local_310[2].Blink = *(undefined4 *)&p_Var50[2].Blink;
+  local_310[1].Flink = p_Var44;
+LAB_36:
+  uVar62 = (uint)local_318;
+LAB_32:
+  uVar22 = *(uint *)&p_Var64[2].Blink;
+LAB_34:
+  p_Var64 = local_3f8;
+  p_Var57 = local_400;
+  p_Var46 = local_408;
+  uVar26 = (uint)p_Var45;
   lVar61 = CONCAT44(fStack_2cc,local_2d0);
-  *(uint *)&local_3e8[0x1f2].Blink = uVar62;
-  if (*(int *)(lVar61 + 0x618) <= (int)uVar62) {
-    pcVar60 = (char *)(ulonglong)uVar23;
+  *(uint *)&local_400[0x1f2].Blink = uVar22;
+  p_Var44 = local_400;
+  if (*(int *)(lVar61 + 0x618) <= (int)uVar22) {
+    pcVar60 = (char *)(ulonglong)uVar62;
     pcVar59 = (code *)local_408;
-    iVar26 = CVisual::GetSubtreeZ((CVisual *)local_400,(CVisualTree *)local_408,uVar23);
-    pbVar63 = local_3f8;
-    uVar62 = local_414;
-    if (*(int *)(lVar61 + 0x618) <= iVar26) {
-      iVar26 = *(int *)&p_Var56[199].Blink;
-      if (iVar26 != 0) {
-        iVar26 = iVar26 + -1;
-        *(int *)&p_Var56[199].Blink = iVar26;
-      }
-      p_Var44 = p_Var56 + 199;
-      if ((iVar26 == *(int *)((longlong)&p_Var56[199].Blink + 4)) &&
+    iVar25 = CVisual::GetSubtreeZ((CVisual *)local_3f8,(CVisualTree *)local_408,uVar62);
+    pbVar63 = local_3f0;
+    uVar62 = local_410;
+    if (*(int *)(lVar61 + 0x618) <= iVar25) {
+      iVar25 = *(int *)&p_Var57[199].Blink;
+      if (iVar25 != 0) {
+        iVar25 = iVar25 + -1;
+        *(int *)&p_Var57[199].Blink = iVar25;
+      }
+      p_Var45 = p_Var57 + 199;
+      if ((iVar25 == *(int *)((longlong)&p_Var57[199].Blink + 4)) &&
          (lVar28 = CWatermarkStack<bool,64,2,10>::Grow
-                             ((CWatermarkStack<bool,64,2,10> *)p_Var44,(__uint64)pcVar59,
-                              (uint)pcVar60,uVar25,&p_Var44->Flink), lVar28 < 0)) {
+                             ((CWatermarkStack<bool,64,2,10> *)p_Var45,(__uint64)pcVar59,
+                              (uint)pcVar60,uVar26,&p_Var45->Flink), lVar28 < 0)) {
         pcVar60 = "onecoreuap\\windows\\DWM\\dwmcore\\common\\WatermarkStack.inl";
         pcVar59 = (code *)0x83;
         wil::details::in1diag3::Return_Hr
                   (unaff_retaddr,0x83,
                    "onecoreuap\\windows\\DWM\\dwmcore\\common\\WatermarkStack.inl",lVar28);
-        *local_3f8 = false;
-        pbVar63 = local_3f8;
-        uVar62 = local_414;
+        *local_3f0 = false;
+        pbVar63 = local_3f0;
+        uVar62 = local_410;
       }
       else {
-        *(undefined1 *)((longlong)&p_Var44->Flink->Flink + (ulonglong)*(uint *)&p_Var56[199].Blink)
+        *(undefined1 *)((longlong)&p_Var45->Flink->Flink + (ulonglong)*(uint *)&p_Var57[199].Blink)
              = 0;
-        uVar62 = *(int *)&p_Var56[199].Blink + 1;
-        *(uint *)&p_Var56[199].Blink = uVar62;
-        uVar23 = *(uint *)((longlong)&p_Var56[200].Flink + 4);
-        if (uVar23 <= uVar62) {
-          uVar23 = uVar62;
-        }
-        *(uint *)((longlong)&p_Var56[200].Flink + 4) = uVar23;
-        *local_3f8 = false;
-        pbVar63 = local_3f8;
-        uVar62 = local_414;
+        uVar22 = *(int *)&p_Var57[199].Blink + 1;
+        *(uint *)&p_Var57[199].Blink = uVar22;
+        uVar62 = *(uint *)((longlong)&p_Var57[200].Flink + 4);
+        if (uVar62 <= uVar22) {
+          uVar62 = uVar22;
+        }
+        *(uint *)((longlong)&p_Var57[200].Flink + 4) = uVar62;
+        *local_3f0 = false;
+        pbVar63 = local_3f0;
+        uVar62 = local_410;
       }
     }
     goto LAB_10;
   }
-LAB_36:
-  p_Var50 = local_408;
-  pNVar53 = (NodeEffects *)0x0;
+LAB_35:
+  p_Var46 = local_408;
+  pNVar54 = (NodeEffects *)0x0;
   if (p_Var64 == local_408[4].Blink) {
     local_3b4 = 1.0;
   }
   else {
-    p_Var44 = p_Var64[0xe].Flink;
-    if (((ulonglong)p_Var44->Flink & 0x800000000000000) == 0) {
+    p_Var45 = p_Var64[0xe].Flink;
+    if (((ulonglong)p_Var45->Flink & 0x800000000000000) == 0) {
       fVar93 = 1.0;
     }
     else {
-      puVar58 = (uint *)((longlong)&p_Var44->Blink + 4);
-      uVar23 = *(uint *)((longlong)&p_Var44->Blink + 4);
-      while ((uVar23 & 0x7f000000) != 0x5000000) {
-        puVar58 = (uint *)((longlong)puVar58 + (ulonglong)(uVar23 & 0xffffff) + 4);
-        uVar23 = *puVar58;
+      puVar58 = (uint *)((longlong)&p_Var45->Blink + 4);
+      uVar62 = *(uint *)((longlong)&p_Var45->Blink + 4);
+      while ((uVar62 & 0x7f000000) != 0x5000000) {
+        puVar58 = (uint *)((longlong)puVar58 + (ulonglong)(uVar62 & 0xffffff) + 4);
+        uVar62 = *puVar58;
       }
       fVar93 = (float)puVar58[1];
     }
     if (fVar93 <= 0.0) {
       fVar93 = 0.0;
     }
     local_3b4 = 1.0;
     if (fVar93 <= 1.0) {
       local_3b4 = fVar93;
     }
   }
-  p_Var44 = p_Var64[0xe].Blink;
+  p_Var45 = p_Var64[0xe].Blink;
   fVar93 = 1.0;
-  uVar25 = 0;
+  uVar22 = 0;
   local_3d8 = (undefined1  [8])p_Var64;
-  if (((ulonglong)p_Var44->Flink & 0x800000) != 0) {
-    uVar23 = *(uint *)((longlong)&p_Var44->Flink + 4);
-    pp_Var54 = &p_Var44->Blink;
-    pNVar37 = pNVar53;
-    uVar62 = uVar25;
-    if (uVar23 != 0) {
+  if (((ulonglong)p_Var45->Flink & 0x800000) != 0) {
+    uVar62 = *(uint *)((longlong)&p_Var45->Flink + 4);
+    pp_Var55 = &p_Var45->Blink;
+    pNVar37 = pNVar54;
+    uVar26 = uVar22;
+    if (uVar62 != 0) {
       do {
-        uVar62 = (uint)pNVar37;
-        if (*(char *)pp_Var54 == '\t') break;
-        uVar62 = uVar62 + 1;
-        pNVar37 = (NodeEffects *)(ulonglong)uVar62;
-        pp_Var54 = (_LIST_ENTRY **)((longlong)pp_Var54 + 1);
-      } while (uVar62 < uVar23);
-    }
-    uVar23 = *(uint *)((longlong)&p_Var44->Flink + 4);
-    pNVar37 = pNVar53;
-    if (uVar62 < uVar23) {
-      lVar61 = (ulonglong)uVar23 + 0xf;
+        uVar26 = (uint)pNVar37;
+        if (*(char *)pp_Var55 == '\t') break;
+        uVar26 = uVar26 + 1;
+        pNVar37 = (NodeEffects *)(ulonglong)uVar26;
+        pp_Var55 = (_LIST_ENTRY **)((longlong)pp_Var55 + 1);
+      } while (uVar26 < uVar62);
+    }
+    uVar62 = *(uint *)((longlong)&p_Var45->Flink + 4);
+    pNVar37 = pNVar54;
+    if (uVar26 < uVar62) {
+      lVar61 = (ulonglong)uVar62 + 0xf;
       pNVar37 = (NodeEffects *)
-                (((ulonglong)uVar62 * 8 - (ulonglong)((uint)lVar61 & 7)) + lVar61 +
-                (longlong)p_Var44);
+                (((ulonglong)uVar26 * 8 - (ulonglong)((uint)lVar61 & 7)) + lVar61 +
+                (longlong)p_Var45);
     }
     this_00 = *(CMatrixTransform3D **)pNVar37;
     pcVar59 = *(code **)(*(longlong *)this_00 + 0x40);
     if (pcVar59 != CEffectGroupGeneratedT<CEffectGroup,CEffect>::IsOfType) {
       if (pcVar59 == CMatrixTransform3D::IsOfType) {
-        cVar17 = CMatrixTransform3D::IsOfType(this_00,0x39);
+        cVar17 = CMatrixTransform3D::IsOfType(this_00,0x3a);
       }
       else {
         cVar17 = (*pcVar59)();
       }
-      if (cVar17 == '\0') goto LAB_38;
+      if (cVar17 == '\0') goto LAB_37;
     }
     fVar93 = *(float *)(this_00 + 0x50);
   }
-LAB_38:
+LAB_37:
   if (fVar93 <= 0.0) {
     fVar93 = 0.0;
   }
   fVar94 = 1.0;
   if (fVar93 <= 1.0) {
     fVar94 = fVar93;
   }
-  if (*(int *)&p_Var56[0xc6].Flink == 0) {
+  if (*(int *)&p_Var44[0xc6].Flink == 0) {
     fVar93 = 1.0;
   }
   else {
-    fVar93 = *(float *)((longlong)&(p_Var56[0xc5].Blink)->Flink +
-                       (ulonglong)(*(int *)&p_Var56[0xc6].Flink - 1) * 4);
+    fVar93 = *(float *)((longlong)&(p_Var44[0xc5].Blink)->Flink +
+                       (ulonglong)(*(int *)&p_Var44[0xc6].Flink - 1) * 4);
   }
   local_3b4 = fVar93 * fVar94 * local_3b4;
-  p_Var44 = p_Var64[0xe].Blink;
-  if (((ulonglong)p_Var44->Flink & 0x4000000) != 0) {
-    uVar23 = *(uint *)((longlong)&p_Var44->Flink + 4);
-    pp_Var54 = &p_Var44->Blink;
-    pNVar37 = pNVar53;
-    uVar62 = uVar25;
-    if (uVar23 != 0) {
+  p_Var45 = p_Var64[0xe].Blink;
+  if (((ulonglong)p_Var45->Flink & 0x4000000) != 0) {
+    uVar62 = *(uint *)((longlong)&p_Var45->Flink + 4);
+    pp_Var55 = &p_Var45->Blink;
+    pNVar37 = pNVar54;
+    uVar26 = uVar22;
+    if (uVar62 != 0) {
       do {
-        uVar62 = (uint)pNVar37;
-        if (*(char *)pp_Var54 == '\x06') break;
-        uVar62 = uVar62 + 1;
-        pNVar37 = (NodeEffects *)(ulonglong)uVar62;
-        pp_Var54 = (_LIST_ENTRY **)((longlong)pp_Var54 + 1);
-      } while (uVar62 < uVar23);
-    }
-    uVar23 = *(uint *)((longlong)&p_Var44->Flink + 4);
-    pNVar37 = pNVar53;
-    if (uVar62 < uVar23) {
-      lVar61 = (ulonglong)uVar23 + 0xf;
+        uVar26 = (uint)pNVar37;
+        if (*(char *)pp_Var55 == '\x06') break;
+        uVar26 = uVar26 + 1;
+        pNVar37 = (NodeEffects *)(ulonglong)uVar26;
+        pp_Var55 = (_LIST_ENTRY **)((longlong)pp_Var55 + 1);
+      } while (uVar26 < uVar62);
+    }
+    uVar62 = *(uint *)((longlong)&p_Var45->Flink + 4);
+    pNVar37 = pNVar54;
+    if (uVar26 < uVar62) {
+      lVar61 = (ulonglong)uVar62 + 0xf;
       pNVar37 = (NodeEffects *)
-                ((longlong)p_Var44 +
-                lVar61 + ((ulonglong)uVar62 * 8 - (ulonglong)((uint)lVar61 & 7)));
+                ((longlong)p_Var45 +
+                lVar61 + ((ulonglong)uVar26 * 8 - (ulonglong)((uint)lVar61 & 7)));
     }
     if (*(longlong *)pNVar37 != 0) {
       local_320._0_2_ = CONCAT11(1,(undefined1)local_320);
     }
   }
   pcVar60 = (char *)p_Var64[0xe].Blink;
   if (((ulonglong)((_LIST_ENTRY *)pcVar60)->Flink & 0x800000) != 0) {
-    uVar23 = *(uint *)((longlong)&((_LIST_ENTRY *)pcVar60)->Flink + 4);
-    pp_Var54 = &((_LIST_ENTRY *)pcVar60)->Blink;
-    pNVar37 = pNVar53;
-    uVar62 = uVar25;
-    if (uVar23 != 0) {
+    uVar62 = *(uint *)((longlong)&((_LIST_ENTRY *)pcVar60)->Flink + 4);
+    pp_Var55 = &((_LIST_ENTRY *)pcVar60)->Blink;
+    pNVar37 = pNVar54;
+    uVar26 = uVar22;
+    if (uVar62 != 0) {
       do {
-        uVar62 = (uint)pNVar37;
-        if (*(char *)pp_Var54 == '\t') break;
-        uVar62 = uVar62 + 1;
-        pNVar37 = (NodeEffects *)(ulonglong)uVar62;
-        pp_Var54 = (_LIST_ENTRY **)((longlong)pp_Var54 + 1);
-      } while (uVar62 < uVar23);
-    }
-    uVar23 = *(uint *)((longlong)&((_LIST_ENTRY *)pcVar60)->Flink + 4);
-    pNVar37 = pNVar53;
-    if (uVar62 < uVar23) {
-      lVar61 = (ulonglong)uVar23 + 0xf;
+        uVar26 = (uint)pNVar37;
+        if (*(char *)pp_Var55 == '\t') break;
+        uVar26 = uVar26 + 1;
+        pNVar37 = (NodeEffects *)(ulonglong)uVar26;
+        pp_Var55 = (_LIST_ENTRY **)((longlong)pp_Var55 + 1);
+      } while (uVar26 < uVar62);
+    }
+    uVar62 = *(uint *)((longlong)&((_LIST_ENTRY *)pcVar60)->Flink + 4);
+    pNVar37 = pNVar54;
+    if (uVar26 < uVar62) {
+      lVar61 = (ulonglong)uVar62 + 0xf;
       pNVar37 = (NodeEffects *)
                 ((longlong)pcVar60 +
-                lVar61 + ((ulonglong)uVar62 * 8 - (ulonglong)((uint)lVar61 & 7)));
+                lVar61 + ((ulonglong)uVar26 * 8 - (ulonglong)((uint)lVar61 & 7)));
     }
     pcVar59 = *(code **)(*(longlong *)
                           *(CEffectGeneratedT<CEffect,CPropertyChangeResource> **)pNVar37 + 0x40);
     if (pcVar59 == CEffectGroupGeneratedT<CEffectGroup,CEffect>::IsOfType) {
       bVar19 = CEffectGeneratedT<CEffect,CPropertyChangeResource>::IsOfType
-                         (*(CEffectGeneratedT<CEffect,CPropertyChangeResource> **)pNVar37,0x3c);
+                         (*(CEffectGeneratedT<CEffect,CPropertyChangeResource> **)pNVar37,0x3d);
       if (bVar19) {
-LAB_39:
+LAB_38:
         local_320._0_3_ = CONCAT12(1,(undefined2)local_320);
       }
     }
     else {
       cVar17 = (*pcVar59)();
-      if (cVar17 != '\0') goto LAB_39;
+      if (cVar17 != '\0') goto LAB_38;
     }
   }
   if (((ulonglong)(p_Var64[0xe].Flink)->Flink & 0x400000000000000) != 0) {
-    pp_Var54 = &(p_Var56[2].Flink)->Blink;
-    lVar61 = (*(code *)(*pp_Var54)[1].Blink)(pp_Var54,local_f8);
+    pp_Var55 = &(p_Var44[2].Flink)->Blink;
+    lVar61 = (*(code *)(*pp_Var55)[1].Blink)(pp_Var55,local_f8);
     DVar27 = CVisual::GetColorSpace((CVisual *)p_Var64);
     if (DVar27 != *(DXGI_COLOR_SPACE_TYPE *)(lVar61 + 8)) {
       local_31c = CONCAT11(local_31c._1_1_,1);
     }
   }
-  pcVar59 = (code *)0x5c;
-  p_Var44 = p_Var64->Flink[4].Flink;
-  if (p_Var44 == (_LIST_ENTRY *)CSpriteVisual::IsOfType) {
-    bVar19 = CVisual::IsOfType((CVisual *)p_Var64,0x5c);
+  pcVar59 = (code *)0x5d;
+  p_Var45 = p_Var64->Flink[4].Flink;
+  if (p_Var45 == (_LIST_ENTRY *)CSpriteVisual::IsOfType) {
+    bVar19 = CVisual::IsOfType((CVisual *)p_Var64,0x5d);
     if (bVar19) {
-LAB_40:
+LAB_39:
       if ((p_Var64[0x2b].Flink == (_LIST_ENTRY *)0x0) && (p_Var64[0x2a].Blink == (_LIST_ENTRY *)0x0)
          ) {
         uVar20 = 0;
       }
       else {
         bVar19 = CLayerVisual::IsAutomaticBoundsToLocalSpaceEnabled((CLayerVisual *)p_Var64);
         if ((bVar19) &&
-           (((p_Var64 == p_Var56[0x1f0].Blink[4].Blink && (p_Var56[0xd].Flink != (_LIST_ENTRY *)0x0)
-             ) && (p_Var44 = (_LIST_ENTRY *)GetCurrentVisual((CDrawingContext *)p_Var56[0xd].Flink),
-                  p_Var44 == p_Var64)))) {
+           (((p_Var64 == p_Var44[0x1f0].Blink[4].Blink && (p_Var44[0xd].Flink != (_LIST_ENTRY *)0x0)
+             ) && (p_Var45 = (_LIST_ENTRY *)GetCurrentVisual((CDrawingContext *)p_Var44[0xd].Flink),
+                  p_Var45 == p_Var64)))) {
           uVar20 = 0;
         }
         else {
           uVar20 = 1;
         }
       }
       local_320 = CONCAT13(uVar20,(undefined3)local_320);
     }
   }
   else {
-    if (p_Var44 == (_LIST_ENTRY *)CVisual::IsOfType) {
-      cVar17 = CVisual::IsOfType((CVisual *)p_Var64,0x5c);
-    }
-    else if (p_Var44 == (_LIST_ENTRY *)CWindowNodeGeneratedT<CWindowNode,CVisual>::IsOfType) {
+    if (p_Var45 == (_LIST_ENTRY *)CVisual::IsOfType) {
+      cVar17 = CVisual::IsOfType((CVisual *)p_Var64,0x5d);
+    }
+    else if (p_Var45 == (_LIST_ENTRY *)CWindowNodeGeneratedT<CWindowNode,CVisual>::IsOfType) {
       cVar17 = CWindowNodeGeneratedT<CWindowNode,CVisual>::IsOfType
-                         ((CWindowNodeGeneratedT<CWindowNode,CVisual> *)p_Var64,0x5c);
+                         ((CWindowNodeGeneratedT<CWindowNode,CVisual> *)p_Var64,0x5d);
     }
     else {
-      cVar17 = (*(code *)p_Var44)();
-    }
-    if (cVar17 != '\0') goto LAB_40;
+      cVar17 = (*(code *)p_Var45)();
+    }
+    if (cVar17 != '\0') goto LAB_39;
   }
   if ((local_3b4 < 1.0) && (1.1920929e-06 <= ABS(local_3b4 - 1.0))) {
-    if (((((ulonglong)p_Var64[6].Flink & 0x20000) == 0) && (*(int *)&p_Var56[0xf].Blink != 4)) ||
-       ((*(int *)((longlong)&p_Var56[0xf].Blink + 4) == 1 || (*(int *)&p_Var64[7].Flink == 1)))) {
+    if (((((ulonglong)p_Var64[6].Flink & 0x20000) == 0) && (*(int *)&p_Var44[0xf].Blink != 4)) ||
+       ((*(int *)((longlong)&p_Var44[0xf].Blink + 4) == 1 || (*(int *)&p_Var64[7].Flink == 1)))) {
       local_31c = CONCAT11(1,(char)local_31c);
     }
     else {
       pcVar59 = (code *)&EVTDESC_ETWGUID_LAYEREVENT_BeginLayer_Start;
       BVar21 = EventEnabled(Microsoft_Windows_Dwm_Core_Provider_Context,
                             (PCEVENT_DESCRIPTOR)&EVTDESC_ETWGUID_LAYEREVENT_BeginLayer_Start);
       if (BVar21 != '\0') {
-        _Var49 = CPtrArrayBase::GetCount((CPtrArrayBase *)(p_Var64 + 5));
-        uVar23 = local_328._4_4_;
-        if ((int)_Var49 != 0) {
-          uVar23 = local_328._4_4_ | 0x20;
+        _Var51 = CPtrArrayBase::GetCount((CPtrArrayBase *)(p_Var64 + 5));
+        uVar62 = local_328._4_4_;
+        if ((int)_Var51 != 0) {
+          uVar62 = local_328._4_4_ | 0x20;
           local_328 = local_328 | 0x2000000000;
         }
         if (((ulonglong)p_Var64[6].Flink & 0x20000) != 0) {
-          local_328 = CONCAT44(uVar23,(CpuClippingScopeMode)local_328) | 0x4000000000;
+          local_328 = CONCAT44(uVar62,(CpuClippingScopeMode)local_328) | 0x4000000000;
         }
       }
     }
   }
   fVar93 = local_3b4;
   if (((ulonglong)(p_Var64[0xe].Flink)->Flink & 0x200000000000000) != 0) {
-    pcVar59 = (code *)&DAT_41;
-    pDVar47 = CSparseStorage::AllocatedStorage::FindSlot((AllocatedStorage *)p_Var64[0xe].Flink,7);
-    local_3b8 = *(int *)(pDVar47 + 4);
+    pcVar59 = (code *)&DAT_40;
+    pDVar49 = CSparseStorage::AllocatedStorage::FindSlot((AllocatedStorage *)p_Var64[0xe].Flink,7);
+    local_3b8 = *(int *)(pDVar49 + 4);
   }
   p_Var57 = p_Stack_3d0;
-  p_Var44 = local_400;
+  p_Var45 = local_3f8;
   if ((((local_320._2_1_ != '\0') || ((char)local_31c != '\0')) || (local_320._3_1_ != '\0')) ||
      (local_3b8 != 0)) {
     local_328 = CONCAT44(local_328._4_4_,3);
     if (local_320._3_1_ != '\0') {
       local_328 = CONCAT44(local_328._4_4_,4);
     }
   }
-  uVar23 = local_414;
+  uVar62 = local_410;
   if (1.1920929e-06 <= ABS(fVar93)) {
-    p_Var50 = p_Var64[0xf].Blink;
-    if (p_Var50 != (_LIST_ENTRY *)0x0) {
+    p_Var46 = p_Var64[0xf].Blink;
+    if (p_Var46 != (_LIST_ENTRY *)0x0) {
       local_158 = (_LIST_ENTRY *)0x0;
       uStack_150 = (_LIST_ENTRY *)0x0;
       if ((local_3c8 != '\0') && (p_Stack_3d0 != (_LIST_ENTRY *)0x0)) {
-        p_Var64 = p_Stack_3d0->Flink->Flink;
-        if (p_Var64 == (_LIST_ENTRY *)CRectanglesShape::_vector_deleting_destructor_) {
+        p_Var44 = p_Stack_3d0->Flink->Flink;
+        if (p_Var44 == (_LIST_ENTRY *)CRectanglesShape::_vector_deleting_destructor_) {
           CRectanglesShape::~CRectanglesShape((CRectanglesShape *)p_Stack_3d0);
           CThreadLocalObjectCache<CRectanglesShape,CRectanglesShape>::Free(p_Var57);
         }
-        else if (p_Var64 == (_LIST_ENTRY *)CRoundedRectangleShape::_scalar_deleting_destructor_) {
+        else if (p_Var44 == (_LIST_ENTRY *)CRoundedRectangleShape::_scalar_deleting_destructor_) {
           CRoundedRectangleShape::~CRoundedRectangleShape((CRoundedRectangleShape *)p_Stack_3d0);
           CThreadLocalObjectCache<CRoundedRectangleShape,CRoundedRectangleShape>::Free(p_Var57);
         }
-        else if (p_Var64 == (_LIST_ENTRY *)CPolygonShape::_vector_deleting_destructor_) {
+        else if (p_Var44 == (_LIST_ENTRY *)CPolygonShape::_vector_deleting_destructor_) {
           CPolygonShape::_vector_deleting_destructor_((CPolygonShape *)p_Stack_3d0,1);
         }
         else {
-          (*(code *)p_Var64)();
+          (*(code *)p_Var44)();
         }
       }
       p_Stack_3d0 = (_LIST_ENTRY *)0x0;
       local_3c8 = '\0';
       local_2e8 = (_LIST_ENTRY *)0x0;
       local_2e0 = '\0';
       uVar62 = CGeometry::GetShapeData
-                         ((CGeometry *)p_Var50,(D2D_SIZE_F *)(p_Var44 + 9),(CShapePtr *)&local_2e8);
-      p_Var50 = local_2e8;
+                         ((CGeometry *)p_Var46,(D2D_SIZE_F *)(p_Var45 + 9),(CShapePtr *)&local_2e8);
+      p_Var44 = local_2e8;
       if ((int)uVar62 < 0) {
-        uVar23 = 0x986;
-LAB_42:
-        MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,uVar62,uVar23,(void *)0x0);
-        if (uVar62 != 0x8898000a) goto LAB_43;
-LAB_44:
-        uVar62 = uVar25;
+        uVar26 = 0x986;
+LAB_41:
+        MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,uVar62,uVar26,(void *)0x0);
+        if (uVar62 != 0x8898000a) goto LAB_42;
+LAB_43:
+        uVar62 = uVar22;
       }
       else {
         uVar62 = 0x8898008b;
         if (local_2e8 == (_LIST_ENTRY *)0x0) {
+LAB_44:
+          if ((int)uVar62 < 0) {
 LAB_45:
-          local_414 = uVar62;
-          if ((int)uVar62 < 0) {
-LAB_46:
-            uVar23 = 0x987;
-            goto LAB_42;
+            uVar26 = 0x987;
+            goto LAB_41;
           }
         }
         else {
-          p_Var64 = local_2e8->Flink[3].Flink;
-          if (p_Var64 == (_LIST_ENTRY *)CRectanglesShape::GetTightBounds) {
-            p_Var64 = local_2e8[1].Flink;
-            if (local_2e8[1].Blink != p_Var64) {
-              local_158 = p_Var64->Flink;
-              uStack_150 = p_Var64->Blink;
+          p_Var46 = local_2e8->Flink[3].Flink;
+          if (p_Var46 == (_LIST_ENTRY *)CRectanglesShape::GetTightBounds) {
+            p_Var46 = local_2e8[1].Flink;
+            uVar62 = uVar22;
+            if (local_2e8[1].Blink != p_Var46) {
+              local_158 = p_Var46->Flink;
+              uStack_150 = p_Var46->Blink;
               uVar71 = 1;
-              p_Var64 = local_2e8[1].Flink;
-              if (1 < (ulonglong)((longlong)local_2e8[1].Blink - (longlong)p_Var64 >> 4)) {
+              p_Var46 = local_2e8[1].Flink;
+              if (1 < (ulonglong)((longlong)local_2e8[1].Blink - (longlong)p_Var46 >> 4)) {
                 lVar61 = 0x10;
                 do {
                   TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::UnionUnsafe
                             ((TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded> *)
                              &local_158,
                              (TMilRect<float,struct_D2D_RECT_F,struct_D3D_RECT_F,struct_RectUniqueness::NotNeeded>
-                              *)((longlong)&p_Var64->Flink + lVar61));
-                  p_Var64 = p_Var50[1].Flink;
+                              *)((longlong)&p_Var46->Flink + lVar61));
+                  p_Var46 = p_Var44[1].Flink;
                   lVar61 = lVar61 + 0x10;
                   uVar71 = uVar71 + 1;
-                } while (uVar71 < (ulonglong)((longlong)p_Var50[1].Blink - (longlong)p_Var64 >> 4));
-              }
-            }
-            local_414 = 0;
+                } while (uVar71 < (ulonglong)((longlong)p_Var44[1].Blink - (longlong)p_Var46 >> 4));
+              }
+            }
           }
           else {
-            if (p_Var64 != (_LIST_ENTRY *)CRegionShape::GetTightBounds) {
-              if (p_Var64 == (_LIST_ENTRY *)CRoundedRectangleShape::GetTightBounds) {
+            if (p_Var46 != (_LIST_ENTRY *)CRegionShape::GetTightBounds) {
+              if (p_Var46 == (_LIST_ENTRY *)CRoundedRectangleShape::GetTightBounds) {
                 uVar62 = CRoundedRectangleShape::GetTightBounds
                                    ((CRoundedRectangleShape *)local_2e8,
                                     (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
                                      *)&local_158,(CMILMatrix *)0x0);
               }
               else {
-                uVar62 = (*(code *)p_Var64)();
-              }
-              if (-1 < (int)uVar62) goto LAB_45;
+                uVar62 = (*(code *)p_Var46)();
+              }
+              if (-1 < (int)uVar62) goto LAB_44;
               MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,uVar62,0x140,(void *)0x0);
-              goto LAB_46;
+              goto LAB_45;
             }
             local_148.left = 0;
             local_148.top = 0;
             local_148.right = 0;
             local_148.bottom = 0;
             bVar19 = FastRegion::CRegion::GetBoundingRect((CRegion *)(local_2e8 + 1),&local_148);
+            uVar62 = uVar22;
             if (bVar19) {
               local_158 = (_LIST_ENTRY *)CONCAT44((float)local_148.top,(float)local_148.left);
               uStack_150 = (_LIST_ENTRY *)CONCAT44((float)local_148.bottom,(float)local_148.right);
             }
-            local_414 = 0;
-          }
-        }
-        p_Var64 = local_2e8;
-        p_Var50 = p_Stack_3d0;
+          }
+        }
+        p_Var46 = local_2e8;
+        p_Var44 = p_Stack_3d0;
         cVar17 = local_2e0;
         if ((local_3c8 != '\0') && (p_Stack_3d0 != (_LIST_ENTRY *)0x0)) {
-          p_Var57 = p_Stack_3d0->Flink->Flink;
-          if (p_Var57 == (_LIST_ENTRY *)CRectanglesShape::_vector_deleting_destructor_) {
+          p_Var64 = p_Stack_3d0->Flink->Flink;
+          if (p_Var64 == (_LIST_ENTRY *)CRectanglesShape::_vector_deleting_destructor_) {
             CRectanglesShape::~CRectanglesShape((CRectanglesShape *)p_Stack_3d0);
-            CThreadLocalObjectCache<CRectanglesShape,CRectanglesShape>::Free(p_Var50);
-          }
-          else if (p_Var57 == (_LIST_ENTRY *)CRoundedRectangleShape::_scalar_deleting_destructor_) {
+            CThreadLocalObjectCache<CRectanglesShape,CRectanglesShape>::Free(p_Var44);
+          }
+          else if (p_Var64 == (_LIST_ENTRY *)CRoundedRectangleShape::_scalar_deleting_destructor_) {
             CRoundedRectangleShape::~CRoundedRectangleShape((CRoundedRectangleShape *)p_Stack_3d0);
-            CThreadLocalObjectCache<CRoundedRectangleShape,CRoundedRectangleShape>::Free(p_Var50);
-          }
-          else if (p_Var57 == (_LIST_ENTRY *)CPolygonShape::_vector_deleting_destructor_) {
+            CThreadLocalObjectCache<CRoundedRectangleShape,CRoundedRectangleShape>::Free(p_Var44);
+          }
+          else if (p_Var64 == (_LIST_ENTRY *)CPolygonShape::_vector_deleting_destructor_) {
             CPolygonShape::_vector_deleting_destructor_((CPolygonShape *)p_Stack_3d0,1);
           }
           else {
-            (*(code *)p_Var57)();
+            (*(code *)p_Var64)();
           }
         }
         local_2e8 = (_LIST_ENTRY *)0x0;
         local_2e0 = '\0';
-        uVar62 = local_414;
-        p_Stack_3d0 = p_Var64;
+        p_Stack_3d0 = p_Var46;
         local_3c8 = cVar17;
-LAB_43:
-        if (uVar62 == 0x8898008b) goto LAB_44;
-      }
-      p_Var50 = local_2e8;
+LAB_42:
+        if (uVar62 == 0x8898008b) goto LAB_43;
+      }
+      p_Var44 = local_2e8;
       if ((local_2e0 != '\0') && (local_2e8 != (_LIST_ENTRY *)0x0)) {
-        p_Var64 = local_2e8->Flink->Flink;
-        if (p_Var64 == (_LIST_ENTRY *)CRectanglesShape::_vector_deleting_destructor_) {
+        p_Var46 = local_2e8->Flink->Flink;
+        if (p_Var46 == (_LIST_ENTRY *)CRectanglesShape::_vector_deleting_destructor_) {
           CRectanglesShape::~CRectanglesShape((CRectanglesShape *)local_2e8);
-          CThreadLocalObjectCache<CRectanglesShape,CRectanglesShape>::Free(p_Var50);
-        }
-        else if (p_Var64 == (_LIST_ENTRY *)CRoundedRectangleShape::_scalar_deleting_destructor_) {
+          CThreadLocalObjectCache<CRectanglesShape,CRectanglesShape>::Free(p_Var44);
+        }
+        else if (p_Var46 == (_LIST_ENTRY *)CRoundedRectangleShape::_scalar_deleting_destructor_) {
           CRoundedRectangleShape::~CRoundedRectangleShape((CRoundedRectangleShape *)local_2e8);
-          CThreadLocalObjectCache<CRoundedRectangleShape,CRoundedRectangleShape>::Free(p_Var50);
-        }
-        else if (p_Var64 == (_LIST_ENTRY *)CPolygonShape::_vector_deleting_destructor_) {
+          CThreadLocalObjectCache<CRoundedRectangleShape,CRoundedRectangleShape>::Free(p_Var44);
+        }
+        else if (p_Var46 == (_LIST_ENTRY *)CPolygonShape::_vector_deleting_destructor_) {
           CPolygonShape::_vector_deleting_destructor_((CPolygonShape *)local_2e8,1);
         }
         else {
-          (*(code *)p_Var64)();
+          (*(code *)p_Var46)();
         }
       }
       local_2e8 = (_LIST_ENTRY *)0x0;
       local_2e0 = 0;
-      local_410[0] = uVar62;
+      p_Var44 = local_400;
+      local_414 = uVar62;
       if ((int)uVar62 < 0) {
         pcVar60 = (char *)0x0;
         pcVar59 = (code *)0x0;
-        MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,uVar62,0x160e,(void *)0x0);
-        pbVar63 = local_3f8;
-        p_Var50 = local_408;
-        p_Var64 = p_Var44;
+        MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,uVar62,0x1636,(void *)0x0);
+        pbVar63 = local_3f0;
+        p_Var46 = local_408;
+        p_Var64 = p_Var45;
+        p_Var57 = local_400;
         goto LAB_10;
       }
     }
-    p_Var50 = local_408;
+    p_Var46 = local_408;
     pCVar38 = (CMILMatrix *)&uStack_36c;
     if (p_Stack_3d0 == (_LIST_ENTRY *)0x0) {
-      pCVar38 = (CMILMatrix *)pNVar53;
+      pCVar38 = (CMILMatrix *)pNVar54;
     }
     cVar17 = (*(code *)local_408->Flink[0xb].Blink)(local_408);
     if (cVar17 == '\0') {
-      p_Var64 = p_Var44[0xe].Blink;
+      p_Var64 = p_Var45[0xe].Blink;
       if (*(int *)&p_Var64->Flink < 0) {
-        uVar23 = *(uint *)((longlong)&p_Var64->Flink + 4);
-        pp_Var54 = &p_Var64->Blink;
-        pNVar37 = pNVar53;
-        if (uVar23 != 0) {
+        uVar62 = *(uint *)((longlong)&p_Var64->Flink + 4);
+        pp_Var55 = &p_Var64->Blink;
+        pNVar37 = pNVar54;
+        if (uVar62 != 0) {
           do {
-            uVar25 = (uint)pNVar37;
-            if (*(char *)pp_Var54 == '\x01') break;
-            uVar25 = uVar25 + 1;
-            pNVar37 = (NodeEffects *)(ulonglong)uVar25;
-            pp_Var54 = (_LIST_ENTRY **)((longlong)pp_Var54 + 1);
-          } while (uVar25 < uVar23);
-        }
-        uVar23 = *(uint *)((longlong)&p_Var64->Flink + 4);
-        if (uVar25 < uVar23) {
-          lVar61 = (ulonglong)uVar23 + 0xf;
-          pNVar53 = (NodeEffects *)
-                    (((ulonglong)uVar25 * 8 - (ulonglong)((uint)lVar61 & 7)) + lVar61 +
+            uVar22 = (uint)pNVar37;
+            if (*(char *)pp_Var55 == '\x01') break;
+            uVar22 = uVar22 + 1;
+            pNVar37 = (NodeEffects *)(ulonglong)uVar22;
+            pp_Var55 = (_LIST_ENTRY **)((longlong)pp_Var55 + 1);
+          } while (uVar22 < uVar62);
+        }
+        uVar62 = *(uint *)((longlong)&p_Var64->Flink + 4);
+        if (uVar22 < uVar62) {
+          lVar61 = (ulonglong)uVar62 + 0xf;
+          pNVar54 = (NodeEffects *)
+                    (((ulonglong)uVar22 * 8 - (ulonglong)((uint)lVar61 & 7)) + lVar61 +
                     (longlong)p_Var64);
         }
-        puVar31 = *(undefined8 **)pNVar53;
+        puVar31 = *(undefined8 **)pNVar54;
         if (puVar31 != (undefined8 *)0x0) {
           for (puVar36 = (undefined8 *)*puVar31; puVar36 != puVar31;
               puVar36 = (undefined8 *)*puVar36) {
             this_05 = (CTreeData *)(puVar36 + -0x2c);
-            if ((_LIST_ENTRY *)puVar36[4] == p_Var50) goto LAB_47;
-          }
-        }
-      }
+            if ((_LIST_ENTRY *)puVar36[4] == p_Var46) goto LAB_46;
+          }
+        }
+      }
+LAB_47:
+      uVar22 = 0x88982f04;
+      uVar62 = 0;
+      MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,-0x7767d0fc,0x6aa,(void *)0x0);
 LAB_48:
-      uVar62 = 0x88982f04;
-      uVar23 = 0;
-      MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,-0x7767d0fc,0x6aa,(void *)0x0);
-LAB_49:
-      p_Var64 = local_400;
-      if (local_400 == p_Var56[0x1f1].Flink) goto LAB_50;
-      if (*(char *)&p_Var56[0x1f8].Flink == '\0') {
-        GetWorldTransform((CDrawingContext *)p_Var56,(CMILMatrix *)local_3b0);
+      p_Var64 = local_3f8;
+      if (local_3f8 == p_Var44[0x1f1].Flink) goto LAB_49;
+      if (*(char *)&p_Var44[0x1f8].Flink == '\0') {
+        GetWorldTransform((CDrawingContext *)p_Var44,(CMILMatrix *)local_3b0);
       }
     }
     else {
-      this_05 = (CTreeData *)&p_Var44[0x14].Blink;
-LAB_47:
-      if (this_05 == (CTreeData *)0x0) goto LAB_48;
+      this_05 = (CTreeData *)&p_Var45[0x14].Blink;
+LAB_46:
+      if (this_05 == (CTreeData *)0x0) goto LAB_47;
       local_418[0] = false;
-      CVisual::EnsureWorldTransform((CVisual *)p_Var44,(CVisualTree *)p_Var50,this_05);
+      CVisual::EnsureWorldTransform((CVisual *)p_Var45,(CVisualTree *)p_Var46,this_05);
       pbVar63 = (bool *)local_418;
       CTreeData::GetWorldTransform(this_05,(CMILMatrix *)local_3b0,pbVar63,pCVar38);
-      uVar62 = (uint)pCVar38;
-      uVar23 = (uint)pbVar63;
-      if ((bool)local_418[0] == false) goto LAB_49;
-LAB_50:
-      p_Var50 = local_400;
-      p_Var44 = local_380;
-      if (*(char *)&p_Var56[0x1f8].Flink == '\0') {
+      uVar22 = (uint)pCVar38;
+      uVar62 = (uint)pbVar63;
+      if ((bool)local_418[0] == false) goto LAB_48;
+LAB_49:
+      p_Var46 = local_3f8;
+      p_Var45 = local_380;
+      if (*(char *)&p_Var44[0x1f8].Flink == '\0') {
         cVar17 = (char)(bStack_370 << 6) >> 6;
         if (cVar17 < '\x01') {
           if (cVar17 < '\0') {
-LAB_51:
-            local_3b0 = (undefined1  [8])p_Var56[6].Flink;
-            uStack_3a8 = p_Var56[6].Blink;
-            local_3a0 = p_Var56[7].Flink;
-            _auStack_398 = *(undefined1 (*) [16])&p_Var56[7].Blink;
-            uStack_388 = p_Var56[8].Blink;
-            fStack_378 = SUB84(p_Var56[9].Blink,0);
-            fStack_374 = (float)((ulonglong)p_Var56[9].Blink >> 0x20);
-            uVar66 = *(undefined4 *)&p_Var56[10].Flink;
+LAB_50:
+            local_3b0 = (undefined1  [8])p_Var44[6].Flink;
+            uStack_3a8 = p_Var44[6].Blink;
+            local_3a0 = p_Var44[7].Flink;
+            _auStack_398 = *(undefined1 (*) [16])&p_Var44[7].Blink;
+            uStack_388 = p_Var44[8].Blink;
+            fStack_378 = SUB84(p_Var44[9].Blink,0);
+            fStack_374 = (float)((ulonglong)p_Var44[9].Blink >> 0x20);
+            uVar66 = *(undefined4 *)&p_Var44[10].Flink;
             bStack_370 = (byte)uVar66;
             bStack_36f = (byte)((uint)uVar66 >> 8);
             uStack_36e = (undefined2)((uint)uVar66 >> 0x10);
-            p_Var44 = p_Var56[9].Flink;
-            goto LAB_52;
+            p_Var45 = p_Var44[9].Flink;
+            goto LAB_51;
           }
           cVar17 = (char)(bStack_36f << 4) >> 6;
           if (cVar17 < '\x01') {
             if (-1 < cVar17) {
               cVar17 = (char)(bStack_36f << 2) >> 6;
               if (cVar17 < '\x01') {
                 if (-1 < cVar17) {
                   if (8.138021e-05 <=
                       ABS((ABS((float)auStack_398._4_4_) * 61440.0 + ABS(uStack_3a8._4_4_) * 61440.0
                           + ABS(fStack_374)) - 1.0)) {
                     bStack_36f = bStack_36f & 0xdf | 0x10;
-                    goto LAB_53;
+                    goto LAB_52;
                   }
                   bStack_36f = bStack_36f | 0x30;
                 }
                 if (((ABS(ABS(uStack_388._4_4_) * 61440.0 - 0.0) < 8.138021e-05) &&
                     (ABS((float)local_390 - 0.0) < 8.138021e-05)) &&
                    (ABS(local_390._4_4_ - 0.0) < 8.138021e-05)) {
                   bStack_36f = bStack_36f | 0xc;
-                  goto LAB_54;
+                  goto LAB_53;
                 }
               }
-LAB_53:
+LAB_52:
               bStack_36f = bStack_36f & 0xf7 | 4;
               bStack_370 = bStack_370 & 0xfd | 1;
-              goto LAB_55;
-            }
-LAB_54:
+              goto LAB_54;
+            }
+LAB_53:
             cVar17 = (char)(bStack_370 << 4) >> 6;
             if (cVar17 < '\x01') {
               if (-1 < cVar17) {
                 cVar17 = (char)(bStack_36f << 2) >> 6;
                 if (cVar17 < '\x01') {
                   if (-1 < cVar17) {
                     if (8.138021e-05 <=
                         ABS((ABS((float)auStack_398._4_4_) * 61440.0 +
                              ABS(uStack_3a8._4_4_) * 61440.0 + ABS(fStack_374)) - 1.0)) {
                       bStack_36f = bStack_36f & 0xdf | 0x10;
-                      goto LAB_56;
+                      goto LAB_55;
                     }
                     bStack_36f = bStack_36f | 0x30;
                   }
                   if ((ABS((float)uStack_3a8 - 0.0) < 8.138021e-05) &&
                      (ABS((float)auStack_398._0_4_ - 0.0) < 8.138021e-05)) {
                     bStack_370 = bStack_370 | 0xc;
-                    goto LAB_57;
+                    goto LAB_56;
                   }
                 }
+LAB_55:
+                bStack_370 = bStack_370 & 0xf5 | 5;
+                goto LAB_54;
+              }
 LAB_56:
-                bStack_370 = bStack_370 & 0xf5 | 5;
-                goto LAB_55;
-              }
-LAB_57:
               cVar17 = (char)(bStack_370 << 2) >> 6;
               if (cVar17 < '\x01') {
                 if (-1 < cVar17) {
                   if ((char)bStack_370 >> 6 < '\x01') {
                     if ((char)bStack_370 >> 6 < '\0') {
-LAB_58:
+LAB_57:
                       if ((ABS((float)local_3b0._0_4_ - 1.0) < 8.138021e-05) &&
                          (ABS(local_3a0._4_4_ - 1.0) < 8.138021e-05)) {
                         bStack_370 = bStack_370 | 0x30;
-                        goto LAB_59;
+                        goto LAB_58;
                       }
                     }
                     else {
                       cVar17 = (char)(bStack_36f << 2) >> 6;
                       if (cVar17 < '\x01') {
                         if (-1 < cVar17) {
                           if (8.138021e-05 <=
                               ABS((ABS((float)auStack_398._4_4_) * 61440.0 +
                                    ABS(uStack_3a8._4_4_) * 61440.0 + ABS(fStack_374)) - 1.0)) {
                             bStack_36f = bStack_36f & 0xdf | 0x10;
                             bStack_370 = bStack_370 & 0x3f | 0x40;
-                            goto LAB_60;
+                            goto LAB_59;
                           }
                           bStack_36f = bStack_36f | 0x30;
                         }
                         if ((ABS((float)local_3b0._4_4_ - 0.0) < 8.138021e-05) &&
                            (ABS((float)local_3a0 - 0.0) < 8.138021e-05)) {
                           bStack_370 = bStack_370 | 0xc0;
-                          goto LAB_58;
+                          goto LAB_57;
                         }
                       }
                       bStack_370 = bStack_370 & 0x3f | 0x40;
                     }
                   }
-LAB_60:
+LAB_59:
                   bStack_370 = bStack_370 & 0xdd | 0x11;
-                  goto LAB_55;
+                  goto LAB_54;
                 }
-LAB_59:
+LAB_58:
                 if ((((ABS((float)uStack_388 - 1.0) < 8.138021e-05) &&
                      (ABS((float)local_380 - 0.0) < 8.138021e-05)) &&
                     (ABS(local_380._4_4_ - 0.0) < 8.138021e-05)) &&
-                   (ABS(fStack_378 - 0.0) < 8.138021e-05)) goto LAB_51;
+                   (ABS(fStack_378 - 0.0) < 8.138021e-05)) goto LAB_50;
               }
             }
           }
           bStack_370 = bStack_370 & 0xfd | 1;
         }
-LAB_55:
-        cVar17 = (char)(*(char *)&p_Var56[10].Flink << 6) >> 6;
+LAB_54:
+        cVar17 = (char)(*(char *)&p_Var44[10].Flink << 6) >> 6;
         if (cVar17 < '\x01') {
-          if (cVar17 < '\0') goto LAB_52;
-          bVar19 = CMILMatrix::IsPure2DUniformZ<1>((CMILMatrix *)(p_Var56 + 6));
-          if ((bVar19) && (cVar17 = (char)(*(char *)&p_Var56[10].Flink << 2) >> 6, cVar17 < '\x01'))
-          {
-            if (-1 < cVar17) {
-              bVar19 = CMILMatrix::IsTranslateAndScaleIgnoreZ<1>((CMILMatrix *)(p_Var56 + 6));
-              if (((!bVar19) || (8.138021e-05 <= ABS(*(float *)&p_Var56[6].Flink - 1.0))) ||
-                 (8.138021e-05 <= ABS(*(float *)((longlong)&p_Var56[7].Flink + 4) - 1.0))) {
-                *(byte *)&p_Var56[10].Flink = *(byte *)&p_Var56[10].Flink & 0xdf | 0x10;
-                goto LAB_61;
-              }
-              *(byte *)&p_Var56[10].Flink = *(byte *)&p_Var56[10].Flink | 0x30;
-            }
-            if ((((ABS(*(float *)&p_Var56[8].Blink - 1.0) < 8.138021e-05) &&
-                 (ABS(*(float *)&p_Var56[9].Flink - 0.0) < 8.138021e-05)) &&
-                (ABS(*(float *)((longlong)&p_Var56[9].Flink + 4) - 0.0) < 8.138021e-05)) &&
-               (ABS(*(float *)&p_Var56[9].Blink - 0.0) < 8.138021e-05)) {
-              *(byte *)&p_Var56[10].Flink = *(byte *)&p_Var56[10].Flink | 3;
-              p_Var44 = local_380;
-              goto LAB_52;
-            }
-          }
-LAB_61:
-          *(byte *)&p_Var56[10].Flink = *(byte *)&p_Var56[10].Flink & 0xfd | 1;
-        }
-        bVar67 = *(byte *)((longlong)&p_Var56[10].Flink + 1);
-        uVar23 = (uint)bVar67;
-        if ((char)((bVar67 & 0xfc) << 4) < '\x01') {
-          if ((bVar67 & 8) == 0) {
-            cVar17 = (char)(bVar67 << 2) >> 6;
-            uVar23 = (uint)bVar67;
-            if (cVar17 < '\x01') {
-              if (cVar17 < '\0') {
-                fVar93 = *(float *)((longlong)&p_Var56[8].Blink + 4);
-              }
-              else {
-                if (8.138021e-05 <=
-                    ABS((ABS(*(float *)((longlong)&p_Var56[7].Blink + 4)) * 61440.0 +
-                         ABS(*(float *)((longlong)&p_Var56[6].Blink + 4)) * 61440.0 +
-                        ABS(*(float *)((longlong)&p_Var56[9].Blink + 4))) - 1.0)) {
-                  bVar67 = bVar67 & 0xdf | 0x10;
-                  uVar23 = (uint)bVar67;
-                  *(byte *)((longlong)&p_Var56[10].Flink + 1) = bVar67;
+          if (-1 < cVar17) {
+            bVar19 = CMILMatrix::IsTranslate<1>((CMILMatrix *)(p_Var44 + 6));
+            if (((!bVar19) || (8.138021e-05 <= ABS(*(float *)&p_Var44[9].Flink - 0.0))) ||
+               ((8.138021e-05 <= ABS(*(float *)((longlong)&p_Var44[9].Flink + 4) - 0.0) ||
+                (8.138021e-05 <= ABS(*(float *)&p_Var44[9].Blink - 0.0))))) {
+              *(byte *)&p_Var44[10].Flink = *(byte *)&p_Var44[10].Flink & 0xfd | 1;
+              goto LAB_60;
+            }
+            *(byte *)&p_Var44[10].Flink = *(byte *)&p_Var44[10].Flink | 3;
+            p_Var45 = local_380;
+          }
+        }
+        else {
+LAB_60:
+          bVar67 = *(byte *)((longlong)&p_Var44[10].Flink + 1);
+          uVar62 = (uint)bVar67;
+          if ((char)((bVar67 & 0xfc) << 4) < '\x01') {
+            if ((bVar67 & 8) == 0) {
+              cVar17 = (char)(bVar67 << 2) >> 6;
+              uVar62 = (uint)bVar67;
+              if (cVar17 < '\x01') {
+                if (cVar17 < '\0') {
+                  fVar93 = *(float *)((longlong)&p_Var44[8].Blink + 4);
+                }
+                else {
+                  if (8.138021e-05 <=
+                      ABS((ABS(*(float *)((longlong)&p_Var44[7].Blink + 4)) * 61440.0 +
+                           ABS(*(float *)((longlong)&p_Var44[6].Blink + 4)) * 61440.0 +
+                          ABS(*(float *)((longlong)&p_Var44[9].Blink + 4))) - 1.0)) {
+                    bVar67 = bVar67 & 0xdf | 0x10;
+                    uVar62 = (uint)bVar67;
+                    *(byte *)((longlong)&p_Var44[10].Flink + 1) = bVar67;
+                    goto LAB_61;
+                  }
+                  *(char *)((longlong)&p_Var44[10].Flink + 1) = (char)(bVar67 | 0x30);
+                  fVar93 = *(float *)((longlong)&p_Var44[8].Blink + 4);
+                  uVar62 = bVar67 | 0x30;
+                }
+                if (((ABS(ABS(fVar93) * 61440.0 - 0.0) < 8.138021e-05) &&
+                    (ABS(*(float *)&p_Var44[8].Flink - 0.0) < 8.138021e-05)) &&
+                   (ABS(*(float *)((longlong)&p_Var44[8].Flink + 4) - 0.0) < 8.138021e-05)) {
+                  bVar67 = *(byte *)((longlong)&p_Var44[10].Flink + 1) | 0xc;
+                  *(byte *)((longlong)&p_Var44[10].Flink + 1) = bVar67;
                   goto LAB_62;
                 }
-                *(char *)((longlong)&p_Var56[10].Flink + 1) = (char)(bVar67 | 0x30);
-                fVar93 = *(float *)((longlong)&p_Var56[8].Blink + 4);
-                uVar23 = bVar67 | 0x30;
-              }
-              if (((ABS(ABS(fVar93) * 61440.0 - 0.0) < 8.138021e-05) &&
-                  (ABS(*(float *)&p_Var56[8].Flink - 0.0) < 8.138021e-05)) &&
-                 (ABS(*(float *)((longlong)&p_Var56[8].Flink + 4) - 0.0) < 8.138021e-05)) {
-                bVar67 = *(byte *)((longlong)&p_Var56[10].Flink + 1) | 0xc;
-                *(byte *)((longlong)&p_Var56[10].Flink + 1) = bVar67;
-                goto LAB_63;
-              }
+              }
+LAB_61:
+              *(byte *)((longlong)&p_Var44[10].Flink + 1) =
+                   *(byte *)((longlong)&p_Var44[10].Flink + 1) & 0xf7 | 4;
+              goto LAB_63;
             }
 LAB_62:
-            *(byte *)((longlong)&p_Var56[10].Flink + 1) =
-                 *(byte *)((longlong)&p_Var56[10].Flink + 1) & 0xf7 | 4;
-            goto LAB_64;
-          }
-LAB_63:
-          uVar23 = (uint)bVar67;
-          cVar17 = (char)(*(char *)&p_Var56[10].Flink << 4) >> 6;
-          if ('\0' < cVar17) goto LAB_64;
-          if (-1 < cVar17) {
-            cVar17 = (char)(bVar67 << 2) >> 6;
-            if (cVar17 < '\x01') {
-              if (-1 < cVar17) {
-                if (8.138021e-05 <=
-                    ABS((ABS(*(float *)((longlong)&p_Var56[7].Blink + 4)) * 61440.0 +
-                         ABS(*(float *)((longlong)&p_Var56[6].Blink + 4)) * 61440.0 +
-                        ABS(*(float *)((longlong)&p_Var56[9].Blink + 4))) - 1.0)) {
-                  uVar23 = uVar23 & 0xffffffdf | 0x10;
-                  *(char *)((longlong)&p_Var56[10].Flink + 1) = (char)uVar23;
-                  goto LAB_65;
-                }
-                uVar23 = uVar23 | 0x30;
-                *(char *)((longlong)&p_Var56[10].Flink + 1) = (char)uVar23;
-              }
-              if ((ABS(*(float *)&p_Var56[6].Blink - 0.0) < 8.138021e-05) &&
-                 (ABS(*(float *)&p_Var56[7].Blink - 0.0) < 8.138021e-05)) {
-                *(byte *)&p_Var56[10].Flink = *(byte *)&p_Var56[10].Flink | 0xc;
-                goto LAB_66;
-              }
-            }
-LAB_65:
-            *(byte *)&p_Var56[10].Flink = *(byte *)&p_Var56[10].Flink & 0xf7 | 4;
-            goto LAB_64;
-          }
-LAB_66:
-          cVar17 = (char)(*(char *)&p_Var56[10].Flink << 2) >> 6;
-          if ('\0' < cVar17) goto LAB_64;
-          if (-1 < cVar17) {
-            bVar19 = CMILMatrix::IsTranslateAndScaleIgnoreZ<1>((CMILMatrix *)(p_Var56 + 6));
-            if (((!bVar19) || (8.138021e-05 <= ABS(*(float *)&p_Var56[6].Flink - 1.0))) ||
-               (8.138021e-05 <= ABS(*(float *)((longlong)&p_Var56[7].Flink + 4) - 1.0))) {
-              *(byte *)&p_Var56[10].Flink = *(byte *)&p_Var56[10].Flink & 0xdf | 0x10;
-              goto LAB_64;
-            }
-            *(byte *)&p_Var56[10].Flink = *(byte *)&p_Var56[10].Flink | 0x30;
-          }
-          auVar6 = _auStack_398;
-          if (8.138021e-05 <= ABS(*(float *)&p_Var56[8].Blink - 1.0)) goto LAB_64;
-          fVar93 = *(float *)&p_Var56[9].Flink;
-          fVar96 = *(float *)&p_Var56[9].Blink;
-          fVar95 = *(float *)((longlong)&p_Var56[9].Flink + 4);
-          if (((ABS(fVar93) < 8.138021e-05) && (ABS(fVar95) < 8.138021e-05)) &&
-             (p_Var44 = local_380, ABS(fVar96) < 8.138021e-05)) goto LAB_52;
-          cVar17 = (char)(bStack_36f << 2) >> 6;
-          if (cVar17 < '\x01') {
+            uVar62 = (uint)bVar67;
+            cVar17 = (char)(*(char *)&p_Var44[10].Flink << 4) >> 6;
+            if ('\0' < cVar17) goto LAB_63;
             if (-1 < cVar17) {
-              if (8.138021e-05 <=
-                  ABS((ABS((float)auStack_398._4_4_) * 61440.0 + ABS(uStack_3a8._4_4_) * 61440.0 +
-                      ABS(fStack_374)) - 1.0)) {
-                bStack_36f = bStack_36f & 0xdf | 0x10;
-              }
-              else {
-                bStack_36f = bStack_36f | 0x30;
-                if (ABS(ABS(uStack_388._4_4_) * 61440.0 - 0.0) < 8.138021e-05) goto LAB_67;
-              }
-              goto LAB_68;
-            }
-            if (8.138021e-05 <= ABS(ABS(uStack_388._4_4_) * 61440.0 - 0.0)) goto LAB_68;
-LAB_67:
-            fStack_378 = fStack_378 + fVar96;
-            local_380 = (_LIST_ENTRY *)CONCAT44(local_380._4_4_ + fVar95,(float)local_380 + fVar93);
-          }
-          else {
-LAB_68:
-            local_3b0._4_4_ = (float)local_3b0._4_4_ + uStack_3a8._4_4_ * fVar95;
-            local_3b0._0_4_ = (float)local_3b0._0_4_ + uStack_3a8._4_4_ * fVar93;
-            uStack_3a8 = (_LIST_ENTRY *)
-                         CONCAT44(uStack_3a8._4_4_,(float)uStack_3a8 + uStack_3a8._4_4_ * fVar96);
-            fVar94 = (float)auStack_398._4_4_ * fVar96;
-            local_3a0 = (_LIST_ENTRY *)
-                        CONCAT44(local_3a0._4_4_ + (float)auStack_398._4_4_ * fVar95,
-                                 (float)local_3a0 + (float)auStack_398._4_4_ * fVar93);
-            auStack_398._0_4_ = (float)auStack_398._0_4_ + fVar94;
-            auVar11 = _auStack_398;
-            local_390._0_4_ = auVar6._8_4_;
-            local_390._4_4_ = auVar6._12_4_;
-            auStack_398 = auVar11._0_8_;
-            local_390._0_4_ = (float)local_390 + uStack_388._4_4_ * fVar93;
-            local_390._4_4_ = local_390._4_4_ + uStack_388._4_4_ * fVar95;
-            uStack_388 = (_LIST_ENTRY *)
-                         CONCAT44(uStack_388._4_4_,(float)uStack_388 + uStack_388._4_4_ * fVar96);
-            fVar93 = (float)local_380 + fStack_374 * fVar93;
-            fVar95 = fStack_374 * fVar95;
-            fVar96 = fStack_374 * fVar96;
-LAB_69:
-            bStack_36f = bStack_36f & 0xf3;
-            local_380 = (_LIST_ENTRY *)CONCAT44(local_380._4_4_ + fVar95,fVar93);
-            fStack_378 = fStack_378 + fVar96;
-          }
-LAB_70:
-          bStack_370 = bStack_370 & 0xfc;
-          p_Var44 = local_380;
-        }
-        else {
-LAB_64:
-          cVar17 = (char)(bStack_36f << 4) >> 6;
-          if (cVar17 < '\x01') {
-            if (-1 < cVar17) {
-              cVar17 = (char)(bStack_36f << 2) >> 6;
+              cVar17 = (char)(bVar67 << 2) >> 6;
               if (cVar17 < '\x01') {
                 if (-1 < cVar17) {
                   if (8.138021e-05 <=
-                      ABS((ABS((float)auStack_398._4_4_) * 61440.0 + ABS(uStack_3a8._4_4_) * 61440.0
-                          + ABS(fStack_374)) - 1.0)) {
-                    bStack_36f = bStack_36f & 0xdf | 0x10;
-                    goto LAB_71;
+                      ABS((ABS(*(float *)((longlong)&p_Var44[7].Blink + 4)) * 61440.0 +
+                           ABS(*(float *)((longlong)&p_Var44[6].Blink + 4)) * 61440.0 +
+                          ABS(*(float *)((longlong)&p_Var44[9].Blink + 4))) - 1.0)) {
+                    uVar62 = uVar62 & 0xffffffdf | 0x10;
+                    *(char *)((longlong)&p_Var44[10].Flink + 1) = (char)uVar62;
+                    goto LAB_64;
                   }
-                  bStack_36f = bStack_36f | 0x30;
+                  uVar62 = uVar62 | 0x30;
+                  *(char *)((longlong)&p_Var44[10].Flink + 1) = (char)uVar62;
                 }
-                if (((ABS(ABS(uStack_388._4_4_) * 61440.0 - 0.0) < 8.138021e-05) &&
-                    (ABS((float)local_390 - 0.0) < 8.138021e-05)) &&
-                   (ABS(local_390._4_4_ - 0.0) < 8.138021e-05)) {
-                  bStack_36f = bStack_36f | 0xc;
-                  goto LAB_72;
+                if ((ABS(*(float *)&p_Var44[6].Blink - 0.0) < 8.138021e-05) &&
+                   (ABS(*(float *)&p_Var44[7].Blink - 0.0) < 8.138021e-05)) {
+                  *(byte *)&p_Var44[10].Flink = *(byte *)&p_Var44[10].Flink | 0xc;
+                  goto LAB_65;
                 }
               }
-LAB_71:
-              bStack_36f = bStack_36f & 0xf7 | 4;
-              goto LAB_73;
-            }
-LAB_72:
-            cVar17 = (char)(bStack_370 << 4) >> 6;
-            if ('\0' < cVar17) goto LAB_73;
+LAB_64:
+              *(byte *)&p_Var44[10].Flink = *(byte *)&p_Var44[10].Flink & 0xf7 | 4;
+              goto LAB_63;
+            }
+LAB_65:
+            cVar17 = (char)(*(char *)&p_Var44[10].Flink << 2) >> 6;
+            if ('\0' < cVar17) goto LAB_63;
             if (-1 < cVar17) {
-              cVar17 = (char)(bStack_36f << 2) >> 6;
-              if (cVar17 < '\x01') {
-                if (-1 < cVar17) {
-                  if (8.138021e-05 <=
-                      ABS((ABS((float)auStack_398._4_4_) * 61440.0 + ABS(uStack_3a8._4_4_) * 61440.0
-                          + ABS(fStack_374)) - 1.0)) {
-                    bStack_36f = bStack_36f & 0xdf | 0x10;
-                    bStack_370 = bStack_370 & 0xf7 | 4;
-                    goto LAB_73;
-                  }
-                  bStack_36f = bStack_36f | 0x30;
-                }
-                if ((ABS((float)uStack_3a8 - 0.0) < 8.138021e-05) &&
-                   (ABS((float)auStack_398._0_4_ - 0.0) < 8.138021e-05)) {
-                  bStack_370 = bStack_370 | 0xc;
-                  goto LAB_74;
-                }
-              }
-              bStack_370 = bStack_370 & 0xf7 | 4;
-              goto LAB_73;
-            }
-LAB_74:
-            cVar17 = (char)(bStack_370 << 2) >> 6;
-            if ('\0' < cVar17) goto LAB_73;
-            if (-1 < cVar17) {
-              bVar19 = CMILMatrix::IsTranslateAndScaleIgnoreZ<1>((CMILMatrix *)local_3b0);
-              if (((!bVar19) || (8.138021e-05 <= ABS((float)local_3b0._0_4_ - 1.0))) ||
-                 (8.138021e-05 <= ABS(local_3a0._4_4_ - 1.0))) {
-                bStack_370 = bStack_370 & 0xdf | 0x10;
-                goto LAB_73;
-              }
-              bStack_370 = bStack_370 | 0x30;
-            }
-            fVar93 = fStack_378;
-            if (8.138021e-05 <= ABS((float)uStack_388 - 1.0)) goto LAB_73;
-            local_3b0 = (undefined1  [8])p_Var56[6].Flink;
-            fVar94 = *(float *)((longlong)&p_Var56[6].Blink + 4);
-            uStack_3a8 = p_Var56[6].Blink;
-            fVar97 = (float)local_380;
-            fVar98 = local_380._4_4_;
-            local_3a0 = p_Var56[7].Flink;
-            fVar95 = *(float *)((longlong)&p_Var56[7].Blink + 4);
-            _auStack_398 = *(undefined1 (*) [16])&p_Var56[7].Blink;
-            fVar96 = *(float *)((longlong)&p_Var56[8].Blink + 4);
-            uStack_388 = p_Var56[8].Blink;
-            p_Var44 = p_Var56[9].Flink;
-            fStack_378 = SUB84(p_Var56[9].Blink,0);
-            fStack_374 = (float)((ulonglong)p_Var56[9].Blink >> 0x20);
-            uVar66 = *(undefined4 *)&p_Var56[10].Flink;
-            bStack_370 = (byte)uVar66;
-            bStack_36f = (byte)((uint)uVar66 >> 8);
-            uStack_36e = (undefined2)((uint)uVar66 >> 0x10);
-            if (((ABS((float)local_380) < 8.138021e-05) && (ABS(local_380._4_4_) < 8.138021e-05)) &&
-               (ABS(fVar93) < 8.138021e-05)) goto LAB_52;
-            local_380._0_4_ = SUB84(p_Var44,0);
-            fVar72 = local_380._4_4_ * *(float *)&p_Var56[7].Flink;
-            fVar82 = local_380._4_4_ * *(float *)((longlong)&p_Var56[7].Flink + 4);
-            local_380._4_4_ = (float)((ulonglong)p_Var44 >> 0x20);
-            local_380 = (_LIST_ENTRY *)
-                        CONCAT44(local_380._4_4_ +
-                                 fVar82 + *(float *)((longlong)&p_Var56[6].Flink + 4) * fVar97 +
-                                 *(float *)((longlong)&p_Var56[8].Flink + 4) * fVar93,
-                                 (float)local_380 +
-                                 fVar72 + *(float *)&p_Var56[6].Flink * fVar97 +
-                                 *(float *)&p_Var56[8].Flink * fVar93);
-            fStack_378 = fStack_378 +
-                         fVar98 * *(float *)&p_Var56[7].Blink + *(float *)&p_Var56[6].Blink * fVar97
-                         + *(float *)&p_Var56[8].Blink * fVar93;
+              bVar19 = CMILMatrix::IsTranslateAndScaleIgnoreZ<1>((CMILMatrix *)(p_Var44 + 6));
+              if (((!bVar19) || (8.138021e-05 <= ABS(*(float *)&p_Var44[6].Flink - 1.0))) ||
+                 (8.138021e-05 <= ABS(*(float *)((longlong)&p_Var44[7].Flink + 4) - 1.0))) {
+                *(byte *)&p_Var44[10].Flink = *(byte *)&p_Var44[10].Flink & 0xdf | 0x10;
+                goto LAB_63;
+              }
+              *(byte *)&p_Var44[10].Flink = *(byte *)&p_Var44[10].Flink | 0x30;
+            }
+            auVar6 = _auStack_398;
+            if (8.138021e-05 <= ABS(*(float *)&p_Var44[8].Blink - 1.0)) goto LAB_63;
+            fVar93 = *(float *)&p_Var44[9].Flink;
+            fVar96 = *(float *)&p_Var44[9].Blink;
+            fVar95 = *(float *)((longlong)&p_Var44[9].Flink + 4);
+            if (((ABS(fVar93) < 8.138021e-05) && (ABS(fVar95) < 8.138021e-05)) &&
+               (p_Var45 = local_380, ABS(fVar96) < 8.138021e-05)) goto LAB_51;
             cVar17 = (char)(bStack_36f << 2) >> 6;
             if (cVar17 < '\x01') {
               if (-1 < cVar17) {
                 if (8.138021e-05 <=
-                    ABS((ABS(fVar95) * 61440.0 + ABS(fVar94) * 61440.0 + ABS(fStack_374)) - 1.0))
-                goto LAB_75;
-                bStack_36f = bStack_36f | 0x30;
-              }
-              if (ABS(ABS(fVar96) * 61440.0 - 0.0) < 8.138021e-05) {
-                bStack_370 = bStack_370 & 0xfc;
-                p_Var44 = local_380;
-                goto LAB_52;
-              }
-            }
-LAB_75:
-            fStack_374 = fStack_374 + fVar98 * fVar95 + fVar94 * fVar97 + fVar96 * fVar93;
+                    ABS((ABS((float)auStack_398._4_4_) * 61440.0 + ABS(uStack_3a8._4_4_) * 61440.0 +
+                        ABS(fStack_374)) - 1.0)) {
+                  bStack_36f = bStack_36f & 0xdf | 0x10;
+                }
+                else {
+                  bStack_36f = bStack_36f | 0x30;
+                  if (ABS(ABS(uStack_388._4_4_) * 61440.0 - 0.0) < 8.138021e-05) goto LAB_66;
+                }
+                goto LAB_67;
+              }
+              if (8.138021e-05 <= ABS(ABS(uStack_388._4_4_) * 61440.0 - 0.0)) goto LAB_67;
+LAB_66:
+              fStack_378 = fStack_378 + fVar96;
+              local_380 = (_LIST_ENTRY *)
+                          CONCAT44(local_380._4_4_ + fVar95,(float)local_380 + fVar93);
+            }
+            else {
+LAB_67:
+              local_3b0._4_4_ = (float)local_3b0._4_4_ + uStack_3a8._4_4_ * fVar95;
+              local_3b0._0_4_ = (float)local_3b0._0_4_ + uStack_3a8._4_4_ * fVar93;
+              uStack_3a8 = (_LIST_ENTRY *)
+                           CONCAT44(uStack_3a8._4_4_,(float)uStack_3a8 + uStack_3a8._4_4_ * fVar96);
+              fVar94 = (float)auStack_398._4_4_ * fVar96;
+              local_3a0 = (_LIST_ENTRY *)
+                          CONCAT44(local_3a0._4_4_ + (float)auStack_398._4_4_ * fVar95,
+                                   (float)local_3a0 + (float)auStack_398._4_4_ * fVar93);
+              auStack_398._0_4_ = (float)auStack_398._0_4_ + fVar94;
+              auVar11 = _auStack_398;
+              local_390._0_4_ = auVar6._8_4_;
+              local_390._4_4_ = auVar6._12_4_;
+              auStack_398 = auVar11._0_8_;
+              local_390._0_4_ = (float)local_390 + uStack_388._4_4_ * fVar93;
+              local_390._4_4_ = local_390._4_4_ + uStack_388._4_4_ * fVar95;
+              uStack_388 = (_LIST_ENTRY *)
+                           CONCAT44(uStack_388._4_4_,(float)uStack_388 + uStack_388._4_4_ * fVar96);
+              fVar93 = (float)local_380 + fStack_374 * fVar93;
+              fVar95 = fStack_374 * fVar95;
+              fVar96 = fStack_374 * fVar96;
+LAB_68:
+              bStack_36f = bStack_36f & 0xf3;
+              local_380 = (_LIST_ENTRY *)CONCAT44(local_380._4_4_ + fVar95,fVar93);
+              fStack_378 = fStack_378 + fVar96;
+            }
+LAB_69:
+            bStack_370 = bStack_370 & 0xfc;
+            p_Var45 = local_380;
           }
           else {
-LAB_73:
-            bVar67 = *(byte *)((longlong)&p_Var56[10].Flink + 1);
-            uVar23 = (uint)bVar67;
-            uVar66 = auStack_398._0_4_;
-            if ((char)((bVar67 & 0xfc) << 4) < '\x01') {
-              if ((bVar67 & 8) == 0) {
-                cVar17 = (char)(bVar67 << 2) >> 6;
-                uVar23 = (uint)bVar67;
-                if (cVar17 < '\x01') {
-                  if (cVar17 < '\0') {
-                    fVar93 = *(float *)((longlong)&p_Var56[8].Blink + 4);
-                  }
-                  else {
-                    if (8.138021e-05 <=
-                        ABS((ABS(*(float *)((longlong)&p_Var56[7].Blink + 4)) * 61440.0 +
-                             ABS(*(float *)((longlong)&p_Var56[6].Blink + 4)) * 61440.0 +
-                            ABS(*(float *)((longlong)&p_Var56[9].Blink + 4))) - 1.0)) {
-                      bVar67 = bVar67 & 0xdf | 0x10;
-                      uVar23 = (uint)bVar67;
-                      *(byte *)((longlong)&p_Var56[10].Flink + 1) = bVar67;
-                      goto LAB_76;
-                    }
-                    *(char *)((longlong)&p_Var56[10].Flink + 1) = (char)(bVar67 | 0x30);
-                    fVar93 = *(float *)((longlong)&p_Var56[8].Blink + 4);
-                    uVar23 = bVar67 | 0x30;
-                  }
-                  if (((ABS(ABS(fVar93) * 61440.0 - 0.0) < 8.138021e-05) &&
-                      (ABS(*(float *)&p_Var56[8].Flink - 0.0) < 8.138021e-05)) &&
-                     (ABS(*(float *)((longlong)&p_Var56[8].Flink + 4) - 0.0) < 8.138021e-05)) {
-                    bVar67 = *(byte *)((longlong)&p_Var56[10].Flink + 1) | 0xc;
-                    *(byte *)((longlong)&p_Var56[10].Flink + 1) = bVar67;
-                    goto LAB_77;
-                  }
-                }
-LAB_76:
-                *(byte *)((longlong)&p_Var56[10].Flink + 1) =
-                     *(byte *)((longlong)&p_Var56[10].Flink + 1) & 0xf7 | 4;
-              }
-              else {
-LAB_77:
-                uVar23 = (uint)bVar67;
-                cVar17 = (char)(*(char *)&p_Var56[10].Flink << 4) >> 6;
-                if (cVar17 < '\x01') {
-                  if (cVar17 < '\0') {
-LAB_78:
-                    cVar17 = *(char *)&p_Var56[10].Flink >> 6;
-                    if (cVar17 < '\x01') {
-                      if (cVar17 < '\0') {
-LAB_79:
-                        fVar93 = *(float *)&p_Var56[6].Flink;
-                        fVar94 = *(float *)&p_Var56[9].Flink;
-                        fVar95 = *(float *)((longlong)&p_Var56[9].Flink + 4);
-                        fVar96 = *(float *)&p_Var56[9].Blink;
-                        fVar97 = *(float *)&p_Var56[8].Blink;
-                        fVar98 = *(float *)((longlong)&p_Var56[7].Flink + 4);
-                        if (((8.138021e-05 <= ABS(fVar93 - 1.0)) ||
-                            (8.138021e-05 <= ABS(fVar98 - 1.0))) ||
-                           (8.138021e-05 <= ABS(fVar97 - 1.0))) {
-                          local_390._0_4_ = (float)local_390 * fVar93;
-                          local_3b0._4_4_ = (float)local_3b0._4_4_ * fVar98;
-                          local_3b0._0_4_ = (float)local_3b0._0_4_ * fVar93;
-                          local_390._4_4_ = local_390._4_4_ * fVar98;
-                          local_3a0 = (_LIST_ENTRY *)
-                                      CONCAT44(local_3a0._4_4_ * fVar98,(float)local_3a0 * fVar93);
-                          local_380 = (_LIST_ENTRY *)
-                                      CONCAT44(local_380._4_4_ * fVar98,(float)local_380 * fVar93);
-                          if (8.138021e-05 <= ABS(fVar97 - 1.0)) {
-                            uStack_3a8 = (_LIST_ENTRY *)
-                                         CONCAT44(uStack_3a8._4_4_,(float)uStack_3a8 * fVar97);
-                            auStack_398._0_4_ = (float)uVar66 * fVar97;
-                            fStack_378 = fStack_378 * fVar97;
-                            uStack_388 = (_LIST_ENTRY *)
-                                         CONCAT44(uStack_388._4_4_,(float)uStack_388 * fVar97);
-                          }
-                          bStack_370 = bStack_370 & 0xcc;
-                        }
-                        auVar6 = _auStack_398;
-                        if (((ABS(fVar94) < 8.138021e-05) && (ABS(fVar95) < 8.138021e-05)) &&
-                           (p_Var44 = local_380, ABS(fVar96) < 8.138021e-05)) goto LAB_52;
-                        cVar17 = (char)(bStack_36f << 2) >> 6;
-                        if (cVar17 < '\x01') {
-                          if (-1 < cVar17) {
-                            if (8.138021e-05 <=
-                                ABS((ABS((float)auStack_398._4_4_) * 61440.0 +
-                                     ABS(uStack_3a8._4_4_) * 61440.0 + ABS(fStack_374)) - 1.0)) {
-                              bStack_36f = bStack_36f & 0xdf | 0x10;
-                              goto LAB_80;
-                            }
-                            bStack_36f = bStack_36f | 0x30;
-                          }
-                          if (ABS(ABS(uStack_388._4_4_) * 61440.0 - 0.0) < 8.138021e-05) {
-                            fStack_378 = fStack_378 + fVar96;
-                            local_380 = (_LIST_ENTRY *)
-                                        CONCAT44(local_380._4_4_ + fVar95,(float)local_380 + fVar94)
-                            ;
-                            goto LAB_70;
-                          }
-                        }
-LAB_80:
-                        local_3b0._4_4_ = (float)local_3b0._4_4_ + uStack_3a8._4_4_ * fVar95;
-                        local_3b0._0_4_ = (float)local_3b0._0_4_ + uStack_3a8._4_4_ * fVar94;
-                        uStack_3a8 = (_LIST_ENTRY *)
-                                     CONCAT44(uStack_3a8._4_4_,
-                                              (float)uStack_3a8 + uStack_3a8._4_4_ * fVar96);
-                        fVar93 = (float)auStack_398._4_4_ * fVar96;
-                        local_3a0 = (_LIST_ENTRY *)
-                                    CONCAT44(local_3a0._4_4_ + (float)auStack_398._4_4_ * fVar95,
-                                             (float)local_3a0 + (float)auStack_398._4_4_ * fVar94);
-                        auStack_398._0_4_ = (float)auStack_398._0_4_ + fVar93;
-                        auVar11 = _auStack_398;
-                        local_390._0_4_ = auVar6._8_4_;
-                        local_390._4_4_ = auVar6._12_4_;
-                        auStack_398 = auVar11._0_8_;
-                        local_390._0_4_ = (float)local_390 + uStack_388._4_4_ * fVar94;
-                        local_390._4_4_ = local_390._4_4_ + uStack_388._4_4_ * fVar95;
-                        uStack_388 = (_LIST_ENTRY *)
-                                     CONCAT44(uStack_388._4_4_,
-                                              (float)uStack_388 + uStack_388._4_4_ * fVar96);
-                        fVar93 = (float)local_380 + fStack_374 * fVar94;
-                        fVar95 = fStack_374 * fVar95;
-                        fVar96 = fStack_374 * fVar96;
-                        goto LAB_69;
-                      }
-                      bVar67 = *(byte *)((longlong)&p_Var56[10].Flink + 1);
-                      cVar17 = (char)(bVar67 << 2) >> 6;
-                      if (cVar17 < '\x01') {
-                        if (-1 < cVar17) {
-                          if (8.138021e-05 <=
-                              ABS((ABS(*(float *)((longlong)&p_Var56[7].Blink + 4)) * 61440.0 +
-                                   ABS(*(float *)((longlong)&p_Var56[6].Blink + 4)) * 61440.0 +
-                                  ABS(*(float *)((longlong)&p_Var56[9].Blink + 4))) - 1.0)) {
-                            *(byte *)((longlong)&p_Var56[10].Flink + 1) = bVar67 & 0xdf | 0x10;
-                            goto LAB_81;
-                          }
-                          *(byte *)((longlong)&p_Var56[10].Flink + 1) = bVar67 | 0x30;
-                        }
-                        if ((ABS(*(float *)((longlong)&p_Var56[6].Flink + 4) - 0.0) < 8.138021e-05)
-                           && (ABS(*(float *)&p_Var56[7].Flink - 0.0) < 8.138021e-05)) {
-                          *(byte *)&p_Var56[10].Flink = *(byte *)&p_Var56[10].Flink | 0xc0;
-                          goto LAB_79;
-                        }
-                      }
-LAB_81:
-                      *(byte *)&p_Var56[10].Flink = *(byte *)&p_Var56[10].Flink & 0x3f | 0x40;
-                    }
-                  }
-                  else {
-                    cVar17 = (char)(bVar67 << 2) >> 6;
-                    if (cVar17 < '\x01') {
-                      if (-1 < cVar17) {
-                        if (8.138021e-05 <=
-                            ABS((ABS(*(float *)((longlong)&p_Var56[7].Blink + 4)) * 61440.0 +
-                                 ABS(*(float *)((longlong)&p_Var56[6].Blink + 4)) * 61440.0 +
-                                ABS(*(float *)((longlong)&p_Var56[9].Blink + 4))) - 1.0)) {
-                          uVar23 = uVar23 & 0xffffffdf | 0x10;
-                          *(char *)((longlong)&p_Var56[10].Flink + 1) = (char)uVar23;
-                          goto LAB_82;
-                        }
-                        uVar23 = uVar23 | 0x30;
-                        *(char *)((longlong)&p_Var56[10].Flink + 1) = (char)uVar23;
-                      }
-                      if ((ABS(*(float *)&p_Var56[6].Blink - 0.0) < 8.138021e-05) &&
-                         (ABS(*(float *)&p_Var56[7].Blink - 0.0) < 8.138021e-05)) {
-                        *(byte *)&p_Var56[10].Flink = *(byte *)&p_Var56[10].Flink | 0xc;
-                        goto LAB_78;
-                      }
-                    }
-LAB_82:
-                    *(byte *)&p_Var56[10].Flink = *(byte *)&p_Var56[10].Flink & 0xf7 | 4;
-                  }
-                }
-              }
-            }
+LAB_63:
             cVar17 = (char)(bStack_36f << 4) >> 6;
             if (cVar17 < '\x01') {
-              if (cVar17 < '\0') {
-LAB_83:
-                cVar17 = (char)(bStack_370 << 4) >> 6;
-                if (cVar17 < '\x01') {
-                  if (cVar17 < '\0') {
-LAB_84:
-                    bVar19 = CMILMatrix::IsPure2DUniformZ<1>((CMILMatrix *)(p_Var56 + 6));
-                    if (bVar19) {
-                      fVar93 = *(float *)((longlong)&p_Var56[6].Flink + 4);
-                      fVar94 = *(float *)&p_Var56[6].Flink;
-                      fVar95 = *(float *)((longlong)&p_Var56[7].Flink + 4);
-                      fVar96 = *(float *)&p_Var56[7].Flink;
-                      fStack_374 = 1.0;
-                      uStack_36e = 0;
-                      bStack_36f = 0x28;
-                      uStack_3a8 = (_LIST_ENTRY *)0x0;
-                      bStack_370 = 8;
-                      fVar97 = (float)local_3b0._4_4_ * fVar96;
-                      local_3b0._4_4_ =
-                           (float)local_3b0._4_4_ * fVar95 + (float)local_3b0._0_4_ * fVar93;
-                      local_3b0._0_4_ = fVar97 + (float)local_3b0._0_4_ * fVar94;
-                      _auStack_398 = ZEXT416(0);
-                      local_3a0 = (_LIST_ENTRY *)
-                                  CONCAT44(local_3a0._4_4_ * fVar95 + (float)local_3a0 * fVar93,
-                                           local_3a0._4_4_ * fVar96 + (float)local_3a0 * fVar94);
-                      local_380 = (_LIST_ENTRY *)
-                                  CONCAT44(local_380._4_4_ * fVar95 + (float)local_380 * fVar93 +
-                                           *(float *)((longlong)&p_Var56[9].Flink + 4),
-                                           local_380._4_4_ * fVar96 + (float)local_380 * fVar94 +
-                                           *(float *)&p_Var56[9].Flink);
-                      uStack_388 = (_LIST_ENTRY *)
-                                   (ulonglong)
-                                   (uint)(*(float *)&p_Var56[8].Blink * (float)uStack_388);
-                      fStack_378 = *(float *)&p_Var56[8].Blink * fStack_378 +
-                                   *(float *)&p_Var56[9].Blink;
-                      p_Var44 = local_380;
-                      goto LAB_52;
-                    }
-                  }
-                  else {
-                    cVar17 = (char)(bStack_36f << 2) >> 6;
-                    if (cVar17 < '\x01') {
-                      if (-1 < cVar17) {
-                        if (8.138021e-05 <=
-                            ABS((ABS((float)auStack_398._4_4_) * 61440.0 +
-                                 ABS(uStack_3a8._4_4_) * 61440.0 + ABS(fStack_374)) - 1.0))
-                        goto LAB_85;
-                        bStack_36f = bStack_36f | 0x30;
-                      }
-                      if ((ABS((float)uStack_3a8 - 0.0) < 8.138021e-05) &&
-                         (ABS((float)auStack_398._0_4_ - 0.0) < 8.138021e-05)) {
-                        bStack_370 = bStack_370 | 0xc;
-                        goto LAB_84;
-                      }
-                    }
-                  }
-                }
-              }
-              else {
+              if (-1 < cVar17) {
                 cVar17 = (char)(bStack_36f << 2) >> 6;
                 if (cVar17 < '\x01') {
                   if (-1 < cVar17) {
                     if (8.138021e-05 <=
                         ABS((ABS((float)auStack_398._4_4_) * 61440.0 +
-                             ABS(uStack_3a8._4_4_) * 61440.0 + ABS(fStack_374)) - 1.0))
-                    goto LAB_85;
+                             ABS(uStack_3a8._4_4_) * 61440.0 + ABS(fStack_374)) - 1.0)) {
+                      bStack_36f = bStack_36f & 0xdf | 0x10;
+                      goto LAB_70;
+                    }
                     bStack_36f = bStack_36f | 0x30;
                   }
                   if (((ABS(ABS(uStack_388._4_4_) * 61440.0 - 0.0) < 8.138021e-05) &&
                       (ABS((float)local_390 - 0.0) < 8.138021e-05)) &&
                      (ABS(local_390._4_4_ - 0.0) < 8.138021e-05)) {
                     bStack_36f = bStack_36f | 0xc;
-                    goto LAB_83;
+                    goto LAB_71;
                   }
                 }
-              }
-            }
-LAB_85:
-            fVar93 = *(float *)&p_Var56[6].Flink;
-            fVar94 = *(float *)((longlong)&p_Var56[6].Flink + 4);
-            fVar95 = *(float *)&p_Var56[6].Blink;
-            fVar96 = *(float *)((longlong)&p_Var56[6].Blink + 4);
-            fVar97 = *(float *)&p_Var56[7].Flink;
-            fVar98 = *(float *)((longlong)&p_Var56[7].Flink + 4);
-            fVar72 = *(float *)&p_Var56[7].Blink;
-            fVar82 = *(float *)((longlong)&p_Var56[7].Blink + 4);
-            fVar73 = *(float *)&p_Var56[8].Flink;
-            fVar75 = *(float *)((longlong)&p_Var56[8].Flink + 4);
-            fVar76 = *(float *)&p_Var56[8].Blink;
-            fVar79 = *(float *)((longlong)&p_Var56[8].Blink + 4);
-            fVar12 = *(float *)&p_Var56[9].Flink;
-            fVar13 = *(float *)((longlong)&p_Var56[9].Flink + 4);
-            fVar14 = *(float *)&p_Var56[9].Blink;
-            fVar15 = *(float *)((longlong)&p_Var56[9].Blink + 4);
-            fVar84 = (float)local_3b0._0_4_ * fVar95;
-            fVar87 = (float)local_3b0._0_4_ * fVar96;
-            fVar74 = (float)local_3b0._4_4_ * fVar97;
-            fVar77 = (float)local_3b0._4_4_ * fVar72;
-            fVar80 = (float)local_3b0._4_4_ * fVar82;
-            fVar78 = local_3a0._4_4_ * fVar72;
-            fVar81 = local_3a0._4_4_ * fVar82;
-            fVar92 = (float)auStack_398._4_4_ * fVar14;
-            fVar85 = (float)local_3a0 * fVar95;
-            fVar88 = (float)local_3a0 * fVar96;
-            local_3b0._4_4_ =
-                 uStack_3a8._4_4_ * fVar13 + (float)local_3b0._4_4_ * fVar98 +
-                 (float)uStack_3a8 * fVar75 + (float)local_3b0._0_4_ * fVar94;
-            local_3b0._0_4_ =
-                 uStack_3a8._4_4_ * fVar12 + fVar74 +
-                 (float)uStack_3a8 * fVar73 + (float)local_3b0._0_4_ * fVar93;
-            uStack_3a8 = (_LIST_ENTRY *)
-                         CONCAT44(uStack_3a8._4_4_ * fVar15 + fVar80 +
-                                  (float)uStack_3a8 * fVar79 + fVar87,
-                                  uStack_3a8._4_4_ * fVar14 + fVar77 +
-                                  (float)uStack_3a8 * fVar76 + fVar84);
-            fVar83 = (float)local_390 * fVar94;
-            fVar86 = (float)local_390 * fVar95;
-            fVar89 = (float)local_390 * fVar96;
-            fVar74 = local_390._4_4_ * fVar72;
-            fVar77 = local_390._4_4_ * fVar82;
-            fVar90 = fStack_374 * fVar12;
-            fVar91 = fStack_374 * fVar13;
-            fVar80 = fStack_378 * fVar73;
-            fVar84 = fStack_378 * fVar75;
-            fVar87 = fStack_378 * fVar79;
-            local_3a0 = (_LIST_ENTRY *)
-                        CONCAT44((float)auStack_398._4_4_ * fVar13 + local_3a0._4_4_ * fVar98 +
-                                 (float)auStack_398._0_4_ * fVar75 + (float)local_3a0 * fVar94,
-                                 (float)auStack_398._4_4_ * fVar12 + local_3a0._4_4_ * fVar97 +
-                                 (float)auStack_398._0_4_ * fVar73 + (float)local_3a0 * fVar93);
-            auStack_398._4_4_ =
-                 (float)auStack_398._4_4_ * fVar15 + fVar81 +
-                 (float)auStack_398._0_4_ * fVar79 + fVar88;
-            auStack_398._0_4_ = fVar92 + fVar78 + (float)auStack_398._0_4_ * fVar76 + fVar85;
-            local_390._0_4_ =
-                 uStack_388._4_4_ * fVar12 + local_390._4_4_ * fVar97 +
-                 (float)uStack_388 * fVar73 + (float)local_390 * fVar93;
-            local_390._4_4_ =
-                 uStack_388._4_4_ * fVar13 + local_390._4_4_ * fVar98 +
-                 (float)uStack_388 * fVar75 + fVar83;
-            uStack_388 = (_LIST_ENTRY *)
-                         CONCAT44(uStack_388._4_4_ * fVar15 + fVar77 +
-                                  (float)uStack_388 * fVar79 + fVar89,
-                                  uStack_388._4_4_ * fVar14 + fVar74 +
-                                  (float)uStack_388 * fVar76 + fVar86);
-            fStack_378 = fStack_374 * fVar14 + local_380._4_4_ * fVar72 +
-                         fStack_378 * fVar76 + (float)local_380 * fVar95;
-            fStack_374 = fStack_374 * fVar15 + local_380._4_4_ * fVar82 +
-                         fVar87 + (float)local_380 * fVar96;
-            local_380 = (_LIST_ENTRY *)
-                        CONCAT44(fVar91 + local_380._4_4_ * fVar98 +
-                                 fVar84 + (float)local_380 * fVar94,
-                                 fVar90 + local_380._4_4_ * fVar97 +
-                                 fVar80 + (float)local_380 * fVar93);
-          }
-          bStack_370 = 0;
-          bStack_36f = 0;
-          uStack_36e = 0;
-          p_Var44 = local_380;
-        }
-      }
-LAB_52:
-      local_380 = p_Var44;
-      uVar25 = *(uint *)((longlong)&p_Var56[0x11].Flink + 4);
+LAB_70:
+                bStack_36f = bStack_36f & 0xf7 | 4;
+                goto LAB_72;
+              }
+LAB_71:
+              cVar17 = (char)(bStack_370 << 4) >> 6;
+              if ('\0' < cVar17) goto LAB_72;
+              if (-1 < cVar17) {
+                cVar17 = (char)(bStack_36f << 2) >> 6;
+                if (cVar17 < '\x01') {
+                  if (-1 < cVar17) {
+                    if (8.138021e-05 <=
+                        ABS((ABS((float)auStack_398._4_4_) * 61440.0 +
+                             ABS(uStack_3a8._4_4_) * 61440.0 + ABS(fStack_374)) - 1.0)) {
+                      bStack_36f = bStack_36f & 0xdf | 0x10;
+                      bStack_370 = bStack_370 & 0xf7 | 4;
+                      goto LAB_72;
+                    }
+                    bStack_36f = bStack_36f | 0x30;
+                  }
+                  if ((ABS((float)uStack_3a8 - 0.0) < 8.138021e-05) &&
+                     (ABS((float)auStack_398._0_4_ - 0.0) < 8.138021e-05)) {
+                    bStack_370 = bStack_370 | 0xc;
+                    goto LAB_73;
+                  }
+                }
+                bStack_370 = bStack_370 & 0xf7 | 4;
+                goto LAB_72;
+              }
+LAB_73:
+              cVar17 = (char)(bStack_370 << 2) >> 6;
+              if ('\0' < cVar17) goto LAB_72;
+              if (-1 < cVar17) {
+                bVar19 = CMILMatrix::IsTranslateAndScaleIgnoreZ<1>((CMILMatrix *)local_3b0);
+                if (((!bVar19) || (8.138021e-05 <= ABS((float)local_3b0._0_4_ - 1.0))) ||
+                   (8.138021e-05 <= ABS(local_3a0._4_4_ - 1.0))) {
+                  bStack_370 = bStack_370 & 0xdf | 0x10;
+                  goto LAB_72;
+                }
+                bStack_370 = bStack_370 | 0x30;
+              }
+              fVar93 = fStack_378;
+              if (8.138021e-05 <= ABS((float)uStack_388 - 1.0)) goto LAB_72;
+              local_3b0 = (undefined1  [8])p_Var44[6].Flink;
+              fVar94 = *(float *)((longlong)&p_Var44[6].Blink + 4);
+              uStack_3a8 = p_Var44[6].Blink;
+              fVar97 = (float)local_380;
+              fVar98 = local_380._4_4_;
+              local_3a0 = p_Var44[7].Flink;
+              fVar95 = *(float *)((longlong)&p_Var44[7].Blink + 4);
+              _auStack_398 = *(undefined1 (*) [16])&p_Var44[7].Blink;
+              fVar96 = *(float *)((longlong)&p_Var44[8].Blink + 4);
+              uStack_388 = p_Var44[8].Blink;
+              p_Var45 = p_Var44[9].Flink;
+              fStack_378 = SUB84(p_Var44[9].Blink,0);
+              fStack_374 = (float)((ulonglong)p_Var44[9].Blink >> 0x20);
+              uVar66 = *(undefined4 *)&p_Var44[10].Flink;
+              bStack_370 = (byte)uVar66;
+              bStack_36f = (byte)((uint)uVar66 >> 8);
+              uStack_36e = (undefined2)((uint)uVar66 >> 0x10);
+              if (((ABS((float)local_380) < 8.138021e-05) && (ABS(local_380._4_4_) < 8.138021e-05))
+                 && (ABS(fVar93) < 8.138021e-05)) goto LAB_51;
+              local_380._0_4_ = SUB84(p_Var45,0);
+              fVar72 = local_380._4_4_ * *(float *)&p_Var44[7].Flink;
+              fVar82 = local_380._4_4_ * *(float *)((longlong)&p_Var44[7].Flink + 4);
+              local_380._4_4_ = (float)((ulonglong)p_Var45 >> 0x20);
+              local_380 = (_LIST_ENTRY *)
+                          CONCAT44(local_380._4_4_ +
+                                   fVar82 + *(float *)((longlong)&p_Var44[6].Flink + 4) * fVar97 +
+                                   *(float *)((longlong)&p_Var44[8].Flink + 4) * fVar93,
+                                   (float)local_380 +
+                                   fVar72 + *(float *)&p_Var44[6].Flink * fVar97 +
+                                   *(float *)&p_Var44[8].Flink * fVar93);
+              fStack_378 = fStack_378 +
+                           fVar98 * *(float *)&p_Var44[7].Blink +
+                           *(float *)&p_Var44[6].Blink * fVar97 +
+                           *(float *)&p_Var44[8].Blink * fVar93;
+              cVar17 = (char)(bStack_36f << 2) >> 6;
+              if (cVar17 < '\x01') {
+                if (-1 < cVar17) {
+                  if (8.138021e-05 <=
+                      ABS((ABS(fVar95) * 61440.0 + ABS(fVar94) * 61440.0 + ABS(fStack_374)) - 1.0))
+                  goto LAB_74;
+                  bStack_36f = bStack_36f | 0x30;
+                }
+                if (ABS(ABS(fVar96) * 61440.0 - 0.0) < 8.138021e-05) {
+                  bStack_370 = bStack_370 & 0xfc;
+                  p_Var45 = local_380;
+                  goto LAB_51;
+                }
+              }
+LAB_74:
+              fStack_374 = fStack_374 + fVar98 * fVar95 + fVar94 * fVar97 + fVar96 * fVar93;
+            }
+            else {
+LAB_72:
+              bVar67 = *(byte *)((longlong)&p_Var44[10].Flink + 1);
+              uVar62 = (uint)bVar67;
+              uVar66 = auStack_398._0_4_;
+              if ((char)((bVar67 & 0xfc) << 4) < '\x01') {
+                if ((bVar67 & 8) == 0) {
+                  cVar17 = (char)(bVar67 << 2) >> 6;
+                  uVar62 = (uint)bVar67;
+                  if (cVar17 < '\x01') {
+                    if (cVar17 < '\0') {
+                      fVar93 = *(float *)((longlong)&p_Var44[8].Blink + 4);
+                    }
+                    else {
+                      if (8.138021e-05 <=
+                          ABS((ABS(*(float *)((longlong)&p_Var44[7].Blink + 4)) * 61440.0 +
+                               ABS(*(float *)((longlong)&p_Var44[6].Blink + 4)) * 61440.0 +
+                              ABS(*(float *)((longlong)&p_Var44[9].Blink + 4))) - 1.0)) {
+                        bVar67 = bVar67 & 0xdf | 0x10;
+                        uVar62 = (uint)bVar67;
+                        *(byte *)((longlong)&p_Var44[10].Flink + 1) = bVar67;
+                        goto LAB_75;
+                      }
+                      *(char *)((longlong)&p_Var44[10].Flink + 1) = (char)(bVar67 | 0x30);
+                      fVar93 = *(float *)((longlong)&p_Var44[8].Blink + 4);
+                      uVar62 = bVar67 | 0x30;
+                    }
+                    if (((ABS(ABS(fVar93) * 61440.0 - 0.0) < 8.138021e-05) &&
+                        (ABS(*(float *)&p_Var44[8].Flink - 0.0) < 8.138021e-05)) &&
+                       (ABS(*(float *)((longlong)&p_Var44[8].Flink + 4) - 0.0) < 8.138021e-05)) {
+                      bVar67 = *(byte *)((longlong)&p_Var44[10].Flink + 1) | 0xc;
+                      *(byte *)((longlong)&p_Var44[10].Flink + 1) = bVar67;
+                      goto LAB_76;
+                    }
+                  }
+LAB_75:
+                  *(byte *)((longlong)&p_Var44[10].Flink + 1) =
+                       *(byte *)((longlong)&p_Var44[10].Flink + 1) & 0xf7 | 4;
+                }
+                else {
+LAB_76:
+                  uVar62 = (uint)bVar67;
+                  cVar17 = (char)(*(char *)&p_Var44[10].Flink << 4) >> 6;
+                  if (cVar17 < '\x01') {
+                    if (cVar17 < '\0') {
+LAB_77:
+                      cVar17 = *(char *)&p_Var44[10].Flink >> 6;
+                      if (cVar17 < '\x01') {
+                        if (cVar17 < '\0') {
+LAB_78:
+                          fVar93 = *(float *)&p_Var44[6].Flink;
+                          fVar94 = *(float *)&p_Var44[9].Flink;
+                          fVar95 = *(float *)((longlong)&p_Var44[9].Flink + 4);
+                          fVar96 = *(float *)&p_Var44[9].Blink;
+                          fVar97 = *(float *)&p_Var44[8].Blink;
+                          fVar98 = *(float *)((longlong)&p_Var44[7].Flink + 4);
+                          if (((8.138021e-05 <= ABS(fVar93 - 1.0)) ||
+                              (8.138021e-05 <= ABS(fVar98 - 1.0))) ||
+                             (8.138021e-05 <= ABS(fVar97 - 1.0))) {
+                            local_390._0_4_ = (float)local_390 * fVar93;
+                            local_3b0._4_4_ = (float)local_3b0._4_4_ * fVar98;
+                            local_3b0._0_4_ = (float)local_3b0._0_4_ * fVar93;
+                            local_390._4_4_ = local_390._4_4_ * fVar98;
+                            local_3a0 = (_LIST_ENTRY *)
+                                        CONCAT44(local_3a0._4_4_ * fVar98,(float)local_3a0 * fVar93)
+                            ;
+                            local_380 = (_LIST_ENTRY *)
+                                        CONCAT44(local_380._4_4_ * fVar98,(float)local_380 * fVar93)
+                            ;
+                            if (8.138021e-05 <= ABS(fVar97 - 1.0)) {
+                              uStack_3a8 = (_LIST_ENTRY *)
+                                           CONCAT44(uStack_3a8._4_4_,(float)uStack_3a8 * fVar97);
+                              auStack_398._0_4_ = (float)uVar66 * fVar97;
+                              fStack_378 = fStack_378 * fVar97;
+                              uStack_388 = (_LIST_ENTRY *)
+                                           CONCAT44(uStack_388._4_4_,(float)uStack_388 * fVar97);
+                            }
+                            bStack_370 = bStack_370 & 0xcc;
+                          }
+                          auVar6 = _auStack_398;
+                          if (((ABS(fVar94) < 8.138021e-05) && (ABS(fVar95) < 8.138021e-05)) &&
+                             (p_Var45 = local_380, ABS(fVar96) < 8.138021e-05)) goto LAB_51;
+                          cVar17 = (char)(bStack_36f << 2) >> 6;
+                          if (cVar17 < '\x01') {
+                            if (-1 < cVar17) {
+                              if (8.138021e-05 <=
+                                  ABS((ABS((float)auStack_398._4_4_) * 61440.0 +
+                                       ABS(uStack_3a8._4_4_) * 61440.0 + ABS(fStack_374)) - 1.0)) {
+                                bStack_36f = bStack_36f & 0xdf | 0x10;
+                                goto LAB_79;
+                              }
+                              bStack_36f = bStack_36f | 0x30;
+                            }
+                            if (ABS(ABS(uStack_388._4_4_) * 61440.0 - 0.0) < 8.138021e-05) {
+                              fStack_378 = fStack_378 + fVar96;
+                              local_380 = (_LIST_ENTRY *)
+                                          CONCAT44(local_380._4_4_ + fVar95,
+                                                   (float)local_380 + fVar94);
+                              goto LAB_69;
+                            }
+                          }
+LAB_79:
+                          local_3b0._4_4_ = (float)local_3b0._4_4_ + uStack_3a8._4_4_ * fVar95;
+                          local_3b0._0_4_ = (float)local_3b0._0_4_ + uStack_3a8._4_4_ * fVar94;
+                          uStack_3a8 = (_LIST_ENTRY *)
+                                       CONCAT44(uStack_3a8._4_4_,
+                                                (float)uStack_3a8 + uStack_3a8._4_4_ * fVar96);
+                          fVar93 = (float)auStack_398._4_4_ * fVar96;
+                          local_3a0 = (_LIST_ENTRY *)
+                                      CONCAT44(local_3a0._4_4_ + (float)auStack_398._4_4_ * fVar95,
+                                               (float)local_3a0 + (float)auStack_398._4_4_ * fVar94)
+                          ;
+                          auStack_398._0_4_ = (float)auStack_398._0_4_ + fVar93;
+                          auVar11 = _auStack_398;
+                          local_390._0_4_ = auVar6._8_4_;
+                          local_390._4_4_ = auVar6._12_4_;
+                          auStack_398 = auVar11._0_8_;
+                          local_390._0_4_ = (float)local_390 + uStack_388._4_4_ * fVar94;
+                          local_390._4_4_ = local_390._4_4_ + uStack_388._4_4_ * fVar95;
+                          uStack_388 = (_LIST_ENTRY *)
+                                       CONCAT44(uStack_388._4_4_,
+                                                (float)uStack_388 + uStack_388._4_4_ * fVar96);
+                          fVar93 = (float)local_380 + fStack_374 * fVar94;
+                          fVar95 = fStack_374 * fVar95;
+                          fVar96 = fStack_374 * fVar96;
+                          goto LAB_68;
+                        }
+                        bVar67 = *(byte *)((longlong)&p_Var44[10].Flink + 1);
+                        cVar17 = (char)(bVar67 << 2) >> 6;
+                        if (cVar17 < '\x01') {
+                          if (-1 < cVar17) {
+                            if (8.138021e-05 <=
+                                ABS((ABS(*(float *)((longlong)&p_Var44[7].Blink + 4)) * 61440.0 +
+                                     ABS(*(float *)((longlong)&p_Var44[6].Blink + 4)) * 61440.0 +
+                                    ABS(*(float *)((longlong)&p_Var44[9].Blink + 4))) - 1.0)) {
+                              *(byte *)((longlong)&p_Var44[10].Flink + 1) = bVar67 & 0xdf | 0x10;
+                              goto LAB_80;
+                            }
+                            *(byte *)((longlong)&p_Var44[10].Flink + 1) = bVar67 | 0x30;
+                          }
+                          if ((ABS(*(float *)((longlong)&p_Var44[6].Flink + 4) - 0.0) < 8.138021e-05
+                              ) && (ABS(*(float *)&p_Var44[7].Flink - 0.0) < 8.138021e-05)) {
+                            *(byte *)&p_Var44[10].Flink = *(byte *)&p_Var44[10].Flink | 0xc0;
+                            goto LAB_78;
+                          }
+                        }
+LAB_80:
+                        *(byte *)&p_Var44[10].Flink = *(byte *)&p_Var44[10].Flink & 0x3f | 0x40;
+                      }
+                    }
+                    else {
+                      cVar17 = (char)(bVar67 << 2) >> 6;
+                      if (cVar17 < '\x01') {
+                        if (-1 < cVar17) {
+                          if (8.138021e-05 <=
+                              ABS((ABS(*(float *)((longlong)&p_Var44[7].Blink + 4)) * 61440.0 +
+                                   ABS(*(float *)((longlong)&p_Var44[6].Blink + 4)) * 61440.0 +
+                                  ABS(*(float *)((longlong)&p_Var44[9].Blink + 4))) - 1.0)) {
+                            uVar62 = uVar62 & 0xffffffdf | 0x10;
+                            *(char *)((longlong)&p_Var44[10].Flink + 1) = (char)uVar62;
+                            goto LAB_81;
+                          }
+                          uVar62 = uVar62 | 0x30;
+                          *(char *)((longlong)&p_Var44[10].Flink + 1) = (char)uVar62;
+                        }
+                        if ((ABS(*(float *)&p_Var44[6].Blink - 0.0) < 8.138021e-05) &&
+                           (ABS(*(float *)&p_Var44[7].Blink - 0.0) < 8.138021e-05)) {
+                          *(byte *)&p_Var44[10].Flink = *(byte *)&p_Var44[10].Flink | 0xc;
+                          goto LAB_77;
+                        }
+                      }
+LAB_81:
+                      *(byte *)&p_Var44[10].Flink = *(byte *)&p_Var44[10].Flink & 0xf7 | 4;
+                    }
+                  }
+                }
+              }
+              cVar17 = (char)(bStack_36f << 4) >> 6;
+              if (cVar17 < '\x01') {
+                if (cVar17 < '\0') {
+LAB_82:
+                  cVar17 = (char)(bStack_370 << 4) >> 6;
+                  if (cVar17 < '\x01') {
+                    if (cVar17 < '\0') {
+LAB_83:
+                      bVar19 = CMILMatrix::IsPure2DUniformZ<1>((CMILMatrix *)(p_Var44 + 6));
+                      if (bVar19) {
+                        fVar93 = *(float *)((longlong)&p_Var44[6].Flink + 4);
+                        fVar94 = *(float *)&p_Var44[6].Flink;
+                        fVar95 = *(float *)((longlong)&p_Var44[7].Flink + 4);
+                        fVar96 = *(float *)&p_Var44[7].Flink;
+                        fStack_374 = 1.0;
+                        uStack_36e = 0;
+                        bStack_36f = 0x28;
+                        uStack_3a8 = (_LIST_ENTRY *)0x0;
+                        bStack_370 = 8;
+                        fVar97 = (float)local_3b0._4_4_ * fVar96;
+                        local_3b0._4_4_ =
+                             (float)local_3b0._4_4_ * fVar95 + (float)local_3b0._0_4_ * fVar93;
+                        local_3b0._0_4_ = fVar97 + (float)local_3b0._0_4_ * fVar94;
+                        _auStack_398 = ZEXT416(0);
+                        local_3a0 = (_LIST_ENTRY *)
+                                    CONCAT44(local_3a0._4_4_ * fVar95 + (float)local_3a0 * fVar93,
+                                             local_3a0._4_4_ * fVar96 + (float)local_3a0 * fVar94);
+                        local_380 = (_LIST_ENTRY *)
+                                    CONCAT44(local_380._4_4_ * fVar95 + (float)local_380 * fVar93 +
+                                             *(float *)((longlong)&p_Var44[9].Flink + 4),
+                                             local_380._4_4_ * fVar96 + (float)local_380 * fVar94 +
+                                             *(float *)&p_Var44[9].Flink);
+                        uStack_388 = (_LIST_ENTRY *)
+                                     (ulonglong)
+                                     (uint)(*(float *)&p_Var44[8].Blink * (float)uStack_388);
+                        fStack_378 = *(float *)&p_Var44[8].Blink * fStack_378 +
+                                     *(float *)&p_Var44[9].Blink;
+                        p_Var45 = local_380;
+                        goto LAB_51;
+                      }
+                    }
+                    else {
+                      cVar17 = (char)(bStack_36f << 2) >> 6;
+                      if (cVar17 < '\x01') {
+                        if (-1 < cVar17) {
+                          if (8.138021e-05 <=
+                              ABS((ABS((float)auStack_398._4_4_) * 61440.0 +
+                                   ABS(uStack_3a8._4_4_) * 61440.0 + ABS(fStack_374)) - 1.0))
+                          goto LAB_84;
+                          bStack_36f = bStack_36f | 0x30;
+                        }
+                        if ((ABS((float)uStack_3a8 - 0.0) < 8.138021e-05) &&
+                           (ABS((float)auStack_398._0_4_ - 0.0) < 8.138021e-05)) {
+                          bStack_370 = bStack_370 | 0xc;
+                          goto LAB_83;
+                        }
+                      }
+                    }
+                  }
+                }
+                else {
+                  cVar17 = (char)(bStack_36f << 2) >> 6;
+                  if (cVar17 < '\x01') {
+                    if (-1 < cVar17) {
+                      if (8.138021e-05 <=
+                          ABS((ABS((float)auStack_398._4_4_) * 61440.0 +
+                               ABS(uStack_3a8._4_4_) * 61440.0 + ABS(fStack_374)) - 1.0))
+                      goto LAB_84;
+                      bStack_36f = bStack_36f | 0x30;
+                    }
+                    if (((ABS(ABS(uStack_388._4_4_) * 61440.0 - 0.0) < 8.138021e-05) &&
+                        (ABS((float)local_390 - 0.0) < 8.138021e-05)) &&
+                       (ABS(local_390._4_4_ - 0.0) < 8.138021e-05)) {
+                      bStack_36f = bStack_36f | 0xc;
+                      goto LAB_82;
+                    }
+                  }
+                }
+              }
+LAB_84:
+              fVar93 = *(float *)&p_Var44[6].Flink;
+              fVar94 = *(float *)((longlong)&p_Var44[6].Flink + 4);
+              fVar95 = *(float *)&p_Var44[6].Blink;
+              fVar96 = *(float *)((longlong)&p_Var44[6].Blink + 4);
+              fVar97 = *(float *)&p_Var44[7].Flink;
+              fVar98 = *(float *)((longlong)&p_Var44[7].Flink + 4);
+              fVar72 = *(float *)&p_Var44[7].Blink;
+              fVar82 = *(float *)((longlong)&p_Var44[7].Blink + 4);
+              fVar73 = *(float *)&p_Var44[8].Flink;
+              fVar75 = *(float *)((longlong)&p_Var44[8].Flink + 4);
+              fVar76 = *(float *)&p_Var44[8].Blink;
+              fVar79 = *(float *)((longlong)&p_Var44[8].Blink + 4);
+              fVar12 = *(float *)&p_Var44[9].Flink;
+              fVar13 = *(float *)((longlong)&p_Var44[9].Flink + 4);
+              fVar14 = *(float *)&p_Var44[9].Blink;
+              fVar15 = *(float *)((longlong)&p_Var44[9].Blink + 4);
+              fVar84 = (float)local_3b0._0_4_ * fVar95;
+              fVar87 = (float)local_3b0._0_4_ * fVar96;
+              fVar74 = (float)local_3b0._4_4_ * fVar97;
+              fVar77 = (float)local_3b0._4_4_ * fVar72;
+              fVar80 = (float)local_3b0._4_4_ * fVar82;
+              fVar78 = local_3a0._4_4_ * fVar72;
+              fVar81 = local_3a0._4_4_ * fVar82;
+              fVar92 = (float)auStack_398._4_4_ * fVar14;
+              fVar85 = (float)local_3a0 * fVar95;
+              fVar88 = (float)local_3a0 * fVar96;
+              local_3b0._4_4_ =
+                   uStack_3a8._4_4_ * fVar13 + (float)local_3b0._4_4_ * fVar98 +
+                   (float)uStack_3a8 * fVar75 + (float)local_3b0._0_4_ * fVar94;
+              local_3b0._0_4_ =
+                   uStack_3a8._4_4_ * fVar12 + fVar74 +
+                   (float)uStack_3a8 * fVar73 + (float)local_3b0._0_4_ * fVar93;
+              uStack_3a8 = (_LIST_ENTRY *)
+                           CONCAT44(uStack_3a8._4_4_ * fVar15 + fVar80 +
+                                    (float)uStack_3a8 * fVar79 + fVar87,
+                                    uStack_3a8._4_4_ * fVar14 + fVar77 +
+                                    (float)uStack_3a8 * fVar76 + fVar84);
+              fVar83 = (float)local_390 * fVar94;
+              fVar86 = (float)local_390 * fVar95;
+              fVar89 = (float)local_390 * fVar96;
+              fVar74 = local_390._4_4_ * fVar72;
+              fVar77 = local_390._4_4_ * fVar82;
+              fVar90 = fStack_374 * fVar12;
+              fVar91 = fStack_374 * fVar13;
+              fVar80 = fStack_378 * fVar73;
+              fVar84 = fStack_378 * fVar75;
+              fVar87 = fStack_378 * fVar79;
+              local_3a0 = (_LIST_ENTRY *)
+                          CONCAT44((float)auStack_398._4_4_ * fVar13 + local_3a0._4_4_ * fVar98 +
+                                   (float)auStack_398._0_4_ * fVar75 + (float)local_3a0 * fVar94,
+                                   (float)auStack_398._4_4_ * fVar12 + local_3a0._4_4_ * fVar97 +
+                                   (float)auStack_398._0_4_ * fVar73 + (float)local_3a0 * fVar93);
+              auStack_398._4_4_ =
+                   (float)auStack_398._4_4_ * fVar15 + fVar81 +
+                   (float)auStack_398._0_4_ * fVar79 + fVar88;
+              auStack_398._0_4_ = fVar92 + fVar78 + (float)auStack_398._0_4_ * fVar76 + fVar85;
+              local_390._0_4_ =
+                   uStack_388._4_4_ * fVar12 + local_390._4_4_ * fVar97 +
+                   (float)uStack_388 * fVar73 + (float)local_390 * fVar93;
+              local_390._4_4_ =
+                   uStack_388._4_4_ * fVar13 + local_390._4_4_ * fVar98 +
+                   (float)uStack_388 * fVar75 + fVar83;
+              uStack_388 = (_LIST_ENTRY *)
+                           CONCAT44(uStack_388._4_4_ * fVar15 + fVar77 +
+                                    (float)uStack_388 * fVar79 + fVar89,
+                                    uStack_388._4_4_ * fVar14 + fVar74 +
+                                    (float)uStack_388 * fVar76 + fVar86);
+              fStack_378 = fStack_374 * fVar14 + local_380._4_4_ * fVar72 +
+                           fStack_378 * fVar76 + (float)local_380 * fVar95;
+              fStack_374 = fStack_374 * fVar15 + local_380._4_4_ * fVar82 +
+                           fVar87 + (float)local_380 * fVar96;
+              local_380 = (_LIST_ENTRY *)
+                          CONCAT44(fVar91 + local_380._4_4_ * fVar98 +
+                                   fVar84 + (float)local_380 * fVar94,
+                                   fVar90 + local_380._4_4_ * fVar97 +
+                                   fVar80 + (float)local_380 * fVar93);
+            }
+            bStack_370 = 0;
+            bStack_36f = 0;
+            uStack_36e = 0;
+            p_Var45 = local_380;
+          }
+        }
+      }
+LAB_51:
+      local_380 = p_Var45;
+      uVar26 = *(uint *)((longlong)&p_Var44[0x11].Flink + 4);
       local_180.Flink = (_LIST_ENTRY *)0x5;
-      local_180.Blink = p_Var50;
-      if (*(uint *)&p_Var56[0x11].Flink == uVar25) {
-        uVar71 = (ulonglong)uVar25 * 2;
+      local_180.Blink = p_Var46;
+      if (*(uint *)&p_Var44[0x11].Flink == uVar26) {
+        uVar71 = (ulonglong)uVar26 * 2;
         if (uVar71 < 0x100000000) {
           uVar69 = uVar71 & 0xffffffff;
           if ((uint)uVar71 < 0x41) {
             uVar69 = 0x40;
           }
-          uVar71 = (ulonglong)*(uint *)&p_Var56[0x11].Flink << 4;
+          uVar71 = (ulonglong)*(uint *)&p_Var44[0x11].Flink << 4;
           if (0xffffffff < uVar71) {
             uVar62 = 0x65;
-            goto LAB_86;
+            goto LAB_85;
           }
           if (((int)uVar69 == 0) ||
              (auVar9._8_8_ = 0, auVar9._0_8_ = uVar69,
-             SUB168((ZEXT816(0) << 0x40 | ZEXT816(0xffffffffffffffff)) / auVar9,0) < 0x11)) {
-            uVar23 = 0x80070057;
+             SUB168((ZEXT416(0) << 0x40 | ZEXT816(0xffffffffffffffff)) / auVar9,0) < 0x11)) {
+            uVar22 = 0x80070057;
           }
           else {
-            p_Var44 = _Alloc_DefaultHeap__SAPEAX_K_Z(uVar69 << 4);
-            if (p_Var44 != (_LIST_ENTRY *)0x0) {
-              uVar23 = (uint)uVar71;
-              memcpy(p_Var44,p_Var56[0x10].Blink,uVar71 & 0xffffffff);
-              _Free_DefaultHeap__SAXPEAX_Z(p_Var56[0x10].Blink);
-              p_Var56[0x10].Blink = p_Var44;
-              *(int *)((longlong)&p_Var56[0x11].Flink + 4) = (int)uVar69;
-              goto LAB_87;
-            }
-            uVar23 = 0x8007000e;
+            p_Var45 = _Alloc_DefaultHeap__SAPEAX_K_Z(uVar69 << 4);
+            p_Var44 = local_400;
+            if (p_Var45 != (_LIST_ENTRY *)0x0) {
+              uVar62 = (uint)uVar71;
+              memcpy(p_Var45,local_400[0x10].Blink,uVar71 & 0xffffffff);
+              _Free_DefaultHeap__SAXPEAX_Z(p_Var44[0x10].Blink);
+              p_Var44[0x10].Blink = p_Var45;
+              *(int *)((longlong)&p_Var44[0x11].Flink + 4) = (int)uVar69;
+              goto LAB_86;
+            }
+            uVar22 = 0x8007000e;
           }
           uVar62 = 0x68;
         }
         else {
           uVar62 = 0x62;
-LAB_86:
-          uVar23 = 0x80070216;
+LAB_85:
+          uVar22 = 0x80070216;
         }
         wil::details::in1diag3::Return_Hr
                   (unaff_retaddr,uVar62,
-                   "onecoreuap\\windows\\DWM\\dwmcore\\common\\WatermarkStack.inl",uVar23);
+                   "onecoreuap\\windows\\DWM\\dwmcore\\common\\WatermarkStack.inl",uVar22);
         wil::details::in1diag3::Return_Hr
                   (unaff_retaddr,0x83,
-                   "onecoreuap\\windows\\DWM\\dwmcore\\common\\WatermarkStack.inl",uVar23);
-        MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,uVar23,0xd4d,(void *)0x0);
+                   "onecoreuap\\windows\\DWM\\dwmcore\\common\\WatermarkStack.inl",uVar22);
+        MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,uVar22,0xd4d,(void *)0x0);
       }
       else {
-LAB_87:
-        p_Var44 = p_Var56[0x10].Blink;
-        uVar25 = *(uint *)&p_Var56[0x11].Flink;
-        p_Var44[uVar25].Flink = local_180.Flink;
-        p_Var44[uVar25].Blink = local_180.Blink;
-        uVar51 = *(int *)&p_Var56[0x11].Flink + 1;
-        *(uint *)&p_Var56[0x11].Flink = uVar51;
-        uVar25 = *(uint *)((longlong)&p_Var56[0x11].Blink + 4);
-        if (uVar25 <= uVar51) {
-          uVar25 = uVar51;
-        }
-        *(uint *)((longlong)&p_Var56[0x11].Blink + 4) = uVar25;
-        uVar25 = *(uint *)((longlong)&p_Var56[0x12].Blink + 4);
-        if (*(uint *)&p_Var56[0x12].Blink == uVar25) {
-          uVar71 = (ulonglong)uVar25 * 2;
+LAB_86:
+        p_Var45 = p_Var44[0x10].Blink;
+        uVar26 = *(uint *)&p_Var44[0x11].Flink;
+        p_Var45[uVar26].Flink = local_180.Flink;
+        p_Var45[uVar26].Blink = local_180.Blink;
+        uVar52 = *(int *)&p_Var44[0x11].Flink + 1;
+        *(uint *)&p_Var44[0x11].Flink = uVar52;
+        uVar26 = *(uint *)((longlong)&p_Var44[0x11].Blink + 4);
+        if (uVar26 <= uVar52) {
+          uVar26 = uVar52;
+        }
+        *(uint *)((longlong)&p_Var44[0x11].Blink + 4) = uVar26;
+        uVar26 = *(uint *)((longlong)&local_400[0x12].Blink + 4);
+        p_Var45 = local_400;
+        if (*(uint *)&local_400[0x12].Blink == uVar26) {
+          uVar71 = (ulonglong)uVar26 * 2;
           if (uVar71 < 0x100000000) {
             uVar69 = uVar71 & 0xffffffff;
             if ((uint)uVar71 < 9) {
               uVar69 = 8;
             }
-            uVar71 = (ulonglong)*(uint *)&p_Var56[0x12].Blink * 0x44;
+            uVar71 = (ulonglong)*(uint *)&local_400[0x12].Blink * 0x44;
             if (0xffffffff < uVar71) {
               uVar62 = 0x65;
-              goto LAB_88;
+              goto LAB_87;
             }
             if (((int)uVar69 == 0) ||
                (auVar8._8_8_ = 0, auVar8._0_8_ = uVar69,
                SUB168((ZEXT816(0) << 0x40 | ZEXT816(0xffffffffffffffff)) / auVar8,0) < 0x45)) {
-              uVar23 = 0x80070057;
+              uVar22 = 0x80070057;
             }
             else {
               p_Var44 = _Alloc_DefaultHeap__SAPEAX_K_Z(uVar69 * 0x44);
+              p_Var45 = local_400;
               if (p_Var44 != (_LIST_ENTRY *)0x0) {
-                uVar23 = (uint)uVar71;
-                memcpy(p_Var44,p_Var56[0x12].Flink,uVar71 & 0xffffffff);
-                _Free_DefaultHeap__SAXPEAX_Z(p_Var56[0x12].Flink);
-                p_Var56[0x12].Flink = p_Var44;
-                *(int *)((longlong)&p_Var56[0x12].Blink + 4) = (int)uVar69;
-                goto LAB_89;
-              }
-              uVar23 = 0x8007000e;
+                uVar62 = (uint)uVar71;
+                memcpy(p_Var44,local_400[0x12].Flink,uVar71 & 0xffffffff);
+                _Free_DefaultHeap__SAXPEAX_Z(p_Var45[0x12].Flink);
+                p_Var45[0x12].Flink = p_Var44;
+                *(int *)((longlong)&p_Var45[0x12].Blink + 4) = (int)uVar69;
+                goto LAB_88;
+              }
+              uVar22 = 0x8007000e;
             }
             uVar62 = 0x68;
           }
           else {
             uVar62 = 0x62;
-LAB_88:
-            uVar23 = 0x80070216;
+LAB_87:
+            uVar22 = 0x80070216;
           }
           wil::details::in1diag3::Return_Hr
                     (unaff_retaddr,uVar62,
-                     "onecoreuap\\windows\\DWM\\dwmcore\\common\\WatermarkStack.inl",uVar23);
+                     "onecoreuap\\windows\\DWM\\dwmcore\\common\\WatermarkStack.inl",uVar22);
           wil::details::in1diag3::Return_Hr
                     (unaff_retaddr,0x83,
-                     "onecoreuap\\windows\\DWM\\dwmcore\\common\\WatermarkStack.inl",uVar23);
-          MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,uVar23,0x36,(void *)0x0);
-          MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,uVar23,0xd52,(void *)0x0);
+                     "onecoreuap\\windows\\DWM\\dwmcore\\common\\WatermarkStack.inl",uVar22);
+          MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,uVar22,0x36,(void *)0x0);
+          MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,uVar22,0xd52,(void *)0x0);
         }
         else {
-LAB_89:
-          pp_Var54 = &p_Var56[0x13].Blink;
-          p_Var44 = p_Var56[0x12].Flink;
-          lVar61 = (ulonglong)*(uint *)&p_Var56[0x12].Blink * 0x44;
+LAB_88:
+          pp_Var55 = &p_Var45[0x13].Blink;
+          p_Var44 = p_Var45[0x12].Flink;
+          lVar61 = (ulonglong)*(uint *)&p_Var45[0x12].Blink * 0x44;
           *(undefined8 *)(lVar61 + (longlong)p_Var44) = local_3b0;
           ((undefined8 *)(lVar61 + (longlong)p_Var44))[1] = uStack_3a8;
           puVar31 = (undefined8 *)(lVar61 + 0x10 + (longlong)p_Var44);
           *puVar31 = local_3a0;
           puVar31[1] = auStack_398;
           puVar31 = (undefined8 *)(lVar61 + 0x20 + (longlong)p_Var44);
           *puVar31 = local_390;
           puVar31[1] = uStack_388;
           puVar31 = (undefined8 *)(lVar61 + 0x30 + (longlong)p_Var44);
           *puVar31 = local_380;
           puVar31[1] = CONCAT44(fStack_374,fStack_378);
           *(uint *)(lVar61 + 0x40 + (longlong)p_Var44) =
                CONCAT22(uStack_36e,CONCAT11(bStack_36f,bStack_370));
-          uVar51 = *(int *)&p_Var56[0x12].Blink + 1;
-          *(uint *)&p_Var56[0x12].Blink = uVar51;
-          uVar25 = *(uint *)((longlong)&p_Var56[0x13].Flink + 4);
-          if (uVar25 <= uVar51) {
-            uVar25 = uVar51;
-          }
-          *(uint *)((longlong)&p_Var56[0x13].Flink + 4) = uVar25;
-          if (*(int *)&p_Var56[0x12].Blink == 0) {
-            pCVar52 = &CMILMatrix::Identity;
+          uVar52 = *(int *)&p_Var45[0x12].Blink + 1;
+          *(uint *)&p_Var45[0x12].Blink = uVar52;
+          uVar26 = *(uint *)((longlong)&p_Var45[0x13].Flink + 4);
+          if (uVar26 <= uVar52) {
+            uVar26 = uVar52;
+          }
+          *(uint *)((longlong)&p_Var45[0x13].Flink + 4) = uVar26;
+          if (*(int *)&p_Var45[0x12].Blink == 0) {
+            pCVar53 = &CMILMatrix::Identity;
           }
           else {
-            pCVar52 = (CMILMatrix_IdentityType *)
-                      ((ulonglong)(*(int *)&p_Var56[0x12].Blink - 1) * 0x44 +
-                      (longlong)p_Var56[0x12].Flink);
-          }
-          CVar2 = pCVar52[0x41];
+            pCVar53 = (CMILMatrix_IdentityType *)
+                      ((ulonglong)(*(int *)&p_Var45[0x12].Blink - 1) * 0x44 +
+                      (longlong)p_Var45[0x12].Flink);
+          }
+          CVar2 = pCVar53[0x41];
           if ((char)(((byte)CVar2 & 0xf0) << 2) < '\x01') {
-            if (((byte)CVar2 & 0x20) != 0) goto LAB_90;
-            fVar93 = ABS((ABS(*(float *)(pCVar52 + 0x1c)) * 61440.0 +
-                          ABS(*(float *)(pCVar52 + 0xc)) * 61440.0 + ABS(*(float *)(pCVar52 + 0x3c))
+            if (((byte)CVar2 & 0x20) != 0) goto LAB_89;
+            fVar93 = ABS((ABS(*(float *)(pCVar53 + 0x1c)) * 61440.0 +
+                          ABS(*(float *)(pCVar53 + 0xc)) * 61440.0 + ABS(*(float *)(pCVar53 + 0x3c))
                          ) - 1.0);
             bVar19 = fVar93 < 8.138021e-05;
-            pCVar52[0x41] = (CMILMatrix_IdentityType)(bVar19 * ' ' + 0x10U | (byte)CVar2 & 0xcf);
-            if (8.138021e-05 <= fVar93) goto LAB_91;
+            pCVar53[0x41] = (CMILMatrix_IdentityType)(bVar19 * ' ' + 0x10U | (byte)CVar2 & 0xcf);
+            if (8.138021e-05 <= fVar93) goto LAB_90;
           }
           else {
-LAB_91:
-            if (((NAN(*(float *)(pCVar52 + 0xc))) || (NAN(*(float *)(pCVar52 + 0x1c)))) ||
-               (NAN(*(float *)(pCVar52 + 0x3c)))) {
 LAB_90:
+            if (((NAN(*(float *)(pCVar53 + 0xc))) || (NAN(*(float *)(pCVar53 + 0x1c)))) ||
+               (NAN(*(float *)(pCVar53 + 0x3c)))) {
+LAB_89:
               bVar19 = true;
             }
             else {
               bVar19 = false;
             }
           }
-          if ((*(int *)&p_Var56[0x14].Flink == *(int *)((longlong)&p_Var56[0x14].Flink + 4)) &&
-             (uVar23 = CWatermarkStack<bool,64,2,10>::Grow
-                                 ((CWatermarkStack<bool,64,2,10> *)pp_Var54,(__uint64)pCVar52,uVar23
-                                  ,uVar62,pp_Var54), (int)uVar23 < 0)) {
+          if ((*(int *)&p_Var45[0x14].Flink == *(int *)((longlong)&p_Var45[0x14].Flink + 4)) &&
+             (uVar22 = CWatermarkStack<bool,64,2,10>::Grow
+                                 ((CWatermarkStack<bool,64,2,10> *)pp_Var55,(__uint64)pCVar53,uVar62
+                                  ,uVar22,pp_Var55), local_410 = uVar22, (int)uVar22 < 0)) {
             wil::details::in1diag3::Return_Hr
                       (unaff_retaddr,0x83,
-                       "onecoreuap\\windows\\DWM\\dwmcore\\common\\WatermarkStack.inl",uVar23);
-            puVar58 = (uint *)0x0;
-            MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,uVar23,0xd56,(void *)0x0);
+                       "onecoreuap\\windows\\DWM\\dwmcore\\common\\WatermarkStack.inl",uVar22);
+            MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,uVar22,0xd56,(void *)0x0);
           }
           else {
-            *(byte *)((longlong)&(*pp_Var54)->Flink + (ulonglong)*(uint *)&p_Var56[0x14].Flink) =
+            p_Var44 = local_400;
+            *(byte *)((longlong)&(*pp_Var55)->Flink + (ulonglong)*(uint *)&p_Var45[0x14].Flink) =
                  bVar19 ^ 1;
-            *(int *)&p_Var56[0x14].Flink = *(int *)&p_Var56[0x14].Flink + 1;
-            uVar23 = *(uint *)((longlong)&p_Var56[0x14].Blink + 4);
-            if (uVar23 <= *(uint *)&p_Var56[0x14].Flink) {
-              uVar23 = *(uint *)&p_Var56[0x14].Flink;
-            }
-            *(uint *)((longlong)&p_Var56[0x14].Blink + 4) = uVar23;
-            uVar23 = *(uint *)((longlong)&p_Var56[0x15].Blink + 4);
-            uVar66 = *(undefined4 *)&p_Var56[0x12].Blink;
-            if (*(uint *)&p_Var56[0x15].Blink != uVar23) {
-LAB_92:
+            *(int *)&p_Var45[0x14].Flink = *(int *)&p_Var45[0x14].Flink + 1;
+            uVar62 = *(uint *)((longlong)&p_Var45[0x14].Blink + 4);
+            if (uVar62 <= *(uint *)&p_Var45[0x14].Flink) {
+              uVar62 = *(uint *)&p_Var45[0x14].Flink;
+            }
+            *(uint *)((longlong)&p_Var45[0x14].Blink + 4) = uVar62;
+            uVar62 = *(uint *)((longlong)&local_400[0x15].Blink + 4);
+            uVar66 = *(undefined4 *)&local_400[0x12].Blink;
+            if (*(uint *)&local_400[0x15].Blink != uVar62) {
+LAB_91:
               *(undefined4 *)
-               ((longlong)&(p_Var56[0x15].Flink)->Flink +
-               (ulonglong)*(uint *)&p_Var56[0x15].Blink * 4) = uVar66;
-              uVar62 = *(int *)&p_Var56[0x15].Blink + 1;
-              *(uint *)&p_Var56[0x15].Blink = uVar62;
-              uVar23 = *(uint *)((longlong)&p_Var56[0x16].Flink + 4);
-              if (uVar23 <= uVar62) {
-                uVar23 = uVar62;
-              }
-              *(uint *)((longlong)&p_Var56[0x16].Flink + 4) = uVar23;
-              p_Var64 = local_400;
-              goto LAB_93;
-            }
-            uVar71 = (ulonglong)uVar23 * 2;
+               ((longlong)&(local_400[0x15].Flink)->Flink +
+               (ulonglong)*(uint *)&local_400[0x15].Blink * 4) = uVar66;
+              uVar22 = *(int *)&local_400[0x15].Blink + 1;
+              *(uint *)&local_400[0x15].Blink = uVar22;
+              uVar62 = *(uint *)((longlong)&local_400[0x16].Flink + 4);
+              if (uVar62 <= uVar22) {
+                uVar62 = uVar22;
+              }
+              *(uint *)((longlong)&local_400[0x16].Flink + 4) = uVar62;
+              p_Var64 = local_3f8;
+              p_Var44 = local_400;
+              goto LAB_92;
+            }
+            uVar71 = (ulonglong)uVar62 * 2;
             if (uVar71 < 0x100000000) {
               uVar69 = uVar71 & 0xffffffff;
               if ((uint)uVar71 < 0x41) {
                 uVar69 = 0x40;
               }
-              uVar71 = (ulonglong)*(uint *)&p_Var56[0x15].Blink << 2;
-              if (0xffffffff < uVar71) {
-                uVar62 = 0x65;
-                goto LAB_94;
-              }
-              if (((int)uVar69 == 0) ||
-                 (auVar7._8_8_ = 0, auVar7._0_8_ = uVar69,
-                 SUB168((ZEXT416(0) << 0x40 | ZEXT816(0xffffffffffffffff)) / auVar7,0) < 5)) {
-                uVar23 = 0x80070057;
+              uVar71 = (ulonglong)*(uint *)&local_400[0x15].Blink << 2;
+              if (uVar71 < 0x100000000) {
+                if (((int)uVar69 == 0) ||
+                   (auVar7._8_8_ = 0, auVar7._0_8_ = uVar69,
+                   SUB168((ZEXT416(0) << 0x40 | ZEXT816(0xffffffffffffffff)) / auVar7,0) < 5)) {
+                  uVar62 = 0x80070057;
+                }
+                else {
+                  pvVar43 = GetProcessHeap();
+                  p_Var44 = HeapAlloc(pvVar43,0,uVar69 * 4);
+                  p_Var45 = local_400;
+                  if (p_Var44 != (_LIST_ENTRY *)0x0) {
+                    memcpy(p_Var44,local_400[0x15].Flink,uVar71 & 0xffffffff);
+                    p_Var45 = p_Var45[0x15].Flink;
+                    if (p_Var45 != (_LIST_ENTRY *)0x0) {
+                      pvVar43 = GetProcessHeap();
+                      HeapFree(pvVar43,0,p_Var45);
+                    }
+                    local_400[0x15].Flink = p_Var44;
+                    *(int *)((longlong)&local_400[0x15].Blink + 4) = (int)uVar69;
+                    goto LAB_91;
+                  }
+                  uVar62 = 0x8007000e;
+                }
+                local_410 = uVar62;
+                wil::details::in1diag3::Return_Hr
+                          (unaff_retaddr,0x68,
+                           "onecoreuap\\windows\\DWM\\dwmcore\\common\\WatermarkStack.inl",uVar62);
+                p_Var44 = local_400;
               }
               else {
-                pvVar43 = GetProcessHeap();
-                p_Var44 = HeapAlloc(pvVar43,0,uVar69 * 4);
-                if (p_Var44 != (_LIST_ENTRY *)0x0) {
-                  memcpy(p_Var44,p_Var56[0x15].Flink,uVar71 & 0xffffffff);
-                  p_Var50 = p_Var56[0x15].Flink;
-                  if (p_Var50 != (_LIST_ENTRY *)0x0) {
-                    pvVar43 = GetProcessHeap();
-                    HeapFree(pvVar43,0,p_Var50);
-                  }
-                  p_Var56[0x15].Flink = p_Var44;
-                  *(int *)((longlong)&p_Var56[0x15].Blink + 4) = (int)uVar69;
-                  goto LAB_92;
-                }
-                uVar23 = 0x8007000e;
-              }
-              uVar62 = 0x68;
+                uVar62 = 0x80070216;
+                local_410 = 0x80070216;
+                wil::details::in1diag3::Return_Hr
+                          (unaff_retaddr,0x65,
+                           "onecoreuap\\windows\\DWM\\dwmcore\\common\\WatermarkStack.inl",
+                           -0x7ff8fdea);
+                p_Var44 = local_400;
+              }
             }
             else {
-              uVar62 = 0x62;
-LAB_94:
-              uVar23 = 0x80070216;
-            }
-            wil::details::in1diag3::Return_Hr
-                      (unaff_retaddr,uVar62,
-                       "onecoreuap\\windows\\DWM\\dwmcore\\common\\WatermarkStack.inl",uVar23);
+              uVar62 = 0x80070216;
+              local_410 = 0x80070216;
+              wil::details::in1diag3::Return_Hr
+                        (unaff_retaddr,0x62,
+                         "onecoreuap\\windows\\DWM\\dwmcore\\common\\WatermarkStack.inl",-0x7ff8fdea
+                        );
+            }
             wil::details::in1diag3::Return_Hr
                       (unaff_retaddr,0x83,
-                       "onecoreuap\\windows\\DWM\\dwmcore\\common\\WatermarkStack.inl",uVar23);
-            puVar58 = (uint *)0x0;
-            MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,uVar23,0xd5c,(void *)0x0);
-            CWatermarkStack<unsigned_int,64,2,10>::Pop
-                      ((CWatermarkStack<unsigned_int,64,2,10> *)&p_Var56[0x13].Blink,puVar58);
-          }
-          CWatermarkStack<unsigned_int,64,2,10>::Pop
-                    ((CWatermarkStack<unsigned_int,64,2,10> *)(p_Var56 + 0x12),puVar58);
-        }
-        CWatermarkStack<CDrawingContext::StackStateEntry,64,2,10>::Pop
-                  ((CWatermarkStack<CDrawingContext::StackStateEntry,64,2,10> *)&p_Var56[0x10].Blink
-                   ,(StackStateEntry *)0x0);
-      }
-      p_Var64 = local_400;
-      local_410[0] = uVar23;
-      if ((int)uVar23 < 0) {
-        uVar25 = 0x1625;
-        goto LAB_29;
-      }
-    }
-LAB_93:
+                       "onecoreuap\\windows\\DWM\\dwmcore\\common\\WatermarkStack.inl",uVar62);
+            MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,uVar62,0xd5c,(void *)0x0);
+            p_Var45 = local_400;
+            uVar22 = local_410;
+            if (*(int *)&p_Var44[0x14].Flink != 0) {
+              *(int *)&local_400[0x14].Flink = *(int *)&p_Var44[0x14].Flink + -1;
+              uVar22 = uVar62;
+              local_410 = uVar62;
+            }
+          }
+          if (*(int *)&p_Var45[0x12].Blink != 0) {
+            *(int *)&p_Var45[0x12].Blink = *(int *)&p_Var45[0x12].Blink + -1;
+          }
+        }
+        p_Var44 = local_400;
+        if (*(int *)&local_400[0x11].Flink != 0) {
+          *(int *)&local_400[0x11].Flink = *(int *)&local_400[0x11].Flink + -1;
+        }
+      }
+      p_Var64 = local_3f8;
+      local_414 = uVar22;
+      if ((int)uVar22 < 0) {
+        uVar22 = 0x164d;
+        goto LAB_28;
+      }
+    }
+LAB_92:
     bVar19 = wil::operator!=<ICompositionSurfaceStatistics,wil::err_returncode_policy>(&p_Stack_3d0)
     ;
-    if ((bVar19) && (*(char *)&p_Var56[0x1f8].Flink == '\0')) {
-      CMILMatrix::Multiply((CMILMatrix *)&uStack_36c,(CMILMatrix *)(p_Var56 + 6));
-    }
-    p_Var50 = local_408;
+    if ((bVar19) && (*(char *)&p_Var44[0x1f8].Flink == '\0')) {
+      CMILMatrix::Multiply((CMILMatrix *)&uStack_36c,(CMILMatrix *)(p_Var44 + 6));
+    }
+    p_Var46 = local_408;
     this_01 = CVisual::GetCpuClippingData((CVisual *)p_Var64,(CVisualTree *)local_408);
-    DVar22 = GetD2DAntialiasMode((CDrawingContext *)p_Var56);
+    DVar23 = GetD2DAntialiasMode((CDrawingContext *)p_Var44);
     pVVar34 = detail::
               vector_facade<Mesh::VertexAAOffsetDesc,detail::buffer_impl<Mesh::VertexAAOffsetDesc,40,1,detail::liberal_expansion_policy>_>
               ::data((vector_facade<Mesh::VertexAAOffsetDesc,detail::buffer_impl<Mesh::VertexAAOffsetDesc,40,1,detail::liberal_expansion_policy>_>
                       *)&p_Stack_3d0);
     pcVar60 = (char *)p_Var64;
-    uVar23 = CCpuClippingData::Update
-                       (this_01,(CVisualTree *)p_Var50,(CVisual *)p_Var64,
-                        (CScopedClipStack *)&p_Var56[0x2e].Blink,(CShape *)pVVar34,
-                        (CMILMatrix *)&uStack_36c,(CCpuClippingData *)p_Var56[0xd].Blink,DVar22,
+    uVar62 = CCpuClippingData::Update
+                       (this_01,(CVisualTree *)p_Var46,(CVisual *)p_Var64,
+                        (CScopedClipStack *)&p_Var44[0x2e].Blink,(CShape *)pVVar34,
+                        (CMILMatrix *)&uStack_36c,(CCpuClippingData *)p_Var44[0xd].Blink,DVar23,
                         (CpuClippingScopeMode)local_328);
-    local_410[0] = uVar23;
-    local_414 = uVar23;
-    if ((int)uVar23 < 0) {
+    local_414 = uVar62;
+    if ((int)uVar62 < 0) {
       pcVar60 = (char *)0x0;
       pcVar59 = (code *)0x0;
-      MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,uVar23,0x1642,(void *)0x0);
-      pbVar63 = local_3f8;
-      uVar62 = uVar23;
+      MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,uVar62,0x166a,(void *)0x0);
+      pbVar63 = local_3f0;
+      p_Var57 = p_Var44;
       goto LAB_10;
     }
     this_04 = this_01;
     bVar19 = CCpuClippingData::HasCpuClip(this_01);
     if (bVar19) {
       local_320 = CONCAT31(local_320._1_3_,1);
       local_3c0 = this_01;
     }
     CVar24 = CCpuClippingData::GetScopeMode(this_04);
     bVar19 = CCpuClippingData::CanIgnoreAncestorCpuClips(this_04);
-    p_Var44 = local_400;
+    p_Var45 = local_3f8;
     if (bVar19) {
+LAB_93:
+      if ((CVar24 == 2) || (bVar19 != false)) goto LAB_94;
 LAB_95:
-      if ((CVar24 == 2) || (bVar19 != false)) goto LAB_96;
-LAB_97:
       bVar19 = NodeEffects::HasEffects((NodeEffects *)local_3d8);
       if ((!bVar19) ||
          (bVar19 = CComposition::IsTextureMemoryHeatMapEnabled(g_pComposition), bVar19)) {
-LAB_98:
+LAB_96:
         if (CVar24 == 4) {
-          bVar19 = CScopedClipStack::UseCpuClippingInScope((CScopedClipStack *)&p_Var56[0x2e].Blink)
+          bVar19 = CScopedClipStack::UseCpuClippingInScope((CScopedClipStack *)&p_Var44[0x2e].Blink)
           ;
-          p_Var64 = local_400;
-          if (!bVar19) goto LAB_99;
+          p_Var64 = local_3f8;
+          if (!bVar19) goto LAB_97;
           TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>::
           TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
                     ((TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
                       *)&local_168);
-          p_Var64 = local_400;
-          local_410[0] = PushClippingScope((CDrawingContext *)p_Var56,(CVisual *)local_400,false,
-                                           false,(CMILMatrix *)0x0,
-                                           (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
-                                            *)&local_168);
-          if ((int)local_410[0] < 0) {
-            uVar23 = 0x16a1;
+          p_Var64 = local_3f8;
+          local_414 = PushClippingScope((CDrawingContext *)p_Var44,(CVisual *)local_3f8,false,false,
+                                        (CMILMatrix *)0x0,
+                                        (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
+                                         *)&local_168);
+          if ((int)local_414 < 0) {
+            uVar22 = 0x16c9;
           }
           else {
             pcVar60 = (char *)&local_168;
-            uVar23 = PushGpuClipRectInternal
-                               ((CDrawingContext *)p_Var56,(CVisual *)p_Var64,
+            uVar62 = PushGpuClipRectInternal
+                               ((CDrawingContext *)p_Var44,(CVisual *)p_Var64,
                                 (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
                                  *)pcVar60,0,true);
-            local_414 = uVar23;
-            local_410[0] = uVar23;
-            if (-1 < (int)uVar23) goto LAB_99;
-            uVar23 = 0x16a7;
+            local_414 = uVar62;
+            if (-1 < (int)uVar62) goto LAB_97;
+            uVar22 = 0x16cf;
           }
         }
         else {
-          p_Var64 = local_400;
+          p_Var64 = local_3f8;
           if (CVar24 == 3) {
             TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>::
             TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
                       ((TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
                         *)&local_168);
-            p_Var64 = local_400;
-            local_410[0] = PushClippingScope((CDrawingContext *)p_Var56,(CVisual *)local_400,true,
-                                             false,(CMILMatrix *)local_3b0,
-                                             (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
-                                              *)&local_168);
-            if ((int)local_410[0] < 0) {
-              uVar23 = 0x16b1;
+            p_Var64 = local_3f8;
+            local_414 = PushClippingScope((CDrawingContext *)p_Var44,(CVisual *)local_3f8,true,false
+                                          ,(CMILMatrix *)local_3b0,
+                                          (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
+                                           *)&local_168);
+            if ((int)local_414 < 0) {
+              uVar22 = 0x16d9;
             }
             else {
               pcVar60 = (char *)&local_168;
-              uVar23 = PushGpuClipRectInternal
-                                 ((CDrawingContext *)p_Var56,(CVisual *)p_Var64,
+              uVar62 = PushGpuClipRectInternal
+                                 ((CDrawingContext *)p_Var44,(CVisual *)p_Var64,
                                   (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
                                    *)pcVar60,0,true);
-              local_414 = uVar23;
-              local_410[0] = uVar23;
-              if (-1 < (int)uVar23) goto LAB_99;
-              uVar23 = 0x16b7;
-            }
-            goto LAB_100;
-          }
-LAB_99:
+              local_414 = uVar62;
+              if (-1 < (int)uVar62) goto LAB_97;
+              uVar22 = 0x16df;
+            }
+            goto LAB_98;
+          }
+LAB_97:
           pTVar35 = CWatermarkStack<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,8,2,8>
                     ::GetTopByReference((CWatermarkStack<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,8,2,8>
-                                         *)(p_Var56 + 0xcd));
+                                         *)(p_Var44 + 0xcd));
           local_418[0] = false;
           TVar1 = pTVar35[8];
-          p_Var44 = p_Var64;
+          p_Var45 = p_Var64;
           bVar19 = CVisual::HasNonDefaultEffectInternal((CVisual *)p_Var64);
           if ((bVar19) ||
-             (bVar19 = CVisual::IsSimple3DRootOrHasEffects((CVisual *)p_Var44,(CVisual *)local_298),
+             (bVar19 = CVisual::IsSimple3DRootOrHasEffects((CVisual *)p_Var45,(CVisual *)local_298),
              bVar19)) {
             bVar19 = (bool)<lambda_88375b7c038d402b80e7daa8931735f4>::operator()
                                      (&local_2a8,local_418);
             pcVar60 = (char *)(ulonglong)bVar19;
             StackBackfaceVisibilityEntry::StackBackfaceVisibilityEntry
                       ((StackBackfaceVisibilityEntry *)&local_168,(CVisual *)p_Var64,bVar19);
-            uVar23 = CWatermarkStack<CDrawingContext::StackBackfaceVisibilityEntry,64,2,10>::Push
+            uVar62 = CWatermarkStack<CDrawingContext::StackBackfaceVisibilityEntry,64,2,10>::Push
                                ((CWatermarkStack<CDrawingContext::StackBackfaceVisibilityEntry,64,2,10>
-                                 *)(p_Var56 + 0xcd),(StackBackfaceVisibilityEntry *)&local_168);
-            local_414 = uVar23;
-            local_410[0] = uVar23;
-            if ((int)uVar23 < 0) {
-              uVar23 = 0x16c4;
-              goto LAB_100;
-            }
-          }
-          p_Var44 = p_Var64;
+                                 *)(p_Var44 + 0xcd),(StackBackfaceVisibilityEntry *)&local_168);
+            local_414 = uVar62;
+            if ((int)uVar62 < 0) {
+              uVar22 = 0x16ec;
+              goto LAB_98;
+            }
+          }
+          p_Var45 = p_Var64;
           bVar19 = CVisual::HasNonDefaultWindowBackgroundTreatmentInternal((CVisual *)p_Var64);
-          uVar62 = uVar23;
           if (bVar19) {
-            this_02 = CVisual::GetWindowBackgroundTreatmentInternal((CVisual *)p_Var44);
+            this_02 = CVisual::GetWindowBackgroundTreatmentInternal((CVisual *)p_Var45);
             bVar19 = CWindowBackgroundTreatment::HasValidBounds(this_02);
             uVar20 = SUB81(pcVar60,0);
             if (bVar19) {
               TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>::
               TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
                         ((TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
                           *)&local_168);
-              GetClipBoundsWorld((CDrawingContext *)p_Var56,
+              GetClipBoundsWorld((CDrawingContext *)p_Var44,
                                  (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
                                   *)&local_168,(bool)uVar20);
-              std::
-              vector<std::unique_ptr<CBetterCheckMPOCache,std::default_delete<CBetterCheckMPOCache>_>,std::allocator<std::unique_ptr<CBetterCheckMPOCache,std::default_delete<CBetterCheckMPOCache>_>_>_>
-              ::
-              vector<std::unique_ptr<CBetterCheckMPOCache,std::default_delete<CBetterCheckMPOCache>_>,std::allocator<std::unique_ptr<CBetterCheckMPOCache,std::default_delete<CBetterCheckMPOCache>_>_>_>
-                        ((vector<std::unique_ptr<CBetterCheckMPOCache,std::default_delete<CBetterCheckMPOCache>_>,std::allocator<std::unique_ptr<CBetterCheckMPOCache,std::default_delete<CBetterCheckMPOCache>_>_>_>
+              std::vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_>::
+              vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_>
+                        ((vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_>
                           *)&local_110);
-              pCVar38 = CMatrixStack::GetTopByReference((CMatrixStack *)(p_Var56 + 0x12));
+              pCVar38 = CMatrixStack::GetTopByReference((CMatrixStack *)(p_Var44 + 0x12));
               pTVar39 = CWindowBackgroundTreatment::GetBounds(this_02);
               pcVar60 = (char *)&local_110;
               CMILMatrix::Transform3DBounds
                         (pCVar38,pTVar39,
                          (TMil3DRect<float,class_TMilRect_<float,struct_D2D_RECT_F,struct_D3D_RECT_F,struct_D2D_POINTANDSIZE_F,struct_RectUniqueness::NotNeeded>,struct_D3D_RECT_F,struct_MilPointAndSizeF,struct_RectUniqueness::NotNeeded>
                           *)pcVar60);
               pIVar40 = CDeviceResourceT<CMILCOMBaseT<ILegacyRemotingSwapChain,IDeviceResource,CMilObjectDeleter>_>
                         ::GetUniqueDeviceResource
                                   ((CDeviceResourceT<CMILCOMBaseT<ILegacyRemotingSwapChain,IDeviceResource,CMilObjectDeleter>_>
                                     *)&local_110);
               bVar19 = TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::
                        DoesIntersect((TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>
                                       *)&local_168,
                                      (TMilRect<float,struct_D2D_RECT_F,struct_D3D_RECT_F,struct_RectUniqueness::NotNeeded>
                                       *)pIVar40);
               if (bVar19) {
-                local_3f0[0] = false;
+                local_3e8[0] = false;
                 bVar19 = true;
-                pCVar41 = CWindowBackgroundTreatment::GetBackdropBrushNoRef(this_02,local_3f0);
+                pCVar41 = CWindowBackgroundTreatment::GetBackdropBrushNoRef(this_02,local_3e8);
                 cVar17 = '\0';
                 if (pCVar41 != (CBackdropBrush *)0x0) {
-                  cVar17 = local_3f0[0];
+                  cVar17 = local_3e8[0];
                 }
-                pRVar42 = (RenderTargetInfo *)
-                          (*(code *)p_Var56[1].Blink[1].Flink)(&p_Var56[1].Blink);
-                pCVar55 = this_02;
+                pRVar42 = (RenderTargetInfo *)(*(code *)local_400[1].Blink[1].Flink)();
+                pCVar56 = this_02;
                 bVar16 = CWindowBackgroundTreatment::HasValidRenderingRealization(this_02,pRVar42);
-                uVar23 = (uint)pCVar55;
+                p_Var44 = local_400;
+                uVar22 = (uint)pCVar56;
                 if (!bVar16) {
-                  uVar23 = CWindowBackgroundTreatment::GenerateBitmapForEffectInput
-                                     (this_02,(CDrawingContext *)p_Var56);
-                  local_410[0] = uVar23;
-                  local_414 = uVar23;
-                  if ((int)uVar23 < 0) {
-                    uVar25 = 0x16ed;
-                    goto LAB_29;
+                  uVar62 = CWindowBackgroundTreatment::GenerateBitmapForEffectInput
+                                     (this_02,(CDrawingContext *)local_400);
+                  local_414 = uVar62;
+                  if ((int)uVar62 < 0) {
+                    uVar22 = 0x1715;
+                    goto LAB_28;
                   }
-                  pCVar55 = this_02;
+                  pCVar56 = this_02;
                   CWindowBackgroundTreatment::SetCacheInvalidationRequired(this_02,true);
-                  uVar23 = (uint)pCVar55;
+                  uVar22 = (uint)pCVar56;
                   bVar19 = cVar17 == '\0';
                 }
                 if ((cVar17 != '\0') && (!bVar19)) {
-                  CTelemetryFrames::IncrementWindowBackdropBrushCacheMisses(uVar23);
+                  CTelemetryFrames::IncrementWindowBackdropBrushCacheMisses(uVar22);
                 }
-                pCVar38 = CMatrixStack::GetTopByReference((CMatrixStack *)(p_Var56 + 0x12));
+                p_Var44 = local_400;
+                pCVar38 = CMatrixStack::GetTopByReference((CMatrixStack *)(local_400 + 0x12));
                 pcVar60 = (char *)0x3;
                 CWindowBackgroundTreatment::SetWorldTransform(this_02,pCVar38,3);
-                p_Var64 = local_400;
-                uVar62 = local_414;
-              }
-            }
-          }
-          p_Var44 = local_298;
+                p_Var64 = local_3f8;
+              }
+            }
+          }
+          p_Var45 = local_298;
           pcVar59 = (code *)local_298;
           bVar19 = CVisual::IsPreserve3DRoot((CVisual *)p_Var64,(CVisual *)local_298);
+          p_Var57 = p_Var44;
           if (!bVar19) {
             local_418[1] = bVar19;
-            if (*(int *)&p_Var56[0x10].Flink == 0) {
-LAB_101:
+            if (*(int *)&p_Var44[0x10].Flink == 0) {
+LAB_99:
               cVar17 = (*(code *)p_Var64->Flink[0x10].Flink)(p_Var64);
               if (cVar17 == '\0') {
                 bVar19 = CVisual::HasProtectedContent((CVisual *)p_Var64);
                 if (bVar19) {
-                  NotifyFrameContainsProtectedContent((CDrawingContext *)p_Var56);
+                  NotifyFrameContainsProtectedContent((CDrawingContext *)p_Var44);
                   bVar19 = CComposition::IsScreenReadBack(g_pComposition);
-                  if (bVar19) goto LAB_102;
+                  if (bVar19) goto LAB_100;
                 }
               }
               else {
                 pcVar60 = local_418 + 1;
-                p_Var44 = p_Var64->Flink[0xf].Blink;
-                pcVar59 = (code *)p_Var56;
-                if (p_Var44 == (_LIST_ENTRY *)CSpriteVisual::RenderContent) {
+                p_Var45 = p_Var64->Flink[0xf].Blink;
+                pcVar59 = (code *)p_Var44;
+                if (p_Var45 == (_LIST_ENTRY *)CSpriteVisual::RenderContent) {
                   CSpriteVisual::RenderContent
-                            ((CSpriteVisual *)p_Var64,(CDrawingContext *)p_Var56,(bool *)pcVar60);
-LAB_103:
+                            ((CSpriteVisual *)p_Var64,(CDrawingContext *)p_Var44,(bool *)pcVar60);
+LAB_101:
                   CProcessAttribution::MarkCompositorRendered
                             ((CProcessAttribution *)local_2a8.Blink);
                 }
-                else if (p_Var44 == (_LIST_ENTRY *)CVisual::RenderContent) {
+                else if (p_Var45 == (_LIST_ENTRY *)CVisual::RenderContent) {
                   CVisual::RenderContent
-                            ((CVisual *)p_Var64,(CDrawingContext *)p_Var56,(bool *)pcVar60);
+                            ((CVisual *)p_Var64,(CDrawingContext *)p_Var44,(bool *)pcVar60);
                   CProcessAttribution::MarkCompositorRendered
                             ((CProcessAttribution *)local_2a8.Blink);
                 }
                 else {
-                  if (p_Var44 != (_LIST_ENTRY *)CWindowNode::RenderContent) {
-                    (*(code *)p_Var44)();
-                    goto LAB_103;
+                  if (p_Var45 != (_LIST_ENTRY *)CWindowNode::RenderContent) {
+                    (*(code *)p_Var45)();
+                    goto LAB_101;
                   }
                   CWindowNode::RenderContent
-                            ((CWindowNode *)p_Var64,(CDrawingContext *)p_Var56,(bool *)pcVar60);
+                            ((CWindowNode *)p_Var64,(CDrawingContext *)p_Var44,(bool *)pcVar60);
                   CProcessAttribution::MarkCompositorRendered
                             ((CProcessAttribution *)local_2a8.Blink);
                 }
               }
             }
             else {
               pcVar59 = (code *)local_418;
               TVar18 = (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
                         )<lambda_88375b7c038d402b80e7daa8931735f4>::operator()(&local_2a8);
-              if (TVar1 == TVar18) goto LAB_101;
+              if (TVar1 == TVar18) goto LAB_99;
               bVar19 = CVisual::HasNonDefaultEffectInternal((CVisual *)p_Var64);
               if ((bVar19) || (lVar61 = (*(code *)p_Var64->Flink[0xe].Flink)(), lVar61 != 0)) {
                 pcVar59 = (code *)local_418;
                 cVar17 = <lambda_88375b7c038d402b80e7daa8931735f4>::operator()(&local_2a8);
                 if ((cVar17 == '\0') ||
                    (pTVar35 = CWatermarkStack<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,8,2,8>
                               ::GetTopByReference((
                                                   CWatermarkStack<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,8,2,8>
-                                                  *)(p_Var56 + 0xcd)), pTVar35[8] == TVar1))
-                goto LAB_104;
+                                                  *)(p_Var44 + 0xcd)), pTVar35[8] == TVar1))
+                goto LAB_102;
+LAB_100:
+                local_418[1] = '\x01';
+              }
+            }
 LAB_102:
-                local_418[1] = '\x01';
-              }
-            }
-LAB_104:
             if (local_320._3_1_ != '\0') {
-              pcVar59 = (code *)0x5c;
-              p_Var44 = p_Var64->Flink[4].Flink;
-              if (p_Var44 == (_LIST_ENTRY *)CLayerVisual::IsOfType) {
-                cVar17 = CLayerVisual::IsOfType((CLayerVisual *)p_Var64,0x5c);
+              pcVar59 = (code *)0x5d;
+              p_Var45 = p_Var64->Flink[4].Flink;
+              if (p_Var45 == (_LIST_ENTRY *)CLayerVisual::IsOfType) {
+                cVar17 = CLayerVisual::IsOfType((CLayerVisual *)p_Var64,0x5d);
               }
               else {
-                cVar17 = (*(code *)p_Var44)();
+                cVar17 = (*(code *)p_Var45)();
               }
               if ((cVar17 != '\0') &&
                  (bVar19 = CLayerVisual::IsAutomaticBoundsToLocalSpaceEnabled
                                      ((CLayerVisual *)p_Var64), bVar19)) {
-                this_03 = CLayerStack::Top((CLayerStack *)&p_Var56[0x16].Blink);
+                this_03 = CLayerStack::Top((CLayerStack *)&p_Var44[0x16].Blink);
                 CMILMatrix::CMILMatrix(local_1e8);
                 CTreeEffectLayer::GetTransformToLayerSpace((CTreeEffectLayer *)this_03,local_1e8);
                 pcVar59 = (code *)CLayerVisual::GetFlatteningVisualTree((CLayerVisual *)p_Var64);
                 pcVar60 = (char *)CVisualTree::GetBounds((CVisualTree *)pcVar59);
-                uVar23 = DrawSubVisualTree((CDrawingContext *)p_Var56,(CVisualTree *)pcVar59,
+                uVar62 = DrawSubVisualTree((CDrawingContext *)p_Var44,(CVisualTree *)pcVar59,
                                            (TMil3DRect<float,TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,D3D_RECT_F,MilPointAndSizeF,RectUniqueness::NotNeeded>
                                             *)pcVar60,local_1e8);
-                local_410[0] = uVar23;
-                if (-1 < (int)uVar23) {
+                local_414 = uVar62;
+                if (-1 < (int)uVar62) {
                   local_418[1] = '\x01';
-                  p_Var50 = local_408;
+                  p_Var46 = local_408;
                   goto LAB_6;
                 }
-                uVar23 = 0x1742;
-                goto LAB_100;
-              }
-            }
-            pbVar63 = local_3f8;
-            p_Var50 = local_408;
-            uVar23 = uVar62;
+                uVar22 = 0x176a;
+                goto LAB_98;
+              }
+            }
+            pbVar63 = local_3f0;
+            p_Var46 = local_408;
             if (local_418[1] == '\0') goto LAB_10;
             goto LAB_6;
           }
           bVar19 = CVisual::HasBspPolygonList((CVisual *)p_Var64);
-          pbVar63 = local_3f8;
-          p_Var50 = local_408;
+          pbVar63 = local_3f0;
+          p_Var46 = local_408;
           if (!bVar19) goto LAB_10;
           if (((byte)Microsoft_Windows_Dwm_CoreEnableBits & 0x20) != 0) {
             McTemplateU0_EventWriteTransfer
                       (&Microsoft_Windows_Dwm_Core_Provider_Context,&EVTDESC_P3D_RENDERING_Start);
           }
           pcVar59 = (code *)p_Var64;
-          uVar62 = DrawBspPolygonList((CDrawingContext *)p_Var56,(CVisual *)p_Var64,
-                                      (CVisual *)p_Var44);
-          local_410[0] = uVar62;
+          uVar62 = DrawBspPolygonList((CDrawingContext *)p_Var44,(CVisual *)p_Var64,
+                                      (CVisual *)p_Var45);
+          local_414 = uVar62;
           if (-1 < (int)uVar62) {
-            pcVar60 = (char *)p_Var44;
+            pcVar60 = (char *)p_Var45;
             if (((byte)Microsoft_Windows_Dwm_CoreEnableBits & 0x20) != 0) {
               pcVar59 = (code *)&EVTDESC_P3D_RENDERING_Stop;
               McTemplateU0_EventWriteTransfer(&Microsoft_Windows_Dwm_Core_Provider_Context);
-              pcVar60 = (char *)p_Var44;
+              pcVar60 = (char *)p_Var45;
             }
             CProcessAttribution::MarkCompositorRendered((CProcessAttribution *)local_2a8.Blink);
-            *local_3f8 = false;
-            pbVar63 = local_3f8;
-            p_Var50 = local_408;
+            *local_3f0 = false;
+            pbVar63 = local_3f0;
+            p_Var46 = local_408;
             goto LAB_10;
           }
-          uVar23 = 0x1752;
-        }
-LAB_100:
-        uVar62 = local_410[0];
+          uVar22 = 0x177a;
+        }
+LAB_98:
+        uVar62 = local_414;
         pcVar60 = (char *)0x0;
         pcVar59 = (code *)0x0;
-        MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,local_410[0],uVar23,(void *)0x0);
-        pbVar63 = local_3f8;
-        p_Var50 = local_408;
+        MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,local_414,uVar22,(void *)0x0);
+        pbVar63 = local_3f0;
+        p_Var46 = local_408;
+        p_Var57 = p_Var44;
         goto LAB_10;
       }
       CalcNodeWorldSpaceInputBounds
-                ((CDrawingContext *)p_Var56,(CVisual *)p_Var44,
+                ((CDrawingContext *)p_Var44,(CVisual *)p_Var45,
                  (TMil3DRect<float,TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,D3D_RECT_F,MilPointAndSizeF,RectUniqueness::NotNeeded>
                   *)&local_138);
       pTVar39 = (TMil3DRect<float,TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,D3D_RECT_F,MilPointAndSizeF,RectUniqueness::NotNeeded>
                  *)&local_138;
-      uVar23 = CalcInversedWorldInputBoundsFromVisibleWorldOutputBounds
-                         ((CDrawingContext *)p_Var56,(CVisual *)p_Var44,
-                          (TMil3DRect<float,TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,D3D_RECT_F,MilPointAndSizeF,RectUniqueness::NotNeeded>
-                           *)local_198,pTVar39,
-                          (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
-                           *)&local_120,
-                          (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
-                           *)&local_168);
-      local_410[0] = uVar23;
-      if ((int)uVar23 < 0) {
-        uVar25 = 0x1684;
+      local_414 = CalcInversedWorldInputBoundsFromVisibleWorldOutputBounds
+                            ((CDrawingContext *)p_Var44,(CVisual *)p_Var45,
+                             (TMil3DRect<float,TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,D3D_RECT_F,MilPointAndSizeF,RectUniqueness::NotNeeded>
+                              *)local_198,pTVar39,
+                             (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
+                              *)&local_120,
+                             (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
+                              *)&local_168);
+      if ((int)local_414 < 0) {
+        uVar22 = 0x16ac;
       }
       else {
         local_418[0] = false;
         pcVar60 = (char *)&local_120;
         pcVar59 = (code *)local_3d8;
-        uVar23 = PushEffects((CDrawingContext *)p_Var56,(NodeEffects *)pcVar59,
+        uVar62 = PushEffects((CDrawingContext *)p_Var44,(NodeEffects *)pcVar59,
                              (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
                               *)pcVar60,(CFilterEffect *)pTVar39,
                              (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
                               *)&local_168,
                              (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
                               *)&local_290,(bool *)local_418);
-        local_410[0] = uVar23;
-        local_414 = uVar23;
-        if (-1 < (int)uVar23) {
-          p_Var50 = local_408;
-          p_Var64 = local_400;
+        local_414 = uVar62;
+        if (-1 < (int)uVar62) {
+          p_Var46 = local_408;
+          p_Var64 = local_3f8;
           if ((bool)local_418[0] != false) goto LAB_6;
-          goto LAB_98;
-        }
-        uVar25 = 0x168b;
+          goto LAB_96;
+        }
+        uVar22 = 0x16b3;
       }
     }
     else {
       if (((int)CVar24 < 3) ||
          (bVar19 = wil::operator!=<ICompositionSurfaceStatistics,wil::err_returncode_policy>
-                             (&p_Stack_3d0), p_Var44 = local_400, bVar19)) {
-LAB_105:
+                             (&p_Stack_3d0), p_Var45 = local_3f8, bVar19)) {
+LAB_103:
         bVar19 = false;
-        goto LAB_95;
-      }
-      pcVar60 = (char *)CMatrixStack::GetTopByReference((CMatrixStack *)(p_Var56 + 0x12));
-      p_Var44 = local_400;
-      pTVar39 = CVisual::GetInputBounds((CVisual *)local_400);
-      bVar19 = DoesCpuClipFullyContainRect((CDrawingContext *)p_Var56,pTVar39,(CMILMatrix *)pcVar60)
+        goto LAB_93;
+      }
+      pcVar60 = (char *)CMatrixStack::GetTopByReference((CMatrixStack *)(p_Var44 + 0x12));
+      p_Var45 = local_3f8;
+      pTVar39 = CVisual::GetInputBounds((CVisual *)local_3f8);
+      bVar19 = DoesCpuClipFullyContainRect((CDrawingContext *)p_Var44,pTVar39,(CMILMatrix *)pcVar60)
       ;
-      if (!bVar19) goto LAB_105;
+      if (!bVar19) goto LAB_103;
       bVar19 = true;
-LAB_96:
+LAB_94:
       TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>::
       TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
                 ((TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
                   *)&local_180);
       bVar16 = wil::operator!=<ICompositionSurfaceStatistics,wil::err_returncode_policy>
                          (&p_Stack_3d0);
       pCVar38 = (CMILMatrix *)local_3b0;
       if (bVar16) {
         pCVar38 = (CMILMatrix *)&uStack_36c;
       }
-      uVar23 = PushClippingScope((CDrawingContext *)p_Var56,(CVisual *)p_Var44,true,bVar19,pCVar38,
-                                 (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
-                                  *)&local_180);
-      local_410[0] = uVar23;
-      if ((int)uVar23 < 0) {
-        uVar25 = 0x1669;
+      local_414 = PushClippingScope((CDrawingContext *)p_Var44,(CVisual *)p_Var45,true,bVar19,
+                                    pCVar38,(TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
+                                             *)&local_180);
+      if ((int)local_414 < 0) {
+        uVar22 = 0x1691;
       }
       else {
         pcVar60 = (char *)&local_180;
-        uVar23 = PushGpuClipRectInternal
-                           ((CDrawingContext *)p_Var56,(CVisual *)p_Var44,
+        uVar62 = PushGpuClipRectInternal
+                           ((CDrawingContext *)p_Var44,(CVisual *)p_Var45,
                             (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
                              *)pcVar60,0,true);
-        local_414 = uVar23;
-        local_410[0] = uVar23;
-        if (-1 < (int)uVar23) goto LAB_97;
-        uVar25 = 0x166f;
-      }
-    }
-LAB_29:
-    uVar62 = local_410[0];
+        local_414 = uVar62;
+        if (-1 < (int)uVar62) goto LAB_95;
+        uVar22 = 0x1697;
+      }
+    }
+LAB_28:
+    uVar62 = local_414;
     pcVar60 = (char *)0x0;
     pcVar59 = (code *)0x0;
-    MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,uVar23,uVar25,(void *)0x0);
-    pbVar63 = local_3f8;
-    p_Var50 = local_408;
-    p_Var64 = local_400;
+    MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,local_414,uVar22,(void *)0x0);
+    pbVar63 = local_3f0;
+    p_Var46 = local_408;
+    p_Var64 = local_3f8;
+    p_Var57 = p_Var44;
     goto LAB_10;
   }
 LAB_6:
-  *local_3f8 = false;
-  pbVar63 = local_3f8;
-  uVar62 = uVar23;
+  *local_3f0 = false;
+  pbVar63 = local_3f0;
+  p_Var57 = p_Var44;
 LAB_10:
   uVar20 = SUB81(pcVar60,0);
-  if ((*(char *)((longlong)&p_Var56[0x1f8].Flink + 4) != '\0') &&
+  if ((*(char *)((longlong)&p_Var57[0x1f8].Flink + 4) != '\0') &&
      (bVar19 = CWatermarkStack<bool,64,2,10>::TopOrDefault
-                         ((CWatermarkStack<bool,64,2,10> *)(p_Var56 + 199),SUB81(pcVar59,0)), bVar19
+                         ((CWatermarkStack<bool,64,2,10> *)(p_Var57 + 199),SUB81(pcVar59,0)), bVar19
      )) {
     uVar20 = 1;
-    CVisual::RenderProjectedShadows((CVisual *)p_Var64,(CDrawingContext *)p_Var56,1);
+    CVisual::RenderProjectedShadows((CVisual *)p_Var64,(CDrawingContext *)p_Var57,1);
   }
   if (((*pbVar63 == false) &&
-      (p_Var44 = p_Var56, bVar19 = IsBackdropWalk((CDrawingContext *)p_Var56), bVar19)) &&
-     (*(char *)((longlong)&p_Var56[0xc].Flink + 1) == '\0')) {
-    pCVar32 = GetCurrentVisualTreePath((CDrawingContext *)p_Var44);
+      (p_Var45 = p_Var57, bVar19 = IsBackdropWalk((CDrawingContext *)p_Var57), bVar19)) &&
+     (*(char *)((longlong)&p_Var57[0xc].Flink + 1) == '\0')) {
+    pCVar32 = GetCurrentVisualTreePath((CDrawingContext *)p_Var45);
     bVar19 = CBackdropVisualImage::IsVisualInAncestorList
-                       ((CBackdropVisualImage *)p_Var56[0xc].Blink,(CVisual *)p_Var64,pCVar32);
+                       ((CBackdropVisualImage *)p_Var57[0xc].Blink,(CVisual *)p_Var64,pCVar32);
     uVar20 = SUB81(pCVar32,0);
     if (bVar19) {
-      *(undefined1 *)((longlong)&p_Var56[0xc].Flink + 1) = 1;
+      *(undefined1 *)((longlong)&p_Var57[0xc].Flink + 1) = 1;
     }
   }
   bVar19 = DwmDbg::Backdrops::IsEtwEnabled();
   if (((bVar19) && (*pbVar63 == false)) &&
-     ((p_Var44 = p_Var64, bVar19 = CVisual::SubgraphHasBackdropInput((CVisual *)p_Var64), bVar19 ||
-      (bVar19 = CVisual::SubgraphHasWindowBackdropInput((CVisual *)p_Var44), bVar19)))) {
+     ((p_Var45 = p_Var64, bVar19 = CVisual::SubgraphHasBackdropInput((CVisual *)p_Var64), bVar19 ||
+      (bVar19 = CVisual::SubgraphHasWindowBackdropInput((CVisual *)p_Var45), bVar19)))) {
     TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>::
     TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
               ((TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
                 *)&local_168);
-    GetClipBoundsWorld((CDrawingContext *)p_Var56,
+    GetClipBoundsWorld((CDrawingContext *)p_Var57,
                        (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
                         *)&local_168,(bool)uVar20);
     puVar31 = (undefined8 *)DwmDbg::DbgString::DbgString(local_260,(D2D_RECT_F *)&local_168);
     uVar33 = *puVar31;
-    puVar31 = (undefined8 *)DwmDbg::DbgString::DbgString(local_270,(long *)local_410);
+    puVar31 = (undefined8 *)DwmDbg::DbgString::DbgString(local_270,(long *)&local_414);
     DwmDbg::DbgString::DbgString
               (local_220,"hr=%s, clipBoundsWorld=[%s], m_pCutoffBVI=0x%p",*puVar31,uVar33);
-    pCVar32 = GetCurrentVisualTreePath((CDrawingContext *)p_Var56);
-    bVar19 = IsBackdropWalk((CDrawingContext *)p_Var56);
+    pCVar32 = GetCurrentVisualTreePath((CDrawingContext *)p_Var57);
+    bVar19 = IsBackdropWalk((CDrawingContext *)p_Var57);
     pcVar60 = "Render-BailWithBackdropsStillInSubtree-Backdrop";
     if (!bVar19) {
       pcVar60 = "Render-BailWithBackdropsStillInSubtree-Normal";
     }
     uVar33 = DwmDbg::DbgString::DbgString(local_218,pcVar60);
-    DwmDbg::Backdrops::LogTreeWalkEtwEvent(uVar33,p_Var64,p_Var50,pCVar32);
+    DwmDbg::Backdrops::LogTreeWalkEtwEvent(uVar33,p_Var64,p_Var46,pCVar32);
     DwmDbg::DbgString::~DbgString(local_270);
     DwmDbg::DbgString::~DbgString(local_260);
-    uVar62 = local_410[0];
+    uVar62 = local_414;
   }
   NodeEffects::~NodeEffects((NodeEffects *)local_3d8);
   return uVar62;
 }
 

```


## std::make_shared<CCursorState::ShapeData>

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,length,address|
|ratio|0.89|
|i_ratio|0.72|
|m_ratio|0.98|
|b_ratio|0.94|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|make_shared<CCursorState::ShapeData>|make_shared<CCursorState::ShapeData>|
|fullname|std::make_shared<CCursorState::ShapeData>|std::make_shared<CCursorState::ShapeData>|
|refcount|5|5|
|`length`|88|89|
|called|operator_new|operator_new|
|calling|CCursorState::AddShadowToShape<br>CCursorState::RotateShape<br>CCursorState::ScaleShape<br>CCursorState::SetShape|CCursorState::AddShadowToShape<br>CCursorState::RotateShape<br>CCursorState::ScaleShape<br>CCursorState::SetShape|
|paramcount|0|0|
|`address`|1802b427c|1802b4a68|
|sig|shared_ptr<CCursorState::ShapeData> __cdecl make_shared<CCursorState::ShapeData>(void)|shared_ptr<CCursorState::ShapeData> __cdecl make_shared<CCursorState::ShapeData>(void)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### std::make_shared<CCursorState::ShapeData> Diff


```diff
--- std::make_shared<CCursorState::ShapeData>
+++ std::make_shared<CCursorState::ShapeData>
@@ -1,29 +1,28 @@
 
-/* class std::shared_ptr<struct CCursorState::ShapeData> __cdecl std::make_shared<struct
+/* class std::shared_ptr<class CCursorState::ShapeData> __cdecl std::make_shared<class
    CCursorState::ShapeData>(void) */
 
 void __cdecl std::make_shared<CCursorState::ShapeData>(void)
 
 {
   undefined8 *puVar1;
   longlong *in_RCX;
   
-  puVar1 = ::operator_new(0x30);
+  puVar1 = ::operator_new(0x28);
   if (puVar1 == (undefined8 *)0x0) {
     puVar1 = (undefined8 *)0x0;
   }
   else {
     *(undefined4 *)(puVar1 + 1) = 1;
     *(undefined4 *)((longlong)puVar1 + 0xc) = 1;
     *puVar1 = &_Ref_count_obj2<CCursorState::ShapeData>::_vftable_;
     puVar1[2] = 0;
     puVar1[3] = 0;
     puVar1[4] = 0;
-    puVar1[5] = 0;
-    puVar1[5] = 0;
+    puVar1[4] = 0;
   }
   in_RCX[1] = (longlong)puVar1;
   *in_RCX = (longlong)(puVar1 + 2);
   return;
 }
 

```


## CCursorState::CCursorState

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.71|
|i_ratio|0.62|
|m_ratio|0.99|
|b_ratio|0.83|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|CCursorState|CCursorState|
|fullname|CCursorState::CCursorState|CCursorState::CCursorState|
|refcount|2|2|
|`length`|282|271|
|`called`|CMILCOMBaseT<ID2D1PrivateCompositorBuffer,ID2D1PrivateCompositorBuffer,CMilObjectDeleter>::CMILCOMBaseT<ID2D1PrivateCompositorBuffer,ID2D1PrivateCompositorBuffer,CMilObjectDeleter><br>std::_Allocate<16,std::_Default_allocate_traits,0>|CMILCOMBaseT<ID2D1PrivateCompositorBuffer,ID2D1PrivateCompositorBuffer,CMilObjectDeleter>::CMILCOMBaseT<ID2D1PrivateCompositorBuffer,ID2D1PrivateCompositorBuffer,CMilObjectDeleter><br>std::_Allocate<16,std::_Default_allocate_traits,0><br>std::shared_ptr<CCursorState::ShapeData>::shared_ptr<CCursorState::ShapeData><br>std::vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_>::vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_>|
|calling|CCursorManager::EnsureCursorState|CCursorManager::EnsureCursorState|
|paramcount|1|1|
|`address`|1802b430c|1802b4b0c|
|sig|undefined __thiscall CCursorState(CCursorState * this)|undefined __thiscall CCursorState(CCursorState * this)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### CCursorState::CCursorState Called Diff


```diff
--- CCursorState::CCursorState called
+++ CCursorState::CCursorState called
@@ -2,0 +3,2 @@
+std::shared_ptr<CCursorState::ShapeData>::shared_ptr<CCursorState::ShapeData>
+std::vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_>::vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_>
```


### CCursorState::CCursorState Diff


```diff
--- CCursorState::CCursorState
+++ CCursorState::CCursorState
@@ -1,54 +1,58 @@
 
 /* public: __cdecl CCursorState::CCursorState(void) __ptr64 */
 
 CCursorState * __thiscall CCursorState::CCursorState(CCursorState *this)
 
 {
   void *pvVar1;
+  undefined4 uVar2;
   
   CMILCOMBaseT<ID2D1PrivateCompositorBuffer,ID2D1PrivateCompositorBuffer,CMilObjectDeleter>::
   CMILCOMBaseT<ID2D1PrivateCompositorBuffer,ID2D1PrivateCompositorBuffer,CMilObjectDeleter>
             ((CMILCOMBaseT<ID2D1PrivateCompositorBuffer,ID2D1PrivateCompositorBuffer,CMilObjectDeleter>
               *)this);
   *(undefined8 *)(this + 0x18) = 10;
+  *(undefined ***)this = &_vftable_;
+  uVar2 = 0x3f800000;
   *(undefined8 *)(this + 0x10) = 0;
-  *(undefined ***)this = &_vftable_;
+  *(undefined4 *)(this + 0x20) = 0x3f800000;
   *(undefined4 *)(this + 0x24) = 0xc00000ff;
-  *(undefined4 *)(this + 0x20) = 0x3f800000;
-  *(undefined8 *)(this + 0x28) = 0;
-  *(undefined8 *)(this + 0x30) = 0;
+  std::shared_ptr<CCursorState::ShapeData>::shared_ptr<CCursorState::ShapeData>
+            ((shared_ptr<CCursorState::ShapeData> *)(this + 0x28));
   *(undefined8 *)(this + 0x38) = 0;
   *(undefined8 *)(this + 0x40) = 0;
   *(undefined8 *)(this + 0x48) = 0;
   *(undefined2 *)(this + 0x50) = 0;
   this[0x52] = (CCursorState)0x0;
-  *(undefined8 *)(this + 0x58) = 0;
-  *(undefined8 *)(this + 0x60) = 0;
-  *(undefined8 *)(this + 0x68) = 0;
+  std::vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_>::
+  vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_>
+            ((vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_> *)
+             (this + 0x58));
   *(undefined4 *)(this + 0x70) = 0;
   *(undefined8 *)(this + 0x78) = 0;
   *(undefined8 *)(this + 0x80) = 0;
   *(undefined8 *)(this + 0x88) = 0;
-  *(undefined4 *)(this + 0xa8) = 0x3f800000;
-  *(undefined8 *)(this + 0xb0) = 0;
-  *(undefined8 *)(this + 0xb8) = 0;
+  *(undefined4 *)(this + 0xa8) = uVar2;
+  std::shared_ptr<CCursorState::ShapeData>::shared_ptr<CCursorState::ShapeData>
+            ((shared_ptr<CCursorState::ShapeData> *)(this + 0xb0));
   *(undefined4 *)(this + 0xc0) = 0;
   *(undefined8 *)(this + 0xc4) = 0;
   *(undefined8 *)(this + 0xcc) = 0;
   *(undefined8 *)(this + 0xd4) = 0;
-  *(undefined8 *)(this + 0xe0) = 0;
-  *(undefined8 *)(this + 0xe8) = 0;
-  *(undefined8 *)(this + 0xf0) = 0;
+  std::vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_>::
+  vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_>
+            ((vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_> *)
+             (this + 0xe0));
   *(undefined4 *)(this + 0xf8) = 0;
   *(undefined8 *)(this + 0x100) = 0;
   *(undefined8 *)(this + 0x108) = 0;
   pvVar1 = std::_Allocate<16,std::_Default_allocate_traits,0>(0x50);
   *(void **)pvVar1 = pvVar1;
   *(void **)((longlong)pvVar1 + 8) = pvVar1;
   *(void **)(this + 0x100) = pvVar1;
   *(ulonglong *)(this + 0x110) = (ulonglong)g_qpcFrequency.QuadPart / 0x14;
   *(undefined8 *)(this + 0x118) = 0;
   *(undefined8 *)(this + 0x120) = 0;
   return this;
 }
 

```


## std::vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_>::_Emplace_reallocate<CCursorState::MonitorData>

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,length,address,calling,called|
|ratio|0.26|
|i_ratio|0.19|
|m_ratio|0.99|
|b_ratio|0.68|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|_Emplace_reallocate<CCursorState::MonitorData>|_Emplace_reallocate<CCursorState::MonitorData>|
|fullname|std::vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_>::_Emplace_reallocate<CCursorState::MonitorData>|std::vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_>::_Emplace_reallocate<CCursorState::MonitorData>|
|refcount|2|2|
|`length`|306|321|
|`called`|CCursorState::MonitorData::MonitorData<br>MSVCP_WIN.DLL::std::_Xlength_error<br>std::_Allocate<16,std::_Default_allocate_traits,0><br>std::_Deallocate<16,0><br>std::_Destroy_range<std::allocator<CCursorState::MonitorData>_><br>std::_Get_size_of_n<128><br>std::_Uninitialized_move<CCursorState::MonitorData*___ptr64,std::allocator<CCursorState::MonitorData>_>|CCursorState::MonitorData::MonitorData<br>std::_Allocate<16,std::_Default_allocate_traits,0><br>std::_Throw_bad_array_new_length<br>std::_Uninitialized_move<CCursorState::MonitorData*___ptr64,std::allocator<CCursorState::MonitorData>_><br>std::vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_>::_Change_array<br>std::vector<tagRECT,std::allocator<tagRECT>_>::_Xlength|
|`calling`|CCursorState::TryEnableHardwareCursor|CCursorState::EnsureMonitorData|
|paramcount|3|3|
|`address`|1802b3600|1802b3eb0|
|sig|MonitorData * __thiscall _Emplace_reallocate<CCursorState::MonitorData>(vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_> * this, MonitorData * param_1, MonitorData * param_2)|MonitorData * __thiscall _Emplace_reallocate<CCursorState::MonitorData>(vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_> * this, MonitorData * param_1, MonitorData * param_2)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### std::vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_>::_Emplace_reallocate<CCursorState::MonitorData> Called Diff


```diff
--- std::vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_>::_Emplace_reallocate<CCursorState::MonitorData> called
+++ std::vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_>::_Emplace_reallocate<CCursorState::MonitorData> called
@@ -2 +1,0 @@
-MSVCP_WIN.DLL::std::_Xlength_error
@@ -4,3 +3 @@
-std::_Deallocate<16,0>
-std::_Destroy_range<std::allocator<CCursorState::MonitorData>_>
-std::_Get_size_of_n<128>
+std::_Throw_bad_array_new_length
@@ -7,0 +5,2 @@
+std::vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_>::_Change_array
+std::vector<tagRECT,std::allocator<tagRECT>_>::_Xlength
```


### std::vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_>::_Emplace_reallocate<CCursorState::MonitorData> Calling Diff


```diff
--- std::vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_>::_Emplace_reallocate<CCursorState::MonitorData> calling
+++ std::vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_>::_Emplace_reallocate<CCursorState::MonitorData> calling
@@ -1 +1 @@
-CCursorState::TryEnableHardwareCursor
+CCursorState::EnsureMonitorData
```


### std::vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_>::_Emplace_reallocate<CCursorState::MonitorData> Diff


```diff
--- std::vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_>::_Emplace_reallocate<CCursorState::MonitorData>
+++ std::vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_>::_Emplace_reallocate<CCursorState::MonitorData>
@@ -1,71 +1,68 @@
 
-/* private: struct CCursorState::MonitorData * __ptr64 __cdecl std::vector<struct
-   CCursorState::MonitorData,class std::allocator<struct CCursorState::MonitorData>
-   >::_Emplace_reallocate<struct CCursorState::MonitorData>(struct CCursorState::MonitorData *
-   __ptr64 const,struct CCursorState::MonitorData && __ptr64) __ptr64 */
+/* private: class CCursorState::MonitorData * __ptr64 __cdecl std::vector<class
+   CCursorState::MonitorData,class std::allocator<class CCursorState::MonitorData>
+   >::_Emplace_reallocate<class CCursorState::MonitorData>(class CCursorState::MonitorData * __ptr64
+   const,class CCursorState::MonitorData && __ptr64) __ptr64 */
 
 MonitorData * __thiscall
 std::vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_>::
 _Emplace_reallocate<CCursorState::MonitorData>
           (vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_> *this,
           MonitorData *param_1,MonitorData *param_2)
 
 {
   longlong lVar1;
-  code *pcVar2;
+  ulonglong uVar2;
   MonitorData *pMVar3;
-  __uint64 _Var4;
+  ulonglong uVar4;
   MonitorData *pMVar5;
-  ulonglong uVar6;
+  MonitorData *pMVar6;
+  MonitorData *this_00;
   MonitorData *pMVar7;
-  MonitorData *pMVar8;
-  ulonglong uVar9;
-  longlong lVar10;
-  ulonglong uVar11;
-  allocator<CCursorState::MonitorData> *in_R9;
-  MonitorData *this_00;
+  allocator<CCursorState::MonitorData> *paVar8;
+  longlong lVar9;
+  ulonglong uVar10;
   
-  lVar1 = *(longlong *)this;
-  lVar10 = *(longlong *)(this + 8) - *(longlong *)this >> 7;
-  if (lVar10 == 0x1ffffffffffffff) {
-    std::_Xlength_error("vector too long");
-    pcVar2 = (code *)swi(3);
-    pMVar3 = (MonitorData *)(*pcVar2)();
-    return pMVar3;
+  paVar8 = (allocator<CCursorState::MonitorData> *)(param_1 + -*(longlong *)this);
+  lVar1 = (longlong)paVar8 / 0xa0;
+  lVar9 = (*(longlong *)(this + 8) - *(longlong *)this >> 5) * -0x3333333333333333;
+  if (lVar9 == 0x199999999999999) {
+                    /* WARNING: Subroutine does not return */
+    vector<tagRECT,std::allocator<tagRECT>_>::_Xlength();
   }
-  uVar11 = lVar10 + 1;
-  uVar6 = *(longlong *)(this + 0x10) - *(longlong *)this >> 7;
-  uVar9 = 0x1ffffffffffffff;
-  if ((uVar6 <= 0x1ffffffffffffff - (uVar6 >> 1)) && (uVar9 = (uVar6 >> 1) + uVar6, uVar9 < uVar11))
-  {
-    uVar9 = uVar11;
+  uVar10 = lVar9 + 1;
+  uVar4 = (*(longlong *)(this + 0x10) - *(longlong *)this >> 5) * -0x3333333333333333;
+  uVar2 = 0x199999999999999 - (uVar4 >> 1);
+  if (uVar4 < uVar2 || uVar4 - uVar2 == 0) {
+    uVar4 = (uVar4 >> 1) + uVar4;
+    uVar2 = uVar10;
+    if (uVar10 <= uVar4) {
+      uVar2 = uVar4;
+    }
+    if (0x199999999999999 < uVar2) {
+                    /* WARNING: Subroutine does not return */
+      _Throw_bad_array_new_length();
+    }
   }
-  _Var4 = _Get_size_of_n<128>(uVar9);
-  pMVar5 = _Allocate<16,std::_Default_allocate_traits,0>(_Var4);
-  this_00 = pMVar5 + ((longlong)param_1 - lVar1 & 0xffffffffffffff80);
+  else {
+    uVar2 = 0x199999999999999;
+  }
+  pMVar3 = _Allocate<16,std::_Default_allocate_traits,0>(uVar2 * 0xa0);
+  this_00 = pMVar3 + lVar1 * 0xa0;
   CCursorState::MonitorData::MonitorData(this_00,param_2);
-  pMVar8 = *(MonitorData **)(this + 8);
-  pMVar7 = *(MonitorData **)this;
-  pMVar3 = pMVar5;
-  if (param_1 != pMVar8) {
+  pMVar6 = *(MonitorData **)(this + 8);
+  pMVar5 = *(MonitorData **)this;
+  pMVar7 = pMVar3;
+  if (param_1 != pMVar6) {
     _Uninitialized_move<CCursorState::MonitorData*___ptr64,std::allocator<CCursorState::MonitorData>_>
-              (*(MonitorData **)this,param_1,pMVar5,in_R9);
-    pMVar8 = *(MonitorData **)(this + 8);
-    pMVar3 = this_00 + 0x80;
-    pMVar7 = param_1;
+              (*(MonitorData **)this,param_1,pMVar3,paVar8);
+    pMVar6 = *(MonitorData **)(this + 8);
+    pMVar7 = this_00 + 0xa0;
+    pMVar5 = param_1;
   }
   _Uninitialized_move<CCursorState::MonitorData*___ptr64,std::allocator<CCursorState::MonitorData>_>
-            (pMVar7,pMVar8,pMVar3,in_R9);
-  if (*(MonitorData **)this != (MonitorData *)0x0) {
-    _Destroy_range<std::allocator<CCursorState::MonitorData>_>
-              (*(MonitorData **)this,*(MonitorData **)(this + 8),
-               (allocator<CCursorState::MonitorData> *)pMVar3);
-    _Deallocate<16,0>(*(void **)this,
-                      *(longlong *)(this + 0x10) - *(longlong *)this & 0xffffffffffffff80);
-  }
-  *(MonitorData **)this = pMVar5;
-  *(MonitorData **)(this + 8) = pMVar5 + uVar11 * 0x80;
-  *(MonitorData **)(this + 0x10) = pMVar5 + uVar9 * 0x80;
+            (pMVar5,pMVar6,pMVar7,paVar8);
+  _Change_array(this,pMVar3,uVar10,uVar2);
   return this_00;
 }
 

```


## CBaseExpression::CalculateValue

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.13|
|i_ratio|0.16|
|m_ratio|0.65|
|b_ratio|0.33|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|CalculateValue|CalculateValue|
|fullname|CBaseExpression::CalculateValue|CBaseExpression::CalculateValue|
|refcount|13|13|
|`length`|4791|2371|
|`called`|<details><summary>Expand for full list:<br>API-MS-WIN-CORE-HANDLE-L1-1-0.DLL::CloseHandle<br>API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::CreateEventW<br>API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::SetEvent<br>AnimationHelper::FindAnimatablePropertyInfo<br>CBaseExpression::CalculateValue<br>CBaseExpression::EnsureExpressionIsUnregistered<br>CBaseExpression::GetPerformanceCounter<br>CBaseExpression::GetTracingCookie<br>CBaseExpression::IsDirtyForFrame<br>CBaseExpression::IsExpressionValueValid<br>CBaseExpression::LogSetOutputValue</summary>CBaseExpression::ResolveTargetNoRef<br>CBaseExpression::ShouldLogPerfStats<br>CColorBrush::GetProperty<br>CComponentTransform3D::SetProperty<br>CExpression::CalculateValueWorker<br>CExpressionPerformanceCounter::AddDurationSample<br>CExpressionValue::ApplyMaskToValue<br>CExpressionValue::CopyFrom<br>CExpressionValue::HasValue<br>CExpressionValue::operator=<br>CExpressionValue::operator==<br>CExpressionValueStack::PeekStackValue<br>CKeyframeAnimation::CalculateValueWorker<br>CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter>::InternalRelease<br>CNaturalAnimation::CalculateValue<br>CNaturalAnimation::IsPastDelay<br>CNaturalAnimation::PushValueToStack<br>CNaturalAnimation::SetupAnimationIfNecessary<br>CPropertySet::GetProperty<br>CPropertySet::SetProperty<br>CResource::GetPropertyImpl<br>CResource::SetPropertyImpl<br>CVisual::GetOpacityInternal<br>CVisual::GetProperty<br>CVisual::GetRelativeLayoutSizeInternal<br>CVisual::GetRelativeOffsetInternal<br>CVisual::SetProperty<br>DynArray<CExpressionValue,1>::AddAndSet<br>Microsoft::WRL::ComPtr<CPathData>::InternalRelease<br>MilInstrumentationCheckHR_MaybeFailFast<br>QpcStopwatch::GetElapsed<br>QpcStopwatch::Start<br>StringCchPrintfW<br>__security_check_cookie<br>_guard_dispatch_icall$thunk$10345483385596137414<br>gsl::span<AnimationHelper::AnimatedProperty_const*___ptr64_const,-1>::storage_type<gsl::details::extent_type<-1>_>::storage_type<gsl::details::extent_type<-1>_><gsl::details::extent_type<6>_><br>gsl::span<AnimationHelper::AnimatedProperty_const*___ptr64_const,-1>::storage_type<gsl::details::extent_type<-1>_>::storage_type<gsl::details::extent_type<-1>_><gsl::details::extent_type<8>_><br>memset</details>|<details><summary>Expand for full list:<br>CBaseExpression::CalculateValue<br>CBaseExpression::EnsureExpressionIsUnregistered<br>CBaseExpression::GetPerformanceCounter<br>CBaseExpression::IsDirtyForFrame<br>CBaseExpression::IsExpressionValueValid<br>CBaseExpression::ResolveTargetNoRef<br>CBaseExpression::SetOutputValue<br>CBaseExpression::ShouldLogPerfStats<br>CColorBrush::GetProperty<br>CExpression::CalculateValueWorker<br>CExpressionPerformanceCounter::AddDurationSample</summary>CExpressionValue::ApplyMaskToValue<br>CExpressionValue::CopyFrom<br>CExpressionValue::HasValue<br>CExpressionValue::operator=<br>CExpressionValueStack::PeekStackValue<br>CKeyframeAnimation::CalculateValueWorker<br>CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter>::InternalRelease<br>CNaturalAnimation::CalculateValue<br>CNaturalAnimation::IsPastDelay<br>CNaturalAnimation::PushValueToStack<br>CNaturalAnimation::SetupAnimationIfNecessary<br>CPropertySet::GetProperty<br>CVisual::GetProperty<br>DynArray<CExpressionValue,1>::AddAndSet<br>Microsoft::WRL::ComPtr<CPathData>::InternalRelease<br>MilInstrumentationCheckHR_MaybeFailFast<br>QpcStopwatch::GetElapsed<br>QpcStopwatch::Start<br>__security_check_cookie<br>_guard_dispatch_icall$thunk$10345483385596137414<br>memset</details>|
|calling|CBaseExpression::CalculateValue<br>CExpressionManager::UpdateExpressionsWorker<br>CInteractionTracker::DestroyDefaultAnimations<br>CInteractionTracker::TransitionToInertia<br>CKeyframeAnimation::CalculateValueWorker<br>CKeyframeAnimation::ProcessExpressionKeyFrames<br>CKeyframeAnimation::SampleExpressionsAndStartingValue<br>KeyframeSequence::Calculate<br>KeyframeValue::GetValue|CBaseExpression::CalculateValue<br>CExpressionManager::UpdateExpressionsWorker<br>CInteractionTracker::DestroyDefaultAnimations<br>CInteractionTracker::TransitionToInertia<br>CKeyframeAnimation::CalculateValueWorker<br>CKeyframeAnimation::ProcessExpressionKeyFrames<br>CKeyframeAnimation::SampleExpressionsAndStartingValue<br>KeyframeSequence::Calculate<br>KeyframeValue::GetValue|
|paramcount|4|4|
|`address`|180011e30|1800129b0|
|sig|long __thiscall CalculateValue(CBaseExpression * this, CExpressionValueStack * param_1, __uint64 param_2, bool * param_3)|long __thiscall CalculateValue(CBaseExpression * this, CExpressionValueStack * param_1, __uint64 param_2, bool * param_3)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### CBaseExpression::CalculateValue Called Diff


```diff
--- CBaseExpression::CalculateValue called
+++ CBaseExpression::CalculateValue called
@@ -1,4 +0,0 @@
-API-MS-WIN-CORE-HANDLE-L1-1-0.DLL::CloseHandle
-API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::CreateEventW
-API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::SetEvent
-AnimationHelper::FindAnimatablePropertyInfo
@@ -8 +3,0 @@
-CBaseExpression::GetTracingCookie
@@ -11 +5,0 @@
-CBaseExpression::LogSetOutputValue
@@ -12,0 +7 @@
+CBaseExpression::SetOutputValue
@@ -15 +9,0 @@
-CComponentTransform3D::SetProperty
@@ -22 +15,0 @@
-CExpressionValue::operator==
@@ -31,4 +23,0 @@
-CPropertySet::SetProperty
-CResource::GetPropertyImpl
-CResource::SetPropertyImpl
-CVisual::GetOpacityInternal
@@ -36,3 +24,0 @@
-CVisual::GetRelativeLayoutSizeInternal
-CVisual::GetRelativeOffsetInternal
-CVisual::SetProperty
@@ -44 +29,0 @@
-StringCchPrintfW
@@ -47,2 +31,0 @@
-gsl::span<AnimationHelper::AnimatedProperty_const*___ptr64_const,-1>::storage_type<gsl::details::extent_type<-1>_>::storage_type<gsl::details::extent_type<-1>_><gsl::details::extent_type<6>_>
-gsl::span<AnimationHelper::AnimatedProperty_const*___ptr64_const,-1>::storage_type<gsl::details::extent_type<-1>_>::storage_type<gsl::details::extent_type<-1>_><gsl::details::extent_type<8>_>
```


### CBaseExpression::CalculateValue Diff


```diff
--- CBaseExpression::CalculateValue
+++ CBaseExpression::CalculateValue
@@ -1,759 +1,357 @@
 
 /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
 /* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
    guard_dispatch_icall */
 /* public: long __cdecl CBaseExpression::CalculateValue(class CExpressionValueStack *
    __ptr64,unsigned __int64,bool * __ptr64) __ptr64 */
 
 long __thiscall
 CBaseExpression::CalculateValue
           (CBaseExpression *this,CExpressionValueStack *param_1,__uint64 param_2,bool *param_3)
 
 {
-  longlong lVar1;
-  byte bVar2;
-  int iVar3;
-  DCOMPOSITION_EXPRESSION_TYPE DVar4;
-  code *pcVar5;
-  int *piVar6;
-  SubchannelMaskInfo *pSVar7;
-  CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter> *pCVar8;
-  bool bVar9;
-  bool bVar10;
-  char cVar11;
-  long lVar12;
-  uint uVar13;
-  long lVar14;
-  __int64 _Var15;
-  CResource *pCVar16;
-  AnimatedProperty *pAVar17;
-  HANDLE hEvent;
-  CBaseExpression CVar18;
-  CBaseExpression *pCVar19;
-  ulonglong uVar21;
-  longlong lVar22;
-  longlong lVar23;
-  ulonglong uVar24;
-  CExpressionValue *pCVar25;
-  CExpressionPerformanceCounter *this_00;
-  float fVar26;
-  undefined4 uVar27;
-  undefined4 uVar28;
-  undefined1 auStackY_228 [32];
-  bool local_1f8;
-  char local_1f7 [3];
-  float local_1f4;
-  __uint64 local_1f0;
-  float local_1e8 [2];
-  longlong local_1e0;
-  CExpressionPerformanceCounter *local_1d8;
-  uint local_1d0;
-  undefined8 local_1c8;
-  longlong local_1c0;
-  storage_type<gsl::details::extent_type<_1>_> local_1b8 [16];
-  storage_type<gsl::details::extent_type<_1>_> local_1a8 [16];
-  storage_type<gsl::details::extent_type<_1>_> local_198 [16];
-  ulonglong local_188;
-  undefined4 local_180;
-  undefined8 local_178;
-  ulonglong uStack_170;
-  undefined8 local_168;
-  undefined8 uStack_160;
-  undefined8 local_158;
-  undefined8 uStack_150;
-  undefined8 local_148;
-  undefined8 uStack_140;
-  CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter> *local_138;
-  int local_130;
-  undefined8 local_128;
-  undefined8 uStack_120;
-  undefined8 local_118;
-  undefined8 uStack_110;
-  undefined8 local_108;
-  undefined8 uStack_100;
-  undefined8 local_f8;
-  undefined8 uStack_f0;
-  CExpressionValue *local_e8;
-  DCOMPOSITION_EXPRESSION_TYPE local_e0;
-  WCHAR local_d8 [64];
+  int *piVar1;
+  code *pcVar2;
+  SubchannelMaskInfo *pSVar3;
+  CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter> *pCVar4;
+  bool bVar5;
+  bool bVar6;
+  int iVar7;
+  uint uVar8;
+  __int64 _Var9;
+  CResource *this_00;
+  CExpressionPerformanceCounter *this_01;
+  CBaseExpression CVar10;
+  CBaseExpression *this_02;
+  char cVar12;
+  ulonglong uVar13;
+  longlong lVar14;
+  longlong lVar15;
+  CExpressionValue *pCVar16;
+  undefined1 auStackY_168 [32];
+  char local_138;
+  bool local_137 [3];
+  int local_134;
+  __uint64 local_130;
+  longlong local_128;
+  uint local_120;
+  uint local_11c;
+  longlong local_118 [2];
+  longlong local_108;
+  undefined4 local_100;
+  CExpressionValue local_f8 [64];
+  undefined8 local_b8;
+  undefined4 local_b0;
+  CExpressionValue local_a8 [64];
+  CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter> *local_68;
+  int local_60;
   ulonglong local_58;
-  ComPtr<CPathData> *pCVar20;
+  ComPtr<CPathData> *pCVar11;
   
-  local_58 = __security_cookie ^ (ulonglong)auStackY_228;
-  local_1c0 = 0;
-  local_1e0 = 0;
+  local_58 = __security_cookie ^ (ulonglong)auStackY_168;
+  local_118[0] = 0;
+  local_128 = 0;
   *param_3 = false;
-  local_1d8 = (CExpressionPerformanceCounter *)0x0;
-  pCVar19 = this;
-  local_1f0 = param_2;
-  bVar9 = ShouldLogPerfStats(this);
-  lVar22 = 0;
-  if (bVar9) {
-    local_1d8 = GetPerformanceCounter(pCVar19);
-    QpcStopwatch::Start((QpcStopwatch *)&local_1c0);
-    lVar22 = local_1c0;
-    param_2 = local_1f0;
-  }
-  local_1d0 = *(uint *)(param_1 + 8);
-  iVar3 = *(int *)(this + 0xe4);
+  this_01 = (CExpressionPerformanceCounter *)0x0;
+  this_02 = this;
+  local_130 = param_2;
+  bVar5 = ShouldLogPerfStats(this);
+  lVar14 = 0;
+  if (bVar5) {
+    this_01 = GetPerformanceCounter(this_02);
+    QpcStopwatch::Start((QpcStopwatch *)local_118);
+    lVar14 = local_118[0];
+    param_2 = local_130;
+  }
+  local_11c = *(uint *)(param_1 + 8);
+  local_134 = *(int *)(this + 0xe4);
   if (*(longlong *)(this + 0xe8) == 0) {
     *(__uint64 *)(this + 0xe8) = param_2;
   }
-  local_1f7[0] = '\0';
+  local_138 = '\0';
   if (*(code **)(*(longlong *)this + 0x110) == CExpression::PrepareForCalculation) {
     if ((CCommonRegistryData::OptimizeForDirtyExpressions == (CRegistryKey<bool,bool>)0x0) ||
        (*(longlong *)(this + 0x140) != 0)) {
-      local_1f7[0] = '\x01';
+      local_138 = '\x01';
     }
     else {
-      local_1f7[0] = IsDirtyForFrame(this);
+      local_138 = IsDirtyForFrame(this);
     }
   }
   else {
-    (**(code **)(*(longlong *)this + 0x110))(this,local_1f7);
-  }
-  cVar11 = local_1f7[0];
-  bVar10 = CExpressionValue::HasValue((CExpressionValue *)(this + 0x50));
-  if ((bVar10) && (cVar11 == '\0')) {
-    lVar14 = 0;
+    (**(code **)(*(longlong *)this + 0x110))(this,&local_138);
+  }
+  cVar12 = local_138;
+  bVar6 = CExpressionValue::HasValue((CExpressionValue *)(this + 0x50));
+  if ((bVar6) && (cVar12 == '\0')) {
+    iVar7 = 0;
     goto LAB_0;
   }
-  *(__uint64 *)(this + 0xb0) = local_1f0;
-  if ((bVar9) && (((byte)this[0xe0] & 2) != 0)) {
-    lVar23 = *(longlong *)(*(longlong *)(this + 0x18) + 0x338);
-    uVar13 = *(uint *)(*(longlong *)(this + 0x138) + 4);
-    piVar6 = (int *)(lVar23 + 0x1bc);
-    *piVar6 = *piVar6 + 1;
-    if ((uVar13 >> 0x1e & 1) != 0) {
-      piVar6 = (int *)(lVar23 + 0x1c0);
-      *piVar6 = *piVar6 + 1;
-    }
-  }
-  lVar23 = 0;
-  if (local_1d8 != (CExpressionPerformanceCounter *)0x0) {
-    QpcStopwatch::Start((QpcStopwatch *)&local_1e0);
-    lVar23 = local_1e0;
+  *(__uint64 *)(this + 0xb0) = local_130;
+  if ((bVar5) && (((byte)this[0xe0] & 2) != 0)) {
+    lVar15 = *(longlong *)(*(longlong *)(this + 0x18) + 0x338);
+    uVar8 = *(uint *)(*(longlong *)(this + 0x138) + 4);
+    piVar1 = (int *)(lVar15 + 0x1bc);
+    *piVar1 = *piVar1 + 1;
+    if ((uVar8 >> 0x1e & 1) != 0) {
+      piVar1 = (int *)(lVar15 + 0x1c0);
+      *piVar1 = *piVar1 + 1;
+    }
+  }
+  lVar15 = 0;
+  if (this_01 != (CExpressionPerformanceCounter *)0x0) {
+    QpcStopwatch::Start((QpcStopwatch *)&local_128);
+    lVar15 = local_128;
   }
   if (((byte)this[0xe0] & 8) == 0) {
-    for (local_1f4 = 0.0; (uint)local_1f4 < (uint)*(float *)(this + 0x108);
-        local_1f4 = (float)((int)local_1f4 + 1)) {
-      local_1c8 = (ulonglong)(uint)local_1f4;
-      local_1f8 = false;
-      lVar14 = CalculateValue(*(CBaseExpression **)(*(longlong *)(this + 0xf0) + local_1c8 * 8),
-                              param_1,*(__uint64 *)(this + 0xb0),&local_1f8);
-      if (lVar14 < 0) {
-        MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar14,0x2eb,(void *)0x0);
-        uVar13 = 0x450;
+    uVar13 = 0;
+    while (local_120 = (uint)uVar13, local_120 < *(uint *)(this + 0x108)) {
+      local_108 = uVar13 * 8;
+      local_137[0] = false;
+      iVar7 = CalculateValue(*(CBaseExpression **)(local_108 + *(longlong *)(this + 0xf0)),param_1,
+                             *(__uint64 *)(this + 0xb0),local_137);
+      if (iVar7 < 0) {
+        MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,iVar7,0x2fe,(void *)0x0);
+        uVar8 = 0x463;
         goto LAB_1;
       }
-      EnsureExpressionIsUnregistered
-                (*(CBaseExpression **)(*(longlong *)(this + 0xf0) + local_1c8 * 8));
+      EnsureExpressionIsUnregistered(*(CBaseExpression **)(local_108 + *(longlong *)(this + 0xf0)));
+      uVar13 = (ulonglong)(local_120 + 1);
     }
     this[0xe0] = (CBaseExpression)((byte)this[0xe0] | 8);
   }
-  if (iVar3 == 0) {
+  if (local_134 == 0) {
     *(undefined4 *)(this + 0xe4) = 4;
   }
-  pcVar5 = *(code **)(*(longlong *)this + 0xf8);
-  pCVar20 = (ComPtr<CPathData> *)this;
-  if (pcVar5 == CKeyframeAnimation::CalculateValueWorker) {
-    lVar12 = CKeyframeAnimation::CalculateValueWorker
-                       ((CKeyframeAnimation *)this,param_1,local_1f0,param_3);
-  }
-  else if (pcVar5 == CExpression::CalculateValueWorker) {
-    lVar12 = CExpression::CalculateValueWorker((CExpression *)this,param_1,local_1f0,param_3);
-  }
-  else if (pcVar5 == CNaturalAnimation::CalculateValueWorker) {
+  pcVar2 = *(code **)(*(longlong *)this + 0xf8);
+  pCVar11 = (ComPtr<CPathData> *)this;
+  if (pcVar2 == CKeyframeAnimation::CalculateValueWorker) {
+    iVar7 = CKeyframeAnimation::CalculateValueWorker
+                      ((CKeyframeAnimation *)this,param_1,local_130,param_3);
+  }
+  else if (pcVar2 == CExpression::CalculateValueWorker) {
+    iVar7 = CExpression::CalculateValueWorker((CExpression *)this,param_1,local_130,param_3);
+  }
+  else if (pcVar2 == CNaturalAnimation::CalculateValueWorker) {
     *param_3 = true;
-    lVar12 = 0;
+    iVar7 = 0;
     CNaturalAnimation::SetupAnimationIfNecessary((CNaturalAnimation *)this);
-    bVar9 = CNaturalAnimation::IsPastDelay((CNaturalAnimation *)this);
-    if (bVar9) {
-      CNaturalAnimation::CalculateValue((CNaturalAnimation *)this,param_1,local_1f0,param_3);
+    bVar5 = CNaturalAnimation::IsPastDelay((CNaturalAnimation *)this);
+    if (bVar5) {
+      CNaturalAnimation::CalculateValue((CNaturalAnimation *)this,param_1,local_130,param_3);
     }
     else if (*(int *)(this + 0x18c) == 1) {
-      local_188 = *(ulonglong *)(this + 0x140);
-      local_180 = *(undefined4 *)(this + 0x148);
-      CNaturalAnimation::PushValueToStack((CNaturalAnimation *)this);
+      local_108 = *(longlong *)(this + 0x140);
+      local_100 = *(undefined4 *)(this + 0x148);
+      CNaturalAnimation::PushValueToStack((CNaturalAnimation *)this,&local_108,param_1);
     }
     else {
-      lVar12 = 1;
-    }
-    CVar18 = (CBaseExpression)((*param_3 << 6 ^ (byte)this[0x23c]) & 0x40 ^ (byte)this[0x23c]);
-    pCVar20 = (ComPtr<CPathData> *)(ulonglong)(byte)CVar18;
-    this[0x23c] = CVar18;
+      iVar7 = 1;
+    }
+    CVar10 = (CBaseExpression)((*param_3 << 6 ^ (byte)this[0x23c]) & 0x40 ^ (byte)this[0x23c]);
+    pCVar11 = (ComPtr<CPathData> *)(ulonglong)(byte)CVar10;
+    this[0x23c] = CVar10;
   }
   else {
-    lVar12 = (*pcVar5)();
-  }
-  if (lVar12 < 0) {
-    uVar13 = 0x457;
-    lVar14 = lVar12;
-    goto LAB_1;
-  }
-  if (lVar23 != 0) {
-    _Var15 = QpcStopwatch::GetElapsed((QpcStopwatch *)&local_1e0);
-    pCVar20 = (ComPtr<CPathData> *)local_1d8;
-    CExpressionPerformanceCounter::AddDurationSample(local_1d8,1,_Var15);
-    local_1e0 = 0;
-  }
-  if (lVar12 == 1) {
-LAB_2:
-    memset(&local_178,0,0x40);
-    local_138 = (CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter> *)0x0;
-    local_130 = 0;
-    pCVar16 = ResolveTargetNoRef(this);
-    if (pCVar16 == (CResource *)0x0) {
-      lVar14 = -0x7ff8ff8e;
-      uVar13 = 0x47d;
+    iVar7 = (*pcVar2)(this,param_1,local_130,param_3);
+  }
+  local_134 = iVar7;
+  if (iVar7 < 0) {
+    uVar8 = 0x46a;
+LAB_1:
+    MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)&DAT_2,2,iVar7,uVar8,(void *)0x0);
+  }
+  else {
+    if (lVar15 != 0) {
+      _Var9 = QpcStopwatch::GetElapsed((QpcStopwatch *)&local_128);
+      pCVar11 = (ComPtr<CPathData> *)this_01;
+      CExpressionPerformanceCounter::AddDurationSample(this_01,1,_Var9);
+      local_128 = 0;
+    }
+    if (iVar7 != 1) {
+      if (*(int *)(param_1 + 8) == 0) {
+        EnsureExpressionIsUnregistered(this);
+        iVar7 = -0x7fffbffb;
+        uVar8 = 0x483;
+      }
+      else {
+        uVar8 = *(int *)(param_1 + 8) - 1;
+        pCVar16 = &CExpressionValueStack::s_emptyValue;
+        if (uVar8 < *(uint *)(param_1 + 0x28)) {
+          pCVar16 = (CExpressionValue *)((ulonglong)uVar8 * 0x50 + *(longlong *)(param_1 + 0x10));
+        }
+        else {
+          memset(local_f8,0,0x40);
+          local_b8 = 0;
+          local_b0 = 0;
+          CExpressionValue::operator=(&CExpressionValueStack::s_emptyValue,local_f8);
+          pCVar11 = (ComPtr<CPathData> *)&local_b8;
+          Microsoft::WRL::ComPtr<CPathData>::InternalRelease(pCVar11);
+        }
+        bVar5 = IsExpressionValueValid((CBaseExpression *)pCVar11,pCVar16);
+        if (!bVar5) goto LAB_3;
+LAB_4:
+        pCVar16 = &CExpressionValueStack::s_emptyValue;
+        if (*(int *)(param_1 + 8) == local_11c + 1) {
+          lVar15 = 0;
+          if (this_01 != (CExpressionPerformanceCounter *)0x0) {
+            QpcStopwatch::Start((QpcStopwatch *)&local_128);
+            lVar15 = local_128;
+          }
+          if (*(int *)(param_1 + 8) - 1U < *(uint *)(param_1 + 0x28)) {
+            pCVar16 = (CExpressionValue *)
+                      ((ulonglong)(*(int *)(param_1 + 8) - 1U) * 0x50 +
+                      *(longlong *)(param_1 + 0x10));
+          }
+          else {
+            memset(local_f8,0,0x40);
+            local_b8 = 0;
+            local_b0 = 0;
+            CExpressionValue::operator=(&CExpressionValueStack::s_emptyValue,local_f8);
+            Microsoft::WRL::ComPtr<CPathData>::InternalRelease((ComPtr<CPathData> *)&local_b8);
+          }
+          iVar7 = SetOutputValue(this,pCVar16);
+          if (-1 < iVar7) {
+            if (lVar15 != 0) {
+              _Var9 = QpcStopwatch::GetElapsed((QpcStopwatch *)&local_128);
+              CExpressionPerformanceCounter::AddDurationSample(this_01,5,_Var9);
+            }
+            *(int *)(param_1 + 8) = *(int *)(param_1 + 8) + -1;
+            iVar7 = 0;
+            goto LAB_0;
+          }
+          uVar8 = 0x4c4;
+        }
+        else {
+          iVar7 = -0x7fffbffb;
+          uVar8 = 0x4b7;
+        }
+      }
+      goto LAB_1;
+    }
 LAB_3:
-      MilInstrumentationCheckHR_MaybeFailFast
-                (0x14,(long *)&DAT_4,2,lVar14,uVar13,(void *)0x0);
-      Microsoft::WRL::ComPtr<CPathData>::InternalRelease((ComPtr<CPathData> *)&local_138);
+    memset(local_a8,0,0x40);
+    local_68 = (CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter> *)0x0;
+    local_60 = 0;
+    this_00 = ResolveTargetNoRef(this);
+    if (this_00 == (CResource *)0x0) {
+      iVar7 = -0x7ff8ff8e;
+      uVar8 = 0x490;
+LAB_5:
+      MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)&DAT_2,2,iVar7,uVar8,(void *)0x0)
+      ;
+      Microsoft::WRL::ComPtr<CPathData>::InternalRelease((ComPtr<CPathData> *)&local_68);
     }
     else {
-      pcVar5 = *(code **)(*(longlong *)pCVar16 + 0x88);
-      if (pcVar5 == CPropertySet::GetProperty) {
-        lVar14 = CPropertySet::GetProperty
-                           ((CPropertySet *)pCVar16,*(uint *)(this + 0xbc),
-                            (CExpressionValue *)&local_178);
-      }
-      else if (pcVar5 == CVisual::GetProperty) {
-        lVar14 = CVisual::GetProperty
-                           ((CVisual *)pCVar16,*(uint *)(this + 0xbc),(CExpressionValue *)&local_178
-                           );
-      }
-      else if (pcVar5 == CColorBrush::GetProperty) {
-        lVar14 = CColorBrush::GetProperty
-                           ((CColorBrush *)pCVar16,*(uint *)(this + 0xbc),
-                            (CExpressionValue *)&local_178);
+      pcVar2 = *(code **)(*(longlong *)this_00 + 0x88);
+      if (pcVar2 == CPropertySet::GetProperty) {
+        iVar7 = CPropertySet::GetProperty((CPropertySet *)this_00,*(uint *)(this + 0xbc),local_a8);
+      }
+      else if (pcVar2 == CVisual::GetProperty) {
+        iVar7 = CVisual::GetProperty((CVisual *)this_00,*(uint *)(this + 0xbc),local_a8);
+      }
+      else if (pcVar2 == CColorBrush::GetProperty) {
+        iVar7 = CColorBrush::GetProperty((CColorBrush *)this_00,*(uint *)(this + 0xbc),local_a8);
       }
       else {
-        lVar14 = (*pcVar5)();
-      }
-      if (-1 < lVar14) {
-        pSVar7 = *(SubchannelMaskInfo **)(this + 200);
-        if (((pSVar7 == (SubchannelMaskInfo *)0x0) || (pSVar7[4] == (SubchannelMaskInfo)0x0)) ||
-           (lVar14 = CExpressionValue::ApplyMaskToValue((CExpressionValue *)&local_178,pSVar7),
-           -1 < lVar14)) {
-          if (local_130 == *(int *)(this + 0xa0)) {
-            if (lVar12 == 1) {
+        iVar7 = (*pcVar2)();
+      }
+      if (-1 < iVar7) {
+        pSVar3 = *(SubchannelMaskInfo **)(this + 200);
+        if (((pSVar3 == (SubchannelMaskInfo *)0x0) || (pSVar3[4] == (SubchannelMaskInfo)0x0)) ||
+           (iVar7 = CExpressionValue::ApplyMaskToValue(local_a8,pSVar3), -1 < iVar7)) {
+          if (local_60 == *(int *)(this + 0xa0)) {
+            if (local_134 == 1) {
               if (~*(uint *)(param_1 + 8) < 5) {
-                lVar14 = -0x7fff0001;
+                iVar7 = -0x7fff0001;
                 MilInstrumentationCheckHR_MaybeFailFast
                           (0x14,(long *)&CExpressionValueStack::MILINSTRUMENTATIONHRESULTLIST,1,
                            -0x7fff0001,0x54,(void *)0x0);
-LAB_5:
+LAB_6:
                 MilInstrumentationCheckHR_MaybeFailFast
                           (0x14,(long *)&CExpressionValueStack::MILINSTRUMENTATIONHRESULTLIST,1,
-                           lVar14,0x16f,(void *)0x0);
-                uVar13 = 0x490;
-                goto LAB_3;
+                           iVar7,0x16f,(void *)0x0);
+                uVar8 = 0x4a3;
+                goto LAB_5;
               }
               if (*(uint *)(param_1 + 0x28) == *(uint *)(param_1 + 8)) {
-                uVar13 = 0;
-                memset((CExpressionValue *)&local_128,0,0x40);
-                local_e8 = (CExpressionValue *)0x0;
-                local_e0 = 0;
-                lVar14 = DynArray<CExpressionValue,1>::AddAndSet
-                                   ((DynArray<CExpressionValue,1> *)(param_1 + 0x10),uVar13,
-                                    (CExpressionValue *)&local_128);
-                if (lVar14 < 0) {
+                uVar8 = 0;
+                memset(local_f8,0,0x40);
+                local_b8 = 0;
+                local_b0 = 0;
+                iVar7 = DynArray<CExpressionValue,1>::AddAndSet
+                                  ((DynArray<CExpressionValue,1> *)(param_1 + 0x10),uVar8,local_f8);
+                if (iVar7 < 0) {
                   MilInstrumentationCheckHR_MaybeFailFast
                             (0x14,(long *)&CExpressionValueStack::MILINSTRUMENTATIONHRESULTLIST,1,
-                             lVar14,0x5d,(void *)0x0);
-                  Microsoft::WRL::ComPtr<CPathData>::InternalRelease((ComPtr<CPathData> *)&local_e8)
+                             iVar7,0x5d,(void *)0x0);
+                  Microsoft::WRL::ComPtr<CPathData>::InternalRelease((ComPtr<CPathData> *)&local_b8)
                   ;
-                  goto LAB_5;
+                  goto LAB_6;
                 }
-                Microsoft::WRL::ComPtr<CPathData>::InternalRelease((ComPtr<CPathData> *)&local_e8);
+                Microsoft::WRL::ComPtr<CPathData>::InternalRelease((ComPtr<CPathData> *)&local_b8);
               }
-              uVar13 = *(uint *)(param_1 + 8);
-              *(uint *)(param_1 + 8) = uVar13 + 1;
-              pCVar25 = (CExpressionValue *)
-                        ((ulonglong)uVar13 * 0x50 + *(longlong *)(param_1 + 0x10));
+              uVar8 = *(uint *)(param_1 + 8);
+              *(uint *)(param_1 + 8) = uVar8 + 1;
+              pCVar16 = (CExpressionValue *)
+                        ((ulonglong)uVar8 * 0x50 + *(longlong *)(param_1 + 0x10));
             }
             else {
-              pCVar25 = CExpressionValueStack::PeekStackValue(param_1,0);
+              pCVar16 = CExpressionValueStack::PeekStackValue(param_1,0);
             }
-            CExpressionValue::CopyFrom(pCVar25,(CExpressionValue *)&local_178);
-            pCVar8 = local_138;
-            if (local_138 != (CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter> *)0x0) {
-              local_138 = (CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter> *)0x0;
-              pcVar5 = *(code **)(*(longlong *)pCVar8 + 0x10);
-              if (pcVar5 == CMILCOMBaseT<ID2D1GeometrySink,ID2D1GeometrySink,CMilObjectDeleter>::
+            CExpressionValue::CopyFrom(pCVar16,local_a8);
+            pCVar4 = local_68;
+            if (local_68 != (CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter> *)0x0) {
+              local_68 = (CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter> *)0x0;
+              pcVar2 = *(code **)(*(longlong *)pCVar4 + 0x10);
+              if (pcVar2 == CMILCOMBaseT<ID2D1GeometrySink,ID2D1GeometrySink,CMilObjectDeleter>::
                             Release) {
-                CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter>::InternalRelease(pCVar8);
+                CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter>::InternalRelease(pCVar4);
               }
               else {
-                (*pcVar5)();
+                (*pcVar2)();
               }
             }
-            goto LAB_6;
-          }
-          lVar14 = -0x7ff8ffa9;
-          uVar13 = 0x48b;
+            goto LAB_4;
+          }
+          iVar7 = -0x7ff8ffa9;
+          uVar8 = 0x49e;
         }
         else {
-          uVar13 = 0x486;
-        }
-        goto LAB_3;
-      }
-      MilInstrumentationCheckHR_MaybeFailFast
-                (0x14,(long *)&DAT_4,2,lVar14,0x480,(void *)0x0);
-      pCVar8 = local_138;
-      if (local_138 != (CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter> *)0x0) {
-        local_138 = (CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter> *)0x0;
-        pcVar5 = *(code **)(*(longlong *)pCVar8 + 0x10);
-        if (pcVar5 == CMILCOMBaseT<ID2D1GeometrySink,ID2D1GeometrySink,CMilObjectDeleter>::Release)
+          uVar8 = 0x499;
+        }
+        goto LAB_5;
+      }
+      MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)&DAT_2,2,iVar7,0x493,(void *)0x0)
+      ;
+      pCVar4 = local_68;
+      if (local_68 != (CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter> *)0x0) {
+        local_68 = (CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter> *)0x0;
+        pcVar2 = *(code **)(*(longlong *)pCVar4 + 0x10);
+        if (pcVar2 == CMILCOMBaseT<ID2D1GeometrySink,ID2D1GeometrySink,CMilObjectDeleter>::Release)
         {
-          CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter>::InternalRelease(pCVar8);
+          CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter>::InternalRelease(pCVar4);
         }
         else {
-          (*pcVar5)();
-        }
-      }
-    }
-    goto LAB_7;
-  }
-  if (*(int *)(param_1 + 8) == 0) {
-    EnsureExpressionIsUnregistered(this);
-    uVar13 = 0x470;
-    lVar14 = -0x7fffbffb;
-    goto LAB_1;
-  }
-  uVar13 = *(int *)(param_1 + 8) - 1;
-  pCVar25 = &CExpressionValueStack::s_emptyValue;
-  if (uVar13 < *(uint *)(param_1 + 0x28)) {
-    pCVar25 = (CExpressionValue *)((ulonglong)uVar13 * 0x50 + *(longlong *)(param_1 + 0x10));
-  }
-  else {
-    memset((CExpressionValue *)&local_128,0,0x40);
-    local_e8 = (CExpressionValue *)0x0;
-    local_e0 = 0;
-    CExpressionValue::operator=(&CExpressionValueStack::s_emptyValue,(CExpressionValue *)&local_128)
-    ;
-    pCVar20 = (ComPtr<CPathData> *)&local_e8;
-    Microsoft::WRL::ComPtr<CPathData>::InternalRelease(pCVar20);
-  }
-  bVar9 = IsExpressionValueValid((CBaseExpression *)pCVar20,pCVar25);
-  if (!bVar9) goto LAB_2;
-LAB_6:
-  this_00 = local_1d8;
-  pCVar25 = &CExpressionValueStack::s_emptyValue;
-  if (*(int *)(param_1 + 8) != local_1d0 + 1) {
-    uVar13 = 0x4a4;
-    lVar14 = -0x7fffbffb;
-    goto LAB_1;
-  }
-  lVar23 = 0;
-  if (local_1d8 != (CExpressionPerformanceCounter *)0x0) {
-    QpcStopwatch::Start((QpcStopwatch *)&local_1e0);
-    lVar23 = local_1e0;
-  }
-  if (*(int *)(param_1 + 8) - 1U < *(uint *)(param_1 + 0x28)) {
-    pCVar25 = (CExpressionValue *)
-              ((ulonglong)(*(int *)(param_1 + 8) - 1U) * 0x50 + *(longlong *)(param_1 + 0x10));
-  }
-  else {
-    memset((CExpressionValue *)&local_128,0,0x40);
-    local_e8 = (CExpressionValue *)0x0;
-    local_e0 = 0;
-    CExpressionValue::operator=(&CExpressionValueStack::s_emptyValue,(CExpressionValue *)&local_128)
-    ;
-    Microsoft::WRL::ComPtr<CPathData>::InternalRelease((ComPtr<CPathData> *)&local_e8);
-  }
-  bVar9 = false;
-  if ((*(uint *)(*(longlong *)(this + 0x138) + 4) & 0x40000000) != 0) {
-    bVar9 = CExpressionValue::operator==((CExpressionValue *)(this + 0x50),pCVar25);
-    bVar9 = !bVar9;
-  }
-  CExpressionValue::CopyFrom((CExpressionValue *)(this + 0x50),pCVar25);
-  if (bVar9) {
-    LogSetOutputValue(this);
-    uVar13 = GetTracingCookie(this);
-    lVar14 = StringCchPrintfW((ushort *)local_d8,0x3c,(ushort *)L"DwmExpression_SetValue_%d",
-                              (ulonglong)uVar13);
-    if (-1 < lVar14) {
-      hEvent = CreateEventW((LPSECURITY_ATTRIBUTES)0x0,1,0,local_d8);
-      SetEvent(hEvent);
-      CloseHandle(hEvent);
-      goto LAB_8;
-    }
-    uVar13 = 0x243;
-    goto LAB_9;
-  }
-LAB_8:
-  if (((byte)this[0xe0] & 3) != 3) goto LAB_10;
-  pCVar16 = ResolveTargetNoRef(this);
-  if (pCVar16 == (CResource *)0x0) {
-    lVar14 = -0x7ff8ff8e;
-    uVar13 = 599;
-    goto LAB_9;
-  }
-  local_138 = (CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter> *)0x0;
-  local_178 = 0;
-  uStack_170 = 0;
-  local_130 = 0;
-  pcVar5 = *(code **)(*(longlong *)pCVar16 + 0x88);
-  local_1e8[0] = *(float *)(this + 0xbc);
-  local_168 = 0;
-  uStack_160 = 0;
-  local_158 = 0;
-  uStack_150 = 0;
-  local_148 = 0;
-  uStack_140 = 0;
-  if (pcVar5 != CVisual::GetProperty) {
-    if (pcVar5 == CComponentTransform3D::GetProperty) {
-      lVar14 = 0;
-      if (local_1e8[0] == 8.40779e-45) {
-        local_130 = 0x12;
-        local_178 = (ulonglong)(uint)(*(float *)(pCVar16 + 0xe8) * 57.295776);
-      }
-      else {
-        gsl::span<AnimationHelper::AnimatedProperty_const*___ptr64_const,-1>::
-        storage_type<gsl::details::extent_type<-1>_>::
-        storage_type<gsl::details::extent_type<_1>_><gsl::details::extent_type<8>_>
-                  (local_1b8,&CComponentTransform3D::k_rgAnimDef);
-        pAVar17 = AnimationHelper::FindAnimatablePropertyInfo
-                            ((span<AnimationHelper::AnimatedProperty_const*___ptr64_const,_1> *)
-                             local_1b8,(uint)local_1e8[0],0);
-        if (pAVar17 == (AnimatedProperty *)0x0) {
-          lVar14 = -0x7ff8ffa9;
-          MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,-0x7ff8ffa9,0x78,(void *)0x0);
-        }
-        else {
-          CResource::GetPropertyImpl(pCVar16,pAVar17,(CExpressionValue *)&local_178);
-          lVar14 = 0;
-        }
-      }
-    }
-    else if (pcVar5 == CPropertySet::GetProperty) {
-      lVar14 = CPropertySet::GetProperty
-                         ((CPropertySet *)pCVar16,(uint)local_1e8[0],(CExpressionValue *)&local_178)
-      ;
-    }
-    else {
-      lVar14 = (*pcVar5)();
-    }
-    goto LAB_11;
-  }
-  lVar14 = 0;
-  if (local_1e8[0] == 5.32493e-44) {
-    local_130 = 0x11;
-    local_178 = (ulonglong)((byte)pCVar16[0x6a] >> 6) & 0xffffffffffffff01;
-    lVar14 = 0;
-    goto LAB_11;
-  }
-  switch(local_1e8[0]) {
-  case 3.64338e-44:
-    fVar26 = CVisual::GetOpacityInternal((CVisual *)pCVar16);
-    local_178 = CONCAT44(local_178._4_4_,fVar26);
-    local_130 = 0x12;
-    break;
-  case 3.78351e-44:
-    local_130 = 0x11;
-    local_178 = (ulonglong)((byte)pCVar16[0x69] >> 6) & 0xffffffffffffff01;
-    break;
-  case 3.92364e-44:
-    local_178 = *(ulonglong *)(pCVar16 + 0x74);
-    uStack_170 = (ulonglong)*(uint *)(pCVar16 + 0x7c);
-    local_130 = 0x34;
-    break;
-  case 4.06377e-44:
-    uVar27 = *(undefined4 *)(pCVar16 + 0x88);
-    uVar28 = *(undefined4 *)(pCVar16 + 0x8c);
-    goto LAB_12;
-  case 4.2039e-44:
-    CVisual::GetRelativeOffsetInternal((CVisual *)pCVar16);
-    uStack_170 = CONCAT44(uStack_170._4_4_,local_180);
-    local_178 = local_188;
-    local_130 = 0x34;
-    break;
-  case 4.34403e-44:
-    CVisual::GetRelativeLayoutSizeInternal((CVisual *)pCVar16);
-    uVar27 = (undefined4)local_1c8;
-    uVar28 = local_1c8._4_4_;
-LAB_12:
-    local_178 = CONCAT44(uVar28,uVar27);
-    local_130 = 0x23;
-    break;
-  default:
-    MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,-0x7ff8ffa9,0x1728,(void *)0x0);
-    lVar14 = -0x7ff8ffa9;
-  }
-LAB_11:
-  if (lVar14 < 0) {
-    uVar13 = 0x275;
-LAB_13:
-    MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar14,uVar13,(void *)0x0);
-  }
-  else {
-    piVar6 = *(int **)(this + 200);
-    if ((piVar6 == (int *)0x0) || ((char)piVar6[1] == '\0')) {
-      bVar9 = CExpressionValue::operator==
-                        ((CExpressionValue *)&local_178,(CExpressionValue *)(this + 0x50));
-      if ((!bVar9) ||
-         ((cVar11 = (**(code **)(*(longlong *)this + 0x108))(this), cVar11 != '\0' ||
-          (cVar11 = (**(code **)(*(longlong *)pCVar16 + 0x80))(pCVar16), cVar11 != '\0')))) {
-        pCVar19 = this + 0x50;
-        pcVar5 = *(code **)(*(longlong *)pCVar16 + 0x60);
-        if (*(int *)(this + 0x98) == 0xb) {
-          pCVar19 = *(CBaseExpression **)(this + 0x90);
-        }
-        DVar4 = *(DCOMPOSITION_EXPRESSION_TYPE *)(this + 0xa0);
-        uVar13 = *(uint *)(this + 0xbc);
-        local_1f0 = CONCAT44(local_1f0._4_4_,DVar4);
-        if (pcVar5 == CComponentTransform3D::SetProperty) {
-          local_1e8[0] = 0.0;
-          if ((uVar13 == 6) && (DVar4 == 0x12)) {
-            pAVar17 = &CComponentTransform3D::sc_RotationAngle;
-            local_1e8[0] = *(float *)pCVar19 * 0.017453292;
-            pCVar19 = (CBaseExpression *)local_1e8;
-LAB_14:
-            lVar14 = CResource::SetPropertyImpl(pCVar16,pAVar17,pCVar19);
-            if (-1 < lVar14) goto LAB_15;
-            uVar13 = 0x50;
-          }
-          else {
-            gsl::span<AnimationHelper::AnimatedProperty_const*___ptr64_const,-1>::
-            storage_type<gsl::details::extent_type<-1>_>::
-            storage_type<gsl::details::extent_type<_1>_><gsl::details::extent_type<8>_>
-                      (local_198,&CComponentTransform3D::k_rgAnimDef,local_1f8);
-            pAVar17 = AnimationHelper::FindAnimatablePropertyInfo
-                                ((span<AnimationHelper::AnimatedProperty_const*___ptr64_const,_1> *)
-                                 local_198,uVar13,(DCOMPOSITION_EXPRESSION_TYPE)local_1f0);
-            if (pAVar17 != (AnimatedProperty *)0x0) goto LAB_14;
-            uVar13 = 0x54;
-            lVar14 = -0x7ff8ffa9;
-          }
-          MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar14,uVar13,(void *)0x0);
-        }
-        else if (pcVar5 == CPropertySet::SetProperty) {
-          lVar14 = CPropertySet::SetProperty((CPropertySet *)pCVar16,uVar13,DVar4,pCVar19);
-        }
-        else {
-          lVar14 = (*pcVar5)();
-        }
-LAB_15:
-        if (lVar14 < 0) {
-          uVar13 = 0x27c;
-          goto LAB_13;
-        }
-      }
-LAB_16:
-      lVar14 = 0;
-    }
-    else {
-      local_128 = 0;
-      uStack_120 = 0;
-      local_e8 = (CExpressionValue *)0x0;
-      local_118 = 0;
-      uStack_110 = 0;
-      local_e0 = 0;
-      local_108 = 0;
-      uStack_100 = 0;
-      local_f8 = 0;
-      uStack_f0 = 0;
-      if (*piVar6 == 1) {
-        if ((0x33 < local_130 - 0x12U) ||
-           ((0x8000400020001U >> ((ulonglong)(local_130 - 0x12U) & 0x3f) & 1) == 0)) {
-          uVar13 = 0x77a;
-LAB_17:
-          lVar12 = -0x7ff8ffa9;
-          lVar14 = -0x7ff8ffa9;
-          goto LAB_18;
-        }
-LAB_19:
-        CExpressionValue::CopyFrom((CExpressionValue *)&local_128,(CExpressionValue *)&local_178);
-        uVar21 = 0;
-        while( true ) {
-          bVar2 = *(byte *)(piVar6 + 1);
-          if ((uint)bVar2 <= (uint)uVar21) break;
-          if (*piVar6 == 1) {
-            uVar24 = (ulonglong)
-                     (*(byte *)(piVar6 + 2) >> ((bVar2 - (char)uVar21) * '\x02' - 2 & 0x1f) & 3);
-          }
-          else if (*piVar6 == 2) {
-            uVar24 = (ulonglong)
-                     ((uint)(*(ulonglong *)(piVar6 + 2) >>
-                            ((bVar2 - (char)uVar21) * '\x04' - 4 & 0x3f)) & 0xf);
-          }
-          else {
-            uVar24 = 0xffffffff;
-          }
-          if (local_130 != 0x2a) {
-            switch(local_130) {
-            case 0x11:
-            case 0x12:
-            case 0x23:
-            case 0x34:
-            case 0x45:
-            case 0x46:
-            case 0x47:
-            case 0x68:
-            case 0x109:
-              goto switchD_1802e2f3a_caseD_11;
-            }
-switchD_1802e2f3a_caseD_b:
-            lVar12 = -0x7fffbffb;
-            lVar14 = -0x7fffbffb;
-            uVar13 = 0x7b4;
-            goto LAB_18;
-          }
-switchD_1802e2f3a_caseD_11:
-          if (((uint)(local_130 >> 4) <= (uint)uVar24) || (0xf < (uint)uVar24))
-          goto switchD_1802e2f3a_caseD_b;
-          lVar1 = uVar21 * 4;
-          uVar21 = (ulonglong)((uint)uVar21 + 1);
-          *(undefined4 *)((CExpressionValue *)&local_128 + uVar24 * 4) =
-               *(undefined4 *)(this + lVar1 + 0x50);
-        }
-        bVar9 = CExpressionValue::operator==
-                          ((CExpressionValue *)&local_128,(CExpressionValue *)&local_178);
-        if ((bVar9) &&
-           (cVar11 = (**(code **)(*(longlong *)pCVar16 + 0x80))(pCVar16), cVar11 == '\0')) {
-LAB_20:
-          pCVar25 = local_e8;
-          if (local_e8 != (CExpressionValue *)0x0) {
-            local_e8 = (CExpressionValue *)0x0;
-            pcVar5 = *(code **)(*(longlong *)pCVar25 + 0x10);
-            if (pcVar5 == CMILCOMBaseT<ID2D1GeometrySink,ID2D1GeometrySink,CMilObjectDeleter>::
-                          Release) {
-              CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter>::InternalRelease
-                        ((CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter> *)pCVar25);
-            }
-            else {
-              (*pcVar5)();
-            }
-          }
-          goto LAB_16;
-        }
-        uVar13 = *(uint *)(this + 0xbc);
-        pcVar5 = *(code **)(*(longlong *)pCVar16 + 0x60);
-        local_1f0 = CONCAT44(local_1f0._4_4_,local_e0);
-        pCVar25 = (CExpressionValue *)&local_128;
-        if (local_e0 == 0xb) {
-          pCVar25 = local_e8;
-        }
-        if (pcVar5 == CComponentTransform2D::SetProperty) {
-          local_1f4 = 0.0;
-          if ((uVar13 == 5) && (local_e0 == 0x12)) {
-            pAVar17 = &CComponentTransform2D::sc_RotationAngle;
-            local_1f4 = *(float *)pCVar25 * 0.017453292;
-            pCVar25 = (CExpressionValue *)&local_1f4;
-          }
-          else {
-            gsl::span<AnimationHelper::AnimatedProperty_const*___ptr64_const,-1>::
-            storage_type<gsl::details::extent_type<-1>_>::
-            storage_type<gsl::details::extent_type<_1>_><gsl::details::extent_type<6>_>
-                      (local_1a8,&CComponentTransform2D::k_rgAnimDef,local_1f8);
-            pAVar17 = AnimationHelper::FindAnimatablePropertyInfo
-                                ((span<AnimationHelper::AnimatedProperty_const*___ptr64_const,_1> *)
-                                 local_1a8,uVar13,(DCOMPOSITION_EXPRESSION_TYPE)local_1f0);
-            if (pAVar17 == (AnimatedProperty *)0x0) {
-              lVar12 = -0x7ff8ffa9;
-              MilInstrumentationCheckHR_MaybeFailFast
-                        (0x14,(long *)0x0,0,-0x7ff8ffa9,0x4a,(void *)0x0);
-              goto LAB_21;
-            }
-          }
-          lVar12 = CResource::SetPropertyImpl(pCVar16,pAVar17,pCVar25);
-          if (lVar12 < 0) {
-            MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar12,0x46,(void *)0x0);
-          }
-        }
-        else if (pcVar5 == CComponentTransform3D::SetProperty) {
-          lVar12 = CComponentTransform3D::SetProperty
-                             ((CComponentTransform3D *)pCVar16,uVar13,local_e0,pCVar25);
-        }
-        else if (pcVar5 == CVisual::SetProperty) {
-          lVar12 = CVisual::SetProperty((CVisual *)pCVar16,uVar13,local_e0,pCVar25);
-        }
-        else {
-          lVar12 = (*pcVar5)();
-        }
-LAB_21:
-        if (-1 < lVar12) goto LAB_20;
-        uVar13 = 0x28b;
-        lVar14 = lVar12;
-      }
-      else {
-        if (*piVar6 == 2) {
-          if ((local_130 != 0x68) && (local_130 != 0x109)) {
-            uVar13 = 0x783;
-            goto LAB_17;
-          }
-          goto LAB_19;
-        }
-        uVar13 = 0x78d;
-        lVar12 = -0x7fffbffb;
-        lVar14 = -0x7fffbffb;
-LAB_18:
-        MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar12,uVar13,(void *)0x0);
-        uVar13 = 0x287;
-      }
-      MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar12,uVar13,(void *)0x0);
-      pCVar25 = local_e8;
-      if (local_e8 != (CExpressionValue *)0x0) {
-        local_e8 = (CExpressionValue *)0x0;
-        pcVar5 = *(code **)(*(longlong *)pCVar25 + 0x10);
-        if (pcVar5 == CMILCOMBaseT<ID2D1GeometrySink,ID2D1GeometrySink,CMilObjectDeleter>::Release)
-        {
-          CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter>::InternalRelease
-                    ((CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter> *)pCVar25);
-        }
-        else {
-          (*pcVar5)();
-        }
-      }
-    }
-  }
-  pCVar8 = local_138;
-  if (local_138 != (CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter> *)0x0) {
-    local_138 = (CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter> *)0x0;
-    pcVar5 = *(code **)(*(longlong *)pCVar8 + 0x10);
-    if (pcVar5 == CMILCOMBaseT<ID2D1GeometrySink,ID2D1GeometrySink,CMilObjectDeleter>::Release) {
-      CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter>::InternalRelease(pCVar8);
-    }
-    else {
-      (*pcVar5)();
-    }
-  }
-  this_00 = local_1d8;
-  if (lVar14 < 0) {
-    uVar13 = 0x25a;
-LAB_9:
-    MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar14,uVar13,(void *)0x0);
-    uVar13 = 0x4b1;
-LAB_1:
-    MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)&DAT_4,2,lVar14,uVar13,(void *)0x0)
-    ;
-LAB_7:
-    uVar13 = *(uint *)(param_1 + 8);
-    if (local_1d0 < uVar13) {
-      uVar21 = (ulonglong)(uVar13 - local_1d0);
-      do {
-        uVar13 = uVar13 - 1;
-        uVar21 = uVar21 - 1;
-      } while (uVar21 != 0);
-      *(uint *)(param_1 + 8) = uVar13;
-    }
-  }
-  else {
-LAB_10:
-    if (lVar23 != 0) {
-      _Var15 = QpcStopwatch::GetElapsed((QpcStopwatch *)&local_1e0);
-      CExpressionPerformanceCounter::AddDurationSample(this_00,5,_Var15);
-    }
-    *(int *)(param_1 + 8) = *(int *)(param_1 + 8) + -1;
-    lVar14 = 0;
+          (*pcVar2)();
+        }
+      }
+    }
+  }
+  uVar8 = *(uint *)(param_1 + 8);
+  if (local_11c < uVar8) {
+    uVar13 = (ulonglong)(uVar8 - local_11c);
+    do {
+      uVar8 = uVar8 - 1;
+      uVar13 = uVar13 - 1;
+    } while (uVar13 != 0);
+    *(uint *)(param_1 + 8) = uVar8;
   }
 LAB_0:
-  if (lVar22 != 0) {
-    _Var15 = QpcStopwatch::GetElapsed((QpcStopwatch *)&local_1c0);
-    CExpressionPerformanceCounter::AddDurationSample(local_1d8,0,_Var15);
-  }
-  return lVar14;
+  if (lVar14 != 0) {
+    _Var9 = QpcStopwatch::GetElapsed((QpcStopwatch *)local_118);
+    CExpressionPerformanceCounter::AddDurationSample(this_01,0,_Var9);
+  }
+  return iVar7;
 }
 

```


## CCursorState::PaddedBitmap::Reset

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,length,address,calling,called|
|ratio|0.28|
|i_ratio|0.19|
|m_ratio|0.93|
|b_ratio|0.63|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|Reset|Reset|
|fullname|CCursorState::PaddedBitmap::Reset|CCursorState::PaddedBitmap::Reset|
|refcount|2|2|
|`length`|217|207|
|`called`|?Free@DefaultHeap@@SAXPEAX@Z<br>HrMalloc<br>memset<br>wil::details::in1diag3::Return_Hr|?Free@DefaultHeap@@SAXPEAX@Z<br>HrAlloc<br>memset<br>wil::details::in1diag3::Return_Hr|
|`calling`|CCursorState::UpdateHardwareCursorOverlay|CCursorState::SetHardwareShapeAndPosition|
|paramcount|3|3|
|`address`|1802b5c0c|1802b6a8c|
|sig|long __thiscall Reset(PaddedBitmap * this, uint param_1, bool param_2)|long __thiscall Reset(PaddedBitmap * this, uint param_1, bool param_2)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### CCursorState::PaddedBitmap::Reset Called Diff


```diff
--- CCursorState::PaddedBitmap::Reset called
+++ CCursorState::PaddedBitmap::Reset called
@@ -2 +2 @@
-HrMalloc
+HrAlloc
```


### CCursorState::PaddedBitmap::Reset Calling Diff


```diff
--- CCursorState::PaddedBitmap::Reset calling
+++ CCursorState::PaddedBitmap::Reset calling
@@ -1 +1 @@
-CCursorState::UpdateHardwareCursorOverlay
+CCursorState::SetHardwareShapeAndPosition
```


### CCursorState::PaddedBitmap::Reset Diff


```diff
--- CCursorState::PaddedBitmap::Reset
+++ CCursorState::PaddedBitmap::Reset
@@ -1,50 +1,47 @@
 
 /* public: long __cdecl CCursorState::PaddedBitmap::Reset(unsigned int,bool) __ptr64 */
 
 long __thiscall CCursorState::PaddedBitmap::Reset(PaddedBitmap *this,uint param_1,bool param_2)
 
 {
-  PaddedBitmap *pPVar1;
-  void *_Dst;
-  long lVar2;
-  uint uVar3;
-  ulonglong uVar4;
+  long lVar1;
+  ulonglong uVar2;
+  undefined4 *puVar3;
   void *unaff_retaddr;
-  void *local_res8;
+  void *local_res20;
   
-  pPVar1 = this + 0xc;
-  if (*(uint *)pPVar1 < param_1) {
-    if (0x400 < param_1) {
-      return -0x7ff8ffa9;
+  if (param_1 < 0x401) {
+    if (*(uint *)(this + 0xc) < param_1) {
+      local_res20 = (void *)0x0;
+      lVar1 = HrAlloc((ulonglong)param_1 * (ulonglong)param_1 * 4,&local_res20);
+      if (lVar1 < 0) {
+        wil::details::in1diag3::Return_Hr
+                  (unaff_retaddr,0x140,
+                   "onecoreuap\\windows\\dwm\\dwmcore\\resources\\..\\cursor\\CursorState.h",lVar1);
+        return lVar1;
+      }
+      _Free_DefaultHeap__SAXPEAX_Z(*(void **)this);
+      *(void **)this = local_res20;
+      *(uint *)(this + 0xc) = param_1;
     }
-    *(uint *)pPVar1 = param_1;
     *(uint *)(this + 8) = param_1 * 4;
-    local_res8 = (void *)0x0;
-    lVar2 = HrMalloc((ulonglong)(param_1 * 4),(ulonglong)param_1,&local_res8);
-    if (lVar2 < 0) {
-      wil::details::in1diag3::Return_Hr
-                (unaff_retaddr,0xb5,"onecoreuap\\windows\\dwm\\dwmcore\\cursor\\CursorState.h",lVar2
-                );
-      return lVar2;
+    if (param_2) {
+      if (param_1 * param_1 != 0) {
+        puVar3 = *(undefined4 **)this;
+        for (uVar2 = (ulonglong)(param_1 * param_1); uVar2 != 0; uVar2 = uVar2 - 1) {
+          *puVar3 = 0xff000000;
+          puVar3 = puVar3 + 1;
+        }
+      }
     }
-    _Free_DefaultHeap__SAXPEAX_Z(*(void **)this);
-    *(void **)this = local_res8;
-  }
-  _Dst = *(void **)this;
-  uVar3 = *(uint *)pPVar1;
-  if (param_2) {
-    uVar4 = 0;
-    if (uVar3 * uVar3 != 0) {
-      do {
-        uVar3 = (int)uVar4 + 1;
-        *(undefined4 *)((longlong)_Dst + uVar4 * 4) = 0xff000000;
-        uVar4 = (ulonglong)uVar3;
-      } while (uVar3 < (uint)(*(int *)(this + 0xc) * *(int *)(this + 0xc)));
+    else {
+      memset(*(void **)this,0,(ulonglong)(param_1 * 4 * param_1));
     }
+    lVar1 = 0;
   }
   else {
-    memset(_Dst,0,(ulonglong)(uVar3 * *(int *)(this + 8)));
+    lVar1 = -0x7ff8ffa9;
   }
-  return 0;
+  return lVar1;
 }
 

```


## CThreadLocalObjectCache<CPolygonBuilder,CPolygonBuilder>::Alloc

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.31|
|i_ratio|0.32|
|m_ratio|0.82|
|b_ratio|0.79|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|Alloc|Alloc|
|fullname|CThreadLocalObjectCache<CPolygonBuilder,CPolygonBuilder>::Alloc|CThreadLocalObjectCache<CPolygonBuilder,CPolygonBuilder>::Alloc|
|refcount|4|4|
|`length`|86|126|
|`called`|API-MS-WIN-CORE-HEAP-L1-1-0.DLL::GetProcessHeap<br>API-MS-WIN-CORE-HEAP-L1-1-0.DLL::HeapAlloc<br>CThreadContext::GetObjectCache|API-MS-WIN-CORE-HEAP-L1-1-0.DLL::GetProcessHeap<br>API-MS-WIN-CORE-HEAP-L1-1-0.DLL::HeapAlloc<br>CThreadContext::GetCurrent<br>ModuleFailFastForHRESULT|
|calling|CCpuClipAntialiasSink::Initialize<br>CDrawListEntryBuilder::AppendHWPrimitive<br>CPolygonShape::GetOutline|CCpuClipAntialiasSink::Initialize<br>CDrawListEntryBuilder::AppendHWPrimitive<br>CPolygonShape::GetOutline|
|paramcount|1|1|
|`address`|180028628|18017fbec|
|sig|void * __cdecl Alloc(__uint64 param_1)|void * __cdecl Alloc(__uint64 param_1)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### CThreadLocalObjectCache<CPolygonBuilder,CPolygonBuilder>::Alloc Called Diff


```diff
--- CThreadLocalObjectCache<CPolygonBuilder,CPolygonBuilder>::Alloc called
+++ CThreadLocalObjectCache<CPolygonBuilder,CPolygonBuilder>::Alloc called
@@ -3 +3,2 @@
-CThreadContext::GetObjectCache
+CThreadContext::GetCurrent
+ModuleFailFastForHRESULT
```


### CThreadLocalObjectCache<CPolygonBuilder,CPolygonBuilder>::Alloc Diff


```diff
--- CThreadLocalObjectCache<CPolygonBuilder,CPolygonBuilder>::Alloc
+++ CThreadLocalObjectCache<CPolygonBuilder,CPolygonBuilder>::Alloc
@@ -1,25 +1,32 @@
 
 /* public: static void * __ptr64 __cdecl CThreadLocalObjectCache<class CPolygonBuilder,class
    CPolygonBuilder>::Alloc(unsigned __int64) */
 
 void * __cdecl CThreadLocalObjectCache<CPolygonBuilder,CPolygonBuilder>::Alloc(__uint64 param_1)
 
 {
-  CObjectCache *pCVar1;
+  long lVar1;
   HANDLE hHeap;
   undefined8 *puVar2;
+  undefined8 unaff_retaddr;
+  CThreadContext *local_res8 [4];
   
-  pCVar1 = CThreadContext::GetObjectCache((CPolygonBuilder *)param_1);
-  puVar2 = (undefined8 *)0x0;
-  if (*(int *)(pCVar1 + 4) != 0) {
-    puVar2 = *(undefined8 **)(pCVar1 + 8);
-    *(undefined8 *)(pCVar1 + 8) = *puVar2;
-    *(int *)(pCVar1 + 4) = *(int *)(pCVar1 + 4) + -1;
+  local_res8[0] = (CThreadContext *)0x0;
+  lVar1 = CThreadContext::GetCurrent(local_res8);
+  if (-1 < lVar1) {
+    puVar2 = (undefined8 *)0x0;
+    if (*(int *)(local_res8[0] + 0x74) != 0) {
+      puVar2 = *(undefined8 **)(local_res8[0] + 0x78);
+      *(undefined8 *)(local_res8[0] + 0x78) = *puVar2;
+      *(int *)(local_res8[0] + 0x74) = *(int *)(local_res8[0] + 0x74) + -1;
+    }
+    if (puVar2 == (undefined8 *)0x0) {
+      hHeap = GetProcessHeap();
+      puVar2 = HeapAlloc(hHeap,0,0x168);
+    }
+    return puVar2;
   }
-  if (puVar2 == (undefined8 *)0x0) {
-    hHeap = GetProcessHeap();
-    puVar2 = HeapAlloc(hHeap,0,0x168);
-  }
-  return puVar2;
+                    /* WARNING: Subroutine does not return */
+  ModuleFailFastForHRESULT(lVar1,unaff_retaddr);
 }
 

```


## CDrawingContext::PushResampleLayer

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,length,sig,address,calling,called|
|ratio|0.84|
|i_ratio|0.38|
|m_ratio|1.0|
|b_ratio|0.59|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|PushResampleLayer|PushResampleLayer|
|fullname|CDrawingContext::PushResampleLayer|CDrawingContext::PushResampleLayer|
|refcount|2|2|
|`length`|228|227|
|`called`|CDrawingContext::PushLayer<br>CResampleLayer::Create<br>CResampleLayer::~CResampleLayer<br>MilInstrumentationCheckHR_MaybeFailFast<br>operator_delete[]|CDrawingContext::PushLayer<br>CResampleLayer::Create<br>CResampleLayer::`vector_deleting_destructor'<br>MilInstrumentationCheckHR_MaybeFailFast|
|`calling`|CDrawingContext::PushEffects|CCompositionMagnifierBrush::GetLayeredBrushParameters|
|paramcount|6|6|
|`address`|18003ea08|180266f3c|
|`sig`|long __thiscall PushResampleLayer(CDrawingContext * this, CVisual * param_1, Enum param_2, D2D_POINTANDSIZE_L * param_3, float param_4, float param_5)|long __thiscall PushResampleLayer(CDrawingContext * this, CVisual * param_1, Enum param_2, D2D_POINTANDSIZE_L * param_3, D2D_SIZE_F * param_4, optional<float> * param_5)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### CDrawingContext::PushResampleLayer Called Diff


```diff
--- CDrawingContext::PushResampleLayer called
+++ CDrawingContext::PushResampleLayer called
@@ -3 +3 @@
-CResampleLayer::~CResampleLayer
+CResampleLayer::`vector_deleting_destructor'
@@ -5 +4,0 @@
-operator_delete[]
```


### CDrawingContext::PushResampleLayer Calling Diff


```diff
--- CDrawingContext::PushResampleLayer calling
+++ CDrawingContext::PushResampleLayer calling
@@ -1 +1 @@
-CDrawingContext::PushEffects
+CCompositionMagnifierBrush::GetLayeredBrushParameters
```


### CDrawingContext::PushResampleLayer Diff


```diff
--- CDrawingContext::PushResampleLayer
+++ CDrawingContext::PushResampleLayer
@@ -1,38 +1,38 @@
 
 /* private: long __cdecl CDrawingContext::PushResampleLayer(class CVisual const * __ptr64,enum
-   CompositionResampleMode::Enum,struct D2D_POINTANDSIZE_L const & __ptr64,float,float) __ptr64 */
+   CompositionResampleMode::Enum,struct D2D_POINTANDSIZE_L const & __ptr64,struct D2D_SIZE_F const &
+   __ptr64,class std::optional<float> const & __ptr64) __ptr64 */
 
 long __thiscall
 CDrawingContext::PushResampleLayer
           (CDrawingContext *this,CVisual *param_1,Enum param_2,D2D_POINTANDSIZE_L *param_3,
-          float param_4,float param_5)
+          D2D_SIZE_F *param_4,optional<float> *param_5)
 
 {
   long lVar1;
   CResampleLayer *this_00;
   CResampleLayer *local_res8;
   
   local_res8 = (CResampleLayer *)0x0;
   lVar1 = CResampleLayer::Create
-                    (*(IDeviceTarget **)(this + 0x20),param_3,param_4,param_5,param_2,&local_res8);
+                    (*(IDeviceTarget **)(this + 0x20),param_2,param_3,param_4,param_5,&local_res8);
   this_00 = local_res8;
   if (lVar1 < 0) {
-    MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar1,0xf8e,(void *)0x0);
+    MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar1,0xfb6,(void *)0x0);
     this_00 = local_res8;
   }
   else {
     lVar1 = PushLayer(this,param_1,(CLayer *)local_res8,true,true);
     if (lVar1 < 0) {
-      MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar1,0xf94,(void *)0x0);
+      MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar1,0xfbc,(void *)0x0);
     }
     else {
       this_00 = (CResampleLayer *)0x0;
     }
   }
   if (this_00 != (CResampleLayer *)0x0) {
-    CResampleLayer::~CResampleLayer(this_00);
-    operator_delete__(this_00,0xa0);
+    CResampleLayer::_vector_deleting_destructor_(this_00,1);
   }
   return lVar1;
 }
 

```


## CScalar::IsOfType

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,length,address|
|ratio|0.55|
|i_ratio|0.17|
|m_ratio|0.67|
|b_ratio|0.17|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|IsOfType|IsOfType|
|fullname|CScalar::IsOfType|CScalar::IsOfType|
|refcount|2|2|
|`length`|12|19|
|called|||
|calling|||
|paramcount|2|2|
|`address`|18027a960|180279010|
|sig|bool __thiscall IsOfType(CScalar * this, MIL_RESOURCE_TYPE param_1)|bool __thiscall IsOfType(CScalar * this, MIL_RESOURCE_TYPE param_1)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### CScalar::IsOfType Diff


```diff
--- CScalar::IsOfType
+++ CScalar::IsOfType
@@ -1,9 +1,12 @@
 
 /* public: virtual bool __cdecl CScalar::IsOfType(enum MIL_RESOURCE_TYPE)const __ptr64 */
 
 bool __thiscall CScalar::IsOfType(CScalar *this,MIL_RESOURCE_TYPE param_1)
 
 {
-  return (param_1 - 10 & 0xffffff7f) == 0;
+  if ((param_1 != 0x8b) && (param_1 != 10)) {
+    return false;
+  }
+  return true;
 }
 

```


## COverlayContext::ApplyConfiguration

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.35|
|i_ratio|0.63|
|m_ratio|0.97|
|b_ratio|0.94|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|ApplyConfiguration|ApplyConfiguration|
|fullname|COverlayContext::ApplyConfiguration|COverlayContext::ApplyConfiguration|
|refcount|3|3|
|`length`|3422|3631|
|`called`|<details><summary>Expand for full list:<br>API-MS-WIN-CORE-HEAP-L1-1-0.DLL::GetProcessHeap<br>API-MS-WIN-CORE-HEAP-L1-1-0.DLL::HeapAlloc<br>CDirectFlipInfo::Activate<br>CDirectFlipInfo::RenderingRealizationChanged<br>CDirectFlipInfo::Reset<br>COverlayContext::EnsureIndependentFlipState<br>McGenEventWrite_EventWriteTransfer<br>McTemplateU0xq_EventWriteTransfer<br>ModuleFailFastForHRESULT<br>__security_check_cookie<br>_guard_dispatch_icall$thunk$10345483385596137414</summary>memmove<br>operator_delete[]<br>std::_Allocate<16,std::_Default_allocate_traits,0><br>std::_Throw_bad_array_new_length<br>std::unique_ptr<CDirectFlipInfo,std::default_delete<CDirectFlipInfo>_>::~unique_ptr<CDirectFlipInfo,std::default_delete<CDirectFlipInfo>_><br>std::vector<Microsoft::BamoImpl::BamoProxyImpl*___ptr64,std::allocator<Microsoft::BamoImpl::BamoProxyImpl*___ptr64>_>::_Change_array<br>std::vector<tagRECT,std::allocator<tagRECT>_>::_Xlength<br>wil::details::FeatureImpl<__WilFeatureTraits_Feature_DWM_MPO_Enhancement>::__private_IsEnabled</details>|<details><summary>Expand for full list:<br>API-MS-WIN-CORE-HEAP-L1-1-0.DLL::GetProcessHeap<br>API-MS-WIN-CORE-HEAP-L1-1-0.DLL::HeapAlloc<br>CDirectFlipInfo::Activate<br>CDirectFlipInfo::RenderingRealizationChanged<br>CDirectFlipInfo::Reset<br>COverlayContext::EnsureIndependentFlipState<br>COverlayContext::ForceSoftwareCursor<br>COverlayContext::IsCursorVisibleInSoftware<br>McGenEventWrite_EventWriteTransfer<br>McTemplateU0xq_EventWriteTransfer<br>ModuleFailFastForHRESULT</summary>__security_check_cookie<br>_guard_dispatch_icall$thunk$10345483385596137414<br>memmove<br>operator_delete[]<br>std::_Allocate<16,std::_Default_allocate_traits,0><br>std::_Throw_bad_array_new_length<br>std::unique_ptr<CDirectFlipInfo,std::default_delete<CDirectFlipInfo>_>::~unique_ptr<CDirectFlipInfo,std::default_delete<CDirectFlipInfo>_><br>std::vector<Microsoft::BamoImpl::BamoProxyImpl*___ptr64,std::allocator<Microsoft::BamoImpl::BamoProxyImpl*___ptr64>_>::_Change_array<br>std::vector<tagRECT,std::allocator<tagRECT>_>::_Xlength<br>wil::details::FeatureImpl<__WilFeatureTraits_Feature_DWM_MPO_Enhancement>::__private_IsEnabled<br>wil::details::FeatureImpl<__WilFeatureTraits_Feature_DesktopDWMCursor>::__private_IsEnabled</details>|
|calling|CDDisplayRenderTarget::RenderAndPresent<br>CLegacyRenderTarget::RenderAndPresent|CDDisplayRenderTarget::RenderAndPresent<br>CLegacyRenderTarget::RenderAndPresent|
|paramcount|3|3|
|`address`|1800eba70|18009bda0|
|sig|void __thiscall ApplyConfiguration(COverlayContext * this, bool param_1, vector<CVisual_const*___ptr64,std::allocator<CVisual_const*___ptr64>_> * param_2)|void __thiscall ApplyConfiguration(COverlayContext * this, bool param_1, vector<CVisual_const*___ptr64,std::allocator<CVisual_const*___ptr64>_> * param_2)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### COverlayContext::ApplyConfiguration Called Diff


```diff
--- COverlayContext::ApplyConfiguration called
+++ COverlayContext::ApplyConfiguration called
@@ -6,0 +7,2 @@
+COverlayContext::ForceSoftwareCursor
+COverlayContext::IsCursorVisibleInSoftware
@@ -19,0 +22 @@
+wil::details::FeatureImpl<__WilFeatureTraits_Feature_DesktopDWMCursor>::__private_IsEnabled
```


### COverlayContext::ApplyConfiguration Diff


```diff
--- COverlayContext::ApplyConfiguration
+++ COverlayContext::ApplyConfiguration
@@ -1,569 +1,608 @@
 
 /* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
    guard_dispatch_icall */
 /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
 /* public: void __cdecl COverlayContext::ApplyConfiguration(bool,class std::vector<class CVisual
    const * __ptr64,class std::allocator<class CVisual const * __ptr64> > * __ptr64) __ptr64 */
 
 void __thiscall
 COverlayContext::ApplyConfiguration
           (COverlayContext *this,bool param_1,
           vector<CVisual_const*___ptr64,std::allocator<CVisual_const*___ptr64>_> *param_2)
 
 {
   undefined8 *_Src;
   BamoProxyImpl *pBVar1;
   longlong *plVar2;
   CDirectFlipInfo *pCVar3;
   bool bVar4;
   bool bVar5;
   char cVar6;
-  int iVar7;
-  long lVar8;
-  BamoProxyImpl **ppBVar9;
+  char cVar7;
+  int iVar8;
+  long lVar9;
+  BamoProxyImpl **ppBVar10;
   HANDLE hHeap;
-  undefined8 *puVar10;
-  ulonglong uVar11;
+  undefined8 *puVar11;
+  ulonglong uVar12;
   BamoProxyImpl **_Dst;
-  longlong *plVar12;
-  ulonglong uVar13;
-  int *piVar14;
-  size_t sVar15;
-  undefined8 uVar16;
-  ulonglong uVar17;
-  longlong lVar18;
-  uint uVar19;
+  longlong *plVar13;
+  ulonglong uVar14;
+  int *piVar15;
+  size_t sVar16;
+  undefined8 uVar17;
+  ulonglong uVar18;
+  longlong lVar19;
+  uint uVar20;
   undefined8 extraout_XMM0_Qa;
   undefined8 extraout_XMM0_Qa_00;
   undefined8 unaff_retaddr;
   undefined1 auStack_128 [32];
   undefined1 *local_108;
   ulonglong local_100;
   char local_e8;
   char local_e7;
   char local_e6;
   int local_e4;
   BamoProxyImpl **local_e0;
   ulonglong local_d8;
   ulonglong local_d0;
   ulonglong local_c8;
   undefined1 local_c0 [24];
   undefined1 local_a8 [24];
   float local_90;
   float local_8c;
   float local_88;
   float local_84;
   undefined1 local_78 [16];
   ulonglong *local_68;
   undefined8 local_60;
   ulonglong *local_58;
   undefined8 local_50;
   ulonglong local_48;
   
   local_48 = __security_cookie ^ (ulonglong)auStack_128;
+  local_e8 = '\0';
   local_e6 = '\0';
   local_e7 = param_1;
   bVar5 = wil::details::FeatureImpl<__WilFeatureTraits_Feature_DWM_MPO_Enhancement>::
           __private_IsEnabled((FeatureImpl<__WilFeatureTraits_Feature_DWM_MPO_Enhancement> *)
                               &`private:_static_class_wil::details::FeatureImpl<__WilFeatureTraits_Feature_DWM_MPO_Enhancement>&___ptr64___cdecl_wil::Feature<__WilFeatureTraits_Feature_DWM_MPO_Enhancement>::GetImpl(void)'
                                ::__l2::impl);
   if (((bVar5) && (this[0x4a90] != (COverlayContext)0x0)) &&
      ((this[0x4b08] == (COverlayContext)0x0 || (this[0x4b09] != this[0x4a91])))) {
     (**(code **)(*(longlong *)(*(longlong *)this + 8) + 0x30))();
-    lVar18 = (**(code **)(**(longlong **)this + 0x100))();
-    if (*(char *)(lVar18 + 0x100) != '\0') {
-      *(undefined1 *)(lVar18 + 0x101) = 1;
-    }
-  }
-  uVar11 = (**(code **)(*(longlong *)(*(longlong *)this + 8) + 0x20))();
-  uVar13 = *(ulonglong *)(this + 0x3188);
+    lVar19 = (**(code **)(**(longlong **)this + 0x100))();
+    if (*(char *)(lVar19 + 0x100) != '\0') {
+      *(undefined1 *)(lVar19 + 0x101) = 1;
+    }
+  }
+  uVar12 = (**(code **)(*(longlong *)(*(longlong *)this + 8) + 0x20))();
+  uVar14 = *(ulonglong *)(this + 0x3188);
   local_d8 = *(ulonglong *)(this + 0x3190);
-  piVar14 = (int *)(uVar13 + 0x100);
+  piVar15 = (int *)(uVar14 + 0x100);
   local_e4 = 1;
-  local_c8 = uVar11;
-  for (; uVar13 != local_d8; uVar13 = uVar13 + 0x188) {
-    if ((piVar14[-3] < piVar14[-1]) && (piVar14[-2] < *piVar14)) {
-      (**(code **)(**(longlong **)(piVar14 + -0x3c) + 0xd8))();
-    }
-    if ((piVar14[5] != 0) &&
-       (iVar7 = (**(code **)(**(longlong **)(piVar14 + -0x3c) + 0x140))(), piVar14[5] != iVar7)) {
-      local_90 = (float)piVar14[1];
-      local_8c = (float)piVar14[2];
-      local_88 = (float)piVar14[3];
-      local_84 = (float)piVar14[4];
+  local_c8 = uVar12;
+  for (; uVar14 != local_d8; uVar14 = uVar14 + 0x188) {
+    if ((piVar15[-3] < piVar15[-1]) && (piVar15[-2] < *piVar15)) {
+      (**(code **)(**(longlong **)(piVar15 + -0x3c) + 0xd8))();
+    }
+    if ((piVar15[5] != 0) &&
+       (iVar8 = (**(code **)(**(longlong **)(piVar15 + -0x3c) + 0x140))(), piVar15[5] != iVar8)) {
+      local_90 = (float)piVar15[1];
+      local_8c = (float)piVar15[2];
+      local_88 = (float)piVar15[3];
+      local_84 = (float)piVar15[4];
       (**(code **)(**(longlong **)this + 0x128))(*(longlong **)this,&local_90);
-      piVar14[5] = iVar7;
-      *(undefined8 *)(piVar14 + 1) = *(undefined8 *)(piVar14 + -3);
-      *(undefined8 *)(piVar14 + 3) = *(undefined8 *)(piVar14 + -1);
-    }
-    local_108 = (undefined1 *)CONCAT44(local_108._4_4_,piVar14[-0x25]);
-    local_100 = uVar11;
-    (**(code **)(**(longlong **)(piVar14 + -0x3c) + 0xe0))();
-    if (((char)piVar14[0x1c] == '\0') &&
-       ((cVar6 = (**(code **)(**(longlong **)(piVar14 + -0x3c) + 0x160))(), cVar6 == '\0' ||
-        (cVar6 = (**(code **)(**(longlong **)(piVar14 + -0x3c) + 0x168))(), cVar6 != '\0')))) {
-      puVar10 = *(undefined8 **)(param_2 + 8);
-      if (puVar10 == *(undefined8 **)(param_2 + 0x10)) {
-        lVar18 = (longlong)puVar10 - *(longlong *)param_2 >> 3;
-        if (lVar18 == 0x1fffffffffffffff) goto LAB_0;
-        local_d0 = lVar18 + 1;
-        uVar11 = (longlong)*(undefined8 **)(param_2 + 0x10) - *(longlong *)param_2 >> 3;
-        if (0x1fffffffffffffff - (uVar11 >> 1) < uVar11) {
-          uVar17 = 0x1fffffffffffffff;
+      piVar15[5] = iVar8;
+      *(undefined8 *)(piVar15 + 1) = *(undefined8 *)(piVar15 + -3);
+      *(undefined8 *)(piVar15 + 3) = *(undefined8 *)(piVar15 + -1);
+    }
+    local_108 = (undefined1 *)CONCAT44(local_108._4_4_,piVar15[-0x25]);
+    local_100 = uVar12;
+    (**(code **)(**(longlong **)(piVar15 + -0x3c) + 0xe0))
+              (*(longlong **)(piVar15 + -0x3c),CONCAT71((uint7)(uint3)((uint)piVar15[-0x25] >> 8),1)
+               ,1);
+    if (((char)piVar15[0x1c] == '\0') &&
+       ((cVar6 = (**(code **)(**(longlong **)(piVar15 + -0x3c) + 0x160))(), cVar6 == '\0' ||
+        (cVar6 = (**(code **)(**(longlong **)(piVar15 + -0x3c) + 0x168))(), cVar6 != '\0')))) {
+      puVar11 = *(undefined8 **)(param_2 + 8);
+      if (puVar11 == *(undefined8 **)(param_2 + 0x10)) {
+        lVar19 = (longlong)puVar11 - *(longlong *)param_2 >> 3;
+        if (lVar19 == 0x1fffffffffffffff) goto LAB_0;
+        local_d0 = lVar19 + 1;
+        uVar12 = (longlong)*(undefined8 **)(param_2 + 0x10) - *(longlong *)param_2 >> 3;
+        if (0x1fffffffffffffff - (uVar12 >> 1) < uVar12) {
+          uVar18 = 0x1fffffffffffffff;
         }
         else {
-          uVar11 = (uVar11 >> 1) + uVar11;
-          uVar17 = local_d0;
-          if (local_d0 <= uVar11) {
-            uVar17 = uVar11;
-          }
-          if (0x1fffffffffffffff < uVar17) goto LAB_1;
-        }
-        ppBVar9 = std::_Allocate<16,std::_Default_allocate_traits,0>(uVar17 * 8);
-        ppBVar9[lVar18] = *(BamoProxyImpl **)(piVar14 + -0x3e);
+          uVar12 = (uVar12 >> 1) + uVar12;
+          uVar18 = local_d0;
+          if (local_d0 <= uVar12) {
+            uVar18 = uVar12;
+          }
+          if (0x1fffffffffffffff < uVar18) goto LAB_1;
+        }
+        ppBVar10 = std::_Allocate<16,std::_Default_allocate_traits,0>(uVar18 * 8);
+        ppBVar10[lVar19] = *(BamoProxyImpl **)(piVar15 + -0x3e);
         _Src = *(undefined8 **)param_2;
-        local_e0 = ppBVar9;
-        if (puVar10 == *(undefined8 **)(param_2 + 8)) {
-          sVar15 = (longlong)*(undefined8 **)(param_2 + 8) - (longlong)_Src;
-          puVar10 = _Src;
+        local_e0 = ppBVar10;
+        if (puVar11 == *(undefined8 **)(param_2 + 8)) {
+          sVar16 = (longlong)*(undefined8 **)(param_2 + 8) - (longlong)_Src;
+          puVar11 = _Src;
         }
         else {
-          memmove(ppBVar9,_Src,(longlong)puVar10 - (longlong)_Src);
-          sVar15 = *(longlong *)(param_2 + 8) - (longlong)puVar10;
-          ppBVar9 = local_e0 + lVar18 + 1;
-        }
-        memmove(ppBVar9,puVar10,sVar15);
+          memmove(ppBVar10,_Src,(longlong)puVar11 - (longlong)_Src);
+          sVar16 = *(longlong *)(param_2 + 8) - (longlong)puVar11;
+          ppBVar10 = local_e0 + lVar19 + 1;
+        }
+        memmove(ppBVar10,puVar11,sVar16);
         std::
         vector<Microsoft::BamoImpl::BamoProxyImpl*___ptr64,std::allocator<Microsoft::BamoImpl::BamoProxyImpl*___ptr64>_>
         ::_Change_array((vector<Microsoft::BamoImpl::BamoProxyImpl*___ptr64,std::allocator<Microsoft::BamoImpl::BamoProxyImpl*___ptr64>_>
-                         *)param_2,local_e0,local_d0,uVar17);
-        uVar11 = local_c8;
+                         *)param_2,local_e0,local_d0,uVar18);
+        uVar12 = local_c8;
       }
       else {
-        *puVar10 = *(undefined8 *)(piVar14 + -0x3e);
+        *puVar11 = *(undefined8 *)(piVar15 + -0x3e);
         *(longlong *)(param_2 + 8) = *(longlong *)(param_2 + 8) + 8;
       }
     }
-    piVar14 = piVar14 + 0x62;
-  }
-  pBVar1 = *(BamoProxyImpl **)(this + 0x4b18);
-  if ((pBVar1 != (BamoProxyImpl *)0x0) && (pBVar1[0x2e9] != (BamoProxyImpl)0x0)) {
-    plVar12 = *(longlong **)(param_2 + 8);
-    if (plVar12 == *(longlong **)(param_2 + 0x10)) {
-      lVar18 = (longlong)plVar12 - *(longlong *)param_2 >> 3;
-      if (lVar18 == 0x1fffffffffffffff) {
+    piVar15 = piVar15 + 0x62;
+  }
+  bVar5 = wil::details::FeatureImpl<__WilFeatureTraits_Feature_DesktopDWMCursor>::
+          __private_IsEnabled((FeatureImpl<__WilFeatureTraits_Feature_DesktopDWMCursor> *)
+                              &`private:_static_class_wil::details::FeatureImpl<__WilFeatureTraits_Feature_DesktopDWMCursor>&___ptr64___cdecl_wil::Feature<__WilFeatureTraits_Feature_DesktopDWMCursor>::GetImpl(void)'
+                               ::__l2::impl);
+  if ((bVar5) && (*(longlong *)(this + 0x4b18) != 0)) {
+    if ((((*(longlong *)(this + 0x3190) - *(longlong *)(this + 0x3188) >> 3) * 0x7d6343eb1a1f58d1 ==
+          0) || (((this[0x4c7e] != (COverlayContext)0x0 ||
+                  (lVar19 = *(longlong *)(*(longlong *)(this + 0x4b18) + 0x2c0), lVar19 == 0)) ||
+                 (*(longlong *)(lVar19 + 0xb0) == 0)))) ||
+       ((*(char *)(lVar19 + 0x51) == '\0' || (*(int *)(*(longlong *)(this + 0x3188) + 0x178) == 0)))
+       ) {
+      bVar5 = IsCursorVisibleInSoftware(this);
+      if ((!bVar5) &&
+         (((*(float *)(this + 0x4b78) < *(float *)(this + 0x4b70) ||
+            *(float *)(this + 0x4b78) == *(float *)(this + 0x4b70) ||
+           (*(float *)(this + 0x4b7c) < *(float *)(this + 0x4b74) ||
+            *(float *)(this + 0x4b7c) == *(float *)(this + 0x4b74))) &&
+          (pBVar1 = *(BamoProxyImpl **)(this + 0x4b18), pBVar1[0x2e9] == (BamoProxyImpl)0x0)))) {
+        plVar13 = *(longlong **)(param_2 + 8);
+        if (plVar13 == *(longlong **)(param_2 + 0x10)) {
+          lVar19 = (longlong)plVar13 - *(longlong *)param_2 >> 3;
+          if (lVar19 == 0x1fffffffffffffff) {
 LAB_0:
                     /* WARNING: Subroutine does not return */
-        std::vector<tagRECT,std::allocator<tagRECT>_>::_Xlength();
-      }
-      local_d8 = lVar18 + 1;
-      uVar13 = (longlong)*(longlong **)(param_2 + 0x10) - *(longlong *)param_2 >> 3;
-      if (0x1fffffffffffffff - (uVar13 >> 1) < uVar13) {
-        uVar11 = 0x1fffffffffffffff;
-      }
-      else {
-        uVar13 = (uVar13 >> 1) + uVar13;
-        uVar11 = local_d8;
-        if (local_d8 <= uVar13) {
-          uVar11 = uVar13;
-        }
-        if (0x1fffffffffffffff < uVar11) {
+            std::vector<tagRECT,std::allocator<tagRECT>_>::_Xlength();
+          }
+          local_d8 = lVar19 + 1;
+          uVar14 = (longlong)*(longlong **)(param_2 + 0x10) - *(longlong *)param_2 >> 3;
+          if (0x1fffffffffffffff - (uVar14 >> 1) < uVar14) {
+            uVar12 = 0x1fffffffffffffff;
+          }
+          else {
+            uVar14 = (uVar14 >> 1) + uVar14;
+            uVar12 = local_d8;
+            if (local_d8 <= uVar14) {
+              uVar12 = uVar14;
+            }
+            if (0x1fffffffffffffff < uVar12) {
 LAB_1:
                     /* WARNING: Subroutine does not return */
-          std::_Throw_bad_array_new_length();
-        }
-      }
-      ppBVar9 = std::_Allocate<16,std::_Default_allocate_traits,0>(uVar11 * 8);
-      ppBVar9[lVar18] = pBVar1;
-      plVar2 = *(longlong **)param_2;
-      if (plVar12 == *(longlong **)(param_2 + 8)) {
-        sVar15 = (longlong)*(longlong **)(param_2 + 8) - (longlong)plVar2;
-        _Dst = ppBVar9;
-        plVar12 = plVar2;
-      }
-      else {
-        memmove(ppBVar9,plVar2,(longlong)plVar12 - (longlong)plVar2);
-        sVar15 = *(longlong *)(param_2 + 8) - (longlong)plVar12;
-        _Dst = ppBVar9 + lVar18 + 1;
-      }
-      memmove(_Dst,plVar12,sVar15);
-      std::
-      vector<Microsoft::BamoImpl::BamoProxyImpl*___ptr64,std::allocator<Microsoft::BamoImpl::BamoProxyImpl*___ptr64>_>
-      ::_Change_array((vector<Microsoft::BamoImpl::BamoProxyImpl*___ptr64,std::allocator<Microsoft::BamoImpl::BamoProxyImpl*___ptr64>_>
-                       *)param_2,ppBVar9,local_d8,uVar11);
+              std::_Throw_bad_array_new_length();
+            }
+          }
+          ppBVar10 = std::_Allocate<16,std::_Default_allocate_traits,0>(uVar12 * 8);
+          ppBVar10[lVar19] = pBVar1;
+          plVar2 = *(longlong **)param_2;
+          if (plVar13 == *(longlong **)(param_2 + 8)) {
+            sVar16 = (longlong)*(longlong **)(param_2 + 8) - (longlong)plVar2;
+            _Dst = ppBVar10;
+            plVar13 = plVar2;
+          }
+          else {
+            memmove(ppBVar10,plVar2,(longlong)plVar13 - (longlong)plVar2);
+            sVar16 = *(longlong *)(param_2 + 8) - (longlong)plVar13;
+            _Dst = ppBVar10 + lVar19 + 1;
+          }
+          memmove(_Dst,plVar13,sVar16);
+          std::
+          vector<Microsoft::BamoImpl::BamoProxyImpl*___ptr64,std::allocator<Microsoft::BamoImpl::BamoProxyImpl*___ptr64>_>
+          ::_Change_array((vector<Microsoft::BamoImpl::BamoProxyImpl*___ptr64,std::allocator<Microsoft::BamoImpl::BamoProxyImpl*___ptr64>_>
+                           *)param_2,ppBVar10,local_d8,uVar12);
+        }
+        else {
+          *plVar13 = (longlong)pBVar1;
+          *(longlong *)(param_2 + 8) = *(longlong *)(param_2 + 8) + 8;
+        }
+      }
     }
     else {
-      *plVar12 = (longlong)pBVar1;
-      *(longlong *)(param_2 + 8) = *(longlong *)(param_2 + 8) + 8;
-    }
-  }
-  uVar13 = 0;
-  if (*(int *)(this + 0x4b70) < 1) {
+      ForceSoftwareCursor(this);
+    }
+  }
+  uVar14 = 0;
+  if (*(int *)(this + 0x4bf8) < 1) {
+    cVar6 = '\0';
+  }
+  else {
+    lVar19 = *(longlong *)(this + 0x4c38);
+    cVar6 = '\x01';
+    bVar5 = true;
+    local_e8 = '\x01';
+    if ((((lVar19 == 0) || (*(longlong *)(lVar19 + 8) != *(longlong *)(this + 0x4bd0))) ||
+        (*(longlong *)(lVar19 + 0x10) != *(longlong *)(this + 0x4bd8))) ||
+       ((*(longlong *)(lVar19 + 0x18) != *(longlong *)(this + 0x4be0) ||
+        ((*(int *)(lVar19 + 0x34) == 1) != (*(int *)(this + 0x4bfc) == 1))))) {
+      cVar7 = (**(code **)(**(longlong **)(this + 0x4bd8) + 0x88))();
+      if (cVar7 == '\0') {
+        bVar5 = false;
+        goto LAB_2;
+      }
+    }
+    else {
+      local_e6 = '\x01';
 LAB_2:
-    cVar6 = '\0';
-  }
-  else {
-    lVar18 = *(longlong *)(this + 0x4bb0);
-    local_e8 = '\x01';
-    if ((((lVar18 == 0) || (*(longlong *)(lVar18 + 8) != *(longlong *)(this + 0x4b48))) ||
-        (*(longlong *)(lVar18 + 0x10) != *(longlong *)(this + 0x4b50))) ||
-       ((*(longlong *)(lVar18 + 0x18) != *(longlong *)(this + 0x4b58) ||
-        ((*(int *)(lVar18 + 0x34) == 1) != (*(int *)(this + 0x4b74) == 1))))) {
-      cVar6 = (**(code **)(**(longlong **)(this + 0x4b50) + 0x88))();
-      if (cVar6 != '\0') goto LAB_2;
-      bVar5 = false;
-    }
-    else {
-      bVar5 = true;
-      local_e6 = '\x01';
-    }
-    if (((*(longlong *)(this + 0x3190) != *(longlong *)(this + 0x3188)) ||
-        (*(int *)(this + 0x4b10) != 0)) ||
-       (cVar6 = (**(code **)(**(longlong **)(this + 0x4b50) + 0xb0))(), cVar6 != '\0'))
-    goto LAB_2;
-    local_e0 = (BamoProxyImpl **)0x0;
-    puVar10 = (undefined8 *)(**(code **)(**(longlong **)(this + 0x4b50) + 0x30))();
-    if (puVar10 != (undefined8 *)0x0) {
-      if (local_e0 != (BamoProxyImpl **)0x0) {
-        (**(code **)(*local_e0 + 0x10))();
-      }
-      (**(code **)*puVar10)(puVar10,&_GUID_302508ed_c63d_40f8_af07_af5881d2df95,&local_e0);
-    }
-    if ((local_e0 == (BamoProxyImpl **)0x0) ||
-       (cVar6 = (**(code **)(*local_e0 + 0x18))(), cVar6 == '\0')) {
-      if (*(int *)(this + 0x4b74) < 3) {
+      if (((*(longlong *)(this + 0x3190) == *(longlong *)(this + 0x3188)) &&
+          (*(int *)(this + 0x4b10) == 0)) &&
+         (cVar7 = (**(code **)(**(longlong **)(this + 0x4bd8) + 0xb0))(), cVar7 == '\0')) {
+        local_e0 = (BamoProxyImpl **)0x0;
+        puVar11 = (undefined8 *)(**(code **)(**(longlong **)(this + 0x4bd8) + 0x30))();
+        if (puVar11 != (undefined8 *)0x0) {
+          if (local_e0 != (BamoProxyImpl **)0x0) {
+            (**(code **)(*local_e0 + 0x10))();
+          }
+          (**(code **)*puVar11)(puVar11,&_GUID_302508ed_c63d_40f8_af07_af5881d2df95,&local_e0);
+        }
+        if ((local_e0 == (BamoProxyImpl **)0x0) ||
+           (cVar7 = (**(code **)(*local_e0 + 0x18))(), cVar7 == '\0')) {
+          if (*(int *)(this + 0x4bfc) < 3) {
 LAB_3:
-        if (!bVar5) goto LAB_4;
-      }
-      else if ((!bVar5) ||
-              (cVar6 = (**(code **)(**(longlong **)(*(longlong *)(this + 0x4bb0) + 0x10) + 0x160))()
-              , cVar6 != '\0')) {
-        if (this[0x4bf7] != (COverlayContext)0x0) {
+            if (!bVar5) goto LAB_4;
+          }
+          else if ((!bVar5) ||
+                  (cVar7 = (**(code **)(**(longlong **)(*(longlong *)(this + 0x4c38) + 0x10) + 0x160
+                                       ))(), cVar7 != '\0')) {
+            if (this[0x4c80] != (COverlayContext)0x0) {
+              cVar6 = '\0';
+              local_e8 = '\0';
+              if ((Microsoft_Windows_Dwm_CoreEnableBits._1_1_ & 2) != 0) {
+                uVar17 = 2;
+                goto LAB_5;
+              }
+              goto LAB_4;
+            }
+            goto LAB_3;
+          }
+          bVar5 = CDirectFlipInfo::RenderingRealizationChanged(*(CDirectFlipInfo **)(this + 0x4c38))
+          ;
+          if (((!bVar5) && (2 < *(int *)(this + 0x4bfc))) && (*(int *)(this + 0x4bfc) != 4)) {
+            cVar6 = '\0';
+            local_e8 = '\0';
+            if ((Microsoft_Windows_Dwm_CoreEnableBits._1_1_ & 2) != 0) {
+              uVar17 = 1;
+              goto LAB_5;
+            }
+          }
+        }
+        else {
+          cVar6 = '\0';
           local_e8 = '\0';
           if ((Microsoft_Windows_Dwm_CoreEnableBits._1_1_ & 2) != 0) {
-            uVar16 = 2;
-            goto LAB_5;
-          }
-          goto LAB_4;
-        }
-        goto LAB_3;
-      }
-      bVar5 = CDirectFlipInfo::RenderingRealizationChanged(*(CDirectFlipInfo **)(this + 0x4bb0));
-      if ((((!bVar5) && (2 < *(int *)(this + 0x4b74))) && (*(int *)(this + 0x4b74) != 4)) &&
-         (local_e8 = '\0', (Microsoft_Windows_Dwm_CoreEnableBits._1_1_ & 2) != 0)) {
-        uVar16 = 1;
-        goto LAB_5;
-      }
-    }
-    else {
-      local_e8 = '\0';
-      if ((Microsoft_Windows_Dwm_CoreEnableBits._1_1_ & 2) != 0) {
-        uVar16 = 0;
+            uVar17 = 0;
 LAB_5:
-        local_e8 = '\0';
-        uVar11 = *(ulonglong *)(*(longlong *)(this + 0x4b50) + 0x28);
-        McTemplateU0xq_EventWriteTransfer
-                  (uVar11,&EVTDESC_ADVANCED_DIRECTFLIP_CANCEL,
-                   (longlong)(int)(uVar11 >> 0x20) << 0x20 | uVar11 & 0xffffffff,uVar16);
-      }
-    }
+            local_e8 = '\0';
+            cVar6 = '\0';
+            uVar12 = *(ulonglong *)(*(longlong *)(this + 0x4bd8) + 0x28);
+            McTemplateU0xq_EventWriteTransfer
+                      (uVar12,&EVTDESC_ADVANCED_DIRECTFLIP_CANCEL,
+                       (longlong)(int)(uVar12 >> 0x20) << 0x20 | uVar12 & 0xffffffff,uVar17);
+          }
+        }
 LAB_4:
-    cVar6 = local_e8;
-    if (local_e0 != (BamoProxyImpl **)0x0) {
-      (**(code **)(*local_e0 + 0x10))();
-      cVar6 = local_e8;
-    }
-  }
-  lVar18 = *(longlong *)(this + 0x4bb0);
-  if ((lVar18 != 0) &&
-     ((*(int *)(lVar18 + 0x30) != 3 ||
+        if (local_e0 != (BamoProxyImpl **)0x0) {
+          (**(code **)(*local_e0 + 0x10))();
+        }
+        goto LAB_6;
+      }
+    }
+    cVar6 = '\0';
+    local_e8 = '\0';
+  }
+LAB_6:
+  cVar7 = local_e7;
+  lVar19 = *(longlong *)(this + 0x4c38);
+  if ((lVar19 != 0) &&
+     ((*(int *)(lVar19 + 0x30) != 3 ||
       ((local_e7 == '\0' && ((cVar6 == '\0' || (local_e6 == '\0')))))))) {
-    if (*(int *)(lVar18 + 0x34) != 1) {
-      (**(code **)(**(longlong **)(lVar18 + 0x10) + 0x1e8))(*(longlong **)(lVar18 + 0x10),1,0);
-    }
-    pCVar3 = *(CDirectFlipInfo **)(this + 0x4bb0);
+    if (*(int *)(lVar19 + 0x34) != 1) {
+      (**(code **)(**(longlong **)(lVar19 + 0x10) + 0x1e8))(*(longlong **)(lVar19 + 0x10),1,0);
+    }
+    pCVar3 = *(CDirectFlipInfo **)(this + 0x4c38);
     if (pCVar3 != (CDirectFlipInfo *)0x0) {
       CDirectFlipInfo::Reset(pCVar3);
-      plVar12 = *(longlong **)(pCVar3 + 0x28);
-      if (plVar12 != (longlong *)0x0) {
+      plVar13 = *(longlong **)(pCVar3 + 0x28);
+      if (plVar13 != (longlong *)0x0) {
         LOCK();
-        plVar2 = plVar12 + 1;
-        lVar18 = *plVar2;
+        plVar2 = plVar13 + 1;
+        lVar19 = *plVar2;
         *(int *)plVar2 = (int)*plVar2 + -1;
         UNLOCK();
-        if ((int)lVar18 == 1) {
-          (**(code **)*plVar12)(plVar12);
+        if ((int)lVar19 == 1) {
+          (**(code **)*plVar13)(plVar13);
           LOCK();
-          piVar14 = (int *)((longlong)plVar12 + 0xc);
-          iVar7 = *piVar14;
-          *piVar14 = *piVar14 + -1;
+          piVar15 = (int *)((longlong)plVar13 + 0xc);
+          iVar8 = *piVar15;
+          *piVar15 = *piVar15 + -1;
           UNLOCK();
-          if (iVar7 == 1) {
-            (**(code **)(*plVar12 + 8))(plVar12);
+          if (iVar8 == 1) {
+            (**(code **)(*plVar13 + 8))(plVar13);
           }
         }
       }
       if (*(longlong **)(pCVar3 + 0x10) != (longlong *)0x0) {
         (**(code **)(**(longlong **)(pCVar3 + 0x10) + 0x10))();
       }
       operator_delete__(pCVar3,0x70);
     }
-    *(undefined8 *)(this + 0x4bb0) = 0;
+    *(undefined8 *)(this + 0x4c38) = 0;
     if ((Microsoft_Windows_Dwm_CoreEnableBits._1_1_ & 2) != 0) {
-      lVar18 = (**(code **)(*(longlong *)(*(longlong *)this + 8) + 0x18))
+      lVar19 = (**(code **)(*(longlong *)(*(longlong *)this + 8) + 0x18))
                          ((longlong *)(*(longlong *)this + 8),local_c0);
       McTemplateU0xq_EventWriteTransfer
                 (extraout_XMM0_Qa,&EVTDESC_ETWGUID_DIRECTFLIP_TRANSITIONEVENT,
-                 *(undefined4 *)(lVar18 + 8),0);
+                 *(undefined4 *)(lVar19 + 8),0);
     }
     (**(code **)(*(longlong *)(*(longlong *)this + 8) + 0x30))();
-  }
-  if ((*(longlong *)(this + 0x4bb0) == 0) && (cVar6 != '\0')) {
+    cVar6 = local_e8;
+  }
+  if ((*(longlong *)(this + 0x4c38) == 0) && (cVar6 != '\0')) {
     hHeap = GetProcessHeap();
-    puVar10 = HeapAlloc(hHeap,0,0x70);
-    if (puVar10 == (undefined8 *)0x0) {
+    puVar11 = HeapAlloc(hHeap,0,0x70);
+    if (puVar11 == (undefined8 *)0x0) {
                     /* WARNING: Subroutine does not return */
       ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
     }
-    *puVar10 = *(undefined8 *)(this + 0x4b40);
-    puVar10[1] = *(undefined8 *)(this + 0x4b48);
-    plVar12 = *(longlong **)(this + 0x4b50);
-    puVar10[2] = plVar12;
-    if (plVar12 != (longlong *)0x0) {
-      (**(code **)(*plVar12 + 8))();
-    }
-    uVar16 = (**(code **)(**(longlong **)(this + 0x4b50) + 0x40))();
-    puVar10[4] = 0;
-    puVar10[5] = 0;
-    puVar10[3] = uVar16;
-    *(undefined4 *)(puVar10 + 6) = 1;
-    *(undefined4 *)((longlong)puVar10 + 0x34) = *(undefined4 *)(this + 0x4b74);
-    puVar10[7] = 0;
-    puVar10[8] = 0;
-    puVar10[9] = 0;
-    puVar10[10] = 0;
-    puVar10[0xb] = 0;
-    puVar10[0xc] = 0;
-    *(undefined4 *)(puVar10 + 0xd) = 0x1000000;
-    *(undefined2 *)((longlong)puVar10 + 0x6c) = 0;
-    plVar12 = (longlong *)puVar10[5];
-    puVar10[4] = 0;
-    puVar10[5] = 0;
-    if (plVar12 != (longlong *)0x0) {
+    *puVar11 = *(undefined8 *)(this + 0x4bc8);
+    puVar11[1] = *(undefined8 *)(this + 0x4bd0);
+    plVar13 = *(longlong **)(this + 0x4bd8);
+    puVar11[2] = plVar13;
+    if (plVar13 != (longlong *)0x0) {
+      (**(code **)(*plVar13 + 8))();
+    }
+    uVar17 = (**(code **)(**(longlong **)(this + 0x4bd8) + 0x40))();
+    puVar11[4] = 0;
+    puVar11[5] = 0;
+    puVar11[3] = uVar17;
+    *(undefined4 *)(puVar11 + 6) = 1;
+    *(undefined4 *)((longlong)puVar11 + 0x34) = *(undefined4 *)(this + 0x4bfc);
+    puVar11[7] = 0;
+    puVar11[8] = 0;
+    puVar11[9] = 0;
+    puVar11[10] = 0;
+    puVar11[0xb] = 0;
+    puVar11[0xc] = 0;
+    *(undefined4 *)(puVar11 + 0xd) = 0x1000000;
+    *(undefined2 *)((longlong)puVar11 + 0x6c) = 0;
+    plVar13 = (longlong *)puVar11[5];
+    puVar11[4] = 0;
+    puVar11[5] = 0;
+    if (plVar13 != (longlong *)0x0) {
       LOCK();
-      plVar2 = plVar12 + 1;
-      lVar18 = *plVar2;
+      plVar2 = plVar13 + 1;
+      lVar19 = *plVar2;
       *(int *)plVar2 = (int)*plVar2 + -1;
       UNLOCK();
-      if ((int)lVar18 == 1) {
-        (**(code **)*plVar12)(plVar12);
+      if ((int)lVar19 == 1) {
+        (**(code **)*plVar13)(plVar13);
         LOCK();
-        piVar14 = (int *)((longlong)plVar12 + 0xc);
-        iVar7 = *piVar14;
-        *piVar14 = *piVar14 + -1;
+        piVar15 = (int *)((longlong)plVar13 + 0xc);
+        iVar8 = *piVar15;
+        *piVar15 = *piVar15 + -1;
         UNLOCK();
-        if (iVar7 == 1) {
-          (**(code **)(*plVar12 + 8))(plVar12);
-        }
-      }
-    }
-    *(undefined4 *)(puVar10 + 6) = 2;
-    *(undefined8 **)(this + 0x4bb0) = puVar10;
+        if (iVar8 == 1) {
+          (**(code **)(*plVar13 + 8))(plVar13);
+        }
+      }
+    }
+    *(undefined4 *)(puVar11 + 6) = 2;
+    *(undefined8 **)(this + 0x4c38) = puVar11;
     local_d8 = 0;
     std::unique_ptr<CDirectFlipInfo,std::default_delete<CDirectFlipInfo>_>::
     ~unique_ptr<CDirectFlipInfo,std::default_delete<CDirectFlipInfo>_>
               ((unique_ptr<CDirectFlipInfo,std::default_delete<CDirectFlipInfo>_> *)&local_d8);
-    if (2 < *(int *)(*(longlong *)(this + 0x4bb0) + 0x34)) {
+    if (2 < *(int *)(*(longlong *)(this + 0x4c38) + 0x34)) {
       (**(code **)(*(longlong *)(*(longlong *)this + 8) + 0x30))();
     }
-    (**(code **)(**(longlong **)(*(longlong *)(this + 0x4bb0) + 0x10) + 0x1e8))
-              (*(longlong **)(*(longlong *)(this + 0x4bb0) + 0x10),1,1);
+    (**(code **)(**(longlong **)(*(longlong *)(this + 0x4c38) + 0x10) + 0x1e8))
+              (*(longlong **)(*(longlong *)(this + 0x4c38) + 0x10),1,1);
     if ((Microsoft_Windows_Dwm_CoreEnableBits._1_1_ & 2) != 0) {
-      lVar18 = (**(code **)(*(longlong *)(*(longlong *)this + 8) + 0x18))
+      lVar19 = (**(code **)(*(longlong *)(*(longlong *)this + 8) + 0x18))
                          ((longlong *)(*(longlong *)this + 8),local_a8);
       local_d0 = CONCAT44(local_d0._4_4_,1);
       local_60 = 8;
       local_50 = 4;
-      local_c8 = (ulonglong)*(uint *)(lVar18 + 8);
+      local_c8 = (ulonglong)*(uint *)(lVar19 + 8);
       local_68 = &local_c8;
       local_58 = &local_d0;
       local_108 = local_78;
       McGenEventWrite_EventWriteTransfer
                 (&Microsoft_Windows_Dwm_Core_Provider_Context,
                  &EVTDESC_ETWGUID_DIRECTFLIP_TRANSITIONEVENT);
     }
   }
-  lVar18 = *(longlong *)(this + 0x4bb0);
-  if (lVar18 != 0) {
-    if (cVar6 != '\0') {
-      iVar7 = *(int *)(this + 0x4b74);
-      *(int *)(lVar18 + 0x34) = iVar7;
-      if (iVar7 < 3) {
-        plVar12 = *(longlong **)(lVar18 + 0x28);
-        *(undefined8 *)(lVar18 + 0x28) = 0;
-        *(undefined8 *)(lVar18 + 0x20) = 0;
+  lVar19 = *(longlong *)(this + 0x4c38);
+  if (lVar19 != 0) {
+    if (local_e8 != '\0') {
+      iVar8 = *(int *)(this + 0x4bfc);
+      *(int *)(lVar19 + 0x34) = iVar8;
+      if (iVar8 < 3) {
+        plVar13 = *(longlong **)(lVar19 + 0x28);
+        *(undefined8 *)(lVar19 + 0x28) = 0;
+        *(undefined8 *)(lVar19 + 0x20) = 0;
       }
       else {
-        if (*(longlong *)(this + 0x4b68) != 0) {
+        if (*(longlong *)(this + 0x4bf0) != 0) {
           LOCK();
-          piVar14 = (int *)(*(longlong *)(this + 0x4b68) + 8);
-          *piVar14 = *piVar14 + 1;
+          piVar15 = (int *)(*(longlong *)(this + 0x4bf0) + 8);
+          *piVar15 = *piVar15 + 1;
           UNLOCK();
         }
-        uVar16 = *(undefined8 *)(this + 0x4b68);
-        plVar12 = *(longlong **)(lVar18 + 0x28);
-        *(undefined8 *)(lVar18 + 0x20) = *(undefined8 *)(this + 0x4b60);
-        *(undefined8 *)(lVar18 + 0x28) = uVar16;
-      }
-      if (plVar12 != (longlong *)0x0) {
+        uVar17 = *(undefined8 *)(this + 0x4bf0);
+        plVar13 = *(longlong **)(lVar19 + 0x28);
+        *(undefined8 *)(lVar19 + 0x20) = *(undefined8 *)(this + 0x4be8);
+        *(undefined8 *)(lVar19 + 0x28) = uVar17;
+      }
+      if (plVar13 != (longlong *)0x0) {
         LOCK();
-        plVar2 = plVar12 + 1;
-        lVar18 = *plVar2;
+        plVar2 = plVar13 + 1;
+        lVar19 = *plVar2;
         *(int *)plVar2 = (int)*plVar2 + -1;
         UNLOCK();
-        if ((int)lVar18 == 1) {
-          (**(code **)*plVar12)(plVar12);
+        if ((int)lVar19 == 1) {
+          (**(code **)*plVar13)(plVar13);
           LOCK();
-          piVar14 = (int *)((longlong)plVar12 + 0xc);
-          iVar7 = *piVar14;
-          *piVar14 = *piVar14 + -1;
+          piVar15 = (int *)((longlong)plVar13 + 0xc);
+          iVar8 = *piVar15;
+          *piVar15 = *piVar15 + -1;
           UNLOCK();
-          if (iVar7 == 1) {
-            (**(code **)(*plVar12 + 8))(plVar12);
-          }
-        }
-      }
-    }
-    if ((2 < *(int *)(*(longlong *)(this + 0x4bb0) + 0x34)) && (local_e7 == '\0')) {
+          if (iVar8 == 1) {
+            (**(code **)(*plVar13 + 8))(plVar13);
+          }
+        }
+      }
+    }
+    if ((2 < *(int *)(*(longlong *)(this + 0x4c38) + 0x34)) && (cVar7 == '\0')) {
       (**(code **)(*(longlong *)(*(longlong *)this + 8) + 0x30))();
     }
-    lVar8 = CDirectFlipInfo::Activate(*(CDirectFlipInfo **)(this + 0x4bb0));
-    pCVar3 = *(CDirectFlipInfo **)(this + 0x4bb0);
-    if (lVar8 < 0) {
-      if (pCVar3 == (CDirectFlipInfo *)0x0) goto LAB_6;
+    lVar9 = CDirectFlipInfo::Activate(*(CDirectFlipInfo **)(this + 0x4c38));
+    pCVar3 = *(CDirectFlipInfo **)(this + 0x4c38);
+    if (lVar9 < 0) {
+      if (pCVar3 == (CDirectFlipInfo *)0x0) goto LAB_7;
       if (*(int *)(pCVar3 + 0x34) != 1) {
         (**(code **)(**(longlong **)(pCVar3 + 0x10) + 0x1e8))(*(longlong **)(pCVar3 + 0x10),1,0);
       }
-      pCVar3 = *(CDirectFlipInfo **)(this + 0x4bb0);
+      pCVar3 = *(CDirectFlipInfo **)(this + 0x4c38);
       if (pCVar3 != (CDirectFlipInfo *)0x0) {
         CDirectFlipInfo::Reset(pCVar3);
-        plVar12 = *(longlong **)(pCVar3 + 0x28);
-        if (plVar12 != (longlong *)0x0) {
+        plVar13 = *(longlong **)(pCVar3 + 0x28);
+        if (plVar13 != (longlong *)0x0) {
           LOCK();
-          plVar2 = plVar12 + 1;
-          lVar18 = *plVar2;
+          plVar2 = plVar13 + 1;
+          lVar19 = *plVar2;
           *(int *)plVar2 = (int)*plVar2 + -1;
           UNLOCK();
-          if ((int)lVar18 == 1) {
-            (**(code **)*plVar12)(plVar12);
+          if ((int)lVar19 == 1) {
+            (**(code **)*plVar13)(plVar13);
             LOCK();
-            piVar14 = (int *)((longlong)plVar12 + 0xc);
-            iVar7 = *piVar14;
-            *piVar14 = *piVar14 + -1;
+            piVar15 = (int *)((longlong)plVar13 + 0xc);
+            iVar8 = *piVar15;
+            *piVar15 = *piVar15 + -1;
             UNLOCK();
-            if (iVar7 == 1) {
-              (**(code **)(*plVar12 + 8))(plVar12);
+            if (iVar8 == 1) {
+              (**(code **)(*plVar13 + 8))(plVar13);
             }
           }
         }
         if (*(longlong **)(pCVar3 + 0x10) != (longlong *)0x0) {
           (**(code **)(**(longlong **)(pCVar3 + 0x10) + 0x10))();
         }
         operator_delete__(pCVar3,0x70);
       }
-      *(undefined8 *)(this + 0x4bb0) = 0;
+      *(undefined8 *)(this + 0x4c38) = 0;
       if ((Microsoft_Windows_Dwm_CoreEnableBits._1_1_ & 2) != 0) {
-        lVar18 = (**(code **)(*(longlong *)(*(longlong *)this + 8) + 0x18))
+        lVar19 = (**(code **)(*(longlong *)(*(longlong *)this + 8) + 0x18))
                            ((longlong *)(*(longlong *)this + 8),&local_90);
         McTemplateU0xq_EventWriteTransfer
                   (extraout_XMM0_Qa_00,&EVTDESC_ETWGUID_DIRECTFLIP_TRANSITIONEVENT,
-                   *(undefined4 *)(lVar18 + 8),0);
+                   *(undefined4 *)(lVar19 + 8),0);
       }
     }
     else {
       bVar5 = CDirectFlipInfo::RenderingRealizationChanged(pCVar3);
       if ((!bVar5) ||
-         (pCVar3 = *(CDirectFlipInfo **)(this + 0x4bb0), pCVar3 == (CDirectFlipInfo *)0x0))
-      goto LAB_6;
+         (pCVar3 = *(CDirectFlipInfo **)(this + 0x4c38), pCVar3 == (CDirectFlipInfo *)0x0))
+      goto LAB_7;
       if (*(int *)(pCVar3 + 0x34) == 4) {
         CDirectFlipInfo::RenderingRealizationChanged(pCVar3);
-        goto LAB_6;
-      }
-      if (*(int *)(pCVar3 + 0x34) != 1) goto LAB_6;
+        goto LAB_7;
+      }
+      if (*(int *)(pCVar3 + 0x34) != 1) goto LAB_7;
     }
     (**(code **)(*(longlong *)(*(longlong *)this + 8) + 0x30))();
-    goto LAB_6;
-  }
-  plVar12 = *(longlong **)(this + 0x3188);
-  local_d8 = (*(longlong *)(this + 0x3190) - (longlong)plVar12 >> 3) * 0x7d6343eb1a1f58d1;
-  iVar7 = (int)local_d8;
-  uVar11 = uVar13;
-  uVar17 = uVar13;
-  if ((this[0x4a90] == (COverlayContext)0x0) && (iVar7 == 1)) {
+    goto LAB_7;
+  }
+  plVar13 = *(longlong **)(this + 0x3188);
+  local_d8 = (*(longlong *)(this + 0x3190) - (longlong)plVar13 >> 3) * 0x7d6343eb1a1f58d1;
+  iVar8 = (int)local_d8;
+  uVar12 = uVar14;
+  uVar18 = uVar14;
+  if ((this[0x4a90] == (COverlayContext)0x0) && (iVar8 == 1)) {
     bVar5 = wil::details::FeatureImpl<__WilFeatureTraits_Feature_DWM_MPO_Enhancement>::
             __private_IsEnabled((FeatureImpl<__WilFeatureTraits_Feature_DWM_MPO_Enhancement> *)
                                 &`private:_static_class_wil::details::FeatureImpl<__WilFeatureTraits_Feature_DWM_MPO_Enhancement>&___ptr64___cdecl_wil::Feature<__WilFeatureTraits_Feature_DWM_MPO_Enhancement>::GetImpl(void)'
                                  ::__l2::impl);
     if (bVar5) {
-      if (((*(char *)((longlong)plVar12 + 0x16c) == '\0') &&
-          (((CCommonRegistryData::m_dwOverlayTestMode == 5 || (*(uint *)(*plVar12 + 0x28) < 2)) &&
-           ((int)plVar12[0x2d] == 2)))) &&
-         ((*(int *)((longlong)plVar12 + 0xec) <= *(int *)((longlong)plVar12 + 0xe4) ||
-          ((int)plVar12[0x1e] <= (int)plVar12[0x1d])))) {
+      if (((*(char *)((longlong)plVar13 + 0x16c) == '\0') &&
+          (((CCommonRegistryData::m_dwOverlayTestMode == 5 || (*(uint *)(*plVar13 + 0x28) < 2)) &&
+           ((int)plVar13[0x2d] == 2)))) &&
+         ((*(int *)((longlong)plVar13 + 0xec) <= *(int *)((longlong)plVar13 + 0xe4) ||
+          ((int)plVar13[0x1e] <= (int)plVar13[0x1d])))) {
         local_e4 = 0;
       }
       else {
         local_e4 = 1;
       }
     }
     else {
-      if (*(char *)((longlong)plVar12 + 0x16c) != '\0') goto LAB_7;
+      if (*(char *)((longlong)plVar13 + 0x16c) != '\0') goto LAB_8;
       if ((CCommonRegistryData::m_dwOverlayTestMode == 5) || (*(uint *)(this + 0x2c) < 2)) {
         local_e4 = 0;
       }
     }
   }
   else {
-LAB_7:
-    if (iVar7 == 0) goto LAB_6;
+LAB_8:
+    if (iVar8 == 0) goto LAB_7;
   }
   do {
-    iVar7 = (**(code **)(**(longlong **)(uVar13 + 0x10 + *(longlong *)(this + 0x3188)) + 0x170))();
+    iVar8 = (**(code **)(**(longlong **)(*(longlong *)(this + 0x3188) + 0x10 + uVar14) + 0x170))();
     bVar4 = false;
-    lVar18 = uVar13 + *(longlong *)(this + 0x3188);
-    bVar5 = *(bool *)(lVar18 + 0x16d);
-    if ((*(int *)(lVar18 + 0x178) != local_e4 + (int)uVar11) ||
-       ((*(char *)(lVar18 + 0x170) != '\0' && ((iVar7 < 3 || (*(char *)(lVar18 + 0x171) == '\0')))))
+    lVar19 = *(longlong *)(this + 0x3188) + uVar14;
+    bVar5 = *(bool *)(lVar19 + 0x16d);
+    if ((*(int *)(lVar19 + 0x178) != local_e4 + (int)uVar12) ||
+       ((*(char *)(lVar19 + 0x170) != '\0' && ((iVar8 < 3 || (*(char *)(lVar19 + 0x171) == '\0')))))
        ) {
       bVar4 = true;
     }
-    if ((((bVar5 == false) || (bVar4)) || (iVar7 == -1)) ||
-       (((this[0x4bfa] == (COverlayContext)0x0 ||
-         (cVar6 = (**(code **)(**(longlong **)(uVar13 + 0x10 + *(longlong *)(this + 0x3188)) + 0x78)
-                  )(), cVar6 == '\0')) || (CCommonRegistryData::m_fDisableIndependentFlip != 0)))) {
+    if (((((bVar5 == false) || (bVar4)) || (iVar8 == -1)) ||
+        ((this[0x4c83] == (COverlayContext)0x0 ||
+         (cVar6 = (**(code **)(**(longlong **)(*(longlong *)(this + 0x3188) + 0x10 + uVar14) + 0x78)
+                  )(), cVar6 == '\0')))) || (CCommonRegistryData::m_fDisableIndependentFlip != 0)) {
       EnsureIndependentFlipState
-                (this,(OverlayPlaneInfo *)(*(longlong *)(this + 0x3188) + uVar17),false);
-      if (!bVar4) goto LAB_8;
-LAB_9:
-      *(undefined1 *)(uVar13 + 0x173 + *(longlong *)(this + 0x3188)) = 1;
+                (this,(OverlayPlaneInfo *)(*(longlong *)(this + 0x3188) + uVar18),false);
+      if (!bVar4) goto LAB_9;
+LAB_10:
+      *(undefined1 *)(*(longlong *)(this + 0x3188) + 0x173 + uVar14) = 1;
     }
     else {
       EnsureIndependentFlipState
-                (this,(OverlayPlaneInfo *)(*(longlong *)(this + 0x3188) + uVar17),bVar5);
-      if (iVar7 < 3) {
-LAB_8:
-        lVar18 = *(longlong *)(this + 0x3188);
-        iVar7 = (**(code **)(**(longlong **)(uVar13 + 0x10 + lVar18) + 0x140))();
-        if (*(int *)(uVar13 + 0x180 + lVar18) != iVar7) goto LAB_9;
-      }
-    }
-    uVar19 = (int)uVar11 + 1;
-    uVar13 = uVar13 + 0x188;
-    uVar11 = (ulonglong)uVar19;
-    uVar17 = uVar17 + 0x188;
-  } while (uVar19 < (uint)local_d8);
-LAB_6:
-  CDirectFlipInfo::Reset((CDirectFlipInfo *)(this + 0x4b40));
+                (this,(OverlayPlaneInfo *)(*(longlong *)(this + 0x3188) + uVar18),bVar5);
+      if (iVar8 < 3) {
+LAB_9:
+        lVar19 = *(longlong *)(this + 0x3188);
+        iVar8 = (**(code **)(**(longlong **)(lVar19 + 0x10 + uVar14) + 0x140))();
+        if (*(int *)(lVar19 + 0x180 + uVar14) != iVar8) goto LAB_10;
+      }
+    }
+    uVar20 = (int)uVar12 + 1;
+    uVar14 = uVar14 + 0x188;
+    uVar12 = (ulonglong)uVar20;
+    uVar18 = uVar18 + 0x188;
+  } while (uVar20 < (uint)local_d8);
+LAB_7:
+  CDirectFlipInfo::Reset((CDirectFlipInfo *)(this + 0x4bc8));
   return;
 }
 

```


## wil::details::FeatureImpl<__WilFeatureTraits_Feature_FixLerpLayerRenderOpacity>::GetCurrentFeatureEnabledState

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.34|
|i_ratio|0.61|
|m_ratio|0.93|
|b_ratio|0.86|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|GetCurrentFeatureEnabledState|GetCurrentFeatureEnabledState|
|fullname|wil::details::FeatureImpl<__WilFeatureTraits_Feature_FixLerpLayerRenderOpacity>::GetCurrentFeatureEnabledState|wil::details::FeatureImpl<__WilFeatureTraits_Feature_FixLerpLayerRenderOpacity>::GetCurrentFeatureEnabledState|
|refcount|2|2|
|`length`|238|208|
|`called`|wil::details::FeatureImpl<__WilFeatureTraits_Feature_GatePerf>::__private_IsEnabled<br>wil::details::WilApi_GetFeatureEnabledState|wil::details::FeatureImpl<__WilFeatureTraits_Feature_GatePerf>::ReportUsage<br>wil::details::WilApi_GetFeatureEnabledState|
|calling|wil::details::FeatureImpl<__WilFeatureTraits_Feature_FixLerpLayerRenderOpacity>::GetCachedFeatureEnabledState|wil::details::FeatureImpl<__WilFeatureTraits_Feature_FixLerpLayerRenderOpacity>::GetCachedFeatureEnabledState|
|paramcount|2|2|
|`address`|18027eb20|18027d2ec|
|sig|wil_details_FeatureStateCache __thiscall GetCurrentFeatureEnabledState(FeatureImpl<__WilFeatureTraits_Feature_FixLerpLayerRenderOpacity> * this, int * param_1)|wil_details_FeatureStateCache __thiscall GetCurrentFeatureEnabledState(FeatureImpl<__WilFeatureTraits_Feature_FixLerpLayerRenderOpacity> * this, int * param_1)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### wil::details::FeatureImpl<__WilFeatureTraits_Feature_FixLerpLayerRenderOpacity>::GetCurrentFeatureEnabledState Called Diff


```diff
--- wil::details::FeatureImpl<__WilFeatureTraits_Feature_FixLerpLayerRenderOpacity>::GetCurrentFeatureEnabledState called
+++ wil::details::FeatureImpl<__WilFeatureTraits_Feature_FixLerpLayerRenderOpacity>::GetCurrentFeatureEnabledState called
@@ -1 +1 @@
-wil::details::FeatureImpl<__WilFeatureTraits_Feature_GatePerf>::__private_IsEnabled
+wil::details::FeatureImpl<__WilFeatureTraits_Feature_GatePerf>::ReportUsage
```


### wil::details::FeatureImpl<__WilFeatureTraits_Feature_FixLerpLayerRenderOpacity>::GetCurrentFeatureEnabledState Diff


```diff
--- wil::details::FeatureImpl<__WilFeatureTraits_Feature_FixLerpLayerRenderOpacity>::GetCurrentFeatureEnabledState
+++ wil::details::FeatureImpl<__WilFeatureTraits_Feature_FixLerpLayerRenderOpacity>::GetCurrentFeatureEnabledState
@@ -1,61 +1,54 @@
 
 /* private: union wil_details_FeatureStateCache __cdecl wil::details::FeatureImpl<struct
    __WilFeatureTraits_Feature_FixLerpLayerRenderOpacity>::GetCurrentFeatureEnabledState(int *
    __ptr64) __ptr64 */
 
 int * __thiscall
 wil::details::FeatureImpl<__WilFeatureTraits_Feature_FixLerpLayerRenderOpacity>::
 GetCurrentFeatureEnabledState
           (FeatureImpl<__WilFeatureTraits_Feature_FixLerpLayerRenderOpacity> *this,int *param_1)
 
 {
   bool bVar1;
-  bool bVar2;
-  FEATURE_ENABLED_STATE FVar3;
-  ReportingKind RVar4;
-  ReportingKind RVar5;
-  ReportingKind RVar6;
-  ReportingKind RVar7;
+  FEATURE_ENABLED_STATE FVar2;
+  uint uVar3;
+  uint uVar4;
+  uint uVar5;
+  uint uVar6;
   int *in_R8;
+  FEATURE_ENABLED_STATE FVar7;
   
-  FVar3 = WilApi_GetFeatureEnabledState(0x36c7320,3,in_R8);
+  FVar2 = WilApi_GetFeatureEnabledState(0x36c7320,3,in_R8);
   param_1[0] = 0;
   param_1[1] = 0;
-  RVar5 = -(uint)((FVar3 & 0x40) != 0) & 0x800 | -(uint)((FVar3 & 0x80) != 0) & 0x400;
-  RVar6 = RVar5 | (FVar3 & 3) << 7;
-  *param_1 = RVar6;
-  if ((FVar3 & 0xffffff3f) == 0) {
-    RVar4 = 0x40;
+  FVar7 = FVar2 & 0xffffff3f;
+  uVar4 = -(uint)((FVar2 & 0x40) != 0) & 0x800 | -(uint)((FVar2 & 0x80) != 0) & 0x400;
+  uVar5 = uVar4 | (FVar2 & 3) << 7;
+  *param_1 = uVar5;
+  if (FVar7 == 0) {
+    uVar3 = 0x40;
   }
   else {
-    RVar4 = 0;
-    if ((FVar3 & 0xffffff3f) == 2) {
-      RVar4 = 0x40;
+    uVar3 = 0;
+    if (FVar7 == 2) {
+      uVar3 = 0x40;
     }
   }
-  RVar6 = RVar6 | RVar4;
-  *param_1 = RVar6;
-  RVar7 = 1;
-  if (RVar5 == 0xc00) {
+  uVar5 = uVar5 | uVar3;
+  *param_1 = uVar5;
+  bVar1 = false;
+  uVar6 = 1;
+  if ((uVar4 == 0xc00) || (uVar3 != 0)) {
+    FeatureImpl<__WilFeatureTraits_Feature_GatePerf>::ReportUsage
+              ((FeatureImpl<__WilFeatureTraits_Feature_GatePerf> *)
+               &`private:_static_class_wil::details::FeatureImpl<__WilFeatureTraits_Feature_GatePerf>&___ptr64___cdecl_wil::Feature<__WilFeatureTraits_Feature_GatePerf>::GetImpl(void)'
+                ::__l2::impl,SUB41(uVar5,0),0xc00,(ulonglong)FVar7);
     bVar1 = true;
-LAB_0:
-    bVar2 = FeatureImpl<__WilFeatureTraits_Feature_GatePerf>::__private_IsEnabled
-                      ((FeatureImpl<__WilFeatureTraits_Feature_GatePerf> *)
-                       &`private:_static_class_wil::details::FeatureImpl<__WilFeatureTraits_Feature_GatePerf>&___ptr64___cdecl_wil::Feature<__WilFeatureTraits_Feature_GatePerf>::GetImpl(void)'
-                        ::__l2::impl,RVar6);
-    RVar6 = *param_1;
-    if ((bVar1) && (!bVar2)) {
-      RVar6 = RVar6 & 0xfffffbff;
-    }
-    if (((RVar6 & 0x40) != 0) && (bVar2)) goto LAB_1;
   }
-  else {
-    bVar1 = false;
-    if (RVar4 != 0) goto LAB_0;
+  if (((*param_1 & 0x40U) == 0) || (!bVar1)) {
+    uVar6 = 0;
   }
-  RVar7 = 0;
-LAB_1:
-  *param_1 = RVar6 & 0xfffffffe | RVar7;
+  *param_1 = *param_1 & 0xfffffffeU | uVar6;
   return param_1;
 }
 

```


## CCursorState::EnsureCompositionResources

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.66|
|i_ratio|0.44|
|m_ratio|0.97|
|b_ratio|0.83|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|EnsureCompositionResources|EnsureCompositionResources|
|fullname|CCursorState::EnsureCompositionResources|CCursorState::EnsureCompositionResources|
|refcount|3|3|
|`length`|345|371|
|`called`|<details><summary>Expand for full list:<br>CCursorState::ColorConvertBitmap<br>CCursorState::EnsureDestRectAndTransform<br>CCursorState::TryGetShape<br>CWICBitmapRealization::Create<br>_guard_dispatch_icall$thunk$10345483385596137414<br>std::_Ref_count_base::_Decref<br>wil::com_ptr_t<IBitmapRealization,wil::err_returncode_policy>::attach<br>wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy><br>wil::com_ptr_t<ILegacyRemotingSwapChain,wil::err_returncode_policy>::reset<br>wil::com_ptr_t<Windows::Devices::Display::Core::IDisplayTarget,wil::err_returncode_policy>::operator=<br>wil::details::in1diag3::_FailFast_Hr</summary></details>|<details><summary>Expand for full list:<br>CCursorState::ColorConvertBitmap<br>CCursorState::EnsureShapeRectAndTransform<br>CCursorState::ShapeData::GetSize<br>CCursorState::TryGetShape<br>CWICBitmapRealization::Create<br>_guard_dispatch_icall$thunk$10345483385596137414<br>std::_Ref_count_base::_Decref<br>wil::com_ptr_t<IBitmapRealization,wil::err_returncode_policy>::attach<br>wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy><br>wil::com_ptr_t<ILegacyRemotingSwapChain,wil::err_returncode_policy>::reset<br>wil::com_ptr_t<Windows::Devices::Display::Core::IDisplayTarget,wil::err_returncode_policy>::operator=</summary>wil::details::in1diag3::_FailFast_Hr</details>|
|calling|CCursorState::ProcessStateChanges<br>CCursorVisual::RenderContent|CCursorState::ProcessStateChanges<br>CCursorVisual::RenderContent|
|paramcount|1|1|
|`address`|1802b5190|1802b5aac|
|sig|void __thiscall EnsureCompositionResources(CCursorState * this)|void __thiscall EnsureCompositionResources(CCursorState * this)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### CCursorState::EnsureCompositionResources Called Diff


```diff
--- CCursorState::EnsureCompositionResources called
+++ CCursorState::EnsureCompositionResources called
@@ -2 +2,2 @@
-CCursorState::EnsureDestRectAndTransform
+CCursorState::EnsureShapeRectAndTransform
+CCursorState::ShapeData::GetSize
```


### CCursorState::EnsureCompositionResources Diff


```diff
--- CCursorState::EnsureCompositionResources
+++ CCursorState::EnsureCompositionResources
@@ -1,98 +1,102 @@
 
 /* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
    guard_dispatch_icall */
 /* public: void __cdecl CCursorState::EnsureCompositionResources(void) __ptr64 */
 
 void __thiscall CCursorState::EnsureCompositionResources(CCursorState *this)
 
 {
   com_ptr_t<ILegacyRemotingSwapChain,wil::err_returncode_policy> *this_00;
-  longlong lVar1;
-  IBitmapRealization *pIVar2;
-  int iVar3;
-  long lVar4;
-  undefined8 *puVar5;
+  ShapeData *this_01;
+  IBitmapRealization *pIVar1;
+  int iVar2;
+  long lVar3;
+  undefined8 *puVar4;
   void *unaff_retaddr;
   undefined8 *local_res8;
-  IWICBitmapSource *local_res10;
-  CSystemMemoryBitmap local_res18 [16];
+  int local_res10;
+  int local_res14;
+  IWICBitmapSource *local_res18 [2];
   longlong local_28;
   _Ref_count_base *local_20;
   
-  lVar1 = *(longlong *)(this + 0xb0);
-  if (lVar1 != 0) {
+  this_01 = *(ShapeData **)(this + 0xb0);
+  if (this_01 != (ShapeData *)0x0) {
     this_00 = (com_ptr_t<ILegacyRemotingSwapChain,wil::err_returncode_policy> *)(this + 0x78);
     if (*(longlong *)this_00 == 0) {
       local_res8 = (undefined8 *)0x0;
       if (this[0x51] == (CCursorState)0x0) {
         if (this[0x72] == (CCursorState)0x0) {
           wil::com_ptr_t<Windows::Devices::Display::Core::IDisplayTarget,wil::err_returncode_policy>
           ::operator=((com_ptr_t<Windows::Devices::Display::Core::IDisplayTarget,wil::err_returncode_policy>
                        *)&local_res8,
                       (com_ptr_t<struct_Windows::Devices::Display::Core::IDisplayTarget,struct_wil::err_returncode_policy>
-                       *)(lVar1 + 0x18));
+                       *)(this_01 + 0x10));
         }
         else {
-          TryGetShape(this,(uint)&local_28,*(DXGI_MODE_ROTATION *)(lVar1 + 0xc),true);
+          ShapeData::GetSize(this_01);
+          local_res10 = local_res10 + 6;
+          local_res14 = local_res14 + 6;
+          TryGetShape(this,(D2D_SIZE_U *)&local_28,(DXGI_MODE_ROTATION)&local_res10,true);
           if (local_28 == 0) {
             this[0x73] = (CCursorState)0x0;
             wil::
             com_ptr_t<Windows::Devices::Display::Core::IDisplayTarget,wil::err_returncode_policy>::
             operator=((com_ptr_t<Windows::Devices::Display::Core::IDisplayTarget,wil::err_returncode_policy>
                        *)&local_res8,
                       (com_ptr_t<struct_Windows::Devices::Display::Core::IDisplayTarget,struct_wil::err_returncode_policy>
-                       *)(*(longlong *)(this + 0xb0) + 0x18));
+                       *)(*(longlong *)(this + 0xb0) + 0x10));
             this[0x72] = (CCursorState)0x0;
           }
           else {
             wil::
             com_ptr_t<Windows::Devices::Display::Core::IDisplayTarget,wil::err_returncode_policy>::
             operator=((com_ptr_t<Windows::Devices::Display::Core::IDisplayTarget,wil::err_returncode_policy>
                        *)&local_res8,
                       (com_ptr_t<struct_Windows::Devices::Display::Core::IDisplayTarget,struct_wil::err_returncode_policy>
-                       *)(local_28 + 0x18));
+                       *)(local_28 + 0x10));
           }
           if (local_20 != (_Ref_count_base *)0x0) {
             std::_Ref_count_base::_Decref(local_20);
           }
         }
       }
       else {
-        puVar5 = (undefined8 *)ColorConvertBitmap(local_res18);
-        pIVar2 = (IBitmapRealization *)*puVar5;
-        *puVar5 = 0;
+        puVar4 = (undefined8 *)ColorConvertBitmap((CSystemMemoryBitmap *)&local_res10);
+        pIVar1 = (IBitmapRealization *)*puVar4;
+        *puVar4 = 0;
         wil::com_ptr_t<IBitmapRealization,wil::err_returncode_policy>::attach
-                  ((com_ptr_t<IBitmapRealization,wil::err_returncode_policy> *)&local_res8,pIVar2);
+                  ((com_ptr_t<IBitmapRealization,wil::err_returncode_policy> *)&local_res8,pIVar1);
         wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::
         ~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>
-                  ((com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy> *)local_res18);
+                  ((com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy> *)&local_res10);
       }
-      local_res10 = (IWICBitmapSource *)0x0;
-      iVar3 = (**(code **)*local_res8)
-                        (local_res8,&_GUID_00000121_a8f2_4877_ba0a_fd2b6645fb94,&local_res10);
-      if (iVar3 < 0) {
+      local_res18[0] = (IWICBitmapSource *)0x0;
+      iVar2 = (**(code **)*local_res8)
+                        (local_res8,&_GUID_00000121_a8f2_4877_ba0a_fd2b6645fb94,local_res18);
+      if (iVar2 < 0) {
                     /* WARNING: Subroutine does not return */
         wil::details::in1diag3::_FailFast_Hr
-                  (unaff_retaddr,0x162,"onecoreuap\\windows\\dwm\\dwmcore\\cursor\\cursorstate.cpp",
-                   iVar3);
+                  (unaff_retaddr,0x13a,"onecoreuap\\windows\\dwm\\dwmcore\\cursor\\cursorstate.cpp",
+                   iVar2);
       }
       wil::com_ptr_t<ILegacyRemotingSwapChain,wil::err_returncode_policy>::reset(this_00);
-      lVar4 = CWICBitmapRealization::Create(local_res10,(IBitmapRealization **)this_00);
-      if (lVar4 < 0) {
+      lVar3 = CWICBitmapRealization::Create(local_res18[0],(IBitmapRealization **)this_00);
+      if (lVar3 < 0) {
                     /* WARNING: Subroutine does not return */
         wil::details::in1diag3::_FailFast_Hr
-                  (unaff_retaddr,0x165,"onecoreuap\\windows\\dwm\\dwmcore\\cursor\\cursorstate.cpp",
-                   lVar4);
+                  (unaff_retaddr,0x13e,"onecoreuap\\windows\\dwm\\dwmcore\\cursor\\cursorstate.cpp",
+                   lVar3);
       }
       wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::
       ~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>
-                ((com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy> *)&local_res10);
+                ((com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy> *)local_res18);
       wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::
       ~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>
                 ((com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy> *)&local_res8);
     }
-    EnsureDestRectAndTransform(this,false);
+    EnsureShapeRectAndTransform(this,false);
   }
   return;
 }
 

```


## std::vector<DWM_PRESENT_MULTIPLANE_OVERLAY,std::allocator<DWM_PRESENT_MULTIPLANE_OVERLAY>_>::_Emplace_reallocate<DWM_PRESENT_MULTIPLANE_OVERLAY_const&___ptr64>

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.64|
|i_ratio|0.4|
|m_ratio|0.98|
|b_ratio|0.94|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|_Emplace_reallocate<DWM_PRESENT_MULTIPLANE_OVERLAY_const&___ptr64>|_Emplace_reallocate<DWM_PRESENT_MULTIPLANE_OVERLAY_const&___ptr64>|
|fullname|std::vector<DWM_PRESENT_MULTIPLANE_OVERLAY,std::allocator<DWM_PRESENT_MULTIPLANE_OVERLAY>_>::_Emplace_reallocate<DWM_PRESENT_MULTIPLANE_OVERLAY_const&___ptr64>|std::vector<DWM_PRESENT_MULTIPLANE_OVERLAY,std::allocator<DWM_PRESENT_MULTIPLANE_OVERLAY>_>::_Emplace_reallocate<DWM_PRESENT_MULTIPLANE_OVERLAY_const&___ptr64>|
|refcount|5|5|
|`length`|430|452|
|`called`|API-MS-WIN-CRT-RUNTIME-L1-1-0.DLL::_invalid_parameter_noinfo_noreturn<br>MSVCP_WIN.DLL::std::_Xlength_error<br>memmove<br>operator_delete[]<br>std::_Allocate<16,std::_Default_allocate_traits,0><br>std::_Get_size_of_n<128>|API-MS-WIN-CRT-RUNTIME-L1-1-0.DLL::_invalid_parameter_noinfo_noreturn<br>MSVCP_WIN.DLL::std::_Xlength_error<br>memmove<br>operator_delete[]<br>std::_Allocate<16,std::_Default_allocate_traits,0><br>std::_Throw_bad_array_new_length|
|calling|COverlayContext::PresentMPO|COverlayContext::PresentMPO|
|paramcount|3|3|
|`address`|1801e545c|1801e4ca0|
|sig|DWM_PRESENT_MULTIPLANE_OVERLAY * __thiscall _Emplace_reallocate<DWM_PRESENT_MULTIPLANE_OVERLAY_const&___ptr64>(vector<DWM_PRESENT_MULTIPLANE_OVERLAY,std::allocator<DWM_PRESENT_MULTIPLANE_OVERLAY>_> * this, DWM_PRESENT_MULTIPLANE_OVERLAY * param_1, DWM_PRESENT_MULTIPLANE_OVERLAY * param_2)|DWM_PRESENT_MULTIPLANE_OVERLAY * __thiscall _Emplace_reallocate<DWM_PRESENT_MULTIPLANE_OVERLAY_const&___ptr64>(vector<DWM_PRESENT_MULTIPLANE_OVERLAY,std::allocator<DWM_PRESENT_MULTIPLANE_OVERLAY>_> * this, DWM_PRESENT_MULTIPLANE_OVERLAY * param_1, DWM_PRESENT_MULTIPLANE_OVERLAY * param_2)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### std::vector<DWM_PRESENT_MULTIPLANE_OVERLAY,std::allocator<DWM_PRESENT_MULTIPLANE_OVERLAY>_>::_Emplace_reallocate<DWM_PRESENT_MULTIPLANE_OVERLAY_const&___ptr64> Called Diff


```diff
--- std::vector<DWM_PRESENT_MULTIPLANE_OVERLAY,std::allocator<DWM_PRESENT_MULTIPLANE_OVERLAY>_>::_Emplace_reallocate<DWM_PRESENT_MULTIPLANE_OVERLAY_const&___ptr64> called
+++ std::vector<DWM_PRESENT_MULTIPLANE_OVERLAY,std::allocator<DWM_PRESENT_MULTIPLANE_OVERLAY>_>::_Emplace_reallocate<DWM_PRESENT_MULTIPLANE_OVERLAY_const&___ptr64> called
@@ -6 +6 @@
-std::_Get_size_of_n<128>
+std::_Throw_bad_array_new_length
```


### std::vector<DWM_PRESENT_MULTIPLANE_OVERLAY,std::allocator<DWM_PRESENT_MULTIPLANE_OVERLAY>_>::_Emplace_reallocate<DWM_PRESENT_MULTIPLANE_OVERLAY_const&___ptr64> Diff


```diff
--- std::vector<DWM_PRESENT_MULTIPLANE_OVERLAY,std::allocator<DWM_PRESENT_MULTIPLANE_OVERLAY>_>::_Emplace_reallocate<DWM_PRESENT_MULTIPLANE_OVERLAY_const&___ptr64>
+++ std::vector<DWM_PRESENT_MULTIPLANE_OVERLAY,std::allocator<DWM_PRESENT_MULTIPLANE_OVERLAY>_>::_Emplace_reallocate<DWM_PRESENT_MULTIPLANE_OVERLAY_const&___ptr64>
@@ -1,104 +1,110 @@
 
 /* private: struct DWM_PRESENT_MULTIPLANE_OVERLAY * __ptr64 __cdecl std::vector<struct
    DWM_PRESENT_MULTIPLANE_OVERLAY,class std::allocator<struct DWM_PRESENT_MULTIPLANE_OVERLAY>
    >::_Emplace_reallocate<struct DWM_PRESENT_MULTIPLANE_OVERLAY const & __ptr64>(struct
    DWM_PRESENT_MULTIPLANE_OVERLAY * __ptr64 const,struct DWM_PRESENT_MULTIPLANE_OVERLAY const &
    __ptr64) __ptr64 */
 
 DWM_PRESENT_MULTIPLANE_OVERLAY * __thiscall
 std::vector<DWM_PRESENT_MULTIPLANE_OVERLAY,std::allocator<DWM_PRESENT_MULTIPLANE_OVERLAY>_>::
 _Emplace_reallocate<DWM_PRESENT_MULTIPLANE_OVERLAY_const&___ptr64>
           (vector<DWM_PRESENT_MULTIPLANE_OVERLAY,std::allocator<DWM_PRESENT_MULTIPLANE_OVERLAY>_>
            *this,DWM_PRESENT_MULTIPLANE_OVERLAY *param_1,DWM_PRESENT_MULTIPLANE_OVERLAY *param_2)
 
 {
   longlong lVar1;
   void *pvVar2;
   code *pcVar3;
   undefined8 uVar4;
-  __uint64 _Var5;
   DWM_PRESENT_MULTIPLANE_OVERLAY *_Dst;
-  DWM_PRESENT_MULTIPLANE_OVERLAY *pDVar6;
-  ulonglong uVar7;
+  DWM_PRESENT_MULTIPLANE_OVERLAY *pDVar5;
+  ulonglong uVar6;
   DWM_PRESENT_MULTIPLANE_OVERLAY *_Dst_00;
-  void *pvVar8;
-  ulonglong uVar9;
-  longlong lVar10;
+  void *pvVar7;
+  __uint64 _Var8;
+  longlong lVar9;
+  ulonglong uVar10;
   ulonglong uVar11;
   size_t _Size;
   DWM_PRESENT_MULTIPLANE_OVERLAY *pDVar12;
   
   lVar1 = *(longlong *)this;
-  lVar10 = *(longlong *)(this + 8) - *(longlong *)this >> 7;
-  if (lVar10 == 0x1ffffffffffffff) {
+  uVar11 = 0x1ffffffffffffff;
+  lVar9 = *(longlong *)(this + 8) - *(longlong *)this >> 7;
+  if (lVar9 == 0x1ffffffffffffff) {
     std::_Xlength_error("vector too long");
     pcVar3 = (code *)swi(3);
-    pDVar6 = (DWM_PRESENT_MULTIPLANE_OVERLAY *)(*pcVar3)();
-    return pDVar6;
+    pDVar5 = (DWM_PRESENT_MULTIPLANE_OVERLAY *)(*pcVar3)();
+    return pDVar5;
   }
-  uVar11 = lVar10 + 1;
-  uVar7 = *(longlong *)(this + 0x10) - *(longlong *)this >> 7;
-  uVar9 = 0x1ffffffffffffff;
-  if ((uVar7 <= 0x1ffffffffffffff - (uVar7 >> 1)) && (uVar9 = (uVar7 >> 1) + uVar7, uVar9 < uVar11))
-  {
-    uVar9 = uVar11;
+  uVar10 = lVar9 + 1;
+  uVar6 = *(longlong *)(this + 0x10) - *(longlong *)this >> 7;
+  if (uVar6 <= 0x1ffffffffffffff - (uVar6 >> 1)) {
+    uVar6 = (uVar6 >> 1) + uVar6;
+    uVar11 = uVar10;
+    if (uVar10 <= uVar6) {
+      uVar11 = uVar6;
+    }
+    if (0x1ffffffffffffff < uVar11) {
+                    /* WARNING: Subroutine does not return */
+      _Throw_bad_array_new_length();
+    }
   }
-  _Var5 = _Get_size_of_n<128>(uVar9);
-  _Dst = _Allocate<16,std::_Default_allocate_traits,0>(_Var5);
+  _Dst = _Allocate<16,std::_Default_allocate_traits,0>(uVar11 * 0x80);
   uVar4 = *(undefined8 *)(param_2 + 8);
   pDVar12 = _Dst + ((longlong)param_1 - lVar1 & 0xffffffffffffff80);
   *(undefined8 *)pDVar12 = *(undefined8 *)param_2;
   *(undefined8 *)(pDVar12 + 8) = uVar4;
   uVar4 = *(undefined8 *)(param_2 + 0x18);
   *(undefined8 *)(pDVar12 + 0x10) = *(undefined8 *)(param_2 + 0x10);
   *(undefined8 *)(pDVar12 + 0x18) = uVar4;
   uVar4 = *(undefined8 *)(param_2 + 0x28);
   *(undefined8 *)(pDVar12 + 0x20) = *(undefined8 *)(param_2 + 0x20);
   *(undefined8 *)(pDVar12 + 0x28) = uVar4;
   uVar4 = *(undefined8 *)(param_2 + 0x38);
   *(undefined8 *)(pDVar12 + 0x30) = *(undefined8 *)(param_2 + 0x30);
   *(undefined8 *)(pDVar12 + 0x38) = uVar4;
   uVar4 = *(undefined8 *)(param_2 + 0x48);
   *(undefined8 *)(pDVar12 + 0x40) = *(undefined8 *)(param_2 + 0x40);
   *(undefined8 *)(pDVar12 + 0x48) = uVar4;
   uVar4 = *(undefined8 *)(param_2 + 0x58);
   *(undefined8 *)(pDVar12 + 0x50) = *(undefined8 *)(param_2 + 0x50);
   *(undefined8 *)(pDVar12 + 0x58) = uVar4;
   uVar4 = *(undefined8 *)(param_2 + 0x68);
   *(undefined8 *)(pDVar12 + 0x60) = *(undefined8 *)(param_2 + 0x60);
   *(undefined8 *)(pDVar12 + 0x68) = uVar4;
   uVar4 = *(undefined8 *)(param_2 + 0x78);
   *(undefined8 *)(pDVar12 + 0x70) = *(undefined8 *)(param_2 + 0x70);
   *(undefined8 *)(pDVar12 + 0x78) = uVar4;
-  pDVar6 = *(DWM_PRESENT_MULTIPLANE_OVERLAY **)this;
+  pDVar5 = *(DWM_PRESENT_MULTIPLANE_OVERLAY **)this;
   if (param_1 == *(DWM_PRESENT_MULTIPLANE_OVERLAY **)(this + 8)) {
-    _Size = (longlong)*(DWM_PRESENT_MULTIPLANE_OVERLAY **)(this + 8) - (longlong)pDVar6;
+    _Size = (longlong)*(DWM_PRESENT_MULTIPLANE_OVERLAY **)(this + 8) - (longlong)pDVar5;
     _Dst_00 = _Dst;
-    param_1 = pDVar6;
+    param_1 = pDVar5;
   }
   else {
-    memmove(_Dst,pDVar6,(longlong)param_1 - *(longlong *)this);
+    memmove(_Dst,pDVar5,(longlong)param_1 - *(longlong *)this);
     _Dst_00 = pDVar12 + 0x80;
     _Size = *(longlong *)(this + 8) - (longlong)param_1;
   }
   memmove(_Dst_00,param_1,_Size);
   pvVar2 = *(void **)this;
   if (pvVar2 != (void *)0x0) {
-    _Var5 = *(longlong *)(this + 0x10) - (longlong)pvVar2 & 0xffffffffffffff80;
-    pvVar8 = pvVar2;
-    if (0xfff < _Var5) {
-      pvVar8 = *(void **)((longlong)pvVar2 + -8);
-      _Var5 = _Var5 + 0x27;
-      if (0x1f < (ulonglong)((longlong)pvVar2 + (-8 - (longlong)pvVar8))) {
+    _Var8 = *(longlong *)(this + 0x10) - (longlong)pvVar2 & 0xffffffffffffff80;
+    pvVar7 = pvVar2;
+    if (0xfff < _Var8) {
+      pvVar7 = *(void **)((longlong)pvVar2 + -8);
+      _Var8 = _Var8 + 0x27;
+      if (0x1f < (ulonglong)((longlong)pvVar2 + (-8 - (longlong)pvVar7))) {
                     /* WARNING: Subroutine does not return */
         _invalid_parameter_noinfo_noreturn();
       }
     }
-    operator_delete__(pvVar8,_Var5);
+    operator_delete__(pvVar7,_Var8);
   }
   *(DWM_PRESENT_MULTIPLANE_OVERLAY **)this = _Dst;
-  *(DWM_PRESENT_MULTIPLANE_OVERLAY **)(this + 8) = _Dst + uVar11 * 0x80;
-  *(DWM_PRESENT_MULTIPLANE_OVERLAY **)(this + 0x10) = _Dst + uVar9 * 0x80;
+  *(DWM_PRESENT_MULTIPLANE_OVERLAY **)(this + 8) = _Dst + uVar10 * 0x80;
+  *(DWM_PRESENT_MULTIPLANE_OVERLAY **)(this + 0x10) = _Dst + uVar11 * 0x80;
   return pDVar12;
 }
 

```


## CResampleLayer::RenderXBR

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,refcount,length,address,called|
|ratio|0.16|
|i_ratio|0.33|
|m_ratio|0.88|
|b_ratio|0.3|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|RenderXBR|RenderXBR|
|fullname|CResampleLayer::RenderXBR|CResampleLayer::RenderXBR|
|`refcount`|3|2|
|`length`|1084|862|
|`called`|CSurfaceShaderComposer::GetSurfacePixelShaderNoRef<br>CSurfaceShaderComposer::RunShader<br>FUN_1802e4e42<br>FillXBRPass1Buffer<br>FillXBRPass2Buffer<br>__security_check_cookie<br>_guard_dispatch_icall$thunk$10345483385596137414<br>floorf<br>wil::details::in1diag3::Return_Hr|CSurfaceShaderComposer::GetSurfacePixelShaderNoRef<br>CSurfaceShaderComposer::RunShader<br>FillXBRPass1Buffer<br>FillXBRPass2Buffer<br>__security_check_cookie<br>_guard_dispatch_icall$thunk$10345483385596137414<br>floorf<br>wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy><br>wil::details::in1diag3::Return_Hr|
|calling|CResampleLayer::RenderLayer|CResampleLayer::RenderLayer|
|paramcount|5|5|
|`address`|180045908|1801fd444|
|sig|long __thiscall RenderXBR(CResampleLayer * this, CSurfaceShaderComposer * param_1, ID3D11RenderTargetView * param_2, bool param_3, D3D11_VIEWPORT * param_4)|long __thiscall RenderXBR(CResampleLayer * this, CSurfaceShaderComposer * param_1, ID3D11RenderTargetView * param_2, bool param_3, D3D11_VIEWPORT * param_4)|
|sym_type|Function|Function|
|sym_source|IMPORTED|ANALYSIS|
|external|False|False|

### CResampleLayer::RenderXBR Called Diff


```diff
--- CResampleLayer::RenderXBR called
+++ CResampleLayer::RenderXBR called
@@ -3 +2,0 @@
-FUN_1802e4e42
@@ -8,0 +8 @@
+wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>
```


### CResampleLayer::RenderXBR Diff


```diff
--- CResampleLayer::RenderXBR
+++ CResampleLayer::RenderXBR
@@ -1,175 +1,156 @@
 
 /* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
    guard_dispatch_icall */
 /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
 /* private: long __cdecl CResampleLayer::RenderXBR(class CSurfaceShaderComposer * __ptr64,struct
    ID3D11RenderTargetView * __ptr64,bool,struct D3D11_VIEWPORT const & __ptr64) __ptr64 */
 
 long __thiscall
 CResampleLayer::RenderXBR
           (CResampleLayer *this,CSurfaceShaderComposer *param_1,ID3D11RenderTargetView *param_2,
           bool param_3,D3D11_VIEWPORT *param_4)
 
 {
-  int iVar1;
-  longlong *plVar2;
-  long lVar3;
+  longlong *plVar1;
+  code *pcVar2;
+  int iVar3;
   undefined8 uVar4;
   longlong lVar5;
   ID3D11RenderTargetView *pIVar6;
-  code *pcVar7;
-  uint uVar8;
-  ID3D11PixelShader **ppIVar9;
-  float fVar10;
-  float fVar11;
+  uint uVar7;
+  float fVar8;
+  float fVar9;
   void *unaff_retaddr;
-  undefined1 auStackY_138 [32];
-  undefined2 local_c8;
-  undefined1 local_c6;
-  longlong *local_c0;
-  longlong *local_b8;
-  undefined2 local_b0;
-  undefined1 local_ae;
-  undefined2 local_ad;
-  undefined1 local_ab;
-  ID3D11PixelShader *local_a8;
-  ID3D11ShaderResourceView *local_a0;
-  undefined8 local_98;
-  undefined2 *local_90;
-  ID3D11ShaderResourceView *local_80;
-  ID3D11ShaderResourceView *local_78;
-  undefined4 local_70;
-  undefined4 local_6c;
-  float local_68;
-  float local_64;
+  undefined1 auStackY_118 [32];
+  tagRECT *in_stack_ffffffffffffff30;
+  undefined1 in_stack_ffffffffffffff38;
+  undefined2 local_b8;
+  undefined1 local_b6;
+  longlong *local_b0;
+  undefined2 local_a8;
+  undefined1 local_a6;
+  undefined2 local_a5;
+  undefined1 local_a3;
+  ID3D11PixelShader *local_a0;
+  longlong *local_98;
+  ID3D11ShaderResourceView *local_90;
+  undefined8 local_88;
+  undefined2 *local_80;
+  ID3D11ShaderResourceView *local_70;
+  ID3D11ShaderResourceView *local_68;
   undefined4 local_60;
   undefined4 local_5c;
-  ulonglong local_58;
+  float local_58;
+  float local_54;
+  undefined4 local_50;
+  undefined4 local_4c;
+  ulonglong local_48;
   
-  local_58 = __security_cookie ^ (ulonglong)auStackY_138;
-  plVar2 = *(longlong **)(this + 8);
-  local_c8 = 0x100;
-  local_c6 = 1;
-  local_c0 = (longlong *)0x0;
-  pcVar7 = *(code **)(plVar2[1] + 0x60);
-  uVar4 = (**(code **)(*plVar2 + 0x58))(plVar2,&local_98);
-  lVar3 = (*pcVar7)(plVar2 + 1,uVar4,&local_c0);
-  if (lVar3 < 0) {
-    uVar8 = 0x17f;
+  local_48 = __security_cookie ^ (ulonglong)auStackY_118;
+  plVar1 = *(longlong **)(this + 8);
+  local_b8 = 0x100;
+  local_b6 = 1;
+  local_98 = (longlong *)0x0;
+  pcVar2 = *(code **)(plVar1[1] + 0x60);
+  uVar4 = (**(code **)(*plVar1 + 0x58))(plVar1,&local_88);
+  iVar3 = (*pcVar2)(plVar1 + 1,uVar4,&local_98);
+  if (iVar3 < 0) {
+    uVar7 = 0x181;
   }
   else {
-    local_a0 = (ID3D11ShaderResourceView *)(**(code **)(*local_c0 + 0x80))();
+    local_90 = (ID3D11ShaderResourceView *)(**(code **)(*local_98 + 0x80))();
     lVar5 = (**(code **)(**(longlong **)(this + 0x80) + 0x90))();
     pIVar6 = (ID3D11RenderTargetView *)(**(code **)(*(longlong *)(lVar5 + 0x10) + 0xb0))();
-    lVar3 = FillXBRPass1Buffer(param_1,*(uint *)(this + 0x18),*(uint *)(this + 0x1c));
-    if (lVar3 < 0) {
-      uVar8 = 0x188;
+    iVar3 = FillXBRPass1Buffer(param_1,*(uint *)(this + 0x18),*(uint *)(this + 0x1c));
+    if (iVar3 < 0) {
+      uVar7 = 0x18a;
     }
     else {
-      local_a8 = (ID3D11PixelShader *)0x0;
-      ppIVar9 = &local_a8;
-      lVar3 = CSurfaceShaderComposer::GetSurfacePixelShaderNoRef(param_1,4,ppIVar9);
-      if (-1 < lVar3) {
-        local_90 = &local_c8;
-        local_70 = 0;
-        local_6c = 0;
-        local_68 = (float)*(int *)(this + 0x18);
+      local_a0 = (ID3D11PixelShader *)0x0;
+      iVar3 = CSurfaceShaderComposer::GetSurfacePixelShaderNoRef(param_1,4,&local_a0);
+      if (iVar3 < 0) {
+        uVar7 = 0x18e;
+      }
+      else {
+        local_80 = &local_b8;
+        local_50 = 0;
         local_60 = 0;
-        local_64 = (float)*(int *)(this + 0x1c);
-        local_98 = 1;
-        local_5c = 0x3f800000;
-        lVar3 = CSurfaceShaderComposer::RunShader
-                          (param_1,&DAT_0,(uint)ppIVar9,&local_a0,1,
-                           (D3D11_VIEWPORT *)&local_70,5,(span<SamplerMode,_1> *)&local_98,param_3,
-                           pIVar6,local_a8,(tagRECT *)0x0,false);
-        if (lVar3 < 0) {
+        local_5c = 0;
+        local_58 = (float)*(int *)(this + 0x18);
+        local_4c = 0x3f800000;
+        local_54 = (float)*(int *)(this + 0x1c);
+        local_88 = 1;
+        iVar3 = CSurfaceShaderComposer::RunShader
+                          (param_1,&local_90,1,(D3D11_VIEWPORT *)&local_60,5,
+                           (span<SamplerMode,_1> *)&local_88,param_3,pIVar6,local_a0,
+                           in_stack_ffffffffffffff30,(bool)in_stack_ffffffffffffff38);
+        if (-1 < iVar3) {
+          plVar1 = *(longlong **)(this + 0x80);
+          local_b0 = (longlong *)0x0;
+          pcVar2 = *(code **)(plVar1[1] + 0x60);
+          uVar4 = (**(code **)(*plVar1 + 0x58))(plVar1,&local_88);
+          iVar3 = (*pcVar2)(plVar1 + 1,uVar4,&local_b0);
+          if (iVar3 < 0) {
+            uVar7 = 0x1a4;
+          }
+          else {
+            local_70 = (ID3D11ShaderResourceView *)(**(code **)(*local_b0 + 0x80))();
+            local_68 = local_90;
+            fVar8 = floorf((float)*(int *)(this + 0x1c) * *(float *)(this + 0x8c) + 0.5);
+            fVar9 = floorf((float)*(int *)(this + 0x18) * *(float *)(this + 0x88) + 0.5);
+            iVar3 = FillXBRPass2Buffer(param_1,*(uint *)(this + 0x18),*(uint *)(this + 0x1c),
+                                       (int)fVar9,(int)fVar8);
+            if (iVar3 < 0) {
+              uVar7 = 0x1b3;
+            }
+            else {
+              local_a0 = (ID3D11PixelShader *)0x0;
+              iVar3 = CSurfaceShaderComposer::GetSurfacePixelShaderNoRef(param_1,5,&local_a0);
+              if (iVar3 < 0) {
+                uVar7 = 0x1b7;
+              }
+              else {
+                local_a6 = local_b6;
+                local_a3 = local_b6;
+                local_80 = &local_a8;
+                local_a8 = local_b8;
+                local_a5 = local_b8;
+                local_88 = 2;
+                iVar3 = CSurfaceShaderComposer::RunShader
+                                  (param_1,&local_70,2,param_4,0,(span<SamplerMode,_1> *)&local_88,
+                                   param_3,param_2,local_a0,in_stack_ffffffffffffff30,
+                                   (bool)in_stack_ffffffffffffff38);
+                if (-1 < iVar3) {
+                  wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::
+                  ~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>
+                            ((com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy> *)&local_b0)
+                  ;
+                  iVar3 = 0;
+                  goto LAB_0;
+                }
+                uVar7 = 0x1c3;
+              }
+            }
+          }
           wil::details::in1diag3::Return_Hr
-                    (unaff_retaddr,0x189,
-                     "onecoreuap\\windows\\dwm\\dwmcore\\hw\\surfaceshadercomposer.cpp",lVar3);
-          wil::details::in1diag3::Return_Hr
-                    (unaff_retaddr,0x19d,
-                     "onecoreuap\\windows\\dwm\\dwmcore\\engine\\resamplelayer.cpp",lVar3);
+                    (unaff_retaddr,uVar7,
+                     "onecoreuap\\windows\\dwm\\dwmcore\\engine\\resamplelayer.cpp",iVar3);
           wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::
           ~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>
-                    ((com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy> *)&local_c0);
-          return lVar3;
+                    ((com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy> *)&local_b0);
+          goto LAB_0;
         }
-        plVar2 = *(longlong **)(this + 0x80);
-        local_b8 = (longlong *)0x0;
-        pcVar7 = *(code **)(plVar2[1] + 0x60);
-        uVar4 = (**(code **)(*plVar2 + 0x58))(plVar2,&local_98);
-        lVar3 = (*pcVar7)(plVar2 + 1,uVar4,&local_b8);
-        if (lVar3 < 0) {
-          uVar8 = 0x1a2;
-        }
-        else {
-          local_80 = (ID3D11ShaderResourceView *)(**(code **)(*local_b8 + 0x80))();
-          iVar1 = *(int *)(this + 0x18);
-          local_78 = local_a0;
-          fVar11 = *(float *)(this + 0x88);
-          fVar10 = floorf((float)*(int *)(this + 0x1c) * *(float *)(this + 0x8c) + 0.5);
-          fVar11 = floorf((float)iVar1 * fVar11 + 0.5);
-          lVar3 = FillXBRPass2Buffer(param_1,*(uint *)(this + 0x18),*(uint *)(this + 0x1c),
-                                     (int)fVar11,(int)fVar10);
-          if (lVar3 < 0) {
-            lVar3 = FUN_1802e4e42();
-            return lVar3;
-          }
-          ppIVar9 = &local_a8;
-          local_a8 = (ID3D11PixelShader *)0x0;
-          lVar3 = CSurfaceShaderComposer::GetSurfacePixelShaderNoRef(param_1,5,ppIVar9);
-          if (-1 < lVar3) {
-            local_ae = local_c6;
-            local_ab = local_c6;
-            local_90 = &local_b0;
-            local_b0 = local_c8;
-            local_ad = local_c8;
-            local_98 = 2;
-            lVar3 = CSurfaceShaderComposer::RunShader
-                              (param_1,&DAT_0,(uint)ppIVar9,&local_80,2,param_4,0,
-                               (span<SamplerMode,_1> *)&local_98,param_3,param_2,local_a8,
-                               (tagRECT *)0x0,false);
-            if (-1 < lVar3) {
-              if (local_b8 != (longlong *)0x0) {
-                (**(code **)(*local_b8 + 0x10))();
-              }
-              if (local_c0 != (longlong *)0x0) {
-                (**(code **)(*local_c0 + 0x10))();
-              }
-              return 0;
-            }
-            wil::details::in1diag3::Return_Hr
-                      (unaff_retaddr,0x189,
-                       "onecoreuap\\windows\\dwm\\dwmcore\\hw\\surfaceshadercomposer.cpp",lVar3);
-            lVar3 = FUN_1802e4e42();
-            return lVar3;
-          }
-          uVar8 = 0x1b4;
-        }
-        wil::details::in1diag3::Return_Hr
-                  (unaff_retaddr,uVar8,
-                   "onecoreuap\\windows\\dwm\\dwmcore\\engine\\resamplelayer.cpp",lVar3);
-        if (local_b8 != (longlong *)0x0) {
-          (**(code **)(*local_b8 + 0x10))();
-        }
-        if (local_c0 == (longlong *)0x0) {
-          return lVar3;
-        }
-        pcVar7 = *(code **)(*local_c0 + 0x10);
-        goto LAB_1;
+        uVar7 = 0x19f;
       }
-      uVar8 = 0x18c;
     }
   }
   wil::details::in1diag3::Return_Hr
-            (unaff_retaddr,uVar8,"onecoreuap\\windows\\dwm\\dwmcore\\engine\\resamplelayer.cpp",
-             lVar3);
-  if (local_c0 == (longlong *)0x0) {
-    return lVar3;
-  }
-  pcVar7 = *(code **)(*local_c0 + 0x10);
-LAB_1:
-  (*pcVar7)();
-  return lVar3;
+            (unaff_retaddr,uVar7,"onecoreuap\\windows\\dwm\\dwmcore\\engine\\resamplelayer.cpp",
+             iVar3);
+LAB_0:
+  wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::
+  ~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>
+            ((com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy> *)&local_98);
+  return iVar3;
 }
 

```


## CResampleLayer::Create

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,refcount,length,sig,address,calling,called|
|ratio|0.27|
|i_ratio|0.27|
|m_ratio|0.97|
|b_ratio|0.82|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|Create|Create|
|fullname|CResampleLayer::Create|CResampleLayer::Create|
|`refcount`|2|3|
|`length`|685|656|
|`called`|?Alloc@DefaultHeap@@SAPEAX_K@Z<br>CExternalLayer::CreateBitmap<br>CResampleLayer::CResampleLayer<br>MilInstrumentationCheckHR_MaybeFailFast<br>__security_check_cookie<br>_guard_dispatch_icall$thunk$10345483385596137414<br>floorf<br>wil::com_ptr_t<IRenderTargetBitmap,wil::err_returncode_policy>::reset|?Alloc@DefaultHeap@@SAPEAX_K@Z<br>CExternalLayer::CreateBitmap<br>CResampleLayer::CResampleLayer<br>MilInstrumentationCheckHR_MaybeFailFast<br>__security_check_cookie<br>_guard_dispatch_icall$thunk$10345483385596137414<br>floorf<br>wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy><br>wil::com_ptr_t<IRenderTargetBitmap,wil::err_returncode_policy>::reset|
|`calling`|CDrawingContext::PushResampleLayer|CDrawingContext::PushEffects<br>CDrawingContext::PushResampleLayer|
|paramcount|6|6|
|`address`|18003eaf4|18027de14|
|`sig`|long __cdecl Create(IDeviceTarget * param_1, D2D_POINTANDSIZE_L * param_2, float param_3, float param_4, Enum param_5, CResampleLayer * * param_6)|long __cdecl Create(IDeviceTarget * param_1, Enum param_2, D2D_POINTANDSIZE_L * param_3, D2D_SIZE_F * param_4, optional<float> * param_5, CResampleLayer * * param_6)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### CResampleLayer::Create Called Diff


```diff
--- CResampleLayer::Create called
+++ CResampleLayer::Create called
@@ -7,0 +8 @@
+wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>
```


### CResampleLayer::Create Calling Diff


```diff
--- CResampleLayer::Create calling
+++ CResampleLayer::Create calling
@@ -0,0 +1 @@
+CDrawingContext::PushEffects
```


### CResampleLayer::Create Diff


```diff
--- CResampleLayer::Create
+++ CResampleLayer::Create
@@ -1,117 +1,112 @@
 
 /* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
    guard_dispatch_icall */
 /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
-/* public: static long __cdecl CResampleLayer::Create(class IDeviceTarget * __ptr64,struct
-   D2D_POINTANDSIZE_L const & __ptr64,float,float,enum CompositionResampleMode::Enum,class
-   CResampleLayer * __ptr64 * __ptr64) */
+/* public: static long __cdecl CResampleLayer::Create(class IDeviceTarget * __ptr64,enum
+   CompositionResampleMode::Enum,struct D2D_POINTANDSIZE_L const & __ptr64,struct D2D_SIZE_F const &
+   __ptr64,class std::optional<float> const & __ptr64,class CResampleLayer * __ptr64 * __ptr64) */
 
 long __cdecl
 CResampleLayer::Create
-          (IDeviceTarget *param_1,D2D_POINTANDSIZE_L *param_2,float param_3,float param_4,
-          Enum param_5,CResampleLayer **param_6)
+          (IDeviceTarget *param_1,Enum param_2,D2D_POINTANDSIZE_L *param_3,D2D_SIZE_F *param_4,
+          optional<float> *param_5,CResampleLayer **param_6)
 
 {
   Enum EVar1;
-  IRenderTargetBitmap *pIVar2;
-  long lVar3;
-  RenderTargetInfo *pRVar4;
-  CResampleLayer *pCVar5;
-  IRenderTargetBitmap *pIVar6;
-  float fVar7;
-  float fVar8;
-  undefined1 auStackY_108 [32];
-  uint uVar9;
-  IRenderTargetBitmap *local_c8;
-  IRenderTargetBitmap *local_c0;
-  undefined4 local_b8;
-  undefined4 local_b4;
-  int local_b0;
-  int local_ac;
-  char *local_a8;
-  undefined4 local_a0;
-  undefined1 local_98 [24];
-  undefined4 local_80;
-  undefined4 local_7c;
-  ulonglong local_70;
+  long lVar2;
+  RenderTargetInfo *pRVar3;
+  CResampleLayer *pCVar4;
+  float fVar5;
+  float fVar6;
+  undefined1 auStackY_f8 [32];
+  uint uVar7;
+  IRenderTargetBitmap *local_b8;
+  IRenderTargetBitmap *local_b0;
+  undefined4 local_a8;
+  undefined4 local_a4;
+  int local_a0;
+  int local_9c;
+  char *local_98;
+  undefined4 local_90;
+  undefined1 local_88 [24];
+  undefined4 local_70;
+  undefined4 local_6c;
+  ulonglong local_60;
   
-  local_70 = __security_cookie ^ (ulonglong)auStackY_108;
-  local_c0 = (IRenderTargetBitmap *)0x0;
-  pIVar6 = (IRenderTargetBitmap *)0x0;
-  local_c8 = (IRenderTargetBitmap *)0x0;
+  local_60 = __security_cookie ^ (ulonglong)auStackY_f8;
+  fVar5 = *(float *)param_4;
+  fVar6 = *(float *)(param_4 + 4);
+  local_b0 = (IRenderTargetBitmap *)0x0;
+  local_b8 = (IRenderTargetBitmap *)0x0;
   *param_6 = (CResampleLayer *)0x0;
-  (**(code **)(*(longlong *)(param_1 + 8) + 0x18))(param_1 + 8,&local_80);
+  (**(code **)(*(longlong *)(param_1 + 8) + 0x18))(param_1 + 8,&local_70);
   if (CCommonRegistryData::m_fResampleInLinearSpace != 0) {
-    local_80 = 0x5b;
+    local_70 = 0x5b;
   }
-  local_7c = 1;
-  local_b8 = *(undefined4 *)param_2;
-  local_b4 = *(undefined4 *)(param_2 + 4);
-  fVar7 = floorf((float)*(int *)(param_2 + 8) / param_3 + 0.5);
-  fVar8 = floorf((float)*(int *)(param_2 + 0xc) / param_4 + 0.5);
-  local_b0 = (int)fVar7;
-  if ((int)fVar7 < 1) {
-    local_b0 = 1;
+  local_6c = 1;
+  local_a8 = *(undefined4 *)param_3;
+  local_a4 = *(undefined4 *)(param_3 + 4);
+  fVar5 = floorf((float)*(int *)(param_3 + 8) / fVar5 + 0.5);
+  fVar6 = floorf((float)*(int *)(param_3 + 0xc) / fVar6 + 0.5);
+  local_a0 = (int)fVar5;
+  if ((int)fVar5 < 1) {
+    local_a0 = 1;
   }
-  local_ac = (int)fVar8;
-  if ((int)fVar8 < 1) {
-    local_ac = 1;
+  local_9c = (int)fVar6;
+  if ((int)fVar6 < 1) {
+    local_9c = 1;
   }
   wil::com_ptr_t<IRenderTargetBitmap,wil::err_returncode_policy>::reset
-            ((com_ptr_t<IRenderTargetBitmap,wil::err_returncode_policy> *)&local_c0);
-  pRVar4 = (RenderTargetInfo *)(**(code **)(*(longlong *)param_1 + 0x78))(param_1,local_98);
-  local_a0 = 0x28;
-  local_a8 = "DWM Scratch Rendertarget (ResampleLayer)";
-  lVar3 = CExternalLayer::CreateBitmap
-                    ((CResourceTag *)&local_a8,(D2D_POINTANDSIZE_L *)&local_b8,
-                     (PixelFormatInfo *)&local_80,pRVar4,2,&local_c0);
-  pIVar2 = local_c0;
-  if (lVar3 < 0) {
-    uVar9 = 0xba;
+            ((com_ptr_t<IRenderTargetBitmap,wil::err_returncode_policy> *)&local_b0);
+  pRVar3 = (RenderTargetInfo *)(**(code **)(*(longlong *)param_1 + 0x78))(param_1,local_88);
+  local_90 = 0x28;
+  local_98 = "DWM Scratch Rendertarget (ResampleLayer)";
+  lVar2 = CExternalLayer::CreateBitmap
+                    ((CResourceTag *)&local_98,(D2D_POINTANDSIZE_L *)&local_a8,
+                     (PixelFormatInfo *)&local_70,pRVar3,2,&local_b0);
+  if (lVar2 < 0) {
+    uVar7 = 0xba;
   }
   else {
-    EVar1 = param_5;
+    EVar1 = param_2;
     if (CCommonRegistryData::m_dwResampleModeOverride != 0) {
       EVar1 = CCommonRegistryData::m_dwResampleModeOverride;
     }
     if (EVar1 == 2) {
       wil::com_ptr_t<IRenderTargetBitmap,wil::err_returncode_policy>::reset
-                ((com_ptr_t<IRenderTargetBitmap,wil::err_returncode_policy> *)&local_c8);
-      pRVar4 = (RenderTargetInfo *)(**(code **)(*(longlong *)param_1 + 0x78))(param_1,local_98);
-      local_a0 = 0x2f;
-      local_a8 = "DWM Scratch Rendertarget (ResampleLayer pass 2)";
-      lVar3 = CExternalLayer::CreateBitmap
-                        ((CResourceTag *)&local_a8,(D2D_POINTANDSIZE_L *)&local_b8,
-                         (PixelFormatInfo *)&local_80,pRVar4,2,&local_c8);
-      pIVar6 = local_c8;
-      if (lVar3 < 0) {
-        MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar3,0xca,(void *)0x0);
-        pIVar6 = local_c8;
+                ((com_ptr_t<IRenderTargetBitmap,wil::err_returncode_policy> *)&local_b8);
+      pRVar3 = (RenderTargetInfo *)(**(code **)(*(longlong *)param_1 + 0x78))(param_1,local_88);
+      local_90 = 0x2f;
+      local_98 = "DWM Scratch Rendertarget (ResampleLayer pass 2)";
+      lVar2 = CExternalLayer::CreateBitmap
+                        ((CResourceTag *)&local_98,(D2D_POINTANDSIZE_L *)&local_a8,
+                         (PixelFormatInfo *)&local_70,pRVar3,2,&local_b8);
+      if (lVar2 < 0) {
+        uVar7 = 0xca;
         goto LAB_0;
       }
     }
-    pCVar5 = _Alloc_DefaultHeap__SAPEAX_K_Z(0xa0);
-    if (pCVar5 == (CResampleLayer *)0x0) {
+    pCVar4 = _Alloc_DefaultHeap__SAPEAX_K_Z(0xa8);
+    if (pCVar4 == (CResampleLayer *)0x0) {
       *param_6 = (CResampleLayer *)0x0;
     }
     else {
-      pCVar5 = (CResampleLayer *)
-               CResampleLayer(pCVar5,param_2,(D2D_POINTANDSIZE_L *)&local_b8,param_3,param_4,param_5
-                              ,pIVar2,pIVar6);
-      *param_6 = pCVar5;
-      if (pCVar5 != (CResampleLayer *)0x0) goto LAB_0;
+      pCVar4 = (CResampleLayer *)CResampleLayer(pCVar4,param_2,param_3,&local_a8);
+      *param_6 = pCVar4;
+      if (pCVar4 != (CResampleLayer *)0x0) goto LAB_1;
     }
-    lVar3 = -0x7ff8fff2;
-    uVar9 = 0xd4;
+    lVar2 = -0x7ff8fff2;
+    uVar7 = 0xd5;
   }
-  MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar3,uVar9,(void *)0x0);
 LAB_0:
-  if (pIVar6 != (IRenderTargetBitmap *)0x0) {
-    (**(code **)(*(longlong *)pIVar6 + 0x10))(pIVar6);
-  }
-  if (pIVar2 != (IRenderTargetBitmap *)0x0) {
-    (**(code **)(*(longlong *)pIVar2 + 0x10))(pIVar2);
-  }
-  return lVar3;
+  MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar2,uVar7,(void *)0x0);
+LAB_1:
+  wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::
+  ~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>
+            ((com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy> *)&local_b8);
+  wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::
+  ~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>
+            ((com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy> *)&local_b0);
+  return lVar2;
 }
 

```


## CCursorState::ScaleShape

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,length,sig,address,called|
|ratio|0.45|
|i_ratio|0.3|
|m_ratio|0.97|
|b_ratio|0.81|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|ScaleShape|ScaleShape|
|fullname|CCursorState::ScaleShape|CCursorState::ScaleShape|
|refcount|2|2|
|`length`|591|645|
|`called`|<details><summary>Expand for full list:<br>CComposition::GetImagingFactory<br>CSystemMemoryBitmap::CSystemMemoryBitmap<br>CSystemMemoryBitmap::HrInit<br>HrCreateBitmapFromWICBitmapSource<br>_guard_dispatch_icall$thunk$10345483385596137414<br>operator_new<br>std::make_shared<CCursorState::ShapeData><br>wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy><br>wil::com_ptr_t<IDXGIResource,wil::err_returncode_policy>::com_ptr_t<IDXGIResource,wil::err_returncode_policy><br>wil::com_ptr_t<ILegacyRemotingSwapChain,wil::err_returncode_policy>::reset<br>wil::com_ptr_t<Windows::Devices::Display::Core::IDisplayTarget,wil::err_returncode_policy>::operator=</summary></details>|<details><summary>Expand for full list:<br>CComposition::GetImagingFactory<br>CCursorState::ShapeData::GetSize<br>CSystemMemoryBitmap::CSystemMemoryBitmap<br>CSystemMemoryBitmap::HrInit<br>HrCreateBitmapFromWICBitmapSource<br>_guard_dispatch_icall$thunk$10345483385596137414<br>operator_new<br>std::make_shared<CCursorState::ShapeData><br>wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy><br>wil::com_ptr_t<IDXGIResource,wil::err_returncode_policy>::com_ptr_t<IDXGIResource,wil::err_returncode_policy><br>wil::com_ptr_t<ILegacyRemotingSwapChain,wil::err_returncode_policy>::reset</summary>wil::com_ptr_t<Windows::Devices::Display::Core::IDisplayTarget,wil::err_returncode_policy>::operator=</details>|
|calling|CCursorState::TryGetShape|CCursorState::TryGetShape|
|paramcount|3|3|
|`address`|1802b5f54|1802b6dcc|
|`sig`|shared_ptr<CCursorState::ShapeData> __thiscall ScaleShape(CCursorState * this, shared_ptr<struct_CCursorState::ShapeData> * param_1, uint param_2)|shared_ptr<CCursorState::ShapeData> __thiscall ScaleShape(CCursorState * this, shared_ptr<class_CCursorState::ShapeData> * param_1, D2D_SIZE_U * param_2)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### CCursorState::ScaleShape Called Diff


```diff
--- CCursorState::ScaleShape called
+++ CCursorState::ScaleShape called
@@ -1,0 +2 @@
+CCursorState::ShapeData::GetSize
```


### CCursorState::ScaleShape Diff


```diff
--- CCursorState::ScaleShape
+++ CCursorState::ScaleShape
@@ -1,133 +1,128 @@
 
 /* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
    guard_dispatch_icall */
-/* private: class std::shared_ptr<struct CCursorState::ShapeData> __cdecl
-   CCursorState::ScaleShape(class std::shared_ptr<struct CCursorState::ShapeData> const &
-   __ptr64,unsigned int) __ptr64 */
+/* private: class std::shared_ptr<class CCursorState::ShapeData> __cdecl
+   CCursorState::ScaleShape(class std::shared_ptr<class CCursorState::ShapeData> const &
+   __ptr64,struct D2D_SIZE_U const & __ptr64) __ptr64 */
 
-shared_ptr<struct_CCursorState::ShapeData> * __thiscall
+shared_ptr<class_CCursorState::ShapeData> * __thiscall
 CCursorState::ScaleShape
-          (CCursorState *this,shared_ptr<struct_CCursorState::ShapeData> *param_1,uint param_2)
+          (CCursorState *this,shared_ptr<class_CCursorState::ShapeData> *param_1,D2D_SIZE_U *param_2
+          )
 
 {
   uint uVar1;
   uint uVar2;
-  longlong lVar3;
-  long lVar4;
-  int iVar5;
+  long lVar3;
+  int iVar4;
   CSystemMemoryBitmap *this_00;
-  IDXGIResource *pIVar6;
-  undefined4 in_register_00000084;
-  longlong *plVar7;
-  WICRect *pWVar8;
-  undefined1 uVar9;
-  uint in_R9D;
-  ulonglong uVar10;
-  uint uVar11;
-  longlong *local_res8;
-  IWICImagingFactory *local_res18;
-  int local_58;
-  int local_54;
-  IBitmapSource *local_50;
-  IWICBitmapSource *local_48;
-  CSystemMemoryBitmap *local_40;
-  uint *local_38;
-  undefined8 local_30;
+  IDXGIResource *pIVar5;
+  WICRect *pWVar6;
+  undefined1 uVar7;
+  uint *in_R9;
+  ulonglong uVar8;
+  longlong *local_res18;
+  IWICImagingFactory *local_res20;
+  IBitmapSource *local_88;
+  IWICBitmapSource *local_80;
+  CSystemMemoryBitmap *local_78;
+  uint local_70;
+  uint local_6c;
+  int *local_68;
+  undefined8 local_60;
   
-  plVar7 = (longlong *)CONCAT44(in_register_00000084,param_2);
-  (**(code **)(*(longlong *)(*(longlong *)(*plVar7 + 0x18) + 0x78) + 0x20))();
-  lVar3 = *plVar7;
-  pIVar6 = (IDXGIResource *)0x0;
-  uVar11 = *(uint *)(lVar3 + 0xc) >> 1;
-  local_res18 = (IWICImagingFactory *)0x0;
-  uVar1 = *(uint *)(lVar3 + 0xc);
-  uVar2 = *(uint *)(lVar3 + 0xc);
-  lVar4 = CComposition::GetImagingFactory(*(CComposition **)(this + 0x40),&local_res18);
-  if (lVar4 < 0) {
+  ShapeData::GetSize(*(ShapeData **)param_2);
+  uVar1 = *in_R9;
+  pIVar5 = (IDXGIResource *)0x0;
+  local_res20 = (IWICImagingFactory *)0x0;
+  uVar2 = in_R9[1];
+  lVar3 = CComposition::GetImagingFactory(*(CComposition **)(this + 0x40),&local_res20);
+  if (lVar3 < 0) {
     *(undefined8 *)param_1 = 0;
     *(undefined8 *)(param_1 + 8) = 0;
     goto LAB_0;
   }
-  local_res8 = (longlong *)0x0;
-  iVar5 = (**(code **)(*(longlong *)local_res18 + 0x58))(local_res18,&local_res8);
-  if (iVar5 < 0) {
+  local_res18 = (longlong *)0x0;
+  iVar4 = (**(code **)(*(longlong *)local_res20 + 0x58))(local_res20,&local_res18);
+  if (iVar4 < 0) {
 LAB_1:
     *(undefined8 *)param_1 = 0;
     *(undefined8 *)(param_1 + 8) = 0;
   }
   else {
-    uVar10 = (ulonglong)((local_54 * in_R9D + uVar11) / uVar2);
-    iVar5 = (**(code **)(*local_res8 + 0x40))
-                      (local_res8,
-                       -(ulonglong)(*(longlong *)(*plVar7 + 0x18) != 0) &
-                       *(longlong *)(*plVar7 + 0x18) + 0x20U,(local_58 * in_R9D + uVar11) / uVar1,
-                       uVar10,~-(this[0x51] != (CCursorState)0x0) & 3);
-    uVar9 = (undefined1)uVar10;
-    if (iVar5 < 0) goto LAB_1;
-    pWVar8 = (WICRect *)&local_48;
-    local_48 = (IWICBitmapSource *)0x0;
-    iVar5 = (**(code **)*local_res8)(local_res8,&_GUID_00000120_a8f2_4877_ba0a_fd2b6645fb94);
-    if (iVar5 < 0) {
+    uVar8 = (ulonglong)in_R9[1];
+    iVar4 = (**(code **)(*local_res18 + 0x40))
+                      (local_res18,
+                       -(ulonglong)(*(longlong *)(*(longlong *)param_2 + 0x10) != 0) &
+                       *(longlong *)(*(longlong *)param_2 + 0x10) + 0x20U,*in_R9,uVar8,
+                       ~-(this[0x51] != (CCursorState)0x0) & 3);
+    uVar7 = (undefined1)uVar8;
+    if (iVar4 < 0) goto LAB_1;
+    pWVar6 = (WICRect *)&local_80;
+    local_80 = (IWICBitmapSource *)0x0;
+    iVar4 = (**(code **)*local_res18)(local_res18,&_GUID_00000120_a8f2_4877_ba0a_fd2b6645fb94);
+    if (iVar4 < 0) {
       *(undefined8 *)param_1 = 0;
       *(undefined8 *)(param_1 + 8) = 0;
     }
     else {
-      local_50 = (IBitmapSource *)0x0;
+      local_88 = (IBitmapSource *)0x0;
       wil::com_ptr_t<ILegacyRemotingSwapChain,wil::err_returncode_policy>::reset
-                ((com_ptr_t<ILegacyRemotingSwapChain,wil::err_returncode_policy> *)&local_50);
-      lVar4 = HrCreateBitmapFromWICBitmapSource(local_48,&local_50);
-      if (lVar4 < 0) {
+                ((com_ptr_t<ILegacyRemotingSwapChain,wil::err_returncode_policy> *)&local_88);
+      lVar3 = HrCreateBitmapFromWICBitmapSource(local_80,&local_88);
+      if (lVar3 < 0) {
         *(undefined8 *)param_1 = 0;
         *(undefined8 *)(param_1 + 8) = 0;
       }
       else {
         this_00 = ::operator_new(0x98);
         if (this_00 != (CSystemMemoryBitmap *)0x0) {
-          pIVar6 = (IDXGIResource *)CSystemMemoryBitmap::CSystemMemoryBitmap(this_00);
+          pIVar5 = (IDXGIResource *)CSystemMemoryBitmap::CSystemMemoryBitmap(this_00);
         }
         wil::com_ptr_t<IDXGIResource,wil::err_returncode_policy>::
         com_ptr_t<IDXGIResource,wil::err_returncode_policy>
-                  ((com_ptr_t<IDXGIResource,wil::err_returncode_policy> *)&local_40,pIVar6);
-        lVar4 = CSystemMemoryBitmap::HrInit(local_40,local_50,pWVar8,(bool)uVar9);
-        if (lVar4 < 0) {
+                  ((com_ptr_t<IDXGIResource,wil::err_returncode_policy> *)&local_78,pIVar5);
+        lVar3 = CSystemMemoryBitmap::HrInit(local_78,local_88,pWVar6,(bool)uVar7);
+        if (lVar3 < 0) {
           *(undefined8 *)param_1 = 0;
           *(undefined8 *)(param_1 + 8) = 0;
         }
         else {
           std::make_shared<CCursorState::ShapeData>();
-          *local_38 = (in_R9D * *(int *)*plVar7 + uVar11) / (uint)((int *)*plVar7)[3];
-          local_38[1] = (in_R9D * *(int *)(*plVar7 + 4) + uVar11) / *(uint *)(*plVar7 + 0xc);
-          local_38[2] = *(uint *)(*plVar7 + 8);
-          local_38[3] = in_R9D;
-          *(undefined1 *)(local_38 + 4) = 1;
-          *(undefined1 *)((longlong)local_38 + 0x11) = *(undefined1 *)(*plVar7 + 0x11);
+          *local_68 = ((int)((float)**(uint **)param_2 * ((float)uVar1 / (float)local_70) +
+                            6291456.0) << 10) >> 0xb;
+          local_68[1] = ((int)((float)*(uint *)(*(longlong *)param_2 + 4) *
+                               ((float)uVar2 / (float)local_6c) + 6291456.0) << 10) >> 0xb;
+          local_68[2] = *(int *)(*(longlong *)param_2 + 8);
+          *(undefined1 *)(local_68 + 3) = 1;
+          *(undefined1 *)((longlong)local_68 + 0xd) = *(undefined1 *)(*(longlong *)param_2 + 0xd);
           wil::com_ptr_t<Windows::Devices::Display::Core::IDisplayTarget,wil::err_returncode_policy>
           ::operator=((com_ptr_t<Windows::Devices::Display::Core::IDisplayTarget,wil::err_returncode_policy>
-                       *)(local_38 + 6),
+                       *)(local_68 + 4),
                       (com_ptr_t<struct_Windows::Devices::Display::Core::IDisplayTarget,struct_wil::err_returncode_policy>
-                       *)&local_40);
-          *(undefined8 *)(param_1 + 8) = local_30;
-          *(uint **)param_1 = local_38;
+                       *)&local_78);
+          *(undefined8 *)(param_1 + 8) = local_60;
+          *(int **)param_1 = local_68;
         }
         wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::
         ~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>
-                  ((com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy> *)&local_40);
+                  ((com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy> *)&local_78);
       }
       wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::
       ~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>
-                ((com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy> *)&local_50);
+                ((com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy> *)&local_88);
     }
     wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::
     ~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>
-              ((com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy> *)&local_48);
+              ((com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy> *)&local_80);
   }
   wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::
   ~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>
-            ((com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy> *)&local_res8);
+            ((com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy> *)&local_res18);
 LAB_0:
   wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::
   ~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>
-            ((com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy> *)&local_res18);
+            ((com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy> *)&local_res20);
   return param_1;
 }
 

```


## CDrawingContext::DrawSubVisualTree

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,refcount,length,address,calling,called|
|ratio|0.84|
|i_ratio|0.46|
|m_ratio|0.91|
|b_ratio|0.84|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|DrawSubVisualTree|DrawSubVisualTree|
|fullname|CDrawingContext::DrawSubVisualTree|CDrawingContext::DrawSubVisualTree|
|`refcount`|7|8|
|`length`|626|516|
|`called`|<details><summary>Expand for full list:<br>CDesktopTree::GetSharedOcclusionContext<br>CDrawingContext::DrawVisualTree<br>CMILMatrix::Is2DAxisAlignedPreserving<br>CMatrixStack::GetTopByReference<br>COcclusionContext::COcclusionContext<br>COcclusionContext::IsRectInOcclusionRegion<br>CSubDrawingContext::BeginFrame<br>CSubDrawingContext::EndFrame<br>CSubDrawingContext::Initialize<br>CSubDrawingContext::~CSubDrawingContext<br>CVisualTree::CalcOcclusion</summary>FUN_1802ea13c<br>MilInstrumentationCheckHR_MaybeFailFast<br>PixelAlign<br>_guard_dispatch_icall$thunk$10345483385596137414<br>operator_new<br>std::default_delete<COcclusionContext>::operator()</details>|<details><summary>Expand for full list:<br>CDesktopTree::GetSharedOcclusionContext<br>CMILMatrix::Is2DAxisAlignedPreserving<br>CMatrixStack::GetTopByReference<br>COcclusionContext::COcclusionContext<br>COcclusionContext::IsRectInOcclusionRegion<br>CSubDrawingContext::DrawVisualTree<br>CSubDrawingContext::~CSubDrawingContext<br>CVisualTree::CalcOcclusion<br>MilInstrumentationCheckHR_MaybeFailFast<br>PixelAlign<br>_guard_dispatch_icall$thunk$10345483385596137414</summary>operator_new<br>std::default_delete<COcclusionContext>::operator()</details>|
|`calling`|CDrawingContext::DrawBspPolygonList<br>CDrawingContext::DrawVisual<br>CDrawingContext::PreSubgraph<br>CRedirectedVisualContent::Draw<br>CVisualBitmap::Draw|CCompositionMagnifierBrush::GetLayeredBrushParameters<br>CDrawingContext::DrawBspPolygonList<br>CDrawingContext::DrawVisual<br>CDrawingContext::PreSubgraph<br>CRedirectedVisualContent::Draw<br>CVisualBitmap::Draw|
|paramcount|4|4|
|`address`|1800ced94|1800f6654|
|sig|long __thiscall DrawSubVisualTree(CDrawingContext * this, CVisualTree * param_1, TMil3DRect<float,TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,D3D_RECT_F,MilPointAndSizeF,RectUniqueness::NotNeeded> * param_2, CMILMatrix * param_3)|long __thiscall DrawSubVisualTree(CDrawingContext * this, CVisualTree * param_1, TMil3DRect<float,TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,D3D_RECT_F,MilPointAndSizeF,RectUniqueness::NotNeeded> * param_2, CMILMatrix * param_3)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### CDrawingContext::DrawSubVisualTree Called Diff


```diff
--- CDrawingContext::DrawSubVisualTree called
+++ CDrawingContext::DrawSubVisualTree called
@@ -2 +1,0 @@
-CDrawingContext::DrawVisualTree
@@ -7,3 +6 @@
-CSubDrawingContext::BeginFrame
-CSubDrawingContext::EndFrame
-CSubDrawingContext::Initialize
+CSubDrawingContext::DrawVisualTree
@@ -12 +8,0 @@
-FUN_1802ea13c
```


### CDrawingContext::DrawSubVisualTree Calling Diff


```diff
--- CDrawingContext::DrawSubVisualTree calling
+++ CDrawingContext::DrawSubVisualTree calling
@@ -0,0 +1 @@
+CCompositionMagnifierBrush::GetLayeredBrushParameters
```


### CDrawingContext::DrawSubVisualTree Diff


```diff
--- CDrawingContext::DrawSubVisualTree
+++ CDrawingContext::DrawSubVisualTree
@@ -1,129 +1,117 @@
 
 /* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
    guard_dispatch_icall */
 /* public: long __cdecl CDrawingContext::DrawSubVisualTree(class CVisualTree const * __ptr64,class
    TMil3DRect<float,class TMilRect_<float,struct D2D_RECT_F,struct D3D_RECT_F,struct
    D2D_POINTANDSIZE_F,struct RectUniqueness::NotNeeded>,struct D3D_RECT_F,struct
    MilPointAndSizeF,struct RectUniqueness::NotNeeded> const & __ptr64,class CMILMatrix const *
    __ptr64) __ptr64 */
 
 long __thiscall
 CDrawingContext::DrawSubVisualTree
           (CDrawingContext *this,CVisualTree *param_1,
           TMil3DRect<float,TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,D3D_RECT_F,MilPointAndSizeF,RectUniqueness::NotNeeded>
           *param_2,CMILMatrix *param_3)
 
 {
   code *pcVar1;
   bool bVar2;
   char cVar3;
   int iVar4;
   long lVar5;
   COcclusionContext *pCVar6;
   COcclusionContext *pCVar7;
   CSubDrawingContext *this_00;
   undefined8 local_98;
   TMil3DRect<float,TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,D3D_RECT_F,MilPointAndSizeF,RectUniqueness::NotNeeded>
   *local_90;
   CDrawingContext *local_88;
-  CDrawingContext *local_80;
+  undefined8 local_80;
   undefined8 local_78;
   undefined8 local_70;
   undefined8 local_68;
   undefined8 uStack_60;
   undefined8 local_58;
   undefined8 local_50;
   undefined8 local_48;
   undefined8 local_40;
   undefined4 local_38;
   undefined1 local_30;
   
-  pCVar7 = (COcclusionContext *)0x0;
   if (param_3 == (CMILMatrix *)0x0) {
     param_3 = CMatrixStack::GetTopByReference((CMatrixStack *)(this + 0x120));
   }
   bVar2 = CMILMatrix::Is2DAxisAlignedPreserving(param_3);
+  pCVar7 = (COcclusionContext *)0x0;
   pCVar6 = (COcclusionContext *)0x0;
   if (bVar2) {
     if (((*(longlong *)(this + 200) == 0) &&
         (cVar3 = (**(code **)(*(longlong *)param_1 + 0xb8))(param_1), cVar3 != '\0')) &&
        (pCVar6 = CDesktopTree::GetSharedOcclusionContext((CDesktopTree *)param_1),
        pCVar6 != (COcclusionContext *)0x0)) {
       PixelAlign((D2D_RECT_F *)&local_98);
       bVar2 = COcclusionContext::IsRectInOcclusionRegion
                         (pCVar6,(TMilRect_<int,tagRECT,D2D_POINTANDSIZE_L,Mil3DRectL,RectUniqueness::_CMilRectL_>
                                  *)&local_98);
+      pCVar7 = (COcclusionContext *)0x0;
       if (bVar2) goto LAB_0;
     }
+    pCVar7 = (COcclusionContext *)0x0;
     pCVar6 = ::operator_new(0x730);
     if (pCVar6 != (COcclusionContext *)0x0) {
       pCVar7 = (COcclusionContext *)COcclusionContext::COcclusionContext(pCVar6);
     }
     if (*(longlong *)(this + 200) != 0) {
       *(longlong *)(pCVar7 + 0x610) = *(longlong *)(this + 200);
     }
     local_98 = 1;
     local_90 = param_2;
     if (param_2 ==
         (TMil3DRect<float,TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,D3D_RECT_F,MilPointAndSizeF,RectUniqueness::NotNeeded>
          *)0x0) {
       (*(code *)`void_(__cdecl*&___ptr64___cdecl_gsl::details::get_terminate_handler(void))(void)'::
                 __l2::handler)();
       pcVar1 = (code *)swi(3);
       lVar5 = (*pcVar1)();
       return lVar5;
     }
     if (*(code **)(*(longlong *)param_1 + 200) == CVisualTree::CalcOcclusion) {
       iVar4 = CVisualTree::CalcOcclusion
                         (param_1,(span<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>_const_,_1>
                                   *)&local_98,pCVar7,0.0);
     }
     else {
       iVar4 = (**(code **)(*(longlong *)param_1 + 200))();
     }
     pCVar6 = (COcclusionContext *)0x0;
     if (-1 < iVar4) {
       pCVar6 = pCVar7;
     }
   }
 LAB_0:
-  local_38 = 0x1010100;
-  local_80 = (CDrawingContext *)0x0;
+  local_58 = 0;
+  local_68 = 0;
+  uStack_60 = 0;
+  local_80 = 0;
   local_50 = 0;
   local_40 = 0;
   local_78 = 0;
   local_70 = 0;
-  local_58 = 0;
   local_48 = 0;
+  local_38 = 0x1010100;
   local_30 = 0;
-  local_68 = 0;
-  uStack_60 = 0;
   local_88 = this;
-  lVar5 = CSubDrawingContext::Initialize((CSubDrawingContext *)&local_88);
-  if (lVar5 < 0) {
-    lVar5 = FUN_1802ea13c();
-    return lVar5;
-  }
-  lVar5 = CSubDrawingContext::BeginFrame((CSubDrawingContext *)&local_88,param_3);
-  if (lVar5 < 0) {
-    lVar5 = FUN_1802ea13c();
-    return lVar5;
-  }
-  lVar5 = DrawVisualTree(local_80,param_1,param_2,pCVar6,0,(bool)local_88[0x1f02],(CVisual *)0x0);
-  if (lVar5 < 0) {
-    lVar5 = FUN_1802ea13c();
-    return lVar5;
-  }
-  CSubDrawingContext::EndFrame((CSubDrawingContext *)&local_88,SUB41((uint)lVar5 >> 0x1f,0));
+  lVar5 = CSubDrawingContext::DrawVisualTree
+                    ((CSubDrawingContext *)&local_88,param_1,param_2,param_3,pCVar6);
   if (lVar5 < 0) {
     MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar5,0xbe0,(void *)0x0);
   }
   this_00 = (CSubDrawingContext *)&local_88;
   CSubDrawingContext::~CSubDrawingContext(this_00);
   if (pCVar7 != (COcclusionContext *)0x0) {
     std::default_delete<COcclusionContext>::operator()
               ((default_delete<COcclusionContext> *)this_00,pCVar7);
   }
   return lVar5;
 }
 

```


## CBitmapResourceRenderStrategy::GetBrushParametersWorker

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.3|
|i_ratio|0.12|
|m_ratio|0.95|
|b_ratio|0.4|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|GetBrushParametersWorker|GetBrushParametersWorker|
|fullname|CBitmapResourceRenderStrategy::GetBrushParametersWorker|CBitmapResourceRenderStrategy::GetBrushParametersWorker|
|refcount|2|2|
|`length`|1036|925|
|`called`|<details><summary>Expand for full list:<br>CBrushDrawListGenerator::Reset<br>CCachedImageProducer::GetCurrentRenderingRealization<br>CCachedVisualImage::GetCurrentRenderingRealization<br>CCompositionSurfaceBitmap::GetCurrentRenderingRealization<br>CDrawListBitmap::~CDrawListBitmap<br>CDrawListPrimitive0::`vector_deleting_destructor'<br>CDxHandleBitmapRealization::GetSize`adjustor{256}'<br>CMILRefCountBaseT<IBitmapResource,CMilObjectDeleter>::InternalRelease<br>CMILRefCountImpl::AddReference<br>CMultiPrimitiveDrawListBrush::`scalar_deleting_destructor'<br>CSurfaceDrawListBrush::`scalar_deleting_destructor'</summary>CThreadLocalObjectCache<CSurfaceDrawListBrush,CSurfaceDrawListBrush>::Alloc<br>IBitmapRealizationMethodsT<CDxHandleBitmapRealization,IGDIBitmapRealization>::GetSize`adjustor{320}'<br>InterpolationMode::FromD2D1InterpolationMode<br>MilInstrumentationCheckHR_MaybeFailFast<br>_guard_dispatch_icall$thunk$10345483385596137414</details>|<details><summary>Expand for full list:<br>CBrushDrawListGenerator::Reset<br>CCachedImageProducer::GetCurrentRenderingRealization<br>CCachedVisualImage::GetCurrentRenderingRealization<br>CCompositionSurfaceBitmap::GetCurrentRenderingRealization<br>CDrawListBitmap::~CDrawListBitmap<br>CDrawListPrimitive0::`vector_deleting_destructor'<br>CDxHandleBitmapRealization::GetSize`adjustor{256}'<br>CMILRefCountBaseT<IBitmapResource,CMilObjectDeleter>::InternalRelease<br>CMILRefCountImpl::AddReference<br>CMultiPrimitiveDrawListBrush::`scalar_deleting_destructor'<br>CSurfaceDrawListBrush::CSurfaceDrawListBrush</summary>CSurfaceDrawListBrush::`scalar_deleting_destructor'<br>CSurfaceDrawListBrush::~CSurfaceDrawListBrush<br>CThreadLocalObjectCache<CSurfaceDrawListBrush,CSurfaceDrawListBrush>::Alloc<br>CThreadLocalObjectCache<CSurfaceDrawListBrush,CSurfaceDrawListBrush>::Free<br>IBitmapRealizationMethodsT<CDxHandleBitmapRealization,IGDIBitmapRealization>::GetSize`adjustor{320}'<br>InterpolationMode::FromD2D1InterpolationMode<br>MilInstrumentationCheckHR_MaybeFailFast<br>_guard_dispatch_icall$thunk$10345483385596137414</details>|
|calling|CVisualSurfaceRenderStrategy::GetBrushParameters|CVisualSurfaceRenderStrategy::GetBrushParameters|
|paramcount|5|5|
|`address`|18009dbb8|18004bdfc|
|sig|long __cdecl GetBrushParametersWorker(CSurfaceBrush * param_1, IBitmapResource * param_2, LayoutData * param_3, D2D1_INTERPOLATION_MODE param_4, CBrushDrawListGenerator * param_5)|long __cdecl GetBrushParametersWorker(CSurfaceBrush * param_1, IBitmapResource * param_2, LayoutData * param_3, D2D1_INTERPOLATION_MODE param_4, CBrushDrawListGenerator * param_5)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### CBitmapResourceRenderStrategy::GetBrushParametersWorker Called Diff


```diff
--- CBitmapResourceRenderStrategy::GetBrushParametersWorker called
+++ CBitmapResourceRenderStrategy::GetBrushParametersWorker called
@@ -10,0 +11 @@
+CSurfaceDrawListBrush::CSurfaceDrawListBrush
@@ -11,0 +13 @@
+CSurfaceDrawListBrush::~CSurfaceDrawListBrush
@@ -12,0 +15 @@
+CThreadLocalObjectCache<CSurfaceDrawListBrush,CSurfaceDrawListBrush>::Free
```


### CBitmapResourceRenderStrategy::GetBrushParametersWorker Diff


```diff
--- CBitmapResourceRenderStrategy::GetBrushParametersWorker
+++ CBitmapResourceRenderStrategy::GetBrushParametersWorker
@@ -1,188 +1,178 @@
 
 /* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
    guard_dispatch_icall */
+/* WARNING: Removing unreachable block (ram,0x00018004c0ce) */
 /* protected: static long __cdecl CBitmapResourceRenderStrategy::GetBrushParametersWorker(class
    CSurfaceBrush const * __ptr64,class IBitmapResource * __ptr64,struct CContent::LayoutData *
    __ptr64,enum D2D1_INTERPOLATION_MODE,class CBrushDrawListGenerator * __ptr64) */
 
 long __cdecl
 CBitmapResourceRenderStrategy::GetBrushParametersWorker
           (CSurfaceBrush *param_1,IBitmapResource *param_2,LayoutData *param_3,
           D2D1_INTERPOLATION_MODE param_4,CBrushDrawListGenerator *param_5)
 
 {
   float fVar1;
   float fVar2;
   code *pcVar3;
-  CSurfaceDrawListBrush *this;
   undefined4 uVar4;
   undefined4 uVar5;
   undefined8 uVar6;
   undefined8 uVar7;
-  CMILRefCountBaseT<IBitmapResource,CMilObjectDeleter> *this_00;
+  CMILRefCountBaseT<IBitmapResource,CMilObjectDeleter> *this;
   Enum EVar8;
-  ulonglong uVar9;
-  undefined8 *puVar10;
+  CSurfaceDrawListBrush *pCVar9;
+  longlong lVar10;
   ulonglong *puVar11;
-  long lVar12;
-  undefined4 uVar13;
-  float fVar14;
-  float fVar15;
-  undefined2 local_res18;
-  CMILRefCountBaseT<IBitmapResource,CMilObjectDeleter> *local_98;
-  IBitmapRealization *local_90;
-  undefined1 local_88;
+  IBitmapRealization *pIVar12;
+  ulonglong uVar13;
+  undefined4 uVar14;
+  long lVar15;
+  float fVar16;
+  float fVar17;
+  undefined1 local_res10 [8];
+  undefined1 local_res18;
+  undefined2 local_res19;
+  CMILRefCountBaseT<IBitmapResource,CMilObjectDeleter> *local_90;
+  IBitmapRealization *local_88;
+  undefined1 local_80;
+  float local_78 [5];
+  undefined4 local_64;
+  float local_60;
+  float local_5c;
+  undefined4 local_58;
   
   CBrushDrawListGenerator::Reset(param_5);
-  uVar9 = 0;
-  lVar12 = 0;
-  local_98 = (CMILRefCountBaseT<IBitmapResource,CMilObjectDeleter> *)0x0;
-  local_88 = 0;
+  local_90 = (CMILRefCountBaseT<IBitmapResource,CMilObjectDeleter> *)0x0;
+  local_88 = (IBitmapRealization *)0x0;
+  local_80 = 0;
   pcVar3 = *(code **)(*(longlong *)param_2 + 0x40);
-  local_90 = (IBitmapRealization *)0x0;
   if (pcVar3 == CCompositionSurfaceBitmap::GetCurrentRenderingRealization) {
     CCompositionSurfaceBitmap::GetCurrentRenderingRealization
-              ((CCompositionSurfaceBitmap *)param_2,&local_90);
+              ((CCompositionSurfaceBitmap *)param_2,&local_88);
   }
   else if (pcVar3 == CCachedVisualImage::GetCurrentRenderingRealization) {
-    CCachedVisualImage::GetCurrentRenderingRealization((CCachedVisualImage *)param_2,&local_90);
+    CCachedVisualImage::GetCurrentRenderingRealization((CCachedVisualImage *)param_2,&local_88);
   }
   else if (pcVar3 == CCachedImageProducer::GetCurrentRenderingRealization) {
-    CCachedImageProducer::GetCurrentRenderingRealization((CCachedImageProducer *)param_2,&local_90);
+    CCachedImageProducer::GetCurrentRenderingRealization((CCachedImageProducer *)param_2,&local_88);
   }
   else {
     (*pcVar3)();
   }
-  this_00 = local_98;
-  local_98 = (CMILRefCountBaseT<IBitmapResource,CMilObjectDeleter> *)param_2;
+  this = local_90;
+  local_90 = (CMILRefCountBaseT<IBitmapResource,CMilObjectDeleter> *)param_2;
   if (*(code **)(*(longlong *)param_2 + 8) == CMILRefCountImpl::AddReference) {
     CMILRefCountImpl::AddReference((CMILRefCountImpl *)param_2);
   }
   else {
     (**(code **)(*(longlong *)param_2 + 8))();
   }
-  if (this_00 != (CMILRefCountBaseT<IBitmapResource,CMilObjectDeleter> *)0x0) {
-    if (*(code **)(*(longlong *)this_00 + 0x10) ==
+  if (this != (CMILRefCountBaseT<IBitmapResource,CMilObjectDeleter> *)0x0) {
+    if (*(code **)(*(longlong *)this + 0x10) ==
         CMILRefCountBaseT<IBitmapResource,CMilObjectDeleter>::InternalRelease) {
-      CMILRefCountBaseT<IBitmapResource,CMilObjectDeleter>::InternalRelease(this_00);
+      CMILRefCountBaseT<IBitmapResource,CMilObjectDeleter>::InternalRelease(this);
     }
     else {
-      (**(code **)(*(longlong *)this_00 + 0x10))();
+      (**(code **)(*(longlong *)this + 0x10))();
     }
   }
   EVar8 = InterpolationMode::FromD2D1InterpolationMode(param_4);
-  if (local_90 != (IBitmapRealization *)0x0) {
-    pcVar3 = *(code **)(*(longlong *)local_90 + 0x20);
+  uVar13 = 0;
+  pIVar12 = local_88;
+  if (local_88 != (IBitmapRealization *)0x0) {
+    pcVar3 = *(code **)(*(longlong *)local_88 + 0x20);
     if (pcVar3 == IBitmapRealizationMethodsT<CDxHandleBitmapRealization,IGDIBitmapRealization>::
                   GetSize_adjustor_320__) {
       puVar11 = (ulonglong *)
                 IBitmapRealizationMethodsT<CDxHandleBitmapRealization,IGDIBitmapRealization>::
                 GetSize_adjustor_320__
                           ((IBitmapRealizationMethodsT<CDxHandleBitmapRealization,IGDIBitmapRealization>
-                            *)local_90);
+                            *)local_88);
     }
     else if (pcVar3 == CDxHandleBitmapRealization::GetSize_adjustor_256__) {
       puVar11 = (ulonglong *)
                 CDxHandleBitmapRealization::GetSize_adjustor_256__
-                          ((CDxHandleBitmapRealization *)local_90);
+                          ((CDxHandleBitmapRealization *)local_88);
     }
     else {
-      puVar11 = (ulonglong *)(*pcVar3)();
+      puVar11 = (ulonglong *)(*pcVar3)(local_88,local_res10);
     }
-    uVar9 = *puVar11;
+    uVar13 = *puVar11;
   }
-  fVar15 = 1.0 / (float)(uVar9 & 0xffffffff);
-  fVar14 = 1.0 / (float)(uVar9 >> 0x20);
-  puVar10 = CThreadLocalObjectCache<CSurfaceDrawListBrush,CSurfaceDrawListBrush>::Alloc
-                      (uVar9 & 0xffffffff);
-  if (puVar10 == (undefined8 *)0x0) {
-    MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,-0x7ff8fff2,0x1f,(void *)0x0);
-    MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,-0x7ff8fff2,0x37f,(void *)0x0);
-    lVar12 = -0x7ff8fff2;
+  local_78[1] = 0.0;
+  local_78[2] = 0.0;
+  local_78[3] = 0.0;
+  local_64 = 0;
+  local_58 = 0x3f800000;
+  fVar17 = 1.0 / (float)(uVar13 & 0xffffffff);
+  fVar16 = 1.0 / (float)(uVar13 >> 0x20);
+  local_60 = 0.0 - fVar17 * 0.0;
+  local_5c = 0.0 - fVar16 * 0.0;
+  local_78[0] = fVar17;
+  local_78[4] = fVar16;
+  pCVar9 = CThreadLocalObjectCache<CSurfaceDrawListBrush,CSurfaceDrawListBrush>::Alloc
+                     ((__uint64)pIVar12);
+  if (pCVar9 != (CSurfaceDrawListBrush *)0x0) {
+    local_res19 = 0x101;
+    local_res18 = (char)EVar8;
+    lVar10 = CSurfaceDrawListBrush::CSurfaceDrawListBrush(pCVar9,&local_90,&local_res18,local_78,1);
+    if (lVar10 != 0) {
+      *(undefined1 *)(lVar10 + 0x34) = 1;
+      uVar6 = *(undefined8 *)(param_3 + 0x18);
+      uVar7 = *(undefined8 *)(param_3 + 0x20);
+      *(undefined4 *)(lVar10 + 0x30) = 0x3030303;
+      *(undefined8 *)(lVar10 + 0x20) = uVar6;
+      *(undefined8 *)(lVar10 + 0x28) = uVar7;
+      fVar1 = *(float *)(param_3 + 0x20);
+      fVar2 = *(float *)(param_3 + 0x24);
+      *(ulonglong *)(lVar10 + 0x78) =
+           CONCAT44(fVar16 * *(float *)(param_3 + 0x1c),fVar17 * *(float *)(param_3 + 0x18));
+      *(ulonglong *)(lVar10 + 0x80) = CONCAT44(fVar16 * fVar2,fVar17 * fVar1);
+      uVar14 = *(undefined4 *)(param_3 + 4);
+      uVar4 = *(undefined4 *)(param_3 + 8);
+      uVar5 = *(undefined4 *)(param_3 + 0xc);
+      *(undefined4 *)(lVar10 + 8) = *(undefined4 *)param_3;
+      *(undefined4 *)(lVar10 + 0xc) = uVar14;
+      *(undefined4 *)(lVar10 + 0x10) = uVar4;
+      *(undefined4 *)(lVar10 + 0x14) = uVar5;
+      *(undefined8 *)(lVar10 + 0x18) = *(undefined8 *)(param_3 + 0x10);
+      if (param_1[200] != (CSurfaceBrush)0x0) {
+        *(undefined8 *)(lVar10 + 0x88) = *(undefined8 *)(param_3 + 0x18);
+        *(undefined1 *)(lVar10 + 0x93) = 1;
+      }
+      pCVar9 = *(CSurfaceDrawListBrush **)(param_5 + 8);
+      *(longlong *)(param_5 + 8) = lVar10;
+      if (pCVar9 != (CSurfaceDrawListBrush *)0x0) {
+        pcVar3 = (code *)**(undefined8 **)pCVar9;
+        if (pcVar3 == CMultiPrimitiveDrawListBrush::_scalar_deleting_destructor_) {
+          CMultiPrimitiveDrawListBrush::_scalar_deleting_destructor_
+                    ((CMultiPrimitiveDrawListBrush *)pCVar9,1);
+        }
+        else if (pcVar3 == CSurfaceDrawListBrush::_scalar_deleting_destructor_) {
+          CSurfaceDrawListBrush::_scalar_deleting_destructor_(pCVar9,1);
+        }
+        else if (pcVar3 == CDrawListPrimitive0::_vector_deleting_destructor_) {
+          CDrawListPrimitive0::_vector_deleting_destructor_((CDrawListPrimitive0 *)pCVar9,1);
+        }
+        else {
+          (*pcVar3)();
+        }
+      }
+      uVar14 = 1;
+      if (1 < *(uint *)(param_5 + 0x28)) {
+        uVar14 = *(undefined4 *)(param_5 + 0x28);
+      }
+      *(undefined4 *)(param_5 + 0x28) = uVar14;
+      lVar15 = 0;
+      goto LAB_0;
+    }
   }
-  else {
-    local_res18 = CONCAT11(1,(char)EVar8);
-    puVar10[1] = 0x3f800000;
-    *(undefined4 *)(puVar10 + 2) = 0;
-    *(undefined8 *)((longlong)puVar10 + 0x14) = 0x3f800000;
-    *(undefined4 *)((longlong)puVar10 + 0x1c) = 0;
-    *(undefined1 *)((longlong)puVar10 + 0x34) = 0;
-    *puVar10 = &CSurfaceDrawListBrush::_vftable_;
-    puVar10[7] = local_98;
-    if (local_98 != (CMILRefCountBaseT<IBitmapResource,CMilObjectDeleter> *)0x0) {
-      if (*(code **)(*(longlong *)local_98 + 8) == CMILRefCountImpl::AddReference) {
-        CMILRefCountImpl::AddReference((CMILRefCountImpl *)local_98);
-      }
-      else {
-        (**(code **)(*(longlong *)local_98 + 8))();
-      }
-    }
-    puVar10[8] = local_90;
-    if (local_90 != (IBitmapRealization *)0x0) {
-      (**(code **)(*(longlong *)local_90 + 8))();
-    }
-    *(undefined1 *)(puVar10 + 9) = local_88;
-    *(undefined2 *)(puVar10 + 10) = local_res18;
-    *(undefined1 *)((longlong)puVar10 + 0x52) = 1;
-    *(float *)((longlong)puVar10 + 0x54) = fVar15;
-    *(float *)((longlong)puVar10 + 100) = fVar14;
-    *(float *)((longlong)puVar10 + 0x6c) = 0.0 - fVar15 * 0.0;
-    *(float *)(puVar10 + 0xe) = 0.0 - fVar14 * 0.0;
-    puVar10[0xb] = 0;
-    *(undefined4 *)(puVar10 + 0xc) = 0;
-    *(undefined4 *)(puVar10 + 0xd) = 0;
-    *(undefined4 *)((longlong)puVar10 + 0x74) = 0x3f800000;
-    *(undefined4 *)(puVar10 + 0x12) = 1;
-    puVar10[0xf] = 0xff7fffffff7fffff;
-    puVar10[0x10] = 0x7f7fffff7f7fffff;
-    *(undefined1 *)((longlong)puVar10 + 0x34) = 1;
-    uVar6 = *(undefined8 *)(param_3 + 0x18);
-    uVar7 = *(undefined8 *)(param_3 + 0x20);
-    *(undefined4 *)(puVar10 + 6) = 0x3030303;
-    puVar10[4] = uVar6;
-    puVar10[5] = uVar7;
-    fVar1 = *(float *)(param_3 + 0x20);
-    fVar2 = *(float *)(param_3 + 0x24);
-    puVar10[0xf] = CONCAT44(fVar14 * *(float *)(param_3 + 0x1c),fVar15 * *(float *)(param_3 + 0x18))
-    ;
-    puVar10[0x10] = CONCAT44(fVar14 * fVar2,fVar15 * fVar1);
-    uVar13 = *(undefined4 *)(param_3 + 4);
-    uVar4 = *(undefined4 *)(param_3 + 8);
-    uVar5 = *(undefined4 *)(param_3 + 0xc);
-    *(undefined4 *)(puVar10 + 1) = *(undefined4 *)param_3;
-    *(undefined4 *)((longlong)puVar10 + 0xc) = uVar13;
-    *(undefined4 *)(puVar10 + 2) = uVar4;
-    *(undefined4 *)((longlong)puVar10 + 0x14) = uVar5;
-    puVar10[3] = *(undefined8 *)(param_3 + 0x10);
-    if (param_1[200] != (CSurfaceBrush)0x0) {
-      puVar10[0x11] = *(undefined8 *)(param_3 + 0x18);
-      *(undefined1 *)((longlong)puVar10 + 0x93) = 1;
-    }
-    this = *(CSurfaceDrawListBrush **)(param_5 + 8);
-    *(undefined8 **)(param_5 + 8) = puVar10;
-    if (this != (CSurfaceDrawListBrush *)0x0) {
-      pcVar3 = (code *)**(undefined8 **)this;
-      if (pcVar3 == CMultiPrimitiveDrawListBrush::_scalar_deleting_destructor_) {
-        CMultiPrimitiveDrawListBrush::_scalar_deleting_destructor_
-                  ((CMultiPrimitiveDrawListBrush *)this,1);
-      }
-      else if (pcVar3 == CSurfaceDrawListBrush::_scalar_deleting_destructor_) {
-        CSurfaceDrawListBrush::_scalar_deleting_destructor_(this,1);
-      }
-      else if (pcVar3 == CDrawListPrimitive0::_vector_deleting_destructor_) {
-        CDrawListPrimitive0::_vector_deleting_destructor_((CDrawListPrimitive0 *)this,1);
-      }
-      else {
-        (*pcVar3)();
-      }
-    }
-    uVar13 = 1;
-    if (1 < *(uint *)(param_5 + 0x28)) {
-      uVar13 = *(undefined4 *)(param_5 + 0x28);
-    }
-    *(undefined4 *)(param_5 + 0x28) = uVar13;
-  }
-  CDrawListBitmap::~CDrawListBitmap((CDrawListBitmap *)&local_98);
-  return lVar12;
+  lVar15 = -0x7ff8fff2;
+  MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,-0x7ff8fff2,0x1f,(void *)0x0);
+  MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,-0x7ff8fff2,0x37f,(void *)0x0);
+LAB_0:
+  CDrawListBitmap::~CDrawListBitmap((CDrawListBitmap *)&local_90);
+  return lVar15;
 }
 

```


## wil::details::FeatureImpl<__WilFeatureTraits_Feature_TestAccPerf>::GetCurrentFeatureEnabledState

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,length,address|
|ratio|0.61|
|i_ratio|0.75|
|m_ratio|0.97|
|b_ratio|0.95|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|GetCurrentFeatureEnabledState|GetCurrentFeatureEnabledState|
|fullname|wil::details::FeatureImpl<__WilFeatureTraits_Feature_TestAccPerf>::GetCurrentFeatureEnabledState|wil::details::FeatureImpl<__WilFeatureTraits_Feature_TestAccPerf>::GetCurrentFeatureEnabledState|
|refcount|2|2|
|`length`|250|259|
|called|wil::details::FeatureImpl<__WilFeatureTraits_Feature_Standalone_25_11_NonSec>::ReportUsage<br>wil::details::FeatureImpl<__WilFeatureTraits_Feature_ValAccTest>::__private_IsEnabled<br>wil::details::WilApi_GetFeatureEnabledState|wil::details::FeatureImpl<__WilFeatureTraits_Feature_Standalone_25_11_NonSec>::ReportUsage<br>wil::details::FeatureImpl<__WilFeatureTraits_Feature_ValAccTest>::__private_IsEnabled<br>wil::details::WilApi_GetFeatureEnabledState|
|calling|wil::details::FeatureImpl<__WilFeatureTraits_Feature_TestAccPerf>::GetCachedFeatureEnabledState|wil::details::FeatureImpl<__WilFeatureTraits_Feature_TestAccPerf>::GetCachedFeatureEnabledState|
|paramcount|2|2|
|`address`|18026ee70|18026d2b8|
|sig|wil_details_FeatureStateCache __thiscall GetCurrentFeatureEnabledState(FeatureImpl<__WilFeatureTraits_Feature_TestAccPerf> * this, int * param_1)|wil_details_FeatureStateCache __thiscall GetCurrentFeatureEnabledState(FeatureImpl<__WilFeatureTraits_Feature_TestAccPerf> * this, int * param_1)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### wil::details::FeatureImpl<__WilFeatureTraits_Feature_TestAccPerf>::GetCurrentFeatureEnabledState Diff


```diff
--- wil::details::FeatureImpl<__WilFeatureTraits_Feature_TestAccPerf>::GetCurrentFeatureEnabledState
+++ wil::details::FeatureImpl<__WilFeatureTraits_Feature_TestAccPerf>::GetCurrentFeatureEnabledState
@@ -1,67 +1,73 @@
 
 /* private: union wil_details_FeatureStateCache __cdecl wil::details::FeatureImpl<struct
    __WilFeatureTraits_Feature_TestAccPerf>::GetCurrentFeatureEnabledState(int * __ptr64) __ptr64 */
 
 int * __thiscall
 wil::details::FeatureImpl<__WilFeatureTraits_Feature_TestAccPerf>::GetCurrentFeatureEnabledState
           (FeatureImpl<__WilFeatureTraits_Feature_TestAccPerf> *this,int *param_1)
 
 {
   bool bVar1;
   bool bVar2;
   FEATURE_ENABLED_STATE FVar3;
   ReportingKind RVar4;
   undefined1 uVar5;
-  uint uVar7;
+  ReportingKind RVar6;
+  ReportingKind RVar7;
+  uint uVar8;
+  ReportingKind RVar9;
   int *in_R8;
-  FEATURE_ENABLED_STATE FVar8;
-  ReportingKind RVar6;
-  __uint64 _Var9;
+  FEATURE_ENABLED_STATE FVar10;
+  __uint64 _Var11;
   
   FVar3 = WilApi_GetFeatureEnabledState(0x3667cad,3,in_R8);
   param_1[0] = 0;
   param_1[1] = 0;
-  FVar8 = FVar3 & 0xffffff3f;
-  _Var9 = (__uint64)FVar8;
-  RVar6 = -(uint)((FVar3 & 0x40) != 0) & 0x800 | -(uint)((FVar3 & 0x80) != 0) & 0x400 |
-          (FVar3 & 3) << 7;
-  if (FVar8 != 0) {
+  FVar10 = FVar3 & 0xffffff3f;
+  _Var11 = (__uint64)FVar10;
+  RVar6 = -(uint)((FVar3 & 0x40) != 0) & 0x800 | -(uint)((FVar3 & 0x80) != 0) & 0x400;
+  RVar7 = RVar6 | (FVar3 & 3) << 7;
+  *param_1 = RVar7;
+  if (FVar10 == 0) {
+    RVar4 = 0x40;
+  }
+  else {
     RVar4 = 0;
-    if (FVar8 == 2) {
+    if (FVar10 == 2) {
       RVar4 = 0x40;
     }
-    RVar6 = RVar6 | RVar4;
   }
-  uVar5 = (undefined1)RVar6;
-  RVar4 = 0xc00;
-  *param_1 = RVar6;
+  RVar7 = RVar7 | RVar4;
+  uVar5 = (undefined1)RVar7;
+  RVar9 = 0xc00;
+  *param_1 = RVar7;
   bVar2 = false;
-  uVar7 = 1;
-  if ((RVar6 & 0xc00) == 0xc00) {
+  uVar8 = 1;
+  if (RVar6 == 0xc00) {
     bVar1 = true;
   }
   else {
     bVar1 = false;
-    if ((RVar6 & 0x40) == 0) goto LAB_0;
+    if (RVar4 == 0) goto LAB_0;
   }
   bVar2 = FeatureImpl<__WilFeatureTraits_Feature_ValAccTest>::__private_IsEnabled
                     ((FeatureImpl<__WilFeatureTraits_Feature_ValAccTest> *)
                      &`private:_static_class_wil::details::FeatureImpl<__WilFeatureTraits_Feature_ValAccTest>&___ptr64___cdecl_wil::Feature<__WilFeatureTraits_Feature_ValAccTest>::GetImpl(void)'
-                      ::__l2::impl,RVar6);
+                      ::__l2::impl,RVar7);
   if (bVar2) {
     FeatureImpl<__WilFeatureTraits_Feature_Standalone_25_11_NonSec>::ReportUsage
               ((FeatureImpl<__WilFeatureTraits_Feature_Standalone_25_11_NonSec> *)
                &`private:_static_class_wil::details::FeatureImpl<__WilFeatureTraits_Feature_Standalone_25_11_NonSec>&___ptr64___cdecl_wil::Feature<__WilFeatureTraits_Feature_Standalone_25_11_NonSec>::GetImpl(void)'
-                ::__l2::impl,(bool)uVar5,RVar4,_Var9);
+                ::__l2::impl,(bool)uVar5,RVar9,_Var11);
   }
   if ((bVar1) && (!bVar2)) {
     *param_1 = *param_1 & 0xfffffbff;
   }
 LAB_0:
   if (((*param_1 & 0x40U) == 0) || (!bVar2)) {
-    uVar7 = 0;
+    uVar8 = 0;
   }
-  *param_1 = *param_1 & 0xfffffffeU | uVar7;
+  *param_1 = *param_1 & 0xfffffffeU | uVar8;
   return param_1;
 }
 

```


## CDDisplayRenderTarget::SyncLock

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.53|
|i_ratio|0.47|
|m_ratio|0.88|
|b_ratio|0.85|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|SyncLock|SyncLock|
|fullname|CDDisplayRenderTarget::SyncLock|CDDisplayRenderTarget::SyncLock|
|refcount|4|4|
|`length`|94|123|
|`called`|COverlayContext::SyncLock<br>CTargetStats::NotifySyncLock|COverlayContext::SyncLock<br>CTargetStats::NotifySyncLock<br>wil::details::FeatureImpl<__WilFeatureTraits_Feature_DDisplayInkBlackFlash>::__private_IsEnabled|
|calling|CDDisplayRenderTarget::Render|CDDisplayRenderTarget::Render|
|paramcount|2|2|
|`address`|1800e6fc0|1800972d0|
|sig|void __thiscall SyncLock(CDDisplayRenderTarget * this, uint param_1)|void __thiscall SyncLock(CDDisplayRenderTarget * this, uint param_1)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### CDDisplayRenderTarget::SyncLock Called Diff


```diff
--- CDDisplayRenderTarget::SyncLock called
+++ CDDisplayRenderTarget::SyncLock called
@@ -2,0 +3 @@
+wil::details::FeatureImpl<__WilFeatureTraits_Feature_DDisplayInkBlackFlash>::__private_IsEnabled
```


### CDDisplayRenderTarget::SyncLock Diff


```diff
--- CDDisplayRenderTarget::SyncLock
+++ CDDisplayRenderTarget::SyncLock
@@ -1,21 +1,27 @@
 
 /* public: virtual void __cdecl CDDisplayRenderTarget::SyncLock(unsigned int) __ptr64 */
 
 void __thiscall CDDisplayRenderTarget::SyncLock(CDDisplayRenderTarget *this,uint param_1)
 
 {
-  long lVar1;
+  bool bVar1;
+  long lVar2;
   
-  if (*(int *)(this + 0x8148) != 0) {
-    lVar1 = COverlayContext::SyncLock
+  bVar1 = wil::details::FeatureImpl<__WilFeatureTraits_Feature_DDisplayInkBlackFlash>::
+          __private_IsEnabled((FeatureImpl<__WilFeatureTraits_Feature_DDisplayInkBlackFlash> *)
+                              &`private:_static_class_wil::details::FeatureImpl<__WilFeatureTraits_Feature_DDisplayInkBlackFlash>&___ptr64___cdecl_wil::Feature<__WilFeatureTraits_Feature_DDisplayInkBlackFlash>::GetImpl(void)'
+                               ::__l2::impl);
+  if ((*(int *)(this + 0x81d0) != 0) &&
+     ((!bVar1 || (*(char *)(*(longlong *)(this + 0x30) + 0x299) == '\0')))) {
+    lVar2 = COverlayContext::SyncLock
                       ((COverlayContext *)(this + 0x40),
                        (IOverlaySwapChain *)
                        (-(ulonglong)(*(longlong *)(this + 0x30) != 0) &
-                       *(longlong *)(this + 0x30) + 0x18U),param_1,*(uint *)(this + 0x8120),false);
-    if (-1 < lVar1) {
-      CTargetStats::NotifySyncLock((CTargetStats *)(this + 0x8050),param_1);
+                       *(longlong *)(this + 0x30) + 0x18U),param_1,*(uint *)(this + 0x81a8),false);
+    if (-1 < lVar2) {
+      CTargetStats::NotifySyncLock((CTargetStats *)(this + 0x80d8),param_1);
     }
   }
   return;
 }
 

```


## CDrawingContext::FillShapeWithBitmapRealization

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.27|
|i_ratio|0.4|
|m_ratio|0.98|
|b_ratio|0.7|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|FillShapeWithBitmapRealization|FillShapeWithBitmapRealization|
|fullname|CDrawingContext::FillShapeWithBitmapRealization|CDrawingContext::FillShapeWithBitmapRealization|
|refcount|9|9|
|`length`|3967|3844|
|`called`|<details><summary>Expand for full list:<br>?Free@DefaultHeap@@SAXPEAX@Z<br>API-MS-WIN-CORE-HEAP-L1-1-0.DLL::GetProcessHeap<br>API-MS-WIN-CORE-HEAP-L1-1-0.DLL::HeapFree<br>API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::EnterCriticalSection<br>API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::LeaveCriticalSection<br>API-MS-WIN-CRT-RUNTIME-L1-1-0.DLL::_invalid_parameter_noinfo_noreturn<br>CBrushDrawListGenerator::GenerateDrawList<br>CDrawListBitmap::~CDrawListBitmap<br>CDrawListEntryBuilder::Render<br>CDrawListPrimitive0::`vector_deleting_destructor'<br>CDrawingContext::GetD2DInterpolationMode</summary>CDrawingContext::GetOpacity<br>CDxHandleBitmapRealization::GetSize`adjustor{256}'<br>CGDISectionBitmapRealization::AddRef`adjustor{392}'<br>CMILRefCountBaseT<IUnknownWeakRefSource,CResourceDeleter>::InternalRelease<br>CMILRefCountImpl::AddReference<br>CMILRefCountImpl::RemoveReference<br>CMilObjectDeleter::Delete<IBitmapResource><br>CMultiPrimitiveDrawListBrush::`scalar_deleting_destructor'<br>CRectanglesShape::GetRectangles<br>CSurfaceDrawListBrush::`scalar_deleting_destructor'<br>CSurfaceShaderComposer::SurfaceShader::SurfaceShader<br>CThreadLocalObjectCache<CMultiPrimitiveDrawListBrush,CMultiPrimitiveDrawListBrush>::Alloc<br>CThreadLocalObjectCache<CSurfaceDrawListBrush,CSurfaceDrawListBrush>::Alloc<br>CWatermarkStack<float,64,2,10>::Grow<br>IBitmapRealizationMethodsT<CDxHandleBitmapRealization,IGDIBitmapRealization>::GetSize`adjustor{320}'<br>InterpolationMode::FromD2D1InterpolationMode<br>MilInstrumentationCheckHR_MaybeFailFast<br>__security_check_cookie<br>_guard_dispatch_icall$thunk$10345483385596137414<br>detail::vector_facade<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,detail::buffer_impl<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,10,1,detail::liberal_expansion_policy>_>::~vector_facade<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,detail::buffer_impl<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,10,1,detail::liberal_expansion_policy>_><br>detail::vector_facade<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,detail::buffer_impl<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,4,1,detail::liberal_expansion_policy>_>::clear_region<br>memmove<br>operator_new[]<br>std::_Get_unwrapped_n<stdext::checked_array_iterator<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>*___ptr64>&___ptr64,__int64><br>std::unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_>::~unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_><br>wil::com_ptr_t<CMILCOMWeakRef,wil::err_returncode_policy>::com_ptr_t<CMILCOMWeakRef,wil::err_returncode_policy><br>wil::com_ptr_t<CMILCOMWeakRef,wil::err_returncode_policy>::~com_ptr_t<CMILCOMWeakRef,wil::err_returncode_policy><br>wil::details::in1diag3::Log_Hr<br>wil::details::in1diag3::Return_Hr<br>wil::operator!=<ICompositionSurfaceStatistics,wil::err_returncode_policy></details>|<details><summary>Expand for full list:<br>?Free@DefaultHeap@@SAXPEAX@Z<br>API-MS-WIN-CORE-HEAP-L1-1-0.DLL::GetProcessHeap<br>API-MS-WIN-CORE-HEAP-L1-1-0.DLL::HeapFree<br>API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::EnterCriticalSection<br>API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::LeaveCriticalSection<br>API-MS-WIN-CRT-RUNTIME-L1-1-0.DLL::_invalid_parameter_noinfo_noreturn<br>CBrushDrawListGenerator::GenerateDrawList<br>CDrawListBitmap::~CDrawListBitmap<br>CDrawListEntryBuilder::Render<br>CDrawListPrimitive0::`vector_deleting_destructor'<br>CDrawingContext::GetD2DInterpolationMode</summary>CDrawingContext::GetOpacity<br>CDxHandleBitmapRealization::GetSize`adjustor{256}'<br>CGDISectionBitmapRealization::AddRef`adjustor{392}'<br>CMILRefCountBaseT<IUnknownWeakRefSource,CResourceDeleter>::InternalRelease<br>CMILRefCountImpl::AddReference<br>CMILRefCountImpl::RemoveReference<br>CMilObjectDeleter::Delete<IBitmapResource><br>CMultiPrimitiveDrawListBrush::`scalar_deleting_destructor'<br>CRectanglesShape::GetRectangles<br>CSurfaceDrawListBrush::CSurfaceDrawListBrush<br>CSurfaceDrawListBrush::`scalar_deleting_destructor'<br>CSurfaceDrawListBrush::~CSurfaceDrawListBrush<br>CSurfaceShaderComposer::SurfaceShader::SurfaceShader<br>CThreadLocalObjectCache<CMultiPrimitiveDrawListBrush,CMultiPrimitiveDrawListBrush>::Alloc<br>CThreadLocalObjectCache<CSurfaceDrawListBrush,CSurfaceDrawListBrush>::Alloc<br>CThreadLocalObjectCache<CSurfaceDrawListBrush,CSurfaceDrawListBrush>::Free<br>CWatermarkStack<float,64,2,10>::Grow<br>IBitmapRealizationMethodsT<CDxHandleBitmapRealization,IGDIBitmapRealization>::GetSize`adjustor{320}'<br>InterpolationMode::FromD2D1InterpolationMode<br>MilInstrumentationCheckHR_MaybeFailFast<br>__security_check_cookie<br>_guard_dispatch_icall$thunk$10345483385596137414<br>detail::vector_facade<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,detail::buffer_impl<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,10,1,detail::liberal_expansion_policy>_>::~vector_facade<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,detail::buffer_impl<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,10,1,detail::liberal_expansion_policy>_><br>detail::vector_facade<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,detail::buffer_impl<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,4,1,detail::liberal_expansion_policy>_>::clear_region<br>memmove<br>operator_new[]<br>std::_Get_unwrapped_n<stdext::checked_array_iterator<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>*___ptr64>&___ptr64,__int64><br>std::unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_>::~unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_><br>wil::com_ptr_t<CMILCOMWeakRef,wil::err_returncode_policy>::com_ptr_t<CMILCOMWeakRef,wil::err_returncode_policy><br>wil::com_ptr_t<CMILCOMWeakRef,wil::err_returncode_policy>::~com_ptr_t<CMILCOMWeakRef,wil::err_returncode_policy><br>wil::details::in1diag3::Log_Hr<br>wil::details::in1diag3::Return_Hr<br>wil::operator!=<ICompositionSurfaceStatistics,wil::err_returncode_policy></details>|
|calling|CDrawingContext::DrawBitmapRealization<br>CDrawingContext::FillShapeWithBitmap|CDrawingContext::DrawBitmapRealization<br>CDrawingContext::FillShapeWithBitmap|
|paramcount|5|5|
|`address`|18009ff60|1800bb250|
|sig|long __thiscall FillShapeWithBitmapRealization(CDrawingContext * this, IBitmapRealization * param_1, CShape * param_2, MILMatrix3x2 * param_3, bool param_4)|long __thiscall FillShapeWithBitmapRealization(CDrawingContext * this, IBitmapRealization * param_1, CShape * param_2, MILMatrix3x2 * param_3, bool param_4)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### CDrawingContext::FillShapeWithBitmapRealization Called Diff


```diff
--- CDrawingContext::FillShapeWithBitmapRealization called
+++ CDrawingContext::FillShapeWithBitmapRealization called
@@ -20,0 +21 @@
+CSurfaceDrawListBrush::CSurfaceDrawListBrush
@@ -21,0 +23 @@
+CSurfaceDrawListBrush::~CSurfaceDrawListBrush
@@ -24,0 +27 @@
+CThreadLocalObjectCache<CSurfaceDrawListBrush,CSurfaceDrawListBrush>::Free
```


### CDrawingContext::FillShapeWithBitmapRealization Diff


```diff
--- CDrawingContext::FillShapeWithBitmapRealization
+++ CDrawingContext::FillShapeWithBitmapRealization
@@ -1,615 +1,581 @@
 
 /* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
    guard_dispatch_icall */
 /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
-/* WARNING: Removing unreachable block (ram,0x0001800a0ed4) */
-/* WARNING: Removing unreachable block (ram,0x0001800a08dd) */
-/* WARNING: Removing unreachable block (ram,0x0001800a08b3) */
-/* WARNING: Removing unreachable block (ram,0x0001800a01c1) */
-/* WARNING: Removing unreachable block (ram,0x0001800a01e6) */
-/* WARNING: Removing unreachable block (ram,0x0001800a0196) */
-/* WARNING: Removing unreachable block (ram,0x0001800a01bc) */
-/* WARNING: Removing unreachable block (ram,0x0001800a02b8) */
-/* WARNING: Removing unreachable block (ram,0x0001800a01ef) */
-/* WARNING: Removing unreachable block (ram,0x0001800a02aa) */
-/* WARNING: Removing unreachable block (ram,0x0001800a02b3) */
-/* WARNING: Removing unreachable block (ram,0x0001800a0209) */
-/* WARNING: Removing unreachable block (ram,0x0001800a020e) */
-/* WARNING: Removing unreachable block (ram,0x0001800a0210) */
-/* WARNING: Removing unreachable block (ram,0x0001800a08c6) */
-/* WARNING: Removing unreachable block (ram,0x0001800a02c4) */
-/* WARNING: Removing unreachable block (ram,0x0001800a056f) */
-/* WARNING: Removing unreachable block (ram,0x0001800a0590) */
-/* WARNING: Removing unreachable block (ram,0x0001800a059f) */
-/* WARNING: Removing unreachable block (ram,0x0001800a05a8) */
-/* WARNING: Removing unreachable block (ram,0x0001800a05ba) */
-/* WARNING: Removing unreachable block (ram,0x0001800a05c7) */
+/* WARNING: Removing unreachable block (ram,0x0001800bc149) */
+/* WARNING: Removing unreachable block (ram,0x0001800bbba8) */
+/* WARNING: Removing unreachable block (ram,0x0001800bbb7e) */
+/* WARNING: Removing unreachable block (ram,0x0001800bb4a3) */
+/* WARNING: Removing unreachable block (ram,0x0001800bb4c8) */
+/* WARNING: Removing unreachable block (ram,0x0001800bb477) */
+/* WARNING: Removing unreachable block (ram,0x0001800bb49e) */
+/* WARNING: Removing unreachable block (ram,0x0001800bb59e) */
+/* WARNING: Removing unreachable block (ram,0x0001800bb4d1) */
+/* WARNING: Removing unreachable block (ram,0x0001800bb590) */
+/* WARNING: Removing unreachable block (ram,0x0001800bb599) */
+/* WARNING: Removing unreachable block (ram,0x0001800bb4eb) */
+/* WARNING: Removing unreachable block (ram,0x0001800bb4f0) */
+/* WARNING: Removing unreachable block (ram,0x0001800bb4f2) */
+/* WARNING: Removing unreachable block (ram,0x0001800bbb91) */
+/* WARNING: Removing unreachable block (ram,0x0001800bb5aa) */
+/* WARNING: Removing unreachable block (ram,0x0001800bb8b2) */
+/* WARNING: Removing unreachable block (ram,0x0001800bb8d0) */
+/* WARNING: Removing unreachable block (ram,0x0001800bb8df) */
+/* WARNING: Removing unreachable block (ram,0x0001800bb8e8) */
+/* WARNING: Removing unreachable block (ram,0x0001800bb8fa) */
+/* WARNING: Removing unreachable block (ram,0x0001800bb907) */
+/* WARNING: Removing unreachable block (ram,0x0001800bb637) */
 /* public: long __cdecl CDrawingContext::FillShapeWithBitmapRealization(class IBitmapRealization *
    __ptr64,class CShape const & __ptr64,class MILMatrix3x2 const & __ptr64,bool) __ptr64 */
 
 long __thiscall
 CDrawingContext::FillShapeWithBitmapRealization
           (CDrawingContext *this,IBitmapRealization *param_1,CShape *param_2,MILMatrix3x2 *param_3,
           bool param_4)
 
 {
   CWatermarkStack<float,64,2,10> *this_00;
   int iVar1;
   code *pcVar2;
   longlong *plVar3;
-  CSurfaceDrawListBrush *pCVar4;
-  undefined1 auVar5 [16];
-  CMILRefCountImpl *this_01;
-  bool bVar6;
-  char cVar7;
-  long lVar8;
-  ulong uVar9;
-  D2D1_INTERPOLATION_MODE DVar10;
-  Enum EVar11;
-  __uint64 _Var12;
-  CMultiPrimitiveDrawListBrush *pCVar13;
+  undefined1 auVar4 [16];
+  CMILRefCountBaseT<IBitmapResource,CMilObjectDeleter> *this_01;
+  bool bVar5;
+  char cVar6;
+  long lVar7;
+  ulong uVar8;
+  D2D1_INTERPOLATION_MODE DVar9;
+  __uint64 _Var10;
+  CMultiPrimitiveDrawListBrush *pCVar11;
   void *_Dst;
   HANDLE hHeap;
-  CMultiPrimitiveDrawListBrush *pCVar14;
-  CSurfaceDrawListBrush *pCVar15;
-  longlong lVar16;
-  undefined8 *puVar17;
-  ulonglong uVar18;
-  ulonglong uVar19;
-  GenerateDrawListProperties *pGVar20;
-  CMultiPrimitiveDrawListBrush *pCVar21;
-  uint uVar22;
+  CSurfaceDrawListBrush *pCVar12;
+  CMultiPrimitiveDrawListBrush *pCVar13;
+  CSurfaceDrawListBrush *pCVar14;
+  longlong lVar15;
+  undefined8 *puVar16;
+  ulonglong uVar17;
+  GenerateDrawListProperties *pGVar18;
+  CMultiPrimitiveDrawListBrush *pCVar19;
   size_t _Size;
-  longlong *plVar23;
-  CDrawListEntryBuilder *pCVar24;
+  uint uVar20;
+  longlong *plVar21;
+  CDrawListEntryBuilder *pCVar22;
+  ulonglong uVar23;
+  float fVar24;
   float fVar25;
   float fVar26;
+  float fVar27;
   void *unaff_retaddr;
-  undefined1 auStackY_338 [32];
-  uint local_308;
-  undefined2 local_2f8;
-  CShape *local_2e8;
-  IBitmapRealization *local_2e0;
-  CMILRefCountImpl *local_2d8;
-  IBitmapRealization *local_2d0;
-  CMultiPrimitiveDrawListBrush *local_2c8;
-  ulonglong uStack_2c0;
-  ulonglong local_2b8;
-  ulonglong local_2a8;
-  MILMatrix3x2 *local_2a0;
-  CMILRefCountImpl *local_298;
-  IBitmapRealization *local_290;
-  bool local_288;
-  float local_280;
-  float fStack_27c;
-  undefined4 uStack_278;
-  float fStack_274;
-  float local_270;
-  undefined4 uStack_26c;
-  float fStack_268;
-  float fStack_264;
-  CMultiPrimitiveDrawListBrush *local_258;
-  undefined8 uStack_250;
-  ulonglong local_248;
-  ulonglong local_238;
-  CMultiPrimitiveDrawListBrush *pCStack_230;
-  undefined8 local_218;
-  undefined8 uStack_210;
-  undefined4 local_208;
-  undefined4 local_1bc;
-  undefined1 local_1b8;
-  CDrawingContext *local_1a8;
-  CSurfaceDrawListBrush *local_1a0;
-  unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_> local_198 [8];
-  unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_> local_190 [8];
+  undefined1 auStackY_308 [32];
+  uint local_2d8;
+  CShape *local_2b8;
+  IBitmapRealization *local_2b0;
+  CMultiPrimitiveDrawListBrush *local_2a8;
+  ulonglong uStack_2a0;
+  ulonglong local_298;
+  IBitmapRealization *local_288;
+  CMILRefCountBaseT<IBitmapResource,CMilObjectDeleter> *local_280;
+  MILMatrix3x2 *local_278;
+  undefined8 local_268;
+  longlong lStack_260;
+  ulonglong local_258;
+  float local_250;
+  float local_24c;
+  undefined4 local_248;
+  CMILRefCountBaseT<IBitmapResource,CMilObjectDeleter> *local_238;
+  IBitmapRealization *local_230;
+  bool local_228;
+  ulonglong local_220;
+  CMultiPrimitiveDrawListBrush *pCStack_218;
+  undefined8 local_208;
+  undefined8 uStack_200;
+  undefined4 local_1f8;
+  undefined4 local_1ac;
+  undefined1 local_1a8;
+  CDrawingContext *local_198;
+  CSurfaceDrawListBrush *local_190;
   unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_> local_188 [8];
-  ulonglong uStack_180;
-  undefined8 local_178;
-  undefined4 uStack_170;
-  undefined4 uStack_16c;
-  undefined4 uStack_168;
-  float fStack_164;
-  CMultiPrimitiveDrawListBrush *local_158;
-  CMultiPrimitiveDrawListBrush *local_150;
+  unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_> local_180 [8];
+  unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_> local_178 [8];
+  ulonglong uStack_170;
+  undefined8 local_168;
+  undefined4 uStack_160;
+  undefined4 uStack_15c;
+  undefined4 uStack_158;
+  float fStack_154;
   CMultiPrimitiveDrawListBrush *local_148;
-  CMultiPrimitiveDrawListBrush local_140 [64];
-  CMultiPrimitiveDrawListBrush local_100 [8];
-  undefined4 local_f8;
-  undefined4 uStack_f4;
-  undefined4 uStack_f0;
-  float fStack_ec;
-  ulonglong local_e8;
+  CMultiPrimitiveDrawListBrush *local_140;
+  CMultiPrimitiveDrawListBrush *local_138;
+  CMultiPrimitiveDrawListBrush local_130 [64];
+  CMultiPrimitiveDrawListBrush local_f0 [8];
+  undefined4 local_e8;
+  undefined4 uStack_e4;
+  undefined4 uStack_e0;
+  float fStack_dc;
+  ulonglong local_d8;
   
-  local_e8 = __security_cookie ^ (ulonglong)auStackY_338;
-  pCVar21 = (CMultiPrimitiveDrawListBrush *)0x0;
-  local_308 = 0;
-  local_2e8 = param_2;
-  local_2d0 = param_1;
-  local_2a0 = param_3;
+  pGVar18 = (GenerateDrawListProperties *)&local_208;
+  local_d8 = __security_cookie ^ (ulonglong)auStackY_308;
+  pCVar19 = (CMultiPrimitiveDrawListBrush *)0x0;
+  local_2d8 = 0;
+  local_2b8 = param_2;
+  local_2b0 = param_1;
+  local_278 = param_3;
   if (*(code **)(*(longlong *)param_2 + 0x40) == CRectanglesShape::IsRectangles) {
-    local_308 = (uint)(*(longlong *)(param_2 + 0x18) - *(longlong *)(param_2 + 0x10) >> 4);
+    local_2d8 = (uint)(*(longlong *)(param_2 + 0x18) - *(longlong *)(param_2 + 0x10) >> 4);
   }
   else {
-    cVar7 = (**(code **)(*(longlong *)param_2 + 0x40))(param_2);
-    if (cVar7 == '\0') {
+    cVar6 = (**(code **)(*(longlong *)param_2 + 0x40))(param_2);
+    if (cVar6 == '\0') {
       MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,-0x7ff8ffa9,0x8de,(void *)0x0);
       return -0x7ff8ffa9;
     }
   }
-  uVar22 = (uint)param_3;
-  local_2d8 = (CMILRefCountImpl *)0x0;
-  local_298 = (CMILRefCountImpl *)0x0;
-  local_2e0 = param_1;
-  local_290 = param_1;
+  local_280 = (CMILRefCountBaseT<IBitmapResource,CMilObjectDeleter> *)0x0;
+  local_238 = (CMILRefCountBaseT<IBitmapResource,CMilObjectDeleter> *)0x0;
+  local_288 = param_1;
+  local_230 = param_1;
   if (param_1 != (IBitmapRealization *)0x0) {
     pcVar2 = *(code **)(*(longlong *)param_1 + 8);
     if (pcVar2 == CMILRefCountImpl::AddReference) {
       LOCK();
       iVar1 = *(int *)param_1;
       *(int *)param_1 = *(int *)param_1 + 1;
       UNLOCK();
       if (*(int *)param_1 == 0 || SCARRY4(iVar1,1) != *(int *)param_1 < 0) {
-        uVar22 = 0x8007029c;
         wil::details::in1diag3::Log_Hr
                   (unaff_retaddr,0x18,"onecoreuap\\windows\\dwm\\common\\shared\\refcountbase.cpp",
                    -0x7ff8fd64);
       }
-      local_2e0 = local_290;
-      local_2d8 = local_298;
+      local_288 = local_230;
+      local_280 = local_238;
     }
     else if (pcVar2 == CGDISectionBitmapRealization::AddRef_adjustor_392__) {
       CGDISectionBitmapRealization::AddRef_adjustor_392__((CGDISectionBitmapRealization *)param_1);
     }
     else {
       (*pcVar2)();
     }
   }
-  uVar19 = (ulonglong)local_308;
-  local_288 = param_4;
-  local_158 = local_140;
-  local_150 = local_140;
-  local_148 = local_100;
-  if (uVar19 == 0) {
+  uVar17 = (ulonglong)local_2d8;
+  local_228 = param_4;
+  local_138 = local_f0;
+  local_148 = local_130;
+  local_140 = local_130;
+  if (uVar17 == 0) {
     detail::
     vector_facade<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,detail::buffer_impl<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,4,1,detail::liberal_expansion_policy>_>
     ::clear_region((vector_facade<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,detail::buffer_impl<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,4,1,detail::liberal_expansion_policy>_>
-                    *)&local_158,0,0);
+                    *)&local_148,0,0);
   }
   else {
-    if (4 < uVar19) {
-      local_2a8 = uVar19;
-      if (uVar19 < 7) {
-        local_2a8 = 6;
-      }
-      auVar5._8_8_ = 0;
-      auVar5._0_8_ = local_2a8;
-      _Var12 = SUB168(ZEXT816(0x10) * auVar5,0);
-      if (SUB168(ZEXT816(0x10) * auVar5,8) != 0) {
-        _Var12 = 0xffffffffffffffff;
-      }
-      pCVar13 = operator_new__(_Var12);
-      pCVar14 = local_158;
-      _Size = (longlong)local_150 - (longlong)local_158;
-      uStack_2c0 = 0;
-      local_2b8 = 0;
-      uStack_250 = 0;
-      local_248 = 0;
-      local_2c8 = pCVar13;
-      local_258 = pCVar13;
+    if (4 < uVar17) {
+      uVar23 = uVar17;
+      if (uVar17 < 7) {
+        uVar23 = 6;
+      }
+      auVar4._8_8_ = 0;
+      auVar4._0_8_ = uVar23;
+      _Var10 = SUB168(ZEXT816(0x10) * auVar4,0);
+      if (SUB168(ZEXT816(0x10) * auVar4,8) != 0) {
+        _Var10 = 0xffffffffffffffff;
+      }
+      pCVar11 = operator_new__(_Var10);
+      pCVar13 = local_148;
+      _Size = (longlong)local_140 - (longlong)local_148;
+      uStack_2a0 = 0;
+      local_298 = 0;
+      lStack_260 = 0;
+      local_258 = 0;
+      local_2a8 = pCVar11;
+      local_268 = pCVar11;
       _Dst = (void *)std::
                      _Get_unwrapped_n<stdext::checked_array_iterator<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>*___ptr64>&___ptr64,__int64>
                                ((checked_array_iterator<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>*___ptr64>
-                                 *)&local_258,(longlong)_Size >> 4);
-      memmove(_Dst,pCVar14,_Size);
-      pCVar14 = local_158;
-      if (local_158 == local_140) {
-        pCVar14 = pCVar21;
-      }
-      local_158 = pCVar13;
-      _Free_DefaultHeap__SAXPEAX_Z(pCVar14);
-      local_150 = local_158;
-      local_148 = local_158 + local_2a8 * 0x10;
-    }
-    local_248 = 0;
-    uVar18 = local_248;
-    local_2c8 = local_158;
-    uStack_2c0 = uVar19;
-    if (local_158 == (CMultiPrimitiveDrawListBrush *)0x0) {
-      local_248 = 0;
-      local_2b8 = local_248;
-      local_248 = uVar18;
-      local_150 = local_158;
+                                 *)&local_268,(longlong)_Size >> 4);
+      memmove(_Dst,pCVar13,_Size);
+      pCVar13 = local_148;
+      if (local_148 == local_130) {
+        pCVar13 = pCVar19;
+      }
+      local_148 = pCVar11;
+      _Free_DefaultHeap__SAXPEAX_Z(pCVar13);
+      local_140 = local_148;
+      local_138 = local_148 + uVar23 * 0x10;
+    }
+    local_258 = 0;
+    uVar23 = local_258;
+    local_2a8 = local_148;
+    uStack_2a0 = uVar17;
+    if (local_148 == (CMultiPrimitiveDrawListBrush *)0x0) {
+      local_258 = 0;
+      local_298 = local_258;
+      local_258 = uVar23;
+      local_140 = local_148;
                     /* WARNING: Subroutine does not return */
       _invalid_parameter_noinfo_noreturn();
     }
-    local_150 = local_158 + uVar19 * 0x10;
-    *(undefined8 *)local_158 = 0;
-    *(undefined8 *)(local_158 + 8) = 0;
-    pCVar14 = local_158;
-    pCVar13 = local_158 + 0x10;
-    for (uVar18 = uVar19 * 0x10 - 9 >> 3; param_1 = local_2d0, param_2 = local_2e8,
-        local_2b8 = uVar19, local_248 = uVar19, uVar18 != 0; uVar18 = uVar18 - 1) {
-      *(undefined8 *)pCVar13 = *(undefined8 *)pCVar14;
-      pCVar14 = pCVar14 + 8;
+    local_140 = local_148 + uVar17 * 0x10;
+    *(undefined8 *)local_148 = 0;
+    *(undefined8 *)(local_148 + 8) = 0;
+    pCVar13 = local_148;
+    pCVar11 = local_148 + 0x10;
+    for (uVar23 = uVar17 * 0x10 - 9 >> 3; param_1 = local_2b0, param_3 = local_278,
+        param_2 = local_2b8, local_298 = uVar17, local_258 = uVar17, uVar23 != 0;
+        uVar23 = uVar23 - 1) {
+      *(undefined8 *)pCVar11 = *(undefined8 *)pCVar13;
       pCVar13 = pCVar13 + 8;
+      pCVar11 = pCVar11 + 8;
     }
   }
   if (*(code **)(*(longlong *)param_2 + 0x50) == CRectanglesShape::GetRectangles) {
     CRectanglesShape::GetRectangles
               ((CRectanglesShape *)param_2,
                (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
-                *)local_158,local_308);
+                *)local_148,local_2d8);
   }
   else {
     (**(code **)(*(longlong *)param_2 + 0x50))();
   }
-  local_238 = (ulonglong)local_308;
-  pCStack_230 = local_158;
-  if ((local_158 == (CMultiPrimitiveDrawListBrush *)0x0) && (local_238 != 0)) {
+  local_220 = (ulonglong)local_2d8;
+  pCStack_218 = local_148;
+  if ((local_148 == (CMultiPrimitiveDrawListBrush *)0x0) && (local_220 != 0)) {
     (*(code *)`void_(__cdecl*&___ptr64___cdecl_gsl::details::get_terminate_handler(void))(void)'::
               __l2::handler)();
     pcVar2 = (code *)swi(3);
-    lVar8 = (*pcVar2)();
-    return lVar8;
-  }
-  pCVar14 = pCVar21;
-  pCVar13 = pCVar21;
+    lVar7 = (*pcVar2)();
+    return lVar7;
+  }
+  pCVar13 = pCVar19;
+  pCVar11 = pCVar19;
   if (param_1 != (IBitmapRealization *)0x0) {
     pcVar2 = *(code **)(*(longlong *)param_1 + 0x20);
     if (pcVar2 == IBitmapRealizationMethodsT<CDxHandleBitmapRealization,IGDIBitmapRealization>::
                   GetSize_adjustor_320__) {
-      puVar17 = (undefined8 *)
+      puVar16 = (undefined8 *)
                 IBitmapRealizationMethodsT<CDxHandleBitmapRealization,IGDIBitmapRealization>::
                 GetSize_adjustor_320__
                           ((IBitmapRealizationMethodsT<CDxHandleBitmapRealization,IGDIBitmapRealization>
                             *)param_1);
     }
     else if (pcVar2 == CDxHandleBitmapRealization::GetSize_adjustor_256__) {
-      puVar17 = (undefined8 *)
+      puVar16 = (undefined8 *)
                 CDxHandleBitmapRealization::GetSize_adjustor_256__
                           ((CDxHandleBitmapRealization *)param_1);
     }
     else {
-      puVar17 = (undefined8 *)(*pcVar2)();
-    }
-    pCVar14 = (CMultiPrimitiveDrawListBrush *)*puVar17;
-    pCVar13 = (CMultiPrimitiveDrawListBrush *)((ulonglong)*puVar17 >> 0x20);
-  }
-  uStack_278 = 0;
-  uStack_26c = 0;
-  fVar25 = 1.0 / (float)((ulonglong)pCVar14 & 0xffffffff);
-  fVar26 = 1.0 / (float)(longlong)pCVar13;
-  fStack_268 = 0.0 - fVar25 * 0.0;
-  fStack_264 = 0.0 - fVar26 * 0.0;
-  fStack_274 = fStack_268 * 0.0;
-  local_270 = fStack_264 * 0.0;
-  local_280 = *(float *)local_2a0 * fVar25 + *(float *)(local_2a0 + 4) * 0.0 + fStack_274;
-  fStack_27c = *(float *)(local_2a0 + 4) * fVar26 + *(float *)local_2a0 * 0.0 + local_270;
-  fStack_274 = *(float *)(local_2a0 + 8) * fVar25 + *(float *)(local_2a0 + 0xc) * 0.0 + fStack_274;
-  local_270 = *(float *)(local_2a0 + 0xc) * fVar26 + *(float *)(local_2a0 + 8) * 0.0 + local_270;
-  fStack_268 = *(float *)(local_2a0 + 0x10) * fVar25 + *(float *)(local_2a0 + 0x14) * 0.0 +
-               fStack_268;
-  fStack_264 = *(float *)(local_2a0 + 0x14) * fVar26 + *(float *)(local_2a0 + 0x10) * 0.0 +
-               fStack_264;
-  DVar10 = GetD2DInterpolationMode(this);
-  _Var12 = (__uint64)DVar10;
-  EVar11 = InterpolationMode::FromD2D1InterpolationMode(DVar10);
-  pCVar14 = CThreadLocalObjectCache<CSurfaceDrawListBrush,CSurfaceDrawListBrush>::Alloc(_Var12);
-  if (pCVar14 == (CMultiPrimitiveDrawListBrush *)0x0) {
-    lVar8 = -0x7ff8fff2;
+      puVar16 = (undefined8 *)(*pcVar2)();
+    }
+    pCVar13 = (CMultiPrimitiveDrawListBrush *)*puVar16;
+    pCVar11 = (CMultiPrimitiveDrawListBrush *)((ulonglong)*puVar16 >> 0x20);
+  }
+  local_248 = 0x3f800000;
+  fVar26 = 1.0 / (float)((ulonglong)pCVar13 & 0xffffffff);
+  fVar27 = 1.0 / (float)(longlong)pCVar11;
+  local_250 = 0.0 - fVar26 * 0.0;
+  local_24c = 0.0 - fVar27 * 0.0;
+  fVar25 = local_250 * 0.0;
+  fVar24 = local_24c * 0.0;
+  local_268 = (CMultiPrimitiveDrawListBrush *)
+              CONCAT44(*(float *)(param_3 + 4) * fVar27 + *(float *)param_3 * 0.0 + fVar24,
+                       *(float *)param_3 * fVar26 + *(float *)(param_3 + 4) * 0.0 + fVar25);
+  lStack_260 = (ulonglong)
+               (uint)(*(float *)(param_3 + 8) * fVar26 + *(float *)(param_3 + 0xc) * 0.0 + fVar25)
+               << 0x20;
+  local_258 = (ulonglong)
+              (uint)(*(float *)(param_3 + 0xc) * fVar27 + *(float *)(param_3 + 8) * 0.0 + fVar24);
+  local_250 = *(float *)(param_3 + 0x10) * fVar26 + *(float *)(param_3 + 0x14) * 0.0 + local_250;
+  local_24c = *(float *)(param_3 + 0x14) * fVar27 + *(float *)(param_3 + 0x10) * 0.0 + local_24c;
+  DVar9 = GetD2DInterpolationMode(this);
+  _Var10 = (__uint64)DVar9;
+  InterpolationMode::FromD2D1InterpolationMode(DVar9);
+  pCVar12 = CThreadLocalObjectCache<CSurfaceDrawListBrush,CSurfaceDrawListBrush>::Alloc(_Var10);
+  if (pCVar12 == (CSurfaceDrawListBrush *)0x0) {
+LAB_0:
+    lVar7 = -0x7ff8fff2;
     MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,-0x7ff8fff2,0x3a,(void *)0x0);
-    uVar22 = 0x351;
+    MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,-0x7ff8fff2,0x351,(void *)0x0);
   }
   else {
-    local_2f8 = CONCAT11(1,(char)EVar11);
-    *(longlong *)(pCVar14 + 8) = 0x3f800000;
-    *(undefined4 *)(pCVar14 + 0x10) = 0;
-    *(undefined8 *)(pCVar14 + 0x14) = 0x3f800000;
-    *(undefined4 *)(pCVar14 + 0x1c) = 0;
-    pCVar14[0x34] = (CMultiPrimitiveDrawListBrush)0x0;
-    *(undefined ***)pCVar14 = &CSurfaceDrawListBrush::_vftable_;
-    *(CMILRefCountImpl **)(pCVar14 + 0x38) = local_2d8;
-    if (local_2d8 != (CMILRefCountImpl *)0x0) {
-      if (*(code **)(*(longlong *)local_2d8 + 8) == CMILRefCountImpl::AddReference) {
-        CMILRefCountImpl::AddReference(local_2d8);
-      }
-      else {
-        (**(code **)(*(longlong *)local_2d8 + 8))();
-      }
-    }
-    *(IBitmapRealization **)(pCVar14 + 0x40) = local_2e0;
-    if (local_2e0 != (IBitmapRealization *)0x0) {
-      (**(code **)(*(longlong *)local_2e0 + 8))();
-    }
-    pCVar14[0x48] = (CMultiPrimitiveDrawListBrush)param_4;
-    *(undefined2 *)(pCVar14 + 0x50) = local_2f8;
-    pCVar14[0x52] = (CMultiPrimitiveDrawListBrush)0x1;
-    *(float *)(pCVar14 + 0x74) = 1.0;
-    *(ulonglong *)(pCVar14 + 0x54) = CONCAT44(fStack_27c,local_280);
-    *(ulonglong *)(pCVar14 + 0x5c) = CONCAT44(fStack_274,uStack_278);
-    *(ulonglong *)(pCVar14 + 100) = CONCAT44(uStack_26c,local_270);
-    *(ulonglong *)(pCVar14 + 0x6c) = CONCAT44(fStack_264,fStack_268);
-    *(undefined4 *)(pCVar14 + 0x90) = 0;
-    *(longlong *)(pCVar14 + 0x78) = -0x80000000800001;
-    *(longlong *)(pCVar14 + 0x80) = 0x7f7fffff7f7fffff;
-    pCVar14[0x34] = (CMultiPrimitiveDrawListBrush)0x1;
-    *(longlong *)(pCVar14 + 0x20) = 0;
-    *(longlong *)(pCVar14 + 0x28) = 0;
-    *(undefined4 *)(pCVar14 + 0x30) = 0;
-    local_f8 = 0x3f800000;
-    uStack_f4 = 0x3f800000;
-    uStack_f0 = 0x3f800000;
-    fStack_ec = GetOpacity(this);
-    local_1a8 = this;
-    CSurfaceShaderComposer::SurfaceShader::SurfaceShader((SurfaceShader *)&local_1a0);
-    CSurfaceShaderComposer::SurfaceShader::SurfaceShader((SurfaceShader *)local_198);
-    CSurfaceShaderComposer::SurfaceShader::SurfaceShader((SurfaceShader *)local_190);
+    uVar20 = (uint)&local_268;
+    pCVar13 = (CMultiPrimitiveDrawListBrush *)CSurfaceDrawListBrush::CSurfaceDrawListBrush(pCVar12);
+    if (pCVar13 == (CMultiPrimitiveDrawListBrush *)0x0) goto LAB_0;
+    pCVar13[0x34] = (CMultiPrimitiveDrawListBrush)0x1;
+    *(longlong *)(pCVar13 + 0x20) = 0;
+    *(longlong *)(pCVar13 + 0x28) = 0;
+    *(undefined4 *)(pCVar13 + 0x30) = 0;
+    local_e8 = 0x3f800000;
+    uStack_e4 = 0x3f800000;
+    uStack_e0 = 0x3f800000;
+    fStack_dc = GetOpacity(this);
+    local_198 = this;
+    CSurfaceShaderComposer::SurfaceShader::SurfaceShader((SurfaceShader *)&local_190);
     CSurfaceShaderComposer::SurfaceShader::SurfaceShader((SurfaceShader *)local_188);
-    uStack_180 = 0;
-    local_178 = 0;
-    uStack_170 = 0x3f800000;
-    uStack_16c = 0x3f800000;
-    uStack_168 = 0x3f800000;
-    fStack_164 = 1.0;
-    local_218 = 0;
-    uStack_210 = 0;
+    CSurfaceShaderComposer::SurfaceShader::SurfaceShader((SurfaceShader *)local_180);
+    CSurfaceShaderComposer::SurfaceShader::SurfaceShader((SurfaceShader *)local_178);
+    uStack_170 = 0;
+    local_168 = 0;
+    uStack_160 = 0x3f800000;
+    uStack_15c = 0x3f800000;
+    uStack_158 = 0x3f800000;
+    fStack_154 = 1.0;
     local_208 = 0;
-    local_1bc = 0x101;
-    local_1b8 = 0;
-    cVar7 = (**(code **)(*(longlong *)pCVar14 + 0x18))(pCVar14);
-    uVar19 = local_178 >> 0x20;
-    if (cVar7 != '\0') {
-      uVar19 = 0x80;
-    }
-    local_178 = CONCAT44((int)uVar19,(undefined4)local_178);
-    pCVar15 = CThreadLocalObjectCache<CMultiPrimitiveDrawListBrush,CMultiPrimitiveDrawListBrush>::
-              Alloc(uVar19);
-    pCVar4 = local_1a0;
-    if (pCVar15 == (CSurfaceDrawListBrush *)0x0) {
-      lVar8 = -0x7ff8fff2;
+    uStack_200 = 0;
+    local_1f8 = 0;
+    local_1ac = 0x101;
+    local_1a8 = 0;
+    cVar6 = (**(code **)(*(longlong *)pCVar13 + 0x18))(pCVar13);
+    uVar17 = local_168 >> 0x20;
+    if (cVar6 != '\0') {
+      uVar17 = 0x80;
+    }
+    local_168 = CONCAT44((int)uVar17,(undefined4)local_168);
+    pCVar14 = CThreadLocalObjectCache<CMultiPrimitiveDrawListBrush,CMultiPrimitiveDrawListBrush>::
+              Alloc(uVar17);
+    pCVar12 = local_190;
+    if (pCVar14 == (CSurfaceDrawListBrush *)0x0) {
+      lVar7 = -0x7ff8fff2;
       MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,-0x7ff8fff2,0x1f,(void *)0x0);
       MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,-0x7ff8fff2,0x378,(void *)0x0);
     }
     else {
-      *(undefined8 *)(pCVar15 + 8) = 0x3f800000;
-      *(undefined4 *)(pCVar15 + 0x10) = 0;
-      *(undefined8 *)(pCVar15 + 0x14) = 0x3f800000;
-      *(undefined4 *)(pCVar15 + 0x1c) = 0;
-      pCVar15[0x34] = (CSurfaceDrawListBrush)0x0;
-      pCVar15[0x40] = (CSurfaceDrawListBrush)0x0;
-      *(undefined ***)pCVar15 = &CMultiPrimitiveDrawListBrush::_vftable_;
-      *(CMultiPrimitiveDrawListBrush **)(pCVar15 + 0x48) = pCVar14;
-      *(ulonglong *)(pCVar15 + 0x50) = local_238;
-      *(CMultiPrimitiveDrawListBrush **)(pCVar15 + 0x58) = pCStack_230;
-      uStack_170 = local_f8;
-      uStack_16c = uStack_f4;
-      uStack_168 = uStack_f0;
-      fStack_164 = fStack_ec;
-      if (local_1a0 != (CSurfaceDrawListBrush *)0x0) {
-        pcVar2 = (code *)**(undefined8 **)local_1a0;
-        local_1a0 = pCVar15;
+      *(undefined8 *)(pCVar14 + 8) = 0x3f800000;
+      *(undefined4 *)(pCVar14 + 0x10) = 0;
+      *(undefined8 *)(pCVar14 + 0x14) = 0x3f800000;
+      *(undefined4 *)(pCVar14 + 0x1c) = 0;
+      pCVar14[0x34] = (CSurfaceDrawListBrush)0x0;
+      pCVar14[0x40] = (CSurfaceDrawListBrush)0x0;
+      *(undefined ***)pCVar14 = &CMultiPrimitiveDrawListBrush::_vftable_;
+      *(CMultiPrimitiveDrawListBrush **)(pCVar14 + 0x48) = pCVar13;
+      *(ulonglong *)(pCVar14 + 0x50) = local_220;
+      *(CMultiPrimitiveDrawListBrush **)(pCVar14 + 0x58) = pCStack_218;
+      uStack_160 = local_e8;
+      uStack_15c = uStack_e4;
+      uStack_158 = uStack_e0;
+      fStack_154 = fStack_dc;
+      if (local_190 != (CSurfaceDrawListBrush *)0x0) {
+        pcVar2 = (code *)**(undefined8 **)local_190;
+        local_190 = pCVar14;
         if (pcVar2 == CMultiPrimitiveDrawListBrush::_scalar_deleting_destructor_) {
           CMultiPrimitiveDrawListBrush::_scalar_deleting_destructor_
-                    ((CMultiPrimitiveDrawListBrush *)pCVar4,1);
-          pCVar15 = local_1a0;
+                    ((CMultiPrimitiveDrawListBrush *)pCVar12,1);
+          pCVar14 = local_190;
         }
         else if (pcVar2 == CSurfaceDrawListBrush::_scalar_deleting_destructor_) {
-          CSurfaceDrawListBrush::_scalar_deleting_destructor_(pCVar4,1);
-          pCVar15 = local_1a0;
+          CSurfaceDrawListBrush::_scalar_deleting_destructor_(pCVar12,1);
+          pCVar14 = local_190;
         }
         else if (pcVar2 == CDrawListPrimitive0::_vector_deleting_destructor_) {
-          CDrawListPrimitive0::_vector_deleting_destructor_((CDrawListPrimitive0 *)pCVar4,1);
-          pCVar15 = local_1a0;
+          CDrawListPrimitive0::_vector_deleting_destructor_((CDrawListPrimitive0 *)pCVar12,1);
+          pCVar14 = local_190;
         }
         else {
           (*pcVar2)();
-          pCVar15 = local_1a0;
-        }
-      }
-      local_1a0 = pCVar15;
-      if ((uint)uStack_180 < 2) {
-        uStack_180 = CONCAT44(uStack_180._4_4_,1);
-      }
-      pCVar24 = (CDrawListEntryBuilder *)(this + 0xd70);
-      pGVar20 = (GenerateDrawListProperties *)&local_218;
-      lVar8 = CBrushDrawListGenerator::GenerateDrawList
-                        ((CBrushDrawListGenerator *)&local_1a8,pGVar20,pCVar24);
-      pCVar14 = pCVar21;
-      if (lVar8 < 0) {
-        uVar22 = 0x380;
+          pCVar14 = local_190;
+        }
+      }
+      local_190 = pCVar14;
+      if ((uint)uStack_170 < 2) {
+        uStack_170 = CONCAT44(uStack_170._4_4_,1);
+      }
+      pCVar22 = (CDrawListEntryBuilder *)(this + 0xd70);
+      lVar7 = CBrushDrawListGenerator::GenerateDrawList
+                        ((CBrushDrawListGenerator *)&local_198,pGVar18,pCVar22);
+      pCVar13 = pCVar19;
+      if (lVar7 < 0) {
+        uVar20 = 0x380;
       }
       else {
         this_00 = (CWatermarkStack<float,64,2,10> *)(this + 0xc58);
         if ((*(int *)(this + 0xc60) != *(int *)(this + 0xc64)) ||
-           (lVar8 = CWatermarkStack<float,64,2,10>::Grow
-                              (this_00,(__uint64)pGVar20,(uint)pCVar24,uVar22,(void **)this_00),
-           -1 < lVar8)) {
+           (lVar7 = CWatermarkStack<float,64,2,10>::Grow
+                              (this_00,(__uint64)pGVar18,(uint)pCVar22,uVar20,(void **)this_00),
+           -1 < lVar7)) {
           *(undefined4 *)(*(longlong *)this_00 + (ulonglong)*(uint *)(this + 0xc60) * 4) =
                0x3f800000;
           *(int *)(this + 0xc60) = *(int *)(this + 0xc60) + 1;
-          uVar22 = *(uint *)(this + 0xc6c);
+          uVar20 = *(uint *)(this + 0xc6c);
           if (*(uint *)(this + 0xc6c) <= *(uint *)(this + 0xc60)) {
-            uVar22 = *(uint *)(this + 0xc60);
-          }
-          *(uint *)(this + 0xc6c) = uVar22;
-          lVar8 = CDrawListEntryBuilder::Render((CDrawListEntryBuilder *)(this + 0xd70),this);
-          if (lVar8 < 0) {
-            MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar8,0x386,(void *)0x0);
+            uVar20 = *(uint *)(this + 0xc60);
+          }
+          *(uint *)(this + 0xc6c) = uVar20;
+          lVar7 = CDrawListEntryBuilder::Render((CDrawListEntryBuilder *)(this + 0xd70),this);
+          if (lVar7 < 0) {
+            MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar7,0x386,(void *)0x0);
           }
           if (*(int *)(this + 0xc60) != 0) {
             *(int *)(this + 0xc60) = *(int *)(this + 0xc60) + -1;
           }
-          goto LAB_0;
+          goto LAB_1;
         }
         wil::details::in1diag3::Return_Hr
                   (unaff_retaddr,0x83,
-                   "onecoreuap\\windows\\DWM\\dwmcore\\common\\WatermarkStack.inl",lVar8);
-        uVar22 = 899;
-      }
-      MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar8,uVar22,(void *)0x0);
-    }
-LAB_0:
+                   "onecoreuap\\windows\\DWM\\dwmcore\\common\\WatermarkStack.inl",lVar7);
+        uVar20 = 899;
+      }
+      MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar7,uVar20,(void *)0x0);
+    }
+LAB_1:
     plVar3 = *(longlong **)(this + 0xde8);
-    for (plVar23 = *(longlong **)(this + 0xde0); plVar23 != plVar3; plVar23 = plVar23 + 1) {
-      if ((longlong *)*plVar23 != (longlong *)0x0) {
-        (**(code **)(*(longlong *)*plVar23 + 8))();
-        *plVar23 = 0;
-      }
-    }
-    lVar16 = *(longlong *)(this + 0xde8) - *(longlong *)(this + 0xde0) >> 3;
-    if (lVar16 != 0) {
-      *(longlong *)(this + 0xde8) = *(longlong *)(this + 0xde8) + lVar16 * -8;
+    for (plVar21 = *(longlong **)(this + 0xde0); plVar21 != plVar3; plVar21 = plVar21 + 1) {
+      if ((longlong *)*plVar21 != (longlong *)0x0) {
+        (**(code **)(*(longlong *)*plVar21 + 8))();
+        *plVar21 = 0;
+      }
+    }
+    lVar15 = *(longlong *)(this + 0xde8) - *(longlong *)(this + 0xde0) >> 3;
+    if (lVar15 != 0) {
+      *(longlong *)(this + 0xde8) = *(longlong *)(this + 0xde8) + lVar15 * -8;
     }
     this[0x1ef8] = (CDrawingContext)0x0;
-    plVar23 = *(longlong **)(this + 0xdc0);
+    plVar21 = *(longlong **)(this + 0xdc0);
     *(undefined8 *)(this + 0xdc0) = 0;
-    if (plVar23 != (longlong *)0x0) {
-      (**(code **)(*plVar23 + 8))();
-    }
-    plVar23 = *(longlong **)(this + 0xdc8);
+    if (plVar21 != (longlong *)0x0) {
+      (**(code **)(*plVar21 + 8))();
+    }
+    plVar21 = *(longlong **)(this + 0xdc8);
     *(undefined8 *)(this + 0xdc8) = 0;
-    if (plVar23 != (longlong *)0x0) {
-      (**(code **)(*plVar23 + 8))();
-    }
-    plVar23 = *(longlong **)(this + 0xdd0);
+    if (plVar21 != (longlong *)0x0) {
+      (**(code **)(*plVar21 + 8))();
+    }
+    plVar21 = *(longlong **)(this + 0xdd0);
     *(undefined8 *)(this + 0xdd0) = 0;
-    if (plVar23 != (longlong *)0x0) {
-      (**(code **)(*plVar23 + 8))();
-    }
-    plVar23 = *(longlong **)(this + 0xdd8);
+    if (plVar21 != (longlong *)0x0) {
+      (**(code **)(*plVar21 + 8))();
+    }
+    plVar21 = *(longlong **)(this + 0xdd8);
     *(undefined8 *)(this + 0xdd8) = 0;
-    if (plVar23 != (longlong *)0x0) {
-      (**(code **)(*plVar23 + 8))();
-    }
-    uStack_170 = 0x3f800000;
-    uStack_16c = 0x3f800000;
-    uStack_168 = 0x3f800000;
-    fStack_164 = 1.0;
-    local_178 = local_178 & 0xffffffff;
-    if ((uint)uStack_180 != 0) {
+    if (plVar21 != (longlong *)0x0) {
+      (**(code **)(*plVar21 + 8))();
+    }
+    uStack_160 = 0x3f800000;
+    uStack_15c = 0x3f800000;
+    uStack_158 = 0x3f800000;
+    fStack_154 = 1.0;
+    local_168 = local_168 & 0xffffffff;
+    if ((uint)uStack_170 != 0) {
       do {
-        pCVar4 = *(CSurfaceDrawListBrush **)(local_198 + (longlong)pCVar21 * 8 + -8);
-        *(undefined8 *)(local_198 + (longlong)pCVar21 * 8 + -8) = 0;
-        if (pCVar4 != (CSurfaceDrawListBrush *)0x0) {
-          pcVar2 = (code *)**(undefined8 **)pCVar4;
+        pCVar12 = *(CSurfaceDrawListBrush **)(local_188 + (longlong)pCVar19 * 8 + -8);
+        *(undefined8 *)(local_188 + (longlong)pCVar19 * 8 + -8) = 0;
+        if (pCVar12 != (CSurfaceDrawListBrush *)0x0) {
+          pcVar2 = (code *)**(undefined8 **)pCVar12;
           if (pcVar2 == CMultiPrimitiveDrawListBrush::_scalar_deleting_destructor_) {
             CMultiPrimitiveDrawListBrush::_scalar_deleting_destructor_
-                      ((CMultiPrimitiveDrawListBrush *)pCVar4,1);
+                      ((CMultiPrimitiveDrawListBrush *)pCVar12,1);
           }
           else if (pcVar2 == CSurfaceDrawListBrush::_scalar_deleting_destructor_) {
-            CSurfaceDrawListBrush::_scalar_deleting_destructor_(pCVar4,1);
+            CSurfaceDrawListBrush::_scalar_deleting_destructor_(pCVar12,1);
           }
           else if (pcVar2 == CDrawListPrimitive0::_vector_deleting_destructor_) {
-            CDrawListPrimitive0::_vector_deleting_destructor_((CDrawListPrimitive0 *)pCVar4,1);
+            CDrawListPrimitive0::_vector_deleting_destructor_((CDrawListPrimitive0 *)pCVar12,1);
           }
           else {
             (*pcVar2)();
           }
         }
-        uVar22 = (int)pCVar21 + 1;
-        pCVar21 = (CMultiPrimitiveDrawListBrush *)(ulonglong)uVar22;
-      } while (uVar22 < (uint)uStack_180);
-    }
-    uStack_180 = uStack_180 & 0xffffffff00000000;
+        uVar20 = (int)pCVar19 + 1;
+        pCVar19 = (CMultiPrimitiveDrawListBrush *)(ulonglong)uVar20;
+      } while (uVar20 < (uint)uStack_170);
+    }
+    uStack_170 = uStack_170 & 0xffffffff00000000;
+    std::unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_>::
+    ~unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_>(local_178);
+    std::unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_>::
+    ~unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_>(local_180);
     std::unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_>::
     ~unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_>(local_188);
     std::unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_>::
-    ~unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_>(local_190);
-    std::unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_>::
-    ~unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_>(local_198);
-    std::unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_>::
     ~unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_>
-              ((unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_> *)&local_1a0);
-    if (pCVar14 != (CMultiPrimitiveDrawListBrush *)0x0) {
-      pcVar2 = (code *)**(undefined8 **)pCVar14;
+              ((unique_ptr<CDrawListBrush,std::default_delete<CDrawListBrush>_> *)&local_190);
+    if (pCVar13 != (CMultiPrimitiveDrawListBrush *)0x0) {
+      pcVar2 = (code *)**(undefined8 **)pCVar13;
       if (pcVar2 == CMultiPrimitiveDrawListBrush::_scalar_deleting_destructor_) {
-        CMultiPrimitiveDrawListBrush::_scalar_deleting_destructor_(pCVar14,1);
+        CMultiPrimitiveDrawListBrush::_scalar_deleting_destructor_(pCVar13,1);
       }
       else if (pcVar2 == CSurfaceDrawListBrush::_scalar_deleting_destructor_) {
-        CSurfaceDrawListBrush::_scalar_deleting_destructor_((CSurfaceDrawListBrush *)pCVar14,1);
+        CSurfaceDrawListBrush::_scalar_deleting_destructor_((CSurfaceDrawListBrush *)pCVar13,1);
       }
       else if (pcVar2 == CDrawListPrimitive0::_vector_deleting_destructor_) {
-        CDrawListPrimitive0::_vector_deleting_destructor_((CDrawListPrimitive0 *)pCVar14,1);
+        CDrawListPrimitive0::_vector_deleting_destructor_((CDrawListPrimitive0 *)pCVar13,1);
       }
       else {
         (*pcVar2)();
       }
     }
-    pCVar21 = local_158;
-    if (-1 < lVar8) {
-      if (-1 < lVar8) {
-        lVar16 = (longlong)local_150 - (longlong)local_158 >> 4;
-        if (lVar16 != 0) {
-          local_150 = local_150 + lVar16 * -0x10;
-        }
-        local_158 = (CMultiPrimitiveDrawListBrush *)0x0;
-        if ((pCVar21 != local_140) && (pCVar21 != (CMultiPrimitiveDrawListBrush *)0x0)) {
-          hHeap = GetProcessHeap();
-          HeapFree(hHeap,0,pCVar21);
-        }
-        if (local_2e0 != (IBitmapRealization *)0x0) {
-          (**(code **)(*(longlong *)local_2e0 + 0x10))();
-        }
-        this_01 = local_2d8;
-        if (local_2d8 == (CMILRefCountImpl *)0x0) {
-          return lVar8;
-        }
-        pcVar2 = *(code **)(*(longlong *)local_2d8 + 0x10);
-        if (pcVar2 != CMILRefCountBaseT<IBitmapResource,CMilObjectDeleter>::InternalRelease) {
-          if (pcVar2 == CMILCOMBaseWeakRefSource<CResourceDeleter>::InternalRelease) {
-            wil::com_ptr_t<CMILCOMWeakRef,wil::err_returncode_policy>::
-            com_ptr_t<CMILCOMWeakRef,wil::err_returncode_policy>
-                      ((com_ptr_t<CMILCOMWeakRef,wil::err_returncode_policy> *)&local_2e8,
-                       *(CMILCOMWeakRef **)(local_2d8 + 0x10));
-            bVar6 = wil::operator!=<ICompositionSurfaceStatistics,wil::err_returncode_policy>
-                              (&local_2e8,0);
-            if (bVar6) {
-              EnterCriticalSection((LPCRITICAL_SECTION)(local_2e8 + 0x10));
-            }
-            CMILRefCountBaseT<IUnknownWeakRefSource,CResourceDeleter>::InternalRelease
-                      ((CMILRefCountBaseT<IUnknownWeakRefSource,CResourceDeleter> *)this_01);
-            bVar6 = wil::operator!=<ICompositionSurfaceStatistics,wil::err_returncode_policy>
-                              (&local_2e8,0);
-            if (bVar6) {
-              LeaveCriticalSection((LPCRITICAL_SECTION)(local_2e8 + 0x10));
-            }
-            wil::com_ptr_t<CMILCOMWeakRef,wil::err_returncode_policy>::
-            ~com_ptr_t<CMILCOMWeakRef,wil::err_returncode_policy>
-                      ((com_ptr_t<CMILCOMWeakRef,wil::err_returncode_policy> *)&local_2e8);
-            return lVar8;
-          }
-          (*pcVar2)(local_2d8);
-          return lVar8;
-        }
-        uVar9 = CMILRefCountImpl::RemoveReference(local_2d8 + 8);
-        if (uVar9 != 0) {
-          return lVar8;
-        }
-        CMILRefCountImpl::AddReference(this_01 + 8);
-        (**(code **)(*(longlong *)this_01 + 0x50))(this_01);
-        uVar9 = CMILRefCountImpl::RemoveReference(this_01 + 8);
-        if (uVar9 != 0) {
-          return lVar8;
-        }
-        CMILRefCountImpl::RemoveReference(this_01 + 8);
-        CMilObjectDeleter::Delete<IBitmapResource>
-                  ((CMILRefCountBaseT<IBitmapResource,CMilObjectDeleter> *)this_01);
-        return lVar8;
-      }
-      goto LAB_1;
-    }
-    uVar22 = 0x35c;
-  }
-  MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar8,uVar22,(void *)0x0);
-LAB_1:
-  MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar8,0x8da,(void *)0x0);
+    if (lVar7 < 0) {
+      MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar7,0x35c,(void *)0x0);
+      goto LAB_2;
+    }
+  }
+  pCVar19 = local_148;
+  if (-1 < lVar7) {
+    lVar15 = (longlong)local_140 - (longlong)local_148 >> 4;
+    if (lVar15 != 0) {
+      local_140 = local_140 + lVar15 * -0x10;
+    }
+    local_148 = (CMultiPrimitiveDrawListBrush *)0x0;
+    if ((pCVar19 != local_130) && (pCVar19 != (CMultiPrimitiveDrawListBrush *)0x0)) {
+      hHeap = GetProcessHeap();
+      HeapFree(hHeap,0,pCVar19);
+    }
+    if (local_288 != (IBitmapRealization *)0x0) {
+      (**(code **)(*(longlong *)local_288 + 0x10))();
+    }
+    this_01 = local_280;
+    if (local_280 == (CMILRefCountBaseT<IBitmapResource,CMilObjectDeleter> *)0x0) {
+      return lVar7;
+    }
+    pcVar2 = *(code **)(*(longlong *)local_280 + 0x10);
+    if (pcVar2 != CMILRefCountBaseT<IBitmapResource,CMilObjectDeleter>::InternalRelease) {
+      if (pcVar2 == CMILCOMBaseWeakRefSource<CResourceDeleter>::InternalRelease) {
+        wil::com_ptr_t<CMILCOMWeakRef,wil::err_returncode_policy>::
+        com_ptr_t<CMILCOMWeakRef,wil::err_returncode_policy>
+                  ((com_ptr_t<CMILCOMWeakRef,wil::err_returncode_policy> *)&local_2b8,
+                   *(CMILCOMWeakRef **)(local_280 + 0x10));
+        bVar5 = wil::operator!=<ICompositionSurfaceStatistics,wil::err_returncode_policy>
+                          (&local_2b8,0);
+        if (bVar5) {
+          EnterCriticalSection((LPCRITICAL_SECTION)(local_2b8 + 0x10));
+        }
+        CMILRefCountBaseT<IUnknownWeakRefSource,CResourceDeleter>::InternalRelease
+                  ((CMILRefCountBaseT<IUnknownWeakRefSource,CResourceDeleter> *)this_01);
+        bVar5 = wil::operator!=<ICompositionSurfaceStatistics,wil::err_returncode_policy>
+                          (&local_2b8,0);
+        if (bVar5) {
+          LeaveCriticalSection((LPCRITICAL_SECTION)(local_2b8 + 0x10));
+        }
+        wil::com_ptr_t<CMILCOMWeakRef,wil::err_returncode_policy>::
+        ~com_ptr_t<CMILCOMWeakRef,wil::err_returncode_policy>
+                  ((com_ptr_t<CMILCOMWeakRef,wil::err_returncode_policy> *)&local_2b8);
+        return lVar7;
+      }
+      (*pcVar2)(local_280);
+      return lVar7;
+    }
+    uVar8 = CMILRefCountImpl::RemoveReference((CMILRefCountImpl *)(local_280 + 8));
+    if (uVar8 != 0) {
+      return lVar7;
+    }
+    CMILRefCountImpl::AddReference((CMILRefCountImpl *)(this_01 + 8));
+    (**(code **)(*(longlong *)this_01 + 0x50))(this_01);
+    uVar8 = CMILRefCountImpl::RemoveReference((CMILRefCountImpl *)(this_01 + 8));
+    if (uVar8 != 0) {
+      return lVar7;
+    }
+    CMILRefCountImpl::RemoveReference((CMILRefCountImpl *)(this_01 + 8));
+    CMilObjectDeleter::Delete<IBitmapResource>(this_01);
+    return lVar7;
+  }
+LAB_2:
+  MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar7,0x8da,(void *)0x0);
   detail::
   vector_facade<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,detail::buffer_impl<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,10,1,detail::liberal_expansion_policy>_>
   ::
   ~vector_facade<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,detail::buffer_impl<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,10,1,detail::liberal_expansion_policy>_>
             ((vector_facade<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,detail::buffer_impl<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,10,1,detail::liberal_expansion_policy>_>
-              *)&local_158);
-  CDrawListBitmap::~CDrawListBitmap((CDrawListBitmap *)&local_298);
-  return lVar8;
+              *)&local_148);
+  CDrawListBitmap::~CDrawListBitmap((CDrawListBitmap *)&local_238);
+  return lVar7;
 }
 

```


## COverlayContext::Reset

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.66|
|i_ratio|0.36|
|m_ratio|0.93|
|b_ratio|0.69|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|Reset|Reset|
|fullname|COverlayContext::Reset|COverlayContext::Reset|
|refcount|5|5|
|`length`|190|217|
|`called`|CDirectFlipInfo::Reset<br>COverlayContext::ClearDirectFlip<br>COverlayContext::DisableHardwareCursor<br>_guard_dispatch_icall$thunk$10345483385596137414<br>detail::vector_facade<COverlayContext::OverlayPlaneInfo,detail::buffer_impl<COverlayContext::OverlayPlaneInfo,16,1,detail::liberal_expansion_policy>_>::clear|CDirectFlipInfo::Reset<br>COverlayContext::ClearDirectFlip<br>COverlayContext::ClearHardwareCursor<br>_guard_dispatch_icall$thunk$10345483385596137414<br>detail::vector_facade<COverlayContext::OverlayPlaneInfo,detail::buffer_impl<COverlayContext::OverlayPlaneInfo,16,1,detail::liberal_expansion_policy>_>::clear<br>wil::details::FeatureImpl<__WilFeatureTraits_Feature_DesktopDWMCursor>::__private_IsEnabled|
|calling|CDDisplayRenderTarget::ReleaseSwapChain<br>CLegacyRenderTarget::ReleaseSwapChain<br>COverlayContext::ComputeOverlayConfiguration<br>COverlayContext::~COverlayContext|CDDisplayRenderTarget::ReleaseSwapChain<br>CLegacyRenderTarget::ReleaseSwapChain<br>COverlayContext::ComputeOverlayConfiguration<br>COverlayContext::~COverlayContext|
|paramcount|1|1|
|`address`|180008318|1801890fc|
|sig|void __thiscall Reset(COverlayContext * this)|void __thiscall Reset(COverlayContext * this)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### COverlayContext::Reset Called Diff


```diff
--- COverlayContext::Reset called
+++ COverlayContext::Reset called
@@ -3 +3 @@
-COverlayContext::DisableHardwareCursor
+COverlayContext::ClearHardwareCursor
@@ -5,0 +6 @@
+wil::details::FeatureImpl<__WilFeatureTraits_Feature_DesktopDWMCursor>::__private_IsEnabled
```


### COverlayContext::Reset Diff


```diff
--- COverlayContext::Reset
+++ COverlayContext::Reset
@@ -1,39 +1,48 @@
 
 /* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
    guard_dispatch_icall */
 /* public: void __cdecl COverlayContext::Reset(void) __ptr64 */
 
 void __thiscall COverlayContext::Reset(COverlayContext *this)
 
 {
   longlong lVar1;
-  longlong lVar2;
+  bool bVar2;
+  longlong lVar3;
   
   lVar1 = *(longlong *)(this + 0x3190);
-  for (lVar2 = *(longlong *)(this + 0x3188); lVar2 != lVar1; lVar2 = lVar2 + 0x188) {
-    (**(code **)(**(longlong **)(lVar2 + 0x10) + 0x120))
-              (*(longlong **)(lVar2 + 0x10),*(undefined8 *)(lVar2 + 0x18));
+  for (lVar3 = *(longlong *)(this + 0x3188); lVar3 != lVar1; lVar3 = lVar3 + 0x188) {
+    (**(code **)(**(longlong **)(lVar3 + 0x10) + 0x120))
+              (*(longlong **)(lVar3 + 0x10),*(undefined8 *)(lVar3 + 0x18));
   }
   detail::
   vector_facade<COverlayContext::OverlayPlaneInfo,detail::buffer_impl<COverlayContext::OverlayPlaneInfo,16,1,detail::liberal_expansion_policy>_>
   ::clear((vector_facade<COverlayContext::OverlayPlaneInfo,detail::buffer_impl<COverlayContext::OverlayPlaneInfo,16,1,detail::liberal_expansion_policy>_>
            *)(this + 0x58));
   detail::
   vector_facade<COverlayContext::OverlayPlaneInfo,detail::buffer_impl<COverlayContext::OverlayPlaneInfo,16,1,detail::liberal_expansion_policy>_>
   ::clear((vector_facade<COverlayContext::OverlayPlaneInfo,detail::buffer_impl<COverlayContext::OverlayPlaneInfo,16,1,detail::liberal_expansion_policy>_>
            *)(this + 0x18f0));
   detail::
   vector_facade<COverlayContext::OverlayPlaneInfo,detail::buffer_impl<COverlayContext::OverlayPlaneInfo,16,1,detail::liberal_expansion_policy>_>
   ::clear((vector_facade<COverlayContext::OverlayPlaneInfo,detail::buffer_impl<COverlayContext::OverlayPlaneInfo,16,1,detail::liberal_expansion_policy>_>
            *)(this + 0x3188));
-  DisableHardwareCursor(this);
+  bVar2 = wil::details::FeatureImpl<__WilFeatureTraits_Feature_DesktopDWMCursor>::
+          __private_IsEnabled((FeatureImpl<__WilFeatureTraits_Feature_DesktopDWMCursor> *)
+                              &`private:_static_class_wil::details::FeatureImpl<__WilFeatureTraits_Feature_DesktopDWMCursor>&___ptr64___cdecl_wil::Feature<__WilFeatureTraits_Feature_DesktopDWMCursor>::GetImpl(void)'
+                               ::__l2::impl);
+  if (bVar2) {
+    ClearHardwareCursor(this);
+    *(undefined8 *)(this + 0x4b78) = 0;
+    *(undefined8 *)(this + 0x4b70) = 0;
+  }
   *(undefined8 *)(this + 0x4b10) = 0;
   *(undefined2 *)(this + 0x4a90) = 0;
   *(undefined2 *)(this + 0x4b08) = 0;
-  this[0x4bf8] = (COverlayContext)0x0;
-  CDirectFlipInfo::Reset((CDirectFlipInfo *)(this + 0x4b40));
+  this[0x4c81] = (COverlayContext)0x0;
+  CDirectFlipInfo::Reset((CDirectFlipInfo *)(this + 0x4bc8));
   ClearDirectFlip(this);
-  this[0x4bf7] = (COverlayContext)0x0;
+  this[0x4c80] = (COverlayContext)0x0;
   return;
 }
 

```


## COverlayContext::BeginOverlayCandidateCollection

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.22|
|i_ratio|0.18|
|m_ratio|0.96|
|b_ratio|0.37|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|BeginOverlayCandidateCollection|BeginOverlayCandidateCollection|
|fullname|COverlayContext::BeginOverlayCandidateCollection|COverlayContext::BeginOverlayCandidateCollection|
|refcount|2|2|
|`length`|1384|1254|
|`called`|<details><summary>Expand for full list:<br>CCursorVisual::GetCursorShapeBounds<br>CMILMatrix::Is2DAxisAlignedPreserving<br>COverlayContext::GetMonitorTransform<br>COverlayContext::HasRevokablePlanes<br>COverlayContext::OverlayPlaneInfo::GetLocalClipRect<br>CRegion::AddRectangle<br>FastRegion::CRegion::CRegion<br>FastRegion::CRegion::FreeMemory<br>FastRegion::Internal::CRgnData::Intersects<br>GetCurrentFrameId<br>McTemplateU0dd_EventWriteTransfer</summary>PixelAlign<br>TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::IsEmpty<br>__security_check_cookie<br>_guard_dispatch_icall$thunk$10345483385596137414<br>detail::vector_facade<COverlayContext::OverlayPlaneInfo,detail::buffer_impl<COverlayContext::OverlayPlaneInfo,16,1,detail::liberal_expansion_policy>_>::clear<br>wil::details::FeatureImpl<__WilFeatureTraits_Feature_ComposedFlipPerf>::__private_IsEnabled<br>wil::details::FeatureImpl<__WilFeatureTraits_Feature_DWM_MPO_Enhancement>::__private_IsEnabled</details>|<details><summary>Expand for full list:<br>CMILMatrix::Is2DAxisAlignedPreserving<br>COverlayContext::GetCursorBounds<br>COverlayContext::GetMonitorTransform<br>COverlayContext::HasRevokablePlanes<br>COverlayContext::OverlayPlaneInfo::GetLocalClipRect<br>CRegion::AddRectangle<br>FastRegion::CRegion::CRegion<br>FastRegion::CRegion::FreeMemory<br>FastRegion::Internal::CRgnData::Intersects<br>GetCurrentFrameId<br>McTemplateU0dd_EventWriteTransfer</summary>PixelAlign<br>TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::IsEmpty<br>__security_check_cookie<br>_guard_dispatch_icall$thunk$10345483385596137414<br>detail::vector_facade<COverlayContext::OverlayPlaneInfo,detail::buffer_impl<COverlayContext::OverlayPlaneInfo,16,1,detail::liberal_expansion_policy>_>::clear<br>wil::details::FeatureImpl<__WilFeatureTraits_Feature_ComposedFlipPerf>::__private_IsEnabled<br>wil::details::FeatureImpl<__WilFeatureTraits_Feature_ContentOnTop>::__private_IsEnabled<br>wil::details::FeatureImpl<__WilFeatureTraits_Feature_DWM_MPO_Enhancement>::__private_IsEnabled<br>wil::details::FeatureImpl<__WilFeatureTraits_Feature_DesktopDWMCursor>::__private_IsEnabled</details>|
|calling|COcclusionContext::Compute|COcclusionContext::Compute|
|paramcount|3|3|
|`address`|18023552c|180231dbc|
|sig|bool __thiscall BeginOverlayCandidateCollection(COverlayContext * this, CRegion * param_1, CRegion * param_2)|bool __thiscall BeginOverlayCandidateCollection(COverlayContext * this, CRegion * param_1, CRegion * param_2)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### COverlayContext::BeginOverlayCandidateCollection Called Diff


```diff
--- COverlayContext::BeginOverlayCandidateCollection called
+++ COverlayContext::BeginOverlayCandidateCollection called
@@ -1 +0,0 @@
-CCursorVisual::GetCursorShapeBounds
@@ -2,0 +2 @@
+COverlayContext::GetCursorBounds
@@ -17,0 +18 @@
+wil::details::FeatureImpl<__WilFeatureTraits_Feature_ContentOnTop>::__private_IsEnabled
@@ -18,0 +20 @@
+wil::details::FeatureImpl<__WilFeatureTraits_Feature_DesktopDWMCursor>::__private_IsEnabled
```


### COverlayContext::BeginOverlayCandidateCollection Diff


```diff
--- COverlayContext::BeginOverlayCandidateCollection
+++ COverlayContext::BeginOverlayCandidateCollection
@@ -1,255 +1,239 @@
 
 /* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
    guard_dispatch_icall */
 /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
 /* public: bool __cdecl COverlayContext::BeginOverlayCandidateCollection(class CRegion const *
    __ptr64,class CRegion * __ptr64) __ptr64 */
 
 bool __thiscall
 COverlayContext::BeginOverlayCandidateCollection
           (COverlayContext *this,CRegion *param_1,CRegion *param_2)
 
 {
-  COverlayContext *pCVar1;
-  __uint64 _Var2;
+  __uint64 _Var1;
   CRegion *this_00;
   CRegion *this_01;
+  CMonitorTransform *pCVar2;
   bool bVar3;
   char cVar4;
-  COverlayContext CVar5;
-  char cVar6;
-  CMonitorTransform *pCVar7;
-  longlong lVar8;
-  __uint64 _Var9;
+  char cVar5;
+  COverlayContext CVar6;
+  char cVar7;
+  CMonitorTransform *pCVar8;
+  longlong lVar9;
   tagRECT *ptVar10;
-  OverlayPlaneInfo *pOVar11;
+  __uint64 _Var11;
   OverlayPlaneInfo *pOVar12;
-  COverlayContext CVar13;
-  COverlayContext CVar14;
+  OverlayPlaneInfo *pOVar13;
+  CMonitorTransform CVar14;
   undefined4 uVar15;
   uint uVar16;
-  undefined1 auStack_128 [32];
-  char local_108;
-  char local_107;
-  char local_106;
-  __uint64 local_100;
-  CRegion *local_f8;
-  __uint64 local_f0;
-  undefined8 local_e8;
-  float local_e0;
-  float local_dc;
-  uint local_d8;
-  undefined4 local_d4;
-  D2D_RECT_F local_d0 [16];
-  CMonitorTransform *local_c0;
-  COverlayContext *local_b8;
-  D2D_RECT_F local_b0 [24];
+  undefined1 auStack_118 [32];
+  char local_f8;
+  char local_f7;
+  uint local_f4;
+  CRegion *local_f0;
+  __uint64 local_e8;
+  CMonitorTransform *local_e0;
+  CMonitorTransform *local_d8;
+  undefined4 local_d0;
+  __uint64 local_c8 [2];
+  D2D_RECT_F local_b8 [16];
+  D2D_RECT_F local_a8 [16];
   CRgnData *local_98 [10];
   ulonglong local_48;
   
-  local_48 = __security_cookie ^ (ulonglong)auStack_128;
+  local_48 = __security_cookie ^ (ulonglong)auStack_118;
   uVar16 = 0;
-  CVar13 = (COverlayContext)0x0;
-  local_f8 = param_2;
-  local_b8 = this;
+  CVar14 = (CMonitorTransform)0x0;
+  local_f0 = param_2;
+  local_e0 = (CMonitorTransform *)param_1;
+  local_d8 = (CMonitorTransform *)this;
   detail::
   vector_facade<COverlayContext::OverlayPlaneInfo,detail::buffer_impl<COverlayContext::OverlayPlaneInfo,16,1,detail::liberal_expansion_policy>_>
   ::clear((vector_facade<COverlayContext::OverlayPlaneInfo,detail::buffer_impl<COverlayContext::OverlayPlaneInfo,16,1,detail::liberal_expansion_policy>_>
            *)(this + 0x58));
-  this[0x4bfc] = (COverlayContext)0x0;
-  this[0x4bff] = (COverlayContext)0x0;
+  bVar3 = wil::details::FeatureImpl<__WilFeatureTraits_Feature_ContentOnTop>::__private_IsEnabled
+                    ((FeatureImpl<__WilFeatureTraits_Feature_ContentOnTop> *)
+                     &`private:_static_class_wil::details::FeatureImpl<__WilFeatureTraits_Feature_ContentOnTop>&___ptr64___cdecl_wil::Feature<__WilFeatureTraits_Feature_ContentOnTop>::GetImpl(void)'
+                      ::__l2::impl);
+  if (bVar3) {
+    *(undefined8 *)(this + 0x4ba8) = 0;
+    *(undefined8 *)(this + 0x4ba0) = 0;
+    *(undefined8 *)(this + 0x4bb8) = 0;
+    *(undefined8 *)(this + 0x4bb0) = 0;
+    *(undefined2 *)(this + 0x4bc0) = 0;
+  }
+  this[0x4c85] = (COverlayContext)0x0;
+  bVar3 = wil::details::FeatureImpl<__WilFeatureTraits_Feature_DesktopDWMCursor>::
+          __private_IsEnabled((FeatureImpl<__WilFeatureTraits_Feature_DesktopDWMCursor> *)
+                              &`private:_static_class_wil::details::FeatureImpl<__WilFeatureTraits_Feature_DesktopDWMCursor>&___ptr64___cdecl_wil::Feature<__WilFeatureTraits_Feature_DesktopDWMCursor>::GetImpl(void)'
+                               ::__l2::impl);
+  if (bVar3) {
+    *(undefined2 *)(this + 0x4c88) = 0;
+  }
   bVar3 = wil::details::FeatureImpl<__WilFeatureTraits_Feature_DWM_MPO_Enhancement>::
           __private_IsEnabled((FeatureImpl<__WilFeatureTraits_Feature_DWM_MPO_Enhancement> *)
                               &`private:_static_class_wil::details::FeatureImpl<__WilFeatureTraits_Feature_DWM_MPO_Enhancement>&___ptr64___cdecl_wil::Feature<__WilFeatureTraits_Feature_DWM_MPO_Enhancement>::GetImpl(void)'
                                ::__l2::impl);
   if (bVar3) {
-    *(undefined2 *)(this + 0x4bfd) = 0;
+    *(undefined2 *)(this + 0x4c86) = 0;
   }
   bVar3 = wil::details::FeatureImpl<__WilFeatureTraits_Feature_ComposedFlipPerf>::
           __private_IsEnabled((FeatureImpl<__WilFeatureTraits_Feature_ComposedFlipPerf> *)
                               &`private:_static_class_wil::details::FeatureImpl<__WilFeatureTraits_Feature_ComposedFlipPerf>&___ptr64___cdecl_wil::Feature<__WilFeatureTraits_Feature_ComposedFlipPerf>::GetImpl(void)'
                                ::__l2::impl);
   if (bVar3) {
-    *(undefined8 *)(this + 0x4be0) = 0;
-    *(undefined8 *)(this + 0x4bd8) = 0;
-  }
-  *(undefined8 *)(this + 0x4b38) = 0;
-  *(undefined8 *)(this + 0x4b30) = 0;
-  pCVar7 = GetMonitorTransform(this);
-  local_e8 = pCVar7;
-  bVar3 = CMILMatrix::Is2DAxisAlignedPreserving((CMILMatrix *)(pCVar7 + 0x34));
-  if ((!bVar3) || (lVar8 = (**(code **)(**(longlong **)this + 0x118))(), lVar8 == 0))
+    *(undefined8 *)(this + 0x4c68) = 0;
+    *(undefined8 *)(this + 0x4c60) = 0;
+  }
+  *(undefined8 *)(this + 0x4b98) = 0;
+  *(undefined8 *)(this + 0x4b90) = 0;
+  pCVar8 = GetMonitorTransform(this);
+  bVar3 = CMILMatrix::Is2DAxisAlignedPreserving((CMILMatrix *)(pCVar8 + 0x34));
+  if ((!bVar3) || (lVar9 = (**(code **)(**(longlong **)this + 0x118))(), lVar9 == 0))
   goto LAB_0;
   uVar15 = 1;
-  CVar14 = (COverlayContext)0x1;
-  CVar13 = (COverlayContext)0x1;
-  local_d4 = 1;
-  _Var9 = GetCurrentFrameId();
-  _Var2 = *(__uint64 *)(this + 0x4bc0);
-  local_d8 = 0;
-  local_100 = _Var9;
-  local_f0 = _Var2;
-  local_108 = (**(code **)(**(longlong **)this + 0x30))();
-  if (local_108 == '\0') {
-    cVar4 = (**(code **)(**(longlong **)this + 0x120))(*(longlong **)this,local_f8);
-    uVar16 = (uint)(cVar4 != '\0');
-    local_d8 = uVar16;
-  }
-  cVar4 = (char)uVar16;
+  CVar14 = (CMonitorTransform)0x1;
+  local_d0 = 1;
+  bVar3 = wil::details::FeatureImpl<__WilFeatureTraits_Feature_DesktopDWMCursor>::
+          __private_IsEnabled((FeatureImpl<__WilFeatureTraits_Feature_DesktopDWMCursor> *)
+                              &`private:_static_class_wil::details::FeatureImpl<__WilFeatureTraits_Feature_DesktopDWMCursor>&___ptr64___cdecl_wil::Feature<__WilFeatureTraits_Feature_DesktopDWMCursor>::GetImpl(void)'
+                               ::__l2::impl);
+  if ((bVar3) && (*(longlong *)(this + 0x4b18) != 0)) {
+    GetCursorBounds(this);
+    bVar3 = TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::IsEmpty
+                      ((TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded> *)local_c8);
+    if (!bVar3) {
+      ptVar10 = (tagRECT *)PixelAlign(local_a8);
+      CRegion::AddRectangle(param_2,ptVar10);
+      this[0x4c88] = (COverlayContext)0x1;
+    }
+  }
+  _Var11 = GetCurrentFrameId();
+  _Var1 = *(__uint64 *)(this + 0x4c48);
+  local_f4 = 0;
+  local_e8 = _Var1;
+  local_c8[0] = _Var11;
+  cVar4 = (**(code **)(**(longlong **)this + 0x30))();
+  if (cVar4 == '\0') {
+    cVar5 = (**(code **)(**(longlong **)this + 0x120))(*(longlong **)this,local_f0);
+    uVar16 = (uint)(cVar5 != '\0');
+    local_f4 = uVar16;
+  }
+  cVar5 = (char)uVar16;
   bVar3 = wil::details::FeatureImpl<__WilFeatureTraits_Feature_DWM_MPO_Enhancement>::
           __private_IsEnabled((FeatureImpl<__WilFeatureTraits_Feature_DWM_MPO_Enhancement> *)
                               &`private:_static_class_wil::details::FeatureImpl<__WilFeatureTraits_Feature_DWM_MPO_Enhancement>&___ptr64___cdecl_wil::Feature<__WilFeatureTraits_Feature_DWM_MPO_Enhancement>::GetImpl(void)'
                                ::__l2::impl);
-  if (bVar3) {
-    if ((local_108 == '\0') && (_Var2 != _Var9)) {
-      CVar5 = (COverlayContext)0x0;
+  pCVar2 = local_e0;
+  if (bVar3) {
+    if ((cVar4 == '\0') && (_Var1 != _Var11)) {
+      CVar6 = (COverlayContext)0x0;
     }
     else {
-      CVar5 = (COverlayContext)0x1;
-    }
-    this[0x4bfd] = CVar5;
-  }
-  if ((cVar4 == '\0') && (param_1 != (CRegion *)0x0)) {
-    ptVar10 = (tagRECT *)PixelAlign(local_b0);
+      CVar6 = (COverlayContext)0x1;
+    }
+    this[0x4c86] = CVar6;
+  }
+  if ((cVar5 == '\0') && (local_e0 != (CMonitorTransform *)0x0)) {
+    ptVar10 = (tagRECT *)PixelAlign(local_a8);
     FastRegion::CRegion::CRegion((CRegion *)local_98,ptVar10);
-    if ((*(int *)*(CRgnData **)param_1 != 0) &&
+    if ((*(int *)*(CRgnData **)pCVar2 != 0) &&
        ((*(int *)local_98[0] != 0 &&
-        (bVar3 = FastRegion::Internal::CRgnData::Intersects(*(CRgnData **)param_1,local_98[0]),
-        local_d8 = uVar16, bVar3)))) {
+        (bVar3 = FastRegion::Internal::CRgnData::Intersects(*(CRgnData **)pCVar2,local_98[0]),
+        local_f4 = uVar16, bVar3)))) {
       uVar16 = 1;
-      local_d8 = uVar16;
-    }
-    cVar4 = (char)uVar16;
+      local_f4 = uVar16;
+    }
+    cVar5 = (char)uVar16;
     FastRegion::CRegion::FreeMemory((CRegion *)local_98);
   }
-  cVar6 = false;
-  local_106 = '\0';
+  cVar7 = false;
+  local_f7 = '\0';
   bVar3 = wil::details::FeatureImpl<__WilFeatureTraits_Feature_DWM_MPO_Enhancement>::
           __private_IsEnabled((FeatureImpl<__WilFeatureTraits_Feature_DWM_MPO_Enhancement> *)
                               &`private:_static_class_wil::details::FeatureImpl<__WilFeatureTraits_Feature_DWM_MPO_Enhancement>&___ptr64___cdecl_wil::Feature<__WilFeatureTraits_Feature_DWM_MPO_Enhancement>::GetImpl(void)'
                                ::__l2::impl);
   if (bVar3) {
-    if (local_108 == '\0') {
-      bVar3 = TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::IsEmpty
-                        ((TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded> *)
-                         (this + 0x4b20));
-      if (bVar3) {
-        local_107 = '\0';
-        if (((cVar4 == '\0') && (local_f0 != _Var9)) && (bVar3 = HasRevokablePlanes(this), !bVar3))
-        goto LAB_0;
-      }
-      else {
-        local_107 = '\x01';
-      }
-      this_00 = local_f8;
-      this[0x4bfe] = (COverlayContext)0x1;
-      if (*(longlong *)(this + 0x4bb0) == 0) {
-        local_c0 = pCVar7 + 0x78;
-        pOVar12 = *(OverlayPlaneInfo **)(this + 0x3190);
-        for (pOVar11 = *(OverlayPlaneInfo **)(this + 0x3188); this = local_b8, pCVar7 = local_e8,
-            this_01 = local_f8, pOVar11 != pOVar12; pOVar11 = pOVar11 + 0x188) {
-          OverlayPlaneInfo::GetLocalClipRect(pOVar11,(CMILMatrix *)local_b0);
-          ptVar10 = (tagRECT *)PixelAlign(local_d0);
-          CRegion::AddRectangle(this_00,ptVar10);
-        }
-        pCVar1 = local_b8 + 0x4b20;
-        pOVar12 = *(OverlayPlaneInfo **)(local_b8 + 0x18f8);
-        for (pOVar11 = *(OverlayPlaneInfo **)(local_b8 + 0x18f0); uVar15 = local_d4,
-            cVar6 = local_106, pOVar11 != pOVar12; pOVar11 = pOVar11 + 0x188) {
-          OverlayPlaneInfo::GetLocalClipRect(pOVar11,(CMILMatrix *)local_b0);
-          ptVar10 = (tagRECT *)PixelAlign(local_d0);
-          CRegion::AddRectangle(this_01,ptVar10);
-        }
-        cVar4 = (char)local_d8;
-        if (local_107 != '\0') {
-          ptVar10 = (tagRECT *)PixelAlign(local_d0);
-          CRegion::AddRectangle(local_f8,ptVar10);
-          *(undefined4 *)(this + 0x4b2c) = 0;
-          *(undefined4 *)(this + 0x4b28) = 0;
-          *(undefined4 *)(this + 0x4b24) = 0;
-          *(undefined4 *)pCVar1 = 0;
-        }
-        goto LAB_1;
-      }
+    if (cVar4 != '\0') goto LAB_0;
+    bVar3 = TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::IsEmpty
+                      ((TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded> *)
+                       (this + 0x4b80));
+    if (bVar3) {
+      local_f8 = '\0';
+      if (((cVar5 == '\0') && (local_e8 != local_c8[0])) &&
+         (bVar3 = HasRevokablePlanes(this), !bVar3)) goto LAB_0;
+    }
+    else {
+      local_f8 = '\x01';
+    }
+    this_00 = local_f0;
+    this[0x4c87] = (COverlayContext)0x1;
+    if (*(longlong *)(this + 0x4c38) == 0) {
+      local_e0 = pCVar8 + 0x78;
+      pOVar13 = *(OverlayPlaneInfo **)(this + 0x3190);
+      for (pOVar12 = *(OverlayPlaneInfo **)(this + 0x3188); this_01 = local_f0, cVar7 = local_f7,
+          pOVar12 != pOVar13; pOVar12 = pOVar12 + 0x188) {
+        OverlayPlaneInfo::GetLocalClipRect(pOVar12,(CMILMatrix *)local_a8);
+        ptVar10 = (tagRECT *)PixelAlign(local_b8);
+        CRegion::AddRectangle(this_00,ptVar10);
+      }
+      cVar5 = (char)local_f4;
+      pOVar13 = *(OverlayPlaneInfo **)(local_d8 + 0x18f8);
+      for (pOVar12 = *(OverlayPlaneInfo **)(local_d8 + 0x18f0); uVar15 = local_d0,
+          this = (COverlayContext *)local_d8, pOVar12 != pOVar13; pOVar12 = pOVar12 + 0x188) {
+        OverlayPlaneInfo::GetLocalClipRect(pOVar12,(CMILMatrix *)local_a8);
+        ptVar10 = (tagRECT *)PixelAlign(local_b8);
+        CRegion::AddRectangle(this_01,ptVar10);
+      }
+      pCVar8 = local_d8 + 0x4b80;
+      if (local_f8 != cVar7) {
+        ptVar10 = (tagRECT *)PixelAlign(local_b8);
+        CRegion::AddRectangle(local_f0,ptVar10);
+        *(undefined4 *)(this + 0x4b8c) = 0;
+        *(undefined4 *)(this + 0x4b88) = 0;
+        *(undefined4 *)(this + 0x4b84) = 0;
+        *(undefined4 *)pCVar8 = 0;
+      }
+    }
+    else {
+LAB_1:
+      ptVar10 = (tagRECT *)PixelAlign(local_b8);
+      CRegion::AddRectangle(local_f0,ptVar10);
+    }
+    goto LAB_2;
+  }
+  cVar7 = HasRevokablePlanes(this);
+  if (cVar4 != '\0') goto LAB_0;
+  pOVar12 = *(OverlayPlaneInfo **)(this + 0x3190);
+  pOVar13 = *(OverlayPlaneInfo **)(this + 0x3188);
+  if ((int)((longlong)pOVar12 - (longlong)pOVar13 >> 3) * 0x1a1f58d1 == 0) {
+    if (*(longlong *)(this + 0x4c38) == 0) goto LAB_2;
+    if ((cVar5 != '\0') || (CVar14 = (CMonitorTransform)0x1, local_e8 == local_c8[0]))
+    goto LAB_1;
+LAB_3:
+    if (cVar7 == '\0') goto LAB_0;
+  }
+  else {
+    local_d8 = pCVar8 + 0x78;
+    for (; pOVar13 != pOVar12; pOVar13 = pOVar13 + 0x188) {
+      if (((cVar5 != '\0') || (local_e8 == local_c8[0])) || ((bool)cVar7)) {
+        OverlayPlaneInfo::GetLocalClipRect(pOVar13,(CMILMatrix *)local_a8);
+        ptVar10 = (tagRECT *)PixelAlign(local_b8);
+        CRegion::AddRectangle(local_f0,ptVar10);
+      }
+    }
 LAB_2:
-      ptVar10 = (tagRECT *)PixelAlign(local_d0);
-      CRegion::AddRectangle(local_f8,ptVar10);
-    }
-LAB_3:
-    CVar13 = CVar14;
-    if (((cVar4 != '\0') || (local_f0 == _Var9)) && (*(longlong *)(this + 0x4b18) != 0)) {
-      bVar3 = wil::details::FeatureImpl<__WilFeatureTraits_Feature_DWM_MPO_Enhancement>::
-              __private_IsEnabled((FeatureImpl<__WilFeatureTraits_Feature_DWM_MPO_Enhancement> *)
-                                  &`private:_static_class_wil::details::FeatureImpl<__WilFeatureTraits_Feature_DWM_MPO_Enhancement>&___ptr64___cdecl_wil::Feature<__WilFeatureTraits_Feature_DWM_MPO_Enhancement>::GetImpl(void)'
-                                   ::__l2::impl);
-      if (bVar3) {
-        (**(code **)(**(longlong **)this + 0x38))();
-        CCursorVisual::GetCursorShapeBounds
-                  (*(CCursorVisual **)(this + 0x4b18),(CDesktopTree *)&local_e8);
-        bVar3 = TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::IsEmpty
-                          ((TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded> *)
-                           &local_e8);
-        if (bVar3) goto LAB_4;
-        if ((float)local_e8 < *(float *)(pCVar7 + 8)) {
-          local_e8 = (CMonitorTransform *)CONCAT44(local_e8._4_4_,*(float *)(pCVar7 + 8));
-        }
-        if (local_e8._4_4_ < *(float *)(pCVar7 + 0xc)) {
-          local_e8 = (CMonitorTransform *)CONCAT44(*(float *)(pCVar7 + 0xc),(float)local_e8);
-        }
-        if (*(float *)(pCVar7 + 0x10) < local_e0) {
-          local_e0 = *(float *)(pCVar7 + 0x10);
-        }
-        if (*(float *)(pCVar7 + 0x14) < local_dc) {
-          local_dc = *(float *)(pCVar7 + 0x14);
-        }
-      }
-      else {
-        (**(code **)(**(longlong **)this + 0x38))();
-        CCursorVisual::GetCursorShapeBounds
-                  (*(CCursorVisual **)(this + 0x4b18),(CDesktopTree *)&local_e8);
-      }
-      bVar3 = TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::IsEmpty
-                        ((TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded> *)
-                         &local_e8);
-      if (!bVar3) {
-        ptVar10 = (tagRECT *)PixelAlign(local_d0);
-        CRegion::AddRectangle(local_f8,ptVar10);
-      }
-    }
-LAB_4:
-    if ((local_108 != '\0') || (local_f0 == _Var9)) goto LAB_0;
-    if (cVar4 == '\0') goto LAB_5;
-  }
-  else {
-    cVar6 = HasRevokablePlanes(this);
-    if (local_108 != '\0') goto LAB_3;
-    pOVar11 = *(OverlayPlaneInfo **)(this + 0x3190);
-    pOVar12 = *(OverlayPlaneInfo **)(this + 0x3188);
-    if ((int)((longlong)pOVar11 - (longlong)pOVar12 >> 3) * 0x1a1f58d1 != 0) {
-      for (; pOVar12 != pOVar11; pOVar12 = pOVar12 + 0x188) {
-        if (((cVar4 != '\0') || (local_f0 == local_100)) || ((bool)cVar6)) {
-          OverlayPlaneInfo::GetLocalClipRect(pOVar12,(CMILMatrix *)local_b0);
-          ptVar10 = (tagRECT *)PixelAlign(local_d0);
-          CRegion::AddRectangle(local_f8,ptVar10);
-        }
-      }
-LAB_1:
-      _Var9 = local_100;
-      CVar14 = SUB41(uVar15,0);
-      goto LAB_3;
-    }
-    if (*(longlong *)(this + 0x4bb0) == 0) goto LAB_1;
-    _Var9 = local_100;
-    if ((cVar4 != '\0') || (CVar13 = (COverlayContext)0x1, local_f0 == local_100))
-    goto LAB_2;
-LAB_5:
-    if (cVar6 == '\0') goto LAB_0;
-  }
-  this[0x4bfc] = CVar13;
+    CVar14 = SUB41(uVar15,0);
+    if (local_e8 == local_c8[0]) goto LAB_0;
+    if (cVar5 == '\0') goto LAB_3;
+  }
+  *(CMonitorTransform *)(this + 0x4c85) = CVar14;
 LAB_0:
   if ((Microsoft_Windows_Dwm_CoreEnableBits._1_1_ & 2) != 0) {
     McTemplateU0dd_EventWriteTransfer();
   }
-  return (bool)CVar13;
+  return (bool)CVar14;
 }
 

```


## wil::details::FeatureImpl<__WilFeatureTraits_Feature_GatePerf>::ReportUsage

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,refcount,length,address,calling|
|ratio|0.5|
|i_ratio|0.65|
|m_ratio|0.97|
|b_ratio|0.94|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|ReportUsage|ReportUsage|
|fullname|wil::details::FeatureImpl<__WilFeatureTraits_Feature_GatePerf>::ReportUsage|wil::details::FeatureImpl<__WilFeatureTraits_Feature_GatePerf>::ReportUsage|
|`refcount`|2|5|
|`length`|123|117|
|called|wil::details::FeatureImpl<__WilFeatureTraits_Feature_GatePerf>::GetCachedFeatureEnabledState<br>wil::details::ReportUsageToService|wil::details::FeatureImpl<__WilFeatureTraits_Feature_GatePerf>::GetCachedFeatureEnabledState<br>wil::details::ReportUsageToService|
|`calling`|wil::details::FeatureImpl<__WilFeatureTraits_Feature_GatePerf>::__private_IsEnabled|wil::details::FeatureImpl<__WilFeatureTraits_Feature_CompSwapchainDX12Support>::GetCurrentFeatureEnabledState<br>wil::details::FeatureImpl<__WilFeatureTraits_Feature_DisplayBugBundle_2506>::GetCurrentFeatureEnabledState<br>wil::details::FeatureImpl<__WilFeatureTraits_Feature_FixLerpLayerRenderOpacity>::GetCurrentFeatureEnabledState<br>wil::details::FeatureImpl<__WilFeatureTraits_Feature_UxPerfImp>::GetCurrentFeatureEnabledState|
|paramcount|4|4|
|`address`|18025fb30|18025d530|
|sig|void __thiscall ReportUsage(FeatureImpl<__WilFeatureTraits_Feature_GatePerf> * this, bool param_1, ReportingKind param_2, __uint64 param_3)|void __thiscall ReportUsage(FeatureImpl<__WilFeatureTraits_Feature_GatePerf> * this, bool param_1, ReportingKind param_2, __uint64 param_3)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### wil::details::FeatureImpl<__WilFeatureTraits_Feature_GatePerf>::ReportUsage Calling Diff


```diff
--- wil::details::FeatureImpl<__WilFeatureTraits_Feature_GatePerf>::ReportUsage calling
+++ wil::details::FeatureImpl<__WilFeatureTraits_Feature_GatePerf>::ReportUsage calling
@@ -1 +1,4 @@
-wil::details::FeatureImpl<__WilFeatureTraits_Feature_GatePerf>::__private_IsEnabled
+wil::details::FeatureImpl<__WilFeatureTraits_Feature_CompSwapchainDX12Support>::GetCurrentFeatureEnabledState
+wil::details::FeatureImpl<__WilFeatureTraits_Feature_DisplayBugBundle_2506>::GetCurrentFeatureEnabledState
+wil::details::FeatureImpl<__WilFeatureTraits_Feature_FixLerpLayerRenderOpacity>::GetCurrentFeatureEnabledState
+wil::details::FeatureImpl<__WilFeatureTraits_Feature_UxPerfImp>::GetCurrentFeatureEnabledState
```


### wil::details::FeatureImpl<__WilFeatureTraits_Feature_GatePerf>::ReportUsage Diff


```diff
--- wil::details::FeatureImpl<__WilFeatureTraits_Feature_GatePerf>::ReportUsage
+++ wil::details::FeatureImpl<__WilFeatureTraits_Feature_GatePerf>::ReportUsage
@@ -1,31 +1,33 @@
 
 /* public: void __cdecl wil::details::FeatureImpl<struct
    __WilFeatureTraits_Feature_GatePerf>::ReportUsage(bool,enum wil::ReportingKind,unsigned __int64)
    __ptr64 */
 
 void __thiscall
 wil::details::FeatureImpl<__WilFeatureTraits_Feature_GatePerf>::ReportUsage
           (FeatureImpl<__WilFeatureTraits_Feature_GatePerf> *this,bool param_1,ReportingKind param_2
           ,__uint64 param_3)
 
 {
-  ulonglong *puVar1;
-  ulonglong uVar2;
+  __uint64 *p_Var1;
+  uint uVar2;
   undefined4 local_res8;
   undefined2 local_resc;
+  __uint64 local_res20;
   __uint64 in_stack_ffffffffffffffe0;
   
-  uVar2 = (ulonglong)*(uint *)this;
-  if ((*(uint *)this & 4) == 0) {
-    puVar1 = (ulonglong *)GetCachedFeatureEnabledState(this);
-    uVar2 = *puVar1;
+  uVar2 = *(uint *)this;
+  local_res20 = param_3;
+  if ((uVar2 & 4) == 0) {
+    p_Var1 = (__uint64 *)GetCachedFeatureEnabledState(this);
+    local_res20 = *p_Var1;
+    uVar2 = (uint)local_res20;
   }
-  local_resc = 2;
+  local_resc = 3;
   local_res8 = 0;
   ReportUsageToService
-            ((wil_details_FeatureReportingCache *)(this + 8),0x33b9b30,(uint)uVar2 >> 10 & 1,
-             (uint)(uVar2 >> 0xb) & 1,(FEATURE_LOGGED_TRAITS *)&local_res8,(uint)param_1,0,
-             in_stack_ffffffffffffffe0);
+            ((wil_details_FeatureReportingCache *)(this + 8),0x33b9b30,uVar2 >> 10 & 1,
+             uVar2 >> 0xb & 1,(FEATURE_LOGGED_TRAITS *)&local_res8,1,0,in_stack_ffffffffffffffe0);
   return;
 }
 

```


## COverlayContext::CheckAndRecordOverlayCandidate

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,length,sig,address,called|
|ratio|0.29|
|i_ratio|0.35|
|m_ratio|0.99|
|b_ratio|0.76|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|CheckAndRecordOverlayCandidate|CheckAndRecordOverlayCandidate|
|fullname|COverlayContext::CheckAndRecordOverlayCandidate|COverlayContext::CheckAndRecordOverlayCandidate|
|refcount|2|2|
|`length`|4245|4405|
|`called`|<details><summary>Expand for full list:<br>CD2DContext::IsHardwareProtectionDisabled<br>CDirectFlipInfo::Init<br>CMonitorTransform::GetClipBox<br>COverlayContext::CalcOverlaySize<br>COverlayContext::GetMonitorTransform<br>COverlayContext::IsCandidateDirectFlipCompatible<br>COverlayContext::IsCandidateOverlayCompatible<br>COverlayContext::IsIntelWorkaroundNeeded<br>COverlayContext::OverlaysEnabled<br>COverlayContext::RGBOverlaysEnabled<br>ConvertSDRBoostToSDRWhiteLevel</summary>ISwapChainRealization::QueryInterface<IAdvancedDirectFlipBitmapRealization><br>McTemplateU0p_EventWriteTransfer<br>McTemplateU0xdddddddqqddddddddddddqqq_EventWriteTransfer<br>McTemplateU0xddqqddddddddddddqqq_EventWriteTransfer<br>McTemplateU0xqqdddd_EventWriteTransfer<br>McTemplateU0xqqqqt_EventWriteTransfer<br>RenderTargetInfo::IsHDR<br>TMilRect<int,tagRECT,D2D_POINTANDSIZE_L,RectUniqueness::_CMilRectL_>::DoesContain<br>TMilRect<int,tagRECT,D2D_POINTANDSIZE_L,RectUniqueness::_CMilRectL_>::IsEmpty<br>TMilRect<unsigned_int,MilRectU,Mil3DRectU,RectUniqueness::NotNeeded>::DoesContain<br>__security_check_cookie<br>_guard_dispatch_icall$thunk$10345483385596137414<br>detail::vector_facade<COverlayContext::OverlayPlaneInfo,detail::buffer_impl<COverlayContext::OverlayPlaneInfo,16,1,detail::liberal_expansion_policy>_>::emplace_back<COverlayContext*___ptr64,CVisual*___ptr64,CCompositionSurfaceInfo*___ptr64,unsigned___int64,DXGI_MULTIPLANE_OVERLAY_ATTRIBUTES,TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,CCornerRects,CMILMatrix,TMilRect_<int,tagRECT,D2D_POINTANDSIZE_L,Mil3DRectL,RectUniqueness::_CMilRectL_>,TMilRect_<int,struct_tagRECT,struct_D2D_POINTANDSIZE_L,struct_Mil3DRectL,struct_RectUniqueness::_CMilRectL_>,bool,bool,bool,OverlaySize><br>memset<br>wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy><br>wil::details::FeatureImpl<__WilFeatureTraits_Feature_ComposedFlipPerf>::__private_IsEnabled<br>wil::details::FeatureImpl<__WilFeatureTraits_Feature_DDisplay_AggCheckMpo>::__private_IsEnabled<br>wil::details::FeatureImpl<__WilFeatureTraits_Feature_DWM_MPO_Enhancement>::__private_IsEnabled</details>|<details><summary>Expand for full list:<br>CD2DContext::IsHardwareProtectionDisabled<br>CDirectFlipInfo::Init<br>CMonitorTransform::GetClipBox<br>COverlayContext::CVisitedContent::CalcContentOnTop<br>COverlayContext::CVisitedContent::CalcInvertedContentOnTop<br>COverlayContext::CalcOverlaySize<br>COverlayContext::GetMonitorTransform<br>COverlayContext::IsCandidateDirectFlipCompatible<br>COverlayContext::IsCandidateOverlayCompatible<br>COverlayContext::IsIntelWorkaroundNeeded<br>COverlayContext::OverlaysEnabled</summary>COverlayContext::RGBOverlaysEnabled<br>ConvertSDRBoostToSDRWhiteLevel<br>ISwapChainRealization::QueryInterface<IAdvancedDirectFlipBitmapRealization><br>McTemplateU0p_EventWriteTransfer<br>McTemplateU0xdddddddqqddddddddddddqqq_EventWriteTransfer<br>McTemplateU0xddqqddddddddddddqqq_EventWriteTransfer<br>McTemplateU0xqqdddd_EventWriteTransfer<br>McTemplateU0xqqqqt_EventWriteTransfer<br>RenderTargetInfo::IsHDR<br>TMilRect<int,tagRECT,D2D_POINTANDSIZE_L,RectUniqueness::_CMilRectL_>::DoesContain<br>TMilRect<int,tagRECT,D2D_POINTANDSIZE_L,RectUniqueness::_CMilRectL_>::IsEmpty<br>TMilRect<unsigned_int,MilRectU,Mil3DRectU,RectUniqueness::NotNeeded>::DoesContain<br>__security_check_cookie<br>_guard_dispatch_icall$thunk$10345483385596137414<br>detail::vector_facade<COverlayContext::OverlayPlaneInfo,detail::buffer_impl<COverlayContext::OverlayPlaneInfo,16,1,detail::liberal_expansion_policy>_>::emplace_back<COverlayContext*___ptr64,CVisual*___ptr64,CCompositionSurfaceInfo*___ptr64,unsigned___int64,DXGI_MULTIPLANE_OVERLAY_ATTRIBUTES,TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,CCornerRects,CMILMatrix,TMilRect_<int,tagRECT,D2D_POINTANDSIZE_L,Mil3DRectL,RectUniqueness::_CMilRectL_>,TMilRect_<int,struct_tagRECT,struct_D2D_POINTANDSIZE_L,struct_Mil3DRectL,struct_RectUniqueness::_CMilRectL_>,bool,bool,bool,OverlaySize><br>memset<br>wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy><br>wil::details::FeatureImpl<__WilFeatureTraits_Feature_ComposedFlipPerf>::__private_IsEnabled<br>wil::details::FeatureImpl<__WilFeatureTraits_Feature_ContentOnTop>::__private_IsEnabled<br>wil::details::FeatureImpl<__WilFeatureTraits_Feature_DDisplay_AggCheckMpo>::__private_IsEnabled<br>wil::details::FeatureImpl<__WilFeatureTraits_Feature_DWM_MPO_Enhancement>::__private_IsEnabled</details>|
|calling|COcclusionContext::CheckAndRecordOverlayCandidateForContext|COcclusionContext::CheckAndRecordOverlayCandidateForContext|
|paramcount|16|17|
|`address`|18026c688|18026a408|
|`sig`|long __thiscall CheckAndRecordOverlayCandidate(COverlayContext * this, CVisual * param_1, CCompositionSurfaceInfo * param_2, ISwapChainRealization * param_3, TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> * param_4, TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> * param_5, TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> * param_6, CCornerRects * param_7, CMILMatrix * param_8, DXGI_MODE_ROTATION param_9, uint param_10, bool param_11, bool param_12, TMilRect_<int,tagRECT,D2D_POINTANDSIZE_L,Mil3DRectL,RectUniqueness::_CMilRectL_> * param_13, bool param_14, TMilRect_<int,tagRECT,D2D_POINTANDSIZE_L,Mil3DRectL,RectUniqueness::_CMilRectL_> * param_15)|long __thiscall CheckAndRecordOverlayCandidate(COverlayContext * this, CVisual * param_1, TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> * param_2, CCompositionSurfaceInfo * param_3, ISwapChainRealization * param_4, TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> * param_5, TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> * param_6, TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> * param_7, CCornerRects * param_8, CMILMatrix * param_9, DXGI_MODE_ROTATION param_10, uint param_11, bool param_12, bool param_13, TMilRect_<int,tagRECT,D2D_POINTANDSIZE_L,Mil3DRectL,RectUniqueness::_CMilRectL_> * param_14, bool param_15, TMilRect_<int,tagRECT,D2D_POINTANDSIZE_L,Mil3DRectL,RectUniqueness::_CMilRectL_> * param_16)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### COverlayContext::CheckAndRecordOverlayCandidate Called Diff


```diff
--- COverlayContext::CheckAndRecordOverlayCandidate called
+++ COverlayContext::CheckAndRecordOverlayCandidate called
@@ -3,0 +4,2 @@
+COverlayContext::CVisitedContent::CalcContentOnTop
+COverlayContext::CVisitedContent::CalcInvertedContentOnTop
@@ -27,0 +30 @@
+wil::details::FeatureImpl<__WilFeatureTraits_Feature_ContentOnTop>::__private_IsEnabled
```


### COverlayContext::CheckAndRecordOverlayCandidate Diff


```diff
--- COverlayContext::CheckAndRecordOverlayCandidate
+++ COverlayContext::CheckAndRecordOverlayCandidate
@@ -1,613 +1,636 @@
 
 /* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
    guard_dispatch_icall */
 /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
 /* public: long __cdecl COverlayContext::CheckAndRecordOverlayCandidate(class CVisual *
-   __ptr64,class CCompositionSurfaceInfo * __ptr64,class ISwapChainRealization * __ptr64,class
+   __ptr64,class TMilRect_<float,struct D2D_RECT_F,struct D3D_RECT_F,struct
+   D2D_POINTANDSIZE_F,struct RectUniqueness::NotNeeded> const & __ptr64,class
+   CCompositionSurfaceInfo * __ptr64,class ISwapChainRealization * __ptr64,class
    TMilRect_<float,struct D2D_RECT_F,struct D3D_RECT_F,struct D2D_POINTANDSIZE_F,struct
    RectUniqueness::NotNeeded> const & __ptr64,class TMilRect_<float,struct D2D_RECT_F,struct
    D3D_RECT_F,struct D2D_POINTANDSIZE_F,struct RectUniqueness::NotNeeded> const & __ptr64,class
    TMilRect_<float,struct D2D_RECT_F,struct D3D_RECT_F,struct D2D_POINTANDSIZE_F,struct
    RectUniqueness::NotNeeded> const & __ptr64,class CCornerRects const & __ptr64,class CMILMatrix
    const & __ptr64,enum DXGI_MODE_ROTATION,unsigned int,bool,bool,class TMilRect_<int,struct
    tagRECT,struct D2D_POINTANDSIZE_L,struct Mil3DRectL,struct RectUniqueness::_CMilRectL_> const &
    __ptr64,bool,class TMilRect_<int,struct tagRECT,struct D2D_POINTANDSIZE_L,struct
    Mil3DRectL,struct RectUniqueness::_CMilRectL_> const & __ptr64) __ptr64 */
 
 long __thiscall
 COverlayContext::CheckAndRecordOverlayCandidate
-          (COverlayContext *this,CVisual *param_1,CCompositionSurfaceInfo *param_2,
-          ISwapChainRealization *param_3,
+          (COverlayContext *this,CVisual *param_1,
           TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
-          *param_4,TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
-                   *param_5,
+          *param_2,CCompositionSurfaceInfo *param_3,ISwapChainRealization *param_4,
           TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
-          *param_6,CCornerRects *param_7,CMILMatrix *param_8,DXGI_MODE_ROTATION param_9,
-          uint param_10,bool param_11,bool param_12,
-          TMilRect_<int,tagRECT,D2D_POINTANDSIZE_L,Mil3DRectL,RectUniqueness::_CMilRectL_> *param_13
-          ,bool param_14,
-          TMilRect_<int,tagRECT,D2D_POINTANDSIZE_L,Mil3DRectL,RectUniqueness::_CMilRectL_> *param_15
+          *param_5,TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
+                   *param_6,
+          TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
+          *param_7,CCornerRects *param_8,CMILMatrix *param_9,DXGI_MODE_ROTATION param_10,
+          uint param_11,bool param_12,bool param_13,
+          TMilRect_<int,tagRECT,D2D_POINTANDSIZE_L,Mil3DRectL,RectUniqueness::_CMilRectL_> *param_14
+          ,bool param_15,
+          TMilRect_<int,tagRECT,D2D_POINTANDSIZE_L,Mil3DRectL,RectUniqueness::_CMilRectL_> *param_16
           )
 
 {
-  ISwapChainRealization *pIVar1;
+  undefined1 auVar1 [16];
   undefined4 uVar2;
   undefined4 uVar3;
   longlong *plVar4;
   code *pcVar5;
   undefined8 uVar6;
   undefined8 uVar7;
   undefined8 uVar8;
   undefined8 uVar9;
   undefined8 uVar10;
   undefined8 uVar11;
   undefined8 uVar12;
   undefined8 uVar13;
   undefined8 uVar14;
   undefined8 uVar15;
   undefined8 uVar16;
   undefined8 uVar17;
   undefined8 uVar18;
   undefined8 uVar19;
   undefined8 uVar20;
   undefined8 uVar21;
   undefined8 uVar22;
   undefined8 uVar23;
   undefined8 uVar24;
-  CCompositionSurfaceInfo *pCVar25;
-  TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> *pTVar26;
+  undefined1 auVar25 [16];
+  bool bVar26;
   bool bVar27;
-  char cVar28;
-  char cVar29;
-  int iVar30;
-  OverlaySize OVar31;
-  Enum EVar32;
-  uint uVar33;
-  longlong lVar34;
-  int *piVar35;
-  Enum *pEVar36;
-  undefined8 *puVar37;
+  bool bVar28;
+  bool bVar29;
+  bool bVar30;
+  char cVar31;
+  int iVar32;
+  OverlaySize OVar33;
+  uint uVar34;
+  longlong lVar35;
+  int *piVar36;
+  undefined4 *puVar37;
+  undefined8 *puVar38;
   RenderTargetInfo *this_00;
   CMonitorTransform *this_01;
-  IAdvancedDirectFlipBitmapRealization *pIVar38;
   undefined *puVar39;
-  TMilRect_<int,tagRECT,D2D_POINTANDSIZE_L,Mil3DRectL,RectUniqueness::_CMilRectL_> *pTVar40;
+  Enum EVar40;
   ISwapChainRealization *pIVar41;
-  uint in_R10D;
-  CVisual *pCVar42;
-  char cVar43;
-  undefined1 auStackY_448 [32];
-  float local_368;
-  OverlaySize local_364;
-  char local_360;
-  Enum local_35c;
-  ISwapChainRealization *local_358;
-  TMilRect_<int,tagRECT,D2D_POINTANDSIZE_L,Mil3DRectL,RectUniqueness::_CMilRectL_> *local_350;
-  CVisual *local_348;
-  char local_340;
-  TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> *local_338;
-  IAdvancedDirectFlipBitmapRealization *local_330;
-  COverlayContext *local_328;
-  CCompositionSurfaceInfo *local_320;
-  undefined8 local_318;
-  uint uStack_310;
-  undefined4 uStack_30c;
+  char cVar42;
+  undefined1 auStackY_468 [32];
+  bool local_388;
+  TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> *local_360;
+  IAdvancedDirectFlipBitmapRealization *local_358;
+  undefined4 local_350 [2];
+  CCompositionSurfaceInfo *local_348 [2];
+  TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> local_338 [16]
+  ;
+  ISwapChainRealization *local_328;
+  TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> *local_320;
+  TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> *local_318;
+  undefined8 uStack_310;
   undefined8 local_308;
   undefined8 uStack_300;
   undefined8 local_2f8;
   undefined8 uStack_2f0;
-  undefined8 local_2e8;
-  undefined8 uStack_2e0;
-  int local_2d8;
-  int local_2d4;
-  int local_2d0;
-  float local_2c8;
+  int local_2e8;
+  int local_2e4;
+  int local_2e0;
+  float local_2d8;
+  undefined8 local_2c8;
+  undefined8 uStack_2c0;
   undefined8 local_2b8;
   undefined8 uStack_2b0;
   undefined8 local_2a8;
   undefined8 uStack_2a0;
   undefined8 local_298;
   undefined8 uStack_290;
-  undefined8 local_288;
-  undefined8 uStack_280;
-  undefined4 local_278;
+  undefined4 local_288;
+  undefined8 local_278;
+  undefined8 uStack_270;
   undefined8 local_268;
   undefined8 uStack_260;
   undefined8 local_258;
   undefined8 uStack_250;
   undefined8 local_248;
   undefined8 uStack_240;
-  undefined8 local_238;
-  undefined8 uStack_230;
-  undefined4 local_228;
+  undefined4 local_238;
+  undefined8 local_228;
+  undefined8 uStack_220;
   undefined8 local_218;
   undefined8 uStack_210;
   undefined8 local_208;
   undefined8 uStack_200;
   undefined8 local_1f8;
   undefined8 uStack_1f0;
   undefined8 local_1e8;
   undefined8 uStack_1e0;
   undefined8 local_1d8;
   undefined8 uStack_1d0;
-  undefined4 local_1c8;
-  undefined4 uStack_1c4;
-  undefined4 uStack_1c0;
-  undefined4 uStack_1bc;
-  undefined4 local_1b8;
-  undefined4 uStack_1b4;
-  uint uStack_1b0;
-  undefined4 uStack_1ac;
-  uint local_1a8;
-  tagRECT tStack_1a4;
+  TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> *local_1c8;
+  undefined8 uStack_1c0;
+  undefined1 local_1b8 [2] [16];
+  uint local_198;
   tagRECT tStack_194;
   tagRECT tStack_184;
-  DXGI_MODE_ROTATION DStack_174;
-  undefined4 uStack_170;
-  undefined4 uStack_16c;
-  undefined8 local_168;
+  tagRECT tStack_174;
+  DXGI_MODE_ROTATION DStack_164;
   undefined4 uStack_160;
-  DXGI_COLOR_SPACE_TYPE DStack_15c;
-  TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> *local_158;
-  undefined8 uStack_150;
-  undefined4 local_148;
-  undefined4 uStack_144;
-  uint uStack_140;
-  undefined4 uStack_13c;
-  undefined8 local_138;
-  undefined8 uStack_130;
+  undefined4 uStack_15c;
+  undefined8 local_158;
+  undefined4 uStack_150;
+  DXGI_COLOR_SPACE_TYPE DStack_14c;
+  undefined8 local_148;
+  undefined8 uStack_140;
+  undefined4 local_138;
+  undefined4 uStack_134;
+  uint uStack_130;
+  undefined4 uStack_12c;
+  undefined8 local_128;
+  undefined8 uStack_120;
   undefined8 local_118;
   undefined8 uStack_110;
-  undefined8 local_108;
-  undefined8 uStack_100;
+  COverlayContext *local_108 [2];
   undefined8 local_f8;
   undefined8 uStack_f0;
   ulonglong local_e8;
   
-  local_e8 = __security_cookie ^ (ulonglong)auStackY_448;
-  local_330 = (IAdvancedDirectFlipBitmapRealization *)param_4;
-  local_338 = param_5;
-  local_308 = param_6;
-  local_350 = param_13;
-  local_1a8 = param_10;
-  local_358 = param_3;
-  local_348 = param_1;
-  local_328 = this;
+  local_e8 = __security_cookie ^ (ulonglong)auStackY_468;
+  local_358 = (IAdvancedDirectFlipBitmapRealization *)param_5;
+  local_360 = param_6;
+  local_318 = param_7;
+  local_198 = param_11;
+  local_348[0] = param_3;
   local_320 = param_2;
-  memset(&tStack_1a4,0,0x6c);
+  local_108[0] = this;
+  memset(&tStack_194,0,0x6c);
   (**(code **)(*(longlong *)(*(longlong *)this + 8) + 0x18))
-            ((longlong *)(*(longlong *)this + 8),&local_2d8);
-  pIVar41 = param_3 + 8;
-  local_318 = pIVar41;
-  lVar34 = (**(code **)(*(longlong *)pIVar41 + 0x18))(pIVar41,&local_108);
-  if (*(int *)(lVar34 + 4) == 1) {
+            ((longlong *)(*(longlong *)this + 8),&local_2e8);
+  pIVar41 = param_4 + 8;
+  local_328 = pIVar41;
+  lVar35 = (**(code **)(*(longlong *)pIVar41 + 0x18))(pIVar41,&local_118);
+  if (*(int *)(lVar35 + 4) == 1) {
     return 0;
   }
-  piVar35 = (int *)(**(code **)(*(longlong *)pIVar41 + 0x30))(pIVar41,&local_368);
-  if (((*piVar35 != -1) && (*piVar35 != local_2d0)) && (local_2d0 != -3)) {
+  piVar36 = (int *)(**(code **)(*(longlong *)pIVar41 + 0x30))(pIVar41,local_350);
+  if (((*piVar36 != -1) && (*piVar36 != local_2e0)) && (local_2e0 != -3)) {
     return 0;
   }
-  tStack_1a4.left = ((int)(*(float *)local_330 + 6291456.0) << 10) >> 0xb;
-  tStack_1a4.top = ((int)(*(float *)(local_330 + 4) + 6291456.0) << 10) >> 0xb;
-  tStack_1a4.right = ((int)(*(float *)(local_330 + 8) + 6291456.0) << 10) >> 0xb;
-  tStack_1a4.bottom = ((int)(*(float *)(local_330 + 0xc) + 6291456.0) << 10) >> 0xb;
-  tStack_194.left = ((int)(*(float *)local_338 + 6291456.0) << 10) >> 0xb;
-  tStack_194.top = ((int)(*(float *)(local_338 + 4) + 6291456.0) << 10) >> 0xb;
-  tStack_194.right = ((int)(*(float *)(local_338 + 8) + 6291456.0) << 10) >> 0xb;
-  tStack_194.bottom = ((int)(*(float *)(local_338 + 0xc) + 6291456.0) << 10) >> 0xb;
-  tStack_184.left = ((int)(*(float *)param_6 + 6291456.0) << 10) >> 0xb;
-  uStack_170 = 0;
-  tStack_184.top = ((int)(*(float *)(param_6 + 4) + 6291456.0) << 10) >> 0xb;
-  tStack_184.right = ((int)(*(float *)(param_6 + 8) + 6291456.0) << 10) >> 0xb;
-  local_368 = *(float *)(param_6 + 0xc) + 6291456.0;
-  tStack_184.bottom = ((int)local_368 << 10) >> 0xb;
-  DStack_174 = param_9;
-  lVar34 = (**(code **)(*(longlong *)pIVar41 + 0x18))(pIVar41,&local_108);
-  DStack_15c = *(DXGI_COLOR_SPACE_TYPE *)(lVar34 + 8);
-  local_148 = 2;
-  uStack_140 = ConvertSDRBoostToSDRWhiteLevel(local_2c8,DStack_15c);
-  bVar27 = wil::details::FeatureImpl<__WilFeatureTraits_Feature_ComposedFlipPerf>::
+  tStack_194.left = ((int)(*(float *)local_358 + 6291456.0) << 10) >> 0xb;
+  tStack_194.top = ((int)(*(float *)(local_358 + 4) + 6291456.0) << 10) >> 0xb;
+  tStack_194.right = ((int)(*(float *)(local_358 + 8) + 6291456.0) << 10) >> 0xb;
+  tStack_194.bottom = ((int)(*(float *)(local_358 + 0xc) + 6291456.0) << 10) >> 0xb;
+  tStack_184.left = ((int)(*(float *)local_360 + 6291456.0) << 10) >> 0xb;
+  tStack_184.top = ((int)(*(float *)(local_360 + 4) + 6291456.0) << 10) >> 0xb;
+  tStack_184.right = ((int)(*(float *)(local_360 + 8) + 6291456.0) << 10) >> 0xb;
+  tStack_184.bottom = ((int)(*(float *)(local_360 + 0xc) + 6291456.0) << 10) >> 0xb;
+  tStack_174.left = ((int)(*(float *)param_7 + 6291456.0) << 10) >> 0xb;
+  uStack_160 = 0;
+  tStack_174.top = ((int)(*(float *)(param_7 + 4) + 6291456.0) << 10) >> 0xb;
+  tStack_174.right = ((int)(*(float *)(param_7 + 8) + 6291456.0) << 10) >> 0xb;
+  tStack_174.bottom = ((int)(*(float *)(param_7 + 0xc) + 6291456.0) << 10) >> 0xb;
+  DStack_164 = param_10;
+  lVar35 = (**(code **)(*(longlong *)pIVar41 + 0x18))(pIVar41,&local_118);
+  DStack_14c = *(DXGI_COLOR_SPACE_TYPE *)(lVar35 + 8);
+  local_138 = 2;
+  uStack_130 = ConvertSDRBoostToSDRWhiteLevel(local_2d8,DStack_14c);
+  bVar26 = wil::details::FeatureImpl<__WilFeatureTraits_Feature_ComposedFlipPerf>::
            __private_IsEnabled((FeatureImpl<__WilFeatureTraits_Feature_ComposedFlipPerf> *)
                                &`private:_static_class_wil::details::FeatureImpl<__WilFeatureTraits_Feature_ComposedFlipPerf>&___ptr64___cdecl_wil::Feature<__WilFeatureTraits_Feature_ComposedFlipPerf>::GetImpl(void)'
                                 ::__l2::impl);
-  if (((bVar27) && (iVar30 = (**(code **)(*(longlong *)param_2 + 0x58))(param_2), iVar30 == 2)) &&
-     ((*(float *)(this + 0x4be4) - *(float *)(this + 0x4bdc)) *
-      (*(float *)(this + 0x4be0) - *(float *)(this + 0x4bd8)) <
-      (*(float *)(param_6 + 8) - *(float *)param_6) *
-      (*(float *)(param_6 + 0xc) - *(float *)(param_6 + 4)))) {
-    uVar6 = *(undefined8 *)(param_6 + 8);
-    *(undefined8 *)(this + 0x4bd8) = *(undefined8 *)param_6;
-    *(undefined8 *)(this + 0x4be0) = uVar6;
-  }
-  local_368 = (float)(in_R10D & 0xffffff00);
-  if ((*(int *)(this + 0x4bb8) < 2000) && ((param_10 & 3) != 0)) {
-    bVar27 = TMilRect<int,tagRECT,D2D_POINTANDSIZE_L,RectUniqueness::_CMilRectL_>::DoesContain
+  if (((bVar26) && (iVar32 = (**(code **)(*(longlong *)param_3 + 0x58))(param_3), iVar32 == 2)) &&
+     ((*(float *)(this + 0x4c6c) - *(float *)(this + 0x4c64)) *
+      (*(float *)(this + 0x4c68) - *(float *)(this + 0x4c60)) <
+      (*(float *)(param_7 + 0xc) - *(float *)(param_7 + 4)) *
+      (*(float *)(param_7 + 8) - *(float *)param_7))) {
+    uVar6 = *(undefined8 *)(param_7 + 8);
+    *(undefined8 *)(this + 0x4c60) = *(undefined8 *)param_7;
+    *(undefined8 *)(this + 0x4c68) = uVar6;
+  }
+  bVar26 = false;
+  if ((*(int *)(this + 0x4c40) < 2000) && ((param_11 & 3) != 0)) {
+    bVar26 = TMilRect<int,tagRECT,D2D_POINTANDSIZE_L,RectUniqueness::_CMilRectL_>::DoesContain
                        ((TMilRect<int,tagRECT,D2D_POINTANDSIZE_L,RectUniqueness::_CMilRectL_> *)
-                        &tStack_184,
+                        &tStack_174,
                         (TMilRect<int,struct_tagRECT,struct_D2D_POINTANDSIZE_L,struct_RectUniqueness::_CMilRectL_>
-                         *)&tStack_194);
-    local_368 = (float)(uint)!bVar27;
-  }
-  local_340 = IsIntelWorkaroundNeeded(this,&tStack_1a4,&tStack_194,&tStack_184);
-  local_360 = TMilRect<int,tagRECT,D2D_POINTANDSIZE_L,RectUniqueness::_CMilRectL_>::IsEmpty
-                        ((TMilRect<int,tagRECT,D2D_POINTANDSIZE_L,RectUniqueness::_CMilRectL_> *)
-                         param_13);
-  piVar35 = (int *)(**(code **)(*(longlong *)param_3 + 0x40))(param_3,&local_330);
-  if (*piVar35 != local_2d8) {
+                         *)&tStack_184);
+    bVar26 = !bVar26;
+  }
+  bVar27 = IsIntelWorkaroundNeeded(this,&tStack_194,&tStack_184,&tStack_174);
+  bVar28 = wil::details::FeatureImpl<__WilFeatureTraits_Feature_ContentOnTop>::__private_IsEnabled
+                     ((FeatureImpl<__WilFeatureTraits_Feature_ContentOnTop> *)
+                      &`private:_static_class_wil::details::FeatureImpl<__WilFeatureTraits_Feature_ContentOnTop>&___ptr64___cdecl_wil::Feature<__WilFeatureTraits_Feature_ContentOnTop>::GetImpl(void)'
+                       ::__l2::impl);
+  if (bVar28) {
+    param_14 = (TMilRect_<int,tagRECT,D2D_POINTANDSIZE_L,Mil3DRectL,RectUniqueness::_CMilRectL_> *)
+               CVisitedContent::CalcContentOnTop((CVisitedContent *)(this + 0x4ba0),local_338);
+  }
+  auVar1 = *(undefined1 (*) [16])param_14;
+  local_338 = (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
+                [16])auVar1;
+  local_1b8[0] = auVar1;
+  bVar28 = TMilRect<int,tagRECT,D2D_POINTANDSIZE_L,RectUniqueness::_CMilRectL_>::IsEmpty
+                     ((TMilRect<int,tagRECT,D2D_POINTANDSIZE_L,RectUniqueness::_CMilRectL_> *)
+                      local_1b8);
+  piVar36 = (int *)(**(code **)(*(longlong *)param_4 + 0x40))(param_4,&local_358);
+  if (*piVar36 != local_2e8) {
     return 0;
   }
-  if (piVar35[1] != local_2d4) {
+  if (piVar36[1] != local_2e4) {
     return 0;
   }
-  cVar43 = (**(code **)(*(longlong *)param_3 + 0x38))(param_3);
-  if (cVar43 != '\0') {
-    lVar34 = (**(code **)(*(longlong *)param_3 + 0x28))(param_3);
-    bVar27 = CD2DContext::IsHardwareProtectionDisabled((CD2DContext *)(lVar34 + 0x10));
-    if (bVar27) {
+  cVar42 = (**(code **)(*(longlong *)param_4 + 0x38))(param_4);
+  if (cVar42 != '\0') {
+    lVar35 = (**(code **)(*(longlong *)param_4 + 0x28))(param_4);
+    bVar29 = CD2DContext::IsHardwareProtectionDisabled((CD2DContext *)(lVar35 + 0x10));
+    if (bVar29) {
       return 0;
     }
   }
-  OVar31 = CalcOverlaySize(this,(DXGI_MULTIPLANE_OVERLAY_ATTRIBUTES *)&local_1a8);
-  local_338 = (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> *
+  OVar33 = CalcOverlaySize(this,(DXGI_MULTIPLANE_OVERLAY_ATTRIBUTES *)&local_198);
+  local_360 = (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> *
               )0x0;
-  local_364 = OVar31;
-  (*(code *)**(undefined8 **)param_3)
-            (param_3,&_GUID_51e2a1f0_4a0d_4788_800f_3cee7a2512a6,&local_338);
-  local_330 = (IAdvancedDirectFlipBitmapRealization *)0x0;
+  (*(code *)**(undefined8 **)param_4)
+            (param_4,&_GUID_51e2a1f0_4a0d_4788_800f_3cee7a2512a6,&local_360);
+  local_358 = (IAdvancedDirectFlipBitmapRealization *)0x0;
   if ((*(longlong *)(*(longlong *)(g_pComposition + 0x268) + 0x20) -
        *(longlong *)(*(longlong *)(g_pComposition + 0x268) + 0x18) == 8) &&
-     (lVar34 = (**(code **)(*(longlong *)param_3 + 0x28))(), *(int *)(lVar34 + 0x26c) < 0xc80)) {
-    if (local_330 != (IAdvancedDirectFlipBitmapRealization *)0x0) {
-      (**(code **)(*(longlong *)local_330 + 0x10))();
-    }
-    ISwapChainRealization::QueryInterface<IAdvancedDirectFlipBitmapRealization>(param_3,&local_330);
+     (lVar35 = (**(code **)(*(longlong *)param_4 + 0x28))(param_4), *(int *)(lVar35 + 0x26c) < 0xc80
+     )) {
+    if (local_358 != (IAdvancedDirectFlipBitmapRealization *)0x0) {
+      (**(code **)(*(longlong *)local_358 + 0x10))();
+    }
+    ISwapChainRealization::QueryInterface<IAdvancedDirectFlipBitmapRealization>(param_4,&local_358);
   }
   if ((Microsoft_Windows_Dwm_CoreEnableBits._1_1_ & 2) != 0) {
-    pEVar36 = (Enum *)(**(code **)(*(longlong *)pIVar41 + 0x18))(pIVar41,&local_f8);
-    local_35c = *pEVar36;
+    puVar37 = (undefined4 *)(**(code **)(*(longlong *)pIVar41 + 0x18))(pIVar41,&local_f8);
+    local_350[0] = *puVar37;
+    (**(code **)(*(longlong *)pIVar41 + 0x20))(pIVar41,&local_308);
     (**(code **)(*(longlong *)pIVar41 + 0x20))(pIVar41,&local_2f8);
-    (**(code **)(*(longlong *)pIVar41 + 0x20))(pIVar41,&local_2e8);
-    (**(code **)(*(longlong *)param_3 + 0x98))(param_3);
-    (**(code **)(*(longlong *)param_3 + 0x90))(param_3);
-    (**(code **)(*(longlong *)param_3 + 0xa8))(param_3);
-    (**(code **)(*(longlong *)(local_358 + 0x10) + 0x18))();
+    (**(code **)(*(longlong *)param_4 + 0x98))(param_4);
+    (**(code **)(*(longlong *)param_4 + 0x90))();
+    (**(code **)(*(longlong *)param_4 + 0xa8))(param_4);
+    (**(code **)(*(longlong *)(param_4 + 0x10) + 0x18))();
     McTemplateU0xdddddddqqddddddddddddqqq_EventWriteTransfer();
-    param_3 = local_358;
-    pIVar41 = local_318;
-    param_2 = local_320;
-    this = local_328;
-    OVar31 = local_364;
-  }
-  bVar27 = false;
-  if ((OVar31 == 2) && (this[0x4c00] == (COverlayContext)0x0)) {
-    if (local_338 ==
+    pIVar41 = local_328;
+    param_3 = local_348[0];
+    this = local_108[0];
+  }
+  bVar29 = false;
+  if ((OVar33 == 2) && (this[0x4c8a] == (COverlayContext)0x0)) {
+    if (local_360 ==
         (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> *)0x0)
     {
-      uVar33 = (**(code **)(*(longlong *)param_2 + 0x48))(param_2);
-      bVar27 = IsCandidateDirectFlipCompatible
-                         (this,param_2,param_3,(DXGI_MULTIPLANE_OVERLAY_ATTRIBUTES *)&local_1a8,
-                          uVar33,param_11);
+      uVar34 = (**(code **)(*(longlong *)param_3 + 0x48))(param_3);
+      bVar29 = IsCandidateDirectFlipCompatible
+                         (this,param_3,param_4,(DXGI_MULTIPLANE_OVERLAY_ATTRIBUTES *)&local_198,
+                          uVar34,param_12);
       goto LAB_0;
     }
 LAB_1:
-    cVar29 = '\x01';
-    bVar27 = wil::details::FeatureImpl<__WilFeatureTraits_Feature_DWM_MPO_Enhancement>::
+    bVar29 = wil::details::FeatureImpl<__WilFeatureTraits_Feature_DWM_MPO_Enhancement>::
              __private_IsEnabled((FeatureImpl<__WilFeatureTraits_Feature_DWM_MPO_Enhancement> *)
                                  &`private:_static_class_wil::details::FeatureImpl<__WilFeatureTraits_Feature_DWM_MPO_Enhancement>&___ptr64___cdecl_wil::Feature<__WilFeatureTraits_Feature_DWM_MPO_Enhancement>::GetImpl(void)'
                                   ::__l2::impl);
-    if (bVar27) {
-      cVar43 = local_338 ==
+    if (bVar29) {
+      cVar42 = local_360 ==
                (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
                 *)0x0;
-      bVar27 = OverlaysEnabled(this);
-      if (cVar43 == '\0') {
-        if (bVar27) goto LAB_2;
+      bVar29 = OverlaysEnabled(this);
+      if (cVar42 == '\0') {
+        if (bVar29) goto LAB_2;
         goto LAB_3;
       }
-      bVar27 = !bVar27;
+      bVar29 = !bVar29;
 LAB_4:
-      if ((bVar27) && ((OVar31 != 2 || (local_360 == '\0')))) {
+      if ((bVar29) && ((OVar33 != 2 || (!bVar28)))) {
 LAB_3:
-        pTVar40 = local_350;
-        pIVar41 = local_358;
-        pCVar42 = local_348;
-        cVar43 = '\0';
+        bVar29 = false;
         goto LAB_5;
       }
     }
     else {
-      uVar33 = *(uint *)(this + 0x28);
-      if (local_338 ==
+      uVar34 = *(uint *)(this + 0x28);
+      if (local_360 ==
           (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> *)0x0
          ) {
-        if (*(uint *)(this + 0x2c) <= uVar33) {
-          uVar33 = *(uint *)(this + 0x2c);
+        if (*(uint *)(this + 0x2c) <= uVar34) {
+          uVar34 = *(uint *)(this + 0x2c);
         }
-        bVar27 = uVar33 == 1;
+        bVar29 = uVar34 == 1;
         goto LAB_4;
       }
-      if (uVar33 < 2) goto LAB_3;
+      if (uVar34 < 2) goto LAB_3;
 LAB_2:
       if (*(int *)(this + 0x30) == 0) goto LAB_3;
     }
-    this_00 = (RenderTargetInfo *)(**(code **)(*(longlong *)(*(longlong *)this + 8) + 0x18))();
-    bVar27 = RenderTargetInfo::IsHDR(this_00);
-    pTVar40 = local_350;
-    pIVar41 = local_358;
-    pCVar42 = local_348;
-    cVar43 = cVar29;
-    if ((bVar27) &&
-       (lVar34 = (**(code **)(*(longlong *)param_3 + 0x28))(param_3), pTVar40 = local_350,
-       pIVar41 = local_358, pCVar42 = local_348, cVar43 = '\x01',
-       *(int *)(lVar34 + 0x380) == 0x4d4f4351)) {
-      bVar27 = wil::details::FeatureImpl<__WilFeatureTraits_Feature_DWM_MPO_Enhancement>::
+    bVar29 = true;
+    this_00 = (RenderTargetInfo *)
+              (**(code **)(*(longlong *)(*(longlong *)this + 8) + 0x18))
+                        ((longlong *)(*(longlong *)this + 8),local_1b8);
+    bVar28 = RenderTargetInfo::IsHDR(this_00);
+    if ((bVar28) &&
+       (lVar35 = (**(code **)(*(longlong *)param_4 + 0x28))(param_4),
+       *(int *)(lVar35 + 0x380) == 0x4d4f4351)) {
+      bVar28 = wil::details::FeatureImpl<__WilFeatureTraits_Feature_DWM_MPO_Enhancement>::
                __private_IsEnabled((FeatureImpl<__WilFeatureTraits_Feature_DWM_MPO_Enhancement> *)
                                    &`private:_static_class_wil::details::FeatureImpl<__WilFeatureTraits_Feature_DWM_MPO_Enhancement>&___ptr64___cdecl_wil::Feature<__WilFeatureTraits_Feature_DWM_MPO_Enhancement>::GetImpl(void)'
                                     ::__l2::impl);
-      if (bVar27) {
-        cVar28 = (**(code **)(*(longlong *)param_2 + 0x98))(param_2);
-        pTVar40 = local_350;
-        pIVar41 = local_358;
-        pCVar42 = local_348;
-        cVar43 = cVar29;
-        if ((cVar28 != '\0') && (local_364 == 0)) {
-          cVar43 = '\0';
+      if (bVar28) {
+        cVar42 = (**(code **)(*(longlong *)param_3 + 0x98))(param_3);
+        if ((cVar42 != '\0') && (OVar33 == 0)) {
+          bVar29 = false;
         }
       }
       else {
-        cVar29 = (**(code **)(*(longlong *)param_2 + 0x98))(param_2);
-        pTVar40 = local_350;
-        pIVar41 = local_358;
-        pCVar42 = local_348;
-        if (cVar29 != '\0') {
-          cVar43 = local_364 == 2;
+        cVar42 = (**(code **)(*(longlong *)param_3 + 0x98))(param_3);
+        if (cVar42 != '\0') {
+          bVar29 = OVar33 == 2;
         }
       }
     }
   }
   else {
 LAB_0:
-    if (bVar27 == false) goto LAB_1;
-    bVar27 = wil::details::FeatureImpl<__WilFeatureTraits_Feature_DWM_MPO_Enhancement>::
+    if (bVar29 == false) goto LAB_1;
+    bVar29 = wil::details::FeatureImpl<__WilFeatureTraits_Feature_DWM_MPO_Enhancement>::
              __private_IsEnabled((FeatureImpl<__WilFeatureTraits_Feature_DWM_MPO_Enhancement> *)
                                  &`private:_static_class_wil::details::FeatureImpl<__WilFeatureTraits_Feature_DWM_MPO_Enhancement>&___ptr64___cdecl_wil::Feature<__WilFeatureTraits_Feature_DWM_MPO_Enhancement>::GetImpl(void)'
                                   ::__l2::impl);
-    pIVar38 = (IAdvancedDirectFlipBitmapRealization *)0x0;
-    if (!bVar27) {
-      bVar27 = RGBOverlaysEnabled(this);
-      if ((!bVar27) || (*(int *)(this + 0x4bb8) < 0x898)) goto LAB_6;
+    iVar32 = 0;
+    if (!bVar29) {
+      bVar29 = RGBOverlaysEnabled(this);
+      if ((!bVar29) || (*(int *)(this + 0x4c40) < 0x898)) goto LAB_6;
       goto LAB_1;
     }
-    bVar27 = OverlaysEnabled(this);
-    if ((!bVar27) || (iVar30 = (int)pIVar38, *(int *)(this + 0x4bb8) < 0x898)) {
-      iVar30 = 1;
-    }
-    if (iVar30 == 0) goto LAB_1;
+    bVar29 = OverlaysEnabled(this);
+    if ((!bVar29) || (*(int *)(this + 0x4c40) < 0x898)) {
+      iVar32 = 1;
+    }
+    if (iVar32 == 0) goto LAB_1;
 LAB_6:
-    cVar43 = (char)pIVar38;
+    bVar29 = false;
     if (((byte)Microsoft_Windows_Dwm_CoreEnableBits & 0x10) != 0) {
-      puVar37 = (undefined8 *)
-                (**(code **)(*(longlong *)(param_3 + 0x10) + 0x18))(param_3 + 0x10,&local_318);
+      puVar38 = (undefined8 *)
+                (**(code **)(*(longlong *)(param_4 + 0x10) + 0x18))(param_4 + 0x10,&local_328);
       McTemplateU0p_EventWriteTransfer
-                (*(undefined4 *)puVar37,&EVTDESC_ETWGUID_DIRECTFLIP_CANDIDATERECORDEVENT,
-                 CONCAT44((int)((ulonglong)*puVar37 >> 0x20),*(undefined4 *)puVar37));
-      pIVar38 = (IAdvancedDirectFlipBitmapRealization *)0x0;
-    }
-    EVar32 = 2;
-    if (local_360 != (char)pIVar38) goto LAB_7;
-    if (local_330 == pIVar38) {
-      pTVar40 = local_350;
-      pIVar41 = local_358;
-      pCVar42 = local_348;
-      if (param_14 != (bool)(char)pIVar38) {
-LAB_8:
-        local_35c = 1;
-        EVar32 = local_35c;
-        goto LAB_7;
-      }
+                (*(undefined4 *)puVar38,&EVTDESC_ETWGUID_DIRECTFLIP_CANDIDATERECORDEVENT,
+                 CONCAT44((int)((ulonglong)*puVar38 >> 0x20),*(undefined4 *)puVar38));
+    }
+    bVar30 = wil::details::FeatureImpl<__WilFeatureTraits_Feature_ContentOnTop>::__private_IsEnabled
+                       ((FeatureImpl<__WilFeatureTraits_Feature_ContentOnTop> *)
+                        &`private:_static_class_wil::details::FeatureImpl<__WilFeatureTraits_Feature_ContentOnTop>&___ptr64___cdecl_wil::Feature<__WilFeatureTraits_Feature_ContentOnTop>::GetImpl(void)'
+                         ::__l2::impl);
+    local_388 = param_15;
+    if (((bVar30) && (local_388 = false, this[0x4bc0] != (COverlayContext)0x0)) &&
+       (this[0x4bc1] == (COverlayContext)0x0)) {
+      local_388 = true;
+    }
+    EVar40 = 2;
+    if (bVar28) {
+LAB_7:
+      CDirectFlipInfo::Init
+                ((CDirectFlipInfo *)(this + 0x4bc8),*(IOverlayMonitorTarget **)this,param_1,param_3,
+                 EVar40,(TMilRect_<int,tagRECT,D2D_POINTANDSIZE_L,Mil3DRectL,RectUniqueness::_CMilRectL_>
+                         *)local_1b8);
+      local_338[0] = (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
+                      )local_1b8[0][0];
+      local_338[1] = (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
+                      )local_1b8[0][1];
+      local_338[2] = (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
+                      )local_1b8[0][2];
+      local_338[3] = (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
+                      )local_1b8[0][3];
+      local_338[4] = (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
+                      )local_1b8[0][4];
+      local_338[5] = (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
+                      )local_1b8[0][5];
+      local_338[6] = (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
+                      )local_1b8[0][6];
+      local_338[7] = (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
+                      )local_1b8[0][7];
+      local_338[8] = (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
+                      )local_1b8[0][8];
+      local_338[9] = (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
+                      )local_1b8[0][9];
+      local_338[10] =
+           (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>)
+           local_1b8[0][10];
+      local_338[0xb] =
+           (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>)
+           local_1b8[0][0xb];
+      local_338[0xc] =
+           (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>)
+           local_1b8[0][0xc];
+      local_338[0xd] =
+           (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>)
+           local_1b8[0][0xd];
+      local_338[0xe] =
+           (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>)
+           local_1b8[0][0xe];
+      local_338[0xf] =
+           (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>)
+           local_1b8[0][0xf];
+      bVar29 = false;
+    }
+    else if (local_358 == (IAdvancedDirectFlipBitmapRealization *)0x0) {
+      EVar40 = 1;
+      if (local_388 != false) goto LAB_7;
     }
     else {
       plVar4 = *(longlong **)this;
       pcVar5 = *(code **)(*plVar4 + 0x18);
-      piVar35 = (int *)(**(code **)(*(longlong *)pIVar41 + 0x18))(param_3 + 8,&local_118);
-      iVar30 = *piVar35;
-      piVar35 = (int *)(*pcVar5)(plVar4);
-      pIVar41 = local_358;
-      if (iVar30 == *piVar35) {
-        if (param_14) {
-          local_35c = 4;
+      piVar36 = (int *)(**(code **)(*(longlong *)pIVar41 + 0x18))(pIVar41,local_108);
+      iVar32 = *piVar36;
+      piVar36 = (int *)(*pcVar5)(plVar4,&local_128);
+      if (iVar32 == *piVar36) {
+        if (local_388 == false) {
+          EVar40 = 3;
           if ((Microsoft_Windows_Dwm_CoreEnableBits._1_1_ & 2) != 0) {
-            puVar37 = (undefined8 *)
-                      (**(code **)(*(longlong *)(local_358 + 0x10) + 0x18))
-                                (local_358 + 0x10,&local_328);
-            puVar39 = &EVTDESC_ADVANCED_DIRECTFLIP_NORESTORE_RECORDCANDIDATE;
-            goto LAB_9;
+            puVar38 = (undefined8 *)
+                      (**(code **)(*(longlong *)(param_4 + 0x10) + 0x18))(param_4 + 0x10,local_348);
+            puVar39 = &EVTDESC_ADVANCED_DIRECTFLIP_RECORDCANDIDATE;
+LAB_8:
+            McTemplateU0xqqqqt_EventWriteTransfer
+                      (*(undefined4 *)puVar38,puVar39,
+                       CONCAT44((int)((ulonglong)*puVar38 >> 0x20),*(undefined4 *)puVar38),1);
           }
-          EVar32 = 4;
         }
         else {
-          local_35c = 3;
-          EVar32 = local_35c;
+          EVar40 = 4;
           if ((Microsoft_Windows_Dwm_CoreEnableBits._1_1_ & 2) != 0) {
-            puVar37 = (undefined8 *)
-                      (**(code **)(*(longlong *)(local_358 + 0x10) + 0x18))
-                                (local_358 + 0x10,&local_328);
-            puVar39 = &EVTDESC_ADVANCED_DIRECTFLIP_RECORDCANDIDATE;
-LAB_9:
-            McTemplateU0xqqqqt_EventWriteTransfer
-                      (*(undefined4 *)puVar37,puVar39,
-                       CONCAT44((int)((ulonglong)*puVar37 >> 0x20),*(undefined4 *)puVar37),1);
-            EVar32 = local_35c;
+            puVar38 = (undefined8 *)
+                      (**(code **)(*(longlong *)(param_4 + 0x10) + 0x18))(param_4 + 0x10,local_348);
+            puVar39 = &EVTDESC_ADVANCED_DIRECTFLIP_NORESTORE_RECORDCANDIDATE;
+            goto LAB_8;
           }
         }
-LAB_7:
-        pCVar42 = local_348;
-        pTVar40 = local_350;
-        CDirectFlipInfo::Init
-                  ((CDirectFlipInfo *)(this + 0x4b40),*(IOverlayMonitorTarget **)this,local_348,
-                   param_2,EVar32,local_350);
-        pIVar41 = local_358;
-      }
-      else {
-        if (param_14) goto LAB_8;
-        pTVar40 = local_350;
-        pCVar42 = local_348;
-        if (((byte)Microsoft_Windows_Dwm_CoreEnableBits & 0x10) != 0) {
-          (**(code **)(*(longlong *)(local_358 + 0x10) + 0x18))();
-          McTemplateU0xqqdddd_EventWriteTransfer();
-          pTVar40 = local_350;
-          pCVar42 = local_348;
-        }
+        goto LAB_7;
+      }
+      if (local_388 != false) {
+        EVar40 = 1;
+        goto LAB_7;
+      }
+      if (((byte)Microsoft_Windows_Dwm_CoreEnableBits & 0x10) != 0) {
+        puVar38 = (undefined8 *)
+                  (**(code **)(*(longlong *)(param_4 + 0x10) + 0x18))(param_4 + 0x10,local_348);
+        McTemplateU0xqqdddd_EventWriteTransfer
+                  (*(undefined4 *)puVar38,auVar1._8_8_,
+                   CONCAT44((int)((ulonglong)*puVar38 >> 0x20),*(undefined4 *)puVar38));
       }
     }
   }
 LAB_5:
-  OVar31 = local_364;
-  bVar27 = wil::details::FeatureImpl<__WilFeatureTraits_Feature_DDisplay_AggCheckMpo>::
+  bVar28 = wil::details::FeatureImpl<__WilFeatureTraits_Feature_DDisplay_AggCheckMpo>::
            __private_IsEnabled((FeatureImpl<__WilFeatureTraits_Feature_DDisplay_AggCheckMpo> *)
                                &`private:_static_class_wil::details::FeatureImpl<__WilFeatureTraits_Feature_DDisplay_AggCheckMpo>&___ptr64___cdecl_wil::Feature<__WilFeatureTraits_Feature_DDisplay_AggCheckMpo>::GetImpl(void)'
                                 ::__l2::impl);
-  cVar29 = '\0';
-  if (bVar27) {
-    if (cVar43 == '\0') goto LAB_10;
-  }
-  else if ((cVar43 == '\0') ||
-          (((this[0x4c00] != (COverlayContext)0x0 && (OVar31 == 0)) &&
+  if (bVar28) {
+    if (!bVar29) goto LAB_9;
+  }
+  else if ((!bVar29) ||
+          (((this[0x4c8a] != (COverlayContext)0x0 && (OVar33 == 0)) &&
            (*(longlong *)(*(longlong *)(g_pComposition + 0x268) + 0x20) -
-            *(longlong *)(*(longlong *)(g_pComposition + 0x268) + 0x18) != 8)))) goto LAB_10;
-  if (local_330 != (IAdvancedDirectFlipBitmapRealization *)0x0) {
-    cVar29 = (**(code **)(*(longlong *)local_330 + 0x18))();
-  }
-  pCVar25 = local_320;
-  cVar43 = (**(code **)(*(longlong *)local_320 + 0x88))();
-  if (((cVar43 == '\0') && (local_368._0_1_ == '\0')) && ((local_340 == '\0' && (cVar29 == '\0'))))
-  {
-    if ((param_11) &&
-       (iVar30 = (**(code **)(**(longlong **)this + 0x60))(), iVar30 - 1U < 0xfffffffe)) {
-      if ((tStack_194.left < 0) || (tStack_194.top < 0)) {
-        param_11 = false;
-      }
-      else {
-        local_138 = CONCAT44(tStack_194.top,tStack_194.left);
-        uStack_130 = CONCAT44(tStack_194.bottom,tStack_194.right);
-        this_01 = GetMonitorTransform(this);
-        CMonitorTransform::GetClipBox(this_01,SUB81(&local_118,0));
-        param_11 = TMilRect<unsigned_int,MilRectU,Mil3DRectU,RectUniqueness::NotNeeded>::DoesContain
-                             ((TMilRect<unsigned_int,MilRectU,Mil3DRectU,RectUniqueness::NotNeeded>
-                               *)&local_118,
-                              (TMilRect<unsigned_int,struct_MilRectU,struct_Mil3DRectU,struct_RectUniqueness::NotNeeded>
-                               *)&local_138);
-      }
-    }
-    uVar33 = (**(code **)(*(longlong *)pCVar25 + 0x48))();
-    bVar27 = IsCandidateOverlayCompatible
-                       (this,pCVar42,pCVar25,pIVar41,
-                        (DXGI_MULTIPLANE_OVERLAY_ATTRIBUTES *)&local_1a8,OVar31,
-                        local_338 !=
+            *(longlong *)(*(longlong *)(g_pComposition + 0x268) + 0x18) != 8)))) goto LAB_9;
+  bVar28 = false;
+  cVar42 = bVar28;
+  if (local_358 != (IAdvancedDirectFlipBitmapRealization *)0x0) {
+    cVar42 = (**(code **)(*(longlong *)local_358 + 0x18))();
+  }
+  cVar31 = (**(code **)(*(longlong *)param_3 + 0x88))(param_3);
+  if (((cVar31 == '\0') && (!bVar26)) && ((!bVar27 && (cVar42 == '\0')))) {
+    if (((param_12) &&
+        (iVar32 = (**(code **)(**(longlong **)this + 0x60))(), auVar1 = local_1b8[0],
+        iVar32 - 1U < 0xfffffffe)) &&
+       ((param_12 = bVar28, -1 < tStack_184.left && (-1 < tStack_184.top)))) {
+      local_1b8[0]._0_4_ = tStack_184.left;
+      auVar25 = local_1b8[0];
+      local_1b8[0]._12_4_ = auVar1._12_4_;
+      local_1b8[0]._0_8_ = auVar25._0_8_;
+      local_1b8[0]._8_4_ = tStack_184.right;
+      local_1b8[0]._4_4_ = tStack_184.top;
+      local_1b8[0]._12_4_ = tStack_184.bottom;
+      this_01 = GetMonitorTransform(this);
+      CMonitorTransform::GetClipBox(this_01,SUB81(&local_128,0));
+      param_12 = TMilRect<unsigned_int,MilRectU,Mil3DRectU,RectUniqueness::NotNeeded>::DoesContain
+                           ((TMilRect<unsigned_int,MilRectU,Mil3DRectU,RectUniqueness::NotNeeded> *)
+                            &local_128,
+                            (TMilRect<unsigned_int,struct_MilRectU,struct_Mil3DRectU,struct_RectUniqueness::NotNeeded>
+                             *)local_1b8);
+    }
+    uVar34 = (**(code **)(*(longlong *)param_3 + 0x48))(param_3);
+    bVar26 = IsCandidateOverlayCompatible
+                       (this,param_1,param_3,param_4,
+                        (DXGI_MULTIPLANE_OVERLAY_ATTRIBUTES *)&local_198,OVar33,
+                        local_360 !=
                         (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
-                         *)0x0,uVar33,param_11);
-    pTVar26 = local_308;
-    if (bVar27) {
-      uVar16 = CONCAT44(tStack_1a4.left,local_1a8);
-      uVar17 = CONCAT44(tStack_1a4.right,tStack_1a4.top);
-      uVar18 = CONCAT44(tStack_194.left,tStack_1a4.bottom);
-      uVar19 = CONCAT44(tStack_194.right,tStack_194.top);
-      local_138 = *(undefined8 *)param_15;
-      uStack_130 = *(undefined8 *)(param_15 + 8);
-      uVar20 = CONCAT44(tStack_184.left,tStack_194.bottom);
-      uVar21 = CONCAT44(tStack_184.right,tStack_184.top);
-      uVar22 = CONCAT44(DStack_174,tStack_184.bottom);
-      uVar23 = CONCAT44(uStack_16c,uStack_170);
-      uVar24 = CONCAT44(DStack_15c,uStack_160);
-      uVar2 = *(undefined4 *)(param_8 + 0x40);
-      local_118 = *(undefined8 *)pTVar40;
-      uStack_110 = *(undefined8 *)(pTVar40 + 8);
-      local_f8 = *(undefined8 *)param_8;
-      uStack_f0 = *(undefined8 *)(param_8 + 8);
-      local_108 = *(undefined8 *)(param_8 + 0x10);
-      uStack_100 = *(undefined8 *)(param_8 + 0x18);
-      local_2e8 = *(undefined8 *)(param_8 + 0x20);
-      uStack_2e0 = *(undefined8 *)(param_8 + 0x28);
-      local_2f8 = *(undefined8 *)(param_8 + 0x30);
-      uStack_2f0 = *(undefined8 *)(param_8 + 0x38);
-      uVar6 = *(undefined8 *)param_7;
-      uVar7 = *(undefined8 *)(param_7 + 8);
-      uVar8 = *(undefined8 *)(param_7 + 0x10);
-      uVar9 = *(undefined8 *)(param_7 + 0x18);
-      uVar10 = *(undefined8 *)(param_7 + 0x20);
-      uVar11 = *(undefined8 *)(param_7 + 0x28);
-      uVar12 = *(undefined8 *)(param_7 + 0x30);
-      uVar13 = *(undefined8 *)(param_7 + 0x38);
-      uVar3 = *(undefined4 *)(param_7 + 0x40);
-      local_308 = local_158;
-      uStack_300 = uStack_150;
-      uVar14 = *(undefined8 *)pTVar26;
-      uVar15 = *(undefined8 *)(pTVar26 + 8);
-      local_318 = (ISwapChainRealization *)CONCAT44(uStack_144,local_148);
-      uStack_310 = uStack_140;
-      uStack_30c = uStack_13c;
-      (**(code **)(*(longlong *)pCVar25 + 0x40))(pCVar25);
+                         *)0x0,uVar34,param_12);
+    if (bVar26) {
+      bVar26 = wil::details::FeatureImpl<__WilFeatureTraits_Feature_ContentOnTop>::
+               __private_IsEnabled((FeatureImpl<__WilFeatureTraits_Feature_ContentOnTop> *)
+                                   &`private:_static_class_wil::details::FeatureImpl<__WilFeatureTraits_Feature_ContentOnTop>&___ptr64___cdecl_wil::Feature<__WilFeatureTraits_Feature_ContentOnTop>::GetImpl(void)'
+                                    ::__l2::impl);
+      if (bVar26) {
+        param_16 = (TMilRect_<int,tagRECT,D2D_POINTANDSIZE_L,Mil3DRectL,RectUniqueness::_CMilRectL_>
+                    *)CVisitedContent::CalcInvertedContentOnTop
+                                ((CVisitedContent *)(this + 0x4ba0),
+                                 (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
+                                  *)local_1b8);
+      }
+      local_1b8[0]._0_8_ = *(undefined8 *)param_16;
+      local_1b8[0]._8_8_ = *(undefined8 *)(param_16 + 8);
+      uVar16 = CONCAT44(tStack_194.left,local_198);
+      uVar17 = CONCAT44(tStack_194.right,tStack_194.top);
+      uVar18 = CONCAT44(tStack_184.left,tStack_194.bottom);
+      uVar19 = CONCAT44(tStack_184.right,tStack_184.top);
+      uVar2 = *(undefined4 *)(param_9 + 0x40);
+      uVar20 = CONCAT44(tStack_174.left,tStack_184.bottom);
+      uVar21 = CONCAT44(tStack_174.right,tStack_174.top);
+      uVar22 = CONCAT44(DStack_164,tStack_174.bottom);
+      uVar23 = CONCAT44(uStack_15c,uStack_160);
+      uVar24 = CONCAT44(DStack_14c,uStack_150);
+      local_128 = *(undefined8 *)param_9;
+      uStack_120 = *(undefined8 *)(param_9 + 8);
+      local_f8 = *(undefined8 *)(param_9 + 0x10);
+      uStack_f0 = *(undefined8 *)(param_9 + 0x18);
+      local_118 = *(undefined8 *)(param_9 + 0x20);
+      uStack_110 = *(undefined8 *)(param_9 + 0x28);
+      local_2f8 = *(undefined8 *)(param_9 + 0x30);
+      uStack_2f0 = *(undefined8 *)(param_9 + 0x38);
+      uVar6 = *(undefined8 *)param_8;
+      uVar7 = *(undefined8 *)(param_8 + 8);
+      uVar8 = *(undefined8 *)(param_8 + 0x10);
+      uVar9 = *(undefined8 *)(param_8 + 0x18);
+      uVar10 = *(undefined8 *)(param_8 + 0x20);
+      uVar11 = *(undefined8 *)(param_8 + 0x28);
+      uVar12 = *(undefined8 *)(param_8 + 0x30);
+      uVar13 = *(undefined8 *)(param_8 + 0x38);
+      uVar3 = *(undefined4 *)(param_8 + 0x40);
+      local_308 = local_148;
+      uStack_300 = uStack_140;
+      uStack_310 = CONCAT44(uStack_12c,uStack_130);
+      uVar14 = *(undefined8 *)local_318;
+      uVar15 = *(undefined8 *)(local_318 + 8);
+      local_318 = (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
+                   *)CONCAT44(uStack_134,local_138);
+      (**(code **)(*(longlong *)param_3 + 0x40))(param_3);
       local_2b8 = local_f8;
       uStack_2b0 = uStack_f0;
-      local_2a8 = local_108;
-      uStack_2a0 = uStack_100;
-      local_298 = local_2e8;
-      uStack_290 = uStack_2e0;
-      local_288 = local_2f8;
-      uStack_280 = uStack_2f0;
-      local_1c8 = (undefined4)local_308;
-      uStack_1c4 = local_308._4_4_;
-      uStack_1c0 = (undefined4)uStack_300;
-      uStack_1bc = uStack_300._4_4_;
-      local_1b8 = (undefined4)local_318;
-      uStack_1b4 = local_318._4_4_;
-      uStack_1b0 = uStack_310;
-      uStack_1ac = uStack_30c;
-      local_1d8 = local_168;
-      local_278 = uVar2;
-      local_268 = uVar6;
-      uStack_260 = uVar7;
-      local_258 = uVar8;
-      uStack_250 = uVar9;
-      local_248 = uVar10;
-      uStack_240 = uVar11;
-      local_238 = uVar12;
-      uStack_230 = uVar13;
-      local_228 = uVar3;
-      local_218 = uVar16;
-      uStack_210 = uVar17;
-      local_208 = uVar18;
-      uStack_200 = uVar19;
-      local_1f8 = uVar20;
-      uStack_1f0 = uVar21;
-      local_1e8 = uVar22;
-      uStack_1e0 = uVar23;
-      uStack_1d0 = uVar24;
-      local_f8 = uVar14;
-      uStack_f0 = uVar15;
+      local_2c8 = local_128;
+      uStack_2c0 = uStack_120;
+      local_298 = local_2f8;
+      uStack_290 = uStack_2f0;
+      local_2a8 = local_118;
+      uStack_2a0 = uStack_110;
+      local_1d8 = local_308;
+      uStack_1d0 = uStack_300;
+      local_1e8 = local_158;
+      local_1c8 = local_318;
+      uStack_1c0 = uStack_310;
+      local_288 = uVar2;
+      local_278 = uVar6;
+      uStack_270 = uVar7;
+      local_268 = uVar8;
+      uStack_260 = uVar9;
+      local_258 = uVar10;
+      uStack_250 = uVar11;
+      local_248 = uVar12;
+      uStack_240 = uVar13;
+      local_238 = uVar3;
+      local_228 = uVar16;
+      uStack_220 = uVar17;
+      local_218 = uVar18;
+      uStack_210 = uVar19;
+      local_208 = uVar20;
+      uStack_200 = uVar21;
+      local_1f8 = uVar22;
+      uStack_1f0 = uVar23;
+      uStack_1e0 = uVar24;
+      local_128 = uVar14;
+      uStack_120 = uVar15;
       detail::
       vector_facade<COverlayContext::OverlayPlaneInfo,detail::buffer_impl<COverlayContext::OverlayPlaneInfo,16,1,detail::liberal_expansion_policy>_>
       ::
       emplace_back<COverlayContext*___ptr64,CVisual*___ptr64,CCompositionSurfaceInfo*___ptr64,unsigned___int64,DXGI_MULTIPLANE_OVERLAY_ATTRIBUTES,TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,CCornerRects,CMILMatrix,TMilRect_<int,tagRECT,D2D_POINTANDSIZE_L,Mil3DRectL,RectUniqueness::_CMilRectL_>,TMilRect_<int,struct_tagRECT,struct_D2D_POINTANDSIZE_L,struct_Mil3DRectL,struct_RectUniqueness::_CMilRectL_>,bool,bool,bool,OverlaySize>
                 ((vector_facade<COverlayContext::OverlayPlaneInfo,detail::buffer_impl<COverlayContext::OverlayPlaneInfo,16,1,detail::liberal_expansion_policy>_>
-                  *)(this + 0x58),this,local_348,pCVar25);
+                  *)(this + 0x58),this,param_1,param_3);
       if ((Microsoft_Windows_Dwm_CoreEnableBits._1_1_ & 2) != 0) {
-        pIVar1 = pIVar41 + 8;
-        (**(code **)(*(longlong *)pIVar1 + 0x18))(pIVar1,&local_138);
-        (**(code **)(*(longlong *)pIVar1 + 0x20))(pIVar1,&local_108);
-        (**(code **)(*(longlong *)pIVar1 + 0x20))(pIVar1,&local_2e8);
-        (**(code **)(*(longlong *)(pIVar41 + 0x10) + 0x18))(pIVar41 + 0x10,&local_2f8);
+        pIVar41 = param_4 + 8;
+        (**(code **)(*(longlong *)pIVar41 + 0x18))(pIVar41,&local_128);
+        (**(code **)(*(longlong *)pIVar41 + 0x20))(pIVar41,&local_118);
+        (**(code **)(*(longlong *)pIVar41 + 0x20))(pIVar41,&local_2f8);
+        (**(code **)(*(longlong *)(param_4 + 0x10) + 0x18))(param_4 + 0x10,&local_308);
         McTemplateU0xddqqddddddddddddqqq_EventWriteTransfer();
       }
     }
   }
-LAB_10:
+LAB_9:
   wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::
   ~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>
-            ((com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy> *)&local_330);
+            ((com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy> *)&local_358);
   wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::
   ~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>
-            ((com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy> *)&local_338);
+            ((com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy> *)&local_360);
   return 0;
 }
 

```


## CResourceFactory::Create

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,refcount,length,address,called|
|ratio|0.05|
|i_ratio|0.02|
|m_ratio|0.87|
|b_ratio|0.04|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|Create|Create|
|fullname|CResourceFactory::Create|CResourceFactory::Create|
|`refcount`|3|2|
|`length`|9107|12006|
|`called`|<details><summary>Expand for full list:<br>CAnimation::CAnimation<br>CAnimation::operator_new<br>CAnimationController::CAnimationController<br>CAnimationController::operator_new<br>CAnimationGlobalConfiguration::operator_new<br>CAnimationTrigger::CAnimationTrigger<br>CArithmeticCompositeEffect::CArithmeticCompositeEffect<br>CArithmeticCompositeEffect::operator_new<br>CAtlasedRectsGroup::operator_new<br>CAtlasedRectsMesh::operator_new<br>CBackdropBrush::operator_new</summary>CBaseAnimation::CBaseAnimation<br>CBaseExpression::CBaseExpression<br>CBitmapResource::CBitmapResource<br>CBlendEffect::operator_new<br>CBrightnessEffect::CBrightnessEffect<br>CBrush::operator_new<br>CCachedVisualImage::CCachedVisualImage<br>CCachedVisualImage::operator_new<br>CCaptureRenderTarget::CCaptureRenderTarget<br>CCaptureRenderTarget::operator_new<br>CColorBrush::operator_new<br>CColorMatrixEffect::CColorMatrixEffect<br>CColorMatrixEffect::operator_new<br>CCombinedGeometry::CCombinedGeometry<br>CCompiledEffectTemplate::operator_new<br>CComponentTransform2D::operator_new<br>CComponentTransform3D::CComponentTransform3D<br>CComponentTransform3D::operator_new<br>CCompositionAmbientLight::CCompositionAmbientLight<br>CCompositionAmbientLight::operator_new<br>CCompositionDistantLight::CCompositionDistantLight<br>CCompositionDistantLight::operator_new<br>CCompositionDynamicTexture::CCompositionDynamicTexture<br>CCompositionDynamicTexture::operator_new<br>CCompositionMipmapSurface::operator_new<br>CCompositionPointLight::CCompositionPointLight<br>CCompositionPointLight::operator_new<br>CCompositionSpotLight::CCompositionSpotLight<br>CCompositionSpotLight::operator_new<br>CConditionalExpression::CConditionalExpression<br>CConditionalExpression::operator_new<br>CContent::operator_new<br>CCrossContainerGuestReadWriteSharedSection::operator_new<br>CCursorVisual::CCursorVisual<br>CCursorVisual::operator_new<br>CDDisplayRenderTarget::CDDisplayRenderTarget<br>CDDisplayRenderTarget::operator_new<br>CDelegatedInkCanvas::CDelegatedInkCanvas<br>CDesktopTree::CDesktopTree<br>CDesktopTree::operator_new<br>CDropShadow::CDropShadow<br>CDropShadow::operator_new<br>CEffectBrush::CEffectBrush<br>CEffectBrush::operator_new<br>CEffectGroup::operator_new<br>CExpression::CExpression<br>CExpression::operator_new<br>CFilterEffect::CFilterEffect<br>CFloodEffect::CFloodEffect<br>CGaussianBlurEffect::CGaussianBlurEffect<br>CGaussianBlurEffect::operator_new<br>CGdiSpriteBitmap::CGdiSpriteBitmap<br>CGdiSpriteBitmap::operator_new<br>CGenericInk::CGenericInk<br>CGeometry2DGroup::CGeometry2DGroup<br>CGeometry2DGroup::operator_new<br>CGeometry::CGeometry<br>CGeometryGroup::CGeometryGroup<br>CHolographicDisplay::CHolographicDisplay<br>CHolographicDisplay::operator_new<br>CHolographicExclusiveMode::CHolographicExclusiveMode<br>CHolographicExclusiveMode::operator_new<br>CHolographicExclusiveView::CHolographicExclusiveView<br>CHolographicExclusiveView::operator_new<br>CHolographicInteropTarget::CHolographicInteropTarget<br>CHolographicInteropTarget::operator_new<br>CHolographicInteropTexture::CHolographicInteropTexture<br>CHolographicInteropTexture::operator_new<br>CHolographicViewer::CHolographicViewer<br>CHoverPointerSource::operator_new<br>CImageLegacyMilBrush::CImageLegacyMilBrush<br>CImageLegacyMilBrush::operator_new<br>CIndirectSwapchainRenderTarget::CIndirectSwapchainRenderTarget<br>CIndirectSwapchainRenderTarget::operator_new<br>CInjectionAnimation::operator_new<br>CInteraction::CInteraction<br>CInteraction::operator_new<br>CInteractionTracker::CInteractionTracker<br>CInteractionTracker::operator_new<br>CInteractionTrackerBindingManager::CInteractionTrackerBindingManager<br>CKeyframeAnimation::CKeyframeAnimation<br>CKeyframeAnimation::operator_new<br>CLayerVisual::CLayerVisual<br>CLayerVisual::operator_new<br>CLegacyRenderTarget::CLegacyRenderTarget<br>CLegacyRenderTarget::operator_new<br>CLegacyStereoRenderTarget::CLegacyStereoRenderTarget<br>CLegacyStereoRenderTarget::operator_new<br>CLegacyVisualCaptureRenderTarget::operator_new<br>CLinearGradientBrush::CLinearGradientBrush<br>CLinearGradientBrush::operator_new<br>CLinearTransferEffect::CLinearTransferEffect<br>CMILRefCountImpl::AddReference<br>CMagnifierRenderTarget::CMagnifierRenderTarget<br>CMagnifierRenderTarget::operator_new<br>CManipulation::CManipulation<br>CManipulation::operator_new<br>CManipulationTransform::CManipulationTransform<br>CManipulationTransform::operator_new<br>CMatrixTransform3D::CMatrixTransform3D<br>CMatrixTransform3D::operator_new<br>CMeshGeometry2D::CMeshGeometry2D<br>CNaturalAnimation::CNaturalAnimation<br>CNaturalAnimation::operator_new<br>CNineGridBrush::CNineGridBrush<br>CNotificationResource::operator_new<br>CPathGeometry::CPathGeometry<br>CPrimitiveGroup::CPrimitiveGroup<br>CPrimitiveGroup::operator_new<br>CProjectedShadow::CProjectedShadow<br>CProjectedShadow::operator_new<br>CProjectedShadowCaster::CProjectedShadowCaster<br>CProjectedShadowCaster::operator_new<br>CProjectedShadowScene::CProjectedShadowScene<br>CPropertySet::CPropertySet<br>CPropertySet::operator_new<br>CRadialGradientBrush::CRadialGradientBrush<br>CRectangleGeometry::CRectangleGeometry<br>CRectangleGeometry::operator_new<br>CRedirectVisual::operator_new<br>CRegionGeometry::operator_new<br>CRemoteAppRenderTarget::CRemoteAppRenderTarget<br>CRemoteAppRenderTarget::operator_new<br>CRemoteRenderTarget::CRemoteRenderTarget<br>CRenderData::CRenderData<br>CResource::operator_new<br>CSceneMesh::CSceneMesh<br>CSceneMeshRendererComponent::CSceneMeshRendererComponent<br>CSceneMetallicRoughnessMaterialGeneratedT<CSceneMetallicRoughnessMaterial,CScenePbrMaterial>::CSceneMetallicRoughnessMaterialGeneratedT<CSceneMetallicRoughnessMaterial,CScenePbrMaterial><br>CSceneModelTransform::operator_new<br>CSceneNode::CSceneNode<br>CSceneSurfaceMaterialInput::CSceneSurfaceMaterialInput<br>CSceneVisual::CSceneVisual<br>CSceneVisual::operator_new<br>CShadowEffect::CShadowEffect<br>CShapeVisual::operator_new<br>CSpriteVectorShape::CSpriteVectorShape<br>CSurfaceBrush::CSurfaceBrush<br>CSurfaceBrush::operator_new<br>CSynchronousSuperWetInk::CSynchronousSuperWetInk<br>CTableTransferEffect::CTableTransferEffect<br>CTransform3D::CTransform3D<br>CTransform3DGroup::CTransform3DGroup<br>CTransformGroup::CTransformGroup<br>CTransformGroup::operator_new<br>CTranslateTransform3D::operator_new<br>CTurbulenceEffect::CTurbulenceEffect<br>CTurbulenceEffect::operator_new<br>CViewBox::CViewBox<br>CViewBox::operator_new<br>CVirtualMonitorCaptureRenderTarget::CVirtualMonitorCaptureRenderTarget<br>CVirtualMonitorCaptureRenderTarget::operator_new<br>CVisual::CVisual<br>CVisual::operator_new<br>CVisualBitmap::operator_new<br>CVisualCapture::CVisualCapture<br>CVisualCapture::operator_new<br>CVisualSurface::CVisualSurface<br>CWindowNode::CWindowNode<br>CWindowNode::operator_new<br>DefaultHeap::AllocClear<br>FUN_1802ef016<br>FUN_1802ef069<br>FUN_1802ef0c0<br>MilInstrumentationCheckHR_MaybeFailFast<br>ModuleFailFastForHRESULT<br>_guard_dispatch_icall$thunk$10345483385596137414<br>memset</details>|<details><summary>Expand for full list:<br>CAnimation::CAnimation<br>CAnimationController::CAnimationController<br>CAnimationTrigger::CAnimationTrigger<br>CBaseAnimation::CBaseAnimation<br>CBaseExpression::CBaseExpression<br>CBitmapResource::CBitmapResource<br>CBrush::CBrush<br>CCachedVisualImage::CCachedVisualImage<br>CCachedVisualImage::operator_new<br>CCaptureRenderTarget::CCaptureRenderTarget<br>CColorBrush::operator_new</summary>CColorMatrixEffect::CColorMatrixEffect<br>CCombinedGeometry::CCombinedGeometry<br>CComponentTransform3D::CComponentTransform3D<br>CCompositionAmbientLight::CCompositionAmbientLight<br>CCompositionDistantLight::CCompositionDistantLight<br>CCompositionPointLight::CCompositionPointLight<br>CCompositionSpotLight::CCompositionSpotLight<br>CCompositionSurfaceBitmap::operator_new<br>CConditionalExpression::CConditionalExpression<br>CContent::operator_new<br>CCursorVisual::CCursorVisual<br>CDDisplayRenderTarget::CDDisplayRenderTarget<br>CDelegatedInkCanvas::CDelegatedInkCanvas<br>CDesktopTree::CDesktopTree<br>CDesktopTree::operator_new<br>CDropShadow::CDropShadow<br>CFilterEffect::CFilterEffect<br>CGdiSpriteBitmap::CGdiSpriteBitmap<br>CGenericInk::CGenericInk<br>CGeometry2DGroup::CGeometry2DGroup<br>CGeometry::CGeometry<br>CGeometryGroup::CGeometryGroup<br>CHolographicDisplay::CHolographicDisplay<br>CHolographicExclusiveMode::CHolographicExclusiveMode<br>CHolographicExclusiveView::CHolographicExclusiveView<br>CHolographicInteropTarget::CHolographicInteropTarget<br>CHolographicInteropTarget::operator_new<br>CHolographicInteropTexture::CHolographicInteropTexture<br>CHolographicViewer::CHolographicViewer<br>CIndirectSwapchainRenderTarget::CIndirectSwapchainRenderTarget<br>CInjectionAnimation::CInjectionAnimation<br>CInk::CInk<br>CInteraction::CInteraction<br>CInteractionTracker::CInteractionTracker<br>CInteractionTrackerBindingManager::CInteractionTrackerBindingManager<br>CKeyframeAnimation::CKeyframeAnimation<br>CKeyframeAnimation::operator_new<br>CLegacyRenderTarget::CLegacyRenderTarget<br>CLegacyStereoRenderTarget::CLegacyStereoRenderTarget<br>CLinearGradientBrush::CLinearGradientBrush<br>CLinearGradientLegacyMilBrush::CLinearGradientLegacyMilBrush<br>CLinearTransferEffect::CLinearTransferEffect<br>CMagnifierRenderTarget::CMagnifierRenderTarget<br>CManipulation::CManipulation<br>CManipulationTransform::CManipulationTransform<br>CMeshGeometry2D::CMeshGeometry2D<br>CNaturalAnimation::CNaturalAnimation<br>CNineGridBrush::CNineGridBrush<br>CPrimitiveGroup::CPrimitiveGroup<br>CProjectedShadow::CProjectedShadow<br>CProjectedShadow::operator_new<br>CProjectedShadowCaster::CProjectedShadowCaster<br>CProjectedShadowScene::CProjectedShadowScene<br>CRadialGradientBrush::CRadialGradientBrush<br>CRegionGeometry::CRegionGeometry<br>CRemoteAppRenderTarget::CRemoteAppRenderTarget<br>CRemoteRenderTarget::CRemoteRenderTarget<br>CRenderData::CRenderData<br>CResource::operator_new<br>CSceneMesh::CSceneMesh<br>CSceneMeshRendererComponent::CSceneMeshRendererComponent<br>CSceneMetallicRoughnessMaterial::CSceneMetallicRoughnessMaterial<br>CSceneNode::CSceneNode<br>CSceneNode::operator_new<br>CSceneSurfaceMaterialInput::CSceneSurfaceMaterialInput<br>CSceneVisual::CSceneVisual<br>CShadowEffect::CShadowEffect<br>CSpriteVectorShape::CSpriteVectorShape<br>CSurfaceBrush::CSurfaceBrush<br>CSynchronousSuperWetInk::CSynchronousSuperWetInk<br>CTableTransferEffect::CTableTransferEffect<br>CTextVisual::CTextVisual<br>CTransform3D::CTransform3D<br>CTransform3DGroup::CTransform3DGroup<br>CTransform::CTransform<br>CTransformGroup::CTransformGroup<br>CTurbulenceEffect::CTurbulenceEffect<br>CViewBox::CViewBox<br>CVirtualMonitorCaptureRenderTarget::CVirtualMonitorCaptureRenderTarget<br>CVisual::CVisual<br>CVisual::operator_new<br>CVisualCapture::CVisualCapture<br>CVisualSurface::CVisualSurface<br>CWindowNode::CWindowNode<br>DefaultHeap::AllocClear<br>MilInstrumentationCheckHR_MaybeFailFast<br>ModuleFailFastForHRESULT<br>_guard_dispatch_icall$thunk$10345483385596137414<br>memset</details>|
|calling|CComposition::Channel_CreateResource|CComposition::Channel_CreateResource|
|paramcount|4|4|
|`address`|18014c618|1800db15c|
|sig|long __cdecl Create(CComposition * param_1, CChannelContext * param_2, MIL_RESOURCE_TYPE param_3, CResource * * param_4)|long __cdecl Create(CComposition * param_1, CChannelContext * param_2, MIL_RESOURCE_TYPE param_3, CResource * * param_4)|
|sym_type|Function|Function|
|sym_source|IMPORTED|ANALYSIS|
|external|False|False|

### CResourceFactory::Create Called Diff


```diff
--- CResourceFactory::Create called
+++ CResourceFactory::Create called
@@ -2 +1,0 @@
-CAnimation::operator_new
@@ -4,2 +2,0 @@
-CAnimationController::operator_new
-CAnimationGlobalConfiguration::operator_new
@@ -7,5 +3,0 @@
-CArithmeticCompositeEffect::CArithmeticCompositeEffect
-CArithmeticCompositeEffect::operator_new
-CAtlasedRectsGroup::operator_new
-CAtlasedRectsMesh::operator_new
-CBackdropBrush::operator_new
@@ -15,3 +7 @@
-CBlendEffect::operator_new
-CBrightnessEffect::CBrightnessEffect
-CBrush::operator_new
+CBrush::CBrush
@@ -21 +10,0 @@
-CCaptureRenderTarget::operator_new
@@ -24 +12,0 @@
-CColorMatrixEffect::operator_new
@@ -26,2 +13,0 @@
-CCompiledEffectTemplate::operator_new
-CComponentTransform2D::operator_new
@@ -29 +14,0 @@
-CComponentTransform3D::operator_new
@@ -31 +15,0 @@
-CCompositionAmbientLight::operator_new
@@ -33,4 +16,0 @@
-CCompositionDistantLight::operator_new
-CCompositionDynamicTexture::CCompositionDynamicTexture
-CCompositionDynamicTexture::operator_new
-CCompositionMipmapSurface::operator_new
@@ -38 +17,0 @@
-CCompositionPointLight::operator_new
@@ -40 +19 @@
-CCompositionSpotLight::operator_new
+CCompositionSurfaceBitmap::operator_new
@@ -42 +20,0 @@
-CConditionalExpression::operator_new
@@ -44 +21,0 @@
-CCrossContainerGuestReadWriteSharedSection::operator_new
@@ -46 +22,0 @@
-CCursorVisual::operator_new
@@ -48 +23,0 @@
-CDDisplayRenderTarget::operator_new
@@ -53,6 +27,0 @@
-CDropShadow::operator_new
-CEffectBrush::CEffectBrush
-CEffectBrush::operator_new
-CEffectGroup::operator_new
-CExpression::CExpression
-CExpression::operator_new
@@ -60,3 +28,0 @@
-CFloodEffect::CFloodEffect
-CGaussianBlurEffect::CGaussianBlurEffect
-CGaussianBlurEffect::operator_new
@@ -64 +29,0 @@
-CGdiSpriteBitmap::operator_new
@@ -67 +31,0 @@
-CGeometry2DGroup::operator_new
@@ -71 +34,0 @@
-CHolographicDisplay::operator_new
@@ -73 +35,0 @@
-CHolographicExclusiveMode::operator_new
@@ -75 +36,0 @@
-CHolographicExclusiveView::operator_new
@@ -79 +39,0 @@
-CHolographicInteropTexture::operator_new
@@ -81,3 +40,0 @@
-CHoverPointerSource::operator_new
-CImageLegacyMilBrush::CImageLegacyMilBrush
-CImageLegacyMilBrush::operator_new
@@ -85,2 +42,2 @@
-CIndirectSwapchainRenderTarget::operator_new
-CInjectionAnimation::operator_new
+CInjectionAnimation::CInjectionAnimation
+CInk::CInk
@@ -88 +44,0 @@
-CInteraction::operator_new
@@ -90 +45,0 @@
-CInteractionTracker::operator_new
@@ -94,2 +48,0 @@
-CLayerVisual::CLayerVisual
-CLayerVisual::operator_new
@@ -97 +49,0 @@
-CLegacyRenderTarget::operator_new
@@ -99,2 +50,0 @@
-CLegacyStereoRenderTarget::operator_new
-CLegacyVisualCaptureRenderTarget::operator_new
@@ -102 +52 @@
-CLinearGradientBrush::operator_new
+CLinearGradientLegacyMilBrush::CLinearGradientLegacyMilBrush
@@ -104 +53,0 @@
-CMILRefCountImpl::AddReference
@@ -106 +54,0 @@
-CMagnifierRenderTarget::operator_new
@@ -108 +55,0 @@
-CManipulation::operator_new
@@ -110,3 +56,0 @@
-CManipulationTransform::operator_new
-CMatrixTransform3D::CMatrixTransform3D
-CMatrixTransform3D::operator_new
@@ -115 +58,0 @@
-CNaturalAnimation::operator_new
@@ -117,2 +59,0 @@
-CNotificationResource::operator_new
-CPathGeometry::CPathGeometry
@@ -120 +60,0 @@
-CPrimitiveGroup::operator_new
@@ -124 +63,0 @@
-CProjectedShadowCaster::operator_new
@@ -126,2 +64,0 @@
-CPropertySet::CPropertySet
-CPropertySet::operator_new
@@ -129,4 +66 @@
-CRectangleGeometry::CRectangleGeometry
-CRectangleGeometry::operator_new
-CRedirectVisual::operator_new
-CRegionGeometry::operator_new
+CRegionGeometry::CRegionGeometry
@@ -134 +67,0 @@
-CRemoteAppRenderTarget::operator_new
@@ -140,2 +73 @@
-CSceneMetallicRoughnessMaterialGeneratedT<CSceneMetallicRoughnessMaterial,CScenePbrMaterial>::CSceneMetallicRoughnessMaterialGeneratedT<CSceneMetallicRoughnessMaterial,CScenePbrMaterial>
-CSceneModelTransform::operator_new
+CSceneMetallicRoughnessMaterial::CSceneMetallicRoughnessMaterial
@@ -142,0 +75 @@
+CSceneNode::operator_new
@@ -145 +77,0 @@
-CSceneVisual::operator_new
@@ -147 +78,0 @@
-CShapeVisual::operator_new
@@ -150 +80,0 @@
-CSurfaceBrush::operator_new
@@ -152,0 +83 @@
+CTextVisual::CTextVisual
@@ -154,0 +86 @@
+CTransform::CTransform
@@ -156,2 +87,0 @@
-CTransformGroup::operator_new
-CTranslateTransform3D::operator_new
@@ -159 +88,0 @@
-CTurbulenceEffect::operator_new
@@ -161 +89,0 @@
-CViewBox::operator_new
@@ -163 +90,0 @@
-CVirtualMonitorCaptureRenderTarget::operator_new
@@ -166 +92,0 @@
-CVisualBitmap::operator_new
@@ -168 +93,0 @@
-CVisualCapture::operator_new
@@ -171 +95,0 @@
-CWindowNode::operator_new
@@ -173,3 +96,0 @@
-FUN_1802ef016
-FUN_1802ef069
-FUN_1802ef0c0
```


### CResourceFactory::Create Diff


```diff
--- CResourceFactory::Create
+++ CResourceFactory::Create
@@ -1,1737 +1,2110 @@
 
 /* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
    guard_dispatch_icall */
 /* public: static long __cdecl CResourceFactory::Create(class CComposition * __ptr64,class
    CChannelContext * __ptr64,enum MIL_RESOURCE_TYPE,class CResource * __ptr64 * __ptr64) */
 
 long __cdecl
 CResourceFactory::Create
           (CComposition *param_1,CChannelContext *param_2,MIL_RESOURCE_TYPE param_3,
           CResource **param_4)
 
 {
-  long lVar1;
-  CVisual *pCVar2;
-  undefined **ppuVar3;
-  CBitmapResource *this;
-  CRectangleGeometry *this_00;
-  CKeyframeAnimation *this_01;
-  CExpression *this_02;
-  CNineGridBrush *this_03;
-  CPropertySet *this_04;
-  CSurfaceBrush *this_05;
-  CVisual *this_06;
-  CGeometry *this_07;
-  CComponentTransform3D *this_08;
-  CPathGeometry *this_09;
-  CPrimitiveGroup *this_10;
-  CAnimationController *this_11;
-  CRenderData *this_12;
-  CWindowNode *this_13;
-  CInteraction *this_14;
-  CGdiSpriteBitmap *this_15;
-  CSpriteVectorShape *this_16;
-  CImageLegacyMilBrush *this_17;
-  CCachedVisualImage *this_18;
-  CManipulationTransform *this_19;
-  CVisualSurface *this_20;
-  CEffectBrush *this_21;
-  CLinearGradientBrush *this_22;
-  CLayerVisual *this_23;
-  CCaptureRenderTarget *this_24;
-  CGenericInk *this_25;
-  CConditionalExpression *this_26;
-  CManipulation *this_27;
-  CMeshGeometry2D *this_28;
-  CMatrixTransform3D *this_29;
-  CDropShadow *this_30;
-  void *pvVar4;
-  CGeometry2DGroup *this_31;
-  CAnimation *this_32;
-  CCombinedGeometry *this_33;
-  CArithmeticCompositeEffect *this_34;
-  CAnimationTrigger *this_35;
-  CBrightnessEffect *this_36;
-  CCompositionAmbientLight *this_37;
-  CColorMatrixEffect *this_38;
-  CCompositionDistantLight *this_39;
-  CCompositionSpotLight *this_40;
-  CCompositionPointLight *this_41;
-  CCompositionDynamicTexture *this_42;
-  CDesktopTree *this_43;
-  CDelegatedInkCanvas *this_44;
-  CDDisplayRenderTarget *this_45;
-  CCursorVisual *this_46;
-  CHolographicDisplay *this_47;
-  CGaussianBlurEffect *this_48;
-  CFloodEffect *this_49;
-  CHolographicExclusiveMode *this_50;
-  CBaseExpression *this_51;
-  CHolographicViewer *this_52;
-  CHolographicInteropTexture *this_53;
-  CHolographicInteropTarget *this_54;
-  CHolographicExclusiveView *this_55;
-  CLegacyStereoRenderTarget *this_56;
-  CInteractionTrackerBindingManager *this_57;
-  CInteractionTracker *this_58;
-  CMagnifierRenderTarget *this_59;
-  CLinearTransferEffect *this_60;
-  CProjectedShadow *this_61;
-  CNaturalAnimation *this_62;
-  CProjectedShadowCaster *this_63;
-  CRadialGradientBrush *this_64;
-  CProjectedShadowScene *this_65;
-  CRemoteAppRenderTarget *this_66;
-  CFilterEffect *pCVar5;
-  CRemoteRenderTarget *this_67;
-  CSceneMesh *this_68;
-  CShadowEffect *this_69;
-  CSceneVisual *this_70;
-  CSceneSurfaceMaterialInput *this_71;
-  CSceneNode *this_72;
-  CSceneMetallicRoughnessMaterialGeneratedT<CSceneMetallicRoughnessMaterial,CScenePbrMaterial>
-  *this_73;
-  CSceneMeshRendererComponent *this_74;
-  CTransform3D *pCVar6;
-  CSynchronousSuperWetInk *this_75;
+  CFilterEffect *this;
+  CAnimationTrigger *this_00;
+  CFilterEffect *pCVar1;
+  undefined **ppuVar2;
+  CAnimationController *this_01;
+  CAnimation *this_02;
+  CCaptureRenderTarget *this_03;
+  CCachedVisualImage *this_04;
+  CBitmapResource *this_05;
+  CCompositionAmbientLight *this_06;
+  CComponentTransform3D *this_07;
+  CCombinedGeometry *this_08;
+  CColorMatrixEffect *this_09;
+  CCompositionDistantLight *this_10;
+  CConditionalExpression *this_11;
+  CCompositionSpotLight *this_12;
+  CCompositionPointLight *this_13;
+  CDropShadow *this_14;
+  CDesktopTree *this_15;
+  CDelegatedInkCanvas *this_16;
+  CDDisplayRenderTarget *this_17;
+  CCursorVisual *this_18;
+  CGeometryGroup *this_19;
+  CGeometry2DGroup *this_20;
+  CGenericInk *this_21;
+  CGdiSpriteBitmap *this_22;
+  CHolographicDisplay *this_23;
+  CIndirectSwapchainRenderTarget *this_24;
+  undefined8 *puVar3;
+  CHolographicViewer *this_25;
+  CHolographicInteropTexture *this_26;
+  CHolographicInteropTarget *this_27;
+  CHolographicExclusiveView *this_28;
+  CHolographicExclusiveMode *this_29;
+  CInjectionAnimation *this_30;
+  CLegacyStereoRenderTarget *this_31;
+  CLegacyRenderTarget *this_32;
+  CKeyframeAnimation *this_33;
+  CInteractionTrackerBindingManager *this_34;
+  CInteractionTracker *this_35;
+  CInteraction *this_36;
+  CInk *this_37;
+  CManipulationTransform *this_38;
+  CManipulation *this_39;
+  CMagnifierRenderTarget *this_40;
+  CLinearTransferEffect *this_41;
+  CLinearGradientLegacyMilBrush *this_42;
+  CLinearGradientBrush *this_43;
+  CProjectedShadow *this_44;
+  CPrimitiveGroup *this_45;
+  CNineGridBrush *this_46;
+  CNaturalAnimation *this_47;
+  CMeshGeometry2D *this_48;
+  CProjectedShadowCaster *this_49;
+  CRegionGeometry *this_50;
+  CRadialGradientBrush *this_51;
+  CProjectedShadowScene *this_52;
+  CRemoteAppRenderTarget *this_53;
+  CSceneMesh *this_54;
+  CRenderData *this_55;
+  CRemoteRenderTarget *this_56;
+  CSceneMeshRendererComponent *this_57;
+  CShadowEffect *this_58;
+  CSceneVisual *this_59;
+  CSceneSurfaceMaterialInput *this_60;
+  CSceneNode *this_61;
+  CSceneMetallicRoughnessMaterial *this_62;
+  CSurfaceBrush *this_63;
+  CSpriteVectorShape *this_64;
+  CSynchronousSuperWetInk *this_65;
+  CVirtualMonitorCaptureRenderTarget *this_66;
+  CViewBox *this_67;
+  CTurbulenceEffect *this_68;
+  CTransformGroup *this_69;
+  CTransform3DGroup *this_70;
+  CTextVisual *this_71;
+  CTableTransferEffect *this_72;
+  CVisual *this_73;
+  CWindowNode *this_74;
+  CVisualSurface *this_75;
   CVisualCapture *this_76;
-  CGeometryGroup *this_77;
-  CIndirectSwapchainRenderTarget *this_78;
-  CLegacyRenderTarget *this_79;
-  CVirtualMonitorCaptureRenderTarget *this_80;
-  CViewBox *this_81;
-  CTurbulenceEffect *this_82;
-  CTransformGroup *this_83;
-  CTransform3DGroup *this_84;
-  CTableTransferEffect *this_85;
-  CGeometry *pCVar7;
+  CTransform *pCVar4;
+  CTransform3D *pCVar5;
+  long lVar6;
   undefined8 unaff_retaddr;
-  uint uVar8;
+  uint uVar7;
   
-  this_06 = (CVisual *)0x0;
-  if (param_3 < 0x62) {
-    if (param_3 == 0x61) {
-      pCVar2 = CLegacyVisualCaptureRenderTarget::operator_new((__uint64)param_1);
-      if (pCVar2 != (CVisual *)0x0) {
-        *(undefined4 *)(pCVar2 + 8) = 0;
-        *(undefined8 *)(pCVar2 + 0x10) = 0;
-        *(CComposition **)(pCVar2 + 0x18) = param_1;
-        *(undefined8 *)(pCVar2 + 0x20) = 0;
-        *(undefined8 *)(pCVar2 + 0x30) = 0;
-        *(undefined4 *)(pCVar2 + 0x28) = 0;
-        ppuVar3 = &CLegacyVisualCaptureRenderTarget::_vftable_;
-        goto LAB_0;
-      }
-    }
-    else if (param_3 < 0x30) {
-      if (param_3 == 0x2f) {
-        pCVar2 = CCrossContainerGuestReadWriteSharedSection::operator_new((__uint64)param_1);
-        if (pCVar2 != (CVisual *)0x0) {
-          *(undefined4 *)(pCVar2 + 8) = 0;
-          *(undefined8 *)(pCVar2 + 0x10) = 0;
-          *(CComposition **)(pCVar2 + 0x18) = param_1;
-          *(undefined8 *)(pCVar2 + 0x20) = 0;
-          *(undefined8 *)(pCVar2 + 0x30) = 0;
-          *(undefined4 *)(pCVar2 + 0x28) = 0;
-          ppuVar3 = &CCrossContainerGuestReadWriteSharedSection::_vftable_;
-          *(undefined8 *)(pCVar2 + 0x58) = 0;
-          *(undefined8 *)(pCVar2 + 0x60) = 0;
-          goto LAB_0;
-        }
-      }
-      else if (param_3 < 0x18) {
+  pCVar1 = (CFilterEffect *)0x0;
+  if (param_3 < 99) {
+    if (param_3 == 0x62) {
+      this = DefaultHeap::AllocClear(0x48);
+      if (this == (CFilterEffect *)0x0) {
+                    /* WARNING: Subroutine does not return */
+        ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+      }
+      *(undefined4 *)(this + 8) = 0;
+      *(longlong *)(this + 0x10) = 0;
+      *(CComposition **)(this + 0x18) = param_1;
+      *(longlong *)(this + 0x20) = 0;
+      *(longlong *)(this + 0x30) = 0;
+      *(undefined4 *)(this + 0x28) = 0;
+      ppuVar2 = &CLegacyVisualCaptureRenderTarget::_vftable_;
+      goto LAB_0;
+    }
+    if (param_3 < 0x2f) {
+      if (param_3 == 0x2e) {
+        this = DefaultHeap::AllocClear(0x80);
+        if (this == (CFilterEffect *)0x0) {
+                    /* WARNING: Subroutine does not return */
+          ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+        }
+        *(undefined4 *)(this + 8) = 0;
+        *(longlong *)(this + 0x20) = 0;
+        *(longlong *)(this + 0x10) = 0;
+        *(CComposition **)(this + 0x18) = param_1;
+        *(longlong *)(this + 0x30) = 0;
+        *(undefined4 *)(this + 0x28) = 0;
+        *(undefined ***)this = &CContainerVectorShape::_vftable_;
+        this[0x60] = (CFilterEffect)0x1;
+        *(longlong *)(this + 0x68) = 0;
+        *(longlong *)(this + 0x70) = 0;
+LAB_1:
+        *(longlong *)(this + 0x58) = 0;
+        *(longlong *)(this + 0x50) = 0;
+        *(longlong *)(this + 0x78) = 0;
+        goto LAB_2;
+      }
+      if (param_3 < 0x18) {
         if (param_3 == 0x17) {
-          pCVar2 = CResource::operator_new(0x60);
-          if (pCVar2 != (CVisual *)0x0) {
-            *(undefined4 *)(pCVar2 + 8) = 0;
-            *(undefined8 *)(pCVar2 + 0x10) = 0;
-            *(CComposition **)(pCVar2 + 0x18) = param_1;
-            *(undefined8 *)(pCVar2 + 0x20) = 0;
-            *(undefined8 *)(pCVar2 + 0x30) = 0;
-            *(undefined4 *)(pCVar2 + 0x28) = 0;
-            *(undefined ***)pCVar2 = &CColorGradientStop::_vftable_;
-            *(undefined8 *)(pCVar2 + 0x48) = 0;
-            *(undefined8 *)(pCVar2 + 0x50) = 0;
-            *(undefined4 *)(pCVar2 + 0x58) = 0;
-            this_06 = pCVar2;
+          this = CResource::operator_new(0x60);
+          if (this != (CFilterEffect *)0x0) {
+            *(undefined4 *)(this + 8) = 0;
+            *(longlong *)(this + 0x20) = 0;
+            *(longlong *)(this + 0x10) = 0;
+            *(CComposition **)(this + 0x18) = param_1;
+            *(longlong *)(this + 0x30) = 0;
+            *(undefined4 *)(this + 0x28) = 0;
+            *(undefined ***)this = &CColorGradientStop::_vftable_;
+            *(longlong *)(this + 0x48) = 0;
+            *(longlong *)(this + 0x50) = 0;
+            *(undefined4 *)(this + 0x58) = 0;
+            goto LAB_2;
           }
         }
         else if (param_3 < 0xd) {
           if (param_3 == 0xc) {
-            pCVar2 = CResource::operator_new(0x48);
-            if (pCVar2 != (CVisual *)0x0) {
-              *(undefined4 *)(pCVar2 + 8) = 0;
-              *(undefined8 *)(pCVar2 + 0x10) = 0;
-              *(CComposition **)(pCVar2 + 0x18) = param_1;
-              *(undefined8 *)(pCVar2 + 0x20) = 0;
-              *(undefined8 *)(pCVar2 + 0x30) = 0;
-              *(undefined4 *)(pCVar2 + 0x28) = 0;
-              ppuVar3 = &CBatchDeferral::_vftable_;
+            this = CResource::operator_new(0x48);
+            if (this != (CFilterEffect *)0x0) {
+              *(undefined4 *)(this + 8) = 0;
+              *(longlong *)(this + 0x10) = 0;
+              *(CComposition **)(this + 0x18) = param_1;
+              *(longlong *)(this + 0x20) = 0;
+              *(longlong *)(this + 0x30) = 0;
+              *(undefined4 *)(this + 0x28) = 0;
+              ppuVar2 = &CBatchDeferral::_vftable_;
               goto LAB_0;
             }
           }
           else {
             if (param_3 == 1) {
-              this_06 = DefaultHeap::AllocClear(0xf8);
-              if (this_06 == (CVisual *)0x0) {
+              this = DefaultHeap::AllocClear(0xf8);
+              if (this == (CFilterEffect *)0x0) {
                     /* WARNING: Subroutine does not return */
                 ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
               }
-              CFilterEffect::CFilterEffect((CFilterEffect *)this_06,param_1);
-              *(undefined8 *)(this_06 + 0xb0) = 0;
-              *(undefined8 *)(this_06 + 0xb8) = 0x3f800000;
-              *(undefined8 *)(this_06 + 0xc4) = 0x3f800000;
-              *(undefined4 *)(this_06 + 0xd0) = 0x3f800000;
-              *(undefined ***)this_06 = &CAffineTransform2DEffect::_vftable_;
-              *(undefined4 *)(this_06 + 0xc0) = 0;
-              *(undefined4 *)(this_06 + 0xcc) = 0;
-              goto LAB_1;
+              CFilterEffect::CFilterEffect(this,param_1);
+              *(undefined8 *)(this + 0xb0) = 0;
+              *(undefined8 *)(this + 0xb8) = 0x3f800000;
+              *(undefined8 *)(this + 0xc4) = 0x3f800000;
+              *(undefined4 *)(this + 0xd0) = 0x3f800000;
+              *(undefined ***)this = &CAffineTransform2DEffect::_vftable_;
+              *(undefined4 *)(this + 0xc0) = 0;
+              *(undefined4 *)(this + 0xcc) = 0;
+              goto LAB_2;
             }
             if (param_3 == 2) {
-              this_32 = CAnimation::operator_new((__uint64)param_1);
-              if (this_32 != (CAnimation *)0x0) {
-                this_06 = (CVisual *)CAnimation::CAnimation(this_32,param_1);
-              }
+              this_02 = DefaultHeap::AllocClear(0x130);
+              if (this_02 == (CAnimation *)0x0) {
+                    /* WARNING: Subroutine does not return */
+                ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+              }
+              pCVar1 = (CFilterEffect *)CAnimation::CAnimation(this_02,param_1);
             }
             else if (param_3 == 3) {
-              this_11 = CAnimationController::operator_new((__uint64)param_1);
-              if (this_11 != (CAnimationController *)0x0) {
-                this_06 = (CVisual *)CAnimationController::CAnimationController(this_11,param_1);
-              }
-            }
-            else if (param_3 == 4) {
-              pCVar2 = CAnimationGlobalConfiguration::operator_new((__uint64)param_1);
-              if (pCVar2 != (CVisual *)0x0) {
-                *(undefined4 *)(pCVar2 + 8) = 0;
-                *(undefined8 *)(pCVar2 + 0x10) = 0;
-                *(CComposition **)(pCVar2 + 0x18) = param_1;
-                *(undefined8 *)(pCVar2 + 0x20) = 0;
-                *(undefined8 *)(pCVar2 + 0x30) = 0;
-                *(undefined4 *)(pCVar2 + 0x28) = 0;
-                ppuVar3 = &CAnimationGlobalConfiguration::_vftable_;
+              this_01 = DefaultHeap::AllocClear(0x80);
+              if (this_01 == (CAnimationController *)0x0) {
+                    /* WARNING: Subroutine does not return */
+                ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+              }
+              pCVar1 = (CFilterEffect *)CAnimationController::CAnimationController(this_01,param_1);
+            }
+            else {
+              if (param_3 == 4) {
+                this = DefaultHeap::AllocClear(0x58);
+                if (this == (CFilterEffect *)0x0) {
+                    /* WARNING: Subroutine does not return */
+                  ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+                }
+                *(undefined4 *)(this + 8) = 0;
+                *(longlong *)(this + 0x10) = 0;
+                *(CComposition **)(this + 0x18) = param_1;
+                *(longlong *)(this + 0x20) = 0;
+                *(longlong *)(this + 0x30) = 0;
+                *(undefined4 *)(this + 0x28) = 0;
+                ppuVar2 = &CAnimationGlobalConfiguration::_vftable_;
                 goto LAB_0;
               }
-            }
-            else if (param_3 == 5) {
-              this_35 = CArithmeticCompositeEffect::operator_new((__uint64)param_1);
-              if (this_35 != (CAnimationTrigger *)0x0) {
-                this_06 = (CVisual *)CAnimationTrigger::CAnimationTrigger(this_35,param_1);
-              }
-            }
-            else if (param_3 == 6) {
-              this_34 = CArithmeticCompositeEffect::operator_new((__uint64)param_1);
-              if (this_34 != (CArithmeticCompositeEffect *)0x0) {
-                this_06 = (CVisual *)
-                          CArithmeticCompositeEffect::CArithmeticCompositeEffect(this_34,param_1);
-              }
-            }
-            else if (param_3 == 7) {
-              pCVar2 = CAtlasedRectsGroup::operator_new((__uint64)param_1);
-              if (pCVar2 != (CVisual *)0x0) {
-                *(undefined4 *)(pCVar2 + 8) = 0;
-                *(undefined8 *)(pCVar2 + 0x10) = 0;
-                *(CComposition **)(pCVar2 + 0x18) = param_1;
-                *(undefined8 *)(pCVar2 + 0x20) = 0;
-                *(undefined8 *)(pCVar2 + 0x30) = 0;
-                *(undefined4 *)(pCVar2 + 0x28) = 0;
-                *(undefined8 *)(pCVar2 + 0x50) = 0;
-                *(undefined8 *)(pCVar2 + 0x58) = 0;
-                *(undefined8 *)(pCVar2 + 0x60) = 0;
-                *(undefined ***)pCVar2 = &CAtlasedRectsGroup::_vftable_;
-                *(undefined8 *)(pCVar2 + 0x68) = 0;
-                *(undefined8 *)(pCVar2 + 0x70) = 0;
-                pCVar2[0x78] = (CVisual)0x1;
-                this_06 = pCVar2;
-              }
-            }
-            else if (param_3 == 8) {
-              pCVar2 = CAtlasedRectsMesh::operator_new((__uint64)param_1);
-              if (pCVar2 != (CVisual *)0x0) {
-                *(undefined4 *)(pCVar2 + 8) = 0;
-                *(undefined8 *)(pCVar2 + 0x10) = 0;
-                *(CComposition **)(pCVar2 + 0x18) = param_1;
-                *(undefined8 *)(pCVar2 + 0x20) = 0;
-                *(undefined8 *)(pCVar2 + 0x30) = 0;
-                *(undefined4 *)(pCVar2 + 0x28) = 0;
-                *(undefined8 *)(pCVar2 + 0x50) = 0;
-                *(undefined8 *)(pCVar2 + 0x58) = 0;
-                *(undefined8 *)(pCVar2 + 0x60) = 0;
-                *(undefined8 *)(pCVar2 + 0x68) = 0;
-                *(undefined8 *)(pCVar2 + 0x70) = 0;
-                *(undefined8 *)(pCVar2 + 0x78) = 0;
-                *(undefined ***)pCVar2 = &CAtlasedRectsMesh::_vftable_;
-                *(undefined8 *)(pCVar2 + 0x80) = 0;
-                *(undefined8 *)(pCVar2 + 0x88) = 0;
-                pCVar2[0x90] = (CVisual)0x1;
-                this_06 = pCVar2;
-              }
+              if (param_3 != 5) {
+                if (param_3 == 6) {
+                  this = DefaultHeap::AllocClear(200);
+                  if (this == (CFilterEffect *)0x0) {
+                    /* WARNING: Subroutine does not return */
+                    ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+                  }
+                  CFilterEffect::CFilterEffect(this,param_1);
+                  *(undefined8 *)(this + 0xb0) = 0x3f800000;
+                  *(undefined ***)this = &CArithmeticCompositeEffect::_vftable_;
+                  *(undefined8 *)(this + 0xb8) = 0;
+                  *(undefined4 *)(this + 0xc0) = 0;
+                  goto LAB_2;
+                }
+                if (param_3 == 7) {
+                  this = DefaultHeap::AllocClear(0x80);
+                  if (this == (CFilterEffect *)0x0) {
+                    /* WARNING: Subroutine does not return */
+                    ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+                  }
+                  *(undefined4 *)(this + 8) = 0;
+                  *(longlong *)(this + 0x20) = 0;
+                  *(longlong *)(this + 0x10) = 0;
+                  *(CComposition **)(this + 0x18) = param_1;
+                  *(longlong *)(this + 0x30) = 0;
+                  *(undefined4 *)(this + 0x28) = 0;
+                  *(undefined ***)this = &CAtlasedRectsGroup::_vftable_;
+                  *(longlong *)(this + 0x50) = 0;
+                  *(longlong *)(this + 0x58) = 0;
+                  *(longlong *)(this + 0x60) = 0;
+                  *(longlong *)(this + 0x68) = 0;
+                  *(longlong *)(this + 0x70) = 0;
+                  this[0x78] = (CFilterEffect)0x1;
+                  goto LAB_2;
+                }
+                if (param_3 == 8) {
+                  this = DefaultHeap::AllocClear(0x98);
+                  if (this == (CFilterEffect *)0x0) {
+                    /* WARNING: Subroutine does not return */
+                    ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+                  }
+                  *(undefined4 *)(this + 8) = 0;
+                  *(longlong *)(this + 0x20) = 0;
+                  *(longlong *)(this + 0x10) = 0;
+                  *(CComposition **)(this + 0x18) = param_1;
+                  *(longlong *)(this + 0x30) = 0;
+                  *(undefined4 *)(this + 0x28) = 0;
+                  *(undefined ***)this = &CAtlasedRectsMesh::_vftable_;
+                  *(longlong *)(this + 0x50) = 0;
+                  *(longlong *)(this + 0x58) = 0;
+                  *(longlong *)(this + 0x60) = 0;
+                  *(longlong *)(this + 0x68) = 0;
+                  *(longlong *)(this + 0x70) = 0;
+                  *(longlong *)(this + 0x78) = 0;
+                  *(longlong *)(this + 0x80) = 0;
+                  *(longlong *)(this + 0x88) = 0;
+                  this[0x90] = (CFilterEffect)0x1;
+                  goto LAB_2;
+                }
+                if (param_3 != 9) goto LAB_3;
+                this = DefaultHeap::AllocClear(0x68);
+                if (this == (CFilterEffect *)0x0) {
+                    /* WARNING: Subroutine does not return */
+                  ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+                }
+                *(undefined4 *)(this + 8) = 0;
+                *(longlong *)(this + 0x20) = 0;
+                *(longlong *)(this + 0x10) = 0;
+                *(CComposition **)(this + 0x18) = param_1;
+                *(longlong *)(this + 0x30) = 0;
+                *(undefined4 *)(this + 0x28) = 0;
+                *(undefined ***)this = &CBackdropBrush::_vftable__for__CContent__;
+                goto LAB_4;
+              }
+              this_00 = DefaultHeap::AllocClear(200);
+              if (this_00 == (CAnimationTrigger *)0x0) {
+                    /* WARNING: Subroutine does not return */
+                ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+              }
+              pCVar1 = (CFilterEffect *)CAnimationTrigger::CAnimationTrigger(this_00,param_1);
+            }
+          }
+        }
+        else if (param_3 == 0xd) {
+          this_05 = CResource::operator_new(0x70);
+          if (this_05 != (CBitmapResource *)0x0) {
+            pCVar1 = (CFilterEffect *)
+                     CBitmapResource::CBitmapResource(this_05,param_1,(IBitmapRealization *)0x0);
+          }
+        }
+        else {
+          if (param_3 == 0xe) {
+            this = DefaultHeap::AllocClear(0xb8);
+            if (this == (CFilterEffect *)0x0) {
+                    /* WARNING: Subroutine does not return */
+              ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+            }
+            CFilterEffect::CFilterEffect(this,param_1);
+            ppuVar2 = &CBlendEffect::_vftable_;
+LAB_5:
+            *(undefined ***)this = ppuVar2;
+            *(undefined4 *)(this + 0xb0) = 0;
+            goto LAB_2;
+          }
+          if (param_3 == 0xf) {
+            this = DefaultHeap::AllocClear(0x68);
+            if (this == (CFilterEffect *)0x0) {
+                    /* WARNING: Subroutine does not return */
+              ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+            }
+            *(undefined4 *)(this + 8) = 0;
+            *(longlong *)(this + 0x20) = 0;
+            *(longlong *)(this + 0x10) = 0;
+            *(CComposition **)(this + 0x18) = param_1;
+            *(longlong *)(this + 0x30) = 0;
+            *(undefined4 *)(this + 0x28) = 0;
+            *(undefined ***)this = &CBlurredWallpaperBackdropBrush::_vftable__for__CContent__;
+LAB_4:
+            ppuVar2 = &CMaskBrush::_vftable__for__IBrushChangeNotification__;
+            this[0x60] = (CFilterEffect)0x0;
+            *(longlong *)(this + 0x58) = 0;
+            *(longlong *)(this + 0x50) = 0;
+LAB_6:
+            *(undefined ***)(this + 0x48) = ppuVar2;
+            goto LAB_2;
+          }
+          if (param_3 == 0x10) {
+            this = DefaultHeap::AllocClear(0xc0);
+            if (this == (CFilterEffect *)0x0) {
+                    /* WARNING: Subroutine does not return */
+              ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+            }
+            CFilterEffect::CFilterEffect(this,param_1);
+            *(undefined4 *)(this + 0xbc) = 0;
+            *(undefined4 *)(this + 0xb0) = 0x3f800000;
+            *(undefined8 *)(this + 0xb4) = 0x3f800000;
+            *(undefined ***)this = &CBrightnessEffect::_vftable_;
+            goto LAB_2;
+          }
+          if (param_3 == 0x12) {
+            this_04 = CCachedVisualImage::operator_new((__uint64)param_1);
+            if (this_04 != (CCachedVisualImage *)0x0) {
+              pCVar1 = (CFilterEffect *)
+                       CCachedVisualImage::CCachedVisualImage(this_04,param_1,false);
+            }
+          }
+          else {
+            if (param_3 == 0x13) {
+              this = DefaultHeap::AllocClear(0xb0);
+              if (this == (CFilterEffect *)0x0) {
+                    /* WARNING: Subroutine does not return */
+                ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+              }
+              *(undefined4 *)(this + 8) = 0;
+              *(longlong *)(this + 0x20) = 0;
+              *(longlong *)(this + 0x10) = 0;
+              *(CComposition **)(this + 0x18) = param_1;
+              *(longlong *)(this + 0x30) = 0;
+              *(undefined4 *)(this + 0x28) = 0;
+              *(undefined ***)this = &CCaptureController::_vftable_;
+              this[0x48] = (CFilterEffect)0x1;
+              this[0x54] = (CFilterEffect)0x1;
+              *(undefined4 *)(this + 0x58) = 0x40000000;
+              this[100] = (CFilterEffect)0x0;
+              *(longlong *)(this + 0x80) = 0;
+              *(longlong *)(this + 0x88) = 0;
+              *(longlong *)(this + 0x90) = 0;
+              *(longlong *)(this + 0xa0) = 0;
+              goto LAB_7;
+            }
+            if (param_3 == 0x14) {
+              this_03 = DefaultHeap::AllocClear(0xc70);
+              if (this_03 == (CCaptureRenderTarget *)0x0) {
+                    /* WARNING: Subroutine does not return */
+                ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+              }
+              pCVar1 = (CFilterEffect *)CCaptureRenderTarget::CCaptureRenderTarget(this_03,param_1);
             }
             else {
-              if (param_3 != 9) goto LAB_2;
-              this_73 = CBackdropBrush::operator_new((__uint64)param_1);
-              if (this_73 !=
-                  (CSceneMetallicRoughnessMaterialGeneratedT<CSceneMetallicRoughnessMaterial,CScenePbrMaterial>
-                   *)0x0) {
-                *(undefined4 *)(this_73 + 8) = 0;
-                *(undefined8 *)(this_73 + 0x10) = 0;
-                *(CComposition **)(this_73 + 0x18) = param_1;
-                *(undefined8 *)(this_73 + 0x20) = 0;
-                *(undefined8 *)(this_73 + 0x30) = 0;
-                *(undefined4 *)(this_73 + 0x28) = 0;
-                *(undefined8 *)(this_73 + 0x50) = 0;
-                *(undefined ***)this_73 = &CBackdropBrush::_vftable__for__CContent__;
-                goto LAB_3;
-              }
-            }
-          }
-        }
-        else if (param_3 == 0xd) {
-          this = CResource::operator_new(0x70);
-          if (this != (CBitmapResource *)0x0) {
-            this_06 = (CVisual *)
-                      CBitmapResource::CBitmapResource(this,param_1,(IBitmapRealization *)0x0);
-          }
-        }
-        else if (param_3 == 0xe) {
-          pCVar5 = CBlendEffect::operator_new((__uint64)param_1);
-          if (pCVar5 != (CFilterEffect *)0x0) {
-            CFilterEffect::CFilterEffect(pCVar5,param_1);
-            ppuVar3 = &CBlendEffect::_vftable_;
-LAB_4:
-            *(undefined ***)pCVar5 = ppuVar3;
-            *(undefined4 *)(pCVar5 + 0xb0) = 0;
-            this_06 = (CVisual *)pCVar5;
-          }
-        }
-        else if (param_3 == 0xf) {
-          this_73 = CVisualBitmap::operator_new((__uint64)param_1);
-          if (this_73 !=
-              (CSceneMetallicRoughnessMaterialGeneratedT<CSceneMetallicRoughnessMaterial,CScenePbrMaterial>
-               *)0x0) {
-            *(undefined4 *)(this_73 + 8) = 0;
-            *(undefined8 *)(this_73 + 0x10) = 0;
-            *(CComposition **)(this_73 + 0x18) = param_1;
-            *(undefined8 *)(this_73 + 0x20) = 0;
-            *(undefined8 *)(this_73 + 0x30) = 0;
-            *(undefined4 *)(this_73 + 0x28) = 0;
-            *(undefined8 *)(this_73 + 0x50) = 0;
-            *(undefined ***)this_73 = &CBlurredWallpaperBackdropBrush::_vftable__for__CContent__;
-LAB_3:
-            ppuVar3 = &CMaskBrush::_vftable__for__IBrushChangeNotification__;
-            *(CVisual *)(this_73 + 0x60) = (CVisual)0x0;
-            *(undefined8 *)(this_73 + 0x58) = 0;
-            goto LAB_5;
-          }
-        }
-        else if (param_3 == 0x10) {
-          this_36 = CGaussianBlurEffect::operator_new((__uint64)param_1);
-          if (this_36 != (CBrightnessEffect *)0x0) {
-            this_06 = (CVisual *)CBrightnessEffect::CBrightnessEffect(this_36,param_1);
-          }
-        }
-        else if (param_3 == 0x12) {
-          this_18 = CCachedVisualImage::operator_new((__uint64)param_1);
-          if (this_18 != (CCachedVisualImage *)0x0) {
-            this_06 = (CVisual *)CCachedVisualImage::CCachedVisualImage(this_18,param_1,false);
-          }
-        }
-        else if (param_3 == 0x13) {
-          pvVar4 = CCompositionMipmapSurface::operator_new((__uint64)param_1);
-          if (pvVar4 != (void *)0x0) {
-            lVar1 = FUN_1802ef016();
-            return lVar1;
-          }
-        }
-        else if (param_3 == 0x14) {
-          this_24 = CCaptureRenderTarget::operator_new((__uint64)param_1);
-          if (this_24 != (CCaptureRenderTarget *)0x0) {
-            this_06 = (CVisual *)CCaptureRenderTarget::CCaptureRenderTarget(this_24,param_1);
-          }
-        }
-        else if (param_3 == 0x15) {
-          pCVar2 = CAtlasedRectsGroup::operator_new((__uint64)param_1);
-          if (pCVar2 != (CVisual *)0x0) {
-            *(undefined4 *)(pCVar2 + 8) = 0;
-            *(undefined8 *)(pCVar2 + 0x10) = 0;
-            *(CComposition **)(pCVar2 + 0x18) = param_1;
-            *(undefined8 *)(pCVar2 + 0x20) = 0;
-            *(undefined8 *)(pCVar2 + 0x30) = 0;
-            *(undefined4 *)(pCVar2 + 0x28) = 0;
-            *(undefined8 *)(pCVar2 + 0x50) = 0;
-            *(undefined ***)pCVar2 = &CClipBrush::_vftable__for__CContent__;
-            *(undefined ***)(pCVar2 + 0x48) = &CMaskBrush::_vftable__for__IBrushChangeNotification__
-            ;
-            *(undefined8 *)(pCVar2 + 0x58) = 0;
-            pCVar2[0x60] = (CVisual)0x0;
-            *(undefined8 *)(pCVar2 + 0x68) = 0;
-            *(undefined8 *)(pCVar2 + 0x70) = 0;
-            *(undefined8 *)(pCVar2 + 0x78) = 0;
-            this_06 = pCVar2;
-          }
-        }
-        else {
-          if (param_3 != 0x16) goto LAB_2;
-          this_73 = CColorBrush::operator_new((__uint64)param_1);
-          if (this_73 !=
-              (CSceneMetallicRoughnessMaterialGeneratedT<CSceneMetallicRoughnessMaterial,CScenePbrMaterial>
-               *)0x0) {
-            *(undefined4 *)(this_73 + 8) = 0;
-            *(undefined8 *)(this_73 + 0x10) = 0;
-            *(CComposition **)(this_73 + 0x18) = param_1;
-            *(undefined8 *)(this_73 + 0x20) = 0;
-            *(undefined8 *)(this_73 + 0x30) = 0;
-            *(undefined4 *)(this_73 + 0x28) = 0;
-            *(undefined8 *)(this_73 + 0x50) = 0;
-            *(undefined ***)this_73 = &CColorBrush::_vftable__for__CContent__;
-            goto LAB_3;
+              if (param_3 == 0x15) {
+                this = DefaultHeap::AllocClear(0x80);
+                if (this == (CFilterEffect *)0x0) {
+                    /* WARNING: Subroutine does not return */
+                  ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+                }
+                *(undefined4 *)(this + 8) = 0;
+                *(longlong *)(this + 0x20) = 0;
+                *(longlong *)(this + 0x10) = 0;
+                *(CComposition **)(this + 0x18) = param_1;
+                *(longlong *)(this + 0x30) = 0;
+                *(undefined4 *)(this + 0x28) = 0;
+                *(undefined ***)this = &CClipBrush::_vftable__for__CContent__;
+                *(undefined ***)(this + 0x48) =
+                     &CMaskBrush::_vftable__for__IBrushChangeNotification__;
+                *(longlong *)(this + 0x50) = 0;
+                *(longlong *)(this + 0x58) = 0;
+                this[0x60] = (CFilterEffect)0x0;
+                *(longlong *)(this + 0x68) = 0;
+                *(longlong *)(this + 0x70) = 0;
+                *(longlong *)(this + 0x78) = 0;
+                goto LAB_2;
+              }
+              if (param_3 != 0x16) goto LAB_3;
+              this = CColorBrush::operator_new((__uint64)param_1);
+              if (this != (CFilterEffect *)0x0) {
+                *(undefined4 *)(this + 8) = 0;
+                *(longlong *)(this + 0x20) = 0;
+                *(longlong *)(this + 0x10) = 0;
+                *(CComposition **)(this + 0x18) = param_1;
+                *(longlong *)(this + 0x30) = 0;
+                *(undefined4 *)(this + 0x28) = 0;
+                *(undefined ***)this = &CColorBrush::_vftable__for__CContent__;
+                goto LAB_4;
+              }
+            }
           }
         }
       }
       else if (param_3 < 0x22) {
         if (param_3 == 0x21) {
-          this_39 = CCompositionDistantLight::operator_new((__uint64)param_1);
-          if (this_39 != (CCompositionDistantLight *)0x0) {
-            this_06 = (CVisual *)CCompositionDistantLight::CCompositionDistantLight(this_39,param_1)
-            ;
-          }
+          this_10 = DefaultHeap::AllocClear(0x128);
+          if (this_10 == (CCompositionDistantLight *)0x0) {
+                    /* WARNING: Subroutine does not return */
+            ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+          }
+          pCVar1 = (CFilterEffect *)
+                   CCompositionDistantLight::CCompositionDistantLight(this_10,param_1);
         }
         else if (param_3 == 0x18) {
-          this_38 = CColorMatrixEffect::operator_new((__uint64)param_1);
-          if (this_38 != (CColorMatrixEffect *)0x0) {
-            this_06 = (CVisual *)CColorMatrixEffect::CColorMatrixEffect(this_38,param_1);
-          }
+          this_09 = DefaultHeap::AllocClear(0x108);
+          if (this_09 == (CColorMatrixEffect *)0x0) {
+                    /* WARNING: Subroutine does not return */
+            ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+          }
+          pCVar1 = (CFilterEffect *)CColorMatrixEffect::CColorMatrixEffect(this_09,param_1);
         }
         else if (param_3 == 0x19) {
-          pCVar2 = CResource::operator_new(0x58);
-          if (pCVar2 != (CVisual *)0x0) {
-            *(undefined4 *)(pCVar2 + 8) = 0;
-            *(undefined8 *)(pCVar2 + 0x10) = 0;
-            *(CComposition **)(pCVar2 + 0x18) = param_1;
-            *(undefined8 *)(pCVar2 + 0x20) = 0;
-            *(undefined8 *)(pCVar2 + 0x30) = 0;
-            *(undefined4 *)(pCVar2 + 0x28) = 0;
-            ppuVar3 = &CColorResource::_vftable_;
-            *(undefined8 *)(pCVar2 + 0x48) = 0;
-            *(undefined8 *)(pCVar2 + 0x50) = 0;
-LAB_0:
-            *(undefined ***)pCVar2 = ppuVar3;
-            this_06 = pCVar2;
+          this = CResource::operator_new(0x58);
+          if (this != (CFilterEffect *)0x0) {
+            *(undefined4 *)(this + 8) = 0;
+            *(longlong *)(this + 0x10) = 0;
+            *(CComposition **)(this + 0x18) = param_1;
+            *(longlong *)(this + 0x20) = 0;
+            *(longlong *)(this + 0x30) = 0;
+            *(undefined4 *)(this + 0x28) = 0;
+            ppuVar2 = &CColorResource::_vftable_;
+            *(longlong *)(this + 0x48) = 0;
+            *(longlong *)(this + 0x50) = 0;
+            goto LAB_0;
           }
         }
         else if (param_3 == 0x1a) {
-          pCVar2 = CResource::operator_new(0xb0);
-          if (pCVar2 != (CVisual *)0x0) {
-            *(undefined4 *)(pCVar2 + 8) = 0;
-            *(undefined8 *)(pCVar2 + 0x10) = 0;
-            *(CComposition **)(pCVar2 + 0x18) = param_1;
-            *(undefined8 *)(pCVar2 + 0x20) = 0;
-            *(undefined8 *)(pCVar2 + 0x30) = 0;
-            *(undefined4 *)(pCVar2 + 0x28) = 0;
-            memset(pCVar2 + 0x48,0,100);
-            ppuVar3 = &CColorTransformResource::_vftable_;
+          this = CResource::operator_new(0xb0);
+          if (this != (CFilterEffect *)0x0) {
+            *(undefined4 *)(this + 8) = 0;
+            *(longlong *)(this + 0x10) = 0;
+            *(CComposition **)(this + 0x18) = param_1;
+            *(longlong *)(this + 0x20) = 0;
+            *(longlong *)(this + 0x30) = 0;
+            *(undefined4 *)(this + 0x28) = 0;
+            memset(this + 0x48,0,100);
+            ppuVar2 = &CColorTransformResource::_vftable_;
             goto LAB_0;
           }
         }
         else if (param_3 == 0x1b) {
-          this_33 = CBlendEffect::operator_new((__uint64)param_1);
-          if (this_33 != (CCombinedGeometry *)0x0) {
-            this_06 = (CVisual *)CCombinedGeometry::CCombinedGeometry(this_33,param_1,param_2);
-          }
-        }
-        else if (param_3 == 0x1c) {
-          pCVar2 = CCompiledEffectTemplate::operator_new((__uint64)param_1);
-          if (pCVar2 != (CVisual *)0x0) {
-            *(undefined4 *)(pCVar2 + 8) = 0;
-            *(undefined8 *)(pCVar2 + 0x10) = 0;
-            *(CComposition **)(pCVar2 + 0x18) = param_1;
-            *(undefined8 *)(pCVar2 + 0x20) = 0;
-            *(undefined8 *)(pCVar2 + 0x30) = 0;
-            *(undefined4 *)(pCVar2 + 0x28) = 0;
-            ppuVar3 = &CCompiledEffectTemplate::_vftable_;
-            goto LAB_6;
-          }
-        }
-        else if (param_3 == 0x1d) {
-          pCVar2 = CComponentTransform2D::operator_new((__uint64)param_1);
-          if (pCVar2 != (CVisual *)0x0) {
-            *(undefined4 *)(pCVar2 + 8) = 0;
-            *(undefined8 *)(pCVar2 + 0x10) = 0;
-            *(CComposition **)(pCVar2 + 0x18) = param_1;
-            *(undefined8 *)(pCVar2 + 0x20) = 0;
-            *(undefined8 *)(pCVar2 + 0x30) = 0;
-            *(undefined4 *)(pCVar2 + 0x28) = 0;
-            *(undefined4 *)(pCVar2 + 0x90) = 0;
-            *(uint *)(pCVar2 + 0x28) = *(uint *)(pCVar2 + 0x28) | 1;
-            *(undefined ***)pCVar2 = &CComponentTransform2D::_vftable_;
-            *(undefined4 *)(pCVar2 + 0xb8) = 0x3f800000;
-            *(undefined4 *)(pCVar2 + 0xbc) = 0x3f800000;
-            pCVar2[0x9c] = (CVisual)0x0;
-            *(undefined8 *)(pCVar2 + 0xc4) = 0x3f800000;
-            *(undefined8 *)(pCVar2 + 0xcc) = 0x3f80000000000000;
-            *(undefined8 *)(pCVar2 + 0xd4) = 0;
-            this_06 = pCVar2;
-          }
-        }
-        else if (param_3 == 0x1e) {
-          this_08 = CComponentTransform3D::operator_new((__uint64)param_1);
-          if (this_08 != (CComponentTransform3D *)0x0) {
-            this_06 = (CVisual *)CComponentTransform3D::CComponentTransform3D(this_08,param_1);
-          }
-        }
-        else if (param_3 == 0x1f) {
-          pCVar5 = CBlendEffect::operator_new((__uint64)param_1);
-          if (pCVar5 != (CFilterEffect *)0x0) {
-            CFilterEffect::CFilterEffect(pCVar5,param_1);
-            ppuVar3 = &CCompositeEffect::_vftable_;
-            goto LAB_4;
-          }
+          this_08 = DefaultHeap::AllocClear(0xb8);
+          if (this_08 == (CCombinedGeometry *)0x0) {
+                    /* WARNING: Subroutine does not return */
+            ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+          }
+          pCVar1 = (CFilterEffect *)CCombinedGeometry::CCombinedGeometry(this_08,param_1,param_2);
         }
         else {
-          if (param_3 != 0x20) goto LAB_2;
-          this_37 = CCompositionAmbientLight::operator_new((__uint64)param_1);
-          if (this_37 != (CCompositionAmbientLight *)0x0) {
-            this_06 = (CVisual *)CCompositionAmbientLight::CCompositionAmbientLight(this_37,param_1)
-            ;
-          }
-        }
-      }
-      else if (param_3 == 0x22) {
-        this_42 = CCompositionDynamicTexture::operator_new((__uint64)param_1);
-        if (this_42 != (CCompositionDynamicTexture *)0x0) {
-          this_06 = (CVisual *)
-                    CCompositionDynamicTexture::CCompositionDynamicTexture(this_42,param_1);
-        }
-      }
-      else if (param_3 == 0x23) {
-        pCVar2 = CResource::operator_new(0x70);
-        if (pCVar2 != (CVisual *)0x0) {
-          *(undefined4 *)(pCVar2 + 8) = 0;
-          *(undefined8 *)(pCVar2 + 0x10) = 0;
-          *(CComposition **)(pCVar2 + 0x18) = param_1;
-          *(undefined8 *)(pCVar2 + 0x20) = 0;
-          *(undefined8 *)(pCVar2 + 0x30) = 0;
-          *(undefined4 *)(pCVar2 + 0x28) = 0;
-          ppuVar3 = &CCompositionGlyphRun::_vftable_;
-          *(undefined8 *)(pCVar2 + 0x48) = 0;
-          *(undefined8 *)(pCVar2 + 0x50) = 0;
-          *(undefined8 *)(pCVar2 + 0x60) = 0;
-          *(undefined8 *)(pCVar2 + 0x68) = 0;
-          goto LAB_0;
-        }
-      }
-      else if (param_3 == 0x25) {
-        pvVar4 = CCompositionMipmapSurface::operator_new((__uint64)param_1);
-        if (pvVar4 != (void *)0x0) {
-          lVar1 = FUN_1802ef069();
-          return lVar1;
-        }
-      }
-      else if (param_3 == 0x26) {
-        this_41 = CCompositionPointLight::operator_new((__uint64)param_1);
-        if (this_41 != (CCompositionPointLight *)0x0) {
-          this_06 = (CVisual *)CCompositionPointLight::CCompositionPointLight(this_41,param_1);
-        }
-      }
-      else if (param_3 == 0x28) {
-        this_40 = CCompositionSpotLight::operator_new((__uint64)param_1);
-        if (this_40 != (CCompositionSpotLight *)0x0) {
-          this_06 = (CVisual *)CCompositionSpotLight::CCompositionSpotLight(this_40,param_1);
-        }
-      }
-      else if (param_3 == 0x29) {
-        pCVar2 = CCrossContainerGuestReadWriteSharedSection::operator_new((__uint64)param_1);
-        if (pCVar2 != (CVisual *)0x0) {
-          *(undefined4 *)(pCVar2 + 8) = 0;
-          *(undefined8 *)(pCVar2 + 0x10) = 0;
-          *(CComposition **)(pCVar2 + 0x18) = param_1;
-          *(undefined8 *)(pCVar2 + 0x20) = 0;
-          *(undefined8 *)(pCVar2 + 0x30) = 0;
-          *(undefined4 *)(pCVar2 + 0x28) = 0;
-          *(undefined ***)pCVar2 = &CCompositionSurfaceBitmap::_vftable__for__CContent__;
-          *(undefined ***)(pCVar2 + 0x48) =
-               &CCompositionSurfaceBitmap::_vftable__for__IBitmapResource__;
-          *(undefined ***)(pCVar2 + 0x50) =
-               &CCompositionSurfaceBitmap::_vftable__for__ICompositionSurfaceInfoListener__;
-          *(undefined ***)(pCVar2 + 0x58) =
-               &CCompositionSurfaceBitmap::_vftable__for__IDirtyRectSource__;
-          goto LAB_7;
-        }
-      }
-      else if (param_3 == 0x2a) {
-        pCVar2 = CResource::operator_new(0x78);
-        if (pCVar2 != (CVisual *)0x0) {
-          *(undefined4 *)(pCVar2 + 8) = 0;
-          *(undefined8 *)(pCVar2 + 0x10) = 0;
-          *(CComposition **)(pCVar2 + 0x18) = param_1;
-          *(undefined8 *)(pCVar2 + 0x20) = 0;
-          *(undefined8 *)(pCVar2 + 0x30) = 0;
-          *(undefined4 *)(pCVar2 + 0x28) = 0;
-          *(undefined ***)pCVar2 = &CCompositionTextLine::_vftable_;
-          *(undefined8 *)(pCVar2 + 0x48) = 0;
-          *(undefined8 *)(pCVar2 + 0x50) = 0;
-          *(undefined8 *)(pCVar2 + 0x60) = 0;
-          *(undefined4 *)(pCVar2 + 0x68) = 0;
-          *(undefined8 *)(pCVar2 + 0x70) = 0;
-          this_06 = pCVar2;
-        }
-      }
-      else if (param_3 == 0x2c) {
-        this_26 = CConditionalExpression::operator_new((__uint64)param_1);
-        if (this_26 != (CConditionalExpression *)0x0) {
-          this_06 = (CVisual *)CConditionalExpression::CConditionalExpression(this_26,param_1);
+          if (param_3 == 0x1c) {
+            this = DefaultHeap::AllocClear(0x58);
+            if (this == (CFilterEffect *)0x0) {
+                    /* WARNING: Subroutine does not return */
+              ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+            }
+            *(undefined4 *)(this + 8) = 0;
+            *(longlong *)(this + 0x10) = 0;
+            *(CComposition **)(this + 0x18) = param_1;
+            *(longlong *)(this + 0x20) = 0;
+            *(longlong *)(this + 0x30) = 0;
+            *(undefined4 *)(this + 0x28) = 0;
+            ppuVar2 = &CCompiledEffectTemplate::_vftable_;
+            goto LAB_8;
+          }
+          if (param_3 == 0x1d) {
+            this = DefaultHeap::AllocClear(0xe0);
+            if (this == (CFilterEffect *)0x0) {
+                    /* WARNING: Subroutine does not return */
+              ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+            }
+            *(undefined4 *)(this + 8) = 0;
+            *(longlong *)(this + 0x20) = 0;
+            *(longlong *)(this + 0x10) = 0;
+            *(CComposition **)(this + 0x18) = param_1;
+            *(longlong *)(this + 0x30) = 0;
+            *(undefined4 *)(this + 0x28) = 0;
+            *(undefined4 *)(this + 0x90) = 0;
+            *(uint *)(this + 0x28) = *(uint *)(this + 0x28) | 1;
+            *(undefined ***)this = &CComponentTransform2D::_vftable_;
+            *(undefined4 *)(this + 0xb8) = 0x3f800000;
+            *(undefined4 *)(this + 0xbc) = 0x3f800000;
+            this[0x9c] = (CFilterEffect)0x0;
+            *(undefined8 *)(this + 0xc4) = 0x3f800000;
+            *(undefined8 *)(this + 0xcc) = 0x3f80000000000000;
+            *(undefined8 *)(this + 0xd4) = 0;
+            goto LAB_2;
+          }
+          if (param_3 == 0x1e) {
+            this_07 = DefaultHeap::AllocClear(0x130);
+            if (this_07 == (CComponentTransform3D *)0x0) {
+                    /* WARNING: Subroutine does not return */
+              ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+            }
+            pCVar1 = (CFilterEffect *)CComponentTransform3D::CComponentTransform3D(this_07,param_1);
+          }
+          else {
+            if (param_3 == 0x1f) {
+              this = DefaultHeap::AllocClear(0xb8);
+              if (this == (CFilterEffect *)0x0) {
+                    /* WARNING: Subroutine does not return */
+                ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+              }
+              CFilterEffect::CFilterEffect(this,param_1);
+              ppuVar2 = &CCompositeEffect::_vftable_;
+              goto LAB_5;
+            }
+            if (param_3 != 0x20) goto LAB_3;
+            this_06 = DefaultHeap::AllocClear(0x118);
+            if (this_06 == (CCompositionAmbientLight *)0x0) {
+                    /* WARNING: Subroutine does not return */
+              ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+            }
+            pCVar1 = (CFilterEffect *)
+                     CCompositionAmbientLight::CCompositionAmbientLight(this_06,param_1);
+          }
         }
       }
       else {
-        if (param_3 != 0x2d) goto LAB_2;
-        pCVar2 = CAtlasedRectsGroup::operator_new((__uint64)param_1);
-        if (pCVar2 != (CVisual *)0x0) {
-          *(undefined4 *)(pCVar2 + 8) = 0;
-          *(undefined8 *)(pCVar2 + 0x10) = 0;
-          *(CComposition **)(pCVar2 + 0x18) = param_1;
-          *(undefined8 *)(pCVar2 + 0x20) = 0;
-          *(undefined8 *)(pCVar2 + 0x30) = 0;
-          *(undefined4 *)(pCVar2 + 0x28) = 0;
-          *(undefined8 *)(pCVar2 + 0x50) = 0;
-          *(undefined8 *)(pCVar2 + 0x58) = 0;
-          *(undefined ***)pCVar2 = &CContainerVectorShape::_vftable_;
-          pCVar2[0x60] = (CVisual)0x1;
-          *(undefined8 *)(pCVar2 + 0x68) = 0;
-          *(undefined8 *)(pCVar2 + 0x70) = 0;
-          goto LAB_8;
+        if (param_3 == 0x22) {
+          this = DefaultHeap::AllocClear(0x98);
+          if (this == (CFilterEffect *)0x0) {
+                    /* WARNING: Subroutine does not return */
+            ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+          }
+          *(undefined4 *)(this + 8) = 0;
+          *(longlong *)(this + 0x20) = 0;
+          *(longlong *)(this + 0x10) = 0;
+          *(CComposition **)(this + 0x18) = param_1;
+          *(longlong *)(this + 0x30) = 0;
+          *(undefined4 *)(this + 0x28) = 0;
+          *(undefined ***)this =
+               &CCompositionDynamicTexture::
+                _vftable__for__CCompositionDynamicTextureGeneratedT<CCompositionDynamicTexture,CContent>__
+          ;
+          *(undefined ***)(this + 0x50) =
+               &CCompositionDynamicTexture::_vftable__for__IDirtyRectSource__;
+          *(undefined ***)(this + 0x58) = &CRectanglesShape::_vftable_;
+          *(CFilterEffect **)(this + 0x68) = this + 0x80;
+          *(CFilterEffect **)(this + 0x70) = this + 0x80;
+          *(CFilterEffect **)(this + 0x78) = this + 0x90;
+          *(longlong *)(this + 0x60) = 0;
+          *(longlong *)(this + 0x90) = 0;
+          goto LAB_2;
+        }
+        if (param_3 == 0x23) {
+          this = CResource::operator_new(0x70);
+          if (this != (CFilterEffect *)0x0) {
+            *(undefined4 *)(this + 8) = 0;
+            *(longlong *)(this + 0x20) = 0;
+            *(longlong *)(this + 0x10) = 0;
+            *(CComposition **)(this + 0x18) = param_1;
+            *(longlong *)(this + 0x30) = 0;
+            *(undefined4 *)(this + 0x28) = 0;
+            ppuVar2 = &CCompositionGlyphRun::_vftable_;
+            *(longlong *)(this + 0x48) = 0;
+            *(longlong *)(this + 0x50) = 0;
+            *(longlong *)(this + 0x60) = 0;
+            *(longlong *)(this + 0x68) = 0;
+            goto LAB_0;
+          }
+        }
+        else {
+          if (param_3 == 0x25) {
+            this = DefaultHeap::AllocClear(0xd0);
+            if (this == (CFilterEffect *)0x0) {
+                    /* WARNING: Subroutine does not return */
+              ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+            }
+            *(undefined4 *)(this + 8) = 0;
+            *(longlong *)(this + 0x20) = 0;
+            *(longlong *)(this + 0x10) = 0;
+            *(CComposition **)(this + 0x18) = param_1;
+            *(longlong *)(this + 0x30) = 0;
+            *(undefined4 *)(this + 0x28) = 0;
+            *(longlong *)(this + 0x50) = 0;
+            *(undefined ***)this = &CCompositionMagnifierBrush::_vftable__for__CContent__;
+            *(undefined ***)(this + 0x48) =
+                 &CCompositionMagnifierBrush::_vftable__for__IBrushChangeNotification__;
+            *(longlong *)(this + 0x58) = 0;
+            this[0x60] = (CFilterEffect)0x0;
+            *(undefined4 *)(this + 0x68) = 0x3f800000;
+            *(undefined2 *)(this + 0x6c) = 0;
+            memset(this + 0x70,0,0x50);
+            this[200] = (CFilterEffect)0x0;
+            *(undefined2 *)(this + 0xcc) = 0;
+            this[0xce] = (CFilterEffect)0x0;
+            goto LAB_2;
+          }
+          if (param_3 == 0x26) {
+            this = DefaultHeap::AllocClear(0xb0);
+            if (this == (CFilterEffect *)0x0) {
+                    /* WARNING: Subroutine does not return */
+              ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+            }
+            *(undefined4 *)(this + 8) = 0;
+            *(longlong *)(this + 0x20) = 0;
+            *(longlong *)(this + 0x10) = 0;
+            *(CComposition **)(this + 0x18) = param_1;
+            *(longlong *)(this + 0x30) = 0;
+            *(undefined4 *)(this + 0x28) = 0;
+            *(undefined ***)this =
+                 &CCompositionMipmapSurface::_vftable__for__CPropertyChangeResource__;
+            *(undefined ***)(this + 0x50) =
+                 &CCompositionMipmapSurface::_vftable__for__IDeviceResourceNotify__;
+            *(undefined ***)(this + 0x58) =
+                 &CCompositionMipmapSurface::_vftable__for__ISceneNotificationListener__;
+            *(longlong *)(this + 0x60) = 0;
+            *(longlong *)(this + 0x68) = 0;
+            *(longlong *)(this + 0x70) = 0;
+LAB_7:
+            *(longlong *)(this + 0x98) = 0;
+            *(longlong *)(this + 0xa8) = 0;
+            goto LAB_2;
+          }
+          if (param_3 == 0x27) {
+            this_13 = DefaultHeap::AllocClear(0x140);
+            if (this_13 == (CCompositionPointLight *)0x0) {
+                    /* WARNING: Subroutine does not return */
+              ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+            }
+            pCVar1 = (CFilterEffect *)
+                     CCompositionPointLight::CCompositionPointLight(this_13,param_1);
+          }
+          else if (param_3 == 0x29) {
+            this_12 = DefaultHeap::AllocClear(0x198);
+            if (this_12 == (CCompositionSpotLight *)0x0) {
+                    /* WARNING: Subroutine does not return */
+              ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+            }
+            pCVar1 = (CFilterEffect *)CCompositionSpotLight::CCompositionSpotLight(this_12,param_1);
+          }
+          else if (param_3 == 0x2a) {
+            this = CCompositionSurfaceBitmap::operator_new((__uint64)param_1);
+            if (this != (CFilterEffect *)0x0) {
+              *(undefined4 *)(this + 8) = 0;
+              *(longlong *)(this + 0x20) = 0;
+              *(longlong *)(this + 0x10) = 0;
+              *(CComposition **)(this + 0x18) = param_1;
+              *(longlong *)(this + 0x30) = 0;
+              *(undefined4 *)(this + 0x28) = 0;
+              *(undefined ***)this = &CCompositionSurfaceBitmap::_vftable__for__CContent__;
+              *(undefined ***)(this + 0x48) =
+                   &CCompositionSurfaceBitmap::_vftable__for__IBitmapResource__;
+              *(undefined ***)(this + 0x50) =
+                   &CCompositionSurfaceBitmap::_vftable__for__ICompositionSurfaceInfoListener__;
+              *(undefined ***)(this + 0x58) =
+                   &CCompositionSurfaceBitmap::_vftable__for__IDirtyRectSource__;
+LAB_9:
+              *(longlong *)(this + 0x60) = 0;
+              goto LAB_2;
+            }
+          }
+          else if (param_3 == 0x2b) {
+            this = CResource::operator_new(0x78);
+            if (this != (CFilterEffect *)0x0) {
+              *(undefined4 *)(this + 8) = 0;
+              *(longlong *)(this + 0x20) = 0;
+              *(longlong *)(this + 0x10) = 0;
+              *(CComposition **)(this + 0x18) = param_1;
+              *(longlong *)(this + 0x30) = 0;
+              *(undefined4 *)(this + 0x28) = 0;
+              *(longlong *)(this + 0x48) = 0;
+              *(longlong *)(this + 0x50) = 0;
+              *(undefined ***)this = &CCompositionTextLine::_vftable_;
+              *(longlong *)(this + 0x60) = 0;
+              *(undefined4 *)(this + 0x68) = 0;
+              *(longlong *)(this + 0x70) = 0;
+              goto LAB_2;
+            }
+          }
+          else {
+            if (param_3 != 0x2d) goto LAB_3;
+            this_11 = DefaultHeap::AllocClear(0x170);
+            if (this_11 == (CConditionalExpression *)0x0) {
+                    /* WARNING: Subroutine does not return */
+              ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+            }
+            pCVar1 = (CFilterEffect *)
+                     CConditionalExpression::CConditionalExpression(this_11,param_1);
+          }
         }
       }
     }
     else if (param_3 < 0x4d) {
       if (param_3 == 0x4c) {
-        this_50 = CHolographicExclusiveMode::operator_new((__uint64)param_1);
-        if (this_50 != (CHolographicExclusiveMode *)0x0) {
-          this_06 = (CVisual *)CHolographicExclusiveMode::CHolographicExclusiveMode(this_50,param_1)
-          ;
-        }
-      }
-      else if (param_3 < 0x3c) {
-        if (param_3 == 0x3b) {
-          this_02 = CExpression::operator_new((__uint64)param_1);
-          if (this_02 != (CExpression *)0x0) {
-            this_06 = (CVisual *)CExpression::CExpression(this_02,param_1);
-          }
-        }
-        else if (param_3 == 0x31) {
-          this_46 = CCursorVisual::operator_new((__uint64)param_1);
-          if (this_46 != (CCursorVisual *)0x0) {
-            this_06 = (CVisual *)CCursorVisual::CCursorVisual(this_46,param_1);
-          }
-        }
-        else if (param_3 == 0x32) {
-          pCVar2 = CHoverPointerSource::operator_new((__uint64)param_1);
-          if (pCVar2 != (CVisual *)0x0) {
-            *(undefined4 *)(pCVar2 + 8) = 0;
-            *(undefined8 *)(pCVar2 + 0x10) = 0;
-            *(CComposition **)(pCVar2 + 0x18) = param_1;
-            *(undefined8 *)(pCVar2 + 0x20) = 0;
-            *(undefined8 *)(pCVar2 + 0x30) = 0;
-            *(undefined4 *)(pCVar2 + 0x28) = 0;
-            ppuVar3 = &CDataSourceReader::_vftable_;
+        this_23 = DefaultHeap::AllocClear(0x90);
+        if (this_23 == (CHolographicDisplay *)0x0) {
+                    /* WARNING: Subroutine does not return */
+          ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+        }
+        pCVar1 = (CFilterEffect *)CHolographicDisplay::CHolographicDisplay(this_23,param_1);
+      }
+      else {
+        if (param_3 < 0x3c) {
+          if (param_3 == 0x3b) {
+            this = DefaultHeap::AllocClear(0x98);
+            if (this == (CFilterEffect *)0x0) {
+                    /* WARNING: Subroutine does not return */
+              ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+            }
+            *(undefined4 *)(this + 8) = 0;
+            *(longlong *)(this + 0x20) = 0;
+            *(longlong *)(this + 0x10) = 0;
+            *(CComposition **)(this + 0x18) = param_1;
+            *(longlong *)(this + 0x30) = 0;
+            *(undefined4 *)(this + 0x28) = 0;
+            ppuVar2 = &CEllipseGeometry::_vftable_;
+            *(longlong *)(this + 0x58) = 0;
+            this[0x60] = (CFilterEffect)0x0;
+            *(longlong *)(this + 0x68) = 0;
+            this[0x70] = (CFilterEffect)0x0;
+            *(uint *)(this + 0x28) = *(uint *)(this + 0x28) | 1;
+            *(undefined4 *)(this + 0x7c) = 0x3f800000;
+          }
+          else {
+            if (param_3 != 0x30) {
+              if (param_3 == 0x32) {
+                this_18 = DefaultHeap::AllocClear(0x2f0);
+                if (this_18 == (CCursorVisual *)0x0) {
+                    /* WARNING: Subroutine does not return */
+                  ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+                }
+                pCVar1 = (CFilterEffect *)CCursorVisual::CCursorVisual(this_18,param_1);
+              }
+              else {
+                if (param_3 == 0x33) {
+                  this = DefaultHeap::AllocClear(0x60);
+                  if (this == (CFilterEffect *)0x0) {
+                    /* WARNING: Subroutine does not return */
+                    ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+                  }
+                  *(undefined4 *)(this + 8) = 0;
+                  *(longlong *)(this + 0x10) = 0;
+                  *(CComposition **)(this + 0x18) = param_1;
+                  *(longlong *)(this + 0x20) = 0;
+                  *(longlong *)(this + 0x30) = 0;
+                  *(undefined4 *)(this + 0x28) = 0;
+                  ppuVar2 = &CDataSourceReader::_vftable_;
+                  goto LAB_0;
+                }
+                if (param_3 == 0x34) {
+                  this_17 = DefaultHeap::AllocClear(0x82f8);
+                  if (this_17 == (CDDisplayRenderTarget *)0x0) {
+                    /* WARNING: Subroutine does not return */
+                    ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+                  }
+                  pCVar1 = (CFilterEffect *)
+                           CDDisplayRenderTarget::CDDisplayRenderTarget(this_17,param_1);
+                }
+                else if (param_3 == 0x35) {
+                  this_16 = CContent::operator_new(200);
+                  if (this_16 != (CDelegatedInkCanvas *)0x0) {
+                    pCVar1 = (CFilterEffect *)
+                             CDelegatedInkCanvas::CDelegatedInkCanvas(this_16,param_1);
+                  }
+                }
+                else if (param_3 == 0x36) {
+                  this_15 = CDesktopTree::operator_new((__uint64)param_1);
+                  if (this_15 != (CDesktopTree *)0x0) {
+                    pCVar1 = (CFilterEffect *)CDesktopTree::CDesktopTree(this_15,param_1);
+                  }
+                }
+                else {
+                  if (param_3 != 0x37) {
+                    if (param_3 == 0x39) {
+                      this = DefaultHeap::AllocClear(0xc0);
+                      if (this == (CFilterEffect *)0x0) {
+                    /* WARNING: Subroutine does not return */
+                        ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+                      }
+                      *(undefined4 *)(this + 8) = 0;
+                      *(longlong *)(this + 0x20) = 0;
+                      *(longlong *)(this + 0x10) = 0;
+                      *(CComposition **)(this + 0x18) = param_1;
+                      *(longlong *)(this + 0x30) = 0;
+                      *(undefined4 *)(this + 0x28) = 0;
+                      *(undefined ***)this = &CEffectBrush::_vftable__for__CContent__;
+                      *(undefined ***)(this + 0x48) =
+                           &CMaskBrush::_vftable__for__IBrushChangeNotification__;
+                      *(undefined ***)(this + 0x68) = &CEffectBrush::_vftable_;
+                      *(CFilterEffect **)(this + 0x88) = this + 0xa8;
+                      *(CFilterEffect **)(this + 0x90) = this + 0xa8;
+                      *(longlong *)(this + 0x50) = 0;
+                      *(longlong *)(this + 0x58) = 0;
+                      *(longlong *)(this + 0x78) = 0;
+                      *(longlong *)(this + 0x80) = 0;
+                      *(undefined4 *)(this + 0x98) = 2;
+                      *(undefined8 *)(this + 0x9c) = 2;
+                      this[0xb8] = (CFilterEffect)0x0;
+                      this[0x60] = (CFilterEffect)0x1;
+                      goto LAB_2;
+                    }
+                    if (param_3 != 0x3a) goto LAB_3;
+                    this = DefaultHeap::AllocClear(0x60);
+                    if (this == (CFilterEffect *)0x0) {
+                    /* WARNING: Subroutine does not return */
+                      ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+                    }
+                    *(undefined4 *)(this + 8) = 0;
+                    *(longlong *)(this + 0x20) = 0;
+                    *(longlong *)(this + 0x10) = 0;
+                    *(CComposition **)(this + 0x18) = param_1;
+                    *(longlong *)(this + 0x30) = 0;
+                    *(undefined4 *)(this + 0x28) = 0;
+                    ppuVar2 = &CEffectGroup::_vftable_;
+                    *(undefined4 *)(this + 0x50) = 0x3f800000;
+                    goto LAB_0;
+                  }
+                  this_14 = DefaultHeap::AllocClear(0x110);
+                  if (this_14 == (CDropShadow *)0x0) {
+                    /* WARNING: Subroutine does not return */
+                    ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+                  }
+                  pCVar1 = (CFilterEffect *)CDropShadow::CDropShadow(this_14,param_1);
+                }
+              }
+              goto LAB_10;
+            }
+            this = DefaultHeap::AllocClear(0x78);
+            if (this == (CFilterEffect *)0x0) {
+                    /* WARNING: Subroutine does not return */
+              ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+            }
+            *(undefined4 *)(this + 8) = 0;
+            *(longlong *)(this + 0x20) = 0;
+            *(longlong *)(this + 0x10) = 0;
+            *(CComposition **)(this + 0x18) = param_1;
+            *(longlong *)(this + 0x30) = 0;
+            *(undefined4 *)(this + 0x28) = 0;
+            ppuVar2 = &CCrossContainerGuestReadWriteSharedSection::_vftable_;
+            *(longlong *)(this + 0x58) = 0;
+            *(longlong *)(this + 0x60) = 0;
+          }
+LAB_0:
+          *(undefined ***)this = ppuVar2;
+          goto LAB_2;
+        }
+        if (param_3 == 0x3c) {
+          this = DefaultHeap::AllocClear(0x180);
+          if (this == (CFilterEffect *)0x0) {
+                    /* WARNING: Subroutine does not return */
+            ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+          }
+          CBaseExpression::CBaseExpression((CBaseExpression *)this,param_1);
+          *(undefined ***)this = &CExpression::_vftable_;
+          *(undefined8 *)(this + 0x148) = 0;
+          *(undefined8 *)(this + 0x150) = 0;
+          *(undefined8 *)(this + 0x158) = 0;
+          *(undefined8 *)(this + 0x160) = 0;
+          goto LAB_2;
+        }
+        if (param_3 == 0x3e) {
+          this = CResource::operator_new(0x50);
+          if (this != (CFilterEffect *)0x0) {
+            *(undefined4 *)(this + 8) = 0;
+            *(longlong *)(this + 0x20) = 0;
+            *(longlong *)(this + 0x10) = 0;
+            *(CComposition **)(this + 0x18) = param_1;
+            *(longlong *)(this + 0x30) = 0;
+            *(undefined4 *)(this + 0x28) = 0;
+            ppuVar2 = &CFloatResource::_vftable_;
+            *(undefined4 *)(this + 0x48) = 0;
             goto LAB_0;
           }
         }
-        else if (param_3 == 0x33) {
-          this_45 = CDDisplayRenderTarget::operator_new((__uint64)param_1);
-          if (this_45 != (CDDisplayRenderTarget *)0x0) {
-            this_06 = (CVisual *)CDDisplayRenderTarget::CDDisplayRenderTarget(this_45,param_1);
-          }
-        }
-        else if (param_3 == 0x34) {
-          this_44 = CContent::operator_new(200);
-          if (this_44 != (CDelegatedInkCanvas *)0x0) {
-            this_06 = (CVisual *)CDelegatedInkCanvas::CDelegatedInkCanvas(this_44,param_1);
-          }
-        }
-        else if (param_3 == 0x35) {
-          this_43 = CDesktopTree::operator_new((__uint64)param_1);
-          if (this_43 != (CDesktopTree *)0x0) {
-            this_06 = (CVisual *)CDesktopTree::CDesktopTree(this_43,param_1);
-          }
-        }
-        else if (param_3 == 0x36) {
-          this_30 = CDropShadow::operator_new((__uint64)param_1);
-          if (this_30 != (CDropShadow *)0x0) {
-            this_06 = (CVisual *)CDropShadow::CDropShadow(this_30,param_1);
-          }
-        }
-        else if (param_3 == 0x38) {
-          this_21 = CEffectBrush::operator_new((__uint64)param_1);
-          if (this_21 != (CEffectBrush *)0x0) {
-            this_06 = (CVisual *)CEffectBrush::CEffectBrush(this_21,param_1);
-          }
-        }
-        else if (param_3 == 0x39) {
-          pCVar2 = CEffectGroup::operator_new((__uint64)param_1);
-          if (pCVar2 != (CVisual *)0x0) {
-            *(undefined4 *)(pCVar2 + 8) = 0;
-            *(undefined8 *)(pCVar2 + 0x10) = 0;
-            *(CComposition **)(pCVar2 + 0x18) = param_1;
-            *(undefined8 *)(pCVar2 + 0x20) = 0;
-            *(undefined8 *)(pCVar2 + 0x30) = 0;
-            *(undefined4 *)(pCVar2 + 0x28) = 0;
-            ppuVar3 = &CEffectGroup::_vftable_;
-            *(undefined4 *)(pCVar2 + 0x50) = 0x3f800000;
-            goto LAB_0;
-          }
-        }
         else {
-          if (param_3 != 0x3a) goto LAB_2;
-          pCVar2 = CCompositionDynamicTexture::operator_new((__uint64)param_1);
-          if (pCVar2 != (CVisual *)0x0) {
-            *(undefined4 *)(pCVar2 + 8) = 0;
-            *(undefined8 *)(pCVar2 + 0x10) = 0;
-            *(CComposition **)(pCVar2 + 0x18) = param_1;
-            *(undefined8 *)(pCVar2 + 0x20) = 0;
-            *(undefined8 *)(pCVar2 + 0x30) = 0;
-            *(undefined4 *)(pCVar2 + 0x28) = 0;
-            ppuVar3 = &CEllipseGeometry::_vftable_;
-            *(undefined8 *)(pCVar2 + 0x58) = 0;
-            pCVar2[0x60] = (CVisual)0x0;
-            *(undefined8 *)(pCVar2 + 0x68) = 0;
-            pCVar2[0x70] = (CVisual)0x0;
-            *(uint *)(pCVar2 + 0x28) = *(uint *)(pCVar2 + 0x28) | 1;
-            *(undefined4 *)(pCVar2 + 0x7c) = 0x3f800000;
-            goto LAB_0;
-          }
-        }
-      }
-      else if (param_3 == 0x3d) {
-        pCVar2 = CResource::operator_new(0x50);
-        if (pCVar2 != (CVisual *)0x0) {
-          *(undefined4 *)(pCVar2 + 8) = 0;
-          *(undefined8 *)(pCVar2 + 0x10) = 0;
-          *(CComposition **)(pCVar2 + 0x18) = param_1;
-          *(undefined8 *)(pCVar2 + 0x20) = 0;
-          *(undefined8 *)(pCVar2 + 0x30) = 0;
-          *(undefined4 *)(pCVar2 + 0x28) = 0;
-          ppuVar3 = &CFloatResource::_vftable_;
-          *(undefined4 *)(pCVar2 + 0x48) = 0;
-          goto LAB_0;
-        }
-      }
-      else if (param_3 == 0x3e) {
-        this_49 = CGaussianBlurEffect::operator_new((__uint64)param_1);
-        if (this_49 != (CFloodEffect *)0x0) {
-          this_06 = (CVisual *)CFloodEffect::CFloodEffect(this_49,param_1);
-        }
-      }
-      else if (param_3 == 0x3f) {
-        this_48 = CGaussianBlurEffect::operator_new((__uint64)param_1);
-        if (this_48 != (CGaussianBlurEffect *)0x0) {
-          this_06 = (CVisual *)CGaussianBlurEffect::CGaussianBlurEffect(this_48,param_1);
-        }
-      }
-      else if (param_3 == 0x40) {
-        this_15 = CGdiSpriteBitmap::operator_new((__uint64)param_1);
-        if (this_15 != (CGdiSpriteBitmap *)0x0) {
-          this_06 = (CVisual *)CGdiSpriteBitmap::CGdiSpriteBitmap(this_15,param_1);
-        }
-      }
-      else if (param_3 == 0x41) {
-        this_25 = CInjectionAnimation::operator_new((__uint64)param_1);
-        if (this_25 != (CGenericInk *)0x0) {
-          this_06 = (CVisual *)CGenericInk::CGenericInk(this_25,param_1);
-        }
-      }
-      else if (param_3 == 0x44) {
-        this_31 = CGeometry2DGroup::operator_new((__uint64)param_1);
-        if (this_31 != (CGeometry2DGroup *)0x0) {
-          this_06 = (CVisual *)CGeometry2DGroup::CGeometry2DGroup(this_31,param_1,param_2);
-        }
-      }
-      else if (param_3 == 0x45) {
-        this_77 = CBlendEffect::operator_new((__uint64)param_1);
-        if (this_77 != (CGeometryGroup *)0x0) {
-          this_06 = (CVisual *)CGeometryGroup::CGeometryGroup(this_77,param_1,param_2);
-        }
-      }
-      else if (param_3 == 0x4a) {
-        pCVar2 = CAtlasedRectsGroup::operator_new((__uint64)param_1);
-        if (pCVar2 != (CVisual *)0x0) {
-          *(undefined4 *)(pCVar2 + 8) = 0;
-          *(undefined8 *)(pCVar2 + 0x10) = 0;
-          *(CComposition **)(pCVar2 + 0x18) = param_1;
-          *(undefined8 *)(pCVar2 + 0x20) = 0;
-          *(undefined8 *)(pCVar2 + 0x30) = 0;
-          *(undefined4 *)(pCVar2 + 0x28) = 0;
-          *(undefined ***)pCVar2 = &CHolographicComposition::_vftable__for__CNotificationResource__;
-          *(undefined ***)(pCVar2 + 0x50) =
-               &CHolographicComposition::_vftable__for__IHolographicComposition__;
-          *(CComposition **)(pCVar2 + 0x58) = param_1;
-          *(undefined8 *)(pCVar2 + 0x60) = *(undefined8 *)(param_1 + 0x298);
-          this_06 = pCVar2;
-        }
-      }
-      else {
-        if (param_3 != 0x4b) goto LAB_2;
-        this_47 = CHolographicDisplay::operator_new((__uint64)param_1);
-        if (this_47 != (CHolographicDisplay *)0x0) {
-          this_06 = (CVisual *)CHolographicDisplay::CHolographicDisplay(this_47,param_1);
+          if (param_3 == 0x3f) {
+            this = DefaultHeap::AllocClear(0xc0);
+            if (this == (CFilterEffect *)0x0) {
+                    /* WARNING: Subroutine does not return */
+              ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+            }
+            CFilterEffect::CFilterEffect(this,param_1);
+            *(undefined8 *)(this + 0xb0) = 0;
+            *(undefined ***)this = &CFloodEffect::_vftable_;
+            *(undefined4 *)(this + 0xb8) = 0;
+            *(undefined4 *)(this + 0xbc) = 0x3f800000;
+            goto LAB_2;
+          }
+          if (param_3 == 0x40) {
+            this = DefaultHeap::AllocClear(0xc0);
+            if (this == (CFilterEffect *)0x0) {
+                    /* WARNING: Subroutine does not return */
+              ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+            }
+            CFilterEffect::CFilterEffect(this,param_1);
+            ppuVar2 = &CGaussianBlurEffect::_vftable_;
+            *(undefined8 *)(this + 0xb0) = 0x40400000;
+LAB_11:
+            *(undefined ***)this = ppuVar2;
+            *(undefined4 *)(this + 0xb8) = 0;
+            goto LAB_2;
+          }
+          if (param_3 == 0x41) {
+            this_22 = DefaultHeap::AllocClear(0x1e0);
+            if (this_22 == (CGdiSpriteBitmap *)0x0) {
+                    /* WARNING: Subroutine does not return */
+              ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+            }
+            pCVar1 = (CFilterEffect *)CGdiSpriteBitmap::CGdiSpriteBitmap(this_22,param_1);
+          }
+          else if (param_3 == 0x42) {
+            this_21 = DefaultHeap::AllocClear(0x158);
+            if (this_21 == (CGenericInk *)0x0) {
+                    /* WARNING: Subroutine does not return */
+              ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+            }
+            pCVar1 = (CFilterEffect *)CGenericInk::CGenericInk(this_21,param_1);
+          }
+          else if (param_3 == 0x45) {
+            this_20 = DefaultHeap::AllocClear(0xa8);
+            if (this_20 == (CGeometry2DGroup *)0x0) {
+                    /* WARNING: Subroutine does not return */
+              ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+            }
+            pCVar1 = (CFilterEffect *)CGeometry2DGroup::CGeometry2DGroup(this_20,param_1,param_2);
+          }
+          else {
+            if (param_3 != 0x46) {
+              if (param_3 == 0x4b) {
+                this = DefaultHeap::AllocClear(0x80);
+                if (this == (CFilterEffect *)0x0) {
+                    /* WARNING: Subroutine does not return */
+                  ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+                }
+                *(undefined4 *)(this + 8) = 0;
+                *(longlong *)(this + 0x20) = 0;
+                *(longlong *)(this + 0x10) = 0;
+                *(CComposition **)(this + 0x18) = param_1;
+                *(longlong *)(this + 0x30) = 0;
+                *(undefined4 *)(this + 0x28) = 0;
+                *(undefined ***)this =
+                     &CHolographicComposition::_vftable__for__CNotificationResource__;
+                *(undefined ***)(this + 0x50) =
+                     &CHolographicComposition::_vftable__for__IHolographicComposition__;
+                *(CComposition **)(this + 0x58) = param_1;
+                *(longlong *)(this + 0x60) = *(longlong *)(param_1 + 0x298);
+                goto LAB_2;
+              }
+              goto LAB_3;
+            }
+            this_19 = DefaultHeap::AllocClear(0xb8);
+            if (this_19 == (CGeometryGroup *)0x0) {
+                    /* WARNING: Subroutine does not return */
+              ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+            }
+            pCVar1 = (CFilterEffect *)CGeometryGroup::CGeometryGroup(this_19,param_1,param_2);
+          }
         }
       }
     }
     else if (param_3 < 0x58) {
       if (param_3 == 0x57) {
-        pCVar2 = CContent::operator_new(0xd8);
-        if (pCVar2 != (CVisual *)0x0) {
-          *(undefined4 *)(pCVar2 + 8) = 0;
-          *(undefined8 *)(pCVar2 + 0x10) = 0;
-          *(CComposition **)(pCVar2 + 0x18) = param_1;
-          *(undefined8 *)(pCVar2 + 0x20) = 0;
-          *(undefined8 *)(pCVar2 + 0x30) = 0;
-          *(undefined4 *)(pCVar2 + 0x28) = 0;
-          *(undefined ***)pCVar2 = &CInk::_vftable_;
-          *(undefined ***)(pCVar2 + 0x48) = &CDeviceResourceTable<CD2DInk,CInk>::_vftable_;
-          *(CVisual **)(pCVar2 + 0x50) = pCVar2;
-          *(CVisual **)(pCVar2 + 0x58) = pCVar2 + 0x70;
-          *(CVisual **)(pCVar2 + 0x60) = pCVar2 + 0x70;
-          *(CVisual **)(pCVar2 + 0x68) = pCVar2 + 0x80;
-          *(undefined8 *)(pCVar2 + 0x90) = 0;
-          *(undefined8 *)(pCVar2 + 0x98) = 0;
-          *(undefined8 *)(pCVar2 + 0xa0) = 0;
-          *(undefined4 *)(pCVar2 + 0xa8) = 0;
-          this_06 = pCVar2;
-        }
+        this_30 = DefaultHeap::AllocClear(0x158);
+        if (this_30 == (CInjectionAnimation *)0x0) {
+                    /* WARNING: Subroutine does not return */
+          ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+        }
+        pCVar1 = (CFilterEffect *)CInjectionAnimation::CInjectionAnimation(this_30,param_1);
       }
       else if (param_3 == 0x4d) {
-        this_55 = CHolographicExclusiveView::operator_new((__uint64)param_1);
-        if (this_55 != (CHolographicExclusiveView *)0x0) {
-          this_06 = (CVisual *)CHolographicExclusiveView::CHolographicExclusiveView(this_55,param_1)
-          ;
-        }
+        this_29 = DefaultHeap::AllocClear(0x70);
+        if (this_29 == (CHolographicExclusiveMode *)0x0) {
+                    /* WARNING: Subroutine does not return */
+          ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+        }
+        pCVar1 = (CFilterEffect *)
+                 CHolographicExclusiveMode::CHolographicExclusiveMode(this_29,param_1);
       }
       else if (param_3 == 0x4e) {
-        this_54 = CHolographicInteropTarget::operator_new((__uint64)param_1);
-        if (this_54 != (CHolographicInteropTarget *)0x0) {
-          this_06 = (CVisual *)CHolographicInteropTarget::CHolographicInteropTarget(this_54,param_1)
-          ;
-        }
+        this_28 = DefaultHeap::AllocClear(0x1a8);
+        if (this_28 == (CHolographicExclusiveView *)0x0) {
+                    /* WARNING: Subroutine does not return */
+          ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+        }
+        pCVar1 = (CFilterEffect *)
+                 CHolographicExclusiveView::CHolographicExclusiveView(this_28,param_1);
       }
       else if (param_3 == 0x4f) {
-        this_53 = CHolographicInteropTexture::operator_new((__uint64)param_1);
-        if (this_53 != (CHolographicInteropTexture *)0x0) {
-          this_06 = (CVisual *)
-                    CHolographicInteropTexture::CHolographicInteropTexture(this_53,param_1);
+        this_27 = CHolographicInteropTarget::operator_new((__uint64)param_1);
+        if (this_27 != (CHolographicInteropTarget *)0x0) {
+          pCVar1 = (CFilterEffect *)
+                   CHolographicInteropTarget::CHolographicInteropTarget(this_27,param_1);
         }
       }
       else if (param_3 == 0x50) {
-        this_52 = CArithmeticCompositeEffect::operator_new((__uint64)param_1);
-        if (this_52 != (CHolographicViewer *)0x0) {
-          this_06 = (CVisual *)CHolographicViewer::CHolographicViewer(this_52,param_1);
-        }
+        this_26 = DefaultHeap::AllocClear(0x918);
+        if (this_26 == (CHolographicInteropTexture *)0x0) {
+                    /* WARNING: Subroutine does not return */
+          ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+        }
+        pCVar1 = (CFilterEffect *)
+                 CHolographicInteropTexture::CHolographicInteropTexture(this_26,param_1);
       }
       else if (param_3 == 0x51) {
-        pCVar2 = CHoverPointerSource::operator_new((__uint64)param_1);
-        if (pCVar2 != (CVisual *)0x0) {
-          *(undefined4 *)(pCVar2 + 0x10) = 0;
-          *(undefined8 *)(pCVar2 + 0x18) = 0;
-          *(CComposition **)(pCVar2 + 0x20) = param_1;
-          *(undefined8 *)(pCVar2 + 0x28) = 0;
-          *(undefined8 *)(pCVar2 + 0x38) = 0;
-          *(undefined4 *)(pCVar2 + 0x30) = 0;
-          *(undefined ***)pCVar2 =
-               &CHoverPointerSource::_vftable__for__IHoverPointerSourceResource__;
-          *(undefined ***)(pCVar2 + 8) = &CHoverPointerSource::_vftable__for__CResource__;
-          *(undefined8 *)(pCVar2 + 0x50) = 0;
-          *(undefined8 *)(pCVar2 + 0x58) = 0;
-          this_06 = pCVar2;
-        }
-        this_06 = (CVisual *)(-(ulonglong)(this_06 != (CVisual *)0x0) & (ulonglong)(this_06 + 8));
+        this_25 = DefaultHeap::AllocClear(200);
+        if (this_25 == (CHolographicViewer *)0x0) {
+                    /* WARNING: Subroutine does not return */
+          ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+        }
+        pCVar1 = (CFilterEffect *)CHolographicViewer::CHolographicViewer(this_25,param_1);
       }
       else if (param_3 == 0x52) {
-        pvVar4 = CBlendEffect::operator_new((__uint64)param_1);
-        if (pvVar4 != (void *)0x0) {
-          lVar1 = FUN_1802ef0c0();
-          return lVar1;
-        }
-      }
-      else if (param_3 == 0x53) {
-        this_17 = CImageLegacyMilBrush::operator_new((__uint64)param_1);
-        if (this_17 != (CImageLegacyMilBrush *)0x0) {
-          this_06 = (CVisual *)CImageLegacyMilBrush::CImageLegacyMilBrush(this_17,param_1);
-        }
-      }
-      else if (param_3 == 0x55) {
-        this_78 = CIndirectSwapchainRenderTarget::operator_new((__uint64)param_1);
-        if (this_78 != (CIndirectSwapchainRenderTarget *)0x0) {
-          this_06 = (CVisual *)
-                    CIndirectSwapchainRenderTarget::CIndirectSwapchainRenderTarget(this_78,param_1);
-        }
+        puVar3 = DefaultHeap::AllocClear(0x60);
+        if (puVar3 == (undefined8 *)0x0) {
+                    /* WARNING: Subroutine does not return */
+          ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+        }
+        *(undefined4 *)(puVar3 + 2) = 0;
+        puVar3[3] = 0;
+        puVar3[4] = param_1;
+        puVar3[5] = 0;
+        puVar3[7] = 0;
+        *(undefined4 *)(puVar3 + 6) = 0;
+        *puVar3 = &CHoverPointerSource::_vftable__for__IHoverPointerSourceResource__;
+        *(undefined ***)(puVar3 + 1) = &CHoverPointerSource::_vftable__for__CResource__;
+        puVar3[10] = 0;
+        puVar3[0xb] = 0;
+        pCVar1 = (CFilterEffect *)(puVar3 + 1);
       }
       else {
-        if (param_3 != 0x56) goto LAB_2;
-        this_51 = CInjectionAnimation::operator_new((__uint64)param_1);
-        if (this_51 != (CBaseExpression *)0x0) {
-          CBaseExpression::CBaseExpression(this_51,param_1);
-          *(undefined8 *)(this_51 + 0x140) = 0;
-          *(undefined ***)this_51 = &CInjectionAnimation::_vftable_;
-          *(undefined8 *)(this_51 + 0x14c) = 0;
-          this_06 = (CVisual *)this_51;
-        }
+        if (param_3 == 0x53) {
+          this = DefaultHeap::AllocClear(0xb8);
+          if (this == (CFilterEffect *)0x0) {
+                    /* WARNING: Subroutine does not return */
+            ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+          }
+          CFilterEffect::CFilterEffect(this,param_1);
+          ppuVar2 = &CHueRotationEffect::_vftable_;
+          goto LAB_5;
+        }
+        if (param_3 == 0x54) {
+          this = DefaultHeap::AllocClear(0x108);
+          if (this == (CFilterEffect *)0x0) {
+                    /* WARNING: Subroutine does not return */
+            ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+          }
+          *(undefined4 *)(this + 8) = 0;
+          *(longlong *)(this + 0x20) = 0;
+          *(longlong *)(this + 0x10) = 0;
+          *(CComposition **)(this + 0x18) = param_1;
+          *(longlong *)(this + 0x30) = 0;
+          *(undefined4 *)(this + 0x28) = 0;
+          *(uint *)(this + 0x28) = *(uint *)(this + 0x28) | 1;
+          *(undefined ***)this = &CImageLegacyMilBrush::_vftable_;
+          *(undefined4 *)(this + 200) = 0x3f800000;
+          *(undefined4 *)(this + 0xcc) = 0x3f800000;
+          *(undefined4 *)(this + 0xd0) = 0x3f800000;
+          *(undefined8 *)(this + 0xd4) = 0x3f800000;
+          *(undefined8 *)(this + 0xdc) = 0;
+          *(undefined4 *)(this + 0xe4) = 0;
+          this[0xe8] = (CFilterEffect)0x0;
+          *(undefined8 *)(this + 0xf4) = 0;
+          *(undefined8 *)(this + 0xfc) = 0;
+          goto LAB_2;
+        }
+        if (param_3 != 0x56) goto LAB_3;
+        this_24 = DefaultHeap::AllocClear(0xb18);
+        if (this_24 == (CIndirectSwapchainRenderTarget *)0x0) {
+                    /* WARNING: Subroutine does not return */
+          ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+        }
+        pCVar1 = (CFilterEffect *)
+                 CIndirectSwapchainRenderTarget::CIndirectSwapchainRenderTarget(this_24,param_1);
       }
     }
     else if (param_3 == 0x58) {
-      this_14 = CInteraction::operator_new((__uint64)param_1);
-      if (this_14 != (CInteraction *)0x0) {
-        this_06 = (CVisual *)CInteraction::CInteraction(this_14,param_1);
+      this_37 = CContent::operator_new(0xd8);
+      if (this_37 != (CInk *)0x0) {
+        pCVar1 = (CFilterEffect *)CInk::CInk(this_37,param_1);
       }
     }
     else if (param_3 == 0x59) {
-      this_58 = CInteractionTracker::operator_new((__uint64)param_1);
-      if (this_58 != (CInteractionTracker *)0x0) {
-        this_06 = (CVisual *)CInteractionTracker::CInteractionTracker(this_58,param_1);
-      }
+      this_36 = DefaultHeap::AllocClear(0x6c8);
+      if (this_36 == (CInteraction *)0x0) {
+                    /* WARNING: Subroutine does not return */
+        ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+      }
+      pCVar1 = (CFilterEffect *)CInteraction::CInteraction(this_36,param_1);
     }
     else if (param_3 == 0x5a) {
-      this_57 = CHolographicDisplay::operator_new((__uint64)param_1);
-      if (this_57 != (CInteractionTrackerBindingManager *)0x0) {
-        this_06 = (CVisual *)
-                  CInteractionTrackerBindingManager::CInteractionTrackerBindingManager
-                            (this_57,param_1);
-      }
+      this_35 = DefaultHeap::AllocClear(0x288);
+      if (this_35 == (CInteractionTracker *)0x0) {
+                    /* WARNING: Subroutine does not return */
+        ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+      }
+      pCVar1 = (CFilterEffect *)CInteractionTracker::CInteractionTracker(this_35,param_1);
     }
     else if (param_3 == 0x5b) {
-      this_01 = CKeyframeAnimation::operator_new((__uint64)param_1);
-      if (this_01 != (CKeyframeAnimation *)0x0) {
-        this_06 = (CVisual *)CKeyframeAnimation::CKeyframeAnimation(this_01,param_1);
-      }
+      this_34 = DefaultHeap::AllocClear(0x90);
+      if (this_34 == (CInteractionTrackerBindingManager *)0x0) {
+                    /* WARNING: Subroutine does not return */
+        ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+      }
+      pCVar1 = (CFilterEffect *)
+               CInteractionTrackerBindingManager::CInteractionTrackerBindingManager(this_34,param_1)
+      ;
     }
     else if (param_3 == 0x5c) {
-      this_23 = CLayerVisual::operator_new((__uint64)param_1);
-      if (this_23 != (CLayerVisual *)0x0) {
-        this_06 = (CVisual *)CLayerVisual::CLayerVisual(this_23,param_1);
-      }
-    }
-    else if (param_3 == 0x5d) {
-      pCVar2 = CHolographicExclusiveMode::operator_new((__uint64)param_1);
-      if (pCVar2 != (CVisual *)0x0) {
-        *(undefined4 *)(pCVar2 + 8) = 0;
-        *(undefined8 *)(pCVar2 + 0x10) = 0;
-        *(CComposition **)(pCVar2 + 0x18) = param_1;
-        *(undefined8 *)(pCVar2 + 0x20) = 0;
-        *(undefined8 *)(pCVar2 + 0x30) = 0;
-        *(undefined4 *)(pCVar2 + 0x28) = 0;
-        *(undefined ***)pCVar2 = &CLegacyAnimationTrigger::_vftable_;
-        *(undefined8 *)(pCVar2 + 0x48) = 0;
-        *(undefined8 *)(pCVar2 + 0x50) = 0;
-        *(undefined8 *)(pCVar2 + 0x58) = 0;
-        *(undefined4 *)(pCVar2 + 0x60) = 0;
-        this_06 = pCVar2;
-      }
-    }
-    else if (param_3 == 0x5f) {
-      this_79 = CLegacyRenderTarget::operator_new((__uint64)param_1);
-      if (this_79 != (CLegacyRenderTarget *)0x0) {
-        this_06 = (CVisual *)CLegacyRenderTarget::CLegacyRenderTarget(this_79,param_1);
+      this_33 = CKeyframeAnimation::operator_new((__uint64)param_1);
+      if (this_33 != (CKeyframeAnimation *)0x0) {
+        pCVar1 = (CFilterEffect *)CKeyframeAnimation::CKeyframeAnimation(this_33,param_1);
       }
     }
     else {
-      if (param_3 != 0x60) goto LAB_2;
-      this_56 = CLegacyStereoRenderTarget::operator_new((__uint64)param_1);
-      if (this_56 != (CLegacyStereoRenderTarget *)0x0) {
-        this_06 = (CVisual *)CLegacyStereoRenderTarget::CLegacyStereoRenderTarget(this_56,param_1);
-      }
-    }
-LAB_9:
-    if (this_06 != (CVisual *)0x0) {
-LAB_1:
-      if (*(code **)(*(longlong *)this_06 + 8) == CMILRefCountImpl::AddReference) {
-        CMILRefCountImpl::AddReference((CMILRefCountImpl *)this_06);
+      if (param_3 == 0x5d) {
+        this = DefaultHeap::AllocClear(0x2c8);
+        if (this == (CFilterEffect *)0x0) {
+                    /* WARNING: Subroutine does not return */
+          ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+        }
+        CVisual::CVisual((CVisual *)this,param_1);
+        *(undefined ***)this = &CLayerVisual::_vftable_;
+        *(undefined8 *)(this + 0x2b8) = 0;
+        goto LAB_2;
+      }
+      if (param_3 == 0x5e) {
+        this = DefaultHeap::AllocClear(0x70);
+        if (this == (CFilterEffect *)0x0) {
+                    /* WARNING: Subroutine does not return */
+          ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+        }
+        *(undefined4 *)(this + 8) = 0;
+        *(longlong *)(this + 0x20) = 0;
+        *(longlong *)(this + 0x10) = 0;
+        *(CComposition **)(this + 0x18) = param_1;
+        *(longlong *)(this + 0x30) = 0;
+        *(undefined4 *)(this + 0x28) = 0;
+        *(undefined ***)this = &CLegacyAnimationTrigger::_vftable_;
+        *(longlong *)(this + 0x48) = 0;
+        *(longlong *)(this + 0x50) = 0;
+        *(longlong *)(this + 0x58) = 0;
+        *(undefined4 *)(this + 0x60) = 0;
+        goto LAB_2;
+      }
+      if (param_3 == 0x60) {
+        this_32 = DefaultHeap::AllocClear(0x82f0);
+        if (this_32 == (CLegacyRenderTarget *)0x0) {
+                    /* WARNING: Subroutine does not return */
+          ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+        }
+        pCVar1 = (CFilterEffect *)CLegacyRenderTarget::CLegacyRenderTarget(this_32,param_1);
       }
       else {
-        (**(code **)(*(longlong *)this_06 + 8))();
-      }
-      *param_4 = (CResource *)this_06;
-      return 0;
+        if (param_3 != 0x61) goto LAB_3;
+        this_31 = DefaultHeap::AllocClear(0x8300);
+        if (this_31 == (CLegacyStereoRenderTarget *)0x0) {
+                    /* WARNING: Subroutine does not return */
+          ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+        }
+        pCVar1 = (CFilterEffect *)
+                 CLegacyStereoRenderTarget::CLegacyStereoRenderTarget(this_31,param_1);
+      }
+    }
+  }
+  else if (param_3 < 0x93) {
+    if (param_3 == 0x92) {
+      this_57 = DefaultHeap::AllocClear(0x80);
+      if (this_57 == (CSceneMeshRendererComponent *)0x0) {
+                    /* WARNING: Subroutine does not return */
+        ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+      }
+      pCVar1 = (CFilterEffect *)
+               CSceneMeshRendererComponent::CSceneMeshRendererComponent(this_57,param_1);
+    }
+    else if (param_3 < 0x79) {
+      if (param_3 == 0x78) {
+        this_49 = DefaultHeap::AllocClear(0x90);
+        if (this_49 == (CProjectedShadowCaster *)0x0) {
+                    /* WARNING: Subroutine does not return */
+          ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+        }
+        pCVar1 = (CFilterEffect *)CProjectedShadowCaster::CProjectedShadowCaster(this_49,param_1);
+      }
+      else if (param_3 < 0x6e) {
+        if (param_3 == 0x6d) {
+          this = DefaultHeap::AllocClear(0xb8);
+          if (this == (CFilterEffect *)0x0) {
+                    /* WARNING: Subroutine does not return */
+            ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+          }
+          CTransform::CTransform((CTransform *)this,param_1);
+          *(undefined4 *)(this + 0xa0) = 0x3f800000;
+          *(undefined4 *)(this + 0xac) = 0x3f800000;
+          *(undefined ***)this = &CMatrixTransform::_vftable_;
+          goto LAB_2;
+        }
+        if (param_3 == 99) {
+          this_43 = DefaultHeap::AllocClear(0x100);
+          if (this_43 == (CLinearGradientBrush *)0x0) {
+                    /* WARNING: Subroutine does not return */
+            ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+          }
+          pCVar1 = (CFilterEffect *)CLinearGradientBrush::CLinearGradientBrush(this_43,param_1);
+        }
+        else if (param_3 == 100) {
+          this_42 = DefaultHeap::AllocClear(0xd8);
+          if (this_42 == (CLinearGradientLegacyMilBrush *)0x0) {
+                    /* WARNING: Subroutine does not return */
+            ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+          }
+          pCVar1 = (CFilterEffect *)
+                   CLinearGradientLegacyMilBrush::CLinearGradientLegacyMilBrush(this_42,param_1);
+        }
+        else if (param_3 == 0x65) {
+          this_41 = DefaultHeap::AllocClear(0xe0);
+          if (this_41 == (CLinearTransferEffect *)0x0) {
+                    /* WARNING: Subroutine does not return */
+            ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+          }
+          pCVar1 = (CFilterEffect *)CLinearTransferEffect::CLinearTransferEffect(this_41,param_1);
+        }
+        else {
+          if (param_3 == 0x66) {
+            this = DefaultHeap::AllocClear(0x98);
+            if (this == (CFilterEffect *)0x0) {
+                    /* WARNING: Subroutine does not return */
+              ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+            }
+            CGeometry::CGeometry((CGeometry *)this,param_1);
+            ppuVar2 = &CLineGeometry::_vftable_;
+            goto LAB_12;
+          }
+          if (param_3 == 0x68) {
+            this_40 = DefaultHeap::AllocClear(3000);
+            if (this_40 == (CMagnifierRenderTarget *)0x0) {
+                    /* WARNING: Subroutine does not return */
+              ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+            }
+            pCVar1 = (CFilterEffect *)
+                     CMagnifierRenderTarget::CMagnifierRenderTarget(this_40,param_1);
+          }
+          else if (param_3 == 0x69) {
+            this_39 = DefaultHeap::AllocClear(0x2e0);
+            if (this_39 == (CManipulation *)0x0) {
+                    /* WARNING: Subroutine does not return */
+              ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+            }
+            pCVar1 = (CFilterEffect *)CManipulation::CManipulation(this_39,param_1);
+          }
+          else if (param_3 == 0x6a) {
+            this_38 = DefaultHeap::AllocClear(0x118);
+            if (this_38 == (CManipulationTransform *)0x0) {
+                    /* WARNING: Subroutine does not return */
+              ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+            }
+            pCVar1 = (CFilterEffect *)
+                     CManipulationTransform::CManipulationTransform(this_38,param_1);
+          }
+          else {
+            if (param_3 == 0x6b) {
+              this = DefaultHeap::AllocClear(0x80);
+              if (this == (CFilterEffect *)0x0) {
+                    /* WARNING: Subroutine does not return */
+                ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+              }
+              *(undefined4 *)(this + 8) = 0;
+              *(longlong *)(this + 0x20) = 0;
+              *(longlong *)(this + 0x10) = 0;
+              *(CComposition **)(this + 0x18) = param_1;
+              *(longlong *)(this + 0x30) = 0;
+              *(undefined4 *)(this + 0x28) = 0;
+              *(undefined ***)this = &CMaskBrush::_vftable__for__CContent__;
+              *(undefined ***)(this + 0x48) = &CMaskBrush::_vftable__for__IBrushChangeNotification__
+              ;
+              *(undefined ***)(this + 0x68) = &CMaskBrush::_vftable_;
+              *(longlong *)(this + 0x50) = 0;
+              *(longlong *)(this + 0x58) = 0;
+              this[0x60] = (CFilterEffect)0x0;
+              goto LAB_2;
+            }
+            if (param_3 != 0x6c) goto LAB_3;
+            this = CResource::operator_new(0x60);
+            if (this != (CFilterEffect *)0x0) {
+              *(undefined4 *)(this + 8) = 0;
+              *(longlong *)(this + 0x10) = 0;
+              *(CComposition **)(this + 0x18) = param_1;
+              *(longlong *)(this + 0x20) = 0;
+              *(longlong *)(this + 0x30) = 0;
+              *(undefined4 *)(this + 0x28) = 0;
+              *(longlong *)(this + 0x48) = 0;
+              *(longlong *)(this + 0x50) = 0;
+              *(longlong *)(this + 0x58) = 0;
+              ppuVar2 = &CMatrixResource::_vftable_;
+              goto LAB_0;
+            }
+          }
+        }
+      }
+      else {
+        if (param_3 == 0x6e) {
+          this = DefaultHeap::AllocClear(0xe0);
+          if (this == (CFilterEffect *)0x0) {
+                    /* WARNING: Subroutine does not return */
+            ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+          }
+          CTransform3D::CTransform3D((CTransform3D *)this,param_1,false);
+          *(undefined4 *)(this + 0xa0) = 0x3f800000;
+          *(undefined4 *)(this + 0xb4) = 0x3f800000;
+          *(undefined4 *)(this + 200) = 0x3f800000;
+          *(undefined4 *)(this + 0xdc) = 0x3f800000;
+          *(undefined ***)this = &CMatrixTransform3D::_vftable_;
+          goto LAB_2;
+        }
+        if (param_3 == 0x6f) {
+          this_48 = DefaultHeap::AllocClear(0xc0);
+          if (this_48 == (CMeshGeometry2D *)0x0) {
+                    /* WARNING: Subroutine does not return */
+            ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+          }
+          pCVar1 = (CFilterEffect *)CMeshGeometry2D::CMeshGeometry2D(this_48,param_1);
+        }
+        else if (param_3 == 0x70) {
+          this_47 = DefaultHeap::AllocClear(0x240);
+          if (this_47 == (CNaturalAnimation *)0x0) {
+                    /* WARNING: Subroutine does not return */
+            ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+          }
+          pCVar1 = (CFilterEffect *)CNaturalAnimation::CNaturalAnimation(this_47,param_1);
+        }
+        else if (param_3 == 0x71) {
+          this_46 = DefaultHeap::AllocClear(0xb0);
+          if (this_46 == (CNineGridBrush *)0x0) {
+                    /* WARNING: Subroutine does not return */
+            ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+          }
+          pCVar1 = (CFilterEffect *)CNineGridBrush::CNineGridBrush(this_46,param_1,false);
+        }
+        else {
+          if (param_3 == 0x73) {
+            this = DefaultHeap::AllocClear(0x90);
+            if (this == (CFilterEffect *)0x0) {
+                    /* WARNING: Subroutine does not return */
+              ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+            }
+            CGeometry::CGeometry((CGeometry *)this,param_1);
+            *(undefined ***)this = &CPathGeometry::_vftable_;
+            *(undefined8 *)(this + 0x88) = 0;
+            goto LAB_2;
+          }
+          if (param_3 == 0x74) {
+            this = CResource::operator_new(0x50);
+            if (this != (CFilterEffect *)0x0) {
+              *(undefined4 *)(this + 8) = 0;
+              *(longlong *)(this + 0x10) = 0;
+              *(CComposition **)(this + 0x18) = param_1;
+              *(longlong *)(this + 0x20) = 0;
+              *(longlong *)(this + 0x30) = 0;
+              *(undefined4 *)(this + 0x28) = 0;
+              *(longlong *)(this + 0x48) = 0;
+              ppuVar2 = &CPointResource::_vftable_;
+              goto LAB_0;
+            }
+          }
+          else {
+            if (param_3 == 0x75) {
+              this = DefaultHeap::AllocClear(0x58);
+              if (this == (CFilterEffect *)0x0) {
+                    /* WARNING: Subroutine does not return */
+                ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+              }
+              *(undefined4 *)(this + 8) = 0;
+              *(longlong *)(this + 0x10) = 0;
+              *(CComposition **)(this + 0x18) = param_1;
+              *(longlong *)(this + 0x20) = 0;
+              *(longlong *)(this + 0x30) = 0;
+              *(undefined4 *)(this + 0x28) = 0;
+              ppuVar2 = &CPrimitiveColor::_vftable_;
+              goto LAB_0;
+            }
+            if (param_3 == 0x76) {
+              this_45 = DefaultHeap::AllocClear(0x250);
+              if (this_45 == (CPrimitiveGroup *)0x0) {
+                    /* WARNING: Subroutine does not return */
+                ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+              }
+              pCVar1 = (CFilterEffect *)CPrimitiveGroup::CPrimitiveGroup(this_45,param_1);
+            }
+            else {
+              if (param_3 != 0x77) goto LAB_3;
+              this_44 = CProjectedShadow::operator_new((__uint64)param_1);
+              if (this_44 != (CProjectedShadow *)0x0) {
+                pCVar1 = (CFilterEffect *)CProjectedShadow::CProjectedShadow(this_44,param_1);
+              }
+            }
+          }
+        }
+      }
+    }
+    else if (param_3 < 0x84) {
+      if (param_3 == 0x83) {
+        this_53 = DefaultHeap::AllocClear(0xa48);
+        if (this_53 == (CRemoteAppRenderTarget *)0x0) {
+                    /* WARNING: Subroutine does not return */
+          ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+        }
+        pCVar1 = (CFilterEffect *)CRemoteAppRenderTarget::CRemoteAppRenderTarget(this_53,param_1);
+      }
+      else {
+        if (param_3 == 0x79) {
+          this = DefaultHeap::AllocClear(0x80);
+          if (this == (CFilterEffect *)0x0) {
+                    /* WARNING: Subroutine does not return */
+            ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+          }
+          *(undefined4 *)(this + 8) = 0;
+          *(longlong *)(this + 0x20) = 0;
+          *(longlong *)(this + 0x10) = 0;
+          *(CComposition **)(this + 0x18) = param_1;
+          *(longlong *)(this + 0x30) = 0;
+          *(undefined4 *)(this + 0x28) = 0;
+          *(undefined ***)this = &CProjectedShadowReceiver::_vftable_;
+          *(longlong *)(this + 0x60) = 0;
+          goto LAB_1;
+        }
+        if (param_3 == 0x7a) {
+          this_52 = DefaultHeap::AllocClear(0x90);
+          if (this_52 == (CProjectedShadowScene *)0x0) {
+                    /* WARNING: Subroutine does not return */
+            ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+          }
+          pCVar1 = (CFilterEffect *)CProjectedShadowScene::CProjectedShadowScene(this_52,param_1);
+        }
+        else {
+          if (param_3 == 0x7c) {
+            this = DefaultHeap::AllocClear(0xa0);
+            if (this == (CFilterEffect *)0x0) {
+                    /* WARNING: Subroutine does not return */
+              ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+            }
+            *(undefined4 *)(this + 8) = 0;
+            *(longlong *)(this + 0x20) = 0;
+            *(longlong *)(this + 0x10) = 0;
+            *(CComposition **)(this + 0x18) = param_1;
+            *(longlong *)(this + 0x30) = 0;
+            *(undefined4 *)(this + 0x28) = 0;
+            *(undefined ***)this = &CPropertySet::_vftable_;
+            *(longlong *)(this + 0x58) = 0;
+            *(longlong *)(this + 0x60) = 0;
+            *(longlong *)(this + 0x68) = 0;
+            *(undefined4 *)(this + 0x70) = 0;
+            *(longlong *)(this + 0x78) = 0;
+            *(longlong *)(this + 0x80) = 0;
+            *(longlong *)(this + 0x88) = 0;
+            *(undefined4 *)(this + 0x90) = 0;
+            goto LAB_2;
+          }
+          if (param_3 == 0x7d) {
+            this = DefaultHeap::AllocClear(0x98);
+            if (this == (CFilterEffect *)0x0) {
+                    /* WARNING: Subroutine does not return */
+              ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+            }
+            CGeometry::CGeometry((CGeometry *)this,param_1);
+            ppuVar2 = &CProxyGeometry::_vftable_;
+            goto LAB_12;
+          }
+          if (param_3 == 0x7e) {
+            this_51 = DefaultHeap::AllocClear(0x110);
+            if (this_51 == (CRadialGradientBrush *)0x0) {
+                    /* WARNING: Subroutine does not return */
+              ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+            }
+            pCVar1 = (CFilterEffect *)CRadialGradientBrush::CRadialGradientBrush(this_51,param_1);
+            goto LAB_10;
+          }
+          if (param_3 == 0x7f) {
+            this = DefaultHeap::AllocClear(200);
+            if (this == (CFilterEffect *)0x0) {
+                    /* WARNING: Subroutine does not return */
+              ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+            }
+            CGeometry::CGeometry((CGeometry *)this,param_1);
+            ppuVar2 = &CRectangleGeometry::_vftable_;
+            goto LAB_11;
+          }
+          if (param_3 == 0x80) {
+            this = CResource::operator_new(0x58);
+            if (this != (CFilterEffect *)0x0) {
+              *(undefined4 *)(this + 8) = 0;
+              *(longlong *)(this + 0x10) = 0;
+              *(CComposition **)(this + 0x18) = param_1;
+              *(longlong *)(this + 0x20) = 0;
+              *(longlong *)(this + 0x30) = 0;
+              *(undefined4 *)(this + 0x28) = 0;
+              ppuVar2 = &CRectResource::_vftable_;
+              *(longlong *)(this + 0x48) = 0;
+              *(longlong *)(this + 0x50) = 0;
+              goto LAB_0;
+            }
+          }
+          else {
+            if (param_3 == 0x81) {
+              this = DefaultHeap::AllocClear(0x2a8);
+              if (this == (CFilterEffect *)0x0) {
+                    /* WARNING: Subroutine does not return */
+                ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+              }
+              CVisual::CVisual((CVisual *)this,param_1);
+              ppuVar2 = &CRedirectVisual::_vftable_;
+              goto LAB_0;
+            }
+            if (param_3 != 0x82) goto LAB_3;
+            this_50 = DefaultHeap::AllocClear(0xa8);
+            if (this_50 == (CRegionGeometry *)0x0) {
+                    /* WARNING: Subroutine does not return */
+              ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+            }
+            pCVar1 = (CFilterEffect *)CRegionGeometry::CRegionGeometry(this_50,param_1);
+          }
+        }
+      }
+    }
+    else if (param_3 == 0x84) {
+      this_56 = DefaultHeap::AllocClear(0xa78);
+      if (this_56 == (CRemoteRenderTarget *)0x0) {
+                    /* WARNING: Subroutine does not return */
+        ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+      }
+      pCVar1 = (CFilterEffect *)CRemoteRenderTarget::CRemoteRenderTarget(this_56,param_1);
+    }
+    else {
+      if (param_3 != 0x85) {
+        if (param_3 == 0x88) {
+          this = DefaultHeap::AllocClear(0xb0);
+          if (this == (CFilterEffect *)0x0) {
+                    /* WARNING: Subroutine does not return */
+            ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+          }
+          CTransform::CTransform((CTransform *)this,param_1);
+          ppuVar2 = &CRotateTransform::_vftable_;
+          goto LAB_12;
+        }
+        if (param_3 == 0x89) {
+          this = DefaultHeap::AllocClear(0xc0);
+          if (this == (CFilterEffect *)0x0) {
+                    /* WARNING: Subroutine does not return */
+            ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+          }
+          pCVar5 = (CTransform3D *)this;
+          CTransform3D::CTransform3D((CTransform3D *)this,param_1,false);
+          ppuVar2 = &CRotateTransform3D::_vftable_;
+          *(undefined4 *)(pCVar5 + 0xac) = 0x3f800000;
+        }
+        else {
+          if (param_3 == 0x8a) {
+            this = DefaultHeap::AllocClear(0xb8);
+            if (this == (CFilterEffect *)0x0) {
+                    /* WARNING: Subroutine does not return */
+              ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+            }
+            CFilterEffect::CFilterEffect(this,param_1);
+            *(undefined4 *)(this + 0xb0) = 0x3f000000;
+            *(undefined ***)this = &CSaturationEffect::_vftable_;
+            goto LAB_2;
+          }
+          if (param_3 == 0x8b) {
+            this = DefaultHeap::AllocClear(0x80);
+            if (this == (CFilterEffect *)0x0) {
+                    /* WARNING: Subroutine does not return */
+              ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+            }
+            CBaseAnimation::CBaseAnimation((CBaseAnimation *)this,param_1);
+            *(undefined ***)this = &CScalar::_vftable__for__CResource__;
+            ppuVar2 = &CScalar::_vftable__for__IAnimationResource__;
+            goto LAB_6;
+          }
+          if (param_3 == 0x8c) {
+            this = DefaultHeap::AllocClear(0xb0);
+            if (this == (CFilterEffect *)0x0) {
+                    /* WARNING: Subroutine does not return */
+              ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+            }
+            pCVar4 = (CTransform *)this;
+            CTransform::CTransform((CTransform *)this,param_1);
+            *(undefined4 *)(pCVar4 + 0xa0) = 0x3f800000;
+            *(undefined4 *)(pCVar4 + 0xa4) = 0x3f800000;
+            ppuVar2 = &CScaleTransform::_vftable_;
+          }
+          else {
+            if (param_3 != 0x8d) {
+              if (param_3 != 0x91) goto LAB_3;
+              this_54 = DefaultHeap::AllocClear(0xb8);
+              if (this_54 == (CSceneMesh *)0x0) {
+                    /* WARNING: Subroutine does not return */
+                ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+              }
+              pCVar1 = (CFilterEffect *)CSceneMesh::CSceneMesh(this_54,param_1);
+              goto LAB_10;
+            }
+            this = DefaultHeap::AllocClear(0xb8);
+            if (this == (CFilterEffect *)0x0) {
+                    /* WARNING: Subroutine does not return */
+              ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+            }
+            pCVar5 = (CTransform3D *)this;
+            CTransform3D::CTransform3D((CTransform3D *)this,param_1,false);
+            *(undefined4 *)(pCVar5 + 0xa0) = 0x3f800000;
+            *(undefined4 *)(pCVar5 + 0xa4) = 0x3f800000;
+            *(undefined4 *)(pCVar5 + 0xa8) = 0x3f800000;
+            ppuVar2 = &CScaleTransform3D::_vftable_;
+          }
+        }
+        goto LAB_0;
+      }
+      this_55 = CContent::operator_new(0x130);
+      if (this_55 != (CRenderData *)0x0) {
+        pCVar1 = (CFilterEffect *)CRenderData::CRenderData(this_55,param_1);
+      }
+    }
+  }
+  else if (param_3 < 0xab) {
+    if (param_3 == 0xaa) {
+      this_65 = CContent::operator_new(0x120);
+      if (this_65 != (CSynchronousSuperWetInk *)0x0) {
+        pCVar1 = (CFilterEffect *)CSynchronousSuperWetInk::CSynchronousSuperWetInk(this_65,param_1);
+      }
+    }
+    else if (param_3 < 0xa0) {
+      if (param_3 == 0x9f) {
+        this = DefaultHeap::AllocClear(0x58);
+        if (this == (CFilterEffect *)0x0) {
+                    /* WARNING: Subroutine does not return */
+          ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+        }
+        *(undefined4 *)(this + 8) = 0;
+        *(longlong *)(this + 0x20) = 0;
+        *(longlong *)(this + 0x10) = 0;
+        *(CComposition **)(this + 0x18) = param_1;
+        *(longlong *)(this + 0x30) = 0;
+        *(undefined4 *)(this + 0x28) = 0;
+        *(undefined ***)this = &CSharedSectionWrapper::_vftable_;
+        *(longlong *)(this + 0x48) = 0;
+        goto LAB_2;
+      }
+      if (param_3 == 0x93) {
+        this_62 = DefaultHeap::AllocClear(0xc0);
+        if (this_62 == (CSceneMetallicRoughnessMaterial *)0x0) {
+                    /* WARNING: Subroutine does not return */
+          ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+        }
+        pCVar1 = (CFilterEffect *)
+                 CSceneMetallicRoughnessMaterial::CSceneMetallicRoughnessMaterial(this_62,param_1);
+      }
+      else {
+        if (param_3 == 0x94) {
+          this = DefaultHeap::AllocClear(0x50);
+          if (this == (CFilterEffect *)0x0) {
+                    /* WARNING: Subroutine does not return */
+            ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+          }
+          *(undefined4 *)(this + 8) = 0;
+          *(longlong *)(this + 0x10) = 0;
+          *(CComposition **)(this + 0x18) = param_1;
+          *(longlong *)(this + 0x20) = 0;
+          *(longlong *)(this + 0x30) = 0;
+          *(undefined4 *)(this + 0x28) = 0;
+          ppuVar2 = &CSceneModelTransform::_vftable_;
+          goto LAB_0;
+        }
+        if (param_3 == 0x95) {
+          this_61 = CSceneNode::operator_new((__uint64)param_1);
+          if (this_61 != (CSceneNode *)0x0) {
+            pCVar1 = (CFilterEffect *)CSceneNode::CSceneNode(this_61,param_1);
+          }
+        }
+        else if (param_3 == 0x99) {
+          this_60 = DefaultHeap::AllocClear(0x80);
+          if (this_60 == (CSceneSurfaceMaterialInput *)0x0) {
+                    /* WARNING: Subroutine does not return */
+            ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+          }
+          pCVar1 = (CFilterEffect *)
+                   CSceneSurfaceMaterialInput::CSceneSurfaceMaterialInput(this_60,param_1);
+        }
+        else if (param_3 == 0x9a) {
+          this_59 = DefaultHeap::AllocClear(0x2b8);
+          if (this_59 == (CSceneVisual *)0x0) {
+                    /* WARNING: Subroutine does not return */
+            ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+          }
+          pCVar1 = (CFilterEffect *)CSceneVisual::CSceneVisual(this_59,param_1);
+        }
+        else {
+          if (param_3 != 0x9b) {
+            if (param_3 == 0x9c) {
+              this = DefaultHeap::AllocClear(0x2a8);
+              if (this == (CFilterEffect *)0x0) {
+                    /* WARNING: Subroutine does not return */
+                ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+              }
+              CVisual::CVisual((CVisual *)this,param_1);
+              ppuVar2 = &CShapeVisual::_vftable_;
+            }
+            else {
+              if (param_3 != 0x9d) {
+                if (param_3 == 0x9e) {
+                  this = DefaultHeap::AllocClear(0x68);
+                  if (this == (CFilterEffect *)0x0) {
+                    /* WARNING: Subroutine does not return */
+                    ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+                  }
+                  *(undefined4 *)(this + 8) = 0;
+                  *(longlong *)(this + 0x20) = 0;
+                  *(longlong *)(this + 0x10) = 0;
+                  *(CComposition **)(this + 0x18) = param_1;
+                  *(longlong *)(this + 0x30) = 0;
+                  *(undefined4 *)(this + 0x28) = 0;
+                  *(undefined ***)this = &CSharedSectionBase::_vftable_;
+                  *(longlong *)(this + 0x58) = 0;
+                  goto LAB_9;
+                }
+                goto LAB_3;
+              }
+              this = DefaultHeap::AllocClear(0x68);
+              if (this == (CFilterEffect *)0x0) {
+                    /* WARNING: Subroutine does not return */
+                ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+              }
+              *(undefined4 *)(this + 8) = 0;
+              *(longlong *)(this + 0x20) = 0;
+              *(longlong *)(this + 0x10) = 0;
+              *(CComposition **)(this + 0x18) = param_1;
+              *(longlong *)(this + 0x30) = 0;
+              *(undefined4 *)(this + 0x28) = 0;
+              ppuVar2 = &CSharedSection::_vftable_;
+              *(longlong *)(this + 0x58) = 0;
+              *(longlong *)(this + 0x60) = 0;
+            }
+            goto LAB_0;
+          }
+          this_58 = DefaultHeap::AllocClear(200);
+          if (this_58 == (CShadowEffect *)0x0) {
+                    /* WARNING: Subroutine does not return */
+            ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+          }
+          pCVar1 = (CFilterEffect *)CShadowEffect::CShadowEffect(this_58,param_1);
+        }
+      }
+    }
+    else if (param_3 == 0xa0) {
+      this = CResource::operator_new(0x50);
+      if (this != (CFilterEffect *)0x0) {
+        *(undefined4 *)(this + 8) = 0;
+        *(longlong *)(this + 0x10) = 0;
+        *(CComposition **)(this + 0x18) = param_1;
+        *(longlong *)(this + 0x20) = 0;
+        *(longlong *)(this + 0x30) = 0;
+        *(undefined4 *)(this + 0x28) = 0;
+        *(longlong *)(this + 0x48) = 0;
+        ppuVar2 = &CSizeResource::_vftable_;
+        goto LAB_0;
+      }
+    }
+    else {
+      if (param_3 == 0xa1) {
+        this = DefaultHeap::AllocClear(0xb0);
+        if (this == (CFilterEffect *)0x0) {
+                    /* WARNING: Subroutine does not return */
+          ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+        }
+        CTransform::CTransform((CTransform *)this,param_1);
+        ppuVar2 = &CSkewTransform::_vftable_;
+        goto LAB_12;
+      }
+      if (param_3 == 0xa2) {
+        this = CContent::operator_new(0x60);
+        if (this != (CFilterEffect *)0x0) {
+          *(undefined4 *)(this + 8) = 0;
+          *(longlong *)(this + 0x20) = 0;
+          *(longlong *)(this + 0x10) = 0;
+          *(CComposition **)(this + 0x18) = param_1;
+          *(longlong *)(this + 0x30) = 0;
+          *(undefined4 *)(this + 0x28) = 0;
+          *(undefined ***)this = &CSnapshot::_vftable_;
+          *(longlong *)(this + 0x48) = 0;
+          *(longlong *)(this + 0x50) = 0;
+          *(undefined2 *)(this + 0x58) = 0;
+          goto LAB_2;
+        }
+      }
+      else if (param_3 == 0xa3) {
+        this = CResource::operator_new(0x48);
+        if (this != (CFilterEffect *)0x0) {
+          *(undefined4 *)(this + 8) = 0;
+          *(longlong *)(this + 0x10) = 0;
+          *(CComposition **)(this + 0x18) = param_1;
+          *(longlong *)(this + 0x20) = 0;
+          *(longlong *)(this + 0x30) = 0;
+          *(undefined4 *)(this + 0x28) = 0;
+          ppuVar2 = &CSoftwareCursorScope::_vftable_;
+          goto LAB_0;
+        }
+      }
+      else {
+        if (param_3 == 0xa4) {
+          this = DefaultHeap::AllocClear(0x78);
+          if (this == (CFilterEffect *)0x0) {
+                    /* WARNING: Subroutine does not return */
+            ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+          }
+          *(undefined4 *)(this + 8) = 0;
+          *(longlong *)(this + 0x20) = 0;
+          *(longlong *)(this + 0x10) = 0;
+          *(CComposition **)(this + 0x18) = param_1;
+          *(longlong *)(this + 0x30) = 0;
+          *(undefined4 *)(this + 0x28) = 0;
+          ppuVar2 = &CSolidColorLegacyMilBrush::_vftable_;
+          *(uint *)(this + 0x28) = *(uint *)(this + 0x28) | 1;
+          goto LAB_0;
+        }
+        if (param_3 == 0xa5) {
+          this_64 = DefaultHeap::AllocClear(0xd8);
+          if (this_64 == (CSpriteVectorShape *)0x0) {
+                    /* WARNING: Subroutine does not return */
+            ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+          }
+          pCVar1 = (CFilterEffect *)CSpriteVectorShape::CSpriteVectorShape(this_64,param_1);
+        }
+        else {
+          if (param_3 == 0xa6) {
+            this = DefaultHeap::AllocClear(0x2a8);
+            if (this == (CFilterEffect *)0x0) {
+                    /* WARNING: Subroutine does not return */
+              ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+            }
+            CVisual::CVisual((CVisual *)this,param_1);
+            ppuVar2 = &CSpriteVisual::_vftable_;
+            goto LAB_0;
+          }
+          if (param_3 == 0xa7) {
+            this = CVisual::operator_new(0x2b0);
+            if (this != (CFilterEffect *)0x0) {
+              CVisual::CVisual((CVisual *)this,param_1);
+              ppuVar2 = &CSuperWetInkVisual::_vftable_;
+              goto LAB_0;
+            }
+          }
+          else {
+            if (param_3 != 0xa9) goto LAB_3;
+            this_63 = DefaultHeap::AllocClear(0xd0);
+            if (this_63 == (CSurfaceBrush *)0x0) {
+                    /* WARNING: Subroutine does not return */
+              ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+            }
+            pCVar1 = (CFilterEffect *)CSurfaceBrush::CSurfaceBrush(this_63,param_1);
+          }
+        }
+      }
+    }
+  }
+  else if (param_3 < 0xb9) {
+    if (param_3 == 0xb8) {
+      this_73 = CVisual::operator_new(0x2a8);
+      if (this_73 != (CVisual *)0x0) {
+        pCVar1 = (CFilterEffect *)CVisual::CVisual(this_73,param_1);
+      }
+    }
+    else if (param_3 == 0xab) {
+      this_72 = DefaultHeap::AllocClear(0x158);
+      if (this_72 == (CTableTransferEffect *)0x0) {
+                    /* WARNING: Subroutine does not return */
+        ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+      }
+      pCVar1 = (CFilterEffect *)CTableTransferEffect::CTableTransferEffect(this_72,param_1);
+    }
+    else if (param_3 == 0xad) {
+      this_71 = CVisual::operator_new(0x2f0);
+      if (this_71 != (CTextVisual *)0x0) {
+        pCVar1 = (CFilterEffect *)CTextVisual::CTextVisual(this_71,param_1);
+      }
+    }
+    else if (param_3 == 0xb0) {
+      this_70 = DefaultHeap::AllocClear(0xd8);
+      if (this_70 == (CTransform3DGroup *)0x0) {
+                    /* WARNING: Subroutine does not return */
+        ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+      }
+      pCVar1 = (CFilterEffect *)CTransform3DGroup::CTransform3DGroup(this_70,param_1,param_2);
+    }
+    else {
+      if (param_3 != 0xb1) {
+        if (param_3 == 0xb2) {
+          this = DefaultHeap::AllocClear(0xa8);
+          if (this == (CFilterEffect *)0x0) {
+                    /* WARNING: Subroutine does not return */
+            ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+          }
+          CTransform::CTransform((CTransform *)this,param_1);
+          ppuVar2 = &CTranslateTransform::_vftable_;
+        }
+        else {
+          if (param_3 != 0xb3) {
+            if (param_3 == 0xb4) {
+              this_68 = DefaultHeap::AllocClear(0xd8);
+              if (this_68 == (CTurbulenceEffect *)0x0) {
+                    /* WARNING: Subroutine does not return */
+                ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+              }
+              pCVar1 = (CFilterEffect *)CTurbulenceEffect::CTurbulenceEffect(this_68,param_1);
+            }
+            else if (param_3 == 0xb6) {
+              this_67 = DefaultHeap::AllocClear(0x100);
+              if (this_67 == (CViewBox *)0x0) {
+                    /* WARNING: Subroutine does not return */
+                ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+              }
+              pCVar1 = (CFilterEffect *)CViewBox::CViewBox(this_67,param_1);
+            }
+            else {
+              if (param_3 != 0xb7) goto LAB_3;
+              this_66 = DefaultHeap::AllocClear(0xca0);
+              if (this_66 == (CVirtualMonitorCaptureRenderTarget *)0x0) {
+                    /* WARNING: Subroutine does not return */
+                ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+              }
+              pCVar1 = (CFilterEffect *)
+                       CVirtualMonitorCaptureRenderTarget::CVirtualMonitorCaptureRenderTarget
+                                 (this_66,param_1);
+            }
+            goto LAB_10;
+          }
+          this = DefaultHeap::AllocClear(0xb0);
+          if (this == (CFilterEffect *)0x0) {
+                    /* WARNING: Subroutine does not return */
+            ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+          }
+          CTransform3D::CTransform3D((CTransform3D *)this,param_1,false);
+          ppuVar2 = &CTranslateTransform3D::_vftable_;
+        }
+LAB_12:
+        *(undefined ***)this = ppuVar2;
+        goto LAB_2;
+      }
+      this_69 = DefaultHeap::AllocClear(0xd8);
+      if (this_69 == (CTransformGroup *)0x0) {
+                    /* WARNING: Subroutine does not return */
+        ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+      }
+      pCVar1 = (CFilterEffect *)CTransformGroup::CTransformGroup(this_69,param_1,param_2);
     }
   }
   else {
-    if (param_3 < 0x91) {
-      if (param_3 == 0x90) {
-        this_68 = CBlendEffect::operator_new((__uint64)param_1);
-        if (this_68 != (CSceneMesh *)0x0) {
-          this_06 = (CVisual *)CSceneMesh::CSceneMesh(this_68,param_1);
-        }
-      }
-      else if (param_3 < 0x78) {
-        if (param_3 == 0x77) {
-          this_63 = CProjectedShadowCaster::operator_new((__uint64)param_1);
-          if (this_63 != (CProjectedShadowCaster *)0x0) {
-            this_06 = (CVisual *)CProjectedShadowCaster::CProjectedShadowCaster(this_63,param_1);
-          }
-        }
-        else if (param_3 < 0x6d) {
-          if (param_3 == 0x6c) {
-            pCVar2 = CBlendEffect::operator_new((__uint64)param_1);
-            if (pCVar2 != (CVisual *)0x0) {
-              *(undefined4 *)(pCVar2 + 8) = 0;
-              *(undefined8 *)(pCVar2 + 0x10) = 0;
-              *(CComposition **)(pCVar2 + 0x18) = param_1;
-              *(undefined8 *)(pCVar2 + 0x20) = 0;
-              *(undefined8 *)(pCVar2 + 0x30) = 0;
-              *(undefined4 *)(pCVar2 + 0x28) = 0;
-              *(undefined4 *)(pCVar2 + 0x90) = 0;
-              *(uint *)(pCVar2 + 0x28) = *(uint *)(pCVar2 + 0x28) | 1;
-              *(undefined ***)pCVar2 = &CMatrixTransform::_vftable_;
-              *(undefined4 *)(pCVar2 + 0xa0) = 0x3f800000;
-              *(undefined4 *)(pCVar2 + 0xac) = 0x3f800000;
-              pCVar2[0x9c] = (CVisual)0x0;
-              this_06 = pCVar2;
-            }
-          }
-          else if (param_3 == 0x62) {
-            this_22 = CLinearGradientBrush::operator_new((__uint64)param_1);
-            if (this_22 != (CLinearGradientBrush *)0x0) {
-              this_06 = (CVisual *)CLinearGradientBrush::CLinearGradientBrush(this_22,param_1);
-            }
-          }
-          else if (param_3 == 99) {
-            pCVar2 = CTransformGroup::operator_new((__uint64)param_1);
-            if (pCVar2 != (CVisual *)0x0) {
-              *(undefined4 *)(pCVar2 + 8) = 0;
-              *(undefined8 *)(pCVar2 + 0x10) = 0;
-              *(CComposition **)(pCVar2 + 0x18) = param_1;
-              *(undefined8 *)(pCVar2 + 0x20) = 0;
-              *(undefined8 *)(pCVar2 + 0x30) = 0;
-              *(undefined4 *)(pCVar2 + 0x28) = 0;
-              *(uint *)(pCVar2 + 0x28) = *(uint *)(pCVar2 + 0x28) | 1;
-              *(undefined8 *)(pCVar2 + 0x78) = 0;
-              *(undefined8 *)(pCVar2 + 0x80) = 0;
-              *(undefined8 *)(pCVar2 + 0x88) = 0;
-              *(undefined ***)pCVar2 = &CLinearGradientLegacyMilBrush::_vftable_;
-              *(undefined8 *)(pCVar2 + 0xb8) = 0;
-              *(undefined8 *)(pCVar2 + 0xc0) = 0;
-              *(undefined8 *)(pCVar2 + 200) = 0;
-              *(undefined8 *)(pCVar2 + 0xa0) = 0;
-              *(undefined8 *)(pCVar2 + 0xa8) = 0;
-              this_06 = pCVar2;
-            }
-          }
-          else if (param_3 == 100) {
-            this_60 = CMatrixTransform3D::operator_new((__uint64)param_1);
-            if (this_60 != (CLinearTransferEffect *)0x0) {
-              this_06 = (CVisual *)CLinearTransferEffect::CLinearTransferEffect(this_60,param_1);
-            }
-          }
-          else if (param_3 == 0x65) {
-            pCVar2 = CCompositionDynamicTexture::operator_new((__uint64)param_1);
-            if (pCVar2 != (CVisual *)0x0) {
-              *(undefined4 *)(pCVar2 + 8) = 0;
-              *(undefined8 *)(pCVar2 + 0x10) = 0;
-              *(CComposition **)(pCVar2 + 0x18) = param_1;
-              *(undefined8 *)(pCVar2 + 0x20) = 0;
-              *(undefined8 *)(pCVar2 + 0x30) = 0;
-              *(undefined4 *)(pCVar2 + 0x28) = 0;
-              ppuVar3 = &CLineGeometry::_vftable_;
-              *(undefined8 *)(pCVar2 + 0x58) = 0;
-              pCVar2[0x60] = (CVisual)0x0;
-              *(undefined8 *)(pCVar2 + 0x68) = 0;
-              pCVar2[0x70] = (CVisual)0x0;
-              *(uint *)(pCVar2 + 0x28) = *(uint *)(pCVar2 + 0x28) | 1;
-              *(undefined4 *)(pCVar2 + 0x7c) = 0x3f800000;
-              goto LAB_0;
-            }
-          }
-          else if (param_3 == 0x67) {
-            this_59 = CMagnifierRenderTarget::operator_new((__uint64)param_1);
-            if (this_59 != (CMagnifierRenderTarget *)0x0) {
-              this_06 = (CVisual *)CMagnifierRenderTarget::CMagnifierRenderTarget(this_59,param_1);
-            }
-          }
-          else if (param_3 == 0x68) {
-            this_27 = CManipulation::operator_new((__uint64)param_1);
-            if (this_27 != (CManipulation *)0x0) {
-              this_06 = (CVisual *)CManipulation::CManipulation(this_27,param_1);
-            }
-          }
-          else if (param_3 == 0x69) {
-            this_19 = CManipulationTransform::operator_new((__uint64)param_1);
-            if (this_19 != (CManipulationTransform *)0x0) {
-              this_06 = (CVisual *)CManipulationTransform::CManipulationTransform(this_19,param_1);
-            }
-          }
-          else if (param_3 == 0x6a) {
-            pCVar2 = CAtlasedRectsGroup::operator_new((__uint64)param_1);
-            if (pCVar2 != (CVisual *)0x0) {
-              *(undefined4 *)(pCVar2 + 8) = 0;
-              *(undefined8 *)(pCVar2 + 0x10) = 0;
-              *(CComposition **)(pCVar2 + 0x18) = param_1;
-              *(undefined8 *)(pCVar2 + 0x20) = 0;
-              *(undefined8 *)(pCVar2 + 0x30) = 0;
-              *(undefined4 *)(pCVar2 + 0x28) = 0;
-              *(undefined8 *)(pCVar2 + 0x50) = 0;
-              *(undefined ***)pCVar2 = &CMaskBrush::_vftable__for__CContent__;
-              *(undefined ***)(pCVar2 + 0x48) =
-                   &CMaskBrush::_vftable__for__IBrushChangeNotification__;
-              *(undefined ***)(pCVar2 + 0x68) = &CMaskBrush::_vftable_;
-              *(undefined8 *)(pCVar2 + 0x58) = 0;
-              pCVar2[0x60] = (CVisual)0x0;
-              this_06 = pCVar2;
-            }
-          }
-          else {
-            if (param_3 != 0x6b) goto LAB_2;
-            pCVar2 = CResource::operator_new(0x60);
-            if (pCVar2 != (CVisual *)0x0) {
-              *(undefined4 *)(pCVar2 + 8) = 0;
-              *(undefined8 *)(pCVar2 + 0x10) = 0;
-              *(CComposition **)(pCVar2 + 0x18) = param_1;
-              *(undefined8 *)(pCVar2 + 0x20) = 0;
-              *(undefined8 *)(pCVar2 + 0x30) = 0;
-              *(undefined4 *)(pCVar2 + 0x28) = 0;
-              *(undefined8 *)(pCVar2 + 0x48) = 0;
-              *(undefined8 *)(pCVar2 + 0x50) = 0;
-              *(undefined8 *)(pCVar2 + 0x58) = 0;
-              ppuVar3 = &CMatrixResource::_vftable_;
-              goto LAB_0;
-            }
-          }
-        }
-        else if (param_3 == 0x6d) {
-          this_29 = CMatrixTransform3D::operator_new((__uint64)param_1);
-          if (this_29 != (CMatrixTransform3D *)0x0) {
-            this_06 = (CVisual *)CMatrixTransform3D::CMatrixTransform3D(this_29,param_1);
-          }
-        }
-        else if (param_3 == 0x6e) {
-          this_28 = CGaussianBlurEffect::operator_new((__uint64)param_1);
-          if (this_28 != (CMeshGeometry2D *)0x0) {
-            this_06 = (CVisual *)CMeshGeometry2D::CMeshGeometry2D(this_28,param_1);
-          }
-        }
-        else if (param_3 == 0x6f) {
-          this_62 = CNaturalAnimation::operator_new((__uint64)param_1);
-          if (this_62 != (CNaturalAnimation *)0x0) {
-            this_06 = (CVisual *)CNaturalAnimation::CNaturalAnimation(this_62,param_1);
-          }
-        }
-        else if (param_3 == 0x70) {
-          this_03 = CCompositionMipmapSurface::operator_new((__uint64)param_1);
-          if (this_03 != (CNineGridBrush *)0x0) {
-            this_06 = (CVisual *)CNineGridBrush::CNineGridBrush(this_03,param_1,false);
-          }
-        }
-        else if (param_3 == 0x72) {
-          this_09 = CProjectedShadowCaster::operator_new((__uint64)param_1);
-          if (this_09 != (CPathGeometry *)0x0) {
-            this_06 = (CVisual *)CPathGeometry::CPathGeometry(this_09,param_1);
-          }
-        }
-        else if (param_3 == 0x73) {
-          pCVar2 = CResource::operator_new(0x50);
-          if (pCVar2 != (CVisual *)0x0) {
-            *(undefined4 *)(pCVar2 + 8) = 0;
-            *(undefined8 *)(pCVar2 + 0x10) = 0;
-            *(CComposition **)(pCVar2 + 0x18) = param_1;
-            *(undefined8 *)(pCVar2 + 0x20) = 0;
-            *(undefined8 *)(pCVar2 + 0x30) = 0;
-            *(undefined4 *)(pCVar2 + 0x28) = 0;
-            *(undefined8 *)(pCVar2 + 0x48) = 0;
-            ppuVar3 = &CPointResource::_vftable_;
-            goto LAB_0;
-          }
-        }
-        else if (param_3 == 0x74) {
-          pCVar2 = CAnimationGlobalConfiguration::operator_new((__uint64)param_1);
-          if (pCVar2 != (CVisual *)0x0) {
-            *(undefined4 *)(pCVar2 + 8) = 0;
-            *(undefined8 *)(pCVar2 + 0x10) = 0;
-            *(CComposition **)(pCVar2 + 0x18) = param_1;
-            *(undefined8 *)(pCVar2 + 0x20) = 0;
-            *(undefined8 *)(pCVar2 + 0x30) = 0;
-            *(undefined4 *)(pCVar2 + 0x28) = 0;
-            ppuVar3 = &CPrimitiveColor::_vftable_;
-            goto LAB_0;
-          }
-        }
-        else if (param_3 == 0x75) {
-          this_10 = CPrimitiveGroup::operator_new((__uint64)param_1);
-          if (this_10 != (CPrimitiveGroup *)0x0) {
-            this_06 = (CVisual *)CPrimitiveGroup::CPrimitiveGroup(this_10,param_1);
-          }
-        }
-        else {
-          if (param_3 != 0x76) goto LAB_2;
-          this_61 = CProjectedShadow::operator_new((__uint64)param_1);
-          if (this_61 != (CProjectedShadow *)0x0) {
-            this_06 = (CVisual *)CProjectedShadow::CProjectedShadow(this_61,param_1);
-          }
-        }
-      }
-      else if (param_3 < 0x83) {
-        if (param_3 == 0x82) {
-          this_66 = CRemoteAppRenderTarget::operator_new((__uint64)param_1);
-          if (this_66 != (CRemoteAppRenderTarget *)0x0) {
-            this_06 = (CVisual *)CRemoteAppRenderTarget::CRemoteAppRenderTarget(this_66,param_1);
-          }
-        }
-        else if (param_3 == 0x78) {
-          pCVar2 = CAtlasedRectsGroup::operator_new((__uint64)param_1);
-          if (pCVar2 != (CVisual *)0x0) {
-            *(undefined4 *)(pCVar2 + 8) = 0;
-            *(undefined8 *)(pCVar2 + 0x10) = 0;
-            *(CComposition **)(pCVar2 + 0x18) = param_1;
-            *(undefined8 *)(pCVar2 + 0x20) = 0;
-            *(undefined8 *)(pCVar2 + 0x30) = 0;
-            *(undefined4 *)(pCVar2 + 0x28) = 0;
-            *(undefined ***)pCVar2 = &CProjectedShadowReceiver::_vftable_;
-            *(undefined8 *)(pCVar2 + 0x50) = 0;
-            *(undefined8 *)(pCVar2 + 0x58) = 0;
-            *(undefined8 *)(pCVar2 + 0x60) = 0;
+    if (param_3 == 0xb9) {
+      this = DefaultHeap::AllocClear(0x68);
+      if (this == (CFilterEffect *)0x0) {
+                    /* WARNING: Subroutine does not return */
+        ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+      }
+      *(undefined4 *)(this + 8) = 0;
+      *(longlong *)(this + 0x20) = 0;
+      *(longlong *)(this + 0x10) = 0;
+      *(CComposition **)(this + 0x18) = param_1;
+      *(longlong *)(this + 0x30) = 0;
+      *(undefined4 *)(this + 0x28) = 0;
+      *(undefined ***)this =
+           &CVisualBitmap::_vftable__for__CVisualBitmapGeneratedT<CVisualBitmap,CContent>__;
+      *(undefined ***)(this + 0x50) = &CVisualBitmap::_vftable__for__IBitmapResource__;
+      goto LAB_2;
+    }
+    if (param_3 == 0xba) {
+      this_76 = DefaultHeap::AllocClear(0xae8);
+      if (this_76 == (CVisualCapture *)0x0) {
+                    /* WARNING: Subroutine does not return */
+        ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+      }
+      pCVar1 = (CFilterEffect *)CVisualCapture::CVisualCapture(this_76,param_1);
+    }
+    else if (param_3 == 0xbb) {
+      this = CResource::operator_new(0x60);
+      if (this != (CFilterEffect *)0x0) {
+        *(undefined4 *)(this + 8) = 0;
+        *(longlong *)(this + 0x20) = 0;
+        *(longlong *)(this + 0x10) = 0;
+        *(CComposition **)(this + 0x18) = param_1;
+        *(longlong *)(this + 0x30) = 0;
+        *(undefined4 *)(this + 0x28) = 0;
+        *(undefined ***)this = &CVisualGroup::_vftable_;
+        *(longlong *)(this + 0x48) = 0;
+        *(longlong *)(this + 0x50) = 0;
+        *(longlong *)(this + 0x58) = 0;
+        goto LAB_2;
+      }
+    }
+    else {
+      if (param_3 == 0xbd) {
+        this = DefaultHeap::AllocClear(0x58);
+        if (this == (CFilterEffect *)0x0) {
+                    /* WARNING: Subroutine does not return */
+          ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+        }
+        *(undefined4 *)(this + 8) = 0;
+        *(longlong *)(this + 0x10) = 0;
+        *(CComposition **)(this + 0x18) = param_1;
+        *(longlong *)(this + 0x20) = 0;
+        *(longlong *)(this + 0x30) = 0;
+        *(undefined4 *)(this + 0x28) = 0;
+        ppuVar2 = &CVisualReferenceController::_vftable_;
 LAB_8:
-            *(undefined8 *)(pCVar2 + 0x78) = 0;
-            this_06 = pCVar2;
-          }
-        }
-        else if (param_3 == 0x79) {
-          this_65 = CHolographicDisplay::operator_new((__uint64)param_1);
-          if (this_65 != (CProjectedShadowScene *)0x0) {
-            this_06 = (CVisual *)CProjectedShadowScene::CProjectedShadowScene(this_65,param_1);
-          }
-        }
-        else if (param_3 == 0x7b) {
-          this_04 = CPropertySet::operator_new((__uint64)param_1);
-          if (this_04 != (CPropertySet *)0x0) {
-            this_06 = (CVisual *)CPropertySet::CPropertySet(this_04,param_1);
-          }
-        }
-        else if (param_3 == 0x7c) {
-          pCVar6 = CCompositionDynamicTexture::operator_new((__uint64)param_1);
-          if (pCVar6 != (CTransform3D *)0x0) {
-            CGeometry::CGeometry((CGeometry *)pCVar6,param_1);
-            ppuVar3 = &CProxyGeometry::_vftable_;
-            goto LAB_10;
-          }
-        }
-        else if (param_3 == 0x7d) {
-          this_64 = CBrush::operator_new((__uint64)param_1);
-          if (this_64 != (CRadialGradientBrush *)0x0) {
-            this_06 = (CVisual *)CRadialGradientBrush::CRadialGradientBrush(this_64,param_1);
-          }
-        }
-        else if (param_3 == 0x7e) {
-          this_00 = CRectangleGeometry::operator_new((__uint64)param_1);
-          if (this_00 != (CRectangleGeometry *)0x0) {
-            this_06 = (CVisual *)CRectangleGeometry::CRectangleGeometry(this_00,param_1);
-          }
-        }
-        else if (param_3 == 0x7f) {
-          pCVar2 = CResource::operator_new(0x58);
-          if (pCVar2 != (CVisual *)0x0) {
-            *(undefined4 *)(pCVar2 + 8) = 0;
-            *(undefined8 *)(pCVar2 + 0x10) = 0;
-            *(CComposition **)(pCVar2 + 0x18) = param_1;
-            *(undefined8 *)(pCVar2 + 0x20) = 0;
-            *(undefined8 *)(pCVar2 + 0x30) = 0;
-            *(undefined4 *)(pCVar2 + 0x28) = 0;
-            ppuVar3 = &CRectResource::_vftable_;
-            *(undefined8 *)(pCVar2 + 0x48) = 0;
-            *(undefined8 *)(pCVar2 + 0x50) = 0;
-            goto LAB_0;
-          }
-        }
-        else if (param_3 == 0x80) {
-          pCVar2 = CRedirectVisual::operator_new((__uint64)param_1);
-          if (pCVar2 != (CVisual *)0x0) {
-            CVisual::CVisual(pCVar2,param_1);
-            ppuVar3 = &CRedirectVisual::_vftable_;
-            goto LAB_0;
-          }
-        }
-        else {
-          if (param_3 != 0x81) goto LAB_2;
-          this_07 = CRegionGeometry::operator_new((__uint64)param_1);
-          if (this_07 != (CGeometry *)0x0) {
-            pCVar7 = this_07;
-            CGeometry::CGeometry(this_07,param_1);
-            *(undefined8 *)(pCVar7 + 0x88) = 0;
-            *(undefined8 *)(pCVar7 + 0x90) = 0;
-            *(undefined8 *)(pCVar7 + 0x98) = 0;
-            *(undefined ***)pCVar7 = &CRegionGeometry::_vftable_;
-            pCVar7[0xa0] = (CGeometry)0x1;
-            this_06 = (CVisual *)this_07;
-          }
-        }
-      }
-      else if (param_3 == 0x83) {
-        this_67 = CNotificationResource::operator_new((__uint64)param_1);
-        if (this_67 != (CRemoteRenderTarget *)0x0) {
-          this_06 = (CVisual *)CRemoteRenderTarget::CRemoteRenderTarget(this_67,param_1);
-        }
-      }
-      else if (param_3 == 0x84) {
-        this_12 = CContent::operator_new(0x130);
-        if (this_12 != (CRenderData *)0x0) {
-          this_06 = (CVisual *)CRenderData::CRenderData(this_12,param_1);
-        }
-      }
-      else if (param_3 == 0x87) {
-        pCVar6 = CCompositionMipmapSurface::operator_new((__uint64)param_1);
-        if (pCVar6 != (CTransform3D *)0x0) {
-          CTransform3D::CTransform3D(pCVar6,param_1,false);
-          ppuVar3 = &CRotateTransform::_vftable_;
-          goto LAB_10;
-        }
-      }
-      else if (param_3 == 0x88) {
-        pCVar2 = CGaussianBlurEffect::operator_new((__uint64)param_1);
-        if (pCVar2 != (CVisual *)0x0) {
-          pCVar6 = (CTransform3D *)pCVar2;
-          CTransform3D::CTransform3D((CTransform3D *)pCVar2,param_1,false);
-          ppuVar3 = &CRotateTransform3D::_vftable_;
-          *(undefined4 *)(pCVar6 + 0xac) = 0x3f800000;
+        *(undefined ***)this = ppuVar2;
+        *(longlong *)(this + 0x50) = 0;
+        goto LAB_2;
+      }
+      if (param_3 == 0xbe) {
+        this_75 = CResource::operator_new(0xd0);
+        if (this_75 != (CVisualSurface *)0x0) {
+          pCVar1 = (CFilterEffect *)CVisualSurface::CVisualSurface(this_75,param_1);
+        }
+      }
+      else {
+        if (param_3 == 0xbf) {
+          this = DefaultHeap::AllocClear(0x68);
+          if (this == (CFilterEffect *)0x0) {
+                    /* WARNING: Subroutine does not return */
+            ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+          }
+          CBrush::CBrush((CBrush *)this,param_1);
+          *(undefined ***)this = &CWindowBackdropBrush::_vftable__for__CContent__;
+          ppuVar2 = &CMaskBrush::_vftable__for__IBrushChangeNotification__;
+          goto LAB_6;
+        }
+        if (param_3 != 0xc0) {
+          if (param_3 != 0xc1) {
+LAB_3:
+            lVar6 = -0x7767fbfd;
+            uVar7 = 0x294;
+            goto LAB_13;
+          }
+          this = DefaultHeap::AllocClear(0x68);
+          if (this == (CFilterEffect *)0x0) {
+                    /* WARNING: Subroutine does not return */
+            ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+          }
+          *(undefined4 *)(this + 8) = 0;
+          *(longlong *)(this + 0x10) = 0;
+          *(CComposition **)(this + 0x18) = param_1;
+          *(longlong *)(this + 0x20) = 0;
+          *(longlong *)(this + 0x30) = 0;
+          *(undefined4 *)(this + 0x28) = 0;
+          ppuVar2 = &CYCbCrSurface::_vftable_;
           goto LAB_0;
         }
-      }
-      else if (param_3 == 0x89) {
-        pCVar5 = CBlendEffect::operator_new((__uint64)param_1);
-        if (pCVar5 != (CFilterEffect *)0x0) {
-          CFilterEffect::CFilterEffect(pCVar5,param_1);
-          *(undefined4 *)(pCVar5 + 0xb0) = 0x3f000000;
-          *(undefined ***)pCVar5 = &CSaturationEffect::_vftable_;
-          this_06 = (CVisual *)pCVar5;
-        }
-      }
-      else if (param_3 == 0x8a) {
-        this_73 = CAtlasedRectsGroup::operator_new((__uint64)param_1);
-        if (this_73 !=
-            (CSceneMetallicRoughnessMaterialGeneratedT<CSceneMetallicRoughnessMaterial,CScenePbrMaterial>
-             *)0x0) {
-          CBaseAnimation::CBaseAnimation((CBaseAnimation *)this_73,param_1);
-          *(undefined ***)this_73 = &CScalar::_vftable__for__CResource__;
-          ppuVar3 = &CScalar::_vftable__for__IAnimationResource__;
-          goto LAB_5;
-        }
-      }
-      else if (param_3 == 0x8b) {
-        pCVar2 = CCompositionMipmapSurface::operator_new((__uint64)param_1);
-        if (pCVar2 != (CVisual *)0x0) {
-          pCVar6 = (CTransform3D *)pCVar2;
-          CTransform3D::CTransform3D((CTransform3D *)pCVar2,param_1,false);
-          *(undefined4 *)(pCVar6 + 0xa0) = 0x3f800000;
-          *(undefined4 *)(pCVar6 + 0xa4) = 0x3f800000;
-          ppuVar3 = &CScaleTransform::_vftable_;
-          goto LAB_0;
-        }
-      }
-      else {
-        if (param_3 != 0x8c) goto LAB_2;
-        pCVar2 = CBlendEffect::operator_new((__uint64)param_1);
-        if (pCVar2 != (CVisual *)0x0) {
-          pCVar6 = (CTransform3D *)pCVar2;
-          CTransform3D::CTransform3D((CTransform3D *)pCVar2,param_1,false);
-          *(undefined4 *)(pCVar6 + 0xa0) = 0x3f800000;
-          *(undefined4 *)(pCVar6 + 0xa4) = 0x3f800000;
-          *(undefined4 *)(pCVar6 + 0xa8) = 0x3f800000;
-          ppuVar3 = &CScaleTransform3D::_vftable_;
-          goto LAB_0;
-        }
-      }
-      goto LAB_9;
-    }
-    if (param_3 < 0xa9) {
-      if (param_3 == 0xa8) {
-        this_75 = CContent::operator_new(0x120);
-        if (this_75 != (CSynchronousSuperWetInk *)0x0) {
-          this_06 = (CVisual *)CSynchronousSuperWetInk::CSynchronousSuperWetInk(this_75,param_1);
-        }
-      }
-      else if (param_3 < 0x9e) {
-        if (param_3 == 0x9d) {
-          pCVar2 = CVisualBitmap::operator_new((__uint64)param_1);
-          if (pCVar2 != (CVisual *)0x0) {
-            *(undefined4 *)(pCVar2 + 8) = 0;
-            *(undefined8 *)(pCVar2 + 0x10) = 0;
-            *(CComposition **)(pCVar2 + 0x18) = param_1;
-            *(undefined8 *)(pCVar2 + 0x20) = 0;
-            *(undefined8 *)(pCVar2 + 0x30) = 0;
-            *(undefined4 *)(pCVar2 + 0x28) = 0;
-            *(undefined ***)pCVar2 = &CSharedSectionBase::_vftable_;
-            *(undefined8 *)(pCVar2 + 0x58) = 0;
-LAB_7:
-            *(undefined8 *)(pCVar2 + 0x60) = 0;
-            this_06 = pCVar2;
-          }
-        }
-        else if (param_3 == 0x91) {
-          this_74 = CAtlasedRectsGroup::operator_new((__uint64)param_1);
-          if (this_74 != (CSceneMeshRendererComponent *)0x0) {
-            this_06 = (CVisual *)
-                      CSceneMeshRendererComponent::CSceneMeshRendererComponent(this_74,param_1);
-          }
-        }
-        else if (param_3 == 0x92) {
-          this_73 = CGaussianBlurEffect::operator_new((__uint64)param_1);
-          if (this_73 !=
-              (CSceneMetallicRoughnessMaterialGeneratedT<CSceneMetallicRoughnessMaterial,CScenePbrMaterial>
-               *)0x0) {
-            CSceneMetallicRoughnessMaterialGeneratedT<CSceneMetallicRoughnessMaterial,CScenePbrMaterial>
-            ::
-            CSceneMetallicRoughnessMaterialGeneratedT<CSceneMetallicRoughnessMaterial,CScenePbrMaterial>
-                      (this_73,param_1);
-            *(undefined ***)this_73 =
-                 &CSceneMetallicRoughnessMaterial::
-                  _vftable__for__CSceneMaterialGeneratedT<CSceneMaterial,CSceneObject>__;
-            ppuVar3 = &CScenePbrMaterial::_vftable__for__ISceneNotificationListener__;
-LAB_5:
-            *(undefined ***)(this_73 + 0x48) = ppuVar3;
-            this_06 = (CVisual *)this_73;
-          }
-        }
-        else if (param_3 == 0x93) {
-          pCVar2 = CSceneModelTransform::operator_new((__uint64)param_1);
-          if (pCVar2 != (CVisual *)0x0) {
-            *(undefined4 *)(pCVar2 + 8) = 0;
-            *(undefined8 *)(pCVar2 + 0x10) = 0;
-            *(CComposition **)(pCVar2 + 0x18) = param_1;
-            *(undefined8 *)(pCVar2 + 0x20) = 0;
-            *(undefined8 *)(pCVar2 + 0x30) = 0;
-            *(undefined4 *)(pCVar2 + 0x28) = 0;
-            ppuVar3 = &CSceneModelTransform::_vftable_;
-            goto LAB_0;
-          }
-        }
-        else if (param_3 == 0x94) {
-          this_72 = CCompositionDynamicTexture::operator_new((__uint64)param_1);
-          if (this_72 != (CSceneNode *)0x0) {
-            this_06 = (CVisual *)CSceneNode::CSceneNode(this_72,param_1);
-          }
-        }
-        else if (param_3 == 0x98) {
-          this_71 = CAtlasedRectsGroup::operator_new((__uint64)param_1);
-          if (this_71 != (CSceneSurfaceMaterialInput *)0x0) {
-            this_06 = (CVisual *)
-                      CSceneSurfaceMaterialInput::CSceneSurfaceMaterialInput(this_71,param_1);
-          }
-        }
-        else if (param_3 == 0x99) {
-          this_70 = CSceneVisual::operator_new((__uint64)param_1);
-          if (this_70 != (CSceneVisual *)0x0) {
-            this_06 = (CVisual *)CSceneVisual::CSceneVisual(this_70,param_1);
-          }
-        }
-        else if (param_3 == 0x9a) {
-          this_69 = CArithmeticCompositeEffect::operator_new((__uint64)param_1);
-          if (this_69 != (CShadowEffect *)0x0) {
-            this_06 = (CVisual *)CShadowEffect::CShadowEffect(this_69,param_1);
-          }
-        }
-        else if (param_3 == 0x9b) {
-          pCVar2 = CShapeVisual::operator_new((__uint64)param_1);
-          if (pCVar2 != (CVisual *)0x0) {
-            CVisual::CVisual(pCVar2,param_1);
-            ppuVar3 = &CShapeVisual::_vftable_;
-            goto LAB_0;
-          }
-        }
-        else {
-          if (param_3 != 0x9c) goto LAB_2;
-          pCVar2 = CVisualBitmap::operator_new((__uint64)param_1);
-          if (pCVar2 != (CVisual *)0x0) {
-            *(undefined4 *)(pCVar2 + 8) = 0;
-            *(undefined8 *)(pCVar2 + 0x10) = 0;
-            *(CComposition **)(pCVar2 + 0x18) = param_1;
-            *(undefined8 *)(pCVar2 + 0x20) = 0;
-            *(undefined8 *)(pCVar2 + 0x30) = 0;
-            *(undefined4 *)(pCVar2 + 0x28) = 0;
-            ppuVar3 = &CSharedSection::_vftable_;
-            *(undefined8 *)(pCVar2 + 0x58) = 0;
-            *(undefined8 *)(pCVar2 + 0x60) = 0;
-            goto LAB_0;
-          }
-        }
-      }
-      else if (param_3 == 0x9e) {
-        pCVar2 = CAnimationGlobalConfiguration::operator_new((__uint64)param_1);
-        if (pCVar2 != (CVisual *)0x0) {
-          *(undefined4 *)(pCVar2 + 8) = 0;
-          *(undefined8 *)(pCVar2 + 0x10) = 0;
-          *(CComposition **)(pCVar2 + 0x18) = param_1;
-          *(undefined8 *)(pCVar2 + 0x20) = 0;
-          *(undefined8 *)(pCVar2 + 0x30) = 0;
-          *(undefined4 *)(pCVar2 + 0x28) = 0;
-          *(undefined ***)pCVar2 = &CSharedSectionWrapper::_vftable_;
-          *(undefined8 *)(pCVar2 + 0x48) = 0;
-          this_06 = pCVar2;
-        }
-      }
-      else if (param_3 == 0x9f) {
-        pCVar2 = CResource::operator_new(0x50);
-        if (pCVar2 != (CVisual *)0x0) {
-          *(undefined4 *)(pCVar2 + 8) = 0;
-          *(undefined8 *)(pCVar2 + 0x10) = 0;
-          *(CComposition **)(pCVar2 + 0x18) = param_1;
-          *(undefined8 *)(pCVar2 + 0x20) = 0;
-          *(undefined8 *)(pCVar2 + 0x30) = 0;
-          *(undefined4 *)(pCVar2 + 0x28) = 0;
-          *(undefined8 *)(pCVar2 + 0x48) = 0;
-          ppuVar3 = &CSizeResource::_vftable_;
-          goto LAB_0;
-        }
-      }
-      else if (param_3 == 0xa0) {
-        pCVar6 = CCompositionMipmapSurface::operator_new((__uint64)param_1);
-        if (pCVar6 != (CTransform3D *)0x0) {
-          CTransform3D::CTransform3D(pCVar6,param_1,false);
-          ppuVar3 = &CSkewTransform::_vftable_;
-          goto LAB_10;
-        }
-      }
-      else if (param_3 == 0xa1) {
-        pCVar2 = CContent::operator_new(0x60);
-        if (pCVar2 != (CVisual *)0x0) {
-          *(undefined4 *)(pCVar2 + 8) = 0;
-          *(undefined8 *)(pCVar2 + 0x10) = 0;
-          *(CComposition **)(pCVar2 + 0x18) = param_1;
-          *(undefined8 *)(pCVar2 + 0x20) = 0;
-          *(undefined8 *)(pCVar2 + 0x30) = 0;
-          *(undefined4 *)(pCVar2 + 0x28) = 0;
-          *(undefined ***)pCVar2 = &CSnapshot::_vftable_;
-          *(undefined8 *)(pCVar2 + 0x48) = 0;
-          *(undefined8 *)(pCVar2 + 0x50) = 0;
-          *(undefined2 *)(pCVar2 + 0x58) = 0;
-          this_06 = pCVar2;
-        }
-      }
-      else if (param_3 == 0xa2) {
-        pCVar2 = CCrossContainerGuestReadWriteSharedSection::operator_new((__uint64)param_1);
-        if (pCVar2 != (CVisual *)0x0) {
-          *(undefined4 *)(pCVar2 + 8) = 0;
-          *(undefined8 *)(pCVar2 + 0x10) = 0;
-          *(CComposition **)(pCVar2 + 0x18) = param_1;
-          *(undefined8 *)(pCVar2 + 0x20) = 0;
-          *(undefined8 *)(pCVar2 + 0x30) = 0;
-          *(undefined4 *)(pCVar2 + 0x28) = 0;
-          ppuVar3 = &CSolidColorLegacyMilBrush::_vftable_;
-          *(uint *)(pCVar2 + 0x28) = *(uint *)(pCVar2 + 0x28) | 1;
-          goto LAB_0;
-        }
-      }
-      else if (param_3 == 0xa3) {
-        this_16 = CTransformGroup::operator_new((__uint64)param_1);
-        if (this_16 != (CSpriteVectorShape *)0x0) {
-          this_06 = (CVisual *)CSpriteVectorShape::CSpriteVectorShape(this_16,param_1);
-        }
-      }
-      else if (param_3 == 0xa4) {
-        pCVar2 = CRedirectVisual::operator_new((__uint64)param_1);
-        if (pCVar2 != (CVisual *)0x0) {
-          CVisual::CVisual(pCVar2,param_1);
-          ppuVar3 = &CSpriteVisual::_vftable_;
-          goto LAB_0;
-        }
-      }
-      else if (param_3 == 0xa5) {
-        pCVar2 = CVisual::operator_new(0x2b0);
-        if (pCVar2 != (CVisual *)0x0) {
-          CVisual::CVisual(pCVar2,param_1);
-          ppuVar3 = &CSuperWetInkVisual::_vftable_;
-          goto LAB_0;
-        }
-      }
-      else {
-        if (param_3 != 0xa7) goto LAB_2;
-        this_05 = CSurfaceBrush::operator_new((__uint64)param_1);
-        if (this_05 != (CSurfaceBrush *)0x0) {
-          this_06 = (CVisual *)CSurfaceBrush::CSurfaceBrush(this_05,param_1);
-        }
-      }
-      goto LAB_9;
-    }
-    if (param_3 < 0xb7) {
-      if (param_3 == 0xb6) {
-        pCVar2 = CVisual::operator_new(0x2a8);
-        if (pCVar2 != (CVisual *)0x0) {
-          this_06 = (CVisual *)CVisual::CVisual(pCVar2,param_1);
-        }
-      }
-      else if (param_3 == 0xa9) {
-        this_85 = CInjectionAnimation::operator_new((__uint64)param_1);
-        if (this_85 != (CTableTransferEffect *)0x0) {
-          this_06 = (CVisual *)CTableTransferEffect::CTableTransferEffect(this_85,param_1);
-        }
-      }
-      else if (param_3 == 0xab) {
-        pCVar2 = CVisual::operator_new(0x2f0);
-        if (pCVar2 != (CVisual *)0x0) {
-          CVisual::CVisual(pCVar2,param_1);
-          *(undefined8 *)(pCVar2 + 0x2a8) = 0;
-          ppuVar3 = &CTextVisual::_vftable_;
-          *(undefined8 *)(pCVar2 + 0x2b0) = 0;
-          *(undefined8 *)(pCVar2 + 0x2b8) = 0;
-          *(undefined8 *)(pCVar2 + 0x2c0) = 0;
-          *(undefined8 *)(pCVar2 + 0x2c8) = 0;
-          *(undefined8 *)(pCVar2 + 0x2d0) = 0;
-          *(undefined8 *)(pCVar2 + 0x2d8) = 0;
-          *(undefined8 *)(pCVar2 + 0x2e0) = 0;
-          *(undefined8 *)(pCVar2 + 0x2e8) = 0;
-          goto LAB_0;
-        }
-      }
-      else if (param_3 == 0xae) {
-        this_84 = CTransformGroup::operator_new((__uint64)param_1);
-        if (this_84 != (CTransform3DGroup *)0x0) {
-          this_06 = (CVisual *)CTransform3DGroup::CTransform3DGroup(this_84,param_1,param_2);
-        }
-      }
-      else if (param_3 == 0xaf) {
-        this_83 = CTransformGroup::operator_new((__uint64)param_1);
-        if (this_83 != (CTransformGroup *)0x0) {
-          this_06 = (CVisual *)CTransformGroup::CTransformGroup(this_83,param_1,param_2);
-        }
-      }
-      else if (param_3 == 0xb0) {
-        pCVar6 = CGeometry2DGroup::operator_new((__uint64)param_1);
-        if (pCVar6 != (CTransform3D *)0x0) {
-          CTransform3D::CTransform3D(pCVar6,param_1,false);
-          ppuVar3 = &CTranslateTransform::_vftable_;
+        this_74 = DefaultHeap::AllocClear(0x388);
+        if (this_74 == (CWindowNode *)0x0) {
+                    /* WARNING: Subroutine does not return */
+          ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+        }
+        pCVar1 = (CFilterEffect *)CWindowNode::CWindowNode(this_74,param_1);
+      }
+    }
+  }
 LAB_10:
-          *(undefined ***)pCVar6 = ppuVar3;
-          this_06 = (CVisual *)pCVar6;
-        }
-      }
-      else if (param_3 == 0xb1) {
-        pCVar6 = CTranslateTransform3D::operator_new((__uint64)param_1);
-        if (pCVar6 != (CTransform3D *)0x0) {
-          CTransform3D::CTransform3D(pCVar6,param_1,false);
-          ppuVar3 = &CTranslateTransform3D::_vftable_;
-          goto LAB_10;
-        }
-      }
-      else if (param_3 == 0xb2) {
-        this_82 = CTurbulenceEffect::operator_new((__uint64)param_1);
-        if (this_82 != (CTurbulenceEffect *)0x0) {
-          this_06 = (CVisual *)CTurbulenceEffect::CTurbulenceEffect(this_82,param_1);
-        }
-      }
-      else if (param_3 == 0xb4) {
-        this_81 = CViewBox::operator_new((__uint64)param_1);
-        if (this_81 != (CViewBox *)0x0) {
-          this_06 = (CVisual *)CViewBox::CViewBox(this_81,param_1);
-        }
-      }
-      else {
-        if (param_3 != 0xb5) goto LAB_2;
-        this_80 = CVirtualMonitorCaptureRenderTarget::operator_new((__uint64)param_1);
-        if (this_80 != (CVirtualMonitorCaptureRenderTarget *)0x0) {
-          this_06 = (CVisual *)
-                    CVirtualMonitorCaptureRenderTarget::CVirtualMonitorCaptureRenderTarget
-                              (this_80,param_1);
-        }
-      }
-      goto LAB_9;
-    }
-    if (param_3 != 0xb7) {
-      if (param_3 == 0xb8) {
-        this_76 = CVisualCapture::operator_new((__uint64)param_1);
-        if (this_76 != (CVisualCapture *)0x0) {
-          this_06 = (CVisual *)CVisualCapture::CVisualCapture(this_76,param_1);
-        }
-      }
-      else if (param_3 == 0xb9) {
-        pCVar2 = CResource::operator_new(0x60);
-        if (pCVar2 != (CVisual *)0x0) {
-          *(undefined4 *)(pCVar2 + 8) = 0;
-          *(undefined8 *)(pCVar2 + 0x10) = 0;
-          *(CComposition **)(pCVar2 + 0x18) = param_1;
-          *(undefined8 *)(pCVar2 + 0x20) = 0;
-          *(undefined8 *)(pCVar2 + 0x30) = 0;
-          *(undefined4 *)(pCVar2 + 0x28) = 0;
-          *(undefined ***)pCVar2 = &CVisualGroup::_vftable_;
-          *(undefined8 *)(pCVar2 + 0x48) = 0;
-          *(undefined8 *)(pCVar2 + 0x50) = 0;
-          *(undefined8 *)(pCVar2 + 0x58) = 0;
-          this_06 = pCVar2;
-        }
-      }
-      else if (param_3 == 0xbb) {
-        pCVar2 = CAnimationGlobalConfiguration::operator_new((__uint64)param_1);
-        if (pCVar2 != (CVisual *)0x0) {
-          *(undefined4 *)(pCVar2 + 8) = 0;
-          *(undefined8 *)(pCVar2 + 0x10) = 0;
-          *(CComposition **)(pCVar2 + 0x18) = param_1;
-          *(undefined8 *)(pCVar2 + 0x20) = 0;
-          *(undefined8 *)(pCVar2 + 0x30) = 0;
-          *(undefined4 *)(pCVar2 + 0x28) = 0;
-          ppuVar3 = &CVisualReferenceController::_vftable_;
-LAB_6:
-          *(undefined ***)pCVar2 = ppuVar3;
-          *(undefined8 *)(pCVar2 + 0x50) = 0;
-          this_06 = pCVar2;
-        }
-      }
-      else if (param_3 == 0xbc) {
-        this_20 = CResource::operator_new(0xd0);
-        if (this_20 != (CVisualSurface *)0x0) {
-          this_06 = (CVisual *)CVisualSurface::CVisualSurface(this_20,param_1);
-        }
-      }
-      else if (param_3 == 0xbd) {
-        this_73 = CVisualBitmap::operator_new((__uint64)param_1);
-        if (this_73 !=
-            (CSceneMetallicRoughnessMaterialGeneratedT<CSceneMetallicRoughnessMaterial,CScenePbrMaterial>
-             *)0x0) {
-          *(undefined4 *)(this_73 + 8) = 0;
-          *(undefined8 *)(this_73 + 0x10) = 0;
-          *(CComposition **)(this_73 + 0x18) = param_1;
-          *(undefined8 *)(this_73 + 0x20) = 0;
-          *(undefined8 *)(this_73 + 0x30) = 0;
-          *(undefined4 *)(this_73 + 0x28) = 0;
-          *(undefined8 *)(this_73 + 0x50) = 0;
-          *(undefined ***)this_73 = &CWindowBackdropBrush::_vftable__for__CContent__;
-          goto LAB_3;
-        }
-      }
-      else if (param_3 == 0xbe) {
-        this_13 = CWindowNode::operator_new((__uint64)param_1);
-        if (this_13 != (CWindowNode *)0x0) {
-          this_06 = (CVisual *)CWindowNode::CWindowNode(this_13,param_1);
-        }
-      }
-      else {
-        if (param_3 != 0xbf) {
+  this = pCVar1;
+  if (this == (CFilterEffect *)0x0) {
+    lVar6 = -0x7ff8fff2;
+    uVar7 = 0x297;
+LAB_13:
+    MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar6,uVar7,(void *)0x0);
+    return lVar6;
+  }
 LAB_2:
-          lVar1 = -0x7767fbfd;
-          uVar8 = 0x28c;
-          goto LAB_11;
-        }
-        pCVar2 = CVisualBitmap::operator_new((__uint64)param_1);
-        if (pCVar2 != (CVisual *)0x0) {
-          *(undefined4 *)(pCVar2 + 8) = 0;
-          *(undefined8 *)(pCVar2 + 0x10) = 0;
-          *(CComposition **)(pCVar2 + 0x18) = param_1;
-          *(undefined8 *)(pCVar2 + 0x20) = 0;
-          *(undefined8 *)(pCVar2 + 0x30) = 0;
-          *(undefined4 *)(pCVar2 + 0x28) = 0;
-          ppuVar3 = &CYCbCrSurface::_vftable_;
-          goto LAB_0;
-        }
-      }
-      goto LAB_9;
-    }
-    this_06 = CVisualBitmap::operator_new((__uint64)param_1);
-    if (this_06 != (CVisual *)0x0) {
-      *(undefined4 *)(this_06 + 8) = 0;
-      *(undefined8 *)(this_06 + 0x10) = 0;
-      *(CComposition **)(this_06 + 0x18) = param_1;
-      *(undefined8 *)(this_06 + 0x20) = 0;
-      *(undefined8 *)(this_06 + 0x30) = 0;
-      *(undefined4 *)(this_06 + 0x28) = 0;
-      *(undefined ***)this_06 =
-           &CVisualBitmap::_vftable__for__CVisualBitmapGeneratedT<CVisualBitmap,CContent>__;
-      *(undefined ***)(this_06 + 0x50) = &CVisualBitmap::_vftable__for__IBitmapResource__;
-      goto LAB_1;
-    }
-  }
-  lVar1 = -0x7ff8fff2;
-  uVar8 = 0x28f;
-LAB_11:
-  MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar1,uVar8,(void *)0x0);
-  return lVar1;
+  (**(code **)(*(longlong *)this + 8))(this);
+  *param_4 = (CResource *)this;
+  return 0;
 }
 

```


## CWindowNode::RenderContent

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,refcount,length,address,called|
|ratio|0.2|
|i_ratio|0.11|
|m_ratio|0.77|
|b_ratio|0.33|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|RenderContent|RenderContent|
|fullname|CWindowNode::RenderContent|CWindowNode::RenderContent|
|`refcount`|5|7|
|`length`|1568|968|
|`called`|<details><summary>Expand for full list:<br>CGdiSpriteBitmap::NeedsTiling<br>CGeometry::GetShapeData<br>COcclusionInfo::UpdateZFromValidParent<br>CVisual::RenderContent<br>CWindowNode::DxBltConsumedTelemetry<br>CWindowNode::DxFlipConsumedTelemetry<br>CWindowNode::EnsureEffectiveSpriteClip<br>CWindowNode::GetWindowOcclusionInfo<br>CWindowNode::RenderBlackContent<br>CWindowNode::RenderImage<br>CWindowNode::RenderSpriteBitmap</summary>CWindowOcclusionInfo::GetFlipExSurfaceZ<br>CWindowOcclusionInfo::GetSpriteBitmapZ<br>MilInstrumentationCheckHR_MaybeFailFast<br>_guard_dispatch_icall$thunk$10345483385596137414<br>wil::details::FeatureImpl<__WilFeatureTraits_Feature_WindowNodeRender>::__private_IsEnabled<br>wil::details::in1diag3::Return_Hr</details>|<details><summary>Expand for full list:<br>CDrawingContext::FillShapeWithSolidColor<br>CGeometry::GetShapeData<br>COcclusionInfo::UpdateZFromValidParent<br>CRectanglesShape::SetSingleRect<br>CRectanglesShape::~CRectanglesShape<br>CTreeData::GetOcclusionInfo<br>CVisual::FindTreeData<br>CVisual::RenderContent<br>CWindowNode::DxFlipConsumedTelemetry<br>CWindowNode::GetSpriteClipShape<br>CWindowNode::RenderImage</summary>CWindowNode::RenderSpriteBitmap<br>MilInstrumentationCheckHR_MaybeFailFast<br>__security_check_cookie<br>_guard_dispatch_icall$thunk$10345483385596137414<br>wil::details::in1diag3::Return_Hr</details>|
|calling|CDrawingContext::PreSubgraph|CDrawingContext::PreSubgraph|
|paramcount|3|3|
|`address`|18023a190|180237af0|
|sig|long __thiscall RenderContent(CWindowNode * this, CDrawingContext * param_1, bool * param_2)|long __thiscall RenderContent(CWindowNode * this, CDrawingContext * param_1, bool * param_2)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### CWindowNode::RenderContent Called Diff


```diff
--- CWindowNode::RenderContent called
+++ CWindowNode::RenderContent called
@@ -1 +1 @@
-CGdiSpriteBitmap::NeedsTiling
+CDrawingContext::FillShapeWithSolidColor
@@ -3,0 +4,4 @@
+CRectanglesShape::SetSingleRect
+CRectanglesShape::~CRectanglesShape
+CTreeData::GetOcclusionInfo
+CVisual::FindTreeData
@@ -5 +8,0 @@
-CWindowNode::DxBltConsumedTelemetry
@@ -7,3 +10 @@
-CWindowNode::EnsureEffectiveSpriteClip
-CWindowNode::GetWindowOcclusionInfo
-CWindowNode::RenderBlackContent
+CWindowNode::GetSpriteClipShape
@@ -12,2 +12,0 @@
-CWindowOcclusionInfo::GetFlipExSurfaceZ
-CWindowOcclusionInfo::GetSpriteBitmapZ
@@ -14,0 +14 @@
+__security_check_cookie
@@ -16 +15,0 @@
-wil::details::FeatureImpl<__WilFeatureTraits_Feature_WindowNodeRender>::__private_IsEnabled
```


### CWindowNode::RenderContent Diff


```diff
--- CWindowNode::RenderContent
+++ CWindowNode::RenderContent
@@ -1,280 +1,176 @@
 
 /* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
    guard_dispatch_icall */
+/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
 /* public: virtual long __cdecl CWindowNode::RenderContent(class CDrawingContext * __ptr64,bool *
    __ptr64) __ptr64 */
 
 long __thiscall CWindowNode::RenderContent(CWindowNode *this,CDrawingContext *param_1,bool *param_2)
 
 {
-  CVisualTree *pCVar1;
-  ulonglong uVar2;
-  CComposition *pCVar3;
-  bool bVar4;
+  uint uVar1;
+  CVisualTree *pCVar2;
+  ulonglong uVar3;
+  CComposition *pCVar4;
   long lVar5;
   long lVar6;
   long lVar7;
-  int iVar8;
-  int iVar9;
-  CCompositionSurfaceBitmap *pCVar10;
-  ulonglong uVar11;
-  CGdiSpriteBitmap *this_00;
-  longlong lVar12;
-  CCompositionSurfaceBitmap *pCVar13;
-  CGdiSpriteBitmap *pCVar14;
-  CCompositionSurfaceBitmap *pCVar15;
-  CGdiSpriteBitmap *this_01;
-  CCompositionSurfaceBitmap *pCVar16;
-  IBitmapResource *pIVar17;
-  CGdiSpriteBitmap *pCVar18;
+  CTreeData *this_00;
+  CCompositionSurfaceBitmap *this_01;
+  ulonglong uVar8;
+  CCompositionSurfaceBitmap *pCVar9;
+  CShape *pCVar10;
+  CCompositionSurfaceBitmap *pCVar11;
+  CCompositionSurfaceBitmap *pCVar12;
+  int iVar13;
   void *unaff_retaddr;
-  uint uVar19;
-  CShape *local_48;
-  char local_40;
+  undefined1 auStackY_e8 [32];
+  CShape *local_a8;
+  char local_a0;
+  CShape *local_98;
+  char local_90;
+  undefined **local_88;
+  undefined8 local_80;
+  undefined1 *local_78;
+  undefined1 *local_70;
+  undefined8 *local_68;
+  undefined1 local_60 [16];
+  undefined8 local_50;
+  ulonglong local_48;
   
-  bVar4 = wil::details::FeatureImpl<__WilFeatureTraits_Feature_WindowNodeRender>::
-          __private_IsEnabled((FeatureImpl<__WilFeatureTraits_Feature_WindowNodeRender> *)
-                              &`private:_static_class_wil::details::FeatureImpl<__WilFeatureTraits_Feature_WindowNodeRender>&___ptr64___cdecl_wil::Feature<__WilFeatureTraits_Feature_WindowNodeRender>::GetImpl(void)'
-                               ::__l2::impl);
-  pCVar3 = g_pComposition;
-  if (bVar4) {
-    if ((char)this[0x6a] < '\0') {
-      if (g_pComposition[0x195a] == (CComposition)0x0) {
-        param_1[0x1f2c] = (CDrawingContext)0x1;
+  pCVar4 = g_pComposition;
+  local_48 = __security_cookie ^ (ulonglong)auStackY_e8;
+  if (-1 < (char)this[0x6a]) {
+LAB_0:
+    pCVar9 = (CCompositionSurfaceBitmap *)0x0;
+    pCVar2 = *(CVisualTree **)(param_1 + 0x1f08);
+    lVar5 = 0;
+    this_01 = pCVar9;
+    local_a8 = (CShape *)pCVar2;
+    local_98 = (CShape *)param_2;
+    if (((*(longlong *)(param_1 + 0x1f18) != 0) &&
+        (uVar1 = *(uint *)(*(longlong *)(param_1 + 0x1f18) + 0x600),
+        this_01 = (CCompositionSurfaceBitmap *)(COcclusionInfo *)0x0, uVar1 != 0)) &&
+       (this_00 = CVisual::FindTreeData((CVisual *)this,pCVar2), this_00 != (CTreeData *)0x0)) {
+      this_01 = (CCompositionSurfaceBitmap *)CTreeData::GetOcclusionInfo(this_00,uVar1,true);
+    }
+    lVar6 = RenderSpriteBitmap(this,param_1,pCVar2,(CWindowOcclusionInfo *)this_01);
+    if (lVar6 < 0) {
+      MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar6,0x396,(void *)0x0);
+    }
+    if (((byte)this[0x380] & 0x10) != 0) {
+      uVar3 = *(ulonglong *)(this + 0x348);
+      if ((uVar3 & 2) == 0) {
+        uVar8 = (ulonglong)((uint)uVar3 & 1);
       }
       else {
-        param_1[0x1f2f] = (CDrawingContext)0x1;
+        uVar8 = *(ulonglong *)(uVar3 & 0xfffffffffffffffc);
       }
-      if (pCVar3[0x195a] != (CComposition)0x0) {
-        *param_2 = true;
-        lVar5 = RenderBlackContent(this,param_1);
-        if (-1 < lVar5) {
-          return lVar5;
+      pCVar11 = pCVar9;
+      if ((uVar8 != 0) &&
+         (pCVar11 = (CCompositionSurfaceBitmap *)(uVar3 & 0xfffffffffffffffc), uVar8 != 1)) {
+        pCVar11 = *(CCompositionSurfaceBitmap **)
+                   ((CCompositionSurfaceBitmap *)(uVar3 & 0xfffffffffffffffc) + 0x10);
+      }
+      iVar13 = lVar5;
+      if (this_01 != (CCompositionSurfaceBitmap *)0x0) {
+        pCVar12 = pCVar9;
+        if (g_pComposition != (CComposition *)0x0) {
+          pCVar12 = *(CCompositionSurfaceBitmap **)(g_pComposition + 0x378);
         }
-        wil::details::in1diag3::Return_Hr
-                  (unaff_retaddr,0x389,
-                   "onecoreuap\\windows\\dwm\\dwmcore\\resources\\windownode.cpp",lVar5);
-        return lVar5;
+        if (*(CCompositionSurfaceBitmap **)(this_01 + 0x10) != pCVar12) {
+          COcclusionInfo::UpdateZFromValidParent
+                    ((COcclusionInfo *)this_01,(CVisualTree *)local_a8,(__uint64)pCVar12);
+          *(undefined4 *)(this_01 + 0x30) = *(undefined4 *)(this_01 + 0x24);
+          *(undefined4 *)(this_01 + 0x34) = *(undefined4 *)(this_01 + 0x24);
+        }
+        iVar13 = *(int *)(this_01 + 0x34);
       }
-    }
-    pCVar13 = (CCompositionSurfaceBitmap *)0x0;
-    pCVar1 = *(CVisualTree **)(param_1 + 0x1f08);
-    lVar5 = 0;
-    pCVar10 = pCVar13;
-    if ((*(longlong *)(param_1 + 0x1f18) != 0) &&
-       (uVar19 = *(uint *)(*(longlong *)(param_1 + 0x1f18) + 0x600),
-       pCVar10 = (CCompositionSurfaceBitmap *)(COcclusionInfo *)0x0, uVar19 != 0)) {
-      pCVar10 = (CCompositionSurfaceBitmap *)GetWindowOcclusionInfo(this,pCVar1,uVar19);
-    }
-    lVar6 = RenderSpriteBitmap(this,param_1,pCVar1,(CWindowOcclusionInfo *)pCVar10);
-    if (lVar6 < 0) {
-      MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar6,0x398,(void *)0x0);
-    }
-    if (((byte)this[0x380] & 0x10) != 0) {
-      uVar2 = *(ulonglong *)(this + 0x348);
-      if ((uVar2 & 2) == 0) {
-        uVar11 = (ulonglong)((uint)uVar2 & 1);
-      }
-      else {
-        uVar11 = *(ulonglong *)(uVar2 & 0xfffffffffffffffc);
-      }
-      pCVar15 = pCVar13;
-      if ((uVar11 != 0) &&
-         (pCVar15 = (CCompositionSurfaceBitmap *)(uVar2 & 0xfffffffffffffffc), uVar11 != 1)) {
-        pCVar15 = *(CCompositionSurfaceBitmap **)
-                   ((CCompositionSurfaceBitmap *)(uVar2 & 0xfffffffffffffffc) + 0x10);
-      }
-      iVar9 = lVar5;
-      if (pCVar10 != (CCompositionSurfaceBitmap *)0x0) {
-        pCVar16 = pCVar13;
-        if (g_pComposition != (CComposition *)0x0) {
-          pCVar16 = *(CCompositionSurfaceBitmap **)(g_pComposition + 0x378);
-        }
-        if (*(CCompositionSurfaceBitmap **)(pCVar10 + 0x10) != pCVar16) {
-          COcclusionInfo::UpdateZFromValidParent((COcclusionInfo *)pCVar10,pCVar1,(__uint64)pCVar16)
-          ;
-          *(undefined4 *)(pCVar10 + 0x30) = *(undefined4 *)(pCVar10 + 0x24);
-          *(undefined4 *)(pCVar10 + 0x34) = *(undefined4 *)(pCVar10 + 0x24);
-        }
-        iVar9 = *(int *)(pCVar10 + 0x34);
-      }
-      DxFlipConsumedTelemetry(this,param_1,pCVar15);
-      local_48 = (CShape *)0x0;
-      local_40 = '\0';
+      DxFlipConsumedTelemetry(this,param_1,pCVar11);
+      local_a8 = (CShape *)0x0;
+      local_a0 = '\0';
       if (*(CGeometry **)(this + 0x328) == (CGeometry *)0x0) {
-        local_48 = (CShape *)&CRectanglesShape::sc_emptyShape;
+        local_a8 = (CShape *)&CRectanglesShape::sc_emptyShape;
       }
       else {
         CGeometry::GetShapeData
-                  (*(CGeometry **)(this + 0x328),(D2D_SIZE_F *)(this + 0x90),(CShapePtr *)&local_48)
+                  (*(CGeometry **)(this + 0x328),(D2D_SIZE_F *)(this + 0x90),(CShapePtr *)&local_a8)
         ;
       }
-      pCVar16 = pCVar15 + 0x48;
-      if (pCVar15 == (CCompositionSurfaceBitmap *)0x0) {
-        pCVar16 = pCVar13;
+      pCVar12 = pCVar11 + 0x48;
+      if (pCVar11 == (CCompositionSurfaceBitmap *)0x0) {
+        pCVar12 = pCVar9;
       }
-      lVar7 = RenderImage(this,param_1,(CWindowOcclusionInfo *)pCVar10,(IBitmapResource *)pCVar16,
-                          local_48,false,iVar9);
-      if ((local_40 != '\0') && (local_48 != (CShape *)0x0)) {
-        (*(code *)**(undefined8 **)local_48)(local_48,1);
+      lVar7 = RenderImage(this,param_1,(CWindowOcclusionInfo *)this_01,(IBitmapResource *)pCVar12,
+                          local_a8,false,iVar13);
+      if ((local_a0 != '\0') && (local_a8 != (CShape *)0x0)) {
+        (*(code *)**(undefined8 **)local_a8)(local_a8,1);
       }
       if (lVar7 < 0) {
         wil::details::in1diag3::Return_Hr
                   (unaff_retaddr,0x36e,
                    "onecoreuap\\windows\\dwm\\dwmcore\\resources\\windownode.cpp",lVar7);
-        MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar7,0x399,(void *)0x0);
+        MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar7,0x397,(void *)0x0);
         lVar5 = lVar7;
       }
     }
     if ((lVar6 == 0) || ((-1 < lVar6 && (lVar5 < 0)))) {
       lVar6 = lVar5;
     }
-    lVar5 = CVisual::RenderContent((CVisual *)this,param_1,param_2);
+    lVar5 = CVisual::RenderContent((CVisual *)this,param_1,(bool *)local_98);
     if (lVar5 < 0) {
-      MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar5,0x39a,(void *)0x0);
+      MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar5,0x398,(void *)0x0);
     }
-    if (lVar6 != 0) {
-      if (lVar6 < 0) {
-        return lVar6;
-      }
-      if (-1 < lVar5) {
-        return lVar6;
-      }
+    if ((lVar6 == 0) || ((-1 < lVar6 && (lVar5 < 0)))) {
+      lVar6 = lVar5;
     }
-    return lVar5;
+    return lVar6;
   }
-  if ((char)this[0x6a] < '\0') {
-    if (g_pComposition[0x195a] == (CComposition)0x0) {
-      param_1[0x1f2c] = (CDrawingContext)0x1;
-    }
-    else {
-      param_1[0x1f2f] = (CDrawingContext)0x1;
-    }
-    if (pCVar3[0x195a] != (CComposition)0x0) {
-      lVar5 = RenderBlackContent(this,param_1);
-      if (-1 < lVar5) {
-        *param_2 = true;
-        return lVar5;
-      }
-      uVar19 = 0x3a8;
-      goto LAB_0;
+  if (g_pComposition[0x195a] == (CComposition)0x0) {
+    param_1[0x1f2c] = (CDrawingContext)0x1;
+  }
+  else {
+    param_1[0x1f2f] = (CDrawingContext)0x1;
+  }
+  if (pCVar4[0x195a] == (CComposition)0x0) goto LAB_0;
+  *param_2 = true;
+  local_98 = (CShape *)0x0;
+  local_88 = &CRectanglesShape::_vftable_;
+  local_78 = local_60;
+  local_70 = local_60;
+  local_68 = &local_50;
+  local_90 = '\0';
+  local_80 = 0;
+  local_50 = 0;
+  if (*(longlong *)(this + 0x330) == 0) {
+    CRectanglesShape::SetSingleRect((CRectanglesShape *)&local_88,(D2D_RECT_F *)(this + 0xb0));
+    pCVar10 = (CShape *)&local_88;
+  }
+  else {
+    lVar5 = GetSpriteClipShape(this,(CShapePtr *)&local_98);
+    pCVar10 = local_98;
+    if (lVar5 < 0) {
+      MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar5,0x517,(void *)0x0);
+      pCVar10 = local_98;
+      goto LAB_1;
     }
   }
-  pCVar14 = (CGdiSpriteBitmap *)0x0;
-  pCVar1 = *(CVisualTree **)(param_1 + 0x1f08);
-  iVar9 = 0;
-  this_00 = pCVar14;
-  if ((*(longlong *)(param_1 + 0x1f18) != 0) &&
-     (uVar19 = *(uint *)(*(longlong *)(param_1 + 0x1f18) + 0x600),
-     this_00 = (CGdiSpriteBitmap *)(CWindowOcclusionInfo *)0x0, uVar19 != 0)) {
-    this_00 = (CGdiSpriteBitmap *)GetWindowOcclusionInfo(this,pCVar1,uVar19);
+  lVar5 = CDrawingContext::FillShapeWithSolidColor
+                    (param_1,pCVar10,(_D3DCOLORVALUE *)&__xmm_3f800000000000000000000000000000);
+  if (lVar5 < 0) {
+    MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar5,0x51c,(void *)0x0);
   }
-  if ((((byte)this[0x380] & 8) != 0) && (this[0x2f1] == (CWindowNode)0x0)) {
-    uVar2 = *(ulonglong *)(this + 0x340);
-    if ((uVar2 & 2) == 0) {
-      uVar11 = (ulonglong)((uint)uVar2 & 1);
-    }
-    else {
-      uVar11 = *(ulonglong *)(uVar2 & 0xfffffffffffffffc);
-    }
-    this_01 = pCVar14;
-    if ((uVar11 != 0) && (this_01 = (CGdiSpriteBitmap *)(uVar2 & 0xfffffffffffffffc), uVar11 != 1))
-    {
-      this_01 = *(CGdiSpriteBitmap **)((CGdiSpriteBitmap *)(uVar2 & 0xfffffffffffffffc) + 0x10);
-    }
-    iVar8 = iVar9;
-    if (this_00 != (CGdiSpriteBitmap *)0x0) {
-      iVar8 = CWindowOcclusionInfo::GetSpriteBitmapZ((CWindowOcclusionInfo *)this_00,pCVar1);
-    }
-    lVar5 = EnsureEffectiveSpriteClip(this);
-    if (lVar5 < 0) {
-      uVar19 = 0x3c6;
-      goto LAB_0;
-    }
-    DxBltConsumedTelemetry(this,param_1,this_01);
-    bVar4 = CGdiSpriteBitmap::NeedsTiling(this_01,*(uint *)(*(longlong *)(param_1 + 0x28) + 0x3c0));
-    if (bVar4) {
-      lVar12 = *(longlong *)(this_01 + 0x1c8);
-      pCVar18 = pCVar14;
-      if (*(longlong *)(this_01 + 0x1d0) - lVar12 >> 3 != 0) {
-        do {
-          lVar12 = *(longlong *)(lVar12 + (longlong)pCVar18 * 8);
-          pIVar17 = (IBitmapResource *)(lVar12 + 0x48);
-          if (lVar12 == 0) {
-            pIVar17 = (IBitmapResource *)pCVar14;
-          }
-          lVar5 = RenderImage(this,param_1,(CWindowOcclusionInfo *)this_00,pIVar17,
-                              *(CShape **)(this + 0x378),true,iVar8);
-          if (lVar5 < 0) {
-            uVar19 = 0x3dd;
-            goto LAB_0;
-          }
-          lVar12 = *(longlong *)(this_01 + 0x1c8);
-          pCVar18 = pCVar18 + 1;
-        } while (pCVar18 < (CGdiSpriteBitmap *)(*(longlong *)(this_01 + 0x1d0) - lVar12 >> 3));
-      }
-    }
-    else {
-      pCVar18 = this_01 + 0x68;
-      if (this_01 == (CGdiSpriteBitmap *)0x0) {
-        pCVar18 = pCVar14;
-      }
-      lVar5 = RenderImage(this,param_1,(CWindowOcclusionInfo *)this_00,(IBitmapResource *)pCVar18,
-                          *(CShape **)(this + 0x378),true,iVar8);
-      if (lVar5 < 0) {
-        uVar19 = 0x3d2;
-        goto LAB_0;
-      }
-    }
+LAB_1:
+  CRectanglesShape::~CRectanglesShape((CRectanglesShape *)&local_88);
+  if ((local_90 != '\0') && (pCVar10 != (CShape *)0x0)) {
+    (*(code *)**(undefined8 **)pCVar10)(pCVar10,1);
   }
-  if (((byte)this[0x380] & 0x10) != 0) {
-    uVar2 = *(ulonglong *)(this + 0x348);
-    if ((uVar2 & 2) == 0) {
-      uVar11 = (ulonglong)((uint)uVar2 & 1);
-    }
-    else {
-      uVar11 = *(ulonglong *)(uVar2 & 0xfffffffffffffffc);
-    }
-    pCVar10 = (CCompositionSurfaceBitmap *)pCVar14;
-    if ((uVar11 != 0) &&
-       (pCVar10 = (CCompositionSurfaceBitmap *)(uVar2 & 0xfffffffffffffffc), uVar11 != 1)) {
-      pCVar10 = *(CCompositionSurfaceBitmap **)
-                 ((CCompositionSurfaceBitmap *)(uVar2 & 0xfffffffffffffffc) + 0x10);
-    }
-    if (this_00 != (CGdiSpriteBitmap *)0x0) {
-      iVar9 = CWindowOcclusionInfo::GetFlipExSurfaceZ((CWindowOcclusionInfo *)this_00,pCVar1);
-    }
-    DxFlipConsumedTelemetry(this,param_1,pCVar10);
-    local_48 = (CShape *)0x0;
-    local_40 = '\0';
-    if (*(CGeometry **)(this + 0x328) == (CGeometry *)0x0) {
-      local_48 = (CShape *)&CRectanglesShape::sc_emptyShape;
-    }
-    else {
-      CGeometry::GetShapeData
-                (*(CGeometry **)(this + 0x328),(D2D_SIZE_F *)(this + 0x90),(CShapePtr *)&local_48);
-    }
-    pCVar13 = pCVar10 + 0x48;
-    if (pCVar10 == (CCompositionSurfaceBitmap *)0x0) {
-      pCVar13 = (CCompositionSurfaceBitmap *)pCVar14;
-    }
-    lVar5 = RenderImage(this,param_1,(CWindowOcclusionInfo *)this_00,(IBitmapResource *)pCVar13,
-                        local_48,false,iVar9);
-    if ((local_40 != '\0') && (local_48 != (CShape *)0x0)) {
-      (*(code *)**(undefined8 **)local_48)();
-    }
-    if (lVar5 < 0) {
-      uVar19 = 0x3f4;
-      goto LAB_0;
-    }
-  }
-  lVar5 = CVisual::RenderContent((CVisual *)this,param_1,param_2);
   if (-1 < lVar5) {
     return lVar5;
   }
-  uVar19 = 0x3f7;
-LAB_0:
-  MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar5,uVar19,(void *)0x0);
+  wil::details::in1diag3::Return_Hr
+            (unaff_retaddr,0x387,"onecoreuap\\windows\\dwm\\dwmcore\\resources\\windownode.cpp",
+             lVar5);
   return lVar5;
 }
 

```


## CMaskBrush::ProcessSetMask

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.35|
|i_ratio|0.28|
|m_ratio|0.84|
|b_ratio|0.81|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|ProcessSetMask|ProcessSetMask|
|fullname|CMaskBrush::ProcessSetMask|CMaskBrush::ProcessSetMask|
|refcount|1|1|
|`length`|318|214|
|`called`|CBrush::NotifyOnChanged<br>CMILRefCountImpl::AddReference<br>CMaskBrush::IsValidMaskResource<br>CPtrArrayBase::GetCount<br>CPtrArrayBase::InsertAt<br>CResource::UnRegisterNotifierInternal<br>MilInstrumentationCheckHR_MaybeFailFast<br>_guard_dispatch_icall$thunk$10345483385596137414|CBrush::NotifyOnChanged<br>CMaskBrush::IsValidMaskResource<br>CResource::RegisterNotifier<br>CResource::UnRegisterNotifierInternal<br>MilInstrumentationCheckHR_MaybeFailFast|
|calling|||
|paramcount|3|3|
|`address`|180060094|1801348cc|
|sig|long __thiscall ProcessSetMask(CMaskBrush * this, CResourceTable * param_1, tagMILCMD_MASKBRUSH_SETMASK * param_2)|long __thiscall ProcessSetMask(CMaskBrush * this, CResourceTable * param_1, tagMILCMD_MASKBRUSH_SETMASK * param_2)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### CMaskBrush::ProcessSetMask Called Diff


```diff
--- CMaskBrush::ProcessSetMask called
+++ CMaskBrush::ProcessSetMask called
@@ -2 +1,0 @@
-CMILRefCountImpl::AddReference
@@ -4,2 +3 @@
-CPtrArrayBase::GetCount
-CPtrArrayBase::InsertAt
+CResource::RegisterNotifier
@@ -8 +5,0 @@
-_guard_dispatch_icall$thunk$10345483385596137414
```


### CMaskBrush::ProcessSetMask Diff


```diff
--- CMaskBrush::ProcessSetMask
+++ CMaskBrush::ProcessSetMask
@@ -1,63 +1,47 @@
 
-/* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
-   guard_dispatch_icall */
 /* public: long __cdecl CMaskBrush::ProcessSetMask(class CResourceTable * __ptr64,struct
    tagMILCMD_MASKBRUSH_SETMASK const * __ptr64) __ptr64 */
 
 long __thiscall
 CMaskBrush::ProcessSetMask
           (CMaskBrush *this,CResourceTable *param_1,tagMILCMD_MASKBRUSH_SETMASK *param_2)
 
 {
-  CMaskBrush *pCVar1;
-  bool bVar2;
-  long lVar3;
-  __uint64 _Var4;
-  CPtrArrayBase *this_00;
-  CResource *this_01;
-  uint uVar5;
+  bool bVar1;
+  long lVar2;
+  CResource *pCVar3;
+  uint uVar4;
   
-  uVar5 = *(uint *)(param_2 + 8);
-  if (((uVar5 == 0) || (*(uint *)(param_1 + 0x1c) <= uVar5)) ||
-     (*(int *)((ulonglong)(uVar5 * *(int *)(param_1 + 0x18)) + *(longlong *)(param_1 + 0x28)) == 0))
+  uVar4 = *(uint *)(param_2 + 8);
+  if (((uVar4 == 0) || (*(uint *)(param_1 + 0x1c) <= uVar4)) ||
+     (*(int *)((ulonglong)(uVar4 * *(int *)(param_1 + 0x18)) + *(longlong *)(param_1 + 0x28)) == 0))
   {
-    this_01 = (CResource *)0x0;
+    pCVar3 = (CResource *)0x0;
   }
   else {
-    this_01 = *(CResource **)
-               ((ulonglong)(uVar5 * *(int *)(param_1 + 0x18)) + 8 + *(longlong *)(param_1 + 0x28));
+    pCVar3 = *(CResource **)
+              ((ulonglong)(uVar4 * *(int *)(param_1 + 0x18)) + 8 + *(longlong *)(param_1 + 0x28));
   }
-  pCVar1 = this + 0x70;
-  if (this_01 != *(CResource **)pCVar1) {
-    if (this_01 != (CResource *)0x0) {
-      bVar2 = IsValidMaskResource(this_01);
-      if (!bVar2) {
-        lVar3 = -0x7767fbfd;
-        uVar5 = 0x126;
+  if (pCVar3 != *(CResource **)(this + 0x70)) {
+    if (pCVar3 != (CResource *)0x0) {
+      bVar1 = IsValidMaskResource(pCVar3);
+      if (!bVar1) {
+        lVar2 = -0x7767fbfd;
+        uVar4 = 0x126;
 LAB_0:
-        MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar3,uVar5,(void *)0x0);
-        return lVar3;
+        MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar2,uVar4,(void *)0x0);
+        return lVar2;
       }
-      this_00 = (CPtrArrayBase *)(this_01 + 0x20);
-      _Var4 = CPtrArrayBase::GetCount(this_00);
-      lVar3 = CPtrArrayBase::InsertAt(this_00,(__uint64)this,_Var4);
-      if (lVar3 < 0) {
-        MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar3,0xd9,(void *)0x0);
-        uVar5 = 0x129;
+      lVar2 = CResource::RegisterNotifier((CResource *)this,pCVar3);
+      if (lVar2 < 0) {
+        uVar4 = 0x129;
         goto LAB_0;
       }
-      if (*(code **)(*(longlong *)this_01 + 8) == CMILRefCountImpl::AddReference) {
-        CMILRefCountImpl::AddReference((CMILRefCountImpl *)this_01);
-      }
-      else {
-        (**(code **)(*(longlong *)this_01 + 8))();
-      }
     }
-    CResource::UnRegisterNotifierInternal((CResource *)this,*(CResource **)pCVar1);
-    *(longlong *)pCVar1 = 0;
-    *(CResource **)(this + 0x70) = this_01;
+    CResource::UnRegisterNotifierInternal((CResource *)this,*(CResource **)(this + 0x70));
+    *(CResource **)(this + 0x70) = pCVar3;
     CBrush::NotifyOnChanged((CBrush *)this,0xe,(IUnknown *)0x0);
   }
   return 0;
 }
 

```


## CPolygonBuilder::`vector_deleting_destructor'

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.56|
|i_ratio|0.54|
|m_ratio|0.94|
|b_ratio|0.94|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|`vector_deleting_destructor'|`vector_deleting_destructor'|
|fullname|CPolygonBuilder::`vector_deleting_destructor'|CPolygonBuilder::`vector_deleting_destructor'|
|refcount|7|7|
|`length`|233|273|
|`called`|API-MS-WIN-CORE-HEAP-L1-1-0.DLL::GetProcessHeap<br>API-MS-WIN-CORE-HEAP-L1-1-0.DLL::HeapFree<br>CMILRefCountBaseT<IBitmapLock,CMilObjectDeleter>::FinalRelease<br>CThreadContext::GetObjectCache|API-MS-WIN-CORE-HEAP-L1-1-0.DLL::GetProcessHeap<br>API-MS-WIN-CORE-HEAP-L1-1-0.DLL::HeapFree<br>CMILRefCountBaseT<IBitmapLock,CMilObjectDeleter>::FinalRelease<br>CThreadContext::GetCurrent<br>ModuleFailFastForHRESULT|
|calling|CMILCOMBaseT<ID2D1GeometrySink,ID2D1GeometrySink,CMilObjectDeleter>::Release<br>CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter>::InternalRelease|CMILCOMBaseT<ID2D1GeometrySink,ID2D1GeometrySink,CMilObjectDeleter>::Release<br>CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter>::InternalRelease|
|paramcount|2|2|
|`address`|180029f60|180017ea0|
|sig|void * __thiscall `vector_deleting_destructor'(CPolygonBuilder * this, uint param_1)|void * __thiscall `vector_deleting_destructor'(CPolygonBuilder * this, uint param_1)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### CPolygonBuilder::`vector_deleting_destructor' Called Diff


```diff
--- CPolygonBuilder::`vector_deleting_destructor' called
+++ CPolygonBuilder::`vector_deleting_destructor' called
@@ -4 +4,2 @@
-CThreadContext::GetObjectCache
+CThreadContext::GetCurrent
+ModuleFailFastForHRESULT
```


### CPolygonBuilder::`vector_deleting_destructor' Diff


```diff
--- CPolygonBuilder::`vector_deleting_destructor'
+++ CPolygonBuilder::`vector_deleting_destructor'
@@ -1,49 +1,53 @@
 
 /* protected: virtual void * __ptr64 __cdecl CPolygonBuilder::`vector deleting destructor'(unsigned
    int) __ptr64 */
 
 void * __thiscall CPolygonBuilder::_vector_deleting_destructor_(CPolygonBuilder *this,uint param_1)
 
 {
-  longlong lVar1;
-  CObjectCache *pCVar2;
-  HANDLE hHeap;
-  CPolygonBuilder *hHeap_00;
+  long lVar1;
+  longlong lVar2;
+  HANDLE pvVar3;
   CPolygonBuilder *lpMem;
+  undefined8 unaff_retaddr;
+  CThreadContext *local_res8;
   
-  hHeap_00 = *(CPolygonBuilder **)(this + 0x18);
   lpMem = *(CPolygonBuilder **)(this + 0x10);
-  lVar1 = (longlong)hHeap_00 - (longlong)lpMem >> 3;
-  if (lVar1 != 0) {
-    hHeap_00 = hHeap_00 + lVar1 * -8;
-    *(CPolygonBuilder **)(this + 0x18) = hHeap_00;
+  lVar2 = *(longlong *)(this + 0x18) - (longlong)lpMem >> 3;
+  if (lVar2 != 0) {
+    *(longlong *)(this + 0x18) = *(longlong *)(this + 0x18) + lVar2 * -8;
   }
   *(undefined8 *)(this + 0x10) = 0;
   if (lpMem == this + 0x28) {
     lpMem = (CPolygonBuilder *)0x0;
   }
   if (lpMem != (CPolygonBuilder *)0x0) {
-    hHeap_00 = GetProcessHeap();
-    HeapFree(hHeap_00,0,lpMem);
+    pvVar3 = GetProcessHeap();
+    HeapFree(pvVar3,0,lpMem);
   }
   if ((param_1 & 1) != 0) {
     if ((param_1 & 4) == 0) {
-      pCVar2 = CThreadContext::GetObjectCache(hHeap_00);
-      if (*(uint *)(pCVar2 + 4) < *(uint *)pCVar2) {
-        *(undefined8 *)this = *(undefined8 *)(pCVar2 + 8);
-        *(int *)(pCVar2 + 4) = *(int *)(pCVar2 + 4) + 1;
-        *(CPolygonBuilder **)(pCVar2 + 8) = this;
+      local_res8 = (CThreadContext *)0x0;
+      lVar1 = CThreadContext::GetCurrent(&local_res8);
+      if (lVar1 < 0) {
+                    /* WARNING: Subroutine does not return */
+        ModuleFailFastForHRESULT(lVar1,unaff_retaddr);
+      }
+      if (*(uint *)(local_res8 + 0x74) < *(uint *)(local_res8 + 0x70)) {
+        *(undefined8 *)this = *(undefined8 *)(local_res8 + 0x78);
+        *(int *)(local_res8 + 0x74) = *(int *)(local_res8 + 0x74) + 1;
+        *(CPolygonBuilder **)(local_res8 + 0x78) = this;
       }
       else if (this != (CPolygonBuilder *)0x0) {
-        hHeap = GetProcessHeap();
-        HeapFree(hHeap,0,this);
+        pvVar3 = GetProcessHeap();
+        HeapFree(pvVar3,0,this);
       }
     }
     else {
       CMILRefCountBaseT<IBitmapLock,CMilObjectDeleter>::FinalRelease
                 ((CMILRefCountBaseT<IBitmapLock,CMilObjectDeleter> *)this);
     }
   }
   return this;
 }
 

```


## COcclusionContext::CheckAndRecordOverlayCandidate

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.68|
|i_ratio|0.49|
|m_ratio|0.83|
|b_ratio|0.78|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|CheckAndRecordOverlayCandidate|CheckAndRecordOverlayCandidate|
|fullname|COcclusionContext::CheckAndRecordOverlayCandidate|COcclusionContext::CheckAndRecordOverlayCandidate|
|refcount|4|4|
|`length`|921|638|
|`called`|CLightStack::HasLighting<br>COcclusionContext::CheckAndRecordOverlayCandidateForContext<br>COverlayContext::OverlayCandidateCollectionEnabled<br>MilInstrumentationCheckHR_MaybeFailFast<br>_guard_dispatch_icall$thunk$10345483385596137414<br>wil::com_ptr_t<IBitmapRealization,wil::err_returncode_policy>::query_to<ISwapChainRealization><br>wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy><br>wil::com_ptr_t<IDXGIResource,wil::err_returncode_policy>::com_ptr_t<IDXGIResource,wil::err_returncode_policy><br>wil::details::FeatureImpl<__WilFeatureTraits_Feature_ComposedFlipPerf>::__private_IsEnabled<br>wil::details::FeatureImpl<__WilFeatureTraits_Feature_StereoDFlip>::__private_IsEnabled|CLightStack::HasLighting<br>COcclusionContext::CheckAndRecordOverlayCandidateForContext<br>COverlayContext::OverlayCandidateCollectionEnabled<br>MilInstrumentationCheckHR_MaybeFailFast<br>_guard_dispatch_icall$thunk$10345483385596137414<br>wil::com_ptr_t<IBitmapRealization,wil::err_returncode_policy>::query_to<ISwapChainRealization><br>wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy><br>wil::com_ptr_t<IDXGIResource,wil::err_returncode_policy>::com_ptr_t<IDXGIResource,wil::err_returncode_policy><br>wil::details::FeatureImpl<__WilFeatureTraits_Feature_ComposedFlipPerf>::__private_IsEnabled|
|calling|CCompositionSurfaceBitmap::AddOcclusionInformation<br>CSurfaceBrush::AddOcclusionInformation<br>CWindowNode::CollectOcclusion|CCompositionSurfaceBitmap::AddOcclusionInformation<br>CSurfaceBrush::AddOcclusionInformation<br>CWindowNode::CollectOcclusion|
|paramcount|6|6|
|`address`|1800265f4|180100b78|
|sig|long __thiscall CheckAndRecordOverlayCandidate(COcclusionContext * this, CVisual * param_1, CCompositionSurfaceInfo * param_2, CMILMatrix * param_3, CShape * param_4, TMILFlagsEnum<MilSourceModification::FlagsEnum> param_5)|long __thiscall CheckAndRecordOverlayCandidate(COcclusionContext * this, CVisual * param_1, CCompositionSurfaceInfo * param_2, CMILMatrix * param_3, CShape * param_4, TMILFlagsEnum<MilSourceModification::FlagsEnum> param_5)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### COcclusionContext::CheckAndRecordOverlayCandidate Called Diff


```diff
--- COcclusionContext::CheckAndRecordOverlayCandidate called
+++ COcclusionContext::CheckAndRecordOverlayCandidate called
@@ -10 +9,0 @@
-wil::details::FeatureImpl<__WilFeatureTraits_Feature_StereoDFlip>::__private_IsEnabled
```


### COcclusionContext::CheckAndRecordOverlayCandidate Diff


```diff
--- COcclusionContext::CheckAndRecordOverlayCandidate
+++ COcclusionContext::CheckAndRecordOverlayCandidate
@@ -1,173 +1,128 @@
 
 /* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
    guard_dispatch_icall */
 /* public: long __cdecl COcclusionContext::CheckAndRecordOverlayCandidate(class CVisual *
    __ptr64,class CCompositionSurfaceInfo * __ptr64,class CMILMatrix const & __ptr64,class CShape
    const * __ptr64,struct TMILFlagsEnum<enum MilSourceModification::FlagsEnum>) __ptr64 */
 
 long __thiscall
 COcclusionContext::CheckAndRecordOverlayCandidate
           (COcclusionContext *this,undefined8 param_1,longlong *param_2,undefined8 param_3,
           undefined8 param_4,undefined4 param_6)
 
 {
   undefined8 *puVar1;
   COverlayContext *pCVar2;
   bool bVar3;
   char cVar4;
   long lVar5;
   long lVar6;
   long lVar7;
   IDXGIResource *pIVar8;
   undefined8 *puVar9;
   long lVar10;
   uint uVar11;
   ISwapChainRealization *local_48;
   longlong local_40;
   
-  lVar6 = 0;
+  lVar10 = 0;
   lVar7 = 0;
   bVar3 = wil::details::FeatureImpl<__WilFeatureTraits_Feature_ComposedFlipPerf>::
           __private_IsEnabled((FeatureImpl<__WilFeatureTraits_Feature_ComposedFlipPerf> *)
                               &`private:_static_class_wil::details::FeatureImpl<__WilFeatureTraits_Feature_ComposedFlipPerf>&___ptr64___cdecl_wil::Feature<__WilFeatureTraits_Feature_ComposedFlipPerf>::GetImpl(void)'
                                ::__l2::impl);
-  lVar10 = lVar7;
+  lVar6 = lVar7;
   if (bVar3) {
     pIVar8 = (IDXGIResource *)(**(code **)(*param_2 + 0x30))(param_2);
     wil::com_ptr_t<IDXGIResource,wil::err_returncode_policy>::
     com_ptr_t<IDXGIResource,wil::err_returncode_policy>
               ((com_ptr_t<IDXGIResource,wil::err_returncode_policy> *)&local_40,pIVar8);
-    lVar10 = lVar6;
+    lVar6 = lVar10;
     if (local_40 == 0) goto LAB_0;
     local_48 = (ISwapChainRealization *)0x0;
     lVar5 = wil::com_ptr_t<IBitmapRealization,wil::err_returncode_policy>::
             query_to<ISwapChainRealization>
                       ((com_ptr_t<IBitmapRealization,wil::err_returncode_policy> *)&local_40,
                        &local_48);
     if (lVar5 < 0) goto LAB_1;
     if (*(int *)(this + 0x6b4) == 0) {
       bVar3 = CLightStack::HasLighting((CLightStack *)(this + 0xe0));
       if (bVar3) goto LAB_2;
     }
     else {
 LAB_2:
       cVar4 = (**(code **)(*(longlong *)local_48 + 0x98))();
-      lVar10 = lVar7;
+      lVar6 = lVar7;
       if (cVar4 == '\0') goto LAB_1;
     }
     puVar1 = *(undefined8 **)(this + 0x710);
-    for (puVar9 = *(undefined8 **)(this + 0x708); lVar10 = lVar6, puVar9 != puVar1;
+    for (puVar9 = *(undefined8 **)(this + 0x708); lVar6 = lVar10, puVar9 != puVar1;
         puVar9 = puVar9 + 1) {
       pCVar2 = (COverlayContext *)*puVar9;
       bVar3 = COverlayContext::OverlayCandidateCollectionEnabled(pCVar2);
       if (bVar3) {
         lVar6 = CheckAndRecordOverlayCandidateForContext
                           (this,pCVar2,param_1,param_2,local_48,param_3,param_4,param_6);
+        lVar10 = lVar6;
         if (-1 < lVar6) goto LAB_3;
-        uVar11 = 0x6fa;
+        uVar11 = 0x70b;
 LAB_4:
         MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar6,uVar11,(void *)0x0);
-        lVar10 = lVar6;
         break;
       }
 LAB_3:
     }
   }
   else {
-    bVar3 = wil::details::FeatureImpl<__WilFeatureTraits_Feature_StereoDFlip>::__private_IsEnabled
-                      ((FeatureImpl<__WilFeatureTraits_Feature_StereoDFlip> *)
-                       &`private:_static_class_wil::details::FeatureImpl<__WilFeatureTraits_Feature_StereoDFlip>&___ptr64___cdecl_wil::Feature<__WilFeatureTraits_Feature_StereoDFlip>::GetImpl(void)'
-                        ::__l2::impl);
-    if (bVar3) {
-      pIVar8 = (IDXGIResource *)(**(code **)(*param_2 + 0x30))(param_2);
-      wil::com_ptr_t<IDXGIResource,wil::err_returncode_policy>::
-      com_ptr_t<IDXGIResource,wil::err_returncode_policy>
-                ((com_ptr_t<IDXGIResource,wil::err_returncode_policy> *)&local_40,pIVar8);
-      if (local_40 == 0) goto LAB_0;
-      local_48 = (ISwapChainRealization *)0x0;
-      lVar7 = wil::com_ptr_t<IBitmapRealization,wil::err_returncode_policy>::
-              query_to<ISwapChainRealization>
-                        ((com_ptr_t<IBitmapRealization,wil::err_returncode_policy> *)&local_40,
-                         &local_48);
-      if (lVar7 < 0) goto LAB_1;
+    pIVar8 = (IDXGIResource *)(**(code **)(*param_2 + 0x30))(param_2);
+    wil::com_ptr_t<IDXGIResource,wil::err_returncode_policy>::
+    com_ptr_t<IDXGIResource,wil::err_returncode_policy>
+              ((com_ptr_t<IDXGIResource,wil::err_returncode_policy> *)&local_40,pIVar8);
+    if (local_40 == 0) goto LAB_0;
+    local_48 = (ISwapChainRealization *)0x0;
+    lVar7 = wil::com_ptr_t<IBitmapRealization,wil::err_returncode_policy>::
+            query_to<ISwapChainRealization>
+                      ((com_ptr_t<IBitmapRealization,wil::err_returncode_policy> *)&local_40,
+                       &local_48);
+    if (-1 < lVar7) {
       cVar4 = (**(code **)(*(longlong *)local_48 + 0x90))();
       if (cVar4 == '\0') {
         cVar4 = (**(code **)(*(longlong *)local_48 + 0xa8))();
         if (cVar4 == '\0') goto LAB_1;
       }
       if (*(int *)(this + 0x6b4) == 0) {
         bVar3 = CLightStack::HasLighting((CLightStack *)(this + 0xe0));
         if (bVar3) goto LAB_5;
       }
       else {
 LAB_5:
         cVar4 = (**(code **)(*(longlong *)local_48 + 0x98))();
         if (cVar4 == '\0') goto LAB_1;
       }
       puVar1 = *(undefined8 **)(this + 0x710);
-      for (puVar9 = *(undefined8 **)(this + 0x708); lVar10 = lVar6, puVar9 != puVar1;
-          puVar9 = puVar9 + 1) {
+      lVar6 = lVar10;
+      for (puVar9 = *(undefined8 **)(this + 0x708); puVar9 != puVar1; puVar9 = puVar9 + 1) {
         pCVar2 = (COverlayContext *)*puVar9;
         bVar3 = COverlayContext::OverlayCandidateCollectionEnabled(pCVar2);
         if (bVar3) {
           lVar6 = CheckAndRecordOverlayCandidateForContext
                             (this,pCVar2,param_1,param_2,local_48,param_3,param_4,param_6);
           if (lVar6 < 0) {
-            uVar11 = 0x71a;
+            uVar11 = 0x729;
             goto LAB_4;
-          }
-        }
-      }
-    }
-    else {
-      pIVar8 = (IDXGIResource *)(**(code **)(*param_2 + 0x30))(param_2);
-      wil::com_ptr_t<IDXGIResource,wil::err_returncode_policy>::
-      com_ptr_t<IDXGIResource,wil::err_returncode_policy>
-                ((com_ptr_t<IDXGIResource,wil::err_returncode_policy> *)&local_40,pIVar8);
-      if (local_40 == 0) goto LAB_0;
-      local_48 = (ISwapChainRealization *)0x0;
-      lVar7 = wil::com_ptr_t<IBitmapRealization,wil::err_returncode_policy>::
-              query_to<ISwapChainRealization>
-                        ((com_ptr_t<IBitmapRealization,wil::err_returncode_policy> *)&local_40,
-                         &local_48);
-      if (-1 < lVar7) {
-        cVar4 = (**(code **)(*(longlong *)local_48 + 0x90))();
-        if (cVar4 != '\0') {
-          if (*(int *)(this + 0x6b4) == 0) {
-            bVar3 = CLightStack::HasLighting((CLightStack *)(this + 0xe0));
-            if (bVar3) goto LAB_6;
-          }
-          else {
-LAB_6:
-            cVar4 = (**(code **)(*(longlong *)local_48 + 0x98))();
-            if (cVar4 == '\0') goto LAB_1;
-          }
-          puVar1 = *(undefined8 **)(this + 0x710);
-          for (puVar9 = *(undefined8 **)(this + 0x708); lVar10 = lVar6, puVar9 != puVar1;
-              puVar9 = puVar9 + 1) {
-            pCVar2 = (COverlayContext *)*puVar9;
-            bVar3 = COverlayContext::OverlayCandidateCollectionEnabled(pCVar2);
-            if (bVar3) {
-              lVar6 = CheckAndRecordOverlayCandidateForContext
-                                (this,pCVar2,param_1,param_2,local_48,param_3,param_4,param_6);
-              if (lVar6 < 0) {
-                uVar11 = 0x736;
-                goto LAB_4;
-              }
-            }
           }
         }
       }
     }
   }
 LAB_1:
   wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::
   ~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>
             ((com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy> *)&local_48);
 LAB_0:
   wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::
   ~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>
             ((com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy> *)&local_40);
-  return lVar10;
+  return lVar6;
 }
 

```


## CCompositionTextLineGeneratedT<CCompositionTextLine,CTextObject>::IsOfType

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,length,address|
|ratio|0.55|
|i_ratio|0.17|
|m_ratio|0.67|
|b_ratio|0.17|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|IsOfType|IsOfType|
|fullname|CCompositionTextLineGeneratedT<CCompositionTextLine,CTextObject>::IsOfType|CCompositionTextLineGeneratedT<CCompositionTextLine,CTextObject>::IsOfType|
|refcount|2|2|
|`length`|12|19|
|called|||
|calling|||
|paramcount|2|2|
|`address`|18027a470|180278ab0|
|sig|bool __thiscall IsOfType(CCompositionTextLineGeneratedT<CCompositionTextLine,CTextObject> * this, MIL_RESOURCE_TYPE param_1)|bool __thiscall IsOfType(CCompositionTextLineGeneratedT<CCompositionTextLine,CTextObject> * this, MIL_RESOURCE_TYPE param_1)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### CCompositionTextLineGeneratedT<CCompositionTextLine,CTextObject>::IsOfType Diff


```diff
--- CCompositionTextLineGeneratedT<CCompositionTextLine,CTextObject>::IsOfType
+++ CCompositionTextLineGeneratedT<CCompositionTextLine,CTextObject>::IsOfType
@@ -1,13 +1,16 @@
 
 /* public: virtual bool __cdecl CCompositionTextLineGeneratedT<class CCompositionTextLine,class
    CTextObject>::IsOfType(enum MIL_RESOURCE_TYPE)const __ptr64 */
 
 bool __thiscall
 CCompositionTextLineGeneratedT<CCompositionTextLine,CTextObject>::IsOfType
           (CCompositionTextLineGeneratedT<CCompositionTextLine,CTextObject> *this,
           MIL_RESOURCE_TYPE param_1)
 
 {
-  return (param_1 - 0x2a & 0xffffff7f) == 0;
+  if ((param_1 != 0x2b) && (param_1 != 0xac)) {
+    return false;
+  }
+  return true;
 }
 

```


## COverlayContext::IsCursorScaledByHardware

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,length,sig,address,calling|
|ratio|0.39|
|i_ratio|0.35|
|m_ratio|0.97|
|b_ratio|0.74|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|IsCursorScaledByHardware|IsCursorScaledByHardware|
|fullname|COverlayContext::IsCursorScaledByHardware|COverlayContext::IsCursorScaledByHardware|
|refcount|2|2|
|`length`|128|125|
|called|COverlayContext::GetMonitorTransform|COverlayContext::GetMonitorTransform|
|`calling`|COverlayContext::TryEnableHardwareCursor|COverlayContext::UpdateHardwareCursor|
|paramcount|2|1|
|`address`|18026f4ec|18026db50|
|`sig`|bool __thiscall IsCursorScaledByHardware(COverlayContext * this, CD3DDevice * param_1)|bool __thiscall IsCursorScaledByHardware(COverlayContext * this)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### COverlayContext::IsCursorScaledByHardware Calling Diff


```diff
--- COverlayContext::IsCursorScaledByHardware calling
+++ COverlayContext::IsCursorScaledByHardware calling
@@ -1 +1 @@
-COverlayContext::TryEnableHardwareCursor
+COverlayContext::UpdateHardwareCursor
```


### COverlayContext::IsCursorScaledByHardware Diff


```diff
--- COverlayContext::IsCursorScaledByHardware
+++ COverlayContext::IsCursorScaledByHardware
@@ -1,38 +1,24 @@
 
-/* public: bool __cdecl COverlayContext::IsCursorScaledByHardware(class CD3DDevice const *
-   __ptr64)const __ptr64 */
+/* public: bool __cdecl COverlayContext::IsCursorScaledByHardware(void)const __ptr64 */
 
-bool __thiscall COverlayContext::IsCursorScaledByHardware(COverlayContext *this,CD3DDevice *param_1)
+bool __thiscall COverlayContext::IsCursorScaledByHardware(COverlayContext *this)
 
 {
   longlong lVar1;
   CMonitorTransform *pCVar2;
   
-  pCVar2 = GetMonitorTransform(this);
-  if (pCVar2[0x103] == (CMonitorTransform)0x0) {
-    return false;
-  }
-  if (*(longlong *)(this + 0x4bb0) == 0) {
-    if (this[0x4a90] == (COverlayContext)0x0) {
-      lVar1 = *(longlong *)(this + 0x3188);
-      if (((*(longlong *)(this + 0x3190) - lVar1 != 0x188) || (*(int *)(lVar1 + 0x178) != 0)) ||
-         ((*(byte *)(lVar1 + 0x20) & 4) == 0)) {
-        if (this[0x4a91] == (COverlayContext)0x0) {
-          return false;
-        }
-        goto LAB_0;
-      }
+  if (((*(longlong *)(this + 0x4c38) == 0) ||
+      ((pCVar2 = GetMonitorTransform(this), pCVar2[0x100] == (CMonitorTransform)0x0 &&
+       (pCVar2[0x103] == (CMonitorTransform)0x0)))) &&
+     ((lVar1 = *(longlong *)(this + 0x3188), *(longlong *)(this + 0x3190) - lVar1 != 0x188 ||
+      ((*(int *)(lVar1 + 0x178) != 0 || ((*(byte *)(lVar1 + 0x20) & 4) == 0)))))) {
+    if (this[0x4a91] == (COverlayContext)0x0) {
+      return false;
     }
-    else {
-      if (this[0x4a91] == (COverlayContext)0x0) {
-        return false;
-      }
-      if (((byte)this[0x4a20] & 4) == 0) {
-LAB_0:
-        return this[0x4bf5] != (COverlayContext)0x0;
-      }
+    if (this[0x4c7d] == (COverlayContext)0x0) {
+      return (bool)((byte)(*(uint *)(this + 0x4a20) >> 2) & 1);
     }
   }
   return true;
 }
 

```


## CCursorVisual::HasVisibleCursor

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,length,address,calling,called|
|ratio|0.46|
|i_ratio|0.08|
|m_ratio|0.8|
|b_ratio|0.72|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|HasVisibleCursor|HasVisibleCursor|
|fullname|CCursorVisual::HasVisibleCursor|CCursorVisual::HasVisibleCursor|
|refcount|4|4|
|`length`|32|46|
|`called`||CCursorState::HasVisibleShape|
|`calling`|CCursorVisual::CollectOcclusion<br>CCursorVisual::RenderContent|CCursorVisual::RenderContent|
|paramcount|1|1|
|`address`|1802943a0|180293270|
|sig|bool __thiscall HasVisibleCursor(CCursorVisual * this)|bool __thiscall HasVisibleCursor(CCursorVisual * this)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### CCursorVisual::HasVisibleCursor Called Diff


```diff
--- CCursorVisual::HasVisibleCursor called
+++ CCursorVisual::HasVisibleCursor called
@@ -0,0 +1 @@
+CCursorState::HasVisibleShape
```


### CCursorVisual::HasVisibleCursor Calling Diff


```diff
--- CCursorVisual::HasVisibleCursor calling
+++ CCursorVisual::HasVisibleCursor calling
@@ -1 +0,0 @@
-CCursorVisual::CollectOcclusion
```


### CCursorVisual::HasVisibleCursor Diff


```diff
--- CCursorVisual::HasVisibleCursor
+++ CCursorVisual::HasVisibleCursor
@@ -1,17 +1,19 @@
 
 /* public: virtual bool __cdecl CCursorVisual::HasVisibleCursor(void)const __ptr64 */
 
 bool __thiscall CCursorVisual::HasVisibleCursor(CCursorVisual *this)
 
 {
   bool bVar1;
+  undefined1 uVar2;
   
-  bVar1 = false;
-  if (((*(longlong *)(this + 0x2c0) != 0) &&
-      (*(longlong *)(*(longlong *)(this + 0x2c0) + 0xb0) != 0)) && (((byte)this[0x6a] & 0x40) != 0))
-  {
-    bVar1 = true;
+  uVar2 = 0;
+  if (*(CCursorState **)(this + 0x2c0) != (CCursorState *)0x0) {
+    bVar1 = CCursorState::HasVisibleShape(*(CCursorState **)(this + 0x2c0));
+    if ((bVar1) && (((byte)this[0x6a] & 0x40) != 0)) {
+      uVar2 = 1;
+    }
   }
-  return bVar1;
+  return (bool)uVar2;
 }
 

```


## wil::details::FeatureImpl<__WilFeatureTraits_Feature_GatePerf>::GetCurrentFeatureEnabledState

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.27|
|i_ratio|0.38|
|m_ratio|0.74|
|b_ratio|0.66|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|GetCurrentFeatureEnabledState|GetCurrentFeatureEnabledState|
|fullname|wil::details::FeatureImpl<__WilFeatureTraits_Feature_GatePerf>::GetCurrentFeatureEnabledState|wil::details::FeatureImpl<__WilFeatureTraits_Feature_GatePerf>::GetCurrentFeatureEnabledState|
|refcount|2|2|
|`length`|220|127|
|`called`|wil::details::FeatureImpl<__WilFeatureTraits_Feature_ImplVal>::ReportUsage<br>wil::details::FeatureImpl<__WilFeatureTraits_Feature_Standalone_25_06_NonSec>::ReportUsage<br>wil::details::WilApi_GetFeatureEnabledState|wil::details::WilApi_GetFeatureEnabledState|
|calling|wil::details::FeatureImpl<__WilFeatureTraits_Feature_GatePerf>::GetCachedFeatureEnabledState|wil::details::FeatureImpl<__WilFeatureTraits_Feature_GatePerf>::GetCachedFeatureEnabledState|
|paramcount|2|2|
|`address`|18025efe4|18025ca74|
|sig|wil_details_FeatureStateCache __thiscall GetCurrentFeatureEnabledState(FeatureImpl<__WilFeatureTraits_Feature_GatePerf> * this, int * param_1)|wil_details_FeatureStateCache __thiscall GetCurrentFeatureEnabledState(FeatureImpl<__WilFeatureTraits_Feature_GatePerf> * this, int * param_1)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### wil::details::FeatureImpl<__WilFeatureTraits_Feature_GatePerf>::GetCurrentFeatureEnabledState Called Diff


```diff
--- wil::details::FeatureImpl<__WilFeatureTraits_Feature_GatePerf>::GetCurrentFeatureEnabledState called
+++ wil::details::FeatureImpl<__WilFeatureTraits_Feature_GatePerf>::GetCurrentFeatureEnabledState called
@@ -1,2 +0,0 @@
-wil::details::FeatureImpl<__WilFeatureTraits_Feature_ImplVal>::ReportUsage
-wil::details::FeatureImpl<__WilFeatureTraits_Feature_Standalone_25_06_NonSec>::ReportUsage
```


### wil::details::FeatureImpl<__WilFeatureTraits_Feature_GatePerf>::GetCurrentFeatureEnabledState Diff


```diff
--- wil::details::FeatureImpl<__WilFeatureTraits_Feature_GatePerf>::GetCurrentFeatureEnabledState
+++ wil::details::FeatureImpl<__WilFeatureTraits_Feature_GatePerf>::GetCurrentFeatureEnabledState
@@ -1,61 +1,28 @@
 
 /* private: union wil_details_FeatureStateCache __cdecl wil::details::FeatureImpl<struct
    __WilFeatureTraits_Feature_GatePerf>::GetCurrentFeatureEnabledState(int * __ptr64) __ptr64 */
 
 int * __thiscall
 wil::details::FeatureImpl<__WilFeatureTraits_Feature_GatePerf>::GetCurrentFeatureEnabledState
           (FeatureImpl<__WilFeatureTraits_Feature_GatePerf> *this,int *param_1)
 
 {
-  bool bVar1;
-  FEATURE_ENABLED_STATE FVar2;
+  FEATURE_ENABLED_STATE FVar1;
+  uint uVar2;
+  int *in_R8;
   uint uVar3;
-  bool bVar4;
-  uint uVar5;
-  uint uVar6;
-  ReportingKind RVar7;
-  int *in_R8;
-  FEATURE_ENABLED_STATE FVar8;
-  __uint64 _Var9;
   
-  FVar2 = WilApi_GetFeatureEnabledState(0x33b9b30,3,in_R8);
+  FVar1 = WilApi_GetFeatureEnabledState(0x33b9b30,3,in_R8);
   param_1[0] = 0;
   param_1[1] = 0;
-  FVar8 = FVar2 & 0xffffff3f;
-  _Var9 = (__uint64)FVar8;
-  uVar5 = -(uint)((FVar2 & 0x40) != 0) & 0x800 | -(uint)((FVar2 & 0x80) != 0) & 0x400;
-  uVar6 = uVar5 | (FVar2 & 3) << 7;
-  *param_1 = uVar6;
-  if (FVar8 == 0) {
+  uVar2 = -(uint)((FVar1 & 0x40) != 0) & 0x800 | -(uint)((FVar1 & 0x80) != 0) & 0x400 |
+          (FVar1 & 3) << 7;
+  *param_1 = uVar2;
+  uVar3 = 0x40;
+  if (((FVar1 & 0xffffff3f) != 0) && (uVar3 = 0, (FVar1 & 0xffffff3f) == 2)) {
     uVar3 = 0x40;
   }
-  else {
-    uVar3 = 0;
-    if (FVar8 == 2) {
-      uVar3 = 0x40;
-    }
-  }
-  uVar6 = uVar6 | uVar3;
-  bVar4 = SUB41(uVar6,0);
-  RVar7 = 0xc00;
-  *param_1 = uVar6;
-  bVar1 = false;
-  uVar6 = 1;
-  if ((uVar5 == 0xc00) || (uVar3 != 0)) {
-    FeatureImpl<__WilFeatureTraits_Feature_ImplVal>::ReportUsage
-              ((FeatureImpl<__WilFeatureTraits_Feature_ImplVal> *)
-               &`private:_static_class_wil::details::FeatureImpl<__WilFeatureTraits_Feature_ImplVal>&___ptr64___cdecl_wil::Feature<__WilFeatureTraits_Feature_ImplVal>::GetImpl(void)'
-                ::__l2::impl,bVar4,0xc00,_Var9);
-    FeatureImpl<__WilFeatureTraits_Feature_Standalone_25_06_NonSec>::ReportUsage
-              ((FeatureImpl<__WilFeatureTraits_Feature_Standalone_25_06_NonSec> *)
-               &`private:_static_class_wil::details::FeatureImpl<__WilFeatureTraits_Feature_Standalone_25_06_NonSec>&___ptr64___cdecl_wil::Feature<__WilFeatureTraits_Feature_Standalone_25_06_NonSec>::GetImpl(void)'
-                ::__l2::impl,bVar4,RVar7,_Var9);
-    bVar1 = true;
-  }
-  if (((*param_1 & 0x40U) == 0) || (!bVar1)) {
-    uVar6 = 0;
-  }
-  *param_1 = *param_1 & 0xfffffffeU | uVar6;
+  *param_1 = uVar2 | uVar3 | 1;
   return param_1;
 }
 

```


## CDrawingContext::PushEffects

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,refcount,length,address,called|
|ratio|0.1|
|i_ratio|0.04|
|m_ratio|0.7|
|b_ratio|0.05|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|PushEffects|PushEffects|
|fullname|CDrawingContext::PushEffects|CDrawingContext::PushEffects|
|`refcount`|5|2|
|`length`|1517|2865|
|`called`|<details><summary>Expand for full list:<br>AlignRectFToPointAndSizeL<br>CColorTransformLayer::Create<br>CColorTransformLayer::`scalar_deleting_destructor'<br>CDrawingContext::ComputeExternalLayerOffsetAndBounds<br>CDrawingContext::GetClipBoundsWorld<br>CDrawingContext::PushColorSpaceLayer<br>CDrawingContext::PushEffectLayer<br>CDrawingContext::PushLayer<br>CDrawingContext::PushLocalSpaceClipAndAlphaInternal<br>CDrawingContext::PushNoOpLayer<br>CDrawingContext::PushResampleLayer</summary>CMILMatrix::Get2DScaleDimensionsWithPerspective<br>CMatrixStack::Top<br>CVisual::GetColorSpace<br>CVisual::GetEffectInternal<br>MilInstrumentationCheckHR_MaybeFailFast<br>_guard_dispatch_icall$thunk$10345483385596137414</details>|<details><summary>Expand for full list:<br>API-MS-WIN-CORE-HEAP-L1-1-0.DLL::GetProcessHeap<br>API-MS-WIN-CORE-HEAP-L1-1-0.DLL::HeapAlloc<br>CColorTransformLayer::Create<br>CDrawingContext::GetClipBoundsWorld<br>CDrawingContext::NodeEffects::HasEffects<br>CDrawingContext::PushEffectLayer<br>CDrawingContext::PushLayer<br>CDrawingContext::PushLocalSpaceClipAndAlphaInternal<br>CExternalLayer::CExternalLayer<br>CExternalLayer::CreateBitmap<br>CMILMatrix::Get2DScaleDimensionsWithPerspective</summary>CMatrixStack::Top<br>CResampleLayer::Create<br>CVisual::GetColorSpace<br>CVisual::GetColorTransform<br>CVisual::GetEffectInternal<br>CWatermarkStack<CDrawingContext::StackStateEntry,64,2,10>::Push<br>IsDXGIColorSpaceHDR<br>MilInstrumentationCheckHR_MaybeFailFast<br>ModuleFailFastForHRESULT<br>PixelAlign<br>_guard_dispatch_icall$thunk$10345483385596137414<br>operator_delete[]</details>|
|calling|CDrawingContext::PreSubgraph|CDrawingContext::PreSubgraph|
|paramcount|7|7|
|`address`|180084ab0|180230ce0|
|sig|long __thiscall PushEffects(CDrawingContext * this, NodeEffects * param_1, TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> * param_2, CFilterEffect * param_3, TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> * param_4, TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> * param_5, bool * param_6)|long __thiscall PushEffects(CDrawingContext * this, NodeEffects * param_1, TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> * param_2, CFilterEffect * param_3, TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> * param_4, TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> * param_5, bool * param_6)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### CDrawingContext::PushEffects Called Diff


```diff
--- CDrawingContext::PushEffects called
+++ CDrawingContext::PushEffects called
@@ -1 +1,2 @@
-AlignRectFToPointAndSizeL
+API-MS-WIN-CORE-HEAP-L1-1-0.DLL::GetProcessHeap
+API-MS-WIN-CORE-HEAP-L1-1-0.DLL::HeapAlloc
@@ -3,2 +3,0 @@
-CColorTransformLayer::`scalar_deleting_destructor'
-CDrawingContext::ComputeExternalLayerOffsetAndBounds
@@ -6 +5 @@
-CDrawingContext::PushColorSpaceLayer
+CDrawingContext::NodeEffects::HasEffects
@@ -10,2 +9,2 @@
-CDrawingContext::PushNoOpLayer
-CDrawingContext::PushResampleLayer
+CExternalLayer::CExternalLayer
+CExternalLayer::CreateBitmap
@@ -13,0 +13 @@
+CResampleLayer::Create
@@ -14,0 +15 @@
+CVisual::GetColorTransform
@@ -15,0 +17,2 @@
+CWatermarkStack<CDrawingContext::StackStateEntry,64,2,10>::Push
+IsDXGIColorSpaceHDR
@@ -16,0 +20,2 @@
+ModuleFailFastForHRESULT
+PixelAlign
@@ -17,0 +23 @@
+operator_delete[]
```


### CDrawingContext::PushEffects Diff


```diff
--- CDrawingContext::PushEffects
+++ CDrawingContext::PushEffects
@@ -1,277 +1,435 @@
 
 /* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
    guard_dispatch_icall */
 /* public: long __cdecl CDrawingContext::PushEffects(struct CDrawingContext::NodeEffects &
    __ptr64,class TMilRect_<float,struct D2D_RECT_F,struct D3D_RECT_F,struct
    D2D_POINTANDSIZE_F,struct RectUniqueness::NotNeeded> const * __ptr64,class CFilterEffect *
    __ptr64,class TMilRect_<float,struct D2D_RECT_F,struct D3D_RECT_F,struct
    D2D_POINTANDSIZE_F,struct RectUniqueness::NotNeeded> const * __ptr64,class TMilRect_<float,struct
    D2D_RECT_F,struct D3D_RECT_F,struct D2D_POINTANDSIZE_F,struct RectUniqueness::NotNeeded> const *
    __ptr64,bool * __ptr64) __ptr64 */
 
 long __thiscall
 CDrawingContext::PushEffects
           (CDrawingContext *this,NodeEffects *param_1,
           TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
           *param_2,CFilterEffect *param_3,
           TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
           *param_4,TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
                    *param_5,bool *param_6)
 
 {
   longlong lVar1;
   CVisual *pCVar2;
-  uint *puVar3;
-  undefined8 uVar4;
-  bool bVar5;
-  bool *pbVar6;
-  long lVar7;
+  CColorTransformLayer *pCVar3;
+  float fVar4;
+  float fVar5;
+  bool bVar6;
+  D2D_SIZE_F DVar7;
   long lVar8;
-  DXGI_COLOR_SPACE_TYPE DVar9;
-  CEffect *pCVar10;
-  uint uVar11;
-  CResource *pCVar12;
-  longlong lVar13;
-  uint *puVar14;
-  CColorTransformLayer *this_00;
+  int iVar9;
+  int iVar10;
+  int iVar11;
+  long lVar12;
+  DXGI_COLOR_SPACE_TYPE DVar13;
+  CEffect *pCVar14;
   undefined8 *puVar15;
-  CColorTransformResource *pCVar16;
-  float fVar17;
-  CFilterEffect *local_res20;
-  uint uVar18;
-  undefined8 local_b8;
-  undefined8 uStack_b0;
-  undefined8 local_a8;
-  undefined8 uStack_a0;
-  undefined8 local_98;
-  undefined8 uStack_90;
-  undefined8 local_88;
-  undefined8 uStack_80;
-  undefined8 local_78;
-  undefined8 uStack_70;
-  undefined8 local_68;
-  undefined8 uStack_60;
-  undefined4 local_58;
+  RenderTargetInfo *pRVar16;
+  HANDLE hHeap;
+  CExternalLayer *this_00;
+  uint uVar17;
+  CResource *pCVar18;
+  undefined4 uVar19;
+  NodeEffects *pNVar20;
+  longlong lVar21;
+  CColorTransformLayer *pCVar22;
+  bool *pbVar23;
+  undefined1 uVar24;
+  TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> *pTVar25;
+  CVisual **ppCVar26;
+  longlong *plVar27;
+  bool *pbVar28;
+  float fVar29;
+  undefined8 unaff_retaddr;
+  CVisual *local_res10;
+  TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> *local_res18;
+  CColorTransformLayer *local_res20;
+  float local_128 [2];
+  undefined8 uStack_120;
+  undefined8 local_118;
+  DXGI_COLOR_SPACE_TYPE local_110;
+  undefined8 local_108;
+  undefined8 uStack_100;
+  undefined8 local_f8;
+  undefined8 uStack_f0;
+  undefined8 local_e8;
+  undefined8 uStack_e0;
+  undefined8 local_d8;
+  undefined8 uStack_d0;
+  undefined4 local_c8;
+  char *local_b8;
+  undefined4 local_b0;
+  undefined1 local_a8 [112];
   
-  pbVar6 = param_6;
-  fVar17 = *(float *)(param_1 + 0x24);
+  pbVar23 = param_6;
+  this_00 = (CExternalLayer *)0x0;
+  fVar29 = *(float *)(param_1 + 0x24);
   *param_6 = false;
-  if (ABS(fVar17) < 1.1920929e-06) {
+  if (ABS(fVar29) < 1.1920929e-06) {
     *param_6 = true;
     return 0;
   }
-  local_res20 = param_3;
-  if ((((*(longlong *)(param_1 + 8) == 0) && (param_1[0xb9] == (NodeEffects)0x0)) &&
-      (param_1[0xba] == (NodeEffects)0x0)) &&
-     (((param_1[0xbb] == (NodeEffects)0x0 && (param_1[0xbc] == (NodeEffects)0x0)) &&
-      ((*(int *)(param_1 + 0x20) == 0 && (ABS(fVar17 - 1.0) < 1.1920929e-06)))))) {
-    lVar7 = PushNoOpLayer(this,*(CVisual **)param_1);
-    if (-1 < lVar7) {
-      return lVar7;
-    }
-    uVar18 = 0xda6;
+  pNVar20 = param_1;
+  local_res18 = param_2;
+  local_res20 = (CColorTransformLayer *)param_3;
+  bVar6 = NodeEffects::HasEffects(param_1);
+  if (!bVar6) {
+    uStack_120 = *(undefined8 *)pNVar20;
+    local_128[0] = 9.80909e-45;
+    local_128[1] = 0.0;
+    lVar8 = CWatermarkStack<CDrawingContext::StackStateEntry,64,2,10>::Push
+                      ((CWatermarkStack<CDrawingContext::StackStateEntry,64,2,10> *)(this + 0x108),
+                       (StackStateEntry *)local_128);
+    if (-1 < lVar8) {
+      return lVar8;
+    }
+    uVar17 = 0xda6;
     goto LAB_0;
   }
-  lVar7 = PushLocalSpaceClipAndAlphaInternal(this,param_2,param_1,param_6);
-  if (lVar7 < 0) {
-    uVar18 = 0xdac;
+  pNVar20 = param_1;
+  lVar8 = PushLocalSpaceClipAndAlphaInternal(this,param_2,param_1,pbVar23);
+  uVar24 = SUB81(pNVar20,0);
+  if (lVar8 < 0) {
+    uVar17 = 0xdac;
     goto LAB_0;
   }
-  if (*pbVar6 != false) {
-    return lVar7;
-  }
-  bVar5 = false;
+  if (*pbVar23 != false) {
+    return lVar8;
+  }
+  local_res20 = (CColorTransformLayer *)((ulonglong)local_res20 & 0xffffffffffffff00);
   if (param_1[0xb9] != (NodeEffects)0x0) {
-    pCVar2 = *(CVisual **)param_1;
-    puVar3 = *(uint **)(pCVar2 + 0xe8);
-    if ((*puVar3 & 0x4000000) == 0) {
-      pCVar16 = (CColorTransformResource *)0x0;
+    local_118 = *(CVisual **)param_1;
+    local_res10 = (CVisual *)CVisual::GetColorTransform(local_118);
+    local_res20 = (CColorTransformLayer *)0x0;
+    local_128[0] = 0.0;
+    local_128[1] = 0.0;
+    uStack_120 = 0;
+    GetClipBoundsWorld(this,(TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
+                             *)local_128,(bool)uVar24);
+    fVar29 = (float)uStack_120;
+    if ((float)uStack_120 < local_128[0]) {
+LAB_1:
+      MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,-0x7767fff6,0x47,(void *)0x0);
+      MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,-0x7767fff6,0xe49,(void *)0x0);
+      uVar24 = 0;
+      MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,-0x7767fff6,0xed5,(void *)0x0);
+      pCVar22 = (CColorTransformLayer *)(CResource *)0x0;
     }
     else {
-      uVar18 = puVar3[1];
-      puVar14 = puVar3 + 2;
-      uVar11 = 0;
-      if (uVar18 != 0) {
-        do {
-          if ((char)*puVar14 == '\x06') break;
-          uVar11 = uVar11 + 1;
-          puVar14 = (uint *)((longlong)puVar14 + 1);
-        } while (uVar11 < uVar18);
-      }
-      if (uVar11 < uVar18) {
-        puVar15 = (undefined8 *)
-                  (((ulonglong)uVar11 * 8 - (ulonglong)((uint)((ulonglong)uVar18 + 0xf) & 7)) +
-                   (ulonglong)uVar18 + 0xf + (longlong)puVar3);
+      fVar5 = uStack_120._4_4_;
+      fVar4 = local_128[1];
+      if (((((uStack_120._4_4_ < local_128[1]) || (local_128[0] < -2.1474836e+09)) ||
+           (2.1474836e+09 < local_128[0])) ||
+          ((local_128[1] < -2.1474836e+09 || (2.1474836e+09 < local_128[1])))) ||
+         ((2.1474836e+09 < (float)uStack_120 || (2.1474836e+09 < uStack_120._4_4_))))
+      goto LAB_1;
+      iVar9 = PixelAlign(local_128[0],0);
+      local_128[0] = (float)iVar9;
+      iVar10 = PixelAlign(fVar4,0);
+      local_128[1] = (float)iVar10;
+      iVar11 = PixelAlign(fVar29,1);
+      uStack_120 = CONCAT44(uStack_120._4_4_,iVar11 - iVar9);
+      iVar9 = PixelAlign(fVar5,1);
+      uStack_120 = CONCAT44(iVar9 - iVar10,(float)uStack_120);
+      lVar12 = CColorTransformLayer::Create
+                         (*(IDeviceTarget **)(this + 0x20),(D2D_POINTANDSIZE_L *)local_128,
+                          (CColorTransformResource *)local_res10,&local_res20);
+      pCVar3 = local_res20;
+      if (lVar12 < 0) {
+        uVar24 = 0;
+        MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar12,0xeda,(void *)0x0);
+        pCVar22 = local_res20;
       }
       else {
-        puVar15 = (undefined8 *)0x0;
+        pCVar22 = local_res20;
+        lVar12 = PushLayer(this,local_118,(CLayer *)local_res20,true,true);
+        uVar24 = SUB81(pCVar22,0);
+        pCVar22 = (CColorTransformLayer *)this_00;
+        if (lVar12 < 0) {
+          uVar24 = 0;
+          MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar12,0xee0,(void *)0x0);
+          pCVar22 = pCVar3;
+        }
       }
-      pCVar16 = (CColorTransformResource *)*puVar15;
-    }
-    this_00 = (CColorTransformLayer *)0x0;
-    param_6 = (bool *)0x0;
-    local_a8 = 0;
-    uStack_a0 = 0;
-    local_b8 = 0;
-    uStack_b0 = 0;
-    GetClipBoundsWorld(this,(TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
-                             *)&local_b8,SUB81(puVar3,0));
-    lVar8 = AlignRectFToPointAndSizeL
-                      ((TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
-                        *)&local_b8,(D2D_POINTANDSIZE_L *)&local_a8);
-    local_res20 = (CFilterEffect *)CONCAT44(local_res20._4_4_,lVar8);
+    }
+    if (pCVar22 != (CColorTransformLayer *)0x0) {
+      *(undefined ***)pCVar22 = &CExternalLayer::_vftable_;
+      if (*(longlong **)(pCVar22 + 8) != (longlong *)0x0) {
+        (**(code **)(**(longlong **)(pCVar22 + 8) + 0x10))();
+      }
+      operator_delete__(pCVar22,0x80);
+    }
+    local_res20 = (CColorTransformLayer *)CONCAT71(local_res20._1_7_,1);
+    pbVar23 = param_6;
+  }
+  if (param_1[0xba] == (NodeEffects)0x0) {
+    DVar7 = local_res20._0_1_;
+  }
+  else {
+    param_6 = (bool *)((ulonglong)param_6 & 0xffffffffffffff00);
+    pCVar14 = CVisual::GetEffectInternal(*(CVisual **)param_1);
+    pTVar25 = local_res18;
+    lVar8 = PushEffectLayer(this,*(CVisual **)param_1,local_res18,param_4,param_5,
+                            (CResource *)pCVar14,(bool *)&param_6);
+    uVar24 = SUB81(pTVar25,0);
     if (lVar8 < 0) {
-      MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar8,0xe4a,(void *)0x0);
-      uVar18 = 0xead;
-      lVar8 = (long)local_res20._0_4_;
-LAB_1:
-      MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar8,uVar18,(void *)0x0);
-    }
-    else {
-      lVar8 = CColorTransformLayer::Create
-                        (*(IDeviceTarget **)(this + 0x20),(D2D_POINTANDSIZE_L *)&local_a8,pCVar16,
-                         (CColorTransformLayer **)&param_6);
-      this_00 = (CColorTransformLayer *)param_6;
-      if (lVar8 < 0) {
-        MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar8,0xeb2,(void *)0x0);
-        this_00 = (CColorTransformLayer *)param_6;
-      }
-      else {
-        lVar8 = PushLayer(this,pCVar2,(CLayer *)param_6,true,true);
-        if (lVar8 < 0) {
-          uVar18 = 0xeb8;
-          goto LAB_1;
-        }
-        this_00 = (CColorTransformLayer *)0x0;
-      }
-    }
-    if (this_00 != (CColorTransformLayer *)0x0) {
-      CColorTransformLayer::_scalar_deleting_destructor_(this_00,1);
-    }
-    bVar5 = true;
-  }
-  if (param_1[0xba] != (NodeEffects)0x0) {
-    local_res20 = (CFilterEffect *)((ulonglong)local_res20 & 0xffffffffffffff00);
-    pCVar10 = CVisual::GetEffectInternal(*(CVisual **)param_1);
-    lVar7 = PushEffectLayer(this,*(CVisual **)param_1,param_2,param_4,param_5,(CResource *)pCVar10,
-                            (bool *)&local_res20);
-    if (lVar7 < 0) {
-      uVar18 = 0xdca;
+      uVar17 = 0xdca;
       goto LAB_0;
     }
-    bVar5 = true;
-    *pbVar6 = (bool)(*pbVar6 | (byte)local_res20);
+    *pbVar23 = (bool)(*pbVar23 | (byte)param_6);
+    local_res20 = (CColorTransformLayer *)CONCAT71(local_res20._1_7_,1);
+    DVar7 = (D2D_SIZE_F)0x1;
   }
   if (param_1[0xbb] != (NodeEffects)0x0) {
     puVar15 = (undefined8 *)(**(code **)(**(longlong **)param_1 + 0xe0))();
-    pCVar12 = (CResource *)0x0;
-    local_res20 = (CFilterEffect *)((ulonglong)local_res20 & 0xffffffffffffff00);
+    param_6 = (bool *)((ulonglong)param_6 & 0xffffffffffffff00);
+    pCVar18 = (CResource *)this_00;
     if (puVar15 != (undefined8 *)0x0) {
-      pCVar12 = (CResource *)*puVar15;
-    }
-    lVar7 = PushEffectLayer(this,*(CVisual **)param_1,param_2,param_4,param_5,pCVar12,
-                            (bool *)&local_res20);
-    if (lVar7 < 0) {
-      uVar18 = 0xde3;
+      pCVar18 = (CResource *)*puVar15;
+    }
+    pTVar25 = local_res18;
+    lVar8 = PushEffectLayer(this,*(CVisual **)param_1,local_res18,param_4,param_5,pCVar18,
+                            (bool *)&param_6);
+    uVar24 = SUB81(pTVar25,0);
+    if (lVar8 < 0) {
+      uVar17 = 0xde3;
       goto LAB_0;
     }
-    bVar5 = true;
-    *pbVar6 = (bool)(*pbVar6 | (byte)local_res20);
-  }
-  if (*(int *)(param_1 + 0x20) == 0) {
+    *pbVar23 = (bool)(*pbVar23 | (byte)param_6);
+    DVar7 = (D2D_SIZE_F)0x1;
+    local_res20 = (CColorTransformLayer *)CONCAT71(local_res20._1_7_,1);
+  }
+  if (*(int *)(param_1 + 0x20) != 0) {
+    local_128[0] = 0.0;
+    local_128[1] = 0.0;
+    uStack_120 = 0;
+    GetClipBoundsWorld(this,(TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
+                             *)local_128,(bool)uVar24);
+    fVar29 = (float)uStack_120;
+    if (local_128[0] <= (float)uStack_120) {
+      fVar5 = uStack_120._4_4_;
+      fVar4 = local_128[1];
+      if ((((local_128[1] <= uStack_120._4_4_) && (-2.1474836e+09 <= local_128[0])) &&
+          ((local_128[0] <= 2.1474836e+09 &&
+           (((-2.1474836e+09 <= local_128[1] && (local_128[1] <= 2.1474836e+09)) &&
+            ((float)uStack_120 <= 2.1474836e+09)))))) && (uStack_120._4_4_ <= 2.1474836e+09)) {
+        iVar9 = PixelAlign(local_128[0],0);
+        local_128[0] = (float)iVar9;
+        iVar10 = PixelAlign(fVar4,0);
+        local_128[1] = (float)iVar10;
+        iVar11 = PixelAlign(fVar29,1);
+        uStack_120 = CONCAT44(uStack_120._4_4_,iVar11 - iVar9);
+        iVar9 = PixelAlign(fVar5,1);
+        uStack_120 = CONCAT44(iVar9 - iVar10,(float)uStack_120);
+        local_108 = 0x3f800000;
+        uStack_100 = 0;
+        local_f8 = 0x3f80000000000000;
+        uStack_f0 = 0;
+        local_e8 = 0;
+        uStack_e0 = 0x3f800000;
+        local_d8 = 0;
+        uStack_d0 = 0x3f80000000000000;
+        if (*(int *)(this + 0x128) == 0) {
+          local_c8 = 0x29aa;
+        }
+        else {
+          lVar1 = *(longlong *)(this + 0x120);
+          lVar21 = (ulonglong)(*(int *)(this + 0x128) - 1) * 0x44;
+          local_108 = *(undefined8 *)(lVar21 + lVar1);
+          uStack_100 = ((undefined8 *)(lVar21 + lVar1))[1];
+          puVar15 = (undefined8 *)(lVar21 + 0x10 + lVar1);
+          local_f8 = *puVar15;
+          uStack_f0 = puVar15[1];
+          puVar15 = (undefined8 *)(lVar21 + 0x20 + lVar1);
+          local_e8 = *puVar15;
+          uStack_e0 = puVar15[1];
+          puVar15 = (undefined8 *)(lVar21 + 0x30 + lVar1);
+          local_d8 = *puVar15;
+          uStack_d0 = puVar15[1];
+          local_c8 = *(undefined4 *)(lVar21 + 0x40 + lVar1);
+        }
+        param_6 = (bool *)((ulonglong)param_6 & 0xffffffff00000000);
+        ppCVar26 = &local_res10;
+        local_res10 = (CVisual *)((ulonglong)local_res10 & 0xffffffff00000000);
+        CMILMatrix::Get2DScaleDimensionsWithPerspective
+                  ((CMILMatrix *)&local_108,(float *)&param_6,(float *)ppCVar26,
+                   (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
+                    *)0x0);
+        uVar24 = SUB81(ppCVar26,0);
+        if (param_6._0_4_ <= 1.0) {
+          fVar29 = 1.0 - param_6._0_4_;
+        }
+        else {
+          fVar29 = param_6._0_4_ - 1.0;
+        }
+        if (fVar29 <= 1e-05) {
+          if (local_res10._0_4_ <= 1.0) {
+            fVar29 = 1.0 - local_res10._0_4_;
+          }
+          else {
+            fVar29 = local_res10._0_4_ - 1.0;
+          }
+          if (fVar29 <= 1e-05) {
+            DVar7 = local_res20._0_1_;
+            lVar8 = 0;
+            goto LAB_2;
+          }
+        }
+        pCVar2 = *(CVisual **)param_1;
+        local_res20 = (CColorTransformLayer *)CONCAT44(local_res10._0_4_,param_6._0_4_);
+        local_res10._0_5_ = (uint5)(uint)local_res10._0_4_;
+        param_6 = (bool *)0x0;
+        lVar8 = CResampleLayer::Create
+                          (*(IDeviceTarget **)(this + 0x20),*(Enum *)(param_1 + 0x20),
+                           (D2D_POINTANDSIZE_L *)local_128,(D2D_SIZE_F *)&local_res20,
+                           (optional<float> *)&local_res10,(CResampleLayer **)&param_6);
+        pbVar23 = param_6;
+        if (lVar8 < 0) {
+          uVar24 = 0;
+          MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar8,0xfb6,(void *)0x0);
+          pCVar18 = (CResource *)param_6;
+        }
+        else {
+          pbVar28 = param_6;
+          lVar8 = PushLayer(this,pCVar2,(CLayer *)param_6,true,true);
+          uVar24 = SUB81(pbVar28,0);
+          pCVar18 = (CResource *)this_00;
+          if (lVar8 < 0) {
+            uVar24 = 0;
+            MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar8,0xfbc,(void *)0x0);
+            pCVar18 = (CResource *)pbVar23;
+          }
+        }
+        if (pCVar18 != (CResource *)0x0) {
+          if (*(longlong **)(pCVar18 + 0x80) != (longlong *)0x0) {
+            (**(code **)(**(longlong **)(pCVar18 + 0x80) + 0x10))();
+          }
+          *(undefined ***)pCVar18 = &CExternalLayer::_vftable_;
+          if (*(longlong **)(pCVar18 + 8) != (longlong *)0x0) {
+            (**(code **)(**(longlong **)(pCVar18 + 8) + 0x10))();
+          }
+          operator_delete__(pCVar18,0xa8);
+        }
+        if (lVar8 < 0) {
+          uVar17 = 0xdfb;
+          goto LAB_0;
+        }
+        DVar7 = (D2D_SIZE_F)0x1;
+        goto LAB_2;
+      }
+    }
+    MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,-0x7767fff6,0x47,(void *)0x0);
+    MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,-0x7767fff6,0xe49,(void *)0x0);
+    lVar8 = -0x7767fff6;
+    uVar17 = 0xdec;
+LAB_0:
+    MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar8,uVar17,(void *)0x0);
+    return lVar8;
+  }
 LAB_2:
-    if (param_1[0xbc] == (NodeEffects)0x0) {
-      if (!bVar5) {
-        return lVar7;
+  if (param_1[0xbc] == (NodeEffects)0x0) {
+    if (DVar7 == (D2D_SIZE_F)0x0) {
+      return lVar8;
+    }
+  }
+  else {
+    local_res10 = *(CVisual **)param_1;
+    DVar13 = CVisual::GetColorSpace(local_res10);
+    param_6 = (bool *)CONCAT44(param_6._4_4_,DVar13);
+    local_128[0] = 0.0;
+    local_128[1] = 0.0;
+    uStack_120 = 0;
+    GetClipBoundsWorld(this,(TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
+                             *)local_128,(bool)uVar24);
+    fVar29 = (float)uStack_120;
+    if (local_128[0] <= (float)uStack_120) {
+      fVar5 = uStack_120._4_4_;
+      fVar4 = local_128[1];
+      if ((((local_128[1] <= uStack_120._4_4_) && (-2.1474836e+09 <= local_128[0])) &&
+          ((local_128[0] <= 2.1474836e+09 &&
+           ((-2.1474836e+09 <= local_128[1] && (local_128[1] <= 2.1474836e+09)))))) &&
+         (((float)uStack_120 <= 2.1474836e+09 && (uStack_120._4_4_ <= 2.1474836e+09)))) {
+        iVar9 = PixelAlign(local_128[0],0);
+        local_128[0] = (float)iVar9;
+        iVar10 = PixelAlign(fVar4,0);
+        local_128[1] = (float)iVar10;
+        iVar11 = PixelAlign(fVar29,1);
+        uStack_120 = CONCAT44(uStack_120._4_4_,iVar11 - iVar9);
+        iVar9 = PixelAlign(fVar5,1);
+        plVar27 = *(longlong **)(this + 0x20);
+        uStack_120 = CONCAT44(iVar9 - iVar10,(float)uStack_120);
+        DVar13 = (DXGI_COLOR_SPACE_TYPE)param_6._0_4_;
+        bVar6 = IsDXGIColorSpaceHDR((DXGI_COLOR_SPACE_TYPE)param_6._0_4_);
+        uVar19 = 0x57;
+        if (bVar6) {
+          uVar19 = 10;
+        }
+        local_res20 = (CColorTransformLayer *)0x0;
+        local_118 = (CVisual *)CONCAT44(1,uVar19);
+        local_110 = DVar13;
+        pRVar16 = (RenderTargetInfo *)(**(code **)(*plVar27 + 0x78))(plVar27,local_a8);
+        local_b0 = 0x2b;
+        local_b8 = "DWM Scratch Rendertarget (colorspace layer)";
+        lVar12 = CExternalLayer::CreateBitmap
+                           ((CResourceTag *)&local_b8,(D2D_POINTANDSIZE_L *)local_128,
+                            (PixelFormatInfo *)&local_118,pRVar16,1,
+                            (IRenderTargetBitmap **)&local_res20);
+        pCVar22 = local_res20;
+        param_6 = (bool *)CONCAT44(param_6._4_4_,lVar12);
+        if (lVar12 < 0) {
+          MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar12,0x20,(void *)0x0);
+        }
+        else {
+          hHeap = GetProcessHeap();
+          this_00 = HeapAlloc(hHeap,0,0x80);
+          if (this_00 == (CExternalLayer *)0x0) {
+                    /* WARNING: Subroutine does not return */
+            ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
+          }
+          CExternalLayer::CExternalLayer
+                    (this_00,(D2D_POINTANDSIZE_L *)local_128,(IRenderTargetBitmap *)pCVar22);
+          this_00[0x78] = (CExternalLayer)0x1;
+          *(undefined ***)this_00 = &CColorSpaceLayer::_vftable_;
+        }
+        if (pCVar22 != (CColorTransformLayer *)0x0) {
+          (**(code **)(*(longlong *)pCVar22 + 0x10))(pCVar22);
+        }
+        if ((int)param_6._0_4_ < 0) {
+          uVar17 = 0xe6a;
+          lVar12 = (long)param_6._0_4_;
+        }
+        else {
+          lVar12 = PushLayer(this,local_res10,(CLayer *)this_00,true,true);
+          if (-1 < lVar12) goto LAB_3;
+          uVar17 = 0xe70;
+        }
+        MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar12,uVar17,(void *)0x0);
+        if (this_00 != (CExternalLayer *)0x0) {
+          *(undefined ***)this_00 = &CExternalLayer::_vftable_;
+          if (*(longlong **)(this_00 + 8) != (longlong *)0x0) {
+            (**(code **)(**(longlong **)(this_00 + 8) + 0x10))();
+          }
+          operator_delete__(this_00,0x80);
+        }
+        goto LAB_3;
       }
     }
-    else {
-      DVar9 = CVisual::GetColorSpace(*(CVisual **)param_1);
-      PushColorSpaceLayer(this,*(CVisual **)param_1,DVar9);
-    }
-    if (*(int *)(this + 0x128) != 0) {
-      lVar1 = *(longlong *)(this + 0x120);
-      lVar13 = (ulonglong)(*(int *)(this + 0x128) - 1) * 0x44;
-      uVar4 = ((undefined8 *)(lVar13 + lVar1))[1];
-      *(undefined8 *)(param_1 + 0x28) = *(undefined8 *)(lVar13 + lVar1);
-      *(undefined8 *)(param_1 + 0x30) = uVar4;
-      puVar15 = (undefined8 *)(lVar13 + 0x10 + lVar1);
-      uVar4 = puVar15[1];
-      *(undefined8 *)(param_1 + 0x38) = *puVar15;
-      *(undefined8 *)(param_1 + 0x40) = uVar4;
-      puVar15 = (undefined8 *)(lVar13 + 0x20 + lVar1);
-      uVar4 = puVar15[1];
-      *(undefined8 *)(param_1 + 0x48) = *puVar15;
-      *(undefined8 *)(param_1 + 0x50) = uVar4;
-      puVar15 = (undefined8 *)(lVar13 + 0x30 + lVar1);
-      uVar4 = puVar15[1];
-      *(undefined8 *)(param_1 + 0x58) = *puVar15;
-      *(undefined8 *)(param_1 + 0x60) = uVar4;
-      *(undefined4 *)(param_1 + 0x68) = *(undefined4 *)(lVar13 + 0x40 + lVar1);
-      return lVar7;
-    }
-    *(undefined8 *)(param_1 + 100) = 0x3f800000;
-    *(undefined8 *)(param_1 + 0x28) = 0x3f800000;
-    *(undefined8 *)(param_1 + 0x30) = 0;
-    *(undefined4 *)(param_1 + 0x38) = 0;
-    *(undefined8 *)(param_1 + 0x3c) = 0x3f800000;
-    *(undefined8 *)(param_1 + 0x44) = 0;
-    *(undefined4 *)(param_1 + 0x4c) = 0;
-    *(undefined8 *)(param_1 + 0x50) = 0x3f800000;
-    *(undefined8 *)(param_1 + 0x58) = 0;
-    *(undefined4 *)(param_1 + 0x60) = 0;
-    param_1[0x68] = (NodeEffects)0xaa;
-    param_1[0x69] = (NodeEffects)((byte)param_1[0x69] & 0xe9 | 0x29);
-    return lVar7;
-  }
-  local_a8 = 0;
-  uStack_a0 = 0;
-  lVar7 = ComputeExternalLayerOffsetAndBounds(this,(D2D_POINTANDSIZE_L *)&local_a8);
-  if (lVar7 < 0) {
-    uVar18 = 0xdec;
-  }
-  else {
-    local_98 = 0x3f800000;
-    uStack_90 = 0;
-    local_88 = 0x3f80000000000000;
-    uStack_80 = 0;
-    local_78 = 0;
-    uStack_70 = 0x3f800000;
-    local_68 = 0;
-    uStack_60 = 0x3f80000000000000;
-    local_58 = 0x29aa;
-    CMatrixStack::Top((CMatrixStack *)(this + 0x120),(CMILMatrix *)&local_98);
-    local_res20 = (CFilterEffect *)((ulonglong)local_res20 & 0xffffffff00000000);
-    param_6 = (bool *)((ulonglong)param_6 & 0xffffffff00000000);
-    CMILMatrix::Get2DScaleDimensionsWithPerspective
-              ((CMILMatrix *)&local_98,(float *)&local_res20,(float *)&param_6,
-               (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
-                *)0x0);
-    if (local_res20._0_4_ <= 1.0) {
-      fVar17 = 1.0 - local_res20._0_4_;
-    }
-    else {
-      fVar17 = local_res20._0_4_ - 1.0;
-    }
-    if (fVar17 <= 1e-05) {
-      if (param_6._0_4_ <= 1.0) {
-        fVar17 = 1.0 - param_6._0_4_;
-      }
-      else {
-        fVar17 = param_6._0_4_ - 1.0;
-      }
-      if (fVar17 <= 1e-05) goto LAB_2;
-    }
-    lVar7 = PushResampleLayer(this,*(CVisual **)param_1,*(Enum *)(param_1 + 0x20),
-                              (D2D_POINTANDSIZE_L *)&local_a8,local_res20._0_4_,param_6._0_4_);
-    if (-1 < lVar7) {
-      bVar5 = true;
-      goto LAB_2;
-    }
-    uVar18 = 0xdfc;
-  }
-LAB_0:
-  MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar7,uVar18,(void *)0x0);
-  return lVar7;
+    MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,-0x7767fff6,0x47,(void *)0x0);
+    MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,-0x7767fff6,0xe49,(void *)0x0);
+    MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,-0x7767fff6,0xe65,(void *)0x0);
+  }
+LAB_3:
+  CMatrixStack::Top((CMatrixStack *)(this + 0x120),(CMILMatrix *)(param_1 + 0x28));
+  return lVar8;
 }
 

```


## CPreComputeContext::UpdateBVIForVisual

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,refcount,length,address,calling,called|
|ratio|0.2|
|i_ratio|0.14|
|m_ratio|0.59|
|b_ratio|0.47|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|UpdateBVIForVisual|UpdateBVIForVisual|
|fullname|CPreComputeContext::UpdateBVIForVisual|CPreComputeContext::UpdateBVIForVisual|
|`refcount`|2|3|
|`length`|641|248|
|`called`|<details><summary>Expand for full list:<br>CBackdropVisualImage::Create<br>CBackdropVisualImage::ValidateRootAndSourceRectangle<br>CMILCOMBaseWeakRefSource<CResourceDeleter>::InternalRelease<br>CMILRefCountImpl::AddReference<br>CTreeData::SetBackdropVisualImage<br>CVisual::EnsureTreeData<br>CVisual::GetVisualTreeNoRef<br>CVisualTreePath::GetDebugString<br>DwmDbg::Backdrops::IsEtwEnabled<br>DwmDbg::Backdrops::LogBrushEtwEvent<br>DwmDbg::DbgString::DbgString</summary>__security_check_cookie<br>detail::vector_facade<CVisualTreePath::VisualTreePathUnit,detail::buffer_impl<CVisualTreePath::VisualTreePathUnit,2,1,detail::liberal_expansion_policy>_>::push_back<br>detail::vector_facade<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,detail::buffer_impl<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,10,1,detail::liberal_expansion_policy>_>::~vector_facade<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,detail::buffer_impl<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,10,1,detail::liberal_expansion_policy>_><br>std::unique_ptr<class_CWeakReference<CResource>*___ptr64_[0],std::default_delete<class_CWeakReference<CResource>*___ptr64_[0]>_>::~unique_ptr<class_CWeakReference<CResource>*___ptr64_[0],std::default_delete<class_CWeakReference<CResource>*___ptr64_[0]>_><br>wil::details::in1diag3::Return_Hr</details>|CVisual::CreateOrUpdateBVI<br>__security_check_cookie<br>detail::vector_facade<CVisualTreePath::VisualTreePathUnit,detail::buffer_impl<CVisualTreePath::VisualTreePathUnit,2,1,detail::liberal_expansion_policy>_>::push_back<br>detail::vector_facade<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,detail::buffer_impl<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,10,1,detail::liberal_expansion_policy>_>::~vector_facade<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,detail::buffer_impl<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,10,1,detail::liberal_expansion_policy>_><br>wil::details::in1diag3::Return_Hr|
|`calling`|CPreComputeContext::ProcessPostSubgraphWindowBackgroundTreatment|CPreComputeContext::ProcessPostSubgraphBackdropInput<br>CPreComputeContext::ProcessPostSubgraphWindowBackgroundTreatment|
|paramcount|5|5|
|`address`|18017f068|18000ab78|
|sig|long __thiscall UpdateBVIForVisual(CPreComputeContext * this, CVisual * param_1, TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> * param_2, bool param_3, bool * param_4)|long __thiscall UpdateBVIForVisual(CPreComputeContext * this, CVisual * param_1, TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> * param_2, bool param_3, bool * param_4)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### CPreComputeContext::UpdateBVIForVisual Called Diff


```diff
--- CPreComputeContext::UpdateBVIForVisual called
+++ CPreComputeContext::UpdateBVIForVisual called
@@ -1,11 +1 @@
-CBackdropVisualImage::Create
-CBackdropVisualImage::ValidateRootAndSourceRectangle
-CMILCOMBaseWeakRefSource<CResourceDeleter>::InternalRelease
-CMILRefCountImpl::AddReference
-CTreeData::SetBackdropVisualImage
-CVisual::EnsureTreeData
-CVisual::GetVisualTreeNoRef
-CVisualTreePath::GetDebugString
-DwmDbg::Backdrops::IsEtwEnabled
-DwmDbg::Backdrops::LogBrushEtwEvent
-DwmDbg::DbgString::DbgString
+CVisual::CreateOrUpdateBVI
@@ -15 +4,0 @@
-std::unique_ptr<class_CWeakReference<CResource>*___ptr64_[0],std::default_delete<class_CWeakReference<CResource>*___ptr64_[0]>_>::~unique_ptr<class_CWeakReference<CResource>*___ptr64_[0],std::default_delete<class_CWeakReference<CResource>*___ptr64_[0]>_>
```


### CPreComputeContext::UpdateBVIForVisual Calling Diff


```diff
--- CPreComputeContext::UpdateBVIForVisual calling
+++ CPreComputeContext::UpdateBVIForVisual calling
@@ -0,0 +1 @@
+CPreComputeContext::ProcessPostSubgraphBackdropInput
```


### CPreComputeContext::UpdateBVIForVisual Diff


```diff
--- CPreComputeContext::UpdateBVIForVisual
+++ CPreComputeContext::UpdateBVIForVisual
@@ -1,128 +1,60 @@
 
 /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
 /* private: long __cdecl CPreComputeContext::UpdateBVIForVisual(class CVisual * __ptr64,class
    TMilRect_<float,struct D2D_RECT_F,struct D3D_RECT_F,struct D2D_POINTANDSIZE_F,struct
    RectUniqueness::NotNeeded> const & __ptr64,bool,bool * __ptr64)const __ptr64 */
 
 long __thiscall
 CPreComputeContext::UpdateBVIForVisual
           (CPreComputeContext *this,CVisual *param_1,
           TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
           *param_2,bool param_3,bool *param_4)
 
 {
-  longlong *plVar1;
-  CVisual *this_00;
-  longlong lVar2;
-  bool bVar3;
-  long lVar4;
-  CTreeData *this_01;
-  longlong lVar5;
-  CVisualTree *pCVar6;
-  undefined8 *puVar7;
-  undefined8 uVar8;
-  undefined8 uVar9;
-  longlong *plVar10;
-  CBackdropVisualImage *this_02;
-  longlong *plVar11;
+  long lVar1;
   void *unaff_retaddr;
-  undefined1 auStackY_c8 [32];
-  CBackdropVisualImage *local_98;
-  CVisualTree *local_90;
-  undefined8 local_88;
-  undefined8 local_80;
-  longlong *local_78;
-  longlong *local_70;
-  ulonglong *local_68;
-  longlong local_60 [4];
-  ulonglong local_40;
+  undefined1 auStackY_98 [32];
+  undefined8 local_68;
+  undefined8 local_60;
+  undefined1 *local_58;
+  undefined1 *local_50;
+  ulonglong *local_48;
+  undefined1 local_40 [32];
+  ulonglong local_20;
   
-  local_40 = __security_cookie ^ (ulonglong)auStackY_c8;
-  if ((*(float *)param_2 <= *(float *)(param_2 + 8) && *(float *)(param_2 + 8) != *(float *)param_2)
-     && (*(float *)(param_2 + 4) <= *(float *)(param_2 + 0xc) &&
-         *(float *)(param_2 + 0xc) != *(float *)(param_2 + 4))) {
-    local_80 = *(undefined8 *)(*(longlong *)this + 0x148);
-    local_78 = local_60;
-    local_88 = 0;
-    local_70 = local_60;
-    local_68 = &local_40;
+  local_20 = __security_cookie ^ (ulonglong)auStackY_98;
+  if ((*(float *)(param_2 + 8) < *(float *)param_2 || *(float *)(param_2 + 8) == *(float *)param_2)
+     || (*(float *)(param_2 + 0xc) < *(float *)(param_2 + 4) ||
+         *(float *)(param_2 + 0xc) == *(float *)(param_2 + 4))) {
+    lVar1 = 0;
+  }
+  else {
+    local_60 = *(undefined8 *)(*(longlong *)this + 0x148);
+    local_58 = local_40;
+    local_68 = 0;
+    local_50 = local_40;
+    local_48 = &local_20;
     detail::
     vector_facade<CVisualTreePath::VisualTreePathUnit,detail::buffer_impl<CVisualTreePath::VisualTreePathUnit,2,1,detail::liberal_expansion_policy>_>
     ::push_back((vector_facade<CVisualTreePath::VisualTreePathUnit,detail::buffer_impl<CVisualTreePath::VisualTreePathUnit,2,1,detail::liberal_expansion_policy>_>
-                 *)&local_78,(VisualTreePathUnit *)&local_88);
-    this_00 = *(CVisual **)(local_78[1] + 0x48);
-    local_90 = (CVisualTree *)local_70[-1];
-    this_01 = CVisual::EnsureTreeData(param_1,local_90);
-    for (plVar10 = *(longlong **)(this_01 + 0x90); plVar10 != *(longlong **)(this_01 + 0x98);
-        plVar10 = plVar10 + 1) {
-      lVar2 = *plVar10;
-      if (*(longlong *)(lVar2 + 0x820) - *(longlong *)(lVar2 + 0x818) ==
-          (longlong)local_70 - (longlong)local_78) {
-        lVar5 = *(longlong *)(lVar2 + 0x818) - (longlong)local_78;
-        plVar11 = local_78;
-        while( true ) {
-          plVar1 = (longlong *)(lVar5 + (longlong)plVar11);
-          if (plVar1 == *(longlong **)(lVar2 + 0x820)) {
-            *(undefined8 *)(lVar2 + 0x8b8) =
-                 *(undefined8 *)(*(longlong *)(*(longlong *)(this_01 + 0xf8) + 0x18) + 0x378);
-            this_02 = (CBackdropVisualImage *)*plVar10;
-            if (this_02 == (CBackdropVisualImage *)0x0) goto LAB_0;
-            CMILRefCountImpl::AddReference((CMILRefCountImpl *)(this_02 + 8));
-            goto LAB_1;
-          }
-          if ((*plVar1 != *plVar11) || (*(longlong *)(lVar5 + 8 + (longlong)plVar11) != plVar11[1]))
-          break;
-          plVar11 = plVar11 + 2;
-        }
-      }
+                 *)&local_58,(VisualTreePathUnit *)&local_68);
+    lVar1 = CVisual::CreateOrUpdateBVI(param_1,(CVisualTreePath *)&local_58,param_2,param_3,param_4)
+    ;
+    if (lVar1 < 0) {
+      wil::details::in1diag3::Return_Hr
+                (unaff_retaddr,0x734,
+                 "onecoreuap\\windows\\dwm\\dwmcore\\engine\\precomputecontext.cpp",lVar1);
     }
-LAB_0:
-    local_98 = (CBackdropVisualImage *)0x0;
-    pCVar6 = CVisual::GetVisualTreeNoRef(this_00);
-    CBackdropVisualImage::Create
-              (g_pComposition,param_1,(CVisualTreePath *)&local_78,pCVar6 == local_90,&local_98);
-    this_02 = local_98;
-    CTreeData::SetBackdropVisualImage(this_01,(CVisualTreePath *)&local_78,local_98);
-    bVar3 = DwmDbg::Backdrops::IsEtwEnabled();
-    if (bVar3) {
-      puVar7 = (undefined8 *)CVisualTreePath::GetDebugString((CVisualTreePath *)&local_78);
-      uVar8 = DwmDbg::DbgString::DbgString
-                        ((DbgString *)&local_98,"pBVI=0x%p, bviPath=[%s]",this_02,*puVar7);
-      uVar9 = DwmDbg::DbgString::DbgString((DbgString *)&local_88,"Visual-CreatedNewBVI");
-      DwmDbg::Backdrops::LogBrushEtwEvent(uVar9,param_1,uVar8);
-      std::
-      unique_ptr<class_CWeakReference<CResource>*___ptr64_[0],std::default_delete<class_CWeakReference<CResource>*___ptr64_[0]>_>
-      ::
-      ~unique_ptr<class_CWeakReference<CResource>*___ptr64_[0],std::default_delete<class_CWeakReference<CResource>*___ptr64_[0]>_>
-                ((unique_ptr<class_CWeakReference<CResource>*___ptr64_[0],std::default_delete<class_CWeakReference<CResource>*___ptr64_[0]>_>
-                  *)&local_90);
-    }
-LAB_1:
-    lVar4 = CBackdropVisualImage::ValidateRootAndSourceRectangle
-                      (this_02,this_00,param_2,param_3,param_4);
-    if (this_02 != (CBackdropVisualImage *)0x0) {
-      CMILCOMBaseWeakRefSource<CResourceDeleter>::InternalRelease
-                ((CMILCOMBaseWeakRefSource<CResourceDeleter> *)this_02);
-    }
-    if (lVar4 < 0) {
-      wil::details::in1diag3::Return_Hr
-                (unaff_retaddr,0x724,
-                 "onecoreuap\\windows\\dwm\\dwmcore\\engine\\precomputecontext.cpp",lVar4);
-      detail::
-      vector_facade<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,detail::buffer_impl<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,10,1,detail::liberal_expansion_policy>_>
-      ::
-      ~vector_facade<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,detail::buffer_impl<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,10,1,detail::liberal_expansion_policy>_>
-                ((vector_facade<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,detail::buffer_impl<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,10,1,detail::liberal_expansion_policy>_>
-                  *)&local_78);
-      return lVar4;
+    else {
+      lVar1 = 0;
     }
     detail::
     vector_facade<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,detail::buffer_impl<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,10,1,detail::liberal_expansion_policy>_>
     ::
     ~vector_facade<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,detail::buffer_impl<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,10,1,detail::liberal_expansion_policy>_>
               ((vector_facade<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,detail::buffer_impl<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,10,1,detail::liberal_expansion_policy>_>
-                *)&local_78);
+                *)&local_58);
   }
-  return 0;
+  return lVar1;
 }
 

```


## CPathGeometry::ProcessSetPath

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.6|
|i_ratio|0.42|
|m_ratio|0.99|
|b_ratio|0.7|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|ProcessSetPath|ProcessSetPath|
|fullname|CPathGeometry::ProcessSetPath|CPathGeometry::ProcessSetPath|
|refcount|1|1|
|`length`|434|437|
|`called`|<details><summary>Expand for full list:<br>?Alloc@DefaultHeap@@SAPEAX_K@Z<br>CKeyframeAnimation::IsOfType<br>CPathData::CPathData<br>CPathGeometry::SetPath<br>CSharedSection::IsOfType<br>CSharedSectionBase::ResolveAllocation<br>CVisual::IsOfType<br>Microsoft::WRL::ComPtr<CPathData>::InternalRelease<br>MilInstrumentationCheckHR_MaybeFailFast<br>_guard_dispatch_icall$thunk$10345483385596137414<br>gsl::details::extent_type<-1>::extent_type<-1></summary></details>|<details><summary>Expand for full list:<br>?Alloc@DefaultHeap@@SAPEAX_K@Z<br>CKeyframeAnimation::IsOfType<br>CPathData::CPathData<br>CPathGeometry::SetPath<br>CSharedSection::IsOfType<br>CSharedSectionBase::ResolveAllocation<br>CVisual::IsOfType<br>HANDLE_TABLE::ValidEntry<br>Microsoft::WRL::ComPtr<CPathData>::InternalRelease<br>MilInstrumentationCheckHR_MaybeFailFast<br>_guard_dispatch_icall$thunk$10345483385596137414</summary>gsl::details::extent_type<-1>::extent_type<-1></details>|
|calling|||
|paramcount|3|3|
|`address`|18007ac54|1801808c4|
|sig|long __thiscall ProcessSetPath(CPathGeometry * this, CResourceTable * param_1, tagMILCMD_PATHGEOMETRY_SETPATH * param_2)|long __thiscall ProcessSetPath(CPathGeometry * this, CResourceTable * param_1, tagMILCMD_PATHGEOMETRY_SETPATH * param_2)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### CPathGeometry::ProcessSetPath Called Diff


```diff
--- CPathGeometry::ProcessSetPath called
+++ CPathGeometry::ProcessSetPath called
@@ -7,0 +8 @@
+HANDLE_TABLE::ValidEntry
```


### CPathGeometry::ProcessSetPath Diff


```diff
--- CPathGeometry::ProcessSetPath
+++ CPathGeometry::ProcessSetPath
@@ -1,89 +1,89 @@
 
 /* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
    guard_dispatch_icall */
 /* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
 /* public: long __cdecl CPathGeometry::ProcessSetPath(class CResourceTable * __ptr64,struct
    tagMILCMD_PATHGEOMETRY_SETPATH const * __ptr64) __ptr64 */
 
 long __thiscall
 CPathGeometry::ProcessSetPath
           (CPathGeometry *this,CResourceTable *param_1,tagMILCMD_PATHGEOMETRY_SETPATH *param_2)
 
 {
   CVisual *this_00;
   code *pcVar1;
   char cVar2;
-  long lVar3;
-  void *pvVar4;
-  CPathData *pCVar5;
+  int iVar3;
+  long lVar4;
+  void *pvVar5;
+  CPathData *pCVar6;
+  longlong lVar7;
   CSharedSectionBase *this_01;
-  longlong lVar6;
-  uint uVar7;
+  uint uVar8;
   undefined4 local_18;
   undefined4 uStack_14;
   void *pvStack_10;
   
-  uVar7 = *(uint *)(param_2 + 8);
-  lVar3 = 0;
-  if (((uVar7 != 0) && (uVar7 < *(uint *)(param_1 + 0x1c))) &&
-     (*(int *)((ulonglong)(uVar7 * *(int *)(param_1 + 0x18)) + *(longlong *)(param_1 + 0x28)) != 0))
-  {
-    lVar6 = (ulonglong)(uVar7 * *(int *)(param_1 + 0x18)) + *(longlong *)(param_1 + 0x28);
-    this_00 = *(CVisual **)(lVar6 + 8);
+  uVar8 = *(uint *)(param_2 + 8);
+  lVar4 = 0;
+  iVar3 = HANDLE_TABLE::ValidEntry((HANDLE_TABLE *)(param_1 + 0x10),uVar8);
+  if (iVar3 != 0) {
+    lVar7 = (ulonglong)(uVar8 * *(int *)(param_1 + 0x18)) + *(longlong *)(param_1 + 0x28);
+    this_00 = *(CVisual **)(lVar7 + 8);
     if (this_00 != (CVisual *)0x0) {
       pcVar1 = *(code **)(*(longlong *)this_00 + 0x40);
       if (pcVar1 == CKeyframeAnimation::IsOfType) {
-        cVar2 = CKeyframeAnimation::IsOfType((CKeyframeAnimation *)this_00,0x9c);
+        cVar2 = CKeyframeAnimation::IsOfType((CKeyframeAnimation *)this_00,0x9d);
       }
       else if (pcVar1 == CVisual::IsOfType) {
-        cVar2 = CVisual::IsOfType(this_00,0x9c);
+        cVar2 = CVisual::IsOfType(this_00,0x9d);
       }
       else if (pcVar1 == CSharedSection::IsOfType) {
-        cVar2 = CSharedSection::IsOfType((CSharedSection *)this_00,0x9c);
+        cVar2 = CSharedSection::IsOfType((CSharedSection *)this_00,0x9d);
       }
       else {
         cVar2 = (*pcVar1)();
       }
       if (cVar2 != '\0') {
-        this_01 = *(CSharedSectionBase **)(lVar6 + 8);
+        this_01 = *(CSharedSectionBase **)(lVar7 + 8);
         goto LAB_0;
       }
     }
   }
   this_01 = (CSharedSectionBase *)0x0;
 LAB_0:
   Microsoft::WRL::ComPtr<CPathData>::InternalRelease((ComPtr<CPathData> *)(this + 0x88));
   if (this_01 != (CSharedSectionBase *)0x0) {
-    pvVar4 = CSharedSectionBase::ResolveAllocation
+    pvVar5 = CSharedSectionBase::ResolveAllocation
                        (this_01,(ulonglong)*(uint *)(param_2 + 0xc),
                         (ulonglong)*(uint *)(param_2 + 0x10));
-    if (pvVar4 == (void *)0x0) {
-      uVar7 = 0x19;
+    if (pvVar5 == (void *)0x0) {
+      uVar8 = 0x19;
     }
     else {
-      pCVar5 = _Alloc_DefaultHeap__SAPEAX_K_Z(0x48);
-      if (pCVar5 != (CPathData *)0x0) {
+      pCVar6 = _Alloc_DefaultHeap__SAPEAX_K_Z(0x48);
+      if (pCVar6 != (CPathData *)0x0) {
         gsl::details::extent_type<-1>::extent_type<_1>
                   ((extent_type<_1> *)&local_18,(ulonglong)*(uint *)(param_2 + 0x10));
-        pvStack_10 = pvVar4;
+        pvStack_10 = pvVar5;
         if (CONCAT44(uStack_14,local_18) == -1) {
           (*(code *)`void_(__cdecl*&___ptr64___cdecl_gsl::details::get_terminate_handler(void))(void)'
                     ::__l2::handler)();
           pcVar1 = (code *)swi(3);
-          lVar3 = (*pcVar1)();
-          return lVar3;
+          lVar4 = (*pcVar1)();
+          return lVar4;
         }
-        pCVar5 = (CPathData *)CPathData::CPathData(pCVar5);
-        if (pCVar5 != (CPathData *)0x0) {
-          SetPath(this,pCVar5);
+        pCVar6 = (CPathData *)CPathData::CPathData(pCVar6);
+        if (pCVar6 != (CPathData *)0x0) {
+          SetPath(this,pCVar6);
           return 0;
         }
       }
-      uVar7 = 0x1e;
+      uVar8 = 0x1e;
     }
-    lVar3 = -0x7ff8fff2;
-    MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,-0x7ff8fff2,uVar7,(void *)0x0);
+    lVar4 = -0x7ff8fff2;
+    MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,-0x7ff8fff2,uVar8,(void *)0x0);
   }
-  return lVar3;
+  return lVar4;
 }
 

```


## CCursorState::TryGetShape

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,length,sig,address,calling,called|
|ratio|0.35|
|i_ratio|0.27|
|m_ratio|1.0|
|b_ratio|0.91|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|TryGetShape|TryGetShape|
|fullname|CCursorState::TryGetShape|CCursorState::TryGetShape|
|refcount|3|3|
|`length`|478|464|
|`called`|CCursorState::AddShadowToShape<br>CCursorState::RotateShape<br>CCursorState::ScaleShape<br>std::_Ref_count_base::_Decref<br>std::_Sort_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_4f96f9abf6f4efc73c76f9e3716c5312>_>_><br>std::shared_ptr<CCursorState::ShapeData>::operator=<br>std::shared_ptr<CCursorState::ShapeData>::operator=<br>std::vector<std::shared_ptr<CCursorState::ShapeData>,std::allocator<std::shared_ptr<CCursorState::ShapeData>_>_>::emplace_back<std::shared_ptr<CCursorState::ShapeData>&___ptr64>|CCursorState::AddShadowToShape<br>CCursorState::RotateShape<br>CCursorState::ScaleShape<br>CCursorState::ShapeData::GetSize<br>CCursorState::SortShapeCache<br>std::_Ref_count_base::_Decref<br>std::shared_ptr<CCursorState::ShapeData>::operator=<br>std::shared_ptr<CCursorState::ShapeData>::operator=<br>std::vector<std::shared_ptr<CCursorState::ShapeData>,std::allocator<std::shared_ptr<CCursorState::ShapeData>_>_>::emplace_back<std::shared_ptr<CCursorState::ShapeData>&___ptr64>|
|`calling`|CCursorState::EnsureCompositionResources<br>CCursorState::TryEnableHardwareCursor|CCursorState::EnsureCompositionResources<br>CCursorState::EnsureMonitorData|
|paramcount|4|4|
|`address`|1802b6be4|1802b7c04|
|`sig`|shared_ptr<CCursorState::ShapeData> __thiscall TryGetShape(CCursorState * this, uint param_1, DXGI_MODE_ROTATION param_2, bool param_3)|shared_ptr<CCursorState::ShapeData> __thiscall TryGetShape(CCursorState * this, D2D_SIZE_U * param_1, DXGI_MODE_ROTATION param_2, bool param_3)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### CCursorState::TryGetShape Called Diff


```diff
--- CCursorState::TryGetShape called
+++ CCursorState::TryGetShape called
@@ -3,0 +4,2 @@
+CCursorState::ShapeData::GetSize
+CCursorState::SortShapeCache
@@ -5 +6,0 @@
-std::_Sort_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_4f96f9abf6f4efc73c76f9e3716c5312>_>_>
```


### CCursorState::TryGetShape Calling Diff


```diff
--- CCursorState::TryGetShape calling
+++ CCursorState::TryGetShape calling
@@ -2 +2 @@
-CCursorState::TryEnableHardwareCursor
+CCursorState::EnsureMonitorData
```


### CCursorState::TryGetShape Diff


```diff
--- CCursorState::TryGetShape
+++ CCursorState::TryGetShape
@@ -1,114 +1,104 @@
 
-/* private: class std::shared_ptr<struct CCursorState::ShapeData> __cdecl
-   CCursorState::TryGetShape(unsigned int,enum DXGI_MODE_ROTATION,bool) __ptr64 */
+/* private: class std::shared_ptr<class CCursorState::ShapeData> __cdecl
+   CCursorState::TryGetShape(struct D2D_SIZE_U const & __ptr64,enum DXGI_MODE_ROTATION,bool) __ptr64
+    */
 
-longlong * __thiscall
-CCursorState::TryGetShape(CCursorState *this,uint param_1,DXGI_MODE_ROTATION param_2,bool param_3)
+D2D_SIZE_U * __thiscall
+CCursorState::TryGetShape
+          (CCursorState *this,D2D_SIZE_U *param_1,DXGI_MODE_ROTATION param_2,bool param_3)
 
 {
   vector<std::shared_ptr<CCursorState::ShapeData>,std::allocator<std::shared_ptr<CCursorState::ShapeData>_>_>
   *this_00;
   longlong lVar1;
-  shared_ptr<struct_CCursorState::ShapeData> *psVar2;
-  undefined4 in_register_00000014;
-  longlong *plVar3;
+  int *piVar2;
+  shared_ptr<class_CCursorState::ShapeData> *psVar3;
+  undefined4 in_register_00000084;
+  D2D_SIZE_U *pDVar4;
   undefined7 in_register_00000089;
-  int iVar4;
-  undefined1 local_res8 [8];
-  char in_stack_00000028;
-  DXGI_MODE_ROTATION local_68 [2];
-  int local_60 [2];
-  longlong local_58;
-  _Ref_count_base *p_Stack_50;
-  undefined1 *local_48;
-  _Ref_count_base *local_40;
-  int *local_38;
+  DXGI_MODE_ROTATION DVar5;
+  ShapeData in_stack_00000028;
+  ShapeData *local_48;
+  _Ref_count_base *p_Stack_40;
+  shared_ptr<class_CCursorState::ShapeData> local_38 [8];
+  _Ref_count_base *local_30;
   
-  plVar3 = (longlong *)CONCAT44(in_register_00000014,param_1);
+  pDVar4 = (D2D_SIZE_U *)CONCAT44(in_register_00000084,param_2);
   this_00 = (vector<std::shared_ptr<CCursorState::ShapeData>,std::allocator<std::shared_ptr<CCursorState::ShapeData>_>_>
              *)(this + 0xe0);
-  local_58 = 0;
-  p_Stack_50 = (_Ref_count_base *)0x0;
-  if (*(shared_ptr<struct_CCursorState::ShapeData> **)this_00 !=
-      *(shared_ptr<struct_CCursorState::ShapeData> **)(this + 0xe8)) {
+  local_48 = (ShapeData *)0x0;
+  p_Stack_40 = (_Ref_count_base *)0x0;
+  if (*(shared_ptr<class_CCursorState::ShapeData> **)this_00 !=
+      *(shared_ptr<class_CCursorState::ShapeData> **)(this + 0xe8)) {
     std::shared_ptr<CCursorState::ShapeData>::operator=
-              ((shared_ptr<CCursorState::ShapeData> *)&local_58,
-               *(shared_ptr<struct_CCursorState::ShapeData> **)this_00);
-    iVar4 = (int)CONCAT71(in_register_00000089,param_3);
-    if (((*(char *)(local_58 + 0x11) == in_stack_00000028) && (*(int *)(local_58 + 8) == iVar4)) &&
-       (*(DXGI_MODE_ROTATION *)(local_58 + 0xc) == param_2)) goto LAB_0;
-    local_48 = local_res8;
-    local_40 = (_Ref_count_base *)local_68;
-    local_38 = local_60;
-    local_68[0] = param_2;
-    local_60[0] = iVar4;
-    std::
-    _Sort_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_4f96f9abf6f4efc73c76f9e3716c5312>_>_>
-              (*(undefined8 *)this_00,*(longlong *)(this + 0xe8),
-               *(longlong *)(this + 0xe8) - *(longlong *)this_00 >> 4,&local_48);
+              ((shared_ptr<CCursorState::ShapeData> *)&local_48,
+               *(shared_ptr<class_CCursorState::ShapeData> **)this_00);
+    DVar5 = (DXGI_MODE_ROTATION)CONCAT71(in_register_00000089,param_3);
+    if ((((local_48[0xd] == in_stack_00000028) && (*(DXGI_MODE_ROTATION *)(local_48 + 8) == DVar5))
+        && (piVar2 = (int *)ShapeData::GetSize(local_48), *piVar2 == *(int *)pDVar4)) &&
+       (piVar2[1] == *(int *)(pDVar4 + 4))) goto LAB_0;
+    SortShapeCache(this,pDVar4,DVar5,(bool)in_stack_00000028);
     std::shared_ptr<CCursorState::ShapeData>::operator=
-              ((shared_ptr<CCursorState::ShapeData> *)&local_58,
-               *(shared_ptr<struct_CCursorState::ShapeData> **)this_00);
-    if (*(char *)(local_58 + 0x11) != in_stack_00000028) {
-      psVar2 = (shared_ptr<struct_CCursorState::ShapeData> *)
-               AddShadowToShape(this,(shared_ptr<struct_CCursorState::ShapeData> *)&local_48);
-      psVar2 = std::shared_ptr<CCursorState::ShapeData>::operator=
-                         ((shared_ptr<CCursorState::ShapeData> *)&local_58,psVar2);
-      lVar1 = *(longlong *)psVar2;
-      if (local_40 != (_Ref_count_base *)0x0) {
-        std::_Ref_count_base::_Decref(local_40);
+              ((shared_ptr<CCursorState::ShapeData> *)&local_48,
+               *(shared_ptr<class_CCursorState::ShapeData> **)this_00);
+    if (local_48[0xd] != in_stack_00000028) {
+      psVar3 = (shared_ptr<class_CCursorState::ShapeData> *)AddShadowToShape(this,local_38);
+      psVar3 = std::shared_ptr<CCursorState::ShapeData>::operator=
+                         ((shared_ptr<CCursorState::ShapeData> *)&local_48,psVar3);
+      lVar1 = *(longlong *)psVar3;
+      if (local_30 != (_Ref_count_base *)0x0) {
+        std::_Ref_count_base::_Decref(local_30);
       }
       if (lVar1 == 0) goto LAB_1;
       std::
       vector<std::shared_ptr<CCursorState::ShapeData>,std::allocator<std::shared_ptr<CCursorState::ShapeData>_>_>
       ::emplace_back<std::shared_ptr<CCursorState::ShapeData>&___ptr64>
-                (this_00,(shared_ptr<CCursorState::ShapeData> *)&local_58);
+                (this_00,(shared_ptr<CCursorState::ShapeData> *)&local_48);
     }
-    if (*(int *)(local_58 + 8) != iVar4) {
-      psVar2 = (shared_ptr<struct_CCursorState::ShapeData> *)
-               RotateShape(this,(shared_ptr<struct_CCursorState::ShapeData> *)&local_48,
-                           (DXGI_MODE_ROTATION)&local_58);
-      psVar2 = std::shared_ptr<CCursorState::ShapeData>::operator=
-                         ((shared_ptr<CCursorState::ShapeData> *)&local_58,psVar2);
-      lVar1 = *(longlong *)psVar2;
-      if (local_40 != (_Ref_count_base *)0x0) {
-        std::_Ref_count_base::_Decref(local_40);
+    if (*(DXGI_MODE_ROTATION *)(local_48 + 8) != DVar5) {
+      psVar3 = (shared_ptr<class_CCursorState::ShapeData> *)
+               RotateShape(this,local_38,(DXGI_MODE_ROTATION)&local_48);
+      psVar3 = std::shared_ptr<CCursorState::ShapeData>::operator=
+                         ((shared_ptr<CCursorState::ShapeData> *)&local_48,psVar3);
+      lVar1 = *(longlong *)psVar3;
+      if (local_30 != (_Ref_count_base *)0x0) {
+        std::_Ref_count_base::_Decref(local_30);
       }
       if (lVar1 == 0) goto LAB_1;
       std::
       vector<std::shared_ptr<CCursorState::ShapeData>,std::allocator<std::shared_ptr<CCursorState::ShapeData>_>_>
       ::emplace_back<std::shared_ptr<CCursorState::ShapeData>&___ptr64>
-                (this_00,(shared_ptr<CCursorState::ShapeData> *)&local_58);
+                (this_00,(shared_ptr<CCursorState::ShapeData> *)&local_48);
     }
-    if (*(DXGI_MODE_ROTATION *)(local_58 + 0xc) != param_2) {
-      psVar2 = (shared_ptr<struct_CCursorState::ShapeData> *)
-               ScaleShape(this,(shared_ptr<struct_CCursorState::ShapeData> *)&local_48,
-                          (uint)&local_58);
-      psVar2 = std::shared_ptr<CCursorState::ShapeData>::operator=
-                         ((shared_ptr<CCursorState::ShapeData> *)&local_58,psVar2);
-      lVar1 = *(longlong *)psVar2;
-      if (local_40 != (_Ref_count_base *)0x0) {
-        std::_Ref_count_base::_Decref(local_40);
+    piVar2 = (int *)ShapeData::GetSize(local_48);
+    if ((*piVar2 != *(int *)pDVar4) || (piVar2[1] != *(int *)(pDVar4 + 4))) {
+      psVar3 = (shared_ptr<class_CCursorState::ShapeData> *)
+               ScaleShape(this,local_38,(D2D_SIZE_U *)&local_48);
+      psVar3 = std::shared_ptr<CCursorState::ShapeData>::operator=
+                         ((shared_ptr<CCursorState::ShapeData> *)&local_48,psVar3);
+      lVar1 = *(longlong *)psVar3;
+      if (local_30 != (_Ref_count_base *)0x0) {
+        std::_Ref_count_base::_Decref(local_30);
       }
       if (lVar1 == 0) {
 LAB_1:
-        *plVar3 = 0;
-        plVar3[1] = 0;
-        if (p_Stack_50 == (_Ref_count_base *)0x0) {
-          return plVar3;
+        *(undefined8 *)param_1 = 0;
+        *(undefined8 *)(param_1 + 8) = 0;
+        if (p_Stack_40 == (_Ref_count_base *)0x0) {
+          return param_1;
         }
-        std::_Ref_count_base::_Decref(p_Stack_50);
-        return plVar3;
+        std::_Ref_count_base::_Decref(p_Stack_40);
+        return param_1;
       }
       std::
       vector<std::shared_ptr<CCursorState::ShapeData>,std::allocator<std::shared_ptr<CCursorState::ShapeData>_>_>
       ::emplace_back<std::shared_ptr<CCursorState::ShapeData>&___ptr64>
-                (this_00,(shared_ptr<CCursorState::ShapeData> *)&local_58);
+                (this_00,(shared_ptr<CCursorState::ShapeData> *)&local_48);
     }
   }
 LAB_0:
-  *plVar3 = local_58;
-  plVar3[1] = (longlong)p_Stack_50;
-  return plVar3;
+  *(ShapeData **)param_1 = local_48;
+  *(_Ref_count_base **)(param_1 + 8) = p_Stack_40;
+  return param_1;
 }
 

```


## CCursorState::MonitorData::MonitorData

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,length,address,calling|
|ratio|0.67|
|i_ratio|0.47|
|m_ratio|0.93|
|b_ratio|0.93|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|MonitorData|MonitorData|
|fullname|CCursorState::MonitorData::MonitorData|CCursorState::MonitorData::MonitorData|
|refcount|3|3|
|`length`|128|193|
|called|||
|`calling`|CCursorState::TryEnableHardwareCursor<br>std::_Uninitialized_move<CCursorState::MonitorData*___ptr64,std::allocator<CCursorState::MonitorData>_><br>std::vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_>::_Emplace_reallocate<CCursorState::MonitorData>|CCursorState::EnsureMonitorData<br>std::_Uninitialized_move<CCursorState::MonitorData*___ptr64,std::allocator<CCursorState::MonitorData>_><br>std::vector<CCursorState::MonitorData,std::allocator<CCursorState::MonitorData>_>::_Emplace_reallocate<CCursorState::MonitorData>|
|paramcount|2|2|
|`address`|1802b4430|1802b4c24|
|sig|undefined __thiscall MonitorData(MonitorData * this, MonitorData * param_1)|undefined __thiscall MonitorData(MonitorData * this, MonitorData * param_1)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### CCursorState::MonitorData::MonitorData Calling Diff


```diff
--- CCursorState::MonitorData::MonitorData calling
+++ CCursorState::MonitorData::MonitorData calling
@@ -1 +1 @@
-CCursorState::TryEnableHardwareCursor
+CCursorState::EnsureMonitorData
```


### CCursorState::MonitorData::MonitorData Diff


```diff
--- CCursorState::MonitorData::MonitorData
+++ CCursorState::MonitorData::MonitorData
@@ -1,42 +1,47 @@
 
-/* public: __cdecl CCursorState::MonitorData::MonitorData(struct CCursorState::MonitorData &&
+/* public: __cdecl CCursorState::MonitorData::MonitorData(class CCursorState::MonitorData &&
    __ptr64) __ptr64 */
 
 MonitorData * __thiscall
 CCursorState::MonitorData::MonitorData(MonitorData *this,MonitorData *param_1)
 
 {
   undefined8 uVar1;
   
   *(undefined8 *)this = *(undefined8 *)param_1;
   *(undefined4 *)(this + 8) = *(undefined4 *)(param_1 + 8);
   uVar1 = *(undefined8 *)(param_1 + 0x14);
   *(undefined8 *)(this + 0xc) = *(undefined8 *)(param_1 + 0xc);
   *(undefined8 *)(this + 0x14) = uVar1;
   uVar1 = *(undefined8 *)(param_1 + 0x24);
   *(undefined8 *)(this + 0x1c) = *(undefined8 *)(param_1 + 0x1c);
   *(undefined8 *)(this + 0x24) = uVar1;
   uVar1 = *(undefined8 *)(param_1 + 0x34);
   *(undefined8 *)(this + 0x2c) = *(undefined8 *)(param_1 + 0x2c);
   *(undefined8 *)(this + 0x34) = uVar1;
   uVar1 = *(undefined8 *)(param_1 + 0x44);
   *(undefined8 *)(this + 0x3c) = *(undefined8 *)(param_1 + 0x3c);
   *(undefined8 *)(this + 0x44) = uVar1;
   *(undefined4 *)(this + 0x4c) = *(undefined4 *)(param_1 + 0x4c);
   uVar1 = *(undefined8 *)(param_1 + 0x58);
   *(undefined8 *)(this + 0x50) = *(undefined8 *)(param_1 + 0x50);
   *(undefined8 *)(this + 0x58) = uVar1;
-  *(undefined8 *)(this + 0x60) = 0;
-  *(undefined8 *)(this + 0x68) = 0;
+  uVar1 = *(undefined8 *)(param_1 + 0x68);
   *(undefined8 *)(this + 0x60) = *(undefined8 *)(param_1 + 0x60);
-  *(undefined8 *)(this + 0x68) = *(undefined8 *)(param_1 + 0x68);
-  *(undefined8 *)(param_1 + 0x60) = 0;
-  *(undefined8 *)(param_1 + 0x68) = 0;
-  *(undefined4 *)(this + 0x70) = *(undefined4 *)(param_1 + 0x70);
-  *(undefined4 *)(this + 0x74) = *(undefined4 *)(param_1 + 0x74);
-  *(undefined4 *)(this + 0x78) = *(undefined4 *)(param_1 + 0x78);
-  this[0x7c] = param_1[0x7c];
-  this[0x7d] = param_1[0x7d];
+  *(undefined8 *)(this + 0x68) = uVar1;
+  *(undefined8 *)(this + 0x70) = 0;
+  *(undefined8 *)(this + 0x78) = 0;
+  *(undefined8 *)(this + 0x70) = *(undefined8 *)(param_1 + 0x70);
+  *(undefined8 *)(this + 0x78) = *(undefined8 *)(param_1 + 0x78);
+  *(undefined8 *)(param_1 + 0x70) = 0;
+  *(undefined8 *)(param_1 + 0x78) = 0;
+  *(undefined4 *)(this + 0x80) = *(undefined4 *)(param_1 + 0x80);
+  *(undefined8 *)(this + 0x84) = *(undefined8 *)(param_1 + 0x84);
+  *(undefined4 *)(this + 0x8c) = *(undefined4 *)(param_1 + 0x8c);
+  *(undefined4 *)(this + 0x90) = *(undefined4 *)(param_1 + 0x90);
+  *(undefined4 *)(this + 0x94) = *(undefined4 *)(param_1 + 0x94);
+  *(undefined4 *)(this + 0x98) = *(undefined4 *)(param_1 + 0x98);
+  this[0x9c] = param_1[0x9c];
   return this;
 }
 

```


## FUN_1802ef069

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,name,fullname,length,sig,address,calling,parent|
|ratio|0.22|
|i_ratio|0.0|
|m_ratio|0.35|
|b_ratio|0.09|
|match_types|StructuralGraphExactHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|`name`|FUN_1802ef069|IsSoftwareCursor|
|`fullname`|FUN_1802ef069|COverlayContext::IsSoftwareCursor|
|refcount|1|1|
|`length`|87|16|
|called|||
|`calling`|CResourceFactory::Create|CDesktopTree::NeedsCursorPositionUpdates|
|paramcount|0|2|
|`address`|1802ef069|18026ddd4|
|`sig`|undefined FUN_1802ef069(void)|bool __thiscall IsSoftwareCursor(COverlayContext * this, CCursorVisual * param_1)|
|sym_type|Function|Function|
|sym_source|DEFAULT|ANALYSIS|
|external|False|False|

### FUN_1802ef069 Calling Diff


```diff
--- FUN_1802ef069 calling
+++ COverlayContext::IsSoftwareCursor calling
@@ -1 +1 @@
-CResourceFactory::Create
+CDesktopTree::NeedsCursorPositionUpdates
```


### FUN_1802ef069 Diff


```diff
--- FUN_1802ef069
+++ COverlayContext::IsSoftwareCursor
@@ -1,46 +1,29 @@
 
-/* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
-   guard_dispatch_icall */
+/* public: bool __cdecl COverlayContext::IsSoftwareCursor(class CCursorVisual const * __ptr64)const
+   __ptr64 */
 
-undefined4 FUN_1802ef069(void)
+bool __thiscall COverlayContext::IsSoftwareCursor(COverlayContext *this,CCursorVisual *param_1)
 
 {
-  longlong in_RAX;
-  CMILRefCountImpl *unaff_RBX;
-  void *unaff_RBP;
-  undefined4 unaff_ESI;
-  undefined8 unaff_RDI;
-  undefined8 *unaff_R14;
+  int iVar1;
+  MonitorData *pMVar2;
+  bool bVar3;
   
-  *(int *)(in_RAX + 8) = (int)unaff_RBP;
-  *(void **)(in_RAX + 0x10) = unaff_RBP;
-  *(undefined8 *)(in_RAX + 0x18) = unaff_RDI;
-  *(void **)(in_RAX + 0x20) = unaff_RBP;
-  *(void **)(in_RAX + 0x30) = unaff_RBP;
-  *(undefined4 *)(unaff_RBX + 0x28) = 0;
-  *(undefined ***)unaff_RBX = &CCompositionMipmapSurface::_vftable__for__CPropertyChangeResource__;
-  *(undefined ***)(unaff_RBX + 0x50) =
-       &CCompositionMipmapSurface::_vftable__for__IDeviceResourceNotify__;
-  *(undefined ***)(unaff_RBX + 0x58) =
-       &CCompositionMipmapSurface::_vftable__for__ISceneNotificationListener__;
-  *(void **)(unaff_RBX + 0x60) = unaff_RBP;
-  *(void **)(unaff_RBX + 0x68) = unaff_RBP;
-  *(void **)(unaff_RBX + 0x70) = unaff_RBP;
-  *(void **)(unaff_RBX + 0x98) = unaff_RBP;
-  *(void **)(unaff_RBX + 0xa8) = unaff_RBP;
-  if (unaff_RBX == (CMILRefCountImpl *)0x0) {
-    unaff_ESI = 0x8007000e;
-    MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,-0x7ff8fff2,0x28f,unaff_RBP);
+  if (*(CCursorVisual **)(this + 0x4b18) != param_1) {
+    return true;
+  }
+  pMVar2 = CCursorState::GetMonitorData
+                     (*(CCursorState **)(*(longlong *)(this + 0x4b18) + 0x2c0),
+                      *(_LUID *)(this + 0x4b20),*(uint *)(this + 0x4b28));
+  if (pMVar2 == (MonitorData *)0x0) {
+    bVar3 = true;
   }
   else {
-    if (*(code **)(*(longlong *)unaff_RBX + 8) == CMILRefCountImpl::AddReference) {
-      CMILRefCountImpl::AddReference(unaff_RBX);
-    }
-    else {
-      (**(code **)(*(longlong *)unaff_RBX + 8))();
-    }
-    *unaff_R14 = unaff_RBX;
+    EnterCriticalSection((LPCRITICAL_SECTION)&g_CursorManager);
+    iVar1 = *(int *)(pMVar2 + 0x98);
+    LeaveCriticalSection((LPCRITICAL_SECTION)&g_CursorManager);
+    bVar3 = iVar1 == 2;
   }
-  return unaff_ESI;
+  return bVar3;
 }
 

```


## std::_Partition_by_median_guess_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_4f96f9abf6f4efc73c76f9e3716c5312>_>_>

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,name,fullname,length,sig,address,calling,called|
|ratio|0.6|
|i_ratio|0.77|
|m_ratio|1.0|
|b_ratio|0.97|
|match_types|StructuralGraphExactHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|`name`|_Partition_by_median_guess_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_4f96f9abf6f4efc73c76f9e3716c5312>_>_>|_Partition_by_median_guess_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_39668c2dc6e40fe158f11373301c566a>_>_>|
|`fullname`|std::_Partition_by_median_guess_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_4f96f9abf6f4efc73c76f9e3716c5312>_>_>|std::_Partition_by_median_guess_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_39668c2dc6e40fe158f11373301c566a>_>_>|
|refcount|2|2|
|`length`|626|622|
|`called`|std::_Guess_median_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_4f96f9abf6f4efc73c76f9e3716c5312>_>_><br>std::_Ref_fn<<lambda_4f96f9abf6f4efc73c76f9e3716c5312>_>::operator()<std::shared_ptr<CCursorState::ShapeData>_&,std::shared_ptr<CCursorState::ShapeData>_&>|std::_Guess_median_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_39668c2dc6e40fe158f11373301c566a>_>_><br>std::_Ref_fn<<lambda_39668c2dc6e40fe158f11373301c566a>_>::operator()<std::shared_ptr<CCursorState::ShapeData>_&,std::shared_ptr<CCursorState::ShapeData>_&>|
|`calling`|std::_Sort_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_4f96f9abf6f4efc73c76f9e3716c5312>_>_>|std::_Sort_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_39668c2dc6e40fe158f11373301c566a>_>_>|
|paramcount|0|0|
|`address`|1802b3b80|1802b436c|
|`sig`|undefined _Partition_by_median_guess_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_4f96f9abf6f4efc73c76f9e3716c5312>_>_>(void)|undefined _Partition_by_median_guess_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_39668c2dc6e40fe158f11373301c566a>_>_>(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### std::_Partition_by_median_guess_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_4f96f9abf6f4efc73c76f9e3716c5312>_>_> Called Diff


```diff
--- std::_Partition_by_median_guess_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_4f96f9abf6f4efc73c76f9e3716c5312>_>_> called
+++ std::_Partition_by_median_guess_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_39668c2dc6e40fe158f11373301c566a>_>_> called
@@ -1,2 +1,2 @@
-std::_Guess_median_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_4f96f9abf6f4efc73c76f9e3716c5312>_>_>
-std::_Ref_fn<<lambda_4f96f9abf6f4efc73c76f9e3716c5312>_>::operator()<std::shared_ptr<CCursorState::ShapeData>_&,std::shared_ptr<CCursorState::ShapeData>_&>
+std::_Guess_median_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_39668c2dc6e40fe158f11373301c566a>_>_>
+std::_Ref_fn<<lambda_39668c2dc6e40fe158f11373301c566a>_>::operator()<std::shared_ptr<CCursorState::ShapeData>_&,std::shared_ptr<CCursorState::ShapeData>_&>
```


### std::_Partition_by_median_guess_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_4f96f9abf6f4efc73c76f9e3716c5312>_>_> Calling Diff


```diff
--- std::_Partition_by_median_guess_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_4f96f9abf6f4efc73c76f9e3716c5312>_>_> calling
+++ std::_Partition_by_median_guess_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_39668c2dc6e40fe158f11373301c566a>_>_> calling
@@ -1 +1 @@
-std::_Sort_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_4f96f9abf6f4efc73c76f9e3716c5312>_>_>
+std::_Sort_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_39668c2dc6e40fe158f11373301c566a>_>_>
```


### std::_Partition_by_median_guess_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_4f96f9abf6f4efc73c76f9e3716c5312>_>_> Diff


```diff
--- std::_Partition_by_median_guess_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_4f96f9abf6f4efc73c76f9e3716c5312>_>_>
+++ std::_Partition_by_median_guess_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_39668c2dc6e40fe158f11373301c566a>_>_>
@@ -1,153 +1,151 @@
 
 undefined8 *
 std::
-_Partition_by_median_guess_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_4f96f9abf6f4efc73c76f9e3716c5312>_>_>
+_Partition_by_median_guess_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_39668c2dc6e40fe158f11373301c566a>_>_>
           (undefined8 *param_1,undefined8 *param_2,undefined8 *param_3,undefined8 param_4)
 
 {
   undefined8 uVar1;
   char cVar2;
   undefined8 *puVar3;
   undefined8 *puVar4;
   undefined8 *puVar5;
   undefined8 *puVar6;
   undefined8 *puVar7;
   undefined8 *puVar8;
   undefined8 *puVar9;
   undefined8 local_res20;
   
-  puVar7 = param_2 + ((longlong)param_3 - (longlong)param_2 >> 5) * 2;
+  puVar8 = param_2 + ((longlong)param_3 - (longlong)param_2 >> 5) * 2;
   local_res20 = param_4;
-  _Guess_median_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_4f96f9abf6f4efc73c76f9e3716c5312>_>_>
-            (param_2,puVar7,param_3 + -2);
-  puVar5 = puVar7 + 2;
-  while (puVar4 = puVar7, param_2 < puVar4) {
-    puVar7 = puVar4 + -2;
-    cVar2 = _Ref_fn<<lambda_4f96f9abf6f4efc73c76f9e3716c5312>_>::
+  _Guess_median_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_39668c2dc6e40fe158f11373301c566a>_>_>
+            (param_2,puVar8,param_3 + -2);
+  puVar5 = puVar8 + 2;
+  while (puVar3 = puVar8, param_2 < puVar3) {
+    puVar8 = puVar3 + -2;
+    cVar2 = _Ref_fn<<lambda_39668c2dc6e40fe158f11373301c566a>_>::
             operator()<std::shared_ptr<CCursorState::ShapeData>_&,std::shared_ptr<CCursorState::ShapeData>_&>
-                      (&local_res20,puVar7,puVar4);
+                      (&local_res20,puVar8,puVar3);
     if ((cVar2 != '\0') ||
-       (cVar2 = _Ref_fn<<lambda_4f96f9abf6f4efc73c76f9e3716c5312>_>::
+       (cVar2 = _Ref_fn<<lambda_39668c2dc6e40fe158f11373301c566a>_>::
                 operator()<std::shared_ptr<CCursorState::ShapeData>_&,std::shared_ptr<CCursorState::ShapeData>_&>
-                          (&local_res20,puVar4,puVar7), cVar2 != '\0')) break;
+                          (&local_res20,puVar3,puVar8), cVar2 != '\0')) break;
   }
-  while ((puVar6 = puVar5, puVar7 = puVar4, puVar5 < param_3 &&
-         ((cVar2 = _Ref_fn<<lambda_4f96f9abf6f4efc73c76f9e3716c5312>_>::
+  while ((puVar6 = puVar5, puVar8 = puVar3, puVar5 < param_3 &&
+         ((cVar2 = _Ref_fn<<lambda_39668c2dc6e40fe158f11373301c566a>_>::
                    operator()<std::shared_ptr<CCursorState::ShapeData>_&,std::shared_ptr<CCursorState::ShapeData>_&>
-                             (&local_res20,puVar5,puVar4), cVar2 == '\0' &&
-          (cVar2 = _Ref_fn<<lambda_4f96f9abf6f4efc73c76f9e3716c5312>_>::
+                             (&local_res20,puVar5,puVar3), cVar2 == '\0' &&
+          (cVar2 = _Ref_fn<<lambda_39668c2dc6e40fe158f11373301c566a>_>::
                    operator()<std::shared_ptr<CCursorState::ShapeData>_&,std::shared_ptr<CCursorState::ShapeData>_&>
-                             (&local_res20,puVar4,puVar5), cVar2 == '\0'))))) {
+                             (&local_res20,puVar3,puVar5), cVar2 == '\0'))))) {
     puVar5 = puVar5 + 2;
   }
 LAB_0:
   do {
-    puVar8 = puVar7;
+    puVar7 = puVar8;
     if (puVar5 < param_3) {
-      cVar2 = _Ref_fn<<lambda_4f96f9abf6f4efc73c76f9e3716c5312>_>::
+      cVar2 = _Ref_fn<<lambda_39668c2dc6e40fe158f11373301c566a>_>::
               operator()<std::shared_ptr<CCursorState::ShapeData>_&,std::shared_ptr<CCursorState::ShapeData>_&>
-                        (&local_res20,puVar4,puVar5);
+                        (&local_res20,puVar3,puVar5);
       if (cVar2 == '\0') {
-        cVar2 = _Ref_fn<<lambda_4f96f9abf6f4efc73c76f9e3716c5312>_>::
+        cVar2 = _Ref_fn<<lambda_39668c2dc6e40fe158f11373301c566a>_>::
                 operator()<std::shared_ptr<CCursorState::ShapeData>_&,std::shared_ptr<CCursorState::ShapeData>_&>
-                          (&local_res20,puVar5,puVar4);
-        if (cVar2 != '\0') goto joined_r0x0001802b3c9d;
+                          (&local_res20,puVar5,puVar3);
+        if (cVar2 != '\0') goto joined_r0x0001802b4486;
         if (puVar6 != puVar5) {
           uVar1 = *puVar6;
           *puVar6 = *puVar5;
           *puVar5 = uVar1;
           uVar1 = puVar6[1];
           puVar6[1] = puVar5[1];
           puVar5[1] = uVar1;
         }
         puVar6 = puVar6 + 2;
       }
     }
     else {
-joined_r0x0001802b3c9d:
+joined_r0x0001802b4486:
       for (; param_2 < puVar7; puVar7 = puVar7 + -2) {
         puVar9 = puVar8 + -2;
-        cVar2 = _Ref_fn<<lambda_4f96f9abf6f4efc73c76f9e3716c5312>_>::
+        cVar2 = _Ref_fn<<lambda_39668c2dc6e40fe158f11373301c566a>_>::
                 operator()<std::shared_ptr<CCursorState::ShapeData>_&,std::shared_ptr<CCursorState::ShapeData>_&>
-                          (&local_res20,puVar9,puVar4);
-        puVar3 = puVar4;
+                          (&local_res20,puVar9,puVar3);
+        puVar4 = puVar3;
         if (cVar2 == '\0') {
-          cVar2 = _Ref_fn<<lambda_4f96f9abf6f4efc73c76f9e3716c5312>_>::
+          cVar2 = _Ref_fn<<lambda_39668c2dc6e40fe158f11373301c566a>_>::
                   operator()<std::shared_ptr<CCursorState::ShapeData>_&,std::shared_ptr<CCursorState::ShapeData>_&>
-                            (&local_res20,puVar4,puVar9);
+                            (&local_res20,puVar3,puVar9);
           if (cVar2 != '\0') break;
-          puVar3 = puVar4 + -2;
-          if (puVar3 != puVar9) {
-            uVar1 = *puVar3;
-            *puVar3 = *puVar9;
+          puVar4 = puVar3 + -2;
+          if (puVar4 != puVar9) {
+            uVar1 = *puVar4;
+            *puVar4 = *puVar9;
             *puVar9 = uVar1;
-            uVar1 = puVar4[-1];
-            puVar4[-1] = puVar8[-1];
+            uVar1 = puVar3[-1];
+            puVar3[-1] = puVar8[-1];
             puVar8[-1] = uVar1;
           }
         }
-        puVar4 = puVar3;
+        puVar3 = puVar4;
         puVar8 = puVar9;
       }
       if (puVar7 == param_2) {
         if (puVar5 == param_3) {
-          *param_1 = puVar4;
+          *param_1 = puVar3;
           param_1[1] = puVar6;
           return param_1;
         }
         if (puVar6 != puVar5) {
-          uVar1 = *puVar4;
-          *puVar4 = *puVar6;
+          uVar1 = *puVar3;
+          *puVar3 = *puVar6;
           *puVar6 = uVar1;
-          uVar1 = puVar4[1];
-          puVar4[1] = puVar6[1];
+          uVar1 = puVar3[1];
+          puVar3[1] = puVar6[1];
           puVar6[1] = uVar1;
         }
-        uVar1 = *puVar4;
+        uVar1 = *puVar3;
         puVar6 = puVar6 + 2;
-        *puVar4 = *puVar5;
+        *puVar3 = *puVar5;
         *puVar5 = uVar1;
-        uVar1 = puVar4[1];
-        puVar4[1] = puVar5[1];
-        puVar4 = puVar4 + 2;
+        uVar1 = puVar3[1];
+        puVar3[1] = puVar5[1];
+        puVar3 = puVar3 + 2;
         puVar5[1] = uVar1;
         puVar8 = puVar7;
       }
       else {
         puVar8 = puVar7 + -2;
         if (puVar5 == param_3) {
-          puVar3 = puVar4 + -2;
-          puVar4 = puVar4 + -1;
-          if (puVar8 != puVar3) {
+          puVar4 = puVar3 + -2;
+          puVar3 = puVar3 + -1;
+          if (puVar8 != puVar4) {
             uVar1 = *puVar8;
-            *puVar8 = *puVar3;
+            *puVar8 = *puVar4;
+            *puVar4 = uVar1;
+            uVar1 = puVar7[-1];
+            puVar7[-1] = *puVar3;
             *puVar3 = uVar1;
-            uVar1 = puVar7[-1];
-            puVar7[-1] = *puVar4;
-            *puVar4 = uVar1;
           }
+          uVar1 = *puVar4;
+          puVar7 = puVar6 + -2;
+          *puVar4 = *puVar7;
+          *puVar7 = uVar1;
           uVar1 = *puVar3;
-          puVar7 = puVar6 + -2;
-          *puVar3 = *puVar7;
-          *puVar7 = uVar1;
-          uVar1 = *puVar4;
-          *puVar4 = puVar6[-1];
+          *puVar3 = puVar6[-1];
           puVar6[-1] = uVar1;
-          puVar4 = puVar3;
+          puVar3 = puVar4;
           puVar6 = puVar7;
-          puVar7 = puVar8;
           goto LAB_0;
         }
         uVar1 = *puVar5;
         *puVar5 = *puVar8;
         *puVar8 = uVar1;
         uVar1 = puVar5[1];
         puVar5[1] = puVar7[-1];
         puVar7[-1] = uVar1;
       }
     }
     puVar5 = puVar5 + 2;
-    puVar7 = puVar8;
   } while( true );
 }
 

```


## CCursorVisual::GetCursorShapeBounds

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,name,fullname,refcount,length,sig,address,calling|
|ratio|0.3|
|i_ratio|0.38|
|m_ratio|0.9|
|b_ratio|0.83|
|match_types|StructuralGraphExactHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|`name`|GetCursorShapeBounds|GetHardwareShapeBounds|
|`fullname`|CCursorVisual::GetCursorShapeBounds|CCursorVisual::GetHardwareShapeBounds|
|`refcount`|6|2|
|`length`|231|269|
|called|CMILMatrix::Transform2DBoundsHelper<1><br>CVisual::GetWorldTransform<br>CVisualTree::_IsInTree<br>TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::IsEmpty<br>__security_check_cookie|CMILMatrix::Transform2DBoundsHelper<1><br>CVisual::GetWorldTransform<br>CVisualTree::_IsInTree<br>TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::IsEmpty<br>__security_check_cookie|
|`calling`|COverlayContext::BeginOverlayCandidateCollection<br>COverlayContext::EndOverlayCandidateCollection<br>COverlayContext::TryEnableHardwareCursor|COverlayContext::GetCursorBounds|
|paramcount|2|2|
|`address`|180231bb0|1802930fc|
|`sig`|TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> __thiscall GetCursorShapeBounds(CCursorVisual * this, CDesktopTree * param_1)|TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> __thiscall GetHardwareShapeBounds(CCursorVisual * this, CDesktopTree * param_1)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### CCursorVisual::GetCursorShapeBounds Calling Diff


```diff
--- CCursorVisual::GetCursorShapeBounds calling
+++ CCursorVisual::GetHardwareShapeBounds calling
@@ -1,3 +1 @@
-COverlayContext::BeginOverlayCandidateCollection
-COverlayContext::EndOverlayCandidateCollection
-COverlayContext::TryEnableHardwareCursor
+COverlayContext::GetCursorBounds
```


### CCursorVisual::GetCursorShapeBounds Diff


```diff
--- CCursorVisual::GetCursorShapeBounds
+++ CCursorVisual::GetHardwareShapeBounds
@@ -1,53 +1,57 @@
 
 /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
 /* public: class TMilRect_<float,struct D2D_RECT_F,struct D3D_RECT_F,struct
    D2D_POINTANDSIZE_F,struct RectUniqueness::NotNeeded> __cdecl
-   CCursorVisual::GetCursorShapeBounds(class CDesktopTree const * __ptr64)const __ptr64 */
+   CCursorVisual::GetHardwareShapeBounds(class CDesktopTree const * __ptr64)const __ptr64 */
 
 CDesktopTree * __thiscall
-CCursorVisual::GetCursorShapeBounds(CCursorVisual *this,CDesktopTree *param_1)
+CCursorVisual::GetHardwareShapeBounds(CCursorVisual *this,CDesktopTree *param_1)
 
 {
-  bool bVar1;
-  long lVar2;
+  longlong lVar1;
+  bool bVar2;
+  long lVar3;
   CVisualTree *in_R8;
-  undefined8 uVar3;
   undefined8 uVar4;
-  undefined1 auStackY_c8 [32];
-  CMILMatrix local_98 [64];
-  undefined4 local_58;
-  undefined8 local_48;
-  undefined8 uStack_40;
-  ulonglong local_38;
+  undefined8 uVar5;
+  undefined1 auStackY_b8 [32];
+  CMILMatrix local_88 [64];
+  undefined4 local_48;
+  float local_38;
+  float fStack_34;
+  float fStack_30;
+  float fStack_2c;
+  ulonglong local_28;
   
-  local_38 = __security_cookie ^ (ulonglong)auStackY_c8;
-  bVar1 = CVisualTree::_IsInTree(in_R8,(CVisual *)this,0);
-  if (bVar1) {
-    uVar3 = *(undefined8 *)(*(longlong *)(this + 0x2c0) + 0x80);
-    uVar4 = *(undefined8 *)(*(longlong *)(this + 0x2c0) + 0x88);
-    local_48 = uVar3;
-    uStack_40 = uVar4;
-    bVar1 = TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::IsEmpty
-                      ((TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded> *)&local_48)
+  local_28 = __security_cookie ^ (ulonglong)auStackY_b8;
+  bVar2 = CVisualTree::_IsInTree(in_R8,(CVisual *)this,0);
+  if (bVar2) {
+    lVar1 = *(longlong *)(this + 0x2c0);
+    local_38 = *(float *)(lVar1 + 0x80) + *(float *)(lVar1 + 0xd4);
+    fStack_30 = *(float *)(lVar1 + 0x88) + *(float *)(lVar1 + 0xd4);
+    fStack_34 = *(float *)(lVar1 + 0x84) + *(float *)(lVar1 + 0xd8);
+    fStack_2c = *(float *)(lVar1 + 0x8c) + *(float *)(lVar1 + 0xd8);
+    bVar2 = TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::IsEmpty
+                      ((TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded> *)&local_38)
     ;
-    if (!bVar1) {
-      local_58 = 0;
-      lVar2 = CVisual::GetWorldTransform
-                        ((CVisual *)this,in_R8,0,local_98,(bool *)0x0,(CMILMatrix *)0x0);
-      if (-1 < lVar2) {
+    if (!bVar2) {
+      local_48 = 0;
+      lVar3 = CVisual::GetWorldTransform
+                        ((CVisual *)this,in_R8,0,local_88,(bool *)0x0,(CMILMatrix *)0x0);
+      if (-1 < lVar3) {
         CMILMatrix::Transform2DBoundsHelper<1>
-                  (local_98,(D2D_RECT_F *)&local_48,(D2D_RECT_F *)&local_48);
-        uVar3 = local_48;
-        uVar4 = uStack_40;
+                  (local_88,(D2D_RECT_F *)&local_38,(D2D_RECT_F *)&local_38);
       }
     }
-    *(undefined8 *)param_1 = uVar3;
-    *(undefined8 *)(param_1 + 8) = uVar4;
+    uVar4 = CONCAT44(fStack_34,local_38);
+    uVar5 = CONCAT44(fStack_2c,fStack_30);
   }
   else {
-    *(undefined8 *)param_1 = 0;
-    *(undefined8 *)(param_1 + 8) = 0;
+    uVar4 = 0;
+    uVar5 = 0;
   }
+  *(undefined8 *)param_1 = uVar4;
+  *(undefined8 *)(param_1 + 8) = uVar5;
   return param_1;
 }
 

```


## CCursorState::EnsureDestRectAndTransform

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,name,fullname,length,sig,address|
|ratio|0.93|
|i_ratio|0.75|
|m_ratio|1.0|
|b_ratio|0.97|
|match_types|StructuralGraphExactHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|`name`|EnsureDestRectAndTransform|EnsureShapeRectAndTransform|
|`fullname`|CCursorState::EnsureDestRectAndTransform|CCursorState::EnsureShapeRectAndTransform|
|refcount|3|3|
|`length`|634|638|
|called|CMILMatrix::Invert<br>CMILMatrix::Multiply<br>CMILMatrix::Scale<br>CMILMatrix::SetRotation<br>CMILMatrix::Transform2DBoundsHelper<0><br>CMILMatrix::Translate<br>_guard_dispatch_icall$thunk$10345483385596137414<br>wil::details::in1diag3::FailFast_Unexpected|CMILMatrix::Invert<br>CMILMatrix::Multiply<br>CMILMatrix::Scale<br>CMILMatrix::SetRotation<br>CMILMatrix::Transform2DBoundsHelper<0><br>CMILMatrix::Translate<br>_guard_dispatch_icall$thunk$10345483385596137414<br>wil::details::in1diag3::FailFast_Unexpected|
|calling|CCursorState::EnsureCompositionResources<br>CCursorState::ProcessStateChanges|CCursorState::EnsureCompositionResources<br>CCursorState::ProcessStateChanges|
|paramcount|2|2|
|`address`|1802b52f4|1802b5fc8|
|`sig`|void __thiscall EnsureDestRectAndTransform(CCursorState * this, bool param_1)|void __thiscall EnsureShapeRectAndTransform(CCursorState * this, bool param_1)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### CCursorState::EnsureDestRectAndTransform Diff


```diff
--- CCursorState::EnsureDestRectAndTransform
+++ CCursorState::EnsureShapeRectAndTransform
@@ -1,101 +1,101 @@
 
 /* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
    guard_dispatch_icall */
-/* private: void __cdecl CCursorState::EnsureDestRectAndTransform(bool) __ptr64 */
+/* private: void __cdecl CCursorState::EnsureShapeRectAndTransform(bool) __ptr64 */
 
-void __thiscall CCursorState::EnsureDestRectAndTransform(CCursorState *this,bool param_1)
+void __thiscall CCursorState::EnsureShapeRectAndTransform(CCursorState *this,bool param_1)
 
 {
   bool bVar1;
   longlong *plVar2;
   void *unaff_retaddr;
   uint local_res8;
   uint local_resc;
   undefined4 local_d8;
   undefined4 local_d4;
   float local_d0;
   float local_cc;
   undefined4 local_c8;
   undefined4 local_c4;
   undefined4 local_c0;
   undefined8 local_b8;
   undefined8 uStack_b0;
   undefined8 local_a8;
   undefined8 uStack_a0;
   undefined8 local_98;
   undefined8 uStack_90;
   float local_88;
   float local_84;
   undefined4 local_80;
   undefined4 local_7c;
   undefined4 local_78;
   CMILMatrix local_68 [64];
   undefined4 local_28;
   
   if ((this[0x73] == (CCursorState)0x0) || (param_1)) {
     if (*(longlong *)(this + 0xb0) == 0) {
       local_a8._4_4_ = 1.0;
+      *(undefined4 *)(this + 0x90) = 0x3f800000;
+      local_84 = 0.0;
       *(undefined8 *)(this + 0x88) = 0;
-      local_84 = 0.0;
+      local_88 = 0.0;
       *(undefined8 *)(this + 0x80) = 0;
-      local_88 = 0.0;
-      *(undefined4 *)(this + 0x90) = 0x3f800000;
       local_a8._0_4_ = 0;
       local_b8._4_4_ = 0;
     }
     else {
-      plVar2 = (longlong *)(*(longlong *)(*(longlong *)(this + 0xb0) + 0x18) + 0x78);
+      plVar2 = (longlong *)(*(longlong *)(*(longlong *)(this + 0xb0) + 0x10) + 0x78);
       local_78 = 0;
       (**(code **)(*plVar2 + 0x20))(plVar2,&local_res8);
       local_d8 = 0;
       local_d4 = 0;
       local_d0 = (float)local_res8;
       local_cc = (float)local_resc;
       if (this[0x72] != (CCursorState)0x0) {
         local_d0 = local_d0 + 6.0;
         local_cc = local_cc + 6.0;
       }
       local_80 = 0;
       local_a8 = 0x3f80000000000000;
       uStack_a0 = 0;
       local_b8 = 0x3f800000;
       uStack_b0 = 0;
       local_7c = 0x3f800000;
       local_98 = 0;
       uStack_90 = 0x3f800000;
       local_78 = CONCAT22(local_78._2_2_,CONCAT11(local_78._1_1_ & 0xe9,0xa8)) | 0x2900;
       local_88 = -(float)**(uint **)(this + 0xb0);
       local_84 = -(float)(*(uint **)(this + 0xb0))[1];
       CMILMatrix::Scale((CMILMatrix *)&local_b8,1.0 / *(float *)(this + 0xa8),
                         1.0 / *(float *)(this + 0xa8),1.0);
       if (1.1920929e-06 <= ABS(*(float *)(this + 0xc0))) {
         local_c8 = 0;
         local_c4 = 0;
         local_28 = 0;
         local_c0 = 0x3f800000;
         CMILMatrix::SetRotation(local_68,(float3 *)&local_c8,*(float *)(this + 0xc0));
         CMILMatrix::Multiply((CMILMatrix *)&local_b8,local_68);
       }
+      CMILMatrix::Transform2DBoundsHelper<0>
+                ((CMILMatrix *)&local_b8,(D2D_RECT_F *)&local_d8,(D2D_RECT_F *)(this + 0x80));
       CMILMatrix::Translate((CMILMatrix *)&local_b8,*(float *)(this + 0xd4),*(float *)(this + 0xd8))
       ;
-      CMILMatrix::Transform2DBoundsHelper<0>
-                ((CMILMatrix *)&local_b8,(D2D_RECT_F *)&local_d8,(D2D_RECT_F *)(this + 0x80));
       bVar1 = CMILMatrix::Invert((CMILMatrix *)&local_b8);
       if (!bVar1) {
                     /* WARNING: Subroutine does not return */
         wil::details::in1diag3::FailFast_Unexpected
-                  (unaff_retaddr,0x1a4,"onecoreuap\\windows\\dwm\\dwmcore\\cursor\\cursorstate.cpp")
+                  (unaff_retaddr,0x17f,"onecoreuap\\windows\\dwm\\dwmcore\\cursor\\cursorstate.cpp")
         ;
       }
       *(undefined4 *)(this + 0x90) = (undefined4)local_b8;
     }
     *(undefined4 *)(this + 0x94) = local_b8._4_4_;
     *(undefined4 *)(this + 0x98) = (undefined4)local_a8;
     *(float *)(this + 0x9c) = local_a8._4_4_;
     *(float *)(this + 0xa0) = local_88;
     *(float *)(this + 0xa4) = local_84;
     this[0x73] = (CCursorState)0x1;
   }
   return;
 }
 

```


## CExpression::CExpression

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,name,fullname,length,sig,address,parent|
|ratio|0.67|
|i_ratio|0.64|
|m_ratio|0.93|
|b_ratio|0.93|
|match_types|SigCallingCalledHasher|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|`name`|CExpression|CInjectionAnimation|
|`fullname`|CExpression::CExpression|CInjectionAnimation::CInjectionAnimation|
|refcount|2|2|
|`length`|63|49|
|called|CBaseExpression::CBaseExpression|CBaseExpression::CBaseExpression|
|calling|CResourceFactory::Create|CResourceFactory::Create|
|paramcount|2|2|
|`address`|18014e484|18029f27c|
|`sig`|undefined __thiscall CExpression(CExpression * this, CComposition * param_1)|undefined __thiscall CInjectionAnimation(CInjectionAnimation * this, CComposition * param_1)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### CExpression::CExpression Diff


```diff
--- CExpression::CExpression
+++ CInjectionAnimation::CInjectionAnimation
@@ -1,15 +1,14 @@
 
-/* public: __cdecl CExpression::CExpression(class CComposition * __ptr64) __ptr64 */
+/* public: __cdecl CInjectionAnimation::CInjectionAnimation(class CComposition * __ptr64) __ptr64 */
 
-CExpression * __thiscall CExpression::CExpression(CExpression *this,CComposition *param_1)
+CInjectionAnimation * __thiscall
+CInjectionAnimation::CInjectionAnimation(CInjectionAnimation *this,CComposition *param_1)
 
 {
   CBaseExpression::CBaseExpression((CBaseExpression *)this,param_1);
   *(undefined ***)this = &_vftable_;
-  *(undefined8 *)(this + 0x148) = 0;
-  *(undefined8 *)(this + 0x150) = 0;
-  *(undefined8 *)(this + 0x158) = 0;
-  *(undefined8 *)(this + 0x160) = 0;
+  *(undefined8 *)(this + 0x140) = 0;
+  *(undefined8 *)(this + 0x14c) = 0;
   return this;
 }
 

```


## CLayerVisual::CLayerVisual

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,name,fullname,length,sig,address,parent|
|ratio|0.55|
|i_ratio|0.52|
|m_ratio|0.71|
|b_ratio|0.65|
|match_types|SigCallingCalledHasher|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|`name`|CLayerVisual|CTextVisual|
|`fullname`|CLayerVisual::CLayerVisual|CTextVisual::CTextVisual|
|refcount|2|2|
|`length`|41|98|
|called|CVisual::CVisual|CVisual::CVisual|
|calling|CResourceFactory::Create|CResourceFactory::Create|
|paramcount|2|2|
|`address`|180218018|1802aaeec|
|`sig`|undefined __thiscall CLayerVisual(CLayerVisual * this, CComposition * param_1)|undefined __thiscall CTextVisual(CTextVisual * this, CComposition * param_1)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### CLayerVisual::CLayerVisual Diff


```diff
--- CLayerVisual::CLayerVisual
+++ CTextVisual::CTextVisual
@@ -1,12 +1,20 @@
 
-/* public: __cdecl CLayerVisual::CLayerVisual(class CComposition * __ptr64) __ptr64 */
+/* public: __cdecl CTextVisual::CTextVisual(class CComposition * __ptr64) __ptr64 */
 
-CLayerVisual * __thiscall CLayerVisual::CLayerVisual(CLayerVisual *this,CComposition *param_1)
+CTextVisual * __thiscall CTextVisual::CTextVisual(CTextVisual *this,CComposition *param_1)
 
 {
   CVisual::CVisual((CVisual *)this,param_1);
+  *(undefined8 *)(this + 0x2a8) = 0;
+  *(undefined8 *)(this + 0x2b0) = 0;
+  *(undefined8 *)(this + 0x2b8) = 0;
+  *(undefined8 *)(this + 0x2c0) = 0;
+  *(undefined8 *)(this + 0x2c8) = 0;
+  *(undefined8 *)(this + 0x2d0) = 0;
+  *(undefined8 *)(this + 0x2d8) = 0;
+  *(undefined8 *)(this + 0x2e0) = 0;
+  *(undefined8 *)(this + 0x2e8) = 0;
   *(undefined ***)this = &_vftable_;
-  *(undefined8 *)(this + 0x2b8) = 0;
   return this;
 }
 

```


## CCursorState::EnsureHardwareOverlayCleared

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,name,fullname,refcount,length,sig,address,calling|
|ratio|0.91|
|i_ratio|0.77|
|m_ratio|1.0|
|b_ratio|0.92|
|match_types|SigCallingCalledHasher|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|`name`|EnsureHardwareOverlayCleared|HideHardwareShape|
|`fullname`|CCursorState::EnsureHardwareOverlayCleared|CCursorState::HideHardwareShape|
|`refcount`|6|7|
|`length`|102|108|
|called|WIN32U.DLL::NtHWCursorUpdatePointer<br>__security_check_cookie|WIN32U.DLL::NtHWCursorUpdatePointer<br>__security_check_cookie|
|`calling`|CCursorState::ClearVisual<br>CCursorState::DisableHardwareCursor<br>CCursorState::TryEnableHardwareCursor<br>CCursorState::UpdateHardwareCursorOverlay|CCursorState::ClearVisual<br>CCursorState::ForceSoftwareShape<br>CCursorState::ProcessStateChanges<br>CCursorState::SetPosition<br>CCursorState::UpdateHardwareCursor<br>CCursorVisual::RemoveMonitorData|
|paramcount|2|2|
|`address`|1802b5578|1802b640c|
|`sig`|void __thiscall EnsureHardwareOverlayCleared(CCursorState * this, MonitorData * param_1)|void __thiscall HideHardwareShape(CCursorState * this, MonitorData * param_1)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### CCursorState::EnsureHardwareOverlayCleared Calling Diff


```diff
--- CCursorState::EnsureHardwareOverlayCleared calling
+++ CCursorState::HideHardwareShape calling
@@ -2,3 +2,5 @@
-CCursorState::DisableHardwareCursor
-CCursorState::TryEnableHardwareCursor
-CCursorState::UpdateHardwareCursorOverlay
+CCursorState::ForceSoftwareShape
+CCursorState::ProcessStateChanges
+CCursorState::SetPosition
+CCursorState::UpdateHardwareCursor
+CCursorVisual::RemoveMonitorData
```


### CCursorState::EnsureHardwareOverlayCleared Diff


```diff
--- CCursorState::EnsureHardwareOverlayCleared
+++ CCursorState::HideHardwareShape
@@ -1,29 +1,29 @@
 
 /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
-/* private: void __cdecl CCursorState::EnsureHardwareOverlayCleared(struct CCursorState::MonitorData
-   * __ptr64) __ptr64 */
+/* private: void __cdecl CCursorState::HideHardwareShape(class CCursorState::MonitorData * __ptr64)
+   __ptr64 */
 
-void __thiscall CCursorState::EnsureHardwareOverlayCleared(CCursorState *this,MonitorData *param_1)
+void __thiscall CCursorState::HideHardwareShape(CCursorState *this,MonitorData *param_1)
 
 {
   undefined1 auStack_48 [32];
   undefined8 local_28;
   undefined4 local_20;
   undefined4 local_1c;
   undefined4 local_18;
   undefined4 local_14;
   ulonglong local_10;
   
   local_10 = __security_cookie ^ (ulonglong)auStack_48;
-  if (param_1[0x7c] != (MonitorData)0x0) {
+  if (*(int *)(param_1 + 0x98) == 1) {
     local_28 = *(undefined8 *)param_1;
     local_1c = 0;
     local_18 = 0;
     local_14 = 0;
     local_20 = *(undefined4 *)(param_1 + 8);
     NtHWCursorUpdatePointer(&local_28,0);
-    param_1[0x7c] = (MonitorData)0x0;
+    *(undefined4 *)(param_1 + 0x98) = 0;
   }
   return;
 }
 

```


## CCursorState::UpdateHardwareCursorOverlay

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,name,fullname,length,sig,address,calling,called|
|ratio|0.11|
|i_ratio|0.15|
|m_ratio|0.9|
|b_ratio|0.11|
|match_types|StringsRefsHasher|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|`name`|UpdateHardwareCursorOverlay|SetHardwareShapeAndPosition|
|`fullname`|CCursorState::UpdateHardwareCursorOverlay|CCursorState::SetHardwareShapeAndPosition|
|refcount|3|3|
|`length`|1131|908|
|`called`|CCursorState::EnsureHardwareOverlayCleared<br>CCursorState::PaddedBitmap::Reset<br>WIN32U.DLL::NtHWCursorUpdatePointer<br>__security_check_cookie<br>_guard_dispatch_icall$thunk$10345483385596137414<br>std::_Ref_count_base::_Decref<br>std::shared_ptr<CCursorState::ShapeData>::operator=<br>wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy><br>wil::com_ptr_t<ILegacyRemotingSwapChain,wil::err_returncode_policy>::reset<br>wil::details::in1diag3::_FailFast_Hr|CCursorState::PaddedBitmap::Reset<br>TMilRect<int,tagRECT,D2D_POINTANDSIZE_L,RectUniqueness::_CMilRectL_>::IsEquivalentTo<br>WIN32U.DLL::NtHWCursorUpdatePointer<br>__security_check_cookie<br>_guard_dispatch_icall$thunk$10345483385596137414<br>std::_Ref_count_base::_Decref<br>std::shared_ptr<CCursorState::ShapeData>::operator=<br>wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy><br>wil::com_ptr_t<ILegacyRemotingSwapChain,wil::err_returncode_policy>::reset<br>wil::details::in1diag3::_FailFast_Hr|
|`calling`|CCursorState::SetPositionInternal<br>CCursorState::TryEnableHardwareCursor|CCursorState::SetPosition<br>CCursorState::UpdateHardwareCursor|
|paramcount|3|5|
|`address`|1802b6dcc|1802b70dc|
|`sig`|void __thiscall UpdateHardwareCursorOverlay(CCursorState * this, MonitorData * param_1, bool param_2)|bool __thiscall SetHardwareShapeAndPosition(CCursorState * this, MonitorData * param_1, TMilRect_<int,tagRECT,D2D_POINTANDSIZE_L,Mil3DRectL,RectUniqueness::_CMilRectL_> * param_2, TMilRect_<int,tagRECT,D2D_POINTANDSIZE_L,Mil3DRectL,RectUniqueness::_CMilRectL_> * param_3, bool param_4)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### CCursorState::UpdateHardwareCursorOverlay Called Diff


```diff
--- CCursorState::UpdateHardwareCursorOverlay called
+++ CCursorState::SetHardwareShapeAndPosition called
@@ -1 +0,0 @@
-CCursorState::EnsureHardwareOverlayCleared
@@ -2,0 +2 @@
+TMilRect<int,tagRECT,D2D_POINTANDSIZE_L,RectUniqueness::_CMilRectL_>::IsEquivalentTo
```


### CCursorState::UpdateHardwareCursorOverlay Calling Diff


```diff
--- CCursorState::UpdateHardwareCursorOverlay calling
+++ CCursorState::SetHardwareShapeAndPosition calling
@@ -1,2 +1,2 @@
-CCursorState::SetPositionInternal
-CCursorState::TryEnableHardwareCursor
+CCursorState::SetPosition
+CCursorState::UpdateHardwareCursor
```


### CCursorState::UpdateHardwareCursorOverlay Diff


```diff
--- CCursorState::UpdateHardwareCursorOverlay
+++ CCursorState::SetHardwareShapeAndPosition
@@ -1,228 +1,182 @@
 
 /* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
    guard_dispatch_icall */
 /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
-/* private: void __cdecl CCursorState::UpdateHardwareCursorOverlay(struct CCursorState::MonitorData
-   * __ptr64,bool) __ptr64 */
+/* private: bool __cdecl CCursorState::SetHardwareShapeAndPosition(class CCursorState::MonitorData *
+   __ptr64,class TMilRect_<int,struct tagRECT,struct D2D_POINTANDSIZE_L,struct Mil3DRectL,struct
+   RectUniqueness::_CMilRectL_> const & __ptr64,class TMilRect_<int,struct tagRECT,struct
+   D2D_POINTANDSIZE_L,struct Mil3DRectL,struct RectUniqueness::_CMilRectL_> const & __ptr64,bool)
+   __ptr64 */
 
-void __thiscall
-CCursorState::UpdateHardwareCursorOverlay(CCursorState *this,MonitorData *param_1,bool param_2)
+bool __thiscall
+CCursorState::SetHardwareShapeAndPosition
+          (CCursorState *this,MonitorData *param_1,
+          TMilRect_<int,tagRECT,D2D_POINTANDSIZE_L,Mil3DRectL,RectUniqueness::_CMilRectL_> *param_2,
+          TMilRect_<int,tagRECT,D2D_POINTANDSIZE_L,Mil3DRectL,RectUniqueness::_CMilRectL_> *param_3,
+          bool param_4)
 
 {
-  PaddedBitmap *this_00;
-  int *piVar1;
-  longlong lVar2;
-  code *pcVar3;
-  bool bVar4;
-  uint uVar5;
-  long lVar6;
-  int iVar7;
-  _Ref_count_base *this_01;
-  longlong *plVar8;
-  undefined8 *puVar9;
-  CCursorState *this_02;
-  int iVar10;
-  int iVar11;
-  uint uVar12;
-  int iVar13;
-  uint uVar14;
-  float fVar15;
-  float fVar16;
+  shared_ptr<CCursorState::ShapeData> *this_00;
+  PaddedBitmap *this_01;
+  longlong lVar1;
+  code *pcVar2;
+  bool bVar3;
+  long lVar4;
+  int iVar5;
+  longlong *plVar6;
+  uint uVar7;
+  undefined8 *puVar8;
+  uint uVar9;
+  bool bVar10;
   void *unaff_retaddr;
-  undefined1 auStack_138 [32];
-  undefined8 local_118;
-  char local_108;
-  float local_104;
-  undefined4 local_100 [2];
-  longlong *local_f8;
-  undefined4 local_f0;
-  uint local_ec;
-  int local_e8;
-  undefined8 local_e0;
-  uint local_d8;
-  uint uStack_d4;
-  undefined8 *local_d0;
-  _Ref_count_base *p_Stack_c8;
-  undefined8 local_c0;
-  undefined8 uStack_b8;
-  undefined8 local_b0;
-  undefined8 uStack_a8;
-  int local_a0 [2];
-  undefined8 uStack_98;
-  undefined8 local_90;
-  undefined4 local_88;
-  int local_84;
-  int local_80;
-  undefined4 local_7c;
-  undefined8 local_78;
-  uint local_70;
-  uint local_6c;
-  ulonglong local_68;
+  undefined1 auStack_f8 [32];
+  longlong local_d8;
+  undefined4 local_c8 [2];
+  longlong *local_c0;
+  TMilRect<int,tagRECT,D2D_POINTANDSIZE_L,RectUniqueness::_CMilRectL_> *local_b8;
+  uint local_b0;
+  uint uStack_ac;
+  undefined8 local_a8;
+  undefined8 uStack_a0;
+  undefined8 local_98;
+  TMilRect<int,tagRECT,D2D_POINTANDSIZE_L,RectUniqueness::_CMilRectL_> *pTStack_90;
+  undefined4 local_88 [2];
+  uint local_80 [2];
+  undefined8 uStack_78;
+  undefined8 local_70;
+  undefined4 local_68;
+  undefined4 local_64;
+  undefined4 local_60;
+  undefined4 local_5c;
+  ulonglong local_58;
   
-  local_68 = __security_cookie ^ (ulonglong)auStack_138;
-  piVar1 = *(int **)(param_1 + 0x60);
-  local_104 = *(float *)(this + 0x38) * *(float *)(param_1 + 0x10) +
-              *(float *)(this + 0x3c) * *(float *)(param_1 + 0x20) + *(float *)(param_1 + 0x40) +
-              6291456.0;
-  fVar16 = (float)((((int)(*(float *)(this + 0x3c) * *(float *)(param_1 + 0x1c) +
-                           *(float *)(this + 0x38) * *(float *)(param_1 + 0xc) +
-                           *(float *)(param_1 + 0x3c) + 6291456.0) << 10) >> 0xb) - *piVar1);
-  fVar15 = (float)((((int)local_104 << 10) >> 0xb) - piVar1[1]);
-  local_108 = param_2;
-  (**(code **)(*(longlong *)(*(longlong *)(piVar1 + 6) + 0x78) + 0x20))
-            ((longlong *)(*(longlong *)(piVar1 + 6) + 0x78),&local_d8);
-  bVar4 = false;
-  iVar10 = (int)fVar16;
-  local_e8 = *(int *)(param_1 + 0x50) - (int)(longlong)fVar16;
-  if (local_e8 < 0) {
-    local_e8 = 0;
+  local_58 = __security_cookie ^ (ulonglong)auStack_f8;
+  if (this[0x50] != (CCursorState)0x0) {
+    return false;
   }
-  iVar13 = (int)fVar15;
-  local_104 = (float)(*(int *)(param_1 + 0x54) - (int)(longlong)fVar15);
-  if ((int)local_104 < 0) {
-    local_104 = (float)0;
+  this_00 = (shared_ptr<CCursorState::ShapeData> *)(param_1 + 0x70);
+  if (*(longlong *)this_00 == 0) {
+    return false;
   }
-  iVar7 = (iVar10 - *(int *)(param_1 + 0x58)) + local_d8;
-  if (iVar7 < 0) {
-    iVar7 = 0;
+  bVar10 = true;
+  if (*(int *)(param_1 + 0x98) != 0) {
+    bVar10 = param_4;
   }
-  iVar11 = (iVar13 - *(int *)(param_1 + 0x5c)) + uStack_d4;
-  if (iVar11 < 0) {
-    iVar11 = 0;
-  }
-  local_ec = iVar7 + local_e8;
-  if (local_d8 < (uint)(iVar7 + local_e8)) {
-    local_ec = local_d8;
-  }
-  local_ec = local_d8 - local_ec;
-  uVar14 = (int)local_104 + iVar11;
-  if (uStack_d4 < (uint)((int)local_104 + iVar11)) {
-    uVar14 = uStack_d4;
-  }
-  uVar12 = uStack_d4 - uVar14;
-  this_02 = (CCursorState *)(ulonglong)uVar14;
-  if ((local_ec != 0) && (uVar12 != 0)) {
-    local_90 = *(undefined8 *)param_1;
-    local_88 = *(undefined4 *)(param_1 + 8);
-    local_7c = 1;
-    uVar14 = local_d8;
-    if (local_d8 < uStack_d4) {
-      uVar14 = uStack_d4;
-    }
-    local_c0 = 0;
-    uStack_b8 = 0;
-    local_b0 = 0;
-    uStack_a8 = 0;
-    if ((param_1[0x7d] != (MonitorData)0x0) && ((local_ec != local_d8 || (uVar12 != uStack_d4)))) {
-      bVar4 = true;
-    }
-    local_84 = iVar10;
-    local_80 = iVar13;
-    if (((local_108 != '\0') || (param_1[0x7c] == (MonitorData)0x0)) ||
-       (puVar9 = (undefined8 *)0x0, bVar4)) {
-      local_70 = local_d8;
-      local_d0 = &local_c0;
-      local_f8 = (longlong *)0x0;
-      local_78 = 0;
-      local_6c = uStack_d4;
-      lVar2 = *(longlong *)(*(longlong *)(param_1 + 0x60) + 0x18);
-      pcVar3 = *(code **)(*(longlong *)(lVar2 + 0x10) + 0x18);
+  plVar6 = (longlong *)(*(longlong *)(*(longlong *)this_00 + 0x10) + 0x78);
+  local_b8 = (TMilRect<int,tagRECT,D2D_POINTANDSIZE_L,RectUniqueness::_CMilRectL_> *)param_3;
+  (**(code **)(*plVar6 + 0x20))(plVar6,&local_b0);
+  uVar7 = uStack_ac;
+  local_70 = *(undefined8 *)param_1;
+  puVar8 = (undefined8 *)0x0;
+  local_68 = *(undefined4 *)(param_1 + 8);
+  local_64 = *(undefined4 *)param_2;
+  local_60 = *(undefined4 *)(param_2 + 4);
+  local_5c = 1;
+  local_a8 = 0;
+  uStack_a0 = 0;
+  local_98 = 0;
+  pTStack_90 = (TMilRect<int,tagRECT,D2D_POINTANDSIZE_L,RectUniqueness::_CMilRectL_> *)0x0;
+  uVar9 = local_b0;
+  if ((param_1[0x9c] == (MonitorData)0x0) ||
+     (bVar3 = TMilRect<int,tagRECT,D2D_POINTANDSIZE_L,RectUniqueness::_CMilRectL_>::IsEquivalentTo
+                        (local_b8,(TMilRect<int,struct_tagRECT,struct_D2D_POINTANDSIZE_L,struct_RectUniqueness::_CMilRectL_>
+                                   *)param_2), bVar3)) {
+    if (bVar10 == false) goto LAB_0;
+    bVar10 = false;
+    if (uVar9 == uVar7) {
+      local_c0 = (longlong *)0x0;
+      local_80[0] = 0;
+      local_80[1] = 0;
+      uStack_78 = (_Ref_count_base *)CONCAT44(uVar7,uVar9);
+      lVar1 = *(longlong *)(*(longlong *)this_00 + 0x10);
+      pcVar2 = *(code **)(*(longlong *)(lVar1 + 0x10) + 0x18);
       wil::com_ptr_t<ILegacyRemotingSwapChain,wil::err_returncode_policy>::reset
-                ((com_ptr_t<ILegacyRemotingSwapChain,wil::err_returncode_policy> *)&local_f8);
-      iVar10 = (*pcVar3)(lVar2 + 0x10,&local_78,1,&local_f8);
-      if (iVar10 < 0) {
+                ((com_ptr_t<ILegacyRemotingSwapChain,wil::err_returncode_policy> *)&local_c0);
+      iVar5 = (*pcVar2)(lVar1 + 0x10,local_80,1,&local_c0);
+      if (iVar5 < 0) {
                     /* WARNING: Subroutine does not return */
         wil::details::in1diag3::_FailFast_Hr
-                  (unaff_retaddr,0x6b8,"onecoreuap\\windows\\dwm\\dwmcore\\cursor\\cursorstate.cpp",
-                   iVar10);
+                  (unaff_retaddr,0x208,"onecoreuap\\windows\\dwm\\dwmcore\\cursor\\cursorstate.cpp",
+                   iVar5);
       }
-      local_f0 = 0;
-      local_e0 = 0;
-      local_100[0] = 0;
-      iVar10 = (**(code **)(*local_f8 + 0x30))(local_f8,&local_f0,&local_e0);
-      if (iVar10 < 0) {
+      local_88[0] = 0;
+      local_b8 = (TMilRect<int,tagRECT,D2D_POINTANDSIZE_L,RectUniqueness::_CMilRectL_> *)0x0;
+      local_c8[0] = 0;
+      iVar5 = (**(code **)(*local_c0 + 0x30))(local_c0,local_88,&local_b8);
+      if (iVar5 < 0) {
                     /* WARNING: Subroutine does not return */
         wil::details::in1diag3::_FailFast_Hr
-                  (unaff_retaddr,0x6be,"onecoreuap\\windows\\dwm\\dwmcore\\cursor\\cursorstate.cpp",
-                   iVar10);
+                  (unaff_retaddr,0x20d,"onecoreuap\\windows\\dwm\\dwmcore\\cursor\\cursorstate.cpp",
+                   iVar5);
       }
-      iVar10 = (**(code **)(*local_f8 + 0x28))(local_f8,local_100);
-      uVar5 = local_ec;
-      if (iVar10 < 0) {
+      iVar5 = (**(code **)(*local_c0 + 0x28))(local_c0,local_c8);
+      if (iVar5 < 0) {
                     /* WARNING: Subroutine does not return */
         wil::details::in1diag3::_FailFast_Hr
-                  (unaff_retaddr,0x6bf,"onecoreuap\\windows\\dwm\\dwmcore\\cursor\\cursorstate.cpp",
-                   iVar10);
+                  (unaff_retaddr,0x20e,"onecoreuap\\windows\\dwm\\dwmcore\\cursor\\cursorstate.cpp",
+                   iVar5);
       }
-      if (bVar4) {
-        this_00 = (PaddedBitmap *)(this + 0x118);
-        uVar14 = local_ec;
-        if (local_ec < uVar12) {
-          uVar14 = uVar12;
-        }
-        lVar6 = PaddedBitmap::Reset(this_00,uVar14,(bool)this[0x51]);
-        iVar10 = local_e8;
-        if (lVar6 < 0) {
-          local_d0 = (undefined8 *)0x0;
-          p_Stack_c8 = (_Ref_count_base *)0x0;
-          std::shared_ptr<CCursorState::ShapeData>::operator=
-                    ((shared_ptr<CCursorState::ShapeData> *)(param_1 + 0x60),
-                     (shared_ptr<struct_CCursorState::ShapeData> *)&local_d0);
-          this_01 = p_Stack_c8;
-          if (p_Stack_c8 != (_Ref_count_base *)0x0) {
-            std::_Ref_count_base::_Decref(p_Stack_c8);
-          }
-          EnsureHardwareOverlayCleared((CCursorState *)this_01,param_1);
-          wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::
-          ~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>
-                    ((com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy> *)&local_f8);
-          return;
-        }
-        local_118 = *(undefined8 *)this_00;
-        local_a0[1] = (int)local_104;
-        local_a0[0] = local_e8;
-        uStack_98 = (_Ref_count_base *)CONCAT44((int)local_104 + uVar12,uVar5 + local_e8);
-        plVar8 = (longlong *)(*(longlong *)(*(longlong *)(param_1 + 0x60) + 0x18) + 0x78);
-        iVar13 = (**(code **)(*plVar8 + 0x40))
-                           (plVar8,local_a0,*(int *)(this + 0x120),
-                            *(int *)(this + 0x120) * *(int *)(this + 0x124));
-        if (iVar13 < 0) {
-                    /* WARNING: Subroutine does not return */
-          wil::details::in1diag3::_FailFast_Hr
-                    (unaff_retaddr,0x6da,
-                     "onecoreuap\\windows\\dwm\\dwmcore\\cursor\\cursorstate.cpp",iVar13);
-        }
-        local_e0 = *(undefined8 *)this_00;
-        local_84 = local_84 + iVar10;
-        local_100[0] = *(undefined4 *)(this + 0x120);
-        local_80 = local_80 + (int)local_104;
-      }
-      local_b0 = **(undefined8 **)(param_1 + 0x60);
-      uStack_b8 = CONCAT44(local_100[0],uVar14);
-      local_c0 = CONCAT44(uVar14,(this[0x51] != (CCursorState)0x0) + 1);
-      uStack_a8 = local_e0;
+      puVar8 = &local_a8;
+      local_98 = **(undefined8 **)this_00;
+      uStack_a0 = CONCAT44(local_c8[0],uStack_ac);
+      local_a8 = CONCAT44(local_b0,(this[0x51] != (CCursorState)0x0) + 1);
+      pTStack_90 = local_b8;
       wil::com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>::
       ~com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy>
-                ((com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy> *)&local_f8);
-      puVar9 = local_d0;
-    }
-    iVar10 = NtHWCursorUpdatePointer(&local_90,puVar9);
-    if (-1 < iVar10) {
-      param_1[0x7c] = (MonitorData)0x1;
-      return;
-    }
-    local_a0[0] = 0;
-    local_a0[1] = 0;
-    uStack_98 = (_Ref_count_base *)0x0;
-    std::shared_ptr<CCursorState::ShapeData>::operator=
-              ((shared_ptr<CCursorState::ShapeData> *)(param_1 + 0x60),
-               (shared_ptr<struct_CCursorState::ShapeData> *)local_a0);
-    this_02 = (CCursorState *)uStack_98;
-    if (uStack_98 != (_Ref_count_base *)0x0) {
-      std::_Ref_count_base::_Decref(uStack_98);
+                ((com_ptr_t<ID3D11VideoContext2,wil::err_returncode_policy> *)&local_c0);
+      goto LAB_0;
     }
   }
-  EnsureHardwareOverlayCleared(this_02,param_1);
-  return;
+  else {
+    bVar10 = uVar9 == uVar7;
+  }
+  this_01 = (PaddedBitmap *)(this + 0x118);
+  if (uVar7 <= uVar9 && !bVar10) {
+    uVar7 = uVar9;
+  }
+  lVar4 = PaddedBitmap::Reset(this_01,uVar7,(bool)this[0x51]);
+  if (lVar4 < 0) {
+    return false;
+  }
+  local_80[1] = *(int *)(local_b8 + 4) - *(int *)(param_2 + 4);
+  local_80[0] = *(int *)local_b8 - *(int *)param_2;
+  uStack_78 = (_Ref_count_base *)
+              CONCAT44((*(int *)(local_b8 + 0xc) - *(int *)(local_b8 + 4)) + local_80[1],
+                       (*(int *)(local_b8 + 8) - *(int *)local_b8) + local_80[0]);
+  local_d8 = (ulonglong)(*(int *)(this + 0x120) * local_80[1]) + (ulonglong)local_80[0] * 4 +
+             *(longlong *)this_01;
+  plVar6 = (longlong *)(*(longlong *)(*(longlong *)this_00 + 0x10) + 0x78);
+  iVar5 = (**(code **)(*plVar6 + 0x40))
+                    (plVar6,local_80,*(undefined4 *)(this + 0x120),
+                     *(int *)(this + 0x120) * (*(int *)(local_b8 + 0xc) - *(int *)(local_b8 + 4)) +
+                     local_80[0] * -4);
+  if (iVar5 < 0) {
+                    /* WARNING: Subroutine does not return */
+    wil::details::in1diag3::_FailFast_Hr
+              (unaff_retaddr,0x1f1,"onecoreuap\\windows\\dwm\\dwmcore\\cursor\\cursorstate.cpp",
+               iVar5);
+  }
+  local_98 = **(undefined8 **)this_00;
+  pTStack_90 = *(TMilRect<int,tagRECT,D2D_POINTANDSIZE_L,RectUniqueness::_CMilRectL_> **)this_01;
+  uStack_a0 = CONCAT44(*(undefined4 *)(this + 0x120),uVar7);
+  local_a8 = CONCAT44(uVar7,(this[0x51] != (CCursorState)0x0) + 1);
+  puVar8 = &local_a8;
+LAB_0:
+  if ((g_disableHardwareCursors == false) &&
+     (iVar5 = NtHWCursorUpdatePointer(&local_70,puVar8), -1 < iVar5)) {
+    *(undefined4 *)(param_1 + 0x8c) = local_64;
+    *(undefined4 *)(param_1 + 0x90) = local_60;
+    *(undefined4 *)(param_1 + 0x98) = 1;
+    return true;
+  }
+  local_80[0] = 0;
+  local_80[1] = 0;
+  uStack_78 = (_Ref_count_base *)0x0;
+  std::shared_ptr<CCursorState::ShapeData>::operator=
+            (this_00,(shared_ptr<class_CCursorState::ShapeData> *)local_80);
+  if (uStack_78 != (_Ref_count_base *)0x0) {
+    std::_Ref_count_base::_Decref(uStack_78);
+  }
+  return false;
 }
 

```


## CBatchDeferral::`scalar_deleting_destructor'

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,name,fullname,refcount,sig,address,called,parent|
|ratio|0.87|
|i_ratio|0.65|
|m_ratio|1.0|
|b_ratio|0.85|
|match_types|BulkBasicBlockMnemonicHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|`name`|`scalar_deleting_destructor'|`vector_deleting_destructor'|
|`fullname`|CBatchDeferral::`scalar_deleting_destructor'|CSizeResource::`vector_deleting_destructor'|
|`refcount`|3|5|
|length|66|66|
|`called`|?Free@DefaultHeap@@SAXPEAX@Z<br>CMILRefCountBaseT<IBitmapLock,CMilObjectDeleter>::FinalRelease<br>CResource::~CResource|?Free@DefaultHeap@@SAXPEAX@Z<br>CMILRefCountBaseT<IBitmapLock,CMilObjectDeleter>::FinalRelease<br>TValueResource<D2D_RECT_F,tagMILCMD_RECTRESOURCE,128>::~TValueResource<D2D_RECT_F,tagMILCMD_RECTRESOURCE,128>|
|calling|||
|paramcount|2|2|
|`address`|18022b270|180217ad0|
|`sig`|void * __thiscall `scalar_deleting_destructor'(CBatchDeferral * this, uint param_1)|void * __thiscall `vector_deleting_destructor'(CSizeResource * this, uint param_1)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### CBatchDeferral::`scalar_deleting_destructor' Called Diff


```diff
--- CBatchDeferral::`scalar_deleting_destructor' called
+++ CSizeResource::`vector_deleting_destructor' called
@@ -3 +3 @@
-CResource::~CResource
+TValueResource<D2D_RECT_F,tagMILCMD_RECTRESOURCE,128>::~TValueResource<D2D_RECT_F,tagMILCMD_RECTRESOURCE,128>
```


### CBatchDeferral::`scalar_deleting_destructor' Diff


```diff
--- CBatchDeferral::`scalar_deleting_destructor'
+++ CSizeResource::`vector_deleting_destructor'
@@ -1,20 +1,22 @@
 
-/* public: virtual void * __ptr64 __cdecl CBatchDeferral::`scalar deleting destructor'(unsigned int)
+/* public: virtual void * __ptr64 __cdecl CSizeResource::`vector deleting destructor'(unsigned int)
    __ptr64 */
 
-void * __thiscall CBatchDeferral::_scalar_deleting_destructor_(CBatchDeferral *this,uint param_1)
+void * __thiscall CSizeResource::_vector_deleting_destructor_(CSizeResource *this,uint param_1)
 
 {
-  CResource::~CResource((CResource *)this);
+  TValueResource<D2D_RECT_F,tagMILCMD_RECTRESOURCE,128>::
+  ~TValueResource<D2D_RECT_F,tagMILCMD_RECTRESOURCE,128>
+            ((TValueResource<D2D_RECT_F,tagMILCMD_RECTRESOURCE,128> *)this);
   if ((param_1 & 1) != 0) {
     if ((param_1 & 4) == 0) {
       _Free_DefaultHeap__SAXPEAX_Z(this);
     }
     else {
       CMILRefCountBaseT<IBitmapLock,CMilObjectDeleter>::FinalRelease
                 ((CMILRefCountBaseT<IBitmapLock,CMilObjectDeleter> *)this);
     }
   }
   return this;
 }
 

```


## CScenePbrMaterial::`vector_deleting_destructor'

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,name,fullname,refcount,sig,address,called,parent|
|ratio|0.87|
|i_ratio|0.65|
|m_ratio|1.0|
|b_ratio|0.85|
|match_types|BulkBasicBlockMnemonicHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|`name`|`vector_deleting_destructor'|`scalar_deleting_destructor'|
|`fullname`|CScenePbrMaterial::`vector_deleting_destructor'|CAnimationGlobalConfiguration::`scalar_deleting_destructor'|
|`refcount`|3|4|
|length|66|66|
|`called`|?Free@DefaultHeap@@SAXPEAX@Z<br>CMILRefCountBaseT<IBitmapLock,CMilObjectDeleter>::FinalRelease<br>CScenePbrMaterialGeneratedT<CScenePbrMaterial,CSceneMaterial>::~CScenePbrMaterialGeneratedT<CScenePbrMaterial,CSceneMaterial>|?Free@DefaultHeap@@SAXPEAX@Z<br>CMILRefCountBaseT<IBitmapLock,CMilObjectDeleter>::FinalRelease<br>CResource::~CResource|
|calling|||
|paramcount|2|2|
|`address`|180278dd0|1802111a0|
|`sig`|void * __thiscall `vector_deleting_destructor'(CScenePbrMaterial * this, uint param_1)|void * __thiscall `scalar_deleting_destructor'(CAnimationGlobalConfiguration * this, uint param_1)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### CScenePbrMaterial::`vector_deleting_destructor' Called Diff


```diff
--- CScenePbrMaterial::`vector_deleting_destructor' called
+++ CAnimationGlobalConfiguration::`scalar_deleting_destructor' called
@@ -3 +3 @@
-CScenePbrMaterialGeneratedT<CScenePbrMaterial,CSceneMaterial>::~CScenePbrMaterialGeneratedT<CScenePbrMaterial,CSceneMaterial>
+CResource::~CResource
```


### CScenePbrMaterial::`vector_deleting_destructor' Diff


```diff
--- CScenePbrMaterial::`vector_deleting_destructor'
+++ CAnimationGlobalConfiguration::`scalar_deleting_destructor'
@@ -1,23 +1,22 @@
 
-/* public: virtual void * __ptr64 __cdecl CScenePbrMaterial::`vector deleting destructor'(unsigned
-   int) __ptr64 */
+/* public: virtual void * __ptr64 __cdecl CAnimationGlobalConfiguration::`scalar deleting
+   destructor'(unsigned int) __ptr64 */
 
 void * __thiscall
-CScenePbrMaterial::_vector_deleting_destructor_(CScenePbrMaterial *this,uint param_1)
+CAnimationGlobalConfiguration::_scalar_deleting_destructor_
+          (CAnimationGlobalConfiguration *this,uint param_1)
 
 {
-  CScenePbrMaterialGeneratedT<CScenePbrMaterial,CSceneMaterial>::
-  ~CScenePbrMaterialGeneratedT<CScenePbrMaterial,CSceneMaterial>
-            ((CScenePbrMaterialGeneratedT<CScenePbrMaterial,CSceneMaterial> *)this);
+  CResource::~CResource((CResource *)this);
   if ((param_1 & 1) != 0) {
     if ((param_1 & 4) == 0) {
       _Free_DefaultHeap__SAXPEAX_Z(this);
     }
     else {
       CMILRefCountBaseT<IBitmapLock,CMilObjectDeleter>::FinalRelease
                 ((CMILRefCountBaseT<IBitmapLock,CMilObjectDeleter> *)this);
     }
   }
   return this;
 }
 

```


## CScenePbrMaterial::`vector_deleting_destructor'

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,fullname,refcount,sig,address,called,parent|
|ratio|0.81|
|i_ratio|0.65|
|m_ratio|1.0|
|b_ratio|0.85|
|match_types|BulkBasicBlockMnemonicHash|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|`vector_deleting_destructor'|`vector_deleting_destructor'|
|`fullname`|CScenePbrMaterial::`vector_deleting_destructor'|CSizeResource::`vector_deleting_destructor'|
|`refcount`|3|5|
|length|66|66|
|`called`|?Free@DefaultHeap@@SAXPEAX@Z<br>CMILRefCountBaseT<IBitmapLock,CMilObjectDeleter>::FinalRelease<br>CScenePbrMaterialGeneratedT<CScenePbrMaterial,CSceneMaterial>::~CScenePbrMaterialGeneratedT<CScenePbrMaterial,CSceneMaterial>|?Free@DefaultHeap@@SAXPEAX@Z<br>CMILRefCountBaseT<IBitmapLock,CMilObjectDeleter>::FinalRelease<br>TValueResource<D2D_RECT_F,tagMILCMD_RECTRESOURCE,128>::~TValueResource<D2D_RECT_F,tagMILCMD_RECTRESOURCE,128>|
|calling|||
|paramcount|2|2|
|`address`|180278dd0|180217ad0|
|`sig`|void * __thiscall `vector_deleting_destructor'(CScenePbrMaterial * this, uint param_1)|void * __thiscall `vector_deleting_destructor'(CSizeResource * this, uint param_1)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### CScenePbrMaterial::`vector_deleting_destructor' Called Diff


```diff
--- CScenePbrMaterial::`vector_deleting_destructor' called
+++ CSizeResource::`vector_deleting_destructor' called
@@ -3 +3 @@
-CScenePbrMaterialGeneratedT<CScenePbrMaterial,CSceneMaterial>::~CScenePbrMaterialGeneratedT<CScenePbrMaterial,CSceneMaterial>
+TValueResource<D2D_RECT_F,tagMILCMD_RECTRESOURCE,128>::~TValueResource<D2D_RECT_F,tagMILCMD_RECTRESOURCE,128>
```


### CScenePbrMaterial::`vector_deleting_destructor' Diff


```diff
--- CScenePbrMaterial::`vector_deleting_destructor'
+++ CSizeResource::`vector_deleting_destructor'
@@ -1,23 +1,22 @@
 
-/* public: virtual void * __ptr64 __cdecl CScenePbrMaterial::`vector deleting destructor'(unsigned
-   int) __ptr64 */
+/* public: virtual void * __ptr64 __cdecl CSizeResource::`vector deleting destructor'(unsigned int)
+   __ptr64 */
 
-void * __thiscall
-CScenePbrMaterial::_vector_deleting_destructor_(CScenePbrMaterial *this,uint param_1)
+void * __thiscall CSizeResource::_vector_deleting_destructor_(CSizeResource *this,uint param_1)
 
 {
-  CScenePbrMaterialGeneratedT<CScenePbrMaterial,CSceneMaterial>::
-  ~CScenePbrMaterialGeneratedT<CScenePbrMaterial,CSceneMaterial>
-            ((CScenePbrMaterialGeneratedT<CScenePbrMaterial,CSceneMaterial> *)this);
+  TValueResource<D2D_RECT_F,tagMILCMD_RECTRESOURCE,128>::
+  ~TValueResource<D2D_RECT_F,tagMILCMD_RECTRESOURCE,128>
+            ((TValueResource<D2D_RECT_F,tagMILCMD_RECTRESOURCE,128> *)this);
   if ((param_1 & 1) != 0) {
     if ((param_1 & 4) == 0) {
       _Free_DefaultHeap__SAXPEAX_Z(this);
     }
     else {
       CMILRefCountBaseT<IBitmapLock,CMilObjectDeleter>::FinalRelease
                 ((CMILRefCountBaseT<IBitmapLock,CMilObjectDeleter> *)this);
     }
   }
   return this;
 }
 

```


## CCursorVisual::SetNotificationMode

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,name,fullname,length,sig,address,called|
|ratio|0.69|
|i_ratio|0.45|
|m_ratio|0.92|
|b_ratio|0.82|
|match_types|Implied Match|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|`name`|SetNotificationMode|UpdateNotificationMode|
|`fullname`|CCursorVisual::SetNotificationMode|CCursorVisual::UpdateNotificationMode|
|refcount|2|2|
|`length`|191|169|
|`called`|API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::EnterCriticalSection<br>API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::LeaveCriticalSection<br>CDesktopTree::NeedsCursorPositionUpdates<br>CVisual::GetDesktopTree<br>CVisual::GetTreeDataListHead|API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::EnterCriticalSection<br>API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::LeaveCriticalSection<br>CDesktopTree::NeedsCursorPositionUpdates<br>CVisual::GetDesktopTree|
|calling|CGlobalComposition::EndUpdateCursors|CGlobalComposition::EndUpdateCursors|
|paramcount|1|1|
|`address`|180252904|180293744|
|`sig`|void __thiscall SetNotificationMode(CCursorVisual * this)|void __thiscall UpdateNotificationMode(CCursorVisual * this)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### CCursorVisual::SetNotificationMode Called Diff


```diff
--- CCursorVisual::SetNotificationMode called
+++ CCursorVisual::UpdateNotificationMode called
@@ -5 +4,0 @@
-CVisual::GetTreeDataListHead
```


### CCursorVisual::SetNotificationMode Diff


```diff
--- CCursorVisual::SetNotificationMode
+++ CCursorVisual::UpdateNotificationMode
@@ -1,31 +1,31 @@
 
-/* public: void __cdecl CCursorVisual::SetNotificationMode(void) __ptr64 */
+/* public: void __cdecl CCursorVisual::UpdateNotificationMode(void) __ptr64 */
 
-void __thiscall CCursorVisual::SetNotificationMode(CCursorVisual *this)
+void __thiscall CCursorVisual::UpdateNotificationMode(CCursorVisual *this)
 
 {
   longlong lVar1;
   bool bVar2;
-  _LIST_ENTRY *p_Var3;
   CDesktopTree *this_00;
   
+  bVar2 = false;
   if (*(longlong *)(this + 0x2c0) != 0) {
-    if (((*(longlong *)(this + 0x2c8) == *(longlong *)(*(longlong *)(this + 0x18) + 0x378)) ||
-        ((p_Var3 = CVisual::GetTreeDataListHead((CVisual *)this), p_Var3 != (_LIST_ENTRY *)0x0 &&
-         (p_Var3->Flink != p_Var3)))) ||
-       ((this_00 = CVisual::GetDesktopTree((CVisual *)this), this_00 != (CDesktopTree *)0x0 &&
-        (bVar2 = CDesktopTree::NeedsCursorPositionUpdates(this_00,this), bVar2)))) {
+    lVar1 = *(longlong *)(this + 0x18);
+    if ((*(longlong *)(this + 0x2c8) == *(longlong *)(lVar1 + 0x378)) ||
+       (*(longlong *)(lVar1 + 0x1828) != *(longlong *)(lVar1 + 0x1830))) {
       bVar2 = true;
     }
     else {
-      bVar2 = *(longlong *)(*(longlong *)(this + 0x18) + 0x1828) !=
-              *(longlong *)(*(longlong *)(this + 0x18) + 0x1830);
+      this_00 = CVisual::GetDesktopTree((CVisual *)this);
+      if (this_00 != (CDesktopTree *)0x0) {
+        bVar2 = CDesktopTree::NeedsCursorPositionUpdates(this_00,this);
+      }
     }
     lVar1 = *(longlong *)(this + 0x2c0);
     EnterCriticalSection((LPCRITICAL_SECTION)&g_CursorManager);
     *(bool *)(lVar1 + 0x52) = bVar2;
     LeaveCriticalSection((LPCRITICAL_SECTION)&g_CursorManager);
   }
   return;
 }
 

```


## std::shared_ptr<CCursorState::ShapeData>::operator=

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,refcount,length,sig,address,calling|
|ratio|0.94|
|i_ratio|0.86|
|m_ratio|0.97|
|b_ratio|0.86|
|match_types|Implied Match|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|operator=|operator=|
|fullname|std::shared_ptr<CCursorState::ShapeData>::operator=|std::shared_ptr<CCursorState::ShapeData>::operator=|
|`refcount`|21|22|
|`length`|57|55|
|called|std::_Ref_count_base::_Decref|std::_Ref_count_base::_Decref|
|`calling`|CCursorState::ClearShape<br>CCursorState::ProcessStateChanges<br>CCursorState::SetShape<br>CCursorState::TryEnableHardwareCursor<br>CCursorState::TryGetShape<br>CCursorState::UpdateHardwareCursorOverlay<br>std::_Insertion_sort_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_4f96f9abf6f4efc73c76f9e3716c5312>_>_><br>std::_Move_unchecked<CCursorState::MonitorData*___ptr64,CCursorState::MonitorData*___ptr64><br>std::_Pop_heap_hole_by_index<std::shared_ptr<CCursorState::ShapeData>_*,std::shared_ptr<CCursorState::ShapeData>,std::_Ref_fn<<lambda_4f96f9abf6f4efc73c76f9e3716c5312>_>_><br>std::_Sort_heap_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_4f96f9abf6f4efc73c76f9e3716c5312>_>_>|<details><summary>Expand for full list:<br>CCursorState::ClearShape<br>CCursorState::EnsureMonitorData<br>CCursorState::MonitorData::operator=<br>CCursorState::ProcessStateChanges<br>CCursorState::SetHardwareShapeAndPosition<br>CCursorState::SetShape<br>CCursorState::TryGetShape<br>CDirectFlipInfo::Init<br>std::_Insertion_sort_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_39668c2dc6e40fe158f11373301c566a>_>_><br>std::_Pop_heap_hole_by_index<std::shared_ptr<CCursorState::ShapeData>_*,std::shared_ptr<CCursorState::ShapeData>,std::_Ref_fn<<lambda_39668c2dc6e40fe158f11373301c566a>_>_><br>std::_Sort_heap_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_39668c2dc6e40fe158f11373301c566a>_>_></summary></details>|
|paramcount|2|2|
|`address`|1802224dc|1801a4160|
|`sig`|shared_ptr<struct_CCursorState::ShapeData> * __thiscall operator=(shared_ptr<CCursorState::ShapeData> * this, shared_ptr<struct_CCursorState::ShapeData> * param_1)|shared_ptr<class_CCursorState::ShapeData> * __thiscall operator=(shared_ptr<CCursorState::ShapeData> * this, shared_ptr<class_CCursorState::ShapeData> * param_1)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### std::shared_ptr<CCursorState::ShapeData>::operator= Calling Diff


```diff
--- std::shared_ptr<CCursorState::ShapeData>::operator= calling
+++ std::shared_ptr<CCursorState::ShapeData>::operator= calling
@@ -1,0 +2,2 @@
+CCursorState::EnsureMonitorData
+CCursorState::MonitorData::operator=
@@ -2,0 +5 @@
+CCursorState::SetHardwareShapeAndPosition
@@ -4 +6,0 @@
-CCursorState::TryEnableHardwareCursor
@@ -6,5 +8,4 @@
-CCursorState::UpdateHardwareCursorOverlay
-std::_Insertion_sort_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_4f96f9abf6f4efc73c76f9e3716c5312>_>_>
-std::_Move_unchecked<CCursorState::MonitorData*___ptr64,CCursorState::MonitorData*___ptr64>
-std::_Pop_heap_hole_by_index<std::shared_ptr<CCursorState::ShapeData>_*,std::shared_ptr<CCursorState::ShapeData>,std::_Ref_fn<<lambda_4f96f9abf6f4efc73c76f9e3716c5312>_>_>
-std::_Sort_heap_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_4f96f9abf6f4efc73c76f9e3716c5312>_>_>
+CDirectFlipInfo::Init
+std::_Insertion_sort_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_39668c2dc6e40fe158f11373301c566a>_>_>
+std::_Pop_heap_hole_by_index<std::shared_ptr<CCursorState::ShapeData>_*,std::shared_ptr<CCursorState::ShapeData>,std::_Ref_fn<<lambda_39668c2dc6e40fe158f11373301c566a>_>_>
+std::_Sort_heap_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_39668c2dc6e40fe158f11373301c566a>_>_>
```


### std::shared_ptr<CCursorState::ShapeData>::operator= Diff


```diff
--- std::shared_ptr<CCursorState::ShapeData>::operator=
+++ std::shared_ptr<CCursorState::ShapeData>::operator=
@@ -1,28 +1,28 @@
 
-/* public: class std::shared_ptr<struct CCursorState::ShapeData> & __ptr64 __cdecl
-   std::shared_ptr<struct CCursorState::ShapeData>::operator=(class std::shared_ptr<struct
+/* public: class std::shared_ptr<class CCursorState::ShapeData> & __ptr64 __cdecl
+   std::shared_ptr<class CCursorState::ShapeData>::operator=(class std::shared_ptr<class
    CCursorState::ShapeData> && __ptr64) __ptr64 */
 
-shared_ptr<struct_CCursorState::ShapeData> * __thiscall
+shared_ptr<class_CCursorState::ShapeData> * __thiscall
 std::shared_ptr<CCursorState::ShapeData>::operator=
           (shared_ptr<CCursorState::ShapeData> *this,
-          shared_ptr<struct_CCursorState::ShapeData> *param_1)
+          shared_ptr<class_CCursorState::ShapeData> *param_1)
 
 {
   undefined8 uVar1;
   undefined8 uVar2;
   _Ref_count_base *this_00;
   
   uVar1 = *(undefined8 *)param_1;
   *(undefined8 *)param_1 = 0;
   uVar2 = *(undefined8 *)(param_1 + 8);
   *(undefined8 *)(param_1 + 8) = 0;
   *(undefined8 *)this = uVar1;
   this_00 = *(_Ref_count_base **)(this + 8);
   *(undefined8 *)(this + 8) = uVar2;
   if (this_00 != (_Ref_count_base *)0x0) {
     _Ref_count_base::_Decref(this_00);
   }
-  return (shared_ptr<struct_CCursorState::ShapeData> *)this;
+  return (shared_ptr<class_CCursorState::ShapeData> *)this;
 }
 

```


## wil::details::FeatureImpl<__WilFeatureTraits_Feature_TouchpadPublicApis2>::GetCurrentFeatureEnabledState

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,fullname,length,sig,address,calling,called,parent|
|ratio|0.4|
|i_ratio|0.63|
|m_ratio|0.99|
|b_ratio|0.89|
|match_types|Implied Match|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|GetCurrentFeatureEnabledState|GetCurrentFeatureEnabledState|
|`fullname`|wil::details::FeatureImpl<__WilFeatureTraits_Feature_TouchpadPublicApis2>::GetCurrentFeatureEnabledState|wil::details::FeatureImpl<__WilFeatureTraits_Feature_TestLoc1Perf>::GetCurrentFeatureEnabledState|
|refcount|2|2|
|`length`|238|250|
|`called`|wil::details::FeatureImpl<__WilFeatureTraits_Feature_GE_EssentialsBundle_J>::__private_IsEnabled<br>wil::details::WilApi_GetFeatureEnabledState|wil::details::FeatureImpl<__WilFeatureTraits_Feature_Standalone_26_01_NonSec>::ReportUsage<br>wil::details::FeatureImpl<__WilFeatureTraits_Feature_TestAccPerf>::__private_IsEnabled<br>wil::details::WilApi_GetFeatureEnabledState|
|`calling`|wil::details::FeatureImpl<__WilFeatureTraits_Feature_TouchpadPublicApis2>::GetCachedFeatureEnabledState|wil::details::FeatureImpl<__WilFeatureTraits_Feature_TestLoc1Perf>::GetCachedFeatureEnabledState|
|paramcount|2|2|
|`address`|1802b97e0|18026d3c4|
|`sig`|wil_details_FeatureStateCache __thiscall GetCurrentFeatureEnabledState(FeatureImpl<__WilFeatureTraits_Feature_TouchpadPublicApis2> * this, int * param_1)|wil_details_FeatureStateCache __thiscall GetCurrentFeatureEnabledState(FeatureImpl<__WilFeatureTraits_Feature_TestLoc1Perf> * this, int * param_1)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### wil::details::FeatureImpl<__WilFeatureTraits_Feature_TouchpadPublicApis2>::GetCurrentFeatureEnabledState Called Diff


```diff
--- wil::details::FeatureImpl<__WilFeatureTraits_Feature_TouchpadPublicApis2>::GetCurrentFeatureEnabledState called
+++ wil::details::FeatureImpl<__WilFeatureTraits_Feature_TestLoc1Perf>::GetCurrentFeatureEnabledState called
@@ -1 +1,2 @@
-wil::details::FeatureImpl<__WilFeatureTraits_Feature_GE_EssentialsBundle_J>::__private_IsEnabled
+wil::details::FeatureImpl<__WilFeatureTraits_Feature_Standalone_26_01_NonSec>::ReportUsage
+wil::details::FeatureImpl<__WilFeatureTraits_Feature_TestAccPerf>::__private_IsEnabled
```


### wil::details::FeatureImpl<__WilFeatureTraits_Feature_TouchpadPublicApis2>::GetCurrentFeatureEnabledState Calling Diff


```diff
--- wil::details::FeatureImpl<__WilFeatureTraits_Feature_TouchpadPublicApis2>::GetCurrentFeatureEnabledState calling
+++ wil::details::FeatureImpl<__WilFeatureTraits_Feature_TestLoc1Perf>::GetCurrentFeatureEnabledState calling
@@ -1 +1 @@
-wil::details::FeatureImpl<__WilFeatureTraits_Feature_TouchpadPublicApis2>::GetCachedFeatureEnabledState
+wil::details::FeatureImpl<__WilFeatureTraits_Feature_TestLoc1Perf>::GetCachedFeatureEnabledState
```


### wil::details::FeatureImpl<__WilFeatureTraits_Feature_TouchpadPublicApis2>::GetCurrentFeatureEnabledState Diff


```diff
--- wil::details::FeatureImpl<__WilFeatureTraits_Feature_TouchpadPublicApis2>::GetCurrentFeatureEnabledState
+++ wil::details::FeatureImpl<__WilFeatureTraits_Feature_TestLoc1Perf>::GetCurrentFeatureEnabledState
@@ -1,61 +1,67 @@
 
 /* private: union wil_details_FeatureStateCache __cdecl wil::details::FeatureImpl<struct
-   __WilFeatureTraits_Feature_TouchpadPublicApis2>::GetCurrentFeatureEnabledState(int * __ptr64)
-   __ptr64 */
+   __WilFeatureTraits_Feature_TestLoc1Perf>::GetCurrentFeatureEnabledState(int * __ptr64) __ptr64 */
 
 int * __thiscall
-wil::details::FeatureImpl<__WilFeatureTraits_Feature_TouchpadPublicApis2>::
-GetCurrentFeatureEnabledState
-          (FeatureImpl<__WilFeatureTraits_Feature_TouchpadPublicApis2> *this,int *param_1)
+wil::details::FeatureImpl<__WilFeatureTraits_Feature_TestLoc1Perf>::GetCurrentFeatureEnabledState
+          (FeatureImpl<__WilFeatureTraits_Feature_TestLoc1Perf> *this,int *param_1)
 
 {
   bool bVar1;
   bool bVar2;
   FEATURE_ENABLED_STATE FVar3;
   ReportingKind RVar4;
-  ReportingKind RVar5;
+  undefined1 uVar5;
+  uint uVar7;
+  int *in_R8;
+  FEATURE_ENABLED_STATE FVar8;
   ReportingKind RVar6;
-  ReportingKind RVar7;
-  int *in_R8;
+  __uint64 _Var9;
   
-  FVar3 = WilApi_GetFeatureEnabledState(0x37eed2c,3,in_R8);
+  FVar3 = WilApi_GetFeatureEnabledState(0x38419ac,3,in_R8);
   param_1[0] = 0;
   param_1[1] = 0;
-  RVar5 = -(uint)((FVar3 & 0x40) != 0) & 0x800 | -(uint)((FVar3 & 0x80) != 0) & 0x400;
-  RVar6 = RVar5 | (FVar3 & 3) << 7;
-  *param_1 = RVar6;
-  if ((FVar3 & 0xffffff3f) == 0) {
-    RVar4 = 0x40;
-  }
-  else {
+  FVar8 = FVar3 & 0xffffff3f;
+  _Var9 = (__uint64)FVar8;
+  RVar6 = -(uint)((FVar3 & 0x40) != 0) & 0x800 | -(uint)((FVar3 & 0x80) != 0) & 0x400 |
+          (FVar3 & 3) << 7;
+  if (FVar8 != 0) {
     RVar4 = 0;
-    if ((FVar3 & 0xffffff3f) == 2) {
+    if (FVar8 == 2) {
       RVar4 = 0x40;
     }
+    RVar6 = RVar6 | RVar4;
   }
-  RVar6 = RVar6 | RVar4;
+  uVar5 = (undefined1)RVar6;
+  RVar4 = 0xc00;
   *param_1 = RVar6;
-  RVar7 = 1;
-  if (RVar5 == 0xc00) {
+  bVar2 = false;
+  uVar7 = 1;
+  if ((RVar6 & 0xc00) == 0xc00) {
     bVar1 = true;
-LAB_0:
-    bVar2 = FeatureImpl<__WilFeatureTraits_Feature_GE_EssentialsBundle_J>::__private_IsEnabled
-                      ((FeatureImpl<__WilFeatureTraits_Feature_GE_EssentialsBundle_J> *)
-                       &`private:_static_class_wil::details::FeatureImpl<__WilFeatureTraits_Feature_GE_EssentialsBundle_J>&___ptr64___cdecl_wil::Feature<__WilFeatureTraits_Feature_GE_EssentialsBundle_J>::GetImpl(void)'
-                        ::__l2::impl,RVar6);
-    RVar6 = *param_1;
-    if ((bVar1) && (!bVar2)) {
-      RVar6 = RVar6 & 0xfffffbff;
-    }
-    if (((RVar6 & 0x40) != 0) && (bVar2)) goto LAB_1;
   }
   else {
     bVar1 = false;
-    if (RVar4 != 0) goto LAB_0;
+    if ((RVar6 & 0x40) == 0) goto LAB_0;
   }
-  RVar7 = 0;
-LAB_1:
-  *param_1 = RVar6 & 0xfffffffe | RVar7;
+  bVar2 = FeatureImpl<__WilFeatureTraits_Feature_TestAccPerf>::__private_IsEnabled
+                    ((FeatureImpl<__WilFeatureTraits_Feature_TestAccPerf> *)
+                     &`private:_static_class_wil::details::FeatureImpl<__WilFeatureTraits_Feature_TestAccPerf>&___ptr64___cdecl_wil::Feature<__WilFeatureTraits_Feature_TestAccPerf>::GetImpl(void)'
+                      ::__l2::impl,RVar6);
+  if (bVar2) {
+    FeatureImpl<__WilFeatureTraits_Feature_Standalone_26_01_NonSec>::ReportUsage
+              ((FeatureImpl<__WilFeatureTraits_Feature_Standalone_26_01_NonSec> *)
+               &`private:_static_class_wil::details::FeatureImpl<__WilFeatureTraits_Feature_Standalone_26_01_NonSec>&___ptr64___cdecl_wil::Feature<__WilFeatureTraits_Feature_Standalone_26_01_NonSec>::GetImpl(void)'
+                ::__l2::impl,(bool)uVar5,RVar4,_Var9);
+  }
+  if ((bVar1) && (!bVar2)) {
+    *param_1 = *param_1 & 0xfffffbff;
+  }
+LAB_0:
+  if (((*param_1 & 0x40U) == 0) || (!bVar2)) {
+    uVar7 = 0;
+  }
+  *param_1 = *param_1 & 0xfffffffeU | uVar7;
   return param_1;
 }
 

```


## COverlayContext::TryEnableHardwareCursor

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,name,fullname,length,sig,address,called|
|ratio|0.15|
|i_ratio|0.23|
|m_ratio|0.63|
|b_ratio|0.3|
|match_types|Implied Match|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|`name`|TryEnableHardwareCursor|SetHardwareCursor|
|`fullname`|COverlayContext::TryEnableHardwareCursor|COverlayContext::SetHardwareCursor|
|refcount|2|2|
|`length`|678|351|
|`called`|<details><summary>Expand for full list:<br>CCursorVisual::GetCursorShapeBounds<br>CCursorVisual::TryEnableHardwareCursor<br>CMILCOMBaseWeakRefSource<CResourceDeleter>::InternalRelease<br>CMILMatrix::Is2DAxisAlignedPreserving<br>CMILMatrix::Multiply<br>CMILMatrix::Transform2DBoundsHelper<1><br>CMILRefCountImpl::AddReference<br>CMonitorTransform::GetClipBox<br>COverlayContext::GetMonitorTransform<br>COverlayContext::IsCursorScaledByHardware<br>TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::UnionUnsafe</summary>TMilRect<unsigned_int,MilRectU,Mil3DRectU,RectUniqueness::NotNeeded>::IsEmpty<br>__security_check_cookie<br>_guard_dispatch_icall$thunk$10345483385596137414</details>|CMILCOMBaseWeakRefSource<CResourceDeleter>::InternalRelease<br>CMILRefCountImpl::AddReference<br>COverlayContext::ClearHardwareCursor<br>COverlayContext::GetCursorBounds<br>COverlayContext::UpdateHardwareCursor<br>__security_check_cookie<br>_guard_dispatch_icall$thunk$10345483385596137414|
|calling|COcclusionContext::CollectCursor|COcclusionContext::CollectCursor|
|paramcount|4|3|
|`address`|18026fcbc|18026e5b4|
|`sig`|bool __thiscall TryEnableHardwareCursor(COverlayContext * this, CCursorVisual * param_1, CMILMatrix * param_2, TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> * param_3)|void __thiscall SetHardwareCursor(COverlayContext * this, CCursorVisual * param_1, CMILMatrix * param_2)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### COverlayContext::TryEnableHardwareCursor Called Diff


```diff
--- COverlayContext::TryEnableHardwareCursor called
+++ COverlayContext::SetHardwareCursor called
@@ -1,2 +0,0 @@
-CCursorVisual::GetCursorShapeBounds
-CCursorVisual::TryEnableHardwareCursor
@@ -4,3 +1,0 @@
-CMILMatrix::Is2DAxisAlignedPreserving
-CMILMatrix::Multiply
-CMILMatrix::Transform2DBoundsHelper<1>
@@ -8,5 +3,3 @@
-CMonitorTransform::GetClipBox
-COverlayContext::GetMonitorTransform
-COverlayContext::IsCursorScaledByHardware
-TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::UnionUnsafe
-TMilRect<unsigned_int,MilRectU,Mil3DRectU,RectUniqueness::NotNeeded>::IsEmpty
+COverlayContext::ClearHardwareCursor
+COverlayContext::GetCursorBounds
+COverlayContext::UpdateHardwareCursor
```


### COverlayContext::TryEnableHardwareCursor Diff


```diff
--- COverlayContext::TryEnableHardwareCursor
+++ COverlayContext::SetHardwareCursor
@@ -1,145 +1,65 @@
 
 /* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
    guard_dispatch_icall */
 /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
-/* public: bool __cdecl COverlayContext::TryEnableHardwareCursor(class CCursorVisual * __ptr64,class
-   CMILMatrix const & __ptr64,class TMilRect_<float,struct D2D_RECT_F,struct D3D_RECT_F,struct
-   D2D_POINTANDSIZE_F,struct RectUniqueness::NotNeeded> const * __ptr64) __ptr64 */
+/* public: void __cdecl COverlayContext::SetHardwareCursor(class CCursorVisual * __ptr64,class
+   CMILMatrix const & __ptr64) __ptr64 */
 
-bool __thiscall
-COverlayContext::TryEnableHardwareCursor
-          (COverlayContext *this,CCursorVisual *param_1,CMILMatrix *param_2,
-          TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
-          *param_3)
+void __thiscall
+COverlayContext::SetHardwareCursor(COverlayContext *this,CCursorVisual *param_1,CMILMatrix *param_2)
 
 {
-  CMonitorTransform CVar1;
+  longlong *plVar1;
+  code *pcVar2;
   CMILCOMBaseWeakRefSource<CResourceDeleter> *this_00;
-  longlong lVar2;
-  bool bVar3;
-  uint uVar4;
-  longlong *plVar5;
-  CMonitorTransform *this_01;
-  _LUID *p_Var6;
-  int iVar7;
-  int iVar8;
-  int iVar9;
-  int iVar10;
-  CMILMatrix *this_02;
-  CCursorVisual *pCVar11;
-  CMILMatrix *this_03;
-  undefined1 auStackY_e8 [32];
-  int local_b8;
-  int local_b4;
-  int local_b0;
-  int local_ac;
-  undefined8 local_a8;
-  undefined8 uStack_a0;
-  undefined8 local_98;
-  undefined8 uStack_90;
-  undefined4 local_88;
-  undefined4 uStack_84;
-  undefined4 uStack_80;
-  undefined4 uStack_7c;
-  undefined4 local_78;
-  undefined4 uStack_74;
-  undefined4 uStack_70;
-  undefined4 uStack_6c;
-  undefined4 local_68;
-  float local_58 [4];
-  ulonglong local_48;
+  undefined4 uVar3;
+  longlong *plVar4;
+  undefined8 uVar5;
+  undefined8 *puVar6;
+  undefined1 auStack_58 [32];
+  undefined1 local_38 [16];
+  ulonglong local_28;
   
-  local_48 = __security_cookie ^ (ulonglong)auStackY_e8;
-  pCVar11 = param_1;
-  plVar5 = (longlong *)(**(code **)(**(longlong **)this + 0x118))();
-  if (plVar5 == (longlong *)0x0) goto LAB_0;
-  this_01 = GetMonitorTransform(this);
-  local_a8 = *(undefined8 *)param_2;
-  uStack_a0 = *(undefined8 *)(param_2 + 8);
-  local_68 = *(undefined4 *)(param_2 + 0x40);
-  local_98 = *(undefined8 *)(param_2 + 0x10);
-  uStack_90 = *(undefined8 *)(param_2 + 0x18);
-  local_88 = *(undefined4 *)(param_2 + 0x20);
-  uStack_84 = *(undefined4 *)(param_2 + 0x24);
-  uStack_80 = *(undefined4 *)(param_2 + 0x28);
-  uStack_7c = *(undefined4 *)(param_2 + 0x2c);
-  local_78 = *(undefined4 *)(param_2 + 0x30);
-  uStack_74 = *(undefined4 *)(param_2 + 0x34);
-  uStack_70 = *(undefined4 *)(param_2 + 0x38);
-  uStack_6c = *(undefined4 *)(param_2 + 0x3c);
-  (**(code **)(*plVar5 + 0x28))(plVar5);
-  bVar3 = IsCursorScaledByHardware(this,(CD3DDevice *)pCVar11);
-  this_03 = (CMILMatrix *)(this_01 + (ulonglong)(-(uint)bVar3 & 0x88) + 0x34);
-  CMonitorTransform::GetClipBox(this_01,SUB81(&local_b8,0));
-  if (param_3 !=
-      (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> *)0x0) {
-    this_02 = this_03;
-    bVar3 = CMILMatrix::Is2DAxisAlignedPreserving(this_03);
-    if (!bVar3) goto LAB_0;
-    local_58[0] = 0.0;
-    local_58[1] = 0.0;
-    local_58[2] = 0.0;
-    local_58[3] = 0.0;
-    CMILMatrix::Transform2DBoundsHelper<1>(this_02,(D2D_RECT_F *)param_3,(D2D_RECT_F *)local_58);
-    iVar7 = (int)ROUND(local_58[0]) - (uint)(local_58[0] < (float)(int)ROUND(local_58[0]));
-    if (iVar7 <= local_b8) {
-      iVar7 = local_b8;
-    }
-    iVar8 = (int)ROUND(local_58[1]) - (uint)(local_58[1] < (float)(int)ROUND(local_58[1]));
-    if (iVar8 <= local_b4) {
-      iVar8 = local_b4;
-    }
-    iVar9 = (int)ROUND(local_58[2]) + (uint)((float)(int)ROUND(local_58[2]) < local_58[2]);
-    if (local_b0 <= iVar9) {
-      iVar9 = local_b0;
-    }
-    iVar10 = (int)ROUND(local_58[3]) + (uint)((float)(int)ROUND(local_58[3]) < local_58[3]);
-    if (local_ac <= iVar10) {
-      iVar10 = local_ac;
-    }
-    local_b8 = iVar7;
-    local_b4 = iVar8;
-    local_b0 = iVar9;
-    local_ac = iVar10;
-    bVar3 = TMilRect<unsigned_int,MilRectU,Mil3DRectU,RectUniqueness::NotNeeded>::IsEmpty
-                      ((TMilRect<unsigned_int,MilRectU,Mil3DRectU,RectUniqueness::NotNeeded> *)
-                       &local_b8);
-    if (bVar3) goto LAB_0;
-  }
-  CMILMatrix::Multiply((CMILMatrix *)&local_a8,this_03);
-  CVar1 = this_01[0x101];
-  uVar4 = (**(code **)(*plVar5 + 0xe0))(plVar5);
-  p_Var6 = (_LUID *)(**(code **)(*plVar5 + 0xd8))(plVar5,local_58);
-  bVar3 = CCursorVisual::TryEnableHardwareCursor
-                    (param_1,*p_Var6,uVar4,
-                     (TMilRect<unsigned_int,MilRectU,Mil3DRectU,RectUniqueness::NotNeeded> *)
-                     &local_b8,(CMILMatrix *)&local_a8,(bool)CVar1);
-  if (bVar3) {
-    this_00 = *(CMILCOMBaseWeakRefSource<CResourceDeleter> **)(this + 0x4b18);
-    if (this_00 != (CMILCOMBaseWeakRefSource<CResourceDeleter> *)param_1) {
+  local_28 = __security_cookie ^ (ulonglong)auStack_58;
+  plVar4 = (longlong *)(**(code **)(**(longlong **)this + 0x118))();
+  if (plVar4 != (longlong *)0x0) {
+    if (*(CCursorVisual **)(this + 0x4b18) != param_1) {
+      if (*(CCursorVisual **)(this + 0x4b18) != (CCursorVisual *)0x0) {
+        plVar1 = *(longlong **)this;
+        pcVar2 = *(code **)(*plVar1 + 0x128);
+        uVar5 = GetCursorBounds(this);
+        (*pcVar2)(plVar1,uVar5);
+        ClearHardwareCursor(this);
+      }
+      puVar6 = (undefined8 *)(**(code **)(*plVar4 + 0xd8))(plVar4,local_38);
+      *(undefined8 *)(this + 0x4b20) = *puVar6;
+      uVar3 = (**(code **)(*plVar4 + 0xe0))(plVar4);
+      *(undefined4 *)(this + 0x4b28) = uVar3;
+      this_00 = *(CMILCOMBaseWeakRefSource<CResourceDeleter> **)(this + 0x4b18);
       *(CCursorVisual **)(this + 0x4b18) = param_1;
       if (param_1 != (CCursorVisual *)0x0) {
         CMILRefCountImpl::AddReference((CMILRefCountImpl *)(param_1 + 8));
       }
       if (this_00 != (CMILCOMBaseWeakRefSource<CResourceDeleter> *)0x0) {
         CMILCOMBaseWeakRefSource<CResourceDeleter>::InternalRelease(this_00);
       }
-      (**(code **)(*(longlong *)(*(longlong *)this + 8) + 0x30))();
     }
-    this[0x4bff] = (COverlayContext)0x1;
+    uVar5 = *(undefined8 *)(param_2 + 8);
+    *(undefined8 *)(this + 0x4b2c) = *(undefined8 *)param_2;
+    *(undefined8 *)(this + 0x4b34) = uVar5;
+    uVar5 = *(undefined8 *)(param_2 + 0x18);
+    *(undefined8 *)(this + 0x4b3c) = *(undefined8 *)(param_2 + 0x10);
+    *(undefined8 *)(this + 0x4b44) = uVar5;
+    uVar5 = *(undefined8 *)(param_2 + 0x28);
+    *(undefined8 *)(this + 0x4b4c) = *(undefined8 *)(param_2 + 0x20);
+    *(undefined8 *)(this + 0x4b54) = uVar5;
+    uVar5 = *(undefined8 *)(param_2 + 0x38);
+    *(undefined8 *)(this + 0x4b5c) = *(undefined8 *)(param_2 + 0x30);
+    *(undefined8 *)(this + 0x4b64) = uVar5;
+    *(undefined4 *)(this + 0x4b6c) = *(undefined4 *)(param_2 + 0x40);
+    this[0x4c89] = (COverlayContext)0x1;
+    UpdateHardwareCursor(this);
   }
-  else {
-    lVar2 = *(longlong *)(param_1 + 0x2c0);
-    if (((lVar2 != 0) && (*(longlong *)(lVar2 + 0xb0) != 0)) && (*(char *)(lVar2 + 0x51) != '\0')) {
-      (**(code **)(**(longlong **)this + 0x38))();
-      CCursorVisual::GetCursorShapeBounds(param_1,(CDesktopTree *)&local_b8);
-      TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::UnionUnsafe
-                ((TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded> *)(this + 0x4b30),
-                 (TMilRect<float,struct_D2D_RECT_F,struct_D3D_RECT_F,struct_RectUniqueness::NotNeeded>
-                  *)&local_b8);
-    }
-  }
-LAB_0:
-  return (bool)this[0x4bff];
+  return;
 }
 

```


## <lambda_4f96f9abf6f4efc73c76f9e3716c5312>::operator()<std::shared_ptr<CCursorState::ShapeData>,std::shared_ptr<CCursorState::ShapeData>_>

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,fullname,length,address,calling,called,parent|
|ratio|0.24|
|i_ratio|0.14|
|m_ratio|0.63|
|b_ratio|0.46|
|match_types|Implied Match|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|operator()<std::shared_ptr<CCursorState::ShapeData>,std::shared_ptr<CCursorState::ShapeData>_>|operator()<std::shared_ptr<CCursorState::ShapeData>,std::shared_ptr<CCursorState::ShapeData>_>|
|`fullname`|<lambda_4f96f9abf6f4efc73c76f9e3716c5312>::operator()<std::shared_ptr<CCursorState::ShapeData>,std::shared_ptr<CCursorState::ShapeData>_>|<lambda_39668c2dc6e40fe158f11373301c566a>::operator()<std::shared_ptr<CCursorState::ShapeData>,std::shared_ptr<CCursorState::ShapeData>_>|
|refcount|2|2|
|`length`|152|343|
|`called`|CCursorState::IsBetterRotationMatch<br>std::_Ref_count_base::_Decref|CCursorState::ShapeData::GetNonRotatedSize<br>std::_Ref_count_base::_Decref|
|`calling`|std::_Ref_fn<<lambda_4f96f9abf6f4efc73c76f9e3716c5312>_>::operator()<std::shared_ptr<CCursorState::ShapeData>_&,std::shared_ptr<CCursorState::ShapeData>_&>|std::_Ref_fn<<lambda_39668c2dc6e40fe158f11373301c566a>_>::operator()<std::shared_ptr<CCursorState::ShapeData>_&,std::shared_ptr<CCursorState::ShapeData>_&>|
|paramcount|0|0|
|`address`|1802b33a8|1802b3bc8|
|sig|undefined operator()<std::shared_ptr<CCursorState::ShapeData>,std::shared_ptr<CCursorState::ShapeData>_>(void)|undefined operator()<std::shared_ptr<CCursorState::ShapeData>,std::shared_ptr<CCursorState::ShapeData>_>(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### <lambda_4f96f9abf6f4efc73c76f9e3716c5312>::operator()<std::shared_ptr<CCursorState::ShapeData>,std::shared_ptr<CCursorState::ShapeData>_> Called Diff


```diff
--- <lambda_4f96f9abf6f4efc73c76f9e3716c5312>::operator()<std::shared_ptr<CCursorState::ShapeData>,std::shared_ptr<CCursorState::ShapeData>_> called
+++ <lambda_39668c2dc6e40fe158f11373301c566a>::operator()<std::shared_ptr<CCursorState::ShapeData>,std::shared_ptr<CCursorState::ShapeData>_> called
@@ -1 +1 @@
-CCursorState::IsBetterRotationMatch
+CCursorState::ShapeData::GetNonRotatedSize
```


### <lambda_4f96f9abf6f4efc73c76f9e3716c5312>::operator()<std::shared_ptr<CCursorState::ShapeData>,std::shared_ptr<CCursorState::ShapeData>_> Calling Diff


```diff
--- <lambda_4f96f9abf6f4efc73c76f9e3716c5312>::operator()<std::shared_ptr<CCursorState::ShapeData>,std::shared_ptr<CCursorState::ShapeData>_> calling
+++ <lambda_39668c2dc6e40fe158f11373301c566a>::operator()<std::shared_ptr<CCursorState::ShapeData>,std::shared_ptr<CCursorState::ShapeData>_> calling
@@ -1 +1 @@
-std::_Ref_fn<<lambda_4f96f9abf6f4efc73c76f9e3716c5312>_>::operator()<std::shared_ptr<CCursorState::ShapeData>_&,std::shared_ptr<CCursorState::ShapeData>_&>
+std::_Ref_fn<<lambda_39668c2dc6e40fe158f11373301c566a>_>::operator()<std::shared_ptr<CCursorState::ShapeData>_&,std::shared_ptr<CCursorState::ShapeData>_&>
```


### <lambda_4f96f9abf6f4efc73c76f9e3716c5312>::operator()<std::shared_ptr<CCursorState::ShapeData>,std::shared_ptr<CCursorState::ShapeData>_> Diff


```diff
--- <lambda_4f96f9abf6f4efc73c76f9e3716c5312>::operator()<std::shared_ptr<CCursorState::ShapeData>,std::shared_ptr<CCursorState::ShapeData>_>
+++ <lambda_39668c2dc6e40fe158f11373301c566a>::operator()<std::shared_ptr<CCursorState::ShapeData>,std::shared_ptr<CCursorState::ShapeData>_>
@@ -1,47 +1,89 @@
 
-bool <lambda_4f96f9abf6f4efc73c76f9e3716c5312>::
+bool <lambda_39668c2dc6e40fe158f11373301c566a>::
      operator()<std::shared_ptr<CCursorState::ShapeData>,std::shared_ptr<CCursorState::ShapeData>_>
-               (undefined8 *param_1,longlong *param_2,longlong *param_3)
+               (undefined8 *param_1,ulonglong *param_2,ulonglong *param_3)
 
 {
-  int iVar1;
-  longlong lVar2;
-  longlong lVar3;
-  bool bVar4;
+  ShapeData SVar1;
+  int iVar2;
+  int iVar3;
+  int iVar4;
+  int *piVar5;
+  ulonglong uVar6;
+  ulonglong uVar7;
+  uint uVar8;
+  uint uVar9;
+  bool bVar10;
+  int local_res10;
+  int local_res14;
+  int local_res18;
+  int iStackX_1c;
   
-  lVar2 = *param_2;
-  lVar3 = *param_3;
-  if (*(char *)(lVar2 + 0x11) != *(char *)(lVar3 + 0x11)) {
-    bVar4 = *(char *)(lVar2 + 0x11) == *(char *)*param_1;
-    goto LAB_0;
-  }
-  iVar1 = *(int *)param_1[1];
-  if (*(int *)(lVar2 + 0xc) == iVar1) {
-    bVar4 = *(int *)(lVar3 + 0xc) == iVar1;
+  SVar1 = ((ShapeData *)*param_2)[0xd];
+  if (SVar1 == *(ShapeData *)(*param_3 + 0xd)) {
+    CCursorState::ShapeData::GetNonRotatedSize((ShapeData *)*param_2);
+    CCursorState::ShapeData::GetNonRotatedSize((ShapeData *)*param_3);
+    if ((local_res10 != local_res18) || (local_res14 != iStackX_1c)) {
+      piVar5 = (int *)param_1[1];
+      if ((local_res10 == *piVar5) && (local_res14 == piVar5[1])) goto LAB_0;
+      if ((local_res18 == *piVar5) && (iStackX_1c == piVar5[1])) goto LAB_1;
+    }
+    uVar6 = *param_2;
+    uVar7 = *param_3;
+    if (*(char *)(uVar6 + 0xc) == *(char *)(uVar7 + 0xc)) {
+      iVar2 = *(int *)(uVar6 + 8);
+      iVar3 = *(int *)(uVar7 + 8);
+      if (iVar2 != iVar3) {
+        iVar4 = *(int *)param_1[2];
+        if (iVar2 == iVar4) {
+LAB_0:
+          if ((_Ref_count_base *)param_2[1] != (_Ref_count_base *)0x0) {
+            std::_Ref_count_base::_Decref((_Ref_count_base *)param_2[1]);
+          }
+          if ((_Ref_count_base *)param_3[1] != (_Ref_count_base *)0x0) {
+            std::_Ref_count_base::_Decref((_Ref_count_base *)param_3[1]);
+          }
+          return true;
+        }
+        if (iVar3 == iVar4) {
 LAB_1:
-    if (bVar4) {
-      bVar4 = CCursorState::IsBetterRotationMatch
-                        (*(DXGI_MODE_ROTATION *)(lVar2 + 8),*(DXGI_MODE_ROTATION *)(lVar3 + 8),
-                         *(DXGI_MODE_ROTATION *)param_1[2]);
-      if (!bVar4) goto LAB_2;
+          if ((_Ref_count_base *)param_2[1] != (_Ref_count_base *)0x0) {
+            std::_Ref_count_base::_Decref((_Ref_count_base *)param_2[1]);
+          }
+          if ((_Ref_count_base *)param_3[1] != (_Ref_count_base *)0x0) {
+            std::_Ref_count_base::_Decref((_Ref_count_base *)param_3[1]);
+          }
+          return false;
+        }
+        uVar9 = iVar2 + iVar4 & 0x80000001;
+        if ((int)uVar9 < 0) {
+          uVar9 = (uVar9 - 1 | 0xfffffffe) + 1;
+        }
+        uVar8 = iVar3 + iVar4 & 0x80000001;
+        if ((int)uVar8 < 0) {
+          uVar8 = (uVar8 - 1 | 0xfffffffe) + 1;
+        }
+        if (uVar9 != uVar8) {
+          bVar10 = uVar9 == 0;
+          goto LAB_2;
+        }
+      }
+      bVar10 = uVar6 < uVar7;
     }
-    bVar4 = true;
+    else {
+      bVar10 = *(char *)(uVar6 + 0xc) == '\0';
+    }
   }
   else {
-    if ((*(int *)(lVar3 + 0xc) != iVar1) && (*(char *)(lVar2 + 0x10) == '\0')) {
-      bVar4 = *(char *)(lVar3 + 0x10) == '\0';
-      goto LAB_1;
-    }
+    bVar10 = SVar1 == *(ShapeData *)*param_1;
+  }
 LAB_2:
-    bVar4 = false;
-  }
-LAB_0:
   if ((_Ref_count_base *)param_2[1] != (_Ref_count_base *)0x0) {
     std::_Ref_count_base::_Decref((_Ref_count_base *)param_2[1]);
   }
   if ((_Ref_count_base *)param_3[1] != (_Ref_count_base *)0x0) {
     std::_Ref_count_base::_Decref((_Ref_count_base *)param_3[1]);
   }
-  return bVar4;
+  return bVar10;
 }
 

```


## wil::details::FeatureImpl<__WilFeatureTraits_Feature_TouchpadPublicApis2>::GetCurrentFeatureEnabledState

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,fullname,length,sig,address,calling,called,parent|
|ratio|0.37|
|i_ratio|0.42|
|m_ratio|0.87|
|b_ratio|0.83|
|match_types|Implied Match|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|GetCurrentFeatureEnabledState|GetCurrentFeatureEnabledState|
|`fullname`|wil::details::FeatureImpl<__WilFeatureTraits_Feature_TouchpadPublicApis2>::GetCurrentFeatureEnabledState|wil::details::FeatureImpl<__WilFeatureTraits_Feature_3909349690>::GetCurrentFeatureEnabledState|
|refcount|2|2|
|`length`|238|179|
|`called`|wil::details::FeatureImpl<__WilFeatureTraits_Feature_GE_EssentialsBundle_J>::__private_IsEnabled<br>wil::details::WilApi_GetFeatureEnabledState|wil::details::WilApi_GetFeatureEnabledState|
|`calling`|wil::details::FeatureImpl<__WilFeatureTraits_Feature_TouchpadPublicApis2>::GetCachedFeatureEnabledState|wil::details::FeatureImpl<__WilFeatureTraits_Feature_3909349690>::GetCachedFeatureEnabledState|
|paramcount|2|2|
|`address`|1802b97e0|1802a44bc|
|`sig`|wil_details_FeatureStateCache __thiscall GetCurrentFeatureEnabledState(FeatureImpl<__WilFeatureTraits_Feature_TouchpadPublicApis2> * this, int * param_1)|wil_details_FeatureStateCache __thiscall GetCurrentFeatureEnabledState(FeatureImpl<__WilFeatureTraits_Feature_3909349690> * this, int * param_1)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### wil::details::FeatureImpl<__WilFeatureTraits_Feature_TouchpadPublicApis2>::GetCurrentFeatureEnabledState Called Diff


```diff
--- wil::details::FeatureImpl<__WilFeatureTraits_Feature_TouchpadPublicApis2>::GetCurrentFeatureEnabledState called
+++ wil::details::FeatureImpl<__WilFeatureTraits_Feature_3909349690>::GetCurrentFeatureEnabledState called
@@ -1 +0,0 @@
-wil::details::FeatureImpl<__WilFeatureTraits_Feature_GE_EssentialsBundle_J>::__private_IsEnabled
```


### wil::details::FeatureImpl<__WilFeatureTraits_Feature_TouchpadPublicApis2>::GetCurrentFeatureEnabledState Calling Diff


```diff
--- wil::details::FeatureImpl<__WilFeatureTraits_Feature_TouchpadPublicApis2>::GetCurrentFeatureEnabledState calling
+++ wil::details::FeatureImpl<__WilFeatureTraits_Feature_3909349690>::GetCurrentFeatureEnabledState calling
@@ -1 +1 @@
-wil::details::FeatureImpl<__WilFeatureTraits_Feature_TouchpadPublicApis2>::GetCachedFeatureEnabledState
+wil::details::FeatureImpl<__WilFeatureTraits_Feature_3909349690>::GetCachedFeatureEnabledState
```


### wil::details::FeatureImpl<__WilFeatureTraits_Feature_TouchpadPublicApis2>::GetCurrentFeatureEnabledState Diff


```diff
--- wil::details::FeatureImpl<__WilFeatureTraits_Feature_TouchpadPublicApis2>::GetCurrentFeatureEnabledState
+++ wil::details::FeatureImpl<__WilFeatureTraits_Feature_3909349690>::GetCurrentFeatureEnabledState
@@ -1,61 +1,44 @@
 
 /* private: union wil_details_FeatureStateCache __cdecl wil::details::FeatureImpl<struct
-   __WilFeatureTraits_Feature_TouchpadPublicApis2>::GetCurrentFeatureEnabledState(int * __ptr64)
-   __ptr64 */
+   __WilFeatureTraits_Feature_3909349690>::GetCurrentFeatureEnabledState(int * __ptr64) __ptr64 */
 
 int * __thiscall
-wil::details::FeatureImpl<__WilFeatureTraits_Feature_TouchpadPublicApis2>::
-GetCurrentFeatureEnabledState
-          (FeatureImpl<__WilFeatureTraits_Feature_TouchpadPublicApis2> *this,int *param_1)
+wil::details::FeatureImpl<__WilFeatureTraits_Feature_3909349690>::GetCurrentFeatureEnabledState
+          (FeatureImpl<__WilFeatureTraits_Feature_3909349690> *this,int *param_1)
 
 {
   bool bVar1;
-  bool bVar2;
-  FEATURE_ENABLED_STATE FVar3;
-  ReportingKind RVar4;
-  ReportingKind RVar5;
-  ReportingKind RVar6;
-  ReportingKind RVar7;
+  FEATURE_ENABLED_STATE FVar2;
+  uint uVar3;
+  uint uVar4;
+  uint uVar5;
+  uint uVar6;
   int *in_R8;
   
-  FVar3 = WilApi_GetFeatureEnabledState(0x37eed2c,3,in_R8);
+  FVar2 = WilApi_GetFeatureEnabledState(0x3a01ee4,3,in_R8);
   param_1[0] = 0;
   param_1[1] = 0;
-  RVar5 = -(uint)((FVar3 & 0x40) != 0) & 0x800 | -(uint)((FVar3 & 0x80) != 0) & 0x400;
-  RVar6 = RVar5 | (FVar3 & 3) << 7;
-  *param_1 = RVar6;
-  if ((FVar3 & 0xffffff3f) == 0) {
-    RVar4 = 0x40;
+  uVar5 = -(uint)((FVar2 & 0x40) != 0) & 0x800 | -(uint)((FVar2 & 0x80) != 0) & 0x400;
+  uVar6 = uVar5 | (FVar2 & 3) << 7;
+  *param_1 = uVar6;
+  if ((FVar2 & 0xffffff3f) == 0) {
+    uVar3 = 0x40;
   }
   else {
-    RVar4 = 0;
-    if ((FVar3 & 0xffffff3f) == 2) {
-      RVar4 = 0x40;
+    uVar3 = 0;
+    if ((FVar2 & 0xffffff3f) == 2) {
+      uVar3 = 0x40;
     }
   }
-  RVar6 = RVar6 | RVar4;
-  *param_1 = RVar6;
-  RVar7 = 1;
-  if (RVar5 == 0xc00) {
+  bVar1 = false;
+  uVar4 = 1;
+  if ((uVar5 == 0xc00) || (uVar3 != 0)) {
     bVar1 = true;
-LAB_0:
-    bVar2 = FeatureImpl<__WilFeatureTraits_Feature_GE_EssentialsBundle_J>::__private_IsEnabled
-                      ((FeatureImpl<__WilFeatureTraits_Feature_GE_EssentialsBundle_J> *)
-                       &`private:_static_class_wil::details::FeatureImpl<__WilFeatureTraits_Feature_GE_EssentialsBundle_J>&___ptr64___cdecl_wil::Feature<__WilFeatureTraits_Feature_GE_EssentialsBundle_J>::GetImpl(void)'
-                        ::__l2::impl,RVar6);
-    RVar6 = *param_1;
-    if ((bVar1) && (!bVar2)) {
-      RVar6 = RVar6 & 0xfffffbff;
-    }
-    if (((RVar6 & 0x40) != 0) && (bVar2)) goto LAB_1;
   }
-  else {
-    bVar1 = false;
-    if (RVar4 != 0) goto LAB_0;
+  if ((uVar3 == 0) || (!bVar1)) {
+    uVar4 = 0;
   }
-  RVar7 = 0;
-LAB_1:
-  *param_1 = RVar6 & 0xfffffffe | RVar7;
+  *param_1 = uVar6 | uVar3 | uVar4;
   return param_1;
 }
 

```


## CVisual::EnsureTreeData

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,name,fullname,refcount,length,sig,address,calling,called|
|ratio|0.08|
|i_ratio|0.05|
|m_ratio|0.77|
|b_ratio|0.18|
|match_types|Implied Match|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|`name`|EnsureTreeData|CreateOrUpdateBVI|
|`fullname`|CVisual::EnsureTreeData|CVisual::CreateOrUpdateBVI|
|`refcount`|13|3|
|`length`|574|372|
|`called`|API-MS-WIN-CORE-HEAP-L1-1-0.DLL::GetProcessHeap<br>API-MS-WIN-CORE-HEAP-L1-1-0.DLL::HeapAlloc<br>CTreeData::CTreeData<br>CTreeData::Initialize<br>ModuleFailFastForHRESULT<br>_guard_dispatch_icall$thunk$10345483385596137414|<details><summary>Expand for full list:<br>CBackdropVisualImage::Create<br>CBackdropVisualImage::ValidateRootAndSourceRectangle<br>CMILCOMBaseWeakRefSource<CResourceDeleter>::InternalRelease<br>CTreeData::GetBackdropVisualImage<br>CTreeData::SetBackdropVisualImage<br>CVisual::EnsureTreeData<br>CVisual::GetVisualTreeNoRef<br>CVisualTreePath::GetDebugString<br>DwmDbg::Backdrops::IsEtwEnabled<br>DwmDbg::Backdrops::LogBrushEtwEvent<br>DwmDbg::DbgString::DbgString</summary>std::unique_ptr<class_CWeakReference<CResource>*___ptr64_[0],std::default_delete<class_CWeakReference<CResource>*___ptr64_[0]>_>::~unique_ptr<class_CWeakReference<CResource>*___ptr64_[0],std::default_delete<class_CWeakReference<CResource>*___ptr64_[0]>_><br>wil::com_ptr_t<CBackdropVisualImage,wil::err_returncode_policy>::com_ptr_t<CBackdropVisualImage,wil::err_returncode_policy><br>wil::com_ptr_t<CBackdropVisualImage,wil::err_returncode_policy>::~com_ptr_t<CBackdropVisualImage,wil::err_returncode_policy></details>|
|`calling`|CDrawingContext::GetBlurredWallpaperEffectInput<br>CDrawingContext::ValidateBVIEffectInputForRender<br>COcclusionContext::Compute<br>CPreComputeContext::PreSubgraph<br>CPreComputeContext::ProcessPostSubgraphBackdropInput<br>CPreComputeContext::UpdateBVIForVisual<br>CPreWalkVisual::CalcTransform<br>CPreWalkVisual::DirtyBoundsForTransformParentChild<br>CVisual::InvalidateTransformParent<br>CVisualTree::EnsureVisualTransform|CDrawingContext::ValidateBVIEffectInputForRender<br>CPreComputeContext::UpdateBVIForVisual|
|paramcount|2|5|
|`address`|1800f0ca0|18000a138|
|`sig`|CTreeData * __thiscall EnsureTreeData(CVisual * this, CVisualTree * param_1)|long __thiscall CreateOrUpdateBVI(CVisual * this, CVisualTreePath * param_1, TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> * param_2, bool param_3, bool * param_4)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### CVisual::EnsureTreeData Called Diff


```diff
--- CVisual::EnsureTreeData called
+++ CVisual::CreateOrUpdateBVI called
@@ -1,6 +1,14 @@
-API-MS-WIN-CORE-HEAP-L1-1-0.DLL::GetProcessHeap
-API-MS-WIN-CORE-HEAP-L1-1-0.DLL::HeapAlloc
-CTreeData::CTreeData
-CTreeData::Initialize
-ModuleFailFastForHRESULT
-_guard_dispatch_icall$thunk$10345483385596137414
+CBackdropVisualImage::Create
+CBackdropVisualImage::ValidateRootAndSourceRectangle
+CMILCOMBaseWeakRefSource<CResourceDeleter>::InternalRelease
+CTreeData::GetBackdropVisualImage
+CTreeData::SetBackdropVisualImage
+CVisual::EnsureTreeData
+CVisual::GetVisualTreeNoRef
+CVisualTreePath::GetDebugString
+DwmDbg::Backdrops::IsEtwEnabled
+DwmDbg::Backdrops::LogBrushEtwEvent
+DwmDbg::DbgString::DbgString
+std::unique_ptr<class_CWeakReference<CResource>*___ptr64_[0],std::default_delete<class_CWeakReference<CResource>*___ptr64_[0]>_>::~unique_ptr<class_CWeakReference<CResource>*___ptr64_[0],std::default_delete<class_CWeakReference<CResource>*___ptr64_[0]>_>
+wil::com_ptr_t<CBackdropVisualImage,wil::err_returncode_policy>::com_ptr_t<CBackdropVisualImage,wil::err_returncode_policy>
+wil::com_ptr_t<CBackdropVisualImage,wil::err_returncode_policy>::~com_ptr_t<CBackdropVisualImage,wil::err_returncode_policy>
```


### CVisual::EnsureTreeData Calling Diff


```diff
--- CVisual::EnsureTreeData calling
+++ CVisual::CreateOrUpdateBVI calling
@@ -1 +0,0 @@
-CDrawingContext::GetBlurredWallpaperEffectInput
@@ -3,3 +1,0 @@
-COcclusionContext::Compute
-CPreComputeContext::PreSubgraph
-CPreComputeContext::ProcessPostSubgraphBackdropInput
@@ -7,4 +2,0 @@
-CPreWalkVisual::CalcTransform
-CPreWalkVisual::DirtyBoundsForTransformParentChild
-CVisual::InvalidateTransformParent
-CVisualTree::EnsureVisualTransform
```


### CVisual::EnsureTreeData Diff


```diff
--- CVisual::EnsureTreeData
+++ CVisual::CreateOrUpdateBVI
@@ -1,133 +1,64 @@
 
-/* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
-   guard_dispatch_icall */
-/* public: class CTreeData * __ptr64 __cdecl CVisual::EnsureTreeData(class CVisualTree const *
-   __ptr64) __ptr64 */
+/* WARNING: Removing unreachable block (ram,0x00018000a1c6) */
+/* public: long __cdecl CVisual::CreateOrUpdateBVI(class CVisualTreePath const & __ptr64,class
+   TMilRect_<float,struct D2D_RECT_F,struct D3D_RECT_F,struct D2D_POINTANDSIZE_F,struct
+   RectUniqueness::NotNeeded> const & __ptr64,bool,bool * __ptr64) __ptr64 */
 
-CTreeData * __thiscall CVisual::EnsureTreeData(CVisual *this,CVisualTree *param_1)
+long __thiscall
+CVisual::CreateOrUpdateBVI
+          (CVisual *this,CVisualTreePath *param_1,
+          TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
+          *param_2,bool param_3,bool *param_4)
 
 {
-  uint uVar1;
-  int *piVar2;
-  undefined8 *puVar3;
-  uint *puVar4;
-  char cVar5;
+  CVisual *this_00;
+  CVisualTree *pCVar1;
+  bool bVar2;
+  long lVar3;
+  CTreeData *this_01;
+  CBackdropVisualImage *pCVar4;
+  CVisualTree *pCVar5;
   undefined8 *puVar6;
-  HANDLE hHeap;
-  CTreeData *pCVar7;
-  undefined **ppuVar8;
-  CTreeData *pCVar9;
-  CTreeData *pCVar10;
-  uint *puVar11;
-  int *piVar12;
-  uint uVar13;
-  uint *puVar14;
-  undefined8 unaff_retaddr;
+  undefined8 uVar7;
+  undefined8 uVar8;
+  CBackdropVisualImage *local_res10;
+  unique_ptr<class_CWeakReference<CResource>*___ptr64_[0],std::default_delete<class_CWeakReference<CResource>*___ptr64_[0]>_>
+  local_48 [8];
+  DbgString local_40 [8];
+  DbgString local_38 [16];
   
-  pCVar10 = (CTreeData *)0x0;
-  cVar5 = (**(code **)(*(longlong *)param_1 + 0xb8))(param_1);
-  if (cVar5 == '\0') {
-    piVar2 = *(int **)(this + 0xe8);
-    if (*piVar2 < 0) {
-      uVar1 = piVar2[1];
-      piVar12 = piVar2 + 2;
-      pCVar7 = pCVar10;
-      if (uVar1 != 0) {
-        do {
-          if ((char)*piVar12 == '\x01') break;
-          uVar13 = (int)pCVar7 + 1;
-          pCVar7 = (CTreeData *)(ulonglong)uVar13;
-          piVar12 = (int *)((longlong)piVar12 + 1);
-        } while (uVar13 < uVar1);
-      }
-      pCVar9 = pCVar10;
-      if ((uint)pCVar7 < uVar1) {
-        pCVar9 = (CTreeData *)
-                 ((longlong)piVar2 +
-                 (ulonglong)uVar1 + 0xf +
-                 ((longlong)pCVar7 * 8 - (ulonglong)((uint)((ulonglong)uVar1 + 0xf) & 7)));
-      }
-      puVar3 = *(undefined8 **)pCVar9;
-      pCVar7 = pCVar10;
-      if (puVar3 != (undefined8 *)0x0) {
-        for (puVar6 = (undefined8 *)*puVar3; pCVar7 = (CTreeData *)0x0, puVar6 != puVar3;
-            puVar6 = (undefined8 *)*puVar6) {
-          if ((CVisualTree *)puVar6[4] == param_1) {
-            pCVar7 = (CTreeData *)(puVar6 + -0x2c);
-            break;
-          }
-        }
-      }
-      goto LAB_0;
+  this_00 = *(CVisual **)(*(longlong *)(*(longlong *)param_1 + 8) + 0x48);
+  pCVar1 = *(CVisualTree **)(*(longlong *)(param_1 + 8) + -8);
+  this_01 = EnsureTreeData(this,pCVar1);
+  pCVar4 = CTreeData::GetBackdropVisualImage(this_01,param_1);
+  wil::com_ptr_t<CBackdropVisualImage,wil::err_returncode_policy>::
+  com_ptr_t<CBackdropVisualImage,wil::err_returncode_policy>
+            ((com_ptr_t<CBackdropVisualImage,wil::err_returncode_policy> *)&local_res10,pCVar4);
+  pCVar4 = local_res10;
+  if (local_res10 == (CBackdropVisualImage *)0x0) {
+    pCVar5 = GetVisualTreeNoRef(this_00);
+    local_res10 = (CBackdropVisualImage *)0x0;
+    CBackdropVisualImage::Create(g_pComposition,this,param_1,pCVar5 == pCVar1,&local_res10);
+    pCVar4 = local_res10;
+    CTreeData::SetBackdropVisualImage(this_01,param_1,local_res10);
+    bVar2 = DwmDbg::Backdrops::IsEtwEnabled();
+    if (bVar2) {
+      puVar6 = (undefined8 *)CVisualTreePath::GetDebugString(param_1);
+      uVar7 = DwmDbg::DbgString::DbgString(local_40,"pBVI=0x%p, bviPath=[%s]",pCVar4,*puVar6);
+      uVar8 = DwmDbg::DbgString::DbgString(local_38,"Visual-CreatedNewBVI");
+      DwmDbg::Backdrops::LogBrushEtwEvent(uVar8,this,uVar7);
+      std::
+      unique_ptr<class_CWeakReference<CResource>*___ptr64_[0],std::default_delete<class_CWeakReference<CResource>*___ptr64_[0]>_>
+      ::
+      ~unique_ptr<class_CWeakReference<CResource>*___ptr64_[0],std::default_delete<class_CWeakReference<CResource>*___ptr64_[0]>_>
+                (local_48);
     }
   }
-  else {
-    pCVar7 = (CTreeData *)(this + 0x148);
-LAB_0:
-    if (pCVar7 != (CTreeData *)0x0) {
-      return pCVar7;
-    }
-  }
-  puVar4 = *(uint **)(this + 0xe8);
-  if ((*puVar4 >> 0x1c & 1) != 0) {
-    uVar1 = puVar4[1];
-    puVar14 = puVar4 + 2;
-    uVar13 = 0;
-    pCVar7 = pCVar10;
-    puVar11 = puVar14;
-    if (uVar1 != 0) {
-      do {
-        uVar13 = (uint)pCVar7;
-        if ((char)*puVar11 == '\x04') break;
-        uVar13 = uVar13 + 1;
-        pCVar7 = (CTreeData *)(ulonglong)uVar13;
-        puVar11 = (uint *)((longlong)puVar11 + 1);
-      } while (uVar13 < uVar1);
-    }
-    pCVar7 = pCVar10;
-    if (uVar13 < uVar1) {
-      pCVar7 = (CTreeData *)
-               ((longlong)puVar4 +
-               (ulonglong)uVar1 + 0xf +
-               ((ulonglong)uVar13 * 8 - (ulonglong)((uint)((ulonglong)uVar1 + 0xf) & 7)));
-    }
-    pCVar7 = *(CTreeData **)pCVar7;
-    if (pCVar7 != (CTreeData *)0x0) {
-      *puVar4 = *puVar4 & 0xefffffff;
-      if (uVar1 != 0) {
-        do {
-          if ((char)*puVar14 == '\x04') break;
-          uVar13 = (int)pCVar10 + 1;
-          pCVar10 = (CTreeData *)(ulonglong)uVar13;
-          puVar14 = (uint *)((longlong)puVar14 + 1);
-        } while (uVar13 < uVar1);
-      }
-      if ((uint)pCVar10 < uVar1) {
-        (pCVar10 + 8)[(longlong)puVar4] = (CTreeData)0x0;
-      }
-      ppuVar8 = *(undefined ***)pCVar7;
-      goto LAB_1;
-    }
-  }
-  hHeap = GetProcessHeap();
-  pCVar7 = HeapAlloc(hHeap,0,0x188);
-  if (pCVar7 == (CTreeData *)0x0) {
-                    /* WARNING: Subroutine does not return */
-    ModuleFailFastForHRESULT(0x8007000e,unaff_retaddr);
-  }
-  pCVar10 = pCVar7;
-  CTreeData::CTreeData(pCVar7);
-  ppuVar8 = &CVisualTreeData::_vftable_;
-  *(undefined8 *)(pCVar10 + 0x180) = 0;
-  *(undefined ***)pCVar10 = &CVisualTreeData::_vftable_;
-LAB_1:
-  if ((code *)ppuVar8[1] == CVisualTreeData::Initialize) {
-    *(CVisualTree **)(pCVar7 + 0x180) = param_1;
-    CTreeData::Initialize(pCVar7,(CVisualTree *)0x0,this);
-  }
-  else {
-    (*(code *)ppuVar8[1])(pCVar7,param_1);
-  }
-  return pCVar7;
+  lVar3 = CBackdropVisualImage::ValidateRootAndSourceRectangle
+                    (pCVar4,this_00,param_2,param_3,param_4);
+  wil::com_ptr_t<CBackdropVisualImage,wil::err_returncode_policy>::
+  ~com_ptr_t<CBackdropVisualImage,wil::err_returncode_policy>
+            ((com_ptr_t<CBackdropVisualImage,wil::err_returncode_policy> *)&local_res10);
+  return lVar3;
 }
 

```


## CDrawingContext::DrawVisualTree

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,fullname,refcount,length,sig,address,calling,called,parent|
|ratio|0.02|
|i_ratio|0.01|
|m_ratio|0.15|
|b_ratio|0.12|
|match_types|Implied Match|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|name|DrawVisualTree|DrawVisualTree|
|`fullname`|CDrawingContext::DrawVisualTree|CSubDrawingContext::DrawVisualTree|
|`refcount`|15|3|
|`length`|2972|225|
|`called`|<details><summary>Expand for full list:<br>CArrayBasedCoverageSet::IsCovered<br>CBaseClipStack::Pop<br>CD3DDevice::DiscardView<br>CDebugVisualImage::SetRenderTargetSize<br>CDesktopTree::IncrementDrawListGenerationCount<br>CDrawingContext::DrawRectangleOverlay<br>CDrawingContext::GetClipBoundsWorld<br>CDrawingContext::GetCurrentVisual<br>CDrawingContext::PopRenderOptionsInternal<br>CDrawingContext::PushGpuClipRectInternal<br>CDrawingContext::PushRenderOptionsInternal</summary>CDrawingContext::PushTransformInternal<br>CFloatFPU::CeilingSat<br>CFloatFPU::FloorSat<br>CMILMatrix::Transform3DBoundsHelper<1><br>COcclusionContext::IsCurrent<br>COcclusionContext::SetDeviceTransform<br>CVisualTree::EnsureVisualTransform<br>CVisualTree::IncrementDrawListGenerationCount<br>CVisualTreeIterator::WalkSubtree<CDrawingContext><br>CVisualTreePath::Append<br>CWatermarkStack<unsigned_int,64,2,10>::Pop<br>FUN_1802eec8e<br>FUN_1802eecac<br>IDeviceSurfaceMethodsT<CD2DBitmap,IDeviceTextureTarget>::GetSize`adjustor{184}'<br>MilInstrumentationCheckHR_MaybeFailFast<br>__security_check_cookie<br>_guard_dispatch_icall$thunk$10345483385596137414<br>detail::vector_facade<CVisualTreePath::VisualTreePathUnit,detail::buffer_impl<CVisualTreePath::VisualTreePathUnit,2,1,detail::liberal_expansion_policy>_>::push_back<br>detail::vector_facade<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,detail::buffer_impl<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,10,1,detail::liberal_expansion_policy>_>::~vector_facade<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,detail::buffer_impl<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,10,1,detail::liberal_expansion_policy>_><br>operator_delete[]<br>operator_new<br>std::make_unique<CVisualTreePath,CVisualTreePath&___ptr64,0><br>std::unique_ptr<CVisualTreePath,std::default_delete<CVisualTreePath>_>::operator=<std::default_delete<CVisualTreePath>,0><br>std::unique_ptr<CVisualTreePath,std::default_delete<CVisualTreePath>_>::~unique_ptr<CVisualTreePath,std::default_delete<CVisualTreePath>_><br>wil::details::in1diag3::Return_Hr</details>|CDrawingContext::DrawVisualTree<br>CSubDrawingContext::BeginFrame<br>CSubDrawingContext::EndFrame<br>CSubDrawingContext::Initialize<br>FUN_1802ebc04|
|`calling`|<details><summary>Expand for full list:<br><lambda_049d6d688814d7d313d5c47612af6d56>::operator()<br><lambda_e4077e5e8eddb22a4c31a0c3987f7b3a>::operator()<br>CCachedVisualImage::CCachedTarget::Update<br>CDDARenderTarget::Render<br>CDDisplayRenderTarget::RenderDirtyRegion<br>CDrawingContext::DrawSubVisualTree<br>CHolographicInteropTarget::RenderDirtyRegion<br>CLegacyRenderTarget::RenderDirtyRegion<br>CLegacyStereoRenderTarget::RenderDirtyRegion<br>COffScreenRenderTarget::RenderTargetDirty<br>CRemoteAppRenderTarget::RenderDirtyRegion</summary>CRemoteRenderTarget::Render<br>CaptureBitsResponse::RenderForCapture</details>|CDrawingContext::DrawSubVisualTree|
|paramcount|7|5|
|`address`|180147448|1800f6900|
|`sig`|long __thiscall DrawVisualTree(CDrawingContext * this, CVisualTree * param_1, TMil3DRect<float,TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,D3D_RECT_F,MilPointAndSizeF,RectUniqueness::NotNeeded> * param_2, COcclusionContext * param_3, Enum param_4, bool param_5, CVisual * param_6)|long __thiscall DrawVisualTree(CSubDrawingContext * this, CVisualTree * param_1, TMil3DRect<float,TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,D3D_RECT_F,MilPointAndSizeF,RectUniqueness::NotNeeded> * param_2, CMILMatrix * param_3, COcclusionContext * param_4)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### CDrawingContext::DrawVisualTree Called Diff


```diff
--- CDrawingContext::DrawVisualTree called
+++ CSubDrawingContext::DrawVisualTree called
@@ -1,36 +1,5 @@
-CArrayBasedCoverageSet::IsCovered
-CBaseClipStack::Pop
-CD3DDevice::DiscardView
-CDebugVisualImage::SetRenderTargetSize
-CDesktopTree::IncrementDrawListGenerationCount
-CDrawingContext::DrawRectangleOverlay
-CDrawingContext::GetClipBoundsWorld
-CDrawingContext::GetCurrentVisual
-CDrawingContext::PopRenderOptionsInternal
-CDrawingContext::PushGpuClipRectInternal
-CDrawingContext::PushRenderOptionsInternal
-CDrawingContext::PushTransformInternal
-CFloatFPU::CeilingSat
-CFloatFPU::FloorSat
-CMILMatrix::Transform3DBoundsHelper<1>
-COcclusionContext::IsCurrent
-COcclusionContext::SetDeviceTransform
-CVisualTree::EnsureVisualTransform
-CVisualTree::IncrementDrawListGenerationCount
-CVisualTreeIterator::WalkSubtree<CDrawingContext>
-CVisualTreePath::Append
-CWatermarkStack<unsigned_int,64,2,10>::Pop
-FUN_1802eec8e
-FUN_1802eecac
-IDeviceSurfaceMethodsT<CD2DBitmap,IDeviceTextureTarget>::GetSize`adjustor{184}'
-MilInstrumentationCheckHR_MaybeFailFast
-__security_check_cookie
-_guard_dispatch_icall$thunk$10345483385596137414
-detail::vector_facade<CVisualTreePath::VisualTreePathUnit,detail::buffer_impl<CVisualTreePath::VisualTreePathUnit,2,1,detail::liberal_expansion_policy>_>::push_back
-detail::vector_facade<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,detail::buffer_impl<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,10,1,detail::liberal_expansion_policy>_>::~vector_facade<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,detail::buffer_impl<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,10,1,detail::liberal_expansion_policy>_>
-operator_delete[]
-operator_new
-std::make_unique<CVisualTreePath,CVisualTreePath&___ptr64,0>
-std::unique_ptr<CVisualTreePath,std::default_delete<CVisualTreePath>_>::operator=<std::default_delete<CVisualTreePath>,0>
-std::unique_ptr<CVisualTreePath,std::default_delete<CVisualTreePath>_>::~unique_ptr<CVisualTreePath,std::default_delete<CVisualTreePath>_>
-wil::details::in1diag3::Return_Hr
+CDrawingContext::DrawVisualTree
+CSubDrawingContext::BeginFrame
+CSubDrawingContext::EndFrame
+CSubDrawingContext::Initialize
+FUN_1802ebc04
```


### CDrawingContext::DrawVisualTree Calling Diff


```diff
--- CDrawingContext::DrawVisualTree calling
+++ CSubDrawingContext::DrawVisualTree calling
@@ -1,5 +0,0 @@
-<lambda_049d6d688814d7d313d5c47612af6d56>::operator()
-<lambda_e4077e5e8eddb22a4c31a0c3987f7b3a>::operator()
-CCachedVisualImage::CCachedTarget::Update
-CDDARenderTarget::Render
-CDDisplayRenderTarget::RenderDirtyRegion
@@ -7,7 +1,0 @@
-CHolographicInteropTarget::RenderDirtyRegion
-CLegacyRenderTarget::RenderDirtyRegion
-CLegacyStereoRenderTarget::RenderDirtyRegion
-COffScreenRenderTarget::RenderTargetDirty
-CRemoteAppRenderTarget::RenderDirtyRegion
-CRemoteRenderTarget::Render
-CaptureBitsResponse::RenderForCapture
```


### CDrawingContext::DrawVisualTree Diff


```diff
--- CDrawingContext::DrawVisualTree
+++ CSubDrawingContext::DrawVisualTree
@@ -1,559 +1,39 @@
 
-/* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
-   guard_dispatch_icall */
-/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
-/* public: long __cdecl CDrawingContext::DrawVisualTree(class CVisualTree const * __ptr64,class
+/* public: long __cdecl CSubDrawingContext::DrawVisualTree(class CVisualTree const * __ptr64,class
    TMil3DRect<float,class TMilRect_<float,struct D2D_RECT_F,struct D3D_RECT_F,struct
    D2D_POINTANDSIZE_F,struct RectUniqueness::NotNeeded>,struct D3D_RECT_F,struct
-   MilPointAndSizeF,struct RectUniqueness::NotNeeded> const & __ptr64,class COcclusionContext const
-   * __ptr64,enum ClearMode::Enum,bool,class CVisual * __ptr64) __ptr64 */
+   MilPointAndSizeF,struct RectUniqueness::NotNeeded> const & __ptr64,class CMILMatrix const &
+   __ptr64,class COcclusionContext const * __ptr64) __ptr64 */
 
 long __thiscall
-CDrawingContext::DrawVisualTree
-          (CDrawingContext *this,CVisualTree *param_1,
+CSubDrawingContext::DrawVisualTree
+          (CSubDrawingContext *this,CVisualTree *param_1,
           TMil3DRect<float,TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,D3D_RECT_F,MilPointAndSizeF,RectUniqueness::NotNeeded>
-          *param_2,COcclusionContext *param_3,Enum param_4,bool param_5,CVisual *param_6)
+          *param_2,CMILMatrix *param_3,COcclusionContext *param_4)
 
 {
-  CDrawingContext CVar1;
-  CDrawingContext CVar2;
-  CDrawingContext CVar3;
-  IDeviceSurfaceMethodsT<CD2DBitmap,IDeviceTextureTarget> *this_00;
-  code *pcVar4;
-  vector_facade<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,detail::buffer_impl<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,10,1,detail::liberal_expansion_policy>_>
-  *pvVar5;
-  CD3DDevice *this_01;
-  undefined8 uVar6;
-  byte bVar7;
-  bool bVar8;
-  Enum EVar9;
-  char cVar10;
-  byte bVar11;
-  CComposition CVar12;
-  bool bVar13;
-  bool bVar14;
-  long lVar15;
-  uint uVar16;
-  D2D_SIZE_U *pDVar17;
-  vector_facade<CVisualTreePath::VisualTreePathUnit,detail::buffer_impl<CVisualTreePath::VisualTreePathUnit,2,1,detail::liberal_expansion_policy>_>
-  *this_02;
-  TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> *pTVar18;
-  unique_ptr<class_CVisualTreePath,struct_std::default_delete<class_CVisualTreePath>_> *puVar19;
-  CVisual *pCVar20;
-  undefined8 *puVar21;
-  undefined8 uVar22;
-  int iVar23;
-  longlong lVar24;
-  COcclusionContext *this_03;
-  CVisualTree *pCVar25;
-  char *pcVar26;
-  vector_facade<CVisualTreePath::VisualTreePathUnit,detail::buffer_impl<CVisualTreePath::VisualTreePathUnit,2,1,detail::liberal_expansion_policy>_>
-  *pvVar27;
-  CDrawingContext CVar28;
-  TMil3DRect<float,class_TMilRect_<float,struct_D2D_RECT_F,struct_D3D_RECT_F,struct_D2D_POINTANDSIZE_F,struct_RectUniqueness::NotNeeded>,struct_D3D_RECT_F,struct_MilPointAndSizeF,struct_RectUniqueness::NotNeeded>
-  *pTVar29;
-  bool bVar30;
-  float fVar31;
-  float fVar32;
-  float fVar33;
-  float fVar34;
-  void *unaff_retaddr;
-  undefined1 auStackY_208 [32];
-  float local_1d0 [2];
-  float local_1c8 [4];
-  CVisual *local_1b8;
-  TMil3DRect<float,TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,D3D_RECT_F,MilPointAndSizeF,RectUniqueness::NotNeeded>
-  *local_1b0;
-  DbgString aDStack_1a8 [8];
-  DbgString aDStack_1a0 [8];
-  undefined8 local_198;
-  undefined8 local_190;
-  undefined8 local_188;
-  undefined8 local_180;
-  CDrawingContext local_178;
-  CDrawingContext local_177;
-  CDrawingContext local_176;
-  undefined8 local_170;
-  undefined8 local_168;
-  undefined8 local_160;
-  undefined8 local_158;
-  undefined4 local_150;
-  undefined8 local_14c;
-  longlong lStack_144;
-  undefined8 local_13c;
-  undefined8 uStack_134;
-  undefined4 local_12c;
-  DbgString aDStack_128 [8];
-  undefined1 local_120 [12];
-  float fStack_114;
-  float local_110 [6];
-  ulonglong local_f8;
+  long lVar1;
   
-  local_f8 = __security_cookie ^ (ulonglong)auStackY_208;
-  CVar1 = this[0x1f00];
-  CVar2 = this[0x1f01];
-  CVar3 = this[0x1f02];
-  local_198 = *(undefined8 *)(this + 0x1f08);
-  local_190 = *(undefined8 *)(this + 0x1f10);
-  local_188 = *(undefined8 *)(this + 0x1f18);
-  local_180 = *(undefined8 *)(this + 0x1f20);
-  *(undefined8 *)(this + 0x1f20) = 0;
-  bVar8 = false;
-  local_1b0 = param_2;
-  local_178 = CVar1;
-  local_177 = CVar2;
-  local_176 = CVar3;
-  local_170 = local_198;
-  local_168 = local_190;
-  local_160 = local_188;
-  if ((param_3 != (COcclusionContext *)0x0) &&
-     ((this_03 = param_3, bVar14 = COcclusionContext::IsCurrent(param_3), !bVar14 ||
-      (lVar15 = COcclusionContext::SetDeviceTransform(this_03,(CMILMatrix *)(this + 0x60)),
-      lVar15 < 0)))) {
-    param_3 = (COcclusionContext *)0x0;
-  }
-  if (param_6 == (CVisual *)0x0) {
-    param_6 = *(CVisual **)(param_1 + 0x48);
-  }
-  local_1b8 = param_6;
-  if (*(longlong *)(this + 200) != 0) {
-    local_1b8 = *(CVisual **)(*(longlong *)(this + 200) + 0x810);
-    if (*(longlong *)(this + 0xd0) != 0) {
-      local_1b8 = (CVisual *)0x0;
+  if (*(longlong *)(this + 8) == 0) {
+    lVar1 = Initialize(this);
+    if (lVar1 < 0) {
+      lVar1 = FUN_1802ebc04();
+      return lVar1;
     }
   }
-  pvVar27 = (vector_facade<CVisualTreePath::VisualTreePathUnit,detail::buffer_impl<CVisualTreePath::VisualTreePathUnit,2,1,detail::liberal_expansion_policy>_>
-             *)0x0;
-  pTVar29 = (TMil3DRect<float,class_TMilRect_<float,struct_D2D_RECT_F,struct_D3D_RECT_F,struct_D2D_POINTANDSIZE_F,struct_RectUniqueness::NotNeeded>,struct_D3D_RECT_F,struct_MilPointAndSizeF,struct_RectUniqueness::NotNeeded>
-             *)local_110;
-  local_110[4] = 0.0;
-  local_110[5] = 0.0;
-  this[0x1f02] = (CDrawingContext)param_5;
-  local_110[0] = 0.0;
-  local_110[1] = 0.0;
-  local_110[2] = 0.0;
-  local_110[3] = 0.0;
-  *(undefined2 *)(this + 0x1f00) = 1;
-  *(CVisualTree **)(this + 0x1f08) = param_1;
-  *(CVisual **)(this + 0x1f10) = param_6;
-  *(COcclusionContext **)(this + 0x1f18) = param_3;
-  CMILMatrix::Transform3DBoundsHelper<1>((CMILMatrix *)(this + 0x60),local_1b0,pTVar29);
-  fVar34 = local_110[0];
-  fVar33 = local_110[1];
-  fVar32 = local_110[2];
-  fVar31 = local_110[3];
-  local_1c8[0] = 0.0;
-  local_1c8[1] = 0.0;
-  local_1c8[2] = 0.0;
-  local_1c8[3] = 0.0;
-  GetClipBoundsWorld(this,(TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
-                           *)local_1c8,SUB81(pTVar29,0));
-  if (fVar34 < local_1c8[0]) {
-    fVar34 = local_1c8[0];
+  lVar1 = BeginFrame(this,param_3);
+  if (-1 < lVar1) {
+    lVar1 = CDrawingContext::DrawVisualTree
+                      (*(CDrawingContext **)(this + 8),param_1,param_2,param_4,0,
+                       *(bool *)(*(longlong *)this + 0x1f02),(CVisual *)0x0);
+    if (-1 < lVar1) {
+      EndFrame(this,SUB41((uint)lVar1 >> 0x1f,0));
+      return lVar1;
+    }
+    lVar1 = FUN_1802ebc04();
+    return lVar1;
   }
-  if (fVar33 < local_1c8[1]) {
-    fVar33 = local_1c8[1];
-  }
-  if (local_1c8[2] < fVar32) {
-    fVar32 = local_1c8[2];
-  }
-  if (local_1c8[3] < fVar31) {
-    fVar31 = local_1c8[3];
-  }
-  if ((fVar32 <= fVar34) || (fVar31 <= fVar33)) {
-    fVar31 = 0.0;
-    fVar32 = 0.0;
-    fVar33 = 0.0;
-    fVar34 = 0.0;
-  }
-  cVar10 = (**(code **)(*(longlong *)param_1 + 0xb8))(param_1);
-  if (cVar10 != '\0') {
-    this_00 = *(IDeviceSurfaceMethodsT<CD2DBitmap,IDeviceTextureTarget> **)(this + 0x20);
-    if (*(code **)(*(longlong *)this_00 + 0x58) ==
-        IDeviceSurfaceMethodsT<CD2DBitmap,IDeviceTextureTarget>::GetSize_adjustor_184__) {
-      pDVar17 = (D2D_SIZE_U *)
-                IDeviceSurfaceMethodsT<CD2DBitmap,IDeviceTextureTarget>::GetSize_adjustor_184__
-                          (this_00);
-    }
-    else {
-      pDVar17 = (D2D_SIZE_U *)(**(code **)(*(longlong *)this_00 + 0x58))(this_00,local_1d0);
-    }
-    CDebugVisualImage::SetRenderTargetSize(pDVar17);
-  }
-  if ((uint)ABS(fVar34) < 0x497ffff1) {
-    local_1d0[0] = fVar34 + 6291456.0;
-    iVar23 = ((int)local_1d0[0] << 10) >> 0xb;
-  }
-  else {
-    iVar23 = (int)ROUND(fVar34) + (uint)((float)(int)ROUND(fVar34) - fVar34 <= -0.5);
-  }
-  if (0.00390625 < ABS(fVar34 - (float)iVar23)) {
-    iVar23 = CFloatFPU::FloorSat(fVar34);
-  }
-  fVar34 = (float)iVar23;
-  local_110[0] = fVar34;
-  if ((uint)ABS(fVar33) < 0x497ffff1) {
-    local_1d0[0] = fVar33 + 6291456.0;
-    iVar23 = ((int)local_1d0[0] << 10) >> 0xb;
-  }
-  else {
-    iVar23 = (int)ROUND(fVar33) + (uint)((float)(int)ROUND(fVar33) - fVar33 <= -0.5);
-  }
-  if (0.00390625 < ABS(fVar33 - (float)iVar23)) {
-    iVar23 = CFloatFPU::FloorSat(fVar33);
-  }
-  fVar33 = (float)iVar23;
-  local_110[1] = fVar33;
-  if ((uint)ABS(fVar32) < 0x497ffff1) {
-    local_1d0[0] = fVar32 + 6291456.0;
-    iVar23 = ((int)local_1d0[0] << 10) >> 0xb;
-  }
-  else {
-    iVar23 = (int)ROUND(fVar32) + (uint)((float)(int)ROUND(fVar32) - fVar32 <= -0.5);
-  }
-  if (0.00390625 < ABS(fVar32 - (float)iVar23)) {
-    iVar23 = CFloatFPU::CeilingSat(fVar32);
-  }
-  fVar32 = (float)iVar23;
-  local_110[2] = fVar32;
-  if ((uint)ABS(fVar31) < 0x497ffff1) {
-    local_1d0[0] = fVar31 + 6291456.0;
-    iVar23 = ((int)local_1d0[0] << 10) >> 0xb;
-  }
-  else {
-    iVar23 = (int)ROUND(fVar31) + (uint)((float)(int)ROUND(fVar31) - fVar31 <= -0.5);
-  }
-  if (0.00390625 < ABS(fVar31 - (float)iVar23)) {
-    iVar23 = CFloatFPU::CeilingSat(fVar31);
-  }
-  fVar31 = (float)iVar23;
-  local_110[3] = fVar31;
-  lVar15 = 0;
-  if ((fVar32 <= fVar34) || (lVar15 = 0, fVar31 <= fVar33)) goto LAB_0;
-  pcVar4 = *(code **)(*(longlong *)param_1 + 0xc0);
-  if (pcVar4 == CDesktopTree::IncrementDrawListGenerationCount) {
-    CDesktopTree::IncrementDrawListGenerationCount((CDesktopTree *)param_1);
-  }
-  else if (pcVar4 == CVisualTree::IncrementDrawListGenerationCount) {
-    CVisualTree::IncrementDrawListGenerationCount(param_1);
-  }
-  else {
-    (*pcVar4)();
-  }
-  if (*(longlong *)(this + 0xd0) == 0) {
-    this_02 = ::operator_new(0x38);
-    if (this_02 !=
-        (vector_facade<CVisualTreePath::VisualTreePathUnit,detail::buffer_impl<CVisualTreePath::VisualTreePathUnit,2,1,detail::liberal_expansion_policy>_>
-         *)0x0) {
-      local_120._0_4_ = 0;
-      local_120._4_4_ = 0;
-      *(vector_facade<CVisualTreePath::VisualTreePathUnit,detail::buffer_impl<CVisualTreePath::VisualTreePathUnit,2,1,detail::liberal_expansion_policy>_>
-        **)this_02 = this_02 + 0x18;
-      *(vector_facade<CVisualTreePath::VisualTreePathUnit,detail::buffer_impl<CVisualTreePath::VisualTreePathUnit,2,1,detail::liberal_expansion_policy>_>
-        **)(this_02 + 8) = this_02 + 0x18;
-      *(vector_facade<CVisualTreePath::VisualTreePathUnit,detail::buffer_impl<CVisualTreePath::VisualTreePathUnit,2,1,detail::liberal_expansion_policy>_>
-        **)(this_02 + 0x10) = this_02 + 0x38;
-      unique0x10000e1a = param_1;
-      detail::
-      vector_facade<CVisualTreePath::VisualTreePathUnit,detail::buffer_impl<CVisualTreePath::VisualTreePathUnit,2,1,detail::liberal_expansion_policy>_>
-      ::push_back(this_02,(VisualTreePathUnit *)local_120);
-      pvVar27 = this_02;
-    }
-    pvVar5 = *(vector_facade<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,detail::buffer_impl<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,10,1,detail::liberal_expansion_policy>_>
-               **)(this + 0x1f20);
-    *(vector_facade<CVisualTreePath::VisualTreePathUnit,detail::buffer_impl<CVisualTreePath::VisualTreePathUnit,2,1,detail::liberal_expansion_policy>_>
-      **)(this + 0x1f20) = pvVar27;
-    if (pvVar5 != (vector_facade<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,detail::buffer_impl<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,10,1,detail::liberal_expansion_policy>_>
-                   *)0x0) {
-      detail::
-      vector_facade<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,detail::buffer_impl<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,10,1,detail::liberal_expansion_policy>_>
-      ::
-      ~vector_facade<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,detail::buffer_impl<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,10,1,detail::liberal_expansion_policy>_>
-                (pvVar5);
-      operator_delete__(pvVar5,0x38);
-    }
-LAB_1:
-    pCVar25 = param_1 + 0x50;
-    if (param_6 != *(CVisual **)(param_1 + 0x48)) {
-      pCVar25 = (CVisualTree *)(param_6 + 0x98);
-    }
-    bVar14 = *(float *)(pCVar25 + 0x14) < *(float *)(pCVar25 + 0x10) ||
-             *(float *)(pCVar25 + 0x14) == *(float *)(pCVar25 + 0x10);
-    bVar7 = bVar14 + 1;
-    if (*(float *)pCVar25 <= *(float *)(pCVar25 + 8) && *(float *)(pCVar25 + 8) != *(float *)pCVar25
-       ) {
-      bVar7 = bVar14;
-    }
-    bVar11 = bVar7 + 1;
-    if (*(float *)(pCVar25 + 4) <= *(float *)(pCVar25 + 0xc) &&
-        *(float *)(pCVar25 + 0xc) != *(float *)(pCVar25 + 4)) {
-      bVar11 = bVar7;
-    }
-    bVar14 = 1 < bVar11;
-    bVar30 = false;
-    CVar12 = (CComposition)0x0;
-    if (g_pComposition[0x195a] != (CComposition)0x0) {
-      CVar12 = g_pComposition[0x195b];
-    }
-    if (CVar12 != (CComposition)0x0) {
-      *(undefined8 *)(this + 0x50) = 0;
-      *(undefined4 *)(this + 0x58) = 0;
-      EVar9 = 2;
-      if (param_4 != 0) {
-        EVar9 = param_4;
-      }
-      param_4 = EVar9;
-      *(undefined4 *)(this + 0x5c) = 0x3f800000;
-      bVar14 = true;
-    }
-    pTVar18 = (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> *
-              )0x0;
-    lVar15 = PushTransformInternal(this,(CVisual *)0x0,(CMILMatrix *)(this + 0x60),true,true);
-    if (lVar15 < 0) {
-      uVar16 = 0x13cf;
-    }
-    else {
-      if (*(longlong *)(this + 0xd0) == 0) {
-        pTVar18 = (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
-                   *)0x0;
-        lVar15 = PushGpuClipRectInternal
-                           (this,(CVisual *)0x0,
-                            (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
-                             *)local_110,1,false);
-        if (lVar15 < 0) {
-          uVar16 = 0x13d6;
-          goto LAB_2;
-        }
-        bVar30 = true;
-        bVar8 = true;
-        if (param_4 != 0) {
-          if (*(longlong *)(this + 0x1f18) == 0) {
-LAB_3:
-            pTVar18 = (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
-                       *)(this + 0x50);
-            lVar15 = (*(code *)**(undefined8 **)(this + 0x10))();
-            if (lVar15 < 0) {
-              uVar16 = 0x13f3;
-              goto LAB_2;
-            }
-          }
-          else {
-            if ((fVar34 < fVar32) && (fVar33 < fVar31)) {
-              pTVar18 = (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
-                         *)local_120;
-              local_120._4_4_ = fVar33;
-              local_120._0_4_ = fVar34;
-              stack0xfffffffffffffee8 = (CVisualTree *)CONCAT44(fVar31,fVar32);
-              bVar13 = CArrayBasedCoverageSet::IsCovered
-                                 ((CArrayBasedCoverageSet *)(*(longlong *)(this + 0x1f18) + 0x268),
-                                  pTVar18,0x7fffffff,true,false);
-              if (!bVar13) goto LAB_3;
-            }
-            uVar16 = 1;
-            lVar24 = 0;
-            if (param_4 != 1) goto LAB_4;
-            do {
-              *(int *)(local_120 + lVar24) = (int)(longlong)*(float *)((longlong)local_110 + lVar24)
-              ;
-              lVar24 = lVar24 + 4;
-            } while (lVar24 < 0x10);
-            this_01 = *(CD3DDevice **)(this + 0x28);
-            pTVar18 = (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
-                       *)(**(code **)(**(longlong **)(this + 0x20) + 0xb0))();
-            CD3DDevice::DiscardView(this_01,(ID3D11View *)pTVar18,(tagRECT *)local_120,uVar16);
-          }
-          bVar30 = true;
-        }
-      }
-LAB_4:
-      lVar24 = 1;
-      if (bVar14) {
-        bVar14 = false;
-        bVar8 = bVar30;
-        if (lVar15 < 0) goto LAB_0;
-LAB_5:
-        CVar28 = (CDrawingContext)0x1;
-        if (bVar14) {
-          pTVar18 = (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
-                     *)CONCAT71((int7)((ulonglong)pTVar18 >> 8),1);
-          CVar28 = (CDrawingContext)0x1;
-          PopRenderOptionsInternal(this,true);
-        }
-        if (bVar8) {
-          CBaseClipStack::Pop((CBaseClipStack *)(this + 0xc28));
-          *(longlong *)(*(longlong *)(this + 0x2f0) + -0xb8) =
-               *(longlong *)(*(longlong *)(this + 0x2f0) + -0xb8) + -1;
-          this[0x1f81] = CVar28;
-        }
-        lVar24 = 0;
-        if (*(int *)(this + 0x110) != 0) {
-          uVar16 = *(int *)(this + 0x110) - 1;
-          *(uint *)(this + 0x110) = uVar16;
-          lVar24 = *(longlong *)(*(longlong *)(this + 0x108) + (ulonglong)uVar16 * 0x10 + 8);
-        }
-        if (lVar24 != 0) {
-          CWatermarkStack<unsigned_int,64,2,10>::Pop
-                    ((CWatermarkStack<unsigned_int,64,2,10> *)(this + 0x150),(uint *)pTVar18);
-        }
-        if (*(int *)(this + 0x128) != 0) {
-          *(int *)(this + 0x128) = *(int *)(this + 0x128) + -1;
-        }
-        CWatermarkStack<unsigned_int,64,2,10>::Pop
-                  ((CWatermarkStack<unsigned_int,64,2,10> *)(this + 0x138),(uint *)pTVar18);
-        goto LAB_0;
-      }
-      if (((byte)Microsoft_Windows_Dwm_CompositorEnableBits & 2) != 0) {
-        fVar34 = (fVar31 - fVar33) * (fVar32 - fVar34);
-        if ((9.223372e+18 <= fVar34) && (fVar34 = fVar34 - 9.223372e+18, fVar34 < 9.223372e+18)) {
-          lVar15 = FUN_1802eec8e(0x8000000000000000);
-          return lVar15;
-        }
-        CRenderPerf::NotifyDrawVisualTree((CRenderPerf *)(g_pComposition + 0x10),(longlong)fVar34);
-      }
-      *(undefined4 *)(this + 0x1f28) = 0;
-      if (param_5) {
-        local_150 = 3;
-        local_14c = 0xff000006;
-        lStack_144 = lVar24 << 0x20;
-        local_12c = 0;
-        local_13c = 0;
-        uStack_134 = 0;
-        lVar15 = PushRenderOptionsInternal
-                           (this,(CVisual *)0x0,(MilRenderOptions *)&local_150,SUB81(lVar24,0));
-        if (lVar15 < 0) {
-          uVar16 = 0x140e;
-          goto LAB_2;
-        }
-        lVar24 = 1;
-        bVar14 = true;
-      }
-      else {
-        bVar14 = false;
-      }
-      this[0x1f01] = SUB81(lVar24,0);
-      this[0xc1] = (CDrawingContext)0x0;
-      if (DAT_6 != 0) {
-        if ((((byte)param_6[0x6b] & 5) == 0) && (*(int *)(param_6 + 0x108) < 1)) {
-          if (0 < *(int *)(param_6 + 0x10c)) {
-            lVar15 = FUN_1802eecac();
-            return lVar15;
-          }
-        }
-        else {
-          DwmDbg::DbgString::DbgString(aDStack_1a0,(CMILMatrix *)(this + 0x60));
-          puVar21 = (undefined8 *)DwmDbg::DbgString::DbgString(aDStack_1a8,(D2D_RECT_F *)local_110);
-          uVar6 = *puVar21;
-          puVar21 = (undefined8 *)
-                    DwmDbg::DbgString::DbgString((DbgString *)local_1d0,(D2D_RECT_F *)local_1c8);
-          DwmDbg::DbgString::DbgString
-                    (aDStack_128,
-                     "rcTargetBounds=[%s], rcRenderBounds=[%s], m_pCutoffBVI=0x%p, m_deviceTransform=[%s]"
-                     ,*puVar21,uVar6);
-          uVar6 = *(undefined8 *)(this + 0x1f20);
-          pcVar26 = "Render-StartWalk-Backdrop";
-          if (*(longlong *)(this + 200) == 0) {
-            pcVar26 = "Render-StartWalk-Normal";
-          }
-          uVar22 = DwmDbg::DbgString::DbgString((DbgString *)local_120,pcVar26);
-          DwmDbg::Backdrops::LogTreeWalkEtwEvent(uVar22,param_6,param_1,uVar6);
-          std::
-          unique_ptr<class_CWeakReference<CResource>*___ptr64_[0],std::default_delete<class_CWeakReference<CResource>*___ptr64_[0]>_>
-          ::
-          ~unique_ptr<class_CWeakReference<CResource>*___ptr64_[0],std::default_delete<class_CWeakReference<CResource>*___ptr64_[0]>_>
-                    ((unique_ptr<class_CWeakReference<CResource>*___ptr64_[0],std::default_delete<class_CWeakReference<CResource>*___ptr64_[0]>_>
-                      *)local_1d0);
-          std::
-          unique_ptr<class_CWeakReference<CResource>*___ptr64_[0],std::default_delete<class_CWeakReference<CResource>*___ptr64_[0]>_>
-          ::
-          ~unique_ptr<class_CWeakReference<CResource>*___ptr64_[0],std::default_delete<class_CWeakReference<CResource>*___ptr64_[0]>_>
-                    ((unique_ptr<class_CWeakReference<CResource>*___ptr64_[0],std::default_delete<class_CWeakReference<CResource>*___ptr64_[0]>_>
-                      *)aDStack_1a8);
-          std::
-          unique_ptr<class_CWeakReference<CResource>*___ptr64_[0],std::default_delete<class_CWeakReference<CResource>*___ptr64_[0]>_>
-          ::
-          ~unique_ptr<class_CWeakReference<CResource>*___ptr64_[0],std::default_delete<class_CWeakReference<CResource>*___ptr64_[0]>_>
-                    ((unique_ptr<class_CWeakReference<CResource>*___ptr64_[0],std::default_delete<class_CWeakReference<CResource>*___ptr64_[0]>_>
-                      *)aDStack_1a0);
-        }
-      }
-      pCVar25 = *(CVisualTree **)(this + 0x1f08);
-      *(CVisualTree **)(this + 0xcc0) = pCVar25;
-      if (param_6 == (CVisual *)0x0) {
-        pTVar18 = *(TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
-                    **)(pCVar25 + 0x48);
-LAB_7:
-        lVar15 = CVisualTreeIterator::WalkSubtree<CDrawingContext>
-                           ((CVisualTreeIterator *)(this + 0xc88),(CVisual *)pTVar18,local_1b8,this,
-                            3);
-        if (-1 < lVar15) {
-          bVar30 = CCommonRegistryData::m_fShowDirtyRegions != 0;
-          this[0x1f01] = (CDrawingContext)0x0;
-          if ((bVar30) &&
-             (pTVar18 = (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
-                         *)local_1b0,
-             lVar15 = DrawRectangleOverlay
-                                (this,(TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
-                                       *)local_1b0), lVar15 < 0)) {
-            uVar16 = 0x1432;
-            goto LAB_2;
-          }
-          goto LAB_5;
-        }
-      }
-      else {
-        pTVar18 = (TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
-                   *)param_6;
-        if ((param_6 == *(CVisual **)(pCVar25 + 0x48)) ||
-           (lVar15 = CVisualTree::EnsureVisualTransform(pCVar25,param_6), -1 < lVar15))
-        goto LAB_7;
-        wil::details::in1diag3::Return_Hr
-                  (unaff_retaddr,0xa2,"onecoreuap\\windows\\DWM\\dwmcore\\engine\\TreeIterator.h",
-                   lVar15);
-      }
-      uVar16 = 0x142b;
-    }
-  }
-  else {
-    puVar19 = (unique_ptr<class_CVisualTreePath,struct_std::default_delete<class_CVisualTreePath>_>
-               *)std::make_unique<CVisualTreePath,CVisualTreePath&___ptr64,0>
-                           ((CVisualTreePath *)local_1d0);
-    std::unique_ptr<CVisualTreePath,std::default_delete<CVisualTreePath>_>::
-    operator=<std::default_delete<CVisualTreePath>,0>
-              ((unique_ptr<CVisualTreePath,std::default_delete<CVisualTreePath>_> *)(this + 0x1f20),
-               puVar19);
-    std::unique_ptr<CVisualTreePath,std::default_delete<CVisualTreePath>_>::
-    ~unique_ptr<CVisualTreePath,std::default_delete<CVisualTreePath>_>
-              ((unique_ptr<CVisualTreePath,std::default_delete<CVisualTreePath>_> *)local_1d0);
-    pCVar20 = GetCurrentVisual(*(CDrawingContext **)(this + 0xd0));
-    lVar15 = CVisualTreePath::Append(*(CVisualTreePath **)(this + 0x1f20),pCVar20,param_1);
-    if (-1 < lVar15) goto LAB_1;
-    uVar16 = 0x13b7;
-  }
-LAB_2:
-  MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar15,uVar16,(void *)0x0);
-LAB_0:
-  this[0x1f00] = CVar1;
-  this[0x1f01] = CVar2;
-  this[0x1f02] = CVar3;
-  *(undefined8 *)(this + 0x1f08) = local_198;
-  *(undefined8 *)(this + 0x1f10) = local_190;
-  *(undefined8 *)(this + 0x1f18) = local_188;
-  pvVar5 = *(vector_facade<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,detail::buffer_impl<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,10,1,detail::liberal_expansion_policy>_>
-             **)(this + 0x1f20);
-  local_158 = 0;
-  *(undefined8 *)(this + 0x1f20) = local_180;
-  if (pvVar5 != (vector_facade<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,detail::buffer_impl<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,10,1,detail::liberal_expansion_policy>_>
-                 *)0x0) {
-    detail::
-    vector_facade<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,detail::buffer_impl<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,10,1,detail::liberal_expansion_policy>_>
-    ::
-    ~vector_facade<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,detail::buffer_impl<TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>,10,1,detail::liberal_expansion_policy>_>
-              (pvVar5);
-    operator_delete__(pvVar5,0x38);
-  }
-  std::unique_ptr<CVisualTreePath,std::default_delete<CVisualTreePath>_>::
-  ~unique_ptr<CVisualTreePath,std::default_delete<CVisualTreePath>_>
-            ((unique_ptr<CVisualTreePath,std::default_delete<CVisualTreePath>_> *)&local_158);
-  return lVar15;
+  lVar1 = FUN_1802ebc04();
+  return lVar1;
 }
 

```


## CScenePbrMaterialGeneratedT<CScenePbrMaterial,CSceneMaterial>::~CScenePbrMaterialGeneratedT<CScenePbrMaterial,CSceneMaterial>

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,name,fullname,refcount,length,sig,address,calling,called,parent|
|ratio|0.42|
|i_ratio|0.4|
|m_ratio|0.8|
|b_ratio|0.67|
|match_types|Implied Match|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|`name`|~CScenePbrMaterialGeneratedT<CScenePbrMaterial,CSceneMaterial>|~CCompositionMagnifierBrush|
|`fullname`|CScenePbrMaterialGeneratedT<CScenePbrMaterial,CSceneMaterial>::~CScenePbrMaterialGeneratedT<CScenePbrMaterial,CSceneMaterial>|CCompositionMagnifierBrush::~CCompositionMagnifierBrush|
|`refcount`|3|2|
|`length`|88|48|
|`called`|CResource::UnRegisterNotifierInternal<br>CSceneMaterial::~CSceneMaterial|CBrush::~CBrush<br>CCompositionMagnifierBrush::UnregisterCursorListener|
|`calling`|CSceneMetallicRoughnessMaterialGeneratedT<CSceneMetallicRoughnessMaterial,CScenePbrMaterial>::~CSceneMetallicRoughnessMaterialGeneratedT<CSceneMetallicRoughnessMaterial,CScenePbrMaterial><br>CScenePbrMaterial::`vector_deleting_destructor'|CCompositionMagnifierBrush::`vector_deleting_destructor'|
|paramcount|1|1|
|`address`|180277d18|180298668|
|`sig`|void __thiscall ~CScenePbrMaterialGeneratedT<CScenePbrMaterial,CSceneMaterial>(CScenePbrMaterialGeneratedT<CScenePbrMaterial,CSceneMaterial> * this)|void __thiscall ~CCompositionMagnifierBrush(CCompositionMagnifierBrush * this)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### CScenePbrMaterialGeneratedT<CScenePbrMaterial,CSceneMaterial>::~CScenePbrMaterialGeneratedT<CScenePbrMaterial,CSceneMaterial> Called Diff


```diff
--- CScenePbrMaterialGeneratedT<CScenePbrMaterial,CSceneMaterial>::~CScenePbrMaterialGeneratedT<CScenePbrMaterial,CSceneMaterial> called
+++ CCompositionMagnifierBrush::~CCompositionMagnifierBrush called
@@ -1,2 +1,2 @@
-CResource::UnRegisterNotifierInternal
-CSceneMaterial::~CSceneMaterial
+CBrush::~CBrush
+CCompositionMagnifierBrush::UnregisterCursorListener
```


### CScenePbrMaterialGeneratedT<CScenePbrMaterial,CSceneMaterial>::~CScenePbrMaterialGeneratedT<CScenePbrMaterial,CSceneMaterial> Calling Diff


```diff
--- CScenePbrMaterialGeneratedT<CScenePbrMaterial,CSceneMaterial>::~CScenePbrMaterialGeneratedT<CScenePbrMaterial,CSceneMaterial> calling
+++ CCompositionMagnifierBrush::~CCompositionMagnifierBrush calling
@@ -1,2 +1 @@
-CSceneMetallicRoughnessMaterialGeneratedT<CSceneMetallicRoughnessMaterial,CScenePbrMaterial>::~CSceneMetallicRoughnessMaterialGeneratedT<CSceneMetallicRoughnessMaterial,CScenePbrMaterial>
-CScenePbrMaterial::`vector_deleting_destructor'
+CCompositionMagnifierBrush::`vector_deleting_destructor'
```


### CScenePbrMaterialGeneratedT<CScenePbrMaterial,CSceneMaterial>::~CScenePbrMaterialGeneratedT<CScenePbrMaterial,CSceneMaterial> Diff


```diff
--- CScenePbrMaterialGeneratedT<CScenePbrMaterial,CSceneMaterial>::~CScenePbrMaterialGeneratedT<CScenePbrMaterial,CSceneMaterial>
+++ CCompositionMagnifierBrush::~CCompositionMagnifierBrush
@@ -1,21 +1,15 @@
 
-/* protected: virtual __cdecl CScenePbrMaterialGeneratedT<class CScenePbrMaterial,class
-   CSceneMaterial>::~CScenePbrMaterialGeneratedT<class CScenePbrMaterial,class CSceneMaterial>(void)
-   __ptr64 */
+/* protected: virtual __cdecl CCompositionMagnifierBrush::~CCompositionMagnifierBrush(void) __ptr64
+    */
 
 void __thiscall
-CScenePbrMaterialGeneratedT<CScenePbrMaterial,CSceneMaterial>::
-~CScenePbrMaterialGeneratedT<CScenePbrMaterial,CSceneMaterial>
-          (CScenePbrMaterialGeneratedT<CScenePbrMaterial,CSceneMaterial> *this)
+CCompositionMagnifierBrush::~CCompositionMagnifierBrush(CCompositionMagnifierBrush *this)
 
 {
-  CResource::UnRegisterNotifierInternal((CResource *)this,*(CResource **)(this + 0x80));
-  *(undefined8 *)(this + 0x80) = 0;
-  CResource::UnRegisterNotifierInternal((CResource *)this,*(CResource **)(this + 0x88));
-  *(undefined8 *)(this + 0x88) = 0;
-  CResource::UnRegisterNotifierInternal((CResource *)this,*(CResource **)(this + 0x90));
-  *(undefined8 *)(this + 0x90) = 0;
-  CSceneMaterial::~CSceneMaterial((CSceneMaterial *)this);
+  *(undefined ***)this = &_vftable__for__CContent__;
+  *(undefined ***)(this + 0x48) = &_vftable__for__IBrushChangeNotification__;
+  UnregisterCursorListener(this);
+  CBrush::~CBrush((CBrush *)this);
   return;
 }
 

```


## std::_Sort_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_4f96f9abf6f4efc73c76f9e3716c5312>_>_>

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,name,fullname,refcount,length,sig,address,calling,called,parent|
|ratio|0.21|
|i_ratio|0.02|
|m_ratio|0.65|
|b_ratio|0.42|
|match_types|Implied Match|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|`name`|_Sort_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_4f96f9abf6f4efc73c76f9e3716c5312>_>_>|SortShapeCache|
|`fullname`|std::_Sort_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_4f96f9abf6f4efc73c76f9e3716c5312>_>_>|CCursorState::SortShapeCache|
|`refcount`|4|2|
|`length`|234|114|
|`called`|std::_Insertion_sort_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_4f96f9abf6f4efc73c76f9e3716c5312>_>_><br>std::_Make_heap_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_4f96f9abf6f4efc73c76f9e3716c5312>_>_><br>std::_Partition_by_median_guess_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_4f96f9abf6f4efc73c76f9e3716c5312>_>_><br>std::_Sort_heap_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_4f96f9abf6f4efc73c76f9e3716c5312>_>_><br>std::_Sort_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_4f96f9abf6f4efc73c76f9e3716c5312>_>_>|std::_Sort_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_39668c2dc6e40fe158f11373301c566a>_>_>|
|`calling`|CCursorState::TryGetShape<br>std::_Sort_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_4f96f9abf6f4efc73c76f9e3716c5312>_>_>|CCursorState::TryGetShape|
|paramcount|0|4|
|`address`|1802b3ff4|1802b7b88|
|`sig`|undefined _Sort_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_4f96f9abf6f4efc73c76f9e3716c5312>_>_>(void)|void __thiscall SortShapeCache(CCursorState * this, D2D_SIZE_U * param_1, DXGI_MODE_ROTATION param_2, bool param_3)|
|sym_type|Function|Function|
|sym_source|IMPORTED|ANALYSIS|
|external|False|False|

### std::_Sort_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_4f96f9abf6f4efc73c76f9e3716c5312>_>_> Called Diff


```diff
--- std::_Sort_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_4f96f9abf6f4efc73c76f9e3716c5312>_>_> called
+++ CCursorState::SortShapeCache called
@@ -1,5 +1 @@
-std::_Insertion_sort_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_4f96f9abf6f4efc73c76f9e3716c5312>_>_>
-std::_Make_heap_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_4f96f9abf6f4efc73c76f9e3716c5312>_>_>
-std::_Partition_by_median_guess_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_4f96f9abf6f4efc73c76f9e3716c5312>_>_>
-std::_Sort_heap_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_4f96f9abf6f4efc73c76f9e3716c5312>_>_>
-std::_Sort_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_4f96f9abf6f4efc73c76f9e3716c5312>_>_>
+std::_Sort_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_39668c2dc6e40fe158f11373301c566a>_>_>
```


### std::_Sort_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_4f96f9abf6f4efc73c76f9e3716c5312>_>_> Calling Diff


```diff
--- std::_Sort_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_4f96f9abf6f4efc73c76f9e3716c5312>_>_> calling
+++ CCursorState::SortShapeCache calling
@@ -2 +1,0 @@
-std::_Sort_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_4f96f9abf6f4efc73c76f9e3716c5312>_>_>
```


### std::_Sort_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_4f96f9abf6f4efc73c76f9e3716c5312>_>_> Diff


```diff
--- std::_Sort_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_4f96f9abf6f4efc73c76f9e3716c5312>_>_>
+++ CCursorState::SortShapeCache
@@ -1,38 +1,33 @@
 
-void std::
-     _Sort_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_4f96f9abf6f4efc73c76f9e3716c5312>_>_>
-               (longlong param_1,longlong param_2,longlong param_3,undefined8 param_4)
+/* private: void __cdecl CCursorState::SortShapeCache(struct D2D_SIZE_U const & __ptr64,enum
+   DXGI_MODE_ROTATION,bool) __ptr64 */
+
+void __thiscall
+CCursorState::SortShapeCache
+          (CCursorState *this,D2D_SIZE_U *param_1,DXGI_MODE_ROTATION param_2,bool param_3)
 
 {
-  longlong local_18;
-  longlong local_10;
+  undefined8 local_res8;
+  DXGI_MODE_ROTATION local_res18 [2];
+  undefined1 local_res20 [8];
+  undefined1 *local_28;
+  undefined8 *local_20;
+  DXGI_MODE_ROTATION *local_18;
   
-  while( true ) {
-    if ((longlong)(param_2 - param_1 & 0xfffffffffffffff0U) < 0x201) {
-      _Insertion_sort_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_4f96f9abf6f4efc73c76f9e3716c5312>_>_>
-                (param_1,param_2,param_4);
-      return;
-    }
-    if (param_3 < 1) break;
-    _Partition_by_median_guess_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_4f96f9abf6f4efc73c76f9e3716c5312>_>_>
-              (&local_18,param_1,param_2,param_4);
-    param_3 = (param_3 >> 1) + (param_3 >> 2);
-    if ((longlong)(local_18 - param_1 & 0xfffffffffffffff0U) <
-        (longlong)(param_2 - local_10 & 0xfffffffffffffff0U)) {
-      _Sort_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_4f96f9abf6f4efc73c76f9e3716c5312>_>_>
-                (param_1,local_18,param_3,param_4);
-      param_1 = local_10;
-    }
-    else {
-      _Sort_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_4f96f9abf6f4efc73c76f9e3716c5312>_>_>
-                (local_10,param_2,param_3,param_4);
-      param_2 = local_18;
-    }
+  local_res8 = *(undefined8 *)param_1;
+  if ((param_2 - 2 & 0xfffffffd) == 0) {
+    local_res8._4_4_ = (undefined4)((ulonglong)local_res8 >> 0x20);
+    local_res8 = CONCAT44((undefined4)local_res8,local_res8._4_4_);
   }
-  _Make_heap_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_4f96f9abf6f4efc73c76f9e3716c5312>_>_>
-            (param_1,param_2,param_4);
-  _Sort_heap_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_4f96f9abf6f4efc73c76f9e3716c5312>_>_>
-            (param_1,param_2,param_4);
+  local_28 = local_res20;
+  local_20 = &local_res8;
+  local_18 = local_res18;
+  local_res18[0] = param_2;
+  local_res20[0] = param_3;
+  std::
+  _Sort_unchecked<std::shared_ptr<CCursorState::ShapeData>_*,std::_Ref_fn<<lambda_39668c2dc6e40fe158f11373301c566a>_>_>
+            (*(longlong *)(this + 0xe0),*(longlong *)(this + 0xe8),
+             *(longlong *)(this + 0xe8) - *(longlong *)(this + 0xe0) >> 4,&local_28);
   return;
 }
 

```


## McTemplateU0nqqt_EventWriteTransfer

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,name,fullname,refcount,length,sig,address,calling,called|
|ratio|0.2|
|i_ratio|0.04|
|m_ratio|0.91|
|b_ratio|0.34|
|match_types|Implied Match|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|`name`|McTemplateU0nqqt_EventWriteTransfer|McGenEventWrite_EventWriteTransfer|
|`fullname`|McTemplateU0nqqt_EventWriteTransfer|McGenEventWrite_EventWriteTransfer|
|`refcount`|2|226|
|`length`|143|87|
|`called`|McGenEventWrite_EventWriteTransfer<br>__security_check_cookie|API-MS-WIN-EVENTING-PROVIDER-L1-1-0.DLL::EventWriteTransfer|
|`calling`|COverlayContext::Present|<details><summary>Expand for full list:<br>CAnimation::UpdateAnimateValues<br>CAtlasedRectsGroup::Draw<br>CBspPreComputeHelper::PreComputePostSubgraph<br>CBspPreComputeHelper::PreComputePreSubgraph<br>CCachedVisualImage::Snapshot<br>CCompSwapChain::CopyFrontToBackBuffer<br>CComposition::ActiveAnimationsTelemetry<br>CComposition::Channel_CreateResource<br>CComposition::CleanTrees<br>CComposition::ClearCaches<br>CComposition::PostRender</summary>CComposition::PreRender<br>CComposition::ProcessComposition<br>CComposition::ScheduleCompositionPass<br>CComposition::UpdateAnimateResources<br>CComposition::UpdateExpressions<br>CCompositionSurfaceBitmap::ProcessUpdate<br>CComputeScribbleScheduler::ProcessScribbleFrame<br>CD2DContext::Clear<br>CD2DContext::DrawShape<br>CD2DContext::EndDraw<br>CD2DContext::EnsureBeginDraw<br>CD2DContext::FillShape<br>CD2DContext::FlushDrawList<br>CD2DContext::SubmitRenderCommand<br>CD2DLayer::ApplyState<br>CD2DLayer::RestoreState<br>CD3DDevice::DiscardView<br>CD3DDevice::OpenSharedTexture<br>CDDisplayRenderTarget::RenderDirtyRegion<br>CDrawingContext::Clear<br>CDrawingContext::EndFrame<br>CDrawingContext::EtwLogCurrentState<br>CDrawingContext::FillShapeWithBrush<br>CDrawingContext::PushD2DLayer<br>CEffectBrush::GetBrushParameters<br>CExpressionManager::UpdateExpressions<br>CExternalLayer::CreateBitmap<br>CExternalLayer::RestoreState<br>CGlobalCompositionSurfaceInfo::CBindInfo::DxFlipConsumedTelemetry<br>CGlobalCompositionSurfaceInfo::ProcessSurfaceUpdate<br>CGlobalManipulationManager::ManipulationThreadMain<br>CGlobalSurfaceManager::ProcessLegacyTokens<br>CGlobalSurfaceManager::ProcessSurfaceUpdates<br>CHitTestContext::HitTestPoint<br>CHolographicInteropTarget::RenderAndPresent<br>CInputManager::s_HitTestRequest<br>CKernelTransport::DispatchBatches<br>CLegacyRenderTarget::RenderDirtyRegion<br>COcclusionContext::Compute<br>COcclusionContext::FlushOcclusionRects<br>COverlayContext::ApplyConfiguration<br>COverlayContext::IsCustomPresentDurationSupported<br>COverlayContext::Present<br>COverlayContext::PresentMPO<br>COverlaySwapChain::CopyFrontToBackBuffer<br>CPreComputeContext::PreCompute<br>CPrimitiveGroup::Draw<br>CProcessAttributionReporter::Report<br>CRenderTargetManager::AdvanceFrame<br>CRenderTargetManager::CheckOcclusionState<br>CRenderTargetManager::RenderAndPresent<br>CScheduler::WaitForWork<br>CShapeDrawingContext::Render<br>CSubDrawingContext::EndFrame<br>CSuperWetInkScribbleBase::DrawFallback<br>CVisual::NotifyMidManipulationPropertyChange<br>CVisual::RenderContent<br>CWindowNode::DxFlipConsumedTelemetry<br>CaptureBitsResponse::CaptureBitsResponse<br>CaptureBitsResponse::GetBits<br>FUN_1800d5bcf<br>FUN_1802ef6b0<br>LinkShader<br>McTemplateU0_EventWriteTransfer<br>McTemplateU0d_EventWriteTransfer<br>McTemplateU0dd_EventWriteTransfer<br>McTemplateU0dxt_EventWriteTransfer<br>McTemplateU0f_EventWriteTransfer<br>McTemplateU0ffff_EventWriteTransfer<br>McTemplateU0nqtqxxnnn_EventWriteTransfer<br>McTemplateU0nxnnn_EventWriteTransfer<br>McTemplateU0p_EventWriteTransfer<br>McTemplateU0pdffff_EventWriteTransfer<br>McTemplateU0pdsddt_EventWriteTransfer<br>McTemplateU0pp_EventWriteTransfer<br>McTemplateU0ppffff_EventWriteTransfer<br>McTemplateU0ppffffddtt_EventWriteTransfer<br>McTemplateU0ppffffubr6_EventWriteTransfer<br>McTemplateU0pppffff_EventWriteTransfer<br>McTemplateU0ppq_EventWriteTransfer<br>McTemplateU0ppqx_EventWriteTransfer<br>McTemplateU0pq_EventWriteTransfer<br>McTemplateU0pqnz_EventWriteTransfer<br>McTemplateU0pqqNR2_EventWriteTransfer<br>McTemplateU0pxffffffffffffffff_EventWriteTransfer<br>McTemplateU0pxqtq_EventWriteTransfer<br>McTemplateU0pxt_EventWriteTransfer<br>McTemplateU0pxttt_EventWriteTransfer<br>McTemplateU0pxxxq_EventWriteTransfer<br>McTemplateU0pxxxqqq_EventWriteTransfer<br>McTemplateU0q_EventWriteTransfer<br>McTemplateU0qdffff_EventWriteTransfer<br>McTemplateU0qq_EventWriteTransfer<br>McTemplateU0qqpq_EventWriteTransfer<br>McTemplateU0qqq_EventWriteTransfer<br>McTemplateU0qqqff_EventWriteTransfer<br>McTemplateU0qqqq_EventWriteTransfer<br>McTemplateU0qqqqx_EventWriteTransfer<br>McTemplateU0qqqqxx_EventWriteTransfer<br>McTemplateU0qqqxx_EventWriteTransfer<br>McTemplateU0qqqxxpp_EventWriteTransfer<br>McTemplateU0qqt_EventWriteTransfer<br>McTemplateU0qqx_EventWriteTransfer<br>McTemplateU0qqxqx_EventWriteTransfer<br>McTemplateU0qttttt_EventWriteTransfer<br>McTemplateU0qx_EventWriteTransfer<br>McTemplateU0qxqNR2_EventWriteTransfer<br>McTemplateU0qxqq_EventWriteTransfer<br>McTemplateU0qxx_EventWriteTransfer<br>McTemplateU0qxxxxn_EventWriteTransfer<br>McTemplateU0s_EventWriteTransfer<br>McTemplateU0tu_EventWriteTransfer<br>McTemplateU0txqqxqx_EventWriteTransfer<br>McTemplateU0xd_EventWriteTransfer<br>McTemplateU0xdddddddd_EventWriteTransfer<br>McTemplateU0xdddddddqqddddddddddddqqq_EventWriteTransfer<br>McTemplateU0xddqqddddddddddddqqq_EventWriteTransfer<br>McTemplateU0xf_EventWriteTransfer<br>McTemplateU0xn_EventWriteTransfer<br>McTemplateU0xq_EventWriteTransfer<br>McTemplateU0xqddddddddddddqqq_EventWriteTransfer<br>McTemplateU0xqf_EventWriteTransfer<br>McTemplateU0xqq_EventWriteTransfer<br>McTemplateU0xqqdddd_EventWriteTransfer<br>McTemplateU0xqqqddddddddddddqqq_EventWriteTransfer<br>McTemplateU0xqqqqt_EventWriteTransfer<br>McTemplateU0xqqxqx_EventWriteTransfer<br>McTemplateU0xqx_EventWriteTransfer<br>McTemplateU0xqxt_EventWriteTransfer<br>McTemplateU0xxdddddd_EventWriteTransfer<br>McTemplateU0xxddffff_EventWriteTransfer<br>McTemplateU0xxqNR2_EventWriteTransfer<br>McTemplateU0xxqf_EventWriteTransfer<br>McTemplateU0xxqq_EventWriteTransfer<br>McTemplateU0xxqqqqq_EventWriteTransfer<br>McTemplateU0xxqqqxxqqqq_EventWriteTransfer<br>McTemplateU0xxx_EventWriteTransfer<br>McTemplateU0xxxqNR3_EventWriteTransfer<br>McTemplateU0xxxq_EventWriteTransfer<br>McTemplateU0xxxqqqn_EventWriteTransfer<br>McTemplateU0xxxqqqqnnnqqq_EventWriteTransfer<br>McTemplateU0xxxqqxqxqxqx_EventWriteTransfer<br>McTemplateU0xxxx_EventWriteTransfer<br>McTemplateU0xxxxq_EventWriteTransfer<br>McTemplateU0xxxxx_EventWriteTransfer<br>McTemplateU0xxxxxqqxqxqxqxq_EventWriteTransfer<br>McTemplateU0zttq_EventWriteTransfer<br>`anonymous_namespace'::OutputCurrentFrameToEtw</details>|
|paramcount|0|0|
|`address`|1801afbd4|180040140|
|`sig`|undefined McTemplateU0nqqt_EventWriteTransfer(void)|undefined McGenEventWrite_EventWriteTransfer(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### McTemplateU0nqqt_EventWriteTransfer Called Diff


```diff
--- McTemplateU0nqqt_EventWriteTransfer called
+++ McGenEventWrite_EventWriteTransfer called
@@ -1,2 +1 @@
-McGenEventWrite_EventWriteTransfer
-__security_check_cookie
+API-MS-WIN-EVENTING-PROVIDER-L1-1-0.DLL::EventWriteTransfer
```


### McTemplateU0nqqt_EventWriteTransfer Calling Diff


```diff
--- McTemplateU0nqqt_EventWriteTransfer calling
+++ McGenEventWrite_EventWriteTransfer calling
@@ -0,0 +1,53 @@
+CAnimation::UpdateAnimateValues
+CAtlasedRectsGroup::Draw
+CBspPreComputeHelper::PreComputePostSubgraph
+CBspPreComputeHelper::PreComputePreSubgraph
+CCachedVisualImage::Snapshot
+CCompSwapChain::CopyFrontToBackBuffer
+CComposition::ActiveAnimationsTelemetry
+CComposition::Channel_CreateResource
+CComposition::CleanTrees
+CComposition::ClearCaches
+CComposition::PostRender
+CComposition::PreRender
+CComposition::ProcessComposition
+CComposition::ScheduleCompositionPass
+CComposition::UpdateAnimateResources
+CComposition::UpdateExpressions
+CCompositionSurfaceBitmap::ProcessUpdate
+CComputeScribbleScheduler::ProcessScribbleFrame
+CD2DContext::Clear
+CD2DContext::DrawShape
+CD2DContext::EndDraw
+CD2DContext::EnsureBeginDraw
+CD2DContext::FillShape
+CD2DContext::FlushDrawList
+CD2DContext::SubmitRenderCommand
+CD2DLayer::ApplyState
+CD2DLayer::RestoreState
+CD3DDevice::DiscardView
+CD3DDevice::OpenSharedTexture
+CDDisplayRenderTarget::RenderDirtyRegion
+CDrawingContext::Clear
+CDrawingContext::EndFrame
+CDrawingContext::EtwLogCurrentState
+CDrawingContext::FillShapeWithBrush
+CDrawingContext::PushD2DLayer
+CEffectBrush::GetBrushParameters
+CExpressionManager::UpdateExpressions
+CExternalLayer::CreateBitmap
+CExternalLayer::RestoreState
+CGlobalCompositionSurfaceInfo::CBindInfo::DxFlipConsumedTelemetry
+CGlobalCompositionSurfaceInfo::ProcessSurfaceUpdate
+CGlobalManipulationManager::ManipulationThreadMain
+CGlobalSurfaceManager::ProcessLegacyTokens
+CGlobalSurfaceManager::ProcessSurfaceUpdates
+CHitTestContext::HitTestPoint
+CHolographicInteropTarget::RenderAndPresent
+CInputManager::s_HitTestRequest
+CKernelTransport::DispatchBatches
+CLegacyRenderTarget::RenderDirtyRegion
+COcclusionContext::Compute
+COcclusionContext::FlushOcclusionRects
+COverlayContext::ApplyConfiguration
+COverlayContext::IsCustomPresentDurationSupported
@@ -1,0 +55,105 @@
+COverlayContext::PresentMPO
+COverlaySwapChain::CopyFrontToBackBuffer
+CPreComputeContext::PreCompute
+CPrimitiveGroup::Draw
+CProcessAttributionReporter::Report
+CRenderTargetManager::AdvanceFrame
+CRenderTargetManager::CheckOcclusionState
+CRenderTargetManager::RenderAndPresent
+CScheduler::WaitForWork
+CShapeDrawingContext::Render
+CSubDrawingContext::EndFrame
+CSuperWetInkScribbleBase::DrawFallback
+CVisual::NotifyMidManipulationPropertyChange
+CVisual::RenderContent
+CWindowNode::DxFlipConsumedTelemetry
+CaptureBitsResponse::CaptureBitsResponse
+CaptureBitsResponse::GetBits
+FUN_1800d5bcf
+FUN_1802ef6b0
+LinkShader
+McTemplateU0_EventWriteTransfer
+McTemplateU0d_EventWriteTransfer
+McTemplateU0dd_EventWriteTransfer
+McTemplateU0dxt_EventWriteTransfer
+McTemplateU0f_EventWriteTransfer
+McTemplateU0ffff_EventWriteTransfer
+McTemplateU0nqtqxxnnn_EventWriteTransfer
+McTemplateU0nxnnn_EventWriteTransfer
+McTemplateU0p_EventWriteTransfer
+McTemplateU0pdffff_EventWriteTransfer
+McTemplateU0pdsddt_EventWriteTransfer
+McTemplateU0pp_EventWriteTransfer
+McTemplateU0ppffff_EventWriteTransfer
+McTemplateU0ppffffddtt_EventWriteTransfer
+McTemplateU0ppffffubr6_EventWriteTransfer
+McTemplateU0pppffff_EventWriteTransfer
+McTemplateU0ppq_EventWriteTransfer
+McTemplateU0ppqx_EventWriteTransfer
+McTemplateU0pq_EventWriteTransfer
+McTemplateU0pqnz_EventWriteTransfer
+McTemplateU0pqqNR2_EventWriteTransfer
+McTemplateU0pxffffffffffffffff_EventWriteTransfer
+McTemplateU0pxqtq_EventWriteTransfer
+McTemplateU0pxt_EventWriteTransfer
+McTemplateU0pxttt_EventWriteTransfer
+McTemplateU0pxxxq_EventWriteTransfer
+McTemplateU0pxxxqqq_EventWriteTransfer
+McTemplateU0q_EventWriteTransfer
+McTemplateU0qdffff_EventWriteTransfer
+McTemplateU0qq_EventWriteTransfer
+McTemplateU0qqpq_EventWriteTransfer
+McTemplateU0qqq_EventWriteTransfer
+McTemplateU0qqqff_EventWriteTransfer
+McTemplateU0qqqq_EventWriteTransfer
+McTemplateU0qqqqx_EventWriteTransfer
+McTemplateU0qqqqxx_EventWriteTransfer
+McTemplateU0qqqxx_EventWriteTransfer
+McTemplateU0qqqxxpp_EventWriteTransfer
+McTemplateU0qqt_EventWriteTransfer
+McTemplateU0qqx_EventWriteTransfer
+McTemplateU0qqxqx_EventWriteTransfer
+McTemplateU0qttttt_EventWriteTransfer
+McTemplateU0qx_EventWriteTransfer
+McTemplateU0qxqNR2_EventWriteTransfer
+McTemplateU0qxqq_EventWriteTransfer
+McTemplateU0qxx_EventWriteTransfer
+McTemplateU0qxxxxn_EventWriteTransfer
+McTemplateU0s_EventWriteTransfer
+McTemplateU0tu_EventWriteTransfer
+McTemplateU0txqqxqx_EventWriteTransfer
+McTemplateU0xd_EventWriteTransfer
+McTemplateU0xdddddddd_EventWriteTransfer
+McTemplateU0xdddddddqqddddddddddddqqq_EventWriteTransfer
+McTemplateU0xddqqddddddddddddqqq_EventWriteTransfer
+McTemplateU0xf_EventWriteTransfer
+McTemplateU0xn_EventWriteTransfer
+McTemplateU0xq_EventWriteTransfer
+McTemplateU0xqddddddddddddqqq_EventWriteTransfer
+McTemplateU0xqf_EventWriteTransfer
+McTemplateU0xqq_EventWriteTransfer
+McTemplateU0xqqdddd_EventWriteTransfer
+McTemplateU0xqqqddddddddddddqqq_EventWriteTransfer
+McTemplateU0xqqqqt_EventWriteTransfer
+McTemplateU0xqqxqx_EventWriteTransfer
+McTemplateU0xqx_EventWriteTransfer
+McTemplateU0xqxt_EventWriteTransfer
+McTemplateU0xxdddddd_EventWriteTransfer
+McTemplateU0xxddffff_EventWriteTransfer
+McTemplateU0xxqNR2_EventWriteTransfer
+McTemplateU0xxqf_EventWriteTransfer
+McTemplateU0xxqq_EventWriteTransfer
+McTemplateU0xxqqqqq_EventWriteTransfer
+McTemplateU0xxqqqxxqqqq_EventWriteTransfer
+McTemplateU0xxx_EventWriteTransfer
+McTemplateU0xxxqNR3_EventWriteTransfer
+McTemplateU0xxxq_EventWriteTransfer
+McTemplateU0xxxqqqn_EventWriteTransfer
+McTemplateU0xxxqqqqnnnqqq_EventWriteTransfer
+McTemplateU0xxxqqxqxqxqx_EventWriteTransfer
+McTemplateU0xxxx_EventWriteTransfer
+McTemplateU0xxxxq_EventWriteTransfer
+McTemplateU0xxxxx_EventWriteTransfer
+McTemplateU0xxxxxqqxqxqxqxq_EventWriteTransfer
+McTemplateU0zttq_EventWriteTransfer
+`anonymous_namespace'::OutputCurrentFrameToEtw
```


### McTemplateU0nqqt_EventWriteTransfer Diff


```diff
--- McTemplateU0nqqt_EventWriteTransfer
+++ McGenEventWrite_EventWriteTransfer
@@ -1,35 +1,27 @@
 
-/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
-
-void McTemplateU0nqqt_EventWriteTransfer
-               (undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)
+void McGenEventWrite_EventWriteTransfer
+               (REGHANDLE *param_1,PCEVENT_DESCRIPTOR param_2,undefined8 param_3,ULONG param_4,
+               PEVENT_DATA_DESCRIPTOR param_5)
 
 {
-  undefined1 auStack_98 [32];
-  undefined1 *local_78;
-  undefined1 local_68 [16];
-  undefined8 local_58;
-  undefined8 local_50;
-  undefined1 *local_48;
-  undefined8 local_40;
-  undefined1 *local_38;
-  undefined8 local_30;
-  undefined1 *local_28;
-  undefined8 local_20;
-  ulonglong local_18;
+  ushort *puVar1;
+  uint uVar2;
+  uint uVar3;
   
-  local_18 = __security_cookie ^ (ulonglong)auStack_98;
-  local_48 = &stack0x00000028;
-  local_38 = &stack0x00000030;
-  local_50 = 0x1c;
-  local_28 = &stack0x00000038;
-  local_40 = 4;
-  local_78 = local_68;
-  local_30 = 4;
-  local_20 = 4;
-  local_58 = param_4;
-  McGenEventWrite_EventWriteTransfer
-            (&Microsoft_Windows_Dwm_Compositor_Context,&Present_MPO,param_3,5);
+  puVar1 = (ushort *)param_1[1];
+  if (puVar1 == (ushort *)0x0) {
+    param_5->Ptr = 0;
+    uVar2 = 0;
+    uVar3 = uVar2;
+  }
+  else {
+    param_5->Ptr = (ULONGLONG)puVar1;
+    uVar3 = 2;
+    uVar2 = (uint)*puVar1;
+  }
+  param_5->Size = uVar2;
+  param_5->Reserved = uVar3;
+  EventWriteTransfer(*param_1,param_2,(LPCGUID)0x0,(LPCGUID)0x0,param_4,param_5);
   return;
 }
 

```


## CResource::SetPropertyImpl

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,name,fullname,refcount,length,sig,address,calling,called,parent|
|ratio|0.03|
|i_ratio|0.01|
|m_ratio|0.26|
|b_ratio|0.01|
|match_types|Implied Match|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|`name`|SetPropertyImpl|SetOutputValueOnTarget|
|`fullname`|CResource::SetPropertyImpl|CBaseExpression::SetOutputValueOnTarget|
|`refcount`|106|3|
|`length`|251|2129|
|`called`|CBrush::NotifyOnChanged<br>CComponentTransform2D::SetRotationAngle<br>CResource::InvalidateAnimationSources<br>CResource::ModifyProperty<br>CResource::NotifyOnChanged<br>_guard_dispatch_icall$thunk$10345483385596137414|<details><summary>Expand for full list:<br>AnimationHelper::FindAnimatablePropertyInfo<br>CComponentTransform3D::SetProperty<br>CExpressionValue::CopyFrom<br>CExpressionValue::operator==<br>CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter>::InternalRelease<br>CPropertySet::GetProperty<br>CPropertySet::SetProperty<br>CResource::GetPropertyImpl<br>CResource::SetPropertyImpl<br>CVisual::GetOpacityInternal<br>CVisual::GetRelativeLayoutSizeInternal</summary>CVisual::GetRelativeOffsetInternal<br>CVisual::SetProperty<br>MilInstrumentationCheckHR_MaybeFailFast<br>__security_check_cookie<br>_guard_dispatch_icall$thunk$10345483385596137414<br>gsl::span<AnimationHelper::AnimatedProperty_const*___ptr64_const,-1>::storage_type<gsl::details::extent_type<-1>_>::storage_type<gsl::details::extent_type<-1>_><gsl::details::extent_type<6>_><br>gsl::span<AnimationHelper::AnimatedProperty_const*___ptr64_const,-1>::storage_type<gsl::details::extent_type<-1>_>::storage_type<gsl::details::extent_type<-1>_><gsl::details::extent_type<8>_></details>|
|`calling`|<details><summary>Expand for full list:<br>CBaseExpression::CalculateValue<br>CBaseExpression::SetOutputValue<br>CColorBrush::ProcessSetColor<br>CColorGradientStop::ProcessSetColor<br>CColorGradientStop::ProcessSetOffset<br>CColorGradientStop::SetProperty<br>CComponentTransform2D::ProcessSetAnchorPoint<br>CComponentTransform2D::ProcessSetCenterPoint<br>CComponentTransform2D::ProcessSetRotationAngle<br>CComponentTransform2D::ProcessSetScale<br>CComponentTransform2D::ProcessSetTransformMatrix</summary>CComponentTransform2D::SetTransform<br>CComponentTransform3D::ProcessSetAnchorPoint<br>CComponentTransform3D::ProcessSetCenterPoint<br>CComponentTransform3D::ProcessSetOffset<br>CComponentTransform3D::ProcessSetOrientation<br>CComponentTransform3D::ProcessSetRotationAngle<br>CComponentTransform3D::ProcessSetRotationAxis<br>CComponentTransform3D::ProcessSetScale<br>CCompositionAmbientLight::ProcessSetColor<br>CCompositionAmbientLight::ProcessSetIntensity<br>CCompositionAmbientLight::SetProperty<br>CCompositionDistantLight::ProcessSetColor<br>CCompositionDistantLight::ProcessSetDirection<br>CCompositionDistantLight::ProcessSetIntensity<br>CCompositionDistantLight::SetProperty<br>CCompositionPointLight::ProcessSetAttenuation0<br>CCompositionPointLight::ProcessSetAttenuation1<br>CCompositionPointLight::ProcessSetAttenuation2<br>CCompositionPointLight::ProcessSetColor<br>CCompositionPointLight::ProcessSetIntensity<br>CCompositionPointLight::ProcessSetMaxAttenuationCutoff<br>CCompositionPointLight::ProcessSetMinAttenuationCutoff<br>CCompositionPointLight::ProcessSetOffset<br>CCompositionPointLight::SetProperty<br>CCompositionSpotLight::ProcessSetAttenuation0<br>CCompositionSpotLight::ProcessSetAttenuation1<br>CCompositionSpotLight::ProcessSetAttenuation2<br>CCompositionSpotLight::ProcessSetDirection<br>CCompositionSpotLight::ProcessSetInnerConeAngle<br>CCompositionSpotLight::ProcessSetInnerConeColor<br>CCompositionSpotLight::ProcessSetInnerConeIntensity<br>CCompositionSpotLight::ProcessSetMaxAttenuationCutoff<br>CCompositionSpotLight::ProcessSetMinAttenuationCutoff<br>CCompositionSpotLight::ProcessSetOffset<br>CCompositionSpotLight::ProcessSetOuterConeAngle<br>CCompositionSpotLight::ProcessSetOuterConeColor<br>CCompositionSpotLight::ProcessSetOuterConeIntensity<br>CCompositionSpotLight::SetProperty<br>CDropShadow::ProcessSetBlurRadius<br>CDropShadow::ProcessSetColor<br>CDropShadow::ProcessSetOffset<br>CDropShadow::ProcessSetOpacity<br>CDropShadow::SetProperty<br>CEllipseGeometry::ProcessSetCenterPoint<br>CEllipseGeometry::ProcessSetRadius<br>CEllipseGeometry::SetProperty<br>CGeometry::ProcessSetTrimEnd<br>CGeometry::ProcessSetTrimOffset<br>CGeometry::ProcessSetTrimStart<br>CLineGeometry::ProcessSetEndPoint<br>CLineGeometry::ProcessSetStartPoint<br>CLineGeometry::SetProperty<br>CLinearGradientBrush::ProcessSetEndPoint<br>CLinearGradientBrush::ProcessSetStartPoint<br>CLinearGradientLegacyMilBrush::Draw<br>CProjectedShadow::AdjustNineGridBrush<br>CRadialGradientBrush::ProcessSetEllipseCenter<br>CRadialGradientBrush::ProcessSetEllipseRadius<br>CRadialGradientBrush::ProcessSetOriginOffset<br>CRadialGradientBrush::SetProperty<br>CRectangleGeometry::ProcessSetBottomInset<br>CRectangleGeometry::ProcessSetLeftInset<br>CRectangleGeometry::ProcessSetOffset<br>CRectangleGeometry::ProcessSetRectangle<br>CRectangleGeometry::ProcessSetRightInset<br>CRectangleGeometry::ProcessSetSize<br>CRectangleGeometry::ProcessSetTopInset<br>CRectangleGeometry::SetProperty<br>CSpriteVectorShape::ProcessSetStrokeDashOffset<br>CSpriteVectorShape::ProcessSetStrokeMiterLimit<br>CSpriteVectorShape::ProcessSetStrokeThickness<br>CSpriteVectorShape::SetProperty<br>CSurfaceBrush::ProcessSetSnapToPixels<br>CSurfaceBrush::ProcessSetSuperDownSample<br>CSurfaceBrush::ProcessSetVerticalAlignment<br>CSurfaceBrush::SetHorizontalAlignment<br>CSurfaceBrush::SetProperty<br>CSurfaceBrush::SetVerticalAlignment<br>CViewBox::ProcessSetHorizontalAlignment<br>CViewBox::ProcessSetOffset<br>CViewBox::ProcessSetSize<br>CViewBox::ProcessSetVerticalAlignment<br>CViewBox::SetProperty<br>CVisualSurface::ProcessSetSourceOffset<br>CVisualSurface::ProcessSetSourceSize<br>CVisualSurface::SetProperty</details>|CBaseExpression::SetOutputValue|
|paramcount|3|2|
|`address`|18000d2c0|18000ed10|
|`sig`|long __thiscall SetPropertyImpl(CResource * this, AnimatedProperty * param_1, void * param_2)|long __thiscall SetOutputValueOnTarget(CBaseExpression * this, CResource * param_1)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|IMPORTED|
|external|False|False|

### CResource::SetPropertyImpl Called Diff


```diff
--- CResource::SetPropertyImpl called
+++ CBaseExpression::SetOutputValueOnTarget called
@@ -1,5 +1,15 @@
-CBrush::NotifyOnChanged
-CComponentTransform2D::SetRotationAngle
-CResource::InvalidateAnimationSources
-CResource::ModifyProperty
-CResource::NotifyOnChanged
+AnimationHelper::FindAnimatablePropertyInfo
+CComponentTransform3D::SetProperty
+CExpressionValue::CopyFrom
+CExpressionValue::operator==
+CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter>::InternalRelease
+CPropertySet::GetProperty
+CPropertySet::SetProperty
+CResource::GetPropertyImpl
+CResource::SetPropertyImpl
+CVisual::GetOpacityInternal
+CVisual::GetRelativeLayoutSizeInternal
+CVisual::GetRelativeOffsetInternal
+CVisual::SetProperty
+MilInstrumentationCheckHR_MaybeFailFast
+__security_check_cookie
@@ -6,0 +17,2 @@
+gsl::span<AnimationHelper::AnimatedProperty_const*___ptr64_const,-1>::storage_type<gsl::details::extent_type<-1>_>::storage_type<gsl::details::extent_type<-1>_><gsl::details::extent_type<6>_>
+gsl::span<AnimationHelper::AnimatedProperty_const*___ptr64_const,-1>::storage_type<gsl::details::extent_type<-1>_>::storage_type<gsl::details::extent_type<-1>_><gsl::details::extent_type<8>_>
```


### CResource::SetPropertyImpl Calling Diff


```diff
--- CResource::SetPropertyImpl calling
+++ CBaseExpression::SetOutputValueOnTarget calling
@@ -1 +0,0 @@
-CBaseExpression::CalculateValue
@@ -3,95 +1,0 @@
-CColorBrush::ProcessSetColor
-CColorGradientStop::ProcessSetColor
-CColorGradientStop::ProcessSetOffset
-CColorGradientStop::SetProperty
-CComponentTransform2D::ProcessSetAnchorPoint
-CComponentTransform2D::ProcessSetCenterPoint
-CComponentTransform2D::ProcessSetRotationAngle
-CComponentTransform2D::ProcessSetScale
-CComponentTransform2D::ProcessSetTransformMatrix
-CComponentTransform2D::SetTransform
-CComponentTransform3D::ProcessSetAnchorPoint
-CComponentTransform3D::ProcessSetCenterPoint
-CComponentTransform3D::ProcessSetOffset
-CComponentTransform3D::ProcessSetOrientation
-CComponentTransform3D::ProcessSetRotationAngle
-CComponentTransform3D::ProcessSetRotationAxis
-CComponentTransform3D::ProcessSetScale
-CCompositionAmbientLight::ProcessSetColor
-CCompositionAmbientLight::ProcessSetIntensity
-CCompositionAmbientLight::SetProperty
-CCompositionDistantLight::ProcessSetColor
-CCompositionDistantLight::ProcessSetDirection
-CCompositionDistantLight::ProcessSetIntensity
-CCompositionDistantLight::SetProperty
-CCompositionPointLight::ProcessSetAttenuation0
-CCompositionPointLight::ProcessSetAttenuation1
-CCompositionPointLight::ProcessSetAttenuation2
-CCompositionPointLight::ProcessSetColor
-CCompositionPointLight::ProcessSetIntensity
-CCompositionPointLight::ProcessSetMaxAttenuationCutoff
-CCompositionPointLight::ProcessSetMinAttenuationCutoff
-CCompositionPointLight::ProcessSetOffset
-CCompositionPointLight::SetProperty
-CCompositionSpotLight::ProcessSetAttenuation0
-CCompositionSpotLight::ProcessSetAttenuation1
-CCompositionSpotLight::ProcessSetAttenuation2
-CCompositionSpotLight::ProcessSetDirection
-CCompositionSpotLight::ProcessSetInnerConeAngle
-CCompositionSpotLight::ProcessSetInnerConeColor
-CCompositionSpotLight::ProcessSetInnerConeIntensity
-CCompositionSpotLight::ProcessSetMaxAttenuationCutoff
-CCompositionSpotLight::ProcessSetMinAttenuationCutoff
-CCompositionSpotLight::ProcessSetOffset
-CCompositionSpotLight::ProcessSetOuterConeAngle
-CCompositionSpotLight::ProcessSetOuterConeColor
-CCompositionSpotLight::ProcessSetOuterConeIntensity
-CCompositionSpotLight::SetProperty
-CDropShadow::ProcessSetBlurRadius
-CDropShadow::ProcessSetColor
-CDropShadow::ProcessSetOffset
-CDropShadow::ProcessSetOpacity
-CDropShadow::SetProperty
-CEllipseGeometry::ProcessSetCenterPoint
-CEllipseGeometry::ProcessSetRadius
-CEllipseGeometry::SetProperty
-CGeometry::ProcessSetTrimEnd
-CGeometry::ProcessSetTrimOffset
-CGeometry::ProcessSetTrimStart
-CLineGeometry::ProcessSetEndPoint
-CLineGeometry::ProcessSetStartPoint
-CLineGeometry::SetProperty
-CLinearGradientBrush::ProcessSetEndPoint
-CLinearGradientBrush::ProcessSetStartPoint
-CLinearGradientLegacyMilBrush::Draw
-CProjectedShadow::AdjustNineGridBrush
-CRadialGradientBrush::ProcessSetEllipseCenter
-CRadialGradientBrush::ProcessSetEllipseRadius
-CRadialGradientBrush::ProcessSetOriginOffset
-CRadialGradientBrush::SetProperty
-CRectangleGeometry::ProcessSetBottomInset
-CRectangleGeometry::ProcessSetLeftInset
-CRectangleGeometry::ProcessSetOffset
-CRectangleGeometry::ProcessSetRectangle
-CRectangleGeometry::ProcessSetRightInset
-CRectangleGeometry::ProcessSetSize
-CRectangleGeometry::ProcessSetTopInset
-CRectangleGeometry::SetProperty
-CSpriteVectorShape::ProcessSetStrokeDashOffset
-CSpriteVectorShape::ProcessSetStrokeMiterLimit
-CSpriteVectorShape::ProcessSetStrokeThickness
-CSpriteVectorShape::SetProperty
-CSurfaceBrush::ProcessSetSnapToPixels
-CSurfaceBrush::ProcessSetSuperDownSample
-CSurfaceBrush::ProcessSetVerticalAlignment
-CSurfaceBrush::SetHorizontalAlignment
-CSurfaceBrush::SetProperty
-CSurfaceBrush::SetVerticalAlignment
-CViewBox::ProcessSetHorizontalAlignment
-CViewBox::ProcessSetOffset
-CViewBox::ProcessSetSize
-CViewBox::ProcessSetVerticalAlignment
-CViewBox::SetProperty
-CVisualSurface::ProcessSetSourceOffset
-CVisualSurface::ProcessSetSourceSize
-CVisualSurface::SetProperty
```


### CResource::SetPropertyImpl Diff


```diff
--- CResource::SetPropertyImpl
+++ CBaseExpression::SetOutputValueOnTarget
@@ -1,47 +1,369 @@
 
 /* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
    guard_dispatch_icall */
-/* protected: long __cdecl CResource::SetPropertyImpl(struct AnimationHelper::AnimatedProperty const
-   * __ptr64,void const * __ptr64) __ptr64 */
+/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
+/* protected: long __cdecl CBaseExpression::SetOutputValueOnTarget(class CResource * __ptr64)
+   __ptr64 */
 
-long __thiscall CResource::SetPropertyImpl(CResource *this,AnimatedProperty *param_1,void *param_2)
+long __thiscall CBaseExpression::SetOutputValueOnTarget(CBaseExpression *this,CResource *param_1)
 
 {
-  code *pcVar1;
-  bool bVar2;
-  long lVar3;
+  byte bVar1;
+  DCOMPOSITION_EXPRESSION_TYPE DVar2;
+  code *pcVar3;
+  int *piVar4;
+  bool bVar5;
+  char cVar6;
+  long lVar7;
+  int iVar8;
+  AnimatedProperty *pAVar9;
+  ulonglong uVar10;
+  CExpressionValue *pCVar11;
+  CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter> *pCVar12;
+  long lVar13;
+  float fVar14;
+  undefined1 auStackY_138 [32];
+  uint uVar15;
+  undefined1 local_108;
+  float local_100;
+  undefined4 local_fc;
+  undefined4 local_f8;
+  undefined4 local_f4;
+  undefined4 local_f0;
+  undefined8 local_e8;
+  ulonglong uStack_e0;
+  undefined8 local_d8;
+  undefined8 uStack_d0;
+  undefined8 local_c8;
+  undefined8 uStack_c0;
+  undefined8 local_b8;
+  undefined8 uStack_b0;
+  CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter> *local_a8;
+  int local_a0;
+  undefined8 local_98;
+  undefined8 uStack_90;
+  undefined8 local_88;
+  undefined8 uStack_80;
+  undefined8 local_78;
+  undefined8 uStack_70;
+  undefined8 local_68;
+  undefined8 uStack_60;
+  CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter> *local_58;
+  DCOMPOSITION_EXPRESSION_TYPE local_50;
+  ulonglong local_48;
   
-  pcVar1 = *(code **)(param_1 + 0x18);
-  if (pcVar1 == CGeometry::SetTrimInvalidatingAnimatedProperty) {
-    bVar2 = ModifyProperty(this,param_1,param_2);
-    if (bVar2) {
-      InvalidateAnimationSources(this,*(uint *)param_1);
-      *(undefined2 *)(this + 0x85) = 0x101;
-      NotifyOnChanged(this,0,(IUnknown *)0x0);
-    }
+  local_48 = __security_cookie ^ (ulonglong)auStackY_138;
+  uVar15 = *(uint *)(this + 0xbc);
+  lVar13 = 0;
+  local_a8 = (CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter> *)0x0;
+  pcVar3 = *(code **)(*(longlong *)param_1 + 0x88);
+  local_a0 = 0;
+  lVar7 = -0x7ff8ffa9;
+  local_e8 = 0;
+  uStack_e0 = 0;
+  local_d8 = 0;
+  uStack_d0 = 0;
+  local_c8 = 0;
+  uStack_c0 = 0;
+  local_b8 = 0;
+  uStack_b0 = 0;
+  if (pcVar3 != CVisual::GetProperty) {
+    if (pcVar3 == CComponentTransform3D::GetProperty) {
+      iVar8 = 0;
+      if (uVar15 == 6) {
+        local_a0 = 0x12;
+        local_e8 = (ulonglong)(uint)(*(float *)(param_1 + 0xe8) * 57.295776);
+      }
+      else {
+        gsl::span<AnimationHelper::AnimatedProperty_const*___ptr64_const,-1>::
+        storage_type<gsl::details::extent_type<-1>_>::
+        storage_type<gsl::details::extent_type<_1>_><gsl::details::extent_type<8>_>
+                  ((storage_type<gsl::details::extent_type<_1>_> *)&local_f8,
+                   &CComponentTransform3D::k_rgAnimDef);
+        pAVar9 = AnimationHelper::FindAnimatablePropertyInfo
+                           ((span<AnimationHelper::AnimatedProperty_const*___ptr64_const,_1> *)
+                            &local_f8,uVar15,0);
+        if (pAVar9 == (AnimatedProperty *)0x0) {
+          uVar15 = 0x78;
+          goto LAB_0;
+        }
+        CResource::GetPropertyImpl(param_1,pAVar9,(CExpressionValue *)&local_e8);
+        iVar8 = 0;
+      }
+    }
+    else if (pcVar3 == CPropertySet::GetProperty) {
+      iVar8 = CPropertySet::GetProperty
+                        ((CPropertySet *)param_1,uVar15,(CExpressionValue *)&local_e8);
+    }
+    else {
+      iVar8 = (*pcVar3)();
+    }
+    goto LAB_1;
+  }
+  iVar8 = 0;
+  if (uVar15 == 0x26) {
+    local_a0 = 0x11;
+    local_e8 = (ulonglong)((byte)param_1[0x6a] >> 6) & 0xffffffffffffff01;
+    iVar8 = 0;
+    goto LAB_1;
+  }
+  switch(uVar15) {
+  case 0x1a:
+    fVar14 = CVisual::GetOpacityInternal((CVisual *)param_1);
+    local_e8 = CONCAT44(local_e8._4_4_,fVar14);
+    local_a0 = 0x12;
+    break;
+  case 0x1b:
+    local_a0 = 0x11;
+    local_e8 = (ulonglong)((byte)param_1[0x69] >> 6) & 0xffffffffffffff01;
+    break;
+  case 0x1c:
+    local_e8 = *(ulonglong *)(param_1 + 0x74);
+    uStack_e0 = (ulonglong)*(uint *)(param_1 + 0x7c);
+    local_a0 = 0x34;
+    break;
+  case 0x1d:
+    fVar14 = *(float *)(param_1 + 0x88);
+    local_fc = *(undefined4 *)(param_1 + 0x8c);
+    goto LAB_2;
+  case 0x1e:
+    CVisual::GetRelativeOffsetInternal((CVisual *)param_1);
+    uStack_e0 = CONCAT44(uStack_e0._4_4_,local_f0);
+    local_e8 = CONCAT44(local_f4,local_f8);
+    local_a0 = 0x34;
+    break;
+  case 0x1f:
+    CVisual::GetRelativeLayoutSizeInternal((CVisual *)param_1);
+    fVar14 = local_100;
+LAB_2:
+    local_e8 = CONCAT44(local_fc,fVar14);
+    local_a0 = 0x23;
+    break;
+  default:
+    uVar15 = 0x1754;
+LAB_0:
+    MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,-0x7ff8ffa9,uVar15,(void *)0x0);
+    iVar8 = -0x7ff8ffa9;
+  }
+LAB_1:
+  if (iVar8 < 0) {
+    MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,iVar8,0x288,(void *)0x0);
+    lVar13 = iVar8;
+    goto LAB_3;
+  }
+  piVar4 = *(int **)(this + 200);
+  if ((piVar4 == (int *)0x0) || ((char)piVar4[1] == '\0')) {
+    pCVar11 = (CExpressionValue *)(this + 0x50);
+    bVar5 = CExpressionValue::operator==((CExpressionValue *)&local_e8,pCVar11);
+    if ((bVar5) &&
+       ((cVar6 = (**(code **)(*(longlong *)this + 0x108))(this), cVar6 == '\0' &&
+        (cVar6 = (**(code **)(*(longlong *)param_1 + 0x80))(param_1), cVar6 == '\0'))))
+    goto LAB_3;
+    pcVar3 = *(code **)(*(longlong *)param_1 + 0x60);
+    if (*(int *)(this + 0x98) == 0xb) {
+      pCVar11 = *(CExpressionValue **)(this + 0x90);
+    }
+    DVar2 = *(DCOMPOSITION_EXPRESSION_TYPE *)(this + 0xa0);
+    uVar15 = *(uint *)(this + 0xbc);
+    if (pcVar3 == CComponentTransform3D::SetProperty) {
+      local_100 = 0.0;
+      if ((uVar15 == 6) && (DVar2 == 0x12)) {
+        pAVar9 = &CComponentTransform3D::sc_RotationAngle;
+        local_100 = *(float *)pCVar11 * 0.017453292;
+        pCVar11 = (CExpressionValue *)&local_100;
+LAB_4:
+        lVar7 = CResource::SetPropertyImpl(param_1,pAVar9,pCVar11);
+        if (-1 < lVar7) goto LAB_5;
+        uVar15 = 0x50;
+      }
+      else {
+        gsl::span<AnimationHelper::AnimatedProperty_const*___ptr64_const,-1>::
+        storage_type<gsl::details::extent_type<-1>_>::
+        storage_type<gsl::details::extent_type<_1>_><gsl::details::extent_type<8>_>
+                  ((storage_type<gsl::details::extent_type<_1>_> *)&local_f8,
+                   &CComponentTransform3D::k_rgAnimDef,local_108);
+        pAVar9 = AnimationHelper::FindAnimatablePropertyInfo
+                           ((span<AnimationHelper::AnimatedProperty_const*___ptr64_const,_1> *)
+                            &local_f8,uVar15,DVar2);
+        if (pAVar9 != (AnimatedProperty *)0x0) goto LAB_4;
+        lVar7 = -0x7ff8ffa9;
+        uVar15 = 0x54;
+      }
+      MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar7,uVar15,(void *)0x0);
+    }
+    else if (pcVar3 == CPropertySet::SetProperty) {
+      lVar7 = CPropertySet::SetProperty((CPropertySet *)param_1,uVar15,DVar2,pCVar11);
+    }
+    else {
+      lVar7 = (*pcVar3)();
+    }
+LAB_5:
+    if (lVar7 < 0) {
+      MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar7,0x28f,(void *)0x0);
+      lVar13 = lVar7;
+    }
+    goto LAB_3;
+  }
+  local_58 = (CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter> *)0x0;
+  local_98 = 0;
+  uStack_90 = 0;
+  local_50 = 0;
+  local_88 = 0;
+  uStack_80 = 0;
+  local_78 = 0;
+  uStack_70 = 0;
+  local_68 = 0;
+  uStack_60 = 0;
+  if (*piVar4 == 1) {
+    if ((0x33 < local_a0 - 0x12U) ||
+       ((0x8000400020001U >> ((ulonglong)(local_a0 - 0x12U) & 0x3f) & 1) == 0)) {
+      uVar15 = 0x78d;
+      goto LAB_6;
+    }
+LAB_7:
+    CExpressionValue::CopyFrom((CExpressionValue *)&local_98,(CExpressionValue *)&local_e8);
+    uVar10 = 0;
+    while( true ) {
+      bVar1 = *(byte *)(piVar4 + 1);
+      if ((uint)bVar1 <= (uint)uVar10) break;
+      if (*piVar4 == 1) {
+        uVar15 = *(byte *)(piVar4 + 2) >> ((bVar1 - (char)uVar10) * '\x02' - 2 & 0x1f) & 3;
+      }
+      else if (*piVar4 == 2) {
+        uVar15 = (uint)(*(ulonglong *)(piVar4 + 2) >> ((bVar1 - (char)uVar10) * '\x04' - 4 & 0x3f))
+                 & 0xf;
+      }
+      else {
+        uVar15 = 0xffffffff;
+      }
+      if (local_a0 != 0x2a) {
+        switch(local_a0) {
+        case 0x11:
+        case 0x12:
+        case 0x23:
+        case 0x34:
+        case 0x45:
+        case 0x46:
+        case 0x47:
+        case 0x68:
+        case 0x109:
+          goto switchD_1802e3bac_caseD_11;
+        }
+switchD_1802e3bac_caseD_b:
+        lVar7 = -0x7fffbffb;
+        uVar15 = 0x7c7;
+        goto LAB_6;
+      }
+switchD_1802e3bac_caseD_11:
+      if (((uint)(local_a0 >> 4) <= uVar15) || (0xf < uVar15)) goto switchD_1802e3bac_caseD_b;
+      *(undefined4 *)((longlong)&local_98 + (ulonglong)uVar15 * 4) =
+           *(undefined4 *)(this + uVar10 * 4 + 0x50);
+      uVar10 = (ulonglong)((uint)uVar10 + 1);
+    }
+    bVar5 = CExpressionValue::operator==
+                      ((CExpressionValue *)&local_98,(CExpressionValue *)&local_e8);
+    if ((bVar5) && (cVar6 = (**(code **)(*(longlong *)param_1 + 0x80))(param_1), cVar6 == '\0')) {
+LAB_8:
+      pCVar12 = local_58;
+      if (local_58 != (CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter> *)0x0) {
+        local_58 = (CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter> *)0x0;
+        pcVar3 = *(code **)(*(longlong *)pCVar12 + 0x10);
+        if (pcVar3 == CMILCOMBaseT<ID2D1GeometrySink,ID2D1GeometrySink,CMilObjectDeleter>::Release)
+        {
+          CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter>::InternalRelease(pCVar12);
+        }
+        else {
+          (*pcVar3)();
+        }
+      }
+      goto LAB_3;
+    }
+    DVar2 = local_50;
+    uVar15 = *(uint *)(this + 0xbc);
+    pcVar3 = *(code **)(*(longlong *)param_1 + 0x60);
+    pCVar12 = (CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter> *)&local_98;
+    if (local_50 == 0xb) {
+      pCVar12 = local_58;
+    }
+    if (pcVar3 == CComponentTransform2D::SetProperty) {
+      local_100 = 0.0;
+      if ((uVar15 == 5) && (local_50 == 0x12)) {
+        pAVar9 = &CComponentTransform2D::sc_RotationAngle;
+        local_100 = *(float *)pCVar12 * 0.017453292;
+        pCVar12 = (CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter> *)&local_100;
+      }
+      else {
+        gsl::span<AnimationHelper::AnimatedProperty_const*___ptr64_const,-1>::
+        storage_type<gsl::details::extent_type<-1>_>::
+        storage_type<gsl::details::extent_type<_1>_><gsl::details::extent_type<6>_>
+                  ((storage_type<gsl::details::extent_type<_1>_> *)&local_f8,
+                   &CComponentTransform2D::k_rgAnimDef,local_108);
+        pAVar9 = AnimationHelper::FindAnimatablePropertyInfo
+                           ((span<AnimationHelper::AnimatedProperty_const*___ptr64_const,_1> *)
+                            &local_f8,uVar15,DVar2);
+        if (pAVar9 == (AnimatedProperty *)0x0) {
+          lVar7 = -0x7ff8ffa9;
+          MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,-0x7ff8ffa9,0x4a,(void *)0x0);
+          goto LAB_9;
+        }
+      }
+      lVar7 = CResource::SetPropertyImpl(param_1,pAVar9,pCVar12);
+      if (lVar7 < 0) {
+        MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar7,0x46,(void *)0x0);
+      }
+    }
+    else if (pcVar3 == CComponentTransform3D::SetProperty) {
+      lVar7 = CComponentTransform3D::SetProperty
+                        ((CComponentTransform3D *)param_1,uVar15,local_50,pCVar12);
+    }
+    else if (pcVar3 == CVisual::SetProperty) {
+      lVar7 = CVisual::SetProperty((CVisual *)param_1,uVar15,local_50,pCVar12);
+    }
+    else {
+      lVar7 = (*pcVar3)();
+    }
+LAB_9:
+    if (-1 < lVar7) goto LAB_8;
+    uVar15 = 0x29e;
   }
   else {
-    if (pcVar1 == CComponentTransform2D::SetRotationAngle) {
-      lVar3 = CComponentTransform2D::SetRotationAngle((CComponentTransform2D *)this,param_1,param_2)
-      ;
-      return lVar3;
-    }
-    if (pcVar1 != CBrush::SetAnimatedProperty) {
-      lVar3 = (*pcVar1)();
-      return lVar3;
-    }
-    bVar2 = ModifyProperty(this,param_1,param_2);
-    if (bVar2) {
-      InvalidateAnimationSources(this,*(uint *)param_1);
-      pcVar1 = *(code **)(*(longlong *)this + 0x50);
-      if ((pcVar1 != CGradientBrush::NotifyOnChanged) && (pcVar1 != CBrush::NotifyOnChanged)) {
-        (*pcVar1)(this,0,this);
-        return 0;
-      }
-      CBrush::NotifyOnChanged((CBrush *)this,0,(IUnknown *)this);
-      return 0;
-    }
-  }
-  return 0;
+    if (*piVar4 == 2) {
+      if ((local_a0 == 0x68) || (local_a0 == 0x109)) goto LAB_7;
+      uVar15 = 0x796;
+    }
+    else {
+      lVar7 = -0x7fffbffb;
+      uVar15 = 0x7a0;
+    }
+LAB_6:
+    MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar7,uVar15,(void *)0x0);
+    uVar15 = 0x29a;
+  }
+  MilInstrumentationCheckHR_MaybeFailFast(0x14,(long *)0x0,0,lVar7,uVar15,(void *)0x0);
+  pCVar12 = local_58;
+  lVar13 = lVar7;
+  if (local_58 != (CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter> *)0x0) {
+    local_58 = (CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter> *)0x0;
+    pcVar3 = *(code **)(*(longlong *)pCVar12 + 0x10);
+    if (pcVar3 == CMILCOMBaseT<ID2D1GeometrySink,ID2D1GeometrySink,CMilObjectDeleter>::Release) {
+      CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter>::InternalRelease(pCVar12);
+    }
+    else {
+      (*pcVar3)();
+    }
+  }
+LAB_3:
+  pCVar12 = local_a8;
+  if (local_a8 != (CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter> *)0x0) {
+    local_a8 = (CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter> *)0x0;
+    pcVar3 = *(code **)(*(longlong *)pCVar12 + 0x10);
+    if (pcVar3 == CMILCOMBaseT<ID2D1GeometrySink,ID2D1GeometrySink,CMilObjectDeleter>::Release) {
+      CMILRefCountBaseT<ID2D1GeometrySink,CMilObjectDeleter>::InternalRelease(pCVar12);
+    }
+    else {
+      (*pcVar3)();
+    }
+  }
+  return lVar13;
 }
 

```


## CCursorVisual::GetCursorShapeBounds

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,name,fullname,length,sig,address,calling,called,parent|
|ratio|0.16|
|i_ratio|0.08|
|m_ratio|0.91|
|b_ratio|0.38|
|match_types|Implied Match|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|`name`|GetCursorShapeBounds|GetCursorBounds|
|`fullname`|CCursorVisual::GetCursorShapeBounds|COverlayContext::GetCursorBounds|
|refcount|6|6|
|`length`|231|162|
|`called`|CMILMatrix::Transform2DBoundsHelper<1><br>CVisual::GetWorldTransform<br>CVisualTree::_IsInTree<br>TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::IsEmpty<br>__security_check_cookie|CCursorVisual::GetHardwareShapeBounds<br>COverlayContext::GetMonitorTransform<br>TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::IsEmpty<br>_guard_dispatch_icall$thunk$10345483385596137414|
|`calling`|COverlayContext::BeginOverlayCandidateCollection<br>COverlayContext::EndOverlayCandidateCollection<br>COverlayContext::TryEnableHardwareCursor|COverlayContext::BeginOverlayCandidateCollection<br>COverlayContext::ForceSoftwareCursor<br>COverlayContext::Present<br>COverlayContext::SetHardwareCursor<br>COverlayContext::UpdateHardwareCursor|
|paramcount|2|1|
|`address`|180231bb0|18026d5d4|
|`sig`|TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> __thiscall GetCursorShapeBounds(CCursorVisual * this, CDesktopTree * param_1)|TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> __thiscall GetCursorBounds(COverlayContext * this)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### CCursorVisual::GetCursorShapeBounds Called Diff


```diff
--- CCursorVisual::GetCursorShapeBounds called
+++ COverlayContext::GetCursorBounds called
@@ -1,3 +1,2 @@
-CMILMatrix::Transform2DBoundsHelper<1>
-CVisual::GetWorldTransform
-CVisualTree::_IsInTree
+CCursorVisual::GetHardwareShapeBounds
+COverlayContext::GetMonitorTransform
@@ -5 +4 @@
-__security_check_cookie
+_guard_dispatch_icall$thunk$10345483385596137414
```


### CCursorVisual::GetCursorShapeBounds Calling Diff


```diff
--- CCursorVisual::GetCursorShapeBounds calling
+++ COverlayContext::GetCursorBounds calling
@@ -2,2 +2,4 @@
-COverlayContext::EndOverlayCandidateCollection
-COverlayContext::TryEnableHardwareCursor
+COverlayContext::ForceSoftwareCursor
+COverlayContext::Present
+COverlayContext::SetHardwareCursor
+COverlayContext::UpdateHardwareCursor
```


### CCursorVisual::GetCursorShapeBounds Diff


```diff
--- CCursorVisual::GetCursorShapeBounds
+++ COverlayContext::GetCursorBounds
@@ -1,53 +1,40 @@
 
-/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
-/* public: class TMilRect_<float,struct D2D_RECT_F,struct D3D_RECT_F,struct
+/* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
+   guard_dispatch_icall */
+/* private: class TMilRect_<float,struct D2D_RECT_F,struct D3D_RECT_F,struct
    D2D_POINTANDSIZE_F,struct RectUniqueness::NotNeeded> __cdecl
-   CCursorVisual::GetCursorShapeBounds(class CDesktopTree const * __ptr64)const __ptr64 */
+   COverlayContext::GetCursorBounds(void)const __ptr64 */
 
-CDesktopTree * __thiscall
-CCursorVisual::GetCursorShapeBounds(CCursorVisual *this,CDesktopTree *param_1)
+void __thiscall COverlayContext::GetCursorBounds(COverlayContext *this)
 
 {
-  bool bVar1;
-  long lVar2;
-  CVisualTree *in_R8;
-  undefined8 uVar3;
-  undefined8 uVar4;
-  undefined1 auStackY_c8 [32];
-  CMILMatrix local_98 [64];
-  undefined4 local_58;
-  undefined8 local_48;
-  undefined8 uStack_40;
-  ulonglong local_38;
+  float fVar1;
+  bool bVar2;
+  CMonitorTransform *pCVar3;
+  TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded> *in_RDX;
   
-  local_38 = __security_cookie ^ (ulonglong)auStackY_c8;
-  bVar1 = CVisualTree::_IsInTree(in_R8,(CVisual *)this,0);
-  if (bVar1) {
-    uVar3 = *(undefined8 *)(*(longlong *)(this + 0x2c0) + 0x80);
-    uVar4 = *(undefined8 *)(*(longlong *)(this + 0x2c0) + 0x88);
-    local_48 = uVar3;
-    uStack_40 = uVar4;
-    bVar1 = TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::IsEmpty
-                      ((TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded> *)&local_48)
-    ;
-    if (!bVar1) {
-      local_58 = 0;
-      lVar2 = CVisual::GetWorldTransform
-                        ((CVisual *)this,in_R8,0,local_98,(bool *)0x0,(CMILMatrix *)0x0);
-      if (-1 < lVar2) {
-        CMILMatrix::Transform2DBoundsHelper<1>
-                  (local_98,(D2D_RECT_F *)&local_48,(D2D_RECT_F *)&local_48);
-        uVar3 = local_48;
-        uVar4 = uStack_40;
-      }
-    }
-    *(undefined8 *)param_1 = uVar3;
-    *(undefined8 *)(param_1 + 8) = uVar4;
+  (**(code **)(**(longlong **)this + 0x38))();
+  CCursorVisual::GetHardwareShapeBounds(*(CCursorVisual **)(this + 0x4b18),(CDesktopTree *)in_RDX);
+  pCVar3 = GetMonitorTransform(this);
+  fVar1 = *(float *)(pCVar3 + 8);
+  if (*(float *)in_RDX <= fVar1 && fVar1 != *(float *)in_RDX) {
+    *(float *)in_RDX = fVar1;
   }
-  else {
-    *(undefined8 *)param_1 = 0;
-    *(undefined8 *)(param_1 + 8) = 0;
+  fVar1 = *(float *)(pCVar3 + 0xc);
+  if (*(float *)(in_RDX + 4) <= fVar1 && fVar1 != *(float *)(in_RDX + 4)) {
+    *(float *)(in_RDX + 4) = fVar1;
   }
-  return param_1;
+  if (*(float *)(pCVar3 + 0x10) < *(float *)(in_RDX + 8)) {
+    *(float *)(in_RDX + 8) = *(float *)(pCVar3 + 0x10);
+  }
+  if (*(float *)(pCVar3 + 0x14) < *(float *)(in_RDX + 0xc)) {
+    *(float *)(in_RDX + 0xc) = *(float *)(pCVar3 + 0x14);
+  }
+  bVar2 = TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::IsEmpty(in_RDX);
+  if (bVar2) {
+    *(undefined8 *)(in_RDX + 8) = 0;
+    *(undefined8 *)in_RDX = 0;
+  }
+  return;
 }
 

```


## COverlayContext::DisableHardwareCursor

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,name,fullname,refcount,length,sig,address,calling,called|
|ratio|0.25|
|i_ratio|0.09|
|m_ratio|1.0|
|b_ratio|0.36|
|match_types|Implied Match|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|`name`|DisableHardwareCursor|ForceSoftwareCursor|
|`fullname`|COverlayContext::DisableHardwareCursor|COverlayContext::ForceSoftwareCursor|
|`refcount`|5|3|
|`length`|192|195|
|`called`|CCursorState::DisableHardwareCursor<br>CMILCOMBaseWeakRefSource<CResourceDeleter>::InternalRelease<br>_guard_dispatch_icall$thunk$10345483385596137414|API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::EnterCriticalSection<br>API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::LeaveCriticalSection<br>CCursorState::ForceSoftwareShape<br>CCursorState::GetMonitorData<br>COverlayContext::GetCursorBounds<br>__security_check_cookie<br>_guard_dispatch_icall$thunk$10345483385596137414|
|`calling`|COverlayContext::EndOverlayCandidateCollection<br>COverlayContext::Reset|COverlayContext::ApplyConfiguration<br>COverlayContext::EndOverlayCandidateCollection|
|paramcount|1|1|
|`address`|18000842c|18026b6e8|
|`sig`|void __thiscall DisableHardwareCursor(COverlayContext * this)|void __thiscall ForceSoftwareCursor(COverlayContext * this)|
|sym_type|Function|Function|
|sym_source|IMPORTED|ANALYSIS|
|external|False|False|

### COverlayContext::DisableHardwareCursor Called Diff


```diff
--- COverlayContext::DisableHardwareCursor called
+++ COverlayContext::ForceSoftwareCursor called
@@ -1,2 +1,6 @@
-CCursorState::DisableHardwareCursor
-CMILCOMBaseWeakRefSource<CResourceDeleter>::InternalRelease
+API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::EnterCriticalSection
+API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::LeaveCriticalSection
+CCursorState::ForceSoftwareShape
+CCursorState::GetMonitorData
+COverlayContext::GetCursorBounds
+__security_check_cookie
```


### COverlayContext::DisableHardwareCursor Calling Diff


```diff
--- COverlayContext::DisableHardwareCursor calling
+++ COverlayContext::ForceSoftwareCursor calling
@@ -0,0 +1 @@
+COverlayContext::ApplyConfiguration
@@ -2 +2,0 @@
-COverlayContext::Reset
```


### COverlayContext::DisableHardwareCursor Diff


```diff
--- COverlayContext::DisableHardwareCursor
+++ COverlayContext::ForceSoftwareCursor
@@ -1,34 +1,37 @@
 
 /* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
    guard_dispatch_icall */
-/* private: void __cdecl COverlayContext::DisableHardwareCursor(void) __ptr64 */
+/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
+/* private: void __cdecl COverlayContext::ForceSoftwareCursor(void) __ptr64 */
 
-void __thiscall COverlayContext::DisableHardwareCursor(COverlayContext *this)
+void __thiscall COverlayContext::ForceSoftwareCursor(COverlayContext *this)
 
 {
-  longlong lVar1;
-  CMILCOMBaseWeakRefSource<CResourceDeleter> *this_00;
-  uint uVar2;
-  longlong *plVar3;
-  _LUID *p_Var4;
-  undefined1 local_res8 [8];
+  longlong *plVar1;
+  code *pcVar2;
+  bool bVar3;
+  MonitorData *pMVar4;
+  undefined8 uVar5;
+  CCursorManager *this_00;
+  undefined1 auStack_48 [48];
+  ulonglong local_18;
   
-  if (*(longlong *)(this + 0x4b18) != 0) {
-    plVar3 = (longlong *)(**(code **)(**(longlong **)this + 0x118))();
-    if (plVar3 != (longlong *)0x0) {
-      lVar1 = *(longlong *)(this + 0x4b18);
-      uVar2 = (**(code **)(*plVar3 + 0xe0))(plVar3);
-      p_Var4 = (_LUID *)(**(code **)(*plVar3 + 0xd8))(plVar3,local_res8);
-      if (*(CCursorState **)(lVar1 + 0x2c0) != (CCursorState *)0x0) {
-        CCursorState::DisableHardwareCursor(*(CCursorState **)(lVar1 + 0x2c0),*p_Var4,uVar2);
-      }
-    }
-    this_00 = *(CMILCOMBaseWeakRefSource<CResourceDeleter> **)(this + 0x4b18);
-    *(undefined8 *)(this + 0x4b18) = 0;
-    if (this_00 != (CMILCOMBaseWeakRefSource<CResourceDeleter> *)0x0) {
-      CMILCOMBaseWeakRefSource<CResourceDeleter>::InternalRelease(this_00);
+  local_18 = __security_cookie ^ (ulonglong)auStack_48;
+  pMVar4 = CCursorState::GetMonitorData
+                     (*(CCursorState **)(*(longlong *)(this + 0x4b18) + 0x2c0),
+                      *(_LUID *)(this + 0x4b20),*(uint *)(this + 0x4b28));
+  if (pMVar4 != (MonitorData *)0x0) {
+    this_00 = &g_CursorManager;
+    EnterCriticalSection((LPCRITICAL_SECTION)&g_CursorManager);
+    bVar3 = CCursorState::ForceSoftwareShape((CCursorState *)this_00,pMVar4);
+    LeaveCriticalSection((LPCRITICAL_SECTION)&g_CursorManager);
+    if (bVar3) {
+      plVar1 = *(longlong **)this;
+      pcVar2 = *(code **)(*plVar1 + 0x128);
+      uVar5 = GetCursorBounds(this);
+      (*pcVar2)(plVar1,uVar5);
     }
   }
   return;
 }
 

```


## CCachedVisualImage::MarkAllTargetsDirty

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,name,fullname,refcount,length,sig,address,calling,called,parent|
|ratio|0.28|
|i_ratio|0.08|
|m_ratio|0.84|
|b_ratio|0.54|
|match_types|Implied Match|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|`name`|MarkAllTargetsDirty|InvalidateDrawListCaches|
|`fullname`|CCachedVisualImage::MarkAllTargetsDirty|CVisual::InvalidateDrawListCaches|
|`refcount`|8|2|
|`length`|115|145|
|`called`|CCachedVisualImage::CCachedTarget::IsValid<br>CCachedVisualImage::CCachedTarget::MarkDirty<br>std::vector<std::unique_ptr<CCachedVisualImage::CCachedTarget,std::default_delete<CCachedVisualImage::CCachedTarget>_>,std::allocator<std::unique_ptr<CCachedVisualImage::CCachedTarget,std::default_delete<CCachedVisualImage::CCachedTarget>_>_>_>::erase|CDrawListCache::Invalidate<br>CVisual::GetTreeDataListHead<br>_guard_dispatch_icall$thunk$10345483385596137414|
|`calling`|CBackdropVisualImage::ValidateRootAndSourceRectangle<br>CCachedVisualImage::OnChanged<br>CCachedVisualImage::ProcessUpdate<br>CCachedVisualImage::SetRootVisual<br>CPreComputeContext::ProcessPostSubgraphBackdropInput<br>CVisual::MarkAllBackdropVisualImagesDirty|CPreComputeContext::ProcessPostSubgraphBackdropInput|
|paramcount|1|4|
|`address`|1800ff1c0|1801e1e9c|
|`sig`|void __thiscall MarkAllTargetsDirty(CCachedVisualImage * this)|void __thiscall InvalidateDrawListCaches(CVisual * this, CVisualTree * param_1, uint param_2, uint param_3)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### CCachedVisualImage::MarkAllTargetsDirty Called Diff


```diff
--- CCachedVisualImage::MarkAllTargetsDirty called
+++ CVisual::InvalidateDrawListCaches called
@@ -1,3 +1,3 @@
-CCachedVisualImage::CCachedTarget::IsValid
-CCachedVisualImage::CCachedTarget::MarkDirty
-std::vector<std::unique_ptr<CCachedVisualImage::CCachedTarget,std::default_delete<CCachedVisualImage::CCachedTarget>_>,std::allocator<std::unique_ptr<CCachedVisualImage::CCachedTarget,std::default_delete<CCachedVisualImage::CCachedTarget>_>_>_>::erase
+CDrawListCache::Invalidate
+CVisual::GetTreeDataListHead
+_guard_dispatch_icall$thunk$10345483385596137414
```


### CCachedVisualImage::MarkAllTargetsDirty Calling Diff


```diff
--- CCachedVisualImage::MarkAllTargetsDirty calling
+++ CVisual::InvalidateDrawListCaches calling
@@ -1,4 +0,0 @@
-CBackdropVisualImage::ValidateRootAndSourceRectangle
-CCachedVisualImage::OnChanged
-CCachedVisualImage::ProcessUpdate
-CCachedVisualImage::SetRootVisual
@@ -6 +1,0 @@
-CVisual::MarkAllBackdropVisualImagesDirty
```


### CCachedVisualImage::MarkAllTargetsDirty Diff


```diff
--- CCachedVisualImage::MarkAllTargetsDirty
+++ CVisual::InvalidateDrawListCaches
@@ -1,31 +1,40 @@
 
-/* public: void __cdecl CCachedVisualImage::MarkAllTargetsDirty(void) __ptr64 */
+/* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
+   guard_dispatch_icall */
+/* public: void __cdecl CVisual::InvalidateDrawListCaches(class CVisualTree const * __ptr64,unsigned
+   int,unsigned int)const __ptr64 */
 
-void __thiscall CCachedVisualImage::MarkAllTargetsDirty(CCachedVisualImage *this)
+void __thiscall
+CVisual::InvalidateDrawListCaches(CVisual *this,CVisualTree *param_1,uint param_2,uint param_3)
 
 {
-  CCachedTarget *this_00;
-  bool bVar1;
-  undefined8 *puVar2;
-  undefined1 local_res8 [8];
+  char cVar1;
+  _LIST_ENTRY *p_Var2;
+  _LIST_ENTRY *p_Var3;
+  _LIST_ENTRY *p_Var4;
   
-  puVar2 = *(undefined8 **)(this + 0xb8);
-  while (puVar2 != *(undefined8 **)(this + 0xc0)) {
-    this_00 = (CCachedTarget *)*puVar2;
-    bVar1 = CCachedTarget::IsValid(this_00);
-    if (bVar1) {
-      CCachedTarget::MarkDirty(this_00);
-      puVar2 = puVar2 + 1;
+  cVar1 = (**(code **)(*(longlong *)param_1 + 0xb8))(param_1);
+  if (cVar1 == '\0') {
+    p_Var3 = GetTreeDataListHead(this);
+    if (p_Var3 != (_LIST_ENTRY *)0x0) {
+      for (p_Var4 = p_Var3->Flink; p_Var4 != p_Var3; p_Var4 = p_Var4->Flink) {
+        p_Var2 = p_Var4 + -0x16;
+        if (p_Var4[2].Flink == (_LIST_ENTRY *)param_1) goto LAB_0;
+      }
     }
-    else {
-      puVar2 = (undefined8 *)
-               std::
-               vector<std::unique_ptr<CCachedVisualImage::CCachedTarget,std::default_delete<CCachedVisualImage::CCachedTarget>_>,std::allocator<std::unique_ptr<CCachedVisualImage::CCachedTarget,std::default_delete<CCachedVisualImage::CCachedTarget>_>_>_>
-               ::erase((vector<std::unique_ptr<CCachedVisualImage::CCachedTarget,std::default_delete<CCachedVisualImage::CCachedTarget>_>,std::allocator<std::unique_ptr<CCachedVisualImage::CCachedTarget,std::default_delete<CCachedVisualImage::CCachedTarget>_>_>_>
-                        *)(this + 0xb8),local_res8,puVar2);
-      puVar2 = (undefined8 *)*puVar2;
+  }
+  else {
+    p_Var2 = (_LIST_ENTRY *)(this + 0x148);
+LAB_0:
+    if (p_Var2 != (_LIST_ENTRY *)0x0) {
+      p_Var4 = p_Var2[1].Blink;
+      for (p_Var3 = p_Var2[1].Flink; p_Var3 != p_Var4; p_Var3 = p_Var3 + 1) {
+        if ((*(int *)&p_Var3->Flink == 0) && (*(int *)((longlong)&p_Var3->Flink + 4) == 0)) {
+          CDrawListCache::Invalidate((CDrawListCache *)p_Var3->Blink);
+        }
+      }
     }
   }
   return;
 }
 

```


## DwmDbg::Backdrops::LogBrushEtwEvent

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,name,fullname,refcount,length,sig,address,calling,called,parent|
|ratio|0.12|
|i_ratio|0.02|
|m_ratio|0.91|
|b_ratio|0.38|
|match_types|Implied Match|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|`name`|LogBrushEtwEvent|AddWorldBoundsToDirtyRegion|
|`fullname`|DwmDbg::Backdrops::LogBrushEtwEvent|CPreComputeContext::SubTreeContext::AddWorldBoundsToDirtyRegion|
|`refcount`|14|2|
|`length`|186|169|
|`called`|DwmDbg::Backdrops::IsEtwEnabled<br>DwmDbg::DbgString::DbgString<br>GetCurrentFrameId<br>_tlgWriteTemplate<long___cdecl(_tlgProvider_t_const*___ptr64,void_const*___ptr64,_GUID_const*___ptr64,_GUID_const*___ptr64,unsigned_int,_EVENT_DATA_DESCRIPTOR*___ptr64),&long___cdecl__tlgWriteTransfer_EventWriteTransfer(struct__tlgProvider_t_const*___ptr64,void_const*___ptr64,struct__GUID_const*___ptr64,struct__GUID_const*___ptr64,unsigned_int,struct__EVENT_DATA_DESCRIPTOR*___ptr64),_GUID_const*___ptr64,_GUID_const*___ptr64>::Write<_tlgWrapSz<char>,_tlgWrapperByVal<8>,_tlgWrapSz<char>,_tlgWrapSz<char>_><br>std::unique_ptr<class_CWeakReference<CResource>*___ptr64_[0],std::default_delete<class_CWeakReference<CResource>*___ptr64_[0]>_>::~unique_ptr<class_CWeakReference<CResource>*___ptr64_[0],std::default_delete<class_CWeakReference<CResource>*___ptr64_[0]>_>|CTreeDirty::SetFullDirty<br>CTreeDirty::_Add<br>TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::IsEmpty<br>TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::IsInfinite<br>TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::IsWellOrdered<br>wil::details::in1diag3::Return_Hr|
|`calling`|CBrushRenderingGraph::GatherEffectInputs<br>CDrawingContext::ValidateBVIEffectInputForRender<br>CPreComputeContext::ProcessPostSubgraphBackdropInput<br>CPreComputeContext::UpdateBVIForVisual<br>CVisual::RenderContent<br>CVisual::UpdateBackdropBlurFlag<br>CVisual::UpdateHasBackdropInputFlag<br>CVisual::UpdateHasWindowBackdropInputFlag<br>CWindowBackgroundBitmapProducer::ProduceRealization<br>FUN_1802f2102|CPreComputeContext::ProcessPostSubgraphBackdropInput|
|paramcount|3|3|
|`address`|180251efc|180022a18|
|`sig`|void __cdecl LogBrushEtwEvent(DbgString param_1, CVisual * param_2, DbgString param_3)|long __thiscall AddWorldBoundsToDirtyRegion(SubTreeContext * this, CVisual * param_1, TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> * param_2)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### DwmDbg::Backdrops::LogBrushEtwEvent Called Diff


```diff
--- DwmDbg::Backdrops::LogBrushEtwEvent called
+++ CPreComputeContext::SubTreeContext::AddWorldBoundsToDirtyRegion called
@@ -1,5 +1,6 @@
-DwmDbg::Backdrops::IsEtwEnabled
-DwmDbg::DbgString::DbgString
-GetCurrentFrameId
-_tlgWriteTemplate<long___cdecl(_tlgProvider_t_const*___ptr64,void_const*___ptr64,_GUID_const*___ptr64,_GUID_const*___ptr64,unsigned_int,_EVENT_DATA_DESCRIPTOR*___ptr64),&long___cdecl__tlgWriteTransfer_EventWriteTransfer(struct__tlgProvider_t_const*___ptr64,void_const*___ptr64,struct__GUID_const*___ptr64,struct__GUID_const*___ptr64,unsigned_int,struct__EVENT_DATA_DESCRIPTOR*___ptr64),_GUID_const*___ptr64,_GUID_const*___ptr64>::Write<_tlgWrapSz<char>,_tlgWrapperByVal<8>,_tlgWrapSz<char>,_tlgWrapSz<char>_>
-std::unique_ptr<class_CWeakReference<CResource>*___ptr64_[0],std::default_delete<class_CWeakReference<CResource>*___ptr64_[0]>_>::~unique_ptr<class_CWeakReference<CResource>*___ptr64_[0],std::default_delete<class_CWeakReference<CResource>*___ptr64_[0]>_>
+CTreeDirty::SetFullDirty
+CTreeDirty::_Add
+TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::IsEmpty
+TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::IsInfinite
+TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::IsWellOrdered
+wil::details::in1diag3::Return_Hr
```


### DwmDbg::Backdrops::LogBrushEtwEvent Calling Diff


```diff
--- DwmDbg::Backdrops::LogBrushEtwEvent calling
+++ CPreComputeContext::SubTreeContext::AddWorldBoundsToDirtyRegion calling
@@ -1,2 +0,0 @@
-CBrushRenderingGraph::GatherEffectInputs
-CDrawingContext::ValidateBVIEffectInputForRender
@@ -4,7 +1,0 @@
-CPreComputeContext::UpdateBVIForVisual
-CVisual::RenderContent
-CVisual::UpdateBackdropBlurFlag
-CVisual::UpdateHasBackdropInputFlag
-CVisual::UpdateHasWindowBackdropInputFlag
-CWindowBackgroundBitmapProducer::ProduceRealization
-FUN_1802f2102
```


### DwmDbg::Backdrops::LogBrushEtwEvent Diff


```diff
--- DwmDbg::Backdrops::LogBrushEtwEvent
+++ CPreComputeContext::SubTreeContext::AddWorldBoundsToDirtyRegion
@@ -1,57 +1,63 @@
 
-/* void __cdecl DwmDbg::Backdrops::LogBrushEtwEvent(class DwmDbg::DbgString,class CVisual const *
-   __ptr64,class DwmDbg::DbgString) */
+/* private: long __cdecl CPreComputeContext::SubTreeContext::AddWorldBoundsToDirtyRegion(class
+   CVisual * __ptr64,class TMilRect_<float,struct D2D_RECT_F,struct D3D_RECT_F,struct
+   D2D_POINTANDSIZE_F,struct RectUniqueness::NotNeeded> const & __ptr64) __ptr64 */
 
-void __cdecl
-DwmDbg::Backdrops::LogBrushEtwEvent
-          (unique_ptr<class_CWeakReference<CResource>*___ptr64_[0],std::default_delete<class_CWeakReference<CResource>*___ptr64_[0]>_>
-           *param_1,_GUID *param_2,
-          unique_ptr<class_CWeakReference<CResource>*___ptr64_[0],std::default_delete<class_CWeakReference<CResource>*___ptr64_[0]>_>
-          *param_3,_GUID *param_4)
+long __thiscall
+CPreComputeContext::SubTreeContext::AddWorldBoundsToDirtyRegion
+          (SubTreeContext *this,CVisual *param_1,
+          TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded>
+          *param_2)
 
 {
   bool bVar1;
-  undefined8 *puVar2;
-  _tlgProvider_t *p_Var3;
-  unique_ptr<class_CWeakReference<CResource>*___ptr64_[0],std::default_delete<class_CWeakReference<CResource>*___ptr64_[0]>_>
-  *puVar4;
-  undefined8 local_res20;
-  _tlgProvider_t *local_28;
-  __uint64 local_20;
-  undefined8 local_18;
-  DbgString local_10 [8];
+  long lVar2;
+  uint uVar3;
+  TMilRect_<float,D2D_RECT_F,D3D_RECT_F,D2D_POINTANDSIZE_F,RectUniqueness::NotNeeded> *pTVar4;
+  CTreeDirty *this_00;
+  void *unaff_retaddr;
   
-  puVar4 = param_3;
-  bVar1 = IsEtwEnabled();
-  if ((bVar1) && (5 < DAT_0)) {
-    local_res20 = *(undefined8 *)puVar4;
-    puVar2 = (undefined8 *)DbgString::DbgString(local_10,"0x%p");
-    p_Var3 = (_tlgProvider_t *)*puVar2;
-    local_28 = p_Var3;
-    local_20 = GetCurrentFrameId();
-    local_18 = *(undefined8 *)param_1;
-    _tlgWriteTemplate<long___cdecl(_tlgProvider_t_const*___ptr64,void_const*___ptr64,_GUID_const*___ptr64,_GUID_const*___ptr64,unsigned_int,_EVENT_DATA_DESCRIPTOR*___ptr64),&long___cdecl__tlgWriteTransfer_EventWriteTransfer(struct__tlgProvider_t_const*___ptr64,void_const*___ptr64,struct__GUID_const*___ptr64,struct__GUID_const*___ptr64,unsigned_int,struct__EVENT_DATA_DESCRIPTOR*___ptr64),_GUID_const*___ptr64,_GUID_const*___ptr64>
-    ::Write<_tlgWrapSz<char>,_tlgWrapperByVal<8>,_tlgWrapSz<char>,_tlgWrapSz<char>_>
-              (p_Var3,&DAT_1,param_2,param_4,(_tlgWrapSz<char> *)&local_18,
-               (_tlgWrapperByVal<8> *)&local_20,(_tlgWrapSz<char> *)&local_28,
-               (_tlgWrapSz<char> *)&local_res20);
-    std::
-    unique_ptr<class_CWeakReference<CResource>*___ptr64_[0],std::default_delete<class_CWeakReference<CResource>*___ptr64_[0]>_>
-    ::
-    ~unique_ptr<class_CWeakReference<CResource>*___ptr64_[0],std::default_delete<class_CWeakReference<CResource>*___ptr64_[0]>_>
-              ((unique_ptr<class_CWeakReference<CResource>*___ptr64_[0],std::default_delete<class_CWeakReference<CResource>*___ptr64_[0]>_>
-                *)local_10);
+  if ((*(float *)(param_2 + 8) < *(float *)param_2 || *(float *)(param_2 + 8) == *(float *)param_2)
+     || (*(float *)(param_2 + 0xc) < *(float *)(param_2 + 4) ||
+         *(float *)(param_2 + 0xc) == *(float *)(param_2 + 4))) {
+    return 0;
   }
-  std::
-  unique_ptr<class_CWeakReference<CResource>*___ptr64_[0],std::default_delete<class_CWeakReference<CResource>*___ptr64_[0]>_>
-  ::
-  ~unique_ptr<class_CWeakReference<CResource>*___ptr64_[0],std::default_delete<class_CWeakReference<CResource>*___ptr64_[0]>_>
-            (param_1);
-  std::
-  unique_ptr<class_CWeakReference<CResource>*___ptr64_[0],std::default_delete<class_CWeakReference<CResource>*___ptr64_[0]>_>
-  ::
-  ~unique_ptr<class_CWeakReference<CResource>*___ptr64_[0],std::default_delete<class_CWeakReference<CResource>*___ptr64_[0]>_>
-            (param_3);
-  return;
+  this_00 = *(CTreeDirty **)(this + 0x140);
+  if (this_00[0x914] == (CTreeDirty)0x0) {
+    pTVar4 = param_2;
+    bVar1 = TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::IsEmpty
+                      ((TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded> *)param_2);
+    if (bVar1) {
+      bVar1 = TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::IsWellOrdered
+                        ((TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded> *)param_2)
+      ;
+      if (!bVar1) {
+        CTreeDirty::SetFullDirty(this_00);
+        uVar3 = 0xf1;
+        lVar2 = -0x7767fff6;
+LAB_0:
+        wil::details::in1diag3::Return_Hr
+                  (unaff_retaddr,uVar3,"onecoreuap\\windows\\dwm\\dwmcore\\engine\\treedirty.cpp",
+                   lVar2);
+        return lVar2;
+      }
+    }
+    else {
+      bVar1 = TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded>::IsInfinite
+                        ((TMilRect<float,D2D_RECT_F,D3D_RECT_F,RectUniqueness::NotNeeded> *)param_2)
+      ;
+      if (bVar1) {
+        CTreeDirty::SetFullDirty(this_00);
+      }
+      else {
+        lVar2 = CTreeDirty::_Add(this_00,param_1,true,pTVar4);
+        if (lVar2 < 0) {
+          uVar3 = 0xf6;
+          goto LAB_0;
+        }
+      }
+    }
+  }
+  return 0;
 }
 

```


## CWindowNode::GetWindowOcclusionInfo

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,name,fullname,refcount,length,sig,address,called|
|ratio|0.11|
|i_ratio|0.03|
|m_ratio|0.76|
|b_ratio|0.39|
|match_types|Implied Match|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|`name`|GetWindowOcclusionInfo|RenderSpriteBitmap|
|`fullname`|CWindowNode::GetWindowOcclusionInfo|CWindowNode::RenderSpriteBitmap|
|`refcount`|3|2|
|`length`|276|435|
|`called`|CVisual::AllocateOcclusionInfo<br>CVisual::GetTreeDataListHead<br>CWindowNode::AllocateOcclusionInfo<br>_guard_dispatch_icall$thunk$10345483385596137414<br>detail::vector_facade<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,detail::buffer_impl<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,1,1,detail::liberal_expansion_policy>_>::push_back<br>std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>::~unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>|CDrawingContext::GetMaxTextureSize<br>CGdiSpriteBitmap::NeedsTiling<br>CPtrArrayBase::operator[]<br>CWindowNode::DxBltConsumedTelemetry<br>CWindowNode::EnsureEffectiveSpriteClip<br>CWindowNode::RenderImage<br>CWindowOcclusionInfo::GetSpriteBitmapZ<br>wil::details::in1diag3::Return_Hr|
|calling|CWindowNode::RenderContent|CWindowNode::RenderContent|
|paramcount|3|4|
|`address`|180148518|18029557c|
|`sig`|CWindowOcclusionInfo * __thiscall GetWindowOcclusionInfo(CWindowNode * this, CVisualTree * param_1, uint param_2)|long __thiscall RenderSpriteBitmap(CWindowNode * this, CDrawingContext * param_1, CVisualTree * param_2, CWindowOcclusionInfo * param_3)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### CWindowNode::GetWindowOcclusionInfo Called Diff


```diff
--- CWindowNode::GetWindowOcclusionInfo called
+++ CWindowNode::RenderSpriteBitmap called
@@ -1,6 +1,8 @@
-CVisual::AllocateOcclusionInfo
-CVisual::GetTreeDataListHead
-CWindowNode::AllocateOcclusionInfo
-_guard_dispatch_icall$thunk$10345483385596137414
-detail::vector_facade<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,detail::buffer_impl<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,1,1,detail::liberal_expansion_policy>_>::push_back
-std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>::~unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>
+CDrawingContext::GetMaxTextureSize
+CGdiSpriteBitmap::NeedsTiling
+CPtrArrayBase::operator[]
+CWindowNode::DxBltConsumedTelemetry
+CWindowNode::EnsureEffectiveSpriteClip
+CWindowNode::RenderImage
+CWindowOcclusionInfo::GetSpriteBitmapZ
+wil::details::in1diag3::Return_Hr
```


### CWindowNode::GetWindowOcclusionInfo Diff


```diff
--- CWindowNode::GetWindowOcclusionInfo
+++ CWindowNode::RenderSpriteBitmap
@@ -1,71 +1,73 @@
 
-/* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
-   guard_dispatch_icall */
-/* protected: class CWindowOcclusionInfo * __ptr64 __cdecl CWindowNode::GetWindowOcclusionInfo(class
-   CVisualTree const * __ptr64,unsigned int)const __ptr64 */
+/* private: long __cdecl CWindowNode::RenderSpriteBitmap(class CDrawingContext * __ptr64,class
+   CVisualTree const * __ptr64,class CWindowOcclusionInfo * __ptr64) __ptr64 */
 
-CWindowOcclusionInfo * __thiscall
-CWindowNode::GetWindowOcclusionInfo(CWindowNode *this,CVisualTree *param_1,uint param_2)
+long __thiscall
+CWindowNode::RenderSpriteBitmap
+          (CWindowNode *this,CDrawingContext *param_1,CVisualTree *param_2,
+          CWindowOcclusionInfo *param_3)
 
 {
-  char cVar1;
-  _LIST_ENTRY *p_Var2;
-  _LIST_ENTRY *p_Var3;
-  _LIST_ENTRY *p_Var4;
-  _LIST_ENTRY *local_res10;
+  bool bVar1;
+  int iVar2;
+  long lVar3;
+  uint uVar4;
+  CGdiSpriteBitmap *this_00;
+  longlong lVar5;
+  CWindowOcclusionInfo *this_01;
+  ulonglong uVar6;
+  void *unaff_retaddr;
   
-  cVar1 = (**(code **)(*(longlong *)param_1 + 0xb8))(param_1);
-  if (cVar1 == '\0') {
-    p_Var2 = CVisual::GetTreeDataListHead((CVisual *)this);
-    if (p_Var2 != (_LIST_ENTRY *)0x0) {
-      for (p_Var4 = p_Var2->Flink; p_Var4 != p_Var2; p_Var4 = p_Var4->Flink) {
-        p_Var3 = p_Var4 + -0x16;
-        if (p_Var4[2].Flink == (_LIST_ENTRY *)param_1) goto LAB_0;
+  if ((((byte)this[0x380] & 8) != 0) && (this[0x2f1] == (CWindowNode)0x0)) {
+    this_01 = param_3;
+    this_00 = (CGdiSpriteBitmap *)CPtrArrayBase::operator[]((CPtrArrayBase *)(this + 0x340),0);
+    iVar2 = 0;
+    if (this_01 != (CWindowOcclusionInfo *)0x0) {
+      iVar2 = CWindowOcclusionInfo::GetSpriteBitmapZ(this_01,param_2);
+    }
+    lVar3 = EnsureEffectiveSpriteClip(this);
+    if (lVar3 < 0) {
+      uVar4 = 0x335;
+LAB_0:
+      wil::details::in1diag3::Return_Hr
+                (unaff_retaddr,uVar4,"onecoreuap\\windows\\dwm\\dwmcore\\resources\\windownode.cpp",
+                 lVar3);
+      return lVar3;
+    }
+    DxBltConsumedTelemetry(this,param_1,this_00);
+    uVar4 = CDrawingContext::GetMaxTextureSize(param_1,true);
+    bVar1 = CGdiSpriteBitmap::NeedsTiling(this_00,uVar4);
+    if (bVar1) {
+      lVar5 = *(longlong *)(this_00 + 0x1c8);
+      uVar6 = 0;
+      if (*(longlong *)(this_00 + 0x1d0) - lVar5 >> 3 != 0) {
+        do {
+          lVar5 = *(longlong *)(lVar5 + uVar6 * 8);
+          lVar3 = RenderImage(this,param_1,param_3,
+                              (IBitmapResource *)(-(ulonglong)(lVar5 != 0) & lVar5 + 0x48U),
+                              *(CShape **)(this + 0x378),true,iVar2);
+          if (lVar3 < 0) {
+            uVar4 = 0x34e;
+            goto LAB_0;
+          }
+          lVar5 = *(longlong *)(this_00 + 0x1c8);
+          uVar6 = uVar6 + 1;
+        } while (uVar6 < (ulonglong)(*(longlong *)(this_00 + 0x1d0) - lVar5 >> 3));
+      }
+    }
+    else {
+      lVar3 = RenderImage(this,param_1,param_3,
+                          (IBitmapResource *)
+                          (-(ulonglong)(this_00 != (CGdiSpriteBitmap *)0x0) &
+                          (ulonglong)(this_00 + 0x68)),*(CShape **)(this + 0x378),true,iVar2);
+      if (lVar3 < 0) {
+        wil::details::in1diag3::Return_Hr
+                  (unaff_retaddr,0x342,
+                   "onecoreuap\\windows\\dwm\\dwmcore\\resources\\windownode.cpp",lVar3);
+        return lVar3;
       }
     }
   }
-  else {
-    p_Var3 = (_LIST_ENTRY *)(this + 0x148);
-LAB_0:
-    if (p_Var3 != (_LIST_ENTRY *)0x0) {
-      p_Var2 = p_Var3[0xb].Flink;
-      do {
-        if (p_Var2 == p_Var3[0xb].Blink) {
-LAB_1:
-          p_Var2 = p_Var3[0xf].Blink;
-          p_Var4 = p_Var2->Flink[0x16].Blink;
-          if (p_Var4 == (_LIST_ENTRY *)CVisual::AllocateOcclusionInfo) {
-            CVisual::AllocateOcclusionInfo((CVisual *)p_Var2,(uint)&local_res10);
-          }
-          else if (p_Var4 == (_LIST_ENTRY *)AllocateOcclusionInfo) {
-            AllocateOcclusionInfo((CWindowNode *)p_Var2,(uint)&local_res10);
-          }
-          else {
-            (*(code *)p_Var4)(p_Var2,&local_res10,param_2);
-          }
-          detail::
-          vector_facade<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,detail::buffer_impl<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,1,1,detail::liberal_expansion_policy>_>
-          ::push_back((vector_facade<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,detail::buffer_impl<std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>,1,1,detail::liberal_expansion_policy>_>
-                       *)(p_Var3 + 0xb),
-                      (unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_> *)
-                      &local_res10);
-          std::unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>::
-          ~unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_>
-                    ((unique_ptr<COcclusionInfo,std::default_delete<COcclusionInfo>_> *)&local_res10
-                    );
-          return (CWindowOcclusionInfo *)local_res10;
-        }
-        p_Var4 = p_Var2->Flink;
-        if (*(uint *)&p_Var4[2].Flink == param_2) {
-          if (p_Var4 != (_LIST_ENTRY *)0x0) {
-            return (CWindowOcclusionInfo *)p_Var4;
-          }
-          goto LAB_1;
-        }
-        p_Var2 = (_LIST_ENTRY *)&p_Var2->Blink;
-      } while( true );
-    }
-  }
-  return (CWindowOcclusionInfo *)0x0;
+  return 0;
 }
 

```


## CGeometry::CGeometry

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,name,fullname,refcount,length,sig,address,parent|
|ratio|0.71|
|i_ratio|0.61|
|m_ratio|0.91|
|b_ratio|0.91|
|match_types|Implied Match|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|`name`|CGeometry|CTransform|
|`fullname`|CGeometry::CGeometry|CTransform::CTransform|
|`refcount`|2|5|
|`length`|69|60|
|called|||
|calling|CResourceFactory::Create|CResourceFactory::Create|
|paramcount|2|2|
|`address`|18014ef08|180209888|
|`sig`|undefined __thiscall CGeometry(CGeometry * this, CComposition * param_1)|undefined __thiscall CTransform(CTransform * this, CComposition * param_1)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### CGeometry::CGeometry Diff


```diff
--- CGeometry::CGeometry
+++ CTransform::CTransform
@@ -1,22 +1,19 @@
 
-/* protected: __cdecl CGeometry::CGeometry(class CComposition * __ptr64) __ptr64 */
+/* protected: __cdecl CTransform::CTransform(class CComposition * __ptr64) __ptr64 */
 
-CGeometry * __thiscall CGeometry::CGeometry(CGeometry *this,CComposition *param_1)
+CTransform * __thiscall CTransform::CTransform(CTransform *this,CComposition *param_1)
 
 {
-  *(undefined ***)this = &IUnknownWeakRefSource::_vftable_;
   *(undefined4 *)(this + 8) = 0;
   *(undefined8 *)(this + 0x10) = 0;
   *(CComposition **)(this + 0x18) = param_1;
   *(undefined8 *)(this + 0x20) = 0;
   *(undefined8 *)(this + 0x30) = 0;
   *(undefined4 *)(this + 0x28) = 0;
-  *(undefined8 *)(this + 0x58) = 0;
-  this[0x60] = (CGeometry)0x0;
-  *(undefined8 *)(this + 0x68) = 0;
-  this[0x70] = (CGeometry)0x0;
+  *(undefined4 *)(this + 0x90) = 0;
   *(uint *)(this + 0x28) = *(uint *)(this + 0x28) | 1;
-  *(undefined4 *)(this + 0x7c) = 0x3f800000;
+  *(undefined ***)this = &_vftable_;
+  this[0x9c] = (CTransform)0x0;
   return this;
 }
 

```


## CBitmapResource::CBitmapResource

### Match Info



|Key|dwmcore-10.0.26100.7623.dll - dwmcore-10.0.26100.7840.dll|
| :---: | :---: |
|diff_type|code,name,fullname,refcount,length,sig,address,calling,called,parent|
|ratio|0.6|
|i_ratio|0.22|
|m_ratio|0.96|
|b_ratio|0.43|
|match_types|Implied Match|

### Function Meta Diff



|Key|dwmcore-10.0.26100.7623.dll|dwmcore-10.0.26100.7840.dll|
| :---: | :---: | :---: |
|`name`|CBitmapResource|CRegionGeometry|
|`fullname`|CBitmapResource::CBitmapResource|CRegionGeometry::CRegionGeometry|
|`refcount`|3|1|
|`length`|94|97|
|`called`|wil::com_ptr_t<IDXGIResource,wil::err_returncode_policy>::com_ptr_t<IDXGIResource,wil::err_returncode_policy>||
|`calling`|CBitmapResource::Create<br>CResourceFactory::Create|CResourceFactory::Create|
|paramcount|3|2|
|`address`|1801bdf90|1801fa898|
|`sig`|undefined __thiscall CBitmapResource(CBitmapResource * this, CComposition * param_1, IBitmapRealization * param_2)|undefined __thiscall CRegionGeometry(CRegionGeometry * this, CComposition * param_1)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### CBitmapResource::CBitmapResource Called Diff


```diff
--- CBitmapResource::CBitmapResource called
+++ CRegionGeometry::CRegionGeometry called
@@ -1 +0,0 @@
-wil::com_ptr_t<IDXGIResource,wil::err_returncode_policy>::com_ptr_t<IDXGIResource,wil::err_returncode_policy>
```


### CBitmapResource::CBitmapResource Calling Diff


```diff
--- CBitmapResource::CBitmapResource calling
+++ CRegionGeometry::CRegionGeometry calling
@@ -1 +0,0 @@
-CBitmapResource::Create
```


### CBitmapResource::CBitmapResource Diff


```diff
--- CBitmapResource::CBitmapResource
+++ CRegionGeometry::CRegionGeometry
@@ -1,27 +1,27 @@
 
-/* protected: __cdecl CBitmapResource::CBitmapResource(class CComposition * __ptr64,class
-   IBitmapRealization * __ptr64) __ptr64 */
+/* protected: __cdecl CRegionGeometry::CRegionGeometry(class CComposition * __ptr64) __ptr64 */
 
-CBitmapResource * __thiscall
-CBitmapResource::CBitmapResource
-          (CBitmapResource *this,CComposition *param_1,IBitmapRealization *param_2)
+CRegionGeometry * __thiscall
+CRegionGeometry::CRegionGeometry(CRegionGeometry *this,CComposition *param_1)
 
 {
   *(undefined4 *)(this + 8) = 0;
   *(undefined8 *)(this + 0x10) = 0;
   *(CComposition **)(this + 0x18) = param_1;
   *(undefined8 *)(this + 0x20) = 0;
   *(undefined8 *)(this + 0x30) = 0;
   *(undefined4 *)(this + 0x28) = 0;
-  *(undefined ***)this = &_vftable__for__CResource__;
-  *(undefined ***)(this + 0x48) = &_vftable__for__IBitmapResource__;
-  wil::com_ptr_t<IDXGIResource,wil::err_returncode_policy>::
-  com_ptr_t<IDXGIResource,wil::err_returncode_policy>
-            ((com_ptr_t<IDXGIResource,wil::err_returncode_policy> *)(this + 0x50),
-             (IDXGIResource *)param_2);
   *(undefined8 *)(this + 0x58) = 0;
-  *(undefined8 *)(this + 0x60) = 0;
+  this[0x60] = (CRegionGeometry)0x0;
   *(undefined8 *)(this + 0x68) = 0;
+  this[0x70] = (CRegionGeometry)0x0;
+  *(uint *)(this + 0x28) = *(uint *)(this + 0x28) | 1;
+  *(undefined4 *)(this + 0x7c) = 0x3f800000;
+  *(undefined8 *)(this + 0x88) = 0;
+  *(undefined8 *)(this + 0x90) = 0;
+  *(undefined8 *)(this + 0x98) = 0;
+  *(undefined ***)this = &_vftable_;
+  this[0xa0] = (CRegionGeometry)0x1;
   return this;
 }
 

```


# Modified (No Code Changes)


*Slightly modified functions have no code changes, rather differnces in:*
- refcount
- length
- called
- calling
- name
- fullname

## Section Skipped


**This section was skipped because markdown was too big. Adjust max_section_funcs: 200 to a higher number.**


<sub>Generated with `ghidriff` version: 1.0.0 on 2026-07-24T22:57:48</sub>