Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* WARNING: Removing unreachable block (ram,0x03ed0234) */
- /* WARNING: Removing unreachable block (ram,0x03ecfeb4) */
- /* WARNING: Removing unreachable block (ram,0x03ed1030) */
- /* WARNING: Removing unreachable block (ram,0x03ed1008) */
- void FUN_03ecef74(int *param_1,ulong param_2)
- {
- uint uVar1;
- char cVar2;
- long **pplVar3;
- undefined4 uVar4;
- int iVar5;
- uint uVar6;
- undefined8 *puVar7;
- undefined8 uVar8;
- long *plVar9;
- undefined8 uVar10;
- long **pplVar11;
- long lVar12;
- long *plVar13;
- long *plVar14;
- undefined8 uVar15;
- long lVar16;
- long lVar17;
- long lVar18;
- ulong uVar19;
- int *piVar20;
- long *plVar21;
- ulong uVar22;
- undefined4 local_194;
- long *local_190;
- int *piStack_188;
- long **pplStack_180;
- ulong uStack_178;
- long *local_170;
- int *piStack_168;
- long **local_160;
- ulong uStack_158;
- undefined8 local_150;
- undefined8 uStack_148;
- undefined8 uStack_140;
- undefined8 uStack_138;
- undefined4 local_128;
- long *local_120;
- int *piStack_118;
- long **local_110;
- long *local_100;
- ulong uStack_f8;
- long *local_f0;
- int *piStack_e8;
- long **local_e0;
- long *local_d0;
- int *piStack_c8;
- long **local_c0;
- long *local_b0;
- int *piStack_a8;
- long **pplStack_a0;
- ulong uStack_98;
- long *local_90;
- int *piStack_88;
- long **local_80;
- ulong local_78;
- int local_64;
- if ((DAT_0857340b & 1) == 0) {
- FUN_037b991c(&DAT_08267c10);
- FUN_037b991c(&DAT_08272c68);
- FUN_037b991c(&DAT_082aa338);
- FUN_037b991c(&DAT_082a9908);
- FUN_037b991c(&DAT_082ab150);
- FUN_037b991c(&DAT_0828b7c0);
- FUN_037b991c(&DAT_0828ae90);
- FUN_037b991c(&DAT_0828ae98);
- FUN_037b991c(&DAT_0828b7c8);
- FUN_037b991c(&DAT_08273f80);
- FUN_037b991c(&DAT_082746e8);
- FUN_037b991c(&DAT_08274830);
- FUN_037b991c(&DAT_082b2d90);
- FUN_037b991c(&DAT_082b2d88);
- FUN_037b991c(&DAT_082b4b00);
- FUN_037b991c(&DAT_082b67e8);
- FUN_037b991c(&DAT_082911b0);
- FUN_037b991c(&DAT_08291468);
- FUN_037b991c(&DAT_082911b8);
- FUN_037b991c(&DAT_08291470);
- FUN_037b991c(&DAT_08291478);
- FUN_037b991c(&DAT_082911c0);
- FUN_037b991c(&DAT_0826bf18);
- FUN_037b991c(&DAT_0826bf20);
- FUN_037b991c(&DAT_08277b88);
- FUN_037b991c(&DAT_082991d8);
- FUN_037b991c(&DAT_08298990);
- FUN_037b991c(&DAT_082991e0);
- FUN_037b991c(&DAT_082991f0);
- FUN_037b991c(&DAT_082989a0);
- FUN_037b991c(&DAT_08298980);
- FUN_037b991c(&DAT_0826e0a8);
- FUN_037b991c(&DAT_0829f670);
- FUN_037b991c(&DAT_0829f298);
- FUN_037b991c(&DAT_0826f740);
- FUN_037b991c(&DAT_0826f590);
- FUN_037b991c(&DAT_08278f30);
- FUN_037b991c(&DAT_082bdcd0);
- FUN_037b991c(&DAT_08279d40);
- FUN_037b991c(&DAT_08279e50);
- FUN_037b991c(&DAT_082beb80);
- FUN_037b991c(&DAT_082be788);
- FUN_037b991c(&DAT_08279f18);
- FUN_037b991c(&DAT_0827ab80);
- FUN_037b991c(&DAT_082c46c0);
- FUN_037b991c(&DAT_082ce9f8);
- FUN_037b991c(&DAT_082cea00);
- FUN_037b991c(&DAT_082cea20);
- FUN_037b991c(&DAT_082cea28);
- FUN_037b991c(&DAT_082cea30);
- FUN_037b991c(&DAT_082cea38);
- FUN_037b991c(&DAT_082cea40);
- FUN_037b991c(&DAT_082cea48);
- FUN_037b991c(&DAT_082cea50);
- FUN_037b991c(&DAT_08283538);
- FUN_037b991c(&DAT_08283530);
- FUN_037b991c(&DAT_0827d248);
- FUN_037b991c(&DAT_082a6990);
- FUN_037b991c(&DAT_0827d240);
- FUN_037b991c(&DAT_0827d748);
- FUN_037b991c(&DAT_082e4e68);
- FUN_037b991c(&DAT_082fe030);
- FUN_037b991c(&DAT_082fe490);
- FUN_037b991c(&DAT_082d6430);
- DAT_0857340b = 1;
- }
- local_64 = *param_1;
- plVar21 = *(long **)(param_1 + 6);
- local_d0 = (long *)0x0;
- piStack_c8 = (int *)0x0;
- local_c0 = (long **)0x0;
- piStack_a8 = (int *)0x0;
- local_b0 = (long *)0x0;
- uStack_98 = 0;
- pplStack_a0 = (long **)0x0;
- piStack_88 = (int *)0x0;
- local_90 = (long *)0x0;
- local_78 = 0;
- local_80 = (long **)0x0;
- local_f0 = (long *)0x0;
- piStack_e8 = (int *)0x0;
- local_e0 = (long **)0x0;
- local_100 = (long *)0x0;
- uStack_f8 = 0;
- local_120 = (long *)0x0;
- piStack_118 = (int *)0x0;
- local_110 = (long **)0x0;
- local_128 = 0;
- if (local_64 < 3) {
- if (local_64 == 0) {
- piStack_88 = *(int **)(param_1 + 0xe);
- plVar13 = *(long **)(param_1 + 0xc);
- local_78 = *(ulong *)(param_1 + 0x12);
- local_80 = *(long ***)(param_1 + 0x10);
- local_64 = -1;
- param_1[0xe] = 0;
- param_1[0xf] = 0;
- param_1[0xc] = 0;
- param_1[0xd] = 0;
- param_1[0x12] = 0;
- param_1[0x13] = 0;
- param_1[0x10] = 0;
- param_1[0x11] = 0;
- *param_1 = -1;
- local_90 = plVar13;
- LAB_03ecf380:
- if (plVar13 != (long *)0x0) {
- uVar22 = local_78 & 0xffff;
- lVar12 = *(long *)(DAT_0828ae90 + 0x20);
- if ((*(ushort *)(lVar12 + 0x135) & 1) == 0) {
- /* try { // try from 03ecf3a4 to 03ecf3ff has its CatchHandler @ 03ed125c */
- FUN_037f1d68();
- }
- lVar12 = *(long *)(*(long *)(lVar12 + 0xc0) + 0x28);
- if ((*(ushort *)(lVar12 + 0x135) & 1) == 0) {
- FUN_037f1d68();
- }
- lVar18 = *plVar13;
- uVar19 = (ulong)*(ushort *)(lVar18 + 0x12e);
- if (uVar19 != 0) {
- piVar20 = (int *)(*(long *)(lVar18 + 0xb0) + 8);
- do {
- if (*(long *)(piVar20 + -2) == lVar12) {
- plVar9 = (long *)(lVar18 + (long)*piVar20 * 0x10 + 0x138);
- goto LAB_03ecf82c;
- }
- uVar19 = uVar19 - 1;
- piVar20 = piVar20 + 4;
- } while (uVar19 != 0);
- }
- plVar9 = plVar13;
- FUN_037f209c(plVar13,lVar12,0);
- LAB_03ecf82c:
- /* try { // try from 03ecf830 to 03ecf83b has its CatchHandler @ 03ed125c */
- (*(code *)*plVar9)(plVar13,uVar22,plVar9[1]);
- }
- LAB_03ecfa20:
- if (plVar21 == (long *)0x0) {
- /* WARNING: Subroutine does not return */
- /* try { // try from 03ed0fa4 to 03ed0fa7 has its CatchHandler @ 03ed1298 */
- FUN_037b9b80();
- }
- /* try { // try from 03ecfa24 to 03ecfa2b has its CatchHandler @ 03ed1298 */
- FUN_03eccbf0(plVar21);
- lVar12 = *(long *)(param_1 + 10);
- uVar15 = DAT_0827d248;
- /* try { // try from 03ecfa3c to 03ecfa4b has its CatchHandler @ 03ed12dc */
- thunk_FUN_037f5024();
- FUN_0741011c();
- if (lVar12 == 0) {
- /* WARNING: Subroutine does not return */
- /* try { // try from 03ed0fa8 to 03ed0fab has its CatchHandler @ 03ed12dc */
- FUN_037b9b80();
- }
- *(undefined8 *)(lVar12 + 0x58) = uVar15;
- lVar12 = *(long *)(param_1 + 10);
- if (*(int *)(DAT_0826f740 + 0xe4) == 0) {
- /* try { // try from 03ecfa6c to 03ecfa6f has its CatchHandler @ 03ed10cc */
- thunk_FUN_0381640c();
- }
- uVar15 = DAT_0829f670;
- /* try { // try from 03ecfa7c to 03ecfa9b has its CatchHandler @ 03ed1258 */
- FUN_054e515c();
- if (*(int *)(DAT_08283530 + 0xe4) == 0) {
- thunk_FUN_0381640c();
- }
- lVar18 = *(long *)(*(long *)(DAT_08283530 + 0xb8) + 8);
- if (lVar18 == 0) {
- if (*(int *)(DAT_08283530 + 0xe4) == 0) {
- /* try { // try from 03ecfab4 to 03ecfab7 has its CatchHandler @ 03ed1310 */
- thunk_FUN_0381640c();
- }
- lVar18 = DAT_0826bf18;
- /* try { // try from 03ecfad0 to 03ecfaef has its CatchHandler @ 03ed1198 */
- thunk_FUN_037f5024();
- FUN_04f7c2a8();
- *(long *)(*(long *)(DAT_08283530 + 0xb8) + 8) = lVar18;
- }
- /* try { // try from 03ecfb08 to 03ecfb13 has its CatchHandler @ 03ed1294 */
- FUN_046e1e14(uVar15,lVar18,DAT_082b67e8);
- if (lVar12 == 0) {
- /* WARNING: Subroutine does not return */
- /* try { // try from 03ed0fac to 03ed0faf has its CatchHandler @ 03ed1294 */
- FUN_037b9b80();
- }
- *(undefined8 *)(lVar12 + 0x18) = uVar15;
- lVar12 = *(long *)(param_1 + 8);
- if (lVar12 == 0) {
- /* WARNING: Subroutine does not return */
- /* try { // try from 03ed0fb0 to 03ed0fb3 has its CatchHandler @ 03ed11c0 */
- FUN_037b9b80();
- }
- uVar15 = *(undefined8 *)(lVar12 + 400);
- lVar18 = *(long *)(param_1 + 10);
- /* try { // try from 03ecfb2c to 03ecfb33 has its CatchHandler @ 03ed11bc */
- FUN_038c7f7c(uVar15,*(undefined8 *)(lVar12 + 0x198),0);
- if (*(long *)(param_1 + 10) == 0) {
- /* WARNING: Subroutine does not return */
- /* try { // try from 03ed0fb4 to 03ed0fb7 has its CatchHandler @ 03ed11b8 */
- FUN_037b9b80();
- }
- uVar22 = *(ulong *)(*(long *)(param_1 + 10) + 0x18);
- if (*(int *)(DAT_08283530 + 0xe4) == 0) {
- /* try { // try from 03ecfb50 to 03ecfb53 has its CatchHandler @ 03ed10c8 */
- thunk_FUN_0381640c();
- }
- lVar12 = *(long *)(*(long *)(DAT_08283530 + 0xb8) + 0x10);
- if (lVar12 == 0) {
- if (*(int *)(DAT_08283530 + 0xe4) == 0) {
- /* try { // try from 03ecfb6c to 03ecfb6f has its CatchHandler @ 03ed1310 */
- thunk_FUN_0381640c();
- }
- lVar12 = DAT_0826bf20;
- /* try { // try from 03ecfb88 to 03ecfba7 has its CatchHandler @ 03ed1194 */
- thunk_FUN_037f5024();
- FUN_04f7c4d0();
- *(long *)(*(long *)(DAT_08283530 + 0xb8) + 0x10) = lVar12;
- }
- /* try { // try from 03ecfbc0 to 03ecfbe7 has its CatchHandler @ 03ed1254 */
- FUN_046cb2fc(uVar22,lVar12,DAT_082b4b00);
- if (*(int *)(DAT_08278f30 + 0xe4) == 0) {
- thunk_FUN_0381640c();
- }
- /* try { // try from 03ecfbe8 to 03ecfbf7 has its CatchHandler @ 03ed1290 */
- iVar5 = (int)uVar15 + 1;
- FUN_06e047b4(iVar5,uVar22 & 0xffffffff,0);
- if (lVar18 == 0) {
- /* WARNING: Subroutine does not return */
- /* try { // try from 03ed0fb8 to 03ed0fbb has its CatchHandler @ 03ed1290 */
- FUN_037b9b80();
- }
- *(int *)(lVar18 + 0x20) = iVar5;
- uVar15 = DAT_082e4e68;
- /* try { // try from 03ecfc0c to 03ecfc1b has its CatchHandler @ 03ed11b4 */
- FUN_077c5bac(DAT_082e4e68,0xffffffff,0);
- lVar12 = *(long *)(param_1 + 10);
- uVar6 = (uint)uVar15;
- if (uVar6 == 0xffffffff) {
- if (lVar12 == 0) {
- /* WARNING: Subroutine does not return */
- /* try { // try from 03ed1024 to 03ed1027 has its CatchHandler @ 03ed10c4 */
- FUN_037b9b80();
- }
- lVar18 = *(long *)(param_1 + 8);
- if (lVar18 == 0) {
- /* WARNING: Subroutine does not return */
- /* try { // try from 03ed1028 to 03ed102b has its CatchHandler @ 03ed10c0 */
- FUN_037b9b80();
- }
- uVar15 = *(undefined8 *)(lVar18 + 400);
- uVar6 = *(uint *)(lVar12 + 0x20);
- /* try { // try from 03ecfc58 to 03ecfc5f has its CatchHandler @ 03ed10bc */
- FUN_038c7f7c(uVar15,*(undefined8 *)(lVar18 + 0x198),0);
- if ((int)uVar15 + 1 <= (int)uVar6) {
- uVar6 = (int)uVar15 + 1;
- }
- uVar22 = (ulong)uVar6;
- /* try { // try from 03ecfc6c to 03ecfc73 has its CatchHandler @ 03ed10b8 */
- lVar12 = 0;
- FUN_038c91b4();
- }
- else {
- if (lVar12 == 0) {
- /* WARNING: Subroutine does not return */
- /* try { // try from 03ed0ff0 to 03ed0ff3 has its CatchHandler @ 03ed1138 */
- FUN_037b9b80();
- }
- uVar1 = *(uint *)(lVar12 + 0x20);
- if ((int)uVar6 <= (int)*(uint *)(lVar12 + 0x20)) {
- uVar1 = uVar6;
- }
- uVar22 = (ulong)uVar1;
- /* try { // try from 03ecfc38 to 03ecfc3f has its CatchHandler @ 03ed1134 */
- lVar12 = 0;
- FUN_038c91b4();
- }
- plVar21[0x1c] = uVar22;
- plVar21[0x1d] = lVar12;
- /* try { // try from 03ecfc78 to 03ecfc87 has its CatchHandler @ 03ed11b0 */
- iVar5 = 0xd6;
- FUN_03b7802c(0xd6,1,0);
- lVar12 = plVar21[0x10];
- if (iVar5 == 1) {
- /* try { // try from 03ecfc98 to 03ecfca3 has its CatchHandler @ 03ed111c */
- FUN_03f7d05c(lVar12,0,0);
- if (plVar21[0xf] == 0) {
- /* WARNING: Subroutine does not return */
- /* try { // try from 03ed0ff8 to 03ed0ffb has its CatchHandler @ 03ed1114 */
- FUN_037b9b80();
- }
- /* try { // try from 03ecfcac to 03ecfcb3 has its CatchHandler @ 03ed1110 */
- FUN_077e1edc(plVar21[0xf],0);
- if (plVar21[0x19] == 0) {
- /* WARNING: Subroutine does not return */
- /* try { // try from 03ed1000 to 03ed1003 has its CatchHandler @ 03ed110c */
- FUN_037b9b80();
- }
- /* try { // try from 03ecfcc8 to 03ecfccf has its CatchHandler @ 03ed1108 */
- hojyokansuu(&local_170,plVar21[0x19],DAT_082991f0);
- local_c0 = local_160;
- piStack_c8 = piStack_168;
- local_d0 = local_170;
- local_170 = (long *)0x0;
- local_160 = &local_d0;
- piStack_168 = &local_64;
- while( true ) {
- /* try { // try from 03ecfd04 to 03ecfd0b has its CatchHandler @ 03ed13bc */
- pplVar11 = &local_d0;
- FUN_06b10ea0(pplVar11,DAT_08291470);
- pplVar3 = local_c0;
- if (((ulong)pplVar11 & 1) == 0) break;
- if (*(int *)(DAT_08279d40 + 0xe4) == 0) {
- /* try { // try from 03ecfd20 to 03ecfd2f has its CatchHandler @ 03ed1404 */
- thunk_FUN_0381640c();
- }
- FUN_077d59dc(pplVar3,0);
- }
- if (local_64 < 0) {
- /* try { // try from 03ecfea4 to 03ecfea7 has its CatchHandler @ 03ed1184 */
- FUN_06b10e9c(local_160,DAT_08291468);
- }
- lVar12 = plVar21[0x19];
- if (lVar12 == 0) {
- /* WARNING: Subroutine does not return */
- /* try { // try from 03ed102c to 03ed102f has its CatchHandler @ 03ed112c */
- FUN_037b9b80();
- }
- iVar5 = *(int *)(lVar12 + 0x18);
- *(undefined4 *)(lVar12 + 0x18) = 0;
- *(int *)(lVar12 + 0x1c) = *(int *)(lVar12 + 0x1c) + 1;
- if (0 < iVar5) {
- /* try { // try from 03ecfed8 to 03ecfee3 has its CatchHandler @ 03ed112c */
- FUN_06e26768(*(undefined8 *)(lVar12 + 0x10),0,iVar5,0);
- }
- lVar18 = DAT_0826e0a8;
- /* try { // try from 03ecfef0 to 03ecff07 has its CatchHandler @ 03ed113c */
- thunk_FUN_037f5024();
- FUN_0535c0c8();
- /* try { // try from 03ecff08 to 03ecff17 has its CatchHandler @ 03ed10b4 */
- FUN_03b7802c(0xd4,0xf,0);
- uVar22 = DAT_08274830;
- /* try { // try from 03ecff28 to 03ecffab has its CatchHandler @ 03ed1260 */
- thunk_FUN_037f5024();
- FUN_03bb59cc();
- lVar12 = DAT_08298990;
- if (lVar18 == 0) {
- LAB_03ed0fec:
- /* WARNING: Subroutine does not return */
- /* try { // try from 03ed0fec to 03ed0fef has its CatchHandler @ 03ed1260 */
- FUN_037b9b80();
- }
- lVar16 = *(long *)(lVar18 + 0x10);
- *(int *)(lVar18 + 0x1c) = *(int *)(lVar18 + 0x1c) + 1;
- if (lVar16 == 0) goto LAB_03ed0fec;
- uVar6 = *(uint *)(lVar18 + 0x18);
- if (uVar6 < *(uint *)(lVar16 + 0x18)) {
- *(uint *)(lVar18 + 0x18) = uVar6 + 1;
- *(ulong *)(lVar16 + (long)(int)uVar6 * 8 + 0x20) = uVar22;
- }
- else {
- FUN_0535c8c4(lVar18,uVar22,
- *(undefined8 *)(*(long *)(*(long *)(lVar12 + 0x20) + 0xc0) + 0x70));
- }
- /* try { // try from 03ecffac to 03ecffbb has its CatchHandler @ 03ed10b0 */
- iVar5 = 0x203;
- FUN_03b7802c(0x203,0,0);
- if (0 < iVar5) {
- uVar22 = DAT_08274830;
- /* try { // try from 03ecffcc to 03ed0043 has its CatchHandler @ 03ed118c */
- thunk_FUN_037f5024();
- FUN_03bb59cc();
- lVar12 = DAT_08298990;
- lVar16 = *(long *)(lVar18 + 0x10);
- *(int *)(lVar18 + 0x1c) = *(int *)(lVar18 + 0x1c) + 1;
- if (lVar16 == 0) {
- /* WARNING: Subroutine does not return */
- /* try { // try from 03ed1048 to 03ed104b has its CatchHandler @ 03ed118c */
- FUN_037b9b80();
- }
- uVar6 = *(uint *)(lVar18 + 0x18);
- if (uVar6 < *(uint *)(lVar16 + 0x18)) {
- *(uint *)(lVar18 + 0x18) = uVar6 + 1;
- *(ulong *)(lVar16 + (long)(int)uVar6 * 8 + 0x20) = uVar22;
- }
- else {
- FUN_0535c8c4(lVar18,uVar22,
- *(undefined8 *)(*(long *)(*(long *)(lVar12 + 0x20) + 0xc0) + 0x70));
- }
- }
- /* try { // try from 03ed0044 to 03ed0053 has its CatchHandler @ 03ed10ac */
- iVar5 = 0x204;
- FUN_03b7802c(0x204,0,0);
- if (0 < iVar5) {
- uVar22 = DAT_08274830;
- /* try { // try from 03ed0064 to 03ed00db has its CatchHandler @ 03ed1188 */
- thunk_FUN_037f5024();
- FUN_03bb59cc();
- lVar12 = DAT_08298990;
- lVar16 = *(long *)(lVar18 + 0x10);
- *(int *)(lVar18 + 0x1c) = *(int *)(lVar18 + 0x1c) + 1;
- if (lVar16 == 0) {
- /* WARNING: Subroutine does not return */
- /* try { // try from 03ed104c to 03ed104f has its CatchHandler @ 03ed1188 */
- FUN_037b9b80();
- }
- uVar6 = *(uint *)(lVar18 + 0x18);
- if (uVar6 < *(uint *)(lVar16 + 0x18)) {
- *(uint *)(lVar18 + 0x18) = uVar6 + 1;
- *(ulong *)(lVar16 + (long)(int)uVar6 * 8 + 0x20) = uVar22;
- }
- else {
- FUN_0535c8c4(lVar18,uVar22,
- *(undefined8 *)(*(long *)(*(long *)(lVar12 + 0x20) + 0xc0) + 0x70));
- }
- }
- /* try { // try from 03ed00e8 to 03ed00f3 has its CatchHandler @ 03ed10a8 */
- hojyokansuu(&local_170,lVar18,DAT_082989a0);
- piStack_e8 = piStack_168;
- local_f0 = local_170;
- local_e0 = local_160;
- local_160 = &local_f0;
- local_170 = (long *)0x0;
- piStack_168 = &local_64;
- while( true ) {
- /* try { // try from 03ed0130 to 03ed0137 has its CatchHandler @ 03ed130c */
- pplVar11 = &local_f0;
- FUN_06b10ea0(pplVar11,DAT_082911b8);
- pplVar3 = local_e0;
- if (((ulong)pplVar11 & 1) == 0) break;
- lVar12 = plVar21[0xf];
- lVar18 = plVar21[0x10];
- if (*(int *)(DAT_08279d40 + 0xe4) == 0) {
- /* try { // try from 03ed0150 to 03ed0153 has its CatchHandler @ 03ed12ec */
- thunk_FUN_0381640c();
- }
- /* try { // try from 03ed0158 to 03ed0163 has its CatchHandler @ 03ed1300 */
- FUN_0477f0a8(lVar18,lVar12,DAT_082bdcd0);
- if (lVar18 == 0) {
- /* WARNING: Subroutine does not return */
- /* try { // try from 03ed0f64 to 03ed0f67 has its CatchHandler @ 03ed1304 */
- FUN_037b9b80();
- }
- /* try { // try from 03ed016c to 03ed018b has its CatchHandler @ 03ed1308 */
- FUN_03f5da40(lVar18,pplVar3,1,0,0,0,0);
- /* try { // try from 03ed018c to 03ed0193 has its CatchHandler @ 03ed12fc */
- FUN_07427808();
- lVar16 = plVar21[0x19];
- /* try { // try from 03ed0198 to 03ed01fb has its CatchHandler @ 03ed13b8 */
- FUN_077cb900(lVar18,0);
- lVar12 = DAT_082991d8;
- if (lVar16 == 0) {
- LAB_03ed0f60:
- /* WARNING: Subroutine does not return */
- /* try { // try from 03ed0f60 to 03ed0f63 has its CatchHandler @ 03ed13c0 */
- FUN_037b9b80();
- }
- lVar17 = *(long *)(lVar16 + 0x10);
- *(int *)(lVar16 + 0x1c) = *(int *)(lVar16 + 0x1c) + 1;
- if (lVar17 == 0) goto LAB_03ed0f60;
- uVar6 = *(uint *)(lVar16 + 0x18);
- if (uVar6 < *(uint *)(lVar17 + 0x18)) {
- *(uint *)(lVar16 + 0x18) = uVar6 + 1;
- *(long *)(lVar17 + (long)(int)uVar6 * 8 + 0x20) = lVar18;
- }
- else {
- FUN_0535c8c4(lVar16,lVar18,
- *(undefined8 *)(*(long *)(*(long *)(lVar12 + 0x20) + 0xc0) + 0x70));
- }
- }
- if (local_64 < 0) {
- /* try { // try from 03ed0224 to 03ed0227 has its CatchHandler @ 03ed10ec */
- FUN_06b10e9c(local_160,DAT_082911b0);
- }
- /* try { // try from 03ed023c to 03ed0247 has its CatchHandler @ 03ed1078 */
- FUN_03f7d05c(plVar21[0x10],0,0);
- }
- else {
- if (lVar12 == 0) {
- /* WARNING: Subroutine does not return */
- /* try { // try from 03ed0ff4 to 03ed0ff7 has its CatchHandler @ 03ed1118 */
- FUN_037b9b80();
- }
- /* try { // try from 03ecfd38 to 03ecfd4f has its CatchHandler @ 03ed1264 */
- FUN_077cb900(lVar12,0);
- if (lVar12 == 0) {
- /* WARNING: Subroutine does not return */
- /* try { // try from 03ed0ffc to 03ed0fff has its CatchHandler @ 03ed1264 */
- FUN_037b9b80();
- }
- FUN_077cf200();
- /* try { // try from 03ecfd50 to 03ecfd5f has its CatchHandler @ 03ed1104 */
- FUN_03b7802c(0xd4,0xf,0);
- uVar22 = DAT_08274830;
- /* try { // try from 03ecfd70 to 03ecfd93 has its CatchHandler @ 03ed11ac */
- thunk_FUN_037f5024();
- FUN_03bb59cc();
- plVar13 = (long *)plVar21[0x10];
- if (plVar13 == (long *)0x0) {
- /* WARNING: Subroutine does not return */
- /* try { // try from 03ed1004 to 03ed1007 has its CatchHandler @ 03ed1100 */
- FUN_037b9b80();
- }
- /* try { // try from 03ecfd9c to 03ecfdb7 has its CatchHandler @ 03ed10fc */
- FUN_03f5da40(plVar13,uVar22,1,0,0,0,0);
- if (*(int *)(DAT_0827d240 + 0xe4) == 0) {
- /* try { // try from 03ecfdd4 to 03ecfdd7 has its CatchHandler @ 03ed1070 */
- thunk_FUN_0381640c();
- }
- local_100 = plVar13;
- uStack_f8 = uVar22;
- if (DAT_08571494 == '\0') {
- /* try { // try from 03ecfde8 to 03ecfe7b has its CatchHandler @ 03ed11c4 */
- FUN_037b991c(&DAT_0827d240);
- DAT_08571494 = '\x01';
- }
- if (*(int *)(DAT_0827d240 + 0xe4) == 0) {
- thunk_FUN_0381640c();
- }
- if (DAT_08571495 == '\0') {
- FUN_037b991c(&DAT_08277e68);
- DAT_08571495 = '\x01';
- }
- plVar13 = local_100;
- if (local_100 != (long *)0x0) {
- lVar12 = *local_100;
- uVar19 = uStack_f8 & 0xffff;
- uVar22 = (ulong)*(ushort *)(lVar12 + 0x12e);
- if (uVar22 != 0) {
- piVar20 = (int *)(*(long *)(lVar12 + 0xb0) + 8);
- do {
- if (*(long *)(piVar20 + -2) == DAT_08277e68) {
- plVar9 = (long *)(lVar12 + (long)*piVar20 * 0x10 + 0x138);
- goto LAB_03ed0258;
- }
- uVar22 = uVar22 - 1;
- piVar20 = piVar20 + 4;
- } while (uVar22 != 0);
- }
- plVar9 = local_100;
- FUN_037f209c(local_100,DAT_08277e68,0);
- LAB_03ed0258:
- /* try { // try from 03ed025c to 03ed0267 has its CatchHandler @ 03ed11c4 */
- (*(code *)*plVar9)(plVar13,uVar19,plVar9[1]);
- if ((int)plVar13 == 0) {
- *param_1 = 1;
- uVar15 = DAT_082ab150;
- local_64 = 1;
- *(ulong *)(param_1 + 0x16) = uStack_f8;
- *(long **)(param_1 + 0x14) = local_100;
- /* try { // try from 03ed0efc to 03ed0f0b has its CatchHandler @ 03ed105c */
- FUN_03edb64c(param_1 + 2,&local_100,param_1,uVar15);
- return;
- }
- }
- LAB_03ed026c:
- if (DAT_08571496 == '\0') {
- /* try { // try from 03ed0278 to 03ed02ff has its CatchHandler @ 03ed1310 */
- FUN_037b991c(&DAT_08277e68);
- DAT_08571496 = '\x01';
- }
- plVar13 = local_100;
- if (local_100 != (long *)0x0) {
- lVar12 = *local_100;
- uVar19 = uStack_f8 & 0xffff;
- uVar22 = (ulong)*(ushort *)(lVar12 + 0x12e);
- if (uVar22 != 0) {
- piVar20 = (int *)(*(long *)(lVar12 + 0xb0) + 8);
- do {
- if (*(long *)(piVar20 + -2) == DAT_08277e68) {
- plVar9 = (long *)(lVar12 + (long)(*piVar20 + 2) * 0x10 + 0x138);
- goto LAB_03ed02f0;
- }
- uVar22 = uVar22 - 1;
- piVar20 = piVar20 + 4;
- } while (uVar22 != 0);
- }
- plVar9 = local_100;
- FUN_037f209c(local_100,DAT_08277e68,2);
- LAB_03ed02f0:
- (*(code *)*plVar9)(plVar13,uVar19,plVar9[1]);
- }
- }
- if (*(long *)(param_1 + 10) == 0) {
- /* WARNING: Subroutine does not return */
- /* try { // try from 03ed0f88 to 03ed0f8b has its CatchHandler @ 03ed12d8 */
- FUN_037b9b80();
- }
- /* try { // try from 03ed0308 to 03ed030f has its CatchHandler @ 03ed12d8 */
- FUN_03ecd2ec(*(long *)(param_1 + 10),0);
- if (plVar21 == (long *)0x0) {
- /* WARNING: Subroutine does not return */
- /* try { // try from 03ed0f8c to 03ed0f8f has its CatchHandler @ 03ed1244 */
- FUN_037b9b80();
- }
- lVar12 = plVar21[5];
- /* try { // try from 03ed0318 to 03ed0323 has its CatchHandler @ 03ed1240 */
- FUN_03f686a4(lVar12,0,0);
- uVar15 = DAT_08267c10;
- /* try { // try from 03ed0338 to 03ed0357 has its CatchHandler @ 03ed12d4 */
- thunk_FUN_037f5024(DAT_08267c10);
- FUN_04ce8810();
- /* try { // try from 03ed0364 to 03ed036f has its CatchHandler @ 03ed123c */
- FUN_047a78f4(lVar12,uVar15,DAT_082beb80);
- /* try { // try from 03ed0380 to 03ed0383 has its CatchHandler @ 03ed1238 */
- FUN_0469dd5c();
- lVar12 = plVar21[6];
- /* try { // try from 03ed0388 to 03ed0393 has its CatchHandler @ 03ed1234 */
- FUN_03f686a4(lVar12,0,0);
- uVar15 = DAT_08267c10;
- /* try { // try from 03ed03a0 to 03ed03bf has its CatchHandler @ 03ed12d0 */
- thunk_FUN_037f5024(DAT_08267c10);
- FUN_04ce8810();
- /* try { // try from 03ed03c4 to 03ed03cf has its CatchHandler @ 03ed1230 */
- FUN_047a78f4(lVar12,uVar15,DAT_082beb80);
- /* try { // try from 03ed03d8 to 03ed03db has its CatchHandler @ 03ed122c */
- FUN_0469dd5c();
- lVar12 = plVar21[7];
- /* try { // try from 03ed03e0 to 03ed03eb has its CatchHandler @ 03ed1228 */
- FUN_03f686a4(lVar12,0,0);
- uVar15 = DAT_08267c10;
- /* try { // try from 03ed03f8 to 03ed0417 has its CatchHandler @ 03ed12cc */
- thunk_FUN_037f5024(DAT_08267c10);
- FUN_04ce8810();
- /* try { // try from 03ed041c to 03ed0427 has its CatchHandler @ 03ed1224 */
- FUN_047a78f4(lVar12,uVar15,DAT_082beb80);
- /* try { // try from 03ed0430 to 03ed0433 has its CatchHandler @ 03ed1220 */
- FUN_0469dd5c();
- lVar12 = plVar21[8];
- /* try { // try from 03ed0438 to 03ed0443 has its CatchHandler @ 03ed121c */
- FUN_03f686a4(lVar12,1,0);
- uVar15 = DAT_08267c10;
- /* try { // try from 03ed0450 to 03ed046f has its CatchHandler @ 03ed12c8 */
- thunk_FUN_037f5024(DAT_08267c10);
- FUN_04ce8810();
- /* try { // try from 03ed0474 to 03ed047f has its CatchHandler @ 03ed1218 */
- FUN_047a78f4(lVar12,uVar15,DAT_082beb80);
- /* try { // try from 03ed0488 to 03ed048b has its CatchHandler @ 03ed1214 */
- FUN_0469dd5c();
- lVar12 = plVar21[9];
- /* try { // try from 03ed0490 to 03ed049b has its CatchHandler @ 03ed1210 */
- FUN_03f686a4(lVar12,1,0);
- uVar15 = DAT_08267c10;
- /* try { // try from 03ed04a8 to 03ed04c7 has its CatchHandler @ 03ed12c4 */
- thunk_FUN_037f5024(DAT_08267c10);
- FUN_04ce8810();
- /* try { // try from 03ed04cc to 03ed04d7 has its CatchHandler @ 03ed120c */
- FUN_047a78f4(lVar12,uVar15,DAT_082beb80);
- /* try { // try from 03ed04e0 to 03ed04e3 has its CatchHandler @ 03ed1208 */
- FUN_0469dd5c();
- lVar12 = plVar21[10];
- if (*(int *)(DAT_08272c68 + 0xe4) == 0) {
- /* try { // try from 03ed04fc to 03ed04ff has its CatchHandler @ 03ed10f8 */
- thunk_FUN_0381640c();
- }
- if (DAT_08571499 == '\0') {
- /* try { // try from 03ed050c to 03ed052f has its CatchHandler @ 03ed12b0 */
- FUN_037b991c(&DAT_08272c68);
- DAT_08571499 = '\x01';
- }
- if (*(int *)(DAT_08272c68 + 0xe4) == 0) {
- thunk_FUN_0381640c();
- }
- lVar18 = *(long *)(*(long *)(DAT_08272c68 + 0xb8) + 0x70);
- if (lVar18 == 0) {
- /* WARNING: Subroutine does not return */
- /* try { // try from 03ed0f90 to 03ed0f93 has its CatchHandler @ 03ed12b0 */
- FUN_037b9b80();
- }
- lVar18 = *(long *)(lVar18 + 0x28);
- if (lVar18 == 0) {
- /* WARNING: Subroutine does not return */
- /* try { // try from 03ed0f94 to 03ed0f97 has its CatchHandler @ 03ed1204 */
- FUN_037b9b80();
- }
- /* try { // try from 03ed0548 to 03ed054f has its CatchHandler @ 03ed12c0 */
- FUN_03bd5ec8(lVar18,0);
- if (lVar18 == 0) {
- /* WARNING: Subroutine does not return */
- /* try { // try from 03ed0f98 to 03ed0f9b has its CatchHandler @ 03ed12c0 */
- FUN_037b9b80();
- }
- /* try { // try from 03ed0560 to 03ed056b has its CatchHandler @ 03ed1200 */
- FUN_03f7d05c(lVar12,0 < *(long *)(lVar18 + 0x60),0);
- /* try { // try from 03ed0570 to 03ed057b has its CatchHandler @ 03ed11fc */
- FUN_03f7d05c(plVar21[0xb],0,0);
- lVar12 = plVar21[10];
- /* try { // try from 03ed0580 to 03ed058b has its CatchHandler @ 03ed11f8 */
- FUN_03f686a4(lVar12,0,0);
- uVar15 = DAT_08267c10;
- /* try { // try from 03ed0598 to 03ed05b7 has its CatchHandler @ 03ed12bc */
- thunk_FUN_037f5024(DAT_08267c10);
- FUN_04ce8810();
- /* try { // try from 03ed05bc to 03ed05c7 has its CatchHandler @ 03ed11f4 */
- FUN_047a78f4(lVar12,uVar15,DAT_082beb80);
- /* try { // try from 03ed05d0 to 03ed05d3 has its CatchHandler @ 03ed11f0 */
- FUN_0469dd5c();
- plVar13 = plVar21;
- /* try { // try from 03ed05d4 to 03ed05ef has its CatchHandler @ 03ed12e8 */
- FUN_077cb900(plVar21,0);
- if (plVar13 == (long *)0x0) {
- /* WARNING: Subroutine does not return */
- /* try { // try from 03ed0f9c to 03ed0f9f has its CatchHandler @ 03ed12e8 */
- FUN_037b9b80();
- }
- FUN_077cf200();
- if (DAT_085714b1 == '\0') {
- /* try { // try from 03ed05fc to 03ed061f has its CatchHandler @ 03ed12ac */
- FUN_037b991c(&DAT_08272c68);
- DAT_085714b1 = '\x01';
- }
- if (*(int *)(DAT_08272c68 + 0xe4) == 0) {
- thunk_FUN_0381640c();
- }
- lVar12 = *(long *)(*(long *)(DAT_08272c68 + 0xb8) + 0xe0);
- if (lVar12 == 0) {
- /* WARNING: Subroutine does not return */
- /* try { // try from 03ed0fa0 to 03ed0fa3 has its CatchHandler @ 03ed12ac */
- FUN_037b9b80();
- }
- uVar15 = *(undefined8 *)(lVar12 + 0x20);
- if (*(int *)(DAT_08279f18 + 0xe4) == 0) {
- /* try { // try from 03ed0648 to 03ed064b has its CatchHandler @ 03ed10f4 */
- thunk_FUN_0381640c();
- }
- /* try { // try from 03ed0658 to 03ed065f has its CatchHandler @ 03ed11ec */
- FUN_04799e9c(uVar15,DAT_082be788);
- uVar8 = DAT_08267c10;
- /* try { // try from 03ed066c to 03ed068b has its CatchHandler @ 03ed12b8 */
- thunk_FUN_037f5024(DAT_08267c10);
- FUN_04ce8810();
- /* try { // try from 03ed0690 to 03ed069b has its CatchHandler @ 03ed11e8 */
- FUN_047a78f4(uVar15,uVar8,DAT_082beb80);
- /* try { // try from 03ed06a4 to 03ed06a7 has its CatchHandler @ 03ed11e4 */
- FUN_0469dd5c();
- /* try { // try from 03ed06b4 to 03ed06bb has its CatchHandler @ 03ed11e0 */
- FUN_0469de74();
- /* try { // try from 03ed06c0 to 03ed06d3 has its CatchHandler @ 03ed11dc */
- FUN_041c9d58(0x3f800000,0x3e4ccccd,plVar21[4],0);
- /* try { // try from 03ed06e0 to 03ed06e7 has its CatchHandler @ 03ed11d8 */
- FUN_04906e88();
- /* try { // try from 03ed06e8 to 03ed06f3 has its CatchHandler @ 03ed11d4 */
- FUN_03b5ac18(&local_170);
- piStack_118 = piStack_168;
- local_120 = local_170;
- local_110 = local_160;
- if ((*(ushort *)(*(long *)(DAT_0828b7c8 + 0x20) + 0x135) & 1) == 0) {
- /* try { // try from 03ed0720 to 03ed07b3 has its CatchHandler @ 03ed12b4 */
- FUN_037f1d68();
- }
- if (DAT_0857148f == '\0') {
- FUN_037b991c(&DAT_08277e68);
- DAT_0857148f = '\x01';
- }
- plVar13 = local_120;
- if (local_120 != (long *)0x0) {
- lVar12 = *local_120;
- uVar19 = (ulong)local_110 & 0xffff;
- uVar22 = (ulong)*(ushort *)(lVar12 + 0x12e);
- if (uVar22 != 0) {
- piVar20 = (int *)(*(long *)(lVar12 + 0xb0) + 8);
- do {
- if (*(long *)(piVar20 + -2) == DAT_08277e68) {
- plVar9 = (long *)(lVar12 + (long)*piVar20 * 0x10 + 0x138);
- goto LAB_03ed07a4;
- }
- uVar22 = uVar22 - 1;
- piVar20 = piVar20 + 4;
- } while (uVar22 != 0);
- }
- plVar9 = local_120;
- FUN_037f209c(local_120,DAT_08277e68,0);
- LAB_03ed07a4:
- plVar14 = plVar13;
- (*(code *)*plVar9)(plVar13,uVar19,plVar9[1]);
- if ((int)plVar14 == 0) {
- local_64 = 2;
- *param_1 = 2;
- uVar15 = DAT_082aa338;
- *(int **)(param_1 + 0x1a) = piStack_118;
- *(long **)(param_1 + 0x18) = local_120;
- *(long ***)(param_1 + 0x1c) = local_110;
- /* try { // try from 03ed0864 to 03ed0873 has its CatchHandler @ 03ed10a0 */
- FUN_03edb758(param_1 + 2,&local_120,param_1,uVar15);
- return;
- }
- goto LAB_03ed07b8;
- }
- }
- else {
- if (local_64 == 1) {
- uStack_f8 = *(ulong *)(param_1 + 0x16);
- local_100 = *(long **)(param_1 + 0x14);
- param_1[0x14] = 0;
- param_1[0x15] = 0;
- param_1[0x16] = 0;
- param_1[0x17] = 0;
- local_64 = -1;
- *param_1 = -1;
- goto LAB_03ed026c;
- }
- if (local_64 != 2) {
- LAB_03ecf420:
- lVar12 = DAT_08283538;
- /* try { // try from 03ecf42c to 03ecf43b has its CatchHandler @ 03ed1250 */
- thunk_FUN_037f5024();
- FUN_06e45658();
- *(long *)(param_1 + 10) = lVar12;
- if (lVar12 == 0) {
- /* WARNING: Subroutine does not return */
- /* try { // try from 03ed0fbc to 03ed0fbf has its CatchHandler @ 03ed1180 */
- FUN_037b9b80();
- }
- *(undefined8 *)(lVar12 + 0x10) = *(undefined8 *)(param_1 + 6);
- if (plVar21 == (long *)0x0) {
- /* WARNING: Subroutine does not return */
- /* try { // try from 03ed0fc0 to 03ed0fc3 has its CatchHandler @ 03ed117c */
- FUN_037b9b80();
- }
- *(undefined1 *)(plVar21 + 0x1e) = 1;
- if (plVar21[0x1b] != 0) {
- /* try { // try from 03ecf460 to 03ecf467 has its CatchHandler @ 03ed1310 */
- FUN_073e1794(plVar21[0x1b],0);
- }
- lVar12 = DAT_08273f80;
- /* try { // try from 03ecf474 to 03ecf483 has its CatchHandler @ 03ed124c */
- thunk_FUN_037f5024();
- FUN_073e0ce8();
- plVar21[0x1b] = lVar12;
- /* try { // try from 03ecf48c to 03ecf497 has its CatchHandler @ 03ed1178 */
- FUN_03f852d0(plVar21[0xd],0x1b8,0);
- /* try { // try from 03ecf49c to 03ecf4a7 has its CatchHandler @ 03ed1174 */
- FUN_03f852d0(plVar21[0x13],0x1bc,0);
- /* try { // try from 03ecf4ac to 03ecf4b7 has its CatchHandler @ 03ed1170 */
- FUN_03f852d0(plVar21[0x12],0x1ca,0);
- /* try { // try from 03ecf4bc to 03ecf4c7 has its CatchHandler @ 03ed116c */
- FUN_03f852d0(plVar21[0x16],0x1c9,0);
- lVar12 = *(long *)(param_1 + 8);
- /* try { // try from 03ecf4cc to 03ecf4ef has its CatchHandler @ 03ed12a0 */
- uVar22 = 0xe1;
- FUN_03b7802c(0xe1,0,0);
- if (lVar12 == 0) {
- /* WARNING: Subroutine does not return */
- /* try { // try from 03ed0fc4 to 03ed0fc7 has its CatchHandler @ 03ed12a0 */
- FUN_037b9b80();
- }
- FUN_0398cf94(lVar12,uVar22 & 0xffffffff,0);
- lVar12 = *(long *)(param_1 + 8);
- if (lVar12 == 0) {
- /* WARNING: Subroutine does not return */
- /* try { // try from 03ed0fc8 to 03ed0fcb has its CatchHandler @ 03ed1168 */
- FUN_037b9b80();
- }
- uStack_148 = *(undefined8 *)(lVar12 + 0x2a8);
- local_150 = *(undefined8 *)(lVar12 + 0x2a0);
- uStack_138 = *(undefined8 *)(lVar12 + 0x2b8);
- uStack_140 = *(undefined8 *)(lVar12 + 0x2b0);
- /* try { // try from 03ecf500 to 03ecf50b has its CatchHandler @ 03ed1164 */
- puVar7 = &local_150;
- thunk_FUN_038da688(puVar7,0);
- lVar12 = plVar21[0x14];
- if ((long)puVar7 < 1) {
- /* try { // try from 03ecf5ac to 03ecf5c7 has its CatchHandler @ 03ed1120 */
- uVar15 = 0x1dd;
- FUN_03b7e364(0x1dd,DAT_082d6430,0);
- FUN_03f82a50(lVar12,uVar15,0);
- }
- else {
- lVar18 = *(long *)(param_1 + 8);
- if (lVar18 == 0) {
- /* WARNING: Subroutine does not return */
- /* try { // try from 03ed1010 to 03ed1013 has its CatchHandler @ 03ed10e4 */
- FUN_037b9b80();
- }
- piStack_168 = *(int **)(lVar18 + 0x2a8);
- local_170 = *(long **)(lVar18 + 0x2a0);
- uStack_158 = *(ulong *)(lVar18 + 0x2b8);
- local_160 = *(long ***)(lVar18 + 0x2b0);
- /* try { // try from 03ecf534 to 03ecf53f has its CatchHandler @ 03ed10e0 */
- uVar15 = DAT_08279e50;
- thunk_FUN_037f4c78(DAT_08279e50,&local_170);
- uVar8 = DAT_082fe030;
- /* try { // try from 03ecf54c to 03ecf563 has its CatchHandler @ 03ed11a8 */
- FUN_06c8a3c8(DAT_082fe030,uVar15,0);
- FUN_03f82a50(lVar12,uVar8,0);
- }
- lVar12 = *(long *)(param_1 + 10);
- if (*(int *)(DAT_08272c68 + 0xe4) == 0) {
- /* try { // try from 03ecf5e0 to 03ecf5e3 has its CatchHandler @ 03ed1080 */
- thunk_FUN_0381640c();
- }
- if (DAT_0857149f == '\0') {
- /* try { // try from 03ecf5f0 to 03ecf613 has its CatchHandler @ 03ed11cc */
- FUN_037b991c(&DAT_08272c68);
- DAT_0857149f = '\x01';
- }
- if (*(int *)(DAT_08272c68 + 0xe4) == 0) {
- thunk_FUN_0381640c();
- }
- plVar13 = *(long **)(*(long *)(DAT_08272c68 + 0xb8) + 0x38);
- if (plVar13 == (long *)0x0) {
- /* WARNING: Subroutine does not return */
- /* try { // try from 03ed0fcc to 03ed0fcf has its CatchHandler @ 03ed11cc */
- FUN_037b9b80();
- }
- lVar18 = *plVar13;
- uVar22 = (ulong)*(ushort *)(lVar18 + 0x12e);
- if (uVar22 != 0) {
- piVar20 = (int *)(*(long *)(lVar18 + 0xb0) + 8);
- do {
- if (*(long *)(piVar20 + -2) == DAT_08277b88) {
- plVar9 = (long *)(lVar18 + (long)(*piVar20 + 3) * 0x10 + 0x138);
- goto LAB_03ecf67c;
- }
- uVar22 = uVar22 - 1;
- piVar20 = piVar20 + 4;
- } while (uVar22 != 0);
- }
- plVar9 = plVar13;
- /* try { // try from 03ecf65c to 03ecf687 has its CatchHandler @ 03ed11c8 */
- FUN_037f209c(plVar13,DAT_08277b88,3);
- LAB_03ecf67c:
- (*(code *)*plVar9)(plVar13,plVar9[1]);
- uVar15 = DAT_0827d748;
- /* try { // try from 03ecf698 to 03ecf6ab has its CatchHandler @ 03ed129c */
- thunk_FUN_037f5024();
- FUN_039be354();
- if (lVar12 == 0) {
- /* WARNING: Subroutine does not return */
- /* try { // try from 03ed0fd0 to 03ed0fd3 has its CatchHandler @ 03ed129c */
- FUN_037b9b80();
- }
- *(undefined8 *)(lVar12 + 0x30) = uVar15;
- lVar12 = *(long *)(param_1 + 10);
- /* try { // try from 03ecf6b8 to 03ecf6c7 has its CatchHandler @ 03ed1248 */
- uVar4 = 0xdc;
- FUN_03b7802c(0xdc,0x66,0);
- if (lVar12 == 0) {
- /* WARNING: Subroutine does not return */
- /* try { // try from 03ed0fd4 to 03ed0fd7 has its CatchHandler @ 03ed1248 */
- FUN_037b9b80();
- }
- *(undefined4 *)(lVar12 + 0x38) = uVar4;
- lVar12 = *(long *)(param_1 + 10);
- if (lVar12 == 0) {
- /* WARNING: Subroutine does not return */
- /* try { // try from 03ed0fd8 to 03ed0fdb has its CatchHandler @ 03ed1160 */
- FUN_037b9b80();
- }
- lVar18 = *(long *)(lVar12 + 0x30);
- if (lVar18 == 0) {
- /* WARNING: Subroutine does not return */
- /* try { // try from 03ed0fdc to 03ed0fdf has its CatchHandler @ 03ed115c */
- FUN_037b9b80();
- }
- /* try { // try from 03ecf6e4 to 03ecf6eb has its CatchHandler @ 03ed1158 */
- FUN_039c92ac(lVar18,*(undefined4 *)(lVar12 + 0x38),0);
- *(long *)(lVar12 + 0x28) = lVar18;
- lVar12 = *(long *)(param_1 + 10);
- /* try { // try from 03ecf6f4 to 03ecf703 has its CatchHandler @ 03ed1154 */
- uVar6 = 0xdd;
- FUN_03b7802c(0xdd,1,0);
- if ((int)uVar6 < 2) {
- uVar6 = 1;
- }
- uVar22 = (ulong)uVar6;
- /* try { // try from 03ecf70c to 03ecf713 has its CatchHandler @ 03ed1150 */
- uVar15 = 0;
- FUN_038c91b4();
- if (lVar12 == 0) {
- /* WARNING: Subroutine does not return */
- /* try { // try from 03ed0fe0 to 03ed0fe3 has its CatchHandler @ 03ed114c */
- FUN_037b9b80();
- }
- *(ulong *)(lVar12 + 0x3c) = uVar22;
- *(undefined8 *)(lVar12 + 0x44) = uVar15;
- lVar12 = *(long *)(param_1 + 10);
- if (lVar12 == 0) {
- /* WARNING: Subroutine does not return */
- /* try { // try from 03ed0fe4 to 03ed0fe7 has its CatchHandler @ 03ed1148 */
- FUN_037b9b80();
- }
- uVar6 = *(uint *)(lVar12 + 0x38);
- if (*(int *)(DAT_0826f590 + 0xe4) == 0) {
- /* try { // try from 03ecf740 to 03ecf743 has its CatchHandler @ 03ed107c */
- thunk_FUN_0381640c();
- }
- /* try { // try from 03ecf750 to 03ecf757 has its CatchHandler @ 03ed1144 */
- uVar22 = (ulong)uVar6;
- FUN_054e4fac(uVar22,DAT_0829f298);
- *(ulong *)(lVar12 + 0x50) = uVar22;
- lVar12 = *(long *)(param_1 + 10);
- if (lVar12 == 0) {
- /* WARNING: Subroutine does not return */
- /* try { // try from 03ed0fe8 to 03ed0feb has its CatchHandler @ 03ed1140 */
- FUN_037b9b80();
- }
- if (*(long *)(lVar12 + 0x50) == 0) goto LAB_03ed0e24;
- lVar18 = plVar21[0x18];
- if (*(long *)(lVar12 + 0x28) == 0) {
- uVar15 = DAT_082746e8;
- /* try { // try from 03ecf850 to 03ecf877 has its CatchHandler @ 03ed10f0 */
- thunk_FUN_037f5024(DAT_082746e8);
- FUN_03ba2298();
- FUN_03f7de48(lVar18,uVar15,0);
- lVar12 = plVar21[0x17];
- local_170 = (long *)((ulong)local_170 & 0xffffffff00000000);
- /* try { // try from 03ecf88c to 03ecf893 has its CatchHandler @ 03ed106c */
- uVar15 = DAT_0858eef0;
- thunk_FUN_037f4c78(DAT_0858eef0,&local_170);
- if (*(long *)(param_1 + 10) == 0) {
- /* WARNING: Subroutine does not return */
- /* try { // try from 03ed1050 to 03ed1053 has its CatchHandler @ 03ed1068 */
- FUN_037b9b80();
- }
- lVar18 = *(long *)(*(long *)(param_1 + 10) + 0x50);
- if (lVar18 == 0) {
- /* WARNING: Subroutine does not return */
- /* try { // try from 03ed1054 to 03ed1057 has its CatchHandler @ 03ed1064 */
- FUN_037b9b80();
- }
- local_190 = (long *)CONCAT44(local_190._4_4_,*(undefined4 *)(lVar18 + 0x18));
- /* try { // try from 03ecf8b4 to 03ecf8bb has its CatchHandler @ 03ed1060 */
- uVar8 = DAT_0858eef0;
- thunk_FUN_037f4c78(DAT_0858eef0,&local_190);
- uVar10 = DAT_082fe490;
- /* try { // try from 03ecf8cc to 03ecf8e7 has its CatchHandler @ 03ed10a4 */
- FUN_06c94920(DAT_082fe490,uVar15,uVar8,0);
- FUN_03f82a50(lVar12,uVar10,0);
- }
- else {
- /* try { // try from 03ecf77c to 03ecf787 has its CatchHandler @ 03ed109c */
- FUN_03f7de48(lVar18,*(undefined8 *)(*(long *)(lVar12 + 0x28) + 0x38),0);
- if (*(long *)(param_1 + 10) == 0) {
- /* WARNING: Subroutine does not return */
- /* try { // try from 03ed1038 to 03ed103b has its CatchHandler @ 03ed1098 */
- FUN_037b9b80();
- }
- lVar12 = *(long *)(*(long *)(param_1 + 10) + 0x28);
- if (lVar12 == 0) {
- /* WARNING: Subroutine does not return */
- /* try { // try from 03ed103c to 03ed103f has its CatchHandler @ 03ed1094 */
- FUN_037b9b80();
- }
- piStack_188 = *(int **)(lVar12 + 0x20);
- local_190 = *(long **)(lVar12 + 0x18);
- uStack_178 = *(ulong *)(lVar12 + 0x30);
- pplStack_180 = *(long ***)(lVar12 + 0x28);
- lVar12 = plVar21[0x17];
- /* try { // try from 03ecf7b8 to 03ecf7bf has its CatchHandler @ 03ed1090 */
- uVar15 = DAT_08279e50;
- local_170 = local_190;
- piStack_168 = piStack_188;
- local_160 = pplStack_180;
- uStack_158 = uStack_178;
- thunk_FUN_037f4c78(DAT_08279e50,&local_190);
- if (*(long *)(param_1 + 10) == 0) {
- /* WARNING: Subroutine does not return */
- /* try { // try from 03ed1040 to 03ed1043 has its CatchHandler @ 03ed108c */
- FUN_037b9b80();
- }
- lVar18 = *(long *)(*(long *)(param_1 + 10) + 0x50);
- if (lVar18 == 0) {
- /* WARNING: Subroutine does not return */
- /* try { // try from 03ed1044 to 03ed1047 has its CatchHandler @ 03ed1088 */
- FUN_037b9b80();
- }
- local_194 = *(undefined4 *)(lVar18 + 0x18);
- /* try { // try from 03ecf7e8 to 03ecf7ef has its CatchHandler @ 03ed1084 */
- uVar8 = DAT_0858eef0;
- thunk_FUN_037f4c78(DAT_0858eef0,&local_194);
- uVar10 = DAT_082fe490;
- /* try { // try from 03ecf800 to 03ecf81b has its CatchHandler @ 03ed1128 */
- FUN_06c94920(DAT_082fe490,uVar15,uVar8,0);
- FUN_03f82a50(lVar12,uVar10,0);
- }
- lVar12 = *(long *)(param_1 + 10);
- /* try { // try from 03ecf8ec to 03ecf8fb has its CatchHandler @ 03ed11a4 */
- iVar5 = 0xd9;
- FUN_03b7802c(0xd9,0,0);
- if (lVar12 == 0) {
- /* WARNING: Subroutine does not return */
- /* try { // try from 03ed1014 to 03ed1017 has its CatchHandler @ 03ed11a4 */
- FUN_037b9b80();
- }
- *(bool *)(lVar12 + 0x68) = iVar5 == 1;
- lVar12 = *(long *)(param_1 + 10);
- uVar15 = DAT_0827ab80;
- /* try { // try from 03ecf91c to 03ecf92b has its CatchHandler @ 03ed11d0 */
- thunk_FUN_037f5024();
- FUN_039fa288();
- if (lVar12 == 0) {
- /* WARNING: Subroutine does not return */
- /* try { // try from 03ed1018 to 03ed101b has its CatchHandler @ 03ed11d0 */
- FUN_037b9b80();
- }
- *(undefined8 *)(lVar12 + 0x60) = uVar15;
- lVar12 = *(long *)(param_1 + 10);
- if (lVar12 == 0) {
- /* WARNING: Subroutine does not return */
- /* try { // try from 03ed101c to 03ed101f has its CatchHandler @ 03ed10dc */
- FUN_037b9b80();
- }
- if (*(long *)(lVar12 + 0x60) == 0) {
- /* WARNING: Subroutine does not return */
- /* try { // try from 03ed1020 to 03ed1023 has its CatchHandler @ 03ed10d8 */
- FUN_037b9b80();
- }
- /* try { // try from 03ecf948 to 03ecf95b has its CatchHandler @ 03ed10d4 */
- FUN_039fa290(&local_170,*(long *)(lVar12 + 0x60),2,*(undefined1 *)(lVar12 + 0x68),0,0);
- piStack_a8 = piStack_168;
- local_b0 = local_170;
- uStack_98 = uStack_158;
- pplStack_a0 = local_160;
- if ((*(ushort *)(*(long *)(DAT_082a6990 + 0x20) + 0x135) & 1) == 0) {
- /* try { // try from 03ecf980 to 03ecf983 has its CatchHandler @ 03ed1074 */
- FUN_037f1d68();
- }
- piStack_88 = piStack_a8;
- local_90 = local_b0;
- local_78 = uStack_98;
- local_80 = pplStack_a0;
- if ((*(byte *)(*(long *)(DAT_0828ae98 + 0x20) + 0x135) & 1) == 0) {
- /* try { // try from 03ecf9a4 to 03ecfa17 has its CatchHandler @ 03ed11a0 */
- FUN_037f1d68();
- }
- if (DAT_08571a49 == '\0') {
- FUN_037b991c(&DAT_08277e68);
- DAT_08571a49 = '\x01';
- }
- plVar13 = local_90;
- if (local_90 != (long *)0x0) {
- lVar12 = *local_90;
- uVar19 = local_78 & 0xffff;
- uVar22 = (ulong)*(ushort *)(lVar12 + 0x12e);
- if (uVar22 != 0) {
- piVar20 = (int *)(*(long *)(lVar12 + 0xb0) + 8);
- do {
- if (*(long *)(piVar20 + -2) == DAT_08277e68) {
- plVar9 = (long *)(lVar12 + (long)*piVar20 * 0x10 + 0x138);
- goto LAB_03ed0f1c;
- }
- uVar22 = uVar22 - 1;
- piVar20 = piVar20 + 4;
- } while (uVar22 != 0);
- }
- plVar9 = local_90;
- FUN_037f209c(local_90,DAT_08277e68,0);
- LAB_03ed0f1c:
- plVar14 = plVar13;
- /* try { // try from 03ed0f20 to 03ed0f2b has its CatchHandler @ 03ed11a0 */
- (*(code *)*plVar9)(plVar13,uVar19,plVar9[1]);
- if ((int)plVar14 == 0) {
- local_64 = 0;
- *param_1 = 0;
- uVar15 = DAT_082a9908;
- *(int **)(param_1 + 0xe) = piStack_88;
- *(long **)(param_1 + 0xc) = local_90;
- *(ulong *)(param_1 + 0x12) = local_78;
- *(long ***)(param_1 + 0x10) = local_80;
- /* try { // try from 03ed0f4c to 03ed0f5b has its CatchHandler @ 03ed1058 */
- FUN_03edb540(param_1 + 2,&local_90,param_1,uVar15);
- return;
- }
- goto LAB_03ecf380;
- }
- goto LAB_03ecfa20;
- }
- piStack_118 = *(int **)(param_1 + 0x1a);
- plVar13 = *(long **)(param_1 + 0x18);
- local_110 = *(long ***)(param_1 + 0x1c);
- param_1[0x1a] = 0;
- param_1[0x1b] = 0;
- param_1[0x1c] = 0;
- param_1[0x1d] = 0;
- param_1[0x18] = 0;
- param_1[0x19] = 0;
- local_64 = -1;
- *param_1 = -1;
- local_120 = plVar13;
- LAB_03ed07b8:
- if (plVar13 != (long *)0x0) {
- uVar22 = (ulong)local_110 & 0xffff;
- lVar12 = *(long *)(DAT_0828b7c0 + 0x20);
- if ((*(ushort *)(lVar12 + 0x135) & 1) == 0) {
- /* try { // try from 03ed07dc to 03ed0837 has its CatchHandler @ 03ed128c */
- FUN_037f1d68();
- }
- lVar12 = *(long *)(*(long *)(lVar12 + 0xc0) + 0x28);
- if ((*(ushort *)(lVar12 + 0x135) & 1) == 0) {
- FUN_037f1d68();
- }
- lVar18 = *plVar13;
- uVar19 = (ulong)*(ushort *)(lVar18 + 0x12e);
- if (uVar19 != 0) {
- piVar20 = (int *)(*(long *)(lVar18 + 0xb0) + 8);
- do {
- if (*(long *)(piVar20 + -2) == lVar12) {
- plVar9 = (long *)(lVar18 + (long)*piVar20 * 0x10 + 0x138);
- goto LAB_03ed0884;
- }
- uVar19 = uVar19 - 1;
- piVar20 = piVar20 + 4;
- } while (uVar19 != 0);
- }
- plVar9 = plVar13;
- FUN_037f209c(plVar13,lVar12,0);
- LAB_03ed0884:
- /* try { // try from 03ed0888 to 03ed0893 has its CatchHandler @ 03ed128c */
- (*(code *)*plVar9)(plVar13,uVar22,plVar9[1]);
- }
- }
- /* try { // try from 03ed0894 to 03ed089b has its CatchHandler @ 03ed12e0 */
- lVar12 = 0;
- FUN_03cc01bc();
- if (lVar12 == 0) {
- /* WARNING: Subroutine does not return */
- /* try { // try from 03ed0f7c to 03ed0f7f has its CatchHandler @ 03ed12e0 */
- FUN_037b9b80();
- }
- if (*(long *)(lVar12 + 0x1a0) == 0) {
- /* WARNING: Subroutine does not return */
- /* try { // try from 03ed0f80 to 03ed0f83 has its CatchHandler @ 03ed1270 */
- FUN_037b9b80();
- }
- plVar13 = *(long **)(*(long *)(lVar12 + 0x1a0) + 0x200);
- if (plVar13 == (long *)0x0) {
- /* WARNING: Subroutine does not return */
- /* try { // try from 03ed0f84 to 03ed0f87 has its CatchHandler @ 03ed126c */
- FUN_037b9b80();
- }
- /* try { // try from 03ed08b0 to 03ed08bb has its CatchHandler @ 03ed1268 */
- uVar22 = 0xf4242;
- FUN_03ec65ac();
- if (*(int *)(DAT_0827d240 + 0xe4) == 0) {
- /* try { // try from 03ed08d8 to 03ed08db has its CatchHandler @ 03ed1130 */
- thunk_FUN_0381640c();
- }
- local_100 = plVar13;
- uStack_f8 = uVar22;
- if (DAT_08571494 == '\0') {
- /* try { // try from 03ed08ec to 03ed099f has its CatchHandler @ 03ed12e4 */
- FUN_037b991c(&DAT_0827d240);
- DAT_08571494 = '\x01';
- }
- if (*(int *)(DAT_0827d240 + 0xe4) == 0) {
- thunk_FUN_0381640c();
- }
- if (DAT_08571495 == '\0') {
- FUN_037b991c(&DAT_08277e68);
- DAT_08571495 = '\x01';
- }
- plVar13 = local_100;
- if (local_100 != (long *)0x0) {
- lVar12 = *local_100;
- uVar19 = uStack_f8 & 0xffff;
- uVar22 = (ulong)*(ushort *)(lVar12 + 0x12e);
- if (uVar22 != 0) {
- piVar20 = (int *)(*(long *)(lVar12 + 0xb0) + 8);
- do {
- if (*(long *)(piVar20 + -2) == DAT_08277e68) {
- plVar9 = (long *)(lVar12 + (long)*piVar20 * 0x10 + 0x138);
- goto LAB_03ed0990;
- }
- uVar22 = uVar22 - 1;
- piVar20 = piVar20 + 4;
- } while (uVar22 != 0);
- }
- plVar9 = local_100;
- FUN_037f209c(local_100,DAT_08277e68,0);
- LAB_03ed0990:
- (*(code *)*plVar9)(plVar13,uVar19,plVar9[1]);
- if ((int)plVar13 == 0) {
- *param_1 = 3;
- uVar15 = DAT_082ab150;
- local_64 = 3;
- *(ulong *)(param_1 + 0x16) = uStack_f8;
- *(long **)(param_1 + 0x14) = local_100;
- /* try { // try from 03ed0a38 to 03ed0a47 has its CatchHandler @ 03ed10d0 */
- FUN_03edb64c(param_1 + 2,&local_100,param_1,uVar15);
- return;
- }
- }
- LAB_03ed09a4:
- if (DAT_08571496 == '\0') {
- /* try { // try from 03ed09b0 to 03ed0a13 has its CatchHandler @ 03ed1310 */
- FUN_037b991c(&DAT_08277e68);
- DAT_08571496 = '\x01';
- }
- plVar13 = local_100;
- if (local_100 != (long *)0x0) {
- lVar12 = *local_100;
- uVar19 = uStack_f8 & 0xffff;
- uVar22 = (ulong)*(ushort *)(lVar12 + 0x12e);
- if (uVar22 != 0) {
- piVar20 = (int *)(*(long *)(lVar12 + 0xb0) + 8);
- do {
- if (*(long *)(piVar20 + -2) == DAT_08277e68) {
- plVar9 = (long *)(lVar12 + (long)(*piVar20 + 2) * 0x10 + 0x138);
- goto LAB_03ed0a5c;
- }
- uVar22 = uVar22 - 1;
- piVar20 = piVar20 + 4;
- } while (uVar22 != 0);
- }
- plVar9 = local_100;
- FUN_037f209c(local_100,DAT_08277e68,2);
- LAB_03ed0a5c:
- /* try { // try from 03ed0a60 to 03ed0a6b has its CatchHandler @ 03ed1310 */
- (*(code *)*plVar9)(plVar13,uVar19,plVar9[1]);
- }
- if (plVar21 == (long *)0x0) {
- /* WARNING: Subroutine does not return */
- /* try { // try from 03ed0f6c to 03ed0f6f has its CatchHandler @ 03ed1288 */
- FUN_037b9b80();
- }
- /* try { // try from 03ed0a74 to 03ed0a7b has its CatchHandler @ 03ed1284 */
- FUN_03d7df4c(plVar21[8],0);
- /* try { // try from 03ed0a80 to 03ed0a87 has its CatchHandler @ 03ed1280 */
- FUN_03d7df4c(plVar21[9],0);
- /* try { // try from 03ed0a88 to 03ed0a9f has its CatchHandler @ 03ed12f8 */
- lVar12 = 0;
- FUN_03cc01bc();
- if (lVar12 == 0) {
- /* WARNING: Subroutine does not return */
- /* try { // try from 03ed0f70 to 03ed0f73 has its CatchHandler @ 03ed12f8 */
- FUN_037b9b80();
- }
- FUN_03cd17b4();
- if (*(long *)(param_1 + 10) == 0) {
- /* WARNING: Subroutine does not return */
- /* try { // try from 03ed0f74 to 03ed0f77 has its CatchHandler @ 03ed127c */
- FUN_037b9b80();
- }
- plVar13 = *(long **)(*(long *)(param_1 + 10) + 0x58);
- if (plVar13 == (long *)0x0) {
- /* WARNING: Subroutine does not return */
- /* try { // try from 03ed0f78 to 03ed0f7b has its CatchHandler @ 03ed1278 */
- FUN_037b9b80();
- }
- /* try { // try from 03ed0ab0 to 03ed0ab7 has its CatchHandler @ 03ed1274 */
- uVar22 = 0;
- FUN_07410550();
- param_2 = uVar22;
- if (*(int *)(DAT_0827d240 + 0xe4) == 0) {
- /* try { // try from 03ed0ad4 to 03ed0ad7 has its CatchHandler @ 03ed1190 */
- thunk_FUN_0381640c();
- }
- local_100 = plVar13;
- uStack_f8 = uVar22;
- if (DAT_08571494 == '\0') {
- /* try { // try from 03ed0ae8 to 03ed0b9b has its CatchHandler @ 03ed12f0 */
- FUN_037b991c(&DAT_0827d240);
- DAT_08571494 = '\x01';
- }
- if (*(int *)(DAT_0827d240 + 0xe4) == 0) {
- thunk_FUN_0381640c();
- }
- if (DAT_08571495 == '\0') {
- FUN_037b991c(&DAT_08277e68);
- DAT_08571495 = '\x01';
- }
- plVar13 = local_100;
- if (local_100 != (long *)0x0) {
- lVar12 = *local_100;
- param_2 = uStack_f8 & 0xffff;
- uVar22 = (ulong)*(ushort *)(lVar12 + 0x12e);
- if (uVar22 != 0) {
- piVar20 = (int *)(*(long *)(lVar12 + 0xb0) + 8);
- do {
- if (*(long *)(piVar20 + -2) == DAT_08277e68) {
- plVar9 = (long *)(lVar12 + (long)*piVar20 * 0x10 + 0x138);
- goto LAB_03ed0b8c;
- }
- uVar22 = uVar22 - 1;
- piVar20 = piVar20 + 4;
- } while (uVar22 != 0);
- }
- plVar9 = local_100;
- FUN_037f209c(local_100,DAT_08277e68,0);
- LAB_03ed0b8c:
- (*(code *)*plVar9)(plVar13,param_2,plVar9[1]);
- if ((int)plVar13 == 0) {
- *param_1 = 4;
- uVar15 = DAT_082ab150;
- local_64 = 4;
- *(ulong *)(param_1 + 0x16) = uStack_f8;
- *(long **)(param_1 + 0x14) = local_100;
- /* try { // try from 03ed0c34 to 03ed0c43 has its CatchHandler @ 03ed10e8 */
- FUN_03edb64c(param_1 + 2,&local_100,param_1,uVar15);
- return;
- }
- }
- LAB_03ed0ba0:
- if (DAT_08571496 == '\0') {
- /* try { // try from 03ed0bac to 03ed0c0f has its CatchHandler @ 03ed1310 */
- FUN_037b991c(&DAT_08277e68);
- DAT_08571496 = '\x01';
- }
- plVar13 = local_100;
- if (local_100 != (long *)0x0) {
- lVar12 = *local_100;
- param_2 = uStack_f8 & 0xffff;
- uVar22 = (ulong)*(ushort *)(lVar12 + 0x12e);
- if (uVar22 != 0) {
- piVar20 = (int *)(*(long *)(lVar12 + 0xb0) + 8);
- do {
- if (*(long *)(piVar20 + -2) == DAT_08277e68) {
- plVar9 = (long *)(lVar12 + (long)(*piVar20 + 2) * 0x10 + 0x138);
- goto LAB_03ed0c58;
- }
- uVar22 = uVar22 - 1;
- piVar20 = piVar20 + 4;
- } while (uVar22 != 0);
- }
- plVar9 = local_100;
- FUN_037f209c(local_100,DAT_08277e68,2);
- LAB_03ed0c58:
- /* try { // try from 03ed0c5c to 03ed0c67 has its CatchHandler @ 03ed1310 */
- (*(code *)*plVar9)(plVar13,param_2,plVar9[1]);
- }
- if (plVar21 == (long *)0x0) {
- /* WARNING: Subroutine does not return */
- /* try { // try from 03ed0f68 to 03ed0f6b has its CatchHandler @ 03ed12a8 */
- FUN_037b9b80();
- }
- /* try { // try from 03ed0c6c to 03ed0c73 has its CatchHandler @ 03ed12a4 */
- FUN_03ecd078();
- if (*(int *)(DAT_0827d240 + 0xe4) == 0) {
- /* try { // try from 03ed0c90 to 03ed0c93 has its CatchHandler @ 03ed119c */
- thunk_FUN_0381640c();
- }
- local_100 = plVar21;
- uStack_f8 = param_2;
- if (DAT_08571494 == '\0') {
- /* try { // try from 03ed0ca4 to 03ed0d57 has its CatchHandler @ 03ed12f4 */
- FUN_037b991c(&DAT_0827d240);
- DAT_08571494 = '\x01';
- }
- if (*(int *)(DAT_0827d240 + 0xe4) == 0) {
- thunk_FUN_0381640c();
- }
- if (DAT_08571495 == '\0') {
- FUN_037b991c(&DAT_08277e68);
- DAT_08571495 = '\x01';
- }
- plVar21 = local_100;
- if (local_100 != (long *)0x0) {
- lVar12 = *local_100;
- uVar19 = uStack_f8 & 0xffff;
- uVar22 = (ulong)*(ushort *)(lVar12 + 0x12e);
- if (uVar22 != 0) {
- piVar20 = (int *)(*(long *)(lVar12 + 0xb0) + 8);
- do {
- if (*(long *)(piVar20 + -2) == DAT_08277e68) {
- plVar13 = (long *)(lVar12 + (long)*piVar20 * 0x10 + 0x138);
- goto LAB_03ed0d48;
- }
- uVar22 = uVar22 - 1;
- piVar20 = piVar20 + 4;
- } while (uVar22 != 0);
- }
- plVar13 = local_100;
- FUN_037f209c(local_100,DAT_08277e68,0);
- LAB_03ed0d48:
- (*(code *)*plVar13)(plVar21,uVar19,plVar13[1]);
- if ((int)plVar21 == 0) {
- *param_1 = 5;
- uVar15 = DAT_082ab150;
- local_64 = 5;
- *(ulong *)(param_1 + 0x16) = uStack_f8;
- *(long **)(param_1 + 0x14) = local_100;
- /* try { // try from 03ed0df0 to 03ed0dff has its CatchHandler @ 03ed1124 */
- FUN_03edb64c(param_1 + 2,&local_100,param_1,uVar15);
- return;
- }
- }
- }
- else {
- if (local_64 == 3) {
- uStack_f8 = *(ulong *)(param_1 + 0x16);
- local_100 = *(long **)(param_1 + 0x14);
- param_1[0x14] = 0;
- param_1[0x15] = 0;
- param_1[0x16] = 0;
- param_1[0x17] = 0;
- local_64 = -1;
- *param_1 = -1;
- goto LAB_03ed09a4;
- }
- if (local_64 == 4) {
- uStack_f8 = *(ulong *)(param_1 + 0x16);
- local_100 = *(long **)(param_1 + 0x14);
- param_1[0x14] = 0;
- param_1[0x15] = 0;
- param_1[0x16] = 0;
- param_1[0x17] = 0;
- local_64 = -1;
- *param_1 = -1;
- goto LAB_03ed0ba0;
- }
- if (local_64 != 5) goto LAB_03ecf420;
- uStack_f8 = *(ulong *)(param_1 + 0x16);
- local_100 = *(long **)(param_1 + 0x14);
- param_1[0x14] = 0;
- param_1[0x15] = 0;
- param_1[0x16] = 0;
- param_1[0x17] = 0;
- local_64 = -1;
- *param_1 = -1;
- }
- if (DAT_08571496 == '\0') {
- /* try { // try from 03ed0d68 to 03ed0dcb has its CatchHandler @ 03ed1310 */
- FUN_037b991c(&DAT_08277e68);
- DAT_08571496 = '\x01';
- }
- plVar21 = local_100;
- if (local_100 != (long *)0x0) {
- lVar12 = *local_100;
- uVar19 = uStack_f8 & 0xffff;
- uVar22 = (ulong)*(ushort *)(lVar12 + 0x12e);
- if (uVar22 != 0) {
- piVar20 = (int *)(*(long *)(lVar12 + 0xb0) + 8);
- do {
- if (*(long *)(piVar20 + -2) == DAT_08277e68) {
- plVar13 = (long *)(lVar12 + (long)(*piVar20 + 2) * 0x10 + 0x138);
- goto LAB_03ed0e14;
- }
- uVar22 = uVar22 - 1;
- piVar20 = piVar20 + 4;
- } while (uVar22 != 0);
- }
- plVar13 = local_100;
- FUN_037f209c(local_100,DAT_08277e68,2);
- LAB_03ed0e14:
- /* try { // try from 03ed0e18 to 03ed0e23 has its CatchHandler @ 03ed1310 */
- (*(code *)*plVar13)(plVar21,uVar19,plVar13[1]);
- }
- LAB_03ed0e24:
- param_1[10] = 0;
- cVar2 = DAT_085714a2;
- param_1[0xb] = 0;
- *param_1 = -2;
- if (cVar2 == '\0') {
- FUN_037b991c(&DAT_08277cd0);
- DAT_085714a2 = '\x01';
- }
- plVar21 = *(long **)(param_1 + 2);
- if (plVar21 != (long *)0x0) {
- lVar12 = *plVar21;
- uVar22 = (ulong)*(ushort *)(lVar12 + 0x12e);
- if (uVar22 != 0) {
- piVar20 = (int *)(*(long *)(lVar12 + 0xb0) + 8);
- do {
- if (*(long *)(piVar20 + -2) == DAT_08277cd0) {
- plVar13 = (long *)(lVar12 + (long)(*piVar20 + 2) * 0x10 + 0x138);
- goto LAB_03ed0eb0;
- }
- uVar22 = uVar22 - 1;
- piVar20 = piVar20 + 4;
- } while (uVar22 != 0);
- }
- plVar13 = plVar21;
- FUN_037f209c(plVar21,DAT_08277cd0,2);
- LAB_03ed0eb0:
- (*(code *)*plVar13)(plVar21,plVar13[1]);
- }
- return;
- }
Advertisement
Add Comment
Please, Sign In to add comment