Skip to content

Instantly share code, notes, and snippets.

@madordie
Last active September 1, 2020 08:08
Show Gist options
  • Save madordie/2078e41ec87d0943364e23b61abdc28c to your computer and use it in GitHub Desktop.
Save madordie/2078e41ec87d0943364e23b61abdc28c to your computer and use it in GitHub Desktop.
void __cdecl -[UIWindow sendEvent:](UIWindow *self, SEL a2, id a3)
{
void *v3; // r13
__int64 v4; // rax
void *v5; // rax
__int64 v6; // rax
char v7; // r15
char v8; // r12
char v9; // r14
char v10; // bl
void *v11; // rax
void *v12; // rax
void *v13; // rdi
void *v14; // rax
void *v15; // rax
void *v16; // rdi
void *v17; // rax
void *v18; // rax
void *v19; // rdi
__m128d v20; // xmm0
void *v21; // rax
char *v22; // r13
__int64 v23; // rbx
void *v24; // r14
char *v25; // rbx
__m128d v26; // xmm1
__m128d v27; // xmm1
void *v28; // rax
void *v29; // rax
void *v30; // rdi
__int64 v31; // rax
__int64 v32; // rax
void *v33; // rbx
void *v34; // rax
char *v35; // rax
char *v36; // r14
void *v37; // rax
__int64 v38; // rax
__int64 v39; // rax
void *v40; // rax
void *v41; // r14
void *v42; // rax
__int64 v43; // rax
void *v44; // r13
char *v45; // rdi
void *v46; // r14
unsigned __int64 v47; // r14
__int64 v48; // r15
void *v49; // r15
void *v50; // rax
__int64 v51; // r15
void *v52; // rax
void *v53; // r15
void *v54; // rax
__int64 v55; // rax
void *v56; // rax
void *v57; // r12
void *v58; // rax
__int64 v59; // rbx
void *v60; // rax
void *v61; // rax
void *v62; // rbx
void *v63; // rax
void *v64; // r12
void *v65; // rax
void *v66; // rbx
__int64 v67; // r15
unsigned __int64 v68; // r13
void *v69; // rdi
void *v70; // rdi
void *v71; // rdi
void *v72; // r15
void *v73; // rbx
void *v74; // rax
char *v75; // rbx
__int64 v76; // r14
void *v77; // rax
void *v78; // rbx
void *v79; // r15
__int64 v80; // rax
__int64 v81; // rax
void *v82; // r15
void *v83; // rax
void *v84; // rax
__int64 v85; // rbx
void *v86; // rax
void *v87; // r12
void *v88; // r14
void *v89; // rax
__int64 v90; // rax
__int64 v91; // rax
void *v92; // rax
void *v93; // rbx
void *v94; // r14
char *v95; // r15
void *v96; // rax
void *v97; // rbx
void *v98; // rax
UIResponder *v99; // rax
void *v100; // rbx
void *v101; // rax
void *v102; // rax
void *v103; // rax
void *v104; // rax
void *v105; // rax
void *v106; // rax
__int64 v107; // rdi
struct objc_object *v108; // rax
__int64 v109; // r14
struct objc_object *v110; // rax
__int64 v111; // rbx
__int128 v112; // [rsp+0h] [rbp-530h]
__int128 v113; // [rsp+10h] [rbp-520h]
__int128 v114; // [rsp+20h] [rbp-510h]
__int128 v115; // [rsp+30h] [rbp-500h]
__int128 v116; // [rsp+40h] [rbp-4F0h]
__int128 v117; // [rsp+50h] [rbp-4E0h]
__int128 v118; // [rsp+60h] [rbp-4D0h]
__int128 v119; // [rsp+70h] [rbp-4C0h]
void **v120; // [rsp+88h] [rbp-4A8h]
__int64 v121; // [rsp+90h] [rbp-4A0h]
__int64 (__fastcall *v122)(); // [rsp+98h] [rbp-498h]
void *v123; // [rsp+A0h] [rbp-490h]
__int64 v124; // [rsp+A8h] [rbp-488h]
__int64 v125; // [rsp+B0h] [rbp-480h]
__int64 v126; // [rsp+B8h] [rbp-478h]
__int64 v127; // [rsp+C0h] [rbp-470h]
__int64 v128; // [rsp+C8h] [rbp-468h]
__int64 v129; // [rsp+D0h] [rbp-460h]
__int64 v130; // [rsp+D8h] [rbp-458h]
__int128 v131; // [rsp+E0h] [rbp-450h]
__int128 v132; // [rsp+F0h] [rbp-440h]
__int128 v133; // [rsp+100h] [rbp-430h]
__int128 v134; // [rsp+110h] [rbp-420h]
__int64 v135; // [rsp+120h] [rbp-410h]
__int64 v136; // [rsp+128h] [rbp-408h]
__int64 v137; // [rsp+130h] [rbp-400h]
__int64 v138; // [rsp+138h] [rbp-3F8h]
__int64 v139; // [rsp+140h] [rbp-3F0h]
__int64 v140; // [rsp+148h] [rbp-3E8h]
__int64 v141; // [rsp+150h] [rbp-3E0h]
__int64 v142; // [rsp+158h] [rbp-3D8h]
__int64 v143; // [rsp+160h] [rbp-3D0h]
__int64 v144; // [rsp+168h] [rbp-3C8h]
void **v145; // [rsp+170h] [rbp-3C0h]
__int64 v146; // [rsp+178h] [rbp-3B8h]
__int64 (__fastcall *v147)(); // [rsp+180h] [rbp-3B0h]
void *v148; // [rsp+188h] [rbp-3A8h]
__int64 v149; // [rsp+190h] [rbp-3A0h]
void **v150; // [rsp+198h] [rbp-398h]
__int64 v151; // [rsp+1A0h] [rbp-390h]
__int64 (__fastcall *v152)(); // [rsp+1A8h] [rbp-388h]
void *v153; // [rsp+1B0h] [rbp-380h]
__int64 v154; // [rsp+1B8h] [rbp-378h]
void **v155; // [rsp+1C0h] [rbp-370h]
__int64 v156; // [rsp+1C8h] [rbp-368h]
__int64 (__fastcall *v157)(); // [rsp+1D0h] [rbp-360h]
void *v158; // [rsp+1D8h] [rbp-358h]
void *v159; // [rsp+1E0h] [rbp-350h]
__int64 v160; // [rsp+1E8h] [rbp-348h]
char *v161; // [rsp+1F0h] [rbp-340h]
void *v162; // [rsp+1F8h] [rbp-338h]
__int64 v163; // [rsp+200h] [rbp-330h]
__int64 v164; // [rsp+208h] [rbp-328h]
char *v165; // [rsp+210h] [rbp-320h]
char *v166; // [rsp+218h] [rbp-318h]
char *v167; // [rsp+220h] [rbp-310h]
char *v168; // [rsp+228h] [rbp-308h]
char *v169; // [rsp+230h] [rbp-300h]
char *v170; // [rsp+238h] [rbp-2F8h]
char *v171; // [rsp+240h] [rbp-2F0h]
char *v172; // [rsp+248h] [rbp-2E8h]
char *v173; // [rsp+250h] [rbp-2E0h]
char *v174; // [rsp+258h] [rbp-2D8h]
char *v175; // [rsp+260h] [rbp-2D0h]
char *v176; // [rsp+268h] [rbp-2C8h]
char *v177; // [rsp+270h] [rbp-2C0h]
char *v178; // [rsp+278h] [rbp-2B8h]
char *v179; // [rsp+280h] [rbp-2B0h]
char *v180; // [rsp+288h] [rbp-2A8h]
char *v181; // [rsp+290h] [rbp-2A0h]
char *v182; // [rsp+298h] [rbp-298h]
char *v183; // [rsp+2A0h] [rbp-290h]
__int64 v184; // [rsp+2A8h] [rbp-288h]
void *v185; // [rsp+2B0h] [rbp-280h]
__int64 v186; // [rsp+2B8h] [rbp-278h]
__int64 v187; // [rsp+2C0h] [rbp-270h]
__int64 v188; // [rsp+2C8h] [rbp-268h]
__int64 v189; // [rsp+2D0h] [rbp-260h]
__int64 v190; // [rsp+2D8h] [rbp-258h]
__int64 v191; // [rsp+2E0h] [rbp-250h]
char *v192; // [rsp+2E8h] [rbp-248h]
char *v193; // [rsp+2F0h] [rbp-240h]
char *v194; // [rsp+2F8h] [rbp-238h]
char *v195; // [rsp+300h] [rbp-230h]
char *v196; // [rsp+308h] [rbp-228h]
const char *v197; // [rsp+310h] [rbp-220h]
char *v198; // [rsp+318h] [rbp-218h]
char *v199; // [rsp+320h] [rbp-210h]
char *v200; // [rsp+328h] [rbp-208h]
char *v201; // [rsp+330h] [rbp-200h]
char *v202; // [rsp+338h] [rbp-1F8h]
char *v203; // [rsp+340h] [rbp-1F0h]
void *v204; // [rsp+348h] [rbp-1E8h]
void *v205; // [rsp+350h] [rbp-1E0h]
void *v206; // [rsp+358h] [rbp-1D8h]
char *v207; // [rsp+360h] [rbp-1D0h]
char *v208; // [rsp+368h] [rbp-1C8h]
void *v209; // [rsp+370h] [rbp-1C0h]
void *v210; // [rsp+378h] [rbp-1B8h]
char v211; // [rsp+380h] [rbp-1B0h]
char v212; // [rsp+400h] [rbp-130h]
__int64 v213; // [rsp+408h] [rbp-128h]
__int128 v214; // [rsp+410h] [rbp-120h]
__int128 v215; // [rsp+420h] [rbp-110h]
__int128 v216; // [rsp+430h] [rbp-100h]
char v217; // [rsp+480h] [rbp-B0h]
v3 = (void *)objc_retain(a3);
v4 = _UISetCurrentFallbackEnvironment(self, a2);
v184 = objc_unsafeClaimAutoreleasedReturnValue(v4);
v5 = objc_msgSend(&OBJC_CLASS___UITouchesEvent, "class");
if ( !(unsigned __int8)objc_msgSend(v3, "isKindOfClass:", v5) )
{
v60 = objc_msgSend(&OBJC_CLASS___UIPressesEvent, "class");
if ( (unsigned __int8)objc_msgSend(v3, "isKindOfClass:", v60) )
{
if ( (unsigned __int8)-[UIView isUserInteractionEnabled](self, "isUserInteractionEnabled") )
{
v61 = objc_msgSend(UIApp, "_gestureEnvironment");
v62 = (void *)objc_retainAutoreleasedReturnValue(v61);
objc_msgSend(v62, "_updateForEvent:window:", v3, self);
objc_release(v62);
-[UIWindow _sendButtonsForEvent:](self, "_sendButtonsForEvent:", v3);
}
goto LABEL_71;
}
v98 = objc_msgSend(&OBJC_CLASS___UIMoveEvent, "class");
if ( (unsigned __int8)objc_msgSend(v3, "isKindOfClass:", v98) )
{
v99 = -[UIWindow _focusResponder](self, "_focusResponder");
v100 = (void *)objc_retainAutoreleasedReturnValue(v99);
objc_msgSend(v3, "_sendEventToResponder:", v100);
}
else
{
v101 = objc_msgSend(&OBJC_CLASS___UIDragEvent, "class");
if ( !(unsigned __int8)objc_msgSend(v3, "isKindOfClass:", v101) )
{
v102 = objc_msgSend(&OBJC_CLASS___UIScrollEvent, "class");
if ( !(unsigned __int8)objc_msgSend(v3, "isKindOfClass:", v102) )
{
v103 = objc_msgSend(&OBJC_CLASS___UITransformEvent, "class");
if ( !(unsigned __int8)objc_msgSend(v3, "isKindOfClass:", v103) )
{
v104 = objc_msgSend(&OBJC_CLASS___UILookupEvent, "class");
if ( !(unsigned __int8)objc_msgSend(v3, "isKindOfClass:", v104) )
{
v105 = objc_msgSend(&OBJC_CLASS___UIHoverEvent, "class");
if ( !(unsigned __int8)objc_msgSend(v3, "isKindOfClass:", v105) )
{
v108 = -[UIWindow firstResponder](self, "firstResponder");
v109 = objc_retainAutoreleasedReturnValue(v108);
if ( !v109 )
{
v110 = -[UIWindow _deepestUnambiguousResponder](self, "_deepestUnambiguousResponder");
v111 = objc_retainAutoreleasedReturnValue(v110);
objc_release(0LL);
v109 = v111;
}
objc_msgSend(v3, "_sendEventToResponder:", v109);
v107 = v109;
goto LABEL_82;
}
objc_msgSend(v3, "setNeedsUpdateForWindow:", self);
}
}
}
}
v106 = objc_msgSend(UIApp, "_gestureEnvironment");
v100 = (void *)objc_retainAutoreleasedReturnValue(v106);
objc_msgSend(v100, "_updateForEvent:window:", v3, self);
}
v107 = (__int64)v100;
LABEL_82:
objc_release(v107);
goto LABEL_71;
}
v185 = v3;
v6 = objc_retain(v3);
v206 = (void *)objc_retain(v6);
v209 = (void *)objc_retain(self);
v7 = _UIInternalPreferenceUsesDefault_28(
&_UIInternalPreference_ShowTouches,
CFSTR("ShowTouches"),
&_UIInternalPreferenceUpdateBool);
v8 = byte_171C344;
v9 = _UIInternalPreferenceUsesDefault_28(
&_UIInternalPreference_ShowTouchesForAllProcesses,
CFSTR("ShowTouchesForAllProcesses"),
&_UIInternalPreferenceUpdateBool);
v10 = byte_171C34C;
if ( __updateTouchVisualisation_onceToken != -1 )
dispatch_once(&__updateTouchVisualisation_onceToken, &__block_literal_global_2418);
if ( v7 || !v8 )
{
if ( __updateTouchVisualisation_touchViewsInUse )
{
v216 = 0LL;
v215 = 0LL;
v214 = 0LL;
*(_OWORD *)&v212 = 0LL;
v63 = (void *)objc_retain(__updateTouchVisualisation_touchViewsInUse);
v64 = v63;
v65 = objc_msgSend(v63, "countByEnumeratingWithState:objects:count:", &v212, &v217, 16LL);
if ( v65 )
{
v66 = v65;
v67 = *(_QWORD *)v214;
do
{
v68 = 0LL;
do
{
if ( *(_QWORD *)v214 != v67 )
objc_enumerationMutation(v64);
objc_msgSend(*(void **)(v213 + 8 * v68++), "removeFromSuperview");
}
while ( v68 < (unsigned __int64)v66 );
v66 = objc_msgSend(v64, "countByEnumeratingWithState:objects:count:", &v212, &v217, 16LL);
}
while ( v66 );
}
objc_release(v64);
v69 = __updateTouchVisualisation_touchViewsMapTable;
__updateTouchVisualisation_touchViewsMapTable = 0LL;
objc_release(v69);
v70 = __updateTouchVisualisation_touchViewReusePool;
__updateTouchVisualisation_touchViewReusePool = 0LL;
objc_release(v70);
v71 = __updateTouchVisualisation_touchViewsInUse;
__updateTouchVisualisation_touchViewsInUse = 0LL;
objc_release(v71);
}
}
else if ( v10 != 0 && v9 == 0 || !__updateTouchVisualisation_shouldExcludeProcess )
{
if ( !__updateTouchVisualisation_touchViewsMapTable )
{
v11 = objc_msgSend(&OBJC_CLASS___NSMapTable, "weakToStrongObjectsMapTable");
v12 = (void *)objc_retainAutoreleasedReturnValue(v11);
v13 = __updateTouchVisualisation_touchViewsMapTable;
__updateTouchVisualisation_touchViewsMapTable = v12;
objc_release(v13);
v14 = objc_msgSend(&OBJC_CLASS___NSMutableSet, "set");
v15 = (void *)objc_retainAutoreleasedReturnValue(v14);
v16 = __updateTouchVisualisation_touchViewReusePool;
__updateTouchVisualisation_touchViewReusePool = v15;
objc_release(v16);
v17 = objc_msgSend(&OBJC_CLASS___NSMutableSet, "set");
v18 = (void *)objc_retainAutoreleasedReturnValue(v17);
v19 = __updateTouchVisualisation_touchViewsInUse;
__updateTouchVisualisation_touchViewsInUse = v18;
objc_release(v19);
}
v20 = 0LL;
v115 = 0LL;
v114 = 0LL;
v113 = 0LL;
v112 = 0LL;
v21 = objc_msgSend(v206, "allTouches", 0LL);
v204 = (void *)objc_retainAutoreleasedReturnValue(v21);
v202 = (char *)objc_msgSend(v204, "countByEnumeratingWithState:objects:count:", &v112, &v217, 16LL);
if ( v202 )
{
v199 = *(char **)v113;
do
{
v22 = "phase";
v198 = "force";
v203 = "locationInView:";
v200 = "objectForKey:";
v192 = "setTransform:";
v193 = "setPosition:";
v165 = "superview";
v195 = "addSubview:";
v166 = "animateWithDuration:delay:options:animations:completion:";
v194 = "removeObject:";
v167 = "removeObjectForKey:";
v168 = "objectEnumerator";
v169 = "nextObject";
v175 = "count";
v170 = "anyObject";
v176 = "initWithFrame:";
v177 = "setUserInteractionEnabled:";
v196 = "colorWithWhite:alpha:";
v178 = "setBackgroundColor:";
v179 = "layer";
v180 = "CGColor";
v181 = "setBorderColor:";
v182 = "setBorderWidth:";
v183 = "setCornerRadius:";
v171 = "setAlpha:";
v172 = "setObject:forKey:";
v173 = "addObject:";
v174 = "animateWithDuration:animations:";
v23 = 0LL;
v207 = "phase";
do
{
if ( *(char **)v113 != v199 )
objc_enumerationMutation(v204);
v197 = (const char *)v23;
v24 = *(void **)(*((_QWORD *)&v112 + 1) + 8 * v23);
v25 = (char *)objc_msgSend(*(void **)(*((_QWORD *)&v112 + 1) + 8 * v23), v22);
objc_msgSend(v24, v198);
v26.m128d_f64[0] = 0.0;
v27 = _mm_cmplt_sd(v26, v20);
v20.m128d_f64[0] = v20.m128d_f64[0] * 0.6 + 0.4;
v20 = _mm_or_pd(_mm_andn_pd(v27, (__m128d)0x3FF0000000000000uLL), _mm_and_pd(v20, v27));
CGAffineTransformMakeScale(&v186);
objc_msgSend(v24, v203, v209, v20.m128d_f64[0]);
v208 = *(char **)&v20.m128d_f64[0];
v210 = *(void **)&v20.m128d_f64[0];
if ( v25 )
{
v28 = objc_msgSend(__updateTouchVisualisation_touchViewsMapTable, v200, v24);
v29 = (void *)objc_retainAutoreleasedReturnValue(v28);
if ( !v29 )
goto LABEL_24;
v30 = v29;
if ( (unsigned __int64)(v25 - 3) <= 1 )
{
v210 = &OBJC_CLASS___UIView;
v145 = _NSConcreteStackBlock;
v146 = 3254779904LL;
v147 = ____updateTouchVisualisation_block_invoke_2;
v148 = &__block_descriptor_40_e8_32s_e5_v8__0l;
v31 = objc_retain(v29);
v149 = v31;
v150 = _NSConcreteStackBlock;
v151 = 3254779904LL;
v152 = ____updateTouchVisualisation_block_invoke_3;
v153 = &__block_descriptor_40_e8_32s_e8_v12__0c8l;
v32 = objc_retain(v31);
v33 = (void *)v32;
v154 = v32;
v20 = (__m128d)0x3FBEB851EB851EB8uLL;
objc_msgSend(v210, v166, 4LL, &v145, &v150, 0.12, 0.0);
v205 = v33;
objc_msgSend(__updateTouchVisualisation_touchViewsInUse, v194, v33);
objc_msgSend(__updateTouchVisualisation_touchViewsMapTable, v167, v24);
v34 = objc_msgSend(__updateTouchVisualisation_touchViewsMapTable, v168);
v35 = (char *)objc_retainAutoreleasedReturnValue(v34);
v36 = v35;
v37 = objc_msgSend(v35, v169);
v38 = objc_retainAutoreleasedReturnValue(v37);
if ( v38 )
{
objc_release(v38);
goto LABEL_20;
}
v45 = v36;
v46 = objc_msgSend(__updateTouchVisualisation_touchViewsInUse, v175);
objc_release(v45);
v22 = v207;
if ( v46 )
{
v20 = 0LL;
v134 = 0LL;
v133 = 0LL;
v132 = 0LL;
v131 = 0LL;
v36 = (char *)objc_retain(__updateTouchVisualisation_touchViewsInUse);
v210 = objc_msgSend(v36, "countByEnumeratingWithState:objects:count:", &v131, &v212, 16LL);
if ( v210 )
{
v208 = *(char **)v132;
v201 = v36;
do
{
v47 = 0LL;
do
{
if ( *(char **)v132 != v208 )
objc_enumerationMutation(v201);
v48 = *(_QWORD *)(*((_QWORD *)&v131 + 1) + 8 * v47);
objc_msgSend(*(void **)(*((_QWORD *)&v131 + 1) + 8 * v47), "removeFromSuperview");
objc_msgSend(__updateTouchVisualisation_touchViewReusePool, "addObject:", v48);
++v47;
}
while ( v47 < (unsigned __int64)v210 );
v36 = v201;
v210 = objc_msgSend(v201, "countByEnumeratingWithState:objects:count:", &v131, &v212, 16LL);
}
while ( v210 );
LABEL_20:
v22 = v207;
}
objc_release(v36);
}
objc_release(v154);
objc_release(v149);
v30 = v205;
goto LABEL_41;
}
objc_msgSend(v29, v192, v186, v187, v188, v189, v190, v191);
v20 = (__m128d)(unsigned __int64)v208;
objc_msgSend(v30, v193, *(double *)&v208, *(double *)&v210);
v40 = objc_msgSend(v30, v165);
v41 = (void *)objc_retainAutoreleasedReturnValue(v40);
objc_release(v41);
if ( v41 != v209 )
objc_msgSend(v209, v195, v30);
}
else
{
v39 = NSClassFromString(CFSTR("_UIRootWindow"));
if ( (unsigned __int8)objc_msgSend(v209, "isKindOfClass:", v39) )
{
LABEL_24:
v30 = 0LL;
goto LABEL_41;
}
v42 = objc_msgSend(__updateTouchVisualisation_touchViewReusePool, v170);
v43 = objc_retainAutoreleasedReturnValue(v42);
if ( v43 )
{
v44 = (void *)v43;
objc_msgSend(__updateTouchVisualisation_touchViewReusePool, v194, v43);
}
else
{
v49 = (void *)objc_alloc(&OBJC_CLASS___UIView);
v161 = v208;
v162 = v210;
v163 = 0LL;
v164 = 0LL;
CGRectInset(&v141);
v44 = objc_msgSend(v49, v176, -22.0, -22.0, v141, v142, v143, v144);
objc_msgSend(v44, v177, 0LL);
v50 = objc_msgSend(&OBJC_CLASS___UIColor, v196, 1.0, 0.6);
v51 = objc_retainAutoreleasedReturnValue(v50);
objc_msgSend(v44, v178, v51);
objc_release(v51);
v52 = objc_msgSend(v44, v179);
v53 = (void *)objc_retainAutoreleasedReturnValue(v52);
v54 = objc_msgSend(&OBJC_CLASS___UIColor, v196, 0.0, 0.6);
v55 = objc_retainAutoreleasedReturnValue(v54);
v56 = (void *)objc_retainAutorelease(v55);
v57 = v56;
v58 = objc_msgSend(v56, v180);
objc_msgSend(v53, v181, v58);
objc_release(v57);
objc_msgSend(v53, v182, 2.0);
objc_msgSend(v53, v183, 22.0);
objc_release(v53);
}
CGAffineTransformMakeScale(&v135);
objc_msgSend(v44, v192, 0.001, 0.001, v135, v136, v137, v138, v139, v140);
objc_msgSend(v44, v171, 0.0);
objc_msgSend(v44, v193, *(double *)&v208, *(double *)&v210);
objc_msgSend(v209, v195, v44);
objc_msgSend(__updateTouchVisualisation_touchViewsMapTable, v172, v44, v24);
objc_msgSend(__updateTouchVisualisation_touchViewsInUse, v173, v44);
v120 = _NSConcreteStackBlock;
v121 = 3254779904LL;
v122 = ____updateTouchVisualisation_block_invoke_2452;
v123 = &__block_descriptor_88_e8_32s_e5_v8__0l;
v59 = objc_retain(v44);
v124 = v59;
v125 = v186;
v126 = v187;
v127 = v188;
v128 = v189;
v129 = v190;
v130 = v191;
v20 = (__m128d)0x3FBEB851EB851EB8uLL;
objc_msgSend(&OBJC_CLASS___UIView, v174, &v120, 0.12);
objc_release(v124);
v30 = (void *)v59;
v22 = v207;
}
LABEL_41:
objc_release(v30);
v23 = (__int64)(v197 + 1);
}
while ( v197 + 1 < v202 );
v202 = (char *)objc_msgSend(v204, "countByEnumeratingWithState:objects:count:", &v112, &v217, 16LL);
}
while ( v202 );
}
objc_release(v204);
}
v72 = v209;
objc_release(v209);
v73 = v206;
objc_release(v206);
v116 = 0LL;
v117 = 0LL;
v118 = 0LL;
v119 = 0LL;
v74 = objc_msgSend(v73, "_viewsForWindow:", v72);
v205 = (void *)objc_retainAutoreleasedReturnValue(v74);
v203 = (char *)objc_msgSend(v205, "countByEnumeratingWithState:objects:count:", &v116, &v211, 16LL);
if ( v203 )
{
v204 = *(void **)v117;
do
{
v199 = "_touchesForView:withPhase:";
v200 = "count";
v207 = "_fadeCalloutBarIfNeededForTouchInView:";
v75 = 0LL;
v202 = "layer";
do
{
if ( *(void **)v117 != v204 )
objc_enumerationMutation(v205);
v198 = v75;
v76 = *(_QWORD *)(*((_QWORD *)&v116 + 1) + 8LL * (_QWORD)v75);
v77 = objc_msgSend(v206, v199, *(_QWORD *)(*((_QWORD *)&v116 + 1) + 8LL * (_QWORD)v75), 0LL);
v78 = (void *)objc_retainAutoreleasedReturnValue(v77);
v79 = objc_msgSend(v78, v200);
objc_release(v78);
if ( v79 )
{
objc_msgSend(v209, v207, v76);
v80 = objc_retainAutorelease(v76);
v81 = objc_retain(v80);
if ( v81 )
{
v82 = (void *)v81;
v208 = "animationKeys";
v201 = "enumerateObjectsUsingBlock:";
v197 = "superview";
do
{
v83 = objc_msgSend(v82, v202);
v84 = (void *)objc_retainAutoreleasedReturnValue(v83);
v85 = (__int64)v84;
v86 = objc_msgSend(v84, v208);
v87 = (void *)objc_retainAutoreleasedReturnValue(v86);
v155 = _NSConcreteStackBlock;
v156 = 3254779904LL;
v157 = __22__UIWindow_sendEvent___block_invoke;
v158 = &__block_descriptor_48_e8_32s40s_e25_v32__0__NSString_8Q16_c24l;
v159 = v82;
v88 = (void *)objc_retain(v82);
v160 = v85;
v210 = (void *)objc_retain(v85);
objc_msgSend(v87, v201, &v155);
objc_release(v87);
v89 = objc_msgSend(v88, v197);
v90 = objc_retainAutoreleasedReturnValue(v89);
v91 = objc_autorelease(v90);
v82 = (void *)objc_retain(v91);
objc_release(v88);
objc_release(v160);
objc_release(v159);
objc_release(v210);
}
while ( v82 );
}
}
v75 = v198 + 1;
}
while ( v198 + 1 < v203 );
v203 = (char *)objc_msgSend(v205, "countByEnumeratingWithState:objects:count:", &v116, &v211, 16LL);
}
while ( v203 );
}
objc_release(v205);
v92 = objc_msgSend(UIApp, "_gestureEnvironment");
v93 = (void *)objc_retainAutoreleasedReturnValue(v92);
v94 = v206;
v95 = (char *)v209;
objc_msgSend(v93, "_updateForEvent:window:", v206, v209);
objc_release(v93);
v96 = objc_msgSend(v94, "_buttonMask");
if ( !v96 || (unsigned __int8)v96 & 1 )
objc_msgSend(v95, "_sendTouchesForEvent:", v206);
v97 = v206;
objc_msgSend(v206, "timestamp");
*(_QWORD *)(v95 + 604) = 0LL;
objc_release(v97);
v3 = v185;
LABEL_71:
_UIRestorePreviousFallbackEnvironment(v184);
objc_release(v3);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment