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

2244 lines
61 KiB
C

#include "pinball.h"
// Address range: 0x1e2ad55 - 0x1e2af0e
int32_t function_1e2ad55(int32_t a1, float80_t a2) {
float32_t v1 = a2;
g2 = a1;
int32_t v2 = g8; // 0x1e2ad63
int32_t v3 = g6; // 0x1e2ad64
int32_t v4 = g5; // 0x1e2ad65
g8 = v4;
if (a1 == 11) {
// 0x1e2ad96
g2 = function_1e3dbc0((int32_t)v1, v3, v2);
int32_t v5 = __ftol(); // 0x1e2ada7
g2 = v5;
g6 = v5;
int32_t v6 = g8; // 0x1e2adae
int32_t v7 = *(int32_t *)(v6 + 34); // 0x1e2adae
g2 = v7;
int32_t v8 = *(int32_t *)(v7 + 4); // 0x1e2adb1
g5 = v8;
int32_t v9 = 2 * v5; // 0x1e2adb7
g5 = v9;
int32_t v10 = *(int32_t *)(v8 + 4) - 1; // 0x1e2adbe
g2 = v10;
int32_t v11; // 0x1e2adc6
if (v9 > v10) {
// 0x1e2adc3
v11 = (v10 - (v10 >> 31)) / 2;
g2 = v11;
g6 = v11;
} else {
v11 = v5;
}
int32_t v12; // 0x1e2add5
if (v11 < 0) {
// 0x1e2adce
g6 = 0;
v12 = 0;
} else {
v12 = v11;
}
int32_t v13 = v6 + 78; // 0x1e2add0
g4 = v13;
uint32_t v14 = *(int32_t *)v13; // 0x1e2add3
g2 = v14;
if (v14 == v12) {
// 0x1e2af03
g2 = 0;
return 0;
}
int32_t v15; // 0x1e2ade9
int32_t v16; // 0x1e2ade9
if (v14 <= v12) {
// 0x1e2addf
g2 = function_1e39a10(*(int32_t *)(v6 + 94));
g11++;
v16 = g6;
v15 = g4;
} else {
v16 = v12;
v15 = v13;
}
// 0x1e2ade9
int32_t v17; // 0x1e2adf9
int32_t v18; // 0x1e2adf9
if (*(int32_t *)v15 > v16) {
// 0x1e2aded
*(int32_t *)(g9 - 4) = *(int32_t *)(g8 + 98);
g2 = function_1e39a10((int32_t)&g708);
g11++;
v18 = g4;
v17 = g6;
} else {
v18 = v15;
v17 = v16;
}
// 0x1e2adf7
g5 = g8;
*(int32_t *)v18 = v17;
g2 = function_1e2accd();
*(int32_t *)(g9 - 4) = g8;
*(int32_t *)(g9 - 8) = 11;
g2 = function_1e328b9((int32_t)&g708, (int32_t)&g708);
// 0x1e2af03
g2 = 0;
return 0;
}
if (a1 == 12) {
int32_t v19 = *(int32_t *)(v4 + 34); // 0x1e2ae11
g2 = v19;
int32_t v20 = *(int32_t *)(v4 + 78) + 1; // 0x1e2ae14
g7 = v20;
int32_t v21 = *(int32_t *)(v19 + 4); // 0x1e2ae15
g5 = v21;
int32_t v22 = 2 * v20; // 0x1e2ae1b
g5 = v22;
int32_t v23 = *(int32_t *)(v21 + 4) - 1; // 0x1e2ae22
g2 = v23;
int32_t v24; // 0x1e2ae2a
if (v22 > v23) {
// 0x1e2ae27
v24 = (v23 - (v23 >> 31)) / 2;
g2 = v24;
g7 = v24;
} else {
v24 = v20;
}
// 0x1e2ae2e
g5 = v4;
g2 = function_1e2ad55(11, (float80_t)v24);
// 0x1e2af03
g2 = 0;
return 0;
}
if (a1 == 13) {
int32_t v25 = *(int32_t *)(v4 + 78) - 1; // 0x1e2ae4b
int32_t v26;
int32_t v27; // 0x1e2ae55
if (v25 < 0) {
v26 = 0;
v27 = 0;
} else {
v26 = v25;
v27 = v25;
}
// 0x1e2ae50
g2 = v26;
g2 = function_1e2ad55(11, (float80_t)v27);
// 0x1e2af03
g2 = 0;
return 0;
}
if (a1 == 1020) {
int32_t v28 = *(int32_t *)(v4 + 30); // 0x1e2ae6d
g2 = v28;
int32_t v29 = *(int32_t *)(v4 + 78); // 0x1e2ae70
g7 = v29;
int32_t v30 = *(int32_t *)(v28 + 218); // 0x1e2ae76
g5 = v30;
*(int32_t *)(v4 + 122 + 8 * v30) = v29;
int32_t v31 = g8; // 0x1e2ae83
int32_t v32 = *(int32_t *)(v31 + 6); // 0x1e2ae83
g2 = v32;
*(int32_t *)(v31 + 118 + 8 * g5) = v32;
g2 = function_1e3dbc0((int32_t)v1, v3, v2);
int32_t v33 = __ftol(); // 0x1e2ae92
g2 = v33;
int32_t v34 = g8; // 0x1e2ae97
*(int32_t *)(v34 + 78) = *(int32_t *)(8 * v33 + 122 + v34);
int32_t v35 = g8; // 0x1e2aea1
g5 = v35;
int32_t v36 = *(int32_t *)(v35 + 118 + 8 * g2); // 0x1e2aea6
g7 = v36;
*(int32_t *)(v35 + 6) = v36;
g2 = function_1e2ad55(11, (float80_t)*(int32_t *)(v35 + 78));
// 0x1e2af03
g2 = 0;
return 0;
}
if (a1 != 1024) {
// 0x1e2af03
g2 = 0;
return 0;
}
int32_t v37 = *(int32_t *)(v4 + 82); // 0x1e2aeb9
g2 = v37;
int32_t v38; // 0x1e2aed3
if (v37 != 0) {
// 0x1e2aec0
g2 = function_1e32771(v37);
g2 = function_1e2ac7c(*(int32_t *)(g8 + 82));
v38 = g8;
} else {
v38 = v4;
}
// 0x1e2aecf
g6 = 0;
g2 = *(int32_t *)(v38 + 30);
*(int32_t *)(v38 + 78) = 0;
*(int32_t *)(g8 + 6) = g6;
int32_t v39 = g8; // 0x1e2aee4
int32_t v40; // 0x1e2aef0
if (*(int32_t *)(g2 + 214) > g6) {
int32_t v41 = v39 + 122; // 0x1e2aee4
g2 = v41;
int32_t v42 = 1; // edx
*(int32_t *)v41 = g6;
*(int32_t *)(g2 - 4) = g6;
int32_t v43 = g2 + 8; // 0x1e2aeed
g2 = v43;
v40 = g8;
int32_t v44 = *(int32_t *)(v40 + 30); // 0x1e2aef0
g5 = v44;
while (*(int32_t *)(v44 + 214) > v42) {
// 0x1e2aee7
v42++;
*(int32_t *)v43 = g6;
*(int32_t *)(g2 - 4) = g6;
v43 = g2 + 8;
g2 = v43;
v40 = g8;
v44 = *(int32_t *)(v40 + 30);
g5 = v44;
}
} else {
v40 = v39;
}
// 0x1e2aefb
*(int32_t *)(g9 - 4) = v40;
*(int32_t *)(g9 - 8) = 0;
g2 = function_1e2ac7c((int32_t)&g708);
// 0x1e2af03
g2 = 0;
return 0;
}
// Address range: 0x1e2af0e - 0x1e2af22
int32_t function_1e2af0e(int32_t a1) {
// 0x1e2af0e
g2 = a1;
int32_t result;
if (a1 < 4) {
// 0x1e2af1b
result = *(int32_t *)(4 * a1 + 102 + g5);
} else {
result = 0;
}
// 0x1e2af1f
g2 = result;
return result;
}
// Address range: 0x1e2af22 - 0x1e2af36
int32_t function_1e2af22(int32_t a1, int32_t a2) {
// 0x1e2af22
g2 = a1;
int32_t result; // 0x1e2af33
if (a1 < 4) {
// 0x1e2af2b
*(int32_t *)(4 * a1 + 102 + g5) = a2;
result = g2;
} else {
result = a1;
}
// 0x1e2af33
return result;
}
// Address range: 0x1e2af36 - 0x1e2b090
int32_t function_1e2af36(int32_t a1, int32_t a2) {
// 0x1e2af36
int32_t v1; // bp-100
int32_t v2 = v1; // 0x1e2af39
int32_t v3 = g6; // 0x1e2af3e
g6 = 0;
g2 = function_1e2a3f7(a1, a2, 0, v3);
g5 = v2;
*(int32_t *)g8 = (int32_t)&g37;
*(int32_t *)(g8 + 102) = g6;
g2 = function_1e39641(a2, g6, v2);
int32_t v4;
int32_t v5 = *(int32_t *)v4; // bp-16
g2 = *(int32_t *)(v4 + 4);
g4 = 0;
int32_t v6 = *(int32_t *)(v4 + 8); // bp-28
g2 = *(int32_t *)(v4 + 12);
int32_t v7 = function_1e3df20(85); // 0x1e2af86
g2 = v7;
int32_t v8; // 0x1e2afab
if (v7 == 0) {
// 0x1e2af36
v8 = g4;
} else {
int32_t v9 = g8; // 0x1e2af9d
g5 = v7;
int32_t v10;
int32_t v11 = function_1e305a4(v9, v9 + 5, v10, &v6, &v5); // 0x1e2afa4
g2 = v11;
g4 = v11;
v8 = v11;
}
// 0x1e2afab
g2 = *(int32_t *)v8;
g5 = v8;
int32_t v12 = g8; // 0x1e2afaf
int32_t v13 = v12 + 46; // 0x1e2afaf
g6 = v13;
int32_t v14 = *(int32_t *)v13; // 0x1e2afb5
g5 = v14;
int32_t v15 = *(int32_t *)v14; // 0x1e2afb7
g2 = v15;
int32_t v16; // 0x1e2afc9
if (*(int32_t *)(v14 + 4) == v15) {
// 0x1e2afbe
*(int32_t *)(g9 - 4) = *(int32_t *)(v12 + 42);
*(int32_t *)(g9 - 8) = g5;
int32_t v17 = function_1e3a739((int32_t)&g708, (int32_t)&g708); // 0x1e2afc2
g2 = v17;
*(int32_t *)g6 = v17;
v16 = g4;
} else {
v16 = v8;
}
// 0x1e2afc9
*(int32_t *)(g9 - 4) = v16;
g4 = g8 + 106;
*(int32_t *)(g9 - 8) = *(int32_t *)g6;
g2 = function_1e3a6a7((int32_t)&g708, (int32_t)&g708);
*(int32_t *)(g9 - 4) = 85;
int32_t v18 = function_1e3df20((int32_t)&g708); // 0x1e2afd6
g2 = v18;
if (v18 == 0) {
// 0x1e2affd
*(int32_t *)g4 = 0;
} else {
// 0x1e2afe2
*(int32_t *)g9 = (int32_t)&v6;
*(int32_t *)(g9 - 4) = (int32_t)&v5;
g5 = v18;
*(int32_t *)(g9 - 12) = g8 + 5;
*(int32_t *)(g9 - 16) = g8;
int32_t v19 = function_1e305a4((int32_t)&g708, (int32_t)&g708, (int32_t)&g708, &g708, &g708); // 0x1e2aff4
g2 = v19;
*(int32_t *)g4 = v19;
}
int32_t * v20 = (int32_t *)g4; // 0x1e2b003
int32_t v21 = *v20; // 0x1e2b003
g5 = v21;
g2 = *(int32_t *)v21;
int32_t v22 = *v20; // 0x1e2b00a
g4 = v22;
int32_t v23 = *(int32_t *)g6; // 0x1e2b00c
g5 = v23;
int32_t v24 = *(int32_t *)v23; // 0x1e2b00e
g2 = v24;
int32_t v25; // 0x1e2b020
if (*(int32_t *)(v23 + 4) == v24) {
// 0x1e2b015
*(int32_t *)(g9 - 4) = *(int32_t *)(g8 + 42);
*(int32_t *)(g9 - 8) = g5;
int32_t v26 = function_1e3a739((int32_t)&g708, (int32_t)&g708); // 0x1e2b019
g2 = v26;
*(int32_t *)g6 = v26;
v25 = g4;
} else {
v25 = v22;
}
// 0x1e2b020
*(int32_t *)(g9 - 4) = v25;
*(int32_t *)(g9 - 8) = *(int32_t *)g6;
g2 = function_1e3a6a7((int32_t)&g708, (int32_t)&g708);
*(int32_t *)(g8 + 90) = 0x3f266666;
*(int32_t *)(g8 + 82) = 0x47435000;
*(int32_t *)(g8 + 86) = 0x40a00000;
*(int32_t *)(g9 - 4) = 1202;
*(int32_t *)(g9 - 8) = 0;
*(int32_t *)(g9 - 12) = a2;
int32_t v27 = function_1e3991a((int32_t)&g708, (int32_t)&g708); // 0x1e2b047
g2 = v27;
if (v27 != 0) {
int32_t v28 = *(int32_t *)v27; // 0x1e2b050
g2 = v28;
*(int32_t *)(g8 + 90) = v28;
}
// 0x1e2b055
*(int32_t *)(g9 - 4) = 1200;
*(int32_t *)(g9 - 8) = 0;
*(int32_t *)(g9 - 12) = a2;
int32_t v29 = function_1e3991a((int32_t)&g708, (int32_t)&g708); // 0x1e2b05f
g2 = v29;
if (v29 != 0) {
int32_t v30 = *(int32_t *)v29; // 0x1e2b068
g2 = v30;
*(int32_t *)(g8 + 82) = v30;
}
// 0x1e2b06d
*(int32_t *)(g9 - 4) = 1201;
*(int32_t *)(g9 - 8) = 0;
*(int32_t *)(g9 - 12) = a2;
int32_t v31 = function_1e3991a((int32_t)&g708, (int32_t)&g708); // 0x1e2b077
g2 = v31;
if (v31 != 0) {
int32_t v32 = *(int32_t *)v31; // 0x1e2b080
g2 = v32;
*(int32_t *)(g8 + 86) = v32;
}
// 0x1e2b085
g2 = g8;
g6 = *(int32_t *)g9;
g4 = *(int32_t *)(g9 + 8);
return g8;
}
// Address range: 0x1e2b090 - 0x1e2b0ae
int32_t function_1e2b090(char a1) {
// 0x1e2b090
g2 = function_1e2a4cb();
if ((a1 & 1) != 0) {
// 0x1e2b09f
g2 = function_1e3df60(g8);
}
// 0x1e2b0a8
g2 = g8;
return g8;
}
// Address range: 0x1e2b0ae - 0x1e2b0c1
int32_t function_1e2b0ae(int32_t a1) {
// 0x1e2b0ae
g5 = a1;
*(int32_t *)(a1 + 102) = 0;
int32_t result = function_1e2b151(); // 0x1e2b0b9
g2 = result;
return result;
}
// Address range: 0x1e2b0c1 - 0x1e2b151
int32_t function_1e2b0c1(int32_t a1, int32_t a2, float32_t a3, int32_t a4) {
// 0x1e2b0c1
g2 = a2;
g8 = a1;
*(int32_t *)(a1 + 42) = *(int32_t *)a2;
int32_t v1 = g8; // 0x1e2b0d8
int32_t v2 = v1 + 134; // edx
int32_t v3 = *(int32_t *)(g2 + 4); // 0x1e2b0de
g2 = v3;
g6 = a4;
*(int32_t *)(v1 + 46) = v3;
g2 = *(int32_t *)v2;
float80_t v4 = (float80_t)*(float32_t *)(a1 + 70) - (float80_t)a3; // 0x1e2b0e9
*(float32_t *)(g8 + 70) = (float32_t)v4;
int32_t v5 = g2; // 0x1e2b0ec
if (v5 < 5) {
// 0x1e2b0f1
*(int32_t *)(4 * v5 + 114 + g8) = g6;
int32_t * v6 = (int32_t *)v2; // 0x1e2b0f5
*v6 = *v6 + 1;
}
// 0x1e2b0f7
*(int32_t *)(g5 + 94) = -1;
int32_t v7 = g5; // 0x1e2b0fe
int32_t v8; // 0x1e2b123
if (*(int32_t *)(v7 + 106) != g6) {
// 0x1e2b103
*(int32_t *)(v7 + 94) = 1;
v8 = g5;
} else {
v8 = v7;
}
int32_t v9 = g8 + 66; // 0x1e2b10a
int32_t v10 = v8 + 78; // 0x1e2b111
v2 = v10;
if ((*(int32_t *)v9 & 0x7fffffff) == 0) {
int32_t v11 = *(int32_t *)(v8 + 86); // 0x1e2b123
g2 = v11;
*(int32_t *)v10 = v11;
} else {
float80_t v12 = 20.0L * (float80_t)*(float32_t *)v9; // 0x1e2b119
*(float32_t *)v10 = (float32_t)v12;
}
uint32_t v13 = (int32_t)__asm_fnstsw(g10); // 0x1e2b12d
g2 = (g2 & -0x10000) | v13;
if ((v13 / 256 & 1) != 0) {
int32_t v14 = *(int32_t *)(g5 + 86); // 0x1e2b132
g2 = v14;
*(int32_t *)v2 = v14;
}
uint32_t v15 = (int32_t)__asm_fnstsw(g10); // 0x1e2b13c
g2 = (g2 & -0x10000) | v15;
if ((v15 / 256 & 65) == 0) {
int32_t v16 = *(int32_t *)(g5 + 82); // 0x1e2b141
g2 = v16;
*(int32_t *)v2 = v16;
}
int32_t result = function_1e2b151(); // 0x1e2b146
g2 = result;
return result;
}
// Address range: 0x1e2b151 - 0x1e2b210
int32_t function_1e2b151(void) {
int32_t v1 = g5; // 0x1e2b153
int32_t v2 = v1 + 98; // 0x1e2b157
g6 = v2;
g8 = v1;
int32_t v3 = *(int32_t *)(v1 + 34) + 4; // edx
int32_t v4 = *(int32_t *)(v1 + 94); // 0x1e2b15f
g5 = v4;
int32_t * v5 = (int32_t *)v2; // 0x1e2b162
int32_t v6 = *v5 + v4; // 0x1e2b162
g5 = v6;
*v5 = v6;
int32_t v7 = *(int32_t *)v3; // 0x1e2b166
g2 = v7;
int32_t v8 = *(int32_t *)(v7 + 4); // 0x1e2b168
g2 = v8;
if (v8 > v6) {
if (v6 < 0) {
int32_t v9 = v8 - 1; // 0x1e2b17b
g2 = v9;
*(int32_t *)g6 = v9;
}
} else {
// 0x1e2b16f
*(int32_t *)g6 = 0;
}
int32_t v10 = *(int32_t *)g6; // 0x1e2b17e
g5 = v10;
int32_t v11 = *(int32_t *)v3; // 0x1e2b180
g2 = v11;
g4 = *(int32_t *)(4 * v10 + 8 + v11);
int32_t v12 = g8; // 0x1e2b186
int32_t v13 = *(int32_t *)(v12 + 30); // 0x1e2b186
g5 = v13;
if (*(int32_t *)(v13 + 370) == 0) {
// 0x1e2b192
g2 = function_1e328b9(63, v12);
int32_t v14 = *(int32_t *)(g8 + 70); // 0x1e2b19a
g2 = v14;
if (v14 != 0) {
// 0x1e2b1a1
g2 = function_1e39a10(v14);
g11++;
}
// 0x1e2b1a9
if (*(int32_t *)g6 == 0) {
// 0x1e2b1ae
*(int32_t *)(g9 - 4) = g8;
*(int32_t *)(g9 - 8) = 62;
g2 = function_1e328b9((int32_t)&g708, (int32_t)&g708);
}
}
int32_t v15 = *(int32_t *)(g8 + 30); // 0x1e2b1b6
g5 = v15;
int32_t v16 = *(int32_t *)(g4 + 33); // 0x1e2b1b9
g2 = v16;
int32_t v17 = v16 - *(int32_t *)(v15 + 238); // 0x1e2b1bf
g2 = v17;
*(int32_t *)(g9 - 4) = v17;
int32_t v18 = *(int32_t *)(g4 + 29); // 0x1e2b1c6
g2 = v18;
int32_t v19 = v18 - *(int32_t *)(g5 + 234); // 0x1e2b1c9
g2 = v19;
g5 = *(int32_t *)(*(int32_t *)(g8 + 38) + 4);
*(int32_t *)(g9 - 8) = v19;
int32_t v20 = *(int32_t *)g6; // 0x1e2b1d3
g2 = v20;
*(int32_t *)(g9 - 12) = *(int32_t *)(4 * v20 + 8 + g5);
*(int32_t *)(g9 - 16) = g4;
*(int32_t *)(g9 - 20) = *(int32_t *)(g8 + 26);
int32_t v21 = function_1e29a04((int32_t)&g708, (int32_t)&g708, (int32_t)&g708, (int32_t)&g708, (int32_t)&g708); // 0x1e2b1dd
g2 = v21;
float32_t * v22 = (float32_t *)(g8 + 78); // 0x1e2b1e5
float80_t v23 = (float80_t)*(float32_t *)(g8 + 90) * (float80_t)*v22; // 0x1e2b1e5
*v22 = (float32_t)v23;
uint32_t v24 = (int32_t)__asm_fnstsw(g10); // 0x1e2b1f1
int32_t v25 = (g2 & -0x10000) | v24; // 0x1e2b1f1
g2 = v25;
int32_t result; // 0x1e2b207
if ((v24 / 256 & 1) == 0) {
float32_t v26 = *(float32_t *)(g8 + 78); // 0x1e2b1f8
*(int32_t *)(g9 - 4) = 0x1e2b0ae;
*(int32_t *)(g9 - 8) = g8;
*(float32_t *)(g9 - 12) = (float32_t)(1.0L / (float80_t)v26);
result = function_1e325d2((int32_t)&g708, (int32_t)&g708, (int32_t)&g708);
g2 = result;
} else {
result = v25;
}
// 0x1e2b20c
return result;
}
// Address range: 0x1e2b210 - 0x1e2b270
int32_t function_1e2b210(int32_t a1) {
int32_t v1 = g5; // 0x1e2b21a
g8 = v1;
if (a1 != 1024) {
// 0x1e2b269
g2 = 0;
return 0;
}
int32_t v2 = *(int32_t *)(v1 + 102); // 0x1e2b21e
g2 = v2;
int32_t v3; // 0x1e2b230
if (v2 != 0) {
// 0x1e2b227
g2 = function_1e32771(v2);
*(int32_t *)(g8 + 102) = 0;
v3 = g8;
} else {
v3 = v1;
}
// 0x1e2b230
g5 = *(int32_t *)(v3 + 34);
*(int32_t *)(v3 + 98) = 0;
int32_t v4 = *(int32_t *)(*(int32_t *)(g5 + 4) + 8); // 0x1e2b23d
g5 = v4;
int32_t v5 = *(int32_t *)(g8 + 30); // 0x1e2b240
int32_t v6 = *(int32_t *)(v4 + 33); // 0x1e2b243
g2 = v6;
int32_t v7 = v6 - *(int32_t *)(v5 + 238); // 0x1e2b246
g2 = v7;
*(int32_t *)(g9 - 4) = v7;
int32_t v8 = *(int32_t *)(g5 + 29); // 0x1e2b24d
g2 = v8;
int32_t v9 = v8 - *(int32_t *)(v5 + 234); // 0x1e2b250
g2 = v9;
*(int32_t *)(g9 - 8) = v9;
int32_t v10 = *(int32_t *)(*(int32_t *)(g8 + 38) + 4); // 0x1e2b25a
*(int32_t *)(g9 - 12) = *(int32_t *)(v10 + 8);
*(int32_t *)(g9 - 16) = g5;
*(int32_t *)(g9 - 20) = *(int32_t *)(g8 + 26);
int32_t v11 = function_1e29a04((int32_t)&g708, (int32_t)&g708, (int32_t)&g708, (int32_t)&g708, (int32_t)&g708); // 0x1e2b264
g2 = v11;
// 0x1e2b269
g2 = 0;
return 0;
}
// Address range: 0x1e2b270 - 0x1e2b284
int32_t function_1e2b270(int32_t a1) {
// 0x1e2b270
g2 = a1;
int32_t result;
if (a1 < 2) {
// 0x1e2b27d
result = *(int32_t *)(4 * a1 + 110 + g5);
} else {
result = 0;
}
// 0x1e2b281
g2 = result;
return result;
}
// Address range: 0x1e2b284 - 0x1e2b298
int32_t function_1e2b284(int32_t a1, int32_t a2) {
// 0x1e2b284
g2 = a1;
int32_t result; // 0x1e2b295
if (a1 < 2) {
// 0x1e2b28d
*(int32_t *)(4 * a1 + 110 + g5) = a2;
result = g2;
} else {
result = a1;
}
// 0x1e2b295
return result;
}
// Address range: 0x1e2b298 - 0x1e2b2d1
int32_t function_1e2b298(int32_t a1, int32_t a2) {
int32_t v1 = g8; // 0x1e2b298
g2 = function_1e2a3f7(a1, a2, 1, g6);
g6 = 0;
*(int32_t *)g8 = (int32_t)&g38;
int32_t v2 = function_1e3991a(v1, 0); // 0x1e2b2bd
g2 = v2;
*(int32_t *)(g8 + 82) = *(int32_t *)v2;
*(int32_t *)(g8 + 78) = g6;
g2 = g8;
g6 = v1;
return g8;
}
// Address range: 0x1e2b2d1 - 0x1e2b2ef
int32_t function_1e2b2d1(char a1) {
// 0x1e2b2d1
g2 = function_1e2a4cb();
if ((a1 & 1) != 0) {
// 0x1e2b2e0
g2 = function_1e3df60(g8);
}
// 0x1e2b2e9
g2 = g8;
return g8;
}
// Address range: 0x1e2b2ef - 0x1e2b368
int32_t function_1e2b2ef(int32_t a1, int32_t a2, int32_t a3) {
int32_t v1 = g5; // 0x1e2b2f3
int32_t v2 = *(int32_t *)(v1 + 30); // 0x1e2b2f3
g2 = v2;
if (*(int32_t *)(v2 + 370) != 0) {
int32_t v3 = *(int32_t *)(v1 + 54); // 0x1e2b30b
float80_t v4 = function_1e2f084(a1, a2, a3, v3, *(int32_t *)(v1 + 58), 0x4e6e6b28, 0); // 0x1e2b317
g2 = (float32_t)v4;
// 0x1e2b363
return (float32_t)v4;
}
int32_t v5 = *(int32_t *)(v1 + 62); // 0x1e2b320
int32_t v6 = *(int32_t *)(v1 + 66); // 0x1e2b323
int32_t v7 = *(int32_t *)(v1 + 58); // 0x1e2b326
int32_t v8 = *(int32_t *)(v1 + 54); // 0x1e2b329
g2 = (float32_t)function_1e2f084(a1, a2, a3, v8, v7, v6, v5);
g11++;
uint32_t v9 = (int32_t)__asm_fnstsw(g10); // 0x1e2b33d
int32_t result = (g2 & -0x10000) | v9; // 0x1e2b33d
g2 = result;
if ((v9 / 256 & 65) != 0) {
// 0x1e2b363
return result;
}
int32_t v10 = *(int32_t *)(g8 + 74); // 0x1e2b342
g2 = v10;
if (v10 != 0) {
// 0x1e2b349
g2 = function_1e39a10(v10);
g11++;
}
// 0x1e2b351
*(int32_t *)(g9 - 4) = 0;
g2 = g5;
*(int32_t *)(g9 - 8) = 49;
int32_t v11 = g8; // 0x1e2b357
g5 = v11;
*(int32_t *)(g9 - 12) = v11;
*(int32_t *)(g9 - 16) = 63;
int32_t result2 = function_1e328b9((int32_t)&g708, (int32_t)&g708); // 0x1e2b35e
g2 = result2;
// 0x1e2b363
return result2;
}
// Address range: 0x1e2b368 - 0x1e2b3a2
int32_t function_1e2b368(int32_t a1) {
int32_t v1 = g8; // 0x1e2b368
g6 = a1;
g8 = 0;
*(int32_t *)(a1 + 78) = 0;
*(char *)(g6 + 5) = 1;
int32_t v2 = g6; // 0x1e2b377
int32_t v3 = *(int32_t *)(v2 + 34); // 0x1e2b377
g2 = v3;
int32_t v4 = *(int32_t *)(v3 + 4); // 0x1e2b37a
g5 = v4;
int32_t result = function_1e29a40(*(int32_t *)(v2 + 26), *(int32_t *)(v4 + 8)); // 0x1e2b383
g2 = result;
if (v1 == g8) {
// 0x1e2b39d
return result;
}
int32_t v5 = *(int32_t *)(g6 + 70); // 0x1e2b38e
g2 = v5;
int32_t result2; // 0x1e2b396
if (v5 != 0) {
// 0x1e2b395
result2 = function_1e39a10(v5);
g2 = result2;
} else {
result2 = 0;
}
// 0x1e2b39d
return result2;
}
// Address range: 0x1e2b3a2 - 0x1e2b478
int32_t function_1e2b3a2(int32_t a1, int32_t a2) {
// 0x1e2b3a2
g2 = a1;
int32_t v1 = g8; // 0x1e2b3a6
int32_t v2 = g6; // 0x1e2b3a7
int32_t v3 = g5; // 0x1e2b3a8
g8 = v3;
if (a1 == 49) {
// 0x1e2b3c7
*(char *)(v3 + 5) = 0;
g2 = function_1e29a40(*(int32_t *)(g8 + 26), 0);
// 0x1e2b471
g2 = 0;
return 0;
}
if (a1 == 50) {
int32_t v4 = function_1e325d2(*(int32_t *)(v3 + 82), v3, 0x1e2b368); // 0x1e2b3e3
g2 = v4;
*(int32_t *)(g8 + 78) = v4;
// 0x1e2b471
g2 = 0;
return 0;
}
if (a1 == 1020) {
int32_t v5 = v3 + 6; // 0x1e2b3f4
g6 = v5;
int32_t v6 = *(int32_t *)(v3 + 30); // 0x1e2b3f7
g2 = v6;
int32_t v7 = *(int32_t *)v5; // 0x1e2b3fd
g5 = v7;
int32_t v8 = *(int32_t *)(v6 + 218); // 0x1e2b3ff
g7 = v8;
*(int32_t *)(v3 + 98 + 4 * v8) = v7;
g2 = function_1e3dbc0(a2, v2, v1);
int32_t v9 = __ftol(); // 0x1e2b414
g2 = v9;
int32_t v10 = *(int32_t *)(4 * v9 + 98 + g8); // 0x1e2b419
g5 = v10;
g2 = 50;
*(int32_t *)g6 = v10;
int32_t v11 = g5; // 0x1e2b426
g5 = g8;
int32_t v12 = (int32_t)(v11 != 0) + g2; // 0x1e2b42b
g2 = v12;
g2 = function_1e2b3a2(v12, 0);
// 0x1e2b471
g2 = 0;
return 0;
}
if (a1 != 1024) {
// 0x1e2b471
g2 = 0;
return 0;
}
// 0x1e2b436
g6 = 0;
g2 = *(int32_t *)(v3 + 30);
*(int32_t *)(v3 + 6) = 0;
int32_t v13 = g6; // 0x1e2b43e
int32_t v14 = g8; // 0x1e2b446
int32_t v15; // 0x1e2b45c
if (*(int32_t *)(g2 + 214) > v13) {
int32_t v16 = v14 + 98; // 0x1e2b446
g2 = v16;
g5 = 0;
g6 = v13 + 1;
*(int32_t *)v16 = 0;
int32_t v17 = g2 + 4; // 0x1e2b44e28
g2 = v17;
int32_t v18 = g8; // 0x1e2b45129
int32_t v19 = g6; // 0x1e2b45436
int32_t v20; // 0x1e2b451
if (*(int32_t *)(*(int32_t *)(v18 + 30) + 214) > v19) {
g6 = v19 + 1;
*(int32_t *)v17 = g5;
int32_t v21 = g2 + 4; // 0x1e2b44e
g2 = v21;
v20 = g8;
while (*(int32_t *)(*(int32_t *)(v20 + 30) + 214) > g6) {
// 0x1e2b44b
g6++;
*(int32_t *)v21 = g5;
v21 = g2 + 4;
g2 = v21;
v20 = g8;
}
} else {
v20 = v18;
}
v15 = v20;
} else {
v15 = v14;
}
int32_t v22 = *(int32_t *)(v15 + 78); // 0x1e2b45c
g2 = v22;
int32_t v23; // 0x1e2b469
if (v22 != 0) {
// 0x1e2b463
g2 = function_1e32771(v22);
v23 = g8;
} else {
v23 = v15;
}
// 0x1e2b469
*(int32_t *)(g9 - 4) = v23;
*(int32_t *)(g9 - 8) = 0;
g2 = function_1e2b368((int32_t)&g708);
// 0x1e2b471
g2 = 0;
return 0;
}
// Address range: 0x1e2b478 - 0x1e2b48c
int32_t function_1e2b478(int32_t a1) {
// 0x1e2b478
g2 = a1;
int32_t result;
if (a1 < 3) {
// 0x1e2b485
result = *(int32_t *)(4 * a1 + 86 + g5);
} else {
result = 0;
}
// 0x1e2b489
g2 = result;
return result;
}
// Address range: 0x1e2b48c - 0x1e2b4a0
int32_t function_1e2b48c(int32_t a1, int32_t a2) {
// 0x1e2b48c
g2 = a1;
int32_t result; // 0x1e2b49d
if (a1 < 3) {
// 0x1e2b495
*(int32_t *)(4 * a1 + 86 + g5) = a2;
result = g2;
} else {
result = a1;
}
// 0x1e2b49d
return result;
}
// Address range: 0x1e2b4a0 - 0x1e2b4f0
int32_t function_1e2b4a0(int32_t a1, int32_t a2) {
int32_t v1 = g3; // bp-4
g3 = v1;
int32_t v2; // bp-76
int32_t v3 = v2; // 0x1e2b4a3
g2 = function_1e2a3f7(a1, a2, 1, g6);
g6 = 0;
g5 = v3;
*(int32_t *)g8 = (int32_t)&g39;
int32_t v4 = g6; // 0x1e2b4c3
*(int32_t *)(g8 + 82) = v4;
*(int32_t *)(g8 + 86) = 0x3dcccccd;
g2 = function_1e39641(a2, v4, v3);
int32_t v5 = 50; // bp-116
g5 = g8;
function_1e2b566(v5, g6);
g2 = g8;
g6 = v5;
g3 = v1;
return g8;
}
// Address range: 0x1e2b4f0 - 0x1e2b50e
int32_t function_1e2b4f0(char a1) {
// 0x1e2b4f0
g2 = function_1e2a4cb();
if ((a1 & 1) != 0) {
// 0x1e2b4ff
g2 = function_1e3df60(g8);
}
// 0x1e2b508
g2 = g8;
return g8;
}
// Address range: 0x1e2b50e - 0x1e2b54d
int32_t function_1e2b50e(int32_t a1, int32_t a2, int32_t a3) {
// 0x1e2b50e
g8 = g5;
int32_t v1 = function_1e2a5b8(a1, a2, a3); // 0x1e2b51d
g2 = v1;
int32_t result; // 0x1e2b544
if (v1 != 0) {
// 0x1e2b526
g2 = g5;
int32_t v2 = g8; // 0x1e2b52c
g5 = v2;
int32_t v3 = function_1e325d2(*(int32_t *)(v2 + 86), v2, 0x1e2b54d); // 0x1e2b539
g2 = v3;
int32_t v4 = g8; // 0x1e2b53e
*(int32_t *)(v4 + 82) = v3;
result = function_1e328b9(63, v4);
g2 = result;
} else {
result = 0;
}
// 0x1e2b549
return result;
}
// Address range: 0x1e2b54d - 0x1e2b566
int32_t function_1e2b54d(int32_t a1) {
// 0x1e2b54d
g5 = a1;
g2 = *(int32_t *)a1;
*(int32_t *)(a1 + 82) = 0;
return g2;
}
// Address range: 0x1e2b566 - 0x1e2b5f3
int32_t function_1e2b566(int32_t a1, int32_t a2) {
int32_t v1 = g5; // 0x1e2b568
g8 = v1;
int32_t v2; // 0x1e2b594
if (a1 < 49) {
goto lab_0x1e2b5ec;
} else {
if (a1 > 50) {
if (a1 != 1024) {
goto lab_0x1e2b5ec;
} else {
int32_t v3 = *(int32_t *)(v1 + 82); // 0x1e2b580
g2 = v3;
int32_t v4; // 0x1e2b58d
if (v3 != 0) {
// 0x1e2b587
g2 = function_1e32771(v3);
v4 = g8;
} else {
v4 = v1;
}
// 0x1e2b58d
*(int32_t *)(v4 + 82) = 0;
v2 = a1;
if (v2 == 50) {
// 0x1e2b5a7
*(char *)(g8 + 5) = 1;
goto lab_0x1e2b5ab;
} else {
goto lab_0x1e2b599;
}
}
} else {
if (a1 == 50) {
// 0x1e2b5a7
*(char *)(g8 + 5) = 1;
goto lab_0x1e2b5ab;
} else {
v2 = 49;
goto lab_0x1e2b599;
}
}
}
lab_0x1e2b5ec:
// 0x1e2b5ec
g2 = 0;
g8 = *(int32_t *)(g9 + 4);
return 0;
lab_0x1e2b599:
if (v2 == 1024) {
// 0x1e2b5a7
*(char *)(g8 + 5) = 1;
goto lab_0x1e2b5ab;
} else {
// 0x1e2b5a1
*(char *)(g8 + 5) = 0;
goto lab_0x1e2b5ab;
}
lab_0x1e2b5ab:;
int32_t v5 = *(int32_t *)(g8 + 34); // 0x1e2b5ab
g2 = v5;
if (v5 != 0) {
int32_t v6 = *(int32_t *)(v5 + 4); // 0x1e2b5b2
g2 = v6;
int32_t v7 = *(int32_t *)(g8 + 30); // 0x1e2b5b5
int32_t v8 = 4 * (int32_t)*(char *)(g8 + 5); // 0x1e2b5bc
g5 = v8;
int32_t v9 = v6 - v8; // 0x1e2b5bf
g2 = v9;
int32_t v10 = *(int32_t *)(v9 + 12); // 0x1e2b5c1
int32_t v11 = *(int32_t *)(v10 + 33); // 0x1e2b5c4
g2 = v11;
int32_t v12 = v11 - *(int32_t *)(v7 + 238); // 0x1e2b5c7
g2 = v12;
*(int32_t *)(g9 - 4) = v12;
int32_t v13 = *(int32_t *)(v10 + 29); // 0x1e2b5ce
g2 = v13;
int32_t v14 = v13 - *(int32_t *)(v7 + 234); // 0x1e2b5d1
g2 = v14;
*(int32_t *)(g9 - 8) = v14;
int32_t v15 = *(int32_t *)(*(int32_t *)(g8 + 38) + 4) - g5; // 0x1e2b5de
g2 = v15;
*(int32_t *)(g9 - 12) = *(int32_t *)(v15 + 12);
*(int32_t *)(g9 - 16) = v10;
*(int32_t *)(g9 - 20) = *(int32_t *)(g8 + 26);
int32_t v16 = function_1e29a04((int32_t)&g708, (int32_t)&g708, (int32_t)&g708, (int32_t)&g708, (int32_t)&g708); // 0x1e2b5e7
g2 = v16;
}
goto lab_0x1e2b5ec;
}
// Address range: 0x1e2b5f3 - 0x1e2b607
int32_t function_1e2b5f3(int32_t a1) {
// 0x1e2b5f3
g2 = a1;
int32_t result;
if (a1 < 1) {
// 0x1e2b600
result = *(int32_t *)(4 * a1 + 94 + g5);
} else {
result = 0;
}
// 0x1e2b604
g2 = result;
return result;
}
// Address range: 0x1e2b607 - 0x1e2b61b
int32_t function_1e2b607(int32_t a1, int32_t a2) {
// 0x1e2b607
g2 = a1;
int32_t result; // 0x1e2b618
if (a1 < 1) {
// 0x1e2b610
*(int32_t *)(4 * a1 + 94 + g5) = a2;
result = g2;
} else {
result = a1;
}
// 0x1e2b618
return result;
}
// Address range: 0x1e2b61b - 0x1e2b682
int32_t function_1e2b61b(int32_t a1, int32_t a2) {
int32_t v1 = g3; // bp-4
g3 = v1;
int32_t v2; // bp-76
int32_t v3 = v2; // 0x1e2b61e
g2 = function_1e2a3f7(a1, a2, 1, g6);
g5 = v3;
g6 = 0;
*(int32_t *)g8 = (int32_t)&g40;
function_1e39641(a2, g6, v3);
*(int32_t *)(g8 + 94) = g5;
int32_t v4 = g6; // 0x1e2b653
*(int32_t *)(g8 + 86) = v4;
int32_t v5 = 1024; // bp-116
int32_t v6 = g8; // 0x1e2b65c
g5 = v6;
*(int32_t *)(v6 + 78) = 55;
*(int32_t *)(g8 + 82) = 5;
*(int32_t *)(g8 + 66) = 0x4e6e6b28;
function_1e2b6b6(v5, v4);
g2 = g8;
g6 = v5;
g3 = v1;
return g8;
}
// Address range: 0x1e2b682 - 0x1e2b6a0
int32_t function_1e2b682(char a1) {
// 0x1e2b682
g2 = function_1e2a4cb();
if ((a1 & 1) != 0) {
// 0x1e2b691
g2 = function_1e3df60(g8);
}
// 0x1e2b69a
g2 = g8;
return g8;
}
// Address range: 0x1e2b6a0 - 0x1e2b6b6
int32_t function_1e2b6a0(int32_t a1) {
// 0x1e2b6a0
g2 = a1;
*(int32_t *)(a1 + 86) = 0;
int32_t result = function_1e328b9(60, a1); // 0x1e2b6ae
g2 = result;
return result;
}
// Address range: 0x1e2b6b6 - 0x1e2b778
int32_t function_1e2b6b6(int32_t a1, int32_t a2) {
// 0x1e2b6b6
g2 = a1;
int32_t v1 = g6; // bp-8
int32_t v2 = g5; // 0x1e2b6bc
g8 = v2;
int32_t v3; // 0x1e2b73b
if (a1 == 51) {
goto lab_0x1e2b6e6;
} else {
if (a1 == 52) {
// 0x1e2b71c
*(char *)(v2 + 5) = 1;
g2 = function_1e39a10(*(int32_t *)(v2 + 90));
g11++;
int32_t v4 = g8; // 0x1e2b72a
int32_t v5 = *(int32_t *)(v4 + 34); // 0x1e2b72a
g2 = v5;
int32_t v6 = *(int32_t *)(v5 + 4); // 0x1e2b72d
g5 = v6;
g2 = function_1e29a40(*(int32_t *)(v4 + 26), *(int32_t *)(v6 + 8));
v3 = g8;
goto lab_0x1e2b73b;
} else {
if (a1 == 59) {
v3 = v2;
goto lab_0x1e2b73b;
} else {
if (a1 != 1011) {
if (a1 != 1020) {
if (a1 != 1024) {
// 0x1e2b771
g2 = 0;
g8 = *(int32_t *)(g9 + 4);
return 0;
}
}
}
goto lab_0x1e2b6e6;
}
}
}
lab_0x1e2b6e6:;
int32_t v7 = *(int32_t *)(v2 + 86); // 0x1e2b6e6
g2 = v7;
g6 = 0;
int32_t v8; // 0x1e2b6fa
if (v7 != 0) {
// 0x1e2b6ef
g2 = function_1e32771(v7);
*(int32_t *)(g8 + 86) = g6;
v8 = g9;
} else {
v8 = v1;
}
// 0x1e2b6f8
g2 = 0;
*(int32_t *)(v8 - 4) = 0;
*(int32_t *)(g8 + 6) = g2;
*(int32_t *)(g9 - 4) = *(int32_t *)(g8 + 26);
*(char *)(g8 + 5) = (char)g2;
g2 = function_1e29a40((int32_t)&g708, (int32_t)&g708);
if (*(int32_t *)(g9 + 12) == 51) {
// 0x1e2b710
*(int32_t *)(g9 - 4) = *(int32_t *)(g8 + 94);
g2 = function_1e39a10((int32_t)&g708);
g11++;
}
// 0x1e2b771
g2 = 0;
g8 = *(int32_t *)(g9 + 4);
return 0;
lab_0x1e2b73b:;
int32_t v9 = *(int32_t *)(v3 + 86); // 0x1e2b73b
g2 = v9;
if (v9 != 0) {
// 0x1e2b742
*(int32_t *)(g9 - 4) = v9;
g2 = function_1e32771((int32_t)&g708);
}
// 0x1e2b748
g2 = (g2 & -0x10000) | (int32_t)__asm_fnstsw(g10);
*(int32_t *)(g9 - 4) = 0x1e2b6a0;
*(int32_t *)(g9 - 8) = g8;
*(float32_t *)(g9 - 12) = (float32_t)(float80_t)*(float32_t *)(g9 + 16);
int32_t v10 = function_1e325d2((int32_t)&g708, (int32_t)&g708, (int32_t)&g708); // 0x1e2b769
g2 = v10;
*(int32_t *)(g8 + 86) = v10;
// 0x1e2b771
g2 = 0;
g8 = *(int32_t *)(g9 + 4);
return 0;
}
// Address range: 0x1e2b778 - 0x1e2b7c5
int32_t function_1e2b778(int32_t a1, int32_t a2) {
int32_t v1 = g3; // bp-4
g3 = v1;
int32_t v2; // bp-76
int32_t v3 = v2; // 0x1e2b77b
g2 = function_1e2a3f7(a1, a2, 1, g8);
g5 = v3;
*(int32_t *)g8 = (int32_t)&g41;
g2 = function_1e39641(a2, 0, v3);
int32_t v4 = g8; // 0x1e2b7b2
g5 = v4;
int32_t v5; // edx
*(int32_t *)(v4 + 82) = v5;
function_1e2b7e3(1024, 0);
g2 = g8;
g3 = v1;
return g8;
}
// Address range: 0x1e2b7c5 - 0x1e2b7e3
int32_t function_1e2b7c5(char a1) {
// 0x1e2b7c5
g2 = function_1e2a4cb();
if ((a1 & 1) != 0) {
// 0x1e2b7d4
g2 = function_1e3df60(g8);
}
// 0x1e2b7dd
g2 = g8;
return g8;
}
// Address range: 0x1e2b7e3 - 0x1e2b84c
int32_t function_1e2b7e3(int32_t a1, int32_t a2) {
int32_t v1 = g6; // bp-8
int32_t v2 = g5; // 0x1e2b7e5
g6 = v2;
g8 = a1;
int32_t v3;
int32_t v4; // 0x1e2b847
if (a1 == 1020) {
v4 = v1;
goto lab_0x1e2b845;
} else {
if (a1 == 53) {
// 0x1e2b807
*(char *)(v2 + 5) = 0;
g2 = function_1e29a40(*(int32_t *)(g6 + 26), 0);
v3 = g6 + 82;
goto lab_0x1e2b837;
} else {
if (a1 == 54) {
goto lab_0x1e2b81a;
} else {
if (a1 == 1024) {
goto lab_0x1e2b81a;
} else {
goto lab_0x1e2b83e;
}
}
}
}
lab_0x1e2b845:
// 0x1e2b845
g2 = 0;
g6 = *(int32_t *)v4;
g8 = *(int32_t *)(v4 + 4);
return 0;
lab_0x1e2b837:
// 0x1e2b837
g2 = function_1e39a10(*(int32_t *)v3);
g11++;
goto lab_0x1e2b83e;
lab_0x1e2b81a:
// 0x1e2b81a
g2 = *(int32_t *)(v2 + 34);
*(char *)(v2 + 5) = 1;
int32_t v5 = *(int32_t *)(g2 + 4); // 0x1e2b821
g5 = v5;
g2 = function_1e29a40(*(int32_t *)(g6 + 26), *(int32_t *)(v5 + 8));
if (g8 != 54) {
goto lab_0x1e2b83e;
} else {
// 0x1e2b834
v3 = g6 + 78;
goto lab_0x1e2b837;
}
lab_0x1e2b83e:
// 0x1e2b83e
*(int32_t *)(g9 - 4) = g6;
*(int32_t *)(g9 - 8) = g8;
g2 = function_1e328b9((int32_t)&g708, (int32_t)&g708);
v4 = g9;
goto lab_0x1e2b845;
}
// Address range: 0x1e2b84c - 0x1e2b8aa
int32_t function_1e2b84c(int32_t a1) {
// 0x1e2b84c
int32_t v1; // bp-76
int32_t v2 = v1; // 0x1e2b84f
g2 = v2;
g6 = g5;
g2 = function_1e39641(a1, 0, v2);
g5 = 600;
int32_t v3 = function_1e3991a(g8, g4); // 0x1e2b879
g2 = v3;
int32_t v4 = function_1e29b62(v3, (int32_t)&g708, (int32_t)&g708, (int32_t)&g708, (int32_t)&g708, (int32_t)&g708); // 0x1e2b87f
g2 = v4;
g5 = 603;
int32_t v5 = g4; // 0x1e2b88d
int32_t v6 = g8; // 0x1e2b895
int32_t v7 = function_1e3991a(v6, v5); // 0x1e2b896
g2 = v7;
int32_t result = function_1e29b62(v7, (int32_t)&g708, (int32_t)&g708, (int32_t)&g708, (int32_t)&g708, (int32_t)&g708); // 0x1e2b89c
g2 = result;
g6 = v7;
g8 = v6;
g4 = v5;
return result;
}
// Address range: 0x1e2b8aa - 0x1e2b8ca
int32_t function_1e2b8aa(int32_t a1, int32_t a2, int32_t a3, int32_t a4) {
// 0x1e2b8aa
function_1e2a3f7(a1, a2, a3, g8);
g2 = g8;
*(int32_t *)g8 = (int32_t)&g42;
g8 = a1;
return g2;
}
// Address range: 0x1e2b8ca - 0x1e2b8e8
int32_t function_1e2b8ca(char a1) {
// 0x1e2b8ca
g2 = function_1e2a4cb();
if ((a1 & 1) != 0) {
// 0x1e2b8d9
g2 = function_1e3df60(g8);
}
// 0x1e2b8e2
g2 = g8;
return g8;
}
// Address range: 0x1e2b8e8 - 0x1e2b92a
int32_t function_1e2b8e8(int32_t a1, int32_t a2) {
// 0x1e2b8e8
g2 = function_1e2a3f7(a1, a2, 0, g8);
int32_t v1 = g8; // 0x1e2b8fa
int32_t v2 = *(int32_t *)(v1 + 34); // 0x1e2b8fa
g2 = v2;
*(int32_t *)v1 = (int32_t)&g42;
*(char *)(g8 + 78) = 0;
if (v2 != 0) {
int32_t v3 = *(int32_t *)(v2 + 4); // 0x1e2b90b
g2 = v3;
g2 = function_1e29a40(*(int32_t *)(g8 + 26), *(int32_t *)(v3 + 8));
}
// 0x1e2b919
*(int32_t *)(g9 - 4) = *(int32_t *)(g9 + 12);
g5 = g8;
function_1e2b84c((int32_t)&g708);
g2 = g8;
return g8;
}
// Address range: 0x1e2b92a - 0x1e2b9cb
int32_t function_1e2b92a(int32_t a1, int32_t a2, float32_t a3, int32_t a4) {
// 0x1e2b92a
g2 = a2;
g8 = g5;
int32_t v1 = *(int32_t *)a2; // 0x1e2b938
g5 = v1;
float80_t v2 = (float80_t)*(float32_t *)(a1 + 70) - (float80_t)a3; // st7
*(int32_t *)(a1 + 42) = v1;
g5 = a1 + 134;
int32_t v3 = *(int32_t *)(g2 + 4); // 0x1e2b949
g2 = v3;
*(int32_t *)(a1 + 46) = v3;
g2 = *(int32_t *)g5;
*(float32_t *)(a1 + 70) = (float32_t)v2;
int32_t v4 = g2; // 0x1e2b954
if (v4 < 5) {
// 0x1e2b959
*(int32_t *)(4 * v4 + 114 + a1) = a4;
int32_t * v5 = (int32_t *)g5; // 0x1e2b960
*v5 = *v5 + 1;
}
int32_t v6 = g8; // 0x1e2b962
int32_t result = *(int32_t *)(v6 + 30); // 0x1e2b962
g2 = result;
if (*(int32_t *)(result + 370) != 0) {
// 0x1e2b9c5
return result;
}
int32_t v7 = v6 + 78; // 0x1e2b96e
g6 = v7;
if (*(char *)v7 == 0) {
// 0x1e2b98c
g2 = function_1e39a10(*(int32_t *)(v6 + 70));
g11++;
g2 = function_1e328b9(63, g8);
} else {
// 0x1e2b976
g2 = function_1e325d2(0x3dcccccd, v6, 0x1e2b9cb);
*(char *)(g8 + 5) = 0;
}
// 0x1e2b99e
g2 = *(int32_t *)(g8 + 34);
char * v8 = (char *)g6; // 0x1e2b9a1
char v9 = *v8; // 0x1e2b9a1
g5 = (g5 & -256) | (int32_t)(v9 == 0);
*v8 = (char)(v9 == 0);
int32_t v10 = g2; // 0x1e2b9aa
if (v10 == 0) {
// 0x1e2b9c5
return 0;
}
// 0x1e2b9ae
int32_t v11;
if ((char)g5 == 0) {
int32_t v12 = *(int32_t *)(v10 + 4); // 0x1e2b9b6
g2 = v12;
v11 = *(int32_t *)(v12 + 8);
} else {
v11 = 0;
}
// 0x1e2b9bc
g2 = v11;
int32_t result2 = function_1e29a40(*(int32_t *)(g8 + 26), v11); // 0x1e2b9c0
g2 = result2;
// 0x1e2b9c5
return result2;
}
// Address range: 0x1e2b9cb - 0x1e2b9d6
int32_t function_1e2b9cb(int32_t a1) {
// 0x1e2b9cb
g2 = a1;
*(char *)(a1 + 5) = 1;
return g2;
}
// Address range: 0x1e2b9d6 - 0x1e2ba02
int32_t function_1e2b9d6(int32_t a1) {
if (a1 != 1024) {
// 0x1e2b9fd
g2 = 0;
return 0;
}
// 0x1e2b9e0
*(char *)(g5 + 5) = 1;
*(char *)(g5 + 78) = 0;
int32_t v1 = g5; // 0x1e2b9e8
int32_t v2 = *(int32_t *)(v1 + 34); // 0x1e2b9e8
g2 = v2;
if (v2 != 0) {
int32_t v3 = *(int32_t *)(v2 + 4); // 0x1e2b9ef
g2 = v3;
g2 = function_1e29a40(*(int32_t *)(v1 + 26), *(int32_t *)(v3 + 8));
}
// 0x1e2b9fd
g2 = 0;
return 0;
}
// Address range: 0x1e2ba02 - 0x1e2ba16
int32_t function_1e2ba02(int32_t a1) {
// 0x1e2ba02
g2 = a1;
int32_t result;
if (a1 < 2) {
// 0x1e2ba0f
result = *(int32_t *)(4 * a1 + 79 + g5);
} else {
result = 0;
}
// 0x1e2ba13
g2 = result;
return result;
}
// Address range: 0x1e2ba16 - 0x1e2ba2a
int32_t function_1e2ba16(int32_t a1, int32_t a2) {
// 0x1e2ba16
g2 = a1;
int32_t result; // 0x1e2ba27
if (a1 < 2) {
// 0x1e2ba1f
*(int32_t *)(4 * a1 + 79 + g5) = a2;
result = g2;
} else {
result = a1;
}
// 0x1e2ba27
return result;
}
// Address range: 0x1e2ba2a - 0x1e2ba7c
int32_t function_1e2ba2a(int32_t a1, int32_t a2) {
int32_t v1 = g6; // 0x1e2ba2c
g8 = g5;
g4 = 0;
g6 = a2;
g2 = function_1e2b8aa(a1, a2, 0, v1);
*(int32_t *)g8 = (int32_t)&g43;
*(char *)(g8 + 78) = (char)g4;
*(int32_t *)(g8 + 91) = g4;
int32_t v2 = g8; // 0x1e2ba4c
int32_t v3 = g4; // 0x1e2ba4c
if (*(int32_t *)(v2 + 34) != v3) {
// 0x1e2ba51
g2 = function_1e29a40(*(int32_t *)(v2 + 26), v3);
}
// 0x1e2ba5a
*(int32_t *)(g9 - 4) = g6;
g5 = g8;
g2 = function_1e2b84c((int32_t)&g708);
*(int32_t *)(g9 - 4) = 407;
*(int32_t *)(g9 - 8) = 0;
*(int32_t *)(g9 - 12) = g6;
int32_t v4 = function_1e3991a((int32_t)&g708, (int32_t)&g708); // 0x1e2ba6a
g2 = v4;
int32_t v5 = *(int32_t *)v4; // 0x1e2ba6f
g2 = v5;
g6 = *(int32_t *)g9;
*(int32_t *)(g8 + 87) = v5;
g2 = g8;
g4 = *(int32_t *)(g9 + 4);
return g8;
}
// Address range: 0x1e2ba7c - 0x1e2ba9a
int32_t function_1e2ba7c(char a1) {
// 0x1e2ba7c
g2 = function_1e2a4cb();
if ((a1 & 1) != 0) {
// 0x1e2ba8b
g2 = function_1e3df60(g8);
}
// 0x1e2ba94
g2 = g8;
return g8;
}
// Address range: 0x1e2ba9a - 0x1e2bab3
int32_t function_1e2ba9a(int32_t a1) {
// 0x1e2ba9a
g2 = function_1e29a40(*(int32_t *)(a1 + 26), 0);
*(int32_t *)(a1 + 91) = 0;
return g2;
}
// Address range: 0x1e2bab3 - 0x1e2bb6b
int32_t function_1e2bab3(int32_t a1, int32_t a2, float32_t a3, int32_t a4) {
// 0x1e2bab3
g2 = a2;
g8 = g5;
int32_t v1 = *(int32_t *)a2; // 0x1e2bac2
g5 = v1;
int32_t v2 = a1 + 134; // edi
float80_t v3 = (float80_t)*(float32_t *)(a1 + 70) - (float80_t)a3; // st7
*(int32_t *)(a1 + 42) = v1;
int32_t v4 = *(int32_t *)v2; // 0x1e2bad3
g5 = v4;
int32_t v5 = *(int32_t *)(g2 + 4); // 0x1e2bad5
g2 = v5;
*(int32_t *)(a1 + 46) = v5;
*(float32_t *)(a1 + 70) = (float32_t)v3;
if (v4 < 5) {
// 0x1e2bae3
g2 = a4;
*(int32_t *)(a1 + 114 + 4 * g5) = a4;
int32_t * v6 = (int32_t *)v2; // 0x1e2baea
*v6 = *v6 + 1;
}
int32_t v7 = g8; // 0x1e2baec
int32_t v8 = *(int32_t *)(v7 + 30); // 0x1e2baec
g2 = v8;
g4 = 0;
if (*(int32_t *)(v8 + 370) != 0) {
// 0x1e2bb64
return g2;
}
int32_t v9 = v7 + 78; // 0x1e2baf9
g6 = v9;
if (*(char *)v9 == 0) {
// 0x1e2bb34
g2 = function_1e39a10(*(int32_t *)(v7 + 70));
g11++;
int32_t v10 = function_1e328b9(63, g8); // 0x1e2bb41
g2 = v10;
char * v11 = (char *)g6; // 0x1e2bb46
char v12 = *v11; // 0x1e2bb46
g2 = (int32_t)(v12 == 0) | (v10 & -256);
*v11 = (char)(v12 == 0);
int32_t v13 = *(int32_t *)(g8 + 34); // 0x1e2bb4f
g2 = v13;
if (v13 != 0) {
int32_t v14 = *(int32_t *)(v13 + 4); // 0x1e2bb56
g2 = v14;
g2 = function_1e29a40(*(int32_t *)(g8 + 26), *(int32_t *)(v14 + 8));
}
} else {
// 0x1e2bb00
g2 = function_1e325d2(0x3dcccccd, v7, 0x1e2b9cb);
*(char *)(g8 + 5) = (char)g4;
char * v15 = (char *)g6; // 0x1e2bb13
char v16 = *v15; // 0x1e2bb13
g2 = (g2 & -256) | (int32_t)(v16 == 0);
*v15 = (char)(v16 == 0);
if (*(int32_t *)(g8 + 91) == g4) {
int32_t v17 = function_1e325d2(*(int32_t *)(g8 + 87), g8, 0x1e2ba9a); // 0x1e2bb2a
g2 = v17;
*(int32_t *)(g8 + 91) = v17;
}
}
// 0x1e2bb64
return g2;
}
// Address range: 0x1e2bb6b - 0x1e2bba6
int32_t function_1e2bb6b(int32_t a1) {
int32_t v1 = g5; // 0x1e2bb74
g8 = v1;
if (a1 != 1024) {
// 0x1e2bba0
g2 = 0;
return 0;
}
// 0x1e2bb78
*(char *)(v1 + 5) = 1;
*(char *)(g8 + 78) = 0;
int32_t v2 = g8; // 0x1e2bb80
int32_t v3 = *(int32_t *)(v2 + 91); // 0x1e2bb80
g2 = v3;
int32_t v4; // 0x1e2bb8f
if (v3 != 0) {
// 0x1e2bb87
g2 = function_1e32771(v3);
v4 = g8;
} else {
v4 = v2;
}
// 0x1e2bb8d
g2 = 0;
*(int32_t *)(v4 + 91) = 0;
int32_t v5 = g2; // 0x1e2bb92
if (*(int32_t *)(g8 + 34) != v5) {
// 0x1e2bb97
*(int32_t *)(g9 - 4) = v5;
*(int32_t *)(g9 - 8) = *(int32_t *)(g8 + 26);
g2 = function_1e29a40((int32_t)&g708, (int32_t)&g708);
}
// 0x1e2bba0
g2 = 0;
return 0;
}
// Address range: 0x1e2bba6 - 0x1e2bbc4
int32_t function_1e2bba6(int32_t a1, int32_t a2) {
int32_t v1 = g8; // 0x1e2bba6
g8 = g5;
function_1e2b8aa(a1, a2, 1, v1);
g2 = g8;
*(int32_t *)g8 = (int32_t)&g44;
return g2;
}
// Address range: 0x1e2bbc4 - 0x1e2bbe2
int32_t function_1e2bbc4(char a1) {
// 0x1e2bbc4
g2 = function_1e2a4cb();
if ((a1 & 1) != 0) {
// 0x1e2bbd3
g2 = function_1e3df60(g8);
}
// 0x1e2bbdc
g2 = g8;
return g8;
}
// Address range: 0x1e2bbe2 - 0x1e2bc3e
int32_t function_1e2bbe2(int32_t a1, int32_t a2, float32_t a3, int32_t a4) {
// 0x1e2bbe2
g2 = a2;
g8 = g5;
int32_t v1 = *(int32_t *)a2; // 0x1e2bbf0
g5 = v1;
float80_t v2 = (float80_t)*(float32_t *)(a1 + 70) - (float80_t)a3; // st7
g6 = a1 + 134;
*(int32_t *)(a1 + 42) = v1;
int32_t v3 = *(int32_t *)(g2 + 4); // 0x1e2bc01
g2 = v3;
g5 = *(int32_t *)g6;
*(int32_t *)(a1 + 46) = v3;
*(float32_t *)(a1 + 70) = (float32_t)v2;
if (g5 < 5) {
// 0x1e2bc11
g2 = a4;
*(int32_t *)(a1 + 114 + 4 * g5) = a4;
int32_t * v4 = (int32_t *)g6; // 0x1e2bc18
*v4 = *v4 + 1;
}
int32_t v5 = g8; // 0x1e2bc1a
int32_t v6 = *(int32_t *)(v5 + 30); // 0x1e2bc1a
g2 = v6;
int32_t result; // 0x1e2bc33
if (*(int32_t *)(v6 + 370) == 0) {
// 0x1e2bc26
g2 = function_1e39a10(*(int32_t *)(v5 + 70));
g11++;
result = function_1e328b9(63, g8);
g2 = result;
} else {
result = v6;
}
// 0x1e2bc38
return result;
}
// Address range: 0x1e2bc3e - 0x1e2bc7c
int32_t function_1e2bc3e(int32_t a1, int32_t a2) {
// 0x1e2bc3e
function_1e2a3f7(a1, a2, 1, g8);
g2 = 0;
*(int32_t *)g8 = (int32_t)&g45;
*(int32_t *)(g8 + 6) = g2;
*(int32_t *)(g8 + 86) = g2;
*(int32_t *)(g8 + 78) = 0x3f333333;
*(int32_t *)(g8 + 82) = 0x3dcccccd;
*(int32_t *)(g8 + 66) = 0x4e6e6b28;
*(int32_t *)(g8 + 90) = g2;
g2 = g8;
return g8;
}
// Address range: 0x1e2bc7c - 0x1e2bc9a
int32_t function_1e2bc7c(char a1) {
// 0x1e2bc7c
g2 = function_1e2a4cb();
if ((a1 & 1) != 0) {
// 0x1e2bc8b
g2 = function_1e3df60(g8);
}
// 0x1e2bc94
g2 = g8;
return g8;
}
// Address range: 0x1e2bc9a - 0x1e2bd10
int32_t function_1e2bc9a(int32_t a1, int32_t a2, int32_t a3) {
int32_t v1 = g5; // 0x1e2bc9e
int32_t v2 = *(int32_t *)(v1 + 30); // 0x1e2bc9e
g2 = v2;
int32_t v3 = g6; // bp-12
g8 = v1;
if (*(int32_t *)(v2 + 370) != 0) {
int32_t v4 = *(int32_t *)(v1 + 58); // 0x1e2bcb2
int32_t v5 = *(int32_t *)(v1 + 54); // 0x1e2bcb5
float80_t v6 = function_1e2f084(a1, a2, a3, v5, v4, 0, *(int32_t *)(v1 + 62)); // 0x1e2bcc1
g2 = (float32_t)v6;
// 0x1e2bd0a
return (float32_t)v6;
}
int32_t v7 = v1 + 90; // 0x1e2bcca
g6 = v7;
int32_t * v8 = (int32_t *)v7; // 0x1e2bccd
int32_t v9; // 0x1e2bcf0
if (*v8 == 0) {
// 0x1e2bcd2
*v8 = 1;
*(int32_t *)(g8 + 66) = 0x4e6e6b28;
int32_t v10 = g8; // 0x1e2bce4
int32_t v11 = function_1e325d2(*(int32_t *)(v10 + 78), v10, 0x1e2bd10); // 0x1e2bce8
g2 = v11;
*(int32_t *)(g8 + 86) = v11;
v9 = g9;
} else {
v9 = v3;
}
// 0x1e2bcf0
*(int32_t *)(v9 - 4) = a3;
*(int32_t *)(v9 - 8) = a2;
*(int32_t *)(v9 - 12) = a1;
g5 = g8;
int32_t v12 = function_1e2a5b8((int32_t)&g708, (int32_t)&g708, (int32_t)&g708); // 0x1e2bcfb
g2 = v12;
int32_t result; // 0x1e2bd0d
if (v12 != 0) {
// 0x1e2bd04
*(int32_t *)g6 = 0;
result = g2;
} else {
result = 0;
}
// 0x1e2bd0a
return result;
}
// Address range: 0x1e2bd10 - 0x1e2bdbd
int32_t function_1e2bd10(int32_t a1) {
// 0x1e2bd10
g8 = a1;
g6 = 0;
if (*(int32_t *)(a1 + 90) == 0) {
int32_t v1 = *(int32_t *)(a1 + 34); // 0x1e2bd73
g2 = v1;
int32_t v2; // 0x1e2bda9
if (v1 != 0) {
int32_t v3 = *(int32_t *)(v1 + 4); // 0x1e2bd7a
g2 = v3;
int32_t v4 = *(int32_t *)(a1 + 30); // 0x1e2bd7d
int32_t v5 = *(int32_t *)(v3 + 8); // 0x1e2bd80
g5 = v5;
int32_t v6 = *(int32_t *)(v5 + 33); // 0x1e2bd83
g2 = v6;
int32_t v7 = v6 - *(int32_t *)(v4 + 238); // 0x1e2bd86
g2 = v7;
int32_t v8 = *(int32_t *)(v5 + 29); // 0x1e2bd8d
g2 = v8;
int32_t v9 = v8 - *(int32_t *)(v4 + 234); // 0x1e2bd90
g2 = v9;
int32_t v10 = *(int32_t *)(*(int32_t *)(a1 + 38) + 4); // 0x1e2bd9a
int32_t v11 = *(int32_t *)(a1 + 26); // 0x1e2bda1
g2 = function_1e29a04(v11, v5, *(int32_t *)(v10 + 8), v9, v7);
v2 = g8;
} else {
v2 = a1;
}
// 0x1e2bda9
*(int32_t *)(v2 + 86) = 0;
*(int32_t *)(g9 - 4) = g8;
*(int32_t *)(g9 - 8) = 60;
int32_t result = function_1e328b9((int32_t)&g708, (int32_t)&g708); // 0x1e2bdb3
g2 = result;
// 0x1e2bdb8
return result;
}
// 0x1e2bd1d
*(int32_t *)(a1 + 66) = 0;
int32_t v12 = g8; // 0x1e2bd25
int32_t v13 = function_1e325d2(*(int32_t *)(v12 + 82), v12, 0x1e2bd10); // 0x1e2bd29
g2 = v13;
*(int32_t *)(g8 + 86) = v13;
g2 = function_1e39a10(*(int32_t *)(g8 + 74));
int32_t v14 = *(int32_t *)(g8 + 34); // 0x1e2bd3b
g2 = v14;
int32_t result2; // 0x1e2bd6c
if (v14 != 0) {
int32_t v15 = *(int32_t *)(v14 + 4); // 0x1e2bd42
g2 = v15;
int32_t v16 = *(int32_t *)(g8 + 30); // 0x1e2bd45
int32_t v17 = *(int32_t *)(v15 + 12); // 0x1e2bd48
g5 = v17;
int32_t v18 = *(int32_t *)(v17 + 33); // 0x1e2bd4b
g2 = v18;
int32_t v19 = v18 - *(int32_t *)(v16 + 238); // 0x1e2bd4e
g2 = v19;
int32_t v20 = *(int32_t *)(v17 + 29); // 0x1e2bd55
g2 = v20;
int32_t v21 = v20 - *(int32_t *)(v16 + 234); // 0x1e2bd58
g2 = v21;
int32_t v22 = *(int32_t *)(*(int32_t *)(*(int32_t *)(g8 + 38) + 4) + 12); // 0x1e2bd65
result2 = function_1e29a04(*(int32_t *)(g8 + 26), v17, v22, v21, v19);
g2 = result2;
} else {
result2 = 0;
}
// 0x1e2bdb8
return result2;
}
// Address range: 0x1e2bdbd - 0x1e2be04
int32_t function_1e2bdbd(int32_t a1) {
// 0x1e2bdbd
g2 = a1;
int32_t v1 = g5; // 0x1e2bdc2
g8 = v1;
if (a1 != 1011) {
if (a1 != 1024) {
// 0x1e2bdfe
g2 = 0;
return 0;
}
}
int32_t v2 = *(int32_t *)(v1 + 86); // 0x1e2bdd2
g2 = v2;
if (v2 == 0) {
// 0x1e2bdfe
g2 = 0;
return 0;
}
// 0x1e2bdd9
g2 = function_1e32771(v2);
if (*(int32_t *)(g8 + 34) != 0) {
// 0x1e2bde5
g2 = function_1e29a40(*(int32_t *)(g8 + 26), 0);
}
// 0x1e2bdef
*(int32_t *)(g8 + 66) = 0x4e6e6b28;
g2 = 0;
*(int32_t *)(g8 + 86) = 0;
*(int32_t *)(g8 + 90) = g2;
// 0x1e2bdfe
g2 = 0;
return 0;
}
// Address range: 0x1e2be04 - 0x1e2bfbb
int32_t function_1e2be04(int32_t a1, int32_t a2, int32_t a3) {
int32_t v1 = g3; // bp-4
g3 = v1;
int32_t v2; // bp-96
int32_t v3 = v2; // 0x1e2be07
g4 = g5;
function_1e2a3f7(a1, a2, 0, g6);
g2 = a3 == 0;
*(int32_t *)g4 = (int32_t)&g46;
int32_t v4 = g2; // 0x1e2be28
int32_t v5 = -v4; // 0x1e2be28
g2 = v5;
*(int32_t *)(g4 + 82) = v5;
if (v4 != 0) {
// 0x1e2be31
*(char *)(g4 + 5) = 0;
}
// 0x1e2be35
g8 = 0;
*(int32_t *)(g4 + 6) = 0;
*(int32_t *)(g4 + 86) = g8;
int32_t v6 = g8; // 0x1e2be42
*(int32_t *)(g4 + 78) = v6;
*(int32_t *)(g4 + 90) = 0x3fc00000;
*(int32_t *)(g4 + 94) = 0x3d4ccccd;
int32_t v7 = function_1e3991a(a2, v6); // 0x1e2be57
g2 = v7;
int32_t v8 = *(int32_t *)v7; // 0x1e2be5c
g2 = v8;
float32_t v9 = v8; // bp-12
int32_t v10 = function_1e3991a(a2, g8); // 0x1e2be6a
g2 = v10;
int32_t v11 = *(int32_t *)v10; // 0x1e2be6f
g5 = v11;
*(int32_t *)(g4 + 106) = v11;
function_1e39641(a2, g8, v3);
*(int32_t *)(g4 + 74) = v3;
int32_t v12 = g8; // 0x1e2be90
int32_t v13 = v12 + 8; // 0x1e2be90
g2 = v13;
int32_t v14 = *(int32_t *)v12; // 0x1e2be93
g5 = v14;
*(int32_t *)(g4 + 110) = v14;
*(int32_t *)(g4 + 114) = *(int32_t *)(g8 + 4);
float80_t v15 = (float80_t)*(float32_t *)g2 * (float80_t)v9; // 0x1e2bea3
*(float32_t *)(g4 + 122) = (float32_t)v15;
int32_t * v16 = (int32_t *)(g4 + 122); // 0x1e2bea9
if ((*v16 & 0x7fffffff) == 0) {
// 0x1e2beb2
*v16 = 0x3a83126f;
}
int32_t v17 = function_1e3df20(37); // 0x1e2bebb
float32_t v18 = v17;
g2 = v17;
int32_t v19; // 0x1e2bf00
float32_t v20; // 0x1e2bf216
if (v17 == 0) {
// 0x1e2bef9
v9 = 0.0f;
v20 = 0.0f;
v19 = 0;
} else {
int32_t v21 = g4; // 0x1e2bec7
float80_t v22 = (float80_t)*(float32_t *)(v21 + 122); // 0x1e2bec7
*(int32_t *)v17 = (int32_t)&g28;
float32_t v23 = v18; // 0x1e2bed8
int32_t v24 = (int32_t)v23 + 21; // edi
*(int32_t *)((int32_t)v23 + 4) = g4;
*(int32_t *)((int32_t)v18 + 8) = v21 + 5;
*(int32_t *)((int32_t)v18 + 17) = g5;
*(char *)((int32_t)v18 + 12) = 0;
*(int32_t *)(int32_t)v18 = (int32_t)&g29;
*(float32_t *)((int32_t)v18 + 33) = (float32_t)(v22 * v22);
*(int32_t *)v24 = *(int32_t *)g8;
int32_t v25 = g1 ? -4 : 4; // 0x1e2bef1
int32_t v26 = v25 + v24; // 0x1e2bef1
int32_t v27 = v25 + g8; // 0x1e2bef1
*(int32_t *)v26 = *(int32_t *)v27;
int32_t v28 = v26 + v25; // 0x1e2bef2
*(int32_t *)v28 = *(int32_t *)(v27 + v25);
g6 = v28 + v25;
int32_t v29 = *(int32_t *)&v18; // 0x1e2bef43
*(int32_t *)&v9 = v29;
v20 = v29;
v19 = v29;
}
// 0x1e2bf00
g2 = v19;
g5 = v19;
int32_t v30 = g4; // 0x1e2bf0a
int32_t v31 = v30 + 46; // 0x1e2bf0a
g8 = v31;
int32_t v32 = *(int32_t *)v31; // 0x1e2bf0d
g5 = v32;
int32_t v33 = *(int32_t *)v32; // 0x1e2bf0f
g2 = v33;
float32_t v34; // 0x1e2bf21
if (*(int32_t *)(v32 + 4) == v33) {
int32_t v35 = function_1e3a739(v32, *(int32_t *)(v30 + 42)); // 0x1e2bf1a
g2 = v35;
*(int32_t *)g8 = v35;
v34 = v9;
} else {
v34 = v20;
}
// 0x1e2bf21
*(int32_t *)(g9 - 4) = (int32_t)v34;
*(int32_t *)(g9 - 8) = *(int32_t *)g8;
g2 = function_1e3a6a7((int32_t)&g708, (int32_t)&g708);
g5 = v13;
*(int32_t *)(g9 - 4) = 408;
*(int32_t *)(g9 - 8) = 0;
float80_t v36 = (float80_t)*(float32_t *)g5; // st7
*(int32_t *)(g9 - 12) = a2;
*(float32_t *)(g4 + 122) = (float32_t)v36;
int32_t v37 = g4; // 0x1e2bf3d
float32_t * v38 = (float32_t *)(v37 + 122); // 0x1e2bf3d
int32_t v39; // bp-64
g8 = v39;
g6 = v37 + 130;
*v38 = (float32_t)(v36 * (float80_t)*v38);
int32_t v40 = function_1e3991a((int32_t)&g708, (int32_t)&g708); // 0x1e2bf4c
g2 = v40;
int32_t v41 = *(int32_t *)(v40 + 8); // 0x1e2bf51
g5 = v41;
*(int32_t *)(g4 + 98) = v41;
*(int32_t *)g6 = v39;
int32_t v42 = g1 ? -4 : 4; // 0x1e2bf57
int32_t v43 = v42 + g6; // 0x1e2bf57
int32_t v44 = v42 + g8; // 0x1e2bf57
*(int32_t *)v43 = *(int32_t *)v44;
*(int32_t *)(v43 + v42) = *(int32_t *)(v44 + v42);
int32_t v45 = g4; // 0x1e2bf69
g5 = *(int32_t *)(v45 + 122);
int32_t v46; // bp-24
int32_t v47 = v46; // 0x1e2bf6c
int32_t v48 = v45 + 110; // esi
float32_t v49;
*(float32_t *)(g4 + 150) = (float32_t)(0.01L * (float80_t)v49);
*(int32_t *)(g4 + 146) = g2;
v9 = g5;
int32_t v50 = g4; // 0x1e2bf87
g5 = v50 + 154;
g2 = v50 + 5;
v46 = *(int32_t *)v48;
int32_t v51 = v47 + v42; // 0x1e2bf90
int32_t v52 = v48 + v42; // 0x1e2bf90
*(int32_t *)v51 = *(int32_t *)v52;
int32_t v53 = v51 + v42; // 0x1e2bf91
int32_t v54 = v52 + v42; // 0x1e2bf91
*(int32_t *)v53 = *(int32_t *)v54;
g6 = v53 + v42;
g8 = v54 + v42;
*(int32_t *)(g9 - 4) = g5;
*(int32_t *)(g9 - 8) = 0;
int32_t v55 = g4; // 0x1e2bf99
*(int32_t *)(v55 + 162) = v55;
*(int32_t *)g5 = g2;
*(int32_t *)(g4 + 158) = g7;
g2 = v47;
*(int32_t *)(g9 - 4) = v47;
function_1e319ad(v46, (int32_t)&g708, (int32_t)&g708);
int32_t result = g4; // 0x1e2bfb0
g2 = result;
g6 = *(int32_t *)g9;
g4 = *(int32_t *)(g9 + 8);
g3 = v1;
return result;
}
// Address range: 0x1e2bfbb - 0x1e2bfc0
int32_t function_1e2bfbb(void) {
int32_t result = function_1e2a510(); // 0x1e2bfbb
g2 = result;
return result;
}
// Address range: 0x1e2bfc0 - 0x1e2bfde
int32_t function_1e2bfc0(char a1) {
// 0x1e2bfc0
g2 = function_1e2a4cb();
if ((a1 & 1) != 0) {
// 0x1e2bfcf
g2 = function_1e3df60(g8);
}
// 0x1e2bfd8
g2 = g8;
return g8;
}
// Address range: 0x1e2bfde - 0x1e2c048
int32_t function_1e2bfde(int32_t a1) {
int32_t v1 = g5; // 0x1e2bfdf
g8 = v1;
if (*(int32_t *)(v1 + 78) != 0) {
// 0x1e2c044
return g2;
}
// 0x1e2bfe7
*(int32_t *)(v1 + 66) = 0x4e6e6b28;
*(int32_t *)(g8 + 78) = 1;
g5 = a1;
*(int32_t *)(g8 + 102) = a1;
*(int32_t *)(g5 + 106) = g8;
int32_t v2 = *(int32_t *)(g8 + 110); // 0x1e2bfff
g2 = v2;
*(int32_t *)(g5 + 42) = v2;
int32_t v3 = g5; // 0x1e2c005
g2 = *(int32_t *)(v3 + 50);
*(int32_t *)(v3 + 46) = *(int32_t *)(g8 + 114);
int32_t v4 = g8; // 0x1e2c00e
*(int32_t *)(v4 + 126) = g2;
*(int32_t *)(g5 + 50) = *(int32_t *)(v4 + 98);
int32_t v5 = g8; // 0x1e2c017
int32_t v6 = *(int32_t *)(v5 + 30); // 0x1e2c017
g5 = v6;
int32_t result; // 0x1e2c03f
if (*(int32_t *)(v6 + 370) == 0) {
// 0x1e2c032
g2 = function_1e39a10(*(int32_t *)(v5 + 70));
g11++;
result = function_1e328b9(63, g8);
g2 = result;
} else {
// 0x1e2c023
g2 = v6;
g5 = v5;
result = v6;
}
// 0x1e2c044
return result;
}
// Address range: 0x1e2c048 - 0x1e2c060
int32_t function_1e2c048(int32_t a1) {
// 0x1e2c048
g2 = a1;
int32_t v1; // 0x1e2c056
if (*(int32_t *)(a1 + 82) == 0) {
// 0x1e2c052
*(char *)(a1 + 5) = 1;
v1 = g2;
} else {
v1 = a1;
}
// 0x1e2c056
*(int32_t *)(v1 + 86) = 0;
return g2;
}
// Address range: 0x1e2c060 - 0x1e2c0c2
int32_t function_1e2c060(int32_t a1) {
// 0x1e2c060
g8 = a1;
g4 = 0;
int32_t * v1 = (int32_t *)(a1 + 78); // 0x1e2c068
if (*v1 == 0) {
// 0x1e2c0bd
g8 = *(int32_t *)g9;
return g2;
}
// 0x1e2c06d
*v1 = 0;
int32_t v2 = g8; // 0x1e2c075
int32_t v3 = function_1e325d2(*(int32_t *)(v2 + 94), v2, 0x1e2c048); // 0x1e2c079
g2 = v3;
*(int32_t *)(g8 + 86) = v3;
int32_t * v4 = (int32_t *)(g8 + 102); // 0x1e2c081
int32_t v5 = *v4; // 0x1e2c081
g5 = v5;
if (v5 != 0) {
// 0x1e2c088
*v4 = g4;
*(int32_t *)(v5 + 50) = *(int32_t *)(g8 + 126);
int32_t v6 = g8; // 0x1e2c091
int32_t v7 = v6 + 130; // 0x1e2c091
g2 = v7;
int32_t v8 = *(int32_t *)(v6 + 146); // 0x1e2c09d
int32_t v9 = *(int32_t *)(v6 + 142); // 0x1e2c0a3
g2 = function_1e29f0d(v5, v7, v9, v8, *(int32_t *)(v6 + 150));
*(char *)(g8 + 5) = (char)g4;
g2 = function_1e39a10(*(int32_t *)(g8 + 74));
}
// 0x1e2c0bd
g8 = *(int32_t *)g9;
return g2;
}