Files
3d-pinball-space-cadet/pinball_14.c
T

2363 lines
94 KiB
C

#include "pinball.h"
// Address range: 0x1e30f8d - 0x1e30fc1
int32_t function_1e30f8d(int32_t a1, int32_t a2) {
int32_t v1 = *(int32_t *)(g5 + 32); // 0x1e30f8e
g2 = v1;
int32_t v2 = g8; // 0x1e30f91
int32_t v3 = g6; // 0x1e30f94
if (v1 == 0) {
// 0x1e30fbd
g6 = v3;
g8 = v2;
return 0;
}
int32_t v4 = v1 - 4; // 0x1e30f97
g6 = v4;
int32_t v5 = *(int32_t *)v4; // 0x1e30f9a
int32_t v6 = 16 * v5; // 0x1e30f9e
g5 = v6;
int32_t v7 = v5 - 1; // 0x1e30fa1
g8 = v7;
int32_t v8; // 0x1e30fb4
if (v7 >= 0) {
int32_t v9 = v6 + v1 - 16; // 0x1e30fa7
g4 = v9;
g5 = v9;
g2 = function_1e30f07();
int32_t v10 = g8 - 1; // 0x1e30fb1
g8 = v10;
while (v10 >= 0) {
// 0x1e30fa7
v9 = g4 - 16;
g4 = v9;
g5 = v9;
g2 = function_1e30f07();
v10 = g8 - 1;
g8 = v10;
}
// 0x1e30fb4
v8 = g6;
} else {
v8 = v4;
}
int32_t result = function_1e3df60(v8); // 0x1e30fb5
g2 = result;
// 0x1e30fbd
g6 = v3;
g8 = v2;
return result;
}
// Address range: 0x1e30fc1 - 0x1e311c3
int32_t function_1e30fc1(int32_t a1, int32_t a2, int32_t a3, int32_t a4, int32_t a5) {
// 0x1e30fc1
int32_t v1; // bp-32
int32_t v2 = &v1; // 0x1e30fc4
int32_t v3 = g8; // 0x1e30fc8
int32_t v4 = g6; // 0x1e30fc9
g8 = a1;
int32_t v5 = g5; // 0x1e30fcd
int32_t v6 = v5 + 8; // 0x1e30fcd
g4 = v6;
g6 = v5;
int32_t v7 = *(int32_t *)(a1 + 42); // 0x1e30fd2
g2 = v7;
float80_t v8 = v7; // 0x1e30fdb
float32_t v9 = *(float32_t *)(v5 + 24); // 0x1e30fde
float32_t v10 = *(float32_t *)v6; // 0x1e30fe1
g2 = function_1e3dbc0((int32_t)(float32_t)((v8 - (float80_t)v9) * (float80_t)v10), v4, v3);
g2 = *(int32_t *)(g6 + 16) - 1;
g11++;
uint32_t v11 = (int32_t)__asm_fnstsw(g10); // 0x1e30ffa
g2 = g2 & -0x10000 | v11;
int3_t v12; // 0x1e31021
if ((v11 / 256 & 65) == 0) {
float32_t v13 = *(float32_t *)(g6 + 24); // 0x1e3100e
float32_t v14 = *(float32_t *)g4; // 0x1e31014
int32_t v15 = function_1e3dbc0((int32_t)(float32_t)((v8 - (float80_t)v13) * (float80_t)v14), (int32_t)&g708, (int32_t)&g708); // 0x1e31019
g2 = v15;
v12 = g11;
} else {
// 0x1e30fff
g2 = *(int32_t *)(g6 + 16) - 1;
v12 = g11 - 1;
}
// 0x1e31021
g11 = v12 + 1;
uint32_t v16 = (int32_t)__asm_fnstsw(g10); // 0x1e31029
g2 = g2 & -0x10000 | v16;
int3_t v17; // 0x1e31090
if ((v16 / 256 & 1) == 0) {
// 0x1e31088
g2 = 0;
v17 = g11;
} else {
float32_t v18 = *(float32_t *)(g6 + 24); // 0x1e31031
float32_t v19 = *(float32_t *)g4; // 0x1e31037
int32_t v20 = function_1e3dbc0((int32_t)(float32_t)((v8 - (float80_t)v18) * (float80_t)v19), (int32_t)&g708, (int32_t)&g708); // 0x1e3103c
g2 = v20;
int32_t v21 = *(int32_t *)(g6 + 16) - 1; // 0x1e31047
g2 = v21;
g11++;
uint32_t v22 = (int32_t)__asm_fnstsw(g10); // 0x1e31050
g2 = g2 & -0x10000 | v22;
int3_t v23; // 0x1e31077
float80_t v24; // 0x1e31077
if ((v22 / 256 & 65) == 0) {
float32_t v25 = *(float32_t *)(g6 + 24); // 0x1e31064
float32_t v26 = *(float32_t *)g4; // 0x1e3106a
int32_t v27 = function_1e3dbc0((int32_t)(float32_t)((v8 - (float80_t)v25) * (float80_t)v26), (int32_t)&g708, (int32_t)&g708); // 0x1e3106f
g2 = v27;
v24 = g684;
v23 = g11;
} else {
int32_t v28 = *(int32_t *)(g6 + 16) - 1; // 0x1e31058
g2 = v28;
v24 = v28;
v23 = g11 - 1;
}
// 0x1e31077
g2 = v21;
g5 = (float32_t)v24;
v17 = v23 + 1;
}
// 0x1e31090
g11 = v17 - 1;
int32_t v29 = __ftol(); // 0x1e31093
g2 = v29;
g4 = v29;
int32_t v30 = *(int32_t *)(g8 + 46); // 0x1e3109d
g2 = v30;
float80_t v31 = v30; // 0x1e310a3
int32_t v32 = g6; // 0x1e310a6
float32_t v33 = *(float32_t *)(v32 + 28); // 0x1e310a6
float32_t v34 = *(float32_t *)(v32 + 12); // 0x1e310a9
*(float64_t *)(g9 - 8) = (float64_t)((v31 - (float80_t)v33) * (float80_t)v34);
g2 = function_1e3dbc0(v30, (int32_t)&g708, (int32_t)&g708);
g2 = *(int32_t *)(g6 + 20) - 1;
g11++;
uint32_t v35 = (int32_t)__asm_fnstsw(g10); // 0x1e310c3
g2 = g2 & -0x10000 | v35;
int3_t v36; // 0x1e310eb
if ((v35 / 256 & 65) == 0) {
int32_t v37 = g6; // 0x1e310d7
float32_t v38 = *(float32_t *)(v37 + 28); // 0x1e310d7
float32_t v39 = *(float32_t *)(v37 + 12); // 0x1e310dd
*(float64_t *)(g9 - 8) = (float64_t)((v31 - (float80_t)v38) * (float80_t)v39);
int32_t v40 = function_1e3dbc0((int32_t)&g708, (int32_t)&g708, (int32_t)&g708); // 0x1e310e3
g2 = v40;
v36 = g11;
} else {
// 0x1e310c8
g2 = *(int32_t *)(g6 + 20) - 1;
v36 = g11 - 1;
}
// 0x1e310eb
g11 = v36 + 1;
uint32_t v41 = (int32_t)__asm_fnstsw(g10); // 0x1e310f3
g2 = g2 & -0x10000 | v41;
int3_t v42; // 0x1e3115c
if ((v41 / 256 & 1) == 0) {
// 0x1e31154
g2 = 0;
v42 = g11;
} else {
int32_t v43 = g6; // 0x1e310fb
float32_t v44 = *(float32_t *)(v43 + 28); // 0x1e310fb
float32_t v45 = *(float32_t *)(v43 + 12); // 0x1e31101
*(float64_t *)(g9 - 8) = (float64_t)((v31 - (float80_t)v44) * (float80_t)v45);
int32_t v46 = function_1e3dbc0((int32_t)&g708, (int32_t)&g708, (int32_t)&g708); // 0x1e31107
g2 = v46;
int32_t v47 = *(int32_t *)(g6 + 20) - 1; // 0x1e31112
g2 = v47;
g11++;
uint32_t v48 = (int32_t)__asm_fnstsw(g10); // 0x1e3111b
g2 = g2 & -0x10000 | v48;
int3_t v49; // 0x1e31143
float80_t v50; // 0x1e31143
if ((v48 / 256 & 65) == 0) {
int32_t v51 = g6; // 0x1e3112f
float32_t v52 = *(float32_t *)(v51 + 28); // 0x1e3112f
float32_t v53 = *(float32_t *)(v51 + 12); // 0x1e31135
*(float64_t *)(g9 - 8) = (float64_t)((v31 - (float80_t)v52) * (float80_t)v53);
int32_t v54 = function_1e3dbc0((int32_t)&g708, (int32_t)&g708, (int32_t)&g708); // 0x1e3113b
g2 = v54;
v50 = g684;
v49 = g11;
} else {
int32_t v55 = *(int32_t *)(g6 + 20) - 1; // 0x1e31123
g2 = v55;
v50 = v55;
v49 = g11 - 1;
}
// 0x1e31143
g2 = v47;
g5 = (float32_t)v50;
v42 = v49 + 1;
}
// 0x1e3115c
g11 = v42 - 1;
int32_t v56 = __ftol(); // 0x1e3115f
g2 = v56;
int32_t v57 = 16 * (g4 + *(int32_t *)(g6 + 16) * v56); // 0x1e3116a
g2 = v57;
int32_t v58 = *(int32_t *)(g6 + 32) + v57; // 0x1e3116d
g2 = v58;
int32_t v59 = *(int32_t *)(v58 + 12); // 0x1e31172
g5 = v59;
int32_t v60 = *(int32_t *)(v59 + 4) - 1; // 0x1e31178
g2 = v60;
int32_t result; // 0x1e311c0
if (v60 >= 0) {
int32_t v61 = 4 * v60; // 0x1e3117b
while (true) {
int32_t v62 = *(int32_t *)(v58 + 12); // 0x1e31182
g2 = v62;
int32_t v63 = *(int32_t *)(v61 + 8 + v62); // 0x1e31185
g5 = v63;
int32_t v64 = *(int32_t *)v63; // 0x1e31189
g7 = v64;
int32_t v65; // 0x1e311b0
if (*(char *)v64 != 0) {
int32_t v66 = *(int32_t *)(v63 + 4); // 0x1e31190
g2 = v66;
if ((*(int32_t *)(g8 + 110) & v66) != 0) {
// 0x1e31198
g5 = *(int32_t *)(v63 + 8);
g2 = v2;
*(int32_t *)(g9 - 4) = v2;
*(int32_t *)(g9 - 8) = g8;
int32_t v67 = *(int32_t *)g5; // 0x1e311a0
g2 = v67;
if (v67 != 0) {
// 0x1e311a9
g2 = v2;
*(int32_t *)(g9 - 12) = v2;
*(int32_t *)(g9 - 16) = a2;
v65 = function_1e30cff((int32_t)&g708, &g708);
g2 = v65;
} else {
v65 = 0;
}
} else {
v65 = v66;
}
} else {
v65 = v62;
}
int32_t v68 = v61 - 4; // 0x1e311b5
if (v68 < 0) {
result = v65;
// break -> 0x1e311ba
break;
}
// 0x1e311b5
v61 = v68;
}
} else {
result = v60;
}
// 0x1e311ba
g6 = *(int32_t *)g9;
g8 = *(int32_t *)(g9 + 4);
g4 = *(int32_t *)(g9 + 8);
return result;
}
// Address range: 0x1e311c3 - 0x1e31324
int32_t function_1e311c3(int32_t a1, int32_t a2, int32_t a3, int32_t a4, int32_t a5, int32_t a6, int32_t a7) {
// 0x1e311c3
g2 = a1;
int32_t v1 = g6; // bp-32
int32_t v2 = &v1; // 0x1e311d1
int32_t v3; // ebx
int32_t v4;
int32_t v5;
int32_t result;
int32_t v6;
int32_t v7; // 0x1e312d8
int32_t v8; // 0x1e3131b
int32_t v9; // 0x1e3121f
int32_t v10; // 0x1e31206
int32_t v11; // 0x1e31238
if (a1 >= 0) {
if (a1 < 10) {
// 0x1e311e1
g7 = a2;
if (a2 >= 0) {
if (a2 < 15) {
int32_t v12 = g5; // 0x1e311f5
g7 = a7;
int32_t v13 = 16 * (*(int32_t *)(v12 + 16) * a2 + a1); // 0x1e31200
int32_t v14 = *(int32_t *)(v12 + 32) + v13; // 0x1e31203
v10 = 4 * a7 + 36 + v12;
g5 = v10;
int32_t * v15 = (int32_t *)(v14 + 4); // 0x1e31210
int32_t v16 = *v15; // 0x1e31210
g2 = v16;
v3 = 1;
v9 = 4 * *(int32_t *)(v16 + 4) - 4;
g2 = v9;
if (v9 >= 0) {
v4 = a7;
while (true) {
lab_0x1e3122f:
// 0x1e3122f
g2 = v14;
g7 = v9;
int32_t v17 = *v15; // 0x1e31235
g5 = v17;
v11 = *(int32_t *)(v9 + 8 + v17);
if (*(char *)(v11 + 12) != 0) {
v5 = v4;
v6 = v10;
goto lab_0x1e3130f;
} else {
int32_t v18 = *(int32_t *)(v11 + 8); // 0x1e31246
g2 = v18;
if (*(char *)v18 == 0) {
v5 = v4;
v6 = v10;
goto lab_0x1e3130f;
} else {
// 0x1e31252
g2 = a5;
int32_t v19 = *(int32_t *)(a5 + 40); // 0x1e31255
g5 = v19;
if ((*(int32_t *)(v11 + 17) & v19) == 0) {
v5 = v4;
v6 = v10;
goto lab_0x1e3130f;
} else {
int32_t v20 = a6 + 134; // 0x1e31261
g5 = v20;
int32_t * v21 = (int32_t *)v20; // 0x1e31267
int32_t v22 = *v21; // 0x1e31267
g2 = v22;
if (v22 != 0) {
// 0x1e31271
if (*(int32_t *)(a6 + 114) != v11) {
if (v22 != v3) {
// 0x1e31282
if (*(int32_t *)(a6 + 118) != v11) {
if (v22 != 2) {
// 0x1e31294
if (*(int32_t *)(a6 + 122) != v11) {
if (v22 != 3) {
// 0x1e312a6
if (*(int32_t *)(a6 + 126) != v11) {
if (v22 != 4) {
// 0x1e312b8
if (*(int32_t *)(a6 + 130) != v11) {
// 0x1e312c4
g2 = 0;
if (v22 == 5) {
goto lab_0x1e312dc;
} else {
int32_t v23 = *v21 - v11 < v3; // 0x1e312d4
g2 = v23;
v7 = v23;
goto lab_0x1e312d8_2;
}
} else {
// 0x1e312c0
g2 = v3;
v7 = v3;
goto lab_0x1e312d8_2;
}
} else {
// 0x1e312b4
g2 = 0;
goto lab_0x1e312dc;
}
} else {
// 0x1e312ab
g2 = v3;
v7 = v3;
goto lab_0x1e312d8_2;
}
} else {
// 0x1e312a2
g2 = 0;
goto lab_0x1e312dc;
}
} else {
// 0x1e31299
g2 = v3;
v7 = v3;
goto lab_0x1e312d8_2;
}
} else {
// 0x1e31290
g2 = 0;
goto lab_0x1e312dc;
}
} else {
// 0x1e31287
g2 = v3;
v7 = v3;
goto lab_0x1e312d8_2;
}
} else {
// 0x1e3127e
g2 = 0;
goto lab_0x1e312dc;
}
} else {
// 0x1e31276
g2 = v3;
v7 = v3;
goto lab_0x1e312d8_2;
}
} else {
// 0x1e3126d
g2 = 0;
goto lab_0x1e312dc;
}
}
}
}
}
lab_0x1e31225:
// 0x1e31225
v8 = g9;
result = v5;
} else {
v8 = v2;
result = a7;
}
} else {
v8 = v2;
result = a7;
}
} else {
v8 = v2;
result = a7;
}
} else {
v8 = v2;
result = a7;
}
} else {
v8 = v2;
result = a7;
}
// 0x1e31318
g2 = result;
g6 = *(int32_t *)v8;
g8 = *(int32_t *)(v8 + 4);
g4 = *(int32_t *)(v8 + 8);
return result;
lab_0x1e3130f:;
int32_t v24 = v9 - 4; // 0x1e3130f
if (v24 < 0) {
// break -> 0x1e31225
goto lab_0x1e31225;
}
v9 = v24;
v10 = v6;
v4 = v5;
goto lab_0x1e3122f;
lab_0x1e312d8_2:
if (v7 != 0) {
v5 = v4;
v6 = v10;
goto lab_0x1e3130f;
} else {
goto lab_0x1e312dc;
}
lab_0x1e312dc:
// 0x1e312dc
g5 = v10;
g2 = *(int32_t *)v11;
*(int32_t *)(g9 - 4) = a5;
*(int32_t *)g5 = v11;
int32_t v25 = v4 + 1; // 0x1e312e6
*(char *)(v11 + 12) = (char)v3;
int32_t v26 = v10 + 4; // 0x1e312ee
g5 = a3;
g11++;
uint32_t v27 = (int32_t)__asm_fnstsw(g10); // 0x1e312fd
g2 = g2 & -0x10000 | v27;
if ((v27 / 256 & 1) != 0) {
// 0x1e31302
g5 = (float32_t)g684;
g2 = a3;
g7 = a4;
*(int32_t *)a3 = (int32_t)(float32_t)g684;
*(int32_t *)g7 = v11;
v5 = v25;
v6 = v26;
} else {
v5 = v25;
v6 = v26;
}
goto lab_0x1e3130f;
}
// Address range: 0x1e31324 - 0x1e319ac
float80_t function_1e31324(int32_t * a1, int32_t a2, int32_t * a3) {
int32_t v1 = (int32_t)a3;
int32_t v2 = (int32_t)a1;
float32_t result = 1.0e+9f; // bp-36
int32_t v3 = g8; // 0x1e31339
int32_t v4 = g6; // 0x1e3133a
int32_t v5 = g5; // 0x1e3133b
g8 = v5;
g5 = v2;
g6 = v5 + 16;
int32_t v6 = *a1; // 0x1e31346
g7 = v6;
float80_t v7 = v6; // 0x1e3134b
float80_t v8 = v7 - (float80_t)*(float32_t *)(v5 + 24); // 0x1e3134e
float80_t v9 = v8 * (float80_t)*(float32_t *)(v5 + 8); // 0x1e31351
g2 = function_1e3dbc0((int32_t)(float32_t)v9, v4, v3);
g2 = *(int32_t *)g6 - 1;
g11++;
uint32_t v10 = (int32_t)__asm_fnstsw(g10); // 0x1e3136a
g2 = g2 & -0x10000 | v10;
int3_t v11; // 0x1e31391
if ((v10 / 256 & 65) == 0) {
int32_t v12 = g8; // 0x1e3137d
float80_t v13 = v7 - (float80_t)*(float32_t *)(v12 + 24); // 0x1e3137d
float80_t v14 = v13 * (float80_t)*(float32_t *)(v12 + 8); // 0x1e31383
int32_t v15 = function_1e3dbc0((int32_t)(float32_t)v14, (int32_t)&g708, (int32_t)&g708); // 0x1e31389
g2 = v15;
v11 = g11;
} else {
// 0x1e3136f
g2 = *(int32_t *)g6 - 1;
v11 = g11 - 1;
}
// 0x1e31391
g11 = v11 + 1;
uint32_t v16 = (int32_t)__asm_fnstsw(g10); // 0x1e31399
g2 = g2 & -0x10000 | v16;
int3_t v17; // 0x1e31400
if ((v16 / 256 & 1) == 0) {
// 0x1e313f8
g2 = 0;
v17 = g11;
} else {
int32_t v18 = g8; // 0x1e313a1
float80_t v19 = v7 - (float80_t)*(float32_t *)(v18 + 24); // 0x1e313a1
float80_t v20 = v19 * (float80_t)*(float32_t *)(v18 + 8); // 0x1e313a7
int32_t v21 = function_1e3dbc0((int32_t)(float32_t)v20, (int32_t)&g708, (int32_t)&g708); // 0x1e313ad
g2 = v21;
g2 = *(int32_t *)g6 - 1;
g11++;
uint32_t v22 = (int32_t)__asm_fnstsw(g10); // 0x1e313c0
g2 = g2 & -0x10000 | v22;
int3_t v23; // 0x1e313e7
float80_t v24; // 0x1e313e7
if ((v22 / 256 & 65) == 0) {
int32_t v25 = g8; // 0x1e313d3
float80_t v26 = v7 - (float80_t)*(float32_t *)(v25 + 24); // 0x1e313d3
float80_t v27 = v26 * (float80_t)*(float32_t *)(v25 + 8); // 0x1e313d9
int32_t v28 = function_1e3dbc0((int32_t)(float32_t)v27, (int32_t)&g708, (int32_t)&g708); // 0x1e313df
g2 = v28;
v24 = g684;
v23 = g11;
} else {
int32_t v29 = *(int32_t *)g6 - 1; // 0x1e313c7
g2 = v29;
v24 = v29;
v23 = g11 - 1;
}
// 0x1e313e7
float32_t v30;
g2 = v30;
g5 = (float32_t)v24;
v17 = v23 + 1;
}
// 0x1e31400
g11 = v17 - 1;
g4 = g8 + 20;
int32_t v31 = __ftol(); // 0x1e31406
g2 = v2;
int32_t v32 = v2 + 4; // 0x1e31414
int32_t v33 = *(int32_t *)v32; // 0x1e31414
g5 = v33;
float80_t v34 = v33; // 0x1e3141a
int32_t v35 = g8; // 0x1e3141d
float80_t v36 = v34 - (float80_t)*(float32_t *)(v35 + 28); // 0x1e3141d
float80_t v37 = v36 * (float80_t)*(float32_t *)(v35 + 12); // 0x1e31420
*(float64_t *)(g9 - 8) = (float64_t)v37;
g2 = function_1e3dbc0(v33, (int32_t)&g708, (int32_t)&g708);
g2 = *(int32_t *)g4 - 1;
g11++;
uint32_t v38 = (int32_t)__asm_fnstsw(g10); // 0x1e31439
g2 = g2 & -0x10000 | v38;
int3_t v39; // 0x1e31460
if ((v38 / 256 & 65) == 0) {
int32_t v40 = g8; // 0x1e3144c
float80_t v41 = v34 - (float80_t)*(float32_t *)(v40 + 28); // 0x1e3144c
float80_t v42 = v41 * (float80_t)*(float32_t *)(v40 + 12); // 0x1e31452
*(float64_t *)(g9 - 8) = (float64_t)v42;
int32_t v43 = function_1e3dbc0((int32_t)&g708, (int32_t)&g708, (int32_t)&g708); // 0x1e31458
g2 = v43;
v39 = g11;
} else {
// 0x1e3143e
g2 = *(int32_t *)g4 - 1;
v39 = g11 - 1;
}
// 0x1e31460
g11 = v39 + 1;
uint32_t v44 = (int32_t)__asm_fnstsw(g10); // 0x1e31468
g2 = g2 & -0x10000 | v44;
int3_t v45; // 0x1e314cf
if ((v44 / 256 & 1) == 0) {
// 0x1e314c7
g2 = 0;
v45 = g11;
} else {
int32_t v46 = g8; // 0x1e31470
float80_t v47 = v34 - (float80_t)*(float32_t *)(v46 + 28); // 0x1e31470
float80_t v48 = v47 * (float80_t)*(float32_t *)(v46 + 12); // 0x1e31476
*(float64_t *)(g9 - 8) = (float64_t)v48;
int32_t v49 = function_1e3dbc0((int32_t)&g708, (int32_t)&g708, (int32_t)&g708); // 0x1e3147c
g2 = v49;
g2 = *(int32_t *)g4 - 1;
g11++;
uint32_t v50 = (int32_t)__asm_fnstsw(g10); // 0x1e3148f
g2 = g2 & -0x10000 | v50;
int3_t v51; // 0x1e314b6
float80_t v52; // 0x1e314b6
if ((v50 / 256 & 65) == 0) {
int32_t v53 = g8; // 0x1e314a2
float80_t v54 = v34 - (float80_t)*(float32_t *)(v53 + 28); // 0x1e314a2
float80_t v55 = v54 * (float80_t)*(float32_t *)(v53 + 12); // 0x1e314a8
*(float64_t *)(g9 - 8) = (float64_t)v55;
int32_t v56 = function_1e3dbc0((int32_t)&g708, (int32_t)&g708, (int32_t)&g708); // 0x1e314ae
g2 = v56;
v52 = g684;
v51 = g11;
} else {
int32_t v57 = *(int32_t *)g4 - 1; // 0x1e31496
g2 = v57;
v52 = v57;
v51 = g11 - 1;
}
// 0x1e314b6
g5 = (float32_t)v52;
v45 = v51 + 1;
}
// 0x1e314cf
g11 = v45 - 1;
int32_t v58 = __ftol(); // 0x1e314d2
g2 = v2;
float32_t * v59 = (float32_t *)(v2 + 24); // 0x1e314e3
float80_t v60 = (float80_t)*(float32_t *)(v2 + 12) * (float80_t)*v59; // 0x1e314e3
float80_t v61 = v60 + (float80_t)*(float32_t *)a1; // 0x1e314e6
int32_t v62 = g8; // 0x1e314eb
float80_t v63 = v61 - (float80_t)*(float32_t *)(v62 + 24); // 0x1e314eb
float80_t v64 = v63 * (float80_t)*(float32_t *)(v62 + 8); // 0x1e314ee
*(float64_t *)(g9 - 8) = (float64_t)v64;
int32_t v65 = function_1e3dbc0((int32_t)(float32_t)v61, (int32_t)&g708, (int32_t)&g708); // 0x1e314f4
g2 = v65;
g2 = *(int32_t *)g6 - 1;
g11++;
uint32_t v66 = (int32_t)__asm_fnstsw(g10); // 0x1e31507
g2 = g2 & -0x10000 | v66;
int3_t v67; // 0x1e3152e
if ((v66 / 256 & 65) == 0) {
int32_t v68 = g8; // 0x1e3151a
float80_t v69 = v61 - (float80_t)*(float32_t *)(v68 + 24); // 0x1e3151a
float80_t v70 = v69 * (float80_t)*(float32_t *)(v68 + 8); // 0x1e31520
*(float64_t *)(g9 - 8) = (float64_t)v70;
int32_t v71 = function_1e3dbc0((int32_t)&g708, (int32_t)&g708, (int32_t)&g708); // 0x1e31526
g2 = v71;
v67 = g11;
} else {
// 0x1e3150c
g2 = *(int32_t *)g6 - 1;
v67 = g11 - 1;
}
// 0x1e3152e
g11 = v67 + 1;
uint32_t v72 = (int32_t)__asm_fnstsw(g10); // 0x1e31536
g2 = g2 & -0x10000 | v72;
int3_t v73; // 0x1e3159d
if ((v72 / 256 & 1) == 0) {
// 0x1e31595
g2 = 0;
v73 = g11;
} else {
int32_t v74 = g8; // 0x1e3153e
float80_t v75 = v61 - (float80_t)*(float32_t *)(v74 + 24); // 0x1e3153e
float80_t v76 = v75 * (float80_t)*(float32_t *)(v74 + 8); // 0x1e31544
*(float64_t *)(g9 - 8) = (float64_t)v76;
int32_t v77 = function_1e3dbc0((int32_t)&g708, (int32_t)&g708, (int32_t)&g708); // 0x1e3154a
g2 = v77;
g2 = *(int32_t *)g6 - 1;
g11++;
uint32_t v78 = (int32_t)__asm_fnstsw(g10); // 0x1e3155d
g2 = g2 & -0x10000 | v78;
int3_t v79; // 0x1e31584
float80_t v80; // 0x1e31584
if ((v78 / 256 & 65) == 0) {
int32_t v81 = g8; // 0x1e31570
float80_t v82 = v61 - (float80_t)*(float32_t *)(v81 + 24); // 0x1e31570
float80_t v83 = v82 * (float80_t)*(float32_t *)(v81 + 8); // 0x1e31576
*(float64_t *)(g9 - 8) = (float64_t)v83;
int32_t v84 = function_1e3dbc0((int32_t)&g708, (int32_t)&g708, (int32_t)&g708); // 0x1e3157c
g2 = v84;
v80 = g684;
v79 = g11;
} else {
int32_t v85 = *(int32_t *)g6 - 1; // 0x1e31564
g2 = v85;
v80 = v85;
v79 = g11 - 1;
}
// 0x1e31584
g5 = (float32_t)v80;
v73 = v79 + 1;
}
// 0x1e3159d
g11 = v73 - 1;
int32_t v86 = __ftol(); // 0x1e315a0
g2 = v2;
float80_t v87 = (float80_t)*(float32_t *)(v2 + 16) * (float80_t)*v59; // 0x1e315b1
float80_t v88 = v87 + (float80_t)*(float32_t *)v32; // 0x1e315b4
int32_t v89 = g8; // 0x1e315ba
float80_t v90 = v88 - (float80_t)*(float32_t *)(v89 + 28); // 0x1e315ba
float80_t v91 = v90 * (float80_t)*(float32_t *)(v89 + 12); // 0x1e315bd
*(float64_t *)(g9 - 8) = (float64_t)v91;
int32_t v92 = function_1e3dbc0((int32_t)(float32_t)v88, (int32_t)&g708, (int32_t)&g708); // 0x1e315c3
g2 = v92;
g2 = *(int32_t *)g4 - 1;
g11++;
uint32_t v93 = (int32_t)__asm_fnstsw(g10); // 0x1e315d6
g2 = g2 & -0x10000 | v93;
int3_t v94; // 0x1e315fd
if ((v93 / 256 & 65) == 0) {
int32_t v95 = g8; // 0x1e315e9
float80_t v96 = v88 - (float80_t)*(float32_t *)(v95 + 28); // 0x1e315e9
float80_t v97 = v96 * (float80_t)*(float32_t *)(v95 + 12); // 0x1e315ef
*(float64_t *)(g9 - 8) = (float64_t)v97;
int32_t v98 = function_1e3dbc0((int32_t)&g708, (int32_t)&g708, (int32_t)&g708); // 0x1e315f5
g2 = v98;
v94 = g11;
} else {
// 0x1e315db
g2 = *(int32_t *)g4 - 1;
v94 = g11 - 1;
}
// 0x1e315fd
g11 = v94 + 1;
uint32_t v99 = (int32_t)__asm_fnstsw(g10); // 0x1e31605
g2 = g2 & -0x10000 | v99;
float64_t v100;
int3_t v101; // 0x1e3166c
if ((v99 / 256 & 1) == 0) {
// 0x1e31664
g2 = 0;
v101 = g11;
v100 = 0.0;
} else {
int32_t v102 = g8; // 0x1e3160d
float80_t v103 = v88 - (float80_t)*(float32_t *)(v102 + 28); // 0x1e3160d
float80_t v104 = v103 * (float80_t)*(float32_t *)(v102 + 12); // 0x1e31613
*(float64_t *)(g9 - 8) = (float64_t)v104;
int32_t v105 = function_1e3dbc0((int32_t)&g708, (int32_t)&g708, (int32_t)&g708); // 0x1e31619
g2 = v105;
g2 = *(int32_t *)g4 - 1;
g11++;
uint32_t v106 = (int32_t)__asm_fnstsw(g10); // 0x1e3162c
g2 = g2 & -0x10000 | v106;
int3_t v107; // 0x1e31653
float80_t v108; // 0x1e31653
if ((v106 / 256 & 65) == 0) {
int32_t v109 = g8; // 0x1e3163f
float80_t v110 = v88 - (float80_t)*(float32_t *)(v109 + 28); // 0x1e3163f
float80_t v111 = v110 * (float80_t)*(float32_t *)(v109 + 12); // 0x1e31645
*(float64_t *)(g9 - 8) = (float64_t)v111;
int32_t v112 = function_1e3dbc0((int32_t)&g708, (int32_t)&g708, (int32_t)&g708); // 0x1e3164b
g2 = v112;
v108 = g684;
v107 = g11;
} else {
int32_t v113 = *(int32_t *)g4 - 1; // 0x1e31633
g2 = v113;
v108 = v113;
v107 = g11 - 1;
}
// 0x1e31653
float32_t v114;
g2 = v114;
g5 = (float32_t)v108;
v101 = v107 + 1;
v100 = v108;
}
// 0x1e3166c
g11 = v101 - 1;
g684 = v100;
int32_t v115 = __ftol(); // 0x1e3166f
g2 = v115;
uint32_t v116 = (int32_t)__asm_fnstsw(g10) / 256; // 0x1e3167f
g2 = (v116 & 1) == 0 ? -1 : 1;
int16_t v117 = __asm_fnstsw(g10); // 0x1e31695
int32_t v118 = (v117 & 0x4100) != 0 ? -1 : 1;
g2 = v58;
int32_t v119;
if (v115 != v58) {
// 0x1e3171c
g2 = v31;
if (v86 != v31) {
// 0x1e31791
g6 = v31;
*(int32_t *)(g9 - 4) = 0;
*(int32_t *)(g9 - 8) = a2;
*(int32_t *)(g9 - 12) = v2;
int32_t v120 = &result; // 0x1e317ad
g2 = v120;
*(int32_t *)(g9 - 16) = v1;
*(int32_t *)(g9 - 20) = v120;
*(int32_t *)(g9 - 24) = v58;
g5 = g8;
*(int32_t *)(g9 - 28) = g6;
float80_t v121 = (v34 - v88) / (v7 - v61); // 0x1e317b8
float80_t v122 = v34 - v7 * v121; // 0x1e317be
g684 = v122;
int32_t v123 = function_1e311c3(v118, (int32_t)&g708, (int32_t)&g708, (int32_t)&g708, (int32_t)&g708, (int32_t)&g708, (int32_t)&g708); // 0x1e317c4
g2 = v123;
int32_t v124 = g6;
if ((v116 & 1) == 0) {
if ((v117 & 0x4100) != 0) {
while (true) {
float80_t v125 = (float80_t)(float32_t)v124 * (float80_t)*(float32_t *)&g5; // 0x1e3193c
float80_t v126 = v122 + v121 * (v125 + (float80_t)*(float32_t *)(g8 + 24)); // 0x1e31944
g684 = v126;
uint32_t v127 = (int32_t)__asm_fnstsw(g10); // 0x1e3194d
g2 = g2 & -0x10000 | v127;
if ((v127 / 256 & 65) == 0) {
// 0x1e31952
g6--;
} else {
// 0x1e31955
g684 = v126;
uint32_t v128 = (int32_t)__asm_fnstsw(g10); // 0x1e3195b
g2 = g2 & -0x10000 | v128;
if ((v128 / 256 & 64) != 0) {
// 0x1e31960
g6--;
}
// 0x1e31961
g4--;
}
// 0x1e31962
*(int32_t *)(g9 - 4) = v123;
*(int32_t *)(g9 - 8) = a2;
*(int32_t *)(g9 - 12) = v2;
*(int32_t *)(g9 - 16) = v1;
*(int32_t *)(g9 - 20) = v120;
*(int32_t *)(g9 - 24) = g4;
*(int32_t *)(g9 - 28) = g6;
g5 = g8;
int32_t v129 = function_1e311c3((int32_t)&g708, (int32_t)&g708, (int32_t)&g708, (int32_t)&g708, (int32_t)&g708, (int32_t)&g708, (int32_t)&g708); // 0x1e31976
g2 = v129;
int32_t v130 = g6; // 0x1e3197e
if (v130 > v86) {
v124 = v130;
v123 = v129;
// continue -> 0x1e31927
continue;
}
// 0x1e31983
if (g4 <= v115) {
v119 = v129;
// break -> 0x1e31988
break;
}
v124 = v130;
v123 = v129;
}
} else {
while (true) {
int32_t v131 = g4 + 1; // 0x1e318be
g5 = v131;
float80_t v132 = (float80_t)(float32_t)v124 * (float80_t)(float32_t)v131; // 0x1e318d6
float80_t v133 = v122 + v121 * (v132 + (float80_t)*(float32_t *)(g8 + 24)); // 0x1e318de
g684 = v133;
uint32_t v134 = (int32_t)__asm_fnstsw(g10); // 0x1e318e7
g2 = g2 & -0x10000 | v134;
if ((v134 / 256 & 1) == 0) {
// 0x1e318ef
g684 = v133;
g4 = g5;
uint32_t v135 = (int32_t)__asm_fnstsw(g10); // 0x1e318f7
g2 = g2 & -0x10000 | v135;
if ((v135 / 256 & 64) != 0) {
// 0x1e318fc
g6--;
g4 = g5;
}
} else {
// 0x1e318ec
g6--;
}
// 0x1e318ff
*(int32_t *)(g9 - 4) = v123;
*(int32_t *)(g9 - 8) = a2;
*(int32_t *)(g9 - 12) = v2;
*(int32_t *)(g9 - 16) = v1;
*(int32_t *)(g9 - 20) = v120;
*(int32_t *)(g9 - 24) = g4;
*(int32_t *)(g9 - 28) = g6;
g5 = g8;
int32_t v136 = function_1e311c3((int32_t)&g708, (int32_t)&g708, (int32_t)&g708, (int32_t)&g708, (int32_t)&g708, (int32_t)&g708, (int32_t)&g708); // 0x1e31913
g2 = v136;
int32_t v137 = g6; // 0x1e3191b
if (v137 > v86) {
v124 = v137;
v123 = v136;
// continue -> 0x1e318be
continue;
}
// 0x1e31920
if (g4 >= v115) {
v119 = v136;
// break -> 0x1e31988
break;
}
v124 = v137;
v123 = v136;
}
}
} else {
if ((v117 & 0x4100) != 0) {
while (true) {
int32_t v138 = v124 + 1; // 0x1e3184d
g5 = v138;
float80_t v139 = v138;
float80_t v140 = v139 * v139; // 0x1e31865
float80_t v141 = v122 + v121 * (v140 + (float80_t)*(float32_t *)(g8 + 24)); // 0x1e3186d
g684 = v141;
uint32_t v142 = (int32_t)__asm_fnstsw(g10); // 0x1e31876
g2 = g2 & -0x10000 | v142;
if ((v142 / 256 & 65) == 0) {
// 0x1e3187b
g6 = g5;
} else {
// 0x1e3187f
g684 = v141;
uint32_t v143 = (int32_t)__asm_fnstsw(g10); // 0x1e31885
g2 = g2 & -0x10000 | v143;
if ((v143 / 256 & 64) != 0) {
// 0x1e3188a
g6 = g5;
}
// 0x1e3188c
g4--;
}
// 0x1e3188d
*(int32_t *)(g9 - 4) = v123;
*(int32_t *)(g9 - 8) = a2;
*(int32_t *)(g9 - 12) = v2;
*(int32_t *)(g9 - 16) = v1;
*(int32_t *)(g9 - 20) = v120;
*(int32_t *)(g9 - 24) = g4;
*(int32_t *)(g9 - 28) = g6;
g5 = g8;
int32_t v144 = function_1e311c3((int32_t)&g708, (int32_t)&g708, (int32_t)&g708, (int32_t)&g708, (int32_t)&g708, (int32_t)&g708, (int32_t)&g708); // 0x1e318a1
g2 = v144;
int32_t v145 = g6; // 0x1e318a9
if (v145 < v86) {
v124 = v145;
v123 = v144;
// continue -> 0x1e3184d
continue;
}
// 0x1e318ae
if (g4 <= v115) {
v119 = v144;
// break -> 0x1e31988
break;
}
v124 = v145;
v123 = v144;
}
} else {
while (true) {
int32_t v146 = g4 + 1; // 0x1e317dc
g5 = v146;
int32_t v147 = v124 + 1; // 0x1e317df
g7 = v147;
float80_t v148 = (float80_t)(float32_t)v147 * (float80_t)(float32_t)v146; // 0x1e317f7
float80_t v149 = v122 + v121 * (v148 + (float80_t)*(float32_t *)(g8 + 24)); // 0x1e317ff
g684 = v149;
uint32_t v150 = (int32_t)__asm_fnstsw(g10); // 0x1e31808
g2 = g2 & -0x10000 | v150;
if ((v150 / 256 & 1) == 0) {
// 0x1e31811
g684 = v149;
g4 = g5;
uint32_t v151 = (int32_t)__asm_fnstsw(g10); // 0x1e31819
g2 = g2 & -0x10000 | v151;
if ((v151 / 256 & 64) != 0) {
// 0x1e3181e
g6 = g7;
g4 = g5;
}
} else {
// 0x1e3180d
g6 = g7;
}
// 0x1e31822
*(int32_t *)(g9 - 4) = v123;
*(int32_t *)(g9 - 8) = a2;
*(int32_t *)(g9 - 12) = v2;
*(int32_t *)(g9 - 16) = v1;
*(int32_t *)(g9 - 20) = v120;
*(int32_t *)(g9 - 24) = g4;
*(int32_t *)(g9 - 28) = g6;
g5 = g8;
int32_t v152 = function_1e311c3((int32_t)&g708, (int32_t)&g708, (int32_t)&g708, (int32_t)&g708, (int32_t)&g708, (int32_t)&g708, (int32_t)&g708); // 0x1e31836
g2 = v152;
int32_t v153 = g6; // 0x1e3183e
if (v153 < v86) {
v124 = v153;
v123 = v152;
// continue -> 0x1e317dc
continue;
}
// 0x1e31843
if (g4 >= v115) {
v119 = v152;
// break -> 0x1e31988
break;
}
v124 = v153;
v123 = v152;
}
}
}
goto lab_0x1e31988;
} else {
// 0x1e31724
g6 = v58;
if ((v117 & 0x4100) != 0) {
if (v115 > v58) {
// 0x1e31988
goto lab_0x1e319a0;
} else {
// 0x1e31768
*(int32_t *)(g9 - 4) = 0;
*(int32_t *)(g9 - 8) = a2;
*(int32_t *)(g9 - 12) = v2;
*(int32_t *)(g9 - 16) = v1;
*(int32_t *)(g9 - 20) = (int32_t)&result;
*(int32_t *)(g9 - 24) = g6;
g5 = g8;
g6--;
*(int32_t *)(g9 - 28) = v31;
int32_t v154 = function_1e311c3((int32_t)&g708, (int32_t)&g708, (int32_t)&g708, (int32_t)&g708, (int32_t)&g708, (int32_t)&g708, (int32_t)&g708); // 0x1e3177f
g2 = v154;
v119 = v154;
while (g6 >= v115) {
// 0x1e31768
*(int32_t *)(g9 - 4) = v154;
*(int32_t *)(g9 - 8) = a2;
*(int32_t *)(g9 - 12) = v2;
*(int32_t *)(g9 - 16) = v1;
*(int32_t *)(g9 - 20) = (int32_t)&result;
*(int32_t *)(g9 - 24) = g6;
g5 = g8;
g6--;
*(int32_t *)(g9 - 28) = v31;
v154 = function_1e311c3((int32_t)&g708, (int32_t)&g708, (int32_t)&g708, (int32_t)&g708, (int32_t)&g708, (int32_t)&g708, (int32_t)&g708);
g2 = v154;
v119 = v154;
}
goto lab_0x1e31988;
}
} else {
if (v115 < v58) {
// 0x1e31988
goto lab_0x1e319a0;
} else {
// 0x1e31736
*(int32_t *)(g9 - 4) = 0;
*(int32_t *)(g9 - 8) = a2;
*(int32_t *)(g9 - 12) = v2;
*(int32_t *)(g9 - 16) = v1;
*(int32_t *)(g9 - 20) = (int32_t)&result;
*(int32_t *)(g9 - 24) = g6;
g5 = g8;
g6++;
*(int32_t *)(g9 - 28) = v31;
int32_t v155 = function_1e311c3((int32_t)&g708, (int32_t)&g708, (int32_t)&g708, (int32_t)&g708, (int32_t)&g708, (int32_t)&g708, (int32_t)&g708); // 0x1e3174d
g2 = v155;
v119 = v155;
while (g6 <= v115) {
// 0x1e31736
*(int32_t *)(g9 - 4) = v155;
*(int32_t *)(g9 - 8) = a2;
*(int32_t *)(g9 - 12) = v2;
*(int32_t *)(g9 - 16) = v1;
*(int32_t *)(g9 - 20) = (int32_t)&result;
*(int32_t *)(g9 - 24) = g6;
g5 = g8;
g6++;
*(int32_t *)(g9 - 28) = v31;
v155 = function_1e311c3((int32_t)&g708, (int32_t)&g708, (int32_t)&g708, (int32_t)&g708, (int32_t)&g708, (int32_t)&g708, (int32_t)&g708);
g2 = v155;
v119 = v155;
}
goto lab_0x1e31988;
}
}
}
} else {
// 0x1e316af
g6 = v31;
if ((v116 & 1) == 0) {
if (v86 > v31) {
// 0x1e31988
goto lab_0x1e319a0;
} else {
// 0x1e316f3
*(int32_t *)(g9 - 4) = 0;
*(int32_t *)(g9 - 8) = a2;
*(int32_t *)(g9 - 12) = v2;
*(int32_t *)(g9 - 16) = v1;
*(int32_t *)(g9 - 20) = (int32_t)&result;
g5 = g8;
*(int32_t *)(g9 - 24) = v58;
*(int32_t *)(g9 - 28) = g6;
g6--;
int32_t v156 = function_1e311c3((int32_t)&g708, (int32_t)&g708, (int32_t)&g708, (int32_t)&g708, (int32_t)&g708, (int32_t)&g708, (int32_t)&g708); // 0x1e3170a
g2 = v156;
v119 = v156;
while (g6 >= v86) {
// 0x1e316f3
*(int32_t *)(g9 - 4) = v156;
*(int32_t *)(g9 - 8) = a2;
*(int32_t *)(g9 - 12) = v2;
*(int32_t *)(g9 - 16) = v1;
*(int32_t *)(g9 - 20) = (int32_t)&result;
g5 = g8;
*(int32_t *)(g9 - 24) = v58;
*(int32_t *)(g9 - 28) = g6;
g6--;
v156 = function_1e311c3((int32_t)&g708, (int32_t)&g708, (int32_t)&g708, (int32_t)&g708, (int32_t)&g708, (int32_t)&g708, (int32_t)&g708);
g2 = v156;
v119 = v156;
}
goto lab_0x1e31988;
}
} else {
if (v86 < v31) {
// 0x1e31988
goto lab_0x1e319a0;
} else {
// 0x1e316c1
*(int32_t *)(g9 - 4) = 0;
*(int32_t *)(g9 - 8) = a2;
*(int32_t *)(g9 - 12) = v2;
*(int32_t *)(g9 - 16) = v1;
*(int32_t *)(g9 - 20) = (int32_t)&result;
g5 = g8;
*(int32_t *)(g9 - 24) = v58;
*(int32_t *)(g9 - 28) = g6;
g6++;
int32_t v157 = function_1e311c3((int32_t)&g708, (int32_t)&g708, (int32_t)&g708, (int32_t)&g708, (int32_t)&g708, (int32_t)&g708, (int32_t)&g708); // 0x1e316d8
g2 = v157;
v119 = v157;
while (g6 <= v86) {
// 0x1e316c1
*(int32_t *)(g9 - 4) = v157;
*(int32_t *)(g9 - 8) = a2;
*(int32_t *)(g9 - 12) = v2;
*(int32_t *)(g9 - 16) = v1;
*(int32_t *)(g9 - 20) = (int32_t)&result;
g5 = g8;
*(int32_t *)(g9 - 24) = v58;
*(int32_t *)(g9 - 28) = g6;
g6++;
v157 = function_1e311c3((int32_t)&g708, (int32_t)&g708, (int32_t)&g708, (int32_t)&g708, (int32_t)&g708, (int32_t)&g708, (int32_t)&g708);
g2 = v157;
v119 = v157;
}
goto lab_0x1e31988;
}
}
}
lab_0x1e31988:
// 0x1e31988
if (v119 > 0) {
// 0x1e3198e
g2 = v119;
int32_t v158 = g8 + 36; // 0x1e31994
int32_t v159 = *(int32_t *)v158; // 0x1e31994
g5 = v159;
int32_t v160 = v119 - 1; // 0x1e31999
g2 = v160;
*(char *)(v159 + 12) = 0;
while (v160 != 0) {
// 0x1e31994
v158 += 4;
v159 = *(int32_t *)v158;
g5 = v159;
v160 = g2 - 1;
g2 = v160;
*(char *)(v159 + 12) = 0;
}
}
goto lab_0x1e319a0;
lab_0x1e319a0:
// 0x1e319a0
g11--;
g4 = *(int32_t *)(g9 + 8);
return result;
}
// Address range: 0x1e319ac - 0x1e319ad
int32_t function_1e319ac(void) {
// 0x1e319ac
return g2;
}
// Address range: 0x1e319ad - 0x1e320db
int32_t function_1e319ad(int32_t a1, int32_t a2, int32_t a3) {
int32_t v1 = (int32_t)g563; // 0x1e319b6
g2 = v1;
int32_t v2 = g8; // 0x1e319bc
g4 = a1;
int32_t v3 = g6; // 0x1e319c0
float80_t v4 = sqrtl((float80_t)*(float32_t *)(a1 + 12)); // 0x1e319c4
float80_t v5 = v4 + 0.001L * (float80_t)*g563; // 0x1e319ce
float32_t * v6 = (float32_t *)a1; // 0x1e319d7
float80_t v7 = (float80_t)*v6 - v5; // 0x1e319d9
float32_t * v8 = (float32_t *)(a1 + 4); // 0x1e319de
float80_t v9 = (float80_t)*v8 - v5; // 0x1e319e1
g8 = v1;
g6 = v1 + 16;
float80_t v10 = v5 + (float80_t)*v6; // 0x1e319ed
float80_t v11 = v5 + (float80_t)*v8; // 0x1e319f5
float80_t v12 = v7 - (float80_t)*(float32_t *)(v1 + 24); // 0x1e319fe
float80_t v13 = v12 * (float80_t)*(float32_t *)(v1 + 8); // 0x1e31a01
g2 = function_1e3dbc0((int32_t)(float32_t)v13, v3, v2);
g2 = *(int32_t *)g6 - 1;
g11++;
uint32_t v14 = (int32_t)__asm_fnstsw(g10); // 0x1e31a1a
g2 = g2 & -0x10000 | v14;
int3_t v15; // 0x1e31a41
if ((v14 / 256 & 65) == 0) {
int32_t v16 = g8; // 0x1e31a2d
float80_t v17 = v7 - (float80_t)*(float32_t *)(v16 + 24); // 0x1e31a2d
float80_t v18 = v17 * (float80_t)*(float32_t *)(v16 + 8); // 0x1e31a33
int32_t v19 = function_1e3dbc0((int32_t)(float32_t)v18, (int32_t)&g708, (int32_t)&g708); // 0x1e31a39
g2 = v19;
v15 = g11;
} else {
// 0x1e31a1f
g2 = *(int32_t *)g6 - 1;
v15 = g11 - 1;
}
// 0x1e31a41
g11 = v15 + 1;
uint32_t v20 = (int32_t)__asm_fnstsw(g10); // 0x1e31a49
g2 = g2 & -0x10000 | v20;
int3_t v21; // 0x1e31ab0
if ((v20 / 256 & 1) == 0) {
// 0x1e31aa8
g2 = 0;
v21 = g11;
} else {
int32_t v22 = g8; // 0x1e31a51
float80_t v23 = v7 - (float80_t)*(float32_t *)(v22 + 24); // 0x1e31a51
float80_t v24 = v23 * (float80_t)*(float32_t *)(v22 + 8); // 0x1e31a57
int32_t v25 = function_1e3dbc0((int32_t)(float32_t)v24, (int32_t)&g708, (int32_t)&g708); // 0x1e31a5d
g2 = v25;
g2 = *(int32_t *)g6 - 1;
g11++;
uint32_t v26 = (int32_t)__asm_fnstsw(g10); // 0x1e31a70
g2 = g2 & -0x10000 | v26;
int3_t v27; // 0x1e31a97
float80_t v28; // 0x1e31a97
if ((v26 / 256 & 65) == 0) {
int32_t v29 = g8; // 0x1e31a83
float80_t v30 = v7 - (float80_t)*(float32_t *)(v29 + 24); // 0x1e31a83
float80_t v31 = v30 * (float80_t)*(float32_t *)(v29 + 8); // 0x1e31a89
int32_t v32 = function_1e3dbc0((int32_t)(float32_t)v31, (int32_t)&g708, (int32_t)&g708); // 0x1e31a8f
g2 = v32;
v28 = g684;
v27 = g11;
} else {
int32_t v33 = *(int32_t *)g6 - 1; // 0x1e31a77
g2 = v33;
v28 = v33;
v27 = g11 - 1;
}
// 0x1e31a97
g5 = (float32_t)v28;
v21 = v27 + 1;
}
// 0x1e31ab0
g11 = v21 - 1;
int32_t v34 = __ftol(); // 0x1e31ab3
g2 = v34;
g8 = v34;
int32_t v35 = (int32_t)g563; // 0x1e31abd
g6 = v35;
float32_t v36 = *(float32_t *)(v35 + 28); // 0x1e31ac6
float32_t v37 = *(float32_t *)(v35 + 12); // 0x1e31ac9
*(float64_t *)(g9 - 8) = (float64_t)((v9 - (float80_t)v36) * (float80_t)v37);
int32_t v38 = function_1e3dbc0((int32_t)&g708, (int32_t)&g708, (int32_t)&g708); // 0x1e31acf
g2 = v38;
g2 = *(int32_t *)(g6 + 20) - 1;
g11++;
uint32_t v39 = (int32_t)__asm_fnstsw(g10); // 0x1e31ae3
g2 = g2 & -0x10000 | v39;
int3_t v40; // 0x1e31b0b
if ((v39 / 256 & 65) == 0) {
int32_t v41 = g6; // 0x1e31af7
float80_t v42 = v9 - (float80_t)*(float32_t *)(v41 + 28); // 0x1e31af7
float80_t v43 = v42 * (float80_t)*(float32_t *)(v41 + 12); // 0x1e31afd
*(float64_t *)(g9 - 8) = (float64_t)v43;
int32_t v44 = function_1e3dbc0((int32_t)&g708, (int32_t)&g708, (int32_t)&g708); // 0x1e31b03
g2 = v44;
v40 = g11;
} else {
// 0x1e31ae8
g2 = *(int32_t *)(g6 + 20) - 1;
v40 = g11 - 1;
}
// 0x1e31b0b
g11 = v40 + 1;
uint32_t v45 = (int32_t)__asm_fnstsw(g10); // 0x1e31b13
g2 = g2 & -0x10000 | v45;
int3_t v46; // 0x1e31b7c
if ((v45 / 256 & 1) == 0) {
// 0x1e31b74
g2 = 0;
v46 = g11;
} else {
int32_t v47 = g6; // 0x1e31b1b
float80_t v48 = v9 - (float80_t)*(float32_t *)(v47 + 28); // 0x1e31b1b
float80_t v49 = v48 * (float80_t)*(float32_t *)(v47 + 12); // 0x1e31b21
*(float64_t *)(g9 - 8) = (float64_t)v49;
int32_t v50 = function_1e3dbc0((int32_t)&g708, (int32_t)&g708, (int32_t)&g708); // 0x1e31b27
g2 = v50;
g2 = *(int32_t *)(g6 + 20) - 1;
g11++;
uint32_t v51 = (int32_t)__asm_fnstsw(g10); // 0x1e31b3b
g2 = g2 & -0x10000 | v51;
int3_t v52; // 0x1e31b63
float80_t v53; // 0x1e31b63
if ((v51 / 256 & 65) == 0) {
int32_t v54 = g6; // 0x1e31b4f
float80_t v55 = v9 - (float80_t)*(float32_t *)(v54 + 28); // 0x1e31b4f
float80_t v56 = v55 * (float80_t)*(float32_t *)(v54 + 12); // 0x1e31b55
*(float64_t *)(g9 - 8) = (float64_t)v56;
int32_t v57 = function_1e3dbc0((int32_t)&g708, (int32_t)&g708, (int32_t)&g708); // 0x1e31b5b
g2 = v57;
v53 = g684;
v52 = g11;
} else {
int32_t v58 = *(int32_t *)(g6 + 20) - 1; // 0x1e31b43
g2 = v58;
v53 = v58;
v52 = g11 - 1;
}
// 0x1e31b63
g5 = (float32_t)v53;
v46 = v52 + 1;
}
// 0x1e31b7c
g11 = v46 - 1;
int32_t v59 = __ftol(); // 0x1e31b7f
g2 = v59;
int32_t v60 = (int32_t)g563; // 0x1e31b87
g6 = v60;
float32_t v61 = *(float32_t *)(v60 + 24); // 0x1e31b93
float32_t v62 = *(float32_t *)(v60 + 8); // 0x1e31b96
*(float64_t *)(g9 - 8) = (float64_t)((v10 - (float80_t)v61) * (float80_t)v62);
g2 = function_1e3dbc0(v59, (int32_t)&g708, (int32_t)&g708);
g2 = *(int32_t *)(g6 + 16) - 1;
g11++;
uint32_t v63 = (int32_t)__asm_fnstsw(g10); // 0x1e31bb0
g2 = g2 & -0x10000 | v63;
int3_t v64; // 0x1e31bd8
if ((v63 / 256 & 65) == 0) {
int32_t v65 = g6; // 0x1e31bc4
float80_t v66 = v10 - (float80_t)*(float32_t *)(v65 + 24); // 0x1e31bc4
float80_t v67 = v66 * (float80_t)*(float32_t *)(v65 + 8); // 0x1e31bca
*(float64_t *)(g9 - 8) = (float64_t)v67;
int32_t v68 = function_1e3dbc0((int32_t)&g708, (int32_t)&g708, (int32_t)&g708); // 0x1e31bd0
g2 = v68;
v64 = g11;
} else {
// 0x1e31bb5
g2 = *(int32_t *)(g6 + 16) - 1;
v64 = g11 - 1;
}
// 0x1e31bd8
g11 = v64 + 1;
uint32_t v69 = (int32_t)__asm_fnstsw(g10); // 0x1e31be0
g2 = g2 & -0x10000 | v69;
int3_t v70; // 0x1e31c49
if ((v69 / 256 & 1) == 0) {
// 0x1e31c41
g2 = 0;
v70 = g11;
} else {
int32_t v71 = g6; // 0x1e31be8
float80_t v72 = v10 - (float80_t)*(float32_t *)(v71 + 24); // 0x1e31be8
float80_t v73 = v72 * (float80_t)*(float32_t *)(v71 + 8); // 0x1e31bee
*(float64_t *)(g9 - 8) = (float64_t)v73;
int32_t v74 = function_1e3dbc0((int32_t)&g708, (int32_t)&g708, (int32_t)&g708); // 0x1e31bf4
g2 = v74;
g2 = *(int32_t *)(g6 + 16) - 1;
g11++;
uint32_t v75 = (int32_t)__asm_fnstsw(g10); // 0x1e31c08
g2 = g2 & -0x10000 | v75;
int3_t v76; // 0x1e31c30
float80_t v77; // 0x1e31c30
if ((v75 / 256 & 65) == 0) {
int32_t v78 = g6; // 0x1e31c1c
float80_t v79 = v10 - (float80_t)*(float32_t *)(v78 + 24); // 0x1e31c1c
float80_t v80 = v79 * (float80_t)*(float32_t *)(v78 + 8); // 0x1e31c22
*(float64_t *)(g9 - 8) = (float64_t)v80;
int32_t v81 = function_1e3dbc0((int32_t)&g708, (int32_t)&g708, (int32_t)&g708); // 0x1e31c28
g2 = v81;
v77 = g684;
v76 = g11;
} else {
int32_t v82 = *(int32_t *)(g6 + 16) - 1; // 0x1e31c10
g2 = v82;
v77 = v82;
v76 = g11 - 1;
}
// 0x1e31c30
g5 = (float32_t)v77;
v70 = v76 + 1;
}
// 0x1e31c49
g11 = v70 - 1;
int32_t v83 = __ftol(); // 0x1e31c4c
g2 = v83;
int32_t v84 = (int32_t)g563; // 0x1e31c54
g6 = v84;
float32_t v85 = *(float32_t *)(v84 + 28); // 0x1e31c60
float32_t v86 = *(float32_t *)(v84 + 12); // 0x1e31c63
*(float64_t *)(g9 - 8) = (float64_t)((v11 - (float80_t)v85) * (float80_t)v86);
g2 = function_1e3dbc0(v83, (int32_t)&g708, (int32_t)&g708);
g2 = *(int32_t *)(g6 + 20) - 1;
g11++;
uint32_t v87 = (int32_t)__asm_fnstsw(g10); // 0x1e31c7d
g2 = g2 & -0x10000 | v87;
int3_t v88; // 0x1e31ca5
if ((v87 / 256 & 65) == 0) {
int32_t v89 = g6; // 0x1e31c91
float80_t v90 = v11 - (float80_t)*(float32_t *)(v89 + 28); // 0x1e31c91
float80_t v91 = v90 * (float80_t)*(float32_t *)(v89 + 12); // 0x1e31c97
*(float64_t *)(g9 - 8) = (float64_t)v91;
int32_t v92 = function_1e3dbc0((int32_t)&g708, (int32_t)&g708, (int32_t)&g708); // 0x1e31c9d
g2 = v92;
v88 = g11;
} else {
// 0x1e31c82
g2 = *(int32_t *)(g6 + 20) - 1;
v88 = g11 - 1;
}
// 0x1e31ca5
g11 = v88 + 1;
uint32_t v93 = (int32_t)__asm_fnstsw(g10); // 0x1e31cad
g2 = g2 & -0x10000 | v93;
if ((v93 / 256 & 1) == 0) {
// 0x1e31d0e
g2 = 0;
} else {
int32_t v94 = g6; // 0x1e31cb5
float80_t v95 = v11 - (float80_t)*(float32_t *)(v94 + 28); // 0x1e31cb5
float80_t v96 = v95 * (float80_t)*(float32_t *)(v94 + 12); // 0x1e31cbb
*(float64_t *)(g9 - 8) = (float64_t)v96;
int32_t v97 = function_1e3dbc0((int32_t)&g708, (int32_t)&g708, (int32_t)&g708); // 0x1e31cc1
g2 = v97;
g2 = *(int32_t *)(g6 + 20) - 1;
g11++;
uint32_t v98 = (int32_t)__asm_fnstsw(g10); // 0x1e31cd5
g2 = g2 & -0x10000 | v98;
int3_t v99; // 0x1e31cfd
float80_t v100; // 0x1e31cfd
if ((v98 / 256 & 65) == 0) {
int32_t v101 = g6; // 0x1e31ce9
float80_t v102 = v11 - (float80_t)*(float32_t *)(v101 + 28); // 0x1e31ce9
float80_t v103 = v102 * (float80_t)*(float32_t *)(v101 + 12); // 0x1e31cef
*(float64_t *)(g9 - 8) = (float64_t)v103;
int32_t v104 = function_1e3dbc0((int32_t)&g708, (int32_t)&g708, (int32_t)&g708); // 0x1e31cf5
g2 = v104;
v100 = g684;
v99 = g11;
} else {
int32_t v105 = *(int32_t *)(g6 + 20) - 1; // 0x1e31cdd
g2 = v105;
v100 = v105;
v99 = g11 - 1;
}
// 0x1e31cfd
g11 = v99 + 1;
g5 = (float32_t)v100;
}
int32_t v106 = g8 - 1; // 0x1e31d16
int32_t v107;
if (v106 >= 0 != v106 != 0) {
v107 = 0;
} else {
v107 = v106;
}
// 0x1e31d1d
g8 = v107;
int32_t v108 = v59 - 1; // 0x1e31d20
int32_t v109;
int32_t v110; // 0x1e31d2a
if (v108 >= 0 != v108 != 0) {
v109 = 0;
v110 = 0;
} else {
v109 = v108;
v110 = v108;
}
// 0x1e31d27
g2 = v109;
int32_t v111 = (int32_t)g563; // 0x1e31d2d
g2 = v111;
int32_t v112 = v83 + 1; // 0x1e31d32
g5 = v112;
int32_t v113 = *(int32_t *)(v111 + 16) - 1; // 0x1e31d36
if (v113 >= v112) {
// branch -> 0x1e31d3d
} else {
v112 = v113;
}
// 0x1e31d3d
g2 = v112;
g11--;
g2 = v111;
int32_t v114 = *(int32_t *)(v111 + 20) - 1; // 0x1e31d50
g6 = v114;
int32_t v115 = __ftol() + 1; // 0x1e31d51
g2 = v115;
if (v114 >= v115) {
// 0x1e31d56
g6 = v115;
} else {
v115 = v114;
}
int32_t v116 = (int32_t)g563; // 0x1e31d58
g2 = v116;
int32_t v117 = g8; // 0x1e31d60
float80_t v118 = (float80_t)v117 * (float80_t)*g563; // 0x1e31d66
float32_t v119 = v118 + (float80_t)*(float32_t *)(v116 + 24); // 0x1e31d71
float80_t v120 = (float80_t)v110 * (float80_t)*(float32_t *)(v116 + 4); // 0x1e31d77
float32_t v121 = v120 + (float80_t)*(float32_t *)(v116 + 28); // 0x1e31d7d
float32_t v122;
float32_t v123; // bp-124
float32_t v124;
float32_t v125;
float32_t v126;
float32_t v127;
int32_t v128;
int3_t v129; // 0x1e31da2
int3_t v130; // 0x1e3209e
int32_t result; // 0x1e320b0
int32_t v131; // 0x1e31e2d
int32_t v132; // 0x1e31ee9
if (v112 >= v117) {
// 0x1e31d8e
v131 = &v119;
v132 = &v123;
float32_t * v133 = g563; // 0x1e320b0111
int3_t v134 = g11; // 0x1e31da2110
while (true) {
// 0x1e31d8e
g2 = v110;
float32_t v135;
float32_t v136;
float32_t v137;
float32_t v138;
float32_t * v139; // 0x1e320b0
int3_t v140; // 0x1e320be
if (v115 >= v110) {
v129 = v134;
v128 = v110;
v124 = v121;
v125 = v138;
v122 = v137;
while (true) {
lab_0x1e31da2:
// 0x1e31da2
g11 = v129;
uint32_t v141 = (int32_t)__asm_fnstsw(g10); // 0x1e31da8
g2 = g2 & -0x10000 | v141;
if ((v141 / 256 & 1) == 0) {
// 0x1e31db1
g2 = (int32_t)g563;
uint32_t v142 = (int32_t)__asm_fnstsw(g10); // 0x1e31dc4
g2 = g2 & -0x10000 | v142;
if ((v142 / 256 & 1) == 0) {
uint32_t v143 = (int32_t)__asm_fnstsw(g10); // 0x1e31dd3
g2 = g2 & -0x10000 | v143;
if ((v143 / 256 & 1) == 0) {
// 0x1e31ddc
g2 = (int32_t)g563;
uint32_t v144 = (int32_t)__asm_fnstsw(g10); // 0x1e31df0
g2 = g2 & -0x10000 | v144;
if ((v144 / 256 & 1) == 0) {
uint32_t v145 = (int32_t)__asm_fnstsw(g10); // 0x1e31e01
g2 = g2 & -0x10000 | v145;
if ((v145 / 256 & 65) == 0) {
goto lab_0x1e31e2d;
} else {
uint32_t v146 = (int32_t)__asm_fnstsw(g10); // 0x1e31e0b
g2 = g2 & -0x10000 | v146;
if ((v146 / 256 & 1) == 0) {
uint32_t v147 = (int32_t)__asm_fnstsw(g10); // 0x1e31e19
g2 = g2 & -0x10000 | v147;
if ((v147 / 256 & 65) == 0) {
goto lab_0x1e31e2d;
} else {
uint32_t v148 = (int32_t)__asm_fnstsw(g10); // 0x1e31e24
g2 = g2 & -0x10000 | v148;
if ((v148 / 256 & 1) == 0) {
v126 = v125;
goto lab_0x1e3205f;
} else {
goto lab_0x1e31e2d;
}
}
} else {
goto lab_0x1e31e2d;
}
}
} else {
v127 = v125;
goto lab_0x1e32093;
}
} else {
v127 = v125;
goto lab_0x1e32093;
}
} else {
v127 = v125;
goto lab_0x1e32093;
}
} else {
v127 = v125;
goto lab_0x1e32093;
}
}
lab_0x1e320b0:
// 0x1e320b0
v140 = v130;
v139 = g563;
v136 = v127;
v135 = v122;
} else {
v140 = v134;
v139 = v133;
v136 = v138;
v135 = v137;
}
// 0x1e320b0
result = (int32_t)v139;
g2 = result;
g5 = v121;
int32_t v149 = v117 + 1; // 0x1e320b8
float32_t v150 = (float80_t)v119 + (float80_t)*v139; // 0x1e320cf
v119 = v150;
g11 = v140;
if (v112 < v149) {
// break -> 0x1e320d2
break;
}
v119 = v150;
v133 = v139;
v134 = v140;
v117 = v149;
v138 = v136;
v137 = v135;
}
} else {
result = v116;
}
// 0x1e320d2
g4 = *(int32_t *)(g9 + 8);
return result;
lab_0x1e32093:;
int32_t v151 = (int32_t)g563; // 0x1e32093
g2 = v151;
int32_t v152 = v128 + 1; // 0x1e32098
g5 = v152;
v130 = g11;
float80_t v153 = (float80_t)v124 + (float80_t)*(float32_t *)(v151 + 4); // 0x1e320a1
if (v115 < v152) {
// break -> 0x1e320b0
goto lab_0x1e320b0;
}
v129 = v130;
v128 = v152;
v124 = v153;
v125 = v127;
goto lab_0x1e31da2;
lab_0x1e31e2d:;
int32_t v154 = *(int32_t *)&v119; // 0x1e31e335
float32_t v155;
*(int32_t *)&v155 = v154;
float32_t v156; // bp-68
*(int32_t *)&v156 = v154;
int32_t v157 = g1 ? -4 : 4; // 0x1e31e33
int32_t v158 = v157 + (int32_t)&v156; // 0x1e31e33
int32_t v159 = v157 + v131; // 0x1e31e33
*(int32_t *)v158 = *(int32_t *)v159;
int32_t v160 = v158 + v157; // 0x1e31e34
int32_t v161 = v159 + v157; // 0x1e31e34
*(int32_t *)v160 = *(int32_t *)v161;
g6 = v160 + v157;
g8 = v161 + v157;
*(int32_t *)(g9 - 4) = *(int32_t *)(g4 + 8);
*(int32_t *)(g9 - 8) = *(int32_t *)(g4 + 4);
*(int32_t *)(g9 - 12) = *(int32_t *)g4;
*(int32_t *)(g9 - 20) = (int32_t)v124;
*(int32_t *)(g9 - 24) = (int32_t)v119;
float80_t v162 = function_1e30e04(v155, (int32_t)&g708, (int32_t)&g708, (int32_t)&g708); // 0x1e31e47
g2 = (float32_t)v162;
g11++;
uint32_t v163 = (int32_t)__asm_fnstsw(g10); // 0x1e31e4f
g2 = g2 & -0x10000 | v163;
if ((v163 / 256 & 65) == 0) {
// 0x1e31e58
*(int32_t *)(g9 - 4) = *(int32_t *)(g4 + 8);
*(int32_t *)(g9 - 8) = *(int32_t *)(g4 + 4);
*(int32_t *)(g9 - 12) = *(int32_t *)g4;
g2 = (int32_t)g563;
float80_t v164 = (float80_t)*g563 + (float80_t)v119; // 0x1e31e67
v156 = v164;
*(int32_t *)(g9 - 20) = (int32_t)v125;
*(int32_t *)(g9 - 24) = (int32_t)v156;
float80_t v165 = function_1e30e04((float32_t)(int32_t)&g708, (int32_t)&g708, (int32_t)&g708, (int32_t)&g708); // 0x1e31e76
g2 = (float32_t)v165;
g11++;
uint32_t v166 = (int32_t)__asm_fnstsw(g10); // 0x1e31e7e
g2 = g2 & -0x10000 | v166;
if ((v166 / 256 & 65) == 0) {
// 0x1e31e87
*(int32_t *)(g9 - 4) = *(int32_t *)(g4 + 8);
*(int32_t *)(g9 - 8) = *(int32_t *)(g4 + 4);
*(int32_t *)(g9 - 12) = *(int32_t *)g4;
int32_t v167 = (int32_t)g563; // 0x1e31e8f
g2 = v167;
float80_t v168 = (float80_t)v125 + (float80_t)*(float32_t *)(v167 + 4); // 0x1e31e97
float32_t v169 = v168; // 0x1e31e9a
*(int32_t *)(g9 - 20) = (int32_t)v169;
*(int32_t *)(g9 - 24) = (int32_t)v156;
float80_t v170 = function_1e30e04((float32_t)(int32_t)&g708, (int32_t)&g708, (int32_t)&g708, (int32_t)&g708); // 0x1e31ea6
g2 = (float32_t)v170;
g11++;
uint32_t v171 = (int32_t)__asm_fnstsw(g10); // 0x1e31eae
g2 = g2 & -0x10000 | v171;
if ((v171 / 256 & 65) == 0) {
// 0x1e31eb7
*(int32_t *)(g9 - 4) = *(int32_t *)(g4 + 8);
*(int32_t *)(g9 - 8) = *(int32_t *)(g4 + 4);
*(int32_t *)(g9 - 12) = *(int32_t *)g4;
g2 = (int32_t)g563;
float80_t v172 = (float80_t)v156 - (float80_t)*g563; // 0x1e31ec7
v156 = v172;
*(int32_t *)(g9 - 20) = (int32_t)v169;
*(int32_t *)(g9 - 24) = (int32_t)v156;
float80_t v173 = function_1e30e04((float32_t)(int32_t)&g708, (int32_t)&g708, (int32_t)&g708, (int32_t)&g708); // 0x1e31ed5
g2 = (float32_t)v173;
g11++;
uint32_t v174 = (int32_t)__asm_fnstsw(g10); // 0x1e31edd
g2 = g2 & -0x10000 | v174;
if ((v174 / 256 & 65) == 0) {
// 0x1e31ee6
*(int32_t *)&v123 = *(int32_t *)&v119;
int32_t v175 = g1 ? -4 : 4; // 0x1e31eec
int32_t v176 = v175 + v132; // 0x1e31eec
int32_t v177 = v175 + v131; // 0x1e31eec
*(int32_t *)v176 = *(int32_t *)v177;
int32_t v178 = v176 + v175; // 0x1e31eed
int32_t v179 = v177 + v175; // 0x1e31eed
*(int32_t *)v178 = *(int32_t *)v179;
g6 = v178 + v175;
g8 = v179 + v175;
g2 = (int32_t)g563;
*(int32_t *)(g9 - 4) = g4;
g5 = *(int32_t *)g2;
g2 = v132;
*(int32_t *)(g9 - 8) = v132;
g2 = function_1e3a828((int32_t)v123, (int32_t)&g708);
g11++;
uint32_t v180 = (int32_t)__asm_fnstsw(g10); // 0x1e31f17
g2 = g2 & -0x10000 | v180;
if ((v180 / 256 & 1) == 0) {
// 0x1e31f20
g2 = (int32_t)g563;
*(int32_t *)(g9 - 4) = g4;
float32_t v181 = *(float32_t *)g2; // 0x1e31f2d
g5 = v132;
*(int32_t *)(g9 - 8) = v132;
float32_t v182 = (float80_t)v181 + (float80_t)v123; // 0x1e31f36
v123 = v182;
g2 = function_1e3a828((int32_t)v182, (int32_t)&g708);
g11++;
uint32_t v183 = (int32_t)__asm_fnstsw(g10); // 0x1e31f44
g2 = g2 & -0x10000 | v183;
if ((v183 / 256 & 1) == 0) {
// 0x1e31f4d
g2 = (int32_t)g563;
*(int32_t *)(g9 - 4) = g4;
g5 = *(int32_t *)(g2 + 4);
g2 = v132;
*(int32_t *)(g9 - 8) = v132;
g2 = function_1e3a828(0, 0x3f800000);
g11++;
uint32_t v184 = (int32_t)__asm_fnstsw(g10); // 0x1e31f76
g2 = g2 & -0x10000 | v184;
if ((v184 / 256 & 1) == 0) {
// 0x1e31f7f
g2 = (int32_t)g563;
*(int32_t *)(g9 - 4) = g4;
g5 = v132;
*(int32_t *)(g9 - 8) = v132;
float80_t v185 = (float80_t)v122 + (float80_t)*(float32_t *)(g2 + 4); // 0x1e31f96
float32_t v186 = v185; // 0x1e31f96
g2 = function_1e3a828((int32_t)v186, (int32_t)&g708);
g11++;
uint32_t v187 = (int32_t)__asm_fnstsw(g10); // 0x1e31fa4
g2 = g2 & -0x10000 | v187;
if ((v187 / 256 & 1) == 0) {
// 0x1e31fad
g2 = (int32_t)g563;
*(int32_t *)(g9 - 4) = g4;
g5 = *(int32_t *)g2;
g2 = v132;
*(int32_t *)(g9 - 8) = v132;
g2 = function_1e3a828(-0x40800000, 0);
g11++;
uint32_t v188 = (int32_t)__asm_fnstsw(g10); // 0x1e31fd5
g2 = g2 & -0x10000 | v188;
if ((v188 / 256 & 1) == 0) {
// 0x1e31fde
g2 = (int32_t)g563;
*(int32_t *)(g9 - 4) = g4;
float32_t v189 = *(float32_t *)g2; // 0x1e31fee
g5 = v132;
*(int32_t *)(g9 - 8) = v132;
float32_t v190 = (float80_t)v123 - (float80_t)v189; // 0x1e31ff4
v123 = v190;
g2 = function_1e3a828((int32_t)v190, (int32_t)&g708);
g11++;
uint32_t v191 = (int32_t)__asm_fnstsw(g10); // 0x1e32002
g2 = g2 & -0x10000 | v191;
if ((v191 / 256 & 1) == 0) {
// 0x1e32007
g2 = (int32_t)g563;
*(int32_t *)(g9 - 4) = g4;
g5 = *(int32_t *)(g2 + 4);
g2 = v132;
*(int32_t *)(g9 - 8) = v132;
g2 = function_1e3a828(0, -0x40800000);
g11++;
uint32_t v192 = (int32_t)__asm_fnstsw(g10); // 0x1e32030
g2 = g2 & -0x10000 | v192;
if ((v192 / 256 & 1) == 0) {
// 0x1e32035
g2 = (int32_t)g563;
*(int32_t *)(g9 - 4) = g4;
g5 = v132;
*(int32_t *)(g9 - 8) = v132;
float32_t v193 = v185 - (float80_t)*(float32_t *)(g2 + 4); // 0x1e3204c
g2 = function_1e3a828((int32_t)v193, (int32_t)&g708);
g11++;
uint32_t v194 = (int32_t)__asm_fnstsw(g10); // 0x1e3205a
g2 = g2 & -0x10000 | v194;
if ((v194 / 256 & 1) == 0) {
v127 = v169;
v122 = v193;
goto lab_0x1e32093;
} else {
v126 = v169;
v122 = v193;
goto lab_0x1e3205f;
}
} else {
v126 = v169;
v122 = v186;
goto lab_0x1e3205f;
}
} else {
v126 = v169;
v122 = v186;
goto lab_0x1e3205f;
}
} else {
v126 = v169;
v122 = v186;
goto lab_0x1e3205f;
}
} else {
v126 = v169;
v122 = v186;
goto lab_0x1e3205f;
}
} else {
v126 = v169;
goto lab_0x1e3205f;
}
} else {
v126 = v169;
goto lab_0x1e3205f;
}
} else {
v126 = v169;
goto lab_0x1e3205f;
}
} else {
v126 = v169;
goto lab_0x1e3205f;
}
} else {
v126 = v169;
goto lab_0x1e3205f;
}
} else {
v126 = v125;
goto lab_0x1e3205f;
}
} else {
v126 = v125;
goto lab_0x1e3205f;
}
lab_0x1e3205f:
if (a2 != 0) {
// 0x1e32065
*(int32_t *)(g9 - 4) = a2;
*(int32_t *)(g9 - 8) = v128;
*(int32_t *)(g9 - 12) = v117;
g5 = (int32_t)g563;
g2 = function_1e30f1c((int32_t)&g708, (int32_t)&g708);
}
if (a3 != 0) {
// 0x1e3207f
*(int32_t *)(g9 - 4) = a3;
*(int32_t *)(g9 - 8) = v128;
*(int32_t *)(g9 - 12) = v117;
g5 = (int32_t)g563;
g2 = function_1e30f54((int32_t)&g708, (int32_t)&g708);
v127 = v126;
} else {
v127 = v126;
}
goto lab_0x1e32093;
}
// Address range: 0x1e320db - 0x1e32545
int32_t function_1e320db(int32_t a1, int32_t a2, int32_t a3, int32_t a4, int32_t a5, int32_t a6) {
int32_t v1 = g3; // bp-4
g2 = (int32_t)g563;
g3 = &v1;
int32_t v2 = __ftol(); // esi
g2 = (int32_t)g563;
g11 -= 2;
int32_t v3 = __ftol(); // 0x1e32106
g2 = v3;
int32_t v4 = (int32_t)g563; // 0x1e32128
int32_t v5 = v4 + 24; // 0x1e32130
g4 = v5;
int32_t v6 = v4 + 8; // 0x1e32133
g6 = v6;
g8 = v4 + 16;
float80_t v7 = (float32_t)a2 - (float32_t)v2; // 0x1e32145
float32_t v8 = *(float32_t *)v5; // 0x1e32148
float32_t v9 = *(float32_t *)v6; // 0x1e3214a
int32_t v10 = function_1e3dbc0((int32_t)(float32_t)((v7 - (float80_t)v8) * (float80_t)v9), (int32_t)&g708, (int32_t)&g708); // 0x1e3214f
g2 = v10;
g2 = *(int32_t *)g8 - 1;
g11++;
uint32_t v11 = (int32_t)__asm_fnstsw(g10); // 0x1e32162
g2 = g2 & -0x10000 | v11;
int3_t v12; // 0x1e32187
if ((v11 / 256 & 65) == 0) {
float32_t v13 = *(float32_t *)g4; // 0x1e32175
float32_t v14 = *(float32_t *)g6; // 0x1e3217a
int32_t v15 = function_1e3dbc0((int32_t)(float32_t)((v7 - (float80_t)v13) * (float80_t)v14), (int32_t)&g708, (int32_t)&g708); // 0x1e3217f
g2 = v15;
v12 = g11;
} else {
// 0x1e32167
g2 = *(int32_t *)g8 - 1;
v12 = g11 - 1;
}
// 0x1e32187
g11 = v12 + 1;
uint32_t v16 = (int32_t)__asm_fnstsw(g10); // 0x1e3218f
g2 = g2 & -0x10000 | v16;
float32_t v17;
int3_t v18; // 0x1e321f2
if ((v16 / 256 & 1) == 0) {
// 0x1e321ea
g2 = 0;
v18 = g11;
} else {
float32_t v19 = *(float32_t *)g4; // 0x1e32197
float32_t v20 = *(float32_t *)g6; // 0x1e3219c
int32_t v21 = function_1e3dbc0((int32_t)(float32_t)((v7 - (float80_t)v19) * (float80_t)v20), (int32_t)&g708, (int32_t)&g708); // 0x1e321a1
g2 = v21;
g2 = *(int32_t *)g8 - 1;
g11++;
uint32_t v22 = (int32_t)__asm_fnstsw(g10); // 0x1e321b4
g2 = g2 & -0x10000 | v22;
int3_t v23; // 0x1e321d9
float80_t v24; // 0x1e321d9
if ((v22 / 256 & 65) == 0) {
float32_t v25 = *(float32_t *)g4; // 0x1e321c7
float32_t v26 = *(float32_t *)g6; // 0x1e321cc
int32_t v27 = function_1e3dbc0((int32_t)(float32_t)((v7 - (float80_t)v25) * (float80_t)v26), (int32_t)&g708, (int32_t)&g708); // 0x1e321d1
g2 = v27;
v24 = g684;
v23 = g11;
} else {
int32_t v28 = *(int32_t *)g8 - 1; // 0x1e321bb
g2 = v28;
v24 = v28;
v23 = g11 - 1;
}
// 0x1e321d9
g2 = v17;
g5 = (float32_t)v24;
v18 = v23 + 1;
}
// 0x1e321f2
g11 = v18 - 1;
int32_t v29 = __ftol(); // 0x1e321f5
g2 = v29;
float80_t v30 = (float32_t)a1 - (float32_t)v3; // 0x1e321fa
g8 = v29;
int32_t v31 = (int32_t)g563; // 0x1e321ff
g4 = v31;
int32_t v32 = v31 + 28; // 0x1e32208
g6 = v32;
float32_t v33 = *(float32_t *)v32; // 0x1e3220b
float32_t v34 = *(float32_t *)(v31 + 12); // 0x1e3220d
*(float64_t *)(g9 - 8) = (float64_t)((v30 - (float80_t)v33) * (float80_t)v34);
int32_t v35 = function_1e3dbc0((int32_t)&g708, (int32_t)&g708, (int32_t)&g708); // 0x1e32213
g2 = v35;
g2 = *(int32_t *)(g4 + 20) - 1;
g11++;
uint32_t v36 = (int32_t)__asm_fnstsw(g10); // 0x1e32227
g2 = g2 & -0x10000 | v36;
int3_t v37; // 0x1e3224e
if ((v36 / 256 & 65) == 0) {
float32_t v38 = *(float32_t *)g6; // 0x1e3223b
float32_t v39 = *(float32_t *)(g4 + 12); // 0x1e32240
*(float64_t *)(g9 - 8) = (float64_t)((v30 - (float80_t)v38) * (float80_t)v39);
int32_t v40 = function_1e3dbc0((int32_t)&g708, (int32_t)&g708, (int32_t)&g708); // 0x1e32246
g2 = v40;
v37 = g11;
} else {
// 0x1e3222c
g2 = *(int32_t *)(g4 + 20) - 1;
v37 = g11 - 1;
}
// 0x1e3224e
g11 = v37 + 1;
uint32_t v41 = (int32_t)__asm_fnstsw(g10); // 0x1e32256
g2 = g2 & -0x10000 | v41;
int3_t v42; // 0x1e322bd
if ((v41 / 256 & 1) == 0) {
// 0x1e322b5
g2 = 0;
v42 = g11;
} else {
float32_t v43 = *(float32_t *)g6; // 0x1e3225e
float32_t v44 = *(float32_t *)(g4 + 12); // 0x1e32263
*(float64_t *)(g9 - 8) = (float64_t)((v30 - (float80_t)v43) * (float80_t)v44);
int32_t v45 = function_1e3dbc0((int32_t)&g708, (int32_t)&g708, (int32_t)&g708); // 0x1e32269
g2 = v45;
g2 = *(int32_t *)(g4 + 20) - 1;
g11++;
uint32_t v46 = (int32_t)__asm_fnstsw(g10); // 0x1e3227d
g2 = g2 & -0x10000 | v46;
int3_t v47; // 0x1e322a4
float80_t v48; // 0x1e322a4
if ((v46 / 256 & 65) == 0) {
float32_t v49 = *(float32_t *)g6; // 0x1e32291
float32_t v50 = *(float32_t *)(g4 + 12); // 0x1e32296
*(float64_t *)(g9 - 8) = (float64_t)((v30 - (float80_t)v49) * (float80_t)v50);
int32_t v51 = function_1e3dbc0((int32_t)&g708, (int32_t)&g708, (int32_t)&g708); // 0x1e3229c
g2 = v51;
v48 = g684;
v47 = g11;
} else {
int32_t v52 = *(int32_t *)(g4 + 20) - 1; // 0x1e32285
g2 = v52;
v48 = v52;
v47 = g11 - 1;
}
// 0x1e322a4
g2 = v17;
g5 = (float32_t)v48;
v42 = v47 + 1;
}
// 0x1e322bd
g11 = v42 - 1;
int32_t v53 = __ftol(); // 0x1e322c0
g2 = v53;
float80_t v54 = (float32_t)a4 + (float32_t)v2; // 0x1e322c5
g6 = v53;
int32_t v55 = (int32_t)g563; // 0x1e322ca
g4 = v55;
float32_t v56 = *(float32_t *)(v55 + 24); // 0x1e322d3
float32_t v57 = *(float32_t *)(v55 + 8); // 0x1e322d6
*(float64_t *)(g9 - 8) = (float64_t)((v54 - (float80_t)v56) * (float80_t)v57);
int32_t v58 = function_1e3dbc0((int32_t)&g708, (int32_t)&g708, (int32_t)&g708); // 0x1e322dc
g2 = v58;
g2 = *(int32_t *)(g4 + 16) - 1;
g11++;
uint32_t v59 = (int32_t)__asm_fnstsw(g10); // 0x1e322f0
g2 = g2 & -0x10000 | v59;
int3_t v60; // 0x1e32318
if ((v59 / 256 & 65) == 0) {
int32_t v61 = g4; // 0x1e32304
float32_t v62 = *(float32_t *)(v61 + 24); // 0x1e32304
float32_t v63 = *(float32_t *)(v61 + 8); // 0x1e3230a
*(float64_t *)(g9 - 8) = (float64_t)((v54 - (float80_t)v62) * (float80_t)v63);
int32_t v64 = function_1e3dbc0((int32_t)&g708, (int32_t)&g708, (int32_t)&g708); // 0x1e32310
g2 = v64;
v60 = g11;
} else {
// 0x1e322f5
g2 = *(int32_t *)(g4 + 16) - 1;
v60 = g11 - 1;
}
// 0x1e32318
g11 = v60 + 1;
uint32_t v65 = (int32_t)__asm_fnstsw(g10); // 0x1e32320
g2 = g2 & -0x10000 | v65;
int3_t v66; // 0x1e32389
if ((v65 / 256 & 1) == 0) {
// 0x1e32381
g2 = 0;
v66 = g11;
} else {
int32_t v67 = g4; // 0x1e32328
float32_t v68 = *(float32_t *)(v67 + 24); // 0x1e32328
float32_t v69 = *(float32_t *)(v67 + 8); // 0x1e3232e
*(float64_t *)(g9 - 8) = (float64_t)((v54 - (float80_t)v68) * (float80_t)v69);
int32_t v70 = function_1e3dbc0((int32_t)&g708, (int32_t)&g708, (int32_t)&g708); // 0x1e32334
g2 = v70;
g2 = *(int32_t *)(g4 + 16) - 1;
g11++;
uint32_t v71 = (int32_t)__asm_fnstsw(g10); // 0x1e32348
g2 = g2 & -0x10000 | v71;
int3_t v72; // 0x1e32370
float80_t v73; // 0x1e32370
if ((v71 / 256 & 65) == 0) {
int32_t v74 = g4; // 0x1e3235c
float32_t v75 = *(float32_t *)(v74 + 24); // 0x1e3235c
float32_t v76 = *(float32_t *)(v74 + 8); // 0x1e32362
*(float64_t *)(g9 - 8) = (float64_t)((v54 - (float80_t)v75) * (float80_t)v76);
int32_t v77 = function_1e3dbc0((int32_t)&g708, (int32_t)&g708, (int32_t)&g708); // 0x1e32368
g2 = v77;
v73 = g684;
v72 = g11;
} else {
int32_t v78 = *(int32_t *)(g4 + 16) - 1; // 0x1e32350
g2 = v78;
v73 = v78;
v72 = g11 - 1;
}
// 0x1e32370
g2 = v17;
g5 = (float32_t)v73;
v66 = v72 + 1;
}
// 0x1e32389
g11 = v66 - 1;
int32_t v79 = __ftol(); // 0x1e3238c
g2 = v79;
float80_t v80 = (float32_t)a3 + (float32_t)v3; // 0x1e32391
int32_t v81 = (int32_t)g563; // 0x1e32394
g4 = v81;
float32_t v82 = *(float32_t *)(v81 + 28); // 0x1e323a0
float32_t v83 = *(float32_t *)(v81 + 12); // 0x1e323a3
*(float64_t *)(g9 - 8) = (float64_t)((v80 - (float80_t)v82) * (float80_t)v83);
g2 = function_1e3dbc0(v79, (int32_t)&g708, (int32_t)&g708);
g2 = *(int32_t *)(g4 + 20) - 1;
g11++;
uint32_t v84 = (int32_t)__asm_fnstsw(g10); // 0x1e323bd
g2 = g2 & -0x10000 | v84;
int3_t v85; // 0x1e323e5
if ((v84 / 256 & 65) == 0) {
int32_t v86 = g4; // 0x1e323d1
float32_t v87 = *(float32_t *)(v86 + 28); // 0x1e323d1
float32_t v88 = *(float32_t *)(v86 + 12); // 0x1e323d7
*(float64_t *)(g9 - 8) = (float64_t)((v80 - (float80_t)v87) * (float80_t)v88);
int32_t v89 = function_1e3dbc0((int32_t)&g708, (int32_t)&g708, (int32_t)&g708); // 0x1e323dd
g2 = v89;
v85 = g11;
} else {
// 0x1e323c2
g2 = *(int32_t *)(g4 + 20) - 1;
v85 = g11 - 1;
}
// 0x1e323e5
g11 = v85 + 1;
uint32_t v90 = (int32_t)__asm_fnstsw(g10); // 0x1e323ed
g2 = g2 & -0x10000 | v90;
int3_t v91; // 0x1e32456
if ((v90 / 256 & 1) == 0) {
// 0x1e3244e
g2 = 0;
v91 = g11;
} else {
int32_t v92 = g4; // 0x1e323f5
float32_t v93 = *(float32_t *)(v92 + 28); // 0x1e323f5
float32_t v94 = *(float32_t *)(v92 + 12); // 0x1e323fb
*(float64_t *)(g9 - 8) = (float64_t)((v80 - (float80_t)v93) * (float80_t)v94);
int32_t v95 = function_1e3dbc0((int32_t)&g708, (int32_t)&g708, (int32_t)&g708); // 0x1e32401
g2 = v95;
g2 = *(int32_t *)(g4 + 20) - 1;
g11++;
uint32_t v96 = (int32_t)__asm_fnstsw(g10); // 0x1e32415
g2 = g2 & -0x10000 | v96;
int3_t v97; // 0x1e3243d
float80_t v98; // 0x1e3243d
if ((v96 / 256 & 65) == 0) {
int32_t v99 = g4; // 0x1e32429
float32_t v100 = *(float32_t *)(v99 + 28); // 0x1e32429
float32_t v101 = *(float32_t *)(v99 + 12); // 0x1e3242f
*(float64_t *)(g9 - 8) = (float64_t)((v80 - (float80_t)v100) * (float80_t)v101);
int32_t v102 = function_1e3dbc0((int32_t)&g708, (int32_t)&g708, (int32_t)&g708); // 0x1e32435
g2 = v102;
v98 = g684;
v97 = g11;
} else {
int32_t v103 = *(int32_t *)(g4 + 20) - 1; // 0x1e3241d
g2 = v103;
v98 = v103;
v97 = g11 - 1;
}
// 0x1e3243d
float32_t v104;
g2 = v104;
g5 = (float32_t)v98;
v91 = v97 + 1;
}
// 0x1e32456
g11 = v91 - 1;
int32_t v105 = __ftol(); // 0x1e32459
int32_t v106 = g8; // 0x1e32461
int32_t v107 = (int32_t)g563; // 0x1e32467
g2 = v107;
int32_t v108 = g6; // 0x1e3246c
float32_t v109 = *g563; // 0x1e3246f
float32_t v110 = *(float32_t *)(v107 + 24); // 0x1e32471
float32_t v111 = (float80_t)(float32_t)v106 * (float80_t)v109 + (float80_t)v110; // 0x1e32477
int32_t result; // 0x1e32520
if (v79 >= v106) {
float32_t v112 = *(float32_t *)(v107 + 4); // 0x1e3247a
float32_t v113 = *(float32_t *)(v107 + 28); // 0x1e32480
float32_t * v114 = g563; // 0x1e3252076
int3_t v115 = g11; // 0x1e324a471
int32_t v116 = v108; // 0x1e32494
while (true) {
// 0x1e32494
g4 = v116;
int32_t v117; // 0x1e3251f
float32_t * v118; // 0x1e32520
int3_t v119; // 0x1e3252b
if (v105 >= v116) {
int3_t v120 = v115; // 0x1e324a4
int3_t v121; // 0x1e32514
while (true) {
uint32_t v122 = (int32_t)__asm_fnstsw(g10); // 0x1e324aa
g2 = g2 & -0x10000 | v122;
if ((v122 / 256 & 65) != 0) {
// 0x1e324af
g2 = (int32_t)g563;
uint32_t v123 = (int32_t)__asm_fnstsw(g10); // 0x1e324bc
g2 = g2 & -0x10000 | v123;
if ((v123 / 256 & 1) == 0) {
uint32_t v124 = (int32_t)__asm_fnstsw(g10); // 0x1e324c7
g2 = g2 & -0x10000 | v124;
if ((v124 / 256 & 65) != 0) {
// 0x1e324cc
g2 = (int32_t)g563;
uint32_t v125 = (int32_t)__asm_fnstsw(g10); // 0x1e324da
g2 = g2 & -0x10000 | v125;
if ((v125 / 256 & 1) == 0) {
if (a5 != 0) {
// 0x1e324e5
*(int32_t *)(g9 - 4) = a5;
*(int32_t *)(g9 - 8) = g4;
*(int32_t *)(g9 - 12) = g8;
g5 = (int32_t)g563;
g2 = function_1e30f1c((int32_t)&g708, (int32_t)&g708);
}
if (a6 != 0) {
// 0x1e324fb
*(int32_t *)(g9 - 4) = a6;
*(int32_t *)(g9 - 8) = g4;
*(int32_t *)(g9 - 12) = g8;
g5 = (int32_t)g563;
g2 = function_1e30f54((int32_t)&g708, (int32_t)&g708);
}
}
}
}
}
int32_t v126 = g4 + 1; // 0x1e3250b
g4 = v126;
g2 = (int32_t)g563;
v121 = v120;
if (v105 < v126) {
// break -> 0x1e3251f
break;
}
v120 = v121;
}
// 0x1e3251f
v119 = v121;
v118 = g563;
v117 = g8;
} else {
v119 = v115;
v118 = v114;
v117 = v106;
}
int32_t v127 = v117 + 1; // 0x1e3251f
g8 = v127;
result = (int32_t)v118;
g2 = result;
g5 = (float32_t)((float80_t)(float32_t)v108 * (float80_t)v112 + (float80_t)v113);
g11 = v119;
if (v79 < v127) {
// break -> 0x1e3253c
break;
}
// 0x1e3251f
v114 = v118;
v106 = v127;
v111 += *v118;
v115 = v119;
v116 = g6;
}
} else {
result = v107;
}
// 0x1e3253c
g8 = *(int32_t *)(g9 + 4);
g3 = v1;
return result;
}