Files
3d-pinball-space-cadet/pinball_21.c
T
2019-07-16 18:55:02 +00:00

2350 lines
90 KiB
C

#include "pinball.h"
// Address range: 0x1e3b3eb - 0x1e3bc9e
int32_t function_1e3b3eb(int32_t a1, int32_t a2, int32_t a3) {
int32_t v1 = g4; // 0x1e3b3ee
int32_t v2 = g8; // 0x1e3b3ef
int32_t v3 = g6; // 0x1e3b3f0
int32_t v4 = g5; // 0x1e3b3f1
g8 = v4;
g4 = a2;
int32_t v5 = g3; // 0x1e3b3f7
int32_t v6 = v5; // bp-32
int32_t v7 = v6; // 0x1e3b3f7
g2 = a2;
int32_t v8; // 0x1e3b5f9
int32_t v9; // 0x1e3b670
int32_t v10; // 0x1e3b673
int32_t v11; // 0x1e3b6f1
int32_t v12; // 0x1e3b6f4
int32_t v13; // 0x1e3b77c
int32_t v14; // 0x1e3b77f
int32_t v15; // 0x1e3b81b
int32_t v16; // 0x1e3b88d
int32_t v17; // 0x1e3ba68
int32_t v18; // 0x1e3ba7f
int32_t v19; // 0x1e3baab
int32_t result; // 0x1e3bc9b
int32_t v20; // 0x1e3b971
int32_t v21; // 0x1e3ba59
int32_t v22; // 0x1e3ba9c
if (a2 > 1009) {
if (a2 == 1011) {
// 0x1e3bc92
g2 = 0;
result = 0;
goto lab_0x1e3bc94;
} else {
if (a2 == 1020) {
int32_t v23 = *(int32_t *)(v4 + 30); // 0x1e3bbf6
g2 = v23;
int32_t v24 = *(int32_t *)(v4 + 6); // 0x1e3bbf9
g7 = v24;
int32_t v25 = 16 * *(int32_t *)(v23 + 218); // 0x1e3bc02
g2 = v25;
g3 = v4;
*(int32_t *)(v4 + 74 + v25) = v24;
int32_t v26 = g8; // 0x1e3bc0b
int32_t v27 = v26 + g2; // 0x1e3bc0b
g5 = v27;
int32_t v28 = *(int32_t *)(v26 + 58); // 0x1e3bc0e
g2 = v28;
*(int32_t *)(v27 + 78) = v28;
int32_t v29 = *(int32_t *)(g8 + 50); // 0x1e3bc14
g4 = v29;
*(int32_t *)(g5 + 82) = v29;
g5 = g8;
g2 = function_1e3dbc0(a3, v6, v3);
int32_t v30 = g8 + 16 * __ftol(); // 0x1e3bc39
g2 = v30;
int32_t v31 = *(int32_t *)(v30 + 74); // 0x1e3bc3b
g7 = v31;
*(int32_t *)(g8 + 6) = v31;
int32_t v32 = *(int32_t *)(g2 + 78); // 0x1e3bc43
g5 = v32;
*(int32_t *)(g8 + 58) = v32;
int32_t v33 = *(int32_t *)(g2 + 82); // 0x1e3bc49
g2 = v33;
*(int32_t *)(g8 + 50) = v33;
if (v31 != 0) {
// 0x1e3bc51
g2 = function_1e3b2dd(0, g8);
}
// 0x1e3bc92
g2 = 0;
result = 0;
goto lab_0x1e3bc94;
} else {
if (a2 == 1022) {
// 0x1e3bc92
g2 = 0;
result = 0;
goto lab_0x1e3bc94;
} else {
if (a2 == 1024) {
// 0x1e3bc5b
g2 = v4;
g5 = 0;
int32_t v34 = *(int32_t *)(v4 + 30); // 0x1e3bc64
g2 = v34;
if (*(int32_t *)(v34 + 214) > 0) {
int32_t v35 = v4 + 74; // 0x1e3bc6f
g7 = v35;
int32_t v36 = *(int32_t *)(v4 + 6); // 0x1e3bc72
g2 = v36;
g5 = 1;
*(int32_t *)v35 = v36;
int32_t v37 = g7; // 0x1e3bc78
g7 = v37 + 16;
*(int32_t *)(v37 + 4) = *(int32_t *)(g8 + 58);
*(int32_t *)(g7 - 8) = *(int32_t *)(g8 + 50);
int32_t v38 = *(int32_t *)(g8 + 30); // 0x1e3bc87
g2 = v38;
int32_t v39 = g5; // 0x1e3bc8a
while (*(int32_t *)(v38 + 214) > v39) {
// 0x1e3bc72
v36 = *(int32_t *)(g8 + 6);
g2 = v36;
g5 = v39 + 1;
*(int32_t *)g7 = v36;
v37 = g7;
g7 = v37 + 16;
*(int32_t *)(v37 + 4) = *(int32_t *)(g8 + 58);
*(int32_t *)(g7 - 8) = *(int32_t *)(g8 + 50);
v38 = *(int32_t *)(g8 + 30);
g2 = v38;
v39 = g5;
}
}
// 0x1e3bc92
g2 = 0;
result = 0;
goto lab_0x1e3bc94;
} else {
goto lab_0x1e3b448;
}
}
}
}
} else {
if (a2 < 1008) {
int32_t v40 = a2 - 24; // 0x1e3b40d
g2 = v40;
g702 = v40;
int32_t v41; // ebx
int32_t v42; // edi
int32_t v43; // esi
switch (a2) {
case 24: {
int32_t v44 = *(int32_t *)(v4 + 46); // 0x1e3b476
g2 = v44;
int32_t v45 = v44 + 4; // 0x1e3b479
int32_t v46 = *(int32_t *)v45; // 0x1e3b479
g6 = v46;
int32_t v47 = *(int32_t *)(4 * v46 + v45); // 0x1e3b47c
g3 = v47;
g2 = 0;
if (*(int32_t *)(v47 + 82) == 0) {
// 0x1e3b48b
if (*(int32_t *)(v47 + 90) == 0) {
// 0x1e3b494
if (*(int32_t *)(v47 + 86) == 0) {
// 0x1e3b49d
int32_t v48; // 0x1e3b4ac
int32_t v49; // 0x1e3b4ad
int32_t v50; // 0x1e3b4ad
if (*(int32_t *)(v4 + 58) != 0) {
// 0x1e3b4a2
g2 = function_1e3b3eb(34, 0, v5);
v50 = g8;
v49 = g4;
v48 = g6;
} else {
v50 = v4;
v49 = 24;
v48 = v46;
}
int32_t v51 = v48 - 1; // 0x1e3b4ac
*(int32_t *)(v50 + 58) = v49;
*(int32_t *)(g8 + 62) = 1;
int32_t v52 = g3; // 0x1e3b4b7
int32_t v53 = *(int32_t *)(v52 + 78); // 0x1e3b4b7
g2 = v53;
g5 = *(int32_t *)(v52 + 6);
*(int32_t *)(g9 + 28) = v53;
*(int32_t *)(g9 + 20) = g5;
if (v51 >= 1) {
// 0x1e3b4c9
v42 = 4 * v51;
g2 = *(int32_t *)(g8 + 46);
*(int32_t *)(g9 - 4) = 0;
int32_t v54 = v42 + g2; // 0x1e3b4d1
g2 = v54;
v41 = *(int32_t *)(v54 + 8);
int32_t v55 = *(int32_t *)(v54 + 4); // 0x1e3b4d6
g3 = v55;
int32_t v56 = (int32_t)(*(int32_t *)(v55 + 78) == 0) + 1; // 0x1e3b4df
g2 = v56;
*(int32_t *)(g9 - 8) = v56;
g2 = *(int32_t *)v41;
g5 = v41;
int32_t v57 = *(int32_t *)(g3 + 6); // 0x1e3b4e7
g5 = v57;
int32_t v58 = v42 - 4; // 0x1e3b4ea
v42 = v58;
*(int32_t *)(v41 + 6) = v57;
while (v58 != 0) {
// 0x1e3b4cc
g2 = *(int32_t *)(g8 + 46);
*(int32_t *)(g9 - 4) = 0;
v54 = v42 + g2;
g2 = v54;
v41 = *(int32_t *)(v54 + 8);
v55 = *(int32_t *)(v54 + 4);
g3 = v55;
v56 = (int32_t)(*(int32_t *)(v55 + 78) == 0) + 1;
g2 = v56;
*(int32_t *)(g9 - 8) = v56;
g2 = *(int32_t *)v41;
g5 = v41;
v57 = *(int32_t *)(g3 + 6);
g5 = v57;
v58 = v42 - 4;
v42 = v58;
*(int32_t *)(v41 + 6) = v57;
}
}
// 0x1e3b4f2
g2 = *(int32_t *)(g8 + 46);
*(int32_t *)(g9 - 4) = 0;
int32_t v59 = *(int32_t *)(g2 + 8); // 0x1e3b4fc
g6 = v59;
g5 = v59;
int32_t v60 = (int32_t)(*(int32_t *)(g9 + 28) == 0) + 1; // 0x1e3b503
g2 = v60;
*(int32_t *)(g9 - 8) = v60;
*(int32_t *)(g9 - 12) = *(int32_t *)(g9 + 32);
*(int32_t *)(g6 + 6) = *(int32_t *)(g9 + 12);
g5 = g8;
g2 = function_1e3b2f5((int32_t)&g708);
}
}
}
// 0x1e3bc92
g2 = 0;
result = 0;
goto lab_0x1e3bc94;
}
case 25: {
int32_t v61 = *(int32_t *)(v4 + 46); // 0x1e3b520
g2 = v61;
int32_t v62 = v61 + 4; // 0x1e3b523
int32_t v63 = *(int32_t *)v62; // 0x1e3b523
g6 = v63;
int32_t v64 = *(int32_t *)(4 * v63 + v62); // 0x1e3b526
g5 = v64;
g2 = 0;
if (*(int32_t *)(v64 + 82) == 0) {
// 0x1e3b535
if (*(int32_t *)(v64 + 90) == 0) {
// 0x1e3b53e
if (*(int32_t *)(v64 + 86) == 0) {
// 0x1e3b547
int32_t v65; // 0x1e3b55c
if (*(int32_t *)(v4 + 58) != 0) {
// 0x1e3b54c
g5 = v4;
g2 = function_1e3b3eb(34, 0, v5);
v65 = g8;
} else {
v65 = v4;
}
int32_t v66 = *(int32_t *)(v65 + 46); // 0x1e3b556
g2 = v66;
g5 = *(int32_t *)(v66 + 8);
*(int32_t *)(v65 + 62) = 1;
*(int32_t *)(g8 + 58) = g4;
int32_t v67 = g5; // 0x1e3b566
int32_t v68 = *(int32_t *)(v67 + 78); // 0x1e3b566
g7 = v68;
g2 = *(int32_t *)(v67 + 6);
*(int32_t *)(g9 + 28) = v68;
*(int32_t *)(g9 + 20) = g2;
int32_t v69 = g6 - 1; // 0x1e3b574
g2 = v69;
if (v69 >= 1) {
// 0x1e3b57b
*(int32_t *)(g9 + 16) = 0;
*(int32_t *)(g9 + 24) = v69;
g2 = *(int32_t *)(g9 + 16);
*(int32_t *)(g9 - 4) = 0;
int32_t v70 = *(int32_t *)(g8 + 46) + g2; // 0x1e3b58d
g2 = v70;
v41 = *(int32_t *)(v70 + 8);
int32_t v71 = *(int32_t *)(v70 + 12); // 0x1e3b593
g3 = v71;
int32_t v72 = (int32_t)(*(int32_t *)(v71 + 78) == 0) + 1; // 0x1e3b59c
g2 = v72;
*(int32_t *)(g9 - 8) = v72;
g2 = *(int32_t *)v41;
g5 = v41;
int32_t * v73 = (int32_t *)(g9 + 8); // 0x1e3b5a4
*v73 = *v73 + 4;
g5 = *(int32_t *)(g3 + 6);
int32_t * v74 = (int32_t *)(g9 + 24); // 0x1e3b5ac
int32_t v75 = *v74 - 1; // 0x1e3b5ac
*v74 = v75;
*(int32_t *)(v41 + 6) = g5;
while (v75 != 0) {
// 0x1e3b587
g2 = *(int32_t *)(g9 + 16);
*(int32_t *)(g9 - 4) = 0;
v70 = *(int32_t *)(g8 + 46) + g2;
g2 = v70;
v41 = *(int32_t *)(v70 + 8);
v71 = *(int32_t *)(v70 + 12);
g3 = v71;
v72 = (int32_t)(*(int32_t *)(v71 + 78) == 0) + 1;
g2 = v72;
*(int32_t *)(g9 - 8) = v72;
g2 = *(int32_t *)v41;
g5 = v41;
v73 = (int32_t *)(g9 + 8);
*v73 = *v73 + 4;
g5 = *(int32_t *)(g3 + 6);
v74 = (int32_t *)(g9 + 24);
v75 = *v74 - 1;
*v74 = v75;
*(int32_t *)(v41 + 6) = g5;
}
}
// 0x1e3b5b5
g2 = *(int32_t *)(g8 + 46);
*(int32_t *)(g9 - 4) = 0;
int32_t v76 = *(int32_t *)(g2 + 4 + 4 * g6); // 0x1e3b5bf
g6 = v76;
g5 = v76;
int32_t v77 = (int32_t)(*(int32_t *)(g9 + 28) == 0) + 1; // 0x1e3b5c7
g2 = v77;
*(int32_t *)(g9 - 8) = v77;
*(int32_t *)(g9 - 12) = *(int32_t *)(g9 + 32);
*(int32_t *)(g6 + 6) = *(int32_t *)(g9 + 12);
g5 = g8;
g2 = function_1e3b2f5((int32_t)&g708);
}
}
}
// 0x1e3bc92
g2 = 0;
result = 0;
goto lab_0x1e3bc94;
}
case 26: {
// 0x1e3b5e4
if (*(int32_t *)(v4 + 62) != 0) {
goto lab_0x1e3b5f0;
} else {
// 0x1e3b5ea
if (*(int32_t *)(v4 + 58) != 0) {
v8 = v4;
goto lab_0x1e3b5f7;
} else {
goto lab_0x1e3b5f0;
}
}
}
case 27: {
// 0x1e3b65d
if (*(int32_t *)(v4 + 62) != 0) {
goto lab_0x1e3b669;
} else {
// 0x1e3b663
if (*(int32_t *)(v4 + 58) != 0) {
v10 = 27;
v9 = v4;
goto lab_0x1e3b670;
} else {
goto lab_0x1e3b669;
}
}
}
case 28: {
// 0x1e3b6dc
if (*(int32_t *)(v4 + 62) != 0) {
goto lab_0x1e3b6e8;
} else {
// 0x1e3b6e2
if (*(int32_t *)(v4 + 58) != 0) {
v12 = 28;
v11 = v4;
goto lab_0x1e3b6ef;
} else {
goto lab_0x1e3b6e8;
}
}
}
case 29: {
// 0x1e3b769
if (*(int32_t *)(v4 + 62) != 0) {
goto lab_0x1e3b775;
} else {
// 0x1e3b76f
if (*(int32_t *)(v4 + 58) != 0) {
v14 = 29;
v13 = v4;
goto lab_0x1e3b77c;
} else {
goto lab_0x1e3b775;
}
}
}
case 30: {
// 0x1e3b7ed
g6 = 0;
int32_t v78 = *(int32_t *)(v4 + 46); // 0x1e3b7ef
g2 = v78;
int32_t v79 = *(int32_t *)(v78 + 4) - 1; // 0x1e3b7f5
g7 = v79;
if (v79 < 0) {
// 0x1e3bc92
g2 = 0;
result = 0;
goto lab_0x1e3bc94;
} else {
int32_t v80 = v78 + 8 + 4 * v79; // 0x1e3b7f8
g2 = v80;
int32_t v81 = 0; // 0x1e3b804
int32_t v82; // 0x1e3b804
while (true) {
int32_t v83 = *(int32_t *)v80; // 0x1e3b7fc
g5 = v83;
if (*(int32_t *)(v83 + 78) == 0) {
// 0x1e3b804
v82 = v81 + 1;
g6 = v82;
} else {
v82 = v81;
}
int32_t v84 = v80 - 4; // 0x1e3b805
g2 = v84;
int32_t v85 = v79 - 1; // 0x1e3b808
g7 = v85;
if (v85 < 0) {
// break -> 0x1e3b80b
break;
}
v79 = v85;
v81 = v82;
v80 = v84;
}
if (v82 == 0) {
// 0x1e3bc92
g2 = 0;
result = 0;
goto lab_0x1e3bc94;
} else {
int32_t v86 = function_1e3df30(); // 0x1e3b813
int64_t v87 = 0x100000000 * (int64_t)(v86 >> 31) | (int64_t)v86; // 0x1e3b819
int64_t v88 = g6; // 0x1e3b819
g2 = v87 / v88;
int32_t v89 = v87 % v88; // 0x1e3b819
g7 = v89;
v15 = g8;
int32_t v90 = *(int32_t *)(v15 + 46); // 0x1e3b81b
g6 = v90;
int32_t v91 = *(int32_t *)(v90 + 4) - 1; // 0x1e3b821
if (v91 >= 0) {
int32_t v92 = v90 + 8; // 0x1e3b824
int32_t v93 = v92 + 4 * v91; // 0x1e3b824
g5 = v93;
while (true) {
int32_t v94 = *(int32_t *)v93; // 0x1e3b828
g2 = v94;
int32_t v95; // 0x1e3b832
if (*(int32_t *)(v94 + 78) == 0) {
// 0x1e3b830
g2 = v89;
v95 = v89 - 1;
g7 = v95;
if (v89 == 0) {
int32_t v96 = *(int32_t *)(v92 + 4 * v91); // 0x1e3b83f
g5 = v96;
g2 = *(int32_t *)v96;
goto lab_0x1e3b84b;
}
} else {
v95 = v89;
}
int32_t v97 = v93 - 4; // 0x1e3b837
g5 = v97;
int32_t v98 = v91 - 1; // 0x1e3b83a
if (v98 < 0) {
// break -> 0x1e3b84b
break;
}
v91 = v98;
v89 = v95;
v93 = v97;
}
}
goto lab_0x1e3b84b;
}
}
}
case 31: {
// 0x1e3b861
g6 = 0;
int32_t v99 = *(int32_t *)(v4 + 46); // 0x1e3b863
g2 = v99;
int32_t v100 = *(int32_t *)(v99 + 4) - 1; // 0x1e3b869
g7 = v100;
if (v100 < 0) {
// 0x1e3bc92
g2 = 0;
result = 0;
goto lab_0x1e3bc94;
} else {
int32_t v101 = v99 + 8 + 4 * v100; // 0x1e3b86c
g2 = v101;
int32_t v102 = 0; // 0x1e3b878
int32_t v103; // 0x1e3b878
while (true) {
int32_t v104 = *(int32_t *)v101; // 0x1e3b870
g5 = v104;
if (*(int32_t *)(v104 + 78) != 0) {
// 0x1e3b878
v103 = v102 + 1;
g6 = v103;
} else {
v103 = v102;
}
int32_t v105 = v101 - 4; // 0x1e3b879
g2 = v105;
int32_t v106 = v100 - 1; // 0x1e3b87c
g7 = v106;
if (v106 < 0) {
// break -> 0x1e3b87f
break;
}
v100 = v106;
v102 = v103;
v101 = v105;
}
if (v103 == 0) {
// 0x1e3bc92
g2 = 0;
result = 0;
goto lab_0x1e3bc94;
} else {
int32_t v107 = function_1e3df30(); // 0x1e3b887
g2 = v107;
v16 = g8;
int32_t v108 = *(int32_t *)(v16 + 46); // 0x1e3b88d
g5 = v108;
int64_t v109 = 0x100000000 * (int64_t)(v107 >> 31) | (int64_t)v107; // 0x1e3b890
int64_t v110 = g6; // 0x1e3b890
g2 = v109 / v110;
int32_t v111 = v109 % v110; // 0x1e3b890
g7 = v111;
int32_t v112 = *(int32_t *)(v108 + 4) - 1; // 0x1e3b895
if (v112 >= 0) {
int32_t v113 = v108 + 8; // 0x1e3b898
int32_t v114 = v113 + 4 * v112; // 0x1e3b898
g6 = v114;
while (true) {
int32_t v115 = *(int32_t *)v114; // 0x1e3b89c
g2 = v115;
int32_t v116; // 0x1e3b8a6
if (*(int32_t *)(v115 + 78) != 0) {
// 0x1e3b8a4
g2 = v111;
v116 = v111 - 1;
g7 = v116;
if (v111 == 0) {
int32_t v117 = *(int32_t *)(v113 + 4 * v112); // 0x1e3b8b3
g5 = v117;
g2 = *(int32_t *)v117;
goto lab_0x1e3b8bf;
}
} else {
v116 = v111;
}
int32_t v118 = v114 - 4; // 0x1e3b8ab
g6 = v118;
int32_t v119 = v112 - 1; // 0x1e3b8ae
if (v119 < 0) {
// break -> 0x1e3b8bf
break;
}
v112 = v119;
v111 = v116;
v114 = v118;
}
}
goto lab_0x1e3b8bf;
}
}
}
case 32: {
int32_t v120 = function_1e3b358(v5, v3, v2, v1); // 0x1e3b8d7
g2 = v120;
if (v120 >= 0) {
int32_t v121 = g8; // 0x1e3b8e4
int32_t v122 = *(int32_t *)(v121 + 46); // 0x1e3b8e4
g5 = v122;
int32_t v123 = *(int32_t *)(4 * v120 + 8 + v122); // 0x1e3b8eb
g5 = v123;
g2 = *(int32_t *)v123;
if (*(int32_t *)(v121 + 58) != 0) {
// 0x1e3b8f9
g5 = v121;
g2 = function_1e3b3a0();
}
// 0x1e3b900
g2 = 1;
result = 1;
goto lab_0x1e3bc94;
} else {
// 0x1e3bc92
g2 = 0;
result = 0;
goto lab_0x1e3bc94;
}
}
case 33: {
int32_t v124 = function_1e3b37f(v5, v3, v2, v1); // 0x1e3b90c
g2 = v124;
if (v124 >= 0) {
int32_t v125 = g8; // 0x1e3b919
int32_t v126 = *(int32_t *)(v125 + 46); // 0x1e3b919
g5 = v126;
g6 = 0;
int32_t v127 = *(int32_t *)(4 * v124 + 8 + v126); // 0x1e3b91e
g5 = v127;
g2 = *(int32_t *)v127;
if (*(int32_t *)(v125 + 58) != 0) {
// 0x1e3b92d
g5 = v125;
g2 = function_1e3b3a0();
}
// 0x1e3b934
g2 = 1;
result = 1;
goto lab_0x1e3bc94;
} else {
// 0x1e3bc92
g2 = 0;
result = 0;
goto lab_0x1e3bc94;
}
}
case 34: {
int32_t v128 = *(int32_t *)(v4 + 70); // 0x1e3b93e
g2 = v128;
int32_t v129; // 0x1e3b94b
if (v128 != 0) {
// 0x1e3b945
g2 = function_1e32771(v128);
v129 = g8;
} else {
v129 = v4;
}
// 0x1e3b94b
*(int32_t *)(v129 + 70) = 0;
int32_t v130 = g8; // 0x1e3b952
int32_t v131 = *(int32_t *)(v130 + 58); // 0x1e3b952
g2 = v131;
if (v131 == 26) {
goto lab_0x1e3b964;
} else {
if (v131 == 27) {
goto lab_0x1e3b964;
} else {
if (v131 != 28) {
v20 = v130;
goto lab_0x1e3b96f;
} else {
goto lab_0x1e3b964;
}
}
}
}
case 35: {
// 0x1e3b97c
g2 = function_1e3dbc0(a3, v5, v3);
int32_t v132 = __ftol(); // 0x1e3b98e
g2 = v132;
int32_t v133 = g8; // 0x1e3b993
int32_t v134 = *(int32_t *)(v133 + 46); // 0x1e3b993
g5 = v134;
if (*(int32_t *)(v134 + 4) > v132) {
if (v132 >= 0) {
int32_t v135 = *(int32_t *)(4 * v132 + 8 + v134); // 0x1e3b9a7
g5 = v135;
g2 = *(int32_t *)v135;
if (*(int32_t *)(v133 + 58) != 0) {
// 0x1e3b9bd
g5 = v133;
g2 = function_1e3b3a0();
}
}
}
// 0x1e3bc92
g2 = 0;
result = 0;
goto lab_0x1e3bc94;
}
case 36: {
// 0x1e3b9c9
g2 = function_1e3dbc0(a3, v5, v3);
int32_t v136 = __ftol(); // 0x1e3b9db
g2 = v136;
int32_t v137 = g8; // 0x1e3b9e0
int32_t v138 = *(int32_t *)(v137 + 46); // 0x1e3b9e0
g5 = v138;
if (*(int32_t *)(v138 + 4) > v136) {
// 0x1e3b9ec
g6 = 0;
if (v136 >= 0) {
int32_t v139 = *(int32_t *)(4 * v136 + 8 + v138); // 0x1e3b9f6
g5 = v139;
g2 = *(int32_t *)v139;
if (*(int32_t *)(v137 + 58) != 0) {
// 0x1e3ba09
g5 = v137;
g2 = function_1e3b3a0();
}
}
}
// 0x1e3bc92
g2 = 0;
result = 0;
goto lab_0x1e3bc94;
}
case 37: {
// 0x1e3ba15
g2 = 0;
int32_t v140 = *(int32_t *)(v4 + 46); // 0x1e3ba17
g5 = v140;
int32_t v141 = *(int32_t *)(v140 + 4) - 1; // 0x1e3ba1d
if (v141 >= 0) {
int32_t v142 = v140 + 8 + 4 * v141; // 0x1e3ba24
g5 = v142;
int32_t v143 = 0; // 0x1e3ba30
int32_t v144; // 0x1e3ba30
while (true) {
int32_t v145 = *(int32_t *)v142; // 0x1e3ba28
g7 = v145;
if (*(int32_t *)(v145 + 78) != 0) {
// 0x1e3ba30
v144 = v143 + 1;
g2 = v144;
} else {
v144 = v143;
}
int32_t v146 = v142 - 4; // 0x1e3ba31
g5 = v146;
int32_t v147 = v141 - 1; // 0x1e3ba34
if (v147 < 0) {
// break -> 0x1e3bc94
break;
}
v141 = v147;
v143 = v144;
v142 = v146;
}
result = v144;
} else {
result = 0;
}
goto lab_0x1e3bc94;
}
case 38: {
int32_t v148 = *(int32_t *)(v4 + 46); // 0x1e3ba3c
g2 = v148;
int32_t v149 = *(int32_t *)(v148 + 4); // 0x1e3ba3f
g2 = v149;
result = v149;
goto lab_0x1e3bc94;
}
case 39: {
int32_t v150 = *(int32_t *)(v4 + 58); // 0x1e3ba47
g2 = v150;
result = v150;
goto lab_0x1e3bc94;
}
case 40: {
int32_t v151 = *(int32_t *)(v4 + 62); // 0x1e3ba4f
g2 = v151;
result = v151;
goto lab_0x1e3bc94;
}
case 41: {
// 0x1e3ba57
v21 = function_1e3b358(v5, v3, v2, v1);
g2 = v21;
g6 = v21;
if (v21 >= 0) {
// 0x1e3ba68
v17 = g8;
if (*(int32_t *)(v17 + 58) != 0) {
goto lab_0x1e3ba74;
} else {
// 0x1e3ba6e
if (*(int32_t *)(v17 + 62) == 0) {
v18 = v17;
goto lab_0x1e3ba7f;
} else {
goto lab_0x1e3ba74;
}
}
} else {
// 0x1e3bc92
g2 = 0;
result = 0;
goto lab_0x1e3bc94;
}
}
case 42: {
// 0x1e3ba9a
v22 = function_1e3b37f(v5, v3, v2, v1);
g2 = v22;
g6 = v22;
if (v22 >= 0) {
// 0x1e3baab
v19 = g8;
if (*(int32_t *)(v19 + 58) != 0) {
goto lab_0x1e3bab7;
} else {
// 0x1e3bab1
if (*(int32_t *)(v19 + 62) == 0) {
v152 = v19;
} else {
goto lab_0x1e3bab7;
}
}
} else {
// 0x1e3bc92
g2 = 0;
result = 0;
goto lab_0x1e3bc94;
}
}
case 43: {
int32_t v153 = v4 + 66; // 0x1e3badd
g6 = v153;
int32_t v154 = *(int32_t *)v153; // 0x1e3bae0
g2 = v154;
int32_t v155; // 0x1e3baee
if (v154 != 0) {
// 0x1e3bae6
g2 = function_1e32771(v154);
v155 = g6;
} else {
v155 = v153;
}
// 0x1e3baec
g2 = 0;
*(int32_t *)v155 = 0;
int32_t * v156 = (int32_t *)(g9 + 40); // 0x1e3baf0
if (*v156 > g2) {
// 0x1e3bafa
*(int32_t *)(g9 - 4) = 0x1e3b3d5;
*(int32_t *)(g9 - 8) = g8;
*(int32_t *)(g9 - 12) = *v156;
int32_t v157 = function_1e325d2((int32_t)&g708, (int32_t)&g708, (int32_t)&g708); // 0x1e3bb04
g2 = v157;
*(int32_t *)g6 = v157;
}
// 0x1e3bc92
g2 = 0;
result = 0;
goto lab_0x1e3bc94;
}
case 44: {
int32_t v158 = v4 + 46; // 0x1e3bb10
v43 = v158;
int32_t v159 = *(int32_t *)v158; // 0x1e3bb13
g2 = v159;
int32_t v160 = *(int32_t *)(v159 + 4) - 1; // 0x1e3bb18
g2 = v160;
if (v160 >= 0) {
int32_t v161 = 4 * v160; // 0x1e3bb1f
v41 = v161;
v42 = 0;
int32_t v162 = 0; // 0x1e3bb33
while (true) {
int32_t v163 = *(int32_t *)v158; // 0x1e3bb28
g2 = v163;
int32_t v164 = *(int32_t *)(v161 + 8 + v163); // 0x1e3bb2a
g5 = v164;
int32_t v165; // 0x1e3bb3f
int32_t v166; // 0x1e3bb41
if (*(int32_t *)(v164 + 78) != v162) {
// 0x1e3bb33
*(int32_t *)(v7 - 4) = v162;
g2 = *(int32_t *)g5;
*(int32_t *)(v7 - 8) = v42;
g7 = *(int32_t *)v43;
*(int32_t *)(v7 - 12) = *(int32_t *)(v7 + 32);
v165 = v7 - 16;
*(int32_t *)v165 = 16;
v166 = v41;
g5 = *(int32_t *)(g7 + 8 + v166);
} else {
v166 = v161;
v165 = v7;
}
int32_t v167 = v166 - 4; // 0x1e3bb4a
v41 = v167;
if (v167 < 0) {
// break -> 0x1e3bc92
break;
}
// 0x1e3bb4a
v7 = v165;
v162 = v42;
v161 = v167;
v158 = v43;
}
}
// 0x1e3bc92
g2 = 0;
result = 0;
goto lab_0x1e3bc94;
}
case 45: {
// 0x1e3bb54
g2 = function_1e328b9(45, v4);
g2 = function_1e3dbc0(a1, (int32_t)&g708, (int32_t)&g708);
int32_t v168 = __ftol(); // 0x1e3bb6d
g2 = v168;
if (v168 >= 0) {
int32_t v169 = g8 + 46; // 0x1e3bb7a
v43 = v169;
int32_t v170 = *(int32_t *)v169; // 0x1e3bb7d
g5 = v170;
uint32_t v171 = *(int32_t *)(v170 + 4); // 0x1e3bb7f
if (v171 >= v168) {
int32_t v172 = v171 - 1; // 0x1e3bb8a
if (v172 > v168) {
int32_t v173 = g9; // 0x1e3bb9e
g2 = *(int32_t *)v169;
*(int32_t *)(v173 - 4) = 0;
int32_t v174 = 4 * v172; // 0x1e3bba0
g5 = *(int32_t *)(g2 + 8 + v174);
int32_t v175 = v173 - 8; // 0x1e3bba7
*(int32_t *)v175 = 20;
g2 = *(int32_t *)g5;
int32_t v176 = v172 - v168 - 1; // 0x1e3bbad
while (v176 != 0) {
// 0x1e3bb9c
v173 = v175;
g2 = *(int32_t *)v43;
*(int32_t *)(v173 - 4) = 0;
v174 -= 4;
g5 = *(int32_t *)(g2 + 8 + v174);
v175 = v173 - 8;
*(int32_t *)v175 = 20;
g2 = *(int32_t *)g5;
v176--;
}
} else {
v168 = v172;
}
if (v168 >= 0) {
int32_t v177 = g9; // 0x1e3bbbd
g2 = *(int32_t *)v43;
*(int32_t *)(v177 - 4) = 0;
int32_t v178 = v177 - 8; // 0x1e3bbbf
*(int32_t *)v178 = 19;
int32_t v179 = 4 * v168; // 0x1e3bbc1
g5 = *(int32_t *)(g2 + 8 + v179);
int32_t v180 = v179 - 4; // 0x1e3bbc9
while (v180 >= 0) {
// 0x1e3bbbb
v177 = v178;
g2 = *(int32_t *)v43;
*(int32_t *)(v177 - 4) = 0;
v178 = v177 - 8;
*(int32_t *)v178 = 19;
v179 = v180;
g5 = *(int32_t *)(g2 + 8 + v179);
v180 = v179 - 4;
}
}
}
}
// 0x1e3bc92
g2 = 0;
result = 0;
goto lab_0x1e3bc94;
}
case 46: {
int32_t v181 = function_1e3b37f(v5, v3, v2, v1); // 0x1e3bbd5
g2 = v181;
if (v181 >= 0) {
int32_t v182 = *(int32_t *)(g8 + 46); // 0x1e3bbe2
g5 = v182;
int32_t v183 = *(int32_t *)(4 * v181 + 8 + v182); // 0x1e3bbe9
g5 = v183;
g2 = *(int32_t *)v183;
}
// 0x1e3bc92
g2 = 0;
result = 0;
goto lab_0x1e3bc94;
}
default: {
goto lab_0x1e3b448;
}
}
} else {
// 0x1e3bc92
g2 = 0;
result = 0;
goto lab_0x1e3bc94;
}
}
lab_0x1e3bc94:
// 0x1e3bc94
g3 = *(int32_t *)g9;
g6 = *(int32_t *)(g9 + 4);
g8 = *(int32_t *)(g9 + 8);
g4 = *(int32_t *)(g9 + 12);
return result;
lab_0x1e3b448:;
int32_t v184 = *(int32_t *)(v4 + 46); // 0x1e3b448
g2 = v184;
int32_t v185 = *(int32_t *)(v184 + 4) - 1; // 0x1e3b44e
g2 = v185;
if (v185 >= 0) {
// 0x1e3b455
g2 = *(int32_t *)(v4 + 46);
*(int32_t *)(v7 - 4) = *(int32_t *)(v7 + 40);
int32_t v186 = v7 - 8; // 0x1e3b463
*(int32_t *)v186 = g4;
int32_t v187 = 4 * v185; // 0x1e3b464
int32_t v188 = *(int32_t *)(g2 + 8 + v187); // 0x1e3b464
g5 = v188;
g2 = *(int32_t *)v188;
int32_t v189 = v187 - 4; // 0x1e3b46c
while (v189 >= 0) {
// 0x1e3b45c
v7 = v186;
g2 = *(int32_t *)(g8 + 46);
*(int32_t *)(v7 - 4) = *(int32_t *)(v7 + 40);
v186 = v7 - 8;
*(int32_t *)v186 = g4;
v187 = v189;
v188 = *(int32_t *)(g2 + 8 + v187);
g5 = v188;
g2 = *(int32_t *)v188;
v189 = v187 - 4;
}
}
// 0x1e3bc92
g2 = 0;
result = 0;
goto lab_0x1e3bc94;
lab_0x1e3b5f0:
// 0x1e3b5f0
g2 = function_1e3b3a0();
v8 = g8;
goto lab_0x1e3b5f7;
lab_0x1e3b669:
// 0x1e3b669
g2 = function_1e3b3a0();
v10 = g4;
v9 = g8;
goto lab_0x1e3b670;
lab_0x1e3b6e8:
// 0x1e3b6e8
g2 = function_1e3b3a0();
v12 = g4;
v11 = g8;
goto lab_0x1e3b6ef;
lab_0x1e3b775:
// 0x1e3b775
g2 = function_1e3b3a0();
v14 = g4;
v13 = g8;
goto lab_0x1e3b77c;
lab_0x1e3b964:
// 0x1e3b964
*(int32_t *)(g9 - 4) = 0;
g5 = g8;
*(int32_t *)(g9 - 8) = 14;
int32_t v240 = function_1e3b3eb((int32_t)&g708, (int32_t)&g708, (int32_t)&g708); // 0x1e3b96a
g2 = v240;
v20 = g8;
goto lab_0x1e3b96f;
lab_0x1e3b5f7:
// 0x1e3b5f7
g6 = 0;
g2 = *(int32_t *)(v8 + 46);
*(int32_t *)(v8 + 62) = 0;
*(int32_t *)(g8 + 58) = g4;
int32_t v190 = g2; // 0x1e3b602
int32_t v191 = *(int32_t *)(v190 + 4) - 1; // 0x1e3b605
g5 = v191;
int32_t v192 = 4 * v191; // 0x1e3b608
int32_t v193 = *(int32_t *)(v190 + 8 + v192); // 0x1e3b608
g7 = v193;
int32_t v194; // 0x1e3b63b
if (v191 < 1) {
// 0x1e3b5f7
v194 = g9;
} else {
// 0x1e3b611
g3 = v192;
int32_t v195 = g9; // 0x1e3b61b
g2 = *(int32_t *)(g8 + 46);
*(int32_t *)(v195 - 4) = 0;
int32_t v196 = g3 + g2; // 0x1e3b61d
g2 = v196;
g5 = *(int32_t *)(v196 + 8);
int32_t v197 = *(int32_t *)(v196 + 4); // 0x1e3b622
g7 = v197;
int32_t v198 = (int32_t)(*(int32_t *)(v197 + 90) == 0) + 9; // 0x1e3b62b
g2 = v198;
int32_t v199 = v195 - 8; // 0x1e3b62e
*(int32_t *)v199 = v198;
g2 = *(int32_t *)g5;
int32_t v200 = g3 - 4; // 0x1e3b633
g3 = v200;
while (v200 != 0) {
// 0x1e3b618
v195 = v199;
g2 = *(int32_t *)(g8 + 46);
*(int32_t *)(v195 - 4) = 0;
v196 = g3 + g2;
g2 = v196;
g5 = *(int32_t *)(v196 + 8);
v197 = *(int32_t *)(v196 + 4);
g7 = v197;
v198 = (int32_t)(*(int32_t *)(v197 + 90) == 0) + 9;
g2 = v198;
v199 = v195 - 8;
*(int32_t *)v199 = v198;
g2 = *(int32_t *)g5;
v200 = g3 - 4;
g3 = v200;
}
v194 = v199;
}
// 0x1e3b638
g2 = *(int32_t *)(g8 + 46);
*(int32_t *)(v194 - 4) = 0;
g5 = *(int32_t *)(g2 + 8);
int32_t v201 = (int32_t)(*(int32_t *)(v193 + 90) == 0) + 9; // 0x1e3b647
g2 = v201;
*(int32_t *)(v194 - 8) = v201;
*(int32_t *)(v194 - 12) = *(int32_t *)(v194 + 32);
g5 = g8;
g2 = function_1e3b2f5((int32_t)&g708);
// 0x1e3bc92
g2 = 0;
result = 0;
goto lab_0x1e3bc94;
lab_0x1e3b670:
// 0x1e3b670
g2 = *(int32_t *)(v9 + 46);
*(int32_t *)(v9 + 58) = v10;
*(int32_t *)(g8 + 62) = 0;
int32_t v202 = g2; // 0x1e3b67d
int32_t v203 = *(int32_t *)(v202 + 4); // 0x1e3b67d
g6 = v203;
int32_t v204 = *(int32_t *)(v202 + 8); // 0x1e3b680
g5 = v204;
g2 = *(int32_t *)(v204 + 90);
int32_t v205 = v203 - 1; // 0x1e3b686
g3 = v205;
int32_t v206; // 0x1e3b6b7
if (v205 < 1) {
// 0x1e3b670
v206 = g9;
} else {
int32_t v207 = g9; // 0x1e3b696
g2 = *(int32_t *)(g8 + 46);
*(int32_t *)(v207 - 4) = 0;
int32_t v208 = 0; // 0x1e3b698
int32_t v209 = v208 + g2; // 0x1e3b698
g2 = v209;
g5 = *(int32_t *)(v209 + 8);
int32_t v210 = *(int32_t *)(v209 + 12); // 0x1e3b69d
g7 = v210;
int32_t v211 = (int32_t)(*(int32_t *)(v210 + 90) == 0) + 9; // 0x1e3b6a9
g2 = v211;
int32_t v212 = v207 - 8; // 0x1e3b6ac
*(int32_t *)v212 = v211;
g2 = *(int32_t *)g5;
int32_t v213 = g3 - 1; // 0x1e3b6b1
g3 = v213;
while (v213 != 0) {
// 0x1e3b693
v207 = v212;
g2 = *(int32_t *)(g8 + 46);
*(int32_t *)(v207 - 4) = 0;
v208 += 4;
v209 = v208 + g2;
g2 = v209;
g5 = *(int32_t *)(v209 + 8);
v210 = *(int32_t *)(v209 + 12);
g7 = v210;
v211 = (int32_t)(*(int32_t *)(v210 + 90) == 0) + 9;
g2 = v211;
v212 = v207 - 8;
*(int32_t *)v212 = v211;
g2 = *(int32_t *)g5;
v213 = g3 - 1;
g3 = v213;
}
v206 = v212;
}
// 0x1e3b6b4
g2 = *(int32_t *)(g8 + 46);
*(int32_t *)(v206 - 4) = 0;
g5 = *(int32_t *)(g2 + 4 + 4 * g6);
int32_t v214 = (int32_t)(*(int32_t *)(v206 + 28) == 0) + 9; // 0x1e3b6c6
g2 = v214;
*(int32_t *)(v206 - 8) = v214;
*(int32_t *)(v206 - 12) = *(int32_t *)(v206 + 32);
g5 = g8;
g2 = function_1e3b2f5((int32_t)&g708);
// 0x1e3bc92
g2 = 0;
result = 0;
goto lab_0x1e3bc94;
lab_0x1e3b6ef:
// 0x1e3b6ef
g6 = 0;
g2 = *(int32_t *)(v11 + 46);
*(int32_t *)(v11 + 58) = v12;
*(int32_t *)(g8 + 62) = g6;
int32_t v215 = *(int32_t *)(g2 + 4) - 1; // 0x1e3b6fd
g4 = v215;
if (v215 >= 1) {
while (true) {
int32_t v216 = function_1e3df30(); // 0x1e3b702
g5 = 100;
int64_t v217 = 0x100000000 * (int64_t)(v216 >> 31) | (int64_t)v216; // 0x1e3b70d
g2 = v217 / 100;
int32_t v218 = v217 % 100; // 0x1e3b70d
g7 = v218;
if (v218 > 70) {
int32_t v219 = *(int32_t *)(g8 + 46); // 0x1e3b714
g2 = v219;
int32_t v220 = *(int32_t *)(v219 + 8 + g6); // 0x1e3b717
g5 = v220;
*(int32_t *)(g9 + 16) = v220;
g3 = *(int32_t *)g5;
int32_t v221 = function_1e3df30(); // 0x1e3b721
g2 = v221;
g5 = *(int32_t *)(g9 + 16);
*(int32_t *)(g9 + 24) = v221;
int32_t v222 = *(int32_t *)(g9 + 24); // 0x1e3b72e
float32_t v223 = *(float32_t *)(g9 + 40); // 0x1e3b73b
*(float32_t *)(g9 - 4) = (float32_t)(3.0L * 3.05185094759971922707e-5L * (float80_t)v222 * (float80_t)v223 + 0.1L);
*(int32_t *)(g9 - 4) = 9;
}
// 0x1e3b753
g6 += 4;
int32_t v224 = g4 - 1; // 0x1e3b756
g4 = v224;
if (v224 == 0) {
// break -> 0x1e3b759
break;
}
}
}
// 0x1e3b759
*(int32_t *)(g9 - 4) = *(int32_t *)(g9 + 40);
g5 = g8;
g2 = function_1e3b2f5((int32_t)&g708);
// 0x1e3bc92
g2 = 0;
result = 0;
goto lab_0x1e3bc94;
lab_0x1e3b77c:
// 0x1e3b77c
g2 = *(int32_t *)(v13 + 46);
*(int32_t *)(v13 + 58) = v14;
*(int32_t *)(g8 + 62) = 0;
int32_t v225 = *(int32_t *)(g2 + 4) - 1; // 0x1e3b78c
g6 = v225;
int32_t v226; // 0x1e3b7dd
if (v225 < 1) {
// 0x1e3b77c
v226 = g9;
} else {
// 0x1e3b791
g4 = 0;
int32_t v227 = g9; // 0x1e3b79a
int32_t v228 = 0; // 0x1e3b796
while (true) {
int32_t v229 = *(int32_t *)(g8 + 46); // 0x1e3b793
g2 = v229;
int32_t v230 = *(int32_t *)(v228 + 8 + v229); // 0x1e3b796
g5 = v230;
*(int32_t *)(v227 + 20) = v230;
int32_t v231 = *(int32_t *)g5; // 0x1e3b79e
g2 = v231;
*(int32_t *)(g9 + 16) = v231;
int32_t v232 = function_1e3df30(); // 0x1e3b7a4
g5 = 100;
int32_t v233 = (0x100000000 * (int64_t)(v232 >> 31) | (int64_t)v232) % 100; // 0x1e3b7af
g7 = v233;
int32_t v234;
int32_t v235; // 0x1e3b7c1
if (v233 <= 70) {
v234 = 0;
v235 = 0;
} else {
v234 = 1;
v235 = 1;
}
// 0x1e3b7bd
g2 = v234;
g5 = *(int32_t *)(g9 + 20);
*(int32_t *)(g9 + 24) = v235;
int32_t v236 = *(int32_t *)(g9 + 24); // 0x1e3b7c5
g2 = *(int32_t *)(g9 + 16);
g4 += 4;
*(float32_t *)(g9 - 4) = (float32_t)(float80_t)v236;
int32_t v237 = g9 - 4; // 0x1e3b7d6
*(int32_t *)v237 = 18;
int32_t v238 = g6 - 1; // 0x1e3b7da
g6 = v238;
if (v238 == 0) {
v226 = v237;
// break -> 0x1e3b7dd
break;
}
// 0x1e3b7bd
v227 = v237;
v228 = g4;
}
}
// 0x1e3b7dd
*(int32_t *)(v226 - 4) = *(int32_t *)(v226 + 40);
g5 = g8;
g2 = function_1e3b2f5((int32_t)&g708);
// 0x1e3bc92
g2 = 0;
result = 0;
goto lab_0x1e3bc94;
lab_0x1e3b96f:
// 0x1e3b96f
g2 = 0;
*(int32_t *)(v20 + 58) = 0;
*(int32_t *)(g8 + 62) = g2;
// 0x1e3bc92
g2 = 0;
result = 0;
goto lab_0x1e3bc94;
lab_0x1e3ba74:
// 0x1e3ba74
g5 = v17;
g2 = function_1e3b3eb(34, 0, (int32_t)&g708);
v18 = g8;
goto lab_0x1e3ba7f;
lab_0x1e3bab7:
// 0x1e3bab7
g5 = v19;
g2 = function_1e3b3eb(34, 0, (int32_t)&g708);
int32_t v239 = g8;
goto lab_0x1e3bac2;
lab_0x1e3b84b:
// 0x1e3b84b
if (*(int32_t *)(v15 + 58) != 0) {
// 0x1e3b855
g5 = v15;
g2 = function_1e3b3a0();
}
// 0x1e3bc92
g2 = 0;
result = 0;
goto lab_0x1e3bc94;
lab_0x1e3b8bf:
// 0x1e3b8bf
if (*(int32_t *)(v16 + 58) != 0) {
// 0x1e3b8c9
g5 = v16;
g2 = function_1e3b3a0();
}
// 0x1e3bc92
g2 = 0;
result = 0;
goto lab_0x1e3bc94;
lab_0x1e3ba7f:
// 0x1e3ba7f
g2 = *(int32_t *)(v18 + 46);
*(int32_t *)(g9 - 4) = *(int32_t *)(g9 + 40);
*(int32_t *)(g9 - 8) = 15;
g5 = *(int32_t *)(4 * v21 + 8 + g2);
g2 = 1;
result = 1;
goto lab_0x1e3bc94;
lab_0x1e3bac2:
// 0x1e3bac2
g2 = *(int32_t *)(v239 + 46);
*(int32_t *)(g9 - 4) = *(int32_t *)(g9 + 40);
*(int32_t *)(g9 - 8) = 16;
g5 = *(int32_t *)(4 * v22 + 8 + g2);
g2 = 1;
result = 1;
goto lab_0x1e3bc94;
}
// Address range: 0x1e3bcfa - 0x1e3bd81
int32_t function_1e3bcfa(int32_t a1, uint32_t a2) {
// 0x1e3bcfa
g6 = a2;
g2 = function_1e3b1c6(a1, a2);
g3 = 0;
int32_t v1 = g4; // 0x1e3bd19
g5 = v1;
*(int32_t *)v1 = (int32_t)&g62;
*(int32_t *)g8 = g3;
g2 = function_1e3bdc9();
if (a2 >= 1) {
int32_t v2 = function_1e3991a(a2, g3); // 0x1e3bd33
g2 = v2;
if (v2 != g3) {
int32_t v3 = *(int32_t *)(g4 + 46); // 0x1e3bd40
g2 = v3;
int32_t v4 = *(int32_t *)(v3 + 4); // 0x1e3bd43
g6 = 2 * v4;
int32_t v5 = 8 * v4; // 0x1e3bd48
g2 = v5;
int32_t v6 = function_1e25371(v5); // 0x1e3bd50
g2 = v6;
*(int32_t *)g8 = v6;
int32_t v7 = g3; // 0x1e3bd57
if (g2 != v7) {
// 0x1e3bd5b
if (g6 >= 1) {
int32_t v8 = *(int32_t *)g8; // 0x1e3bd5f
g5 = v8;
int32_t v9 = a1; // 0x1e3bd61
g2 = v9;
*(int32_t *)(v8 + v7) = *(int32_t *)v9;
int32_t v10 = g3 + 4; // 0x1e3bd6f
g3 = v10;
int32_t v11 = g6 - 1; // 0x1e3bd72
g6 = v11;
while (v11 != 0) {
// 0x1e3bd5f
v8 = *(int32_t *)g8;
g5 = v8;
v9 += 4;
g2 = v9;
*(int32_t *)(v8 + v10) = *(int32_t *)v9;
v10 = g3 + 4;
g3 = v10;
v11 = g6 - 1;
g6 = v11;
}
}
}
}
}
int32_t result = g4; // 0x1e3bd75
g2 = result;
g3 = *(int32_t *)g9;
g6 = *(int32_t *)(g9 + 4);
g4 = *(int32_t *)(g9 + 12);
return result;
}
// Address range: 0x1e3bd81 - 0x1e3bd9f
int32_t function_1e3bd81(char a1) {
// 0x1e3bd81
g8 = g5;
int32_t v1; // esi
g2 = function_1e3bd9f(v1);
if ((a1 & 1) != 0) {
// 0x1e3bd90
g2 = function_1e3df60(g8);
}
// 0x1e3bd99
g2 = g8;
return g8;
}
// Address range: 0x1e3bd9f - 0x1e3bdc9
int32_t function_1e3bd9f(int32_t a1) {
int32_t v1 = g5; // 0x1e3bda0
int32_t v2 = *(int32_t *)(v1 + 138); // 0x1e3bda0
g2 = v2;
*(int32_t *)v1 = (int32_t)&g62;
int32_t v3 = g5; // 0x1e3bdac
g8 = v3;
int32_t v4; // 0x1e3bdb8
if (v2 != 0) {
// 0x1e3bdb2
g2 = function_1e25401(v2);
v4 = g8;
} else {
v4 = v3;
}
// 0x1e3bdb8
*(int32_t *)(g9 - 4) = *(int32_t *)(v4 + 46);
g2 = function_1e3a728((int32_t)&g708);
g5 = g8;
int32_t result = function_1e2a201(); // 0x1e3bdc2
g2 = result;
g8 = *(int32_t *)g9;
return result;
}
// Address range: 0x1e3bdc9 - 0x1e3bdf9
int32_t function_1e3bdc9(void) {
int32_t v1 = g5; // 0x1e3bdce
int32_t v2 = v1 + 142; // 0x1e3bdce
g8 = v2;
int32_t v3 = *(int32_t *)v2; // 0x1e3bdd6
g2 = v3;
if (v3 != 0) {
// 0x1e3bddc
g2 = function_1e32771(v3);
*(int32_t *)g8 = 0;
}
// 0x1e3bde4
*(int32_t *)(v1 + 146) = 0;
g5 = v1;
int32_t result = function_1e3b2a6(); // 0x1e3bdf0
g2 = result;
g6 = *(int32_t *)g9;
g8 = *(int32_t *)(g9 + 4);
g4 = *(int32_t *)(g9 + 8);
return result;
}
// Address range: 0x1e3bdf9 - 0x1e3be4a
int32_t function_1e3bdf9(int32_t a1) {
// 0x1e3bdf9
*(int32_t *)(a1 + 142) = 0;
int32_t v1 = *(int32_t *)(a1 + 146); // 0x1e3be0b
g2 = v1;
int32_t v2;
if (v1 == 0) {
// 0x1e3be31
g2 = *(int32_t *)a1;
g5 = a1;
v2 = 47;
} else {
// 0x1e3be15
g2 = v1 - 1;
g5 = a1;
g2 = *(int32_t *)a1;
v2 = 60;
}
int32_t result = function_1e328b9(v2, a1); // 0x1e3be3e
g2 = result;
return result;
}
// Address range: 0x1e3be4a - 0x1e3c004
int32_t function_1e3be4a(int32_t a1, int32_t a2) {
int32_t v1 = g3; // bp-4
g3 = v1;
int32_t v2 = g6; // bp-20
int32_t v3 = g5; // 0x1e3be53
g8 = v3;
g6 = a1;
int32_t result;
if (a1 == 37) {
// 0x1e3be8f
result = *(int32_t *)(v3 + 146);
} else {
if (a1 == 45) {
int32_t v4 = v3 + 142; // 0x1e3be9a
g6 = v4;
g4 = 0;
int32_t v5 = *(int32_t *)v4; // 0x1e3bea2
g2 = v5;
int32_t v6; // 0x1e3beb3
if (v5 != 0) {
// 0x1e3bea8
g2 = function_1e32771(v5);
*(int32_t *)g6 = g4;
v6 = g9;
} else {
v6 = v2;
}
// 0x1e3beb0
*(float64_t *)(v6 - 8) = (float64_t)(float32_t)a2;
int32_t v7 = function_1e3dbc0((int32_t)&g708, (int32_t)&g708, (int32_t)&g708); // 0x1e3beb9
g2 = v7;
int32_t v8 = __ftol(); // 0x1e3bec1
g2 = v8;
g4 = v8;
int32_t v9 = g8; // 0x1e3bec8
int32_t v10 = *(int32_t *)(v9 + 46); // 0x1e3bec8
g2 = v10;
int32_t v11 = 2 * *(int32_t *)(v10 + 4); // 0x1e3bece
g2 = v11;
int32_t v12; // 0x1e3bed4
if (v11 <= v8) {
// 0x1e3bed4
v12 = v11 - 1;
g4 = v12;
} else {
v12 = v8;
}
int32_t v13 = g9 - 4; // 0x1e3bef7
if (v12 >= 0) {
int32_t v14 = v12 >> 31; // 0x1e3befa
g7 = v14;
g5 = v9;
int32_t v15 = (v12 - v14) / 2; // 0x1e3beff
g2 = v15;
*(float32_t *)v13 = (float32_t)(float80_t)v15;
*(int32_t *)(g9 - 4) = 45;
g2 = function_1e3b3eb(v15, (int32_t)&g708, (int32_t)&g708);
if ((g4 & 1) == 0) {
// 0x1e3bf16
*(int32_t *)(g9 - 4) = 0;
g5 = g8;
*(int32_t *)(g9 - 8) = 46;
int32_t v16 = function_1e3b3eb((int32_t)&g708, (int32_t)&g708, (int32_t)&g708); // 0x1e3bf1c
g2 = v16;
}
int32_t v17 = *(int32_t *)(g8 + 138); // 0x1e3bf21
g2 = v17;
if (v17 != 0) {
// 0x1e3bf2b
*(int32_t *)(g9 - 4) = 0x1e3bdf9;
*(int32_t *)(g9 - 8) = g8;
*(int32_t *)(g9 - 12) = *(int32_t *)(4 * g4 + v17);
int32_t v18 = function_1e325d2((int32_t)&g708, (int32_t)&g708, (int32_t)&g708); // 0x1e3bf34
g2 = v18;
*(int32_t *)g6 = v18;
}
// 0x1e3bf3b
*(int32_t *)(g8 + 146) = g4;
} else {
// 0x1e3bedb
*(int32_t *)v13 = 0;
g5 = g8;
*(int32_t *)(g9 - 8) = 20;
int32_t v19 = function_1e3b3eb((int32_t)&g708, (int32_t)&g708, (int32_t)&g708); // 0x1e3bee1
g2 = v19;
*(int32_t *)(g8 + 146) = 0;
}
} else {
if (a1 == 1011) {
// 0x1e3bf46
g2 = v3;
} else {
if (a1 == 1020) {
int32_t v20 = v3 + 142; // 0x1e3bf52
int32_t v21 = *(int32_t *)v20; // 0x1e3bf5a
g2 = v21;
int32_t v22; // 0x1e3bf7b
int32_t v23; // 0x1e3bf77
if (v21 != 0) {
// 0x1e3bf60
g2 = function_1e32771(v21);
*(int32_t *)v20 = 0;
v23 = g5;
v22 = g8;
} else {
v23 = v3;
v22 = v3;
}
int32_t v24 = v22 + 146; // 0x1e3bf68
g6 = v24;
int32_t v25 = *(int32_t *)(v22 + 30); // 0x1e3bf6e
g2 = v25;
int32_t v26 = *(int32_t *)(v25 + 218); // 0x1e3bf71
g7 = v26;
g4 = v23;
*(int32_t *)(v22 + 150 + 4 * v26) = *(int32_t *)v24;
g5 = g8;
*(float64_t *)(g9 - 8) = (float64_t)(float32_t)a2;
int32_t v27 = function_1e3dbc0((int32_t)&g708, (int32_t)&g708, (int32_t)&g708); // 0x1e3bf90
g2 = v27;
int32_t v28 = __ftol(); // 0x1e3bf98
g2 = v28;
int32_t v29 = *(int32_t *)(4 * v28 + 150 + g8); // 0x1e3bf9d
g2 = v29;
*(int32_t *)g6 = v29;
if (v29 != 0) {
// 0x1e3bfaa
g5 = g8;
*(float32_t *)(g9 - 4) = (float32_t)(float80_t)*(int32_t *)g6;
*(int32_t *)(g9 - 4) = 45;
g2 = function_1e3be4a((int32_t)&g708, (int32_t)&g708);
}
} else {
int32_t v30; // 0x1e3bff4
if (a1 == 1024) {
// 0x1e3bfbd
g2 = v3;
g5 = 0;
int32_t v31 = *(int32_t *)(v3 + 30); // 0x1e3bfc6
g2 = v31;
int32_t v32; // 0x1e3bff1
int32_t v33; // 0x1e3bff2
if (*(int32_t *)(v31 + 214) > 0) {
int32_t v34 = v3 + 150; // 0x1e3bfd1
g7 = v34;
int32_t v35 = *(int32_t *)(v3 + 146); // 0x1e3bfd7
g2 = v35;
g5 = 1;
*(int32_t *)v34 = v35;
int32_t v36 = g7 + 4; // 0x1e3bfe0
g7 = v36;
int32_t v37 = g8; // 0x1e3bfe3
int32_t v38 = *(int32_t *)(v37 + 30); // 0x1e3bfe3
g2 = v38;
int32_t v39 = g5; // 0x1e3bfe6
while (*(int32_t *)(v38 + 214) > v39) {
// 0x1e3bfd7
v35 = *(int32_t *)(v37 + 146);
g2 = v35;
g5 = v39 + 1;
*(int32_t *)v36 = v35;
v36 = g7 + 4;
g7 = v36;
v37 = g8;
v38 = *(int32_t *)(v37 + 30);
g2 = v38;
v39 = g5;
}
// 0x1e3bfee
v33 = v37;
v32 = g6;
} else {
v33 = v3;
v32 = 1024;
}
// 0x1e3bfee
g5 = v33;
v30 = v32;
} else {
v30 = a1;
}
// 0x1e3bff4
g2 = function_1e3b3eb(v30, a2, (int32_t)&g708);
}
}
}
// 0x1e3bff9
result = 0;
}
// 0x1e3bffb
g2 = result;
return result;
}
// Address range: 0x1e3c004 - 0x1e3c017
int32_t function_1e3c004(int32_t * a1) {
int32_t v1 = (int32_t)a1;
g2 = v1;
g5 = *a1;
*(float32_t *)a1 = -*(float32_t *)(v1 + 4);
*(int32_t *)(g2 + 4) = g5;
return g2;
}
// Address range: 0x1e3c017 - 0x1e3c042
int32_t function_1e3c017(int32_t a1, int32_t a2) {
// 0x1e3c017
int32_t v1; // bp-16
int32_t v2 = v1; // 0x1e3c01a
int32_t * v3 = (int32_t *)a1; // 0x1e3c025
v1 = *v3;
int32_t v4 = g1 ? -4 : 4; // 0x1e3c025
int32_t v5 = v4 + v2; // 0x1e3c025
int32_t v6 = v4 + a1; // 0x1e3c025
*(int32_t *)v5 = *(int32_t *)v6;
*(int32_t *)(v5 + v4) = *(int32_t *)(v6 + v4);
int32_t * v7 = (int32_t *)a2; // 0x1e3c02e
*v3 = *v7;
int32_t v8 = a1 + v4; // 0x1e3c02e
int32_t v9 = a2 + v4; // 0x1e3c02e
*(int32_t *)v8 = *(int32_t *)v9;
*(int32_t *)(v8 + v4) = *(int32_t *)(v9 + v4);
*v7 = v1;
int32_t v10 = a2 + v4; // 0x1e3c037
int32_t v11 = v2 + v4; // 0x1e3c037
*(int32_t *)v10 = *(int32_t *)v11;
*(int32_t *)(v10 + v4) = *(int32_t *)(v11 + v4);
return g2;
}
// Address range: 0x1e3c042 - 0x1e3c328
int32_t function_1e3c042(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 = g3; // bp-4
g3 = v1;
int32_t v2; // bp-112
int32_t v3 = v2; // 0x1e3c045
g2 = a1;
*(int32_t *)g5 = (int32_t)&g28;
*(int32_t *)(g5 + 4) = g2;
int32_t v4 = g5; // 0x1e3c056
g2 = a11;
*(int32_t *)(v4 + 8) = a2;
*(int32_t *)(v4 + 17) = a3;
g5 = a12;
float32_t v5; // bp-40
int32_t v6 = &v5; // edi
*(int32_t *)v4 = (int32_t)&g63;
*(int32_t *)(v4 + 25) = g2;
*(int32_t *)(v4 + 29) = g5;
*(char *)(v4 + 12) = 0;
v5 = (float32_t)*(int32_t *)a5;
int32_t v7 = g1 ? -4 : 4; // 0x1e3c081
int32_t v8 = v7 + v6; // 0x1e3c081
int32_t v9 = v7 + a5; // 0x1e3c081
*(int32_t *)v8 = *(int32_t *)v9;
*(int32_t *)(v8 + v7) = *(int32_t *)(v9 + v7);
float32_t v10; // bp-28
int32_t v11 = &v10; // 0x1e3c084
v10 = (float32_t)*(int32_t *)a6;
int32_t v12 = v7 + v11; // 0x1e3c08a
int32_t v13 = v7 + a6; // 0x1e3c08a
*(int32_t *)v12 = *(int32_t *)v13;
*(int32_t *)(v12 + v7) = *(int32_t *)(v13 + v7);
float32_t v14; // bp-100
int32_t v15 = &v14; // 0x1e3c08d
v14 = (float32_t)*(int32_t *)a7;
int32_t v16 = v7 + v15; // 0x1e3c093
int32_t v17 = v7 + a7; // 0x1e3c093
*(int32_t *)v16 = *(int32_t *)v17;
*(int32_t *)(v16 + v7) = *(int32_t *)(v17 + v7);
g2 = a9;
g5 = a10;
*(int32_t *)(v4 + 213) = a8;
*(int32_t *)(v4 + 217) = g2;
*(int32_t *)(v4 + 149) = g5;
float32_t v18;
float80_t v19 = v18; // 0x1e3c0ba
float80_t v20 = v19 + (float80_t)*(float32_t *)(a4 + 282); // 0x1e3c0ba
*(float32_t *)(v4 + 49) = (float32_t)v20;
float32_t v21;
float80_t v22 = (float80_t)v21 + (float80_t)*(float32_t *)(a4 + 282); // 0x1e3c0c6
*(float32_t *)(v4 + 45) = (float32_t)v22;
float80_t v23 = 1.01L * (float80_t)*(float32_t *)(v4 + 49); // 0x1e3c0cf
*(float32_t *)(v4 + 65) = (float32_t)v23;
float80_t v24 = 1.01L * (float80_t)*(float32_t *)(v4 + 45); // 0x1e3c0db
*(float32_t *)(v4 + 61) = (float32_t)v24;
float32_t * v25 = (float32_t *)(v4 + 65); // 0x1e3c0e4
*v25 = (float32_t)((float80_t)*v25 * (float80_t)*v25);
float32_t * v26 = (float32_t *)(v4 + 61); // 0x1e3c0ed
*v26 = (float32_t)((float80_t)*v26 * (float80_t)*v26);
float32_t * v27 = (float32_t *)(v4 + 49); // 0x1e3c0f6
float80_t v28 = (float80_t)*v27 * (float80_t)*v27; // 0x1e3c0f9
*(float32_t *)(v4 + 57) = (float32_t)v28;
float32_t * v29 = (float32_t *)(v4 + 45); // 0x1e3c0ff
float80_t v30 = (float80_t)*v29 * (float80_t)*v29; // 0x1e3c102
*(float32_t *)(v4 + 53) = (float32_t)v30;
int32_t v31 = v4 + 153; // 0x1e3c10b
*(int32_t *)v31 = (int32_t)v10;
int32_t v32 = g1 ? -4 : 4; // 0x1e3c111
int32_t v33 = v32 + v31; // 0x1e3c111
int32_t v34 = v32 + v11; // 0x1e3c111
*(int32_t *)v33 = *(int32_t *)v34;
*(int32_t *)(v33 + v32) = *(int32_t *)(v34 + v32);
int32_t v35 = v4 + 165; // 0x1e3c117
*(int32_t *)v35 = (int32_t)v14;
int32_t v36 = v35 + v32; // 0x1e3c11d
int32_t v37 = v15 + v32; // 0x1e3c11d
*(int32_t *)v36 = *(int32_t *)v37;
*(int32_t *)(v36 + v32) = *(int32_t *)(v37 + v32);
float32_t v38 = v5; // 0x1e3c123
float32_t v39;
g5 = v39;
*(int32_t *)(v4 + 33) = (int32_t)v38;
*(int32_t *)(v4 + 37) = g5;
float80_t v40 = (float80_t)v10 - (float80_t)v38; // 0x1e3c132
float32_t v41;
float80_t v42 = v41; // 0x1e3c135
float80_t v43 = v39; // 0x1e3c138
float80_t v44 = v42 - v43; // 0x1e3c138
int32_t v45 = (float32_t)v40; // bp-52
int32_t v46 = v45; // 0x1e3c141
g2 = (float32_t)v44;
g2 = (float32_t)function_1e30d19(v46);
int32_t v47; // bp-64
int32_t v48 = v47; // 0x1e3c15b
g5 = v48;
v47 = v14 - v5;
g11++;
g2 = (float32_t)function_1e30d19(v48);
g11++;
g5 = v48;
float80_t v49 = function_1e30e1f(&v45, &v47); // 0x1e3c188
g2 = (float32_t)v49;
function_1e3e1bc();
*(float32_t *)(v4 + 69) = (float32_t)v49;
g11++;
g5 = v3;
g2 = v46;
g2 = function_1e3a768((float80_t)(int80_t)v46, (float80_t)(int80_t)v48, (float80_t)(int80_t)v3);
int32_t v50;
if (v50 <= -1 && v50 != -0x80000000) {
float32_t * v51 = (float32_t *)(v4 + 69); // 0x1e3c1af
*v51 = (float32_t)-(float80_t)*v51;
}
// 0x1e3c1b7
g2 = 0;
g5 = (float32_t)v40;
*(int32_t *)(v4 + 77) = 0;
*(int32_t *)(v4 + 21) = g2;
float32_t v52 = g5; // bp-16
int32_t v53 = &v52; // 0x1e3c1c8
g5 = v53;
g2 = (float32_t)function_1e30d19(v53);
g5 = v53;
g2 = function_1e3c004((int32_t *)&v52);
float32_t v54 = *(float32_t *)(v4 + 45); // 0x1e3c1df
g8 = v4 + 101;
float80_t v55 = (float80_t)v54 * (float80_t)v52 + (float80_t)v5; // 0x1e3c1e8
*(float32_t *)(v4 + 113) = (float32_t)v55;
float80_t v56 = (int32_t)(float32_t)v44; // 0x1e3c1f1
float80_t v57 = v43 + v56 * (float80_t)*(float32_t *)(v4 + 45); // 0x1e3c1f4
*(float32_t *)(v4 + 117) = (float32_t)v57;
float32_t v58 = *(float32_t *)(v4 + 49); // 0x1e3c1fa
g5 = v53;
float80_t v59 = (float80_t)v58 * (float80_t)v52 + (float80_t)v10; // 0x1e3c204
*(float32_t *)g8 = (float32_t)v59;
float80_t v60 = v42 + v56 * (float80_t)*(float32_t *)(v4 + 49); // 0x1e3c20f
*(float32_t *)(v4 + 105) = (float32_t)v60;
function_1e3c004((int32_t *)v53);
g2 = v53;
g2 = function_1e3c004((int32_t *)&v52);
float32_t v61 = *(float32_t *)(v4 + 45); // 0x1e3c223
int32_t v62 = v4 + 125; // 0x1e3c229
g2 = v62;
g6 = v4 + 137;
float80_t v63 = (float80_t)v61 * (float80_t)v52 + (float80_t)v5; // 0x1e3c232
*(float32_t *)v62 = (float32_t)v63;
float80_t v64 = v43 + v56 * (float80_t)*(float32_t *)(v4 + 45); // 0x1e3c23d
*(float32_t *)(v4 + 129) = (float32_t)v64;
float80_t v65 = (float80_t)*(float32_t *)(v4 + 49) * (float80_t)v52; // 0x1e3c249
int32_t v66 = *(int32_t *)(v4 + 69); // 0x1e3c24c
*(float32_t *)g6 = (float32_t)(v65 + (float80_t)v10);
float80_t v67 = v42 + v56 * (float80_t)*(float32_t *)(v4 + 49); // 0x1e3c25e
*(float32_t *)(v4 + 141) = (float32_t)v67;
if (v66 <= -1 && v66 != -0x80000000) {
// 0x1e3c269
function_1e3c017(g8, g2);
int32_t v68 = v4 + 113; // 0x1e3c271
g2 = v68;
g2 = function_1e3c017(v68, g6);
}
float80_t v69 = (float80_t)v10 - (float80_t)*(float32_t *)(v4 + 33); // 0x1e3c27d
float80_t v70 = v42 - (float80_t)*(float32_t *)(v4 + 37); // 0x1e3c283
int32_t v71 = v4 + 177; // 0x1e3c288
g2 = v71;
g5 = a4;
float80_t v72 = sqrtl(v69 * v69 + v70 * v70); // 0x1e3c297
int32_t v73; // bp-76
int32_t v74 = v73; // 0x1e3c29c
float80_t v75 = v19 + v72 + (float80_t)*(float32_t *)(a4 + 282); // 0x1e3c2a5
*(float32_t *)v71 = (float32_t)v75;
float32_t * v76 = (float32_t *)(v4 + 177); // 0x1e3c2aa
float80_t v77 = (float80_t)*v76 * (float80_t)*v76; // 0x1e3c2b0
*(float32_t *)g2 = (float32_t)v77;
g11++;
v73 = v10;
int32_t v78 = g1 ? -4 : 4; // 0x1e3c2b8
int32_t v79 = v78 + v74; // 0x1e3c2b8
int32_t v80 = v78 + v11; // 0x1e3c2b8
*(int32_t *)v79 = *(int32_t *)v80;
*(int32_t *)(v79 + v78) = *(int32_t *)(v80 + v78);
int32_t v81; // bp-88
int32_t v82 = v81; // 0x1e3c2be
g2 = v74;
v81 = v14;
int32_t v83 = v78 + v82; // 0x1e3c2c7
int32_t v84 = v78 + v15; // 0x1e3c2c7
*(int32_t *)v83 = *(int32_t *)v84;
int32_t v85 = v83 + v78; // 0x1e3c2c8
*(int32_t *)v85 = *(int32_t *)(v84 + v78);
g6 = v85 + v78;
*(int32_t *)(g9 - 4) = v82;
*(int32_t *)(g9 - 8) = v74;
g2 = (float32_t)function_1e30de3(v81, (int32_t)&g708);
g2 = (g2 & -0x10000) | (int32_t)__asm_fnstsw(g10);
g5 = v4;
*(float32_t *)(v4 + 181) = (float32_t)1.0;
g11++;
function_1e3c328();
g2 = 0;
*(int32_t *)(g4 + 201) = 0;
*(int32_t *)(g4 + 205) = g2;
*(int32_t *)(g4 + 209) = g2;
g8 = *(int32_t *)g9;
*(int32_t *)(g4 + 197) = g2;
*(int32_t *)(g4 + 81) = g2;
g2 = g4;
g3 = v1;
return g4;
}
// Address range: 0x1e3c328 - 0x1e3c405
int32_t function_1e3c328(void) {
int32_t v1 = g3; // bp-4
int32_t v2 = g5; // 0x1e3c329
int32_t v3 = v2 + 49; // 0x1e3c329
g7 = v3;
float80_t v4 = (float80_t)*(float32_t *)(v2 + 33); // 0x1e3c32c
float80_t v5 = v4 - (float80_t)*(float32_t *)(v2 + 45); // st7
g3 = v1;
float80_t v6 = (float80_t)*(float32_t *)(v2 + 153); // 0x1e3c340
uint32_t v7 = (int32_t)__asm_fnstsw(g10); // 0x1e3c346
g2 = (g2 & -0x10000) | v7;
if ((v7 / 256 & 65) != 0) {
// 0x1e3c34b
v5 = v6 - (float80_t)*(float32_t *)v3;
}
// 0x1e3c34d
g2 = (g2 & -0x10000) | (int32_t)__asm_fnstsw(g10);
float80_t v8 = v5; // 0x1e3c360
g6 = g5 + 169;
g2 = (g2 & -0x10000) | (int32_t)__asm_fnstsw(g10);
g2 = (g2 & -0x10000) | (int32_t)__asm_fnstsw(g10);
float80_t v9 = (float80_t)*(float32_t *)g6 - (float80_t)*(float32_t *)g7; // 0x1e3c393
g2 = (g2 & -0x10000) | (int32_t)__asm_fnstsw(g10);
float80_t v10 = (float80_t)*(float32_t *)(g5 + 165); // 0x1e3c3ad
g2 = (g2 & -0x10000) | (int32_t)__asm_fnstsw(g10);
float80_t v11 = v10 + (float80_t)*(float32_t *)g7; // 0x1e3c3be
g2 = (g2 & -0x10000) | (int32_t)__asm_fnstsw(g10);
float80_t v12 = (float80_t)*(float32_t *)g7; // 0x1e3c3d8
v5 = v12 + (float80_t)*(float32_t *)g6;
g2 = (g2 & -0x10000) | (int32_t)__asm_fnstsw(g10);
int32_t result = function_1e320db((int32_t)(float32_t)v9, (int32_t)(float32_t)v8, (int32_t)(float32_t)v5, (int32_t)(float32_t)v11, g5, 0); // 0x1e3c3f9
g2 = result;
g4 = (float32_t)v5;
return result;
}
// Address range: 0x1e3c405 - 0x1e3c497
int32_t function_1e3c405(int32_t a1, int32_t a2, int32_t a3, int32_t a4) {
int3_t v1 = g11; // 0x1e3c405
int32_t v2 = g5; // 0x1e3c405
float80_t v3 = (float80_t)*(float32_t *)(v2 + 77); // 0x1e3c405
g11 = v1 - 1;
g684 = v3;
int32_t v4 = *(int32_t *)(v2 + 21); // 0x1e3c409
if (v4 == 0) {
// 0x1e3c491
return g2;
}
float32_t v5 = *(float32_t *)(v2 + 73); // 0x1e3c415
float32_t v6 = *(float32_t *)(v2 + 69); // 0x1e3c418
float32_t v7 = *(float32_t *)(v2 + 209); // 0x1e3c41b
float32_t v8 = (v3 - (float80_t)v5) / (float80_t)v6 * (float80_t)v7; // bp-8
uint32_t v9 = (int32_t)__asm_fnstsw(g10); // 0x1e3c42a
g2 = (g2 & -0x10000) | v9;
if ((v9 / 256 & 1) != 0) {
// 0x1e3c42f
v8 = -v8;
}
uint32_t v10 = (int32_t)__asm_fnstsw(g10); // 0x1e3c440
g2 = (g2 & -0x10000) | v10;
float32_t v11; // 0x1e3c45a
if ((v10 / 256 & 1) == 0) {
float32_t v12 = *(float32_t *)(g5 + 201); // 0x1e3c451
v11 = ((float80_t)(float32_t)a1 - (float80_t)v12) / (float80_t)v8;
} else {
v11 = 1.0f;
}
float32_t v13; // 0x1e3c472
if ((int32_t)v11 <= -1 && (int32_t)v11 != -0x80000000) {
v13 = 0.0f;
} else {
v13 = v11;
}
// 0x1e3c46d
g2 = 0x3f800000;
float32_t v14; // 0x1e3c485
if ((int32_t)v13 > 0x3f800000) {
// 0x1e3c477
v14 = 1.0f;
} else {
v14 = v13;
}
// 0x1e3c47a
float32_t v15; // 0x1e3c48e
if (v4 == 2) {
// 0x1e3c47f
v15 = 1.0f - v14;
} else {
v15 = v14;
}
// 0x1e3c48b
g11 = v1 - 1;
g684 = (float80_t)v15 * (float80_t)*(float32_t *)(g5 + 69);
// 0x1e3c491
return 0x3f800000;
}
// Address range: 0x1e3c497 - 0x1e3c519
int32_t function_1e3c497(void) {
// 0x1e3c497
g8 = g5;
int32_t v1 = *(int32_t *)&g571; // 0x1e3c4a011
int32_t v2 = *(int32_t *)&g570; // 0x1e3c4a612
float32_t v3 = g569; // 0x1e3c4ac
g2 = v3;
function_1e3a8ce((int32_t)&g588, (int32_t)v3, v2, v1, (int32_t)g572);
int32_t v4 = *(int32_t *)&g576; // 0x1e3c4bc13
int32_t v5 = *(int32_t *)&g575; // 0x1e3c4c214
g2 = g574;
int32_t v6 = *(int32_t *)&g573; // 0x1e3c4ce15
int32_t v7 = function_1e3a8ce((int32_t)&g591, v6, (int32_t)g574, v5, v4); // 0x1e3c4d9
g2 = v7;
int32_t v8 = *(int32_t *)(g8 + 53); // 0x1e3c4de
g5 = v8;
g585 = v8;
g583 = (float32_t)*(int32_t *)(g8 + 33);
g584 = (float32_t)*(int32_t *)(g8 + 37);
g2 = g581;
int32_t v9 = *(int32_t *)(g8 + 57); // 0x1e3c503
g5 = v9;
g579 = v9;
*(int32_t *)&g577 = *(int32_t *)&g580;
g578 = g581;
return g581;
}
// Address range: 0x1e3c519 - 0x1e3c5f3
int32_t function_1e3c519(int32_t a1) {
int32_t v1 = g5; // 0x1e3c51c
int32_t v2 = v1; // ebx
g2 = function_1e3c405(a1, g3, g6, g8);
int32_t v3 = v1 + 101; // esi
g11++;
int32_t v4 = function_1e30e36((int32_t)(float32_t)g684, &g586, &g587); // 0x1e3c53b
g2 = v4;
g5 = &g569;
g3 = &g571;
*(int32_t *)&g569 = *(int32_t *)v3;
int32_t v5 = g1 ? -4 : 4; // 0x1e3c54c
int32_t v6 = v5 + (int32_t)&g569; // 0x1e3c54c
int32_t v7 = v5 + v3; // 0x1e3c54c
*(int32_t *)v6 = *(int32_t *)v7;
*(int32_t *)(v6 + v5) = *(int32_t *)(v7 + v5);
int32_t v8 = v2 + 113; // 0x1e3c54f
int32_t v9 = g3; // 0x1e3c552
*(int32_t *)v9 = *(int32_t *)v8;
int32_t v10 = v9 + v5; // 0x1e3c554
int32_t v11 = v8 + v5; // 0x1e3c554
*(int32_t *)v10 = *(int32_t *)v11;
*(int32_t *)(v10 + v5) = *(int32_t *)(v11 + v5);
int32_t v12 = v2 + 125; // 0x1e3c557
*(int32_t *)&g573 = *(int32_t *)v12;
int32_t v13 = v5 + (int32_t)&g573; // 0x1e3c55f
int32_t v14 = v12 + v5; // 0x1e3c55f
*(int32_t *)v13 = *(int32_t *)v14;
*(int32_t *)(v13 + v5) = *(int32_t *)(v14 + v5);
int32_t v15 = v2 + 137; // 0x1e3c562
*(int32_t *)&g575 = *(int32_t *)v15;
int32_t v16 = v5 + (int32_t)&g575; // 0x1e3c56d
int32_t v17 = v15 + v5; // 0x1e3c56d
*(int32_t *)v16 = *(int32_t *)v17;
*(int32_t *)(v5 + v16) = *(int32_t *)(v5 + v17);
int32_t v18 = v2 + 153; // 0x1e3c570
*(int32_t *)&g580 = *(int32_t *)v18;
int32_t v19 = v5 + (int32_t)&g580; // 0x1e3c57b
int32_t v20 = v18 + v5; // 0x1e3c57b
*(int32_t *)v19 = *(int32_t *)v20;
*(int32_t *)(v19 + v5) = *(int32_t *)(v20 + v5);
int32_t v21 = v2 + 33; // 0x1e3c57e
v2 = v21;
int32_t v22 = g587; // 0x1e3c581
g2 = v22;
function_1e30d5c(g5, g586, v22, v21);
int32_t v23 = g586; // 0x1e3c595
g2 = v23;
function_1e30d5c(g3, v23, g587, v21);
int32_t v24 = g586; // 0x1e3c5a8
g2 = v24;
function_1e30d5c((int32_t)&g580, v24, g587, v2);
int32_t v25 = g586; // 0x1e3c5c5
g2 = v25;
function_1e30d5c((int32_t)&g573, v25, g587, v2);
int32_t v26 = g586; // 0x1e3c5d6
g2 = v26;
int32_t v27 = g587; // 0x1e3c5db
int32_t result = function_1e30d5c((int32_t)&g575, v26, v27, v2); // 0x1e3c5e7
g2 = result;
g3 = &g575;
g6 = v26;
g8 = v27;
g4 = v2;
return result;
}
// Address range: 0x1e3c5f3 - 0x1e3c76c
int32_t function_1e3c5f3(float80_t a1, float80_t a2) {
int32_t v1 = g3; // bp-4
g3 = v1;
int32_t v2 = -1; // edi
int32_t v3 = (float32_t)a1; // esi
int32_t v4 = function_1e3a97f((int32_t)(float32_t)a1, (int32_t)&g588); // 0x1e3c610
g2 = v4;
float32_t v5 = g684; // 0x1e3c61b
g11++;
uint32_t v6 = (int32_t)__asm_fnstsw(g10); // 0x1e3c61e
g2 = (g2 & -0x10000) | v6;
if ((v6 / 256 & 1) != 0) {
// 0x1e3c623
g2 = v5;
v2 = 0;
} else {
v5 = 1.0e+9f;
}
// 0x1e3c62b
g2 = function_1e3a828(v3, (int32_t)&g583);
float32_t v7 = g684; // 0x1e3c639
g11++;
uint32_t v8 = (int32_t)__asm_fnstsw(g10); // 0x1e3c63c
g2 = (g2 & -0x10000) | v8;
if ((v8 / 256 & 1) != 0) {
// 0x1e3c641
g2 = v7;
v2 = 2;
} else {
v7 = v5;
}
// 0x1e3c64c
g2 = function_1e3a828(v3, (int32_t)&g577);
float32_t v9 = g684; // 0x1e3c65a
g11++;
uint32_t v10 = (int32_t)__asm_fnstsw(g10); // 0x1e3c65d
g2 = (g2 & -0x10000) | v10;
if ((v10 / 256 & 1) != 0) {
// 0x1e3c662
g2 = v9;
v2 = 3;
} else {
v9 = v7;
}
// 0x1e3c66d
g2 = function_1e3a97f(v3, (int32_t)&g591);
float32_t v11 = g684; // 0x1e3c67b
int3_t v12 = g11 + 1; // fpu_stat_TOP
uint32_t v13 = (int32_t)__asm_fnstsw(g10); // 0x1e3c67e
int32_t v14 = (g2 & -0x10000) | v13; // 0x1e3c67e
g2 = v14;
int32_t v15; // 0x1e3c76923
if ((v13 / 256 & 1) != 0) {
// 0x1e3c683
g2 = v11;
v2 = 1;
v15 = v11;
} else {
v15 = v14;
v11 = v9;
}
float32_t * v16 = (float32_t *)(int32_t)(float32_t)a2; // 0x1e3c68e
g5 = (float32_t)a2;
float80_t v17;
float80_t v18;
int32_t result; // 0x1e3c769
if ((int32_t)(float32_t)a2 == 0) {
goto lab_0x1e3c761;
} else {
if ((int32_t)v11 < 0x4e6e6b28) {
if (v2 == -1) {
result = v15;
v18 = 1.0e+9L;
goto lab_0x1e3c764;
} else {
if (v2 == 0) {
int32_t v19 = (int32_t)(float32_t)a2 + 12; // 0x1e3c6ce
*(int32_t *)v19 = (int32_t)g588;
int32_t v20 = g1 ? -4 : 4; // 0x1e3c6d6
int32_t v21 = v20 + v19; // 0x1e3c6d6
int32_t v22 = v20 + (int32_t)&g588; // 0x1e3c6d6
*(int32_t *)v21 = *(int32_t *)v22;
*(int32_t *)(v21 + v20) = *(int32_t *)(v22 + v20);
*(int32_t *)(int32_t)(float32_t)a2 = g590;
int32_t v23 = (int32_t)(float32_t)a2 + v20; // 0x1e3c6e0
int32_t v24 = (int32_t)&g590 + v20; // 0x1e3c6e0
*(int32_t *)v23 = *(int32_t *)v24;
*(int32_t *)(v23 + v20) = *(int32_t *)(v24 + v20);
goto lab_0x1e3c761;
} else {
if (v2 == 1) {
int32_t v25 = (int32_t)(float32_t)a2 + 12; // 0x1e3c6e5
*(int32_t *)v25 = (int32_t)g591;
int32_t v26 = g1 ? -4 : 4; // 0x1e3c6ed
int32_t v27 = v26 + v25; // 0x1e3c6ed
int32_t v28 = v26 + (int32_t)&g591; // 0x1e3c6ed
*(int32_t *)v27 = *(int32_t *)v28;
*(int32_t *)(v27 + v26) = *(int32_t *)(v28 + v26);
*(int32_t *)(int32_t)(float32_t)a2 = g593;
int32_t v29 = (int32_t)(float32_t)a2 + v26; // 0x1e3c6f7
int32_t v30 = (int32_t)&g593 + v26; // 0x1e3c6f7
*(int32_t *)v29 = *(int32_t *)v30;
*(int32_t *)(v29 + v26) = *(int32_t *)(v30 + v26);
goto lab_0x1e3c761;
} else {
if (v2 == 2) {
float32_t v31 = *(float32_t *)(v3 + 12); // 0x1e3c6fc
float80_t v32 = v11; // 0x1e3c6ff
g2 = (int32_t)(float32_t)a2 + 12;
float32_t v33 = *(float32_t *)v3; // 0x1e3c705
*v16 = (float32_t)(v32 * (float80_t)v31 + (float80_t)v33);
float32_t v34 = *(float32_t *)(v3 + 16); // 0x1e3c709
float32_t v35 = *(float32_t *)(v3 + 4); // 0x1e3c70f
float32_t * v36 = (float32_t *)((int32_t)(float32_t)a2 + 4); // 0x1e3c712
*v36 = (float32_t)(v32 * (float80_t)v34 + (float80_t)v35);
*(float32_t *)g2 = *v16 - g583;
v17 = (float80_t)*v36 - (float80_t)g584;
goto lab_0x1e3c756;
} else {
if (v2 == 3) {
float32_t v37 = *(float32_t *)(v3 + 12); // 0x1e3c72a
float80_t v38 = v11; // 0x1e3c72d
g2 = (int32_t)(float32_t)a2 + 12;
float32_t v39 = *(float32_t *)v3; // 0x1e3c733
*v16 = (float32_t)(v38 * (float80_t)v37 + (float80_t)v39);
float32_t v40 = *(float32_t *)(v3 + 16); // 0x1e3c737
float32_t v41 = *(float32_t *)(v3 + 4); // 0x1e3c73d
float32_t * v42 = (float32_t *)((int32_t)(float32_t)a2 + 4); // 0x1e3c740
*v42 = (float32_t)(v38 * (float80_t)v40 + (float80_t)v41);
*(float32_t *)g2 = *v16 - g577;
v17 = (float80_t)*v42 - (float80_t)g578;
goto lab_0x1e3c756;
} else {
goto lab_0x1e3c761;
}
}
}
}
}
} else {
goto lab_0x1e3c761;
}
}
lab_0x1e3c761:
// 0x1e3c761
result = g2;
v18 = v11;
goto lab_0x1e3c764;
lab_0x1e3c764:
// 0x1e3c764
g684 = v18;
g6 = *(int32_t *)g9;
g8 = *(int32_t *)(g9 + 4);
g3 = v1;
return result;
lab_0x1e3c756:
// 0x1e3c756
*(float32_t *)((int32_t)(float32_t)a2 + 16) = (float32_t)v17;
g11 = v12;
g2 = (float32_t)function_1e30d19(g2);
goto lab_0x1e3c761;
}