Created
December 24, 2011 16:48
-
-
Save peterix/1517773 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 sub_89289C0(int unit_) | |
{ | |
int unit__; // esi@1 | |
int v2; // eax@3 | |
int v3; // edx@3 | |
int v4; // edx@4 | |
int v5; // ecx@4 | |
int v6; // edi@5 | |
signed int v7; // edx@7 | |
signed int v8; // eax@8 | |
int v9; // ebx@8 | |
int v10; // esi@8 | |
int v11; // ecx@10 | |
char v12; // sf@16 | |
void *v13; // edx@18 | |
int v14; // eax@22 | |
int v15; // ecx@22 | |
void *v16; // ebp@22 | |
signed int v17; // edx@24 | |
signed int v18; // eax@25 | |
int v19; // ebx@25 | |
int v20; // edi@25 | |
void *v21; // eax@34 | |
__int16 v22; // bx@34 | |
__int16 v23; // ax@34 | |
__int16 v24; // bx@34 | |
__int16 v25; // ax@34 | |
__int16 v26; // bx@34 | |
__int16 v27; // ax@34 | |
int v28; // eax@34 | |
int v29; // ebx@34 | |
__int16 v30; // ax@34 | |
int v31; // ebp@36 | |
char *v32; // edx@37 | |
int v33; // ecx@37 | |
char *v34; // ecx@38 | |
unsigned int v35; // edx@43 | |
int v36; // eax@52 | |
int v37; // ebx@52 | |
void *v38; // edi@52 | |
int v39; // ecx@52 | |
int v40; // eax@52 | |
int v41; // eax@54 | |
int v42; // ebp@54 | |
void *v43; // edx@57 | |
unsigned int v44; // ecx@57 | |
unsigned int v45; // ebp@60 | |
unsigned int v46; // ebp@60 | |
unsigned int v47; // eax@61 | |
int _EDI; // edi@61 | |
unsigned int _ECX; // ecx@62 | |
int v50; // eax@65 | |
int v51; // ebp@65 | |
int v52; // edi@66 | |
int v53; // eax@67 | |
int v54; // ebx@67 | |
int v55; // eax@76 | |
int v56; // edx@76 | |
int v57; // ebx@76 | |
int v58; // eax@76 | |
int v59; // ebx@83 | |
int v60; // eax@86 | |
int v61; // eax@93 | |
char v62; // sf@95 | |
int v63; // edx@97 | |
unsigned __int8 v64; // cl@97 | |
int v65; // eax@99 | |
int v66; // eax@100 | |
int v67; // edi@101 | |
signed int v68; // edx@103 | |
signed int v69; // eax@104 | |
int v70; // ebx@104 | |
int v71; // esi@104 | |
int v72; // ecx@106 | |
char v73; // sf@112 | |
int v74; // edx@114 | |
int v75; // eax@115 | |
int v76; // ecx@115 | |
int v77; // ebp@115 | |
int v78; // ecx@116 | |
int v79; // eax@117 | |
unsigned int v80; // eax@121 | |
int v81; // edx@122 | |
char v82; // sf@129 | |
int v83; // eax@132 | |
int v84; // edx@132 | |
int v85; // edx@133 | |
int v86; // edi@133 | |
char v87; // sf@134 | |
int v88; // ebx@136 | |
__int16 v89; // si@136 | |
__int16 v90; // bp@136 | |
__int16 v91; // ST30_2@136 | |
__int16 v92; // ax@136 | |
int v93; // eax@136 | |
char v94; // al@137 | |
int v95; // ecx@139 | |
signed int v96; // eax@140 | |
signed int v97; // eax@141 | |
int v98; // esi@141 | |
int v99; // esi@143 | |
int v100; // esi@145 | |
int v101; // eax@151 | |
int v102; // edx@153 | |
int v103; // ecx@153 | |
int v104; // ecx@154 | |
int v105; // eax@155 | |
signed int v106; // edx@155 | |
int v107; // ebp@155 | |
int v108; // edi@155 | |
signed int v109; // edx@155 | |
int v110; // ebx@157 | |
int v111; // edx@159 | |
int v112; // ecx@159 | |
int v113; // esi@159 | |
int v114; // edx@162 | |
int v115; // ecx@162 | |
int v116; // ecx@163 | |
int v117; // ebp@165 | |
int v118; // edi@165 | |
int v119; // ebx@167 | |
int v120; // edx@169 | |
unsigned int v121; // eax@173 | |
int v122; // edx@174 | |
int v123; // eax@181 | |
int v124; // edx@181 | |
int v125; // edi@182 | |
int v126; // ebx@183 | |
__int16 v127; // ST2C_2@183 | |
__int16 v128; // bp@183 | |
__int16 v129; // ST30_2@183 | |
__int16 v130; // ax@183 | |
int v131; // edx@188 | |
int v132; // eax@191 | |
int v133; // ebp@191 | |
signed int v134; // eax@196 | |
signed int v135; // edx@196 | |
signed int v136; // ecx@196 | |
int v137; // eax@196 | |
int v138; // eax@196 | |
int v139; // ebx@196 | |
char v140; // sf@202 | |
int v141; // eax@204 | |
unsigned int v142; // eax@208 | |
int v143; // edx@209 | |
int v144; // eax@216 | |
int v145; // eax@221 | |
int v146; // edx@221 | |
char v147; // sf@223 | |
int v148; // eax@226 | |
int v149; // ebp@226 | |
int v150; // edi@226 | |
int v151; // ebx@227 | |
int v152; // eax@231 | |
int v153; // esi@231 | |
int v154; // edx@233 | |
int v155; // eax@233 | |
int v156; // eax@234 | |
char v157; // sf@237 | |
void *v158; // eax@239 | |
int j; // ecx@240 | |
int v160; // eax@241 | |
int v161; // eax@241 | |
int v162; // edx@241 | |
int v163; // edx@241 | |
int v164; // esi@242 | |
int v165; // ebx@243 | |
unsigned int v166; // eax@244 | |
int v167; // eax@245 | |
signed int v168; // edx@250 | |
signed int v169; // eax@251 | |
int v170; // edi@251 | |
int v171; // esi@251 | |
int v172; // ecx@253 | |
char v173; // sf@259 | |
int v174; // edx@263 | |
int v175; // ecx@263 | |
int v176; // ecx@264 | |
signed int v177; // edx@266 | |
int v178; // ebp@266 | |
int v179; // edi@266 | |
signed int v180; // edx@266 | |
int v181; // ebx@268 | |
int v182; // edx@270 | |
unsigned int v183; // eax@279 | |
int v184; // edx@280 | |
int v185; // eax@285 | |
int v186; // edx@285 | |
int v187; // ecx@286 | |
char v188; // sf@287 | |
int v189; // eax@290 | |
int v190; // edx@292 | |
int v191; // eax@292 | |
char v192; // sf@297 | |
char v193; // sf@298 | |
int v194; // eax@302 | |
int v195; // edx@302 | |
int v196; // eax@304 | |
int v197; // eax@322 | |
signed int v198; // esi@327 | |
signed int v199; // eax@328 | |
int v200; // ebx@328 | |
int v201; // edi@329 | |
int v202; // eax@335 | |
int v203; // eax@339 | |
char v204; // al@346 | |
signed int v205; // eax@347 | |
signed int v206; // ecx@347 | |
signed int v207; // ebx@347 | |
int v208; // eax@347 | |
int v209; // eax@347 | |
int v210; // esi@347 | |
int v211; // eax@360 | |
int v212; // ebx@360 | |
int v213; // eax@374 | |
int v214; // esi@374 | |
int v215; // ecx@382 | |
int v216; // eax@384 | |
int v217; // eax@388 | |
void *v218; // edx@390 | |
int v219; // edx@390 | |
void *v220; // ebp@390 | |
signed int v221; // eax@390 | |
signed int v222; // eax@390 | |
int v223; // ebx@391 | |
void *v224; // eax@394 | |
unsigned int v225; // ecx@394 | |
unsigned int v226; // ecx@398 | |
int _EBP; // ebp@398 | |
unsigned int _EBX; // ebx@399 | |
int v229; // ebp@402 | |
int v230; // ebx@403 | |
int v231; // eax@406 | |
unsigned int v232; // ecx@406 | |
unsigned int v233; // edx@410 | |
int _EAX; // eax@411 | |
unsigned int _EBX; // ebx@411 | |
unsigned int v236; // edx@415 | |
signed int v237; // edx@418 | |
signed int v238; // eax@419 | |
int v239; // ebx@419 | |
int v240; // ebp@419 | |
int v241; // ecx@421 | |
int v242; // ebp@431 | |
signed int v243; // edx@433 | |
signed int v244; // eax@434 | |
int v245; // ebx@434 | |
int v246; // ecx@436 | |
void *v247; // eax@445 | |
int v248; // edx@445 | |
__int16 v249; // ST34_2@445 | |
__int16 v250; // ax@445 | |
__int16 v251; // ST34_2@445 | |
__int16 v252; // ax@445 | |
__int16 v253; // ST34_2@445 | |
__int16 v254; // ax@445 | |
int v255; // eax@445 | |
int v256; // ebp@445 | |
__int16 v257; // ax@445 | |
int v258; // edx@447 | |
char *v259; // ecx@448 | |
int v260; // ebx@448 | |
char *v261; // ebx@449 | |
char *v262; // ebp@450 | |
char v263; // sf@455 | |
int v264; // ebp@457 | |
char *v265; // edx@458 | |
signed int v266; // ecx@458 | |
char v267; // sf@460 | |
char v268; // sf@467 | |
int v269; // ecx@469 | |
char *v270; // edx@470 | |
signed int v271; // ebp@470 | |
char v272; // sf@472 | |
int v273; // eax@476 | |
int v274; // edx@476 | |
int v275; // edx@477 | |
int v276; // ecx@477 | |
char v277; // sf@478 | |
int v278; // eax@481 | |
int v279; // edx@481 | |
int v280; // eax@481 | |
int v281; // edx@481 | |
int v282; // ebx@482 | |
char v283; // sf@483 | |
int v284; // eax@486 | |
int v285; // ebp@488 | |
int v286; // eax@488 | |
int v287; // eax@489 | |
int v288; // ebx@491 | |
int v289; // edx@492 | |
int v290; // esi@492 | |
signed int v291; // esi@494 | |
signed int v292; // ebx@495 | |
int v293; // edi@495 | |
int v294; // eax@503 | |
int v295; // ecx@503 | |
int v296; // edx@504 | |
int v297; // eax@509 | |
int v298; // eax@511 | |
int v299; // eax@512 | |
int v300; // edx@512 | |
int v301; // ecx@512 | |
int v302; // ebp@513 | |
unsigned int v303; // edx@514 | |
unsigned int v304; // ecx@514 | |
int v305; // ebx@514 | |
unsigned int v306; // eax@515 | |
int v307; // eax@516 | |
signed int v308; // edx@521 | |
signed int v309; // eax@522 | |
int v310; // ebp@522 | |
int v311; // ecx@524 | |
char v312; // sf@530 | |
char v313; // sf@534 | |
char v314; // sf@536 | |
int v315; // eax@541 | |
int v316; // edx@541 | |
int v317; // ebx@541 | |
int v318; // eax@543 | |
int v319; // eax@555 | |
int v320; // edx@555 | |
int v321; // ecx@556 | |
char v322; // sf@557 | |
int v323; // eax@560 | |
int v324; // edx@560 | |
int v325; // eax@560 | |
int v326; // edx@560 | |
int v327; // ebx@561 | |
char v328; // sf@562 | |
int v329; // eax@565 | |
int v330; // ebp@567 | |
int v331; // eax@567 | |
int v332; // eax@568 | |
int v333; // edx@570 | |
int v334; // ebx@571 | |
int v335; // edi@571 | |
signed int v336; // edi@573 | |
signed int v337; // edx@574 | |
int v338; // esi@574 | |
int v339; // eax@583 | |
int v340; // ecx@584 | |
int v341; // eax@585 | |
int v342; // eax@586 | |
int v343; // edx@586 | |
int v344; // ebx@586 | |
int v345; // ebp@587 | |
unsigned int v346; // edx@588 | |
unsigned int v347; // ecx@588 | |
int v348; // ebx@588 | |
unsigned int v349; // eax@589 | |
int v350; // eax@590 | |
signed int v351; // edx@595 | |
signed int v352; // eax@596 | |
int v353; // ebp@596 | |
int v354; // ecx@598 | |
char v355; // sf@604 | |
char v356; // sf@608 | |
char v357; // sf@610 | |
int v358; // eax@615 | |
int v359; // edx@615 | |
int v360; // ebx@615 | |
int v361; // eax@617 | |
int v362; // eax@629 | |
int v363; // edx@629 | |
unsigned int v364; // edx@631 | |
int v365; // eax@633 | |
int v366; // edx@636 | |
int v367; // ecx@636 | |
int v368; // eax@637 | |
int v369; // ecx@637 | |
signed int v370; // edx@639 | |
signed int v371; // eax@640 | |
int v372; // ebx@640 | |
int v373; // ebp@640 | |
int v374; // ecx@642 | |
int v375; // edx@649 | |
unsigned int v376; // eax@651 | |
unsigned __int16 v377; // ax@656 | |
unsigned int v378; // eax@658 | |
int v379; // eax@661 | |
int v380; // edx@663 | |
int v381; // edx@664 | |
int v383; // ebx@668 | |
int v384; // ebp@668 | |
signed int v385; // edx@670 | |
signed int v386; // eax@671 | |
int v387; // ebx@671 | |
int v388; // ecx@673 | |
int v389; // eax@683 | |
int v390; // edx@685 | |
int v391; // ebp@685 | |
int v392; // eax@687 | |
int v393; // ecx@687 | |
char *v394; // eax@697 | |
int v395; // eax@699 | |
signed int v396; // edx@703 | |
signed int v397; // eax@704 | |
int v398; // ebx@704 | |
int v399; // ebp@704 | |
int v400; // ecx@706 | |
int v402; // edx@714 | |
int v403; // ecx@714 | |
int v404; // ecx@715 | |
int v405; // eax@720 | |
int v406; // edx@720 | |
int v407; // ecx@720 | |
int v408; // ebx@720 | |
int v409; // eax@720 | |
int v410; // ecx@721 | |
int v411; // edx@728 | |
int v412; // ebp@728 | |
int v413; // eax@731 | |
int v414; // eax@739 | |
int v415; // ecx@739 | |
int v416; // eax@740 | |
int v417; // edx@745 | |
int v418; // ebp@745 | |
int v419; // eax@747 | |
int v420; // ebx@765 | |
int v421; // eax@767 | |
int v422; // ecx@767 | |
int v423; // ecx@771 | |
int v424; // ebp@771 | |
int v425; // eax@773 | |
int v426; // edx@773 | |
int v427; // esi@783 | |
int v428; // eax@785 | |
int v429; // ecx@791 | |
int v430; // eax@793 | |
int v431; // ecx@797 | |
int v432; // eax@800 | |
int v433; // [sp+2Ch] [bp-E0h]@136 | |
int v434; // [sp+34h] [bp-D8h]@2 | |
int v435; // [sp+34h] [bp-D8h]@3 | |
int v436; // [sp+34h] [bp-D8h]@34 | |
int v437; // [sp+34h] [bp-D8h]@42 | |
int v438; // [sp+34h] [bp-D8h]@44 | |
int v439; // [sp+34h] [bp-D8h]@52 | |
int v440; // [sp+34h] [bp-D8h]@100 | |
int v441; // [sp+34h] [bp-D8h]@132 | |
int v442; // [sp+34h] [bp-D8h]@181 | |
int v443; // [sp+34h] [bp-D8h]@221 | |
int v444; // [sp+34h] [bp-D8h]@241 | |
unsigned int v445; // [sp+34h] [bp-D8h]@393 | |
unsigned int v446; // [sp+34h] [bp-D8h]@397 | |
int v447; // [sp+34h] [bp-D8h]@403 | |
unsigned int v448; // [sp+34h] [bp-D8h]@409 | |
int v449; // [sp+34h] [bp-D8h]@414 | |
int v450; // [sp+34h] [bp-D8h]@445 | |
int v451; // [sp+34h] [bp-D8h]@481 | |
int v452; // [sp+34h] [bp-D8h]@512 | |
int v453; // [sp+34h] [bp-D8h]@560 | |
int v454; // [sp+34h] [bp-D8h]@586 | |
int v455; // [sp+34h] [bp-D8h]@630 | |
int v456; // [sp+34h] [bp-D8h]@668 | |
int v457; // [sp+34h] [bp-D8h]@683 | |
int v458; // [sp+34h] [bp-D8h]@699 | |
int v459; // [sp+38h] [bp-D4h]@3 | |
int v460; // [sp+38h] [bp-D4h]@27 | |
int v461; // [sp+38h] [bp-D4h]@60 | |
int v462; // [sp+38h] [bp-D4h]@99 | |
signed int v463; // [sp+38h] [bp-D4h]@133 | |
signed int v464; // [sp+38h] [bp-D4h]@182 | |
int v465; // [sp+38h] [bp-D4h]@222 | |
int v466; // [sp+38h] [bp-D4h]@242 | |
int v467; // [sp+38h] [bp-D4h]@286 | |
int v468; // [sp+38h] [bp-D4h]@410 | |
unsigned int v469; // [sp+38h] [bp-D4h]@415 | |
int v470; // [sp+38h] [bp-D4h]@434 | |
int v471; // [sp+38h] [bp-D4h]@481 | |
int v472; // [sp+38h] [bp-D4h]@513 | |
int v473; // [sp+38h] [bp-D4h]@560 | |
int v474; // [sp+38h] [bp-D4h]@587 | |
int v475; // [sp+38h] [bp-D4h]@629 | |
int v476; // [sp+38h] [bp-D4h]@661 | |
int v477; // [sp+38h] [bp-D4h]@791 | |
int i; // [sp+3Ch] [bp-D0h]@4 | |
unsigned int v479; // [sp+3Ch] [bp-D0h]@60 | |
int unit___; // [sp+3Ch] [bp-D0h]@100 | |
int v481; // [sp+3Ch] [bp-D0h]@140 | |
int v482; // [sp+3Ch] [bp-D0h]@189 | |
int v483; // [sp+3Ch] [bp-D0h]@227 | |
int v484; // [sp+3Ch] [bp-D0h]@240 | |
int v485; // [sp+3Ch] [bp-D0h]@285 | |
int v486; // [sp+3Ch] [bp-D0h]@390 | |
int v487; // [sp+3Ch] [bp-D0h]@409 | |
int v488; // [sp+3Ch] [bp-D0h]@486 | |
int v489; // [sp+3Ch] [bp-D0h]@511 | |
int v490; // [sp+3Ch] [bp-D0h]@565 | |
int v491; // [sp+3Ch] [bp-D0h]@585 | |
int v492; // [sp+3Ch] [bp-D0h]@765 | |
int v493; // [sp+3Ch] [bp-D0h]@783 | |
int v494; // [sp+3Ch] [bp-D0h]@797 | |
int v495; // [sp+40h] [bp-CCh]@3 | |
unsigned int v496; // [sp+40h] [bp-CCh]@43 | |
int v497; // [sp+40h] [bp-CCh]@75 | |
int v498; // [sp+40h] [bp-CCh]@142 | |
int v499; // [sp+40h] [bp-CCh]@157 | |
int v500; // [sp+40h] [bp-CCh]@167 | |
int v501; // [sp+40h] [bp-CCh]@189 | |
int v502; // [sp+40h] [bp-CCh]@241 | |
int v503; // [sp+40h] [bp-CCh]@268 | |
int v504; // [sp+40h] [bp-CCh]@382 | |
int v505; // [sp+40h] [bp-CCh]@397 | |
int v506; // [sp+40h] [bp-CCh]@416 | |
signed int v507; // [sp+40h] [bp-CCh]@445 | |
int v508; // [sp+40h] [bp-CCh]@476 | |
int v509; // [sp+40h] [bp-CCh]@541 | |
int v510; // [sp+40h] [bp-CCh]@555 | |
int v511; // [sp+40h] [bp-CCh]@615 | |
int v512; // [sp+40h] [bp-CCh]@637 | |
int v513; // [sp+40h] [bp-CCh]@656 | |
int v514; // [sp+40h] [bp-CCh]@662 | |
int *v515; // [sp+44h] [bp-C8h]@22 | |
signed int v516; // [sp+44h] [bp-C8h]@34 | |
int v517; // [sp+44h] [bp-C8h]@42 | |
int v518; // [sp+44h] [bp-C8h]@100 | |
int v519; // [sp+44h] [bp-C8h]@410 | |
int v520; // [sp+44h] [bp-C8h]@414 | |
int v521; // [sp+44h] [bp-C8h]@477 | |
int v522; // [sp+44h] [bp-C8h]@556 | |
int v523; // [sp+44h] [bp-C8h]@596 | |
char v524; // [sp+44h] [bp-C8h]@662 | |
int v525; // [sp+44h] [bp-C8h]@699 | |
__int16 v526; // [sp+48h] [bp-C4h]@34 | |
char v527; // [sp+48h] [bp-C4h]@100 | |
signed int v528; // [sp+48h] [bp-C4h]@133 | |
signed int v529; // [sp+48h] [bp-C4h]@182 | |
int v530; // [sp+48h] [bp-C4h]@239 | |
__int16 v531; // [sp+48h] [bp-C4h]@445 | |
signed int v532; // [sp+48h] [bp-C4h]@477 | |
signed int v533; // [sp+48h] [bp-C4h]@556 | |
int v534; // [sp+48h] [bp-C4h]@700 | |
int v535; // [sp+4Ch] [bp-C0h]@97 | |
int v536; // [sp+4Ch] [bp-C0h]@389 | |
int v537; // [sp+4Ch] [bp-C0h]@492 | |
int v538; // [sp+4Ch] [bp-C0h]@522 | |
char v539; // [sp+50h] [bp-BCh]@34 | |
int v540; // [sp+50h] [bp-BCh]@99 | |
int v541; // [sp+50h] [bp-BCh]@222 | |
int v542; // [sp+50h] [bp-BCh]@240 | |
int v543; // [sp+50h] [bp-BCh]@496 | |
int v544; // [sp+50h] [bp-BCh]@509 | |
int v545; // [sp+50h] [bp-BCh]@571 | |
int v546; // [sp+50h] [bp-BCh]@583 | |
int v547; // [sp+50h] [bp-BCh]@671 | |
char v548; // [sp+54h] [bp-B8h]@99 | |
int v549; // [sp+54h] [bp-B8h]@240 | |
char v550; // [sp+54h] [bp-B8h]@445 | |
int v551; // [sp+54h] [bp-B8h]@489 | |
int v552; // [sp+54h] [bp-B8h]@510 | |
int v553; // [sp+54h] [bp-B8h]@575 | |
int v554; // [sp+54h] [bp-B8h]@584 | |
int v555; // [sp+54h] [bp-B8h]@701 | |
int v556; // [sp+54h] [bp-B8h]@728 | |
char v557; // [sp+58h] [bp-B4h]@100 | |
int v558; // [sp+58h] [bp-B4h]@447 | |
int v559; // [sp+58h] [bp-B4h]@489 | |
int v560; // [sp+58h] [bp-B4h]@568 | |
int v561; // [sp+58h] [bp-B4h]@584 | |
int v562; // [sp+58h] [bp-B4h]@728 | |
int v563; // [sp+58h] [bp-B4h]@745 | |
int v564; // [sp+5Ch] [bp-B0h]@3 | |
int v565; // [sp+5Ch] [bp-B0h]@489 | |
int v566; // [sp+5Ch] [bp-B0h]@510 | |
int v567; // [sp+5Ch] [bp-B0h]@568 | |
int v568; // [sp+5Ch] [bp-B0h]@745 | |
int v569; // [sp+60h] [bp-ACh]@100 | |
int v570; // [sp+60h] [bp-ACh]@477 | |
int v571; // [sp+60h] [bp-ACh]@510 | |
int unit____; // [sp+60h] [bp-ACh]@568 | |
int v573; // [sp+60h] [bp-ACh]@584 | |
int v574; // [sp+64h] [bp-A8h]@477 | |
int v575; // [sp+64h] [bp-A8h]@556 | |
int v576; // [sp+68h] [bp-A4h]@477 | |
int v577; // [sp+68h] [bp-A4h]@556 | |
int v578; // [sp+6Ch] [bp-A0h]@556 | |
void *v579; // [sp+70h] [bp-9Ch]@18 | |
unsigned int v580; // [sp+74h] [bp-98h]@52 | |
int v581; // [sp+78h] [bp-94h]@52 | |
void *v582; // [sp+80h] [bp-8Ch]@629 | |
int v583; // [sp+84h] [bp-88h]@629 | |
int v584; // [sp+88h] [bp-84h]@629 | |
void *v585; // [sp+90h] [bp-7Ch]@34 | |
int v586; // [sp+94h] [bp-78h]@34 | |
int v587; // [sp+98h] [bp-74h]@34 | |
void *v588; // [sp+A0h] [bp-6Ch]@38 | |
unsigned int v589; // [sp+A4h] [bp-68h]@390 | |
int v590; // [sp+A8h] [bp-64h]@390 | |
void *v591; // [sp+B0h] [bp-5Ch]@37 | |
unsigned int v592; // [sp+B4h] [bp-58h]@390 | |
int v593; // [sp+B8h] [bp-54h]@390 | |
int v594; // [sp+BCh] [bp-50h]@218 | |
int v595; // [sp+C0h] [bp-4Ch]@194 | |
int v596; // [sp+D0h] [bp-3Ch]@194 | |
int v597; // [sp+E0h] [bp-2Ch]@22 | |
unit__ = unit_; | |
if ( !(*(_BYTE *)(unit_ + 0x144) & 1) ) | |
return; | |
v434 = *(_WORD *)(unit_ + 0x110); | |
if ( !*(_WORD *)(unit_ + 0x110) ) | |
{ | |
v564 = unit_ + 0x114; | |
v435 = *(_DWORD *)(unit_ + 0x114); | |
v495 = *(_DWORD *)(unit_ + 0x114); | |
v2 = *(_DWORD *)(unit_ + 280); | |
v3 = ((*(_DWORD *)(unit_ + 280) - v435) >> 2) - 1; | |
v459 = v3; | |
if ( v3 < 0 ) | |
goto LABEL_97; | |
v5 = *(_DWORD *)(unit_ + 0x114); | |
v4 = 4 * v3; | |
for ( i = v4; ; v4 = i ) | |
{ | |
v6 = *(_DWORD *)(v5 + v4); | |
if ( !((dword_940B1F4 - dword_940B1F0) >> 2) | |
|| v6 == -1 | |
|| (v7 = ((dword_940B1F4 - dword_940B1F0) >> 2) - 1, v7 < 0) ) | |
goto LABEL_16; | |
v8 = v7 >> 1; | |
v9 = *(_DWORD *)(dword_940B1F0 + 4 * (v7 >> 1)); | |
v10 = *(_DWORD *)(v9 + 20); | |
if ( v6 != v10 ) | |
break; | |
LABEL_92: | |
if ( !v9 ) | |
goto LABEL_16; | |
v61 = (signed __int16)(**(int (__cdecl ***)(_DWORD))v9)(v9); | |
if ( (signed __int16)v61 == 24 || v61 == 61 ) | |
{ | |
v74 = *(_DWORD *)(v9 + 20); | |
if ( !((dword_93F73D4 - dword_93F73D0) >> 2) | |
|| v74 == -1 | |
|| (v198 = ((dword_93F73D4 - dword_93F73D0) >> 2) - 1, v198 < 0) ) | |
goto LABEL_115; | |
v199 = v198 >> 1; | |
v200 = *(_DWORD *)(dword_93F73D0 + 4 * (v198 >> 1)); | |
if ( v74 == v200 ) | |
{ | |
LABEL_364: | |
if ( *(_DWORD *)(dword_93F73DC + 4 * v199) != *(_DWORD *)(unit_ + 0xA8) ) | |
goto LABEL_115; | |
v435 = *(_DWORD *)(unit_ + 0x114); | |
v495 = *(_DWORD *)(unit_ + 0x114); | |
} | |
else | |
{ | |
v201 = 0; | |
while ( 1 ) | |
{ | |
if ( v74 < v200 ) | |
v198 = v199 - 1; | |
else | |
v201 = v199 + 1; | |
if ( v201 > v198 ) | |
break; | |
v199 = (v198 + v201) >> 1; | |
v200 = *(_DWORD *)(dword_93F73D0 + 4 * v199); | |
if ( v74 == v200 ) | |
goto LABEL_364; | |
} | |
LABEL_115: | |
v77 = *(_DWORD *)(unit_ + 0x114); | |
v76 = *(_DWORD *)(unit_ + 0x118); | |
v75 = v77 + 4 + i; | |
if ( v76 != v75 ) | |
{ | |
v78 = (v76 - v75) >> 2; | |
if ( v78 ) | |
memmove((void *)(v77 + i), (const void *)(v77 + 4 + i), 4 * v78); | |
} | |
v79 = *(_DWORD *)(unit_ + 0x114); | |
*(_DWORD *)(unit_ + 0x118) -= 4; | |
v435 = v79; | |
v495 = v79; | |
} | |
LABEL_16: | |
i -= 4; | |
v12 = v459-- - 1 < 0; | |
if ( v12 ) | |
goto LABEL_96; | |
goto LABEL_17; | |
} | |
i -= 4; | |
v62 = v459-- - 1 < 0; | |
v435 = *(_DWORD *)(unit_ + 0x114); | |
v495 = *(_DWORD *)(unit_ + 0x114); | |
if ( v62 ) | |
{ | |
LABEL_96: | |
unit__ = unit_; | |
v2 = *(_DWORD *)(unit_ + 0x118); | |
LABEL_97: | |
v64 = *(_BYTE *)(unit__ + 0x578); | |
v63 = 38; | |
v535 = v64 >= 1u ? 0x19 : 0; | |
if ( !*(_BYTE *)(unit__ + 0x556) ) | |
v63 = -(*(_BYTE *)(unit__ + 0x54C) < 1u); | |
v548 = v64 != 0; | |
v65 = ((v2 - v435) >> 2) - 1; | |
v540 = v63; | |
v462 = v65; | |
if ( v65 >= 0 ) | |
{ | |
v440 = 4 * v65; | |
v557 = 0; | |
v518 = unit__ + 0xA8; | |
v527 = v64 != 0; | |
v66 = v495; | |
v569 = unit__ + 0x118; | |
unit___ = unit__; | |
while ( 2 ) | |
{ | |
v67 = *(_DWORD *)(v66 + v440); | |
if ( (dword_940B1F4 - dword_940B1F0) >> 2 ) | |
{ | |
if ( v67 != -1 ) | |
{ | |
v68 = ((dword_940B1F4 - dword_940B1F0) >> 2) - 1; | |
if ( v68 >= 0 ) | |
{ | |
v69 = v68 >> 1; | |
v70 = *(_DWORD *)(dword_940B1F0 + 4 * (v68 >> 1)); | |
v71 = *(_DWORD *)(v70 + 20); | |
if ( v67 != v71 ) | |
{ | |
if ( (dword_940B1F4 - dword_940B1F0) >> 2 != 1 ) | |
{ | |
v72 = 0; | |
do | |
{ | |
if ( v67 < v71 ) | |
{ | |
v68 = v69 - 1; | |
if ( v69 - 1 < v72 ) | |
goto LABEL_112; | |
} | |
else | |
{ | |
v72 = v69 + 1; | |
if ( v68 < v69 + 1 ) | |
goto LABEL_112; | |
} | |
v69 = (v72 + v68) >> 1; | |
v70 = *(_DWORD *)(dword_940B1F0 + 4 * v69); | |
v71 = *(_DWORD *)(v70 + 20); | |
if ( v67 == v71 ) | |
goto LABEL_118; | |
} | |
while ( v68 != v72 ); | |
} | |
break; | |
} | |
LABEL_118: | |
if ( v70 ) | |
{ | |
if ( (unsigned __int16)(**(int (__cdecl ***)(_DWORD))v70)(v70) == 61 ) | |
{ | |
if ( v527 ) | |
{ | |
v80 = sub_8062200(*(_DWORD *)(v70 + 20), &dword_93F73D0); | |
v527 = 0; | |
if ( v80 != -1 ) | |
{ | |
v81 = dword_93F73E0; | |
if ( v80 < (dword_93F73E0 - dword_93F73DC) >> 2 ) | |
{ | |
v144 = dword_93F73DC + 4 * v80; | |
if ( dword_93F73E0 == dword_93F73E4 ) | |
{ | |
sub_8052120(&dword_93F73DC, v144, v518); | |
} | |
else | |
{ | |
if ( dword_93F73E0 == v144 ) | |
{ | |
if ( dword_93F73E0 ) | |
*(_DWORD *)dword_93F73E0 = *(_DWORD *)(unit___ + 0xA8); | |
dword_93F73E0 = v81 + 4; | |
} | |
else | |
{ | |
v594 = *(_DWORD *)(unit___ + 0xA8); | |
sub_8053990(&dword_93F73DC, v144, &v594); | |
} | |
} | |
v527 = 0; | |
} | |
else | |
{ | |
if ( dword_93F73E0 == dword_93F73E4 ) | |
{ | |
sub_8052120(&dword_93F73DC, dword_93F73E0, v518); | |
} | |
else | |
{ | |
if ( dword_93F73E0 ) | |
*(_DWORD *)dword_93F73E0 = *(_DWORD *)(unit___ + 0xA8); | |
dword_93F73E0 = v81 + 4; | |
v527 = 0; | |
} | |
} | |
} | |
} | |
else | |
{ | |
v114 = *(_DWORD *)(unit___ + 0x114) + v440; | |
v115 = *(_DWORD *)(unit___ + 0x118); | |
if ( v115 != v114 + 4 ) | |
{ | |
v116 = (v115 - (v114 + 4)) >> 2; | |
if ( v116 ) | |
memmove((void *)v114, (const void *)(v114 + 4), 4 * v116); | |
} | |
v105 = dword_93F73D4; | |
v118 = dword_93F73D0; | |
v117 = *(_DWORD *)(v70 + 20); | |
*(_DWORD *)(unit___ + 0x118) -= 4; | |
if ( (v105 - v118) >> 2 && v117 != -1 ) | |
{ | |
v119 = 0; | |
v500 = ((v105 - v118) >> 2) - 1; | |
while ( v119 <= v500 ) | |
{ | |
v120 = (v119 + v500) >> 1; | |
v113 = 4 * v120; | |
v112 = v118 + 4 * v120; | |
if ( v117 == *(_DWORD *)v112 ) | |
goto LABEL_371; | |
if ( v117 >= *(_DWORD *)v112 ) | |
v119 = v120 + 1; | |
else | |
v500 = v120 - 1; | |
} | |
} | |
} | |
break; | |
} | |
if ( (unsigned __int16)(**(int (__cdecl ***)(_DWORD))v70)(v70) == 38 ) | |
{ | |
if ( v535 <= 0 ) | |
{ | |
v174 = *(_DWORD *)(unit___ + 0x114) + v440; | |
v175 = *(_DWORD *)(unit___ + 0x118); | |
if ( v175 != v174 + 4 ) | |
{ | |
v176 = (v175 - (v174 + 4)) >> 2; | |
if ( v176 ) | |
memmove((void *)v174, (const void *)(v174 + 4), 4 * v176); | |
} | |
v105 = dword_93F73D4; | |
v179 = dword_93F73D0; | |
v180 = dword_93F73D4 - dword_93F73D0; | |
*(_DWORD *)(unit___ + 0x118) -= 4; | |
v177 = v180 >> 2; | |
v178 = *(_DWORD *)(v70 + 20); | |
if ( v177 && *(_DWORD *)(v70 + 20) != -1 ) | |
{ | |
v181 = 0; | |
v503 = v177 - 1; | |
while ( v181 <= v503 ) | |
{ | |
v182 = (v181 + v503) >> 1; | |
v113 = 4 * v182; | |
v112 = v179 + 4 * v182; | |
if ( v178 == *(_DWORD *)v112 ) | |
goto LABEL_371; | |
if ( v178 >= *(_DWORD *)v112 ) | |
v181 = v182 + 1; | |
else | |
v503 = v182 - 1; | |
} | |
} | |
break; | |
} | |
v440 -= 4; | |
v535 -= (*(int (__cdecl **)(int))(*(_DWORD *)v70 + 0x214))(v70); | |
v82 = v462-- - 1 < 0; | |
if ( v82 ) | |
{ | |
LABEL_130: | |
unit__ = unit___; | |
goto LABEL_131; | |
} | |
LABEL_113: | |
v66 = *(_DWORD *)(unit___ + 0x114); | |
continue; | |
} | |
if ( (unsigned __int16)(**(int (__cdecl ***)(_DWORD))v70)(v70) == 24 ) | |
{ | |
if ( v548 ) | |
{ | |
if ( (unsigned __int8)(*(int (__cdecl **)(int))(*(_DWORD *)v70 + 0x2F4))(v70) ) | |
goto LABEL_279; | |
sub_88B6E00(v462, v569); | |
v211 = sub_88B6B90(dword_93F73D4, dword_93F73D0); | |
v212 = v211; | |
if ( v211 != -1 ) | |
{ | |
sub_88B6E00(v211, &dword_93F73D4); | |
sub_88B6E00(v212, &dword_93F73E0); | |
} | |
} | |
else | |
{ | |
if ( v540 == -1 ) | |
goto LABEL_808; | |
v101 = (signed __int16)(*(int (__cdecl **)(int))(*(_DWORD *)v70 + 0x254))(v70); | |
if ( (signed __int16)v101 == -1 ) | |
v101 = (signed __int16)(*(int (__cdecl **)(int))(*(_DWORD *)v70 + 0x250))(v70); | |
if ( v540 != v101 ) | |
{ | |
LABEL_808: | |
v102 = *(_DWORD *)(unit___ + 0x114) + v440; | |
v103 = *(_DWORD *)(unit___ + 0x118); | |
if ( v103 != v102 + 4 ) | |
{ | |
v104 = (v103 - (v102 + 4)) >> 2; | |
if ( v104 ) | |
memmove((void *)v102, (const void *)(v102 + 4), 4 * v104); | |
} | |
v105 = dword_93F73D4; | |
v108 = dword_93F73D0; | |
v109 = dword_93F73D4 - dword_93F73D0; | |
*(_DWORD *)(unit___ + 0x118) -= 4; | |
v106 = v109 >> 2; | |
v107 = *(_DWORD *)(v70 + 20); | |
if ( v106 && *(_DWORD *)(v70 + 20) != -1 ) | |
{ | |
v110 = 0; | |
v499 = v106 - 1; | |
while ( 1 ) | |
{ | |
if ( v110 > v499 ) | |
goto LABEL_112; | |
v111 = (v110 + v499) >> 1; | |
v113 = 4 * v111; | |
v112 = v108 + 4 * v111; | |
if ( v107 == *(_DWORD *)v112 ) | |
break; | |
if ( v107 >= *(_DWORD *)v112 ) | |
v110 = v111 + 1; | |
else | |
v499 = v111 - 1; | |
} | |
LABEL_371: | |
if ( v105 != v112 + 4 ) | |
{ | |
if ( (v105 - (v112 + 4)) >> 2 ) | |
{ | |
memmove((void *)v112, (const void *)(v112 + 4), 4 * ((v105 - (v112 + 4)) >> 2)); | |
v105 = dword_93F73D4; | |
} | |
} | |
dword_93F73D4 = v105 - 4; | |
v213 = dword_93F73E0; | |
v214 = dword_93F73DC + v113; | |
if ( dword_93F73E0 != v214 + 4 ) | |
{ | |
if ( (dword_93F73E0 - (v214 + 4)) >> 2 ) | |
{ | |
memmove((void *)v214, (const void *)(v214 + 4), 4 * ((dword_93F73E0 - (v214 + 4)) >> 2)); | |
v213 = dword_93F73E0; | |
} | |
} | |
dword_93F73E0 = v213 - 4; | |
} | |
break; | |
} | |
LABEL_279: | |
v183 = sub_8062200(*(_DWORD *)(v70 + 20), &dword_93F73D0); | |
v557 = 1; | |
if ( v183 != -1 ) | |
{ | |
v184 = dword_93F73E0; | |
if ( v183 < (dword_93F73E0 - dword_93F73DC) >> 2 ) | |
{ | |
v202 = dword_93F73DC + 4 * v183; | |
if ( dword_93F73E0 == dword_93F73E4 ) | |
{ | |
sub_8052120(&dword_93F73DC, v202, v518); | |
} | |
else | |
{ | |
if ( dword_93F73E0 == v202 ) | |
{ | |
if ( dword_93F73E0 ) | |
*(_DWORD *)dword_93F73E0 = *(_DWORD *)(unit___ + 0xA8); | |
dword_93F73E0 = v184 + 4; | |
} | |
else | |
{ | |
v594 = *(_DWORD *)(unit___ + 0xA8); | |
sub_8053990(&dword_93F73DC, v202, &v594); | |
} | |
} | |
v557 = 1; | |
} | |
else | |
{ | |
if ( dword_93F73E0 == dword_93F73E4 ) | |
{ | |
sub_8052120(&dword_93F73DC, dword_93F73E0, v518); | |
} | |
else | |
{ | |
if ( dword_93F73E0 ) | |
*(_DWORD *)dword_93F73E0 = *(_DWORD *)(unit___ + 0xA8); | |
dword_93F73E0 = v184 + 4; | |
v557 = 1; | |
} | |
} | |
} | |
} | |
} | |
} | |
} | |
} | |
} | |
break; | |
} | |
LABEL_112: | |
v440 -= 4; | |
v73 = v462-- - 1 < 0; | |
if ( v73 ) | |
goto LABEL_130; | |
goto LABEL_113; | |
} | |
v557 = 0; | |
v527 = v64 != 0; | |
LABEL_131: | |
v515 = &v597; | |
if ( !v527 ) | |
goto LABEL_179; | |
v83 = dword_940B280; | |
v84 = ((dword_940B284 - dword_940B280) >> 2) - 1; | |
v441 = v84; | |
if ( v84 < 0 ) | |
goto LABEL_294; | |
v86 = 4 * v84; | |
v85 = unit__; | |
v528 = (signed __int16)(2 * ((_WORD)dword_944A4B0 + (_WORD)dword_944A4A8 + dword_944A4AC)); | |
v463 = -1; | |
while ( 2 ) | |
{ | |
v88 = *(_DWORD *)(v83 + v86); | |
v89 = *(_WORD *)(v85 + 0x44); | |
v433 = v85; | |
v90 = (*(int (__cdecl **)(int))(*(_DWORD *)v88 + 0x2A0))(v88); | |
v91 = (*(int (__cdecl **)(int))(*(_DWORD *)v88 + 4))(v88); | |
v92 = (**(int (__cdecl ***)(_DWORD))v88)(v88); | |
v93 = sub_88C2210(v92, v91, v90, v89); | |
v85 = v433; | |
if ( !v93 ) | |
{ | |
v94 = sub_85D8BF0(v88); | |
v85 = v433; | |
if ( v94 ) | |
{ | |
if ( !(*(_DWORD *)(v88 + 12) & 0x2E90C32) ) | |
{ | |
v95 = *(_DWORD *)(v88 + 20); | |
if ( (dword_93F73D4 - dword_93F73D0) >> 2 && v95 != -1 ) | |
{ | |
v427 = 0; | |
v493 = ((dword_93F73D4 - dword_93F73D0) >> 2) - 1; | |
while ( v427 <= v493 ) | |
{ | |
v428 = (v427 + v493) >> 1; | |
if ( v95 == *(_DWORD *)(dword_93F73D0 + 4 * v428) ) | |
goto LABEL_134; | |
if ( v95 >= *(_DWORD *)(dword_93F73D0 + 4 * v428) ) | |
v427 = v428 + 1; | |
else | |
v493 = v428 - 1; | |
} | |
} | |
v96 = ((dword_93F716C - dword_93F7168) >> 2) - 1; | |
v481 = v96; | |
if ( v96 < 0 ) | |
{ | |
LABEL_345: | |
sub_85D1880(v88, &v597, &v596, &v595); | |
v85 = v433; | |
if ( (signed __int16)v597 != -30000 ) | |
{ | |
v204 = sub_88D67E0(v433, v597, v596, v595, 1); | |
v85 = v433; | |
if ( v204 ) | |
{ | |
v208 = (signed __int16)(v597 - *(_WORD *)(v433 + 0x48)) >> 31; | |
v206 = (signed __int16)((v208 ^ (unsigned __int16)(v597 - *(_WORD *)(v433 + 0x48))) - (_WORD)v208); | |
v209 = (signed __int16)(v596 - *(_WORD *)(v433 + 0x4A)) >> 31; | |
v207 = (signed __int16)((v209 ^ (unsigned __int16)(v596 - *(_WORD *)(v433 + 0x4A))) - (_WORD)v209); | |
v210 = (signed __int16)(v595 - *(_WORD *)(v433 + 0x4C)) >> 31; | |
v205 = (signed __int16)((v210 ^ (unsigned __int16)(v595 - *(_WORD *)(v433 + 0x4C))) - (_WORD)v210); | |
if ( (signed __int16)v206 > v205 || v207 > v205 ) | |
{ | |
v205 = v207; | |
if ( v207 < v206 ) | |
v205 = v206; | |
} | |
if ( v528 > v205 ) | |
{ | |
v528 = v205; | |
v463 = v441; | |
} | |
} | |
} | |
} | |
else | |
{ | |
v97 = v96 >> 1; | |
v98 = *(_DWORD *)(*(_DWORD *)(dword_93F7168 + 4 * v97) + 20); | |
if ( v95 != v98 ) | |
{ | |
v498 = 0; | |
if ( v95 < v98 ) | |
{ | |
LABEL_143: | |
v99 = v498; | |
v481 = v97 - 1; | |
goto LABEL_144; | |
} | |
while ( 1 ) | |
{ | |
v498 = v97 + 1; | |
v99 = v97 + 1; | |
LABEL_144: | |
if ( v481 < v99 ) | |
goto LABEL_345; | |
v97 = (v481 + v99) >> 1; | |
v100 = *(_DWORD *)(*(_DWORD *)(dword_93F7168 + 4 * v97) + 20); | |
if ( v95 == v100 ) | |
break; | |
if ( v95 < v100 ) | |
goto LABEL_143; | |
} | |
} | |
} | |
} | |
} | |
} | |
LABEL_134: | |
v86 -= 4; | |
v87 = v441-- - 1 < 0; | |
if ( v87 ) | |
{ | |
unit__ = v85; | |
if ( v463 != -1 ) | |
{ | |
sub_8062200(*(_DWORD *)(*(_DWORD *)(dword_940B280 + 4 * v463) + 20), v564); | |
v121 = sub_8062200(*(_DWORD *)(*(_DWORD *)(dword_940B280 + 4 * v463) + 20), &dword_93F73D0); | |
if ( v121 != -1 ) | |
{ | |
v122 = dword_93F73E0; | |
if ( v121 < (dword_93F73E0 - dword_93F73DC) >> 2 ) | |
{ | |
v203 = dword_93F73DC + 4 * v121; | |
if ( dword_93F73E0 == dword_93F73E4 ) | |
{ | |
sub_8052120(&dword_93F73DC, v203, unit__ + 0xA8); | |
} | |
else | |
{ | |
if ( dword_93F73E0 == v203 ) | |
{ | |
LABEL_176: | |
if ( dword_93F73E0 ) | |
*(_DWORD *)dword_93F73E0 = *(_DWORD *)(unit__ + 0xA8); | |
dword_93F73E0 = v122 + 4; | |
} | |
else | |
{ | |
v594 = *(_DWORD *)(unit__ + 0xA8); | |
sub_8053990(&dword_93F73DC, v203, &v594); | |
} | |
} | |
} | |
else | |
{ | |
if ( dword_93F73E0 != dword_93F73E4 ) | |
goto LABEL_176; | |
sub_8052120(&dword_93F73DC, dword_93F73E0, unit__ + 0xA8); | |
} | |
} | |
LABEL_179: | |
if ( v557 || !v548 && v540 == -1 ) | |
goto LABEL_214; | |
v123 = dword_940B214; | |
v124 = ((dword_940B218 - dword_940B214) >> 2) - 1; | |
v442 = v124; | |
if ( v124 < 0 ) | |
goto LABEL_320; | |
v529 = (signed __int16)(2 * ((_WORD)dword_944A4B0 + (_WORD)dword_944A4A8 + dword_944A4AC)); | |
v125 = 4 * v124; | |
v464 = -1; | |
while ( 2 ) | |
{ | |
v126 = *(_DWORD *)(v123 + v125); | |
v127 = *(_WORD *)(unit__ + 68); | |
v128 = (*(int (__cdecl **)(int))(*(_DWORD *)v126 + 0x2A0))(v126); | |
v129 = (*(int (__cdecl **)(int))(*(_DWORD *)v126 + 4))(v126); | |
v130 = (**(int (__cdecl ***)(_DWORD))v126)(v126); | |
if ( !sub_88C2210(v130, v129, v128, v127) ) | |
{ | |
if ( v548 ) | |
{ | |
if ( (unsigned __int8)(*(int (__cdecl **)(int))(*(_DWORD *)v126 + 0x2F4))(v126) ) | |
{ | |
LABEL_186: | |
if ( (unsigned __int8)sub_85D8BF0(v126) && !(*(_DWORD *)(v126 + 0xC) & 0x2E90C32) ) | |
{ | |
v131 = *(_DWORD *)(v126 + 0x14); | |
if ( (dword_93F73D4 - dword_93F73D0) >> 2 && v131 != -1 ) | |
{ | |
v431 = 0; | |
v494 = ((dword_93F73D4 - dword_93F73D0) >> 2) - 1; | |
while ( v431 <= v494 ) | |
{ | |
v432 = (v431 + v494) >> 1; | |
if ( v131 == *(_DWORD *)(dword_93F73D0 + 4 * v432) ) | |
goto LABEL_202; | |
if ( v131 < *(_DWORD *)(dword_93F73D0 + 4 * v432) ) | |
v494 = v432 - 1; | |
else | |
v431 = v432 + 1; | |
} | |
} | |
v482 = 0; | |
v501 = ((dword_93F6FB0 - dword_93F6FAC) >> 2) - 1; | |
while ( v482 <= v501 ) | |
{ | |
v132 = (v482 + v501) >> 1; | |
v133 = *(_DWORD *)(dword_93F6FAC + 4 * v132); | |
if ( v131 == *(_DWORD *)(v133 + 20) ) | |
goto LABEL_202; | |
if ( v131 >= *(_DWORD *)(v133 + 20) ) | |
v482 = v132 + 1; | |
else | |
v501 = v132 - 1; | |
} | |
sub_85D1880(v126, &v595, &v596, &v597); | |
if ( (signed __int16)v595 != -30000 ) | |
{ | |
if ( (unsigned __int8)sub_88D67E0(unit__, v595, v596, v597, 1) ) | |
{ | |
v137 = (signed __int16)(v595 - *(_WORD *)(unit__ + 0x48)) >> 31; | |
v135 = (signed __int16)((v137 ^ (unsigned __int16)(v595 - *(_WORD *)(unit__ + 0x48))) | |
- (_WORD)v137); | |
v138 = (signed __int16)(v596 - *(_WORD *)(unit__ + 0x4A)) >> 31; | |
v136 = (signed __int16)((v138 ^ (unsigned __int16)(v596 - *(_WORD *)(unit__ + 0x4A))) | |
- (_WORD)v138); | |
v139 = (signed __int16)(v597 - *(_WORD *)(unit__ + 0x4C)) >> 31; | |
v134 = (signed __int16)((v139 ^ (unsigned __int16)(v597 - *(_WORD *)(unit__ + 0x4C))) | |
- (_WORD)v139); | |
if ( (signed __int16)v135 > v134 || v136 > v134 ) | |
{ | |
v134 = v136; | |
if ( v136 < v135 ) | |
v134 = v135; | |
} | |
if ( v134 < v529 ) | |
{ | |
v529 = v134; | |
v464 = v442; | |
} | |
} | |
} | |
} | |
} | |
} | |
else | |
{ | |
v141 = (signed __int16)(*(int (__cdecl **)(int))(*(_DWORD *)v126 + 0x254))(v126); | |
if ( (signed __int16)v141 == -1 ) | |
v141 = (signed __int16)(*(int (__cdecl **)(int))(*(_DWORD *)v126 + 0x250))(v126); | |
if ( v540 == v141 ) | |
goto LABEL_186; | |
} | |
} | |
LABEL_202: | |
v125 -= 4; | |
v140 = v442-- - 1 < 0; | |
if ( v140 ) | |
{ | |
if ( v464 != -1 ) | |
{ | |
sub_8062200(*(_DWORD *)(*(_DWORD *)(dword_940B214 + 4 * v464) + 20), v564); | |
v142 = sub_8062200(*(_DWORD *)(*(_DWORD *)(dword_940B214 + 4 * v464) + 20), &dword_93F73D0); | |
if ( v142 != -1 ) | |
{ | |
v143 = dword_93F73E0; | |
if ( v142 < (dword_93F73E0 - dword_93F73DC) >> 2 ) | |
{ | |
v197 = dword_93F73DC + 4 * v142; | |
if ( dword_93F73E0 == dword_93F73E4 ) | |
{ | |
sub_8052120(&dword_93F73DC, v197, unit__ + 0xA8); | |
} | |
else | |
{ | |
if ( dword_93F73E0 == v197 ) | |
{ | |
LABEL_211: | |
if ( dword_93F73E0 ) | |
*(_DWORD *)dword_93F73E0 = *(_DWORD *)(unit__ + 0xA8); | |
dword_93F73E0 = v143 + 4; | |
} | |
else | |
{ | |
v594 = *(_DWORD *)(unit__ + 0xA8); | |
sub_8053990(&dword_93F73DC, v197, &v594); | |
} | |
} | |
} | |
else | |
{ | |
if ( dword_93F73E0 != dword_93F73E4 ) | |
goto LABEL_211; | |
sub_8052120(&dword_93F73DC, dword_93F73E0, unit__ + 0xA8); | |
} | |
} | |
LABEL_214: | |
if ( !*(_BYTE *)(unit__ + 1400) ) | |
{ | |
v434 = *(_WORD *)(unit__ + 272); | |
goto LABEL_52; | |
} | |
v145 = *(_DWORD *)(unit__ + 516); | |
v146 = ((*(_DWORD *)(unit__ + 520) - v145) >> 2) - 1; | |
v443 = v146; | |
if ( v146 >= 0 ) | |
{ | |
v465 = 4 * v146; | |
v541 = unit__ + 0xA8; | |
while ( 1 ) | |
{ | |
if ( (unsigned __int16)(****(int (__fastcall *****)(_DWORD))(v145 + v465))(v465) != 61 | |
|| (v149 = **(_DWORD **)(*(_DWORD *)(unit__ + 0x204) + v465), | |
v148 = *(_DWORD *)(v149 + 0x24), | |
v150 = ((*(_DWORD *)(v149 + 0x28) - v148) >> 2) - 1, | |
v150 < 0) ) | |
{ | |
v465 -= 4; | |
v147 = v443-- - 1 < 0; | |
if ( v147 ) | |
break; | |
} | |
else | |
{ | |
v151 = 4 * v150; | |
v483 = unit__; | |
while ( 1 ) | |
{ | |
if ( (*(int (__cdecl **)(_DWORD))(**(_DWORD **)(v148 + v151) + 8))(*(_DWORD *)(v148 + v151)) == 10 ) | |
{ | |
v152 = (*(int (__cdecl **)(_DWORD))(**(_DWORD **)(*(_DWORD *)(v149 + 0x24) + v151) + 0xC))(*(_DWORD *)(*(_DWORD *)(v149 + 0x24) + v151)); | |
v153 = v152; | |
if ( v152 ) | |
{ | |
if ( (unsigned __int16)(**(int (__cdecl ***)(_DWORD))v152)(v152) == 38 ) | |
{ | |
v155 = (*(int (__cdecl **)(int))(*(_DWORD *)v153 + 0x214))(v153); | |
v154 = *(_DWORD *)(v153 + 0x14); | |
v535 -= v155; | |
if ( (dword_93F73F8 - dword_93F73F4) >> 2 && v154 != -1 ) | |
{ | |
v215 = 0; | |
v504 = ((dword_93F73F8 - dword_93F73F4) >> 2) - 1; | |
while ( 1 ) | |
{ | |
if ( v215 > v504 ) | |
goto LABEL_234; | |
v216 = (v215 + v504) >> 1; | |
if ( v154 == *(_DWORD *)(dword_93F73F4 + 4 * v216) ) | |
break; | |
if ( v154 >= *(_DWORD *)(dword_93F73F4 + 4 * v216) ) | |
v215 = v216 + 1; | |
else | |
v504 = v216 - 1; | |
} | |
if ( *(_DWORD *)(dword_93F7400 + 4 * v216) == *(_DWORD *)(v483 + 0xA8) ) | |
sub_8062200(v154, v483 + 12 * *(_WORD *)(v483 + 0x110) + 0x114); | |
} | |
else | |
{ | |
LABEL_234: | |
sub_8062200(v154, v483 + 12 * *(_WORD *)(v483 + 0x110) + 0x114); | |
v156 = sub_8062200(*(_DWORD *)(v153 + 0x14), &dword_93F73F4); | |
if ( v156 >= (dword_93F7404 - dword_93F7400) >> 2 ) | |
{ | |
sub_80E86D0(&dword_93F7400, v541); | |
} | |
else | |
{ | |
if ( v156 != -1 ) | |
sub_81374F0(&dword_93F7400, v156, v541); | |
} | |
} | |
} | |
} | |
} | |
v151 -= 4; | |
--v150; | |
if ( v150 < 0 ) | |
break; | |
v148 = *(_DWORD *)(v149 + 0x24); | |
} | |
v465 -= 4; | |
v157 = v443-- - 1 < 0; | |
unit__ = v483; | |
if ( v157 ) | |
break; | |
} | |
v145 = *(_DWORD *)(unit__ + 0x204); | |
} | |
} | |
if ( v535 <= 0 ) | |
goto LABEL_262; | |
v158 = off_93F73E8; | |
v530 = ((dword_93F73EC - (_DWORD)off_93F73E8) >> 2) - 1; | |
if ( v530 < 0 ) | |
{ | |
v434 = *(_WORD *)(unit__ + 0x110); | |
goto LABEL_52; | |
} | |
v549 = unit__ + 0xA8; | |
v484 = unit__; | |
v542 = 4 * v530; | |
for ( j = 4 * v530; ; j = v542 ) | |
{ | |
v161 = *(_DWORD *)((char *)v158 + j); | |
v502 = v161; | |
v163 = *(_DWORD *)(v161 + 24); | |
v160 = *(_DWORD *)(v161 + 20); | |
v162 = ((v163 - v160) >> 2) - 1; | |
v444 = v162; | |
if ( v162 >= 0 ) | |
break; | |
LABEL_298: | |
v542 -= 4; | |
v193 = v530-- - 1 < 0; | |
if ( v193 ) | |
{ | |
unit__ = v484; | |
goto LABEL_262; | |
} | |
v158 = off_93F73E8; | |
} | |
v466 = 4 * v162; | |
v164 = 4 * v162; | |
while ( 2 ) | |
{ | |
v165 = *(_DWORD *)(v160 + v164); | |
if ( dword_93F73F4 < (unsigned int)dword_93F73F8 ) | |
{ | |
v166 = dword_93F73F4; | |
if ( v165 == *(_DWORD *)dword_93F73F4 ) | |
{ | |
v167 = 0; | |
LABEL_296: | |
if ( *(_DWORD *)(dword_93F7400 + 4 * v167) != *(_DWORD *)(v484 + 0xA8) ) | |
{ | |
v466 -= 4; | |
v192 = v444-- - 1 < 0; | |
if ( v192 ) | |
goto LABEL_298; | |
goto LABEL_260; | |
} | |
} | |
else | |
{ | |
while ( 1 ) | |
{ | |
v166 += 4; | |
if ( dword_93F73F8 <= v166 ) | |
break; | |
if ( v165 == *(_DWORD *)v166 ) | |
{ | |
v167 = (signed int)(v166 - dword_93F73F4) >> 2; | |
if ( v167 == -1 ) | |
break; | |
goto LABEL_296; | |
} | |
} | |
} | |
} | |
if ( !((dword_940B1F4 - dword_940B1F0) >> 2) | |
|| v165 == -1 | |
|| (v168 = ((dword_940B1F4 - dword_940B1F0) >> 2) - 1, v168 < 0) ) | |
{ | |
LABEL_259: | |
v466 -= 4; | |
v173 = v444-- - 1 < 0; | |
if ( v173 ) | |
goto LABEL_298; | |
LABEL_260: | |
v164 = v466; | |
v160 = *(_DWORD *)(v502 + 20); | |
continue; | |
} | |
break; | |
} | |
v169 = v168 >> 1; | |
v171 = *(_DWORD *)(dword_940B1F0 + 4 * (v168 >> 1)); | |
v170 = *(_DWORD *)(v171 + 20); | |
if ( v165 != v170 ) | |
{ | |
if ( (dword_940B1F4 - dword_940B1F0) >> 2 != 1 ) | |
{ | |
v172 = 0; | |
do | |
{ | |
if ( v165 < v170 ) | |
{ | |
v168 = v169 - 1; | |
if ( v169 - 1 < v172 ) | |
goto LABEL_259; | |
} | |
else | |
{ | |
v172 = v169 + 1; | |
if ( v168 < v169 + 1 ) | |
goto LABEL_259; | |
} | |
v169 = (v172 + v168) >> 1; | |
v171 = *(_DWORD *)(dword_940B1F0 + 4 * v169); | |
v170 = *(_DWORD *)(v171 + 20); | |
if ( v165 == v170 ) | |
goto LABEL_300; | |
} | |
while ( v168 != v172 ); | |
} | |
goto LABEL_259; | |
} | |
LABEL_300: | |
if ( !v171 | |
|| (sub_85D1880(v171, &v597, &v596, &v595), | |
!(unsigned __int8)sub_88D67E0(v484, v597, v596, v595, 1)) ) | |
goto LABEL_259; | |
v535 -= (*(int (__cdecl **)(int))(*(_DWORD *)v171 + 0x214))(v171); | |
sub_8062200(v165, v484 + 0x114 + 12 * *(_WORD *)(v484 + 0x110)); | |
v194 = sub_8062200(v165, &dword_93F73F4); | |
v195 = dword_93F7404; | |
if ( v194 >= (dword_93F7404 - dword_93F7400) >> 2 ) | |
{ | |
if ( dword_93F7404 != dword_93F7408 ) | |
{ | |
if ( dword_93F7404 ) | |
*(_DWORD *)dword_93F7404 = *(_DWORD *)(v484 + 0xA8); | |
goto LABEL_312; | |
} | |
sub_8052120(&dword_93F7400, dword_93F7404, v549); | |
} | |
else | |
{ | |
if ( v194 == -1 ) | |
goto LABEL_307; | |
v196 = dword_93F7400 + 4 * v194; | |
if ( dword_93F7404 == dword_93F7408 ) | |
{ | |
sub_8052120(&dword_93F7400, v196, v549); | |
} | |
else | |
{ | |
if ( dword_93F7404 != v196 ) | |
{ | |
v594 = *(_DWORD *)(v484 + 0xA8); | |
sub_8053990(&dword_93F7400, v196, &v594); | |
goto LABEL_307; | |
} | |
if ( dword_93F7404 ) | |
*(_DWORD *)dword_93F7404 = *(_DWORD *)(v484 + 0xA8); | |
LABEL_312: | |
dword_93F7404 = v195 + 4; | |
} | |
} | |
LABEL_307: | |
if ( v535 <= 0 ) | |
{ | |
unit__ = v484; | |
v434 = *(_WORD *)(v484 + 0x110); | |
goto LABEL_52; | |
} | |
goto LABEL_259; | |
} | |
LABEL_320: | |
sub_88F3930(unit__, 43, 300); | |
goto LABEL_214; | |
} | |
v123 = dword_940B214; | |
continue; | |
} | |
} | |
LABEL_294: | |
sub_88F3930(unit__, 43, 300); | |
goto LABEL_179; | |
} | |
v83 = dword_940B280; | |
continue; | |
} | |
} | |
LABEL_17: | |
v495 = v435; | |
v5 = v435; | |
} | |
if ( (dword_940B1F4 - dword_940B1F0) >> 2 != 1 ) | |
{ | |
v11 = 0; | |
do | |
{ | |
if ( v6 < v10 ) | |
{ | |
v7 = v8 - 1; | |
if ( v11 > v8 - 1 ) | |
goto LABEL_16; | |
} | |
else | |
{ | |
v11 = v8 + 1; | |
if ( v8 + 1 > v7 ) | |
goto LABEL_16; | |
} | |
v8 = (v7 + v11) >> 1; | |
v9 = *(_DWORD *)(dword_940B1F0 + 4 * v8); | |
v10 = *(_DWORD *)(v9 + 20); | |
if ( v6 == v10 ) | |
goto LABEL_92; | |
} | |
while ( v11 != v7 ); | |
} | |
goto LABEL_16; | |
} | |
v16 = dword_9449064; | |
v15 = *(_DWORD *)(unit_ + 0x100); | |
*(_DWORD *)(unit_ + 12 * *(_WORD *)(unit_ + 0x110) + 0x118) = *(_DWORD *)(unit_ | |
+ 12 * *(_WORD *)(unit_ + 0x110) | |
+ 0x114); | |
v515 = &v597; | |
v14 = (dword_9449068 - (_DWORD)v16) >> 2; | |
if ( !((dword_9449068 - (_DWORD)v16) >> 2) || v15 == -1 || (v17 = v14 - 1, v14 - 1 < 0) ) | |
goto LABEL_52; | |
v18 = v17 >> 1; | |
v20 = *((_DWORD *)v16 + (v17 >> 1)); | |
v19 = *(_DWORD *)v20; | |
if ( v15 != *(_DWORD *)v20 ) | |
{ | |
if ( !v17 ) | |
goto LABEL_52; | |
v460 = 0; | |
while ( 1 ) | |
{ | |
if ( v15 < v19 ) | |
v17 = v18 - 1; | |
else | |
v460 = v18 + 1; | |
if ( v17 < v460 ) | |
{ | |
v515 = &v597; | |
goto LABEL_52; | |
} | |
v18 = (v17 + v460) >> 1; | |
v20 = *((_DWORD *)v16 + v18); | |
v19 = *(_DWORD *)v20; | |
if ( v15 == *(_DWORD *)v20 ) | |
break; | |
if ( v17 == v460 ) | |
{ | |
v515 = &v597; | |
goto LABEL_52; | |
} | |
} | |
} | |
if ( !v20 ) | |
{ | |
v515 = &v597; | |
goto LABEL_52; | |
} | |
v217 = *(_DWORD *)(unit_ + 0x104); | |
if ( v217 == -1 ) | |
{ | |
v515 = &v597; | |
goto LABEL_52; | |
} | |
v536 = *(_DWORD *)(*(_DWORD *)(v20 + 0x44) + 4 * v217); | |
if ( !*(_DWORD *)(*(_DWORD *)(v20 + 0x44) + 4 * v217) ) | |
{ | |
v515 = &v597; | |
goto LABEL_52; | |
} | |
v219 = *(_DWORD *)(unit_ + 0x308); | |
v591 = 0; | |
v592 = 0; | |
v221 = *(_DWORD *)(v219 + 4) - *(_DWORD *)v219; | |
v593 = 0; | |
v588 = 0; | |
v589 = 0; | |
v590 = 0; | |
LOWORD(v595) = 0; | |
sub_80525A0(&v591, 0, v221 >> 2, &v595); | |
v222 = *(_DWORD *)(*(_DWORD *)(unit_ + 0x308) + 4) - **(_DWORD **)(unit_ + 0x308); | |
LOBYTE(v597) = 0; | |
sub_80E92F0(&v588, 0, v222 >> 2, &v597); | |
v218 = v588; | |
v220 = v591; | |
v486 = v592; | |
if ( (unsigned int)v591 < v592 ) | |
{ | |
v223 = -(((_BYTE)v591 & 0xFu) >> 1) & 7; | |
if ( ((v592 + ~(unsigned int)v591) >> 1) + 1 <= v223 ) | |
v223 = ((v592 + ~(unsigned int)v591) >> 1) + 1; | |
v445 = ((v592 + ~(unsigned int)v591) >> 1) + 1; | |
if ( !v223 ) | |
{ | |
v224 = v591; | |
LABEL_397: | |
v446 = v445 - v223; | |
v505 = 8 * (v446 >> 3); | |
if ( !v505 ) | |
goto LABEL_809; | |
_EBP = (int)((char *)v220 + 2 * v223); | |
v226 = 0; | |
do | |
{ | |
_EBX = v226++; | |
_EBX *= 16; | |
__asm | |
{ | |
xorps xmm0, xmm0 | |
movaps xmmword ptr [ebp+ebx+0], xmm0 | |
} | |
} | |
while ( v226 < v446 >> 3 ); | |
v224 = (char *)v224 + 16 * (v446 >> 3); | |
if ( v446 != v505 ) | |
{ | |
LABEL_809: | |
do | |
{ | |
*(_WORD *)v224 = 0; | |
v224 = (char *)v224 + 2; | |
} | |
while ( v486 > (unsigned int)v224 ); | |
} | |
goto LABEL_402; | |
} | |
v224 = v591; | |
v225 = 0; | |
do | |
{ | |
++v225; | |
*(_WORD *)v224 = 0; | |
v224 = (char *)v224 + 2; | |
} | |
while ( v223 > v225 ); | |
if ( v445 != v223 ) | |
goto LABEL_397; | |
} | |
LABEL_402: | |
v229 = v589; | |
if ( (unsigned int)v218 >= v589 ) | |
goto LABEL_414; | |
v447 = v589 - (_DWORD)v218; | |
v230 = -(signed int)v218 & 0xF; | |
if ( v589 - (_DWORD)v218 <= v230 ) | |
v230 = v589 - (_DWORD)v218; | |
if ( !v230 ) | |
{ | |
v231 = (int)v218; | |
LABEL_409: | |
v448 = v447 - v230; | |
v487 = 16 * (v448 >> 4); | |
if ( !v487 ) | |
goto LABEL_810; | |
v468 = (int)((char *)v218 + v230); | |
v233 = 0; | |
v519 = v231; | |
do | |
{ | |
_EAX = v468; | |
_EBX = v233; | |
__asm { xorps xmm0, xmm0 } | |
++v233; | |
_EBX *= 16; | |
__asm { movaps xmmword ptr [eax+ebx], xmm0 } | |
} | |
while ( v448 >> 4 > v233 ); | |
v231 = v487 + v519; | |
if ( v448 != v487 ) | |
{ | |
LABEL_810: | |
do | |
*(_BYTE *)v231++ = 0; | |
while ( v229 > (unsigned int)v231 ); | |
} | |
goto LABEL_414; | |
} | |
v231 = (int)v218; | |
v232 = 0; | |
do | |
{ | |
++v232; | |
*(_BYTE *)v231++ = 0; | |
} | |
while ( v230 > v232 ); | |
if ( v230 != v447 ) | |
goto LABEL_409; | |
LABEL_414: | |
v449 = *(_DWORD *)(v536 + 0x9C); | |
v520 = *(_DWORD *)(v536 + 0xA0); | |
if ( (unsigned int)(*(_DWORD *)(v536 + 0xA0) - *(_DWORD *)(v536 + 0x9C)) >> 2 ) | |
{ | |
v236 = 0; | |
v469 = 0; | |
do | |
{ | |
v506 = *(_DWORD *)(v449 + 4 * v236); | |
if ( (dword_940B1F4 - dword_940B1F0) >> 2 ) | |
{ | |
if ( v506 != -1 ) | |
{ | |
v237 = ((dword_940B1F4 - dword_940B1F0) >> 2) - 1; | |
if ( v237 >= 0 ) | |
{ | |
v238 = v237 >> 1; | |
v239 = *(_DWORD *)(dword_940B1F0 + 4 * (v237 >> 1)); | |
v240 = *(_DWORD *)(v239 + 20); | |
if ( v506 == v240 ) | |
{ | |
LABEL_443: | |
if ( v239 ) | |
{ | |
switch ( (unsigned __int16)((**(int (__cdecl ***)(_DWORD))v239)(v239) - 25) ) | |
{ | |
case 0u: | |
case 1u: | |
case 3u: | |
case 4u: | |
case 0xBu: | |
case 0xFu: | |
case 0x10u: | |
case 0x11u: | |
case 0x22u: | |
v249 = (*(int (__cdecl **)(int))(*(_DWORD *)v239 + 4))(v239); | |
v250 = (**(int (__cdecl ***)(_DWORD))v239)(v239); | |
v507 = (signed __int16)sub_829D850(&off_944C29C, v250, v249); | |
v251 = (*(int (__cdecl **)(int))(*(_DWORD *)v239 + 4))(v239); | |
v252 = (**(int (__cdecl ***)(_DWORD))v239)(v239); | |
v531 = sub_829D9A0(&off_944C29C, v252, v251); | |
v253 = (*(int (__cdecl **)(_DWORD))(*(_DWORD *)v239 + 4))(v239); | |
v254 = (**(int (__cdecl ***)(_DWORD))v239)(v239); | |
v550 = sub_829DC20(&off_944C29C, v254, v253); | |
v587 = 0; | |
v255 = *(_DWORD *)v239; | |
v586 = 0; | |
v585 = 0; | |
v256 = (*(int (__cdecl **)(int))(v255 + 172))(v239); | |
v257 = (**(int (__cdecl ***)(_DWORD))v239)(v239); | |
sub_88F0F30(unit_, v257, v256, &v585); | |
v247 = v585; | |
v248 = ((v586 - (_DWORD)v585) >> 1) - 1; | |
v450 = v248; | |
if ( v248 >= 0 ) | |
{ | |
if ( v550 ) | |
{ | |
v258 = 2 * v248; | |
v558 = v239; | |
while ( 1 ) | |
{ | |
v260 = *(_WORD *)((char *)v585 + v258); | |
v259 = (char *)v591 + 2 * v260; | |
if ( v507 >= *(_WORD *)v259 ) | |
{ | |
v261 = (char *)v588 + v260; | |
if ( !*v261 ) | |
break; | |
} | |
v258 -= 2; | |
v263 = v450-- - 1 < 0; | |
if ( v263 ) | |
goto LABEL_452; | |
} | |
v262 = v261; | |
v239 = v558; | |
*(_WORD *)v259 += v531; | |
*v262 = 1; | |
} | |
else | |
{ | |
v264 = 2 * v248; | |
while ( 1 ) | |
{ | |
v265 = (char *)v591 + 2 * *(_WORD *)((char *)v585 + v264); | |
v266 = *(_WORD *)v265; | |
if ( v507 >= v266 ) | |
break; | |
v264 -= 2; | |
v267 = v450-- - 1 < 0; | |
if ( v267 ) | |
goto LABEL_452; | |
} | |
*(_WORD *)v265 = v531 + v266; | |
} | |
sub_8062200(*(_DWORD *)(v239 + 20), unit_ + 12 * *(_WORD *)(unit_ + 0x110) + 0x114); | |
v247 = v585; | |
} | |
LABEL_452: | |
if ( v247 ) | |
{ | |
operator delete(v247); | |
v449 = *(_DWORD *)(v536 + 0x9C); | |
v520 = *(_DWORD *)(v536 + 0xA0); | |
} | |
else | |
{ | |
v449 = *(_DWORD *)(v536 + 0x9C); | |
v520 = *(_DWORD *)(v536 + 0xA0); | |
} | |
break; | |
default: | |
sub_8062200(*(_DWORD *)(v239 + 20), unit_ + 12 * *(_WORD *)(unit_ + 0x110) + 0x114); | |
v449 = *(_DWORD *)(v536 + 0x9C); | |
v520 = *(_DWORD *)(v536 + 0xA0); | |
break; | |
} | |
} | |
} | |
else | |
{ | |
if ( (dword_940B1F4 - dword_940B1F0) >> 2 != 1 ) | |
{ | |
v241 = 0; | |
do | |
{ | |
if ( v506 < v240 ) | |
{ | |
v237 = v238 - 1; | |
if ( v241 > v238 - 1 ) | |
break; | |
} | |
else | |
{ | |
v241 = v238 + 1; | |
if ( v238 + 1 > v237 ) | |
break; | |
} | |
v238 = (v237 + v241) >> 1; | |
v239 = *(_DWORD *)(dword_940B1F0 + 4 * v238); | |
v240 = *(_DWORD *)(v239 + 20); | |
if ( v506 == v240 ) | |
goto LABEL_443; | |
} | |
while ( v241 != v237 ); | |
} | |
} | |
} | |
} | |
} | |
++v469; | |
v236 = v469; | |
} | |
while ( v469 < (v520 - v449) >> 2 ); | |
} | |
if ( !(*(_BYTE *)(v536 + 152) & 1) ) | |
{ | |
v437 = *(_DWORD *)(unit_ + 0x114); | |
v517 = *(_DWORD *)(unit_ + 0x118); | |
if ( (unsigned int)(*(_DWORD *)(unit_ + 0x118) - *(_DWORD *)(unit_ + 0x114)) >> 2 ) | |
{ | |
v35 = 0; | |
v496 = 0; | |
do | |
{ | |
v242 = *(_DWORD *)(v437 + 4 * v35); | |
if ( (dword_940B1F4 - dword_940B1F0) >> 2 ) | |
{ | |
if ( *(_DWORD *)(v437 + 4 * v35) != -1 ) | |
{ | |
v243 = ((dword_940B1F4 - dword_940B1F0) >> 2) - 1; | |
if ( v243 >= 0 ) | |
{ | |
v244 = v243 >> 1; | |
v245 = *(_DWORD *)(*(_DWORD *)(dword_940B1F0 + 4 * (v243 >> 1)) + 20); | |
v470 = *(_DWORD *)(dword_940B1F0 + 4 * (v243 >> 1)); | |
if ( v242 == v245 ) | |
goto LABEL_464; | |
if ( (dword_940B1F4 - dword_940B1F0) >> 2 != 1 ) | |
{ | |
v246 = 0; | |
while ( 1 ) | |
{ | |
if ( v242 < v245 ) | |
{ | |
v243 = v244 - 1; | |
if ( v246 > v244 - 1 ) | |
goto LABEL_43; | |
} | |
else | |
{ | |
v246 = v244 + 1; | |
if ( v244 + 1 > v243 ) | |
goto LABEL_43; | |
} | |
v244 = (v243 + v246) >> 1; | |
v245 = *(_DWORD *)(*(_DWORD *)(dword_940B1F0 + 4 * v244) + 20); | |
if ( v242 == v245 ) | |
break; | |
if ( v246 == v243 ) | |
goto LABEL_43; | |
} | |
v470 = *(_DWORD *)(dword_940B1F0 + 4 * v244); | |
LABEL_464: | |
if ( v470 ) | |
{ | |
switch ( (unsigned __int16)((**(int (__cdecl ***)(_DWORD))v470)(v470) - 25) ) | |
{ | |
case 0u: | |
case 1u: | |
case 3u: | |
case 4u: | |
case 0xBu: | |
case 0xFu: | |
case 0x10u: | |
case 0x11u: | |
case 0x22u: | |
v22 = (*(int (__cdecl **)(int))(*(_DWORD *)v470 + 4))(v470); | |
v23 = (**(int (__cdecl ***)(_DWORD))v470)(v470); | |
v516 = (signed __int16)sub_829D850(&off_944C29C, v23, v22); | |
v24 = (*(int (__cdecl **)(int))(*(_DWORD *)v470 + 4))(v470); | |
v25 = (**(int (__cdecl ***)(_DWORD))v470)(v470); | |
v526 = sub_829D9A0(&off_944C29C, v25, v24); | |
v26 = (*(int (__cdecl **)(_DWORD))(*(_DWORD *)v470 + 4))(v470); | |
v27 = (**(int (__cdecl ***)(_DWORD))v470)(v470); | |
v539 = sub_829DC20(&off_944C29C, v27, v26); | |
v587 = 0; | |
v585 = 0; | |
v28 = *(_DWORD *)v470; | |
v586 = 0; | |
v29 = (*(int (__cdecl **)(int))(v28 + 0xAC))(v470); | |
v30 = (**(int (__cdecl ***)(_DWORD))v470)(v470); | |
sub_88F0F30(unit_, v30, v29, &v585); | |
v21 = v585; | |
v436 = ((v586 - (_DWORD)v585) >> 1) - 1; | |
if ( v436 >= 0 ) | |
{ | |
if ( v539 ) | |
{ | |
v31 = 2 * v436; | |
while ( 1 ) | |
{ | |
v33 = *(_WORD *)((char *)v585 + v31); | |
v32 = (char *)v591 + 2 * v33; | |
if ( v516 >= *(_WORD *)v32 ) | |
{ | |
v34 = (char *)v588 + v33; | |
if ( !*v34 ) | |
break; | |
} | |
v31 -= 2; | |
v268 = v436-- - 1 < 0; | |
if ( v268 ) | |
goto LABEL_41; | |
} | |
*(_WORD *)v32 += v526; | |
*v34 = 1; | |
} | |
else | |
{ | |
v269 = 2 * v436; | |
while ( 1 ) | |
{ | |
v270 = (char *)v591 + 2 * *(_WORD *)((char *)v585 + v269); | |
v271 = *(_WORD *)v270; | |
if ( v516 >= v271 ) | |
break; | |
v269 -= 2; | |
v272 = v436-- - 1 < 0; | |
if ( v272 ) | |
goto LABEL_41; | |
} | |
*(_WORD *)v270 = v526 + v271; | |
} | |
sub_8062200(*(_DWORD *)(v470 + 20), unit_ + 12 * *(_WORD *)(unit_ + 0x110) + 0x114); | |
v21 = v585; | |
} | |
LABEL_41: | |
if ( v21 ) | |
{ | |
operator delete(v21); | |
v437 = *(_DWORD *)(unit_ + 0x114); | |
v517 = *(_DWORD *)(unit_ + 0x118); | |
} | |
else | |
{ | |
v437 = *(_DWORD *)(unit_ + 0x114); | |
v517 = *(_DWORD *)(unit_ + 0x118); | |
} | |
break; | |
default: | |
v437 = *(_DWORD *)(unit_ + 0x114); | |
v517 = *(_DWORD *)(unit_ + 0x118); | |
break; | |
} | |
} | |
goto LABEL_43; | |
} | |
} | |
} | |
} | |
LABEL_43: | |
++v496; | |
v35 = v496; | |
} | |
while ( v496 < (v517 - v437) >> 2 ); | |
} | |
} | |
v438 = *(_WORD *)(unit_ + 0x110); | |
if ( *(_WORD *)(unit_ + 0x110) != 2 ) | |
goto LABEL_45; | |
v585 = 0; | |
v586 = 0; | |
v587 = 0; | |
v362 = *(_DWORD *)(v536 + 0x88); | |
v363 = *(_DWORD *)(v536 + 0x8C); | |
v582 = 0; | |
v583 = 0; | |
v584 = 0; | |
v475 = (v363 - v362) >> 2; | |
if ( v475 > 0 ) | |
{ | |
v455 = 0; | |
while ( 1 ) | |
{ | |
v594 = 1; | |
v366 = *(_DWORD *)(v362 + 4 * v455); | |
v367 = *(_DWORD *)(v366 + 20); | |
if ( (unsigned int)(*(_DWORD *)(v366 + 24) - v367) >> 2 ) | |
{ | |
v369 = *(_DWORD *)v367; | |
v368 = (dword_940B1F4 - dword_940B1F0) >> 2; | |
v512 = v369; | |
if ( (dword_940B1F4 - dword_940B1F0) >> 2 ) | |
{ | |
if ( v369 != -1 ) | |
{ | |
v370 = v368 - 1; | |
if ( v368 - 1 >= 0 ) | |
{ | |
v371 = v370 >> 1; | |
v372 = *(_DWORD *)(dword_940B1F0 + 4 * (v370 >> 1)); | |
v373 = *(_DWORD *)(v372 + 20); | |
if ( v369 == v373 ) | |
{ | |
LABEL_654: | |
if ( v372 ) | |
{ | |
if ( !(unsigned __int8)(*(int (__cdecl **)(int))(*(_DWORD *)v372 + 0x2F4))(v372) ) | |
{ | |
v377 = (*(int (__cdecl **)(int))(*(_DWORD *)v372 + 0x250))(v372); | |
v513 = (signed __int16)v377; | |
if ( v377 <= 0x73u ) | |
{ | |
if ( (v586 - (_DWORD)v585) >> 1 ) | |
{ | |
v424 = ((v586 - (_DWORD)v585) >> 1) - 1; | |
v423 = 0; | |
while ( v423 <= v424 ) | |
{ | |
v425 = (v424 + v423) >> 1; | |
v426 = *((_WORD *)v585 + v425); | |
if ( v513 == v426 ) | |
{ | |
*((_DWORD *)v582 + v425) += v594; | |
goto LABEL_634; | |
} | |
if ( v513 >= v426 ) | |
v423 = v425 + 1; | |
else | |
v424 = v425 - 1; | |
} | |
} | |
v378 = sub_805D7E0(v513, &v585); | |
if ( v378 != -1 ) | |
{ | |
if ( v378 < (v583 - (_DWORD)v582) >> 2 ) | |
sub_81374F0(&v582, v378, &v594); | |
else | |
sub_80E86D0(&v582, &v594); | |
} | |
} | |
} | |
} | |
} | |
else | |
{ | |
if ( v370 ) | |
{ | |
v374 = 0; | |
do | |
{ | |
if ( v512 < v373 ) | |
{ | |
v370 = v371 - 1; | |
if ( v374 > v371 - 1 ) | |
break; | |
} | |
else | |
{ | |
v374 = v371 + 1; | |
if ( v371 + 1 > v370 ) | |
break; | |
} | |
v371 = (v370 + v374) >> 1; | |
v372 = *(_DWORD *)(dword_940B1F0 + 4 * v371); | |
v373 = *(_DWORD *)(v372 + 20); | |
if ( v512 == v373 ) | |
goto LABEL_654; | |
} | |
while ( v374 != v370 ); | |
} | |
} | |
} | |
} | |
} | |
} | |
else | |
{ | |
v364 = *(_WORD *)(v366 + 6); | |
if ( (signed int)v364 >= 0 ) | |
{ | |
if ( v364 < (dword_944C2AC - (_DWORD)off_944C2A8) >> 2 ) | |
{ | |
v365 = *((_DWORD *)off_944C2A8 + v364); | |
if ( *(_WORD *)(v365 + 34) == -1 ) | |
{ | |
v375 = *(_WORD *)(v365 + 32); | |
if ( (_WORD)v375 <= 0x73u ) | |
{ | |
if ( (v586 - (_DWORD)v585) >> 1 ) | |
{ | |
v420 = 0; | |
v492 = ((v586 - (_DWORD)v585) >> 1) - 1; | |
while ( v420 <= v492 ) | |
{ | |
v421 = (v420 + v492) >> 1; | |
v422 = *((_WORD *)v585 + v421); | |
if ( v375 == v422 ) | |
{ | |
++*((_DWORD *)v582 + v421); | |
goto LABEL_634; | |
} | |
if ( v375 >= v422 ) | |
v420 = v421 + 1; | |
else | |
v492 = v421 - 1; | |
} | |
} | |
v376 = sub_805D7E0(v375, &v585); | |
if ( v376 != -1 ) | |
{ | |
if ( v376 < (v583 - (_DWORD)v582) >> 2 ) | |
sub_81374F0(&v582, v376, &v594); | |
else | |
sub_80E86D0(&v582, &v594); | |
} | |
} | |
} | |
} | |
} | |
} | |
LABEL_634: | |
++v455; | |
if ( v455 >= v475 ) | |
break; | |
v362 = *(_DWORD *)(v536 + 0x88); | |
} | |
} | |
v379 = ((*(_DWORD *)(v20 + 0xA8) - *(_DWORD *)(v20 + 0xA4)) >> 2) - 1; | |
v476 = v379; | |
if ( v379 >= 0 ) | |
{ | |
v514 = 4 * v379; | |
v524 = 0; | |
do | |
{ | |
v383 = *(_DWORD *)(v20 + 0xA4); | |
v384 = *(_DWORD *)(v383 + v514); | |
v456 = v383 + v514; | |
if ( (dword_940B1F4 - dword_940B1F0) >> 2 ) | |
{ | |
if ( *(_DWORD *)(v383 + v514) != -1 ) | |
{ | |
v385 = ((dword_940B1F4 - dword_940B1F0) >> 2) - 1; | |
if ( v385 >= 0 ) | |
{ | |
v386 = v385 >> 1; | |
v387 = *(_DWORD *)(*(_DWORD *)(dword_940B1F0 + 4 * (v385 >> 1)) + 20); | |
v547 = *(_DWORD *)(dword_940B1F0 + 4 * (v385 >> 1)); | |
if ( v384 != v387 ) | |
{ | |
if ( (dword_940B1F4 - dword_940B1F0) >> 2 == 1 ) | |
goto LABEL_663; | |
v388 = 0; | |
while ( 1 ) | |
{ | |
if ( v384 < v387 ) | |
{ | |
v385 = v386 - 1; | |
if ( v386 - 1 < v388 ) | |
goto LABEL_663; | |
} | |
else | |
{ | |
v388 = v386 + 1; | |
if ( v385 < v386 + 1 ) | |
goto LABEL_663; | |
} | |
v386 = (v388 + v385) >> 1; | |
v387 = *(_DWORD *)(*(_DWORD *)(dword_940B1F0 + 4 * v386) + 20); | |
if ( v384 == v387 ) | |
break; | |
if ( v385 == v388 ) | |
goto LABEL_663; | |
} | |
v547 = *(_DWORD *)(dword_940B1F0 + 4 * v386); | |
} | |
if ( v547 ) | |
{ | |
if ( (unsigned __int16)(*(int (__cdecl **)(int))(*(_DWORD *)v547 + 0x254))(v547) == -1 ) | |
{ | |
v457 = (signed __int16)(*(int (__cdecl **)(int))(*(_DWORD *)v547 + 0x250))(v547); | |
v389 = (v586 - (_DWORD)v585) >> 1; | |
if ( v457 != -1 ) | |
{ | |
if ( v389 ) | |
{ | |
v391 = v389 - 1; | |
v390 = 0; | |
while ( v390 <= v391 ) | |
{ | |
v392 = (v391 + v390) >> 1; | |
v393 = *((_WORD *)v585 + v392); | |
if ( v457 == v393 ) | |
{ | |
v394 = (char *)v582 + 4 * v392; | |
if ( *(_DWORD *)v394 <= 0 ) | |
goto LABEL_667; | |
--*(_DWORD *)v394; | |
if ( v524 ) | |
{ | |
v458 = *(_WORD *)(unit_ + 0x110); | |
} | |
else | |
{ | |
v458 = *(_WORD *)(unit_ + 0x110); | |
v395 = ((*(_DWORD *)(unit_ + 12 * *(_WORD *)(unit_ + 0x110) + 0x118) | |
- *(_DWORD *)(unit_ + 12 * *(_WORD *)(unit_ + 0x110) + 0x114)) >> 2) | |
- 1; | |
v525 = v395; | |
if ( v395 >= 0 ) | |
{ | |
v534 = 4 * v395; | |
do | |
{ | |
v555 = *(_DWORD *)(*(_DWORD *)(unit_ + 12 * v458 + 0x114) + v534); | |
if ( (dword_940B1F4 - dword_940B1F0) >> 2 ) | |
{ | |
if ( *(_DWORD *)(*(_DWORD *)(unit_ + 12 * v458 + 0x114) + v534) != -1 ) | |
{ | |
v396 = ((dword_940B1F4 - dword_940B1F0) >> 2) - 1; | |
if ( v396 >= 0 ) | |
{ | |
v397 = v396 >> 1; | |
v399 = *(_DWORD *)(dword_940B1F0 + 4 * (v396 >> 1)); | |
v398 = *(_DWORD *)(v399 + 20); | |
if ( v555 == v398 ) | |
{ | |
LABEL_717: | |
if ( v399 ) | |
{ | |
if ( (unsigned __int16)(**(int (__cdecl ***)(_DWORD))v399)(v399) == 24 ) | |
{ | |
v405 = *(_WORD *)(unit_ + 0x110); | |
v458 = v405; | |
v408 = *(_WORD *)(unit_ + 0x110); | |
v409 = unit_ + 12 * v405; | |
v406 = *(_DWORD *)(v409 + 0x114) + v534; | |
v407 = *(_DWORD *)(v409 + 0x118); | |
if ( v407 != v406 + 4 ) | |
{ | |
v410 = (v407 - (v406 + 4)) >> 2; | |
if ( v410 ) | |
{ | |
memmove((void *)v406, (const void *)(v406 + 4), 4 * v410); | |
v458 = *(_WORD *)(unit_ + 0x110); | |
} | |
} | |
*(_DWORD *)(unit_ + 12 * v408 + 0x118) -= 4; | |
} | |
else | |
{ | |
v458 = *(_WORD *)(unit_ + 0x110); | |
} | |
} | |
} | |
else | |
{ | |
if ( (dword_940B1F4 - dword_940B1F0) >> 2 != 1 ) | |
{ | |
v400 = 0; | |
do | |
{ | |
if ( v398 > v555 ) | |
{ | |
v396 = v397 - 1; | |
if ( v400 > v397 - 1 ) | |
break; | |
} | |
else | |
{ | |
v400 = v397 + 1; | |
if ( v397 + 1 > v396 ) | |
break; | |
} | |
v397 = (v396 + v400) >> 1; | |
v399 = *(_DWORD *)(dword_940B1F0 + 4 * v397); | |
v398 = *(_DWORD *)(v399 + 20); | |
if ( v555 == v398 ) | |
goto LABEL_717; | |
} | |
while ( v400 != v396 ); | |
} | |
} | |
} | |
} | |
} | |
v534 -= 4; | |
} | |
while ( v525-- - 1 >= 0 ); | |
} | |
v524 = 1; | |
} | |
sub_8062200(*(_DWORD *)(v547 + 20), unit_ + 12 * v458 + 0x114); | |
sub_8062200(*(_DWORD *)(v547 + 20), v20 + 0xB0); | |
v402 = *(_DWORD *)(v20 + 0xA4) + v514; | |
v403 = *(_DWORD *)(v20 + 0xA8); | |
if ( v403 != v402 + 4 ) | |
{ | |
v404 = (v403 - (v402 + 4)) >> 2; | |
if ( v404 ) | |
memmove((void *)v402, (const void *)(v402 + 4), 4 * v404); | |
} | |
goto LABEL_666; | |
} | |
if ( v457 >= v393 ) | |
v390 = v392 + 1; | |
else | |
v391 = v392 - 1; | |
} | |
} | |
} | |
} | |
goto LABEL_667; | |
} | |
} | |
} | |
} | |
LABEL_663: | |
v380 = *(_DWORD *)(v20 + 0xA8); | |
if ( v380 != v456 + 4 ) | |
{ | |
v381 = (v380 - (v456 + 4)) >> 2; | |
if ( v381 ) | |
memmove((void *)v456, (const void *)(v456 + 4), 4 * v381); | |
} | |
LABEL_666: | |
*(_DWORD *)(v20 + 0xA8) -= 4; | |
LABEL_667: | |
v514 -= 4; | |
} | |
while ( v476-- - 1 >= 0 ); | |
} | |
if ( v582 ) | |
operator delete(v582); | |
if ( v585 ) | |
{ | |
operator delete(v585); | |
v438 = *(_WORD *)(unit_ + 0x110); | |
} | |
else | |
{ | |
v438 = *(_WORD *)(unit_ + 0x110); | |
} | |
LABEL_45: | |
if ( v438 != 1 ) | |
goto LABEL_46; | |
if ( *(_DWORD *)(v536 + 0xA8) == 0xFFFFFFFF ) | |
goto LABEL_47; | |
v319 = *(_DWORD *)(unit_ + 0x204); | |
v320 = ((*(_DWORD *)(unit_ + 0x208) - v319) >> 2) - 1; | |
v510 = v320; | |
if ( v320 < 0 ) | |
{ | |
v533 = 25; | |
goto LABEL_583; | |
} | |
v522 = 4 * v320; | |
v321 = unit_ + 0xA8; | |
v533 = 25; | |
v578 = v20 + 0xBC; | |
v575 = unit_ + 0xA8; | |
v577 = v20 + 0xC8; | |
while ( 2 ) | |
{ | |
if ( (unsigned __int16)(****(int (__fastcall *****)(_DWORD))(v319 + v522))(v321) != 61 | |
|| (v325 = **(_DWORD **)(*(_DWORD *)(unit__ + 0x204) + v522), | |
v321 = v325, | |
v473 = **(_DWORD **)(*(_DWORD *)(unit__ + 0x204) + v522), | |
v326 = *(_DWORD *)(v325 + 0x28), | |
v323 = *(_DWORD *)(v325 + 0x24), | |
v324 = ((v326 - v323) >> 2) - 1, | |
v453 = v324, | |
v324 < 0) ) | |
goto LABEL_557; | |
v327 = 4 * v324; | |
while ( 2 ) | |
{ | |
if ( (*(int (__cdecl **)(_DWORD))(**(_DWORD **)(v323 + v327) + 8))(*(_DWORD *)(v323 + v327)) != 10 | |
|| (v329 = (*(int (__cdecl **)(_DWORD))(**(_DWORD **)(*(_DWORD *)(v473 + 0x24) + v327) + 12))(*(_DWORD *)(*(_DWORD *)(v473 + 0x24) + v327)), | |
v490 = v329, | |
!v329) | |
|| (unsigned __int16)(**(int (__cdecl ***)(_DWORD))v329)(v329) != 38 | |
|| (v331 = (*(int (__cdecl **)(int))(*(_DWORD *)v490 + 0x214))(v490), | |
v321 = *(_DWORD *)(v20 + 0x98), | |
v533 -= v331, | |
v330 = ((*(_DWORD *)(v20 + 0x9C) - v321) >> 2) - 1, | |
v330 < 0) ) | |
goto LABEL_562; | |
v332 = 4 * v330; | |
v560 = v327; | |
v567 = v20; | |
unit____ = unit__; | |
while ( 1 ) | |
{ | |
v333 = *(_DWORD *)(v321 + v332); | |
if ( *(_BYTE *)(v333 + 16) & 1 ) | |
{ | |
v545 = *(_DWORD *)(v490 + 20); | |
v334 = *(_DWORD *)(v333 + 20); | |
v335 = (*(_DWORD *)(v333 + 24) - v334) >> 2; | |
if ( v335 ) | |
{ | |
if ( v545 != -1 ) | |
{ | |
v336 = v335 - 1; | |
if ( v336 >= 0 ) | |
break; | |
} | |
} | |
} | |
LABEL_569: | |
v332 -= 4; | |
--v330; | |
if ( v330 < 0 ) | |
{ | |
v327 = v560; | |
v20 = v567; | |
unit__ = unit____; | |
goto LABEL_562; | |
} | |
} | |
v337 = v336 >> 1; | |
v338 = *(_DWORD *)(v334 + 4 * (v336 >> 1)); | |
if ( v545 != v338 ) | |
{ | |
v553 = 0; | |
do | |
{ | |
if ( v545 < v338 ) | |
v336 = v337 - 1; | |
else | |
v553 = v337 + 1; | |
if ( v336 < v553 ) | |
goto LABEL_569; | |
v337 = (v336 + v553) >> 1; | |
v338 = *(_DWORD *)(v334 + 4 * v337); | |
} | |
while ( v545 != v338 ); | |
} | |
v20 = v567; | |
v327 = v560; | |
unit__ = unit____; | |
v415 = *(_DWORD *)(v567 + 0xBC); | |
v414 = (*(_DWORD *)(v567 + 0xC0) - v415) >> 2; | |
if ( v414 ) | |
{ | |
v418 = v414 - 1; | |
v417 = 0; | |
v568 = v560; | |
v563 = v415; | |
while ( 1 ) | |
{ | |
if ( v417 > v418 ) | |
{ | |
v327 = v568; | |
goto LABEL_740; | |
} | |
v419 = (v418 + v417) >> 1; | |
v321 = *(_DWORD *)(v490 + 20); | |
if ( *(_DWORD *)(v563 + 4 * v419) == v545 ) | |
break; | |
if ( *(_DWORD *)(v563 + 4 * v419) <= v545 ) | |
v417 = v419 + 1; | |
else | |
v418 = v419 - 1; | |
} | |
v327 = v568; | |
if ( *(_DWORD *)(*(_DWORD *)(v20 + 0xC8) + 4 * v419) == *(_DWORD *)(unit____ + 0xA8) ) | |
sub_8062200(v545, unit____ + 12 * *(_WORD *)(unit____ + 0x110) + 0x114); | |
} | |
else | |
{ | |
LABEL_740: | |
sub_8062200(v545, unit____ + 12 * *(_WORD *)(unit____ + 0x110) + 0x114); | |
v416 = sub_8062200(*(_DWORD *)(v490 + 20), v578); | |
if ( v416 >= (*(_DWORD *)(v20 + 0xCC) - *(_DWORD *)(v20 + 0xC8)) >> 2 ) | |
{ | |
sub_80E86D0(v577, v575); | |
} | |
else | |
{ | |
if ( v416 != -1 ) | |
sub_81374F0(v577, v416, v575); | |
} | |
} | |
LABEL_562: | |
v327 -= 4; | |
v328 = v453-- - 1 < 0; | |
if ( !v328 ) | |
{ | |
v323 = *(_DWORD *)(v473 + 0x24); | |
continue; | |
} | |
break; | |
} | |
LABEL_557: | |
v522 -= 4; | |
v322 = v510-- - 1 < 0; | |
if ( !v322 ) | |
{ | |
v319 = *(_DWORD *)(unit__ + 0x204); | |
continue; | |
} | |
break; | |
} | |
if ( v533 <= 0 ) | |
{ | |
v438 = *(_WORD *)(unit__ + 0x110); | |
goto LABEL_46; | |
} | |
LABEL_583: | |
v339 = *(_DWORD *)(v20 + 0x98); | |
v546 = ((*(_DWORD *)(v20 + 0x9C) - v339) >> 2) - 1; | |
if ( v546 < 0 ) | |
{ | |
v438 = *(_WORD *)(unit__ + 0x110); | |
goto LABEL_46; | |
} | |
v340 = 4 * v546; | |
v554 = 4 * v546; | |
v561 = v20 + 0xC8; | |
v573 = unit__ + 0xA8; | |
while ( 2 ) | |
{ | |
v341 = *(_DWORD *)(v339 + v340); | |
v491 = v341; | |
if ( *(_BYTE *)(v341 + 16) & 1 ) | |
{ | |
v344 = v341; | |
v342 = *(_DWORD *)(v341 + 20); | |
v343 = ((*(_DWORD *)(v344 + 24) - v342) >> 2) - 1; | |
v454 = v343; | |
if ( v343 >= 0 ) | |
{ | |
v474 = 4 * v343; | |
v345 = 4 * v343; | |
while ( 1 ) | |
{ | |
v347 = *(_DWORD *)(v20 + 0xBC); | |
v346 = *(_DWORD *)(v20 + 0xC0); | |
v348 = *(_DWORD *)(v342 + v345); | |
if ( v347 >= v346 ) | |
goto LABEL_593; | |
v349 = *(_DWORD *)(v20 + 0xBC); | |
if ( v348 != *(_DWORD *)v347 ) | |
break; | |
v350 = 0; | |
LABEL_607: | |
if ( *(_DWORD *)(*(_DWORD *)(v20 + 0xC8) + 4 * v350) == *(_DWORD *)(unit__ + 0xA8) ) | |
goto LABEL_593; | |
v474 -= 4; | |
v356 = v454-- - 1 < 0; | |
if ( v356 ) | |
goto LABEL_609; | |
LABEL_605: | |
v345 = v474; | |
v342 = *(_DWORD *)(v491 + 20); | |
} | |
while ( 1 ) | |
{ | |
v349 += 4; | |
if ( v346 <= v349 ) | |
break; | |
if ( v348 == *(_DWORD *)v349 ) | |
{ | |
v350 = (signed int)(v349 - v347) >> 2; | |
if ( v350 == -1 ) | |
break; | |
goto LABEL_607; | |
} | |
} | |
LABEL_593: | |
if ( (dword_940B1F4 - dword_940B1F0) >> 2 ) | |
{ | |
if ( v348 != -1 ) | |
{ | |
v351 = ((dword_940B1F4 - dword_940B1F0) >> 2) - 1; | |
if ( v351 >= 0 ) | |
{ | |
v352 = v351 >> 1; | |
v353 = *(_DWORD *)(*(_DWORD *)(dword_940B1F0 + 4 * (v351 >> 1)) + 20); | |
v523 = *(_DWORD *)(dword_940B1F0 + 4 * (v351 >> 1)); | |
if ( v348 != v353 ) | |
{ | |
if ( (dword_940B1F4 - dword_940B1F0) >> 2 == 1 ) | |
goto LABEL_604; | |
v354 = 0; | |
while ( 1 ) | |
{ | |
if ( v348 < v353 ) | |
{ | |
v351 = v352 - 1; | |
if ( v354 > v352 - 1 ) | |
goto LABEL_604; | |
} | |
else | |
{ | |
v354 = v352 + 1; | |
if ( v352 + 1 > v351 ) | |
goto LABEL_604; | |
} | |
v352 = (v351 + v354) >> 1; | |
v353 = *(_DWORD *)(*(_DWORD *)(dword_940B1F0 + 4 * v352) + 20); | |
if ( v348 == v353 ) | |
break; | |
if ( v354 == v351 ) | |
goto LABEL_604; | |
} | |
v523 = *(_DWORD *)(dword_940B1F0 + 4 * v352); | |
} | |
if ( v523 ) | |
{ | |
sub_85D1880(v523, &v597, &v596, &v595); | |
if ( (unsigned __int8)sub_88D67E0(unit__, v597, v596, v595, 1) ) | |
{ | |
v511 = (*(int (__cdecl **)(int))(*(_DWORD *)v523 + 0x214))(v523); | |
sub_8062200(v348, unit__ + 12 * *(_WORD *)(unit__ + 0x110) + 276); | |
v358 = sub_8062200(v348, v20 + 0xBC); | |
v359 = *(_DWORD *)(v20 + 0xCC); | |
v360 = *(_DWORD *)(v20 + 0xC8); | |
if ( v358 >= (*(_DWORD *)(v20 + 0xCC) - v360) >> 2 ) | |
{ | |
if ( v359 == *(_DWORD *)(v20 + 0xD0) ) | |
{ | |
sub_8052120(v561, *(_DWORD *)(v20 + 0xCC), v573); | |
goto LABEL_620; | |
} | |
} | |
else | |
{ | |
if ( v358 == -1 ) | |
goto LABEL_620; | |
v361 = v360 + 4 * v358; | |
if ( v359 == *(_DWORD *)(v20 + 0xD0) ) | |
{ | |
sub_8052120(v561, v361, v573); | |
goto LABEL_620; | |
} | |
if ( v359 != v361 ) | |
{ | |
v594 = *(_DWORD *)(unit__ + 0xA8); | |
sub_8053990(v561, v361, &v594); | |
goto LABEL_620; | |
} | |
} | |
if ( v359 ) | |
*(_DWORD *)v359 = *(_DWORD *)(unit__ + 0xA8); | |
*(_DWORD *)(v20 + 0xCC) = v359 + 4; | |
LABEL_620: | |
v533 -= v511; | |
if ( v533 <= 0 ) | |
{ | |
v438 = *(_WORD *)(unit__ + 0x110); | |
goto LABEL_46; | |
} | |
goto LABEL_604; | |
} | |
} | |
} | |
} | |
} | |
LABEL_604: | |
v474 -= 4; | |
v355 = v454-- - 1 < 0; | |
if ( v355 ) | |
goto LABEL_609; | |
goto LABEL_605; | |
} | |
} | |
LABEL_609: | |
if ( v533 > 0 ) | |
{ | |
v554 -= 4; | |
v357 = v546-- - 1 < 0; | |
if ( v357 ) | |
{ | |
v438 = *(_WORD *)(unit__ + 0x110); | |
goto LABEL_46; | |
} | |
v339 = *(_DWORD *)(v20 + 0x98); | |
v340 = v554; | |
continue; | |
} | |
break; | |
} | |
v438 = *(_WORD *)(unit__ + 0x110); | |
LABEL_46: | |
if ( v438 != 3 ) | |
{ | |
LABEL_47: | |
v515 = &v597; | |
goto LABEL_48; | |
} | |
if ( *(_DWORD *)(v536 + 0xA8) == 0xFFFFFFFF ) | |
{ | |
v515 = &v597; | |
goto LABEL_48; | |
} | |
v273 = *(_DWORD *)(unit__ + 0x204); | |
v274 = ((*(_DWORD *)(unit__ + 0x208) - v273) >> 2) - 1; | |
v508 = v274; | |
if ( v274 < 0 ) | |
{ | |
v532 = 25; | |
goto LABEL_509; | |
} | |
v275 = 4 * v274; | |
v276 = v20 + 0xBC; | |
v521 = v275; | |
v532 = 25; | |
v576 = v20 + 0xBC; | |
v570 = unit__ + 0xA8; | |
v574 = v20 + 0xC8; | |
while ( 2 ) | |
{ | |
if ( (unsigned __int16)(****(int (__fastcall *****)(_DWORD))(v273 + v275))(v276) != 61 | |
|| (v276 = v521, | |
v280 = **(_DWORD **)(*(_DWORD *)(unit__ + 0x204) + v521), | |
v471 = **(_DWORD **)(*(_DWORD *)(unit__ + 0x204) + v521), | |
v281 = *(_DWORD *)(v280 + 0x28), | |
v278 = *(_DWORD *)(v280 + 0x24), | |
v279 = ((v281 - v278) >> 2) - 1, | |
v451 = v279, | |
v279 < 0) ) | |
goto LABEL_478; | |
v282 = 4 * v279; | |
while ( 2 ) | |
{ | |
if ( (*(int (__cdecl **)(_DWORD))(**(_DWORD **)(v278 + v282) + 8))(*(_DWORD *)(v278 + v282)) != 10 | |
|| (v284 = (*(int (__cdecl **)(_DWORD))(**(_DWORD **)(*(_DWORD *)(v471 + 0x24) + v282) + 12))(*(_DWORD *)(*(_DWORD *)(v471 + 0x24) + v282)), | |
v488 = v284, | |
!v284) | |
|| (unsigned __int16)(**(int (__cdecl ***)(_DWORD))v284)(v284) != 38 | |
|| (v286 = (*(int (__cdecl **)(int))(*(_DWORD *)v488 + 0x214))(v488), | |
v276 = *(_DWORD *)(v20 + 0x98), | |
v532 -= v286, | |
v285 = ((*(_DWORD *)(v20 + 156) - v276) >> 2) - 1, | |
v285 < 0) ) | |
goto LABEL_483; | |
v287 = 4 * v285; | |
v551 = v282; | |
v559 = v20; | |
v565 = unit__; | |
while ( 2 ) | |
{ | |
v288 = *(_DWORD *)(v276 + v287); | |
if ( !(*(_BYTE *)(v288 + 16) & 2) | |
|| (v289 = *(_DWORD *)(v288 + 20), | |
v537 = *(_DWORD *)(v488 + 20), | |
v290 = (*(_DWORD *)(v288 + 24) - v289) >> 2, | |
!v290) | |
|| v537 == -1 | |
|| (v291 = v290 - 1, v291 < 0) ) | |
{ | |
LABEL_490: | |
v287 -= 4; | |
--v285; | |
if ( v285 < 0 ) | |
{ | |
v282 = v551; | |
v20 = v559; | |
unit__ = v565; | |
goto LABEL_483; | |
} | |
continue; | |
} | |
break; | |
} | |
v292 = v291 >> 1; | |
v293 = *(_DWORD *)(v289 + 4 * (v291 >> 1)); | |
if ( v537 != v293 ) | |
{ | |
v543 = 0; | |
do | |
{ | |
if ( v537 < v293 ) | |
v291 = v292 - 1; | |
else | |
v543 = v292 + 1; | |
if ( v543 > v291 ) | |
goto LABEL_490; | |
v292 = (v291 + v543) >> 1; | |
v293 = *(_DWORD *)(v289 + 4 * v292); | |
} | |
while ( v537 != v293 ); | |
} | |
v20 = v559; | |
v282 = v551; | |
unit__ = v565; | |
v295 = *(_DWORD *)(v559 + 0xBC); | |
v294 = (*(_DWORD *)(v559 + 0xC0) - v295) >> 2; | |
if ( v294 ) | |
{ | |
v412 = v294 - 1; | |
v411 = 0; | |
v562 = v551; | |
v556 = v295; | |
while ( 1 ) | |
{ | |
if ( v411 > v412 ) | |
{ | |
v282 = v562; | |
goto LABEL_504; | |
} | |
v413 = (v412 + v411) >> 1; | |
v276 = *(_DWORD *)(v488 + 20); | |
if ( *(_DWORD *)(v556 + 4 * v413) == v537 ) | |
break; | |
if ( *(_DWORD *)(v556 + 4 * v413) > v537 ) | |
v412 = v413 - 1; | |
else | |
v411 = v413 + 1; | |
} | |
v282 = v562; | |
if ( *(_DWORD *)(*(_DWORD *)(v20 + 0xC8) + 4 * v413) == *(_DWORD *)(v565 + 0xA8) ) | |
sub_8062200(v537, v565 + 12 * *(_WORD *)(v565 + 0x110) + 0x114); | |
} | |
else | |
{ | |
LABEL_504: | |
sub_8062200(v537, v565 + 12 * *(_WORD *)(v565 + 0x110) + 0x114); | |
v296 = sub_8062200(*(_DWORD *)(v488 + 0x14), v576); | |
if ( v296 >= (*(_DWORD *)(v20 + 0xCC) - *(_DWORD *)(v20 + 0xC8)) >> 2 ) | |
{ | |
sub_80E86D0(v574, v570); | |
} | |
else | |
{ | |
if ( v296 != -1 ) | |
sub_81374F0(v574, v296, v570); | |
} | |
} | |
LABEL_483: | |
v282 -= 4; | |
v283 = v451-- - 1 < 0; | |
if ( !v283 ) | |
{ | |
v278 = *(_DWORD *)(v471 + 0x24); | |
continue; | |
} | |
break; | |
} | |
LABEL_478: | |
v521 -= 4; | |
v277 = v508-- - 1 < 0; | |
if ( !v277 ) | |
{ | |
v273 = *(_DWORD *)(unit__ + 0x204); | |
v275 = v521; | |
continue; | |
} | |
break; | |
} | |
if ( v532 <= 0 ) | |
{ | |
v515 = &v597; | |
} | |
else | |
{ | |
LABEL_509: | |
v297 = *(_DWORD *)(v20 + 0x98); | |
v544 = ((*(_DWORD *)(v20 + 0x9C) - v297) >> 2) - 1; | |
if ( v544 >= 0 ) | |
{ | |
v515 = &v597; | |
v552 = 4 * v544; | |
v566 = v20 + 0xC8; | |
v571 = unit__ + 0xA8; | |
while ( 1 ) | |
{ | |
v298 = *(_DWORD *)(v297 + v552); | |
v489 = v298; | |
if ( *(_BYTE *)(v298 + 16) & 2 ) | |
{ | |
v301 = v298; | |
v299 = *(_DWORD *)(v298 + 20); | |
v300 = ((*(_DWORD *)(v301 + 24) - v299) >> 2) - 1; | |
v452 = v300; | |
if ( v300 >= 0 ) | |
break; | |
} | |
LABEL_535: | |
if ( v532 <= 0 || (v552 -= 4, v314 = v544 - 1 < 0, --v544, v314) ) | |
goto LABEL_48; | |
v297 = *(_DWORD *)(v20 + 0x98); | |
} | |
v472 = 4 * v300; | |
v302 = 4 * v300; | |
while ( 2 ) | |
{ | |
v304 = *(_DWORD *)(v20 + 0xBC); | |
v303 = *(_DWORD *)(v20 + 0xC0); | |
v305 = *(_DWORD *)(v299 + v302); | |
if ( v304 < v303 ) | |
{ | |
v306 = *(_DWORD *)(v20 + 0xBC); | |
if ( v305 == *(_DWORD *)v304 ) | |
{ | |
v307 = 0; | |
LABEL_533: | |
if ( *(_DWORD *)(*(_DWORD *)(v20 + 0xC8) + 4 * v307) != *(_DWORD *)(unit__ + 0xA8) ) | |
{ | |
v472 -= 4; | |
v313 = v452-- - 1 < 0; | |
if ( v313 ) | |
goto LABEL_535; | |
goto LABEL_531; | |
} | |
} | |
else | |
{ | |
while ( 1 ) | |
{ | |
v306 += 4; | |
if ( v303 <= v306 ) | |
break; | |
if ( v305 == *(_DWORD *)v306 ) | |
{ | |
v307 = (signed int)(v306 - v304) >> 2; | |
if ( v307 == -1 ) | |
break; | |
goto LABEL_533; | |
} | |
} | |
} | |
} | |
if ( (dword_940B1F4 - dword_940B1F0) >> 2 ) | |
{ | |
if ( v305 != -1 ) | |
{ | |
v308 = ((dword_940B1F4 - dword_940B1F0) >> 2) - 1; | |
if ( v308 >= 0 ) | |
{ | |
v309 = v308 >> 1; | |
v310 = *(_DWORD *)(*(_DWORD *)(dword_940B1F0 + 4 * (v308 >> 1)) + 20); | |
v538 = *(_DWORD *)(dword_940B1F0 + 4 * (v308 >> 1)); | |
if ( v305 == v310 ) | |
goto LABEL_539; | |
if ( (dword_940B1F4 - dword_940B1F0) >> 2 != 1 ) | |
{ | |
v311 = 0; | |
while ( 1 ) | |
{ | |
if ( v305 < v310 ) | |
{ | |
v308 = v309 - 1; | |
if ( v311 > v309 - 1 ) | |
goto LABEL_530; | |
} | |
else | |
{ | |
v311 = v309 + 1; | |
if ( v309 + 1 > v308 ) | |
goto LABEL_530; | |
} | |
v309 = (v308 + v311) >> 1; | |
v310 = *(_DWORD *)(*(_DWORD *)(dword_940B1F0 + 4 * v309) + 20); | |
if ( v305 == v310 ) | |
break; | |
if ( v311 == v308 ) | |
goto LABEL_530; | |
} | |
v538 = *(_DWORD *)(dword_940B1F0 + 4 * v309); | |
LABEL_539: | |
if ( v538 ) | |
{ | |
sub_85D1880(v538, &v595, &v596, &v597); | |
if ( (unsigned __int8)sub_88D67E0(unit__, v595, v596, v597, 1) ) | |
{ | |
v509 = (*(int (__cdecl **)(int))(*(_DWORD *)v538 + 0x214))(v538); | |
sub_8062200(v305, unit__ + 12 * *(_WORD *)(unit__ + 0x110) + 0x114); | |
v315 = sub_8062200(v305, v20 + 0xBC); | |
v316 = *(_DWORD *)(v20 + 0xCC); | |
v317 = *(_DWORD *)(v20 + 0xC8); | |
if ( v315 >= (*(_DWORD *)(v20 + 0xCC) - v317) >> 2 ) | |
{ | |
if ( v316 == *(_DWORD *)(v20 + 0xD0) ) | |
{ | |
sub_8052120(v566, *(_DWORD *)(v20 + 0xCC), v571); | |
goto LABEL_546; | |
} | |
goto LABEL_548; | |
} | |
if ( v315 != -1 ) | |
{ | |
v318 = v317 + 4 * v315; | |
if ( v316 == *(_DWORD *)(v20 + 0xD0) ) | |
{ | |
sub_8052120(v566, v318, v571); | |
goto LABEL_546; | |
} | |
if ( v316 != v318 ) | |
{ | |
v594 = *(_DWORD *)(unit__ + 0xA8); | |
sub_8053990(v566, v318, &v594); | |
goto LABEL_546; | |
} | |
LABEL_548: | |
if ( v316 ) | |
*(_DWORD *)v316 = *(_DWORD *)(unit__ + 0xA8); | |
*(_DWORD *)(v20 + 0xCC) = v316 + 4; | |
} | |
LABEL_546: | |
v532 -= v509; | |
if ( v532 <= 0 ) | |
goto LABEL_48; | |
} | |
} | |
} | |
} | |
} | |
} | |
LABEL_530: | |
v472 -= 4; | |
v312 = v452-- - 1 < 0; | |
if ( v312 ) | |
goto LABEL_535; | |
LABEL_531: | |
v302 = v472; | |
v299 = *(_DWORD *)(v489 + 20); | |
continue; | |
} | |
} | |
v515 = &v597; | |
} | |
LABEL_48: | |
if ( v588 ) | |
operator delete(v588); | |
if ( v591 ) | |
{ | |
operator delete(v591); | |
v434 = *(_WORD *)(unit__ + 0x110); | |
} | |
else | |
{ | |
LABEL_262: | |
v434 = *(_WORD *)(unit__ + 0x110); | |
} | |
LABEL_52: | |
v36 = *(_DWORD *)(unit__ + 0x148); | |
v581 = 0; | |
v579 = 0; | |
v580 = 0; | |
*(_DWORD *)(unit__ + 0x14C) = v36; | |
v39 = *(_DWORD *)(unit__ + 12 * v434 + 0x114); | |
*(_DWORD *)(unit__ + 0x158) = *(_DWORD *)(unit__ + 0x154); | |
v40 = *(_DWORD *)(unit__ + 12 * v434 + 0x118); | |
LOBYTE(v597) = 0; | |
sub_8356370(&v579, 0, (v40 - v39) >> 2, v515); | |
v37 = v580; | |
v38 = v579; | |
v439 = v580 - (_DWORD)v579; | |
if ( (signed int)(v580 - (_DWORD)v579) > 0 && (unsigned int)v579 < v580 ) | |
{ | |
v42 = v580 - (_DWORD)v579; | |
v41 = -(signed int)v579 & 0xF; | |
if ( v580 - (_DWORD)v579 <= v41 ) | |
v41 = v580 - (_DWORD)v579; | |
if ( !v41 ) | |
{ | |
v43 = v579; | |
goto LABEL_60; | |
} | |
v43 = v579; | |
v44 = 0; | |
do | |
{ | |
++v44; | |
*(_BYTE *)v43 = 0; | |
v43 = (char *)v43 + 1; | |
} | |
while ( v44 < v41 ); | |
if ( v41 != v42 ) | |
{ | |
LABEL_60: | |
v46 = v42 - v41; | |
v479 = v46; | |
v45 = v46 >> 4; | |
v461 = 16 * v45; | |
if ( !(16 * v45) ) | |
goto LABEL_811; | |
_EDI = (int)((char *)v38 + v41); | |
v47 = 0; | |
do | |
{ | |
_ECX = v47; | |
__asm { xorps xmm0, xmm0 } | |
++v47; | |
_ECX *= 16; | |
__asm { movaps xmmword ptr [edi+ecx], xmm0 } | |
} | |
while ( v45 > v47 ); | |
v43 = (char *)v43 + v461; | |
if ( v461 != v479 ) | |
{ | |
LABEL_811: | |
do | |
{ | |
*(_BYTE *)v43 = 0; | |
v43 = (char *)v43 + 1; | |
} | |
while ( v37 > (unsigned int)v43 ); | |
} | |
} | |
} | |
v50 = *(_DWORD *)(unit__ + 0x204); | |
v51 = ((*(_DWORD *)(unit__ + 0x208) - v50) >> 2) - 1; | |
if ( v51 >= 0 ) | |
{ | |
v52 = 4 * v51; | |
while ( 2 ) | |
{ | |
v54 = *(_DWORD *)(v50 + v52); | |
v53 = *(_WORD *)(v54 + 4); | |
if ( v53 == 6 || !*(_WORD *)(v54 + 4) || v53 == 9 ) | |
goto LABEL_78; | |
if ( (unsigned __int16)(*(int (__cdecl **)(int (__cdecl ***)(_DWORD)))**(int (__cdecl ****)(_DWORD))v54)(*(int (__cdecl ****)(_DWORD))v54) == 81 | |
&& *(_WORD *)(v54 + 4) == 2 ) | |
{ | |
v52 -= 4; | |
--v51; | |
if ( v51 < 0 ) | |
break; | |
goto LABEL_79; | |
} | |
if ( (unsigned __int16)(***(int (__cdecl ****)(_DWORD))v54)(*(_DWORD *)v54) == 57 && *(_WORD *)(v54 + 4) == 5 | |
|| (unsigned __int16)(***(int (__cdecl ****)(_DWORD))v54)(*(_DWORD *)v54) == 82 && *(_WORD *)(v54 + 4) == 1 | |
|| (unsigned __int16)(***(int (__cdecl ****)(_DWORD))v54)(*(_DWORD *)v54) == 84 && *(_WORD *)(v54 + 4) == 5 ) | |
{ | |
LABEL_78: | |
v52 -= 4; | |
--v51; | |
if ( v51 < 0 ) | |
break; | |
LABEL_79: | |
v50 = *(_DWORD *)(unit__ + 0x204); | |
continue; | |
} | |
break; | |
} | |
if ( (unsigned __int16)(***(int (__cdecl ****)(_DWORD))v54)(*(_DWORD *)v54) == 61 ) | |
{ | |
v185 = *(_DWORD *)(*(_DWORD *)v54 + 0x24); | |
v497 = *(_DWORD *)v54; | |
v186 = ((*(_DWORD *)(*(_DWORD *)v54 + 0x28) - v185) >> 2) - 1; | |
v485 = v186; | |
if ( v186 >= 0 ) | |
{ | |
v467 = 4 * v186; | |
v187 = 4 * v186; | |
while ( 1 ) | |
{ | |
if ( (*(int (__cdecl **)(_DWORD))(**(_DWORD **)(v185 + v187) + 8))(*(_DWORD *)(v185 + v187)) == 10 ) | |
{ | |
v189 = (*(int (__fastcall **)(int))(**(_DWORD **)(*(_DWORD *)(v497 + 0x24) + v467) + 12))(v467); | |
if ( v189 ) | |
{ | |
if ( (unsigned __int16)(**(int (__cdecl ***)(_DWORD))v189)(v189) == 38 ) | |
{ | |
v191 = unit__ + 12 * *(_WORD *)(unit__ + 0x110); | |
v190 = sub_88B6B90(*(_DWORD *)(v191 + 0x118), *(_DWORD *)(v191 + 0x114)); | |
if ( v190 != -1 ) | |
*((_BYTE *)v579 + v190) = 1; | |
} | |
} | |
} | |
v467 -= 4; | |
v188 = v485-- - 1 < 0; | |
if ( v188 ) | |
break; | |
v187 = v467; | |
v185 = *(_DWORD *)(v497 + 0x24); | |
} | |
goto LABEL_75; | |
} | |
} | |
else | |
{ | |
LABEL_75: | |
v497 = *(_DWORD *)v54; | |
} | |
v56 = *(_DWORD *)(v497 + 0x14); | |
v58 = unit__ + 12 * *(_WORD *)(unit__ + 0x110); | |
v57 = *(_DWORD *)(v58 + 0x114); | |
v55 = (*(_DWORD *)(v58 + 0x118) - v57) >> 2; | |
if ( v55 && v56 != -1 ) | |
{ | |
v429 = 0; | |
v477 = v55 - 1; | |
while ( v429 <= v477 ) | |
{ | |
v430 = (v429 + v477) >> 1; | |
if ( v56 == *(_DWORD *)(v57 + 4 * v430) ) | |
{ | |
*((_BYTE *)v579 + v430) = 1; | |
goto LABEL_78; | |
} | |
if ( v56 >= *(_DWORD *)(v57 + 4 * v430) ) | |
v429 = v430 + 1; | |
else | |
v477 = v430 - 1; | |
} | |
} | |
sub_8062200(v56, unit__ + 0x154); | |
goto LABEL_78; | |
} | |
if ( v439 <= 0 ) | |
{ | |
v13 = v579; | |
} | |
else | |
{ | |
v13 = v579; | |
v59 = 0; | |
do | |
{ | |
if ( !*((_BYTE *)v13 + v59) ) | |
{ | |
v60 = *(_DWORD *)(unit__ + 0x14C); | |
if ( v60 == *(_DWORD *)(unit__ + 0x150) ) | |
{ | |
v51 = *(_DWORD *)(unit__ + 12 * *(_WORD *)(unit__ + 0x110) + 0x114); | |
sub_8052120(unit__ + 0x148, v60, v51 + 4 * v59); | |
v13 = v579; | |
} | |
else | |
{ | |
if ( v60 ) | |
*(_DWORD *)v60 = *(_DWORD *)(v51 + 4 * v59); | |
*(_DWORD *)(unit__ + 0x14C) = v60 + 4; | |
} | |
} | |
++v59; | |
} | |
while ( v59 < v439 ); | |
} | |
*(_DWORD *)(unit__ + 0x144) &= 0xFFFFFFFEu; | |
if ( v13 ) | |
operator delete(v13); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment