Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save madordie/02e112839f2c62e8a9881b9d2a195f3b to your computer and use it in GitHub Desktop.
Save madordie/02e112839f2c62e8a9881b9d2a195f3b to your computer and use it in GitHub Desktop.
void __cdecl -[UITableView _endCellAnimationsWithContext:](UITableView *self, SEL a2, id a3)
{
__int64 v3; // rax
char *v4; // rcx
__int64 v5; // rdi
void *v6; // rax
void *v7; // rax
void *v8; // rbx
void *v9; // rax
__int64 v10; // r15
void *v11; // rdi
void *v12; // rdi
bool v13; // zf
__int64 v14; // rax
__int64 v15; // rax
__int64 v16; // r13
__int64 v17; // rax
const char *v18; // rbx
const char *v19; // rbx
void *v20; // rax
__int64 v21; // r15
char *v22; // r15
void *v23; // rax
void *v24; // rax
void *v25; // rbx
void *v26; // rax
void *v27; // rax
void *v28; // rax
void *v29; // rbx
void *v30; // rax
void *v31; // rax
void *v32; // rbx
void *v33; // rdi
void (__fastcall *v34)(__int64); // r15
void *v35; // rax
void *v36; // rbx
char *v37; // rbx
__int64 v38; // rax
char *v39; // rbx
char *v40; // r14
char *v41; // rbx
char *v42; // rax
size_t v43; // rax
size_t v44; // rbx
__int64 v45; // rax
char *v46; // r12
char v47; // bl
char v48; // al
__int64 v49; // rax
__int64 v50; // r14
const __CFString *v51; // rdi
__int64 v52; // r15
void *v53; // rax
void *v54; // r14
__int64 v55; // rdi
__int64 v56; // rax
__int64 v57; // rbx
char *v58; // rbx
__int64 v59; // rax
char *v60; // rbx
signed __int64 v61; // rax
char *v62; // rax
signed __int64 v63; // rax
size_t v64; // rax
unsigned __int64 v65; // r14
void *v66; // r15
void *v67; // rax
void *v68; // rbx
void *v69; // rax
char *v70; // rax
void *v71; // rax
char *v72; // rax
__int64 v73; // r12
char *v74; // rcx
void *v75; // r14
char *v76; // r15
void *v77; // rax
__int64 v78; // rbx
void *v79; // r12
char v80; // al
void *v81; // rbx
void *v82; // rax
__int64 v83; // r14
void *v84; // r15
char v85; // al
char *v86; // rbx
void *v87; // rbx
char *v88; // r14
void *v89; // rdi
char *v90; // r14
void *v91; // rax
void *v92; // rbx
void *v93; // r12
void *v94; // rax
void *v95; // rbx
char *v96; // r13
void *v97; // rbx
void *v98; // rdi
void *(**v99)(void *, const char *, ...); // r14
const char *v100; // rax
unsigned __int64 v101; // r12
void *v102; // rbx
void *v103; // rax
char *v104; // rax
void *v105; // rax
void *v106; // r12
char *v107; // r14
void *(**v108)(void *, const char *, ...); // r15
void *v109; // rax
__int64 v110; // rax
void *(**v111)(void *, const char *, ...); // r14
char *v112; // r13
__int64 v113; // rax
__int64 v114; // rbx
char v115; // r12
char v116; // r15
__int64 v117; // rax
__int64 v118; // rbx
const __CFString *v119; // rdi
__int64 v120; // rax
__int64 v121; // rax
__int64 v122; // r12
char *v123; // r14
__int64 v124; // rax
__int64 v125; // rbx
char *v126; // r12
char *v127; // rax
char *v128; // r12
char v129; // al
void *v130; // r13
char *v131; // r13
char *v132; // r12
__int64 v133; // r15
void *v134; // rbx
__int64 v135; // rax
signed __int64 v136; // rax
unsigned __int64 v137; // r12
void *v138; // rbx
__int64 v139; // rax
__int64 v140; // rax
__int64 v141; // r13
__int64 v142; // rax
__int64 v143; // rbx
char v144; // r15
char *v145; // rax
__int64 v146; // rax
unsigned __int64 v147; // r15
unsigned __int64 v148; // r14
void *v149; // rax
void *v150; // rbx
char v151; // r13
__int64 v152; // rax
__int64 v153; // rbx
char *v154; // r12
char v155; // al
signed __int64 v156; // rax
__int64 v157; // r15
signed int v158; // er13
void *v159; // rbx
__int64 v160; // rax
__int64 v161; // r12
__int64 v162; // rax
signed int v163; // ebx
__int64 v164; // r13
__int64 v165; // r14
__int64 v166; // rdi
__int64 v167; // rax
void *v168; // r14
signed int v169; // ebx
char v170; // r13
void *v171; // rdi
__int64 v172; // rax
__int64 v173; // rbx
char *v174; // r12
char *v175; // rbx
__int64 v176; // rax
__int64 v177; // r12
const __CFString *v178; // rdi
__int64 v179; // rax
__int64 v180; // r12
__int64 v181; // rax
__int64 v182; // rdi
__int64 v183; // rax
__int64 v184; // r12
const __CFString *v185; // rdi
__int64 v186; // r13
__int64 v187; // rax
__int64 v188; // r12
__int64 v189; // rax
__int64 v190; // rax
__int64 v191; // rax
__int64 v192; // r15
const __CFString *v193; // rdi
__int64 v194; // r14
void *v195; // rax
void *v196; // r15
void *v197; // rax
__int64 v198; // rdi
char *v199; // r12
char *v200; // rbx
__int64 v201; // rax
char *v202; // rax
__int64 v203; // rax
void *v204; // r12
char *v205; // rbx
__int64 v206; // rax
__int64 v207; // rax
char *v208; // r13
__int64 v209; // rax
__int64 v210; // rbx
void (__fastcall *v211)(__int64); // r12
char v212; // r15
__int64 v213; // rax
__int64 v214; // rbx
const __CFString *v215; // rdi
__int64 v216; // r13
__int64 v217; // rax
__int64 v218; // rax
__int64 v219; // r15
__int64 v220; // rax
__int64 v221; // rbx
char *v222; // r14
char *v223; // rax
char *v224; // rbx
char v225; // al
signed __int64 v226; // rax
__int64 v227; // rbx
signed int v228; // er15
__int64 v229; // rax
__int64 v230; // r12
__int64 v231; // rax
__int64 v232; // r13
__int64 v233; // r14
__int64 v234; // rax
void *v235; // r14
char v236; // r13
void *v237; // rdi
__int64 v238; // rax
char *v239; // rbx
char *v240; // r13
void *(**v241)(void *, const char *, ...); // r15
char *v242; // rbx
char *v243; // r14
__int64 v244; // rax
__int64 v245; // r14
char *v246; // rbx
__int64 v247; // rax
signed __int64 v248; // rax
unsigned __int64 v249; // r12
char *v250; // rbx
__int64 v251; // rax
__int64 v252; // rax
__int64 v253; // r13
__int64 v254; // rax
__int64 v255; // rbx
char v256; // r15
__int64 v257; // rax
char *v258; // rbx
__int64 v259; // rax
unsigned __int64 v260; // r15
unsigned __int64 v261; // r14
void *v262; // rax
void *v263; // rbx
char v264; // r13
__int64 v265; // rax
__int64 v266; // rax
__int64 v267; // rbx
const __CFString *v268; // rdi
__int64 v269; // rax
char *v270; // rbx
__int64 v271; // rax
__int64 v272; // rax
__int64 v273; // r14
const __CFString *v274; // rdi
__int64 v275; // rax
void *v276; // r12
__int64 v277; // r14
__int64 v278; // rax
__int64 v279; // rax
char *v280; // r13
char *v281; // r14
__int64 v282; // rax
__int64 v283; // rbx
const __CFString *v284; // rdi
__int64 v285; // r14
void *v286; // rax
void *v287; // r15
void *v288; // rbx
void *v289; // rax
__int64 v290; // rdi
void *v291; // rbx
char *v292; // rdx
__int64 v293; // rax
const char *v294; // rax
const char *v295; // r12
__int64 v296; // rax
char *v297; // rbx
__int64 v298; // rax
char *v299; // r12
char *v300; // r13
char *v301; // rbx
char *v302; // r13
signed __int64 v303; // rax
void *v304; // rax
__int64 v305; // rbx
const __CFString *v306; // rdi
__int64 v307; // r14
void *v308; // rax
void *v309; // r12
void *v310; // rax
void *v311; // rax
void *v312; // rax
__int64 v313; // rbx
const __CFString *v314; // rdi
__int64 v315; // r14
void *v316; // rax
void *v317; // r15
void *v318; // rbx
void *v319; // rax
char *v320; // r12
void *v321; // rax
__int64 v322; // rbx
const __CFString *v323; // rdi
__int64 v324; // r15
void *v325; // rax
void *v326; // r14
void *v327; // rax
void *v328; // rax
char *v329; // r14
void *v330; // rax
void *v331; // rax
char *v332; // r13
void *v333; // rbx
char *v334; // rax
void *v335; // r13
char *v336; // rbx
void *v337; // rax
char *v338; // rax
char *v339; // rbx
void *v340; // rax
char *v341; // r13
void *v342; // rax
__int64 v343; // r12
size_t v344; // r15
const char *v345; // rsi
void *v346; // r15
char v347; // al
char *v348; // r12
void *v349; // rax
__int64 v350; // rbx
const __CFString *v351; // rdi
__int64 v352; // r13
void *v353; // rax
void *v354; // rax
void *v355; // r14
char *v356; // rbx
void *v357; // rax
void *v358; // rax
__int64 v359; // rbx
const __CFString *v360; // rdi
void *v361; // rax
void *v362; // rax
void *v363; // rax
void *v364; // rdi
void *v365; // rax
void *v366; // rax
__int64 v367; // rbx
char *v368; // r13
char *v369; // rax
void *v370; // rax
__int64 v371; // rbx
const __CFString *v372; // rdi
__int64 v373; // r15
void *v374; // rax
void *v375; // r14
char *v376; // rbx
void *v377; // rax
void *v378; // rax
__int64 v379; // r12
const __CFString *v380; // rdi
void *v381; // rax
void *v382; // r12
void *v383; // rax
__int64 v384; // rax
__int64 v385; // rbx
const __CFString *v386; // rdi
void *v387; // rax
void *v388; // r13
char *v389; // rbx
void *v390; // rax
void *v391; // rdi
__int64 v392; // rdi
void *v393; // r12
__int64 v394; // rax
__int64 v395; // rbx
__int64 v396; // r14
__int64 v397; // r15
__int64 v398; // rax
char *v399; // rbx
void *(**v400)(void *, const char *, ...); // r13
signed __int64 v401; // r14
char *v402; // r15
__int64 v403; // rbx
unsigned __int64 v404; // r13
void *v405; // r12
void *v406; // rax
void *v407; // rbx
char *v408; // rax
void *v409; // rax
__int64 v410; // rbx
char *v411; // rbx
void *v412; // r15
void *v413; // rax
void *v414; // rax
char *v415; // r13
void *v416; // rax
__int64 v417; // rdi
size_t v418; // r15
size_t v419; // rbx
unsigned __int64 v420; // r14
void *v421; // r13
void *v422; // rax
void *v423; // r15
char *v424; // r12
char v425; // al
char *v426; // r15
char *v427; // rcx
_QWORD *v428; // rax
int v429; // eax
char *v430; // r12
void *v431; // rax
void *v432; // rbx
signed __int64 v433; // r13
void *v434; // rax
__int64 v435; // r15
const __CFString *v436; // rdi
__int64 v437; // r13
void *v438; // rax
void *v439; // r15
void *v440; // rax
__int64 v441; // r15
const __CFString *v442; // rdi
__int64 v443; // r13
void *v444; // rax
void *v445; // r15
void *v446; // rax
__int64 v447; // rbx
const __CFString *v448; // rdi
signed __int64 v449; // r12
__int64 v450; // r13
void *v451; // rax
void *v452; // r15
__int64 v453; // rdi
void *v454; // rax
__int64 v455; // rbx
const __CFString *v456; // rdi
signed __int64 v457; // r12
__int64 v458; // r13
void *v459; // rax
void *v460; // r15
__int64 v461; // rdi
char *v462; // rax
size_t v463; // rdx
__int64 v464; // r15
char *v465; // rcx
char *v466; // rdi
__int64 v467; // r13
__int64 v468; // r12
void *v469; // rax
__int64 v470; // r10
__int64 v471; // r11
__int64 v472; // r14
__int64 v473; // rbx
void *v474; // rax
__int64 v475; // rbx
void *v476; // rax
__int64 v477; // rbx
const __CFString *v478; // rdi
__int64 v479; // r12
void *v480; // rax
char *v481; // r14
char *v482; // rbx
void *v483; // r13
__int64 v484; // rdi
__int64 v485; // rdi
__int64 v486; // rdi
__int64 v487; // rdi
__int64 v488; // rdi
char v489; // al
void *v490; // rdi
char *v491; // rcx
void *v492; // rbx
unsigned __int64 v493; // r12
void *v494; // rax
__int64 v495; // r13
__int128 v496; // [rsp+0h] [rbp-820h]
__int128 v497; // [rsp+10h] [rbp-810h]
__int128 v498; // [rsp+20h] [rbp-800h]
__int128 v499; // [rsp+30h] [rbp-7F0h]
__int128 v500; // [rsp+40h] [rbp-7E0h]
__int128 v501; // [rsp+50h] [rbp-7D0h]
__int128 v502; // [rsp+60h] [rbp-7C0h]
__int128 v503; // [rsp+70h] [rbp-7B0h]
__int128 v504; // [rsp+80h] [rbp-7A0h]
__int128 v505; // [rsp+90h] [rbp-790h]
__int128 v506; // [rsp+A0h] [rbp-780h]
__int128 v507; // [rsp+B0h] [rbp-770h]
__int128 v508; // [rsp+C0h] [rbp-760h]
__int128 v509; // [rsp+D0h] [rbp-750h]
__int128 v510; // [rsp+E0h] [rbp-740h]
__int128 v511; // [rsp+F0h] [rbp-730h]
__int128 v512; // [rsp+100h] [rbp-720h]
__int128 v513; // [rsp+110h] [rbp-710h]
__int128 v514; // [rsp+120h] [rbp-700h]
__int128 v515; // [rsp+130h] [rbp-6F0h]
__int128 v516; // [rsp+140h] [rbp-6E0h]
__int128 v517; // [rsp+150h] [rbp-6D0h]
__int128 v518; // [rsp+160h] [rbp-6C0h]
__int128 v519; // [rsp+170h] [rbp-6B0h]
__int128 v520; // [rsp+180h] [rbp-6A0h]
__int128 v521; // [rsp+190h] [rbp-690h]
__int128 v522; // [rsp+1A0h] [rbp-680h]
__int128 v523; // [rsp+1B0h] [rbp-670h]
__int128 v524; // [rsp+1C0h] [rbp-660h]
__int128 v525; // [rsp+1D0h] [rbp-650h]
__int128 v526; // [rsp+1E0h] [rbp-640h]
__int128 v527; // [rsp+1F0h] [rbp-630h]
__int128 v528; // [rsp+200h] [rbp-620h]
__int128 v529; // [rsp+210h] [rbp-610h]
__int64 v530; // [rsp+220h] [rbp-600h]
void *v531; // [rsp+228h] [rbp-5F8h]
__int64 v532; // [rsp+230h] [rbp-5F0h]
void *v533; // [rsp+238h] [rbp-5E8h]
char *v534; // [rsp+240h] [rbp-5E0h]
void *v535; // [rsp+248h] [rbp-5D8h]
__int128 v536; // [rsp+250h] [rbp-5D0h]
__int128 v537; // [rsp+260h] [rbp-5C0h]
__int64 v538; // [rsp+278h] [rbp-5A8h]
__int64 v539; // [rsp+280h] [rbp-5A0h]
const char *v540; // [rsp+288h] [rbp-598h]
void *v541; // [rsp+290h] [rbp-590h]
_QWORD *v542; // [rsp+298h] [rbp-588h]
char *v543; // [rsp+2A0h] [rbp-580h]
char *v544; // [rsp+2A8h] [rbp-578h]
char *v545; // [rsp+2B0h] [rbp-570h]
char *v546; // [rsp+2B8h] [rbp-568h]
char *v547; // [rsp+2C0h] [rbp-560h]
char *v548; // [rsp+2C8h] [rbp-558h]
char *v549; // [rsp+2D0h] [rbp-550h]
const char *v550; // [rsp+2D8h] [rbp-548h]
char *v551; // [rsp+2E0h] [rbp-540h]
void *v552; // [rsp+2E8h] [rbp-538h]
char *v553; // [rsp+2F0h] [rbp-530h]
char *v554; // [rsp+2F8h] [rbp-528h]
char *v555; // [rsp+300h] [rbp-520h]
char *v556; // [rsp+308h] [rbp-518h]
void *v557; // [rsp+310h] [rbp-510h]
char v558; // [rsp+31Fh] [rbp-501h]
char *v559; // [rsp+320h] [rbp-500h]
size_t v560; // [rsp+328h] [rbp-4F8h]
char *v561; // [rsp+330h] [rbp-4F0h]
void *v562; // [rsp+338h] [rbp-4E8h]
char *v563; // [rsp+340h] [rbp-4E0h]
void *v564; // [rsp+348h] [rbp-4D8h]
char *v565; // [rsp+350h] [rbp-4D0h]
char *v566; // [rsp+358h] [rbp-4C8h]
char *v567; // [rsp+360h] [rbp-4C0h]
size_t v568; // [rsp+368h] [rbp-4B8h]
char *v569; // [rsp+370h] [rbp-4B0h]
char *v570; // [rsp+378h] [rbp-4A8h]
SEL v571; // [rsp+380h] [rbp-4A0h]
char *v572; // [rsp+388h] [rbp-498h]
char *v573; // [rsp+390h] [rbp-490h]
char *v574; // [rsp+398h] [rbp-488h]
char *v575; // [rsp+3A0h] [rbp-480h]
char *v576; // [rsp+3A8h] [rbp-478h]
char *v577; // [rsp+3B0h] [rbp-470h]
char *v578; // [rsp+3B8h] [rbp-468h]
char *v579; // [rsp+3C0h] [rbp-460h]
void *v580; // [rsp+3C8h] [rbp-458h]
char v581; // [rsp+3D0h] [rbp-450h]
char v582; // [rsp+450h] [rbp-3D0h]
char v583; // [rsp+4D0h] [rbp-350h]
char v584; // [rsp+550h] [rbp-2D0h]
char v585; // [rsp+5D0h] [rbp-250h]
char v586; // [rsp+650h] [rbp-1D0h]
char v587; // [rsp+6D0h] [rbp-150h]
char v588; // [rsp+750h] [rbp-D0h]
__int128 v589; // [rsp+7D0h] [rbp-50h]
__int128 v590; // [rsp+7E0h] [rbp-40h]
v571 = a2;
v3 = objc_retain(a3);
v4 = (char *)self;
v539 = v3;
v580 = self;
if ( _bittest((const signed __int32 *)&self->_tableFlags + 5, 0xBu) )
{
objc_msgSend(*(void **)((char *)&self->_prefetchDataSource + 4), "cancel");
v5 = *(_QWORD *)((char *)v580 + 2740);
*(_QWORD *)((char *)v580 + 2740) = 0LL;
objc_release(v5);
v4 = (char *)v580;
}
objc_msgSend(*(void **)(v4 + 2868), "forceReset");
objc_msgSend(*(void **)((char *)v580 + 2876), "beginIgnoringDrags");
v558 = (unsigned __int64)objc_msgSend(v580, "_isScrolledToTop");
v6 = objc_msgSend(v580, "_indexPathsForVisibleRowsUsingPresentationValues:", 1LL);
v7 = (void *)objc_retainAutoreleasedReturnValue(v6);
v8 = v7;
v9 = objc_msgSend(v7, "firstObject");
v10 = objc_retainAutoreleasedReturnValue(v9);
objc_release(v8);
v11 = v580;
if ( !_bittest64((const signed __int64 *)((char *)v580 + 2812), 0x3Eu) )
{
objc_msgSend(v580, "_storePreReloadStateForRestoringContentOffsetWithFirstVisibleIndexPath:", v10);
v11 = v580;
}
objc_msgSend(v11, "_beginSuspendingUpdates");
v537 = *((_OWORD *)&CGRectNull + 1);
*((_QWORD *)&v536 + 1) = *((_QWORD *)&CGRectNull + 1);
*(_QWORD *)&v536 = CGRectNull;
v542 = (_QWORD *)(&stru_7D8 + 20);
v12 = v580;
v535 = objc_msgSend(*(void **)((char *)v580 + 2028), "copy");
v13 = *(_QWORD *)((char *)v580 + 1772) == 0LL;
v538 = v10;
if ( v13 )
{
v579 = (_BYTE *)(&stru_8C8 + 4);
}
else
{
v14 = ((__int64 (__fastcall *)(void *, const char *))objc_msgSend)(v580, "_screen");
v15 = objc_retainAutoreleasedReturnValue(v14);
v16 = v15;
v17 = ((__int64 (__fastcall *)(__int64, const char *))objc_msgSend)(v15, "focusedView");
v18 = (const char *)objc_retainAutoreleasedReturnValue(v17);
objc_release(v16);
v540 = v18;
if ( (unsigned __int8)((__int64 (__fastcall *)(const char *, const char *, void *))objc_msgSend)(
v18,
"isDescendantOfView:",
v580) )
{
v19 = v540;
if ( v540 )
{
objc_msgSend_stret(&v528, v540, "bounds");
}
else
{
v529 = 0LL;
v528 = 0LL;
}
v20 = objc_msgSend(v580, "window");
v21 = objc_retainAutoreleasedReturnValue(v20);
if ( v19 )
{
objc_msgSend_stret(&v589, v19, "convertRect:toView:", v21, v528, v529);
}
else
{
v590 = 0LL;
v589 = 0LL;
}
v537 = v590;
v536 = v589;
objc_release(v21);
}
v22 = (char *)v580;
v557 = objc_msgSend(*(void **)((char *)v580 + 1772), "copy");
v23 = objc_msgSend(v22, "_arrayForUpdateAction:", 1LL);
v24 = (void *)objc_retainAutoreleasedReturnValue(v23);
v25 = v24;
v26 = objc_msgSend(v24, "sortedArrayUsingSelector:", "inverseCompareIndexPaths:");
v561 = (char *)objc_retainAutoreleasedReturnValue(v26);
objc_release(v25);
v27 = objc_msgSend(v22, "_arrayForUpdateAction:", 0LL);
v28 = (void *)objc_retainAutoreleasedReturnValue(v27);
v29 = v28;
v30 = objc_msgSend(v28, "sortedArrayUsingSelector:", "compareIndexPaths:");
v548 = (char *)objc_retainAutoreleasedReturnValue(v30);
objc_release(v29);
v31 = objc_msgSend(*(void **)(v22 + 2244), "sortedArrayUsingSelector:", "compareIndexPaths:");
v32 = (void *)objc_retainAutoreleasedReturnValue(v31);
v579 = (char *)objc_msgSend(v32, "mutableCopy");
objc_release(v32);
v33 = *(void **)(v22 + 2252);
v34 = (void (__fastcall *)(__int64))&objc_release;
v35 = objc_msgSend(v33, "sortedArrayUsingSelector:", "compareIndexPaths:");
v36 = (void *)objc_retainAutoreleasedReturnValue(v35);
v564 = objc_msgSend(v36, "mutableCopy");
objc_release(v36);
v499 = 0LL;
v498 = 0LL;
v497 = 0LL;
v496 = 0LL;
v541 = (void *)objc_retain(v579);
v550 = (const char *)objc_msgSend(v541, "countByEnumeratingWithState:objects:count:", &v496, &v588, 16LL);
if ( v550 )
{
v547 = *(char **)v497;
do
{
v575 = "indexPath";
v569 = "section";
v572 = "row";
v555 = "animation";
v544 = "indexPathForRow:inSection:";
v549 = "initWithAction:forIndexPath:animation:";
v566 = "headerFooterOnly";
v543 = "setHeaderFooterOnly:";
v545 = "setPairedItem:";
v546 = (_BYTE *)(&stru_878 + 68);
v556 = "addObject:";
v551 = (_BYTE *)(&stru_878 + 60);
v37 = 0LL;
do
{
if ( *(char **)v497 != v547 )
objc_enumerationMutation(v541);
v565 = v37;
v567 = *(char **)(*((_QWORD *)&v496 + 1) + 8LL * (_QWORD)v37);
v38 = ((__int64 (__fastcall *)(char *, char *))objc_msgSend)(v567, v575);
v39 = (char *)objc_retainAutoreleasedReturnValue(v38);
v40 = (char *)((__int64 (__fastcall *)(char *, char *))objc_msgSend)(v39, v569);
v574 = v39;
v41 = (char *)((__int64 (__fastcall *)(char *, char *))objc_msgSend)(v39, v572);
v512 = 0LL;
v513 = 0LL;
v514 = 0LL;
v515 = 0LL;
v42 = (char *)objc_retain(v561);
v570 = v42;
v43 = ((__int64 (__fastcall *)(char *, const char *, __int128 *, char *, signed __int64))objc_msgSend)(
v42,
"countByEnumeratingWithState:objects:count:",
&v512,
&v587,
16LL);
v559 = v41;
v573 = v41;
v554 = v40;
v578 = v40;
v568 = v43;
if ( v43 )
{
v562 = *(void **)v513;
v573 = v559;
v578 = v554;
do
{
v560 = (size_t)"isEqual:";
v552 = "stringWithUTF8String:";
v553 = "currentHandler";
v563 = "handleFailureInMethod:object:file:lineNumber:description:";
v44 = 0LL;
do
{
if ( *(void **)v513 != v562 )
objc_enumerationMutation(v570);
v577 = (char *)v44;
v579 = *(char **)(*((_QWORD *)&v512 + 1) + 8 * v44);
v45 = ((__int64 (__fastcall *)(char *, char *))objc_msgSend)(v579, v575);
v46 = (char *)objc_retainAutoreleasedReturnValue(v45);
if ( _UIApplicationLinkedOnVersion )
v47 = (unsigned int)_UIApplicationLinkedOnVersion > 0x6FFFF;
else
v47 = __UIApplicationLinkedOnOrAfter(458752LL);
v48 = ((__int64 (__fastcall *)(char *, size_t, char *))objc_msgSend)(v46, v560, v574);
if ( v47 )
{
if ( v48 )
{
v49 = ((__int64 (__fastcall *)(void *, void *, const char *))objc_msgSend)(
&OBJC_CLASS___NSString,
v552,
"/AppleInternal/BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKitCore/UIKit-3920.40.401/UITableView.m");
v50 = objc_retainAutoreleasedReturnValue(v49);
v51 = (const __CFString *)v50;
if ( !v50 )
v51 = CFSTR("<Unknown File>");
v52 = objc_retain(v51);
objc_release(v50);
v53 = objc_msgSend(&OBJC_CLASS___NSAssertionHandler, v553);
v54 = (void *)objc_retainAutoreleasedReturnValue(v53);
objc_msgSend(
v54,
v563,
v571,
v580,
v52,
1991LL,
CFSTR("attempt to delete and reload the same index path (%@)"),
v46);
objc_release(v54);
v55 = v52;
LABEL_38:
objc_release(v55);
goto LABEL_39;
}
}
else if ( v48 )
{
v56 = _endCellAnimationsWithContext____s_category;
if ( !_endCellAnimationsWithContext____s_category )
{
v56 = __UILogCategoryGetNode("Assert") - 16;
_endCellAnimationsWithContext____s_category = v56;
}
v57 = objc_retain(*(_QWORD *)(v56 + 8));
if ( (unsigned __int8)os_log_type_enabled(v57, 16LL) )
{
LODWORD(v589) = 138412290;
*(_QWORD *)((char *)&v589 + 4) = v46;
_os_log_impl(&dword_0, v57, 16LL, aAttemptToDelet_8, &v589, 12LL);
}
v55 = v57;
goto LABEL_38;
}
LABEL_39:
if ( (unsigned __int8)((__int64 (__fastcall *)(char *, const char *))objc_msgSend)(
v579,
"isSectionOperation")
&& (v58 = v569,
v59 = ((__int64 (__fastcall *)(char *, char *))objc_msgSend)(v46, v569),
v576 = v46,
v13 = v59 == ((__int64 (__fastcall *)(char *, char *))objc_msgSend)(v574, v58),
v46 = v576,
v13) )
{
v60 = v577;
}
else
{
if ( (unsigned __int8)((__int64 (__fastcall *)(char *, const char *))objc_msgSend)(
v579,
"isSectionOperation") )
{
v61 = ((__int64 (__fastcall *)(char *, char *))objc_msgSend)(v46, v569);
v578 -= v61 <= (signed __int64)v578;
}
v60 = v577;
if ( !(unsigned __int8)((__int64 (__fastcall *)(char *, const char *))objc_msgSend)(
v567,
"isSectionOperation")
&& !(unsigned __int8)((__int64 (__fastcall *)(char *, const char *))objc_msgSend)(
v579,
"isSectionOperation") )
{
v62 = (char *)((__int64 (__fastcall *)(char *, char *))objc_msgSend)(v46, v569);
if ( v62 == v578 )
{
v63 = ((__int64 (__fastcall *)(char *, char *))objc_msgSend)(v46, v572);
v573 -= v63 <= (signed __int64)v573;
}
}
}
objc_release(v46);
v44 = (size_t)(v60 + 1);
}
while ( v44 < v568 );
v64 = ((__int64 (__fastcall *)(char *, const char *, __int128 *, char *, signed __int64))objc_msgSend)(
v570,
"countByEnumeratingWithState:objects:count:",
&v512,
&v587,
16LL);
v568 = v64;
}
while ( v64 );
}
objc_release(v570);
v519 = 0LL;
v518 = 0LL;
v517 = 0LL;
v516 = 0LL;
v576 = (char *)objc_retain(v548);
v579 = (char *)((__int64 (__fastcall *)(char *, const char *, __int128 *, char *, signed __int64))objc_msgSend)(
v576,
"countByEnumeratingWithState:objects:count:",
&v516,
&v586,
16LL);
if ( v579 )
{
v577 = *(char **)v517;
do
{
v65 = 0LL;
do
{
if ( *(char **)v517 != v577 )
objc_enumerationMutation(v576);
v66 = *(void **)(*((_QWORD *)&v516 + 1) + 8 * v65);
v67 = objc_msgSend(*(void **)(*((_QWORD *)&v516 + 1) + 8 * v65), v575);
v68 = (void *)objc_retainAutoreleasedReturnValue(v67);
if ( (unsigned __int8)objc_msgSend(v66, "isSectionOperation") )
{
v69 = objc_msgSend(v68, v569);
v578 += (signed __int64)v69 <= (signed __int64)v578;
}
if ( !(unsigned __int8)objc_msgSend(v567, "isSectionOperation")
&& !(unsigned __int8)objc_msgSend(v66, "isSectionOperation") )
{
v70 = (char *)objc_msgSend(v68, v569);
if ( v70 == v578 )
{
v71 = objc_msgSend(v68, v572);
v573 += (signed __int64)v71 <= (signed __int64)v573;
}
}
objc_release(v68);
++v65;
}
while ( v65 < (unsigned __int64)v579 );
v72 = (char *)objc_msgSend(v576, "countByEnumeratingWithState:objects:count:", &v516, &v586, 16LL);
v579 = v72;
}
while ( v72 );
}
objc_release(v576);
v73 = ((__int64 (__fastcall *)(char *, char *))objc_msgSend)(v567, v555);
v74 = (char *)v73;
if ( (unsigned __int64)(v73 - 1) <= 3 )
v74 = (char *)qword_F7E3C0[v73 - 1];
v579 = v74;
v75 = (void *)objc_alloc(&OBJC_CLASS___UIDecomposedReloadUpdateItem);
v76 = v544;
v77 = objc_msgSend(&OBJC_CLASS___NSIndexPath, v544, v559, v554);
v78 = objc_retainAutoreleasedReturnValue(v77);
v79 = objc_msgSend(v75, v549, 1LL, v78, v73);
objc_release(v78);
v80 = (unsigned __int64)objc_msgSend(v567, v566);
objc_msgSend(v79, v543, (unsigned int)v80);
v81 = (void *)objc_alloc(&OBJC_CLASS___UIDecomposedReloadUpdateItem);
v82 = objc_msgSend(&OBJC_CLASS___NSIndexPath, v76, v573, v578);
v83 = objc_retainAutoreleasedReturnValue(v82);
v84 = objc_msgSend(v81, v549, 0LL, v83, v579);
objc_release(v83);
v85 = (unsigned __int64)objc_msgSend(v567, v566);
objc_msgSend(v84, v543, (unsigned int)v85);
v86 = v545;
objc_msgSend(v79, v545, v84);
objc_msgSend(v84, v86, v79);
v87 = v580;
v88 = v556;
objc_msgSend(*(void **)&v546[(_QWORD)v580], v556, v79);
objc_msgSend(*(void **)&v551[(_QWORD)v87], v88, v84);
v89 = v84;
v34 = (void (__fastcall *)(__int64))&objc_release;
objc_release(v89);
objc_release(v79);
objc_release(v574);
v37 = v565 + 1;
}
while ( v565 + 1 < v550 );
v550 = (const char *)objc_msgSend(v541, "countByEnumeratingWithState:objects:count:", &v496, &v588, 16LL);
}
while ( v550 );
}
v90 = (char *)v580;
v542 = (_QWORD *)((char *)v542 + (_QWORD)v580);
objc_release(v541);
v91 = objc_msgSend(*(void **)(v90 + 2236), "sortedArrayUsingSelector:", "inverseCompareIndexPaths:");
v92 = (void *)objc_retainAutoreleasedReturnValue(v91);
v93 = objc_msgSend(v92, "mutableCopy");
objc_release(v561);
objc_release(v92);
v94 = objc_msgSend(*(void **)(v90 + 2228), "sortedArrayUsingSelector:", "compareIndexPaths:");
v95 = (void *)objc_retainAutoreleasedReturnValue(v94);
v96 = (char *)objc_msgSend(v95, "mutableCopy");
objc_release(v548);
objc_release(v95);
v97 = v564;
objc_msgSend(
v90,
"_rebaseExistingShadowUpdatesIfNecessaryWithSortedInsertItems:sortedDeleteItems:sortedMoveItems:",
v96,
v93,
v564);
v553 = v96;
objc_msgSend(v90, "_updateIdentityTrackerWithDeletes:moves:inserts:", v93, v97, v96);
objc_msgSend(*(void **)(v90 + 1772), "invalidateAllSections");
v98 = *(void **)(v90 + 1772);
v99 = &objc_msgSend;
objc_msgSend(v98, "ensureAllSectionsAreValid");
v552 = v93;
if ( objc_msgSend(v93, "count") )
{
v575 = "indexPath";
v563 = "section";
v572 = "isSectionOperation";
v559 = "headerFooterOnly";
v566 = "numberOfSections";
v556 = "stringWithUTF8String:";
v551 = "currentHandler";
v561 = "handleFailureInMethod:object:file:lineNumber:description:";
v565 = "_swipeActionController";
v544 = "deleteSectionAtIndex:";
v555 = "row";
v550 = "numberOfRowsInSection:";
v554 = "objectAtIndex:";
v100 = "deleteRowAtIndexPath:";
v545 = "deleteRowAtIndexPath:";
LOBYTE(v100) = 1;
LODWORD(v549) = (_DWORD)v100;
v546 = "isEqual:";
v101 = 0LL;
v543 = 0LL;
v573 = 0LL;
v102 = v552;
while ( 1 )
{
v103 = ((void *(*)(void *, const char *, ...))v99)(v102, "objectAtIndexedSubscript:", v101);
v104 = (char *)objc_retainAutoreleasedReturnValue(v103);
v570 = v104;
v105 = ((void *(*)(void *, const char *, ...))v99)(v104, v575);
v577 = (char *)objc_retainAutoreleasedReturnValue(v105);
v576 = (char *)((void *(*)(void *, const char *, ...))v99)(v577, v563);
v106 = v564;
if ( ((void *(*)(void *, const char *, ...))v99)(v564, "count") )
{
v567 = "isEqual:";
v574 = "isSectionOperation";
v568 = (size_t)"stringWithUTF8String:";
v560 = (size_t)"currentHandler";
v562 = "handleFailureInMethod:object:file:lineNumber:description:";
v107 = 0LL;
v108 = &objc_msgSend;
do
{
v578 = v107;
v109 = ((void *(*)(void *, const char *, ...))v108)(v106, "objectAtIndexedSubscript:", v107);
v110 = objc_retainAutoreleasedReturnValue(v109);
v111 = v108;
v112 = (char *)v110;
v113 = ((__int64 (__fastcall *)(__int64, char *))v108)(v110, v575);
v114 = objc_retainAutoreleasedReturnValue(v113);
v115 = ((__int64 (__fastcall *)(__int64, char *, char *))v108)(v114, v567, v577);
objc_release(v114);
v579 = v112;
if ( v115 )
{
v116 = ((__int64 (__fastcall *)(char *, char *))v108)(v112, v574);
v117 = ((__int64 (__fastcall *)(void *, size_t, const char *))v111)(
&OBJC_CLASS___NSString,
v568,
"/AppleInternal/BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKitCore/UIKit-3920.40.401/UITableView.m");
v118 = objc_retainAutoreleasedReturnValue(v117);
v119 = (const __CFString *)v118;
if ( !v118 )
v119 = CFSTR("<Unknown File>");
v569 = (char *)objc_retain(v119);
objc_release(v118);
v120 = ((__int64 (__fastcall *)(void *, size_t))v111)(&OBJC_CLASS___NSAssertionHandler, v560);
v121 = objc_retainAutoreleasedReturnValue(v120);
v122 = v121;
v13 = v116 == 0;
v108 = v111;
if ( v13 )
{
v123 = v569;
((void (__fastcall *)(__int64, void *, SEL, void *, char *, signed __int64, const __CFString *, char *))v108)(
v121,
v562,
v571,
v580,
v569,
2064LL,
CFSTR("attempt to perform a delete and a move from the same index path (%@)"),
v577);
}
else
{
v123 = v569;
((void (__fastcall *)(__int64, void *, SEL, void *, char *, signed __int64, const __CFString *, char *))v108)(
v121,
v562,
v571,
v580,
v569,
2061LL,
CFSTR("attempt to perform a delete and a move from the same section (%ld)"),
v576);
}
objc_release(v122);
objc_release(v123);
}
else if ( ((unsigned __int8 (__fastcall *)(char *, char *))v108)(v570, v574) )
{
v124 = ((__int64 (__fastcall *)(char *, char *))v108)(v579, v575);
v125 = objc_retainAutoreleasedReturnValue(v124);
v126 = (char *)((__int64 (__fastcall *)(__int64, char *))v108)(v125, v563);
v127 = (char *)objc_release(v125);
if ( v576 == v126 )
{
LODWORD(v549) = 0;
LOBYTE(v127) = 1;
v543 = v127;
}
}
v106 = v564;
v107 = v578 + 1;
objc_release(v579);
}
while ( ((__int64 (__fastcall *)(void *, const char *))v108)(v106, "count") > (unsigned __int64)v107 );
}
else
{
v108 = &objc_msgSend;
}
v128 = v570;
v99 = v108;
if ( !((unsigned __int8 (__fastcall *)(char *, char *))v108)(v570, v572) )
break;
v129 = ((__int64 (__fastcall *)(char *, char *))v108)(v128, v559);
v130 = v557;
if ( v129 )
{
v34 = (void (__fastcall *)(__int64))&objc_release;
}
else
{
v156 = ((__int64 (__fastcall *)(void *, char *))v108)(v557, v566);
if ( (signed __int64)v576 >= v156 )
{
v191 = ((__int64 (__fastcall *)(void *, char *, const char *))v108)(
&OBJC_CLASS___NSString,
v556,
"/AppleInternal/BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKitCore/UIKit-3920.40.401/UITableView.m");
v192 = objc_retainAutoreleasedReturnValue(v191);
v193 = (const __CFString *)v192;
if ( !v192 )
v193 = CFSTR("<Unknown File>");
v194 = objc_retain(v193);
objc_release(v192);
v195 = objc_msgSend(&OBJC_CLASS___NSAssertionHandler, v551);
v196 = (void *)objc_retainAutoreleasedReturnValue(v195);
v197 = objc_msgSend(v130, v566);
objc_msgSend(
v196,
v561,
v571,
v580,
v194,
2077LL,
CFSTR("attempt to delete section %ld, but there are only %ld sections before the update"),
v576,
v197);
objc_release(v196);
v198 = v194;
v99 = &objc_msgSend;
objc_release(v198);
}
if ( ((__int64 (__fastcall *)(void *, const char *))v99)(v552, "count") )
{
v578 = "isEqual:";
v157 = 0LL;
v579 = "removeObjectAtIndex:";
v158 = 0;
v159 = v552;
do
{
v160 = ((__int64 (__fastcall *)(void *, const char *, __int64))v99)(
v159,
"objectAtIndexedSubscript:",
v157);
v161 = objc_retainAutoreleasedReturnValue(v160);
if ( ((unsigned __int8 (__fastcall *)(__int64, char *))v99)(v161, v572) )
goto LABEL_338;
v162 = ((__int64 (__fastcall *)(__int64, char *))v99)(v161, v575);
v163 = v158;
v164 = objc_retainAutoreleasedReturnValue(v162);
v165 = ((__int64 (__fastcall *)(__int64, char *))v99)(v164, v563);
v166 = v164;
v158 = v163;
objc_release(v166);
v13 = v165 == (_QWORD)v576;
v99 = &objc_msgSend;
if ( !v13 )
{
LABEL_338:
if ( v158 > (signed int)v573 )
{
v167 = ((__int64 (__fastcall *)(__int64, char *))v99)(v161, v575);
v168 = (void *)objc_retainAutoreleasedReturnValue(v167);
v169 = v158;
v170 = (unsigned __int64)objc_msgSend(v168, v578, v577);
v171 = v168;
v99 = &objc_msgSend;
objc_release(v171);
v13 = v170 == 0;
v158 = v169;
if ( !v13 )
objc_msgSend(v552, v579, v157);
}
++v158;
}
else
{
objc_msgSend(v552, v579, v157);
v573 = (char *)((unsigned int)v573 - (v163 < (signed int)v573));
}
objc_release(v161);
v157 = v158;
v159 = v552;
}
while ( (unsigned __int64)((void *(*)(void *, const char *, ...))v99)(v552, "count") > v158 );
}
v172 = ((__int64 (__fastcall *)(void *, char *))v99)(v580, v565);
v173 = objc_retainAutoreleasedReturnValue(v172);
v174 = v576;
((void (__fastcall *)(__int64, char *, char *))v99)(v173, v544, v576);
v34 = (void (__fastcall *)(__int64))&objc_release;
objc_release(v173);
if ( !*v542 )
goto LABEL_123;
v13 = ((__int64 (__fastcall *)(_QWORD, char *))v99)(*v542, v563) == (_QWORD)v174;
v128 = v570;
if ( v13 )
goto LABEL_121;
}
LABEL_124:
v175 = (char *)(unsigned int)((_DWORD)v573 + 1);
objc_release(v577);
objc_release(v128);
v573 = v175;
v101 = (signed int)v175;
v102 = v552;
if ( ((__int64 (__fastcall *)(void *, const char *))v99)(v552, "count") <= v101 )
goto LABEL_136;
}
v131 = v577;
v579 = (char *)((__int64 (__fastcall *)(char *, char *))v108)(v577, v555);
v132 = v563;
v133 = ((__int64 (__fastcall *)(char *, char *))v108)(v131, v563);
v134 = v557;
if ( v133 >= ((__int64 (__fastcall *)(void *, char *))v99)(v557, v566) )
{
v176 = ((__int64 (__fastcall *)(void *, char *, const char *))v99)(
&OBJC_CLASS___NSString,
v556,
"/AppleInternal/BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKitCore/UIKit-3920.40.401/UITableView.m");
v177 = objc_retainAutoreleasedReturnValue(v176);
v178 = (const __CFString *)v177;
if ( !v177 )
v178 = CFSTR("<Unknown File>");
v578 = (char *)objc_retain(v178);
objc_release(v177);
v179 = ((__int64 (__fastcall *)(void *, char *))v99)(&OBJC_CLASS___NSAssertionHandler, v551);
v180 = objc_retainAutoreleasedReturnValue(v179);
v181 = ((__int64 (__fastcall *)(void *, char *))v99)(v557, v566);
((void (__fastcall *)(__int64, char *, SEL, void *, char *, signed __int64, const __CFString *, char *, __int64, __int64))v99)(
v180,
v561,
v571,
v580,
v578,
2107LL,
CFSTR("attempt to delete row %ld from section %ld, but there are only %ld sections before the update"),
v579,
v133,
v181);
v182 = v180;
v132 = v563;
v134 = v557;
objc_release(v182);
objc_release(v578);
}
v135 = ((__int64 (__fastcall *)(char *, char *))v99)(v131, v132);
v136 = ((__int64 (__fastcall *)(void *, const char *, __int64))v99)(v134, v550, v135);
if ( (signed __int64)v579 >= v136 )
{
v183 = ((__int64 (__fastcall *)(void *, char *, const char *))v99)(
&OBJC_CLASS___NSString,
v556,
"/AppleInternal/BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKitCore/UIKit-3920.40.401/UITableView.m");
v184 = objc_retainAutoreleasedReturnValue(v183);
v185 = (const __CFString *)v184;
if ( !v184 )
v185 = CFSTR("<Unknown File>");
v186 = objc_retain(v185);
objc_release(v184);
v187 = ((__int64 (__fastcall *)(void *, char *))v99)(&OBJC_CLASS___NSAssertionHandler, v551);
v188 = objc_retainAutoreleasedReturnValue(v187);
v189 = ((__int64 (__fastcall *)(char *, char *))v99)(v577, v563);
v190 = ((__int64 (__fastcall *)(void *, const char *, __int64))v99)(v557, v550, v189);
((void (__fastcall *)(__int64, char *, SEL, void *, __int64, signed __int64, const __CFString *, char *, __int64, __int64))v99)(
v188,
v561,
v571,
v580,
v186,
2108LL,
CFSTR("attempt to delete row %ld from section %ld which only contains %ld rows before the update"),
v579,
v133,
v190);
objc_release(v188);
objc_release(v186);
}
v137 = (signed int)v573 + 1;
v138 = v552;
if ( ((__int64 (__fastcall *)(void *, const char *))v99)(v552, "count") > v137 )
{
v579 = "isEqual:";
v578 = "removeObjectAtIndex:";
do
{
v139 = ((__int64 (__fastcall *)(void *, char *, unsigned __int64))v99)(v138, v554, v137);
v140 = objc_retainAutoreleasedReturnValue(v139);
v141 = v140;
v142 = ((__int64 (__fastcall *)(__int64, char *))v99)(v140, v575);
v143 = objc_retainAutoreleasedReturnValue(v142);
v144 = ((__int64 (__fastcall *)(__int64, char *, char *))v99)(v143, v579, v577);
objc_release(v143);
objc_release(v141);
v138 = v552;
if ( !v144 )
break;
((void (__fastcall *)(void *, char *, unsigned __int64))v99)(v552, v578, v137);
}
while ( ((__int64 (__fastcall *)(void *, const char *))v99)(v138, "count") > v137 );
}
v523 = 0LL;
v522 = 0LL;
v521 = 0LL;
v520 = 0LL;
v145 = (char *)objc_retain(v553);
v578 = v145;
v146 = ((__int64 (__fastcall *)(char *, const char *, __int128 *, char *, signed __int64))v99)(
v145,
"countByEnumeratingWithState:objects:count:",
&v520,
&v585,
16LL);
if ( v146 )
{
v147 = v146;
v579 = *(char **)v521;
while ( 2 )
{
v148 = 0LL;
do
{
if ( *(char **)v521 != v579 )
objc_enumerationMutation(v578);
v149 = objc_msgSend(*(void **)(*((_QWORD *)&v520 + 1) + 8 * v148), v575);
v150 = (void *)objc_retainAutoreleasedReturnValue(v149);
v151 = (unsigned __int64)objc_msgSend(v150, "isEqual:", v577);
objc_release(v150);
if ( v151 )
{
v34 = (void (__fastcall *)(__int64))&objc_release;
objc_release(v578);
v99 = &objc_msgSend;
goto LABEL_123;
}
++v148;
}
while ( v148 < v147 );
v99 = &objc_msgSend;
v147 = (unsigned __int64)objc_msgSend(v578, "countByEnumeratingWithState:objects:count:", &v520, &v585, 16LL);
if ( v147 )
continue;
break;
}
}
v34 = (void (__fastcall *)(__int64))&objc_release;
objc_release(v578);
v152 = ((__int64 (__fastcall *)(void *, char *))v99)(v580, v565);
v153 = objc_retainAutoreleasedReturnValue(v152);
v154 = v577;
((void (__fastcall *)(__int64, char *, char *))v99)(v153, v545, v577);
objc_release(v153);
if ( !*v542 )
{
LABEL_123:
v128 = v570;
goto LABEL_124;
}
v155 = ((__int64 (__fastcall *)(_QWORD, char *, char *))v99)(*v542, v546, v154);
v128 = v570;
if ( !v155 )
goto LABEL_124;
LABEL_121:
*((_BYTE *)v580 + 2817) |= 0x10u;
goto LABEL_124;
}
LODWORD(v549) = 1;
v543 = 0LL;
LABEL_136:
v199 = v553;
if ( objc_msgSend(v553, "count") )
{
v568 = (size_t)"indexPath";
v573 = "section";
v554 = "isSectionOperation";
v566 = "headerFooterOnly";
v565 = "numberOfSections";
v556 = "stringWithUTF8String:";
v551 = "currentHandler";
v561 = "handleFailureInMethod:object:file:lineNumber:description:";
v550 = "_swipeActionController";
v545 = "insertSectionAtIndex:";
v544 = "row";
v555 = "numberOfRowsInSection:";
v559 = "objectAtIndex:";
v546 = "insertRowAtIndexPath:";
v200 = 0LL;
v572 = 0LL;
while ( 1 )
{
v201 = ((__int64 (__fastcall *)(char *, const char *, char *))v99)(v199, "objectAtIndexedSubscript:", v200);
v202 = (char *)objc_retainAutoreleasedReturnValue(v201);
v563 = v202;
v203 = ((__int64 (__fastcall *)(char *, size_t))v99)(v202, v568);
v575 = (char *)objc_retainAutoreleasedReturnValue(v203);
v576 = (char *)((__int64 (__fastcall *)(char *, char *))v99)(v575, v573);
v204 = v564;
if ( ((__int64 (__fastcall *)(void *, const char *))v99)(v564, "count") )
{
v577 = "newIndexPath";
v567 = "isEqual:";
v574 = "isSectionOperation";
v560 = (size_t)"stringWithUTF8String:";
v562 = "currentHandler";
v570 = "handleFailureInMethod:object:file:lineNumber:description:";
v205 = 0LL;
do
{
v578 = v205;
v206 = ((__int64 (__fastcall *)(void *, const char *, char *))v99)(v204, "objectAtIndexedSubscript:", v205);
v207 = objc_retainAutoreleasedReturnValue(v206);
v208 = (char *)v207;
v209 = ((__int64 (__fastcall *)(__int64, char *))v99)(v207, v577);
v210 = objc_retainAutoreleasedReturnValue(v209);
v211 = v34;
v212 = ((__int64 (__fastcall *)(__int64, char *, char *))v99)(v210, v567, v575);
v211(v210);
v579 = v208;
if ( v212 )
{
LOBYTE(v569) = ((__int64 (__fastcall *)(char *, char *))v99)(v208, v574);
v213 = ((__int64 (__fastcall *)(void *, size_t, const char *))v99)(
&OBJC_CLASS___NSString,
v560,
"/AppleInternal/BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKitCore/UIKit-3920.40.401/UITableView.m");
v214 = objc_retainAutoreleasedReturnValue(v213);
v215 = (const __CFString *)v214;
if ( !v214 )
v215 = CFSTR("<Unknown File>");
v216 = objc_retain(v215);
v211(v214);
v217 = ((__int64 (__fastcall *)(void *, void *))v99)(&OBJC_CLASS___NSAssertionHandler, v562);
v218 = objc_retainAutoreleasedReturnValue(v217);
v219 = v218;
if ( (_BYTE)v569 )
((void (__fastcall *)(__int64, char *, SEL, void *, __int64, signed __int64, const __CFString *, char *))v99)(
v218,
v570,
v571,
v580,
v216,
2153LL,
CFSTR("attempt to perform an insert and a move to the same section (%ld)"),
v576);
else
((void (__fastcall *)(__int64, char *, SEL, void *, __int64, signed __int64, const __CFString *, char *))v99)(
v218,
v570,
v571,
v580,
v216,
2156LL,
CFSTR("attempt to perform an insert and a move to the same index path (%@)"),
v575);
v211(v219);
v211(v216);
v34 = v211;
}
else
{
v34 = v211;
if ( ((unsigned __int8 (__fastcall *)(char *, char *))v99)(v563, v574) )
{
v220 = ((__int64 (__fastcall *)(char *, char *))v99)(v579, v577);
v221 = objc_retainAutoreleasedReturnValue(v220);
v222 = (char *)((__int64 (__fastcall *)(__int64, char *))v99)(v221, v573);
v223 = (char *)((__int64 (__fastcall *)(__int64))v211)(v221);
v13 = v576 == v222;
v99 = &objc_msgSend;
if ( v13 )
{
LODWORD(v549) = 0;
LOBYTE(v223) = 1;
v543 = v223;
}
}
}
v204 = v564;
v205 = v578 + 1;
v34((__int64)v579);
}
while ( ((__int64 (__fastcall *)(void *, const char *))v99)(v204, "count") > (unsigned __int64)v205 );
}
v224 = v563;
if ( !((unsigned __int8 (__fastcall *)(char *, char *))v99)(v563, v554) )
break;
v225 = ((__int64 (__fastcall *)(char *, char *))v99)(v224, v566);
v199 = v553;
if ( !v225 )
{
v226 = ((__int64 (__fastcall *)(_QWORD, char *))v99)(*(_QWORD *)((char *)v580 + 1772), v565);
if ( (signed __int64)v576 >= v226 )
{
v282 = ((__int64 (__fastcall *)(void *, char *, const char *))v99)(
&OBJC_CLASS___NSString,
v556,
"/AppleInternal/BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKitCore/UIKit-3920.40.401/UITableView.m");
v283 = objc_retainAutoreleasedReturnValue(v282);
v284 = (const __CFString *)v283;
if ( !v283 )
v284 = CFSTR("<Unknown File>");
v285 = objc_retain(v284);
v34(v283);
v286 = objc_msgSend(&OBJC_CLASS___NSAssertionHandler, v551);
v287 = (void *)objc_retainAutoreleasedReturnValue(v286);
v288 = v580;
v289 = objc_msgSend(*(void **)((char *)v580 + 1772), v565);
objc_msgSend(
v287,
v561,
v571,
v288,
v285,
2170LL,
CFSTR("attempt to insert section %ld but there are only %ld sections after the update"),
v576,
v289);
objc_release(v287);
v290 = v285;
v99 = &objc_msgSend;
objc_release(v290);
}
if ( ((__int64 (__fastcall *)(char *, const char *))v99)(v199, "count") )
{
v578 = "isEqual:";
v227 = 0LL;
v579 = "removeObjectAtIndex:";
v228 = 0;
do
{
v229 = ((__int64 (__fastcall *)(char *, const char *, __int64))v99)(
v199,
"objectAtIndexedSubscript:",
v227);
v230 = objc_retainAutoreleasedReturnValue(v229);
if ( ((unsigned __int8 (__fastcall *)(__int64, char *))v99)(v230, v554)
|| (v231 = ((__int64 (__fastcall *)(__int64, size_t))v99)(v230, v568),
v232 = objc_retainAutoreleasedReturnValue(v231),
v233 = ((__int64 (__fastcall *)(__int64, char *))v99)(v232, v573),
objc_release(v232),
v13 = v233 == (_QWORD)v576,
v99 = &objc_msgSend,
!v13) )
{
if ( v228 > (signed int)v572 )
{
v234 = ((__int64 (__fastcall *)(__int64, size_t))v99)(v230, v568);
v235 = (void *)objc_retainAutoreleasedReturnValue(v234);
v236 = (unsigned __int64)objc_msgSend(v235, v578, v575);
v237 = v235;
v99 = &objc_msgSend;
objc_release(v237);
if ( v236 )
objc_msgSend(v553, v579, v227);
}
++v228;
}
else
{
objc_msgSend(v553, v579, v227);
v572 = (char *)((unsigned int)v572 - (v228 < (signed int)v572));
}
objc_release(v230);
v227 = v228;
v199 = v553;
}
while ( (unsigned __int64)((void *(*)(void *, const char *, ...))v99)(v553, "count") > v228 );
}
v238 = ((__int64 (__fastcall *)(void *, const char *))v99)(v580, v550);
v239 = (char *)objc_retainAutoreleasedReturnValue(v238);
((void (__fastcall *)(char *, char *, char *))v99)(v239, v545, v576);
v34 = (void (__fastcall *)(__int64))&objc_release;
LABEL_181:
objc_release(v239);
}
v200 = (char *)(unsigned int)((_DWORD)v572 + 1);
v34((__int64)v575);
v34((__int64)v563);
v572 = v200;
v200 = (char *)(signed int)v200;
if ( ((__int64 (__fastcall *)(char *, const char *))v99)(v199, "count") <= (unsigned __int64)(signed int)v200 )
goto LABEL_193;
}
v240 = v575;
v241 = v99;
v242 = (char *)((__int64 (__fastcall *)(char *, char *))v99)(v575, v573);
v579 = (char *)((__int64 (__fastcall *)(char *, char *))v99)(v240, v544);
v243 = (char *)v580;
v244 = ((__int64 (__fastcall *)(_QWORD, char *))v241)(*(_QWORD *)((char *)v580 + 1772), v565);
v578 = v242;
if ( (signed __int64)v242 >= v244 )
{
v266 = ((__int64 (__fastcall *)(void *, char *, const char *))v241)(
&OBJC_CLASS___NSString,
v556,
"/AppleInternal/BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKitCore/UIKit-3920.40.401/UITableView.m");
v267 = objc_retainAutoreleasedReturnValue(v266);
v268 = (const __CFString *)v267;
if ( !v267 )
v268 = CFSTR("<Unknown File>");
v577 = (char *)objc_retain(v268);
objc_release(v267);
v269 = ((__int64 (__fastcall *)(void *, char *))v241)(&OBJC_CLASS___NSAssertionHandler, v551);
v270 = (char *)objc_retainAutoreleasedReturnValue(v269);
v569 = v270;
v271 = ((__int64 (__fastcall *)(_QWORD, char *))v241)(*(_QWORD *)(v243 + 1772), v565);
((void (__fastcall *)(char *, char *, SEL, char *, char *, signed __int64, const __CFString *, char *, char *, __int64))v241)(
v270,
v561,
v571,
v243,
v577,
2197LL,
CFSTR("attempt to insert row %ld into section %ld, but there are only %ld sections after the update"),
v579,
v578,
v271);
objc_release(v569);
objc_release(v577);
}
v245 = *(_QWORD *)(v243 + 1772);
v246 = v573;
v247 = ((__int64 (__fastcall *)(char *, char *))v241)(v240, v573);
v248 = ((__int64 (__fastcall *)(__int64, char *, __int64))v241)(v245, v555, v247);
if ( (signed __int64)v579 >= v248 )
{
v272 = ((__int64 (__fastcall *)(void *, char *, const char *))v241)(
&OBJC_CLASS___NSString,
v556,
"/AppleInternal/BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKitCore/UIKit-3920.40.401/UITableView.m");
v273 = objc_retainAutoreleasedReturnValue(v272);
v274 = (const __CFString *)v273;
if ( !v273 )
v274 = CFSTR("<Unknown File>");
v577 = (char *)objc_retain(v274);
objc_release(v273);
v275 = ((__int64 (__fastcall *)(void *, char *))v241)(&OBJC_CLASS___NSAssertionHandler, v551);
v569 = (char *)objc_retainAutoreleasedReturnValue(v275);
v276 = v580;
v277 = *(_QWORD *)((char *)v580 + 1772);
v278 = ((__int64 (__fastcall *)(char *, char *))v241)(v240, v246);
v279 = ((__int64 (__fastcall *)(__int64, char *, __int64))v241)(v277, v555, v278);
v280 = v569;
v281 = v577;
((void (__fastcall *)(char *, char *, SEL, void *, char *, signed __int64, const __CFString *, char *, char *, __int64, char *))v241)(
v569,
v561,
v571,
v276,
v577,
2198LL,
CFSTR("attempt to insert row %ld into section %ld, but there are only %ld rows in section %ld after the update"),
v579,
v578,
v279,
v578);
objc_release(v280);
objc_release(v281);
}
v249 = (signed int)v572 + 1;
v250 = v553;
v99 = v241;
if ( ((__int64 (__fastcall *)(char *, const char *))v241)(v553, "count") > v249 )
{
v579 = "isEqual:";
v578 = "removeObjectAtIndex:";
do
{
v251 = ((__int64 (__fastcall *)(char *, char *, unsigned __int64))v99)(v250, v559, v249);
v252 = objc_retainAutoreleasedReturnValue(v251);
v253 = v252;
v254 = ((__int64 (__fastcall *)(__int64, size_t))v99)(v252, v568);
v255 = objc_retainAutoreleasedReturnValue(v254);
v256 = ((__int64 (__fastcall *)(__int64, char *, char *))v99)(v255, v579, v575);
objc_release(v255);
objc_release(v253);
v250 = v553;
if ( !v256 )
break;
((void (__fastcall *)(char *, char *, unsigned __int64))v99)(v553, v578, v249);
}
while ( ((__int64 (__fastcall *)(char *, const char *))v99)(v250, "count") > v249 );
}
v527 = 0LL;
v526 = 0LL;
v525 = 0LL;
v524 = 0LL;
v257 = objc_retain(v552);
v258 = (char *)v257;
v259 = ((__int64 (__fastcall *)(__int64, const char *, __int128 *, char *, signed __int64))v99)(
v257,
"countByEnumeratingWithState:objects:count:",
&v524,
&v584,
16LL);
if ( v259 )
{
v260 = v259;
v579 = *(char **)v525;
v578 = v258;
while ( 2 )
{
v261 = 0LL;
do
{
if ( *(char **)v525 != v579 )
objc_enumerationMutation(v578);
v262 = objc_msgSend(*(void **)(*((_QWORD *)&v524 + 1) + 8 * v261), (const char *)v568);
v263 = (void *)objc_retainAutoreleasedReturnValue(v262);
v264 = (unsigned __int64)objc_msgSend(v263, "isEqual:", v575);
objc_release(v263);
if ( v264 )
{
v99 = &objc_msgSend;
v34 = (void (__fastcall *)(__int64))&objc_release;
v199 = v553;
v239 = v578;
goto LABEL_181;
}
++v261;
}
while ( v261 < v260 );
v258 = v578;
v99 = &objc_msgSend;
v260 = (unsigned __int64)objc_msgSend(v578, "countByEnumeratingWithState:objects:count:", &v524, &v584, 16LL);
if ( v260 )
continue;
break;
}
}
v34 = (void (__fastcall *)(__int64))&objc_release;
objc_release(v258);
v265 = ((__int64 (__fastcall *)(void *, const char *))v99)(v580, v550);
v239 = (char *)objc_retainAutoreleasedReturnValue(v265);
((void (__fastcall *)(char *, char *, char *))v99)(v239, v546, v575);
v199 = v553;
goto LABEL_181;
}
LABEL_193:
v291 = v564;
if ( objc_msgSend(v564, "count") )
{
v574 = "indexPath";
v576 = "newIndexPath";
v559 = "section";
v544 = "row";
v545 = "isSectionOperation";
v555 = "numberOfSections";
v561 = "stringWithUTF8String:";
v548 = "currentHandler";
v547 = "handleFailureInMethod:object:file:lineNumber:description:";
v556 = "numberOfRowsInSection:";
v560 = (size_t)"objectAtIndex:";
v546 = "_swipeActionController";
v534 = "moveRowAtIndexPath:toIndexPath:";
v551 = "moveSectionAtIndex:toIndex:";
v292 = 0LL;
do
{
v565 = v292;
v293 = ((__int64 (__fastcall *)(void *, const char *))v99)(v291, "objectAtIndexedSubscript:");
v294 = (const char *)objc_retainAutoreleasedReturnValue(v293);
v295 = v294;
v550 = v294;
v296 = ((__int64 (__fastcall *)(const char *, char *))v99)(v294, v574);
v297 = (char *)objc_retainAutoreleasedReturnValue(v296);
v298 = ((__int64 (__fastcall *)(const char *, char *))v99)(v295, v576);
v567 = (char *)objc_retainAutoreleasedReturnValue(v298);
v299 = v559;
v566 = (char *)((__int64 (__fastcall *)(char *, char *))v99)(v297, v559);
v577 = v297;
v300 = v544;
v579 = (char *)((__int64 (__fastcall *)(char *, char *))v99)(v297, v544);
v301 = v567;
v572 = (char *)((__int64 (__fastcall *)(char *, char *))v99)(v567, v299);
v302 = (char *)((__int64 (__fastcall *)(char *, char *))v99)(v301, v300);
LOBYTE(v301) = ((__int64 (__fastcall *)(const char *, char *))v99)(v550, v545);
v303 = ((__int64 (__fastcall *)(void *, char *))v99)(v557, v555);
LOBYTE(v562) = (_BYTE)v301;
if ( (_BYTE)v301 )
{
if ( (signed __int64)v566 >= v303 )
{
v304 = objc_msgSend(
&OBJC_CLASS___NSString,
v561,
"/AppleInternal/BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKitCore/UIKit-3920.40.401/UITableView.m");
v305 = objc_retainAutoreleasedReturnValue(v304);
v306 = (const __CFString *)v305;
if ( !v305 )
v306 = CFSTR("<Unknown File>");
v307 = objc_retain(v306);
objc_release(v305);
v308 = objc_msgSend(&OBJC_CLASS___NSAssertionHandler, v548);
v309 = (void *)objc_retainAutoreleasedReturnValue(v308);
v310 = objc_msgSend(v557, v555);
objc_msgSend(
v309,
v547,
v571,
v580,
v307,
2242LL,
CFSTR("attempt to move section %ld, but there are only %ld sections before the update"),
v566,
v310);
v34 = (void (__fastcall *)(__int64))&objc_release;
objc_release(v309);
objc_release(v307);
}
v99 = &objc_msgSend;
v311 = objc_msgSend(*(void **)((char *)v580 + 1772), v555);
if ( (signed __int64)v572 >= (signed __int64)v311 )
{
v312 = objc_msgSend(
&OBJC_CLASS___NSString,
v561,
"/AppleInternal/BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKitCore/UIKit-3920.40.401/UITableView.m");
v313 = objc_retainAutoreleasedReturnValue(v312);
v314 = (const __CFString *)v313;
if ( !v313 )
v314 = CFSTR("<Unknown File>");
v315 = objc_retain(v314);
v34(v313);
v316 = objc_msgSend(&OBJC_CLASS___NSAssertionHandler, v548);
v317 = (void *)objc_retainAutoreleasedReturnValue(v316);
v318 = v580;
v319 = objc_msgSend(*(void **)((char *)v580 + 1772), v555);
objc_msgSend(
v317,
v547,
v571,
v318,
v315,
2243LL,
CFSTR("attempt to to move section %ld to section %ld, but there are only %ld sections after the update"),
v566,
v572,
v319);
LABEL_245:
v391 = v317;
v34 = (void (__fastcall *)(__int64))&objc_release;
objc_release(v391);
v392 = v315;
v99 = &objc_msgSend;
objc_release(v392);
goto LABEL_211;
}
}
else
{
v578 = v302;
v320 = v566;
if ( (signed __int64)v566 >= v303 )
{
v321 = objc_msgSend(
&OBJC_CLASS___NSString,
v561,
"/AppleInternal/BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKitCore/UIKit-3920.40.401/UITableView.m");
v322 = objc_retainAutoreleasedReturnValue(v321);
v323 = (const __CFString *)v322;
if ( !v322 )
v323 = CFSTR("<Unknown File>");
v324 = objc_retain(v323);
objc_release(v322);
v325 = objc_msgSend(&OBJC_CLASS___NSAssertionHandler, v548);
v326 = (void *)objc_retainAutoreleasedReturnValue(v325);
v327 = objc_msgSend(v557, v555);
objc_msgSend(
v326,
v547,
v571,
v580,
v324,
2246LL,
CFSTR("attempt to move index path (%@) from a section that does not exist - there are only %ld sections before the update"),
v577,
v327);
objc_release(v326);
objc_release(v324);
}
v328 = objc_msgSend(v557, v556, v320);
if ( (signed __int64)v579 >= (signed __int64)v328 )
{
v370 = objc_msgSend(
&OBJC_CLASS___NSString,
v561,
"/AppleInternal/BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKitCore/UIKit-3920.40.401/UITableView.m");
v371 = objc_retainAutoreleasedReturnValue(v370);
v372 = (const __CFString *)v371;
if ( !v371 )
v372 = CFSTR("<Unknown File>");
v373 = objc_retain(v372);
objc_release(v371);
v374 = objc_msgSend(&OBJC_CLASS___NSAssertionHandler, v548);
v375 = (void *)objc_retainAutoreleasedReturnValue(v374);
v376 = v566;
v377 = objc_msgSend(v557, v556, v566);
objc_msgSend(
v375,
v547,
v571,
v580,
v373,
2247LL,
CFSTR("attempt to move index path (%@) that does not exist - there are only %ld rows in section %ld before the update"),
v577,
v377,
v376);
objc_release(v375);
objc_release(v373);
}
v329 = (char *)v580;
v330 = objc_msgSend(*(void **)((char *)v580 + 1772), v555);
if ( (signed __int64)v572 >= (signed __int64)v330 )
{
v378 = objc_msgSend(
&OBJC_CLASS___NSString,
v561,
"/AppleInternal/BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKitCore/UIKit-3920.40.401/UITableView.m");
v379 = objc_retainAutoreleasedReturnValue(v378);
v380 = (const __CFString *)v379;
if ( !v379 )
v380 = CFSTR("<Unknown File>");
v579 = (char *)objc_retain(v380);
objc_release(v379);
v381 = objc_msgSend(&OBJC_CLASS___NSAssertionHandler, v548);
v382 = (void *)objc_retainAutoreleasedReturnValue(v381);
v383 = objc_msgSend(*(void **)(v329 + 1772), v555);
objc_msgSend(
v382,
v547,
v571,
v329,
v579,
2248LL,
CFSTR("attempt to move index path (%@) to index path (%@) in section that does not exist - there are only %ld sections after the update"),
v577,
v567,
v383);
objc_release(v382);
objc_release(v579);
}
v331 = objc_msgSend(*(void **)(v329 + 1772), v556);
v99 = &objc_msgSend;
v34 = (void (__fastcall *)(__int64))&objc_release;
if ( (signed __int64)v578 >= (signed __int64)v331 )
{
v384 = ((__int64 (__fastcall *)(void *, char *, const char *))objc_msgSend)(
&OBJC_CLASS___NSString,
v561,
"/AppleInternal/BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKitCore/UIKit-3920.40.401/UITableView.m");
v385 = objc_retainAutoreleasedReturnValue(v384);
v386 = (const __CFString *)v385;
if ( !v385 )
v386 = CFSTR("<Unknown File>");
v315 = objc_retain(v386);
objc_release(v385);
v387 = objc_msgSend(&OBJC_CLASS___NSAssertionHandler, v548);
v317 = (void *)objc_retainAutoreleasedReturnValue(v387);
v388 = v580;
v389 = v572;
v390 = objc_msgSend(*(void **)((char *)v580 + 1772), v556, v572);
objc_msgSend(
v317,
v547,
v571,
v388,
v315,
2249LL,
CFSTR("attempt to move index path (%@) to index path (%@) that does not exist - there are only %ld rows in section %ld after the update"),
v577,
v567,
v390,
v389);
goto LABEL_245;
}
}
LABEL_211:
v332 = v565 + 1;
v333 = v564;
v334 = (char *)objc_msgSend(v564, "count");
v565 = v332;
if ( v334 > v332 )
{
v335 = v333;
v568 = (size_t)"isEqual:";
v570 = "stringWithUTF8String:";
v563 = "currentHandler";
v573 = "handleFailureInMethod:object:file:lineNumber:description:";
v554 = "removeObjectAtIndex:";
v336 = v565;
LODWORD(v578) = (_DWORD)v565;
while ( 1 )
{
v569 = v336;
v337 = objc_msgSend(v335, (const char *)v560, v336);
v338 = (char *)objc_retainAutoreleasedReturnValue(v337);
v339 = v338;
v340 = objc_msgSend(v338, v574);
v341 = (char *)objc_retainAutoreleasedReturnValue(v340);
v575 = v339;
v342 = objc_msgSend(v339, v576);
v343 = objc_retainAutoreleasedReturnValue(v342);
v344 = v568;
v579 = v341;
LOBYTE(v339) = (unsigned __int64)objc_msgSend(v577, (const char *)v568, v341);
v345 = (const char *)v344;
v346 = (void *)v343;
v347 = (unsigned __int64)objc_msgSend(v567, v345, v343);
if ( !(_BYTE)v339 )
break;
if ( !v347 )
{
v358 = objc_msgSend(
&OBJC_CLASS___NSString,
v570,
"/AppleInternal/BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKitCore/UIKit-3920.40.401/UITableView.m");
v359 = objc_retainAutoreleasedReturnValue(v358);
v360 = (const __CFString *)v359;
if ( !v359 )
v360 = CFSTR("<Unknown File>");
v352 = objc_retain(v360);
objc_release(v359);
v361 = objc_msgSend(&OBJC_CLASS___NSAssertionHandler, v563);
v362 = (void *)objc_retainAutoreleasedReturnValue(v361);
v355 = v362;
v348 = v575;
if ( (_BYTE)v562 )
{
v363 = objc_msgSend(v346, v559);
((void (__fastcall *)(void *, char *, SEL, void *, __int64, signed __int64, const __CFString *, char *, char *, void *))objc_msgSend)(
v355,
v573,
v571,
v580,
v352,
2264LL,
CFSTR("attempt to move section %ld to both section %ld and section %ld"),
v566,
v572,
v363);
}
else
{
objc_msgSend(
v362,
v573,
v571,
v580,
v352,
2267LL,
CFSTR("attempt to move row at index path %@ to both %@ and %@"),
v577,
v567,
v346);
}
goto LABEL_228;
}
v335 = v564;
v99 = &objc_msgSend;
objc_msgSend(v564, v554, v569);
LODWORD(v336) = (_DWORD)v578;
v348 = v575;
LABEL_230:
v364 = v346;
v34 = (void (__fastcall *)(__int64))&objc_release;
objc_release(v364);
objc_release(v579);
objc_release(v348);
LODWORD(v578) = (_DWORD)v336;
v336 = (char *)(signed int)v336;
if ( (unsigned __int64)objc_msgSend(v335, "count") <= (signed int)v336 )
goto LABEL_231;
}
v348 = v575;
if ( v347 )
{
v349 = objc_msgSend(
&OBJC_CLASS___NSString,
v570,
"/AppleInternal/BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKitCore/UIKit-3920.40.401/UITableView.m");
v350 = objc_retainAutoreleasedReturnValue(v349);
v351 = (const __CFString *)v350;
if ( !v350 )
v351 = CFSTR("<Unknown File>");
v352 = objc_retain(v351);
objc_release(v350);
v353 = objc_msgSend(&OBJC_CLASS___NSAssertionHandler, v563);
v354 = (void *)objc_retainAutoreleasedReturnValue(v353);
v355 = v354;
if ( (_BYTE)v562 )
{
v356 = v559;
v569 = (char *)objc_msgSend(v577, v559);
v357 = objc_msgSend(v579, v356);
((void (__fastcall *)(void *, char *, SEL, void *, __int64, signed __int64, const __CFString *, char *, void *, char *))objc_msgSend)(
v355,
v573,
v571,
v580,
v352,
2273LL,
CFSTR("attempt to move both section %ld and section %ld to section %ld"),
v569,
v357,
v572);
}
else
{
objc_msgSend(
v354,
v573,
v571,
v580,
v352,
2276LL,
CFSTR("attempt to move both row at index path %@ and %@ to %@"),
v577,
v579,
v567);
}
LABEL_228:
objc_release(v355);
objc_release(v352);
}
LODWORD(v336) = (_DWORD)v578 + 1;
v99 = &objc_msgSend;
v335 = v564;
goto LABEL_230;
}
LABEL_231:
v365 = objc_msgSend(v580, v546);
v366 = (void *)objc_retainAutoreleasedReturnValue(v365);
v367 = (__int64)v366;
if ( (_BYTE)v562 )
{
objc_msgSend(v366, v551, v566, v572);
v368 = v567;
}
else
{
v368 = v567;
objc_msgSend(v366, v534, v577, v567);
}
v34(v367);
v34((__int64)v368);
v34((__int64)v577);
v34((__int64)v550);
v291 = v564;
v369 = (char *)objc_msgSend(v564, "count");
v292 = v565;
}
while ( v369 > v565 );
}
v393 = v557;
if ( *v542 )
{
v394 = ((__int64 (__fastcall *)(void *, const char *))v99)(v580, "_swipeActionController");
v395 = objc_retainAutoreleasedReturnValue(v394);
v396 = ((__int64 (__fastcall *)(__int64, const char *))v99)(v395, "swipedIndexPath");
v397 = objc_retainAutoreleasedReturnValue(v396);
objc_release(v395);
if ( v397 )
objc_storeStrong(v542, v396);
objc_release(v397);
v99 = &objc_msgSend;
}
v398 = objc_alloc(&OBJC_CLASS___NSMutableArray);
v399 = (char *)((__int64 (__fastcall *)(__int64, const char *))v99)(v398, "init");
((void (__fastcall *)(char *, const char *, void *))v99)(v399, "addObjectsFromArray:", v552);
((void (__fastcall *)(char *, const char *, void *))v99)(v399, "addObjectsFromArray:", v564);
v579 = v399;
((void (__fastcall *)(char *, const char *, char *))v99)(v399, "addObjectsFromArray:", v553);
v400 = v99;
v401 = ((__int64 (__fastcall *)(void *, const char *))v99)(v393, "numberOfSections");
v402 = (char *)calloc(8uLL, v401);
if ( v401 > 0 )
{
v403 = 0LL;
do
{
*(_QWORD *)&v402[8 * v403] = ((__int64 (__fastcall *)(void *, const char *, __int64))v400)(
v393,
"numberOfRowsInSection:",
v403);
++v403;
}
while ( v401 != v403 );
}
v560 = v401;
v565 = v402;
v568 = ((__int64 (__fastcall *)(_QWORD, const char *))v400)(*(_QWORD *)((char *)v580 + 1772), "numberOfSections");
v500 = 0LL;
v501 = 0LL;
v502 = 0LL;
v503 = 0LL;
v574 = (char *)objc_retain(v579);
v579 = (char *)((__int64 (__fastcall *)(char *, const char *, __int128 *, char *, signed __int64))v400)(
v574,
"countByEnumeratingWithState:objects:count:",
&v500,
&v583,
16LL);
if ( v579 )
{
v569 = *(char **)v501;
v562 = 0LL;
v570 = 0LL;
v576 = (char *)v560;
do
{
v578 = "indexPath";
v575 = "section";
v577 = "isSectionOperation";
v567 = "headerFooterOnly";
v404 = 0LL;
do
{
if ( *(char **)v501 != v569 )
objc_enumerationMutation(v574);
v405 = *(void **)(*((_QWORD *)&v500 + 1) + 8 * v404);
v406 = objc_msgSend(*(void **)(*((_QWORD *)&v500 + 1) + 8 * v404), v578);
v407 = (void *)objc_retainAutoreleasedReturnValue(v406);
objc_msgSend(v407, v575);
objc_release(v407);
if ( (unsigned __int8)objc_msgSend(v405, v577) && !(unsigned __int8)objc_msgSend(v405, v567) )
{
if ( (unsigned int)objc_msgSend(v405, "action") )
{
if ( (unsigned int)objc_msgSend(v405, "action") == 1 )
{
++v570;
--v576;
}
}
else
{
v562 = (char *)v562 + 1;
++v576;
}
}
++v404;
}
while ( v404 < (unsigned __int64)v579 );
v400 = &objc_msgSend;
v408 = (char *)objc_msgSend(v574, "countByEnumeratingWithState:objects:count:", &v500, &v583, 16LL);
v579 = v408;
}
while ( v408 );
}
else
{
v562 = 0LL;
v570 = 0LL;
v576 = (char *)v560;
}
objc_release(v574);
if ( v576 != (char *)v568 )
{
v409 = ((void *(*)(void *, const char *, ...))v400)(
&OBJC_CLASS___NSString,
"stringWithFormat:",
CFSTR("Invalid update: invalid number of sections. The number of sections contained in the table view after the update (%lu) must be equal to the number of sections contained in the table view before the update (%lu), plus or minus the number of sections inserted or deleted (%lu inserted, %lu deleted)."),
v568,
v560,
v562,
v570);
v410 = objc_retainAutoreleasedReturnValue(v409);
((void (*)(void *, const char *, ...))v400)(
v580,
"_Bug_Detected_In_Client_Of_UITableView_Invalid_Number_Of_Sections:",
v410);
objc_release(v410);
}
v578 = (char *)objc_alloc(&OBJC_CLASS____UITableViewUpdateSupport);
v411 = (char *)v580;
v579 = *(char **)((char *)v580 + 1772);
v412 = v557;
v413 = objc_msgSend(v557, "numberOfRows");
v530 = 0LL;
v531 = v413;
v414 = objc_msgSend(*(void **)(v411 + 1772), "numberOfRows");
v532 = 0LL;
v533 = v414;
v415 = v574;
v416 = objc_msgSend(
v578,
"initWithTableView:updateItems:oldRowData:newRowData:oldRowRange:newRowRange:context:",
v411,
v574,
v412,
v579,
v530,
v531,
0LL,
v414,
v539);
v417 = *(_QWORD *)(v411 + 2628);
*(_QWORD *)(v411 + 2628) = v416;
objc_release(v417);
v418 = v568;
v562 = calloc(8uLL, v568);
v419 = v560;
v570 = (char *)calloc(8uLL, v560);
v573 = (char *)calloc(8uLL, v418);
v572 = (char *)calloc(8uLL, v419);
v504 = 0LL;
v505 = 0LL;
v506 = 0LL;
v507 = 0LL;
v576 = (char *)objc_retain(v415);
v578 = (char *)objc_msgSend(v576, "countByEnumeratingWithState:objects:count:", &v504, &v582, 16LL);
if ( v578 )
{
v567 = *(char **)v505;
do
{
v575 = "indexPath";
v579 = "section";
v577 = "isSectionOperation";
v563 = "newIndexPath";
v554 = "stringWithUTF8String:";
v559 = "currentHandler";
v566 = "handleFailureInMethod:object:file:lineNumber:description:";
v420 = 0LL;
v569 = "action";
do
{
if ( *(char **)v505 != v567 )
objc_enumerationMutation(v576);
v421 = *(void **)(*((_QWORD *)&v504 + 1) + 8 * v420);
v422 = objc_msgSend(*(void **)(*((_QWORD *)&v504 + 1) + 8 * v420), v575);
v423 = (void *)objc_retainAutoreleasedReturnValue(v422);
v424 = (char *)objc_msgSend(v423, v579);
objc_release(v423);
v425 = (unsigned __int64)objc_msgSend(v421, v577);
v426 = v569;
if ( !v425 )
{
v574 = v424;
if ( !(unsigned int)objc_msgSend(v421, v569) )
{
v427 = v574;
if ( (signed __int64)v574 >= (signed __int64)v568 )
{
v434 = objc_msgSend(
&OBJC_CLASS___NSString,
v554,
"/AppleInternal/BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKitCore/UIKit-3920.40.401/UITableView.m");
v435 = objc_retainAutoreleasedReturnValue(v434);
v436 = (const __CFString *)v435;
if ( !v435 )
v436 = CFSTR("<Unknown File>");
v437 = objc_retain(v436);
objc_release(v435);
v438 = objc_msgSend(&OBJC_CLASS___NSAssertionHandler, v559);
v439 = (void *)objc_retainAutoreleasedReturnValue(v438);
objc_msgSend(
v439,
v566,
v571,
v580,
v437,
2354LL,
CFSTR("UITableView internal inconsistency: encountered out of bounds section index while validating insert updates (section=%ld, newSectionCount=%ld)"),
v574,
v568);
objc_release(v439);
objc_release(v437);
v427 = v574;
}
v428 = v562;
goto LABEL_283;
}
if ( (unsigned int)objc_msgSend(v421, v426) == 1 )
{
v427 = v574;
if ( (signed __int64)v574 >= (signed __int64)v560 )
{
v440 = objc_msgSend(
&OBJC_CLASS___NSString,
v554,
"/AppleInternal/BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKitCore/UIKit-3920.40.401/UITableView.m");
v441 = objc_retainAutoreleasedReturnValue(v440);
v442 = (const __CFString *)v441;
if ( !v441 )
v442 = CFSTR("<Unknown File>");
v443 = objc_retain(v442);
objc_release(v441);
v444 = objc_msgSend(&OBJC_CLASS___NSAssertionHandler, v559);
v445 = (void *)objc_retainAutoreleasedReturnValue(v444);
objc_msgSend(
v445,
v566,
v571,
v580,
v443,
2358LL,
CFSTR("UITableView internal inconsistency: encountered out of bounds section index while validating delete updates (section=%ld, oldSectionCount=%ld)"),
v574,
v560);
objc_release(v445);
objc_release(v443);
v427 = v574;
}
v428 = v570;
LABEL_283:
++v428[(_QWORD)v427];
goto LABEL_284;
}
v429 = (unsigned __int64)objc_msgSend(v421, v426);
v430 = v574;
if ( v429 == 3 )
{
v431 = objc_msgSend(v421, v563);
v432 = (void *)objc_retainAutoreleasedReturnValue(v431);
v433 = (signed __int64)objc_msgSend(v432, v579);
objc_release(v432);
if ( *(_QWORD *)(*(_QWORD *)(*(_QWORD *)((char *)v580 + 2628) + 264LL) + 8LL * (_QWORD)v430) != v433 )
{
if ( (signed __int64)v430 >= (signed __int64)v560 )
{
v446 = objc_msgSend(
&OBJC_CLASS___NSString,
v554,
"/AppleInternal/BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKitCore/UIKit-3920.40.401/UITableView.m");
v447 = objc_retainAutoreleasedReturnValue(v446);
v448 = (const __CFString *)v447;
if ( !v447 )
v448 = CFSTR("<Unknown File>");
v449 = v433;
v450 = objc_retain(v448);
objc_release(v447);
v451 = objc_msgSend(&OBJC_CLASS___NSAssertionHandler, v559);
v452 = (void *)objc_retainAutoreleasedReturnValue(v451);
objc_msgSend(
v452,
v566,
v571,
v580,
v450,
2364LL,
CFSTR("UITableView internal inconsistency: encountered out of bounds section index while validating move updates (section=%ld, oldSectionCount=%ld)"),
v574,
v560);
objc_release(v452);
v453 = v450;
v433 = v449;
objc_release(v453);
v430 = v574;
}
if ( v433 >= (signed __int64)v568 )
{
v454 = objc_msgSend(
&OBJC_CLASS___NSString,
v554,
"/AppleInternal/BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKitCore/UIKit-3920.40.401/UITableView.m");
v455 = objc_retainAutoreleasedReturnValue(v454);
v456 = (const __CFString *)v455;
if ( !v455 )
v456 = CFSTR("<Unknown File>");
v457 = v433;
v458 = objc_retain(v456);
objc_release(v455);
v459 = objc_msgSend(&OBJC_CLASS___NSAssertionHandler, v559);
v460 = (void *)objc_retainAutoreleasedReturnValue(v459);
objc_msgSend(
v460,
v566,
v571,
v580,
v458,
2365LL,
CFSTR("UITableView internal inconsistency: encountered out of bounds section index while validating move updates (newSection=%ld, newSectionCount=%ld)"),
v457,
v568);
objc_release(v460);
v461 = v458;
v433 = v457;
objc_release(v461);
v430 = v574;
}
++*(_QWORD *)&v572[8 * (_QWORD)v430];
++*(_QWORD *)&v573[8 * v433];
}
}
}
LABEL_284:
++v420;
}
while ( v420 < (unsigned __int64)v578 );
v462 = (char *)objc_msgSend(v576, "countByEnumeratingWithState:objects:count:", &v504, &v582, 16LL);
v578 = v462;
}
while ( v462 );
}
objc_release(v576);
v463 = v568;
if ( (signed __int64)v568 > 0 )
{
v579 = "numberOfRowsInSection:";
v567 = "stringWithFormat:";
v574 = "_Bug_Detected_In_Client_Of_UITableView_Invalid_Number_Of_Rows_In_Section:";
v575 = "stringWithUTF8String:";
v577 = "currentHandler";
v569 = "handleFailureInMethod:object:file:lineNumber:description:";
v464 = 0LL;
v465 = (char *)v580;
v466 = v565;
while ( 1 )
{
v467 = *(_QWORD *)(*(_QWORD *)(*(_QWORD *)(v465 + 2628) + 272LL) + 8 * v464);
if ( v467 != 0x7FFFFFFFFFFFFFFFLL )
{
v468 = *(_QWORD *)&v466[8 * v467];
v469 = objc_msgSend(*(void **)(v465 + 1772), v579, v464);
if ( (signed __int64)v469 < 0 )
{
v476 = objc_msgSend(
&OBJC_CLASS___NSString,
v575,
"/AppleInternal/BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKitCore/UIKit-3920.40.401/UITableView.m");
v477 = objc_retainAutoreleasedReturnValue(v476);
v478 = (const __CFString *)v477;
if ( !v477 )
v478 = CFSTR("<Unknown File>");
v479 = objc_retain(v478);
objc_release(v477);
v480 = objc_msgSend(&OBJC_CLASS___NSAssertionHandler, v577);
v578 = (char *)objc_retainAutoreleasedReturnValue(v480);
LODWORD(v549) = 0;
v481 = (char *)v580;
objc_msgSend(
v578,
v569,
v571,
v580,
v479,
2384LL,
CFSTR("Invalid update: invalid number of rows in section %lu. Attempt to delete more rows than exist in section."),
v467);
objc_release(v578);
objc_release(v479);
v465 = v481;
}
else
{
if ( (_BYTE)v549 )
{
v470 = *((_QWORD *)v562 + v464);
v471 = *(_QWORD *)&v570[8 * v467];
v472 = *(_QWORD *)&v573[8 * v464];
v473 = *(_QWORD *)&v572[8 * v467];
v465 = (char *)v580;
v466 = v565;
v463 = v568;
if ( v469 != (void *)(v472 + v470 + v468 - v471 - v473) )
{
LODWORD(v549) = 0;
v474 = objc_msgSend(
&OBJC_CLASS___NSString,
v567,
CFSTR("Invalid update: invalid number of rows in section %lu. The number of rows contained in an existing section after the update (%lu) must be equal to the number of rows contained in that section before the update (%lu), plus or minus the number of rows inserted or deleted from that section (%lu inserted, %lu deleted) and plus or minus the number of rows moved into or out of that section (%lu moved in, %lu moved out)."),
v464,
v469,
v468,
v470,
v471,
v472,
v473);
v475 = objc_retainAutoreleasedReturnValue(v474);
objc_msgSend(v580, v574, v475);
objc_release(v475);
v463 = v568;
v466 = v565;
v465 = (char *)v580;
}
goto LABEL_316;
}
LODWORD(v549) = 0;
v465 = (char *)v580;
}
v466 = v565;
v463 = v568;
}
LABEL_316:
if ( v463 == ++v464 )
goto LABEL_319;
}
}
v466 = v565;
LABEL_319:
free(v466);
free(v562);
free(v570);
free(v573);
free(v572);
if ( (_BYTE)v549 )
{
v482 = (char *)v580;
objc_msgSend(v580, "_updateWithItems:updateSupport:", v576, *(_QWORD *)((char *)v580 + 2628));
v483 = v557;
}
else
{
v482 = (char *)v580;
v483 = v557;
if ( (_BYTE)v543 )
{
objc_msgSend(v580, "reloadData");
v482 = (char *)v580;
}
}
v484 = *(_QWORD *)(v482 + 2628);
*(_QWORD *)(v482 + 2628) = 0LL;
objc_release(v484);
objc_msgSend(v580, "_numberOfRowsDidChange");
objc_release(v576);
objc_release(v564);
objc_release(v541);
objc_release(v553);
objc_release(v552);
objc_release(v540);
objc_release(v483);
v12 = v580;
v579 = (_BYTE *)(&stru_8C8 + 4);
}
((void (__fastcall *)(void *, const char *))objc_msgSend)(v12, "_endSuspendingUpdates");
v485 = *(_QWORD *)((char *)v580 + 2228);
*(_QWORD *)((char *)v580 + 2228) = 0LL;
objc_release(v485);
v486 = *(_QWORD *)((char *)v580 + 2236);
*(_QWORD *)((char *)v580 + 2236) = 0LL;
objc_release(v486);
v487 = *(_QWORD *)((char *)v580 + 2244);
*(_QWORD *)((char *)v580 + 2244) = 0LL;
objc_release(v487);
v488 = *(_QWORD *)&v579[(_QWORD)v580];
*(_QWORD *)&v579[(_QWORD)v580] = 0LL;
objc_release(v488);
v489 = ((__int64 (__fastcall *)(void *, const char *, __int64, _QWORD))objc_msgSend)(
v580,
"_shouldRestorePreReloadScrollPositionWithFirstVisibleIndexPath:scrolledToTop:",
v538,
(unsigned int)v558);
v490 = v580;
if ( v489 )
*((_BYTE *)v580 + 2819) |= 0x40u;
((void (__fastcall *)(void *, const char *))objc_msgSend)(v490, "_adjustExtraSeparators");
((void (__fastcall *)(void *, const char *))objc_msgSend)(v580, "_resumeReloads");
v491 = (char *)v580;
if ( *((_DWORD *)v580 + 705) & 0x10 )
{
((void (__fastcall *)(void *, const char *))objc_msgSend)(
v580,
"_updateFocusedCellIndexPathIfNecessaryWithLastFocusedRect:");
((void (__fastcall *)(void *, const char *))objc_msgSend)(v580, "_updateContentSize");
((void (__fastcall *)(void *, const char *))objc_msgSend)(v580, "setNeedsFocusUpdate");
((void (__fastcall *)(void *, const char *))objc_msgSend)(v580, "updateFocusIfNeeded");
v491 = (char *)v580;
v491[2820] &= 0xEFu;
}
v511 = 0LL;
v510 = 0LL;
v509 = 0LL;
v508 = 0LL;
v577 = (char *)objc_retain(*(_QWORD *)(v491 + 2020));
v579 = (char *)objc_msgSend(v577, "countByEnumeratingWithState:objects:count:", &v508, &v581, 16LL);
if ( v579 )
{
v575 = *(char **)v509;
v492 = v580;
do
{
v578 = "_existingCellForRowAtIndexPath:";
v493 = 0LL;
do
{
if ( *(char **)v509 != v575 )
objc_enumerationMutation(v577);
v494 = objc_msgSend(v492, v578, *(_QWORD *)(*((_QWORD *)&v508 + 1) + 8 * v493));
v495 = objc_retainAutoreleasedReturnValue(v494);
objc_msgSend(v492, "_cellDidShowSelectedBackground:", v495);
objc_release(v495);
++v493;
}
while ( v493 < (unsigned __int64)v579 );
v579 = (char *)objc_msgSend(v577, "countByEnumeratingWithState:objects:count:", &v508, &v581, 16LL);
}
while ( v579 );
}
objc_release(v577);
objc_release(v535);
objc_release(v538);
objc_release(v539);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment