From 623dcb878b8baea95728e3e096c2bc3b7494888b Mon Sep 17 00:00:00 2001 From: dayu <506228475@qq.com> Date: Thu, 22 Oct 2026 19:53:46 +0800 Subject: [PATCH] analysis: diagnose tracking flicker and identify the 2.4.0 pin-style path --- .../tracking-flicker-20261022/manifest.json | 31 + .../rea-evidence.json | 5569 +++++++++++++++++ .../synthetic-results.json | 81 + docs/analysis/跟踪闪烁对齐分析.md | 60 + docs/项目交接.md | 4 + docs/验证记录.md | 7 + scripts/diagnose-tracking.m | 100 + scripts/diagnose-tracking.sh | 14 + 8 files changed, 5866 insertions(+) create mode 100644 docs/analysis/tracking-flicker-20261022/manifest.json create mode 100644 docs/analysis/tracking-flicker-20261022/rea-evidence.json create mode 100644 docs/analysis/tracking-flicker-20261022/synthetic-results.json create mode 100644 docs/analysis/跟踪闪烁对齐分析.md create mode 100644 scripts/diagnose-tracking.m create mode 100644 scripts/diagnose-tracking.sh diff --git a/docs/analysis/tracking-flicker-20261022/manifest.json b/docs/analysis/tracking-flicker-20261022/manifest.json new file mode 100644 index 0000000..34b7c9d --- /dev/null +++ b/docs/analysis/tracking-flicker-20261022/manifest.json @@ -0,0 +1,31 @@ +{ + "scope": "Source and isolated authored synthetic diagnostics plus static REA of the requested 2.4.0 binary; no native host comparison", + "sourceBaseline": "b58fec1a86db7a2e474e1cc65a5911447b5906b9", + "installedVersion": "1.3.2 (17)", + "productSourceUnchanged": true, + "selectedTarget": { + "path": "/Users/dayu/Downloads/MSE18V2.app", + "version": "2.4.0", + "build": "20260724150000", + "universalPluginSha256": "577303e0de72e07feb576c882e82382b3f056b023a7e987d990ffb37f6b16109", + "arm64Sha256": "afc71d0d21fd3c1ca95ca745ddafcd729e36ad95f17d8638009f2e45d9b7e8df" + }, + "comparisonCaution": "Existing auto-follow-report.json describes the older /Applications target; its temporal weights/history must not be asserted as 2.4.0 default behavior", + "evidenceRecordsRetained": 17, + "checks": { + "FCP-BeautyGirl/FCP-BeautyGirl/Plugin/PGFaceProcessor.m": "cca826d5602b45b2c79ea3c3c78be7c78ad1defe7b062ed8ec54c311d53ac395", + "FCP-BeautyGirl/FCP-BeautyGirl/Plugin/FCPBeautyGirlPlugIn.m": "9d3d30d1f7f6467c634e8d6e832d2330618b9ff240de37f57de9bc48e2792de8", + "scripts/diagnose-tracking.m": "bc758bf5ec4825006930be8997889404f63c28da1fe06ad8872b0901b2795d2c", + "docs/analysis/tracking-flicker-20261022/synthetic-results.json": "5fdbad4887dd78658c06f5c6d8e70c9e53fd7b54e11a9cc31ee1958631cbc1a8", + "docs/analysis/tracking-flicker-20261022/rea-evidence.json": "4b367759388c8e061e138623184ae8a6875dbab22659eefd4e474b141b8868fa", + "scripts/diagnose-tracking.sh": "c1993ca91cee596a21db1e4f86ba224be85c37495c783f9c3b21872aff210765" + }, + "limits": [ + "No user frames or complete user landmark arrays used or uploaded", + "No target process executed or host UI controlled", + "Static reachable/default-configuration branches do not prove runtime branch execution", + "Same-frame raw cache, hold and out-of-order behavior were isolated using our actual current implementation", + "No APP rebuild, install, package or article publication for this analysis", + "User clarified current FCP timeline: sun-hat subject, 1080p25, fast multi off, faceThin1, bigEye about0.90; exact source/frame analysis in progress" + ] +} diff --git a/docs/analysis/tracking-flicker-20261022/rea-evidence.json b/docs/analysis/tracking-flicker-20261022/rea-evidence.json new file mode 100644 index 0000000..f3c81c5 --- /dev/null +++ b/docs/analysis/tracking-flicker-20261022/rea-evidence.json @@ -0,0 +1,5569 @@ +{ + "artifacts": [ + { + "architecture": "arm64", + "digest": { + "sha256": "afc71d0d21fd3c1ca95ca745ddafcd729e36ad95f17d8638009f2e45d9b7e8df" + }, + "format": "mach-o" + } + ], + "captures": [], + "environments": [], + "providers": [ + { + "id": "ghidra", + "name": "Ghidra", + "version": "12.1.4" + } + ], + "scenarios": [], + "unknowns": [], + "records": [ + { + "analysis_profile": { + "digest": "20565088524a2d0359b9b96f46ac48e679d774c7b0092c56abc06de8fdbec11c", + "parameters": { + "analyzer_preset": "ghidra-default", + "annotation_policy": "atomic-function-entry-metadata-v1", + "architecture": "arm64", + "available_architectures": [ + "arm64" + ], + "compiler_spec_id": "auto-default", + "decompiler_jump_loads": true, + "function_body_evidence": "complete-inclusive-ranges-v1", + "function_boundary_observations": "ghidra-terminal-call-limitations-v1", + "function_references": "complete-body-and-entry-reference-manager-v2", + "import_mode": "ephemeral-source-immutable", + "instruction_flow_evidence": "decoded-return-pcode-v1", + "jump_table_evidence": "typed-case-default-blocks-v1", + "language_id": "auto-from-header", + "load_image_observations": "source-mappings-entry-context-v2", + "loader": "auto-from-header", + "location_resolution": "explicit-address-exact-entry-symbol-first-v3", + "no_return_repair": "returning-imports-decoded-return-v2", + "process_launch": "inspected-jvm-launch-support-v1", + "string_inventory_evidence": "defined-data-coverage-v1", + "target_format": "mach-o", + "target_kind": "executable" + }, + "provider": { + "id": "ghidra", + "name": "Ghidra", + "version": "12.1.4" + } + }, + "authority": "shipped-artifact", + "confidence": "observed", + "environment": null, + "evidence_id": "ev_021df742af4a60d5c922407bb13ddcc2405279e08d39931420589fcead8c44ef", + "evidence_links": [], + "limitations": [ + "The session serves operations only after Ghidra reports default auto-analysis complete; incomplete analysis does not expose partial results.", + "The imported Program and temporary project are ephemeral and deleted on close. Annotation operations edit session database metadata; original executable bytes are never written.", + "Cancelling an active Ghidra request terminates its ephemeral database and discards session annotations. The selected target remains open; the next provider query imports the original artifact again.", + "Default-space addresses use lowercase 0x-prefixed hexadecimal; other address spaces use :0x.", + "Regex mode uses Java Pattern semantics. Matcher or compiler stack exhaustion returns a resource constraint without closing the session; literal mode avoids regex recursion and returns complete matching values.", + "macOS sessions require a matching executable Ghidra native decompiler; REA checks for it but does not build native components or change Gatekeeper quarantine state." + ], + "locations": [], + "normalized_result": [ + { + "address": "EXTERNAL:0x23", + "value": "/usr/lib/swift/libswiftFoundation.dylib::Foundation::Data::LargeSlice::ensureUniqueReference" + }, + { + "address": "EXTERNAL:0x26", + "value": "/usr/lib/swift/libswiftFoundation.dylib::Foundation::Data::RangeReference::typeMetadataAccessor" + }, + { + "address": "EXTERNAL:0x19b", + "value": "/usr/lib/swift/libswiftCore.dylib::_swift_isUniquelyReferenced_nonNull_native" + }, + { + "address": "0x1000196f8", + "value": "MSSuperSkinSmoothingPlugIn::load" + }, + { + "address": "0x100019974", + "value": "MSSuperSkinSmoothingPlugIn::initWithAPIManager:" + }, + { + "address": "0x100019f88", + "value": "MSSuperSkinSmoothingPlugIn::dealloc" + }, + { + "address": "0x10001a198", + "value": "MSSuperSkinSmoothingPlugIn::mss_faceThinRememberedPointsForBox:renderTime:source:" + }, + { + "address": "0x10001b6b8", + "value": "MSSuperSkinSmoothingPlugIn::mss_faceThinRenderTimeCanUpdateMemory:" + }, + { + "address": "0x10001b7a0", + "value": "MSSuperSkinSmoothingPlugIn::mss_rememberFaceThinPoints:forBox:renderTime:source:" + }, + { + "address": "0x10001be00", + "value": "MSSuperSkinSmoothingPlugIn::mss_rememberFaceThinPointSets:boxes:renderTime:source:" + }, + { + "address": "0x10001c048", + "value": "MSSuperSkinSmoothingPlugIn::mss_resetFaceThinTransientStateForReason:call:renderTime:sourceRect:destinationRect:tileRect:" + }, + { + "address": "0x10001c43c", + "value": "MSSuperSkinSmoothingPlugIn::mss_rewindFaceReferenceForRenderTime:pointsOut:boxOut:timeOut:" + }, + { + "address": "0x10001c47c", + "value": "MSSuperSkinSmoothingPlugIn::mss_rewindFaceReferenceForRenderTime:allowCurrentTime:pointsOut:boxOut:timeOut:" + }, + { + "address": "0x10001c800", + "value": "MSSuperSkinSmoothingPlugIn::mss_timeLocalFaceReferenceForRenderTime:pointsOut:boxOut:detectionTimeOut:outputTimeOut:usedHistoryOut:" + }, + { + "address": "0x10001c84c", + "value": "MSSuperSkinSmoothingPlugIn::mss_timeLocalFaceReferenceForRenderTime:allowCurrentTime:pointsOut:boxOut:detectionTimeOut:outputTimeOut:usedHistoryOut:" + }, + { + "address": "0x10001ce84", + "value": "MSSuperSkinSmoothingPlugIn::mss_storeRewindFaceReferencePoints:forBox:renderTime:" + }, + { + "address": "0x10001d224", + "value": "MSSuperSkinSmoothingPlugIn::mss_clearRewindFaceReferences" + }, + { + "address": "0x10001d284", + "value": "MSSuperSkinSmoothingPlugIn::apiManager" + }, + { + "address": "0x10001d28c", + "value": "MSSuperSkinSmoothingPlugIn::controlPanelValueForPluginAtTime:" + }, + { + "address": "0x10001d838", + "value": "MSSuperSkinSmoothingPlugIn::moduleSwitchControlPanelValueForPlugin" + }, + { + "address": "0x10001da34", + "value": "MSSuperSkinSmoothingPlugIn::writeControlPanelValueFromPlugin:atTime:" + }, + { + "address": "0x10001da68", + "value": "MSSuperSkinSmoothingPlugIn::writeControlPanelValueFromPlugin:atTime:refreshCombinedState:" + }, + { + "address": "0x10001e3ac", + "value": "MSSuperSkinSmoothingPlugIn::mss_syncCompletedFaceTrackCacheFromPanelValue:" + }, + { + "address": "0x10001e3d8", + "value": "MSSuperSkinSmoothingPlugIn::analyzedFaceTrackBoxAtTime:panelValue:usedCachedFallback:" + }, + { + "address": "0x10001e3f4", + "value": "MSSuperSkinSmoothingPlugIn::mss_applyLivePanelStateToParams:atTime:" + }, + { + "address": "0x10001e89c", + "value": "MSSuperSkinSmoothingPlugIn::pluginVersionString" + }, + { + "address": "0x10001e90c", + "value": "MSSuperSkinSmoothingPlugIn::mss_runtimeBlockImageForExtent:" + }, + { + "address": "0x10001eba8", + "value": "MSSuperSkinSmoothingPlugIn::mss_runtimeBlockTextureForDevice:width:height:" + }, + { + "address": "0x10001f740", + "value": "MSSuperSkinSmoothingPlugIn::mss_renderRuntimeBlockToDestinationImage:device:deviceCache:" + }, + { + "address": "0x10001fa5c", + "value": "MSSuperSkinSmoothingPlugIn::properties:error:" + }, + { + "address": "0x10001fc10", + "value": "MSSuperSkinSmoothingPlugIn::addParametersWithError:" + }, + { + "address": "0x10002040c", + "value": "MSSuperSkinSmoothingPlugIn::pluginState:atTime:quality:error:" + }, + { + "address": "0x100020490", + "value": "MSSuperSkinSmoothingPlugIn::mss_currentHostTime" + }, + { + "address": "0x1000204f4", + "value": "MSSuperSkinSmoothingPlugIn::mss_requestFaceTrackAnalysisWithPanelValue:" + }, + { + "address": "0x1000204fc", + "value": "MSSuperSkinSmoothingPlugIn::mss_requestFaceTrackAnalysisWithPanelValue:apiManager:" + }, + { + "address": "0x10002051c", + "value": "MSSuperSkinSmoothingPlugIn::mss_startFaceTrackAnalysisFromHostButtonAppendingTarget:" + }, + { + "address": "0x100020528", + "value": "MSSuperSkinSmoothingPlugIn::startFaceTrackAnalysisFromHostButton" + }, + { + "address": "0x100020530", + "value": "MSSuperSkinSmoothingPlugIn::startAdditionalFaceTrackTargetFromHostButton" + }, + { + "address": "0x100020538", + "value": "MSSuperSkinSmoothingPlugIn::mss_startFaceTrackAnalysisDirection:" + }, + { + "address": "0x100020580", + "value": "MSSuperSkinSmoothingPlugIn::mss_startFaceTrackAnalysisDirection:apiManager:" + }, + { + "address": "0x1000205a0", + "value": "MSSuperSkinSmoothingPlugIn::mss_markFaceTrackAnalysisFailedWithReason:error:" + }, + { + "address": "0x1000207c0", + "value": "MSSuperSkinSmoothingPlugIn::mss_updateFaceTrackAnalysisProgressWithProcessedFrameCount:forceWrite:" + }, + { + "address": "0x100020b18", + "value": "MSSuperSkinSmoothingPlugIn::desiredAnalysisTimeRange:forInputWithTimeRange:error:" + }, + { + "address": "0x100020b5c", + "value": "MSSuperSkinSmoothingPlugIn::setupAnalysisForTimeRange:frameDuration:error:" + }, + { + "address": "0x100020c04", + "value": "MSSuperSkinSmoothingPlugIn::analyzeFrame:atTime:error:" + }, + { + "address": "0x100020c0c", + "value": "MSSuperSkinSmoothingPlugIn::cleanupAnalysis:" + }, + { + "address": "0x100020cb0", + "value": "MSSuperSkinSmoothingPlugIn::destinationImageRect:sourceImages:destinationImage:pluginState:atTime:error:" + }, + { + "address": "0x100020d4c", + "value": "MSSuperSkinSmoothingPlugIn::sourceTileRect:sourceImageIndex:sourceImages:destinationTileRect:destinationImage:pluginState:atTime:error:" + }, + { + "address": "0x10002179c", + "value": "MSSuperSkinSmoothingPlugIn::renderDestinationImage:sourceImages:pluginState:atTime:error:" + }, + { + "address": "0x1000337e8", + "value": "MSSuperSkinSmoothingPlugIn::legacyControlPanelValueAtTime:" + }, + { + "address": "0x100033c24", + "value": "MSSuperSkinSmoothingPlugIn::populateParams:atTime:error:" + }, + { + "address": "0x1000355a0", + "value": "MSSuperSkinSmoothingPlugIn::createViewForParameterID:" + }, + { + "address": "0x100035728", + "value": "MSSuperSkinSmoothingPlugIn::classForCustomParameterID:" + }, + { + "address": "0x100035744", + "value": "MSSuperSkinSmoothingPlugIn::classesForCustomParameterID:" + }, + { + "address": "0x100035770", + "value": "MSSuperSkinSmoothingPlugIn::temporallyStabilizedEyeBrighteningMaskImage:inputImage:activeExtent:activeExtentOut:renderTime:" + }, + { + "address": "0x100035854", + "value": "MSSuperSkinSmoothingPlugIn::applySkinSmoothingToImage:params:renderTime:faceObservations:selectedFacePoints:" + }, + { + "address": "0x1000358d8", + "value": "MSSuperSkinSmoothingPlugIn::applySkinSmoothingToImage:params:renderTime:faceObservations:selectedFacePoints:featureReferenceExtent:externalMaskImage:externalPreviewMaskImage:externalRawPreviewSmallMaskImage:" + }, + { + "address": "0x100039254", + "value": "MSSuperSkinSmoothingPlugIn::resetTemporalMaskCache" + }, + { + "address": "0x100039360", + "value": "MSSuperSkinSmoothingPlugIn::resetSkinSegmentationMaskCache" + }, + { + "address": "0x100039394", + "value": "MSSuperSkinSmoothingPlugIn::mss_cachedFrameAnalysisSkinMaskForInputImage:params:renderTime:maskImageOut:previewMaskImageOut:rawPreviewSmallMaskImageOut:" + }, + { + "address": "0x10003992c", + "value": "MSSuperSkinSmoothingPlugIn::mss_resolveFrameAnalysisSkinMaskForInputImage:params:renderTime:maskImageOut:previewMaskImageOut:rawPreviewSmallMaskImageOut:" + }, + { + "address": "0x100039b50", + "value": "MSSuperSkinSmoothingPlugIn::mss_storeFrameAnalysisSkinMaskImage:previewMaskImage:rawPreviewSmallMaskImage:inputImage:params:renderTime:" + }, + { + "address": "0x100039e14", + "value": "MSSuperSkinSmoothingPlugIn::playbackStabilizedMaskImageFromInputImage:params:renderTime:trackingGrayBytes:trackingGrayWidth:trackingGrayHeight:trackingAlphaBytes:trackingAlphaWidth:trackingAlphaHeight:previewMaskImage:rawPreviewSmallMaskImage:maskImage:smoothCarrierImageOut:" + }, + { + "address": "0x10003ae4c", + "value": "MSSuperSkinSmoothingPlugIn::stabilizedMaskImageFromMaskImage:params:renderTime:" + }, + { + "address": "0x10003b1dc", + "value": "MSSuperSkinSmoothingPlugIn::stabilizedPreviewMaskImageFromMaskImage:params:renderTime:" + }, + { + "address": "0x10003b56c", + "value": "MSSuperSkinSmoothingPlugIn::mss_lockedCachedFrameAnalysisFaceObservationsInCache:inputImage:sourceTileRect:renderTime:observationsOut:" + }, + { + "address": "0x10003b824", + "value": "MSSuperSkinSmoothingPlugIn::mss_lockedStoreFrameAnalysisFaceObservations:inCache:inputImage:sourceTileRect:renderTime:" + }, + { + "address": "0x10003ba8c", + "value": "MSSuperSkinSmoothingPlugIn::mss_lockedStoreCachedFaceObservations:inputImage:sourceTileRect:renderTime:" + }, + { + "address": "0x10003bb84", + "value": "MSSuperSkinSmoothingPlugIn::mss_lockedStoreCachedFaceRectangleObservations:inputImage:sourceTileRect:renderTime:" + }, + { + "address": "0x10003bc84", + "value": "MSSuperSkinSmoothingPlugIn::cachedFaceObservationsForInputImage:inputSurface:sourceTileRect:renderTime:allowForwardReuse:" + }, + { + "address": "0x10003c4c4", + "value": "MSSuperSkinSmoothingPlugIn::cachedFaceRectangleObservationsForInputImage:inputSurface:sourceTileRect:renderTime:allowForwardReuse:" + }, + { + "address": "0x10003cc78", + "value": "MSSuperSkinSmoothingPlugIn::trackedFaceBoxForInputImage:renderTime:selectedObservation:shouldTrack:" + }, + { + "address": "0x10003d69c", + "value": "MSSuperSkinSmoothingPlugIn::mss_pinStyleFacePointsForObservations:renderTime:params:trackingInputImage:preferredBox:hasPreferredBox:selectedObservationOut:strengthMultiplierOut:pointsBoxOut:usedHoldOut:" + }, + { + "address": "0x10003f2c0", + "value": "MSSuperSkinSmoothingPlugIn::deterministicFacePointsForObservations:params:selectedObservationOut:strengthMultiplierOut:" + }, + { + "address": "0x10003f88c", + "value": "MSSuperSkinSmoothingPlugIn::temporalFacePointsForObservations:renderTime:params:selectedObservationOut:strengthMultiplierOut:pointsBoxOut:" + }, + { + "address": "0x100043a14", + "value": "MSSuperSkinSmoothingFaceSelectOSC::load" + }, + { + "address": "0x100043a18", + "value": "MSSuperSkinSmoothingFaceSelectOSC::initWithAPIManager:" + }, + { + "address": "0x100043a60", + "value": "MSSuperSkinSmoothingFaceSelectOSC::createViewForParameterID:" + }, + { + "address": "0x100043a68", + "value": "MSSuperSkinSmoothingFaceSelectOSC::classForCustomParameterID:" + }, + { + "address": "0x100043a88", + "value": "MSSuperSkinSmoothingFaceSelectOSC::classesForCustomParameterID:" + }, + { + "address": "0x100043ab8", + "value": "MSSuperSkinSmoothingFaceSelectOSC::drawingCoordinates" + }, + { + "address": "0x100043ac0", + "value": "MSSuperSkinSmoothingFaceSelectOSC::drawOSCWithWidth:height:activePart:destinationImage:atTime:" + }, + { + "address": "0x100043c40", + "value": "MSSuperSkinSmoothingFaceSelectOSC::hitTestOSCAtMousePositionX:mousePositionY:activePart:atTime:" + }, + { + "address": "0x100043c50", + "value": "MSSuperSkinSmoothingFaceSelectOSC::mouseDownAtPositionX:positionY:activePart:modifiers:forceUpdate:atTime:" + }, + { + "address": "0x100043c5c", + "value": "MSSuperSkinSmoothingFaceSelectOSC::mouseDraggedAtPositionX:positionY:activePart:modifiers:forceUpdate:atTime:" + }, + { + "address": "0x100043c68", + "value": "MSSuperSkinSmoothingFaceSelectOSC::mouseUpAtPositionX:positionY:activePart:modifiers:forceUpdate:atTime:" + }, + { + "address": "0x100044b70", + "value": "MSSuperSkinSmoothingFaceSelectOSC::keyDownAtPositionX:positionY:keyPressed:modifiers:forceUpdate:didHandle:atTime:" + }, + { + "address": "0x100044b84", + "value": "MSSuperSkinSmoothingFaceSelectOSC::keyUpAtPositionX:positionY:keyPressed:modifiers:forceUpdate:didHandle:atTime:" + }, + { + "address": "0x100046410", + "value": "YUCIHighPassSkinSmoothingMaskBoost::filterKernel" + }, + { + "address": "0x100046470", + "value": "YUCIHighPassSkinSmoothingMaskBoost::outputImage" + }, + { + "address": "0x100046538", + "value": "YUCIHighPassSkinSmoothingMaskBoost::dealloc" + }, + { + "address": "0x10004656c", + "value": "YUCIHighPassSkinSmoothingMaskBoost::inputImage" + }, + { + "address": "0x10004657c", + "value": "YUCIHighPassSkinSmoothingMaskBoost::setInputImage:" + }, + { + "address": "0x100046588", + "value": "YUCIHighPassSkinSmoothingMaskGenerator::outputImage" + }, + { + "address": "0x100046690", + "value": "YUCIHighPassSkinSmoothingMaskGenerator::dealloc" + }, + { + "address": "0x1000466e4", + "value": "YUCIHighPassSkinSmoothingMaskGenerator::inputImage" + }, + { + "address": "0x1000466f4", + "value": "YUCIHighPassSkinSmoothingMaskGenerator::setInputImage:" + }, + { + "address": "0x100046700", + "value": "YUCIHighPassSkinSmoothingMaskGenerator::inputRadius" + }, + { + "address": "0x100046710", + "value": "YUCIHighPassSkinSmoothingMaskGenerator::setInputRadius:" + }, + { + "address": "0x10004671c", + "value": "YUCIHighPassSkinSmoothing::load" + }, + { + "address": "0x100046860", + "value": "YUCIHighPassSkinSmoothing::inputAmount" + }, + { + "address": "0x1000468a4", + "value": "YUCIHighPassSkinSmoothing::inputRadius" + }, + { + "address": "0x1000468e8", + "value": "YUCIHighPassSkinSmoothing::inputMidtoneDetail" + }, + { + "address": "0x10004692c", + "value": "YUCIHighPassSkinSmoothing::inputHighPassDetail" + }, + { + "address": "0x100046970", + "value": "YUCIHighPassSkinSmoothing::inputTeethWhitening" + }, + { + "address": "0x1000469b4", + "value": "YUCIHighPassSkinSmoothing::inputEyeBrightening" + }, + { + "address": "0x1000469f8", + "value": "YUCIHighPassSkinSmoothing::inputSkinBrightness" + }, + { + "address": "0x100046a3c", + "value": "YUCIHighPassSkinSmoothing::inputSkinTonePreset" + }, + { + "address": "0x100046a80", + "value": "YUCIHighPassSkinSmoothing::inputSkinHue" + }, + { + "address": "0x100046ac4", + "value": "YUCIHighPassSkinSmoothing::inputSkinSaturation" + }, + { + "address": "0x100046b08", + "value": "YUCIHighPassSkinSmoothing::inputSharpnessFactor" + }, + { + "address": "0x100046b4c", + "value": "YUCIHighPassSkinSmoothing::inputMaskThreshold" + }, + { + "address": "0x100046b94", + "value": "YUCIHighPassSkinSmoothing::inputMaskSoftness" + }, + { + "address": "0x100046bdc", + "value": "YUCIHighPassSkinSmoothing::inputMaskEdgeProtect" + }, + { + "address": "0x100046c24", + "value": "YUCIHighPassSkinSmoothing::inputShowChannelInfo" + }, + { + "address": "0x100046c68", + "value": "YUCIHighPassSkinSmoothing::inputDebugChannelMode" + }, + { + "address": "0x100046cac", + "value": "YUCIHighPassSkinSmoothing::defaultInputRGBCompositeControlPoints" + }, + { + "address": "0x100046d54", + "value": "YUCIHighPassSkinSmoothing::setInputToneCurveControlPoints:" + }, + { + "address": "0x100046d98", + "value": "YUCIHighPassSkinSmoothing::inputToneCurveControlPoints" + }, + { + "address": "0x100046dac", + "value": "YUCIHighPassSkinSmoothing::skinToneCurveFilter" + }, + { + "address": "0x100046e00", + "value": "YUCIHighPassSkinSmoothing::setDefaults" + }, + { + "address": "0x100046f4c", + "value": "YUCIHighPassSkinSmoothing::outputImage" + }, + { + "address": "0x1000492c4", + "value": "YUCIHighPassSkinSmoothing::dealloc" + }, + { + "address": "0x100049534", + "value": "YUCIHighPassSkinSmoothing::inputImage" + }, + { + "address": "0x100049544", + "value": "YUCIHighPassSkinSmoothing::setInputImage:" + }, + { + "address": "0x100049550", + "value": "YUCIHighPassSkinSmoothing::inputMaskImage" + }, + { + "address": "0x100049560", + "value": "YUCIHighPassSkinSmoothing::setInputMaskImage:" + }, + { + "address": "0x10004956c", + "value": "YUCIHighPassSkinSmoothing::inputPreviewMaskImage" + }, + { + "address": "0x10004957c", + "value": "YUCIHighPassSkinSmoothing::setInputPreviewMaskImage:" + }, + { + "address": "0x100049588", + "value": "YUCIHighPassSkinSmoothing::inputLocalSmoothingMaskImage" + }, + { + "address": "0x100049598", + "value": "YUCIHighPassSkinSmoothing::setInputLocalSmoothingMaskImage:" + }, + { + "address": "0x1000495a4", + "value": "YUCIHighPassSkinSmoothing::inputGlobalSmoothingMaskImage" + }, + { + "address": "0x1000495b4", + "value": "YUCIHighPassSkinSmoothing::setInputGlobalSmoothingMaskImage:" + }, + { + "address": "0x1000495c0", + "value": "YUCIHighPassSkinSmoothing::inputSkinEvenToneMaskImage" + }, + { + "address": "0x1000495d0", + "value": "YUCIHighPassSkinSmoothing::setInputSkinEvenToneMaskImage:" + }, + { + "address": "0x1000495dc", + "value": "YUCIHighPassSkinSmoothing::inputTeethMaskImage" + }, + { + "address": "0x1000495ec", + "value": "YUCIHighPassSkinSmoothing::setInputTeethMaskImage:" + }, + { + "address": "0x1000495f8", + "value": "YUCIHighPassSkinSmoothing::inputEyeMaskImage" + }, + { + "address": "0x100049608", + "value": "YUCIHighPassSkinSmoothing::setInputEyeMaskImage:" + }, + { + "address": "0x100049614", + "value": "YUCIHighPassSkinSmoothing::inputEyeMaskActiveExtentVector" + }, + { + "address": "0x100049624", + "value": "YUCIHighPassSkinSmoothing::setInputEyeMaskActiveExtentVector:" + }, + { + "address": "0x100049630", + "value": "YUCIHighPassSkinSmoothing::setInputAmount:" + }, + { + "address": "0x10004963c", + "value": "YUCIHighPassSkinSmoothing::setInputSkinTonePreset:" + }, + { + "address": "0x100049648", + "value": "YUCIHighPassSkinSmoothing::setInputSkinBrightness:" + }, + { + "address": "0x100049654", + "value": "YUCIHighPassSkinSmoothing::setInputSkinHue:" + }, + { + "address": "0x100049660", + "value": "YUCIHighPassSkinSmoothing::setInputSkinSaturation:" + }, + { + "address": "0x10004966c", + "value": "YUCIHighPassSkinSmoothing::setInputMidtoneDetail:" + }, + { + "address": "0x100049678", + "value": "YUCIHighPassSkinSmoothing::setInputHighPassDetail:" + }, + { + "address": "0x100049684", + "value": "YUCIHighPassSkinSmoothing::setInputTeethWhitening:" + }, + { + "address": "0x100049690", + "value": "YUCIHighPassSkinSmoothing::setInputEyeBrightening:" + }, + { + "address": "0x10004969c", + "value": "YUCIHighPassSkinSmoothing::setInputRadius:" + }, + { + "address": "0x1000496a8", + "value": "YUCIHighPassSkinSmoothing::setInputSharpnessFactor:" + }, + { + "address": "0x1000496b4", + "value": "YUCIHighPassSkinSmoothing::setInputMaskThreshold:" + }, + { + "address": "0x1000496c0", + "value": "YUCIHighPassSkinSmoothing::setInputMaskSoftness:" + }, + { + "address": "0x1000496cc", + "value": "YUCIHighPassSkinSmoothing::setInputMaskEdgeProtect:" + }, + { + "address": "0x1000496d8", + "value": "YUCIHighPassSkinSmoothing::setInputShowChannelInfo:" + }, + { + "address": "0x1000496e4", + "value": "YUCIHighPassSkinSmoothing::setInputDebugChannelMode:" + }, + { + "address": "0x1000496f0", + "value": "YUCIHighPassSkinSmoothing::inputInvertMaskChannel" + }, + { + "address": "0x100049700", + "value": "YUCIHighPassSkinSmoothing::setInputInvertMaskChannel:" + }, + { + "address": "0x10007a040", + "value": "/usr/lib/swift/libswiftFoundation.dylib::Foundation::Data::LargeSlice::ensureUniqueReference" + }, + { + "address": "0x10007a064", + "value": "/usr/lib/swift/libswiftFoundation.dylib::Foundation::Data::RangeReference::typeMetadataAccessor" + }, + { + "address": "0x10007b1e0", + "value": "_swift_isUniquelyReferenced_nonNull_native" + }, + { + "address": "0x10007cc00", + "value": "objc_stub::applySkinSmoothingToImage:params:renderTime:faceObservations:selectedFacePoints:featureReferenceExtent:externalMaskImage:externalPreviewMaskImage:externalRawPreviewSmallMaskImage:" + }, + { + "address": "0x10007d060", + "value": "objc_stub::cachedFaceObservationsForInputImage:inputSurface:sourceTileRect:renderTime:allowForwardReuse:" + }, + { + "address": "0x10007f480", + "value": "objc_stub::inputLocalSmoothingMaskImage" + }, + { + "address": "0x10007fd60", + "value": "objc_stub::mss_clearRewindFaceReferences" + }, + { + "address": "0x10007fdc0", + "value": "objc_stub::mss_lockedStoreCachedFaceObservations:inputImage:sourceTileRect:renderTime:" + }, + { + "address": "0x10007fde0", + "value": "objc_stub::mss_lockedStoreCachedFaceRectangleObservations:inputImage:sourceTileRect:renderTime:" + }, + { + "address": "0x10007ff40", + "value": "objc_stub::mss_rewindFaceReferenceForRenderTime:allowCurrentTime:pointsOut:boxOut:timeOut:" + }, + { + "address": "0x100080000", + "value": "objc_stub::mss_storeRewindFaceReferencePoints:forBox:renderTime:" + }, + { + "address": "0x100080040", + "value": "objc_stub::mss_timeLocalFaceReferenceForRenderTime:allowCurrentTime:pointsOut:boxOut:detectionTimeOut:outputTimeOut:usedHistoryOut:" + }, + { + "address": "0x1000806a0", + "value": "objc_stub::playbackStabilizedMaskImageFromInputImage:params:renderTime:trackingGrayBytes:trackingGrayWidth:trackingGrayHeight:trackingAlphaBytes:trackingAlphaWidth:trackingAlphaHeight:previewMaskImage:rawPreviewSmallMaskImage:maskImage:smoothCarrierImageOut:" + }, + { + "address": "0x100081ee0", + "value": "objc_stub::setInputGlobalSmoothingMaskImage:" + }, + { + "address": "0x100081fa0", + "value": "objc_stub::setInputLocalSmoothingMaskImage:" + } + ], + "operation": "search_procedures", + "parameters": { + "case_sensitive": false, + "mode": "regex", + "pattern": "temporalFace|cachedFace|Rewind|rewind|Reference|reference|Axis|axis|smooth|Smooth" + }, + "predicate_type": "rea.analysis", + "provider": { + "id": "ghidra", + "name": "Ghidra", + "version": "12.1.4" + }, + "raw_result": [ + { + "address": "EXTERNAL:0x23", + "value": "/usr/lib/swift/libswiftFoundation.dylib::Foundation::Data::LargeSlice::ensureUniqueReference" + }, + { + "address": "EXTERNAL:0x26", + "value": "/usr/lib/swift/libswiftFoundation.dylib::Foundation::Data::RangeReference::typeMetadataAccessor" + }, + { + "address": "EXTERNAL:0x19b", + "value": "/usr/lib/swift/libswiftCore.dylib::_swift_isUniquelyReferenced_nonNull_native" + }, + { + "address": "0x1000196f8", + "value": "MSSuperSkinSmoothingPlugIn::load" + }, + { + "address": "0x100019974", + "value": "MSSuperSkinSmoothingPlugIn::initWithAPIManager:" + }, + { + "address": "0x100019f88", + "value": "MSSuperSkinSmoothingPlugIn::dealloc" + }, + { + "address": "0x10001a198", + "value": "MSSuperSkinSmoothingPlugIn::mss_faceThinRememberedPointsForBox:renderTime:source:" + }, + { + "address": "0x10001b6b8", + "value": "MSSuperSkinSmoothingPlugIn::mss_faceThinRenderTimeCanUpdateMemory:" + }, + { + "address": "0x10001b7a0", + "value": "MSSuperSkinSmoothingPlugIn::mss_rememberFaceThinPoints:forBox:renderTime:source:" + }, + { + "address": "0x10001be00", + "value": "MSSuperSkinSmoothingPlugIn::mss_rememberFaceThinPointSets:boxes:renderTime:source:" + }, + { + "address": "0x10001c048", + "value": "MSSuperSkinSmoothingPlugIn::mss_resetFaceThinTransientStateForReason:call:renderTime:sourceRect:destinationRect:tileRect:" + }, + { + "address": "0x10001c43c", + "value": "MSSuperSkinSmoothingPlugIn::mss_rewindFaceReferenceForRenderTime:pointsOut:boxOut:timeOut:" + }, + { + "address": "0x10001c47c", + "value": "MSSuperSkinSmoothingPlugIn::mss_rewindFaceReferenceForRenderTime:allowCurrentTime:pointsOut:boxOut:timeOut:" + }, + { + "address": "0x10001c800", + "value": "MSSuperSkinSmoothingPlugIn::mss_timeLocalFaceReferenceForRenderTime:pointsOut:boxOut:detectionTimeOut:outputTimeOut:usedHistoryOut:" + }, + { + "address": "0x10001c84c", + "value": "MSSuperSkinSmoothingPlugIn::mss_timeLocalFaceReferenceForRenderTime:allowCurrentTime:pointsOut:boxOut:detectionTimeOut:outputTimeOut:usedHistoryOut:" + }, + { + "address": "0x10001ce84", + "value": "MSSuperSkinSmoothingPlugIn::mss_storeRewindFaceReferencePoints:forBox:renderTime:" + }, + { + "address": "0x10001d224", + "value": "MSSuperSkinSmoothingPlugIn::mss_clearRewindFaceReferences" + }, + { + "address": "0x10001d284", + "value": "MSSuperSkinSmoothingPlugIn::apiManager" + }, + { + "address": "0x10001d28c", + "value": "MSSuperSkinSmoothingPlugIn::controlPanelValueForPluginAtTime:" + }, + { + "address": "0x10001d838", + "value": "MSSuperSkinSmoothingPlugIn::moduleSwitchControlPanelValueForPlugin" + }, + { + "address": "0x10001da34", + "value": "MSSuperSkinSmoothingPlugIn::writeControlPanelValueFromPlugin:atTime:" + }, + { + "address": "0x10001da68", + "value": "MSSuperSkinSmoothingPlugIn::writeControlPanelValueFromPlugin:atTime:refreshCombinedState:" + }, + { + "address": "0x10001e3ac", + "value": "MSSuperSkinSmoothingPlugIn::mss_syncCompletedFaceTrackCacheFromPanelValue:" + }, + { + "address": "0x10001e3d8", + "value": "MSSuperSkinSmoothingPlugIn::analyzedFaceTrackBoxAtTime:panelValue:usedCachedFallback:" + }, + { + "address": "0x10001e3f4", + "value": "MSSuperSkinSmoothingPlugIn::mss_applyLivePanelStateToParams:atTime:" + }, + { + "address": "0x10001e89c", + "value": "MSSuperSkinSmoothingPlugIn::pluginVersionString" + }, + { + "address": "0x10001e90c", + "value": "MSSuperSkinSmoothingPlugIn::mss_runtimeBlockImageForExtent:" + }, + { + "address": "0x10001eba8", + "value": "MSSuperSkinSmoothingPlugIn::mss_runtimeBlockTextureForDevice:width:height:" + }, + { + "address": "0x10001f740", + "value": "MSSuperSkinSmoothingPlugIn::mss_renderRuntimeBlockToDestinationImage:device:deviceCache:" + }, + { + "address": "0x10001fa5c", + "value": "MSSuperSkinSmoothingPlugIn::properties:error:" + }, + { + "address": "0x10001fc10", + "value": "MSSuperSkinSmoothingPlugIn::addParametersWithError:" + }, + { + "address": "0x10002040c", + "value": "MSSuperSkinSmoothingPlugIn::pluginState:atTime:quality:error:" + }, + { + "address": "0x100020490", + "value": "MSSuperSkinSmoothingPlugIn::mss_currentHostTime" + }, + { + "address": "0x1000204f4", + "value": "MSSuperSkinSmoothingPlugIn::mss_requestFaceTrackAnalysisWithPanelValue:" + }, + { + "address": "0x1000204fc", + "value": "MSSuperSkinSmoothingPlugIn::mss_requestFaceTrackAnalysisWithPanelValue:apiManager:" + }, + { + "address": "0x10002051c", + "value": "MSSuperSkinSmoothingPlugIn::mss_startFaceTrackAnalysisFromHostButtonAppendingTarget:" + }, + { + "address": "0x100020528", + "value": "MSSuperSkinSmoothingPlugIn::startFaceTrackAnalysisFromHostButton" + }, + { + "address": "0x100020530", + "value": "MSSuperSkinSmoothingPlugIn::startAdditionalFaceTrackTargetFromHostButton" + }, + { + "address": "0x100020538", + "value": "MSSuperSkinSmoothingPlugIn::mss_startFaceTrackAnalysisDirection:" + }, + { + "address": "0x100020580", + "value": "MSSuperSkinSmoothingPlugIn::mss_startFaceTrackAnalysisDirection:apiManager:" + }, + { + "address": "0x1000205a0", + "value": "MSSuperSkinSmoothingPlugIn::mss_markFaceTrackAnalysisFailedWithReason:error:" + }, + { + "address": "0x1000207c0", + "value": "MSSuperSkinSmoothingPlugIn::mss_updateFaceTrackAnalysisProgressWithProcessedFrameCount:forceWrite:" + }, + { + "address": "0x100020b18", + "value": "MSSuperSkinSmoothingPlugIn::desiredAnalysisTimeRange:forInputWithTimeRange:error:" + }, + { + "address": "0x100020b5c", + "value": "MSSuperSkinSmoothingPlugIn::setupAnalysisForTimeRange:frameDuration:error:" + }, + { + "address": "0x100020c04", + "value": "MSSuperSkinSmoothingPlugIn::analyzeFrame:atTime:error:" + }, + { + "address": "0x100020c0c", + "value": "MSSuperSkinSmoothingPlugIn::cleanupAnalysis:" + }, + { + "address": "0x100020cb0", + "value": "MSSuperSkinSmoothingPlugIn::destinationImageRect:sourceImages:destinationImage:pluginState:atTime:error:" + }, + { + "address": "0x100020d4c", + "value": "MSSuperSkinSmoothingPlugIn::sourceTileRect:sourceImageIndex:sourceImages:destinationTileRect:destinationImage:pluginState:atTime:error:" + }, + { + "address": "0x10002179c", + "value": "MSSuperSkinSmoothingPlugIn::renderDestinationImage:sourceImages:pluginState:atTime:error:" + }, + { + "address": "0x1000337e8", + "value": "MSSuperSkinSmoothingPlugIn::legacyControlPanelValueAtTime:" + }, + { + "address": "0x100033c24", + "value": "MSSuperSkinSmoothingPlugIn::populateParams:atTime:error:" + }, + { + "address": "0x1000355a0", + "value": "MSSuperSkinSmoothingPlugIn::createViewForParameterID:" + }, + { + "address": "0x100035728", + "value": "MSSuperSkinSmoothingPlugIn::classForCustomParameterID:" + }, + { + "address": "0x100035744", + "value": "MSSuperSkinSmoothingPlugIn::classesForCustomParameterID:" + }, + { + "address": "0x100035770", + "value": "MSSuperSkinSmoothingPlugIn::temporallyStabilizedEyeBrighteningMaskImage:inputImage:activeExtent:activeExtentOut:renderTime:" + }, + { + "address": "0x100035854", + "value": "MSSuperSkinSmoothingPlugIn::applySkinSmoothingToImage:params:renderTime:faceObservations:selectedFacePoints:" + }, + { + "address": "0x1000358d8", + "value": "MSSuperSkinSmoothingPlugIn::applySkinSmoothingToImage:params:renderTime:faceObservations:selectedFacePoints:featureReferenceExtent:externalMaskImage:externalPreviewMaskImage:externalRawPreviewSmallMaskImage:" + }, + { + "address": "0x100039254", + "value": "MSSuperSkinSmoothingPlugIn::resetTemporalMaskCache" + }, + { + "address": "0x100039360", + "value": "MSSuperSkinSmoothingPlugIn::resetSkinSegmentationMaskCache" + }, + { + "address": "0x100039394", + "value": "MSSuperSkinSmoothingPlugIn::mss_cachedFrameAnalysisSkinMaskForInputImage:params:renderTime:maskImageOut:previewMaskImageOut:rawPreviewSmallMaskImageOut:" + }, + { + "address": "0x10003992c", + "value": "MSSuperSkinSmoothingPlugIn::mss_resolveFrameAnalysisSkinMaskForInputImage:params:renderTime:maskImageOut:previewMaskImageOut:rawPreviewSmallMaskImageOut:" + }, + { + "address": "0x100039b50", + "value": "MSSuperSkinSmoothingPlugIn::mss_storeFrameAnalysisSkinMaskImage:previewMaskImage:rawPreviewSmallMaskImage:inputImage:params:renderTime:" + }, + { + "address": "0x100039e14", + "value": "MSSuperSkinSmoothingPlugIn::playbackStabilizedMaskImageFromInputImage:params:renderTime:trackingGrayBytes:trackingGrayWidth:trackingGrayHeight:trackingAlphaBytes:trackingAlphaWidth:trackingAlphaHeight:previewMaskImage:rawPreviewSmallMaskImage:maskImage:smoothCarrierImageOut:" + }, + { + "address": "0x10003ae4c", + "value": "MSSuperSkinSmoothingPlugIn::stabilizedMaskImageFromMaskImage:params:renderTime:" + }, + { + "address": "0x10003b1dc", + "value": "MSSuperSkinSmoothingPlugIn::stabilizedPreviewMaskImageFromMaskImage:params:renderTime:" + }, + { + "address": "0x10003b56c", + "value": "MSSuperSkinSmoothingPlugIn::mss_lockedCachedFrameAnalysisFaceObservationsInCache:inputImage:sourceTileRect:renderTime:observationsOut:" + }, + { + "address": "0x10003b824", + "value": "MSSuperSkinSmoothingPlugIn::mss_lockedStoreFrameAnalysisFaceObservations:inCache:inputImage:sourceTileRect:renderTime:" + }, + { + "address": "0x10003ba8c", + "value": "MSSuperSkinSmoothingPlugIn::mss_lockedStoreCachedFaceObservations:inputImage:sourceTileRect:renderTime:" + }, + { + "address": "0x10003bb84", + "value": "MSSuperSkinSmoothingPlugIn::mss_lockedStoreCachedFaceRectangleObservations:inputImage:sourceTileRect:renderTime:" + }, + { + "address": "0x10003bc84", + "value": "MSSuperSkinSmoothingPlugIn::cachedFaceObservationsForInputImage:inputSurface:sourceTileRect:renderTime:allowForwardReuse:" + }, + { + "address": "0x10003c4c4", + "value": "MSSuperSkinSmoothingPlugIn::cachedFaceRectangleObservationsForInputImage:inputSurface:sourceTileRect:renderTime:allowForwardReuse:" + }, + { + "address": "0x10003cc78", + "value": "MSSuperSkinSmoothingPlugIn::trackedFaceBoxForInputImage:renderTime:selectedObservation:shouldTrack:" + }, + { + "address": "0x10003d69c", + "value": "MSSuperSkinSmoothingPlugIn::mss_pinStyleFacePointsForObservations:renderTime:params:trackingInputImage:preferredBox:hasPreferredBox:selectedObservationOut:strengthMultiplierOut:pointsBoxOut:usedHoldOut:" + }, + { + "address": "0x10003f2c0", + "value": "MSSuperSkinSmoothingPlugIn::deterministicFacePointsForObservations:params:selectedObservationOut:strengthMultiplierOut:" + }, + { + "address": "0x10003f88c", + "value": "MSSuperSkinSmoothingPlugIn::temporalFacePointsForObservations:renderTime:params:selectedObservationOut:strengthMultiplierOut:pointsBoxOut:" + }, + { + "address": "0x100043a14", + "value": "MSSuperSkinSmoothingFaceSelectOSC::load" + }, + { + "address": "0x100043a18", + "value": "MSSuperSkinSmoothingFaceSelectOSC::initWithAPIManager:" + }, + { + "address": "0x100043a60", + "value": "MSSuperSkinSmoothingFaceSelectOSC::createViewForParameterID:" + }, + { + "address": "0x100043a68", + "value": "MSSuperSkinSmoothingFaceSelectOSC::classForCustomParameterID:" + }, + { + "address": "0x100043a88", + "value": "MSSuperSkinSmoothingFaceSelectOSC::classesForCustomParameterID:" + }, + { + "address": "0x100043ab8", + "value": "MSSuperSkinSmoothingFaceSelectOSC::drawingCoordinates" + }, + { + "address": "0x100043ac0", + "value": "MSSuperSkinSmoothingFaceSelectOSC::drawOSCWithWidth:height:activePart:destinationImage:atTime:" + }, + { + "address": "0x100043c40", + "value": "MSSuperSkinSmoothingFaceSelectOSC::hitTestOSCAtMousePositionX:mousePositionY:activePart:atTime:" + }, + { + "address": "0x100043c50", + "value": "MSSuperSkinSmoothingFaceSelectOSC::mouseDownAtPositionX:positionY:activePart:modifiers:forceUpdate:atTime:" + }, + { + "address": "0x100043c5c", + "value": "MSSuperSkinSmoothingFaceSelectOSC::mouseDraggedAtPositionX:positionY:activePart:modifiers:forceUpdate:atTime:" + }, + { + "address": "0x100043c68", + "value": "MSSuperSkinSmoothingFaceSelectOSC::mouseUpAtPositionX:positionY:activePart:modifiers:forceUpdate:atTime:" + }, + { + "address": "0x100044b70", + "value": "MSSuperSkinSmoothingFaceSelectOSC::keyDownAtPositionX:positionY:keyPressed:modifiers:forceUpdate:didHandle:atTime:" + }, + { + "address": "0x100044b84", + "value": "MSSuperSkinSmoothingFaceSelectOSC::keyUpAtPositionX:positionY:keyPressed:modifiers:forceUpdate:didHandle:atTime:" + }, + { + "address": "0x100046410", + "value": "YUCIHighPassSkinSmoothingMaskBoost::filterKernel" + }, + { + "address": "0x100046470", + "value": "YUCIHighPassSkinSmoothingMaskBoost::outputImage" + }, + { + "address": "0x100046538", + "value": "YUCIHighPassSkinSmoothingMaskBoost::dealloc" + }, + { + "address": "0x10004656c", + "value": "YUCIHighPassSkinSmoothingMaskBoost::inputImage" + }, + { + "address": "0x10004657c", + "value": "YUCIHighPassSkinSmoothingMaskBoost::setInputImage:" + }, + { + "address": "0x100046588", + "value": "YUCIHighPassSkinSmoothingMaskGenerator::outputImage" + }, + { + "address": "0x100046690", + "value": "YUCIHighPassSkinSmoothingMaskGenerator::dealloc" + }, + { + "address": "0x1000466e4", + "value": "YUCIHighPassSkinSmoothingMaskGenerator::inputImage" + }, + { + "address": "0x1000466f4", + "value": "YUCIHighPassSkinSmoothingMaskGenerator::setInputImage:" + }, + { + "address": "0x100046700", + "value": "YUCIHighPassSkinSmoothingMaskGenerator::inputRadius" + }, + { + "address": "0x100046710", + "value": "YUCIHighPassSkinSmoothingMaskGenerator::setInputRadius:" + }, + { + "address": "0x10004671c", + "value": "YUCIHighPassSkinSmoothing::load" + }, + { + "address": "0x100046860", + "value": "YUCIHighPassSkinSmoothing::inputAmount" + }, + { + "address": "0x1000468a4", + "value": "YUCIHighPassSkinSmoothing::inputRadius" + }, + { + "address": "0x1000468e8", + "value": "YUCIHighPassSkinSmoothing::inputMidtoneDetail" + }, + { + "address": "0x10004692c", + "value": "YUCIHighPassSkinSmoothing::inputHighPassDetail" + }, + { + "address": "0x100046970", + "value": "YUCIHighPassSkinSmoothing::inputTeethWhitening" + }, + { + "address": "0x1000469b4", + "value": "YUCIHighPassSkinSmoothing::inputEyeBrightening" + }, + { + "address": "0x1000469f8", + "value": "YUCIHighPassSkinSmoothing::inputSkinBrightness" + }, + { + "address": "0x100046a3c", + "value": "YUCIHighPassSkinSmoothing::inputSkinTonePreset" + }, + { + "address": "0x100046a80", + "value": "YUCIHighPassSkinSmoothing::inputSkinHue" + }, + { + "address": "0x100046ac4", + "value": "YUCIHighPassSkinSmoothing::inputSkinSaturation" + }, + { + "address": "0x100046b08", + "value": "YUCIHighPassSkinSmoothing::inputSharpnessFactor" + }, + { + "address": "0x100046b4c", + "value": "YUCIHighPassSkinSmoothing::inputMaskThreshold" + }, + { + "address": "0x100046b94", + "value": "YUCIHighPassSkinSmoothing::inputMaskSoftness" + }, + { + "address": "0x100046bdc", + "value": "YUCIHighPassSkinSmoothing::inputMaskEdgeProtect" + }, + { + "address": "0x100046c24", + "value": "YUCIHighPassSkinSmoothing::inputShowChannelInfo" + }, + { + "address": "0x100046c68", + "value": "YUCIHighPassSkinSmoothing::inputDebugChannelMode" + }, + { + "address": "0x100046cac", + "value": "YUCIHighPassSkinSmoothing::defaultInputRGBCompositeControlPoints" + }, + { + "address": "0x100046d54", + "value": "YUCIHighPassSkinSmoothing::setInputToneCurveControlPoints:" + }, + { + "address": "0x100046d98", + "value": "YUCIHighPassSkinSmoothing::inputToneCurveControlPoints" + }, + { + "address": "0x100046dac", + "value": "YUCIHighPassSkinSmoothing::skinToneCurveFilter" + }, + { + "address": "0x100046e00", + "value": "YUCIHighPassSkinSmoothing::setDefaults" + }, + { + "address": "0x100046f4c", + "value": "YUCIHighPassSkinSmoothing::outputImage" + }, + { + "address": "0x1000492c4", + "value": "YUCIHighPassSkinSmoothing::dealloc" + }, + { + "address": "0x100049534", + "value": "YUCIHighPassSkinSmoothing::inputImage" + }, + { + "address": "0x100049544", + "value": "YUCIHighPassSkinSmoothing::setInputImage:" + }, + { + "address": "0x100049550", + "value": "YUCIHighPassSkinSmoothing::inputMaskImage" + }, + { + "address": "0x100049560", + "value": "YUCIHighPassSkinSmoothing::setInputMaskImage:" + }, + { + "address": "0x10004956c", + "value": "YUCIHighPassSkinSmoothing::inputPreviewMaskImage" + }, + { + "address": "0x10004957c", + "value": "YUCIHighPassSkinSmoothing::setInputPreviewMaskImage:" + }, + { + "address": "0x100049588", + "value": "YUCIHighPassSkinSmoothing::inputLocalSmoothingMaskImage" + }, + { + "address": "0x100049598", + "value": "YUCIHighPassSkinSmoothing::setInputLocalSmoothingMaskImage:" + }, + { + "address": "0x1000495a4", + "value": "YUCIHighPassSkinSmoothing::inputGlobalSmoothingMaskImage" + }, + { + "address": "0x1000495b4", + "value": "YUCIHighPassSkinSmoothing::setInputGlobalSmoothingMaskImage:" + }, + { + "address": "0x1000495c0", + "value": "YUCIHighPassSkinSmoothing::inputSkinEvenToneMaskImage" + }, + { + "address": "0x1000495d0", + "value": "YUCIHighPassSkinSmoothing::setInputSkinEvenToneMaskImage:" + }, + { + "address": "0x1000495dc", + "value": "YUCIHighPassSkinSmoothing::inputTeethMaskImage" + }, + { + "address": "0x1000495ec", + "value": "YUCIHighPassSkinSmoothing::setInputTeethMaskImage:" + }, + { + "address": "0x1000495f8", + "value": "YUCIHighPassSkinSmoothing::inputEyeMaskImage" + }, + { + "address": "0x100049608", + "value": "YUCIHighPassSkinSmoothing::setInputEyeMaskImage:" + }, + { + "address": "0x100049614", + "value": "YUCIHighPassSkinSmoothing::inputEyeMaskActiveExtentVector" + }, + { + "address": "0x100049624", + "value": "YUCIHighPassSkinSmoothing::setInputEyeMaskActiveExtentVector:" + }, + { + "address": "0x100049630", + "value": "YUCIHighPassSkinSmoothing::setInputAmount:" + }, + { + "address": "0x10004963c", + "value": "YUCIHighPassSkinSmoothing::setInputSkinTonePreset:" + }, + { + "address": "0x100049648", + "value": "YUCIHighPassSkinSmoothing::setInputSkinBrightness:" + }, + { + "address": "0x100049654", + "value": "YUCIHighPassSkinSmoothing::setInputSkinHue:" + }, + { + "address": "0x100049660", + "value": "YUCIHighPassSkinSmoothing::setInputSkinSaturation:" + }, + { + "address": "0x10004966c", + "value": "YUCIHighPassSkinSmoothing::setInputMidtoneDetail:" + }, + { + "address": "0x100049678", + "value": "YUCIHighPassSkinSmoothing::setInputHighPassDetail:" + }, + { + "address": "0x100049684", + "value": "YUCIHighPassSkinSmoothing::setInputTeethWhitening:" + }, + { + "address": "0x100049690", + "value": "YUCIHighPassSkinSmoothing::setInputEyeBrightening:" + }, + { + "address": "0x10004969c", + "value": "YUCIHighPassSkinSmoothing::setInputRadius:" + }, + { + "address": "0x1000496a8", + "value": "YUCIHighPassSkinSmoothing::setInputSharpnessFactor:" + }, + { + "address": "0x1000496b4", + "value": "YUCIHighPassSkinSmoothing::setInputMaskThreshold:" + }, + { + "address": "0x1000496c0", + "value": "YUCIHighPassSkinSmoothing::setInputMaskSoftness:" + }, + { + "address": "0x1000496cc", + "value": "YUCIHighPassSkinSmoothing::setInputMaskEdgeProtect:" + }, + { + "address": "0x1000496d8", + "value": "YUCIHighPassSkinSmoothing::setInputShowChannelInfo:" + }, + { + "address": "0x1000496e4", + "value": "YUCIHighPassSkinSmoothing::setInputDebugChannelMode:" + }, + { + "address": "0x1000496f0", + "value": "YUCIHighPassSkinSmoothing::inputInvertMaskChannel" + }, + { + "address": "0x100049700", + "value": "YUCIHighPassSkinSmoothing::setInputInvertMaskChannel:" + }, + { + "address": "0x10007a040", + "value": "/usr/lib/swift/libswiftFoundation.dylib::Foundation::Data::LargeSlice::ensureUniqueReference" + }, + { + "address": "0x10007a064", + "value": "/usr/lib/swift/libswiftFoundation.dylib::Foundation::Data::RangeReference::typeMetadataAccessor" + }, + { + "address": "0x10007b1e0", + "value": "_swift_isUniquelyReferenced_nonNull_native" + }, + { + "address": "0x10007cc00", + "value": "objc_stub::applySkinSmoothingToImage:params:renderTime:faceObservations:selectedFacePoints:featureReferenceExtent:externalMaskImage:externalPreviewMaskImage:externalRawPreviewSmallMaskImage:" + }, + { + "address": "0x10007d060", + "value": "objc_stub::cachedFaceObservationsForInputImage:inputSurface:sourceTileRect:renderTime:allowForwardReuse:" + }, + { + "address": "0x10007f480", + "value": "objc_stub::inputLocalSmoothingMaskImage" + }, + { + "address": "0x10007fd60", + "value": "objc_stub::mss_clearRewindFaceReferences" + }, + { + "address": "0x10007fdc0", + "value": "objc_stub::mss_lockedStoreCachedFaceObservations:inputImage:sourceTileRect:renderTime:" + }, + { + "address": "0x10007fde0", + "value": "objc_stub::mss_lockedStoreCachedFaceRectangleObservations:inputImage:sourceTileRect:renderTime:" + }, + { + "address": "0x10007ff40", + "value": "objc_stub::mss_rewindFaceReferenceForRenderTime:allowCurrentTime:pointsOut:boxOut:timeOut:" + }, + { + "address": "0x100080000", + "value": "objc_stub::mss_storeRewindFaceReferencePoints:forBox:renderTime:" + }, + { + "address": "0x100080040", + "value": "objc_stub::mss_timeLocalFaceReferenceForRenderTime:allowCurrentTime:pointsOut:boxOut:detectionTimeOut:outputTimeOut:usedHistoryOut:" + }, + { + "address": "0x1000806a0", + "value": "objc_stub::playbackStabilizedMaskImageFromInputImage:params:renderTime:trackingGrayBytes:trackingGrayWidth:trackingGrayHeight:trackingAlphaBytes:trackingAlphaWidth:trackingAlphaHeight:previewMaskImage:rawPreviewSmallMaskImage:maskImage:smoothCarrierImageOut:" + }, + { + "address": "0x100081ee0", + "value": "objc_stub::setInputGlobalSmoothingMaskImage:" + }, + { + "address": "0x100081fa0", + "value": "objc_stub::setInputLocalSmoothingMaskImage:" + } + ], + "subject": { + "architecture": "arm64", + "digest": { + "sha256": "afc71d0d21fd3c1ca95ca745ddafcd729e36ad95f17d8638009f2e45d9b7e8df" + }, + "format": "mach-o", + "local_path": "/Users/dayu/Documents/PaintFCP/build/body-analysis/MSE18V2-arm64", + "name": "MSE18V2-arm64" + } + }, + { + "analysis_profile": { + "digest": "20565088524a2d0359b9b96f46ac48e679d774c7b0092c56abc06de8fdbec11c", + "parameters": { + "analyzer_preset": "ghidra-default", + "annotation_policy": "atomic-function-entry-metadata-v1", + "architecture": "arm64", + "available_architectures": [ + "arm64" + ], + "compiler_spec_id": "auto-default", + "decompiler_jump_loads": true, + "function_body_evidence": "complete-inclusive-ranges-v1", + "function_boundary_observations": "ghidra-terminal-call-limitations-v1", + "function_references": "complete-body-and-entry-reference-manager-v2", + "import_mode": "ephemeral-source-immutable", + "instruction_flow_evidence": "decoded-return-pcode-v1", + "jump_table_evidence": "typed-case-default-blocks-v1", + "language_id": "auto-from-header", + "load_image_observations": "source-mappings-entry-context-v2", + "loader": "auto-from-header", + "location_resolution": "explicit-address-exact-entry-symbol-first-v3", + "no_return_repair": "returning-imports-decoded-return-v2", + "process_launch": "inspected-jvm-launch-support-v1", + "string_inventory_evidence": "defined-data-coverage-v1", + "target_format": "mach-o", + "target_kind": "executable" + }, + "provider": { + "id": "ghidra", + "name": "Ghidra", + "version": "12.1.4" + } + }, + "authority": "shipped-artifact", + "confidence": "observed", + "environment": null, + "evidence_id": "ev_1b11aad10362337bc3c3559b4205baaa48c026a5234f67ae29d3f1fde604b393", + "evidence_links": [], + "limitations": [ + "The session serves operations only after Ghidra reports default auto-analysis complete; incomplete analysis does not expose partial results.", + "The imported Program and temporary project are ephemeral and deleted on close. Annotation operations edit session database metadata; original executable bytes are never written.", + "Cancelling an active Ghidra request terminates its ephemeral database and discards session annotations. The selected target remains open; the next provider query imports the original artifact again.", + "Default-space addresses use lowercase 0x-prefixed hexadecimal; other address spaces use :0x.", + "Bytes reflect Ghidra's initialized memory, including loader fixups. Reads stop at an unmapped or uninitialized byte and report completeness explicitly.", + "macOS sessions require a matching executable Ghidra native decompiler; REA checks for it but does not build native components or change Gatekeeper quarantine state." + ], + "locations": [], + "normalized_result": { + "address": "0x1000a8f58", + "bytes_hex": "004e0e000100000000000050000000005847050001000000a8840a0001000000", + "complete": true, + "requested_bytes": 32, + "returned_bytes": 32 + }, + "operation": "read_bytes", + "parameters": { + "address": "0x1000a8f58", + "length": 32 + }, + "predicate_type": "rea.analysis", + "provider": { + "id": "ghidra", + "name": "Ghidra", + "version": "12.1.4" + }, + "raw_result": { + "address": "0x1000a8f58", + "bytes_hex": "004e0e000100000000000050000000005847050001000000a8840a0001000000", + "complete": true, + "requested_bytes": 32, + "returned_bytes": 32 + }, + "subject": { + "architecture": "arm64", + "digest": { + "sha256": "afc71d0d21fd3c1ca95ca745ddafcd729e36ad95f17d8638009f2e45d9b7e8df" + }, + "format": "mach-o", + "local_path": "/Users/dayu/Documents/PaintFCP/build/body-analysis/MSE18V2-arm64", + "name": "MSE18V2-arm64" + } + }, + { + "analysis_profile": { + "digest": "20565088524a2d0359b9b96f46ac48e679d774c7b0092c56abc06de8fdbec11c", + "parameters": { + "analyzer_preset": "ghidra-default", + "annotation_policy": "atomic-function-entry-metadata-v1", + "architecture": "arm64", + "available_architectures": [ + "arm64" + ], + "compiler_spec_id": "auto-default", + "decompiler_jump_loads": true, + "function_body_evidence": "complete-inclusive-ranges-v1", + "function_boundary_observations": "ghidra-terminal-call-limitations-v1", + "function_references": "complete-body-and-entry-reference-manager-v2", + "import_mode": "ephemeral-source-immutable", + "instruction_flow_evidence": "decoded-return-pcode-v1", + "jump_table_evidence": "typed-case-default-blocks-v1", + "language_id": "auto-from-header", + "load_image_observations": "source-mappings-entry-context-v2", + "loader": "auto-from-header", + "location_resolution": "explicit-address-exact-entry-symbol-first-v3", + "no_return_repair": "returning-imports-decoded-return-v2", + "process_launch": "inspected-jvm-launch-support-v1", + "string_inventory_evidence": "defined-data-coverage-v1", + "target_format": "mach-o", + "target_kind": "executable" + }, + "provider": { + "id": "ghidra", + "name": "Ghidra", + "version": "12.1.4" + } + }, + "authority": "shipped-artifact", + "confidence": "observed", + "environment": null, + "evidence_id": "ev_2330b66132cd6539b8c66313c8dc43ca6ff5eb3e0881abbbe26857f99de6a83b", + "evidence_links": [], + "limitations": [ + "The session serves operations only after Ghidra reports default auto-analysis complete; incomplete analysis does not expose partial results.", + "The imported Program and temporary project are ephemeral and deleted on close. Annotation operations edit session database metadata; original executable bytes are never written.", + "Cancelling an active Ghidra request terminates its ephemeral database and discards session annotations. The selected target remains open; the next provider query imports the original artifact again.", + "Default-space addresses use lowercase 0x-prefixed hexadecimal; other address spaces use :0x.", + "Pseudocode is Ghidra decompiler output, not original source and not text-equivalent to Hopper output.", + "External functions and functions without an analyzable body return null; other decompiler failures remain explicit.", + "Ghidra Listing reports a terminal call at 0x100028c6c to 0x10007aca0 ___stack_chk_fail (external=false, thunk=true, hasNoReturn=true); fallthrough is excluded by Ghidra's flow model. This records Ghidra's FunctionManager flag, not an independent verification that the callee cannot return.", + "macOS sessions require a matching executable Ghidra native decompiler; REA checks for it but does not build native components or change Gatekeeper quarantine state." + ], + "locations": [], + "normalized_result": "\n/* WARNING: Function: _objc_release replaced with injection: _objc_release_fixup */\n/* WARNING: Function: _objc_retain replaced with injection: _objc_retain_fixup */\n/* WARNING: Function: _objc_autorelease replaced with injection: _objc_retain_fixup */\n/* Function Stack Size: 0x48 bytes */\n\nbool MSSuperSkinSmoothingPlugIn::renderDestinationImage_sourceImages_pluginState_atTime_error_\n (ID param_1,SEL param_2,ID param_3,ID param_4,ID param_5,AnonymousStructure0 param_6,\n ID *param_7)\n\n{\n unsigned_long_long uVar1;\n bool bVar2;\n bool bVar3;\n uint uVar4;\n __IOSurface *p_Var5;\n uint uVar6;\n CGRect CVar7;\n byte bVar8;\n char cVar9;\n bool bVar10;\n bool bVar11;\n int iVar12;\n uint uVar13;\n int iVar14;\n int iVar15;\n ID IVar16;\n ID IVar17;\n ID IVar18;\n ID IVar19;\n ID IVar20;\n ID IVar21;\n ID IVar22;\n undefined1 *puVar23;\n ID IVar24;\n ID IVar25;\n ID IVar26;\n __IOSurface *p_Var27;\n undefined8 *puVar28;\n ulong uVar29;\n cfstringStruct *pcVar30;\n byte *pbVar31;\n undefined *puVar32;\n undefined *puVar33;\n ID IVar34;\n ID IVar35;\n undefined8 *puVar36;\n undefined8 *puVar37;\n ID IVar38;\n undefined *puVar39;\n undefined8 *puVar40;\n undefined8 *puVar41;\n undefined8 extraout_x1;\n undefined8 extraout_x1_00;\n undefined8 extraout_x1_01;\n undefined8 extraout_x1_02;\n double *pdVar42;\n ID *pIVar43;\n uint uVar44;\n uint uVar45;\n uint uVar46;\n uint uVar47;\n undefined4 uVar48;\n long *plVar49;\n ulong uVar50;\n undefined8 *puVar51;\n undefined8 *puVar52;\n uint uVar53;\n long lVar54;\n double dVar55;\n ID IVar56;\n undefined8 *puVar57;\n undefined *puVar58;\n uint uVar59;\n long lVar60;\n byte bVar61;\n float fVar62;\n double extraout_d0;\n double extraout_d0_00;\n double extraout_d0_01;\n double extraout_d0_02;\n double extraout_d0_03;\n double extraout_d0_04;\n double dVar63;\n double dVar64;\n double dVar65;\n double extraout_d0_05;\n double extraout_d0_06;\n double extraout_d0_07;\n double extraout_d0_08;\n double extraout_d0_09;\n double dVar66;\n undefined8 extraout_d0_10;\n double extraout_d0_11;\n double extraout_d0_12;\n ulong extraout_d0_13;\n ulong extraout_d0_14;\n double extraout_d0_15;\n double extraout_d0_16;\n double extraout_d0_17;\n double extraout_d0_18;\n double extraout_d0_19;\n double extraout_d0_20;\n double extraout_d0_21;\n double extraout_d0_22;\n double dVar67;\n double dVar68;\n double dVar69;\n double extraout_d0_23;\n undefined8 extraout_d0_24;\n undefined8 uVar70;\n undefined8 uVar71;\n undefined8 uVar72;\n double extraout_d0_25;\n double extraout_d0_26;\n double extraout_d0_27;\n double dVar73;\n double dVar74;\n double dVar75;\n double dVar76;\n double dVar77;\n double dVar78;\n double dVar79;\n double dVar80;\n double dVar81;\n double dVar82;\n double dVar83;\n double dVar84;\n double dVar85;\n double dVar86;\n double dVar87;\n double dVar88;\n double dVar89;\n double dVar90;\n double dVar91;\n double dVar92;\n double dVar93;\n double dVar94;\n long *plVar95;\n double dVar96;\n double dVar97;\n double dVar98;\n double dVar99;\n CGRect CVar100;\n CGRect CVar101;\n CGRect CVar102;\n CGRect CVar103;\n CGRect CVar104;\n undefined4 uVar105;\n ID local_9d8;\n undefined8 local_9d0;\n undefined8 local_9c0;\n ID local_9b0;\n double local_9a8;\n double dStack_9a0;\n double local_998;\n double dStack_990;\n double local_988;\n double dStack_980;\n double local_978;\n double dStack_970;\n double local_8f8;\n ID local_8e0;\n ID local_8d8;\n uint local_8cc;\n double local_8c8;\n double dStack_8c0;\n double local_8b8;\n double dStack_8b0;\n ID local_8a0;\n uint local_894;\n undefined *local_890;\n ID local_888;\n ID local_880;\n double local_838;\n double local_830;\n double local_820;\n double local_808;\n ID local_7f8;\n ID local_7e8;\n ID local_7d8;\n double local_7d0;\n double local_7c8;\n double local_7c0;\n double local_7b8;\n ID local_7b0;\n double local_7a8;\n double local_7a0;\n double local_798;\n double local_790;\n ID local_788;\n ID local_780;\n ID local_768;\n double local_730;\n double local_708;\n double local_700;\n double local_6f8;\n undefined8 local_6e0;\n long lStack_6d8;\n long *local_6d0;\n undefined8 uStack_6c8;\n undefined8 local_6c0;\n undefined8 uStack_6b8;\n undefined8 uStack_6b0;\n undefined8 uStack_6a8;\n double local_6a0;\n double dStack_698;\n long *local_690;\n ID local_680;\n ID local_678;\n undefined8 local_670;\n undefined8 local_668;\n double local_660;\n double dStack_658;\n long *local_650;\n double dStack_648;\n double local_640;\n ulong local_638;\n undefined8 local_630;\n long lStack_628;\n long *local_620;\n undefined8 uStack_618;\n undefined8 local_610;\n undefined8 uStack_608;\n undefined8 local_600;\n undefined8 uStack_5f8;\n undefined8 local_5f0;\n long lStack_5e8;\n long *local_5e0;\n undefined8 uStack_5d8;\n undefined8 local_5d0;\n undefined8 uStack_5c8;\n undefined8 local_5c0;\n undefined8 uStack_5b8;\n undefined8 local_5b0;\n long lStack_5a8;\n long *local_5a0;\n undefined8 uStack_598;\n undefined8 local_590;\n undefined8 uStack_588;\n undefined8 local_580;\n undefined8 uStack_578;\n byte local_561;\n CGRect local_560;\n double local_538;\n ID local_530;\n AnonymousStructure7 AStack_528;\n byte local_3b8;\n byte local_3b7;\n byte local_3b6;\n undefined1 auStack_3b0 [128];\n undefined1 auStack_330 [128];\n undefined1 auStack_2b0 [128];\n undefined1 auStack_230 [128];\n undefined8 local_1b0;\n ID local_1a8;\n undefined8 local_1a0;\n ID local_198;\n undefined8 local_190;\n ID local_188;\n undefined1 local_180 [16];\n long *local_170;\n double dStack_168;\n double local_160;\n double dStack_158;\n double local_100;\n double dStack_f8;\n long *local_f0;\n double dStack_e8;\n double local_e0;\n double dStack_d8;\n undefined8 uStack_d0;\n undefined8 uStack_c8;\n long local_b8;\n \n pIVar43 = param_6._8_8_;\n pdVar42 = (double *)param_6.field0_0x0;\n local_b8 = *(long *)PTR____stack_chk_guard_1000a80e8;\n uVar1 = DAT_1000bdd88 + 1;\n DAT_1000bdd88 = uVar1;\n objc_stub::count(param_4);\n objc_stub::length(param_5);\n objc_stub::count(param_4);\n objc_stub::length(param_5);\n objc_stub::count(param_4);\n objc_stub::length(param_5);\n IVar16 = objc_stub::count(param_4);\n if (IVar16 == 0) {\n if (pIVar43 != (ID *)0x0) {\n pcVar30 = &cf_Nosourceimageprovided;\n FUN_10001fb70();\n *pIVar43 = (ID)pcVar30;\n }\n objc_stub::length(0x1000ac540);\n }\n else {\n local_180._8_8_ = pdVar42[1];\n local_180._0_8_ = *pdVar42;\n local_170 = (long *)pdVar42[2];\n bVar11 = populateParams_atTime_error_\n (param_1,&AStack_528,(AnonymousStructure0 *)local_180,pIVar43);\n if ((bVar11 & 1) == 0) {\n IVar16 = param_5;\n FUN_10002140c(param_5,&AStack_528);\n if ((int)IVar16 == 0) {\n objc_stub::length(param_5);\n objc_stub::length(0x1000ac540);\n goto LAB_1000283fc;\n }\n IVar16 = objc_stub::apiForProtocol_\n (*(ID *)(param_1 + 8),&objc::protocol_t::FxParameterRetrievalAPI_v6);\n local_180._8_8_ = pdVar42[1];\n local_180._0_8_ = *pdVar42;\n local_170 = (long *)pdVar42[2];\n IVar17 = controlPanelValueForPluginAtTime_(param_1,(AnonymousStructure0 *)local_180);\n if (IVar17 == 0) {\nLAB_100021a54:\n local_180._8_8_ = pdVar42[1];\n local_180._0_8_ = *pdVar42;\n local_170 = (long *)pdVar42[2];\n dVar97 = *(double *)(PTR__kCMTimeZero_1000a8218 + 8);\n dVar96 = *(double *)PTR__kCMTimeZero_1000a8218;\n plVar95 = *(long **)(PTR__kCMTimeZero_1000a8218 + 0x10);\n puVar23 = local_180;\n local_100 = dVar96;\n dStack_f8 = dVar97;\n local_f0 = plVar95;\n _CMTimeCompare(puVar23,&local_100);\n if ((int)puVar23 != 0) {\n local_180._0_8_ = dVar96;\n local_180._8_8_ = dVar97;\n local_170 = plVar95;\n IVar17 = controlPanelValueForPluginAtTime_(param_1,(AnonymousStructure0 *)local_180);\n }\n if (IVar17 != 0) goto LAB_100021ab4;\nLAB_100021adc:\n local_180._8_8_ = pdVar42[1];\n local_180._0_8_ = *pdVar42;\n local_170 = (long *)pdVar42[2];\n mss_applyLivePanelStateToParams_atTime_\n (param_1,&AStack_528,(AnonymousStructure0 *)local_180);\n local_180._8_8_ = pdVar42[1];\n local_180._0_8_ = *pdVar42;\n local_170 = (long *)pdVar42[2];\n FUN_100028e74(IVar16,&AStack_528,local_180);\n if ((local_3b6 & 1) == 0) {\n iVar14 = (int)&AStack_528;\n FUN_10002951c();\n if (iVar14 != 0) {\n local_3b6 = 1;\n }\n }\n }\n else {\n IVar18 = objc_stub::hasCommittedState(IVar17);\n if ((IVar18 & 1) == 0) {\n MSSSectionCardParameterValue::defaultValue\n ((ID)&objc::class_t::MSSSectionCardParameterValue);\n IVar18 = IVar17;\n func_0x000100085c38();\n if ((int)IVar18 != 0) goto LAB_100021a54;\n }\nLAB_100021ab4:\n IVar18 = objc_stub::hasCommittedState(IVar17);\n if ((IVar18 & 1) == 0) {\n MSSSectionCardParameterValue::defaultValue\n ((ID)&objc::class_t::MSSSectionCardParameterValue);\n IVar18 = IVar17;\n func_0x000100085c38();\n if ((int)IVar18 != 0) goto LAB_100021adc;\n }\n local_180._8_8_ = pdVar42[1];\n local_180._0_8_ = *pdVar42;\n local_170 = (long *)pdVar42[2];\n mss_applyLivePanelStateToParams_atTime_\n (param_1,&AStack_528,(AnonymousStructure0 *)local_180);\n FUN_100028cdc(&AStack_528,IVar17);\n }\n if ((local_3b8 & 1) == 0) {\n AStack_528.field1_0x8 = 0.0;\n AStack_528.field7_0x38 = 0.0;\n AStack_528.field8_0x40._0_1_ = '\\0';\n AStack_528._80_8_ = 0;\n AStack_528._72_8_ = 0x3ff0000000000000;\n AStack_528._192_8_ = 0.0;\n }\n if ((local_3b7 & 1) == 0) {\n AStack_528.field3_0x18 = 0.0;\n AStack_528.field2_0x10 = 0.0;\n AStack_528.field5_0x28 = 0;\n AStack_528.field4_0x20 = 0.0;\n AStack_528._96_8_ = 0;\n AStack_528.field6_0x30 = 0.0;\n AStack_528._88_8_ = 0.0;\n }\n if ((local_3b6 & 1) == 0) {\n AStack_528._176_8_ = 0;\n AStack_528._168_8_ = 0.0;\n AStack_528._160_8_ = 0.0;\n AStack_528._152_8_ = 0.0;\n AStack_528._144_8_ = 0.0;\n AStack_528._136_8_ = 0.0;\n AStack_528._128_8_ = 0.0;\n AStack_528._120_8_ = 0.0;\n AStack_528._112_8_ = 0.0;\n AStack_528._104_8_ = 0.0;\n }\n }\n IVar16 = objc_stub::objectAtIndex_(param_4,0);\n local_790 = (double)objc_stub::colorSpace(IVar16);\n if ((local_790 == 0.0) && (local_790 = (double)objc_stub::colorSpace(param_3), local_790 == 0.0)\n ) {\n if (DAT_1000bdf18 != -1) {\n FUN_100079628();\n }\n local_790 = (double)DAT_1000bdf10;\n }\n local_888 = objc_stub::colorSpace(param_3);\n if ((local_888 == 0) && (local_888 = (ID)local_790, local_790 == 0.0)) {\n if (DAT_1000bdf18 != -1) {\n FUN_100079628();\n }\n local_888 = DAT_1000bdf10;\n }\n IVar17 = objc_stub::tilePixelBounds(param_3);\n IVar18 = objc_stub::imagePixelBounds(IVar16);\n IVar19 = objc_stub::tilePixelBounds(IVar16);\n IVar20 = objc_stub::imagePixelBounds(param_3);\n IVar21 = objc_stub::inversePixelTransform(IVar16);\n IVar22 = objc_stub::pixelTransform(param_3);\n dVar96 = *(double *)PTR__CGPointZero_1000a8140;\n dVar97 = *(double *)(PTR__CGPointZero_1000a8140 + 8);\n if (IVar21 == 0) {\n dVar92 = 1.0;\n dVar73 = 0.0;\n dVar94 = 0.0;\n dVar74 = 1.0;\n }\n else {\n objc_stub::transform2DPoint_(IVar21,dVar96);\n dVar73 = 0.0;\n objc_stub::transform2DPoint_(IVar21,0x3ff0000000000000);\n dVar74 = 1.0;\n objc_stub::transform2DPoint_(IVar21,0);\n dVar96 = extraout_d0;\n dVar92 = extraout_d0_00;\n dVar94 = extraout_d0_01;\n }\n if (IVar22 != 0) {\n objc_stub::transform2DPoint_(IVar22,dVar96);\n objc_stub::transform2DPoint_(IVar22,dVar92);\n objc_stub::transform2DPoint_(IVar22,dVar94);\n dVar92 = extraout_d0_03;\n dVar94 = extraout_d0_04;\n dVar96 = extraout_d0_02;\n }\n if (((((ulong)ABS(dVar96) < 0x7ff0000000000000) && ((ulong)ABS(dVar97) < 0x7ff0000000000000)) &&\n ((ulong)ABS(dVar92) < 0x7ff0000000000000)) &&\n ((((ulong)ABS(dVar73) < 0x7ff0000000000000 && ((ulong)ABS(dVar94) < 0x7ff0000000000000)) &&\n ((ulong)ABS(dVar74) < 0x7ff0000000000000)))) {\n dVar92 = dVar92 - dVar96;\n dVar73 = dVar73 - dVar97;\n plVar95 = (long *)(dVar94 - dVar96);\n dVar74 = dVar74 - dVar97;\n }\n else {\n dVar92 = *(double *)PTR__CGAffineTransformIdentity_1000a8138;\n dVar73 = *(double *)(PTR__CGAffineTransformIdentity_1000a8138 + 8);\n plVar95 = *(long **)(PTR__CGAffineTransformIdentity_1000a8138 + 0x10);\n dVar74 = *(double *)(PTR__CGAffineTransformIdentity_1000a8138 + 0x18);\n dVar96 = *(double *)(PTR__CGAffineTransformIdentity_1000a8138 + 0x20);\n dVar97 = *(double *)(PTR__CGAffineTransformIdentity_1000a8138 + 0x28);\n }\n iVar14 = (int)local_180;\n local_180._0_8_ = dVar92;\n local_180._8_8_ = dVar73;\n local_170 = plVar95;\n dStack_168 = dVar74;\n local_160 = dVar96;\n dStack_158 = dVar97;\n FUN_1000295e4();\n if (iVar14 == 0) {\n bVar8 = 0;\n }\n else {\n bVar10 = false;\n if (((ABS(dVar92 + -1.0) < 0.0001) && (ABS(dVar73) < 0.0001)) &&\n ((ABS((double)plVar95) < 0.0001 &&\n ((bVar10 = false, ABS(dVar74 + -1.0) < 0.0001 && (ABS(dVar96) < 0.0001)))))) {\n bVar10 = ABS(dVar97) < 0.0001;\n }\n bVar8 = bVar10 ^ 1;\n }\n IVar21 = FxMTLDeviceCache::deviceCache((ID)&objc::class_t::FxMTLDeviceCache);\n IVar22 = objc_stub::deviceRegistryID(param_3);\n IVar22 = FxMTLDeviceCache::deviceWithRegistryID_(IVar21,IVar22);\n if (IVar22 == 0) {\n local_7d8 = 0;\n local_788 = 0;\n }\n else {\n local_7d8 = objc_stub::metalTextureForDevice_(IVar16);\n local_788 = objc_stub::metalTextureForDevice_(param_3,IVar22);\n }\n objc_stub::name(IVar22);\n objc_stub::ioSurface(param_3);\n FUN_100019774();\n iVar14 = (int)&AStack_528;\n FUN_10002156c();\n if ((local_3b6 == 1) && (FUN_1000500b0(), iVar14 != 0)) {\n if ((((2.220446049250313e-16 < ABS((double)AStack_528._104_8_)) ||\n (2.220446049250313e-16 < ABS((double)AStack_528._112_8_))) ||\n (2.220446049250313e-16 < ABS((double)AStack_528._120_8_))) ||\n (((2.220446049250313e-16 < ABS((double)AStack_528._128_8_) ||\n (2.220446049250313e-16 < ABS((double)AStack_528._136_8_))) ||\n ((2.220446049250313e-16 < ABS((double)AStack_528._144_8_) ||\n ((2.220446049250313e-16 < ABS((double)AStack_528._152_8_) ||\n (2.220446049250313e-16 < ABS((double)AStack_528._160_8_))))))))) {\n uVar46 = 1;\n }\n else {\n uVar46 = (uint)(2.220446049250313e-16 < ABS((double)AStack_528._168_8_));\n }\n }\n else {\n uVar46 = 0;\n }\n IVar24 = NSUserDefaults::standardUserDefaults((ID)&_OBJC_CLASS___NSUserDefaults);\n IVar25 = NSUserDefaults::objectForKey_(IVar24,&cf_MSE18GlobalFaceBoxPreviewEnabled);\n if (IVar25 == 0) {\n local_894 = 0;\n }\n else {\n IVar24 = NSUserDefaults::boolForKey_(IVar24,&cf_MSE18GlobalFaceBoxPreviewEnabled);\n local_894 = (uint)IVar24;\n }\n IVar24 = NSUserDefaults::standardUserDefaults((ID)&_OBJC_CLASS___NSUserDefaults);\n IVar25 = NSUserDefaults::objectForKey_(IVar24,&cf_MSE18GlobalFacePointPreviewEnabled);\n if (IVar25 == 0) {\n local_8cc = 0;\n }\n else {\n IVar24 = NSUserDefaults::boolForKey_(IVar24,&cf_MSE18GlobalFacePointPreviewEnabled);\n local_8cc = (uint)IVar24;\n }\n if (((double)AStack_528._200_8_ <= 2.220446049250313e-16) ||\n ((char)AStack_528.field8_0x40 != '\\x01')) {\n uVar44 = 0;\n }\n else if (AStack_528.field7_0x38 <= 2.220446049250313e-16) {\n uVar44 = (uint)(2.220446049250313e-16 < (double)AStack_528._192_8_);\n }\n else {\n uVar44 = 1;\n }\n uVar45 = 0;\n if (2.220446049250313e-16 < (double)AStack_528._88_8_) {\n uVar45 = (uint)(2.220446049250313e-16 < (double)AStack_528._200_8_);\n }\n IVar25 = NSUserDefaults::standardUserDefaults((ID)&_OBJC_CLASS___NSUserDefaults);\n IVar26 = NSUserDefaults::objectForKey_(IVar25,&cf_MSE18GlobalFaceBoxPreviewEnabled);\n IVar24 = 0;\n if (IVar26 != 0) {\n IVar24 = NSUserDefaults::boolForKey_(IVar25,&cf_MSE18GlobalFaceBoxPreviewEnabled);\n }\n iVar14 = (int)extraout_x1_01 - (int)IVar19;\n iVar12 = (int)(IVar19 >> 0x20);\n iVar15 = (int)((ulong)extraout_x1_01 >> 0x20) - iVar12;\n CVar102.field0_0x0.field0_0x0 = (double)(int)IVar19;\n CVar102.field0_0x0.field1_0x8 = (double)iVar12;\n CVar102.field1_0x10.field0_0x0 = (double)iVar14;\n CVar102.field1_0x10.field1_0x8 = (double)iVar15;\n dVar66 = CVar102.field1_0x10.field0_0x0;\n dVar79 = CVar102.field1_0x10.field1_0x8;\n FUN_100021624();\n iVar12 = (int)(IVar18 >> 0x20);\n CVar100.field0_0x0.field0_0x0 = (double)(int)IVar18;\n dVar63 = (double)iVar12;\n dVar64 = (double)((int)extraout_x1_00 - (int)IVar18);\n dVar65 = (double)((int)((ulong)extraout_x1_00 >> 0x20) - iVar12);\n iVar12 = (int)IVar24;\n dVar94 = CVar102.field1_0x10.field0_0x0;\n local_8c8 = CVar102.field1_0x10.field1_0x8;\n dStack_8c0 = CVar102.field1_0x10.field0_0x0;\n local_8b8 = CVar102.field0_0x0.field1_0x8;\n dStack_8b0 = CVar102.field0_0x0.field0_0x0;\n if (((IVar24 & 1) == 0) &&\n (dVar79 = CVar102.field1_0x10.field1_0x8,\n FUN_100021624(CVar102.field0_0x0.field0_0x0,CVar102.field0_0x0.field1_0x8,\n CVar102.field1_0x10.field0_0x0), dVar94 = CVar102.field1_0x10.field1_0x8,\n dVar66 = CVar102.field1_0x10.field0_0x0, local_8c8 = CVar102.field1_0x10.field1_0x8,\n dStack_8c0 = CVar102.field1_0x10.field0_0x0, local_8b8 = CVar102.field0_0x0.field1_0x8,\n iVar12 == 0)) {\n dVar66 = dVar64;\n local_8c8 = dVar65;\n dStack_8c0 = dVar64;\n local_8b8 = dVar63;\n dStack_8b0 = CVar100.field0_0x0.field0_0x0;\n }\n p_Var27 = (__IOSurface *)objc_stub::ioSurface(IVar16);\n puVar28 = (undefined8 *)objc_stub::ioSurface(param_3);\n if (local_7d8 == 0) {\n local_768 = 0;\nLAB_10002218c:\n if (p_Var27 != (__IOSurface *)0x0) {\n _IOSurfaceLock(p_Var27,1,0);\n local_1a0 = *(undefined8 *)PTR__kCIImageColorSpace_1000a81c8;\n local_198 = (ID)local_790;\n IVar18 = NSDictionary::dictionaryWithObjects_forKeys_count_\n ((ID)&_OBJC_CLASS___NSDictionary,&local_198,&local_1a0,1);\n local_768 = CIImage::imageWithIOSurface_options_((ID)&_OBJC_CLASS___CIImage,p_Var27,IVar18);\n _IOSurfaceUnlock(p_Var27,1,0);\n }\n }\n else {\n local_190 = *(undefined8 *)PTR__kCIImageColorSpace_1000a81c8;\n local_188 = (ID)local_790;\n IVar18 = NSDictionary::dictionaryWithObjects_forKeys_count_\n ((ID)&_OBJC_CLASS___NSDictionary,&local_188,&local_190,1);\n local_768 = CIImage::imageWithMTLTexture_options_((ID)&_OBJC_CLASS___CIImage,local_7d8,IVar18)\n ;\n if (local_768 == 0) goto LAB_10002218c;\n }\n if (local_768 == 0) {\n if (pIVar43 != (ID *)0x0) {\n pcVar30 = &cf_UnabletowrapsourceIOSurfaceasCIImage;\n FUN_10001fb70();\n *pIVar43 = (ID)pcVar30;\n }\n objc_stub::length(0x1000ac540);\n }\n else {\n uVar29 = CIImage::extent(local_768);\n local_7c0 = extraout_d0_05;\n _CGRectGetWidth(extraout_d0_05,dVar94,dVar66,dVar79);\n local_7b8 = extraout_d0_05;\n _CGRectGetHeight(extraout_d0_05,dVar94,dVar66,dVar79);\n dVar93 = 0.0;\n dVar86 = local_7c0;\n dVar75 = local_7b8;\n FUN_100021624(0,0);\n dVar99 = 0.0;\n if ((uVar29 & 1) == 0) {\n dVar93 = extraout_d0_05;\n dVar99 = dVar94;\n local_7c0 = dVar66;\n local_7b8 = dVar79;\n }\n IVar18 = CIImage::extent(local_768);\n uVar13 = (uint)IVar18;\n _CGRectIsEmpty();\n if (dVar86 <= 0.0) {\n uVar13 = 1;\n }\n IVar18 = local_768;\n if (((uVar13 & 1) == 0) && (0.0 < dVar75)) {\n IVar19 = local_768;\n _CGRectIsEmpty(dVar93,dVar99,local_7c0,local_7b8);\n uVar13 = (uint)IVar19;\n if (local_7c0 <= 0.0) {\n uVar13 = 1;\n }\n if (((uVar13 & 1) == 0) && (0.0 < local_7b8)) {\n _CGRectIsEmpty(dVar93,dVar99,local_7c0,local_7b8);\n dVar75 = local_7b8 / dVar75;\n dVar81 = -1.0;\n dVar86 = ABS(local_7c0 / dVar86 + -1.0);\n if (0.0001 < dVar86) {\nLAB_100022334:\n _CGAffineTransformMakeScale(local_180);\n IVar18 = CIImage::imageByApplyingTransform_(local_768,local_180);\n }\n else {\n dVar81 = ABS(dVar75 + -1.0);\n dVar86 = 0.0001;\n if (0.0001 < dVar81) goto LAB_100022334;\n }\n CIImage::extent(IVar18);\n dVar77 = extraout_d0_06;\n _CGRectGetMinX();\n dVar98 = extraout_d0_06;\n _CGRectGetMinY(extraout_d0_06,dVar75,dVar81,dVar86);\n if ((0.0001 < ABS(dVar93 - dVar77)) || (0.0001 < ABS(dVar99 - dVar98))) {\n _CGAffineTransformMakeTranslation(local_180,dVar93 - dVar77,dVar99 - dVar98);\n IVar18 = CIImage::imageByApplyingTransform_(IVar18,local_180);\n }\n IVar19 = CIColor::colorWithRed_green_blue_alpha_((ID)&_OBJC_CLASS___CIColor,0,0,0,0);\n IVar19 = CIImage::imageWithColor_((ID)&_OBJC_CLASS___CIImage,IVar19);\n IVar19 = CIImage::imageByCroppingToRect_(IVar19,dVar93,dVar99,local_7c0,local_7b8);\n IVar18 = CIImage::imageByCompositingOverImage_(IVar18,IVar19);\n IVar18 = CIImage::imageByCroppingToRect_(IVar18,dVar93,dVar99,local_7c0,local_7b8);\n }\n }\n FUN_100029674(dVar93);\n IVar19 = local_768;\n if (IVar18 != 0) {\n IVar19 = IVar18;\n }\n objc_stub::extent(IVar19);\n dVar86 = dVar99;\n dVar75 = local_7c0;\n dVar81 = local_7b8;\n IVar18 = objc_stub::extent(IVar19);\n iVar12 = (int)IVar18;\n dVar93 = dVar75;\n dVar77 = dVar81;\n FUN_100021624();\n dVar98 = 1.0;\n local_7c8 = extraout_d0_07;\n if (iVar12 == 0) {\n pcVar30 = &cf_vision_analysis_downsample_skipped_invalid_extent;\n }\n else {\n dVar82 = extraout_d0_08;\n _CGRectGetWidth(extraout_d0_08,dVar86,dVar75,dVar81);\n dVar76 = extraout_d0_08;\n dVar93 = dVar75;\n dVar77 = dVar81;\n _CGRectGetHeight(extraout_d0_08,dVar86);\n if (dVar76 <= dVar82) {\n dVar76 = dVar82;\n }\n if (DAT_1000bdf38 != -1) {\n FUN_10007964c();\n }\n if (dVar76 <= DAT_1000bdf30 + 0.5) {\n pcVar30 = &cf_vision_analysis_downsample_skipped_small;\n }\n else {\n dVar76 = DAT_1000bdf30 / dVar76;\n dVar82 = ABS(dVar76);\n pcVar30 = &cf_vision_analysis_downsample_skipped_invalid_scale;\n if ((((ulong)dVar82 < 0x7ff0000000000001 &&\n (dVar82 != INFINITY &&\n (dVar82 != 0.0 && (-1 < (long)dVar76 || 0xffffffffffffe < (long)ABS(dVar76) - 1U))))\n && (-1 < (long)dVar76 || 0x3fe < (long)ABS(dVar76) + 0xfff0000000000000U >> 0x35)) &&\n (dVar76 < 1.0)) {\n dVar93 = extraout_d0_08;\n _CGRectGetWidth(extraout_d0_08,dVar86,dVar75,dVar81);\n dVar77 = extraout_d0_08;\n _CGRectGetHeight(extraout_d0_08,dVar86,dVar75,dVar81);\n dVar98 = extraout_d0_08;\n _CGRectGetMinX(extraout_d0_08,dVar86,dVar75,dVar81);\n if ((0.0001 < ABS(dVar98)) ||\n (dVar98 = extraout_d0_08, _CGRectGetMinY(extraout_d0_08,dVar86,dVar75,dVar81),\n IVar18 = IVar19, 0.0001 < ABS(dVar98))) {\n dVar98 = extraout_d0_08;\n _CGRectGetMinX(extraout_d0_08,dVar86,dVar75,dVar81);\n dVar82 = extraout_d0_08;\n _CGRectGetMinY(extraout_d0_08,dVar86,dVar75,dVar81);\n _CGAffineTransformMakeTranslation(local_180,-dVar98,-dVar82);\n IVar18 = objc_stub::imageByApplyingTransform_(IVar19,local_180);\n IVar18 = objc_stub::imageByCroppingToRect_(IVar18,0,0,dVar93,dVar77);\n }\n dVar86 = 0.0;\n _CGRectGetWidth(0,0,dVar93,dVar77);\n dVar75 = 0.0;\n _CGRectGetHeight(0,0,dVar93,dVar77);\n _CGAffineTransformMakeScale(local_180,dVar76,dVar76);\n IVar18 = objc_stub::imageByApplyingTransform_(IVar18,local_180);\n dVar86 = (double)(long)(dVar76 * dVar86);\n if (dVar86 <= 1.0) {\n dVar86 = 1.0;\n }\n dVar75 = (double)(long)(dVar76 * dVar75);\n if (dVar75 <= 1.0) {\n dVar75 = 1.0;\n }\n dVar93 = dVar86;\n dVar77 = dVar75;\n IVar18 = objc_stub::imageByCroppingToRect_(IVar18,0,0);\n dVar98 = 1.0;\n if (IVar18 != 0) {\n IVar24 = objc_stub::extent(IVar18);\n iVar12 = (int)IVar24;\n FUN_100021624();\n if (iVar12 != 0) {\n dVar99 = 0.0;\n local_7c8 = 0.0;\n pcVar30 = &cf_vision_analysis_downsample_used;\n IVar19 = IVar18;\n dVar98 = dVar76;\n local_7c0 = dVar86;\n local_7b8 = dVar75;\n goto LAB_10002274c;\n }\n }\n pcVar30 = &cf_vision_analysis_downsample_skipped_empty_result;\n }\n }\n }\nLAB_10002274c:\n objc_stub::length((ID)pcVar30);\n IVar18 = CIImage::extent(local_768);\n uVar13 = (uint)IVar18;\n _CGRectIsEmpty();\n if (dVar93 <= 0.0) {\n uVar13 = 1;\n }\n IVar18 = local_768;\n if (((uVar13 & 1) == 0) && (0.0 < dVar77)) {\n IVar24 = local_768;\n _CGRectIsEmpty(CVar102.field0_0x0.field0_0x0,CVar102.field0_0x0.field1_0x8,\n CVar102.field1_0x10.field0_0x0,CVar102.field1_0x10.field1_0x8);\n uVar13 = (uint)IVar24;\n if (iVar14 < 1) {\n uVar13 = 1;\n }\n if (((uVar13 & 1) == 0) && (0 < iVar15)) {\n dVar77 = CVar102.field1_0x10.field1_0x8 / dVar77;\n dVar86 = -1.0;\n dVar75 = ABS(CVar102.field1_0x10.field0_0x0 / dVar93 + -1.0);\n if ((0.0001 < dVar75) || (dVar86 = ABS(dVar77 + -1.0), 0.0001 < dVar86)) {\n _CGAffineTransformMakeScale(local_180);\n IVar18 = CIImage::imageByApplyingTransform_(local_768,local_180);\n }\n CIImage::extent(IVar18);\n dVar93 = extraout_d0_09;\n _CGRectGetMinX();\n dVar81 = extraout_d0_09;\n _CGRectGetMinY(extraout_d0_09,dVar77,dVar86,dVar75);\n if ((0.0001 < ABS(CVar102.field0_0x0.field0_0x0 - dVar93)) ||\n (0.0001 < ABS(CVar102.field0_0x0.field1_0x8 - dVar81))) {\n _CGAffineTransformMakeTranslation\n (local_180,CVar102.field0_0x0.field0_0x0 - dVar93,\n CVar102.field0_0x0.field1_0x8 - dVar81);\n IVar18 = CIImage::imageByApplyingTransform_(IVar18,local_180);\n }\n FUN_10002afa8(CVar102.field0_0x0.field0_0x0,CVar102.field0_0x0.field1_0x8,\n CVar102.field1_0x10.field0_0x0,CVar102.field1_0x10.field1_0x8);\n }\n }\n FUN_100029674(dStack_8b0,local_8b8,dStack_8c0,local_8c8);\n if (p_Var27 != (__IOSurface *)0x0) {\n _IOSurfaceGetWidth(p_Var27);\n _IOSurfaceGetHeight(p_Var27);\n }\n if (puVar28 != (undefined8 *)0x0) {\n _IOSurfaceGetWidth(puVar28);\n _IOSurfaceGetHeight(puVar28);\n }\n if (p_Var27 != (__IOSurface *)0x0) {\n _IOSurfaceGetPixelFormat(p_Var27);\n FUN_1000297c8();\n }\n if (puVar28 != (undefined8 *)0x0) {\n _IOSurfaceGetPixelFormat(puVar28);\n FUN_1000297c8();\n }\n if ((*(uint *)((long)pdVar42 + 0xc) & 0x1d) == 1) {\n local_180._8_8_ = pdVar42[1];\n local_180._0_8_ = *pdVar42;\n local_170 = (long *)pdVar42[2];\n _CMTimeGetSeconds(local_180);\n }\n _NSStringFromRect(CVar100.field0_0x0.field0_0x0,dVar63,dVar64,dVar65);\n _NSStringFromRect(CVar102.field0_0x0.field0_0x0,CVar102.field0_0x0.field1_0x8,\n CVar102.field1_0x10.field0_0x0,CVar102.field1_0x10.field1_0x8);\n iVar14 = (int)(IVar20 >> 0x20);\n dVar75 = (double)(int)IVar20;\n dVar93 = (double)iVar14;\n dVar77 = (double)((int)extraout_x1_02 - (int)IVar20);\n dVar76 = (double)((int)((ulong)extraout_x1_02 >> 0x20) - iVar14);\n _NSStringFromRect();\n iVar14 = (int)(IVar17 >> 0x20);\n dVar86 = (double)(int)IVar17;\n dVar81 = (double)iVar14;\n dVar82 = (double)((int)extraout_x1 - (int)IVar17);\n dVar87 = (double)((int)((ulong)extraout_x1 >> 0x20) - iVar14);\n _NSStringFromRect();\n _NSStringFromRect(dStack_8b0,local_8b8,dStack_8c0,local_8c8);\n _NSStringFromRect(extraout_d0_05,dVar94,dVar66,dVar79);\n objc_stub::extent(IVar18);\n _NSStringFromRect();\n if (local_7d8 != 0) {\n objc_stub::width(local_7d8);\n objc_stub::height(local_7d8);\n }\n if (local_788 != 0) {\n objc_stub::width(local_788);\n objc_stub::height(local_788);\n }\n FUN_10001c338(CVar100.field0_0x0.field0_0x0,dVar63,dVar64,dVar65);\n FUN_10001c338(CVar102.field0_0x0.field0_0x0,CVar102.field0_0x0.field1_0x8,\n CVar102.field1_0x10.field0_0x0,CVar102.field1_0x10.field1_0x8);\n FUN_10001c338(dVar75,dVar93,dVar77,dVar76);\n FUN_10001c338(dVar86,dVar81,dVar82,dVar87);\n FUN_10001c338(extraout_d0_05,dVar94,dVar66,dVar79);\n objc_stub::extent(IVar18);\n FUN_10001c338();\n FUN_10001c338(local_7c8,dVar99,local_7c0,local_7b8);\n FUN_10001c338(extraout_d0_05,dVar94,dVar66,dVar79);\n objc_stub::extent(IVar19);\n FUN_10001c338();\n if (local_7d8 != 0) {\n objc_stub::width(local_7d8);\n objc_stub::height(local_7d8);\n }\n if (local_788 != 0) {\n objc_stub::width(local_788);\n objc_stub::height(local_788);\n }\n NSString::stringWithFormat_\n ((ID)&_OBJC_CLASS___NSString,&cf__a___5fb___5fc___5fd___5ftx___3fty___3f_);\n objc_stub::pixelTransform(IVar16);\n FUN_100021708();\n objc_stub::inversePixelTransform(IVar16);\n FUN_100021708();\n objc_stub::pixelTransform(param_3);\n FUN_100021708();\n objc_stub::inversePixelTransform(param_3);\n FUN_100021708();\n objc_stub::extent(IVar19);\n _NSStringFromRect();\n _NSStringFromRect(local_7c8,dVar99,local_7c0,local_7b8);\n _NSStringFromRect(extraout_d0_05,dVar94,dVar66,dVar79);\n p_Var5 = (__IOSurface *)0x0;\n if (0.999 <= dVar98) {\n p_Var5 = p_Var27;\n }\n if ((AStack_528.field30_0xe8._2_1_ & 1) == 0) {\n local_180._8_8_ = pdVar42[1];\n local_180._0_8_ = *pdVar42;\n local_170 = (long *)pdVar42[2];\n IVar16 = controlPanelValueForPluginAtTime_(param_1,(AnonymousStructure0 *)local_180);\n objc_stub::fastMultiFaceMode(IVar16);\n IVar16 = objc_stub::apiForProtocol_\n (*(ID *)(param_1 + 8),&objc::protocol_t::FxParameterRetrievalAPI_v6);\n local_100 = (double)((ulong)local_100 & 0xffffffffffffff00);\n if (IVar16 != 0) {\n if ((*(byte *)((long)pdVar42 + 0xc) & 1) != 0) {\n local_180._8_8_ = pdVar42[1];\n local_180._0_8_ = *pdVar42;\n local_170 = (long *)pdVar42[2];\n IVar17 = objc_stub::getBoolValue_fromParameter_atTime_(IVar16,&local_100,0x27,local_180)\n ;\n if ((IVar17 & 1) != 0) goto LAB_100022c64;\n }\n local_180._8_8_ = *(undefined8 *)(PTR__kCMTimeZero_1000a8218 + 8);\n local_180._0_8_ = *(undefined8 *)PTR__kCMTimeZero_1000a8218;\n local_170 = *(long **)(PTR__kCMTimeZero_1000a8218 + 0x10);\n objc_stub::getBoolValue_fromParameter_atTime_(IVar16,&local_100,0x27,local_180);\n }\n }\nLAB_100022c64:\n uVar13 = uVar46 | local_894 | local_8cc;\n if (uVar44 == 0 && uVar45 == 0) {\n local_880 = 0;\n }\n else {\n objc_stub::lock(*(ID *)(param_1 + 0x28));\n if (*(char *)(param_1 + 0x4a8) == '\\x01') {\n dVar94 = CVar100.field0_0x0.field0_0x0;\n _CGRectGetWidth(CVar100.field0_0x0.field0_0x0,dVar63,dVar64,dVar65);\n dVar66 = *(double *)(param_1 + 0x448);\n _CGRectGetWidth(dVar66,*(undefined8 *)(param_1 + 0x450),*(undefined8 *)(param_1 + 0x458),\n *(undefined8 *)(param_1 + 0x460));\n if (ABS(dVar94 - dVar66) <= 4.0) {\n dVar94 = CVar100.field0_0x0.field0_0x0;\n _CGRectGetHeight(CVar100.field0_0x0.field0_0x0,dVar63,dVar64,dVar65);\n dVar66 = *(double *)(param_1 + 0x448);\n _CGRectGetHeight(dVar66,*(undefined8 *)(param_1 + 0x450),\n *(undefined8 *)(param_1 + 0x458),*(undefined8 *)(param_1 + 0x460));\n bVar10 = 4.0 < ABS(dVar94 - dVar66);\n }\n else {\n bVar10 = true;\n }\n dVar94 = dVar75;\n _CGRectGetWidth(dVar75,dVar93,dVar77,dVar76);\n dVar66 = *(double *)(param_1 + 0x468);\n _CGRectGetWidth(dVar66,*(undefined8 *)(param_1 + 0x470),*(undefined8 *)(param_1 + 0x478),\n *(undefined8 *)(param_1 + 0x480));\n if (4.0 < ABS(dVar94 - dVar66)) {\n pcVar30 = &cf_source;\n if (!bVar10) {\n pcVar30 = &cf_destination;\n }\n goto LAB_100022e00;\n }\n dVar94 = dVar75;\n _CGRectGetHeight(dVar75,dVar93,dVar77,dVar76);\n dVar66 = *(double *)(param_1 + 0x468);\n _CGRectGetHeight(dVar66,*(undefined8 *)(param_1 + 0x470),*(undefined8 *)(param_1 + 0x478),\n *(undefined8 *)(param_1 + 0x480));\n bVar2 = bVar10;\n if (4.0 < ABS(dVar94 - dVar66)) {\n bVar2 = true;\n }\n pcVar30 = &cf_source;\n if (!bVar10) {\n pcVar30 = &cf_destination;\n }\n if (bVar2) goto LAB_100022e00;\n *(double *)(param_1 + 0x448) = CVar100.field0_0x0.field0_0x0;\n *(double *)(param_1 + 0x450) = dVar63;\n *(double *)(param_1 + 0x458) = dVar64;\n *(double *)(param_1 + 0x460) = dVar65;\n *(double *)(param_1 + 0x468) = dVar75;\n *(double *)(param_1 + 0x470) = dVar93;\n *(double *)(param_1 + 0x478) = dVar77;\n *(double *)(param_1 + 0x480) = dVar76;\n *(double *)(param_1 + 0x488) = dVar86;\n *(double *)(param_1 + 0x490) = dVar81;\n *(double *)(param_1 + 0x498) = dVar82;\n *(double *)(param_1 + 0x4a0) = dVar87;\n *(undefined1 *)(param_1 + 0x4a8) = 1;\n objc_stub::unlock(*(ID *)(param_1 + 0x28));\n }\n else {\n pcVar30 = &cf_initial;\nLAB_100022e00:\n objc_stub::unlock(*(ID *)(param_1 + 0x28));\n local_180._8_8_ = pdVar42[1];\n local_180._0_8_ = *pdVar42;\n local_170 = (long *)pdVar42[2];\n CVar7.field0_0x0.field1_0x8._0_4_ = SUB84(dVar81,0);\n CVar7.field0_0x0.field0_0x0 = dVar86;\n CVar7.field0_0x0.field1_0x8._4_4_ = (int)((ulong)dVar81 >> 0x20);\n CVar7.field1_0x10.field0_0x0 = dVar82;\n CVar7.field1_0x10.field1_0x8._0_4_ = SUB84(dVar87,0);\n CVar7.field1_0x10.field1_0x8._4_2_ = (short)((ulong)dVar87 >> 0x20);\n CVar7.field1_0x10.field1_0x8._6_2_ = (short)((ulong)dVar87 >> 0x30);\n CVar100.field0_0x0.field1_0x8 = dVar63;\n CVar100.field1_0x10.field1_0x8 = dVar65;\n CVar100.field1_0x10.field0_0x0 = dVar64;\n CVar104.field0_0x0.field1_0x8 = dVar93;\n CVar104.field0_0x0.field0_0x0 = dVar75;\n CVar104.field1_0x10.field1_0x8 = dVar76;\n CVar104.field1_0x10.field0_0x0 = dVar77;\n mss_resetFaceThinTransientStateForReason_call_renderTime_sourceRect_destinationRect_tileRect_\n (param_1,(ID)pcVar30,uVar1,(AnonymousStructure0 *)local_180,CVar100,CVar104,\n CVar7);\n }\n local_180._8_8_ = pdVar42[1];\n local_180._0_8_ = *pdVar42;\n local_170 = (long *)pdVar42[2];\n CVar101.field1_0x10.field1_0x8 = local_7b8;\n CVar101.field1_0x10.field0_0x0 = local_7c0;\n CVar101.field0_0x0.field1_0x8 = dVar99;\n CVar101.field0_0x0.field0_0x0 = local_7c8;\n local_880 = cachedFaceObservationsForInputImage_inputSurface_sourceTileRect_renderTime_allowForwardReuse_\n (param_1,IVar19,p_Var5,CVar101,(AnonymousStructure0 *)local_180,\n ((uVar13 | uVar44 | uVar45) ^ 1) & 1);\n _CGRectGetWidth(dVar75,dVar93,dVar77,dVar76);\n dVar66 = dVar77;\n dVar79 = dVar76;\n _CGRectGetHeight(dVar75,dVar93,dVar77,dVar76);\n }\n local_530 = 0;\n local_538 = 0.0;\n dVar98 = *(double *)(PTR__CGRectNull_1000a8148 + 8);\n dVar99 = *(double *)PTR__CGRectNull_1000a8148;\n dVar91 = *(double *)(PTR__CGRectNull_1000a8148 + 0x18);\n dVar69 = *(double *)(PTR__CGRectNull_1000a8148 + 0x10);\n local_180._8_8_ = pdVar42[1];\n local_180._0_8_ = *pdVar42;\n local_170 = (long *)pdVar42[2];\n dVar94 = dVar69;\n local_560.field0_0x0.field0_0x0 = dVar99;\n local_560.field0_0x0.field1_0x8 = dVar98;\n local_560.field1_0x10.field0_0x0 = dVar69;\n local_560.field1_0x10.field1_0x8 = dVar91;\n uVar29 = controlPanelValueForPluginAtTime_(param_1,(AnonymousStructure0 *)local_180);\n FUN_10000c4d0();\n IVar16 = objc_stub::fastMultiFaceMode(uVar29);\n uVar44 = (uint)IVar16 | (uint)AStack_528.field30_0xe8._2_1_;\n local_561 = (byte)uVar44 & 1;\n IVar16 = objc_stub::apiForProtocol_\n (*(ID *)(param_1 + 8),&objc::protocol_t::FxParameterRetrievalAPI_v6);\n if (IVar16 == 0) {\nLAB_100022fd8:\n if ((uVar44 & 1) == 0) goto LAB_100022fd0;\nLAB_100022fdc:\n objc_stub::setFastMultiFaceMode_(uVar29,1);\n objc_stub::setFaceSingleSelection_(uVar29,0);\n uVar44 = 1;\n }\n else {\n if ((*(byte *)((long)pdVar42 + 0xc) & 1) == 0) {\nLAB_100022f94:\n local_180._8_8_ = *(undefined8 *)(PTR__kCMTimeZero_1000a8218 + 8);\n local_180._0_8_ = *(undefined8 *)PTR__kCMTimeZero_1000a8218;\n local_170 = *(long **)(PTR__kCMTimeZero_1000a8218 + 0x10);\n IVar16 = objc_stub::getBoolValue_fromParameter_atTime_(IVar16,&local_561,0x27,local_180);\n if ((int)IVar16 == 0) goto LAB_100022fd8;\n }\n else {\n local_180._8_8_ = pdVar42[1];\n local_180._0_8_ = *pdVar42;\n local_170 = (long *)pdVar42[2];\n IVar17 = objc_stub::getBoolValue_fromParameter_atTime_(IVar16,&local_561,0x27,local_180);\n if ((IVar17 & 1) == 0) goto LAB_100022f94;\n }\n if (((local_561 | uVar44) & 1) != 0) goto LAB_100022fdc;\nLAB_100022fd0:\n uVar44 = 0;\n }\n if ((uVar13 & 1) == 0) {\n local_768 = 0;\n IVar16 = 0;\n }\n else {\n if (p_Var27 != (__IOSurface *)0x0) {\n local_1b0 = *(undefined8 *)PTR__kCIImageColorSpace_1000a81c8;\n local_1a8 = (ID)local_790;\n IVar16 = NSDictionary::dictionaryWithObjects_forKeys_count_\n ((ID)&_OBJC_CLASS___NSDictionary,&local_1a8,&local_1b0,1);\n IVar16 = CIImage::imageWithIOSurface_options_((ID)&_OBJC_CLASS___CIImage,p_Var27,IVar16);\n if (IVar16 != 0) {\n local_768 = IVar16;\n }\n }\n objc_stub::lock(*(ID *)(param_1 + 0x30));\n dVar55 = *(double *)(param_1 + 0x40);\n IVar16 = CIImage::extent(local_768);\n uVar45 = (uint)IVar16;\n _CGRectIsEmpty();\n if (dVar55 == 0.0) {\n uVar45 = 1;\n }\n if ((uVar45 & 1) == 0) {\n CIImage::extent(local_768);\n IVar17 = local_768;\n FUN_10002ee0c();\n IVar16 = 0;\n if (IVar17 != 0) {\n puVar58 = &_OBJC_CLASS___VNImageRequestHandler;\n _objc_alloc();\n IVar16 = objc_stub::initWithCIImage_options_\n ((ID)puVar58,IVar17,PTR____NSDictionary0__struct_1000a8118);\n local_180._0_8_ = 0.0;\n local_100 = dVar55;\n IVar17 = NSArray::arrayWithObjects_count_((ID)&_OBJC_CLASS___NSArray,&local_100,1);\n IVar16 = objc_stub::performRequests_error_(IVar16,IVar17,local_180);\n if ((int)IVar16 == 0) {\n IVar16 = 0;\n }\n else {\n IVar16 = objc_stub::results((ID)dVar55);\n IVar16 = objc_stub::copy(IVar16);\n }\n IVar17 = IVar16;\n FUN_10002a428();\n objc_stub::count(IVar16);\n objc_stub::count(IVar17);\n FUN_10001c338(extraout_d0_10,dVar94,dVar66,dVar79);\n IVar19 = objc_stub::count(IVar17);\n IVar16 = 0;\n if (IVar19 != 0) {\n IVar16 = IVar17;\n }\n }\n }\n else {\n IVar16 = 0;\n }\n objc_stub::unlock(*(ID *)(param_1 + 0x30));\n }\n FUN_10000c814(uVar29);\n objc_stub::faceTrackActiveTargetIndex(uVar29);\n IVar17 = objc_stub::faceTrackData(uVar29);\n IVar17 = objc_stub::length(IVar17);\n if (((IVar17 == 0) && (IVar17 = objc_stub::length(*(ID *)(param_1 + 0x6e0)), IVar17 != 0)) &&\n (IVar17 = objc_stub::faceTrackRevision(uVar29), *(long *)(param_1 + 0x6e8) < (long)IVar17))\n {\n *(undefined8 *)(param_1 + 0x6e0) = 0;\n *(undefined8 *)(param_1 + 0x6e8) = 0;\n }\n if (AStack_528.field38_0x118 == 3) {\n objc_stub::length(0);\n }\n IVar17 = objc_stub::length(0);\n if (IVar17 != 0) {\n IVar17 = 0;\n FUN_10004b6ec();\n IVar19 = objc_stub::count(IVar17);\n if ((IVar19 == 0) && (IVar19 = objc_stub::hasPrefix_(0,&cf_m1_), (int)IVar19 != 0)) {\n IVar19 = 0;\n FUN_10004b028();\n dStack_d8 = 0.0;\n local_e0 = 0.0;\n uStack_c8 = 0;\n uStack_d0 = 0;\n dStack_f8 = 0.0;\n local_100 = 0.0;\n dStack_e8 = 0.0;\n local_f0 = (long *)0x0;\n IVar20 = objc_stub::countByEnumeratingWithState_objects_count_\n (IVar19,&local_100,local_180,0x10);\n if (IVar20 != 0) {\n lVar60 = 0;\n lVar54 = *local_f0;\n dVar66 = 1.7976931348623157e+308;\n dVar94 = -1.7976931348623157e+308;\n do {\n IVar24 = 0;\n dVar79 = dVar94;\n do {\n if (*local_f0 != lVar54) {\n _objc_enumerationMutation(IVar19);\n }\n IVar25 = *(ID *)((long)dStack_f8 + IVar24 * 8);\n FUN_10004b6ec();\n IVar26 = objc_stub::count(IVar25);\n dVar94 = dVar79;\n if (IVar26 != 0) {\n IVar26 = objc_stub::firstObject(IVar25);\n IVar26 = objc_stub::objectForKey_(IVar26,&cf_t);\n objc_stub::doubleValue(IVar26);\n IVar26 = objc_stub::lastObject(IVar25);\n IVar26 = objc_stub::objectForKey_(IVar26,&cf_t);\n objc_stub::doubleValue(IVar26);\n if (((ulong)ABS(extraout_d0_11) < 0x7ff0000000000000) &&\n ((ulong)ABS(extraout_d0_12) < 0x7ff0000000000000)) {\n if (extraout_d0_11 <= dVar66) {\n dVar66 = extraout_d0_11;\n }\n dVar94 = extraout_d0_12;\n if (extraout_d0_12 <= dVar79) {\n dVar94 = dVar79;\n }\n IVar25 = objc_stub::count(IVar25);\n lVar60 = IVar25 + lVar60;\n }\n }\n IVar24 = IVar24 + 1;\n dVar79 = dVar94;\n } while (IVar20 != IVar24);\n IVar20 = objc_stub::countByEnumeratingWithState_objects_count_\n (IVar19,&local_100,local_180,0x10);\n } while (IVar20 != 0);\n if (((lVar60 != 0) && ((ulong)ABS(dVar66) < 0x7ff0000000000000)) &&\n ((ulong)ABS(dVar94) < 0x7ff0000000000000)) goto LAB_1000233ac;\n }\n }\n IVar19 = objc_stub::count(IVar17);\n if (IVar19 != 0) {\n IVar19 = objc_stub::firstObject(IVar17);\n IVar19 = objc_stub::objectForKey_(IVar19,&cf_t);\n objc_stub::doubleValue(IVar19);\n IVar19 = objc_stub::lastObject(IVar17);\n IVar19 = objc_stub::objectForKey_(IVar19,&cf_t);\n objc_stub::doubleValue(IVar19);\n if (((extraout_d0_13 & 0x7fffffffffffffff) < 0x7ff0000000000000) &&\n ((extraout_d0_14 & 0x7fffffffffffffff) < 0x7ff0000000000000)) {\n objc_stub::count(IVar17);\n }\n }\n }\nLAB_1000233ac:\n IVar19 = uVar29;\n FUN_10000c814();\n IVar20 = objc_stub::faceTrackActiveTargetIndex(uVar29);\n IVar17 = IVar20;\n if (0x7e < IVar20) {\n IVar17 = 0x7f;\n }\n IVar24 = 0;\n if (-1 < (long)IVar20) {\n IVar24 = IVar17;\n }\n if ((long)(IVar19 - 1) <= (long)IVar24) {\n IVar24 = IVar19 - 1;\n }\n if (uVar44 == 0) {\n IVar20 = uVar29;\n FUN_100010a50(uVar29,IVar24);\n }\n local_790 = *(double *)PTR__CGRectNull_1000a8148;\n local_798 = *(double *)(PTR__CGRectNull_1000a8148 + 8);\n local_7a0 = *(double *)(PTR__CGRectNull_1000a8148 + 0x10);\n local_7a8 = *(double *)(PTR__CGRectNull_1000a8148 + 0x18);\n CVar7 = *(CGRect *)PTR__CGRectNull_1000a8148;\n dVar94 = local_790;\n dVar66 = local_798;\n dVar79 = local_7a0;\n dVar55 = local_7a8;\n _CGRectIsNull();\n if (((IVar20 & 1) == 0) &&\n (dVar94 = local_790, dVar66 = local_798, dVar79 = local_7a0, dVar55 = local_7a8,\n _CGRectIsEmpty(), (IVar20 & 1) == 0)) {\n dVar94 = local_790;\n dVar79 = local_7a0;\n dVar55 = local_7a8;\n _CGRectGetWidth(local_790,local_798);\n dVar66 = 2.220446049250313e-16;\n if (dVar94 <= 2.220446049250313e-16) goto LAB_100023480;\n dVar94 = local_790;\n dVar79 = local_7a0;\n dVar55 = local_7a8;\n _CGRectGetHeight(local_790,local_798);\n dVar66 = 2.220446049250313e-16;\n bVar10 = 2.220446049250313e-16 < dVar94;\n }\n else {\nLAB_100023480:\n bVar10 = false;\n }\n dVar78 = dVar66;\n dVar90 = dVar79;\n dVar85 = dVar55;\n if (uVar44 == 0) {\n FUN_10002985c(uVar29,IVar24);\n dVar78 = dVar66;\n dVar90 = dVar79;\n dVar85 = dVar55;\n FUN_1000299b0(uVar29,IVar24);\n if ((((int)uVar29 != 0) &&\n (dVar78 = dVar66, dVar90 = dVar79, dVar85 = dVar55, _CGRectIsNull(dVar94),\n (uVar29 & 1) == 0)) &&\n (dVar78 = dVar66, dVar90 = dVar79, dVar85 = dVar55, _CGRectIsEmpty(dVar94),\n (uVar29 & 1) == 0)) {\n dVar80 = dVar94;\n dVar90 = dVar79;\n dVar85 = dVar55;\n _CGRectGetWidth(dVar94,dVar66);\n dVar78 = 2.220446049250313e-16;\n if (2.220446049250313e-16 < dVar80) {\n _CGRectGetHeight(dVar94);\n dVar78 = dVar66;\n dVar90 = dVar79;\n dVar85 = dVar55;\n }\n }\n }\n local_7c0 = local_798;\n local_7b8 = local_790;\n local_7d0 = local_7a8;\n local_7c8 = local_7a0;\n if ((uVar13 & (uVar44 ^ 1)) == 0) {\n local_7b0 = 0;\n }\n else {\n local_100 = (double)((ulong)local_100 & 0xffffffffffffff00);\n local_180._8_8_ = pdVar42[1];\n local_180._0_8_ = *pdVar42;\n local_170 = (long *)pdVar42[2];\n dVar79 = local_7a0;\n dVar55 = local_7a8;\n local_7b0 = mss_pinStyleFacePointsForObservations_renderTime_params_trackingInputImage_preferredBox_hasPreferredBox_selectedObservationOut_strengthMultiplierOut_pointsBoxOut_usedHoldOut_\n (param_1,IVar16,(AnonymousStructure0 *)local_180,&AStack_528,local_768\n ,CVar7,0,&local_530,&local_538,&local_560,(bool *)&local_100);\n uVar29 = objc_stub::count(local_7b0);\n dVar85 = local_560.field1_0x10.field1_0x8;\n dVar90 = local_560.field1_0x10.field0_0x0;\n dVar66 = local_560.field0_0x0.field1_0x8;\n dVar94 = local_560.field0_0x0.field0_0x0;\n if (((0x4c < uVar29) && (2.220446049250313e-16 < local_538)) &&\n ((dVar79 = local_560.field1_0x10.field0_0x0, dVar55 = local_560.field1_0x10.field1_0x8,\n _CGRectIsNull(local_560.field0_0x0.field0_0x0,local_560.field0_0x0.field1_0x8),\n (uVar29 & 1) == 0 &&\n ((dVar79 = dVar90, dVar55 = dVar85, _CGRectIsEmpty(dVar94,dVar66), (uVar29 & 1) == 0 &&\n (dVar78 = dVar94, dVar79 = dVar90, dVar55 = dVar85, _CGRectGetWidth(dVar94,dVar66),\n 2.220446049250313e-16 < dVar78)))))) {\n _CGRectGetHeight(dVar94,dVar66);\n dVar78 = 2.220446049250313e-16;\n dVar79 = dVar90;\n dVar55 = dVar85;\n if (2.220446049250313e-16 < dVar94) {\n local_7b8 = local_560.field0_0x0.field0_0x0;\n local_7c0 = local_560.field0_0x0.field1_0x8;\n local_7c8 = local_560.field1_0x10.field0_0x0;\n local_7d0 = local_560.field1_0x10.field1_0x8;\n goto LAB_1000236c0;\n }\n }\n local_7b0 = 0;\n local_530 = 0;\n local_538 = 0.0;\n dVar78 = dVar99;\n dVar90 = dVar79;\n dVar85 = dVar55;\n local_560.field0_0x0.field0_0x0 = dVar99;\n local_560.field0_0x0.field1_0x8 = dVar98;\n local_560.field1_0x10.field0_0x0 = dVar69;\n local_560.field1_0x10.field1_0x8 = dVar91;\n }\nLAB_1000236c0:\n if ((uVar44 & uVar13) == 1) {\n IVar17 = objc_stub::count(IVar16);\n local_768 = NSMutableArray::arrayWithCapacity_((ID)&_OBJC_CLASS___NSMutableArray,IVar17);\n IVar17 = objc_stub::count(IVar16);\n IVar19 = NSMutableArray::arrayWithCapacity_((ID)&_OBJC_CLASS___NSMutableArray,IVar17);\n uStack_578 = 0;\n local_580 = 0;\n uStack_588 = 0;\n local_590 = 0;\n uStack_598 = 0;\n local_5a0 = (long *)0x0;\n lStack_5a8 = 0;\n local_5b0 = 0;\n IVar20 = objc_stub::countByEnumeratingWithState_objects_count_\n (IVar16,&local_5b0,auStack_230,0x10);\n IVar17 = 0;\n if (IVar20 != 0) {\n lVar60 = *local_5a0;\n dVar94 = extraout_d0_15;\n do {\n IVar24 = 0;\n IVar25 = IVar17;\n do {\n dVar66 = dVar94;\n dVar79 = dVar78;\n dVar99 = dVar90;\n dVar98 = dVar85;\n if (*local_5a0 != lVar60) {\n _objc_enumerationMutation(IVar16);\n dVar66 = dVar94;\n dVar79 = dVar78;\n dVar99 = dVar90;\n dVar98 = dVar85;\n }\n IVar56 = *(ID *)(lStack_5a8 + IVar24 * 8);\n IVar26 = IVar56;\n FUN_100029a00();\n FUN_100029d20(IVar56);\n dVar78 = dVar79;\n dVar90 = dVar99;\n dVar85 = dVar98;\n uVar29 = objc_stub::count(IVar26);\n IVar17 = IVar25;\n dVar94 = extraout_d0_16;\n if (((0x4c < uVar29) &&\n (dVar94 = dVar66, dVar78 = dVar79, dVar90 = dVar99, dVar85 = dVar98,\n _CGRectIsNull(), (uVar29 & 1) == 0)) &&\n (dVar94 = dVar66, dVar78 = dVar79, dVar90 = dVar99, dVar85 = dVar98,\n _CGRectIsEmpty(), (uVar29 & 1) == 0)) {\n dVar94 = dVar66;\n dVar90 = dVar99;\n dVar85 = dVar98;\n _CGRectGetWidth(dVar66,dVar79);\n dVar78 = 2.220446049250313e-16;\n if (2.220446049250313e-16 < dVar94) {\n dVar94 = dVar66;\n dVar90 = dVar99;\n dVar85 = dVar98;\n _CGRectGetHeight(dVar66,dVar79);\n dVar78 = 2.220446049250313e-16;\n if (2.220446049250313e-16 < dVar94) {\n NSMutableArray::addObject_(local_768,IVar26);\n IVar17 = NSValue::valueWithRect_((ID)&_OBJC_CLASS___NSValue,dVar66);\n NSMutableArray::addObject_(IVar19,IVar17);\n IVar17 = IVar56;\n dVar94 = extraout_d0_17;\n dVar78 = dVar79;\n dVar90 = dVar99;\n dVar85 = dVar98;\n if (IVar25 != 0) {\n IVar17 = IVar25;\n }\n }\n }\n }\n IVar24 = IVar24 + 1;\n IVar25 = IVar17;\n } while (IVar20 != IVar24);\n IVar20 = objc_stub::countByEnumeratingWithState_objects_count_\n (IVar16,&local_5b0,auStack_230,0x10);\n dVar94 = extraout_d0_18;\n } while (IVar20 != 0);\n }\n IVar20 = NSMutableArray::count(local_768);\n if (IVar20 == 0) goto LAB_1000238e8;\n local_7b0 = NSMutableArray::firstObject(local_768);\n local_538 = 1.0;\n local_530 = IVar17;\n IVar17 = NSMutableArray::firstObject(IVar19);\n NSMutableArray::rectValue(IVar17);\n local_7b8 = extraout_d0_19;\n FUN_10001bef0();\n local_7d0 = dVar85;\n local_7c8 = dVar90;\n local_7c0 = dVar78;\n local_560.field0_0x0.field0_0x0 = local_7b8;\n local_560.field0_0x0.field1_0x8 = dVar78;\n local_560.field1_0x10.field0_0x0 = dVar90;\n local_560.field1_0x10.field1_0x8 = dVar85;\n }\n else {\nLAB_1000238e8:\n local_768 = 0;\n }\n uVar29 = objc_stub::count(0);\n local_808 = local_7b8;\n local_820 = local_7c0;\n local_838 = local_7d0;\n local_830 = local_7c8;\n if (bVar10) {\n _CGRectIsNull(local_790,local_798,local_7a0,local_7a8);\n local_808 = local_7b8;\n local_820 = local_7c0;\n local_838 = local_7d0;\n local_830 = local_7c8;\n if ((uVar29 & 1) == 0) {\n _CGRectIsEmpty(local_790,local_798,local_7a0,local_7a8);\n local_808 = local_7b8;\n local_820 = local_7c0;\n local_838 = local_7d0;\n local_830 = local_7c8;\n if ((uVar29 & 1) == 0) {\n dVar94 = local_790;\n _CGRectGetWidth(local_790,local_798,local_7a0,local_7a8);\n local_808 = local_7b8;\n local_820 = local_7c0;\n local_838 = local_7d0;\n local_830 = local_7c8;\n if (2.220446049250313e-16 < dVar94) {\n dVar94 = local_790;\n _CGRectGetHeight(local_790,local_798,local_7a0,local_7a8);\n local_808 = local_7b8;\n local_820 = local_7c0;\n local_838 = local_7d0;\n local_830 = local_7c8;\n if (2.220446049250313e-16 < dVar94) {\n local_838 = local_7a8;\n local_830 = local_7a0;\n local_820 = local_798;\n local_808 = local_790;\n }\n }\n }\n }\n }\n dVar99 = local_560.field1_0x10.field1_0x8;\n dVar79 = local_560.field1_0x10.field0_0x0;\n dVar66 = local_560.field0_0x0.field1_0x8;\n dVar94 = local_560.field0_0x0.field0_0x0;\n _CGRectIsNull(local_560.field0_0x0.field0_0x0,local_560.field0_0x0.field1_0x8,\n local_560.field1_0x10.field0_0x0,local_560.field1_0x10.field1_0x8);\n if (((((uVar29 & 1) != 0) || (_CGRectIsEmpty(dVar94,dVar66,dVar79,dVar99), (uVar29 & 1) != 0))\n || ((dVar98 = dVar94, _CGRectGetWidth(dVar94,dVar66,dVar79,dVar99),\n dVar98 <= 2.220446049250313e-16 ||\n (_CGRectGetHeight(dVar94,dVar66,dVar79,dVar99), dVar94 <= 2.220446049250313e-16)))) &&\n ((((uVar29 = objc_stub::count(local_7b0), 0x4c < uVar29 &&\n (_CGRectIsNull(local_808,local_820,local_830,local_838), (uVar29 & 1) == 0)) &&\n (_CGRectIsEmpty(local_808,local_820,local_830,local_838), (uVar29 & 1) == 0)) &&\n ((dVar94 = local_808, _CGRectGetWidth(local_808,local_820,local_830,local_838),\n 2.220446049250313e-16 < dVar94 &&\n (dVar94 = local_808, _CGRectGetHeight(local_808,local_820,local_830,local_838),\n 2.220446049250313e-16 < dVar94)))))) {\n local_560.field0_0x0.field0_0x0 = local_808;\n local_560.field0_0x0.field1_0x8 = local_820;\n local_560.field1_0x10.field0_0x0 = local_830;\n local_560.field1_0x10.field1_0x8 = local_838;\n }\n dVar79 = local_7c0;\n dVar94 = local_7c8;\n dVar66 = local_7d0;\n _CGRectIsNull(local_7b8);\n if (((uVar29 & 1) == 0) &&\n (dVar79 = local_7c0, dVar94 = local_7c8, dVar66 = local_7d0, _CGRectIsEmpty(local_7b8),\n (uVar29 & 1) == 0)) {\n dVar99 = local_7b8;\n dVar94 = local_7c8;\n dVar66 = local_7d0;\n _CGRectGetWidth(local_7b8,local_7c0);\n dVar79 = 2.220446049250313e-16;\n if (dVar99 <= 2.220446049250313e-16) goto LAB_100023bac;\n dVar99 = local_7b8;\n dVar94 = local_7c8;\n dVar66 = local_7d0;\n _CGRectGetHeight(local_7b8,local_7c0);\n dVar79 = 2.220446049250313e-16;\n if (dVar99 <= 2.220446049250313e-16) goto LAB_100023bac;\n }\n else {\nLAB_100023bac:\n IVar17 = objc_stub::count(local_7b0);\n dVar91 = local_560.field1_0x10.field1_0x8;\n dVar69 = local_560.field1_0x10.field0_0x0;\n dVar98 = local_560.field0_0x0.field1_0x8;\n dVar99 = local_560.field0_0x0.field0_0x0;\n if (0x4c < IVar17) {\n uVar29 = 0;\n if (local_530 != 0) {\n uVar29 = objc_stub::boundingBox(local_530);\n local_7b8 = extraout_d0_20;\n _CGRectStandardize();\n _CGRectIntersection();\n _CGRectIsNull(local_7b8,dVar79,dVar94,dVar66);\n if (((((((uVar29 & 1) != 0) ||\n (_CGRectIsEmpty(local_7b8,dVar79,dVar94,dVar66), (uVar29 & 1) != 0)) ||\n (dVar55 = local_7b8, _CGRectGetWidth(local_7b8,dVar79,dVar94,dVar66),\n dVar55 <= 2.220446049250313e-16)) ||\n (dVar55 = local_7b8, _CGRectGetHeight(local_7b8,dVar79,dVar94,dVar66),\n local_7d0 = dVar66, local_7c8 = dVar94, local_7c0 = dVar79,\n dVar55 <= 2.220446049250313e-16)) &&\n ((_CGRectIsNull(dVar99,dVar98,dVar69,dVar91), local_7d0 = local_7a8,\n local_7c8 = local_7a0, local_7c0 = local_798, local_7b8 = local_790,\n (uVar29 & 1) == 0 &&\n (_CGRectIsEmpty(dVar99,dVar98,dVar69,dVar91), (uVar29 & 1) == 0)))) &&\n ((dVar94 = dVar99, _CGRectGetWidth(dVar99,dVar98,dVar69,dVar91),\n 2.220446049250313e-16 < dVar94 &&\n (dVar94 = dVar99, _CGRectGetHeight(dVar99,dVar98,dVar69,dVar91),\n 2.220446049250313e-16 < dVar94)))) {\n FUN_10001bef0();\n local_7d0 = dVar91;\n local_7c8 = dVar69;\n local_7c0 = dVar98;\n local_7b8 = dVar99;\n }\n }\n dVar79 = local_7c0;\n dVar94 = local_7c8;\n dVar66 = local_7d0;\n _CGRectIsNull(local_7b8);\n if (((uVar29 & 1) == 0) &&\n (dVar79 = local_7c0, dVar94 = local_7c8, dVar66 = local_7d0, _CGRectIsEmpty(local_7b8),\n (uVar29 & 1) == 0)) {\n dVar99 = local_7b8;\n dVar94 = local_7c8;\n dVar66 = local_7d0;\n _CGRectGetWidth(local_7b8,local_7c0);\n dVar79 = 2.220446049250313e-16;\n if (2.220446049250313e-16 < dVar99) {\n dVar99 = local_7b8;\n dVar94 = local_7c8;\n dVar66 = local_7d0;\n _CGRectGetHeight(local_7b8,local_7c0);\n dVar79 = 2.220446049250313e-16;\n if (2.220446049250313e-16 < dVar99) goto LAB_100023e2c;\n }\n }\n local_7b8 = local_560.field0_0x0.field0_0x0;\n local_7c0 = local_560.field0_0x0.field1_0x8;\n local_7c8 = local_560.field1_0x10.field0_0x0;\n local_7d0 = local_560.field1_0x10.field1_0x8;\n }\n }\nLAB_100023e2c:\n uVar29 = objc_stub::count(local_7b0);\n dVar91 = local_560.field1_0x10.field1_0x8;\n dVar69 = local_560.field1_0x10.field0_0x0;\n dVar98 = local_560.field0_0x0.field1_0x8;\n dVar99 = local_560.field0_0x0.field0_0x0;\n if (((0x4c < uVar29) &&\n (dVar79 = local_560.field0_0x0.field1_0x8, dVar94 = local_560.field1_0x10.field0_0x0,\n dVar66 = local_560.field1_0x10.field1_0x8, _CGRectIsNull(local_560.field0_0x0.field0_0x0),\n (uVar29 & 1) == 0)) &&\n (dVar79 = dVar98, dVar94 = dVar69, dVar66 = dVar91, _CGRectIsEmpty(dVar99),\n (uVar29 & 1) == 0)) {\n dVar55 = dVar99;\n dVar94 = dVar69;\n dVar66 = dVar91;\n _CGRectGetWidth(dVar99,dVar98);\n dVar79 = 2.220446049250313e-16;\n if (2.220446049250313e-16 < dVar55) {\n _CGRectGetHeight(dVar99,dVar98);\n dVar79 = 2.220446049250313e-16;\n dVar94 = dVar69;\n dVar66 = dVar91;\n if (((2.220446049250313e-16 < dVar99) &&\n (dVar79 = local_820, dVar94 = local_830, dVar66 = local_838, _CGRectIsNull(local_808),\n (uVar29 & 1) == 0)) &&\n (dVar79 = local_820, dVar94 = local_830, dVar66 = local_838, _CGRectIsEmpty(local_808),\n (uVar29 & 1) == 0)) {\n dVar99 = local_808;\n dVar94 = local_830;\n dVar66 = local_838;\n _CGRectGetWidth(local_808,local_820);\n dVar79 = 2.220446049250313e-16;\n if (2.220446049250313e-16 < dVar99) {\n dVar99 = local_808;\n dVar94 = local_830;\n dVar66 = local_838;\n _CGRectGetHeight(local_808,local_820);\n dVar79 = 2.220446049250313e-16;\n if ((2.220446049250313e-16 < dVar99) &&\n (dVar79 = local_560.field0_0x0.field1_0x8,\n dVar94 = local_560.field1_0x10.field0_0x0,\n dVar66 = local_560.field1_0x10.field1_0x8,\n FUN_10002a568(local_560.field0_0x0.field0_0x0), (uVar29 & 1) == 0)) {\n _NSStringFromRect(local_560.field0_0x0.field0_0x0,local_560.field0_0x0.field1_0x8,\n local_560.field1_0x10.field0_0x0,local_560.field1_0x10.field1_0x8)\n ;\n dVar94 = local_830;\n dVar66 = local_838;\n _NSStringFromRect(local_808,local_820);\n local_808 = local_560.field0_0x0.field0_0x0;\n local_820 = *(double *)((ulong)&local_560 | 8);\n local_838 = local_560.field1_0x10.field1_0x8;\n local_830 = local_560.field1_0x10.field0_0x0;\n dVar79 = local_560.field1_0x10.field0_0x0;\n }\n }\n }\n }\n }\n objc_stub::count(local_880);\n objc_stub::count(0);\n objc_stub::count(0);\n uVar29 = objc_stub::count(local_7b0);\n dVar99 = extraout_d0_21;\n if (uVar29 < 0x4d) {\n _CGRectIsNull(local_808,local_820,local_830,local_838);\n if ((((uVar29 & 1) == 0) &&\n (_CGRectIsEmpty(local_808,local_820,local_830,local_838), (uVar29 & 1) == 0)) &&\n (dVar94 = local_808, _CGRectGetWidth(local_808,local_820,local_830,local_838),\n 2.220446049250313e-16 < dVar94)) {\n dVar99 = local_808;\n dVar94 = local_830;\n dVar66 = local_838;\n _CGRectGetHeight(local_808,local_820);\n dVar79 = 2.220446049250313e-16;\n if (2.220446049250313e-16 < dVar99) goto LAB_100023fe0;\n }\n dVar66 = local_560.field1_0x10.field1_0x8;\n dVar94 = local_560.field1_0x10.field0_0x0;\n dVar79 = local_560.field0_0x0.field1_0x8;\n dVar99 = local_560.field0_0x0.field0_0x0;\n _CGRectIsNull(local_560.field0_0x0.field0_0x0,local_560.field0_0x0.field1_0x8,\n local_560.field1_0x10.field0_0x0,local_560.field1_0x10.field1_0x8);\n if ((((uVar29 & 1) == 0) && (_CGRectIsEmpty(dVar99,dVar79,dVar94,dVar66), (uVar29 & 1) == 0)\n ) && (dVar98 = dVar99, _CGRectGetWidth(dVar99,dVar79,dVar94,dVar66),\n 2.220446049250313e-16 < dVar98)) {\n _CGRectGetHeight(dVar99,dVar79);\n dVar79 = 2.220446049250313e-16;\n if (2.220446049250313e-16 < dVar99) goto LAB_100023fe0;\n }\n }\n else {\nLAB_100023fe0:\n FUN_10002a7b8(local_7b0,0,0x4b);\n dVar98 = dVar99;\n dVar90 = dVar79;\n dVar78 = dVar94;\n dVar68 = dVar66;\n FUN_10002a7b8(local_7b0,0x3b,0x4b);\n dVar69 = dVar98;\n dVar85 = dVar90;\n dVar80 = dVar78;\n dVar83 = dVar68;\n FUN_10002a928(local_7b0);\n dVar91 = dVar75;\n _CGRectGetWidth(dVar75,dVar93,dVar77,dVar76);\n dVar55 = dVar75;\n _CGRectGetHeight(dVar75,dVar93,dVar77,dVar76);\n objc_stub::count(local_7b0);\n FUN_10001b584(local_560.field0_0x0.field0_0x0,local_560.field0_0x0.field1_0x8,\n local_560.field1_0x10.field0_0x0,local_560.field1_0x10.field1_0x8);\n FUN_10001b584(local_7b8,local_7c0,local_7c8,local_7d0);\n FUN_10001b584(local_808,local_820,local_830,local_838);\n FUN_10001c338(dVar99,dVar79,dVar94,dVar66);\n FUN_10001c338(dVar98,dVar90,dVar78,dVar68);\n FUN_10001c338(dVar69,dVar85,dVar80,dVar83);\n _CGRectGetWidth(dVar99,dVar79,dVar94,dVar66);\n _CGRectGetHeight(dVar99,dVar79,dVar94,dVar66);\n _CGRectGetWidth(dVar69,dVar85,dVar80,dVar83);\n _CGRectGetHeight(dVar69,dVar85,dVar80,dVar83);\n FUN_10002ab0c(local_7b0);\n FUN_10002ac7c(dVar91,dVar55,local_7b0);\n }\n objc_stub::count(local_880);\n objc_stub::count(local_7b0);\n _NSStringFromRect(local_560.field0_0x0.field0_0x0,local_560.field0_0x0.field1_0x8,\n local_560.field1_0x10.field0_0x0,local_560.field1_0x10.field1_0x8);\n _NSStringFromRect(local_808,local_820,local_830,local_838);\n _NSStringFromRect(local_790,local_798,local_7a0,local_7a8);\n dVar94 = local_7a0;\n dVar66 = local_7a8;\n _NSStringFromRect(local_790,local_798);\n objc_stub::length(*(ID *)(param_1 + 0x6e0));\n bVar61 = 1;\n if (((AStack_528.field7_0x38 <= 2.220446049250313e-16) &&\n ((double)AStack_528._192_8_ <= 2.220446049250313e-16)) &&\n ((AStack_528.field2_0x10 <= 2.220446049250313e-16 &&\n (((ABS(AStack_528.field3_0x18) <= 2.220446049250313e-16 &&\n (ABS(AStack_528.field4_0x20) <= 2.220446049250313e-16)) && (AStack_528.field5_0x28 == 0)\n ))))) {\n bVar61 = (byte)AStack_528.field44_0x140;\n }\n dVar79 = 2.220446049250313e-16;\n pbVar31 = (byte *)_getenv(\"MSE18_ENABLE_TILE_LOCAL_SKIN_FILTER\");\n if (pbVar31 != (byte *)0x0) {\n if (*pbVar31 != 0) {\n uVar45 = *pbVar31 - 0x30;\n if (uVar45 == 0) {\n uVar45 = (uint)pbVar31[1];\n }\n if ((uVar45 != 0 && ((bVar61 ^ 0xff) & 1) == 0) && bVar8 == 0) {\n dVar79 = dVar81;\n dVar94 = dVar82;\n dVar66 = dVar87;\n FUN_100021624(dVar86);\n if (((int)pbVar31 != 0) &&\n (dVar79 = CVar102.field0_0x0.field1_0x8, dVar94 = CVar102.field1_0x10.field0_0x0,\n dVar66 = CVar102.field1_0x10.field1_0x8, FUN_100021624(CVar102.field0_0x0.field0_0x0)\n , (int)pbVar31 != 0)) {\n dVar79 = CVar102.field0_0x0.field1_0x8;\n dVar94 = CVar102.field1_0x10.field0_0x0;\n dVar66 = CVar102.field1_0x10.field1_0x8;\n _CGRectInset(CVar102.field0_0x0.field0_0x0);\n _CGRectContainsRect();\n }\n goto LAB_100024394;\n }\n }\n pbVar31 = (byte *)0x0;\n }\nLAB_100024394:\n if ((bVar61 & 1) == 0) {\n if ((int)pbVar31 != 0) goto LAB_1000243b0;\nLAB_100024724:\n objc_stub::extent(IVar18);\n local_180._8_8_ = pdVar42[1];\n local_180._0_8_ = *pdVar42;\n local_170 = (long *)pdVar42[2];\n CVar103.field0_0x0.field1_0x8 = dVar79;\n CVar103.field0_0x0.field0_0x0 = extraout_d0_22;\n CVar103.field1_0x10.field1_0x8 = dVar66;\n CVar103.field1_0x10.field0_0x0 = dVar94;\n IVar17 = applySkinSmoothingToImage_params_renderTime_faceObservations_selectedFacePoints_featureReferenceExtent_externalMaskImage_externalPreviewMaskImage_externalRawPreviewSmallMaskImage_\n (param_1,IVar18,&AStack_528,(AnonymousStructure0 *)local_180,local_880,0,\n CVar103,0,0,0);\n }\n else {\n if ((int)pbVar31 == 0) {\n uVar29 = objc_stub::length(0x1000ac5e0);\n if (bVar8 != 0) {\n uVar29 = objc_stub::length(0x1000ac600);\n }\n FUN_100021624(dVar86,dVar81,dVar82,dVar87);\n if ((uVar29 & 1) == 0) {\n uVar29 = objc_stub::length(0x1000ac620);\n }\n FUN_100021624(CVar102.field0_0x0.field0_0x0,CVar102.field0_0x0.field1_0x8,\n CVar102.field1_0x10.field0_0x0,CVar102.field1_0x10.field1_0x8);\n if ((uVar29 & 1) == 0) {\n uVar29 = objc_stub::length(0x1000ac640);\n }\n dVar79 = dVar81;\n dVar94 = dVar82;\n dVar66 = dVar87;\n FUN_100021624(dVar86);\n if (((int)uVar29 != 0) &&\n (dVar79 = CVar102.field0_0x0.field1_0x8, dVar94 = CVar102.field1_0x10.field0_0x0,\n dVar66 = CVar102.field1_0x10.field1_0x8, FUN_100021624(CVar102.field0_0x0.field0_0x0),\n (int)uVar29 != 0)) {\n dVar79 = CVar102.field0_0x0.field1_0x8;\n dVar94 = CVar102.field1_0x10.field0_0x0;\n dVar66 = CVar102.field1_0x10.field1_0x8;\n _CGRectInset(CVar102.field0_0x0.field0_0x0);\n _CGRectContainsRect();\n if ((uVar29 & 1) == 0) {\n objc_stub::length(0x1000ac660);\n dVar99 = CVar102.field0_0x0.field0_0x0;\n dVar79 = CVar102.field0_0x0.field1_0x8;\n dVar98 = CVar102.field1_0x10.field0_0x0;\n dVar69 = CVar102.field1_0x10.field1_0x8;\n _CGRectInset(CVar102.field0_0x0.field0_0x0,CVar102.field0_0x0.field1_0x8,\n CVar102.field1_0x10.field0_0x0,CVar102.field1_0x10.field1_0x8,\n 0xc010000000000000,0xc010000000000000);\n dVar94 = dVar99;\n _CGRectGetMinX();\n dVar66 = dVar86;\n _CGRectGetMinX(dVar86,dVar81,dVar82,dVar87);\n if (dVar66 < dVar94) {\n objc_stub::length(0x1000ac680);\n }\n dVar94 = dVar99;\n _CGRectGetMaxX(dVar99,dVar79,dVar98,dVar69);\n dVar66 = dVar86;\n _CGRectGetMaxX(dVar86,dVar81,dVar82,dVar87);\n if (dVar94 < dVar66) {\n objc_stub::length(0x1000ac6a0);\n }\n dVar94 = dVar99;\n _CGRectGetMinY(dVar99,dVar79,dVar98,dVar69);\n dVar66 = dVar86;\n _CGRectGetMinY(dVar86,dVar81,dVar82,dVar87);\n if (dVar66 < dVar94) {\n objc_stub::length(0x1000ac6c0);\n }\n _CGRectGetMaxY(dVar99,dVar79,dVar98,dVar69);\n dVar98 = dVar86;\n dVar79 = dVar81;\n dVar94 = dVar82;\n dVar66 = dVar87;\n _CGRectGetMaxY();\n if (dVar99 < dVar98) {\n objc_stub::length(0x1000ac6e0);\n }\n }\n }\n goto LAB_100024724;\n }\n objc_stub::length(0x1000ac5c0);\nLAB_1000243b0:\n local_100 = 0.0;\n local_660 = 0.0;\n local_180._8_8_ = pdVar42[1];\n local_180._0_8_ = *pdVar42;\n local_170 = (long *)pdVar42[2];\n bVar11 = mss_resolveFrameAnalysisSkinMaskForInputImage_params_renderTime_maskImageOut_previewMaskImageOut_rawPreviewSmallMaskImageOut_\n (param_1,IVar18,&AStack_528,(AnonymousStructure0 *)local_180,\n (ID *)&local_100,(ID *)&local_660,(ID *)0x0);\n IVar17 = IVar18;\n FUN_10002afa8(dVar86,dVar81,dVar82,dVar87);\n if (local_100 == 0.0) {\n dVar99 = 0.0;\n }\n else {\n dVar99 = local_100;\n FUN_10002afa8(dVar86,dVar81,dVar82,dVar87);\n }\n dVar94 = dVar99;\n if (local_660 != 0.0) {\n dVar94 = local_660;\n FUN_10002afa8(dVar86,dVar81,dVar82,dVar87);\n }\n bVar3 = 0;\n if (IVar17 != 0) {\n bVar3 = bVar11;\n }\n if ((bVar3 != 1) || (dVar99 == 0.0)) {\n objc_stub::length(0x1000ac720);\n _NSStringFromRect(CVar102.field0_0x0.field0_0x0,CVar102.field0_0x0.field1_0x8,\n CVar102.field1_0x10.field0_0x0,CVar102.field1_0x10.field1_0x8);\n dVar79 = dVar81;\n dVar94 = dVar82;\n dVar66 = dVar87;\n _NSStringFromRect(dVar86);\n goto LAB_100024724;\n }\n local_180._8_8_ = pdVar42[1];\n local_180._0_8_ = *pdVar42;\n local_170 = (long *)pdVar42[2];\n IVar17 = applySkinSmoothingToImage_params_renderTime_faceObservations_selectedFacePoints_featureReferenceExtent_externalMaskImage_externalPreviewMaskImage_externalRawPreviewSmallMaskImage_\n (param_1,IVar17,&AStack_528,(AnonymousStructure0 *)local_180,local_880,0,\n CVar102,(ID)dVar99,(ID)dVar94,0);\n objc_stub::length(0x1000ac700);\n _NSStringFromRect(CVar102.field0_0x0.field0_0x0,CVar102.field0_0x0.field1_0x8,\n CVar102.field1_0x10.field0_0x0,CVar102.field1_0x10.field1_0x8);\n dVar79 = dVar81;\n dVar94 = dVar82;\n dVar66 = dVar87;\n _NSStringFromRect(dVar86);\n objc_stub::extent((ID)dVar99);\n _NSStringFromRect();\n if (IVar17 == 0) goto LAB_100024724;\n }\n local_880 = IVar18;\n if (IVar17 != 0) {\n local_880 = IVar17;\n }\n if (uVar46 == 0) {\nLAB_1000247ac:\n IVar17 = local_880;\n FUN_10002b064();\n if (IVar17 != 0) {\n local_880 = IVar17;\n }\n }\n else {\n if (DAT_1000bdf50 != -1) {\n FUN_100079670();\n }\n if ((DAT_1000bd200 & 1) == 0) goto LAB_1000247ac;\n IVar17 = objc_stub::length(0x1000ac740);\n }\n _CGRectIsNull(local_7b8,local_7c0,local_7c8,local_7d0);\n if (((((IVar17 & 1) != 0) ||\n (_CGRectIsEmpty(local_7b8,local_7c0,local_7c8,local_7d0), (IVar17 & 1) != 0)) ||\n (dVar94 = local_7b8, _CGRectGetWidth(local_7b8,local_7c0,local_7c8,local_7d0),\n dVar94 <= 2.220446049250313e-16)) ||\n (dVar94 = local_7b8, _CGRectGetHeight(local_7b8,local_7c0,local_7c8,local_7d0),\n dVar94 <= 2.220446049250313e-16)) {\n local_7b8 = local_560.field0_0x0.field0_0x0;\n local_7c0 = local_560.field0_0x0.field1_0x8;\n local_7c8 = local_560.field1_0x10.field0_0x0;\n local_7d0 = local_560.field1_0x10.field1_0x8;\n }\n if (uVar46 == 0) {\n uVar46 = 0;\n local_8e0 = 0;\n local_8f8 = 0.0;\n }\n else {\n IVar19 = objc_stub::count(local_768);\n IVar20 = objc_stub::count(local_7b0);\n IVar17 = local_7b0;\n if (IVar20 < 0x4d) {\n IVar17 = objc_stub::firstObject(local_768);\n }\n if (IVar19 < 2) {\n IVar20 = objc_stub::count(IVar17);\n local_8e0 = 0;\n local_8f8 = 0.0;\n if ((0x4c < IVar20) && (2.220446049250313e-16 < local_538)) goto LAB_100024908;\n }\n else if (2.220446049250313e-16 < local_538) {\nLAB_100024908:\n local_8f8 = local_538;\n local_8e0 = IVar17;\n }\n else {\n local_8e0 = 0;\n local_8f8 = 0.0;\n }\n if (DAT_1000bdf50 != -1) {\n FUN_100079670();\n }\n uVar46 = (uint)DAT_1000bd200;\n if (((DAT_1000bd200 & 1) == 0) && (2.220446049250313e-16 < local_538)) {\n IVar20 = local_880;\n if (IVar19 < 2) {\n IVar19 = objc_stub::count(IVar17);\n if (IVar19 < 0x4d) {\n IVar20 = 0;\n }\n else {\n IVar19 = IVar17;\n local_180._0_8_ = dVar92;\n local_180._8_8_ = dVar73;\n local_170 = plVar95;\n dStack_168 = dVar74;\n local_160 = dVar96;\n dStack_158 = dVar97;\n FUN_10002b144(CVar100.field0_0x0.field0_0x0,dVar63,dVar64,dVar65,dVar75,dVar93,dVar77,\n dVar76,IVar17,local_180,bVar8);\n IVar24 = objc_stub::count(IVar19);\n dVar94 = local_538;\n if (IVar24 < 0x4d) {\n IVar19 = IVar17;\n }\n IVar17 = objc_stub::deviceRegistryID(param_3);\n FUN_10002b8a4(dVar94,local_880,&AStack_528,IVar19,IVar21,IVar17);\n if ((IVar20 == local_880) && (2.220446049250313e-16 < (double)AStack_528._104_8_)) {\n IVar20 = local_880;\n FUN_10002c1f8(AStack_528._104_8_,local_538,local_880,IVar19);\n }\n }\n }\n else {\n IVar17 = objc_stub::count(local_768);\n IVar17 = NSMutableArray::arrayWithCapacity_((ID)&_OBJC_CLASS___NSMutableArray,IVar17);\n uStack_5b8 = 0;\n local_5c0 = 0;\n uStack_5c8 = 0;\n local_5d0 = 0;\n uStack_5d8 = 0;\n local_5e0 = (long *)0x0;\n lStack_5e8 = 0;\n local_5f0 = 0;\n IVar19 = objc_stub::countByEnumeratingWithState_objects_count_\n (local_768,&local_5f0,auStack_2b0,0x10);\n if (IVar19 != 0) {\n lVar60 = *local_5e0;\n do {\n IVar24 = 0;\n do {\n if (*local_5e0 != lVar60) {\n _objc_enumerationMutation(local_768);\n }\n IVar25 = *(ID *)(lStack_5e8 + IVar24 * 8);\n local_180._0_8_ = dVar92;\n local_180._8_8_ = dVar73;\n local_170 = plVar95;\n dStack_168 = dVar74;\n local_160 = dVar96;\n dStack_158 = dVar97;\n FUN_10002b144(CVar100.field0_0x0.field0_0x0,dVar63,dVar64,dVar65,dVar75,dVar93,\n dVar77,dVar76,IVar25,local_180,bVar8);\n IVar26 = objc_stub::count(IVar25);\n if (0x4c < IVar26) {\n NSMutableArray::addObject_(IVar17,IVar25);\n }\n IVar24 = IVar24 + 1;\n } while (IVar19 != IVar24);\n IVar19 = objc_stub::countByEnumeratingWithState_objects_count_\n (local_768,&local_5f0,auStack_2b0,0x10);\n } while (IVar19 != 0);\n }\n IVar24 = NSMutableArray::count(IVar17);\n dVar94 = local_538;\n IVar19 = local_768;\n if (IVar24 != 0) {\n IVar19 = IVar17;\n }\n IVar17 = objc_stub::deviceRegistryID(param_3);\n FUN_10002b4fc(dVar94,local_880,&AStack_528,IVar19,IVar21,IVar17);\n if ((IVar20 == local_880) && (2.220446049250313e-16 < (double)AStack_528._104_8_)) {\n IVar20 = local_880;\n FUN_10002b738(AStack_528._104_8_,local_538,local_880,IVar19);\n }\n }\n if (IVar20 != 0) {\n local_880 = IVar20;\n }\n }\n pcVar30 = &cf_face_thin_defer_metal;\n if (uVar46 == 0) {\n pcVar30 = &cf_face_thin_ci;\n }\n IVar17 = objc_stub::length((ID)pcVar30);\n }\n _CGRectIsNull(local_808,local_820,local_830,local_838);\n if ((((IVar17 & 1) != 0) ||\n (_CGRectIsEmpty(local_808,local_820,local_830,local_838), (IVar17 & 1) != 0)) ||\n (dVar94 = local_808, _CGRectGetWidth(local_808,local_820,local_830,local_838),\n dVar94 <= 2.220446049250313e-16)) {\n bVar10 = false;\n }\n else {\n dVar94 = local_808;\n _CGRectGetHeight(local_808,local_820,local_830,local_838);\n bVar10 = 2.220446049250313e-16 < dVar94;\n }\n dVar94 = local_790;\n dVar66 = local_798;\n dVar79 = local_7a0;\n dVar99 = local_7a8;\n if ((uVar44 == 0) &&\n (dVar94 = local_808, dVar66 = local_820, dVar79 = local_830, dVar99 = local_838, !bVar10))\n {\n dVar94 = local_790;\n dVar66 = local_798;\n dVar79 = local_7a0;\n dVar99 = local_7a8;\n }\n uVar45 = SUB84(dVar76,0);\n if (local_894 == 0) {\n local_180._8_8_ = pdVar42[1];\n local_180._0_8_ = *pdVar42;\n local_170 = (long *)pdVar42[2];\n FUN_10002d0e4(*(undefined8 *)(param_1 + 8),local_180);\n puVar58 = (undefined *)0x0;\n IVar16 = 0;\n local_890 = (undefined *)0x0;\n }\n else {\n IVar17 = objc_stub::count(IVar16);\n puVar32 = (undefined *)\n NSMutableArray::arrayWithCapacity_((ID)&_OBJC_CLASS___NSMutableArray,IVar17);\n dStack_d8 = 0.0;\n local_e0 = 0.0;\n uStack_c8 = 0;\n uStack_d0 = 0;\n dStack_f8 = 0.0;\n local_100 = 0.0;\n dStack_e8 = 0.0;\n local_f0 = (long *)0x0;\n IVar17 = objc_stub::countByEnumeratingWithState_objects_count_\n (IVar16,&local_100,local_180,0x10);\n if (IVar17 != 0) {\n lVar60 = *local_f0;\n do {\n IVar19 = 0;\n do {\n if (*local_f0 != lVar60) {\n _objc_enumerationMutation(IVar16);\n }\n FUN_100029d20(*(undefined8 *)((long)dStack_f8 + IVar19 * 8));\n FUN_10002ced0(puVar32,0x18);\n IVar19 = IVar19 + 1;\n } while (IVar17 != IVar19);\n IVar17 = objc_stub::countByEnumeratingWithState_objects_count_\n (IVar16,&local_100,local_180,0x10);\n } while (IVar17 != 0);\n }\n IVar16 = objc_stub::count((ID)puVar32);\n puVar58 = (undefined *)0x0;\n if (IVar16 != 0) {\n puVar58 = puVar32;\n }\n puVar32 = puVar58;\n local_180._0_8_ = dVar92;\n local_180._8_8_ = dVar73;\n local_170 = plVar95;\n dStack_168 = dVar74;\n local_160 = dVar96;\n dStack_158 = dVar97;\n FUN_10002c7ec(CVar100.field0_0x0.field0_0x0,dVar63,dVar64,dVar65,dVar75,dVar93,dVar77,dVar76\n ,puVar58,local_180,bVar8);\n if (puVar32 != (undefined *)0x0) {\n puVar58 = puVar32;\n }\n puVar32 = PTR____NSArray0__struct_1000a8110;\n if (puVar58 != (undefined *)0x0) {\n puVar32 = puVar58;\n }\n puVar33 = (undefined *)\n NSMutableArray::arrayWithArray_((ID)&_OBJC_CLASS___NSMutableArray,puVar32);\n puVar32 = puVar33;\n if (bVar10) {\n puVar23 = local_180;\n dVar98 = local_808;\n dVar91 = local_820;\n dVar90 = local_830;\n dVar78 = local_838;\n local_180._0_8_ = dVar92;\n local_180._8_8_ = dVar73;\n local_170 = plVar95;\n dStack_168 = dVar74;\n local_160 = dVar96;\n dStack_158 = dVar97;\n FUN_10002cb20(local_808,local_820,local_830,local_838,CVar100.field0_0x0.field0_0x0,dVar63\n ,dVar64,dVar65,puVar23,bVar8);\n _CGRectIsNull();\n dVar69 = local_808;\n dVar55 = local_820;\n dVar85 = local_830;\n dVar80 = local_838;\n if (((((ulong)puVar23 & 1) == 0) &&\n (_CGRectIsEmpty(dVar98,dVar91,dVar90,dVar78), ((ulong)puVar23 & 1) == 0)) &&\n ((dVar68 = dVar98, _CGRectGetWidth(dVar98,dVar91,dVar90,dVar78),\n 2.220446049250313e-16 < dVar68 &&\n (dVar68 = dVar98, _CGRectGetHeight(dVar98,dVar91,dVar90,dVar78),\n 2.220446049250313e-16 < dVar68)))) {\n dVar69 = dVar98;\n dVar55 = dVar91;\n dVar85 = dVar90;\n dVar80 = dVar78;\n }\n FUN_10002ced0(dVar69,dVar55,dVar85,dVar80,puVar33,0x18);\n }\n _CGRectIsNull(dVar94,dVar66,dVar79,dVar99);\n if ((((((ulong)puVar32 & 1) == 0) &&\n (_CGRectIsEmpty(dVar94,dVar66,dVar79,dVar99), ((ulong)puVar32 & 1) == 0)) &&\n (dVar98 = dVar94, _CGRectGetWidth(dVar94,dVar66,dVar79,dVar99),\n 2.220446049250313e-16 < dVar98)) &&\n (dVar98 = dVar94, _CGRectGetHeight(dVar94,dVar66,dVar79,dVar99),\n 2.220446049250313e-16 < dVar98)) {\n puVar23 = local_180;\n dVar98 = dVar94;\n dVar91 = dVar66;\n dVar90 = dVar79;\n dVar78 = dVar99;\n local_180._0_8_ = dVar92;\n local_180._8_8_ = dVar73;\n local_170 = plVar95;\n dStack_168 = dVar74;\n local_160 = dVar96;\n dStack_158 = dVar97;\n FUN_10002cb20(dVar94,dVar66,dVar79,dVar99,CVar100.field0_0x0.field0_0x0,dVar63,dVar64,\n dVar65,puVar23,bVar8);\n _CGRectIsNull();\n dVar69 = dVar94;\n dVar55 = dVar66;\n dVar85 = dVar79;\n dVar80 = dVar99;\n if (((((ulong)puVar23 & 1) == 0) &&\n (_CGRectIsEmpty(dVar98,dVar91,dVar90,dVar78), ((ulong)puVar23 & 1) == 0)) &&\n ((dVar68 = dVar98, _CGRectGetWidth(dVar98,dVar91,dVar90,dVar78),\n 2.220446049250313e-16 < dVar68 &&\n (dVar68 = dVar98, _CGRectGetHeight(dVar98,dVar91,dVar90,dVar78),\n 2.220446049250313e-16 < dVar68)))) {\n dVar69 = dVar98;\n dVar55 = dVar91;\n dVar85 = dVar90;\n dVar80 = dVar78;\n }\n FUN_10002ced0(dVar69,dVar55,dVar85,dVar80,puVar33,0x18);\n }\n uVar29 = objc_stub::count((ID)puVar33);\n local_890 = puVar58;\n if (uVar29 != 0) {\n local_890 = puVar33;\n }\n if (((uVar44 != 0) || (_CGRectIsNull(dVar94,dVar66,dVar79,dVar99), (uVar29 & 1) != 0)) ||\n ((_CGRectIsEmpty(dVar94,dVar66,dVar79,dVar99), (uVar29 & 1) != 0 ||\n ((dVar98 = dVar94, _CGRectGetWidth(dVar94,dVar66,dVar79,dVar99),\n dVar98 <= 2.220446049250313e-16 ||\n (dVar98 = dVar94, _CGRectGetHeight(dVar94,dVar66,dVar79,dVar99),\n dVar98 <= 2.220446049250313e-16)))))) {\nLAB_10002527c:\n IVar16 = 0;\n }\n else {\n dVar98 = dVar94;\n dVar69 = dVar66;\n dVar91 = dVar79;\n dVar55 = dVar99;\n FUN_10002c6b8(dVar94,dVar66,dVar79,dVar99,AStack_528.field32_0xf0);\n _CGRectIsNull();\n if (((uVar29 & 1) != 0) ||\n (_CGRectIsEmpty(dVar98,dVar69,dVar91,dVar55), (uVar29 & 1) != 0)) goto LAB_10002527c;\n _CGRectStandardize(dVar98,dVar69,dVar91,dVar55);\n _CGRectIntersection();\n _CGRectIsNull();\n if (((uVar29 & 1) != 0) ||\n (_CGRectIsEmpty(dVar98,dVar69,dVar91,dVar55), (uVar29 & 1) != 0)) goto LAB_10002527c;\n local_180._0_8_ =\n NSValue::valueWithRect_((ID)&_OBJC_CLASS___NSValue,dVar98,dVar69,dVar91,dVar55);\n IVar16 = NSArray::arrayWithObjects_count_((ID)&_OBJC_CLASS___NSArray,local_180,1);\n }\n local_180._8_8_ = pdVar42[1];\n local_180._0_8_ = *pdVar42;\n local_170 = (long *)pdVar42[2];\n FUN_10002d0e4(*(undefined8 *)(param_1 + 8),local_180);\n }\n puVar23 = local_180;\n dVar98 = dVar94;\n dVar69 = dVar66;\n dVar91 = dVar79;\n dVar55 = dVar99;\n local_180._0_8_ = dVar92;\n local_180._8_8_ = dVar73;\n local_170 = plVar95;\n dStack_168 = dVar74;\n local_160 = dVar96;\n dStack_158 = dVar97;\n FUN_10002cb20(puVar23,bVar8);\n _CGRectIsNull();\n if ((((((ulong)puVar23 & 1) == 0) &&\n (_CGRectIsEmpty(dVar98,dVar69,dVar91,dVar55), ((ulong)puVar23 & 1) == 0)) &&\n (dVar90 = dVar98, _CGRectGetWidth(dVar98,dVar69,dVar91,dVar55),\n 2.220446049250313e-16 < dVar90)) &&\n (dVar90 = dVar98, _CGRectGetHeight(dVar98,dVar69,dVar91,dVar55),\n 2.220446049250313e-16 < dVar90)) {\n dVar94 = dVar98;\n dVar66 = dVar69;\n dVar79 = dVar91;\n dVar99 = dVar55;\n }\n puVar23 = local_180;\n dVar69 = local_790;\n dVar91 = local_798;\n dVar55 = local_7a0;\n dVar90 = local_7a8;\n uVar13 = uVar45;\n local_180._0_8_ = dVar92;\n local_180._8_8_ = dVar73;\n local_170 = plVar95;\n dStack_168 = dVar74;\n local_160 = dVar96;\n dStack_158 = dVar97;\n dVar98 = dVar93;\n FUN_10002cb20(puVar23,bVar8);\n _CGRectIsNull();\n if (((((ulong)puVar23 & 1) != 0) ||\n (_CGRectIsEmpty(dVar69,dVar91,dVar55,dVar90), ((ulong)puVar23 & 1) != 0)) ||\n ((dVar85 = dVar69, _CGRectGetWidth(dVar69,dVar91,dVar55,dVar90),\n dVar85 <= 2.220446049250313e-16 ||\n (dVar85 = dVar69, _CGRectGetHeight(dVar69,dVar91,dVar55,dVar90),\n dVar85 <= 2.220446049250313e-16)))) {\n dVar69 = local_790;\n dVar91 = local_798;\n dVar55 = local_7a0;\n dVar90 = local_7a8;\n }\n local_8a0 = 0;\n local_180._0_8_ = dVar92;\n local_180._8_8_ = dVar73;\n local_170 = plVar95;\n dStack_168 = dVar74;\n local_160 = dVar96;\n dStack_158 = dVar97;\n FUN_10002c7ec(CVar100.field0_0x0.field0_0x0,dVar63,dVar64,dVar65,dVar75,dVar93,dVar77,dVar76,0\n ,local_180,bVar8);\n local_180._0_8_ = dVar92;\n local_180._8_8_ = dVar73;\n local_170 = plVar95;\n dStack_168 = dVar74;\n local_160 = dVar96;\n dStack_158 = dVar97;\n FUN_10002c7ec(CVar100.field0_0x0.field0_0x0,dVar63,dVar64,dVar65,dVar75,dVar93,dVar77,dVar76,\n IVar16,local_180,bVar8);\n IVar16 = objc_stub::count((ID)local_890);\n if ((IVar16 == 0) && (IVar16 = objc_stub::count(local_8a0), IVar16 == 0)) {\n local_8d8 = 0;\n IVar16 = 0;\n }\n else {\n IVar16 = objc_stub::count((ID)local_890);\n IVar17 = objc_stub::count(local_8a0);\n local_8d8 = NSMutableArray::arrayWithCapacity_\n ((ID)&_OBJC_CLASS___NSMutableArray,IVar17 + IVar16);\n IVar16 = objc_stub::count((ID)local_890);\n if (IVar16 != 0) {\n NSMutableArray::addObjectsFromArray_(local_8d8,local_890);\n }\n IVar17 = objc_stub::count(local_8a0);\n IVar16 = 0;\n if (IVar17 != 0) {\n IVar16 = NSMutableArray::addObjectsFromArray_(local_8d8,local_8a0);\n }\n }\n if ((local_894 & 1) == 0) {\n IVar16 = *(ID *)(param_1 + 8);\n local_180._8_8_ = pdVar42[1];\n local_180._0_8_ = *pdVar42;\n local_170 = (long *)pdVar42[2];\n FUN_10002d0e4(IVar16,local_180);\n local_8d8 = 0;\n local_8a0 = 0;\n puVar58 = (undefined *)0x0;\n local_890 = (undefined *)0x0;\n dVar69 = local_790;\n dVar91 = local_798;\n dVar55 = local_7a0;\n dVar90 = local_7a8;\n dVar94 = local_790;\n dVar66 = local_798;\n dVar79 = local_7a0;\n dVar99 = local_7a8;\n }\n local_100 = *pdVar42;\n uVar6 = *(uint *)((long)pdVar42 + 0xc);\n dStack_f8 = (double)CONCAT44(dStack_f8._4_4_,*(undefined4 *)(pdVar42 + 1));\n plVar49 = (long *)pdVar42[2];\n if (*(long *)(param_1 + 8) == 0) {\n IVar17 = 0;\n }\n else {\n IVar16 = NSValue::valueWithNonretainedObject_((ID)&_OBJC_CLASS___NSValue);\n IVar17 = IVar16;\n }\n FUN_100050f34();\n IVar19 = IVar16;\n FUN_100050f34();\n IVar20 = IVar19;\n FUN_100050f34();\n IVar24 = IVar20;\n FUN_100050f34();\n dVar85 = local_790;\n dVar80 = local_798;\n dVar83 = local_7a0;\n dVar88 = local_7a8;\n FUN_10001bef0();\n dVar78 = local_790;\n dVar68 = local_798;\n dVar84 = local_7a0;\n dVar89 = local_7a8;\n FUN_10001bef0();\n IVar25 = objc_stub::count(IVar16);\n if ((((IVar25 == 0) && (IVar25 = objc_stub::count(IVar19), IVar25 == 0)) &&\n (IVar25 = objc_stub::count(IVar20), IVar25 == 0)) &&\n ((uVar29 = objc_stub::count(IVar24), uVar29 == 0 &&\n (FUN_10001a870(dVar85,dVar80,dVar83,dVar88), (uVar29 & 1) == 0)))) {\n FUN_10001a870(dVar78,dVar68,dVar84,dVar89);\n }\n else {\n uVar29 = 1;\n }\n if (DAT_1000bdfc8 != -1) {\n FUN_100079694();\n }\n IVar25 = DAT_1000bdfc0;\n objc_stub::lock(DAT_1000bdfc0);\n if (DAT_1000bdfd8 != -1) {\n FUN_1000796b8();\n }\n IVar26 = DAT_1000bdfd0;\n if ((uVar29 & 1) == 0) {\n if (IVar17 != 0) {\n objc_stub::removeObjectForKey_(DAT_1000bdfd0,IVar17);\n }\n DAT_1000bdfb0 = 0;\n DAT_1000bdfb8 = 0;\n }\n else {\n IVar56 = NSMutableDictionary::dictionary((ID)&_OBJC_CLASS___NSMutableDictionary);\n IVar34 = objc_stub::count(IVar16);\n if (IVar34 != 0) {\n NSMutableDictionary::setObject_forKeyedSubscript_(IVar56,IVar16,&cf_faceBoxes);\n }\n IVar35 = objc_stub::count(IVar19);\n IVar34 = 0;\n if (IVar35 != 0) {\n IVar34 = NSMutableDictionary::setObject_forKeyedSubscript_\n (IVar56,IVar19,&cf_faceSelectionBoxes);\n }\n _CGRectIsNull(dVar85,dVar80,dVar83,dVar88);\n if ((((IVar34 & 1) == 0) && (_CGRectIsEmpty(dVar85,dVar80,dVar83,dVar88), (IVar34 & 1) == 0)\n ) && ((dVar67 = dVar85, _CGRectGetWidth(dVar85,dVar80,dVar83,dVar88),\n 2.220446049250313e-16 < dVar67 &&\n (dVar67 = dVar85, _CGRectGetHeight(dVar85,dVar80,dVar83,dVar88),\n 2.220446049250313e-16 < dVar67)))) {\n IVar34 = NSValue::valueWithRect_((ID)&_OBJC_CLASS___NSValue,dVar85,dVar80,dVar83,dVar88);\n NSMutableDictionary::setObject_forKeyedSubscript_(IVar56,IVar34,&cf_faceSelectedBox);\n }\n IVar35 = objc_stub::count(IVar20);\n IVar34 = 0;\n if (IVar35 != 0) {\n IVar34 = NSMutableDictionary::setObject_forKeyedSubscript_(IVar56,IVar20,&cf_trackBoxes);\n }\n _CGRectIsNull(dVar78,dVar68,dVar84,dVar89);\n if (((((IVar34 & 1) == 0) &&\n (_CGRectIsEmpty(dVar78,dVar68,dVar84,dVar89), (IVar34 & 1) == 0)) &&\n (dVar85 = dVar78, _CGRectGetWidth(dVar78,dVar68,dVar84,dVar89),\n 2.220446049250313e-16 < dVar85)) &&\n (dVar85 = dVar78, _CGRectGetHeight(dVar78,dVar68,dVar84,dVar89),\n 2.220446049250313e-16 < dVar85)) {\n IVar34 = NSValue::valueWithRect_((ID)&_OBJC_CLASS___NSValue,dVar78,dVar68,dVar84,dVar89);\n NSMutableDictionary::setObject_forKeyedSubscript_(IVar56,IVar34,&cf_trackSelectedBox);\n }\n IVar34 = objc_stub::count(IVar24);\n if (IVar34 != 0) {\n NSMutableDictionary::setObject_forKeyedSubscript_(IVar56,IVar24,&cf_guardBoxes);\n }\n if ((uVar6 & 0x1d) == 1) {\n local_180._0_8_ = local_100;\n local_180._8_8_ = CONCAT44(uVar6,SUB84(dStack_f8,0));\n local_170 = plVar49;\n _CMTimeGetSeconds(local_180);\n }\n IVar34 = NSNumber::numberWithDouble_((ID)&_OBJC_CLASS___NSNumber);\n NSMutableDictionary::setObject_forKeyedSubscript_(IVar56,IVar34,&cf_renderTime);\n IVar56 = NSMutableDictionary::copy(IVar56);\n if (IVar17 == 0) {\n IVar17 = 0;\n }\n else {\n objc_stub::setObject_forKey_(IVar26,IVar56,IVar17);\n }\n DAT_1000bdfb0 = IVar56;\n DAT_1000bdfb8 = IVar17;\n _CFAbsoluteTimeGetCurrent();\n objc_stub::count(IVar16);\n objc_stub::count(IVar19);\n objc_stub::count(IVar20);\n objc_stub::count(IVar24);\n if ((uVar6 & 0x1d) == 1) {\n local_180._0_8_ = local_100;\n local_180._8_8_ = CONCAT44(uVar6,SUB84(dStack_f8,0));\n local_170 = plVar49;\n _CMTimeGetSeconds(local_180);\n }\n }\n objc_stub::unlock(IVar25);\n if (local_8cc == 0) {\n uVar6 = 0;\n }\n else {\n IVar16 = objc_stub::count(local_7b0);\n uVar6 = (uint)(0x4c < IVar16);\n }\n IVar16 = objc_stub::deviceRegistryID(param_3);\n FUN_10002d3cc();\n if (IVar16 != 0) {\n if ((IVar22 == 0) || (local_788 == 0)) {\n bVar10 = false;\n if (local_788 != 0) goto LAB_100025b5c;\nLAB_100025b74:\n local_780 = FxMTLDeviceCache::MTLPixelFormatForImageTile_\n ((ID)&objc::class_t::FxMTLDeviceCache,param_3);\n }\n else {\n IVar17 = objc_stub::width(local_788);\n if ((IVar17 != 0) && (IVar17 = objc_stub::height(local_788), IVar17 != 0)) {\n IVar17 = objc_stub::usage(local_788);\n if (((uint)IVar17 >> 2 & 1) != 0) {\n bVar10 = true;\n goto LAB_100025b5c;\n }\n objc_stub::usage(local_788);\n }\n bVar10 = false;\nLAB_100025b5c:\n IVar17 = objc_stub::pixelFormat(local_788);\n if (IVar17 == 0) goto LAB_100025b74;\n local_780 = objc_stub::pixelFormat(local_788);\n }\n IVar17 = local_780;\n if (puVar28 != (undefined8 *)0x0) {\n IVar17 = FxMTLDeviceCache::MTLPixelFormatForImageTile_\n ((ID)&objc::class_t::FxMTLDeviceCache,param_3);\n }\n IVar19 = local_780;\n if (!bVar10) {\n uVar59 = 0;\n if (2.220446049250313e-16 < local_8f8) {\n uVar59 = uVar46;\n }\n if (uVar59 == 1) {\n if (DAT_1000be018 != -1) {\n FUN_1000796dc();\n }\n if (((puVar28 == (undefined8 *)0x0) || (IVar22 == 0)) || ((DAT_1000bd201 & 1) == 0)) {\n local_788 = 0;\n }\n else {\n puVar36 = puVar28;\n _IOSurfaceGetWidth(puVar28);\n puVar37 = puVar28;\n _IOSurfaceGetHeight(puVar28);\n local_788 = IVar22;\n FUN_10002d514(IVar22,puVar28,IVar17,puVar36,puVar37);\n IVar19 = IVar17;\n if (local_788 == 0) goto LAB_100025c50;\n }\n }\n else {\nLAB_100025c50:\n local_788 = 0;\n IVar19 = local_780;\n }\n }\n local_780 = IVar19;\n uVar1 = 0x73;\n if (local_780 != 0) {\n uVar1 = local_780;\n }\n objc_stub::count(local_768);\n IVar17 = objc_stub::count(local_768);\n if (IVar17 == 0) {\n IVar17 = objc_stub::count(local_8e0);\n uVar59 = (uint)(0x4c < IVar17);\n }\n else {\n uStack_5f8 = 0;\n local_600 = 0;\n uStack_608 = 0;\n local_610 = 0;\n uStack_618 = 0;\n local_620 = (long *)0x0;\n lStack_628 = 0;\n local_630 = 0;\n IVar17 = objc_stub::countByEnumeratingWithState_objects_count_\n (local_768,&local_630,auStack_330,0x10);\n if (IVar17 == 0) {\n uVar59 = 0;\n }\n else {\n lVar60 = *local_620;\n do {\n IVar19 = 0;\n do {\n if (*local_620 != lVar60) {\n _objc_enumerationMutation(local_768);\n }\n IVar20 = objc_stub::count(*(ID *)(lStack_628 + IVar19 * 8));\n if (0x4c < IVar20) {\n uVar59 = 1;\n goto LAB_100025d44;\n }\n IVar19 = IVar19 + 1;\n } while (IVar17 != IVar19);\n IVar17 = objc_stub::countByEnumeratingWithState_objects_count_\n (local_768,&local_630,auStack_330,0x10);\n uVar59 = 0;\n } while (IVar17 != 0);\n }\n }\nLAB_100025d44:\n uVar4 = 0;\n if (2.220446049250313e-16 < local_8f8) {\n uVar4 = uVar46;\n }\n if (uVar44 == 0) {\n objc_stub::count(0);\n }\n objc_stub::count(local_7b0);\n objc_stub::count(local_768);\n IVar19 = objc_stub::count(local_768);\n IVar17 = local_8e0;\n if (IVar19 != 0) {\n IVar17 = objc_stub::firstObject(local_768);\n }\n objc_stub::count(IVar17);\n FUN_10001b584(local_808,local_820,local_830,local_838);\n FUN_10001b584(local_790,local_798,local_7a0,local_7a8);\n IVar17 = NSUserDefaults::standardUserDefaults((ID)&_OBJC_CLASS___NSUserDefaults);\n IVar19 = NSUserDefaults::objectForKey_(IVar17,&cf_MSE18GlobalFaceBoxPreviewEnabled);\n if (IVar19 == 0) {\n uVar46 = 0;\n }\n else {\n IVar17 = NSUserDefaults::boolForKey_(IVar17,&cf_MSE18GlobalFaceBoxPreviewEnabled);\n uVar46 = (uint)IVar17;\n }\n IVar17 = objc_stub::count((ID)puVar58);\n if ((IVar17 != 0) ||\n (IVar17 = objc_stub::count((ID)puVar58), puVar32 = local_890, IVar17 != 0)) {\n puVar32 = (undefined *)0x0;\n }\n if (*(long *)(param_1 + 8) == 0) {\n IVar17 = 0;\n }\n else {\n IVar17 = NSValue::valueWithNonretainedObject_((ID)&_OBJC_CLASS___NSValue);\n }\n if (DAT_1000bdfc8 != -1) {\n FUN_100079694();\n }\n IVar19 = DAT_1000bdfc0;\n objc_stub::lock(DAT_1000bdfc0);\n if (IVar17 == 0) {\n IVar17 = 0;\n }\n else {\n if (DAT_1000be028 != -1) {\n FUN_100079700();\n }\n IVar17 = objc_stub::objectForKeyedSubscript_(DAT_1000be020,IVar17);\n }\n objc_stub::unlock(IVar19);\n IVar20 = objc_stub::objectForKeyedSubscript_(IVar17,&cf_selectionDisplayPoint);\n puVar33 = &_OBJC_CLASS___NSValue;\n _objc_opt_class(&_OBJC_CLASS___NSValue);\n IVar19 = IVar20;\n _objc_opt_isKindOfClass(IVar20,puVar33);\n if ((IVar19 & 1) != 0) {\n objc_stub::pointValue(IVar20);\n }\n IVar20 = objc_stub::objectForKeyedSubscript_(IVar17,&cf_selectionSourcePoint);\n puVar33 = &_OBJC_CLASS___NSValue;\n _objc_opt_class(&_OBJC_CLASS___NSValue);\n IVar19 = IVar20;\n _objc_opt_isKindOfClass(IVar20,puVar33);\n if ((IVar19 & 1) != 0) {\n objc_stub::pointValue(IVar20);\n uVar13 = uVar45;\n local_180._0_8_ = dVar92;\n local_180._8_8_ = dVar73;\n local_170 = plVar95;\n dStack_168 = dVar74;\n local_160 = dVar96;\n dStack_158 = dVar97;\n dVar98 = dVar93;\n FUN_10002d97c(local_180,bVar8);\n }\n IVar19 = objc_stub::objectForKeyedSubscript_(IVar17,&cf_selectionMirrorPoint);\n puVar33 = &_OBJC_CLASS___NSValue;\n _objc_opt_class(&_OBJC_CLASS___NSValue);\n IVar17 = IVar19;\n _objc_opt_isKindOfClass(IVar19,puVar33);\n if ((IVar17 & 1) != 0) {\n objc_stub::pointValue(IVar19);\n local_180._0_8_ = dVar92;\n local_180._8_8_ = dVar73;\n local_170 = plVar95;\n dStack_168 = dVar74;\n local_160 = dVar96;\n dStack_158 = dVar97;\n dVar98 = dVar93;\n FUN_10002d97c(local_180,bVar8);\n uVar13 = uVar45;\n }\n local_988 = dVar99;\n IVar17 = local_8a0;\n dStack_970 = dVar94;\n local_978 = dVar66;\n dStack_980 = dVar79;\n local_9a8 = dVar90;\n dStack_990 = dVar69;\n local_998 = dVar91;\n dStack_9a0 = dVar55;\n if ((local_894 & uVar46) == 0) {\n IVar17 = 0;\n puVar58 = (undefined *)0x0;\n puVar32 = (undefined *)0x0;\n local_988 = local_7a8;\n dStack_970 = local_790;\n local_978 = local_798;\n dStack_980 = local_7a0;\n local_9a8 = local_7a8;\n dStack_990 = local_790;\n local_998 = local_798;\n dStack_9a0 = local_7a0;\n }\n objc_stub::count((ID)puVar32);\n objc_stub::count((ID)puVar58);\n objc_stub::count(IVar17);\n objc_stub::count(0);\n objc_stub::count((ID)puVar32);\n objc_stub::count((ID)puVar58);\n objc_stub::count(IVar17);\n objc_stub::count(0);\n objc_stub::count((ID)local_890);\n objc_stub::count(local_8a0);\n objc_stub::count(0);\n objc_stub::count(local_8d8);\n _NSStringFromRect(dVar94,dVar66,dVar79,dVar99);\n _NSStringFromRect(dVar69,dVar91,dVar55,dVar90);\n _NSStringFromRect(dStack_970,local_978,dStack_980,local_988);\n _NSStringFromRect(dStack_990,local_998,dStack_9a0,local_9a8);\n _NSStringFromRect(dStack_970,local_978,dStack_980,local_988);\n _NSStringFromRect(dStack_990,local_998,dStack_9a0,local_9a8);\n if (IVar22 == 0 || local_788 == 0) {\nLAB_1000268b0:\n uVar44 = 0;\n }\n else {\n IVar19 = objc_stub::width(local_788);\n IVar20 = objc_stub::height(local_788);\n uVar29 = objc_stub::width(local_788);\n IVar24 = objc_stub::height(local_788);\n FUN_10002dc00(dVar86,dVar81,dVar82,dVar87,uVar29,IVar24);\n uVar44 = (uint)uVar29;\n uVar46 = uVar44;\n if (bVar8 != 0) {\n iVar14 = (int)local_180;\n local_180._0_8_ = dVar92;\n local_180._8_8_ = dVar73;\n local_170 = plVar95;\n dStack_168 = dVar74;\n local_160 = dVar96;\n dStack_158 = dVar97;\n FUN_1000295e4();\n uVar46 = 0;\n if (iVar14 != 0) {\n local_100 = dVar92;\n dStack_f8 = dVar73;\n local_f0 = plVar95;\n dStack_e8 = dVar74;\n local_e0 = dVar96;\n dStack_d8 = dVar97;\n _CGAffineTransformInvert(local_180,&local_100);\n dStack_f8 = (double)local_180._8_8_;\n local_100 = (double)local_180._0_8_;\n dStack_e8 = dStack_168;\n local_f0 = local_170;\n dStack_d8 = dStack_158;\n local_e0 = local_160;\n uVar46 = (uint)&local_100;\n FUN_10002dc94(dVar86,dVar81,dVar82,dVar87);\n }\n }\n dVar94 = CVar100.field0_0x0.field0_0x0;\n dVar66 = dVar63;\n dVar79 = dVar64;\n dVar99 = dVar65;\n _CGRectIntersection();\n FUN_100021624(dVar94,dVar66,dVar79,dVar99);\n if (uVar46 == 0) {\nLAB_100026328:\n uVar45 = 0;\n }\n else {\n dVar69 = dVar94;\n _CGRectGetWidth(dVar94,dVar66,dVar79,dVar99);\n dVar91 = dVar86;\n _CGRectGetWidth(dVar86,dVar81,dVar82,dVar87);\n dVar55 = dVar86;\n _CGRectGetWidth(dVar86,dVar81,dVar82,dVar87);\n dVar55 = dVar55 * 0.01;\n if (dVar55 <= 2.0) {\n dVar55 = 2.0;\n }\n if (dVar55 < ABS(dVar69 - dVar91)) goto LAB_100026328;\n dVar69 = dVar94;\n _CGRectGetHeight(dVar94,dVar66,dVar79,dVar99);\n dVar91 = dVar86;\n _CGRectGetHeight(dVar86,dVar81,dVar82,dVar87);\n dVar55 = dVar86;\n _CGRectGetHeight(dVar86,dVar81,dVar82,dVar87);\n dVar55 = dVar55 * 0.01;\n if (dVar55 <= 2.0) {\n dVar55 = 2.0;\n }\n uVar45 = (uint)(ABS(dVar69 - dVar91) <= dVar55);\n }\n FUN_100021624(dVar94,dVar66,dVar79,dVar99);\n local_9d0 = NEON_fmov(0x3f800000,4);\n local_9c0 = 0;\n if ((uVar46 != 0) &&\n (FUN_100021624(CVar100.field0_0x0.field0_0x0,dVar63,dVar64,dVar65), uVar46 != 0)) {\n dVar69 = CVar100.field0_0x0.field0_0x0;\n _CGRectGetWidth(CVar100.field0_0x0.field0_0x0,dVar63,dVar64,dVar65);\n dVar91 = CVar100.field0_0x0.field0_0x0;\n _CGRectGetHeight(CVar100.field0_0x0.field0_0x0,dVar63,dVar64,dVar65);\n if ((2.220446049250313e-16 < dVar69) && (2.220446049250313e-16 < dVar91)) {\n dVar55 = dVar94;\n _CGRectGetMinX(dVar94,dVar66,dVar79,dVar99);\n dVar90 = CVar100.field0_0x0.field0_0x0;\n _CGRectGetMinX(CVar100.field0_0x0.field0_0x0,dVar63,dVar64,dVar65);\n dVar85 = dVar94;\n _CGRectGetMinY(dVar94,dVar66,dVar79,dVar99);\n dVar78 = CVar100.field0_0x0.field0_0x0;\n _CGRectGetMinY(CVar100.field0_0x0.field0_0x0,dVar63,dVar64,dVar65);\n dVar80 = dVar94;\n _CGRectGetWidth(dVar94,dVar66,dVar79,dVar99);\n dVar68 = dVar94;\n _CGRectGetHeight(dVar94,dVar66,dVar79,dVar99);\n dVar90 = (dVar55 - dVar90) / dVar69;\n dVar55 = (dVar85 - dVar78) / dVar91;\n dVar80 = dVar80 / dVar69;\n if ((((((ulong)ABS(dVar90) < 0x7ff0000000000000) &&\n ((ulong)ABS(dVar55) < 0x7ff0000000000000)) &&\n ((ulong)ABS(dVar80) < 0x7ff0000000000000)) &&\n ((dVar68 = dVar68 / dVar91, (ulong)ABS(dVar68) < 0x7ff0000000000000 &&\n (2.220446049250313e-16 < dVar80)))) && (2.220446049250313e-16 < dVar68)) {\n dVar69 = 2.0;\n if (dVar90 <= 2.0) {\n dVar69 = dVar90;\n }\n dVar91 = -1.0;\n if (-1.0 <= dVar90) {\n dVar91 = dVar69;\n }\n dVar69 = 2.0;\n if (dVar55 <= 2.0) {\n dVar69 = dVar55;\n }\n dVar90 = -1.0;\n if (-1.0 <= dVar55) {\n dVar90 = dVar69;\n }\n local_9c0 = CONCAT44((float)dVar90,(float)dVar91);\n dVar69 = 3.0;\n if (dVar80 <= 3.0) {\n dVar69 = dVar80;\n }\n dVar91 = 1e-06;\n if (1e-06 <= dVar80) {\n dVar91 = dVar69;\n }\n dVar69 = 3.0;\n if (dVar68 <= 3.0) {\n dVar69 = dVar68;\n }\n dVar55 = 1e-06;\n if (1e-06 <= dVar68) {\n dVar55 = dVar69;\n }\n local_9d0 = CONCAT44((float)dVar55,(float)dVar91);\n }\n }\n }\n IVar24 = objc_stub::width(local_788);\n IVar25 = objc_stub::height(local_788);\n uVar46 = 0;\n if (IVar24 != 0 && IVar25 != 0) {\n uVar46 = uVar44;\n }\n if (uVar46 == 1) {\n IVar26 = IVar25;\n FUN_100021624(dVar75,dVar93,dVar77,dVar76);\n iVar14 = (int)IVar26;\n if ((iVar14 == 0) || (FUN_100021624(dVar86,dVar81,dVar82,dVar87), iVar14 == 0))\n goto LAB_1000266cc;\n dVar69 = dVar75;\n _CGRectGetWidth(dVar75,dVar93,dVar77,dVar76);\n dVar91 = dVar75;\n _CGRectGetHeight(dVar75,dVar93,dVar77,dVar76);\n dVar55 = dVar86;\n _CGRectGetWidth(dVar86,dVar81,dVar82,dVar87);\n dVar90 = dVar86;\n _CGRectGetHeight(dVar86,dVar81,dVar82,dVar87);\n dVar85 = dVar86;\n _CGRectGetMinX(dVar86,dVar81,dVar82,dVar87);\n dVar78 = dVar75;\n _CGRectGetMinX(dVar75,dVar93,dVar77,dVar76);\n if (4.0 < ABS(dVar85 - dVar78)) goto LAB_1000266cc;\n dVar85 = dVar86;\n _CGRectGetMinY(dVar86,dVar81,dVar82,dVar87);\n dVar78 = dVar75;\n _CGRectGetMinY(dVar75,dVar93,dVar77,dVar76);\n if (4.0 < ABS(dVar85 - dVar78)) goto LAB_1000266cc;\n dVar85 = dVar69 * 0.004;\n if (dVar85 <= 8.0) {\n dVar85 = 8.0;\n }\n if (dVar85 < ABS(dVar55 - dVar69)) goto LAB_1000266cc;\n dVar69 = dVar91 * 0.004;\n if (dVar69 <= 8.0) {\n dVar69 = 8.0;\n }\n if (dVar69 < ABS(dVar90 - dVar91)) goto LAB_1000266cc;\n if (ABS((double)IVar24 - dVar55) <= 1.0) {\n bVar10 = ABS((double)IVar25 - dVar90) <= 1.0;\n }\n else {\n bVar10 = false;\n }\n }\n else {\nLAB_1000266cc:\n bVar10 = false;\n }\n dVar91 = (double)IVar19;\n dVar69 = (double)IVar20;\n local_9b0 = local_880;\n if (uVar44 != 0) {\n FUN_10002decc(dVar86,dVar81,dVar82,dVar87,0,0,dVar91,dVar69,local_880,1);\n }\n uVar46 = uVar4 & uVar59;\n dVar55 = dVar69;\n if (uVar46 == 0) {\n FUN_10002ed00(0,0,dVar91);\n pcVar30 = &cf_output_metal_make_opaque_bounds;\n }\n else {\n IVar19 = objc_stub::imageByCroppingToRect_(local_9b0,0,0,dVar91);\n if (IVar19 != 0) {\n local_9b0 = IVar19;\n }\n pcVar30 = &cf_output_metal_face_thin_crop_bounds;\n }\n objc_stub::length((ID)pcVar30);\n if (local_7d8 == 0) {\n uVar53 = 0;\nLAB_100026808:\n CVar102.field1_0x10.field1_0x8 = dVar55;\n uVar47 = 0;\n }\n else {\n IVar19 = objc_stub::width(local_7d8);\n IVar20 = objc_stub::width(local_788);\n if (IVar19 == IVar20) {\n IVar19 = objc_stub::height(local_7d8);\n IVar20 = objc_stub::height(local_788);\n if (IVar19 != IVar20) goto LAB_1000267d0;\n dVar55 = CVar102.field1_0x10.field1_0x8;\n _CGRectEqualToRect(CVar102.field0_0x0.field0_0x0,CVar102.field0_0x0.field1_0x8,\n CVar102.field1_0x10.field0_0x0,CVar102.field1_0x10.field1_0x8,\n dVar86,dVar81,dVar82,dVar87);\n uVar47 = (uint)IVar20;\n uVar53 = uVar47;\n }\n else {\nLAB_1000267d0:\n uVar47 = (uint)IVar20;\n uVar53 = 0;\n }\n if (uVar44 == 0) goto LAB_100026808;\n _CGRectEqualToRect(CVar102.field0_0x0.field0_0x0,CVar102.field0_0x0.field1_0x8,\n CVar102.field1_0x10.field0_0x0,CVar102.field1_0x10.field1_0x8,\n CVar100.field0_0x0.field0_0x0,dVar63,dVar64,dVar65);\n uVar47 = uVar47 & uVar45;\n }\n uVar45 = 0;\n if (local_880 == IVar18) {\n uVar45 = uVar46;\n }\n uVar45 = uVar45 & uVar44 & (uVar53 | uVar47);\n if (uVar46 != 0) {\n pcVar30 = &cf_output_metal_path_direct_source;\n if (uVar45 == 0) {\n pcVar30 = &cf_output_metal_path_processed_intermediate;\n }\n objc_stub::length((ID)pcVar30);\n }\n IVar19 = objc_stub::deviceRegistryID(param_3);\n IVar19 = FxMTLDeviceCache::commandQueueWithRegistryID_pixelFormat_\n (IVar21,IVar19,local_780);\n objc_stub::width(local_788);\n objc_stub::height(local_788);\n if (IVar19 == 0) goto LAB_1000268b0;\n objc_stub::length(0x1000ac8a0);\n IVar20 = objc_stub::commandBuffer(IVar19);\n objc_stub::enqueue(IVar20);\n if (((uVar45 | uVar46 ^ 0xffffffff | uVar44 ^ 1) & 1) == 0) {\n bVar61 = DAT_1000be030;\n if (DAT_1000be038 != -1) {\n FUN_100079724();\n bVar61 = DAT_1000be030;\n }\n }\n else {\n bVar61 = 0;\n }\n if (uVar45 == 0 && (bVar61 & 1) == 0) {\n IVar24 = objc_stub::width(local_788);\n IVar25 = objc_stub::height(local_788);\n local_7e8 = IVar22;\n FUN_10002ef38(IVar22,uVar1,IVar24,IVar25);\n objc_stub::length(0x1000ac8c0);\n if (local_7e8 != 0) {\n CVar102.field1_0x10.field1_0x8 = dVar69;\n objc_stub::render_toMTLTexture_commandBuffer_bounds_colorSpace_\n (IVar16,0,0,dVar91,local_9b0,local_7e8,IVar20,local_888);\n objc_stub::length(0x1000ac8e0);\n uVar53 = 1;\n goto LAB_100026978;\n }\n local_7e8 = 0;\n uVar53 = 0;\n local_638 = 0;\n if (uVar45 != 0 || (bVar61 & 1) != 0) goto LAB_100026978;\n local_7f8 = 0;\n uVar45 = 0;\n }\n else {\n uVar53 = 0;\n local_7e8 = 0;\nLAB_100026978:\n local_638 = 0;\n if ((uVar59 & (uVar46 | uVar6)) == 1) {\n IVar24 = objc_stub::count(local_768);\n if (IVar24 < 2) {\n if (bVar10) {\n local_7f8 = local_8e0;\n FUN_10002f2f8();\n objc_stub::length(local_7f8);\n }\n else {\n local_7f8 = 0;\n }\n IVar24 = objc_stub::length(local_7f8);\n if (IVar24 < 0x268) {\n local_7f8 = local_8e0;\n CVar102.field1_0x10.field1_0x8 = dVar65;\n local_180._0_8_ = dVar92;\n local_180._8_8_ = dVar73;\n local_170 = plVar95;\n dStack_168 = dVar74;\n local_160 = dVar96;\n dStack_158 = dVar97;\n FUN_10002f59c(CVar100.field0_0x0.field0_0x0,dVar63,dVar64,dVar65,dVar86,dVar81,\n dVar82,dVar87,local_8e0,local_180,bVar8);\n objc_stub::length(local_7f8);\n }\n IVar24 = objc_stub::length(local_7f8);\n local_638 = (ulong)(0x267 < IVar24);\n }\n else {\n if (bVar10) {\n local_7f8 = local_768;\n FUN_10002efa0(local_768,&local_638);\n objc_stub::length(local_7f8);\n }\n else {\n local_7f8 = 0;\n }\n IVar24 = objc_stub::length(local_7f8);\n CVar102.field1_0x10.field1_0x8 = dVar73;\n if (IVar24 < 0x268) {\n local_7f8 = local_768;\n CVar102.field1_0x10.field1_0x8 = dVar65;\n local_180._0_8_ = dVar92;\n local_180._8_8_ = dVar73;\n local_170 = plVar95;\n dStack_168 = dVar74;\n local_160 = dVar96;\n dStack_158 = dVar97;\n FUN_10002f10c(CVar100.field0_0x0.field0_0x0,dVar63,dVar64,dVar65,dVar86,dVar81,\n dVar82,dVar87,local_768,local_180,bVar8,&local_638);\n objc_stub::length(local_7f8);\n }\n }\n }\n else {\n local_7f8 = 0;\n }\n if (uVar46 == 0) {\n lVar60 = 0;\n IVar24 = 0;\n }\n else {\n IVar24 = objc_stub::length(local_7f8);\n uVar46 = 0;\n lVar60 = 0;\n if (IVar24 < 0x268) {\n IVar24 = 0;\n }\n else {\n IVar24 = 0;\n if (local_638 != 0) {\n lVar60 = local_638 * 0x4d;\n uVar46 = 1;\n IVar24 = local_7f8;\n }\n }\n }\n uVar59 = uVar6 ^ 1;\n if (local_7f8 != 0) {\n uVar59 = 1;\n }\n if (uVar59 == 0) {\n if (bVar10) {\n local_9d8 = local_7b0;\n FUN_10002f2f8();\n }\n else {\n local_9d8 = 0;\n }\n IVar25 = objc_stub::length(local_9d8);\n if (IVar25 < 0x268) {\n local_9d8 = local_7b0;\n local_180._0_8_ = dVar92;\n local_180._8_8_ = dVar73;\n local_170 = plVar95;\n dStack_168 = dVar74;\n local_160 = dVar96;\n dStack_158 = dVar97;\n FUN_10002f59c(CVar100.field0_0x0.field0_0x0,dVar63,dVar64,dVar65,dVar86,dVar81,\n dVar82,dVar87,local_7b0,local_180,bVar8);\n CVar102.field1_0x10.field1_0x8 = dVar65;\n }\n }\n else {\n local_9d8 = 0;\n }\n IVar25 = objc_stub::deviceRegistryID(param_3);\n IVar25 = FxMTLDeviceCache::pipelineStateWithRegistryID_pixelFormat_\n (IVar21,IVar25,local_780);\n if (IVar25 == 0) {\n uVar45 = 0;\n uVar53 = 0;\n }\n else {\n uVar50 = local_638;\n if (local_638 < 2) {\n uVar50 = 1;\n }\n dVar97 = local_8f8 * (double)AStack_528._104_8_;\n dVar96 = 1.0;\n if (dVar97 <= 1.0) {\n dVar96 = dVar97;\n }\n local_708 = 0.0;\n dVar92 = 0.0;\n if (0.0 <= dVar97) {\n dVar92 = dVar96;\n }\n local_700 = dVar92;\n FUN_10002fb74(&local_660,&AStack_528);\n dVar96 = local_700;\n dVar97 = local_708;\n dVar73 = CVar102.field1_0x10.field1_0x8;\n if ((uVar46 & (uVar45 | uVar44)) == 1) {\n if (DAT_1000be048 != -1) {\n FUN_100079748();\n }\n dVar96 = local_700;\n dVar97 = local_708;\n dVar73 = CVar102.field1_0x10.field1_0x8;\n if (((DAT_1000be040 != 1) ||\n (IVar26 = objc_stub::length(IVar24), dVar96 = local_700, dVar97 = local_708,\n dVar73 = CVar102.field1_0x10.field1_0x8, lVar60 == 0)) ||\n (IVar26 < (ulong)(lVar60 << 3))) goto LAB_100026dcc;\n IVar26 = IVar24;\n local_6f8 = extraout_d0_23;\n FUN_10002fd48(IVar24,lVar60);\n iVar14 = (int)IVar26;\n dVar96 = local_700;\n dVar97 = local_708;\n dVar73 = CVar102.field1_0x10.field1_0x8;\n FUN_10002fe4c();\n if (iVar14 == 0) goto LAB_100026dfc;\n _CGRectGetWidth(local_6f8,local_700,local_708,CVar102.field1_0x10.field1_0x8);\n _CGRectGetHeight(local_6f8,local_700,local_708,CVar102.field1_0x10.field1_0x8);\n _CGRectInset();\n _CGRectStandardize();\n _CGRectIntersection();\n dVar96 = local_700;\n dVar97 = local_708;\n dVar73 = CVar102.field1_0x10.field1_0x8;\n FUN_10002fe4c(local_6f8);\n if (iVar14 == 0) goto LAB_100026dfc;\n dVar74 = local_6f8;\n _CGRectGetWidth(local_6f8,local_700,local_708,CVar102.field1_0x10.field1_0x8);\n dVar63 = local_6f8;\n dVar97 = local_708;\n dVar73 = CVar102.field1_0x10.field1_0x8;\n _CGRectGetHeight(local_6f8,local_700);\n dVar96 = 0.72;\n bVar10 = dVar74 * dVar63 < 0.72 && 0.0 < dVar74 * dVar63;\n local_730 = CVar102.field1_0x10.field1_0x8;\n }\n else {\nLAB_100026dcc:\n if ((uVar46 != 0) && (uVar45 != 0 || (uVar29 & 1) != 0)) {\n if (DAT_1000be048 != -1) {\n FUN_100079748();\n }\n if ((DAT_1000be040 & 1) == 0) {\n objc_stub::length(0x1000ac900);\n }\n }\nLAB_100026dfc:\n bVar10 = false;\n local_730 = local_7a8;\n local_708 = local_7a0;\n local_700 = local_798;\n local_6f8 = local_790;\n }\n IVar26 = objc_stub::length(local_7f8);\n if (0x267 < IVar26) {\n objc_stub::bytes(local_7f8);\n uVar29 = local_638;\n if (local_638 < 2) {\n uVar29 = 1;\n }\n uVar70 = extraout_d0_24;\n FUN_10002fd48(local_7f8,uVar29 * 0x4d);\n uVar71 = uVar70;\n CVar102.field1_0x10.field1_0x8 = dVar96;\n dVar64 = dVar97;\n dVar55 = dVar73;\n FUN_10002a7b8(local_7b0,0,0x4b);\n uVar72 = uVar71;\n dVar63 = CVar102.field1_0x10.field1_0x8;\n dVar65 = dVar64;\n dVar90 = dVar55;\n FUN_10002a928(local_7b0);\n dVar74 = dVar75;\n _CGRectGetWidth(dVar75,dVar93,dVar77,dVar76);\n _CGRectGetHeight(dVar75,dVar93,dVar77,dVar76);\n IVar26 = local_7f8;\n FUN_10002ffa0(local_7f8);\n FUN_10001b584(local_560.field0_0x0.field0_0x0,local_560.field0_0x0.field1_0x8,\n local_560.field1_0x10.field0_0x0,local_560.field1_0x10.field1_0x8);\n FUN_10001b584(local_7b8,local_7c0,local_7c8,local_7d0);\n FUN_10001b584(local_808,local_820,local_830,local_838);\n FUN_10001c338(uVar71,CVar102.field1_0x10.field1_0x8,dVar64,dVar55);\n FUN_10001c338(uVar72,dVar63,dVar65,dVar90);\n FUN_10001b584(uVar70,dVar96,dVar97,dVar73);\n FUN_10001c338(local_6f8,local_700,local_708,local_730);\n FUN_10001c338(dVar94,dVar66,dVar79,dVar99);\n _CGRectGetWidth(uVar71,CVar102.field1_0x10.field1_0x8,dVar64,dVar55);\n _CGRectGetHeight(uVar71,CVar102.field1_0x10.field1_0x8,dVar64,dVar55);\n _CGRectGetWidth(local_7b8,local_7c0,local_7c8,local_7d0);\n _CGRectGetHeight(local_7b8,local_7c0,local_7c8,local_7d0);\n _CGRectGetWidth(uVar70,dVar96,dVar97,dVar73);\n _CGRectGetHeight(uVar70,dVar96,dVar97,dVar73);\n FUN_10002ab0c(IVar26);\n FUN_10002ac7c(dVar74,dVar75,IVar26);\n }\n if ((uVar46 == 0) ||\n (IVar26 = objc_stub::length(IVar24), IVar26 < (ulong)(lVar60 << 3))) {\nLAB_100027018:\n uVar44 = uVar53;\n if (local_7e8 != 0) {\n uVar44 = 1;\n }\n if (uVar44 == 0 && uVar45 == 0) {\n IVar24 = objc_stub::width(local_788);\n IVar26 = objc_stub::height(local_788);\n local_7e8 = IVar22;\n FUN_10002ef38(IVar22,uVar1,IVar24,IVar26);\n objc_stub::length(0x1000acba0);\n }\n if (local_7e8 == 0) {\n uVar53 = 1;\n }\n if (uVar53 == 0) {\n objc_stub::render_toMTLTexture_commandBuffer_bounds_colorSpace_\n (IVar16,0,0,dVar91,dVar69,local_9b0,local_7e8,IVar20,local_888);\n objc_stub::length(0x1000acbc0);\n }\n IVar24 = MTLRenderPassDescriptor::renderPassDescriptor\n ((ID)&_OBJC_CLASS___MTLRenderPassDescriptor);\n IVar26 = MTLRenderPassDescriptor::colorAttachments(IVar24);\n IVar26 = MTLRenderPassDescriptor::objectAtIndexedSubscript_(IVar26,0);\n MTLRenderPassDescriptor::setTexture_(IVar26,local_788);\n IVar26 = MTLRenderPassDescriptor::colorAttachments(IVar24);\n IVar26 = MTLRenderPassDescriptor::objectAtIndexedSubscript_(IVar26,0);\n MTLRenderPassDescriptor::setLoadAction_(IVar26,2);\n IVar26 = MTLRenderPassDescriptor::colorAttachments(IVar24);\n IVar26 = MTLRenderPassDescriptor::objectAtIndexedSubscript_(IVar26,0);\n MTLRenderPassDescriptor::setStoreAction_(IVar26,1);\n IVar26 = MTLRenderPassDescriptor::colorAttachments(IVar24);\n IVar26 = MTLRenderPassDescriptor::objectAtIndexedSubscript_(IVar26,0);\n MTLRenderPassDescriptor::setClearColor_(IVar26,0,0,0,0x3ff0000000000000);\n IVar24 = objc_stub::renderCommandEncoderWithDescriptor_(IVar20,IVar24);\n if (IVar24 == 0) {\n uVar45 = 0;\n uVar53 = 0;\n }\n else {\n IVar26 = objc_stub::width(local_788);\n IVar56 = objc_stub::height(local_788);\n FUN_1000315fc(local_180,IVar26,IVar56);\n IVar26 = objc_stub::width(local_788);\n IVar56 = objc_stub::height(local_788);\n local_680 = CONCAT44((int)IVar56,(int)IVar26);\n IVar26 = objc_stub::width(local_788);\n IVar56 = objc_stub::height(local_788);\n local_f0 = (long *)(double)IVar26;\n dStack_e8 = (double)IVar56;\n local_100 = 0.0;\n dStack_f8 = 0.0;\n dStack_d8 = 1.0;\n local_e0 = -1.0;\n objc_stub::setViewport_(IVar24,&local_100);\n objc_stub::setRenderPipelineState_(IVar24,IVar25);\n objc_stub::setVertexBytes_length_atIndex_(IVar24,local_180,0x40,0);\n objc_stub::setVertexBytes_length_atIndex_(IVar24,&local_680,8,1);\n objc_stub::setFragmentTexture_atIndex_(IVar24,local_7e8,0);\n objc_stub::drawPrimitives_vertexStart_vertexCount_(IVar24,4,0,4);\n objc_stub::endEncoding(IVar24);\n objc_stub::length(0x1000acbe0);\n objc_stub::length(0x1000acc00);\n uVar45 = 0;\n uVar53 = 1;\n }\n }\n else {\n pcVar30 = &cf_output_metal_face_thin_roi_requested;\n if (bVar10 == false) {\n pcVar30 = &cf_output_metal_face_thin_full_requested;\n }\n IVar26 = objc_stub::length((ID)pcVar30);\n iVar14 = (int)IVar26;\n uVar44 = (uint)((ulong)dVar98 >> 0x20);\n fVar62 = (float)dVar92;\n uVar48 = (undefined4)uVar50;\n if (uVar45 == 0) {\nLAB_1000274ec:\n if ((bVar10 & bVar61) == 1) {\n iVar15 = iVar14;\n FUN_10002fe4c(local_6f8,local_700,local_708,local_730);\n iVar14 = 0;\n if (iVar15 != 0) {\n dVar96 = local_6f8;\n dVar97 = local_700;\n dVar92 = local_708;\n dVar73 = local_730;\n FUN_100030cc4(local_6f8,local_700,local_708,local_730);\n FUN_100030da8();\n FUN_100021624();\n iVar14 = 0;\n if (iVar15 != 0) {\n dVar94 = dVar96;\n _CGRectGetWidth(dVar96,dVar97,dVar92,dVar73);\n uVar29 = (ulong)dVar94;\n if (uVar29 < 2) {\n uVar29 = 1;\n }\n dVar94 = dVar96;\n _CGRectGetHeight(dVar96,dVar97,dVar92,dVar73);\n uVar50 = (ulong)dVar94;\n if (uVar50 < 2) {\n uVar50 = 1;\n }\n IVar26 = MTLTextureDescriptor::\n texture2DDescriptorWithPixelFormat_width_height_mipmapped_\n ((ID)&_OBJC_CLASS___MTLTextureDescriptor,uVar1,uVar29,\n uVar50,0);\n MTLTextureDescriptor::setUsage_(IVar26,7);\n MTLTextureDescriptor::setStorageMode_(IVar26,2);\n IVar26 = objc_stub::newTextureWithDescriptor_(IVar22,IVar26);\n iVar14 = 0;\n if (IVar26 != 0) {\n IVar56 = local_9b0;\n FUN_10002ee0c(0,0,dVar91,dVar69,local_9b0);\n objc_stub::render_toMTLTexture_commandBuffer_bounds_colorSpace_\n (IVar16,0,0,dVar91,dVar69,IVar56,local_788,IVar20,local_888);\n objc_stub::length(0x1000aca00);\n IVar56 = objc_stub::imageByCroppingToRect_\n (local_9b0,dVar96,dVar97,dVar92,dVar73);\n dVar94 = dVar96;\n _CGRectGetMinX(dVar96,dVar97,dVar92,dVar73);\n dVar74 = dVar96;\n _CGRectGetMinY(dVar96,dVar97,dVar92,dVar73);\n _CGAffineTransformMakeTranslation(local_180,-dVar94,-dVar74);\n uVar44 = (uint)((ulong)dVar98 >> 0x20);\n IVar56 = objc_stub::imageByApplyingTransform_(IVar56,local_180);\n IVar34 = objc_stub::imageByCroppingToRect_\n (IVar56,0,0,(double)uVar29,(double)uVar50);\n if (IVar34 != 0) {\n IVar56 = IVar34;\n }\n objc_stub::render_toMTLTexture_commandBuffer_bounds_colorSpace_\n (IVar16,0,0,(double)uVar29,(double)uVar50,IVar56,IVar26,IVar20,\n local_888);\n objc_stub::length(0x1000aca20);\n FUN_100030f50(dVar96,dVar97,dVar92,dVar73,0,0,dVar91,dVar69);\n FUN_100030cc4();\n dVar94 = dVar96;\n dVar74 = dVar97;\n FUN_100031128();\n IVar34 = objc_stub::deviceRegistryID(param_3);\n IVar35 = objc_stub::bytes(IVar24);\n IVar38 = objc_stub::length(IVar24);\n local_180._8_8_ = dStack_658;\n local_180._0_8_ = local_660;\n dStack_168 = dStack_648;\n local_170 = local_650;\n local_160 = local_640;\n IVar56 = IVar20;\n FUN_100030840(fVar62,dVar94,dVar74,dVar96,dVar97,dVar92,dVar73,IVar20,\n IVar26,local_788,IVar21,IVar34,local_780,IVar35,IVar38,\n lVar60,uVar48,uVar44,local_180,1);\n dVar98 = (double)((ulong)uVar44 << 0x20);\n iVar14 = (int)IVar56;\n if ((IVar56 & 1) != 0) {\n objc_stub::length(0x1000aca40);\n objc_stub::length(0x1000aca60);\n goto LAB_100027a54;\n }\n }\n }\n }\n }\n if (local_7e8 == 0 && uVar45 == 0) {\n IVar26 = objc_stub::width(local_788);\n IVar56 = objc_stub::height(local_788);\n local_7e8 = IVar22;\n FUN_10002ef38(IVar22,uVar1,IVar26,IVar56);\n IVar26 = objc_stub::length(0x1000aca80);\n iVar14 = (int)IVar26;\n }\n uVar105 = (undefined4)((ulong)dVar98 >> 0x20);\n uVar44 = uVar53;\n if (local_7e8 == 0) {\n uVar44 = 1;\n }\n if (uVar44 == 0) {\n objc_stub::render_toMTLTexture_commandBuffer_bounds_colorSpace_\n (IVar16,0,0,dVar91,dVar69,local_9b0,local_7e8,IVar20,local_888);\n IVar26 = objc_stub::length(0x1000acaa0);\n uVar105 = (undefined4)((ulong)dVar98 >> 0x20);\n iVar14 = (int)IVar26;\n uVar53 = 1;\n }\n if (bVar10 != false) {\n if (DAT_1000be058 != -1) {\n FUN_10007976c();\n }\n if ((DAT_1000be050 == 1) && (local_7e8 != 0)) {\n FUN_10002fe4c(local_6f8,local_700,local_708,local_730);\n if (iVar14 != 0) {\n if (DAT_1000be068 != -1) {\n FUN_100079790();\n }\n cVar9 = DAT_1000be060;\n IVar56 = objc_stub::deviceRegistryID(param_3);\n IVar34 = objc_stub::bytes(IVar24);\n IVar35 = objc_stub::length(IVar24);\n local_180._8_8_ = dStack_658;\n local_180._0_8_ = local_660;\n dStack_168 = dStack_648;\n local_170 = local_650;\n local_160 = local_640;\n IVar26 = IVar20;\n FUN_100030084(fVar62,local_9c0,local_9d0,local_6f8,local_700,local_708,\n local_730,IVar20,local_7e8,local_788,IVar21,IVar56,local_780,\n IVar34,IVar35,lVar60,uVar48,uVar105,local_180,cVar9);\n if ((int)IVar26 != 0) {\n pcVar30 = &cf_output_metal_face_thin_roi_processed_base_preflip;\n if (cVar9 == '\\0') {\n pcVar30 = &cf_output_metal_face_thin_roi_processed_base_no_preflip;\n }\n objc_stub::length((ID)pcVar30);\n objc_stub::length(0x1000acb00);\n objc_stub::length(0x1000acb20);\n goto LAB_100027a54;\n }\n goto LAB_1000279b8;\n }\n if (DAT_1000be058 != -1) {\n FUN_10007976c();\n }\n }\n if (((DAT_1000be050 & 1) == 0) && (local_7e8 != 0)) {\n objc_stub::length(0x1000acb40);\n }\n }\nLAB_1000279b8:\n IVar26 = objc_stub::deviceRegistryID(param_3);\n IVar56 = objc_stub::bytes(IVar24);\n IVar34 = objc_stub::length(IVar24);\n local_180._8_8_ = dStack_658;\n local_180._0_8_ = local_660;\n dStack_168 = dStack_648;\n local_170 = local_650;\n local_160 = local_640;\n IVar24 = IVar20;\n FUN_10003127c(fVar62,local_9c0,local_9d0,IVar20,local_7e8,local_788,IVar21,IVar26,\n local_780,IVar56,IVar34,lVar60,uVar48,uVar105,local_180,0,1);\n if ((int)IVar24 == 0) goto LAB_100027018;\n objc_stub::length(0x1000acb60);\n objc_stub::length(0x1000acb80);\n }\n else {\n if (bVar10 == false) {\n bVar2 = false;\nLAB_100027410:\n IVar56 = objc_stub::deviceRegistryID(param_3);\n IVar34 = objc_stub::bytes(IVar24);\n IVar35 = objc_stub::length(IVar24);\n local_180._8_8_ = dStack_658;\n local_180._0_8_ = local_660;\n dStack_168 = dStack_648;\n local_170 = local_650;\n local_160 = local_640;\n IVar26 = IVar20;\n FUN_100030840(fVar62,local_9c0,local_9d0,local_790,local_798,local_7a0,local_7a8\n ,IVar20,local_7d8,local_788,IVar21,IVar56,local_780,IVar34,IVar35,\n lVar60,uVar48,uVar44,local_180,bVar2);\n dVar98 = (double)((ulong)uVar44 << 0x20);\n iVar14 = 0;\n if ((int)IVar26 == 0) goto LAB_1000274ec;\n pcVar30 = &cf_output_metal_face_thin_roi_direct_encode;\n if (!bVar2) {\n pcVar30 = &cf_output_metal_face_thin_full_direct_encode;\n }\n objc_stub::length((ID)pcVar30);\n if (bVar2) goto LAB_1000274bc;\n }\n else {\n IVar56 = objc_stub::deviceRegistryID(param_3);\n IVar34 = objc_stub::bytes(IVar24);\n IVar35 = objc_stub::length(IVar24);\n local_180._8_8_ = dStack_658;\n local_180._0_8_ = local_660;\n dStack_168 = dStack_648;\n local_170 = local_650;\n local_160 = local_640;\n IVar26 = IVar20;\n FUN_100030084(fVar62,local_9c0,local_9d0,local_6f8,local_700,local_708,local_730\n ,IVar20,local_7d8,local_788,IVar21,IVar56,local_780,IVar34,IVar35,\n lVar60,uVar48,uVar44,local_180,uVar13 & 0xffffff00);\n if ((IVar26 & 1) == 0) {\n IVar56 = objc_stub::deviceRegistryID(param_3);\n IVar26 = IVar20;\n FUN_1000305d0(IVar20,local_7d8,local_788,IVar21,IVar56,local_780);\n bVar2 = (int)IVar26 != 0;\n if (bVar2) {\n objc_stub::length(0x1000ac9a0);\n }\n local_790 = local_6f8;\n local_798 = local_700;\n local_7a0 = local_708;\n local_7a8 = local_730;\n goto LAB_100027410;\n }\n objc_stub::length(0x1000ac960);\n objc_stub::length(0x1000ac980);\n local_790 = local_6f8;\n local_798 = local_700;\n local_7a0 = local_708;\n local_7a8 = local_730;\nLAB_1000274bc:\n FUN_10002fe4c(local_790,local_798,local_7a0,local_7a8);\n }\n FUN_10001c338(local_6f8,local_700,local_708,local_730);\n }\nLAB_100027a54:\n uVar53 = 0;\n uVar45 = 1;\n }\n }\n if ((uVar45 != 0) || (uVar53 != 0)) {\n uVar44 = uVar45 & (uVar53 ^ 1);\n puVar33 = puVar32;\n puVar39 = puVar58;\n local_6f8 = (double)IVar17;\n if (uVar44 == 1) {\n IVar24 = 0;\n FUN_10002d668();\n FUN_10002d668();\n FUN_10002d668();\n FUN_10002d838();\n FUN_10002d668();\n FUN_10002d838();\n }\n else {\n IVar24 = 0;\n }\n if (local_894 == 0) {\n bVar10 = false;\n }\n else {\n IVar25 = objc_stub::count(IVar24);\n IVar26 = objc_stub::count((ID)puVar33);\n IVar56 = objc_stub::count((ID)puVar39);\n IVar34 = objc_stub::count((ID)local_6f8);\n bVar10 = IVar26 + IVar25 + IVar56 + IVar34 != 0;\n }\n if (bVar10 || uVar6 != 0) {\n IVar25 = objc_stub::deviceRegistryID(param_3);\n IVar25 = FxMTLDeviceCache::solidOverlayPipelineStateWithRegistryID_pixelFormat_\n (IVar21,IVar25,local_780);\n bVar2 = false;\n if (IVar25 != 0) {\n bVar2 = bVar10;\n }\n if (bVar2) {\n IVar26 = objc_stub::count(IVar24);\n if (IVar26 == 0) {\n uVar13 = 0;\n }\n else {\n IVar26 = IVar20;\n FUN_1000316bc(IVar20,local_788,IVar24,IVar25);\n uVar13 = (uint)IVar26;\n }\n IVar24 = objc_stub::count((ID)puVar33);\n if (IVar24 != 0) {\n IVar24 = IVar20;\n FUN_100031bd8(dStack_970,local_978,dStack_980,local_988,IVar20,local_788,puVar33\n ,IVar25,0,1);\n uVar13 = uVar13 | (uint)IVar24;\n }\n IVar24 = objc_stub::count((ID)puVar39);\n if (IVar24 != 0) {\n IVar24 = IVar20;\n FUN_100031bd8(dStack_970,local_978,dStack_980,local_988,IVar20,local_788,puVar39\n ,IVar25,0,1);\n uVar13 = uVar13 | (uint)IVar24;\n }\n IVar24 = objc_stub::count((ID)local_6f8);\n if (IVar24 != 0) {\n IVar24 = IVar20;\n FUN_100031bd8(dStack_990,local_998,dStack_9a0,local_9a8,IVar20,local_788,\n local_6f8,IVar25,1,0);\n uVar13 = uVar13 | (uint)IVar24;\n }\n }\n else {\n uVar13 = 0;\n }\n uVar59 = 0;\n if (IVar25 != 0) {\n uVar59 = uVar6;\n }\n if (uVar59 == 1) {\n IVar26 = objc_stub::length(local_7f8);\n IVar24 = local_7f8;\n if ((IVar26 < 0x268) &&\n (IVar26 = objc_stub::length(local_9d8), IVar24 = local_9d8, IVar26 < 0x268)) {\n IVar26 = 0;\n uVar29 = 0;\n }\n else {\n IVar26 = objc_stub::bytes(IVar24);\n IVar24 = objc_stub::length(IVar24);\n uVar29 = IVar24 >> 3;\n }\n IVar24 = IVar20;\n FUN_100032274(IVar20,local_788,IVar26,uVar29,uVar44,IVar25);\n if ((int)IVar24 == 0) goto LAB_100027cd8;\n if (uVar44 != 0) {\n objc_stub::length(0x1000acc20);\n }\n }\n else {\nLAB_100027cd8:\n if (uVar13 == 0) goto LAB_100027ce8;\n }\n objc_stub::length(0x1000acc40);\n }\n }\nLAB_100027ce8:\n if (uVar53 == 0 && uVar45 == 1) {\n IVar24 = objc_stub::width(local_788);\n IVar25 = objc_stub::height(local_788);\n IVar24 = MTLTextureDescriptor::\n texture2DDescriptorWithPixelFormat_width_height_mipmapped_\n ((ID)&_OBJC_CLASS___MTLTextureDescriptor,local_780,IVar24,IVar25,0)\n ;\n MTLTextureDescriptor::setUsage_(IVar24,5);\n MTLTextureDescriptor::setStorageMode_(IVar24,2);\n IVar22 = objc_stub::newTextureWithDescriptor_(IVar22,IVar24);\n IVar24 = objc_stub::deviceRegistryID(param_3);\n IVar24 = FxMTLDeviceCache::pipelineStateWithRegistryID_pixelFormat_\n (IVar21,IVar24,local_780);\n if ((IVar22 != 0) && (IVar24 != 0)) {\n IVar25 = MTLRenderPassDescriptor::renderPassDescriptor\n ((ID)&_OBJC_CLASS___MTLRenderPassDescriptor);\n IVar26 = MTLRenderPassDescriptor::colorAttachments(IVar25);\n IVar26 = MTLRenderPassDescriptor::objectAtIndexedSubscript_(IVar26,0);\n MTLRenderPassDescriptor::setTexture_(IVar26,IVar22);\n IVar26 = MTLRenderPassDescriptor::colorAttachments(IVar25);\n IVar26 = MTLRenderPassDescriptor::objectAtIndexedSubscript_(IVar26,0);\n MTLRenderPassDescriptor::setLoadAction_(IVar26,2);\n IVar26 = MTLRenderPassDescriptor::colorAttachments(IVar25);\n IVar26 = MTLRenderPassDescriptor::objectAtIndexedSubscript_(IVar26,0);\n MTLRenderPassDescriptor::setStoreAction_(IVar26,1);\n IVar26 = MTLRenderPassDescriptor::colorAttachments(IVar25);\n IVar26 = MTLRenderPassDescriptor::objectAtIndexedSubscript_(IVar26,0);\n MTLRenderPassDescriptor::setClearColor_(IVar26,0,0,0,0x3ff0000000000000);\n IVar25 = objc_stub::renderCommandEncoderWithDescriptor_(IVar20,IVar25);\n if (IVar25 != 0) {\n IVar26 = objc_stub::width(local_788);\n IVar56 = objc_stub::height(local_788);\n FUN_1000315fc(local_180,IVar26,IVar56);\n IVar26 = objc_stub::width(local_788);\n IVar56 = objc_stub::height(local_788);\n local_668 = CONCAT44((int)IVar56,(int)IVar26);\n IVar26 = objc_stub::width(local_788);\n IVar56 = objc_stub::height(local_788);\n local_f0 = (long *)(double)IVar26;\n dStack_e8 = (double)IVar56;\n local_100 = 0.0;\n dStack_f8 = 0.0;\n dStack_d8 = 1.0;\n local_e0 = -1.0;\n objc_stub::setViewport_(IVar25,&local_100);\n objc_stub::setRenderPipelineState_(IVar25,IVar24);\n objc_stub::setVertexBytes_length_atIndex_(IVar25,local_180,0x40,0);\n objc_stub::setVertexBytes_length_atIndex_(IVar25,&local_668,8,1);\n objc_stub::setFragmentTexture_atIndex_(IVar25,local_788,0);\n objc_stub::drawPrimitives_vertexStart_vertexCount_(IVar25,4,0,4);\n objc_stub::endEncoding(IVar25);\n IVar24 = objc_stub::blitCommandEncoder(IVar20);\n if (IVar24 != 0) {\n local_100 = 0.0;\n dStack_f8 = 0.0;\n local_f0 = (long *)0x0;\n IVar25 = objc_stub::width(local_788);\n local_678 = objc_stub::height(local_788);\n dStack_658 = dStack_f8;\n local_660 = local_100;\n local_650 = local_f0;\n local_670 = 1;\n dStack_698 = dStack_f8;\n local_6a0 = local_100;\n local_690 = local_f0;\n local_680 = IVar25;\n objc_stub::\n copyFromTexture_sourceSlice_sourceLevel_sourceOrigin_sourceSize_toTexture_destinationSlice_destinationLevel_destinationOrigin_\n (IVar24,IVar22,0,0,&local_660,&local_680,local_788,0,0,&local_6a0);\n objc_stub::endEncoding(IVar24);\n objc_stub::length(0x1000acc60);\n }\n }\n }\n uVar53 = 0;\n }\n }\n objc_stub::length(0x1000acc80);\n objc_stub::commit(IVar20);\n objc_stub::length(0x1000acca0);\n objc_stub::waitUntilCompleted(IVar20);\n objc_stub::length(0x1000accc0);\n objc_stub::GPUStartTime(IVar20);\n if (0.0 < extraout_d0_25) {\n objc_stub::GPUEndTime(IVar20);\n objc_stub::GPUStartTime(IVar20);\n if (extraout_d0_27 <= extraout_d0_26) {\n objc_stub::GPUEndTime(IVar20);\n objc_stub::GPUStartTime(IVar20);\n objc_stub::length(0x1000acce0);\n }\n }\n IVar22 = objc_stub::error(IVar20);\n uVar44 = 0;\n if (IVar22 == 0) {\n uVar44 = uVar45 | uVar53;\n }\n objc_stub::length(local_7f8);\n objc_stub::length(local_7f8);\n objc_stub::error(IVar20);\n objc_stub::count(local_8e0);\n objc_stub::error(IVar20);\n objc_stub::error(IVar20);\n pcVar30 = &cf_output_metal_face_thin;\n if (uVar46 == 0) {\n pcVar30 = &cf_output_metal_texture;\n }\n objc_stub::length((ID)pcVar30);\n if (uVar53 == 0 && uVar46 == 0) {\n IVar20 = objc_stub::deviceRegistryID(param_3);\n FxMTLDeviceCache::pipelineStateWithRegistryID_pixelFormat_(IVar21,IVar20,local_780);\n FUN_1000329ac(&cf_metaloutputcopyfailedpipeline_input___texture___);\n }\n if (uVar45 == 0 && uVar46 == 1) {\n FUN_1000329ac(&cf_metalfacethinoutputfailedpipeline_inputpointData___texture___);\n }\n FxMTLDeviceCache::returnCommandQueueToCache_(IVar21,IVar19);\n }\n if (uVar44 == 0) {\n if (uVar4 != 0) {\n IVar20 = objc_stub::count(local_768);\n IVar19 = local_880;\n if (IVar20 < 2) {\n IVar20 = objc_stub::count(local_8e0);\n if (IVar20 < 0x4d) {\n IVar19 = 0;\n }\n else {\n IVar20 = objc_stub::deviceRegistryID(param_3);\n FUN_10002b8a4(local_8f8,local_880,&AStack_528,local_8e0,IVar21,IVar20);\n if ((IVar19 == local_880) && (2.220446049250313e-16 < (double)AStack_528._104_8_)) {\n IVar19 = local_880;\n FUN_10002c1f8(AStack_528._104_8_,local_8f8,local_880,local_8e0);\n }\n }\n }\n else {\n IVar20 = objc_stub::deviceRegistryID(param_3);\n FUN_10002b4fc(local_8f8,local_880,&AStack_528,local_768,IVar21,IVar20);\n if ((IVar19 == local_880) && (2.220446049250313e-16 < (double)AStack_528._104_8_)) {\n IVar19 = local_880;\n FUN_10002b738(AStack_528._104_8_,local_8f8,local_880,local_768);\n }\n }\n if (IVar19 != 0) {\n local_880 = IVar19;\n }\n objc_stub::length(0x1000acd80);\n }\n if (puVar28 == (undefined8 *)0x0) {\n if (pIVar43 != (ID *)0x0) {\n pcVar30 = &cf_IOSurfaceunavailable;\n FUN_10001fb70();\n *pIVar43 = (ID)pcVar30;\n }\n objc_stub::length(0x1000ac540);\n goto LAB_1000283fc;\n }\n IVar19 = local_880;\n FUN_100032a9c(dStack_8b0,local_8b8,dStack_8c0,local_8c8);\n if ((IVar19 & 1) == 0) {\n objc_stub::extent(local_880);\n _NSStringFromRect();\n _NSStringFromRect(dStack_8b0,local_8b8,dStack_8c0,local_8c8);\n FUN_1000329ac(&cf_renderfallbackbadprocessedextent___renderRect___full__d);\n FUN_100032c18(dStack_8b0,local_8b8,dStack_8c0,local_8c8);\n objc_stub::length(0x1000acde0);\n }\n puVar36 = puVar28;\n _IOSurfaceGetWidth();\n puVar37 = puVar28;\n _IOSurfaceGetHeight(puVar28);\n FUN_10002dc00(dVar86,dVar81,dVar82,dVar87,puVar36,puVar37);\n dVar96 = dVar82;\n dVar97 = dVar87;\n dVar92 = dVar81;\n dVar73 = dVar86;\n if ((int)puVar36 != 0) {\n dVar96 = dVar86;\n _CGRectGetWidth();\n dVar97 = dVar86;\n _CGRectGetHeight(dVar86,dVar81,dVar82,dVar87);\n dVar92 = 0.0;\n dVar73 = 0.0;\n }\n FUN_10002decc(dVar86,dVar81,dVar82,dVar87,dVar73,dVar92,dVar96,dVar97,local_880,puVar36);\n FUN_10002ee0c(dVar73,dVar92,dVar96,dVar97);\n objc_stub::length(0x1000ace00);\n if (local_8cc == 0) {\n IVar19 = 0;\n }\n else {\n IVar19 = objc_stub::count(local_768);\n if (IVar19 == 0) {\n IVar20 = objc_stub::count(local_8e0);\n IVar19 = local_8e0;\n if ((IVar20 < 0x4d) &&\n (IVar20 = objc_stub::count(local_7b0,local_8e0), IVar19 = local_7b0, IVar20 < 0x4d)\n ) {\n IVar19 = 0;\n }\n else {\n IVar19 = NSMutableArray::arrayWithObject_((ID)&_OBJC_CLASS___NSMutableArray,IVar19);\n }\n }\n else {\n IVar19 = objc_stub::count(local_768);\n IVar19 = NSMutableArray::arrayWithCapacity_((ID)&_OBJC_CLASS___NSMutableArray,IVar19);\n uStack_6b8 = 0;\n local_6c0 = 0;\n uStack_6a8 = 0;\n uStack_6b0 = 0;\n lStack_6d8 = 0;\n local_6e0 = 0;\n uStack_6c8 = 0;\n local_6d0 = (long *)0x0;\n IVar20 = objc_stub::countByEnumeratingWithState_objects_count_\n (local_768,&local_6e0,auStack_3b0,0x10);\n if (IVar20 != 0) {\n lVar60 = *local_6d0;\n do {\n IVar21 = 0;\n do {\n if (*local_6d0 != lVar60) {\n _objc_enumerationMutation(local_768);\n }\n IVar24 = *(ID *)(lStack_6d8 + IVar21 * 8);\n IVar22 = objc_stub::count(IVar24);\n if (0x4c < IVar22) {\n NSMutableArray::addObject_(IVar19,IVar24);\n }\n IVar21 = IVar21 + 1;\n } while (IVar20 != IVar21);\n IVar20 = objc_stub::countByEnumeratingWithState_objects_count_\n (local_768,&local_6e0,auStack_3b0,0x10);\n } while (IVar20 != 0);\n }\n }\n objc_stub::length(0x1000ace20);\n }\n if (local_894 != 0) {\n IVar20 = objc_stub::count(0);\n if (IVar20 != 0) {\n puVar37 = puVar36;\n FUN_10002e6ec(dVar86,dVar81,dVar82,dVar87,dVar73,dVar92,dVar96,dVar97);\n if (puVar37 != (undefined8 *)0x0) {\n IVar20 = objc_stub::imageByCompositingOverImage_((ID)puVar37,local_880);\n IVar20 = objc_stub::imageByCroppingToRect_(IVar20,dVar73,dVar92,dVar96,dVar97);\n if (IVar20 != 0) {\n local_880 = IVar20;\n }\n }\n objc_stub::length(0x1000ace40);\n }\n IVar20 = objc_stub::count((ID)puVar32);\n if (IVar20 != 0) {\n puVar37 = puVar36;\n FUN_10002df98(dVar86,dVar81,dVar82,dVar87,dVar73,dVar92,dVar96,dVar97,puVar36,puVar32,\n 0,1);\n if (puVar37 != (undefined8 *)0x0) {\n IVar20 = objc_stub::imageByCompositingOverImage_((ID)puVar37,local_880);\n IVar20 = objc_stub::imageByCroppingToRect_(IVar20,dVar73,dVar92,dVar96,dVar97);\n if (IVar20 != 0) {\n local_880 = IVar20;\n }\n }\n objc_stub::length(0x1000ace60);\n }\n IVar20 = objc_stub::count((ID)puVar58);\n if (IVar20 != 0) {\n puVar37 = puVar36;\n FUN_10002df98(dVar86,dVar81,dVar82,dVar87,dVar73,dVar92,dVar96,dVar97,puVar36,puVar58,\n 0,1);\n if (puVar37 != (undefined8 *)0x0) {\n IVar20 = objc_stub::imageByCompositingOverImage_((ID)puVar37,local_880);\n IVar20 = objc_stub::imageByCroppingToRect_(IVar20,dVar73,dVar92,dVar96,dVar97);\n if (IVar20 != 0) {\n local_880 = IVar20;\n }\n }\n objc_stub::length(0x1000ace80);\n }\n IVar20 = objc_stub::count(IVar17);\n if (IVar20 != 0) {\n puVar37 = puVar36;\n FUN_10002df98(dVar86,dVar81,dVar82,dVar87,dVar73,dVar92,dVar96,dVar97,puVar36,IVar17,1\n ,0);\n if (puVar37 != (undefined8 *)0x0) {\n IVar17 = objc_stub::imageByCompositingOverImage_((ID)puVar37,local_880);\n IVar17 = objc_stub::imageByCroppingToRect_(IVar17,dVar73,dVar92,dVar96,dVar97);\n if (IVar17 != 0) {\n local_880 = IVar17;\n }\n }\n objc_stub::length(0x1000acea0);\n }\n }\n if ((local_8cc != 0) && (IVar17 = objc_stub::count(IVar19), IVar17 != 0)) {\n puVar37 = puVar36;\n FUN_100032da8(dVar86,dVar81,dVar82,dVar87,dVar73,dVar92,dVar96,dVar97,puVar36,IVar19);\n objc_stub::count(IVar19);\n FUN_10001c338(dVar86,dVar81,dVar82,dVar87);\n FUN_10001c338(dVar73,dVar92,dVar96,dVar97);\n if (puVar37 != (undefined8 *)0x0) {\n IVar17 = objc_stub::imageByCompositingOverImage_((ID)puVar37,local_880);\n IVar17 = objc_stub::imageByCroppingToRect_(IVar17,dVar73,dVar92,dVar96,dVar97);\n if (IVar17 != 0) {\n local_880 = IVar17;\n }\n }\n objc_stub::length(0x1000acec0);\n }\n IVar17 = local_880;\n FUN_100032a9c(dVar73,dVar92,dVar96,dVar97);\n if ((IVar17 & 1) == 0) {\n objc_stub::extent(local_880);\n _NSStringFromRect();\n _NSStringFromRect(dVar73,dVar92,dVar96,dVar97);\n FUN_1000329ac(&cf_renderfallbackbadtileextent___output___);\n FUN_100032c18(dVar73,dVar92,dVar96,dVar97);\n }\n objc_stub::length(0x1000acf00);\n FUN_10002ed00(dVar73,dVar92,dVar96,dVar97);\n objc_stub::length(0x1000acf20);\n if (IVar18 == 0) {\n IVar18 = 0;\n }\n else {\n FUN_10002decc(dVar86,dVar81,dVar82,dVar87,dVar73,dVar92,dVar96,dVar97,IVar18,puVar36);\n FUN_10002ee0c(dVar73,dVar92,dVar96,dVar97);\n FUN_10002ed00(dVar73,dVar92,dVar96,dVar97);\n }\n objc_stub::length(0x1000acf40);\n objc_stub::length(0x1000acf60);\n _NSStringFromRect(dVar73,dVar92,dVar96,dVar97);\n objc_stub::extent(local_880);\n _NSStringFromRect();\n IVar17 = local_880;\n FUN_1000334b8(dVar73,dVar92,dVar96,dVar97,local_880,IVar16,puVar28,local_888);\n objc_stub::length(0x1000acf80);\n if ((IVar17 & 1) == 0) {\n FUN_10003358c(dVar73,dVar92,dVar96,dVar97,local_880,IVar16,puVar28,local_888);\n objc_stub::length(0x1000acfa0);\n if (IVar18 != 0 && (local_880 & 1) == 0) {\n _NSStringFromRect(dVar73,dVar92,dVar96,dVar97);\n FUN_1000329ac(&cf_renderfallbackwritinginputtileoutput___);\n IVar17 = IVar18;\n FUN_1000334b8(dVar73,dVar92,dVar96,dVar97,IVar18,IVar16,puVar28,local_888);\n objc_stub::length(0x1000acfe0);\n if ((IVar17 & 1) != 0) goto LAB_1000288d0;\n FUN_10003358c(dVar73,dVar92,dVar96,dVar97,IVar18,IVar16,puVar28,local_888);\n objc_stub::length(0x1000ad000);\n local_880 = IVar18;\n }\n if ((local_880 & 1) == 0) {\n _NSStringFromRect(dVar73,dVar92,dVar96,dVar97);\n FUN_1000329ac(&cf_renderfallbackfillingblackoutput___);\n puVar37 = puVar28;\n _IOSurfaceGetWidth();\n puVar36 = puVar28;\n _IOSurfaceGetHeight();\n puVar40 = puVar28;\n _IOSurfaceGetBytesPerRow();\n puVar51 = puVar28;\n _IOSurfaceGetPixelFormat();\n if ((((puVar37 != (undefined8 *)0x0) && (puVar36 != (undefined8 *)0x0)) &&\n (puVar40 != (undefined8 *)0x0)) &&\n (puVar41 = puVar28, _IOSurfaceLock(puVar28,0,0), (int)puVar41 == 0)) {\n puVar41 = puVar28;\n _IOSurfaceGetBaseAddress();\n if (puVar41 != (undefined8 *)0x0) {\n iVar14 = (int)puVar51;\n if (iVar14 == 0x42475241) {\n do {\n _memset_pattern16(puVar41,&DAT_100086050,(long)puVar37 << 2);\n puVar41 = (undefined8 *)((long)puVar41 + (long)puVar40);\n puVar36 = (undefined8 *)((long)puVar36 + -1);\n } while (puVar36 != (undefined8 *)0x0);\n }\n else if (iVar14 == 0x52476841) {\n puVar51 = (undefined8 *)0x0;\n puVar52 = puVar37;\n puVar57 = puVar41;\n do {\n do {\n *puVar41 = 0x3c00000000000000;\n puVar52 = (undefined8 *)((long)puVar52 + -1);\n puVar41 = puVar41 + 1;\n } while (puVar52 != (undefined8 *)0x0);\n puVar51 = (undefined8 *)((long)puVar51 + 1);\n puVar41 = (undefined8 *)((long)puVar57 + (long)puVar40);\n puVar52 = puVar37;\n puVar57 = puVar41;\n } while (puVar51 != puVar36);\n }\n else if (iVar14 == 0x52476641) {\n puVar51 = (undefined8 *)0x0;\n puVar52 = puVar37;\n puVar57 = puVar41;\n do {\n do {\n puVar41[1] = 0x3f80000000000000;\n *puVar41 = 0;\n puVar52 = (undefined8 *)((long)puVar52 + -1);\n puVar41 = puVar41 + 2;\n } while (puVar52 != (undefined8 *)0x0);\n puVar51 = (undefined8 *)((long)puVar51 + 1);\n puVar41 = (undefined8 *)((long)puVar57 + (long)puVar40);\n puVar52 = puVar37;\n puVar57 = puVar41;\n } while (puVar51 != puVar36);\n }\n else {\n _bzero(puVar41,(long)puVar40 * (long)puVar36);\n }\n }\n _IOSurfaceUnlock(puVar28,0,0);\n }\n }\n }\nLAB_1000288d0:\n objc_stub::length(0x1000ad040);\n }\n objc_stub::length(0x1000ac540);\n objc_stub::count(local_8e0);\n bVar11 = 1;\n goto LAB_1000288f4;\n }\n if (pIVar43 != (ID *)0x0) {\n pcVar30 = &cf_UnabletocreateCIContext;\n FUN_10001fb70();\n *pIVar43 = (ID)pcVar30;\n }\n objc_stub::length(0x1000ac540);\n }\n }\nLAB_1000283fc:\n bVar11 = 0;\nLAB_1000288f4:\n if (*(long *)PTR____stack_chk_guard_1000a80e8 != local_b8) {\n /* WARNING: Subroutine does not return */\n ___stack_chk_fail();\n }\n return bVar11;\n}\n\n", + "operation": "procedure_pseudo_code", + "parameters": { + "procedure": "0x10002179c" + }, + "predicate_type": "rea.analysis", + "provider": { + "id": "ghidra", + "name": "Ghidra", + "version": "12.1.4" + }, + "raw_result": { + "limitations": [ + "Ghidra Listing reports a terminal call at 0x100028c6c to 0x10007aca0 ___stack_chk_fail (external=false, thunk=true, hasNoReturn=true); fallthrough is excluded by Ghidra's flow model. This records Ghidra's FunctionManager flag, not an independent verification that the callee cannot return." + ], + "value": "\n/* WARNING: Function: _objc_release replaced with injection: _objc_release_fixup */\n/* WARNING: Function: _objc_retain replaced with injection: _objc_retain_fixup */\n/* WARNING: Function: _objc_autorelease replaced with injection: _objc_retain_fixup */\n/* Function Stack Size: 0x48 bytes */\n\nbool MSSuperSkinSmoothingPlugIn::renderDestinationImage_sourceImages_pluginState_atTime_error_\n (ID param_1,SEL param_2,ID param_3,ID param_4,ID param_5,AnonymousStructure0 param_6,\n ID *param_7)\n\n{\n unsigned_long_long uVar1;\n bool bVar2;\n bool bVar3;\n uint uVar4;\n __IOSurface *p_Var5;\n uint uVar6;\n CGRect CVar7;\n byte bVar8;\n char cVar9;\n bool bVar10;\n bool bVar11;\n int iVar12;\n uint uVar13;\n int iVar14;\n int iVar15;\n ID IVar16;\n ID IVar17;\n ID IVar18;\n ID IVar19;\n ID IVar20;\n ID IVar21;\n ID IVar22;\n undefined1 *puVar23;\n ID IVar24;\n ID IVar25;\n ID IVar26;\n __IOSurface *p_Var27;\n undefined8 *puVar28;\n ulong uVar29;\n cfstringStruct *pcVar30;\n byte *pbVar31;\n undefined *puVar32;\n undefined *puVar33;\n ID IVar34;\n ID IVar35;\n undefined8 *puVar36;\n undefined8 *puVar37;\n ID IVar38;\n undefined *puVar39;\n undefined8 *puVar40;\n undefined8 *puVar41;\n undefined8 extraout_x1;\n undefined8 extraout_x1_00;\n undefined8 extraout_x1_01;\n undefined8 extraout_x1_02;\n double *pdVar42;\n ID *pIVar43;\n uint uVar44;\n uint uVar45;\n uint uVar46;\n uint uVar47;\n undefined4 uVar48;\n long *plVar49;\n ulong uVar50;\n undefined8 *puVar51;\n undefined8 *puVar52;\n uint uVar53;\n long lVar54;\n double dVar55;\n ID IVar56;\n undefined8 *puVar57;\n undefined *puVar58;\n uint uVar59;\n long lVar60;\n byte bVar61;\n float fVar62;\n double extraout_d0;\n double extraout_d0_00;\n double extraout_d0_01;\n double extraout_d0_02;\n double extraout_d0_03;\n double extraout_d0_04;\n double dVar63;\n double dVar64;\n double dVar65;\n double extraout_d0_05;\n double extraout_d0_06;\n double extraout_d0_07;\n double extraout_d0_08;\n double extraout_d0_09;\n double dVar66;\n undefined8 extraout_d0_10;\n double extraout_d0_11;\n double extraout_d0_12;\n ulong extraout_d0_13;\n ulong extraout_d0_14;\n double extraout_d0_15;\n double extraout_d0_16;\n double extraout_d0_17;\n double extraout_d0_18;\n double extraout_d0_19;\n double extraout_d0_20;\n double extraout_d0_21;\n double extraout_d0_22;\n double dVar67;\n double dVar68;\n double dVar69;\n double extraout_d0_23;\n undefined8 extraout_d0_24;\n undefined8 uVar70;\n undefined8 uVar71;\n undefined8 uVar72;\n double extraout_d0_25;\n double extraout_d0_26;\n double extraout_d0_27;\n double dVar73;\n double dVar74;\n double dVar75;\n double dVar76;\n double dVar77;\n double dVar78;\n double dVar79;\n double dVar80;\n double dVar81;\n double dVar82;\n double dVar83;\n double dVar84;\n double dVar85;\n double dVar86;\n double dVar87;\n double dVar88;\n double dVar89;\n double dVar90;\n double dVar91;\n double dVar92;\n double dVar93;\n double dVar94;\n long *plVar95;\n double dVar96;\n double dVar97;\n double dVar98;\n double dVar99;\n CGRect CVar100;\n CGRect CVar101;\n CGRect CVar102;\n CGRect CVar103;\n CGRect CVar104;\n undefined4 uVar105;\n ID local_9d8;\n undefined8 local_9d0;\n undefined8 local_9c0;\n ID local_9b0;\n double local_9a8;\n double dStack_9a0;\n double local_998;\n double dStack_990;\n double local_988;\n double dStack_980;\n double local_978;\n double dStack_970;\n double local_8f8;\n ID local_8e0;\n ID local_8d8;\n uint local_8cc;\n double local_8c8;\n double dStack_8c0;\n double local_8b8;\n double dStack_8b0;\n ID local_8a0;\n uint local_894;\n undefined *local_890;\n ID local_888;\n ID local_880;\n double local_838;\n double local_830;\n double local_820;\n double local_808;\n ID local_7f8;\n ID local_7e8;\n ID local_7d8;\n double local_7d0;\n double local_7c8;\n double local_7c0;\n double local_7b8;\n ID local_7b0;\n double local_7a8;\n double local_7a0;\n double local_798;\n double local_790;\n ID local_788;\n ID local_780;\n ID local_768;\n double local_730;\n double local_708;\n double local_700;\n double local_6f8;\n undefined8 local_6e0;\n long lStack_6d8;\n long *local_6d0;\n undefined8 uStack_6c8;\n undefined8 local_6c0;\n undefined8 uStack_6b8;\n undefined8 uStack_6b0;\n undefined8 uStack_6a8;\n double local_6a0;\n double dStack_698;\n long *local_690;\n ID local_680;\n ID local_678;\n undefined8 local_670;\n undefined8 local_668;\n double local_660;\n double dStack_658;\n long *local_650;\n double dStack_648;\n double local_640;\n ulong local_638;\n undefined8 local_630;\n long lStack_628;\n long *local_620;\n undefined8 uStack_618;\n undefined8 local_610;\n undefined8 uStack_608;\n undefined8 local_600;\n undefined8 uStack_5f8;\n undefined8 local_5f0;\n long lStack_5e8;\n long *local_5e0;\n undefined8 uStack_5d8;\n undefined8 local_5d0;\n undefined8 uStack_5c8;\n undefined8 local_5c0;\n undefined8 uStack_5b8;\n undefined8 local_5b0;\n long lStack_5a8;\n long *local_5a0;\n undefined8 uStack_598;\n undefined8 local_590;\n undefined8 uStack_588;\n undefined8 local_580;\n undefined8 uStack_578;\n byte local_561;\n CGRect local_560;\n double local_538;\n ID local_530;\n AnonymousStructure7 AStack_528;\n byte local_3b8;\n byte local_3b7;\n byte local_3b6;\n undefined1 auStack_3b0 [128];\n undefined1 auStack_330 [128];\n undefined1 auStack_2b0 [128];\n undefined1 auStack_230 [128];\n undefined8 local_1b0;\n ID local_1a8;\n undefined8 local_1a0;\n ID local_198;\n undefined8 local_190;\n ID local_188;\n undefined1 local_180 [16];\n long *local_170;\n double dStack_168;\n double local_160;\n double dStack_158;\n double local_100;\n double dStack_f8;\n long *local_f0;\n double dStack_e8;\n double local_e0;\n double dStack_d8;\n undefined8 uStack_d0;\n undefined8 uStack_c8;\n long local_b8;\n \n pIVar43 = param_6._8_8_;\n pdVar42 = (double *)param_6.field0_0x0;\n local_b8 = *(long *)PTR____stack_chk_guard_1000a80e8;\n uVar1 = DAT_1000bdd88 + 1;\n DAT_1000bdd88 = uVar1;\n objc_stub::count(param_4);\n objc_stub::length(param_5);\n objc_stub::count(param_4);\n objc_stub::length(param_5);\n objc_stub::count(param_4);\n objc_stub::length(param_5);\n IVar16 = objc_stub::count(param_4);\n if (IVar16 == 0) {\n if (pIVar43 != (ID *)0x0) {\n pcVar30 = &cf_Nosourceimageprovided;\n FUN_10001fb70();\n *pIVar43 = (ID)pcVar30;\n }\n objc_stub::length(0x1000ac540);\n }\n else {\n local_180._8_8_ = pdVar42[1];\n local_180._0_8_ = *pdVar42;\n local_170 = (long *)pdVar42[2];\n bVar11 = populateParams_atTime_error_\n (param_1,&AStack_528,(AnonymousStructure0 *)local_180,pIVar43);\n if ((bVar11 & 1) == 0) {\n IVar16 = param_5;\n FUN_10002140c(param_5,&AStack_528);\n if ((int)IVar16 == 0) {\n objc_stub::length(param_5);\n objc_stub::length(0x1000ac540);\n goto LAB_1000283fc;\n }\n IVar16 = objc_stub::apiForProtocol_\n (*(ID *)(param_1 + 8),&objc::protocol_t::FxParameterRetrievalAPI_v6);\n local_180._8_8_ = pdVar42[1];\n local_180._0_8_ = *pdVar42;\n local_170 = (long *)pdVar42[2];\n IVar17 = controlPanelValueForPluginAtTime_(param_1,(AnonymousStructure0 *)local_180);\n if (IVar17 == 0) {\nLAB_100021a54:\n local_180._8_8_ = pdVar42[1];\n local_180._0_8_ = *pdVar42;\n local_170 = (long *)pdVar42[2];\n dVar97 = *(double *)(PTR__kCMTimeZero_1000a8218 + 8);\n dVar96 = *(double *)PTR__kCMTimeZero_1000a8218;\n plVar95 = *(long **)(PTR__kCMTimeZero_1000a8218 + 0x10);\n puVar23 = local_180;\n local_100 = dVar96;\n dStack_f8 = dVar97;\n local_f0 = plVar95;\n _CMTimeCompare(puVar23,&local_100);\n if ((int)puVar23 != 0) {\n local_180._0_8_ = dVar96;\n local_180._8_8_ = dVar97;\n local_170 = plVar95;\n IVar17 = controlPanelValueForPluginAtTime_(param_1,(AnonymousStructure0 *)local_180);\n }\n if (IVar17 != 0) goto LAB_100021ab4;\nLAB_100021adc:\n local_180._8_8_ = pdVar42[1];\n local_180._0_8_ = *pdVar42;\n local_170 = (long *)pdVar42[2];\n mss_applyLivePanelStateToParams_atTime_\n (param_1,&AStack_528,(AnonymousStructure0 *)local_180);\n local_180._8_8_ = pdVar42[1];\n local_180._0_8_ = *pdVar42;\n local_170 = (long *)pdVar42[2];\n FUN_100028e74(IVar16,&AStack_528,local_180);\n if ((local_3b6 & 1) == 0) {\n iVar14 = (int)&AStack_528;\n FUN_10002951c();\n if (iVar14 != 0) {\n local_3b6 = 1;\n }\n }\n }\n else {\n IVar18 = objc_stub::hasCommittedState(IVar17);\n if ((IVar18 & 1) == 0) {\n MSSSectionCardParameterValue::defaultValue\n ((ID)&objc::class_t::MSSSectionCardParameterValue);\n IVar18 = IVar17;\n func_0x000100085c38();\n if ((int)IVar18 != 0) goto LAB_100021a54;\n }\nLAB_100021ab4:\n IVar18 = objc_stub::hasCommittedState(IVar17);\n if ((IVar18 & 1) == 0) {\n MSSSectionCardParameterValue::defaultValue\n ((ID)&objc::class_t::MSSSectionCardParameterValue);\n IVar18 = IVar17;\n func_0x000100085c38();\n if ((int)IVar18 != 0) goto LAB_100021adc;\n }\n local_180._8_8_ = pdVar42[1];\n local_180._0_8_ = *pdVar42;\n local_170 = (long *)pdVar42[2];\n mss_applyLivePanelStateToParams_atTime_\n (param_1,&AStack_528,(AnonymousStructure0 *)local_180);\n FUN_100028cdc(&AStack_528,IVar17);\n }\n if ((local_3b8 & 1) == 0) {\n AStack_528.field1_0x8 = 0.0;\n AStack_528.field7_0x38 = 0.0;\n AStack_528.field8_0x40._0_1_ = '\\0';\n AStack_528._80_8_ = 0;\n AStack_528._72_8_ = 0x3ff0000000000000;\n AStack_528._192_8_ = 0.0;\n }\n if ((local_3b7 & 1) == 0) {\n AStack_528.field3_0x18 = 0.0;\n AStack_528.field2_0x10 = 0.0;\n AStack_528.field5_0x28 = 0;\n AStack_528.field4_0x20 = 0.0;\n AStack_528._96_8_ = 0;\n AStack_528.field6_0x30 = 0.0;\n AStack_528._88_8_ = 0.0;\n }\n if ((local_3b6 & 1) == 0) {\n AStack_528._176_8_ = 0;\n AStack_528._168_8_ = 0.0;\n AStack_528._160_8_ = 0.0;\n AStack_528._152_8_ = 0.0;\n AStack_528._144_8_ = 0.0;\n AStack_528._136_8_ = 0.0;\n AStack_528._128_8_ = 0.0;\n AStack_528._120_8_ = 0.0;\n AStack_528._112_8_ = 0.0;\n AStack_528._104_8_ = 0.0;\n }\n }\n IVar16 = objc_stub::objectAtIndex_(param_4,0);\n local_790 = (double)objc_stub::colorSpace(IVar16);\n if ((local_790 == 0.0) && (local_790 = (double)objc_stub::colorSpace(param_3), local_790 == 0.0)\n ) {\n if (DAT_1000bdf18 != -1) {\n FUN_100079628();\n }\n local_790 = (double)DAT_1000bdf10;\n }\n local_888 = objc_stub::colorSpace(param_3);\n if ((local_888 == 0) && (local_888 = (ID)local_790, local_790 == 0.0)) {\n if (DAT_1000bdf18 != -1) {\n FUN_100079628();\n }\n local_888 = DAT_1000bdf10;\n }\n IVar17 = objc_stub::tilePixelBounds(param_3);\n IVar18 = objc_stub::imagePixelBounds(IVar16);\n IVar19 = objc_stub::tilePixelBounds(IVar16);\n IVar20 = objc_stub::imagePixelBounds(param_3);\n IVar21 = objc_stub::inversePixelTransform(IVar16);\n IVar22 = objc_stub::pixelTransform(param_3);\n dVar96 = *(double *)PTR__CGPointZero_1000a8140;\n dVar97 = *(double *)(PTR__CGPointZero_1000a8140 + 8);\n if (IVar21 == 0) {\n dVar92 = 1.0;\n dVar73 = 0.0;\n dVar94 = 0.0;\n dVar74 = 1.0;\n }\n else {\n objc_stub::transform2DPoint_(IVar21,dVar96);\n dVar73 = 0.0;\n objc_stub::transform2DPoint_(IVar21,0x3ff0000000000000);\n dVar74 = 1.0;\n objc_stub::transform2DPoint_(IVar21,0);\n dVar96 = extraout_d0;\n dVar92 = extraout_d0_00;\n dVar94 = extraout_d0_01;\n }\n if (IVar22 != 0) {\n objc_stub::transform2DPoint_(IVar22,dVar96);\n objc_stub::transform2DPoint_(IVar22,dVar92);\n objc_stub::transform2DPoint_(IVar22,dVar94);\n dVar92 = extraout_d0_03;\n dVar94 = extraout_d0_04;\n dVar96 = extraout_d0_02;\n }\n if (((((ulong)ABS(dVar96) < 0x7ff0000000000000) && ((ulong)ABS(dVar97) < 0x7ff0000000000000)) &&\n ((ulong)ABS(dVar92) < 0x7ff0000000000000)) &&\n ((((ulong)ABS(dVar73) < 0x7ff0000000000000 && ((ulong)ABS(dVar94) < 0x7ff0000000000000)) &&\n ((ulong)ABS(dVar74) < 0x7ff0000000000000)))) {\n dVar92 = dVar92 - dVar96;\n dVar73 = dVar73 - dVar97;\n plVar95 = (long *)(dVar94 - dVar96);\n dVar74 = dVar74 - dVar97;\n }\n else {\n dVar92 = *(double *)PTR__CGAffineTransformIdentity_1000a8138;\n dVar73 = *(double *)(PTR__CGAffineTransformIdentity_1000a8138 + 8);\n plVar95 = *(long **)(PTR__CGAffineTransformIdentity_1000a8138 + 0x10);\n dVar74 = *(double *)(PTR__CGAffineTransformIdentity_1000a8138 + 0x18);\n dVar96 = *(double *)(PTR__CGAffineTransformIdentity_1000a8138 + 0x20);\n dVar97 = *(double *)(PTR__CGAffineTransformIdentity_1000a8138 + 0x28);\n }\n iVar14 = (int)local_180;\n local_180._0_8_ = dVar92;\n local_180._8_8_ = dVar73;\n local_170 = plVar95;\n dStack_168 = dVar74;\n local_160 = dVar96;\n dStack_158 = dVar97;\n FUN_1000295e4();\n if (iVar14 == 0) {\n bVar8 = 0;\n }\n else {\n bVar10 = false;\n if (((ABS(dVar92 + -1.0) < 0.0001) && (ABS(dVar73) < 0.0001)) &&\n ((ABS((double)plVar95) < 0.0001 &&\n ((bVar10 = false, ABS(dVar74 + -1.0) < 0.0001 && (ABS(dVar96) < 0.0001)))))) {\n bVar10 = ABS(dVar97) < 0.0001;\n }\n bVar8 = bVar10 ^ 1;\n }\n IVar21 = FxMTLDeviceCache::deviceCache((ID)&objc::class_t::FxMTLDeviceCache);\n IVar22 = objc_stub::deviceRegistryID(param_3);\n IVar22 = FxMTLDeviceCache::deviceWithRegistryID_(IVar21,IVar22);\n if (IVar22 == 0) {\n local_7d8 = 0;\n local_788 = 0;\n }\n else {\n local_7d8 = objc_stub::metalTextureForDevice_(IVar16);\n local_788 = objc_stub::metalTextureForDevice_(param_3,IVar22);\n }\n objc_stub::name(IVar22);\n objc_stub::ioSurface(param_3);\n FUN_100019774();\n iVar14 = (int)&AStack_528;\n FUN_10002156c();\n if ((local_3b6 == 1) && (FUN_1000500b0(), iVar14 != 0)) {\n if ((((2.220446049250313e-16 < ABS((double)AStack_528._104_8_)) ||\n (2.220446049250313e-16 < ABS((double)AStack_528._112_8_))) ||\n (2.220446049250313e-16 < ABS((double)AStack_528._120_8_))) ||\n (((2.220446049250313e-16 < ABS((double)AStack_528._128_8_) ||\n (2.220446049250313e-16 < ABS((double)AStack_528._136_8_))) ||\n ((2.220446049250313e-16 < ABS((double)AStack_528._144_8_) ||\n ((2.220446049250313e-16 < ABS((double)AStack_528._152_8_) ||\n (2.220446049250313e-16 < ABS((double)AStack_528._160_8_))))))))) {\n uVar46 = 1;\n }\n else {\n uVar46 = (uint)(2.220446049250313e-16 < ABS((double)AStack_528._168_8_));\n }\n }\n else {\n uVar46 = 0;\n }\n IVar24 = NSUserDefaults::standardUserDefaults((ID)&_OBJC_CLASS___NSUserDefaults);\n IVar25 = NSUserDefaults::objectForKey_(IVar24,&cf_MSE18GlobalFaceBoxPreviewEnabled);\n if (IVar25 == 0) {\n local_894 = 0;\n }\n else {\n IVar24 = NSUserDefaults::boolForKey_(IVar24,&cf_MSE18GlobalFaceBoxPreviewEnabled);\n local_894 = (uint)IVar24;\n }\n IVar24 = NSUserDefaults::standardUserDefaults((ID)&_OBJC_CLASS___NSUserDefaults);\n IVar25 = NSUserDefaults::objectForKey_(IVar24,&cf_MSE18GlobalFacePointPreviewEnabled);\n if (IVar25 == 0) {\n local_8cc = 0;\n }\n else {\n IVar24 = NSUserDefaults::boolForKey_(IVar24,&cf_MSE18GlobalFacePointPreviewEnabled);\n local_8cc = (uint)IVar24;\n }\n if (((double)AStack_528._200_8_ <= 2.220446049250313e-16) ||\n ((char)AStack_528.field8_0x40 != '\\x01')) {\n uVar44 = 0;\n }\n else if (AStack_528.field7_0x38 <= 2.220446049250313e-16) {\n uVar44 = (uint)(2.220446049250313e-16 < (double)AStack_528._192_8_);\n }\n else {\n uVar44 = 1;\n }\n uVar45 = 0;\n if (2.220446049250313e-16 < (double)AStack_528._88_8_) {\n uVar45 = (uint)(2.220446049250313e-16 < (double)AStack_528._200_8_);\n }\n IVar25 = NSUserDefaults::standardUserDefaults((ID)&_OBJC_CLASS___NSUserDefaults);\n IVar26 = NSUserDefaults::objectForKey_(IVar25,&cf_MSE18GlobalFaceBoxPreviewEnabled);\n IVar24 = 0;\n if (IVar26 != 0) {\n IVar24 = NSUserDefaults::boolForKey_(IVar25,&cf_MSE18GlobalFaceBoxPreviewEnabled);\n }\n iVar14 = (int)extraout_x1_01 - (int)IVar19;\n iVar12 = (int)(IVar19 >> 0x20);\n iVar15 = (int)((ulong)extraout_x1_01 >> 0x20) - iVar12;\n CVar102.field0_0x0.field0_0x0 = (double)(int)IVar19;\n CVar102.field0_0x0.field1_0x8 = (double)iVar12;\n CVar102.field1_0x10.field0_0x0 = (double)iVar14;\n CVar102.field1_0x10.field1_0x8 = (double)iVar15;\n dVar66 = CVar102.field1_0x10.field0_0x0;\n dVar79 = CVar102.field1_0x10.field1_0x8;\n FUN_100021624();\n iVar12 = (int)(IVar18 >> 0x20);\n CVar100.field0_0x0.field0_0x0 = (double)(int)IVar18;\n dVar63 = (double)iVar12;\n dVar64 = (double)((int)extraout_x1_00 - (int)IVar18);\n dVar65 = (double)((int)((ulong)extraout_x1_00 >> 0x20) - iVar12);\n iVar12 = (int)IVar24;\n dVar94 = CVar102.field1_0x10.field0_0x0;\n local_8c8 = CVar102.field1_0x10.field1_0x8;\n dStack_8c0 = CVar102.field1_0x10.field0_0x0;\n local_8b8 = CVar102.field0_0x0.field1_0x8;\n dStack_8b0 = CVar102.field0_0x0.field0_0x0;\n if (((IVar24 & 1) == 0) &&\n (dVar79 = CVar102.field1_0x10.field1_0x8,\n FUN_100021624(CVar102.field0_0x0.field0_0x0,CVar102.field0_0x0.field1_0x8,\n CVar102.field1_0x10.field0_0x0), dVar94 = CVar102.field1_0x10.field1_0x8,\n dVar66 = CVar102.field1_0x10.field0_0x0, local_8c8 = CVar102.field1_0x10.field1_0x8,\n dStack_8c0 = CVar102.field1_0x10.field0_0x0, local_8b8 = CVar102.field0_0x0.field1_0x8,\n iVar12 == 0)) {\n dVar66 = dVar64;\n local_8c8 = dVar65;\n dStack_8c0 = dVar64;\n local_8b8 = dVar63;\n dStack_8b0 = CVar100.field0_0x0.field0_0x0;\n }\n p_Var27 = (__IOSurface *)objc_stub::ioSurface(IVar16);\n puVar28 = (undefined8 *)objc_stub::ioSurface(param_3);\n if (local_7d8 == 0) {\n local_768 = 0;\nLAB_10002218c:\n if (p_Var27 != (__IOSurface *)0x0) {\n _IOSurfaceLock(p_Var27,1,0);\n local_1a0 = *(undefined8 *)PTR__kCIImageColorSpace_1000a81c8;\n local_198 = (ID)local_790;\n IVar18 = NSDictionary::dictionaryWithObjects_forKeys_count_\n ((ID)&_OBJC_CLASS___NSDictionary,&local_198,&local_1a0,1);\n local_768 = CIImage::imageWithIOSurface_options_((ID)&_OBJC_CLASS___CIImage,p_Var27,IVar18);\n _IOSurfaceUnlock(p_Var27,1,0);\n }\n }\n else {\n local_190 = *(undefined8 *)PTR__kCIImageColorSpace_1000a81c8;\n local_188 = (ID)local_790;\n IVar18 = NSDictionary::dictionaryWithObjects_forKeys_count_\n ((ID)&_OBJC_CLASS___NSDictionary,&local_188,&local_190,1);\n local_768 = CIImage::imageWithMTLTexture_options_((ID)&_OBJC_CLASS___CIImage,local_7d8,IVar18)\n ;\n if (local_768 == 0) goto LAB_10002218c;\n }\n if (local_768 == 0) {\n if (pIVar43 != (ID *)0x0) {\n pcVar30 = &cf_UnabletowrapsourceIOSurfaceasCIImage;\n FUN_10001fb70();\n *pIVar43 = (ID)pcVar30;\n }\n objc_stub::length(0x1000ac540);\n }\n else {\n uVar29 = CIImage::extent(local_768);\n local_7c0 = extraout_d0_05;\n _CGRectGetWidth(extraout_d0_05,dVar94,dVar66,dVar79);\n local_7b8 = extraout_d0_05;\n _CGRectGetHeight(extraout_d0_05,dVar94,dVar66,dVar79);\n dVar93 = 0.0;\n dVar86 = local_7c0;\n dVar75 = local_7b8;\n FUN_100021624(0,0);\n dVar99 = 0.0;\n if ((uVar29 & 1) == 0) {\n dVar93 = extraout_d0_05;\n dVar99 = dVar94;\n local_7c0 = dVar66;\n local_7b8 = dVar79;\n }\n IVar18 = CIImage::extent(local_768);\n uVar13 = (uint)IVar18;\n _CGRectIsEmpty();\n if (dVar86 <= 0.0) {\n uVar13 = 1;\n }\n IVar18 = local_768;\n if (((uVar13 & 1) == 0) && (0.0 < dVar75)) {\n IVar19 = local_768;\n _CGRectIsEmpty(dVar93,dVar99,local_7c0,local_7b8);\n uVar13 = (uint)IVar19;\n if (local_7c0 <= 0.0) {\n uVar13 = 1;\n }\n if (((uVar13 & 1) == 0) && (0.0 < local_7b8)) {\n _CGRectIsEmpty(dVar93,dVar99,local_7c0,local_7b8);\n dVar75 = local_7b8 / dVar75;\n dVar81 = -1.0;\n dVar86 = ABS(local_7c0 / dVar86 + -1.0);\n if (0.0001 < dVar86) {\nLAB_100022334:\n _CGAffineTransformMakeScale(local_180);\n IVar18 = CIImage::imageByApplyingTransform_(local_768,local_180);\n }\n else {\n dVar81 = ABS(dVar75 + -1.0);\n dVar86 = 0.0001;\n if (0.0001 < dVar81) goto LAB_100022334;\n }\n CIImage::extent(IVar18);\n dVar77 = extraout_d0_06;\n _CGRectGetMinX();\n dVar98 = extraout_d0_06;\n _CGRectGetMinY(extraout_d0_06,dVar75,dVar81,dVar86);\n if ((0.0001 < ABS(dVar93 - dVar77)) || (0.0001 < ABS(dVar99 - dVar98))) {\n _CGAffineTransformMakeTranslation(local_180,dVar93 - dVar77,dVar99 - dVar98);\n IVar18 = CIImage::imageByApplyingTransform_(IVar18,local_180);\n }\n IVar19 = CIColor::colorWithRed_green_blue_alpha_((ID)&_OBJC_CLASS___CIColor,0,0,0,0);\n IVar19 = CIImage::imageWithColor_((ID)&_OBJC_CLASS___CIImage,IVar19);\n IVar19 = CIImage::imageByCroppingToRect_(IVar19,dVar93,dVar99,local_7c0,local_7b8);\n IVar18 = CIImage::imageByCompositingOverImage_(IVar18,IVar19);\n IVar18 = CIImage::imageByCroppingToRect_(IVar18,dVar93,dVar99,local_7c0,local_7b8);\n }\n }\n FUN_100029674(dVar93);\n IVar19 = local_768;\n if (IVar18 != 0) {\n IVar19 = IVar18;\n }\n objc_stub::extent(IVar19);\n dVar86 = dVar99;\n dVar75 = local_7c0;\n dVar81 = local_7b8;\n IVar18 = objc_stub::extent(IVar19);\n iVar12 = (int)IVar18;\n dVar93 = dVar75;\n dVar77 = dVar81;\n FUN_100021624();\n dVar98 = 1.0;\n local_7c8 = extraout_d0_07;\n if (iVar12 == 0) {\n pcVar30 = &cf_vision_analysis_downsample_skipped_invalid_extent;\n }\n else {\n dVar82 = extraout_d0_08;\n _CGRectGetWidth(extraout_d0_08,dVar86,dVar75,dVar81);\n dVar76 = extraout_d0_08;\n dVar93 = dVar75;\n dVar77 = dVar81;\n _CGRectGetHeight(extraout_d0_08,dVar86);\n if (dVar76 <= dVar82) {\n dVar76 = dVar82;\n }\n if (DAT_1000bdf38 != -1) {\n FUN_10007964c();\n }\n if (dVar76 <= DAT_1000bdf30 + 0.5) {\n pcVar30 = &cf_vision_analysis_downsample_skipped_small;\n }\n else {\n dVar76 = DAT_1000bdf30 / dVar76;\n dVar82 = ABS(dVar76);\n pcVar30 = &cf_vision_analysis_downsample_skipped_invalid_scale;\n if ((((ulong)dVar82 < 0x7ff0000000000001 &&\n (dVar82 != INFINITY &&\n (dVar82 != 0.0 && (-1 < (long)dVar76 || 0xffffffffffffe < (long)ABS(dVar76) - 1U))))\n && (-1 < (long)dVar76 || 0x3fe < (long)ABS(dVar76) + 0xfff0000000000000U >> 0x35)) &&\n (dVar76 < 1.0)) {\n dVar93 = extraout_d0_08;\n _CGRectGetWidth(extraout_d0_08,dVar86,dVar75,dVar81);\n dVar77 = extraout_d0_08;\n _CGRectGetHeight(extraout_d0_08,dVar86,dVar75,dVar81);\n dVar98 = extraout_d0_08;\n _CGRectGetMinX(extraout_d0_08,dVar86,dVar75,dVar81);\n if ((0.0001 < ABS(dVar98)) ||\n (dVar98 = extraout_d0_08, _CGRectGetMinY(extraout_d0_08,dVar86,dVar75,dVar81),\n IVar18 = IVar19, 0.0001 < ABS(dVar98))) {\n dVar98 = extraout_d0_08;\n _CGRectGetMinX(extraout_d0_08,dVar86,dVar75,dVar81);\n dVar82 = extraout_d0_08;\n _CGRectGetMinY(extraout_d0_08,dVar86,dVar75,dVar81);\n _CGAffineTransformMakeTranslation(local_180,-dVar98,-dVar82);\n IVar18 = objc_stub::imageByApplyingTransform_(IVar19,local_180);\n IVar18 = objc_stub::imageByCroppingToRect_(IVar18,0,0,dVar93,dVar77);\n }\n dVar86 = 0.0;\n _CGRectGetWidth(0,0,dVar93,dVar77);\n dVar75 = 0.0;\n _CGRectGetHeight(0,0,dVar93,dVar77);\n _CGAffineTransformMakeScale(local_180,dVar76,dVar76);\n IVar18 = objc_stub::imageByApplyingTransform_(IVar18,local_180);\n dVar86 = (double)(long)(dVar76 * dVar86);\n if (dVar86 <= 1.0) {\n dVar86 = 1.0;\n }\n dVar75 = (double)(long)(dVar76 * dVar75);\n if (dVar75 <= 1.0) {\n dVar75 = 1.0;\n }\n dVar93 = dVar86;\n dVar77 = dVar75;\n IVar18 = objc_stub::imageByCroppingToRect_(IVar18,0,0);\n dVar98 = 1.0;\n if (IVar18 != 0) {\n IVar24 = objc_stub::extent(IVar18);\n iVar12 = (int)IVar24;\n FUN_100021624();\n if (iVar12 != 0) {\n dVar99 = 0.0;\n local_7c8 = 0.0;\n pcVar30 = &cf_vision_analysis_downsample_used;\n IVar19 = IVar18;\n dVar98 = dVar76;\n local_7c0 = dVar86;\n local_7b8 = dVar75;\n goto LAB_10002274c;\n }\n }\n pcVar30 = &cf_vision_analysis_downsample_skipped_empty_result;\n }\n }\n }\nLAB_10002274c:\n objc_stub::length((ID)pcVar30);\n IVar18 = CIImage::extent(local_768);\n uVar13 = (uint)IVar18;\n _CGRectIsEmpty();\n if (dVar93 <= 0.0) {\n uVar13 = 1;\n }\n IVar18 = local_768;\n if (((uVar13 & 1) == 0) && (0.0 < dVar77)) {\n IVar24 = local_768;\n _CGRectIsEmpty(CVar102.field0_0x0.field0_0x0,CVar102.field0_0x0.field1_0x8,\n CVar102.field1_0x10.field0_0x0,CVar102.field1_0x10.field1_0x8);\n uVar13 = (uint)IVar24;\n if (iVar14 < 1) {\n uVar13 = 1;\n }\n if (((uVar13 & 1) == 0) && (0 < iVar15)) {\n dVar77 = CVar102.field1_0x10.field1_0x8 / dVar77;\n dVar86 = -1.0;\n dVar75 = ABS(CVar102.field1_0x10.field0_0x0 / dVar93 + -1.0);\n if ((0.0001 < dVar75) || (dVar86 = ABS(dVar77 + -1.0), 0.0001 < dVar86)) {\n _CGAffineTransformMakeScale(local_180);\n IVar18 = CIImage::imageByApplyingTransform_(local_768,local_180);\n }\n CIImage::extent(IVar18);\n dVar93 = extraout_d0_09;\n _CGRectGetMinX();\n dVar81 = extraout_d0_09;\n _CGRectGetMinY(extraout_d0_09,dVar77,dVar86,dVar75);\n if ((0.0001 < ABS(CVar102.field0_0x0.field0_0x0 - dVar93)) ||\n (0.0001 < ABS(CVar102.field0_0x0.field1_0x8 - dVar81))) {\n _CGAffineTransformMakeTranslation\n (local_180,CVar102.field0_0x0.field0_0x0 - dVar93,\n CVar102.field0_0x0.field1_0x8 - dVar81);\n IVar18 = CIImage::imageByApplyingTransform_(IVar18,local_180);\n }\n FUN_10002afa8(CVar102.field0_0x0.field0_0x0,CVar102.field0_0x0.field1_0x8,\n CVar102.field1_0x10.field0_0x0,CVar102.field1_0x10.field1_0x8);\n }\n }\n FUN_100029674(dStack_8b0,local_8b8,dStack_8c0,local_8c8);\n if (p_Var27 != (__IOSurface *)0x0) {\n _IOSurfaceGetWidth(p_Var27);\n _IOSurfaceGetHeight(p_Var27);\n }\n if (puVar28 != (undefined8 *)0x0) {\n _IOSurfaceGetWidth(puVar28);\n _IOSurfaceGetHeight(puVar28);\n }\n if (p_Var27 != (__IOSurface *)0x0) {\n _IOSurfaceGetPixelFormat(p_Var27);\n FUN_1000297c8();\n }\n if (puVar28 != (undefined8 *)0x0) {\n _IOSurfaceGetPixelFormat(puVar28);\n FUN_1000297c8();\n }\n if ((*(uint *)((long)pdVar42 + 0xc) & 0x1d) == 1) {\n local_180._8_8_ = pdVar42[1];\n local_180._0_8_ = *pdVar42;\n local_170 = (long *)pdVar42[2];\n _CMTimeGetSeconds(local_180);\n }\n _NSStringFromRect(CVar100.field0_0x0.field0_0x0,dVar63,dVar64,dVar65);\n _NSStringFromRect(CVar102.field0_0x0.field0_0x0,CVar102.field0_0x0.field1_0x8,\n CVar102.field1_0x10.field0_0x0,CVar102.field1_0x10.field1_0x8);\n iVar14 = (int)(IVar20 >> 0x20);\n dVar75 = (double)(int)IVar20;\n dVar93 = (double)iVar14;\n dVar77 = (double)((int)extraout_x1_02 - (int)IVar20);\n dVar76 = (double)((int)((ulong)extraout_x1_02 >> 0x20) - iVar14);\n _NSStringFromRect();\n iVar14 = (int)(IVar17 >> 0x20);\n dVar86 = (double)(int)IVar17;\n dVar81 = (double)iVar14;\n dVar82 = (double)((int)extraout_x1 - (int)IVar17);\n dVar87 = (double)((int)((ulong)extraout_x1 >> 0x20) - iVar14);\n _NSStringFromRect();\n _NSStringFromRect(dStack_8b0,local_8b8,dStack_8c0,local_8c8);\n _NSStringFromRect(extraout_d0_05,dVar94,dVar66,dVar79);\n objc_stub::extent(IVar18);\n _NSStringFromRect();\n if (local_7d8 != 0) {\n objc_stub::width(local_7d8);\n objc_stub::height(local_7d8);\n }\n if (local_788 != 0) {\n objc_stub::width(local_788);\n objc_stub::height(local_788);\n }\n FUN_10001c338(CVar100.field0_0x0.field0_0x0,dVar63,dVar64,dVar65);\n FUN_10001c338(CVar102.field0_0x0.field0_0x0,CVar102.field0_0x0.field1_0x8,\n CVar102.field1_0x10.field0_0x0,CVar102.field1_0x10.field1_0x8);\n FUN_10001c338(dVar75,dVar93,dVar77,dVar76);\n FUN_10001c338(dVar86,dVar81,dVar82,dVar87);\n FUN_10001c338(extraout_d0_05,dVar94,dVar66,dVar79);\n objc_stub::extent(IVar18);\n FUN_10001c338();\n FUN_10001c338(local_7c8,dVar99,local_7c0,local_7b8);\n FUN_10001c338(extraout_d0_05,dVar94,dVar66,dVar79);\n objc_stub::extent(IVar19);\n FUN_10001c338();\n if (local_7d8 != 0) {\n objc_stub::width(local_7d8);\n objc_stub::height(local_7d8);\n }\n if (local_788 != 0) {\n objc_stub::width(local_788);\n objc_stub::height(local_788);\n }\n NSString::stringWithFormat_\n ((ID)&_OBJC_CLASS___NSString,&cf__a___5fb___5fc___5fd___5ftx___3fty___3f_);\n objc_stub::pixelTransform(IVar16);\n FUN_100021708();\n objc_stub::inversePixelTransform(IVar16);\n FUN_100021708();\n objc_stub::pixelTransform(param_3);\n FUN_100021708();\n objc_stub::inversePixelTransform(param_3);\n FUN_100021708();\n objc_stub::extent(IVar19);\n _NSStringFromRect();\n _NSStringFromRect(local_7c8,dVar99,local_7c0,local_7b8);\n _NSStringFromRect(extraout_d0_05,dVar94,dVar66,dVar79);\n p_Var5 = (__IOSurface *)0x0;\n if (0.999 <= dVar98) {\n p_Var5 = p_Var27;\n }\n if ((AStack_528.field30_0xe8._2_1_ & 1) == 0) {\n local_180._8_8_ = pdVar42[1];\n local_180._0_8_ = *pdVar42;\n local_170 = (long *)pdVar42[2];\n IVar16 = controlPanelValueForPluginAtTime_(param_1,(AnonymousStructure0 *)local_180);\n objc_stub::fastMultiFaceMode(IVar16);\n IVar16 = objc_stub::apiForProtocol_\n (*(ID *)(param_1 + 8),&objc::protocol_t::FxParameterRetrievalAPI_v6);\n local_100 = (double)((ulong)local_100 & 0xffffffffffffff00);\n if (IVar16 != 0) {\n if ((*(byte *)((long)pdVar42 + 0xc) & 1) != 0) {\n local_180._8_8_ = pdVar42[1];\n local_180._0_8_ = *pdVar42;\n local_170 = (long *)pdVar42[2];\n IVar17 = objc_stub::getBoolValue_fromParameter_atTime_(IVar16,&local_100,0x27,local_180)\n ;\n if ((IVar17 & 1) != 0) goto LAB_100022c64;\n }\n local_180._8_8_ = *(undefined8 *)(PTR__kCMTimeZero_1000a8218 + 8);\n local_180._0_8_ = *(undefined8 *)PTR__kCMTimeZero_1000a8218;\n local_170 = *(long **)(PTR__kCMTimeZero_1000a8218 + 0x10);\n objc_stub::getBoolValue_fromParameter_atTime_(IVar16,&local_100,0x27,local_180);\n }\n }\nLAB_100022c64:\n uVar13 = uVar46 | local_894 | local_8cc;\n if (uVar44 == 0 && uVar45 == 0) {\n local_880 = 0;\n }\n else {\n objc_stub::lock(*(ID *)(param_1 + 0x28));\n if (*(char *)(param_1 + 0x4a8) == '\\x01') {\n dVar94 = CVar100.field0_0x0.field0_0x0;\n _CGRectGetWidth(CVar100.field0_0x0.field0_0x0,dVar63,dVar64,dVar65);\n dVar66 = *(double *)(param_1 + 0x448);\n _CGRectGetWidth(dVar66,*(undefined8 *)(param_1 + 0x450),*(undefined8 *)(param_1 + 0x458),\n *(undefined8 *)(param_1 + 0x460));\n if (ABS(dVar94 - dVar66) <= 4.0) {\n dVar94 = CVar100.field0_0x0.field0_0x0;\n _CGRectGetHeight(CVar100.field0_0x0.field0_0x0,dVar63,dVar64,dVar65);\n dVar66 = *(double *)(param_1 + 0x448);\n _CGRectGetHeight(dVar66,*(undefined8 *)(param_1 + 0x450),\n *(undefined8 *)(param_1 + 0x458),*(undefined8 *)(param_1 + 0x460));\n bVar10 = 4.0 < ABS(dVar94 - dVar66);\n }\n else {\n bVar10 = true;\n }\n dVar94 = dVar75;\n _CGRectGetWidth(dVar75,dVar93,dVar77,dVar76);\n dVar66 = *(double *)(param_1 + 0x468);\n _CGRectGetWidth(dVar66,*(undefined8 *)(param_1 + 0x470),*(undefined8 *)(param_1 + 0x478),\n *(undefined8 *)(param_1 + 0x480));\n if (4.0 < ABS(dVar94 - dVar66)) {\n pcVar30 = &cf_source;\n if (!bVar10) {\n pcVar30 = &cf_destination;\n }\n goto LAB_100022e00;\n }\n dVar94 = dVar75;\n _CGRectGetHeight(dVar75,dVar93,dVar77,dVar76);\n dVar66 = *(double *)(param_1 + 0x468);\n _CGRectGetHeight(dVar66,*(undefined8 *)(param_1 + 0x470),*(undefined8 *)(param_1 + 0x478),\n *(undefined8 *)(param_1 + 0x480));\n bVar2 = bVar10;\n if (4.0 < ABS(dVar94 - dVar66)) {\n bVar2 = true;\n }\n pcVar30 = &cf_source;\n if (!bVar10) {\n pcVar30 = &cf_destination;\n }\n if (bVar2) goto LAB_100022e00;\n *(double *)(param_1 + 0x448) = CVar100.field0_0x0.field0_0x0;\n *(double *)(param_1 + 0x450) = dVar63;\n *(double *)(param_1 + 0x458) = dVar64;\n *(double *)(param_1 + 0x460) = dVar65;\n *(double *)(param_1 + 0x468) = dVar75;\n *(double *)(param_1 + 0x470) = dVar93;\n *(double *)(param_1 + 0x478) = dVar77;\n *(double *)(param_1 + 0x480) = dVar76;\n *(double *)(param_1 + 0x488) = dVar86;\n *(double *)(param_1 + 0x490) = dVar81;\n *(double *)(param_1 + 0x498) = dVar82;\n *(double *)(param_1 + 0x4a0) = dVar87;\n *(undefined1 *)(param_1 + 0x4a8) = 1;\n objc_stub::unlock(*(ID *)(param_1 + 0x28));\n }\n else {\n pcVar30 = &cf_initial;\nLAB_100022e00:\n objc_stub::unlock(*(ID *)(param_1 + 0x28));\n local_180._8_8_ = pdVar42[1];\n local_180._0_8_ = *pdVar42;\n local_170 = (long *)pdVar42[2];\n CVar7.field0_0x0.field1_0x8._0_4_ = SUB84(dVar81,0);\n CVar7.field0_0x0.field0_0x0 = dVar86;\n CVar7.field0_0x0.field1_0x8._4_4_ = (int)((ulong)dVar81 >> 0x20);\n CVar7.field1_0x10.field0_0x0 = dVar82;\n CVar7.field1_0x10.field1_0x8._0_4_ = SUB84(dVar87,0);\n CVar7.field1_0x10.field1_0x8._4_2_ = (short)((ulong)dVar87 >> 0x20);\n CVar7.field1_0x10.field1_0x8._6_2_ = (short)((ulong)dVar87 >> 0x30);\n CVar100.field0_0x0.field1_0x8 = dVar63;\n CVar100.field1_0x10.field1_0x8 = dVar65;\n CVar100.field1_0x10.field0_0x0 = dVar64;\n CVar104.field0_0x0.field1_0x8 = dVar93;\n CVar104.field0_0x0.field0_0x0 = dVar75;\n CVar104.field1_0x10.field1_0x8 = dVar76;\n CVar104.field1_0x10.field0_0x0 = dVar77;\n mss_resetFaceThinTransientStateForReason_call_renderTime_sourceRect_destinationRect_tileRect_\n (param_1,(ID)pcVar30,uVar1,(AnonymousStructure0 *)local_180,CVar100,CVar104,\n CVar7);\n }\n local_180._8_8_ = pdVar42[1];\n local_180._0_8_ = *pdVar42;\n local_170 = (long *)pdVar42[2];\n CVar101.field1_0x10.field1_0x8 = local_7b8;\n CVar101.field1_0x10.field0_0x0 = local_7c0;\n CVar101.field0_0x0.field1_0x8 = dVar99;\n CVar101.field0_0x0.field0_0x0 = local_7c8;\n local_880 = cachedFaceObservationsForInputImage_inputSurface_sourceTileRect_renderTime_allowForwardReuse_\n (param_1,IVar19,p_Var5,CVar101,(AnonymousStructure0 *)local_180,\n ((uVar13 | uVar44 | uVar45) ^ 1) & 1);\n _CGRectGetWidth(dVar75,dVar93,dVar77,dVar76);\n dVar66 = dVar77;\n dVar79 = dVar76;\n _CGRectGetHeight(dVar75,dVar93,dVar77,dVar76);\n }\n local_530 = 0;\n local_538 = 0.0;\n dVar98 = *(double *)(PTR__CGRectNull_1000a8148 + 8);\n dVar99 = *(double *)PTR__CGRectNull_1000a8148;\n dVar91 = *(double *)(PTR__CGRectNull_1000a8148 + 0x18);\n dVar69 = *(double *)(PTR__CGRectNull_1000a8148 + 0x10);\n local_180._8_8_ = pdVar42[1];\n local_180._0_8_ = *pdVar42;\n local_170 = (long *)pdVar42[2];\n dVar94 = dVar69;\n local_560.field0_0x0.field0_0x0 = dVar99;\n local_560.field0_0x0.field1_0x8 = dVar98;\n local_560.field1_0x10.field0_0x0 = dVar69;\n local_560.field1_0x10.field1_0x8 = dVar91;\n uVar29 = controlPanelValueForPluginAtTime_(param_1,(AnonymousStructure0 *)local_180);\n FUN_10000c4d0();\n IVar16 = objc_stub::fastMultiFaceMode(uVar29);\n uVar44 = (uint)IVar16 | (uint)AStack_528.field30_0xe8._2_1_;\n local_561 = (byte)uVar44 & 1;\n IVar16 = objc_stub::apiForProtocol_\n (*(ID *)(param_1 + 8),&objc::protocol_t::FxParameterRetrievalAPI_v6);\n if (IVar16 == 0) {\nLAB_100022fd8:\n if ((uVar44 & 1) == 0) goto LAB_100022fd0;\nLAB_100022fdc:\n objc_stub::setFastMultiFaceMode_(uVar29,1);\n objc_stub::setFaceSingleSelection_(uVar29,0);\n uVar44 = 1;\n }\n else {\n if ((*(byte *)((long)pdVar42 + 0xc) & 1) == 0) {\nLAB_100022f94:\n local_180._8_8_ = *(undefined8 *)(PTR__kCMTimeZero_1000a8218 + 8);\n local_180._0_8_ = *(undefined8 *)PTR__kCMTimeZero_1000a8218;\n local_170 = *(long **)(PTR__kCMTimeZero_1000a8218 + 0x10);\n IVar16 = objc_stub::getBoolValue_fromParameter_atTime_(IVar16,&local_561,0x27,local_180);\n if ((int)IVar16 == 0) goto LAB_100022fd8;\n }\n else {\n local_180._8_8_ = pdVar42[1];\n local_180._0_8_ = *pdVar42;\n local_170 = (long *)pdVar42[2];\n IVar17 = objc_stub::getBoolValue_fromParameter_atTime_(IVar16,&local_561,0x27,local_180);\n if ((IVar17 & 1) == 0) goto LAB_100022f94;\n }\n if (((local_561 | uVar44) & 1) != 0) goto LAB_100022fdc;\nLAB_100022fd0:\n uVar44 = 0;\n }\n if ((uVar13 & 1) == 0) {\n local_768 = 0;\n IVar16 = 0;\n }\n else {\n if (p_Var27 != (__IOSurface *)0x0) {\n local_1b0 = *(undefined8 *)PTR__kCIImageColorSpace_1000a81c8;\n local_1a8 = (ID)local_790;\n IVar16 = NSDictionary::dictionaryWithObjects_forKeys_count_\n ((ID)&_OBJC_CLASS___NSDictionary,&local_1a8,&local_1b0,1);\n IVar16 = CIImage::imageWithIOSurface_options_((ID)&_OBJC_CLASS___CIImage,p_Var27,IVar16);\n if (IVar16 != 0) {\n local_768 = IVar16;\n }\n }\n objc_stub::lock(*(ID *)(param_1 + 0x30));\n dVar55 = *(double *)(param_1 + 0x40);\n IVar16 = CIImage::extent(local_768);\n uVar45 = (uint)IVar16;\n _CGRectIsEmpty();\n if (dVar55 == 0.0) {\n uVar45 = 1;\n }\n if ((uVar45 & 1) == 0) {\n CIImage::extent(local_768);\n IVar17 = local_768;\n FUN_10002ee0c();\n IVar16 = 0;\n if (IVar17 != 0) {\n puVar58 = &_OBJC_CLASS___VNImageRequestHandler;\n _objc_alloc();\n IVar16 = objc_stub::initWithCIImage_options_\n ((ID)puVar58,IVar17,PTR____NSDictionary0__struct_1000a8118);\n local_180._0_8_ = 0.0;\n local_100 = dVar55;\n IVar17 = NSArray::arrayWithObjects_count_((ID)&_OBJC_CLASS___NSArray,&local_100,1);\n IVar16 = objc_stub::performRequests_error_(IVar16,IVar17,local_180);\n if ((int)IVar16 == 0) {\n IVar16 = 0;\n }\n else {\n IVar16 = objc_stub::results((ID)dVar55);\n IVar16 = objc_stub::copy(IVar16);\n }\n IVar17 = IVar16;\n FUN_10002a428();\n objc_stub::count(IVar16);\n objc_stub::count(IVar17);\n FUN_10001c338(extraout_d0_10,dVar94,dVar66,dVar79);\n IVar19 = objc_stub::count(IVar17);\n IVar16 = 0;\n if (IVar19 != 0) {\n IVar16 = IVar17;\n }\n }\n }\n else {\n IVar16 = 0;\n }\n objc_stub::unlock(*(ID *)(param_1 + 0x30));\n }\n FUN_10000c814(uVar29);\n objc_stub::faceTrackActiveTargetIndex(uVar29);\n IVar17 = objc_stub::faceTrackData(uVar29);\n IVar17 = objc_stub::length(IVar17);\n if (((IVar17 == 0) && (IVar17 = objc_stub::length(*(ID *)(param_1 + 0x6e0)), IVar17 != 0)) &&\n (IVar17 = objc_stub::faceTrackRevision(uVar29), *(long *)(param_1 + 0x6e8) < (long)IVar17))\n {\n *(undefined8 *)(param_1 + 0x6e0) = 0;\n *(undefined8 *)(param_1 + 0x6e8) = 0;\n }\n if (AStack_528.field38_0x118 == 3) {\n objc_stub::length(0);\n }\n IVar17 = objc_stub::length(0);\n if (IVar17 != 0) {\n IVar17 = 0;\n FUN_10004b6ec();\n IVar19 = objc_stub::count(IVar17);\n if ((IVar19 == 0) && (IVar19 = objc_stub::hasPrefix_(0,&cf_m1_), (int)IVar19 != 0)) {\n IVar19 = 0;\n FUN_10004b028();\n dStack_d8 = 0.0;\n local_e0 = 0.0;\n uStack_c8 = 0;\n uStack_d0 = 0;\n dStack_f8 = 0.0;\n local_100 = 0.0;\n dStack_e8 = 0.0;\n local_f0 = (long *)0x0;\n IVar20 = objc_stub::countByEnumeratingWithState_objects_count_\n (IVar19,&local_100,local_180,0x10);\n if (IVar20 != 0) {\n lVar60 = 0;\n lVar54 = *local_f0;\n dVar66 = 1.7976931348623157e+308;\n dVar94 = -1.7976931348623157e+308;\n do {\n IVar24 = 0;\n dVar79 = dVar94;\n do {\n if (*local_f0 != lVar54) {\n _objc_enumerationMutation(IVar19);\n }\n IVar25 = *(ID *)((long)dStack_f8 + IVar24 * 8);\n FUN_10004b6ec();\n IVar26 = objc_stub::count(IVar25);\n dVar94 = dVar79;\n if (IVar26 != 0) {\n IVar26 = objc_stub::firstObject(IVar25);\n IVar26 = objc_stub::objectForKey_(IVar26,&cf_t);\n objc_stub::doubleValue(IVar26);\n IVar26 = objc_stub::lastObject(IVar25);\n IVar26 = objc_stub::objectForKey_(IVar26,&cf_t);\n objc_stub::doubleValue(IVar26);\n if (((ulong)ABS(extraout_d0_11) < 0x7ff0000000000000) &&\n ((ulong)ABS(extraout_d0_12) < 0x7ff0000000000000)) {\n if (extraout_d0_11 <= dVar66) {\n dVar66 = extraout_d0_11;\n }\n dVar94 = extraout_d0_12;\n if (extraout_d0_12 <= dVar79) {\n dVar94 = dVar79;\n }\n IVar25 = objc_stub::count(IVar25);\n lVar60 = IVar25 + lVar60;\n }\n }\n IVar24 = IVar24 + 1;\n dVar79 = dVar94;\n } while (IVar20 != IVar24);\n IVar20 = objc_stub::countByEnumeratingWithState_objects_count_\n (IVar19,&local_100,local_180,0x10);\n } while (IVar20 != 0);\n if (((lVar60 != 0) && ((ulong)ABS(dVar66) < 0x7ff0000000000000)) &&\n ((ulong)ABS(dVar94) < 0x7ff0000000000000)) goto LAB_1000233ac;\n }\n }\n IVar19 = objc_stub::count(IVar17);\n if (IVar19 != 0) {\n IVar19 = objc_stub::firstObject(IVar17);\n IVar19 = objc_stub::objectForKey_(IVar19,&cf_t);\n objc_stub::doubleValue(IVar19);\n IVar19 = objc_stub::lastObject(IVar17);\n IVar19 = objc_stub::objectForKey_(IVar19,&cf_t);\n objc_stub::doubleValue(IVar19);\n if (((extraout_d0_13 & 0x7fffffffffffffff) < 0x7ff0000000000000) &&\n ((extraout_d0_14 & 0x7fffffffffffffff) < 0x7ff0000000000000)) {\n objc_stub::count(IVar17);\n }\n }\n }\nLAB_1000233ac:\n IVar19 = uVar29;\n FUN_10000c814();\n IVar20 = objc_stub::faceTrackActiveTargetIndex(uVar29);\n IVar17 = IVar20;\n if (0x7e < IVar20) {\n IVar17 = 0x7f;\n }\n IVar24 = 0;\n if (-1 < (long)IVar20) {\n IVar24 = IVar17;\n }\n if ((long)(IVar19 - 1) <= (long)IVar24) {\n IVar24 = IVar19 - 1;\n }\n if (uVar44 == 0) {\n IVar20 = uVar29;\n FUN_100010a50(uVar29,IVar24);\n }\n local_790 = *(double *)PTR__CGRectNull_1000a8148;\n local_798 = *(double *)(PTR__CGRectNull_1000a8148 + 8);\n local_7a0 = *(double *)(PTR__CGRectNull_1000a8148 + 0x10);\n local_7a8 = *(double *)(PTR__CGRectNull_1000a8148 + 0x18);\n CVar7 = *(CGRect *)PTR__CGRectNull_1000a8148;\n dVar94 = local_790;\n dVar66 = local_798;\n dVar79 = local_7a0;\n dVar55 = local_7a8;\n _CGRectIsNull();\n if (((IVar20 & 1) == 0) &&\n (dVar94 = local_790, dVar66 = local_798, dVar79 = local_7a0, dVar55 = local_7a8,\n _CGRectIsEmpty(), (IVar20 & 1) == 0)) {\n dVar94 = local_790;\n dVar79 = local_7a0;\n dVar55 = local_7a8;\n _CGRectGetWidth(local_790,local_798);\n dVar66 = 2.220446049250313e-16;\n if (dVar94 <= 2.220446049250313e-16) goto LAB_100023480;\n dVar94 = local_790;\n dVar79 = local_7a0;\n dVar55 = local_7a8;\n _CGRectGetHeight(local_790,local_798);\n dVar66 = 2.220446049250313e-16;\n bVar10 = 2.220446049250313e-16 < dVar94;\n }\n else {\nLAB_100023480:\n bVar10 = false;\n }\n dVar78 = dVar66;\n dVar90 = dVar79;\n dVar85 = dVar55;\n if (uVar44 == 0) {\n FUN_10002985c(uVar29,IVar24);\n dVar78 = dVar66;\n dVar90 = dVar79;\n dVar85 = dVar55;\n FUN_1000299b0(uVar29,IVar24);\n if ((((int)uVar29 != 0) &&\n (dVar78 = dVar66, dVar90 = dVar79, dVar85 = dVar55, _CGRectIsNull(dVar94),\n (uVar29 & 1) == 0)) &&\n (dVar78 = dVar66, dVar90 = dVar79, dVar85 = dVar55, _CGRectIsEmpty(dVar94),\n (uVar29 & 1) == 0)) {\n dVar80 = dVar94;\n dVar90 = dVar79;\n dVar85 = dVar55;\n _CGRectGetWidth(dVar94,dVar66);\n dVar78 = 2.220446049250313e-16;\n if (2.220446049250313e-16 < dVar80) {\n _CGRectGetHeight(dVar94);\n dVar78 = dVar66;\n dVar90 = dVar79;\n dVar85 = dVar55;\n }\n }\n }\n local_7c0 = local_798;\n local_7b8 = local_790;\n local_7d0 = local_7a8;\n local_7c8 = local_7a0;\n if ((uVar13 & (uVar44 ^ 1)) == 0) {\n local_7b0 = 0;\n }\n else {\n local_100 = (double)((ulong)local_100 & 0xffffffffffffff00);\n local_180._8_8_ = pdVar42[1];\n local_180._0_8_ = *pdVar42;\n local_170 = (long *)pdVar42[2];\n dVar79 = local_7a0;\n dVar55 = local_7a8;\n local_7b0 = mss_pinStyleFacePointsForObservations_renderTime_params_trackingInputImage_preferredBox_hasPreferredBox_selectedObservationOut_strengthMultiplierOut_pointsBoxOut_usedHoldOut_\n (param_1,IVar16,(AnonymousStructure0 *)local_180,&AStack_528,local_768\n ,CVar7,0,&local_530,&local_538,&local_560,(bool *)&local_100);\n uVar29 = objc_stub::count(local_7b0);\n dVar85 = local_560.field1_0x10.field1_0x8;\n dVar90 = local_560.field1_0x10.field0_0x0;\n dVar66 = local_560.field0_0x0.field1_0x8;\n dVar94 = local_560.field0_0x0.field0_0x0;\n if (((0x4c < uVar29) && (2.220446049250313e-16 < local_538)) &&\n ((dVar79 = local_560.field1_0x10.field0_0x0, dVar55 = local_560.field1_0x10.field1_0x8,\n _CGRectIsNull(local_560.field0_0x0.field0_0x0,local_560.field0_0x0.field1_0x8),\n (uVar29 & 1) == 0 &&\n ((dVar79 = dVar90, dVar55 = dVar85, _CGRectIsEmpty(dVar94,dVar66), (uVar29 & 1) == 0 &&\n (dVar78 = dVar94, dVar79 = dVar90, dVar55 = dVar85, _CGRectGetWidth(dVar94,dVar66),\n 2.220446049250313e-16 < dVar78)))))) {\n _CGRectGetHeight(dVar94,dVar66);\n dVar78 = 2.220446049250313e-16;\n dVar79 = dVar90;\n dVar55 = dVar85;\n if (2.220446049250313e-16 < dVar94) {\n local_7b8 = local_560.field0_0x0.field0_0x0;\n local_7c0 = local_560.field0_0x0.field1_0x8;\n local_7c8 = local_560.field1_0x10.field0_0x0;\n local_7d0 = local_560.field1_0x10.field1_0x8;\n goto LAB_1000236c0;\n }\n }\n local_7b0 = 0;\n local_530 = 0;\n local_538 = 0.0;\n dVar78 = dVar99;\n dVar90 = dVar79;\n dVar85 = dVar55;\n local_560.field0_0x0.field0_0x0 = dVar99;\n local_560.field0_0x0.field1_0x8 = dVar98;\n local_560.field1_0x10.field0_0x0 = dVar69;\n local_560.field1_0x10.field1_0x8 = dVar91;\n }\nLAB_1000236c0:\n if ((uVar44 & uVar13) == 1) {\n IVar17 = objc_stub::count(IVar16);\n local_768 = NSMutableArray::arrayWithCapacity_((ID)&_OBJC_CLASS___NSMutableArray,IVar17);\n IVar17 = objc_stub::count(IVar16);\n IVar19 = NSMutableArray::arrayWithCapacity_((ID)&_OBJC_CLASS___NSMutableArray,IVar17);\n uStack_578 = 0;\n local_580 = 0;\n uStack_588 = 0;\n local_590 = 0;\n uStack_598 = 0;\n local_5a0 = (long *)0x0;\n lStack_5a8 = 0;\n local_5b0 = 0;\n IVar20 = objc_stub::countByEnumeratingWithState_objects_count_\n (IVar16,&local_5b0,auStack_230,0x10);\n IVar17 = 0;\n if (IVar20 != 0) {\n lVar60 = *local_5a0;\n dVar94 = extraout_d0_15;\n do {\n IVar24 = 0;\n IVar25 = IVar17;\n do {\n dVar66 = dVar94;\n dVar79 = dVar78;\n dVar99 = dVar90;\n dVar98 = dVar85;\n if (*local_5a0 != lVar60) {\n _objc_enumerationMutation(IVar16);\n dVar66 = dVar94;\n dVar79 = dVar78;\n dVar99 = dVar90;\n dVar98 = dVar85;\n }\n IVar56 = *(ID *)(lStack_5a8 + IVar24 * 8);\n IVar26 = IVar56;\n FUN_100029a00();\n FUN_100029d20(IVar56);\n dVar78 = dVar79;\n dVar90 = dVar99;\n dVar85 = dVar98;\n uVar29 = objc_stub::count(IVar26);\n IVar17 = IVar25;\n dVar94 = extraout_d0_16;\n if (((0x4c < uVar29) &&\n (dVar94 = dVar66, dVar78 = dVar79, dVar90 = dVar99, dVar85 = dVar98,\n _CGRectIsNull(), (uVar29 & 1) == 0)) &&\n (dVar94 = dVar66, dVar78 = dVar79, dVar90 = dVar99, dVar85 = dVar98,\n _CGRectIsEmpty(), (uVar29 & 1) == 0)) {\n dVar94 = dVar66;\n dVar90 = dVar99;\n dVar85 = dVar98;\n _CGRectGetWidth(dVar66,dVar79);\n dVar78 = 2.220446049250313e-16;\n if (2.220446049250313e-16 < dVar94) {\n dVar94 = dVar66;\n dVar90 = dVar99;\n dVar85 = dVar98;\n _CGRectGetHeight(dVar66,dVar79);\n dVar78 = 2.220446049250313e-16;\n if (2.220446049250313e-16 < dVar94) {\n NSMutableArray::addObject_(local_768,IVar26);\n IVar17 = NSValue::valueWithRect_((ID)&_OBJC_CLASS___NSValue,dVar66);\n NSMutableArray::addObject_(IVar19,IVar17);\n IVar17 = IVar56;\n dVar94 = extraout_d0_17;\n dVar78 = dVar79;\n dVar90 = dVar99;\n dVar85 = dVar98;\n if (IVar25 != 0) {\n IVar17 = IVar25;\n }\n }\n }\n }\n IVar24 = IVar24 + 1;\n IVar25 = IVar17;\n } while (IVar20 != IVar24);\n IVar20 = objc_stub::countByEnumeratingWithState_objects_count_\n (IVar16,&local_5b0,auStack_230,0x10);\n dVar94 = extraout_d0_18;\n } while (IVar20 != 0);\n }\n IVar20 = NSMutableArray::count(local_768);\n if (IVar20 == 0) goto LAB_1000238e8;\n local_7b0 = NSMutableArray::firstObject(local_768);\n local_538 = 1.0;\n local_530 = IVar17;\n IVar17 = NSMutableArray::firstObject(IVar19);\n NSMutableArray::rectValue(IVar17);\n local_7b8 = extraout_d0_19;\n FUN_10001bef0();\n local_7d0 = dVar85;\n local_7c8 = dVar90;\n local_7c0 = dVar78;\n local_560.field0_0x0.field0_0x0 = local_7b8;\n local_560.field0_0x0.field1_0x8 = dVar78;\n local_560.field1_0x10.field0_0x0 = dVar90;\n local_560.field1_0x10.field1_0x8 = dVar85;\n }\n else {\nLAB_1000238e8:\n local_768 = 0;\n }\n uVar29 = objc_stub::count(0);\n local_808 = local_7b8;\n local_820 = local_7c0;\n local_838 = local_7d0;\n local_830 = local_7c8;\n if (bVar10) {\n _CGRectIsNull(local_790,local_798,local_7a0,local_7a8);\n local_808 = local_7b8;\n local_820 = local_7c0;\n local_838 = local_7d0;\n local_830 = local_7c8;\n if ((uVar29 & 1) == 0) {\n _CGRectIsEmpty(local_790,local_798,local_7a0,local_7a8);\n local_808 = local_7b8;\n local_820 = local_7c0;\n local_838 = local_7d0;\n local_830 = local_7c8;\n if ((uVar29 & 1) == 0) {\n dVar94 = local_790;\n _CGRectGetWidth(local_790,local_798,local_7a0,local_7a8);\n local_808 = local_7b8;\n local_820 = local_7c0;\n local_838 = local_7d0;\n local_830 = local_7c8;\n if (2.220446049250313e-16 < dVar94) {\n dVar94 = local_790;\n _CGRectGetHeight(local_790,local_798,local_7a0,local_7a8);\n local_808 = local_7b8;\n local_820 = local_7c0;\n local_838 = local_7d0;\n local_830 = local_7c8;\n if (2.220446049250313e-16 < dVar94) {\n local_838 = local_7a8;\n local_830 = local_7a0;\n local_820 = local_798;\n local_808 = local_790;\n }\n }\n }\n }\n }\n dVar99 = local_560.field1_0x10.field1_0x8;\n dVar79 = local_560.field1_0x10.field0_0x0;\n dVar66 = local_560.field0_0x0.field1_0x8;\n dVar94 = local_560.field0_0x0.field0_0x0;\n _CGRectIsNull(local_560.field0_0x0.field0_0x0,local_560.field0_0x0.field1_0x8,\n local_560.field1_0x10.field0_0x0,local_560.field1_0x10.field1_0x8);\n if (((((uVar29 & 1) != 0) || (_CGRectIsEmpty(dVar94,dVar66,dVar79,dVar99), (uVar29 & 1) != 0))\n || ((dVar98 = dVar94, _CGRectGetWidth(dVar94,dVar66,dVar79,dVar99),\n dVar98 <= 2.220446049250313e-16 ||\n (_CGRectGetHeight(dVar94,dVar66,dVar79,dVar99), dVar94 <= 2.220446049250313e-16)))) &&\n ((((uVar29 = objc_stub::count(local_7b0), 0x4c < uVar29 &&\n (_CGRectIsNull(local_808,local_820,local_830,local_838), (uVar29 & 1) == 0)) &&\n (_CGRectIsEmpty(local_808,local_820,local_830,local_838), (uVar29 & 1) == 0)) &&\n ((dVar94 = local_808, _CGRectGetWidth(local_808,local_820,local_830,local_838),\n 2.220446049250313e-16 < dVar94 &&\n (dVar94 = local_808, _CGRectGetHeight(local_808,local_820,local_830,local_838),\n 2.220446049250313e-16 < dVar94)))))) {\n local_560.field0_0x0.field0_0x0 = local_808;\n local_560.field0_0x0.field1_0x8 = local_820;\n local_560.field1_0x10.field0_0x0 = local_830;\n local_560.field1_0x10.field1_0x8 = local_838;\n }\n dVar79 = local_7c0;\n dVar94 = local_7c8;\n dVar66 = local_7d0;\n _CGRectIsNull(local_7b8);\n if (((uVar29 & 1) == 0) &&\n (dVar79 = local_7c0, dVar94 = local_7c8, dVar66 = local_7d0, _CGRectIsEmpty(local_7b8),\n (uVar29 & 1) == 0)) {\n dVar99 = local_7b8;\n dVar94 = local_7c8;\n dVar66 = local_7d0;\n _CGRectGetWidth(local_7b8,local_7c0);\n dVar79 = 2.220446049250313e-16;\n if (dVar99 <= 2.220446049250313e-16) goto LAB_100023bac;\n dVar99 = local_7b8;\n dVar94 = local_7c8;\n dVar66 = local_7d0;\n _CGRectGetHeight(local_7b8,local_7c0);\n dVar79 = 2.220446049250313e-16;\n if (dVar99 <= 2.220446049250313e-16) goto LAB_100023bac;\n }\n else {\nLAB_100023bac:\n IVar17 = objc_stub::count(local_7b0);\n dVar91 = local_560.field1_0x10.field1_0x8;\n dVar69 = local_560.field1_0x10.field0_0x0;\n dVar98 = local_560.field0_0x0.field1_0x8;\n dVar99 = local_560.field0_0x0.field0_0x0;\n if (0x4c < IVar17) {\n uVar29 = 0;\n if (local_530 != 0) {\n uVar29 = objc_stub::boundingBox(local_530);\n local_7b8 = extraout_d0_20;\n _CGRectStandardize();\n _CGRectIntersection();\n _CGRectIsNull(local_7b8,dVar79,dVar94,dVar66);\n if (((((((uVar29 & 1) != 0) ||\n (_CGRectIsEmpty(local_7b8,dVar79,dVar94,dVar66), (uVar29 & 1) != 0)) ||\n (dVar55 = local_7b8, _CGRectGetWidth(local_7b8,dVar79,dVar94,dVar66),\n dVar55 <= 2.220446049250313e-16)) ||\n (dVar55 = local_7b8, _CGRectGetHeight(local_7b8,dVar79,dVar94,dVar66),\n local_7d0 = dVar66, local_7c8 = dVar94, local_7c0 = dVar79,\n dVar55 <= 2.220446049250313e-16)) &&\n ((_CGRectIsNull(dVar99,dVar98,dVar69,dVar91), local_7d0 = local_7a8,\n local_7c8 = local_7a0, local_7c0 = local_798, local_7b8 = local_790,\n (uVar29 & 1) == 0 &&\n (_CGRectIsEmpty(dVar99,dVar98,dVar69,dVar91), (uVar29 & 1) == 0)))) &&\n ((dVar94 = dVar99, _CGRectGetWidth(dVar99,dVar98,dVar69,dVar91),\n 2.220446049250313e-16 < dVar94 &&\n (dVar94 = dVar99, _CGRectGetHeight(dVar99,dVar98,dVar69,dVar91),\n 2.220446049250313e-16 < dVar94)))) {\n FUN_10001bef0();\n local_7d0 = dVar91;\n local_7c8 = dVar69;\n local_7c0 = dVar98;\n local_7b8 = dVar99;\n }\n }\n dVar79 = local_7c0;\n dVar94 = local_7c8;\n dVar66 = local_7d0;\n _CGRectIsNull(local_7b8);\n if (((uVar29 & 1) == 0) &&\n (dVar79 = local_7c0, dVar94 = local_7c8, dVar66 = local_7d0, _CGRectIsEmpty(local_7b8),\n (uVar29 & 1) == 0)) {\n dVar99 = local_7b8;\n dVar94 = local_7c8;\n dVar66 = local_7d0;\n _CGRectGetWidth(local_7b8,local_7c0);\n dVar79 = 2.220446049250313e-16;\n if (2.220446049250313e-16 < dVar99) {\n dVar99 = local_7b8;\n dVar94 = local_7c8;\n dVar66 = local_7d0;\n _CGRectGetHeight(local_7b8,local_7c0);\n dVar79 = 2.220446049250313e-16;\n if (2.220446049250313e-16 < dVar99) goto LAB_100023e2c;\n }\n }\n local_7b8 = local_560.field0_0x0.field0_0x0;\n local_7c0 = local_560.field0_0x0.field1_0x8;\n local_7c8 = local_560.field1_0x10.field0_0x0;\n local_7d0 = local_560.field1_0x10.field1_0x8;\n }\n }\nLAB_100023e2c:\n uVar29 = objc_stub::count(local_7b0);\n dVar91 = local_560.field1_0x10.field1_0x8;\n dVar69 = local_560.field1_0x10.field0_0x0;\n dVar98 = local_560.field0_0x0.field1_0x8;\n dVar99 = local_560.field0_0x0.field0_0x0;\n if (((0x4c < uVar29) &&\n (dVar79 = local_560.field0_0x0.field1_0x8, dVar94 = local_560.field1_0x10.field0_0x0,\n dVar66 = local_560.field1_0x10.field1_0x8, _CGRectIsNull(local_560.field0_0x0.field0_0x0),\n (uVar29 & 1) == 0)) &&\n (dVar79 = dVar98, dVar94 = dVar69, dVar66 = dVar91, _CGRectIsEmpty(dVar99),\n (uVar29 & 1) == 0)) {\n dVar55 = dVar99;\n dVar94 = dVar69;\n dVar66 = dVar91;\n _CGRectGetWidth(dVar99,dVar98);\n dVar79 = 2.220446049250313e-16;\n if (2.220446049250313e-16 < dVar55) {\n _CGRectGetHeight(dVar99,dVar98);\n dVar79 = 2.220446049250313e-16;\n dVar94 = dVar69;\n dVar66 = dVar91;\n if (((2.220446049250313e-16 < dVar99) &&\n (dVar79 = local_820, dVar94 = local_830, dVar66 = local_838, _CGRectIsNull(local_808),\n (uVar29 & 1) == 0)) &&\n (dVar79 = local_820, dVar94 = local_830, dVar66 = local_838, _CGRectIsEmpty(local_808),\n (uVar29 & 1) == 0)) {\n dVar99 = local_808;\n dVar94 = local_830;\n dVar66 = local_838;\n _CGRectGetWidth(local_808,local_820);\n dVar79 = 2.220446049250313e-16;\n if (2.220446049250313e-16 < dVar99) {\n dVar99 = local_808;\n dVar94 = local_830;\n dVar66 = local_838;\n _CGRectGetHeight(local_808,local_820);\n dVar79 = 2.220446049250313e-16;\n if ((2.220446049250313e-16 < dVar99) &&\n (dVar79 = local_560.field0_0x0.field1_0x8,\n dVar94 = local_560.field1_0x10.field0_0x0,\n dVar66 = local_560.field1_0x10.field1_0x8,\n FUN_10002a568(local_560.field0_0x0.field0_0x0), (uVar29 & 1) == 0)) {\n _NSStringFromRect(local_560.field0_0x0.field0_0x0,local_560.field0_0x0.field1_0x8,\n local_560.field1_0x10.field0_0x0,local_560.field1_0x10.field1_0x8)\n ;\n dVar94 = local_830;\n dVar66 = local_838;\n _NSStringFromRect(local_808,local_820);\n local_808 = local_560.field0_0x0.field0_0x0;\n local_820 = *(double *)((ulong)&local_560 | 8);\n local_838 = local_560.field1_0x10.field1_0x8;\n local_830 = local_560.field1_0x10.field0_0x0;\n dVar79 = local_560.field1_0x10.field0_0x0;\n }\n }\n }\n }\n }\n objc_stub::count(local_880);\n objc_stub::count(0);\n objc_stub::count(0);\n uVar29 = objc_stub::count(local_7b0);\n dVar99 = extraout_d0_21;\n if (uVar29 < 0x4d) {\n _CGRectIsNull(local_808,local_820,local_830,local_838);\n if ((((uVar29 & 1) == 0) &&\n (_CGRectIsEmpty(local_808,local_820,local_830,local_838), (uVar29 & 1) == 0)) &&\n (dVar94 = local_808, _CGRectGetWidth(local_808,local_820,local_830,local_838),\n 2.220446049250313e-16 < dVar94)) {\n dVar99 = local_808;\n dVar94 = local_830;\n dVar66 = local_838;\n _CGRectGetHeight(local_808,local_820);\n dVar79 = 2.220446049250313e-16;\n if (2.220446049250313e-16 < dVar99) goto LAB_100023fe0;\n }\n dVar66 = local_560.field1_0x10.field1_0x8;\n dVar94 = local_560.field1_0x10.field0_0x0;\n dVar79 = local_560.field0_0x0.field1_0x8;\n dVar99 = local_560.field0_0x0.field0_0x0;\n _CGRectIsNull(local_560.field0_0x0.field0_0x0,local_560.field0_0x0.field1_0x8,\n local_560.field1_0x10.field0_0x0,local_560.field1_0x10.field1_0x8);\n if ((((uVar29 & 1) == 0) && (_CGRectIsEmpty(dVar99,dVar79,dVar94,dVar66), (uVar29 & 1) == 0)\n ) && (dVar98 = dVar99, _CGRectGetWidth(dVar99,dVar79,dVar94,dVar66),\n 2.220446049250313e-16 < dVar98)) {\n _CGRectGetHeight(dVar99,dVar79);\n dVar79 = 2.220446049250313e-16;\n if (2.220446049250313e-16 < dVar99) goto LAB_100023fe0;\n }\n }\n else {\nLAB_100023fe0:\n FUN_10002a7b8(local_7b0,0,0x4b);\n dVar98 = dVar99;\n dVar90 = dVar79;\n dVar78 = dVar94;\n dVar68 = dVar66;\n FUN_10002a7b8(local_7b0,0x3b,0x4b);\n dVar69 = dVar98;\n dVar85 = dVar90;\n dVar80 = dVar78;\n dVar83 = dVar68;\n FUN_10002a928(local_7b0);\n dVar91 = dVar75;\n _CGRectGetWidth(dVar75,dVar93,dVar77,dVar76);\n dVar55 = dVar75;\n _CGRectGetHeight(dVar75,dVar93,dVar77,dVar76);\n objc_stub::count(local_7b0);\n FUN_10001b584(local_560.field0_0x0.field0_0x0,local_560.field0_0x0.field1_0x8,\n local_560.field1_0x10.field0_0x0,local_560.field1_0x10.field1_0x8);\n FUN_10001b584(local_7b8,local_7c0,local_7c8,local_7d0);\n FUN_10001b584(local_808,local_820,local_830,local_838);\n FUN_10001c338(dVar99,dVar79,dVar94,dVar66);\n FUN_10001c338(dVar98,dVar90,dVar78,dVar68);\n FUN_10001c338(dVar69,dVar85,dVar80,dVar83);\n _CGRectGetWidth(dVar99,dVar79,dVar94,dVar66);\n _CGRectGetHeight(dVar99,dVar79,dVar94,dVar66);\n _CGRectGetWidth(dVar69,dVar85,dVar80,dVar83);\n _CGRectGetHeight(dVar69,dVar85,dVar80,dVar83);\n FUN_10002ab0c(local_7b0);\n FUN_10002ac7c(dVar91,dVar55,local_7b0);\n }\n objc_stub::count(local_880);\n objc_stub::count(local_7b0);\n _NSStringFromRect(local_560.field0_0x0.field0_0x0,local_560.field0_0x0.field1_0x8,\n local_560.field1_0x10.field0_0x0,local_560.field1_0x10.field1_0x8);\n _NSStringFromRect(local_808,local_820,local_830,local_838);\n _NSStringFromRect(local_790,local_798,local_7a0,local_7a8);\n dVar94 = local_7a0;\n dVar66 = local_7a8;\n _NSStringFromRect(local_790,local_798);\n objc_stub::length(*(ID *)(param_1 + 0x6e0));\n bVar61 = 1;\n if (((AStack_528.field7_0x38 <= 2.220446049250313e-16) &&\n ((double)AStack_528._192_8_ <= 2.220446049250313e-16)) &&\n ((AStack_528.field2_0x10 <= 2.220446049250313e-16 &&\n (((ABS(AStack_528.field3_0x18) <= 2.220446049250313e-16 &&\n (ABS(AStack_528.field4_0x20) <= 2.220446049250313e-16)) && (AStack_528.field5_0x28 == 0)\n ))))) {\n bVar61 = (byte)AStack_528.field44_0x140;\n }\n dVar79 = 2.220446049250313e-16;\n pbVar31 = (byte *)_getenv(\"MSE18_ENABLE_TILE_LOCAL_SKIN_FILTER\");\n if (pbVar31 != (byte *)0x0) {\n if (*pbVar31 != 0) {\n uVar45 = *pbVar31 - 0x30;\n if (uVar45 == 0) {\n uVar45 = (uint)pbVar31[1];\n }\n if ((uVar45 != 0 && ((bVar61 ^ 0xff) & 1) == 0) && bVar8 == 0) {\n dVar79 = dVar81;\n dVar94 = dVar82;\n dVar66 = dVar87;\n FUN_100021624(dVar86);\n if (((int)pbVar31 != 0) &&\n (dVar79 = CVar102.field0_0x0.field1_0x8, dVar94 = CVar102.field1_0x10.field0_0x0,\n dVar66 = CVar102.field1_0x10.field1_0x8, FUN_100021624(CVar102.field0_0x0.field0_0x0)\n , (int)pbVar31 != 0)) {\n dVar79 = CVar102.field0_0x0.field1_0x8;\n dVar94 = CVar102.field1_0x10.field0_0x0;\n dVar66 = CVar102.field1_0x10.field1_0x8;\n _CGRectInset(CVar102.field0_0x0.field0_0x0);\n _CGRectContainsRect();\n }\n goto LAB_100024394;\n }\n }\n pbVar31 = (byte *)0x0;\n }\nLAB_100024394:\n if ((bVar61 & 1) == 0) {\n if ((int)pbVar31 != 0) goto LAB_1000243b0;\nLAB_100024724:\n objc_stub::extent(IVar18);\n local_180._8_8_ = pdVar42[1];\n local_180._0_8_ = *pdVar42;\n local_170 = (long *)pdVar42[2];\n CVar103.field0_0x0.field1_0x8 = dVar79;\n CVar103.field0_0x0.field0_0x0 = extraout_d0_22;\n CVar103.field1_0x10.field1_0x8 = dVar66;\n CVar103.field1_0x10.field0_0x0 = dVar94;\n IVar17 = applySkinSmoothingToImage_params_renderTime_faceObservations_selectedFacePoints_featureReferenceExtent_externalMaskImage_externalPreviewMaskImage_externalRawPreviewSmallMaskImage_\n (param_1,IVar18,&AStack_528,(AnonymousStructure0 *)local_180,local_880,0,\n CVar103,0,0,0);\n }\n else {\n if ((int)pbVar31 == 0) {\n uVar29 = objc_stub::length(0x1000ac5e0);\n if (bVar8 != 0) {\n uVar29 = objc_stub::length(0x1000ac600);\n }\n FUN_100021624(dVar86,dVar81,dVar82,dVar87);\n if ((uVar29 & 1) == 0) {\n uVar29 = objc_stub::length(0x1000ac620);\n }\n FUN_100021624(CVar102.field0_0x0.field0_0x0,CVar102.field0_0x0.field1_0x8,\n CVar102.field1_0x10.field0_0x0,CVar102.field1_0x10.field1_0x8);\n if ((uVar29 & 1) == 0) {\n uVar29 = objc_stub::length(0x1000ac640);\n }\n dVar79 = dVar81;\n dVar94 = dVar82;\n dVar66 = dVar87;\n FUN_100021624(dVar86);\n if (((int)uVar29 != 0) &&\n (dVar79 = CVar102.field0_0x0.field1_0x8, dVar94 = CVar102.field1_0x10.field0_0x0,\n dVar66 = CVar102.field1_0x10.field1_0x8, FUN_100021624(CVar102.field0_0x0.field0_0x0),\n (int)uVar29 != 0)) {\n dVar79 = CVar102.field0_0x0.field1_0x8;\n dVar94 = CVar102.field1_0x10.field0_0x0;\n dVar66 = CVar102.field1_0x10.field1_0x8;\n _CGRectInset(CVar102.field0_0x0.field0_0x0);\n _CGRectContainsRect();\n if ((uVar29 & 1) == 0) {\n objc_stub::length(0x1000ac660);\n dVar99 = CVar102.field0_0x0.field0_0x0;\n dVar79 = CVar102.field0_0x0.field1_0x8;\n dVar98 = CVar102.field1_0x10.field0_0x0;\n dVar69 = CVar102.field1_0x10.field1_0x8;\n _CGRectInset(CVar102.field0_0x0.field0_0x0,CVar102.field0_0x0.field1_0x8,\n CVar102.field1_0x10.field0_0x0,CVar102.field1_0x10.field1_0x8,\n 0xc010000000000000,0xc010000000000000);\n dVar94 = dVar99;\n _CGRectGetMinX();\n dVar66 = dVar86;\n _CGRectGetMinX(dVar86,dVar81,dVar82,dVar87);\n if (dVar66 < dVar94) {\n objc_stub::length(0x1000ac680);\n }\n dVar94 = dVar99;\n _CGRectGetMaxX(dVar99,dVar79,dVar98,dVar69);\n dVar66 = dVar86;\n _CGRectGetMaxX(dVar86,dVar81,dVar82,dVar87);\n if (dVar94 < dVar66) {\n objc_stub::length(0x1000ac6a0);\n }\n dVar94 = dVar99;\n _CGRectGetMinY(dVar99,dVar79,dVar98,dVar69);\n dVar66 = dVar86;\n _CGRectGetMinY(dVar86,dVar81,dVar82,dVar87);\n if (dVar66 < dVar94) {\n objc_stub::length(0x1000ac6c0);\n }\n _CGRectGetMaxY(dVar99,dVar79,dVar98,dVar69);\n dVar98 = dVar86;\n dVar79 = dVar81;\n dVar94 = dVar82;\n dVar66 = dVar87;\n _CGRectGetMaxY();\n if (dVar99 < dVar98) {\n objc_stub::length(0x1000ac6e0);\n }\n }\n }\n goto LAB_100024724;\n }\n objc_stub::length(0x1000ac5c0);\nLAB_1000243b0:\n local_100 = 0.0;\n local_660 = 0.0;\n local_180._8_8_ = pdVar42[1];\n local_180._0_8_ = *pdVar42;\n local_170 = (long *)pdVar42[2];\n bVar11 = mss_resolveFrameAnalysisSkinMaskForInputImage_params_renderTime_maskImageOut_previewMaskImageOut_rawPreviewSmallMaskImageOut_\n (param_1,IVar18,&AStack_528,(AnonymousStructure0 *)local_180,\n (ID *)&local_100,(ID *)&local_660,(ID *)0x0);\n IVar17 = IVar18;\n FUN_10002afa8(dVar86,dVar81,dVar82,dVar87);\n if (local_100 == 0.0) {\n dVar99 = 0.0;\n }\n else {\n dVar99 = local_100;\n FUN_10002afa8(dVar86,dVar81,dVar82,dVar87);\n }\n dVar94 = dVar99;\n if (local_660 != 0.0) {\n dVar94 = local_660;\n FUN_10002afa8(dVar86,dVar81,dVar82,dVar87);\n }\n bVar3 = 0;\n if (IVar17 != 0) {\n bVar3 = bVar11;\n }\n if ((bVar3 != 1) || (dVar99 == 0.0)) {\n objc_stub::length(0x1000ac720);\n _NSStringFromRect(CVar102.field0_0x0.field0_0x0,CVar102.field0_0x0.field1_0x8,\n CVar102.field1_0x10.field0_0x0,CVar102.field1_0x10.field1_0x8);\n dVar79 = dVar81;\n dVar94 = dVar82;\n dVar66 = dVar87;\n _NSStringFromRect(dVar86);\n goto LAB_100024724;\n }\n local_180._8_8_ = pdVar42[1];\n local_180._0_8_ = *pdVar42;\n local_170 = (long *)pdVar42[2];\n IVar17 = applySkinSmoothingToImage_params_renderTime_faceObservations_selectedFacePoints_featureReferenceExtent_externalMaskImage_externalPreviewMaskImage_externalRawPreviewSmallMaskImage_\n (param_1,IVar17,&AStack_528,(AnonymousStructure0 *)local_180,local_880,0,\n CVar102,(ID)dVar99,(ID)dVar94,0);\n objc_stub::length(0x1000ac700);\n _NSStringFromRect(CVar102.field0_0x0.field0_0x0,CVar102.field0_0x0.field1_0x8,\n CVar102.field1_0x10.field0_0x0,CVar102.field1_0x10.field1_0x8);\n dVar79 = dVar81;\n dVar94 = dVar82;\n dVar66 = dVar87;\n _NSStringFromRect(dVar86);\n objc_stub::extent((ID)dVar99);\n _NSStringFromRect();\n if (IVar17 == 0) goto LAB_100024724;\n }\n local_880 = IVar18;\n if (IVar17 != 0) {\n local_880 = IVar17;\n }\n if (uVar46 == 0) {\nLAB_1000247ac:\n IVar17 = local_880;\n FUN_10002b064();\n if (IVar17 != 0) {\n local_880 = IVar17;\n }\n }\n else {\n if (DAT_1000bdf50 != -1) {\n FUN_100079670();\n }\n if ((DAT_1000bd200 & 1) == 0) goto LAB_1000247ac;\n IVar17 = objc_stub::length(0x1000ac740);\n }\n _CGRectIsNull(local_7b8,local_7c0,local_7c8,local_7d0);\n if (((((IVar17 & 1) != 0) ||\n (_CGRectIsEmpty(local_7b8,local_7c0,local_7c8,local_7d0), (IVar17 & 1) != 0)) ||\n (dVar94 = local_7b8, _CGRectGetWidth(local_7b8,local_7c0,local_7c8,local_7d0),\n dVar94 <= 2.220446049250313e-16)) ||\n (dVar94 = local_7b8, _CGRectGetHeight(local_7b8,local_7c0,local_7c8,local_7d0),\n dVar94 <= 2.220446049250313e-16)) {\n local_7b8 = local_560.field0_0x0.field0_0x0;\n local_7c0 = local_560.field0_0x0.field1_0x8;\n local_7c8 = local_560.field1_0x10.field0_0x0;\n local_7d0 = local_560.field1_0x10.field1_0x8;\n }\n if (uVar46 == 0) {\n uVar46 = 0;\n local_8e0 = 0;\n local_8f8 = 0.0;\n }\n else {\n IVar19 = objc_stub::count(local_768);\n IVar20 = objc_stub::count(local_7b0);\n IVar17 = local_7b0;\n if (IVar20 < 0x4d) {\n IVar17 = objc_stub::firstObject(local_768);\n }\n if (IVar19 < 2) {\n IVar20 = objc_stub::count(IVar17);\n local_8e0 = 0;\n local_8f8 = 0.0;\n if ((0x4c < IVar20) && (2.220446049250313e-16 < local_538)) goto LAB_100024908;\n }\n else if (2.220446049250313e-16 < local_538) {\nLAB_100024908:\n local_8f8 = local_538;\n local_8e0 = IVar17;\n }\n else {\n local_8e0 = 0;\n local_8f8 = 0.0;\n }\n if (DAT_1000bdf50 != -1) {\n FUN_100079670();\n }\n uVar46 = (uint)DAT_1000bd200;\n if (((DAT_1000bd200 & 1) == 0) && (2.220446049250313e-16 < local_538)) {\n IVar20 = local_880;\n if (IVar19 < 2) {\n IVar19 = objc_stub::count(IVar17);\n if (IVar19 < 0x4d) {\n IVar20 = 0;\n }\n else {\n IVar19 = IVar17;\n local_180._0_8_ = dVar92;\n local_180._8_8_ = dVar73;\n local_170 = plVar95;\n dStack_168 = dVar74;\n local_160 = dVar96;\n dStack_158 = dVar97;\n FUN_10002b144(CVar100.field0_0x0.field0_0x0,dVar63,dVar64,dVar65,dVar75,dVar93,dVar77,\n dVar76,IVar17,local_180,bVar8);\n IVar24 = objc_stub::count(IVar19);\n dVar94 = local_538;\n if (IVar24 < 0x4d) {\n IVar19 = IVar17;\n }\n IVar17 = objc_stub::deviceRegistryID(param_3);\n FUN_10002b8a4(dVar94,local_880,&AStack_528,IVar19,IVar21,IVar17);\n if ((IVar20 == local_880) && (2.220446049250313e-16 < (double)AStack_528._104_8_)) {\n IVar20 = local_880;\n FUN_10002c1f8(AStack_528._104_8_,local_538,local_880,IVar19);\n }\n }\n }\n else {\n IVar17 = objc_stub::count(local_768);\n IVar17 = NSMutableArray::arrayWithCapacity_((ID)&_OBJC_CLASS___NSMutableArray,IVar17);\n uStack_5b8 = 0;\n local_5c0 = 0;\n uStack_5c8 = 0;\n local_5d0 = 0;\n uStack_5d8 = 0;\n local_5e0 = (long *)0x0;\n lStack_5e8 = 0;\n local_5f0 = 0;\n IVar19 = objc_stub::countByEnumeratingWithState_objects_count_\n (local_768,&local_5f0,auStack_2b0,0x10);\n if (IVar19 != 0) {\n lVar60 = *local_5e0;\n do {\n IVar24 = 0;\n do {\n if (*local_5e0 != lVar60) {\n _objc_enumerationMutation(local_768);\n }\n IVar25 = *(ID *)(lStack_5e8 + IVar24 * 8);\n local_180._0_8_ = dVar92;\n local_180._8_8_ = dVar73;\n local_170 = plVar95;\n dStack_168 = dVar74;\n local_160 = dVar96;\n dStack_158 = dVar97;\n FUN_10002b144(CVar100.field0_0x0.field0_0x0,dVar63,dVar64,dVar65,dVar75,dVar93,\n dVar77,dVar76,IVar25,local_180,bVar8);\n IVar26 = objc_stub::count(IVar25);\n if (0x4c < IVar26) {\n NSMutableArray::addObject_(IVar17,IVar25);\n }\n IVar24 = IVar24 + 1;\n } while (IVar19 != IVar24);\n IVar19 = objc_stub::countByEnumeratingWithState_objects_count_\n (local_768,&local_5f0,auStack_2b0,0x10);\n } while (IVar19 != 0);\n }\n IVar24 = NSMutableArray::count(IVar17);\n dVar94 = local_538;\n IVar19 = local_768;\n if (IVar24 != 0) {\n IVar19 = IVar17;\n }\n IVar17 = objc_stub::deviceRegistryID(param_3);\n FUN_10002b4fc(dVar94,local_880,&AStack_528,IVar19,IVar21,IVar17);\n if ((IVar20 == local_880) && (2.220446049250313e-16 < (double)AStack_528._104_8_)) {\n IVar20 = local_880;\n FUN_10002b738(AStack_528._104_8_,local_538,local_880,IVar19);\n }\n }\n if (IVar20 != 0) {\n local_880 = IVar20;\n }\n }\n pcVar30 = &cf_face_thin_defer_metal;\n if (uVar46 == 0) {\n pcVar30 = &cf_face_thin_ci;\n }\n IVar17 = objc_stub::length((ID)pcVar30);\n }\n _CGRectIsNull(local_808,local_820,local_830,local_838);\n if ((((IVar17 & 1) != 0) ||\n (_CGRectIsEmpty(local_808,local_820,local_830,local_838), (IVar17 & 1) != 0)) ||\n (dVar94 = local_808, _CGRectGetWidth(local_808,local_820,local_830,local_838),\n dVar94 <= 2.220446049250313e-16)) {\n bVar10 = false;\n }\n else {\n dVar94 = local_808;\n _CGRectGetHeight(local_808,local_820,local_830,local_838);\n bVar10 = 2.220446049250313e-16 < dVar94;\n }\n dVar94 = local_790;\n dVar66 = local_798;\n dVar79 = local_7a0;\n dVar99 = local_7a8;\n if ((uVar44 == 0) &&\n (dVar94 = local_808, dVar66 = local_820, dVar79 = local_830, dVar99 = local_838, !bVar10))\n {\n dVar94 = local_790;\n dVar66 = local_798;\n dVar79 = local_7a0;\n dVar99 = local_7a8;\n }\n uVar45 = SUB84(dVar76,0);\n if (local_894 == 0) {\n local_180._8_8_ = pdVar42[1];\n local_180._0_8_ = *pdVar42;\n local_170 = (long *)pdVar42[2];\n FUN_10002d0e4(*(undefined8 *)(param_1 + 8),local_180);\n puVar58 = (undefined *)0x0;\n IVar16 = 0;\n local_890 = (undefined *)0x0;\n }\n else {\n IVar17 = objc_stub::count(IVar16);\n puVar32 = (undefined *)\n NSMutableArray::arrayWithCapacity_((ID)&_OBJC_CLASS___NSMutableArray,IVar17);\n dStack_d8 = 0.0;\n local_e0 = 0.0;\n uStack_c8 = 0;\n uStack_d0 = 0;\n dStack_f8 = 0.0;\n local_100 = 0.0;\n dStack_e8 = 0.0;\n local_f0 = (long *)0x0;\n IVar17 = objc_stub::countByEnumeratingWithState_objects_count_\n (IVar16,&local_100,local_180,0x10);\n if (IVar17 != 0) {\n lVar60 = *local_f0;\n do {\n IVar19 = 0;\n do {\n if (*local_f0 != lVar60) {\n _objc_enumerationMutation(IVar16);\n }\n FUN_100029d20(*(undefined8 *)((long)dStack_f8 + IVar19 * 8));\n FUN_10002ced0(puVar32,0x18);\n IVar19 = IVar19 + 1;\n } while (IVar17 != IVar19);\n IVar17 = objc_stub::countByEnumeratingWithState_objects_count_\n (IVar16,&local_100,local_180,0x10);\n } while (IVar17 != 0);\n }\n IVar16 = objc_stub::count((ID)puVar32);\n puVar58 = (undefined *)0x0;\n if (IVar16 != 0) {\n puVar58 = puVar32;\n }\n puVar32 = puVar58;\n local_180._0_8_ = dVar92;\n local_180._8_8_ = dVar73;\n local_170 = plVar95;\n dStack_168 = dVar74;\n local_160 = dVar96;\n dStack_158 = dVar97;\n FUN_10002c7ec(CVar100.field0_0x0.field0_0x0,dVar63,dVar64,dVar65,dVar75,dVar93,dVar77,dVar76\n ,puVar58,local_180,bVar8);\n if (puVar32 != (undefined *)0x0) {\n puVar58 = puVar32;\n }\n puVar32 = PTR____NSArray0__struct_1000a8110;\n if (puVar58 != (undefined *)0x0) {\n puVar32 = puVar58;\n }\n puVar33 = (undefined *)\n NSMutableArray::arrayWithArray_((ID)&_OBJC_CLASS___NSMutableArray,puVar32);\n puVar32 = puVar33;\n if (bVar10) {\n puVar23 = local_180;\n dVar98 = local_808;\n dVar91 = local_820;\n dVar90 = local_830;\n dVar78 = local_838;\n local_180._0_8_ = dVar92;\n local_180._8_8_ = dVar73;\n local_170 = plVar95;\n dStack_168 = dVar74;\n local_160 = dVar96;\n dStack_158 = dVar97;\n FUN_10002cb20(local_808,local_820,local_830,local_838,CVar100.field0_0x0.field0_0x0,dVar63\n ,dVar64,dVar65,puVar23,bVar8);\n _CGRectIsNull();\n dVar69 = local_808;\n dVar55 = local_820;\n dVar85 = local_830;\n dVar80 = local_838;\n if (((((ulong)puVar23 & 1) == 0) &&\n (_CGRectIsEmpty(dVar98,dVar91,dVar90,dVar78), ((ulong)puVar23 & 1) == 0)) &&\n ((dVar68 = dVar98, _CGRectGetWidth(dVar98,dVar91,dVar90,dVar78),\n 2.220446049250313e-16 < dVar68 &&\n (dVar68 = dVar98, _CGRectGetHeight(dVar98,dVar91,dVar90,dVar78),\n 2.220446049250313e-16 < dVar68)))) {\n dVar69 = dVar98;\n dVar55 = dVar91;\n dVar85 = dVar90;\n dVar80 = dVar78;\n }\n FUN_10002ced0(dVar69,dVar55,dVar85,dVar80,puVar33,0x18);\n }\n _CGRectIsNull(dVar94,dVar66,dVar79,dVar99);\n if ((((((ulong)puVar32 & 1) == 0) &&\n (_CGRectIsEmpty(dVar94,dVar66,dVar79,dVar99), ((ulong)puVar32 & 1) == 0)) &&\n (dVar98 = dVar94, _CGRectGetWidth(dVar94,dVar66,dVar79,dVar99),\n 2.220446049250313e-16 < dVar98)) &&\n (dVar98 = dVar94, _CGRectGetHeight(dVar94,dVar66,dVar79,dVar99),\n 2.220446049250313e-16 < dVar98)) {\n puVar23 = local_180;\n dVar98 = dVar94;\n dVar91 = dVar66;\n dVar90 = dVar79;\n dVar78 = dVar99;\n local_180._0_8_ = dVar92;\n local_180._8_8_ = dVar73;\n local_170 = plVar95;\n dStack_168 = dVar74;\n local_160 = dVar96;\n dStack_158 = dVar97;\n FUN_10002cb20(dVar94,dVar66,dVar79,dVar99,CVar100.field0_0x0.field0_0x0,dVar63,dVar64,\n dVar65,puVar23,bVar8);\n _CGRectIsNull();\n dVar69 = dVar94;\n dVar55 = dVar66;\n dVar85 = dVar79;\n dVar80 = dVar99;\n if (((((ulong)puVar23 & 1) == 0) &&\n (_CGRectIsEmpty(dVar98,dVar91,dVar90,dVar78), ((ulong)puVar23 & 1) == 0)) &&\n ((dVar68 = dVar98, _CGRectGetWidth(dVar98,dVar91,dVar90,dVar78),\n 2.220446049250313e-16 < dVar68 &&\n (dVar68 = dVar98, _CGRectGetHeight(dVar98,dVar91,dVar90,dVar78),\n 2.220446049250313e-16 < dVar68)))) {\n dVar69 = dVar98;\n dVar55 = dVar91;\n dVar85 = dVar90;\n dVar80 = dVar78;\n }\n FUN_10002ced0(dVar69,dVar55,dVar85,dVar80,puVar33,0x18);\n }\n uVar29 = objc_stub::count((ID)puVar33);\n local_890 = puVar58;\n if (uVar29 != 0) {\n local_890 = puVar33;\n }\n if (((uVar44 != 0) || (_CGRectIsNull(dVar94,dVar66,dVar79,dVar99), (uVar29 & 1) != 0)) ||\n ((_CGRectIsEmpty(dVar94,dVar66,dVar79,dVar99), (uVar29 & 1) != 0 ||\n ((dVar98 = dVar94, _CGRectGetWidth(dVar94,dVar66,dVar79,dVar99),\n dVar98 <= 2.220446049250313e-16 ||\n (dVar98 = dVar94, _CGRectGetHeight(dVar94,dVar66,dVar79,dVar99),\n dVar98 <= 2.220446049250313e-16)))))) {\nLAB_10002527c:\n IVar16 = 0;\n }\n else {\n dVar98 = dVar94;\n dVar69 = dVar66;\n dVar91 = dVar79;\n dVar55 = dVar99;\n FUN_10002c6b8(dVar94,dVar66,dVar79,dVar99,AStack_528.field32_0xf0);\n _CGRectIsNull();\n if (((uVar29 & 1) != 0) ||\n (_CGRectIsEmpty(dVar98,dVar69,dVar91,dVar55), (uVar29 & 1) != 0)) goto LAB_10002527c;\n _CGRectStandardize(dVar98,dVar69,dVar91,dVar55);\n _CGRectIntersection();\n _CGRectIsNull();\n if (((uVar29 & 1) != 0) ||\n (_CGRectIsEmpty(dVar98,dVar69,dVar91,dVar55), (uVar29 & 1) != 0)) goto LAB_10002527c;\n local_180._0_8_ =\n NSValue::valueWithRect_((ID)&_OBJC_CLASS___NSValue,dVar98,dVar69,dVar91,dVar55);\n IVar16 = NSArray::arrayWithObjects_count_((ID)&_OBJC_CLASS___NSArray,local_180,1);\n }\n local_180._8_8_ = pdVar42[1];\n local_180._0_8_ = *pdVar42;\n local_170 = (long *)pdVar42[2];\n FUN_10002d0e4(*(undefined8 *)(param_1 + 8),local_180);\n }\n puVar23 = local_180;\n dVar98 = dVar94;\n dVar69 = dVar66;\n dVar91 = dVar79;\n dVar55 = dVar99;\n local_180._0_8_ = dVar92;\n local_180._8_8_ = dVar73;\n local_170 = plVar95;\n dStack_168 = dVar74;\n local_160 = dVar96;\n dStack_158 = dVar97;\n FUN_10002cb20(puVar23,bVar8);\n _CGRectIsNull();\n if ((((((ulong)puVar23 & 1) == 0) &&\n (_CGRectIsEmpty(dVar98,dVar69,dVar91,dVar55), ((ulong)puVar23 & 1) == 0)) &&\n (dVar90 = dVar98, _CGRectGetWidth(dVar98,dVar69,dVar91,dVar55),\n 2.220446049250313e-16 < dVar90)) &&\n (dVar90 = dVar98, _CGRectGetHeight(dVar98,dVar69,dVar91,dVar55),\n 2.220446049250313e-16 < dVar90)) {\n dVar94 = dVar98;\n dVar66 = dVar69;\n dVar79 = dVar91;\n dVar99 = dVar55;\n }\n puVar23 = local_180;\n dVar69 = local_790;\n dVar91 = local_798;\n dVar55 = local_7a0;\n dVar90 = local_7a8;\n uVar13 = uVar45;\n local_180._0_8_ = dVar92;\n local_180._8_8_ = dVar73;\n local_170 = plVar95;\n dStack_168 = dVar74;\n local_160 = dVar96;\n dStack_158 = dVar97;\n dVar98 = dVar93;\n FUN_10002cb20(puVar23,bVar8);\n _CGRectIsNull();\n if (((((ulong)puVar23 & 1) != 0) ||\n (_CGRectIsEmpty(dVar69,dVar91,dVar55,dVar90), ((ulong)puVar23 & 1) != 0)) ||\n ((dVar85 = dVar69, _CGRectGetWidth(dVar69,dVar91,dVar55,dVar90),\n dVar85 <= 2.220446049250313e-16 ||\n (dVar85 = dVar69, _CGRectGetHeight(dVar69,dVar91,dVar55,dVar90),\n dVar85 <= 2.220446049250313e-16)))) {\n dVar69 = local_790;\n dVar91 = local_798;\n dVar55 = local_7a0;\n dVar90 = local_7a8;\n }\n local_8a0 = 0;\n local_180._0_8_ = dVar92;\n local_180._8_8_ = dVar73;\n local_170 = plVar95;\n dStack_168 = dVar74;\n local_160 = dVar96;\n dStack_158 = dVar97;\n FUN_10002c7ec(CVar100.field0_0x0.field0_0x0,dVar63,dVar64,dVar65,dVar75,dVar93,dVar77,dVar76,0\n ,local_180,bVar8);\n local_180._0_8_ = dVar92;\n local_180._8_8_ = dVar73;\n local_170 = plVar95;\n dStack_168 = dVar74;\n local_160 = dVar96;\n dStack_158 = dVar97;\n FUN_10002c7ec(CVar100.field0_0x0.field0_0x0,dVar63,dVar64,dVar65,dVar75,dVar93,dVar77,dVar76,\n IVar16,local_180,bVar8);\n IVar16 = objc_stub::count((ID)local_890);\n if ((IVar16 == 0) && (IVar16 = objc_stub::count(local_8a0), IVar16 == 0)) {\n local_8d8 = 0;\n IVar16 = 0;\n }\n else {\n IVar16 = objc_stub::count((ID)local_890);\n IVar17 = objc_stub::count(local_8a0);\n local_8d8 = NSMutableArray::arrayWithCapacity_\n ((ID)&_OBJC_CLASS___NSMutableArray,IVar17 + IVar16);\n IVar16 = objc_stub::count((ID)local_890);\n if (IVar16 != 0) {\n NSMutableArray::addObjectsFromArray_(local_8d8,local_890);\n }\n IVar17 = objc_stub::count(local_8a0);\n IVar16 = 0;\n if (IVar17 != 0) {\n IVar16 = NSMutableArray::addObjectsFromArray_(local_8d8,local_8a0);\n }\n }\n if ((local_894 & 1) == 0) {\n IVar16 = *(ID *)(param_1 + 8);\n local_180._8_8_ = pdVar42[1];\n local_180._0_8_ = *pdVar42;\n local_170 = (long *)pdVar42[2];\n FUN_10002d0e4(IVar16,local_180);\n local_8d8 = 0;\n local_8a0 = 0;\n puVar58 = (undefined *)0x0;\n local_890 = (undefined *)0x0;\n dVar69 = local_790;\n dVar91 = local_798;\n dVar55 = local_7a0;\n dVar90 = local_7a8;\n dVar94 = local_790;\n dVar66 = local_798;\n dVar79 = local_7a0;\n dVar99 = local_7a8;\n }\n local_100 = *pdVar42;\n uVar6 = *(uint *)((long)pdVar42 + 0xc);\n dStack_f8 = (double)CONCAT44(dStack_f8._4_4_,*(undefined4 *)(pdVar42 + 1));\n plVar49 = (long *)pdVar42[2];\n if (*(long *)(param_1 + 8) == 0) {\n IVar17 = 0;\n }\n else {\n IVar16 = NSValue::valueWithNonretainedObject_((ID)&_OBJC_CLASS___NSValue);\n IVar17 = IVar16;\n }\n FUN_100050f34();\n IVar19 = IVar16;\n FUN_100050f34();\n IVar20 = IVar19;\n FUN_100050f34();\n IVar24 = IVar20;\n FUN_100050f34();\n dVar85 = local_790;\n dVar80 = local_798;\n dVar83 = local_7a0;\n dVar88 = local_7a8;\n FUN_10001bef0();\n dVar78 = local_790;\n dVar68 = local_798;\n dVar84 = local_7a0;\n dVar89 = local_7a8;\n FUN_10001bef0();\n IVar25 = objc_stub::count(IVar16);\n if ((((IVar25 == 0) && (IVar25 = objc_stub::count(IVar19), IVar25 == 0)) &&\n (IVar25 = objc_stub::count(IVar20), IVar25 == 0)) &&\n ((uVar29 = objc_stub::count(IVar24), uVar29 == 0 &&\n (FUN_10001a870(dVar85,dVar80,dVar83,dVar88), (uVar29 & 1) == 0)))) {\n FUN_10001a870(dVar78,dVar68,dVar84,dVar89);\n }\n else {\n uVar29 = 1;\n }\n if (DAT_1000bdfc8 != -1) {\n FUN_100079694();\n }\n IVar25 = DAT_1000bdfc0;\n objc_stub::lock(DAT_1000bdfc0);\n if (DAT_1000bdfd8 != -1) {\n FUN_1000796b8();\n }\n IVar26 = DAT_1000bdfd0;\n if ((uVar29 & 1) == 0) {\n if (IVar17 != 0) {\n objc_stub::removeObjectForKey_(DAT_1000bdfd0,IVar17);\n }\n DAT_1000bdfb0 = 0;\n DAT_1000bdfb8 = 0;\n }\n else {\n IVar56 = NSMutableDictionary::dictionary((ID)&_OBJC_CLASS___NSMutableDictionary);\n IVar34 = objc_stub::count(IVar16);\n if (IVar34 != 0) {\n NSMutableDictionary::setObject_forKeyedSubscript_(IVar56,IVar16,&cf_faceBoxes);\n }\n IVar35 = objc_stub::count(IVar19);\n IVar34 = 0;\n if (IVar35 != 0) {\n IVar34 = NSMutableDictionary::setObject_forKeyedSubscript_\n (IVar56,IVar19,&cf_faceSelectionBoxes);\n }\n _CGRectIsNull(dVar85,dVar80,dVar83,dVar88);\n if ((((IVar34 & 1) == 0) && (_CGRectIsEmpty(dVar85,dVar80,dVar83,dVar88), (IVar34 & 1) == 0)\n ) && ((dVar67 = dVar85, _CGRectGetWidth(dVar85,dVar80,dVar83,dVar88),\n 2.220446049250313e-16 < dVar67 &&\n (dVar67 = dVar85, _CGRectGetHeight(dVar85,dVar80,dVar83,dVar88),\n 2.220446049250313e-16 < dVar67)))) {\n IVar34 = NSValue::valueWithRect_((ID)&_OBJC_CLASS___NSValue,dVar85,dVar80,dVar83,dVar88);\n NSMutableDictionary::setObject_forKeyedSubscript_(IVar56,IVar34,&cf_faceSelectedBox);\n }\n IVar35 = objc_stub::count(IVar20);\n IVar34 = 0;\n if (IVar35 != 0) {\n IVar34 = NSMutableDictionary::setObject_forKeyedSubscript_(IVar56,IVar20,&cf_trackBoxes);\n }\n _CGRectIsNull(dVar78,dVar68,dVar84,dVar89);\n if (((((IVar34 & 1) == 0) &&\n (_CGRectIsEmpty(dVar78,dVar68,dVar84,dVar89), (IVar34 & 1) == 0)) &&\n (dVar85 = dVar78, _CGRectGetWidth(dVar78,dVar68,dVar84,dVar89),\n 2.220446049250313e-16 < dVar85)) &&\n (dVar85 = dVar78, _CGRectGetHeight(dVar78,dVar68,dVar84,dVar89),\n 2.220446049250313e-16 < dVar85)) {\n IVar34 = NSValue::valueWithRect_((ID)&_OBJC_CLASS___NSValue,dVar78,dVar68,dVar84,dVar89);\n NSMutableDictionary::setObject_forKeyedSubscript_(IVar56,IVar34,&cf_trackSelectedBox);\n }\n IVar34 = objc_stub::count(IVar24);\n if (IVar34 != 0) {\n NSMutableDictionary::setObject_forKeyedSubscript_(IVar56,IVar24,&cf_guardBoxes);\n }\n if ((uVar6 & 0x1d) == 1) {\n local_180._0_8_ = local_100;\n local_180._8_8_ = CONCAT44(uVar6,SUB84(dStack_f8,0));\n local_170 = plVar49;\n _CMTimeGetSeconds(local_180);\n }\n IVar34 = NSNumber::numberWithDouble_((ID)&_OBJC_CLASS___NSNumber);\n NSMutableDictionary::setObject_forKeyedSubscript_(IVar56,IVar34,&cf_renderTime);\n IVar56 = NSMutableDictionary::copy(IVar56);\n if (IVar17 == 0) {\n IVar17 = 0;\n }\n else {\n objc_stub::setObject_forKey_(IVar26,IVar56,IVar17);\n }\n DAT_1000bdfb0 = IVar56;\n DAT_1000bdfb8 = IVar17;\n _CFAbsoluteTimeGetCurrent();\n objc_stub::count(IVar16);\n objc_stub::count(IVar19);\n objc_stub::count(IVar20);\n objc_stub::count(IVar24);\n if ((uVar6 & 0x1d) == 1) {\n local_180._0_8_ = local_100;\n local_180._8_8_ = CONCAT44(uVar6,SUB84(dStack_f8,0));\n local_170 = plVar49;\n _CMTimeGetSeconds(local_180);\n }\n }\n objc_stub::unlock(IVar25);\n if (local_8cc == 0) {\n uVar6 = 0;\n }\n else {\n IVar16 = objc_stub::count(local_7b0);\n uVar6 = (uint)(0x4c < IVar16);\n }\n IVar16 = objc_stub::deviceRegistryID(param_3);\n FUN_10002d3cc();\n if (IVar16 != 0) {\n if ((IVar22 == 0) || (local_788 == 0)) {\n bVar10 = false;\n if (local_788 != 0) goto LAB_100025b5c;\nLAB_100025b74:\n local_780 = FxMTLDeviceCache::MTLPixelFormatForImageTile_\n ((ID)&objc::class_t::FxMTLDeviceCache,param_3);\n }\n else {\n IVar17 = objc_stub::width(local_788);\n if ((IVar17 != 0) && (IVar17 = objc_stub::height(local_788), IVar17 != 0)) {\n IVar17 = objc_stub::usage(local_788);\n if (((uint)IVar17 >> 2 & 1) != 0) {\n bVar10 = true;\n goto LAB_100025b5c;\n }\n objc_stub::usage(local_788);\n }\n bVar10 = false;\nLAB_100025b5c:\n IVar17 = objc_stub::pixelFormat(local_788);\n if (IVar17 == 0) goto LAB_100025b74;\n local_780 = objc_stub::pixelFormat(local_788);\n }\n IVar17 = local_780;\n if (puVar28 != (undefined8 *)0x0) {\n IVar17 = FxMTLDeviceCache::MTLPixelFormatForImageTile_\n ((ID)&objc::class_t::FxMTLDeviceCache,param_3);\n }\n IVar19 = local_780;\n if (!bVar10) {\n uVar59 = 0;\n if (2.220446049250313e-16 < local_8f8) {\n uVar59 = uVar46;\n }\n if (uVar59 == 1) {\n if (DAT_1000be018 != -1) {\n FUN_1000796dc();\n }\n if (((puVar28 == (undefined8 *)0x0) || (IVar22 == 0)) || ((DAT_1000bd201 & 1) == 0)) {\n local_788 = 0;\n }\n else {\n puVar36 = puVar28;\n _IOSurfaceGetWidth(puVar28);\n puVar37 = puVar28;\n _IOSurfaceGetHeight(puVar28);\n local_788 = IVar22;\n FUN_10002d514(IVar22,puVar28,IVar17,puVar36,puVar37);\n IVar19 = IVar17;\n if (local_788 == 0) goto LAB_100025c50;\n }\n }\n else {\nLAB_100025c50:\n local_788 = 0;\n IVar19 = local_780;\n }\n }\n local_780 = IVar19;\n uVar1 = 0x73;\n if (local_780 != 0) {\n uVar1 = local_780;\n }\n objc_stub::count(local_768);\n IVar17 = objc_stub::count(local_768);\n if (IVar17 == 0) {\n IVar17 = objc_stub::count(local_8e0);\n uVar59 = (uint)(0x4c < IVar17);\n }\n else {\n uStack_5f8 = 0;\n local_600 = 0;\n uStack_608 = 0;\n local_610 = 0;\n uStack_618 = 0;\n local_620 = (long *)0x0;\n lStack_628 = 0;\n local_630 = 0;\n IVar17 = objc_stub::countByEnumeratingWithState_objects_count_\n (local_768,&local_630,auStack_330,0x10);\n if (IVar17 == 0) {\n uVar59 = 0;\n }\n else {\n lVar60 = *local_620;\n do {\n IVar19 = 0;\n do {\n if (*local_620 != lVar60) {\n _objc_enumerationMutation(local_768);\n }\n IVar20 = objc_stub::count(*(ID *)(lStack_628 + IVar19 * 8));\n if (0x4c < IVar20) {\n uVar59 = 1;\n goto LAB_100025d44;\n }\n IVar19 = IVar19 + 1;\n } while (IVar17 != IVar19);\n IVar17 = objc_stub::countByEnumeratingWithState_objects_count_\n (local_768,&local_630,auStack_330,0x10);\n uVar59 = 0;\n } while (IVar17 != 0);\n }\n }\nLAB_100025d44:\n uVar4 = 0;\n if (2.220446049250313e-16 < local_8f8) {\n uVar4 = uVar46;\n }\n if (uVar44 == 0) {\n objc_stub::count(0);\n }\n objc_stub::count(local_7b0);\n objc_stub::count(local_768);\n IVar19 = objc_stub::count(local_768);\n IVar17 = local_8e0;\n if (IVar19 != 0) {\n IVar17 = objc_stub::firstObject(local_768);\n }\n objc_stub::count(IVar17);\n FUN_10001b584(local_808,local_820,local_830,local_838);\n FUN_10001b584(local_790,local_798,local_7a0,local_7a8);\n IVar17 = NSUserDefaults::standardUserDefaults((ID)&_OBJC_CLASS___NSUserDefaults);\n IVar19 = NSUserDefaults::objectForKey_(IVar17,&cf_MSE18GlobalFaceBoxPreviewEnabled);\n if (IVar19 == 0) {\n uVar46 = 0;\n }\n else {\n IVar17 = NSUserDefaults::boolForKey_(IVar17,&cf_MSE18GlobalFaceBoxPreviewEnabled);\n uVar46 = (uint)IVar17;\n }\n IVar17 = objc_stub::count((ID)puVar58);\n if ((IVar17 != 0) ||\n (IVar17 = objc_stub::count((ID)puVar58), puVar32 = local_890, IVar17 != 0)) {\n puVar32 = (undefined *)0x0;\n }\n if (*(long *)(param_1 + 8) == 0) {\n IVar17 = 0;\n }\n else {\n IVar17 = NSValue::valueWithNonretainedObject_((ID)&_OBJC_CLASS___NSValue);\n }\n if (DAT_1000bdfc8 != -1) {\n FUN_100079694();\n }\n IVar19 = DAT_1000bdfc0;\n objc_stub::lock(DAT_1000bdfc0);\n if (IVar17 == 0) {\n IVar17 = 0;\n }\n else {\n if (DAT_1000be028 != -1) {\n FUN_100079700();\n }\n IVar17 = objc_stub::objectForKeyedSubscript_(DAT_1000be020,IVar17);\n }\n objc_stub::unlock(IVar19);\n IVar20 = objc_stub::objectForKeyedSubscript_(IVar17,&cf_selectionDisplayPoint);\n puVar33 = &_OBJC_CLASS___NSValue;\n _objc_opt_class(&_OBJC_CLASS___NSValue);\n IVar19 = IVar20;\n _objc_opt_isKindOfClass(IVar20,puVar33);\n if ((IVar19 & 1) != 0) {\n objc_stub::pointValue(IVar20);\n }\n IVar20 = objc_stub::objectForKeyedSubscript_(IVar17,&cf_selectionSourcePoint);\n puVar33 = &_OBJC_CLASS___NSValue;\n _objc_opt_class(&_OBJC_CLASS___NSValue);\n IVar19 = IVar20;\n _objc_opt_isKindOfClass(IVar20,puVar33);\n if ((IVar19 & 1) != 0) {\n objc_stub::pointValue(IVar20);\n uVar13 = uVar45;\n local_180._0_8_ = dVar92;\n local_180._8_8_ = dVar73;\n local_170 = plVar95;\n dStack_168 = dVar74;\n local_160 = dVar96;\n dStack_158 = dVar97;\n dVar98 = dVar93;\n FUN_10002d97c(local_180,bVar8);\n }\n IVar19 = objc_stub::objectForKeyedSubscript_(IVar17,&cf_selectionMirrorPoint);\n puVar33 = &_OBJC_CLASS___NSValue;\n _objc_opt_class(&_OBJC_CLASS___NSValue);\n IVar17 = IVar19;\n _objc_opt_isKindOfClass(IVar19,puVar33);\n if ((IVar17 & 1) != 0) {\n objc_stub::pointValue(IVar19);\n local_180._0_8_ = dVar92;\n local_180._8_8_ = dVar73;\n local_170 = plVar95;\n dStack_168 = dVar74;\n local_160 = dVar96;\n dStack_158 = dVar97;\n dVar98 = dVar93;\n FUN_10002d97c(local_180,bVar8);\n uVar13 = uVar45;\n }\n local_988 = dVar99;\n IVar17 = local_8a0;\n dStack_970 = dVar94;\n local_978 = dVar66;\n dStack_980 = dVar79;\n local_9a8 = dVar90;\n dStack_990 = dVar69;\n local_998 = dVar91;\n dStack_9a0 = dVar55;\n if ((local_894 & uVar46) == 0) {\n IVar17 = 0;\n puVar58 = (undefined *)0x0;\n puVar32 = (undefined *)0x0;\n local_988 = local_7a8;\n dStack_970 = local_790;\n local_978 = local_798;\n dStack_980 = local_7a0;\n local_9a8 = local_7a8;\n dStack_990 = local_790;\n local_998 = local_798;\n dStack_9a0 = local_7a0;\n }\n objc_stub::count((ID)puVar32);\n objc_stub::count((ID)puVar58);\n objc_stub::count(IVar17);\n objc_stub::count(0);\n objc_stub::count((ID)puVar32);\n objc_stub::count((ID)puVar58);\n objc_stub::count(IVar17);\n objc_stub::count(0);\n objc_stub::count((ID)local_890);\n objc_stub::count(local_8a0);\n objc_stub::count(0);\n objc_stub::count(local_8d8);\n _NSStringFromRect(dVar94,dVar66,dVar79,dVar99);\n _NSStringFromRect(dVar69,dVar91,dVar55,dVar90);\n _NSStringFromRect(dStack_970,local_978,dStack_980,local_988);\n _NSStringFromRect(dStack_990,local_998,dStack_9a0,local_9a8);\n _NSStringFromRect(dStack_970,local_978,dStack_980,local_988);\n _NSStringFromRect(dStack_990,local_998,dStack_9a0,local_9a8);\n if (IVar22 == 0 || local_788 == 0) {\nLAB_1000268b0:\n uVar44 = 0;\n }\n else {\n IVar19 = objc_stub::width(local_788);\n IVar20 = objc_stub::height(local_788);\n uVar29 = objc_stub::width(local_788);\n IVar24 = objc_stub::height(local_788);\n FUN_10002dc00(dVar86,dVar81,dVar82,dVar87,uVar29,IVar24);\n uVar44 = (uint)uVar29;\n uVar46 = uVar44;\n if (bVar8 != 0) {\n iVar14 = (int)local_180;\n local_180._0_8_ = dVar92;\n local_180._8_8_ = dVar73;\n local_170 = plVar95;\n dStack_168 = dVar74;\n local_160 = dVar96;\n dStack_158 = dVar97;\n FUN_1000295e4();\n uVar46 = 0;\n if (iVar14 != 0) {\n local_100 = dVar92;\n dStack_f8 = dVar73;\n local_f0 = plVar95;\n dStack_e8 = dVar74;\n local_e0 = dVar96;\n dStack_d8 = dVar97;\n _CGAffineTransformInvert(local_180,&local_100);\n dStack_f8 = (double)local_180._8_8_;\n local_100 = (double)local_180._0_8_;\n dStack_e8 = dStack_168;\n local_f0 = local_170;\n dStack_d8 = dStack_158;\n local_e0 = local_160;\n uVar46 = (uint)&local_100;\n FUN_10002dc94(dVar86,dVar81,dVar82,dVar87);\n }\n }\n dVar94 = CVar100.field0_0x0.field0_0x0;\n dVar66 = dVar63;\n dVar79 = dVar64;\n dVar99 = dVar65;\n _CGRectIntersection();\n FUN_100021624(dVar94,dVar66,dVar79,dVar99);\n if (uVar46 == 0) {\nLAB_100026328:\n uVar45 = 0;\n }\n else {\n dVar69 = dVar94;\n _CGRectGetWidth(dVar94,dVar66,dVar79,dVar99);\n dVar91 = dVar86;\n _CGRectGetWidth(dVar86,dVar81,dVar82,dVar87);\n dVar55 = dVar86;\n _CGRectGetWidth(dVar86,dVar81,dVar82,dVar87);\n dVar55 = dVar55 * 0.01;\n if (dVar55 <= 2.0) {\n dVar55 = 2.0;\n }\n if (dVar55 < ABS(dVar69 - dVar91)) goto LAB_100026328;\n dVar69 = dVar94;\n _CGRectGetHeight(dVar94,dVar66,dVar79,dVar99);\n dVar91 = dVar86;\n _CGRectGetHeight(dVar86,dVar81,dVar82,dVar87);\n dVar55 = dVar86;\n _CGRectGetHeight(dVar86,dVar81,dVar82,dVar87);\n dVar55 = dVar55 * 0.01;\n if (dVar55 <= 2.0) {\n dVar55 = 2.0;\n }\n uVar45 = (uint)(ABS(dVar69 - dVar91) <= dVar55);\n }\n FUN_100021624(dVar94,dVar66,dVar79,dVar99);\n local_9d0 = NEON_fmov(0x3f800000,4);\n local_9c0 = 0;\n if ((uVar46 != 0) &&\n (FUN_100021624(CVar100.field0_0x0.field0_0x0,dVar63,dVar64,dVar65), uVar46 != 0)) {\n dVar69 = CVar100.field0_0x0.field0_0x0;\n _CGRectGetWidth(CVar100.field0_0x0.field0_0x0,dVar63,dVar64,dVar65);\n dVar91 = CVar100.field0_0x0.field0_0x0;\n _CGRectGetHeight(CVar100.field0_0x0.field0_0x0,dVar63,dVar64,dVar65);\n if ((2.220446049250313e-16 < dVar69) && (2.220446049250313e-16 < dVar91)) {\n dVar55 = dVar94;\n _CGRectGetMinX(dVar94,dVar66,dVar79,dVar99);\n dVar90 = CVar100.field0_0x0.field0_0x0;\n _CGRectGetMinX(CVar100.field0_0x0.field0_0x0,dVar63,dVar64,dVar65);\n dVar85 = dVar94;\n _CGRectGetMinY(dVar94,dVar66,dVar79,dVar99);\n dVar78 = CVar100.field0_0x0.field0_0x0;\n _CGRectGetMinY(CVar100.field0_0x0.field0_0x0,dVar63,dVar64,dVar65);\n dVar80 = dVar94;\n _CGRectGetWidth(dVar94,dVar66,dVar79,dVar99);\n dVar68 = dVar94;\n _CGRectGetHeight(dVar94,dVar66,dVar79,dVar99);\n dVar90 = (dVar55 - dVar90) / dVar69;\n dVar55 = (dVar85 - dVar78) / dVar91;\n dVar80 = dVar80 / dVar69;\n if ((((((ulong)ABS(dVar90) < 0x7ff0000000000000) &&\n ((ulong)ABS(dVar55) < 0x7ff0000000000000)) &&\n ((ulong)ABS(dVar80) < 0x7ff0000000000000)) &&\n ((dVar68 = dVar68 / dVar91, (ulong)ABS(dVar68) < 0x7ff0000000000000 &&\n (2.220446049250313e-16 < dVar80)))) && (2.220446049250313e-16 < dVar68)) {\n dVar69 = 2.0;\n if (dVar90 <= 2.0) {\n dVar69 = dVar90;\n }\n dVar91 = -1.0;\n if (-1.0 <= dVar90) {\n dVar91 = dVar69;\n }\n dVar69 = 2.0;\n if (dVar55 <= 2.0) {\n dVar69 = dVar55;\n }\n dVar90 = -1.0;\n if (-1.0 <= dVar55) {\n dVar90 = dVar69;\n }\n local_9c0 = CONCAT44((float)dVar90,(float)dVar91);\n dVar69 = 3.0;\n if (dVar80 <= 3.0) {\n dVar69 = dVar80;\n }\n dVar91 = 1e-06;\n if (1e-06 <= dVar80) {\n dVar91 = dVar69;\n }\n dVar69 = 3.0;\n if (dVar68 <= 3.0) {\n dVar69 = dVar68;\n }\n dVar55 = 1e-06;\n if (1e-06 <= dVar68) {\n dVar55 = dVar69;\n }\n local_9d0 = CONCAT44((float)dVar55,(float)dVar91);\n }\n }\n }\n IVar24 = objc_stub::width(local_788);\n IVar25 = objc_stub::height(local_788);\n uVar46 = 0;\n if (IVar24 != 0 && IVar25 != 0) {\n uVar46 = uVar44;\n }\n if (uVar46 == 1) {\n IVar26 = IVar25;\n FUN_100021624(dVar75,dVar93,dVar77,dVar76);\n iVar14 = (int)IVar26;\n if ((iVar14 == 0) || (FUN_100021624(dVar86,dVar81,dVar82,dVar87), iVar14 == 0))\n goto LAB_1000266cc;\n dVar69 = dVar75;\n _CGRectGetWidth(dVar75,dVar93,dVar77,dVar76);\n dVar91 = dVar75;\n _CGRectGetHeight(dVar75,dVar93,dVar77,dVar76);\n dVar55 = dVar86;\n _CGRectGetWidth(dVar86,dVar81,dVar82,dVar87);\n dVar90 = dVar86;\n _CGRectGetHeight(dVar86,dVar81,dVar82,dVar87);\n dVar85 = dVar86;\n _CGRectGetMinX(dVar86,dVar81,dVar82,dVar87);\n dVar78 = dVar75;\n _CGRectGetMinX(dVar75,dVar93,dVar77,dVar76);\n if (4.0 < ABS(dVar85 - dVar78)) goto LAB_1000266cc;\n dVar85 = dVar86;\n _CGRectGetMinY(dVar86,dVar81,dVar82,dVar87);\n dVar78 = dVar75;\n _CGRectGetMinY(dVar75,dVar93,dVar77,dVar76);\n if (4.0 < ABS(dVar85 - dVar78)) goto LAB_1000266cc;\n dVar85 = dVar69 * 0.004;\n if (dVar85 <= 8.0) {\n dVar85 = 8.0;\n }\n if (dVar85 < ABS(dVar55 - dVar69)) goto LAB_1000266cc;\n dVar69 = dVar91 * 0.004;\n if (dVar69 <= 8.0) {\n dVar69 = 8.0;\n }\n if (dVar69 < ABS(dVar90 - dVar91)) goto LAB_1000266cc;\n if (ABS((double)IVar24 - dVar55) <= 1.0) {\n bVar10 = ABS((double)IVar25 - dVar90) <= 1.0;\n }\n else {\n bVar10 = false;\n }\n }\n else {\nLAB_1000266cc:\n bVar10 = false;\n }\n dVar91 = (double)IVar19;\n dVar69 = (double)IVar20;\n local_9b0 = local_880;\n if (uVar44 != 0) {\n FUN_10002decc(dVar86,dVar81,dVar82,dVar87,0,0,dVar91,dVar69,local_880,1);\n }\n uVar46 = uVar4 & uVar59;\n dVar55 = dVar69;\n if (uVar46 == 0) {\n FUN_10002ed00(0,0,dVar91);\n pcVar30 = &cf_output_metal_make_opaque_bounds;\n }\n else {\n IVar19 = objc_stub::imageByCroppingToRect_(local_9b0,0,0,dVar91);\n if (IVar19 != 0) {\n local_9b0 = IVar19;\n }\n pcVar30 = &cf_output_metal_face_thin_crop_bounds;\n }\n objc_stub::length((ID)pcVar30);\n if (local_7d8 == 0) {\n uVar53 = 0;\nLAB_100026808:\n CVar102.field1_0x10.field1_0x8 = dVar55;\n uVar47 = 0;\n }\n else {\n IVar19 = objc_stub::width(local_7d8);\n IVar20 = objc_stub::width(local_788);\n if (IVar19 == IVar20) {\n IVar19 = objc_stub::height(local_7d8);\n IVar20 = objc_stub::height(local_788);\n if (IVar19 != IVar20) goto LAB_1000267d0;\n dVar55 = CVar102.field1_0x10.field1_0x8;\n _CGRectEqualToRect(CVar102.field0_0x0.field0_0x0,CVar102.field0_0x0.field1_0x8,\n CVar102.field1_0x10.field0_0x0,CVar102.field1_0x10.field1_0x8,\n dVar86,dVar81,dVar82,dVar87);\n uVar47 = (uint)IVar20;\n uVar53 = uVar47;\n }\n else {\nLAB_1000267d0:\n uVar47 = (uint)IVar20;\n uVar53 = 0;\n }\n if (uVar44 == 0) goto LAB_100026808;\n _CGRectEqualToRect(CVar102.field0_0x0.field0_0x0,CVar102.field0_0x0.field1_0x8,\n CVar102.field1_0x10.field0_0x0,CVar102.field1_0x10.field1_0x8,\n CVar100.field0_0x0.field0_0x0,dVar63,dVar64,dVar65);\n uVar47 = uVar47 & uVar45;\n }\n uVar45 = 0;\n if (local_880 == IVar18) {\n uVar45 = uVar46;\n }\n uVar45 = uVar45 & uVar44 & (uVar53 | uVar47);\n if (uVar46 != 0) {\n pcVar30 = &cf_output_metal_path_direct_source;\n if (uVar45 == 0) {\n pcVar30 = &cf_output_metal_path_processed_intermediate;\n }\n objc_stub::length((ID)pcVar30);\n }\n IVar19 = objc_stub::deviceRegistryID(param_3);\n IVar19 = FxMTLDeviceCache::commandQueueWithRegistryID_pixelFormat_\n (IVar21,IVar19,local_780);\n objc_stub::width(local_788);\n objc_stub::height(local_788);\n if (IVar19 == 0) goto LAB_1000268b0;\n objc_stub::length(0x1000ac8a0);\n IVar20 = objc_stub::commandBuffer(IVar19);\n objc_stub::enqueue(IVar20);\n if (((uVar45 | uVar46 ^ 0xffffffff | uVar44 ^ 1) & 1) == 0) {\n bVar61 = DAT_1000be030;\n if (DAT_1000be038 != -1) {\n FUN_100079724();\n bVar61 = DAT_1000be030;\n }\n }\n else {\n bVar61 = 0;\n }\n if (uVar45 == 0 && (bVar61 & 1) == 0) {\n IVar24 = objc_stub::width(local_788);\n IVar25 = objc_stub::height(local_788);\n local_7e8 = IVar22;\n FUN_10002ef38(IVar22,uVar1,IVar24,IVar25);\n objc_stub::length(0x1000ac8c0);\n if (local_7e8 != 0) {\n CVar102.field1_0x10.field1_0x8 = dVar69;\n objc_stub::render_toMTLTexture_commandBuffer_bounds_colorSpace_\n (IVar16,0,0,dVar91,local_9b0,local_7e8,IVar20,local_888);\n objc_stub::length(0x1000ac8e0);\n uVar53 = 1;\n goto LAB_100026978;\n }\n local_7e8 = 0;\n uVar53 = 0;\n local_638 = 0;\n if (uVar45 != 0 || (bVar61 & 1) != 0) goto LAB_100026978;\n local_7f8 = 0;\n uVar45 = 0;\n }\n else {\n uVar53 = 0;\n local_7e8 = 0;\nLAB_100026978:\n local_638 = 0;\n if ((uVar59 & (uVar46 | uVar6)) == 1) {\n IVar24 = objc_stub::count(local_768);\n if (IVar24 < 2) {\n if (bVar10) {\n local_7f8 = local_8e0;\n FUN_10002f2f8();\n objc_stub::length(local_7f8);\n }\n else {\n local_7f8 = 0;\n }\n IVar24 = objc_stub::length(local_7f8);\n if (IVar24 < 0x268) {\n local_7f8 = local_8e0;\n CVar102.field1_0x10.field1_0x8 = dVar65;\n local_180._0_8_ = dVar92;\n local_180._8_8_ = dVar73;\n local_170 = plVar95;\n dStack_168 = dVar74;\n local_160 = dVar96;\n dStack_158 = dVar97;\n FUN_10002f59c(CVar100.field0_0x0.field0_0x0,dVar63,dVar64,dVar65,dVar86,dVar81,\n dVar82,dVar87,local_8e0,local_180,bVar8);\n objc_stub::length(local_7f8);\n }\n IVar24 = objc_stub::length(local_7f8);\n local_638 = (ulong)(0x267 < IVar24);\n }\n else {\n if (bVar10) {\n local_7f8 = local_768;\n FUN_10002efa0(local_768,&local_638);\n objc_stub::length(local_7f8);\n }\n else {\n local_7f8 = 0;\n }\n IVar24 = objc_stub::length(local_7f8);\n CVar102.field1_0x10.field1_0x8 = dVar73;\n if (IVar24 < 0x268) {\n local_7f8 = local_768;\n CVar102.field1_0x10.field1_0x8 = dVar65;\n local_180._0_8_ = dVar92;\n local_180._8_8_ = dVar73;\n local_170 = plVar95;\n dStack_168 = dVar74;\n local_160 = dVar96;\n dStack_158 = dVar97;\n FUN_10002f10c(CVar100.field0_0x0.field0_0x0,dVar63,dVar64,dVar65,dVar86,dVar81,\n dVar82,dVar87,local_768,local_180,bVar8,&local_638);\n objc_stub::length(local_7f8);\n }\n }\n }\n else {\n local_7f8 = 0;\n }\n if (uVar46 == 0) {\n lVar60 = 0;\n IVar24 = 0;\n }\n else {\n IVar24 = objc_stub::length(local_7f8);\n uVar46 = 0;\n lVar60 = 0;\n if (IVar24 < 0x268) {\n IVar24 = 0;\n }\n else {\n IVar24 = 0;\n if (local_638 != 0) {\n lVar60 = local_638 * 0x4d;\n uVar46 = 1;\n IVar24 = local_7f8;\n }\n }\n }\n uVar59 = uVar6 ^ 1;\n if (local_7f8 != 0) {\n uVar59 = 1;\n }\n if (uVar59 == 0) {\n if (bVar10) {\n local_9d8 = local_7b0;\n FUN_10002f2f8();\n }\n else {\n local_9d8 = 0;\n }\n IVar25 = objc_stub::length(local_9d8);\n if (IVar25 < 0x268) {\n local_9d8 = local_7b0;\n local_180._0_8_ = dVar92;\n local_180._8_8_ = dVar73;\n local_170 = plVar95;\n dStack_168 = dVar74;\n local_160 = dVar96;\n dStack_158 = dVar97;\n FUN_10002f59c(CVar100.field0_0x0.field0_0x0,dVar63,dVar64,dVar65,dVar86,dVar81,\n dVar82,dVar87,local_7b0,local_180,bVar8);\n CVar102.field1_0x10.field1_0x8 = dVar65;\n }\n }\n else {\n local_9d8 = 0;\n }\n IVar25 = objc_stub::deviceRegistryID(param_3);\n IVar25 = FxMTLDeviceCache::pipelineStateWithRegistryID_pixelFormat_\n (IVar21,IVar25,local_780);\n if (IVar25 == 0) {\n uVar45 = 0;\n uVar53 = 0;\n }\n else {\n uVar50 = local_638;\n if (local_638 < 2) {\n uVar50 = 1;\n }\n dVar97 = local_8f8 * (double)AStack_528._104_8_;\n dVar96 = 1.0;\n if (dVar97 <= 1.0) {\n dVar96 = dVar97;\n }\n local_708 = 0.0;\n dVar92 = 0.0;\n if (0.0 <= dVar97) {\n dVar92 = dVar96;\n }\n local_700 = dVar92;\n FUN_10002fb74(&local_660,&AStack_528);\n dVar96 = local_700;\n dVar97 = local_708;\n dVar73 = CVar102.field1_0x10.field1_0x8;\n if ((uVar46 & (uVar45 | uVar44)) == 1) {\n if (DAT_1000be048 != -1) {\n FUN_100079748();\n }\n dVar96 = local_700;\n dVar97 = local_708;\n dVar73 = CVar102.field1_0x10.field1_0x8;\n if (((DAT_1000be040 != 1) ||\n (IVar26 = objc_stub::length(IVar24), dVar96 = local_700, dVar97 = local_708,\n dVar73 = CVar102.field1_0x10.field1_0x8, lVar60 == 0)) ||\n (IVar26 < (ulong)(lVar60 << 3))) goto LAB_100026dcc;\n IVar26 = IVar24;\n local_6f8 = extraout_d0_23;\n FUN_10002fd48(IVar24,lVar60);\n iVar14 = (int)IVar26;\n dVar96 = local_700;\n dVar97 = local_708;\n dVar73 = CVar102.field1_0x10.field1_0x8;\n FUN_10002fe4c();\n if (iVar14 == 0) goto LAB_100026dfc;\n _CGRectGetWidth(local_6f8,local_700,local_708,CVar102.field1_0x10.field1_0x8);\n _CGRectGetHeight(local_6f8,local_700,local_708,CVar102.field1_0x10.field1_0x8);\n _CGRectInset();\n _CGRectStandardize();\n _CGRectIntersection();\n dVar96 = local_700;\n dVar97 = local_708;\n dVar73 = CVar102.field1_0x10.field1_0x8;\n FUN_10002fe4c(local_6f8);\n if (iVar14 == 0) goto LAB_100026dfc;\n dVar74 = local_6f8;\n _CGRectGetWidth(local_6f8,local_700,local_708,CVar102.field1_0x10.field1_0x8);\n dVar63 = local_6f8;\n dVar97 = local_708;\n dVar73 = CVar102.field1_0x10.field1_0x8;\n _CGRectGetHeight(local_6f8,local_700);\n dVar96 = 0.72;\n bVar10 = dVar74 * dVar63 < 0.72 && 0.0 < dVar74 * dVar63;\n local_730 = CVar102.field1_0x10.field1_0x8;\n }\n else {\nLAB_100026dcc:\n if ((uVar46 != 0) && (uVar45 != 0 || (uVar29 & 1) != 0)) {\n if (DAT_1000be048 != -1) {\n FUN_100079748();\n }\n if ((DAT_1000be040 & 1) == 0) {\n objc_stub::length(0x1000ac900);\n }\n }\nLAB_100026dfc:\n bVar10 = false;\n local_730 = local_7a8;\n local_708 = local_7a0;\n local_700 = local_798;\n local_6f8 = local_790;\n }\n IVar26 = objc_stub::length(local_7f8);\n if (0x267 < IVar26) {\n objc_stub::bytes(local_7f8);\n uVar29 = local_638;\n if (local_638 < 2) {\n uVar29 = 1;\n }\n uVar70 = extraout_d0_24;\n FUN_10002fd48(local_7f8,uVar29 * 0x4d);\n uVar71 = uVar70;\n CVar102.field1_0x10.field1_0x8 = dVar96;\n dVar64 = dVar97;\n dVar55 = dVar73;\n FUN_10002a7b8(local_7b0,0,0x4b);\n uVar72 = uVar71;\n dVar63 = CVar102.field1_0x10.field1_0x8;\n dVar65 = dVar64;\n dVar90 = dVar55;\n FUN_10002a928(local_7b0);\n dVar74 = dVar75;\n _CGRectGetWidth(dVar75,dVar93,dVar77,dVar76);\n _CGRectGetHeight(dVar75,dVar93,dVar77,dVar76);\n IVar26 = local_7f8;\n FUN_10002ffa0(local_7f8);\n FUN_10001b584(local_560.field0_0x0.field0_0x0,local_560.field0_0x0.field1_0x8,\n local_560.field1_0x10.field0_0x0,local_560.field1_0x10.field1_0x8);\n FUN_10001b584(local_7b8,local_7c0,local_7c8,local_7d0);\n FUN_10001b584(local_808,local_820,local_830,local_838);\n FUN_10001c338(uVar71,CVar102.field1_0x10.field1_0x8,dVar64,dVar55);\n FUN_10001c338(uVar72,dVar63,dVar65,dVar90);\n FUN_10001b584(uVar70,dVar96,dVar97,dVar73);\n FUN_10001c338(local_6f8,local_700,local_708,local_730);\n FUN_10001c338(dVar94,dVar66,dVar79,dVar99);\n _CGRectGetWidth(uVar71,CVar102.field1_0x10.field1_0x8,dVar64,dVar55);\n _CGRectGetHeight(uVar71,CVar102.field1_0x10.field1_0x8,dVar64,dVar55);\n _CGRectGetWidth(local_7b8,local_7c0,local_7c8,local_7d0);\n _CGRectGetHeight(local_7b8,local_7c0,local_7c8,local_7d0);\n _CGRectGetWidth(uVar70,dVar96,dVar97,dVar73);\n _CGRectGetHeight(uVar70,dVar96,dVar97,dVar73);\n FUN_10002ab0c(IVar26);\n FUN_10002ac7c(dVar74,dVar75,IVar26);\n }\n if ((uVar46 == 0) ||\n (IVar26 = objc_stub::length(IVar24), IVar26 < (ulong)(lVar60 << 3))) {\nLAB_100027018:\n uVar44 = uVar53;\n if (local_7e8 != 0) {\n uVar44 = 1;\n }\n if (uVar44 == 0 && uVar45 == 0) {\n IVar24 = objc_stub::width(local_788);\n IVar26 = objc_stub::height(local_788);\n local_7e8 = IVar22;\n FUN_10002ef38(IVar22,uVar1,IVar24,IVar26);\n objc_stub::length(0x1000acba0);\n }\n if (local_7e8 == 0) {\n uVar53 = 1;\n }\n if (uVar53 == 0) {\n objc_stub::render_toMTLTexture_commandBuffer_bounds_colorSpace_\n (IVar16,0,0,dVar91,dVar69,local_9b0,local_7e8,IVar20,local_888);\n objc_stub::length(0x1000acbc0);\n }\n IVar24 = MTLRenderPassDescriptor::renderPassDescriptor\n ((ID)&_OBJC_CLASS___MTLRenderPassDescriptor);\n IVar26 = MTLRenderPassDescriptor::colorAttachments(IVar24);\n IVar26 = MTLRenderPassDescriptor::objectAtIndexedSubscript_(IVar26,0);\n MTLRenderPassDescriptor::setTexture_(IVar26,local_788);\n IVar26 = MTLRenderPassDescriptor::colorAttachments(IVar24);\n IVar26 = MTLRenderPassDescriptor::objectAtIndexedSubscript_(IVar26,0);\n MTLRenderPassDescriptor::setLoadAction_(IVar26,2);\n IVar26 = MTLRenderPassDescriptor::colorAttachments(IVar24);\n IVar26 = MTLRenderPassDescriptor::objectAtIndexedSubscript_(IVar26,0);\n MTLRenderPassDescriptor::setStoreAction_(IVar26,1);\n IVar26 = MTLRenderPassDescriptor::colorAttachments(IVar24);\n IVar26 = MTLRenderPassDescriptor::objectAtIndexedSubscript_(IVar26,0);\n MTLRenderPassDescriptor::setClearColor_(IVar26,0,0,0,0x3ff0000000000000);\n IVar24 = objc_stub::renderCommandEncoderWithDescriptor_(IVar20,IVar24);\n if (IVar24 == 0) {\n uVar45 = 0;\n uVar53 = 0;\n }\n else {\n IVar26 = objc_stub::width(local_788);\n IVar56 = objc_stub::height(local_788);\n FUN_1000315fc(local_180,IVar26,IVar56);\n IVar26 = objc_stub::width(local_788);\n IVar56 = objc_stub::height(local_788);\n local_680 = CONCAT44((int)IVar56,(int)IVar26);\n IVar26 = objc_stub::width(local_788);\n IVar56 = objc_stub::height(local_788);\n local_f0 = (long *)(double)IVar26;\n dStack_e8 = (double)IVar56;\n local_100 = 0.0;\n dStack_f8 = 0.0;\n dStack_d8 = 1.0;\n local_e0 = -1.0;\n objc_stub::setViewport_(IVar24,&local_100);\n objc_stub::setRenderPipelineState_(IVar24,IVar25);\n objc_stub::setVertexBytes_length_atIndex_(IVar24,local_180,0x40,0);\n objc_stub::setVertexBytes_length_atIndex_(IVar24,&local_680,8,1);\n objc_stub::setFragmentTexture_atIndex_(IVar24,local_7e8,0);\n objc_stub::drawPrimitives_vertexStart_vertexCount_(IVar24,4,0,4);\n objc_stub::endEncoding(IVar24);\n objc_stub::length(0x1000acbe0);\n objc_stub::length(0x1000acc00);\n uVar45 = 0;\n uVar53 = 1;\n }\n }\n else {\n pcVar30 = &cf_output_metal_face_thin_roi_requested;\n if (bVar10 == false) {\n pcVar30 = &cf_output_metal_face_thin_full_requested;\n }\n IVar26 = objc_stub::length((ID)pcVar30);\n iVar14 = (int)IVar26;\n uVar44 = (uint)((ulong)dVar98 >> 0x20);\n fVar62 = (float)dVar92;\n uVar48 = (undefined4)uVar50;\n if (uVar45 == 0) {\nLAB_1000274ec:\n if ((bVar10 & bVar61) == 1) {\n iVar15 = iVar14;\n FUN_10002fe4c(local_6f8,local_700,local_708,local_730);\n iVar14 = 0;\n if (iVar15 != 0) {\n dVar96 = local_6f8;\n dVar97 = local_700;\n dVar92 = local_708;\n dVar73 = local_730;\n FUN_100030cc4(local_6f8,local_700,local_708,local_730);\n FUN_100030da8();\n FUN_100021624();\n iVar14 = 0;\n if (iVar15 != 0) {\n dVar94 = dVar96;\n _CGRectGetWidth(dVar96,dVar97,dVar92,dVar73);\n uVar29 = (ulong)dVar94;\n if (uVar29 < 2) {\n uVar29 = 1;\n }\n dVar94 = dVar96;\n _CGRectGetHeight(dVar96,dVar97,dVar92,dVar73);\n uVar50 = (ulong)dVar94;\n if (uVar50 < 2) {\n uVar50 = 1;\n }\n IVar26 = MTLTextureDescriptor::\n texture2DDescriptorWithPixelFormat_width_height_mipmapped_\n ((ID)&_OBJC_CLASS___MTLTextureDescriptor,uVar1,uVar29,\n uVar50,0);\n MTLTextureDescriptor::setUsage_(IVar26,7);\n MTLTextureDescriptor::setStorageMode_(IVar26,2);\n IVar26 = objc_stub::newTextureWithDescriptor_(IVar22,IVar26);\n iVar14 = 0;\n if (IVar26 != 0) {\n IVar56 = local_9b0;\n FUN_10002ee0c(0,0,dVar91,dVar69,local_9b0);\n objc_stub::render_toMTLTexture_commandBuffer_bounds_colorSpace_\n (IVar16,0,0,dVar91,dVar69,IVar56,local_788,IVar20,local_888);\n objc_stub::length(0x1000aca00);\n IVar56 = objc_stub::imageByCroppingToRect_\n (local_9b0,dVar96,dVar97,dVar92,dVar73);\n dVar94 = dVar96;\n _CGRectGetMinX(dVar96,dVar97,dVar92,dVar73);\n dVar74 = dVar96;\n _CGRectGetMinY(dVar96,dVar97,dVar92,dVar73);\n _CGAffineTransformMakeTranslation(local_180,-dVar94,-dVar74);\n uVar44 = (uint)((ulong)dVar98 >> 0x20);\n IVar56 = objc_stub::imageByApplyingTransform_(IVar56,local_180);\n IVar34 = objc_stub::imageByCroppingToRect_\n (IVar56,0,0,(double)uVar29,(double)uVar50);\n if (IVar34 != 0) {\n IVar56 = IVar34;\n }\n objc_stub::render_toMTLTexture_commandBuffer_bounds_colorSpace_\n (IVar16,0,0,(double)uVar29,(double)uVar50,IVar56,IVar26,IVar20,\n local_888);\n objc_stub::length(0x1000aca20);\n FUN_100030f50(dVar96,dVar97,dVar92,dVar73,0,0,dVar91,dVar69);\n FUN_100030cc4();\n dVar94 = dVar96;\n dVar74 = dVar97;\n FUN_100031128();\n IVar34 = objc_stub::deviceRegistryID(param_3);\n IVar35 = objc_stub::bytes(IVar24);\n IVar38 = objc_stub::length(IVar24);\n local_180._8_8_ = dStack_658;\n local_180._0_8_ = local_660;\n dStack_168 = dStack_648;\n local_170 = local_650;\n local_160 = local_640;\n IVar56 = IVar20;\n FUN_100030840(fVar62,dVar94,dVar74,dVar96,dVar97,dVar92,dVar73,IVar20,\n IVar26,local_788,IVar21,IVar34,local_780,IVar35,IVar38,\n lVar60,uVar48,uVar44,local_180,1);\n dVar98 = (double)((ulong)uVar44 << 0x20);\n iVar14 = (int)IVar56;\n if ((IVar56 & 1) != 0) {\n objc_stub::length(0x1000aca40);\n objc_stub::length(0x1000aca60);\n goto LAB_100027a54;\n }\n }\n }\n }\n }\n if (local_7e8 == 0 && uVar45 == 0) {\n IVar26 = objc_stub::width(local_788);\n IVar56 = objc_stub::height(local_788);\n local_7e8 = IVar22;\n FUN_10002ef38(IVar22,uVar1,IVar26,IVar56);\n IVar26 = objc_stub::length(0x1000aca80);\n iVar14 = (int)IVar26;\n }\n uVar105 = (undefined4)((ulong)dVar98 >> 0x20);\n uVar44 = uVar53;\n if (local_7e8 == 0) {\n uVar44 = 1;\n }\n if (uVar44 == 0) {\n objc_stub::render_toMTLTexture_commandBuffer_bounds_colorSpace_\n (IVar16,0,0,dVar91,dVar69,local_9b0,local_7e8,IVar20,local_888);\n IVar26 = objc_stub::length(0x1000acaa0);\n uVar105 = (undefined4)((ulong)dVar98 >> 0x20);\n iVar14 = (int)IVar26;\n uVar53 = 1;\n }\n if (bVar10 != false) {\n if (DAT_1000be058 != -1) {\n FUN_10007976c();\n }\n if ((DAT_1000be050 == 1) && (local_7e8 != 0)) {\n FUN_10002fe4c(local_6f8,local_700,local_708,local_730);\n if (iVar14 != 0) {\n if (DAT_1000be068 != -1) {\n FUN_100079790();\n }\n cVar9 = DAT_1000be060;\n IVar56 = objc_stub::deviceRegistryID(param_3);\n IVar34 = objc_stub::bytes(IVar24);\n IVar35 = objc_stub::length(IVar24);\n local_180._8_8_ = dStack_658;\n local_180._0_8_ = local_660;\n dStack_168 = dStack_648;\n local_170 = local_650;\n local_160 = local_640;\n IVar26 = IVar20;\n FUN_100030084(fVar62,local_9c0,local_9d0,local_6f8,local_700,local_708,\n local_730,IVar20,local_7e8,local_788,IVar21,IVar56,local_780,\n IVar34,IVar35,lVar60,uVar48,uVar105,local_180,cVar9);\n if ((int)IVar26 != 0) {\n pcVar30 = &cf_output_metal_face_thin_roi_processed_base_preflip;\n if (cVar9 == '\\0') {\n pcVar30 = &cf_output_metal_face_thin_roi_processed_base_no_preflip;\n }\n objc_stub::length((ID)pcVar30);\n objc_stub::length(0x1000acb00);\n objc_stub::length(0x1000acb20);\n goto LAB_100027a54;\n }\n goto LAB_1000279b8;\n }\n if (DAT_1000be058 != -1) {\n FUN_10007976c();\n }\n }\n if (((DAT_1000be050 & 1) == 0) && (local_7e8 != 0)) {\n objc_stub::length(0x1000acb40);\n }\n }\nLAB_1000279b8:\n IVar26 = objc_stub::deviceRegistryID(param_3);\n IVar56 = objc_stub::bytes(IVar24);\n IVar34 = objc_stub::length(IVar24);\n local_180._8_8_ = dStack_658;\n local_180._0_8_ = local_660;\n dStack_168 = dStack_648;\n local_170 = local_650;\n local_160 = local_640;\n IVar24 = IVar20;\n FUN_10003127c(fVar62,local_9c0,local_9d0,IVar20,local_7e8,local_788,IVar21,IVar26,\n local_780,IVar56,IVar34,lVar60,uVar48,uVar105,local_180,0,1);\n if ((int)IVar24 == 0) goto LAB_100027018;\n objc_stub::length(0x1000acb60);\n objc_stub::length(0x1000acb80);\n }\n else {\n if (bVar10 == false) {\n bVar2 = false;\nLAB_100027410:\n IVar56 = objc_stub::deviceRegistryID(param_3);\n IVar34 = objc_stub::bytes(IVar24);\n IVar35 = objc_stub::length(IVar24);\n local_180._8_8_ = dStack_658;\n local_180._0_8_ = local_660;\n dStack_168 = dStack_648;\n local_170 = local_650;\n local_160 = local_640;\n IVar26 = IVar20;\n FUN_100030840(fVar62,local_9c0,local_9d0,local_790,local_798,local_7a0,local_7a8\n ,IVar20,local_7d8,local_788,IVar21,IVar56,local_780,IVar34,IVar35,\n lVar60,uVar48,uVar44,local_180,bVar2);\n dVar98 = (double)((ulong)uVar44 << 0x20);\n iVar14 = 0;\n if ((int)IVar26 == 0) goto LAB_1000274ec;\n pcVar30 = &cf_output_metal_face_thin_roi_direct_encode;\n if (!bVar2) {\n pcVar30 = &cf_output_metal_face_thin_full_direct_encode;\n }\n objc_stub::length((ID)pcVar30);\n if (bVar2) goto LAB_1000274bc;\n }\n else {\n IVar56 = objc_stub::deviceRegistryID(param_3);\n IVar34 = objc_stub::bytes(IVar24);\n IVar35 = objc_stub::length(IVar24);\n local_180._8_8_ = dStack_658;\n local_180._0_8_ = local_660;\n dStack_168 = dStack_648;\n local_170 = local_650;\n local_160 = local_640;\n IVar26 = IVar20;\n FUN_100030084(fVar62,local_9c0,local_9d0,local_6f8,local_700,local_708,local_730\n ,IVar20,local_7d8,local_788,IVar21,IVar56,local_780,IVar34,IVar35,\n lVar60,uVar48,uVar44,local_180,uVar13 & 0xffffff00);\n if ((IVar26 & 1) == 0) {\n IVar56 = objc_stub::deviceRegistryID(param_3);\n IVar26 = IVar20;\n FUN_1000305d0(IVar20,local_7d8,local_788,IVar21,IVar56,local_780);\n bVar2 = (int)IVar26 != 0;\n if (bVar2) {\n objc_stub::length(0x1000ac9a0);\n }\n local_790 = local_6f8;\n local_798 = local_700;\n local_7a0 = local_708;\n local_7a8 = local_730;\n goto LAB_100027410;\n }\n objc_stub::length(0x1000ac960);\n objc_stub::length(0x1000ac980);\n local_790 = local_6f8;\n local_798 = local_700;\n local_7a0 = local_708;\n local_7a8 = local_730;\nLAB_1000274bc:\n FUN_10002fe4c(local_790,local_798,local_7a0,local_7a8);\n }\n FUN_10001c338(local_6f8,local_700,local_708,local_730);\n }\nLAB_100027a54:\n uVar53 = 0;\n uVar45 = 1;\n }\n }\n if ((uVar45 != 0) || (uVar53 != 0)) {\n uVar44 = uVar45 & (uVar53 ^ 1);\n puVar33 = puVar32;\n puVar39 = puVar58;\n local_6f8 = (double)IVar17;\n if (uVar44 == 1) {\n IVar24 = 0;\n FUN_10002d668();\n FUN_10002d668();\n FUN_10002d668();\n FUN_10002d838();\n FUN_10002d668();\n FUN_10002d838();\n }\n else {\n IVar24 = 0;\n }\n if (local_894 == 0) {\n bVar10 = false;\n }\n else {\n IVar25 = objc_stub::count(IVar24);\n IVar26 = objc_stub::count((ID)puVar33);\n IVar56 = objc_stub::count((ID)puVar39);\n IVar34 = objc_stub::count((ID)local_6f8);\n bVar10 = IVar26 + IVar25 + IVar56 + IVar34 != 0;\n }\n if (bVar10 || uVar6 != 0) {\n IVar25 = objc_stub::deviceRegistryID(param_3);\n IVar25 = FxMTLDeviceCache::solidOverlayPipelineStateWithRegistryID_pixelFormat_\n (IVar21,IVar25,local_780);\n bVar2 = false;\n if (IVar25 != 0) {\n bVar2 = bVar10;\n }\n if (bVar2) {\n IVar26 = objc_stub::count(IVar24);\n if (IVar26 == 0) {\n uVar13 = 0;\n }\n else {\n IVar26 = IVar20;\n FUN_1000316bc(IVar20,local_788,IVar24,IVar25);\n uVar13 = (uint)IVar26;\n }\n IVar24 = objc_stub::count((ID)puVar33);\n if (IVar24 != 0) {\n IVar24 = IVar20;\n FUN_100031bd8(dStack_970,local_978,dStack_980,local_988,IVar20,local_788,puVar33\n ,IVar25,0,1);\n uVar13 = uVar13 | (uint)IVar24;\n }\n IVar24 = objc_stub::count((ID)puVar39);\n if (IVar24 != 0) {\n IVar24 = IVar20;\n FUN_100031bd8(dStack_970,local_978,dStack_980,local_988,IVar20,local_788,puVar39\n ,IVar25,0,1);\n uVar13 = uVar13 | (uint)IVar24;\n }\n IVar24 = objc_stub::count((ID)local_6f8);\n if (IVar24 != 0) {\n IVar24 = IVar20;\n FUN_100031bd8(dStack_990,local_998,dStack_9a0,local_9a8,IVar20,local_788,\n local_6f8,IVar25,1,0);\n uVar13 = uVar13 | (uint)IVar24;\n }\n }\n else {\n uVar13 = 0;\n }\n uVar59 = 0;\n if (IVar25 != 0) {\n uVar59 = uVar6;\n }\n if (uVar59 == 1) {\n IVar26 = objc_stub::length(local_7f8);\n IVar24 = local_7f8;\n if ((IVar26 < 0x268) &&\n (IVar26 = objc_stub::length(local_9d8), IVar24 = local_9d8, IVar26 < 0x268)) {\n IVar26 = 0;\n uVar29 = 0;\n }\n else {\n IVar26 = objc_stub::bytes(IVar24);\n IVar24 = objc_stub::length(IVar24);\n uVar29 = IVar24 >> 3;\n }\n IVar24 = IVar20;\n FUN_100032274(IVar20,local_788,IVar26,uVar29,uVar44,IVar25);\n if ((int)IVar24 == 0) goto LAB_100027cd8;\n if (uVar44 != 0) {\n objc_stub::length(0x1000acc20);\n }\n }\n else {\nLAB_100027cd8:\n if (uVar13 == 0) goto LAB_100027ce8;\n }\n objc_stub::length(0x1000acc40);\n }\n }\nLAB_100027ce8:\n if (uVar53 == 0 && uVar45 == 1) {\n IVar24 = objc_stub::width(local_788);\n IVar25 = objc_stub::height(local_788);\n IVar24 = MTLTextureDescriptor::\n texture2DDescriptorWithPixelFormat_width_height_mipmapped_\n ((ID)&_OBJC_CLASS___MTLTextureDescriptor,local_780,IVar24,IVar25,0)\n ;\n MTLTextureDescriptor::setUsage_(IVar24,5);\n MTLTextureDescriptor::setStorageMode_(IVar24,2);\n IVar22 = objc_stub::newTextureWithDescriptor_(IVar22,IVar24);\n IVar24 = objc_stub::deviceRegistryID(param_3);\n IVar24 = FxMTLDeviceCache::pipelineStateWithRegistryID_pixelFormat_\n (IVar21,IVar24,local_780);\n if ((IVar22 != 0) && (IVar24 != 0)) {\n IVar25 = MTLRenderPassDescriptor::renderPassDescriptor\n ((ID)&_OBJC_CLASS___MTLRenderPassDescriptor);\n IVar26 = MTLRenderPassDescriptor::colorAttachments(IVar25);\n IVar26 = MTLRenderPassDescriptor::objectAtIndexedSubscript_(IVar26,0);\n MTLRenderPassDescriptor::setTexture_(IVar26,IVar22);\n IVar26 = MTLRenderPassDescriptor::colorAttachments(IVar25);\n IVar26 = MTLRenderPassDescriptor::objectAtIndexedSubscript_(IVar26,0);\n MTLRenderPassDescriptor::setLoadAction_(IVar26,2);\n IVar26 = MTLRenderPassDescriptor::colorAttachments(IVar25);\n IVar26 = MTLRenderPassDescriptor::objectAtIndexedSubscript_(IVar26,0);\n MTLRenderPassDescriptor::setStoreAction_(IVar26,1);\n IVar26 = MTLRenderPassDescriptor::colorAttachments(IVar25);\n IVar26 = MTLRenderPassDescriptor::objectAtIndexedSubscript_(IVar26,0);\n MTLRenderPassDescriptor::setClearColor_(IVar26,0,0,0,0x3ff0000000000000);\n IVar25 = objc_stub::renderCommandEncoderWithDescriptor_(IVar20,IVar25);\n if (IVar25 != 0) {\n IVar26 = objc_stub::width(local_788);\n IVar56 = objc_stub::height(local_788);\n FUN_1000315fc(local_180,IVar26,IVar56);\n IVar26 = objc_stub::width(local_788);\n IVar56 = objc_stub::height(local_788);\n local_668 = CONCAT44((int)IVar56,(int)IVar26);\n IVar26 = objc_stub::width(local_788);\n IVar56 = objc_stub::height(local_788);\n local_f0 = (long *)(double)IVar26;\n dStack_e8 = (double)IVar56;\n local_100 = 0.0;\n dStack_f8 = 0.0;\n dStack_d8 = 1.0;\n local_e0 = -1.0;\n objc_stub::setViewport_(IVar25,&local_100);\n objc_stub::setRenderPipelineState_(IVar25,IVar24);\n objc_stub::setVertexBytes_length_atIndex_(IVar25,local_180,0x40,0);\n objc_stub::setVertexBytes_length_atIndex_(IVar25,&local_668,8,1);\n objc_stub::setFragmentTexture_atIndex_(IVar25,local_788,0);\n objc_stub::drawPrimitives_vertexStart_vertexCount_(IVar25,4,0,4);\n objc_stub::endEncoding(IVar25);\n IVar24 = objc_stub::blitCommandEncoder(IVar20);\n if (IVar24 != 0) {\n local_100 = 0.0;\n dStack_f8 = 0.0;\n local_f0 = (long *)0x0;\n IVar25 = objc_stub::width(local_788);\n local_678 = objc_stub::height(local_788);\n dStack_658 = dStack_f8;\n local_660 = local_100;\n local_650 = local_f0;\n local_670 = 1;\n dStack_698 = dStack_f8;\n local_6a0 = local_100;\n local_690 = local_f0;\n local_680 = IVar25;\n objc_stub::\n copyFromTexture_sourceSlice_sourceLevel_sourceOrigin_sourceSize_toTexture_destinationSlice_destinationLevel_destinationOrigin_\n (IVar24,IVar22,0,0,&local_660,&local_680,local_788,0,0,&local_6a0);\n objc_stub::endEncoding(IVar24);\n objc_stub::length(0x1000acc60);\n }\n }\n }\n uVar53 = 0;\n }\n }\n objc_stub::length(0x1000acc80);\n objc_stub::commit(IVar20);\n objc_stub::length(0x1000acca0);\n objc_stub::waitUntilCompleted(IVar20);\n objc_stub::length(0x1000accc0);\n objc_stub::GPUStartTime(IVar20);\n if (0.0 < extraout_d0_25) {\n objc_stub::GPUEndTime(IVar20);\n objc_stub::GPUStartTime(IVar20);\n if (extraout_d0_27 <= extraout_d0_26) {\n objc_stub::GPUEndTime(IVar20);\n objc_stub::GPUStartTime(IVar20);\n objc_stub::length(0x1000acce0);\n }\n }\n IVar22 = objc_stub::error(IVar20);\n uVar44 = 0;\n if (IVar22 == 0) {\n uVar44 = uVar45 | uVar53;\n }\n objc_stub::length(local_7f8);\n objc_stub::length(local_7f8);\n objc_stub::error(IVar20);\n objc_stub::count(local_8e0);\n objc_stub::error(IVar20);\n objc_stub::error(IVar20);\n pcVar30 = &cf_output_metal_face_thin;\n if (uVar46 == 0) {\n pcVar30 = &cf_output_metal_texture;\n }\n objc_stub::length((ID)pcVar30);\n if (uVar53 == 0 && uVar46 == 0) {\n IVar20 = objc_stub::deviceRegistryID(param_3);\n FxMTLDeviceCache::pipelineStateWithRegistryID_pixelFormat_(IVar21,IVar20,local_780);\n FUN_1000329ac(&cf_metaloutputcopyfailedpipeline_input___texture___);\n }\n if (uVar45 == 0 && uVar46 == 1) {\n FUN_1000329ac(&cf_metalfacethinoutputfailedpipeline_inputpointData___texture___);\n }\n FxMTLDeviceCache::returnCommandQueueToCache_(IVar21,IVar19);\n }\n if (uVar44 == 0) {\n if (uVar4 != 0) {\n IVar20 = objc_stub::count(local_768);\n IVar19 = local_880;\n if (IVar20 < 2) {\n IVar20 = objc_stub::count(local_8e0);\n if (IVar20 < 0x4d) {\n IVar19 = 0;\n }\n else {\n IVar20 = objc_stub::deviceRegistryID(param_3);\n FUN_10002b8a4(local_8f8,local_880,&AStack_528,local_8e0,IVar21,IVar20);\n if ((IVar19 == local_880) && (2.220446049250313e-16 < (double)AStack_528._104_8_)) {\n IVar19 = local_880;\n FUN_10002c1f8(AStack_528._104_8_,local_8f8,local_880,local_8e0);\n }\n }\n }\n else {\n IVar20 = objc_stub::deviceRegistryID(param_3);\n FUN_10002b4fc(local_8f8,local_880,&AStack_528,local_768,IVar21,IVar20);\n if ((IVar19 == local_880) && (2.220446049250313e-16 < (double)AStack_528._104_8_)) {\n IVar19 = local_880;\n FUN_10002b738(AStack_528._104_8_,local_8f8,local_880,local_768);\n }\n }\n if (IVar19 != 0) {\n local_880 = IVar19;\n }\n objc_stub::length(0x1000acd80);\n }\n if (puVar28 == (undefined8 *)0x0) {\n if (pIVar43 != (ID *)0x0) {\n pcVar30 = &cf_IOSurfaceunavailable;\n FUN_10001fb70();\n *pIVar43 = (ID)pcVar30;\n }\n objc_stub::length(0x1000ac540);\n goto LAB_1000283fc;\n }\n IVar19 = local_880;\n FUN_100032a9c(dStack_8b0,local_8b8,dStack_8c0,local_8c8);\n if ((IVar19 & 1) == 0) {\n objc_stub::extent(local_880);\n _NSStringFromRect();\n _NSStringFromRect(dStack_8b0,local_8b8,dStack_8c0,local_8c8);\n FUN_1000329ac(&cf_renderfallbackbadprocessedextent___renderRect___full__d);\n FUN_100032c18(dStack_8b0,local_8b8,dStack_8c0,local_8c8);\n objc_stub::length(0x1000acde0);\n }\n puVar36 = puVar28;\n _IOSurfaceGetWidth();\n puVar37 = puVar28;\n _IOSurfaceGetHeight(puVar28);\n FUN_10002dc00(dVar86,dVar81,dVar82,dVar87,puVar36,puVar37);\n dVar96 = dVar82;\n dVar97 = dVar87;\n dVar92 = dVar81;\n dVar73 = dVar86;\n if ((int)puVar36 != 0) {\n dVar96 = dVar86;\n _CGRectGetWidth();\n dVar97 = dVar86;\n _CGRectGetHeight(dVar86,dVar81,dVar82,dVar87);\n dVar92 = 0.0;\n dVar73 = 0.0;\n }\n FUN_10002decc(dVar86,dVar81,dVar82,dVar87,dVar73,dVar92,dVar96,dVar97,local_880,puVar36);\n FUN_10002ee0c(dVar73,dVar92,dVar96,dVar97);\n objc_stub::length(0x1000ace00);\n if (local_8cc == 0) {\n IVar19 = 0;\n }\n else {\n IVar19 = objc_stub::count(local_768);\n if (IVar19 == 0) {\n IVar20 = objc_stub::count(local_8e0);\n IVar19 = local_8e0;\n if ((IVar20 < 0x4d) &&\n (IVar20 = objc_stub::count(local_7b0,local_8e0), IVar19 = local_7b0, IVar20 < 0x4d)\n ) {\n IVar19 = 0;\n }\n else {\n IVar19 = NSMutableArray::arrayWithObject_((ID)&_OBJC_CLASS___NSMutableArray,IVar19);\n }\n }\n else {\n IVar19 = objc_stub::count(local_768);\n IVar19 = NSMutableArray::arrayWithCapacity_((ID)&_OBJC_CLASS___NSMutableArray,IVar19);\n uStack_6b8 = 0;\n local_6c0 = 0;\n uStack_6a8 = 0;\n uStack_6b0 = 0;\n lStack_6d8 = 0;\n local_6e0 = 0;\n uStack_6c8 = 0;\n local_6d0 = (long *)0x0;\n IVar20 = objc_stub::countByEnumeratingWithState_objects_count_\n (local_768,&local_6e0,auStack_3b0,0x10);\n if (IVar20 != 0) {\n lVar60 = *local_6d0;\n do {\n IVar21 = 0;\n do {\n if (*local_6d0 != lVar60) {\n _objc_enumerationMutation(local_768);\n }\n IVar24 = *(ID *)(lStack_6d8 + IVar21 * 8);\n IVar22 = objc_stub::count(IVar24);\n if (0x4c < IVar22) {\n NSMutableArray::addObject_(IVar19,IVar24);\n }\n IVar21 = IVar21 + 1;\n } while (IVar20 != IVar21);\n IVar20 = objc_stub::countByEnumeratingWithState_objects_count_\n (local_768,&local_6e0,auStack_3b0,0x10);\n } while (IVar20 != 0);\n }\n }\n objc_stub::length(0x1000ace20);\n }\n if (local_894 != 0) {\n IVar20 = objc_stub::count(0);\n if (IVar20 != 0) {\n puVar37 = puVar36;\n FUN_10002e6ec(dVar86,dVar81,dVar82,dVar87,dVar73,dVar92,dVar96,dVar97);\n if (puVar37 != (undefined8 *)0x0) {\n IVar20 = objc_stub::imageByCompositingOverImage_((ID)puVar37,local_880);\n IVar20 = objc_stub::imageByCroppingToRect_(IVar20,dVar73,dVar92,dVar96,dVar97);\n if (IVar20 != 0) {\n local_880 = IVar20;\n }\n }\n objc_stub::length(0x1000ace40);\n }\n IVar20 = objc_stub::count((ID)puVar32);\n if (IVar20 != 0) {\n puVar37 = puVar36;\n FUN_10002df98(dVar86,dVar81,dVar82,dVar87,dVar73,dVar92,dVar96,dVar97,puVar36,puVar32,\n 0,1);\n if (puVar37 != (undefined8 *)0x0) {\n IVar20 = objc_stub::imageByCompositingOverImage_((ID)puVar37,local_880);\n IVar20 = objc_stub::imageByCroppingToRect_(IVar20,dVar73,dVar92,dVar96,dVar97);\n if (IVar20 != 0) {\n local_880 = IVar20;\n }\n }\n objc_stub::length(0x1000ace60);\n }\n IVar20 = objc_stub::count((ID)puVar58);\n if (IVar20 != 0) {\n puVar37 = puVar36;\n FUN_10002df98(dVar86,dVar81,dVar82,dVar87,dVar73,dVar92,dVar96,dVar97,puVar36,puVar58,\n 0,1);\n if (puVar37 != (undefined8 *)0x0) {\n IVar20 = objc_stub::imageByCompositingOverImage_((ID)puVar37,local_880);\n IVar20 = objc_stub::imageByCroppingToRect_(IVar20,dVar73,dVar92,dVar96,dVar97);\n if (IVar20 != 0) {\n local_880 = IVar20;\n }\n }\n objc_stub::length(0x1000ace80);\n }\n IVar20 = objc_stub::count(IVar17);\n if (IVar20 != 0) {\n puVar37 = puVar36;\n FUN_10002df98(dVar86,dVar81,dVar82,dVar87,dVar73,dVar92,dVar96,dVar97,puVar36,IVar17,1\n ,0);\n if (puVar37 != (undefined8 *)0x0) {\n IVar17 = objc_stub::imageByCompositingOverImage_((ID)puVar37,local_880);\n IVar17 = objc_stub::imageByCroppingToRect_(IVar17,dVar73,dVar92,dVar96,dVar97);\n if (IVar17 != 0) {\n local_880 = IVar17;\n }\n }\n objc_stub::length(0x1000acea0);\n }\n }\n if ((local_8cc != 0) && (IVar17 = objc_stub::count(IVar19), IVar17 != 0)) {\n puVar37 = puVar36;\n FUN_100032da8(dVar86,dVar81,dVar82,dVar87,dVar73,dVar92,dVar96,dVar97,puVar36,IVar19);\n objc_stub::count(IVar19);\n FUN_10001c338(dVar86,dVar81,dVar82,dVar87);\n FUN_10001c338(dVar73,dVar92,dVar96,dVar97);\n if (puVar37 != (undefined8 *)0x0) {\n IVar17 = objc_stub::imageByCompositingOverImage_((ID)puVar37,local_880);\n IVar17 = objc_stub::imageByCroppingToRect_(IVar17,dVar73,dVar92,dVar96,dVar97);\n if (IVar17 != 0) {\n local_880 = IVar17;\n }\n }\n objc_stub::length(0x1000acec0);\n }\n IVar17 = local_880;\n FUN_100032a9c(dVar73,dVar92,dVar96,dVar97);\n if ((IVar17 & 1) == 0) {\n objc_stub::extent(local_880);\n _NSStringFromRect();\n _NSStringFromRect(dVar73,dVar92,dVar96,dVar97);\n FUN_1000329ac(&cf_renderfallbackbadtileextent___output___);\n FUN_100032c18(dVar73,dVar92,dVar96,dVar97);\n }\n objc_stub::length(0x1000acf00);\n FUN_10002ed00(dVar73,dVar92,dVar96,dVar97);\n objc_stub::length(0x1000acf20);\n if (IVar18 == 0) {\n IVar18 = 0;\n }\n else {\n FUN_10002decc(dVar86,dVar81,dVar82,dVar87,dVar73,dVar92,dVar96,dVar97,IVar18,puVar36);\n FUN_10002ee0c(dVar73,dVar92,dVar96,dVar97);\n FUN_10002ed00(dVar73,dVar92,dVar96,dVar97);\n }\n objc_stub::length(0x1000acf40);\n objc_stub::length(0x1000acf60);\n _NSStringFromRect(dVar73,dVar92,dVar96,dVar97);\n objc_stub::extent(local_880);\n _NSStringFromRect();\n IVar17 = local_880;\n FUN_1000334b8(dVar73,dVar92,dVar96,dVar97,local_880,IVar16,puVar28,local_888);\n objc_stub::length(0x1000acf80);\n if ((IVar17 & 1) == 0) {\n FUN_10003358c(dVar73,dVar92,dVar96,dVar97,local_880,IVar16,puVar28,local_888);\n objc_stub::length(0x1000acfa0);\n if (IVar18 != 0 && (local_880 & 1) == 0) {\n _NSStringFromRect(dVar73,dVar92,dVar96,dVar97);\n FUN_1000329ac(&cf_renderfallbackwritinginputtileoutput___);\n IVar17 = IVar18;\n FUN_1000334b8(dVar73,dVar92,dVar96,dVar97,IVar18,IVar16,puVar28,local_888);\n objc_stub::length(0x1000acfe0);\n if ((IVar17 & 1) != 0) goto LAB_1000288d0;\n FUN_10003358c(dVar73,dVar92,dVar96,dVar97,IVar18,IVar16,puVar28,local_888);\n objc_stub::length(0x1000ad000);\n local_880 = IVar18;\n }\n if ((local_880 & 1) == 0) {\n _NSStringFromRect(dVar73,dVar92,dVar96,dVar97);\n FUN_1000329ac(&cf_renderfallbackfillingblackoutput___);\n puVar37 = puVar28;\n _IOSurfaceGetWidth();\n puVar36 = puVar28;\n _IOSurfaceGetHeight();\n puVar40 = puVar28;\n _IOSurfaceGetBytesPerRow();\n puVar51 = puVar28;\n _IOSurfaceGetPixelFormat();\n if ((((puVar37 != (undefined8 *)0x0) && (puVar36 != (undefined8 *)0x0)) &&\n (puVar40 != (undefined8 *)0x0)) &&\n (puVar41 = puVar28, _IOSurfaceLock(puVar28,0,0), (int)puVar41 == 0)) {\n puVar41 = puVar28;\n _IOSurfaceGetBaseAddress();\n if (puVar41 != (undefined8 *)0x0) {\n iVar14 = (int)puVar51;\n if (iVar14 == 0x42475241) {\n do {\n _memset_pattern16(puVar41,&DAT_100086050,(long)puVar37 << 2);\n puVar41 = (undefined8 *)((long)puVar41 + (long)puVar40);\n puVar36 = (undefined8 *)((long)puVar36 + -1);\n } while (puVar36 != (undefined8 *)0x0);\n }\n else if (iVar14 == 0x52476841) {\n puVar51 = (undefined8 *)0x0;\n puVar52 = puVar37;\n puVar57 = puVar41;\n do {\n do {\n *puVar41 = 0x3c00000000000000;\n puVar52 = (undefined8 *)((long)puVar52 + -1);\n puVar41 = puVar41 + 1;\n } while (puVar52 != (undefined8 *)0x0);\n puVar51 = (undefined8 *)((long)puVar51 + 1);\n puVar41 = (undefined8 *)((long)puVar57 + (long)puVar40);\n puVar52 = puVar37;\n puVar57 = puVar41;\n } while (puVar51 != puVar36);\n }\n else if (iVar14 == 0x52476641) {\n puVar51 = (undefined8 *)0x0;\n puVar52 = puVar37;\n puVar57 = puVar41;\n do {\n do {\n puVar41[1] = 0x3f80000000000000;\n *puVar41 = 0;\n puVar52 = (undefined8 *)((long)puVar52 + -1);\n puVar41 = puVar41 + 2;\n } while (puVar52 != (undefined8 *)0x0);\n puVar51 = (undefined8 *)((long)puVar51 + 1);\n puVar41 = (undefined8 *)((long)puVar57 + (long)puVar40);\n puVar52 = puVar37;\n puVar57 = puVar41;\n } while (puVar51 != puVar36);\n }\n else {\n _bzero(puVar41,(long)puVar40 * (long)puVar36);\n }\n }\n _IOSurfaceUnlock(puVar28,0,0);\n }\n }\n }\nLAB_1000288d0:\n objc_stub::length(0x1000ad040);\n }\n objc_stub::length(0x1000ac540);\n objc_stub::count(local_8e0);\n bVar11 = 1;\n goto LAB_1000288f4;\n }\n if (pIVar43 != (ID *)0x0) {\n pcVar30 = &cf_UnabletocreateCIContext;\n FUN_10001fb70();\n *pIVar43 = (ID)pcVar30;\n }\n objc_stub::length(0x1000ac540);\n }\n }\nLAB_1000283fc:\n bVar11 = 0;\nLAB_1000288f4:\n if (*(long *)PTR____stack_chk_guard_1000a80e8 != local_b8) {\n /* WARNING: Subroutine does not return */\n ___stack_chk_fail();\n }\n return bVar11;\n}\n\n" + }, + "subject": { + "architecture": "arm64", + "digest": { + "sha256": "afc71d0d21fd3c1ca95ca745ddafcd729e36ad95f17d8638009f2e45d9b7e8df" + }, + "format": "mach-o", + "local_path": "/Users/dayu/Documents/PaintFCP/build/body-analysis/MSE18V2-arm64", + "name": "MSE18V2-arm64" + } + }, + { + "analysis_profile": { + "digest": "20565088524a2d0359b9b96f46ac48e679d774c7b0092c56abc06de8fdbec11c", + "parameters": { + "analyzer_preset": "ghidra-default", + "annotation_policy": "atomic-function-entry-metadata-v1", + "architecture": "arm64", + "available_architectures": [ + "arm64" + ], + "compiler_spec_id": "auto-default", + "decompiler_jump_loads": true, + "function_body_evidence": "complete-inclusive-ranges-v1", + "function_boundary_observations": "ghidra-terminal-call-limitations-v1", + "function_references": "complete-body-and-entry-reference-manager-v2", + "import_mode": "ephemeral-source-immutable", + "instruction_flow_evidence": "decoded-return-pcode-v1", + "jump_table_evidence": "typed-case-default-blocks-v1", + "language_id": "auto-from-header", + "load_image_observations": "source-mappings-entry-context-v2", + "loader": "auto-from-header", + "location_resolution": "explicit-address-exact-entry-symbol-first-v3", + "no_return_repair": "returning-imports-decoded-return-v2", + "process_launch": "inspected-jvm-launch-support-v1", + "string_inventory_evidence": "defined-data-coverage-v1", + "target_format": "mach-o", + "target_kind": "executable" + }, + "provider": { + "id": "ghidra", + "name": "Ghidra", + "version": "12.1.4" + } + }, + "authority": "shipped-artifact", + "confidence": "observed", + "environment": null, + "evidence_id": "ev_32c23e32acb231021ba3538e459084cf5ff7f9fc782264bad900eb9a6d0fed38", + "evidence_links": [], + "limitations": [ + "The session serves operations only after Ghidra reports default auto-analysis complete; incomplete analysis does not expose partial results.", + "The imported Program and temporary project are ephemeral and deleted on close. Annotation operations edit session database metadata; original executable bytes are never written.", + "Cancelling an active Ghidra request terminates its ephemeral database and discards session annotations. The selected target remains open; the next provider query imports the original artifact again.", + "Default-space addresses use lowercase 0x-prefixed hexadecimal; other address spaces use :0x.", + "This fast path reads only the requested function and does not invoke the decompiler or whole-program string/name inventories.", + "Instruction text is Ghidra-specific and does not claim textual equivalence with Hopper output.", + "Ghidra Listing reports a terminal call at 0x10003e9c8 to 0x10007aca0 ___stack_chk_fail (external=false, thunk=true, hasNoReturn=true); fallthrough is excluded by Ghidra's flow model. This records Ghidra's FunctionManager flag, not an independent verification that the callee cannot return.", + "macOS sessions require a matching executable Ghidra native decompiler; REA checks for it but does not build native components or change Gatekeeper quarantine state." + ], + "locations": [], + "normalized_result": { + "instructions": [ + "0x10003d69c: stp d15, d14, [sp, #-0xa0]!", + "0x10003d6a0: stp d13, d12, [sp, #0x10]", + "0x10003d6a4: stp d11, d10, [sp, #0x20]", + "0x10003d6a8: stp d9, d8, [sp, #0x30]", + "0x10003d6ac: stp x28, x27, [sp, #0x40]", + "0x10003d6b0: stp x26, x25, [sp, #0x50]", + "0x10003d6b4: stp x24, x23, [sp, #0x60]", + "0x10003d6b8: stp x22, x21, [sp, #0x70]", + "0x10003d6bc: stp x20, x19, [sp, #0x80]", + "0x10003d6c0: stp x29, x30, [sp, #0x90]", + "0x10003d6c4: add x29, sp, #0x90", + "0x10003d6c8: sub sp, sp, #0x1f0", + "0x10003d6cc: mov x19, x7", + "0x10003d6d0: mov x23, x6", + "0x10003d6d4: fmov d8, d3", + "0x10003d6d8: fmov d9, d2", + "0x10003d6dc: fmov d10, d1", + "0x10003d6e0: fmov d11, d0", + "0x10003d6e4: mov x26, x5", + "0x10003d6e8: mov x24, x4", + "0x10003d6ec: mov x20, x3", + "0x10003d6f0: mov x22, x0", + "0x10003d6f4: adrp x8, 0x1000a8000", + "0x10003d6f8: ldr x8, [x8, #0xe8]", + "0x10003d6fc: ldr x8, [x8]", + "0x10003d700: stur x8, [x29, #-0xa0]", + "0x10003d704: mov x0, x2", + "0x10003d708: bl 0x10002a428", + "0x10003d70c: str x0, [sp, #0x88]", + "0x10003d710: cbz x24, 0x10003d730", + "0x10003d714: ldrb w8, [x24, #0xf8]", + "0x10003d718: str w8, [sp, #0x84]", + "0x10003d71c: ldr q0, [x24, #0x100]", + "0x10003d720: str q0, [sp, #0x70]", + "0x10003d724: ldr x8, [x24, #0x168]", + "0x10003d728: str x8, [sp, #0x38]", + "0x10003d72c: b 0x10003d740", + "0x10003d730: str wzr, [sp, #0x84]", + "0x10003d734: str xzr, [sp, #0x38]", + "0x10003d738: fmov v0.2D, #0x3fe0000000000000", + "0x10003d73c: str q0, [sp, #0x70]", + "0x10003d740: ldr x0, [x22, #0x28]", + "0x10003d744: bl 0x10007faa0", + "0x10003d748: ldrb w8, [x22, #0x3b0]", + "0x10003d74c: cmp w8, #0x1", + "0x10003d750: b.ne 0x10003d858", + "0x10003d754: mov x21, x19", + "0x10003d758: ldr w9, [x20, #0xc]", + "0x10003d75c: mov w8, #0x1d", + "0x10003d760: and w9, w9, w8", + "0x10003d764: cmp w9, #0x1", + "0x10003d768: b.ne 0x10003d7b8", + "0x10003d76c: ldr w9, [x22, #0x3a4]", + "0x10003d770: and w8, w9, w8", + "0x10003d774: cmp w8, #0x1", + "0x10003d778: b.ne 0x10003d7b8", + "0x10003d77c: add x19, x22, #0x398", + "0x10003d780: ldr q0, [x20]", + "0x10003d784: str q0, [sp, #0x160]", + "0x10003d788: ldr x8, [x20, #0x10]", + "0x10003d78c: str x8, [sp, #0x170]", + "0x10003d790: ldr q0, [x19]", + "0x10003d794: str q0, [sp, #0xd0]", + "0x10003d798: ldr x8, [x19, #0x10]", + "0x10003d79c: str x8, [sp, #0xe0]", + "0x10003d7a0: add x0, sp, #0x160", + "0x10003d7a4: add x1, sp, #0xd0", + "0x10003d7a8: bl 0x10007a9e8", + "0x10003d7ac: tbnz w0, #0x1f, 0x10003e45c", + "0x10003d7b0: ldrb w8, [x22, #0x3b0]", + "0x10003d7b4: tbz w8, #0x0, 0x10003d860", + "0x10003d7b8: ldr x0, [x22, #0x370]", + "0x10003d7bc: bl 0x10007d560", + "0x10003d7c0: cmp x0, #0x4d", + "0x10003d7c4: b.cc 0x10003d860", + "0x10003d7c8: ldr d12, [x22, #0x378]", + "0x10003d7cc: ldr d13, [x22, #0x380]", + "0x10003d7d0: ldr d14, [x22, #0x388]", + "0x10003d7d4: ldr d15, [x22, #0x390]", + "0x10003d7d8: fmov d0, d12", + "0x10003d7dc: fmov d1, d13", + "0x10003d7e0: fmov d2, d14", + "0x10003d7e4: fmov d3, d15", + "0x10003d7e8: bl 0x10007a9d0", + "0x10003d7ec: tbnz w0, #0x0, 0x10003d860", + "0x10003d7f0: fmov d0, d12", + "0x10003d7f4: fmov d1, d13", + "0x10003d7f8: fmov d2, d14", + "0x10003d7fc: fmov d3, d15", + "0x10003d800: bl 0x10007a9b8", + "0x10003d804: tbnz w0, #0x0, 0x10003d860", + "0x10003d808: fmov d0, d12", + "0x10003d80c: fmov d1, d13", + "0x10003d810: fmov d2, d14", + "0x10003d814: fmov d3, d15", + "0x10003d818: bl 0x10007a988", + "0x10003d81c: mov x8, #0x3cb0000000000000", + "0x10003d820: fmov d1, x8", + "0x10003d824: fcmp d0, d1", + "0x10003d828: b.le 0x10003d860", + "0x10003d82c: fmov d0, d12", + "0x10003d830: fmov d1, d13", + "0x10003d834: fmov d2, d14", + "0x10003d838: fmov d3, d15", + "0x10003d83c: bl 0x10007a934", + "0x10003d840: mov x8, #0x3cb0000000000000", + "0x10003d844: fmov d1, x8", + "0x10003d848: fcmp d0, d1", + "0x10003d84c: cset w8, gt", + "0x10003d850: str w8, [sp, #0x4c]", + "0x10003d854: b 0x10003d864", + "0x10003d858: str wzr, [sp, #0x4c]", + "0x10003d85c: b 0x10003d868", + "0x10003d860: str wzr, [sp, #0x4c]", + "0x10003d864: mov x19, x21", + "0x10003d868: adrp x8, 0x1000a8000", + "0x10003d86c: ldr x8, [x8, #0x148]", + "0x10003d870: ldp d1, d0, [x8]", + "0x10003d874: stp d0, d1, [sp, #0xc0]", + "0x10003d878: ldp d1, d0, [x8, #0x10]", + "0x10003d87c: stp d0, d1, [sp, #0xb0]", + "0x10003d880: ldr d0, [x22, #0x3b8]", + "0x10003d884: ldr q2, [sp, #0x70]", + "0x10003d888: fsub d0, d2, d0", + "0x10003d88c: ldr d1, [x22, #0x3c0]", + "0x10003d890: dup d2, v2.D[0x1]", + "0x10003d894: str d2, [sp, #0x10]", + "0x10003d898: fsub d1, d2, d1", + "0x10003d89c: bl 0x10007ad84", + "0x10003d8a0: ldr w8, [sp, #0x84]", + "0x10003d8a4: str x19, [sp, #0x40]", + "0x10003d8a8: tbz w8, #0x0, 0x10003d92c", + "0x10003d8ac: ldrb w8, [x22, #0x3b1]", + "0x10003d8b0: cmp w8, #0x1", + "0x10003d8b4: b.ne 0x10003d8f8", + "0x10003d8b8: ldr x8, [sp, #0x38]", + "0x10003d8bc: cmp x8, #0x1", + "0x10003d8c0: b.lt 0x10003d8d4", + "0x10003d8c4: ldr x8, [x22, #0x3c8]", + "0x10003d8c8: ldr x9, [sp, #0x38]", + "0x10003d8cc: cmp x9, x8", + "0x10003d8d0: b.gt 0x10003d8f8", + "0x10003d8d4: fmov x8, d0", + "0x10003d8d8: and x8, x8, #0x7fffffffffffffff", + "0x10003d8dc: mov x9, #0x7fefffffffffffff", + "0x10003d8e0: cmp x8, x9", + "0x10003d8e4: b.gt 0x10003d92c", + "0x10003d8e8: adrp x8, 0x100086000", + "0x10003d8ec: ldr d1, [x8, #0x440]", + "0x10003d8f0: fcmp d0, d1", + "0x10003d8f4: b.le 0x10003d92c", + "0x10003d8f8: ldr q0, [x20]", + "0x10003d8fc: str q0, [sp, #0x160]", + "0x10003d900: ldr x8, [x20, #0x10]", + "0x10003d904: str x8, [sp, #0x170]", + "0x10003d908: add x3, sp, #0x160", + "0x10003d90c: mov x0, x22", + "0x10003d910: mov x2, #0x0", + "0x10003d914: mov x4, #0x0", + "0x10003d918: mov w5, #0x0", + "0x10003d91c: bl 0x100083460", + "0x10003d920: mov w27, #0x0", + "0x10003d924: mov w21, #0x1", + "0x10003d928: b 0x10003da08", + "0x10003d92c: cbz x26, 0x10003da00", + "0x10003d930: ldr q0, [x20]", + "0x10003d934: str q0, [sp, #0x160]", + "0x10003d938: ldr x8, [x20, #0x10]", + "0x10003d93c: str x8, [sp, #0x170]", + "0x10003d940: add x3, sp, #0x160", + "0x10003d944: mov x0, x22", + "0x10003d948: mov x2, x26", + "0x10003d94c: mov x4, #0x0", + "0x10003d950: mov w5, #0x1", + "0x10003d954: bl 0x100083460", + "0x10003d958: bl 0x10002d838", + "0x10003d95c: stp d1, d0, [sp, #0xa0]", + "0x10003d960: stp d3, d2, [sp, #0x90]", + "0x10003d964: ldp d1, d0, [sp, #0xa0]", + "0x10003d968: ldp d3, d2, [sp, #0x90]", + "0x10003d96c: bl 0x10007a9d0", + "0x10003d970: tbnz w0, #0x0, 0x10003d9c8", + "0x10003d974: ldp d1, d0, [sp, #0xa0]", + "0x10003d978: ldp d3, d2, [sp, #0x90]", + "0x10003d97c: bl 0x10007a9b8", + "0x10003d980: tbnz w0, #0x0, 0x10003d9c8", + "0x10003d984: ldp d1, d0, [sp, #0xa0]", + "0x10003d988: ldp d3, d2, [sp, #0x90]", + "0x10003d98c: bl 0x10007a988", + "0x10003d990: mov x8, #0x3cb0000000000000", + "0x10003d994: fmov d1, x8", + "0x10003d998: fcmp d0, d1", + "0x10003d99c: b.le 0x10003d9c8", + "0x10003d9a0: ldp d1, d0, [sp, #0xa0]", + "0x10003d9a4: ldp d3, d2, [sp, #0x90]", + "0x10003d9a8: bl 0x10007a934", + "0x10003d9ac: mov w21, #0x0", + "0x10003d9b0: mov x8, #0x3cb0000000000000", + "0x10003d9b4: fmov d1, x8", + "0x10003d9b8: fcmp d0, d1", + "0x10003d9bc: cset w27, gt", + "0x10003d9c0: cbz w23, 0x10003d9d4", + "0x10003d9c4: b 0x10003da1c", + "0x10003d9c8: mov w21, #0x0", + "0x10003d9cc: mov w27, #0x0", + "0x10003d9d0: cbnz w23, 0x10003da1c", + "0x10003d9d4: ldr d11, [x22, #0x378]", + "0x10003d9d8: ldr d10, [x22, #0x380]", + "0x10003d9dc: ldr d9, [x22, #0x388]", + "0x10003d9e0: ldr d8, [x22, #0x390]", + "0x10003d9e4: ldr w8, [sp, #0x4c]", + "0x10003d9e8: cbz w8, 0x10003db3c", + "0x10003d9ec: fmov d13, d8", + "0x10003d9f0: fmov d14, d9", + "0x10003d9f4: fmov d15, d10", + "0x10003d9f8: fmov d12, d11", + "0x10003d9fc: b 0x10003dac0", + "0x10003da00: mov w21, #0x0", + "0x10003da04: mov w27, #0x0", + "0x10003da08: ldp d0, d1, [sp, #0xc0]", + "0x10003da0c: stp d0, d1, [sp, #0xa0]", + "0x10003da10: ldp d0, d1, [sp, #0xb0]", + "0x10003da14: stp d0, d1, [sp, #0x90]", + "0x10003da18: cbz w23, 0x10003d9d4", + "0x10003da1c: fmov d0, d11", + "0x10003da20: fmov d1, d10", + "0x10003da24: fmov d2, d9", + "0x10003da28: fmov d3, d8", + "0x10003da2c: bl 0x10007a9d0", + "0x10003da30: tbnz w0, #0x0, 0x10003da9c", + "0x10003da34: fmov d0, d11", + "0x10003da38: fmov d1, d10", + "0x10003da3c: fmov d2, d9", + "0x10003da40: fmov d3, d8", + "0x10003da44: bl 0x10007a9b8", + "0x10003da48: tbnz w0, #0x0, 0x10003da9c", + "0x10003da4c: fmov d0, d11", + "0x10003da50: fmov d1, d10", + "0x10003da54: fmov d2, d9", + "0x10003da58: fmov d3, d8", + "0x10003da5c: bl 0x10007a988", + "0x10003da60: mov x8, #0x3cb0000000000000", + "0x10003da64: fmov d1, x8", + "0x10003da68: fcmp d0, d1", + "0x10003da6c: b.le 0x10003da9c", + "0x10003da70: fmov d0, d11", + "0x10003da74: fmov d1, d10", + "0x10003da78: fmov d2, d9", + "0x10003da7c: fmov d3, d8", + "0x10003da80: bl 0x10007a934", + "0x10003da84: mov x8, #0x3cb0000000000000", + "0x10003da88: fmov d1, x8", + "0x10003da8c: fcmp d0, d1", + "0x10003da90: cset w28, gt", + "0x10003da94: tbz w28, #0x0, 0x10003daa4", + "0x10003da98: b 0x10003db40", + "0x10003da9c: mov w28, #0x0", + "0x10003daa0: tbnz w28, #0x0, 0x10003db40", + "0x10003daa4: ldr w8, [sp, #0x4c]", + "0x10003daa8: eor w8, w8, #0x1", + "0x10003daac: tbnz w8, #0x0, 0x10003db40", + "0x10003dab0: ldr d12, [x22, #0x378]", + "0x10003dab4: ldr d15, [x22, #0x380]", + "0x10003dab8: ldr d14, [x22, #0x388]", + "0x10003dabc: ldr d13, [x22, #0x390]", + "0x10003dac0: fmov d0, d12", + "0x10003dac4: fmov d1, d15", + "0x10003dac8: fmov d2, d14", + "0x10003dacc: fmov d3, d13", + "0x10003dad0: bl 0x10007a9d0", + "0x10003dad4: tbnz w0, #0x0, 0x10003db3c", + "0x10003dad8: fmov d0, d12", + "0x10003dadc: fmov d1, d15", + "0x10003dae0: fmov d2, d14", + "0x10003dae4: fmov d3, d13", + "0x10003dae8: bl 0x10007a9b8", + "0x10003daec: tbnz w0, #0x0, 0x10003db3c", + "0x10003daf0: fmov d0, d12", + "0x10003daf4: fmov d1, d15", + "0x10003daf8: fmov d2, d14", + "0x10003dafc: fmov d3, d13", + "0x10003db00: bl 0x10007a988", + "0x10003db04: mov x8, #0x3cb0000000000000", + "0x10003db08: fmov d1, x8", + "0x10003db0c: fcmp d0, d1", + "0x10003db10: b.le 0x10003db3c", + "0x10003db14: fmov d0, d12", + "0x10003db18: fmov d1, d15", + "0x10003db1c: fmov d2, d14", + "0x10003db20: fmov d3, d13", + "0x10003db24: bl 0x10007a934", + "0x10003db28: mov x8, #0x3cb0000000000000", + "0x10003db2c: fmov d1, x8", + "0x10003db30: fcmp d0, d1", + "0x10003db34: cset w28, gt", + "0x10003db38: b 0x10003db40", + "0x10003db3c: mov w28, #0x0", + "0x10003db40: cmp w27, #0x0", + "0x10003db44: ldr d0, [sp, #0x90]", + "0x10003db48: fcsel d1, d0, d8, ne", + "0x10003db4c: ldr d0, [sp, #0x98]", + "0x10003db50: fcsel d0, d0, d9, ne", + "0x10003db54: stp d0, d1, [sp, #0x28]", + "0x10003db58: ldr d0, [sp, #0xa0]", + "0x10003db5c: fcsel d1, d0, d10, ne", + "0x10003db60: eor w8, w28, #0x1", + "0x10003db64: orr w8, w21, w8", + "0x10003db68: ldp d0, d2, [sp, #0xa8]", + "0x10003db6c: fcsel d0, d0, d11, ne", + "0x10003db70: stp d0, d1, [sp, #0x18]", + "0x10003db74: ldp d1, d3, [sp, #0xb8]", + "0x10003db78: stp d1, d2, [sp, #0x60]", + "0x10003db7c: ldr d0, [sp, #0xc8]", + "0x10003db80: stp d0, d3, [sp, #0x50]", + "0x10003db84: ldr x23, [sp, #0x88]", + "0x10003db88: tbnz w8, #0x0, 0x10003de3c", + "0x10003db8c: cbz x24, 0x10003db98", + "0x10003db90: ldr d12, [x24, #0xf0]", + "0x10003db94: b 0x10003db9c", + "0x10003db98: fmov d12, 0x3ff8000000000000", + "0x10003db9c: ldr x0, [sp, #0x88]", + "0x10003dba0: bl 0x10007d560", + "0x10003dba4: cbz x0, 0x10003de20", + "0x10003dba8: fmov d0, d11", + "0x10003dbac: fmov d1, d10", + "0x10003dbb0: fmov d2, d9", + "0x10003dbb4: fmov d3, d8", + "0x10003dbb8: bl 0x10007a9d0", + "0x10003dbbc: tbnz w0, #0x0, 0x10003de20", + "0x10003dbc0: fmov d0, d11", + "0x10003dbc4: fmov d1, d10", + "0x10003dbc8: fmov d2, d9", + "0x10003dbcc: fmov d3, d8", + "0x10003dbd0: bl 0x10007a9b8", + "0x10003dbd4: tbnz w0, #0x0, 0x10003de20", + "0x10003dbd8: fmov d0, d11", + "0x10003dbdc: fmov d1, d10", + "0x10003dbe0: fmov d2, d9", + "0x10003dbe4: fmov d3, d8", + "0x10003dbe8: bl 0x10007a988", + "0x10003dbec: mov x8, #0x3cb0000000000000", + "0x10003dbf0: fmov d1, x8", + "0x10003dbf4: fcmp d0, d1", + "0x10003dbf8: b.le 0x10003de20", + "0x10003dbfc: fmov d0, d11", + "0x10003dc00: fmov d1, d10", + "0x10003dc04: fmov d2, d9", + "0x10003dc08: fmov d3, d8", + "0x10003dc0c: bl 0x10007a934", + "0x10003dc10: mov x8, #0x3cb0000000000000", + "0x10003dc14: fmov d1, x8", + "0x10003dc18: fcmp d0, d1", + "0x10003dc1c: b.le 0x10003de20", + "0x10003dc20: fmov d0, 0x4010000000000000", + "0x10003dc24: fcmp d12, d0", + "0x10003dc28: fcsel d0, d0, d12, gt", + "0x10003dc2c: fmov d1, 0x3ff0000000000000", + "0x10003dc30: fcmp d12, d1", + "0x10003dc34: fcsel d4, d1, d0, mi", + "0x10003dc38: fmov d0, d11", + "0x10003dc3c: fmov d1, d10", + "0x10003dc40: fmov d2, d9", + "0x10003dc44: fmov d3, d8", + "0x10003dc48: bl 0x10002c6b8", + "0x10003dc4c: stp d0, d1, [sp, #0x50]", + "0x10003dc50: stp d2, d3, [sp, #0x60]", + "0x10003dc54: ldp d0, d1, [sp, #0x50]", + "0x10003dc58: ldp d2, d3, [sp, #0x60]", + "0x10003dc5c: bl 0x10007a9d0", + "0x10003dc60: tbnz w0, #0x0, 0x10003e4a4", + "0x10003dc64: ldp d0, d1, [sp, #0x50]", + "0x10003dc68: ldp d2, d3, [sp, #0x60]", + "0x10003dc6c: bl 0x10007a9b8", + "0x10003dc70: tbnz w0, #0x0, 0x10003e4a4", + "0x10003dc74: ldp d0, d1, [sp, #0x50]", + "0x10003dc78: ldp d2, d3, [sp, #0x60]", + "0x10003dc7c: bl 0x10007a988", + "0x10003dc80: mov x8, #0x3cb0000000000000", + "0x10003dc84: fmov d1, x8", + "0x10003dc88: fcmp d0, d1", + "0x10003dc8c: b.le 0x10003e4a4", + "0x10003dc90: ldp d0, d1, [sp, #0x50]", + "0x10003dc94: ldp d2, d3, [sp, #0x60]", + "0x10003dc98: bl 0x10007a934", + "0x10003dc9c: mov x8, #0x3cb0000000000000", + "0x10003dca0: fmov d1, x8", + "0x10003dca4: fcmp d0, d1", + "0x10003dca8: b.le 0x10003e4a4", + "0x10003dcac: adrp x8, 0x1000bb000", + "0x10003dcb0: ldr x0, [x8, #0xa00]", + "0x10003dcb4: bl 0x10007cc80", + "0x10003dcb8: str x0, [sp, #0x8]", + "0x10003dcbc: movi v0.2D, #0x0", + "0x10003dcc0: stp q0, q0, [sp, #0xf0]", + "0x10003dcc4: stp q0, q0, [sp, #0xd0]", + "0x10003dcc8: add x2, sp, #0xd0", + "0x10003dccc: add x3, sp, #0x160", + "0x10003dcd0: ldr x0, [sp, #0x88]", + "0x10003dcd4: mov w4, #0x10", + "0x10003dcd8: bl 0x10007d580", + "0x10003dcdc: mov x24, x0", + "0x10003dce0: cbz x0, 0x10003de08", + "0x10003dce4: ldr x8, [sp, #0xe0]", + "0x10003dce8: ldr x23, [x8]", + "0x10003dcec: mov x19, #0x0", + "0x10003dcf0: ldr x8, [sp, #0xe0]", + "0x10003dcf4: ldr x8, [x8]", + "0x10003dcf8: cmp x8, x23", + "0x10003dcfc: b.eq 0x10003dd08", + "0x10003dd00: ldr x0, [sp, #0x88]", + "0x10003dd04: bl 0x10007ae2c", + "0x10003dd08: ldr x8, [sp, #0xd8]", + "0x10003dd0c: ldr x25, [x8, x19, LSL #0x3]", + "0x10003dd10: mov x0, x25", + "0x10003dd14: bl 0x100029d20", + "0x10003dd18: fmov d12, d0", + "0x10003dd1c: fmov d13, d1", + "0x10003dd20: fmov d14, d2", + "0x10003dd24: fmov d15, d3", + "0x10003dd28: bl 0x10007a9d0", + "0x10003dd2c: tbnz w0, #0x0, 0x10003dde0", + "0x10003dd30: fmov d0, d12", + "0x10003dd34: fmov d1, d13", + "0x10003dd38: fmov d2, d14", + "0x10003dd3c: fmov d3, d15", + "0x10003dd40: bl 0x10007a9b8", + "0x10003dd44: tbnz w0, #0x0, 0x10003dde0", + "0x10003dd48: fmov d0, d12", + "0x10003dd4c: fmov d1, d13", + "0x10003dd50: fmov d2, d14", + "0x10003dd54: fmov d3, d15", + "0x10003dd58: bl 0x10007a988", + "0x10003dd5c: mov x8, #0x3cb0000000000000", + "0x10003dd60: fmov d1, x8", + "0x10003dd64: fcmp d0, d1", + "0x10003dd68: b.le 0x10003dde0", + "0x10003dd6c: fmov d0, d12", + "0x10003dd70: fmov d1, d13", + "0x10003dd74: fmov d2, d14", + "0x10003dd78: fmov d3, d15", + "0x10003dd7c: bl 0x10007a934", + "0x10003dd80: mov x8, #0x3cb0000000000000", + "0x10003dd84: fmov d1, x8", + "0x10003dd88: fcmp d0, d1", + "0x10003dd8c: b.le 0x10003dde0", + "0x10003dd90: fmov d0, d12", + "0x10003dd94: fmov d1, d13", + "0x10003dd98: fmov d2, d14", + "0x10003dd9c: fmov d3, d15", + "0x10003dda0: bl 0x10007a958", + "0x10003dda4: fmov d8, d0", + "0x10003dda8: fmov d0, d12", + "0x10003ddac: fmov d1, d13", + "0x10003ddb0: fmov d2, d14", + "0x10003ddb4: fmov d3, d15", + "0x10003ddb8: bl 0x10007a964", + "0x10003ddbc: fmov d5, d0", + "0x10003ddc0: ldp d0, d1, [sp, #0x50]", + "0x10003ddc4: ldp d2, d3, [sp, #0x60]", + "0x10003ddc8: fmov d4, d8", + "0x10003ddcc: bl 0x10007a910", + "0x10003ddd0: cbz w0, 0x10003dde0", + "0x10003ddd4: ldr x0, [sp, #0x8]", + "0x10003ddd8: mov x2, x25", + "0x10003dddc: bl 0x10007ca00", + "0x10003dde0: add x19, x19, #0x1", + "0x10003dde4: cmp x24, x19", + "0x10003dde8: b.ne 0x10003dcf0", + "0x10003ddec: add x2, sp, #0xd0", + "0x10003ddf0: add x3, sp, #0x160", + "0x10003ddf4: ldr x0, [sp, #0x88]", + "0x10003ddf8: mov w4, #0x10", + "0x10003ddfc: bl 0x10007d580", + "0x10003de00: mov x24, x0", + "0x10003de04: cbnz x0, 0x10003dcec", + "0x10003de08: ldr x0, [sp, #0x8]", + "0x10003de0c: bl 0x10007d560", + "0x10003de10: cmp x0, #0x0", + "0x10003de14: ldr x8, [sp, #0x8]", + "0x10003de18: csel x23, xzr, x8, eq", + "0x10003de1c: b 0x10003de34", + "0x10003de20: mov x23, #0x0", + "0x10003de24: ldp d1, d0, [sp, #0xb0]", + "0x10003de28: stp d0, d1, [sp, #0x60]", + "0x10003de2c: ldp d1, d0, [sp, #0xc0]", + "0x10003de30: stp d0, d1, [sp, #0x50]", + "0x10003de34: mov x0, x23", + "0x10003de38: bl 0x10007d560", + "0x10003de3c: mov x0, x23", + "0x10003de40: bl 0x10007d560", + "0x10003de44: cbz x0, 0x10003e040", + "0x10003de48: ldr w8, [sp, #0x84]", + "0x10003de4c: and w8, w8, w21", + "0x10003de50: cmp w8, #0x1", + "0x10003de54: b.ne 0x10003de78", + "0x10003de58: mov x0, x23", + "0x10003de5c: ldr q0, [sp, #0x70]", + "0x10003de60: ldr d1, [sp, #0x10]", + "0x10003de64: ldp d3, d2, [sp, #0xc0]", + "0x10003de68: ldp d5, d4, [sp, #0xb0]", + "0x10003de6c: mov w1, #0x0", + "0x10003de70: bl 0x10003ec44", + "0x10003de74: b 0x10003def4", + "0x10003de78: orr w8, w27, w28", + "0x10003de7c: cbz w8, 0x10003debc", + "0x10003de80: ldp d0, d1, [sp, #0x18]", + "0x10003de84: ldp d2, d3, [sp, #0x28]", + "0x10003de88: bl 0x10007a958", + "0x10003de8c: fmov d8, d0", + "0x10003de90: ldp d0, d1, [sp, #0x18]", + "0x10003de94: ldp d2, d3, [sp, #0x28]", + "0x10003de98: bl 0x10007a964", + "0x10003de9c: fmov d1, d0", + "0x10003dea0: mov x0, x23", + "0x10003dea4: fmov d0, d8", + "0x10003dea8: ldp d2, d3, [sp, #0x18]", + "0x10003deac: ldp d4, d5, [sp, #0x28]", + "0x10003deb0: mov w1, #0x1", + "0x10003deb4: bl 0x10003ec44", + "0x10003deb8: b 0x10003def4", + "0x10003debc: ldr w8, [sp, #0x84]", + "0x10003dec0: tbz w8, #0x0, 0x10003dee4", + "0x10003dec4: mov x0, x23", + "0x10003dec8: ldr q0, [sp, #0x70]", + "0x10003decc: ldr d1, [sp, #0x10]", + "0x10003ded0: ldp d3, d2, [sp, #0xc0]", + "0x10003ded4: ldp d5, d4, [sp, #0xb0]", + "0x10003ded8: mov w1, #0x0", + "0x10003dedc: bl 0x10003ec44", + "0x10003dee0: b 0x10003def4", + "0x10003dee4: mov x0, x23", + "0x10003dee8: ldp d1, d0, [sp, #0xc0]", + "0x10003deec: ldp d3, d2, [sp, #0xb0]", + "0x10003def0: bl 0x10003f020", + "0x10003def4: mov x24, x0", + "0x10003def8: bl 0x100029a00", + "0x10003defc: mov x25, x0", + "0x10003df00: mov x0, x24", + "0x10003df04: bl 0x100029d20", + "0x10003df08: fmov d15, d0", + "0x10003df0c: fmov d14, d1", + "0x10003df10: fmov d13, d2", + "0x10003df14: fmov d12, d3", + "0x10003df18: mov x0, x25", + "0x10003df1c: bl 0x10007d560", + "0x10003df20: cmp x0, #0x4d", + "0x10003df24: b.cc 0x10003e040", + "0x10003df28: fmov d0, d15", + "0x10003df2c: fmov d1, d14", + "0x10003df30: fmov d2, d13", + "0x10003df34: fmov d3, d12", + "0x10003df38: bl 0x10007a9d0", + "0x10003df3c: tbnz w0, #0x0, 0x10003e040", + "0x10003df40: fmov d0, d15", + "0x10003df44: fmov d1, d14", + "0x10003df48: fmov d2, d13", + "0x10003df4c: fmov d3, d12", + "0x10003df50: bl 0x10007a9b8", + "0x10003df54: tbnz w0, #0x0, 0x10003e040", + "0x10003df58: fmov d0, d15", + "0x10003df5c: fmov d1, d14", + "0x10003df60: fmov d2, d13", + "0x10003df64: fmov d3, d12", + "0x10003df68: bl 0x10007a988", + "0x10003df6c: mov x8, #0x3cb0000000000000", + "0x10003df70: fmov d1, x8", + "0x10003df74: fcmp d0, d1", + "0x10003df78: b.le 0x10003e040", + "0x10003df7c: fmov d0, d15", + "0x10003df80: fmov d1, d14", + "0x10003df84: fmov d2, d13", + "0x10003df88: fmov d3, d12", + "0x10003df8c: bl 0x10007a934", + "0x10003df90: mov x8, #0x3cb0000000000000", + "0x10003df94: fmov d1, x8", + "0x10003df98: fcmp d0, d1", + "0x10003df9c: b.le 0x10003e040", + "0x10003dfa0: cbz x26, 0x10003e050", + "0x10003dfa4: cbz x24, 0x10003e050", + "0x10003dfa8: eor w8, w27, #0x1", + "0x10003dfac: cbz w8, 0x10003e050", + "0x10003dfb0: ldr q0, [x20]", + "0x10003dfb4: str q0, [sp, #0x160]", + "0x10003dfb8: ldr x8, [x20, #0x10]", + "0x10003dfbc: str x8, [sp, #0x170]", + "0x10003dfc0: add x3, sp, #0x160", + "0x10003dfc4: mov x0, x22", + "0x10003dfc8: mov x2, x26", + "0x10003dfcc: mov x4, x24", + "0x10003dfd0: mov w5, #0x1", + "0x10003dfd4: bl 0x100083460", + "0x10003dfd8: bl 0x10002d838", + "0x10003dfdc: stp d1, d0, [sp, #0xa0]", + "0x10003dfe0: stp d3, d2, [sp, #0x90]", + "0x10003dfe4: ldp d1, d0, [sp, #0xa0]", + "0x10003dfe8: ldp d3, d2, [sp, #0x90]", + "0x10003dfec: bl 0x10007a9d0", + "0x10003dff0: tbnz w0, #0x0, 0x10003e4ac", + "0x10003dff4: ldp d1, d0, [sp, #0xa0]", + "0x10003dff8: ldp d3, d2, [sp, #0x90]", + "0x10003dffc: bl 0x10007a9b8", + "0x10003e000: tbnz w0, #0x0, 0x10003e4ac", + "0x10003e004: ldp d1, d0, [sp, #0xa0]", + "0x10003e008: ldp d3, d2, [sp, #0x90]", + "0x10003e00c: bl 0x10007a988", + "0x10003e010: mov x8, #0x3cb0000000000000", + "0x10003e014: fmov d1, x8", + "0x10003e018: fcmp d0, d1", + "0x10003e01c: b.le 0x10003e4ac", + "0x10003e020: ldp d1, d0, [sp, #0xa0]", + "0x10003e024: ldp d3, d2, [sp, #0x90]", + "0x10003e028: bl 0x10007a934", + "0x10003e02c: mov x8, #0x3cb0000000000000", + "0x10003e030: fmov d1, x8", + "0x10003e034: fcmp d0, d1", + "0x10003e038: cset w27, gt", + "0x10003e03c: b 0x10003e050", + "0x10003e040: mov x24, #0x0", + "0x10003e044: mov x25, #0x0", + "0x10003e048: ldp d12, d13, [sp, #0xb0]", + "0x10003e04c: ldp d14, d15, [sp, #0xc0]", + "0x10003e050: mov x0, x25", + "0x10003e054: bl 0x10007d560", + "0x10003e058: cmp x0, #0x4d", + "0x10003e05c: b.cc 0x10003e130", + "0x10003e060: fmov d0, d15", + "0x10003e064: fmov d1, d14", + "0x10003e068: fmov d2, d13", + "0x10003e06c: fmov d3, d12", + "0x10003e070: bl 0x10007a9d0", + "0x10003e074: tbnz w0, #0x0, 0x10003e130", + "0x10003e078: fmov d0, d15", + "0x10003e07c: fmov d1, d14", + "0x10003e080: fmov d2, d13", + "0x10003e084: fmov d3, d12", + "0x10003e088: bl 0x10007a9b8", + "0x10003e08c: tbnz w0, #0x0, 0x10003e130", + "0x10003e090: fmov d0, d15", + "0x10003e094: fmov d1, d14", + "0x10003e098: fmov d2, d13", + "0x10003e09c: fmov d3, d12", + "0x10003e0a0: bl 0x10007a988", + "0x10003e0a4: mov x8, #0x3cb0000000000000", + "0x10003e0a8: fmov d1, x8", + "0x10003e0ac: fcmp d0, d1", + "0x10003e0b0: b.le 0x10003e130", + "0x10003e0b4: fmov d0, d15", + "0x10003e0b8: fmov d1, d14", + "0x10003e0bc: fmov d2, d13", + "0x10003e0c0: fmov d3, d12", + "0x10003e0c4: bl 0x10007a934", + "0x10003e0c8: mov x8, #0x3cb0000000000000", + "0x10003e0cc: fmov d1, x8", + "0x10003e0d0: fcmp d0, d1", + "0x10003e0d4: b.le 0x10003e130", + "0x10003e0d8: mov x0, x24", + "0x10003e0dc: bl 0x10007f900", + "0x10003e0e0: mov x26, x0", + "0x10003e0e4: bl 0x10007cae0", + "0x10003e0e8: mov x19, x0", + "0x10003e0ec: mov x0, x26", + "0x10003e0f0: bl 0x10007e060", + "0x10003e0f4: cbz x24, 0x10003e130", + "0x10003e0f8: cbz x26, 0x10003e130", + "0x10003e0fc: cbz x19, 0x10003e130", + "0x10003e100: mov x28, x0", + "0x10003e104: mov x0, x19", + "0x10003e108: bl 0x1000806c0", + "0x10003e10c: cmp x0, #0x4c", + "0x10003e110: b.cc 0x10003e130", + "0x10003e114: mov x0, x19", + "0x10003e118: bl 0x1000801c0", + "0x10003e11c: cbz x0, 0x10003e130", + "0x10003e120: mov x0, x28", + "0x10003e124: bl 0x1000806c0", + "0x10003e128: cmp x0, #0xa", + "0x10003e12c: b.hi 0x10003e4b4", + "0x10003e130: mov w26, #0x0", + "0x10003e134: ldr w8, [sp, #0x84]", + "0x10003e138: tbz w8, #0x0, 0x10003e178", + "0x10003e13c: add x8, x22, #0x3b8", + "0x10003e140: ldr q3, [sp, #0x70]", + "0x10003e144: fcmlt v0.2D, v3.2D", + "0x10003e148: fmov v1.2D, #0x3ff0000000000000", + "0x10003e14c: fcmgt v2.2D, v3.2D, v1.2D", + "0x10003e150: bif v1.16B, v3.16B, v2.16B", + "0x10003e154: bic v0.16B, v1.16B, v0.16B", + "0x10003e158: str q0, [x8]", + "0x10003e15c: ldr x8, [x22, #0x3c8]", + "0x10003e160: ldr x9, [sp, #0x38]", + "0x10003e164: cmp x9, x8", + "0x10003e168: csel x8, x9, x8, gt", + "0x10003e16c: str x8, [x22, #0x3c8]", + "0x10003e170: mov w8, #0x1", + "0x10003e174: b 0x10003e17c", + "0x10003e178: mov w8, #0x0", + "0x10003e17c: strb w8, [x22, #0x3b1]", + "0x10003e180: cbz w26, 0x10003e200", + "0x10003e184: ldr x0, [x22, #0x370]", + "0x10003e188: bl 0x10007ae98", + "0x10003e18c: mov x0, x25", + "0x10003e190: bl 0x10007d520", + "0x10003e194: add x8, x22, #0x370", + "0x10003e198: str x0, [x8]", + "0x10003e19c: str d15, [x22, #0x378]", + "0x10003e1a0: str d14, [x22, #0x380]", + "0x10003e1a4: str d13, [x22, #0x388]", + "0x10003e1a8: str d12, [x22, #0x390]", + "0x10003e1ac: add x8, x22, #0x398", + "0x10003e1b0: ldr q0, [x20]", + "0x10003e1b4: ldr x9, [x20, #0x10]", + "0x10003e1b8: str x9, [x22, #0x3a8]", + "0x10003e1bc: str q0, [x8]", + "0x10003e1c0: mov w8, #0x1", + "0x10003e1c4: strb w8, [x22, #0x3b0]", + "0x10003e1c8: bl 0x10007aea4", + "0x10003e1cc: mov x25, x0", + "0x10003e1d0: mov w19, #0x0", + "0x10003e1d4: add x8, x22, #0x378", + "0x10003e1d8: add x9, x22, #0x380", + "0x10003e1dc: add x10, x22, #0x388", + "0x10003e1e0: add x11, x22, #0x390", + "0x10003e1e4: ldr d1, [x8]", + "0x10003e1e8: ldr d0, [x9]", + "0x10003e1ec: stp d0, d1, [sp, #0xc0]", + "0x10003e1f0: ldr d0, [x10]", + "0x10003e1f4: str d0, [sp, #0xb8]", + "0x10003e1f8: ldr d0, [x11]", + "0x10003e1fc: b 0x10003e338", + "0x10003e200: ldr w8, [sp, #0x4c]", + "0x10003e204: cbz w8, 0x10003e304", + "0x10003e208: ldp d7, d6, [sp, #0x90]", + "0x10003e20c: ldp d5, d4, [sp, #0xa0]", + "0x10003e210: tbnz w27, #0x0, 0x10003e2ac", + "0x10003e214: fmov d0, d15", + "0x10003e218: fmov d1, d14", + "0x10003e21c: fmov d2, d13", + "0x10003e220: fmov d3, d12", + "0x10003e224: bl 0x10007a9d0", + "0x10003e228: tbnz w0, #0x0, 0x10003e29c", + "0x10003e22c: fmov d0, d15", + "0x10003e230: fmov d1, d14", + "0x10003e234: fmov d2, d13", + "0x10003e238: fmov d3, d12", + "0x10003e23c: bl 0x10007a9b8", + "0x10003e240: tbnz w0, #0x0, 0x10003e29c", + "0x10003e244: fmov d0, d15", + "0x10003e248: fmov d1, d14", + "0x10003e24c: fmov d2, d13", + "0x10003e250: fmov d3, d12", + "0x10003e254: bl 0x10007a988", + "0x10003e258: mov x8, #0x3cb0000000000000", + "0x10003e25c: fmov d1, x8", + "0x10003e260: fcmp d0, d1", + "0x10003e264: b.le 0x10003e29c", + "0x10003e268: fmov d0, d15", + "0x10003e26c: fmov d1, d14", + "0x10003e270: fmov d2, d13", + "0x10003e274: fmov d3, d12", + "0x10003e278: bl 0x10007a934", + "0x10003e27c: mov x8, #0x3cb0000000000000", + "0x10003e280: fmov d1, x8", + "0x10003e284: fcmp d0, d1", + "0x10003e288: fmov d7, d12", + "0x10003e28c: fmov d6, d13", + "0x10003e290: fmov d5, d14", + "0x10003e294: fmov d4, d15", + "0x10003e298: b.gt 0x10003e2ac", + "0x10003e29c: ldr d4, [x22, #0x378]", + "0x10003e2a0: ldr d5, [x22, #0x380]", + "0x10003e2a4: ldr d6, [x22, #0x388]", + "0x10003e2a8: ldr d7, [x22, #0x390]", + "0x10003e2ac: ldr x0, [x22, #0x370]", + "0x10003e2b0: ldr d0, [x22, #0x378]", + "0x10003e2b4: ldr d1, [x22, #0x380]", + "0x10003e2b8: ldr d2, [x22, #0x388]", + "0x10003e2bc: ldr d3, [x22, #0x390]", + "0x10003e2c0: stp d5, d4, [sp, #0xc0]", + "0x10003e2c4: stp d7, d6, [sp, #0xb0]", + "0x10003e2c8: bl 0x10001ab3c", + "0x10003e2cc: mov x25, x0", + "0x10003e2d0: bl 0x10007d560", + "0x10003e2d4: cmp x0, #0x4d", + "0x10003e2d8: b.cc 0x10003e310", + "0x10003e2dc: mov x0, x25", + "0x10003e2e0: ldp d1, d0, [sp, #0xc0]", + "0x10003e2e4: ldp d3, d2, [sp, #0xb0]", + "0x10003e2e8: bl 0x10001b070", + "0x10003e2ec: cbz w0, 0x10003e310", + "0x10003e2f0: mov x0, x25", + "0x10003e2f4: bl 0x10007aea4", + "0x10003e2f8: mov x25, x0", + "0x10003e2fc: mov w19, #0x1", + "0x10003e300: b 0x10003e33c", + "0x10003e304: mov w19, #0x0", + "0x10003e308: mov x25, #0x0", + "0x10003e30c: b 0x10003e33c", + "0x10003e310: ldr x0, [x22, #0x370]", + "0x10003e314: bl 0x10007aea4", + "0x10003e318: mov x25, x0", + "0x10003e31c: ldr d1, [x22, #0x378]", + "0x10003e320: ldr d0, [x22, #0x380]", + "0x10003e324: stp d0, d1, [sp, #0xc0]", + "0x10003e328: ldr d0, [x22, #0x388]", + "0x10003e32c: str d0, [sp, #0xb8]", + "0x10003e330: mov w19, #0x1", + "0x10003e334: ldr d0, [x22, #0x390]", + "0x10003e338: str d0, [sp, #0xb0]", + "0x10003e33c: ldr x0, [x22, #0x28]", + "0x10003e340: bl 0x1000834c0", + "0x10003e344: ldr x21, [x29, #0x10]", + "0x10003e348: ldr x9, [sp, #0x40]", + "0x10003e34c: cbz x9, 0x10003e364", + "0x10003e350: cmp w26, #0x0", + "0x10003e354: csel x8, x24, xzr, ne", + "0x10003e358: cmp w19, #0x0", + "0x10003e35c: csel x8, xzr, x8, ne", + "0x10003e360: str x8, [x9]", + "0x10003e364: cbz x21, 0x10003e384", + "0x10003e368: mov x0, x25", + "0x10003e36c: bl 0x10007d560", + "0x10003e370: cmp x0, #0x4c", + "0x10003e374: movi d0, #0x0", + "0x10003e378: fmov d1, 0x3ff0000000000000", + "0x10003e37c: fcsel d0, d1, d0, hi", + "0x10003e380: str d0, [x21]", + "0x10003e384: ldp x9, x8, [x29, #0x18]", + "0x10003e388: cbz x9, 0x10003e39c", + "0x10003e38c: ldp d0, d1, [sp, #0xc0]", + "0x10003e390: stp d1, d0, [x9]", + "0x10003e394: ldp d0, d1, [sp, #0xb0]", + "0x10003e398: stp d1, d0, [x9, #0x10]", + "0x10003e39c: cbz x8, 0x10003e3a4", + "0x10003e3a0: strb w19, [x8]", + "0x10003e3a4: ldr w8, [x20, #0xc]", + "0x10003e3a8: mov w9, #0x1d", + "0x10003e3ac: and w8, w8, w9", + "0x10003e3b0: cmp w8, #0x1", + "0x10003e3b4: b.ne 0x10003e3d0", + "0x10003e3b8: ldr q0, [x20]", + "0x10003e3bc: str q0, [sp, #0x160]", + "0x10003e3c0: ldr x8, [x20, #0x10]", + "0x10003e3c4: str x8, [sp, #0x170]", + "0x10003e3c8: add x0, sp, #0x160", + "0x10003e3cc: bl 0x10007a9f4", + "0x10003e3d0: ldr x0, [sp, #0x88]", + "0x10003e3d4: bl 0x10007d560", + "0x10003e3d8: mov x0, x23", + "0x10003e3dc: bl 0x10007d560", + "0x10003e3e0: ldp d0, d1, [sp, #0x50]", + "0x10003e3e4: ldp d2, d3, [sp, #0x60]", + "0x10003e3e8: bl 0x10001b584", + "0x10003e3ec: ldp d1, d0, [sp, #0xa0]", + "0x10003e3f0: ldp d3, d2, [sp, #0x90]", + "0x10003e3f4: bl 0x10001b584", + "0x10003e3f8: ldp d1, d0, [sp, #0xc0]", + "0x10003e3fc: ldp d3, d2, [sp, #0xb0]", + "0x10003e400: bl 0x10001b584", + "0x10003e404: mov x0, x25", + "0x10003e408: bl 0x10007d560", + "0x10003e40c: mov x0, x25", + "0x10003e410: bl 0x10007adfc", + "0x10003e414: ldur x8, [x29, #-0xa0]", + "0x10003e418: adrp x9, 0x1000a8000", + "0x10003e41c: ldr x9, [x9, #0xe8]", + "0x10003e420: ldr x9, [x9]", + "0x10003e424: cmp x9, x8", + "0x10003e428: b.ne 0x10003e9c8", + "0x10003e42c: add sp, sp, #0x1f0", + "0x10003e430: ldp x29, x30, [sp, #0x90]", + "0x10003e434: ldp x20, x19, [sp, #0x80]", + "0x10003e438: ldp x22, x21, [sp, #0x70]", + "0x10003e43c: ldp x24, x23, [sp, #0x60]", + "0x10003e440: ldp x26, x25, [sp, #0x50]", + "0x10003e444: ldp x28, x27, [sp, #0x40]", + "0x10003e448: ldp d9, d8, [sp, #0x30]", + "0x10003e44c: ldp d11, d10, [sp, #0x20]", + "0x10003e450: ldp d13, d12, [sp, #0x10]", + "0x10003e454: ldp d15, d14, [sp], #0xa0", + "0x10003e458: ret", + "0x10003e45c: ldr x0, [x22, #0x370]", + "0x10003e460: bl 0x10007ae98", + "0x10003e464: str wzr, [sp, #0x4c]", + "0x10003e468: add x8, x22, #0x370", + "0x10003e46c: str xzr, [x8]", + "0x10003e470: adrp x8, 0x1000a8000", + "0x10003e474: ldr x8, [x8, #0x150]", + "0x10003e478: add x9, x22, #0x378", + "0x10003e47c: ldp q0, q1, [x8]", + "0x10003e480: adrp x8, 0x1000a8000", + "0x10003e484: ldr x8, [x8, #0x208]", + "0x10003e488: stp q0, q1, [x9]", + "0x10003e48c: ldr q0, [x8]", + "0x10003e490: str q0, [x19]", + "0x10003e494: ldr x8, [x8, #0x10]", + "0x10003e498: str x8, [x19, #0x10]", + "0x10003e49c: strb wzr, [x22, #0x3b0]", + "0x10003e4a0: b 0x10003d864", + "0x10003e4a4: mov x23, #0x0", + "0x10003e4a8: b 0x10003de34", + "0x10003e4ac: mov w27, #0x0", + "0x10003e4b0: b 0x10003e050", + "0x10003e4b4: mov x0, x19", + "0x10003e4b8: bl 0x1000801c0", + "0x10003e4bc: add x8, x0, #0x8", + "0x10003e4c0: mov w9, #0x4c", + "0x10003e4c4: adrp x10, 0x100086000", + "0x10003e4c8: ldr d0, [x10, #0x4d0]", + "0x10003e4cc: adrp x10, 0x100086000", + "0x10003e4d0: ldr d1, [x10, #0x4c8]", + "0x10003e4d4: mov x10, #0x7fefffffffffffff", + "0x10003e4d8: ldur d2, [x8, #-0x8]", + "0x10003e4dc: fmov x11, d2", + "0x10003e4e0: and x11, x11, #0x7fffffffffffffff", + "0x10003e4e4: cmp x11, x10", + "0x10003e4e8: b.gt 0x10003e130", + "0x10003e4ec: ldr d3, [x8]", + "0x10003e4f0: fmov x11, d3", + "0x10003e4f4: and x11, x11, #0x7fffffffffffffff", + "0x10003e4f8: cmp x11, x10", + "0x10003e4fc: cset w11, gt", + "0x10003e500: fcmp d3, d0", + "0x10003e504: b.gt 0x10003e130", + "0x10003e508: fcmp d3, d1", + "0x10003e50c: b.mi 0x10003e130", + "0x10003e510: fcmp d2, d0", + "0x10003e514: b.gt 0x10003e130", + "0x10003e518: fcmp d2, d1", + "0x10003e51c: b.mi 0x10003e130", + "0x10003e520: tbnz w11, #0x0, 0x10003e130", + "0x10003e524: add x8, x8, #0x10", + "0x10003e528: subs x9, x9, #0x1", + "0x10003e52c: b.ne 0x10003e4d8", + "0x10003e530: adrp x8, 0x1000a8000", + "0x10003e534: ldr x8, [x8, #0x140]", + "0x10003e538: ldr q0, [x8]", + "0x10003e53c: stp q0, q0, [sp, #0x140]", + "0x10003e540: stp q0, q0, [sp, #0x120]", + "0x10003e544: str q0, [sp, #0x110]", + "0x10003e548: mov x0, x26", + "0x10003e54c: bl 0x10007f9a0", + "0x10003e550: add x1, sp, #0x150", + "0x10003e554: bl 0x1000547c8", + "0x10003e558: cbz w0, 0x10003e130", + "0x10003e55c: mov x0, x26", + "0x10003e560: bl 0x100080c20", + "0x10003e564: add x1, sp, #0x140", + "0x10003e568: bl 0x1000547c8", + "0x10003e56c: cbz w0, 0x10003e130", + "0x10003e570: mov x0, x26", + "0x10003e574: bl 0x100080200", + "0x10003e578: add x1, sp, #0x130", + "0x10003e57c: bl 0x1000547c8", + "0x10003e580: cbz w0, 0x10003e130", + "0x10003e584: mov x0, x26", + "0x10003e588: bl 0x1000804c0", + "0x10003e58c: add x1, sp, #0x120", + "0x10003e590: bl 0x1000547c8", + "0x10003e594: cbz w0, 0x10003e130", + "0x10003e598: add x1, sp, #0x110", + "0x10003e59c: mov x0, x28", + "0x10003e5a0: bl 0x1000548d0", + "0x10003e5a4: tbz w0, #0x0, 0x10003e130", + "0x10003e5a8: mov x0, x26", + "0x10003e5ac: bl 0x10007d320", + "0x10003e5b0: fmov s8, s0", + "0x10003e5b4: mov x0, x19", + "0x10003e5b8: bl 0x100080720", + "0x10003e5bc: str x0, [sp, #0x30]", + "0x10003e5c0: ldr x0, [sp, #0x30]", + "0x10003e5c4: bl 0x10007d560", + "0x10003e5c8: cmp x0, #0x4c", + "0x10003e5cc: b.cc 0x10003e650", + "0x10003e5d0: movi v0.2D, #0x0", + "0x10003e5d4: stp q0, q0, [sp, #0xf0]", + "0x10003e5d8: stp q0, q0, [sp, #0xd0]", + "0x10003e5dc: add x2, sp, #0xd0", + "0x10003e5e0: add x3, sp, #0x160", + "0x10003e5e4: ldr x0, [sp, #0x30]", + "0x10003e5e8: mov w4, #0x10", + "0x10003e5ec: bl 0x10007d580", + "0x10003e5f0: mov x26, x0", + "0x10003e5f4: cbz x0, 0x10003e650", + "0x10003e5f8: ldr x8, [sp, #0xe0]", + "0x10003e5fc: ldr x19, [x8]", + "0x10003e600: mov x28, #0x0", + "0x10003e604: ldr x8, [sp, #0xe0]", + "0x10003e608: ldr x8, [x8]", + "0x10003e60c: cmp x8, x19", + "0x10003e610: b.eq 0x10003e61c", + "0x10003e614: ldr x0, [sp, #0x30]", + "0x10003e618: bl 0x10007ae2c", + "0x10003e61c: ldr x8, [sp, #0xd8]", + "0x10003e620: ldr x0, [x8, x28, LSL #0x3]", + "0x10003e624: bl 0x10007dac0", + "0x10003e628: add x28, x28, #0x1", + "0x10003e62c: cmp x26, x28", + "0x10003e630: b.ne 0x10003e604", + "0x10003e634: add x2, sp, #0xd0", + "0x10003e638: add x3, sp, #0x160", + "0x10003e63c: ldr x0, [sp, #0x30]", + "0x10003e640: mov w4, #0x10", + "0x10003e644: bl 0x10007d580", + "0x10003e648: mov x26, x0", + "0x10003e64c: cbnz x0, 0x10003e600", + "0x10003e650: fcvt d9, s8", + "0x10003e654: ldp d0, d1, [sp, #0x150]", + "0x10003e658: ldp d2, d3, [sp, #0x140]", + "0x10003e65c: fadd d4, d0, d2", + "0x10003e660: fmov d5, 0x3fe0000000000000", + "0x10003e664: fmul d10, d4, d5", + "0x10003e668: fadd d4, d1, d3", + "0x10003e66c: fmul d11, d4, d5", + "0x10003e670: fsub d0, d2, d0", + "0x10003e674: fsub d1, d3, d1", + "0x10003e678: str d0, [sp, #0x30]", + "0x10003e67c: fmov d8, d1", + "0x10003e680: bl 0x10007ad84", + "0x10003e684: fmov x8, d0", + "0x10003e688: and x8, x8, #0x7fffffffffffffff", + "0x10003e68c: mov x9, #0x3cb0000000000000", + "0x10003e690: fmov d1, x9", + "0x10003e694: fcmp d0, d1", + "0x10003e698: mov x9, #0x7ff0000000000000", + "0x10003e69c: ccmp x8, x9, #0x0, gt", + "0x10003e6a0: cset w8, lt", + "0x10003e6a4: cmp w8, #0x1", + "0x10003e6a8: b.ne 0x10003e6bc", + "0x10003e6ac: ldr d1, [sp, #0x30]", + "0x10003e6b0: fdiv d1, d1, d0", + "0x10003e6b4: str d1, [sp, #0x30]", + "0x10003e6b8: fdiv d8, d8, d0", + "0x10003e6bc: ldr d6, [sp, #0x30]", + "0x10003e6c0: fneg d1, d6", + "0x10003e6c4: ldp d7, d16, [sp, #0x120]", + "0x10003e6c8: fsub d2, d7, d10", + "0x10003e6cc: fsub d3, d16, d11", + "0x10003e6d0: fnmul d4, d6, d3", + "0x10003e6d4: fmadd d4, d2, d8, d4", + "0x10003e6d8: fneg d5, d8", + "0x10003e6dc: fcmp d4, #0.0", + "0x10003e6e0: fcsel d5, d5, d8, mi", + "0x10003e6e4: fcsel d6, d6, d1, mi", + "0x10003e6e8: fmul d1, d3, d6", + "0x10003e6ec: fmadd d3, d2, d5, d1", + "0x10003e6f0: ldp d17, d18, [sp, #0x110]", + "0x10003e6f4: fsub d1, d17, d10", + "0x10003e6f8: ldp d2, d4, [sp, #0x130]", + "0x10003e6fc: fsub d19, d2, d10", + "0x10003e700: fsub d2, d18, d11", + "0x10003e704: fsub d4, d4, d11", + "0x10003e708: fmul d4, d4, d6", + "0x10003e70c: fmadd d4, d19, d5, d4", + "0x10003e710: fmov x9, d9", + "0x10003e714: and x9, x9, #0x7fffffffffffffff", + "0x10003e718: adrp x10, 0x100086000", + "0x10003e71c: ldr d19, [x10, #0x1f0]", + "0x10003e720: fcmp d9, d19", + "0x10003e724: mov x10, #0x7fefffffffffffff", + "0x10003e728: ccmp x9, x10, #0x0, ge", + "0x10003e72c: cset w9, gt", + "0x10003e730: adrp x10, 0x100086000", + "0x10003e734: ldr d19, [x10, #0xb0]", + "0x10003e738: fcmp d3, d19", + "0x10003e73c: csel w11, wzr, w8, lt", + "0x10003e740: mov w10, #0x1", + "0x10003e744: cmp w11, #0x1", + "0x10003e748: b.ne 0x10003e784", + "0x10003e74c: fsub d7, d17, d7", + "0x10003e750: fsub d16, d18, d16", + "0x10003e754: fmul d16, d16, d6", + "0x10003e758: fmadd d7, d7, d5, d16", + "0x10003e75c: adrp x11, 0x100086000", + "0x10003e760: ldr d16, [x11, #0x150]", + "0x10003e764: fcmp d7, d16", + "0x10003e768: b.lt 0x10003e784", + "0x10003e76c: fmul d6, d2, d6", + "0x10003e770: fmadd d5, d1, d5, d6", + "0x10003e774: adrp x10, 0x100086000", + "0x10003e778: ldr d6, [x10, #0x118]", + "0x10003e77c: fcmp d5, d6", + "0x10003e780: cset w10, lt", + "0x10003e784: adrp x11, 0x100086000", + "0x10003e788: ldr d5, [x11, #0x608]", + "0x10003e78c: fcmp d4, d5", + "0x10003e790: csel w11, wzr, w8, lt", + "0x10003e794: cmp w11, #0x1", + "0x10003e798: b.ne 0x10003e7b4", + "0x10003e79c: adrp x11, 0x100086000", + "0x10003e7a0: ldr d5, [x11, #0xf8]", + "0x10003e7a4: fadd d3, d3, d5", + "0x10003e7a8: fcmp d4, d3", + "0x10003e7ac: cset w11, ls", + "0x10003e7b0: b 0x10003e7b8", + "0x10003e7b4: mov w11, #0x0", + "0x10003e7b8: orr w9, w9, w10", + "0x10003e7bc: tbnz w9, #0x0, 0x10003e130", + "0x10003e7c0: fmul d2, d8, d2", + "0x10003e7c4: adrp x9, 0x100086000", + "0x10003e7c8: ldr d3, [x9, #0x600]", + "0x10003e7cc: adrp x9, 0x100086000", + "0x10003e7d0: ldr d11, [x9, #0x348]", + "0x10003e7d4: ldr d4, [sp, #0x30]", + "0x10003e7d8: fmadd d1, d1, d4, d2", + "0x10003e7dc: fmov d4, 0x3fe0000000000000", + "0x10003e7e0: fmsub d2, d0, d4, d3", + "0x10003e7e4: fmadd d3, d0, d4, d11", + "0x10003e7e8: fcmp d1, d2", + "0x10003e7ec: cset w9, ge", + "0x10003e7f0: fcmp d1, d3", + "0x10003e7f4: csel w9, wzr, w9, hi", + "0x10003e7f8: adrp x10, 0x100086000", + "0x10003e7fc: ldr d1, [x10, #0x120]", + "0x10003e800: fcmp d0, d1", + "0x10003e804: csel w10, wzr, w11, lt", + "0x10003e808: and w8, w8, w10", + "0x10003e80c: and w26, w8, w9", + "0x10003e810: ldr w8, [sp, #0x4c]", + "0x10003e814: and w8, w26, w8", + "0x10003e818: eor w8, w8, #0x1", + "0x10003e81c: orr w8, w21, w8", + "0x10003e820: tbnz w8, #0x0, 0x10003e134", + "0x10003e824: ldr x21, [x22, #0x370]", + "0x10003e828: ldr d8, [x22, #0x378]", + "0x10003e82c: ldr d9, [x22, #0x380]", + "0x10003e830: ldr d10, [x22, #0x388]", + "0x10003e834: ldr d0, [x22, #0x390]", + "0x10003e838: str d0, [sp, #0x30]", + "0x10003e83c: mov x0, x25", + "0x10003e840: bl 0x10007d560", + "0x10003e844: cmp x0, #0x4d", + "0x10003e848: b.cc 0x10003e134", + "0x10003e84c: mov x0, x21", + "0x10003e850: bl 0x10007d560", + "0x10003e854: cmp x0, #0x4d", + "0x10003e858: b.cc 0x10003e134", + "0x10003e85c: fmov d0, d15", + "0x10003e860: fmov d1, d14", + "0x10003e864: fmov d2, d13", + "0x10003e868: fmov d3, d12", + "0x10003e86c: bl 0x10007a9d0", + "0x10003e870: tbnz w0, #0x0, 0x10003e134", + "0x10003e874: fmov d0, d15", + "0x10003e878: fmov d1, d14", + "0x10003e87c: fmov d2, d13", + "0x10003e880: fmov d3, d12", + "0x10003e884: bl 0x10007a9b8", + "0x10003e888: tbnz w0, #0x0, 0x10003e134", + "0x10003e88c: fmov d0, d15", + "0x10003e890: fmov d1, d14", + "0x10003e894: fmov d2, d13", + "0x10003e898: fmov d3, d12", + "0x10003e89c: bl 0x10007a988", + "0x10003e8a0: mov x8, #0x3cb0000000000000", + "0x10003e8a4: fmov d1, x8", + "0x10003e8a8: fcmp d0, d1", + "0x10003e8ac: b.le 0x10003e134", + "0x10003e8b0: fmov d0, d15", + "0x10003e8b4: fmov d1, d14", + "0x10003e8b8: fmov d2, d13", + "0x10003e8bc: fmov d3, d12", + "0x10003e8c0: bl 0x10007a934", + "0x10003e8c4: mov x8, #0x3cb0000000000000", + "0x10003e8c8: fmov d1, x8", + "0x10003e8cc: fcmp d0, d1", + "0x10003e8d0: b.le 0x10003e134", + "0x10003e8d4: fmov d0, d8", + "0x10003e8d8: fmov d1, d9", + "0x10003e8dc: fmov d2, d10", + "0x10003e8e0: ldr d3, [sp, #0x30]", + "0x10003e8e4: bl 0x10007a9d0", + "0x10003e8e8: tbnz w0, #0x0, 0x10003e134", + "0x10003e8ec: fmov d0, d8", + "0x10003e8f0: fmov d1, d9", + "0x10003e8f4: fmov d2, d10", + "0x10003e8f8: ldr d3, [sp, #0x30]", + "0x10003e8fc: bl 0x10007a9b8", + "0x10003e900: tbnz w0, #0x0, 0x10003e134", + "0x10003e904: fmov d0, d8", + "0x10003e908: fmov d1, d9", + "0x10003e90c: fmov d2, d10", + "0x10003e910: ldr d3, [sp, #0x30]", + "0x10003e914: bl 0x10007a988", + "0x10003e918: mov x8, #0x3cb0000000000000", + "0x10003e91c: fmov d1, x8", + "0x10003e920: fcmp d0, d1", + "0x10003e924: b.le 0x10003e134", + "0x10003e928: fmov d0, d8", + "0x10003e92c: fmov d1, d9", + "0x10003e930: fmov d2, d10", + "0x10003e934: ldr d3, [sp, #0x30]", + "0x10003e938: bl 0x10007a934", + "0x10003e93c: mov x8, #0x3cb0000000000000", + "0x10003e940: fmov d1, x8", + "0x10003e944: fcmp d0, d1", + "0x10003e948: b.le 0x10003e134", + "0x10003e94c: fmov d0, d15", + "0x10003e950: fmov d1, d14", + "0x10003e954: fmov d2, d13", + "0x10003e958: fmov d3, d12", + "0x10003e95c: fmov d4, d8", + "0x10003e960: fmov d5, d9", + "0x10003e964: fmov d6, d10", + "0x10003e968: ldr d7, [sp, #0x30]", + "0x10003e96c: bl 0x1000549d4", + "0x10003e970: cbz w0, 0x10003e134", + "0x10003e974: mov x8, #0x7ff8000000000000", + "0x10003e978: str x8, [sp, #0x160]", + "0x10003e97c: str x8, [sp, #0xd0]", + "0x10003e980: str x8, [sp, #0x150]", + "0x10003e984: add x2, sp, #0x160", + "0x10003e988: add x3, sp, #0xd0", + "0x10003e98c: add x4, sp, #0x150", + "0x10003e990: mov x0, x25", + "0x10003e994: fmov d0, d15", + "0x10003e998: fmov d1, d14", + "0x10003e99c: fmov d2, d13", + "0x10003e9a0: fmov d3, d12", + "0x10003e9a4: mov x1, x21", + "0x10003e9a8: fmov d4, d8", + "0x10003e9ac: fmov d5, d9", + "0x10003e9b0: fmov d6, d10", + "0x10003e9b4: ldr d7, [sp, #0x30]", + "0x10003e9b8: bl 0x100043338", + "0x10003e9bc: tbz w0, #0x0, 0x10003e9cc", + "0x10003e9c0: mov w8, #0x0", + "0x10003e9c4: b 0x10003ea0c", + "0x10003e9c8: bl 0x10007aca0", + "0x10003e9cc: mov x0, x21", + "0x10003e9d0: fmov d0, d8", + "0x10003e9d4: fmov d1, d9", + "0x10003e9d8: fmov d2, d10", + "0x10003e9dc: ldr d3, [sp, #0x30]", + "0x10003e9e0: fmov d4, d15", + "0x10003e9e4: fmov d5, d14", + "0x10003e9e8: fmov d6, d13", + "0x10003e9ec: fmov d7, d12", + "0x10003e9f0: bl 0x10001ab3c", + "0x10003e9f4: str x0, [sp, #0x20]", + "0x10003e9f8: ldr x0, [sp, #0x20]", + "0x10003e9fc: bl 0x10007d560", + "0x10003ea00: cmp x0, #0x4d", + "0x10003ea04: b.cs 0x10003ea14", + "0x10003ea08: mov w8, #0x1", + "0x10003ea0c: and w26, w26, w8", + "0x10003ea10: b 0x10003e134", + "0x10003ea14: fmov d0, d15", + "0x10003ea18: fmov d1, d14", + "0x10003ea1c: fmov d2, d13", + "0x10003ea20: fmov d3, d12", + "0x10003ea24: bl 0x10007a988", + "0x10003ea28: fmov d8, d0", + "0x10003ea2c: fmov d0, d15", + "0x10003ea30: fmov d1, d14", + "0x10003ea34: fmov d2, d13", + "0x10003ea38: fmov d3, d12", + "0x10003ea3c: bl 0x10007a934", + "0x10003ea40: fcmp d8, d0", + "0x10003ea44: fcsel d1, d0, d8, mi", + "0x10003ea48: fmov x8, d1", + "0x10003ea4c: and x8, x8, #0x7fffffffffffffff", + "0x10003ea50: mov x9, #0x7fefffffffffffff", + "0x10003ea54: cmp x8, x9", + "0x10003ea58: cset w9, gt", + "0x10003ea5c: mov w8, #0x1", + "0x10003ea60: mov x10, #0x3cb0000000000000", + "0x10003ea64: fmov d0, x10", + "0x10003ea68: str d1, [sp, #0x18]", + "0x10003ea6c: fcmp d1, d0", + "0x10003ea70: b.ls 0x10003ea0c", + "0x10003ea74: tbnz w9, #0x0, 0x10003ea0c", + "0x10003ea78: adrp x8, 0x1000bb000", + "0x10003ea7c: ldr x0, [x8, #0xa00]", + "0x10003ea80: mov w2, #0x4c", + "0x10003ea84: bl 0x10007ccc0", + "0x10003ea88: mov x19, x0", + "0x10003ea8c: mov x21, #0x0", + "0x10003ea90: mov x28, #0x7fefffffffffffff", + "0x10003ea94: mov x0, x25", + "0x10003ea98: mov x2, x21", + "0x10003ea9c: bl 0x1000803c0", + "0x10003eaa0: str x0, [sp, #0x30]", + "0x10003eaa4: ldr x0, [sp, #0x20]", + "0x10003eaa8: mov x2, x21", + "0x10003eaac: bl 0x1000803c0", + "0x10003eab0: str x0, [sp, #0x28]", + "0x10003eab4: ldr x8, [sp, #0x30]", + "0x10003eab8: cbz x8, 0x10003eb90", + "0x10003eabc: ldr x8, [sp, #0x28]", + "0x10003eac0: cbz x8, 0x10003eb90", + "0x10003eac4: ldr x0, [sp, #0x30]", + "0x10003eac8: bl 0x10007c8c0", + "0x10003eacc: fmov x8, d0", + "0x10003ead0: and x8, x8, #0x7fffffffffffffff", + "0x10003ead4: cmp x8, x28", + "0x10003ead8: b.gt 0x10003eb90", + "0x10003eadc: ldr x0, [sp, #0x30]", + "0x10003eae0: bl 0x10007c8e0", + "0x10003eae4: fmov x8, d0", + "0x10003eae8: and x8, x8, #0x7fffffffffffffff", + "0x10003eaec: cmp x8, x28", + "0x10003eaf0: b.gt 0x10003eb90", + "0x10003eaf4: ldr x0, [sp, #0x28]", + "0x10003eaf8: bl 0x10007c8c0", + "0x10003eafc: fmov x8, d0", + "0x10003eb00: and x8, x8, #0x7fffffffffffffff", + "0x10003eb04: cmp x8, x28", + "0x10003eb08: b.gt 0x10003eb90", + "0x10003eb0c: ldr x0, [sp, #0x28]", + "0x10003eb10: bl 0x10007c8e0", + "0x10003eb14: fmov x8, d0", + "0x10003eb18: and x8, x8, #0x7fffffffffffffff", + "0x10003eb1c: cmp x8, x28", + "0x10003eb20: b.gt 0x10003eb90", + "0x10003eb24: ldr x0, [sp, #0x30]", + "0x10003eb28: bl 0x10007c8c0", + "0x10003eb2c: fmov d8, d0", + "0x10003eb30: ldr x0, [sp, #0x28]", + "0x10003eb34: bl 0x10007c8c0", + "0x10003eb38: fmov d9, d0", + "0x10003eb3c: ldr x0, [sp, #0x30]", + "0x10003eb40: bl 0x10007c8e0", + "0x10003eb44: fmov d10, d0", + "0x10003eb48: ldr x0, [sp, #0x28]", + "0x10003eb4c: bl 0x10007c8e0", + "0x10003eb50: fsub d2, d8, d9", + "0x10003eb54: fsub d1, d10, d0", + "0x10003eb58: fmov d0, d2", + "0x10003eb5c: bl 0x10007ad84", + "0x10003eb60: ldr d1, [sp, #0x18]", + "0x10003eb64: fdiv d0, d0, d1", + "0x10003eb68: fmov x8, d0", + "0x10003eb6c: and x8, x8, #0x7fffffffffffffff", + "0x10003eb70: cmp x8, x28", + "0x10003eb74: b.gt 0x10003eb90", + "0x10003eb78: adrp x8, 0x1000bb000", + "0x10003eb7c: ldr x0, [x8, #0xa10]", + "0x10003eb80: bl 0x100080280", + "0x10003eb84: mov x2, x0", + "0x10003eb88: mov x0, x19", + "0x10003eb8c: bl 0x10007ca00", + "0x10003eb90: add x21, x21, #0x1", + "0x10003eb94: cmp x21, #0x4c", + "0x10003eb98: b.ne 0x10003ea94", + "0x10003eb9c: mov x0, x19", + "0x10003eba0: bl 0x10007d560", + "0x10003eba4: cmp x0, #0x32", + "0x10003eba8: b.cc 0x10003ea08", + "0x10003ebac: adrp x8, 0x1000bb000", + "0x10003ebb0: ldr x2, [x8, #0x998]", + "0x10003ebb4: mov x0, x19", + "0x10003ebb8: bl 0x100082fc0", + "0x10003ebbc: mov x0, x19", + "0x10003ebc0: bl 0x10007d560", + "0x10003ebc4: mov x28, x0", + "0x10003ebc8: mov x0, x19", + "0x10003ebcc: bl 0x10007d560", + "0x10003ebd0: mov x21, x0", + "0x10003ebd4: mov x0, x19", + "0x10003ebd8: bl 0x10007d560", + "0x10003ebdc: lsr x2, x28, #0x1", + "0x10003ebe0: sub x8, x21, #0x1", + "0x10003ebe4: sub x9, x0, #0x1", + "0x10003ebe8: ucvtf d0, x9", + "0x10003ebec: adrp x9, 0x100086000", + "0x10003ebf0: ldr d1, [x9, #0x138]", + "0x10003ebf4: fmul d0, d0, d1", + "0x10003ebf8: fcvtmu x9, d0", + "0x10003ebfc: cmp x8, x9", + "0x10003ec00: csel x21, x8, x9, cc", + "0x10003ec04: mov x0, x19", + "0x10003ec08: bl 0x1000803c0", + "0x10003ec0c: bl 0x10007dac0", + "0x10003ec10: fmov d8, d0", + "0x10003ec14: mov x0, x19", + "0x10003ec18: mov x2, x21", + "0x10003ec1c: bl 0x1000803c0", + "0x10003ec20: bl 0x10007dac0", + "0x10003ec24: fcmp d8, d11", + "0x10003ec28: cset w8, ls", + "0x10003ec2c: adrp x9, 0x100086000", + "0x10003ec30: ldr d1, [x9, #0x1b0]", + "0x10003ec34: fcmp d0, d1", + "0x10003ec38: csel w8, wzr, w8, hi", + "0x10003ec3c: b 0x10003ea0c" + ], + "limitations": [ + "Instruction text and ordering are Ghidra-specific representations.", + "The fast path does not invoke the decompiler or scan whole-program names and strings.", + "Ghidra Listing reports a terminal call at 0x10003e9c8 to 0x10007aca0 ___stack_chk_fail (external=false, thunk=true, hasNoReturn=true); fallthrough is excluded by Ghidra's flow model. This records Ghidra's FunctionManager flag, not an independent verification that the callee cannot return." + ], + "procedure": { + "address": "0x10003d69c", + "body": { + "available": true, + "contains_entry": true, + "non_contiguous": false, + "provenance": "ghidra-function-body-address-set", + "ranges": [ + { + "end": "0x10003ec3f", + "start": "0x10003d69c" + } + ], + "span_bytes": 5540, + "total_bytes": 5540 + }, + "classification": { + "external": false, + "provenance": "ghidra-function-manager", + "thunk": false, + "thunk_target": null + }, + "name": "MSSuperSkinSmoothingPlugIn::mss_pinStyleFacePointsForObservations:renderTime:params:trackingInputImage:preferredBox:hasPreferredBox:selectedObservationOut:strengthMultiplierOut:pointsBoxOut:usedHoldOut:" + } + }, + "operation": "read_function_instructions", + "parameters": { + "procedure": "0x10003d69c" + }, + "predicate_type": "rea.analysis", + "provider": { + "id": "ghidra", + "name": "Ghidra", + "version": "12.1.4" + }, + "raw_result": { + "limitations": [ + "Ghidra Listing reports a terminal call at 0x10003e9c8 to 0x10007aca0 ___stack_chk_fail (external=false, thunk=true, hasNoReturn=true); fallthrough is excluded by Ghidra's flow model. This records Ghidra's FunctionManager flag, not an independent verification that the callee cannot return." + ], + "value": { + "instructions": [ + "0x10003d69c: stp d15, d14, [sp, #-0xa0]!", + "0x10003d6a0: stp d13, d12, [sp, #0x10]", + "0x10003d6a4: stp d11, d10, [sp, #0x20]", + "0x10003d6a8: stp d9, d8, [sp, #0x30]", + "0x10003d6ac: stp x28, x27, [sp, #0x40]", + "0x10003d6b0: stp x26, x25, [sp, #0x50]", + "0x10003d6b4: stp x24, x23, [sp, #0x60]", + "0x10003d6b8: stp x22, x21, [sp, #0x70]", + "0x10003d6bc: stp x20, x19, [sp, #0x80]", + "0x10003d6c0: stp x29, x30, [sp, #0x90]", + "0x10003d6c4: add x29, sp, #0x90", + "0x10003d6c8: sub sp, sp, #0x1f0", + "0x10003d6cc: mov x19, x7", + "0x10003d6d0: mov x23, x6", + "0x10003d6d4: fmov d8, d3", + "0x10003d6d8: fmov d9, d2", + "0x10003d6dc: fmov d10, d1", + "0x10003d6e0: fmov d11, d0", + "0x10003d6e4: mov x26, x5", + "0x10003d6e8: mov x24, x4", + "0x10003d6ec: mov x20, x3", + "0x10003d6f0: mov x22, x0", + "0x10003d6f4: adrp x8, 0x1000a8000", + "0x10003d6f8: ldr x8, [x8, #0xe8]", + "0x10003d6fc: ldr x8, [x8]", + "0x10003d700: stur x8, [x29, #-0xa0]", + "0x10003d704: mov x0, x2", + "0x10003d708: bl 0x10002a428", + "0x10003d70c: str x0, [sp, #0x88]", + "0x10003d710: cbz x24, 0x10003d730", + "0x10003d714: ldrb w8, [x24, #0xf8]", + "0x10003d718: str w8, [sp, #0x84]", + "0x10003d71c: ldr q0, [x24, #0x100]", + "0x10003d720: str q0, [sp, #0x70]", + "0x10003d724: ldr x8, [x24, #0x168]", + "0x10003d728: str x8, [sp, #0x38]", + "0x10003d72c: b 0x10003d740", + "0x10003d730: str wzr, [sp, #0x84]", + "0x10003d734: str xzr, [sp, #0x38]", + "0x10003d738: fmov v0.2D, #0x3fe0000000000000", + "0x10003d73c: str q0, [sp, #0x70]", + "0x10003d740: ldr x0, [x22, #0x28]", + "0x10003d744: bl 0x10007faa0", + "0x10003d748: ldrb w8, [x22, #0x3b0]", + "0x10003d74c: cmp w8, #0x1", + "0x10003d750: b.ne 0x10003d858", + "0x10003d754: mov x21, x19", + "0x10003d758: ldr w9, [x20, #0xc]", + "0x10003d75c: mov w8, #0x1d", + "0x10003d760: and w9, w9, w8", + "0x10003d764: cmp w9, #0x1", + "0x10003d768: b.ne 0x10003d7b8", + "0x10003d76c: ldr w9, [x22, #0x3a4]", + "0x10003d770: and w8, w9, w8", + "0x10003d774: cmp w8, #0x1", + "0x10003d778: b.ne 0x10003d7b8", + "0x10003d77c: add x19, x22, #0x398", + "0x10003d780: ldr q0, [x20]", + "0x10003d784: str q0, [sp, #0x160]", + "0x10003d788: ldr x8, [x20, #0x10]", + "0x10003d78c: str x8, [sp, #0x170]", + "0x10003d790: ldr q0, [x19]", + "0x10003d794: str q0, [sp, #0xd0]", + "0x10003d798: ldr x8, [x19, #0x10]", + "0x10003d79c: str x8, [sp, #0xe0]", + "0x10003d7a0: add x0, sp, #0x160", + "0x10003d7a4: add x1, sp, #0xd0", + "0x10003d7a8: bl 0x10007a9e8", + "0x10003d7ac: tbnz w0, #0x1f, 0x10003e45c", + "0x10003d7b0: ldrb w8, [x22, #0x3b0]", + "0x10003d7b4: tbz w8, #0x0, 0x10003d860", + "0x10003d7b8: ldr x0, [x22, #0x370]", + "0x10003d7bc: bl 0x10007d560", + "0x10003d7c0: cmp x0, #0x4d", + "0x10003d7c4: b.cc 0x10003d860", + "0x10003d7c8: ldr d12, [x22, #0x378]", + "0x10003d7cc: ldr d13, [x22, #0x380]", + "0x10003d7d0: ldr d14, [x22, #0x388]", + "0x10003d7d4: ldr d15, [x22, #0x390]", + "0x10003d7d8: fmov d0, d12", + "0x10003d7dc: fmov d1, d13", + "0x10003d7e0: fmov d2, d14", + "0x10003d7e4: fmov d3, d15", + "0x10003d7e8: bl 0x10007a9d0", + "0x10003d7ec: tbnz w0, #0x0, 0x10003d860", + "0x10003d7f0: fmov d0, d12", + "0x10003d7f4: fmov d1, d13", + "0x10003d7f8: fmov d2, d14", + "0x10003d7fc: fmov d3, d15", + "0x10003d800: bl 0x10007a9b8", + "0x10003d804: tbnz w0, #0x0, 0x10003d860", + "0x10003d808: fmov d0, d12", + "0x10003d80c: fmov d1, d13", + "0x10003d810: fmov d2, d14", + "0x10003d814: fmov d3, d15", + "0x10003d818: bl 0x10007a988", + "0x10003d81c: mov x8, #0x3cb0000000000000", + "0x10003d820: fmov d1, x8", + "0x10003d824: fcmp d0, d1", + "0x10003d828: b.le 0x10003d860", + "0x10003d82c: fmov d0, d12", + "0x10003d830: fmov d1, d13", + "0x10003d834: fmov d2, d14", + "0x10003d838: fmov d3, d15", + "0x10003d83c: bl 0x10007a934", + "0x10003d840: mov x8, #0x3cb0000000000000", + "0x10003d844: fmov d1, x8", + "0x10003d848: fcmp d0, d1", + "0x10003d84c: cset w8, gt", + "0x10003d850: str w8, [sp, #0x4c]", + "0x10003d854: b 0x10003d864", + "0x10003d858: str wzr, [sp, #0x4c]", + "0x10003d85c: b 0x10003d868", + "0x10003d860: str wzr, [sp, #0x4c]", + "0x10003d864: mov x19, x21", + "0x10003d868: adrp x8, 0x1000a8000", + "0x10003d86c: ldr x8, [x8, #0x148]", + "0x10003d870: ldp d1, d0, [x8]", + "0x10003d874: stp d0, d1, [sp, #0xc0]", + "0x10003d878: ldp d1, d0, [x8, #0x10]", + "0x10003d87c: stp d0, d1, [sp, #0xb0]", + "0x10003d880: ldr d0, [x22, #0x3b8]", + "0x10003d884: ldr q2, [sp, #0x70]", + "0x10003d888: fsub d0, d2, d0", + "0x10003d88c: ldr d1, [x22, #0x3c0]", + "0x10003d890: dup d2, v2.D[0x1]", + "0x10003d894: str d2, [sp, #0x10]", + "0x10003d898: fsub d1, d2, d1", + "0x10003d89c: bl 0x10007ad84", + "0x10003d8a0: ldr w8, [sp, #0x84]", + "0x10003d8a4: str x19, [sp, #0x40]", + "0x10003d8a8: tbz w8, #0x0, 0x10003d92c", + "0x10003d8ac: ldrb w8, [x22, #0x3b1]", + "0x10003d8b0: cmp w8, #0x1", + "0x10003d8b4: b.ne 0x10003d8f8", + "0x10003d8b8: ldr x8, [sp, #0x38]", + "0x10003d8bc: cmp x8, #0x1", + "0x10003d8c0: b.lt 0x10003d8d4", + "0x10003d8c4: ldr x8, [x22, #0x3c8]", + "0x10003d8c8: ldr x9, [sp, #0x38]", + "0x10003d8cc: cmp x9, x8", + "0x10003d8d0: b.gt 0x10003d8f8", + "0x10003d8d4: fmov x8, d0", + "0x10003d8d8: and x8, x8, #0x7fffffffffffffff", + "0x10003d8dc: mov x9, #0x7fefffffffffffff", + "0x10003d8e0: cmp x8, x9", + "0x10003d8e4: b.gt 0x10003d92c", + "0x10003d8e8: adrp x8, 0x100086000", + "0x10003d8ec: ldr d1, [x8, #0x440]", + "0x10003d8f0: fcmp d0, d1", + "0x10003d8f4: b.le 0x10003d92c", + "0x10003d8f8: ldr q0, [x20]", + "0x10003d8fc: str q0, [sp, #0x160]", + "0x10003d900: ldr x8, [x20, #0x10]", + "0x10003d904: str x8, [sp, #0x170]", + "0x10003d908: add x3, sp, #0x160", + "0x10003d90c: mov x0, x22", + "0x10003d910: mov x2, #0x0", + "0x10003d914: mov x4, #0x0", + "0x10003d918: mov w5, #0x0", + "0x10003d91c: bl 0x100083460", + "0x10003d920: mov w27, #0x0", + "0x10003d924: mov w21, #0x1", + "0x10003d928: b 0x10003da08", + "0x10003d92c: cbz x26, 0x10003da00", + "0x10003d930: ldr q0, [x20]", + "0x10003d934: str q0, [sp, #0x160]", + "0x10003d938: ldr x8, [x20, #0x10]", + "0x10003d93c: str x8, [sp, #0x170]", + "0x10003d940: add x3, sp, #0x160", + "0x10003d944: mov x0, x22", + "0x10003d948: mov x2, x26", + "0x10003d94c: mov x4, #0x0", + "0x10003d950: mov w5, #0x1", + "0x10003d954: bl 0x100083460", + "0x10003d958: bl 0x10002d838", + "0x10003d95c: stp d1, d0, [sp, #0xa0]", + "0x10003d960: stp d3, d2, [sp, #0x90]", + "0x10003d964: ldp d1, d0, [sp, #0xa0]", + "0x10003d968: ldp d3, d2, [sp, #0x90]", + "0x10003d96c: bl 0x10007a9d0", + "0x10003d970: tbnz w0, #0x0, 0x10003d9c8", + "0x10003d974: ldp d1, d0, [sp, #0xa0]", + "0x10003d978: ldp d3, d2, [sp, #0x90]", + "0x10003d97c: bl 0x10007a9b8", + "0x10003d980: tbnz w0, #0x0, 0x10003d9c8", + "0x10003d984: ldp d1, d0, [sp, #0xa0]", + "0x10003d988: ldp d3, d2, [sp, #0x90]", + "0x10003d98c: bl 0x10007a988", + "0x10003d990: mov x8, #0x3cb0000000000000", + "0x10003d994: fmov d1, x8", + "0x10003d998: fcmp d0, d1", + "0x10003d99c: b.le 0x10003d9c8", + "0x10003d9a0: ldp d1, d0, [sp, #0xa0]", + "0x10003d9a4: ldp d3, d2, [sp, #0x90]", + "0x10003d9a8: bl 0x10007a934", + "0x10003d9ac: mov w21, #0x0", + "0x10003d9b0: mov x8, #0x3cb0000000000000", + "0x10003d9b4: fmov d1, x8", + "0x10003d9b8: fcmp d0, d1", + "0x10003d9bc: cset w27, gt", + "0x10003d9c0: cbz w23, 0x10003d9d4", + "0x10003d9c4: b 0x10003da1c", + "0x10003d9c8: mov w21, #0x0", + "0x10003d9cc: mov w27, #0x0", + "0x10003d9d0: cbnz w23, 0x10003da1c", + "0x10003d9d4: ldr d11, [x22, #0x378]", + "0x10003d9d8: ldr d10, [x22, #0x380]", + "0x10003d9dc: ldr d9, [x22, #0x388]", + "0x10003d9e0: ldr d8, [x22, #0x390]", + "0x10003d9e4: ldr w8, [sp, #0x4c]", + "0x10003d9e8: cbz w8, 0x10003db3c", + "0x10003d9ec: fmov d13, d8", + "0x10003d9f0: fmov d14, d9", + "0x10003d9f4: fmov d15, d10", + "0x10003d9f8: fmov d12, d11", + "0x10003d9fc: b 0x10003dac0", + "0x10003da00: mov w21, #0x0", + "0x10003da04: mov w27, #0x0", + "0x10003da08: ldp d0, d1, [sp, #0xc0]", + "0x10003da0c: stp d0, d1, [sp, #0xa0]", + "0x10003da10: ldp d0, d1, [sp, #0xb0]", + "0x10003da14: stp d0, d1, [sp, #0x90]", + "0x10003da18: cbz w23, 0x10003d9d4", + "0x10003da1c: fmov d0, d11", + "0x10003da20: fmov d1, d10", + "0x10003da24: fmov d2, d9", + "0x10003da28: fmov d3, d8", + "0x10003da2c: bl 0x10007a9d0", + "0x10003da30: tbnz w0, #0x0, 0x10003da9c", + "0x10003da34: fmov d0, d11", + "0x10003da38: fmov d1, d10", + "0x10003da3c: fmov d2, d9", + "0x10003da40: fmov d3, d8", + "0x10003da44: bl 0x10007a9b8", + "0x10003da48: tbnz w0, #0x0, 0x10003da9c", + "0x10003da4c: fmov d0, d11", + "0x10003da50: fmov d1, d10", + "0x10003da54: fmov d2, d9", + "0x10003da58: fmov d3, d8", + "0x10003da5c: bl 0x10007a988", + "0x10003da60: mov x8, #0x3cb0000000000000", + "0x10003da64: fmov d1, x8", + "0x10003da68: fcmp d0, d1", + "0x10003da6c: b.le 0x10003da9c", + "0x10003da70: fmov d0, d11", + "0x10003da74: fmov d1, d10", + "0x10003da78: fmov d2, d9", + "0x10003da7c: fmov d3, d8", + "0x10003da80: bl 0x10007a934", + "0x10003da84: mov x8, #0x3cb0000000000000", + "0x10003da88: fmov d1, x8", + "0x10003da8c: fcmp d0, d1", + "0x10003da90: cset w28, gt", + "0x10003da94: tbz w28, #0x0, 0x10003daa4", + "0x10003da98: b 0x10003db40", + "0x10003da9c: mov w28, #0x0", + "0x10003daa0: tbnz w28, #0x0, 0x10003db40", + "0x10003daa4: ldr w8, [sp, #0x4c]", + "0x10003daa8: eor w8, w8, #0x1", + "0x10003daac: tbnz w8, #0x0, 0x10003db40", + "0x10003dab0: ldr d12, [x22, #0x378]", + "0x10003dab4: ldr d15, [x22, #0x380]", + "0x10003dab8: ldr d14, [x22, #0x388]", + "0x10003dabc: ldr d13, [x22, #0x390]", + "0x10003dac0: fmov d0, d12", + "0x10003dac4: fmov d1, d15", + "0x10003dac8: fmov d2, d14", + "0x10003dacc: fmov d3, d13", + "0x10003dad0: bl 0x10007a9d0", + "0x10003dad4: tbnz w0, #0x0, 0x10003db3c", + "0x10003dad8: fmov d0, d12", + "0x10003dadc: fmov d1, d15", + "0x10003dae0: fmov d2, d14", + "0x10003dae4: fmov d3, d13", + "0x10003dae8: bl 0x10007a9b8", + "0x10003daec: tbnz w0, #0x0, 0x10003db3c", + "0x10003daf0: fmov d0, d12", + "0x10003daf4: fmov d1, d15", + "0x10003daf8: fmov d2, d14", + "0x10003dafc: fmov d3, d13", + "0x10003db00: bl 0x10007a988", + "0x10003db04: mov x8, #0x3cb0000000000000", + "0x10003db08: fmov d1, x8", + "0x10003db0c: fcmp d0, d1", + "0x10003db10: b.le 0x10003db3c", + "0x10003db14: fmov d0, d12", + "0x10003db18: fmov d1, d15", + "0x10003db1c: fmov d2, d14", + "0x10003db20: fmov d3, d13", + "0x10003db24: bl 0x10007a934", + "0x10003db28: mov x8, #0x3cb0000000000000", + "0x10003db2c: fmov d1, x8", + "0x10003db30: fcmp d0, d1", + "0x10003db34: cset w28, gt", + "0x10003db38: b 0x10003db40", + "0x10003db3c: mov w28, #0x0", + "0x10003db40: cmp w27, #0x0", + "0x10003db44: ldr d0, [sp, #0x90]", + "0x10003db48: fcsel d1, d0, d8, ne", + "0x10003db4c: ldr d0, [sp, #0x98]", + "0x10003db50: fcsel d0, d0, d9, ne", + "0x10003db54: stp d0, d1, [sp, #0x28]", + "0x10003db58: ldr d0, [sp, #0xa0]", + "0x10003db5c: fcsel d1, d0, d10, ne", + "0x10003db60: eor w8, w28, #0x1", + "0x10003db64: orr w8, w21, w8", + "0x10003db68: ldp d0, d2, [sp, #0xa8]", + "0x10003db6c: fcsel d0, d0, d11, ne", + "0x10003db70: stp d0, d1, [sp, #0x18]", + "0x10003db74: ldp d1, d3, [sp, #0xb8]", + "0x10003db78: stp d1, d2, [sp, #0x60]", + "0x10003db7c: ldr d0, [sp, #0xc8]", + "0x10003db80: stp d0, d3, [sp, #0x50]", + "0x10003db84: ldr x23, [sp, #0x88]", + "0x10003db88: tbnz w8, #0x0, 0x10003de3c", + "0x10003db8c: cbz x24, 0x10003db98", + "0x10003db90: ldr d12, [x24, #0xf0]", + "0x10003db94: b 0x10003db9c", + "0x10003db98: fmov d12, 0x3ff8000000000000", + "0x10003db9c: ldr x0, [sp, #0x88]", + "0x10003dba0: bl 0x10007d560", + "0x10003dba4: cbz x0, 0x10003de20", + "0x10003dba8: fmov d0, d11", + "0x10003dbac: fmov d1, d10", + "0x10003dbb0: fmov d2, d9", + "0x10003dbb4: fmov d3, d8", + "0x10003dbb8: bl 0x10007a9d0", + "0x10003dbbc: tbnz w0, #0x0, 0x10003de20", + "0x10003dbc0: fmov d0, d11", + "0x10003dbc4: fmov d1, d10", + "0x10003dbc8: fmov d2, d9", + "0x10003dbcc: fmov d3, d8", + "0x10003dbd0: bl 0x10007a9b8", + "0x10003dbd4: tbnz w0, #0x0, 0x10003de20", + "0x10003dbd8: fmov d0, d11", + "0x10003dbdc: fmov d1, d10", + "0x10003dbe0: fmov d2, d9", + "0x10003dbe4: fmov d3, d8", + "0x10003dbe8: bl 0x10007a988", + "0x10003dbec: mov x8, #0x3cb0000000000000", + "0x10003dbf0: fmov d1, x8", + "0x10003dbf4: fcmp d0, d1", + "0x10003dbf8: b.le 0x10003de20", + "0x10003dbfc: fmov d0, d11", + "0x10003dc00: fmov d1, d10", + "0x10003dc04: fmov d2, d9", + "0x10003dc08: fmov d3, d8", + "0x10003dc0c: bl 0x10007a934", + "0x10003dc10: mov x8, #0x3cb0000000000000", + "0x10003dc14: fmov d1, x8", + "0x10003dc18: fcmp d0, d1", + "0x10003dc1c: b.le 0x10003de20", + "0x10003dc20: fmov d0, 0x4010000000000000", + "0x10003dc24: fcmp d12, d0", + "0x10003dc28: fcsel d0, d0, d12, gt", + "0x10003dc2c: fmov d1, 0x3ff0000000000000", + "0x10003dc30: fcmp d12, d1", + "0x10003dc34: fcsel d4, d1, d0, mi", + "0x10003dc38: fmov d0, d11", + "0x10003dc3c: fmov d1, d10", + "0x10003dc40: fmov d2, d9", + "0x10003dc44: fmov d3, d8", + "0x10003dc48: bl 0x10002c6b8", + "0x10003dc4c: stp d0, d1, [sp, #0x50]", + "0x10003dc50: stp d2, d3, [sp, #0x60]", + "0x10003dc54: ldp d0, d1, [sp, #0x50]", + "0x10003dc58: ldp d2, d3, [sp, #0x60]", + "0x10003dc5c: bl 0x10007a9d0", + "0x10003dc60: tbnz w0, #0x0, 0x10003e4a4", + "0x10003dc64: ldp d0, d1, [sp, #0x50]", + "0x10003dc68: ldp d2, d3, [sp, #0x60]", + "0x10003dc6c: bl 0x10007a9b8", + "0x10003dc70: tbnz w0, #0x0, 0x10003e4a4", + "0x10003dc74: ldp d0, d1, [sp, #0x50]", + "0x10003dc78: ldp d2, d3, [sp, #0x60]", + "0x10003dc7c: bl 0x10007a988", + "0x10003dc80: mov x8, #0x3cb0000000000000", + "0x10003dc84: fmov d1, x8", + "0x10003dc88: fcmp d0, d1", + "0x10003dc8c: b.le 0x10003e4a4", + "0x10003dc90: ldp d0, d1, [sp, #0x50]", + "0x10003dc94: ldp d2, d3, [sp, #0x60]", + "0x10003dc98: bl 0x10007a934", + "0x10003dc9c: mov x8, #0x3cb0000000000000", + "0x10003dca0: fmov d1, x8", + "0x10003dca4: fcmp d0, d1", + "0x10003dca8: b.le 0x10003e4a4", + "0x10003dcac: adrp x8, 0x1000bb000", + "0x10003dcb0: ldr x0, [x8, #0xa00]", + "0x10003dcb4: bl 0x10007cc80", + "0x10003dcb8: str x0, [sp, #0x8]", + "0x10003dcbc: movi v0.2D, #0x0", + "0x10003dcc0: stp q0, q0, [sp, #0xf0]", + "0x10003dcc4: stp q0, q0, [sp, #0xd0]", + "0x10003dcc8: add x2, sp, #0xd0", + "0x10003dccc: add x3, sp, #0x160", + "0x10003dcd0: ldr x0, [sp, #0x88]", + "0x10003dcd4: mov w4, #0x10", + "0x10003dcd8: bl 0x10007d580", + "0x10003dcdc: mov x24, x0", + "0x10003dce0: cbz x0, 0x10003de08", + "0x10003dce4: ldr x8, [sp, #0xe0]", + "0x10003dce8: ldr x23, [x8]", + "0x10003dcec: mov x19, #0x0", + "0x10003dcf0: ldr x8, [sp, #0xe0]", + "0x10003dcf4: ldr x8, [x8]", + "0x10003dcf8: cmp x8, x23", + "0x10003dcfc: b.eq 0x10003dd08", + "0x10003dd00: ldr x0, [sp, #0x88]", + "0x10003dd04: bl 0x10007ae2c", + "0x10003dd08: ldr x8, [sp, #0xd8]", + "0x10003dd0c: ldr x25, [x8, x19, LSL #0x3]", + "0x10003dd10: mov x0, x25", + "0x10003dd14: bl 0x100029d20", + "0x10003dd18: fmov d12, d0", + "0x10003dd1c: fmov d13, d1", + "0x10003dd20: fmov d14, d2", + "0x10003dd24: fmov d15, d3", + "0x10003dd28: bl 0x10007a9d0", + "0x10003dd2c: tbnz w0, #0x0, 0x10003dde0", + "0x10003dd30: fmov d0, d12", + "0x10003dd34: fmov d1, d13", + "0x10003dd38: fmov d2, d14", + "0x10003dd3c: fmov d3, d15", + "0x10003dd40: bl 0x10007a9b8", + "0x10003dd44: tbnz w0, #0x0, 0x10003dde0", + "0x10003dd48: fmov d0, d12", + "0x10003dd4c: fmov d1, d13", + "0x10003dd50: fmov d2, d14", + "0x10003dd54: fmov d3, d15", + "0x10003dd58: bl 0x10007a988", + "0x10003dd5c: mov x8, #0x3cb0000000000000", + "0x10003dd60: fmov d1, x8", + "0x10003dd64: fcmp d0, d1", + "0x10003dd68: b.le 0x10003dde0", + "0x10003dd6c: fmov d0, d12", + "0x10003dd70: fmov d1, d13", + "0x10003dd74: fmov d2, d14", + "0x10003dd78: fmov d3, d15", + "0x10003dd7c: bl 0x10007a934", + "0x10003dd80: mov x8, #0x3cb0000000000000", + "0x10003dd84: fmov d1, x8", + "0x10003dd88: fcmp d0, d1", + "0x10003dd8c: b.le 0x10003dde0", + "0x10003dd90: fmov d0, d12", + "0x10003dd94: fmov d1, d13", + "0x10003dd98: fmov d2, d14", + "0x10003dd9c: fmov d3, d15", + "0x10003dda0: bl 0x10007a958", + "0x10003dda4: fmov d8, d0", + "0x10003dda8: fmov d0, d12", + "0x10003ddac: fmov d1, d13", + "0x10003ddb0: fmov d2, d14", + "0x10003ddb4: fmov d3, d15", + "0x10003ddb8: bl 0x10007a964", + "0x10003ddbc: fmov d5, d0", + "0x10003ddc0: ldp d0, d1, [sp, #0x50]", + "0x10003ddc4: ldp d2, d3, [sp, #0x60]", + "0x10003ddc8: fmov d4, d8", + "0x10003ddcc: bl 0x10007a910", + "0x10003ddd0: cbz w0, 0x10003dde0", + "0x10003ddd4: ldr x0, [sp, #0x8]", + "0x10003ddd8: mov x2, x25", + "0x10003dddc: bl 0x10007ca00", + "0x10003dde0: add x19, x19, #0x1", + "0x10003dde4: cmp x24, x19", + "0x10003dde8: b.ne 0x10003dcf0", + "0x10003ddec: add x2, sp, #0xd0", + "0x10003ddf0: add x3, sp, #0x160", + "0x10003ddf4: ldr x0, [sp, #0x88]", + "0x10003ddf8: mov w4, #0x10", + "0x10003ddfc: bl 0x10007d580", + "0x10003de00: mov x24, x0", + "0x10003de04: cbnz x0, 0x10003dcec", + "0x10003de08: ldr x0, [sp, #0x8]", + "0x10003de0c: bl 0x10007d560", + "0x10003de10: cmp x0, #0x0", + "0x10003de14: ldr x8, [sp, #0x8]", + "0x10003de18: csel x23, xzr, x8, eq", + "0x10003de1c: b 0x10003de34", + "0x10003de20: mov x23, #0x0", + "0x10003de24: ldp d1, d0, [sp, #0xb0]", + "0x10003de28: stp d0, d1, [sp, #0x60]", + "0x10003de2c: ldp d1, d0, [sp, #0xc0]", + "0x10003de30: stp d0, d1, [sp, #0x50]", + "0x10003de34: mov x0, x23", + "0x10003de38: bl 0x10007d560", + "0x10003de3c: mov x0, x23", + "0x10003de40: bl 0x10007d560", + "0x10003de44: cbz x0, 0x10003e040", + "0x10003de48: ldr w8, [sp, #0x84]", + "0x10003de4c: and w8, w8, w21", + "0x10003de50: cmp w8, #0x1", + "0x10003de54: b.ne 0x10003de78", + "0x10003de58: mov x0, x23", + "0x10003de5c: ldr q0, [sp, #0x70]", + "0x10003de60: ldr d1, [sp, #0x10]", + "0x10003de64: ldp d3, d2, [sp, #0xc0]", + "0x10003de68: ldp d5, d4, [sp, #0xb0]", + "0x10003de6c: mov w1, #0x0", + "0x10003de70: bl 0x10003ec44", + "0x10003de74: b 0x10003def4", + "0x10003de78: orr w8, w27, w28", + "0x10003de7c: cbz w8, 0x10003debc", + "0x10003de80: ldp d0, d1, [sp, #0x18]", + "0x10003de84: ldp d2, d3, [sp, #0x28]", + "0x10003de88: bl 0x10007a958", + "0x10003de8c: fmov d8, d0", + "0x10003de90: ldp d0, d1, [sp, #0x18]", + "0x10003de94: ldp d2, d3, [sp, #0x28]", + "0x10003de98: bl 0x10007a964", + "0x10003de9c: fmov d1, d0", + "0x10003dea0: mov x0, x23", + "0x10003dea4: fmov d0, d8", + "0x10003dea8: ldp d2, d3, [sp, #0x18]", + "0x10003deac: ldp d4, d5, [sp, #0x28]", + "0x10003deb0: mov w1, #0x1", + "0x10003deb4: bl 0x10003ec44", + "0x10003deb8: b 0x10003def4", + "0x10003debc: ldr w8, [sp, #0x84]", + "0x10003dec0: tbz w8, #0x0, 0x10003dee4", + "0x10003dec4: mov x0, x23", + "0x10003dec8: ldr q0, [sp, #0x70]", + "0x10003decc: ldr d1, [sp, #0x10]", + "0x10003ded0: ldp d3, d2, [sp, #0xc0]", + "0x10003ded4: ldp d5, d4, [sp, #0xb0]", + "0x10003ded8: mov w1, #0x0", + "0x10003dedc: bl 0x10003ec44", + "0x10003dee0: b 0x10003def4", + "0x10003dee4: mov x0, x23", + "0x10003dee8: ldp d1, d0, [sp, #0xc0]", + "0x10003deec: ldp d3, d2, [sp, #0xb0]", + "0x10003def0: bl 0x10003f020", + "0x10003def4: mov x24, x0", + "0x10003def8: bl 0x100029a00", + "0x10003defc: mov x25, x0", + "0x10003df00: mov x0, x24", + "0x10003df04: bl 0x100029d20", + "0x10003df08: fmov d15, d0", + "0x10003df0c: fmov d14, d1", + "0x10003df10: fmov d13, d2", + "0x10003df14: fmov d12, d3", + "0x10003df18: mov x0, x25", + "0x10003df1c: bl 0x10007d560", + "0x10003df20: cmp x0, #0x4d", + "0x10003df24: b.cc 0x10003e040", + "0x10003df28: fmov d0, d15", + "0x10003df2c: fmov d1, d14", + "0x10003df30: fmov d2, d13", + "0x10003df34: fmov d3, d12", + "0x10003df38: bl 0x10007a9d0", + "0x10003df3c: tbnz w0, #0x0, 0x10003e040", + "0x10003df40: fmov d0, d15", + "0x10003df44: fmov d1, d14", + "0x10003df48: fmov d2, d13", + "0x10003df4c: fmov d3, d12", + "0x10003df50: bl 0x10007a9b8", + "0x10003df54: tbnz w0, #0x0, 0x10003e040", + "0x10003df58: fmov d0, d15", + "0x10003df5c: fmov d1, d14", + "0x10003df60: fmov d2, d13", + "0x10003df64: fmov d3, d12", + "0x10003df68: bl 0x10007a988", + "0x10003df6c: mov x8, #0x3cb0000000000000", + "0x10003df70: fmov d1, x8", + "0x10003df74: fcmp d0, d1", + "0x10003df78: b.le 0x10003e040", + "0x10003df7c: fmov d0, d15", + "0x10003df80: fmov d1, d14", + "0x10003df84: fmov d2, d13", + "0x10003df88: fmov d3, d12", + "0x10003df8c: bl 0x10007a934", + "0x10003df90: mov x8, #0x3cb0000000000000", + "0x10003df94: fmov d1, x8", + "0x10003df98: fcmp d0, d1", + "0x10003df9c: b.le 0x10003e040", + "0x10003dfa0: cbz x26, 0x10003e050", + "0x10003dfa4: cbz x24, 0x10003e050", + "0x10003dfa8: eor w8, w27, #0x1", + "0x10003dfac: cbz w8, 0x10003e050", + "0x10003dfb0: ldr q0, [x20]", + "0x10003dfb4: str q0, [sp, #0x160]", + "0x10003dfb8: ldr x8, [x20, #0x10]", + "0x10003dfbc: str x8, [sp, #0x170]", + "0x10003dfc0: add x3, sp, #0x160", + "0x10003dfc4: mov x0, x22", + "0x10003dfc8: mov x2, x26", + "0x10003dfcc: mov x4, x24", + "0x10003dfd0: mov w5, #0x1", + "0x10003dfd4: bl 0x100083460", + "0x10003dfd8: bl 0x10002d838", + "0x10003dfdc: stp d1, d0, [sp, #0xa0]", + "0x10003dfe0: stp d3, d2, [sp, #0x90]", + "0x10003dfe4: ldp d1, d0, [sp, #0xa0]", + "0x10003dfe8: ldp d3, d2, [sp, #0x90]", + "0x10003dfec: bl 0x10007a9d0", + "0x10003dff0: tbnz w0, #0x0, 0x10003e4ac", + "0x10003dff4: ldp d1, d0, [sp, #0xa0]", + "0x10003dff8: ldp d3, d2, [sp, #0x90]", + "0x10003dffc: bl 0x10007a9b8", + "0x10003e000: tbnz w0, #0x0, 0x10003e4ac", + "0x10003e004: ldp d1, d0, [sp, #0xa0]", + "0x10003e008: ldp d3, d2, [sp, #0x90]", + "0x10003e00c: bl 0x10007a988", + "0x10003e010: mov x8, #0x3cb0000000000000", + "0x10003e014: fmov d1, x8", + "0x10003e018: fcmp d0, d1", + "0x10003e01c: b.le 0x10003e4ac", + "0x10003e020: ldp d1, d0, [sp, #0xa0]", + "0x10003e024: ldp d3, d2, [sp, #0x90]", + "0x10003e028: bl 0x10007a934", + "0x10003e02c: mov x8, #0x3cb0000000000000", + "0x10003e030: fmov d1, x8", + "0x10003e034: fcmp d0, d1", + "0x10003e038: cset w27, gt", + "0x10003e03c: b 0x10003e050", + "0x10003e040: mov x24, #0x0", + "0x10003e044: mov x25, #0x0", + "0x10003e048: ldp d12, d13, [sp, #0xb0]", + "0x10003e04c: ldp d14, d15, [sp, #0xc0]", + "0x10003e050: mov x0, x25", + "0x10003e054: bl 0x10007d560", + "0x10003e058: cmp x0, #0x4d", + "0x10003e05c: b.cc 0x10003e130", + "0x10003e060: fmov d0, d15", + "0x10003e064: fmov d1, d14", + "0x10003e068: fmov d2, d13", + "0x10003e06c: fmov d3, d12", + "0x10003e070: bl 0x10007a9d0", + "0x10003e074: tbnz w0, #0x0, 0x10003e130", + "0x10003e078: fmov d0, d15", + "0x10003e07c: fmov d1, d14", + "0x10003e080: fmov d2, d13", + "0x10003e084: fmov d3, d12", + "0x10003e088: bl 0x10007a9b8", + "0x10003e08c: tbnz w0, #0x0, 0x10003e130", + "0x10003e090: fmov d0, d15", + "0x10003e094: fmov d1, d14", + "0x10003e098: fmov d2, d13", + "0x10003e09c: fmov d3, d12", + "0x10003e0a0: bl 0x10007a988", + "0x10003e0a4: mov x8, #0x3cb0000000000000", + "0x10003e0a8: fmov d1, x8", + "0x10003e0ac: fcmp d0, d1", + "0x10003e0b0: b.le 0x10003e130", + "0x10003e0b4: fmov d0, d15", + "0x10003e0b8: fmov d1, d14", + "0x10003e0bc: fmov d2, d13", + "0x10003e0c0: fmov d3, d12", + "0x10003e0c4: bl 0x10007a934", + "0x10003e0c8: mov x8, #0x3cb0000000000000", + "0x10003e0cc: fmov d1, x8", + "0x10003e0d0: fcmp d0, d1", + "0x10003e0d4: b.le 0x10003e130", + "0x10003e0d8: mov x0, x24", + "0x10003e0dc: bl 0x10007f900", + "0x10003e0e0: mov x26, x0", + "0x10003e0e4: bl 0x10007cae0", + "0x10003e0e8: mov x19, x0", + "0x10003e0ec: mov x0, x26", + "0x10003e0f0: bl 0x10007e060", + "0x10003e0f4: cbz x24, 0x10003e130", + "0x10003e0f8: cbz x26, 0x10003e130", + "0x10003e0fc: cbz x19, 0x10003e130", + "0x10003e100: mov x28, x0", + "0x10003e104: mov x0, x19", + "0x10003e108: bl 0x1000806c0", + "0x10003e10c: cmp x0, #0x4c", + "0x10003e110: b.cc 0x10003e130", + "0x10003e114: mov x0, x19", + "0x10003e118: bl 0x1000801c0", + "0x10003e11c: cbz x0, 0x10003e130", + "0x10003e120: mov x0, x28", + "0x10003e124: bl 0x1000806c0", + "0x10003e128: cmp x0, #0xa", + "0x10003e12c: b.hi 0x10003e4b4", + "0x10003e130: mov w26, #0x0", + "0x10003e134: ldr w8, [sp, #0x84]", + "0x10003e138: tbz w8, #0x0, 0x10003e178", + "0x10003e13c: add x8, x22, #0x3b8", + "0x10003e140: ldr q3, [sp, #0x70]", + "0x10003e144: fcmlt v0.2D, v3.2D", + "0x10003e148: fmov v1.2D, #0x3ff0000000000000", + "0x10003e14c: fcmgt v2.2D, v3.2D, v1.2D", + "0x10003e150: bif v1.16B, v3.16B, v2.16B", + "0x10003e154: bic v0.16B, v1.16B, v0.16B", + "0x10003e158: str q0, [x8]", + "0x10003e15c: ldr x8, [x22, #0x3c8]", + "0x10003e160: ldr x9, [sp, #0x38]", + "0x10003e164: cmp x9, x8", + "0x10003e168: csel x8, x9, x8, gt", + "0x10003e16c: str x8, [x22, #0x3c8]", + "0x10003e170: mov w8, #0x1", + "0x10003e174: b 0x10003e17c", + "0x10003e178: mov w8, #0x0", + "0x10003e17c: strb w8, [x22, #0x3b1]", + "0x10003e180: cbz w26, 0x10003e200", + "0x10003e184: ldr x0, [x22, #0x370]", + "0x10003e188: bl 0x10007ae98", + "0x10003e18c: mov x0, x25", + "0x10003e190: bl 0x10007d520", + "0x10003e194: add x8, x22, #0x370", + "0x10003e198: str x0, [x8]", + "0x10003e19c: str d15, [x22, #0x378]", + "0x10003e1a0: str d14, [x22, #0x380]", + "0x10003e1a4: str d13, [x22, #0x388]", + "0x10003e1a8: str d12, [x22, #0x390]", + "0x10003e1ac: add x8, x22, #0x398", + "0x10003e1b0: ldr q0, [x20]", + "0x10003e1b4: ldr x9, [x20, #0x10]", + "0x10003e1b8: str x9, [x22, #0x3a8]", + "0x10003e1bc: str q0, [x8]", + "0x10003e1c0: mov w8, #0x1", + "0x10003e1c4: strb w8, [x22, #0x3b0]", + "0x10003e1c8: bl 0x10007aea4", + "0x10003e1cc: mov x25, x0", + "0x10003e1d0: mov w19, #0x0", + "0x10003e1d4: add x8, x22, #0x378", + "0x10003e1d8: add x9, x22, #0x380", + "0x10003e1dc: add x10, x22, #0x388", + "0x10003e1e0: add x11, x22, #0x390", + "0x10003e1e4: ldr d1, [x8]", + "0x10003e1e8: ldr d0, [x9]", + "0x10003e1ec: stp d0, d1, [sp, #0xc0]", + "0x10003e1f0: ldr d0, [x10]", + "0x10003e1f4: str d0, [sp, #0xb8]", + "0x10003e1f8: ldr d0, [x11]", + "0x10003e1fc: b 0x10003e338", + "0x10003e200: ldr w8, [sp, #0x4c]", + "0x10003e204: cbz w8, 0x10003e304", + "0x10003e208: ldp d7, d6, [sp, #0x90]", + "0x10003e20c: ldp d5, d4, [sp, #0xa0]", + "0x10003e210: tbnz w27, #0x0, 0x10003e2ac", + "0x10003e214: fmov d0, d15", + "0x10003e218: fmov d1, d14", + "0x10003e21c: fmov d2, d13", + "0x10003e220: fmov d3, d12", + "0x10003e224: bl 0x10007a9d0", + "0x10003e228: tbnz w0, #0x0, 0x10003e29c", + "0x10003e22c: fmov d0, d15", + "0x10003e230: fmov d1, d14", + "0x10003e234: fmov d2, d13", + "0x10003e238: fmov d3, d12", + "0x10003e23c: bl 0x10007a9b8", + "0x10003e240: tbnz w0, #0x0, 0x10003e29c", + "0x10003e244: fmov d0, d15", + "0x10003e248: fmov d1, d14", + "0x10003e24c: fmov d2, d13", + "0x10003e250: fmov d3, d12", + "0x10003e254: bl 0x10007a988", + "0x10003e258: mov x8, #0x3cb0000000000000", + "0x10003e25c: fmov d1, x8", + "0x10003e260: fcmp d0, d1", + "0x10003e264: b.le 0x10003e29c", + "0x10003e268: fmov d0, d15", + "0x10003e26c: fmov d1, d14", + "0x10003e270: fmov d2, d13", + "0x10003e274: fmov d3, d12", + "0x10003e278: bl 0x10007a934", + "0x10003e27c: mov x8, #0x3cb0000000000000", + "0x10003e280: fmov d1, x8", + "0x10003e284: fcmp d0, d1", + "0x10003e288: fmov d7, d12", + "0x10003e28c: fmov d6, d13", + "0x10003e290: fmov d5, d14", + "0x10003e294: fmov d4, d15", + "0x10003e298: b.gt 0x10003e2ac", + "0x10003e29c: ldr d4, [x22, #0x378]", + "0x10003e2a0: ldr d5, [x22, #0x380]", + "0x10003e2a4: ldr d6, [x22, #0x388]", + "0x10003e2a8: ldr d7, [x22, #0x390]", + "0x10003e2ac: ldr x0, [x22, #0x370]", + "0x10003e2b0: ldr d0, [x22, #0x378]", + "0x10003e2b4: ldr d1, [x22, #0x380]", + "0x10003e2b8: ldr d2, [x22, #0x388]", + "0x10003e2bc: ldr d3, [x22, #0x390]", + "0x10003e2c0: stp d5, d4, [sp, #0xc0]", + "0x10003e2c4: stp d7, d6, [sp, #0xb0]", + "0x10003e2c8: bl 0x10001ab3c", + "0x10003e2cc: mov x25, x0", + "0x10003e2d0: bl 0x10007d560", + "0x10003e2d4: cmp x0, #0x4d", + "0x10003e2d8: b.cc 0x10003e310", + "0x10003e2dc: mov x0, x25", + "0x10003e2e0: ldp d1, d0, [sp, #0xc0]", + "0x10003e2e4: ldp d3, d2, [sp, #0xb0]", + "0x10003e2e8: bl 0x10001b070", + "0x10003e2ec: cbz w0, 0x10003e310", + "0x10003e2f0: mov x0, x25", + "0x10003e2f4: bl 0x10007aea4", + "0x10003e2f8: mov x25, x0", + "0x10003e2fc: mov w19, #0x1", + "0x10003e300: b 0x10003e33c", + "0x10003e304: mov w19, #0x0", + "0x10003e308: mov x25, #0x0", + "0x10003e30c: b 0x10003e33c", + "0x10003e310: ldr x0, [x22, #0x370]", + "0x10003e314: bl 0x10007aea4", + "0x10003e318: mov x25, x0", + "0x10003e31c: ldr d1, [x22, #0x378]", + "0x10003e320: ldr d0, [x22, #0x380]", + "0x10003e324: stp d0, d1, [sp, #0xc0]", + "0x10003e328: ldr d0, [x22, #0x388]", + "0x10003e32c: str d0, [sp, #0xb8]", + "0x10003e330: mov w19, #0x1", + "0x10003e334: ldr d0, [x22, #0x390]", + "0x10003e338: str d0, [sp, #0xb0]", + "0x10003e33c: ldr x0, [x22, #0x28]", + "0x10003e340: bl 0x1000834c0", + "0x10003e344: ldr x21, [x29, #0x10]", + "0x10003e348: ldr x9, [sp, #0x40]", + "0x10003e34c: cbz x9, 0x10003e364", + "0x10003e350: cmp w26, #0x0", + "0x10003e354: csel x8, x24, xzr, ne", + "0x10003e358: cmp w19, #0x0", + "0x10003e35c: csel x8, xzr, x8, ne", + "0x10003e360: str x8, [x9]", + "0x10003e364: cbz x21, 0x10003e384", + "0x10003e368: mov x0, x25", + "0x10003e36c: bl 0x10007d560", + "0x10003e370: cmp x0, #0x4c", + "0x10003e374: movi d0, #0x0", + "0x10003e378: fmov d1, 0x3ff0000000000000", + "0x10003e37c: fcsel d0, d1, d0, hi", + "0x10003e380: str d0, [x21]", + "0x10003e384: ldp x9, x8, [x29, #0x18]", + "0x10003e388: cbz x9, 0x10003e39c", + "0x10003e38c: ldp d0, d1, [sp, #0xc0]", + "0x10003e390: stp d1, d0, [x9]", + "0x10003e394: ldp d0, d1, [sp, #0xb0]", + "0x10003e398: stp d1, d0, [x9, #0x10]", + "0x10003e39c: cbz x8, 0x10003e3a4", + "0x10003e3a0: strb w19, [x8]", + "0x10003e3a4: ldr w8, [x20, #0xc]", + "0x10003e3a8: mov w9, #0x1d", + "0x10003e3ac: and w8, w8, w9", + "0x10003e3b0: cmp w8, #0x1", + "0x10003e3b4: b.ne 0x10003e3d0", + "0x10003e3b8: ldr q0, [x20]", + "0x10003e3bc: str q0, [sp, #0x160]", + "0x10003e3c0: ldr x8, [x20, #0x10]", + "0x10003e3c4: str x8, [sp, #0x170]", + "0x10003e3c8: add x0, sp, #0x160", + "0x10003e3cc: bl 0x10007a9f4", + "0x10003e3d0: ldr x0, [sp, #0x88]", + "0x10003e3d4: bl 0x10007d560", + "0x10003e3d8: mov x0, x23", + "0x10003e3dc: bl 0x10007d560", + "0x10003e3e0: ldp d0, d1, [sp, #0x50]", + "0x10003e3e4: ldp d2, d3, [sp, #0x60]", + "0x10003e3e8: bl 0x10001b584", + "0x10003e3ec: ldp d1, d0, [sp, #0xa0]", + "0x10003e3f0: ldp d3, d2, [sp, #0x90]", + "0x10003e3f4: bl 0x10001b584", + "0x10003e3f8: ldp d1, d0, [sp, #0xc0]", + "0x10003e3fc: ldp d3, d2, [sp, #0xb0]", + "0x10003e400: bl 0x10001b584", + "0x10003e404: mov x0, x25", + "0x10003e408: bl 0x10007d560", + "0x10003e40c: mov x0, x25", + "0x10003e410: bl 0x10007adfc", + "0x10003e414: ldur x8, [x29, #-0xa0]", + "0x10003e418: adrp x9, 0x1000a8000", + "0x10003e41c: ldr x9, [x9, #0xe8]", + "0x10003e420: ldr x9, [x9]", + "0x10003e424: cmp x9, x8", + "0x10003e428: b.ne 0x10003e9c8", + "0x10003e42c: add sp, sp, #0x1f0", + "0x10003e430: ldp x29, x30, [sp, #0x90]", + "0x10003e434: ldp x20, x19, [sp, #0x80]", + "0x10003e438: ldp x22, x21, [sp, #0x70]", + "0x10003e43c: ldp x24, x23, [sp, #0x60]", + "0x10003e440: ldp x26, x25, [sp, #0x50]", + "0x10003e444: ldp x28, x27, [sp, #0x40]", + "0x10003e448: ldp d9, d8, [sp, #0x30]", + "0x10003e44c: ldp d11, d10, [sp, #0x20]", + "0x10003e450: ldp d13, d12, [sp, #0x10]", + "0x10003e454: ldp d15, d14, [sp], #0xa0", + "0x10003e458: ret", + "0x10003e45c: ldr x0, [x22, #0x370]", + "0x10003e460: bl 0x10007ae98", + "0x10003e464: str wzr, [sp, #0x4c]", + "0x10003e468: add x8, x22, #0x370", + "0x10003e46c: str xzr, [x8]", + "0x10003e470: adrp x8, 0x1000a8000", + "0x10003e474: ldr x8, [x8, #0x150]", + "0x10003e478: add x9, x22, #0x378", + "0x10003e47c: ldp q0, q1, [x8]", + "0x10003e480: adrp x8, 0x1000a8000", + "0x10003e484: ldr x8, [x8, #0x208]", + "0x10003e488: stp q0, q1, [x9]", + "0x10003e48c: ldr q0, [x8]", + "0x10003e490: str q0, [x19]", + "0x10003e494: ldr x8, [x8, #0x10]", + "0x10003e498: str x8, [x19, #0x10]", + "0x10003e49c: strb wzr, [x22, #0x3b0]", + "0x10003e4a0: b 0x10003d864", + "0x10003e4a4: mov x23, #0x0", + "0x10003e4a8: b 0x10003de34", + "0x10003e4ac: mov w27, #0x0", + "0x10003e4b0: b 0x10003e050", + "0x10003e4b4: mov x0, x19", + "0x10003e4b8: bl 0x1000801c0", + "0x10003e4bc: add x8, x0, #0x8", + "0x10003e4c0: mov w9, #0x4c", + "0x10003e4c4: adrp x10, 0x100086000", + "0x10003e4c8: ldr d0, [x10, #0x4d0]", + "0x10003e4cc: adrp x10, 0x100086000", + "0x10003e4d0: ldr d1, [x10, #0x4c8]", + "0x10003e4d4: mov x10, #0x7fefffffffffffff", + "0x10003e4d8: ldur d2, [x8, #-0x8]", + "0x10003e4dc: fmov x11, d2", + "0x10003e4e0: and x11, x11, #0x7fffffffffffffff", + "0x10003e4e4: cmp x11, x10", + "0x10003e4e8: b.gt 0x10003e130", + "0x10003e4ec: ldr d3, [x8]", + "0x10003e4f0: fmov x11, d3", + "0x10003e4f4: and x11, x11, #0x7fffffffffffffff", + "0x10003e4f8: cmp x11, x10", + "0x10003e4fc: cset w11, gt", + "0x10003e500: fcmp d3, d0", + "0x10003e504: b.gt 0x10003e130", + "0x10003e508: fcmp d3, d1", + "0x10003e50c: b.mi 0x10003e130", + "0x10003e510: fcmp d2, d0", + "0x10003e514: b.gt 0x10003e130", + "0x10003e518: fcmp d2, d1", + "0x10003e51c: b.mi 0x10003e130", + "0x10003e520: tbnz w11, #0x0, 0x10003e130", + "0x10003e524: add x8, x8, #0x10", + "0x10003e528: subs x9, x9, #0x1", + "0x10003e52c: b.ne 0x10003e4d8", + "0x10003e530: adrp x8, 0x1000a8000", + "0x10003e534: ldr x8, [x8, #0x140]", + "0x10003e538: ldr q0, [x8]", + "0x10003e53c: stp q0, q0, [sp, #0x140]", + "0x10003e540: stp q0, q0, [sp, #0x120]", + "0x10003e544: str q0, [sp, #0x110]", + "0x10003e548: mov x0, x26", + "0x10003e54c: bl 0x10007f9a0", + "0x10003e550: add x1, sp, #0x150", + "0x10003e554: bl 0x1000547c8", + "0x10003e558: cbz w0, 0x10003e130", + "0x10003e55c: mov x0, x26", + "0x10003e560: bl 0x100080c20", + "0x10003e564: add x1, sp, #0x140", + "0x10003e568: bl 0x1000547c8", + "0x10003e56c: cbz w0, 0x10003e130", + "0x10003e570: mov x0, x26", + "0x10003e574: bl 0x100080200", + "0x10003e578: add x1, sp, #0x130", + "0x10003e57c: bl 0x1000547c8", + "0x10003e580: cbz w0, 0x10003e130", + "0x10003e584: mov x0, x26", + "0x10003e588: bl 0x1000804c0", + "0x10003e58c: add x1, sp, #0x120", + "0x10003e590: bl 0x1000547c8", + "0x10003e594: cbz w0, 0x10003e130", + "0x10003e598: add x1, sp, #0x110", + "0x10003e59c: mov x0, x28", + "0x10003e5a0: bl 0x1000548d0", + "0x10003e5a4: tbz w0, #0x0, 0x10003e130", + "0x10003e5a8: mov x0, x26", + "0x10003e5ac: bl 0x10007d320", + "0x10003e5b0: fmov s8, s0", + "0x10003e5b4: mov x0, x19", + "0x10003e5b8: bl 0x100080720", + "0x10003e5bc: str x0, [sp, #0x30]", + "0x10003e5c0: ldr x0, [sp, #0x30]", + "0x10003e5c4: bl 0x10007d560", + "0x10003e5c8: cmp x0, #0x4c", + "0x10003e5cc: b.cc 0x10003e650", + "0x10003e5d0: movi v0.2D, #0x0", + "0x10003e5d4: stp q0, q0, [sp, #0xf0]", + "0x10003e5d8: stp q0, q0, [sp, #0xd0]", + "0x10003e5dc: add x2, sp, #0xd0", + "0x10003e5e0: add x3, sp, #0x160", + "0x10003e5e4: ldr x0, [sp, #0x30]", + "0x10003e5e8: mov w4, #0x10", + "0x10003e5ec: bl 0x10007d580", + "0x10003e5f0: mov x26, x0", + "0x10003e5f4: cbz x0, 0x10003e650", + "0x10003e5f8: ldr x8, [sp, #0xe0]", + "0x10003e5fc: ldr x19, [x8]", + "0x10003e600: mov x28, #0x0", + "0x10003e604: ldr x8, [sp, #0xe0]", + "0x10003e608: ldr x8, [x8]", + "0x10003e60c: cmp x8, x19", + "0x10003e610: b.eq 0x10003e61c", + "0x10003e614: ldr x0, [sp, #0x30]", + "0x10003e618: bl 0x10007ae2c", + "0x10003e61c: ldr x8, [sp, #0xd8]", + "0x10003e620: ldr x0, [x8, x28, LSL #0x3]", + "0x10003e624: bl 0x10007dac0", + "0x10003e628: add x28, x28, #0x1", + "0x10003e62c: cmp x26, x28", + "0x10003e630: b.ne 0x10003e604", + "0x10003e634: add x2, sp, #0xd0", + "0x10003e638: add x3, sp, #0x160", + "0x10003e63c: ldr x0, [sp, #0x30]", + "0x10003e640: mov w4, #0x10", + "0x10003e644: bl 0x10007d580", + "0x10003e648: mov x26, x0", + "0x10003e64c: cbnz x0, 0x10003e600", + "0x10003e650: fcvt d9, s8", + "0x10003e654: ldp d0, d1, [sp, #0x150]", + "0x10003e658: ldp d2, d3, [sp, #0x140]", + "0x10003e65c: fadd d4, d0, d2", + "0x10003e660: fmov d5, 0x3fe0000000000000", + "0x10003e664: fmul d10, d4, d5", + "0x10003e668: fadd d4, d1, d3", + "0x10003e66c: fmul d11, d4, d5", + "0x10003e670: fsub d0, d2, d0", + "0x10003e674: fsub d1, d3, d1", + "0x10003e678: str d0, [sp, #0x30]", + "0x10003e67c: fmov d8, d1", + "0x10003e680: bl 0x10007ad84", + "0x10003e684: fmov x8, d0", + "0x10003e688: and x8, x8, #0x7fffffffffffffff", + "0x10003e68c: mov x9, #0x3cb0000000000000", + "0x10003e690: fmov d1, x9", + "0x10003e694: fcmp d0, d1", + "0x10003e698: mov x9, #0x7ff0000000000000", + "0x10003e69c: ccmp x8, x9, #0x0, gt", + "0x10003e6a0: cset w8, lt", + "0x10003e6a4: cmp w8, #0x1", + "0x10003e6a8: b.ne 0x10003e6bc", + "0x10003e6ac: ldr d1, [sp, #0x30]", + "0x10003e6b0: fdiv d1, d1, d0", + "0x10003e6b4: str d1, [sp, #0x30]", + "0x10003e6b8: fdiv d8, d8, d0", + "0x10003e6bc: ldr d6, [sp, #0x30]", + "0x10003e6c0: fneg d1, d6", + "0x10003e6c4: ldp d7, d16, [sp, #0x120]", + "0x10003e6c8: fsub d2, d7, d10", + "0x10003e6cc: fsub d3, d16, d11", + "0x10003e6d0: fnmul d4, d6, d3", + "0x10003e6d4: fmadd d4, d2, d8, d4", + "0x10003e6d8: fneg d5, d8", + "0x10003e6dc: fcmp d4, #0.0", + "0x10003e6e0: fcsel d5, d5, d8, mi", + "0x10003e6e4: fcsel d6, d6, d1, mi", + "0x10003e6e8: fmul d1, d3, d6", + "0x10003e6ec: fmadd d3, d2, d5, d1", + "0x10003e6f0: ldp d17, d18, [sp, #0x110]", + "0x10003e6f4: fsub d1, d17, d10", + "0x10003e6f8: ldp d2, d4, [sp, #0x130]", + "0x10003e6fc: fsub d19, d2, d10", + "0x10003e700: fsub d2, d18, d11", + "0x10003e704: fsub d4, d4, d11", + "0x10003e708: fmul d4, d4, d6", + "0x10003e70c: fmadd d4, d19, d5, d4", + "0x10003e710: fmov x9, d9", + "0x10003e714: and x9, x9, #0x7fffffffffffffff", + "0x10003e718: adrp x10, 0x100086000", + "0x10003e71c: ldr d19, [x10, #0x1f0]", + "0x10003e720: fcmp d9, d19", + "0x10003e724: mov x10, #0x7fefffffffffffff", + "0x10003e728: ccmp x9, x10, #0x0, ge", + "0x10003e72c: cset w9, gt", + "0x10003e730: adrp x10, 0x100086000", + "0x10003e734: ldr d19, [x10, #0xb0]", + "0x10003e738: fcmp d3, d19", + "0x10003e73c: csel w11, wzr, w8, lt", + "0x10003e740: mov w10, #0x1", + "0x10003e744: cmp w11, #0x1", + "0x10003e748: b.ne 0x10003e784", + "0x10003e74c: fsub d7, d17, d7", + "0x10003e750: fsub d16, d18, d16", + "0x10003e754: fmul d16, d16, d6", + "0x10003e758: fmadd d7, d7, d5, d16", + "0x10003e75c: adrp x11, 0x100086000", + "0x10003e760: ldr d16, [x11, #0x150]", + "0x10003e764: fcmp d7, d16", + "0x10003e768: b.lt 0x10003e784", + "0x10003e76c: fmul d6, d2, d6", + "0x10003e770: fmadd d5, d1, d5, d6", + "0x10003e774: adrp x10, 0x100086000", + "0x10003e778: ldr d6, [x10, #0x118]", + "0x10003e77c: fcmp d5, d6", + "0x10003e780: cset w10, lt", + "0x10003e784: adrp x11, 0x100086000", + "0x10003e788: ldr d5, [x11, #0x608]", + "0x10003e78c: fcmp d4, d5", + "0x10003e790: csel w11, wzr, w8, lt", + "0x10003e794: cmp w11, #0x1", + "0x10003e798: b.ne 0x10003e7b4", + "0x10003e79c: adrp x11, 0x100086000", + "0x10003e7a0: ldr d5, [x11, #0xf8]", + "0x10003e7a4: fadd d3, d3, d5", + "0x10003e7a8: fcmp d4, d3", + "0x10003e7ac: cset w11, ls", + "0x10003e7b0: b 0x10003e7b8", + "0x10003e7b4: mov w11, #0x0", + "0x10003e7b8: orr w9, w9, w10", + "0x10003e7bc: tbnz w9, #0x0, 0x10003e130", + "0x10003e7c0: fmul d2, d8, d2", + "0x10003e7c4: adrp x9, 0x100086000", + "0x10003e7c8: ldr d3, [x9, #0x600]", + "0x10003e7cc: adrp x9, 0x100086000", + "0x10003e7d0: ldr d11, [x9, #0x348]", + "0x10003e7d4: ldr d4, [sp, #0x30]", + "0x10003e7d8: fmadd d1, d1, d4, d2", + "0x10003e7dc: fmov d4, 0x3fe0000000000000", + "0x10003e7e0: fmsub d2, d0, d4, d3", + "0x10003e7e4: fmadd d3, d0, d4, d11", + "0x10003e7e8: fcmp d1, d2", + "0x10003e7ec: cset w9, ge", + "0x10003e7f0: fcmp d1, d3", + "0x10003e7f4: csel w9, wzr, w9, hi", + "0x10003e7f8: adrp x10, 0x100086000", + "0x10003e7fc: ldr d1, [x10, #0x120]", + "0x10003e800: fcmp d0, d1", + "0x10003e804: csel w10, wzr, w11, lt", + "0x10003e808: and w8, w8, w10", + "0x10003e80c: and w26, w8, w9", + "0x10003e810: ldr w8, [sp, #0x4c]", + "0x10003e814: and w8, w26, w8", + "0x10003e818: eor w8, w8, #0x1", + "0x10003e81c: orr w8, w21, w8", + "0x10003e820: tbnz w8, #0x0, 0x10003e134", + "0x10003e824: ldr x21, [x22, #0x370]", + "0x10003e828: ldr d8, [x22, #0x378]", + "0x10003e82c: ldr d9, [x22, #0x380]", + "0x10003e830: ldr d10, [x22, #0x388]", + "0x10003e834: ldr d0, [x22, #0x390]", + "0x10003e838: str d0, [sp, #0x30]", + "0x10003e83c: mov x0, x25", + "0x10003e840: bl 0x10007d560", + "0x10003e844: cmp x0, #0x4d", + "0x10003e848: b.cc 0x10003e134", + "0x10003e84c: mov x0, x21", + "0x10003e850: bl 0x10007d560", + "0x10003e854: cmp x0, #0x4d", + "0x10003e858: b.cc 0x10003e134", + "0x10003e85c: fmov d0, d15", + "0x10003e860: fmov d1, d14", + "0x10003e864: fmov d2, d13", + "0x10003e868: fmov d3, d12", + "0x10003e86c: bl 0x10007a9d0", + "0x10003e870: tbnz w0, #0x0, 0x10003e134", + "0x10003e874: fmov d0, d15", + "0x10003e878: fmov d1, d14", + "0x10003e87c: fmov d2, d13", + "0x10003e880: fmov d3, d12", + "0x10003e884: bl 0x10007a9b8", + "0x10003e888: tbnz w0, #0x0, 0x10003e134", + "0x10003e88c: fmov d0, d15", + "0x10003e890: fmov d1, d14", + "0x10003e894: fmov d2, d13", + "0x10003e898: fmov d3, d12", + "0x10003e89c: bl 0x10007a988", + "0x10003e8a0: mov x8, #0x3cb0000000000000", + "0x10003e8a4: fmov d1, x8", + "0x10003e8a8: fcmp d0, d1", + "0x10003e8ac: b.le 0x10003e134", + "0x10003e8b0: fmov d0, d15", + "0x10003e8b4: fmov d1, d14", + "0x10003e8b8: fmov d2, d13", + "0x10003e8bc: fmov d3, d12", + "0x10003e8c0: bl 0x10007a934", + "0x10003e8c4: mov x8, #0x3cb0000000000000", + "0x10003e8c8: fmov d1, x8", + "0x10003e8cc: fcmp d0, d1", + "0x10003e8d0: b.le 0x10003e134", + "0x10003e8d4: fmov d0, d8", + "0x10003e8d8: fmov d1, d9", + "0x10003e8dc: fmov d2, d10", + "0x10003e8e0: ldr d3, [sp, #0x30]", + "0x10003e8e4: bl 0x10007a9d0", + "0x10003e8e8: tbnz w0, #0x0, 0x10003e134", + "0x10003e8ec: fmov d0, d8", + "0x10003e8f0: fmov d1, d9", + "0x10003e8f4: fmov d2, d10", + "0x10003e8f8: ldr d3, [sp, #0x30]", + "0x10003e8fc: bl 0x10007a9b8", + "0x10003e900: tbnz w0, #0x0, 0x10003e134", + "0x10003e904: fmov d0, d8", + "0x10003e908: fmov d1, d9", + "0x10003e90c: fmov d2, d10", + "0x10003e910: ldr d3, [sp, #0x30]", + "0x10003e914: bl 0x10007a988", + "0x10003e918: mov x8, #0x3cb0000000000000", + "0x10003e91c: fmov d1, x8", + "0x10003e920: fcmp d0, d1", + "0x10003e924: b.le 0x10003e134", + "0x10003e928: fmov d0, d8", + "0x10003e92c: fmov d1, d9", + "0x10003e930: fmov d2, d10", + "0x10003e934: ldr d3, [sp, #0x30]", + "0x10003e938: bl 0x10007a934", + "0x10003e93c: mov x8, #0x3cb0000000000000", + "0x10003e940: fmov d1, x8", + "0x10003e944: fcmp d0, d1", + "0x10003e948: b.le 0x10003e134", + "0x10003e94c: fmov d0, d15", + "0x10003e950: fmov d1, d14", + "0x10003e954: fmov d2, d13", + "0x10003e958: fmov d3, d12", + "0x10003e95c: fmov d4, d8", + "0x10003e960: fmov d5, d9", + "0x10003e964: fmov d6, d10", + "0x10003e968: ldr d7, [sp, #0x30]", + "0x10003e96c: bl 0x1000549d4", + "0x10003e970: cbz w0, 0x10003e134", + "0x10003e974: mov x8, #0x7ff8000000000000", + "0x10003e978: str x8, [sp, #0x160]", + "0x10003e97c: str x8, [sp, #0xd0]", + "0x10003e980: str x8, [sp, #0x150]", + "0x10003e984: add x2, sp, #0x160", + "0x10003e988: add x3, sp, #0xd0", + "0x10003e98c: add x4, sp, #0x150", + "0x10003e990: mov x0, x25", + "0x10003e994: fmov d0, d15", + "0x10003e998: fmov d1, d14", + "0x10003e99c: fmov d2, d13", + "0x10003e9a0: fmov d3, d12", + "0x10003e9a4: mov x1, x21", + "0x10003e9a8: fmov d4, d8", + "0x10003e9ac: fmov d5, d9", + "0x10003e9b0: fmov d6, d10", + "0x10003e9b4: ldr d7, [sp, #0x30]", + "0x10003e9b8: bl 0x100043338", + "0x10003e9bc: tbz w0, #0x0, 0x10003e9cc", + "0x10003e9c0: mov w8, #0x0", + "0x10003e9c4: b 0x10003ea0c", + "0x10003e9c8: bl 0x10007aca0", + "0x10003e9cc: mov x0, x21", + "0x10003e9d0: fmov d0, d8", + "0x10003e9d4: fmov d1, d9", + "0x10003e9d8: fmov d2, d10", + "0x10003e9dc: ldr d3, [sp, #0x30]", + "0x10003e9e0: fmov d4, d15", + "0x10003e9e4: fmov d5, d14", + "0x10003e9e8: fmov d6, d13", + "0x10003e9ec: fmov d7, d12", + "0x10003e9f0: bl 0x10001ab3c", + "0x10003e9f4: str x0, [sp, #0x20]", + "0x10003e9f8: ldr x0, [sp, #0x20]", + "0x10003e9fc: bl 0x10007d560", + "0x10003ea00: cmp x0, #0x4d", + "0x10003ea04: b.cs 0x10003ea14", + "0x10003ea08: mov w8, #0x1", + "0x10003ea0c: and w26, w26, w8", + "0x10003ea10: b 0x10003e134", + "0x10003ea14: fmov d0, d15", + "0x10003ea18: fmov d1, d14", + "0x10003ea1c: fmov d2, d13", + "0x10003ea20: fmov d3, d12", + "0x10003ea24: bl 0x10007a988", + "0x10003ea28: fmov d8, d0", + "0x10003ea2c: fmov d0, d15", + "0x10003ea30: fmov d1, d14", + "0x10003ea34: fmov d2, d13", + "0x10003ea38: fmov d3, d12", + "0x10003ea3c: bl 0x10007a934", + "0x10003ea40: fcmp d8, d0", + "0x10003ea44: fcsel d1, d0, d8, mi", + "0x10003ea48: fmov x8, d1", + "0x10003ea4c: and x8, x8, #0x7fffffffffffffff", + "0x10003ea50: mov x9, #0x7fefffffffffffff", + "0x10003ea54: cmp x8, x9", + "0x10003ea58: cset w9, gt", + "0x10003ea5c: mov w8, #0x1", + "0x10003ea60: mov x10, #0x3cb0000000000000", + "0x10003ea64: fmov d0, x10", + "0x10003ea68: str d1, [sp, #0x18]", + "0x10003ea6c: fcmp d1, d0", + "0x10003ea70: b.ls 0x10003ea0c", + "0x10003ea74: tbnz w9, #0x0, 0x10003ea0c", + "0x10003ea78: adrp x8, 0x1000bb000", + "0x10003ea7c: ldr x0, [x8, #0xa00]", + "0x10003ea80: mov w2, #0x4c", + "0x10003ea84: bl 0x10007ccc0", + "0x10003ea88: mov x19, x0", + "0x10003ea8c: mov x21, #0x0", + "0x10003ea90: mov x28, #0x7fefffffffffffff", + "0x10003ea94: mov x0, x25", + "0x10003ea98: mov x2, x21", + "0x10003ea9c: bl 0x1000803c0", + "0x10003eaa0: str x0, [sp, #0x30]", + "0x10003eaa4: ldr x0, [sp, #0x20]", + "0x10003eaa8: mov x2, x21", + "0x10003eaac: bl 0x1000803c0", + "0x10003eab0: str x0, [sp, #0x28]", + "0x10003eab4: ldr x8, [sp, #0x30]", + "0x10003eab8: cbz x8, 0x10003eb90", + "0x10003eabc: ldr x8, [sp, #0x28]", + "0x10003eac0: cbz x8, 0x10003eb90", + "0x10003eac4: ldr x0, [sp, #0x30]", + "0x10003eac8: bl 0x10007c8c0", + "0x10003eacc: fmov x8, d0", + "0x10003ead0: and x8, x8, #0x7fffffffffffffff", + "0x10003ead4: cmp x8, x28", + "0x10003ead8: b.gt 0x10003eb90", + "0x10003eadc: ldr x0, [sp, #0x30]", + "0x10003eae0: bl 0x10007c8e0", + "0x10003eae4: fmov x8, d0", + "0x10003eae8: and x8, x8, #0x7fffffffffffffff", + "0x10003eaec: cmp x8, x28", + "0x10003eaf0: b.gt 0x10003eb90", + "0x10003eaf4: ldr x0, [sp, #0x28]", + "0x10003eaf8: bl 0x10007c8c0", + "0x10003eafc: fmov x8, d0", + "0x10003eb00: and x8, x8, #0x7fffffffffffffff", + "0x10003eb04: cmp x8, x28", + "0x10003eb08: b.gt 0x10003eb90", + "0x10003eb0c: ldr x0, [sp, #0x28]", + "0x10003eb10: bl 0x10007c8e0", + "0x10003eb14: fmov x8, d0", + "0x10003eb18: and x8, x8, #0x7fffffffffffffff", + "0x10003eb1c: cmp x8, x28", + "0x10003eb20: b.gt 0x10003eb90", + "0x10003eb24: ldr x0, [sp, #0x30]", + "0x10003eb28: bl 0x10007c8c0", + "0x10003eb2c: fmov d8, d0", + "0x10003eb30: ldr x0, [sp, #0x28]", + "0x10003eb34: bl 0x10007c8c0", + "0x10003eb38: fmov d9, d0", + "0x10003eb3c: ldr x0, [sp, #0x30]", + "0x10003eb40: bl 0x10007c8e0", + "0x10003eb44: fmov d10, d0", + "0x10003eb48: ldr x0, [sp, #0x28]", + "0x10003eb4c: bl 0x10007c8e0", + "0x10003eb50: fsub d2, d8, d9", + "0x10003eb54: fsub d1, d10, d0", + "0x10003eb58: fmov d0, d2", + "0x10003eb5c: bl 0x10007ad84", + "0x10003eb60: ldr d1, [sp, #0x18]", + "0x10003eb64: fdiv d0, d0, d1", + "0x10003eb68: fmov x8, d0", + "0x10003eb6c: and x8, x8, #0x7fffffffffffffff", + "0x10003eb70: cmp x8, x28", + "0x10003eb74: b.gt 0x10003eb90", + "0x10003eb78: adrp x8, 0x1000bb000", + "0x10003eb7c: ldr x0, [x8, #0xa10]", + "0x10003eb80: bl 0x100080280", + "0x10003eb84: mov x2, x0", + "0x10003eb88: mov x0, x19", + "0x10003eb8c: bl 0x10007ca00", + "0x10003eb90: add x21, x21, #0x1", + "0x10003eb94: cmp x21, #0x4c", + "0x10003eb98: b.ne 0x10003ea94", + "0x10003eb9c: mov x0, x19", + "0x10003eba0: bl 0x10007d560", + "0x10003eba4: cmp x0, #0x32", + "0x10003eba8: b.cc 0x10003ea08", + "0x10003ebac: adrp x8, 0x1000bb000", + "0x10003ebb0: ldr x2, [x8, #0x998]", + "0x10003ebb4: mov x0, x19", + "0x10003ebb8: bl 0x100082fc0", + "0x10003ebbc: mov x0, x19", + "0x10003ebc0: bl 0x10007d560", + "0x10003ebc4: mov x28, x0", + "0x10003ebc8: mov x0, x19", + "0x10003ebcc: bl 0x10007d560", + "0x10003ebd0: mov x21, x0", + "0x10003ebd4: mov x0, x19", + "0x10003ebd8: bl 0x10007d560", + "0x10003ebdc: lsr x2, x28, #0x1", + "0x10003ebe0: sub x8, x21, #0x1", + "0x10003ebe4: sub x9, x0, #0x1", + "0x10003ebe8: ucvtf d0, x9", + "0x10003ebec: adrp x9, 0x100086000", + "0x10003ebf0: ldr d1, [x9, #0x138]", + "0x10003ebf4: fmul d0, d0, d1", + "0x10003ebf8: fcvtmu x9, d0", + "0x10003ebfc: cmp x8, x9", + "0x10003ec00: csel x21, x8, x9, cc", + "0x10003ec04: mov x0, x19", + "0x10003ec08: bl 0x1000803c0", + "0x10003ec0c: bl 0x10007dac0", + "0x10003ec10: fmov d8, d0", + "0x10003ec14: mov x0, x19", + "0x10003ec18: mov x2, x21", + "0x10003ec1c: bl 0x1000803c0", + "0x10003ec20: bl 0x10007dac0", + "0x10003ec24: fcmp d8, d11", + "0x10003ec28: cset w8, ls", + "0x10003ec2c: adrp x9, 0x100086000", + "0x10003ec30: ldr d1, [x9, #0x1b0]", + "0x10003ec34: fcmp d0, d1", + "0x10003ec38: csel w8, wzr, w8, hi", + "0x10003ec3c: b 0x10003ea0c" + ], + "limitations": [ + "Instruction text and ordering are Ghidra-specific representations.", + "The fast path does not invoke the decompiler or scan whole-program names and strings.", + "Ghidra Listing reports a terminal call at 0x10003e9c8 to 0x10007aca0 ___stack_chk_fail (external=false, thunk=true, hasNoReturn=true); fallthrough is excluded by Ghidra's flow model. This records Ghidra's FunctionManager flag, not an independent verification that the callee cannot return." + ], + "procedure": { + "address": "0x10003d69c", + "body": { + "available": true, + "contains_entry": true, + "non_contiguous": false, + "provenance": "ghidra-function-body-address-set", + "ranges": [ + { + "end": "0x10003ec3f", + "start": "0x10003d69c" + } + ], + "span_bytes": 5540, + "total_bytes": 5540 + }, + "classification": { + "external": false, + "provenance": "ghidra-function-manager", + "thunk": false, + "thunk_target": null + }, + "name": "MSSuperSkinSmoothingPlugIn::mss_pinStyleFacePointsForObservations:renderTime:params:trackingInputImage:preferredBox:hasPreferredBox:selectedObservationOut:strengthMultiplierOut:pointsBoxOut:usedHoldOut:" + } + } + }, + "subject": { + "architecture": "arm64", + "digest": { + "sha256": "afc71d0d21fd3c1ca95ca745ddafcd729e36ad95f17d8638009f2e45d9b7e8df" + }, + "format": "mach-o", + "local_path": "/Users/dayu/Documents/PaintFCP/build/body-analysis/MSE18V2-arm64", + "name": "MSE18V2-arm64" + } + }, + { + "analysis_profile": { + "digest": "20565088524a2d0359b9b96f46ac48e679d774c7b0092c56abc06de8fdbec11c", + "parameters": { + "analyzer_preset": "ghidra-default", + "annotation_policy": "atomic-function-entry-metadata-v1", + "architecture": "arm64", + "available_architectures": [ + "arm64" + ], + "compiler_spec_id": "auto-default", + "decompiler_jump_loads": true, + "function_body_evidence": "complete-inclusive-ranges-v1", + "function_boundary_observations": "ghidra-terminal-call-limitations-v1", + "function_references": "complete-body-and-entry-reference-manager-v2", + "import_mode": "ephemeral-source-immutable", + "instruction_flow_evidence": "decoded-return-pcode-v1", + "jump_table_evidence": "typed-case-default-blocks-v1", + "language_id": "auto-from-header", + "load_image_observations": "source-mappings-entry-context-v2", + "loader": "auto-from-header", + "location_resolution": "explicit-address-exact-entry-symbol-first-v3", + "no_return_repair": "returning-imports-decoded-return-v2", + "process_launch": "inspected-jvm-launch-support-v1", + "string_inventory_evidence": "defined-data-coverage-v1", + "target_format": "mach-o", + "target_kind": "executable" + }, + "provider": { + "id": "ghidra", + "name": "Ghidra", + "version": "12.1.4" + } + }, + "authority": "shipped-artifact", + "confidence": "observed", + "environment": null, + "evidence_id": "ev_4f1a9f1cfceee8ea2613e2499a4fe924449a3b3be33045fb7176fa9b7cf77db8", + "evidence_links": [], + "limitations": [ + "The session serves operations only after Ghidra reports default auto-analysis complete; incomplete analysis does not expose partial results.", + "The imported Program and temporary project are ephemeral and deleted on close. Annotation operations edit session database metadata; original executable bytes are never written.", + "Cancelling an active Ghidra request terminates its ephemeral database and discards session annotations. The selected target remains open; the next provider query imports the original artifact again.", + "Default-space addresses use lowercase 0x-prefixed hexadecimal; other address spaces use :0x.", + "The direct address list projects exact Ghidra references to one address but does not expose their kinds; procedure_references and analyze_function preserve available kind metadata.", + "Synthetic Ghidra entry-point references without actionable memory sources are omitted.", + "macOS sessions require a matching executable Ghidra native decompiler; REA checks for it but does not build native components or change Gatekeeper quarantine state." + ], + "locations": [], + "normalized_result": [ + "0x10003cce4", + "0x1000547b8" + ], + "operation": "xrefs", + "parameters": { + "address": "0x1000bd210" + }, + "predicate_type": "rea.analysis", + "provider": { + "id": "ghidra", + "name": "Ghidra", + "version": "12.1.4" + }, + "raw_result": [ + "0x10003cce4", + "0x1000547b8" + ], + "subject": { + "architecture": "arm64", + "digest": { + "sha256": "afc71d0d21fd3c1ca95ca745ddafcd729e36ad95f17d8638009f2e45d9b7e8df" + }, + "format": "mach-o", + "local_path": "/Users/dayu/Documents/PaintFCP/build/body-analysis/MSE18V2-arm64", + "name": "MSE18V2-arm64" + } + }, + { + "analysis_profile": { + "digest": "20565088524a2d0359b9b96f46ac48e679d774c7b0092c56abc06de8fdbec11c", + "parameters": { + "analyzer_preset": "ghidra-default", + "annotation_policy": "atomic-function-entry-metadata-v1", + "architecture": "arm64", + "available_architectures": [ + "arm64" + ], + "compiler_spec_id": "auto-default", + "decompiler_jump_loads": true, + "function_body_evidence": "complete-inclusive-ranges-v1", + "function_boundary_observations": "ghidra-terminal-call-limitations-v1", + "function_references": "complete-body-and-entry-reference-manager-v2", + "import_mode": "ephemeral-source-immutable", + "instruction_flow_evidence": "decoded-return-pcode-v1", + "jump_table_evidence": "typed-case-default-blocks-v1", + "language_id": "auto-from-header", + "load_image_observations": "source-mappings-entry-context-v2", + "loader": "auto-from-header", + "location_resolution": "explicit-address-exact-entry-symbol-first-v3", + "no_return_repair": "returning-imports-decoded-return-v2", + "process_launch": "inspected-jvm-launch-support-v1", + "string_inventory_evidence": "defined-data-coverage-v1", + "target_format": "mach-o", + "target_kind": "executable" + }, + "provider": { + "id": "ghidra", + "name": "Ghidra", + "version": "12.1.4" + } + }, + "authority": "shipped-artifact", + "confidence": "observed", + "environment": null, + "evidence_id": "ev_568a93f2165e5dc5046e610f47c23e9cebc33f55b5d12d3ee005a1e99a7191f6", + "evidence_links": [], + "limitations": [ + "The session serves operations only after Ghidra reports default auto-analysis complete; incomplete analysis does not expose partial results.", + "The imported Program and temporary project are ephemeral and deleted on close. Annotation operations edit session database metadata; original executable bytes are never written.", + "Cancelling an active Ghidra request terminates its ephemeral database and discards session annotations. The selected target remains open; the next provider query imports the original artifact again.", + "Default-space addresses use lowercase 0x-prefixed hexadecimal; other address spaces use :0x.", + "Only resolved Ghidra call references are returned; unresolved computed or indirect calls remain unknown, while function classifications distinguish thunks and externals.", + "macOS sessions require a matching executable Ghidra native decompiler; REA checks for it but does not build native components or change Gatekeeper quarantine state." + ], + "locations": [], + "normalized_result": [ + "0x10002179c" + ], + "operation": "procedure_callers", + "parameters": { + "procedure": "0x10003d69c" + }, + "predicate_type": "rea.analysis", + "provider": { + "id": "ghidra", + "name": "Ghidra", + "version": "12.1.4" + }, + "raw_result": [ + "0x10002179c" + ], + "subject": { + "architecture": "arm64", + "digest": { + "sha256": "afc71d0d21fd3c1ca95ca745ddafcd729e36ad95f17d8638009f2e45d9b7e8df" + }, + "format": "mach-o", + "local_path": "/Users/dayu/Documents/PaintFCP/build/body-analysis/MSE18V2-arm64", + "name": "MSE18V2-arm64" + } + }, + { + "analysis_profile": { + "digest": "20565088524a2d0359b9b96f46ac48e679d774c7b0092c56abc06de8fdbec11c", + "parameters": { + "analyzer_preset": "ghidra-default", + "annotation_policy": "atomic-function-entry-metadata-v1", + "architecture": "arm64", + "available_architectures": [ + "arm64" + ], + "compiler_spec_id": "auto-default", + "decompiler_jump_loads": true, + "function_body_evidence": "complete-inclusive-ranges-v1", + "function_boundary_observations": "ghidra-terminal-call-limitations-v1", + "function_references": "complete-body-and-entry-reference-manager-v2", + "import_mode": "ephemeral-source-immutable", + "instruction_flow_evidence": "decoded-return-pcode-v1", + "jump_table_evidence": "typed-case-default-blocks-v1", + "language_id": "auto-from-header", + "load_image_observations": "source-mappings-entry-context-v2", + "loader": "auto-from-header", + "location_resolution": "explicit-address-exact-entry-symbol-first-v3", + "no_return_repair": "returning-imports-decoded-return-v2", + "process_launch": "inspected-jvm-launch-support-v1", + "string_inventory_evidence": "defined-data-coverage-v1", + "target_format": "mach-o", + "target_kind": "executable" + }, + "provider": { + "id": "ghidra", + "name": "Ghidra", + "version": "12.1.4" + } + }, + "authority": "shipped-artifact", + "confidence": "observed", + "environment": null, + "evidence_id": "ev_58dee36fddf4e4c98ce3d880a0bb98190351d1269c960b3ccc275aef81265e8f", + "evidence_links": [], + "limitations": [ + "The session serves operations only after Ghidra reports default auto-analysis complete; incomplete analysis does not expose partial results.", + "The imported Program and temporary project are ephemeral and deleted on close. Annotation operations edit session database metadata; original executable bytes are never written.", + "Cancelling an active Ghidra request terminates its ephemeral database and discards session annotations. The selected target remains open; the next provider query imports the original artifact again.", + "Default-space addresses use lowercase 0x-prefixed hexadecimal; other address spaces use :0x.", + "Pseudocode is Ghidra decompiler output, not original source and not text-equivalent to Hopper output.", + "External functions and functions without an analyzable body return null; other decompiler failures remain explicit.", + "Ghidra Listing reports a terminal call at 0x10003e9c8 to 0x10007aca0 ___stack_chk_fail (external=false, thunk=true, hasNoReturn=true); fallthrough is excluded by Ghidra's flow model. This records Ghidra's FunctionManager flag, not an independent verification that the callee cannot return.", + "macOS sessions require a matching executable Ghidra native decompiler; REA checks for it but does not build native components or change Gatekeeper quarantine state." + ], + "locations": [], + "normalized_result": "\n/* WARNING: Function: _objc_release replaced with injection: _objc_release_fixup */\n/* WARNING: Function: _objc_retain replaced with injection: _objc_retain_fixup */\n/* WARNING: Function: _objc_autorelease replaced with injection: _objc_retain_fixup */\n/* Function Stack Size: 0x84 bytes */\n\nID MSSuperSkinSmoothingPlugIn::\n mss_pinStyleFacePointsForObservations_renderTime_params_trackingInputImage_preferredBox_hasPreferredBox_selectedObservationOut_strengthMultiplierOut_pointsBoxOut_usedHoldOut_\n (ID param_1,SEL param_2,ID param_3,AnonymousStructure0 param_4,\n const_AnonymousStructure7__ param_5,ID param_6,CGRect param_7,bool param_8,ID *param_9,\n double *param_10,CGRect *param_11,bool *param_12)\n\n{\n bool bVar1;\n bool bVar2;\n byte bVar3;\n undefined1 auVar4 [16];\n bool bVar5;\n long_long lVar6;\n long_long lVar7;\n undefined1 auVar8 [16];\n undefined1 auVar9 [16];\n undefined1 auVar10 [16];\n undefined *puVar11;\n bool bVar12;\n int iVar13;\n AnonymousStructure0 *pAVar14;\n AnonymousStructure0 *extraout_x0;\n AnonymousStructure0 *extraout_x0_00;\n ulong uVar15;\n ID IVar16;\n ID IVar17;\n ulong extraout_x0_01;\n ID IVar18;\n ID IVar19;\n ID IVar20;\n ID IVar21;\n long_long *plVar22;\n undefined1 uVar23;\n double *pdVar24;\n ID IVar25;\n byte bVar26;\n long lVar27;\n ulong uVar28;\n bool bVar29;\n float extraout_s0;\n undefined8 in_d0;\n double dVar30;\n double dVar31;\n double dVar32;\n double dVar33;\n double dVar34;\n undefined8 uVar35;\n undefined8 uVar36;\n undefined8 uVar37;\n ulong extraout_d0;\n ulong extraout_d0_00;\n ulong extraout_d0_01;\n ulong extraout_d0_02;\n double extraout_d0_03;\n double extraout_d0_04;\n double extraout_d0_05;\n double extraout_d0_06;\n double extraout_d0_07;\n long lVar39;\n undefined1 auVar38 [16];\n undefined1 extraout_q0 [16];\n undefined8 in_d1;\n double dVar40;\n undefined1 auVar41 [16];\n double in_d2;\n double in_d3;\n double dVar42;\n undefined8 uVar43;\n undefined8 uVar44;\n double dVar45;\n undefined8 uVar46;\n double dVar47;\n undefined8 uVar48;\n undefined8 uVar49;\n undefined8 uVar50;\n CGRect CVar51;\n undefined1 auVar52 [16];\n undefined1 auVar53 [16];\n undefined1 auVar54 [16];\n undefined1 auVar55 [16];\n double local_260;\n long local_258;\n undefined8 local_240;\n undefined8 uStack_238;\n double local_230;\n double dStack_228;\n double local_220;\n double dStack_218;\n double local_200;\n double local_1f8;\n undefined8 local_1f0;\n undefined8 local_1e8;\n undefined8 local_1e0;\n undefined8 local_1d8;\n undefined8 local_1d0;\n undefined8 local_1c8;\n undefined8 local_1c0;\n long lStack_1b8;\n long *local_1b0;\n undefined8 uStack_1a8;\n undefined8 local_1a0;\n undefined8 uStack_198;\n undefined8 uStack_190;\n undefined8 uStack_188;\n double local_180;\n double dStack_178;\n double local_170;\n double dStack_168;\n double local_160;\n double dStack_158;\n double local_150;\n double dStack_148;\n double local_140;\n double dStack_138;\n AnonymousStructure0 local_130 [5];\n long local_b0;\n \n IVar18 = param_4.field3_0x10;\n lVar27 = param_4._8_8_;\n plVar22 = (long_long *)param_4.field0_0x0;\n local_b0 = *(long *)PTR____stack_chk_guard_1000a80e8;\n FUN_10002a428();\n if (lVar27 == 0) {\n bVar3 = 0;\n local_258 = 0;\n auVar55 = NEON_fmov(0x3fe0000000000000,8);\n dStack_218 = auVar55._8_8_;\n local_220 = auVar55._0_8_;\n }\n else {\n bVar3 = *(byte *)(lVar27 + 0xf8);\n dStack_218 = SUB168(*(undefined1 (*) [16])(lVar27 + 0x100),8);\n local_220 = SUB168(*(undefined1 (*) [16])(lVar27 + 0x100),0);\n local_258 = *(long *)(lVar27 + 0x168);\n }\n pAVar14 = (AnonymousStructure0 *)objc_stub::lock(*(ID *)(param_1 + 0x28));\n if (*(char *)(param_1 + 0x3b0) == '\\x01') {\n if (((*(uint *)((long)plVar22 + 0xc) & 0x1d) == 1) && ((*(uint *)(param_1 + 0x3a4) & 0x1d) == 1)\n ) {\n local_130[0].field0_0x0 = *plVar22;\n local_130[0]._8_8_ = plVar22[1];\n local_130[0].field3_0x10 = plVar22[2];\n local_1c0 = *(undefined8 *)(param_1 + 0x398);\n lStack_1b8 = *(long *)(param_1 + 0x3a0);\n local_1b0 = *(long **)(param_1 + 0x3a8);\n pAVar14 = local_130;\n _CMTimeCompare(pAVar14,&local_1c0);\n if ((int)pAVar14 < 0) {\n pAVar14 = (AnonymousStructure0 *)0x0;\n bVar1 = false;\n *(undefined8 *)(param_1 + 0x370) = 0;\n puVar11 = PTR__kCMTimeInvalid_1000a8208;\n uVar46 = *(undefined8 *)PTR__CGRectZero_1000a8150;\n uVar48 = *(undefined8 *)(PTR__CGRectZero_1000a8150 + 0x10);\n uVar49 = *(undefined8 *)(PTR__CGRectZero_1000a8150 + 0x18);\n *(undefined8 *)(param_1 + 0x380) = *(undefined8 *)(PTR__CGRectZero_1000a8150 + 8);\n *(undefined8 *)(param_1 + 0x378) = uVar46;\n *(undefined8 *)(param_1 + 0x390) = uVar49;\n *(undefined8 *)(param_1 + 0x388) = uVar48;\n uVar46 = *(undefined8 *)puVar11;\n *(undefined8 *)(param_1 + 0x3a0) = *(undefined8 *)(puVar11 + 8);\n *(undefined8 *)(param_1 + 0x398) = uVar46;\n *(undefined8 *)(param_1 + 0x3a8) = *(undefined8 *)(puVar11 + 0x10);\n *(undefined1 *)(param_1 + 0x3b0) = 0;\n goto LAB_10003d868;\n }\n if ((*(byte *)(param_1 + 0x3b0) & 1) != 0) goto LAB_10003d7b8;\n }\n else {\nLAB_10003d7b8:\n pAVar14 = (AnonymousStructure0 *)objc_stub::count(*(ID *)(param_1 + 0x370));\n if ((AnonymousStructure0 *)0x4c < pAVar14) {\n uVar46 = *(undefined8 *)(param_1 + 0x378);\n uVar48 = *(undefined8 *)(param_1 + 0x380);\n uVar49 = *(undefined8 *)(param_1 + 0x388);\n uVar50 = *(undefined8 *)(param_1 + 0x390);\n _CGRectIsNull(uVar46,uVar48,uVar49,uVar50);\n if (((((ulong)pAVar14 & 1) == 0) &&\n (_CGRectIsEmpty(uVar46,uVar48,uVar49,uVar50), ((ulong)pAVar14 & 1) == 0)) &&\n (dVar30 = (double)_CGRectGetWidth(uVar46,uVar48,uVar49,uVar50),\n 2.220446049250313e-16 < dVar30)) {\n dVar30 = (double)_CGRectGetHeight(uVar46,uVar48,uVar49,uVar50);\n bVar1 = 2.220446049250313e-16 < dVar30;\n goto LAB_10003d868;\n }\n }\n }\n bVar1 = false;\n }\n else {\n bVar1 = false;\n }\nLAB_10003d868:\n uVar48 = *(undefined8 *)PTR__CGRectNull_1000a8148;\n uVar46 = *(undefined8 *)(PTR__CGRectNull_1000a8148 + 8);\n auVar55 = *(undefined1 (*) [16])PTR__CGRectNull_1000a8148;\n auVar52 = *(undefined1 (*) [16])PTR__CGRectNull_1000a8148;\n auVar9 = *(undefined1 (*) [16])PTR__CGRectNull_1000a8148;\n dVar40 = *(double *)*(undefined1 (*) [16])(PTR__CGRectNull_1000a8148 + 0x10);\n dVar30 = *(double *)(PTR__CGRectNull_1000a8148 + 0x18);\n auVar10 = *(undefined1 (*) [16])(PTR__CGRectNull_1000a8148 + 0x10);\n dVar31 = (double)_hypot(local_220 - *(double *)(param_1 + 0x3b8),\n dStack_218 - *(double *)(param_1 + 0x3c0));\n local_1f8 = dVar40;\n local_200 = dVar30;\n if (((bVar3 & 1) == 0) ||\n (((*(char *)(param_1 + 0x3b1) == '\\x01' &&\n ((local_258 < 1 || (local_258 <= *(long *)(param_1 + 0x3c8))))) &&\n ((0x7fefffffffffffff < (ulong)ABS(dVar31) || (dVar31 <= 0.01)))))) {\n if (IVar18 == 0) {\n bVar26 = 0;\n goto joined_r0x00010003d9d0;\n }\n local_130[0].field0_0x0 = *plVar22;\n local_130[0]._8_8_ = plVar22[1];\n local_130[0].field3_0x10 = plVar22[2];\n CVar51 = trackedFaceBoxForInputImage_renderTime_selectedObservation_shouldTrack_\n (param_1,IVar18,local_130,0,1);\n local_200 = CVar51.field1_0x10.field1_0x8;\n local_1f8 = CVar51.field1_0x10.field0_0x0;\n pAVar14 = extraout_x0_00;\n auVar55 = FUN_10002d838(CVar51.field0_0x0.field0_0x0,CVar51.field0_0x0.field1_0x8);\n uVar50 = auVar55._8_8_;\n uVar49 = auVar55._0_8_;\n _CGRectIsNull(uVar49,uVar50,local_1f8,local_200);\n if (((((ulong)pAVar14 & 1) != 0) ||\n (_CGRectIsEmpty(uVar49,uVar50,local_1f8,local_200), ((ulong)pAVar14 & 1) != 0)) ||\n (dVar31 = (double)_CGRectGetWidth(uVar49,uVar50,local_1f8,local_200),\n dVar31 <= 2.220446049250313e-16)) {\n bVar26 = 0;\n goto joined_r0x00010003d9d0;\n }\n dVar31 = (double)_CGRectGetHeight(uVar49,uVar50,local_1f8,local_200);\n bVar26 = 0;\n bVar2 = 2.220446049250313e-16 < dVar31;\n if ((int)param_5 == 0) goto LAB_10003d9d4;\nLAB_10003da1c:\n _CGRectIsNull();\n if (((((ulong)pAVar14 & 1) != 0) || (_CGRectIsEmpty(), ((ulong)pAVar14 & 1) != 0)) ||\n (dVar31 = (double)_CGRectGetWidth(), dVar31 <= 2.220446049250313e-16)) {\n bVar29 = false;\nLAB_10003daa4:\n if (bVar1) {\n uVar49 = *(undefined8 *)(param_1 + 0x378);\n dVar31 = *(double *)(param_1 + 0x390);\n dVar45 = *(double *)(param_1 + 0x388);\n uVar50 = *(undefined8 *)(param_1 + 0x380);\nLAB_10003dac0:\n _CGRectIsNull(uVar49,uVar50,dVar45,dVar31);\n if (((((ulong)pAVar14 & 1) != 0) ||\n (_CGRectIsEmpty(uVar49,uVar50,dVar45,dVar31), ((ulong)pAVar14 & 1) != 0)) ||\n (dVar47 = (double)_CGRectGetWidth(uVar49,uVar50,dVar45,dVar31),\n dVar47 <= 2.220446049250313e-16)) goto LAB_10003db3c;\n dVar31 = (double)_CGRectGetHeight(uVar49,uVar50,dVar45,dVar31);\n bVar29 = 2.220446049250313e-16 < dVar31;\n }\n }\n else {\n dVar31 = (double)_CGRectGetHeight();\n bVar29 = 2.220446049250313e-16 < dVar31;\n if (dVar31 <= 2.220446049250313e-16) goto LAB_10003daa4;\n }\n }\n else {\n local_130[0].field0_0x0 = *plVar22;\n local_130[0]._8_8_ = plVar22[1];\n local_130[0].field3_0x10 = plVar22[2];\n trackedFaceBoxForInputImage_renderTime_selectedObservation_shouldTrack_(param_1,0,local_130,0,0)\n ;\n bVar26 = 1;\n pAVar14 = extraout_x0;\n auVar55 = auVar52;\njoined_r0x00010003d9d0:\n bVar2 = false;\n if ((int)param_5 != 0) goto LAB_10003da1c;\nLAB_10003d9d4:\n in_d0 = *(undefined8 *)(param_1 + 0x378);\n in_d1 = *(undefined8 *)(param_1 + 0x380);\n in_d2 = *(double *)(param_1 + 0x388);\n in_d3 = *(double *)(param_1 + 0x390);\n uVar49 = in_d0;\n dVar31 = in_d3;\n dVar45 = in_d2;\n uVar50 = in_d1;\n if (bVar1) goto LAB_10003dac0;\nLAB_10003db3c:\n bVar29 = false;\n }\n auVar53._8_8_ = in_d1;\n auVar53._0_8_ = in_d0;\n dVar31 = local_1f8;\n dVar45 = local_200;\n auVar52 = auVar55;\n if (!bVar2) {\n dVar31 = in_d2;\n dVar45 = in_d3;\n auVar52 = auVar53;\n }\n uVar50 = auVar52._8_8_;\n uVar49 = auVar52._0_8_;\n IVar17 = param_3;\n local_230 = dVar40;\n dStack_228 = dVar30;\n auVar53 = auVar9;\n if (bVar26 == 0 && bVar29) {\n if (lVar27 == 0) {\n dVar47 = 1.5;\n }\n else {\n dVar47 = *(double *)(lVar27 + 0xf0);\n }\n uVar15 = objc_stub::count(param_3);\n if (((uVar15 == 0) || (_CGRectIsNull(in_d0,in_d1,in_d2,in_d3), (uVar15 & 1) != 0)) ||\n ((_CGRectIsEmpty(in_d0,in_d1,in_d2,in_d3), (uVar15 & 1) != 0 ||\n ((dVar32 = (double)_CGRectGetWidth(in_d0,in_d1,in_d2,in_d3), dVar32 <= 2.220446049250313e-16\n || (dVar32 = (double)_CGRectGetHeight(in_d0,in_d1,in_d2,in_d3),\n dVar32 <= 2.220446049250313e-16)))))) {\n IVar17 = 0;\n }\n else {\n dVar32 = 4.0;\n if (dVar47 <= 4.0) {\n dVar32 = dVar47;\n }\n dVar33 = 1.0;\n if (1.0 <= dVar47) {\n dVar33 = dVar32;\n }\n auVar53 = FUN_10002c6b8(in_d0,in_d1,in_d2,in_d3,dVar33);\n uVar43 = auVar53._8_8_;\n uVar37 = auVar53._0_8_;\n _CGRectIsNull(uVar37,uVar43,in_d2,in_d3);\n if (((((uVar15 & 1) != 0) || (_CGRectIsEmpty(uVar37,uVar43,in_d2,in_d3), (uVar15 & 1) != 0))\n || (dVar47 = (double)_CGRectGetWidth(uVar37,uVar43,in_d2,in_d3),\n dVar47 <= 2.220446049250313e-16)) ||\n (dVar47 = in_d2, dVar32 = in_d3,\n dVar33 = (double)_CGRectGetHeight(uVar37,uVar43,in_d2,in_d3),\n dVar33 <= 2.220446049250313e-16)) {\n IVar17 = 0;\n local_230 = in_d2;\n dStack_228 = in_d3;\n }\n else {\n IVar16 = NSMutableArray::array((ID)&_OBJC_CLASS___NSMutableArray);\n uStack_198 = 0;\n local_1a0 = 0;\n uStack_188 = 0;\n uStack_190 = 0;\n lStack_1b8 = 0;\n local_1c0 = 0;\n uStack_1a8 = 0;\n local_1b0 = (long *)0x0;\n IVar17 = objc_stub::countByEnumeratingWithState_objects_count_\n (param_3,&local_1c0,local_130,0x10);\n if (IVar17 != 0) {\n lVar27 = *local_1b0;\n do {\n IVar25 = 0;\n do {\n dVar33 = dVar47;\n dVar42 = dVar32;\n if (*local_1b0 != lVar27) {\n _objc_enumerationMutation(param_3);\n dVar33 = dVar47;\n dVar42 = dVar32;\n }\n uVar28 = *(ulong *)(lStack_1b8 + IVar25 * 8);\n uVar15 = uVar28;\n auVar54 = FUN_100029d20();\n uVar44 = auVar54._8_8_;\n uVar36 = auVar54._0_8_;\n dVar47 = dVar33;\n dVar32 = dVar42;\n _CGRectIsNull();\n if ((uVar15 & 1) == 0) {\n dVar47 = dVar33;\n dVar32 = dVar42;\n _CGRectIsEmpty(uVar36,uVar44,dVar33,dVar42);\n iVar13 = (int)uVar15;\n if ((((uVar15 & 1) == 0) &&\n (dVar47 = dVar33, dVar32 = dVar42,\n dVar34 = (double)_CGRectGetWidth(uVar36,uVar44), 2.220446049250313e-16 < dVar34)\n ) && (dVar47 = dVar33, dVar32 = dVar42,\n dVar34 = (double)_CGRectGetHeight(uVar36,uVar44),\n 2.220446049250313e-16 < dVar34)) {\n uVar35 = _CGRectGetMidX(uVar36,uVar44,dVar33,dVar42);\n uVar36 = _CGRectGetMidY(uVar36,uVar44,dVar33,dVar42);\n dVar47 = in_d2;\n dVar32 = in_d3;\n _CGRectContainsPoint(uVar37,uVar43,in_d2,in_d3,uVar35,uVar36);\n if (iVar13 != 0) {\n NSMutableArray::addObject_(IVar16,uVar28);\n }\n }\n }\n IVar25 = IVar25 + 1;\n } while (IVar17 != IVar25);\n IVar17 = objc_stub::countByEnumeratingWithState_objects_count_\n (param_3,&local_1c0,local_130,0x10);\n } while (IVar17 != 0);\n }\n IVar25 = NSMutableArray::count(IVar16);\n IVar17 = 0;\n local_230 = in_d2;\n dStack_228 = in_d3;\n if (IVar25 != 0) {\n IVar17 = IVar16;\n }\n }\n }\n NSMutableArray::count(IVar17);\n }\n uStack_238 = auVar53._8_8_;\n local_240 = auVar53._0_8_;\n IVar16 = NSMutableArray::count(IVar17);\n if (IVar16 == 0) {\nLAB_10003e040:\n IVar16 = 0;\n IVar25 = 0;\n auVar53 = auVar9;\n auVar52 = auVar10;\n }\n else {\n IVar16 = IVar17;\n if ((bVar3 & bVar26) == 1) {\n FUN_10003ec44(local_220,dStack_218,uVar48,uVar46,dVar40,dVar30,IVar17,0);\n auVar52._8_8_ = uVar46;\n auVar52._0_8_ = uVar48;\n }\n else if (bVar2 || bVar29) {\n uVar46 = _CGRectGetMidX(uVar49,uVar50,dVar31,dVar45);\n uVar48 = _CGRectGetMidY(uVar49,uVar50,dVar31,dVar45);\n FUN_10003ec44(uVar46,uVar48,uVar49,uVar50,dVar31,dVar45,IVar17,1);\n }\n else if ((bVar3 & 1) == 0) {\n FUN_10003f020(uVar48,uVar46);\n auVar52._8_8_ = dVar30;\n auVar52._0_8_ = dVar40;\n }\n else {\n FUN_10003ec44(local_220,dStack_218,uVar48,uVar46,dVar40,dVar30,IVar17,0);\n auVar52._8_8_ = uVar46;\n auVar52._0_8_ = uVar48;\n }\n IVar25 = IVar16;\n FUN_100029a00();\n auVar53 = FUN_100029d20(IVar16);\n uVar50 = auVar52._8_8_;\n uVar49 = auVar52._0_8_;\n uVar48 = auVar53._8_8_;\n uVar46 = auVar53._0_8_;\n uVar15 = objc_stub::count(IVar25);\n if (((uVar15 < 0x4d) || (_CGRectIsNull(uVar46,uVar48,uVar49,uVar50), (uVar15 & 1) != 0)) ||\n ((_CGRectIsEmpty(uVar46,uVar48,uVar49,uVar50), (uVar15 & 1) != 0 ||\n ((dVar30 = (double)_CGRectGetWidth(uVar46,uVar48,uVar49,uVar50),\n dVar30 <= 2.220446049250313e-16 ||\n (dVar30 = (double)_CGRectGetHeight(uVar46,uVar48,uVar49,uVar50),\n dVar30 <= 2.220446049250313e-16)))))) goto LAB_10003e040;\n if (((IVar18 != 0) && (IVar16 != 0)) && (!bVar2)) {\n local_130[0].field0_0x0 = *plVar22;\n local_130[0]._8_8_ = plVar22[1];\n local_130[0].field3_0x10 = plVar22[2];\n CVar51 = trackedFaceBoxForInputImage_renderTime_selectedObservation_shouldTrack_\n (param_1,IVar18,local_130,IVar16,1);\n local_200 = CVar51.field1_0x10.field1_0x8;\n local_1f8 = CVar51.field1_0x10.field0_0x0;\n uVar15 = extraout_x0_01;\n auVar55 = FUN_10002d838(CVar51.field0_0x0.field0_0x0,CVar51.field0_0x0.field1_0x8);\n uVar48 = auVar55._8_8_;\n uVar46 = auVar55._0_8_;\n _CGRectIsNull(uVar46,uVar48,local_1f8,local_200);\n if ((((uVar15 & 1) != 0) ||\n (_CGRectIsEmpty(uVar46,uVar48,local_1f8,local_200), (uVar15 & 1) != 0)) ||\n (dVar30 = (double)_CGRectGetWidth(uVar46,uVar48,local_1f8,local_200),\n dVar30 <= 2.220446049250313e-16)) {\n bVar2 = false;\n }\n else {\n dVar30 = (double)_CGRectGetHeight(uVar46,uVar48,local_1f8,local_200);\n bVar2 = 2.220446049250313e-16 < dVar30;\n }\n }\n }\n auVar54._8_8_ = local_200;\n auVar54._0_8_ = local_1f8;\n uVar46 = auVar52._8_8_;\n uVar48 = auVar52._0_8_;\n uVar49 = auVar53._8_8_;\n uVar50 = auVar53._0_8_;\n local_1f0 = auVar55._8_8_;\n local_1e8 = auVar55._0_8_;\n IVar18 = objc_stub::count(IVar25);\n if (((0x4c < IVar18) && (_CGRectIsNull(uVar50,uVar49,uVar48,uVar46), (IVar18 & 1) == 0)) &&\n ((_CGRectIsEmpty(uVar50,uVar49,uVar48,uVar46), (IVar18 & 1) == 0 &&\n ((dVar30 = (double)_CGRectGetWidth(uVar50,uVar49,uVar48,uVar46),\n 2.220446049250313e-16 < dVar30 &&\n (dVar30 = (double)_CGRectGetHeight(uVar50,uVar49,uVar48,uVar46),\n 2.220446049250313e-16 < dVar30)))))) {\n IVar19 = objc_stub::landmarks(IVar16);\n IVar20 = objc_stub::allPoints(IVar19);\n uVar15 = objc_stub::faceContour(IVar19);\n IVar18 = uVar15;\n if ((IVar16 != 0) &&\n (((IVar19 != 0 && (IVar20 != 0)) && (IVar18 = objc_stub::pointCount(IVar20), 0x4b < IVar18)))\n ) {\n IVar21 = objc_stub::normalizedPoints(IVar20);\n IVar18 = 0;\n if ((IVar21 != 0) && (IVar18 = objc_stub::pointCount(uVar15), 10 < IVar18)) {\n IVar18 = objc_stub::normalizedPoints(IVar20);\n pdVar24 = (double *)(IVar18 + 8);\n lVar27 = 0x4c;\n do {\n dVar30 = pdVar24[-1];\n if (0x7fefffffffffffff < (ulong)ABS(dVar30)) goto LAB_10003e130;\n dVar31 = *pdVar24;\n if (((1.35 < dVar31) || (dVar31 < -0.35)) ||\n ((1.35 < dVar30 || ((dVar30 < -0.35 || (0x7fefffffffffffff < (ulong)ABS(dVar31)))))))\n goto LAB_10003e130;\n pdVar24 = pdVar24 + 2;\n lVar27 = lVar27 + -1;\n } while (lVar27 != 0);\n dStack_178 = SUB168(*(undefined1 (*) [16])PTR__CGPointZero_1000a8140,8);\n local_180 = SUB168(*(undefined1 (*) [16])PTR__CGPointZero_1000a8140,0);\n local_170 = local_180;\n dStack_168 = dStack_178;\n local_160 = local_180;\n dStack_158 = dStack_178;\n local_150 = local_180;\n dStack_148 = dStack_178;\n local_140 = local_180;\n dStack_138 = dStack_178;\n IVar18 = objc_stub::leftEye(IVar19);\n FUN_1000547c8(IVar18,&local_140);\n if ((int)IVar18 != 0) {\n IVar18 = objc_stub::rightEye(IVar19);\n FUN_1000547c8(IVar18,&local_150);\n if ((int)IVar18 != 0) {\n IVar18 = objc_stub::nose(IVar19);\n FUN_1000547c8(IVar18,&local_160);\n if ((int)IVar18 != 0) {\n IVar18 = objc_stub::outerLips(IVar19);\n FUN_1000547c8(IVar18,&local_170);\n if (((int)IVar18 != 0) &&\n (FUN_1000548d0(uVar15,&local_180), IVar18 = uVar15, (uVar15 & 1) != 0)) {\n objc_stub::confidence(IVar19);\n IVar19 = objc_stub::precisionEstimatesPerPoint(IVar20);\n IVar18 = objc_stub::count(IVar19);\n if (0x4b < IVar18) {\n uStack_198 = 0;\n local_1a0 = 0;\n uStack_188 = 0;\n uStack_190 = 0;\n lStack_1b8 = 0;\n local_1c0 = 0;\n uStack_1a8 = 0;\n local_1b0 = (long *)0x0;\n IVar20 = objc_stub::countByEnumeratingWithState_objects_count_\n (IVar19,&local_1c0,local_130,0x10);\n IVar18 = 0;\n if (IVar20 != 0) {\n lVar27 = *local_1b0;\n do {\n IVar18 = 0;\n do {\n if (*local_1b0 != lVar27) {\n _objc_enumerationMutation(IVar19);\n }\n objc_stub::doubleValue(*(ID *)(lStack_1b8 + IVar18 * 8));\n IVar18 = IVar18 + 1;\n } while (IVar20 != IVar18);\n IVar20 = objc_stub::countByEnumeratingWithState_objects_count_\n (IVar19,&local_1c0,local_130,0x10);\n IVar18 = 0;\n } while (IVar20 != 0);\n }\n }\n dVar40 = (local_140 + local_150) * 0.5;\n dVar45 = (dStack_138 + dStack_148) * 0.5;\n local_260 = local_150 - local_140;\n dVar31 = dStack_148 - dStack_138;\n dVar30 = (double)_hypot();\n bVar29 = 2.220446049250313e-16 < dVar30;\n bVar5 = (ulong)ABS(dVar30) < 0x7ff0000000000000;\n if (bVar29 && bVar5) {\n local_260 = local_260 / dVar30;\n dVar31 = dVar31 / dVar30;\n }\n dVar32 = local_260;\n dVar47 = -dVar31;\n if (0.0 <= -(local_260 * (dStack_168 - dVar45)) + dVar31 * (local_170 - dVar40)) {\n dVar32 = -local_260;\n dVar47 = dVar31;\n }\n dVar33 = (dStack_168 - dVar45) * dVar32 + dVar47 * (local_170 - dVar40);\n dVar42 = (dStack_158 - dVar45) * dVar32 + dVar47 * (local_160 - dVar40);\n bVar12 = true;\n if ((0.08 <= dVar33 && (bVar29 && bVar5)) &&\n (0.06 <= (dStack_178 - dStack_168) * dVar32 + dVar47 * (local_180 - local_170)))\n {\n bVar12 = (dStack_178 - dVar45) * dVar32 + dVar47 * (local_180 - dVar40) < 0.2;\n }\n if (!(bool)(((double)extraout_s0 < 0.55 ||\n 0x7fefffffffffffff < (ulong)ABS((double)extraout_s0)) | bVar12)) {\n dVar31 = dVar31 * (dStack_178 - dVar45) + local_260 * (local_180 - dVar40);\n bVar29 = ((bVar29 && bVar5) &&\n (0.1 <= dVar30 &&\n ((-0.12 <= dVar42 && (bVar29 && bVar5)) && dVar42 <= dVar33 + 0.16))) &&\n (dVar31 <= dVar30 * 0.5 + 0.3 && -0.3 - dVar30 * 0.5 <= dVar31);\n if (bVar26 != 0 || !(bool)(bVar29 & bVar1)) goto LAB_10003e134;\n IVar19 = *(ID *)(param_1 + 0x370);\n uVar43 = *(undefined8 *)(param_1 + 0x378);\n uVar36 = *(undefined8 *)(param_1 + 0x380);\n uVar44 = *(undefined8 *)(param_1 + 0x388);\n uVar37 = *(undefined8 *)(param_1 + 0x390);\n IVar18 = objc_stub::count(IVar25);\n if ((((((IVar18 < 0x4d) || (IVar18 = objc_stub::count(IVar19), IVar18 < 0x4d)) ||\n (_CGRectIsNull(uVar50,uVar49,uVar48,uVar46), (IVar18 & 1) != 0)) ||\n ((_CGRectIsEmpty(uVar50,uVar49,uVar48,uVar46), (IVar18 & 1) != 0 ||\n (dVar30 = (double)_CGRectGetWidth(uVar50,uVar49,uVar48,uVar46),\n dVar30 <= 2.220446049250313e-16)))) ||\n (dVar30 = (double)_CGRectGetHeight(uVar50,uVar49,uVar48,uVar46),\n dVar30 <= 2.220446049250313e-16)) ||\n (((_CGRectIsNull(uVar43,uVar36,uVar44,uVar37), (IVar18 & 1) != 0 ||\n (_CGRectIsEmpty(uVar43,uVar36,uVar44,uVar37), (IVar18 & 1) != 0)) ||\n ((dVar30 = (double)_CGRectGetWidth(uVar43,uVar36,uVar44,uVar37),\n dVar30 <= 2.220446049250313e-16 ||\n ((dVar30 = (double)_CGRectGetHeight(uVar43,uVar36,uVar44,uVar37),\n dVar30 <= 2.220446049250313e-16 ||\n (FUN_1000549d4(uVar50,uVar49,uVar48,uVar46,uVar43,uVar36,uVar44,uVar37),\n (int)IVar18 == 0)))))))) goto LAB_10003e134;\n local_130[0].field0_0x0 = 0x7ff8000000000000;\n local_1c0 = 0x7ff8000000000000;\n local_140 = NAN;\n IVar18 = IVar25;\n FUN_100043338(uVar50,uVar49,uVar48,uVar46,uVar43,uVar36,uVar44,uVar37,IVar25,\n IVar19,local_130,&local_1c0,&local_140);\n if ((IVar18 & 1) == 0) {\n FUN_10001ab3c(uVar43,uVar36,uVar44,uVar37,uVar50,uVar49,uVar48,uVar46);\n IVar18 = objc_stub::count(IVar19);\n if (IVar18 < 0x4d) {\nLAB_10003ea08:\n bVar5 = true;\n }\n else {\n dVar31 = (double)_CGRectGetWidth(uVar50,uVar49,uVar48,uVar46);\n dVar30 = (double)_CGRectGetHeight(uVar50,uVar49,uVar48,uVar46);\n if (dVar30 <= dVar31) {\n dVar30 = dVar31;\n }\n bVar5 = true;\n if ((2.220446049250313e-16 < dVar30) &&\n ((ulong)ABS(dVar30) < 0x7ff0000000000000)) {\n IVar20 = NSMutableArray::arrayWithCapacity_\n ((ID)&_OBJC_CLASS___NSMutableArray,0x4c);\n lVar27 = 0;\n do {\n IVar18 = objc_stub::objectAtIndexedSubscript_(IVar25,lVar27);\n IVar21 = objc_stub::objectAtIndexedSubscript_(IVar19,lVar27);\n if ((((IVar18 != 0) && (IVar21 != 0)) &&\n (objc_stub::X(IVar18),\n (extraout_d0 & 0x7fffffffffffffff) < 0x7ff0000000000000)) &&\n (((objc_stub::Y(IVar18),\n (extraout_d0_00 & 0x7fffffffffffffff) < 0x7ff0000000000000 &&\n (objc_stub::X(IVar21),\n (extraout_d0_01 & 0x7fffffffffffffff) < 0x7ff0000000000000)) &&\n (objc_stub::Y(IVar21),\n (extraout_d0_02 & 0x7fffffffffffffff) < 0x7ff0000000000000)))) {\n objc_stub::X(IVar18);\n objc_stub::X(IVar21);\n objc_stub::Y(IVar18);\n objc_stub::Y(IVar21);\n dVar31 = (double)_hypot(extraout_d0_03 - extraout_d0_04,\n extraout_d0_05 - extraout_d0_06);\n if ((ulong)ABS(dVar31 / dVar30) < 0x7ff0000000000000) {\n IVar18 = NSNumber::numberWithDouble_((ID)&_OBJC_CLASS___NSNumber);\n NSMutableArray::addObject_(IVar20,IVar18);\n }\n }\n lVar27 = lVar27 + 1;\n } while (lVar27 != 0x4c);\n IVar18 = NSMutableArray::count(IVar20);\n if (IVar18 < 0x32) goto LAB_10003ea08;\n NSMutableArray::sortUsingSelector_(IVar20,\"compare:\");\n IVar18 = NSMutableArray::count(IVar20);\n IVar19 = NSMutableArray::count(IVar20);\n IVar21 = NSMutableArray::count(IVar20);\n uVar28 = (ulong)((double)(IVar21 - 1) * 0.9);\n uVar15 = IVar19 - 1;\n if (uVar28 <= IVar19 - 1) {\n uVar15 = uVar28;\n }\n IVar18 = NSMutableArray::objectAtIndexedSubscript_(IVar20,IVar18 >> 1);\n NSMutableArray::doubleValue(IVar18);\n IVar18 = NSMutableArray::objectAtIndexedSubscript_(IVar20,uVar15);\n IVar18 = NSMutableArray::doubleValue(IVar18);\n bVar5 = extraout_q0._0_8_ <= 0.58 && extraout_d0_07 <= 0.3;\n }\n }\n }\n else {\n bVar5 = false;\n }\n bVar29 = (bool)(bVar29 & bVar5);\n goto LAB_10003e134;\n }\n }\n }\n }\n }\n }\n }\n }\nLAB_10003e130:\n bVar29 = false;\nLAB_10003e134:\n if ((bVar3 & 1) == 0) {\n uVar23 = 0;\n }\n else {\n auVar8._8_8_ = dStack_218;\n auVar8._0_8_ = local_220;\n lVar27 = -(ulong)(local_220 < 0.0);\n lVar39 = -(ulong)(dStack_218 < 0.0);\n auVar41 = NEON_fmov(0x3ff0000000000000,8);\n auVar4._8_8_ = -(ulong)(auVar41._8_8_ < dStack_218);\n auVar4._0_8_ = -(ulong)(auVar41._0_8_ < local_220);\n auVar41 = auVar41 ^ (auVar41 ^ auVar8) & ~auVar4;\n auVar38._0_8_ =\n CONCAT17(auVar41[7] & ~(byte)((ulong)lVar27 >> 0x38),\n CONCAT16(auVar41[6] & ~(byte)((ulong)lVar27 >> 0x30),\n CONCAT15(auVar41[5] & ~(byte)((ulong)lVar27 >> 0x28),\n CONCAT14(auVar41[4] & ~(byte)((ulong)lVar27 >> 0x20),\n CONCAT13(auVar41[3] & ~(byte)((ulong)lVar27 >> 0x18),\n CONCAT12(auVar41[2] &\n ~(byte)((ulong)lVar27 >> 0x10),\n CONCAT11(auVar41[1] &\n ~(byte)((ulong)lVar27 >> 8),\n auVar41[0] & ~(byte)lVar27))\n )))));\n auVar38[8] = auVar41[8] & ~(byte)lVar39;\n auVar38[9] = auVar41[9] & ~(byte)((ulong)lVar39 >> 8);\n auVar38[10] = auVar41[10] & ~(byte)((ulong)lVar39 >> 0x10);\n auVar38[0xb] = auVar41[0xb] & ~(byte)((ulong)lVar39 >> 0x18);\n auVar38[0xc] = auVar41[0xc] & ~(byte)((ulong)lVar39 >> 0x20);\n auVar38[0xd] = auVar41[0xd] & ~(byte)((ulong)lVar39 >> 0x28);\n auVar38[0xe] = auVar41[0xe] & ~(byte)((ulong)lVar39 >> 0x30);\n auVar38[0xf] = auVar41[0xf] & ~(byte)((ulong)lVar39 >> 0x38);\n *(long *)(param_1 + 0x3c0) = auVar38._8_8_;\n *(undefined8 *)(param_1 + 0x3b8) = auVar38._0_8_;\n if (local_258 <= *(long *)(param_1 + 0x3c8)) {\n local_258 = *(long *)(param_1 + 0x3c8);\n }\n *(long *)(param_1 + 0x3c8) = local_258;\n uVar23 = 1;\n }\n *(undefined1 *)(param_1 + 0x3b1) = uVar23;\n if (bVar29) {\n IVar18 = objc_stub::copy(IVar25);\n *(ID *)(param_1 + 0x370) = IVar18;\n *(undefined1 (*) [16])(param_1 + 0x378) = auVar53;\n *(undefined1 (*) [16])(param_1 + 0x388) = auVar52;\n lVar6 = *plVar22;\n lVar7 = plVar22[1];\n *(long_long *)(param_1 + 0x3a8) = plVar22[2];\n *(long_long *)(param_1 + 0x3a0) = lVar7;\n *(long_long *)(param_1 + 0x398) = lVar6;\n *(undefined1 *)(param_1 + 0x3b0) = 1;\n bVar1 = false;\n auVar9 = *(undefined1 (*) [16])(param_1 + 0x378);\n auVar10 = *(undefined1 (*) [16])(param_1 + 0x388);\n }\n else if (bVar1) {\n auVar9 = auVar55;\n auVar10 = auVar54;\n if ((!bVar2) &&\n (((_CGRectIsNull(uVar50,uVar49,uVar48,uVar46), (IVar18 & 1) != 0 ||\n (_CGRectIsEmpty(uVar50,uVar49,uVar48,uVar46), (IVar18 & 1) != 0)) ||\n ((dVar30 = (double)_CGRectGetWidth(uVar50,uVar49,uVar48,uVar46),\n dVar30 <= 2.220446049250313e-16 ||\n (dVar30 = (double)_CGRectGetHeight(uVar50,uVar49,uVar48,uVar46), auVar9 = auVar53,\n auVar10 = auVar52, dVar30 <= 2.220446049250313e-16)))))) {\n auVar9 = *(undefined1 (*) [16])(param_1 + 0x378);\n auVar10 = *(undefined1 (*) [16])(param_1 + 0x388);\n }\n IVar18 = *(ID *)(param_1 + 0x370);\n FUN_10001ab3c(*(undefined8 *)(param_1 + 0x378),*(undefined8 *)(param_1 + 0x380),\n *(undefined8 *)(param_1 + 0x388),*(undefined8 *)(param_1 + 0x390));\n IVar25 = objc_stub::count(IVar18);\n if ((IVar25 < 0x4d) ||\n (IVar25 = IVar18, FUN_10001b070(auVar9._0_8_,auVar9._8_8_,auVar10._0_8_,auVar10._8_8_),\n (int)IVar25 == 0)) {\n IVar18 = *(ID *)(param_1 + 0x370);\n auVar9 = *(undefined1 (*) [16])(param_1 + 0x378);\n bVar1 = true;\n auVar10 = *(undefined1 (*) [16])(param_1 + 0x388);\n }\n else {\n bVar1 = true;\n }\n }\n else {\n bVar1 = false;\n IVar18 = 0;\n }\n local_1e0 = auVar10._8_8_;\n local_1d8 = auVar10._0_8_;\n local_1d0 = auVar9._8_8_;\n local_1c8 = auVar9._0_8_;\n objc_stub::unlock(*(ID *)(param_1 + 0x28));\n if (param_6 != 0) {\n if (!bVar29) {\n IVar16 = 0;\n }\n IVar25 = 0;\n if (!bVar1) {\n IVar25 = IVar16;\n }\n *(ID *)param_6 = IVar25;\n }\n if (param_7.field0_0x0.field0_0x0 != 0.0) {\n IVar16 = objc_stub::count(IVar18);\n uVar46 = 0x3ff0000000000000;\n if (IVar16 < 0x4d) {\n uVar46 = 0;\n }\n *(undefined8 *)param_7.field0_0x0.field0_0x0 = uVar46;\n }\n if (param_7.field0_0x0.field1_0x8 != 0.0) {\n *(undefined1 (*) [16])param_7.field0_0x0.field1_0x8 = auVar9;\n *(undefined1 (*) [16])((long)param_7.field0_0x0.field1_0x8 + 0x10) = auVar10;\n }\n if (param_7.field1_0x10.field0_0x0 != 0.0) {\n *(bool *)param_7.field1_0x10.field0_0x0 = bVar1;\n }\n if ((*(uint *)((long)plVar22 + 0xc) & 0x1d) == 1) {\n local_130[0].field0_0x0 = *plVar22;\n local_130[0]._8_8_ = plVar22[1];\n local_130[0].field3_0x10 = plVar22[2];\n _CMTimeGetSeconds(local_130);\n }\n objc_stub::count(param_3);\n NSMutableArray::count(IVar17);\n FUN_10001b584(local_240,uStack_238,local_230,dStack_228);\n FUN_10001b584(local_1e8,local_1f0,local_1f8,local_200);\n FUN_10001b584(local_1c8,local_1d0,local_1d8,local_1e0);\n objc_stub::count(IVar18);\n if (*(long *)PTR____stack_chk_guard_1000a80e8 != local_b0) {\n /* WARNING: Subroutine does not return */\n ___stack_chk_fail();\n }\n return IVar18;\n}\n\n", + "operation": "procedure_pseudo_code", + "parameters": { + "procedure": "0x10003d69c" + }, + "predicate_type": "rea.analysis", + "provider": { + "id": "ghidra", + "name": "Ghidra", + "version": "12.1.4" + }, + "raw_result": { + "limitations": [ + "Ghidra Listing reports a terminal call at 0x10003e9c8 to 0x10007aca0 ___stack_chk_fail (external=false, thunk=true, hasNoReturn=true); fallthrough is excluded by Ghidra's flow model. This records Ghidra's FunctionManager flag, not an independent verification that the callee cannot return." + ], + "value": "\n/* WARNING: Function: _objc_release replaced with injection: _objc_release_fixup */\n/* WARNING: Function: _objc_retain replaced with injection: _objc_retain_fixup */\n/* WARNING: Function: _objc_autorelease replaced with injection: _objc_retain_fixup */\n/* Function Stack Size: 0x84 bytes */\n\nID MSSuperSkinSmoothingPlugIn::\n mss_pinStyleFacePointsForObservations_renderTime_params_trackingInputImage_preferredBox_hasPreferredBox_selectedObservationOut_strengthMultiplierOut_pointsBoxOut_usedHoldOut_\n (ID param_1,SEL param_2,ID param_3,AnonymousStructure0 param_4,\n const_AnonymousStructure7__ param_5,ID param_6,CGRect param_7,bool param_8,ID *param_9,\n double *param_10,CGRect *param_11,bool *param_12)\n\n{\n bool bVar1;\n bool bVar2;\n byte bVar3;\n undefined1 auVar4 [16];\n bool bVar5;\n long_long lVar6;\n long_long lVar7;\n undefined1 auVar8 [16];\n undefined1 auVar9 [16];\n undefined1 auVar10 [16];\n undefined *puVar11;\n bool bVar12;\n int iVar13;\n AnonymousStructure0 *pAVar14;\n AnonymousStructure0 *extraout_x0;\n AnonymousStructure0 *extraout_x0_00;\n ulong uVar15;\n ID IVar16;\n ID IVar17;\n ulong extraout_x0_01;\n ID IVar18;\n ID IVar19;\n ID IVar20;\n ID IVar21;\n long_long *plVar22;\n undefined1 uVar23;\n double *pdVar24;\n ID IVar25;\n byte bVar26;\n long lVar27;\n ulong uVar28;\n bool bVar29;\n float extraout_s0;\n undefined8 in_d0;\n double dVar30;\n double dVar31;\n double dVar32;\n double dVar33;\n double dVar34;\n undefined8 uVar35;\n undefined8 uVar36;\n undefined8 uVar37;\n ulong extraout_d0;\n ulong extraout_d0_00;\n ulong extraout_d0_01;\n ulong extraout_d0_02;\n double extraout_d0_03;\n double extraout_d0_04;\n double extraout_d0_05;\n double extraout_d0_06;\n double extraout_d0_07;\n long lVar39;\n undefined1 auVar38 [16];\n undefined1 extraout_q0 [16];\n undefined8 in_d1;\n double dVar40;\n undefined1 auVar41 [16];\n double in_d2;\n double in_d3;\n double dVar42;\n undefined8 uVar43;\n undefined8 uVar44;\n double dVar45;\n undefined8 uVar46;\n double dVar47;\n undefined8 uVar48;\n undefined8 uVar49;\n undefined8 uVar50;\n CGRect CVar51;\n undefined1 auVar52 [16];\n undefined1 auVar53 [16];\n undefined1 auVar54 [16];\n undefined1 auVar55 [16];\n double local_260;\n long local_258;\n undefined8 local_240;\n undefined8 uStack_238;\n double local_230;\n double dStack_228;\n double local_220;\n double dStack_218;\n double local_200;\n double local_1f8;\n undefined8 local_1f0;\n undefined8 local_1e8;\n undefined8 local_1e0;\n undefined8 local_1d8;\n undefined8 local_1d0;\n undefined8 local_1c8;\n undefined8 local_1c0;\n long lStack_1b8;\n long *local_1b0;\n undefined8 uStack_1a8;\n undefined8 local_1a0;\n undefined8 uStack_198;\n undefined8 uStack_190;\n undefined8 uStack_188;\n double local_180;\n double dStack_178;\n double local_170;\n double dStack_168;\n double local_160;\n double dStack_158;\n double local_150;\n double dStack_148;\n double local_140;\n double dStack_138;\n AnonymousStructure0 local_130 [5];\n long local_b0;\n \n IVar18 = param_4.field3_0x10;\n lVar27 = param_4._8_8_;\n plVar22 = (long_long *)param_4.field0_0x0;\n local_b0 = *(long *)PTR____stack_chk_guard_1000a80e8;\n FUN_10002a428();\n if (lVar27 == 0) {\n bVar3 = 0;\n local_258 = 0;\n auVar55 = NEON_fmov(0x3fe0000000000000,8);\n dStack_218 = auVar55._8_8_;\n local_220 = auVar55._0_8_;\n }\n else {\n bVar3 = *(byte *)(lVar27 + 0xf8);\n dStack_218 = SUB168(*(undefined1 (*) [16])(lVar27 + 0x100),8);\n local_220 = SUB168(*(undefined1 (*) [16])(lVar27 + 0x100),0);\n local_258 = *(long *)(lVar27 + 0x168);\n }\n pAVar14 = (AnonymousStructure0 *)objc_stub::lock(*(ID *)(param_1 + 0x28));\n if (*(char *)(param_1 + 0x3b0) == '\\x01') {\n if (((*(uint *)((long)plVar22 + 0xc) & 0x1d) == 1) && ((*(uint *)(param_1 + 0x3a4) & 0x1d) == 1)\n ) {\n local_130[0].field0_0x0 = *plVar22;\n local_130[0]._8_8_ = plVar22[1];\n local_130[0].field3_0x10 = plVar22[2];\n local_1c0 = *(undefined8 *)(param_1 + 0x398);\n lStack_1b8 = *(long *)(param_1 + 0x3a0);\n local_1b0 = *(long **)(param_1 + 0x3a8);\n pAVar14 = local_130;\n _CMTimeCompare(pAVar14,&local_1c0);\n if ((int)pAVar14 < 0) {\n pAVar14 = (AnonymousStructure0 *)0x0;\n bVar1 = false;\n *(undefined8 *)(param_1 + 0x370) = 0;\n puVar11 = PTR__kCMTimeInvalid_1000a8208;\n uVar46 = *(undefined8 *)PTR__CGRectZero_1000a8150;\n uVar48 = *(undefined8 *)(PTR__CGRectZero_1000a8150 + 0x10);\n uVar49 = *(undefined8 *)(PTR__CGRectZero_1000a8150 + 0x18);\n *(undefined8 *)(param_1 + 0x380) = *(undefined8 *)(PTR__CGRectZero_1000a8150 + 8);\n *(undefined8 *)(param_1 + 0x378) = uVar46;\n *(undefined8 *)(param_1 + 0x390) = uVar49;\n *(undefined8 *)(param_1 + 0x388) = uVar48;\n uVar46 = *(undefined8 *)puVar11;\n *(undefined8 *)(param_1 + 0x3a0) = *(undefined8 *)(puVar11 + 8);\n *(undefined8 *)(param_1 + 0x398) = uVar46;\n *(undefined8 *)(param_1 + 0x3a8) = *(undefined8 *)(puVar11 + 0x10);\n *(undefined1 *)(param_1 + 0x3b0) = 0;\n goto LAB_10003d868;\n }\n if ((*(byte *)(param_1 + 0x3b0) & 1) != 0) goto LAB_10003d7b8;\n }\n else {\nLAB_10003d7b8:\n pAVar14 = (AnonymousStructure0 *)objc_stub::count(*(ID *)(param_1 + 0x370));\n if ((AnonymousStructure0 *)0x4c < pAVar14) {\n uVar46 = *(undefined8 *)(param_1 + 0x378);\n uVar48 = *(undefined8 *)(param_1 + 0x380);\n uVar49 = *(undefined8 *)(param_1 + 0x388);\n uVar50 = *(undefined8 *)(param_1 + 0x390);\n _CGRectIsNull(uVar46,uVar48,uVar49,uVar50);\n if (((((ulong)pAVar14 & 1) == 0) &&\n (_CGRectIsEmpty(uVar46,uVar48,uVar49,uVar50), ((ulong)pAVar14 & 1) == 0)) &&\n (dVar30 = (double)_CGRectGetWidth(uVar46,uVar48,uVar49,uVar50),\n 2.220446049250313e-16 < dVar30)) {\n dVar30 = (double)_CGRectGetHeight(uVar46,uVar48,uVar49,uVar50);\n bVar1 = 2.220446049250313e-16 < dVar30;\n goto LAB_10003d868;\n }\n }\n }\n bVar1 = false;\n }\n else {\n bVar1 = false;\n }\nLAB_10003d868:\n uVar48 = *(undefined8 *)PTR__CGRectNull_1000a8148;\n uVar46 = *(undefined8 *)(PTR__CGRectNull_1000a8148 + 8);\n auVar55 = *(undefined1 (*) [16])PTR__CGRectNull_1000a8148;\n auVar52 = *(undefined1 (*) [16])PTR__CGRectNull_1000a8148;\n auVar9 = *(undefined1 (*) [16])PTR__CGRectNull_1000a8148;\n dVar40 = *(double *)*(undefined1 (*) [16])(PTR__CGRectNull_1000a8148 + 0x10);\n dVar30 = *(double *)(PTR__CGRectNull_1000a8148 + 0x18);\n auVar10 = *(undefined1 (*) [16])(PTR__CGRectNull_1000a8148 + 0x10);\n dVar31 = (double)_hypot(local_220 - *(double *)(param_1 + 0x3b8),\n dStack_218 - *(double *)(param_1 + 0x3c0));\n local_1f8 = dVar40;\n local_200 = dVar30;\n if (((bVar3 & 1) == 0) ||\n (((*(char *)(param_1 + 0x3b1) == '\\x01' &&\n ((local_258 < 1 || (local_258 <= *(long *)(param_1 + 0x3c8))))) &&\n ((0x7fefffffffffffff < (ulong)ABS(dVar31) || (dVar31 <= 0.01)))))) {\n if (IVar18 == 0) {\n bVar26 = 0;\n goto joined_r0x00010003d9d0;\n }\n local_130[0].field0_0x0 = *plVar22;\n local_130[0]._8_8_ = plVar22[1];\n local_130[0].field3_0x10 = plVar22[2];\n CVar51 = trackedFaceBoxForInputImage_renderTime_selectedObservation_shouldTrack_\n (param_1,IVar18,local_130,0,1);\n local_200 = CVar51.field1_0x10.field1_0x8;\n local_1f8 = CVar51.field1_0x10.field0_0x0;\n pAVar14 = extraout_x0_00;\n auVar55 = FUN_10002d838(CVar51.field0_0x0.field0_0x0,CVar51.field0_0x0.field1_0x8);\n uVar50 = auVar55._8_8_;\n uVar49 = auVar55._0_8_;\n _CGRectIsNull(uVar49,uVar50,local_1f8,local_200);\n if (((((ulong)pAVar14 & 1) != 0) ||\n (_CGRectIsEmpty(uVar49,uVar50,local_1f8,local_200), ((ulong)pAVar14 & 1) != 0)) ||\n (dVar31 = (double)_CGRectGetWidth(uVar49,uVar50,local_1f8,local_200),\n dVar31 <= 2.220446049250313e-16)) {\n bVar26 = 0;\n goto joined_r0x00010003d9d0;\n }\n dVar31 = (double)_CGRectGetHeight(uVar49,uVar50,local_1f8,local_200);\n bVar26 = 0;\n bVar2 = 2.220446049250313e-16 < dVar31;\n if ((int)param_5 == 0) goto LAB_10003d9d4;\nLAB_10003da1c:\n _CGRectIsNull();\n if (((((ulong)pAVar14 & 1) != 0) || (_CGRectIsEmpty(), ((ulong)pAVar14 & 1) != 0)) ||\n (dVar31 = (double)_CGRectGetWidth(), dVar31 <= 2.220446049250313e-16)) {\n bVar29 = false;\nLAB_10003daa4:\n if (bVar1) {\n uVar49 = *(undefined8 *)(param_1 + 0x378);\n dVar31 = *(double *)(param_1 + 0x390);\n dVar45 = *(double *)(param_1 + 0x388);\n uVar50 = *(undefined8 *)(param_1 + 0x380);\nLAB_10003dac0:\n _CGRectIsNull(uVar49,uVar50,dVar45,dVar31);\n if (((((ulong)pAVar14 & 1) != 0) ||\n (_CGRectIsEmpty(uVar49,uVar50,dVar45,dVar31), ((ulong)pAVar14 & 1) != 0)) ||\n (dVar47 = (double)_CGRectGetWidth(uVar49,uVar50,dVar45,dVar31),\n dVar47 <= 2.220446049250313e-16)) goto LAB_10003db3c;\n dVar31 = (double)_CGRectGetHeight(uVar49,uVar50,dVar45,dVar31);\n bVar29 = 2.220446049250313e-16 < dVar31;\n }\n }\n else {\n dVar31 = (double)_CGRectGetHeight();\n bVar29 = 2.220446049250313e-16 < dVar31;\n if (dVar31 <= 2.220446049250313e-16) goto LAB_10003daa4;\n }\n }\n else {\n local_130[0].field0_0x0 = *plVar22;\n local_130[0]._8_8_ = plVar22[1];\n local_130[0].field3_0x10 = plVar22[2];\n trackedFaceBoxForInputImage_renderTime_selectedObservation_shouldTrack_(param_1,0,local_130,0,0)\n ;\n bVar26 = 1;\n pAVar14 = extraout_x0;\n auVar55 = auVar52;\njoined_r0x00010003d9d0:\n bVar2 = false;\n if ((int)param_5 != 0) goto LAB_10003da1c;\nLAB_10003d9d4:\n in_d0 = *(undefined8 *)(param_1 + 0x378);\n in_d1 = *(undefined8 *)(param_1 + 0x380);\n in_d2 = *(double *)(param_1 + 0x388);\n in_d3 = *(double *)(param_1 + 0x390);\n uVar49 = in_d0;\n dVar31 = in_d3;\n dVar45 = in_d2;\n uVar50 = in_d1;\n if (bVar1) goto LAB_10003dac0;\nLAB_10003db3c:\n bVar29 = false;\n }\n auVar53._8_8_ = in_d1;\n auVar53._0_8_ = in_d0;\n dVar31 = local_1f8;\n dVar45 = local_200;\n auVar52 = auVar55;\n if (!bVar2) {\n dVar31 = in_d2;\n dVar45 = in_d3;\n auVar52 = auVar53;\n }\n uVar50 = auVar52._8_8_;\n uVar49 = auVar52._0_8_;\n IVar17 = param_3;\n local_230 = dVar40;\n dStack_228 = dVar30;\n auVar53 = auVar9;\n if (bVar26 == 0 && bVar29) {\n if (lVar27 == 0) {\n dVar47 = 1.5;\n }\n else {\n dVar47 = *(double *)(lVar27 + 0xf0);\n }\n uVar15 = objc_stub::count(param_3);\n if (((uVar15 == 0) || (_CGRectIsNull(in_d0,in_d1,in_d2,in_d3), (uVar15 & 1) != 0)) ||\n ((_CGRectIsEmpty(in_d0,in_d1,in_d2,in_d3), (uVar15 & 1) != 0 ||\n ((dVar32 = (double)_CGRectGetWidth(in_d0,in_d1,in_d2,in_d3), dVar32 <= 2.220446049250313e-16\n || (dVar32 = (double)_CGRectGetHeight(in_d0,in_d1,in_d2,in_d3),\n dVar32 <= 2.220446049250313e-16)))))) {\n IVar17 = 0;\n }\n else {\n dVar32 = 4.0;\n if (dVar47 <= 4.0) {\n dVar32 = dVar47;\n }\n dVar33 = 1.0;\n if (1.0 <= dVar47) {\n dVar33 = dVar32;\n }\n auVar53 = FUN_10002c6b8(in_d0,in_d1,in_d2,in_d3,dVar33);\n uVar43 = auVar53._8_8_;\n uVar37 = auVar53._0_8_;\n _CGRectIsNull(uVar37,uVar43,in_d2,in_d3);\n if (((((uVar15 & 1) != 0) || (_CGRectIsEmpty(uVar37,uVar43,in_d2,in_d3), (uVar15 & 1) != 0))\n || (dVar47 = (double)_CGRectGetWidth(uVar37,uVar43,in_d2,in_d3),\n dVar47 <= 2.220446049250313e-16)) ||\n (dVar47 = in_d2, dVar32 = in_d3,\n dVar33 = (double)_CGRectGetHeight(uVar37,uVar43,in_d2,in_d3),\n dVar33 <= 2.220446049250313e-16)) {\n IVar17 = 0;\n local_230 = in_d2;\n dStack_228 = in_d3;\n }\n else {\n IVar16 = NSMutableArray::array((ID)&_OBJC_CLASS___NSMutableArray);\n uStack_198 = 0;\n local_1a0 = 0;\n uStack_188 = 0;\n uStack_190 = 0;\n lStack_1b8 = 0;\n local_1c0 = 0;\n uStack_1a8 = 0;\n local_1b0 = (long *)0x0;\n IVar17 = objc_stub::countByEnumeratingWithState_objects_count_\n (param_3,&local_1c0,local_130,0x10);\n if (IVar17 != 0) {\n lVar27 = *local_1b0;\n do {\n IVar25 = 0;\n do {\n dVar33 = dVar47;\n dVar42 = dVar32;\n if (*local_1b0 != lVar27) {\n _objc_enumerationMutation(param_3);\n dVar33 = dVar47;\n dVar42 = dVar32;\n }\n uVar28 = *(ulong *)(lStack_1b8 + IVar25 * 8);\n uVar15 = uVar28;\n auVar54 = FUN_100029d20();\n uVar44 = auVar54._8_8_;\n uVar36 = auVar54._0_8_;\n dVar47 = dVar33;\n dVar32 = dVar42;\n _CGRectIsNull();\n if ((uVar15 & 1) == 0) {\n dVar47 = dVar33;\n dVar32 = dVar42;\n _CGRectIsEmpty(uVar36,uVar44,dVar33,dVar42);\n iVar13 = (int)uVar15;\n if ((((uVar15 & 1) == 0) &&\n (dVar47 = dVar33, dVar32 = dVar42,\n dVar34 = (double)_CGRectGetWidth(uVar36,uVar44), 2.220446049250313e-16 < dVar34)\n ) && (dVar47 = dVar33, dVar32 = dVar42,\n dVar34 = (double)_CGRectGetHeight(uVar36,uVar44),\n 2.220446049250313e-16 < dVar34)) {\n uVar35 = _CGRectGetMidX(uVar36,uVar44,dVar33,dVar42);\n uVar36 = _CGRectGetMidY(uVar36,uVar44,dVar33,dVar42);\n dVar47 = in_d2;\n dVar32 = in_d3;\n _CGRectContainsPoint(uVar37,uVar43,in_d2,in_d3,uVar35,uVar36);\n if (iVar13 != 0) {\n NSMutableArray::addObject_(IVar16,uVar28);\n }\n }\n }\n IVar25 = IVar25 + 1;\n } while (IVar17 != IVar25);\n IVar17 = objc_stub::countByEnumeratingWithState_objects_count_\n (param_3,&local_1c0,local_130,0x10);\n } while (IVar17 != 0);\n }\n IVar25 = NSMutableArray::count(IVar16);\n IVar17 = 0;\n local_230 = in_d2;\n dStack_228 = in_d3;\n if (IVar25 != 0) {\n IVar17 = IVar16;\n }\n }\n }\n NSMutableArray::count(IVar17);\n }\n uStack_238 = auVar53._8_8_;\n local_240 = auVar53._0_8_;\n IVar16 = NSMutableArray::count(IVar17);\n if (IVar16 == 0) {\nLAB_10003e040:\n IVar16 = 0;\n IVar25 = 0;\n auVar53 = auVar9;\n auVar52 = auVar10;\n }\n else {\n IVar16 = IVar17;\n if ((bVar3 & bVar26) == 1) {\n FUN_10003ec44(local_220,dStack_218,uVar48,uVar46,dVar40,dVar30,IVar17,0);\n auVar52._8_8_ = uVar46;\n auVar52._0_8_ = uVar48;\n }\n else if (bVar2 || bVar29) {\n uVar46 = _CGRectGetMidX(uVar49,uVar50,dVar31,dVar45);\n uVar48 = _CGRectGetMidY(uVar49,uVar50,dVar31,dVar45);\n FUN_10003ec44(uVar46,uVar48,uVar49,uVar50,dVar31,dVar45,IVar17,1);\n }\n else if ((bVar3 & 1) == 0) {\n FUN_10003f020(uVar48,uVar46);\n auVar52._8_8_ = dVar30;\n auVar52._0_8_ = dVar40;\n }\n else {\n FUN_10003ec44(local_220,dStack_218,uVar48,uVar46,dVar40,dVar30,IVar17,0);\n auVar52._8_8_ = uVar46;\n auVar52._0_8_ = uVar48;\n }\n IVar25 = IVar16;\n FUN_100029a00();\n auVar53 = FUN_100029d20(IVar16);\n uVar50 = auVar52._8_8_;\n uVar49 = auVar52._0_8_;\n uVar48 = auVar53._8_8_;\n uVar46 = auVar53._0_8_;\n uVar15 = objc_stub::count(IVar25);\n if (((uVar15 < 0x4d) || (_CGRectIsNull(uVar46,uVar48,uVar49,uVar50), (uVar15 & 1) != 0)) ||\n ((_CGRectIsEmpty(uVar46,uVar48,uVar49,uVar50), (uVar15 & 1) != 0 ||\n ((dVar30 = (double)_CGRectGetWidth(uVar46,uVar48,uVar49,uVar50),\n dVar30 <= 2.220446049250313e-16 ||\n (dVar30 = (double)_CGRectGetHeight(uVar46,uVar48,uVar49,uVar50),\n dVar30 <= 2.220446049250313e-16)))))) goto LAB_10003e040;\n if (((IVar18 != 0) && (IVar16 != 0)) && (!bVar2)) {\n local_130[0].field0_0x0 = *plVar22;\n local_130[0]._8_8_ = plVar22[1];\n local_130[0].field3_0x10 = plVar22[2];\n CVar51 = trackedFaceBoxForInputImage_renderTime_selectedObservation_shouldTrack_\n (param_1,IVar18,local_130,IVar16,1);\n local_200 = CVar51.field1_0x10.field1_0x8;\n local_1f8 = CVar51.field1_0x10.field0_0x0;\n uVar15 = extraout_x0_01;\n auVar55 = FUN_10002d838(CVar51.field0_0x0.field0_0x0,CVar51.field0_0x0.field1_0x8);\n uVar48 = auVar55._8_8_;\n uVar46 = auVar55._0_8_;\n _CGRectIsNull(uVar46,uVar48,local_1f8,local_200);\n if ((((uVar15 & 1) != 0) ||\n (_CGRectIsEmpty(uVar46,uVar48,local_1f8,local_200), (uVar15 & 1) != 0)) ||\n (dVar30 = (double)_CGRectGetWidth(uVar46,uVar48,local_1f8,local_200),\n dVar30 <= 2.220446049250313e-16)) {\n bVar2 = false;\n }\n else {\n dVar30 = (double)_CGRectGetHeight(uVar46,uVar48,local_1f8,local_200);\n bVar2 = 2.220446049250313e-16 < dVar30;\n }\n }\n }\n auVar54._8_8_ = local_200;\n auVar54._0_8_ = local_1f8;\n uVar46 = auVar52._8_8_;\n uVar48 = auVar52._0_8_;\n uVar49 = auVar53._8_8_;\n uVar50 = auVar53._0_8_;\n local_1f0 = auVar55._8_8_;\n local_1e8 = auVar55._0_8_;\n IVar18 = objc_stub::count(IVar25);\n if (((0x4c < IVar18) && (_CGRectIsNull(uVar50,uVar49,uVar48,uVar46), (IVar18 & 1) == 0)) &&\n ((_CGRectIsEmpty(uVar50,uVar49,uVar48,uVar46), (IVar18 & 1) == 0 &&\n ((dVar30 = (double)_CGRectGetWidth(uVar50,uVar49,uVar48,uVar46),\n 2.220446049250313e-16 < dVar30 &&\n (dVar30 = (double)_CGRectGetHeight(uVar50,uVar49,uVar48,uVar46),\n 2.220446049250313e-16 < dVar30)))))) {\n IVar19 = objc_stub::landmarks(IVar16);\n IVar20 = objc_stub::allPoints(IVar19);\n uVar15 = objc_stub::faceContour(IVar19);\n IVar18 = uVar15;\n if ((IVar16 != 0) &&\n (((IVar19 != 0 && (IVar20 != 0)) && (IVar18 = objc_stub::pointCount(IVar20), 0x4b < IVar18)))\n ) {\n IVar21 = objc_stub::normalizedPoints(IVar20);\n IVar18 = 0;\n if ((IVar21 != 0) && (IVar18 = objc_stub::pointCount(uVar15), 10 < IVar18)) {\n IVar18 = objc_stub::normalizedPoints(IVar20);\n pdVar24 = (double *)(IVar18 + 8);\n lVar27 = 0x4c;\n do {\n dVar30 = pdVar24[-1];\n if (0x7fefffffffffffff < (ulong)ABS(dVar30)) goto LAB_10003e130;\n dVar31 = *pdVar24;\n if (((1.35 < dVar31) || (dVar31 < -0.35)) ||\n ((1.35 < dVar30 || ((dVar30 < -0.35 || (0x7fefffffffffffff < (ulong)ABS(dVar31)))))))\n goto LAB_10003e130;\n pdVar24 = pdVar24 + 2;\n lVar27 = lVar27 + -1;\n } while (lVar27 != 0);\n dStack_178 = SUB168(*(undefined1 (*) [16])PTR__CGPointZero_1000a8140,8);\n local_180 = SUB168(*(undefined1 (*) [16])PTR__CGPointZero_1000a8140,0);\n local_170 = local_180;\n dStack_168 = dStack_178;\n local_160 = local_180;\n dStack_158 = dStack_178;\n local_150 = local_180;\n dStack_148 = dStack_178;\n local_140 = local_180;\n dStack_138 = dStack_178;\n IVar18 = objc_stub::leftEye(IVar19);\n FUN_1000547c8(IVar18,&local_140);\n if ((int)IVar18 != 0) {\n IVar18 = objc_stub::rightEye(IVar19);\n FUN_1000547c8(IVar18,&local_150);\n if ((int)IVar18 != 0) {\n IVar18 = objc_stub::nose(IVar19);\n FUN_1000547c8(IVar18,&local_160);\n if ((int)IVar18 != 0) {\n IVar18 = objc_stub::outerLips(IVar19);\n FUN_1000547c8(IVar18,&local_170);\n if (((int)IVar18 != 0) &&\n (FUN_1000548d0(uVar15,&local_180), IVar18 = uVar15, (uVar15 & 1) != 0)) {\n objc_stub::confidence(IVar19);\n IVar19 = objc_stub::precisionEstimatesPerPoint(IVar20);\n IVar18 = objc_stub::count(IVar19);\n if (0x4b < IVar18) {\n uStack_198 = 0;\n local_1a0 = 0;\n uStack_188 = 0;\n uStack_190 = 0;\n lStack_1b8 = 0;\n local_1c0 = 0;\n uStack_1a8 = 0;\n local_1b0 = (long *)0x0;\n IVar20 = objc_stub::countByEnumeratingWithState_objects_count_\n (IVar19,&local_1c0,local_130,0x10);\n IVar18 = 0;\n if (IVar20 != 0) {\n lVar27 = *local_1b0;\n do {\n IVar18 = 0;\n do {\n if (*local_1b0 != lVar27) {\n _objc_enumerationMutation(IVar19);\n }\n objc_stub::doubleValue(*(ID *)(lStack_1b8 + IVar18 * 8));\n IVar18 = IVar18 + 1;\n } while (IVar20 != IVar18);\n IVar20 = objc_stub::countByEnumeratingWithState_objects_count_\n (IVar19,&local_1c0,local_130,0x10);\n IVar18 = 0;\n } while (IVar20 != 0);\n }\n }\n dVar40 = (local_140 + local_150) * 0.5;\n dVar45 = (dStack_138 + dStack_148) * 0.5;\n local_260 = local_150 - local_140;\n dVar31 = dStack_148 - dStack_138;\n dVar30 = (double)_hypot();\n bVar29 = 2.220446049250313e-16 < dVar30;\n bVar5 = (ulong)ABS(dVar30) < 0x7ff0000000000000;\n if (bVar29 && bVar5) {\n local_260 = local_260 / dVar30;\n dVar31 = dVar31 / dVar30;\n }\n dVar32 = local_260;\n dVar47 = -dVar31;\n if (0.0 <= -(local_260 * (dStack_168 - dVar45)) + dVar31 * (local_170 - dVar40)) {\n dVar32 = -local_260;\n dVar47 = dVar31;\n }\n dVar33 = (dStack_168 - dVar45) * dVar32 + dVar47 * (local_170 - dVar40);\n dVar42 = (dStack_158 - dVar45) * dVar32 + dVar47 * (local_160 - dVar40);\n bVar12 = true;\n if ((0.08 <= dVar33 && (bVar29 && bVar5)) &&\n (0.06 <= (dStack_178 - dStack_168) * dVar32 + dVar47 * (local_180 - local_170)))\n {\n bVar12 = (dStack_178 - dVar45) * dVar32 + dVar47 * (local_180 - dVar40) < 0.2;\n }\n if (!(bool)(((double)extraout_s0 < 0.55 ||\n 0x7fefffffffffffff < (ulong)ABS((double)extraout_s0)) | bVar12)) {\n dVar31 = dVar31 * (dStack_178 - dVar45) + local_260 * (local_180 - dVar40);\n bVar29 = ((bVar29 && bVar5) &&\n (0.1 <= dVar30 &&\n ((-0.12 <= dVar42 && (bVar29 && bVar5)) && dVar42 <= dVar33 + 0.16))) &&\n (dVar31 <= dVar30 * 0.5 + 0.3 && -0.3 - dVar30 * 0.5 <= dVar31);\n if (bVar26 != 0 || !(bool)(bVar29 & bVar1)) goto LAB_10003e134;\n IVar19 = *(ID *)(param_1 + 0x370);\n uVar43 = *(undefined8 *)(param_1 + 0x378);\n uVar36 = *(undefined8 *)(param_1 + 0x380);\n uVar44 = *(undefined8 *)(param_1 + 0x388);\n uVar37 = *(undefined8 *)(param_1 + 0x390);\n IVar18 = objc_stub::count(IVar25);\n if ((((((IVar18 < 0x4d) || (IVar18 = objc_stub::count(IVar19), IVar18 < 0x4d)) ||\n (_CGRectIsNull(uVar50,uVar49,uVar48,uVar46), (IVar18 & 1) != 0)) ||\n ((_CGRectIsEmpty(uVar50,uVar49,uVar48,uVar46), (IVar18 & 1) != 0 ||\n (dVar30 = (double)_CGRectGetWidth(uVar50,uVar49,uVar48,uVar46),\n dVar30 <= 2.220446049250313e-16)))) ||\n (dVar30 = (double)_CGRectGetHeight(uVar50,uVar49,uVar48,uVar46),\n dVar30 <= 2.220446049250313e-16)) ||\n (((_CGRectIsNull(uVar43,uVar36,uVar44,uVar37), (IVar18 & 1) != 0 ||\n (_CGRectIsEmpty(uVar43,uVar36,uVar44,uVar37), (IVar18 & 1) != 0)) ||\n ((dVar30 = (double)_CGRectGetWidth(uVar43,uVar36,uVar44,uVar37),\n dVar30 <= 2.220446049250313e-16 ||\n ((dVar30 = (double)_CGRectGetHeight(uVar43,uVar36,uVar44,uVar37),\n dVar30 <= 2.220446049250313e-16 ||\n (FUN_1000549d4(uVar50,uVar49,uVar48,uVar46,uVar43,uVar36,uVar44,uVar37),\n (int)IVar18 == 0)))))))) goto LAB_10003e134;\n local_130[0].field0_0x0 = 0x7ff8000000000000;\n local_1c0 = 0x7ff8000000000000;\n local_140 = NAN;\n IVar18 = IVar25;\n FUN_100043338(uVar50,uVar49,uVar48,uVar46,uVar43,uVar36,uVar44,uVar37,IVar25,\n IVar19,local_130,&local_1c0,&local_140);\n if ((IVar18 & 1) == 0) {\n FUN_10001ab3c(uVar43,uVar36,uVar44,uVar37,uVar50,uVar49,uVar48,uVar46);\n IVar18 = objc_stub::count(IVar19);\n if (IVar18 < 0x4d) {\nLAB_10003ea08:\n bVar5 = true;\n }\n else {\n dVar31 = (double)_CGRectGetWidth(uVar50,uVar49,uVar48,uVar46);\n dVar30 = (double)_CGRectGetHeight(uVar50,uVar49,uVar48,uVar46);\n if (dVar30 <= dVar31) {\n dVar30 = dVar31;\n }\n bVar5 = true;\n if ((2.220446049250313e-16 < dVar30) &&\n ((ulong)ABS(dVar30) < 0x7ff0000000000000)) {\n IVar20 = NSMutableArray::arrayWithCapacity_\n ((ID)&_OBJC_CLASS___NSMutableArray,0x4c);\n lVar27 = 0;\n do {\n IVar18 = objc_stub::objectAtIndexedSubscript_(IVar25,lVar27);\n IVar21 = objc_stub::objectAtIndexedSubscript_(IVar19,lVar27);\n if ((((IVar18 != 0) && (IVar21 != 0)) &&\n (objc_stub::X(IVar18),\n (extraout_d0 & 0x7fffffffffffffff) < 0x7ff0000000000000)) &&\n (((objc_stub::Y(IVar18),\n (extraout_d0_00 & 0x7fffffffffffffff) < 0x7ff0000000000000 &&\n (objc_stub::X(IVar21),\n (extraout_d0_01 & 0x7fffffffffffffff) < 0x7ff0000000000000)) &&\n (objc_stub::Y(IVar21),\n (extraout_d0_02 & 0x7fffffffffffffff) < 0x7ff0000000000000)))) {\n objc_stub::X(IVar18);\n objc_stub::X(IVar21);\n objc_stub::Y(IVar18);\n objc_stub::Y(IVar21);\n dVar31 = (double)_hypot(extraout_d0_03 - extraout_d0_04,\n extraout_d0_05 - extraout_d0_06);\n if ((ulong)ABS(dVar31 / dVar30) < 0x7ff0000000000000) {\n IVar18 = NSNumber::numberWithDouble_((ID)&_OBJC_CLASS___NSNumber);\n NSMutableArray::addObject_(IVar20,IVar18);\n }\n }\n lVar27 = lVar27 + 1;\n } while (lVar27 != 0x4c);\n IVar18 = NSMutableArray::count(IVar20);\n if (IVar18 < 0x32) goto LAB_10003ea08;\n NSMutableArray::sortUsingSelector_(IVar20,\"compare:\");\n IVar18 = NSMutableArray::count(IVar20);\n IVar19 = NSMutableArray::count(IVar20);\n IVar21 = NSMutableArray::count(IVar20);\n uVar28 = (ulong)((double)(IVar21 - 1) * 0.9);\n uVar15 = IVar19 - 1;\n if (uVar28 <= IVar19 - 1) {\n uVar15 = uVar28;\n }\n IVar18 = NSMutableArray::objectAtIndexedSubscript_(IVar20,IVar18 >> 1);\n NSMutableArray::doubleValue(IVar18);\n IVar18 = NSMutableArray::objectAtIndexedSubscript_(IVar20,uVar15);\n IVar18 = NSMutableArray::doubleValue(IVar18);\n bVar5 = extraout_q0._0_8_ <= 0.58 && extraout_d0_07 <= 0.3;\n }\n }\n }\n else {\n bVar5 = false;\n }\n bVar29 = (bool)(bVar29 & bVar5);\n goto LAB_10003e134;\n }\n }\n }\n }\n }\n }\n }\n }\nLAB_10003e130:\n bVar29 = false;\nLAB_10003e134:\n if ((bVar3 & 1) == 0) {\n uVar23 = 0;\n }\n else {\n auVar8._8_8_ = dStack_218;\n auVar8._0_8_ = local_220;\n lVar27 = -(ulong)(local_220 < 0.0);\n lVar39 = -(ulong)(dStack_218 < 0.0);\n auVar41 = NEON_fmov(0x3ff0000000000000,8);\n auVar4._8_8_ = -(ulong)(auVar41._8_8_ < dStack_218);\n auVar4._0_8_ = -(ulong)(auVar41._0_8_ < local_220);\n auVar41 = auVar41 ^ (auVar41 ^ auVar8) & ~auVar4;\n auVar38._0_8_ =\n CONCAT17(auVar41[7] & ~(byte)((ulong)lVar27 >> 0x38),\n CONCAT16(auVar41[6] & ~(byte)((ulong)lVar27 >> 0x30),\n CONCAT15(auVar41[5] & ~(byte)((ulong)lVar27 >> 0x28),\n CONCAT14(auVar41[4] & ~(byte)((ulong)lVar27 >> 0x20),\n CONCAT13(auVar41[3] & ~(byte)((ulong)lVar27 >> 0x18),\n CONCAT12(auVar41[2] &\n ~(byte)((ulong)lVar27 >> 0x10),\n CONCAT11(auVar41[1] &\n ~(byte)((ulong)lVar27 >> 8),\n auVar41[0] & ~(byte)lVar27))\n )))));\n auVar38[8] = auVar41[8] & ~(byte)lVar39;\n auVar38[9] = auVar41[9] & ~(byte)((ulong)lVar39 >> 8);\n auVar38[10] = auVar41[10] & ~(byte)((ulong)lVar39 >> 0x10);\n auVar38[0xb] = auVar41[0xb] & ~(byte)((ulong)lVar39 >> 0x18);\n auVar38[0xc] = auVar41[0xc] & ~(byte)((ulong)lVar39 >> 0x20);\n auVar38[0xd] = auVar41[0xd] & ~(byte)((ulong)lVar39 >> 0x28);\n auVar38[0xe] = auVar41[0xe] & ~(byte)((ulong)lVar39 >> 0x30);\n auVar38[0xf] = auVar41[0xf] & ~(byte)((ulong)lVar39 >> 0x38);\n *(long *)(param_1 + 0x3c0) = auVar38._8_8_;\n *(undefined8 *)(param_1 + 0x3b8) = auVar38._0_8_;\n if (local_258 <= *(long *)(param_1 + 0x3c8)) {\n local_258 = *(long *)(param_1 + 0x3c8);\n }\n *(long *)(param_1 + 0x3c8) = local_258;\n uVar23 = 1;\n }\n *(undefined1 *)(param_1 + 0x3b1) = uVar23;\n if (bVar29) {\n IVar18 = objc_stub::copy(IVar25);\n *(ID *)(param_1 + 0x370) = IVar18;\n *(undefined1 (*) [16])(param_1 + 0x378) = auVar53;\n *(undefined1 (*) [16])(param_1 + 0x388) = auVar52;\n lVar6 = *plVar22;\n lVar7 = plVar22[1];\n *(long_long *)(param_1 + 0x3a8) = plVar22[2];\n *(long_long *)(param_1 + 0x3a0) = lVar7;\n *(long_long *)(param_1 + 0x398) = lVar6;\n *(undefined1 *)(param_1 + 0x3b0) = 1;\n bVar1 = false;\n auVar9 = *(undefined1 (*) [16])(param_1 + 0x378);\n auVar10 = *(undefined1 (*) [16])(param_1 + 0x388);\n }\n else if (bVar1) {\n auVar9 = auVar55;\n auVar10 = auVar54;\n if ((!bVar2) &&\n (((_CGRectIsNull(uVar50,uVar49,uVar48,uVar46), (IVar18 & 1) != 0 ||\n (_CGRectIsEmpty(uVar50,uVar49,uVar48,uVar46), (IVar18 & 1) != 0)) ||\n ((dVar30 = (double)_CGRectGetWidth(uVar50,uVar49,uVar48,uVar46),\n dVar30 <= 2.220446049250313e-16 ||\n (dVar30 = (double)_CGRectGetHeight(uVar50,uVar49,uVar48,uVar46), auVar9 = auVar53,\n auVar10 = auVar52, dVar30 <= 2.220446049250313e-16)))))) {\n auVar9 = *(undefined1 (*) [16])(param_1 + 0x378);\n auVar10 = *(undefined1 (*) [16])(param_1 + 0x388);\n }\n IVar18 = *(ID *)(param_1 + 0x370);\n FUN_10001ab3c(*(undefined8 *)(param_1 + 0x378),*(undefined8 *)(param_1 + 0x380),\n *(undefined8 *)(param_1 + 0x388),*(undefined8 *)(param_1 + 0x390));\n IVar25 = objc_stub::count(IVar18);\n if ((IVar25 < 0x4d) ||\n (IVar25 = IVar18, FUN_10001b070(auVar9._0_8_,auVar9._8_8_,auVar10._0_8_,auVar10._8_8_),\n (int)IVar25 == 0)) {\n IVar18 = *(ID *)(param_1 + 0x370);\n auVar9 = *(undefined1 (*) [16])(param_1 + 0x378);\n bVar1 = true;\n auVar10 = *(undefined1 (*) [16])(param_1 + 0x388);\n }\n else {\n bVar1 = true;\n }\n }\n else {\n bVar1 = false;\n IVar18 = 0;\n }\n local_1e0 = auVar10._8_8_;\n local_1d8 = auVar10._0_8_;\n local_1d0 = auVar9._8_8_;\n local_1c8 = auVar9._0_8_;\n objc_stub::unlock(*(ID *)(param_1 + 0x28));\n if (param_6 != 0) {\n if (!bVar29) {\n IVar16 = 0;\n }\n IVar25 = 0;\n if (!bVar1) {\n IVar25 = IVar16;\n }\n *(ID *)param_6 = IVar25;\n }\n if (param_7.field0_0x0.field0_0x0 != 0.0) {\n IVar16 = objc_stub::count(IVar18);\n uVar46 = 0x3ff0000000000000;\n if (IVar16 < 0x4d) {\n uVar46 = 0;\n }\n *(undefined8 *)param_7.field0_0x0.field0_0x0 = uVar46;\n }\n if (param_7.field0_0x0.field1_0x8 != 0.0) {\n *(undefined1 (*) [16])param_7.field0_0x0.field1_0x8 = auVar9;\n *(undefined1 (*) [16])((long)param_7.field0_0x0.field1_0x8 + 0x10) = auVar10;\n }\n if (param_7.field1_0x10.field0_0x0 != 0.0) {\n *(bool *)param_7.field1_0x10.field0_0x0 = bVar1;\n }\n if ((*(uint *)((long)plVar22 + 0xc) & 0x1d) == 1) {\n local_130[0].field0_0x0 = *plVar22;\n local_130[0]._8_8_ = plVar22[1];\n local_130[0].field3_0x10 = plVar22[2];\n _CMTimeGetSeconds(local_130);\n }\n objc_stub::count(param_3);\n NSMutableArray::count(IVar17);\n FUN_10001b584(local_240,uStack_238,local_230,dStack_228);\n FUN_10001b584(local_1e8,local_1f0,local_1f8,local_200);\n FUN_10001b584(local_1c8,local_1d0,local_1d8,local_1e0);\n objc_stub::count(IVar18);\n if (*(long *)PTR____stack_chk_guard_1000a80e8 != local_b0) {\n /* WARNING: Subroutine does not return */\n ___stack_chk_fail();\n }\n return IVar18;\n}\n\n" + }, + "subject": { + "architecture": "arm64", + "digest": { + "sha256": "afc71d0d21fd3c1ca95ca745ddafcd729e36ad95f17d8638009f2e45d9b7e8df" + }, + "format": "mach-o", + "local_path": "/Users/dayu/Documents/PaintFCP/build/body-analysis/MSE18V2-arm64", + "name": "MSE18V2-arm64" + } + }, + { + "analysis_profile": { + "digest": "20565088524a2d0359b9b96f46ac48e679d774c7b0092c56abc06de8fdbec11c", + "parameters": { + "analyzer_preset": "ghidra-default", + "annotation_policy": "atomic-function-entry-metadata-v1", + "architecture": "arm64", + "available_architectures": [ + "arm64" + ], + "compiler_spec_id": "auto-default", + "decompiler_jump_loads": true, + "function_body_evidence": "complete-inclusive-ranges-v1", + "function_boundary_observations": "ghidra-terminal-call-limitations-v1", + "function_references": "complete-body-and-entry-reference-manager-v2", + "import_mode": "ephemeral-source-immutable", + "instruction_flow_evidence": "decoded-return-pcode-v1", + "jump_table_evidence": "typed-case-default-blocks-v1", + "language_id": "auto-from-header", + "load_image_observations": "source-mappings-entry-context-v2", + "loader": "auto-from-header", + "location_resolution": "explicit-address-exact-entry-symbol-first-v3", + "no_return_repair": "returning-imports-decoded-return-v2", + "process_launch": "inspected-jvm-launch-support-v1", + "string_inventory_evidence": "defined-data-coverage-v1", + "target_format": "mach-o", + "target_kind": "executable" + }, + "provider": { + "id": "ghidra", + "name": "Ghidra", + "version": "12.1.4" + } + }, + "authority": "shipped-artifact", + "confidence": "observed", + "environment": null, + "evidence_id": "ev_5f2559cee95d1b86674a816a456d7ec707bf5bcf0b98cae7cf4b086236b1b4f4", + "evidence_links": [], + "limitations": [ + "The session serves operations only after Ghidra reports default auto-analysis complete; incomplete analysis does not expose partial results.", + "The imported Program and temporary project are ephemeral and deleted on close. Annotation operations edit session database metadata; original executable bytes are never written.", + "Cancelling an active Ghidra request terminates its ephemeral database and discards session annotations. The selected target remains open; the next provider query imports the original artifact again.", + "Default-space addresses use lowercase 0x-prefixed hexadecimal; other address spaces use :0x.", + "Assembly is Ghidra Listing text and does not claim textual equivalence with Hopper output.", + "macOS sessions require a matching executable Ghidra native decompiler; REA checks for it but does not build native components or change Gatekeeper quarantine state." + ], + "locations": [], + "normalized_result": "0x100054758: stp x20, x19, [sp, #-0x20]!\n0x10005475c: stp x29, x30, [sp, #0x10]\n0x100054760: add x29, sp, #0x10\n0x100054764: adrp x0, 0x100098000\n0x100054768: add x0, x0, #0xb29\n0x10005476c: bl 0x10007ad60\n0x100054770: cbz x0, 0x100054794\n0x100054774: ldrb w8, [x0]\n0x100054778: cbz w8, 0x100054794\n0x10005477c: cmp w8, #0x30\n0x100054780: b.ne 0x10005479c\n0x100054784: ldrb w8, [x0, #0x1]\n0x100054788: cmp w8, #0x0\n0x10005478c: cset w19, ne\n0x100054790: b 0x1000547a0\n0x100054794: mov w19, #0x0\n0x100054798: b 0x1000547a0\n0x10005479c: mov w19, #0x1\n0x1000547a0: adrp x0, 0x1000af000\n0x1000547a4: add x0, x0, #0x5a0\n0x1000547a8: bl 0x10004970c\n0x1000547ac: orr w8, w19, w0\n0x1000547b0: eor w8, w8, #0x1\n0x1000547b4: adrp x9, 0x1000bd000\n0x1000547b8: strb w8, [x9, #0x210]\n0x1000547bc: ldp x29, x30, [sp, #0x10]\n0x1000547c0: ldp x20, x19, [sp], #0x20\n0x1000547c4: ret", + "operation": "procedure_assembly", + "parameters": { + "procedure": "0x100054758" + }, + "predicate_type": "rea.analysis", + "provider": { + "id": "ghidra", + "name": "Ghidra", + "version": "12.1.4" + }, + "raw_result": { + "limitations": [], + "value": "0x100054758: stp x20, x19, [sp, #-0x20]!\n0x10005475c: stp x29, x30, [sp, #0x10]\n0x100054760: add x29, sp, #0x10\n0x100054764: adrp x0, 0x100098000\n0x100054768: add x0, x0, #0xb29\n0x10005476c: bl 0x10007ad60\n0x100054770: cbz x0, 0x100054794\n0x100054774: ldrb w8, [x0]\n0x100054778: cbz w8, 0x100054794\n0x10005477c: cmp w8, #0x30\n0x100054780: b.ne 0x10005479c\n0x100054784: ldrb w8, [x0, #0x1]\n0x100054788: cmp w8, #0x0\n0x10005478c: cset w19, ne\n0x100054790: b 0x1000547a0\n0x100054794: mov w19, #0x0\n0x100054798: b 0x1000547a0\n0x10005479c: mov w19, #0x1\n0x1000547a0: adrp x0, 0x1000af000\n0x1000547a4: add x0, x0, #0x5a0\n0x1000547a8: bl 0x10004970c\n0x1000547ac: orr w8, w19, w0\n0x1000547b0: eor w8, w8, #0x1\n0x1000547b4: adrp x9, 0x1000bd000\n0x1000547b8: strb w8, [x9, #0x210]\n0x1000547bc: ldp x29, x30, [sp, #0x10]\n0x1000547c0: ldp x20, x19, [sp], #0x20\n0x1000547c4: ret" + }, + "subject": { + "architecture": "arm64", + "digest": { + "sha256": "afc71d0d21fd3c1ca95ca745ddafcd729e36ad95f17d8638009f2e45d9b7e8df" + }, + "format": "mach-o", + "local_path": "/Users/dayu/Documents/PaintFCP/build/body-analysis/MSE18V2-arm64", + "name": "MSE18V2-arm64" + } + }, + { + "analysis_profile": { + "digest": "20565088524a2d0359b9b96f46ac48e679d774c7b0092c56abc06de8fdbec11c", + "parameters": { + "analyzer_preset": "ghidra-default", + "annotation_policy": "atomic-function-entry-metadata-v1", + "architecture": "arm64", + "available_architectures": [ + "arm64" + ], + "compiler_spec_id": "auto-default", + "decompiler_jump_loads": true, + "function_body_evidence": "complete-inclusive-ranges-v1", + "function_boundary_observations": "ghidra-terminal-call-limitations-v1", + "function_references": "complete-body-and-entry-reference-manager-v2", + "import_mode": "ephemeral-source-immutable", + "instruction_flow_evidence": "decoded-return-pcode-v1", + "jump_table_evidence": "typed-case-default-blocks-v1", + "language_id": "auto-from-header", + "load_image_observations": "source-mappings-entry-context-v2", + "loader": "auto-from-header", + "location_resolution": "explicit-address-exact-entry-symbol-first-v3", + "no_return_repair": "returning-imports-decoded-return-v2", + "process_launch": "inspected-jvm-launch-support-v1", + "string_inventory_evidence": "defined-data-coverage-v1", + "target_format": "mach-o", + "target_kind": "executable" + }, + "provider": { + "id": "ghidra", + "name": "Ghidra", + "version": "12.1.4" + } + }, + "authority": "shipped-artifact", + "confidence": "observed", + "environment": null, + "evidence_id": "ev_729ab4726d11b7161f64e0a3a57b6c9f0170f28f56c06cc89367f1eadfe70676", + "evidence_links": [], + "limitations": [ + "The session serves operations only after Ghidra reports default auto-analysis complete; incomplete analysis does not expose partial results.", + "The imported Program and temporary project are ephemeral and deleted on close. Annotation operations edit session database metadata; original executable bytes are never written.", + "Cancelling an active Ghidra request terminates its ephemeral database and discards session annotations. The selected target remains open; the next provider query imports the original artifact again.", + "Default-space addresses use lowercase 0x-prefixed hexadecimal; other address spaces use :0x.", + "Pseudocode is Ghidra decompiler output, not original source and not text-equivalent to Hopper output.", + "External functions and functions without an analyzable body return null; other decompiler failures remain explicit.", + "Ghidra Listing reports a terminal call at 0x10003d498 to 0x10007aca0 ___stack_chk_fail (external=false, thunk=true, hasNoReturn=true); fallthrough is excluded by Ghidra's flow model. This records Ghidra's FunctionManager flag, not an independent verification that the callee cannot return.", + "macOS sessions require a matching executable Ghidra native decompiler; REA checks for it but does not build native components or change Gatekeeper quarantine state." + ], + "locations": [], + "normalized_result": "\n/* WARNING: Function: _objc_release replaced with injection: _objc_release_fixup */\n/* Function Stack Size: 0x3c bytes */\n\nCGRect MSSuperSkinSmoothingPlugIn::\n trackedFaceBoxForInputImage_renderTime_selectedObservation_shouldTrack_\n (ID param_1,SEL param_2,ID param_3,AnonymousStructure0 param_4,ID param_5,\n bool param_6)\n\n{\n double *pdVar1;\n uint uVar2;\n uint uVar3;\n uint uVar4;\n int iVar5;\n double *pdVar6;\n undefined *puVar7;\n ulong uVar8;\n ID IVar9;\n ID IVar10;\n ID IVar11;\n double *pdVar12;\n uint uVar13;\n uint uVar14;\n uint uVar15;\n float extraout_s0;\n double in_d0;\n double dVar16;\n undefined8 extraout_d0;\n double extraout_d0_00;\n undefined8 uVar17;\n double in_d1;\n double dVar18;\n undefined8 uVar19;\n undefined8 uVar20;\n double in_d2;\n double dVar21;\n double in_d3;\n double dVar22;\n double dVar23;\n double dVar24;\n double dVar25;\n double dVar26;\n double dVar27;\n CGRect CVar28;\n ulong local_118;\n double local_110;\n undefined8 uStack_108;\n undefined8 local_100;\n double local_f0;\n double dStack_e8;\n double local_e0;\n double local_d0;\n double dStack_c8;\n double local_c0;\n undefined8 local_b8;\n long local_b0;\n \n uVar8 = param_4._8_8_;\n pdVar12 = (double *)param_4.field0_0x0;\n local_b0 = *(long *)PTR____stack_chk_guard_1000a80e8;\n if ((int)param_4.field3_0x10 == 0) {\nLAB_10003d3d8:\n *(undefined8 *)(param_1 + 0x58) = 0;\n puVar7 = &_OBJC_CLASS___VNSequenceRequestHandler;\n _objc_alloc_init();\n *(undefined **)(param_1 + 0x50) = puVar7;\n *(undefined1 *)(param_1 + 0x520) = 0;\n uVar17 = *(undefined8 *)PTR__CGRectZero_1000a8150;\n uVar20 = *(undefined8 *)(PTR__CGRectZero_1000a8150 + 0x18);\n uVar19 = *(undefined8 *)(PTR__CGRectZero_1000a8150 + 0x10);\n *(undefined8 *)(param_1 + 0x4f0) = *(undefined8 *)(PTR__CGRectZero_1000a8150 + 8);\n *(undefined8 *)(param_1 + 0x4e8) = uVar17;\n *(undefined8 *)(param_1 + 0x500) = uVar20;\n *(undefined8 *)(param_1 + 0x4f8) = uVar19;\n puVar7 = PTR__kCMTimeInvalid_1000a8208;\n uVar17 = *(undefined8 *)PTR__kCMTimeInvalid_1000a8208;\n *(undefined8 *)(param_1 + 0x510) = *(undefined8 *)(PTR__kCMTimeInvalid_1000a8208 + 8);\n *(undefined8 *)(param_1 + 0x508) = uVar17;\n *(undefined8 *)(param_1 + 0x518) = *(undefined8 *)(puVar7 + 0x10);\n }\n else {\n if (DAT_1000be158 != -1) {\n FUN_1000799dc();\n if (param_3 != 0) goto LAB_10003cce0;\n goto LAB_10003d3d8;\n }\n if (param_3 == 0) goto LAB_10003d3d8;\nLAB_10003cce0:\n if ((DAT_1000bd210 & 1) == 0) goto LAB_10003d3d8;\n FUN_10003d49c();\n _CGRectIsNull();\n if ((((uVar8 & 1) != 0) || (_CGRectIsEmpty(in_d0,in_d1,in_d2,in_d3), (uVar8 & 1) != 0)) ||\n (dVar27 = in_d0, _CGRectGetWidth(in_d0,in_d1,in_d2,in_d3), dVar27 <= 2.220446049250313e-16))\n {\n uVar15 = 0;\n }\n else {\n dVar27 = in_d0;\n _CGRectGetHeight(in_d0,in_d1,in_d2,in_d3);\n uVar15 = (uint)(2.220446049250313e-16 < dVar27);\n }\n dVar27 = *(double *)(param_1 + 0x4e8);\n dVar23 = *(double *)(param_1 + 0x4f0);\n dVar26 = *(double *)(param_1 + 0x4f8);\n dVar25 = *(double *)(param_1 + 0x500);\n dVar22 = dVar25;\n _CGRectIsNull(dVar27,dVar23,dVar26);\n uVar4 = (uint)uVar8;\n if ((uVar8 & 1) == 0) {\n dVar22 = dVar25;\n _CGRectIsEmpty(dVar27,dVar23,dVar26);\n uVar4 = (uint)uVar8;\n if (((uVar8 & 1) != 0) ||\n (dVar16 = dVar27, dVar22 = dVar25, _CGRectGetWidth(dVar27,dVar23,dVar26),\n dVar16 <= 2.220446049250313e-16)) goto LAB_10003ce00;\n dVar16 = dVar27;\n dVar22 = dVar25;\n _CGRectGetHeight(dVar27,dVar23,dVar26);\n uVar14 = (uint)(2.220446049250313e-16 < dVar16);\n }\n else {\nLAB_10003ce00:\n uVar14 = 0;\n }\n local_118 = 0;\n uVar2 = *(uint *)((long)pdVar12 + 0xc) & 0x1d;\n pdVar1 = (double *)(param_1 + 0x508);\n uVar3 = *(uint *)(param_1 + 0x514) & 0x1d;\n dVar16 = NAN;\n if ((uVar2 == 1) && (uVar3 == 1)) {\n dStack_c8 = pdVar12[1];\n local_d0 = *pdVar12;\n local_c0 = pdVar12[2];\n dStack_e8 = *(double *)(param_1 + 0x510);\n local_f0 = *pdVar1;\n local_e0 = *(double *)(param_1 + 0x518);\n pdVar6 = &local_d0;\n _CMTimeCompare(pdVar6,&local_f0);\n local_118 = (ulong)pdVar6 >> 0x1f & 1;\n dStack_e8 = pdVar12[1];\n local_f0 = *pdVar12;\n local_e0 = pdVar12[2];\n uStack_108 = *(undefined8 *)(param_1 + 0x510);\n dVar16 = *pdVar1;\n local_100 = *(undefined8 *)(param_1 + 0x518);\n local_110 = dVar16;\n _CMTimeSubtract(&local_d0,&local_f0,&local_110);\n uVar4 = 0;\n _CMTimeGetSeconds();\n }\n dVar18 = ABS(dVar16);\n dVar21 = 0.2;\n uVar13 = 0;\n if (dVar18 <= 0.0005) {\n uVar13 = (uint)((ulong)ABS(dVar16) < 0x7ff0000000000000);\n }\n dVar24 = 1.7976931348623157e+308;\n if (((uVar2 == 1) && ((uVar14 ^ 1) == 0)) && (uVar3 == 1)) {\n dStack_c8 = pdVar12[1];\n local_d0 = *pdVar12;\n local_c0 = pdVar12[2];\n dStack_e8 = *(double *)(param_1 + 0x510);\n local_f0 = *pdVar1;\n local_e0 = *(double *)(param_1 + 0x518);\n pdVar6 = &local_d0;\n _CMTimeCompare(pdVar6,&local_f0);\n uVar4 = (uint)pdVar6;\n if ((int)uVar4 < 0) {\n dVar24 = 1.7976931348623157e+308;\n }\n else {\n dStack_e8 = pdVar12[1];\n local_f0 = *pdVar12;\n local_e0 = pdVar12[2];\n uStack_108 = *(undefined8 *)(param_1 + 0x510);\n dVar24 = *pdVar1;\n local_100 = *(undefined8 *)(param_1 + 0x518);\n local_110 = dVar24;\n _CMTimeSubtract(&local_d0,&local_f0,&local_110);\n uVar4 = 0;\n _CMTimeGetSeconds();\n }\n }\n if ((uVar15 & uVar14) == 1) {\n dVar18 = in_d1;\n dVar21 = in_d2;\n dVar22 = in_d3;\n FUN_10002a568(in_d0);\n }\n else {\n uVar4 = 0;\n }\n puVar7 = *(undefined **)(param_1 + 0x50);\n if (puVar7 == (undefined *)0x0) {\n puVar7 = &_OBJC_CLASS___VNSequenceRequestHandler;\n _objc_alloc_init();\n *(undefined **)(param_1 + 0x50) = puVar7;\n }\n if (((uVar14 & uVar13) == 1) && ((*(byte *)(param_1 + 0x520) & 1) != 0)) goto LAB_10003d440;\n if (local_118 == 0) {\n if (*(long *)(param_1 + 0x58) != 0) {\n if ((uVar14 ^ 1) == 0 && (*(byte *)(param_1 + 0x520) & 1) == 0) goto LAB_10003d178;\n goto LAB_10003d030;\n }\n if (uVar14 != 0) {\nLAB_10003d178:\n if ((((ulong)ABS(dVar24) < 0x7ff0000000000000) && (dVar24 <= 0.45)) &&\n ((uVar15 & uVar4) == 0)) {\n _NSStringFromRect(dVar27,dVar23,dVar26,dVar25);\n if (uVar15 != 0) {\n _NSStringFromRect(in_d0,in_d1,in_d2,in_d3);\n }\n FUN_1000329ac(&cf_faceTrackholdLostage___3fprevious___selected___);\n goto LAB_10003d440;\n }\n goto LAB_10003d018;\n }\nLAB_10003d1f4:\n if (uVar15 != 0) {\n IVar9 = VNDetectedObjectObservation::observationWithBoundingBox_\n ((ID)&_OBJC_CLASS___VNDetectedObjectObservation,in_d0,in_d1,in_d2,in_d3);\n puVar7 = &_OBJC_CLASS___VNTrackObjectRequest;\n _objc_alloc();\n IVar9 = objc_stub::initWithDetectedObjectObservation_((ID)puVar7,IVar9);\n *(ID *)(param_1 + 0x58) = IVar9;\n IVar9 = VNTrackObjectRequest::supportedRevisions((ID)&_OBJC_CLASS___VNTrackObjectRequest);\n IVar10 = VNTrackObjectRequest::defaultRevision((ID)&_OBJC_CLASS___VNTrackObjectRequest);\n if (((IVar10 != 0) &&\n (IVar11 = VNTrackObjectRequest::containsIndex_(IVar9,IVar10), (IVar11 & 1) != 0)) ||\n (((IVar10 = VNTrackObjectRequest::currentRevision\n ((ID)&_OBJC_CLASS___VNTrackObjectRequest), IVar10 != 0 &&\n (IVar11 = VNTrackObjectRequest::containsIndex_(IVar9,IVar10), (IVar11 & 1) != 0)) ||\n ((IVar10 = VNTrackObjectRequest::lastIndex(IVar9), IVar10 != 0 &&\n (IVar10 != 0x7fffffffffffffff)))))) {\n objc_stub::setRevision_(*(ID *)(param_1 + 0x58),IVar10);\n }\n objc_stub::setTrackingLevel_(*(ID *)(param_1 + 0x58),0);\n *(double *)(param_1 + 0x4e8) = in_d0;\n *(double *)(param_1 + 0x4f0) = in_d1;\n *(double *)(param_1 + 0x4f8) = in_d2;\n *(double *)(param_1 + 0x500) = in_d3;\n dVar23 = pdVar12[1];\n dVar27 = *pdVar12;\n *(double *)(param_1 + 0x518) = pdVar12[2];\n *(double *)(param_1 + 0x510) = dVar23;\n *pdVar1 = dVar27;\n *(undefined1 *)(param_1 + 0x520) = 1;\n objc_stub::revision(*(ID *)(param_1 + 0x58));\n _NSStringFromRect(in_d0,in_d1,in_d2,in_d3);\n dVar27 = in_d0;\n dVar23 = in_d1;\n dVar26 = in_d2;\n dVar25 = in_d3;\n goto LAB_10003d440;\n }\nLAB_10003d300:\n *(undefined1 *)(param_1 + 0x520) = 0;\n }\n else {\nLAB_10003d018:\n if (*(long *)(param_1 + 0x58) == 0) goto LAB_10003d1f4;\nLAB_10003d030:\n if (((int)local_118 != 0 || ((*(byte *)(param_1 + 0x520) ^ 0xff) & 1) != 0) ||\n (ulong)ABS(dVar16) < 0x7ff0000000000000 && 0.2 < dVar16) goto LAB_10003d1f4;\n if (puVar7 == (undefined *)0x0) goto LAB_10003d300;\n IVar9 = objc_stub::extent(param_3);\n iVar5 = (int)IVar9;\n _CGRectIsEmpty();\n if ((iVar5 == 0) && (FUN_10002ee0c(extraout_d0), param_3 != 0)) {\n local_d0 = 0.0;\n IVar9 = *(ID *)(param_1 + 0x50);\n local_b8 = *(undefined8 *)(param_1 + 0x58);\n IVar10 = NSArray::arrayWithObjects_count_((ID)&_OBJC_CLASS___NSArray,&local_b8,1);\n IVar9 = objc_stub::performRequests_onCIImage_orientation_error_\n (IVar9,IVar10,param_3,1,&local_d0);\n if ((IVar9 & 1) == 0) {\n FUN_10003d658(0);\n }\n else {\n IVar9 = objc_stub::results(*(ID *)(param_1 + 0x58));\n IVar9 = objc_stub::firstObject(IVar9);\n dVar16 = extraout_d0_00;\n FUN_10003d658();\n if (IVar9 != 0) {\n uVar8 = objc_stub::confidence(IVar9);\n if ((0.22 <= extraout_s0) &&\n (FUN_10001a870(dVar16,dVar18,dVar21,dVar22), (uVar8 & 1) != 0)) {\n objc_stub::setInputObservation_(*(ID *)(param_1 + 0x58),IVar9);\n objc_stub::setTrackingLevel_(*(ID *)(param_1 + 0x58),0);\n *(double *)(param_1 + 0x4e8) = dVar16;\n *(double *)(param_1 + 0x4f0) = dVar18;\n *(double *)(param_1 + 0x4f8) = dVar21;\n *(double *)(param_1 + 0x500) = dVar22;\n dVar23 = pdVar12[1];\n dVar27 = *pdVar12;\n *(double *)(param_1 + 0x518) = pdVar12[2];\n *(double *)(param_1 + 0x510) = dVar23;\n *pdVar1 = dVar27;\n *(undefined1 *)(param_1 + 0x520) = 1;\n dVar27 = dVar16;\n dVar23 = dVar18;\n dVar26 = dVar21;\n dVar25 = dVar22;\n goto LAB_10003d440;\n }\n objc_stub::confidence(IVar9);\n }\n }\n *(undefined8 *)(param_1 + 0x58) = 0;\n puVar7 = &_OBJC_CLASS___VNSequenceRequestHandler;\n _objc_alloc_init();\n *(undefined **)(param_1 + 0x50) = puVar7;\n *(undefined1 *)(param_1 + 0x520) = 0;\n if (uVar14 != 0) {\n *(double *)(param_1 + 0x4e8) = dVar27;\n *(double *)(param_1 + 0x4f0) = dVar23;\n *(double *)(param_1 + 0x4f8) = dVar26;\n *(double *)(param_1 + 0x500) = dVar25;\n goto LAB_10003d440;\n }\n uVar17 = *(undefined8 *)PTR__CGRectZero_1000a8150;\n uVar20 = *(undefined8 *)(PTR__CGRectZero_1000a8150 + 0x18);\n uVar19 = *(undefined8 *)(PTR__CGRectZero_1000a8150 + 0x10);\n *(undefined8 *)(param_1 + 0x4f0) = *(undefined8 *)(PTR__CGRectZero_1000a8150 + 8);\n *(undefined8 *)(param_1 + 0x4e8) = uVar17;\n *(undefined8 *)(param_1 + 0x500) = uVar20;\n *(undefined8 *)(param_1 + 0x4f8) = uVar19;\n puVar7 = PTR__kCMTimeInvalid_1000a8208;\n dVar27 = *(double *)PTR__kCMTimeInvalid_1000a8208;\n *(undefined8 *)(param_1 + 0x510) = *(undefined8 *)(PTR__kCMTimeInvalid_1000a8208 + 8);\n *pdVar1 = dVar27;\n *(undefined8 *)(param_1 + 0x518) = *(undefined8 *)(puVar7 + 0x10);\n dVar27 = in_d0;\n dVar23 = in_d1;\n dVar26 = in_d2;\n dVar25 = in_d3;\n }\n else {\n *(undefined1 *)(param_1 + 0x520) = 0;\n uVar15 = uVar14;\n }\n if (uVar15 != 0) goto LAB_10003d440;\n }\n }\n dVar27 = *(double *)PTR__CGRectNull_1000a8148;\n dVar23 = *(double *)(PTR__CGRectNull_1000a8148 + 8);\n dVar26 = *(double *)(PTR__CGRectNull_1000a8148 + 0x10);\n dVar25 = *(double *)(PTR__CGRectNull_1000a8148 + 0x18);\nLAB_10003d440:\n if (*(long *)PTR____stack_chk_guard_1000a80e8 == local_b0) {\n CVar28.field0_0x0.field1_0x8 = dVar23;\n CVar28.field0_0x0.field0_0x0 = dVar27;\n CVar28.field1_0x10.field1_0x8 = dVar25;\n CVar28.field1_0x10.field0_0x0 = dVar26;\n return CVar28;\n }\n /* WARNING: Subroutine does not return */\n ___stack_chk_fail();\n}\n\n", + "operation": "procedure_pseudo_code", + "parameters": { + "procedure": "0x10003cc78" + }, + "predicate_type": "rea.analysis", + "provider": { + "id": "ghidra", + "name": "Ghidra", + "version": "12.1.4" + }, + "raw_result": { + "limitations": [ + "Ghidra Listing reports a terminal call at 0x10003d498 to 0x10007aca0 ___stack_chk_fail (external=false, thunk=true, hasNoReturn=true); fallthrough is excluded by Ghidra's flow model. This records Ghidra's FunctionManager flag, not an independent verification that the callee cannot return." + ], + "value": "\n/* WARNING: Function: _objc_release replaced with injection: _objc_release_fixup */\n/* Function Stack Size: 0x3c bytes */\n\nCGRect MSSuperSkinSmoothingPlugIn::\n trackedFaceBoxForInputImage_renderTime_selectedObservation_shouldTrack_\n (ID param_1,SEL param_2,ID param_3,AnonymousStructure0 param_4,ID param_5,\n bool param_6)\n\n{\n double *pdVar1;\n uint uVar2;\n uint uVar3;\n uint uVar4;\n int iVar5;\n double *pdVar6;\n undefined *puVar7;\n ulong uVar8;\n ID IVar9;\n ID IVar10;\n ID IVar11;\n double *pdVar12;\n uint uVar13;\n uint uVar14;\n uint uVar15;\n float extraout_s0;\n double in_d0;\n double dVar16;\n undefined8 extraout_d0;\n double extraout_d0_00;\n undefined8 uVar17;\n double in_d1;\n double dVar18;\n undefined8 uVar19;\n undefined8 uVar20;\n double in_d2;\n double dVar21;\n double in_d3;\n double dVar22;\n double dVar23;\n double dVar24;\n double dVar25;\n double dVar26;\n double dVar27;\n CGRect CVar28;\n ulong local_118;\n double local_110;\n undefined8 uStack_108;\n undefined8 local_100;\n double local_f0;\n double dStack_e8;\n double local_e0;\n double local_d0;\n double dStack_c8;\n double local_c0;\n undefined8 local_b8;\n long local_b0;\n \n uVar8 = param_4._8_8_;\n pdVar12 = (double *)param_4.field0_0x0;\n local_b0 = *(long *)PTR____stack_chk_guard_1000a80e8;\n if ((int)param_4.field3_0x10 == 0) {\nLAB_10003d3d8:\n *(undefined8 *)(param_1 + 0x58) = 0;\n puVar7 = &_OBJC_CLASS___VNSequenceRequestHandler;\n _objc_alloc_init();\n *(undefined **)(param_1 + 0x50) = puVar7;\n *(undefined1 *)(param_1 + 0x520) = 0;\n uVar17 = *(undefined8 *)PTR__CGRectZero_1000a8150;\n uVar20 = *(undefined8 *)(PTR__CGRectZero_1000a8150 + 0x18);\n uVar19 = *(undefined8 *)(PTR__CGRectZero_1000a8150 + 0x10);\n *(undefined8 *)(param_1 + 0x4f0) = *(undefined8 *)(PTR__CGRectZero_1000a8150 + 8);\n *(undefined8 *)(param_1 + 0x4e8) = uVar17;\n *(undefined8 *)(param_1 + 0x500) = uVar20;\n *(undefined8 *)(param_1 + 0x4f8) = uVar19;\n puVar7 = PTR__kCMTimeInvalid_1000a8208;\n uVar17 = *(undefined8 *)PTR__kCMTimeInvalid_1000a8208;\n *(undefined8 *)(param_1 + 0x510) = *(undefined8 *)(PTR__kCMTimeInvalid_1000a8208 + 8);\n *(undefined8 *)(param_1 + 0x508) = uVar17;\n *(undefined8 *)(param_1 + 0x518) = *(undefined8 *)(puVar7 + 0x10);\n }\n else {\n if (DAT_1000be158 != -1) {\n FUN_1000799dc();\n if (param_3 != 0) goto LAB_10003cce0;\n goto LAB_10003d3d8;\n }\n if (param_3 == 0) goto LAB_10003d3d8;\nLAB_10003cce0:\n if ((DAT_1000bd210 & 1) == 0) goto LAB_10003d3d8;\n FUN_10003d49c();\n _CGRectIsNull();\n if ((((uVar8 & 1) != 0) || (_CGRectIsEmpty(in_d0,in_d1,in_d2,in_d3), (uVar8 & 1) != 0)) ||\n (dVar27 = in_d0, _CGRectGetWidth(in_d0,in_d1,in_d2,in_d3), dVar27 <= 2.220446049250313e-16))\n {\n uVar15 = 0;\n }\n else {\n dVar27 = in_d0;\n _CGRectGetHeight(in_d0,in_d1,in_d2,in_d3);\n uVar15 = (uint)(2.220446049250313e-16 < dVar27);\n }\n dVar27 = *(double *)(param_1 + 0x4e8);\n dVar23 = *(double *)(param_1 + 0x4f0);\n dVar26 = *(double *)(param_1 + 0x4f8);\n dVar25 = *(double *)(param_1 + 0x500);\n dVar22 = dVar25;\n _CGRectIsNull(dVar27,dVar23,dVar26);\n uVar4 = (uint)uVar8;\n if ((uVar8 & 1) == 0) {\n dVar22 = dVar25;\n _CGRectIsEmpty(dVar27,dVar23,dVar26);\n uVar4 = (uint)uVar8;\n if (((uVar8 & 1) != 0) ||\n (dVar16 = dVar27, dVar22 = dVar25, _CGRectGetWidth(dVar27,dVar23,dVar26),\n dVar16 <= 2.220446049250313e-16)) goto LAB_10003ce00;\n dVar16 = dVar27;\n dVar22 = dVar25;\n _CGRectGetHeight(dVar27,dVar23,dVar26);\n uVar14 = (uint)(2.220446049250313e-16 < dVar16);\n }\n else {\nLAB_10003ce00:\n uVar14 = 0;\n }\n local_118 = 0;\n uVar2 = *(uint *)((long)pdVar12 + 0xc) & 0x1d;\n pdVar1 = (double *)(param_1 + 0x508);\n uVar3 = *(uint *)(param_1 + 0x514) & 0x1d;\n dVar16 = NAN;\n if ((uVar2 == 1) && (uVar3 == 1)) {\n dStack_c8 = pdVar12[1];\n local_d0 = *pdVar12;\n local_c0 = pdVar12[2];\n dStack_e8 = *(double *)(param_1 + 0x510);\n local_f0 = *pdVar1;\n local_e0 = *(double *)(param_1 + 0x518);\n pdVar6 = &local_d0;\n _CMTimeCompare(pdVar6,&local_f0);\n local_118 = (ulong)pdVar6 >> 0x1f & 1;\n dStack_e8 = pdVar12[1];\n local_f0 = *pdVar12;\n local_e0 = pdVar12[2];\n uStack_108 = *(undefined8 *)(param_1 + 0x510);\n dVar16 = *pdVar1;\n local_100 = *(undefined8 *)(param_1 + 0x518);\n local_110 = dVar16;\n _CMTimeSubtract(&local_d0,&local_f0,&local_110);\n uVar4 = 0;\n _CMTimeGetSeconds();\n }\n dVar18 = ABS(dVar16);\n dVar21 = 0.2;\n uVar13 = 0;\n if (dVar18 <= 0.0005) {\n uVar13 = (uint)((ulong)ABS(dVar16) < 0x7ff0000000000000);\n }\n dVar24 = 1.7976931348623157e+308;\n if (((uVar2 == 1) && ((uVar14 ^ 1) == 0)) && (uVar3 == 1)) {\n dStack_c8 = pdVar12[1];\n local_d0 = *pdVar12;\n local_c0 = pdVar12[2];\n dStack_e8 = *(double *)(param_1 + 0x510);\n local_f0 = *pdVar1;\n local_e0 = *(double *)(param_1 + 0x518);\n pdVar6 = &local_d0;\n _CMTimeCompare(pdVar6,&local_f0);\n uVar4 = (uint)pdVar6;\n if ((int)uVar4 < 0) {\n dVar24 = 1.7976931348623157e+308;\n }\n else {\n dStack_e8 = pdVar12[1];\n local_f0 = *pdVar12;\n local_e0 = pdVar12[2];\n uStack_108 = *(undefined8 *)(param_1 + 0x510);\n dVar24 = *pdVar1;\n local_100 = *(undefined8 *)(param_1 + 0x518);\n local_110 = dVar24;\n _CMTimeSubtract(&local_d0,&local_f0,&local_110);\n uVar4 = 0;\n _CMTimeGetSeconds();\n }\n }\n if ((uVar15 & uVar14) == 1) {\n dVar18 = in_d1;\n dVar21 = in_d2;\n dVar22 = in_d3;\n FUN_10002a568(in_d0);\n }\n else {\n uVar4 = 0;\n }\n puVar7 = *(undefined **)(param_1 + 0x50);\n if (puVar7 == (undefined *)0x0) {\n puVar7 = &_OBJC_CLASS___VNSequenceRequestHandler;\n _objc_alloc_init();\n *(undefined **)(param_1 + 0x50) = puVar7;\n }\n if (((uVar14 & uVar13) == 1) && ((*(byte *)(param_1 + 0x520) & 1) != 0)) goto LAB_10003d440;\n if (local_118 == 0) {\n if (*(long *)(param_1 + 0x58) != 0) {\n if ((uVar14 ^ 1) == 0 && (*(byte *)(param_1 + 0x520) & 1) == 0) goto LAB_10003d178;\n goto LAB_10003d030;\n }\n if (uVar14 != 0) {\nLAB_10003d178:\n if ((((ulong)ABS(dVar24) < 0x7ff0000000000000) && (dVar24 <= 0.45)) &&\n ((uVar15 & uVar4) == 0)) {\n _NSStringFromRect(dVar27,dVar23,dVar26,dVar25);\n if (uVar15 != 0) {\n _NSStringFromRect(in_d0,in_d1,in_d2,in_d3);\n }\n FUN_1000329ac(&cf_faceTrackholdLostage___3fprevious___selected___);\n goto LAB_10003d440;\n }\n goto LAB_10003d018;\n }\nLAB_10003d1f4:\n if (uVar15 != 0) {\n IVar9 = VNDetectedObjectObservation::observationWithBoundingBox_\n ((ID)&_OBJC_CLASS___VNDetectedObjectObservation,in_d0,in_d1,in_d2,in_d3);\n puVar7 = &_OBJC_CLASS___VNTrackObjectRequest;\n _objc_alloc();\n IVar9 = objc_stub::initWithDetectedObjectObservation_((ID)puVar7,IVar9);\n *(ID *)(param_1 + 0x58) = IVar9;\n IVar9 = VNTrackObjectRequest::supportedRevisions((ID)&_OBJC_CLASS___VNTrackObjectRequest);\n IVar10 = VNTrackObjectRequest::defaultRevision((ID)&_OBJC_CLASS___VNTrackObjectRequest);\n if (((IVar10 != 0) &&\n (IVar11 = VNTrackObjectRequest::containsIndex_(IVar9,IVar10), (IVar11 & 1) != 0)) ||\n (((IVar10 = VNTrackObjectRequest::currentRevision\n ((ID)&_OBJC_CLASS___VNTrackObjectRequest), IVar10 != 0 &&\n (IVar11 = VNTrackObjectRequest::containsIndex_(IVar9,IVar10), (IVar11 & 1) != 0)) ||\n ((IVar10 = VNTrackObjectRequest::lastIndex(IVar9), IVar10 != 0 &&\n (IVar10 != 0x7fffffffffffffff)))))) {\n objc_stub::setRevision_(*(ID *)(param_1 + 0x58),IVar10);\n }\n objc_stub::setTrackingLevel_(*(ID *)(param_1 + 0x58),0);\n *(double *)(param_1 + 0x4e8) = in_d0;\n *(double *)(param_1 + 0x4f0) = in_d1;\n *(double *)(param_1 + 0x4f8) = in_d2;\n *(double *)(param_1 + 0x500) = in_d3;\n dVar23 = pdVar12[1];\n dVar27 = *pdVar12;\n *(double *)(param_1 + 0x518) = pdVar12[2];\n *(double *)(param_1 + 0x510) = dVar23;\n *pdVar1 = dVar27;\n *(undefined1 *)(param_1 + 0x520) = 1;\n objc_stub::revision(*(ID *)(param_1 + 0x58));\n _NSStringFromRect(in_d0,in_d1,in_d2,in_d3);\n dVar27 = in_d0;\n dVar23 = in_d1;\n dVar26 = in_d2;\n dVar25 = in_d3;\n goto LAB_10003d440;\n }\nLAB_10003d300:\n *(undefined1 *)(param_1 + 0x520) = 0;\n }\n else {\nLAB_10003d018:\n if (*(long *)(param_1 + 0x58) == 0) goto LAB_10003d1f4;\nLAB_10003d030:\n if (((int)local_118 != 0 || ((*(byte *)(param_1 + 0x520) ^ 0xff) & 1) != 0) ||\n (ulong)ABS(dVar16) < 0x7ff0000000000000 && 0.2 < dVar16) goto LAB_10003d1f4;\n if (puVar7 == (undefined *)0x0) goto LAB_10003d300;\n IVar9 = objc_stub::extent(param_3);\n iVar5 = (int)IVar9;\n _CGRectIsEmpty();\n if ((iVar5 == 0) && (FUN_10002ee0c(extraout_d0), param_3 != 0)) {\n local_d0 = 0.0;\n IVar9 = *(ID *)(param_1 + 0x50);\n local_b8 = *(undefined8 *)(param_1 + 0x58);\n IVar10 = NSArray::arrayWithObjects_count_((ID)&_OBJC_CLASS___NSArray,&local_b8,1);\n IVar9 = objc_stub::performRequests_onCIImage_orientation_error_\n (IVar9,IVar10,param_3,1,&local_d0);\n if ((IVar9 & 1) == 0) {\n FUN_10003d658(0);\n }\n else {\n IVar9 = objc_stub::results(*(ID *)(param_1 + 0x58));\n IVar9 = objc_stub::firstObject(IVar9);\n dVar16 = extraout_d0_00;\n FUN_10003d658();\n if (IVar9 != 0) {\n uVar8 = objc_stub::confidence(IVar9);\n if ((0.22 <= extraout_s0) &&\n (FUN_10001a870(dVar16,dVar18,dVar21,dVar22), (uVar8 & 1) != 0)) {\n objc_stub::setInputObservation_(*(ID *)(param_1 + 0x58),IVar9);\n objc_stub::setTrackingLevel_(*(ID *)(param_1 + 0x58),0);\n *(double *)(param_1 + 0x4e8) = dVar16;\n *(double *)(param_1 + 0x4f0) = dVar18;\n *(double *)(param_1 + 0x4f8) = dVar21;\n *(double *)(param_1 + 0x500) = dVar22;\n dVar23 = pdVar12[1];\n dVar27 = *pdVar12;\n *(double *)(param_1 + 0x518) = pdVar12[2];\n *(double *)(param_1 + 0x510) = dVar23;\n *pdVar1 = dVar27;\n *(undefined1 *)(param_1 + 0x520) = 1;\n dVar27 = dVar16;\n dVar23 = dVar18;\n dVar26 = dVar21;\n dVar25 = dVar22;\n goto LAB_10003d440;\n }\n objc_stub::confidence(IVar9);\n }\n }\n *(undefined8 *)(param_1 + 0x58) = 0;\n puVar7 = &_OBJC_CLASS___VNSequenceRequestHandler;\n _objc_alloc_init();\n *(undefined **)(param_1 + 0x50) = puVar7;\n *(undefined1 *)(param_1 + 0x520) = 0;\n if (uVar14 != 0) {\n *(double *)(param_1 + 0x4e8) = dVar27;\n *(double *)(param_1 + 0x4f0) = dVar23;\n *(double *)(param_1 + 0x4f8) = dVar26;\n *(double *)(param_1 + 0x500) = dVar25;\n goto LAB_10003d440;\n }\n uVar17 = *(undefined8 *)PTR__CGRectZero_1000a8150;\n uVar20 = *(undefined8 *)(PTR__CGRectZero_1000a8150 + 0x18);\n uVar19 = *(undefined8 *)(PTR__CGRectZero_1000a8150 + 0x10);\n *(undefined8 *)(param_1 + 0x4f0) = *(undefined8 *)(PTR__CGRectZero_1000a8150 + 8);\n *(undefined8 *)(param_1 + 0x4e8) = uVar17;\n *(undefined8 *)(param_1 + 0x500) = uVar20;\n *(undefined8 *)(param_1 + 0x4f8) = uVar19;\n puVar7 = PTR__kCMTimeInvalid_1000a8208;\n dVar27 = *(double *)PTR__kCMTimeInvalid_1000a8208;\n *(undefined8 *)(param_1 + 0x510) = *(undefined8 *)(PTR__kCMTimeInvalid_1000a8208 + 8);\n *pdVar1 = dVar27;\n *(undefined8 *)(param_1 + 0x518) = *(undefined8 *)(puVar7 + 0x10);\n dVar27 = in_d0;\n dVar23 = in_d1;\n dVar26 = in_d2;\n dVar25 = in_d3;\n }\n else {\n *(undefined1 *)(param_1 + 0x520) = 0;\n uVar15 = uVar14;\n }\n if (uVar15 != 0) goto LAB_10003d440;\n }\n }\n dVar27 = *(double *)PTR__CGRectNull_1000a8148;\n dVar23 = *(double *)(PTR__CGRectNull_1000a8148 + 8);\n dVar26 = *(double *)(PTR__CGRectNull_1000a8148 + 0x10);\n dVar25 = *(double *)(PTR__CGRectNull_1000a8148 + 0x18);\nLAB_10003d440:\n if (*(long *)PTR____stack_chk_guard_1000a80e8 == local_b0) {\n CVar28.field0_0x0.field1_0x8 = dVar23;\n CVar28.field0_0x0.field0_0x0 = dVar27;\n CVar28.field1_0x10.field1_0x8 = dVar25;\n CVar28.field1_0x10.field0_0x0 = dVar26;\n return CVar28;\n }\n /* WARNING: Subroutine does not return */\n ___stack_chk_fail();\n}\n\n" + }, + "subject": { + "architecture": "arm64", + "digest": { + "sha256": "afc71d0d21fd3c1ca95ca745ddafcd729e36ad95f17d8638009f2e45d9b7e8df" + }, + "format": "mach-o", + "local_path": "/Users/dayu/Documents/PaintFCP/build/body-analysis/MSE18V2-arm64", + "name": "MSE18V2-arm64" + } + }, + { + "analysis_profile": { + "digest": "20565088524a2d0359b9b96f46ac48e679d774c7b0092c56abc06de8fdbec11c", + "parameters": { + "analyzer_preset": "ghidra-default", + "annotation_policy": "atomic-function-entry-metadata-v1", + "architecture": "arm64", + "available_architectures": [ + "arm64" + ], + "compiler_spec_id": "auto-default", + "decompiler_jump_loads": true, + "function_body_evidence": "complete-inclusive-ranges-v1", + "function_boundary_observations": "ghidra-terminal-call-limitations-v1", + "function_references": "complete-body-and-entry-reference-manager-v2", + "import_mode": "ephemeral-source-immutable", + "instruction_flow_evidence": "decoded-return-pcode-v1", + "jump_table_evidence": "typed-case-default-blocks-v1", + "language_id": "auto-from-header", + "load_image_observations": "source-mappings-entry-context-v2", + "loader": "auto-from-header", + "location_resolution": "explicit-address-exact-entry-symbol-first-v3", + "no_return_repair": "returning-imports-decoded-return-v2", + "process_launch": "inspected-jvm-launch-support-v1", + "string_inventory_evidence": "defined-data-coverage-v1", + "target_format": "mach-o", + "target_kind": "executable" + }, + "provider": { + "id": "ghidra", + "name": "Ghidra", + "version": "12.1.4" + } + }, + "authority": "shipped-artifact", + "confidence": "observed", + "environment": null, + "evidence_id": "ev_75977d9852dc06ffd97fea6e289111996a529789e2971a44ecc07e1cb8b9b1a1", + "evidence_links": [], + "limitations": [ + "The session serves operations only after Ghidra reports default auto-analysis complete; incomplete analysis does not expose partial results.", + "The imported Program and temporary project are ephemeral and deleted on close. Annotation operations edit session database metadata; original executable bytes are never written.", + "Cancelling an active Ghidra request terminates its ephemeral database and discards session annotations. The selected target remains open; the next provider query imports the original artifact again.", + "Default-space addresses use lowercase 0x-prefixed hexadecimal; other address spaces use :0x.", + "Pseudocode is Ghidra decompiler output, not original source and not text-equivalent to Hopper output.", + "External functions and functions without an analyzable body return null; other decompiler failures remain explicit.", + "macOS sessions require a matching executable Ghidra native decompiler; REA checks for it but does not build native components or change Gatekeeper quarantine state." + ], + "locations": [], + "normalized_result": "\nvoid FUN_100054758(void)\n\n{\n bool bVar1;\n byte bVar2;\n char *pcVar3;\n \n pcVar3 = _getenv(\"MSE18_DISABLE_FACE_THIN_VISION_TRACKER\");\n if ((pcVar3 == (char *)0x0) || (*pcVar3 == '\\0')) {\n bVar1 = false;\n }\n else if (*pcVar3 == '0') {\n bVar1 = pcVar3[1] != '\\0';\n }\n else {\n bVar1 = true;\n }\n bVar2 = 0xa0;\n FUN_10004970c();\n DAT_1000bd210 = (bVar1 | bVar2) ^ 1;\n return;\n}\n\n", + "operation": "procedure_pseudo_code", + "parameters": { + "procedure": "0x100054758" + }, + "predicate_type": "rea.analysis", + "provider": { + "id": "ghidra", + "name": "Ghidra", + "version": "12.1.4" + }, + "raw_result": { + "limitations": [], + "value": "\nvoid FUN_100054758(void)\n\n{\n bool bVar1;\n byte bVar2;\n char *pcVar3;\n \n pcVar3 = _getenv(\"MSE18_DISABLE_FACE_THIN_VISION_TRACKER\");\n if ((pcVar3 == (char *)0x0) || (*pcVar3 == '\\0')) {\n bVar1 = false;\n }\n else if (*pcVar3 == '0') {\n bVar1 = pcVar3[1] != '\\0';\n }\n else {\n bVar1 = true;\n }\n bVar2 = 0xa0;\n FUN_10004970c();\n DAT_1000bd210 = (bVar1 | bVar2) ^ 1;\n return;\n}\n\n" + }, + "subject": { + "architecture": "arm64", + "digest": { + "sha256": "afc71d0d21fd3c1ca95ca745ddafcd729e36ad95f17d8638009f2e45d9b7e8df" + }, + "format": "mach-o", + "local_path": "/Users/dayu/Documents/PaintFCP/build/body-analysis/MSE18V2-arm64", + "name": "MSE18V2-arm64" + } + }, + { + "analysis_profile": { + "digest": "20565088524a2d0359b9b96f46ac48e679d774c7b0092c56abc06de8fdbec11c", + "parameters": { + "analyzer_preset": "ghidra-default", + "annotation_policy": "atomic-function-entry-metadata-v1", + "architecture": "arm64", + "available_architectures": [ + "arm64" + ], + "compiler_spec_id": "auto-default", + "decompiler_jump_loads": true, + "function_body_evidence": "complete-inclusive-ranges-v1", + "function_boundary_observations": "ghidra-terminal-call-limitations-v1", + "function_references": "complete-body-and-entry-reference-manager-v2", + "import_mode": "ephemeral-source-immutable", + "instruction_flow_evidence": "decoded-return-pcode-v1", + "jump_table_evidence": "typed-case-default-blocks-v1", + "language_id": "auto-from-header", + "load_image_observations": "source-mappings-entry-context-v2", + "loader": "auto-from-header", + "location_resolution": "explicit-address-exact-entry-symbol-first-v3", + "no_return_repair": "returning-imports-decoded-return-v2", + "process_launch": "inspected-jvm-launch-support-v1", + "string_inventory_evidence": "defined-data-coverage-v1", + "target_format": "mach-o", + "target_kind": "executable" + }, + "provider": { + "id": "ghidra", + "name": "Ghidra", + "version": "12.1.4" + } + }, + "authority": "shipped-artifact", + "confidence": "observed", + "environment": null, + "evidence_id": "ev_7c53c39d245e0063cab89358ab8948cdd734488460464d5f455674bb80a1515a", + "evidence_links": [], + "limitations": [ + "The session serves operations only after Ghidra reports default auto-analysis complete; incomplete analysis does not expose partial results.", + "The imported Program and temporary project are ephemeral and deleted on close. Annotation operations edit session database metadata; original executable bytes are never written.", + "Cancelling an active Ghidra request terminates its ephemeral database and discards session annotations. The selected target remains open; the next provider query imports the original artifact again.", + "Default-space addresses use lowercase 0x-prefixed hexadecimal; other address spaces use :0x.", + "Only resolved Ghidra call references are returned; unresolved computed or indirect calls remain unknown, while function classifications distinguish thunks and externals.", + "macOS sessions require a matching executable Ghidra native decompiler; REA checks for it but does not build native components or change Gatekeeper quarantine state." + ], + "locations": [], + "normalized_result": [ + "0x10003d69c" + ], + "operation": "procedure_callers", + "parameters": { + "procedure": "0x10003cc78" + }, + "predicate_type": "rea.analysis", + "provider": { + "id": "ghidra", + "name": "Ghidra", + "version": "12.1.4" + }, + "raw_result": [ + "0x10003d69c" + ], + "subject": { + "architecture": "arm64", + "digest": { + "sha256": "afc71d0d21fd3c1ca95ca745ddafcd729e36ad95f17d8638009f2e45d9b7e8df" + }, + "format": "mach-o", + "local_path": "/Users/dayu/Documents/PaintFCP/build/body-analysis/MSE18V2-arm64", + "name": "MSE18V2-arm64" + } + }, + { + "analysis_profile": { + "digest": "20565088524a2d0359b9b96f46ac48e679d774c7b0092c56abc06de8fdbec11c", + "parameters": { + "analyzer_preset": "ghidra-default", + "annotation_policy": "atomic-function-entry-metadata-v1", + "architecture": "arm64", + "available_architectures": [ + "arm64" + ], + "compiler_spec_id": "auto-default", + "decompiler_jump_loads": true, + "function_body_evidence": "complete-inclusive-ranges-v1", + "function_boundary_observations": "ghidra-terminal-call-limitations-v1", + "function_references": "complete-body-and-entry-reference-manager-v2", + "import_mode": "ephemeral-source-immutable", + "instruction_flow_evidence": "decoded-return-pcode-v1", + "jump_table_evidence": "typed-case-default-blocks-v1", + "language_id": "auto-from-header", + "load_image_observations": "source-mappings-entry-context-v2", + "loader": "auto-from-header", + "location_resolution": "explicit-address-exact-entry-symbol-first-v3", + "no_return_repair": "returning-imports-decoded-return-v2", + "process_launch": "inspected-jvm-launch-support-v1", + "string_inventory_evidence": "defined-data-coverage-v1", + "target_format": "mach-o", + "target_kind": "executable" + }, + "provider": { + "id": "ghidra", + "name": "Ghidra", + "version": "12.1.4" + } + }, + "authority": "shipped-artifact", + "confidence": "observed", + "environment": null, + "evidence_id": "ev_7fd88fe8fc5cf8d5e00e4e389c65858cb09f887ba797564bda171b5ba48124ce", + "evidence_links": [], + "limitations": [ + "The session serves operations only after Ghidra reports default auto-analysis complete; incomplete analysis does not expose partial results.", + "The imported Program and temporary project are ephemeral and deleted on close. Annotation operations edit session database metadata; original executable bytes are never written.", + "Cancelling an active Ghidra request terminates its ephemeral database and discards session annotations. The selected target remains open; the next provider query imports the original artifact again.", + "Default-space addresses use lowercase 0x-prefixed hexadecimal; other address spaces use :0x.", + "Pseudocode is Ghidra decompiler output, not original source and not text-equivalent to Hopper output.", + "External functions and functions without an analyzable body return null; other decompiler failures remain explicit.", + "Ghidra Listing reports a terminal call at 0x100029d1c to 0x10007aca0 ___stack_chk_fail (external=false, thunk=true, hasNoReturn=true); fallthrough is excluded by Ghidra's flow model. This records Ghidra's FunctionManager flag, not an independent verification that the callee cannot return.", + "macOS sessions require a matching executable Ghidra native decompiler; REA checks for it but does not build native components or change Gatekeeper quarantine state." + ], + "locations": [], + "normalized_result": "\nID FUN_100029a00(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4,\n ID param_5)\n\n{\n ID IVar1;\n ID IVar2;\n ID IVar3;\n ID IVar4;\n double *pdVar5;\n long lVar6;\n ID IVar7;\n ID IVar8;\n double extraout_d0;\n double dVar9;\n double dVar10;\n double dVar11;\n double dVar12;\n ulong extraout_d0_00;\n ulong extraout_d0_01;\n undefined8 extraout_d0_02;\n double extraout_d0_03;\n double dVar13;\n double dVar14;\n undefined8 local_170;\n long lStack_168;\n long *local_160;\n undefined8 uStack_158;\n undefined8 local_150;\n undefined8 uStack_148;\n undefined8 uStack_140;\n undefined8 uStack_138;\n undefined1 auStack_128 [128];\n long local_a8;\n \n local_a8 = *(long *)PTR____stack_chk_guard_1000a80e8;\n IVar1 = objc_stub::landmarks(param_5);\n IVar1 = objc_stub::allPoints(IVar1);\n IVar4 = 0;\n if ((param_5 != 0) && (IVar1 != 0)) {\n IVar4 = objc_stub::pointCount(IVar1);\n if ((IVar4 < 0x4c) || (IVar4 = objc_stub::normalizedPoints(IVar1), IVar4 == 0)) {\n IVar4 = 0;\n }\n else {\n objc_stub::boundingBox(param_5);\n IVar1 = objc_stub::normalizedPoints(IVar1);\n IVar4 = NSMutableArray::arrayWithCapacity_((ID)&_OBJC_CLASS___NSMutableArray,0x4d);\n pdVar5 = (double *)(IVar1 + 8);\n lVar6 = 0x4c;\n do {\n dVar13 = pdVar5[-1];\n dVar14 = *pdVar5;\n dVar9 = extraout_d0;\n _CGRectGetMinX(extraout_d0,param_2,param_3,param_4);\n dVar10 = extraout_d0;\n _CGRectGetWidth(extraout_d0,param_2,param_3,param_4);\n dVar11 = extraout_d0;\n _CGRectGetMinY(extraout_d0,param_2,param_3,param_4);\n dVar12 = extraout_d0;\n _CGRectGetHeight(extraout_d0,param_2,param_3,param_4);\n IVar1 = CIVector::vectorWithX_Y_\n ((ID)&_OBJC_CLASS___CIVector,dVar9 + dVar13 * dVar10,\n dVar11 + dVar14 * dVar12);\n NSMutableArray::addObject_(IVar4,IVar1);\n pdVar5 = pdVar5 + 2;\n lVar6 = lVar6 + -1;\n } while (lVar6 != 0);\n dVar9 = extraout_d0;\n _CGRectGetMidX(extraout_d0,param_2,param_3,param_4);\n dVar10 = extraout_d0;\n _CGRectGetMidY(extraout_d0,param_2,param_3,param_4);\n IVar1 = CIVector::vectorWithX_Y_((ID)&_OBJC_CLASS___CIVector,dVar9,dVar10);\n NSMutableArray::addObject_(IVar4,IVar1);\n }\n }\n IVar1 = objc_stub::count(IVar4);\n if (IVar1 == 0) {\nLAB_100029ccc:\n IVar1 = 0;\n }\n else {\n IVar1 = objc_stub::count(IVar4);\n IVar1 = NSMutableArray::arrayWithCapacity_((ID)&_OBJC_CLASS___NSMutableArray,IVar1);\n lStack_168 = 0;\n local_170 = 0;\n uStack_158 = 0;\n local_160 = (long *)0x0;\n uStack_148 = 0;\n local_150 = 0;\n uStack_138 = 0;\n uStack_140 = 0;\n IVar2 = objc_stub::countByEnumeratingWithState_objects_count_(IVar4,&local_170,auStack_128,0x10)\n ;\n if (IVar2 != 0) {\n lVar6 = *local_160;\n do {\n IVar8 = 0;\n do {\n if (*local_160 != lVar6) {\n _objc_enumerationMutation(IVar4);\n }\n IVar7 = *(ID *)(lStack_168 + IVar8 * 8);\n if ((((IVar7 == 0) || (IVar3 = objc_stub::count(IVar7), IVar3 < 2)) ||\n (objc_stub::X(IVar7), 0x7fefffffffffffff < (extraout_d0_00 & 0x7fffffffffffffff))) ||\n (objc_stub::Y(IVar7), 0x7fefffffffffffff < (extraout_d0_01 & 0x7fffffffffffffff)))\n goto LAB_100029ccc;\n objc_stub::X(IVar7);\n objc_stub::Y(IVar7);\n IVar7 = CIVector::vectorWithX_Y_\n ((ID)&_OBJC_CLASS___CIVector,extraout_d0_02,1.0 - extraout_d0_03);\n NSMutableArray::addObject_(IVar1,IVar7);\n IVar8 = IVar8 + 1;\n } while (IVar2 != IVar8);\n IVar2 = objc_stub::countByEnumeratingWithState_objects_count_\n (IVar4,&local_170,auStack_128,0x10);\n } while (IVar2 != 0);\n }\n }\n if (*(long *)PTR____stack_chk_guard_1000a80e8 != local_a8) {\n /* WARNING: Subroutine does not return */\n ___stack_chk_fail();\n }\n return IVar1;\n}\n\n", + "operation": "procedure_pseudo_code", + "parameters": { + "procedure": "0x100029a00" + }, + "predicate_type": "rea.analysis", + "provider": { + "id": "ghidra", + "name": "Ghidra", + "version": "12.1.4" + }, + "raw_result": { + "limitations": [ + "Ghidra Listing reports a terminal call at 0x100029d1c to 0x10007aca0 ___stack_chk_fail (external=false, thunk=true, hasNoReturn=true); fallthrough is excluded by Ghidra's flow model. This records Ghidra's FunctionManager flag, not an independent verification that the callee cannot return." + ], + "value": "\nID FUN_100029a00(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4,\n ID param_5)\n\n{\n ID IVar1;\n ID IVar2;\n ID IVar3;\n ID IVar4;\n double *pdVar5;\n long lVar6;\n ID IVar7;\n ID IVar8;\n double extraout_d0;\n double dVar9;\n double dVar10;\n double dVar11;\n double dVar12;\n ulong extraout_d0_00;\n ulong extraout_d0_01;\n undefined8 extraout_d0_02;\n double extraout_d0_03;\n double dVar13;\n double dVar14;\n undefined8 local_170;\n long lStack_168;\n long *local_160;\n undefined8 uStack_158;\n undefined8 local_150;\n undefined8 uStack_148;\n undefined8 uStack_140;\n undefined8 uStack_138;\n undefined1 auStack_128 [128];\n long local_a8;\n \n local_a8 = *(long *)PTR____stack_chk_guard_1000a80e8;\n IVar1 = objc_stub::landmarks(param_5);\n IVar1 = objc_stub::allPoints(IVar1);\n IVar4 = 0;\n if ((param_5 != 0) && (IVar1 != 0)) {\n IVar4 = objc_stub::pointCount(IVar1);\n if ((IVar4 < 0x4c) || (IVar4 = objc_stub::normalizedPoints(IVar1), IVar4 == 0)) {\n IVar4 = 0;\n }\n else {\n objc_stub::boundingBox(param_5);\n IVar1 = objc_stub::normalizedPoints(IVar1);\n IVar4 = NSMutableArray::arrayWithCapacity_((ID)&_OBJC_CLASS___NSMutableArray,0x4d);\n pdVar5 = (double *)(IVar1 + 8);\n lVar6 = 0x4c;\n do {\n dVar13 = pdVar5[-1];\n dVar14 = *pdVar5;\n dVar9 = extraout_d0;\n _CGRectGetMinX(extraout_d0,param_2,param_3,param_4);\n dVar10 = extraout_d0;\n _CGRectGetWidth(extraout_d0,param_2,param_3,param_4);\n dVar11 = extraout_d0;\n _CGRectGetMinY(extraout_d0,param_2,param_3,param_4);\n dVar12 = extraout_d0;\n _CGRectGetHeight(extraout_d0,param_2,param_3,param_4);\n IVar1 = CIVector::vectorWithX_Y_\n ((ID)&_OBJC_CLASS___CIVector,dVar9 + dVar13 * dVar10,\n dVar11 + dVar14 * dVar12);\n NSMutableArray::addObject_(IVar4,IVar1);\n pdVar5 = pdVar5 + 2;\n lVar6 = lVar6 + -1;\n } while (lVar6 != 0);\n dVar9 = extraout_d0;\n _CGRectGetMidX(extraout_d0,param_2,param_3,param_4);\n dVar10 = extraout_d0;\n _CGRectGetMidY(extraout_d0,param_2,param_3,param_4);\n IVar1 = CIVector::vectorWithX_Y_((ID)&_OBJC_CLASS___CIVector,dVar9,dVar10);\n NSMutableArray::addObject_(IVar4,IVar1);\n }\n }\n IVar1 = objc_stub::count(IVar4);\n if (IVar1 == 0) {\nLAB_100029ccc:\n IVar1 = 0;\n }\n else {\n IVar1 = objc_stub::count(IVar4);\n IVar1 = NSMutableArray::arrayWithCapacity_((ID)&_OBJC_CLASS___NSMutableArray,IVar1);\n lStack_168 = 0;\n local_170 = 0;\n uStack_158 = 0;\n local_160 = (long *)0x0;\n uStack_148 = 0;\n local_150 = 0;\n uStack_138 = 0;\n uStack_140 = 0;\n IVar2 = objc_stub::countByEnumeratingWithState_objects_count_(IVar4,&local_170,auStack_128,0x10)\n ;\n if (IVar2 != 0) {\n lVar6 = *local_160;\n do {\n IVar8 = 0;\n do {\n if (*local_160 != lVar6) {\n _objc_enumerationMutation(IVar4);\n }\n IVar7 = *(ID *)(lStack_168 + IVar8 * 8);\n if ((((IVar7 == 0) || (IVar3 = objc_stub::count(IVar7), IVar3 < 2)) ||\n (objc_stub::X(IVar7), 0x7fefffffffffffff < (extraout_d0_00 & 0x7fffffffffffffff))) ||\n (objc_stub::Y(IVar7), 0x7fefffffffffffff < (extraout_d0_01 & 0x7fffffffffffffff)))\n goto LAB_100029ccc;\n objc_stub::X(IVar7);\n objc_stub::Y(IVar7);\n IVar7 = CIVector::vectorWithX_Y_\n ((ID)&_OBJC_CLASS___CIVector,extraout_d0_02,1.0 - extraout_d0_03);\n NSMutableArray::addObject_(IVar1,IVar7);\n IVar8 = IVar8 + 1;\n } while (IVar2 != IVar8);\n IVar2 = objc_stub::countByEnumeratingWithState_objects_count_\n (IVar4,&local_170,auStack_128,0x10);\n } while (IVar2 != 0);\n }\n }\n if (*(long *)PTR____stack_chk_guard_1000a80e8 != local_a8) {\n /* WARNING: Subroutine does not return */\n ___stack_chk_fail();\n }\n return IVar1;\n}\n\n" + }, + "subject": { + "architecture": "arm64", + "digest": { + "sha256": "afc71d0d21fd3c1ca95ca745ddafcd729e36ad95f17d8638009f2e45d9b7e8df" + }, + "format": "mach-o", + "local_path": "/Users/dayu/Documents/PaintFCP/build/body-analysis/MSE18V2-arm64", + "name": "MSE18V2-arm64" + } + }, + { + "analysis_profile": { + "digest": "20565088524a2d0359b9b96f46ac48e679d774c7b0092c56abc06de8fdbec11c", + "parameters": { + "analyzer_preset": "ghidra-default", + "annotation_policy": "atomic-function-entry-metadata-v1", + "architecture": "arm64", + "available_architectures": [ + "arm64" + ], + "compiler_spec_id": "auto-default", + "decompiler_jump_loads": true, + "function_body_evidence": "complete-inclusive-ranges-v1", + "function_boundary_observations": "ghidra-terminal-call-limitations-v1", + "function_references": "complete-body-and-entry-reference-manager-v2", + "import_mode": "ephemeral-source-immutable", + "instruction_flow_evidence": "decoded-return-pcode-v1", + "jump_table_evidence": "typed-case-default-blocks-v1", + "language_id": "auto-from-header", + "load_image_observations": "source-mappings-entry-context-v2", + "loader": "auto-from-header", + "location_resolution": "explicit-address-exact-entry-symbol-first-v3", + "no_return_repair": "returning-imports-decoded-return-v2", + "process_launch": "inspected-jvm-launch-support-v1", + "string_inventory_evidence": "defined-data-coverage-v1", + "target_format": "mach-o", + "target_kind": "executable" + }, + "provider": { + "id": "ghidra", + "name": "Ghidra", + "version": "12.1.4" + } + }, + "authority": "shipped-artifact", + "confidence": "observed", + "environment": null, + "evidence_id": "ev_a56c1ddaa6a2314b28f2c2a880ebdb9dcac0632650550123d4957321fa5cc15f", + "evidence_links": [], + "limitations": [ + "The session serves operations only after Ghidra reports default auto-analysis complete; incomplete analysis does not expose partial results.", + "The imported Program and temporary project are ephemeral and deleted on close. Annotation operations edit session database metadata; original executable bytes are never written.", + "Cancelling an active Ghidra request terminates its ephemeral database and discards session annotations. The selected target remains open; the next provider query imports the original artifact again.", + "Default-space addresses use lowercase 0x-prefixed hexadecimal; other address spaces use :0x.", + "Only Ghidra-defined string Data is observed; packed or undefined string bytes may be absent. Completeness applies to that inventory, and an empty search does not establish that text is absent from the artifact. If an address is known, use read_bytes and xrefs to inspect bytes and references.", + "Regex mode uses Java Pattern semantics. Matcher or compiler stack exhaustion returns a resource constraint without closing the session; literal mode avoids regex recursion and returns complete matching values.", + "macOS sessions require a matching executable Ghidra native decompiler; REA checks for it but does not build native components or change Gatekeeper quarantine state." + ], + "locations": [], + "normalized_result": [ + { + "address": "0x10008ec79", + "value": "mss_pinStyleFacePointsForObservations:renderTime:params:trackingInputImage:preferredBox:hasPreferredBox:selectedObservationOut:strengthMultiplierOut:pointsBoxOut:usedHoldOut:" + }, + { + "address": "0x100098b29", + "value": "MSE18_DISABLE_FACE_THIN_VISION_TRACKER" + }, + { + "address": "0x100098b50", + "value": "mse18_disable_face_thin_vision_tracker" + } + ], + "operation": "search_strings", + "parameters": { + "case_sensitive": false, + "mode": "regex", + "pattern": "VISION_TRACKER|vision_tracker|pin_style|pinStyle|PinStyle" + }, + "predicate_type": "rea.analysis", + "provider": { + "id": "ghidra", + "name": "Ghidra", + "version": "12.1.4" + }, + "raw_result": [ + { + "address": "0x10008ec79", + "value": "mss_pinStyleFacePointsForObservations:renderTime:params:trackingInputImage:preferredBox:hasPreferredBox:selectedObservationOut:strengthMultiplierOut:pointsBoxOut:usedHoldOut:" + }, + { + "address": "0x100098b29", + "value": "MSE18_DISABLE_FACE_THIN_VISION_TRACKER" + }, + { + "address": "0x100098b50", + "value": "mse18_disable_face_thin_vision_tracker" + } + ], + "subject": { + "architecture": "arm64", + "digest": { + "sha256": "afc71d0d21fd3c1ca95ca745ddafcd729e36ad95f17d8638009f2e45d9b7e8df" + }, + "format": "mach-o", + "local_path": "/Users/dayu/Documents/PaintFCP/build/body-analysis/MSE18V2-arm64", + "name": "MSE18V2-arm64" + } + }, + { + "analysis_profile": { + "digest": "20565088524a2d0359b9b96f46ac48e679d774c7b0092c56abc06de8fdbec11c", + "parameters": { + "analyzer_preset": "ghidra-default", + "annotation_policy": "atomic-function-entry-metadata-v1", + "architecture": "arm64", + "available_architectures": [ + "arm64" + ], + "compiler_spec_id": "auto-default", + "decompiler_jump_loads": true, + "function_body_evidence": "complete-inclusive-ranges-v1", + "function_boundary_observations": "ghidra-terminal-call-limitations-v1", + "function_references": "complete-body-and-entry-reference-manager-v2", + "import_mode": "ephemeral-source-immutable", + "instruction_flow_evidence": "decoded-return-pcode-v1", + "jump_table_evidence": "typed-case-default-blocks-v1", + "language_id": "auto-from-header", + "load_image_observations": "source-mappings-entry-context-v2", + "loader": "auto-from-header", + "location_resolution": "explicit-address-exact-entry-symbol-first-v3", + "no_return_repair": "returning-imports-decoded-return-v2", + "process_launch": "inspected-jvm-launch-support-v1", + "string_inventory_evidence": "defined-data-coverage-v1", + "target_format": "mach-o", + "target_kind": "executable" + }, + "provider": { + "id": "ghidra", + "name": "Ghidra", + "version": "12.1.4" + } + }, + "authority": "shipped-artifact", + "confidence": "observed", + "environment": null, + "evidence_id": "ev_a8cf6f3aec6fbcf2b698ab8ec52313e20a6a5e0d636bc922c4293e436861db7e", + "evidence_links": [], + "limitations": [ + "The session serves operations only after Ghidra reports default auto-analysis complete; incomplete analysis does not expose partial results.", + "The imported Program and temporary project are ephemeral and deleted on close. Annotation operations edit session database metadata; original executable bytes are never written.", + "Cancelling an active Ghidra request terminates its ephemeral database and discards session annotations. The selected target remains open; the next provider query imports the original artifact again.", + "Default-space addresses use lowercase 0x-prefixed hexadecimal; other address spaces use :0x.", + "Only resolved Ghidra call references are returned; unresolved computed or indirect calls remain unknown, while function classifications distinguish thunks and externals.", + "macOS sessions require a matching executable Ghidra native decompiler; REA checks for it but does not build native components or change Gatekeeper quarantine state." + ], + "locations": [], + "normalized_result": [], + "operation": "procedure_callers", + "parameters": { + "procedure": "0x10003f88c" + }, + "predicate_type": "rea.analysis", + "provider": { + "id": "ghidra", + "name": "Ghidra", + "version": "12.1.4" + }, + "raw_result": [], + "subject": { + "architecture": "arm64", + "digest": { + "sha256": "afc71d0d21fd3c1ca95ca745ddafcd729e36ad95f17d8638009f2e45d9b7e8df" + }, + "format": "mach-o", + "local_path": "/Users/dayu/Documents/PaintFCP/build/body-analysis/MSE18V2-arm64", + "name": "MSE18V2-arm64" + } + }, + { + "analysis_profile": { + "digest": "20565088524a2d0359b9b96f46ac48e679d774c7b0092c56abc06de8fdbec11c", + "parameters": { + "analyzer_preset": "ghidra-default", + "annotation_policy": "atomic-function-entry-metadata-v1", + "architecture": "arm64", + "available_architectures": [ + "arm64" + ], + "compiler_spec_id": "auto-default", + "decompiler_jump_loads": true, + "function_body_evidence": "complete-inclusive-ranges-v1", + "function_boundary_observations": "ghidra-terminal-call-limitations-v1", + "function_references": "complete-body-and-entry-reference-manager-v2", + "import_mode": "ephemeral-source-immutable", + "instruction_flow_evidence": "decoded-return-pcode-v1", + "jump_table_evidence": "typed-case-default-blocks-v1", + "language_id": "auto-from-header", + "load_image_observations": "source-mappings-entry-context-v2", + "loader": "auto-from-header", + "location_resolution": "explicit-address-exact-entry-symbol-first-v3", + "no_return_repair": "returning-imports-decoded-return-v2", + "process_launch": "inspected-jvm-launch-support-v1", + "string_inventory_evidence": "defined-data-coverage-v1", + "target_format": "mach-o", + "target_kind": "executable" + }, + "provider": { + "id": "ghidra", + "name": "Ghidra", + "version": "12.1.4" + } + }, + "authority": "shipped-artifact", + "confidence": "observed", + "environment": null, + "evidence_id": "ev_b88444949f61c9151f1d8ef8a744875f3763b251aa108979604ea3f2516df1c3", + "evidence_links": [], + "limitations": [ + "The session serves operations only after Ghidra reports default auto-analysis complete; incomplete analysis does not expose partial results.", + "The imported Program and temporary project are ephemeral and deleted on close. Annotation operations edit session database metadata; original executable bytes are never written.", + "Cancelling an active Ghidra request terminates its ephemeral database and discards session annotations. The selected target remains open; the next provider query imports the original artifact again.", + "Default-space addresses use lowercase 0x-prefixed hexadecimal; other address spaces use :0x.", + "Pseudocode is Ghidra decompiler output, not original source and not text-equivalent to Hopper output.", + "External functions and functions without an analyzable body return null; other decompiler failures remain explicit.", + "macOS sessions require a matching executable Ghidra native decompiler; REA checks for it but does not build native components or change Gatekeeper quarantine state." + ], + "locations": [], + "normalized_result": "\nID FUN_10004970c(ID param_1)\n\n{\n ID IVar1;\n ID IVar2;\n \n IVar1 = objc_stub::length(param_1);\n IVar2 = 0;\n if (IVar1 != 0) {\n IVar2 = objc_stub::lastPathComponent(param_1);\n IVar1 = objc_stub::length(IVar2);\n IVar2 = param_1;\n if (IVar1 != 0) {\n IVar2 = objc_stub::lastPathComponent(param_1);\n }\n IVar2 = objc_stub::isEqualToString_(IVar2,&cf_mse18_diag_render_enabled);\n if ((int)IVar2 != 0) {\n FUN_100049a5c();\n IVar1 = objc_stub::length(param_1);\n IVar2 = 0;\n if (IVar1 != 0) {\n IVar2 = NSFileManager::defaultManager((ID)&_OBJC_CLASS___NSFileManager);\n IVar2 = NSFileManager::fileExistsAtPath_(IVar2,param_1);\n if ((int)IVar2 != 0) {\n FUN_100049ae0(param_1,0);\n IVar2 = 1;\n }\n }\n }\n }\n return IVar2;\n}\n\n", + "operation": "procedure_pseudo_code", + "parameters": { + "procedure": "0x10004970c" + }, + "predicate_type": "rea.analysis", + "provider": { + "id": "ghidra", + "name": "Ghidra", + "version": "12.1.4" + }, + "raw_result": { + "limitations": [], + "value": "\nID FUN_10004970c(ID param_1)\n\n{\n ID IVar1;\n ID IVar2;\n \n IVar1 = objc_stub::length(param_1);\n IVar2 = 0;\n if (IVar1 != 0) {\n IVar2 = objc_stub::lastPathComponent(param_1);\n IVar1 = objc_stub::length(IVar2);\n IVar2 = param_1;\n if (IVar1 != 0) {\n IVar2 = objc_stub::lastPathComponent(param_1);\n }\n IVar2 = objc_stub::isEqualToString_(IVar2,&cf_mse18_diag_render_enabled);\n if ((int)IVar2 != 0) {\n FUN_100049a5c();\n IVar1 = objc_stub::length(param_1);\n IVar2 = 0;\n if (IVar1 != 0) {\n IVar2 = NSFileManager::defaultManager((ID)&_OBJC_CLASS___NSFileManager);\n IVar2 = NSFileManager::fileExistsAtPath_(IVar2,param_1);\n if ((int)IVar2 != 0) {\n FUN_100049ae0(param_1,0);\n IVar2 = 1;\n }\n }\n }\n }\n return IVar2;\n}\n\n" + }, + "subject": { + "architecture": "arm64", + "digest": { + "sha256": "afc71d0d21fd3c1ca95ca745ddafcd729e36ad95f17d8638009f2e45d9b7e8df" + }, + "format": "mach-o", + "local_path": "/Users/dayu/Documents/PaintFCP/build/body-analysis/MSE18V2-arm64", + "name": "MSE18V2-arm64" + } + }, + { + "analysis_profile": { + "digest": "20565088524a2d0359b9b96f46ac48e679d774c7b0092c56abc06de8fdbec11c", + "parameters": { + "analyzer_preset": "ghidra-default", + "annotation_policy": "atomic-function-entry-metadata-v1", + "architecture": "arm64", + "available_architectures": [ + "arm64" + ], + "compiler_spec_id": "auto-default", + "decompiler_jump_loads": true, + "function_body_evidence": "complete-inclusive-ranges-v1", + "function_boundary_observations": "ghidra-terminal-call-limitations-v1", + "function_references": "complete-body-and-entry-reference-manager-v2", + "import_mode": "ephemeral-source-immutable", + "instruction_flow_evidence": "decoded-return-pcode-v1", + "jump_table_evidence": "typed-case-default-blocks-v1", + "language_id": "auto-from-header", + "load_image_observations": "source-mappings-entry-context-v2", + "loader": "auto-from-header", + "location_resolution": "explicit-address-exact-entry-symbol-first-v3", + "no_return_repair": "returning-imports-decoded-return-v2", + "process_launch": "inspected-jvm-launch-support-v1", + "string_inventory_evidence": "defined-data-coverage-v1", + "target_format": "mach-o", + "target_kind": "executable" + }, + "provider": { + "id": "ghidra", + "name": "Ghidra", + "version": "12.1.4" + } + }, + "authority": "shipped-artifact", + "confidence": "observed", + "environment": null, + "evidence_id": "ev_babd33a86af373acee2386d790556959c9328d6231142391dfdc6ada85a07c6a", + "evidence_links": [], + "limitations": [ + "The session serves operations only after Ghidra reports default auto-analysis complete; incomplete analysis does not expose partial results.", + "The imported Program and temporary project are ephemeral and deleted on close. Annotation operations edit session database metadata; original executable bytes are never written.", + "Cancelling an active Ghidra request terminates its ephemeral database and discards session annotations. The selected target remains open; the next provider query imports the original artifact again.", + "Default-space addresses use lowercase 0x-prefixed hexadecimal; other address spaces use :0x.", + "Pseudocode is Ghidra decompiler output, not original source and not text-equivalent to Hopper output.", + "External functions and functions without an analyzable body return null; other decompiler failures remain explicit.", + "macOS sessions require a matching executable Ghidra native decompiler; REA checks for it but does not build native components or change Gatekeeper quarantine state." + ], + "locations": [], + "normalized_result": "\n/* WARNING: Function: _objc_retain replaced with injection: _objc_retain_fixup */\n/* WARNING: Function: _objc_autorelease replaced with injection: _objc_retain_fixup */\n/* WARNING: Removing unreachable block (ram,0x00010003c40c) */\n/* Function Stack Size: 0x5c bytes */\n\nID MSSuperSkinSmoothingPlugIn::\n cachedFaceObservationsForInputImage_inputSurface_sourceTileRect_renderTime_allowForwardReuse_\n (ID param_1,SEL param_2,ID param_3,__IOSurface *param_4,CGRect param_5,\n AnonymousStructure0 param_6,bool param_7)\n\n{\n bool bVar1;\n bool bVar2;\n int iVar3;\n ID IVar4;\n undefined1 *puVar5;\n undefined *puVar6;\n ID self;\n undefined *self_00;\n undefined *puVar7;\n ID IVar8;\n undefined *self_01;\n undefined *puVar9;\n long_long *plVar10;\n double in_d0;\n undefined8 extraout_d0;\n long_long extraout_d0_00;\n double in_d1;\n double dVar11;\n double in_d2;\n double dVar12;\n double in_d3;\n double dVar13;\n CGRect CVar14;\n CGRect CVar15;\n CGRect CVar16;\n CGRect CVar17;\n CGRect CVar18;\n CGRect CVar19;\n undefined *local_110;\n undefined8 uStack_108;\n undefined8 local_100;\n long_long local_f0;\n long_long lStack_e8;\n long_long local_e0;\n undefined *local_d8;\n undefined1 local_d0 [16];\n double local_c0;\n double dStack_b8;\n \n plVar10 = param_5.field0_0x0.field0_0x0;\n if (param_3 == 0) {\n return 0;\n }\n objc_stub::lock(*(ID *)(param_1 + 0x28));\n local_d8 = (undefined *)0x0;\n local_d0._8_8_ = plVar10[1];\n local_d0._0_8_ = *plVar10;\n local_c0 = (double)plVar10[2];\n CVar14.field0_0x0.field1_0x8 = in_d1;\n CVar14.field0_0x0.field0_0x0 = in_d0;\n CVar14.field1_0x10.field1_0x8 = in_d3;\n CVar14.field1_0x10.field0_0x0 = in_d2;\n dVar11 = in_d1;\n dVar12 = in_d2;\n dVar13 = in_d3;\n bVar2 = mss_lockedCachedFrameAnalysisFaceObservationsInCache_inputImage_sourceTileRect_renderTime_observationsOut_\n (param_1,*(ID *)(param_1 + 0x230),param_3,CVar14,(AnonymousStructure0 *)local_d0\n ,(ID *)&local_d8);\n if (bVar2 != 0) {\n objc_stub::unlock(*(ID *)(param_1 + 0x28));\n objc_stub::length(0x1000ad280);\n IVar4 = objc_stub::count((ID)local_d8);\n if (IVar4 == 0) {\n return 0;\n }\n return (ID)local_d8;\n }\n objc_stub::length(0x1000ad2a0);\n if (*(char *)(param_1 + 0x228) == '\\x01') {\n IVar4 = objc_stub::extent(param_3);\n iVar3 = (int)IVar4;\n _CGRectEqualToRect(*(undefined8 *)(param_1 + 0x1e8),*(undefined8 *)(param_1 + 0x1f0),\n *(undefined8 *)(param_1 + 0x1f8),*(undefined8 *)(param_1 + 0x200),extraout_d0\n ,dVar11,dVar12,dVar13);\n if ((((iVar3 != 0) &&\n (_CGRectEqualToRect(*(undefined8 *)(param_1 + 0x208),*(undefined8 *)(param_1 + 0x210),\n *(undefined8 *)(param_1 + 0x218),*(undefined8 *)(param_1 + 0x220)),\n iVar3 != 0)) && ((*(uint *)((long)plVar10 + 0xc) & 0x1d) == 1)) &&\n ((*(uint *)(param_1 + 0x1dc) & 0x1d) == 1)) {\n local_d0._8_8_ = plVar10[1];\n local_d0._0_8_ = *plVar10;\n local_c0 = (double)plVar10[2];\n lStack_e8 = *(long_long *)(param_1 + 0x1d8);\n local_f0 = *(long_long *)(param_1 + 0x1d0);\n local_e0 = *(long_long *)(param_1 + 0x1e0);\n puVar5 = local_d0;\n _CMTimeCompare(puVar5,&local_f0);\n if ((param_5.field0_0x0.field1_0x8._0_4_ == 0) || ((int)puVar5 == 0)) {\n if ((int)puVar5 == 0) {\nLAB_10003bedc:\n puVar6 = PTR____NSArray0__struct_1000a8110;\n if (*(undefined **)(param_1 + 0x1c8) != (undefined *)0x0) {\n puVar6 = *(undefined **)(param_1 + 0x1c8);\n }\n local_d0._8_8_ = plVar10[1];\n local_d0._0_8_ = *plVar10;\n local_c0 = (double)plVar10[2];\n CVar15.field0_0x0.field1_0x8 = in_d1;\n CVar15.field0_0x0.field0_0x0 = in_d0;\n CVar15.field1_0x10.field1_0x8 = in_d3;\n CVar15.field1_0x10.field0_0x0 = in_d2;\n mss_lockedStoreFrameAnalysisFaceObservations_inCache_inputImage_sourceTileRect_renderTime_\n (param_1,(ID)puVar6,*(ID *)(param_1 + 0x230),param_3,CVar15,\n (AnonymousStructure0 *)local_d0);\n objc_stub::unlock(*(ID *)(param_1 + 0x28));\n objc_stub::length(0x1000ad2c0);\n IVar4 = objc_stub::count((ID)puVar6);\n if (IVar4 == 0) {\n return 0;\n }\n return (ID)puVar6;\n }\n }\n else {\n local_d0._8_8_ = plVar10[1];\n local_d0._0_8_ = *plVar10;\n local_c0 = (double)plVar10[2];\n lStack_e8 = *(long_long *)(param_1 + 0x1d8);\n local_f0 = *(long_long *)(param_1 + 0x1d0);\n local_e0 = *(long_long *)(param_1 + 0x1e0);\n puVar5 = local_d0;\n _CMTimeCompare(puVar5,&local_f0);\n if (0 < (int)puVar5) {\n lStack_e8 = plVar10[1];\n local_f0 = *plVar10;\n local_e0 = plVar10[2];\n uStack_108 = *(undefined8 *)(param_1 + 0x1d8);\n puVar6 = *(undefined **)(param_1 + 0x1d0);\n local_100 = *(undefined8 *)(param_1 + 0x1e0);\n local_110 = puVar6;\n _CMTimeSubtract(local_d0,&local_f0,&local_110);\n _CMTimeGetSeconds(local_d0);\n IVar4 = objc_stub::count(*(ID *)(param_1 + 0x1c8));\n if (((puVar6 < (undefined *)0x8000000000000000 &&\n (long)ABS((double)puVar6) + 0xfff0000000000000U >> 0x35 < 0x3ff ||\n puVar6 + -1 < (undefined *)0xfffffffffffff) || ABS((double)puVar6) == 0.0) &&\n ((double)puVar6 <= *(double *)(&DAT_100085fc0 + (ulong)(IVar4 == 0) * 8)))\n goto LAB_10003bedc;\n }\n }\n }\n }\n objc_stub::unlock(*(ID *)(param_1 + 0x28));\n objc_stub::lock(*(ID *)(param_1 + 0x30));\n objc_stub::length(0x1000ad2e0);\n local_110 = (undefined *)0x0;\n objc_stub::lock(*(ID *)(param_1 + 0x28));\n local_d0._8_8_ = plVar10[1];\n local_d0._0_8_ = *plVar10;\n local_c0 = (double)plVar10[2];\n CVar16.field0_0x0.field1_0x8 = in_d1;\n CVar16.field0_0x0.field0_0x0 = in_d0;\n CVar16.field1_0x10.field1_0x8 = in_d3;\n CVar16.field1_0x10.field0_0x0 = in_d2;\n dVar11 = in_d1;\n dVar12 = in_d2;\n dVar13 = in_d3;\n bVar2 = mss_lockedCachedFrameAnalysisFaceObservationsInCache_inputImage_sourceTileRect_renderTime_observationsOut_\n (param_1,*(ID *)(param_1 + 0x230),param_3,CVar16,(AnonymousStructure0 *)local_d0\n ,(ID *)&local_110);\n if (bVar2 != 0) {\n objc_stub::unlock(*(ID *)(param_1 + 0x28));\n objc_stub::length(0x1000ad300);\n IVar4 = objc_stub::count((ID)local_110);\n param_3 = 0;\n if (IVar4 != 0) {\n param_3 = (ID)local_110;\n }\n goto LAB_10003c24c;\n }\n if (*(char *)(param_1 + 0x228) == '\\x01') {\n IVar4 = objc_stub::extent(param_3);\n iVar3 = (int)IVar4;\n dVar11 = *(double *)(param_1 + 0x1f0);\n dVar12 = *(double *)(param_1 + 0x1f8);\n dVar13 = *(double *)(param_1 + 0x200);\n _CGRectEqualToRect(*(undefined8 *)(param_1 + 0x1e8));\n if (iVar3 == 0) goto LAB_10003c0a0;\n dVar11 = *(double *)(param_1 + 0x210);\n dVar12 = *(double *)(param_1 + 0x218);\n dVar13 = *(double *)(param_1 + 0x220);\n _CGRectEqualToRect(*(undefined8 *)(param_1 + 0x208));\n if (((iVar3 == 0) || ((*(uint *)((long)plVar10 + 0xc) & 0x1d) != 1)) ||\n ((*(uint *)(param_1 + 0x1dc) & 0x1d) != 1)) goto LAB_10003c0a0;\n local_d0._8_8_ = plVar10[1];\n local_d0._0_8_ = *plVar10;\n local_c0 = (double)plVar10[2];\n lStack_e8 = *(long_long *)(param_1 + 0x1d8);\n local_f0 = *(long_long *)(param_1 + 0x1d0);\n local_e0 = *(long_long *)(param_1 + 0x1e0);\n puVar5 = local_d0;\n _CMTimeCompare(puVar5,&local_f0);\n if ((int)puVar5 != 0) goto LAB_10003c0a0;\n local_110 = PTR____NSArray0__struct_1000a8110;\n if (*(undefined **)(param_1 + 0x1c8) != (undefined *)0x0) {\n local_110 = *(undefined **)(param_1 + 0x1c8);\n }\n local_d0._8_8_ = plVar10[1];\n local_d0._0_8_ = *plVar10;\n local_c0 = (double)plVar10[2];\n CVar19.field0_0x0.field1_0x8 = in_d1;\n CVar19.field0_0x0.field0_0x0 = in_d0;\n CVar19.field1_0x10.field1_0x8 = in_d3;\n CVar19.field1_0x10.field0_0x0 = in_d2;\n dVar11 = in_d1;\n dVar12 = in_d2;\n dVar13 = in_d3;\n mss_lockedStoreFrameAnalysisFaceObservations_inCache_inputImage_sourceTileRect_renderTime_\n (param_1,(ID)local_110,*(ID *)(param_1 + 0x230),param_3,CVar19,\n (AnonymousStructure0 *)local_d0);\n bVar1 = true;\n }\n else {\nLAB_10003c0a0:\n bVar1 = false;\n }\n objc_stub::unlock(*(ID *)(param_1 + 0x28));\n if (bVar1) {\n objc_stub::length(0x1000ad320);\n goto LAB_10003c24c;\n }\n if (*(long *)(param_1 + 0x38) == 0) {\n objc_stub::length(0x1000af520);\nLAB_10003c1a8:\n local_110 = (undefined *)0x0;\n }\n else {\n IVar4 = objc_stub::extent(param_3);\n iVar3 = (int)IVar4;\n _CGRectIsEmpty();\n if (iVar3 != 0) {\n objc_stub::length(0x1000af520);\n goto LAB_10003c1a8;\n }\n IVar4 = param_3;\n FUN_10002ee0c(extraout_d0_00,dVar11,dVar12,dVar13);\n if (IVar4 == 0) {\n objc_stub::length(0x1000af520);\n goto LAB_10003c1a8;\n }\n IVar8 = IVar4;\n local_d0._0_8_ = extraout_d0_00;\n local_d0._8_8_ = dVar11;\n local_c0 = dVar12;\n dStack_b8 = dVar13;\n FUN_1000502b0(extraout_d0_00,dVar11,dVar12,dVar13,IVar4,local_d0);\n local_f0 = 0;\n puVar6 = &_OBJC_CLASS___VNDetectFaceLandmarksRequest;\n _objc_alloc_init();\n FUN_100019e6c();\n FUN_100050560(IVar8,puVar6,&local_f0);\n if ((int)IVar8 == 0) {\n self_00 = (undefined *)0x0;\n }\n else {\n self = objc_stub::results((ID)puVar6);\n self_00 = (undefined *)objc_stub::copy(self);\n }\n puVar7 = self_00;\n FUN_1000501b4();\n if ((((int)IVar8 == 0) || (IVar8 = objc_stub::count((ID)self_00), IVar8 == 0)) ||\n (puVar7 < (undefined *)0x4c)) {\n objc_stub::count((ID)self_00);\n objc_stub::revision((ID)puVar6);\n objc_stub::usesCPUOnly((ID)puVar6);\n puVar6 = &_OBJC_CLASS___VNDetectFaceLandmarksRequest;\n _objc_alloc_init();\n FUN_100019e6c();\n FUN_100050634(extraout_d0_00,dVar11,dVar12,dVar13,IVar4,puVar6,&cf_landmarks,&local_f0);\n if ((int)IVar4 != 0) {\n IVar4 = objc_stub::results((ID)puVar6);\n self_01 = (undefined *)objc_stub::copy(IVar4);\n puVar9 = self_01;\n FUN_1000501b4();\n objc_stub::count((ID)self_01);\n objc_stub::revision((ID)puVar6);\n IVar4 = objc_stub::count((ID)self_01);\n if (IVar4 != 0) {\n self_00 = self_01;\n puVar7 = puVar9;\n }\n }\n }\n IVar4 = objc_stub::count((ID)self_00);\n if (IVar4 == 0) {\n _NSStringFromRect(extraout_d0_00,dVar11,dVar12,dVar13);\n }\n else if (puVar7 < (undefined *)0x4c) {\n objc_stub::count((ID)self_00);\n }\n objc_stub::length(0x1000af520);\n IVar4 = objc_stub::count((ID)self_00);\n local_110 = (undefined *)0x0;\n if (IVar4 != 0) {\n local_110 = self_00;\n }\n }\n objc_stub::length(0x1000ad340);\n objc_stub::lock(*(ID *)(param_1 + 0x28));\n local_d0._8_8_ = plVar10[1];\n local_d0._0_8_ = *plVar10;\n local_c0 = (double)plVar10[2];\n CVar17.field0_0x0.field1_0x8 = in_d1;\n CVar17.field0_0x0.field0_0x0 = in_d0;\n CVar17.field1_0x10.field1_0x8 = in_d3;\n CVar17.field1_0x10.field0_0x0 = in_d2;\n mss_lockedStoreCachedFaceObservations_inputImage_sourceTileRect_renderTime_\n (param_1,(ID)local_110,param_3,CVar17,(AnonymousStructure0 *)local_d0);\n IVar4 = objc_stub::count((ID)local_110);\n if (IVar4 != 0) {\n local_d0._8_8_ = plVar10[1];\n local_d0._0_8_ = *plVar10;\n local_c0 = (double)plVar10[2];\n CVar18.field0_0x0.field1_0x8 = in_d1;\n CVar18.field0_0x0.field0_0x0 = in_d0;\n CVar18.field1_0x10.field1_0x8 = in_d3;\n CVar18.field1_0x10.field0_0x0 = in_d2;\n mss_lockedStoreCachedFaceRectangleObservations_inputImage_sourceTileRect_renderTime_\n (param_1,(ID)local_110,param_3,CVar18,(AnonymousStructure0 *)local_d0);\n objc_stub::length(0x1000ad360);\n }\n objc_stub::unlock(*(ID *)(param_1 + 0x28));\nLAB_10003c24c:\n objc_stub::unlock(*(ID *)(param_1 + 0x30));\n if (bVar2 == 1) {\n local_110 = (undefined *)param_3;\n }\n return (ID)local_110;\n}\n\n", + "operation": "procedure_pseudo_code", + "parameters": { + "procedure": "0x10003bc84" + }, + "predicate_type": "rea.analysis", + "provider": { + "id": "ghidra", + "name": "Ghidra", + "version": "12.1.4" + }, + "raw_result": { + "limitations": [], + "value": "\n/* WARNING: Function: _objc_retain replaced with injection: _objc_retain_fixup */\n/* WARNING: Function: _objc_autorelease replaced with injection: _objc_retain_fixup */\n/* WARNING: Removing unreachable block (ram,0x00010003c40c) */\n/* Function Stack Size: 0x5c bytes */\n\nID MSSuperSkinSmoothingPlugIn::\n cachedFaceObservationsForInputImage_inputSurface_sourceTileRect_renderTime_allowForwardReuse_\n (ID param_1,SEL param_2,ID param_3,__IOSurface *param_4,CGRect param_5,\n AnonymousStructure0 param_6,bool param_7)\n\n{\n bool bVar1;\n bool bVar2;\n int iVar3;\n ID IVar4;\n undefined1 *puVar5;\n undefined *puVar6;\n ID self;\n undefined *self_00;\n undefined *puVar7;\n ID IVar8;\n undefined *self_01;\n undefined *puVar9;\n long_long *plVar10;\n double in_d0;\n undefined8 extraout_d0;\n long_long extraout_d0_00;\n double in_d1;\n double dVar11;\n double in_d2;\n double dVar12;\n double in_d3;\n double dVar13;\n CGRect CVar14;\n CGRect CVar15;\n CGRect CVar16;\n CGRect CVar17;\n CGRect CVar18;\n CGRect CVar19;\n undefined *local_110;\n undefined8 uStack_108;\n undefined8 local_100;\n long_long local_f0;\n long_long lStack_e8;\n long_long local_e0;\n undefined *local_d8;\n undefined1 local_d0 [16];\n double local_c0;\n double dStack_b8;\n \n plVar10 = param_5.field0_0x0.field0_0x0;\n if (param_3 == 0) {\n return 0;\n }\n objc_stub::lock(*(ID *)(param_1 + 0x28));\n local_d8 = (undefined *)0x0;\n local_d0._8_8_ = plVar10[1];\n local_d0._0_8_ = *plVar10;\n local_c0 = (double)plVar10[2];\n CVar14.field0_0x0.field1_0x8 = in_d1;\n CVar14.field0_0x0.field0_0x0 = in_d0;\n CVar14.field1_0x10.field1_0x8 = in_d3;\n CVar14.field1_0x10.field0_0x0 = in_d2;\n dVar11 = in_d1;\n dVar12 = in_d2;\n dVar13 = in_d3;\n bVar2 = mss_lockedCachedFrameAnalysisFaceObservationsInCache_inputImage_sourceTileRect_renderTime_observationsOut_\n (param_1,*(ID *)(param_1 + 0x230),param_3,CVar14,(AnonymousStructure0 *)local_d0\n ,(ID *)&local_d8);\n if (bVar2 != 0) {\n objc_stub::unlock(*(ID *)(param_1 + 0x28));\n objc_stub::length(0x1000ad280);\n IVar4 = objc_stub::count((ID)local_d8);\n if (IVar4 == 0) {\n return 0;\n }\n return (ID)local_d8;\n }\n objc_stub::length(0x1000ad2a0);\n if (*(char *)(param_1 + 0x228) == '\\x01') {\n IVar4 = objc_stub::extent(param_3);\n iVar3 = (int)IVar4;\n _CGRectEqualToRect(*(undefined8 *)(param_1 + 0x1e8),*(undefined8 *)(param_1 + 0x1f0),\n *(undefined8 *)(param_1 + 0x1f8),*(undefined8 *)(param_1 + 0x200),extraout_d0\n ,dVar11,dVar12,dVar13);\n if ((((iVar3 != 0) &&\n (_CGRectEqualToRect(*(undefined8 *)(param_1 + 0x208),*(undefined8 *)(param_1 + 0x210),\n *(undefined8 *)(param_1 + 0x218),*(undefined8 *)(param_1 + 0x220)),\n iVar3 != 0)) && ((*(uint *)((long)plVar10 + 0xc) & 0x1d) == 1)) &&\n ((*(uint *)(param_1 + 0x1dc) & 0x1d) == 1)) {\n local_d0._8_8_ = plVar10[1];\n local_d0._0_8_ = *plVar10;\n local_c0 = (double)plVar10[2];\n lStack_e8 = *(long_long *)(param_1 + 0x1d8);\n local_f0 = *(long_long *)(param_1 + 0x1d0);\n local_e0 = *(long_long *)(param_1 + 0x1e0);\n puVar5 = local_d0;\n _CMTimeCompare(puVar5,&local_f0);\n if ((param_5.field0_0x0.field1_0x8._0_4_ == 0) || ((int)puVar5 == 0)) {\n if ((int)puVar5 == 0) {\nLAB_10003bedc:\n puVar6 = PTR____NSArray0__struct_1000a8110;\n if (*(undefined **)(param_1 + 0x1c8) != (undefined *)0x0) {\n puVar6 = *(undefined **)(param_1 + 0x1c8);\n }\n local_d0._8_8_ = plVar10[1];\n local_d0._0_8_ = *plVar10;\n local_c0 = (double)plVar10[2];\n CVar15.field0_0x0.field1_0x8 = in_d1;\n CVar15.field0_0x0.field0_0x0 = in_d0;\n CVar15.field1_0x10.field1_0x8 = in_d3;\n CVar15.field1_0x10.field0_0x0 = in_d2;\n mss_lockedStoreFrameAnalysisFaceObservations_inCache_inputImage_sourceTileRect_renderTime_\n (param_1,(ID)puVar6,*(ID *)(param_1 + 0x230),param_3,CVar15,\n (AnonymousStructure0 *)local_d0);\n objc_stub::unlock(*(ID *)(param_1 + 0x28));\n objc_stub::length(0x1000ad2c0);\n IVar4 = objc_stub::count((ID)puVar6);\n if (IVar4 == 0) {\n return 0;\n }\n return (ID)puVar6;\n }\n }\n else {\n local_d0._8_8_ = plVar10[1];\n local_d0._0_8_ = *plVar10;\n local_c0 = (double)plVar10[2];\n lStack_e8 = *(long_long *)(param_1 + 0x1d8);\n local_f0 = *(long_long *)(param_1 + 0x1d0);\n local_e0 = *(long_long *)(param_1 + 0x1e0);\n puVar5 = local_d0;\n _CMTimeCompare(puVar5,&local_f0);\n if (0 < (int)puVar5) {\n lStack_e8 = plVar10[1];\n local_f0 = *plVar10;\n local_e0 = plVar10[2];\n uStack_108 = *(undefined8 *)(param_1 + 0x1d8);\n puVar6 = *(undefined **)(param_1 + 0x1d0);\n local_100 = *(undefined8 *)(param_1 + 0x1e0);\n local_110 = puVar6;\n _CMTimeSubtract(local_d0,&local_f0,&local_110);\n _CMTimeGetSeconds(local_d0);\n IVar4 = objc_stub::count(*(ID *)(param_1 + 0x1c8));\n if (((puVar6 < (undefined *)0x8000000000000000 &&\n (long)ABS((double)puVar6) + 0xfff0000000000000U >> 0x35 < 0x3ff ||\n puVar6 + -1 < (undefined *)0xfffffffffffff) || ABS((double)puVar6) == 0.0) &&\n ((double)puVar6 <= *(double *)(&DAT_100085fc0 + (ulong)(IVar4 == 0) * 8)))\n goto LAB_10003bedc;\n }\n }\n }\n }\n objc_stub::unlock(*(ID *)(param_1 + 0x28));\n objc_stub::lock(*(ID *)(param_1 + 0x30));\n objc_stub::length(0x1000ad2e0);\n local_110 = (undefined *)0x0;\n objc_stub::lock(*(ID *)(param_1 + 0x28));\n local_d0._8_8_ = plVar10[1];\n local_d0._0_8_ = *plVar10;\n local_c0 = (double)plVar10[2];\n CVar16.field0_0x0.field1_0x8 = in_d1;\n CVar16.field0_0x0.field0_0x0 = in_d0;\n CVar16.field1_0x10.field1_0x8 = in_d3;\n CVar16.field1_0x10.field0_0x0 = in_d2;\n dVar11 = in_d1;\n dVar12 = in_d2;\n dVar13 = in_d3;\n bVar2 = mss_lockedCachedFrameAnalysisFaceObservationsInCache_inputImage_sourceTileRect_renderTime_observationsOut_\n (param_1,*(ID *)(param_1 + 0x230),param_3,CVar16,(AnonymousStructure0 *)local_d0\n ,(ID *)&local_110);\n if (bVar2 != 0) {\n objc_stub::unlock(*(ID *)(param_1 + 0x28));\n objc_stub::length(0x1000ad300);\n IVar4 = objc_stub::count((ID)local_110);\n param_3 = 0;\n if (IVar4 != 0) {\n param_3 = (ID)local_110;\n }\n goto LAB_10003c24c;\n }\n if (*(char *)(param_1 + 0x228) == '\\x01') {\n IVar4 = objc_stub::extent(param_3);\n iVar3 = (int)IVar4;\n dVar11 = *(double *)(param_1 + 0x1f0);\n dVar12 = *(double *)(param_1 + 0x1f8);\n dVar13 = *(double *)(param_1 + 0x200);\n _CGRectEqualToRect(*(undefined8 *)(param_1 + 0x1e8));\n if (iVar3 == 0) goto LAB_10003c0a0;\n dVar11 = *(double *)(param_1 + 0x210);\n dVar12 = *(double *)(param_1 + 0x218);\n dVar13 = *(double *)(param_1 + 0x220);\n _CGRectEqualToRect(*(undefined8 *)(param_1 + 0x208));\n if (((iVar3 == 0) || ((*(uint *)((long)plVar10 + 0xc) & 0x1d) != 1)) ||\n ((*(uint *)(param_1 + 0x1dc) & 0x1d) != 1)) goto LAB_10003c0a0;\n local_d0._8_8_ = plVar10[1];\n local_d0._0_8_ = *plVar10;\n local_c0 = (double)plVar10[2];\n lStack_e8 = *(long_long *)(param_1 + 0x1d8);\n local_f0 = *(long_long *)(param_1 + 0x1d0);\n local_e0 = *(long_long *)(param_1 + 0x1e0);\n puVar5 = local_d0;\n _CMTimeCompare(puVar5,&local_f0);\n if ((int)puVar5 != 0) goto LAB_10003c0a0;\n local_110 = PTR____NSArray0__struct_1000a8110;\n if (*(undefined **)(param_1 + 0x1c8) != (undefined *)0x0) {\n local_110 = *(undefined **)(param_1 + 0x1c8);\n }\n local_d0._8_8_ = plVar10[1];\n local_d0._0_8_ = *plVar10;\n local_c0 = (double)plVar10[2];\n CVar19.field0_0x0.field1_0x8 = in_d1;\n CVar19.field0_0x0.field0_0x0 = in_d0;\n CVar19.field1_0x10.field1_0x8 = in_d3;\n CVar19.field1_0x10.field0_0x0 = in_d2;\n dVar11 = in_d1;\n dVar12 = in_d2;\n dVar13 = in_d3;\n mss_lockedStoreFrameAnalysisFaceObservations_inCache_inputImage_sourceTileRect_renderTime_\n (param_1,(ID)local_110,*(ID *)(param_1 + 0x230),param_3,CVar19,\n (AnonymousStructure0 *)local_d0);\n bVar1 = true;\n }\n else {\nLAB_10003c0a0:\n bVar1 = false;\n }\n objc_stub::unlock(*(ID *)(param_1 + 0x28));\n if (bVar1) {\n objc_stub::length(0x1000ad320);\n goto LAB_10003c24c;\n }\n if (*(long *)(param_1 + 0x38) == 0) {\n objc_stub::length(0x1000af520);\nLAB_10003c1a8:\n local_110 = (undefined *)0x0;\n }\n else {\n IVar4 = objc_stub::extent(param_3);\n iVar3 = (int)IVar4;\n _CGRectIsEmpty();\n if (iVar3 != 0) {\n objc_stub::length(0x1000af520);\n goto LAB_10003c1a8;\n }\n IVar4 = param_3;\n FUN_10002ee0c(extraout_d0_00,dVar11,dVar12,dVar13);\n if (IVar4 == 0) {\n objc_stub::length(0x1000af520);\n goto LAB_10003c1a8;\n }\n IVar8 = IVar4;\n local_d0._0_8_ = extraout_d0_00;\n local_d0._8_8_ = dVar11;\n local_c0 = dVar12;\n dStack_b8 = dVar13;\n FUN_1000502b0(extraout_d0_00,dVar11,dVar12,dVar13,IVar4,local_d0);\n local_f0 = 0;\n puVar6 = &_OBJC_CLASS___VNDetectFaceLandmarksRequest;\n _objc_alloc_init();\n FUN_100019e6c();\n FUN_100050560(IVar8,puVar6,&local_f0);\n if ((int)IVar8 == 0) {\n self_00 = (undefined *)0x0;\n }\n else {\n self = objc_stub::results((ID)puVar6);\n self_00 = (undefined *)objc_stub::copy(self);\n }\n puVar7 = self_00;\n FUN_1000501b4();\n if ((((int)IVar8 == 0) || (IVar8 = objc_stub::count((ID)self_00), IVar8 == 0)) ||\n (puVar7 < (undefined *)0x4c)) {\n objc_stub::count((ID)self_00);\n objc_stub::revision((ID)puVar6);\n objc_stub::usesCPUOnly((ID)puVar6);\n puVar6 = &_OBJC_CLASS___VNDetectFaceLandmarksRequest;\n _objc_alloc_init();\n FUN_100019e6c();\n FUN_100050634(extraout_d0_00,dVar11,dVar12,dVar13,IVar4,puVar6,&cf_landmarks,&local_f0);\n if ((int)IVar4 != 0) {\n IVar4 = objc_stub::results((ID)puVar6);\n self_01 = (undefined *)objc_stub::copy(IVar4);\n puVar9 = self_01;\n FUN_1000501b4();\n objc_stub::count((ID)self_01);\n objc_stub::revision((ID)puVar6);\n IVar4 = objc_stub::count((ID)self_01);\n if (IVar4 != 0) {\n self_00 = self_01;\n puVar7 = puVar9;\n }\n }\n }\n IVar4 = objc_stub::count((ID)self_00);\n if (IVar4 == 0) {\n _NSStringFromRect(extraout_d0_00,dVar11,dVar12,dVar13);\n }\n else if (puVar7 < (undefined *)0x4c) {\n objc_stub::count((ID)self_00);\n }\n objc_stub::length(0x1000af520);\n IVar4 = objc_stub::count((ID)self_00);\n local_110 = (undefined *)0x0;\n if (IVar4 != 0) {\n local_110 = self_00;\n }\n }\n objc_stub::length(0x1000ad340);\n objc_stub::lock(*(ID *)(param_1 + 0x28));\n local_d0._8_8_ = plVar10[1];\n local_d0._0_8_ = *plVar10;\n local_c0 = (double)plVar10[2];\n CVar17.field0_0x0.field1_0x8 = in_d1;\n CVar17.field0_0x0.field0_0x0 = in_d0;\n CVar17.field1_0x10.field1_0x8 = in_d3;\n CVar17.field1_0x10.field0_0x0 = in_d2;\n mss_lockedStoreCachedFaceObservations_inputImage_sourceTileRect_renderTime_\n (param_1,(ID)local_110,param_3,CVar17,(AnonymousStructure0 *)local_d0);\n IVar4 = objc_stub::count((ID)local_110);\n if (IVar4 != 0) {\n local_d0._8_8_ = plVar10[1];\n local_d0._0_8_ = *plVar10;\n local_c0 = (double)plVar10[2];\n CVar18.field0_0x0.field1_0x8 = in_d1;\n CVar18.field0_0x0.field0_0x0 = in_d0;\n CVar18.field1_0x10.field1_0x8 = in_d3;\n CVar18.field1_0x10.field0_0x0 = in_d2;\n mss_lockedStoreCachedFaceRectangleObservations_inputImage_sourceTileRect_renderTime_\n (param_1,(ID)local_110,param_3,CVar18,(AnonymousStructure0 *)local_d0);\n objc_stub::length(0x1000ad360);\n }\n objc_stub::unlock(*(ID *)(param_1 + 0x28));\nLAB_10003c24c:\n objc_stub::unlock(*(ID *)(param_1 + 0x30));\n if (bVar2 == 1) {\n local_110 = (undefined *)param_3;\n }\n return (ID)local_110;\n}\n\n" + }, + "subject": { + "architecture": "arm64", + "digest": { + "sha256": "afc71d0d21fd3c1ca95ca745ddafcd729e36ad95f17d8638009f2e45d9b7e8df" + }, + "format": "mach-o", + "local_path": "/Users/dayu/Documents/PaintFCP/build/body-analysis/MSE18V2-arm64", + "name": "MSE18V2-arm64" + } + }, + { + "analysis_profile": { + "digest": "20565088524a2d0359b9b96f46ac48e679d774c7b0092c56abc06de8fdbec11c", + "parameters": { + "analyzer_preset": "ghidra-default", + "annotation_policy": "atomic-function-entry-metadata-v1", + "architecture": "arm64", + "available_architectures": [ + "arm64" + ], + "compiler_spec_id": "auto-default", + "decompiler_jump_loads": true, + "function_body_evidence": "complete-inclusive-ranges-v1", + "function_boundary_observations": "ghidra-terminal-call-limitations-v1", + "function_references": "complete-body-and-entry-reference-manager-v2", + "import_mode": "ephemeral-source-immutable", + "instruction_flow_evidence": "decoded-return-pcode-v1", + "jump_table_evidence": "typed-case-default-blocks-v1", + "language_id": "auto-from-header", + "load_image_observations": "source-mappings-entry-context-v2", + "loader": "auto-from-header", + "location_resolution": "explicit-address-exact-entry-symbol-first-v3", + "no_return_repair": "returning-imports-decoded-return-v2", + "process_launch": "inspected-jvm-launch-support-v1", + "string_inventory_evidence": "defined-data-coverage-v1", + "target_format": "mach-o", + "target_kind": "executable" + }, + "provider": { + "id": "ghidra", + "name": "Ghidra", + "version": "12.1.4" + } + }, + "authority": "shipped-artifact", + "confidence": "observed", + "environment": null, + "evidence_id": "ev_d138ff61ee730f4177179ca4406903675203b55fde5433c6ebcfd69d7d4f007c", + "evidence_links": [], + "limitations": [ + "The session serves operations only after Ghidra reports default auto-analysis complete; incomplete analysis does not expose partial results.", + "The imported Program and temporary project are ephemeral and deleted on close. Annotation operations edit session database metadata; original executable bytes are never written.", + "Cancelling an active Ghidra request terminates its ephemeral database and discards session annotations. The selected target remains open; the next provider query imports the original artifact again.", + "Default-space addresses use lowercase 0x-prefixed hexadecimal; other address spaces use :0x.", + "Bytes reflect Ghidra's initialized memory, including loader fixups. Reads stop at an unmapped or uninitialized byte and report completeness explicitly.", + "macOS sessions require a matching executable Ghidra native decompiler; REA checks for it but does not build native components or change Gatekeeper quarantine state." + ], + "locations": [], + "normalized_result": { + "address": "0x1000af5a0", + "bytes_hex": "00570e0001000000c807000000000000508b0900010000002600000000000000", + "complete": true, + "requested_bytes": 32, + "returned_bytes": 32 + }, + "operation": "read_bytes", + "parameters": { + "address": "0x1000af5a0", + "length": 32 + }, + "predicate_type": "rea.analysis", + "provider": { + "id": "ghidra", + "name": "Ghidra", + "version": "12.1.4" + }, + "raw_result": { + "address": "0x1000af5a0", + "bytes_hex": "00570e0001000000c807000000000000508b0900010000002600000000000000", + "complete": true, + "requested_bytes": 32, + "returned_bytes": 32 + }, + "subject": { + "architecture": "arm64", + "digest": { + "sha256": "afc71d0d21fd3c1ca95ca745ddafcd729e36ad95f17d8638009f2e45d9b7e8df" + }, + "format": "mach-o", + "local_path": "/Users/dayu/Documents/PaintFCP/build/body-analysis/MSE18V2-arm64", + "name": "MSE18V2-arm64" + } + } + ], + "selection": { + "scope": "Selected complete records from the session export; unselected operations and legacy-target evidence omitted", + "date": "2026-10-22", + "allTargetExecution": false + } +} diff --git a/docs/analysis/tracking-flicker-20261022/synthetic-results.json b/docs/analysis/tracking-flicker-20261022/synthetic-results.json new file mode 100644 index 0000000..9eae8f4 --- /dev/null +++ b/docs/analysis/tracking-flicker-20261022/synthetic-results.json @@ -0,0 +1,81 @@ +{ + "authoredTwoFaceCrossing" : { + "rawIndex0" : "same authored identity A moved by .10", + "rawIndex1" : "different authored identity B moved within .01 of old center", + "selectedRawIndex" : 1 + }, + "defaultAppearanceOnDetectionLoss" : { + "geometryFacesAfter" : 1, + "geometryFacesBefore" : 1, + "meanColorMaskAfter" : 0, + "meanColorMaskBefore" : 0.39522577568114048, + "meanSkinMaskAfter" : 0, + "meanSkinMaskBefore" : 0.29670316041502076 + }, + "landmarkWeightsByFrameRate" : [ + { + "currentLandmarkWeight" : 0.89999999999999925, + "fps" : 25 + }, + { + "currentLandmarkWeight" : 0.89999999999999925, + "fps" : 30 + }, + { + "currentLandmarkWeight" : 0.5, + "fps" : 60 + }, + { + "currentLandmarkWeight" : 0.25, + "fps" : 120 + } + ], + "outOfOrderCachedMissingFrame" : { + "initial40OutputFaces" : 0, + "ordered0Then40OutputFaces" : 1, + "replay40AfterAdding0OutputFaces" : 0 + }, + "pureBBoxTranslationJitter" : { + "fps" : 25, + "frames" : 20, + "maximumOutputVsRawPointError" : 0, + "outputOverRawAmplitude" : 1, + "outputStepNormalized" : 0.0080000000000000071, + "rawStepNormalized" : 0.0080000000000000071 + }, + "reacquisition" : { + "continuousPoint69x" : 0.60288473677011323, + "rawPoint69x" : 0.60568473677011325, + "reacquiredPoint69x" : 0.60568473677011325 + }, + "scope" : "Authored synthetic geometry and image only; actual current PGFaceProcessor implementation linked; no target binary or user media.", + "topologyValidMissingValid" : { + "held" : [ + false, + false, + false + ], + "pixelDifferencesFromUnwarpedInput" : [ + { + "changedChannelsAbove1e_6" : 85835, + "maxChannelDifference" : 0.89999997615814209, + "meanChannelDifference" : 0.055795646515334418 + }, + { + "changedChannelsAbove1e_6" : 0, + "maxChannelDifference" : 0, + "meanChannelDifference" : 0 + }, + { + "changedChannelsAbove1e_6" : 85835, + "maxChannelDifference" : 0.89999997615814209, + "meanChannelDifference" : 0.055795646515334418 + } + ], + "points76Counts" : [ + 76, + 0, + 76 + ] + } +} diff --git a/docs/analysis/跟踪闪烁对齐分析.md b/docs/analysis/跟踪闪烁对齐分析.md new file mode 100644 index 0000000..c4c34d8 --- /dev/null +++ b/docs/analysis/跟踪闪烁对齐分析.md @@ -0,0 +1,60 @@ +# 瘦脸跟踪闪烁:1.3.2 与目标 2.4.0 的对齐缺口 + +2026-10-22。用户实测同一段素材,本插件瘦脸跟踪闪烁,目标插件稳定。本次分析基线为 `b58fec1a86db7a2e474e1cc65a5911447b5906b9`,已安装版仍为 1.3.2(17)。只做源码审查、隔离合成复现和静态二进制对照,没有修改产品源码、重新编译 APP 或操作宿主。 + +主要缺口在跨帧几何的有效性判定、坏帧保持与缓存更新。此前恢复单帧瘦脸位移场,并没有完整对齐新版目标的连续跟踪链。以下区分已经复现的本品行为、目标的静态分支,以及尚未定位到用户素材具体帧的部分。 + +## 目标版本与旧分析的边界 + +本次目标是用户指定的 `/Users/dayu/Downloads/MSE18V2.app`,版本 **2.4.0 / 20260724150000**。插件通用二进制 SHA-256 为 `577303e0de72e07feb576c882e82382b3f056b023a7e987d990ffb37f6b16109`,arm64 切片为 `afc71d0d21fd3c1ca95ca745ddafcd729e36ad95f17d8638009f2e45d9b7e8df`。切片逐字节核对过本次目标,REA 使用 Ghidra 12.1.4;未执行目标。 + +原有 [auto-follow-report.json](auto-follow-report.json) 分析的是 `/Applications/MSE18V2.app` 的旧版 `1.0.20260617-170517`,通用二进制 SHA 为 `6c5d74bc844a5c5f745718b48ea10ec6635d08aa08a5b6dc6e62653980849f8a`。其中 temporal 混合系数和历史优先级不能直接当成 2.4.0 的默认瘦脸实现。 + +新版 `renderDestinationImage`(`0x10002179c`)的单主要人脸几何分支直接调用 **`mss_pinStyleFacePoints…`(`0x10003d69c`)**。后者在筛选当前几何后,选择接纳新点或回用上一组有效点,并可向 `trackedFaceBox…`(`0x10003cc78`)请求连续跟踪框。旧 `temporalFacePoints…` 方法仍存在,但当前提供者没有解析到它的直接调用者;这不能排除任意 Objective-C 间接调用,却足以纠正“只按旧 temporal 方法调平滑系数即可对齐新版”的假设。 + +对应 Evidence:render `ev_2330b66132cd6539b8c66313c8dc43ca6ff5eb3e0881abbbe26857f99de6a83b`;pin-style `ev_58dee36fddf4e4c98ce3d880a0bb98190351d1269c960b3ccc275aef81265e8f`;直接调用关系 `ev_568a93f2165e5dc5046e610f47c23e9cebc33f55b5d12d3ee005a1e99a7191f6`、`ev_a8cf6f3aec6fbcf2b698ab8ec52313e20a6a5e0d636bc922c4293e436861db7e`、`ev_7c53c39d245e0063cab89358ab8948cdd734488460464d5f455674bb80a1515a`。 + +## 已确定的差异 + +| 环节 | 当前 1.3.2 | 目标 2.4.0 的静态证据 | 对闪烁的意义 | +| --- | --- | --- | --- | +| 部分关键点失效 | 有合法脸框就接纳;当前缺 76 点时删去完整拓扑,且不标为 held | 接纳前要求足量点、轮廓、有限坐标、有效五官布局和置信度;不合格时可回用上一组有效点 | 当前会在部分失效帧直接关闭瘦脸,目标有完整形状保持路径 | +| 框与几何稳定 | 每次重新检测,旧点先映射到当前原始框;没有连续对象框跟踪器 | pin-style 可调用 VNSequenceRequestHandler / VNTrackObjectRequest,坏帧可把旧点映射到可用跟踪框 | 当前框噪声完全进入几何;目标另外维护连续框和上次有效形状 | +| 异常姿态与跳点 | 主要判断眼轴翻转;合法有限 76 点一般直接进入混合 | 额外检查眼/鼻/口/下轮廓结构、前后几何兼容及归一化点位跳变的中位数/P90 | 当前会接受点数足够但位置不可靠的帧 | +| 同帧检测复用 | 每个请求新建 Vision handler;几何缓存要求 raw 也完全相同才命中 | 人脸检测有按帧时间、输入范围和 tile 范围复用的缓存,并有重试分支 | 当前重复请求可能产生不同 raw 后重新计算;未测得其在用户素材中的发生频率 | +| 丢检时的外观支持 | 默认几何可以保持,但皮肤/牙齿/眼睛蒙版仍取 raw 检测 | 本次只完整核对目标的瘦脸主路径,未恢复其全部外观蒙版稳定策略 | 本品已复现几何保持时外观蒙版清零,可能叠加视觉闪烁;不把目标外观路径宣称为已完全对齐 | + +pin-style 的接纳分支复制本帧合格点,保持分支使用旧有效点并尝试框重映射。因此**不能据旧报告把“目标平滑更强”或某个固定混合权重当作这次原因**。应优先恢复它筛掉坏几何、保留有效几何的机制。 + +目标跟踪器还有开关与时间管理:静态初始化检查 `MSE18_DISABLE_FACE_THIN_VISION_TRACKER`,通常未设置时启用;已核对初始化汇编的 OR/EOR 写入。跟踪方法包含同帧复用、时间倒退/间隔后的重置、跟踪结果置信度检查和短期保框分支。这里证明默认配置下的可达控制流,没有记录用户宿主内实际环境变量或运行命中次数,不能称为运行验证,也不能仅添加一个 VNTrackObjectRequest 就声称完整复刻。 + +## 隔离复现结果 + +探针直接链接当前 `PGFaceProcessor.m`,用自造 256×256 图与合成关键点调用实际选择器、变形和蒙版实现。没有使用用户画面、真实人脸点阵或目标运行结果。运行 `zsh scripts/diagnose-tracking.sh` 输出 JSON;它是诊断统计,退出码 0 只表示执行完成。 + +1. **76 → 缺 76 → 76,瘦脸中间一帧完全归零。** 三帧一直有输出脸框,点数为 `76/0/76`,held 全为 false。只开瘦脸时,相对原图的变化通道数为 `85835/0/85835`,中间帧像素完全直通。源码入口:`PGFaceProcessor.m` 208–227、308、532–554、645–646。这证明了一个足以造成闪烁的路径;没有测量它在用户视频中的出现率。 +2. **纯脸框抖动衰减为 0%。** 25fps、20 帧,框的 X 方向交替 ±0.004,框内点保持一致;输入和稳定后的点位步幅均为 0.008,输出/输入振幅比 `1.0`。源码 177–186、196、214–217 的重映射原样继承了框平移。目标对各种轻微框噪声的最终响应尚未做数值对照,不能把此数值直接说成两插件的实测差值。 +3. **当前点混合在 25/30fps 时采用 90% 新点。** 60fps 为 50%,120fps 为 25%;现有 10ms 用例只检查 30% 新点。掉检后重获还跳过 76 点混合而直接采用 raw。源码 186、211–225、308;现有 `slim_tests.m` 408–410 明确要求重获采用 raw。这解释当前实现为何对扰动敏感,不是目标 2.4.0 权重的证据。 +4. **空缓存会保留第一次请求顺序的结果。** 先请求 40ms 空帧,再补入 0ms 有效脸,重播 40ms 仍输出 0 脸;按 0→40ms 请求则输出 1 脸。源码 279 的命中直接返回,插入早期帧不会更新后续结果。宿主锁只串行化到达顺序;并发测试只验证安全和重复一致,没有要求不同到达顺序获得相同几何。尚未记录用户宿主实际请求顺序。 +5. **几何保持不等于美容蒙版保持。** 默认路径掉检时几何脸数仍为 1,colorMask 均值从 `0.3952` 变为 `0`,skinMask 从 `0.2967` 变为 `0`。生产入口强制 singleFace=0,走源码 664–666 的 raw 外观支持;单人 held 外观分支并未在该默认路径使用。 +6. **多人仍有额外边界。** 默认关联只按防跳区域内距上一框中心最近者选脸;自造交叉可选到陌生人。fastMulti 直接返回 raw,不做当前单主要人脸的保持。此项没有证明用户单人素材发生了换脸,修复时应单列验收。 + +原 1901 项回归主要证明单帧图像、几何和接口行为。已有跟随测试检查完全空检测、10ms 扰动与缓存重复安全,没有覆盖“76 点短暂不完整”的连续帧,也没有以常用帧率约束抖动幅度。此前每两秒取一帧、共 11 帧的真实视频检查同样不能替代连续序列稳定性验收。 + +## 建议修复顺序与验证要求 + +- **先处理部分失效和异常几何。** 在接纳新主脸前检查完整拓扑与五官布局;不合格时进入上一组有效形状的保持/重映射路径。明确区分有效检测时间、输出时间和保持状态,避免仅靠刷新输出时间无限保持。 +- **再对齐连续框、重获和时间管理。** 结合新版默认可达跟踪链处理同帧、倒退、跳时、正常运动及重获;从转头、遮挡恢复检查形状是否突然跳回 raw。先逐条核对机制,再决定系数,避免用增加滞后来掩盖坏点。 +- **补齐缓存和外观同步。** 明确同帧结果与新增前帧历史的失效关系、源切换隔离及默认蒙版跟随;以顺序/倒序/重复/多线程请求对照输出。 +- **用同一段素材做连续帧验收。** 锁定宿主、原始帧率、预览/导出条件和相同单项参数;记录检测有效性、保持原因、框/点扰动与效果开关变化,和目标逐帧对照。单张图正常、自动用例通过都不足以宣布闪烁修复。 + +用户随后指定当前时间线的草帽人物素材,已在 Final Cut Pro 确认项目为1080p25、多人模式关闭、瘦脸1.00,且大眼约0.90;正在对源素材做连续帧核对。现有结论已定位实现缺口与可复现机制,尚未将某一种机制认定为该素材闪烁的唯一原因。本次不构建新 APP,不更新安装包或文章。 + +## 保留资料 + +- [诊断结果](tracking-flicker-20261022/synthetic-results.json) +- [目标版本、源码指纹和范围](tracking-flicker-20261022/manifest.json) +- [选取的完整 REA Evidence 记录](tracking-flicker-20261022/rea-evidence.json),含原始/规范化结果与提供者限制;为互操作研究资料,不包括目标 APP 或 metallib。 +- 探针源码 `scripts/diagnose-tracking.m` 与入口 `scripts/diagnose-tracking.sh`。构建依赖与项目一致,需 macOS 的 Core Image/Vision;生成文件位于忽略的 build 下。 + +Ghidra 对部分 CGRect、CMTime 和返回寄存器的恢复不完整。报告依据渲染调用关系、完整点门槛、接纳/保持内存分支及初始化汇编作结构判断;未声称所有阈值布尔表达式与目标逐条等价。REA 会话已保存并关闭,证据可离线复查。 diff --git a/docs/项目交接.md b/docs/项目交接.md index 4afa024..19a927b 100644 --- a/docs/项目交接.md +++ b/docs/项目交接.md @@ -8,6 +8,10 @@ 1.2.0 交接整理前,工作区干净,`main`、`origin/main` 与 `github/main` 均为 `189a5d7634aa69db54330c90f8711b05d8e44b10`。这是文档新增前的基线;最新文档节点以 `git log -1` 和远端引用为准。 +## 最新待修问题:瘦脸跟踪闪烁(2026-10-22) + +用户实测同一段素材,本插件有闪烁、目标稳定。本次完成源码/合成诊断和 Downloads 2.4.0 的静态复核,未修改产品源码或安装版。新版单主要人脸的渲染路径为 pin-style 质量筛选、条件连续框跟踪和坏帧保持;原 auto-follow-report 的旧 Applications 版本 temporal 系数不能直接沿用。已复现部分76点缺失导致瘦脸归零、框抖动无衰减、首次请求空帧缓存不随补入前帧修正,以及几何保持时默认外观蒙版清零。用户已确认当前FCP时间线的草帽人物素材(1080p25、瘦脸1、大眼约0.9、多人关闭),具体连续帧触发率和宿主实际请求序列尚未测量,不宣称已修复。见[跟踪闪烁对齐分析](analysis/跟踪闪烁对齐分析.md),复现入口 `zsh scripts/diagnose-tracking.sh`;这次不是新发行版,无需重发安装包或文章。 + ## 先读和先查 接手时先查看 `git status --short --branch`、`git remote -v` 和最新提交,确认没有其他聊天的未提交改动。只读核对正式 APP 版本与模板目录,再决定是否需要编译或操作宿主。单纯修改文档不需要重建、重新公证或打开 Motion/FCP。 diff --git a/docs/验证记录.md b/docs/验证记录.md index 1454b3c..47b0786 100644 --- a/docs/验证记录.md +++ b/docs/验证记录.md @@ -159,3 +159,10 @@ PKG由本机PKG工坊CLI从正式APP与用户指定已安装的「大鱼磨皮 PKG 工坊 CLI 基础包包含指定已安装的「大鱼磨皮瘦脸」分类四项文件;加入本产品身份迁移/回滚段后重新签名、公证 Accepted `4a831775-2317-4372-a4cc-102415657ea3` 并粘附票据。最终包 4,889,706 bytes,SHA256 `20a88dacf68cc8812f5af86cfe94c1c0614414a68a019eaeac7ca9d078165ae1`。有效载荷与正式 APP、四项模板一致,模板锁定、更新和失败回滚隔离检查通过;未实际执行本 PKG 安装器。 origin/github 的 main、工作分支和 v1.3.2 标签已推送并回读。匿名独立 GitHub 克隆核对 271 个文件字节/blob/执行位,strict/full fsck、Xcode 工程读取和恢复出的 PKG 签名/票据/Gatekeeper 通过,无 LFS/子模块。GitHub、大鱼 Release 和文章 15593 已更新;GitHub 与文章的包/源码共四项匿名下载哈希一致,正常及新请求前台的版本、安装命令和三项 SEO 核验通过。作者、封面、分类及免费规则保留,未下订单。大鱼 Release 仅回读附件名称和大小,保留登录网关边界。完整回执在 verification/v1.3.2。 + + +## 1.3.2 跟踪闪烁分析(2026-10-22,尚未修复) + +用户报告目标稳定而本插件闪烁。新目标2.4.0的静态REA复核发现瘦脸单主要人脸改走 pin-style 筛选与保持,条件可达连续对象框跟踪。现有旧版自动跟随报告不能作为该新版主路径完全对齐的依据。直接链接当前产品源码的合成探针确认:76点完整/缺失/完整使变形通道85835/0/85835;纯框抖动输出/输入振幅比1;先请求40ms空帧、再补0ms有效脸后,缓存40ms仍空,与顺序请求不同;默认外观蒙版在几何保持时可清零。这些均为合成诊断,不是用户素材或目标运行统计。 + +见 analysis/跟踪闪烁对齐分析.md 和同目录 tracking-flicker-20261022;诊断入口 `zsh scripts/diagnose-tracking.sh`。产品源码与正式1.3.2保持相同,未构建APP、未安装、未重发PKG或文章。用户随后确认当前FCP草帽人物素材,已定位源文件,连续帧核对进行中;原1901项回归不代表连续跟踪稳定性已通过。 diff --git a/scripts/diagnose-tracking.m b/scripts/diagnose-tracking.m new file mode 100644 index 0000000..4dc0a50 --- /dev/null +++ b/scripts/diagnose-tracking.m @@ -0,0 +1,100 @@ +#import +#import +#import "PGFaceProcessor.h" +#include + +@interface PGRealtimeFaceTracker : NSObject +- (NSDictionary *)resultForGeometry:(NSArray *)raw settings:(PGBeautySettings)s time:(CMTime)time extent:(CGRect)extent; +@end +@interface PGFaceProcessor (ProbeWarp) +- (CIImage *)warpImage:(CIImage *)image geometry:(NSArray *)geometry settings:(PGBeautySettings)s extent:(CGRect)extent; +- (NSArray *)observationsInImage:(CIImage *)image settings:(PGBeautySettings)s error:(NSError **)error; +@end +@interface ProbeFaceProcessor : PGFaceProcessor +@property (nonatomic,copy) NSArray *authoredDetections; +@end +@implementation ProbeFaceProcessor +- (NSArray *)observationsInImage:(CIImage *)image settings:(PGBeautySettings)s error:(NSError **)error {return self.authoredDetections?:@[];} +@end + +static NSDictionary *Geometry(CGRect box, double localJitter, BOOL has76) { + NSMutableDictionary *g=[@{@"box":@[@(box.origin.x),@(box.origin.y),@(box.size.width),@(box.size.height)]} mutableCopy]; + for(NSString *name in @[@"leftEye",@"rightEye",@"leftBrow",@"rightBrow",@"nose",@"lips",@"mouth",@"contour"]){ + double x=[name isEqual:@"rightEye"]?.7:.3; + g[name]=@[@[@(box.origin.x+(x+localJitter)*box.size.width),@(box.origin.y+.65*box.size.height)]]; + } + if(has76){ + NSMutableArray *p=[NSMutableArray new]; + for(NSUInteger i=0;i<76;i++)[p addObject:@[@.5,@.5]]; + p[6]=@[@.34,@.65];p[13]=@[@.66,@.65]; + p[46]=@[@.5,@.68];p[47]=@[@.5,@.60];p[48]=@[@.5,@.52];p[49]=@[@.5,@.45];p[52]=@[@.5,@.42]; + p[29]=@[@.5,@.39];p[36]=@[@.54,@.36];p[37]=@[@.5,@.35];p[38]=@[@.46,@.36]; + p[26]=@[@.42,@.40];p[34]=@[@.58,@.40];p[35]=@[@.57,@.36];p[39]=@[@.43,@.36]; + for(NSUInteger i=0;i<17;i++){double t=M_PI+M_PI*i/16;p[59+i]=@[@(.5+.29*cos(t)),@(.65+.43*sin(t))];} + for(NSUInteger i=0;i<76;i++)p[i]=@[@(box.origin.x+([p[i][0] doubleValue]+localJitter)*box.size.width),@(box.origin.y+[p[i][1] doubleValue]*box.size.height)]; + g[@"points76"]=p; + } + return g; +} +static NSDictionary *Live(PGRealtimeFaceTracker *t,NSArray *g,PGBeautySettings s,int64_t tick){return[t resultForGeometry:g settings:s time:CMTimeMake(tick,1000) extent:CGRectMake(0,0,256,256)];} +static double PointX(NSDictionary *r){return[r[@"output"][0][@"points76"][69][0] doubleValue];} +static NSData *Pixels(CIContext *context,CIImage *image){ + CGRect e=image.extent;NSUInteger w=e.size.width,h=e.size.height;NSMutableData *d=[NSMutableData dataWithLength:w*h*4*sizeof(float)]; + [context render:image toBitmap:d.mutableBytes rowBytes:w*4*sizeof(float) bounds:e format:kCIFormatRGBAf colorSpace:NULL];return d; +} +static NSDictionary *Difference(NSData *a,NSData *b){ + const float *x=a.bytes,*y=b.bytes;NSUInteger n=a.length/sizeof(float),changed=0;double maximum=0,sum=0; + for(NSUInteger i=0;i1e-6)changed++;} + return@{@"maxChannelDifference":@(maximum),@"meanChannelDifference":@(sum/n),@"changedChannelsAbove1e_6":@(changed)}; +} +static double MeanRed(CIContext *context,CIImage *image){NSData *d=Pixels(context,image);const float *p=d.bytes;NSUInteger n=d.length/(4*sizeof(float));double sum=0;for(NSUInteger i=0;i