#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; }