Advertisement
Guest User

Untitled

a guest
Mar 19th, 2019
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 21.93 KB | None | 0 0
  1. // Peach turnip 1 function
  2. float __fastcall app::peachdaikon::PEACH_PEACHDAIKON_DAIKON_1_POWER(app::peachdaikon *this)
  3. {
  4. return *(float *)(*(_QWORD *)(*(_QWORD *)(*off_710456A320[0] + 840) + 344LL) + 32LL);
  5. }
  6.  
  7. // Peach turnip 1 assembly
  8. EXPORT _ZN3app11peachdaikon32PEACH_PEACHDAIKON_DAIKON_1_POWEREv
  9. .text:00000071010795D0 _ZN3app11peachdaikon32PEACH_PEACHDAIKON_DAIKON_1_POWEREv
  10. .text:00000071010795D0 ADRP X8, #off_710456A320@PAGE
  11. .text:00000071010795D4 LDR X8, [X8,#off_710456A320@PAGEOFF]
  12. .text:00000071010795D8 LDR X8, [X8] ; lib::Singleton<app::FighterParamAccessor2>::instance_
  13. .text:00000071010795DC LDR X8, [X8,#0x348]
  14. .text:00000071010795E0 LDR X8, [X8,#0x158]
  15. .text:00000071010795E4 LDR S0, [X8,#0x20]
  16. .text:00000071010795E8 RET
  17.  
  18. // ATTACK function
  19. __int64 __fastcall sub_71019420D0(__int64 a1, __int64 a2)
  20. {
  21. __int64 v2; // x20
  22. __int64 v3; // x25
  23. __int64 v4; // x24
  24. __int64 v5; // x19
  25. __int128 v6; // q0
  26. unsigned int v7; // w21
  27. __int64 v8; // x8
  28. __int64 v9; // x9
  29. __int64 v10; // x1
  30. __int64 v11; // x2
  31. void **v12; // x8
  32. unsigned __int64 v13; // x9
  33. void **v14; // x26
  34. int v15; // w8
  35. float v16; // w8
  36. signed __int64 v17; // x0
  37. _QWORD *v18; // x8
  38. __int64 v19; // x8
  39. void **v20; // x26
  40. int v21; // w8
  41. float v22; // w8
  42. signed __int64 v23; // x0
  43. _QWORD *v24; // x8
  44. __int64 v25; // x8
  45. void **v26; // x26
  46. int v27; // w8
  47. float v28; // s0
  48. signed __int64 v29; // x0
  49. _QWORD *v30; // x8
  50. __int64 v31; // x8
  51. __int128 v32; // q1
  52. void **v33; // x26
  53. int v34; // w8
  54. float v35; // s0
  55. signed __int64 v36; // x0
  56. _QWORD *v37; // x8
  57. __int64 v38; // x8
  58. __int128 v39; // q1
  59. void **v40; // x26
  60. int v41; // w8
  61. float v42; // s0
  62. signed __int64 v43; // x0
  63. _QWORD *v44; // x8
  64. __int64 v45; // x8
  65. __int128 v46; // q1
  66. _QWORD *v47; // x8
  67. __int64 v48; // x10
  68. unsigned __int64 v49; // x9
  69. void **v50; // x11
  70. unsigned __int64 v51; // x8
  71. void **v52; // x26
  72. int v53; // w8
  73. float v54; // s0
  74. signed __int64 v55; // x0
  75. _QWORD *v56; // x8
  76. __int64 v57; // x8
  77. __int128 v58; // q1
  78. void **v59; // x26
  79. int v60; // w8
  80. float v61; // s0
  81. signed __int64 v62; // x0
  82. _QWORD *v63; // x8
  83. __int64 v64; // x8
  84. __int128 v65; // q1
  85. void **v66; // x26
  86. int v67; // w8
  87. float v68; // s0
  88. signed __int64 v69; // x0
  89. _QWORD *v70; // x8
  90. __int64 v71; // x8
  91. __int128 v72; // q1
  92. unsigned __int64 v73; // x8
  93. void **v74; // x26
  94. int v75; // w8
  95. float v76; // w8
  96. signed __int64 v77; // x0
  97. _QWORD *v78; // x8
  98. __int64 v79; // x8
  99. void **v80; // x26
  100. int v81; // w8
  101. float v82; // w8
  102. signed __int64 v83; // x0
  103. _QWORD *v84; // x8
  104. __int64 v85; // x8
  105. void **v86; // x8
  106. int v87; // w9
  107. int v88; // w8
  108. __int64 v89; // x0
  109. void **v90; // x26
  110. int v91; // w8
  111. float v92; // s1
  112. float v93; // w8
  113. signed __int64 v94; // x0
  114. _QWORD *v95; // x8
  115. __int64 v96; // x8
  116. void **v97; // x26
  117. int v98; // w8
  118. signed __int64 v99; // x0
  119. _QWORD *v100; // x8
  120. unsigned __int64 v101; // x8
  121. _QWORD *v102; // x8
  122. void **v103; // x10
  123. unsigned __int64 v104; // x9
  124. int v105; // w11
  125. bool v106; // zf
  126. char v107; // w10
  127. void **v108; // x10
  128. int v109; // w11
  129. bool v110; // zf
  130. char v111; // w10
  131. void **v112; // x10
  132. int v113; // w11
  133. bool v114; // zf
  134. void **v115; // x11
  135. int v116; // w12
  136. bool v117; // zf
  137. char v118; // w11
  138. void **v119; // x8
  139. int v120; // w9
  140. unsigned __int64 v121; // x24
  141. bool v122; // zf
  142. char v123; // w8
  143. int v124; // w0
  144. void **v125; // x8
  145. int v126; // w9
  146. bool v127; // zf
  147. char v128; // w8
  148. unsigned __int64 i; // x8
  149. unsigned __int64 v130; // x9
  150. __int128 v132; // [xsp+0h] [xbp-150h]
  151. __int128 v133; // [xsp+10h] [xbp-140h]
  152. __int64 v134; // [xsp+20h] [xbp-130h]
  153. __int64 v135; // [xsp+28h] [xbp-128h]
  154. __int64 v136; // [xsp+30h] [xbp-120h]
  155. __int64 v137; // [xsp+38h] [xbp-118h]
  156. float v138; // [xsp+40h] [xbp-110h]
  157. __int64 v139; // [xsp+48h] [xbp-108h]
  158. int v140; // [xsp+50h] [xbp-100h]
  159. char v141; // [xsp+54h] [xbp-FCh]
  160. __int64 v142; // [xsp+58h] [xbp-F8h]
  161. __int64 v143; // [xsp+60h] [xbp-F0h]
  162. __int64 v144; // [xsp+68h] [xbp-E8h]
  163. char v145; // [xsp+70h] [xbp-E0h]
  164. __int16 v146; // [xsp+71h] [xbp-DFh]
  165. char v147; // [xsp+73h] [xbp-DDh]
  166. __int16 v148; // [xsp+74h] [xbp-DCh]
  167. char v149; // [xsp+76h] [xbp-DAh]
  168. __int64 v150; // [xsp+78h] [xbp-D8h]
  169. __int16 v151; // [xsp+80h] [xbp-D0h]
  170. __int64 v152; // [xsp+88h] [xbp-C8h]
  171. __int128 v153; // [xsp+90h] [xbp-C0h]
  172. int v154; // [xsp+A0h] [xbp-B0h]
  173. __int16 v155; // [xsp+A4h] [xbp-ACh]
  174. char v156; // [xsp+A6h] [xbp-AAh]
  175. int v157; // [xsp+A8h] [xbp-A8h]
  176. int v158; // [xsp+ACh] [xbp-A4h]
  177. __int64 v159; // [xsp+B0h] [xbp-A0h]
  178. __int64 v160; // [xsp+B8h] [xbp-98h]
  179. __int16 v161; // [xsp+C0h] [xbp-90h]
  180. __int16 v162; // [xsp+C4h] [xbp-8Ch]
  181. int v163; // [xsp+C8h] [xbp-88h]
  182. __int64 v164; // [xsp+CCh] [xbp-84h]
  183. __int64 v165; // [xsp+D4h] [xbp-7Ch]
  184. __int64 v166; // [xsp+DCh] [xbp-74h]
  185. int v167; // [xsp+E4h] [xbp-6Ch]
  186. char v168; // [xsp+E8h] [xbp-68h]
  187. char v169; // [xsp+E9h] [xbp-67h]
  188. __int64 v170; // [xsp+F0h] [xbp-60h]
  189. __int64 v171; // [xsp+F8h] [xbp-58h]
  190.  
  191. v2 = a2;
  192. v3 = **(_QWORD **)(a2 + 32);
  193. v4 = *(_QWORD *)(a2 + 16);
  194. v133 = 0uLL;
  195. v134 = 0LL;
  196. v135 = 0LL;
  197. v138 = 1.0;
  198. v136 = 0LL;
  199. v137 = 4575657222473777152LL;
  200. v139 = 0x31ED91FCALL;
  201. v132 = 0uLL;
  202. v5 = a1;
  203. v146 = 0;
  204. v141 = 0;
  205. v140 = 0;
  206. v147 = 0;
  207. v148 = 0;
  208. v151 = 0;
  209. v145 = 0;
  210. v144 = 0LL;
  211. v150 = 0LL;
  212. v152 = 0x31ED91FCALL;
  213. v142 = 0x15A2C502B3LL;
  214. v143 = 0LL;
  215. v149 = 12;
  216. v6 = *(_OWORD *)off_710456A310;
  217. v157 = 0x3F800000;
  218. v158 = 0;
  219. v159 = 0x425CBFC4FLL;
  220. v160 = 0x7FB997A80LL;
  221. v154 = 0;
  222. v156 = 0;
  223. v155 = 0;
  224. v161 = 0;
  225. v162 = 0;
  226. v163 = 0xBF800000;
  227. v153 = v6;
  228. v166 = 0LL;
  229. v165 = 0LL;
  230. v164 = 0LL;
  231. v167 = -1;
  232. v168 = 3;
  233. v169 = 0;
  234. v7 = sub_71029ACA40(a2, 1LL, 0LL);
  235. sub_71029ACA40(v2, 2LL, 0LL);
  236. v139 = sub_71029ACA40(v2, 3LL, 0LL);
  237. v8 = **(_QWORD **)(v2 + 32);
  238. v9 = *(_QWORD *)(v2 + 16);
  239. sub_71029ACA40(v139, v10, v11);
  240. if ( (unsigned __int64)v12 >= v13 )
  241. v14 = &off_7103C42FD0;
  242. else
  243. v14 = v12;
  244. v15 = *((_DWORD *)v14 + 2);
  245. if ( v15 == 3 )
  246. {
  247. v16 = *(float *)v14;
  248. }
  249. else if ( v15 == 19 )
  250. {
  251. v16 = (float)(signed __int64)*v14;
  252. }
  253. else if ( ((_DWORD)v14[1] & 0xF) != 4
  254. || ((v17 = sub_71029C0CE0((unsigned __int8 *)*v14 + 24, (_BOOL8 *)&v170), v18 = *v14, *((_BYTE *)*v14 + 8) != 4) ? (v19 = v18[2]) : (v19 = *((unsigned __int8 *)v18 + 11)),
  255. v17 != v19 + 1) )
  256. {
  257. v16 = 0.0;
  258. }
  259. else if ( (_DWORD)v171 == 19 )
  260. {
  261. v16 = (float)v170;
  262. }
  263. else
  264. {
  265. v16 = *(float *)&v170;
  266. }
  267. *(float *)&v134 = v16;
  268. LODWORD(v135) = sub_71029ACA40(v2, 5LL, 0LL);
  269. HIDWORD(v135) = sub_71029ACA40(v2, 6LL, 0LL);
  270. LODWORD(v136) = sub_71029ACA40(v2, 7LL, 0LL);
  271. HIDWORD(v136) = sub_71029ACA40(v2, 8LL, 0LL);
  272. if ( (unsigned __int64)(**(_QWORD **)(v2 + 32) + 144LL) >= *(_QWORD *)(v2 + 16) )
  273. v20 = &off_7103C42FD0;
  274. else
  275. v20 = (void **)(**(_QWORD **)(v2 + 32) + 144LL);
  276. v21 = *((_DWORD *)v20 + 2);
  277. if ( v21 == 3 )
  278. {
  279. v22 = *(float *)v20;
  280. }
  281. else if ( v21 == 19 )
  282. {
  283. v22 = (float)(signed __int64)*v20;
  284. }
  285. else if ( ((_DWORD)v20[1] & 0xF) != 4
  286. || ((v23 = sub_71029C0CE0((unsigned __int8 *)*v20 + 24, (_BOOL8 *)&v170), v24 = *v20, *((_BYTE *)*v20 + 8) != 4) ? (v25 = v24[2]) : (v25 = *((unsigned __int8 *)v24 + 11)),
  287. v23 != v25 + 1) )
  288. {
  289. v22 = 0.0;
  290. }
  291. else if ( (_DWORD)v171 == 19 )
  292. {
  293. v22 = (float)v170;
  294. }
  295. else
  296. {
  297. v22 = *(float *)&v170;
  298. }
  299. *((float *)&v134 + 1) = v22;
  300. if ( (unsigned __int64)(**(_QWORD **)(v2 + 32) + 160LL) >= *(_QWORD *)(v2 + 16) )
  301. v26 = &off_7103C42FD0;
  302. else
  303. v26 = (void **)(**(_QWORD **)(v2 + 32) + 160LL);
  304. v27 = *((_DWORD *)v26 + 2);
  305. if ( v27 == 3 )
  306. {
  307. v28 = *(float *)v26;
  308. }
  309. else if ( v27 == 19 )
  310. {
  311. v28 = (float)(signed __int64)*v26;
  312. }
  313. else if ( ((_DWORD)v26[1] & 0xF) != 4
  314. || ((v29 = sub_71029C0CE0((unsigned __int8 *)*v26 + 24, (_BOOL8 *)&v170), v30 = *v26, *((_BYTE *)*v26 + 8) != 4) ? (v31 = v30[2]) : (v31 = *((unsigned __int8 *)v30 + 11)),
  315. v29 != v31 + 1) )
  316. {
  317. v28 = 0.0;
  318. }
  319. else
  320. {
  321. v28 = (float)v170;
  322. if ( (_DWORD)v171 != 19 )
  323. v28 = *(float *)&v170;
  324. }
  325. v32 = v132;
  326. *(float *)&v32 = v28;
  327. v132 = v32;
  328. if ( (unsigned __int64)(**(_QWORD **)(v2 + 32) + 176LL) >= *(_QWORD *)(v2 + 16) )
  329. v33 = &off_7103C42FD0;
  330. else
  331. v33 = (void **)(**(_QWORD **)(v2 + 32) + 176LL);
  332. v34 = *((_DWORD *)v33 + 2);
  333. if ( v34 == 3 )
  334. {
  335. v35 = *(float *)v33;
  336. }
  337. else if ( v34 == 19 )
  338. {
  339. v35 = (float)(signed __int64)*v33;
  340. }
  341. else if ( ((_DWORD)v33[1] & 0xF) != 4
  342. || ((v36 = sub_71029C0CE0((unsigned __int8 *)*v33 + 24, (_BOOL8 *)&v170), v37 = *v33, *((_BYTE *)*v33 + 8) != 4) ? (v38 = v37[2]) : (v38 = *((unsigned __int8 *)v37 + 11)),
  343. v36 != v38 + 1) )
  344. {
  345. v35 = 0.0;
  346. }
  347. else
  348. {
  349. v35 = (float)v170;
  350. if ( (_DWORD)v171 != 19 )
  351. v35 = *(float *)&v170;
  352. }
  353. v39 = v132;
  354. *((float *)&v39 + 1) = v35;
  355. v132 = v39;
  356. if ( (unsigned __int64)(**(_QWORD **)(v2 + 32) + 192LL) >= *(_QWORD *)(v2 + 16) )
  357. v40 = &off_7103C42FD0;
  358. else
  359. v40 = (void **)(**(_QWORD **)(v2 + 32) + 192LL);
  360. v41 = *((_DWORD *)v40 + 2);
  361. if ( v41 == 3 )
  362. {
  363. v42 = *(float *)v40;
  364. }
  365. else if ( v41 == 19 )
  366. {
  367. v42 = (float)(signed __int64)*v40;
  368. }
  369. else if ( ((_DWORD)v40[1] & 0xF) != 4
  370. || ((v43 = sub_71029C0CE0((unsigned __int8 *)*v40 + 24, (_BOOL8 *)&v170), v44 = *v40, *((_BYTE *)*v40 + 8) != 4) ? (v45 = v44[2]) : (v45 = *((unsigned __int8 *)v44 + 11)),
  371. v43 != v45 + 1) )
  372. {
  373. v42 = 0.0;
  374. }
  375. else
  376. {
  377. v42 = (float)v170;
  378. if ( (_DWORD)v171 != 19 )
  379. v42 = *(float *)&v170;
  380. }
  381. *(_QWORD *)&v46 = v132;
  382. *((_QWORD *)&v46 + 1) = LODWORD(v42);
  383. v132 = v46;
  384. v47 = *(_QWORD **)(v2 + 32);
  385. v48 = *v47;
  386. v49 = *(_QWORD *)(v2 + 16);
  387. v50 = (void **)(*v47 + 192LL);
  388. if ( ((unsigned __int64)v50 >= v49 || v50 == &off_7103C42FD0 || *(_BYTE *)(v48 + 200) & 0xF)
  389. && (v48 + 208 >= v49 || (void **)(v48 + 208) == &off_7103C42FD0 || *(_BYTE *)(v48 + 216) & 0xF)
  390. && (v48 + 224 >= v49 || (void **)(v48 + 224) == &off_7103C42FD0 || *(_BYTE *)(v48 + 232) & 0xF) )
  391. {
  392. v147 = 2;
  393. v51 = *v47 + 208LL;
  394. if ( v51 >= v49 )
  395. v52 = &off_7103C42FD0;
  396. else
  397. v52 = (void **)v51;
  398. v53 = *((_DWORD *)v52 + 2);
  399. if ( v53 == 3 )
  400. {
  401. v54 = *(float *)v52;
  402. }
  403. else if ( v53 == 19 )
  404. {
  405. v54 = (float)(signed __int64)*v52;
  406. }
  407. else if ( ((_DWORD)v52[1] & 0xF) != 4
  408. || ((v55 = sub_71029C0CE0((unsigned __int8 *)*v52 + 24, (_BOOL8 *)&v170),
  409. v56 = *v52,
  410. *((_BYTE *)*v52 + 8) != 4) ? (v57 = v56[2]) : (v57 = *((unsigned __int8 *)v56 + 11)),
  411. v55 != v57 + 1) )
  412. {
  413. v54 = 0.0;
  414. }
  415. else
  416. {
  417. v54 = (float)v170;
  418. if ( (_DWORD)v171 != 19 )
  419. v54 = *(float *)&v170;
  420. }
  421. v58 = v133;
  422. *(float *)&v58 = v54;
  423. v133 = v58;
  424. if ( (unsigned __int64)(**(_QWORD **)(v2 + 32) + 224LL) >= *(_QWORD *)(v2 + 16) )
  425. v59 = &off_7103C42FD0;
  426. else
  427. v59 = (void **)(**(_QWORD **)(v2 + 32) + 224LL);
  428. v60 = *((_DWORD *)v59 + 2);
  429. if ( v60 == 3 )
  430. {
  431. v61 = *(float *)v59;
  432. }
  433. else if ( v60 == 19 )
  434. {
  435. v61 = (float)(signed __int64)*v59;
  436. }
  437. else if ( ((_DWORD)v59[1] & 0xF) != 4
  438. || ((v62 = sub_71029C0CE0((unsigned __int8 *)*v59 + 24, (_BOOL8 *)&v170),
  439. v63 = *v59,
  440. *((_BYTE *)*v59 + 8) != 4) ? (v64 = v63[2]) : (v64 = *((unsigned __int8 *)v63 + 11)),
  441. v62 != v64 + 1) )
  442. {
  443. v61 = 0.0;
  444. }
  445. else
  446. {
  447. v61 = (float)v170;
  448. if ( (_DWORD)v171 != 19 )
  449. v61 = *(float *)&v170;
  450. }
  451. v65 = v133;
  452. *((float *)&v65 + 1) = v61;
  453. v133 = v65;
  454. if ( (unsigned __int64)(**(_QWORD **)(v2 + 32) + 240LL) >= *(_QWORD *)(v2 + 16) )
  455. v66 = &off_7103C42FD0;
  456. else
  457. v66 = (void **)(**(_QWORD **)(v2 + 32) + 240LL);
  458. v67 = *((_DWORD *)v66 + 2);
  459. if ( v67 == 3 )
  460. {
  461. v68 = *(float *)v66;
  462. }
  463. else if ( v67 == 19 )
  464. {
  465. v68 = (float)(signed __int64)*v66;
  466. }
  467. else if ( ((_DWORD)v66[1] & 0xF) != 4
  468. || ((v69 = sub_71029C0CE0((unsigned __int8 *)*v66 + 24, (_BOOL8 *)&v170),
  469. v70 = *v66,
  470. *((_BYTE *)*v66 + 8) != 4) ? (v71 = v70[2]) : (v71 = *((unsigned __int8 *)v70 + 11)),
  471. v69 != v71 + 1) )
  472. {
  473. v68 = 0.0;
  474. }
  475. else
  476. {
  477. v68 = (float)v170;
  478. if ( (_DWORD)v171 != 19 )
  479. v68 = *(float *)&v170;
  480. }
  481. *(_QWORD *)&v72 = v133;
  482. *((_QWORD *)&v72 + 1) = LODWORD(v68);
  483. v133 = v72;
  484. v47 = *(_QWORD **)(v2 + 32);
  485. v49 = *(_QWORD *)(v2 + 16);
  486. }
  487. else
  488. {
  489. v147 = 0;
  490. }
  491. v73 = *v47 + 256LL;
  492. if ( v73 >= v49 )
  493. v74 = &off_7103C42FD0;
  494. else
  495. v74 = (void **)v73;
  496. v75 = *((_DWORD *)v74 + 2);
  497. if ( v75 == 3 )
  498. {
  499. v76 = *(float *)v74;
  500. }
  501. else if ( v75 == 19 )
  502. {
  503. v76 = (float)(signed __int64)*v74;
  504. }
  505. else if ( ((_DWORD)v74[1] & 0xF) != 4
  506. || ((v77 = sub_71029C0CE0((unsigned __int8 *)*v74 + 24, (_BOOL8 *)&v170), v78 = *v74, *((_BYTE *)*v74 + 8) != 4) ? (v79 = v78[2]) : (v79 = *((unsigned __int8 *)v78 + 11)),
  507. v77 != v79 + 1) )
  508. {
  509. v76 = 0.0;
  510. }
  511. else if ( (_DWORD)v171 == 19 )
  512. {
  513. v76 = (float)v170;
  514. }
  515. else
  516. {
  517. v76 = *(float *)&v170;
  518. }
  519. *((float *)&v137 + 1) = v76;
  520. if ( (unsigned __int64)(**(_QWORD **)(v2 + 32) + 272LL) >= *(_QWORD *)(v2 + 16) )
  521. v80 = &off_7103C42FD0;
  522. else
  523. v80 = (void **)(**(_QWORD **)(v2 + 32) + 272LL);
  524. v81 = *((_DWORD *)v80 + 2);
  525. if ( v81 == 3 )
  526. {
  527. v82 = *(float *)v80;
  528. }
  529. else if ( v81 == 19 )
  530. {
  531. v82 = (float)(signed __int64)*v80;
  532. }
  533. else if ( ((_DWORD)v80[1] & 0xF) != 4
  534. || ((v83 = sub_71029C0CE0((unsigned __int8 *)*v80 + 24, (_BOOL8 *)&v170), v84 = *v80, *((_BYTE *)*v80 + 8) != 4) ? (v85 = v84[2]) : (v85 = *((unsigned __int8 *)v84 + 11)),
  535. v83 != v85 + 1) )
  536. {
  537. v82 = 0.0;
  538. }
  539. else if ( (_DWORD)v171 == 19 )
  540. {
  541. v82 = (float)v170;
  542. }
  543. else
  544. {
  545. v82 = *(float *)&v170;
  546. }
  547. v138 = v82;
  548. BYTE5(v144) = *((float *)&v137 + 1) <= 0.0;
  549. BYTE2(v143) = sub_71029ACA40(v2, 18LL, 0LL);
  550. BYTE2(v144) = sub_71029ACA40(v2, 19LL, 0LL);
  551. v86 = (void **)(**(_QWORD **)(v2 + 32) + 320LL);
  552. if ( (unsigned __int64)v86 >= *(_QWORD *)(v2 + 16) )
  553. v86 = &off_7103C42FD0;
  554. v87 = *((_DWORD *)v86 + 2);
  555. if ( !v87 )
  556. goto LABEL_191;
  557. if ( v87 == 19 )
  558. {
  559. if ( !*v86 || (float)(signed __int64)*v86 == 0.0 )
  560. goto LABEL_191;
  561. LABEL_188:
  562. if ( v87 != 3 || *(float *)v86 != 0.0 )
  563. goto LABEL_190;
  564. LABEL_191:
  565. LOBYTE(v88) = 0;
  566. goto LABEL_192;
  567. }
  568. if ( v87 != 1 )
  569. {
  570. if ( ((_DWORD)v86[1] & 0xF) == 3 && *(float *)v86 == 0.0 )
  571. goto LABEL_191;
  572. goto LABEL_188;
  573. }
  574. v88 = *(_DWORD *)v86;
  575. if ( v88 )
  576. LABEL_190:
  577. v88 = *(_DWORD *)(*(_QWORD *)(*off_710456A320[0] + 80) + 1284LL);
  578. LABEL_192:
  579. BYTE6(v150) = v88;
  580. v89 = sub_71029ACA40(v2, 21LL, 0LL);
  581. if ( v89 == 10329139231LL )
  582. {
  583. BYTE4(v143) = 0;
  584. }
  585. else
  586. {
  587. BYTE4(v143) = 1;
  588. v148 = v89;
  589. }
  590. if ( (unsigned __int64)(**(_QWORD **)(v2 + 32) + 352LL) >= *(_QWORD *)(v2 + 16) )
  591. v90 = &off_7103C42FD0;
  592. else
  593. v90 = (void **)(**(_QWORD **)(v2 + 32) + 352LL);
  594. v91 = *((_DWORD *)v90 + 2);
  595. v92 = 0.0;
  596. if ( v91 == 3 )
  597. {
  598. v93 = *(float *)v90;
  599. }
  600. else if ( v91 == 19 )
  601. {
  602. v93 = (float)(signed __int64)*v90;
  603. }
  604. else if ( ((_DWORD)v90[1] & 0xF) != 4
  605. || ((v94 = sub_71029C0CE0((unsigned __int8 *)*v90 + 24, (_BOOL8 *)&v170), v95 = *v90, *((_BYTE *)*v90 + 8) != 4) ? (v96 = v95[2]) : (v96 = *((unsigned __int8 *)v95 + 11)),
  606. v92 = 0.0,
  607. v94 != v96 + 1) )
  608. {
  609. v93 = 0.0;
  610. }
  611. else if ( (_DWORD)v171 == 19 )
  612. {
  613. v93 = (float)v170;
  614. }
  615. else
  616. {
  617. v93 = *(float *)&v170;
  618. }
  619. *(float *)&v137 = v93;
  620. if ( (unsigned __int64)(**(_QWORD **)(v2 + 32) + 368LL) >= *(_QWORD *)(v2 + 16) )
  621. v97 = &off_7103C42FD0;
  622. else
  623. v97 = (void **)(**(_QWORD **)(v2 + 32) + 368LL);
  624. v98 = *((_DWORD *)v97 + 2);
  625. if ( v98 == 3 )
  626. {
  627. v92 = *(float *)v97;
  628. }
  629. else if ( v98 == 19 )
  630. {
  631. v92 = (float)(signed __int64)*v97;
  632. }
  633. else if ( ((_DWORD)v97[1] & 0xF) == 4 )
  634. {
  635. v99 = sub_71029C0CE0((unsigned __int8 *)*v97 + 24, (_BOOL8 *)&v170);
  636. v100 = *v97;
  637. v101 = *((_BYTE *)*v97 + 8) == 4 ? (unsigned __int64)*((unsigned __int8 *)v100 + 11) : v100[2];
  638. v92 = 0.0;
  639. if ( v99 == v101 + 1 )
  640. {
  641. v92 = *(float *)&v170;
  642. if ( (_DWORD)v171 == 19 )
  643. v92 = (float)v170;
  644. }
  645. }
  646. LODWORD(v150) = (unsigned int)v92;
  647. v102 = *(_QWORD **)(v2 + 32);
  648. v103 = (void **)(*v102 + 384LL);
  649. v104 = *(_QWORD *)(v2 + 16);
  650. if ( (unsigned __int64)v103 >= v104 )
  651. v103 = &off_7103C42FD0;
  652. v105 = *((_DWORD *)v103 + 2);
  653. switch ( v105 )
  654. {
  655. case 0:
  656. goto LABEL_237;
  657. case 19:
  658. if ( !*v103 || (float)(signed __int64)*v103 == 0.0 )
  659. goto LABEL_237;
  660. break;
  661. case 1:
  662. v106 = *(_DWORD *)v103 == 0;
  663. goto LABEL_240;
  664. default:
  665. if ( ((_DWORD)v103[1] & 0xF) == 3 && *(float *)v103 == 0.0 )
  666. {
  667. LABEL_237:
  668. v107 = 0;
  669. goto LABEL_245;
  670. }
  671. break;
  672. }
  673. if ( v105 != 3 )
  674. {
  675. v107 = 1;
  676. goto LABEL_245;
  677. }
  678. v106 = *(float *)v103 == 0.0;
  679. LABEL_240:
  680. v107 = !v106;
  681. LABEL_245:
  682. BYTE5(v143) = v107;
  683. v108 = (void **)(*v102 + 400LL);
  684. if ( (unsigned __int64)v108 >= v104 )
  685. v108 = &off_7103C42FD0;
  686. v109 = *((_DWORD *)v108 + 2);
  687. switch ( v109 )
  688. {
  689. case 0:
  690. goto LABEL_256;
  691. case 19:
  692. if ( !*v108 || (float)(signed __int64)*v108 == 0.0 )
  693. goto LABEL_256;
  694. break;
  695. case 1:
  696. v110 = *(_DWORD *)v108 == 0;
  697. goto LABEL_259;
  698. default:
  699. if ( ((_DWORD)v108[1] & 0xF) == 3 && *(float *)v108 == 0.0 )
  700. {
  701. LABEL_256:
  702. v111 = 0;
  703. goto LABEL_264;
  704. }
  705. break;
  706. }
  707. if ( v109 != 3 )
  708. {
  709. v111 = 1;
  710. goto LABEL_264;
  711. }
  712. v110 = *(float *)v108 == 0.0;
  713. LABEL_259:
  714. v111 = !v110;
  715. LABEL_264:
  716. BYTE6(v143) = v111;
  717. v112 = (void **)(*v102 + 416LL);
  718. if ( (unsigned __int64)v112 >= v104 )
  719. v112 = &off_7103C42FD0;
  720. v113 = *((_DWORD *)v112 + 2);
  721. if ( v113 )
  722. {
  723. if ( v113 == 19 )
  724. {
  725. if ( !*v112 || (float)(signed __int64)*v112 == 0.0 )
  726. goto LABEL_275;
  727. }
  728. else
  729. {
  730. if ( v113 == 1 )
  731. {
  732. v114 = *(_DWORD *)v112 == 0;
  733. LABEL_278:
  734. LOBYTE(v113) = !v114;
  735. goto LABEL_283;
  736. }
  737. if ( ((_DWORD)v112[1] & 0xF) == 3 && *(float *)v112 == 0.0 )
  738. {
  739. LABEL_275:
  740. LOBYTE(v113) = 0;
  741. goto LABEL_283;
  742. }
  743. }
  744. if ( v113 != 3 )
  745. {
  746. LOBYTE(v113) = 1;
  747. goto LABEL_283;
  748. }
  749. v114 = *(float *)v112 == 0.0;
  750. goto LABEL_278;
  751. }
  752. LABEL_283:
  753. v145 = v113;
  754. v115 = (void **)(*v102 + 432LL);
  755. if ( (unsigned __int64)v115 >= v104 )
  756. v115 = &off_7103C42FD0;
  757. v116 = *((_DWORD *)v115 + 2);
  758. switch ( v116 )
  759. {
  760. case 0:
  761. goto LABEL_294;
  762. case 19:
  763. if ( !*v115 || (float)(signed __int64)*v115 == 0.0 )
  764. goto LABEL_294;
  765. break;
  766. case 1:
  767. v117 = *(_DWORD *)v115 == 0;
  768. goto LABEL_297;
  769. default:
  770. if ( ((_DWORD)v115[1] & 0xF) == 3 && *(float *)v115 == 0.0 )
  771. {
  772. LABEL_294:
  773. v118 = 0;
  774. goto LABEL_302;
  775. }
  776. break;
  777. }
  778. if ( v116 != 3 )
  779. {
  780. v118 = 1;
  781. goto LABEL_302;
  782. }
  783. v117 = *(float *)v115 == 0.0;
  784. LABEL_297:
  785. v118 = !v117;
  786. LABEL_302:
  787. BYTE6(v144) = v118;
  788. v119 = (void **)(*v102 + 448LL);
  789. if ( (unsigned __int64)v119 >= v104 )
  790. v119 = &off_7103C42FD0;
  791. v120 = *((_DWORD *)v119 + 2);
  792. v121 = v4 - (v3 + 16);
  793. switch ( v120 )
  794. {
  795. case 0:
  796. goto LABEL_313;
  797. case 19:
  798. if ( !*v119 || (float)(signed __int64)*v119 == 0.0 )
  799. goto LABEL_313;
  800. break;
  801. case 1:
  802. v122 = *(_DWORD *)v119 == 0;
  803. goto LABEL_316;
  804. default:
  805. if ( ((_DWORD)v119[1] & 0xF) == 3 && *(float *)v119 == 0.0 )
  806. {
  807. LABEL_313:
  808. v123 = 0;
  809. goto LABEL_321;
  810. }
  811. break;
  812. }
  813. if ( v120 != 3 )
  814. {
  815. v123 = 1;
  816. goto LABEL_321;
  817. }
  818. v122 = *(float *)v119 == 0.0;
  819. LABEL_316:
  820. v123 = !v122;
  821. LABEL_321:
  822. HIBYTE(v143) = v123;
  823. v124 = sub_71029ACA40(v2, 29LL, 0LL);
  824. if ( v124 & 0x80000000 )
  825. HIBYTE(v146) = 1;
  826. BYTE2(v140) = v124;
  827. LOWORD(v140) = sub_71029ACA40(v2, 30LL, 0LL);
  828. v141 = sub_71029ACA40(v2, 31LL, 0LL);
  829. v125 = (void **)(**(_QWORD **)(v2 + 32) + 512LL);
  830. if ( (unsigned __int64)v125 >= *(_QWORD *)(v2 + 16) )
  831. v125 = &off_7103C42FD0;
  832. v126 = *((_DWORD *)v125 + 2);
  833. switch ( v126 )
  834. {
  835. case 0:
  836. goto LABEL_334;
  837. case 19:
  838. if ( !*v125 || (float)(signed __int64)*v125 == 0.0 )
  839. goto LABEL_334;
  840. break;
  841. case 1:
  842. v127 = *(_DWORD *)v125 == 0;
  843. goto LABEL_337;
  844. default:
  845. if ( ((_DWORD)v125[1] & 0xF) == 3 && *(float *)v125 == 0.0 )
  846. {
  847. LABEL_334:
  848. v128 = 0;
  849. goto LABEL_342;
  850. }
  851. break;
  852. }
  853. if ( v126 != 3 )
  854. {
  855. v128 = 1;
  856. goto LABEL_342;
  857. }
  858. v127 = *(float *)v125 == 0.0;
  859. LABEL_337:
  860. v128 = !v127;
  861. LABEL_342:
  862. BYTE4(v144) = v128;
  863. v142 = sub_71029ACA40(v2, 33LL, 0LL);
  864. LOBYTE(v143) = sub_71029ACA40(v2, 34LL, 0LL);
  865. BYTE1(v143) = sub_71029ACA40(v2, 35LL, 0LL);
  866. LOBYTE(v146) = sub_71029ACA40(v2, 36LL, 0LL);
  867. if ( (v121 >> 4) & 0x80000000 )
  868. {
  869. v130 = *(_QWORD *)(v2 + 16);
  870. for ( i = **(_QWORD **)(v2 + 32) + ((signed __int64)((v121 << 28) ^ 0xFFFFFFFF00000000LL) >> 28) + 16;
  871. v130 < i;
  872. v130 = *(_QWORD *)(v2 + 16) )
  873. {
  874. *(_QWORD *)(v2 + 16) = v130 + 16;
  875. *(_DWORD *)(v130 + 8) = 0;
  876. }
  877. }
  878. else
  879. {
  880. i = *(_QWORD *)(v2 + 16)
  881. + ((signed __int64)((unsigned __int64)(unsigned int)-(signed __int64)(v121 >> 4) << 32) >> 28);
  882. }
  883. *(_QWORD *)(v2 + 16) = i;
  884. if ( (v139 & 0xFFFFFFFFFFLL) == 0x57AC2C32ELL )
  885. {
  886. sub_710032C9E0(&v170, *(unsigned int *)(v5 + 8), 1LL);
  887. if ( !(*(_DWORD *)(v171 + 8) >> 28) && *(_DWORD *)(v171 + 12) == 6 )
  888. v139 = 0x4DBA80BB2LL;
  889. }
  890. return (*(__int64 (__cdecl **)(_QWORD, _QWORD))(**(_QWORD **)(v5 + 160) + 104LL))(*(_QWORD *)(v5 + 160), v7);
  891. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement