//
// This file was generated by the Retargetable Decompiler
// Website:
https://retdec.com
// Copyright (c) 2016 Retargetable Decompiler <
[email protected]>
//
#include <ctype.h>
#include <math.h>
#include <stdbool.h>
#include <stdint.h>
#include <stdlib.h>
// ----------------- Float Types Definitions ------------------
typedef float float32_t;
typedef double float64_t;
typedef long double float80_t;
// ------------------------ Structures ------------------------
struct struct_0 {
int16_t e0;
int32_t e1;
};
struct struct_2 {
int32_t e0;
int16_t e1;
char e2[30];
int32_t e3;
char e4[8];
int32_t * e5;
char e6[24];
int32_t e7;
int32_t e8;
};
struct struct_3 {
int32_t e0;
int32_t e1;
char e2[8];
int32_t e3;
};
struct struct_4 {
char e0;
char e1;
};
struct vtable_418c14_type {
int32_t (*e0)();
int32_t (*e1)(int32_t);
};
// ------------------------- Classes --------------------------
// .?AVexception@std@@
// type_info
// ------------------- Function Prototypes --------------------
int32_t function_401000(int32_t * a1, int32_t a2);
int32_t function_401040(void);
int32_t function_401050(int32_t a1);
int32_t function_401070(int32_t a1, int32_t a2);
int32_t function_401090(int32_t a1);
void function_401110(void);
int32_t function_401160(int32_t a1);
void function_4011a0(void);
void function_4011d0(void);
int32_t function_4011e0(void);
int32_t function_401250(int32_t a1, int32_t a2, int32_t a3);
int32_t function_401360(int32_t a1, int32_t a2);
void function_401380(float64_t a1);
void function_4013a0(float32_t a1, float32_t a2);
int32_t function_4013f0(int32_t * a1, int32_t * a2, int32_t * a3);
int32_t function_401de0(int32_t * a1, int32_t * a2, int32_t * a3, int32_t * a4);
int32_t function_4027c0(int32_t * a1);
int32_t function_402860(int32_t * a1, int32_t * a2, int32_t * a3);
int32_t function_402d10(int32_t * a1, int32_t * a2, int32_t * a3, int32_t * a4);
int32_t function_4033a0(int32_t * a1, int32_t * a2, int32_t * a3, int32_t * a4, int32_t a5, int32_t a6, int32_t a7, int32_t a8, int32_t a9, int32_t a10, int32_t a11, int32_t a12, int32_t a13, int32_t a14, int32_t a15, int32_t a16, int32_t a17, int32_t a18, int32_t a19, int32_t a20, int32_t a21, int32_t a22);
int32_t function_4059b0(int32_t * a1, int32_t a2, int32_t a3, int32_t a4, int32_t a5, int32_t a6, int32_t a7);
int32_t function_4060d0(int32_t * a1, int32_t a2, int32_t a3);
int32_t function_406270(int32_t * a1, int32_t a2, int32_t a3);
int32_t function_406710(int32_t * a1, int32_t a2, int32_t a3);
int32_t function_4067a0(int32_t * a1, int32_t a2, int32_t a3);
int32_t function_406810(int32_t * a1, int32_t a2, int32_t a3);
int32_t function_406ab0(int32_t * a1, int32_t a2, int32_t a3, int32_t a4);
int32_t function_407210(int32_t * a1, int32_t a2, int32_t a3);
int32_t function_4081e0(int32_t * a1, int32_t a2, int32_t a3, int32_t a4, int32_t a5);
int32_t function_408eb0(int32_t a1, int32_t a2, int32_t a3);
int32_t function_409440(int32_t * a1, int32_t a2, int32_t a3, int32_t a4, int32_t a5);
int32_t function_4096c0(int32_t a1, int32_t a2, int32_t a3);
void function_4097a0(int32_t * a1, int32_t a2);
int32_t function_4099a0(int32_t * a1);
int32_t function_40a660(void);
int32_t function_40a6d5(void);
int32_t function_40a750(void);
void function_40a755(void);
void function_40a75a(void);
int32_t function_40ad01(void);
int32_t function_40bc29(void);
int32_t function_40cf0e(int32_t a1);
void function_40cfae(int32_t a1);
int32_t function_40d20f(int32_t result, int32_t a2);
int32_t function_40d2d4(void);
int32_t function_40d325(void);
int32_t function_40d32e(void);
int32_t function_40d385(int32_t a1, int32_t a2, int32_t a3);
void function_40d591(void);
void function_40d5a0(void);
int32_t function_40dfdd(void);
int32_t function_40dfe6(void);
int32_t function_40e45c(int32_t a1, int32_t a2, int32_t a3, int32_t a4, int32_t a5);
int32_t function_40f147(void);
int32_t function_40f14a(int32_t result, int32_t a2);
int32_t function_40f47d(int32_t a1, int32_t a2);
int32_t function_40fa02(void);
void function_40fc09(int32_t a1);
int32_t function_40fd9f(void);
int32_t function_40ff46(void);
int32_t function_4107f5(int32_t a1, int32_t a2);
int32_t function_410860(void);
int32_t function_4108c6(void);
int32_t function_410a76(int32_t result, int32_t a2);
int32_t function_410a85(int32_t result, int32_t a2);
int32_t function_410bed(int32_t a1, int32_t a2, int32_t a3, int32_t a4);
void function_411123(int32_t a1);
int32_t function_4140f5(void);
int32_t function_414c02(void);
int32_t unknown_1b0c4(void);
int32_t unknown_1b14c(void);
int32_t unknown_1b15c(void);
int32_t unknown_1b178(void);
int32_t unknown_1b1a6(void);
int32_t unknown_1b1c4(void);
int32_t unknown_1b2c2(void);
int32_t unknown_1b47e(void);
int32_t unknown_1b496(void);
int32_t unknown_1b4a6(void);
int32_t unknown_40d377(void);
int32_t unknown_40d395(void);
int32_t unknown_40f12d(void);
int32_t unknown_4107f4(void);
// --------------------- Global Variables ---------------------
int32_t g1 = 0; // eax
int32_t g2 = 0; // ebp
int32_t g3 = 0; // ebx
int32_t g4 = 0; // ecx
int32_t g5 = 0; // edi
int32_t g6 = 0; // edx
int32_t g7 = 0; // esi
int32_t g8 = 0; // esp
int32_t g9 = 0x5c70441; // 0x408671
int32_t g10 = 50; // 0x41c008
int32_t g11 = -0x4c10801f; // 0x41c00c
int32_t g12 = -0x5b028002; // 0x41c018
int32_t g13 = -0x4c0c8911; // 0x41c024
int32_t g14 = -0x5e069711; // 0x41c030
int32_t g15 = -0x4f02801c; // 0x41c03c
int32_t g16 = -0x5d0c8915; // 0x41c048
int32_t g17 = -0x6f178015; // 0x41c054
int32_t g18 = -0x79178015; // 0x41c064
int32_t g19 = -0x72178015; // 0x41c070
int32_t g20 = -0x4b0f901f; // 0x41c084
int32_t g21 = -0x4d069627; // 0x41c098
int32_t g22 = -0x51118039; // 0x41c0a4
int32_t g23 = -0x5a068901; // 0x41c0b4
int32_t g24 = -0x7e178015; // 0x41c0bc
int32_t g25 = -0x5e069711; // 0x41c0c4
int32_t g26 = -0x5b028a20; // 0x41c0d4
int32_t g27 = -0x6f178015; // 0x41c0e4
int32_t g28 = -0x5136911e; // 0x41c100
int32_t g29 = -0x4b118c06; // 0x41c118
int32_t g30 = -0x5e069711; // 0x41c124
int32_t g31 = -0x4b118c06; // 0x41c134
int32_t g32 = -0x6b178015; // 0x41c144
int32_t g33 = -0x4b0a9705; // 0x41c168
int32_t g34 = -0x5b028002; // 0x41c1b0
int32_t g35 = -0x5307913e; // 0x41c1d8
int32_t g36 = 0x40fd9f; // 0x41c254
int32_t g37 = 0x40fd9f; // 0x41c258
int32_t g38 = 0x40fd9f; // 0x41c25c
int32_t g39 = 0x40fd9f; // 0x41c260
int32_t g40 = 0x40fd9f; // 0x41c264
int32_t g41 = 0x40fd9f; // 0x41c268
int32_t g42 = 0x40fd9f; // 0x41c26c
int32_t g43 = 0x40fd9f; // 0x41c270
int32_t g44 = 0x40fd9f; // 0x41c274
int32_t g45 = 0x40fd9f; // 0x41c278
int32_t g46 = -0x44bf19b2; // 0x41cbc0
int32_t g47 = 0; // 0x41d1c4
int32_t g48 = 0; // 0x41d1c8
int32_t g49 = 0; // 0x41d2d0
int32_t g50 = 0; // 0x41d2d4
int32_t g51 = 0; // 0x41d2e0
int32_t g52 = 0; // 0x41d2e4
int32_t g53 = 0; // 0x41d2e8
int32_t g54 = 0; // 0x41d2ec
int32_t g55 = 0; // 0x41d2f0
int32_t g56 = 0; // 0x41d2f8
int32_t g57 = 0; // 0x41d2fc
int32_t g58 = 0; // 0x41d300
int32_t g59 = 0; // 0x41d304
int32_t g60 = 0; // 0x41d308
int32_t g61 = 0; // 0x41d30c
int32_t g62 = 0; // 0x41d310
int32_t g63 = 0; // 0x41d314
int32_t g64 = 0; // 0x41d320
int32_t g65 = 0; // 0x41d324
int32_t g66 = 0; // 0x41d32c
int32_t g67 = 0; // 0x41d330
int32_t g68 = 0; // 0x41d334
int32_t g69 = 0; // 0x41d338
int32_t g70 = 0; // 0x41d33c
int32_t g71 = 0; // 0x41d340
int32_t g72 = 0; // 0x41d344
int32_t g73 = 0; // 0x41d348
int32_t g74 = 0; // 0x41d350
int32_t g75 = 0; // 0x41d354
int32_t g76 = 0; // 0x41d358
int32_t g77 = 0; // 0x41d35c
int32_t g78 = 0; // 0x41d360
int32_t g79 = 0; // 0x41d364
int32_t g80 = 0; // 0x41d368
int32_t g81 = 0; // 0x41d38c
int32_t g82 = 0; // 0x41db08
int32_t g83 = 0; // 0x41db28
int32_t g84 = 0; // 0x41dc98
int32_t g85 = 0; // 0x41dcb0
int32_t g86 = 0; // 0x41dcb4
int32_t g87 = 0; // 0x41dcb8
int32_t g88 = 0; // 0x41dcbc
int32_t g89 = 0; // 0x41dcc0
int32_t g90 = 0; // 0x41dcc4
int32_t g91 = 0; // 0x41dcc8
int32_t g92 = 0; // 0x41dcd4
int32_t g93 = 0; // 0x41e038
int32_t g94 = 0; // 0x41e040
int32_t g95 = 0; // 0x41e174
struct vtable_418c14_type vtable_418c14 = {
.e0 = function_40cfb9,
.e1 = function_40cf0e
}; // 0x418c14
// ------------------------ Functions -------------------------
// Address range: 0x401000 - 0x40103f
int32_t function_401000(int32_t * a1, int32_t a2) {
// 0x401000
int32_t v1;
if (g6 == 0) {
// 0x401032
g2 = v1;
return g4;
}
int32_t v2 = g6; // 0x40102a16
int32_t v3 = g4;
*(char *)v3 = 0;
while (v2 != 1) {
// 0x401018
v2--;
v3++;
*(char *)v3 = 0;
// continue -> 0x401018
}
// 0x401012
// branch -> 0x401032
// 0x401032
g2 = v1;
return g4;
}
// Address range: 0x401040 - 0x40104f
int32_t function_401040(void) {
// 0x401040
// branch -> 0x401043
while (true) {
// 0x401043
// branch -> 0x401043
}
}
// Address range: 0x401050 - 0x40106f
int32_t function_401050(int32_t a1) {
// 0x401050
g47 = 1;
return 0;
}
// Address range: 0x401070 - 0x40108f
int32_t function_401070(int32_t a1, int32_t a2) {
// 0x401070
g1 = g6;
return g4 + 2 * g6;
}
// Address range: 0x401090 - 0x40110f
int32_t function_401090(int32_t a1) {
int32_t v1 = g4; // 0x401093
int32_t v2 = g7; // 0x401094
int32_t v3;
if (v1 == 0) {
// 0x4010fd
g7 = v2;
g2 = v3;
return 0;
}
// 0x4010a2
int32_t result; // 0x401101_11
if (v1 != 1) {
// 0x4010af
g4 = v1 - 2;
g7 = function_401090(v2);
g4 = 1;
g7 += function_401090(v2) + 1;
g4 = 0;
g7 -= (function_401090(v2) + 1);
g4 = 1;
g7 += function_401090(v2) + 1;
g4 = 0;
int32_t v4 = function_401090(v2) + 1; // 0x4010eb
g1 = v4;
g7 -= v4;
g4 = v1 - 1;
result = g7 + function_401090(v2);
// branch -> 0x4010fd
} else {
result = 1;
}
// 0x4010fd
g7 = v2;
g2 = v3;
return result;
}
// Address range: 0x401110 - 0x40115f
void function_401110(void) {
int32_t v1 = g4; // 0x401113
switch (v1) {
default: {
// 0x401132
g4 = v1 - 1;
function_401110();
g7 = 0;
g4 = v1 - 2;
function_401110();
// branch -> 0x40114d
break;
}
case 0: {
// 0x40111e
// branch -> 0x40114d
break;
}
case 1: {
// 0x40112b
// branch -> 0x40114d
break;
}
}
}
// Address range: 0x401160 - 0x40119f
int32_t function_401160(int32_t a1) {
int32_t v1 = g4; // 0x401163
int32_t v2 = v1; // bp-8
int32_t v3 = 0; // 0x401177
if (v1 != 0) {
// 0x40116d
function_4099a0(&v2);
v3 = v2;
// branch -> 0x401172
}
// 0x401172
g4 = 40;
function_401090(v3);
int32_t v4 = v2; // 0x40117c
int32_t result;
if (v4 != 0) {
// 0x401189
g4 = v4 - 1;
result = v2 * function_401160(v4);
// branch -> 0x401198
} else {
result = 1;
}
// 0x401198
int32_t v5;
g2 = v5;
return result;
}
// Address range: 0x4011a0 - 0x4011cf
void function_4011a0(void) {
// 0x4011a0
int32_t v1;
int32_t v2 = v1; // bp-4
g4 = 1;
function_401160(v1);
g4 = function_409440;
int32_t v3;
function_4097a0(&v2, v3);
g4 = function_409440;
function_4097a0(&v2, v3);
}
// Address range: 0x4011d0 - 0x4011df
void function_4011d0(void) {
int32_t v1 = g2; // bp-4
int32_t v2;
int32_t v3;
function_4081e0(&v1, v2, v3, 0, 0);
}
// Address range: 0x4011e0 - 0x40124f
int32_t function_4011e0(void) {
int32_t v1;
int32_t v2 = &v1; // 0x40122b_9
int32_t v3 = 1;
v1 = 100;
unknown_1b0c4();
int64_t v4 = __allmul((int64_t)v3, -0x12bddf3a); // 0x40122b
g8 = v2;
g6 = v3 >> 31;
// branch -> 0x40120e
while (v3 <= 9) {
// 0x40120e
g1 = v3;
v3++;
int32_t v5;
v5 = (int32_t)((int64_t)v5 + v4) ^ v3;
v1 = 100;
unknown_1b0c4();
v4 = __allmul((int64_t)v3, -0x12bddf3a);
g8 = v2;
g6 = v3 >> 31;
// continue -> 0x40120e
}
// 0x401241
int32_t v6;
g2 = v6;
return 11;
}
// Address range: 0x401250 - 0x40135f
int32_t function_401250(int32_t a1, int32_t a2, int32_t a3) {
// 0x401250
int32_t v1;
int32_t v2 = v1; // bp-32
int32_t v3 = g5; // 0x401255
int32_t v4 = g4; // 0x40129c
if ((char)(0x1000000 * v4 / 0x1000000 % 32) != 0) {
// if_40129e_0_true
// branch -> after_if_40129e_0
}
int32_t v5 = g7; // 0x4012ae
if (v5 != 0) {
// if_4012ae_0_false
g5 = llvm_cttz_i32(v5, false);
// branch -> after_if_4012ae_0
}
// after_if_4012ae_0
if (g6 != 0) {
// if_4012c8_0_false
// branch -> after_if_4012c8_0
}
// after_if_4012c8_0
if ((char)(0x1000000 * v4 / 0x1000000 % 32) != 0) {
// if_4012cb_0_true
// branch -> after_if_4012cb_0
}
// after_if_4012cb_0
function_4011e0();
if (g6 != 0) {
// if_4012eb_0_false
// branch -> after_if_4012eb_0
}
char v6 = 0x1000000 * g4 / 0x1000000 % 32; // 0x4012ff
int32_t v7;
if (v6 == 0) {
// after_if_4012ff_0.thread
v7 = 0x2a333031 * g7;
// branch -> after_if_40131f_0
} else {
uint32_t v8 = g7; // 0x401319
uint32_t v9 = (int32_t)v6; // 0x40131f
v7 = 0x2a333031 * v8 << v9 | v8 >> 32 - v9;
// branch -> after_if_40131f_0
}
// after_if_40131f_0
g5 = v7;
g4 = 41;
function_401090(v1);
function_4011a0();
int32_t * v10;
int32_t v11;
int32_t * v12;
function_4081e0(&v2, (int32_t)v12, v11, (int32_t)v10, (int32_t)(float32_t)v3);
return 0;
}
// Address range: 0x401360 - 0x40137f
int32_t function_401360(int32_t a1, int32_t a2) {
// 0x401360
return g4;
}
// Address range: 0x401380 - 0x40139f
void function_401380(float64_t a1) {
// 0x401380
function_40a75a();
}
// Address range: 0x4013a0 - 0x4013ef
void function_4013a0(float32_t a1, float32_t a2) {
// 0x4013a0
pow((float64_t)(float80_t)a1, (float64_t)(float80_t)a2);
}
// Address range: 0x4013f0 - 0x401ddf
int32_t function_4013f0(int32_t * a1, int32_t * a2, int32_t * a3) {
g62 = 0x157aa00;
g63 = 0;
int32_t v1 = g4; // 0x4016ae
char v2 = 0;
// branch -> 0x4016a2
while (true) {
int32_t v3 = v2; // 0x4016a2
int32_t v4;
*(char *)((int32_t)&v4 - 264 + v3) = v2;
v1 = (int32_t)v2 | v1 & -256;
v2 = v3 + 1;
// branch -> 0x4016a2
}
}
// Address range: 0x401de0 - 0x4027bf
int32_t function_401de0(int32_t * a1, int32_t * a2, int32_t * a3, int32_t * a4) {
int32_t v1;
int32_t v2 = &v1; // 0x401de1_0
int32_t v3 = g5; // 0x401deb
g62 = 0x157aa00;
g63 = 0;
*(int32_t *)(v2 - 4) = 0;
int32_t v4; // 0x4023fb
int32_t v5; // 0x402136
int32_t * v6; // 0x402114_0
int32_t * v7; // 0x402117_0
int32_t * v8; // 0x4023f8_0
int32_t v9;
int32_t v10;
int32_t v11; // 0x402148
int32_t v12; // 0x4023d1
int32_t v13; // 0x40209a10
int32_t v14; // 0x4023ec1
int32_t v15; // 0x4023fe
uint32_t v16; // 0x402129
unsigned char v17; // 0x402132
int32_t v18; // 0x4023f8
int32_t v19; // 0x40211d
if (*(int32_t *)(v2 - 4) > 255) {
// 0x402088
*(int32_t *)(v2 - 4) = 0;
v13 = v2;
if (*(int32_t *)(v13 - 4) <= 255) {
v11 = v13;
while (true) {
// 0x4020a7
g62 = 0x157aa00;
g63 = 0;
v6 = (int32_t *)(v11 - 4);
v7 = (int32_t *)(v11 - 1036);
v19 = *(int32_t *)(v11 - 1032 + 4 * *v6);
v16 = *(int32_t *)(v11 + 12);
v17 = *(char *)(*(int32_t *)(v11 - 104
+ *v6 % v16);
v5 = (int32_t)v17 + v19 + *v7;
int32_t v20 = v5 & -0x7fffff01; // 0x402138
if (v5 > 0) {
v9 = v20;
goto lab_0x402148;
}
goto lab_0x402140;
}
}
// 0x4023c7
*(int32_t *)(v13 - 1036) = 0;
v12 = v2;
*(int32_t *)(v12 - 4) = *(int32_t *)(v12 - 1036);
*(int32_t *)(v2 -
= 0;
v14 = v2;
if (*(int32_t *)(v14 -
< *(int32_t *)(v14 +
) {
while (true) {
// 0x4023f8
v8 = (int32_t *)(v14 - 4);
v18 = *v8;
v4 = v18 + 1;
v15 = v4 & -0x7fffff01;
if (v4 > 0) {
v10 = v15;
goto lab_0x40240c_2;
}
goto lab_0x402405_2;
}
}
// 0x4026c9
g62 = 0x157aa00;
g63 = 0;
g5 = v3;
return *(int32_t *)(v14 - 1044);
}
int32_t v21 = v2; // 0x40207c
g62 = 0x157aa00;
g63 = 0;
int32_t * v22 = (int32_t *)(v21 - 4); // 0x402076_0
*(int32_t *)(v21 - 1032 + 4 * *v22) = *v22;
int32_t * v23 = (int32_t *)(v2 - 4); // 0x401fec_0
*v23 = *v23 + 1;
while (*(int32_t *)(v2 - 4) <= 255) {
// 0x402002
v21 = v2;
g62 = 0x157aa00;
g63 = 0;
v22 = (int32_t *)(v21 - 4);
*(int32_t *)(v21 - 1032 + 4 * *v22) = *v22;
v23 = (int32_t *)(v2 - 4);
*v23 = *v23 + 1;
// continue -> 0x402002
}
// 0x402088
*(int32_t *)(v2 - 4) = 0;
v13 = v2;
if (*(int32_t *)(v13 - 4) > 255) {
// 0x4023c7
*(int32_t *)(v13 - 1036) = 0;
v12 = v2;
*(int32_t *)(v12 - 4) = *(int32_t *)(v12 - 1036);
*(int32_t *)(v2 -
= 0;
v14 = v2;
if (*(int32_t *)(v14 -
< *(int32_t *)(v14 +
) {
while (true) {
// 0x4023f8
v8 = (int32_t *)(v14 - 4);
v18 = *v8;
v4 = v18 + 1;
v15 = v4 & -0x7fffff01;
if (v4 > 0) {
v10 = v15;
goto lab_0x40240c_2;
}
goto lab_0x402405_2;
}
}
// 0x4026c9
g62 = 0x157aa00;
g63 = 0;
g5 = v3;
return *(int32_t *)(v14 - 1044);
}
v11 = v13;
while (true) {
// 0x4020a7
g62 = 0x157aa00;
g63 = 0;
v6 = (int32_t *)(v11 - 4);
v7 = (int32_t *)(v11 - 1036);
v19 = *(int32_t *)(v11 - 1032 + 4 * *v6);
v16 = *(int32_t *)(v11 + 12);
v17 = *(char *)(*(int32_t *)(v11 - 104
+ *v6 % v16);
v5 = (int32_t)v17 + v19 + *v7;
v9 = v5 & -0x7fffff01;
if (v5 <= 0) {
lab_0x402140:
// 0x402140
v9 = (v5 + 255 | -256) + 1;
// branch -> 0x402148
}
lab_0x402148:
// 0x402148
*v7 = v9;
g62 = 0x157aa00;
g63 = 0;
char v24 = *(char *)(v2 - 1032 + 4 * *(int32_t *)(v2 - 4)); // 0x402212
*(char *)(v2 - 1037) = v24;
g62 = 0x157aa00;
g63 = 0;
int32_t v25 = v2 - 1032; // 0x4022f5
int32_t v26 = *(int32_t *)(4 * *(int32_t *)(v2 - 1036) + v25); // 0x4022f5
*(int32_t *)(4 * *(int32_t *)(v2 - 4) + v25) = v26;
g62 = 0x157aa00;
g63 = 0;
unsigned char v27 = *(char *)(v2 - 1037); // 0x4023ae
int32_t v28 = *(int32_t *)(v2 - 1036); // 0x4023b5
*(int32_t *)(v2 - 1032 + 4 * v2
= (int32_t)v27;
int32_t * v29 = (int32_t *)(v2 - 4); // 0x402091_0
*v29 = *v29 + 1;
if (*(int32_t *)(v2 - 4) > 255) {
// break -> 0x4023c7
break;
}
v11 = v2;
// continue -> 0x4020a7
}
// 0x4023c7
*(int32_t *)(v2 - 1036) = 0;
v12 = v2;
*(int32_t *)(v12 - 4) = *(int32_t *)(v12 - 1036);
*(int32_t *)(v2 -
= 0;
v14 = v2;
if (*(int32_t *)(v14 -
>= *(int32_t *)(v14 +
) {
// 0x4026c9
g62 = 0x157aa00;
g63 = 0;
g5 = v3;
return *(int32_t *)(v14 - 1044);
}
int32_t v30 = v14; // 0x40240c
while (true) {
// 0x4023f8
v8 = (int32_t *)(v30 - 4);
v18 = *v8;
v4 = v18 + 1;
v10 = v4 & -0x7fffff01;
if (v4 <= 0) {
lab_0x402405_2:
// 0x402405
v10 = (v18 | -256) + 1;
// branch -> 0x40240c
}
lab_0x40240c_2:
// 0x40240c
*v8 = v10;
g62 = 0x157aa00;
g63 = 0;
int32_t * v31 = (int32_t *)(v2 - 1036); // 0x40243a_0
int32_t v32 = *(int32_t *)(v2 - 1032 + 4 * *(int32_t *)(v2 - 4)); // 0x402440
uint32_t v33 = v32 + *v31; // 0x402440
int32_t v34 = v33 & -0x7fffff01;
if (v33 <= 0) {
// 0x40244f
v34 = (v33 + 255 | -256) + 1;
// branch -> 0x402457
}
// 0x402457
*v31 = v34;
g62 = 0x157aa00;
g63 = 0;
char v35 = *(char *)(v2 - 1032 + 4 * *(int32_t *)(v2 - 4)); // 0x4024c6
*(char *)(v2 - 1037) = v35;
g62 = 0x157aa00;
g63 = 0;
int32_t v36 = v2 - 1032; // 0x40253c
int32_t v37 = *(int32_t *)(4 * *(int32_t *)(v2 - 1036) + v36); // 0x40253c
*(int32_t *)(4 * *(int32_t *)(v2 - 4) + v36) = v37;
g62 = 0x157aa00;
g63 = 0;
unsigned char v38 = *(char *)(v2 - 1037); // 0x40259f
int32_t v39 = *(int32_t *)(v2 - 1036); // 0x4025a6
*(int32_t *)(v2 - 1032 + 4 * v39) = (int32_t)v38;
g62 = 0x157aa00;
g63 = 0;
int32_t v40 = *(int32_t *)(v2 - 4); // 0x402611
int32_t v41 = v2 - 1032; // 0x402614
int32_t v42 = *(int32_t *)(4 * *(int32_t *)(v2 - 1036) + v41); // 0x402621
uint32_t v43 = v42 + *(int32_t *)(4 * v40 + v41); // 0x402621
int32_t v44 = v43 & -0x7fffff01;
if (v43 <= 0) {
// 0x402630
v44 = (v43 + 255 | -256) + 1;
// branch -> 0x402638
}
char v45 = *(char *)(4 * v44 + v41); // 0x402638
*(char *)(v2 - 1037) = v45;
g62 = 0x157aa00;
g63 = 0;
int32_t * v46 = (int32_t *)(v2 - 1044); // 0x4026a4_0
int32_t v47 = *v46; // 0x4026a4
int32_t * v48 = (int32_t *)(v2 -
; // 0x4026aa_0
int32_t v49 = *v48; // 0x4026aa
char v50 = *(char *)(v2 - 1037); // 0x4026b0
int32_t v51 = *v46; // 0x4026b9
int32_t v52 = *v48; // 0x4026bf
*(char *)(v52 + v51) = v50 ^ *(char *)(v49 + v47);
int32_t * v53 = (int32_t *)(v2 -
; // 0x4023e3_0
*v53 = *v53 + 1;
if (*(int32_t *)(v2 -
>= *(int32_t *)(v2 +
) {
// break -> 0x4026c9
break;
}
v30 = v2;
// continue -> 0x4023f8
}
// 0x4026c9
g62 = 0x157aa00;
g63 = 0;
g5 = v3;
return *(int32_t *)(v2 - 1044);
}
// Address range: 0x4027c0 - 0x40285f
int32_t function_4027c0(int32_t * a1) {
// 0x4027c0
if (*(char *)g4 == 0) {
// 0x4027ea
return 0;
}
int32_t result = 1; // 0x4027d7
while (*(char *)(result + g4) != 0) {
// 0x4027ef
result++;
// continue -> 0x4027ef
}
// 0x4027ea
return result;
}
// Address range: 0x402860 - 0x402d0f
int32_t function_402860(int32_t * a1, int32_t * a2, int32_t * a3) {
int32_t v1;
g2 = &v1;
int32_t v2 = 64; // bp-44
g8 = &v2;
int32_t result = g71; // 0x402873
int32_t v3;
((int32_t (*)(int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t))result)(64, 5, g5, g7, g3, g6, g4, v3);
g62 = 0x157aa00;
g63 = 0;
int32_t v4 = g2; // 0x4028f32
int32_t v5 = v4;
int32_t v6;
if (*(int32_t *)(v4 - 12) >= *(int32_t *)(v4 - 20) - 2) {
// 0x402cff
g5 = v1;
g7 = v6;
g3 = (int32_t)a1;
g2 = *(int32_t *)v5;
g8 = v5 + 8;
return result;
}
*(char *)(*(int32_t *)(v4 - 4) + 4) = 0;
g62 = 0x157aa00;
g63 = 0;
int32_t v7 = g2; // 0x40296e
int32_t v8 = *(int32_t *)(v7 - 12); // 0x402971
unsigned char v9 = *(char *)(v8 + *(int32_t *)(v7 - 16) + 1); // 0x402977
*(char *)(*(int32_t *)(v7 - 4) + 3) = v9;
g62 = 0x157aa00;
g63 = 0;
int32_t v10 = g2; // 0x4029c7
int32_t v11 = *(int32_t *)(v10 - 16); // 0x4029c7
int32_t v12 = *(int32_t *)(v10 - 12); // 0x4029ca
int32_t v13 = *(int32_t *)(v10 - 4); // 0x4029cd
*(char *)(v13 + 2) = *(char *)(v12 + v11);
g62 = 0x157aa00;
g63 = 0;
*(char *)*(int32_t *)(g2 - 4) = 48;
g62 = 0x157aa00;
g63 = 0;
*(char *)(*(int32_t *)(g2 - 4) + 1) = 120;
g62 = 0x157aa00;
g63 = 0;
g4 = *(int32_t *)(g2 - 4);
int32_t v14;
int32_t v15;
int32_t v16;
int32_t v17 = function_408eb0(v16, v15, v14); // 0x402ba3
int32_t v18 = g2; // 0x402ba8
int32_t v19 = *(int32_t *)(v18 - 16); // 0x402ba8
int32_t v20 = *(int32_t *)(v18 -
; // 0x402bab
*(char *)(v20 + v19) = (char)v17;
g62 = 0x157aa00;
g63 = 0;
int32_t * v21 = (int32_t *)(g2 -
; // 0x402c80_0
*v21 = *v21 + 1;
g62 = 0x157aa00;
g63 = 0;
int32_t * v22 = (int32_t *)(g2 - 12); // 0x402ceb_0
int32_t result2 = *v22; // 0x402ceb
*v22 = result2 + 1;
int32_t * v23 = (int32_t *)(g2 - 12); // 0x4028ea_0
*v23 = *v23 + 1;
int32_t v24 = g2; // 0x4028f3
v5 = v24;
while (*(int32_t *)(v24 - 12) < *(int32_t *)(v24 - 20) - 2) {
// 0x402902
*(char *)(*(int32_t *)(v24 - 4) + 4) = 0;
g62 = 0x157aa00;
g63 = 0;
v7 = g2;
v8 = *(int32_t *)(v7 - 12);
v9 = *(char *)(v8 + *(int32_t *)(v7 - 16) + 1);
*(char *)(*(int32_t *)(v7 - 4) + 3) = v9;
g62 = 0x157aa00;
g63 = 0;
v10 = g2;
v11 = *(int32_t *)(v10 - 16);
v12 = *(int32_t *)(v10 - 12);
v13 = *(int32_t *)(v10 - 4);
*(char *)(v13 + 2) = *(char *)(v12 + v11);
g62 = 0x157aa00;
g63 = 0;
*(char *)*(int32_t *)(g2 - 4) = 48;
g62 = 0x157aa00;
g63 = 0;
*(char *)(*(int32_t *)(g2 - 4) + 1) = 120;
g62 = 0x157aa00;
g63 = 0;
g4 = *(int32_t *)(g2 - 4);
v17 = function_408eb0(v16, v15, v14);
v18 = g2;
v19 = *(int32_t *)(v18 - 16);
v20 = *(int32_t *)(v18 -
;
*(char *)(v20 + v19) = (char)v17;
g62 = 0x157aa00;
g63 = 0;
v21 = (int32_t *)(g2 -
;
*v21 = *v21 + 1;
g62 = 0x157aa00;
g63 = 0;
v22 = (int32_t *)(g2 - 12);
result2 = *v22;
*v22 = result2 + 1;
v23 = (int32_t *)(g2 - 12);
*v23 = *v23 + 1;
v24 = g2;
v5 = v24;
// continue -> 0x402902
}
// 0x402cff
g5 = v1;
g7 = v6;
g3 = (int32_t)a1;
g2 = *(int32_t *)v5;
g8 = v5 + 8;
return result2;
}
// Address range: 0x402d10 - 0x40339f
int32_t function_402d10(int32_t * a1, int32_t * a2, int32_t * a3, int32_t * a4) {
int32_t v1;
int32_t v2 = &v1; // 0x402d11_0
g2 = v2;
int32_t v3 = 0; // bp-8
g62 = 0x157aa00;
g63 = 0;
*(int32_t *)(v2 - 2
= *(int32_t *)(v2 - 52);
g62 = 0x157aa00;
g63 = 0;
int32_t v4 = g2; // 0x402ecc
int32_t v5 = *(int32_t *)(*(int32_t *)(v4 - 2
+ 60); // 0x402ecf
*(int32_t *)(v4 - 4) = v5 + 4 + *(int32_t *)(v4 - 52);
g62 = 0x157aa00;
g63 = 0;
int32_t v6 = g2; // 0x402f41
*(int32_t *)(v6 - 24) = *(int32_t *)(v6 - 4) + 20;
g62 = 0x157aa00;
g63 = 0;
int32_t v7 = g2; // 0x402faf
*(int32_t *)(v7 - 12) = *(int32_t *)(*(int32_t *)(v7 - 24) + 96);
g62 = 0x157aa00;
g63 = 0;
int32_t v8 = g2; // 0x403017
*(int32_t *)(v8 - 20) = *(int32_t *)(v8 - 52);
g62 = 0x157aa00;
g63 = 0;
int32_t v9 = g2; // 0x403082
int32_t v10 = *(int32_t *)(v9 - 12); // 0x403085
*(int32_t *)(v9 - 32) = v10 + *(int32_t *)(v9 - 20);
g62 = 0x157aa00;
g63 = 0;
int32_t v11 = g2; // 0x4030f2
int32_t v12 = *(int32_t *)(*(int32_t *)(v11 - 32) + 32); // 0x4030f8
*(int32_t *)(v11 -
= v12 + *(int32_t *)(v11 - 20);
g62 = 0x157aa00;
g63 = 0;
int32_t v13 = g2; // 0x403174
int32_t v14 = *(int32_t *)(*(int32_t *)(v13 - 32) + 2
; // 0x40317a
*(int32_t *)(v13 - 16) = v14 + *(int32_t *)(v13 - 20);
g62 = 0x157aa00;
g63 = 0;
int32_t v15 = g2; // 0x4031e1
int32_t v16 = *(int32_t *)(*(int32_t *)(v15 - 32) + 36); // 0x4031e7
int32_t v17 = v16 + *(int32_t *)(v15 - 20); // 0x4031e7
g1 = v17;
*(int32_t *)(v15 - 40) = v17;
g62 = 0x157aa00;
g63 = 0;
int32_t v18 = g2; // 0x403259
int32_t v19 = *(int32_t *)(*(int32_t *)(v18 - 32) + 24); // 0x40325c
g6 = v19;
*(int32_t *)(v18 - 36) = v19;
*(int32_t *)(g2 - 44) = 0;
int32_t v20 = g2; // 0x4032742
uint32_t v21 = *(int32_t *)(v20 - 44); // 0x4032745
g4 = v21;
int32_t v22 = v20; // 0x403399
int32_t v23;
if (v21 >= *(int32_t *)(v20 - 36)) {
// 0x403396
g5 = v1;
g7 = v23;
g3 = (int32_t)a1;
g2 = *(int32_t *)v22;
g8 = v22 + 8;
return 0;
}
// branch -> 0x403280
while (true) {
int32_t v24 = *(int32_t *)(v20 -
; // 0x403283
int32_t v25 = *(int32_t *)(4 * *(int32_t *)(v20 - 44) + v24); // 0x403289
*(int32_t *)(v20 - 4
= v25 + *(int32_t *)(v20 - 20);
v3 = 1000;
int32_t v26 = g2; // 0x403294
g6 = *(int32_t *)(v26 - 4
;
g4 = *(int32_t *)(v26 - 56);
int32_t v27 = function_406810(&v3, v1, v23); // 0x40329a
int32_t v28 = g2; // 0x4032a3
int32_t * v29 = (int32_t *)(v28 - 44); // 0x4032a3_0
int32_t v30 = *v29; // 0x4032a3
if (v27 == 0) {
int32_t v31 = (int32_t)*(int16_t *)(*(int32_t *)(v28 - 40) + 2 * v30); // 0x4032a9
g4 = v31;
int32_t v32 = *(int32_t *)(v28 - 16); // 0x4032ad
g6 = v32;
int32_t v33 = *(int32_t *)(v28 - 20); // 0x4032b0
g1 = v33;
v22 = v28;
// branch -> 0x403396
// 0x403396
g5 = v1;
g7 = v23;
g3 = (int32_t)a1;
g2 = *(int32_t *)v22;
g8 = v22 + 8;
return *(int32_t *)(4 * v31 + v32) + v33;
}
int32_t v34 = v30 + 1; // 0x40326e
g1 = v34;
*v29 = v34;
int32_t v35 = g2; // 0x403274
uint32_t v36 = *(int32_t *)(v35 - 44); // 0x403274
g4 = v36;
if (v36 >= *(int32_t *)(v35 - 36)) {
v22 = v35;
// break -> 0x403396
break;
}
v20 = v35;
// continue -> 0x403280
}
// 0x403396
g5 = v1;
g7 = v23;
g3 = (int32_t)a1;
g2 = *(int32_t *)v22;
g8 = v22 + 8;
return 0;
}
// Address range: 0x4033a0 - 0x4059af
int32_t function_4033a0(int32_t * a1, int32_t * a2, int32_t * a3, int32_t * a4, int32_t a5, int32_t a6, int32_t a7, int32_t a8, int32_t a9, int32_t a10, int32_t a11, int32_t a12, int32_t a13, int32_t a14, int32_t a15, int32_t a16, int32_t a17, int32_t a18, int32_t a19, int32_t a20, int32_t a21, int32_t a22) {
int32_t * v1 = (int32_t *)0x41c00c; // bp-56
g4 = 0x41c0f4;
function_4027c0(&g11);
function_4013f0(&g11, (int32_t *)11, (int32_t *)g5);
g62 = 0x157aa00;
g63 = 0;
g4 = 0x41c0f4;
function_4027c0(&g14);
function_4013f0(&g14, (int32_t *)11, &g11);
g62 = 0x157aa00;
g63 = 0;
g4 = 0x41c0f4;
function_4027c0(&g13);
function_4013f0(&g13, (int32_t *)11, &g14);
g62 = 0x157aa00;
g63 = 0;
g4 = 0x41c0f4;
function_4027c0(&g12);
function_4013f0(&g12, (int32_t *)8, (int32_t *)0x41c024);
g62 = 0x157aa00;
g63 = 0;
g4 = 0x41c0f4;
function_4027c0(&g16);
function_4013f0(&g16, (int32_t *)11, &g12);
g62 = 0x157aa00;
g63 = 0;
g4 = 0x41c0f4;
function_4027c0(&g15);
function_4013f0(&g15, (int32_t *)8, &g16);
g62 = 0x157aa00;
g63 = 0;
g4 = 0x41c0f4;
function_4027c0(&g17);
function_4013f0(&g17, (int32_t *)14, &g15);
g62 = 0x157aa00;
g63 = 0;
g4 = 0x41c0f4;
function_4027c0(&g1
;
function_4013f0(&g18, (int32_t *)11, &g17);
g62 = 0x157aa00;
g63 = 0;
g4 = 0x41c0f4;
function_4027c0(&g19);
function_4013f0(&g19, (int32_t *)18, (int32_t *)0x41c064);
g62 = 0x157aa00;
g63 = 0;
g4 = 0x41c0f4;
function_4027c0(&g20);
function_4013f0(&g20, (int32_t *)19, (int32_t *)0x41c070);
g62 = 0x157aa00;
g63 = 0;
g4 = 0x41c0f4;
function_4027c0(&g27);
function_4013f0(&g27, (int32_t *)14, (int32_t *)0x41c084);
g62 = 0x157aa00;
g63 = 0;
g4 = 0x41c0f4;
function_4027c0(&g21);
function_4013f0(&g21, (int32_t *)10, &g27);
g62 = 0x157aa00;
g63 = 0;
g4 = 0x41c0f4;
function_4027c0(&g24);
function_4013f0(&g24, (int32_t *)6, &g21);
g62 = 0x157aa00;
g63 = 0;
int32_t v2 = 12;
g4 = 0x41c0f4;
function_4027c0(&g25);
function_4013f0(&g25, &v2, NULL);
g62 = 0x157aa00;
g63 = 0;
g4 = 0x41c0f4;
function_4027c0(&g23);
function_4013f0(&g23, (int32_t *)5, &g25);
g62 = 0x157aa00;
g63 = 0;
g4 = 0x41c0f4;
function_4027c0(&g35);
function_4013f0(&g35, (int32_t *)9, &g23);
g62 = 0x157aa00;
g63 = 0;
g4 = 0x41c0f4;
function_4027c0(&g2
;
function_4013f0(&g28, (int32_t *)20, &g35);
g62 = 0x157aa00;
g63 = 0;
g4 = 0x41c0f4;
function_4027c0(&g29);
function_4013f0(&g29, (int32_t *)11, &g2
;
g62 = 0x157aa00;
g63 = 0;
g4 = 0x41c0f4;
function_4027c0(&g30);
function_4013f0(&g30, (int32_t *)14, &g29);
g62 = 0x157aa00;
g63 = 0;
g4 = 0x41c0f4;
function_4027c0(&g31);
function_4013f0(&g31, (int32_t *)12, &g30);
g62 = 0x157aa00;
g63 = 0;
g4 = 0x41c0f4;
function_4027c0(&g32);
function_4013f0(&g32, (int32_t *)16, &g31);
g62 = 0x157aa00;
g63 = 0;
g4 = 0x41c0f4;
function_4027c0(&g34);
function_4013f0(&g34, (int32_t *)17, &g32);
g62 = 0x157aa00;
g63 = 0;
g4 = 0x41c0f4;
function_4027c0(&g33);
function_4013f0(&g33, (int32_t *)18, &g34);
g62 = 0x157aa00;
g63 = 0;
int32_t v3 = g8; // 0x40400d
*(int32_t *)(v3 - 4) = 14;
int32_t v4 = v3 - 8; // 0x40400f
*(int32_t *)v4 = 0x41c158;
g4 = 0x41c0f4;
*(int32_t *)(v3 - 12) = 0x40401e;
function_4027c0(a1);
*(int32_t *)(v4 - 4) = 0x40402a;
function_4013f0(a1, a2, a3);
g62 = 0x157aa00;
g63 = 0;
int32_t v5 = g8; // 0x40409c
*(int32_t *)(v5 - 4) = 12;
int32_t v6 = v5 - 8; // 0x40409e
*(int32_t *)v6 = 0x41c190;
g4 = 0x41c0f4;
*(int32_t *)(v5 - 12) = 0x4040ad;
function_4027c0(a1);
*(int32_t *)(v6 - 4) = 0x4040b9;
function_4013f0(a1, a2, a3);
g62 = 0x157aa00;
g63 = 0;
int32_t v7 = g8; // 0x40413c
*(int32_t *)(v7 - 4) = 13;
int32_t v8 = v7 - 8; // 0x40413e
*(int32_t *)v8 = 0x41c1a0;
g4 = 0x41c0f4;
*(int32_t *)(v7 - 12) = 0x40414d;
function_4027c0(a1);
*(int32_t *)(v8 - 4) = 0x404159;
function_4013f0(a1, a2, a3);
g62 = 0x157aa00;
g63 = 0;
int32_t v9 = g8; // 0x4041bd
*(int32_t *)(v9 - 4) = 16;
int32_t v10 = v9 - 8; // 0x4041bf
*(int32_t *)v10 = 0x41c17c;
g4 = 0x41c0f4;
*(int32_t *)(v9 - 12) = 0x4041ce;
function_4027c0(a1);
*(int32_t *)(v10 - 4) = 0x4041da;
function_4013f0(a1, a2, a3);
g62 = 0x157aa00;
g63 = 0;
int32_t v11 = g8; // 0x404245
*(int32_t *)(v11 - 4) = 16;
int32_t v12 = v11 - 8; // 0x404247
*(int32_t *)v12 = 0x41c1c4;
g4 = 0x41c0f4;
*(int32_t *)(v11 - 12) = 0x404256;
function_4027c0(a1);
*(int32_t *)(v12 - 4) = 0x404262;
function_4013f0(a1, a2, a3);
*(int32_t *)(g2 - 16) = 0;
*(int32_t *)(g2 -
= 0;
*(int32_t *)(g2 - 24) = 0;
*(int32_t *)(g2 - 4) = 0;
*(int32_t *)(g2 - 20) = 0;
*(int32_t *)(g2 - 32) = 0;
*(int32_t *)(g2 - 2
= 0;
*(int32_t *)(g2 - 12) = 0;
g62 = 0x157aa00;
g63 = 0;
*(int32_t *)(g2 - 16) = *(int32_t *)48;
g62 = 0x157aa00;
g63 = 0;
int32_t v13 = g2; // 0x404549
*(int32_t *)(v13 -
= *(int32_t *)(*(int32_t *)(v13 - 16) + 12);
g62 = 0x157aa00;
g63 = 0;
int32_t v14 = g2; // 0x4045bb
*(int32_t *)(v14 - 24) = *(int32_t *)(*(int32_t *)(v14 -
+ 2
;
g62 = 0x157aa00;
g63 = 0;
int32_t v15 = g2; // 0x40463b
*(int32_t *)(v15 - 4) = *(int32_t *)(v15 - 24);
int32_t v16 = g2; // 0x404647
// branch -> 0x404641
int32_t v17; // 0x404ef3
int32_t v18; // 0x40523d
int32_t v19; // 0x405320
int32_t v20; // 0x404de7
int32_t v21; // 0x404e71
int32_t result; // 0x4058d0
int32_t * v22;
int32_t * v23;
int32_t * v24;
while (true) {
int32_t * v25 = (int32_t *)(v16 - 12); // 0x404641_0
*v25 = *v25 + 1;
g62 = 0x157aa00;
g63 = 0;
int32_t v26 = g2; // 0x4046ae
*(int32_t *)(v26 - 20) = *(int32_t *)(*(int32_t *)(v26 - 4) +
;
g62 = 0x157aa00;
g63 = 0;
int32_t v27 = g2; // 0x404721
*(int32_t *)(v27 - 2
= *(int32_t *)(*(int32_t *)(v27 - 4) + 24);
g62 = 0x157aa00;
g63 = 0;
int32_t v28 = g2; // 0x404818
*(int32_t *)(v28 - 32) = *(int32_t *)(v28 - 20);
g62 = 0x157aa00;
g63 = 0;
int32_t v29 = function_402d10(a1, a2, a3, a4); // 0x404895
g62 = 0x157aa00;
g63 = 0;
if (v29 != 0) {
int32_t v30 = function_402d10(a1, a2, a3, a4); // 0x404923
g66 = v30;
g62 = 0x157aa00;
g63 = 0;
// branch -> 0x404b54
// 0x404b54
g62 = 0x157aa00;
g63 = 0;
((int32_t (*)(int32_t))v30)(g21);
g67 = function_402d10(&g21, v24, v22, a1);
g62 = 0x157aa00;
g63 = 0;
((int32_t (*)(int32_t))g66)(g22);
g68 = function_402d10(&g22, &g21, v24, v22);
g62 = 0x157aa00;
g63 = 0;
((int32_t (*)(int32_t))g66)(g22);
g69 = function_402d10(&g22, &g22, &g21, v24);
g62 = 0x157aa00;
g63 = 0;
((int32_t (*)(int32_t))g66)(g22);
v20 = function_402d10(&g22, (int32_t *)0x41c0a4, (int32_t *)0x41c0a4, (int32_t *)0x41c09
;
g70 = v20;
g62 = 0x157aa00;
g63 = 0;
v23 = (int32_t *)0x41c0a4;
((int32_t (*)(int32_t))g66)(g22);
v21 = function_402d10(&g22, &g22, (int32_t *)0x41c0a4, (int32_t *)0x41c0a4);
g71 = v21;
g62 = 0x157aa00;
g63 = 0;
((int32_t (*)(int32_t))g66)(g22);
v17 = function_402d10(&g22, &g22, &g22, (int32_t *)0x41c0a4);
g73 = v17;
g62 = 0x157aa00;
g63 = 0;
((int32_t (*)(int32_t))g66)(g22);
g72 = function_402d10(&g22, &g22, &g22, &g22);
g62 = 0x157aa00;
g63 = 0;
((int32_t (*)(int32_t))g66)(g22);
g72 = function_402d10(&g22, &g22, &g22, &g22);
g62 = 0x157aa00;
g63 = 0;
((int32_t (*)(int32_t))g66)(g22);
g74 = function_402d10(&g22, &g22, &g22, &g22);
g62 = 0x157aa00;
g63 = 0;
((int32_t (*)(int32_t))g66)(g22);
g75 = function_402d10(&g22, &g22, &g22, &g22);
g62 = 0x157aa00;
g63 = 0;
((int32_t (*)(int32_t))g66)(g22);
g78 = function_402d10(&g22, &g22, &g22, &g22);
g62 = 0x157aa00;
g63 = 0;
((int32_t (*)(int32_t))g66)(g22);
v18 = function_402d10(&g22, (int32_t *)0x41c0a4, (int32_t *)0x41c0a4, (int32_t *)0x41c0a4);
g77 = v18;
g62 = 0x157aa00;
g63 = 0;
v1 = (int32_t *)0x41c1d8;
g8 = (int32_t)&v1;
((int32_t (*)(int32_t))g66)(g35);
v19 = function_402d10(&g35, &g22, (int32_t *)0x41c0a4, (int32_t *)0x41c0a4);
g58 = v19;
g62 = 0x157aa00;
g63 = 0;
((int32_t (*)(int32_t))g66)(g22);
g57 = function_402d10(&g22, v24, v22, a1);
g62 = 0x157aa00;
g63 = 0;
((int32_t (*)(int32_t))g66)(g22);
g52 = function_402d10(&g22, &g22, v24, v22);
g62 = 0x157aa00;
g63 = 0;
((int32_t (*)(int32_t))g66)(g22);
g60 = function_402d10(&g22, &g22, &g22, v24);
g62 = 0x157aa00;
g63 = 0;
((int32_t (*)(int32_t))g66)(g22);
g53 = function_402d10(&g22, &g22, &g22, &g22);
g62 = 0x157aa00;
g63 = 0;
v23 = (int32_t *)0x41c0a4;
g8 = (int32_t)&v23;
((int32_t (*)(int32_t))g66)(g22);
g50 = function_402d10(&g22, &g22, &g22, &g22);
g62 = 0x157aa00;
g63 = 0;
((int32_t (*)(int32_t))g66)(g22);
g56 = function_402d10(&g22, NULL, NULL, NULL);
g62 = 0x157aa00;
g63 = 0;
((int32_t (*)(int32_t))g66)(g22);
g54 = function_402d10(&g22, &g22, NULL, NULL);
g62 = 0x157aa00;
g63 = 0;
((int32_t (*)(int32_t))g66)(g22);
g49 = function_402d10(&g22, &g22, &g22, NULL);
g62 = 0x157aa00;
g63 = 0;
((int32_t (*)(int32_t))g66)(g22);
g55 = function_402d10(&g22, &g22, &g22, &g22);
g62 = 0x157aa00;
g63 = 0;
((int32_t (*)(int32_t))g66)(g22);
g51 = function_402d10(&g22, &g22, &g22, &g22);
g62 = 0x157aa00;
g63 = 0;
((int32_t (*)(int32_t))g66)(g22);
result = function_402d10(&g22, &g22, &g22, &g22);
g80 = result;
g62 = 0x157aa00;
g63 = 0;
g5 = 0x41c0a4;
g7 = 0x41c0a4;
g3 = 0x41c0a4;
g8 = g2 + 8;
return result;
}
int32_t * v31 = (int32_t *)(g2 - 4); // 0x404ad2_0
int32_t v32 = *v31; // 0x404ad2
g6 = v32;
*v31 = *(int32_t *)v32;
g62 = 0x157aa00;
g63 = 0;
int32_t v33 = g2; // 0x404b48
int32_t v34 = *(int32_t *)(v33 - 24); // 0x404b48
g4 = v34;
if (v34 == *(int32_t *)(v33 - 4)) {
// break -> 0x404b54
break;
}
v16 = v33;
// continue -> 0x404641
}
// 0x404b54
// branch -> 0x404b54
// 0x404b54
g62 = 0x157aa00;
g63 = 0;
((int32_t (*)(int32_t))g66)(g21);
g67 = function_402d10(&g21, v24, v22, a1);
g62 = 0x157aa00;
g63 = 0;
((int32_t (*)(int32_t))g66)(g22);
g68 = function_402d10(&g22, &g21, v24, v22);
g62 = 0x157aa00;
g63 = 0;
((int32_t (*)(int32_t))g66)(g22);
g69 = function_402d10(&g22, &g22, &g21, v24);
g62 = 0x157aa00;
g63 = 0;
((int32_t (*)(int32_t))g66)(g22);
v20 = function_402d10(&g22, (int32_t *)0x41c0a4, (int32_t *)0x41c0a4, (int32_t *)0x41c09
;
g70 = v20;
g62 = 0x157aa00;
g63 = 0;
v23 = (int32_t *)0x41c0a4;
((int32_t (*)(int32_t))g66)(g22);
v21 = function_402d10(&g22, &g22, (int32_t *)0x41c0a4, (int32_t *)0x41c0a4);
g71 = v21;
g62 = 0x157aa00;
g63 = 0;
((int32_t (*)(int32_t))g66)(g22);
v17 = function_402d10(&g22, &g22, &g22, (int32_t *)0x41c0a4);
g73 = v17;
g62 = 0x157aa00;
g63 = 0;
((int32_t (*)(int32_t))g66)(g22);
g72 = function_402d10(&g22, &g22, &g22, &g22);
g62 = 0x157aa00;
g63 = 0;
((int32_t (*)(int32_t))g66)(g22);
g72 = function_402d10(&g22, &g22, &g22, &g22);
g62 = 0x157aa00;
g63 = 0;
((int32_t (*)(int32_t))g66)(g22);
g74 = function_402d10(&g22, &g22, &g22, &g22);
g62 = 0x157aa00;
g63 = 0;
((int32_t (*)(int32_t))g66)(g22);
g75 = function_402d10(&g22, &g22, &g22, &g22);
g62 = 0x157aa00;
g63 = 0;
((int32_t (*)(int32_t))g66)(g22);
g78 = function_402d10(&g22, &g22, &g22, &g22);
g62 = 0x157aa00;
g63 = 0;
((int32_t (*)(int32_t))g66)(g22);
v18 = function_402d10(&g22, (int32_t *)0x41c0a4, (int32_t *)0x41c0a4, (int32_t *)0x41c0a4);
g77 = v18;
g62 = 0x157aa00;
g63 = 0;
v1 = (int32_t *)0x41c1d8;
g8 = (int32_t)&v1;
((int32_t (*)(int32_t))g66)(g35);
v19 = function_402d10(&g35, &g22, (int32_t *)0x41c0a4, (int32_t *)0x41c0a4);
g58 = v19;
g62 = 0x157aa00;
g63 = 0;
((int32_t (*)(int32_t))g66)(g22);
g57 = function_402d10(&g22, v24, v22, a1);
g62 = 0x157aa00;
g63 = 0;
((int32_t (*)(int32_t))g66)(g22);
g52 = function_402d10(&g22, &g22, v24, v22);
g62 = 0x157aa00;
g63 = 0;
((int32_t (*)(int32_t))g66)(g22);
g60 = function_402d10(&g22, &g22, &g22, v24);
g62 = 0x157aa00;
g63 = 0;
((int32_t (*)(int32_t))g66)(g22);
g53 = function_402d10(&g22, &g22, &g22, &g22);
g62 = 0x157aa00;
g63 = 0;
v23 = (int32_t *)0x41c0a4;
g8 = (int32_t)&v23;
((int32_t (*)(int32_t))g66)(g22);
g50 = function_402d10(&g22, &g22, &g22, &g22);
g62 = 0x157aa00;
g63 = 0;
((int32_t (*)(int32_t))g66)(g22);
g56 = function_402d10(&g22, NULL, NULL, NULL);
g62 = 0x157aa00;
g63 = 0;
((int32_t (*)(int32_t))g66)(g22);
g54 = function_402d10(&g22, &g22, NULL, NULL);
g62 = 0x157aa00;
g63 = 0;
((int32_t (*)(int32_t))g66)(g22);
g49 = function_402d10(&g22, &g22, &g22, NULL);
g62 = 0x157aa00;
g63 = 0;
((int32_t (*)(int32_t))g66)(g22);
g55 = function_402d10(&g22, &g22, &g22, &g22);
g62 = 0x157aa00;
g63 = 0;
((int32_t (*)(int32_t))g66)(g22);
g51 = function_402d10(&g22, &g22, &g22, &g22);
g62 = 0x157aa00;
g63 = 0;
((int32_t (*)(int32_t))g66)(g22);
result = function_402d10(&g22, &g22, &g22, &g22);
g80 = result;
g62 = 0x157aa00;
g63 = 0;
g5 = 0x41c0a4;
g7 = 0x41c0a4;
g3 = 0x41c0a4;
g8 = g2 + 8;
return result;
}
// Address range: 0x4059b0 - 0x4060cf
int32_t function_4059b0(int32_t * a1, int32_t a2, int32_t a3, int32_t a4, int32_t a5, int32_t a6, int32_t a7) {
int32_t v1;
g2 = &v1;
int32_t v2 = g4; // 0x4059b8
g62 = 0x157aa00;
g63 = 0;
g1 = v2;
int32_t * v3 = (int32_t *)v2; // bp-1139851586
g8 = (int32_t)&v3;
int32_t v4 = g68; // 0x405b09
g4 = v4;
((int32_t (*)(int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t))v4)(v2, -0x80000000, 0, 0, 3, 0, 0);
int32_t v5 = g1; // 0x405b11
int32_t * v6 = (int32_t *)v5; // 0x405b11_0
int32_t v7; // 0x4060c4
if (v5 == -1) {
// 0x4060c4
v7 = g8;
g5 = *(int32_t *)v7;
g3 = *(int32_t *)(v7 + 4);
return 0;
}
// 0x405b98
g6 = v5;
int32_t * v8 = v6;
g8 = (int32_t)&v8;
int32_t v9 = g74; // 0x405b9e
g1 = v9;
((int32_t (*)(int32_t, int32_t))v9)(v5, 0);
int32_t v10 = g1; // 0x405ba5
g61 = v10;
g62 = 0x157aa00;
g63 = 0;
if (v10 == -1) {
// 0x4060c4
v7 = g8;
g5 = *(int32_t *)v7;
g3 = *(int32_t *)(v7 + 4);
return 0;
}
// 0x405c7b
g4 = v10;
int32_t v11 = 64;
g8 = &v11;
int32_t v12 = g71; // 0x405c84
g6 = v12;
((int32_t (*)(int32_t, int32_t))v12)(64, v10);
int32_t v13 = g1; // 0x405c8c
g59 = v13;
if (v13 == 0) {
// 0x4060c4
v7 = g8;
g5 = *(int32_t *)v7;
g3 = *(int32_t *)(v7 + 4);
return 0;
}
// 0x405d01
g62 = 0x157aa00;
g63 = 0;
int32_t v14;
g1 = &v14;
g4 = v5;
int32_t v15 = g74; // 0x405d64
g6 = v15;
int32_t v16;
((int32_t (*)(int32_t, int32_t, int32_t))v15)(v5, 0, v16);
int32_t v17 = g59; // 0x405d6d
g1 = v17;
g4 = v5;
int32_t v18 = g69; // 0x405d77
g6 = v18;
((int32_t (*)(int32_t, int32_t))v1
(v5, v17);
g62 = 0x157aa00;
g63 = 0;
g1 = v5;
int32_t * v19 = v6;
g8 = (int32_t)&v19;
int32_t v20 = g70; // 0x405de7
g4 = v20;
((int32_t (*)(int32_t))v20)(v5);
g62 = 0x157aa00;
g63 = 0;
int32_t v21 = g59; // 0x405e60
g64 = v21;
uint16_t v22 = *(int16_t *)v21; // 0x405e71
g4 = v22;
g6 = v21;
if (v22 == 0x5a4d) {
int32_t v23 = *(int32_t *)(v21 + 60) + v21; // 0x405f77
g65 = v23;
int32_t result; // 0x4060c9_11
if (*(int32_t *)v23 != 0x4550) {
// 0x405f91
g62 = 0x157aa00;
g63 = 0;
result = 0;
// branch -> 0x4060c4
} else {
result = 1;
}
// 0x4060c4
v7 = g8;
g5 = *(int32_t *)v7;
g3 = *(int32_t *)(v7 + 4);
return result;
}
int32_t v24 = g73; // 0x405e89
g1 = v24;
((int32_t (*)(int32_t, int32_t))v24)(8, v21);
int32_t v25 = g1; // 0x405e90
int32_t * v26 = (int32_t *)v25;
g8 = (int32_t)&v26;
int32_t v27 = g72; // 0x405e91
g4 = v27;
((int32_t (*)(int32_t))v27)(v25);
g62 = 0x157aa00;
g63 = 0;
// branch -> 0x4060c4
// 0x4060c4
v7 = g8;
g5 = *(int32_t *)v7;
g3 = *(int32_t *)(v7 + 4);
return 0;
}
// Address range: 0x4060d0 - 0x40626f
int32_t function_4060d0(int32_t * a1, int32_t a2, int32_t a3) {
int32_t v1;
g2 = &v1;
g62 = 0x157aa00;
g63 = 0;
int32_t v2 = g75; // 0x406138
g1 = v2;
((int32_t (*)(int32_t, int32_t, int32_t))v2)(0, g48, 260);
g62 = 0x157aa00;
g63 = 0;
g5 = 0;
g3 = 0x41d1c8;
g2 = 260;
return 0x41d1c8;
}
// Address range: 0x406270 - 0x40670f
int32_t function_406270(int32_t * a1, int32_t a2, int32_t a3) {
int32_t v1 = g2; // bp-4
g2 = &v1;
g62 = 0x157aa00;
g63 = 0;
int32_t v2 = g75; // 0x406377
g1 = v2;
((int32_t (*)(int32_t, int32_t, int32_t))v2)(0, g48, 260);
int32_t v3 = g78; // 0x406390
g4 = v3;
((int32_t (*)(int32_t, int32_t, int32_t, int32_t, int32_t, int32_t))v3)(0xfde9, 0, g48, -1, 0, 0);
g7 = g1;
int32_t v4 = g80; // 0x4063a7
g6 = v4;
((int32_t (*)(int32_t, int32_t, int32_t, int32_t, int32_t))v4)(0, g48, -1, 0, 0);
int32_t v5 = g1; // 0x4063af
int32_t v6 = g78; // 0x4063b0
g1 = v6;
((int32_t (*)(int32_t))v6)(v5);
int32_t * v7; // 0x40661b_01
if (g7 != g1) {
int32_t v8 = g80; // 0x4063bb
g4 = v8;
((int32_t (*)())v
();
v7 = (int32_t *)g1;
// branch -> 0x406498
} else {
v7 = (int32_t *)0xfde9;
}
// 0x406498
g62 = 0x157aa00;
g63 = 0;
int32_t v9 = (int32_t)v7; // 0x4064a5
g6 = v9;
int32_t v10 = g78; // 0x4064a9
g1 = v10;
((int32_t (*)(int32_t, int32_t, int32_t, int32_t, int32_t, int32_t))v10)(v9, 0, g48, -1, 0, 0);
int32_t v11 = g1; // 0x4064b0
g62 = 0x157aa00;
g63 = 0;
_qm__qm_2_YAPAXI_Z();
int32_t result = g1; // 0x4065a4
g62 = 0x157aa00;
g63 = 0;
g6 = result;
g1 = v9;
int32_t v12 = g78; // 0x40661f
g4 = v12;
((int32_t (*)(int32_t, int32_t, int32_t, int32_t, int32_t, int32_t))v12)(v9, 0, g48, -1, result, v11);
g62 = 0x157aa00;
g63 = 0;
return result;
}
// Address range: 0x406710 - 0x40679f
int32_t function_406710(int32_t * a1, int32_t a2, int32_t a3) {
// 0x406710
return g59;
}
// Address range: 0x4067a0 - 0x40680f
int32_t function_4067a0(int32_t * a1, int32_t a2, int32_t a3) {
// 0x4067a0
return g61;
}
// Address range: 0x406810 - 0x406aaf
int32_t function_406810(int32_t * a1, int32_t a2, int32_t a3) {
int32_t v1 = g5; // 0x406817
int32_t v2 = v1; // bp-24
g8 = &v2;
g62 = 0x157aa00;
g63 = 0;
int32_t v3;
if (a1 > NULL) {
int32_t v4 = 0; // 0x4068a76
while (true) {
char * v5 = (char *)(v4 + g4); // 0x4068b9_0
int32_t v6 = v4 + g6; // 0x4068bf
char * v7 = (char *)v6; // 0x4068c2_0
unsigned char v8 = *v7; // 0x4068c2
g6 = v8;
if (*v5 == v
{
// 0x406942
int32_t v9; // 0x4068a1
if (*v5 == 0) {
// 0x40694f
g6 = v6;
if (*v7 != 0) {
// 0x40695e
g62 = 0x157aa00;
g63 = 0;
v9 = v4 + 1;
if ((int32_t *)v9 >= a1) {
// break -> 0x4069d7
break;
}
v4 = v9;
// continue -> 0x4068b3
continue;
}
} else {
// 0x40695e
g62 = 0x157aa00;
g63 = 0;
v9 = v4 + 1;
if ((int32_t *)v9 >= a1) {
// break -> 0x4069d7
break;
}
v4 = v9;
// continue -> 0x4068b3
continue;
}
// 0x4069d7
g62 = 0x157aa00;
g63 = 0;
// branch -> 0x406aa7
// 0x406aa7
g5 = v1;
g2 = v3;
return 0;
}
}
// 0x4069d7
g62 = 0x157aa00;
g63 = 0;
// branch -> 0x406aa7
} else {
// 0x4069d7
g62 = 0x157aa00;
g63 = 0;
// branch -> 0x406aa7
}
// 0x406aa7
g5 = v1;
g2 = v3;
return 0;
}
// Address range: 0x406ab0 - 0x40720f
int32_t function_406ab0(int32_t * a1, int32_t a2, int32_t a3, int32_t a4) {
int32_t v1;
g2 = &v1;
int32_t v2 = g5; // bp-96
g8 = &v2;
int32_t v3 = g4; // 0x406abc
g62 = 0x157aa00;
g63 = 0;
int32_t v4 = g71; // 0x406d87
g1 = v4;
((int32_t (*)(int32_t, int32_t))v4)(*(int32_t *)64, *(int32_t *)36);
int32_t * v5 = (int32_t *)g1; // bp-12
g62 = 0x157aa00;
g63 = 0;
int32_t * v6 = (int32_t *)64; // bp-20
g8 = (int32_t)&v6;
int32_t v7 = g71; // 0x406de8
g4 = v7;
((int32_t (*)(int32_t, int32_t))v7)(64, 36);
int32_t * v8 = (int32_t *)g1; // bp-8
g62 = 0x157aa00;
g63 = 0;
int32_t v9; // 0x406ffe
int32_t v10;
int32_t ** v11;
int32_t ** v12;
int32_t ** v13;
int32_t ** v14;
int32_t v15;
int32_t v16; // 0x406ffa
int32_t v17; // 0x406ffd
int32_t v18; // 0x407000
uint32_t v19;
int32_t v20; // 0x40716317
int32_t * v21; // 0x40709b23
if (g61 != 0) {
int32_t v22 = 0; // 0x406e6013
int32_t * v23 = NULL; // 0x0212
int32_t v24 = 36; // 0x406fdd411
int32_t v25; // 0x406fdd3
while (true) {
// 0x406e6f
v6 = (int32_t *)(v22 + v3);
int32_t v26 = g8; // 0x406e7b
*(int32_t *)(v26 - 4) = 6;
g6 = 0x41c1e4;
g4 = (int32_t)v6;
*(int32_t *)(v26 -
= 0x406e89;
v25 = v24;
if (function_406810(a1, a2, a3) == 0) {
// 0x406e91
*v14 = v23;
g62 = 0x157aa00;
g63 = 0;
v25 = v24 + 1;
// branch -> 0x406f5e
}
int32_t v27 = v22 + 1; // 0x406f61
g62 = 0x157aa00;
g63 = 0;
if (v27 >= g61) {
// break -> 0x406fdd
break;
}
v22 = v27;
v23 = (int32_t *)v27;
v24 = v25;
// continue -> 0x406e6f
}
int32_t v28 = v25 - 1; // 0x406fe0
if (v28 != 0) {
v19 = v28;
// 0x406fec
v20 = 0;
// branch -> 0x406fec
while (true) {
// 0x406fec
g6 = v20;
v16 = (int32_t)*v12 - (int32_t)*v14 - 6;
g1 = v16;
v17 = g8;
*(int32_t *)(v17 - 4) = v16;
v9 = v17 - 8;
*(int32_t *)v9 = 64;
g8 = v9;
v18 = g71;
g4 = v18;
*(int32_t *)(v17 - 12) = 0x407008;
((int32_t (*)())v1
();
v5[v20] = g1;
g62 = 0x157aa00;
g63 = 0;
v11 = v12;
v13 = v14;
v21 = *v13;
if ((int32_t)*v11 - (int32_t)v21 == 6) {
goto lab_0x4070cb;
}
v15 = 0;
goto lab_generated_0;
}
}
// 0x4071d9
g6 = *v8;
g5 = v1;
g7 = v10;
g3 = (int32_t)a1;
return *v5;
}
// 0x406fdd
v19 = 35;
// branch -> 0x406fec
// 0x406fec
v20 = 0;
// branch -> 0x406fec
while (true) {
// 0x406fec
g6 = v20;
v16 = (int32_t)*v12 - (int32_t)*v14 - 6;
g1 = v16;
v17 = g8;
*(int32_t *)(v17 - 4) = v16;
v9 = v17 - 8;
*(int32_t *)v9 = 64;
g8 = v9;
v18 = g71;
g4 = v18;
*(int32_t *)(v17 - 12) = 0x407008;
((int32_t (*)())v1
();
v5[v20] = g1;
g62 = 0x157aa00;
g63 = 0;
v11 = v12;
v13 = v14;
v21 = *v13;
int32_t v29; // 0x407163
int32_t * v30; // 0x4070d1
int32_t * v31; // 0x4070d5
if ((int32_t)*v11 - (int32_t)v21 != 6) {
v15 = 0;
lab_generated_1:;
int32_t * v32 = *v13; // 0x4070ad
g7 = v3;
char v33 = *(char *)(v15 + 6 + (int32_t)v32 + v3); // 0x4070c3
*(char *)(v5[v20] + v15) = v33;
int32_t v34 = v15 + 1; // 0x40708b
int32_t * v35 = *v14; // 0x40709b
while (v34 < (int32_t)*v12 - (int32_t)v35 - 6) {
// 0x4070a7
v15 = v34;
v32 = *v14;
g7 = v3;
v33 = *(char *)(v15 + 6 + (int32_t)v32 + v3);
*(char *)(v5[v20] + v15) = v33;
v34 = v15 + 1;
v35 = *v14;
// continue -> 0x4070a7
}
// 0x4070cb
v30 = *v12;
v31 = *v14;
v8[v20] = (int32_t)v30 - (int32_t)v31 - 6;
v29 = v20 + 1;
g62 = 0x157aa00;
g63 = 0;
if (v29 >= v19) {
// break -> 0x4071d9
break;
}
v20 = v29;
// continue -> 0x406fec
continue;
}
lab_0x4070cb:
// 0x4070cb
v30 = *v11;
v31 = *v13;
v8[v20] = (int32_t)v30 - (int32_t)v31 - 6;
v29 = v20 + 1;
g62 = 0x157aa00;
g63 = 0;
if (v29 >= v19) {
// break -> 0x4071d9
break;
}
v20 = v29;
// continue -> 0x406fec
}
// 0x4071d9
g6 = *v8;
g5 = v1;
g7 = v10;
g3 = (int32_t)a1;
return *v5;
}
// Address range: 0x407210 - 0x4081df
int32_t function_407210(int32_t * a1, int32_t a2, int32_t a3) {
int32_t v1;
g2 = &v1;
int32_t v2 = g5; // bp-144
g8 = &v2;
int32_t v3 = g6; // 0x40721c
struct struct_0 * v4 = (struct struct_0 *)v3; // 0x40721c_0
struct struct_3 * v5 = (struct struct_3 *)g4; // bp-128
g1 = v3;
g62 = 0x157aa00;
g63 = 0;
g4 = v3;
int32_t result; // 0x408191
int32_t v6; // 0x40818d
if (v4->e0 == 0x5a4d) {
// 0x4076b8
g1 = v3;
int32_t v7 = *(int32_t *)(v3 + 60) + v3; // 0x4076be
g4 = v7;
struct struct_2 * v8 = (struct struct_2 *)v7; // 0x4076c1_0
g62 = 0x157aa00;
g63 = 0;
if (v8->e0 == 0x4550) {
// 0x40773b
struct struct_3 * v9;
int32_t v10 = (int32_t)&v9; // 0x4078f3_1
int32_t v11;
int32_t v12 = &v11; // 0x407a19_0
int32_t v13;
int32_t v14 = &v13; // 0x407a41_0
int32_t v15;
int32_t v16 = &v15; // 0x407ad5_0
// branch -> 0x40773b
while (true) {
// 0x40773b
g62 = 0x157aa00;
g63 = 0;
g6 = 68;
int32_t v17;
g4 = &v17;
function_401000(a1, a2);
g62 = 0x157aa00;
g63 = 0;
g6 = 16;
int32_t v18;
g4 = &v18;
function_401000(a1, a2);
g62 = 0x157aa00;
g63 = 0;
g6 = 4;
int32_t v19 = (int32_t)v5; // 0x4078f0
g1 = v19;
v9 = v5;
g8 = v10;
int32_t v20 = g52; // 0x4078f4
g4 = v20;
((int32_t (*)(int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t))v20)(v19, 0, 0, 0, 0, 4, 0, 0);
if (g1 == 0) {
// 0x408186
v6 = (int32_t)v4;
g6 = v6;
result = g57;
((int32_t (*)(int32_t, int32_t, int32_t))result)(v6, 0, 0x8000);
g62 = 0x157aa00;
g63 = 0;
g2 = v1;
return result;
}
int32_t v21 = g60; // 0x40790f
g6 = v21;
((int32_t (*)(int32_t, int32_t, int32_t, int32_t))v21)(0, 4, 0x1000, 4);
struct struct_3 * v22 = (struct struct_3 *)g1; // 0x407917_0
struct struct_3 * v23 = v22; // bp-8
v22->e0 = 0x10007;
g62 = 0x157aa00;
g63 = 0;
int32_t v24 = (int32_t)v23; // 0x407a12
g4 = v24;
int32_t v25;
g6 = v25;
v11 = v25;
g8 = v12;
int32_t v26 = g53; // 0x407a1a
g1 = v26;
((int32_t (*)(int32_t, int32_t))v26)(v25, v24);
if (g1 != 0) {
int32_t v27 = *(int32_t *)((int32_t)v23 + 164) + 8; // 0x407a3a
g1 = v27;
int32_t v28 = v18; // 0x407a3e
g4 = v28;
v13 = v28;
g8 = v14;
int32_t v29 = g50; // 0x407a42
g6 = v29;
int32_t v30;
((int32_t (*)(int32_t, int32_t, int32_t, int32_t))v29)(v28, v27, v30, 4);
int32_t * v31;
int32_t v32 = (int32_t)v31; // 0x407a4d
if (v31 == v8->e5) {
// 0x407a59
g62 = 0x157aa00;
g63 = 0;
g6 = v32;
int32_t v33 = v18; // 0x407ad2
g1 = v33;
v15 = v33;
g8 = v16;
int32_t v34 = g58; // 0x407ad6
g4 = v34;
((int32_t (*)(int32_t, int32_t))v34)(v33, v32);
g62 = 0x157aa00;
g63 = 0;
// branch -> 0x407b50
}
int32_t v35 = g8; // 0x407b50
*(int32_t *)(v35 - 4) = 64;
*(int32_t *)(v35 -
= 0x3000;
*(int32_t *)(v35 - 12) = v8->e7;
int32_t v36 = (int32_t)v8->e5; // 0x407b61_0
g6 = v36;
*(int32_t *)(v35 - 16) = v36;
int32_t v37 = v18; // 0x407b65
g1 = v37;
int32_t v38 = v35 - 20; // 0x407b68
*(int32_t *)v38 = v37;
g8 = v38;
int32_t v39 = g56; // 0x407b69
g4 = v39;
*(int32_t *)(v35 - 24) = 0x407b71;
((int32_t (*)())v39)();
int32_t v40 = g1; // 0x407b71
g62 = 0x157aa00;
g63 = 0;
int32_t v41 = g8; // 0x407bf1
*(int32_t *)(v41 - 4) = 0;
if (v40 != 0) {
// 0x407d4c
*(int32_t *)(v41 -
= v8->e8;
*(int32_t *)(v41 - 12) = (int32_t)v4;
g4 = v40;
*(int32_t *)(v41 - 16) = v40;
int32_t v42 = v18; // 0x407d67
g6 = v42;
int32_t v43 = v41 - 20; // 0x407d6a
*(int32_t *)v43 = v42;
g8 = v43;
int32_t v44 = g54; // 0x407d6b
g1 = v44;
*(int32_t *)(v41 - 24) = 0x407d72;
((int32_t (*)())v44)();
g62 = 0x157aa00;
g63 = 0;
for (int32_t i = 0; i < (int32_t)v8->e1; i++) {
int32_t v45 = *(int32_t *)((int32_t)v4 + 60); // 0x407dff
int32_t v46 = 40 * i + 248 + v45 + (int32_t)v4; // 0x407e08
g62 = 0x157aa00;
g63 = 0;
int32_t v47 = g8; // 0x407e74
*(int32_t *)(v47 - 4) = 0;
*(int32_t *)(v47 -
= *(int32_t *)(v46 + 16);
int32_t v48 = *(int32_t *)(v46 + 20); // 0x407e83
*(int32_t *)(v47 - 12) = (int32_t)v4 + v48;
int32_t v49 = *(int32_t *)(v46 + 12) + v40; // 0x407e8d
g4 = v49;
*(int32_t *)(v47 - 16) = v49;
int32_t v50 = v18; // 0x407e91
g6 = v50;
int32_t v51 = v47 - 20; // 0x407e94
*(int32_t *)v51 = v50;
g8 = v51;
int32_t v52 = g54; // 0x407e95
g1 = v52;
*(int32_t *)(v47 - 24) = 0x407e9c;
((int32_t (*)())v52)();
g62 = 0x157aa00;
g63 = 0;
// continue -> 0x407df9
}
int32_t v53 = g8; // 0x407f14
*(int32_t *)(v53 - 4) = 0;
*(int32_t *)(v53 -
= 4;
*(int32_t *)(v53 - 12) = (int32_t)v8 + 52;
int32_t v54 = *(int32_t *)((int32_t)v23 + 164) + 8; // 0x407f28
g1 = v54;
*(int32_t *)(v53 - 16) = v54;
int32_t v55 = v18; // 0x407f2c
g4 = v55;
int32_t v56 = v53 - 20; // 0x407f2f
*(int32_t *)v56 = v55;
g8 = v56;
int32_t v57 = g54; // 0x407f30
g6 = v57;
*(int32_t *)(v53 - 24) = 0x407f38;
((int32_t (*)())v57)();
g62 = 0x157aa00;
g63 = 0;
*(int32_t *)((int32_t)v23 + 176) = v8->e3 + v40;
g62 = 0x157aa00;
g63 = 0;
int32_t v58 = (int32_t)v23; // 0x408025
g1 = v58;
int32_t v59 = g8; // 0x408028
*(int32_t *)(v59 - 4) = v58;
g4 = v25;
int32_t v60 = v59 - 8; // 0x40802c
*(int32_t *)v60 = v25;
g8 = v60;
int32_t v61 = g49; // 0x40802d
g6 = v61;
*(int32_t *)(v59 - 12) = 0x408035;
((int32_t (*)())v61)();
g62 = 0x157aa00;
g63 = 0;
g1 = v25;
int32_t v62 = g8; // 0x4080a5
int32_t v63 = v62 - 4; // 0x4080a5
*(int32_t *)v63 = v25;
g8 = v63;
int32_t v64 = g55; // 0x4080a6
g4 = v64;
*(int32_t *)(v62 -
= 0x4080ae;
((int32_t (*)())v64)();
g62 = 0x157aa00;
g63 = 0;
// branch -> 0x408186
// 0x408186
v6 = (int32_t)v4;
g6 = v6;
result = g57;
((int32_t (*)(int32_t, int32_t, int32_t))result)(v6, 0, 0x8000);
g62 = 0x157aa00;
g63 = 0;
g2 = v1;
return result;
}
int32_t v65 = v18; // 0x407bf3
g6 = v65;
int32_t v66 = v41 - 8; // 0x407bf6
*(int32_t *)v66 = v65;
g8 = v66;
int32_t v67 = g77; // 0x407bf7
g1 = v67;
*(int32_t *)(v41 - 12) = 0x407bfe;
((int32_t (*)())v67)();
g62 = 0x157aa00;
g63 = 0;
// branch -> 0x40773b
continue;
}
// 0x408186
v6 = (int32_t)v4;
g6 = v6;
result = g57;
((int32_t (*)(int32_t, int32_t, int32_t))result)(v6, 0, 0x8000);
g62 = 0x157aa00;
g63 = 0;
g2 = v1;
return result;
}
}
}
// 0x408186
v6 = (int32_t)v4;
g6 = v6;
result = g57;
((int32_t (*)(int32_t, int32_t, int32_t))result)(v6, 0, 0x8000);
g62 = 0x157aa00;
g63 = 0;
g2 = v1;
return result;
}
// Address range: 0x4081e0 - 0x408eaf
int32_t function_4081e0(int32_t * a1, int32_t a2, int32_t a3, int32_t a4, int32_t a5) {
int32_t v1 = g3; // bp-40
int32_t v2 = g7; // bp-44
int32_t v3 = g5; // bp-48
g62 = 0x157aa00;
g63 = 0;
int32_t * v4;
int32_t * v5;
int32_t * v6;
int32_t * v7;
int32_t * v8;
int32_t * v9;
int32_t * v10;
int32_t * v11;
int32_t * v12;
int32_t * v13;
function_4033a0(&v3, &v2, &v1, v11, (int32_t)v10, (int32_t)v9, (int32_t)v8, (int32_t)v7, (int32_t)v6, (int32_t)v5, (int32_t)v13, (int32_t)v12, (int32_t)v4, (int32_t)a1, a2, a3, a4, a5, 0, 0, 0, 0);
g62 = 0x157aa00;
g63 = 0;
function_4060d0(a1, a2, a3);
g4 = 0x41d1c8;
function_4059b0(a1, a2, a3, a4, a5, 0, 0);
g62 = 0x157aa00;
g63 = 0;
g7 = function_4067a0(a1, a2, a3);
g6 = g7;
g4 = function_406710(a1, a2, a3);
int32_t v14 = function_406ab0(a1, a2, a3, a4); // 0x408545
int32_t v15 = g6; // 0x40854d
g62 = 0x157aa00;
g63 = 0;
int32_t * v16 = (int32_t *)(v15 + 16); // 0x4085d5_0
*(char *)(*v16 + *(int32_t *)(v14 + 16)) = 0;
g62 = 0x157aa00;
g63 = 0;
int32_t * v17 = (int32_t *)*v16; // 0x408654_0
int32_t v18 = *(int32_t *)(v15 + 4); // 0x408658
int32_t * v19 = (int32_t *)v18; // 0x40865b_0
g9 = function_401de0(v19, v17, v12, v4);
g62 = 0x157aa00;
g63 = 0;
int32_t * v20 = (int32_t *)(v18 + 16); // 0x4086df_0
int32_t v21 = *v20; // 0x4086df
int32_t * v22 = (int32_t *)v21; // 0x4086e2_0
int32_t * v23 = (int32_t *)(v18 + 2
; // 0x4086e6_0
int32_t * v24 = (int32_t *)*v23; // 0x4086e9_0
int32_t * v25 = (int32_t *)(v21 + 2
; // 0x4086f3_0
*v25 = function_401de0(v24, v22, v19, v17);
g62 = 0x157aa00;
g63 = 0;
int32_t * v26 = (int32_t *)*v20; // 0x408775_0
int32_t * v27 = (int32_t *)(v18 + 32); // 0x408779_0
int32_t * v28 = (int32_t *)*v27; // 0x40877c_0
int32_t * v29 = (int32_t *)(v21 + 32); // 0x408786_0
*v29 = function_401de0(v28, v26, v24, v22);
g62 = 0x157aa00;
g63 = 0;
g6 = *v23;
g1 = v21;
g4 = *v25;
function_402860(v28, v26, v24);
g62 = 0x157aa00;
g63 = 0;
g6 = *v27;
g1 = v21;
g4 = *v29;
function_402860(v28, v26, v24);
g62 = 0x157aa00;
g63 = 0;
int32_t v30 = g2; // 0x408b54
int32_t v31 = *(int32_t *)(v30 - 12); // 0x408b54
g4 = v31;
int32_t v32 = *(int32_t *)(v31 + 32); // 0x408b57
g6 = v32;
*(int32_t *)(v30 - 16) = v32;
*(int32_t *)(g2 - 4) = 0;
g62 = 0x157aa00;
g63 = 0;
*(int32_t *)(g8 - 4) = 0x408d03;
function_4060d0(a1, a2, a3);
g6 = *(int32_t *)(*(int32_t *)(g2 - 12) + 4);
g4 = 0x41d1c8;
*(int32_t *)(g8 - 4) = 0x408d10;
function_407210(a1, a2, a3);
g62 = 0x157aa00;
g63 = 0;
return 0;
}
// Address range: 0x408eb0 - 0x40943f
int32_t function_408eb0(int32_t a1, int32_t a2, int32_t a3) {
// 0x408eb0
g62 = 0x157aa00;
g63 = 0;
g1 = 48;
int32_t v1;
if (((struct struct_4 *)g4)->e0 == 4
{
// 0x409055
g1 = 120;
if (*(char *)(g4 + 1) == 120) {
int32_t v2 = g4 + 2; // 0x40906b
g1 = v2;
struct struct_4 * v3 = (struct struct_4 *)v2;
if (v3->e0 == 0) {
// 0x4093c1
g2 = v1;
return 0;
}
int32_t v4 = 0; // 0x4093c1515
int32_t result2; // 0x4093c16
while (true) {
int32_t result = 16 * v4; // 0x409082
g62 = 0x157aa00;
g63 = 0;
int32_t v5 = (int32_t)v3->e0 - 48; // 0x40910b
g1 = v5;
int32_t v6; // 0x40923a
if (v5 > 9) {
int32_t v7 = v3->e0; // 0x4091a0
int32_t v8 = v7 - 65; // 0x4091a7
int32_t v9;
if (v9 > 5) {
int32_t v10 = v3->e0; // 0x409233
g1 = 97;
v6 = v10 - 97;
g62 = 0x157aa00;
g63 = 0;
if (v6 <= 5) {
result2 = v10 - 87 | result;
// branch -> 0x409344
lab_0x409344_2:
// 0x409344
g62 = 0x157aa00;
g63 = 0;
struct struct_4 * v11 = (struct struct_4 *)((int32_t)v3 + 1);
if (v11->e0 == 0) {
// break -> 0x4093c1
break;
}
v3 = v11;
v4 = result2;
v9 = v6;
// continue -> 0x40907f
continue;
}
} else {
// 0x4091b2
g62 = 0x157aa00;
g63 = 0;
int32_t v12 = v7 - 55 | result; // 0x409225
g1 = v12;
v6 = v8;
result2 = v12;
// branch -> 0x409344
goto lab_0x409344_2;
}
// 0x4093c1
g2 = v1;
return result;
}
// 0x40912e
g62 = 0x157aa00;
g63 = 0;
v6 = v5;
result2 = v5 | result;
// branch -> 0x409344
goto lab_0x409344_2;
}
// 0x4093c1
g2 = v1;
return result2;
}
}
// 0x4093c1
g2 = v1;
return 0;
}
// Address range: 0x409440 - 0x4096bf
int32_t function_409440(int32_t * a1, int32_t a2, int32_t a3, int32_t a4, int32_t a5) {
// 0x409440
g10 = 50;
g62 = 0x157aa00;
g63 = 0;
return 0;
}
// Address range: 0x4096c0 - 0x40979f
int32_t function_4096c0(int32_t a1, int32_t a2, int32_t a3) {
int32_t v1 = g2; // bp-4
g2 = &v1;
int32_t result = g4; // 0x4096c3
g62 = 0x157aa00;
g63 = 0;
int32_t v2 = g79; // 0x40972d
g4 = v2;
((int32_t (*)(int32_t))v2)(result);
g62 = 0x157aa00;
g63 = 0;
return result;
}
// Address range: 0x4097a0 - 0x40999f
void function_4097a0(int32_t * a1, int32_t a2) {
int32_t v1;
g2 = &v1;
int32_t v2 = g4; // 0x4097a9
g62 = 0x157aa00;
g63 = 0;
int32_t v3;
g1 = &v3;
int32_t v4 = g76; // 0x4098ce
g6 = v4;
((int32_t (*)(int32_t, int32_t, int32_t, int32_t, int32_t))v4)(0, 0, v2, 0, 0);
g62 = 0x157aa00;
g63 = 0;
g5 = 0;
g7 = 0;
g3 = v2;
}
// Address range: 0x4099a0 - 0x40a65f
int32_t function_4099a0(int32_t * a1) {
g62 = 0x157aa00;
g63 = 0;
_strlen("89$498$49$8");
function_4013f0(&g26, (int32_t *)12, (int32_t *)g5);
g62 = 0x157aa00;
g63 = 0;
g62 = 0x157aa00;
g63 = 0;
int32_t v1 = g2; // 0x409caf
*(int32_t *)(v1 -
= *(int32_t *)(*(int32_t *)(v1 - 16) + 12);
g62 = 0x157aa00;
g63 = 0;
int32_t v2 = g2; // 0x409d1a
*(int32_t *)(v2 - 24) = *(int32_t *)(*(int32_t *)(v2 -
+ 2
;
g62 = 0x157aa00;
g63 = 0;
int32_t v3 = g2; // 0x409d83
*(int32_t *)(v3 - 4) = *(int32_t *)(v3 - 24);
int32_t v4 = g2; // 0x409d8f
// branch -> 0x409d89
int32_t result; // 0x40a535
int32_t v5; // 0x40a25b
int32_t v6; // 0x40a340
int32_t v7; // 0x40a3cb
int32_t v8; // 0x40a4a6
int32_t v9; // 0x40a523
int32_t v10;
int32_t v11; // 0x40a64d
int32_t v12; // 0x40a4a6
int32_t v13; // 0x40a523
int32_t v14; // 0x40a259
int32_t v15; // 0x40a33e
int32_t v16; // 0x40a3c9
while (true) {
int32_t * v17 = (int32_t *)(v4 - 12); // 0x409d89_0
*v17 = *v17 + 1;
g62 = 0x157aa00;
g63 = 0;
int32_t v18 = g2; // 0x409dee
*(int32_t *)(v18 - 20) = *(int32_t *)(*(int32_t *)(v18 - 4) +
;
g62 = 0x157aa00;
g63 = 0;
int32_t v19 = g2; // 0x409e32
*(int32_t *)(v19 - 2
= *(int32_t *)(*(int32_t *)(v19 - 4) + 24);
g62 = 0x157aa00;
g63 = 0;
int32_t v20 = g2; // 0x409f31
*(int32_t *)(v20 - 32) = *(int32_t *)(v20 - 20);
g62 = 0x157aa00;
g63 = 0;
*(int32_t *)(g8 - 4) = 0x409fa5;
int32_t v21 = function_402d10(a1, &v10, NULL, NULL); // 0x409fa0
g62 = 0x157aa00;
g63 = 0;
if (v21 != 0) {
// 0x409fad
*(int32_t *)(g8 - 4) = 0x40a01e;
g66 = function_402d10(a1, &v10, NULL, NULL);
g62 = 0x157aa00;
g63 = 0;
// branch -> 0x40a259
// 0x40a259
v14 = g8;
*(int32_t *)(v14 - 4) = 12;
v5 = v14 - 8;
*(int32_t *)v5 = 0x41c0a4;
g4 = 0x41c0f4;
*(int32_t *)(v14 - 12) = 0x40a26a;
function_4027c0(a1);
*(int32_t *)(v5 - 4) = 0x40a276;
function_4013f0(a1, &v10, NULL);
g62 = 0x157aa00;
g63 = 0;
v15 = g8;
*(int32_t *)(v15 - 4) = 12;
v6 = v15 - 8;
*(int32_t *)v6 = 0x41c0c4;
g4 = 0x41c0f4;
*(int32_t *)(v15 - 12) = 0x40a34f;
function_4027c0(a1);
*(int32_t *)(v6 - 4) = 0x40a35b;
function_4013f0(a1, &v10, NULL);
g62 = 0x157aa00;
g63 = 0;
v16 = g8;
*(int32_t *)(v16 - 4) = 5;
v7 = v16 - 8;
*(int32_t *)v7 = 0x41c0b4;
g4 = 0x41c0f4;
*(int32_t *)(v16 - 12) = 0x40a3da;
function_4027c0(a1);
*(int32_t *)(v7 - 4) = 0x40a3e6;
function_4013f0(a1, &v10, NULL);
g62 = 0x157aa00;
g63 = 0;
v12 = g8;
v8 = v12 - 4;
*(int32_t *)v8 = 0x41c0a4;
g8 = v8;
*(int32_t *)(v12 -
= 0x40a4b1;
((int32_t (*)())g66)();
*(int32_t *)(g8 - 4) = 0x40a4bd;
g79 = function_402d10(a1, &v10, NULL, NULL);
g62 = 0x157aa00;
g63 = 0;
v13 = g8;
v9 = v13 - 4;
*(int32_t *)v9 = 0x41c0a4;
g8 = v9;
*(int32_t *)(v13 -
= 0x40a52e;
((int32_t (*)())g66)();
*(int32_t *)(g8 - 4) = 0x40a53a;
result = function_402d10(a1, &v10, NULL, NULL);
g76 = result;
g62 = 0x157aa00;
g63 = 0;
v11 = g8;
g5 = *(int32_t *)v11;
g7 = *(int32_t *)(v11 + 4);
g3 = *(int32_t *)(v11 +
;
g8 = g2 + 8;
return result;
}
int32_t * v22 = (int32_t *)(g2 - 4); // 0x40a1e6_0
*v22 = *(int32_t *)*v22;
g62 = 0x157aa00;
g63 = 0;
int32_t v23 = g2; // 0x40a24d
if (*(int32_t *)(v23 - 24) == *(int32_t *)(v23 - 4)) {
// break -> 0x40a259
break;
}
v4 = v23;
// continue -> 0x409d89
}
// 0x40a259
v14 = g8;
*(int32_t *)(v14 - 4) = 12;
v5 = v14 - 8;
*(int32_t *)v5 = 0x41c0a4;
g4 = 0x41c0f4;
*(int32_t *)(v14 - 12) = 0x40a26a;
function_4027c0(a1);
*(int32_t *)(v5 - 4) = 0x40a276;
function_4013f0(a1, &v10, NULL);
g62 = 0x157aa00;
g63 = 0;
v15 = g8;
*(int32_t *)(v15 - 4) = 12;
v6 = v15 - 8;
*(int32_t *)v6 = 0x41c0c4;
g4 = 0x41c0f4;
*(int32_t *)(v15 - 12) = 0x40a34f;
function_4027c0(a1);
*(int32_t *)(v6 - 4) = 0x40a35b;
function_4013f0(a1, &v10, NULL);
g62 = 0x157aa00;
g63 = 0;
v16 = g8;
*(int32_t *)(v16 - 4) = 5;
v7 = v16 - 8;
*(int32_t *)v7 = 0x41c0b4;
g4 = 0x41c0f4;
*(int32_t *)(v16 - 12) = 0x40a3da;
function_4027c0(a1);
*(int32_t *)(v7 - 4) = 0x40a3e6;
function_4013f0(a1, &v10, NULL);
g62 = 0x157aa00;
g63 = 0;
v12 = g8;
v8 = v12 - 4;
*(int32_t *)v8 = 0x41c0a4;
g8 = v8;
*(int32_t *)(v12 -
= 0x40a4b1;
((int32_t (*)())g66)();
*(int32_t *)(g8 - 4) = 0x40a4bd;
g79 = function_402d10(a1, &v10, NULL, NULL);
g62 = 0x157aa00;
g63 = 0;
v13 = g8;
v9 = v13 - 4;
*(int32_t *)v9 = 0x41c0a4;
g8 = v9;
*(int32_t *)(v13 -
= 0x40a52e;
((int32_t (*)())g66)();
*(int32_t *)(g8 - 4) = 0x40a53a;
result = function_402d10(a1, &v10, NULL, NULL);
g76 = result;
g62 = 0x157aa00;
g63 = 0;
v11 = g8;
g5 = *(int32_t *)v11;
g7 = *(int32_t *)(v11 + 4);
g3 = *(int32_t *)(v11 +
;
g8 = g2 + 8;
return result;
}
// Address range: 0x40a660 - 0x40a66f
int32_t function_40a660(void) {
// 0x40a660
return g10;
}
// Address range: 0x40a6d5 - 0x40a74f
int32_t function_40a6d5(void) {
// 0x40a6d5
g36 = 0x40b83c;
g37 = 0x40af32;
g38 = 0x40aee6;
g39 = 0x40af1f;
g40 = 0x40ae88;
g41 = 0x40b83c;
g42 = 0x40b7b4;
g43 = 0x40aea4;
g44 = 0x40ae06;
g45 = 0x40ad92;
return 0x40b83c;
}
// Address range: 0x40a750 - 0x40a754
int32_t function_40a750(void) {
// 0x40a750
return 0x41515a;
}
// Address range: 0x40a755 - 0x40a759
void function_40a755(void) {
// 0x40a755
__ctrandisp1();
}
// Address range: 0x40a75a - 0x40aadf
void function_40a75a(void) {
// 0x40a75a
function_40a755();
}
// Address range: 0x40ad01 - 0x40b9af
int32_t function_40ad01(void) {
// 0x40ad01
___security_init_cookie();
_qm__qm__qm_();
return g1;
}
// Address range: 0x40bc29 - 0x40cbcf
int32_t function_40bc29(void) {
// 0x40bc29
g95 = unknown_1b15c();
return 0;
}
// Address range: 0x40cf0e - 0x40cf1a
// From class: .?AVexception@std@@
// Type: virtual member function
int32_t function_40cf0e(int32_t a1) {
int32_t v1 = *(int32_t *)(g4 + 4); // 0x40cf0e
return v1 == 0 ? (int32_t)"Unknown exception" : v1;
}
// Address range: 0x40cfae - 0x40d014
// From class: .?AVexception@std@@
// Type: constructor
void function_40cfae(int32_t a1) {
// 0x40cfae
*(int32_t *)g4 = (int32_t)&vtable_418c14;
_qm__Tidy_exception_std__AAEXXZ();
}
// Address range: 0x40d20f - 0x40d21d
int32_t function_40d20f(int32_t result, int32_t a2) {
// 0x40d20f
g81 = result;
return result;
}
// Address range: 0x40d2d4 - 0x40d2e1
int32_t function_40d2d4(void) {
// 0x40d2d4
unknown_1b1a6();
return 0;
}
// Address range: 0x40d325 - 0x40d32d
int32_t function_40d325(void) {
// 0x40d325
return unknown_4107f4();
}
// Address range: 0x40d32e - 0x40d336
int32_t function_40d32e(void) {
// 0x40d32e
__unlock();
return 8;
}
// Address range: 0x40d385 - 0x40d38d
int32_t function_40d385(int32_t a1, int32_t a2, int32_t a3) {
int32_t v1 = g1; // 0x40d385
g1 = v1 + 59 & 255 | v1 & -256;
unknown_40d395();
return unknown_40d377();
}
// Address range: 0x40d591 - 0x40d59f
void function_40d591(void) {
// 0x40d591
_qm__qm__qm_();
}
// Address range: 0x40d5a0 - 0x40d5ae
void function_40d5a0(void) {
// 0x40d5a0
_qm__qm__qm_();
}
// Address range: 0x40dfdd - 0x40dfe5
int32_t function_40dfdd(void) {
// 0x40dfdd
return unknown_1b14c();
}
// Address range: 0x40dfe6 - 0x40dfee
int32_t function_40dfe6(void) {
// 0x40dfe6
return unknown_1b2c2();
}
// Address range: 0x40e45c - 0x40e6ff
int32_t function_40e45c(int32_t a1, int32_t a2, int32_t a3, int32_t a4, int32_t a5) {
// 0x40e45c
*(char *)(g1 + 65) = (char)g6;
char * v1 = (char *)g3; // 0x40e45f_0
*v1 = (char)(g6 / 256 + (int32_t)*v1);
g2 = *(int32_t *)g2;
g82 = g1;
return ((int32_t)(g1 == 0) | g4 & -256) ^ 1;
}
// Address range: 0x40f147 - 0x40f149
int32_t function_40f147(void) {
// 0x40f147
return unknown_40f12d();
}
// Address range: 0x40f14a - 0x40f47c
int32_t function_40f14a(int32_t result, int32_t a2) {
// 0x40f14a
g83 = result;
return result;
}
// Address range: 0x40f47d - 0x40f5ff
int32_t function_40f47d(int32_t a1, int32_t a2) {
// 0x40f47d
if (g92 != 0) {
// 0x40f496
__tolower_l();
// branch -> 0x40f4a2
// 0x40f4a2
int32_t result; // 0x40f4a3_11
return result;
}
int32_t result2 = *(int32_t *)(g2 +
; // 0x40f486
if (result2 <= 90) {
// 0x40f491
return result2 + 32;
}
// 0x40f4a2
return result2;
}
// Address range: 0x40fa02 - 0x40fa14
int32_t function_40fa02(void) {
// 0x40fa02
__getptd_noexit();
if (g1 == 0) {
// 0x40fa0b
return 0x41cbb8;
}
// 0x40fa11
return g1 + 8;
}
// Address range: 0x40fc09 - 0x40fd7f
void function_40fc09(int32_t a1) {
// 0x40fc09
if (g4 == g46) {
// 0x40fc11
return;
}
// 0x40fc13
___report_gsfailure();
}
// Address range: 0x40fd9f - 0x40fda7
int32_t function_40fd9f(void) {
// 0x40fd9f
__amsg_exit();
return 2;
}
// Address range: 0x40ff46 - 0x4104df
int32_t function_40ff46(void) {
// 0x40ff46
g94 = unknown_1b15c();
return 0;
}
// Address range: 0x4107f5 - 0x410826
int32_t function_4107f5(int32_t a1, int32_t a2) {
((int32_t (*)())*(int32_t *)(g2 - 117))();
int32_t v1 = *(int32_t *)(g2 +
; // 0x4107f9
g1 = v1;
int32_t * v2 = (int32_t *)g7;
int32_t v3 = (int32_t)&v2; // 0x4107fc_1
g8 = v3;
if (*(int32_t *)(8 * v1 + 0x41cc00) == 0) {
// 0x410809
__mtinitlocknum();
g8 = v3;
if (g1 == 0) {
// 0x410814
__amsg_exit();
g8 = v3;
// branch -> 0x41081c
}
}
// 0x41081c
return unknown_1b47e();
}
// Address range: 0x410860 - 0x410870
int32_t function_410860(void) {
int32_t result = unknown_1b14c(); // 0x410865
g84 = result;
return result;
}
// Address range: 0x4108c6 - 0x4108d2
int32_t function_4108c6(void) {
// 0x4108c6
return unknown_1b178();
}
// Address range: 0x410a76 - 0x410a84
int32_t function_410a76(int32_t result, int32_t a2) {
// 0x410a76
g85 = result;
return result;
}
// Address range: 0x410a85 - 0x410b2f
int32_t function_410a85(int32_t result, int32_t a2) {
// 0x410a85
g86 = result;
return result;
}
// Address range: 0x410bed - 0x410fcf
int32_t function_410bed(int32_t a1, int32_t a2, int32_t a3, int32_t a4) {
((int32_t (*)())*(int32_t *)(g2 - 117))();
int32_t v1 = g2; // 0x410bf9
*(int32_t *)(v1 - 4) = v1 ^ g46;
int32_t v2 = g2; // 0x410bfe
int32_t v3 = g3; // 0x410c01
*(int32_t *)(v2 - 32) = *(int32_t *)(v2 +
;
int32_t v4 = g2; // 0x410c05
int32_t v5 = *(int32_t *)(v4 + 12); // 0x410c05
g1 = v5;
*(int32_t *)(v4 - 2
= v5;
int32_t v6 = function_40dfdd(); // 0x410c0d
*(int32_t *)(g2 - 20) = 0;
*(int32_t *)(g2 - 24) = v6;
int32_t * v7; // 0x410cc4_2
int32_t * v8; // 0x410cf8_0
int32_t * v9; // 0x410d12_0
int32_t v10; // 0x410cba
int32_t v11; // 0x410cc4
int32_t * v12;
int32_t * v13; // 0x410d57_23
int32_t * v14; // 0x410d57_24
int32_t * v15;
int32_t * v16;
int32_t * v17;
int32_t v18;
int32_t * v19;
int32_t v20; // 0x410cc8
int32_t v21; // 0x410d56
int32_t v22; // 0x410c9f
int32_t v23; // 0x410cf8
int32_t v24; // 0x410d12
int32_t v25; // 0x410ca4
int32_t v26; // 0x410cd6
int32_t v27; // 0x410ce9
int32_t v28; // 0x410cfd
int32_t v29; // 0x410d37
int32_t v30; // 0x410d49
int32_t v31; // 0x410cd6
int32_t v32; // 0x410cdc
int32_t v33; // 0x410ca4
int32_t v34; // 0x410d23
int32_t v35; // 0x410d37
int32_t v36; // 0x410d3a
int32_t v37; // 0x410d40
if (g87 == 0) {
int32_t v38 = unknown_1b496(); // 0x410c27
g3 = v38;
if (v38 == 0) {
// 0x410d49
v30 = g2;
g4 = *(int32_t *)(v30 - 4) ^ v30;
function_40fc09(v3);
v21 = g2;
g2 = *(int32_t *)v21;
g8 = v21 + 8;
return (int32_t)NULL;
}
// 0x410c37
g5 = 0x1b1c4;
if (unknown_1b1c4() == 0) {
// 0x410d49
v30 = g2;
g4 = *(int32_t *)(v30 - 4) ^ v30;
function_40fc09(v3);
v21 = g2;
g2 = *(int32_t *)v21;
g8 = v21 + 8;
return (int32_t)NULL;
}
// 0x410c4d
g87 = unknown_1b14c();
unknown_1b1c4();
g88 = unknown_1b14c();
unknown_1b1c4();
g89 = unknown_1b14c();
unknown_1b1c4();
unknown_1b1c4();
int32_t v39 = unknown_1b14c(); // 0x410c84
g91 = v39;
if (v39 != 0) {
// 0x410c8f
v15 = (int32_t *)"GetProcessWindowStation";
v16 = (int32_t *)g3;
v17 = (int32_t *)unknown_1b1c4();
g90 = unknown_1b14c();
// branch -> 0x410c9f
}
// 0x410c9f
v22 = g90;
g1 = v22;
v25 = g2;
v33 = *(int32_t *)(v25 - 24);
g4 = v33;
g7 = 0x1b178;
if (v22 == v33 || g91 == v33) {
// 0x410cf8
v23 = g88;
v8 = (int32_t *)v23;
v14 = v8;
if (v23 != *(int32_t *)(v25 - 24)) {
// 0x410d02
v15 = v8;
g8 = (int32_t)&v15;
((int32_t (*)())g7)();
if (v23 != 0) {
// 0x410d09
((int32_t (*)())v23)();
*(int32_t *)(g2 - 20) = v23;
v24 = g89;
v9 = (int32_t *)v24;
if (v24 != *(int32_t *)(g2 - 24)) {
// 0x410d1c
v16 = v9;
g8 = (int32_t)&v16;
((int32_t (*)())g7)();
if (v24 != 0) {
// 0x410d23
v34 = *(int32_t *)(g2 - 20);
v17 = (int32_t *)v34;
g8 = (int32_t)&v17;
((int32_t (*)(int32_t))v24)(v34);
*(int32_t *)(g2 - 20) = v24;
v14 = v9;
// branch -> 0x410d2b
} else {
v14 = v9;
}
} else {
v14 = v9;
}
} else {
v14 = v8;
}
}
// 0x410d2b
v15 = (int32_t *)g87;
g8 = (int32_t)&v15;
((int32_t (*)())g7)();
if (v14 != NULL) {
// 0x410d37
v29 = g2;
v35 = *(int32_t *)(v29 + 16);
v16 = (int32_t *)v35;
v36 = *(int32_t *)(v29 - 2
;
v17 = (int32_t *)v36;
v37 = *(int32_t *)(v29 - 20);
v18 = v37;
g8 = &v18;
((int32_t (*)(int32_t, int32_t, int32_t, int32_t))v14)(v37, *(int32_t *)(v29 - 32), v36, v35);
v13 = v14;
// branch -> 0x410d49
} else {
v13 = NULL;
}
// 0x410d49
v30 = g2;
g4 = *(int32_t *)(v30 - 4) ^ v30;
function_40fc09(v3);
v21 = g2;
g2 = *(int32_t *)v21;
g8 = v21 + 8;
return (int32_t)v13;
}
// 0x410cb9
v15 = (int32_t *)v22;
v10 = unknown_1b178();
v16 = (int32_t *)g91;
g8 = (int32_t)&v16;
g5 = v10;
v11 = unknown_1b178();
v7 = (int32_t *)v11;
g3 = v11;
v20 = g5;
if (v11 == 0 || v20 == 0) {
// 0x410cb9
v28 = g2;
// branch -> 0x410cf8
} else {
// 0x410cd6
((int32_t (*)())v20)();
v26 = g2;
v31 = v26 - 36;
v17 = (int32_t *)v31;
v32 = v26 - 16;
g4 = v32;
v18 = v32;
v19 = v7;
g8 = (int32_t)&v19;
((int32_t (*)(int32_t, int32_t, int32_t, int32_t, int32_t))g3)(v11, 1, v32, 12, v31);
v27 = g2;
if (*(char *)(v27 -
== 1) {
// 0x410cef
v12 = (int32_t *)(v27 + 16);
*v12 = *v12 | 0x200000;
v14 = v7;
// branch -> 0x410d2b
// 0x410d2b
v15 = (int32_t *)g87;
g8 = (int32_t)&v15;
((int32_t (*)())g7)();
if (v14 != NULL) {
// 0x410d37
v29 = g2;
v35 = *(int32_t *)(v29 + 16);
v16 = (int32_t *)v35;
v36 = *(int32_t *)(v29 - 2
;
v17 = (int32_t *)v36;
v37 = *(int32_t *)(v29 - 20);
v18 = v37;
g8 = &v18;
((int32_t (*)(int32_t, int32_t, int32_t, int32_t))v14)(v37, *(int32_t *)(v29 - 32), v36, v35);
v13 = v14;
// branch -> 0x410d49
} else {
v13 = NULL;
}
// 0x410d49
v30 = g2;
g4 = *(int32_t *)(v30 - 4) ^ v30;
function_40fc09(v3);
v21 = g2;
g2 = *(int32_t *)v21;
g8 = v21 + 8;
return (int32_t)v13;
}
v28 = v27;
}
// 0x410cf8
v23 = g88;
v8 = (int32_t *)v23;
v14 = v8;
if (v23 != *(int32_t *)(v28 - 24)) {
// 0x410d02
v15 = v8;
g8 = (int32_t)&v15;
((int32_t (*)())g7)();
if (v23 != 0) {
// 0x410d09
((int32_t (*)())v23)();
*(int32_t *)(g2 - 20) = v23;
v24 = g89;
v9 = (int32_t *)v24;
if (v24 != *(int32_t *)(g2 - 24)) {
// 0x410d1c
v16 = v9;
g8 = (int32_t)&v16;
((int32_t (*)())g7)();
if (v24 != 0) {
// 0x410d23
v34 = *(int32_t *)(g2 - 20);
v17 = (int32_t *)v34;
g8 = (int32_t)&v17;
((int32_t (*)(int32_t))v24)(v34);
*(int32_t *)(g2 - 20) = v24;
v14 = v9;
// branch -> 0x410d2b
} else {
v14 = v9;
}
} else {
v14 = v9;
}
} else {
v14 = v8;
}
}
// 0x410d2b
v15 = (int32_t *)g87;
g8 = (int32_t)&v15;
((int32_t (*)())g7)();
if (v14 != NULL) {
// 0x410d37
v29 = g2;
v35 = *(int32_t *)(v29 + 16);
v16 = (int32_t *)v35;
v36 = *(int32_t *)(v29 - 2
;
v17 = (int32_t *)v36;
v37 = *(int32_t *)(v29 - 20);
v18 = v37;
g8 = &v18;
((int32_t (*)(int32_t, int32_t, int32_t, int32_t))v14)(v37, *(int32_t *)(v29 - 32), v36, v35);
v13 = v14;
// branch -> 0x410d49
} else {
v13 = NULL;
}
// 0x410d49
v30 = g2;
g4 = *(int32_t *)(v30 - 4) ^ v30;
function_40fc09(v3);
v21 = g2;
g2 = *(int32_t *)v21;
g8 = v21 + 8;
return (int32_t)v13;
}
// 0x410c9f
v22 = g90;
g1 = v22;
v25 = g2;
v33 = *(int32_t *)(v25 - 24);
g4 = v33;
g7 = 0x1b178;
if (v22 != v33 && g91 != v33) {
// 0x410cb9
v15 = (int32_t *)v22;
v10 = unknown_1b178();
v16 = (int32_t *)g91;
g8 = (int32_t)&v16;
g5 = v10;
v11 = unknown_1b178();
v7 = (int32_t *)v11;
g3 = v11;
v20 = g5;
if (v11 == 0 || v20 == 0) {
// 0x410cb9
v28 = g2;
// branch -> 0x410cf8
} else {
// 0x410cd6
((int32_t (*)())v20)();
v26 = g2;
v31 = v26 - 36;
v17 = (int32_t *)v31;
v32 = v26 - 16;
g4 = v32;
v18 = v32;
v19 = v7;
g8 = (int32_t)&v19;
((int32_t (*)(int32_t, int32_t, int32_t, int32_t, int32_t))g3)(v11, 1, v32, 12, v31);
v27 = g2;
if (*(char *)(v27 -
== 1) {
// 0x410cef
v12 = (int32_t *)(v27 + 16);
*v12 = *v12 | 0x200000;
v14 = v7;
// branch -> 0x410d2b
// 0x410d2b
v15 = (int32_t *)g87;
g8 = (int32_t)&v15;
((int32_t (*)())g7)();
if (v14 != NULL) {
// 0x410d37
v29 = g2;
v35 = *(int32_t *)(v29 + 16);
v16 = (int32_t *)v35;
v36 = *(int32_t *)(v29 - 2
;
v17 = (int32_t *)v36;
v37 = *(int32_t *)(v29 - 20);
v18 = v37;
g8 = &v18;
((int32_t (*)(int32_t, int32_t, int32_t, int32_t))v14)(v37, *(int32_t *)(v29 - 32), v36, v35);
v13 = v14;
// branch -> 0x410d49
} else {
v13 = NULL;
}
// 0x410d49
v30 = g2;
g4 = *(int32_t *)(v30 - 4) ^ v30;
function_40fc09(v3);
v21 = g2;
g2 = *(int32_t *)v21;
g8 = v21 + 8;
return (int32_t)v13;
}
v28 = v27;
}
// 0x410cf8
v23 = g88;
v8 = (int32_t *)v23;
v14 = v8;
if (v23 != *(int32_t *)(v28 - 24)) {
// 0x410d02
v15 = v8;
g8 = (int32_t)&v15;
((int32_t (*)())g7)();
if (v23 != 0) {
// 0x410d09
((int32_t (*)())v23)();
*(int32_t *)(g2 - 20) = v23;
v24 = g89;
v9 = (int32_t *)v24;
if (v24 != *(int32_t *)(g2 - 24)) {
// 0x410d1c
v16 = v9;
g8 = (int32_t)&v16;
((int32_t (*)())g7)();
if (v24 != 0) {
// 0x410d23
v34 = *(int32_t *)(g2 - 20);
v17 = (int32_t *)v34;
g8 = (int32_t)&v17;
((int32_t (*)(int32_t))v24)(v34);
*(int32_t *)(g2 - 20) = v24;
v14 = v9;
// branch -> 0x410d2b
} else {
v14 = v9;
}
} else {
v14 = v9;
}
} else {
v14 = v8;
}
}
// 0x410d2b
v15 = (int32_t *)g87;
g8 = (int32_t)&v15;
((int32_t (*)())g7)();
if (v14 != NULL) {
// 0x410d37
v29 = g2;
v35 = *(int32_t *)(v29 + 16);
v16 = (int32_t *)v35;
v36 = *(int32_t *)(v29 - 2
;
v17 = (int32_t *)v36;
v37 = *(int32_t *)(v29 - 20);
v18 = v37;
g8 = &v18;
((int32_t (*)(int32_t, int32_t, int32_t, int32_t))v14)(v37, *(int32_t *)(v29 - 32), v36, v35);
v13 = v14;
// branch -> 0x410d49
} else {
v13 = NULL;
}
// 0x410d49
v30 = g2;
g4 = *(int32_t *)(v30 - 4) ^ v30;
function_40fc09(v3);
v21 = g2;
g2 = *(int32_t *)v21;
g8 = v21 + 8;
return (int32_t)v13;
}
// 0x410cf8
v23 = g88;
v8 = (int32_t *)v23;
v14 = v8;
if (v23 == *(int32_t *)(v25 - 24)) {
// 0x410d2b
v15 = (int32_t *)g87;
g8 = (int32_t)&v15;
((int32_t (*)())g7)();
if (v14 != NULL) {
// 0x410d37
v29 = g2;
v35 = *(int32_t *)(v29 + 16);
v16 = (int32_t *)v35;
v36 = *(int32_t *)(v29 - 2
;
v17 = (int32_t *)v36;
v37 = *(int32_t *)(v29 - 20);
v18 = v37;
g8 = &v18;
((int32_t (*)(int32_t, int32_t, int32_t, int32_t))v14)(v37, *(int32_t *)(v29 - 32), v36, v35);
v13 = v14;
// branch -> 0x410d49
} else {
v13 = NULL;
}
// 0x410d49
v30 = g2;
g4 = *(int32_t *)(v30 - 4) ^ v30;
function_40fc09(v3);
v21 = g2;
g2 = *(int32_t *)v21;
g8 = v21 + 8;
return (int32_t)v13;
}
// 0x410d02
v15 = v8;
g8 = (int32_t)&v15;
((int32_t (*)())g7)();
if (v23 == 0) {
v14 = v8;
// 0x410d2b
v15 = (int32_t *)g87;
g8 = (int32_t)&v15;
((int32_t (*)())g7)();
if (v14 != NULL) {
// 0x410d37
v29 = g2;
v35 = *(int32_t *)(v29 + 16);
v16 = (int32_t *)v35;
v36 = *(int32_t *)(v29 - 2
;
v17 = (int32_t *)v36;
v37 = *(int32_t *)(v29 - 20);
v18 = v37;
g8 = &v18;
((int32_t (*)(int32_t, int32_t, int32_t, int32_t))v14)(v37, *(int32_t *)(v29 - 32), v36, v35);
v13 = v14;
// branch -> 0x410d49
} else {
v13 = NULL;
}
// 0x410d49
v30 = g2;
g4 = *(int32_t *)(v30 - 4) ^ v30;
function_40fc09(v3);
v21 = g2;
g2 = *(int32_t *)v21;
g8 = v21 + 8;
return (int32_t)v13;
}
// 0x410d09
((int32_t (*)())v23)();
*(int32_t *)(g2 - 20) = v23;
v24 = g89;
v9 = (int32_t *)v24;
if (v24 == *(int32_t *)(g2 - 24)) {
v14 = v9;
// 0x410d2b
v15 = (int32_t *)g87;
g8 = (int32_t)&v15;
((int32_t (*)())g7)();
if (v14 != NULL) {
// 0x410d37
v29 = g2;
v35 = *(int32_t *)(v29 + 16);
v16 = (int32_t *)v35;
v36 = *(int32_t *)(v29 - 2
;
v17 = (int32_t *)v36;
v37 = *(int32_t *)(v29 - 20);
v18 = v37;
g8 = &v18;
((int32_t (*)(int32_t, int32_t, int32_t, int32_t))v14)(v37, *(int32_t *)(v29 - 32), v36, v35);
v13 = v14;
// branch -> 0x410d49
} else {
v13 = NULL;
}
// 0x410d49
v30 = g2;
g4 = *(int32_t *)(v30 - 4) ^ v30;
function_40fc09(v3);
v21 = g2;
g2 = *(int32_t *)v21;
g8 = v21 + 8;
return (int32_t)v13;
}
// 0x410d1c
v16 = v9;
g8 = (int32_t)&v16;
((int32_t (*)())g7)();
if (v24 != 0) {
// 0x410d23
v34 = *(int32_t *)(g2 - 20);
v17 = (int32_t *)v34;
g8 = (int32_t)&v17;
((int32_t (*)(int32_t))v24)(v34);
*(int32_t *)(g2 - 20) = v24;
v14 = v9;
// branch -> 0x410d2b
} else {
v14 = v9;
}
// 0x410d2b
v15 = (int32_t *)g87;
g8 = (int32_t)&v15;
((int32_t (*)())g7)();
if (v14 != NULL) {
// 0x410d37
v29 = g2;
v35 = *(int32_t *)(v29 + 16);
v16 = (int32_t *)v35;
v36 = *(int32_t *)(v29 - 2
;
v17 = (int32_t *)v36;
v37 = *(int32_t *)(v29 - 20);
v18 = v37;
g8 = &v18;
((int32_t (*)(int32_t, int32_t, int32_t, int32_t))v14)(v37, *(int32_t *)(v29 - 32), v36, v35);
v13 = v14;
// branch -> 0x410d49
} else {
v13 = NULL;
}
// 0x410d49
v30 = g2;
g4 = *(int32_t *)(v30 - 4) ^ v30;
function_40fc09(v3);
v21 = g2;
g2 = *(int32_t *)v21;
g8 = v21 + 8;
return (int32_t)v13;
}
// Address range: 0x411123 - 0x41197b
void function_411123(int32_t a1) {
// 0x411123
((int32_t (*)())*(int32_t *)(g2 - 117))();
g93 = 0;
}
// Address range: 0x4140f5 - 0x414c01
int32_t function_4140f5(void) {
// 0x4140f5
return 0;
}
// Address range: 0x414c02 - 0x414dff
int32_t function_414c02(void) {
// 0x414c02
return unknown_1b4a6();
}
// --------------- Statically Linked Functions ----------------
// void ___report_gsfailure(void);
// void ___security_init_cookie(void);
// __int64 __allmul(__int64 a, __int64 b);
// void __amsg_exit(void);
// void __ctrandisp1(void);
// void __getptd_noexit(void);
// void __mtinitlocknum(void);
// void __tolower_l(void);
// void __unlock(void);
// void _qm__qm_2_YAPAXI_Z(void);
// void _qm__qm__qm_(void);
// void _qm__Tidy_exception_std__AAEXXZ(void);
// unsigned int _strlen(char *__s);
// double pow(double x, double y);
// --------------- Instruction-Idiom Functions ----------------
// int32_t llvm_cttz_i32(int32_t a1, bool a2);
// --------------------- Meta-Information ---------------------
// Detected compiler/packer: microsoft linker (10.0)
// Detected language: C++
// Detected functions: 69
// Decompiler release: v2.1.2 (2016-01-27)
// Decompilation date: 2016-02-10 12:30:07
Скрыть