Created
August 30, 2021 02:21
-
-
Save madordie/02e112839f2c62e8a9881b9d2a195f3b to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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