2198 lines
69 KiB
C
2198 lines
69 KiB
C
#include "pinball.h"
|
|
|
|
// Address range: 0x1e42ee0 - 0x1e43113
|
|
int32_t function_1e42ee0(int32_t a1) {
|
|
int32_t v1 = g8; // 0x1e42ee0
|
|
g8 = a1;
|
|
int32_t result; // 0x1e43112
|
|
if (a1 == 0) {
|
|
// 0x1e42ee0
|
|
result = g2;
|
|
} else {
|
|
int32_t v2 = *(int32_t *)(a1 + 4); // 0x1e42eed
|
|
g2 = v2;
|
|
g2 = function_1e22600(v2);
|
|
int32_t v3 = *(int32_t *)(a1 + 8); // 0x1e42ef9
|
|
g2 = v3;
|
|
g2 = function_1e22600(v3);
|
|
int32_t v4 = *(int32_t *)(a1 + 12); // 0x1e42f05
|
|
g2 = v4;
|
|
g2 = function_1e22600(v4);
|
|
int32_t v5 = *(int32_t *)(a1 + 16); // 0x1e42f11
|
|
g2 = v5;
|
|
g2 = function_1e22600(v5);
|
|
int32_t v6 = *(int32_t *)(a1 + 20); // 0x1e42f1d
|
|
g2 = v6;
|
|
g2 = function_1e22600(v6);
|
|
int32_t v7 = *(int32_t *)(a1 + 24); // 0x1e42f29
|
|
g2 = v7;
|
|
g2 = function_1e22600(v7);
|
|
int32_t v8 = *(int32_t *)a1; // 0x1e42f35
|
|
g2 = v8;
|
|
g2 = function_1e22600(v8);
|
|
int32_t v9 = *(int32_t *)(a1 + 32); // 0x1e42f40
|
|
g2 = v9;
|
|
g2 = function_1e22600(v9);
|
|
int32_t v10 = *(int32_t *)(a1 + 36); // 0x1e42f4c
|
|
g2 = v10;
|
|
g2 = function_1e22600(v10);
|
|
int32_t v11 = *(int32_t *)(a1 + 40); // 0x1e42f58
|
|
g2 = v11;
|
|
g2 = function_1e22600(v11);
|
|
int32_t v12 = *(int32_t *)(a1 + 44); // 0x1e42f64
|
|
g2 = v12;
|
|
g2 = function_1e22600(v12);
|
|
int32_t v13 = *(int32_t *)(a1 + 48); // 0x1e42f70
|
|
g2 = v13;
|
|
g2 = function_1e22600(v13);
|
|
int32_t v14 = *(int32_t *)(a1 + 52); // 0x1e42f7c
|
|
g2 = v14;
|
|
g2 = function_1e22600(v14);
|
|
int32_t v15 = *(int32_t *)(a1 + 28); // 0x1e42f88
|
|
g2 = v15;
|
|
g2 = function_1e22600(v15);
|
|
int32_t v16 = *(int32_t *)(a1 + 56); // 0x1e42f94
|
|
g2 = v16;
|
|
g2 = function_1e22600(v16);
|
|
int32_t v17 = *(int32_t *)(a1 + 60); // 0x1e42fa0
|
|
g2 = v17;
|
|
g2 = function_1e22600(v17);
|
|
int32_t v18 = *(int32_t *)(a1 + 64); // 0x1e42fac
|
|
g2 = v18;
|
|
g2 = function_1e22600(v18);
|
|
int32_t v19 = *(int32_t *)(a1 + 68); // 0x1e42fb8
|
|
g2 = v19;
|
|
g2 = function_1e22600(v19);
|
|
int32_t v20 = *(int32_t *)(a1 + 72); // 0x1e42fc4
|
|
g2 = v20;
|
|
g2 = function_1e22600(v20);
|
|
int32_t v21 = *(int32_t *)(a1 + 76); // 0x1e42fd0
|
|
g2 = v21;
|
|
g2 = function_1e22600(v21);
|
|
int32_t v22 = *(int32_t *)(a1 + 80); // 0x1e42fdc
|
|
g2 = v22;
|
|
g2 = function_1e22600(v22);
|
|
int32_t v23 = *(int32_t *)(a1 + 84); // 0x1e42fe8
|
|
g2 = v23;
|
|
g2 = function_1e22600(v23);
|
|
int32_t v24 = *(int32_t *)(a1 + 88); // 0x1e42ff4
|
|
g2 = v24;
|
|
g2 = function_1e22600(v24);
|
|
int32_t v25 = *(int32_t *)(a1 + 92); // 0x1e43000
|
|
g2 = v25;
|
|
g2 = function_1e22600(v25);
|
|
int32_t v26 = *(int32_t *)(a1 + 96); // 0x1e4300c
|
|
g2 = v26;
|
|
g2 = function_1e22600(v26);
|
|
int32_t v27 = *(int32_t *)(a1 + 100); // 0x1e43018
|
|
g2 = v27;
|
|
g2 = function_1e22600(v27);
|
|
int32_t v28 = *(int32_t *)(a1 + 104); // 0x1e43024
|
|
g2 = v28;
|
|
g2 = function_1e22600(v28);
|
|
int32_t v29 = *(int32_t *)(a1 + 108); // 0x1e43030
|
|
g2 = v29;
|
|
g2 = function_1e22600(v29);
|
|
int32_t v30 = *(int32_t *)(a1 + 112); // 0x1e4303c
|
|
g2 = v30;
|
|
g2 = function_1e22600(v30);
|
|
int32_t v31 = *(int32_t *)(a1 + 116); // 0x1e43048
|
|
g2 = v31;
|
|
g2 = function_1e22600(v31);
|
|
int32_t v32 = *(int32_t *)(a1 + 120); // 0x1e43054
|
|
g2 = v32;
|
|
g2 = function_1e22600(v32);
|
|
int32_t v33 = *(int32_t *)(a1 + 124); // 0x1e43060
|
|
g2 = v33;
|
|
g2 = function_1e22600(v33);
|
|
int32_t v34 = *(int32_t *)(a1 + 128); // 0x1e4306c
|
|
g2 = v34;
|
|
g2 = function_1e22600(v34);
|
|
int32_t v35 = *(int32_t *)(a1 + 132); // 0x1e4307b
|
|
g2 = v35;
|
|
g2 = function_1e22600(v35);
|
|
int32_t v36 = *(int32_t *)(a1 + 136); // 0x1e4308a
|
|
g2 = v36;
|
|
g2 = function_1e22600(v36);
|
|
int32_t v37 = *(int32_t *)(a1 + 140); // 0x1e43099
|
|
g2 = v37;
|
|
g2 = function_1e22600(v37);
|
|
int32_t v38 = *(int32_t *)(a1 + 144); // 0x1e430a8
|
|
g2 = v38;
|
|
g2 = function_1e22600(v38);
|
|
int32_t v39 = *(int32_t *)(a1 + 148); // 0x1e430b7
|
|
g2 = v39;
|
|
g2 = function_1e22600(v39);
|
|
int32_t v40 = *(int32_t *)(a1 + 152); // 0x1e430c6
|
|
g2 = v40;
|
|
g2 = function_1e22600(v40);
|
|
int32_t v41 = *(int32_t *)(a1 + 156); // 0x1e430d5
|
|
g2 = v41;
|
|
g2 = function_1e22600(v41);
|
|
int32_t v42 = *(int32_t *)(a1 + 160); // 0x1e430e4
|
|
g2 = v42;
|
|
g2 = function_1e22600(v42);
|
|
int32_t v43 = *(int32_t *)(a1 + 164); // 0x1e430f3
|
|
g2 = v43;
|
|
g2 = function_1e22600(v43);
|
|
int32_t v44 = *(int32_t *)(a1 + 168); // 0x1e43102
|
|
g2 = v44;
|
|
int32_t v45 = function_1e22600(v44); // 0x1e43109
|
|
g2 = v45;
|
|
result = v45;
|
|
}
|
|
// 0x1e43111
|
|
g8 = v1;
|
|
return result;
|
|
}
|
|
|
|
// Address range: 0x1e43120 - 0x1e43213
|
|
int32_t function_1e43120(int32_t a1, int32_t a2) {
|
|
// 0x1e43120
|
|
char * v1; // bp-12
|
|
int32_t v2 = (int32_t)&v1; // 0x1e43120
|
|
int32_t v3; // bp-4
|
|
int32_t v4 = &v3; // 0x1e43123
|
|
g2 = v4;
|
|
v3 = 0;
|
|
int32_t v5 = 0; // bp-8
|
|
g6 = a1;
|
|
g8 = function_1e45150(0, a1, 35, v4);
|
|
int32_t v6 = &v5; // 0x1e4314d
|
|
g2 = v6;
|
|
g8 |= function_1e45150(0, g6, 37, v6);
|
|
g2 = v2;
|
|
int32_t v7 = function_1e45150(1, g6, 30, v2); // 0x1e4316b
|
|
g2 = v7;
|
|
int32_t result = g8 | v7; // 0x1e43173
|
|
g8 = result;
|
|
if (result != 0) {
|
|
// 0x1e43177
|
|
g2 = result;
|
|
return result;
|
|
}
|
|
// 0x1e4317f
|
|
g6 = a2;
|
|
int32_t v8 = function_1e22670(13); // 0x1e43185
|
|
g2 = v8;
|
|
int32_t v9 = v8; // edx
|
|
*(int32_t *)(g6 + 168) = v8;
|
|
char * v10 = (char *)v9; // 0x1e431ac
|
|
int32_t v11; // 0x1e431c73
|
|
if (v3 == 0) {
|
|
// 0x1e431ac
|
|
*v10 = 104;
|
|
int32_t v12 = v9 + 1; // 0x1e431af
|
|
v9 = v12;
|
|
if (v5 == 0) {
|
|
v11 = v12;
|
|
goto lab_0x1e431bb;
|
|
} else {
|
|
// 0x1e431b7
|
|
*(char *)v12 = 104;
|
|
goto lab_0x1e431ba;
|
|
}
|
|
} else {
|
|
// 0x1e4319c
|
|
*v10 = 72;
|
|
int32_t v13 = v9 + 1; // 0x1e4319f
|
|
v9 = v13;
|
|
if (v5 == 0) {
|
|
v11 = v13;
|
|
goto lab_0x1e431bb;
|
|
} else {
|
|
// 0x1e431a7
|
|
*(char *)v13 = 72;
|
|
goto lab_0x1e431ba;
|
|
}
|
|
}
|
|
lab_0x1e431bb:;
|
|
char * v14 = v1; // 0x1e431bb
|
|
int32_t v15 = (int32_t)v14; // 0x1e431bb
|
|
g2 = v15;
|
|
int32_t v16; // 0x1e431cf
|
|
if (*v14 != 0) {
|
|
unsigned char v17 = *(char *)v15; // 0x1e431c4
|
|
g5 = g5 & -256 | (int32_t)v17;
|
|
g2 = v15 + 1;
|
|
*(char *)v11 = v17;
|
|
int32_t v18 = v9 + 1; // 0x1e431c9
|
|
v9 = v18;
|
|
int32_t v19 = g2; // 0x1e431ca
|
|
v16 = v18;
|
|
while (*(char *)v19 != 0) {
|
|
// 0x1e431c4
|
|
v15 = v19;
|
|
v17 = *(char *)v15;
|
|
g5 = g5 & -256 | (int32_t)v17;
|
|
g2 = v15 + 1;
|
|
*(char *)v18 = v17;
|
|
v18 = v9 + 1;
|
|
v9 = v18;
|
|
v19 = g2;
|
|
v16 = v18;
|
|
}
|
|
} else {
|
|
v16 = v11;
|
|
}
|
|
// 0x1e431cf
|
|
*(char *)v16 = 109;
|
|
int32_t v20 = v9 + 1; // 0x1e431d2
|
|
v9 = v20;
|
|
int32_t v21; // 0x1e431dd
|
|
if (v5 != 0) {
|
|
// 0x1e431da
|
|
*(char *)v20 = 109;
|
|
v21 = v9 + 1;
|
|
v9 = v21;
|
|
} else {
|
|
v21 = v20;
|
|
}
|
|
char * v22 = v1; // 0x1e431de
|
|
int32_t v23 = (int32_t)v22; // 0x1e431de
|
|
g2 = v23;
|
|
int32_t v24; // 0x1e431f2
|
|
if (*v22 != 0) {
|
|
unsigned char v25 = *(char *)v23; // 0x1e431e7
|
|
g5 = g5 & -256 | (int32_t)v25;
|
|
g2 = v23 + 1;
|
|
*(char *)v21 = v25;
|
|
int32_t v26 = v9 + 1; // 0x1e431ec
|
|
v9 = v26;
|
|
int32_t v27 = g2; // 0x1e431ed
|
|
v24 = v26;
|
|
while (*(char *)v27 != 0) {
|
|
// 0x1e431e7
|
|
v23 = v27;
|
|
v25 = *(char *)v23;
|
|
g5 = g5 & -256 | (int32_t)v25;
|
|
g2 = v23 + 1;
|
|
*(char *)v26 = v25;
|
|
v26 = v9 + 1;
|
|
v9 = v26;
|
|
v27 = g2;
|
|
v24 = v26;
|
|
}
|
|
} else {
|
|
v24 = v21;
|
|
}
|
|
// 0x1e431f2
|
|
*(char *)v24 = 115;
|
|
*(char *)(v9 + 1) = 115;
|
|
*(char *)(v9 + 2) = 0;
|
|
int32_t v28 = (int32_t)v1; // 0x1e431fe
|
|
g2 = v28;
|
|
function_1e22600(v28);
|
|
g2 = g8;
|
|
return g8;
|
|
lab_0x1e431ba:;
|
|
int32_t v29 = v9 + 1; // 0x1e431ba
|
|
v9 = v29;
|
|
v11 = v29;
|
|
goto lab_0x1e431bb;
|
|
}
|
|
|
|
// Address range: 0x1e43220 - 0x1e43436
|
|
int32_t function_1e43220(void) {
|
|
// 0x1e43220
|
|
g8 = 0;
|
|
int32_t v1 = g467; // 0x1e4322d
|
|
g6 = v1;
|
|
if (g128 != 0) {
|
|
int32_t v2 = function_1e45150(1, v1, 14, (int32_t)&g459); // 0x1e43244
|
|
g2 = v2;
|
|
g4 = v2;
|
|
int32_t v3 = function_1e45150(1, g6, 15, (int32_t)&g460); // 0x1e43258
|
|
g2 = v3;
|
|
g4 |= v3;
|
|
int32_t v4 = function_1e45150(1, g6, 16, (int32_t)&g461); // 0x1e4326c
|
|
int32_t v5 = g4 | v4; // 0x1e43274
|
|
g4 = v5;
|
|
int32_t v6 = g461; // 0x1e43276
|
|
g2 = v6;
|
|
g2 = function_1e43440(v6);
|
|
if (v5 != 0) {
|
|
int32_t v7 = g459; // 0x1e43288
|
|
g2 = v7;
|
|
function_1e22600(v7);
|
|
int32_t v8 = g460; // 0x1e43296
|
|
g2 = v8;
|
|
function_1e22600(v8);
|
|
int32_t v9 = g461; // 0x1e432a4
|
|
g2 = v9;
|
|
function_1e22600(v9);
|
|
g2 = -1;
|
|
g459 = g8;
|
|
g460 = g8;
|
|
g461 = g8;
|
|
return -1;
|
|
}
|
|
int32_t v10 = *(int32_t *)0x1e537c8; // 0x1e432cd
|
|
g2 = v10;
|
|
int32_t v11 = *(int32_t *)v10; // 0x1e432d2
|
|
g2 = v11;
|
|
if (v11 != 0x1e53790) {
|
|
// 0x1e432db
|
|
function_1e22600(v11);
|
|
int32_t v12 = (int32_t)g479; // 0x1e432e4
|
|
g2 = v12;
|
|
int32_t v13 = *(int32_t *)(v12 + 4); // 0x1e432e9
|
|
g5 = v13;
|
|
g2 = function_1e22600(v13);
|
|
int32_t v14 = (int32_t)g479; // 0x1e432f5
|
|
g5 = v14;
|
|
g2 = function_1e22600(*(int32_t *)(v14 + 8));
|
|
}
|
|
// 0x1e43307
|
|
*(int32_t *)g479 = g459;
|
|
*(int32_t *)((int32_t)g479 + 4) = g460;
|
|
*(int32_t *)((int32_t)g479 + 8) = g461;
|
|
int32_t v15 = (int32_t)g479; // 0x1e43331
|
|
g5 = v15;
|
|
g444 = 1;
|
|
g443 = v15;
|
|
g2 = 0;
|
|
return 0;
|
|
}
|
|
int32_t v16 = g459; // 0x1e43350
|
|
g2 = v16;
|
|
function_1e22600(v16);
|
|
int32_t v17 = g460; // 0x1e4335e
|
|
g2 = v17;
|
|
function_1e22600(v17);
|
|
int32_t v18 = g461; // 0x1e4336c
|
|
g2 = v18;
|
|
g8 = 0;
|
|
g2 = function_1e22600(v18);
|
|
int32_t v19 = g8; // 0x1e4337c
|
|
g459 = v19;
|
|
g460 = v19;
|
|
g461 = v19;
|
|
*(int32_t *)g479 = function_1e22670(2);
|
|
int32_t v20 = (int32_t)g479; // 0x1e433a0
|
|
g5 = v20;
|
|
g2 = v20;
|
|
if (v20 == g8) {
|
|
// 0x1e433ac
|
|
g2 = -1;
|
|
return -1;
|
|
}
|
|
// 0x1e433b5
|
|
g5 = v20 & -0x10000 | 46;
|
|
*g479 = 46;
|
|
int32_t v21 = function_1e22670(2); // 0x1e433c1
|
|
g2 = v21;
|
|
*(int32_t *)((int32_t)g479 + 4) = v21;
|
|
int32_t v22 = (int32_t)g479; // 0x1e433d2
|
|
g5 = v22;
|
|
int32_t v23 = *(int32_t *)(v22 + 4); // 0x1e433d8
|
|
g2 = v23;
|
|
if (v23 == 0) {
|
|
// 0x1e433df
|
|
g2 = -1;
|
|
return -1;
|
|
}
|
|
// 0x1e433e8
|
|
*(char *)v23 = 0;
|
|
int32_t v24 = function_1e22670(2); // 0x1e433ed
|
|
g2 = v24;
|
|
*(int32_t *)((int32_t)g479 + 8) = v24;
|
|
int32_t v25 = (int32_t)g479; // 0x1e433fe
|
|
g5 = v25;
|
|
int32_t v26 = *(int32_t *)(v25 + 8); // 0x1e43404
|
|
g2 = v26;
|
|
if (v26 == 0) {
|
|
// 0x1e4340b
|
|
g2 = -1;
|
|
return -1;
|
|
}
|
|
// 0x1e43414
|
|
*(char *)v26 = 0;
|
|
int32_t v27 = (int32_t)g479; // 0x1e43417
|
|
g5 = v27;
|
|
g2 = 0;
|
|
g444 = 1;
|
|
g443 = v27;
|
|
return 0;
|
|
}
|
|
|
|
// Address range: 0x1e43440 - 0x1e43483
|
|
int32_t function_1e43440(int32_t a1) {
|
|
int32_t v1 = a1; // edx
|
|
if (*(char *)a1 == 0) {
|
|
// 0x1e43481
|
|
return g2;
|
|
}
|
|
lab_0x1e4344a_3:;
|
|
char v2; // 0x1e4344a
|
|
int32_t result; // 0x1e4344a
|
|
while (true) {
|
|
lab_0x1e4344a:;
|
|
char * v3 = (char *)a1; // 0x1e4344a
|
|
v2 = *v3;
|
|
int32_t v4 = g2 & -256; // 0x1e4344a
|
|
result = v4 | (int32_t)v2;
|
|
g2 = result;
|
|
unsigned char v5 = v2 - 48; // 0x1e4344c
|
|
if (v2 < 48) {
|
|
goto lab_0x1e43460;
|
|
} else {
|
|
if (v2 > 57) {
|
|
goto lab_0x1e43460;
|
|
} else {
|
|
// 0x1e43454
|
|
g2 = v4 | (int32_t)v5;
|
|
*v3 = v5;
|
|
int32_t v6 = v1 + 1; // 0x1e43458
|
|
v1 = v6;
|
|
if (*(char *)v6 == 0) {
|
|
// 0x1e4345e
|
|
return g2;
|
|
}
|
|
a1 = v6;
|
|
goto lab_0x1e4344a;
|
|
}
|
|
}
|
|
}
|
|
// 0x1e43481
|
|
return result;
|
|
lab_0x1e43460:
|
|
if (v2 != 59) {
|
|
int32_t v7 = a1 + 1; // 0x1e4347b
|
|
v1 = v7;
|
|
if (*(char *)v7 == 0) {
|
|
return result;
|
|
}
|
|
a1 = v7;
|
|
// continue -> 0x1e4344a
|
|
goto lab_0x1e4344a_3;
|
|
}
|
|
// 0x1e43464
|
|
g2 = a1;
|
|
int32_t v8 = a1; // 0x1e4346b
|
|
int32_t v9 = v8 + 1; // 0x1e43466
|
|
g5 = v9;
|
|
unsigned char v10 = *(char *)v9; // 0x1e43469
|
|
g4 = g4 & -256 | (int32_t)v10;
|
|
*(char *)v8 = v10;
|
|
int32_t result2 = g5; // 0x1e4346d
|
|
g2 = result2;
|
|
while (*(char *)result2 != 0) {
|
|
// 0x1e43466
|
|
v8 = result2;
|
|
v9 = v8 + 1;
|
|
g5 = v9;
|
|
v10 = *(char *)v9;
|
|
g4 = g4 & -256 | (int32_t)v10;
|
|
*(char *)v8 = v10;
|
|
result2 = g5;
|
|
g2 = result2;
|
|
}
|
|
int32_t v11 = v1; // 0x1e43474
|
|
if (*(char *)v11 == 0) {
|
|
// 0x1e43479
|
|
return result2;
|
|
}
|
|
a1 = v11;
|
|
// continue -> 0x1e4344a
|
|
goto lab_0x1e4344a_3;
|
|
}
|
|
|
|
// Address range: 0x1e43490 - 0x1e4357f
|
|
int32_t function_1e43490(void) {
|
|
// 0x1e43490
|
|
if (g127 == 0) {
|
|
int32_t v1 = (int32_t)g479; // 0x1e4352a
|
|
g2 = v1;
|
|
g5 = v1;
|
|
g478 = g479;
|
|
*(int32_t *)0x1e5379c = *(int32_t *)(v1 + 4);
|
|
int32_t v2 = *(int32_t *)(g2 + 8); // 0x1e43546
|
|
g5 = v2;
|
|
g479 = (int16_t *)&g478;
|
|
*(int32_t *)0x1e537a0 = v2;
|
|
g2 = function_1e43720(g462);
|
|
g5 = g462;
|
|
function_1e22600(g462);
|
|
g2 = 0;
|
|
g462 = 0;
|
|
return 0;
|
|
}
|
|
int32_t v3 = function_1e22760(1, 48); // 0x1e434a2
|
|
g2 = v3;
|
|
g8 = v3;
|
|
if (v3 == 0) {
|
|
// 0x1e434b0
|
|
g2 = 1;
|
|
return 1;
|
|
}
|
|
int32_t v4 = function_1e43580(v3); // 0x1e434b8
|
|
g2 = v4;
|
|
if (v4 != 0) {
|
|
// 0x1e434c4
|
|
g2 = function_1e43720(v3);
|
|
function_1e22600(v3);
|
|
g2 = 1;
|
|
return 1;
|
|
}
|
|
int32_t v5 = (int32_t)g479; // 0x1e434dd
|
|
g5 = v5;
|
|
*(int32_t *)v3 = v5;
|
|
int32_t v6 = (int32_t)g479; // 0x1e434e6
|
|
g2 = v6;
|
|
*(int32_t *)(v3 + 4) = *(int32_t *)(v6 + 4);
|
|
int32_t v7 = (int32_t)g479; // 0x1e434f1
|
|
g2 = v7;
|
|
int32_t v8 = *(int32_t *)(v7 + 8); // 0x1e434f6
|
|
g5 = v8;
|
|
*(int32_t *)(v3 + 8) = v8;
|
|
g479 = (int16_t *)v3;
|
|
g2 = function_1e43720(g462);
|
|
g5 = g462;
|
|
function_1e22600(g462);
|
|
g2 = 0;
|
|
g462 = v3;
|
|
return 0;
|
|
}
|
|
|
|
// Address range: 0x1e43580 - 0x1e436cf
|
|
int32_t function_1e43580(int32_t a1) {
|
|
int32_t v1 = g8; // 0x1e43581
|
|
g8 = a1;
|
|
int32_t v2 = g6; // 0x1e43586
|
|
int32_t v3 = g466; // 0x1e4358a
|
|
g6 = v3;
|
|
if (a1 == 0) {
|
|
// 0x1e43595
|
|
g2 = -1;
|
|
g6 = v2;
|
|
g8 = v1;
|
|
return -1;
|
|
}
|
|
int32_t v4 = a1 + 12; // 0x1e4359f
|
|
g2 = v4;
|
|
g4 = function_1e45150(1, v3, 21, v4);
|
|
int32_t v5 = a1 + 16; // 0x1e435b2
|
|
g2 = v5;
|
|
g4 |= function_1e45150(1, g6, 20, v5);
|
|
int32_t v6 = a1 + 20; // 0x1e435c5
|
|
g2 = v6;
|
|
g4 |= function_1e45150(1, g6, 22, v6);
|
|
int32_t v7 = a1 + 24; // 0x1e435d8
|
|
g2 = v7;
|
|
g3 = a1 + 28;
|
|
int32_t v8 = function_1e45150(1, g6, 23, v7); // 0x1e435e4
|
|
g2 = v8;
|
|
g4 |= v8;
|
|
int32_t v9 = function_1e45150(1, g6, 24, g3); // 0x1e435f4
|
|
g2 = v9;
|
|
g4 |= v9;
|
|
int32_t v10 = *(int32_t *)g3; // 0x1e435fe
|
|
g2 = v10;
|
|
function_1e436d0(v10);
|
|
int32_t v11 = a1 + 32; // 0x1e4360a
|
|
g2 = v11;
|
|
g4 |= function_1e45150(1, g6, 80, v11);
|
|
int32_t v12 = a1 + 36; // 0x1e4361d
|
|
g2 = v12;
|
|
g4 |= function_1e45150(1, g6, 81, v12);
|
|
int32_t v13 = a1 + 40; // 0x1e43630
|
|
g2 = v13;
|
|
g4 |= function_1e45150(0, g6, 26, v13);
|
|
int32_t v14 = a1 + 41; // 0x1e43643
|
|
g2 = v14;
|
|
g4 |= function_1e45150(0, g6, 25, v14);
|
|
int32_t v15 = a1 + 42; // 0x1e43656
|
|
g2 = v15;
|
|
g4 |= function_1e45150(0, g6, 84, v15);
|
|
int32_t v16 = a1 + 43; // 0x1e43669
|
|
g2 = v16;
|
|
g4 |= function_1e45150(0, g6, 85, v16);
|
|
int32_t v17 = a1 + 44; // 0x1e4367c
|
|
g2 = v17;
|
|
g4 |= function_1e45150(0, g6, 86, v17);
|
|
int32_t v18 = a1 + 45; // 0x1e4368f
|
|
g2 = v18;
|
|
g4 |= function_1e45150(0, g6, 87, v18);
|
|
int32_t v19 = a1 + 46; // 0x1e436a2
|
|
g2 = v19;
|
|
g8 = a1 + 47;
|
|
int32_t v20 = function_1e45150(0, g6, 82, v19); // 0x1e436ae
|
|
g2 = v20;
|
|
g4 |= v20;
|
|
int32_t result = g4 | function_1e45150(0, g6, 83, g8); // 0x1e436c6
|
|
g2 = result;
|
|
g6 = v2;
|
|
g8 = v1;
|
|
return result;
|
|
}
|
|
|
|
// Address range: 0x1e436d0 - 0x1e43713
|
|
int32_t function_1e436d0(int32_t a1) {
|
|
// 0x1e436d0
|
|
g7 = a1;
|
|
int32_t v1 = g4; // 0x1e436d4
|
|
if (*(char *)a1 == 0) {
|
|
// 0x1e43711
|
|
g4 = v1;
|
|
return g2;
|
|
}
|
|
lab_0x1e436da_3:;
|
|
char v2; // 0x1e436da
|
|
int32_t result; // 0x1e436da
|
|
while (true) {
|
|
lab_0x1e436da:;
|
|
char * v3 = (char *)a1; // 0x1e436da
|
|
v2 = *v3;
|
|
int32_t v4 = g2 & -256; // 0x1e436da
|
|
result = v4 | (int32_t)v2;
|
|
g2 = result;
|
|
unsigned char v5 = v2 - 48; // 0x1e436dc
|
|
if (v2 < 48) {
|
|
goto lab_0x1e436f0;
|
|
} else {
|
|
if (v2 > 57) {
|
|
goto lab_0x1e436f0;
|
|
} else {
|
|
// 0x1e436e4
|
|
g2 = v4 | (int32_t)v5;
|
|
*v3 = v5;
|
|
int32_t v6 = g7 + 1; // 0x1e436e8
|
|
g7 = v6;
|
|
if (*(char *)v6 == 0) {
|
|
// 0x1e436ee
|
|
g4 = v1;
|
|
return g2;
|
|
}
|
|
a1 = v6;
|
|
goto lab_0x1e436da;
|
|
}
|
|
}
|
|
}
|
|
lab_0x1e43711:
|
|
// 0x1e43711
|
|
g4 = v1;
|
|
return result;
|
|
lab_0x1e436f0:
|
|
if (v2 != 59) {
|
|
int32_t v7 = a1 + 1; // 0x1e4370b
|
|
g7 = v7;
|
|
if (*(char *)v7 == 0) {
|
|
// break -> 0x1e43711
|
|
goto lab_0x1e43711;
|
|
}
|
|
a1 = v7;
|
|
// continue -> 0x1e436da
|
|
goto lab_0x1e436da_3;
|
|
}
|
|
// 0x1e436f4
|
|
g2 = a1;
|
|
int32_t v8 = a1; // 0x1e436fb
|
|
int32_t v9 = v8 + 1; // 0x1e436f6
|
|
g5 = v9;
|
|
unsigned char v10 = *(char *)v9; // 0x1e436f9
|
|
g4 = g4 & -256 | (int32_t)v10;
|
|
*(char *)v8 = v10;
|
|
int32_t result2 = g5; // 0x1e436fd
|
|
g2 = result2;
|
|
while (*(char *)result2 != 0) {
|
|
// 0x1e436f6
|
|
v8 = result2;
|
|
v9 = v8 + 1;
|
|
g5 = v9;
|
|
v10 = *(char *)v9;
|
|
g4 = g4 & -256 | (int32_t)v10;
|
|
*(char *)v8 = v10;
|
|
result2 = g5;
|
|
g2 = result2;
|
|
}
|
|
int32_t v11 = g7; // 0x1e43704
|
|
if (*(char *)v11 == 0) {
|
|
// 0x1e43709
|
|
g4 = v1;
|
|
return result2;
|
|
}
|
|
a1 = v11;
|
|
// continue -> 0x1e436da
|
|
goto lab_0x1e436da_3;
|
|
}
|
|
|
|
// Address range: 0x1e43720 - 0x1e43786
|
|
int32_t function_1e43720(int32_t a1) {
|
|
int32_t v1 = g8; // 0x1e43720
|
|
g8 = a1;
|
|
if (a1 == 0) {
|
|
// 0x1e43784
|
|
g8 = v1;
|
|
return g2;
|
|
}
|
|
int32_t v2 = *(int32_t *)(a1 + 12); // 0x1e43729
|
|
g2 = v2;
|
|
int32_t result; // 0x1e4377c
|
|
if (v2 != (int32_t)&g477) {
|
|
// 0x1e43733
|
|
g2 = function_1e22600(v2);
|
|
int32_t v3 = *(int32_t *)(a1 + 16); // 0x1e4373c
|
|
g2 = v3;
|
|
g2 = function_1e22600(v3);
|
|
int32_t v4 = *(int32_t *)(a1 + 20); // 0x1e43748
|
|
g2 = v4;
|
|
g2 = function_1e22600(v4);
|
|
int32_t v5 = *(int32_t *)(a1 + 24); // 0x1e43754
|
|
g2 = v5;
|
|
g2 = function_1e22600(v5);
|
|
int32_t v6 = *(int32_t *)(a1 + 28); // 0x1e43760
|
|
g2 = v6;
|
|
g2 = function_1e22600(v6);
|
|
int32_t v7 = *(int32_t *)(a1 + 32); // 0x1e4376c
|
|
g2 = v7;
|
|
g2 = function_1e22600(v7);
|
|
int32_t v8 = *(int32_t *)(a1 + 36); // 0x1e43778
|
|
g2 = v8;
|
|
result = function_1e22600(v8);
|
|
g2 = result;
|
|
} else {
|
|
result = v2;
|
|
}
|
|
// 0x1e43784
|
|
g8 = v1;
|
|
return result;
|
|
}
|
|
|
|
// Address range: 0x1e43790 - 0x1e43a3c
|
|
int32_t function_1e43790(void) {
|
|
int32_t v1 = g4; // 0x1e43793
|
|
int16_t * v2 = (int16_t *)g8; // bp-32
|
|
g6 = 0;
|
|
if (g126 == 0) {
|
|
// 0x1e439fb
|
|
g2 = (int32_t)&g124;
|
|
g5 = g463;
|
|
g122 = (int16_t *)&g124;
|
|
*(int32_t *)&g123 = (int32_t)&g124;
|
|
g2 = function_1e22600(g463);
|
|
g5 = g464;
|
|
function_1e22600(g464);
|
|
g2 = 0;
|
|
g463 = 0;
|
|
g464 = 0;
|
|
return 0;
|
|
}
|
|
// 0x1e437a9
|
|
int32_t lpCPInfo; // bp-20
|
|
if (g130 != NULL) {
|
|
goto lab_0x1e437d2;
|
|
} else {
|
|
int32_t v3 = g465; // 0x1e437b8
|
|
g2 = v3;
|
|
int32_t v4 = function_1e45150(0, v3, 11, (int32_t)&g130); // 0x1e437c2
|
|
g2 = v4;
|
|
if (v4 != 0) {
|
|
g8 = lpCPInfo;
|
|
g3 = lpCPInfo;
|
|
goto lab_0x1e439c6;
|
|
} else {
|
|
goto lab_0x1e437d2;
|
|
}
|
|
}
|
|
lab_0x1e437d2:;
|
|
int32_t v5 = function_1e22670(514); // 0x1e437d7
|
|
g2 = v5;
|
|
g8 = v5;
|
|
int32_t v6 = function_1e22670(514); // 0x1e437e6
|
|
g2 = v6;
|
|
g3 = v6;
|
|
int32_t v7 = function_1e22670(257); // 0x1e437f5
|
|
g2 = v7;
|
|
g6 = v7;
|
|
int32_t v8 = function_1e22670(514); // 0x1e43804
|
|
g2 = v8;
|
|
if (g8 != 0) {
|
|
// 0x1e43818
|
|
if (g3 != 0) {
|
|
int32_t v9 = g6; // 0x1e43820
|
|
if (v9 != 0) {
|
|
if (v8 != 0) {
|
|
// 0x1e43830
|
|
g5 = v9;
|
|
g2 = 0;
|
|
*(char *)v9 = (char)0;
|
|
int32_t v10 = g5 + 1; // 0x1e43836
|
|
g5 = v10;
|
|
int32_t v11 = g2 + 1; // 0x1e43837
|
|
g2 = v11;
|
|
while (v11 < 256) {
|
|
// 0x1e43834
|
|
*(char *)v10 = (char)v11;
|
|
v10 = g5 + 1;
|
|
g5 = v10;
|
|
v11 = g2 + 1;
|
|
g2 = v11;
|
|
}
|
|
// 0x1e4383f
|
|
g2 = &lpCPInfo;
|
|
int32_t CodePage = (int32_t)g130; // 0x1e43843
|
|
g5 = CodePage;
|
|
bool v12 = GetCPInfo(CodePage, (struct _cpinfo *)&lpCPInfo); // 0x1e4384b
|
|
g2 = v12;
|
|
if (v12) {
|
|
if (v1 < 3) {
|
|
int32_t v13 = v1 & 0xffff; // 0x1e43868
|
|
g2 = v13;
|
|
g442 = v13;
|
|
char v14; // bp-22
|
|
int32_t v15; // 0x1e4387c
|
|
if (v13 > 1) {
|
|
// 0x1e43877
|
|
v15 = &v14;
|
|
if (v14 != 0) {
|
|
while (true) {
|
|
unsigned char v16 = *(char *)(v15 + 1); // 0x1e43882
|
|
int32_t v17 = v16; // 0x1e43882
|
|
g7 = g7 & -256 | v17;
|
|
if (v16 == 0) {
|
|
// break -> 0x1e438ab
|
|
break;
|
|
}
|
|
// 0x1e43889
|
|
g2 = 0;
|
|
g5 = 0;
|
|
unsigned char v18 = *(char *)v15; // 0x1e4388d
|
|
int32_t v19 = v18; // 0x1e4388d
|
|
g2 = v19;
|
|
g5 = v17;
|
|
if (v16 >= v18) {
|
|
*(char *)(g6 + v19) = 0;
|
|
int32_t v20 = g2 + 1; // 0x1e43899
|
|
g2 = v20;
|
|
g5 = 0;
|
|
int32_t v21 = (int32_t)*(char *)(v15 + 1); // 0x1e4389c
|
|
g5 = v21;
|
|
while (v21 >= v20) {
|
|
// 0x1e43895
|
|
*(char *)(g6 + v20) = 0;
|
|
v20 = g2 + 1;
|
|
g2 = v20;
|
|
g5 = 0;
|
|
v21 = (int32_t)*(char *)(v15 + 1);
|
|
g5 = v21;
|
|
}
|
|
}
|
|
int32_t v22 = v15 + 2; // 0x1e438a3
|
|
if (*(char *)v22 == 0) {
|
|
// break -> 0x1e438ab
|
|
break;
|
|
}
|
|
v15 = v22;
|
|
}
|
|
}
|
|
}
|
|
int32_t v23 = g8 + 2; // 0x1e438ad
|
|
g2 = v23;
|
|
int32_t v24 = function_1e42510(1, (char *)g6, 256, (int32_t *)v23, 0, 0); // 0x1e438bb
|
|
g2 = v24;
|
|
if (v24 != 0) {
|
|
// 0x1e438cb
|
|
*(int16_t *)g8 = 0;
|
|
int32_t v25 = (int32_t)v2; // 0x1e438d0
|
|
g5 = v25;
|
|
g2 = 0;
|
|
*(int16_t *)v25 = (int16_t)0;
|
|
int32_t v26 = g5 + 2; // 0x1e438d9
|
|
g5 = v26;
|
|
int32_t v27 = g2 + 1; // 0x1e438dc
|
|
g2 = v27;
|
|
while (v27 < 256) {
|
|
// 0x1e438d6
|
|
*(int16_t *)v26 = (int16_t)v27;
|
|
v26 = g5 + 2;
|
|
g5 = v26;
|
|
v27 = g2 + 1;
|
|
g2 = v27;
|
|
}
|
|
int32_t v28 = g3 + 2; // 0x1e438e6
|
|
g2 = v28;
|
|
int32_t v29 = (int32_t)v2; // 0x1e438e9
|
|
g5 = v29;
|
|
int32_t v30 = function_1e42350(1, v29, 256, v28, 0, 0); // 0x1e438f8
|
|
g2 = v30;
|
|
if (v30 != 0) {
|
|
// 0x1e43908
|
|
*(int16_t *)g3 = 0;
|
|
if (g442 > 1) {
|
|
int32_t v31 = &v14; // 0x1e4391c
|
|
v15 = v31;
|
|
if (v14 != 0) {
|
|
int32_t v32 = g7; // 0x1e43922
|
|
while (true) {
|
|
unsigned char v33 = *(char *)(v31 + 1); // 0x1e43922
|
|
int32_t v34 = v33; // 0x1e43922
|
|
int32_t v35 = v34 | v32 & -256; // 0x1e43922
|
|
if (v33 == 0) {
|
|
// break -> 0x1e43953
|
|
break;
|
|
}
|
|
// 0x1e43929
|
|
g2 = 0;
|
|
g5 = 0;
|
|
unsigned char v36 = *(char *)v31; // 0x1e4392d
|
|
int32_t v37 = v36; // 0x1e4392d
|
|
g2 = v37;
|
|
g5 = v34;
|
|
int32_t v38; // 0x1e43944
|
|
int32_t v39; // 0x1e4392214
|
|
if (v33 >= v36) {
|
|
int32_t v40 = 2 * v37 + 2 + g8; // 0x1e43935
|
|
*(int16_t *)v40 = -0x8000;
|
|
int32_t v41 = v40 + 2; // 0x1e4393e
|
|
int32_t v42 = g2 + 1; // 0x1e43941
|
|
g2 = v42;
|
|
g5 = 0;
|
|
v38 = v15;
|
|
int32_t v43 = (int32_t)*(char *)(v38 + 1); // 0x1e43944
|
|
g5 = v43;
|
|
v39 = v41;
|
|
while (v43 >= v42) {
|
|
// 0x1e43939
|
|
v40 = v41;
|
|
*(int16_t *)v40 = -0x8000;
|
|
v41 = v40 + 2;
|
|
v42 = g2 + 1;
|
|
g2 = v42;
|
|
g5 = 0;
|
|
v38 = v15;
|
|
v43 = (int32_t)*(char *)(v38 + 1);
|
|
g5 = v43;
|
|
v39 = v41;
|
|
}
|
|
} else {
|
|
v38 = v31;
|
|
v39 = v35;
|
|
}
|
|
int32_t v44 = v38 + 2; // 0x1e4394b
|
|
v15 = v44;
|
|
if (*(char *)v44 == 0) {
|
|
// break -> 0x1e43953
|
|
break;
|
|
}
|
|
v32 = v39;
|
|
v31 = v44;
|
|
}
|
|
}
|
|
}
|
|
int32_t v45 = g8; // 0x1e43953
|
|
int32_t v46 = v45 + 2; // 0x1e43953
|
|
g2 = v46;
|
|
int32_t v47 = g3 + 2; // 0x1e43956
|
|
g5 = v47;
|
|
g122 = (int16_t *)v46;
|
|
*(int32_t *)&g123 = v47;
|
|
int32_t v48 = g463; // 0x1e43964
|
|
int32_t v49; // 0x1e43982
|
|
if (v48 != 0) {
|
|
// 0x1e4396d
|
|
g2 = v48;
|
|
g2 = function_1e22600(v48);
|
|
v49 = g8;
|
|
} else {
|
|
v49 = v45;
|
|
}
|
|
// 0x1e4397b
|
|
g463 = v49;
|
|
if (g464 != 0) {
|
|
// 0x1e4398a
|
|
g2 = g464;
|
|
g2 = function_1e22600(g464);
|
|
}
|
|
// 0x1e43998
|
|
g464 = g3;
|
|
function_1e22600(g6);
|
|
int32_t v50 = (int32_t)v2; // 0x1e439a4
|
|
g2 = v50;
|
|
function_1e22600(v50);
|
|
g2 = 0;
|
|
return 0;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
goto lab_0x1e439c6;
|
|
lab_0x1e439c6:
|
|
// 0x1e439c6
|
|
*(int32_t *)(g9 - 4) = g8;
|
|
g2 = function_1e22600((int32_t)&g708);
|
|
*(int32_t *)g9 = g3;
|
|
g2 = function_1e22600((int32_t)&g708);
|
|
*(int32_t *)g9 = g6;
|
|
g2 = function_1e22600((int32_t)&g708);
|
|
int32_t v51 = *(int32_t *)(g9 + 20); // 0x1e439de
|
|
g2 = v51;
|
|
*(int32_t *)g9 = v51;
|
|
function_1e22600((int32_t)&g708);
|
|
g2 = 1;
|
|
return 1;
|
|
}
|
|
|
|
// Address range: 0x1e43a40 - 0x1e43a43
|
|
int32_t function_1e43a40(void) {
|
|
// 0x1e43a40
|
|
g2 = 0;
|
|
return 0;
|
|
}
|
|
|
|
// Address range: 0x1e43a50 - 0x1e43a8e
|
|
int32_t function_1e43a50(int32_t a1, int32_t a2) {
|
|
// 0x1e43a50
|
|
g2 = 0;
|
|
unsigned char v1 = *(char *)a2; // 0x1e43a64251
|
|
int32_t v2 = v1; // 0x1e43a64252
|
|
g2 = v2;
|
|
int32_t v3;
|
|
int32_t v4;
|
|
if (v1 != 0) {
|
|
int32_t v5 = v2; // 0x1e43a66257
|
|
int32_t v6 = v2; // 0x1e43a64256
|
|
int32_t v7 = 0; // 0x1e43a6b254
|
|
while (true) {
|
|
int32_t v8 = a2 + 1; // 0x1e43a6a
|
|
int32_t v9 = 1 << (v6 & 31) | v7; // 0x1e43a6b
|
|
unsigned char v10 = *(char *)v8; // 0x1e43a64
|
|
int32_t v11 = v10; // 0x1e43a64
|
|
int32_t v12 = v11 | v5 & -256; // 0x1e43a66
|
|
g2 = v12;
|
|
if (v10 == 0) {
|
|
v4 = v9;
|
|
v3 = v12;
|
|
// break -> 0x1e43a71
|
|
break;
|
|
}
|
|
v5 = v12;
|
|
v6 = v11;
|
|
a2 = v8;
|
|
v7 = v9;
|
|
}
|
|
} else {
|
|
v4 = 0;
|
|
v3 = v2;
|
|
}
|
|
// 0x1e43a71
|
|
g5 = -1;
|
|
int32_t v13 = v3; // 0x1e43a79
|
|
int32_t v14 = -1; // 0x1e43a78
|
|
int32_t result; // 0x1e43a78
|
|
while (true) {
|
|
// 0x1e43a78
|
|
result = v14 + 1;
|
|
g5 = result;
|
|
unsigned char v15 = *(char *)a1; // 0x1e43a79
|
|
int32_t v16 = v15; // 0x1e43a79
|
|
int32_t v17 = v16 | v13 & -256; // 0x1e43a7b
|
|
g2 = v17;
|
|
if (v15 == 0) {
|
|
// break -> 0x1e43a86
|
|
break;
|
|
}
|
|
// 0x1e43a7f
|
|
if ((1 << (v16 & 31) & v4) != 0) {
|
|
// break -> 0x1e43a86
|
|
break;
|
|
}
|
|
v13 = v17;
|
|
a1++;
|
|
v14 = result;
|
|
}
|
|
// 0x1e43a86
|
|
g2 = result;
|
|
return result;
|
|
}
|
|
|
|
// Address range: 0x1e43a90 - 0x1e43ac8
|
|
int32_t function_1e43a90(int32_t a1, int32_t a2, int32_t a3) {
|
|
// 0x1e43a90
|
|
g5 = a3;
|
|
int32_t result; // 0x1e43ac1
|
|
if (a3 == 0) {
|
|
result = 0;
|
|
goto lab_0x1e43ac1;
|
|
} else {
|
|
// 0x1e43a9b
|
|
g2 = 0;
|
|
int32_t v1 = a3; // 0x1e43aa4
|
|
bool v2; // df
|
|
int32_t v3; // 0x1e43aa6
|
|
while (true) {
|
|
if (v1 == 0) {
|
|
v3 = 0;
|
|
// break -> bb244
|
|
break;
|
|
}
|
|
int32_t v4 = v1 - 1; // 0x1e43aa4
|
|
g5 = v4;
|
|
if (*(char *)a1 == 0) {
|
|
v3 = v4;
|
|
// break -> bb244
|
|
break;
|
|
}
|
|
a1 += (v2 ? -1 : 1);
|
|
v1 = v4;
|
|
}
|
|
int32_t v5 = a3 - v3; // 0x1e43aa8
|
|
g5 = v5;
|
|
int32_t v6; // 0x1e43ab1
|
|
int32_t v7; // 0x1e43ab6
|
|
while (true) {
|
|
if (v5 == 0) {
|
|
v7 = a1;
|
|
v6 = a2;
|
|
// break -> bb247
|
|
break;
|
|
}
|
|
int32_t v8 = v2 ? -1 : 1; // 0x1e43aaf
|
|
int32_t v9 = v8 + a1; // 0x1e43aaf
|
|
int32_t v10 = v8 + a2; // 0x1e43aaf
|
|
int32_t v11 = v5 - 1; // 0x1e43aaf
|
|
g5 = v11;
|
|
if (*(char *)a2 != *(char *)a1) {
|
|
v7 = v9;
|
|
v6 = v10;
|
|
// break -> bb247
|
|
break;
|
|
}
|
|
a1 = v9;
|
|
a2 = v10;
|
|
v5 = v11;
|
|
}
|
|
unsigned char v12 = *(char *)(v6 - 1); // 0x1e43ab1
|
|
g2 = v12;
|
|
g5 = 0;
|
|
unsigned char v13 = *(char *)(v7 - 1); // 0x1e43ab6
|
|
int32_t v14; // 0x1e43abf
|
|
if (v12 > v13) {
|
|
v14 = -1;
|
|
// 0x1e43abf
|
|
g5 = v14;
|
|
result = v14;
|
|
goto lab_0x1e43ac1;
|
|
} else {
|
|
if (v12 == v13) {
|
|
result = 0;
|
|
goto lab_0x1e43ac1;
|
|
} else {
|
|
// 0x1e43abd
|
|
g5 = -2;
|
|
v14 = 1;
|
|
// 0x1e43abf
|
|
g5 = v14;
|
|
result = v14;
|
|
goto lab_0x1e43ac1;
|
|
}
|
|
}
|
|
}
|
|
lab_0x1e43ac1:
|
|
// 0x1e43ac1
|
|
g2 = result;
|
|
return result;
|
|
}
|
|
|
|
// Address range: 0x1e43ad0 - 0x1e43b0a
|
|
int32_t function_1e43ad0(int32_t a1, int32_t a2) {
|
|
// 0x1e43ad0
|
|
g2 = 0;
|
|
unsigned char v1 = *(char *)a2; // 0x1e43ae4252
|
|
int32_t v2 = v1; // 0x1e43ae4253
|
|
g2 = v2;
|
|
int32_t v3;
|
|
int32_t v4;
|
|
if (v1 != 0) {
|
|
int32_t v5 = v2; // 0x1e43ae6258
|
|
int32_t v6 = v2; // 0x1e43ae4257
|
|
int32_t v7 = 0; // 0x1e43aeb255
|
|
while (true) {
|
|
int32_t v8 = a2 + 1; // 0x1e43aea
|
|
int32_t v9 = 1 << (v6 & 31) | v7; // 0x1e43aeb
|
|
unsigned char v10 = *(char *)v8; // 0x1e43ae4
|
|
int32_t v11 = v10; // 0x1e43ae4
|
|
int32_t v12 = v11 | v5 & -256; // 0x1e43ae6
|
|
g2 = v12;
|
|
if (v10 == 0) {
|
|
v4 = v9;
|
|
v3 = v12;
|
|
// break -> 0x1e43af1
|
|
break;
|
|
}
|
|
v5 = v12;
|
|
v6 = v11;
|
|
a2 = v8;
|
|
v7 = v9;
|
|
}
|
|
} else {
|
|
v4 = 0;
|
|
v3 = v2;
|
|
}
|
|
int32_t v13 = v3; // 0x1e43af4
|
|
int32_t result; // 0x1e43b09
|
|
while (true) {
|
|
unsigned char v14 = *(char *)a1; // 0x1e43af4
|
|
int32_t v15 = v14; // 0x1e43af4
|
|
int32_t v16 = v15 | v13 & -256; // 0x1e43af6
|
|
g2 = v16;
|
|
if (v14 == 0) {
|
|
result = v16;
|
|
// break -> 0x1e43b04
|
|
break;
|
|
}
|
|
// 0x1e43afa
|
|
if ((1 << (v15 & 31) & v4) != 0) {
|
|
// 0x1e43b01
|
|
g2 = a1;
|
|
result = a1;
|
|
return result;
|
|
}
|
|
v13 = v16;
|
|
a1++;
|
|
}
|
|
// 0x1e43b04
|
|
return result;
|
|
}
|
|
|
|
// Address range: 0x1e43b10 - 0x1e43d3b
|
|
int32_t function_1e43b10(int32_t a1, int32_t a2, char * a3, int32_t a4, int32_t * a5, int32_t a6, int32_t a7) {
|
|
int32_t v1 = g470; // 0x1e43b11
|
|
g2 = v1;
|
|
if (v1 != 0) {
|
|
// branch -> 0x1e43b72
|
|
} else {
|
|
int32_t v2 = LCMapStringA(0, 256, (char *)&g67, 1, NULL, 0); // 0x1e43b35
|
|
g2 = v2;
|
|
if (v2 == 0) {
|
|
int32_t v3 = LCMapStringW(0, 256, (int16_t *)&g68, 1, NULL, 0); // 0x1e43b54
|
|
g2 = v3;
|
|
if (v3 == 0) {
|
|
// 0x1e43b65
|
|
g2 = 0;
|
|
g3 = 0;
|
|
g6 = 256;
|
|
g8 = (int32_t)&g68;
|
|
g4 = 1;
|
|
return 0;
|
|
}
|
|
// 0x1e43b5e
|
|
g2 = 1;
|
|
v1 = 1;
|
|
} else {
|
|
// 0x1e43b3b
|
|
g2 = 2;
|
|
v1 = 2;
|
|
}
|
|
}
|
|
uint32_t v4 = *(int32_t *)(g9 + 32); // 0x1e43b72
|
|
g6 = v4;
|
|
g470 = v1;
|
|
int32_t v5; // 0x1e43b8f
|
|
int32_t v6; // 0x1e43bda
|
|
if (v4 >= 1) {
|
|
// 0x1e43b7f
|
|
g2 = *(int32_t *)(g9 + 28);
|
|
*(int32_t *)(g9 - 4) = v4;
|
|
*(int32_t *)(g9 - 8) = g2;
|
|
g6 = function_1e43d40((int32_t)&g708, (int32_t)&g708);
|
|
v5 = g470;
|
|
g2 = v5;
|
|
v6 = g9 + 8;
|
|
} else {
|
|
v6 = g9;
|
|
v5 = v1;
|
|
}
|
|
// 0x1e43b94
|
|
g470 = v5;
|
|
if (v5 == 2) {
|
|
int32_t v7 = *(int32_t *)(v6 + 40); // 0x1e43b9e
|
|
g2 = v7;
|
|
g5 = *(int32_t *)(v6 + 36);
|
|
g7 = *(int32_t *)(v6 + 28);
|
|
*(int32_t *)(v6 - 4) = v7;
|
|
g2 = *(int32_t *)(v6 + 24);
|
|
*(int32_t *)(v6 - 8) = g5;
|
|
g5 = *(int32_t *)(v6 + 20);
|
|
*(int32_t *)(v6 - 12) = g6;
|
|
*(int32_t *)(v6 - 16) = g7;
|
|
*(int32_t *)(v6 - 20) = g2;
|
|
*(int32_t *)(v6 - 24) = g5;
|
|
int32_t result = LCMapStringA((int32_t)&g708, (int32_t)&g708, (char *)&g708, (int32_t)&g708, (char *)&g708, (int32_t)&g708); // 0x1e43bb8
|
|
g2 = result;
|
|
g3 = *(int32_t *)g9;
|
|
g6 = *(int32_t *)(g9 + 4);
|
|
g8 = *(int32_t *)(g9 + 8);
|
|
g4 = *(int32_t *)(g9 + 12);
|
|
return result;
|
|
}
|
|
// 0x1e43bbf
|
|
g470 = v5;
|
|
int32_t v8; // 0x1e43c9f
|
|
int32_t result2; // 0x1e43ca3
|
|
int32_t v9; // 0x1e43c0a
|
|
if (v5 != 1) {
|
|
result2 = v5;
|
|
v8 = v6;
|
|
goto lab_0x1e43c9f;
|
|
} else {
|
|
// 0x1e43bcd
|
|
g8 = 0;
|
|
int32_t * v10 = (int32_t *)(v6 + 44); // 0x1e43bcf
|
|
int32_t v11; // 0x1e43bde
|
|
if (*v10 == 0) {
|
|
int32_t v12 = (int32_t)g130; // 0x1e43bd5
|
|
g2 = v12;
|
|
*v10 = v12;
|
|
v11 = g9;
|
|
} else {
|
|
v11 = v6;
|
|
}
|
|
// 0x1e43bde
|
|
g2 = *(int32_t *)(v11 + 28);
|
|
*(int32_t *)(v11 - 4) = 0;
|
|
g5 = *(int32_t *)(v11 + 44);
|
|
*(int32_t *)(v11 - 8) = 0;
|
|
*(int32_t *)(v11 - 12) = g6;
|
|
*(int32_t *)(v11 - 16) = g2;
|
|
*(int32_t *)(v11 - 20) = 9;
|
|
*(int32_t *)(v11 - 24) = g5;
|
|
int32_t v13 = MultiByteToWideChar((int32_t)&g708, (int32_t)&g708, (char *)&g708, (int32_t)&g708, (int16_t *)&g708, (int32_t)&g708); // 0x1e43bef
|
|
g2 = v13;
|
|
g3 = v13;
|
|
if (v13 == 0) {
|
|
// 0x1e43bfb
|
|
g2 = 0;
|
|
g3 = *(int32_t *)g9;
|
|
g6 = *(int32_t *)(g9 + 4);
|
|
g8 = *(int32_t *)(g9 + 8);
|
|
g4 = *(int32_t *)(g9 + 12);
|
|
return 0;
|
|
}
|
|
int32_t v14 = 2 * v13; // 0x1e43c02
|
|
g2 = v14;
|
|
*(int32_t *)(g9 - 4) = v14;
|
|
v9 = function_1e22670((int32_t)&g708);
|
|
g2 = v9;
|
|
if (v9 == 0) {
|
|
// 0x1e43c18
|
|
g2 = 0;
|
|
g3 = *(int32_t *)(g9 + 4);
|
|
g6 = *(int32_t *)(g9 + 8);
|
|
g8 = *(int32_t *)(g9 + 12);
|
|
g4 = *(int32_t *)(g9 + 16);
|
|
return 0;
|
|
}
|
|
// 0x1e43c1f
|
|
g2 = *(int32_t *)(g9 + 32);
|
|
*(int32_t *)g9 = v13;
|
|
g5 = *(int32_t *)(g9 + 48);
|
|
*(int32_t *)(g9 - 4) = v9;
|
|
*(int32_t *)(g9 - 8) = g6;
|
|
*(int32_t *)(g9 - 12) = g2;
|
|
*(int32_t *)(g9 - 16) = 1;
|
|
*(int32_t *)(g9 - 20) = g5;
|
|
int32_t v15 = MultiByteToWideChar((int32_t)&g708, (int32_t)&g708, (char *)&g708, (int32_t)&g708, (int16_t *)&g708, (int32_t)&g708); // 0x1e43c2e
|
|
g2 = v15;
|
|
if (v15 == 0) {
|
|
goto lab_0x1e43c8b;
|
|
} else {
|
|
// 0x1e43c38
|
|
g2 = *(int32_t *)(g9 + 24);
|
|
*(int32_t *)(g9 - 4) = 0;
|
|
g5 = *(int32_t *)(g9 + 20);
|
|
*(int32_t *)(g9 - 8) = 0;
|
|
*(int32_t *)(g9 - 12) = v13;
|
|
*(int32_t *)(g9 - 16) = v9;
|
|
*(int32_t *)(g9 - 20) = g2;
|
|
*(int32_t *)(g9 - 24) = g5;
|
|
int32_t v16 = LCMapStringW((int32_t)&g708, (int32_t)&g708, (int16_t *)&g708, (int32_t)&g708, (int16_t *)&g708, (int32_t)&g708); // 0x1e43c48
|
|
g2 = v16;
|
|
g6 = v16;
|
|
if (v16 == 0) {
|
|
goto lab_0x1e43c8b;
|
|
} else {
|
|
// 0x1e43c54
|
|
if ((*(char *)(g9 + 25) & 4) == 0) {
|
|
int32_t v17 = 2 * v16; // 0x1e43ca4
|
|
g2 = v17;
|
|
*(int32_t *)(g9 - 4) = v17;
|
|
int32_t v18 = function_1e22670((int32_t)&g708); // 0x1e43cac
|
|
g2 = v18;
|
|
g8 = v18;
|
|
if (v18 == 0) {
|
|
goto lab_0x1e43c8b;
|
|
} else {
|
|
// 0x1e43cba
|
|
g2 = *(int32_t *)(g9 + 28);
|
|
*(int32_t *)g9 = g6;
|
|
g5 = *(int32_t *)(g9 + 24);
|
|
*(int32_t *)(g9 - 4) = g8;
|
|
*(int32_t *)(g9 - 8) = v13;
|
|
*(int32_t *)(g9 - 12) = v9;
|
|
*(int32_t *)(g9 - 16) = g2;
|
|
*(int32_t *)(g9 - 20) = g5;
|
|
int32_t v19 = LCMapStringW((int32_t)&g708, (int32_t)&g708, (int16_t *)&g708, (int32_t)&g708, (int16_t *)&g708, (int32_t)&g708); // 0x1e43cc8
|
|
g2 = v19;
|
|
if (v19 == 0) {
|
|
goto lab_0x1e43c8b;
|
|
} else {
|
|
int32_t v20 = *(int32_t *)(g9 + 40); // 0x1e43cd2
|
|
g2 = v20;
|
|
*(int32_t *)(g9 - 4) = 0;
|
|
*(int32_t *)(g9 - 8) = 0;
|
|
int32_t v21 = *(int32_t *)(g9 + 44); // 0x1e43cfe
|
|
if (v20 != 0) {
|
|
// 0x1e43cfe
|
|
g5 = v21;
|
|
*(int32_t *)(g9 - 12) = v20;
|
|
int32_t v22 = *(int32_t *)(g9 + 36); // 0x1e43d03
|
|
g2 = v22;
|
|
g3 = *(int32_t *)0x1e4b0e8;
|
|
*(int32_t *)(g9 - 16) = v22;
|
|
*(int32_t *)(g9 - 20) = g6;
|
|
*(int32_t *)(g9 - 24) = g8;
|
|
*(int32_t *)(g9 - 28) = 544;
|
|
*(int32_t *)(g9 - 32) = g5;
|
|
int32_t v23 = WideCharToMultiByte((int32_t)&g708, (int32_t)&g708, (int16_t *)&g708, (int32_t)&g708, (char *)&g708, (int32_t)&g708, (char *)&g708, (bool *)&g708); // 0x1e43d16
|
|
g2 = v23;
|
|
g6 = v23;
|
|
if (v23 == 0) {
|
|
goto lab_0x1e43c8b;
|
|
} else {
|
|
goto lab_0x1e43d22;
|
|
}
|
|
} else {
|
|
// 0x1e43cde
|
|
g2 = v21;
|
|
*(int32_t *)(g9 - 12) = 0;
|
|
*(int32_t *)(g9 - 16) = 0;
|
|
g3 = *(int32_t *)0x1e4b0e8;
|
|
*(int32_t *)(g9 - 20) = g6;
|
|
*(int32_t *)(g9 - 24) = g8;
|
|
*(int32_t *)(g9 - 28) = 544;
|
|
*(int32_t *)(g9 - 32) = g2;
|
|
int32_t v24 = WideCharToMultiByte((int32_t)&g708, (int32_t)&g708, (int16_t *)&g708, (int32_t)&g708, (char *)&g708, (int32_t)&g708, (char *)&g708, (bool *)&g708); // 0x1e43cf4
|
|
g2 = v24;
|
|
g6 = v24;
|
|
if (v24 != 0) {
|
|
goto lab_0x1e43d22;
|
|
} else {
|
|
goto lab_0x1e43c8b;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} else {
|
|
int32_t v25 = *(int32_t *)(g9 + 40); // 0x1e43c5b
|
|
g2 = v25;
|
|
if (v25 == 0) {
|
|
goto lab_0x1e43d22;
|
|
} else {
|
|
if (v16 > v25) {
|
|
goto lab_0x1e43c8b;
|
|
} else {
|
|
// 0x1e43c6b
|
|
g5 = *(int32_t *)(g9 + 24);
|
|
*(int32_t *)(g9 - 4) = v25;
|
|
int32_t v26 = *(int32_t *)(g9 + 36); // 0x1e43c70
|
|
g2 = v26;
|
|
g7 = *(int32_t *)(g9 + 20);
|
|
*(int32_t *)(g9 - 8) = v26;
|
|
*(int32_t *)(g9 - 12) = v13;
|
|
*(int32_t *)(g9 - 16) = v9;
|
|
*(int32_t *)(g9 - 20) = g5;
|
|
*(int32_t *)(g9 - 24) = g7;
|
|
int32_t v27 = LCMapStringW((int32_t)&g708, (int32_t)&g708, (int16_t *)&g708, (int32_t)&g708, (int16_t *)&g708, (int32_t)&g708); // 0x1e43c7d
|
|
g2 = v27;
|
|
if (v27 != 0) {
|
|
goto lab_0x1e43d22;
|
|
} else {
|
|
goto lab_0x1e43c8b;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
lab_0x1e43c9f:
|
|
// 0x1e43c9f
|
|
g3 = *(int32_t *)v8;
|
|
g6 = *(int32_t *)(v8 + 4);
|
|
g8 = *(int32_t *)(v8 + 8);
|
|
g4 = *(int32_t *)(v8 + 12);
|
|
return result2;
|
|
lab_0x1e43c8b:
|
|
// 0x1e43c8b
|
|
*(int32_t *)(g9 - 4) = v9;
|
|
g2 = function_1e22600((int32_t)&g708);
|
|
*(int32_t *)g9 = g8;
|
|
function_1e22600((int32_t)&g708);
|
|
g2 = 0;
|
|
result2 = 0;
|
|
v8 = g9 + 4;
|
|
goto lab_0x1e43c9f;
|
|
lab_0x1e43d22:
|
|
// 0x1e43d22
|
|
*(int32_t *)(g9 - 4) = v9;
|
|
g2 = function_1e22600((int32_t)&g708);
|
|
*(int32_t *)g9 = g8;
|
|
function_1e22600((int32_t)&g708);
|
|
int32_t result3 = g6; // 0x1e43d34
|
|
g2 = result3;
|
|
g3 = *(int32_t *)(g9 + 4);
|
|
g6 = *(int32_t *)(g9 + 8);
|
|
g8 = *(int32_t *)(g9 + 12);
|
|
g4 = *(int32_t *)(g9 + 16);
|
|
return result3;
|
|
}
|
|
|
|
// Address range: 0x1e43d40 - 0x1e43d6c
|
|
int32_t function_1e43d40(int32_t a1, int32_t result) {
|
|
// 0x1e43d40
|
|
g2 = result;
|
|
int32_t v1 = result - 1; // 0x1e43d4c
|
|
g5 = v1;
|
|
g7 = a1;
|
|
int32_t v2; // 0x1e43d60
|
|
int32_t v3; // 0x1e43d65
|
|
if (result == 0) {
|
|
v2 = a1;
|
|
lab_0x1e43d60:
|
|
// 0x1e43d60
|
|
if (*(char *)v2 != 0) {
|
|
// 0x1e43d69
|
|
return result;
|
|
}
|
|
v3 = v2;
|
|
} else {
|
|
while (true) {
|
|
// 0x1e43d53
|
|
if (*(char *)a1 == 0) {
|
|
v3 = a1;
|
|
// break -> 0x1e43d65
|
|
break;
|
|
}
|
|
int32_t v4 = a1 + 1; // 0x1e43d58
|
|
g7 = v4;
|
|
int32_t v5 = v1 - 1; // 0x1e43d5b
|
|
g5 = v5;
|
|
if (v1 == 0) {
|
|
v2 = v4;
|
|
goto lab_0x1e43d60;
|
|
}
|
|
v1 = v5;
|
|
a1 = v4;
|
|
}
|
|
}
|
|
int32_t result2 = v3 - a1; // 0x1e43d65
|
|
g7 = result2;
|
|
g2 = result2;
|
|
// 0x1e43d69
|
|
return result2;
|
|
}
|
|
|
|
// Address range: 0x1e43e6d - 0x1e43e74
|
|
int32_t function_1e43e6d(void) {
|
|
int32_t result = function_1e43f29(); // 0x1e43e6d
|
|
g2 = result;
|
|
return result;
|
|
}
|
|
|
|
// Address range: 0x1e43e76 - 0x1e43e7b
|
|
float80_t function_1e43e76(void) {
|
|
// 0x1e43e76
|
|
return 0.0L;
|
|
}
|
|
|
|
// Address range: 0x1e43e7b - 0x1e43e82
|
|
float80_t function_1e43e7b(void) {
|
|
// 0x1e43e7b
|
|
return 1.0L;
|
|
}
|
|
|
|
// Address range: 0x1e43e82 - 0x1e43ead
|
|
float80_t function_1e43e82(void) {
|
|
// 0x1e43e82
|
|
int32_t v1;
|
|
float80_t result; // 0x1e43e82
|
|
*(float80_t *)(v1 - 158) = result;
|
|
char * v2 = (char *)(v1 - 144); // 0x1e43e9f
|
|
if ((*(char *)(v1 - 151) & 64) == 0) {
|
|
// 0x1e43e9f
|
|
*v2 = 1;
|
|
return result + (float80_t)g473;
|
|
}
|
|
// 0x1e43e97
|
|
*v2 = 7;
|
|
return result;
|
|
}
|
|
|
|
// Address range: 0x1e43ead - 0x1e43ed7
|
|
float80_t function_1e43ead(void) {
|
|
// 0x1e43ead
|
|
int32_t v1;
|
|
float80_t v2; // 0x1e43ead
|
|
*(float80_t *)(v1 - 158) = v2;
|
|
*(char *)(v1 - 144) = (*(char *)(v1 - 151) & 64) == 0 ? 1 : 7;
|
|
return 2 * v2;
|
|
}
|
|
|
|
// Address range: 0x1e43ed7 - 0x1e43f16
|
|
float80_t function_1e43ed7(void) {
|
|
// 0x1e43ed7
|
|
float80_t v1; // st7
|
|
float80_t v2 = v1; // 0x1e43ed7
|
|
int32_t v3;
|
|
float80_t * v4 = (float80_t *)(v3 - 158); // 0x1e43ed7
|
|
*v4 = v2;
|
|
char * v5 = (char *)(v3 - 151); // 0x1e43ee3
|
|
if ((*v5 & 64) == 0) {
|
|
// 0x1e43f0c
|
|
*(char *)(v3 - 144) = 1;
|
|
return 2 * v2;
|
|
} else {
|
|
// 0x1e43eec
|
|
*v4 = v2;
|
|
if ((*v5 & 64) == 0) {
|
|
// 0x1e43f0c
|
|
*(char *)(v3 - 144) = 1;
|
|
return 2 * v2;
|
|
} else {
|
|
// 0x1e43f03
|
|
*(char *)(v3 - 144) = 7;
|
|
return 2 * v2;
|
|
}
|
|
}
|
|
lab_0x1e43f13:
|
|
// 0x1e43f13
|
|
return 2 * v2;
|
|
}
|
|
|
|
// Address range: 0x1e43f16 - 0x1e43f29
|
|
int32_t function_1e43f16(void) {
|
|
// 0x1e43f16
|
|
g684 = g471;
|
|
return g2;
|
|
}
|
|
|
|
// Address range: 0x1e43f29 - 0x1e43f33
|
|
int32_t function_1e43f29(void) {
|
|
// 0x1e43f29
|
|
*(char *)(g3 - 144) = 1;
|
|
return g2;
|
|
}
|
|
|
|
// Address range: 0x1e43f33 - 0x1e43f3a
|
|
int32_t function_1e43f33(void) {
|
|
// 0x1e43f39
|
|
return g2;
|
|
}
|
|
|
|
// Address range: 0x1e43f40 - 0x1e4403f
|
|
int32_t function_1e43f40(int32_t a1, int32_t a2, int32_t a3, int32_t a4, int32_t a5) {
|
|
// 0x1e43f40
|
|
g2 = a3;
|
|
int32_t v1; // bp-92
|
|
int32_t v2 = &v1; // 0x1e43f44
|
|
g5 = 0;
|
|
int32_t v3 = (int32_t)*(int16_t *)a3; // 0x1e43f4a
|
|
g5 = v3;
|
|
int32_t v4 = g8; // 0x1e43f4d
|
|
g8 = a2;
|
|
int32_t v5 = g6; // 0x1e43f52
|
|
v1 = v3;
|
|
int32_t * v6 = (int32_t *)a2; // 0x1e43f57
|
|
int32_t v7 = *v6; // 0x1e43f57
|
|
int32_t v8 = v7 - 1; // 0x1e43f59
|
|
g2 = v8;
|
|
g714 = v8;
|
|
int32_t v9; // 0x1e43f97
|
|
switch (v7) {
|
|
case 1: {
|
|
// 0x1e43f66
|
|
g6 = 8;
|
|
v9 = 8;
|
|
goto lab_0x1e43f8e;
|
|
}
|
|
case 2: {
|
|
// 0x1e43f6d
|
|
g6 = 4;
|
|
v9 = 4;
|
|
goto lab_0x1e43f8e;
|
|
}
|
|
case 3: {
|
|
// 0x1e43f74
|
|
g6 = 17;
|
|
v9 = 17;
|
|
goto lab_0x1e43f8e;
|
|
}
|
|
case 4: {
|
|
// 0x1e43f7b
|
|
g6 = 18;
|
|
v9 = 18;
|
|
goto lab_0x1e43f8e;
|
|
}
|
|
case 5: {
|
|
// 0x1e43f66
|
|
g6 = 8;
|
|
v9 = 8;
|
|
goto lab_0x1e43f8e;
|
|
}
|
|
case 7: {
|
|
// 0x1e43f82
|
|
*v6 = 1;
|
|
// 0x1e43f8a
|
|
g6 = 0;
|
|
goto lab_0x1e43fff;
|
|
}
|
|
case 8: {
|
|
// 0x1e43fbe
|
|
g6 = 16;
|
|
v9 = 16;
|
|
goto lab_0x1e43f8e;
|
|
}
|
|
default: {
|
|
// 0x1e43f8a
|
|
g6 = 0;
|
|
goto lab_0x1e43fff;
|
|
}
|
|
}
|
|
lab_0x1e43fff:;
|
|
int32_t v10 = v1; // 0x1e43fff
|
|
g2 = v10;
|
|
function_1e40ad0(v10, 0xffff);
|
|
g2 = 0;
|
|
int32_t * v11 = (int32_t *)g8; // 0x1e44013
|
|
int32_t v12 = *v11; // 0x1e44013
|
|
int32_t result2; // 0x1e44030
|
|
int32_t v13; // 0x1e4402d
|
|
if (v12 != 8) {
|
|
// 0x1e44018
|
|
if (g456 == 0) {
|
|
int32_t result = function_1e42640(v11); // 0x1e44021
|
|
g2 = result;
|
|
if (result != 0) {
|
|
// 0x1e44038
|
|
return result;
|
|
}
|
|
// 0x1e44029
|
|
v13 = *(int32_t *)g8;
|
|
// 0x1e4402d
|
|
g2 = v13;
|
|
result2 = function_1e409f0(v13);
|
|
g2 = result2;
|
|
// 0x1e44038
|
|
return result2;
|
|
}
|
|
}
|
|
v13 = v12;
|
|
// 0x1e4402d
|
|
g2 = v13;
|
|
result2 = function_1e409f0(v13);
|
|
g2 = result2;
|
|
// 0x1e44038
|
|
return result2;
|
|
lab_0x1e43f8e:;
|
|
int32_t v14 = a2 + 24; // 0x1e43f8e
|
|
g4 = v14;
|
|
g2 = v3;
|
|
int32_t v15 = function_1e40680(v9, (int32_t *)v14, v3, v5, v4); // 0x1e43f98
|
|
g2 = v15;
|
|
if (v15 != 0) {
|
|
goto lab_0x1e43fff;
|
|
} else {
|
|
// 0x1e43fa4
|
|
g5 = a1;
|
|
if (a1 == 16) {
|
|
goto lab_0x1e43fc5;
|
|
} else {
|
|
if (a1 == 22) {
|
|
goto lab_0x1e43fc5;
|
|
} else {
|
|
if (a1 == 29) {
|
|
goto lab_0x1e43fc5;
|
|
} else {
|
|
goto lab_0x1e43fe6;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
lab_0x1e43fc5:;
|
|
// 0x1e43fc5
|
|
int32_t v16;
|
|
int32_t v17 = v16 | 1; // 0x1e43fc5
|
|
g2 = v17;
|
|
int32_t v18 = g8; // 0x1e43fce
|
|
g2 = v17 & -31 | 2;
|
|
g2 = *(int32_t *)(v18 + 16);
|
|
g8 = v18;
|
|
goto lab_0x1e43fe6;
|
|
lab_0x1e43fe6:;
|
|
int32_t v19 = g8 + 8; // 0x1e43fe7
|
|
g2 = v19;
|
|
g5 = v2;
|
|
int32_t v20; // bp-88
|
|
int32_t v21 = function_1e40310(&v20, &v1, g6, a1, (int32_t *)v19, (int32_t *)g4); // 0x1e43ff7
|
|
g2 = v21;
|
|
goto lab_0x1e43fff;
|
|
}
|
|
|
|
// Address range: 0x1e44060 - 0x1e440d8
|
|
int32_t function_1e44060(uint32_t a1, int32_t a2, int32_t a3) {
|
|
int32_t v1 = g8; // 0x1e44060
|
|
int32_t v2 = g6; // bp-8
|
|
if ((int32_t)g679 > a1) {
|
|
int32_t v3 = a1 & 31; // 0x1e44075
|
|
int32_t v4 = a1 / 8 & -4; // 0x1e44078
|
|
g2 = v4;
|
|
g5 = 4 * v3;
|
|
int32_t v5 = *(int32_t *)(v4 + (int32_t)&g677); // 0x1e4407e
|
|
g7 = v5;
|
|
int32_t v6 = 36 * v3; // 0x1e44084
|
|
g2 = v6;
|
|
if ((*(char *)(v6 + 4 + v5) & 1) != 0) {
|
|
// 0x1e4408e
|
|
function_1e23dd0(a1);
|
|
g2 = a3;
|
|
g5 = a2;
|
|
int32_t result = function_1e440e0(g8, (int32_t *)a2, a3); // 0x1e440a2
|
|
g2 = result;
|
|
function_1e23e40(g8);
|
|
g2 = result;
|
|
g6 = v2;
|
|
g8 = v1;
|
|
return result;
|
|
}
|
|
}
|
|
int32_t v7 = function_1e23ad0(); // 0x1e440ba
|
|
g2 = v7;
|
|
*(int32_t *)v7 = 9;
|
|
int32_t v8 = function_1e23ae0(); // 0x1e440c5
|
|
g6 = v2;
|
|
*(int32_t *)v8 = 0;
|
|
g2 = -1;
|
|
g8 = v1;
|
|
return -1;
|
|
}
|
|
|
|
// Address range: 0x1e440e0 - 0x1e44310
|
|
int32_t function_1e440e0(int32_t a1, int32_t * a2, int32_t a3) {
|
|
int32_t v1 = (int32_t)a2;
|
|
g5 = a3;
|
|
int32_t v2 = g4; // 0x1e440eb
|
|
int32_t v3 = g6; // 0x1e440f7
|
|
int32_t v4 = g3; // 0x1e440f8
|
|
if (a3 == 0) {
|
|
// 0x1e44306
|
|
g2 = 0;
|
|
g3 = v4;
|
|
g4 = v2;
|
|
return 0;
|
|
}
|
|
int32_t v5 = (a1 / 8 & -4) + (int32_t)&g677; // 0x1e44109
|
|
g3 = v5;
|
|
int32_t v6 = a1 & 31; // 0x1e44113
|
|
g2 = 4 * v6;
|
|
int32_t v7 = 36 * v6; // 0x1e44119
|
|
g4 = v7;
|
|
int32_t v8 = *(int32_t *)v5 + v7; // 0x1e4411f
|
|
g2 = v8;
|
|
char * v9 = (char *)(v8 + 4); // 0x1e44121
|
|
if ((*v9 & 2) != 0) {
|
|
// 0x1e44306
|
|
g2 = 0;
|
|
g3 = v4;
|
|
g4 = v2;
|
|
return 0;
|
|
}
|
|
// 0x1e4412b
|
|
char * v10;
|
|
int32_t nNumberOfBytesToRead; // 0x1e44153
|
|
int32_t lpBuffer; // 0x1e44154
|
|
int32_t v11; // 0x1e44155
|
|
int32_t v12; // 0x1e44158
|
|
if ((*v9 & 72) != 0) {
|
|
unsigned char v13 = *(char *)(v8 + 5); // 0x1e44131
|
|
g2 = (int32_t)v13 | v8 & -256;
|
|
if (v13 != 10) {
|
|
// 0x1e44138
|
|
*(char *)a2 = v13;
|
|
g5--;
|
|
int32_t v14 = *(int32_t *)g3; // 0x1e4413c
|
|
g2 = v14;
|
|
*(char *)(v14 + 5 + g4) = 10;
|
|
v12 = g4;
|
|
v11 = g3;
|
|
lpBuffer = v1 + 1;
|
|
nNumberOfBytesToRead = g5;
|
|
v10 = (char *)1;
|
|
} else {
|
|
v12 = v7;
|
|
v11 = v5;
|
|
lpBuffer = v1;
|
|
nNumberOfBytesToRead = a3;
|
|
v10 = NULL;
|
|
}
|
|
} else {
|
|
v12 = v7;
|
|
v11 = v5;
|
|
lpBuffer = v1;
|
|
nNumberOfBytesToRead = a3;
|
|
v10 = NULL;
|
|
}
|
|
// 0x1e4414c
|
|
int32_t lpNumberOfBytesRead; // bp-8
|
|
int32_t v15 = &lpNumberOfBytesRead; // 0x1e4414c
|
|
g2 = v15;
|
|
int32_t v16 = *(int32_t *)v11; // 0x1e44155
|
|
g5 = v16;
|
|
int32_t hFile = *(int32_t *)(v16 + v12); // 0x1e44158
|
|
bool v17 = ReadFile((int32_t *)hFile, (int32_t *)lpBuffer, nNumberOfBytesToRead, &lpNumberOfBytesRead, NULL); // 0x1e4415c
|
|
g2 = v17;
|
|
if (!v17) {
|
|
int32_t errorCode = GetLastError(); // 0x1e44166
|
|
g2 = errorCode;
|
|
g8 = errorCode;
|
|
if (errorCode == 5) {
|
|
int32_t v18 = function_1e23ad0(); // 0x1e44173
|
|
g2 = v18;
|
|
*(int32_t *)v18 = 9;
|
|
int32_t v19 = function_1e23ae0(); // 0x1e4417e
|
|
g3 = hFile;
|
|
*(int32_t *)v19 = g8;
|
|
g2 = -1;
|
|
g6 = lpBuffer;
|
|
g8 = nNumberOfBytesToRead;
|
|
g4 = v15;
|
|
return -1;
|
|
}
|
|
if (errorCode == 109) {
|
|
// 0x1e44197
|
|
g2 = 0;
|
|
g3 = hFile;
|
|
g6 = lpBuffer;
|
|
g8 = nNumberOfBytesToRead;
|
|
g4 = v15;
|
|
return 0;
|
|
}
|
|
// 0x1e441a1
|
|
function_1e23a50(errorCode);
|
|
g2 = -1;
|
|
g3 = hFile;
|
|
g6 = lpBuffer;
|
|
g8 = nNumberOfBytesToRead;
|
|
g4 = v15;
|
|
return -1;
|
|
}
|
|
// 0x1e441b7
|
|
g2 = v3;
|
|
int32_t v20 = *(int32_t *)g3; // 0x1e441bb
|
|
g5 = v20;
|
|
int32_t v21 = v20 + 4 + g4; // 0x1e441c2
|
|
g2 = v21;
|
|
char * v22 = (char *)v21; // 0x1e441c6
|
|
unsigned char v23 = *v22; // 0x1e441c6
|
|
int32_t v24 = v20 & -256; // 0x1e441c6
|
|
g5 = (int32_t)v23 | v24;
|
|
char v25;
|
|
if (v23 > -1) {
|
|
goto lab_0x1e442fa;
|
|
} else {
|
|
// 0x1e441d1
|
|
if (v3 == 0) {
|
|
// 0x1e441e6
|
|
v25 = v23 & -5;
|
|
goto lab_0x1e441e9;
|
|
} else {
|
|
// 0x1e441d8
|
|
if (*v10 != 10) {
|
|
// 0x1e441e6
|
|
v25 = v23 & -5;
|
|
goto lab_0x1e441e9;
|
|
} else {
|
|
// 0x1e441e1
|
|
v25 = v23 | 4;
|
|
goto lab_0x1e441e9;
|
|
}
|
|
}
|
|
}
|
|
lab_0x1e442cf:
|
|
// 0x1e442cf
|
|
*(char *)g6 = 13;
|
|
// 0x1e442d2
|
|
g6++;
|
|
goto lab_0x1e442d3;
|
|
lab_0x1e442d3:;
|
|
int32_t v26 = g8; // 0x1e442d3
|
|
if (v26 >= *(int32_t *)(g9 + 28)) {
|
|
// break -> 0x1e442f2
|
|
goto lab_0x1e442f2;
|
|
}
|
|
unsigned char v27 = *(char *)v26; // 0x1e44203
|
|
g2 = (int32_t)v27 | g2 & -256;
|
|
if (v27 == 26) {
|
|
goto lab_0x1e442df;
|
|
}
|
|
goto lab_0x1e4420d;
|
|
lab_0x1e442b7:
|
|
// 0x1e442b7
|
|
g2 = *(int32_t *)(g9 + 36);
|
|
*(int32_t *)(g9 - 4) = 1;
|
|
*(int32_t *)(g9 - 8) = -1;
|
|
*(int32_t *)(g9 - 12) = g2;
|
|
int32_t v37 = function_1e23ef0((int32_t)&g708, (int32_t)&g708, (int32_t)&g708); // 0x1e442c0
|
|
g2 = v37;
|
|
if (*(char *)(g9 + 31) == 10) {
|
|
goto lab_0x1e442d3;
|
|
} else {
|
|
goto lab_0x1e442cf;
|
|
}
|
|
lab_0x1e442fa:;
|
|
int32_t result = *(int32_t *)(g9 + 20); // 0x1e442fa
|
|
g2 = result;
|
|
g3 = *(int32_t *)g9;
|
|
g6 = *(int32_t *)(g9 + 4);
|
|
g8 = *(int32_t *)(g9 + 8);
|
|
g4 = *(int32_t *)(g9 + 12);
|
|
return result;
|
|
lab_0x1e441e9:
|
|
// 0x1e441e9
|
|
g5 = (int32_t)v25 | v24;
|
|
g6 = (int32_t)v10;
|
|
*v22 = v25;
|
|
int32_t v38 = g6; // 0x1e441ef
|
|
int32_t v39 = v4 + v3 + v38; // 0x1e441f5
|
|
g2 = v39;
|
|
if (v38 < v39) {
|
|
unsigned char v40 = *(char *)v38; // 0x1e4420355
|
|
g2 = (int32_t)v40 | v39 & -256;
|
|
if (v40 == 26) {
|
|
lab_0x1e442df:;
|
|
int32_t v41 = *(int32_t *)g3 + 4 + g4; // 0x1e442e2
|
|
g2 = v41;
|
|
char * v42 = (char *)v41; // 0x1e442e6
|
|
unsigned char v43 = *v42; // 0x1e442e6
|
|
int32_t v44 = g5 & -256; // 0x1e442e6
|
|
g5 = v44 | (int32_t)v43;
|
|
if ((v43 & 64) == 0) {
|
|
unsigned char v45 = v43 | 2; // 0x1e442ed
|
|
g5 = v44 | (int32_t)v45;
|
|
*v42 = v45;
|
|
}
|
|
} else {
|
|
v27 = v40;
|
|
v26 = v38;
|
|
while (true) {
|
|
lab_0x1e4420d:
|
|
if (v27 == 13) {
|
|
int32_t v28 = *(int32_t *)(g9 + 28) - 1; // 0x1e4421d
|
|
g5 = v28;
|
|
int32_t v29 = v26 + 1; // 0x1e4423e
|
|
if (v28 > v26) {
|
|
// 0x1e44222
|
|
g5 = v29;
|
|
if (*(char *)v29 != 10) {
|
|
// 0x1e44235
|
|
g8 = v29;
|
|
*(char *)g6 = 13;
|
|
} else {
|
|
// 0x1e4422a
|
|
g8 = v26 + 2;
|
|
*(char *)g6 = 10;
|
|
}
|
|
// 0x1e442d2
|
|
g6++;
|
|
goto lab_0x1e442d3;
|
|
} else {
|
|
// 0x1e4423e
|
|
g8 = v29;
|
|
*(int32_t *)(g9 - 4) = 0;
|
|
int32_t v30 = g9 + 24; // 0x1e44241
|
|
g2 = v30;
|
|
g5 = g9 + 19;
|
|
*(int32_t *)(g9 - 8) = v30;
|
|
*(int32_t *)(g9 + 20) = 0;
|
|
*(int32_t *)(g9 - 4) = 1;
|
|
g2 = *(int32_t *)(g4 + *(int32_t *)g3);
|
|
*(int32_t *)(g9 - 8) = g5;
|
|
*(int32_t *)(g9 - 12) = g2;
|
|
bool v31 = ReadFile(&g708, &g708, (int32_t)&g708, &g708, (struct _OVERLAPPED *)&g708); // 0x1e4425c
|
|
g2 = v31;
|
|
if (!v31) {
|
|
int32_t errorCode2 = GetLastError(); // 0x1e44266
|
|
g2 = errorCode2;
|
|
*(int32_t *)(g9 + 20) = errorCode2;
|
|
}
|
|
// 0x1e44270
|
|
if (*(int32_t *)(g9 + 20) != 0) {
|
|
goto lab_0x1e442cf;
|
|
} else {
|
|
// 0x1e44277
|
|
if (*(int32_t *)(g9 + 24) == 0) {
|
|
goto lab_0x1e442cf;
|
|
} else {
|
|
int32_t v32 = *(int32_t *)g3; // 0x1e4427e
|
|
g2 = v32;
|
|
if ((*(char *)(v32 + 4 + g4) & 72) == 0) {
|
|
int32_t v33 = g6; // 0x1e442a5
|
|
if (v33 != *(int32_t *)(g9 + 40)) {
|
|
goto lab_0x1e442b7;
|
|
} else {
|
|
// 0x1e442ab
|
|
if (*(char *)(g9 + 19) != 10) {
|
|
goto lab_0x1e442b7;
|
|
} else {
|
|
// 0x1e442b2
|
|
*(char *)v33 = 10;
|
|
// 0x1e442d2
|
|
g6++;
|
|
goto lab_0x1e442d3;
|
|
}
|
|
}
|
|
} else {
|
|
char * v34 = (char *)g6; // 0x1e44294
|
|
if (*(char *)(g9 + 19) != 10) {
|
|
// 0x1e44294
|
|
*v34 = 13;
|
|
g6++;
|
|
unsigned char v35 = *(char *)(g9 + 19); // 0x1e44298
|
|
g2 = g2 & -256 | (int32_t)v35;
|
|
int32_t v36 = *(int32_t *)g3; // 0x1e4429c
|
|
g5 = v36;
|
|
*(char *)(v36 + 5 + g4) = v35;
|
|
goto lab_0x1e442d3;
|
|
} else {
|
|
// 0x1e4428f
|
|
*v34 = 10;
|
|
// 0x1e442d2
|
|
g6++;
|
|
goto lab_0x1e442d3;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} else {
|
|
// 0x1e44211
|
|
g8 = v26 + 1;
|
|
*(char *)g6 = v27;
|
|
// 0x1e442d2
|
|
g6++;
|
|
goto lab_0x1e442d3;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
lab_0x1e442f2:
|
|
// 0x1e442f2
|
|
*(int32_t *)(g9 + 20) = g6 - *(int32_t *)(g9 + 40);
|
|
goto lab_0x1e442fa;
|
|
}
|
|
|