5570 行
706 KiB
JSON
5570 行
706 KiB
JSON
{
|
|
"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 <percent-encoded-space>:0x<hex>.",
|
|
"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 <percent-encoded-space>:0x<hex>.",
|
|
"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 <percent-encoded-space>:0x<hex>.",
|
|
"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 <percent-encoded-space>:0x<hex>.",
|
|
"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 <percent-encoded-space>:0x<hex>.",
|
|
"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 <percent-encoded-space>:0x<hex>.",
|
|
"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 <percent-encoded-space>:0x<hex>.",
|
|
"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 <percent-encoded-space>:0x<hex>.",
|
|
"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 <percent-encoded-space>:0x<hex>.",
|
|
"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 <percent-encoded-space>:0x<hex>.",
|
|
"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 <percent-encoded-space>:0x<hex>.",
|
|
"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 <percent-encoded-space>:0x<hex>.",
|
|
"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 <percent-encoded-space>:0x<hex>.",
|
|
"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 <percent-encoded-space>:0x<hex>.",
|
|
"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 <percent-encoded-space>:0x<hex>.",
|
|
"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 <percent-encoded-space>:0x<hex>.",
|
|
"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 <percent-encoded-space>:0x<hex>.",
|
|
"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
|
|
}
|
|
}
|