#include "pinball.h" // Address range: 0x1e3a358 - 0x1e3a3f5 int32_t function_1e3a358(int32_t a1, int32_t a2, int32_t a3) { // 0x1e3a358 g2 = a1; int32_t v1 = *(int32_t *)(a1 + 4); // 0x1e3a360 g5 = v1; int32_t v2 = *(int32_t *)(a1 + 8); // 0x1e3a364 int32_t v3 = v2; // edx int32_t v4 = *(int32_t *)a1; // 0x1e3a368 int32_t v5 = *(int32_t *)(a1 + 12); // 0x1e3a36b int32_t v6 = v5; // edi g2 = a2; int32_t v7 = *(int32_t *)a2; // 0x1e3a376 g5 = v7; int32_t v8 = *(int32_t *)(a2 + 4); // 0x1e3a378 int32_t v9 = *(int32_t *)(a2 + 8); // 0x1e3a37b int32_t v10 = *(int32_t *)(a2 + 12); // 0x1e3a384 int32_t v11; // 0x1e3a3e1 int32_t v12; // 0x1e3a38b if (v4 > v7) { // 0x1e3a389 v12 = v2 - v7 + v4; v3 = v12; v11 = v7; } else { v12 = v2; v11 = v4; } int32_t v13; // 0x1e3a3dc int32_t v14; // 0x1e3a397 if (v1 > v8) { // 0x1e3a395 v14 = v5 - v8 + v1; v6 = v14; v13 = v8; } else { v14 = v5; v13 = v1; } int32_t v15 = v11 + v12; // 0x1e3a39f g2 = v15; if (v15 < v9 + v7) { int32_t v16 = v9 - v11; // 0x1e3a3be g2 = v16; v3 = v16 + v7; } int32_t v17 = v10 + v8; // 0x1e3a3c7 g5 = v17; int32_t v18 = v13 + v14; // 0x1e3a3ca g2 = v18; if (v18 < v17) { // 0x1e3a3d0 v6 = v10 - v13 + v8; } // 0x1e3a3d8 g2 = a3; g5 = v13; *(int32_t *)a3 = v11; *(int32_t *)(g2 + 4) = g5; *(int32_t *)(g2 + 12) = v6; *(int32_t *)(g2 + 8) = v3; return g2; } // Address range: 0x1e3a3f5 - 0x1e3a408 int32_t function_1e3a3f5(int32_t a1, int32_t a2, int32_t a3, int32_t a4) { // 0x1e3a3f5 g2 = a1; int32_t v1 = a1 & 3; // 0x1e3a3fb g5 = v1; int32_t result; // 0x1e3a402 if (v1 != 0) { // 0x1e3a400 result = a1 - v1 + 4; g2 = result; } else { result = a1; } // 0x1e3a405 return result; } // Address range: 0x1e3a408 - 0x1e3a44f int32_t function_1e3a408(int32_t a1, int32_t a2, int32_t a3) { int32_t v1 = g8; // 0x1e3a409 g8 = a1; int32_t v2 = g6; // 0x1e3a40e g6 = a2; int32_t v3 = function_1e3a3f5(a2, v2, v1, g4); // 0x1e3a414 g2 = v3; *(int16_t *)(g8 + 4) = (int16_t)v3; g4 = a2; int32_t v4 = 2 * g2 * a2; // 0x1e3a427 g2 = v4; int32_t v5 = function_1e25371(v4); // 0x1e3a42a g2 = v5; *(int32_t *)(g8 + 6) = v5; int32_t result; if (v5 != 0) { // 0x1e3a43d *(int16_t *)g8 = (int16_t)g6; *(int32_t *)(g8 + 10) = v5; *(int16_t *)(g8 + 2) = (int16_t)g4; result = 0; } else { result = -1; } // 0x1e3a449 g2 = result; g6 = v4; g8 = a2; g4 = v2; return result; } // Address range: 0x1e3a44f - 0x1e3a477 int32_t function_1e3a44f(int32_t * a1) { int32_t v1 = (int32_t)a1; int32_t v2 = g6; // bp-4 g6 = v1; if (a1 == NULL) { // 0x1e3a458 g2 = -1; // 0x1e3a473 g6 = *(int32_t *)(int32_t)&v2; return -1; } int32_t v3 = *(int32_t *)(v1 + 6); // 0x1e3a45f g2 = v3; if (v3 != 0) { // 0x1e3a466 g2 = function_1e25401(v3); } // 0x1e3a46c g2 = 0; *a1 = 0; int32_t v4 = g1 ? -4 : 4; // 0x1e3a46e int32_t v5 = v4 + v1; // 0x1e3a46e *(int32_t *)v5 = g2; int32_t v6 = v5 + v4; // 0x1e3a46f *(int32_t *)v6 = g2; *(int16_t *)(v6 + v4) = (int16_t)g2; // 0x1e3a473 g6 = *(int32_t *)g9; return g2; } // Address range: 0x1e3a477 - 0x1e3a4d9 int32_t function_1e3a477(int32_t a1, uint32_t a2, int32_t a3, int32_t a4, int32_t a5, int32_t a6) { int32_t v1 = a3; // edx int32_t v2 = g3; // bp-16 int32_t result = (int32_t)*(int16_t *)(a1 + 2) - a5 - a3; // 0x1e3a48b g2 = result; int32_t v3 = 2 * (result * (int32_t)*(int16_t *)(a1 + 4) + a4); // 0x1e3a498 if (a3 < 1) { // 0x1e3a4d2 return result; } int32_t v4 = 0x10000 * a6; // 0x1e3a4b2 int32_t v5 = a2 / 2; // 0x1e3a4bd int32_t v6 = v3 + *(int32_t *)(a1 + 6); // 0x1e3a4b5 int32_t result2; // 0x1e3a4ca while (true) { // 0x1e3a4a5 int32_t v7; // 0x1e3a4cc int32_t v8; // 0x1e3a4cd if (a2 >= 1) { // 0x1e3a4a9 g2 = v4 | a6 & 0xffff; g5 = v5; __asm_rep_stosd_memset((char *)v6, v4 / 0x10000, v5); int32_t v9 = g1 ? -4 : 4; // 0x1e3a4bf int32_t v10 = (a2 & 1) != 0; // 0x1e3a4c1 g5 = v10; __asm_rep_stosw_memset((char *)(v9 * v5 + v6), (int16_t)a6, v10); g5 = 0; v8 = v6 + 2 * a2; v7 = v1; } else { v8 = v6; v7 = a3; } // 0x1e3a4c6 result2 = (int32_t)*(int16_t *)(a1 + 4) - a2; g2 = result2; int32_t v11 = v7 - 1; // 0x1e3a4cc v1 = v11; if (v11 == 0) { // break -> 0x1e3a4d2 break; } a3 = v11; v6 = 2 * result2 + v8; } // 0x1e3a4d2 g3 = v2; return result2; } // Address range: 0x1e3a4d9 - 0x1e3a5e4 int32_t function_1e3a4d9(int32_t a1, int32_t a2, int32_t a3, int32_t a4, int32_t a5, int32_t a6, int32_t a7, int32_t a8, int32_t a9, int32_t a10, int32_t a11, int32_t a12, int32_t a13, int32_t a14) { // 0x1e3a4d9 g2 = a3; int32_t v1 = *(int32_t *)(a3 + 16); // 0x1e3a4e1 int32_t v2 = g3; // bp-24 int32_t v3 = *(int32_t *)(a9 + 16); // 0x1e3a4eb int32_t v4; // 0x1e3a4f2 if (v3 < 0) { // 0x1e3a4f2 v4 = -v3; } else { v4 = v3; } // 0x1e3a4f4 g5 = v4; int32_t v5; // 0x1e3a502 if (v1 < 0) { // 0x1e3a4f8 v5 = -v1; } else { v5 = v1; } // 0x1e3a4fa g2 = a6; int32_t v6 = v4 - a2; // 0x1e3a504 g5 = v6; int16_t v7 = *(int16_t *)(a6 + 2); // 0x1e3a506 g2 = a12; int32_t v8 = v6 - a11; // 0x1e3a514 g5 = v8; int32_t v9 = (int32_t)*(int16_t *)(a12 + 2) - a2 - a14; // 0x1e3a522 g2 = a9; int32_t * v10 = (int32_t *)(a9 + 20); // 0x1e3a52a int32_t v11 = *(int32_t *)(a9 + 8) + *v10 * v8 + a10; // 0x1e3a537 g5 = v11; g2 = a3; int32_t * v12 = (int32_t *)(a3 + 20); // 0x1e3a53d int32_t v13 = *(int32_t *)(a3 + 8) + (v5 - a2 - a5) * *v12 + a4; // 0x1e3a54a g2 = a12; int16_t * v14 = (int16_t *)(a12 + 4); // 0x1e3a550 int32_t v15 = 2 * ((int32_t)*v14 * v9 + a13) + *(int32_t *)(a12 + 6); // 0x1e3a55d g2 = a6; int16_t * v16 = (int16_t *)(a6 + 4); // 0x1e3a564 int32_t v17 = 2 * (((int32_t)v7 - a2 - a8) * (int32_t)*v16 + a7); // 0x1e3a56f int32_t v18 = v17 + *(int32_t *)(a6 + 6); // 0x1e3a571 g2 = a2; int32_t v19 = a2 - 1; // 0x1e3a576 if (a2 == 0) { // 0x1e3a5da return 0; } int32_t result; // 0x1e3a5d3 while (true) { int32_t v20; // 0x1e3a5a7 int32_t v21; // 0x1e3a5ad int32_t v22; // 0x1e3a5c3 int32_t v23; // 0x1e3a5d0 if (a1 != 0) { int32_t v24 = v13; // 0x1e3a591 int32_t v25 = v11; // 0x1e3a58f int32_t v26 = v18; // 0x1e3a58a int32_t v27 = a2; // 0x1e3a587 int32_t v28 = v15; // 0x1e3a587 int32_t v29 = a1; int32_t v30; // 0x1e3a599 int32_t v31; // 0x1e3a59a int32_t v32; // 0x1e3a59b int32_t v33; // 0x1e3a59e while (true) { uint16_t v34 = *(int16_t *)v28; // 0x1e3a587 int32_t v35 = (int32_t)v34 | v27 & -0x10000; // 0x1e3a587 g2 = v35; int32_t v36; // 0x1e3a599 int32_t v37; // 0x1e3a59a int32_t v38; // 0x1e3a59b int32_t v39; // 0x1e3a59e if (*(int16_t *)v26 >= v34) { unsigned char v40 = *(char *)v25; // 0x1e3a58f g2 = (int32_t)v40 | v35 & -256; *(char *)v24 = v40; uint16_t v41 = *(int16_t *)v15; // 0x1e3a593 g2 = g2 & -0x10000 | (int32_t)v41; *(int16_t *)v18 = v41; v37 = v13; v36 = g5; v39 = v18; v38 = v15; } else { v37 = v24; v36 = v25; v39 = v26; v38 = v28; } // 0x1e3a599 v30 = v36 + 1; g5 = v30; v31 = v37 + 1; v13 = v31; v32 = v38 + 2; v15 = v32; v33 = v39 + 2; v18 = v33; int32_t v42 = v29 - 1; // 0x1e3a5a1 if (v42 == 0) { // break -> 0x1e3a5a7 break; } // 0x1e3a599 v24 = v31; v25 = v30; v26 = v33; v27 = g2; v28 = v32; v29 = v42; } // 0x1e3a5a7 result = v19; v23 = v33; v22 = v32; v21 = v31; v20 = v30; } else { result = v19; v23 = v18; v22 = v15; v21 = v13; v20 = v11; } int32_t v43 = v20 - a1; // 0x1e3a5a7 g5 = v43; g2 = a9; int32_t v44 = *v10 + v43; // 0x1e3a5af g5 = v44; g2 = a3; g2 = a12; g2 = a6; g2 = result; if (result == 0) { // break -> 0x1e3a5da break; } v19 = result - 1; v13 = *v12 + v21 - a1; v11 = v44; v18 = 2 * ((int32_t)*v16 - a1) + v23; a2 = result; v15 = 2 * ((int32_t)*v14 - a1) + v22; } // 0x1e3a5da g3 = v2; return result; } // Address range: 0x1e3a5e4 - 0x1e3a6a7 int32_t function_1e3a5e4(int32_t a1, int32_t a2, int32_t a3, int32_t a4, int32_t a5, int32_t a6, int32_t a7, int32_t a8, int32_t a9, int32_t a10, int32_t a11, int32_t a12) { int32_t v1 = *(int32_t *)(a3 + 16); // 0x1e3a5ee g2 = v1; int32_t v2 = *(int32_t *)(a9 + 16); // 0x1e3a5f7 int32_t v3; // 0x1e3a5fe if (v2 < 0) { // 0x1e3a5fe v3 = -v2; } else { v3 = v2; } // 0x1e3a600 g5 = v3; int32_t v4; // 0x1e3a604 if (v1 < 0) { // 0x1e3a604 v4 = -v1; g2 = v4; } else { v4 = v1; } int32_t v5 = v4 - a5 - a2; // 0x1e3a60f g2 = v5; int32_t v6 = v3 - a2 - a11; // 0x1e3a612 g5 = v6; int32_t v7 = (int32_t)*(int16_t *)(a6 + 2) - a2 - a8; // 0x1e3a61f int32_t * v8 = (int32_t *)(a9 + 20); // 0x1e3a622 int32_t v9 = *(int32_t *)(a3 + 20) * v5; // 0x1e3a62e g5 = v9; int32_t v10 = *(int32_t *)(a9 + 8) + *v8 * v6 + a10; // 0x1e3a631 int32_t v11 = *(int32_t *)(a3 + 8) + v9; // 0x1e3a634 g5 = v11; int32_t v12 = a6; // ebx int32_t result = v11 + a4; // 0x1e3a63d g2 = result; int16_t * v13 = (int16_t *)(a6 + 4); // 0x1e3a63f int32_t v14 = 2 * ((int32_t)*v13 * v7 + a7); // 0x1e3a649 g5 = v14; int32_t v15 = v14 + *(int32_t *)(a6 + 6); // 0x1e3a64b g5 = v15; if (a2 <= 0) { // 0x1e3a69e return result; } int32_t result2; // 0x1e3a689 while (true) { int32_t v16; // 0x1e3a67d int32_t v17; // 0x1e3a683 int32_t v18; // 0x1e3a699 if (a1 > 0) { int32_t v19 = a1; // edi int32_t v20 = a1; // 0x1e3a67a13 int32_t v21 = result; // 0x1e3a673 int32_t v22 = v15; // 0x1e3a66c int32_t v23 = v10; // 0x1e3a671 int32_t v24; // 0x1e3a675 int32_t v25; // 0x1e3a676 int32_t v26; // 0x1e3a677 while (true) { char * v27 = (char *)v23; // 0x1e3a663 int32_t v28; // 0x1e3a675 int32_t v29; // 0x1e3a676 int32_t v30; // 0x1e3a677 int32_t v31; // 0x1e3a67a if (*v27 != 0) { int32_t v32 = v12 & -0x10000 | a12 & 0xffff; // 0x1e3a668 v12 = v32; if (*(int16_t *)v22 > (int16_t)a12) { unsigned char v33 = *v27; // 0x1e3a671 v12 = (int32_t)v33 | v32 & -256; *(char *)v21 = v33; v31 = v19; v30 = g5; v29 = g2; v28 = v10; } else { v31 = v20; v30 = v22; v29 = v21; v28 = v23; } } else { v31 = v20; v30 = v22; v29 = v21; v28 = v23; } // 0x1e3a675 v24 = v28 + 1; v10 = v24; v25 = v29 + 1; g2 = v25; v26 = v30 + 2; g5 = v26; int32_t v34 = v31 - 1; // 0x1e3a67a v19 = v34; if (v34 == 0) { // break -> 0x1e3a67d break; } v20 = v34; v21 = v25; v22 = v26; v23 = v24; } v18 = v26; v17 = v25; v16 = v24; } else { v18 = v15; v17 = result; v16 = v10; } int32_t v35 = v17 - a1; // 0x1e3a683 g2 = v35; result2 = *(int32_t *)(a3 + 20) + v35; g2 = result2; v12 = a6; int32_t v36 = a2 - 1; // 0x1e3a696 int32_t v37 = 2 * ((int32_t)*v13 - a1) + v18; // 0x1e3a699 g5 = v37; if (v36 == 0) { // break -> 0x1e3a69e break; } a2 = v36; result = result2; v15 = v37; v10 = *v8 + v16 - a1; } // 0x1e3a69e return result2; } // Address range: 0x1e3a6a7 - 0x1e3a6ca int32_t function_1e3a6a7(int32_t a1, int32_t a2) { // 0x1e3a6a7 g5 = a1; int32_t v1 = a1 + 4; // 0x1e3a6ac int32_t v2 = *(int32_t *)v1; // 0x1e3a6af g2 = v2; int32_t result; // 0x1e3a6c7 if (*(int32_t *)a1 > v2) { // 0x1e3a6b9 g7 = a2; *(int32_t *)(a1 + 8 + 4 * v2) = a2; int32_t * v3 = (int32_t *)v1; // 0x1e3a6c1 int32_t v4 = *v3 + 1; // 0x1e3a6c3 g2 = v4; *v3 = v4; result = g2; } else { // 0x1e3a6b5 g2 = 0; result = 0; } // 0x1e3a6c6 return result; } // Address range: 0x1e3a6ca - 0x1e3a705 int32_t function_1e3a6ca(int32_t a1, int32_t a2) { int32_t v1 = g6; // bp-8 int32_t v2 = a1 + 4; // 0x1e3a6d0 int32_t v3 = *(int32_t *)v2; // 0x1e3a6d0 g5 = v3; int32_t v4 = v3 - 1; // 0x1e3a6d3 if (v4 < 0) { lab_0x1e3a6ec_2: // 0x1e3a6ec g2 = 0; // 0x1e3a6ee return 0; } int32_t v5 = a1 + 8; // 0x1e3a6da g2 = a2; int32_t v6 = v4; // 0x1e3a6f7 int32_t v7 = 4 * v4 + v5; // 0x1e3a6e6 while (true) { // 0x1e3a6e2 if (*(int32_t *)v7 == a2) { // break -> 0x1e3a6f3 break; } int32_t v8 = v6 - 1; // 0x1e3a6e9 if (v8 < 0) { goto lab_0x1e3a6ec_2; } v6 = v8; v7 -= 4; } // 0x1e3a6f3 *(int32_t *)(4 * v6 + v5) = *(int32_t *)(4 * v3 + v2); g2 = 1; int32_t * v9 = (int32_t *)(a1 + 4); // 0x1e3a700 *v9 = *v9 - 1; // 0x1e3a6ee g6 = v1; return g2; } // Address range: 0x1e3a705 - 0x1e3a728 int32_t function_1e3a705(int32_t a1) { // 0x1e3a705 g8 = a1; int32_t v1 = 4 * a1 + 12; // 0x1e3a70a g2 = v1; int32_t result = function_1e25371(v1); // 0x1e3a712 g2 = result; if (result != 0) { // 0x1e3a71b *(int32_t *)result = g8; *(int32_t *)(result + 4) = 0; } // 0x1e3a724 g8 = v1; return result; } // Address range: 0x1e3a728 - 0x1e3a739 int32_t function_1e3a728(int32_t a1) { // 0x1e3a728 g2 = a1; int32_t result; // 0x1e3a731 if (a1 != 0) { // 0x1e3a730 result = function_1e25401(a1); g2 = result; } else { result = 0; } // 0x1e3a736 return result; } // Address range: 0x1e3a739 - 0x1e3a768 int32_t function_1e3a739(int32_t a1, int32_t a2) { // 0x1e3a739 g2 = a1; int32_t v1 = g8; // bp-4 int32_t v2 = &v1; // 0x1e3a73d if (a1 == 0) { // 0x1e3a764 g8 = *(int32_t *)v2; return 0; } // 0x1e3a742 g8 = a2; int32_t v3 = *(int32_t *)(a1 + 4) + a2; // 0x1e3a749 g5 = v3; int32_t v4; // 0x1e3a764 int32_t result; // 0x1e3a765 if (*(int32_t *)a1 < v3) { int32_t v5 = 4 * v3 + 12; // 0x1e3a74f g5 = v5; int32_t v6 = function_1e2542e(a1, v5); // 0x1e3a758 g2 = v6; int32_t v7 = g8 + *(int32_t *)(v6 + 4); // 0x1e3a760 g5 = v7; *(int32_t *)v6 = v7; result = g2; v4 = g9; } else { result = a1; v4 = v2; } // 0x1e3a764 g8 = *(int32_t *)v4; return result; } // Address range: 0x1e3a768 - 0x1e3a7a7 int32_t function_1e3a768(float80_t a1, float80_t a2, float80_t a3) { // 0x1e3a768 g2 = (float32_t)a1; g5 = (float32_t)a2; int32_t v1 = (float32_t)a3; // edx float32_t v2 = *(float32_t *)((int32_t)(float32_t)a1 + 4); // 0x1e3a774 float32_t v3 = *(float32_t *)((int32_t)(float32_t)a2 + 8); // 0x1e3a777 float32_t v4 = *(float32_t *)((int32_t)(float32_t)a2 + 4); // 0x1e3a77a float32_t v5 = *(float32_t *)((int32_t)(float32_t)a1 + 8); // 0x1e3a77d *(float32_t *)(int32_t)(float32_t)a3 = (float32_t)((float80_t)v2 * (float80_t)v3 - (float80_t)v4 * (float80_t)v5); int32_t v6 = g2; // 0x1e3a784 float32_t v7 = *(float32_t *)v6; // 0x1e3a784 int32_t v8 = g5; // 0x1e3a786 float32_t v9 = *(float32_t *)(v8 + 8); // 0x1e3a786 float32_t v10 = *(float32_t *)v8; // 0x1e3a789 float32_t v11 = *(float32_t *)(v6 + 8); // 0x1e3a78b *(float32_t *)(v1 + 4) = -(float32_t)((float80_t)v7 * (float80_t)v9 - (float80_t)v10 * (float80_t)v11); int32_t v12 = g2; // 0x1e3a795 float32_t v13 = *(float32_t *)v12; // 0x1e3a795 int32_t v14 = g5; // 0x1e3a797 float32_t v15 = *(float32_t *)(v14 + 4); // 0x1e3a797 float32_t v16 = *(float32_t *)v14; // 0x1e3a79a float32_t v17 = *(float32_t *)(v12 + 4); // 0x1e3a79c *(float32_t *)(v1 + 8) = (float32_t)((float80_t)v13 * (float80_t)v15 - (float80_t)v16 * (float80_t)v17); return g2; } // Address range: 0x1e3a7a7 - 0x1e3a7e5 int32_t function_1e3a7a7(int32_t * a1) { int32_t v1 = (int32_t)a1; g2 = v1; float32_t v2 = *(float32_t *)a1; // 0x1e3a7ae float32_t v3 = *(float32_t *)(v1 + 8); // 0x1e3a7b2 float32_t v4 = *(float32_t *)(v1 + 4); // 0x1e3a7ba float32_t v5 = (float80_t)v2 * (float80_t)v2 + (float80_t)v3 * (float80_t)v3 + (float80_t)v4 * (float80_t)v4; // bp-4 uint32_t v6 = (int32_t)__asm_fnstsw(g10); // 0x1e3a7cc int32_t result = g2 & -0x10000 | v6; // 0x1e3a7cc g2 = result; int3_t v7 = g11; // 0x1e3a7d9 float80_t v8; if ((v6 / 256 & 64) == 0) { // 0x1e3a7d9 g11 = v7 - 1; v8 = sqrtl((float80_t)v5); } else { // 0x1e3a7d1 g11 = v7 - 1; v8 = 0.0L; } // 0x1e3a7df g684 = v8; return result; } // Address range: 0x1e3a7e5 - 0x1e3a828 float80_t function_1e3a7e5(int32_t a1, int32_t a2, int32_t a3) { // 0x1e3a7e5 g2 = a1; float32_t * v1 = (float32_t *)a1; // 0x1e3a7ef float80_t v2 = (float80_t)*v1 * (float80_t)*v1; // 0x1e3a7f1 int32_t v3 = a1 + 4; // 0x1e3a7f3 g5 = v3; float32_t v4 = *(float32_t *)v3; // 0x1e3a7f6 float80_t result = sqrtl(v2 + (float80_t)v4 * (float80_t)v4); // 0x1e3a7fc if (((int32_t)(float32_t)result & 0x7fffffff) != 0) { float80_t v5 = 1.0L / result; // 0x1e3a812 *v1 = (float32_t)(v5 * (float80_t)*v1); float32_t * v6 = (float32_t *)g5; // 0x1e3a81b *v6 = (float32_t)(v5 * (float80_t)*v6); } // 0x1e3a81f g11--; return result; } // Address range: 0x1e3a828 - 0x1e3a8ce int32_t function_1e3a828(int32_t a1, int32_t a2) { int32_t v1 = g3; // 0x1e3a828 g5 = a2; float80_t v2 = (float80_t)*(float32_t *)a2 - (float80_t)*(float32_t *)a1; // 0x1e3a837 float32_t v3 = *(float32_t *)(a1 + 4); // 0x1e3a83f float80_t v4 = (float80_t)*(float32_t *)(a2 + 4) - (float80_t)v3; // 0x1e3a83f float32_t v5 = *(float32_t *)(a1 + 12); // 0x1e3a845 float32_t v6 = *(float32_t *)(a1 + 16); // 0x1e3a84b float80_t v7 = v2 * (float80_t)v5 + v4 * (float80_t)v6; // 0x1e3a851 uint32_t v8 = (int32_t)__asm_fnstsw(g10); // 0x1e3a85c int32_t v9 = g2 & -0x10000 | v8; // 0x1e3a85c g2 = v9; int32_t result2; // 0x1e3a8b8 if ((v8 / 256 & 1) == 0) { float80_t v10 = v2; // 0x1e3a867 g5 += 12; int32_t result = g2 & -0x10000 | (int32_t)__asm_fnstsw(g10); // 0x1e3a877 g2 = result; int3_t v11 = g11; // 0x1e3a879 g11 = v11 - 1; float32_t v12 = *(float32_t *)g5; // 0x1e3a883 float80_t v13 = v7 * v7 - (v4 * v4 + v10 * v10) + (float80_t)v12; // 0x1e3a883 if ((result / 256 & 1) != 0) { // 0x1e3a887 g684 = v7 - sqrtl(v13); // 0x1e3a8c8 g3 = v1; return result; } // 0x1e3a88e g11 = v11; uint32_t v14 = (int32_t)__asm_fnstsw(g10); // 0x1e3a897 int32_t v15 = g2 & -0x10000 | v14; // 0x1e3a897 g2 = v15; if ((v14 / 256 & 1) == 0) { float80_t v16 = v7 - sqrtl(v13); // 0x1e3a8a1 uint32_t v17 = (int32_t)__asm_fnstsw(g10); // 0x1e3a8ad int32_t v18 = g2 & -0x10000 | v17; // 0x1e3a8ad g2 = v18; if ((v17 / 256 & 1) == 0) { uint32_t v19 = (int32_t)__asm_fnstsw(g10); // 0x1e3a8b8 result2 = g2 & -0x10000 | v19; g2 = result2; if ((v19 / 256 & 1) == 0) { // 0x1e3a8bd g11--; g684 = v16; // 0x1e3a8c8 g3 = v1; return result2; } } else { result2 = v18; } } else { result2 = v15; } } else { result2 = v9; } // 0x1e3a8c2 g11--; g684 = 1.0e+9L; // 0x1e3a8c8 g3 = v1; return result2; } // Address range: 0x1e3a8ce - 0x1e3a97f int32_t function_1e3a8ce(int32_t a1, int32_t a2, int32_t a3, int32_t a4, int32_t a5) { int32_t v1 = g3; // bp-4 g3 = &v1; int32_t v2 = g6; // 0x1e3a8db int32_t v3 = a1 + 12; // 0x1e3a8df *(float32_t *)v3 = (float32_t)a4 - (float32_t)a2; float80_t v4 = a3; // 0x1e3a8e8 float80_t v5 = (float80_t)(float32_t)a5 - v4; // 0x1e3a8e8 *(float32_t *)(a1 + 16) = (float32_t)v5; g2 = (float32_t)function_1e3a7e5(v3, v2, g8); float80_t v6 = -(float80_t)*(float32_t *)v3; // 0x1e3a8f7 g2 = *(int32_t *)(a1 + 16); *(float32_t *)(a1 + 4) = (float32_t)v6; *(int32_t *)a1 = g2; float32_t v7 = *(float32_t *)a1; // 0x1e3a904 float80_t v8 = v4 * v6; // 0x1e3a909 float80_t v9 = -(((float80_t)(float32_t)a2 * (float80_t)v7 + v8)); // 0x1e3a90b *(float32_t *)(a1 + 24) = (float32_t)v9; g11++; uint32_t v10 = (int32_t)__asm_fnstsw(g10); // 0x1e3a91b g2 = g2 & -0x10000 | v10; if ((v10 / 256 & 1) == 0) { goto lab_0x1e3a955; } else { uint32_t v11 = (int32_t)__asm_fnstsw(g10); // 0x1e3a929 g2 = g2 & -0x10000 | v11; if ((v11 / 256 & 65) == 0) { // 0x1e3a92e *(int32_t *)v3 = 0; uint32_t v12 = (int32_t)__asm_fnstsw(g10); // 0x1e3a93a g2 = g2 & -0x10000 | v12; if ((v12 / 256 & 65) == 0) { // 0x1e3a93f g2 = a3; g5 = a5; *(int32_t *)(a1 + 28) = a3; } else { // 0x1e3a94a g2 = a5; g5 = a3; *(int32_t *)(a1 + 28) = a5; } goto lab_0x1e3a974; } else { goto lab_0x1e3a955; } } lab_0x1e3a955:; uint32_t v13 = (int32_t)__asm_fnstsw(g10); // 0x1e3a95b g2 = g2 & -0x10000 | v13; if ((v13 / 256 & 65) == 0) { // 0x1e3a960 g2 = a2; g5 = a4; *(int32_t *)(a1 + 28) = a2; } else { // 0x1e3a96b g2 = a4; g5 = a2; *(int32_t *)(a1 + 28) = a4; } goto lab_0x1e3a974; lab_0x1e3a974: // 0x1e3a974 g6 = v3; *(int32_t *)(a1 + 32) = g5; g8 = v2; g3 = v1; return g2; } // Address range: 0x1e3a97f - 0x1e3aa3c int32_t function_1e3a97f(int32_t a1, int32_t a2) { int32_t v1 = g3; // 0x1e3a97f float32_t v2 = *(float32_t *)(a2 + 4); // 0x1e3a989 g5 = a1; float32_t v3 = *(float32_t *)(a1 + 16); // 0x1e3a98f float32_t v4 = *(float32_t *)(a1 + 12); // 0x1e3a992 float32_t v5 = *(float32_t *)a2; // 0x1e3a995 float32_t v6 = (float80_t)v2 * (float80_t)v3 + (float80_t)v4 * (float80_t)v5; // bp-8 uint32_t v7 = (int32_t)__asm_fnstsw(g10); // 0x1e3a9a2 int32_t v8 = g2 & -0x10000 | v7; // 0x1e3a9a2 g2 = v8; int32_t result; // 0x1e3aa26 if ((v7 / 256 & 1) != 0) { float32_t v9 = *(float32_t *)a2; // 0x1e3a9ab int32_t v10 = g5; // 0x1e3a9ad float32_t v11 = *(float32_t *)v10; // 0x1e3a9ad float32_t v12 = *(float32_t *)(a2 + 4); // 0x1e3a9af float32_t v13 = *(float32_t *)(v10 + 4); // 0x1e3a9b2 float32_t v14 = *(float32_t *)(a2 + 24); // 0x1e3a9b7 v6 = -(float32_t)(((float80_t)v9 * (float80_t)v11 + (float80_t)v12 * (float80_t)v13 + (float80_t)v14) / (float80_t)v6); uint32_t v15 = (int32_t)__asm_fnstsw(g10); // 0x1e3a9ca int32_t v16 = g2 & -0x10000 | v15; // 0x1e3a9ca g2 = v16; if ((v15 / 256 & 65) != 0) { uint32_t v17 = (int32_t)__asm_fnstsw(g10); // 0x1e3a9d5 int32_t v18 = g2 & -0x10000 | v17; // 0x1e3a9d5 g2 = v18; if ((v17 / 256 & 1) == 0) { int3_t v19 = g11; // 0x1e3a9da int32_t v20 = g5; // 0x1e3a9da float32_t v21 = *(float32_t *)(v20 + 12); // 0x1e3a9da float32_t v22 = *(float32_t *)v20; // 0x1e3a9e7 *(float32_t *)(a2 + 36) = (float32_t)((float80_t)v21 * (float80_t)v6 + (float80_t)v22); int32_t v23 = g5; // 0x1e3a9ec float32_t v24 = *(float32_t *)(v23 + 16); // 0x1e3a9ec float32_t v25 = *(float32_t *)(v23 + 4); // 0x1e3a9f2 *(float32_t *)(a2 + 40) = (float32_t)((float80_t)v24 * (float80_t)v6 + (float80_t)v25); if ((*(int32_t *)(a2 + 12) & 0x7fffffff) != 0) { // 0x1e3aa12 g11 = v19; uint32_t v26 = (int32_t)__asm_fnstsw(g10); // 0x1e3aa1b int32_t v27 = g2 & -0x10000 | v26; // 0x1e3aa1b g2 = v27; if ((v26 / 256 & 1) == 0) { uint32_t v28 = (int32_t)__asm_fnstsw(g10); // 0x1e3aa26 result = g2 & -0x10000 | v28; g2 = result; if ((v28 / 256 & 65) != 0) { // 0x1e3aa2b g11--; g684 = v6; // 0x1e3aa36 g3 = v1; return result; } } else { result = v27; } } else { // 0x1e3a9f7 g11 = v19; uint32_t v29 = (int32_t)__asm_fnstsw(g10); // 0x1e3a9fd int32_t v30 = g2 & -0x10000 | v29; // 0x1e3a9fd g2 = v30; if ((v29 / 256 & 1) == 0) { uint32_t v31 = (int32_t)__asm_fnstsw(g10); // 0x1e3aa08 int32_t result2 = g2 & -0x10000 | v31; // 0x1e3aa08 g2 = result2; if ((v31 / 256 & 65) != 0) { // 0x1e3aa0d g11--; g684 = v6; // 0x1e3aa36 g3 = v1; return result2; } result = result2; } else { result = v30; } } } else { result = v18; } } else { result = v16; } } else { result = v8; } // 0x1e3aa30 g11--; g684 = 1.0e+9L; // 0x1e3aa36 g3 = v1; return result; } // Address range: 0x1e3aa3c - 0x1e3aa72 int32_t function_1e3aa3c(int32_t a1, int32_t a2) { // 0x1e3aa3c g2 = 1; g8 = a1; int32_t v1 = a1 + 32; // 0x1e3aa47 g6 = v1; int32_t * v2 = (int32_t *)v1; // 0x1e3aa4a int32_t v3 = 1 - *v2; // 0x1e3aa4a g2 = v3; *v2 = v3; g2 = function_1e29a40(*(int32_t *)g8, *(int32_t *)(g8 + 4 + 4 * g2)); int32_t v4 = *(int32_t *)g6; // 0x1e3aa5e g5 = v4; int32_t v5 = *(int32_t *)(4 * v4 + 20 + g8); // 0x1e3aa61 int32_t v6 = function_1e325d2(v5, g8, 0x1e3aa3c); // 0x1e3aa65 g2 = v6; g6 = v5; *(int32_t *)(g8 + 28) = v6; return g2; } // Address range: 0x1e3aa72 - 0x1e3aa88 int32_t function_1e3aa72(int32_t a1, int32_t a2) { // 0x1e3aa72 g5 = a2; g2 = a1; *(int32_t *)(a1 + 32) = a2; int32_t result = function_1e3aa3c(0, a1); // 0x1e3aa80 g2 = result; return result; } // Address range: 0x1e3aa88 - 0x1e3aabb int32_t function_1e3aa88(int32_t a1) { // 0x1e3aa88 g8 = a1; int32_t v1 = *(int32_t *)(a1 + 28); // 0x1e3aa8d g2 = v1; int32_t v2; // 0x1e3aa9a if (v1 != 0) { // 0x1e3aa94 g2 = function_1e32771(v1); v2 = g8; } else { v2 = a1; } // 0x1e3aa9a *(int32_t *)(v2 + 28) = 0; int32_t v3 = *(int32_t *)(g9 + 12); // 0x1e3aaa1 g2 = v3; int32_t result; // 0x1e3aab2 if (v3 >= 0) { // 0x1e3aaa9 *(int32_t *)(g8 + 32) = v3; *(int32_t *)(g9 - 4) = *(int32_t *)(g8 + 4 + 4 * g2); *(int32_t *)(g9 - 8) = *(int32_t *)g8; result = function_1e29a40((int32_t)&g708, (int32_t)&g708); g2 = result; } else { result = v3; } // 0x1e3aab7 g8 = *(int32_t *)g9; return result; } // Address range: 0x1e3aabb - 0x1e3ab1b int32_t function_1e3aabb(int32_t a1, int32_t a2) { int32_t v1 = g6; // 0x1e3aabd g4 = g5; g6 = a2; g2 = function_1e29f8c(a1, a2, 1, v1); *(int32_t *)g4 = (int32_t)&g60; *(int32_t *)(g4 + 110) = g8; int32_t v2 = g4; // 0x1e3aadb g5 = v2; *(int32_t *)(v2 + 82) = g8; *(int32_t *)(g4 + 114) = g8; *(int32_t *)(g4 + 70) = g8; g2 = function_1e3ab39(); int32_t v3 = function_1e3991a(g6, g8); // 0x1e3aaf2 g2 = v3; float32_t v4 = *(float32_t *)v3; // 0x1e3aaf7 int32_t v5 = g8; // 0x1e3aafe *(float32_t *)(g4 + 62) = v4; *(float32_t *)(g4 + 102) = (float32_t)(float80_t)v4; int32_t v6 = g6; // 0x1e3ab05 int32_t v7 = function_1e3991a(v6, v5); // 0x1e3ab06 g2 = v7; float32_t v8 = *(float32_t *)v7; // 0x1e3ab0b g2 = g4; g6 = v6; *(float32_t *)(g4 + 66) = v8; *(float32_t *)(g4 + 106) = (float32_t)(float80_t)v8; g8 = v5; g4 = 901; return g2; } // Address range: 0x1e3ab1b - 0x1e3ab39 int32_t function_1e3ab1b(char a1) { // 0x1e3ab1b g2 = function_1e2a201(); if ((a1 & 1) != 0) { // 0x1e3ab2a g2 = function_1e3df60(g8); } // 0x1e3ab33 g2 = g8; return g8; } // Address range: 0x1e3ab39 - 0x1e3abb9 int32_t function_1e3ab39(void) { int32_t v1 = g5; // 0x1e3ab3b int32_t v2 = *(int32_t *)(v1 + 110); // 0x1e3ab3b g2 = v2; g8 = v1; int32_t v3; // 0x1e3ab4a if (v2 != 0) { // 0x1e3ab44 g2 = function_1e32771(v2); v3 = g8; } else { v3 = v1; } int32_t v4 = *(int32_t *)(v3 + 114); // 0x1e3ab4a g2 = v4; int32_t v5; // 0x1e3ab57 if (v4 != 0) { // 0x1e3ab51 *(int32_t *)(g9 - 4) = v4; g2 = function_1e32771((int32_t)&g708); v5 = g8; } else { v5 = v3; } // 0x1e3ab57 int32_t v6; // 0x1e3ab6a if (*(int32_t *)(v5 + 82) != 0) { // 0x1e3ab5d *(int32_t *)(g9 - 4) = -1; int32_t v7 = g8 + 42; // 0x1e3ab5f g2 = v7; *(int32_t *)(g9 - 8) = v7; g2 = function_1e3aa88((int32_t)&g708); v6 = g8; } else { v6 = v5; } int32_t v8 = 0; // edi *(int32_t *)(v6 + 110) = 0; *(int32_t *)(g8 + 114) = v8; *(int32_t *)(g8 + 78) = v8; *(int32_t *)(g8 + 98) = v8; *(int32_t *)(g8 + 86) = v8; *(int32_t *)(g8 + 90) = v8; *(int32_t *)(g9 - 4) = v8; *(int32_t *)(g8 + 82) = v8; *(int32_t *)(g9 - 4) = *(int32_t *)(g8 + 26); *(int32_t *)(g8 + 122) = 0x3f800000; *(int32_t *)(g8 + 94) = v8; g2 = function_1e29a40((int32_t)&g708, (int32_t)&g708); g2 = *(int32_t *)(g8 + 26); *(int32_t *)(g8 + 46) = v8; *(int32_t *)(g8 + 42) = g2; int32_t v9 = *(int32_t *)(g8 + 34); // 0x1e3ab9b g2 = v9; if (v9 != 0) { int32_t v10 = *(int32_t *)(v9 + 4); // 0x1e3aba2 g2 = v10; int32_t v11 = *(int32_t *)(v10 + 8); // 0x1e3aba5 g5 = v11; *(int32_t *)(g8 + 50) = v11; } // 0x1e3abab g2 = 0; g6 = *(int32_t *)g9; *(int32_t *)(g8 + 58) = 0; *(int32_t *)(g8 + 54) = g2; *(int32_t *)(g8 + 6) = g2; g8 = *(int32_t *)g9; return g2; } // Address range: 0x1e3abb9 - 0x1e3ac0f int32_t function_1e3abb9(int32_t a1) { g8 = a1; int32_t v1; // 0x1e3abcf int32_t v2; // 0x1e3abd2 if (*(int32_t *)(a1 + 82) != 0) { int32_t v3 = a1 + 42; // 0x1e3abc6 g2 = v3; g2 = function_1e3aa88(v3); v2 = g9; v1 = g8; } else { int32_t v4; // esi v2 = &v4; v1 = a1; } int32_t v5 = *(int32_t *)(v1 + 78); // 0x1e3abcf g2 = v5; *(int32_t *)(v2 - 4) = *(int32_t *)(v1 + 46 + 4 * v5); *(int32_t *)(v2 - 8) = *(int32_t *)(g8 + 26); function_1e29a40((int32_t)&g708, (int32_t)&g708); g2 = 0; *(int32_t *)(g8 + 86) = 0; *(int32_t *)(g8 + 90) = g2; *(int32_t *)(g8 + 82) = g2; *(int32_t *)(g8 + 110) = g2; int32_t v6 = g8; // 0x1e3abec int32_t v7 = g2; // 0x1e3abec int32_t v8; // 0x1e3abf9 int32_t v9; // 0x1e3abf9 if (*(int32_t *)(v6 + 94) != v7) { // 0x1e3abf1 *(int32_t *)(g9 - 4) = v7; g5 = g8; *(int32_t *)(g9 - 8) = 20; *(int32_t *)(g8 + 94) = g2; v8 = g8; v9 = *(int32_t *)v8; g2 = v9; } else { v9 = v7; v8 = v6; } // 0x1e3abfd int32_t result; // 0x1e3ac06 if (*(int32_t *)(v8 + 18) != 0) { // 0x1e3ac03 *(int32_t *)(g9 - 4) = v8; *(int32_t *)(g9 - 8) = 60; result = function_1e328b9((int32_t)&g708, (int32_t)&g708); g2 = result; } else { result = v9; } // 0x1e3ac0b return result; } // Address range: 0x1e3ac0f - 0x1e3ac4e int32_t function_1e3ac0f(void) { int32_t v1 = g5; // 0x1e3ac11 int32_t v2 = *(int32_t *)(v1 + 102); // 0x1e3ac11 g2 = v2; g6 = v1 + 110; *(int32_t *)(v1 + 62) = v2; int32_t v3 = g5; // 0x1e3ac1a g8 = v3; int32_t v4 = *(int32_t *)g6; // 0x1e3ac1c g2 = v4; int32_t v5 = *(int32_t *)(v3 + 106); // 0x1e3ac1e g5 = v5; *(int32_t *)(v3 + 66) = v5; if (v4 != 0) { // 0x1e3ac28 g2 = function_1e32771(v4); } // 0x1e3ac2e g2 = 0; *(int32_t *)g6 = 0; int32_t * v6 = (int32_t *)(g9 + 12); // 0x1e3ac32 int32_t v7 = g2; // 0x1e3ac32 int32_t v8; // 0x1e3ac49 int32_t result; // 0x1e3ac4b if (*v6 > v7) { // 0x1e3ac38 *(int32_t *)(g9 - 4) = 0x1e3abb9; *(int32_t *)(g9 - 8) = g8; *(int32_t *)(g9 - 12) = *v6; int32_t v9 = function_1e325d2((int32_t)&g708, (int32_t)&g708, (int32_t)&g708); // 0x1e3ac42 g2 = v9; *(int32_t *)g6 = v9; result = g2; v8 = g9; } else { result = v7; v8 = g9; } // 0x1e3ac49 g6 = *(int32_t *)v8; g8 = *(int32_t *)(v8 + 4); return result; } // Address range: 0x1e3ac4e - 0x1e3b166 int32_t function_1e3ac4e(int32_t a1, float80_t a2) { float32_t v1 = a2; g2 = a1; int32_t v2 = g8; // 0x1e3ac5e int32_t v3 = g6; // 0x1e3ac5f int32_t v4 = v3; // bp-20 int32_t v5 = &v4; // 0x1e3ac5f int32_t v6 = g5; // 0x1e3ac60 g8 = v6; int32_t v7; // 0x1e3ad08 int32_t result; // 0x1e3b163 if (a1 > 1020) { if (a1 == 1024) { // 0x1e3b11b g2 = v6; g5 = 0; int32_t v8 = *(int32_t *)(v6 + 30); // 0x1e3b124 g2 = v8; if (*(int32_t *)(v8 + 214) > 0) { int32_t v9 = v6 + 134; // 0x1e3b12f g7 = v9; int32_t v10 = *(int32_t *)(v6 + 82); // 0x1e3b135 g2 = v10; g5 = 1; *(int32_t *)v9 = v10; int32_t v11 = g7; // 0x1e3b13b g7 = v11 + 24; *(int32_t *)(v11 + 12) = *(int32_t *)(g8 + 98); *(int32_t *)(g7 - 28) = *(int32_t *)(g8 + 78); int32_t v12 = *(int32_t *)(g8 + 6); // 0x1e3b14a g2 = v12; *(int32_t *)(g7 - 32) = v12; int32_t v13 = *(int32_t *)(g8 + 30); // 0x1e3b150 g2 = v13; int32_t v14 = g5; // 0x1e3b153 while (*(int32_t *)(v13 + 214) > v14) { // 0x1e3b135 v10 = *(int32_t *)(g8 + 82); g2 = v10; g5 = v14 + 1; *(int32_t *)g7 = v10; v11 = g7; g7 = v11 + 24; *(int32_t *)(v11 + 12) = *(int32_t *)(g8 + 98); *(int32_t *)(g7 - 28) = *(int32_t *)(g8 + 78); v12 = *(int32_t *)(g8 + 6); g2 = v12; *(int32_t *)(g7 - 32) = v12; v13 = *(int32_t *)(g8 + 30); g2 = v13; v14 = g5; } } } // 0x1e3b15b g2 = 0; result = 0; goto lab_0x1e3b15d; } else { if (a1 == 1020) { int32_t v15 = *(int32_t *)(v6 + 30); // 0x1e3b06c g2 = v15; int32_t v16 = v6 + 82; // 0x1e3b06f g6 = v16; g4 = v6 + 78; int32_t v17 = 24 * *(int32_t *)(v15 + 218); // 0x1e3b07b g2 = v17; int32_t v18 = v17 + v6; // 0x1e3b07e g5 = v18; int32_t v19 = *(int32_t *)v16; // 0x1e3b081 g2 = v19; *(int32_t *)(v18 + 134) = v19; *(int32_t *)(g5 + 146) = *(int32_t *)(g8 + 98); *(int32_t *)(g5 + 130) = *(int32_t *)g4; int32_t v20 = g5; // 0x1e3b09a g2 = v20; int32_t v21 = *(int32_t *)(g8 + 6); // 0x1e3b09c g7 = v21; *(int32_t *)(v20 + 126) = v21; g5 = g8; g2 = function_1e3dbc0((int32_t)v1, v4, v2); int32_t v22 = 24 * __ftol(); // 0x1e3b0bd g2 = v22; int32_t v23 = g8; // 0x1e3b0c0 int32_t v24 = *(int32_t *)(v22 + 134 + v23); // 0x1e3b0c0 g5 = v24; int32_t v25 = v23 + v22; // edx *(int32_t *)g6 = v24; int32_t v26 = *(int32_t *)(v25 + 146); // 0x1e3b0cc g5 = v26; *(int32_t *)(g8 + 98) = v26; int32_t v27 = *(int32_t *)(v25 + 130); // 0x1e3b0d7 g2 = v27; *(int32_t *)g4 = v27; int32_t v28 = *(int32_t *)(v25 + 126); // 0x1e3b0df g7 = v28; *(int32_t *)(g8 + 6) = v28; if (v26 != 0) { int32_t v29 = g8; // 0x1e3b0e7 g5 = v29; g2 = function_1e3ac4e(11, (float80_t)*(int32_t *)(v29 + 98)); } // 0x1e3b0f9 if (*(int32_t *)g4 != 0) { // 0x1e3b0fe *(int32_t *)(g9 - 4) = 0; g5 = g8; *(int32_t *)(g9 - 8) = 1; g2 = function_1e3ac4e((int32_t)&g708, (float80_t)(int80_t)&g708); } // 0x1e3b109 if (*(int32_t *)g6 != 0) { // 0x1e3b10e *(int32_t *)(g9 - 4) = 0; g5 = g8; *(int32_t *)(g9 - 8) = 4; g2 = function_1e3ac4e((int32_t)&g708, (float80_t)(int80_t)&g708); } // 0x1e3b15b g2 = 0; result = 0; goto lab_0x1e3b15d; } else { // 0x1e3ac6a g701 = a1; switch (a1) { case 0: { // 0x1e3ac8a g2 = 0; *(int32_t *)(v6 + 78) = 0; int32_t v30 = g2; // 0x1e3ac8f if (*(int32_t *)(g8 + 82) == v30) { // 0x1e3ac98 if (*(int32_t *)(g8 + 86) == v30) { // 0x1e3aca1 if (*(int32_t *)(g8 + 90) == v30) { // 0x1e3acaa g2 = function_1e29a40(*(int32_t *)(g8 + 26), *(int32_t *)(g8 + 46)); } } } // 0x1e3b15b g2 = 0; result = 0; goto lab_0x1e3b15d; } case 1: { // 0x1e3acba *(int32_t *)(v6 + 78) = 1; g2 = 0; if (*(int32_t *)(g8 + 82) == 0) { // 0x1e3accc if (*(int32_t *)(g8 + 86) == 0) { // 0x1e3acd5 if (*(int32_t *)(g8 + 90) == 0) { // 0x1e3acde g2 = function_1e29a40(*(int32_t *)(g8 + 26), *(int32_t *)(g8 + 50)); } } } // 0x1e3b15b g2 = 0; result = 0; goto lab_0x1e3b15d; } case 2: { int32_t v31 = *(int32_t *)(v6 + 78); // 0x1e3acee g2 = v31; result = v31; goto lab_0x1e3b15d; } case 3: { int32_t v32 = *(int32_t *)(v6 + 82); // 0x1e3acf6 g2 = v32; result = v32; goto lab_0x1e3b15d; } case 4: { // 0x1e3acfe g6 = 0; g2 = function_1e3ac0f(); v7 = g8; int32_t v33 = g6; // 0x1e3ad08 if (*(int32_t *)(v7 + 82) == v33) { goto lab_0x1e3ad16; } else { // 0x1e3ad0d if (*(int32_t *)(v7 + 70) != v33) { // 0x1e3b15b g2 = 0; result = 0; goto lab_0x1e3b15d; } else { goto lab_0x1e3ad16; } } } case 5: { float32_t v34 = *(float32_t *)(v6 + 102); // 0x1e3ad39 *(float32_t *)(v6 + 62) = (float32_t)((float80_t)v34 * a2); float32_t v35 = *(float32_t *)(g8 + 106); // 0x1e3ad42 *(float32_t *)(g8 + 66) = (float32_t)((float80_t)v35 * a2); // 0x1e3b15b g2 = 0; result = 0; goto lab_0x1e3b15d; } case 6: { int32_t v36 = *(int32_t *)(v6 + 102); // 0x1e3ad50 g2 = v36; g5 = *(int32_t *)(v6 + 106); *(int32_t *)(v6 + 62) = v36; *(int32_t *)(g8 + 66) = g5; // 0x1e3b15b g2 = 0; result = 0; goto lab_0x1e3b15d; } case 7: { // 0x1e3ad61 int32_t v37; // 0x1e3ad75 if (*(int32_t *)(v6 + 82) == 0) { int32_t v38 = v6 + 42; // 0x1e3ad6a g5 = v38; g2 = function_1e3aa72(v38, *(int32_t *)(v6 + 78)); v37 = g8; } else { v37 = v6; } // 0x1e3ad73 g2 = 0; g5 = v37; *(int32_t *)(v37 + 90) = 0; *(int32_t *)(g8 + 86) = g2; *(int32_t *)(g9 - 4) = (int32_t)v1; *(int32_t *)(g8 + 82) = 1; *(int32_t *)(g8 + 94) = g2; g2 = function_1e3ac0f(); // 0x1e3b15b g2 = 0; result = 0; goto lab_0x1e3b15d; } case 8: { // 0x1e3ad94 g6 = 0; int32_t v39; // 0x1e3adc8 if (*(int32_t *)(v6 + 86) == 0) { // 0x1e3ad9b if (*(int32_t *)(v6 + 82) == 0) { // 0x1e3adaf g2 = function_1e29a40(*(int32_t *)(v6 + 26), *(int32_t *)(v6 + 46)); } else { int32_t v40 = v6 + 42; // 0x1e3ada1 g2 = v40; g2 = function_1e3aa88(v40); *(int32_t *)(g8 + 82) = g6; } // 0x1e3adba *(int32_t *)(g8 + 86) = 1; *(int32_t *)(g8 + 90) = 0; v39 = g9; } else { v39 = v5; } // 0x1e3adc8 *(int32_t *)(v39 - 4) = (int32_t)v1; g5 = g8; g2 = function_1e3ac0f(); // 0x1e3b15b g2 = 0; result = 0; goto lab_0x1e3b15d; } case 9: { // 0x1e3add7 g6 = 0; int32_t v41; // 0x1e3ae0c if (*(int32_t *)(v6 + 90) == 0) { // 0x1e3adde if (*(int32_t *)(v6 + 82) == 0) { // 0x1e3adf3 g2 = function_1e29a40(*(int32_t *)(v6 + 26), *(int32_t *)(v6 + 50)); } else { int32_t v42 = v6 + 42; // 0x1e3ade5 g2 = v42; g2 = function_1e3aa88(v42); *(int32_t *)(g8 + 82) = g6; } // 0x1e3adfe *(int32_t *)(g8 + 90) = 1; *(int32_t *)(g8 + 86) = 0; v41 = g9; } else { v41 = v5; } // 0x1e3ae0c *(int32_t *)(v41 - 4) = (int32_t)v1; g5 = g8; g2 = function_1e3ac0f(); // 0x1e3b15b g2 = 0; result = 0; goto lab_0x1e3b15d; } case 11: { // 0x1e3ae1b g6 = v6 + 98; g2 = function_1e3dbc0((int32_t)v1, v3, v2); int32_t v43 = __ftol(); // 0x1e3ae2f g2 = v43; *(int32_t *)g6 = v43; int32_t v44 = *(int32_t *)(g8 + 34) + 4; // 0x1e3ae39 int32_t v45 = *(int32_t *)v44; // 0x1e3ae3c g2 = v45; int32_t v46 = *(int32_t *)(v45 + 4); // 0x1e3ae3e g2 = v46; int32_t * v47 = (int32_t *)g6; // 0x1e3ae41 int32_t v48; // 0x1e3ae4d if (*v47 > v46) { // 0x1e3ae45 *v47 = v46; v48 = g6; } else { v48 = g6; } // 0x1e3ae47 g2 = 0; int32_t * v49 = (int32_t *)v48; // 0x1e3ae49 int32_t v50; // 0x1e3ae51 if (*v49 < 0) { // 0x1e3ae4d *v49 = 0; v50 = g6; } else { v50 = v48; } // 0x1e3ae4f g5 = *(int32_t *)v50; *(int32_t *)(g8 + 46) = 0; int32_t v51 = *(int32_t *)v44; // 0x1e3ae59 g2 = v51; *(int32_t *)(g8 + 50) = *(int32_t *)(v51 + 8 + 4 * g5); int32_t v52; // 0x1e3ae7e if (*(int32_t *)(g8 + 82) == 0) { // 0x1e3ae69 if (*(int32_t *)(g8 + 86) == 0) { // 0x1e3ae73 g2 = 1; if (*(int32_t *)(g8 + 90) == 0) { // 0x1e3ae7e v52 = *(int32_t *)(g8 + 78); g2 = v52; } else { v52 = 1; } } else { // 0x1e3ae6f g2 = 0; v52 = 0; } } else { int32_t v53 = *(int32_t *)(g8 + 74); // 0x1e3ae64 g2 = v53; v52 = v53; } // 0x1e3ae81 g2 = function_1e29a40(*(int32_t *)(g8 + 26), *(int32_t *)(g8 + 46 + 4 * v52)); // 0x1e3b15b g2 = 0; result = 0; goto lab_0x1e3b15d; } case 12: { int32_t v54 = *(int32_t *)(v6 + 98); // 0x1e3ae92 g5 = v54; int32_t v55 = *(int32_t *)(v6 + 34); // 0x1e3ae95 g2 = v55; int32_t v56 = v54 + 1; // 0x1e3ae98 g5 = v56; int32_t v57 = *(int32_t *)(v55 + 4); // 0x1e3ae99 g7 = v57; int32_t v58 = *(int32_t *)(v57 + 4); // 0x1e3ae9c g2 = v58; if (v56 > v58) { // 0x1e3aea3 g5 = v58; } else { v58 = v56; } // 0x1e3aea5 g5 = v6; g2 = function_1e3ac4e(11, (float80_t)v58); // 0x1e3b15b g2 = 0; result = 0; goto lab_0x1e3b15d; } case 13: { int32_t v59 = *(int32_t *)(v6 + 98) - 1; // 0x1e3aec2 int32_t v60; int32_t v61; // 0x1e3aecc if (v59 < 0) { v60 = 0; v61 = 0; } else { v60 = v59; v61 = v59; } // 0x1e3aec7 g2 = v60; g2 = function_1e3ac4e(11, (float80_t)v61); // 0x1e3b15b g2 = 0; result = 0; goto lab_0x1e3b15d; } case 14: { int32_t v62 = *(int32_t *)(v6 + 110); // 0x1e3aee1 g2 = v62; int32_t v63; // 0x1e3aef0 if (v62 != 0) { // 0x1e3aee8 g2 = function_1e32771(v62); v63 = g8; } else { v63 = v6; } // 0x1e3aeee g2 = 0; *(int32_t *)(v63 + 110) = 0; int32_t v64 = g8; // 0x1e3aef3 int32_t v65; // 0x1e3af05 if (*(int32_t *)(v64 + 82) != g2) { // 0x1e3aef8 *(int32_t *)(g9 - 4) = -1; int32_t v66 = g8 + 42; // 0x1e3aefa g2 = v66; *(int32_t *)(g9 - 8) = v66; g2 = function_1e3aa88((int32_t)&g708); v65 = g8; } else { v65 = v64; } // 0x1e3af03 g2 = 0; g5 = *(int32_t *)(v65 + 78); *(int32_t *)(v65 + 82) = 0; *(int32_t *)(g8 + 86) = g2; *(int32_t *)(g8 + 90) = g2; *(int32_t *)(g9 - 4) = *(int32_t *)(g8 + 46 + 4 * g5); *(int32_t *)(g9 - 8) = *(int32_t *)(g8 + 26); g2 = function_1e29a40((int32_t)&g708, (int32_t)&g708); // 0x1e3b15b g2 = 0; result = 0; goto lab_0x1e3b15d; } case 15: { // 0x1e3af22 *(int32_t *)(v6 + 94) = 0; int32_t v67 = g8; // 0x1e3af29 int32_t v68 = *(int32_t *)(v67 + 114); // 0x1e3af29 g2 = v68; int32_t v69; // 0x1e3af38 if (v68 != 0) { // 0x1e3af30 g2 = function_1e32771(v68); v69 = g8; } else { v69 = v67; } // 0x1e3af36 g2 = 0; g5 = v69; *(int32_t *)(g9 - 4) = 0; *(int32_t *)(g8 + 114) = g2; *(int32_t *)(g9 - 4) = 1; g2 = function_1e3ac4e((int32_t)&g708, (float80_t)(int80_t)&g708); *(int32_t *)(g9 - 4) = (int32_t)v1; *(int32_t *)(g9 - 8) = 7; g5 = g8; g2 = function_1e3ac4e((int32_t)&g708, (float80_t)(int80_t)&g708); // 0x1e3b15b g2 = 0; result = 0; goto lab_0x1e3b15d; } case 16: { int32_t v70 = *(int32_t *)(v6 + 114); // 0x1e3af56 g2 = v70; int32_t v71; // 0x1e3af63 if (v70 != 0) { // 0x1e3af5d g2 = function_1e32771(v70); v71 = g9; } else { v71 = v5; } // 0x1e3af63 *(int32_t *)(v71 - 4) = (int32_t)v1; *(int32_t *)(v71 - 8) = 7; *(int32_t *)(g8 + 114) = 0; g5 = g8; g2 = function_1e3ac4e((int32_t)&g708, (float80_t)(int80_t)&g708); *(int32_t *)(g8 + 94) = 1; // 0x1e3b15b g2 = 0; result = 0; goto lab_0x1e3b15d; } case 17: { // 0x1e3af82 g2 = function_1e3dbc0((int32_t)v1, v3, v2); g5 = g8; int32_t v72 = (int32_t)(__ftol() == 0) + 1; // 0x1e3afa1 g2 = v72; g2 = function_1e3ac4e(v72, 0.0L); int32_t v73 = *(int32_t *)(g8 + 78); // 0x1e3afa8 g2 = v73; result = v73; goto lab_0x1e3b15d; } case 18: { // 0x1e3afb0 g2 = function_1e3ac4e(17, a2); g5 = g8; g2 = function_1e3ac4e(14, 0.0L); int32_t v74 = *(int32_t *)(g8 + 78); // 0x1e3afc7 g2 = v74; result = v74; goto lab_0x1e3b15d; } case 19: { // 0x1e3afcf g2 = function_1e3ac4e(1, 0.0L); g5 = g8; g2 = function_1e3ac4e(14, 0.0L); // 0x1e3b15b g2 = 0; result = 0; goto lab_0x1e3b15d; } case 20: { // 0x1e3afea g6 = 0; g2 = function_1e3ac4e(0, 0.0L); g5 = g8; g2 = function_1e3ac4e(14, (float80_t)(int80_t)g6); // 0x1e3b15b g2 = 0; result = 0; goto lab_0x1e3b15d; } case 21: { int32_t v75 = *(int32_t *)(v6 + 78); // 0x1e3b004 g2 = v75 == 0; g2 = function_1e3ac4e(17, (float80_t)(v75 == 0)); int32_t v76 = *(int32_t *)(g8 + 78); // 0x1e3b021 g2 = v76; result = v76; goto lab_0x1e3b15d; } case 22: { int32_t v77 = *(int32_t *)(v6 + 78); // 0x1e3b029 g2 = v77 == 0; g2 = function_1e3ac4e(18, (float80_t)(v77 == 0)); int32_t v78 = *(int32_t *)(g8 + 78); // 0x1e3b046 g2 = v78; result = v78; goto lab_0x1e3b15d; } case 23: { // 0x1e3b04e g2 = function_1e3dbc0((int32_t)v1, v3, v2); int32_t v79 = __ftol(); // 0x1e3b05f g2 = v79; *(int32_t *)(g8 + 6) = v79; // 0x1e3b15b g2 = 0; result = 0; goto lab_0x1e3b15d; } default: { // 0x1e3b15b g2 = 0; result = 0; goto lab_0x1e3b15d; } } } } lab_0x1e3b15d: // 0x1e3b15d g6 = *(int32_t *)g9; g8 = *(int32_t *)(g9 + 4); g4 = *(int32_t *)(g9 + 8); return result; lab_0x1e3ad16: // 0x1e3ad16 g2 = 0; int32_t v80 = v7 + 42; // esi *(int32_t *)(v7 + 90) = 0; *(int32_t *)(v80 + 44) = g2; *(int32_t *)(v80 + 40) = 1; *(int32_t *)(v80 + 52) = g2; g2 = function_1e3aa72(v80, *(int32_t *)(v80 + 36)); // 0x1e3b15b g2 = 0; result = 0; goto lab_0x1e3b15d; } // Address range: 0x1e3b1c6 - 0x1e3b27e int32_t function_1e3b1c6(int32_t a1, uint32_t a2) { int32_t v1 = g6; // 0x1e3b1ce g4 = 0; g6 = a2; g2 = function_1e29f8c(a1, a2, 0, v1); int32_t v2 = function_1e3a705(4); // 0x1e3b1e2 g2 = v2; *(int32_t *)(g8 + 46) = v2; *(int32_t *)g8 = (int32_t)&g61; int32_t v3 = g8; // 0x1e3b1f0 g5 = v3; *(int32_t *)(v3 + 70) = g4; *(int32_t *)(g8 + 42) = 4; *(int32_t *)(g8 + 66) = g4; g2 = function_1e3b2a6(); if (a2 >= 1) { int32_t v4 = function_1e3991a(a2, g4); // 0x1e3b20f g2 = v4; int32_t v5 = *(int32_t *)v4; // 0x1e3b214 g2 = v5; int32_t v6; // bp-8 g5 = &v6; *(int32_t *)(g8 + 54) = v5; g6 = 0; int32_t v7 = function_1e39996(a2, 1027, &v6); // 0x1e3b225 g2 = v7; if (v6 > g4) { while (true) { // 0x1e3b232 g2 = v7; *(int32_t *)(g9 - 4) = (int32_t)*(int16_t *)v7; g5 = a1; int32_t v8 = function_1e2e83c(v7); // 0x1e3b23c g2 = v8; if (v8 != 0) { int32_t v9 = g8; // 0x1e3b248 int32_t v10 = *(int32_t *)(v9 + 46); // 0x1e3b248 g5 = v10; int32_t v11 = *(int32_t *)v10; // 0x1e3b24b g2 = v11; if (*(int32_t *)(v10 + 4) == v11) { // 0x1e3b252 *(int32_t *)(g9 - 4) = *(int32_t *)(v9 + 42); *(int32_t *)(g9 - 8) = g5; int32_t v12 = function_1e3a739(v8, (int32_t)&g708); // 0x1e3b256 g2 = v12; *(int32_t *)(g8 + 46) = v12; } // 0x1e3b25e *(int32_t *)(g9 - 4) = v8; *(int32_t *)(g9 - 8) = *(int32_t *)(g8 + 46); g2 = function_1e3a6a7((int32_t)&g708, (int32_t)&g708); } int32_t v13 = g6 + 1; // 0x1e3b26d g6 = v13; if (v6 <= v13) { // break -> 0x1e3b273 break; } v7 += 2; } } } int32_t result = g8; // 0x1e3b273 g2 = result; g6 = *(int32_t *)g9; g8 = *(int32_t *)(g9 + 4); g4 = *(int32_t *)(g9 + 8); return result; } // Address range: 0x1e3b27e - 0x1e3b2a6 int32_t function_1e3b27e(char a1) { int32_t v1 = g5; // 0x1e3b27f g8 = v1; g2 = function_1e3a728(*(int32_t *)(v1 + 46)); g5 = g8; g2 = function_1e2a201(); if ((a1 & 1) != 0) { // 0x1e3b297 g2 = function_1e3df60(g8); } // 0x1e3b2a0 g2 = g8; return g8; } // Address range: 0x1e3b2a6 - 0x1e3b2dd int32_t function_1e3b2a6(void) { int32_t v1 = g5; // 0x1e3b2a7 int32_t v2 = *(int32_t *)(v1 + 70); // 0x1e3b2a7 g2 = v2; g8 = v1; int32_t v3; // 0x1e3b2b6 if (v2 != 0) { // 0x1e3b2b0 g2 = function_1e32771(v2); v3 = g8; } else { v3 = v1; } // 0x1e3b2b6 *(int32_t *)(v3 + 70) = 0; int32_t v4 = g8; // 0x1e3b2bd int32_t v5 = *(int32_t *)(v4 + 66); // 0x1e3b2bd g2 = v5; int32_t v6; // 0x1e3b2cc if (v5 != 0) { // 0x1e3b2c4 *(int32_t *)(g9 - 4) = v5; g2 = function_1e32771((int32_t)&g708); v6 = g8; } else { v6 = v4; } // 0x1e3b2ca g2 = 0; g5 = *(int32_t *)(v6 + 54); *(int32_t *)(v6 + 66) = 0; *(int32_t *)(g8 + 58) = g2; *(int32_t *)(g8 + 62) = g2; *(int32_t *)(g8 + 50) = g5; g8 = *(int32_t *)g9; return g2; } // Address range: 0x1e3b2dd - 0x1e3b2f5 int32_t function_1e3b2dd(int32_t a1, int32_t a2) { // 0x1e3b2dd g5 = a1; *(int32_t *)(a1 + 70) = 0; int32_t result = *(int32_t *)g5; // 0x1e3b2eb g2 = result; return result; } // Address range: 0x1e3b2f5 - 0x1e3b358 int32_t function_1e3b2f5(int32_t a1) { int32_t v1 = g5; // 0x1e3b2fd int32_t v2 = v1 + 70; // 0x1e3b2fd g6 = v2; g8 = v1; int32_t v3 = *(int32_t *)v2; // 0x1e3b302 g2 = v3; int32_t v4; // 0x1e3b316 if (v3 != 0) { // 0x1e3b308 g2 = function_1e32771(v3); v4 = g6; } else { v4 = v2; } // 0x1e3b30e g2 = 0; *(int32_t *)v4 = 0; if (g2 < a1) { // 0x1e3b31d g5 = g8 + 50; } else { uint32_t v5 = (int32_t)__asm_fnstsw(g10); // 0x1e3b32a g2 = g2 & -0x10000 | v5; if ((v5 / 256 & 65) != 0) { // 0x1e3b348 g2 = 0; *(int32_t *)(g8 + 58) = 0; *(int32_t *)(g8 + 62) = g2; // 0x1e3b350 return g2; } // 0x1e3b32f g5 = g8 + 50; a1 = *(int32_t *)(g8 + 54); } // 0x1e3b335 g2 = a1; *(int32_t *)(g9 - 4) = 0x1e3b2dd; *(int32_t *)g5 = g2; *(int32_t *)(g9 - 4) = g8; *(int32_t *)(g9 - 8) = *(int32_t *)g5; int32_t v6 = function_1e325d2((int32_t)&g708, (int32_t)&g708, (int32_t)&g708); // 0x1e3b33f g2 = v6; *(int32_t *)g6 = v6; // 0x1e3b350 return g2; } // Address range: 0x1e3b358 - 0x1e3b37f int32_t function_1e3b358(int32_t a1, int32_t a2, int32_t a3, int32_t a4) { int32_t v1 = g8; // 0x1e3b358 int32_t v2 = *(int32_t *)(g5 + 46); // 0x1e3b359 g5 = v2; g2 = 0; int32_t v3 = *(int32_t *)(v2 + 4); // 0x1e3b35e g7 = v3; if (v3 < 1) { lab_0x1e3b378_2: // 0x1e3b378 g2 = -1; // 0x1e3b37d g8 = v1; return -1; } int32_t v4 = v2 + 8; // 0x1e3b365 g5 = v4; int32_t result = 0; // 0x1e3b373 while (true) { // 0x1e3b368 if (*(int32_t *)(*(int32_t *)v4 + 78) == 0) { // break -> 0x1e3b37d break; } int32_t v5 = v4 + 4; // 0x1e3b370 g5 = v5; int32_t v6 = result + 1; // 0x1e3b373 g2 = v6; if (v3 <= v6) { goto lab_0x1e3b378_2; } result = v6; v4 = v5; } // 0x1e3b37d g8 = v1; return result; } // Address range: 0x1e3b37f - 0x1e3b3a0 int32_t function_1e3b37f(int32_t a1, int32_t a2, int32_t a3, int32_t a4) { int32_t v1 = *(int32_t *)(g5 + 46); // 0x1e3b37f g5 = v1; int32_t result = *(int32_t *)(v1 + 4) - 1; // 0x1e3b385 g2 = result; if (result < 0) { lab_0x1e3b39a_2: // 0x1e3b39a g2 = -1; // 0x1e3b39f return -1; } int32_t v2 = v1 + 8 + 4 * result; // 0x1e3b388 g5 = v2; while (true) { int32_t v3 = *(int32_t *)v2; // 0x1e3b38c g7 = v3; if (*(int32_t *)(v3 + 78) != 0) { // break -> 0x1e3b39f break; } int32_t v4 = v2 - 4; // 0x1e3b394 g5 = v4; int32_t v5 = result - 1; // 0x1e3b397 g2 = v5; if (v5 < 0) { goto lab_0x1e3b39a_2; } result = v5; v2 = v4; } // 0x1e3b39f return result; } // Address range: 0x1e3b3a0 - 0x1e3b3d5 int32_t function_1e3b3a0(void) { int32_t v1 = g6; // bp-8 int32_t v2 = &v1; // 0x1e3b3a1 int32_t v3 = g5; // 0x1e3b3a2 int32_t v4 = *(int32_t *)(v3 + 46); // 0x1e3b3a2 g2 = v4; int32_t result = *(int32_t *)(v4 + 4) - 1; // 0x1e3b3aa g2 = result; if (result < 0) { // 0x1e3b3d2 g8 = *(int32_t *)(v2 + 4); return result; } int32_t v5 = 4 * result; // edi g2 = *(int32_t *)(v3 + 46); *(int32_t *)(v2 - 4) = 0; int32_t v6 = *(int32_t *)(g2 + 8 + v5); // 0x1e3b3b9 g5 = v6; int32_t v7 = v2 - 8; // 0x1e3b3c7 *(int32_t *)v7 = *(int32_t *)(v6 + 78) == 0 ? 8 : 9; int32_t result2 = *(int32_t *)g5; // 0x1e3b3c9 g2 = result2; int32_t v8 = v5 - 4; // 0x1e3b3cd v5 = v8; while (v8 >= 0) { // 0x1e3b3b4 v2 = v7; g2 = *(int32_t *)(v3 + 46); *(int32_t *)(v2 - 4) = 0; v6 = *(int32_t *)(g2 + 8 + v5); g5 = v6; v7 = v2 - 8; *(int32_t *)v7 = *(int32_t *)(v6 + 78) == 0 ? 8 : 9; result2 = *(int32_t *)g5; g2 = result2; v8 = v5 - 4; v5 = v8; } // 0x1e3b3d2 g8 = *(int32_t *)(v7 + 4); return result2; } // Address range: 0x1e3b3d5 - 0x1e3b3eb int32_t function_1e3b3d5(int32_t a1) { // 0x1e3b3d5 g2 = a1; *(int32_t *)(a1 + 66) = 0; int32_t result = function_1e328b9(61, a1); // 0x1e3b3e3 g2 = result; return result; }