vapksn32

Untitled

Jul 31st, 2025
15
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 66.57 KB | None | 0 0
  1. /* WARNING: Removing unreachable block (ram,0x03ed0234) */
  2. /* WARNING: Removing unreachable block (ram,0x03ecfeb4) */
  3. /* WARNING: Removing unreachable block (ram,0x03ed1030) */
  4. /* WARNING: Removing unreachable block (ram,0x03ed1008) */
  5.  
  6. void FUN_03ecef74(int *param_1,ulong param_2)
  7.  
  8. {
  9. uint uVar1;
  10. char cVar2;
  11. long **pplVar3;
  12. undefined4 uVar4;
  13. int iVar5;
  14. uint uVar6;
  15. undefined8 *puVar7;
  16. undefined8 uVar8;
  17. long *plVar9;
  18. undefined8 uVar10;
  19. long **pplVar11;
  20. long lVar12;
  21. long *plVar13;
  22. long *plVar14;
  23. undefined8 uVar15;
  24. long lVar16;
  25. long lVar17;
  26. long lVar18;
  27. ulong uVar19;
  28. int *piVar20;
  29. long *plVar21;
  30. ulong uVar22;
  31. undefined4 local_194;
  32. long *local_190;
  33. int *piStack_188;
  34. long **pplStack_180;
  35. ulong uStack_178;
  36. long *local_170;
  37. int *piStack_168;
  38. long **local_160;
  39. ulong uStack_158;
  40. undefined8 local_150;
  41. undefined8 uStack_148;
  42. undefined8 uStack_140;
  43. undefined8 uStack_138;
  44. undefined4 local_128;
  45. long *local_120;
  46. int *piStack_118;
  47. long **local_110;
  48. long *local_100;
  49. ulong uStack_f8;
  50. long *local_f0;
  51. int *piStack_e8;
  52. long **local_e0;
  53. long *local_d0;
  54. int *piStack_c8;
  55. long **local_c0;
  56. long *local_b0;
  57. int *piStack_a8;
  58. long **pplStack_a0;
  59. ulong uStack_98;
  60. long *local_90;
  61. int *piStack_88;
  62. long **local_80;
  63. ulong local_78;
  64. int local_64;
  65.  
  66. if ((DAT_0857340b & 1) == 0) {
  67. FUN_037b991c(&DAT_08267c10);
  68. FUN_037b991c(&DAT_08272c68);
  69. FUN_037b991c(&DAT_082aa338);
  70. FUN_037b991c(&DAT_082a9908);
  71. FUN_037b991c(&DAT_082ab150);
  72. FUN_037b991c(&DAT_0828b7c0);
  73. FUN_037b991c(&DAT_0828ae90);
  74. FUN_037b991c(&DAT_0828ae98);
  75. FUN_037b991c(&DAT_0828b7c8);
  76. FUN_037b991c(&DAT_08273f80);
  77. FUN_037b991c(&DAT_082746e8);
  78. FUN_037b991c(&DAT_08274830);
  79. FUN_037b991c(&DAT_082b2d90);
  80. FUN_037b991c(&DAT_082b2d88);
  81. FUN_037b991c(&DAT_082b4b00);
  82. FUN_037b991c(&DAT_082b67e8);
  83. FUN_037b991c(&DAT_082911b0);
  84. FUN_037b991c(&DAT_08291468);
  85. FUN_037b991c(&DAT_082911b8);
  86. FUN_037b991c(&DAT_08291470);
  87. FUN_037b991c(&DAT_08291478);
  88. FUN_037b991c(&DAT_082911c0);
  89. FUN_037b991c(&DAT_0826bf18);
  90. FUN_037b991c(&DAT_0826bf20);
  91. FUN_037b991c(&DAT_08277b88);
  92. FUN_037b991c(&DAT_082991d8);
  93. FUN_037b991c(&DAT_08298990);
  94. FUN_037b991c(&DAT_082991e0);
  95. FUN_037b991c(&DAT_082991f0);
  96. FUN_037b991c(&DAT_082989a0);
  97. FUN_037b991c(&DAT_08298980);
  98. FUN_037b991c(&DAT_0826e0a8);
  99. FUN_037b991c(&DAT_0829f670);
  100. FUN_037b991c(&DAT_0829f298);
  101. FUN_037b991c(&DAT_0826f740);
  102. FUN_037b991c(&DAT_0826f590);
  103. FUN_037b991c(&DAT_08278f30);
  104. FUN_037b991c(&DAT_082bdcd0);
  105. FUN_037b991c(&DAT_08279d40);
  106. FUN_037b991c(&DAT_08279e50);
  107. FUN_037b991c(&DAT_082beb80);
  108. FUN_037b991c(&DAT_082be788);
  109. FUN_037b991c(&DAT_08279f18);
  110. FUN_037b991c(&DAT_0827ab80);
  111. FUN_037b991c(&DAT_082c46c0);
  112. FUN_037b991c(&DAT_082ce9f8);
  113. FUN_037b991c(&DAT_082cea00);
  114. FUN_037b991c(&DAT_082cea20);
  115. FUN_037b991c(&DAT_082cea28);
  116. FUN_037b991c(&DAT_082cea30);
  117. FUN_037b991c(&DAT_082cea38);
  118. FUN_037b991c(&DAT_082cea40);
  119. FUN_037b991c(&DAT_082cea48);
  120. FUN_037b991c(&DAT_082cea50);
  121. FUN_037b991c(&DAT_08283538);
  122. FUN_037b991c(&DAT_08283530);
  123. FUN_037b991c(&DAT_0827d248);
  124. FUN_037b991c(&DAT_082a6990);
  125. FUN_037b991c(&DAT_0827d240);
  126. FUN_037b991c(&DAT_0827d748);
  127. FUN_037b991c(&DAT_082e4e68);
  128. FUN_037b991c(&DAT_082fe030);
  129. FUN_037b991c(&DAT_082fe490);
  130. FUN_037b991c(&DAT_082d6430);
  131. DAT_0857340b = 1;
  132. }
  133. local_64 = *param_1;
  134. plVar21 = *(long **)(param_1 + 6);
  135. local_d0 = (long *)0x0;
  136. piStack_c8 = (int *)0x0;
  137. local_c0 = (long **)0x0;
  138. piStack_a8 = (int *)0x0;
  139. local_b0 = (long *)0x0;
  140. uStack_98 = 0;
  141. pplStack_a0 = (long **)0x0;
  142. piStack_88 = (int *)0x0;
  143. local_90 = (long *)0x0;
  144. local_78 = 0;
  145. local_80 = (long **)0x0;
  146. local_f0 = (long *)0x0;
  147. piStack_e8 = (int *)0x0;
  148. local_e0 = (long **)0x0;
  149. local_100 = (long *)0x0;
  150. uStack_f8 = 0;
  151. local_120 = (long *)0x0;
  152. piStack_118 = (int *)0x0;
  153. local_110 = (long **)0x0;
  154. local_128 = 0;
  155. if (local_64 < 3) {
  156. if (local_64 == 0) {
  157. piStack_88 = *(int **)(param_1 + 0xe);
  158. plVar13 = *(long **)(param_1 + 0xc);
  159. local_78 = *(ulong *)(param_1 + 0x12);
  160. local_80 = *(long ***)(param_1 + 0x10);
  161. local_64 = -1;
  162. param_1[0xe] = 0;
  163. param_1[0xf] = 0;
  164. param_1[0xc] = 0;
  165. param_1[0xd] = 0;
  166. param_1[0x12] = 0;
  167. param_1[0x13] = 0;
  168. param_1[0x10] = 0;
  169. param_1[0x11] = 0;
  170. *param_1 = -1;
  171. local_90 = plVar13;
  172. LAB_03ecf380:
  173. if (plVar13 != (long *)0x0) {
  174. uVar22 = local_78 & 0xffff;
  175. lVar12 = *(long *)(DAT_0828ae90 + 0x20);
  176. if ((*(ushort *)(lVar12 + 0x135) & 1) == 0) {
  177. /* try { // try from 03ecf3a4 to 03ecf3ff has its CatchHandler @ 03ed125c */
  178. FUN_037f1d68();
  179. }
  180. lVar12 = *(long *)(*(long *)(lVar12 + 0xc0) + 0x28);
  181. if ((*(ushort *)(lVar12 + 0x135) & 1) == 0) {
  182. FUN_037f1d68();
  183. }
  184. lVar18 = *plVar13;
  185. uVar19 = (ulong)*(ushort *)(lVar18 + 0x12e);
  186. if (uVar19 != 0) {
  187. piVar20 = (int *)(*(long *)(lVar18 + 0xb0) + 8);
  188. do {
  189. if (*(long *)(piVar20 + -2) == lVar12) {
  190. plVar9 = (long *)(lVar18 + (long)*piVar20 * 0x10 + 0x138);
  191. goto LAB_03ecf82c;
  192. }
  193. uVar19 = uVar19 - 1;
  194. piVar20 = piVar20 + 4;
  195. } while (uVar19 != 0);
  196. }
  197. plVar9 = plVar13;
  198. FUN_037f209c(plVar13,lVar12,0);
  199. LAB_03ecf82c:
  200. /* try { // try from 03ecf830 to 03ecf83b has its CatchHandler @ 03ed125c */
  201. (*(code *)*plVar9)(plVar13,uVar22,plVar9[1]);
  202. }
  203. LAB_03ecfa20:
  204. if (plVar21 == (long *)0x0) {
  205. /* WARNING: Subroutine does not return */
  206. /* try { // try from 03ed0fa4 to 03ed0fa7 has its CatchHandler @ 03ed1298 */
  207. FUN_037b9b80();
  208. }
  209. /* try { // try from 03ecfa24 to 03ecfa2b has its CatchHandler @ 03ed1298 */
  210. FUN_03eccbf0(plVar21);
  211. lVar12 = *(long *)(param_1 + 10);
  212. uVar15 = DAT_0827d248;
  213. /* try { // try from 03ecfa3c to 03ecfa4b has its CatchHandler @ 03ed12dc */
  214. thunk_FUN_037f5024();
  215. FUN_0741011c();
  216. if (lVar12 == 0) {
  217. /* WARNING: Subroutine does not return */
  218. /* try { // try from 03ed0fa8 to 03ed0fab has its CatchHandler @ 03ed12dc */
  219. FUN_037b9b80();
  220. }
  221. *(undefined8 *)(lVar12 + 0x58) = uVar15;
  222. lVar12 = *(long *)(param_1 + 10);
  223. if (*(int *)(DAT_0826f740 + 0xe4) == 0) {
  224. /* try { // try from 03ecfa6c to 03ecfa6f has its CatchHandler @ 03ed10cc */
  225. thunk_FUN_0381640c();
  226. }
  227. uVar15 = DAT_0829f670;
  228. /* try { // try from 03ecfa7c to 03ecfa9b has its CatchHandler @ 03ed1258 */
  229. FUN_054e515c();
  230. if (*(int *)(DAT_08283530 + 0xe4) == 0) {
  231. thunk_FUN_0381640c();
  232. }
  233. lVar18 = *(long *)(*(long *)(DAT_08283530 + 0xb8) + 8);
  234. if (lVar18 == 0) {
  235. if (*(int *)(DAT_08283530 + 0xe4) == 0) {
  236. /* try { // try from 03ecfab4 to 03ecfab7 has its CatchHandler @ 03ed1310 */
  237. thunk_FUN_0381640c();
  238. }
  239. lVar18 = DAT_0826bf18;
  240. /* try { // try from 03ecfad0 to 03ecfaef has its CatchHandler @ 03ed1198 */
  241. thunk_FUN_037f5024();
  242. FUN_04f7c2a8();
  243. *(long *)(*(long *)(DAT_08283530 + 0xb8) + 8) = lVar18;
  244. }
  245. /* try { // try from 03ecfb08 to 03ecfb13 has its CatchHandler @ 03ed1294 */
  246. FUN_046e1e14(uVar15,lVar18,DAT_082b67e8);
  247. if (lVar12 == 0) {
  248. /* WARNING: Subroutine does not return */
  249. /* try { // try from 03ed0fac to 03ed0faf has its CatchHandler @ 03ed1294 */
  250. FUN_037b9b80();
  251. }
  252. *(undefined8 *)(lVar12 + 0x18) = uVar15;
  253. lVar12 = *(long *)(param_1 + 8);
  254. if (lVar12 == 0) {
  255. /* WARNING: Subroutine does not return */
  256. /* try { // try from 03ed0fb0 to 03ed0fb3 has its CatchHandler @ 03ed11c0 */
  257. FUN_037b9b80();
  258. }
  259. uVar15 = *(undefined8 *)(lVar12 + 400);
  260. lVar18 = *(long *)(param_1 + 10);
  261. /* try { // try from 03ecfb2c to 03ecfb33 has its CatchHandler @ 03ed11bc */
  262. FUN_038c7f7c(uVar15,*(undefined8 *)(lVar12 + 0x198),0);
  263. if (*(long *)(param_1 + 10) == 0) {
  264. /* WARNING: Subroutine does not return */
  265. /* try { // try from 03ed0fb4 to 03ed0fb7 has its CatchHandler @ 03ed11b8 */
  266. FUN_037b9b80();
  267. }
  268. uVar22 = *(ulong *)(*(long *)(param_1 + 10) + 0x18);
  269. if (*(int *)(DAT_08283530 + 0xe4) == 0) {
  270. /* try { // try from 03ecfb50 to 03ecfb53 has its CatchHandler @ 03ed10c8 */
  271. thunk_FUN_0381640c();
  272. }
  273. lVar12 = *(long *)(*(long *)(DAT_08283530 + 0xb8) + 0x10);
  274. if (lVar12 == 0) {
  275. if (*(int *)(DAT_08283530 + 0xe4) == 0) {
  276. /* try { // try from 03ecfb6c to 03ecfb6f has its CatchHandler @ 03ed1310 */
  277. thunk_FUN_0381640c();
  278. }
  279. lVar12 = DAT_0826bf20;
  280. /* try { // try from 03ecfb88 to 03ecfba7 has its CatchHandler @ 03ed1194 */
  281. thunk_FUN_037f5024();
  282. FUN_04f7c4d0();
  283. *(long *)(*(long *)(DAT_08283530 + 0xb8) + 0x10) = lVar12;
  284. }
  285. /* try { // try from 03ecfbc0 to 03ecfbe7 has its CatchHandler @ 03ed1254 */
  286. FUN_046cb2fc(uVar22,lVar12,DAT_082b4b00);
  287. if (*(int *)(DAT_08278f30 + 0xe4) == 0) {
  288. thunk_FUN_0381640c();
  289. }
  290. /* try { // try from 03ecfbe8 to 03ecfbf7 has its CatchHandler @ 03ed1290 */
  291. iVar5 = (int)uVar15 + 1;
  292. FUN_06e047b4(iVar5,uVar22 & 0xffffffff,0);
  293. if (lVar18 == 0) {
  294. /* WARNING: Subroutine does not return */
  295. /* try { // try from 03ed0fb8 to 03ed0fbb has its CatchHandler @ 03ed1290 */
  296. FUN_037b9b80();
  297. }
  298. *(int *)(lVar18 + 0x20) = iVar5;
  299. uVar15 = DAT_082e4e68;
  300. /* try { // try from 03ecfc0c to 03ecfc1b has its CatchHandler @ 03ed11b4 */
  301. FUN_077c5bac(DAT_082e4e68,0xffffffff,0);
  302. lVar12 = *(long *)(param_1 + 10);
  303. uVar6 = (uint)uVar15;
  304. if (uVar6 == 0xffffffff) {
  305. if (lVar12 == 0) {
  306. /* WARNING: Subroutine does not return */
  307. /* try { // try from 03ed1024 to 03ed1027 has its CatchHandler @ 03ed10c4 */
  308. FUN_037b9b80();
  309. }
  310. lVar18 = *(long *)(param_1 + 8);
  311. if (lVar18 == 0) {
  312. /* WARNING: Subroutine does not return */
  313. /* try { // try from 03ed1028 to 03ed102b has its CatchHandler @ 03ed10c0 */
  314. FUN_037b9b80();
  315. }
  316. uVar15 = *(undefined8 *)(lVar18 + 400);
  317. uVar6 = *(uint *)(lVar12 + 0x20);
  318. /* try { // try from 03ecfc58 to 03ecfc5f has its CatchHandler @ 03ed10bc */
  319. FUN_038c7f7c(uVar15,*(undefined8 *)(lVar18 + 0x198),0);
  320. if ((int)uVar15 + 1 <= (int)uVar6) {
  321. uVar6 = (int)uVar15 + 1;
  322. }
  323. uVar22 = (ulong)uVar6;
  324. /* try { // try from 03ecfc6c to 03ecfc73 has its CatchHandler @ 03ed10b8 */
  325. lVar12 = 0;
  326. FUN_038c91b4();
  327. }
  328. else {
  329. if (lVar12 == 0) {
  330. /* WARNING: Subroutine does not return */
  331. /* try { // try from 03ed0ff0 to 03ed0ff3 has its CatchHandler @ 03ed1138 */
  332. FUN_037b9b80();
  333. }
  334. uVar1 = *(uint *)(lVar12 + 0x20);
  335. if ((int)uVar6 <= (int)*(uint *)(lVar12 + 0x20)) {
  336. uVar1 = uVar6;
  337. }
  338. uVar22 = (ulong)uVar1;
  339. /* try { // try from 03ecfc38 to 03ecfc3f has its CatchHandler @ 03ed1134 */
  340. lVar12 = 0;
  341. FUN_038c91b4();
  342. }
  343. plVar21[0x1c] = uVar22;
  344. plVar21[0x1d] = lVar12;
  345. /* try { // try from 03ecfc78 to 03ecfc87 has its CatchHandler @ 03ed11b0 */
  346. iVar5 = 0xd6;
  347. FUN_03b7802c(0xd6,1,0);
  348. lVar12 = plVar21[0x10];
  349. if (iVar5 == 1) {
  350. /* try { // try from 03ecfc98 to 03ecfca3 has its CatchHandler @ 03ed111c */
  351. FUN_03f7d05c(lVar12,0,0);
  352. if (plVar21[0xf] == 0) {
  353. /* WARNING: Subroutine does not return */
  354. /* try { // try from 03ed0ff8 to 03ed0ffb has its CatchHandler @ 03ed1114 */
  355. FUN_037b9b80();
  356. }
  357. /* try { // try from 03ecfcac to 03ecfcb3 has its CatchHandler @ 03ed1110 */
  358. FUN_077e1edc(plVar21[0xf],0);
  359. if (plVar21[0x19] == 0) {
  360. /* WARNING: Subroutine does not return */
  361. /* try { // try from 03ed1000 to 03ed1003 has its CatchHandler @ 03ed110c */
  362. FUN_037b9b80();
  363. }
  364. /* try { // try from 03ecfcc8 to 03ecfccf has its CatchHandler @ 03ed1108 */
  365. hojyokansuu(&local_170,plVar21[0x19],DAT_082991f0);
  366. local_c0 = local_160;
  367. piStack_c8 = piStack_168;
  368. local_d0 = local_170;
  369. local_170 = (long *)0x0;
  370. local_160 = &local_d0;
  371. piStack_168 = &local_64;
  372. while( true ) {
  373. /* try { // try from 03ecfd04 to 03ecfd0b has its CatchHandler @ 03ed13bc */
  374. pplVar11 = &local_d0;
  375. FUN_06b10ea0(pplVar11,DAT_08291470);
  376. pplVar3 = local_c0;
  377. if (((ulong)pplVar11 & 1) == 0) break;
  378. if (*(int *)(DAT_08279d40 + 0xe4) == 0) {
  379. /* try { // try from 03ecfd20 to 03ecfd2f has its CatchHandler @ 03ed1404 */
  380. thunk_FUN_0381640c();
  381. }
  382. FUN_077d59dc(pplVar3,0);
  383. }
  384. if (local_64 < 0) {
  385. /* try { // try from 03ecfea4 to 03ecfea7 has its CatchHandler @ 03ed1184 */
  386. FUN_06b10e9c(local_160,DAT_08291468);
  387. }
  388. lVar12 = plVar21[0x19];
  389. if (lVar12 == 0) {
  390. /* WARNING: Subroutine does not return */
  391. /* try { // try from 03ed102c to 03ed102f has its CatchHandler @ 03ed112c */
  392. FUN_037b9b80();
  393. }
  394. iVar5 = *(int *)(lVar12 + 0x18);
  395. *(undefined4 *)(lVar12 + 0x18) = 0;
  396. *(int *)(lVar12 + 0x1c) = *(int *)(lVar12 + 0x1c) + 1;
  397. if (0 < iVar5) {
  398. /* try { // try from 03ecfed8 to 03ecfee3 has its CatchHandler @ 03ed112c */
  399. FUN_06e26768(*(undefined8 *)(lVar12 + 0x10),0,iVar5,0);
  400. }
  401. lVar18 = DAT_0826e0a8;
  402. /* try { // try from 03ecfef0 to 03ecff07 has its CatchHandler @ 03ed113c */
  403. thunk_FUN_037f5024();
  404. FUN_0535c0c8();
  405. /* try { // try from 03ecff08 to 03ecff17 has its CatchHandler @ 03ed10b4 */
  406. FUN_03b7802c(0xd4,0xf,0);
  407. uVar22 = DAT_08274830;
  408. /* try { // try from 03ecff28 to 03ecffab has its CatchHandler @ 03ed1260 */
  409. thunk_FUN_037f5024();
  410. FUN_03bb59cc();
  411. lVar12 = DAT_08298990;
  412. if (lVar18 == 0) {
  413. LAB_03ed0fec:
  414. /* WARNING: Subroutine does not return */
  415. /* try { // try from 03ed0fec to 03ed0fef has its CatchHandler @ 03ed1260 */
  416. FUN_037b9b80();
  417. }
  418. lVar16 = *(long *)(lVar18 + 0x10);
  419. *(int *)(lVar18 + 0x1c) = *(int *)(lVar18 + 0x1c) + 1;
  420. if (lVar16 == 0) goto LAB_03ed0fec;
  421. uVar6 = *(uint *)(lVar18 + 0x18);
  422. if (uVar6 < *(uint *)(lVar16 + 0x18)) {
  423. *(uint *)(lVar18 + 0x18) = uVar6 + 1;
  424. *(ulong *)(lVar16 + (long)(int)uVar6 * 8 + 0x20) = uVar22;
  425. }
  426. else {
  427. FUN_0535c8c4(lVar18,uVar22,
  428. *(undefined8 *)(*(long *)(*(long *)(lVar12 + 0x20) + 0xc0) + 0x70));
  429. }
  430. /* try { // try from 03ecffac to 03ecffbb has its CatchHandler @ 03ed10b0 */
  431. iVar5 = 0x203;
  432. FUN_03b7802c(0x203,0,0);
  433. if (0 < iVar5) {
  434. uVar22 = DAT_08274830;
  435. /* try { // try from 03ecffcc to 03ed0043 has its CatchHandler @ 03ed118c */
  436. thunk_FUN_037f5024();
  437. FUN_03bb59cc();
  438. lVar12 = DAT_08298990;
  439. lVar16 = *(long *)(lVar18 + 0x10);
  440. *(int *)(lVar18 + 0x1c) = *(int *)(lVar18 + 0x1c) + 1;
  441. if (lVar16 == 0) {
  442. /* WARNING: Subroutine does not return */
  443. /* try { // try from 03ed1048 to 03ed104b has its CatchHandler @ 03ed118c */
  444. FUN_037b9b80();
  445. }
  446. uVar6 = *(uint *)(lVar18 + 0x18);
  447. if (uVar6 < *(uint *)(lVar16 + 0x18)) {
  448. *(uint *)(lVar18 + 0x18) = uVar6 + 1;
  449. *(ulong *)(lVar16 + (long)(int)uVar6 * 8 + 0x20) = uVar22;
  450. }
  451. else {
  452. FUN_0535c8c4(lVar18,uVar22,
  453. *(undefined8 *)(*(long *)(*(long *)(lVar12 + 0x20) + 0xc0) + 0x70));
  454. }
  455. }
  456. /* try { // try from 03ed0044 to 03ed0053 has its CatchHandler @ 03ed10ac */
  457. iVar5 = 0x204;
  458. FUN_03b7802c(0x204,0,0);
  459. if (0 < iVar5) {
  460. uVar22 = DAT_08274830;
  461. /* try { // try from 03ed0064 to 03ed00db has its CatchHandler @ 03ed1188 */
  462. thunk_FUN_037f5024();
  463. FUN_03bb59cc();
  464. lVar12 = DAT_08298990;
  465. lVar16 = *(long *)(lVar18 + 0x10);
  466. *(int *)(lVar18 + 0x1c) = *(int *)(lVar18 + 0x1c) + 1;
  467. if (lVar16 == 0) {
  468. /* WARNING: Subroutine does not return */
  469. /* try { // try from 03ed104c to 03ed104f has its CatchHandler @ 03ed1188 */
  470. FUN_037b9b80();
  471. }
  472. uVar6 = *(uint *)(lVar18 + 0x18);
  473. if (uVar6 < *(uint *)(lVar16 + 0x18)) {
  474. *(uint *)(lVar18 + 0x18) = uVar6 + 1;
  475. *(ulong *)(lVar16 + (long)(int)uVar6 * 8 + 0x20) = uVar22;
  476. }
  477. else {
  478. FUN_0535c8c4(lVar18,uVar22,
  479. *(undefined8 *)(*(long *)(*(long *)(lVar12 + 0x20) + 0xc0) + 0x70));
  480. }
  481. }
  482. /* try { // try from 03ed00e8 to 03ed00f3 has its CatchHandler @ 03ed10a8 */
  483. hojyokansuu(&local_170,lVar18,DAT_082989a0);
  484. piStack_e8 = piStack_168;
  485. local_f0 = local_170;
  486. local_e0 = local_160;
  487. local_160 = &local_f0;
  488. local_170 = (long *)0x0;
  489. piStack_168 = &local_64;
  490. while( true ) {
  491. /* try { // try from 03ed0130 to 03ed0137 has its CatchHandler @ 03ed130c */
  492. pplVar11 = &local_f0;
  493. FUN_06b10ea0(pplVar11,DAT_082911b8);
  494. pplVar3 = local_e0;
  495. if (((ulong)pplVar11 & 1) == 0) break;
  496. lVar12 = plVar21[0xf];
  497. lVar18 = plVar21[0x10];
  498. if (*(int *)(DAT_08279d40 + 0xe4) == 0) {
  499. /* try { // try from 03ed0150 to 03ed0153 has its CatchHandler @ 03ed12ec */
  500. thunk_FUN_0381640c();
  501. }
  502. /* try { // try from 03ed0158 to 03ed0163 has its CatchHandler @ 03ed1300 */
  503. FUN_0477f0a8(lVar18,lVar12,DAT_082bdcd0);
  504. if (lVar18 == 0) {
  505. /* WARNING: Subroutine does not return */
  506. /* try { // try from 03ed0f64 to 03ed0f67 has its CatchHandler @ 03ed1304 */
  507. FUN_037b9b80();
  508. }
  509. /* try { // try from 03ed016c to 03ed018b has its CatchHandler @ 03ed1308 */
  510. FUN_03f5da40(lVar18,pplVar3,1,0,0,0,0);
  511. /* try { // try from 03ed018c to 03ed0193 has its CatchHandler @ 03ed12fc */
  512. FUN_07427808();
  513. lVar16 = plVar21[0x19];
  514. /* try { // try from 03ed0198 to 03ed01fb has its CatchHandler @ 03ed13b8 */
  515. FUN_077cb900(lVar18,0);
  516. lVar12 = DAT_082991d8;
  517. if (lVar16 == 0) {
  518. LAB_03ed0f60:
  519. /* WARNING: Subroutine does not return */
  520. /* try { // try from 03ed0f60 to 03ed0f63 has its CatchHandler @ 03ed13c0 */
  521. FUN_037b9b80();
  522. }
  523. lVar17 = *(long *)(lVar16 + 0x10);
  524. *(int *)(lVar16 + 0x1c) = *(int *)(lVar16 + 0x1c) + 1;
  525. if (lVar17 == 0) goto LAB_03ed0f60;
  526. uVar6 = *(uint *)(lVar16 + 0x18);
  527. if (uVar6 < *(uint *)(lVar17 + 0x18)) {
  528. *(uint *)(lVar16 + 0x18) = uVar6 + 1;
  529. *(long *)(lVar17 + (long)(int)uVar6 * 8 + 0x20) = lVar18;
  530. }
  531. else {
  532. FUN_0535c8c4(lVar16,lVar18,
  533. *(undefined8 *)(*(long *)(*(long *)(lVar12 + 0x20) + 0xc0) + 0x70));
  534. }
  535. }
  536. if (local_64 < 0) {
  537. /* try { // try from 03ed0224 to 03ed0227 has its CatchHandler @ 03ed10ec */
  538. FUN_06b10e9c(local_160,DAT_082911b0);
  539. }
  540. /* try { // try from 03ed023c to 03ed0247 has its CatchHandler @ 03ed1078 */
  541. FUN_03f7d05c(plVar21[0x10],0,0);
  542. }
  543. else {
  544. if (lVar12 == 0) {
  545. /* WARNING: Subroutine does not return */
  546. /* try { // try from 03ed0ff4 to 03ed0ff7 has its CatchHandler @ 03ed1118 */
  547. FUN_037b9b80();
  548. }
  549. /* try { // try from 03ecfd38 to 03ecfd4f has its CatchHandler @ 03ed1264 */
  550. FUN_077cb900(lVar12,0);
  551. if (lVar12 == 0) {
  552. /* WARNING: Subroutine does not return */
  553. /* try { // try from 03ed0ffc to 03ed0fff has its CatchHandler @ 03ed1264 */
  554. FUN_037b9b80();
  555. }
  556. FUN_077cf200();
  557. /* try { // try from 03ecfd50 to 03ecfd5f has its CatchHandler @ 03ed1104 */
  558. FUN_03b7802c(0xd4,0xf,0);
  559. uVar22 = DAT_08274830;
  560. /* try { // try from 03ecfd70 to 03ecfd93 has its CatchHandler @ 03ed11ac */
  561. thunk_FUN_037f5024();
  562. FUN_03bb59cc();
  563. plVar13 = (long *)plVar21[0x10];
  564. if (plVar13 == (long *)0x0) {
  565. /* WARNING: Subroutine does not return */
  566. /* try { // try from 03ed1004 to 03ed1007 has its CatchHandler @ 03ed1100 */
  567. FUN_037b9b80();
  568. }
  569. /* try { // try from 03ecfd9c to 03ecfdb7 has its CatchHandler @ 03ed10fc */
  570. FUN_03f5da40(plVar13,uVar22,1,0,0,0,0);
  571. if (*(int *)(DAT_0827d240 + 0xe4) == 0) {
  572. /* try { // try from 03ecfdd4 to 03ecfdd7 has its CatchHandler @ 03ed1070 */
  573. thunk_FUN_0381640c();
  574. }
  575. local_100 = plVar13;
  576. uStack_f8 = uVar22;
  577. if (DAT_08571494 == '\0') {
  578. /* try { // try from 03ecfde8 to 03ecfe7b has its CatchHandler @ 03ed11c4 */
  579. FUN_037b991c(&DAT_0827d240);
  580. DAT_08571494 = '\x01';
  581. }
  582. if (*(int *)(DAT_0827d240 + 0xe4) == 0) {
  583. thunk_FUN_0381640c();
  584. }
  585. if (DAT_08571495 == '\0') {
  586. FUN_037b991c(&DAT_08277e68);
  587. DAT_08571495 = '\x01';
  588. }
  589. plVar13 = local_100;
  590. if (local_100 != (long *)0x0) {
  591. lVar12 = *local_100;
  592. uVar19 = uStack_f8 & 0xffff;
  593. uVar22 = (ulong)*(ushort *)(lVar12 + 0x12e);
  594. if (uVar22 != 0) {
  595. piVar20 = (int *)(*(long *)(lVar12 + 0xb0) + 8);
  596. do {
  597. if (*(long *)(piVar20 + -2) == DAT_08277e68) {
  598. plVar9 = (long *)(lVar12 + (long)*piVar20 * 0x10 + 0x138);
  599. goto LAB_03ed0258;
  600. }
  601. uVar22 = uVar22 - 1;
  602. piVar20 = piVar20 + 4;
  603. } while (uVar22 != 0);
  604. }
  605. plVar9 = local_100;
  606. FUN_037f209c(local_100,DAT_08277e68,0);
  607. LAB_03ed0258:
  608. /* try { // try from 03ed025c to 03ed0267 has its CatchHandler @ 03ed11c4 */
  609. (*(code *)*plVar9)(plVar13,uVar19,plVar9[1]);
  610. if ((int)plVar13 == 0) {
  611. *param_1 = 1;
  612. uVar15 = DAT_082ab150;
  613. local_64 = 1;
  614. *(ulong *)(param_1 + 0x16) = uStack_f8;
  615. *(long **)(param_1 + 0x14) = local_100;
  616. /* try { // try from 03ed0efc to 03ed0f0b has its CatchHandler @ 03ed105c */
  617. FUN_03edb64c(param_1 + 2,&local_100,param_1,uVar15);
  618. return;
  619. }
  620. }
  621. LAB_03ed026c:
  622. if (DAT_08571496 == '\0') {
  623. /* try { // try from 03ed0278 to 03ed02ff has its CatchHandler @ 03ed1310 */
  624. FUN_037b991c(&DAT_08277e68);
  625. DAT_08571496 = '\x01';
  626. }
  627. plVar13 = local_100;
  628. if (local_100 != (long *)0x0) {
  629. lVar12 = *local_100;
  630. uVar19 = uStack_f8 & 0xffff;
  631. uVar22 = (ulong)*(ushort *)(lVar12 + 0x12e);
  632. if (uVar22 != 0) {
  633. piVar20 = (int *)(*(long *)(lVar12 + 0xb0) + 8);
  634. do {
  635. if (*(long *)(piVar20 + -2) == DAT_08277e68) {
  636. plVar9 = (long *)(lVar12 + (long)(*piVar20 + 2) * 0x10 + 0x138);
  637. goto LAB_03ed02f0;
  638. }
  639. uVar22 = uVar22 - 1;
  640. piVar20 = piVar20 + 4;
  641. } while (uVar22 != 0);
  642. }
  643. plVar9 = local_100;
  644. FUN_037f209c(local_100,DAT_08277e68,2);
  645. LAB_03ed02f0:
  646. (*(code *)*plVar9)(plVar13,uVar19,plVar9[1]);
  647. }
  648. }
  649. if (*(long *)(param_1 + 10) == 0) {
  650. /* WARNING: Subroutine does not return */
  651. /* try { // try from 03ed0f88 to 03ed0f8b has its CatchHandler @ 03ed12d8 */
  652. FUN_037b9b80();
  653. }
  654. /* try { // try from 03ed0308 to 03ed030f has its CatchHandler @ 03ed12d8 */
  655. FUN_03ecd2ec(*(long *)(param_1 + 10),0);
  656. if (plVar21 == (long *)0x0) {
  657. /* WARNING: Subroutine does not return */
  658. /* try { // try from 03ed0f8c to 03ed0f8f has its CatchHandler @ 03ed1244 */
  659. FUN_037b9b80();
  660. }
  661. lVar12 = plVar21[5];
  662. /* try { // try from 03ed0318 to 03ed0323 has its CatchHandler @ 03ed1240 */
  663. FUN_03f686a4(lVar12,0,0);
  664. uVar15 = DAT_08267c10;
  665. /* try { // try from 03ed0338 to 03ed0357 has its CatchHandler @ 03ed12d4 */
  666. thunk_FUN_037f5024(DAT_08267c10);
  667. FUN_04ce8810();
  668. /* try { // try from 03ed0364 to 03ed036f has its CatchHandler @ 03ed123c */
  669. FUN_047a78f4(lVar12,uVar15,DAT_082beb80);
  670. /* try { // try from 03ed0380 to 03ed0383 has its CatchHandler @ 03ed1238 */
  671. FUN_0469dd5c();
  672. lVar12 = plVar21[6];
  673. /* try { // try from 03ed0388 to 03ed0393 has its CatchHandler @ 03ed1234 */
  674. FUN_03f686a4(lVar12,0,0);
  675. uVar15 = DAT_08267c10;
  676. /* try { // try from 03ed03a0 to 03ed03bf has its CatchHandler @ 03ed12d0 */
  677. thunk_FUN_037f5024(DAT_08267c10);
  678. FUN_04ce8810();
  679. /* try { // try from 03ed03c4 to 03ed03cf has its CatchHandler @ 03ed1230 */
  680. FUN_047a78f4(lVar12,uVar15,DAT_082beb80);
  681. /* try { // try from 03ed03d8 to 03ed03db has its CatchHandler @ 03ed122c */
  682. FUN_0469dd5c();
  683. lVar12 = plVar21[7];
  684. /* try { // try from 03ed03e0 to 03ed03eb has its CatchHandler @ 03ed1228 */
  685. FUN_03f686a4(lVar12,0,0);
  686. uVar15 = DAT_08267c10;
  687. /* try { // try from 03ed03f8 to 03ed0417 has its CatchHandler @ 03ed12cc */
  688. thunk_FUN_037f5024(DAT_08267c10);
  689. FUN_04ce8810();
  690. /* try { // try from 03ed041c to 03ed0427 has its CatchHandler @ 03ed1224 */
  691. FUN_047a78f4(lVar12,uVar15,DAT_082beb80);
  692. /* try { // try from 03ed0430 to 03ed0433 has its CatchHandler @ 03ed1220 */
  693. FUN_0469dd5c();
  694. lVar12 = plVar21[8];
  695. /* try { // try from 03ed0438 to 03ed0443 has its CatchHandler @ 03ed121c */
  696. FUN_03f686a4(lVar12,1,0);
  697. uVar15 = DAT_08267c10;
  698. /* try { // try from 03ed0450 to 03ed046f has its CatchHandler @ 03ed12c8 */
  699. thunk_FUN_037f5024(DAT_08267c10);
  700. FUN_04ce8810();
  701. /* try { // try from 03ed0474 to 03ed047f has its CatchHandler @ 03ed1218 */
  702. FUN_047a78f4(lVar12,uVar15,DAT_082beb80);
  703. /* try { // try from 03ed0488 to 03ed048b has its CatchHandler @ 03ed1214 */
  704. FUN_0469dd5c();
  705. lVar12 = plVar21[9];
  706. /* try { // try from 03ed0490 to 03ed049b has its CatchHandler @ 03ed1210 */
  707. FUN_03f686a4(lVar12,1,0);
  708. uVar15 = DAT_08267c10;
  709. /* try { // try from 03ed04a8 to 03ed04c7 has its CatchHandler @ 03ed12c4 */
  710. thunk_FUN_037f5024(DAT_08267c10);
  711. FUN_04ce8810();
  712. /* try { // try from 03ed04cc to 03ed04d7 has its CatchHandler @ 03ed120c */
  713. FUN_047a78f4(lVar12,uVar15,DAT_082beb80);
  714. /* try { // try from 03ed04e0 to 03ed04e3 has its CatchHandler @ 03ed1208 */
  715. FUN_0469dd5c();
  716. lVar12 = plVar21[10];
  717. if (*(int *)(DAT_08272c68 + 0xe4) == 0) {
  718. /* try { // try from 03ed04fc to 03ed04ff has its CatchHandler @ 03ed10f8 */
  719. thunk_FUN_0381640c();
  720. }
  721. if (DAT_08571499 == '\0') {
  722. /* try { // try from 03ed050c to 03ed052f has its CatchHandler @ 03ed12b0 */
  723. FUN_037b991c(&DAT_08272c68);
  724. DAT_08571499 = '\x01';
  725. }
  726. if (*(int *)(DAT_08272c68 + 0xe4) == 0) {
  727. thunk_FUN_0381640c();
  728. }
  729. lVar18 = *(long *)(*(long *)(DAT_08272c68 + 0xb8) + 0x70);
  730. if (lVar18 == 0) {
  731. /* WARNING: Subroutine does not return */
  732. /* try { // try from 03ed0f90 to 03ed0f93 has its CatchHandler @ 03ed12b0 */
  733. FUN_037b9b80();
  734. }
  735. lVar18 = *(long *)(lVar18 + 0x28);
  736. if (lVar18 == 0) {
  737. /* WARNING: Subroutine does not return */
  738. /* try { // try from 03ed0f94 to 03ed0f97 has its CatchHandler @ 03ed1204 */
  739. FUN_037b9b80();
  740. }
  741. /* try { // try from 03ed0548 to 03ed054f has its CatchHandler @ 03ed12c0 */
  742. FUN_03bd5ec8(lVar18,0);
  743. if (lVar18 == 0) {
  744. /* WARNING: Subroutine does not return */
  745. /* try { // try from 03ed0f98 to 03ed0f9b has its CatchHandler @ 03ed12c0 */
  746. FUN_037b9b80();
  747. }
  748. /* try { // try from 03ed0560 to 03ed056b has its CatchHandler @ 03ed1200 */
  749. FUN_03f7d05c(lVar12,0 < *(long *)(lVar18 + 0x60),0);
  750. /* try { // try from 03ed0570 to 03ed057b has its CatchHandler @ 03ed11fc */
  751. FUN_03f7d05c(plVar21[0xb],0,0);
  752. lVar12 = plVar21[10];
  753. /* try { // try from 03ed0580 to 03ed058b has its CatchHandler @ 03ed11f8 */
  754. FUN_03f686a4(lVar12,0,0);
  755. uVar15 = DAT_08267c10;
  756. /* try { // try from 03ed0598 to 03ed05b7 has its CatchHandler @ 03ed12bc */
  757. thunk_FUN_037f5024(DAT_08267c10);
  758. FUN_04ce8810();
  759. /* try { // try from 03ed05bc to 03ed05c7 has its CatchHandler @ 03ed11f4 */
  760. FUN_047a78f4(lVar12,uVar15,DAT_082beb80);
  761. /* try { // try from 03ed05d0 to 03ed05d3 has its CatchHandler @ 03ed11f0 */
  762. FUN_0469dd5c();
  763. plVar13 = plVar21;
  764. /* try { // try from 03ed05d4 to 03ed05ef has its CatchHandler @ 03ed12e8 */
  765. FUN_077cb900(plVar21,0);
  766. if (plVar13 == (long *)0x0) {
  767. /* WARNING: Subroutine does not return */
  768. /* try { // try from 03ed0f9c to 03ed0f9f has its CatchHandler @ 03ed12e8 */
  769. FUN_037b9b80();
  770. }
  771. FUN_077cf200();
  772. if (DAT_085714b1 == '\0') {
  773. /* try { // try from 03ed05fc to 03ed061f has its CatchHandler @ 03ed12ac */
  774. FUN_037b991c(&DAT_08272c68);
  775. DAT_085714b1 = '\x01';
  776. }
  777. if (*(int *)(DAT_08272c68 + 0xe4) == 0) {
  778. thunk_FUN_0381640c();
  779. }
  780. lVar12 = *(long *)(*(long *)(DAT_08272c68 + 0xb8) + 0xe0);
  781. if (lVar12 == 0) {
  782. /* WARNING: Subroutine does not return */
  783. /* try { // try from 03ed0fa0 to 03ed0fa3 has its CatchHandler @ 03ed12ac */
  784. FUN_037b9b80();
  785. }
  786. uVar15 = *(undefined8 *)(lVar12 + 0x20);
  787. if (*(int *)(DAT_08279f18 + 0xe4) == 0) {
  788. /* try { // try from 03ed0648 to 03ed064b has its CatchHandler @ 03ed10f4 */
  789. thunk_FUN_0381640c();
  790. }
  791. /* try { // try from 03ed0658 to 03ed065f has its CatchHandler @ 03ed11ec */
  792. FUN_04799e9c(uVar15,DAT_082be788);
  793. uVar8 = DAT_08267c10;
  794. /* try { // try from 03ed066c to 03ed068b has its CatchHandler @ 03ed12b8 */
  795. thunk_FUN_037f5024(DAT_08267c10);
  796. FUN_04ce8810();
  797. /* try { // try from 03ed0690 to 03ed069b has its CatchHandler @ 03ed11e8 */
  798. FUN_047a78f4(uVar15,uVar8,DAT_082beb80);
  799. /* try { // try from 03ed06a4 to 03ed06a7 has its CatchHandler @ 03ed11e4 */
  800. FUN_0469dd5c();
  801. /* try { // try from 03ed06b4 to 03ed06bb has its CatchHandler @ 03ed11e0 */
  802. FUN_0469de74();
  803. /* try { // try from 03ed06c0 to 03ed06d3 has its CatchHandler @ 03ed11dc */
  804. FUN_041c9d58(0x3f800000,0x3e4ccccd,plVar21[4],0);
  805. /* try { // try from 03ed06e0 to 03ed06e7 has its CatchHandler @ 03ed11d8 */
  806. FUN_04906e88();
  807. /* try { // try from 03ed06e8 to 03ed06f3 has its CatchHandler @ 03ed11d4 */
  808. FUN_03b5ac18(&local_170);
  809. piStack_118 = piStack_168;
  810. local_120 = local_170;
  811. local_110 = local_160;
  812. if ((*(ushort *)(*(long *)(DAT_0828b7c8 + 0x20) + 0x135) & 1) == 0) {
  813. /* try { // try from 03ed0720 to 03ed07b3 has its CatchHandler @ 03ed12b4 */
  814. FUN_037f1d68();
  815. }
  816. if (DAT_0857148f == '\0') {
  817. FUN_037b991c(&DAT_08277e68);
  818. DAT_0857148f = '\x01';
  819. }
  820. plVar13 = local_120;
  821. if (local_120 != (long *)0x0) {
  822. lVar12 = *local_120;
  823. uVar19 = (ulong)local_110 & 0xffff;
  824. uVar22 = (ulong)*(ushort *)(lVar12 + 0x12e);
  825. if (uVar22 != 0) {
  826. piVar20 = (int *)(*(long *)(lVar12 + 0xb0) + 8);
  827. do {
  828. if (*(long *)(piVar20 + -2) == DAT_08277e68) {
  829. plVar9 = (long *)(lVar12 + (long)*piVar20 * 0x10 + 0x138);
  830. goto LAB_03ed07a4;
  831. }
  832. uVar22 = uVar22 - 1;
  833. piVar20 = piVar20 + 4;
  834. } while (uVar22 != 0);
  835. }
  836. plVar9 = local_120;
  837. FUN_037f209c(local_120,DAT_08277e68,0);
  838. LAB_03ed07a4:
  839. plVar14 = plVar13;
  840. (*(code *)*plVar9)(plVar13,uVar19,plVar9[1]);
  841. if ((int)plVar14 == 0) {
  842. local_64 = 2;
  843. *param_1 = 2;
  844. uVar15 = DAT_082aa338;
  845. *(int **)(param_1 + 0x1a) = piStack_118;
  846. *(long **)(param_1 + 0x18) = local_120;
  847. *(long ***)(param_1 + 0x1c) = local_110;
  848. /* try { // try from 03ed0864 to 03ed0873 has its CatchHandler @ 03ed10a0 */
  849. FUN_03edb758(param_1 + 2,&local_120,param_1,uVar15);
  850. return;
  851. }
  852. goto LAB_03ed07b8;
  853. }
  854. }
  855. else {
  856. if (local_64 == 1) {
  857. uStack_f8 = *(ulong *)(param_1 + 0x16);
  858. local_100 = *(long **)(param_1 + 0x14);
  859. param_1[0x14] = 0;
  860. param_1[0x15] = 0;
  861. param_1[0x16] = 0;
  862. param_1[0x17] = 0;
  863. local_64 = -1;
  864. *param_1 = -1;
  865. goto LAB_03ed026c;
  866. }
  867. if (local_64 != 2) {
  868. LAB_03ecf420:
  869. lVar12 = DAT_08283538;
  870. /* try { // try from 03ecf42c to 03ecf43b has its CatchHandler @ 03ed1250 */
  871. thunk_FUN_037f5024();
  872. FUN_06e45658();
  873. *(long *)(param_1 + 10) = lVar12;
  874. if (lVar12 == 0) {
  875. /* WARNING: Subroutine does not return */
  876. /* try { // try from 03ed0fbc to 03ed0fbf has its CatchHandler @ 03ed1180 */
  877. FUN_037b9b80();
  878. }
  879. *(undefined8 *)(lVar12 + 0x10) = *(undefined8 *)(param_1 + 6);
  880. if (plVar21 == (long *)0x0) {
  881. /* WARNING: Subroutine does not return */
  882. /* try { // try from 03ed0fc0 to 03ed0fc3 has its CatchHandler @ 03ed117c */
  883. FUN_037b9b80();
  884. }
  885. *(undefined1 *)(plVar21 + 0x1e) = 1;
  886. if (plVar21[0x1b] != 0) {
  887. /* try { // try from 03ecf460 to 03ecf467 has its CatchHandler @ 03ed1310 */
  888. FUN_073e1794(plVar21[0x1b],0);
  889. }
  890. lVar12 = DAT_08273f80;
  891. /* try { // try from 03ecf474 to 03ecf483 has its CatchHandler @ 03ed124c */
  892. thunk_FUN_037f5024();
  893. FUN_073e0ce8();
  894. plVar21[0x1b] = lVar12;
  895. /* try { // try from 03ecf48c to 03ecf497 has its CatchHandler @ 03ed1178 */
  896. FUN_03f852d0(plVar21[0xd],0x1b8,0);
  897. /* try { // try from 03ecf49c to 03ecf4a7 has its CatchHandler @ 03ed1174 */
  898. FUN_03f852d0(plVar21[0x13],0x1bc,0);
  899. /* try { // try from 03ecf4ac to 03ecf4b7 has its CatchHandler @ 03ed1170 */
  900. FUN_03f852d0(plVar21[0x12],0x1ca,0);
  901. /* try { // try from 03ecf4bc to 03ecf4c7 has its CatchHandler @ 03ed116c */
  902. FUN_03f852d0(plVar21[0x16],0x1c9,0);
  903. lVar12 = *(long *)(param_1 + 8);
  904. /* try { // try from 03ecf4cc to 03ecf4ef has its CatchHandler @ 03ed12a0 */
  905. uVar22 = 0xe1;
  906. FUN_03b7802c(0xe1,0,0);
  907. if (lVar12 == 0) {
  908. /* WARNING: Subroutine does not return */
  909. /* try { // try from 03ed0fc4 to 03ed0fc7 has its CatchHandler @ 03ed12a0 */
  910. FUN_037b9b80();
  911. }
  912. FUN_0398cf94(lVar12,uVar22 & 0xffffffff,0);
  913. lVar12 = *(long *)(param_1 + 8);
  914. if (lVar12 == 0) {
  915. /* WARNING: Subroutine does not return */
  916. /* try { // try from 03ed0fc8 to 03ed0fcb has its CatchHandler @ 03ed1168 */
  917. FUN_037b9b80();
  918. }
  919. uStack_148 = *(undefined8 *)(lVar12 + 0x2a8);
  920. local_150 = *(undefined8 *)(lVar12 + 0x2a0);
  921. uStack_138 = *(undefined8 *)(lVar12 + 0x2b8);
  922. uStack_140 = *(undefined8 *)(lVar12 + 0x2b0);
  923. /* try { // try from 03ecf500 to 03ecf50b has its CatchHandler @ 03ed1164 */
  924. puVar7 = &local_150;
  925. thunk_FUN_038da688(puVar7,0);
  926. lVar12 = plVar21[0x14];
  927. if ((long)puVar7 < 1) {
  928. /* try { // try from 03ecf5ac to 03ecf5c7 has its CatchHandler @ 03ed1120 */
  929. uVar15 = 0x1dd;
  930. FUN_03b7e364(0x1dd,DAT_082d6430,0);
  931. FUN_03f82a50(lVar12,uVar15,0);
  932. }
  933. else {
  934. lVar18 = *(long *)(param_1 + 8);
  935. if (lVar18 == 0) {
  936. /* WARNING: Subroutine does not return */
  937. /* try { // try from 03ed1010 to 03ed1013 has its CatchHandler @ 03ed10e4 */
  938. FUN_037b9b80();
  939. }
  940. piStack_168 = *(int **)(lVar18 + 0x2a8);
  941. local_170 = *(long **)(lVar18 + 0x2a0);
  942. uStack_158 = *(ulong *)(lVar18 + 0x2b8);
  943. local_160 = *(long ***)(lVar18 + 0x2b0);
  944. /* try { // try from 03ecf534 to 03ecf53f has its CatchHandler @ 03ed10e0 */
  945. uVar15 = DAT_08279e50;
  946. thunk_FUN_037f4c78(DAT_08279e50,&local_170);
  947. uVar8 = DAT_082fe030;
  948. /* try { // try from 03ecf54c to 03ecf563 has its CatchHandler @ 03ed11a8 */
  949. FUN_06c8a3c8(DAT_082fe030,uVar15,0);
  950. FUN_03f82a50(lVar12,uVar8,0);
  951. }
  952. lVar12 = *(long *)(param_1 + 10);
  953. if (*(int *)(DAT_08272c68 + 0xe4) == 0) {
  954. /* try { // try from 03ecf5e0 to 03ecf5e3 has its CatchHandler @ 03ed1080 */
  955. thunk_FUN_0381640c();
  956. }
  957. if (DAT_0857149f == '\0') {
  958. /* try { // try from 03ecf5f0 to 03ecf613 has its CatchHandler @ 03ed11cc */
  959. FUN_037b991c(&DAT_08272c68);
  960. DAT_0857149f = '\x01';
  961. }
  962. if (*(int *)(DAT_08272c68 + 0xe4) == 0) {
  963. thunk_FUN_0381640c();
  964. }
  965. plVar13 = *(long **)(*(long *)(DAT_08272c68 + 0xb8) + 0x38);
  966. if (plVar13 == (long *)0x0) {
  967. /* WARNING: Subroutine does not return */
  968. /* try { // try from 03ed0fcc to 03ed0fcf has its CatchHandler @ 03ed11cc */
  969. FUN_037b9b80();
  970. }
  971. lVar18 = *plVar13;
  972. uVar22 = (ulong)*(ushort *)(lVar18 + 0x12e);
  973. if (uVar22 != 0) {
  974. piVar20 = (int *)(*(long *)(lVar18 + 0xb0) + 8);
  975. do {
  976. if (*(long *)(piVar20 + -2) == DAT_08277b88) {
  977. plVar9 = (long *)(lVar18 + (long)(*piVar20 + 3) * 0x10 + 0x138);
  978. goto LAB_03ecf67c;
  979. }
  980. uVar22 = uVar22 - 1;
  981. piVar20 = piVar20 + 4;
  982. } while (uVar22 != 0);
  983. }
  984. plVar9 = plVar13;
  985. /* try { // try from 03ecf65c to 03ecf687 has its CatchHandler @ 03ed11c8 */
  986. FUN_037f209c(plVar13,DAT_08277b88,3);
  987. LAB_03ecf67c:
  988. (*(code *)*plVar9)(plVar13,plVar9[1]);
  989. uVar15 = DAT_0827d748;
  990. /* try { // try from 03ecf698 to 03ecf6ab has its CatchHandler @ 03ed129c */
  991. thunk_FUN_037f5024();
  992. FUN_039be354();
  993. if (lVar12 == 0) {
  994. /* WARNING: Subroutine does not return */
  995. /* try { // try from 03ed0fd0 to 03ed0fd3 has its CatchHandler @ 03ed129c */
  996. FUN_037b9b80();
  997. }
  998. *(undefined8 *)(lVar12 + 0x30) = uVar15;
  999. lVar12 = *(long *)(param_1 + 10);
  1000. /* try { // try from 03ecf6b8 to 03ecf6c7 has its CatchHandler @ 03ed1248 */
  1001. uVar4 = 0xdc;
  1002. FUN_03b7802c(0xdc,0x66,0);
  1003. if (lVar12 == 0) {
  1004. /* WARNING: Subroutine does not return */
  1005. /* try { // try from 03ed0fd4 to 03ed0fd7 has its CatchHandler @ 03ed1248 */
  1006. FUN_037b9b80();
  1007. }
  1008. *(undefined4 *)(lVar12 + 0x38) = uVar4;
  1009. lVar12 = *(long *)(param_1 + 10);
  1010. if (lVar12 == 0) {
  1011. /* WARNING: Subroutine does not return */
  1012. /* try { // try from 03ed0fd8 to 03ed0fdb has its CatchHandler @ 03ed1160 */
  1013. FUN_037b9b80();
  1014. }
  1015. lVar18 = *(long *)(lVar12 + 0x30);
  1016. if (lVar18 == 0) {
  1017. /* WARNING: Subroutine does not return */
  1018. /* try { // try from 03ed0fdc to 03ed0fdf has its CatchHandler @ 03ed115c */
  1019. FUN_037b9b80();
  1020. }
  1021. /* try { // try from 03ecf6e4 to 03ecf6eb has its CatchHandler @ 03ed1158 */
  1022. FUN_039c92ac(lVar18,*(undefined4 *)(lVar12 + 0x38),0);
  1023. *(long *)(lVar12 + 0x28) = lVar18;
  1024. lVar12 = *(long *)(param_1 + 10);
  1025. /* try { // try from 03ecf6f4 to 03ecf703 has its CatchHandler @ 03ed1154 */
  1026. uVar6 = 0xdd;
  1027. FUN_03b7802c(0xdd,1,0);
  1028. if ((int)uVar6 < 2) {
  1029. uVar6 = 1;
  1030. }
  1031. uVar22 = (ulong)uVar6;
  1032. /* try { // try from 03ecf70c to 03ecf713 has its CatchHandler @ 03ed1150 */
  1033. uVar15 = 0;
  1034. FUN_038c91b4();
  1035. if (lVar12 == 0) {
  1036. /* WARNING: Subroutine does not return */
  1037. /* try { // try from 03ed0fe0 to 03ed0fe3 has its CatchHandler @ 03ed114c */
  1038. FUN_037b9b80();
  1039. }
  1040. *(ulong *)(lVar12 + 0x3c) = uVar22;
  1041. *(undefined8 *)(lVar12 + 0x44) = uVar15;
  1042. lVar12 = *(long *)(param_1 + 10);
  1043. if (lVar12 == 0) {
  1044. /* WARNING: Subroutine does not return */
  1045. /* try { // try from 03ed0fe4 to 03ed0fe7 has its CatchHandler @ 03ed1148 */
  1046. FUN_037b9b80();
  1047. }
  1048. uVar6 = *(uint *)(lVar12 + 0x38);
  1049. if (*(int *)(DAT_0826f590 + 0xe4) == 0) {
  1050. /* try { // try from 03ecf740 to 03ecf743 has its CatchHandler @ 03ed107c */
  1051. thunk_FUN_0381640c();
  1052. }
  1053. /* try { // try from 03ecf750 to 03ecf757 has its CatchHandler @ 03ed1144 */
  1054. uVar22 = (ulong)uVar6;
  1055. FUN_054e4fac(uVar22,DAT_0829f298);
  1056. *(ulong *)(lVar12 + 0x50) = uVar22;
  1057. lVar12 = *(long *)(param_1 + 10);
  1058. if (lVar12 == 0) {
  1059. /* WARNING: Subroutine does not return */
  1060. /* try { // try from 03ed0fe8 to 03ed0feb has its CatchHandler @ 03ed1140 */
  1061. FUN_037b9b80();
  1062. }
  1063. if (*(long *)(lVar12 + 0x50) == 0) goto LAB_03ed0e24;
  1064. lVar18 = plVar21[0x18];
  1065. if (*(long *)(lVar12 + 0x28) == 0) {
  1066. uVar15 = DAT_082746e8;
  1067. /* try { // try from 03ecf850 to 03ecf877 has its CatchHandler @ 03ed10f0 */
  1068. thunk_FUN_037f5024(DAT_082746e8);
  1069. FUN_03ba2298();
  1070. FUN_03f7de48(lVar18,uVar15,0);
  1071. lVar12 = plVar21[0x17];
  1072. local_170 = (long *)((ulong)local_170 & 0xffffffff00000000);
  1073. /* try { // try from 03ecf88c to 03ecf893 has its CatchHandler @ 03ed106c */
  1074. uVar15 = DAT_0858eef0;
  1075. thunk_FUN_037f4c78(DAT_0858eef0,&local_170);
  1076. if (*(long *)(param_1 + 10) == 0) {
  1077. /* WARNING: Subroutine does not return */
  1078. /* try { // try from 03ed1050 to 03ed1053 has its CatchHandler @ 03ed1068 */
  1079. FUN_037b9b80();
  1080. }
  1081. lVar18 = *(long *)(*(long *)(param_1 + 10) + 0x50);
  1082. if (lVar18 == 0) {
  1083. /* WARNING: Subroutine does not return */
  1084. /* try { // try from 03ed1054 to 03ed1057 has its CatchHandler @ 03ed1064 */
  1085. FUN_037b9b80();
  1086. }
  1087. local_190 = (long *)CONCAT44(local_190._4_4_,*(undefined4 *)(lVar18 + 0x18));
  1088. /* try { // try from 03ecf8b4 to 03ecf8bb has its CatchHandler @ 03ed1060 */
  1089. uVar8 = DAT_0858eef0;
  1090. thunk_FUN_037f4c78(DAT_0858eef0,&local_190);
  1091. uVar10 = DAT_082fe490;
  1092. /* try { // try from 03ecf8cc to 03ecf8e7 has its CatchHandler @ 03ed10a4 */
  1093. FUN_06c94920(DAT_082fe490,uVar15,uVar8,0);
  1094. FUN_03f82a50(lVar12,uVar10,0);
  1095. }
  1096. else {
  1097. /* try { // try from 03ecf77c to 03ecf787 has its CatchHandler @ 03ed109c */
  1098. FUN_03f7de48(lVar18,*(undefined8 *)(*(long *)(lVar12 + 0x28) + 0x38),0);
  1099. if (*(long *)(param_1 + 10) == 0) {
  1100. /* WARNING: Subroutine does not return */
  1101. /* try { // try from 03ed1038 to 03ed103b has its CatchHandler @ 03ed1098 */
  1102. FUN_037b9b80();
  1103. }
  1104. lVar12 = *(long *)(*(long *)(param_1 + 10) + 0x28);
  1105. if (lVar12 == 0) {
  1106. /* WARNING: Subroutine does not return */
  1107. /* try { // try from 03ed103c to 03ed103f has its CatchHandler @ 03ed1094 */
  1108. FUN_037b9b80();
  1109. }
  1110. piStack_188 = *(int **)(lVar12 + 0x20);
  1111. local_190 = *(long **)(lVar12 + 0x18);
  1112. uStack_178 = *(ulong *)(lVar12 + 0x30);
  1113. pplStack_180 = *(long ***)(lVar12 + 0x28);
  1114. lVar12 = plVar21[0x17];
  1115. /* try { // try from 03ecf7b8 to 03ecf7bf has its CatchHandler @ 03ed1090 */
  1116. uVar15 = DAT_08279e50;
  1117. local_170 = local_190;
  1118. piStack_168 = piStack_188;
  1119. local_160 = pplStack_180;
  1120. uStack_158 = uStack_178;
  1121. thunk_FUN_037f4c78(DAT_08279e50,&local_190);
  1122. if (*(long *)(param_1 + 10) == 0) {
  1123. /* WARNING: Subroutine does not return */
  1124. /* try { // try from 03ed1040 to 03ed1043 has its CatchHandler @ 03ed108c */
  1125. FUN_037b9b80();
  1126. }
  1127. lVar18 = *(long *)(*(long *)(param_1 + 10) + 0x50);
  1128. if (lVar18 == 0) {
  1129. /* WARNING: Subroutine does not return */
  1130. /* try { // try from 03ed1044 to 03ed1047 has its CatchHandler @ 03ed1088 */
  1131. FUN_037b9b80();
  1132. }
  1133. local_194 = *(undefined4 *)(lVar18 + 0x18);
  1134. /* try { // try from 03ecf7e8 to 03ecf7ef has its CatchHandler @ 03ed1084 */
  1135. uVar8 = DAT_0858eef0;
  1136. thunk_FUN_037f4c78(DAT_0858eef0,&local_194);
  1137. uVar10 = DAT_082fe490;
  1138. /* try { // try from 03ecf800 to 03ecf81b has its CatchHandler @ 03ed1128 */
  1139. FUN_06c94920(DAT_082fe490,uVar15,uVar8,0);
  1140. FUN_03f82a50(lVar12,uVar10,0);
  1141. }
  1142. lVar12 = *(long *)(param_1 + 10);
  1143. /* try { // try from 03ecf8ec to 03ecf8fb has its CatchHandler @ 03ed11a4 */
  1144. iVar5 = 0xd9;
  1145. FUN_03b7802c(0xd9,0,0);
  1146. if (lVar12 == 0) {
  1147. /* WARNING: Subroutine does not return */
  1148. /* try { // try from 03ed1014 to 03ed1017 has its CatchHandler @ 03ed11a4 */
  1149. FUN_037b9b80();
  1150. }
  1151. *(bool *)(lVar12 + 0x68) = iVar5 == 1;
  1152. lVar12 = *(long *)(param_1 + 10);
  1153. uVar15 = DAT_0827ab80;
  1154. /* try { // try from 03ecf91c to 03ecf92b has its CatchHandler @ 03ed11d0 */
  1155. thunk_FUN_037f5024();
  1156. FUN_039fa288();
  1157. if (lVar12 == 0) {
  1158. /* WARNING: Subroutine does not return */
  1159. /* try { // try from 03ed1018 to 03ed101b has its CatchHandler @ 03ed11d0 */
  1160. FUN_037b9b80();
  1161. }
  1162. *(undefined8 *)(lVar12 + 0x60) = uVar15;
  1163. lVar12 = *(long *)(param_1 + 10);
  1164. if (lVar12 == 0) {
  1165. /* WARNING: Subroutine does not return */
  1166. /* try { // try from 03ed101c to 03ed101f has its CatchHandler @ 03ed10dc */
  1167. FUN_037b9b80();
  1168. }
  1169. if (*(long *)(lVar12 + 0x60) == 0) {
  1170. /* WARNING: Subroutine does not return */
  1171. /* try { // try from 03ed1020 to 03ed1023 has its CatchHandler @ 03ed10d8 */
  1172. FUN_037b9b80();
  1173. }
  1174. /* try { // try from 03ecf948 to 03ecf95b has its CatchHandler @ 03ed10d4 */
  1175. FUN_039fa290(&local_170,*(long *)(lVar12 + 0x60),2,*(undefined1 *)(lVar12 + 0x68),0,0);
  1176. piStack_a8 = piStack_168;
  1177. local_b0 = local_170;
  1178. uStack_98 = uStack_158;
  1179. pplStack_a0 = local_160;
  1180. if ((*(ushort *)(*(long *)(DAT_082a6990 + 0x20) + 0x135) & 1) == 0) {
  1181. /* try { // try from 03ecf980 to 03ecf983 has its CatchHandler @ 03ed1074 */
  1182. FUN_037f1d68();
  1183. }
  1184. piStack_88 = piStack_a8;
  1185. local_90 = local_b0;
  1186. local_78 = uStack_98;
  1187. local_80 = pplStack_a0;
  1188. if ((*(byte *)(*(long *)(DAT_0828ae98 + 0x20) + 0x135) & 1) == 0) {
  1189. /* try { // try from 03ecf9a4 to 03ecfa17 has its CatchHandler @ 03ed11a0 */
  1190. FUN_037f1d68();
  1191. }
  1192. if (DAT_08571a49 == '\0') {
  1193. FUN_037b991c(&DAT_08277e68);
  1194. DAT_08571a49 = '\x01';
  1195. }
  1196. plVar13 = local_90;
  1197. if (local_90 != (long *)0x0) {
  1198. lVar12 = *local_90;
  1199. uVar19 = local_78 & 0xffff;
  1200. uVar22 = (ulong)*(ushort *)(lVar12 + 0x12e);
  1201. if (uVar22 != 0) {
  1202. piVar20 = (int *)(*(long *)(lVar12 + 0xb0) + 8);
  1203. do {
  1204. if (*(long *)(piVar20 + -2) == DAT_08277e68) {
  1205. plVar9 = (long *)(lVar12 + (long)*piVar20 * 0x10 + 0x138);
  1206. goto LAB_03ed0f1c;
  1207. }
  1208. uVar22 = uVar22 - 1;
  1209. piVar20 = piVar20 + 4;
  1210. } while (uVar22 != 0);
  1211. }
  1212. plVar9 = local_90;
  1213. FUN_037f209c(local_90,DAT_08277e68,0);
  1214. LAB_03ed0f1c:
  1215. plVar14 = plVar13;
  1216. /* try { // try from 03ed0f20 to 03ed0f2b has its CatchHandler @ 03ed11a0 */
  1217. (*(code *)*plVar9)(plVar13,uVar19,plVar9[1]);
  1218. if ((int)plVar14 == 0) {
  1219. local_64 = 0;
  1220. *param_1 = 0;
  1221. uVar15 = DAT_082a9908;
  1222. *(int **)(param_1 + 0xe) = piStack_88;
  1223. *(long **)(param_1 + 0xc) = local_90;
  1224. *(ulong *)(param_1 + 0x12) = local_78;
  1225. *(long ***)(param_1 + 0x10) = local_80;
  1226. /* try { // try from 03ed0f4c to 03ed0f5b has its CatchHandler @ 03ed1058 */
  1227. FUN_03edb540(param_1 + 2,&local_90,param_1,uVar15);
  1228. return;
  1229. }
  1230. goto LAB_03ecf380;
  1231. }
  1232. goto LAB_03ecfa20;
  1233. }
  1234. piStack_118 = *(int **)(param_1 + 0x1a);
  1235. plVar13 = *(long **)(param_1 + 0x18);
  1236. local_110 = *(long ***)(param_1 + 0x1c);
  1237. param_1[0x1a] = 0;
  1238. param_1[0x1b] = 0;
  1239. param_1[0x1c] = 0;
  1240. param_1[0x1d] = 0;
  1241. param_1[0x18] = 0;
  1242. param_1[0x19] = 0;
  1243. local_64 = -1;
  1244. *param_1 = -1;
  1245. local_120 = plVar13;
  1246. LAB_03ed07b8:
  1247. if (plVar13 != (long *)0x0) {
  1248. uVar22 = (ulong)local_110 & 0xffff;
  1249. lVar12 = *(long *)(DAT_0828b7c0 + 0x20);
  1250. if ((*(ushort *)(lVar12 + 0x135) & 1) == 0) {
  1251. /* try { // try from 03ed07dc to 03ed0837 has its CatchHandler @ 03ed128c */
  1252. FUN_037f1d68();
  1253. }
  1254. lVar12 = *(long *)(*(long *)(lVar12 + 0xc0) + 0x28);
  1255. if ((*(ushort *)(lVar12 + 0x135) & 1) == 0) {
  1256. FUN_037f1d68();
  1257. }
  1258. lVar18 = *plVar13;
  1259. uVar19 = (ulong)*(ushort *)(lVar18 + 0x12e);
  1260. if (uVar19 != 0) {
  1261. piVar20 = (int *)(*(long *)(lVar18 + 0xb0) + 8);
  1262. do {
  1263. if (*(long *)(piVar20 + -2) == lVar12) {
  1264. plVar9 = (long *)(lVar18 + (long)*piVar20 * 0x10 + 0x138);
  1265. goto LAB_03ed0884;
  1266. }
  1267. uVar19 = uVar19 - 1;
  1268. piVar20 = piVar20 + 4;
  1269. } while (uVar19 != 0);
  1270. }
  1271. plVar9 = plVar13;
  1272. FUN_037f209c(plVar13,lVar12,0);
  1273. LAB_03ed0884:
  1274. /* try { // try from 03ed0888 to 03ed0893 has its CatchHandler @ 03ed128c */
  1275. (*(code *)*plVar9)(plVar13,uVar22,plVar9[1]);
  1276. }
  1277. }
  1278. /* try { // try from 03ed0894 to 03ed089b has its CatchHandler @ 03ed12e0 */
  1279. lVar12 = 0;
  1280. FUN_03cc01bc();
  1281. if (lVar12 == 0) {
  1282. /* WARNING: Subroutine does not return */
  1283. /* try { // try from 03ed0f7c to 03ed0f7f has its CatchHandler @ 03ed12e0 */
  1284. FUN_037b9b80();
  1285. }
  1286. if (*(long *)(lVar12 + 0x1a0) == 0) {
  1287. /* WARNING: Subroutine does not return */
  1288. /* try { // try from 03ed0f80 to 03ed0f83 has its CatchHandler @ 03ed1270 */
  1289. FUN_037b9b80();
  1290. }
  1291. plVar13 = *(long **)(*(long *)(lVar12 + 0x1a0) + 0x200);
  1292. if (plVar13 == (long *)0x0) {
  1293. /* WARNING: Subroutine does not return */
  1294. /* try { // try from 03ed0f84 to 03ed0f87 has its CatchHandler @ 03ed126c */
  1295. FUN_037b9b80();
  1296. }
  1297. /* try { // try from 03ed08b0 to 03ed08bb has its CatchHandler @ 03ed1268 */
  1298. uVar22 = 0xf4242;
  1299. FUN_03ec65ac();
  1300. if (*(int *)(DAT_0827d240 + 0xe4) == 0) {
  1301. /* try { // try from 03ed08d8 to 03ed08db has its CatchHandler @ 03ed1130 */
  1302. thunk_FUN_0381640c();
  1303. }
  1304. local_100 = plVar13;
  1305. uStack_f8 = uVar22;
  1306. if (DAT_08571494 == '\0') {
  1307. /* try { // try from 03ed08ec to 03ed099f has its CatchHandler @ 03ed12e4 */
  1308. FUN_037b991c(&DAT_0827d240);
  1309. DAT_08571494 = '\x01';
  1310. }
  1311. if (*(int *)(DAT_0827d240 + 0xe4) == 0) {
  1312. thunk_FUN_0381640c();
  1313. }
  1314. if (DAT_08571495 == '\0') {
  1315. FUN_037b991c(&DAT_08277e68);
  1316. DAT_08571495 = '\x01';
  1317. }
  1318. plVar13 = local_100;
  1319. if (local_100 != (long *)0x0) {
  1320. lVar12 = *local_100;
  1321. uVar19 = uStack_f8 & 0xffff;
  1322. uVar22 = (ulong)*(ushort *)(lVar12 + 0x12e);
  1323. if (uVar22 != 0) {
  1324. piVar20 = (int *)(*(long *)(lVar12 + 0xb0) + 8);
  1325. do {
  1326. if (*(long *)(piVar20 + -2) == DAT_08277e68) {
  1327. plVar9 = (long *)(lVar12 + (long)*piVar20 * 0x10 + 0x138);
  1328. goto LAB_03ed0990;
  1329. }
  1330. uVar22 = uVar22 - 1;
  1331. piVar20 = piVar20 + 4;
  1332. } while (uVar22 != 0);
  1333. }
  1334. plVar9 = local_100;
  1335. FUN_037f209c(local_100,DAT_08277e68,0);
  1336. LAB_03ed0990:
  1337. (*(code *)*plVar9)(plVar13,uVar19,plVar9[1]);
  1338. if ((int)plVar13 == 0) {
  1339. *param_1 = 3;
  1340. uVar15 = DAT_082ab150;
  1341. local_64 = 3;
  1342. *(ulong *)(param_1 + 0x16) = uStack_f8;
  1343. *(long **)(param_1 + 0x14) = local_100;
  1344. /* try { // try from 03ed0a38 to 03ed0a47 has its CatchHandler @ 03ed10d0 */
  1345. FUN_03edb64c(param_1 + 2,&local_100,param_1,uVar15);
  1346. return;
  1347. }
  1348. }
  1349. LAB_03ed09a4:
  1350. if (DAT_08571496 == '\0') {
  1351. /* try { // try from 03ed09b0 to 03ed0a13 has its CatchHandler @ 03ed1310 */
  1352. FUN_037b991c(&DAT_08277e68);
  1353. DAT_08571496 = '\x01';
  1354. }
  1355. plVar13 = local_100;
  1356. if (local_100 != (long *)0x0) {
  1357. lVar12 = *local_100;
  1358. uVar19 = uStack_f8 & 0xffff;
  1359. uVar22 = (ulong)*(ushort *)(lVar12 + 0x12e);
  1360. if (uVar22 != 0) {
  1361. piVar20 = (int *)(*(long *)(lVar12 + 0xb0) + 8);
  1362. do {
  1363. if (*(long *)(piVar20 + -2) == DAT_08277e68) {
  1364. plVar9 = (long *)(lVar12 + (long)(*piVar20 + 2) * 0x10 + 0x138);
  1365. goto LAB_03ed0a5c;
  1366. }
  1367. uVar22 = uVar22 - 1;
  1368. piVar20 = piVar20 + 4;
  1369. } while (uVar22 != 0);
  1370. }
  1371. plVar9 = local_100;
  1372. FUN_037f209c(local_100,DAT_08277e68,2);
  1373. LAB_03ed0a5c:
  1374. /* try { // try from 03ed0a60 to 03ed0a6b has its CatchHandler @ 03ed1310 */
  1375. (*(code *)*plVar9)(plVar13,uVar19,plVar9[1]);
  1376. }
  1377. if (plVar21 == (long *)0x0) {
  1378. /* WARNING: Subroutine does not return */
  1379. /* try { // try from 03ed0f6c to 03ed0f6f has its CatchHandler @ 03ed1288 */
  1380. FUN_037b9b80();
  1381. }
  1382. /* try { // try from 03ed0a74 to 03ed0a7b has its CatchHandler @ 03ed1284 */
  1383. FUN_03d7df4c(plVar21[8],0);
  1384. /* try { // try from 03ed0a80 to 03ed0a87 has its CatchHandler @ 03ed1280 */
  1385. FUN_03d7df4c(plVar21[9],0);
  1386. /* try { // try from 03ed0a88 to 03ed0a9f has its CatchHandler @ 03ed12f8 */
  1387. lVar12 = 0;
  1388. FUN_03cc01bc();
  1389. if (lVar12 == 0) {
  1390. /* WARNING: Subroutine does not return */
  1391. /* try { // try from 03ed0f70 to 03ed0f73 has its CatchHandler @ 03ed12f8 */
  1392. FUN_037b9b80();
  1393. }
  1394. FUN_03cd17b4();
  1395. if (*(long *)(param_1 + 10) == 0) {
  1396. /* WARNING: Subroutine does not return */
  1397. /* try { // try from 03ed0f74 to 03ed0f77 has its CatchHandler @ 03ed127c */
  1398. FUN_037b9b80();
  1399. }
  1400. plVar13 = *(long **)(*(long *)(param_1 + 10) + 0x58);
  1401. if (plVar13 == (long *)0x0) {
  1402. /* WARNING: Subroutine does not return */
  1403. /* try { // try from 03ed0f78 to 03ed0f7b has its CatchHandler @ 03ed1278 */
  1404. FUN_037b9b80();
  1405. }
  1406. /* try { // try from 03ed0ab0 to 03ed0ab7 has its CatchHandler @ 03ed1274 */
  1407. uVar22 = 0;
  1408. FUN_07410550();
  1409. param_2 = uVar22;
  1410. if (*(int *)(DAT_0827d240 + 0xe4) == 0) {
  1411. /* try { // try from 03ed0ad4 to 03ed0ad7 has its CatchHandler @ 03ed1190 */
  1412. thunk_FUN_0381640c();
  1413. }
  1414. local_100 = plVar13;
  1415. uStack_f8 = uVar22;
  1416. if (DAT_08571494 == '\0') {
  1417. /* try { // try from 03ed0ae8 to 03ed0b9b has its CatchHandler @ 03ed12f0 */
  1418. FUN_037b991c(&DAT_0827d240);
  1419. DAT_08571494 = '\x01';
  1420. }
  1421. if (*(int *)(DAT_0827d240 + 0xe4) == 0) {
  1422. thunk_FUN_0381640c();
  1423. }
  1424. if (DAT_08571495 == '\0') {
  1425. FUN_037b991c(&DAT_08277e68);
  1426. DAT_08571495 = '\x01';
  1427. }
  1428. plVar13 = local_100;
  1429. if (local_100 != (long *)0x0) {
  1430. lVar12 = *local_100;
  1431. param_2 = uStack_f8 & 0xffff;
  1432. uVar22 = (ulong)*(ushort *)(lVar12 + 0x12e);
  1433. if (uVar22 != 0) {
  1434. piVar20 = (int *)(*(long *)(lVar12 + 0xb0) + 8);
  1435. do {
  1436. if (*(long *)(piVar20 + -2) == DAT_08277e68) {
  1437. plVar9 = (long *)(lVar12 + (long)*piVar20 * 0x10 + 0x138);
  1438. goto LAB_03ed0b8c;
  1439. }
  1440. uVar22 = uVar22 - 1;
  1441. piVar20 = piVar20 + 4;
  1442. } while (uVar22 != 0);
  1443. }
  1444. plVar9 = local_100;
  1445. FUN_037f209c(local_100,DAT_08277e68,0);
  1446. LAB_03ed0b8c:
  1447. (*(code *)*plVar9)(plVar13,param_2,plVar9[1]);
  1448. if ((int)plVar13 == 0) {
  1449. *param_1 = 4;
  1450. uVar15 = DAT_082ab150;
  1451. local_64 = 4;
  1452. *(ulong *)(param_1 + 0x16) = uStack_f8;
  1453. *(long **)(param_1 + 0x14) = local_100;
  1454. /* try { // try from 03ed0c34 to 03ed0c43 has its CatchHandler @ 03ed10e8 */
  1455. FUN_03edb64c(param_1 + 2,&local_100,param_1,uVar15);
  1456. return;
  1457. }
  1458. }
  1459. LAB_03ed0ba0:
  1460. if (DAT_08571496 == '\0') {
  1461. /* try { // try from 03ed0bac to 03ed0c0f has its CatchHandler @ 03ed1310 */
  1462. FUN_037b991c(&DAT_08277e68);
  1463. DAT_08571496 = '\x01';
  1464. }
  1465. plVar13 = local_100;
  1466. if (local_100 != (long *)0x0) {
  1467. lVar12 = *local_100;
  1468. param_2 = uStack_f8 & 0xffff;
  1469. uVar22 = (ulong)*(ushort *)(lVar12 + 0x12e);
  1470. if (uVar22 != 0) {
  1471. piVar20 = (int *)(*(long *)(lVar12 + 0xb0) + 8);
  1472. do {
  1473. if (*(long *)(piVar20 + -2) == DAT_08277e68) {
  1474. plVar9 = (long *)(lVar12 + (long)(*piVar20 + 2) * 0x10 + 0x138);
  1475. goto LAB_03ed0c58;
  1476. }
  1477. uVar22 = uVar22 - 1;
  1478. piVar20 = piVar20 + 4;
  1479. } while (uVar22 != 0);
  1480. }
  1481. plVar9 = local_100;
  1482. FUN_037f209c(local_100,DAT_08277e68,2);
  1483. LAB_03ed0c58:
  1484. /* try { // try from 03ed0c5c to 03ed0c67 has its CatchHandler @ 03ed1310 */
  1485. (*(code *)*plVar9)(plVar13,param_2,plVar9[1]);
  1486. }
  1487. if (plVar21 == (long *)0x0) {
  1488. /* WARNING: Subroutine does not return */
  1489. /* try { // try from 03ed0f68 to 03ed0f6b has its CatchHandler @ 03ed12a8 */
  1490. FUN_037b9b80();
  1491. }
  1492. /* try { // try from 03ed0c6c to 03ed0c73 has its CatchHandler @ 03ed12a4 */
  1493. FUN_03ecd078();
  1494. if (*(int *)(DAT_0827d240 + 0xe4) == 0) {
  1495. /* try { // try from 03ed0c90 to 03ed0c93 has its CatchHandler @ 03ed119c */
  1496. thunk_FUN_0381640c();
  1497. }
  1498. local_100 = plVar21;
  1499. uStack_f8 = param_2;
  1500. if (DAT_08571494 == '\0') {
  1501. /* try { // try from 03ed0ca4 to 03ed0d57 has its CatchHandler @ 03ed12f4 */
  1502. FUN_037b991c(&DAT_0827d240);
  1503. DAT_08571494 = '\x01';
  1504. }
  1505. if (*(int *)(DAT_0827d240 + 0xe4) == 0) {
  1506. thunk_FUN_0381640c();
  1507. }
  1508. if (DAT_08571495 == '\0') {
  1509. FUN_037b991c(&DAT_08277e68);
  1510. DAT_08571495 = '\x01';
  1511. }
  1512. plVar21 = local_100;
  1513. if (local_100 != (long *)0x0) {
  1514. lVar12 = *local_100;
  1515. uVar19 = uStack_f8 & 0xffff;
  1516. uVar22 = (ulong)*(ushort *)(lVar12 + 0x12e);
  1517. if (uVar22 != 0) {
  1518. piVar20 = (int *)(*(long *)(lVar12 + 0xb0) + 8);
  1519. do {
  1520. if (*(long *)(piVar20 + -2) == DAT_08277e68) {
  1521. plVar13 = (long *)(lVar12 + (long)*piVar20 * 0x10 + 0x138);
  1522. goto LAB_03ed0d48;
  1523. }
  1524. uVar22 = uVar22 - 1;
  1525. piVar20 = piVar20 + 4;
  1526. } while (uVar22 != 0);
  1527. }
  1528. plVar13 = local_100;
  1529. FUN_037f209c(local_100,DAT_08277e68,0);
  1530. LAB_03ed0d48:
  1531. (*(code *)*plVar13)(plVar21,uVar19,plVar13[1]);
  1532. if ((int)plVar21 == 0) {
  1533. *param_1 = 5;
  1534. uVar15 = DAT_082ab150;
  1535. local_64 = 5;
  1536. *(ulong *)(param_1 + 0x16) = uStack_f8;
  1537. *(long **)(param_1 + 0x14) = local_100;
  1538. /* try { // try from 03ed0df0 to 03ed0dff has its CatchHandler @ 03ed1124 */
  1539. FUN_03edb64c(param_1 + 2,&local_100,param_1,uVar15);
  1540. return;
  1541. }
  1542. }
  1543. }
  1544. else {
  1545. if (local_64 == 3) {
  1546. uStack_f8 = *(ulong *)(param_1 + 0x16);
  1547. local_100 = *(long **)(param_1 + 0x14);
  1548. param_1[0x14] = 0;
  1549. param_1[0x15] = 0;
  1550. param_1[0x16] = 0;
  1551. param_1[0x17] = 0;
  1552. local_64 = -1;
  1553. *param_1 = -1;
  1554. goto LAB_03ed09a4;
  1555. }
  1556. if (local_64 == 4) {
  1557. uStack_f8 = *(ulong *)(param_1 + 0x16);
  1558. local_100 = *(long **)(param_1 + 0x14);
  1559. param_1[0x14] = 0;
  1560. param_1[0x15] = 0;
  1561. param_1[0x16] = 0;
  1562. param_1[0x17] = 0;
  1563. local_64 = -1;
  1564. *param_1 = -1;
  1565. goto LAB_03ed0ba0;
  1566. }
  1567. if (local_64 != 5) goto LAB_03ecf420;
  1568. uStack_f8 = *(ulong *)(param_1 + 0x16);
  1569. local_100 = *(long **)(param_1 + 0x14);
  1570. param_1[0x14] = 0;
  1571. param_1[0x15] = 0;
  1572. param_1[0x16] = 0;
  1573. param_1[0x17] = 0;
  1574. local_64 = -1;
  1575. *param_1 = -1;
  1576. }
  1577. if (DAT_08571496 == '\0') {
  1578. /* try { // try from 03ed0d68 to 03ed0dcb has its CatchHandler @ 03ed1310 */
  1579. FUN_037b991c(&DAT_08277e68);
  1580. DAT_08571496 = '\x01';
  1581. }
  1582. plVar21 = local_100;
  1583. if (local_100 != (long *)0x0) {
  1584. lVar12 = *local_100;
  1585. uVar19 = uStack_f8 & 0xffff;
  1586. uVar22 = (ulong)*(ushort *)(lVar12 + 0x12e);
  1587. if (uVar22 != 0) {
  1588. piVar20 = (int *)(*(long *)(lVar12 + 0xb0) + 8);
  1589. do {
  1590. if (*(long *)(piVar20 + -2) == DAT_08277e68) {
  1591. plVar13 = (long *)(lVar12 + (long)(*piVar20 + 2) * 0x10 + 0x138);
  1592. goto LAB_03ed0e14;
  1593. }
  1594. uVar22 = uVar22 - 1;
  1595. piVar20 = piVar20 + 4;
  1596. } while (uVar22 != 0);
  1597. }
  1598. plVar13 = local_100;
  1599. FUN_037f209c(local_100,DAT_08277e68,2);
  1600. LAB_03ed0e14:
  1601. /* try { // try from 03ed0e18 to 03ed0e23 has its CatchHandler @ 03ed1310 */
  1602. (*(code *)*plVar13)(plVar21,uVar19,plVar13[1]);
  1603. }
  1604. LAB_03ed0e24:
  1605. param_1[10] = 0;
  1606. cVar2 = DAT_085714a2;
  1607. param_1[0xb] = 0;
  1608. *param_1 = -2;
  1609. if (cVar2 == '\0') {
  1610. FUN_037b991c(&DAT_08277cd0);
  1611. DAT_085714a2 = '\x01';
  1612. }
  1613. plVar21 = *(long **)(param_1 + 2);
  1614. if (plVar21 != (long *)0x0) {
  1615. lVar12 = *plVar21;
  1616. uVar22 = (ulong)*(ushort *)(lVar12 + 0x12e);
  1617. if (uVar22 != 0) {
  1618. piVar20 = (int *)(*(long *)(lVar12 + 0xb0) + 8);
  1619. do {
  1620. if (*(long *)(piVar20 + -2) == DAT_08277cd0) {
  1621. plVar13 = (long *)(lVar12 + (long)(*piVar20 + 2) * 0x10 + 0x138);
  1622. goto LAB_03ed0eb0;
  1623. }
  1624. uVar22 = uVar22 - 1;
  1625. piVar20 = piVar20 + 4;
  1626. } while (uVar22 != 0);
  1627. }
  1628. plVar13 = plVar21;
  1629. FUN_037f209c(plVar21,DAT_08277cd0,2);
  1630. LAB_03ed0eb0:
  1631. (*(code *)*plVar13)(plVar21,plVar13[1]);
  1632. }
  1633. return;
  1634. }
Advertisement
Add Comment
Please, Sign In to add comment