Skip to content

Instantly share code, notes, and snippets.

@purpl3F0x
Last active January 18, 2019 10:32
Show Gist options
  • Save purpl3F0x/76677712d947fedd485301915d2a679b to your computer and use it in GitHub Desktop.
Save purpl3F0x/76677712d947fedd485301915d2a679b to your computer and use it in GitHub Desktop.
Galax DeviceDll.dll decompiled c code
void** g1000d050 = reinterpret_cast<void**>(78);
int32_t HidD_GetPreparsedData = 0xc838;
int32_t HidP_GetCaps = 0xc7d8;
int32_t HidD_FreePreparsedData = 0xc7fa;
void** fun_10001cc4(void** ecx, void** a2, ...);
void** fun_10001000(void** a1) {
void* ebp2;
void** eax3;
uint32_t v4;
void* v5;
signed char al6;
void* v7;
int32_t v8;
int32_t eax9;
void** v10;
signed char al11;
void** ecx12;
void** eax13;
void** ecx14;
void** eax15;
ebp2 = reinterpret_cast<void*>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 4);
eax3 = g1000d050;
v4 = reinterpret_cast<unsigned char>(eax3) ^ reinterpret_cast<uint32_t>(ebp2);
v5 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(ebp2) - 80);
al6 = reinterpret_cast<signed char>(HidD_GetPreparsedData(a1, v5));
if (!al6 || ((v7 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(ebp2) - 76), eax9 = reinterpret_cast<int32_t>(HidP_GetCaps(v8, v7, a1, v5)), eax9 != 0x110000) || (al11 = reinterpret_cast<signed char>(HidD_FreePreparsedData(v10, v8, v7, a1, v5)), al11 == 0))) {
ecx12 = reinterpret_cast<void**>(v4 ^ reinterpret_cast<uint32_t>(ebp2));
eax13 = fun_10001cc4(ecx12, a1, ecx12, a1);
return eax13;
} else {
ecx14 = reinterpret_cast<void**>(v4 ^ reinterpret_cast<uint32_t>(ebp2));
eax15 = fun_10001cc4(ecx14, v10, ecx14, v10);
return eax15;
}
}
void** fun_10002416(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15, void** a16, void** a17, void** a18, void** a19);
void** fun_10006903(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15, void** a16, void** a17, void** a18, void** a19, void** a20, void** a21, void** a22, void** a23, void** a24, void** a25, void** a26) {
void** eax27;
void** ebp28;
eax27 = a2;
if (eax27 && (eax27 = eax27 - 8, reinterpret_cast<int1_t>(*reinterpret_cast<void***>(eax27) == 0xdddd))) {
eax27 = fun_10002416(ecx, eax27, ebp28, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16);
}
return eax27;
}
int32_t g1000df50 = 0;
void** g1000df4c = reinterpret_cast<void**>(0);
int32_t g1000df48 = 0;
int32_t g1000df44 = 0;
int32_t g1000df40 = 0;
int32_t g1000df3c = 0;
int16_t g1000df68 = 0;
int16_t g1000df5c = 0;
int16_t g1000df38 = 0;
int16_t g1000df34 = 0;
int16_t g1000df30 = 0;
int16_t g1000df2c = 0;
uint32_t g1000df60 = 0;
int32_t g1000df54 = 0;
int32_t g1000df58 = 0;
void* g1000df64 = reinterpret_cast<void*>(0);
int32_t g1000dea0 = 0;
int32_t g1000de54 = 0;
int32_t g1000de48 = 0;
int32_t g1000de4c = 0;
int32_t g1000d054 = 0x44bf19b1;
int32_t IsDebuggerPresent = 0xc9d0;
int32_t g1000de98 = 0;
void fun_10004ccf(void** ecx);
int32_t SetUnhandledExceptionFilter = 0xc9b2;
int32_t UnhandledExceptionFilter = 0xc996;
int32_t GetCurrentProcess = 0xc982;
int32_t TerminateProcess = 0xc96e;
void** fun_10001cc4(void** ecx, void** a2, ...) {
uint32_t eflags3;
int1_t zf4;
void** eax5;
int32_t* esp6;
void* esp7;
int32_t eax8;
int32_t edx9;
int32_t ebx10;
int32_t esi11;
int32_t edi12;
int16_t ss13;
int16_t cs14;
int16_t ds15;
int16_t es16;
int16_t fs17;
int16_t gs18;
int32_t ebp19;
int32_t eax20;
void** eax21;
int32_t eax22;
int32_t eax23;
int1_t zf24;
int32_t eax25;
void** eax26;
*reinterpret_cast<int1_t*>(reinterpret_cast<int32_t>(&eflags3) + 1) = 0;
zf4 = ecx == g1000d050;
if (zf4) {
return eax5;
}
esp6 = reinterpret_cast<int32_t*>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 4);
*reinterpret_cast<int1_t*>(&eflags3) = reinterpret_cast<uint32_t>(esp6) < 0x328;
esp7 = reinterpret_cast<void*>(esp6 - 0xca);
*reinterpret_cast<int1_t*>(&eflags3) = __intrinsic();
*reinterpret_cast<int1_t*>(&eflags3) = esp7 == 0;
*reinterpret_cast<int1_t*>(&eflags3) = reinterpret_cast<int32_t>(esp7) < reinterpret_cast<int32_t>(0);
*reinterpret_cast<int1_t*>(reinterpret_cast<int32_t>(&eflags3) + 1) = __intrinsic();
*reinterpret_cast<int1_t*>(&eflags3) = __intrinsic();
g1000df50 = eax8;
g1000df4c = ecx;
g1000df48 = edx9;
g1000df44 = ebx10;
g1000df40 = esi11;
g1000df3c = edi12;
g1000df68 = ss13;
g1000df5c = cs14;
g1000df38 = ds15;
g1000df34 = es16;
g1000df30 = fs17;
g1000df2c = gs18;
g1000df60 = eflags3 & 0xfcffff;
g1000df54 = ebp19;
g1000df58 = reinterpret_cast<int32_t>(__return_address());
g1000df64 = reinterpret_cast<void*>(esp6 + 2);
g1000dea0 = 0x10001;
eax20 = g1000df58;
g1000de54 = eax20;
g1000de48 = 0xc0000409;
g1000de4c = 1;
eax21 = g1000d050;
eax22 = g1000d054;
eax23 = reinterpret_cast<int32_t>(IsDebuggerPresent(eax21, eax22));
g1000de98 = eax23;
fun_10004ccf(ecx);
SetUnhandledExceptionFilter(1, 0, eax21, eax22);
UnhandledExceptionFilter(1, 0x1000a1b4, 0, eax21, eax22);
zf24 = g1000de98 == 0;
if (zf24)
goto addr_1000253a_5;
addr_10002542_6:
eax25 = reinterpret_cast<int32_t>(GetCurrentProcess(1, 0xc0000409, 0x1000a1b4, 0, eax21, eax22));
eax26 = reinterpret_cast<void**>(TerminateProcess(1, eax25, 0xc0000409, 0x1000a1b4, 0, eax21, eax22));
return eax26;
addr_1000253a_5:
fun_10004ccf(1);
goto addr_10002542_6;
}
void** fun_10004bb8(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15, void** a16, void** a17, void** a18, void** a19, void** a20);
int32_t fun_10004c5b(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7);
uint32_t g1000de40 = 0;
void fun_1000496a(void** ecx, void*** a2, int32_t a3);
int32_t g1000de34 = 0;
int32_t fun_10004ba1(void** ecx, void** a2, void** a3);
void fun_100092fb();
void** fun_10004a59(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8);
void fun_10004c83(void** ecx, void* a2, unsigned char* a3);
void** g1000e2e8;
int32_t HeapFree = 0xc962;
void** fun_10002896(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11);
int32_t GetLastError = 0xc8f6;
void** fun_10002854(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6);
void** fun_10001cae(void** a1, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12) {
void** v13;
void** v14;
void** ebp15;
void** ebp16;
void** ecx17;
void** v18;
void** v19;
void** v20;
void** v21;
void** eax22;
void** v23;
void** v24;
void** v25;
void** v26;
int32_t eax27;
int1_t zf28;
void** v29;
void** ecx30;
void** v31;
void** v32;
void** v33;
int32_t v34;
void** v35;
void** v36;
void** eax37;
void** v38;
void** v39;
void** eax40;
void** eax41;
void** eax42;
v13 = reinterpret_cast<void**>(__return_address());
v14 = ebp15;
ebp16 = reinterpret_cast<void**>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 4 + 4 - 4);
do {
eax22 = fun_10004bb8(ecx17, a1, v18, v19, v20, v21, v14, v13, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12);
if (eax22)
break;
eax27 = fun_10004c5b(a1, a1, v23, v24, v25, v26, v14);
ecx17 = a1;
} while (eax27);
goto addr_100023bc_5;
return eax22;
addr_100023bc_5:
zf28 = (*reinterpret_cast<unsigned char*>(&g1000de40) & 1) == 0;
if (zf28) {
g1000de40 = g1000de40 | 1;
fun_1000496a(0x1000de34, ebp16 + 0xfffffffc, 1);
g1000de34 = reinterpret_cast<int32_t>("R#");
fun_10004ba1(0x1000de34, fun_100092fb, v29);
}
ecx30 = ebp16 + 0xfffffff0;
fun_10004a59(ecx30, 0x1000de34, v31, v32, v33, "bad allocation", v14, v13);
fun_10004c83(ecx30, ebp16 + 0xfffffff0, 0x1000c36c);
if (v34 && (v35 = g1000e2e8, eax37 = reinterpret_cast<void**>(HeapFree(ecx30, v35, 0, v36)), !eax37)) {
eax40 = fun_10002896(ecx30, "R#", v35, 0, v36, ebp16, "R#", v38, v39, "bad allocation", v14);
eax41 = reinterpret_cast<void**>(GetLastError(ecx30));
eax42 = fun_10002854(ecx30, eax41, "R#", v35, 0, v36);
*reinterpret_cast<void***>(eax40) = eax42;
}
goto "R#";
}
void** fun_100029a9(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9);
void** fun_10001cd3(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11) {
void** ebp12;
void** eax13;
eax13 = fun_100029a9(ecx, a2, a3, a4, 0, reinterpret_cast<int32_t>(__zero_stack_offset()) - 4 + 20, ebp12, __return_address(), a2);
return eax13;
}
void** fun_10001e18(void** ecx, void** a2, void** a3, void** a4, void** a5);
void** fun_1000207f(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11) {
void** eax12;
eax12 = fun_10001e18(ecx, a2, a3, a4, 0);
return eax12;
}
int32_t g1000eaf8;
void** fun_1000924c(void** a1, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9);
void** fun_10002844(void** ecx);
void** fun_10009281(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12) {
int1_t zf13;
void** ebp14;
void** eax15;
void** edx16;
void** eax17;
zf13 = g1000eaf8 == 0;
if (!zf13) {
fun_1000924c(a2, 0xff, 0, ebp14, __return_address(), a2, a3, a4, a5);
eax15 = a2;
} else {
eax15 = a2;
if (eax15) {
edx16 = eax15;
if (*reinterpret_cast<void***>(eax15)) {
do {
if (reinterpret_cast<signed char>(*reinterpret_cast<void***>(edx16)) >= reinterpret_cast<signed char>(97) && reinterpret_cast<signed char>(*reinterpret_cast<void***>(edx16)) <= reinterpret_cast<signed char>(0x7a)) {
*reinterpret_cast<void***>(edx16) = *reinterpret_cast<void***>(edx16) - 32;
}
++edx16;
} while (*reinterpret_cast<void***>(edx16));
return eax15;
}
} else {
eax17 = fun_10002896(ecx, ebp14, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9);
*reinterpret_cast<void***>(eax17) = reinterpret_cast<void**>(22);
fun_10002844(ecx);
return 0;
}
}
return eax15;
}
void** fun_10001d00(void** a1, void** a2, void** a3, void** a4, void** a5) {
void** dl6;
void** edi7;
void** dh8;
uint32_t eax9;
uint32_t ebx10;
uint32_t eax11;
void** edx12;
uint32_t ebx13;
uint32_t ebx14;
uint32_t ecx15;
void* esi16;
void* eax17;
uint32_t eax18;
uint32_t eax19;
void** al20;
void** esi21;
void** ecx22;
dl6 = *reinterpret_cast<void***>(a2);
edi7 = a1;
if (!dl6) {
return edi7;
}
dh8 = *reinterpret_cast<void***>(a2 + 1);
if (dh8)
goto addr_10001d18_4;
eax9 = 0;
*reinterpret_cast<void***>(&eax9) = dl6;
ebx10 = eax9;
eax11 = eax9 << 8;
edx12 = a1;
if (reinterpret_cast<unsigned char>(edx12) & 3)
goto addr_10002a48_7;
addr_10002a5d_8:
ebx13 = ebx10 | eax11;
ebx14 = ebx13 << 16 | ebx13;
while (1) {
ecx15 = reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(edx12)) ^ ebx14;
esi16 = reinterpret_cast<void*>(*reinterpret_cast<void***>(edx12) + 0x7efefeff);
edx12 = edx12 + 4;
if ((ecx15 ^ 0xffffffff ^ 0x7efefeff + ecx15) & 0x81010100) {
eax17 = *reinterpret_cast<void**>(edx12 + 0xfffffffc);
if (*reinterpret_cast<signed char*>(&eax17) == *reinterpret_cast<signed char*>(&ebx14))
break;
if (!*reinterpret_cast<signed char*>(&eax17))
goto addr_10002aa4_12;
if (*reinterpret_cast<signed char*>(reinterpret_cast<int32_t>(&eax17) + 1) == *reinterpret_cast<signed char*>(&ebx14))
goto addr_10002ae0_14;
if (!*reinterpret_cast<signed char*>(reinterpret_cast<int32_t>(&eax17) + 1))
goto addr_10002aa4_12;
eax18 = reinterpret_cast<uint32_t>(eax17) >> 16;
if (*reinterpret_cast<signed char*>(&eax18) == *reinterpret_cast<signed char*>(&ebx14))
goto addr_10002ad9_17;
if (!*reinterpret_cast<signed char*>(&eax18))
goto addr_10002aa4_12;
if (*reinterpret_cast<signed char*>(reinterpret_cast<int32_t>(&eax18) + 1) == *reinterpret_cast<signed char*>(&ebx14))
goto addr_10002ad2_20;
if (!*reinterpret_cast<signed char*>(reinterpret_cast<int32_t>(&eax18) + 1))
goto addr_10002aa4_12;
} else {
eax19 = (reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(edx12)) ^ 0xffffffff ^ reinterpret_cast<uint32_t>(esi16)) & 0x81010100;
if (!eax19)
continue;
if (eax19 & 0x1010100)
goto addr_10002aa4_12;
if (!(reinterpret_cast<uint32_t>(esi16) & 0x80000000))
goto addr_10002aa4_12;
}
}
return edx12 + 0xfffffffc;
addr_10002aa4_12:
addr_10002aa6_27:
return 0;
addr_10002ae0_14:
return edx12 + 0xfffffffd;
addr_10002ad9_17:
return edx12 + 0xfffffffe;
addr_10002ad2_20:
return edx12 + 0xffffffff;
do {
addr_10002a48_7:
++edx12;
if (*reinterpret_cast<void***>(edx12) == *reinterpret_cast<void***>(&ebx10))
break;
if (!*reinterpret_cast<void***>(edx12))
goto addr_10002aa6_27;
} while (reinterpret_cast<unsigned char>(edx12) & 3);
goto addr_10002a5d_8;
return edx12 + 0xffffffff;
addr_10001d38_31:
return 0;
addr_10001d79_32:
return edi7 + 0xffffffff;
while (1) {
addr_10001d30_33:
if (al20 == dl6) {
do {
al20 = *reinterpret_cast<void***>(esi21);
++esi21;
if (al20 != dh8)
goto addr_10001d30_33;
edi7 = esi21 + 0xffffffff;
do {
if (!*reinterpret_cast<void***>(ecx22 + 2))
goto addr_10001d79_32;
esi21 = esi21 + 2;
if (*reinterpret_cast<void***>(esi21) != *reinterpret_cast<void***>(ecx22 + 2))
goto addr_10001d18_4;
if (!*reinterpret_cast<void***>(ecx22 + 3))
goto addr_10001d79_32;
ecx22 = ecx22 + 2;
} while (*reinterpret_cast<void***>(ecx22 + 3) == *reinterpret_cast<void***>(esi21 + 0xffffffff));
addr_10001d18_4:
ecx22 = a2;
esi21 = edi7 + 1;
} while (*reinterpret_cast<void***>(edi7) == dl6);
if (!*reinterpret_cast<void***>(edi7))
goto addr_10001d38_31;
} else {
if (!al20)
goto addr_10001d38_31;
}
al20 = *reinterpret_cast<void***>(esi21);
++esi21;
}
}
int32_t g1000eb00;
void** fun_10005bc0(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12) {
void** edx13;
void** ecx14;
void** eax15;
int1_t zf16;
void** edi17;
uint32_t ecx18;
void*** eax19;
void** ecx20;
uint32_t ecx21;
void** v22;
uint32_t eax23;
uint32_t ebx24;
void** v25;
uint32_t edx26;
uint32_t ebx27;
uint32_t edx28;
uint32_t eax29;
uint32_t eax30;
uint32_t edx31;
uint32_t eax32;
uint32_t edx33;
uint32_t eax34;
edx13 = a4;
ecx14 = a2;
if (!edx13) {
return a2;
}
eax15 = reinterpret_cast<void**>(0);
eax15 = a3;
if (eax15 || (reinterpret_cast<unsigned char>(edx13) < reinterpret_cast<unsigned char>(0x80) || (zf16 = g1000eb00 == 0, zf16))) {
edi17 = ecx14;
if (reinterpret_cast<unsigned char>(edx13) < reinterpret_cast<unsigned char>(4)) {
do {
addr_10005c25_5:
*reinterpret_cast<void***>(edi17) = eax15;
++edi17;
--edx13;
} while (edx13);
} else {
ecx18 = reinterpret_cast<uint32_t>(-reinterpret_cast<unsigned char>(ecx14)) & 3;
if (ecx18) {
edx13 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(edx13) - ecx18);
do {
*reinterpret_cast<void***>(edi17) = eax15;
++edi17;
--ecx18;
} while (ecx18);
}
eax19 = reinterpret_cast<void***>((reinterpret_cast<unsigned char>(eax15) << 8) + reinterpret_cast<unsigned char>(eax15));
eax15 = reinterpret_cast<void**>((reinterpret_cast<uint32_t>(eax19) << 16) + reinterpret_cast<uint32_t>(eax19));
ecx20 = edx13;
edx13 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(edx13) & 3);
ecx21 = reinterpret_cast<unsigned char>(ecx20) >> 2;
if (!ecx21)
goto addr_10005c25_5; else
goto addr_10005c1f_10;
}
} else {
__asm__("pxor xmm0, xmm0");
v22 = ecx14;
eax23 = reinterpret_cast<unsigned char>(ecx14) & 15;
if (eax23)
goto addr_10008272_13; else
goto addr_100081f3_14;
}
addr_10005c2f_15:
return a2;
addr_10005c1f_10:
while (ecx21) {
--ecx21;
*reinterpret_cast<void***>(edi17) = eax15;
edi17 = edi17 + 4;
}
if (!edx13)
goto addr_10005c2f_15; else
goto addr_10005c25_5;
addr_10008272_13:
ebx24 = -eax23 + 16;
v25 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(edx13) - ebx24);
edx26 = ebx24 & 3;
if (edx26) {
do {
*reinterpret_cast<void***>(ecx14) = reinterpret_cast<void**>(0);
++ecx14;
--edx26;
} while (edx26);
}
ebx27 = ebx24 >> 2;
if (ebx27) {
do {
*reinterpret_cast<void***>(ecx14) = reinterpret_cast<void**>(0);
ecx14 = ecx14 + 4;
--ebx27;
} while (ebx27);
}
edx13 = v25;
addr_100081f3_14:
edx28 = reinterpret_cast<unsigned char>(edx13) & 0x7f;
eax29 = reinterpret_cast<unsigned char>(edx13) >> 7;
if (eax29) {
do {
__asm__("movdqa [ecx], xmm0");
__asm__("movdqa [ecx+0x10], xmm0");
__asm__("movdqa [ecx+0x20], xmm0");
__asm__("movdqa [ecx+0x30], xmm0");
__asm__("movdqa [ecx+0x40], xmm0");
__asm__("movdqa [ecx+0x50], xmm0");
__asm__("movdqa [ecx+0x60], xmm0");
__asm__("movdqa [ecx+0x70], xmm0");
ecx14 = ecx14 + 0x80;
--eax29;
} while (eax29);
}
if (edx28) {
eax30 = edx28 >> 4;
if (eax30) {
do {
__asm__("movdqa [ecx], xmm0");
ecx14 = ecx14 + 16;
--eax30;
} while (eax30);
}
edx31 = edx28 & 15;
if (edx31) {
eax32 = edx31;
edx33 = edx31 >> 2;
if (edx33) {
do {
*reinterpret_cast<void***>(ecx14) = reinterpret_cast<void**>(0);
ecx14 = ecx14 + 4;
--edx33;
} while (edx33);
}
eax34 = eax32 & 3;
if (eax34) {
do {
*reinterpret_cast<void***>(ecx14) = reinterpret_cast<void**>(0);
++ecx14;
--eax34;
} while (eax34);
}
}
}
return v22;
}
struct s0 {
signed char[63] pad63;
unsigned char f63;
};
int32_t HidD_SetFeature = 0xc814;
int32_t Sleep = 0xc8e0;
int32_t HidD_GetFeature = 0xc7e8;
int32_t fun_10001070() {
int32_t ebx1;
int32_t v2;
int32_t edi3;
unsigned char cl4;
int32_t eax5;
int32_t esi6;
int32_t edi7;
struct s0* esi8;
int32_t ebx9;
int32_t esi10;
int32_t edi11;
int32_t ebx12;
if (ebx1) {
v2 = edi3;
cl4 = 0;
eax5 = esi6 + 7;
edi7 = 10;
do {
eax5 = eax5 + 6;
cl4 = reinterpret_cast<unsigned char>(cl4 ^ reinterpret_cast<unsigned char>(reinterpret_cast<unsigned char>(reinterpret_cast<unsigned char>(reinterpret_cast<unsigned char>(reinterpret_cast<unsigned char>(*reinterpret_cast<unsigned char*>(eax5 - 4) ^ *reinterpret_cast<unsigned char*>(eax5 - 3)) ^ *reinterpret_cast<unsigned char*>(eax5 - 8)) ^ *reinterpret_cast<unsigned char*>(eax5 - 7)) ^ *reinterpret_cast<unsigned char*>(eax5 - 5)) ^ *reinterpret_cast<unsigned char*>(eax5 - 6)));
--edi7;
} while (edi7);
esi8->f63 = cl4;
HidD_SetFeature(ebx9, esi10, 65, v2);
edi11 = Sleep;
edi11(20, ebx9, esi10, 65, v2);
HidD_GetFeature();
edi11();
goto ebx12;
} else {
return 0;
}
}
struct s1 {
int32_t f0;
signed char f1;
signed char f2;
signed char f3;
};
struct s2 {
int32_t f0;
signed char f1;
signed char f2;
signed char f3;
};
void** fun_10008450(void** a1, void** a2, void* a3, void** a4, int32_t a5, void** a6, void** a7) {
void** esi8;
void* ecx9;
void** edi10;
int1_t zf11;
int1_t zf12;
uint32_t ecx13;
uint32_t edx14;
void** v15;
uint32_t eax16;
struct s1* esi17;
struct s2* edi18;
uint32_t ecx19;
uint32_t edx20;
void* eax21;
uint32_t edx22;
void* v23;
uint32_t eax24;
uint32_t ecx25;
uint32_t eax26;
uint32_t ecx27;
uint32_t edx28;
uint32_t edx29;
uint32_t ecx30;
uint32_t eax31;
uint32_t ecx32;
uint32_t ecx33;
esi8 = a2;
ecx9 = a3;
edi10 = a1;
if (reinterpret_cast<unsigned char>(edi10) <= reinterpret_cast<unsigned char>(esi8) || reinterpret_cast<unsigned char>(edi10) >= reinterpret_cast<unsigned char>(reinterpret_cast<uint32_t>(ecx9) + reinterpret_cast<unsigned char>(esi8))) {
if (reinterpret_cast<uint32_t>(ecx9) < 0x80 || ((zf11 = g1000eb00 == 0, zf11) || (zf12 = (reinterpret_cast<unsigned char>(edi10) & 15) == (reinterpret_cast<unsigned char>(esi8) & 15), esi8 = esi8, edi10 = edi10, !zf12))) {
if (reinterpret_cast<unsigned char>(edi10) & 3) {
if (reinterpret_cast<uint32_t>(ecx9) < 4) {
goto *reinterpret_cast<int32_t*>((reinterpret_cast<uint32_t>(ecx9) - 4) * 4 + 0x100085d0);
} else {
goto *reinterpret_cast<int32_t*>((reinterpret_cast<unsigned char>(edi10) & 3) * 4 + 0x100084d4);
}
}
ecx13 = reinterpret_cast<uint32_t>(ecx9) >> 2;
edx14 = reinterpret_cast<uint32_t>(ecx9) & 3;
if (ecx13 >= 8)
goto addr_100084a7_8;
} else {
v15 = edi10;
eax16 = reinterpret_cast<unsigned char>(esi8) & 15;
if (eax16)
goto addr_10008ddb_11; else
goto addr_10008d1a_12;
}
} else {
esi17 = reinterpret_cast<struct s1*>(reinterpret_cast<uint32_t>(ecx9) + reinterpret_cast<unsigned char>(esi8) + 0xfffffffc);
edi18 = reinterpret_cast<struct s2*>(reinterpret_cast<uint32_t>(ecx9) + reinterpret_cast<unsigned char>(edi10) + 0xfffffffc);
if (reinterpret_cast<uint32_t>(edi18) & 3) {
if (reinterpret_cast<uint32_t>(ecx9) >= 4) {
goto *reinterpret_cast<int32_t*>((reinterpret_cast<uint32_t>(edi18) & 3) * 4 + 0x10008660);
}
goto *reinterpret_cast<int32_t*>(reinterpret_cast<uint32_t>(ecx9) * 4 + 0x1000875c);
} else {
ecx19 = reinterpret_cast<uint32_t>(ecx9) >> 2;
edx20 = reinterpret_cast<uint32_t>(ecx9) & 3;
if (ecx19 < 8) {
goto *reinterpret_cast<int32_t*>(reinterpret_cast<int32_t>(-ecx19) * 4 + 0x1000870c);
goto *reinterpret_cast<int32_t*>(edx20 * 4 + 0x1000875c);
} else {
while (ecx19) {
--ecx19;
edi18->f0 = esi17->f0;
edi18 = reinterpret_cast<struct s2*>(reinterpret_cast<uint32_t>(edi18) - 4);
esi17 = reinterpret_cast<struct s1*>(reinterpret_cast<uint32_t>(esi17) - 4);
}
goto *reinterpret_cast<int32_t*>(edx20 * 4 + 0x1000875c);
}
}
}
switch (ecx13) {
addr_100085b7_25:
case 0:
switch (edx14) {
case 0:
return a1;
case 1:
*reinterpret_cast<void***>(edi10) = *reinterpret_cast<void***>(esi8);
return a1;
case 2:
*reinterpret_cast<void***>(edi10) = *reinterpret_cast<void***>(esi8);
*reinterpret_cast<void***>(edi10 + 1) = *reinterpret_cast<void***>(esi8 + 1);
return a1;
case 3:
*reinterpret_cast<void***>(edi10) = *reinterpret_cast<void***>(esi8);
*reinterpret_cast<void***>(edi10 + 1) = *reinterpret_cast<void***>(esi8 + 1);
*reinterpret_cast<void***>(edi10 + 2) = *reinterpret_cast<void***>(esi8 + 2);
return a1;
}
addr_100085a4_30:
case 1:
*reinterpret_cast<int32_t*>(reinterpret_cast<uint32_t>(edi10 + ecx13 * 4) - 4) = *reinterpret_cast<int32_t*>(reinterpret_cast<uint32_t>(esi8 + ecx13 * 4) - 4);
eax21 = reinterpret_cast<void*>(ecx13 * 4);
esi8 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(esi8) + reinterpret_cast<uint32_t>(eax21));
edi10 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(edi10) + reinterpret_cast<uint32_t>(eax21));
goto addr_100085b7_25;
addr_1000859c_31:
case 2:
*reinterpret_cast<int32_t*>(reinterpret_cast<uint32_t>(edi10 + ecx13 * 4) - 8) = *reinterpret_cast<int32_t*>(reinterpret_cast<uint32_t>(esi8 + ecx13 * 4) - 8);
goto addr_100085a4_30;
addr_10008594_32:
case 3:
*reinterpret_cast<int32_t*>(reinterpret_cast<uint32_t>(edi10 + ecx13 * 4) - 12) = *reinterpret_cast<int32_t*>(reinterpret_cast<uint32_t>(esi8 + ecx13 * 4) - 12);
goto addr_1000859c_31;
addr_1000858c_33:
case 4:
*reinterpret_cast<int32_t*>(reinterpret_cast<uint32_t>(edi10 + ecx13 * 4) - 16) = *reinterpret_cast<int32_t*>(reinterpret_cast<uint32_t>(esi8 + ecx13 * 4) - 16);
goto addr_10008594_32;
addr_10008584_34:
case 5:
*reinterpret_cast<int32_t*>(reinterpret_cast<uint32_t>(edi10 + ecx13 * 4) - 20) = *reinterpret_cast<int32_t*>(reinterpret_cast<uint32_t>(esi8 + ecx13 * 4) - 20);
goto addr_1000858c_33;
addr_1000857c_35:
case 6:
*reinterpret_cast<int32_t*>(reinterpret_cast<uint32_t>(edi10 + ecx13 * 4) - 24) = *reinterpret_cast<int32_t*>(reinterpret_cast<uint32_t>(esi8 + ecx13 * 4) - 24);
goto addr_10008584_34;
case 7:
*reinterpret_cast<int32_t*>(reinterpret_cast<uint32_t>(edi10 + ecx13 * 4) - 28) = *reinterpret_cast<int32_t*>(reinterpret_cast<uint32_t>(esi8 + ecx13 * 4) - 28);
goto addr_1000857c_35;
}
addr_100084a7_8:
while (ecx13) {
--ecx13;
*reinterpret_cast<void***>(edi10) = *reinterpret_cast<void***>(esi8);
edi10 = edi10 + 4;
esi8 = esi8 + 4;
}
goto *reinterpret_cast<int32_t*>(edx14 * 4 + 0x100085c0);
addr_10008ddb_11:
edx22 = 16 - eax16;
v23 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(ecx9) - edx22);
eax24 = edx22;
ecx25 = eax24 & 3;
if (ecx25) {
do {
*reinterpret_cast<void***>(edi10) = *reinterpret_cast<void***>(esi8);
++esi8;
++edi10;
--ecx25;
} while (ecx25);
}
eax26 = eax24 >> 2;
if (eax26) {
do {
*reinterpret_cast<void***>(edi10) = *reinterpret_cast<void***>(esi8);
esi8 = esi8 + 4;
edi10 = edi10 + 4;
--eax26;
} while (eax26);
}
ecx9 = v23;
addr_10008d1a_12:
ecx27 = reinterpret_cast<uint32_t>(ecx9) & 0x7f;
edx28 = reinterpret_cast<uint32_t>(ecx9) >> 7;
if (edx28) {
do {
__asm__("movdqa xmm0, [esi]");
__asm__("movdqa xmm1, [esi+0x10]");
__asm__("movdqa xmm2, [esi+0x20]");
__asm__("movdqa xmm3, [esi+0x30]");
__asm__("movdqa [edi], xmm0");
__asm__("movdqa [edi+0x10], xmm1");
__asm__("movdqa [edi+0x20], xmm2");
__asm__("movdqa [edi+0x30], xmm3");
__asm__("movdqa xmm4, [esi+0x40]");
__asm__("movdqa xmm5, [esi+0x50]");
__asm__("movdqa xmm6, [esi+0x60]");
__asm__("movdqa xmm7, [esi+0x70]");
__asm__("movdqa [edi+0x40], xmm4");
__asm__("movdqa [edi+0x50], xmm5");
__asm__("movdqa [edi+0x60], xmm6");
__asm__("movdqa [edi+0x70], xmm7");
esi8 = esi8 + 0x80;
edi10 = edi10 + 0x80;
--edx28;
} while (edx28);
}
if (ecx27) {
edx29 = ecx27 >> 4;
if (edx29) {
do {
__asm__("movdqa xmm0, [esi]");
__asm__("movdqa [edi], xmm0");
esi8 = esi8 + 16;
edi10 = edi10 + 16;
--edx29;
} while (edx29);
}
ecx30 = ecx27 & 15;
if (ecx30) {
eax31 = ecx30;
ecx32 = ecx30 >> 2;
if (ecx32) {
do {
*reinterpret_cast<void***>(edi10) = *reinterpret_cast<void***>(esi8);
esi8 = esi8 + 4;
edi10 = edi10 + 4;
--ecx32;
} while (ecx32);
}
ecx33 = eax31 & 3;
if (ecx33) {
do {
*reinterpret_cast<void***>(edi10) = *reinterpret_cast<void***>(esi8);
++esi8;
++edi10;
--ecx33;
} while (ecx33);
}
}
}
return v15;
return a1;
*reinterpret_cast<signed char*>(reinterpret_cast<uint32_t>(edi18) + 3) = *reinterpret_cast<signed char*>(reinterpret_cast<uint32_t>(esi17) + 3);
return a1;
*reinterpret_cast<signed char*>(reinterpret_cast<uint32_t>(edi18) + 3) = *reinterpret_cast<signed char*>(reinterpret_cast<uint32_t>(esi17) + 3);
*reinterpret_cast<signed char*>(reinterpret_cast<uint32_t>(edi18) + 2) = *reinterpret_cast<signed char*>(reinterpret_cast<uint32_t>(esi17) + 2);
return a1;
*reinterpret_cast<signed char*>(reinterpret_cast<uint32_t>(edi18) + 3) = *reinterpret_cast<signed char*>(reinterpret_cast<uint32_t>(esi17) + 3);
*reinterpret_cast<signed char*>(reinterpret_cast<uint32_t>(edi18) + 2) = *reinterpret_cast<signed char*>(reinterpret_cast<uint32_t>(esi17) + 2);
*reinterpret_cast<signed char*>(reinterpret_cast<uint32_t>(edi18) + 1) = *reinterpret_cast<signed char*>(reinterpret_cast<uint32_t>(esi17) + 1);
return a1;
}
void** fun_100010d0(void** ecx, int32_t a2, void** a3, void* a4, int32_t a5, void** a6) {
void* ebp7;
void** eax8;
void** edi9;
void** ebx10;
void** v11;
void** v12;
void** v13;
void** v14;
void** v15;
void** v16;
void* v17;
int32_t esi18;
int32_t edi19;
void** v20;
void** ecx21;
void** eax22;
ebp7 = reinterpret_cast<void*>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 4);
eax8 = g1000d050;
fun_10005bc0(ecx, reinterpret_cast<uint32_t>(ebp7) + 0xffffffb8, 0, 65, edi9, ebx10, v11, v12, v13, v14, v15, v16);
v17 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(ebp7) + 0xffffffb8);
HidD_SetFeature(esi18, v17, 65, edi9, ebx10, 0, 0x83013a);
edi19 = Sleep;
edi19(1, esi18, v17, 65, edi9, ebx10, 0, 0x83013a);
v20 = reinterpret_cast<void**>(reinterpret_cast<uint32_t>(ebp7) + 0xffffffb8);
HidD_GetFeature();
edi19();
ecx21 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(eax8) ^ reinterpret_cast<uint32_t>(ebp7) ^ reinterpret_cast<uint32_t>(ebp7));
eax22 = fun_10001cc4(ecx21, v20, ecx21, v20);
return eax22;
}
void** fun_10003644(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11);
void fun_10003e6f(void** ecx, void** a2);
void** fun_100036bd(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9) {
void** esi10;
void** eax11;
eax11 = fun_10003644(ecx, esi10, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9);
if (!eax11) {
fun_10003e6f(ecx, 16);
}
return eax11;
}
void fun_10004570(void** a1, void** a2, void** a3);
void** g1000d6f0 = reinterpret_cast<void**>(0xfe);
void fun_10006df1(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(96);
void** fun_10003447(int32_t ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8);
void fun_10003501(void** ecx);
void fun_100045b5(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6);
void** fun_10003494(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7) {
void** eax8;
void** eax9;
int32_t ebp10;
void** v11;
void** esi12;
void** eax13;
int32_t ebp14;
int32_t ebp15;
void** eax16;
fun_10004570(0x1000c400, 12, __return_address());
eax8 = fun_100036bd(ecx, 0x1000c400, 12, __return_address(), a2, a3, a4, a5, a6);
eax9 = g1000d6f0;
if (!(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(eax8 + 0x70)) & reinterpret_cast<unsigned char>(eax9)) || !*reinterpret_cast<void***>(eax8 + 0x6c)) {
fun_10006df1(ecx, 12, 0x1000c400, 12, __return_address(), a2, a3, a4, a5, a6, a7);
*reinterpret_cast<uint32_t*>(ebp10 - 4) = 0;
v11 = image_base_;
esi12 = eax8 + 0x6c;
eax13 = fun_10003447(12, esi12, v11, 0x1000c400, 12, __return_address(), a2, a3);
ecx = v11;
*reinterpret_cast<void***>(ebp14 - 28) = eax13;
*reinterpret_cast<int32_t*>(ebp15 - 4) = -2;
fun_10003501(ecx);
} else {
eax16 = fun_100036bd(ecx, 0x1000c400, 12, __return_address(), a2, a3, a4, a5, a6);
esi12 = *reinterpret_cast<void***>(eax16 + 0x6c);
}
if (!esi12) {
fun_10003e6f(ecx, 32);
ecx = reinterpret_cast<void**>(32);
}
fun_100045b5(ecx, 0x1000c400, 12, __return_address(), a2, a3);
goto 0x1000c400;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0xd0);
int32_t InterlockedDecrement = 0xca18;
int32_t InterlockedIncrement = 0xca00;
void fun_10002dac(void** ecx);
void** fun_10002d11(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14) {
void** eax15;
void** eax16;
int32_t ebp17;
void** esi18;
int32_t ebp19;
int1_t zf20;
int32_t eax21;
void** eax22;
int32_t ebp23;
int32_t ebp24;
fun_10004570(0x1000c3c0, 12, __return_address());
eax15 = fun_100036bd(ecx, 0x1000c3c0, 12, __return_address(), a2, a3, a4, a5, a6);
eax16 = g1000d6f0;
if (!(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(eax15 + 0x70)) & reinterpret_cast<unsigned char>(eax16)) || !*reinterpret_cast<void***>(eax15 + 0x6c)) {
fun_10006df1(ecx, 13, 0x1000c3c0, 12, __return_address(), a2, a3, a4, a5, a6, a7);
ecx = reinterpret_cast<void**>(13);
*reinterpret_cast<uint32_t*>(ebp17 - 4) = 0;
esi18 = *reinterpret_cast<void***>(eax15 + 0x68);
*reinterpret_cast<void***>(ebp19 - 28) = esi18;
zf20 = esi18 == image_base_;
if (!zf20) {
if (esi18 && ((eax21 = reinterpret_cast<int32_t>(InterlockedDecrement(13, esi18)), !eax21) && esi18 != 0x1000d1d0)) {
fun_10002416(13, esi18, esi18, 0x1000c3c0, 12, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14);
ecx = esi18;
}
eax22 = image_base_;
*reinterpret_cast<void***>(eax15 + 0x68) = eax22;
esi18 = image_base_;
*reinterpret_cast<void***>(ebp23 - 28) = esi18;
InterlockedIncrement(ecx, esi18);
}
*reinterpret_cast<int32_t*>(ebp24 - 4) = -2;
fun_10002dac(ecx);
} else {
esi18 = *reinterpret_cast<void***>(eax15 + 0x68);
}
if (!esi18) {
fun_10003e6f(ecx, 32);
ecx = reinterpret_cast<void**>(32);
}
fun_100045b5(ecx, 0x1000c3c0, 12, __return_address(), a2, a3);
goto 0x1000c3c0;
}
void** fun_10002896(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11) {
void** eax12;
eax12 = fun_10003644(ecx, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10);
if (eax12) {
return eax12 + 8;
} else {
return 0x1000d1c8;
}
}
void** fun_10002817(void** ecx, int32_t a2, void** a3, void** a4, void** a5, void** a6);
void** fun_10002844(void** ecx) {
void** eax2;
eax2 = fun_10002817(ecx, 0, 0, 0, 0, 0);
return eax2;
}
void fun_10001cb9(void** ecx, void** a2, void** a3, void** a4, void** a5) {
void** v6;
void** eax7;
void** esi8;
void** ebp9;
void** eax10;
void** eax11;
void** eax12;
if (a2 && (v6 = g1000e2e8, eax7 = reinterpret_cast<void**>(HeapFree(ecx, v6, 0, a2)), !eax7)) {
eax10 = fun_10002896(ecx, esi8, v6, 0, a2, ebp9, __return_address(), a2, a3, a4, a5);
eax11 = reinterpret_cast<void**>(GetLastError(ecx));
eax12 = fun_10002854(ecx, eax11, esi8, v6, 0, a2);
*reinterpret_cast<void***>(eax10) = eax12;
}
return;
}
struct s3 {
signed char[12] pad12;
void** f12;
};
void fun_10003806(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9);
int32_t fun_1000351f();
void** fun_10003b2d(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11);
void** g1000d93c = reinterpret_cast<void**>(0xff);
void** g1000e194;
int32_t DecodePointer = 0xc940;
void fun_10003590(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14);
int32_t GetCurrentThreadId = 0xc92a;
void** g1000de20 = reinterpret_cast<void**>(0);
void** g1000e1d4;
void** fun_10003e60(void** ecx, void** a2, void** a3, void** a4);
struct s4 {
signed char[16] pad16;
void** f16;
};
void** fun_100040d2(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15);
void fun_10003553(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15, void** a16);
void fun_10004557(void** ecx);
void fun_100021a3(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15);
int32_t fun_10004539();
int32_t fun_10003874(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13);
void fun_100044ed();
int32_t GetCommandLineA = 0xc950;
void** g1000fc58;
void** fun_10004456(void** ecx);
void** g1000de24 = reinterpret_cast<void**>(0);
uint32_t fun_10003e8d(void** ecx);
uint32_t fun_1000439b(void** ecx, void** a2, void** a3, void** a4, void** a5);
uint32_t fun_10004125(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14);
int32_t fun_10003c73(void** ecx, void** a2);
uint32_t fun_100020ca(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13) {
struct s3* ebp14;
void** eax15;
void** v16;
void** v17;
int32_t eax18;
int32_t eax19;
void** eax20;
int1_t less_or_equal21;
int32_t ebp22;
int1_t zf23;
struct s4* ebp24;
int32_t ebp25;
int32_t eax26;
int32_t eax27;
void** eax28;
void** eax29;
uint32_t eax30;
uint32_t eax31;
uint32_t eax32;
int32_t eax33;
fun_10004570(0x1000c330, 8, __return_address());
if (!reinterpret_cast<int1_t>(ebp14->f12 == 1)) {
if (ebp14->f12) {
if (!reinterpret_cast<int1_t>(ebp14->f12 == 2)) {
if (reinterpret_cast<int1_t>(ebp14->f12 == 3)) {
fun_10003806(ecx, 0, 0x1000c330, 8, __return_address(), a2, a3, a4, a5);
ecx = reinterpret_cast<void**>(0);
}
} else {
fun_1000351f();
eax15 = fun_10003b2d(ecx, 1, 0x214, 0x1000c330, 8, __return_address(), a2, a3, a4, a5, a6);
ecx = reinterpret_cast<void**>(0x214);
if (!eax15) {
addr_100020e7_7:
goto addr_10002226_8;
} else {
v16 = g1000d93c;
v17 = g1000e194;
eax18 = reinterpret_cast<int32_t>(DecodePointer(0x214, v17, v16, eax15));
eax19 = reinterpret_cast<int32_t>(eax18(0x214, v17, v16, eax15));
if (!eax19) {
fun_10002416(0x214, eax15, v17, v16, eax15, 0x1000c330, 8, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12);
ecx = eax15;
goto addr_100020e7_7;
} else {
fun_10003590(0x214, eax15, 0, v17, v16, eax15, 0x1000c330, 8, __return_address(), a2, a3, a4, a5, a6);
ecx = reinterpret_cast<void**>(0);
eax20 = reinterpret_cast<void**>(GetCurrentThreadId(0, v17, v16, eax15));
*reinterpret_cast<void***>(eax15) = eax20;
*reinterpret_cast<void***>(eax15 + 4) = reinterpret_cast<void**>(0xffffffff);
}
}
}
} else {
less_or_equal21 = reinterpret_cast<signed char>(g1000de20) <= reinterpret_cast<signed char>(0);
if (less_or_equal21)
goto addr_100020e7_7;
--g1000de20;
*reinterpret_cast<void***>(ebp22 - 4) = reinterpret_cast<void**>(0);
zf23 = g1000e1d4 == 0;
if (zf23) {
fun_10003e60(ecx, 0x1000c330, 8, __return_address());
}
if (!ebp24->f16) {
fun_100040d2(ecx, 0x1000c330, 8, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12);
fun_10003553(ecx, 0x1000c330, 8, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13);
fun_10004557(ecx);
}
*reinterpret_cast<int32_t*>(ebp25 - 4) = -2;
fun_100021a3(ecx, 0x1000c330, 8, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12);
}
} else {
eax26 = fun_10004539();
if (!eax26)
goto addr_100020e7_7;
eax27 = fun_10003874(ecx, 0x1000c330, 8, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10);
if (eax27)
goto addr_100020fe_20; else
goto addr_100020f7_21;
}
addr_10002223_22:
addr_10002226_8:
fun_100045b5(ecx, 0x1000c330, 8, __return_address(), a2, a3);
goto 0x1000c330;
addr_100020fe_20:
fun_100044ed();
eax28 = reinterpret_cast<void**>(GetCommandLineA());
g1000fc58 = eax28;
eax29 = fun_10004456(ecx);
g1000de24 = eax29;
eax30 = fun_10003e8d(ecx);
if (reinterpret_cast<int32_t>(eax30) >= reinterpret_cast<int32_t>(0)) {
eax31 = fun_1000439b(ecx, 0x1000c330, 8, __return_address(), a2);
if (reinterpret_cast<int32_t>(eax31) < reinterpret_cast<int32_t>(0) || ((eax32 = fun_10004125(ecx, 0x1000c330, 8, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11), reinterpret_cast<int32_t>(eax32) < reinterpret_cast<int32_t>(0)) || (eax33 = fun_10003c73(ecx, 0), ecx = reinterpret_cast<void**>(0), !!eax33))) {
fun_100040d2(ecx, 0x1000c330, 8, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12);
goto addr_10002121_25;
} else {
++g1000de20;
goto addr_10002223_22;
}
} else {
addr_10002121_25:
fun_10003553(ecx, 0x1000c330, 8, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13);
}
addr_100020f7_21:
fun_10004557(ecx);
goto addr_100020e7_7;
}
int32_t HeapCreate = 0xcb9a;
int32_t fun_10004539() {
void** eax1;
eax1 = reinterpret_cast<void**>(HeapCreate());
g1000e2e8 = eax1;
goto 0;
}
int32_t HeapDestroy = 0xcba8;
void fun_10004557(void** ecx) {
void** v2;
v2 = g1000e2e8;
HeapDestroy();
g1000e2e8 = reinterpret_cast<void**>(0);
goto v2;
}
void** g1000e198;
void** g1000d940 = reinterpret_cast<void**>(0xff);
void** TlsFree = reinterpret_cast<void**>(0x80);
int32_t DeleteCriticalSection = 0xcb38;
struct s5 {
void** f0;
signed char[3] pad4;
int32_t f4;
};
struct s6 {
int32_t f0;
int32_t f4;
};
void fun_10003553(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15, void** a16) {
void** v17;
void** eax18;
void** v19;
int32_t eax20;
void** eax21;
void** v22;
void** ebx23;
int32_t ebx24;
void** v25;
void** esi26;
struct s5* esi27;
void** v28;
void** edi29;
void** edi30;
struct s6* esi31;
int32_t v32;
v17 = reinterpret_cast<void**>(__return_address());
eax18 = g1000d93c;
if (eax18 != 0xffffffff) {
v19 = g1000e198;
eax20 = reinterpret_cast<int32_t>(DecodePointer(v19, eax18));
eax20(v19, eax18);
g1000d93c = reinterpret_cast<void**>(0xffffffff);
}
eax21 = g1000d940;
if (eax21 != 0xffffffff) {
TlsFree(eax21);
g1000d940 = reinterpret_cast<void**>(0xffffffff);
}
v22 = ebx23;
ebx24 = DeleteCriticalSection;
v25 = esi26;
esi27 = reinterpret_cast<struct s5*>(0x1000dc40);
v28 = edi29;
do {
edi30 = esi27->f0;
if (edi30 && esi27->f4 != 1) {
ebx24(ecx, edi30);
fun_10002416(ecx, edi30, edi30, v28, v25, v22, v17, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13);
esi27->f0 = reinterpret_cast<void**>(0);
ecx = edi30;
}
++esi27;
} while (reinterpret_cast<int32_t>(esi27) < reinterpret_cast<int32_t>("."));
esi31 = reinterpret_cast<struct s6*>(0x1000dc40);
do {
if (esi31->f0 && esi31->f4 == 1) {
v32 = esi31->f0;
ebx24(ecx, v32);
}
++esi31;
} while (reinterpret_cast<int32_t>(esi31) < reinterpret_cast<int32_t>("."));
return;
}
void** g1000fc4c;
void** fun_100031b6(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13);
struct s7 {
signed char[1] pad1;
void** f1;
};
void** fun_100058d0(void** a1, void** a2, void** a3, void** a4, void** a5, void** a6, ...);
void** g1000e1b8;
void** fun_10007302(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7);
int32_t g1000fc40;
void fun_100027f2(void** ecx, int32_t a2, void** a3, void** a4, void** a5, void** a6);
void** g0;
uint32_t fun_10007c0d(void** a1);
uint32_t fun_10004125(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14) {
void** v15;
int1_t zf16;
void** v17;
void** esi18;
void** esi19;
void** v20;
void** edi21;
struct s7* edi22;
void** eax23;
void** eax24;
void** edi25;
void** ecx26;
uint32_t eax27;
void** esi28;
void** v29;
void** ebx30;
void** eax31;
void** ebx32;
void** eax33;
void** eax34;
void** v35;
void** v36;
void** v37;
void** edi38;
void*** esi39;
void*** edx40;
void** edx41;
void** v42;
void** bl43;
uint32_t eax44;
void** ecx45;
void** al46;
void** eax47;
uint32_t v48;
void** eax49;
int32_t ebx50;
uint32_t ecx51;
void*** eax52;
uint32_t eax53;
void** v54;
uint32_t eax55;
uint32_t eax56;
void** al57;
void** ecx58;
void** ecx59;
void** al60;
v15 = reinterpret_cast<void**>(__return_address());
zf16 = g1000fc4c == 0;
if (zf16) {
fun_100031b6(ecx, v15, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12);
}
v17 = esi18;
esi19 = g1000de24;
v20 = edi21;
edi22 = reinterpret_cast<struct s7*>(0);
if (esi19) {
while (*reinterpret_cast<void***>(esi19)) {
if (*reinterpret_cast<void***>(esi19) != 61) {
edi22 = reinterpret_cast<struct s7*>(&edi22->f1);
}
eax23 = fun_100058d0(esi19, v20, v17, v15, a2, a3, esi19, v20, v17, v15, a2, a3);
ecx = esi19;
esi19 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(esi19) + reinterpret_cast<unsigned char>(eax23) + 1);
}
eax24 = fun_10003b2d(ecx, &edi22->f1, 4, v20, v17, v15, a2, a3, a4, a5, a6);
edi25 = eax24;
ecx26 = reinterpret_cast<void**>(4);
g1000e1b8 = edi25;
if (!edi25)
goto addr_10004141_9;
} else {
addr_10004141_9:
eax27 = 0xffffffff;
goto addr_100041da_10;
}
esi28 = g1000de24;
v29 = ebx30;
while (*reinterpret_cast<void***>(esi28)) {
eax31 = fun_100058d0(esi28, v29, v20, v17, v15, a2, esi28, v29, v20, v17, v15, a2);
ecx26 = esi28;
ebx32 = eax31 + 1;
if (*reinterpret_cast<void***>(esi28) != 61) {
eax33 = fun_10003b2d(ecx26, ebx32, 1, v29, v20, v17, v15, a2, a3, a4, a5);
ecx26 = reinterpret_cast<void**>(1);
*reinterpret_cast<void***>(edi25) = eax33;
if (!eax33)
goto addr_100041dd_15;
eax34 = fun_10007302(1, eax33, ebx32, esi28, v29, v20, v17);
if (eax34)
goto addr_100041f4_17;
edi25 = edi25 + 4;
}
esi28 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(esi28) + reinterpret_cast<unsigned char>(ebx32));
}
v35 = g1000de24;
fun_10002416(ecx26, v35, v29, v20, v17, v15, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14);
g1000de24 = reinterpret_cast<void**>(0);
*reinterpret_cast<void***>(edi25) = reinterpret_cast<void**>(0);
g1000fc40 = 1;
eax27 = 0;
addr_100041d8_21:
addr_100041da_10:
return eax27;
addr_100041dd_15:
v35 = g1000e1b8;
fun_10002416(1, v35, v29, v20, v17, v15, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14);
g1000e1b8 = reinterpret_cast<void**>(0);
eax27 = 0xffffffff;
goto addr_100041d8_21;
addr_100041f4_17:
v36 = reinterpret_cast<void**>(0);
v37 = reinterpret_cast<void**>(0);
fun_100027f2(1, 0, 0, 0, 0, 0);
edi38 = edi25;
*reinterpret_cast<void***>(edi38) = reinterpret_cast<void**>(0);
esi39 = edx40;
edx41 = reinterpret_cast<void**>(0);
g0 = reinterpret_cast<void**>(1);
if (!1) {
v37 = reinterpret_cast<void**>(4);
g0 = reinterpret_cast<void**>(0);
}
v42 = reinterpret_cast<void**>(0);
do {
if (!reinterpret_cast<int1_t>(*esi39 == 34)) {
*reinterpret_cast<void***>(edi38) = *reinterpret_cast<void***>(edi38) + 1;
if (edx41) {
*reinterpret_cast<void***>(edx41) = *esi39;
v36 = edx41 + 1;
}
bl43 = *esi39;
++esi39;
eax44 = fun_10007c0d(static_cast<uint32_t>(reinterpret_cast<unsigned char>(bl43)));
if (eax44) {
*reinterpret_cast<void***>(edi38) = *reinterpret_cast<void***>(edi38) + 1;
if (v36) {
ecx45 = v36;
al46 = *esi39;
++v36;
*reinterpret_cast<void***>(ecx45) = al46;
}
++esi39;
}
edx41 = v36;
if (!bl43)
break;
} else {
eax47 = reinterpret_cast<void**>(0);
bl43 = reinterpret_cast<void**>(34);
*reinterpret_cast<unsigned char*>(&eax47) = reinterpret_cast<uint1_t>(v42 == 0);
++esi39;
v42 = eax47;
}
} while (v42 || bl43 != 32 && !reinterpret_cast<int1_t>(bl43 == 9));
goto addr_1000428d_35;
--esi39;
addr_10004295_37:
v48 = 0;
while (*esi39) {
while (*esi39 == 32 || reinterpret_cast<int1_t>(*esi39 == 9)) {
++esi39;
}
if (!*esi39)
break;
if (v37) {
eax49 = v37;
v37 = v37 + 4;
*reinterpret_cast<void***>(eax49) = edx41;
}
++g0;
while (1) {
ebx50 = 1;
ecx51 = 0;
while (*esi39 == 92) {
++esi39;
++ecx51;
}
if (reinterpret_cast<int1_t>(*esi39 == 34)) {
if (!(*reinterpret_cast<unsigned char*>(&ecx51) & 1)) {
if (!v48 || (eax52 = esi39 + 1, !reinterpret_cast<int1_t>(*eax52 == 34))) {
eax53 = 0;
ebx50 = 0;
*reinterpret_cast<unsigned char*>(&eax53) = reinterpret_cast<uint1_t>(v48 == 0);
v48 = eax53;
} else {
esi39 = eax52;
}
}
ecx51 = ecx51 >> 1;
}
if (ecx51) {
do {
--ecx51;
if (edx41) {
*reinterpret_cast<void***>(edx41) = reinterpret_cast<void**>(92);
++edx41;
}
*reinterpret_cast<void***>(edi38) = *reinterpret_cast<void***>(edi38) + 1;
} while (ecx51);
v36 = edx41;
}
if (!*esi39)
break;
if (v48)
goto addr_1000432f_61;
if (*esi39 == 32)
break;
if (*esi39 == 9)
break;
addr_1000432f_61:
if (ebx50) {
v54 = reinterpret_cast<void**>(static_cast<int32_t>(reinterpret_cast<signed char>(*esi39)));
if (!edx41) {
eax55 = fun_10007c0d(v54);
if (eax55) {
++esi39;
*reinterpret_cast<void***>(edi38) = *reinterpret_cast<void***>(edi38) + 1;
}
} else {
eax56 = fun_10007c0d(v54);
if (eax56) {
al57 = *esi39;
ecx58 = v36;
++v36;
*reinterpret_cast<void***>(ecx58) = al57;
++esi39;
*reinterpret_cast<void***>(edi38) = *reinterpret_cast<void***>(edi38) + 1;
}
ecx59 = v36;
al60 = *esi39;
++v36;
*reinterpret_cast<void***>(ecx59) = al60;
}
*reinterpret_cast<void***>(edi38) = *reinterpret_cast<void***>(edi38) + 1;
edx41 = v36;
}
++esi39;
}
if (edx41) {
*reinterpret_cast<void***>(edx41) = reinterpret_cast<void**>(0);
++edx41;
v36 = edx41;
}
*reinterpret_cast<void***>(edi38) = *reinterpret_cast<void***>(edi38) + 1;
}
if (v37) {
*reinterpret_cast<void***>(v37) = reinterpret_cast<void**>(0);
}
++g0;
goto 0;
addr_1000428d_35:
if (edx41) {
*reinterpret_cast<void***>(edx41 + 0xffffffff) = reinterpret_cast<void**>(0);
goto addr_10004295_37;
}
}
int32_t g1000fc50;
uint32_t fun_100078f0(void** ecx, void** a2);
void fun_10005891(void** ecx);
int32_t fun_10003c4f(void** ecx, int32_t* a2, int32_t* a3);
void fun_10004513();
int32_t g1000fc54;
int32_t fun_10003c73(void** ecx, void** a2) {
int1_t zf3;
uint32_t eax4;
int32_t eax5;
void** edi6;
int32_t* edi7;
int32_t eax8;
int1_t zf9;
uint32_t eax10;
zf3 = g1000fc50 == 0;
if (!zf3 && (eax4 = fun_100078f0(ecx, 0x1000fc50), ecx = reinterpret_cast<void**>(0x1000fc50), !!eax4)) {
g1000fc50(0x1000fc50);
ecx = a2;
}
fun_10005891(ecx);
eax5 = fun_10003c4f(ecx, 0x1000a13c, 0x1000a150);
if (!eax5) {
fun_10004ba1(0x1000a150, fun_10004513, edi6);
edi7 = reinterpret_cast<int32_t*>(0x1000a134);
if (!0) {
do {
eax8 = *edi7;
if (eax8) {
eax8(fun_10004513);
}
++edi7;
} while (reinterpret_cast<uint32_t>(edi7) < 0x1000a138);
}
zf9 = g1000fc54 == 0;
if (!zf9 && (eax10 = fun_100078f0(fun_10004513, 0x1000fc54), !!eax10)) {
g1000fc54(0x1000fc54, 0, 2, 0);
}
eax5 = 0;
}
return eax5;
}
void** fun_10003d0a(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7);
void** fun_10003e60(void** ecx, void** a2, void** a3, void** a4) {
void** eax5;
eax5 = fun_10003d0a(ecx, 0, 0, 1, __return_address(), a2, a3);
return eax5;
}
void** fun_100040d2(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15) {
void** v16;
void** v17;
void** esi18;
void** v19;
void** edi20;
void*** edi21;
void** eax22;
void** ecx23;
void*** esi24;
void** v25;
v16 = reinterpret_cast<void**>(__return_address());
v17 = esi18;
v19 = edi20;
edi21 = reinterpret_cast<void***>(0x1000fb40);
do {
eax22 = *edi21;
if (eax22) {
ecx23 = eax22 + 0x800;
if (reinterpret_cast<unsigned char>(eax22) < reinterpret_cast<unsigned char>(ecx23)) {
esi24 = reinterpret_cast<void***>(eax22 + 12);
do {
if (*reinterpret_cast<int32_t*>(esi24 + 0xfffffffc)) {
DeleteCriticalSection(esi24);
}
esi24 = esi24 + 64;
ecx23 = reinterpret_cast<void**>(esi24 + 0xfffffff4);
} while (reinterpret_cast<unsigned char>(ecx23) < reinterpret_cast<unsigned char>(*edi21 + 0x800));
}
v25 = *edi21;
eax22 = fun_10002416(ecx23, v25, v19, v17, v16, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15);
*edi21 = reinterpret_cast<void**>(0);
}
edi21 = edi21 + 4;
} while (reinterpret_cast<int32_t>(edi21) < 0x1000fc40);
return eax22;
}
struct s8 {
signed char[16] pad16;
int32_t f16;
};
void fun_100021a3(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15) {
struct s8* ebp16;
int32_t edi17;
int1_t zf18;
if (ebp16->f16 == edi17 && (zf18 = reinterpret_cast<int1_t>(g1000d93c == 0xffffffff), !zf18)) {
fun_10003553(ecx, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15);
}
return;
}
void** TlsGetValue = reinterpret_cast<void**>(100);
void** g1000e190;
void** TlsSetValue = reinterpret_cast<void**>(0x72);
int32_t fun_1000351f() {
int32_t eax1;
void** v2;
int32_t eax3;
void** v4;
int32_t esi5;
eax1 = reinterpret_cast<int32_t>(TlsGetValue());
if (!eax1) {
v2 = g1000e190;
eax3 = reinterpret_cast<int32_t>(DecodePointer(v2));
v4 = g1000d940;
TlsSetValue(v4, eax3, v2);
}
goto esi5;
}
void** fun_100074c2(void** a1, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8);
void** g1000e1a4;
void** fun_10003b2d(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11) {
void** v12;
void** v13;
void** ebp14;
void** v15;
void** esi16;
void** v17;
void** edi18;
void** esi19;
void** eax20;
int1_t below_or_equal21;
void** eax22;
int1_t below_or_equal23;
v12 = reinterpret_cast<void**>(__return_address());
v13 = ebp14;
v15 = esi16;
v17 = edi18;
esi19 = reinterpret_cast<void**>(0);
do {
eax20 = fun_100074c2(a2, a3, 0, v17, v15, v13, v12, a2);
if (eax20)
break;
below_or_equal21 = reinterpret_cast<unsigned char>(g1000e1a4) <= reinterpret_cast<unsigned char>(eax20);
if (below_or_equal21)
break;
Sleep(esi19);
eax22 = esi19 + 0x3e8;
below_or_equal23 = reinterpret_cast<unsigned char>(eax22) <= reinterpret_cast<unsigned char>(g1000e1a4);
if (!below_or_equal23) {
eax22 = reinterpret_cast<void**>(0xffffffff);
}
esi19 = eax22;
} while (!reinterpret_cast<int1_t>(eax22 == 0xffffffff));
return eax20;
}
int32_t GetModuleHandleW = 0xca8a;
struct s9 {
signed char[8] pad8;
uint32_t f8;
signed char[8] pad20;
int32_t f20;
signed char[68] pad92;
int32_t f92;
signed char[8] pad104;
void** f104;
signed char[3] pad108;
void** f108;
signed char[3] pad112;
int32_t f112;
signed char[84] pad200;
signed char f200;
signed char[130] pad331;
signed char f331;
};
struct s10 {
signed char[8] pad8;
struct s9* f8;
};
void fun_10003632(void** ecx);
struct s11 {
signed char[12] pad12;
void** f12;
};
void fun_100031d4(int32_t ecx, void** a2);
void fun_1000363b(void** ecx);
void fun_10003590(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14) {
struct s9* esi15;
struct s10* ebp16;
int32_t ebp17;
void** v18;
int32_t ebp19;
int32_t ebp20;
void** eax21;
struct s11* ebp22;
void** eax23;
void** v24;
int32_t ebp25;
fun_10004570(0x1000c420, 8, __return_address());
GetModuleHandleW("K", 0x1000c420, 8, __return_address());
esi15 = ebp16->f8;
esi15->f92 = 0x1000a5f8;
esi15->f8 = 0;
esi15->f20 = 1;
esi15->f112 = 1;
esi15->f200 = 67;
esi15->f331 = 67;
esi15->f104 = reinterpret_cast<void**>(0x1000d1d0);
fun_10006df1(ecx, 13, "K", 0x1000c420, 8, __return_address(), a2, a3, a4, a5, a6);
*reinterpret_cast<uint32_t*>(ebp17 - 4) = 0;
v18 = esi15->f104;
InterlockedIncrement(13);
*reinterpret_cast<int32_t*>(ebp19 - 4) = -2;
fun_10003632(13);
fun_10006df1(13, 12, v18, "K", 0x1000c420, 8, __return_address(), a2, a3, a4, a5);
*reinterpret_cast<int32_t*>(ebp20 - 4) = 1;
eax21 = ebp22->f12;
esi15->f108 = eax21;
if (!eax21) {
eax23 = image_base_;
esi15->f108 = eax23;
}
v24 = esi15->f108;
fun_100031d4(12, v24);
*reinterpret_cast<int32_t*>(ebp25 - 4) = -2;
fun_1000363b(v24);
fun_100045b5(v24, v18, "K", 0x1000c420, 8, __return_address());
goto v18;
}
void fun_100036d7(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15);
void fun_10003806(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9) {
int1_t zf10;
void** esi11;
int32_t eax12;
void** v13;
void** v14;
int32_t eax15;
void** eax16;
void** v17;
void** v18;
int32_t eax19;
void** ebp20;
void** eax21;
zf10 = reinterpret_cast<int1_t>(g1000d93c == 0xffffffff);
if (!zf10) {
if (!a2) {
esi11 = TlsGetValue;
eax12 = reinterpret_cast<int32_t>(esi11());
if (eax12) {
v13 = g1000d93c;
v14 = g1000d940;
eax15 = reinterpret_cast<int32_t>(esi11(v14, v13));
eax16 = reinterpret_cast<void**>(eax15(v14, v13));
a2 = eax16;
}
}
v17 = g1000d93c;
v18 = g1000e194;
eax19 = reinterpret_cast<int32_t>(DecodePointer(v18, v17, 0));
eax19(v18, v17, 0);
fun_100036d7(ecx, a2, v18, v17, 0, ebp20, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9);
}
eax21 = g1000d940;
if (eax21 != 0xffffffff) {
TlsSetValue(eax21, 0);
}
return;
}
void** fun_100048c9(void** a1, void** a2, void** a3) {
return 1;
}
int32_t GetSystemTimeAsFileTime = 0xcbf6;
int32_t GetCurrentProcessId = 0xcbe0;
int32_t GetTickCount = 0xcbd0;
int32_t QueryPerformanceCounter = 0xcbb6;
void fun_100048cf() {
void** eax1;
void* v2;
int32_t esi3;
uint32_t eax4;
uint32_t eax5;
uint32_t eax6;
void** esi7;
uint32_t v8;
uint32_t v9;
eax1 = g1000d050;
if (eax1 == 0xbb40e64e || !(0xffff0000 & reinterpret_cast<unsigned char>(eax1))) {
v2 = reinterpret_cast<void*>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 4 - 8);
GetSystemTimeAsFileTime(v2, esi3);
eax4 = reinterpret_cast<uint32_t>(GetCurrentProcessId(v2, esi3));
eax5 = reinterpret_cast<uint32_t>(GetCurrentThreadId(v2, esi3));
eax6 = reinterpret_cast<uint32_t>(GetTickCount(v2, esi3));
QueryPerformanceCounter();
esi7 = reinterpret_cast<void**>(eax4 ^ eax5 ^ eax6 ^ (v8 ^ v9));
if (!reinterpret_cast<int1_t>(esi7 == 0xbb40e64e)) {
if (!(0xffff0000 & reinterpret_cast<unsigned char>(esi7))) {
esi7 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(esi7) | (reinterpret_cast<unsigned char>(esi7) | 0x4711) << 16);
}
} else {
esi7 = reinterpret_cast<void**>(0xbb40e64f);
}
g1000d050 = esi7;
g1000d054 = reinterpret_cast<int32_t>(~reinterpret_cast<unsigned char>(esi7));
} else {
g1000d054 = reinterpret_cast<int32_t>(~reinterpret_cast<unsigned char>(eax1));
}
return;
}
struct s12 {
signed char[8] pad8;
void** f8;
};
int32_t g1000a194 = 0;
void fun_1000222e(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7) {
void** ebx8;
struct s12* ebp9;
int32_t ebp10;
void** edx11;
int1_t zf12;
void** edx13;
int32_t ebp14;
int32_t eax15;
int32_t eax16;
int32_t ebp17;
int32_t ebp18;
uint32_t eax19;
int32_t ebp20;
void** eax21;
int32_t ebp22;
int32_t eax23;
int32_t ebp24;
uint32_t eax25;
int32_t ebp26;
int32_t ebp27;
int32_t ebp28;
int32_t eax29;
int32_t eax30;
int32_t ebp31;
int32_t ebp32;
fun_10004570(0x1000c350, 12, __return_address());
ebx8 = ebp9->f8;
*reinterpret_cast<void***>(ebp10 - 28) = reinterpret_cast<void**>(1);
if (edx11 || (zf12 = g1000de20 == edx13, !zf12)) {
*reinterpret_cast<uint32_t*>(ebp14 - 4) = 0;
if (edx11 == 1 || reinterpret_cast<int1_t>(edx11 == 2)) {
eax15 = g1000a194;
if (eax15) {
eax16 = reinterpret_cast<int32_t>(eax15(ebx8, edx11, ecx));
*reinterpret_cast<int32_t*>(ebp17 - 28) = eax16;
}
if (!*reinterpret_cast<int32_t*>(ebp18 - 28))
goto addr_10002315_6;
eax19 = fun_100020ca(ecx, ebx8, edx11, ecx, 0x1000c350, 12, __return_address(), a2, a3, a4, a5, a6, a7);
*reinterpret_cast<uint32_t*>(ebp20 - 28) = eax19;
if (eax19)
goto addr_10002292_8;
} else {
addr_10002292_8:
eax21 = fun_100048c9(ebx8, edx11, ecx);
*reinterpret_cast<void***>(ebp22 - 28) = eax21;
if (reinterpret_cast<int1_t>(edx11 == 1) && (!eax21 && (fun_100048c9(ebx8, eax21, ecx), fun_100020ca(ecx, ebx8, 0, ecx, 0x1000c350, 12, __return_address(), a2, a3, a4, a5, a6, a7), eax23 = g1000a194, !!eax23))) {
eax23(ebx8, 0, ecx);
goto addr_100022c6_10;
}
}
} else {
addr_1000231c_11:
goto addr_1000231e_12;
}
addr_10002315_6:
*reinterpret_cast<int32_t*>(ebp24 - 4) = -2;
goto addr_1000231c_11;
addr_100022c6_10:
if (!edx11 || reinterpret_cast<int1_t>(edx11 == 3)) {
eax25 = fun_100020ca(ecx, ebx8, edx11, ecx, 0x1000c350, 12, __return_address(), a2, a3, a4, a5, a6, a7);
if (!eax25) {
*reinterpret_cast<uint32_t*>(ebp26 - 28) = *reinterpret_cast<uint32_t*>(ebp27 - 28) & eax25;
}
if (*reinterpret_cast<int32_t*>(ebp28 - 28) && (eax29 = g1000a194, !!eax29)) {
eax30 = reinterpret_cast<int32_t>(eax29(ebx8, edx11, ecx));
*reinterpret_cast<int32_t*>(ebp31 - 28) = eax30;
}
}
*reinterpret_cast<int32_t*>(ebp32 - 4) = -2;
addr_1000231e_12:
fun_100045b5(ecx, 0x1000c350, 12, __return_address(), a2, a3);
goto 0x1000c350;
}
void** fun_10007b81(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7);
void** fun_100079d2(void** ecx, void** a2, void** a3, void** a4, void** a5);
void fun_10003bf2(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7);
int32_t HeapAlloc = 0xcc10;
void** g1000ead8;
void** fun_10004bb8(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15, void** a16, void** a17, void** a18, void** a19, void** a20) {
void** v21;
void** v22;
void** ebp23;
void** v24;
void** ebx25;
void** ebx26;
void** eax27;
void** eax28;
void** v29;
void** esi30;
void** v31;
void** edi32;
int1_t zf33;
void** eax34;
void** v35;
void** eax36;
int1_t zf37;
int32_t eax38;
void** eax39;
void** eax40;
v21 = reinterpret_cast<void**>(__return_address());
v22 = ebp23;
v24 = ebx25;
ebx26 = a2;
if (reinterpret_cast<unsigned char>(ebx26) > reinterpret_cast<unsigned char>(0xffffffe0)) {
fun_10004c5b(ecx, ebx26, v24, v22, v21, a2, a3);
eax27 = fun_10002896(ebx26, v24, v22, v21, a2, a3, a4, a5, a6, a7, a8);
*reinterpret_cast<void***>(eax27) = reinterpret_cast<void**>(12);
eax28 = reinterpret_cast<void**>(0);
} else {
v29 = esi30;
v31 = edi32;
do {
zf33 = g1000e2e8 == 0;
if (zf33) {
fun_10007b81(ecx, v31, v29, v24, v22, v21, a2);
fun_100079d2(ecx, 30, v31, v29, v24);
fun_10003bf2(ecx, 0xff, 30, v31, v29, v24, v22);
ecx = reinterpret_cast<void**>(30);
}
if (!ebx26) {
eax34 = reinterpret_cast<void**>(1);
} else {
eax34 = ebx26;
}
v35 = g1000e2e8;
eax36 = reinterpret_cast<void**>(HeapAlloc(ecx));
if (eax36)
goto addr_10004c2f_10;
zf37 = g1000ead8 == eax36;
if (zf37)
goto addr_10004c21_12;
eax38 = fun_10004c5b(ecx, ebx26, v35, 0, eax34, v31, v29);
ecx = ebx26;
} while (eax38);
goto addr_10004c1f_14;
}
addr_10004c49_15:
return eax28;
addr_10004c2f_10:
eax28 = eax36;
goto addr_10004c49_15;
addr_10004c21_12:
eax39 = fun_10002896(ecx, v35, 0, eax34, v31, v29, v24, v22, v21, a2, a3);
*reinterpret_cast<void***>(eax39) = reinterpret_cast<void**>(12);
addr_10004c28_16:
eax40 = fun_10002896(ecx, v35, 0, eax34, v31, v29, v24, v22, v21, a2, a3);
*reinterpret_cast<void***>(eax40) = reinterpret_cast<void**>(12);
goto addr_10004c2f_10;
addr_10004c1f_14:
goto addr_10004c28_16;
}
void fun_1000496a(void** ecx, void*** a2, int32_t a3) {
*reinterpret_cast<void***>(ecx) = reinterpret_cast<void**>("2J");
*reinterpret_cast<void***>(ecx + 4) = *a2;
*reinterpret_cast<void***>(ecx + 8) = reinterpret_cast<void**>(0);
return;
}
int32_t fun_10004b65(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6);
int32_t fun_10004ba1(void** ecx, void** a2, void** a3) {
void** ebp4;
int32_t eax5;
uint32_t eax6;
eax5 = fun_10004b65(ecx, a2, ebp4, __return_address(), a2, a3);
eax6 = reinterpret_cast<uint32_t>(-eax5);
return reinterpret_cast<int32_t>(-(eax6 - (eax6 + reinterpret_cast<uint1_t>(eax6 < eax6 + reinterpret_cast<uint1_t>(!!eax5))))) - 1;
}
void** fun_100049f2(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12);
void** fun_10004a59(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8) {
void** esi9;
void** ebp10;
*reinterpret_cast<void***>(ecx + 4) = reinterpret_cast<void**>(0);
*reinterpret_cast<void***>(ecx) = reinterpret_cast<void**>("2J");
*reinterpret_cast<void***>(ecx + 8) = reinterpret_cast<void**>(0);
fun_100049f2(ecx, a2, esi9, ebp10, __return_address(), a2, a3, a4, a5, a6, a7, a8);
return ecx;
}
int32_t RaiseException = 0xcc1c;
void fun_10004c83(void** ecx, void* a2, unsigned char* a3) {
void* ebp4;
int32_t ecx5;
int32_t v6;
int32_t v7;
int32_t v8;
ebp4 = reinterpret_cast<void*>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 4);
ecx5 = 8;
while (ecx5) {
--ecx5;
}
if (a3 && *a3 & 8) {
}
RaiseException(v6, v7, v8, reinterpret_cast<int32_t>(ebp4) - 12);
return;
}
void** fun_10002854(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6) {
void** eax7;
uint32_t ecx8;
void* eax9;
eax7 = a2;
ecx8 = 0;
do {
if (eax7 == *reinterpret_cast<void***>(ecx8 * 8 + 0x1000d060))
break;
++ecx8;
} while (ecx8 < 45);
goto addr_1000286d_4;
return *reinterpret_cast<void***>(ecx8 * 8 + 0x1000d064);
addr_1000286d_4:
if (reinterpret_cast<uint32_t>(eax7 + 0xffffffed) > 17) {
eax9 = reinterpret_cast<void*>(eax7 + 0xffffff44);
return (reinterpret_cast<uint32_t>(eax9) - (reinterpret_cast<uint32_t>(eax9) + reinterpret_cast<uint1_t>(reinterpret_cast<uint32_t>(eax9) < reinterpret_cast<uint32_t>(eax9) + reinterpret_cast<uint1_t>(14 < reinterpret_cast<uint32_t>(eax9)))) & 14) + 8;
} else {
return 13;
}
}
uint32_t g1000fb24;
void fun_10004ccf(void** ecx) {
g1000fb24 = 0;
return;
}
void** fun_1000586b(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9);
struct s13 {
signed char[32] pad32;
void** f32;
signed char[31] pad64;
void** f64;
};
struct s13* fun_100056b6(void** ecx);
uint32_t fun_10005660(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9);
void fun_10005617(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12);
void** fun_10005543(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8);
struct s14 {
signed char[4] pad4;
unsigned char f4;
};
uint32_t fun_10004d5c(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8);
uint32_t fun_10002556(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7) {
void** esi8;
void** ebp9;
void** eax10;
void** eax11;
void** ecx12;
void** eax13;
void** v14;
struct s13* eax15;
struct s13* eax16;
void** ebx17;
uint32_t eax18;
uint32_t eax19;
void** eax20;
int1_t zf21;
void** edi22;
void** edi23;
void** eax24;
void** eax25;
void** edi26;
void** ecx27;
struct s14* eax28;
uint32_t edx29;
uint32_t eax30;
void** eax31;
eax10 = fun_1000586b(ecx, a3, esi8, ecx, ebp9, __return_address(), a2, a3, a4);
eax11 = *reinterpret_cast<void***>(a3 + 12);
ecx12 = a3;
if (*reinterpret_cast<unsigned char*>(&eax11) & 0x82) {
if (!(*reinterpret_cast<unsigned char*>(&eax11) & 64)) {
if (!(*reinterpret_cast<unsigned char*>(&eax11) & 1)) {
addr_100025b6_4:
eax13 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(a3 + 12)) & 0xffffffef | 2);
*reinterpret_cast<void***>(a3 + 12) = eax13;
*reinterpret_cast<void***>(a3 + 4) = reinterpret_cast<void**>(0);
v14 = reinterpret_cast<void**>(0);
if (!(reinterpret_cast<unsigned char>(eax13) & 0x10c) && ((eax15 = fun_100056b6(ecx12), a3 != &eax15->f32) && (eax16 = fun_100056b6(ecx12), !reinterpret_cast<int1_t>(a3 == &eax16->f64)) || (eax18 = fun_10005660(ecx12, eax10, ebx17, esi8, 0, ebp9, __return_address(), a2, eax10), ecx12 = eax10, !eax18))) {
fun_10005617(ecx12, a3, ebx17, esi8, 0, ebp9, __return_address(), a2, eax10, a4, a5, a6);
ecx12 = a3;
}
} else {
*reinterpret_cast<void***>(a3 + 4) = reinterpret_cast<void**>(0);
if (!(*reinterpret_cast<unsigned char*>(&eax11) & 16)) {
*reinterpret_cast<void***>(a3 + 12) = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(eax11) | 32);
eax19 = 0xffffffff;
goto addr_100026b6_8;
} else {
ecx12 = *reinterpret_cast<void***>(a3 + 8);
*reinterpret_cast<void***>(a3) = ecx12;
*reinterpret_cast<void***>(a3 + 12) = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(eax11) & 0xfffffffe);
goto addr_100025b6_4;
}
}
} else {
eax20 = fun_10002896(ecx12, esi8, ecx, ebp9, __return_address(), a2, eax10, a4, a5, a6, a7);
*reinterpret_cast<void***>(eax20) = reinterpret_cast<void**>(34);
goto addr_1000257c_11;
}
} else {
eax20 = fun_10002896(ecx12, esi8, ecx, ebp9, __return_address(), a2, eax10, a4, a5, a6, a7);
*reinterpret_cast<void***>(eax20) = reinterpret_cast<void**>(9);
goto addr_1000257c_11;
}
zf21 = (reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(a3 + 12)) & 0x108) == 0;
if (zf21) {
edi22 = reinterpret_cast<void**>(1);
eax24 = fun_10005543(ecx12, eax10, reinterpret_cast<int32_t>(__zero_stack_offset()) - 4 + 8, 1, edi23, ebx17, esi8, 0);
v14 = eax24;
} else {
eax25 = *reinterpret_cast<void***>(a3 + 8);
edi26 = *reinterpret_cast<void***>(a3);
*reinterpret_cast<void***>(a3) = eax25 + 1;
edi22 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(edi26) - reinterpret_cast<unsigned char>(eax25));
ecx27 = *reinterpret_cast<void***>(a3 + 24) - 1;
*reinterpret_cast<void***>(a3 + 4) = ecx27;
if (reinterpret_cast<signed char>(edi22) <= reinterpret_cast<signed char>(0)) {
if (eax10 == 0xffffffff || eax10 == 0xfffffffe) {
eax28 = reinterpret_cast<struct s14*>(0x1000d950);
} else {
edx29 = reinterpret_cast<uint32_t>(reinterpret_cast<signed char>(eax10) >> 5);
eax28 = reinterpret_cast<struct s14*>(((reinterpret_cast<unsigned char>(eax10) & 31) << 6) + reinterpret_cast<int32_t>(*reinterpret_cast<void**>(edx29 * 4 + 0x1000fb40)));
}
if (!(eax28->f4 & 32))
goto addr_1000267f_20;
eax30 = fun_10004d5c(eax10, eax10, 0, 0, 2, edi23, ebx17, esi8);
if ((eax30 & edx29) == 0xffffffff)
goto addr_100026a4_22;
} else {
eax31 = fun_10005543(ecx27, eax10, eax25, edi22, edi23, ebx17, esi8, 0);
v14 = eax31;
}
addr_1000267f_20:
*reinterpret_cast<void***>(*reinterpret_cast<void***>(a3 + 8)) = a2;
}
if (v14 == edi22) {
eax19 = reinterpret_cast<unsigned char>(a2) & 0xff;
} else {
addr_100026a4_22:
*reinterpret_cast<void***>(a3 + 12) = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(a3 + 12)) | 32);
eax19 = 0xffffffff;
}
addr_100026b6_8:
addr_100026b7_27:
return eax19;
addr_1000257c_11:
*reinterpret_cast<void***>(a3 + 12) = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(a3 + 12)) | 32);
eax19 = 0xffffffff;
goto addr_100026b7_27;
}
struct s13* fun_100056b6(void** ecx) {
return 0x1000d990;
}
void** g1000fb2c;
uint32_t fun_10005660(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9) {
int1_t cf10;
void** ebp11;
void** eax12;
void** eax13;
if (!reinterpret_cast<int1_t>(a2 == 0xfffffffe)) {
if (reinterpret_cast<signed char>(a2) < reinterpret_cast<signed char>(0) || (cf10 = reinterpret_cast<unsigned char>(a2) < reinterpret_cast<unsigned char>(g1000fb2c), !cf10)) {
eax12 = fun_10002896(ecx, ebp11, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9);
*reinterpret_cast<void***>(eax12) = reinterpret_cast<void**>(9);
fun_10002844(ecx);
} else {
return reinterpret_cast<uint32_t>(static_cast<int32_t>(*reinterpret_cast<signed char*>(reinterpret_cast<int32_t>(*reinterpret_cast<void**>((reinterpret_cast<signed char>(a2) >> 5) * 4 + 0x1000fb40)) + ((reinterpret_cast<unsigned char>(a2) & 31) << 6) + 4))) & 64;
}
} else {
eax13 = fun_10002896(ecx, ebp11, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9);
*reinterpret_cast<void***>(eax13) = reinterpret_cast<void**>(9);
}
return 0;
}
int32_t g1000e2f0;
void** fun_10003ae8(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15);
void fun_10005617(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12) {
void** ebp13;
void** eax14;
void** eax15;
++g1000e2f0;
eax14 = fun_10003ae8(ecx, 0x1000, ebp13, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12);
*reinterpret_cast<void***>(a2 + 8) = eax14;
if (!eax14) {
*reinterpret_cast<void***>(a2 + 12) = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(a2 + 12)) | 4);
*reinterpret_cast<void***>(a2 + 8) = a2 + 20;
*reinterpret_cast<void***>(a2 + 24) = reinterpret_cast<void**>(2);
} else {
*reinterpret_cast<void***>(a2 + 12) = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(a2 + 12)) | 8);
*reinterpret_cast<void***>(a2 + 24) = reinterpret_cast<void**>(0x1000);
}
eax15 = *reinterpret_cast<void***>(a2 + 8);
*reinterpret_cast<void***>(a2 + 4) = reinterpret_cast<void**>(0);
*reinterpret_cast<void***>(a2) = eax15;
return;
}
struct s15 {
signed char[8] pad8;
void** f8;
};
void** fun_100028a9(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10);
void fun_10007d47(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7);
struct s16 {
signed char[16] pad16;
void** f16;
};
struct s17 {
signed char[12] pad12;
void** f12;
};
void** fun_10004e46(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7);
void fun_1000560f(void** ecx);
void** fun_10005543(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8) {
void** ebx9;
struct s15* ebp10;
int1_t cf11;
void** edi12;
uint32_t esi13;
void** eax14;
void** eax15;
int32_t ebp16;
void** eax17;
void** eax18;
int32_t ebp19;
void** v20;
struct s16* ebp21;
void** v22;
struct s17* ebp23;
void** eax24;
int32_t ebp25;
int32_t ebp26;
void** eax27;
void** eax28;
fun_10004570(0x1000c4f0, 16, __return_address());
ebx9 = ebp10->f8;
if (!reinterpret_cast<int1_t>(ebx9 == 0xfffffffe)) {
if (reinterpret_cast<signed char>(ebx9) < reinterpret_cast<signed char>(0) || ((cf11 = reinterpret_cast<unsigned char>(ebx9) < reinterpret_cast<unsigned char>(g1000fb2c), !cf11) || (edi12 = reinterpret_cast<void**>((reinterpret_cast<signed char>(ebx9) >> 5) * 4 + 0x1000fb40), esi13 = (reinterpret_cast<unsigned char>(ebx9) & 31) << 6, (reinterpret_cast<uint32_t>(static_cast<int32_t>(*reinterpret_cast<signed char*>(reinterpret_cast<int32_t>(*edi12) + esi13 + 4))) & 1) == 0))) {
eax14 = fun_100028a9(ecx, 0x1000c4f0, 16, __return_address(), a2, a3, a4, a5, a6, a7);
*reinterpret_cast<void***>(eax14) = reinterpret_cast<void**>(0);
eax15 = fun_10002896(ecx, 0x1000c4f0, 16, __return_address(), a2, a3, a4, a5, a6, a7, a8);
*reinterpret_cast<void***>(eax15) = reinterpret_cast<void**>(9);
fun_10002844(ecx);
} else {
fun_10007d47(ecx, ebx9, 0x1000c4f0, 16, __return_address(), a2, a3);
ecx = ebx9;
*reinterpret_cast<uint32_t*>(ebp16 - 4) = 0;
if (!(*reinterpret_cast<unsigned char*>(reinterpret_cast<int32_t>(*edi12) + esi13 + 4) & 1)) {
eax17 = fun_10002896(ecx, 0x1000c4f0, 16, __return_address(), a2, a3, a4, a5, a6, a7, a8);
*reinterpret_cast<void***>(eax17) = reinterpret_cast<void**>(9);
eax18 = fun_100028a9(ecx, 0x1000c4f0, 16, __return_address(), a2, a3, a4, a5, a6, a7);
*reinterpret_cast<void***>(eax18) = reinterpret_cast<void**>(0);
*reinterpret_cast<uint32_t*>(ebp19 - 28) = 0xffffffff;
} else {
v20 = ebp21->f16;
v22 = ebp23->f12;
eax24 = fun_10004e46(ecx, ebx9, v22, v20, 0x1000c4f0, 16, __return_address());
*reinterpret_cast<void***>(ebp25 - 28) = eax24;
}
*reinterpret_cast<int32_t*>(ebp26 - 4) = -2;
fun_1000560f(ecx);
goto addr_10005606_8;
}
} else {
eax27 = fun_100028a9(ecx, 0x1000c4f0, 16, __return_address(), a2, a3, a4, a5, a6, a7);
*reinterpret_cast<void***>(eax27) = reinterpret_cast<void**>(0);
eax28 = fun_10002896(ecx, 0x1000c4f0, 16, __return_address(), a2, a3, a4, a5, a6, a7, a8);
*reinterpret_cast<void***>(eax28) = reinterpret_cast<void**>(9);
}
addr_10005606_8:
fun_100045b5(ecx, 0x1000c4f0, 16, __return_address(), a2, a3);
goto 0x1000c4f0;
}
struct s18 {
signed char[8] pad8;
void** f8;
};
struct s19 {
signed char[20] pad20;
void** f20;
};
struct s20 {
signed char[16] pad16;
void** f16;
};
struct s21 {
signed char[12] pad12;
void** f12;
};
struct s22 {
signed char[8] pad8;
void** f8;
};
void** fun_10004cd7(void** ecx, void** a2, void** a3, void** a4, void** a5);
void fun_10004e3c(void** ecx);
uint32_t fun_10004d5c(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8) {
int32_t ebp9;
int32_t ebp10;
struct s18* ebp11;
int1_t cf12;
void** edi13;
uint32_t esi14;
void** eax15;
void** eax16;
void** v17;
int32_t ebp18;
void** eax19;
void** eax20;
int32_t ebp21;
int32_t ebp22;
void** v23;
struct s19* ebp24;
void** v25;
struct s20* ebp26;
void** v27;
struct s21* ebp28;
void** v29;
struct s22* ebp30;
void** eax31;
int32_t ebp32;
int32_t ebp33;
int32_t edx34;
int32_t ebp35;
void** eax36;
void** eax37;
fun_10004570(0x1000c4d0, 20, __return_address());
*reinterpret_cast<int32_t*>(ebp9 - 36) = -1;
*reinterpret_cast<int32_t*>(ebp10 - 32) = -1;
if (!reinterpret_cast<int1_t>(ebp11->f8 == 0xfffffffe)) {
if (reinterpret_cast<signed char>(ebp11->f8) < reinterpret_cast<signed char>(0) || ((cf12 = reinterpret_cast<unsigned char>(ebp11->f8) < reinterpret_cast<unsigned char>(g1000fb2c), !cf12) || (edi13 = reinterpret_cast<void**>((reinterpret_cast<signed char>(ebp11->f8) >> 5) * 4 + 0x1000fb40), esi14 = (reinterpret_cast<unsigned char>(ebp11->f8) & 31) << 6, ecx = reinterpret_cast<void**>(reinterpret_cast<uint32_t>(static_cast<int32_t>(*reinterpret_cast<signed char*>(reinterpret_cast<int32_t>(*edi13) + esi14 + 4))) & 1), ecx == 0))) {
eax15 = fun_100028a9(ecx, 0x1000c4d0, 20, __return_address(), a2, a3, a4, a5, a6, a7);
*reinterpret_cast<void***>(eax15) = reinterpret_cast<void**>(0);
eax16 = fun_10002896(ecx, 0x1000c4d0, 20, __return_address(), a2, a3, a4, a5, a6, a7, a8);
*reinterpret_cast<void***>(eax16) = reinterpret_cast<void**>(9);
fun_10002844(ecx);
} else {
v17 = ebp11->f8;
fun_10007d47(ecx, v17, 0x1000c4d0, 20, __return_address(), a2, a3);
ecx = v17;
*reinterpret_cast<uint32_t*>(ebp18 - 4) = 0;
if (!(*reinterpret_cast<unsigned char*>(reinterpret_cast<int32_t>(*edi13) + esi14 + 4) & 1)) {
eax19 = fun_10002896(ecx, 0x1000c4d0, 20, __return_address(), a2, a3, a4, a5, a6, a7, a8);
*reinterpret_cast<void***>(eax19) = reinterpret_cast<void**>(9);
eax20 = fun_100028a9(ecx, 0x1000c4d0, 20, __return_address(), a2, a3, a4, a5, a6, a7);
*reinterpret_cast<void***>(eax20) = reinterpret_cast<void**>(0);
*reinterpret_cast<int32_t*>(ebp21 - 36) = -1;
*reinterpret_cast<int32_t*>(ebp22 - 32) = -1;
} else {
v23 = ebp24->f20;
v25 = ebp26->f16;
v27 = ebp28->f12;
v29 = ebp30->f8;
eax31 = fun_10004cd7(ecx, v29, v27, v25, v23);
*reinterpret_cast<void***>(ebp32 - 36) = eax31;
*reinterpret_cast<int32_t*>(ebp33 - 32) = edx34;
}
*reinterpret_cast<int32_t*>(ebp35 - 4) = -2;
fun_10004e3c(ecx);
goto addr_10004e36_8;
}
} else {
eax36 = fun_100028a9(ecx, 0x1000c4d0, 20, __return_address(), a2, a3, a4, a5, a6, a7);
*reinterpret_cast<void***>(eax36) = reinterpret_cast<void**>(0);
eax37 = fun_10002896(ecx, 0x1000c4d0, 20, __return_address(), a2, a3, a4, a5, a6, a7, a8);
*reinterpret_cast<void***>(eax37) = reinterpret_cast<void**>(9);
}
addr_10004e36_8:
fun_100045b5(ecx, 0x1000c4d0, 20, __return_address(), a2, a3);
goto 0x1000c4d0;
}
struct s23 {
signed char[4] pad4;
void** f4;
};
int32_t GetCPInfo = 0xc9f4;
struct s24 {
signed char[12] pad12;
void** f12;
};
struct s25 {
signed char[4] pad4;
void** f4;
};
void** fun_10006c37(void** a1, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8);
struct s26 {
signed char[4] pad4;
void** f4;
};
struct s27 {
signed char[12] pad12;
void** f12;
};
void** fun_10006b0a(void** a1, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15, void** a16, void** a17);
struct s28 {
signed char[4] pad4;
void** f4;
};
struct s29 {
signed char[12] pad12;
void** f12;
};
void** fun_10002b81() {
void* ebp1;
void** eax2;
uint32_t v3;
void** v4;
void** ebx5;
void** v6;
void** edi7;
void** v8;
void** v9;
struct s23* esi10;
int32_t eax11;
void* ecx12;
int32_t v13;
int32_t esi14;
signed char* eax15;
void* esi16;
uint32_t edx17;
void* esi18;
void* esi19;
uint32_t edx20;
void* esi21;
void* esi22;
void* eax23;
unsigned char al24;
unsigned char v25;
void** ecx26;
void** eax27;
void** v28;
struct s24* esi29;
void** v30;
struct s25* esi31;
void** v32;
void** v33;
void** v34;
struct s26* esi35;
void** v36;
struct s27* esi37;
void** v38;
struct s28* esi39;
void** v40;
struct s29* esi41;
void** v42;
void** v43;
void** v44;
void** v45;
void* eax46;
uint32_t ecx47;
void* esi48;
void* esi49;
void* esi50;
signed char cl51;
void* esi52;
void* esi53;
void* esi54;
void** ecx55;
void** eax56;
unsigned char v57;
void** v58;
void** v59;
void** v60;
void** v61;
unsigned char v62;
ebp1 = reinterpret_cast<void*>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 4);
eax2 = g1000d050;
v3 = reinterpret_cast<unsigned char>(eax2) ^ reinterpret_cast<uint32_t>(ebp1);
v4 = ebx5;
v6 = edi7;
v8 = reinterpret_cast<void**>(reinterpret_cast<uint32_t>(ebp1) + 0xfffffae8);
v9 = esi10->f4;
eax11 = reinterpret_cast<int32_t>(GetCPInfo());
if (!eax11) {
ecx12 = reinterpret_cast<void*>(0);
v13 = -97 - (esi14 + 0x11d);
do {
eax15 = reinterpret_cast<signed char*>(reinterpret_cast<int32_t>(esi16) + reinterpret_cast<uint32_t>(ecx12) + 0x11d);
edx17 = v13 + reinterpret_cast<uint32_t>(eax15);
if (edx17 + 32 > 25) {
if (edx17 > 25) {
*eax15 = 0;
continue;
} else {
*reinterpret_cast<unsigned char*>(reinterpret_cast<int32_t>(esi18) + reinterpret_cast<uint32_t>(ecx12) + 29) = reinterpret_cast<unsigned char>(*reinterpret_cast<unsigned char*>(reinterpret_cast<int32_t>(esi19) + reinterpret_cast<uint32_t>(ecx12) + 29) | 32);
edx20 = reinterpret_cast<uint32_t>(ecx12) - 32;
}
} else {
*reinterpret_cast<unsigned char*>(reinterpret_cast<int32_t>(esi21) + reinterpret_cast<uint32_t>(ecx12) + 29) = reinterpret_cast<unsigned char>(*reinterpret_cast<unsigned char*>(reinterpret_cast<int32_t>(esi22) + reinterpret_cast<uint32_t>(ecx12) + 29) | 16);
edx20 = reinterpret_cast<uint32_t>(ecx12) + 32;
}
*eax15 = *reinterpret_cast<signed char*>(&edx20);
ecx12 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(ecx12) + 1);
} while (reinterpret_cast<uint32_t>(ecx12) < 0x100);
} else {
eax23 = reinterpret_cast<void*>(0);
do {
*reinterpret_cast<signed char*>(reinterpret_cast<uint32_t>(ebp1) + reinterpret_cast<uint32_t>(eax23) - 0x104) = *reinterpret_cast<signed char*>(&eax23);
eax23 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(eax23) + 1);
} while (reinterpret_cast<uint32_t>(eax23) < 0x100);
al24 = v25;
if (!al24)
goto addr_10002c04_13; else
goto addr_10002bd4_14;
}
addr_10002d03_15:
ecx26 = reinterpret_cast<void**>(v3 ^ reinterpret_cast<uint32_t>(ebp1));
eax27 = fun_10001cc4(ecx26, v6, ecx26, v6);
return eax27;
addr_10002c04_13:
v28 = esi29->f12;
v30 = esi31->f4;
v32 = reinterpret_cast<void**>(reinterpret_cast<uint32_t>(ebp1) + 0xfffffafc);
v33 = reinterpret_cast<void**>(reinterpret_cast<uint32_t>(ebp1) + 0xfffffefc);
fun_10006c37(0, 1, v33, 0x100, v32, v30, v28, 0);
v34 = esi35->f4;
v36 = esi37->f12;
fun_10006b0a(0, v36, 0x100, reinterpret_cast<uint32_t>(ebp1) + 0xfffffefc, 0x100, reinterpret_cast<uint32_t>(ebp1) + 0xfffffdfc, 0x100, v34, 0, 0, 1, v33, 0x100, v32, v30, v28, 0);
v38 = esi39->f4;
v40 = esi41->f12;
fun_10006b0a(0, v40, 0x200, reinterpret_cast<uint32_t>(ebp1) + 0xfffffefc, 0x100, reinterpret_cast<uint32_t>(ebp1) + 0xfffffcfc, 0x100, v38, 0, v9, v8, v6, v4, v42, v43, v44, v45);
eax46 = reinterpret_cast<void*>(0);
do {
ecx47 = *reinterpret_cast<uint16_t*>(reinterpret_cast<uint32_t>(ebp1) + reinterpret_cast<uint32_t>(eax46) * 2 - 0x504);
if (!(*reinterpret_cast<unsigned char*>(&ecx47) & 1)) {
if (!(*reinterpret_cast<unsigned char*>(&ecx47) & 2)) {
*reinterpret_cast<signed char*>(reinterpret_cast<int32_t>(esi48) + reinterpret_cast<uint32_t>(eax46) + 0x11d) = 0;
continue;
} else {
*reinterpret_cast<unsigned char*>(reinterpret_cast<int32_t>(esi49) + reinterpret_cast<uint32_t>(eax46) + 29) = reinterpret_cast<unsigned char>(*reinterpret_cast<unsigned char*>(reinterpret_cast<int32_t>(esi50) + reinterpret_cast<uint32_t>(eax46) + 29) | 32);
cl51 = *reinterpret_cast<signed char*>(reinterpret_cast<uint32_t>(ebp1) + reinterpret_cast<uint32_t>(eax46) - 0x304);
}
} else {
*reinterpret_cast<unsigned char*>(reinterpret_cast<int32_t>(esi52) + reinterpret_cast<uint32_t>(eax46) + 29) = reinterpret_cast<unsigned char>(*reinterpret_cast<unsigned char*>(reinterpret_cast<int32_t>(esi53) + reinterpret_cast<uint32_t>(eax46) + 29) | 16);
cl51 = *reinterpret_cast<signed char*>(reinterpret_cast<uint32_t>(ebp1) + reinterpret_cast<uint32_t>(eax46) - 0x204);
}
*reinterpret_cast<signed char*>(reinterpret_cast<int32_t>(esi54) + reinterpret_cast<uint32_t>(eax46) + 0x11d) = cl51;
eax46 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(eax46) + 1);
} while (reinterpret_cast<uint32_t>(eax46) < 0x100);
goto addr_10002d03_15;
addr_10002bd4_14:
do {
ecx55 = reinterpret_cast<void**>(static_cast<uint32_t>(al24));
eax56 = reinterpret_cast<void**>(static_cast<uint32_t>(v57));
if (reinterpret_cast<unsigned char>(ecx55) <= reinterpret_cast<unsigned char>(eax56)) {
fun_10005bc0(ecx55, reinterpret_cast<uint32_t>(ebp1) + reinterpret_cast<unsigned char>(ecx55) + 0xfffffefc, 32, reinterpret_cast<unsigned char>(eax56) - reinterpret_cast<unsigned char>(ecx55) + 1, v9, v8, v6, v4, v58, v59, v60, v61);
}
al24 = v62;
} while (al24);
goto addr_10002c04_13;
}
void** fun_10001d91(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11);
void** fun_10006b50(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8);
struct s30 {
signed char[112] pad112;
uint32_t f112;
};
void** fun_10006c37(void** a1, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8) {
void*** ebp9;
void** ecx10;
void** v11;
void** v12;
void** v13;
void** v14;
void** ebp15;
void** eax16;
signed char v17;
struct s30* v18;
ebp9 = reinterpret_cast<void***>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 4);
ecx10 = reinterpret_cast<void**>(ebp9 + 0xfffffff0);
fun_10001d91(ecx10, a1, v11, v12, v13, v14, ebp15, __return_address(), a1, a2, a3);
eax16 = fun_10006b50(ecx10, ebp9 + 0xfffffff0, a2, a3, a4, a5, a6, a8);
if (v17) {
v18->f112 = v18->f112 & 0xfffffffd;
}
return eax16;
}
void** fun_10006923(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10);
struct s31 {
signed char[112] pad112;
uint32_t f112;
};
void** fun_10006b0a(void** a1, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15, void** a16, void** a17) {
void*** ebp18;
void** ecx19;
void** v20;
void** v21;
void** v22;
void** v23;
void** ebp24;
void** eax25;
signed char v26;
struct s31* v27;
ebp18 = reinterpret_cast<void***>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 4);
ecx19 = reinterpret_cast<void**>(ebp18 + 0xfffffff0);
fun_10001d91(ecx19, a1, v20, v21, v22, v23, ebp24, __return_address(), a1, a2, a3);
eax25 = fun_10006923(ecx19, ebp18 + 0xfffffff0, a2, a3, a4, a5, a6, a7, a8, a9);
if (v26) {
v27->f112 = v27->f112 & 0xfffffffd;
}
return eax25;
}
void** fun_10003e4a(void** ecx, void** a2, void** a3, void** a4, void** a5);
int32_t GetStartupInfoW = 0xcb26;
void** g1000fb40;
struct s32 {
signed char[3] pad3;
void** f3;
signed char[27] pad31;
unsigned char f31;
int16_t f32;
signed char f33;
signed char[12] pad47;
void** f47;
signed char[3] pad51;
void** f51;
};
int32_t GetFileType = 0xcb18;
struct s33 {
int32_t f0;
void** f4;
signed char[3] pad8;
int32_t f8;
};
int32_t InitializeCriticalSectionAndSpinCount = 0xcaf0;
struct s34 {
void** f0;
signed char[3] pad4;
unsigned char f4;
signed char[3] pad8;
int32_t f8;
};
int32_t GetStdHandle = 0xcae0;
int32_t SetHandleCount = 0xcace;
void fun_10003e6f(void** ecx, void** a2) {
void** ebp3;
void** v4;
void** v5;
void** v6;
void** edi7;
void** edi8;
void** v9;
void** esi10;
void** v11;
void** v12;
void** v13;
void** v14;
void** v15;
void** v16;
void** v17;
void** eax18;
void** ecx19;
struct s32* eax20;
void** esi21;
void** v22;
void** ebx23;
void** v24;
int16_t v25;
void** v26;
void** ebx27;
void** eax28;
void** v29;
int32_t* v30;
int1_t less31;
void** edi32;
int32_t ebx33;
int32_t v34;
int32_t eax35;
struct s33* esi36;
uint32_t eax37;
struct s34* tmp32_38;
void** eax39;
uint32_t eax40;
uint32_t eax41;
void*** edi42;
void** v43;
void** v44;
void** v45;
void** v46;
void** eax47;
void** tmp32_48;
struct s32* eax49;
int1_t less50;
fun_10007b81(ecx, ebp3, __return_address(), a2, v4, v5, v6);
fun_100079d2(ecx, a2, ebp3, __return_address(), a2);
fun_10003e4a(a2, 0xff, ebp3, __return_address(), a2);
edi7 = edi8;
v9 = esi10;
v11 = reinterpret_cast<void**>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 4 - 4 + 4 - 4 - 4 + 4 + 4 - 4 - 4 + 4 - 4 + 0xffffffb4);
GetStartupInfoW(a2);
eax18 = fun_10003b2d(a2, 32, 64, v11, v9, v12, v13, v14, v15, v16, v17);
ecx19 = reinterpret_cast<void**>(0);
if (eax18) {
g1000fb40 = eax18;
g1000fb2c = reinterpret_cast<void**>(32);
if (reinterpret_cast<unsigned char>(eax18) < reinterpret_cast<unsigned char>(eax18 + 0x800)) {
eax20 = reinterpret_cast<struct s32*>(eax18 + 5);
do {
*reinterpret_cast<void***>(reinterpret_cast<uint32_t>(eax20) + 0xfffffffb) = reinterpret_cast<void**>(0xffffffff);
*reinterpret_cast<int16_t*>(reinterpret_cast<uint32_t>(eax20) + 0xffffffff) = 0xa00;
eax20->f3 = reinterpret_cast<void**>(0);
eax20->f31 = reinterpret_cast<unsigned char>(0xa00);
*reinterpret_cast<signed char*>(reinterpret_cast<uint32_t>(eax20) + 33) = 10;
eax20->f51 = reinterpret_cast<void**>(0);
eax20->f47 = reinterpret_cast<void**>(0);
esi21 = g1000fb40;
eax20 = reinterpret_cast<struct s32*>(reinterpret_cast<uint32_t>(eax20) + 64);
} while (reinterpret_cast<unsigned char>(reinterpret_cast<uint32_t>(eax20) + 0xfffffffb) < reinterpret_cast<unsigned char>(esi21 + 0x800));
}
v22 = ebx23;
v24 = edi7;
if (!v25)
goto addr_10004020_7;
if (!v26)
goto addr_10004020_7;
ebx27 = *reinterpret_cast<void***>(v26);
eax28 = v26 + 4;
v29 = eax28;
v30 = reinterpret_cast<int32_t*>(reinterpret_cast<unsigned char>(eax28) + reinterpret_cast<unsigned char>(ebx27));
if (reinterpret_cast<signed char>(ebx27) >= reinterpret_cast<signed char>(0x800)) {
ebx27 = reinterpret_cast<void**>(0x800);
}
less31 = reinterpret_cast<signed char>(g1000fb2c) < reinterpret_cast<signed char>(ebx27);
if (less31)
goto addr_10003f3d_12;
} else {
goto addr_100040ca_14;
}
addr_10003fa8_15:
edi32 = reinterpret_cast<void**>(0);
if (reinterpret_cast<uint1_t>(reinterpret_cast<signed char>(ebx27) < reinterpret_cast<signed char>(0)) | reinterpret_cast<uint1_t>(ebx27 == 0)) {
addr_10004020_7:
ebx33 = 0;
} else {
do {
if (*v30 != -1 && (*v30 != -2 && ((ecx19 = v29, ecx19 = *reinterpret_cast<void***>(ecx19), !!(reinterpret_cast<unsigned char>(ecx19) & 1)) && (reinterpret_cast<unsigned char>(ecx19) & 8 || (v34 = *v30, eax35 = reinterpret_cast<int32_t>(GetFileType(v34)), !!eax35))))) {
esi36 = reinterpret_cast<struct s33*>(((reinterpret_cast<unsigned char>(edi32) & 31) << 6) + reinterpret_cast<int32_t>(*reinterpret_cast<int32_t**>((reinterpret_cast<signed char>(edi32) >> 5) * 4 + 0x1000fb40)));
esi36->f0 = *v30;
esi36->f4 = *reinterpret_cast<void***>(v29);
eax37 = reinterpret_cast<uint32_t>(InitializeCriticalSectionAndSpinCount(esi36 + 1));
if (!eax37)
goto addr_100040cd_18;
esi36->f8 = esi36->f8 + 1;
}
++v30;
++edi32;
++v29;
} while (reinterpret_cast<signed char>(edi32) < reinterpret_cast<signed char>(ebx27));
goto addr_10004020_7;
}
do {
tmp32_38 = reinterpret_cast<struct s34*>((ebx33 << 6) + reinterpret_cast<unsigned char>(g1000fb40));
if (tmp32_38->f0 == 0xffffffff || tmp32_38->f0 == 0xfffffffe) {
tmp32_38->f4 = 0x81;
if (ebx33) {
}
eax39 = reinterpret_cast<void**>(GetStdHandle(ecx19));
if (eax39 == 0xffffffff || (!eax39 || (eax40 = reinterpret_cast<uint32_t>(GetFileType(ecx19, eax39)), eax40 == 0))) {
tmp32_38->f4 = reinterpret_cast<unsigned char>(tmp32_38->f4 | 64);
tmp32_38->f0 = reinterpret_cast<void**>(0xfffffffe);
} else {
eax41 = eax40 & 0xff;
tmp32_38->f0 = eax39;
if (eax41 != 2) {
if (eax41 == 3) {
tmp32_38->f4 = reinterpret_cast<unsigned char>(tmp32_38->f4 | 8);
}
} else {
tmp32_38->f4 = reinterpret_cast<unsigned char>(tmp32_38->f4 | 64);
}
eax37 = reinterpret_cast<uint32_t>(InitializeCriticalSectionAndSpinCount(ecx19, tmp32_38 + 1, 0xfa0, eax39));
if (!eax37)
goto addr_100040cd_18;
tmp32_38->f8 = tmp32_38->f8 + 1;
}
} else {
tmp32_38->f4 = reinterpret_cast<unsigned char>(tmp32_38->f4 | 0x80);
}
++ebx33;
} while (ebx33 < 3);
SetHandleCount(ecx19);
addr_100040c8_36:
addr_100040ca_14:
goto 0xff;
addr_100040cd_18:
goto addr_100040c8_36;
addr_10003f3d_12:
edi42 = reinterpret_cast<void***>(0x1000fb44);
do {
eax47 = fun_10003b2d(ecx19, 32, 64, v24, v22, v11, v9, v43, v44, v45, v46);
ecx19 = reinterpret_cast<void**>(64);
if (!eax47)
break;
tmp32_48 = g1000fb2c + 32;
g1000fb2c = tmp32_48;
ecx19 = eax47 + 0x800;
*edi42 = eax47;
if (reinterpret_cast<unsigned char>(eax47) < reinterpret_cast<unsigned char>(ecx19)) {
eax49 = reinterpret_cast<struct s32*>(eax47 + 5);
do {
*reinterpret_cast<void***>(reinterpret_cast<uint32_t>(eax49) + 0xfffffffb) = reinterpret_cast<void**>(0xffffffff);
eax49->f3 = reinterpret_cast<void**>(0);
eax49->f31 = reinterpret_cast<unsigned char>(eax49->f31 & 0x80);
eax49->f51 = reinterpret_cast<void**>(0);
*reinterpret_cast<int16_t*>(reinterpret_cast<uint32_t>(eax49) + 0xffffffff) = 0xa00;
eax49->f32 = 0xa0a;
eax49->f47 = reinterpret_cast<void**>(0);
eax49 = reinterpret_cast<struct s32*>(reinterpret_cast<uint32_t>(eax49) + 64);
ecx19 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(*edi42) + reinterpret_cast<unsigned char>(0x800));
} while (reinterpret_cast<unsigned char>(reinterpret_cast<uint32_t>(eax49) + 0xfffffffb) < reinterpret_cast<unsigned char>(ecx19));
}
edi42 = edi42 + 4;
less50 = reinterpret_cast<signed char>(g1000fb2c) < reinterpret_cast<signed char>(ebx27);
} while (less50);
goto addr_10003fa0_42;
ebx27 = g1000fb2c;
goto addr_10003fa8_15;
addr_10003fa0_42:
goto addr_10003fa8_15;
}
void** fun_10002416(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15, void** a16, void** a17, void** a18, void** a19) {
void** v20;
void** eax21;
void** esi22;
void** ebp23;
void** eax24;
void** eax25;
if (a2 && (v20 = g1000e2e8, eax21 = reinterpret_cast<void**>(HeapFree(ecx, v20, 0, a2)), !eax21)) {
eax24 = fun_10002896(ecx, esi22, v20, 0, a2, ebp23, __return_address(), a2, a3, a4, a5);
eax25 = reinterpret_cast<void**>(GetLastError(ecx));
eax21 = fun_10002854(ecx, eax25, esi22, v20, 0, a2);
*reinterpret_cast<void***>(eax24) = eax21;
}
return eax21;
}
struct s35 {
signed char[4] pad4;
int32_t f4;
int32_t f8;
int32_t f12;
int32_t f16;
signed char[8] pad28;
void** f28;
};
struct s36 {
int32_t f0;
int32_t f4;
};
struct s37 {
int32_t f0;
int32_t f4;
};
struct s38 {
signed char[28] pad28;
signed char f28;
signed char[256] pad285;
signed char f285;
};
void fun_10002b1d(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6) {
struct s35* eax7;
void** edi8;
void** esi9;
struct s36* edi10;
struct s37* edi11;
struct s38* esi12;
signed char* eax13;
void* ecx14;
int32_t edi15;
signed char* eax16;
int32_t esi17;
fun_10005bc0(ecx, &eax7->f28, 0, 0x101, edi8, esi9, __return_address(), a2, a3, a4, a5, a6);
eax7->f4 = 0;
eax7->f8 = 0;
eax7->f12 = 0;
edi10 = reinterpret_cast<struct s36*>(&eax7->f16);
edi10->f0 = 0;
edi11 = reinterpret_cast<struct s37*>(&edi10->f4);
edi11->f0 = 0;
edi11->f4 = 0;
esi12 = reinterpret_cast<struct s38*>(&eax7->f4 + 1 + 1);
eax13 = &esi12->f28;
ecx14 = reinterpret_cast<void*>(0x1000d1d0 - reinterpret_cast<int32_t>(esi12));
edi15 = 0x101;
do {
*eax13 = *reinterpret_cast<signed char*>(reinterpret_cast<int32_t>(ecx14) + reinterpret_cast<int32_t>(eax13));
++eax13;
--edi15;
} while (edi15);
eax16 = &esi12->f285;
esi17 = 0x100;
do {
*eax16 = *reinterpret_cast<signed char*>(reinterpret_cast<int32_t>(eax16) + reinterpret_cast<int32_t>(ecx14));
++eax16;
--esi17;
} while (esi17);
return;
}
void** fun_10002aee(void** a1, void** a2, void** a3) {
int32_t eax4;
int32_t eax5;
int32_t eax6;
int32_t eax7;
eax4 = eax5 - 0x3a4;
if (!eax4) {
return 0x411;
} else {
eax6 = eax4 - 4;
if (!eax6) {
return 0x804;
} else {
eax7 = eax6 - 13;
if (!eax7) {
return 0x412;
} else {
if (!(eax7 - 1)) {
return 0x404;
} else {
return 0;
}
}
}
}
}
void** fun_10003ae8(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15) {
void** v16;
void** v17;
void** ebp18;
void** v19;
void** esi20;
void** v21;
void** edi22;
void** esi23;
void** eax24;
int1_t below_or_equal25;
void** eax26;
int1_t below_or_equal27;
v16 = reinterpret_cast<void**>(__return_address());
v17 = ebp18;
v19 = esi20;
v21 = edi22;
esi23 = reinterpret_cast<void**>(0);
do {
eax24 = fun_10004bb8(ecx, a2, v21, v19, v17, v16, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15);
ecx = a2;
if (eax24)
break;
below_or_equal25 = reinterpret_cast<unsigned char>(g1000e1a4) <= reinterpret_cast<unsigned char>(eax24);
if (below_or_equal25)
break;
Sleep(ecx, esi23);
eax26 = esi23 + 0x3e8;
below_or_equal27 = reinterpret_cast<unsigned char>(eax26) <= reinterpret_cast<unsigned char>(g1000e1a4);
if (!below_or_equal27) {
eax26 = reinterpret_cast<void**>(0xffffffff);
}
esi23 = eax26;
} while (!reinterpret_cast<int1_t>(eax26 == 0xffffffff));
return eax24;
}
void** fun_10002db5(void** a1, void** a2, void** a3);
struct s39 {
unsigned char f0;
unsigned char f1;
};
int32_t IsValidCodePage = 0xca46;
void** g1000e170;
void** fun_10002e33(void** ecx, int32_t a2, void** a3) {
void* ebp4;
void** eax5;
uint32_t v6;
void** v7;
void** ebx8;
void** ebx9;
void** v10;
void** esi11;
void** v12;
void** edi13;
void** eax14;
void** edi15;
void** v16;
void** v17;
uint32_t eax18;
void** v19;
void** v20;
void** v21;
void** v22;
uint32_t ecx23;
void** v24;
struct s39* esi25;
struct s39* v26;
void* edi27;
void* eax28;
void** eax29;
void** eax30;
void*** ecx31;
int32_t edx32;
void** eax33;
void** v34;
void** v35;
void** v36;
int1_t zf37;
void** v38;
void** v39;
void** v40;
signed char v41;
void** v42;
void* eax43;
unsigned char v44;
void* ecx45;
signed char v46;
unsigned char* eax47;
int32_t ecx48;
void** eax49;
void** edi50;
void** edi51;
ebp4 = reinterpret_cast<void*>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 4);
eax5 = g1000d050;
v6 = reinterpret_cast<unsigned char>(eax5) ^ reinterpret_cast<uint32_t>(ebp4);
v7 = ebx8;
ebx9 = a3;
v10 = esi11;
v12 = edi13;
eax14 = fun_10002db5(v12, v10, v7);
edi15 = eax14;
v16 = edi15;
if (!edi15)
goto addr_10002e5e_2;
v17 = reinterpret_cast<void**>(0);
eax18 = 0;
do {
if (*reinterpret_cast<void***>(eax18 + 0x1000d600) == edi15)
break;
++v17;
eax18 = eax18 + 48;
} while (eax18 < 0xf0);
goto addr_10002e8a_6;
fun_10005bc0(ecx, ebx9 + 28, 0, 0x101, v12, v10, v7, v19, v17, v20, v21, v22);
ecx23 = reinterpret_cast<unsigned char>(v17) * 48;
v24 = reinterpret_cast<void**>(0);
esi25 = reinterpret_cast<struct s39*>(ecx23 + 0x1000d610);
v26 = esi25;
while (1) {
if (!esi25->f0 || !esi25->f1) {
++v24;
esi25 = v26 + 4;
v26 = esi25;
if (reinterpret_cast<unsigned char>(v24) >= reinterpret_cast<unsigned char>(4))
break;
} else {
edi27 = reinterpret_cast<void*>(static_cast<uint32_t>(esi25->f0));
eax28 = reinterpret_cast<void*>(static_cast<uint32_t>(esi25->f1));
while (reinterpret_cast<uint32_t>(edi27) <= reinterpret_cast<uint32_t>(eax28)) {
*reinterpret_cast<unsigned char*>(reinterpret_cast<unsigned char>(ebx9) + reinterpret_cast<uint32_t>(edi27) + 29) = reinterpret_cast<unsigned char>(*reinterpret_cast<unsigned char*>(reinterpret_cast<unsigned char>(ebx9) + reinterpret_cast<uint32_t>(edi27) + 29) | *reinterpret_cast<unsigned char*>(v24 + 0x1000d5fc));
eax28 = reinterpret_cast<void*>(static_cast<uint32_t>(esi25->f1));
edi27 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(edi27) + 1);
}
edi15 = v16;
++esi25;
}
}
*reinterpret_cast<void***>(ebx9 + 4) = edi15;
*reinterpret_cast<void***>(ebx9 + 8) = reinterpret_cast<void**>(1);
eax29 = fun_10002aee(v12, v10, v7);
*reinterpret_cast<void***>(ebx9 + 12) = eax29;
eax30 = ebx9 + 16;
ecx31 = reinterpret_cast<void***>(ecx23 + 0x1000d604);
edx32 = 6;
do {
*reinterpret_cast<void***>(eax30) = *ecx31;
ecx31 = ecx31 + 2;
eax30 = eax30 + 2;
--edx32;
} while (edx32);
addr_10002fa5_16:
fun_10002b81();
addr_10002e65_17:
addr_1000300d_18:
eax33 = fun_10001cc4(v6 ^ reinterpret_cast<uint32_t>(ebp4), v24);
return eax33;
addr_10002e8a_6:
if (edi15 == 0xfde8)
goto addr_1000300a_19;
if (edi15 == 0xfde9)
goto addr_1000300a_19;
v34 = reinterpret_cast<void**>(static_cast<uint32_t>(*reinterpret_cast<uint16_t*>(&edi15)));
eax18 = reinterpret_cast<uint32_t>(IsValidCodePage(v34));
if (!eax18)
goto addr_1000300a_19;
v35 = reinterpret_cast<void**>(reinterpret_cast<uint32_t>(ebp4) + 0xffffffe8);
v36 = edi15;
eax18 = reinterpret_cast<uint32_t>(GetCPInfo(v36, v35, v34));
if (!eax18) {
zf37 = g1000e170 == 0;
if (!zf37) {
addr_10002e5e_2:
fun_10002b1d(ecx, v12, v10, v7, v38, v17);
goto addr_10002e65_17;
} else {
addr_1000300a_19:
goto addr_1000300d_18;
}
} else {
fun_10005bc0(ecx, ebx9 + 28, 0, 0x101, v36, v35, v34, v12, v10, v7, v39, v17);
*reinterpret_cast<void***>(ebx9 + 4) = edi15;
*reinterpret_cast<void***>(ebx9 + 12) = reinterpret_cast<void**>(0);
if (reinterpret_cast<unsigned char>(v40) <= reinterpret_cast<unsigned char>(1)) {
*reinterpret_cast<void***>(ebx9 + 8) = reinterpret_cast<void**>(0);
} else {
if (v41) {
do {
if (!v42)
break;
eax43 = reinterpret_cast<void*>(static_cast<uint32_t>(v44));
ecx45 = reinterpret_cast<void*>(static_cast<uint32_t>(reinterpret_cast<unsigned char>(v42)));
while (reinterpret_cast<uint32_t>(eax43) <= reinterpret_cast<uint32_t>(ecx45)) {
*reinterpret_cast<unsigned char*>(reinterpret_cast<unsigned char>(ebx9) + reinterpret_cast<uint32_t>(eax43) + 29) = reinterpret_cast<unsigned char>(*reinterpret_cast<unsigned char*>(reinterpret_cast<unsigned char>(ebx9) + reinterpret_cast<uint32_t>(eax43) + 29) | 4);
eax43 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(eax43) + 1);
}
} while (v46);
}
eax47 = reinterpret_cast<unsigned char*>(ebx9 + 30);
ecx48 = 0xfe;
do {
*eax47 = reinterpret_cast<unsigned char>(*eax47 | 8);
++eax47;
--ecx48;
} while (ecx48);
eax49 = fun_10002aee(v36, v35, v34);
*reinterpret_cast<void***>(ebx9 + 12) = eax49;
*reinterpret_cast<void***>(ebx9 + 8) = reinterpret_cast<void**>(1);
}
edi50 = ebx9 + 16;
*reinterpret_cast<void***>(edi50) = reinterpret_cast<void**>(0);
edi51 = edi50 + 4;
*reinterpret_cast<void***>(edi51) = reinterpret_cast<void**>(0);
*reinterpret_cast<void***>(edi51 + 4) = reinterpret_cast<void**>(0);
goto addr_10002fa5_16;
}
}
int32_t fun_10006d2f(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15);
int32_t EnterCriticalSection = 0xcc6e;
void fun_10006df1(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11) {
void** esi12;
void** ebp13;
int32_t eax14;
if (!*reinterpret_cast<int32_t*>(reinterpret_cast<unsigned char>(a2) * 8 + 0x1000dc40) && (eax14 = fun_10006d2f(ecx, a2, esi12, ebp13, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11), ecx = a2, !eax14)) {
fun_10003e6f(ecx, 17);
ecx = reinterpret_cast<void**>(17);
}
EnterCriticalSection(ecx);
goto ebp13;
}
struct s40 {
signed char[8] pad8;
void** f8;
};
struct s41 {
signed char[8] pad8;
int32_t f8;
};
struct s42 {
signed char[104] pad104;
void** f104;
signed char[7] pad112;
unsigned char f112;
};
void** g1000e180;
void** g1000e184;
void** g1000e188;
struct s43 {
signed char[268489712] pad268489712;
signed char f268489712;
};
struct s44 {
signed char[268489976] pad268489976;
signed char f268489976;
};
void fun_1000317d(void** ecx, void** a2, void** a3, void** a4, void** a5);
void fun_1000301c(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15) {
void** v16;
int32_t ebp17;
void** eax18;
int32_t ebp19;
void** ebx20;
void** eax21;
struct s40* ebp22;
int32_t ebp23;
void** eax24;
void** ebx25;
void** ecx26;
void** esi27;
void** edi28;
int32_t v29;
struct s41* ebp30;
void** eax31;
int32_t ebp32;
void** eax33;
struct s42* esi34;
int32_t ebp35;
void** v36;
int32_t eax37;
void** v38;
void** v39;
int32_t edi40;
int1_t zf41;
int32_t ebp42;
int32_t eax43;
int32_t ebp44;
struct s43* eax45;
int32_t ebp46;
struct s44* eax47;
int32_t ebp48;
void** v49;
int32_t eax50;
void** eax51;
int32_t ebp52;
v16 = reinterpret_cast<void**>(__return_address());
fun_10004570(0x1000c3e0, 20, v16);
*reinterpret_cast<uint32_t*>(ebp17 - 32) = 0xffffffff;
eax18 = fun_100036bd(ecx, 0x1000c3e0, 20, v16, a2, a3, a4, a5, a6);
*reinterpret_cast<void***>(ebp19 - 36) = eax18;
fun_10002d11(ecx, 0x1000c3e0, 20, v16, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11);
ebx20 = *reinterpret_cast<void***>(eax18 + 0x68);
eax21 = fun_10002db5(0x1000c3e0, 20, v16);
ebp22->f8 = eax21;
if (eax21 == *reinterpret_cast<void***>(ebx20 + 4)) {
*reinterpret_cast<uint32_t*>(ebp23 - 32) = 0;
goto addr_100031ad_3;
}
eax24 = fun_10003ae8(ecx, 0x220, 0x1000c3e0, 20, v16, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11);
ecx = reinterpret_cast<void**>(0x220);
ebx25 = eax24;
if (!ebx25)
goto addr_100031ad_3;
ecx26 = reinterpret_cast<void**>(0x88);
esi27 = *reinterpret_cast<void***>(eax18 + 0x68);
edi28 = ebx25;
while (ecx26) {
--ecx26;
*reinterpret_cast<void***>(edi28) = *reinterpret_cast<void***>(esi27);
edi28 = edi28 + 4;
esi27 = esi27 + 4;
}
*reinterpret_cast<void***>(ebx25) = reinterpret_cast<void**>(0);
v29 = ebp30->f8;
eax31 = fun_10002e33(ecx26, v29, ebx25);
ecx = ebx25;
*reinterpret_cast<void***>(ebp32 - 32) = eax31;
if (!eax31)
goto addr_1000308c_9;
if (reinterpret_cast<int1_t>(eax31 == 0xffffffff)) {
if (ebx25 != 0x1000d1d0) {
fun_10002416(ecx, ebx25, 0x1000c3e0, 20, v16, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15);
ecx = ebx25;
}
eax33 = fun_10002896(ecx, 0x1000c3e0, 20, v16, a2, a3, a4, a5, a6, a7, a8);
*reinterpret_cast<void***>(eax33) = reinterpret_cast<void**>(22);
goto addr_100031ad_3;
}
addr_1000308c_9:
esi34 = *reinterpret_cast<struct s42**>(ebp35 - 36);
v36 = esi34->f104;
eax37 = reinterpret_cast<int32_t>(InterlockedDecrement(ecx, v36));
if (!eax37 && esi34->f104 != 0x1000d1d0) {
v38 = esi34->f104;
fun_10002416(ecx, v38, v36, 0x1000c3e0, 20, v16, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14);
ecx = v38;
}
esi34->f104 = ebx25;
v39 = ebx25;
edi40 = InterlockedIncrement;
edi40(ecx, v39, v36);
if (esi34->f112 & 2 || (zf41 = (*reinterpret_cast<unsigned char*>(&g1000d6f0) & 1) == 0, !zf41)) {
addr_100031ad_3:
fun_100045b5(ecx, 0x1000c3e0, 20, v16, a2, a3);
goto 0x1000c3e0;
} else {
fun_10006df1(ecx, 13, v39, v36, 0x1000c3e0, 20, v16, a2, a3, a4, a5);
ecx = reinterpret_cast<void**>(13);
*reinterpret_cast<uint32_t*>(ebp42 - 4) = 0;
g1000e180 = *reinterpret_cast<void***>(ebx25 + 4);
g1000e184 = *reinterpret_cast<void***>(ebx25 + 8);
g1000e188 = *reinterpret_cast<void***>(ebx25 + 12);
eax43 = 0;
while (*reinterpret_cast<int32_t*>(ebp44 - 28) = eax43, eax43 < 5) {
*reinterpret_cast<int16_t*>(&ecx) = *reinterpret_cast<int16_t*>(reinterpret_cast<uint32_t>(ebx25 + eax43 * 2) + 16);
*reinterpret_cast<int16_t*>(eax43 * 2 + 0x1000e174) = *reinterpret_cast<int16_t*>(&ecx);
++eax43;
}
eax45 = reinterpret_cast<struct s43*>(0);
while (*reinterpret_cast<struct s43**>(ebp46 - 28) = eax45, reinterpret_cast<int32_t>(eax45) < 0x101) {
*reinterpret_cast<signed char*>(&ecx) = *reinterpret_cast<signed char*>(reinterpret_cast<int32_t>(eax45) + reinterpret_cast<unsigned char>(ebx25) + 28);
*reinterpret_cast<signed char*>(reinterpret_cast<int32_t>(eax45) + 0x1000d3f0) = *reinterpret_cast<signed char*>(&ecx);
eax45 = reinterpret_cast<struct s43*>(reinterpret_cast<int32_t>(eax45) + 1);
}
eax47 = reinterpret_cast<struct s44*>(0);
while (*reinterpret_cast<struct s44**>(ebp48 - 28) = eax47, reinterpret_cast<int32_t>(eax47) < 0x100) {
*reinterpret_cast<signed char*>(&ecx) = *reinterpret_cast<signed char*>(reinterpret_cast<int32_t>(eax47) + reinterpret_cast<unsigned char>(ebx25) + 0x11d);
*reinterpret_cast<signed char*>(reinterpret_cast<int32_t>(eax47) + 0x1000d4f8) = *reinterpret_cast<signed char*>(&ecx);
eax47 = reinterpret_cast<struct s44*>(reinterpret_cast<int32_t>(eax47) + 1);
}
v49 = image_base_;
eax50 = reinterpret_cast<int32_t>(InterlockedDecrement(ecx, v49, v39, v36));
if (eax50)
goto addr_10003166_26;
eax51 = image_base_;
if (eax51 != 0x1000d1d0)
goto addr_1000315f_28;
}
addr_10003166_26:
image_base_ = ebx25;
edi40(ecx, ebx25, v49, v39, v36);
*reinterpret_cast<int32_t*>(ebp52 - 4) = -2;
fun_1000317d(ecx, ebx25, v49, v39, v36);
goto addr_100031ad_3;
addr_1000315f_28:
fun_10002416(ecx, eax51, v49, v39, v36, 0x1000c3e0, 20, v16, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12);
ecx = eax51;
goto addr_10003166_26;
}
struct s45 {
void** f0;
signed char[3] pad4;
void** f4;
};
void fun_100031d4(int32_t ecx, void** a2) {
int32_t v3;
int32_t ebx4;
int32_t esi5;
void** v6;
void** v7;
void** v8;
void** v9;
struct s45* ebx10;
int32_t v11;
void** v12;
void** v13;
v3 = ebx4;
esi5 = InterlockedIncrement;
esi5();
if (*reinterpret_cast<void***>(a2 + 0xb0)) {
v6 = *reinterpret_cast<void***>(a2 + 0xb0);
esi5(v6);
}
if (*reinterpret_cast<void***>(a2 + 0xb8)) {
v7 = *reinterpret_cast<void***>(a2 + 0xb8);
esi5(v7);
}
if (*reinterpret_cast<void***>(a2 + 0xb4)) {
v8 = *reinterpret_cast<void***>(a2 + 0xb4);
esi5(v8);
}
if (*reinterpret_cast<void***>(a2 + 0xc0)) {
v9 = *reinterpret_cast<void***>(a2 + 0xc0);
esi5(v9);
}
ebx10 = reinterpret_cast<struct s45*>(a2 + 80);
v11 = 6;
do {
if (*reinterpret_cast<int32_t*>(reinterpret_cast<uint32_t>(ebx10) - 8) != "C" && ebx10->f0) {
v12 = ebx10->f0;
esi5(v12);
}
if (*reinterpret_cast<void***>(reinterpret_cast<uint32_t>(ebx10) - 4) && ebx10->f4) {
v13 = ebx10->f4;
esi5(v13);
}
ebx10 = reinterpret_cast<struct s45*>(reinterpret_cast<uint32_t>(ebx10) + 16);
--v11;
} while (v11);
esi5();
goto v3;
}
void** fun_10003263(void** ecx, void** a2) {
void** edi3;
int32_t esi4;
void** v5;
void** v6;
void** v7;
void** v8;
struct s45* ebx9;
int32_t v10;
void** v11;
void** v12;
edi3 = a2;
if (edi3) {
esi4 = InterlockedDecrement;
esi4();
if (*reinterpret_cast<void***>(edi3 + 0xb0)) {
v5 = *reinterpret_cast<void***>(edi3 + 0xb0);
esi4(v5);
}
if (*reinterpret_cast<void***>(edi3 + 0xb8)) {
v6 = *reinterpret_cast<void***>(edi3 + 0xb8);
esi4(v6);
}
if (*reinterpret_cast<void***>(edi3 + 0xb4)) {
v7 = *reinterpret_cast<void***>(edi3 + 0xb4);
esi4(v7);
}
if (*reinterpret_cast<void***>(edi3 + 0xc0)) {
v8 = *reinterpret_cast<void***>(edi3 + 0xc0);
esi4(v8);
}
ebx9 = reinterpret_cast<struct s45*>(edi3 + 80);
v10 = 6;
do {
if (*reinterpret_cast<int32_t*>(reinterpret_cast<uint32_t>(ebx9) - 8) != "C" && ebx9->f0) {
v11 = ebx9->f0;
esi4(v11);
}
if (*reinterpret_cast<void***>(reinterpret_cast<uint32_t>(ebx9) - 4) && ebx9->f4) {
v12 = ebx9->f4;
esi4(v12);
}
ebx9 = reinterpret_cast<struct s45*>(reinterpret_cast<uint32_t>(ebx9) + 16);
--v10;
} while (v10);
esi4();
}
return edi3;
}
void** fun_10007204(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15);
void** fun_1000719b(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15);
void** fun_10006e24(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15);
void** fun_100032fc(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13) {
void** v14;
void** v15;
void** ebp16;
void** v17;
void** ebx18;
void** v19;
void** esi20;
void** esi21;
void** eax22;
void** v23;
void** edi24;
void** v25;
void** v26;
void** v27;
void** v28;
void** v29;
void** v30;
void** v31;
void** v32;
void** v33;
void** v34;
void** v35;
void** v36;
struct s45* edi37;
void** v38;
void** v39;
void** v40;
void** eax41;
v14 = reinterpret_cast<void**>(__return_address());
v15 = ebp16;
v17 = ebx18;
v19 = esi20;
esi21 = a2;
eax22 = *reinterpret_cast<void***>(esi21 + 0xbc);
v23 = edi24;
if (eax22 && (eax22 != 0x1000dd68 && (*reinterpret_cast<void***>(esi21 + 0xb0) && !*reinterpret_cast<void***>(*reinterpret_cast<void***>(esi21 + 0xb0))))) {
if (*reinterpret_cast<void***>(esi21 + 0xb8) && !*reinterpret_cast<void***>(*reinterpret_cast<void***>(esi21 + 0xb8))) {
v25 = *reinterpret_cast<void***>(esi21 + 0xb8);
fun_10002416(ecx, v25, v23, v19, v17, v15, v14, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13);
v26 = *reinterpret_cast<void***>(esi21 + 0xbc);
fun_10007204(ecx, v26, v25, v23, v19, v17, v15, v14, a2, a3, a4, a5, a6, a7, a8);
ecx = v25;
}
if (*reinterpret_cast<void***>(esi21 + 0xb4) && !*reinterpret_cast<void***>(*reinterpret_cast<void***>(esi21 + 0xb4))) {
v27 = *reinterpret_cast<void***>(esi21 + 0xb4);
fun_10002416(ecx, v27, v23, v19, v17, v15, v14, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13);
v28 = *reinterpret_cast<void***>(esi21 + 0xbc);
fun_1000719b(ecx, v28, v27, v23, v19, v17, v15, v14, a2, a3, a4, a5, a6, a7, a8);
ecx = v27;
}
v29 = *reinterpret_cast<void***>(esi21 + 0xb0);
fun_10002416(ecx, v29, v23, v19, v17, v15, v14, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13);
v30 = *reinterpret_cast<void***>(esi21 + 0xbc);
fun_10002416(ecx, v30, v29, v23, v19, v17, v15, v14, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12);
ecx = v29;
}
if (*reinterpret_cast<void***>(esi21 + 0xc0) && !*reinterpret_cast<void***>(*reinterpret_cast<void***>(esi21 + 0xc0))) {
v31 = *reinterpret_cast<void***>(esi21 + 0xc4) - 0xfe;
fun_10002416(ecx, v31, v23, v19, v17, v15, v14, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13);
v32 = *reinterpret_cast<void***>(esi21 + 0xcc) - 0x80;
fun_10002416(ecx, v32, v31, v23, v19, v17, v15, v14, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12);
v33 = *reinterpret_cast<void***>(esi21 + 0xd0) - 0x80;
fun_10002416(ecx, v33, v32, v31, v23, v19, v17, v15, v14, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11);
v34 = *reinterpret_cast<void***>(esi21 + 0xc0);
fun_10002416(ecx, v34, v33, v32, v31, v23, v19, v17, v15, v14, a2, a3, a4, a5, a6, a7, a8, a9, a10);
}
if (*reinterpret_cast<void***>(esi21 + 0xd4) != 0x1000d6f8 && !*reinterpret_cast<void***>(*reinterpret_cast<void***>(esi21 + 0xd4) + 0xb4)) {
v35 = *reinterpret_cast<void***>(esi21 + 0xd4);
fun_10006e24(ecx, v35, v23, v19, v17, v15, v14, a2, a3, a4, a5, a6, a7, a8, a9);
v36 = *reinterpret_cast<void***>(esi21 + 0xd4);
fun_10002416(ecx, v36, v35, v23, v19, v17, v15, v14, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12);
ecx = v35;
}
edi37 = reinterpret_cast<struct s45*>(esi21 + 80);
v38 = reinterpret_cast<void**>(6);
do {
if (*reinterpret_cast<int32_t*>(reinterpret_cast<uint32_t>(edi37) - 8) != "C" && (edi37->f0 && !*reinterpret_cast<void***>(edi37->f0))) {
v39 = edi37->f0;
fun_10002416(ecx, v39, v23, v19, v17, v15, v14, v38, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13);
ecx = v39;
}
if (*reinterpret_cast<void***>(reinterpret_cast<uint32_t>(edi37) - 4) && (edi37->f4 && !*reinterpret_cast<void***>(edi37->f4))) {
v40 = edi37->f4;
fun_10002416(ecx, v40, v23, v19, v17, v15, v14, v38, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13);
ecx = v40;
}
edi37 = reinterpret_cast<struct s45*>(reinterpret_cast<uint32_t>(edi37) + 16);
--v38;
} while (v38);
eax41 = fun_10002416(ecx, esi21, v23, v19, v17, v15, v14, v38, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13);
return eax41;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(72);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(72);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(72);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(72);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(72);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(72);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(72);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(76);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(76);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(76);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(76);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(76);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(76);
void** fun_10007204(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15) {
int1_t zf16;
void** v17;
void** esi18;
void** ebp19;
int1_t zf20;
void** v21;
int1_t zf22;
void** v23;
int1_t zf24;
void** v25;
int1_t zf26;
void** v27;
int1_t zf28;
void** v29;
int1_t zf30;
void** v31;
int1_t zf32;
void** v33;
int1_t zf34;
void** v35;
int1_t zf36;
void** v37;
int1_t zf38;
void** v39;
void** eax40;
int1_t zf41;
void** v42;
int1_t zf43;
void** v44;
if (a2) {
zf16 = *reinterpret_cast<void***>(a2 + 12) == image_base_;
if (!zf16) {
v17 = *reinterpret_cast<void***>(a2 + 12);
fun_10002416(ecx, v17, esi18, ebp19, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15);
ecx = v17;
}
zf20 = *reinterpret_cast<void***>(a2 + 16) == image_base_;
if (!zf20) {
v21 = *reinterpret_cast<void***>(a2 + 16);
fun_10002416(ecx, v21, esi18, ebp19, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15);
ecx = v21;
}
zf22 = *reinterpret_cast<void***>(a2 + 20) == image_base_;
if (!zf22) {
v23 = *reinterpret_cast<void***>(a2 + 20);
fun_10002416(ecx, v23, esi18, ebp19, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15);
ecx = v23;
}
zf24 = *reinterpret_cast<void***>(a2 + 24) == image_base_;
if (!zf24) {
v25 = *reinterpret_cast<void***>(a2 + 24);
fun_10002416(ecx, v25, esi18, ebp19, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15);
ecx = v25;
}
zf26 = *reinterpret_cast<void***>(a2 + 28) == image_base_;
if (!zf26) {
v27 = *reinterpret_cast<void***>(a2 + 28);
fun_10002416(ecx, v27, esi18, ebp19, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15);
ecx = v27;
}
zf28 = *reinterpret_cast<void***>(a2 + 32) == image_base_;
if (!zf28) {
v29 = *reinterpret_cast<void***>(a2 + 32);
fun_10002416(ecx, v29, esi18, ebp19, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15);
ecx = v29;
}
zf30 = *reinterpret_cast<void***>(a2 + 36) == image_base_;
if (!zf30) {
v31 = *reinterpret_cast<void***>(a2 + 36);
fun_10002416(ecx, v31, esi18, ebp19, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15);
ecx = v31;
}
zf32 = *reinterpret_cast<void***>(a2 + 56) == image_base_;
if (!zf32) {
v33 = *reinterpret_cast<void***>(a2 + 56);
fun_10002416(ecx, v33, esi18, ebp19, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15);
ecx = v33;
}
zf34 = *reinterpret_cast<void***>(a2 + 60) == image_base_;
if (!zf34) {
v35 = *reinterpret_cast<void***>(a2 + 60);
fun_10002416(ecx, v35, esi18, ebp19, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15);
ecx = v35;
}
zf36 = *reinterpret_cast<void***>(a2 + 64) == image_base_;
if (!zf36) {
v37 = *reinterpret_cast<void***>(a2 + 64);
fun_10002416(ecx, v37, esi18, ebp19, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15);
ecx = v37;
}
zf38 = *reinterpret_cast<void***>(a2 + 68) == image_base_;
if (!zf38) {
v39 = *reinterpret_cast<void***>(a2 + 68);
fun_10002416(ecx, v39, esi18, ebp19, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15);
ecx = v39;
}
eax40 = *reinterpret_cast<void***>(a2 + 72);
zf41 = eax40 == image_base_;
if (!zf41) {
v42 = eax40;
eax40 = fun_10002416(ecx, v42, esi18, ebp19, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15);
ecx = v42;
}
zf43 = *reinterpret_cast<void***>(a2 + 76) == image_base_;
if (!zf43) {
v44 = *reinterpret_cast<void***>(a2 + 76);
eax40 = fun_10002416(ecx, v44, esi18, ebp19, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15);
}
}
return eax40;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(96);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(72);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(72);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(100);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(76);
void** fun_1000719b(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15) {
int1_t zf16;
void** v17;
void** esi18;
void** ebp19;
int1_t zf20;
void** v21;
int1_t zf22;
void** v23;
void** eax24;
int1_t zf25;
void** v26;
int1_t zf27;
void** v28;
if (a2) {
zf16 = *reinterpret_cast<void***>(a2) == image_base_;
if (!zf16) {
v17 = *reinterpret_cast<void***>(a2);
fun_10002416(ecx, v17, esi18, ebp19, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15);
ecx = v17;
}
zf20 = *reinterpret_cast<void***>(a2 + 4) == image_base_;
if (!zf20) {
v21 = *reinterpret_cast<void***>(a2 + 4);
fun_10002416(ecx, v21, esi18, ebp19, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15);
ecx = v21;
}
zf22 = *reinterpret_cast<void***>(a2 + 8) == image_base_;
if (!zf22) {
v23 = *reinterpret_cast<void***>(a2 + 8);
fun_10002416(ecx, v23, esi18, ebp19, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15);
ecx = v23;
}
eax24 = *reinterpret_cast<void***>(a2 + 48);
zf25 = eax24 == image_base_;
if (!zf25) {
v26 = eax24;
eax24 = fun_10002416(ecx, v26, esi18, ebp19, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15);
ecx = v26;
}
zf27 = *reinterpret_cast<void***>(a2 + 52) == image_base_;
if (!zf27) {
v28 = *reinterpret_cast<void***>(a2 + 52);
eax24 = fun_10002416(ecx, v28, esi18, ebp19, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15);
}
}
return eax24;
}
void** fun_10006e24(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15) {
void** v16;
void** esi17;
void** ebp18;
void** v19;
void** v20;
void** v21;
void** v22;
void** v23;
void** v24;
void** v25;
void** v26;
void** v27;
void** v28;
void** v29;
void** v30;
void** v31;
void** v32;
void** v33;
void** v34;
void** v35;
void** v36;
void** v37;
void** v38;
void** v39;
void** v40;
void** v41;
void** v42;
void** v43;
void** v44;
void** v45;
void** v46;
void** v47;
void** v48;
void** v49;
void** v50;
void** v51;
void** v52;
void** v53;
void** v54;
void** v55;
void** v56;
void** v57;
void** v58;
void** v59;
void** v60;
void** v61;
void** v62;
void** v63;
void** v64;
void** v65;
void** v66;
void** v67;
void** v68;
void** v69;
void** v70;
void** v71;
void** v72;
void** v73;
void** v74;
void** v75;
void** v76;
void** v77;
void** v78;
void** v79;
void** v80;
void** v81;
void** v82;
void** v83;
void** v84;
void** v85;
void** v86;
void** v87;
void** v88;
void** v89;
void** v90;
void** v91;
void** v92;
void** v93;
void** v94;
void** v95;
void** v96;
void** v97;
void** v98;
void** v99;
void** v100;
void** v101;
void** v102;
void** v103;
void** eax104;
if (a2) {
v16 = *reinterpret_cast<void***>(a2 + 4);
fun_10002416(ecx, v16, esi17, ebp18, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15);
v19 = *reinterpret_cast<void***>(a2 + 8);
fun_10002416(ecx, v19, v16, esi17, ebp18, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14);
v20 = *reinterpret_cast<void***>(a2 + 12);
fun_10002416(ecx, v20, v19, v16, esi17, ebp18, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13);
v21 = *reinterpret_cast<void***>(a2 + 16);
fun_10002416(ecx, v21, v20, v19, v16, esi17, ebp18, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12);
v22 = *reinterpret_cast<void***>(a2 + 20);
fun_10002416(ecx, v22, v21, v20, v19, v16, esi17, ebp18, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11);
v23 = *reinterpret_cast<void***>(a2 + 24);
fun_10002416(ecx, v23, v22, v21, v20, v19, v16, esi17, ebp18, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10);
v24 = *reinterpret_cast<void***>(a2);
fun_10002416(ecx, v24, v23, v22, v21, v20, v19, v16, esi17, ebp18, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9);
v25 = *reinterpret_cast<void***>(a2 + 32);
fun_10002416(ecx, v25, v24, v23, v22, v21, v20, v19, v16, esi17, ebp18, __return_address(), a2, a3, a4, a5, a6, a7, a8);
v26 = *reinterpret_cast<void***>(a2 + 36);
fun_10002416(ecx, v26, v25, v24, v23, v22, v21, v20, v19, v16, esi17, ebp18, __return_address(), a2, a3, a4, a5, a6, a7);
v27 = *reinterpret_cast<void***>(a2 + 40);
fun_10002416(ecx, v27, v26, v25, v24, v23, v22, v21, v20, v19, v16, esi17, ebp18, __return_address(), a2, a3, a4, a5, a6);
v28 = *reinterpret_cast<void***>(a2 + 44);
fun_10002416(ecx, v28, v27, v26, v25, v24, v23, v22, v21, v20, v19, v16, esi17, ebp18, __return_address(), a2, a3, a4, a5);
v29 = *reinterpret_cast<void***>(a2 + 48);
fun_10002416(ecx, v29, v28, v27, v26, v25, v24, v23, v22, v21, v20, v19, v16, esi17, ebp18, __return_address(), a2, a3, a4);
v30 = *reinterpret_cast<void***>(a2 + 52);
fun_10002416(ecx, v30, v29, v28, v27, v26, v25, v24, v23, v22, v21, v20, v19, v16, esi17, ebp18, __return_address(), a2, a3);
v31 = *reinterpret_cast<void***>(a2 + 28);
fun_10002416(ecx, v31, v30, v29, v28, v27, v26, v25, v24, v23, v22, v21, v20, v19, v16, esi17, ebp18, __return_address(), a2);
v32 = *reinterpret_cast<void***>(a2 + 56);
fun_10002416(ecx, v32, v31, v30, v29, v28, v27, v26, v25, v24, v23, v22, v21, v20, v19, v16, esi17, ebp18, __return_address());
v33 = *reinterpret_cast<void***>(a2 + 60);
fun_10002416(ecx, v33, v32, v31, v30, v29, v28, v27, v26, v25, v24, v23, v22, v21, v20, v19, v16, esi17, ebp18);
v34 = *reinterpret_cast<void***>(a2 + 64);
fun_10002416(ecx, v34, esi17, ebp18, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15);
v35 = *reinterpret_cast<void***>(a2 + 68);
fun_10002416(ecx, v35, v34, esi17, ebp18, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14);
v36 = *reinterpret_cast<void***>(a2 + 72);
fun_10002416(ecx, v36, v35, v34, esi17, ebp18, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13);
v37 = *reinterpret_cast<void***>(a2 + 76);
fun_10002416(ecx, v37, v36, v35, v34, esi17, ebp18, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12);
v38 = *reinterpret_cast<void***>(a2 + 80);
fun_10002416(ecx, v38, v37, v36, v35, v34, esi17, ebp18, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11);
v39 = *reinterpret_cast<void***>(a2 + 84);
fun_10002416(ecx, v39, v38, v37, v36, v35, v34, esi17, ebp18, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10);
v40 = *reinterpret_cast<void***>(a2 + 88);
fun_10002416(ecx, v40, v39, v38, v37, v36, v35, v34, esi17, ebp18, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9);
v41 = *reinterpret_cast<void***>(a2 + 92);
fun_10002416(ecx, v41, v40, v39, v38, v37, v36, v35, v34, esi17, ebp18, __return_address(), a2, a3, a4, a5, a6, a7, a8);
v42 = *reinterpret_cast<void***>(a2 + 96);
fun_10002416(ecx, v42, v41, v40, v39, v38, v37, v36, v35, v34, esi17, ebp18, __return_address(), a2, a3, a4, a5, a6, a7);
v43 = *reinterpret_cast<void***>(a2 + 100);
fun_10002416(ecx, v43, v42, v41, v40, v39, v38, v37, v36, v35, v34, esi17, ebp18, __return_address(), a2, a3, a4, a5, a6);
v44 = *reinterpret_cast<void***>(a2 + 0x68);
fun_10002416(ecx, v44, v43, v42, v41, v40, v39, v38, v37, v36, v35, v34, esi17, ebp18, __return_address(), a2, a3, a4, a5);
v45 = *reinterpret_cast<void***>(a2 + 0x6c);
fun_10002416(ecx, v45, v44, v43, v42, v41, v40, v39, v38, v37, v36, v35, v34, esi17, ebp18, __return_address(), a2, a3, a4);
v46 = *reinterpret_cast<void***>(a2 + 0x70);
fun_10002416(ecx, v46, v45, v44, v43, v42, v41, v40, v39, v38, v37, v36, v35, v34, esi17, ebp18, __return_address(), a2, a3);
v47 = *reinterpret_cast<void***>(a2 + 0x74);
fun_10002416(ecx, v47, v46, v45, v44, v43, v42, v41, v40, v39, v38, v37, v36, v35, v34, esi17, ebp18, __return_address(), a2);
v48 = *reinterpret_cast<void***>(a2 + 0x78);
fun_10002416(ecx, v48, v47, v46, v45, v44, v43, v42, v41, v40, v39, v38, v37, v36, v35, v34, esi17, ebp18, __return_address());
v49 = *reinterpret_cast<void***>(a2 + 0x7c);
fun_10002416(ecx, v49, v48, v47, v46, v45, v44, v43, v42, v41, v40, v39, v38, v37, v36, v35, v34, esi17, ebp18);
v50 = *reinterpret_cast<void***>(a2 + 0x80);
fun_10002416(ecx, v50, esi17, ebp18, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15);
v51 = *reinterpret_cast<void***>(a2 + 0x84);
fun_10002416(ecx, v51, v50, esi17, ebp18, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14);
v52 = *reinterpret_cast<void***>(a2 + 0x88);
fun_10002416(ecx, v52, v51, v50, esi17, ebp18, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13);
v53 = *reinterpret_cast<void***>(a2 + 0x8c);
fun_10002416(ecx, v53, v52, v51, v50, esi17, ebp18, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12);
v54 = *reinterpret_cast<void***>(a2 + 0x90);
fun_10002416(ecx, v54, v53, v52, v51, v50, esi17, ebp18, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11);
v55 = *reinterpret_cast<void***>(a2 + 0x94);
fun_10002416(ecx, v55, v54, v53, v52, v51, v50, esi17, ebp18, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10);
v56 = *reinterpret_cast<void***>(a2 + 0x98);
fun_10002416(ecx, v56, v55, v54, v53, v52, v51, v50, esi17, ebp18, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9);
v57 = *reinterpret_cast<void***>(a2 + 0x9c);
fun_10002416(ecx, v57, v56, v55, v54, v53, v52, v51, v50, esi17, ebp18, __return_address(), a2, a3, a4, a5, a6, a7, a8);
v58 = *reinterpret_cast<void***>(a2 + 0xa0);
fun_10002416(ecx, v58, v57, v56, v55, v54, v53, v52, v51, v50, esi17, ebp18, __return_address(), a2, a3, a4, a5, a6, a7);
v59 = *reinterpret_cast<void***>(a2 + 0xa4);
fun_10002416(ecx, v59, v58, v57, v56, v55, v54, v53, v52, v51, v50, esi17, ebp18, __return_address(), a2, a3, a4, a5, a6);
v60 = *reinterpret_cast<void***>(a2 + 0xa8);
fun_10002416(ecx, v60, v59, v58, v57, v56, v55, v54, v53, v52, v51, v50, esi17, ebp18, __return_address(), a2, a3, a4, a5);
v61 = *reinterpret_cast<void***>(a2 + 0xbc);
fun_10002416(ecx, v61, v60, v59, v58, v57, v56, v55, v54, v53, v52, v51, v50, esi17, ebp18, __return_address(), a2, a3, a4);
v62 = *reinterpret_cast<void***>(a2 + 0xc0);
fun_10002416(ecx, v62, v61, v60, v59, v58, v57, v56, v55, v54, v53, v52, v51, v50, esi17, ebp18, __return_address(), a2, a3);
v63 = *reinterpret_cast<void***>(a2 + 0xc4);
fun_10002416(ecx, v63, v62, v61, v60, v59, v58, v57, v56, v55, v54, v53, v52, v51, v50, esi17, ebp18, __return_address(), a2);
v64 = *reinterpret_cast<void***>(a2 + 0xc8);
fun_10002416(ecx, v64, v63, v62, v61, v60, v59, v58, v57, v56, v55, v54, v53, v52, v51, v50, esi17, ebp18, __return_address());
v65 = *reinterpret_cast<void***>(a2 + 0xcc);
fun_10002416(ecx, v65, v64, v63, v62, v61, v60, v59, v58, v57, v56, v55, v54, v53, v52, v51, v50, esi17, ebp18);
v66 = *reinterpret_cast<void***>(a2 + 0xd0);
fun_10002416(ecx, v66, esi17, ebp18, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15);
v67 = *reinterpret_cast<void***>(a2 + 0xb8);
fun_10002416(ecx, v67, v66, esi17, ebp18, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14);
v68 = *reinterpret_cast<void***>(a2 + 0xd8);
fun_10002416(ecx, v68, v67, v66, esi17, ebp18, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13);
v69 = *reinterpret_cast<void***>(a2 + 0xdc);
fun_10002416(ecx, v69, v68, v67, v66, esi17, ebp18, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12);
v70 = *reinterpret_cast<void***>(a2 + 0xe0);
fun_10002416(ecx, v70, v69, v68, v67, v66, esi17, ebp18, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11);
v71 = *reinterpret_cast<void***>(a2 + 0xe4);
fun_10002416(ecx, v71, v70, v69, v68, v67, v66, esi17, ebp18, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10);
v72 = *reinterpret_cast<void***>(a2 + 0xe8);
fun_10002416(ecx, v72, v71, v70, v69, v68, v67, v66, esi17, ebp18, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9);
v73 = *reinterpret_cast<void***>(a2 + 0xec);
fun_10002416(ecx, v73, v72, v71, v70, v69, v68, v67, v66, esi17, ebp18, __return_address(), a2, a3, a4, a5, a6, a7, a8);
v74 = *reinterpret_cast<void***>(a2 + 0xd4);
fun_10002416(ecx, v74, v73, v72, v71, v70, v69, v68, v67, v66, esi17, ebp18, __return_address(), a2, a3, a4, a5, a6, a7);
v75 = *reinterpret_cast<void***>(a2 + 0xf0);
fun_10002416(ecx, v75, v74, v73, v72, v71, v70, v69, v68, v67, v66, esi17, ebp18, __return_address(), a2, a3, a4, a5, a6);
v76 = *reinterpret_cast<void***>(a2 + 0xf4);
fun_10002416(ecx, v76, v75, v74, v73, v72, v71, v70, v69, v68, v67, v66, esi17, ebp18, __return_address(), a2, a3, a4, a5);
v77 = *reinterpret_cast<void***>(a2 + 0xf8);
fun_10002416(ecx, v77, v76, v75, v74, v73, v72, v71, v70, v69, v68, v67, v66, esi17, ebp18, __return_address(), a2, a3, a4);
v78 = *reinterpret_cast<void***>(a2 + 0xfc);
fun_10002416(ecx, v78, v77, v76, v75, v74, v73, v72, v71, v70, v69, v68, v67, v66, esi17, ebp18, __return_address(), a2, a3);
v79 = *reinterpret_cast<void***>(a2 + 0x100);
fun_10002416(ecx, v79, v78, v77, v76, v75, v74, v73, v72, v71, v70, v69, v68, v67, v66, esi17, ebp18, __return_address(), a2);
v80 = *reinterpret_cast<void***>(a2 + 0x104);
fun_10002416(ecx, v80, v79, v78, v77, v76, v75, v74, v73, v72, v71, v70, v69, v68, v67, v66, esi17, ebp18, __return_address());
v81 = *reinterpret_cast<void***>(a2 + 0x108);
fun_10002416(ecx, v81, v80, v79, v78, v77, v76, v75, v74, v73, v72, v71, v70, v69, v68, v67, v66, esi17, ebp18);
v82 = *reinterpret_cast<void***>(a2 + 0x10c);
fun_10002416(ecx, v82, esi17, ebp18, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15);
v83 = *reinterpret_cast<void***>(a2 + 0x110);
fun_10002416(ecx, v83, v82, esi17, ebp18, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14);
v84 = *reinterpret_cast<void***>(a2 + 0x114);
fun_10002416(ecx, v84, v83, v82, esi17, ebp18, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13);
v85 = *reinterpret_cast<void***>(a2 + 0x118);
fun_10002416(ecx, v85, v84, v83, v82, esi17, ebp18, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12);
v86 = *reinterpret_cast<void***>(a2 + 0x11c);
fun_10002416(ecx, v86, v85, v84, v83, v82, esi17, ebp18, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11);
v87 = *reinterpret_cast<void***>(a2 + 0x120);
fun_10002416(ecx, v87, v86, v85, v84, v83, v82, esi17, ebp18, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10);
v88 = *reinterpret_cast<void***>(a2 + 0x124);
fun_10002416(ecx, v88, v87, v86, v85, v84, v83, v82, esi17, ebp18, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9);
v89 = *reinterpret_cast<void***>(a2 + 0x128);
fun_10002416(ecx, v89, v88, v87, v86, v85, v84, v83, v82, esi17, ebp18, __return_address(), a2, a3, a4, a5, a6, a7, a8);
v90 = *reinterpret_cast<void***>(a2 + 0x12c);
fun_10002416(ecx, v90, v89, v88, v87, v86, v85, v84, v83, v82, esi17, ebp18, __return_address(), a2, a3, a4, a5, a6, a7);
v91 = *reinterpret_cast<void***>(a2 + 0x130);
fun_10002416(ecx, v91, v90, v89, v88, v87, v86, v85, v84, v83, v82, esi17, ebp18, __return_address(), a2, a3, a4, a5, a6);
v92 = *reinterpret_cast<void***>(a2 + 0x134);
fun_10002416(ecx, v92, v91, v90, v89, v88, v87, v86, v85, v84, v83, v82, esi17, ebp18, __return_address(), a2, a3, a4, a5);
v93 = *reinterpret_cast<void***>(a2 + 0x138);
fun_10002416(ecx, v93, v92, v91, v90, v89, v88, v87, v86, v85, v84, v83, v82, esi17, ebp18, __return_address(), a2, a3, a4);
v94 = *reinterpret_cast<void***>(a2 + 0x13c);
fun_10002416(ecx, v94, v93, v92, v91, v90, v89, v88, v87, v86, v85, v84, v83, v82, esi17, ebp18, __return_address(), a2, a3);
v95 = *reinterpret_cast<void***>(a2 + 0x140);
fun_10002416(ecx, v95, v94, v93, v92, v91, v90, v89, v88, v87, v86, v85, v84, v83, v82, esi17, ebp18, __return_address(), a2);
v96 = *reinterpret_cast<void***>(a2 + 0x144);
fun_10002416(ecx, v96, v95, v94, v93, v92, v91, v90, v89, v88, v87, v86, v85, v84, v83, v82, esi17, ebp18, __return_address());
v97 = *reinterpret_cast<void***>(a2 + 0x148);
fun_10002416(ecx, v97, v96, v95, v94, v93, v92, v91, v90, v89, v88, v87, v86, v85, v84, v83, v82, esi17, ebp18);
v98 = *reinterpret_cast<void***>(a2 + 0x14c);
fun_10002416(ecx, v98, esi17, ebp18, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15);
v99 = *reinterpret_cast<void***>(a2 + 0x150);
fun_10002416(ecx, v99, v98, esi17, ebp18, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14);
v100 = *reinterpret_cast<void***>(a2 + 0x154);
fun_10002416(ecx, v100, v99, v98, esi17, ebp18, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13);
v101 = *reinterpret_cast<void***>(a2 + 0x158);
fun_10002416(ecx, v101, v100, v99, v98, esi17, ebp18, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12);
v102 = *reinterpret_cast<void***>(a2 + 0x15c);
fun_10002416(ecx, v102, v101, v100, v99, v98, esi17, ebp18, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11);
v103 = *reinterpret_cast<void***>(a2 + 0x160);
eax104 = fun_10002416(ecx, v103, v102, v101, v100, v99, v98, esi17, ebp18, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10);
}
return eax104;
}
void** fun_10003447(int32_t ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8) {
void** eax9;
void** esi10;
void** esi11;
void** edi12;
void** ebp13;
if (!a3 || !a2) {
eax9 = reinterpret_cast<void**>(0);
} else {
esi10 = *reinterpret_cast<void***>(a2);
if (esi10 != a3 && ((*reinterpret_cast<void***>(a2) = a3, fun_100031d4(ecx, a3), !!esi10) && ((fun_10003263(a3, esi10), !*reinterpret_cast<void***>(esi10)) && esi10 != 0x1000d860))) {
fun_100032fc(esi10, esi10, esi11, edi12, ebp13, __return_address(), a2, a3, a4, a5, a6, a7, a8);
}
eax9 = a3;
}
return eax9;
}
void fun_10006d18(void** ecx, void** a2);
void fun_1000363b(void** ecx) {
fun_10006d18(ecx, 12);
return;
}
void fun_100045b5(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6) {
int32_t ebp7;
int32_t* esp8;
void* ebp9;
g0 = *reinterpret_cast<void***>(ebp7 - 16);
esp8 = reinterpret_cast<int32_t*>(reinterpret_cast<int32_t>(ebp9) + 4 - 4);
*esp8 = reinterpret_cast<int32_t>(__return_address());
goto *esp8;
}
struct s46 {
signed char[8] pad8;
void** f8;
};
void fun_100037f1(void** ecx);
void fun_100037fd(void** ecx);
void fun_100036d7(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15) {
void** esi16;
struct s46* ebp17;
void** v18;
void** v19;
void** v20;
void** v21;
void** v22;
void** v23;
void** v24;
void** v25;
void** ecx26;
int32_t ebp27;
void** edi28;
int32_t eax29;
int32_t ebp30;
void** ecx31;
int32_t ebp32;
void** edi33;
int1_t zf34;
int32_t ebp35;
fun_10004570(0x1000c448, 8, __return_address());
esi16 = ebp17->f8;
if (esi16) {
if (*reinterpret_cast<void***>(esi16 + 36)) {
v18 = *reinterpret_cast<void***>(esi16 + 36);
fun_10002416(ecx, v18, 0x1000c448, 8, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15);
ecx = v18;
}
if (*reinterpret_cast<void***>(esi16 + 44)) {
v19 = *reinterpret_cast<void***>(esi16 + 44);
fun_10002416(ecx, v19, 0x1000c448, 8, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15);
ecx = v19;
}
if (*reinterpret_cast<void***>(esi16 + 52)) {
v20 = *reinterpret_cast<void***>(esi16 + 52);
fun_10002416(ecx, v20, 0x1000c448, 8, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15);
ecx = v20;
}
if (*reinterpret_cast<void***>(esi16 + 60)) {
v21 = *reinterpret_cast<void***>(esi16 + 60);
fun_10002416(ecx, v21, 0x1000c448, 8, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15);
ecx = v21;
}
if (*reinterpret_cast<void***>(esi16 + 64)) {
v22 = *reinterpret_cast<void***>(esi16 + 64);
fun_10002416(ecx, v22, 0x1000c448, 8, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15);
ecx = v22;
}
if (*reinterpret_cast<void***>(esi16 + 68)) {
v23 = *reinterpret_cast<void***>(esi16 + 68);
fun_10002416(ecx, v23, 0x1000c448, 8, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15);
ecx = v23;
}
if (*reinterpret_cast<void***>(esi16 + 72)) {
v24 = *reinterpret_cast<void***>(esi16 + 72);
fun_10002416(ecx, v24, 0x1000c448, 8, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15);
ecx = v24;
}
if (*reinterpret_cast<void***>(esi16 + 92) != 0x1000a5f8) {
v25 = *reinterpret_cast<void***>(esi16 + 92);
fun_10002416(ecx, v25, 0x1000c448, 8, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15);
ecx = v25;
}
fun_10006df1(ecx, 13, 0x1000c448, 8, __return_address(), a2, a3, a4, a5, a6, a7);
ecx26 = reinterpret_cast<void**>(13);
*reinterpret_cast<uint32_t*>(ebp27 - 4) = 0;
edi28 = *reinterpret_cast<void***>(esi16 + 0x68);
if (edi28 && ((eax29 = reinterpret_cast<int32_t>(InterlockedDecrement(13, edi28)), !eax29) && edi28 != 0x1000d1d0)) {
fun_10002416(13, edi28, edi28, 0x1000c448, 8, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14);
ecx26 = edi28;
}
*reinterpret_cast<int32_t*>(ebp30 - 4) = -2;
fun_100037f1(ecx26);
fun_10006df1(ecx26, 12, 0x1000c448, 8, __return_address(), a2, a3, a4, a5, a6, a7);
ecx31 = reinterpret_cast<void**>(12);
*reinterpret_cast<int32_t*>(ebp32 - 4) = 1;
edi33 = *reinterpret_cast<void***>(esi16 + 0x6c);
if (edi33 && ((fun_10003263(12, edi33), ecx31 = edi33, zf34 = edi33 == image_base_, !zf34) && (edi33 != 0x1000d860 && !*reinterpret_cast<void***>(edi33)))) {
fun_100032fc(ecx31, edi33, 0x1000c448, 8, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9);
ecx31 = edi33;
}
*reinterpret_cast<int32_t*>(ebp35 - 4) = -2;
fun_100037fd(ecx31);
fun_10002416(ecx31, esi16, 0x1000c448, 8, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15);
ecx = esi16;
}
fun_100045b5(ecx, 0x1000c448, 8, __return_address(), a2, a3);
goto 0x1000c448;
}
int32_t GetProcAddress = 0xcaae;
void** g1000e18c;
void fun_10003516();
int32_t TlsAlloc = 0xca58;
void fun_10003c1c(void** ecx, void** a2, void** a3, void** a4, void** a5);
int32_t EncodePointer = 0xc9e4;
int32_t fun_10006c77(void** a1, void** a2, void** a3, void** a4, void** a5, void** a6);
int32_t fun_10003874(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13) {
void** eax14;
void** edi15;
int32_t esi16;
void** esi17;
void** eax18;
void** eax19;
void** eax20;
void** eax21;
int1_t zf22;
void** esi23;
int1_t zf24;
int1_t zf25;
void** eax26;
void** eax27;
void** eax28;
void** v29;
int32_t eax30;
void** v31;
int32_t esi32;
void** eax33;
void** v34;
void** eax35;
void** v36;
void** eax37;
void** v38;
void** eax39;
int32_t eax40;
int32_t edi41;
void** v42;
int32_t eax43;
void** eax44;
void** eax45;
void** v46;
void** v47;
int32_t eax48;
int32_t eax49;
void** eax50;
eax14 = reinterpret_cast<void**>(GetModuleHandleW());
if (!eax14) {
fun_10003553(ecx, "K", edi15, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13);
goto edi15;
}
esi16 = GetProcAddress;
eax18 = reinterpret_cast<void**>(esi16(eax14, "FlsAlloc", esi17));
g1000e18c = eax18;
eax19 = reinterpret_cast<void**>(esi16(eax14, "FlsGetValue", eax14, "FlsAlloc", esi17));
g1000e190 = eax19;
eax20 = reinterpret_cast<void**>(esi16());
g1000e194 = eax20;
eax21 = reinterpret_cast<void**>(esi16());
zf22 = g1000e18c == 0;
esi23 = TlsSetValue;
g1000e198 = eax21;
if (zf22 || ((zf24 = g1000e190 == 0, zf24) || ((zf25 = g1000e194 == 0, zf25) || !eax21))) {
eax26 = TlsGetValue;
g1000e190 = eax26;
eax27 = TlsFree;
g1000e18c = reinterpret_cast<void**>(fun_10003516);
g1000e194 = esi23;
g1000e198 = eax27;
}
eax28 = reinterpret_cast<void**>(TlsAlloc());
g1000d940 = eax28;
if (eax28 == 0xffffffff)
goto addr_100039ea_6;
v29 = g1000e190;
eax30 = reinterpret_cast<int32_t>(esi23(eax28, v29));
if (eax30)
goto addr_1000393a_8;
addr_100039ea_6:
addr_100039ec_9:
goto eax14;
addr_1000393a_8:
fun_10003c1c(ecx, eax28, v29, eax14, "FlsFree");
v31 = g1000e18c;
esi32 = EncodePointer;
eax33 = reinterpret_cast<void**>(esi32(v31, eax28, v29));
v34 = g1000e190;
g1000e18c = eax33;
eax35 = reinterpret_cast<void**>(esi32(v34, v31, eax28, v29));
v36 = g1000e194;
g1000e190 = eax35;
eax37 = reinterpret_cast<void**>(esi32(v36, v34, v31, eax28, v29));
v38 = g1000e198;
g1000e194 = eax37;
eax39 = reinterpret_cast<void**>(esi32(v38, v36, v34, v31, eax28, v29));
g1000e198 = eax39;
eax40 = fun_10006c77(v38, v36, v34, v31, eax28, v29);
if (!eax40 || ((edi41 = DecodePointer, v42 = g1000e18c, eax43 = reinterpret_cast<int32_t>(edi41(v42, fun_100036d7, v38, v36, v34, v31, eax28, v29)), eax44 = reinterpret_cast<void**>(eax43(v42, fun_100036d7, v38, v36, v34, v31, eax28, v29)), g1000d93c = eax44, eax44 == 0xffffffff) || ((eax45 = fun_10003b2d(ecx, 1, 0x214, v42, fun_100036d7, v38, v36, v34, v31, eax28, v29), ecx = reinterpret_cast<void**>(0x214), eax45 == 0) || (v46 = g1000d93c, v47 = g1000e194, eax48 = reinterpret_cast<int32_t>(edi41(0x214, v47, v46, eax45, v42, fun_100036d7, v38, v36, v34, v31, eax28, v29)), eax49 = reinterpret_cast<int32_t>(eax48(0x214, v47, v46, eax45, v42, fun_100036d7, v38, v36, v34, v31, eax28, v29)), eax49 == 0)))) {
fun_10003553(ecx, v38, v36, v34, v31, eax28, v29, eax14, "FlsFree", eax14, "FlsSetValue", eax14, "FlsGetValue", eax14, "FlsAlloc", esi17);
goto addr_100039ea_6;
} else {
fun_10003590(0x214, eax45, 0, v47, v46, eax45, v42, fun_100036d7, v38, v36, v34, v31, eax28, v29);
eax50 = reinterpret_cast<void**>(GetCurrentThreadId(0, v47, v46, eax45, v42, fun_100036d7, v38, v36, v34, v31, eax28, v29));
*reinterpret_cast<void***>(eax45 + 4) = reinterpret_cast<void**>(0xffffffff);
*reinterpret_cast<void***>(eax45) = eax50;
goto addr_100039ec_9;
}
}
void** fun_1000350d(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7);
void fun_10004c4c(void** a1);
void fun_100026ba(void** a1, void** a2);
void fun_1000784f(void** a1, void** a2, void** a3);
void fun_10007840(void** a1, void** a2, void** a3, void** a4);
void fun_1000763b(void** a1, void** a2, void** a3, void** a4, void** a5);
void fun_1000762a(void** a1, void** a2, void** a3, void** a4, void** a5, void** a6);
void fun_10003c1c(void** ecx, void** a2, void** a3, void** a4, void** a5) {
void** esi6;
void** eax7;
eax7 = fun_1000350d(ecx, esi6, __return_address(), a2, a3, a4, a5);
fun_10004c4c(eax7);
fun_100026ba(eax7, eax7);
fun_1000784f(eax7, eax7, eax7);
fun_10007840(eax7, eax7, eax7, eax7);
fun_1000763b(eax7, eax7, eax7, eax7, eax7);
fun_1000762a(eax7, eax7, eax7, eax7, eax7, eax7);
return;
}
int32_t fun_10006c77(void** a1, void** a2, void** a3, void** a4, void** a5, void** a6) {
int32_t esi7;
int32_t edi8;
int32_t* eax9;
int32_t v10;
int32_t eax11;
int32_t eax12;
esi7 = 0;
edi8 = 0x1000e2f8;
do {
if (*reinterpret_cast<int32_t*>(esi7 * 8 + 0x1000dc44) != 1)
continue;
eax9 = reinterpret_cast<int32_t*>(esi7 * 8 + 0x1000dc40);
*eax9 = edi8;
v10 = *eax9;
edi8 = edi8 + 24;
eax11 = reinterpret_cast<int32_t>(InitializeCriticalSectionAndSpinCount(v10, 0xfa0));
if (!eax11)
break;
++esi7;
} while (esi7 < 36);
goto addr_10006caf_5;
*reinterpret_cast<uint32_t*>(esi7 * 8 + 0x1000dc40) = 0;
eax12 = 0;
addr_10006cb2_7:
return eax12;
addr_10006caf_5:
eax12 = 1;
goto addr_10006cb2_7;
}
void** fun_10007544(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15, void** a16, void** a17);
void** fun_10003b79(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11) {
void** v12;
void** v13;
void** ebp14;
void** v15;
void** esi16;
void** v17;
void** edi18;
void** esi19;
void** eax20;
int1_t below_or_equal21;
void** eax22;
int1_t below_or_equal23;
v12 = reinterpret_cast<void**>(__return_address());
v13 = ebp14;
v15 = esi16;
v17 = edi18;
esi19 = reinterpret_cast<void**>(0);
do {
eax20 = fun_10007544(ecx, a2, a3, v17, v15, v13, v12, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11);
ecx = a3;
if (eax20)
break;
if (a3 == eax20)
break;
below_or_equal21 = reinterpret_cast<unsigned char>(g1000e1a4) <= reinterpret_cast<unsigned char>(eax20);
if (below_or_equal21)
break;
Sleep(ecx, esi19);
eax22 = esi19 + 0x3e8;
below_or_equal23 = reinterpret_cast<unsigned char>(eax22) <= reinterpret_cast<unsigned char>(g1000e1a4);
if (!below_or_equal23) {
eax22 = reinterpret_cast<void**>(0xffffffff);
}
esi19 = eax22;
} while (!reinterpret_cast<int1_t>(eax22 == 0xffffffff));
return eax20;
}
void fun_10003bc7(void** a1, void** a2, void** a3) {
int32_t eax4;
int32_t eax5;
int32_t ebp6;
eax4 = reinterpret_cast<int32_t>(GetModuleHandleW());
if (eax4 && (eax5 = reinterpret_cast<int32_t>(GetProcAddress(eax4, "CorExitProcess")), !!eax5)) {
eax5(a1, eax4, "CorExitProcess");
}
goto ebp6;
}
struct s47 {
int16_t f0;
signed char[58] pad60;
int32_t f60;
};
int32_t fun_10007860(struct s47* a1);
struct s48 {
signed char[8] pad8;
int32_t f8;
uint32_t f12;
signed char[20] pad36;
uint32_t f36;
};
struct s49 {
signed char[60] pad60;
int32_t f60;
};
struct s48* fun_100078a0(struct s49* a1, uint32_t a2);
uint32_t fun_100078f0(void** ecx, void** a2) {
void** eax3;
int32_t eax4;
struct s48* eax5;
uint32_t eax6;
eax3 = g0;
g0 = reinterpret_cast<void**>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 4 + 0xfffffff0);
eax4 = fun_10007860(0x10000000);
if (!eax4 || (eax5 = fun_100078a0(0x10000000, a2 - 0x10000000), eax5 == 0)) {
g0 = eax3;
return 0;
} else {
eax6 = ~(eax5->f36 >> 31) & 1;
g0 = eax3;
return eax6;
}
}
void** fun_1000350d(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7) {
EncodePointer();
goto 0;
}
int32_t LeaveCriticalSection = 0xcc86;
void fun_10006d18(void** ecx, void** a2) {
int32_t ebp3;
LeaveCriticalSection();
goto ebp3;
}
int32_t ExitProcess = 0xcac0;
void fun_10003bf2(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7) {
void** ebp8;
fun_10003bc7(a2, ebp8, __return_address());
ExitProcess(a2);
fun_10006df1(a2, 8, a2, ebp8, __return_address(), a2, a3, a4, a5, a6, a7);
goto a2;
}
void** fun_100031b6(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13) {
int1_t zf14;
zf14 = g1000fc4c == 0;
if (zf14) {
fun_1000301c(ecx, 0xfd, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13);
g1000fc4c = reinterpret_cast<void**>(1);
}
return 0;
}
void** fun_100058d0(void** a1, void** a2, void** a3, void** a4, void** a5, void** a6, ...) {
void** ecx7;
void* eax8;
ecx7 = a1;
if (!(reinterpret_cast<unsigned char>(ecx7) & 3)) {
while (1) {
addr_10005900_2:
ecx7 = ecx7 + 4;
if (!((reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(ecx7)) ^ 0xffffffff ^ reinterpret_cast<uint32_t>(*reinterpret_cast<void***>(ecx7) + 0x7efefeff)) & 0x81010100))
continue;
eax8 = *reinterpret_cast<void**>(ecx7 + 0xfffffffc);
if (!*reinterpret_cast<signed char*>(&eax8))
break;
if (!*reinterpret_cast<signed char*>(reinterpret_cast<int32_t>(&eax8) + 1))
goto addr_10005947_5;
if (!(reinterpret_cast<uint32_t>(eax8) & 0xff0000))
goto addr_1000593d_7;
if (!(reinterpret_cast<uint32_t>(eax8) & 0xff000000))
goto addr_10005933_9;
}
} else {
do {
++ecx7;
if (!*reinterpret_cast<void***>(ecx7))
goto addr_10005933_9;
} while (reinterpret_cast<unsigned char>(ecx7) & 3);
goto addr_100058ed_13;
}
return reinterpret_cast<uint32_t>(ecx7 + 0xfffffffc) - reinterpret_cast<unsigned char>(a1);
addr_10005947_5:
return reinterpret_cast<uint32_t>(ecx7 + 0xfffffffd) - reinterpret_cast<unsigned char>(a1);
addr_1000593d_7:
return reinterpret_cast<uint32_t>(ecx7 + 0xfffffffe) - reinterpret_cast<unsigned char>(a1);
addr_10005933_9:
return reinterpret_cast<unsigned char>(ecx7 + 0xffffffff) - reinterpret_cast<unsigned char>(a1);
addr_100058ed_13:
goto addr_10005900_2;
}
void** fun_10007302(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7) {
void** v8;
void** v9;
void** ebp10;
void** edx11;
void** v12;
void** esi13;
void** v14;
void** edi15;
void** edi16;
void** eax17;
void** esi18;
void** eax19;
void* esi20;
void** eax21;
void** eax22;
v8 = reinterpret_cast<void**>(__return_address());
v9 = ebp10;
edx11 = a2;
v12 = esi13;
v14 = edi15;
if (!edx11 || (edi16 = a3, !edi16)) {
addr_10007317_2:
eax17 = fun_10002896(ecx, v14, v12, v9, v8, a2, a3, a4, a5, a6, a7);
esi18 = reinterpret_cast<void**>(22);
*reinterpret_cast<void***>(eax17) = reinterpret_cast<void**>(22);
} else {
eax19 = a4;
if (eax19) {
esi20 = reinterpret_cast<void*>(reinterpret_cast<unsigned char>(edx11) - reinterpret_cast<unsigned char>(eax19));
do {
ecx = *reinterpret_cast<void***>(eax19);
*reinterpret_cast<void***>(reinterpret_cast<uint32_t>(esi20) + reinterpret_cast<unsigned char>(eax19)) = ecx;
++eax19;
if (!ecx)
break;
--edi16;
} while (edi16);
if (edi16)
goto addr_1000735b_8; else
goto addr_1000734a_9;
} else {
*reinterpret_cast<void***>(edx11) = eax19;
goto addr_10007317_2;
}
}
addr_10007321_11:
fun_10002844(ecx);
eax21 = esi18;
addr_1000735d_12:
return eax21;
addr_1000735b_8:
eax21 = reinterpret_cast<void**>(0);
goto addr_1000735d_12;
addr_1000734a_9:
*reinterpret_cast<void***>(edx11) = reinterpret_cast<void**>(0);
eax22 = fun_10002896(ecx, v14, v12, v9, v8, a2, a3, a4, a5, a6, a7);
ecx = reinterpret_cast<void**>(34);
*reinterpret_cast<void***>(eax22) = reinterpret_cast<void**>(34);
esi18 = reinterpret_cast<void**>(34);
goto addr_10007321_11;
}
uint32_t fun_10007bba(void** a1, void** a2, void** a3, unsigned char a4);
uint32_t fun_10007c0d(void** a1) {
uint32_t eax2;
eax2 = fun_10007bba(0, a1, 0, 4);
return eax2;
}
void** g1000e2e4;
int32_t GetModuleFileNameA = 0xcb50;
void** g1000e1c8;
void fun_10004201(void** ecx, void** a2, void** a3, int32_t* a4);
int32_t g1000e1ac;
void** g1000e1b0;
uint32_t fun_1000439b(void** ecx, void** a2, void** a3, void** a4, void** a5) {
void*** ebp6;
int1_t zf7;
void** edi8;
void** esi9;
void** ebx10;
void** v11;
void** v12;
void** v13;
void** ebp14;
void** eax15;
void** v16;
void** v17;
void** v18;
void* edi19;
void** eax20;
void** v21;
void** v22;
void** v23;
uint32_t eax24;
int32_t v25;
ebp6 = reinterpret_cast<void***>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 4);
zf7 = g1000fc4c == 0;
if (zf7) {
fun_100031b6(ecx, edi8, esi9, ebx10, v11, v12, v13, ebp14, __return_address(), a2, a3, a4, a5);
}
g1000e2e4 = reinterpret_cast<void**>(0);
GetModuleFileNameA();
eax15 = g1000fc58;
g1000e1c8 = reinterpret_cast<void**>(0x1000e1e0);
if (!eax15 || (v16 = eax15, !*reinterpret_cast<void***>(eax15))) {
v16 = reinterpret_cast<void**>(0x1000e1e0);
}
fun_10004201(ecx, 0, 0, ebp6 - 8);
if (reinterpret_cast<unsigned char>(v17) >= reinterpret_cast<unsigned char>(0x3fffffff) || (reinterpret_cast<unsigned char>(v18) >= reinterpret_cast<unsigned char>(0xffffffff) || ((edi19 = reinterpret_cast<void*>(reinterpret_cast<unsigned char>(v17) << 2), eax20 = reinterpret_cast<void**>(reinterpret_cast<uint32_t>(edi19) + reinterpret_cast<unsigned char>(v18)), reinterpret_cast<unsigned char>(eax20) < reinterpret_cast<unsigned char>(v18)) || (v21 = eax20, eax20 = fun_10003ae8(v18, v21, 0, 0x1000e1e0, 0x104, edi8, esi9, ebx10, v22, v23, v16, ebp14, __return_address(), a2, a3), eax20 == 0)))) {
eax24 = 0xffffffff;
} else {
fun_10004201(v21, eax20, reinterpret_cast<uint32_t>(edi19) + reinterpret_cast<unsigned char>(eax20), ebp6 - 8);
g1000e1ac = v25 - 1;
g1000e1b0 = eax20;
eax24 = 0;
}
return eax24;
}
void fun_10004201(void** ecx, void** a2, void** a3, int32_t* a4) {
void*** edi5;
void*** edi6;
int32_t* ecx7;
void*** esi8;
void*** edx9;
void** edx10;
void** ebx11;
void** v12;
void** bl13;
uint32_t eax14;
void** ecx15;
void** al16;
void** eax17;
uint32_t v18;
void** eax19;
int32_t ebx20;
uint32_t ecx21;
void*** eax22;
uint32_t eax23;
void** v24;
uint32_t eax25;
uint32_t eax26;
void** al27;
void** ecx28;
void** ecx29;
void** al30;
edi5 = edi6;
ecx7 = a4;
*edi5 = reinterpret_cast<void**>(0);
esi8 = edx9;
edx10 = a3;
*ecx7 = 1;
if (a2) {
ebx11 = a2;
a2 = a2 + 4;
*reinterpret_cast<void***>(ebx11) = edx10;
}
v12 = reinterpret_cast<void**>(0);
do {
if (!reinterpret_cast<int1_t>(*esi8 == 34)) {
*edi5 = *edi5 + 1;
if (edx10) {
*reinterpret_cast<void***>(edx10) = *esi8;
a3 = edx10 + 1;
}
bl13 = *esi8;
++esi8;
eax14 = fun_10007c0d(static_cast<uint32_t>(reinterpret_cast<unsigned char>(bl13)));
if (eax14) {
*edi5 = *edi5 + 1;
if (a3) {
ecx15 = a3;
al16 = *esi8;
++a3;
*reinterpret_cast<void***>(ecx15) = al16;
}
++esi8;
}
edx10 = a3;
ecx7 = a4;
if (!bl13)
break;
} else {
eax17 = reinterpret_cast<void**>(0);
bl13 = reinterpret_cast<void**>(34);
*reinterpret_cast<unsigned char*>(&eax17) = reinterpret_cast<uint1_t>(v12 == 0);
++esi8;
v12 = eax17;
}
} while (v12 || bl13 != 32 && !reinterpret_cast<int1_t>(bl13 == 9));
goto addr_1000428d_14;
--esi8;
addr_10004295_16:
v18 = 0;
while (*esi8) {
while (*esi8 == 32 || reinterpret_cast<int1_t>(*esi8 == 9)) {
++esi8;
}
if (!*esi8)
break;
if (a2) {
eax19 = a2;
a2 = a2 + 4;
*reinterpret_cast<void***>(eax19) = edx10;
}
*ecx7 = *ecx7 + 1;
while (1) {
ebx20 = 1;
ecx21 = 0;
while (*esi8 == 92) {
++esi8;
++ecx21;
}
if (reinterpret_cast<int1_t>(*esi8 == 34)) {
if (!(*reinterpret_cast<unsigned char*>(&ecx21) & 1)) {
if (!v18 || (eax22 = esi8 + 1, !reinterpret_cast<int1_t>(*eax22 == 34))) {
eax23 = 0;
ebx20 = 0;
*reinterpret_cast<unsigned char*>(&eax23) = reinterpret_cast<uint1_t>(v18 == 0);
v18 = eax23;
} else {
esi8 = eax22;
}
}
ecx21 = ecx21 >> 1;
}
if (ecx21) {
do {
--ecx21;
if (edx10) {
*reinterpret_cast<void***>(edx10) = reinterpret_cast<void**>(92);
++edx10;
}
*edi5 = *edi5 + 1;
} while (ecx21);
a3 = edx10;
}
if (!*esi8)
break;
if (v18)
goto addr_1000432f_40;
if (*esi8 == 32)
break;
if (*esi8 == 9)
break;
addr_1000432f_40:
if (ebx20) {
v24 = reinterpret_cast<void**>(static_cast<int32_t>(reinterpret_cast<signed char>(*esi8)));
if (!edx10) {
eax25 = fun_10007c0d(v24);
if (eax25) {
++esi8;
*edi5 = *edi5 + 1;
}
} else {
eax26 = fun_10007c0d(v24);
if (eax26) {
al27 = *esi8;
ecx28 = a3;
++a3;
*reinterpret_cast<void***>(ecx28) = al27;
++esi8;
*edi5 = *edi5 + 1;
}
ecx29 = a3;
al30 = *esi8;
++a3;
*reinterpret_cast<void***>(ecx29) = al30;
}
*edi5 = *edi5 + 1;
edx10 = a3;
}
++esi8;
}
if (edx10) {
*reinterpret_cast<void***>(edx10) = reinterpret_cast<void**>(0);
++edx10;
a3 = edx10;
}
*edi5 = *edi5 + 1;
ecx7 = a4;
}
if (a2) {
*reinterpret_cast<void***>(a2) = reinterpret_cast<void**>(0);
}
*ecx7 = *ecx7 + 1;
return;
addr_1000428d_14:
if (edx10) {
*reinterpret_cast<void***>(edx10 + 0xffffffff) = reinterpret_cast<void**>(0);
goto addr_10004295_16;
}
}
int32_t fun_10007462(int32_t ecx) {
int32_t eax2;
eax2 = reinterpret_cast<int32_t>(ecx());
return eax2;
}
void fun_10007370(void** a1, void** a2, void** a3);
void fun_100074ab(void** ecx, void** a2, int32_t a3) {
void** edx4;
fun_10007370(a2, ecx, edx4);
return;
}
void** fun_1000475f(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8) {
void** esi9;
void** ebp10;
void** eax11;
void** esi12;
void** ecx13;
void** edx14;
void** eax15;
void** edx16;
void** ebx17;
void* ecx18;
void** edi19;
eax11 = fun_10003644(ecx, esi9, ebp10, __return_address(), a2, a3, a4, a5, a6, a7, a8);
esi12 = eax11;
if (!esi12) {
addr_100048a6_2:
return eax11;
} else {
ecx13 = *reinterpret_cast<void***>(esi12 + 92);
edx14 = a2;
eax15 = ecx13;
do {
if (*reinterpret_cast<void***>(eax15) == edx14)
break;
eax15 = eax15 + 12;
} while (reinterpret_cast<unsigned char>(eax15) < reinterpret_cast<unsigned char>(ecx13 + 0x90));
if (reinterpret_cast<unsigned char>(eax15) >= reinterpret_cast<unsigned char>(ecx13 + 0x90))
goto addr_1000479c_7;
if (*reinterpret_cast<void***>(eax15) == edx14)
goto addr_1000479e_9;
}
addr_1000479c_7:
eax15 = reinterpret_cast<void**>(0);
addr_1000479e_9:
if (!eax15 || (edx16 = *reinterpret_cast<void***>(eax15 + 8), !edx16)) {
eax11 = reinterpret_cast<void**>(0);
} else {
if (!reinterpret_cast<int1_t>(edx16 == 5)) {
if (edx16 == 1) {
addr_100048a2_13:
eax11 = reinterpret_cast<void**>(0xffffffff);
} else {
ebx17 = *reinterpret_cast<void***>(esi12 + 96);
*reinterpret_cast<void***>(esi12 + 96) = a3;
if (!reinterpret_cast<int1_t>(*reinterpret_cast<void***>(eax15 + 4) == 8)) {
*reinterpret_cast<void***>(eax15 + 8) = reinterpret_cast<void**>(0);
edx16();
goto addr_1000489d_16;
} else {
ecx18 = reinterpret_cast<void*>(36);
do {
*reinterpret_cast<uint32_t*>(reinterpret_cast<int32_t>(ecx18) + reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(esi12 + 92)) + 8) = 0;
ecx18 = reinterpret_cast<void*>(reinterpret_cast<int32_t>(ecx18) + 12);
} while (reinterpret_cast<int32_t>(ecx18) < 0x90);
edi19 = *reinterpret_cast<void***>(esi12 + 100);
if (!reinterpret_cast<int1_t>(*reinterpret_cast<void***>(eax15) == 0xc000008e))
goto addr_1000480b_20; else
goto addr_10004802_21;
}
}
} else {
*reinterpret_cast<void***>(eax15 + 8) = reinterpret_cast<void**>(0);
eax11 = reinterpret_cast<void**>(1);
}
}
goto addr_100048a6_2;
addr_1000489d_16:
*reinterpret_cast<void***>(esi12 + 96) = ebx17;
goto addr_100048a2_13;
addr_1000480b_20:
if (!reinterpret_cast<int1_t>(*reinterpret_cast<void***>(eax15) == 0xc0000090)) {
if (!reinterpret_cast<int1_t>(*reinterpret_cast<void***>(eax15) == 0xc0000091)) {
if (!reinterpret_cast<int1_t>(*reinterpret_cast<void***>(eax15) == 0xc0000093)) {
if (!reinterpret_cast<int1_t>(*reinterpret_cast<void***>(eax15) == 0xc000008d)) {
if (!reinterpret_cast<int1_t>(*reinterpret_cast<void***>(eax15) == 0xc000008f)) {
if (!reinterpret_cast<int1_t>(*reinterpret_cast<void***>(eax15) == 0xc0000092)) {
if (!reinterpret_cast<int1_t>(*reinterpret_cast<void***>(eax15) == 0xc00002b5)) {
if (reinterpret_cast<int1_t>(*reinterpret_cast<void***>(eax15) == 0xc00002b4)) {
*reinterpret_cast<void***>(esi12 + 100) = reinterpret_cast<void**>(0x8e);
}
} else {
*reinterpret_cast<void***>(esi12 + 100) = reinterpret_cast<void**>(0x8d);
}
} else {
*reinterpret_cast<void***>(esi12 + 100) = reinterpret_cast<void**>(0x8a);
}
} else {
*reinterpret_cast<void***>(esi12 + 100) = reinterpret_cast<void**>(0x86);
}
} else {
*reinterpret_cast<void***>(esi12 + 100) = reinterpret_cast<void**>(0x82);
}
} else {
*reinterpret_cast<void***>(esi12 + 100) = reinterpret_cast<void**>(0x85);
}
} else {
*reinterpret_cast<void***>(esi12 + 100) = reinterpret_cast<void**>(0x84);
}
} else {
*reinterpret_cast<void***>(esi12 + 100) = reinterpret_cast<void**>(0x81);
}
addr_10004889_39:
edx16();
*reinterpret_cast<void***>(esi12 + 100) = edi19;
goto addr_1000489d_16;
addr_10004802_21:
*reinterpret_cast<void***>(esi12 + 100) = reinterpret_cast<void**>(0x83);
goto addr_10004889_39;
}
void** fun_10004994(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14) {
void** esi15;
void** edi16;
void** ebp17;
void** eax18;
void** esi19;
void** eax20;
if (a2) {
eax18 = fun_100058d0(a2, esi15, edi16, ebp17, __return_address(), a2);
esi19 = eax18 + 1;
eax20 = fun_10004bb8(ecx, esi19, a2, esi15, edi16, ebp17, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14);
*reinterpret_cast<void***>(ecx + 4) = eax20;
if (eax20) {
eax20 = fun_10007302(a2, eax20, esi19, a2, esi15, edi16, ebp17);
*reinterpret_cast<void***>(ecx + 8) = reinterpret_cast<void**>(1);
}
}
return eax20;
}
void** fun_100049d4(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15, void** a16);
void** fun_100049f2(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12) {
void** edi13;
void** esi14;
void** ebp15;
void** v16;
if (ecx != a2) {
fun_100049d4(ecx, edi13, esi14, ebp15, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12);
if (!*reinterpret_cast<void***>(a2 + 8)) {
*reinterpret_cast<void***>(ecx + 4) = *reinterpret_cast<void***>(a2 + 4);
} else {
v16 = *reinterpret_cast<void***>(a2 + 4);
fun_10004994(ecx, v16, edi13, esi14, ebp15, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9);
}
}
return ecx;
}
void** fun_100049d4(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15, void** a16) {
void** v17;
void** esi18;
void** eax19;
if (*reinterpret_cast<void***>(ecx + 8)) {
v17 = *reinterpret_cast<void***>(ecx + 4);
eax19 = fun_10002416(ecx, v17, esi18, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16);
}
*reinterpret_cast<void***>(ecx + 4) = reinterpret_cast<void**>(0);
*reinterpret_cast<void***>(ecx + 8) = reinterpret_cast<void**>(0);
return eax19;
}
int32_t HeapSize = 0xcd16;
void** fun_10007c25(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9) {
void** ebp10;
void** eax11;
if (a2) {
HeapSize();
goto 0;
} else {
eax11 = fun_10002896(ecx, ebp10, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9);
*reinterpret_cast<void***>(eax11) = reinterpret_cast<void**>(22);
fun_10002844(ecx);
return 0xffffffff;
}
}
void** fun_10008add(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9);
int32_t g1000de30 = 0;
void** fun_10007b81(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7) {
void** eax8;
void** eax9;
int1_t zf10;
eax8 = fun_10008add(ecx, 3, __return_address(), a2, a3, a4, a5, a6, a7);
if (eax8 == 1 || (eax9 = fun_10008add(3, 3, __return_address(), a2, a3, a4, a5, a6, a7), !eax9) && (zf10 = g1000de30 == 1, zf10)) {
fun_100079d2(3, 0xfc, __return_address(), a2, a3);
eax9 = fun_100079d2(3, 0xff, 0xfc, __return_address(), a2);
}
return eax9;
}
void** fun_100079ac(void** a1);
int32_t WriteFile = 0xcc40;
void** fun_10008a7a(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7);
int32_t fun_10008a5f(void** ecx, void** a2, void** a3, void** a4, void** a5);
void** fun_10008992(void** a1, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8);
void** fun_1000891d(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7);
void** fun_100087b1(void** ecx, void** a2, void** a3, uint32_t a4, void** a5, void** a6, void** a7);
int16_t g1000e6ea;
int32_t GetModuleFileNameW = 0xcd00;
void** fun_100079d2(void** ecx, void** a2, void** a3, void** a4, void** a5) {
void* ebp6;
void** eax7;
uint32_t v8;
void** v9;
void** esi10;
void** esi11;
void** v12;
void** edi13;
void** eax14;
void** edi15;
void** ebx16;
void** v17;
void** ebx18;
void** v19;
void** v20;
void** v21;
void** eax22;
void** v23;
void** v24;
void** v25;
void** eax26;
void** ecx27;
int1_t zf28;
void** eax29;
void** esi30;
void* eax31;
void** v32;
void** v33;
void** eax34;
void** eax35;
void** v36;
void** v37;
int32_t eax38;
int32_t eax39;
void** eax40;
void** eax41;
void** eax42;
void** eax43;
int32_t eax44;
void** eax45;
void** eax46;
ebp6 = reinterpret_cast<void*>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 4);
eax7 = g1000d050;
v8 = reinterpret_cast<unsigned char>(eax7) ^ reinterpret_cast<uint32_t>(ebp6);
v9 = esi10;
esi11 = a2;
v12 = edi13;
eax14 = fun_100079ac(esi11);
edi15 = eax14;
ebx16 = reinterpret_cast<void**>(0);
v17 = edi15;
if (edi15) {
eax22 = fun_10008add(esi11, 3, v12, v9, ebx18, v17, v19, v20, v21);
if (eax22 == 1 || (eax26 = fun_10008add(3, 3, v12, v9, ebx18, v17, v23, v24, v25), ecx27 = reinterpret_cast<void**>(3), !eax26) && (zf28 = g1000de30 == 1, zf28)) {
eax29 = reinterpret_cast<void**>(GetStdHandle(3, 0xf4));
esi30 = eax29;
if (esi30 && esi30 != 0xffffffff) {
eax31 = reinterpret_cast<void*>(0);
do {
*reinterpret_cast<void***>(reinterpret_cast<uint32_t>(ebp6) + reinterpret_cast<uint32_t>(eax31) - 0x1f8) = *reinterpret_cast<void***>(edi15 + reinterpret_cast<uint32_t>(eax31) * 2);
if (!*reinterpret_cast<void***>(edi15 + reinterpret_cast<uint32_t>(eax31) * 2))
break;
eax31 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(eax31) + 1);
} while (reinterpret_cast<uint32_t>(eax31) < 0x1f4);
v32 = reinterpret_cast<void**>(reinterpret_cast<uint32_t>(ebp6) + 0xfffffe04);
v33 = reinterpret_cast<void**>(reinterpret_cast<uint32_t>(ebp6) + 0xfffffe08);
eax34 = fun_100058d0(v33, v32, 0, 0xf4, v12, v9);
WriteFile(v33, esi30, reinterpret_cast<uint32_t>(ebp6) + 0xfffffe08, eax34, v32, 0, 0xf4);
}
} else {
if (esi11 != 0xfc) {
eax35 = fun_10008a7a(3, 0x1000e4b0, 0x314, "R", v12, v9, ebx18);
if (eax35) {
v36 = reinterpret_cast<void**>(0);
v37 = reinterpret_cast<void**>(0);
while (1) {
fun_100027f2(ecx27, 0, 0, 0, v37, v36);
addr_10007a9c_12:
eax38 = fun_10008a5f(ecx27, esi11, 0, v37, v36);
ecx27 = esi11;
if (eax38 + 1 <= 60)
goto addr_10007ad3_13;
eax39 = fun_10008a5f(ecx27, esi11, 0, v37, v36);
eax40 = reinterpret_cast<void**>(eax39 * 2 + 0x1000e46c);
ecx27 = reinterpret_cast<void**>(reinterpret_cast<int32_t>(reinterpret_cast<unsigned char>(eax40) - reinterpret_cast<unsigned char>(esi11)) >> 1);
ebx16 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(ebx16) - reinterpret_cast<unsigned char>(ecx27));
eax41 = fun_10008992(eax40, ebx16, ".", 3, esi11, 0, v37, v36);
if (eax41)
goto addr_10007a90_15;
addr_10007ad3_13:
esi11 = reinterpret_cast<void**>(0x314);
eax42 = fun_1000891d(ecx27, 0x1000e4b0, 0x314, "\n", 0, v37, v36);
if (eax42)
goto addr_10007a90_15;
eax43 = fun_1000891d(ecx27, 0x1000e4b0, 0x314, v17, 0, v37, v36);
if (!eax43)
break;
addr_10007a90_15:
}
fun_100087b1(ecx27, 0x1000e4b0, "M", 0x12010, 0, v37, v36);
} else {
v36 = reinterpret_cast<void**>(0x104);
esi11 = reinterpret_cast<void**>(0x1000e4e2);
v37 = reinterpret_cast<void**>(0x1000e4e2);
g1000e6ea = *reinterpret_cast<int16_t*>(&eax35);
eax44 = reinterpret_cast<int32_t>(GetModuleFileNameW(3, 0, 0x1000e4e2, 0x104));
ebx16 = reinterpret_cast<void**>(0x2fb);
if (eax44)
goto addr_10007a9c_12;
eax45 = fun_10008a7a(3, 0x1000e4e2, 0x2fb, "<", 0, 0x1000e4e2, 0x104);
if (!eax45)
goto addr_10007a9c_12; else
goto addr_10007a90_15;
}
}
}
}
eax46 = fun_10001cc4(v8 ^ reinterpret_cast<uint32_t>(ebp6), v17);
return eax46;
}
int32_t fun_10004c5b(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7) {
int32_t eax8;
int32_t eax9;
int32_t ebp10;
eax8 = reinterpret_cast<int32_t>(DecodePointer());
if (!eax8 || (eax9 = reinterpret_cast<int32_t>(eax8()), eax9 == 0)) {
goto ebp10;
} else {
goto ebp10;
}
}
void** fun_100028bc(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8) {
void** esi9;
void** ebp10;
void** eax11;
void** eax12;
void** eax13;
eax11 = fun_100028a9(ecx, esi9, ebp10, __return_address(), a2, a3, a4, a5, a6, a7);
*reinterpret_cast<void***>(eax11) = a2;
eax12 = fun_10002854(a2, a2, esi9, ebp10, __return_address(), a2);
eax13 = fun_10002896(a2, esi9, ebp10, __return_address(), a2, a3, a4, a5, a6, a7, a8);
*reinterpret_cast<void***>(eax13) = eax12;
return eax13;
}
void** fun_100028a9(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10) {
void** eax11;
eax11 = fun_10003644(ecx, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10);
if (eax11) {
return eax11 + 12;
} else {
return 0x1000d1cc;
}
}
struct s50 {
signed char[8] pad8;
uint32_t f8;
};
struct s51 {
signed char[8] pad8;
int32_t f8;
};
void fun_10007ddd(void** ecx);
void fun_10007d47(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7) {
uint32_t edi8;
struct s50* ebp9;
struct s51* esi10;
int32_t ebp11;
int32_t ebp12;
int32_t eax13;
int32_t ebp14;
int32_t ebp15;
int32_t ebp16;
uint32_t v17;
fun_10004570(0x1000c590, 12, __return_address());
edi8 = ebp9->f8;
esi10 = reinterpret_cast<struct s51*>(((edi8 & 31) << 6) + reinterpret_cast<int32_t>(*reinterpret_cast<void**>((reinterpret_cast<int32_t>(edi8) >> 5) * 4 + 0x1000fb40)));
*reinterpret_cast<int32_t*>(ebp11 - 28) = 1;
if (!esi10->f8) {
fun_10006df1(ecx, 10, 0x1000c590, 12, __return_address(), a2, a3, a4, a5, a6, a7);
ecx = reinterpret_cast<void**>(10);
*reinterpret_cast<int32_t*>(ebp12 - 4) = 0;
if (!esi10->f8) {
eax13 = reinterpret_cast<int32_t>(InitializeCriticalSectionAndSpinCount(10, esi10 + 1, 0xfa0));
if (!eax13) {
*reinterpret_cast<int32_t*>(ebp14 - 28) = 0;
}
esi10->f8 = esi10->f8 + 1;
}
*reinterpret_cast<int32_t*>(ebp15 - 4) = -2;
fun_10007ddd(10);
}
if (*reinterpret_cast<int32_t*>(ebp16 - 28)) {
v17 = *reinterpret_cast<int32_t*>((reinterpret_cast<int32_t>(edi8) >> 5) * 4 + 0x1000fb40) + ((edi8 & 31) << 6) + 12;
EnterCriticalSection(ecx, v17);
}
fun_100045b5(ecx, 0x1000c590, 12, __return_address(), a2, a3);
goto 0x1000c590;
}
void** fun_10007cde(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9);
int32_t SetFilePointer = 0xcc2e;
void** fun_10004cd7(void** ecx, void** a2, void** a3, void** a4, void** a5) {
void** edi6;
void** esi7;
void** ebp8;
void** eax9;
void** ecx10;
void** eax11;
void** eax12;
unsigned char* eax13;
void** eax14;
void** eax15;
eax9 = fun_10007cde(ecx, a2, edi6, esi7, a3, a4, ebp8, __return_address(), a2);
if (!reinterpret_cast<int1_t>(eax9 == 0xffffffff)) {
ecx10 = reinterpret_cast<void**>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 4 + 0xfffffffc);
eax11 = reinterpret_cast<void**>(SetFilePointer(eax9, a3, ecx10, a5));
if (!reinterpret_cast<int1_t>(eax11 == 0xffffffff) || (eax12 = reinterpret_cast<void**>(GetLastError(eax9, a3, ecx10, a5)), eax12 == 0)) {
eax13 = reinterpret_cast<unsigned char*>(reinterpret_cast<int32_t>(*reinterpret_cast<void**>((reinterpret_cast<signed char>(a2) >> 5) * 4 + 0x1000fb40)) + ((reinterpret_cast<unsigned char>(a2) & 31) << 6) + 4);
*eax13 = reinterpret_cast<unsigned char>(*eax13 & 0xfd);
eax14 = eax11;
} else {
fun_100028bc(ecx10, eax12, eax9, a3, ecx10, a5, edi6, esi7);
goto addr_10004d08_5;
}
} else {
eax15 = fun_10002896(a2, edi6, esi7, a3, a4, ebp8, __return_address(), a2, a3, a4, a5);
*reinterpret_cast<void***>(eax15) = reinterpret_cast<void**>(9);
goto addr_10004d08_5;
}
addr_10004d58_7:
return eax14;
addr_10004d08_5:
eax14 = reinterpret_cast<void**>(0xffffffff);
goto addr_10004d58_7;
}
void** fun_10007e4f(void** a1, void** a2, void** a3, void** a4);
void** fun_10007f65(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6) {
void** eax7;
eax7 = fun_10007e4f(a2, a3, a4, 0);
return eax7;
}
int32_t g1000ddf0 = -2;
void fun_10008b1c(void** a1);
int32_t WriteConsoleW = 0xcd32;
int16_t fun_10007e0d(void** ecx, int16_t a2, void** a3, void** a4) {
void* ebp5;
int1_t zf6;
int32_t eax7;
int32_t eax8;
ebp5 = reinterpret_cast<void*>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 4);
zf6 = g1000ddf0 == -2;
if (zf6) {
fun_10008b1c(ecx);
}
eax7 = g1000ddf0;
if (eax7 == -1 || (eax8 = reinterpret_cast<int32_t>(WriteConsoleW(eax7, reinterpret_cast<int32_t>(ebp5) + 8, 1, reinterpret_cast<int32_t>(ebp5) - 4, 0, ecx)), eax8 == 0)) {
return -1;
} else {
return a2;
}
}
void fun_10007f80(void** ecx);
int32_t GetConsoleMode = 0xcc5c;
int32_t WideCharToMultiByte = 0xc914;
int32_t GetConsoleCP = 0xcc4c;
struct s52 {
void** f0;
signed char[51] pad52;
signed char f52;
signed char[3] pad56;
uint32_t f56;
};
uint32_t fun_10005b05(void** ecx, void** a2, void** a3, void** a4);
void** fun_10004e46(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7) {
void** v8;
void** v9;
void** ebp10;
void*** ebp11;
void** v12;
void** esi13;
void** v14;
void** edi15;
void** v16;
void** v17;
void** v18;
void** v19;
void** ebx20;
void*** ebx21;
void** eax22;
void* edi23;
void*** v24;
void** v25;
uint32_t eax26;
void** eax27;
void** eax28;
void** eax29;
void** eax30;
void** ecx31;
void** eax32;
void** ecx33;
void** v34;
void** v35;
void** eax36;
void** eax37;
void** v38;
int32_t eax39;
void** eax40;
void** v41;
void** v42;
void** v43;
void* v44;
void** ecx45;
void* eax46;
uint32_t edx47;
void** esi48;
void* v49;
int32_t v50;
void** v51;
void** eax52;
void** ebx53;
void* v54;
void* v55;
uint32_t v56;
void** v57;
int32_t eax58;
void* v59;
void** eax60;
void** eax61;
void** ebx62;
void* v63;
void* eax64;
uint32_t edx65;
void* esi66;
void** v67;
int32_t eax68;
void* v69;
void** ebx70;
uint32_t esi71;
void* eax72;
void** dl73;
void* esi74;
void** v75;
int32_t eax76;
void* v77;
int32_t eax78;
void** ebx79;
int32_t v80;
void** v81;
void** esi82;
void** v83;
void** eax84;
struct s52* eax85;
void** v86;
uint32_t eax87;
void** v88;
void** v89;
void** eax90;
void** v91;
int16_t ax92;
int16_t ax93;
void** eax94;
void* v95;
void** v96;
int32_t eax97;
void* v98;
void* v99;
void** v100;
int32_t eax101;
void** eax102;
void** v103;
int32_t eax104;
void** eax105;
void** eax106;
void** eax107;
void** eax108;
void** ecx109;
void** dl110;
v8 = reinterpret_cast<void**>(__return_address());
v9 = ebp10;
ebp11 = reinterpret_cast<void***>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 4);
fun_10007f80(ecx);
v12 = esi13;
v14 = edi15;
v16 = a3;
v17 = reinterpret_cast<void**>(0);
v18 = reinterpret_cast<void**>(0);
if (a4) {
if (a3) {
v19 = ebx20;
ebx21 = reinterpret_cast<void***>((reinterpret_cast<signed char>(a2) >> 5) * 4 + 0x1000fb40);
eax22 = *ebx21;
edi23 = reinterpret_cast<void*>((reinterpret_cast<unsigned char>(a2) & 31) << 6);
ecx = reinterpret_cast<void**>(reinterpret_cast<signed char>(*reinterpret_cast<signed char*>(reinterpret_cast<unsigned char>(eax22) + reinterpret_cast<uint32_t>(edi23) + 36) + *reinterpret_cast<signed char*>(reinterpret_cast<unsigned char>(eax22) + reinterpret_cast<uint32_t>(edi23) + 36)) >> 1);
v24 = ebx21;
v25 = ecx;
if (ecx != 2 && !reinterpret_cast<int1_t>(ecx == 1) || (ecx = reinterpret_cast<void**>(~reinterpret_cast<unsigned char>(a4)), !!(reinterpret_cast<unsigned char>(ecx) & 1))) {
if (*reinterpret_cast<unsigned char*>(reinterpret_cast<unsigned char>(eax22) + reinterpret_cast<uint32_t>(edi23) + 4) & 32) {
fun_10004cd7(ecx, a2, 0, 0, 2);
}
eax26 = fun_10005660(ecx, a2, v19, v14, v12, v9, v8, a2, a3);
if (!eax26)
goto addr_100051c4_7;
if (*reinterpret_cast<unsigned char*>(reinterpret_cast<uint32_t>(edi23) + reinterpret_cast<unsigned char>(*ebx21) + 4) & 0x80)
goto addr_10004f38_9;
} else {
eax27 = fun_100028a9(ecx, v19, v14, v12, v9, v8, a2, a3, a4, a5);
*reinterpret_cast<void***>(eax27) = reinterpret_cast<void**>(0);
eax28 = fun_10002896(ecx, v19, v14, v12, v9, v8, a2, a3, a4, a5, a6);
*reinterpret_cast<void***>(eax28) = reinterpret_cast<void**>(22);
fun_10002844(ecx);
goto addr_10005523_11;
}
} else {
eax29 = fun_100028a9(ecx, v14, v12, v9, v8, a2, a3, a4, a5, a6);
*reinterpret_cast<void***>(eax29) = reinterpret_cast<void**>(0);
eax30 = fun_10002896(ecx, v14, v12, v9, v8, a2, a3, a4, a5, a6, a7);
*reinterpret_cast<void***>(eax30) = reinterpret_cast<void**>(22);
fun_10002844(ecx);
goto addr_10005535_13;
}
} else {
goto addr_10005535_13;
}
addr_100051c4_7:
ecx31 = reinterpret_cast<void**>(0);
goto addr_100051c6_15;
addr_10004f38_9:
eax32 = fun_100036bd(a2, v19, v14, v12, v9, v8, a2, a3, a4);
ecx33 = reinterpret_cast<void**>(0);
*reinterpret_cast<unsigned char*>(&ecx33) = reinterpret_cast<uint1_t>(*reinterpret_cast<void***>(*reinterpret_cast<void***>(eax32 + 0x6c) + 20) == 0);
v34 = reinterpret_cast<void**>(ebp11 + 0xffffe520);
v35 = *reinterpret_cast<void***>(reinterpret_cast<uint32_t>(edi23) + reinterpret_cast<unsigned char>(*ebx21));
eax36 = reinterpret_cast<void**>(GetConsoleMode(v35, v34));
ecx31 = reinterpret_cast<void**>(0);
if (!eax36 || ecx33 && !v25) {
addr_100051c6_15:
eax37 = *ebx21;
if (!(*reinterpret_cast<unsigned char*>(reinterpret_cast<unsigned char>(eax37) + reinterpret_cast<uint32_t>(edi23) + 4) & 0x80)) {
v34 = reinterpret_cast<void**>(0);
ecx31 = reinterpret_cast<void**>(ebp11 + 0xffffe528);
v35 = ecx31;
v38 = *reinterpret_cast<void***>(reinterpret_cast<unsigned char>(eax37) + reinterpret_cast<uint32_t>(edi23));
eax39 = reinterpret_cast<int32_t>(WriteFile(v38, v16, a4, v35, 0));
if (!eax39) {
addr_100054a7_17:
eax40 = reinterpret_cast<void**>(GetLastError(ecx31, v35, v34));
v41 = eax40;
} else {
v41 = reinterpret_cast<void**>(0);
v17 = v42;
}
} else {
v41 = reinterpret_cast<void**>(0);
if (v25) {
if (!reinterpret_cast<int1_t>(v25 == 2)) {
v43 = v16;
if (reinterpret_cast<unsigned char>(a4) <= reinterpret_cast<unsigned char>(0))
goto addr_100054f2_22;
do {
v44 = reinterpret_cast<void*>(0);
ecx45 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(v43) - reinterpret_cast<unsigned char>(v16));
eax46 = reinterpret_cast<void*>(ebp11 + 0xfffff948);
do {
if (reinterpret_cast<unsigned char>(ecx45) >= reinterpret_cast<unsigned char>(a4))
break;
edx47 = reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(v43));
v43 = v43 + 2;
ecx45 = ecx45 + 2;
if (edx47 == 10) {
eax46 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(eax46) + 2);
v44 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(v44) + 2);
}
v44 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(v44) + 2);
eax46 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(eax46) + 2);
} while (reinterpret_cast<uint32_t>(v44) < 0x6a8);
esi48 = reinterpret_cast<void**>(0);
v34 = reinterpret_cast<void**>(0);
v35 = reinterpret_cast<void**>(0);
v49 = reinterpret_cast<void*>(ebp11 + 0xffffebf0);
ecx31 = reinterpret_cast<void**>(ebp11 + 0xfffff948);
__asm__("cdq ");
v50 = reinterpret_cast<int32_t>(reinterpret_cast<uint32_t>(eax46) - reinterpret_cast<unsigned char>(ecx31) - edx47) >> 1;
v51 = ecx31;
eax52 = reinterpret_cast<void**>(WideCharToMultiByte(0xfde9, 0, v51, v50, v49, 0xd55, 0, 0));
ebx53 = eax52;
if (!ebx53)
goto addr_100054a7_17;
do {
v54 = reinterpret_cast<void*>(ebp11 + 0xffffe528);
v55 = reinterpret_cast<void*>(reinterpret_cast<unsigned char>(ebx53) - reinterpret_cast<unsigned char>(esi48));
v56 = reinterpret_cast<uint32_t>(ebp11) + reinterpret_cast<unsigned char>(esi48) + 0xffffebf0;
v57 = *reinterpret_cast<void***>(reinterpret_cast<uint32_t>(edi23) + reinterpret_cast<unsigned char>(*v24));
eax58 = reinterpret_cast<int32_t>(WriteFile(v57, v56, v55, v54, 0, 0xfde9, 0, v51, v50, v49, 0xd55, 0, 0));
if (!eax58)
break;
esi48 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(esi48) + reinterpret_cast<uint32_t>(v59));
} while (reinterpret_cast<signed char>(ebx53) > reinterpret_cast<signed char>(esi48));
goto addr_10005445_31;
eax60 = reinterpret_cast<void**>(GetLastError(v57, v56, v55, v54, 0, 0xfde9, 0, v51, v50, v49, 0xd55, 0, 0));
v41 = eax60;
addr_10005453_33:
if (reinterpret_cast<signed char>(ebx53) > reinterpret_cast<signed char>(esi48))
break; else
continue;
addr_10005445_31:
goto addr_10005453_33;
eax61 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(v43) - reinterpret_cast<unsigned char>(v16));
v17 = eax61;
} while (reinterpret_cast<unsigned char>(eax61) < reinterpret_cast<unsigned char>(a4));
goto addr_10005472_35;
} else {
ebx62 = v16;
if (reinterpret_cast<unsigned char>(a4) <= reinterpret_cast<unsigned char>(0))
goto addr_100054f2_22;
do {
v63 = reinterpret_cast<void*>(0);
ecx31 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(ebx62) - reinterpret_cast<unsigned char>(v16));
eax64 = reinterpret_cast<void*>(ebp11 + 0xffffe548);
do {
if (reinterpret_cast<unsigned char>(ecx31) >= reinterpret_cast<unsigned char>(a4))
break;
edx65 = reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(ebx62));
ebx62 = ebx62 + 2;
ecx31 = ecx31 + 2;
if (edx65 == 10) {
ebx62 = ebx62;
eax64 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(eax64) + 2);
v63 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(v63) + 2);
}
v63 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(v63) + 2);
eax64 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(eax64) + 2);
} while (reinterpret_cast<uint32_t>(v63) < 0x13fe);
esi66 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(eax64) - reinterpret_cast<uint32_t>(ebp11 + 0xffffe548));
v34 = reinterpret_cast<void**>(0);
v35 = reinterpret_cast<void**>(ebp11 + 0xffffe528);
v67 = *reinterpret_cast<void***>(reinterpret_cast<uint32_t>(edi23) + reinterpret_cast<unsigned char>(*v24));
eax68 = reinterpret_cast<int32_t>(WriteFile(v67, ebp11 + 0xffffe548, esi66, v35, 0));
if (!eax68)
goto addr_100054a7_17;
v17 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(v17) + reinterpret_cast<uint32_t>(v69));
if (reinterpret_cast<int32_t>(v69) < reinterpret_cast<int32_t>(esi66))
break;
} while (reinterpret_cast<unsigned char>(reinterpret_cast<unsigned char>(ebx62) - reinterpret_cast<unsigned char>(v16)) < reinterpret_cast<unsigned char>(a4));
goto addr_10005363_45;
}
} else {
ebx70 = v16;
if (reinterpret_cast<unsigned char>(a4) <= reinterpret_cast<unsigned char>(0))
goto addr_100054f2_22;
do {
esi71 = 0;
ecx31 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(ebx70) - reinterpret_cast<unsigned char>(v16));
eax72 = reinterpret_cast<void*>(ebp11 + 0xffffe548);
do {
if (reinterpret_cast<unsigned char>(ecx31) >= reinterpret_cast<unsigned char>(a4))
break;
dl73 = *reinterpret_cast<void***>(ebx70);
++ebx70;
++ecx31;
if (reinterpret_cast<int1_t>(dl73 == 10)) {
eax72 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(eax72) + 1);
++esi71;
}
eax72 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(eax72) + 1);
++esi71;
} while (esi71 < 0x13ff);
esi74 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(eax72) - reinterpret_cast<uint32_t>(ebp11 + 0xffffe548));
v34 = reinterpret_cast<void**>(0);
v35 = reinterpret_cast<void**>(ebp11 + 0xffffe528);
v75 = *reinterpret_cast<void***>(reinterpret_cast<uint32_t>(edi23) + reinterpret_cast<unsigned char>(*v24));
eax76 = reinterpret_cast<int32_t>(WriteFile(v75, ebp11 + 0xffffe548, esi74, v35, 0));
if (!eax76)
goto addr_100054a7_17;
v17 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(v17) + reinterpret_cast<uint32_t>(v77));
if (reinterpret_cast<int32_t>(v77) < reinterpret_cast<int32_t>(esi74))
break;
} while (reinterpret_cast<unsigned char>(reinterpret_cast<unsigned char>(ebx70) - reinterpret_cast<unsigned char>(v16)) < reinterpret_cast<unsigned char>(a4));
goto addr_10005289_55;
}
}
} else {
eax78 = reinterpret_cast<int32_t>(GetConsoleCP(v35, v34));
ebx79 = v16;
v80 = eax78;
if (reinterpret_cast<unsigned char>(a4) <= reinterpret_cast<unsigned char>(0))
goto addr_100054bc_57;
v81 = reinterpret_cast<void**>(0);
do {
if (v25) {
if (v25 == 1 || reinterpret_cast<int1_t>(v25 == 2)) {
esi82 = reinterpret_cast<void**>(static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(ebx79))));
ecx31 = reinterpret_cast<void**>(0);
ecx31 = reinterpret_cast<void**>(static_cast<unsigned char>(reinterpret_cast<uint1_t>(esi82 == 10)));
ebx79 = ebx79 + 2;
v81 = v81 + 2;
v41 = esi82;
v83 = ecx31;
}
if (v25 == 1)
goto addr_10005145_63;
if (!reinterpret_cast<int1_t>(v25 == 2))
continue;
} else {
ecx31 = *reinterpret_cast<void***>(ebx79);
eax84 = reinterpret_cast<void**>(0);
*reinterpret_cast<unsigned char*>(&eax84) = reinterpret_cast<uint1_t>(ecx31 == 10);
v83 = eax84;
eax85 = reinterpret_cast<struct s52*>(reinterpret_cast<unsigned char>(*v24) + reinterpret_cast<uint32_t>(edi23));
if (!eax85->f56) {
v86 = reinterpret_cast<void**>(static_cast<int32_t>(reinterpret_cast<signed char>(ecx31)));
eax87 = fun_10005b05(ecx31, v86, v35, v34);
ecx31 = v86;
if (!eax87) {
v88 = reinterpret_cast<void**>(1);
v89 = ebx79;
goto addr_1000502d_68;
} else {
ecx31 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(v16) - reinterpret_cast<unsigned char>(ebx79) + reinterpret_cast<unsigned char>(a4));
if (reinterpret_cast<unsigned char>(ecx31) <= reinterpret_cast<unsigned char>(1))
goto addr_100051ab_70;
eax90 = fun_10007f65(ecx31, ebp11 + 0xffffe544, ebx79, 2, v35, v34);
if (eax90 == 0xffffffff)
break;
++ebx79;
++v81;
goto addr_10005045_73;
}
} else {
*reinterpret_cast<signed char*>(&v19) = eax85->f52;
(&v19)[1] = ecx31;
eax85->f56 = 0;
v88 = reinterpret_cast<void**>(2);
v89 = reinterpret_cast<void**>(ebp11 + 0xfffffff4);
goto addr_1000502d_68;
}
}
addr_10005145_63:
v91 = v41;
ax92 = fun_10007e0d(ecx31, *reinterpret_cast<int16_t*>(&v91), v35, v34);
ecx31 = v91;
if (ax92 != *reinterpret_cast<int16_t*>(&v41))
goto addr_100054a7_17;
v17 = v17 + 2;
if (!v83)
continue;
v41 = reinterpret_cast<void**>(13);
ax93 = fun_10007e0d(ecx31, 13, v35, v34);
ecx31 = reinterpret_cast<void**>(13);
if (ax93 != 13)
goto addr_100054a7_17;
++v17;
++v18;
continue;
addr_1000502d_68:
eax94 = fun_10007f65(ecx31, ebp11 + 0xffffe544, v89, v88, v35, v34);
if (eax94 == 0xffffffff)
break;
addr_10005045_73:
v95 = reinterpret_cast<void*>(ebp11 + 0xfffffff4);
ecx31 = reinterpret_cast<void**>(ebp11 + 0xffffe544);
v96 = ecx31;
++ebx79;
++v81;
eax97 = reinterpret_cast<int32_t>(WideCharToMultiByte(v80, 0, v96, 1, v95, 5, 0, 0, v35, v34));
if (!eax97)
break;
v98 = reinterpret_cast<void*>(ebp11 + 0xffffe52c);
v99 = reinterpret_cast<void*>(ebp11 + 0xfffffff4);
v100 = *reinterpret_cast<void***>(reinterpret_cast<uint32_t>(edi23) + reinterpret_cast<unsigned char>(*v24));
eax101 = reinterpret_cast<int32_t>(WriteFile(v100, v99, eax97, v98, 0, v80, 0, v96, 1, v95, 5, 0, 0, v35, v34));
if (!eax101)
goto addr_100054a7_17;
ecx31 = v18;
v17 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(v81) + reinterpret_cast<unsigned char>(ecx31));
if (0 < eax97)
break;
if (v83) {
eax102 = *v24;
*reinterpret_cast<signed char*>(&v19) = 13;
v103 = *reinterpret_cast<void***>(reinterpret_cast<uint32_t>(edi23) + reinterpret_cast<unsigned char>(eax102));
eax104 = reinterpret_cast<int32_t>(WriteFile(v103, ebp11 + 0xfffffff4, 1, ebp11 + 0xffffe52c, 0, v100, v99, eax97, v98, 0, v80, 0, v96, 1, v95, 5, 0, 0, v35, v34));
if (!eax104)
goto addr_100054a7_17;
if (1)
break;
++v18;
++v17;
}
} while (reinterpret_cast<unsigned char>(v81) < reinterpret_cast<unsigned char>(a4));
goto addr_100051a6_85;
}
addr_100054b3_86:
if (!v17) {
addr_100054bc_57:
if (!v41) {
addr_100054f2_22:
if (!(*reinterpret_cast<unsigned char*>(reinterpret_cast<uint32_t>(edi23) + reinterpret_cast<unsigned char>(*v24) + 4) & 64) || !reinterpret_cast<int1_t>(*reinterpret_cast<void***>(v16) == 26)) {
eax105 = fun_10002896(ecx31, v19, v14, v12, v9, v8, a2, a3, a4, a5, a6);
*reinterpret_cast<void***>(eax105) = reinterpret_cast<void**>(28);
eax106 = fun_100028a9(ecx31, v19, v14, v12, v9, v8, a2, a3, a4, a5);
*reinterpret_cast<void***>(eax106) = reinterpret_cast<void**>(0);
goto addr_10005523_11;
}
} else {
if (!reinterpret_cast<int1_t>(v41 == 5)) {
fun_100028bc(ecx31, v41, v35, v34, v19, v14, v12, v9);
goto addr_10005523_11;
} else {
eax107 = fun_10002896(ecx31, v35, v34, v19, v14, v12, v9, v8, a2, a3, a4);
*reinterpret_cast<void***>(eax107) = reinterpret_cast<void**>(9);
eax106 = fun_100028a9(ecx31, v35, v34, v19, v14, v12, v9, v8, a2, a3);
*reinterpret_cast<void***>(eax106) = reinterpret_cast<void**>(5);
goto addr_10005523_11;
}
}
}
addr_10005534_93:
addr_10005535_13:
eax108 = fun_10001cc4(reinterpret_cast<unsigned char>(v12) ^ reinterpret_cast<uint32_t>(ebp11), v9);
return eax108;
addr_10005523_11:
goto addr_10005534_93;
addr_10005472_35:
goto addr_100054b3_86;
addr_10005363_45:
goto addr_100054b3_86;
addr_10005289_55:
goto addr_100054b3_86;
addr_100051a6_85:
goto addr_100054b3_86;
addr_100051ab_70:
ecx109 = *v24;
dl110 = *reinterpret_cast<void***>(ebx79);
++v17;
*reinterpret_cast<void***>(reinterpret_cast<uint32_t>(edi23) + reinterpret_cast<unsigned char>(ecx109) + 52) = dl110;
ecx31 = *v24;
*reinterpret_cast<void***>(reinterpret_cast<uint32_t>(edi23) + reinterpret_cast<unsigned char>(ecx31) + 56) = reinterpret_cast<void**>(1);
goto addr_100054b3_86;
}
void** g1000fb20;
void** g1000eb04;
int32_t fun_10008bbf(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10);
void fun_1000803f(void** ecx);
void fun_10007fac(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14) {
void** v15;
int32_t ebp16;
void** ecx17;
int32_t ebp18;
void** edi19;
int32_t ebp20;
int1_t less21;
void** eax22;
void** v23;
int32_t eax24;
int32_t ebp25;
int32_t ebp26;
void** eax27;
void** v28;
void** eax29;
void** v30;
void** eax31;
int32_t ebp32;
v15 = reinterpret_cast<void**>(__return_address());
fun_10004570(0x1000c5b0, 16, v15);
*reinterpret_cast<void***>(ebp16 - 28) = reinterpret_cast<void**>(0);
fun_10006df1(ecx, 1, 0x1000c5b0, 16, v15, a2, a3, a4, a5, a6, a7);
ecx17 = reinterpret_cast<void**>(1);
*reinterpret_cast<void***>(ebp18 - 4) = reinterpret_cast<void**>(0);
edi19 = reinterpret_cast<void**>(3);
while (*reinterpret_cast<void***>(ebp20 - 32) = edi19, less21 = reinterpret_cast<signed char>(edi19) < reinterpret_cast<signed char>(g1000fb20), less21) {
eax22 = g1000eb04;
if (*reinterpret_cast<void***>(eax22 + reinterpret_cast<unsigned char>(edi19) * 4)) {
if (reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(*reinterpret_cast<void***>(eax22 + reinterpret_cast<unsigned char>(edi19) * 4) + 12)) & 0x83 && (v23 = *reinterpret_cast<void***>(eax22 + reinterpret_cast<unsigned char>(edi19) * 4), eax24 = fun_10008bbf(ecx17, v23, 0x1000c5b0, 16, v15, a2, a3, a4, a5, a6), ecx17 = v23, eax24 != -1)) {
*reinterpret_cast<int32_t*>(ebp25 - 28) = *reinterpret_cast<int32_t*>(ebp26 - 28) + 1;
}
if (reinterpret_cast<signed char>(edi19) >= reinterpret_cast<signed char>(20)) {
eax27 = g1000eb04;
v28 = *reinterpret_cast<void***>(eax27 + reinterpret_cast<unsigned char>(edi19) * 4) + 32;
DeleteCriticalSection(ecx17, v28);
eax29 = g1000eb04;
v30 = *reinterpret_cast<void***>(eax29 + reinterpret_cast<unsigned char>(edi19) * 4);
fun_10002416(ecx17, v30, v28, 0x1000c5b0, 16, v15, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14);
ecx17 = v30;
eax31 = g1000eb04;
*reinterpret_cast<void***>(eax31 + reinterpret_cast<unsigned char>(edi19) * 4) = reinterpret_cast<void**>(0);
}
}
++edi19;
}
*reinterpret_cast<int32_t*>(ebp32 - 4) = -2;
fun_1000803f(ecx17);
fun_100045b5(ecx17, 0x1000c5b0, 16, v15, a2, a3);
goto 0x1000c5b0;
}
void fun_1000578d(void** a1, void** a2, void** a3, void** a4, void** a5, void** a6) {
void** ecx7;
void** esi8;
void** ebp9;
if (reinterpret_cast<unsigned char>(a1) < reinterpret_cast<unsigned char>(0x1000d990) || reinterpret_cast<unsigned char>(a1) > reinterpret_cast<unsigned char>(0x1000dbf0)) {
EnterCriticalSection(a1 + 32);
} else {
ecx7 = reinterpret_cast<void**>((reinterpret_cast<int32_t>(reinterpret_cast<unsigned char>(a1) - reinterpret_cast<unsigned char>(0x1000d990)) >> 5) + 16);
fun_10006df1(ecx7, ecx7, esi8, ebp9, __return_address(), a1, a2, a3, a4, a5, a6);
*reinterpret_cast<void***>(a1 + 12) = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(a1 + 12)) | 0x8000);
}
return;
}
uint32_t g1000e2f4;
int32_t fun_100058b4() {
void** eax1;
int32_t ecx2;
uint1_t zf3;
eax1 = g1000d050;
ecx2 = 0;
zf3 = reinterpret_cast<uint1_t>(g1000e2f4 == (reinterpret_cast<unsigned char>(eax1) | 1));
*reinterpret_cast<unsigned char*>(&ecx2) = zf3;
return ecx2;
}
void** fun_1000595b(void** ecx, void** a2, void** a3, void** a4, uint16_t a5, void** a6);
void** fun_10005ab0(void** ecx, void** a2, void** a3, void** a4, uint32_t a5) {
uint32_t v6;
void** eax7;
v6 = a5;
eax7 = fun_1000595b(ecx, a2, a3, a4, *reinterpret_cast<uint16_t*>(&v6), 0);
return eax7;
}
uint32_t fun_10005acd(void** ecx, void** a2, void** a3, void** a4);
uint32_t fun_10005b05(void** ecx, void** a2, void** a3, void** a4) {
void** ebp5;
uint32_t eax6;
eax6 = fun_10005acd(ecx, a2, 0, ebp5);
return eax6;
}
void fun_10005c3a(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6) {
signed char al7;
uint32_t eax8;
void** al9;
unsigned char al10;
uint32_t* esi11;
uint32_t* esi12;
int32_t* esi13;
int32_t* esi14;
if (!(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(ecx + 12)) & 64) || *reinterpret_cast<void***>(ecx + 8)) {
*reinterpret_cast<void***>(ecx + 4) = *reinterpret_cast<void***>(ecx + 4) - 1;
if (reinterpret_cast<signed char>(*reinterpret_cast<void***>(ecx + 4)) < reinterpret_cast<signed char>(0)) {
eax8 = fun_10002556(ecx, static_cast<int32_t>(al7), ecx, __return_address(), a2, a3, a4);
} else {
*reinterpret_cast<void***>(*reinterpret_cast<void***>(ecx)) = al9;
*reinterpret_cast<void***>(ecx) = *reinterpret_cast<void***>(ecx) + 1;
eax8 = al10;
}
if (eax8 == 0xffffffff) {
*esi11 = *esi12 | eax8;
return;
}
}
*esi13 = *esi14 + 1;
return;
}
void** fun_1000586b(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9) {
void** ebp10;
void** eax11;
if (a2) {
return *reinterpret_cast<void***>(a2 + 16);
} else {
eax11 = fun_10002896(ecx, ebp10, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9);
*reinterpret_cast<void***>(eax11) = reinterpret_cast<void**>(22);
fun_10002844(ecx);
return 0xffffffff;
}
}
void** fun_10005b20(void** a1, void** a2, void** a3, void** a4) {
void** ecx5;
void** ebx6;
void** eax7;
void** eax8;
void** esi9;
void** tmp32_10;
if (a4) {
ecx5 = a4;
ebx6 = a3;
eax7 = a1;
do {
ecx5 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(ecx5) >> 1);
__asm__("rcr ebx, 1");
__asm__("rcr eax, 1");
} while (ecx5);
eax8 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(eax7) / reinterpret_cast<unsigned char>(ebx6));
esi9 = eax8;
tmp32_10 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(__intrinsic()) + reinterpret_cast<unsigned char>(eax8) * reinterpret_cast<unsigned char>(a4));
if (reinterpret_cast<unsigned char>(tmp32_10) < reinterpret_cast<unsigned char>(__intrinsic()))
goto addr_10005b8d_5;
if (reinterpret_cast<unsigned char>(tmp32_10) > reinterpret_cast<unsigned char>(a2))
goto addr_10005b8d_5;
if (reinterpret_cast<unsigned char>(tmp32_10) < reinterpret_cast<unsigned char>(a2))
goto addr_10005b96_8;
if (reinterpret_cast<unsigned char>(reinterpret_cast<unsigned char>(a3) * reinterpret_cast<unsigned char>(esi9)) <= reinterpret_cast<unsigned char>(a1))
goto addr_10005b96_8;
} else {
esi9 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(a1) / reinterpret_cast<unsigned char>(a3));
goto addr_10005b98_11;
}
addr_10005b8d_5:
--esi9;
addr_10005b96_8:
addr_10005b98_11:
return esi9;
}
struct s53 {
signed char[12] pad12;
unsigned char f12;
};
struct s54 {
signed char[8] pad8;
int32_t f8;
};
void fun_10005c6d(void** ecx) {
void** v2;
void*** edi3;
void*** edi4;
void** v5;
void** ebp6;
int1_t zf7;
struct s53* ebx8;
void** v9;
void** esi10;
int32_t* esi11;
int32_t* eax12;
void** v13;
struct s54* ebx14;
int32_t v15;
int32_t v16;
void** ebx17;
void** v18;
void** ebx19;
int32_t v20;
v2 = reinterpret_cast<void**>(__return_address());
edi3 = edi4;
v5 = ebp6;
zf7 = (ebx8->f12 & 64) == 0;
v9 = esi10;
esi11 = eax12;
v13 = *edi3;
if (zf7 || ebx14->f8) {
*edi3 = reinterpret_cast<void**>(0);
if (v15 <= 0) {
addr_10005cc7_3:
*edi3 = v13;
} else {
do {
--v16;
fun_10005c3a(ebx17, v9, v13, v5, v2, v18);
++v18;
if (*esi11 == -1) {
if (!reinterpret_cast<int1_t>(*edi3 == 42))
break;
fun_10005c3a(ebx19, v9, v13, v5, v2, v18);
}
} while (v16 > 0);
if (!*edi3)
goto addr_10005cc7_3;
}
} else {
*esi11 = *esi11 + v20;
}
return;
}
void fun_100082b0(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15, void** a16, void** a17, void** a18, void** a19) {
int32_t v20;
void* esp21;
uint32_t ecx22;
int32_t eax23;
uint32_t tmp32_24;
int32_t eax25;
void* eax26;
uint32_t eax27;
void* esp28;
void* ecx29;
int32_t* ecx30;
int32_t* eax31;
v20 = reinterpret_cast<int32_t>(__return_address());
esp21 = reinterpret_cast<void*>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 4);
ecx22 = reinterpret_cast<uint32_t>(reinterpret_cast<int32_t>(esp21) + 8 - eax23) & 15;
tmp32_24 = eax25 + ecx22;
eax26 = reinterpret_cast<void*>(tmp32_24 | ecx22 - (ecx22 + reinterpret_cast<uint1_t>(ecx22 < ecx22 + reinterpret_cast<uint1_t>(tmp32_24 < eax27))));
esp28 = reinterpret_cast<void*>(reinterpret_cast<int32_t>(esp21) + 4 - 4);
ecx29 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(esp28) + 4);
ecx30 = reinterpret_cast<int32_t*>(reinterpret_cast<uint32_t>(ecx29) - reinterpret_cast<uint32_t>(eax26) & ~(reinterpret_cast<uint32_t>(eax26) - (reinterpret_cast<uint32_t>(eax26) + reinterpret_cast<uint1_t>(reinterpret_cast<uint32_t>(eax26) < reinterpret_cast<uint32_t>(eax26) + reinterpret_cast<uint1_t>(reinterpret_cast<uint32_t>(ecx29) < reinterpret_cast<uint32_t>(eax26))))));
eax31 = reinterpret_cast<int32_t*>(reinterpret_cast<uint32_t>(esp28) & 0xfffff000);
while (reinterpret_cast<uint32_t>(ecx30) < reinterpret_cast<uint32_t>(eax31)) {
eax31 = eax31 - 0x400;
}
*ecx30 = v20;
goto *ecx30;
}
int32_t MultiByteToWideChar = 0xccae;
int32_t GetStringTypeW = 0xccc4;
void** fun_10006b50(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8) {
void*** esp9;
void** eax10;
void** v11;
void** ebx12;
void** v13;
int32_t esi14;
int32_t eax15;
void** v16;
void** v17;
void** eax18;
void** edi19;
void** esi20;
int32_t eax21;
void** eax22;
void** ebx23;
void** ebp24;
void** eax25;
void** eax26;
void** eax27;
esp9 = reinterpret_cast<void***>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 4);
eax10 = g1000d050;
v11 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(eax10) ^ reinterpret_cast<uint32_t>(esp9));
ebx12 = reinterpret_cast<void**>(0);
v13 = reinterpret_cast<void**>(0);
if (!a7) {
a7 = *reinterpret_cast<void***>(*reinterpret_cast<void***>(a2) + 4);
}
esi14 = MultiByteToWideChar;
eax15 = 0;
*reinterpret_cast<unsigned char*>(&eax15) = reinterpret_cast<uint1_t>(!!a8);
v16 = reinterpret_cast<void**>(eax15 * 8 + 1);
v17 = a7;
eax18 = reinterpret_cast<void**>(esi14(v17, v16, a4, a5, 0, 0));
if (!eax18)
goto addr_10006ba2_4;
if (reinterpret_cast<signed char>(eax18) <= reinterpret_cast<signed char>(0) || reinterpret_cast<unsigned char>(eax18) > reinterpret_cast<unsigned char>(0x7ffffff0)) {
addr_10006be4_6:
if (!ebx12) {
addr_10006ba2_4:
} else {
fun_10005bc0(ecx, ebx12, 0, reinterpret_cast<unsigned char>(eax18) + reinterpret_cast<unsigned char>(eax18), v17, v16, a4, a5, 0, 0, edi19, esi20);
eax21 = reinterpret_cast<int32_t>(esi14(ecx, a7, 1, a4, a5, ebx12, eax18, v17, v16, a4, a5, 0, 0));
if (eax21) {
eax22 = reinterpret_cast<void**>(GetStringTypeW(ecx, a3, ebx12, eax21, a6, a7, 1, a4, a5, ebx12, eax18, v17, v16, a4, a5, 0, 0));
v13 = eax22;
}
fun_10006903(ecx, ebx12, a7, 1, a4, a5, ebx12, eax18, v17, v16, a4, a5, 0, 0, edi19, esi20, ebx23, v13, v11, ebp24, __return_address(), a2, a3, a4, a5, a6);
}
} else {
eax25 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(eax18) + reinterpret_cast<unsigned char>(eax18) + 8);
if (reinterpret_cast<unsigned char>(eax25) > reinterpret_cast<unsigned char>(0x400)) {
eax26 = fun_10004bb8(ecx, eax25, v17, v16, a4, a5, 0, 0, edi19, esi20, ebx23, 0, v11, ebp24, __return_address(), a2, a3, a4, a5, a6);
ecx = eax25;
if (!eax26) {
addr_10006be2_12:
ebx12 = eax26;
goto addr_10006be4_6;
} else {
*reinterpret_cast<void***>(eax26) = reinterpret_cast<void**>(0xdddd);
goto addr_10006bdf_14;
}
} else {
fun_100082b0(ecx, v17, v16, a4, a5, 0, 0, edi19, esi20, ebx23, 0, v11, ebp24, __return_address(), a2, a3, a4, a5, a6);
eax26 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(esp9 - 4 - 4 - 4 - 4 - 4 - 4 - 4 - 4 - 4 - 4 - 4 - 4 + 4) - 4 + 4);
if (!eax26)
goto addr_10006be2_12;
v17 = reinterpret_cast<void**>(0xcccc);
goto addr_10006bdf_14;
}
}
eax27 = fun_10001cc4(reinterpret_cast<unsigned char>(v11) ^ reinterpret_cast<uint32_t>(esp9), v13);
return eax27;
addr_10006bdf_14:
eax26 = eax26 + 8;
goto addr_10006be2_12;
}
struct s55 {
signed char[8] pad8;
int32_t f8;
};
void fun_10006de8(void** ecx);
int32_t fun_10006d2f(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15) {
int32_t ebp16;
int1_t zf17;
void*** esi18;
struct s55* ebp19;
void** eax20;
int32_t ebp21;
int32_t eax22;
void** eax23;
int32_t ebp24;
int32_t ebp25;
void** eax26;
fun_10004570(0x1000c510, 12, __return_address());
*reinterpret_cast<int32_t*>(ebp16 - 28) = 1;
zf17 = g1000e2e8 == 0;
if (zf17) {
fun_10007b81(ecx, 0x1000c510, 12, __return_address(), a2, a3, a4);
fun_100079d2(ecx, 30, 0x1000c510, 12, __return_address());
fun_10003bf2(ecx, 0xff, 30, 0x1000c510, 12, __return_address(), a2);
ecx = reinterpret_cast<void**>(30);
}
esi18 = reinterpret_cast<void***>(ebp19->f8 * 8 + 0x1000dc40);
if (!*esi18) {
eax20 = fun_10003ae8(ecx, 24, 0x1000c510, 12, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11);
ecx = reinterpret_cast<void**>(24);
if (eax20) {
fun_10006df1(24, 10, 0x1000c510, 12, __return_address(), a2, a3, a4, a5, a6, a7);
ecx = reinterpret_cast<void**>(10);
*reinterpret_cast<void***>(ebp21 - 4) = reinterpret_cast<void**>(0);
if (*esi18) {
fun_10002416(10, eax20, 0x1000c510, 12, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15);
ecx = eax20;
} else {
eax22 = reinterpret_cast<int32_t>(InitializeCriticalSectionAndSpinCount(10, eax20, 0xfa0));
if (eax22) {
*esi18 = eax20;
} else {
fun_10002416(10, eax20, eax20, 0xfa0, 0x1000c510, 12, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13);
ecx = eax20;
eax23 = fun_10002896(ecx, eax20, 0xfa0, 0x1000c510, 12, __return_address(), a2, a3, a4, a5, a6);
*reinterpret_cast<void***>(eax23) = reinterpret_cast<void**>(12);
*reinterpret_cast<void***>(ebp24 - 28) = reinterpret_cast<void**>(0);
}
}
*reinterpret_cast<int32_t*>(ebp25 - 4) = -2;
fun_10006de8(ecx);
} else {
eax26 = fun_10002896(24, 0x1000c510, 12, __return_address(), a2, a3, a4, a5, a6, a7, a8);
*reinterpret_cast<void***>(eax26) = reinterpret_cast<void**>(12);
}
}
fun_100045b5(ecx, 0x1000c510, 12, __return_address(), a2, a3);
goto 0x1000c510;
}
struct s56 {
void** f0;
signed char[7] pad8;
void** f8;
};
int32_t g1000ddd8 = 0;
int32_t g1000ddd4 = 0;
int32_t g1000dddc = 0;
int32_t fun_100083f5(void** ecx, int32_t a2, void** a3, void** a4, uint32_t a5, void** a6, void** a7, void** a8, struct s56* a9) {
int32_t eax10;
int32_t ebp11;
int32_t eax12;
g1000ddd8 = a2;
g1000ddd4 = eax10;
g1000dddc = ebp11;
return eax12;
}
void fun_10008414(void** ecx, void** a2, void** a3, uint32_t a4, void** a5, void** a6, void** a7, struct s56* a8) {
int32_t eax9;
eax9();
return;
}
struct s57 {
void** f0;
signed char[3] pad4;
int32_t f4;
};
struct s58 {
signed char[4] pad4;
uint32_t f4;
};
int32_t fun_10007400(struct s58* a1, uint32_t a2);
void fun_10007370(void** a1, void** a2, void** a3) {
struct s56* v4;
struct s56* ebp5;
void** v6;
void** v7;
void** v8;
void** esp9;
void** v10;
void** eax11;
uint32_t v12;
struct s57* ebx13;
void** ecx14;
v4 = ebp5;
v6 = a1;
v7 = a2;
v8 = a3;
esp9 = reinterpret_cast<void**>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 4 - 4 - 4 - 4 - 4 - 4 - 4 - 4 - 4 - 4);
v10 = g0;
eax11 = g1000d050;
v12 = reinterpret_cast<unsigned char>(eax11) ^ reinterpret_cast<unsigned char>(esp9);
g0 = esp9;
while (*reinterpret_cast<void***>(a2 + 12) != 0xfffffffe && (a3 == 0xfffffffe || reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(a2 + 12)) > reinterpret_cast<unsigned char>(a3))) {
ebx13 = reinterpret_cast<struct s57*>((reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(a2 + 8)) ^ reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(a1))) + reinterpret_cast<uint32_t>(*reinterpret_cast<void***>(a2 + 12) + reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(a2 + 12)) * 2) * 4 + 16);
ecx14 = ebx13->f0;
*reinterpret_cast<void***>(a2 + 12) = ecx14;
if (ebx13->f4)
continue;
fun_100083f5(ecx14, 0x101, v10, fun_10007400, v12, v8, v7, v6, v4);
fun_10008414(1, v10, fun_10007400, v12, v8, v7, v6, v4);
}
g0 = v10;
return;
}
int32_t SetLastError = 0xca9e;
void** fun_10003644(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11) {
void** v12;
int32_t eax13;
void** eax14;
void** edi15;
void** esi16;
void** eax17;
void** v18;
void** v19;
int32_t eax20;
int32_t eax21;
void** eax22;
GetLastError();
v12 = g1000d93c;
eax13 = fun_1000351f();
eax14 = reinterpret_cast<void**>(eax13());
if (!eax14 && (eax17 = fun_10003b2d(ecx, 1, 0x214, v12, edi15, esi16, __return_address(), a2, a3, a4, a5), ecx = reinterpret_cast<void**>(0x214), !!eax17)) {
v18 = g1000d93c;
v19 = g1000e194;
eax20 = reinterpret_cast<int32_t>(DecodePointer(0x214, v19, v18, eax17));
eax21 = reinterpret_cast<int32_t>(eax20(0x214, v19, v18, eax17));
if (!eax21) {
fun_10002416(0x214, eax17, v19, v18, eax17, v12, edi15, esi16, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11);
ecx = eax17;
} else {
fun_10003590(0x214, eax17, 0, v19, v18, eax17, v12, edi15, esi16, __return_address(), a2, a3, a4, a5);
ecx = reinterpret_cast<void**>(0);
eax22 = reinterpret_cast<void**>(GetCurrentThreadId(0, v19, v18, eax17));
*reinterpret_cast<void***>(eax17 + 4) = reinterpret_cast<void**>(0xffffffff);
*reinterpret_cast<void***>(eax17) = eax22;
}
}
SetLastError(ecx);
goto edi15;
}
void** fun_10003e4a(void** ecx, void** a2, void** a3, void** a4, void** a5) {
void** ebp6;
void** eax7;
eax7 = fun_10003d0a(ecx, a2, 1, 0, ebp6, __return_address(), a2);
return eax7;
}
struct s59 {
signed char[6] pad6;
uint16_t f6;
signed char[12] pad20;
uint16_t f20;
};
struct s48* fun_100078a0(struct s49* a1, uint32_t a2) {
struct s59* ecx3;
uint32_t eax4;
uint32_t esi5;
uint32_t edx6;
struct s48* eax7;
uint32_t edi8;
ecx3 = reinterpret_cast<struct s59*>(a1->f60 + reinterpret_cast<int32_t>(a1));
eax4 = ecx3->f20;
esi5 = ecx3->f6;
edx6 = 0;
eax7 = reinterpret_cast<struct s48*>(eax4 + reinterpret_cast<int32_t>(ecx3) + 24);
if (!esi5) {
addr_100078dd_2:
eax7 = reinterpret_cast<struct s48*>(0);
} else {
edi8 = a2;
do {
if (edi8 < eax7->f12)
continue;
if (edi8 < eax7->f8 + eax7->f12)
break;
++edx6;
++eax7;
} while (edx6 < esi5);
goto addr_100078dd_2;
}
return eax7;
}
void** g1000de2c = reinterpret_cast<void**>(0);
void** fun_10008add(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9) {
void** eax10;
void** eax11;
void** ebp12;
void** eax13;
if (reinterpret_cast<signed char>(a2) >= reinterpret_cast<signed char>(0)) {
if (reinterpret_cast<signed char>(a2) <= reinterpret_cast<signed char>(2)) {
eax10 = g1000de2c;
g1000de2c = a2;
return eax10;
} else {
if (reinterpret_cast<int1_t>(a2 == 3)) {
eax11 = g1000de2c;
return eax11;
}
}
}
eax13 = fun_10002896(a2, ebp12, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9);
*reinterpret_cast<void***>(eax13) = reinterpret_cast<void**>(22);
fun_10002844(a2);
return 0xffffffff;
}
void** fun_10008a7a(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7) {
void** v8;
void** v9;
void** ebp10;
void** v11;
void** esi12;
void** esi13;
void** v14;
void** edi15;
void** edi16;
void** eax17;
void** esi18;
void** eax19;
void* edx20;
void** ecx21;
void** eax22;
void** eax23;
v8 = reinterpret_cast<void**>(__return_address());
v9 = ebp10;
v11 = esi12;
esi13 = a2;
v14 = edi15;
if (!esi13 || (edi16 = a3, !edi16)) {
addr_10008a8f_2:
eax17 = fun_10002896(ecx, v14, v11, v9, v8, a2, a3, a4, a5, a6, a7);
esi18 = reinterpret_cast<void**>(22);
*reinterpret_cast<void***>(eax17) = reinterpret_cast<void**>(22);
} else {
eax19 = a4;
if (eax19) {
edx20 = reinterpret_cast<void*>(reinterpret_cast<unsigned char>(esi13) - reinterpret_cast<unsigned char>(eax19));
do {
ecx21 = reinterpret_cast<void**>(static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(eax19))));
*reinterpret_cast<int16_t*>(reinterpret_cast<uint32_t>(edx20) + reinterpret_cast<unsigned char>(eax19)) = *reinterpret_cast<int16_t*>(&ecx21);
eax19 = eax19 + 2;
if (!*reinterpret_cast<int16_t*>(&ecx21))
break;
--edi16;
} while (edi16);
eax22 = reinterpret_cast<void**>(0);
if (edi16)
goto addr_10008aa0_8; else
goto addr_10008acc_9;
} else {
*reinterpret_cast<void***>(esi13) = eax19;
goto addr_10008a8f_2;
}
}
addr_10008a99_11:
fun_10002844(ecx);
eax22 = esi18;
addr_10008aa0_8:
return eax22;
addr_10008acc_9:
*reinterpret_cast<void***>(esi13) = reinterpret_cast<void**>(0);
eax23 = fun_10002896(ecx21, v14, v11, v9, v8, a2, a3, a4, a5, a6, a7);
ecx = reinterpret_cast<void**>(34);
*reinterpret_cast<void***>(eax23) = reinterpret_cast<void**>(34);
esi18 = reinterpret_cast<void**>(34);
goto addr_10008a99_11;
}
void** fun_100026c9(void** ecx, void** a2, int32_t a3, void** a4, void** a5, void** a6);
void fun_100027f2(void** ecx, int32_t a2, void** a3, void** a4, void** a5, void** a6) {
void** esi7;
fun_100026c9(ecx, 2, 0xc0000417, 1, esi7, __return_address());
GetCurrentProcess();
TerminateProcess();
goto 0xc0000417;
}
int32_t fun_10008a5f(void** ecx, void** a2, void** a3, void** a4, void** a5) {
void** eax6;
eax6 = a2;
do {
eax6 = eax6 + 2;
} while (*reinterpret_cast<void***>(eax6));
return (reinterpret_cast<int32_t>(reinterpret_cast<unsigned char>(eax6) - reinterpret_cast<unsigned char>(a2)) >> 1) - 1;
}
void** fun_10008992(void** a1, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8) {
void** v9;
void** v10;
void** ebp11;
void** edx12;
void** v13;
void** ebx14;
void** ebx15;
void** v16;
void** esi17;
void** v18;
void** edi19;
void** edi20;
void** ecx21;
void** eax22;
void** esi23;
void** eax24;
void* esi25;
void* esi26;
uint32_t eax27;
void** eax28;
void** eax29;
v9 = reinterpret_cast<void**>(__return_address());
v10 = ebp11;
edx12 = a1;
v13 = ebx14;
ebx15 = a4;
v16 = esi17;
v18 = edi19;
if (ebx15) {
if (!edx12)
goto addr_100089bf_3;
} else {
if (!edx12) {
if (a2 != edx12)
goto addr_100089bf_3; else
goto addr_100089ad_6;
}
}
edi20 = a2;
if (edi20) {
if (!ebx15) {
*reinterpret_cast<void***>(edx12) = reinterpret_cast<void**>(0);
goto addr_100089ad_6;
}
ecx21 = a3;
if (!ecx21)
goto addr_100089e4_11;
} else {
addr_100089bf_3:
eax22 = fun_10002896(ecx21, v18, v16, v13, v10, v9, a1, a2, a3, a4, a5);
esi23 = reinterpret_cast<void**>(22);
*reinterpret_cast<void***>(eax22) = reinterpret_cast<void**>(22);
goto addr_100089c9_12;
}
eax24 = edx12;
if (!reinterpret_cast<int1_t>(ebx15 == 0xffffffff)) {
esi25 = reinterpret_cast<void*>(reinterpret_cast<unsigned char>(ecx21) - reinterpret_cast<unsigned char>(edx12));
do {
ecx21 = reinterpret_cast<void**>(static_cast<uint32_t>(*reinterpret_cast<uint16_t*>(reinterpret_cast<uint32_t>(esi25) + reinterpret_cast<unsigned char>(eax24))));
*reinterpret_cast<void***>(eax24) = ecx21;
eax24 = eax24 + 2;
if (!ecx21)
break;
--edi20;
} while (edi20 && (--ebx15, !!ebx15));
if (!ebx15)
goto addr_10008a27_18;
} else {
esi26 = reinterpret_cast<void*>(reinterpret_cast<unsigned char>(edx12) - reinterpret_cast<unsigned char>(ecx21));
do {
eax27 = reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(ecx21));
*reinterpret_cast<int16_t*>(reinterpret_cast<uint32_t>(esi26) + reinterpret_cast<unsigned char>(ecx21)) = *reinterpret_cast<int16_t*>(&eax27);
ecx21 = ecx21 + 2;
if (!*reinterpret_cast<int16_t*>(&eax27))
break;
--edi20;
} while (edi20);
goto addr_10008a08_22;
}
addr_10008a2c_23:
if (edi20) {
addr_100089ad_6:
eax28 = reinterpret_cast<void**>(0);
} else {
if (!reinterpret_cast<int1_t>(ebx15 == 0xffffffff)) {
*reinterpret_cast<void***>(edx12) = reinterpret_cast<void**>(0);
eax29 = fun_10002896(ecx21, v18, v16, v13, v10, v9, a1, a2, a3, a4, a5);
ecx21 = reinterpret_cast<void**>(34);
*reinterpret_cast<void***>(eax29) = reinterpret_cast<void**>(34);
esi23 = reinterpret_cast<void**>(34);
goto addr_100089c9_12;
} else {
*reinterpret_cast<void***>(reinterpret_cast<uint32_t>(edx12 + reinterpret_cast<unsigned char>(a2) * 2) - 2) = reinterpret_cast<void**>(0);
eax28 = reinterpret_cast<void**>(80);
}
}
addr_100089af_27:
return eax28;
addr_100089c9_12:
fun_10002844(ecx21);
eax28 = esi23;
goto addr_100089af_27;
addr_10008a27_18:
ecx21 = reinterpret_cast<void**>(0);
*reinterpret_cast<void***>(eax24) = reinterpret_cast<void**>(0);
goto addr_10008a2c_23;
addr_10008a08_22:
goto addr_10008a2c_23;
addr_100089e4_11:
*reinterpret_cast<void***>(edx12) = reinterpret_cast<void**>(0);
goto addr_100089bf_3;
}
void** fun_1000891d(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7) {
void** v8;
void** v9;
void** ebp10;
void** v11;
void** esi12;
void** esi13;
void** v14;
void** edi15;
void** edi16;
void** eax17;
void** esi18;
void** edx19;
void** eax20;
void* edx21;
uint32_t eax22;
void** eax23;
v8 = reinterpret_cast<void**>(__return_address());
v9 = ebp10;
v11 = esi12;
esi13 = a2;
v14 = edi15;
if (!esi13 || (edi16 = a3, !edi16)) {
addr_10008932_2:
eax17 = fun_10002896(ecx, v14, v11, v9, v8, a2, a3, a4, a5, a6, a7);
esi18 = reinterpret_cast<void**>(22);
*reinterpret_cast<void***>(eax17) = reinterpret_cast<void**>(22);
} else {
ecx = a4;
if (ecx) {
edx19 = esi13;
do {
if (!*reinterpret_cast<void***>(edx19))
break;
edx19 = edx19 + 2;
--edi16;
} while (edi16);
if (!edi16)
goto addr_1000894e_8; else
goto addr_10008967_9;
} else {
addr_1000894e_8:
*reinterpret_cast<void***>(esi13) = reinterpret_cast<void**>(0);
goto addr_10008932_2;
}
}
addr_1000893c_10:
fun_10002844(ecx);
eax20 = esi18;
addr_10008943_11:
return eax20;
addr_10008967_9:
edx21 = reinterpret_cast<void*>(reinterpret_cast<unsigned char>(edx19) - reinterpret_cast<unsigned char>(ecx));
do {
eax22 = reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(ecx));
*reinterpret_cast<int16_t*>(reinterpret_cast<uint32_t>(edx21) + reinterpret_cast<unsigned char>(ecx)) = *reinterpret_cast<int16_t*>(&eax22);
ecx = ecx + 2;
if (!*reinterpret_cast<int16_t*>(&eax22))
break;
--edi16;
} while (edi16);
eax20 = reinterpret_cast<void**>(0);
if (edi16)
goto addr_10008943_11;
*reinterpret_cast<void***>(esi13) = reinterpret_cast<void**>(0);
eax23 = fun_10002896(ecx, v14, v11, v9, v8, a2, a3, a4, a5, a6, a7);
ecx = reinterpret_cast<void**>(34);
*reinterpret_cast<void***>(eax23) = reinterpret_cast<void**>(34);
esi18 = reinterpret_cast<void**>(34);
goto addr_1000893c_10;
}
int32_t g1000eae4;
int32_t LoadLibraryW = 0xccf0;
void** g1000eae8;
void** g1000eaec;
void** g1000eaf4;
void** g1000eaf0;
void** fun_100087b1(void** ecx, void** a2, void** a3, uint32_t a4, void** a5, void** a6, void** a7) {
void* ebp8;
void** eax9;
void** edi10;
void** esi11;
void** ebx12;
void** v13;
void** eax14;
uint32_t v15;
int1_t zf16;
int32_t eax17;
int32_t edi18;
int32_t eax19;
int32_t esi20;
int32_t eax21;
int32_t eax22;
void** eax23;
int32_t eax24;
void** eax25;
int32_t eax26;
void** eax27;
int32_t eax28;
void** eax29;
void** eax30;
int32_t esi31;
int1_t zf32;
int32_t eax33;
void** v34;
int32_t eax35;
int32_t eax36;
int32_t eax37;
unsigned char v38;
void** eax39;
int32_t eax40;
uint32_t eax41;
void** eax42;
int32_t eax43;
uint32_t eax44;
int32_t eax45;
void** eax46;
ebp8 = reinterpret_cast<void*>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 4);
eax9 = g1000d050;
eax14 = fun_1000350d(ecx, edi10, esi11, ebx12, v13, a2, a3);
v15 = 0;
zf16 = g1000eae4 == 0;
if (zf16) {
eax17 = reinterpret_cast<int32_t>(LoadLibraryW());
if (!eax17)
goto addr_1000890c_3;
edi18 = GetProcAddress;
eax19 = reinterpret_cast<int32_t>(edi18(eax17, "MessageBoxW"));
if (!eax19)
goto addr_1000890c_3;
esi20 = EncodePointer;
eax21 = reinterpret_cast<int32_t>(esi20(eax19, eax17, "MessageBoxW"));
g1000eae4 = eax21;
eax22 = reinterpret_cast<int32_t>(edi18(eax17, "GetActiveWindow", eax19, eax17, "MessageBoxW"));
eax23 = reinterpret_cast<void**>(esi20(eax22, eax17, "GetActiveWindow", eax19, eax17, "MessageBoxW"));
g1000eae8 = eax23;
eax24 = reinterpret_cast<int32_t>(edi18(eax17, "GetLastActivePopup", eax22, eax17, "GetActiveWindow", eax19, eax17, "MessageBoxW"));
eax25 = reinterpret_cast<void**>(esi20(eax24, eax17, "GetLastActivePopup", eax22, eax17, "GetActiveWindow", eax19, eax17, "MessageBoxW"));
g1000eaec = eax25;
eax26 = reinterpret_cast<int32_t>(edi18(eax17, "GetUserObjectInformationW", eax24, eax17, "GetLastActivePopup", eax22, eax17, "GetActiveWindow", eax19, eax17, "MessageBoxW"));
eax27 = reinterpret_cast<void**>(esi20(eax26, eax17, "GetUserObjectInformationW", eax24, eax17, "GetLastActivePopup", eax22, eax17, "GetActiveWindow", eax19, eax17, "MessageBoxW"));
g1000eaf4 = eax27;
if (eax27) {
eax28 = reinterpret_cast<int32_t>(edi18(eax17, "GetProcessWindowStation", eax26, eax17, "GetUserObjectInformationW", eax24, eax17, "GetLastActivePopup", eax22, eax17, "GetActiveWindow", eax19, eax17, "MessageBoxW"));
eax29 = reinterpret_cast<void**>(esi20(eax28, eax17, "GetProcessWindowStation", eax26, eax17, "GetUserObjectInformationW", eax24, eax17, "GetLastActivePopup", eax22, eax17, "GetActiveWindow", eax19, eax17, "MessageBoxW"));
g1000eaf0 = eax29;
}
}
eax30 = g1000eaf0;
esi31 = DecodePointer;
if (eax30 == eax14 || ((zf32 = g1000eaf4 == eax14, zf32) || ((eax33 = reinterpret_cast<int32_t>(esi31(eax30)), v34 = g1000eaf4, eax35 = reinterpret_cast<int32_t>(esi31(v34, eax30)), eax33 == 0) || (!eax35 || (eax36 = reinterpret_cast<int32_t>(eax33(v34, eax30)), !!eax36) && ((eax37 = reinterpret_cast<int32_t>(eax35(eax36, 1, reinterpret_cast<uint32_t>(ebp8) - 16, 12, reinterpret_cast<uint32_t>(ebp8) - 36, v34, eax30)), !!eax37) && v38 & 1))))) {
eax39 = g1000eae8;
if (eax39 != eax14 && ((eax40 = reinterpret_cast<int32_t>(esi31(eax39)), !!eax40) && ((eax41 = reinterpret_cast<uint32_t>(eax40(eax39)), v15 = eax41, !!eax41) && ((eax42 = g1000eaec, eax42 != eax14) && (eax43 = reinterpret_cast<int32_t>(esi31(eax42, eax39)), !!eax43))))) {
eax44 = reinterpret_cast<uint32_t>(eax43(v15, eax42, eax39));
v15 = eax44;
}
} else {
a4 = a4 | 0x200000;
}
eax45 = reinterpret_cast<int32_t>(esi31());
if (!eax45) {
addr_1000890c_3:
} else {
eax45(v15, a2, a3, a4);
}
eax46 = fun_10001cc4(reinterpret_cast<unsigned char>(eax9) ^ reinterpret_cast<uint32_t>(ebp8) ^ reinterpret_cast<uint32_t>(ebp8), ebx12);
return eax46;
}
int32_t CreateFileW = 0xc8e8;
void fun_10008b1c(void** a1) {
int32_t eax2;
eax2 = reinterpret_cast<int32_t>(CreateFileW());
g1000ddf0 = eax2;
goto "C";
}
struct s60 {
signed char[20] pad20;
void** f20;
};
struct s61 {
signed char[4] pad4;
int32_t f4;
};
struct s62 {
signed char[112] pad112;
uint32_t f112;
};
struct s63 {
signed char[4] pad4;
int32_t f4;
signed char[164] pad172;
void** f172;
};
struct s64 {
signed char[112] pad112;
uint32_t f112;
};
void** fun_10007e4f(void** a1, void** a2, void** a3, void** a4) {
void*** ebp5;
void** eax6;
void** ecx7;
void** esi8;
void** ebx9;
void** v10;
void** v11;
void** v12;
void** v13;
void** ebp14;
struct s60* v15;
uint32_t ecx16;
void** v17;
void** v18;
uint32_t eax19;
void** ecx20;
int32_t eax21;
int32_t v22;
struct s61* v23;
int32_t eax24;
void** v25;
struct s62* v26;
struct s63* eax27;
struct s63* v28;
void** ecx29;
int32_t edx30;
int32_t v31;
int32_t eax32;
struct s63* v33;
void** v34;
struct s64* v35;
void** v36;
void** v37;
void** v38;
void** eax39;
void** v40;
void** v41;
ebp5 = reinterpret_cast<void***>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 4);
if (!a2 || !a3) {
addr_10007e77_2:
eax6 = reinterpret_cast<void**>(0);
} else {
if (*reinterpret_cast<void***>(a2)) {
ecx7 = reinterpret_cast<void**>(ebp5 + 0xfffffff0);
fun_10001d91(ecx7, a4, esi8, ebx9, v10, v11, v12, v13, ebp14, __return_address(), a1);
if (!v15->f20) {
if (a1) {
ecx16 = reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(a2));
*reinterpret_cast<void***>(a1) = *reinterpret_cast<void***>(&ecx16);
goto addr_10007e9d_7;
}
}
v17 = reinterpret_cast<void**>(ebp5 + 0xfffffff0);
v18 = reinterpret_cast<void**>(static_cast<uint32_t>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(a2))));
eax19 = fun_10005acd(ecx7, v18, v17, esi8);
ecx20 = v17;
if (!eax19)
goto addr_10007f3e_9; else
goto addr_10007ec1_10;
} else {
if (a1) {
*reinterpret_cast<void***>(a1) = reinterpret_cast<void**>(0);
goto addr_10007e77_2;
}
}
}
addr_10007e79_13:
return eax6;
addr_10007f3e_9:
eax21 = 0;
*reinterpret_cast<unsigned char*>(&eax21) = reinterpret_cast<uint1_t>(!!a1);
v22 = v23->f4;
eax24 = reinterpret_cast<int32_t>(MultiByteToWideChar(ecx20, v22, 9, a2, 1, a1, eax21));
if (eax24) {
addr_10007e9d_7:
if (v25) {
v26->f112 = v26->f112 & 0xfffffffd;
}
} else {
goto addr_10007f1f_16;
}
eax6 = reinterpret_cast<void**>(1);
goto addr_10007e79_13;
addr_10007ec1_10:
eax27 = v28;
ecx29 = eax27->f172;
if (reinterpret_cast<signed char>(ecx29) > reinterpret_cast<signed char>(1) && (reinterpret_cast<signed char>(a3) >= reinterpret_cast<signed char>(ecx29) && (edx30 = 0, *reinterpret_cast<unsigned char*>(&edx30) = reinterpret_cast<uint1_t>(!!a1), v31 = eax27->f4, eax32 = reinterpret_cast<int32_t>(MultiByteToWideChar(v31, 9, a2, ecx29, a1, edx30)), eax27 = v33, !!eax32)) || (ecx20 = a3, reinterpret_cast<unsigned char>(ecx20) >= reinterpret_cast<unsigned char>(eax27->f172)) && *reinterpret_cast<void***>(a2 + 1)) {
eax6 = eax27->f172;
if (v34) {
v35->f112 = v35->f112 & 0xfffffffd;
goto addr_10007e79_13;
}
} else {
addr_10007f1f_16:
eax39 = fun_10002896(ecx20, esi8, ebx9, v36, 1, v37, v38, ebp14, __return_address(), a1, a2);
*reinterpret_cast<void***>(eax39) = reinterpret_cast<void**>(42);
if (v40) {
*reinterpret_cast<void***>(v41 + 0x70) = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(v41 + 0x70)) & 0xfffffffd);
}
}
eax6 = reinterpret_cast<void**>(0xffffffff);
goto addr_10007e79_13;
}
struct s65 {
signed char[8] pad8;
void** f8;
};
uint32_t fun_10008b52(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14);
void fun_10008c2b(void** ecx);
int32_t fun_10008bbf(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10) {
int32_t ebp11;
int32_t eax12;
void** esi13;
struct s65* ebp14;
int32_t ebp15;
uint32_t eax16;
int32_t ebp17;
int32_t ebp18;
void** eax19;
fun_10004570(0x1000c5f8, 12, __return_address());
*reinterpret_cast<uint32_t*>(ebp11 - 28) = 0xffffffff;
eax12 = 0;
esi13 = ebp14->f8;
*reinterpret_cast<unsigned char*>(&eax12) = reinterpret_cast<uint1_t>(!!esi13);
if (eax12) {
if (!(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(esi13 + 12)) & 64)) {
fun_1000578d(esi13, 0x1000c5f8, 12, __return_address(), a2, a3);
*reinterpret_cast<uint32_t*>(ebp15 - 4) = 0;
eax16 = fun_10008b52(esi13, esi13, 0x1000c5f8, 12, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10);
ecx = esi13;
*reinterpret_cast<uint32_t*>(ebp17 - 28) = eax16;
*reinterpret_cast<int32_t*>(ebp18 - 4) = -2;
fun_10008c2b(ecx);
} else {
*reinterpret_cast<void***>(esi13 + 12) = reinterpret_cast<void**>(0);
}
} else {
eax19 = fun_10002896(ecx, 0x1000c5f8, 12, __return_address(), a2, a3, a4, a5, a6, a7, a8);
*reinterpret_cast<void***>(eax19) = reinterpret_cast<void**>(22);
fun_10002844(ecx);
}
fun_100045b5(ecx, 0x1000c5f8, 12, __return_address(), a2, a3);
goto 0x1000c5f8;
}
void fun_100057ce(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8);
struct s66 {
signed char[8] pad8;
int32_t f8;
};
struct s67 {
signed char[8] pad8;
void** f8;
};
uint32_t fun_100080b0(void** ecx, void** a2, void** a3, void** a4, void** a5);
void fun_1000819a(void** ecx);
void fun_100081c9(void** ecx);
struct s68 {
signed char[8] pad8;
int32_t f8;
};
uint32_t fun_100080f8(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7) {
void** v8;
int32_t ebp9;
int32_t ebp10;
void** ecx11;
int32_t ebp12;
void** esi13;
int32_t ebp14;
int1_t less15;
void** eax16;
void*** eax17;
void** v18;
int32_t ebp19;
void** eax20;
struct s66* ebp21;
struct s67* ebp22;
void** v23;
uint32_t eax24;
int32_t ebp25;
int32_t ebp26;
void** v27;
uint32_t eax28;
int32_t ebp29;
int32_t ebp30;
int32_t ebp31;
int32_t ebp32;
struct s68* ebp33;
v8 = reinterpret_cast<void**>(__return_address());
fun_10004570(0x1000c5d0, 20, v8);
*reinterpret_cast<void***>(ebp9 - 28) = reinterpret_cast<void**>(0);
*reinterpret_cast<void***>(ebp10 - 36) = reinterpret_cast<void**>(0);
fun_10006df1(ecx, 1, 0x1000c5d0, 20, v8, a2, a3, a4, a5, a6, a7);
ecx11 = reinterpret_cast<void**>(1);
*reinterpret_cast<void***>(ebp12 - 4) = reinterpret_cast<void**>(0);
esi13 = reinterpret_cast<void**>(0);
while (*reinterpret_cast<void***>(ebp14 - 32) = esi13, less15 = reinterpret_cast<signed char>(esi13) < reinterpret_cast<signed char>(g1000fb20), less15) {
eax16 = g1000eb04;
eax17 = reinterpret_cast<void***>(eax16 + reinterpret_cast<unsigned char>(esi13) * 4);
if (*eax17 && reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(*eax17 + 12)) & 0x83) {
v18 = *eax17;
fun_100057ce(ecx11, esi13, v18, 0x1000c5d0, 20, v8, a2, a3);
*reinterpret_cast<int32_t*>(ebp19 - 4) = 1;
eax20 = g1000eb04;
ecx11 = *reinterpret_cast<void***>(*reinterpret_cast<void***>(eax20 + reinterpret_cast<unsigned char>(esi13) * 4) + 12);
if (*reinterpret_cast<unsigned char*>(&ecx11) & 0x83) {
if (ebp21->f8 != 1) {
if (!ebp22->f8 && (*reinterpret_cast<unsigned char*>(&ecx11) & 2 && (v23 = *reinterpret_cast<void***>(eax20 + reinterpret_cast<unsigned char>(esi13) * 4), eax24 = fun_100080b0(ecx11, v23, 0x1000c5d0, 20, v8), ecx11 = v23, eax24 == 0xffffffff))) {
*reinterpret_cast<uint32_t*>(ebp25 - 36) = *reinterpret_cast<uint32_t*>(ebp26 - 36) | eax24;
}
} else {
v27 = *reinterpret_cast<void***>(eax20 + reinterpret_cast<unsigned char>(esi13) * 4);
eax28 = fun_100080b0(ecx11, v27, 0x1000c5d0, 20, v8);
ecx11 = v27;
if (eax28 != 0xffffffff) {
*reinterpret_cast<int32_t*>(ebp29 - 28) = *reinterpret_cast<int32_t*>(ebp30 - 28) + 1;
}
}
}
*reinterpret_cast<void***>(ebp31 - 4) = reinterpret_cast<void**>(0);
fun_1000819a(ecx11);
}
++esi13;
}
*reinterpret_cast<int32_t*>(ebp32 - 4) = -2;
fun_100081c9(ecx11);
if (ebp33->f8 != 1) {
}
fun_100045b5(ecx11, 0x1000c5d0, 20, v8, a2, a3);
goto 0x1000c5d0;
}
struct s69 {
signed char[8] pad8;
void** f8;
};
int32_t FlushFileBuffers = 0xcd5e;
void fun_10008d04(void** ecx);
int32_t fun_10008c33(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8) {
void** ebx9;
struct s69* ebp10;
int1_t cf11;
void** edi12;
uint32_t esi13;
void** eax14;
int32_t ebp15;
void** eax16;
int32_t ebp17;
void** eax18;
int32_t eax19;
int32_t ebp20;
int32_t eax21;
int32_t ebp22;
int32_t ebp23;
void** eax24;
int32_t ebp25;
void** eax26;
int32_t ebp27;
fun_10004570(0x1000c618, 16, __return_address());
ebx9 = ebp10->f8;
if (!reinterpret_cast<int1_t>(ebx9 == 0xfffffffe)) {
if (reinterpret_cast<signed char>(ebx9) < reinterpret_cast<signed char>(0) || ((cf11 = reinterpret_cast<unsigned char>(ebx9) < reinterpret_cast<unsigned char>(g1000fb2c), !cf11) || (edi12 = reinterpret_cast<void**>((reinterpret_cast<signed char>(ebx9) >> 5) * 4 + 0x1000fb40), esi13 = (reinterpret_cast<unsigned char>(ebx9) & 31) << 6, (reinterpret_cast<uint32_t>(static_cast<int32_t>(*reinterpret_cast<signed char*>(esi13 + reinterpret_cast<int32_t>(*edi12) + 4))) & 1) == 0))) {
eax14 = fun_10002896(ecx, 0x1000c618, 16, __return_address(), a2, a3, a4, a5, a6, a7, a8);
*reinterpret_cast<void***>(eax14) = reinterpret_cast<void**>(9);
fun_10002844(ecx);
} else {
fun_10007d47(ecx, ebx9, 0x1000c618, 16, __return_address(), a2, a3);
ecx = ebx9;
*reinterpret_cast<uint32_t*>(ebp15 - 4) = 0;
if (!(*reinterpret_cast<unsigned char*>(esi13 + reinterpret_cast<int32_t>(*edi12) + 4) & 1)) {
addr_10008cdd_5:
eax16 = fun_10002896(ecx, 0x1000c618, 16, __return_address(), a2, a3, a4, a5, a6, a7, a8);
*reinterpret_cast<void***>(eax16) = reinterpret_cast<void**>(9);
*reinterpret_cast<uint32_t*>(ebp17 - 28) = 0xffffffff;
goto addr_10008cec_6;
} else {
eax18 = fun_10007cde(ecx, ebx9, 0x1000c618, 16, __return_address(), a2, a3, a4, a5);
ecx = ebx9;
eax19 = reinterpret_cast<int32_t>(FlushFileBuffers(ecx, eax18));
if (eax19) {
*reinterpret_cast<uint32_t*>(ebp20 - 28) = 0;
} else {
eax21 = reinterpret_cast<int32_t>(GetLastError(ecx, eax18));
*reinterpret_cast<int32_t*>(ebp22 - 28) = eax21;
}
if (!*reinterpret_cast<int32_t*>(ebp23 - 28))
goto addr_10008cec_6; else
goto addr_10008cd3_11;
}
}
} else {
eax24 = fun_10002896(ecx, 0x1000c618, 16, __return_address(), a2, a3, a4, a5, a6, a7, a8);
*reinterpret_cast<void***>(eax24) = reinterpret_cast<void**>(9);
}
addr_10008cfb_14:
fun_100045b5(ecx, 0x1000c618, 16, __return_address(), a2, a3);
goto 0x1000c618;
addr_10008cec_6:
*reinterpret_cast<int32_t*>(ebp25 - 4) = -2;
fun_10008d04(ecx);
goto addr_10008cfb_14;
addr_10008cd3_11:
eax26 = fun_100028a9(ecx, eax18, 0x1000c618, 16, __return_address(), a2, a3, a4, a5, a6);
ecx = *reinterpret_cast<void***>(ebp27 - 28);
*reinterpret_cast<void***>(eax26) = ecx;
goto addr_10008cdd_5;
}
void fun_100057ce(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8) {
void** ebp9;
if (reinterpret_cast<signed char>(a2) >= reinterpret_cast<signed char>(20)) {
EnterCriticalSection();
goto ebp9;
} else {
fun_10006df1(ecx, a2 + 16, ebp9, __return_address(), a2, a3, a4, a5, a6, a7, a8);
*reinterpret_cast<void***>(a3 + 12) = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(a3 + 12)) | 0x8000);
return;
}
}
uint32_t fun_10008048(void** a1);
uint32_t fun_100080b0(void** ecx, void** a2, void** a3, void** a4, void** a5) {
uint32_t eax6;
uint32_t eax7;
void** esi8;
void** ebp9;
void** eax10;
int32_t eax11;
uint32_t eax12;
if (a2) {
eax6 = fun_10008048(a2);
if (!eax6) {
if (!(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(a2 + 12)) & 0x4000)) {
eax7 = 0;
} else {
eax10 = fun_1000586b(a2, a2, esi8, ebp9, __return_address(), a2, a3, a4, a5);
eax11 = fun_10008c33(a2, eax10, a2, esi8, ebp9, __return_address(), a2, a3);
eax12 = reinterpret_cast<uint32_t>(-eax11);
eax7 = eax12 - (eax12 + reinterpret_cast<uint1_t>(eax12 < eax12 + reinterpret_cast<uint1_t>(!!eax11)));
}
} else {
eax7 = 0xffffffff;
}
} else {
eax7 = fun_100080f8(ecx, a2, esi8, ebp9, __return_address(), a2, a3);
}
return eax7;
}
void fun_100081c9(void** ecx) {
fun_10006d18(ecx, 1);
return;
}
struct s70 {
signed char[4] pad4;
uint32_t f4;
};
int32_t fun_10008300(struct s70* a1, int32_t a2);
void fun_10008345(void** a1, void** a2) {
struct s56* v3;
struct s56* edi4;
void** v5;
void** ebp6;
void** v7;
void*** esp8;
void** v9;
void** eax10;
void** v11;
void** ebx12;
void*** esi13;
void** ecx14;
v3 = edi4;
v5 = ebp6;
v7 = a1;
esp8 = reinterpret_cast<void***>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 4 - 4 - 4 - 4 - 4 - 4 - 4 - 4);
v9 = g0;
eax10 = g1000d050;
v11 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(eax10) ^ reinterpret_cast<uint32_t>(esp8));
g0 = reinterpret_cast<void**>(esp8 - 4 + 4);
while ((ebx12 = *reinterpret_cast<void***>(a1 + 8), *reinterpret_cast<void***>(a1 + 12) != 0xffffffff) && (a2 == 0xffffffff || reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(a1 + 12)) > reinterpret_cast<unsigned char>(a2))) {
esi13 = reinterpret_cast<void***>(*reinterpret_cast<void***>(a1 + 12) + reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(a1 + 12)) * 2);
ecx14 = *reinterpret_cast<void***>(ebx12 + reinterpret_cast<uint32_t>(esi13) * 4);
*reinterpret_cast<void***>(a1 + 12) = ecx14;
if (!*reinterpret_cast<int32_t*>(reinterpret_cast<uint32_t>(ebx12 + reinterpret_cast<uint32_t>(esi13) * 4) + 4)) {
fun_100083f5(ecx14, 0x101, v11, v9, fun_10008300, ecx14, v7, v5, v3);
fun_10008414(ecx14, v11, v9, fun_10008300, ecx14, v7, v5, v3);
}
}
g0 = v9;
return;
}
struct s71 {
signed char[8] pad8;
void** f8;
};
void** g1000e49c;
void** g1000e494;
void** g1000e498;
void** fun_10007659(void** a1);
void** g1000e490;
void* g1000a688 = reinterpret_cast<void*>(3);
void* g1000a68c = reinterpret_cast<void*>(9);
void fun_10007804(void** ecx);
void fun_1000769d(void** a1, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7) {
void** v8;
void** edi9;
int32_t ebp10;
int32_t ebp11;
void** ebx12;
struct s71* ebp13;
uint32_t eax14;
void*** esi15;
void** eax16;
uint32_t eax17;
void** eax18;
void** eax19;
int32_t ebp20;
void** v21;
void** eax22;
void** ecx23;
void** eax24;
void* eax25;
void* eax26;
void* eax27;
int32_t ebp28;
int32_t ebp29;
void** eax30;
int32_t ebp31;
int32_t ebp32;
int32_t ebp33;
int32_t ebp34;
int32_t ebp35;
int32_t ebp36;
void** eax37;
void* ecx38;
int32_t ebp39;
void* ecx40;
void** tmp32_41;
int32_t ebp42;
int32_t ebp43;
int32_t ebp44;
int32_t ebp45;
int32_t ebp46;
void** v47;
int32_t ebp48;
int32_t ebp49;
int32_t ebp50;
int32_t ebp51;
v8 = reinterpret_cast<void**>(__return_address());
fun_10004570(0x1000c550, 32, v8);
edi9 = reinterpret_cast<void**>(0);
*reinterpret_cast<void***>(ebp10 - 28) = reinterpret_cast<void**>(0);
*reinterpret_cast<void***>(ebp11 - 40) = reinterpret_cast<void**>(0);
ebx12 = ebp13->f8;
if (reinterpret_cast<signed char>(ebx12) > reinterpret_cast<signed char>(11)) {
eax14 = reinterpret_cast<uint32_t>(ebx12 - 15);
if (!eax14) {
esi15 = reinterpret_cast<void***>(0x1000e49c);
eax16 = g1000e49c;
} else {
eax17 = eax14 - 6;
if (!eax17) {
esi15 = reinterpret_cast<void***>(0x1000e494);
eax16 = g1000e494;
} else {
if (!(eax17 - 1)) {
addr_10007725_7:
esi15 = reinterpret_cast<void***>(0x1000e498);
eax16 = g1000e498;
} else {
addr_10007713_8:
eax18 = fun_10002896(2, 0x1000c550, 32, v8, a1, a2, a3, a4, a5, a6, a7);
*reinterpret_cast<void***>(eax18) = reinterpret_cast<void**>(22);
fun_10002844(2);
goto addr_100076de_9;
}
}
}
} else {
if (ebx12 == 11) {
addr_100076d0_11:
eax19 = fun_10003644(2, 0x1000c550, 32, v8, a1, a2, a3, a4, a5, a6, a7);
edi9 = eax19;
*reinterpret_cast<void***>(ebp20 - 40) = edi9;
if (edi9) {
v21 = *reinterpret_cast<void***>(edi9 + 92);
eax22 = fun_10007659(v21);
ecx23 = v21;
esi15 = reinterpret_cast<void***>(eax22 + 8);
eax24 = *esi15;
goto addr_10007755_13;
} else {
addr_100076de_9:
goto addr_1000783a_14;
}
} else {
ecx23 = reinterpret_cast<void**>(2);
eax25 = reinterpret_cast<void*>(reinterpret_cast<unsigned char>(ebx12) - reinterpret_cast<unsigned char>(2));
if (!eax25) {
esi15 = reinterpret_cast<void***>(0x1000e490);
eax16 = g1000e490;
} else {
eax26 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(eax25) - reinterpret_cast<unsigned char>(2));
if (eax26) {
eax27 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(eax26) - reinterpret_cast<unsigned char>(2));
if (!eax27)
goto addr_10007725_7;
if (reinterpret_cast<uint32_t>(eax27) - reinterpret_cast<unsigned char>(2))
goto addr_10007713_8; else
goto addr_100076d0_11;
}
}
}
}
*reinterpret_cast<int32_t*>(ebp28 - 28) = 1;
eax24 = reinterpret_cast<void**>(DecodePointer(eax16));
addr_10007755_13:
*reinterpret_cast<void***>(ebp29 - 32) = eax24;
eax30 = reinterpret_cast<void**>(0);
if (*reinterpret_cast<int32_t*>(ebp31 - 32) == 1) {
addr_1000783a_14:
fun_100045b5(ecx23, 0x1000c550, 32, v8, a1, a2);
goto 0x1000c550;
} else {
if (!*reinterpret_cast<void***>(ebp32 - 32)) {
eax30 = fun_10003e4a(ecx23, 3, 0x1000c550, 32, v8);
}
if (*reinterpret_cast<void***>(ebp33 - 28) != eax30) {
fun_10006df1(ecx23, eax30, 0x1000c550, 32, v8, a1, a2, a3, a4, a5, a6);
ecx23 = eax30;
}
*reinterpret_cast<void***>(ebp34 - 4) = reinterpret_cast<void**>(0);
if (ebx12 == 8)
goto addr_10007790_26;
if (ebx12 == 11)
goto addr_10007790_26;
if (!reinterpret_cast<int1_t>(ebx12 == 4))
goto addr_100077ab_29;
}
addr_10007790_26:
ecx23 = *reinterpret_cast<void***>(edi9 + 96);
*reinterpret_cast<void***>(ebp35 - 44) = ecx23;
*reinterpret_cast<void***>(edi9 + 96) = reinterpret_cast<void**>(0);
if (!reinterpret_cast<int1_t>(ebx12 == 8))
goto addr_100077dc_30;
ecx23 = *reinterpret_cast<void***>(edi9 + 100);
*reinterpret_cast<void***>(ebp36 - 48) = ecx23;
*reinterpret_cast<void***>(edi9 + 100) = reinterpret_cast<void**>(0x8c);
addr_100077ab_29:
if (!reinterpret_cast<int1_t>(ebx12 == 8)) {
addr_100077dc_30:
eax37 = fun_1000350d(ecx23, 0x1000c550, 32, v8, a1, a2, a3);
*esi15 = eax37;
} else {
ecx38 = g1000a688;
*reinterpret_cast<void**>(ebp39 - 36) = ecx38;
while (ecx40 = g1000a68c, tmp32_41 = reinterpret_cast<void**>(reinterpret_cast<int32_t>(ecx40) + reinterpret_cast<uint32_t>(g1000a688)), ecx23 = tmp32_41, reinterpret_cast<signed char>(*reinterpret_cast<void***>(ebp42 - 36)) < reinterpret_cast<signed char>(ecx23)) {
*reinterpret_cast<void***>(reinterpret_cast<uint32_t>(*reinterpret_cast<void***>(edi9 + 92) + *reinterpret_cast<int32_t*>(ebp43 - 36) * 12) + 8) = reinterpret_cast<void**>(0);
*reinterpret_cast<int32_t*>(ebp44 - 36) = *reinterpret_cast<int32_t*>(ebp45 - 36) + 1;
}
}
*reinterpret_cast<int32_t*>(ebp46 - 4) = -2;
fun_10007804(ecx23);
if (!reinterpret_cast<int1_t>(ebx12 == 8)) {
v47 = ebx12;
*reinterpret_cast<int32_t*>(ebp48 - 32)(ecx23);
} else {
v47 = *reinterpret_cast<void***>(edi9 + 100);
*reinterpret_cast<int32_t*>(ebp49 - 32)(ecx23);
}
ecx23 = v47;
if ((ebx12 == 8 || (ebx12 == 11 || reinterpret_cast<int1_t>(ebx12 == 4))) && (*reinterpret_cast<void***>(edi9 + 96) = *reinterpret_cast<void***>(ebp50 - 44), reinterpret_cast<int1_t>(ebx12 == 8))) {
*reinterpret_cast<void***>(edi9 + 100) = *reinterpret_cast<void***>(ebp51 - 48);
}
goto addr_1000783a_14;
}
void** fun_100026c9(void** ecx, void** a2, int32_t a3, void** a4, void** a5, void** a6) {
void* ebp7;
void** eax8;
void** edi9;
void** ebx10;
void** v11;
void** v12;
void** v13;
void** v14;
void** v15;
int32_t eax16;
int32_t eax17;
void** ecx18;
void** eax19;
ebp7 = reinterpret_cast<void*>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 4);
eax8 = g1000d050;
if (a2 != 0xffffffff) {
fun_10004ccf(ecx);
ecx = a2;
}
fun_10005bc0(ecx, reinterpret_cast<uint32_t>(ebp7) + 0xfffffce4, 0, 76, edi9, ebx10, v11, v12, 0, v13, v14, v15);
eax16 = reinterpret_cast<int32_t>(IsDebuggerPresent(edi9, ebx10, reinterpret_cast<uint32_t>(ebp7) + 0xfffffce0, reinterpret_cast<uint32_t>(ebp7) + 0xfffffd30, a3, a4));
SetUnhandledExceptionFilter();
eax17 = reinterpret_cast<int32_t>(UnhandledExceptionFilter());
if (!eax17 && (!eax16 && a2 != 0xffffffff)) {
fun_10004ccf(a4);
}
ecx18 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(eax8) ^ reinterpret_cast<uint32_t>(ebp7) ^ reinterpret_cast<uint32_t>(ebp7));
eax19 = fun_10001cc4(ecx18, edi9, ecx18, edi9);
return eax19;
}
uint32_t fun_10008048(void** a1) {
void** ecx2;
uint32_t ebx3;
void** eax4;
void** edi5;
void** edi6;
void** esi7;
void** ebx8;
void** ebp9;
void** eax10;
void** eax11;
void** eax12;
void** eax13;
ecx2 = *reinterpret_cast<void***>(a1 + 12);
*reinterpret_cast<unsigned char*>(&ecx2) = reinterpret_cast<unsigned char>(*reinterpret_cast<unsigned char*>(&ecx2) & 3);
ebx3 = 0;
if (*reinterpret_cast<unsigned char*>(&ecx2) == 2 && reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(a1 + 12)) & 0x108) {
eax4 = *reinterpret_cast<void***>(a1 + 8);
edi5 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(a1)) - reinterpret_cast<unsigned char>(eax4));
if (!(reinterpret_cast<uint1_t>(reinterpret_cast<signed char>(edi5) < reinterpret_cast<signed char>(0)) | reinterpret_cast<uint1_t>(edi5 == 0))) {
eax10 = fun_1000586b(ecx2, a1, eax4, edi5, edi6, esi7, ebx8, ebp9, __return_address());
eax11 = fun_10005543(a1, eax10, eax4, edi5, edi6, esi7, ebx8, ebp9);
if (eax11 != edi5) {
*reinterpret_cast<void***>(a1 + 12) = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(a1 + 12)) | 32);
ebx3 = 0xffffffff;
} else {
eax12 = *reinterpret_cast<void***>(a1 + 12);
if (*reinterpret_cast<signed char*>(&eax12) < 0) {
*reinterpret_cast<void***>(a1 + 12) = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(eax12) & 0xfffffffd);
}
}
}
}
eax13 = *reinterpret_cast<void***>(a1 + 8);
*reinterpret_cast<void***>(a1 + 4) = reinterpret_cast<void**>(0);
*reinterpret_cast<void***>(a1) = eax13;
return ebx3;
}
void fun_10008f6f(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15) {
void** eax16;
void** v17;
void** esi18;
void** ebp19;
eax16 = *reinterpret_cast<void***>(a2 + 12);
if (*reinterpret_cast<unsigned char*>(&eax16) & 0x83 && *reinterpret_cast<unsigned char*>(&eax16) & 8) {
v17 = *reinterpret_cast<void***>(a2 + 8);
fun_10002416(ecx, v17, esi18, ebp19, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15);
*reinterpret_cast<void***>(a2 + 12) = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(a2 + 12)) & 0xfffffbf7);
*reinterpret_cast<void***>(a2) = reinterpret_cast<void**>(0);
*reinterpret_cast<void***>(a2 + 8) = reinterpret_cast<void**>(0);
*reinterpret_cast<void***>(a2 + 4) = reinterpret_cast<void**>(0);
}
return;
}
struct s72 {
signed char[8] pad8;
void** f8;
};
uint32_t fun_10008e0f(void** ecx, void** a2, void** a3, void** a4, void** a5);
void fun_10008f67(void** ecx);
int32_t fun_10008eab(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8) {
void** ebx9;
struct s72* ebp10;
int1_t cf11;
void** edi12;
uint32_t esi13;
void** eax14;
void** eax15;
int32_t ebp16;
void** eax17;
int32_t ebp18;
uint32_t eax19;
int32_t ebp20;
int32_t ebp21;
void** eax22;
void** eax23;
fun_10004570(0x1000c638, 16, __return_address());
ebx9 = ebp10->f8;
if (!reinterpret_cast<int1_t>(ebx9 == 0xfffffffe)) {
if (reinterpret_cast<signed char>(ebx9) < reinterpret_cast<signed char>(0) || ((cf11 = reinterpret_cast<unsigned char>(ebx9) < reinterpret_cast<unsigned char>(g1000fb2c), !cf11) || (edi12 = reinterpret_cast<void**>((reinterpret_cast<signed char>(ebx9) >> 5) * 4 + 0x1000fb40), esi13 = (reinterpret_cast<unsigned char>(ebx9) & 31) << 6, (reinterpret_cast<uint32_t>(static_cast<int32_t>(*reinterpret_cast<signed char*>(reinterpret_cast<int32_t>(*edi12) + esi13 + 4))) & 1) == 0))) {
eax14 = fun_100028a9(ecx, 0x1000c638, 16, __return_address(), a2, a3, a4, a5, a6, a7);
*reinterpret_cast<void***>(eax14) = reinterpret_cast<void**>(0);
eax15 = fun_10002896(ecx, 0x1000c638, 16, __return_address(), a2, a3, a4, a5, a6, a7, a8);
*reinterpret_cast<void***>(eax15) = reinterpret_cast<void**>(9);
fun_10002844(ecx);
} else {
fun_10007d47(ecx, ebx9, 0x1000c638, 16, __return_address(), a2, a3);
ecx = ebx9;
*reinterpret_cast<uint32_t*>(ebp16 - 4) = 0;
if (!(*reinterpret_cast<unsigned char*>(reinterpret_cast<int32_t>(*edi12) + esi13 + 4) & 1)) {
eax17 = fun_10002896(ecx, 0x1000c638, 16, __return_address(), a2, a3, a4, a5, a6, a7, a8);
*reinterpret_cast<void***>(eax17) = reinterpret_cast<void**>(9);
*reinterpret_cast<uint32_t*>(ebp18 - 28) = 0xffffffff;
} else {
eax19 = fun_10008e0f(ecx, ebx9, 0x1000c638, 16, __return_address());
ecx = ebx9;
*reinterpret_cast<uint32_t*>(ebp20 - 28) = eax19;
}
*reinterpret_cast<int32_t*>(ebp21 - 4) = -2;
fun_10008f67(ecx);
goto addr_10008f5e_8;
}
} else {
eax22 = fun_100028a9(ecx, 0x1000c638, 16, __return_address(), a2, a3, a4, a5, a6, a7);
*reinterpret_cast<void***>(eax22) = reinterpret_cast<void**>(0);
eax23 = fun_10002896(ecx, 0x1000c638, 16, __return_address(), a2, a3, a4, a5, a6, a7, a8);
*reinterpret_cast<void***>(eax23) = reinterpret_cast<void**>(9);
}
addr_10008f5e_8:
fun_100045b5(ecx, 0x1000c638, 16, __return_address(), a2, a3);
goto 0x1000c638;
}
void** fun_10007cde(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9) {
int1_t cf10;
void* eax11;
void** ebp12;
void** eax13;
void** eax14;
void** eax15;
void** eax16;
if (!reinterpret_cast<int1_t>(a2 == 0xfffffffe)) {
if (reinterpret_cast<signed char>(a2) < reinterpret_cast<signed char>(0) || ((cf10 = reinterpret_cast<unsigned char>(a2) < reinterpret_cast<unsigned char>(g1000fb2c), !cf10) || (ecx = *reinterpret_cast<void***>((reinterpret_cast<signed char>(a2) >> 5) * 4 + 0x1000fb40), eax11 = reinterpret_cast<void*>((reinterpret_cast<unsigned char>(a2) & 31) << 6), (*reinterpret_cast<unsigned char*>(reinterpret_cast<uint32_t>(eax11) + reinterpret_cast<unsigned char>(ecx) + 4) & 1) == 0))) {
eax13 = fun_100028a9(ecx, ebp12, __return_address(), a2, a3, a4, a5, a6, a7, a8);
*reinterpret_cast<void***>(eax13) = reinterpret_cast<void**>(0);
eax14 = fun_10002896(ecx, ebp12, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9);
*reinterpret_cast<void***>(eax14) = reinterpret_cast<void**>(9);
fun_10002844(ecx);
} else {
return *reinterpret_cast<void***>(reinterpret_cast<uint32_t>(eax11) + reinterpret_cast<unsigned char>(ecx));
}
} else {
eax15 = fun_100028a9(ecx, ebp12, __return_address(), a2, a3, a4, a5, a6, a7, a8);
*reinterpret_cast<void***>(eax15) = reinterpret_cast<void**>(0);
eax16 = fun_10002896(ecx, ebp12, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9);
*reinterpret_cast<void***>(eax16) = reinterpret_cast<void**>(9);
}
return 0xffffffff;
}
int32_t CloseHandle = 0xc906;
uint32_t fun_10007c58(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6);
uint32_t fun_10008e0f(void** ecx, void** a2, void** a3, void** a4, void** a5) {
void** edi6;
void** esi7;
void** ebp8;
void** eax9;
void** ecx10;
void** eax11;
void** eax12;
void** eax13;
void** eax14;
int32_t eax15;
void** edi16;
void** eax17;
uint32_t eax18;
eax9 = fun_10007cde(ecx, a2, edi6, esi7, ebp8, __return_address(), a2, a3, a4);
ecx10 = a2;
if (eax9 == 0xffffffff || (((eax11 = g1000fb40, reinterpret_cast<int1_t>(a2 == 1)) && reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(eax11 + 0x84)) & 1 || reinterpret_cast<int1_t>(a2 == 2) && reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(eax11 + 68)) & 1) && (eax12 = fun_10007cde(ecx10, 2, edi6, esi7, ebp8, __return_address(), a2, a3, a4), eax13 = fun_10007cde(ecx10, 1, 2, edi6, esi7, ebp8, __return_address(), a2, a3), ecx10 = reinterpret_cast<void**>(2), eax13 == eax12) || (eax14 = fun_10007cde(ecx10, a2, edi6, esi7, ebp8, __return_address(), a2, a3, a4), ecx10 = a2, eax15 = reinterpret_cast<int32_t>(CloseHandle(ecx10, eax14)), !!eax15))) {
edi16 = reinterpret_cast<void**>(0);
} else {
eax17 = reinterpret_cast<void**>(GetLastError(ecx10, eax14));
edi16 = eax17;
}
fun_10007c58(ecx10, a2, edi6, esi7, ebp8, __return_address());
*reinterpret_cast<signed char*>(reinterpret_cast<int32_t>(*reinterpret_cast<void**>((reinterpret_cast<signed char>(a2) >> 5) * 4 + 0x1000fb40)) + ((reinterpret_cast<unsigned char>(a2) & 31) << 6) + 4) = 0;
if (!edi16) {
eax18 = 0;
} else {
fun_100028bc(a2, edi16, edi6, esi7, ebp8, __return_address(), a2, a3);
eax18 = 0xffffffff;
}
return eax18;
}
void fun_10001d86(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15) {
void** v16;
void** eax17;
void** esi18;
void** ebp19;
void** eax20;
void** eax21;
void** eax22;
if (a2 && (v16 = g1000e2e8, eax17 = reinterpret_cast<void**>(HeapFree(ecx, v16, 0, a2)), !eax17)) {
eax20 = fun_10002896(ecx, esi18, v16, 0, a2, ebp19, __return_address(), a2, a3, a4, a5);
eax21 = reinterpret_cast<void**>(GetLastError(ecx));
eax22 = fun_10002854(ecx, eax21, esi18, v16, 0, a2);
*reinterpret_cast<void***>(eax20) = eax22;
}
return;
}
void** fun_100028df(int32_t a1, void** a2, void** a3, void** a4, void** a5, void** a6);
void** fun_10005ccf(void** a1, void** a2, void** a3, void*** a4);
void** fun_100029a9(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9) {
void** ebp10;
void** eax11;
void** esi12;
void** eax13;
void** eax14;
void** eax15;
if (!a4) {
eax11 = fun_10002896(ecx, ebp10, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9);
*reinterpret_cast<void***>(eax11) = reinterpret_cast<void**>(22);
fun_10002844(ecx);
return 0xffffffff;
}
if (!a2 || reinterpret_cast<unsigned char>(a3) <= reinterpret_cast<unsigned char>(0)) {
eax13 = fun_10002896(ecx, esi12, ebp10, __return_address(), a2, a3, a4, a5, a6, a7, a8);
*reinterpret_cast<void***>(eax13) = reinterpret_cast<void**>(22);
} else {
eax14 = fun_100028df(fun_10005ccf, a2, a3, a4, a5, a6);
if (reinterpret_cast<signed char>(eax14) < reinterpret_cast<signed char>(0)) {
*reinterpret_cast<void***>(a2) = reinterpret_cast<void**>(0);
}
if (!reinterpret_cast<int1_t>(eax14 == 0xfffffffe))
goto addr_10002a1d_8; else
goto addr_10002a0a_9;
}
addr_10002a15_10:
fun_10002844(ecx);
eax14 = reinterpret_cast<void**>(0xffffffff);
addr_10002a1d_8:
return eax14;
addr_10002a0a_9:
eax15 = fun_10002896(ecx, esi12, ebp10, __return_address(), a2, a3, a4, a5, a6, a7, a8);
*reinterpret_cast<void***>(eax15) = reinterpret_cast<void**>(34);
goto addr_10002a15_10;
}
struct s73 {
signed char[4] pad4;
int32_t f4;
signed char[12] pad20;
void** f20;
};
struct s74 {
signed char[4] pad4;
int32_t f4;
signed char[12] pad20;
void** f20;
signed char[151] pad172;
int32_t f172;
};
struct s75 {
signed char[112] pad112;
uint32_t f112;
};
struct s76 {
signed char[112] pad112;
uint32_t f112;
};
void** fun_10001e18(void** ecx, void** a2, void** a3, void** a4, void** a5) {
void* ebp6;
void** eax7;
uint32_t v8;
void** v9;
void** ebx10;
void** v11;
void** esi12;
void** esi13;
void** v14;
void** edi15;
void** v16;
void** ecx17;
void** v18;
void** v19;
void** v20;
void** v21;
void** v22;
struct s73* v23;
int32_t v24;
void** eax25;
void** edx26;
struct s74* edi27;
struct s74* v28;
void* v29;
void** v30;
void** v31;
void** v32;
int32_t v33;
void** v34;
int32_t eax35;
void** v36;
void** v37;
void** v38;
void** v39;
void** v40;
void** eax41;
signed char v42;
void** v43;
int32_t v44;
void** eax45;
void** eax46;
void** v47;
void** v48;
void** v49;
void** v50;
void** v51;
void** v52;
void** eax53;
signed char v54;
struct s75* v55;
void** eax56;
signed char v57;
struct s76* v58;
int32_t v59;
int32_t v60;
void** eax61;
void** eax62;
signed char cl63;
ebp6 = reinterpret_cast<void*>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 4);
eax7 = g1000d050;
v8 = reinterpret_cast<unsigned char>(eax7) ^ reinterpret_cast<uint32_t>(ebp6);
v9 = ebx10;
v11 = esi12;
esi13 = a3;
v14 = edi15;
v16 = a2;
if (!a2 || a4) {
if (esi13) {
ecx17 = reinterpret_cast<void**>(reinterpret_cast<uint32_t>(ebp6) + 0xffffffe0);
fun_10001d91(ecx17, a5, v14, v11, v9, v18, v19, v16, v20, v21, v22);
if (!a2) {
if (v23->f20) {
ecx17 = reinterpret_cast<void**>(reinterpret_cast<uint32_t>(ebp6) + 0xfffffff0);
v24 = v23->f4;
eax25 = reinterpret_cast<void**>(WideCharToMultiByte(v24, 0, esi13, 0xff, 0, 0, 0, ecx17));
if (eax25)
goto addr_10001f44_6; else
goto addr_10002056_7;
} else {
ecx17 = reinterpret_cast<void**>(static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(esi13))));
edx26 = esi13;
while (ecx17) {
if (reinterpret_cast<unsigned char>(ecx17) > reinterpret_cast<unsigned char>(0xff))
goto addr_10002056_7;
edx26 = edx26 + 2;
ecx17 = reinterpret_cast<void**>(static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(edx26))));
}
}
} else {
edi27 = v28;
if (edi27->f20) {
if (edi27->f172 != 1) {
v29 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(ebp6) + 0xfffffff0);
v30 = a4;
v31 = v16;
v32 = esi13;
v33 = edi27->f4;
eax25 = reinterpret_cast<void**>(WideCharToMultiByte(ecx17, v33, 0, v32, 0xff, v31, v30, 0, v29));
v34 = eax25;
if (!eax25) {
if (0)
goto addr_10002056_7;
eax35 = reinterpret_cast<int32_t>(GetLastError(ecx17, v33, 0, v32, 0xff, v31, v30, 0, v29));
if (eax35 != 0x7a)
goto addr_10002056_7;
if (reinterpret_cast<unsigned char>(a4) <= reinterpret_cast<unsigned char>(0))
goto addr_10001ffd_19; else
goto addr_10001f74_20;
} else {
addr_10001f44_6:
if (0) {
addr_10002056_7:
eax41 = fun_10002896(ecx17, v14, v11, v9, v36, v37, v16, v34, v38, v39, v40);
*reinterpret_cast<void***>(eax41) = reinterpret_cast<void**>(42);
if (v42) {
*reinterpret_cast<void***>(v43 + 0x70) = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(v43 + 0x70)) & 0xfffffffd);
goto addr_1000206d_22;
}
} else {
addr_10001f4d_23:
}
}
} else {
ecx17 = a4;
if (reinterpret_cast<unsigned char>(ecx17) <= reinterpret_cast<unsigned char>(0)) {
addr_10001ef0_25:
v44 = edi27->f4;
eax25 = reinterpret_cast<void**>(WideCharToMultiByte(v44, 0, esi13, a4, v16, a4, 0, reinterpret_cast<uint32_t>(ebp6) + 0xfffffff0));
if (!eax25)
goto addr_10002056_7;
if (0)
goto addr_10002056_7; else
goto addr_10001f1a_27;
} else {
eax45 = esi13;
do {
if (!*reinterpret_cast<void***>(eax45))
break;
eax45 = eax45 + 2;
--ecx17;
} while (ecx17);
if (!ecx17)
goto addr_10001ef0_25;
if (*reinterpret_cast<void***>(eax45))
goto addr_10001ef0_25; else
goto addr_10001ee8_33;
}
}
} else {
eax46 = reinterpret_cast<void**>(0);
if (reinterpret_cast<unsigned char>(a4) > reinterpret_cast<unsigned char>(0)) {
do {
ecx17 = reinterpret_cast<void**>(0xff);
if (reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(esi13)) > reinterpret_cast<unsigned char>(0xff))
goto addr_10002056_7;
*reinterpret_cast<void***>(reinterpret_cast<unsigned char>(v16) + reinterpret_cast<unsigned char>(eax46)) = *reinterpret_cast<void***>(esi13);
esi13 = esi13 + 2;
} while (*reinterpret_cast<void***>(esi13) && (++eax46, reinterpret_cast<unsigned char>(eax46) < reinterpret_cast<unsigned char>(a4)));
}
}
}
} else {
eax53 = fun_10002896(ecx, v14, v11, v9, v47, v48, v16, v49, v50, v51, v52);
*reinterpret_cast<void***>(eax53) = reinterpret_cast<void**>(22);
fun_10002844(ecx);
goto addr_1000206d_22;
}
} else {
goto addr_10002070_39;
}
addr_10001ead_40:
if (v54) {
v55->f112 = v55->f112 & 0xfffffffd;
}
addr_10002070_39:
eax56 = fun_10001cc4(v8 ^ reinterpret_cast<uint32_t>(ebp6), v36);
return eax56;
addr_10001ffd_19:
if (v57) {
v58->f112 = v58->f112 & 0xfffffffd;
}
goto addr_10002070_39;
do {
addr_10001f74_20:
v59 = edi27->f172;
v60 = edi27->f4;
eax61 = reinterpret_cast<void**>(WideCharToMultiByte(ecx17, v60, 0, esi13, 1, reinterpret_cast<uint32_t>(ebp6) + 0xfffffff4, v59, 0, reinterpret_cast<uint32_t>(ebp6) + 0xfffffff0, v33, 0, v32, 0xff, v31, v30, 0, v29));
v36 = eax61;
if (!eax61)
goto addr_10002056_7;
if (0)
goto addr_10002056_7;
if (reinterpret_cast<signed char>(eax61) < reinterpret_cast<signed char>(0))
goto addr_10002056_7;
if (reinterpret_cast<unsigned char>(eax61) > reinterpret_cast<unsigned char>(5))
goto addr_10002056_7;
eax62 = v34;
if (reinterpret_cast<unsigned char>(reinterpret_cast<unsigned char>(eax61) + reinterpret_cast<unsigned char>(eax62)) > reinterpret_cast<unsigned char>(a4))
goto addr_10001ead_40;
ecx17 = reinterpret_cast<void**>(0);
v37 = reinterpret_cast<void**>(0);
if (reinterpret_cast<signed char>(eax61) > reinterpret_cast<signed char>(0)) {
do {
cl63 = *reinterpret_cast<signed char*>(reinterpret_cast<uint32_t>(ebp6) + reinterpret_cast<unsigned char>(ecx17) + 0xfffffff4);
*reinterpret_cast<signed char*>(reinterpret_cast<unsigned char>(v16) + reinterpret_cast<unsigned char>(eax62)) = cl63;
if (!cl63)
goto addr_10001ead_40;
ecx17 = v37 + 1;
++eax62;
v37 = ecx17;
v34 = eax62;
} while (reinterpret_cast<signed char>(ecx17) < reinterpret_cast<signed char>(v36));
}
esi13 = esi13 + 2;
} while (reinterpret_cast<unsigned char>(eax62) < reinterpret_cast<unsigned char>(a4));
goto addr_10001ffd_19;
addr_1000206d_22:
goto addr_10002070_39;
addr_10001f1a_27:
if (!*reinterpret_cast<signed char*>(reinterpret_cast<unsigned char>(v16) + reinterpret_cast<unsigned char>(eax25) + 0xffffffff)) {
goto addr_10001f4d_23;
}
addr_10001ee8_33:
a4 = reinterpret_cast<void**>((reinterpret_cast<int32_t>(reinterpret_cast<unsigned char>(eax45) - reinterpret_cast<unsigned char>(esi13)) >> 1) + 1);
goto addr_10001ef0_25;
}
void fun_100039ef(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15);
void fun_10002099(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13) {
*reinterpret_cast<void***>(ecx) = reinterpret_cast<void**>(0x1000a190);
fun_100039ef(ecx, ecx, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13);
return;
}
void fun_10004570(void** a1, void** a2, void** a3) {
void* esp4;
void* ebp5;
int32_t* esp6;
int32_t ebx7;
int32_t* esp8;
int32_t esi9;
int32_t* esp10;
int32_t edi11;
void** eax12;
uint32_t* esp13;
int32_t* esp14;
esp4 = reinterpret_cast<void*>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 4 - 4);
ebp5 = reinterpret_cast<void*>(reinterpret_cast<int32_t>(esp4) + 16);
esp6 = reinterpret_cast<int32_t*>(reinterpret_cast<int32_t>(esp4) - reinterpret_cast<unsigned char>(a2) - 4);
*esp6 = ebx7;
esp8 = esp6 - 1;
*esp8 = esi9;
esp10 = esp8 - 1;
*esp10 = edi11;
eax12 = g1000d050;
esp13 = reinterpret_cast<uint32_t*>(esp10 - 1);
*esp13 = reinterpret_cast<unsigned char>(eax12) ^ reinterpret_cast<uint32_t>(ebp5);
esp14 = reinterpret_cast<int32_t*>(esp13 - 1);
*esp14 = reinterpret_cast<int32_t>(__return_address());
g0 = reinterpret_cast<void**>(reinterpret_cast<uint32_t>(ebp5) + 0xfffffff0);
goto *esp14;
}
void** fun_10002817(void** ecx, int32_t a2, void** a3, void** a4, void** a5, void** a6) {
int32_t eax7;
eax7 = reinterpret_cast<int32_t>(DecodePointer());
if (!eax7) {
fun_100027f2(ecx, a2, a3, a4, a5, a6);
fun_10002817(ecx, 0, 0, 0, 0, 0);
goto a2;
} else {
goto eax7;
}
}
void** fun_10001d91(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11) {
void** esi12;
void** ebp13;
void** eax14;
int1_t zf15;
void** ecx16;
void** eax17;
int1_t zf18;
void** ecx19;
void** eax20;
*reinterpret_cast<void***>(ecx + 12) = reinterpret_cast<void**>(0);
if (a2) {
*reinterpret_cast<void***>(ecx) = *reinterpret_cast<void***>(a2);
*reinterpret_cast<void***>(ecx + 4) = *reinterpret_cast<void***>(a2 + 4);
} else {
eax14 = fun_100036bd(ecx, esi12, ebp13, __return_address(), a2, a3, a4, a5, a6);
*reinterpret_cast<void***>(ecx + 8) = eax14;
*reinterpret_cast<void***>(ecx) = *reinterpret_cast<void***>(eax14 + 0x6c);
*reinterpret_cast<void***>(ecx + 4) = *reinterpret_cast<void***>(eax14 + 0x68);
zf15 = *reinterpret_cast<void***>(ecx) == image_base_;
if (!zf15 && (ecx16 = g1000d6f0, !(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(eax14 + 0x70)) & reinterpret_cast<unsigned char>(ecx16)))) {
eax17 = fun_10003494(ecx16, esi12, ebp13, __return_address(), a2, a3, a4);
*reinterpret_cast<void***>(ecx) = eax17;
}
zf18 = *reinterpret_cast<void***>(ecx + 4) == image_base_;
if (!zf18 && (ecx19 = g1000d6f0, !(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(*reinterpret_cast<void***>(ecx + 8) + 0x70)) & reinterpret_cast<unsigned char>(ecx19)))) {
eax20 = fun_10002d11(ecx19, esi12, ebp13, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11);
*reinterpret_cast<void***>(ecx + 4) = eax20;
}
if (!(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(*reinterpret_cast<void***>(ecx + 8) + 0x70)) & 2)) {
*reinterpret_cast<void***>(*reinterpret_cast<void***>(ecx + 8) + 0x70) = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(*reinterpret_cast<void***>(ecx + 8) + 0x70)) | 2);
*reinterpret_cast<void***>(ecx + 12) = reinterpret_cast<void**>(1);
}
}
return ecx;
}
void fun_100044ed() {
int32_t* edi1;
int32_t eax2;
edi1 = reinterpret_cast<int32_t*>(0x1000c320);
if (!1) {
do {
eax2 = *edi1;
if (eax2) {
eax2();
}
++edi1;
} while (reinterpret_cast<uint32_t>(edi1) < 0x1000c320);
}
return;
}
int32_t GetEnvironmentStringsW = 0xcb80;
int32_t FreeEnvironmentStringsW = 0xcb66;
void** fun_10004456(void** ecx) {
void** edi2;
void** edi3;
void** v4;
void** ebx5;
void** v6;
void** esi7;
void** eax8;
void** ebx9;
int32_t edi10;
void** eax11;
void** eax12;
void** eax13;
void** v14;
void** eax15;
int32_t eax16;
edi2 = edi3;
v4 = ebx5;
v6 = esi7;
eax8 = reinterpret_cast<void**>(GetEnvironmentStringsW());
ebx9 = eax8;
if (ebx9) {
if (*reinterpret_cast<void***>(ebx9)) {
addr_10004477_3:
eax8 = eax8 + 2;
if (*reinterpret_cast<void***>(eax8))
goto addr_10004477_3;
eax8 = eax8 + 2;
if (*reinterpret_cast<void***>(eax8))
goto addr_10004477_3;
}
edi10 = WideCharToMultiByte;
eax11 = reinterpret_cast<void**>((reinterpret_cast<int32_t>(reinterpret_cast<unsigned char>(eax8) - reinterpret_cast<unsigned char>(ebx9)) >> 1) + 1);
eax12 = reinterpret_cast<void**>(edi10(0, 0, ebx9, eax11, 0, 0, 0, 0, edi2));
if (!eax12 || (eax13 = fun_10003ae8(ecx, eax12, 0, 0, ebx9, eax11, 0, 0, 0, 0, edi2, v6, v4, eax11, eax12), ecx = eax12, v14 = eax13, eax13 == 0)) {
FreeEnvironmentStringsW(ecx);
eax15 = reinterpret_cast<void**>(0);
} else {
eax16 = reinterpret_cast<int32_t>(edi10(ecx, 0, 0, ebx9, eax11, eax13, eax12, 0));
if (!eax16) {
fun_10002416(ecx, v14, 0, 0, ebx9, eax11, eax13, eax12, 0, 0, 0, 0, ebx9, eax11, 0, 0, 0, 0, edi2);
ecx = v14;
v14 = reinterpret_cast<void**>(0);
}
FreeEnvironmentStringsW(ecx, ebx9, 0, 0, ebx9, eax11, eax13, eax12, 0);
eax15 = v14;
}
} else {
eax15 = reinterpret_cast<void**>(0);
}
return eax15;
}
struct s77 {
int32_t f0;
void** f4;
signed char[3] pad8;
int32_t f8;
};
struct s78 {
void** f0;
signed char[3] pad4;
unsigned char f4;
signed char[3] pad8;
int32_t f8;
};
uint32_t fun_10003e8d(void** ecx) {
void** edi2;
void** edi3;
void** v4;
void** esi5;
void** v6;
void** v7;
void** v8;
void** v9;
void** v10;
void** v11;
void** v12;
void** eax13;
void** ecx14;
struct s32* eax15;
void** esi16;
void** v17;
void** ebx18;
void** v19;
int16_t v20;
void** v21;
void** ebx22;
void** eax23;
void** v24;
int32_t* v25;
int1_t less26;
uint32_t eax27;
void** edi28;
int32_t ebx29;
int32_t v30;
int32_t eax31;
struct s77* esi32;
uint32_t eax33;
struct s78* tmp32_34;
void** eax35;
uint32_t eax36;
uint32_t eax37;
void*** edi38;
void** v39;
void** v40;
void** v41;
void** v42;
void** eax43;
void** tmp32_44;
struct s32* eax45;
int1_t less46;
edi2 = edi3;
v4 = esi5;
v6 = reinterpret_cast<void**>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 4 + 0xffffffb4);
GetStartupInfoW(ecx);
eax13 = fun_10003b2d(ecx, 32, 64, v6, v4, v7, v8, v9, v10, v11, v12);
ecx14 = reinterpret_cast<void**>(0);
if (eax13) {
g1000fb40 = eax13;
g1000fb2c = reinterpret_cast<void**>(32);
if (reinterpret_cast<unsigned char>(eax13) < reinterpret_cast<unsigned char>(eax13 + 0x800)) {
eax15 = reinterpret_cast<struct s32*>(eax13 + 5);
do {
*reinterpret_cast<void***>(reinterpret_cast<uint32_t>(eax15) + 0xfffffffb) = reinterpret_cast<void**>(0xffffffff);
*reinterpret_cast<int16_t*>(reinterpret_cast<uint32_t>(eax15) + 0xffffffff) = 0xa00;
eax15->f3 = reinterpret_cast<void**>(0);
eax15->f31 = reinterpret_cast<unsigned char>(0xa00);
*reinterpret_cast<signed char*>(reinterpret_cast<uint32_t>(eax15) + 33) = 10;
eax15->f51 = reinterpret_cast<void**>(0);
eax15->f47 = reinterpret_cast<void**>(0);
esi16 = g1000fb40;
eax15 = reinterpret_cast<struct s32*>(reinterpret_cast<uint32_t>(eax15) + 64);
} while (reinterpret_cast<unsigned char>(reinterpret_cast<uint32_t>(eax15) + 0xfffffffb) < reinterpret_cast<unsigned char>(esi16 + 0x800));
}
v17 = ebx18;
v19 = edi2;
if (!v20)
goto addr_10004020_6;
if (!v21)
goto addr_10004020_6;
ebx22 = *reinterpret_cast<void***>(v21);
eax23 = v21 + 4;
v24 = eax23;
v25 = reinterpret_cast<int32_t*>(reinterpret_cast<unsigned char>(eax23) + reinterpret_cast<unsigned char>(ebx22));
if (reinterpret_cast<signed char>(ebx22) >= reinterpret_cast<signed char>(0x800)) {
ebx22 = reinterpret_cast<void**>(0x800);
}
less26 = reinterpret_cast<signed char>(g1000fb2c) < reinterpret_cast<signed char>(ebx22);
if (less26)
goto addr_10003f3d_11;
} else {
eax27 = 0xffffffff;
goto addr_100040ca_13;
}
addr_10003fa8_14:
edi28 = reinterpret_cast<void**>(0);
if (reinterpret_cast<uint1_t>(reinterpret_cast<signed char>(ebx22) < reinterpret_cast<signed char>(0)) | reinterpret_cast<uint1_t>(ebx22 == 0)) {
addr_10004020_6:
ebx29 = 0;
} else {
do {
if (*v25 != -1 && (*v25 != -2 && ((ecx14 = v24, ecx14 = *reinterpret_cast<void***>(ecx14), !!(reinterpret_cast<unsigned char>(ecx14) & 1)) && (reinterpret_cast<unsigned char>(ecx14) & 8 || (v30 = *v25, eax31 = reinterpret_cast<int32_t>(GetFileType(v30)), !!eax31))))) {
esi32 = reinterpret_cast<struct s77*>(((reinterpret_cast<unsigned char>(edi28) & 31) << 6) + reinterpret_cast<int32_t>(*reinterpret_cast<int32_t**>((reinterpret_cast<signed char>(edi28) >> 5) * 4 + 0x1000fb40)));
esi32->f0 = *v25;
esi32->f4 = *reinterpret_cast<void***>(v24);
eax33 = reinterpret_cast<uint32_t>(InitializeCriticalSectionAndSpinCount(esi32 + 1));
if (!eax33)
goto addr_100040cd_17;
esi32->f8 = esi32->f8 + 1;
}
++v25;
++edi28;
++v24;
} while (reinterpret_cast<signed char>(edi28) < reinterpret_cast<signed char>(ebx22));
goto addr_10004020_6;
}
do {
tmp32_34 = reinterpret_cast<struct s78*>((ebx29 << 6) + reinterpret_cast<unsigned char>(g1000fb40));
if (tmp32_34->f0 == 0xffffffff || tmp32_34->f0 == 0xfffffffe) {
tmp32_34->f4 = 0x81;
if (ebx29) {
}
eax35 = reinterpret_cast<void**>(GetStdHandle(ecx14));
if (eax35 == 0xffffffff || (!eax35 || (eax36 = reinterpret_cast<uint32_t>(GetFileType(ecx14, eax35)), eax36 == 0))) {
tmp32_34->f4 = reinterpret_cast<unsigned char>(tmp32_34->f4 | 64);
tmp32_34->f0 = reinterpret_cast<void**>(0xfffffffe);
} else {
eax37 = eax36 & 0xff;
tmp32_34->f0 = eax35;
if (eax37 != 2) {
if (eax37 == 3) {
tmp32_34->f4 = reinterpret_cast<unsigned char>(tmp32_34->f4 | 8);
}
} else {
tmp32_34->f4 = reinterpret_cast<unsigned char>(tmp32_34->f4 | 64);
}
eax33 = reinterpret_cast<uint32_t>(InitializeCriticalSectionAndSpinCount(ecx14, tmp32_34 + 1, 0xfa0, eax35));
if (!eax33)
goto addr_100040cd_17;
tmp32_34->f8 = tmp32_34->f8 + 1;
}
} else {
tmp32_34->f4 = reinterpret_cast<unsigned char>(tmp32_34->f4 | 0x80);
}
++ebx29;
} while (ebx29 < 3);
SetHandleCount(ecx14);
eax27 = 0;
addr_100040c8_35:
addr_100040ca_13:
return eax27;
addr_100040cd_17:
eax27 = 0xffffffff;
goto addr_100040c8_35;
addr_10003f3d_11:
edi38 = reinterpret_cast<void***>(0x1000fb44);
do {
eax43 = fun_10003b2d(ecx14, 32, 64, v19, v17, v6, v4, v39, v40, v41, v42);
ecx14 = reinterpret_cast<void**>(64);
if (!eax43)
break;
tmp32_44 = g1000fb2c + 32;
g1000fb2c = tmp32_44;
ecx14 = eax43 + 0x800;
*edi38 = eax43;
if (reinterpret_cast<unsigned char>(eax43) < reinterpret_cast<unsigned char>(ecx14)) {
eax45 = reinterpret_cast<struct s32*>(eax43 + 5);
do {
*reinterpret_cast<void***>(reinterpret_cast<uint32_t>(eax45) + 0xfffffffb) = reinterpret_cast<void**>(0xffffffff);
eax45->f3 = reinterpret_cast<void**>(0);
eax45->f31 = reinterpret_cast<unsigned char>(eax45->f31 & 0x80);
eax45->f51 = reinterpret_cast<void**>(0);
*reinterpret_cast<int16_t*>(reinterpret_cast<uint32_t>(eax45) + 0xffffffff) = 0xa00;
eax45->f32 = 0xa0a;
eax45->f47 = reinterpret_cast<void**>(0);
eax45 = reinterpret_cast<struct s32*>(reinterpret_cast<uint32_t>(eax45) + 64);
ecx14 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(*edi38) + reinterpret_cast<unsigned char>(0x800));
} while (reinterpret_cast<unsigned char>(reinterpret_cast<uint32_t>(eax45) + 0xfffffffb) < reinterpret_cast<unsigned char>(ecx14));
}
edi38 = edi38 + 4;
less46 = reinterpret_cast<signed char>(g1000fb2c) < reinterpret_cast<signed char>(ebx22);
} while (less46);
goto addr_10003fa0_41;
ebx22 = g1000fb2c;
goto addr_10003fa8_14;
addr_10003fa0_41:
goto addr_10003fa8_14;
}
void** g1000e1d8;
signed char g1000e1d0;
struct s79 {
signed char[16] pad16;
signed char f16;
};
struct s80 {
signed char[12] pad12;
int32_t f12;
};
void** g1000fc48;
void** g1000fc44;
void fun_10003e35(void** ecx);
struct s81 {
signed char[16] pad16;
int32_t f16;
};
struct s82 {
signed char[8] pad8;
void** f8;
};
struct s83 {
signed char[16] pad16;
int32_t f16;
};
void** fun_10003d0a(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7) {
void** v8;
int32_t ebp9;
int1_t zf10;
struct s79* ebp11;
struct s80* ebp12;
void** v13;
int32_t esi14;
void*** eax15;
void*** ebx16;
int32_t ebp17;
void** v18;
void*** eax19;
void*** edi20;
int32_t ebp21;
int32_t ebp22;
int32_t ebp23;
int32_t ebp24;
void** eax25;
void** v26;
int32_t eax27;
void** eax28;
void** v29;
int32_t eax30;
void** v31;
void*** eax32;
int32_t ebp33;
int32_t ebp34;
int32_t ebp35;
int32_t ebp36;
int32_t ebp37;
int32_t ebp38;
int32_t ebp39;
int32_t ebp40;
int32_t ebp41;
int32_t eax42;
int32_t ebp43;
int32_t ebp44;
int32_t ebp45;
int32_t ebp46;
int32_t ebp47;
int32_t eax48;
int32_t ebp49;
int32_t ebp50;
int32_t ebp51;
int32_t ebp52;
struct s81* ebp53;
void** v54;
struct s82* ebp55;
struct s83* ebp56;
v8 = reinterpret_cast<void**>(__return_address());
fun_10004570(0x1000c490, 32, v8);
fun_10006df1(ecx, 8, 0x1000c490, 32, v8, a2, a3, a4, a5, a6, a7);
*reinterpret_cast<uint32_t*>(ebp9 - 4) = 0;
zf10 = reinterpret_cast<int1_t>(g1000e1d8 == 1);
if (!zf10) {
g1000e1d4 = reinterpret_cast<void**>(1);
g1000e1d0 = ebp11->f16;
if (!ebp12->f12) {
v13 = g1000fc48;
esi14 = DecodePointer;
eax15 = reinterpret_cast<void***>(esi14(8, v13));
ebx16 = eax15;
*reinterpret_cast<void****>(ebp17 - 48) = ebx16;
if (ebx16) {
v18 = g1000fc44;
eax19 = reinterpret_cast<void***>(esi14(8, v18, v13));
edi20 = eax19;
*reinterpret_cast<void****>(ebp21 - 44) = edi20;
*reinterpret_cast<void****>(ebp22 - 36) = ebx16;
*reinterpret_cast<void****>(ebp23 - 40) = edi20;
while (edi20 = edi20 - 4, *reinterpret_cast<void****>(ebp24 - 44) = edi20, reinterpret_cast<uint32_t>(edi20) >= reinterpret_cast<uint32_t>(ebx16)) {
eax25 = fun_1000350d(8, v18, v13, 0x1000c490, 32, v8, a2);
if (*edi20 == eax25)
continue;
if (reinterpret_cast<uint32_t>(edi20) < reinterpret_cast<uint32_t>(ebx16))
break;
v26 = *edi20;
eax27 = reinterpret_cast<int32_t>(esi14(8, v26, v18, v13));
eax28 = fun_1000350d(8, v26, v18, v13, 0x1000c490, 32, v8);
*edi20 = eax28;
eax27(8, v26, v18, v13);
v29 = g1000fc48;
eax30 = reinterpret_cast<int32_t>(esi14(8, v29, v26, v18, v13));
v31 = g1000fc44;
eax32 = reinterpret_cast<void***>(esi14(8, v31, v29, v26, v18, v13));
if (*reinterpret_cast<int32_t*>(ebp33 - 36) != eax30 || *reinterpret_cast<void****>(ebp34 - 40) != eax32) {
*reinterpret_cast<int32_t*>(ebp35 - 36) = eax30;
*reinterpret_cast<int32_t*>(ebp36 - 48) = eax30;
*reinterpret_cast<void****>(ebp37 - 40) = eax32;
edi20 = eax32;
*reinterpret_cast<void****>(ebp38 - 44) = edi20;
}
ebx16 = *reinterpret_cast<void****>(ebp39 - 48);
}
}
*reinterpret_cast<int32_t*>(ebp40 - 28) = 0x1000a154;
while (*reinterpret_cast<uint32_t*>(ebp41 - 28) < 0x1000a160) {
eax42 = **reinterpret_cast<int32_t**>(ebp43 - 28);
if (eax42) {
eax42(8, v13);
}
*reinterpret_cast<int32_t*>(ebp44 - 28) = *reinterpret_cast<int32_t*>(ebp45 - 28) + 4;
}
}
*reinterpret_cast<int32_t*>(ebp46 - 32) = 0x1000a164;
while (*reinterpret_cast<uint32_t*>(ebp47 - 32) < 0x1000a168) {
eax48 = **reinterpret_cast<int32_t**>(ebp49 - 32);
if (eax48) {
eax48(8);
}
*reinterpret_cast<int32_t*>(ebp50 - 32) = *reinterpret_cast<int32_t*>(ebp51 - 32) + 4;
}
}
*reinterpret_cast<int32_t*>(ebp52 - 4) = -2;
fun_10003e35(8);
if (ebp53->f16) {
fun_100045b5(8, 0x1000c490, 32, v8, a2, a3);
goto 0x1000c490;
}
g1000e1d8 = reinterpret_cast<void**>(1);
fun_10006d18(8, 8);
v54 = ebp55->f8;
fun_10003bf2(8, v54, 0x1000c490, 32, v8, a2, a3);
if (ebp56->f16)
goto addr_10003e3b_25;
addr_10003e43_26:
goto v54;
addr_10003e3b_25:
fun_10006d18(8, 8);
goto addr_10003e43_26;
}
void** fun_100074c2(void** a1, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8) {
void** v9;
void** v10;
void** ebp11;
void** eax12;
void** ecx13;
void** v14;
void** esi15;
void** esi16;
void** eax17;
void** v18;
int1_t zf19;
int32_t eax20;
v9 = reinterpret_cast<void**>(__return_address());
v10 = ebp11;
if (a1 && reinterpret_cast<unsigned char>(0xe0 / reinterpret_cast<unsigned char>(a1)) < reinterpret_cast<unsigned char>(a2)) {
eax12 = fun_10002896(a1, v10, v9, a1, a2, a3, a4, a5, a6, a7, a8);
*reinterpret_cast<void***>(eax12) = reinterpret_cast<void**>(12);
return 0;
}
ecx13 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(a1) * reinterpret_cast<unsigned char>(a2));
v14 = esi15;
esi16 = ecx13;
if (!esi16) {
++esi16;
}
do {
eax17 = reinterpret_cast<void**>(0);
if (reinterpret_cast<unsigned char>(esi16) > reinterpret_cast<unsigned char>(0xffffffe0))
goto addr_1000750f_6;
v18 = g1000e2e8;
eax17 = reinterpret_cast<void**>(HeapAlloc(ecx13, v18, 8, esi16));
if (eax17)
break;
addr_1000750f_6:
zf19 = g1000ead8 == 0;
if (zf19)
goto addr_10007534_8;
eax20 = fun_10004c5b(ecx13, esi16, v14, v10, v9, a1, a2);
ecx13 = esi16;
} while (eax20);
goto addr_10007523_10;
addr_10007541_11:
return eax17;
addr_10007534_8:
if (a3) {
*reinterpret_cast<void***>(a3) = reinterpret_cast<void**>(12);
goto addr_10007541_11;
}
addr_10007523_10:
if (a3) {
*reinterpret_cast<void***>(a3) = reinterpret_cast<void**>(12);
}
eax17 = reinterpret_cast<void**>(0);
goto addr_10007541_11;
}
void fun_10003632(void** ecx) {
fun_10006d18(ecx, 13);
return;
}
void** fun_10004a27(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15, void** a16) {
void** v17;
void** esi18;
void** eax19;
*reinterpret_cast<void***>(ecx) = reinterpret_cast<void**>("2J");
if (*reinterpret_cast<void***>(ecx + 8)) {
v17 = *reinterpret_cast<void***>(ecx + 4);
eax19 = fun_10002416(ecx, v17, esi18, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16);
}
*reinterpret_cast<void***>(ecx + 4) = reinterpret_cast<void**>(0);
*reinterpret_cast<void***>(ecx + 8) = reinterpret_cast<void**>(0);
return eax19;
}
void fun_10003c0a(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9);
struct s84 {
signed char[8] pad8;
void** f8;
};
void** fun_10004a7e(void** ecx, void** a2);
void fun_10004b9b(void** ecx);
int32_t fun_10004b65(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6) {
int32_t ebp7;
void** v8;
struct s84* ebp9;
void** eax10;
int32_t ebp11;
int32_t ebp12;
fun_10004570(0x1000c4b0, 12, __return_address());
fun_10003c0a(ecx, 0x1000c4b0, 12, __return_address(), a2, a3, a4, a5, a6);
*reinterpret_cast<uint32_t*>(ebp7 - 4) = 0;
v8 = ebp9->f8;
eax10 = fun_10004a7e(ecx, v8);
*reinterpret_cast<void***>(ebp11 - 28) = eax10;
*reinterpret_cast<int32_t*>(ebp12 - 4) = -2;
fun_10004b9b(v8);
fun_100045b5(v8, 0x1000c4b0, 12, __return_address(), a2, a3);
goto 0x1000c4b0;
}
struct s85 {
signed char[4] pad4;
void** f4;
};
void** fun_10004a7e(void** ecx, void** a2) {
int32_t esi3;
void** v4;
void** eax5;
void** v6;
void** eax7;
void** esi8;
struct s85* edi9;
void** eax10;
void** edi11;
void** esi12;
void** ebx13;
void** ebp14;
void** eax15;
void** ecx16;
int32_t edi17;
void** eax18;
void** eax19;
void** eax20;
void** eax21;
void** eax22;
void** eax23;
void** eax24;
esi3 = DecodePointer;
v4 = g1000fc48;
eax5 = reinterpret_cast<void**>(esi3());
v6 = g1000fc44;
eax7 = reinterpret_cast<void**>(esi3());
esi8 = eax7;
if (reinterpret_cast<unsigned char>(esi8) < reinterpret_cast<unsigned char>(eax5) || (edi9 = reinterpret_cast<struct s85*>(reinterpret_cast<unsigned char>(esi8) - reinterpret_cast<unsigned char>(eax5)), reinterpret_cast<unsigned char>(&edi9->f4) < reinterpret_cast<unsigned char>(4))) {
addr_10004b2d_2:
eax10 = reinterpret_cast<void**>(0);
} else {
eax15 = fun_10007c25(ecx, eax5, v6, v4, edi11, esi12, ebx13, eax5, ebp14);
ecx16 = eax5;
if (reinterpret_cast<unsigned char>(eax15) >= reinterpret_cast<unsigned char>(&edi9->f4)) {
addr_10004b10_4:
edi17 = EncodePointer;
eax18 = reinterpret_cast<void**>(edi17(ecx16, a2));
*reinterpret_cast<void***>(esi8) = eax18;
eax19 = reinterpret_cast<void**>(edi17(ecx16, esi8 + 4, a2));
g1000fc44 = eax19;
eax10 = a2;
} else {
eax20 = reinterpret_cast<void**>(0x800);
if (reinterpret_cast<unsigned char>(eax15) < reinterpret_cast<unsigned char>(0x800)) {
eax20 = eax15;
}
eax21 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(eax20) + reinterpret_cast<unsigned char>(eax15));
if (reinterpret_cast<unsigned char>(eax21) < reinterpret_cast<unsigned char>(eax15))
goto addr_10004ae8_8;
eax22 = fun_10003b79(ecx16, eax5, eax21, v6, v4, edi11, esi12, ebx13, eax5, ebp14, __return_address());
ecx16 = eax21;
if (eax22)
goto addr_10004afe_10;
addr_10004ae8_8:
eax23 = eax15 + 16;
if (reinterpret_cast<unsigned char>(eax23) < reinterpret_cast<unsigned char>(eax15))
goto addr_10004b2d_2;
eax22 = fun_10003b79(ecx16, eax5, eax23, v6, v4, edi11, esi12, ebx13, eax5, ebp14, __return_address());
ecx16 = eax23;
if (!eax22)
goto addr_10004b2d_2; else
goto addr_10004afe_10;
}
}
return eax10;
addr_10004afe_10:
esi8 = eax22 + (reinterpret_cast<int32_t>(edi9) >> 2) * 4;
eax24 = reinterpret_cast<void**>(EncodePointer(ecx16, eax22));
g1000fc48 = eax24;
goto addr_10004b10_4;
}
void** g1000e16c;
void fun_100026ba(void** a1, void** a2) {
g1000e16c = a1;
return;
}
void** fun_100028df(int32_t a1, void** a2, void** a3, void** a4, void** a5, void** a6) {
void* ebp7;
void** v8;
void** ebx9;
void** v10;
void** edi11;
void** ecx12;
void** esi13;
void** v14;
void** eax15;
void** v16;
void** v17;
void** v18;
void** v19;
void** v20;
void** v21;
void** eax22;
void** v23;
void** v24;
void** v25;
void** v26;
void** v27;
void** v28;
void** v29;
void** eax30;
uint32_t eax31;
void* eax32;
ebp7 = reinterpret_cast<void*>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 4);
v8 = ebx9;
v10 = edi11;
ecx12 = reinterpret_cast<void**>(7);
while (ecx12) {
--ecx12;
esi13 = esi13 + 4;
}
if (a4) {
if (!a3 || a2) {
v14 = reinterpret_cast<void**>(0x7fffffff);
if (reinterpret_cast<unsigned char>(a3) <= reinterpret_cast<unsigned char>(0x7fffffff)) {
v14 = a3;
}
eax15 = reinterpret_cast<void**>(a1(reinterpret_cast<int32_t>(ebp7) - 32, a4, a5, a6));
if (a2)
goto addr_1000296f_9;
} else {
eax22 = fun_10002896(ecx12, esi13, v10, v8, 0, v16, v17, v18, v19, v20, v21);
*reinterpret_cast<void***>(eax22) = reinterpret_cast<void**>(22);
fun_10002844(ecx12);
eax15 = reinterpret_cast<void**>(0xffffffff);
}
} else {
eax30 = fun_10002896(ecx12, v10, v8, 0, v23, v24, v25, v26, v27, v28, v29);
*reinterpret_cast<void***>(eax30) = reinterpret_cast<void**>(22);
fun_10002844(ecx12);
eax15 = reinterpret_cast<void**>(0xffffffff);
goto addr_100029a5_12;
}
addr_100029a4_13:
addr_100029a5_12:
return eax15;
addr_1000296f_9:
if (reinterpret_cast<signed char>(eax15) < reinterpret_cast<signed char>(0))
goto addr_10002995_14;
--v14;
if (reinterpret_cast<signed char>(v14) < reinterpret_cast<signed char>(0)) {
eax31 = fun_10002556(ecx12, 0, reinterpret_cast<int32_t>(ebp7) + 0xffffffe0, esi13, v10, v8, a2);
if (eax31 == 0xffffffff) {
addr_10002995_14:
eax32 = reinterpret_cast<void*>(0);
*reinterpret_cast<void***>(reinterpret_cast<unsigned char>(a2) + reinterpret_cast<unsigned char>(a3) + 0xffffffff) = reinterpret_cast<void**>(0);
*reinterpret_cast<unsigned char*>(&eax32) = reinterpret_cast<uint1_t>(reinterpret_cast<signed char>(v14) >= reinterpret_cast<signed char>(0));
eax15 = reinterpret_cast<void**>(reinterpret_cast<int32_t>(eax32) - 2);
goto addr_100029a4_13;
} else {
addr_10002990_17:
eax15 = eax15;
goto addr_100029a4_13;
}
} else {
*reinterpret_cast<void***>(a2) = reinterpret_cast<void**>(0);
goto addr_10002990_17;
}
}
int32_t LCMapStringW = 0xcc9e;
void** fun_10006923(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10) {
void** v11;
void*** esp12;
void** v13;
void** ebp14;
void*** ebp15;
void** eax16;
void** v17;
void** edx18;
void** v19;
void** ebx20;
void** v21;
void** esi22;
void*** esp23;
void** v24;
void** edi25;
void** v26;
void** eax27;
int32_t esi28;
int32_t eax29;
void** v30;
void** v31;
void** eax32;
void** esp33;
void** v34;
void** eax35;
void** v36;
void** eax37;
void** v38;
int32_t eax39;
int32_t esi40;
void** v41;
void** eax42;
void** eax43;
void** edi44;
void** eax45;
void** eax46;
void** edi47;
void** v48;
int32_t eax49;
void** v50;
void** v51;
void** eax52;
void** eax53;
v11 = reinterpret_cast<void**>(__return_address());
esp12 = reinterpret_cast<void***>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 4);
v13 = ebp14;
ebp15 = esp12;
eax16 = g1000d050;
v17 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(eax16) ^ reinterpret_cast<uint32_t>(ebp15));
edx18 = a6;
v19 = ebx20;
v21 = esi22;
esp23 = esp12 - 16 - 4 - 4 - 4;
v24 = edi25;
if (reinterpret_cast<signed char>(edx18) <= reinterpret_cast<signed char>(0)) {
addr_10006960_2:
v26 = reinterpret_cast<void**>(0);
if (!a9) {
a9 = *reinterpret_cast<void***>(*reinterpret_cast<void***>(a2) + 4);
}
} else {
eax27 = a5;
ecx = edx18;
do {
--ecx;
if (!*reinterpret_cast<void***>(eax27))
goto addr_10006953_6;
++eax27;
} while (ecx);
goto addr_10006950_8;
}
esi28 = MultiByteToWideChar;
eax29 = 0;
*reinterpret_cast<unsigned char*>(&eax29) = reinterpret_cast<uint1_t>(!!a10);
v30 = reinterpret_cast<void**>(eax29 * 8 + 1);
v31 = a9;
eax32 = reinterpret_cast<void**>(esi28(v31, v30, a5, a6, 0, 0));
esp33 = reinterpret_cast<void**>(esp23 - 4 - 4 - 4 - 4 - 4 - 4 - 4 + 4);
if (!eax32)
goto addr_1000699f_10;
if (reinterpret_cast<signed char>(eax32) <= reinterpret_cast<signed char>(0) || (esp33 = reinterpret_cast<void**>(reinterpret_cast<uint32_t>(esp33 - 4) + 4), 0xe0 / reinterpret_cast<unsigned char>(eax32) < 2)) {
v34 = reinterpret_cast<void**>(0);
} else {
eax35 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(eax32) + reinterpret_cast<unsigned char>(eax32) + 8);
if (reinterpret_cast<unsigned char>(eax35) > reinterpret_cast<unsigned char>(0x400)) {
eax37 = fun_10004bb8(ecx, eax35, v31, v30, a5, a6, 0, 0, v24, v21, v19, eax32, v36, 0, v17, v13, v11, a2, a3, a4);
ecx = eax35;
esp33 = reinterpret_cast<void**>(reinterpret_cast<uint32_t>(esp33 - 4) - 4 + 4 + 4);
if (!eax37) {
addr_100069e6_15:
v34 = eax37;
} else {
*reinterpret_cast<void***>(eax37) = reinterpret_cast<void**>(0xdddd);
goto addr_100069e3_17;
}
} else {
fun_100082b0(ecx, v31, v30, a5, a6, 0, 0, v24, v21, v19, eax32, v38, 0, v17, v13, v11, a2, a3, a4);
esp33 = reinterpret_cast<void**>(reinterpret_cast<uint32_t>(esp33 - 4) + 4);
eax37 = esp33;
if (!eax37)
goto addr_100069e6_15;
v31 = reinterpret_cast<void**>(0xcccc);
goto addr_100069e3_17;
}
}
if (!v34) {
addr_1000699f_10:
} else {
eax39 = reinterpret_cast<int32_t>(esi28(ecx, a9, 1, a5, a6, v34, eax32, v31, v30, a5, a6, 0, 0));
if (!eax39)
goto addr_10006aec_22;
esi40 = LCMapStringW;
v41 = a3;
eax42 = reinterpret_cast<void**>(esi40(ecx, v41, a4, v34, eax32, 0, 0, a9, 1, a5, a6, v34, eax32, v31, v30, a5, a6, 0, 0));
v26 = eax42;
if (!eax42)
goto addr_10006aec_22;
ecx = reinterpret_cast<void**>(0x400);
if (!(reinterpret_cast<unsigned char>(a4) & reinterpret_cast<unsigned char>(0x400)))
goto addr_10006a5e_25; else
goto addr_10006a35_26;
}
addr_10006af8_27:
eax43 = fun_10001cc4(reinterpret_cast<unsigned char>(v17) ^ reinterpret_cast<uint32_t>(ebp15), eax32);
return eax43;
addr_10006a5e_25:
if (reinterpret_cast<signed char>(v26) <= reinterpret_cast<signed char>(0) || 0xe0 / reinterpret_cast<unsigned char>(v26) < 2) {
edi44 = reinterpret_cast<void**>(0);
} else {
eax45 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(v26) + reinterpret_cast<unsigned char>(v26) + 8);
if (reinterpret_cast<unsigned char>(eax45) > reinterpret_cast<unsigned char>(0x400)) {
eax46 = fun_10004bb8(0x400, eax45, v41, a4, v34, eax32, 0, 0, a9, 1, a5, a6, v34, eax32, v31, v30, a5, a6, 0, 0);
ecx = eax45;
if (eax46) {
*reinterpret_cast<void***>(eax46) = reinterpret_cast<void**>(0xdddd);
eax46 = eax46 + 8;
}
edi44 = eax46;
} else {
fun_100082b0(0x400, v41, a4, v34, eax32, 0, 0, a9, 1, a5, a6, v34, eax32, v31, v30, a5, a6, 0, 0);
edi47 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(reinterpret_cast<unsigned char>(reinterpret_cast<unsigned char>(reinterpret_cast<uint32_t>(esp33 - 4) - 4 - 4 - 4 - 4 - 4 - 4 + 4) - 4 - 4 - 4 - 4 - 4 - 4 - 4 + 4) - 4 + 4) - 4 + 4);
if (!edi47) {
addr_10006aec_22:
fun_10006903(ecx, v34, a9, 1, a5, a6, v34, eax32, v31, v30, a5, a6, 0, 0, v24, v21, v19, eax32, v34, v26, v17, v13, v11, a2, a3, a4);
goto addr_10006af8_27;
} else {
v41 = reinterpret_cast<void**>(0xcccc);
edi44 = edi47 + 8;
}
}
}
if (edi44) {
v48 = v26;
eax49 = reinterpret_cast<int32_t>(esi40(ecx, a3, a4, v34, eax32, edi44, v48, v41, a4, v34, eax32, 0, 0, a9, 1, a5, a6, v34, eax32, v31, v30, a5, a6, 0, 0));
if (eax49) {
if (a8) {
v50 = a8;
v51 = a7;
} else {
v50 = reinterpret_cast<void**>(0);
v51 = reinterpret_cast<void**>(0);
}
eax52 = reinterpret_cast<void**>(WideCharToMultiByte(ecx, a9, 0, edi44, v26, v51, v50, 0, 0, a3, a4, v34, eax32, edi44, v48, v41, a4, v34, eax32, 0, 0, a9, 1, a5, a6, v34, eax32, v31, v30, a5, a6, 0, 0));
v26 = eax52;
}
fun_10006903(ecx, edi44, a3, a4, v34, eax32, edi44, v48, v41, a4, v34, eax32, 0, 0, a9, 1, a5, a6, v34, eax32, v31, v30, a5, a6, 0, 0);
ecx = edi44;
goto addr_10006aec_22;
}
addr_10006a35_26:
if (a8 && reinterpret_cast<signed char>(v26) <= reinterpret_cast<signed char>(a8)) {
esi40(a3, a4, v34, eax32, a7, a8, v41, a4, v34, eax32, 0, 0, a9, 1, a5, a6, v34, eax32, v31, v30, a5, a6, 0, 0);
goto addr_10006aec_22;
}
addr_100069e3_17:
eax37 = eax37 + 8;
goto addr_100069e6_15;
addr_10006953_6:
eax53 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(edx18) - reinterpret_cast<unsigned char>(ecx) - 1);
if (reinterpret_cast<signed char>(eax53) < reinterpret_cast<signed char>(edx18)) {
++eax53;
}
a6 = eax53;
goto addr_10006960_2;
addr_10006950_8:
ecx = reinterpret_cast<void**>(0xffffffff);
goto addr_10006953_6;
}
struct s86 {
signed char[112] pad112;
uint32_t f112;
};
struct s87 {
signed char[4] pad4;
void** f4;
};
int32_t GetACP = 0xca30;
int32_t GetOEMCP = 0xca3a;
struct s88 {
signed char[112] pad112;
uint32_t f112;
};
void** fun_10002db5(void** a1, void** a2, void** a3) {
void** ecx4;
void** ebx5;
void** v6;
void** v7;
void** v8;
void** v9;
void** ebp10;
int32_t esi11;
int32_t esi12;
int32_t esi13;
signed char v14;
struct s86* v15;
void** eax16;
void** esi17;
struct s87* v18;
signed char v19;
struct s88* v20;
ecx4 = reinterpret_cast<void**>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 4 + 0xfffffff0);
fun_10001d91(ecx4, 0, ebx5, v6, v7, v8, v9, ebp10, __return_address(), a1, a2);
g1000e170 = reinterpret_cast<void**>(0);
if (esi11 != -2) {
if (esi12 != -3) {
if (esi13 != -4) {
if (v14) {
v15->f112 = v15->f112 & 0xfffffffd;
}
eax16 = esi17;
} else {
eax16 = v18->f4;
g1000e170 = reinterpret_cast<void**>(1);
goto addr_10002de4_8;
}
} else {
g1000e170 = reinterpret_cast<void**>(1);
eax16 = reinterpret_cast<void**>(GetACP(ecx4));
goto addr_10002de4_8;
}
} else {
g1000e170 = reinterpret_cast<void**>(1);
eax16 = reinterpret_cast<void**>(GetOEMCP(ecx4));
goto addr_10002de4_8;
}
addr_10002e2e_11:
return eax16;
addr_10002de4_8:
if (v19) {
v20->f112 = v20->f112 & 0xfffffffd;
goto addr_10002e2e_11;
}
}
void fun_1000317d(void** ecx, void** a2, void** a3, void** a4, void** a5) {
fun_10006d18(ecx, 13);
return;
}
void fun_10003501(void** ecx) {
fun_10006d18(ecx, 12);
return;
}
void fun_100037f1(void** ecx) {
fun_10006d18(ecx, 13);
return;
}
void fun_100037fd(void** ecx) {
fun_10006d18(ecx, 12);
return;
}
void** g1000e2ec;
void fun_10004c4c(void** a1) {
g1000e2ec = a1;
return;
}
void** g1000e4a8;
void fun_1000784f(void** a1, void** a2, void** a3) {
g1000e4a8 = a1;
return;
}
void** g1000e4a4;
void fun_10007840(void** a1, void** a2, void** a3, void** a4) {
g1000e4a4 = a1;
return;
}
void fun_1000763b(void** a1, void** a2, void** a3, void** a4, void** a5) {
g1000e490 = a1;
g1000e494 = a1;
g1000e498 = a1;
g1000e49c = a1;
return;
}
int32_t g1000e48c;
void fun_100075f1(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6);
void fun_1000762a(void** a1, void** a2, void** a3, void** a4, void** a5, void** a6) {
int32_t eax7;
eax7 = reinterpret_cast<int32_t>(EncodePointer());
g1000e48c = eax7;
goto fun_100075f1;
}
int32_t fun_10003c4f(void** ecx, int32_t* a2, int32_t* a3) {
int32_t* esi4;
int32_t eax5;
int32_t ecx6;
esi4 = a2;
eax5 = 0;
while (reinterpret_cast<uint32_t>(esi4) < reinterpret_cast<uint32_t>(a3) && !eax5) {
ecx6 = *esi4;
if (ecx6) {
eax5 = reinterpret_cast<int32_t>(ecx6());
}
++esi4;
}
return eax5;
}
struct s89 {
signed char[4] pad4;
void** f4;
};
struct s90 {
signed char[8] pad8;
struct s89* f8;
};
void fun_10003a56(void** ecx);
void** g1000e1a0;
void fun_100039ef(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15) {
void** v16;
int32_t ebp17;
struct s89* esi18;
struct s90* ebp19;
void** ecx20;
int32_t ebp21;
void** eax22;
void** edx23;
int32_t ebp24;
void** v25;
void** ecx26;
v16 = reinterpret_cast<void**>(__return_address());
fun_10004570(0x1000c470, 12, v16);
fun_10006df1(ecx, 14, 0x1000c470, 12, v16, a2, a3, a4, a5, a6, a7);
*reinterpret_cast<uint32_t*>(ebp17 - 4) = 0;
esi18 = ebp19->f8;
ecx20 = esi18->f4;
if (!ecx20) {
addr_10003a40_2:
*reinterpret_cast<int32_t*>(ebp21 - 4) = -2;
fun_10003a56(ecx20);
fun_100045b5(ecx20, 0x1000c470, 12, v16, a2, a3);
goto 0x1000c470;
} else {
eax22 = g1000e1a0;
edx23 = reinterpret_cast<void**>(0x1000e19c);
while (*reinterpret_cast<void***>(ebp24 - 28) = eax22, !!eax22) {
if (*reinterpret_cast<void***>(eax22) == ecx20)
goto addr_10003a26_6;
edx23 = eax22;
}
}
addr_10003a33_8:
v25 = esi18->f4;
fun_10002416(ecx20, v25, 0x1000c470, 12, v16, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15);
ecx20 = v25;
esi18->f4 = reinterpret_cast<void**>(0);
goto addr_10003a40_2;
addr_10003a26_6:
ecx26 = *reinterpret_cast<void***>(eax22 + 4);
*reinterpret_cast<void***>(edx23 + 4) = ecx26;
fun_10002416(ecx26, eax22, 0x1000c470, 12, v16, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15);
ecx20 = eax22;
goto addr_10003a33_8;
}
void fun_10003a56(void** ecx) {
fun_10006d18(ecx, 14);
return;
}
int32_t HeapReAlloc = 0xcce2;
void** fun_10007544(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15, void** a16, void** a17) {
void** v18;
void** v19;
void** ebp20;
void** eax21;
void** v22;
void** esi23;
void** esi24;
void** v25;
void** edi26;
void** v27;
void** eax28;
int1_t zf29;
int32_t eax30;
void** eax31;
void** eax32;
void** eax33;
void** eax34;
void** eax35;
void** eax36;
void** eax37;
v18 = reinterpret_cast<void**>(__return_address());
v19 = ebp20;
if (!a2) {
eax21 = fun_10004bb8(ecx, a3, v19, v18, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17);
return eax21;
}
v22 = esi23;
esi24 = a3;
if (esi24) {
v25 = edi26;
do {
if (reinterpret_cast<unsigned char>(esi24) > reinterpret_cast<unsigned char>(0xffffffe0))
break;
if (!esi24) {
++esi24;
}
v27 = g1000e2e8;
eax28 = reinterpret_cast<void**>(HeapReAlloc(ecx, v27, 0, a2, esi24));
if (eax28)
goto addr_100075ed_9;
zf29 = g1000ead8 == eax28;
if (zf29)
goto addr_100075d7_11;
eax30 = fun_10004c5b(ecx, esi24, v27, 0, a2, esi24, v25);
ecx = esi24;
} while (eax30);
goto addr_100075bf_13;
} else {
fun_10002416(ecx, a2, v22, v19, v18, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15);
goto addr_100075bc_15;
}
fun_10004c5b(ecx, esi24, v25, v22, v19, v18, a2);
eax31 = fun_10002896(esi24, v25, v22, v19, v18, a2, a3, a4, a5, a6, a7);
*reinterpret_cast<void***>(eax31) = reinterpret_cast<void**>(12);
addr_100075b9_17:
addr_100075bb_18:
addr_100075bc_15:
goto v18;
addr_100075ed_9:
goto addr_100075bb_18;
addr_100075d7_11:
eax32 = fun_10002896(ecx, v27, 0, a2, esi24, v25, v22, v19, v18, a2, a3);
eax33 = reinterpret_cast<void**>(GetLastError(ecx, v27, 0, a2, esi24));
eax34 = fun_10002854(ecx, eax33, v27, 0, a2, esi24);
*reinterpret_cast<void***>(eax32) = eax34;
goto addr_100075ed_9;
addr_100075bf_13:
eax35 = fun_10002896(ecx, v27, 0, a2, esi24, v25, v22, v19, v18, a2, a3);
eax36 = reinterpret_cast<void**>(GetLastError(ecx, v27, 0, a2, esi24));
eax37 = fun_10002854(ecx, eax36, v27, 0, a2, esi24);
*reinterpret_cast<void***>(eax35) = eax37;
goto addr_100075b9_17;
}
struct s91 {
int32_t f0;
signed char[20] pad24;
int16_t f24;
};
int32_t fun_10007860(struct s47* a1) {
struct s91* eax2;
int32_t edx3;
if (a1->f0 != 0x5a4d || (eax2 = reinterpret_cast<struct s91*>(a1->f60 + reinterpret_cast<int32_t>(a1)), eax2->f0 != 0x4550)) {
return 0;
} else {
edx3 = 0;
*reinterpret_cast<unsigned char*>(&edx3) = reinterpret_cast<uint1_t>(eax2->f24 == 0x10b);
return edx3;
}
}
void fun_10005891(void** ecx) {
int32_t v2;
int32_t esi3;
uint32_t edi4;
int32_t eax5;
v2 = esi3;
edi4 = 0;
do {
eax5 = reinterpret_cast<int32_t>(EncodePointer());
*reinterpret_cast<int32_t*>(edi4 + 0x1000dc10) = eax5;
edi4 = edi4 + 4;
} while (edi4 < 40);
goto v2;
}
void fun_10003c13(void** ecx) {
fun_10006d18(ecx, 8);
return;
}
struct s92 {
signed char[200] pad200;
uint16_t* f200;
};
struct s93 {
signed char[112] pad112;
uint32_t f112;
};
uint32_t fun_10007bba(void** a1, void** a2, void** a3, unsigned char a4) {
void** v5;
void** v6;
void** v7;
void** v8;
void** ebp9;
uint32_t eax10;
void* v11;
uint32_t eax12;
struct s92* v13;
signed char v14;
struct s93* v15;
fun_10001d91(reinterpret_cast<int32_t>(__zero_stack_offset()) - 4 + 0xfffffff0, a1, v5, v6, v7, v8, ebp9, __return_address(), a1, a2, a3);
eax10 = *reinterpret_cast<unsigned char*>(&a2);
if (*reinterpret_cast<unsigned char*>(reinterpret_cast<int32_t>(v11) + eax10 + 29) & a4) {
addr_10007bfb_2:
eax12 = 1;
} else {
if (!a3) {
eax12 = 0;
} else {
eax12 = static_cast<uint32_t>(v13->f200[eax10]) & reinterpret_cast<unsigned char>(a3);
}
if (eax12)
goto addr_10007bfb_2;
}
if (v14) {
v15->f112 = v15->f112 & 0xfffffffd;
}
return eax12;
}
void fun_10007479(void** ecx, void** a2, uint32_t a3, void** a4, void** a5, void** a6, struct s56* a7) {
fun_100083f5(ecx, 1, __return_address(), a2, a3, a4, a5, a6, a7);
goto ecx;
}
void fun_100090d2();
void fun_10007492(void** ecx) {
int32_t edi2;
fun_100090d2();
goto edi2;
}
void** fun_100079ac(void** a1) {
uint32_t eax2;
eax2 = 0;
do {
if (a1 == *reinterpret_cast<void***>(eax2 * 8 + 0x1000bef0))
break;
++eax2;
} while (eax2 < 22);
goto addr_100079c5_4;
return *reinterpret_cast<void***>(eax2 * 8 + 0x1000bef4);
addr_100079c5_4:
return 0;
}
struct s94 {
signed char[8] pad8;
int32_t f8;
};
void fun_10007de6(int32_t a1);
void fun_10004e3c(void** ecx) {
int32_t v2;
struct s94* ebp3;
v2 = ebp3->f8;
fun_10007de6(v2);
return;
}
void fun_10007f80(void** ecx) {
int32_t v2;
void* esp3;
void* ecx4;
int32_t* ecx5;
int32_t eax6;
int32_t eax7;
int32_t eax8;
uint32_t eax9;
int32_t eax10;
void* eax11;
int32_t* eax12;
v2 = reinterpret_cast<int32_t>(__return_address());
esp3 = reinterpret_cast<void*>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 4);
ecx4 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(esp3) + 4);
ecx5 = reinterpret_cast<int32_t*>(reinterpret_cast<uint32_t>(ecx4) - eax6 & ~(eax7 - (eax8 + reinterpret_cast<uint1_t>(eax9 < eax10 + reinterpret_cast<uint1_t>(reinterpret_cast<uint32_t>(ecx4) < reinterpret_cast<uint32_t>(eax11))))));
eax12 = reinterpret_cast<int32_t*>(reinterpret_cast<uint32_t>(esp3) & 0xfffff000);
while (reinterpret_cast<uint32_t>(ecx5) < reinterpret_cast<uint32_t>(eax12)) {
eax12 = eax12 - 0x400;
}
*ecx5 = v2;
goto *ecx5;
}
void fun_1000560f(void** ecx) {
int32_t ebx2;
fun_10007de6(ebx2);
return;
}
uint32_t fun_100081d2(void** ecx, void** a2, void** a3, void** a4, void** a5) {
uint32_t eax6;
eax6 = fun_100080f8(ecx, 1, __return_address(), a2, a3, a4, a5);
return eax6;
}
void fun_10005800(void** a1) {
int32_t ebp2;
if (reinterpret_cast<unsigned char>(a1) < reinterpret_cast<unsigned char>(0x1000d990) || reinterpret_cast<unsigned char>(a1) > reinterpret_cast<unsigned char>(0x1000dbf0)) {
LeaveCriticalSection();
goto ebp2;
} else {
*reinterpret_cast<void***>(a1 + 12) = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(a1 + 12)) & 0xffff7fff);
fun_10006d18(0x1000d990, (reinterpret_cast<int32_t>(reinterpret_cast<unsigned char>(a1) - reinterpret_cast<unsigned char>(0x1000d990)) >> 5) + 16);
return;
}
}
struct s95 {
signed char[16] pad16;
void** f16;
};
void fun_1000583c(struct s95* a1, void** a2) {
int32_t ebp3;
void** ecx4;
if (reinterpret_cast<int32_t>(a1) >= 20) {
LeaveCriticalSection();
goto ebp3;
} else {
*reinterpret_cast<void***>(a2 + 12) = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(a2 + 12)) & 0xffff7fff);
ecx4 = reinterpret_cast<void**>(&a1->f16);
fun_10006d18(ecx4, ecx4);
return;
}
}
struct s96 {
signed char[4] pad4;
void** f4;
signed char[15] pad20;
void** f20;
};
struct s97 {
signed char[112] pad112;
uint32_t f112;
};
struct s98 {
signed char[112] pad112;
uint32_t f112;
};
struct s99 {
signed char[112] pad112;
uint32_t f112;
};
void** fun_1000595b(void** ecx, void** a2, void** a3, void** a4, uint16_t a5, void** a6) {
void*** ebp7;
void** edi8;
void** esi9;
void** ebx10;
void** v11;
void** v12;
void** v13;
void** v14;
void** ebp15;
struct s96* v16;
void** v17;
void** ecx18;
void** v19;
void** eax20;
int32_t eax21;
void** v22;
void** v23;
void** eax24;
void** v25;
void** v26;
void** eax27;
void** eax28;
signed char v29;
struct s97* v30;
uint16_t ax31;
void** v32;
void** v33;
void** v34;
void** v35;
signed char v36;
struct s98* v37;
void** v38;
void** v39;
void** eax40;
void** esi41;
signed char v42;
struct s99* v43;
void** v44;
void** v45;
void** v46;
void** v47;
void** eax48;
ebp7 = reinterpret_cast<void***>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 4);
if (a3 || reinterpret_cast<unsigned char>(a4) <= reinterpret_cast<unsigned char>(0)) {
if (a2) {
*reinterpret_cast<void***>(a2) = reinterpret_cast<void**>(0xffffffff);
}
if (reinterpret_cast<unsigned char>(a4) > reinterpret_cast<unsigned char>(0x7fffffff))
goto addr_10005995_5;
} else {
if (a2) {
*reinterpret_cast<void***>(a2) = reinterpret_cast<void**>(0);
goto addr_1000597f_8;
}
}
fun_10001d91(ebp7 + 0xfffffff0, a6, edi8, esi9, ebx10, v11, v12, v13, v14, ebp15, __return_address());
if (v16->f20) {
v17 = reinterpret_cast<void**>(ebp7 + 12);
ecx18 = reinterpret_cast<void**>(ebp7 + 20);
v19 = v16->f4;
eax20 = reinterpret_cast<void**>(WideCharToMultiByte(v19, 0, ecx18, 1, a3, a4, 0, v17));
if (!eax20) {
eax21 = reinterpret_cast<int32_t>(GetLastError(v19, 0, ecx18, 1, a3, a4, 0, v17));
if (eax21 != 0x7a) {
addr_100059e0_12:
eax24 = fun_10002896(ecx18, edi8, esi9, ebx10, 1, v22, v23, 0, ebp15, __return_address(), a2);
*reinterpret_cast<void***>(eax24) = reinterpret_cast<void**>(42);
eax27 = fun_10002896(ecx18, edi8, esi9, ebx10, 1, v25, v26, 0, ebp15, __return_address(), a2);
eax28 = *reinterpret_cast<void***>(eax27);
if (v29) {
v30->f112 = v30->f112 & 0xfffffffd;
}
} else {
if (a3 && reinterpret_cast<unsigned char>(a4) > reinterpret_cast<unsigned char>(0)) {
fun_10005bc0(ecx18, a3, 0, a4, v19, 0, ecx18, 1, a3, a4, 0, v17);
goto addr_10005a0b_16;
}
}
} else {
if (0)
goto addr_100059e0_12;
if (a2) {
*reinterpret_cast<void***>(a2) = eax20;
goto addr_10005a3a_20;
}
}
} else {
ax31 = a5;
ecx18 = reinterpret_cast<void**>(0xff);
if (ax31 > 0xff) {
if (a3 && reinterpret_cast<unsigned char>(a4) > reinterpret_cast<unsigned char>(0)) {
fun_10005bc0(0xff, a3, 0, a4, edi8, esi9, ebx10, v32, v33, v34, v35, ebp15);
goto addr_100059e0_12;
}
}
if (!a3)
goto addr_10005a2d_25; else
goto addr_10005a07_26;
}
addr_100059fe_27:
return eax28;
addr_10005a3a_20:
if (v36) {
v37->f112 = v37->f112 & 0xfffffffd;
}
addr_1000597f_8:
eax28 = reinterpret_cast<void**>(0);
goto addr_100059fe_27;
addr_10005a2d_25:
if (a2) {
*reinterpret_cast<void***>(a2) = reinterpret_cast<void**>(1);
goto addr_10005a3a_20;
}
addr_10005a07_26:
if (reinterpret_cast<unsigned char>(a4) > reinterpret_cast<unsigned char>(0)) {
*reinterpret_cast<void***>(a3) = *reinterpret_cast<void***>(&ax31);
goto addr_10005a2d_25;
} else {
addr_10005a0b_16:
eax40 = fun_10002896(ecx18, edi8, esi9, ebx10, 1, v38, v39, 0, ebp15, __return_address(), a2);
esi41 = reinterpret_cast<void**>(34);
*reinterpret_cast<void***>(eax40) = reinterpret_cast<void**>(34);
fun_10002844(ecx18);
if (v42) {
v43->f112 = v43->f112 & 0xfffffffd;
}
}
addr_100059a4_32:
eax28 = esi41;
goto addr_100059fe_27;
addr_10005995_5:
eax48 = fun_10002896(ecx, edi8, esi9, ebx10, v44, v45, v46, v47, ebp15, __return_address(), a2);
esi41 = reinterpret_cast<void**>(22);
*reinterpret_cast<void***>(eax48) = reinterpret_cast<void**>(22);
fun_10002844(ecx);
goto addr_100059a4_32;
}
struct s100 {
signed char[200] pad200;
uint16_t* f200;
};
struct s101 {
signed char[112] pad112;
uint32_t f112;
};
uint32_t fun_10005acd(void** ecx, void** a2, void** a3, void** a4) {
void** v5;
void** v6;
void** v7;
void** v8;
void** ebp9;
uint32_t eax10;
struct s100* v11;
signed char v12;
struct s101* v13;
fun_10001d91(reinterpret_cast<int32_t>(__zero_stack_offset()) - 4 + 0xfffffff0, a3, v5, v6, v7, v8, ebp9, __return_address(), a2, a3, a4);
eax10 = static_cast<uint32_t>(v11->f200[*reinterpret_cast<unsigned char*>(&a2)]) & 0x8000;
if (v12) {
v13->f112 = v13->f112 & 0xfffffffd;
}
return eax10;
}
void fun_10006de8(void** ecx) {
fun_10006d18(ecx, 10);
return;
}
int32_t fun_10007690();
unsigned char g1000dde0 = 2;
struct s102 {
int32_t f0;
signed char f1;
signed char f2;
signed char f3;
};
struct s103 {
int32_t f0;
signed char f1;
signed char f2;
signed char f3;
};
void fun_10008417(void** a1, void** a2, void** a3, void** a4, void** a5) {
int32_t eax6;
int1_t zf7;
void** esi8;
void** ecx9;
void** edi10;
int1_t zf11;
int1_t zf12;
uint32_t ecx13;
uint32_t edx14;
uint32_t eax15;
struct s102* esi16;
struct s103* edi17;
uint32_t ecx18;
uint32_t edx19;
void* eax20;
uint32_t edx21;
void** v22;
uint32_t eax23;
uint32_t ecx24;
uint32_t eax25;
uint32_t ecx26;
uint32_t edx27;
uint32_t edx28;
uint32_t ecx29;
uint32_t eax30;
uint32_t ecx31;
uint32_t ecx32;
eax6 = fun_10007690();
if (eax6) {
fun_1000769d(22, __return_address(), a1, a2, a3, a4, a5);
}
zf7 = (g1000dde0 & 2) == 0;
if (!zf7) {
fun_100026c9(22, 3, 0x40000015, 1, __return_address(), a1);
}
fun_10003e4a(22, 3, __return_address(), a1, a2);
esi8 = a1;
ecx9 = a2;
edi10 = reinterpret_cast<void**>(__return_address());
if (reinterpret_cast<unsigned char>(edi10) <= reinterpret_cast<unsigned char>(esi8) || reinterpret_cast<unsigned char>(edi10) >= reinterpret_cast<unsigned char>(reinterpret_cast<unsigned char>(ecx9) + reinterpret_cast<unsigned char>(esi8))) {
if (reinterpret_cast<unsigned char>(ecx9) < reinterpret_cast<unsigned char>(0x80) || ((zf11 = g1000eb00 == 0, zf11) || (zf12 = (reinterpret_cast<unsigned char>(edi10) & 15) == (reinterpret_cast<unsigned char>(esi8) & 15), esi8 = esi8, edi10 = edi10, !zf12))) {
if (reinterpret_cast<unsigned char>(edi10) & 3) {
if (reinterpret_cast<unsigned char>(ecx9) < reinterpret_cast<unsigned char>(4)) {
goto *reinterpret_cast<int32_t*>(reinterpret_cast<uint32_t>(ecx9 - 4) * 4 + 0x100085d0);
} else {
goto *reinterpret_cast<int32_t*>((reinterpret_cast<unsigned char>(edi10) & 3) * 4 + 0x100084d4);
}
}
ecx13 = reinterpret_cast<unsigned char>(ecx9) >> 2;
edx14 = reinterpret_cast<unsigned char>(ecx9) & 3;
if (ecx13 >= 8)
goto addr_100084a7_13;
} else {
eax15 = reinterpret_cast<unsigned char>(esi8) & 15;
if (eax15)
goto addr_10008ddb_16; else
goto addr_10008d1a_17;
}
} else {
esi16 = reinterpret_cast<struct s102*>(reinterpret_cast<unsigned char>(ecx9) + reinterpret_cast<unsigned char>(esi8) + 0xfffffffc);
edi17 = reinterpret_cast<struct s103*>(reinterpret_cast<unsigned char>(ecx9) + reinterpret_cast<unsigned char>(edi10) + 0xfffffffc);
if (reinterpret_cast<uint32_t>(edi17) & 3) {
if (reinterpret_cast<unsigned char>(ecx9) >= reinterpret_cast<unsigned char>(4)) {
goto *reinterpret_cast<int32_t*>((reinterpret_cast<uint32_t>(edi17) & 3) * 4 + 0x10008660);
}
goto *reinterpret_cast<int32_t*>(reinterpret_cast<unsigned char>(ecx9) * 4 + 0x1000875c);
} else {
ecx18 = reinterpret_cast<unsigned char>(ecx9) >> 2;
edx19 = reinterpret_cast<unsigned char>(ecx9) & 3;
if (ecx18 < 8) {
goto *reinterpret_cast<int32_t*>(reinterpret_cast<int32_t>(-ecx18) * 4 + 0x1000870c);
goto *reinterpret_cast<int32_t*>(edx19 * 4 + 0x1000875c);
} else {
while (ecx18) {
--ecx18;
edi17->f0 = esi16->f0;
edi17 = reinterpret_cast<struct s103*>(reinterpret_cast<uint32_t>(edi17) - 4);
esi16 = reinterpret_cast<struct s102*>(reinterpret_cast<uint32_t>(esi16) - 4);
}
goto *reinterpret_cast<int32_t*>(edx19 * 4 + 0x1000875c);
}
}
}
switch (ecx13) {
addr_100085b7_30:
case 0:
switch (edx14) {
case 0:
goto 3;
case 1:
*reinterpret_cast<void***>(edi10) = *reinterpret_cast<void***>(esi8);
goto 3;
case 2:
*reinterpret_cast<void***>(edi10) = *reinterpret_cast<void***>(esi8);
*reinterpret_cast<void***>(edi10 + 1) = *reinterpret_cast<void***>(esi8 + 1);
goto 3;
case 3:
*reinterpret_cast<void***>(edi10) = *reinterpret_cast<void***>(esi8);
*reinterpret_cast<void***>(edi10 + 1) = *reinterpret_cast<void***>(esi8 + 1);
*reinterpret_cast<void***>(edi10 + 2) = *reinterpret_cast<void***>(esi8 + 2);
goto 3;
}
addr_100085a4_35:
case 1:
*reinterpret_cast<int32_t*>(reinterpret_cast<uint32_t>(edi10 + ecx13 * 4) - 4) = *reinterpret_cast<int32_t*>(reinterpret_cast<uint32_t>(esi8 + ecx13 * 4) - 4);
eax20 = reinterpret_cast<void*>(ecx13 * 4);
esi8 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(esi8) + reinterpret_cast<uint32_t>(eax20));
edi10 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(edi10) + reinterpret_cast<uint32_t>(eax20));
goto addr_100085b7_30;
addr_1000859c_36:
case 2:
*reinterpret_cast<int32_t*>(reinterpret_cast<uint32_t>(edi10 + ecx13 * 4) - 8) = *reinterpret_cast<int32_t*>(reinterpret_cast<uint32_t>(esi8 + ecx13 * 4) - 8);
goto addr_100085a4_35;
addr_10008594_37:
case 3:
*reinterpret_cast<int32_t*>(reinterpret_cast<uint32_t>(edi10 + ecx13 * 4) - 12) = *reinterpret_cast<int32_t*>(reinterpret_cast<uint32_t>(esi8 + ecx13 * 4) - 12);
goto addr_1000859c_36;
addr_1000858c_38:
case 4:
*reinterpret_cast<int32_t*>(reinterpret_cast<uint32_t>(edi10 + ecx13 * 4) - 16) = *reinterpret_cast<int32_t*>(reinterpret_cast<uint32_t>(esi8 + ecx13 * 4) - 16);
goto addr_10008594_37;
addr_10008584_39:
case 5:
*reinterpret_cast<int32_t*>(reinterpret_cast<uint32_t>(edi10 + ecx13 * 4) - 20) = *reinterpret_cast<int32_t*>(reinterpret_cast<uint32_t>(esi8 + ecx13 * 4) - 20);
goto addr_1000858c_38;
addr_1000857c_40:
case 6:
*reinterpret_cast<int32_t*>(reinterpret_cast<uint32_t>(edi10 + ecx13 * 4) - 24) = *reinterpret_cast<int32_t*>(reinterpret_cast<uint32_t>(esi8 + ecx13 * 4) - 24);
goto addr_10008584_39;
case 7:
*reinterpret_cast<int32_t*>(reinterpret_cast<uint32_t>(edi10 + ecx13 * 4) - 28) = *reinterpret_cast<int32_t*>(reinterpret_cast<uint32_t>(esi8 + ecx13 * 4) - 28);
goto addr_1000857c_40;
}
addr_100084a7_13:
while (ecx13) {
--ecx13;
*reinterpret_cast<void***>(edi10) = *reinterpret_cast<void***>(esi8);
edi10 = edi10 + 4;
esi8 = esi8 + 4;
}
goto *reinterpret_cast<int32_t*>(edx14 * 4 + 0x100085c0);
addr_10008ddb_16:
edx21 = 16 - eax15;
v22 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(ecx9) - edx21);
eax23 = edx21;
ecx24 = eax23 & 3;
if (ecx24) {
do {
*reinterpret_cast<void***>(edi10) = *reinterpret_cast<void***>(esi8);
++esi8;
++edi10;
--ecx24;
} while (ecx24);
}
eax25 = eax23 >> 2;
if (eax25) {
do {
*reinterpret_cast<void***>(edi10) = *reinterpret_cast<void***>(esi8);
esi8 = esi8 + 4;
edi10 = edi10 + 4;
--eax25;
} while (eax25);
}
ecx9 = v22;
addr_10008d1a_17:
ecx26 = reinterpret_cast<unsigned char>(ecx9) & 0x7f;
edx27 = reinterpret_cast<unsigned char>(ecx9) >> 7;
if (edx27) {
do {
__asm__("movdqa xmm0, [esi]");
__asm__("movdqa xmm1, [esi+0x10]");
__asm__("movdqa xmm2, [esi+0x20]");
__asm__("movdqa xmm3, [esi+0x30]");
__asm__("movdqa [edi], xmm0");
__asm__("movdqa [edi+0x10], xmm1");
__asm__("movdqa [edi+0x20], xmm2");
__asm__("movdqa [edi+0x30], xmm3");
__asm__("movdqa xmm4, [esi+0x40]");
__asm__("movdqa xmm5, [esi+0x50]");
__asm__("movdqa xmm6, [esi+0x60]");
__asm__("movdqa xmm7, [esi+0x70]");
__asm__("movdqa [edi+0x40], xmm4");
__asm__("movdqa [edi+0x50], xmm5");
__asm__("movdqa [edi+0x60], xmm6");
__asm__("movdqa [edi+0x70], xmm7");
esi8 = esi8 + 0x80;
edi10 = edi10 + 0x80;
--edx27;
} while (edx27);
}
if (ecx26) {
edx28 = ecx26 >> 4;
if (edx28) {
do {
__asm__("movdqa xmm0, [esi]");
__asm__("movdqa [edi], xmm0");
esi8 = esi8 + 16;
edi10 = edi10 + 16;
--edx28;
} while (edx28);
}
ecx29 = ecx26 & 15;
if (ecx29) {
eax30 = ecx29;
ecx31 = ecx29 >> 2;
if (ecx31) {
do {
*reinterpret_cast<void***>(edi10) = *reinterpret_cast<void***>(esi8);
esi8 = esi8 + 4;
edi10 = edi10 + 4;
--ecx31;
} while (ecx31);
}
ecx32 = eax30 & 3;
if (ecx32) {
do {
*reinterpret_cast<void***>(edi10) = *reinterpret_cast<void***>(esi8);
++esi8;
++edi10;
--ecx32;
} while (ecx32);
}
}
}
goto 3;
goto 3;
*reinterpret_cast<signed char*>(reinterpret_cast<uint32_t>(edi17) + 3) = *reinterpret_cast<signed char*>(reinterpret_cast<uint32_t>(esi16) + 3);
goto 3;
*reinterpret_cast<signed char*>(reinterpret_cast<uint32_t>(edi17) + 3) = *reinterpret_cast<signed char*>(reinterpret_cast<uint32_t>(esi16) + 3);
*reinterpret_cast<signed char*>(reinterpret_cast<uint32_t>(edi17) + 2) = *reinterpret_cast<signed char*>(reinterpret_cast<uint32_t>(esi16) + 2);
goto 3;
*reinterpret_cast<signed char*>(reinterpret_cast<uint32_t>(edi17) + 3) = *reinterpret_cast<signed char*>(reinterpret_cast<uint32_t>(esi16) + 3);
*reinterpret_cast<signed char*>(reinterpret_cast<uint32_t>(edi17) + 2) = *reinterpret_cast<signed char*>(reinterpret_cast<uint32_t>(esi16) + 2);
*reinterpret_cast<signed char*>(reinterpret_cast<uint32_t>(edi17) + 1) = *reinterpret_cast<signed char*>(reinterpret_cast<uint32_t>(esi16) + 1);
goto 3;
}
int32_t fun_10007690() {
void** v1;
v1 = g1000e498;
DecodePointer();
goto v1;
}
int32_t g1000a694 = 12;
void** fun_10007659(void** a1) {
void** eax2;
int32_t ecx3;
void** edx4;
void** edx5;
eax2 = a1;
ecx3 = g1000a694;
do {
if (*reinterpret_cast<void***>(eax2 + 4) == edx4)
break;
eax2 = eax2 + 12;
} while (reinterpret_cast<unsigned char>(eax2) < reinterpret_cast<unsigned char>(a1 + ecx3 * 12));
if (reinterpret_cast<unsigned char>(eax2) >= reinterpret_cast<unsigned char>(a1 + ecx3 * 12) || *reinterpret_cast<void***>(eax2 + 4) != edx5) {
eax2 = reinterpret_cast<void**>(0);
}
return eax2;
}
void fun_10007804(void** ecx) {
int32_t ebp2;
if (*reinterpret_cast<int32_t*>(ebp2 - 28)) {
fun_10006d18(ecx, 0);
}
return;
}
int32_t SetStdHandle = 0xcd22;
uint32_t fun_10007c58(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6) {
int1_t cf7;
uint32_t** edi8;
uint32_t esi9;
void** edi10;
void** esi11;
void** ebx12;
void** ebp13;
void** eax14;
void** eax15;
uint32_t eax16;
int1_t zf17;
void** ecx18;
int32_t v19;
void** ecx20;
if (reinterpret_cast<signed char>(a2) < reinterpret_cast<signed char>(0) || ((cf7 = reinterpret_cast<unsigned char>(a2) < reinterpret_cast<unsigned char>(g1000fb2c), !cf7) || ((edi8 = reinterpret_cast<uint32_t**>((reinterpret_cast<signed char>(a2) >> 5) * 4 + 0x1000fb40), esi9 = (reinterpret_cast<unsigned char>(a2) & 31) << 6, (*reinterpret_cast<unsigned char*>(reinterpret_cast<int32_t>(*edi8) + esi9 + 4) & 1) == 0) || *reinterpret_cast<uint32_t*>(reinterpret_cast<int32_t>(*edi8) + esi9) == 0xffffffff))) {
eax14 = fun_10002896(a2, edi10, esi11, ebx12, ebp13, __return_address(), a2, a3, a4, a5, a6);
*reinterpret_cast<void***>(eax14) = reinterpret_cast<void**>(9);
eax15 = fun_100028a9(a2, edi10, esi11, ebx12, ebp13, __return_address(), a2, a3, a4, a5);
*reinterpret_cast<void***>(eax15) = reinterpret_cast<void**>(0);
eax16 = 0xffffffff;
} else {
zf17 = g1000de30 == 1;
if (!zf17)
goto addr_10007cba_4;
ecx18 = reinterpret_cast<void**>(static_cast<uint32_t>(reinterpret_cast<unsigned char>(a2)));
if (!ecx18)
goto addr_10007cb1_6; else
goto addr_10007ca1_7;
}
addr_10007cd9_8:
return eax16;
addr_10007cb1_6:
v19 = 0xf6;
addr_10007cb4_9:
SetStdHandle(v19, 0);
goto addr_10007cba_4;
addr_10007ca1_7:
ecx20 = ecx18 - 1;
if (!ecx20) {
v19 = 0xf5;
goto addr_10007cb4_9;
} else {
if (ecx20 - 1) {
addr_10007cba_4:
*reinterpret_cast<uint32_t*>(esi9 + reinterpret_cast<int32_t>(*edi8)) = 0xffffffff;
eax16 = 0;
goto addr_10007cd9_8;
} else {
v19 = 0xf4;
goto addr_10007cb4_9;
}
}
}
void fun_10007ddd(void** ecx) {
fun_10006d18(ecx, 10);
return;
}
void fun_1000819a(void** ecx) {
void** eax2;
void** v3;
int32_t esi4;
struct s95* esi5;
eax2 = g1000eb04;
v3 = *reinterpret_cast<void***>(eax2 + esi4 * 4);
fun_1000583c(esi5, v3);
return;
}
uint32_t fun_10008b52(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14) {
uint32_t edi15;
uint32_t eax16;
void** edi17;
void** esi18;
void** ebp19;
void** eax20;
int32_t eax21;
void** v22;
uint32_t eax23;
void** eax24;
edi15 = 0xffffffff;
if (a2) {
if (reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(a2 + 12)) & 0x83) {
eax16 = fun_10008048(a2);
edi15 = eax16;
fun_10008f6f(ecx, a2, a2, edi17, esi18, ebp19, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9);
eax20 = fun_1000586b(ecx, a2, a2, a2, edi17, esi18, ebp19, __return_address(), a2);
eax21 = fun_10008eab(ecx, eax20, a2, a2, a2, edi17, esi18, ebp19);
if (eax21 >= 0) {
if (*reinterpret_cast<void***>(a2 + 28)) {
v22 = *reinterpret_cast<void***>(a2 + 28);
fun_10002416(ecx, v22, edi17, esi18, ebp19, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14);
*reinterpret_cast<void***>(a2 + 28) = reinterpret_cast<void**>(0);
}
} else {
edi15 = 0xffffffff;
}
}
*reinterpret_cast<void***>(a2 + 12) = reinterpret_cast<void**>(0);
eax23 = edi15;
} else {
eax24 = fun_10002896(ecx, edi17, esi18, ebp19, __return_address(), a2, a3, a4, a5, a6, a7);
*reinterpret_cast<void***>(eax24) = reinterpret_cast<void**>(22);
fun_10002844(ecx);
eax23 = 0xffffffff;
}
return eax23;
}
void fun_10008d04(void** ecx) {
int32_t ebx2;
fun_10007de6(ebx2);
return;
}
void fun_10008f67(void** ecx) {
int32_t ebx2;
fun_10007de6(ebx2);
return;
}
void** fun_100092de(void** a1, void** a2) {
void** eax3;
void** ecx4;
eax3 = reinterpret_cast<void**>(0);
if (reinterpret_cast<unsigned char>(a2) > reinterpret_cast<unsigned char>(0)) {
ecx4 = a1;
do {
if (!*reinterpret_cast<void***>(ecx4))
break;
++eax3;
++ecx4;
} while (reinterpret_cast<unsigned char>(eax3) < reinterpret_cast<unsigned char>(a2));
}
return eax3;
}
void** fun_100090d8(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15, void** a16, void** a17, void** a18, void** a19);
struct s104 {
signed char[112] pad112;
uint32_t f112;
};
void** fun_1000924c(void** a1, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9) {
void** ecx10;
void** edi11;
void** ebx12;
void** v13;
void** v14;
void** v15;
void** v16;
void** ebp17;
void** v18;
void** v19;
void** v20;
void** v21;
void** eax22;
signed char v23;
struct s104* v24;
ecx10 = reinterpret_cast<void**>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 4 + 0xfffffff0);
fun_10001d91(ecx10, a3, edi11, ebx12, v13, v14, v15, v16, ebp17, __return_address(), a1);
eax22 = fun_100090d8(ecx10, a2, edi11, ebx12, v18, v19, v20, v21, ebp17, __return_address(), a1, a2, a3, a4, a5, a6, a7, a8, a9);
if (v23) {
v24->f112 = v24->f112 & 0xfffffffd;
}
return eax22;
}
int32_t HidD_GetHidGuid = 0xc826;
int32_t SetupDiGetClassDevsW = 0xc878;
int32_t SetupDiEnumDeviceInterfaces = 0xc890;
int32_t SetupDiDestroyDeviceInfoList = 0xc858;
int32_t SetupDiGetDeviceInterfaceDetailW = 0xc8ae;
void** fun_10001140(void** ecx, void* a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12) {
int32_t* esp13;
int32_t edi14;
int32_t esi15;
int32_t ebx16;
void** eax17;
void* esp18;
void** edi19;
void** ecx20;
uint32_t v21;
void** eax22;
void** v23;
void* esp24;
void** v25;
void** v26;
int32_t eax27;
void* esp28;
void** ecx29;
uint32_t v30;
void** eax31;
int32_t esi32;
void* esp33;
void** v34;
void* esp35;
void** v36;
void** eax37;
void*** esp38;
void** ecx39;
int32_t eax40;
void* esp41;
void** esi42;
void* esp43;
void** v44;
void* esp45;
void* esp46;
void** ecx47;
void** eax48;
void** eax49;
void** eax50;
void** eax51;
void** eax52;
void** eax53;
void* esp54;
void* eax55;
void* v56;
void** esp57;
void* v58;
int32_t eax59;
void** ecx60;
uint32_t v61;
void** eax62;
esp13 = reinterpret_cast<int32_t*>((reinterpret_cast<uint32_t>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 4) & 0xfffffff8) - 0x14c - 4 - 4 - 4);
HidD_GetHidGuid(esp13 + 7, edi14, esi15, ebx16, 0);
eax17 = reinterpret_cast<void**>(SetupDiGetClassDevsW());
esp18 = reinterpret_cast<void*>(esp13 - 1 - 1 + 1 - 1 - 1 - 1 - 1 - 1 + 1);
edi19 = eax17;
if (!edi19) {
addr_10001317_2:
ecx20 = reinterpret_cast<void**>(v21 ^ reinterpret_cast<uint32_t>(esp18) + 4 + 4 + 4);
eax22 = fun_10001cc4(ecx20, 18, ecx20, 18);
return eax22;
} else {
v23 = reinterpret_cast<void**>(reinterpret_cast<uint32_t>(esp18) + 44);
esp24 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(esp18) - 4 - 4);
v25 = reinterpret_cast<void**>(reinterpret_cast<uint32_t>(esp24) + 36);
v26 = edi19;
eax27 = reinterpret_cast<int32_t>(SetupDiEnumDeviceInterfaces());
GetLastError();
esp28 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(esp24) - 4 - 4 - 4 - 4 + 4 - 4 + 4);
if (!eax27) {
addr_100012e9_4:
SetupDiDestroyDeviceInfoList();
ecx29 = reinterpret_cast<void**>(v30 ^ reinterpret_cast<uint32_t>(esp28) - 4 - 4 + 4 + 4 + 4 + 4);
eax31 = fun_10001cc4(ecx29, v25, ecx29, v25);
return eax31;
} else {
do {
esi32 = SetupDiGetDeviceInterfaceDetailW;
esp33 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(esp28) - 4);
v34 = reinterpret_cast<void**>(reinterpret_cast<uint32_t>(esp33) + 20);
esp35 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(esp33) - 4 - 4 - 4);
v36 = reinterpret_cast<void**>(reinterpret_cast<uint32_t>(esp35) + 60);
esi32();
eax37 = fun_10001cae(v34, edi19, v36, 0, 0, v34, 0, v26, 0, v25, 0, v23);
*reinterpret_cast<void***>(eax37) = reinterpret_cast<void**>(6);
esp38 = reinterpret_cast<void***>(reinterpret_cast<uint32_t>(esp35) - 4 - 4 - 4 + 4 - 4 - 4 + 4 + 4 - 4 - 4 - 4 - 4);
ecx39 = reinterpret_cast<void**>(esp38 + 60);
eax40 = reinterpret_cast<int32_t>(esi32(edi19, ecx39, eax37));
esp41 = reinterpret_cast<void*>(esp38 - 4 - 4 - 4 + 4);
if (!eax40)
break;
esi42 = eax37 + 4;
esp43 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(esp41) - 4 - 4);
v44 = reinterpret_cast<void**>(reinterpret_cast<uint32_t>(esp43) + 80);
fun_10001cd3(ecx39, v44, 0x104, "%S", esi42, edi19, ecx39, eax37, v34, 0, 0);
esp45 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(esp43) - 4 - 4 - 4 + 4 - 4);
fun_1000207f(ecx39, reinterpret_cast<uint32_t>(esp45) + 92, esi42, 0x104, v44, 0x104, "%S", esi42, edi19, ecx39, eax37);
esp46 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(esp45) - 4 - 4 - 4 + 4 + 28);
if (edi19 && (!1 && ((ecx47 = reinterpret_cast<void**>(reinterpret_cast<uint32_t>(esp46) + 72), eax48 = fun_10009281(ecx47, ecx47, edi19, ecx39, eax37, v34, 0, 0, edi19, v36, 0, 0), eax49 = fun_10001d00(eax48, edi19, edi19, ecx39, eax37), esp46 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(esp46) - 4 - 4 + 4 + 4 - 4 - 4 - 4 + 4 + 8), !!eax49) && ((eax50 = fun_10009281(ecx47, reinterpret_cast<uint32_t>(esp46) + 72, edi19, ecx39, eax37, v34, 0, 0, edi19, v36, 0, 0), eax51 = fun_10001d00(eax50, 0, edi19, ecx39, eax37), esp46 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(esp46) - 4 - 4 + 4 + 4 - 4 - 4 - 4 + 4 + 8), !!eax51) && (eax52 = reinterpret_cast<void**>(CreateFileW()), esp46 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(esp46) - 4 - 4 - 4 - 4 - 4 - 4 - 4 - 4 + 4), eax52 != 0xffffffff))))) {
eax53 = fun_10001000(eax52);
esp54 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(esp46) - 4 - 4 + 4 + 4);
if (eax53)
goto addr_1000132e_8;
CloseHandle(eax52);
esp46 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(esp54) - 4 - 4 + 4);
}
eax55 = reinterpret_cast<void*>(v34 + 1);
v56 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(esp46) + 44);
esp57 = reinterpret_cast<void**>(reinterpret_cast<uint32_t>(esp46) - 4 - 4);
v58 = reinterpret_cast<void*>(esp57 + 9);
eax59 = reinterpret_cast<int32_t>(SetupDiEnumDeviceInterfaces(edi19, 0, v58, eax55, v56, edi19, ecx39, eax37, eax55, 0));
GetLastError(edi19, 0, v58, eax55, v56, edi19, ecx39, eax37, eax55, 0);
esp28 = reinterpret_cast<void*>(esp57 - 1 - 1 - 1 - 1 + 1 - 1 + 1);
} while (eax59);
goto addr_100012e9_4;
}
}
SetupDiDestroyDeviceInfoList(edi19, edi19, ecx39, eax37);
fun_10001d86(ecx39, eax37, edi19, edi19, ecx39, eax37, v34, 0, 0, edi19, v36, 0, 0, v34, 0);
esp18 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(esp41) - 4 - 4 + 4 - 4 - 4 + 4 + 4);
goto addr_10001317_2;
addr_1000132e_8:
fun_10001d86(0, eax37, esi42, 0, 3, 0, 3, 0, 0, edi19, ecx39, eax37, v34, 0, 0);
SetupDiDestroyDeviceInfoList();
ecx60 = reinterpret_cast<void**>(v61 ^ reinterpret_cast<uint32_t>(esp54) - 4 - 4 + 4 + 4 - 4 - 4 + 4 + 4 + 4 + 4);
eax62 = fun_10001cc4(ecx60, 3, ecx60, 3);
return eax62;
}
void** fun_100048a9(void** ecx, void** a2, void** a3, void** a4) {
void** ebp5;
void** eax6;
if (!reinterpret_cast<int1_t>(a2 == 0xe06d7363)) {
return 0;
} else {
eax6 = fun_1000475f(ecx, 0xe06d7363, a3, ebp5, __return_address(), a2, a3, a4);
return eax6;
}
}
void fun_10003c0a(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9) {
fun_10006df1(ecx, 8, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9);
return;
}
void fun_10004b9b(void** ecx) {
fun_10003c13(ecx);
return;
}
void fun_10002dac(void** ecx) {
fun_10006d18(ecx, 13);
return;
}
struct s105 {
signed char[16] pad16;
int32_t f16;
};
void fun_10003e35(void** ecx) {
struct s105* ebp2;
if (ebp2->f16) {
fun_10006d18(ecx, 8);
}
return;
}
int32_t RtlUnwind = 0xccd6;
void fun_100090d2() {
goto RtlUnwind;
}
void fun_10007de6(int32_t a1) {
int32_t ebp2;
LeaveCriticalSection();
goto ebp2;
}
void fun_1000803f(void** ecx) {
fun_10006d18(ecx, 1);
return;
}
void fun_10008c2b(void** ecx) {
void** esi2;
fun_10005800(esi2);
return;
}
struct s106 {
signed char[4] pad4;
void** f4;
signed char[15] pad20;
void** f20;
};
struct s107 {
signed char[4] pad4;
void** f4;
signed char[15] pad20;
void** f20;
};
void** fun_100090d8(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15, void** a16, void** a17, void** a18, void** a19) {
void*** esp20;
void*** ebp21;
void** eax22;
void** v23;
void** v24;
void** esi25;
void** edi26;
void** eax27;
struct s106* eax28;
struct s106** ebx29;
void** ecx30;
void** v31;
void** ebx32;
void** v33;
void** v34;
void** ebp35;
void** eax36;
void** v37;
void** v38;
void** eax39;
void** v40;
void** eax41;
void** v42;
void** v43;
void** eax44;
void** v45;
void** v46;
void** eax47;
void** ecx48;
void** v49;
void** v50;
struct s107* eax51;
struct s107** ebx52;
void** v53;
void** v54;
void** ebx55;
void** eax56;
void** eax57;
void** eax58;
void** eax59;
esp20 = reinterpret_cast<void***>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 4);
ebp21 = esp20;
eax22 = g1000d050;
v23 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(eax22) ^ reinterpret_cast<uint32_t>(ebp21));
v24 = esi25;
if (edi26) {
eax27 = fun_100092de(edi26, a2);
ecx = a2;
if (reinterpret_cast<unsigned char>(eax27) < reinterpret_cast<unsigned char>(a2)) {
eax28 = *ebx29;
ecx30 = eax28->f20;
if (ecx30) {
v31 = eax28->f4;
eax36 = fun_10006b0a(ebx32, ecx30, 0x200, edi26, 0xff, 0, 0, v31, 1, v24, v33, v34, v23, ebp35, __return_address(), a2, a3);
ecx = eax36;
v37 = ecx;
if (ecx) {
if (reinterpret_cast<unsigned char>(a2) >= reinterpret_cast<unsigned char>(ecx)) {
if (reinterpret_cast<uint1_t>(reinterpret_cast<signed char>(ecx) < reinterpret_cast<signed char>(0)) | reinterpret_cast<uint1_t>(ecx == 0) || 0xe0 / reinterpret_cast<unsigned char>(ecx) < 1) {
v38 = reinterpret_cast<void**>(0);
} else {
eax39 = ecx + 8;
if (reinterpret_cast<unsigned char>(eax39) > reinterpret_cast<unsigned char>(0x400)) {
eax41 = fun_10004bb8(ecx, eax39, v24, v37, v40, v23, ebp35, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13);
if (!eax41) {
addr_100091d4_10:
ecx = v37;
v38 = eax41;
} else {
*reinterpret_cast<void***>(eax41) = reinterpret_cast<void**>(0xdddd);
goto addr_100091d1_12;
}
} else {
fun_100082b0(ecx, v24, v37, v42, v23, ebp35, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13);
eax41 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(reinterpret_cast<unsigned char>(esp20 - 12 - 4 - 4 - 4 - 4 + 4 + 4 + 4 - 4 - 4 - 4 - 4 - 4 - 4 - 4 - 4 - 4 - 4 + 4 + 36) - 4 + 4) - 4 + 4);
if (!eax41)
goto addr_100091d4_10;
v24 = reinterpret_cast<void**>(0xcccc);
goto addr_100091d1_12;
}
}
} else {
*reinterpret_cast<void***>(edi26) = reinterpret_cast<void**>(0);
eax44 = fun_10002896(ecx, v24, v37, v43, v23, ebp35, __return_address(), a2, a3, a4, a5);
v45 = reinterpret_cast<void**>(34);
goto addr_100090f6_16;
}
} else {
eax47 = fun_10002896(ecx, v24, v37, v46, v23, ebp35, __return_address(), a2, a3, a4, a5);
*reinterpret_cast<void***>(eax47) = reinterpret_cast<void**>(42);
goto addr_10009173_18;
}
} else {
ecx48 = edi26;
if (*reinterpret_cast<void***>(edi26)) {
do {
if (reinterpret_cast<signed char>(*reinterpret_cast<void***>(ecx48)) >= reinterpret_cast<signed char>(97) && reinterpret_cast<signed char>(*reinterpret_cast<void***>(ecx48)) <= reinterpret_cast<signed char>(0x7a)) {
*reinterpret_cast<void***>(ecx48) = *reinterpret_cast<void***>(ecx48) - 32;
}
++ecx48;
} while (*reinterpret_cast<void***>(ecx48));
}
goto addr_1000923c_24;
}
} else {
*reinterpret_cast<void***>(edi26) = reinterpret_cast<void**>(0);
goto addr_100090ef_26;
}
} else {
addr_100090ef_26:
eax44 = fun_10002896(ecx, v24, v49, v50, v23, ebp35, __return_address(), a2, a3, a4, a5);
v45 = reinterpret_cast<void**>(22);
goto addr_100090f6_16;
}
if (v38) {
eax51 = *ebx52;
v53 = eax51->f4;
v54 = eax51->f20;
eax56 = fun_10006b0a(ebx55, v54, 0x200, edi26, 0xff, v38, ecx, v53, 1, v24, v37, v38, v23, ebp35, __return_address(), a2, a3);
if (!eax56) {
eax57 = fun_10002896(ecx, v24, v37, v38, v23, ebp35, __return_address(), a2, a3, a4, a5);
ecx = reinterpret_cast<void**>(42);
*reinterpret_cast<void***>(eax57) = reinterpret_cast<void**>(42);
} else {
fun_10007302(ecx, edi26, a2, v38, v24, v37, v38);
}
fun_10006903(ecx, v38, v24, v37, v38, v23, ebp35, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19);
} else {
eax58 = fun_10002896(ecx, v24, v37, v38, v23, ebp35, __return_address(), a2, a3, a4, a5);
*reinterpret_cast<void***>(eax58) = reinterpret_cast<void**>(12);
goto addr_10009173_18;
}
addr_1000923a_33:
addr_1000923c_24:
eax59 = fun_10001cc4(reinterpret_cast<unsigned char>(v23) ^ reinterpret_cast<uint32_t>(ebp21), v37);
return eax59;
addr_10009173_18:
fun_10002896(ecx, v24, v37, v38, v23, ebp35, __return_address(), a2, a3, a4, a5);
goto addr_1000923c_24;
addr_100091d1_12:
eax41 = eax41 + 8;
goto addr_100091d4_10;
addr_100090f6_16:
*reinterpret_cast<void***>(eax44) = v45;
fun_10002844(ecx);
goto addr_1000923a_33;
}
struct s108 {
signed char[1] pad1;
signed char f1;
};
struct s109 {
signed char[1] pad1;
signed char f1;
};
struct s110 {
signed char[2] pad2;
signed char f2;
};
struct s111 {
signed char[2] pad2;
signed char f2;
};
struct s112 {
signed char[3] pad3;
int32_t f3;
};
struct s113 {
signed char[3] pad3;
int32_t f3;
};
void fun_100084e4(uint32_t ecx) {
uint32_t edx2;
uint32_t edx3;
signed char* edi4;
signed char* esi5;
struct s108* edi6;
struct s109* esi7;
uint32_t ecx8;
struct s110* edi9;
struct s111* esi10;
int32_t* esi11;
struct s112* esi12;
int32_t* edi13;
struct s113* edi14;
edx2 = edx3 & ecx;
*edi4 = *esi5;
edi6->f1 = esi7->f1;
ecx8 = ecx >> 2;
edi9->f2 = esi10->f2;
esi11 = &esi12->f3;
edi13 = &edi14->f3;
if (ecx8 < 8)
goto 0x100084d0;
while (ecx8) {
--ecx8;
*edi13 = *esi11;
++edi13;
++esi11;
}
switch (edx2) {
case 3:
goto 0x100085f8;
case 2:
goto 0x100085e4;
case 1:
goto 0x100085d8;
case 0:
goto 0x100085d0;
}
}
struct s114 {
signed char[3] pad3;
signed char f3;
};
struct s115 {
signed char[3] pad3;
signed char f3;
};
void fun_10008670(uint32_t ecx) {
uint32_t edx2;
uint32_t edx3;
struct s114* edi4;
struct s115* esi5;
int32_t* esi6;
void* esi7;
uint32_t ecx8;
int32_t* edi9;
void* edi10;
edx2 = edx3 & ecx;
edi4->f3 = esi5->f3;
esi6 = reinterpret_cast<int32_t*>(reinterpret_cast<int32_t>(esi7) - 1);
ecx8 = ecx >> 2;
edi9 = reinterpret_cast<int32_t*>(reinterpret_cast<int32_t>(edi10) - 1);
if (ecx8 < 8)
goto 0x10008638;
while (ecx8) {
--ecx8;
*edi9 = *esi6;
--edi9;
--esi6;
}
switch (edx2) {
case 3:
goto 0x10008798;
case 2:
goto 0x10008784;
case 1:
goto 0x10008774;
case 0:
goto 0x1000876c;
}
}
void fun_10008710(int32_t ecx) {
void* edi2;
void* esi3;
void* edi4;
void* esi5;
void* edi6;
void* esi7;
void* edi8;
void* esi9;
void* edi10;
void* esi11;
void* edi12;
void* esi13;
void* edi14;
void* esi15;
*reinterpret_cast<int32_t*>(reinterpret_cast<int32_t>(edi2) + ecx * 4 + 28) = *reinterpret_cast<int32_t*>(reinterpret_cast<int32_t>(esi3) + ecx * 4 + 28);
*reinterpret_cast<int32_t*>(reinterpret_cast<int32_t>(edi4) + ecx * 4 + 24) = *reinterpret_cast<int32_t*>(reinterpret_cast<int32_t>(esi5) + ecx * 4 + 24);
*reinterpret_cast<int32_t*>(reinterpret_cast<int32_t>(edi6) + ecx * 4 + 20) = *reinterpret_cast<int32_t*>(reinterpret_cast<int32_t>(esi7) + ecx * 4 + 20);
*reinterpret_cast<int32_t*>(reinterpret_cast<int32_t>(edi8) + ecx * 4 + 16) = *reinterpret_cast<int32_t*>(reinterpret_cast<int32_t>(esi9) + ecx * 4 + 16);
*reinterpret_cast<int32_t*>(reinterpret_cast<int32_t>(edi10) + ecx * 4 + 12) = *reinterpret_cast<int32_t*>(reinterpret_cast<int32_t>(esi11) + ecx * 4 + 12);
*reinterpret_cast<int32_t*>(reinterpret_cast<int32_t>(edi12) + ecx * 4 + 8) = *reinterpret_cast<int32_t*>(reinterpret_cast<int32_t>(esi13) + ecx * 4 + 8);
*reinterpret_cast<int32_t*>(reinterpret_cast<int32_t>(edi14) + ecx * 4 + 4) = *reinterpret_cast<int32_t*>(reinterpret_cast<int32_t>(esi15) + ecx * 4 + 4);
}
struct s116 {
signed char[4] pad4;
int32_t f4;
};
void fun_10001588(int32_t ecx, int32_t a2, void** a3, void** a4) {
void** v5;
int32_t ebp6;
int32_t eax7;
int32_t ebp8;
int32_t ebp9;
int32_t ebp10;
int32_t ebp11;
int32_t ebp12;
int32_t ebp13;
int32_t ebx14;
uint32_t esi15;
int32_t ecx16;
int32_t ebp17;
int32_t edi18;
uint32_t edx19;
uint32_t edx20;
uint32_t edx21;
uint32_t eax22;
int32_t ebp23;
int32_t ebp24;
uint32_t eax25;
int32_t ebp26;
signed char dl27;
int32_t ebp28;
int32_t ebp29;
int32_t ebp30;
int32_t ebp31;
int32_t ebp32;
void** esi33;
void* ebp34;
int32_t edi35;
int32_t ebp36;
signed char bl37;
void* ebp38;
void** v39;
void* ebp40;
void** ecx41;
int32_t ebp42;
uint32_t ebp43;
struct s116* ebp44;
v5 = reinterpret_cast<void**>(__return_address());
do {
*reinterpret_cast<int32_t*>(ebp6 + eax7 * 4 - 0x5a8) = ecx;
*reinterpret_cast<int32_t*>(ebp8 + eax7 * 4 - 0x550) = ecx;
*reinterpret_cast<int32_t*>(ebp9 + eax7 * 4 - 0x4f8) = ecx;
*reinterpret_cast<int32_t*>(ebp10 + eax7 * 4 - 0x4a0) = ecx;
*reinterpret_cast<int32_t*>(ebp11 + eax7 * 4 - 0x448) = ecx;
*reinterpret_cast<int32_t*>(ebp12 + eax7 * 4 - 0x3f0) = ecx;
++eax7;
} while (eax7 < 22);
*reinterpret_cast<int32_t*>(ebp13 - 0x5ac) = ebx14;
esi15 = 0;
do {
ecx16 = *reinterpret_cast<int32_t*>(ebp17 - 0x5ac);
edi18 = 0;
do {
if (edi18 < 54) {
edx19 = (__intrinsic() >> 1) + esi15;
edx20 = edx19 + edx19;
edx21 = edx20 + edx20;
eax22 = *reinterpret_cast<unsigned char*>(ebp23 + edx21 - 0x5a8);
*reinterpret_cast<signed char*>(ebp24 + ecx16 - 0xce) = *reinterpret_cast<signed char*>(&eax22);
eax25 = *reinterpret_cast<unsigned char*>(ebp26 + edx21 - 0x5a7);
dl27 = *reinterpret_cast<signed char*>(ebp28 + edx21 - 0x5a6);
*reinterpret_cast<signed char*>(ebp29 + ecx16 - 0xcd) = *reinterpret_cast<signed char*>(&eax25);
*reinterpret_cast<signed char*>(ebp30 + ecx16 - 0xcc) = dl27;
}
edi18 = edi18 + 3;
ecx16 = ecx16 + 3;
} while (edi18 < 64);
*reinterpret_cast<int32_t*>(ebp31 - 0x5ac) = *reinterpret_cast<int32_t*>(ebp32 - 0x5ac) - 64;
esi15 = esi15 + 22;
} while (reinterpret_cast<int32_t>(esi15) < reinterpret_cast<int32_t>(0x84));
esi33 = reinterpret_cast<void**>(reinterpret_cast<int32_t>(ebp34) + 0xfffffde8);
edi35 = 6;
do {
*reinterpret_cast<signed char*>(ebp36 - 0x98) = bl37;
fun_10008450(reinterpret_cast<int32_t>(ebp38) + 0xffffff69, esi33, 64, v5, a2, a3, a4);
v39 = reinterpret_cast<void**>(reinterpret_cast<int32_t>(ebp40) + 0xffffff68);
HidD_SetFeature();
Sleep();
esi33 = esi33 + 64;
--edi35;
} while (edi35);
CloseHandle();
ecx41 = reinterpret_cast<void**>(*reinterpret_cast<uint32_t*>(ebp42 - 4) ^ ebp43);
fun_10001cc4(ecx41, v39, ecx41, v39);
goto ebp44->f4;
}
void fun_100015ca() {
}
void fun_100021a1() {
}
void fun_10002347(int32_t* ecx) {
*ecx = reinterpret_cast<int32_t>("R#");
goto fun_10004a27;
}
void** fun_10002379(void** ecx, void** a2, void** a3, void** a4) {
void** esi5;
void** ebp6;
fun_10004a59(ecx, a2, esi5, ebp6, __return_address(), a2, a3, a4);
*reinterpret_cast<void***>(ecx) = reinterpret_cast<void**>("R#");
return ecx;
}
void fun_1000362c() {
}
void fun_10004513() {
int32_t* edi1;
int32_t eax2;
edi1 = reinterpret_cast<int32_t*>(0x1000c328);
if (!1) {
do {
eax2 = *edi1;
if (eax2) {
eax2();
}
++edi1;
} while (reinterpret_cast<uint32_t>(edi1) < 0x1000c328);
}
return;
}
void** fun_1000576d(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15, void** a16, void** a17) {
int1_t zf18;
void** v19;
void** eax20;
fun_100081d2(ecx, __return_address(), a2, a3, a4);
zf18 = g1000e1d0 == 0;
if (!zf18) {
fun_10007fac(ecx, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13);
}
v19 = g1000eb04;
eax20 = fun_10002416(ecx, v19, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17);
return eax20;
}
struct s117 {
signed char[24] pad24;
void** f24;
signed char[3] pad28;
void** f28;
signed char[11] pad40;
void** f40;
};
void fun_10007446(struct s117* a1) {
void** v2;
void** v3;
void** v4;
v2 = a1->f28;
v3 = a1->f24;
v4 = a1->f40;
fun_10007370(v4, v3, v2);
return;
}
int32_t fun_10007611() {
return 1;
}
void fun_100077fe() {
}
int32_t fun_1000797b() {
int32_t edx1;
int32_t ebp2;
edx1 = 0;
*reinterpret_cast<unsigned char*>(&edx1) = reinterpret_cast<uint1_t>(***reinterpret_cast<int32_t***>(ebp2 - 20) == 0xc0000005);
return edx1;
}
void fun_10007dd8() {
}
void fun_10008241(int32_t ecx) {
}
int32_t IsProcessorFeaturePresent = 0xcd42;
void fun_1000829e() {
int32_t eax1;
eax1 = reinterpret_cast<int32_t>(IsProcessorFeaturePresent());
g1000eb00 = eax1;
goto 10;
}
struct s118 {
signed char[1] pad1;
signed char f1;
};
struct s119 {
signed char[1] pad1;
signed char f1;
};
struct s120 {
signed char[2] pad2;
int32_t f2;
};
struct s121 {
signed char[2] pad2;
int32_t f2;
};
void fun_1000850d(uint32_t ecx) {
uint32_t edx2;
uint32_t edx3;
signed char* edi4;
signed char* esi5;
uint32_t ecx6;
struct s118* edi7;
struct s119* esi8;
int32_t* esi9;
struct s120* esi10;
int32_t* edi11;
struct s121* edi12;
edx2 = edx3 & ecx;
*edi4 = *esi5;
ecx6 = ecx >> 2;
edi7->f1 = esi8->f1;
esi9 = &esi10->f2;
edi11 = &edi12->f2;
if (ecx6 < 8)
goto 0x100084d0;
while (ecx6) {
--ecx6;
*edi11 = *esi9;
++edi11;
++esi9;
}
switch (edx2) {
case 3:
goto 0x100085f8;
case 2:
goto 0x100085e4;
case 1:
goto 0x100085d8;
case 0:
goto 0x100085d0;
}
}
struct s122 {
signed char[1] pad1;
int32_t f1;
};
struct s123 {
signed char[1] pad1;
int32_t f1;
};
void fun_10008534(uint32_t ecx) {
uint32_t edx2;
uint32_t edx3;
signed char* edi4;
signed char* esi5;
int32_t* esi6;
struct s122* esi7;
uint32_t ecx8;
int32_t* edi9;
struct s123* edi10;
edx2 = edx3 & ecx;
*edi4 = *esi5;
esi6 = &esi7->f1;
ecx8 = ecx >> 2;
edi9 = &edi10->f1;
if (ecx8 < 8)
goto 0x100084d0;
while (ecx8) {
--ecx8;
*edi9 = *esi6;
++edi9;
++esi6;
}
switch (edx2) {
case 3:
goto 0x100085f8;
case 2:
goto 0x100085e4;
case 1:
goto 0x100085d8;
case 0:
goto 0x100085d0;
}
}
void fun_10008551(int32_t ecx) {
}
void fun_100085be() {
}
void fun_10008636() {
}
struct s124 {
signed char[3] pad3;
signed char f3;
};
struct s125 {
signed char[3] pad3;
signed char f3;
};
struct s126 {
signed char[2] pad2;
signed char f2;
};
struct s127 {
signed char[2] pad2;
signed char f2;
};
void fun_10008691(uint32_t ecx) {
uint32_t edx2;
uint32_t edx3;
struct s124* edi4;
struct s125* esi5;
uint32_t ecx6;
struct s126* edi7;
struct s127* esi8;
int32_t* esi9;
void* esi10;
int32_t* edi11;
void* edi12;
edx2 = edx3 & ecx;
edi4->f3 = esi5->f3;
ecx6 = ecx >> 2;
edi7->f2 = esi8->f2;
esi9 = reinterpret_cast<int32_t*>(reinterpret_cast<int32_t>(esi10) - 2);
edi11 = reinterpret_cast<int32_t*>(reinterpret_cast<int32_t>(edi12) - 2);
if (ecx6 < 8)
goto 0x10008638;
while (ecx6) {
--ecx6;
*edi11 = *esi9;
--edi11;
--esi9;
}
switch (edx2) {
case 3:
goto 0x10008798;
case 2:
goto 0x10008784;
case 1:
goto 0x10008774;
case 0:
goto 0x1000876c;
}
}
struct s128 {
signed char[3] pad3;
signed char f3;
};
struct s129 {
signed char[3] pad3;
signed char f3;
};
struct s130 {
signed char[2] pad2;
signed char f2;
};
struct s131 {
signed char[2] pad2;
signed char f2;
};
struct s132 {
signed char[1] pad1;
signed char f1;
};
struct s133 {
signed char[1] pad1;
signed char f1;
};
void fun_100086bc(uint32_t ecx) {
uint32_t edx2;
uint32_t edx3;
struct s128* edi4;
struct s129* esi5;
struct s130* edi6;
struct s131* esi7;
uint32_t ecx8;
struct s132* edi9;
struct s133* esi10;
int32_t* esi11;
void* esi12;
int32_t* edi13;
void* edi14;
edx2 = edx3 & ecx;
edi4->f3 = esi5->f3;
edi6->f2 = esi7->f2;
ecx8 = ecx >> 2;
edi9->f1 = esi10->f1;
esi11 = reinterpret_cast<int32_t*>(reinterpret_cast<int32_t>(esi12) - 3);
edi13 = reinterpret_cast<int32_t*>(reinterpret_cast<int32_t>(edi14) - 3);
if (ecx8 < 8)
goto 0x10008638;
while (ecx8) {
--ecx8;
*edi13 = *esi11;
--edi13;
--esi11;
}
switch (edx2) {
case 3:
goto 0x10008798;
case 2:
goto 0x10008784;
case 1:
goto 0x10008774;
case 0:
goto 0x1000876c;
}
}
void fun_100086ed(int32_t ecx) {
}
void fun_1000875a() {
}
void fun_10008d26() {
}
void* fun_10008ff0(int32_t ecx, signed char* a2, signed char* a3) {
void* eax4;
signed char* edx5;
signed char* esi6;
eax4 = reinterpret_cast<void*>(0);
edx5 = a3;
while (*edx5) {
++edx5;
__asm__("bts [esp], eax");
}
esi6 = a2;
do {
*reinterpret_cast<signed char*>(&eax4) = *esi6;
if (!*reinterpret_cast<signed char*>(&eax4))
break;
++esi6;
} while (!static_cast<int1_t>(0 >> reinterpret_cast<int32_t>(eax4)));
goto addr_10009027_7;
addr_1000902a_8:
return eax4;
addr_10009027_7:
eax4 = reinterpret_cast<void*>(esi6 - 1);
goto addr_1000902a_8;
}
int32_t fun_10009030(int32_t a1, uint32_t a2, int32_t a3, uint32_t a4) {
if (a4 | a2) {
return a1 * a3;
} else {
return a1 * a3;
}
}
void fun_100092fb() {
g1000de34 = reinterpret_cast<int32_t>("R#");
goto fun_10004a27;
}
void** SetLEDEffect(void** a1, void** a2, signed char a3, signed char a4, signed char a5, signed char a6) {
void* ebp7;
void** eax8;
uint32_t v9;
void** ecx10;
void** edi11;
void** ebx12;
void** v13;
void** v14;
void** v15;
void** v16;
void** v17;
void** ecx18;
void** eax19;
void** eax20;
void** esi21;
void** v22;
void** v23;
void** v24;
void** v25;
void** v26;
void** ecx27;
void** eax28;
ebp7 = reinterpret_cast<void*>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 4);
eax8 = g1000d050;
v9 = reinterpret_cast<unsigned char>(eax8) ^ reinterpret_cast<uint32_t>(ebp7);
ecx10 = reinterpret_cast<void**>(reinterpret_cast<uint32_t>(ebp7) + 0xffffffec);
fun_10001cd3(ecx10, ecx10, 5, "%04X", a1, edi11, ebx12, v13, v14, v15, v16);
v17 = reinterpret_cast<void**>(reinterpret_cast<uint32_t>(ebp7) + 0xfffffff4);
fun_10001cd3(ecx10, v17, 5, "%04X", a2, ecx10, 5, "%04X", a1, edi11, ebx12);
ecx18 = reinterpret_cast<void**>(reinterpret_cast<uint32_t>(ebp7) + 0xfffffff4);
eax19 = fun_10001140(ecx18, reinterpret_cast<uint32_t>(ebp7) + 0xffffffec, v17, 5, "%04X", a2, ecx10, 5, "%04X", a1, edi11, ebx12);
if (eax19 == 0xffffffff || !eax19) {
CloseHandle(ecx18);
eax20 = fun_10001cc4(v9 ^ reinterpret_cast<uint32_t>(ebp7), ebx12);
return eax20;
} else {
fun_10005bc0(ecx18, reinterpret_cast<uint32_t>(ebp7) + 0xffffffa8, 0, 67, esi21, edi11, ebx12, v22, v23, v24, v25, v26);
fun_10001070();
CloseHandle();
ecx27 = reinterpret_cast<void**>(v9 ^ reinterpret_cast<uint32_t>(ebp7));
eax28 = fun_10001cc4(ecx27, ebx12, ecx27, ebx12);
return eax28;
}
}
void** g1000eafc;
void** SetSoftwareControlLEDEffect(void** a1, void** a2, int32_t a3) {
void* ebp4;
void** eax5;
void** ecx6;
void** esi7;
void** ebx8;
void** v9;
void** v10;
void** v11;
void** v12;
void** v13;
void** ecx14;
void** eax15;
void** ecx16;
void** eax17;
int1_t zf18;
void** v19;
void** edi20;
void** v21;
void** v22;
void** v23;
void** v24;
void* v25;
int32_t edi26;
void** v27;
void** v28;
void** v29;
void** v30;
int32_t ecx31;
void* eax32;
ebp4 = reinterpret_cast<void*>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 4);
eax5 = g1000d050;
ecx6 = reinterpret_cast<void**>(reinterpret_cast<uint32_t>(ebp4) + 0xffffffec);
fun_10001cd3(ecx6, ecx6, 5, "%04X", a1, esi7, ebx8, v9, v10, v11, v12);
v13 = reinterpret_cast<void**>(reinterpret_cast<uint32_t>(ebp4) + 0xfffffff4);
fun_10001cd3(ecx6, v13, 5, "%04X", a2, ecx6, 5, "%04X", a1, esi7, ebx8);
ecx14 = reinterpret_cast<void**>(reinterpret_cast<uint32_t>(ebp4) + 0xfffffff4);
eax15 = fun_10001140(ecx14, reinterpret_cast<uint32_t>(ebp4) + 0xffffffec, v13, 5, "%04X", a2, ecx6, 5, "%04X", a1, esi7, ebx8);
if (eax15 == 0xffffffff || !eax15) {
CloseHandle(ecx14);
ecx16 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(eax5) ^ reinterpret_cast<uint32_t>(ebp4) ^ reinterpret_cast<uint32_t>(ebp4));
eax17 = fun_10001cc4(ecx16, ebx8, ecx16, ebx8);
return eax17;
} else {
zf18 = g1000eafc == 0;
if (zf18) {
v19 = reinterpret_cast<void**>(reinterpret_cast<uint32_t>(ebp4) + 0xffffffac);
fun_10005bc0(ecx14, v19, 0, 64, edi20, esi7, ebx8, eax15, v21, v22, v23, v24);
ecx14 = reinterpret_cast<void**>(reinterpret_cast<uint32_t>(ebp4) + 0xffffff69);
fun_10008450(ecx14, reinterpret_cast<uint32_t>(ebp4) + 0xffffffac, 64, v19, 0, 64, edi20);
v25 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(ebp4) + 0xffffff68);
HidD_SetFeature(eax15, v25, 65, edi20);
edi26 = Sleep;
edi26(1, eax15, v25, 65, edi20);
fun_100010d0(ecx14, 1, eax15, v25, 65, edi20);
edi26(1, 1, eax15, v25, 65, edi20);
g1000eafc = reinterpret_cast<void**>(1);
}
fun_10005bc0(ecx14, reinterpret_cast<uint32_t>(ebp4) + 0xfffffde9, 0, 0x17f, edi20, esi7, ebx8, eax15, v27, v28, v29, v30);
ecx31 = 0;
eax32 = reinterpret_cast<void*>(0);
do {
*reinterpret_cast<signed char*>(reinterpret_cast<uint32_t>(ebp4) + reinterpret_cast<uint32_t>(eax32) + 0xfffffdf0) = *reinterpret_cast<signed char*>(&ecx31);
*reinterpret_cast<int32_t*>(reinterpret_cast<uint32_t>(ebp4) + reinterpret_cast<uint32_t>(eax32) + 0xfffffde8) = 0x3a000000;
*reinterpret_cast<int32_t*>(reinterpret_cast<uint32_t>(ebp4) + reinterpret_cast<uint32_t>(eax32) + 0xfffffdec) = 0x16060301;
*reinterpret_cast<signed char*>(reinterpret_cast<uint32_t>(ebp4) + reinterpret_cast<uint32_t>(eax32) + 0xfffffdf1) = 0;
*reinterpret_cast<signed char*>(reinterpret_cast<uint32_t>(ebp4) + reinterpret_cast<uint32_t>(eax32) + 0xfffffc6b) = 15;
*reinterpret_cast<signed char*>(reinterpret_cast<uint32_t>(ebp4) + reinterpret_cast<uint32_t>(eax32) + 0xfffffc6c) = 1;
*reinterpret_cast<signed char*>(reinterpret_cast<uint32_t>(ebp4) + reinterpret_cast<uint32_t>(eax32) + 0xfffffc6d) = 3;
*reinterpret_cast<signed char*>(reinterpret_cast<uint32_t>(ebp4) + reinterpret_cast<uint32_t>(eax32) + 0xfffffc6e) = 6;
*reinterpret_cast<signed char*>(reinterpret_cast<uint32_t>(ebp4) + reinterpret_cast<uint32_t>(eax32) + 0xfffffc6f) = 22;
eax32 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(eax32) + 64);
++ecx31;
} while (reinterpret_cast<int32_t>(eax32) < reinterpret_cast<int32_t>(0x180));
goto 0x10001590;
}
}
void** SetLEDBackColor(void** a1, void** a2, signed char a3, signed char a4, signed char a5, signed char a6, signed char a7) {
void* ebp8;
void** eax9;
uint32_t v10;
void** ecx11;
void** ebx12;
void** v13;
void** v14;
void** v15;
void** v16;
void** v17;
void** v18;
void** v19;
void** ecx20;
void** v21;
void** eax22;
void** eax23;
void** esi24;
void** v25;
void** v26;
void** v27;
void** v28;
void** v29;
void** v30;
void** ecx31;
void** eax32;
ebp8 = reinterpret_cast<void*>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 4);
eax9 = g1000d050;
v10 = reinterpret_cast<unsigned char>(eax9) ^ reinterpret_cast<uint32_t>(ebp8);
ecx11 = reinterpret_cast<void**>(reinterpret_cast<uint32_t>(ebp8) + 0xffffffec);
fun_10001cd3(ecx11, ecx11, 5, "%04X", a1, ebx12, v13, v14, v15, v16, v17);
v18 = reinterpret_cast<void**>(reinterpret_cast<uint32_t>(ebp8) + 0xfffffff4);
fun_10001cd3(ecx11, v18, 5, "%04X", a2, ecx11, 5, "%04X", a1, ebx12, v19);
ecx20 = reinterpret_cast<void**>(reinterpret_cast<uint32_t>(ebp8) + 0xfffffff4);
eax22 = fun_10001140(ecx20, reinterpret_cast<uint32_t>(ebp8) + 0xffffffec, v18, 5, "%04X", a2, ecx11, 5, "%04X", a1, ebx12, v21);
if (eax22 == 0xffffffff || !eax22) {
CloseHandle(ecx20);
eax23 = fun_10001cc4(v10 ^ reinterpret_cast<uint32_t>(ebp8), ebx12);
return eax23;
} else {
fun_10005bc0(ecx20, reinterpret_cast<uint32_t>(ebp8) + 0xffffffa8, 0, 67, esi24, ebx12, v25, v26, v27, v28, v29, v30);
fun_10001070();
CloseHandle();
ecx31 = reinterpret_cast<void**>(v10 ^ reinterpret_cast<uint32_t>(ebp8));
eax32 = fun_10001cc4(ecx31, ebx12, ecx31, ebx12);
return eax32;
}
}
void** SetLEDBrightness(void** a1, void** a2, signed char a3, signed char a4, signed char a5) {
void* ebp6;
void** eax7;
uint32_t v8;
void** ecx9;
void** ebx10;
void** v11;
void** v12;
void** v13;
void** v14;
void** v15;
void** v16;
void** v17;
void** ecx18;
void** v19;
void** eax20;
void** eax21;
void** esi22;
void** v23;
void** v24;
void** v25;
void** v26;
void** v27;
void** v28;
void** ecx29;
void** eax30;
ebp6 = reinterpret_cast<void*>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 4);
eax7 = g1000d050;
v8 = reinterpret_cast<unsigned char>(eax7) ^ reinterpret_cast<uint32_t>(ebp6);
ecx9 = reinterpret_cast<void**>(reinterpret_cast<uint32_t>(ebp6) + 0xffffffec);
fun_10001cd3(ecx9, ecx9, 5, "%04X", a1, ebx10, v11, v12, v13, v14, v15);
v16 = reinterpret_cast<void**>(reinterpret_cast<uint32_t>(ebp6) + 0xfffffff4);
fun_10001cd3(ecx9, v16, 5, "%04X", a2, ecx9, 5, "%04X", a1, ebx10, v17);
ecx18 = reinterpret_cast<void**>(reinterpret_cast<uint32_t>(ebp6) + 0xfffffff4);
eax20 = fun_10001140(ecx18, reinterpret_cast<uint32_t>(ebp6) + 0xffffffec, v16, 5, "%04X", a2, ecx9, 5, "%04X", a1, ebx10, v19);
if (eax20 == 0xffffffff || !eax20) {
CloseHandle(ecx18);
eax21 = fun_10001cc4(v8 ^ reinterpret_cast<uint32_t>(ebp6), ebx10);
return eax21;
} else {
fun_10005bc0(ecx18, reinterpret_cast<uint32_t>(ebp6) + 0xffffffa8, 0, 67, esi22, ebx10, v23, v24, v25, v26, v27, v28);
fun_10001070();
CloseHandle();
ecx29 = reinterpret_cast<void**>(v8 ^ reinterpret_cast<uint32_t>(ebp6));
eax30 = fun_10001cc4(ecx29, ebx10, ecx29, ebx10);
return eax30;
}
}
void** SetLEDInputEffect(void** a1, void** a2, signed char a3, signed char a4, signed char a5) {
void* ebp6;
void** eax7;
uint32_t v8;
void** ecx9;
void** ebx10;
void** v11;
void** v12;
void** v13;
void** v14;
void** v15;
void** v16;
void** v17;
void** ecx18;
void** v19;
void** eax20;
void** eax21;
void** esi22;
void** v23;
void** v24;
void** v25;
void** v26;
void** v27;
void** v28;
void** ecx29;
void** eax30;
ebp6 = reinterpret_cast<void*>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 4);
eax7 = g1000d050;
v8 = reinterpret_cast<unsigned char>(eax7) ^ reinterpret_cast<uint32_t>(ebp6);
ecx9 = reinterpret_cast<void**>(reinterpret_cast<uint32_t>(ebp6) + 0xffffffec);
fun_10001cd3(ecx9, ecx9, 5, "%04X", a1, ebx10, v11, v12, v13, v14, v15);
v16 = reinterpret_cast<void**>(reinterpret_cast<uint32_t>(ebp6) + 0xfffffff4);
fun_10001cd3(ecx9, v16, 5, "%04X", a2, ecx9, 5, "%04X", a1, ebx10, v17);
ecx18 = reinterpret_cast<void**>(reinterpret_cast<uint32_t>(ebp6) + 0xfffffff4);
eax20 = fun_10001140(ecx18, reinterpret_cast<uint32_t>(ebp6) + 0xffffffec, v16, 5, "%04X", a2, ecx9, 5, "%04X", a1, ebx10, v19);
if (eax20 == 0xffffffff || !eax20) {
CloseHandle(ecx18);
eax21 = fun_10001cc4(v8 ^ reinterpret_cast<uint32_t>(ebp6), ebx10);
return eax21;
} else {
fun_10005bc0(ecx18, reinterpret_cast<uint32_t>(ebp6) + 0xffffffa8, 0, 67, esi22, ebx10, v23, v24, v25, v26, v27, v28);
fun_10001070();
CloseHandle();
ecx29 = reinterpret_cast<void**>(v8 ^ reinterpret_cast<uint32_t>(ebp6));
eax30 = fun_10001cc4(ecx29, ebx10, ecx29, ebx10);
return eax30;
}
}
void** SetLEDInputColor(void** a1, void** a2, signed char a3, signed char a4, signed char a5, signed char a6, signed char a7) {
void* ebp8;
void** eax9;
uint32_t v10;
void** ecx11;
void** edi12;
void** ebx13;
void** v14;
void** v15;
void** v16;
void** v17;
void** v18;
void** ecx19;
void** eax20;
void** eax21;
void** esi22;
void** v23;
void** v24;
void** v25;
void** v26;
void** v27;
void** ecx28;
void** eax29;
ebp8 = reinterpret_cast<void*>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 4);
eax9 = g1000d050;
v10 = reinterpret_cast<unsigned char>(eax9) ^ reinterpret_cast<uint32_t>(ebp8);
ecx11 = reinterpret_cast<void**>(reinterpret_cast<uint32_t>(ebp8) + 0xffffffec);
fun_10001cd3(ecx11, ecx11, 5, "%04X", a1, edi12, ebx13, v14, v15, v16, v17);
v18 = reinterpret_cast<void**>(reinterpret_cast<uint32_t>(ebp8) + 0xfffffff4);
fun_10001cd3(ecx11, v18, 5, "%04X", a2, ecx11, 5, "%04X", a1, edi12, ebx13);
ecx19 = reinterpret_cast<void**>(reinterpret_cast<uint32_t>(ebp8) + 0xfffffff4);
eax20 = fun_10001140(ecx19, reinterpret_cast<uint32_t>(ebp8) + 0xffffffec, v18, 5, "%04X", a2, ecx11, 5, "%04X", a1, edi12, ebx13);
if (eax20 == 0xffffffff || !eax20) {
CloseHandle(ecx19);
eax21 = fun_10001cc4(v10 ^ reinterpret_cast<uint32_t>(ebp8), ebx13);
return eax21;
} else {
fun_10005bc0(ecx19, reinterpret_cast<uint32_t>(ebp8) + 0xffffffa8, 0, 67, esi22, edi12, ebx13, v23, v24, v25, v26, v27);
fun_10001070();
CloseHandle();
ecx28 = reinterpret_cast<void**>(v10 ^ reinterpret_cast<uint32_t>(ebp8));
eax29 = fun_10001cc4(ecx28, ebx13, ecx28, ebx13);
return eax29;
}
}
void** SetLEDInputBrightness(void** a1, void** a2, signed char a3, signed char a4) {
void* ebp5;
void** eax6;
uint32_t v7;
void** ecx8;
void** ebx9;
void** v10;
void** v11;
void** v12;
void** v13;
void** v14;
void** v15;
void** v16;
void** ecx17;
void** v18;
void** eax19;
void** eax20;
void** esi21;
void** v22;
void** v23;
void** v24;
void** v25;
void** v26;
void** v27;
void** ecx28;
void** eax29;
ebp5 = reinterpret_cast<void*>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 4);
eax6 = g1000d050;
v7 = reinterpret_cast<unsigned char>(eax6) ^ reinterpret_cast<uint32_t>(ebp5);
ecx8 = reinterpret_cast<void**>(reinterpret_cast<uint32_t>(ebp5) + 0xffffffec);
fun_10001cd3(ecx8, ecx8, 5, "%04X", a1, ebx9, v10, v11, v12, v13, v14);
v15 = reinterpret_cast<void**>(reinterpret_cast<uint32_t>(ebp5) + 0xfffffff4);
fun_10001cd3(ecx8, v15, 5, "%04X", a2, ecx8, 5, "%04X", a1, ebx9, v16);
ecx17 = reinterpret_cast<void**>(reinterpret_cast<uint32_t>(ebp5) + 0xfffffff4);
eax19 = fun_10001140(ecx17, reinterpret_cast<uint32_t>(ebp5) + 0xffffffec, v15, 5, "%04X", a2, ecx8, 5, "%04X", a1, ebx9, v18);
if (eax19 == 0xffffffff || !eax19) {
CloseHandle(ecx17);
eax20 = fun_10001cc4(v7 ^ reinterpret_cast<uint32_t>(ebp5), ebx9);
return eax20;
} else {
fun_10005bc0(ecx17, reinterpret_cast<uint32_t>(ebp5) + 0xffffffa8, 0, 67, esi21, ebx9, v22, v23, v24, v25, v26, v27);
fun_10001070();
CloseHandle();
ecx28 = reinterpret_cast<void**>(v7 ^ reinterpret_cast<uint32_t>(ebp5));
eax29 = fun_10001cc4(ecx28, ebx9, ecx28, ebx9);
return eax29;
}
}
void** SetDebounceInfo(void** a1, void** a2, signed char a3) {
void* ebp4;
void** eax5;
uint32_t v6;
void** ecx7;
void** edi8;
void** ebx9;
void** v10;
void** v11;
void** v12;
void** v13;
void** v14;
void** ecx15;
void** eax16;
void** eax17;
void** esi18;
void** v19;
void** v20;
void** v21;
void** v22;
void** v23;
void** eax24;
ebp4 = reinterpret_cast<void*>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 4);
eax5 = g1000d050;
v6 = reinterpret_cast<unsigned char>(eax5) ^ reinterpret_cast<uint32_t>(ebp4);
ecx7 = reinterpret_cast<void**>(reinterpret_cast<uint32_t>(ebp4) + 0xffffffec);
fun_10001cd3(ecx7, ecx7, 5, "%04X", a1, edi8, ebx9, v10, v11, v12, v13);
v14 = reinterpret_cast<void**>(reinterpret_cast<uint32_t>(ebp4) + 0xfffffff4);
fun_10001cd3(ecx7, v14, 5, "%04X", a2, ecx7, 5, "%04X", a1, edi8, ebx9);
ecx15 = reinterpret_cast<void**>(reinterpret_cast<uint32_t>(ebp4) + 0xfffffff4);
eax16 = fun_10001140(ecx15, reinterpret_cast<uint32_t>(ebp4) + 0xffffffec, v14, 5, "%04X", a2, ecx7, 5, "%04X", a1, edi8, ebx9);
if (eax16 == 0xffffffff || !eax16) {
CloseHandle(ecx15);
eax17 = fun_10001cc4(v6 ^ reinterpret_cast<uint32_t>(ebp4), ebx9);
return eax17;
} else {
fun_10005bc0(ecx15, reinterpret_cast<uint32_t>(ebp4) + 0xffffffa8, 0, 67, esi18, edi8, ebx9, v19, v20, v21, v22, v23);
fun_10001070();
CloseHandle(ecx15);
eax24 = fun_10001cc4(v6 ^ reinterpret_cast<uint32_t>(ebp4), ebx9);
return eax24;
}
}
void** SetPollingRateInfo(void** a1, void** a2, signed char a3) {
void* ebp4;
void** eax5;
uint32_t v6;
void** ecx7;
void** edi8;
void** ebx9;
void** v10;
void** v11;
void** v12;
void** v13;
void** v14;
void** ecx15;
void** eax16;
void** eax17;
void** esi18;
void** v19;
void** v20;
void** v21;
void** v22;
void** v23;
void** eax24;
ebp4 = reinterpret_cast<void*>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 4);
eax5 = g1000d050;
v6 = reinterpret_cast<unsigned char>(eax5) ^ reinterpret_cast<uint32_t>(ebp4);
ecx7 = reinterpret_cast<void**>(reinterpret_cast<uint32_t>(ebp4) + 0xffffffec);
fun_10001cd3(ecx7, ecx7, 5, "%04X", a1, edi8, ebx9, v10, v11, v12, v13);
v14 = reinterpret_cast<void**>(reinterpret_cast<uint32_t>(ebp4) + 0xfffffff4);
fun_10001cd3(ecx7, v14, 5, "%04X", a2, ecx7, 5, "%04X", a1, edi8, ebx9);
ecx15 = reinterpret_cast<void**>(reinterpret_cast<uint32_t>(ebp4) + 0xfffffff4);
eax16 = fun_10001140(ecx15, reinterpret_cast<uint32_t>(ebp4) + 0xffffffec, v14, 5, "%04X", a2, ecx7, 5, "%04X", a1, edi8, ebx9);
if (eax16 == 0xffffffff || !eax16) {
CloseHandle(ecx15);
eax17 = fun_10001cc4(v6 ^ reinterpret_cast<uint32_t>(ebp4), ebx9);
return eax17;
} else {
fun_10005bc0(ecx15, reinterpret_cast<uint32_t>(ebp4) + 0xffffffa8, 0, 67, esi18, edi8, ebx9, v19, v20, v21, v22, v23);
fun_10001070();
CloseHandle(ecx15);
eax24 = fun_10001cc4(v6 ^ reinterpret_cast<uint32_t>(ebp4), ebx9);
return eax24;
}
}
void** OpenDevice(void** a1, void** a2) {
void*** ebp3;
void** eax4;
void** v5;
void** ecx6;
void** v7;
void** v8;
void** v9;
void** v10;
void** ebp11;
void** v12;
void** v13;
void** v14;
void** ecx15;
void** v16;
void** v17;
void** eax18;
void** eax19;
void** eax20;
ebp3 = reinterpret_cast<void***>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 4);
eax4 = g1000d050;
v5 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(eax4) ^ reinterpret_cast<uint32_t>(ebp3));
ecx6 = reinterpret_cast<void**>(ebp3 + 0xfffffff4);
fun_10001cd3(ecx6, ecx6, 5, "%04X", a1, v7, v8, v9, v10, v5, ebp11);
v12 = reinterpret_cast<void**>(ebp3 + 0xffffffec);
fun_10001cd3(ecx6, v12, 5, "%04X", a2, ecx6, 5, "%04X", a1, v13, v14);
ecx15 = reinterpret_cast<void**>(ebp3 + 0xffffffec);
eax18 = fun_10001140(ecx15, ebp3 + 0xfffffff4, v12, 5, "%04X", a2, ecx6, 5, "%04X", a1, v16, v17);
if (eax18 == 0xffffffff || !eax18) {
CloseHandle(ecx15, eax18);
eax19 = fun_10001cc4(reinterpret_cast<unsigned char>(v5) ^ reinterpret_cast<uint32_t>(ebp3), eax18);
return eax19;
} else {
CloseHandle(ecx15, eax18);
eax20 = fun_10001cc4(reinterpret_cast<unsigned char>(v5) ^ reinterpret_cast<uint32_t>(ebp3), eax18);
return eax20;
}
}
void fun_100021b7() {
goto 0x10002223;
}
void fun_10002324(void** a1, void** a2, void** a3) {
void** ebp4;
if (reinterpret_cast<int1_t>(a2 == 1)) {
fun_100048cf();
}
fun_1000222e(a3, a1, ebp4, __return_address(), a1, a2, a3);
return;
}
void** fun_10002301() {
void** ecx1;
int32_t ebp2;
void** v3;
void** eax4;
ecx1 = *reinterpret_cast<void***>(*reinterpret_cast<void***>(*reinterpret_cast<void***>(ebp2 - 20)));
v3 = *reinterpret_cast<void***>(ebp2 - 20);
eax4 = fun_100048a9(ecx1, ecx1, v3, __return_address());
return eax4;
}
void** fun_10002352(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13) {
void** esi14;
void** ebp15;
*reinterpret_cast<void***>(ecx) = reinterpret_cast<void**>("R#");
fun_10004a27(ecx, esi14, ebp15, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13);
if (*reinterpret_cast<unsigned char*>(&a2) & 1) {
fun_10001cb9(ecx, ecx, esi14, ebp15, __return_address());
}
return ecx;
}
struct s134 {
signed char[4] pad4;
int32_t f4;
};
int32_t fun_10004987(struct s134* ecx) {
int32_t eax2;
eax2 = ecx->f4;
if (!eax2) {
eax2 = reinterpret_cast<int32_t>("Unknown exception");
}
return eax2;
}
int32_t fun_100056bc(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7) {
void** eax8;
void** esi9;
void** eax10;
void* edx11;
int32_t ecx12;
uint32_t edx13;
int32_t* ecx14;
eax8 = g1000fb20;
if (eax8) {
if (reinterpret_cast<signed char>(eax8) >= reinterpret_cast<signed char>(20)) {
addr_100056db_3:
eax10 = fun_10003b2d(ecx, eax8, 4, esi9, __return_address(), a2, a3, a4, a5, a6, a7);
g1000eb04 = eax10;
if (eax10 || (g1000fb20 = reinterpret_cast<void**>(20), eax10 = fun_10003b2d(4, 20, 4, esi9, __return_address(), a2, a3, a4, a5, a6, a7), g1000eb04 = eax10, !!eax10)) {
edx11 = reinterpret_cast<void*>(0);
ecx12 = 0x1000d990;
while (*reinterpret_cast<int32_t*>(reinterpret_cast<int32_t>(edx11) + reinterpret_cast<unsigned char>(eax10)) = ecx12, ecx12 = ecx12 + 32, edx11 = reinterpret_cast<void*>(reinterpret_cast<int32_t>(edx11) + 4), ecx12 < 0x1000dc10) {
eax10 = g1000eb04;
}
edx13 = 0;
ecx14 = reinterpret_cast<int32_t*>(0x1000d9a0);
do {
if (*reinterpret_cast<int32_t*>(((edx13 & 31) << 6) + reinterpret_cast<int32_t>(*reinterpret_cast<int32_t**>((reinterpret_cast<int32_t>(edx13) >> 5) * 4 + 0x1000fb40))) == -1 || (*reinterpret_cast<int32_t*>(((edx13 & 31) << 6) + reinterpret_cast<int32_t>(*reinterpret_cast<int32_t**>((reinterpret_cast<int32_t>(edx13) >> 5) * 4 + 0x1000fb40))) == 0xfe || !*reinterpret_cast<int32_t*>(((edx13 & 31) << 6) + reinterpret_cast<int32_t>(*reinterpret_cast<int32_t**>((reinterpret_cast<int32_t>(edx13) >> 5) * 4 + 0x1000fb40))))) {
*ecx14 = 0xfe;
}
ecx14 = ecx14 + 8;
++edx13;
} while (reinterpret_cast<int32_t>(ecx14) < 0x1000da00);
return 0;
} else {
return 26;
}
} else {
eax8 = reinterpret_cast<void**>(20);
}
} else {
eax8 = reinterpret_cast<void**>(0x200);
}
g1000fb20 = eax8;
goto addr_100056db_3;
}
void fun_10002a25() {
}
struct s135 {
void* f0;
void* f4;
void* f8;
void* f12;
};
int32_t g1000fb28;
int32_t fun_100045d0(void** a1, void** a2, void** a3) {
void** v4;
void** ebx5;
void** ebx6;
uint32_t v7;
uint32_t esi8;
struct s135* esi9;
void** v10;
void** edi11;
void* eax12;
signed char v13;
int32_t v14;
void** edi15;
void** ecx16;
void** ecx17;
void** v18;
void** v19;
void*** eax20;
int32_t ecx21;
struct s56* eax22;
void** eax23;
int32_t eax24;
int1_t sf25;
void** ecx26;
void** ecx27;
int1_t zf28;
uint32_t eax29;
void** eax30;
void** ecx31;
void** ecx32;
void** ecx33;
v4 = ebx5;
ebx6 = a2;
v7 = esi8;
esi9 = reinterpret_cast<struct s135*>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(ebx6 + 8)) ^ reinterpret_cast<unsigned char>(g1000d050));
v10 = edi11;
eax12 = esi9->f0;
v13 = 0;
v14 = 1;
edi15 = ebx6 + 16;
if (eax12 != -2) {
ecx16 = reinterpret_cast<void**>(reinterpret_cast<int32_t>(esi9->f4) + reinterpret_cast<unsigned char>(edi15) ^ *reinterpret_cast<uint32_t*>(reinterpret_cast<int32_t>(eax12) + reinterpret_cast<unsigned char>(edi15)));
fun_10001cc4(ecx16, v10);
}
ecx17 = reinterpret_cast<void**>(reinterpret_cast<int32_t>(esi9->f12) + reinterpret_cast<unsigned char>(edi15) ^ *reinterpret_cast<uint32_t*>(reinterpret_cast<int32_t>(esi9->f8) + reinterpret_cast<unsigned char>(edi15)));
fun_10001cc4(ecx17, v10);
if (reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(a1 + 4)) & 0x66) {
addr_1000473f_4:
if (*reinterpret_cast<void***>(ebx6 + 12) == 0xfffffffe) {
addr_1000469c_5:
return v14;
} else {
fun_100074ab(ebx6, edi15, 0x1000d050);
}
} else {
*reinterpret_cast<void**>(ebx6 + 0xfffffffc) = reinterpret_cast<void*>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 4 - 24);
ebx6 = *reinterpret_cast<void***>(ebx6 + 12);
v18 = a1;
v19 = a3;
if (ebx6 == 0xfffffffe)
goto addr_1000469c_5;
do {
eax20 = reinterpret_cast<void***>(ebx6 + reinterpret_cast<unsigned char>(ebx6) * 2);
ecx21 = *reinterpret_cast<int32_t*>(reinterpret_cast<uint32_t>(esi9) + reinterpret_cast<uint32_t>(eax20) * 4 + 20);
eax22 = reinterpret_cast<struct s56*>(reinterpret_cast<uint32_t>(esi9) + reinterpret_cast<uint32_t>(eax20) * 4 + 16);
eax23 = eax22->f0;
if (ecx21) {
eax24 = fun_10007462(ecx21);
v13 = 1;
sf25 = eax24 < 0;
if (sf25)
goto addr_100046a6_11;
if (!reinterpret_cast<uint1_t>(reinterpret_cast<uint1_t>(sf25) | reinterpret_cast<uint1_t>(eax24 == 0)))
goto addr_100046af_13;
eax23 = eax23;
}
ebx6 = eax23;
} while (!reinterpret_cast<int1_t>(eax23 == 0xfffffffe));
goto addr_10004672_16;
}
addr_10004678_17:
if (esi9->f0 != -2) {
ecx26 = reinterpret_cast<void**>(reinterpret_cast<int32_t>(esi9->f4) + reinterpret_cast<unsigned char>(edi15) ^ *reinterpret_cast<uint32_t*>(reinterpret_cast<int32_t>(esi9->f0) + reinterpret_cast<unsigned char>(edi15)));
fun_10001cc4(ecx26, v10, ecx26, v10);
}
ecx27 = reinterpret_cast<void**>(reinterpret_cast<int32_t>(esi9->f12) + reinterpret_cast<unsigned char>(edi15) ^ *reinterpret_cast<uint32_t*>(reinterpret_cast<int32_t>(esi9->f8) + reinterpret_cast<unsigned char>(edi15)));
fun_10001cc4(ecx27, v10, ecx27, v10);
goto addr_1000469c_5;
addr_10004672_16:
if (!v13)
goto addr_1000469c_5; else
goto addr_10004678_17;
addr_100046a6_11:
v14 = 0;
goto addr_10004678_17;
addr_100046af_13:
if (reinterpret_cast<int1_t>(*reinterpret_cast<void***>(a1) == 0xe06d7363) && ((zf28 = g1000fb28 == 0, !zf28) && (eax29 = fun_100078f0(a1, 0x1000fb28), !!eax29))) {
g1000fb28(a1, 1);
}
fun_10007492(a2);
eax30 = a2;
if (*reinterpret_cast<void***>(eax30 + 12) != ebx6) {
fun_100074ab(eax30, edi15, 0x1000d050);
eax30 = a2;
}
*reinterpret_cast<void***>(eax30 + 12) = eax23;
if (esi9->f0 != -2) {
ecx31 = reinterpret_cast<void**>(reinterpret_cast<int32_t>(esi9->f4) + reinterpret_cast<unsigned char>(edi15) ^ *reinterpret_cast<uint32_t*>(reinterpret_cast<int32_t>(esi9->f0) + reinterpret_cast<unsigned char>(edi15)));
fun_10001cc4(ecx31, v10, ecx31, v10);
}
ecx32 = reinterpret_cast<void**>(reinterpret_cast<int32_t>(esi9->f12) + reinterpret_cast<unsigned char>(edi15) ^ *reinterpret_cast<uint32_t*>(reinterpret_cast<int32_t>(esi9->f8) + reinterpret_cast<unsigned char>(edi15)));
fun_10001cc4(ecx32, v10, ecx32, v10);
ecx33 = eax22->f8;
fun_10007479(ecx33, v10, v7, v4, v18, v19, eax22);
goto addr_1000473f_4;
}
uint32_t fun_10003aa3() {
int32_t eax1;
int32_t eax2;
uint32_t eax3;
int32_t eax4;
uint1_t cf5;
return (eax1 - (eax2 + reinterpret_cast<uint1_t>(eax3 < eax4 + cf5)) << 1) + 1;
}
void fun_10003516() {
TlsAlloc();
return;
}
void fun_10004b34(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7) {
void** esi8;
void** eax9;
void** eax10;
eax9 = fun_10003b2d(ecx, 32, 4, esi8, __return_address(), a2, a3, a4, a5, a6, a7);
eax10 = reinterpret_cast<void**>(EncodePointer(4));
g1000fc48 = eax10;
g1000fc44 = eax10;
if (eax9) {
*reinterpret_cast<void***>(eax9) = reinterpret_cast<void**>(0);
goto esi8;
} else {
goto esi8;
}
}
void fun_1000560c() {
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0xcc);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0xbc);
/* (image base) */
int32_t image_base_ = 0x100081db;
struct s136 {
signed char[112] pad112;
uint32_t f112;
};
void** fun_10005ccf(void** a1, void** a2, void** a3, void*** a4) {
void* ebp5;
void** eax6;
uint32_t v7;
void** v8;
void** ebx9;
void** ebx10;
void** v11;
void** esi12;
void** v13;
void** edi14;
void*** edi15;
void** ecx16;
void** v17;
void*** v18;
void** v19;
void** v20;
void** v21;
void** v22;
void** v23;
void** v24;
void** v25;
void** v26;
void** v27;
void** v28;
void** v29;
void** v30;
void** v31;
void** v32;
void** v33;
void** v34;
void** v35;
void** v36;
void** v37;
void** v38;
void** eax39;
void** v40;
void** v41;
void** v42;
void** v43;
void** v44;
void** eax45;
void** edx46;
void** eax47;
void** v48;
void** v49;
void** v50;
void** v51;
void** v52;
void** ebx53;
void** v54;
uint32_t eax55;
uint32_t eax56;
uint32_t eax57;
void** eax58;
uint32_t eax59;
void** v60;
void** v61;
void** al62;
void** v63;
int32_t eax64;
int32_t eax65;
uint32_t eax66;
uint32_t eax67;
void*** edi68;
void** edi69;
void*** edi70;
void** edi71;
void** al72;
int32_t eax73;
int32_t eax74;
int32_t eax75;
void** v76;
int32_t eax77;
int32_t eax78;
void** eax79;
void** eax80;
void** v81;
void** v82;
void** eax83;
uint32_t eax84;
void** ebx85;
void** v86;
void** esi87;
void** v88;
void** v89;
void** v90;
void** eax91;
int32_t eax92;
void*** edi93;
void** edi94;
void** eax95;
void** eax96;
void** eax97;
void** eax98;
void*** edi99;
void** eax100;
uint1_t less101;
uint1_t cf102;
void** edi103;
void** ebx104;
uint32_t eax105;
void* esi106;
void** eax107;
void** eax108;
void** eax109;
void** esi110;
void** v111;
void** v112;
void** v113;
void** v114;
void** v115;
void** v116;
void** v117;
void** ecx118;
void** eax119;
void** edi120;
void** ebx121;
void** edi122;
void** esi123;
uint32_t eax124;
void** eax125;
void** v126;
void** v127;
void** edi128;
void** esi129;
int32_t eax130;
int32_t esi131;
void*** edi132;
int32_t v133;
void* v134;
int32_t v135;
int32_t eax136;
uint32_t edi137;
int32_t eax138;
int32_t eax139;
void*** edi140;
uint32_t v141;
void** eax142;
int32_t eax143;
int32_t eax144;
signed char v145;
struct s136* v146;
void** v147;
void** v148;
void** eax149;
signed char v150;
void** v151;
void** ecx152;
void** eax153;
ebp5 = reinterpret_cast<void*>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 4);
eax6 = g1000d050;
v7 = reinterpret_cast<unsigned char>(eax6) ^ reinterpret_cast<uint32_t>(ebp5);
v8 = ebx9;
ebx10 = a2;
v11 = esi12;
v13 = edi14;
edi15 = a4;
ecx16 = reinterpret_cast<void**>(reinterpret_cast<uint32_t>(ebp5) + 0xfffffdac);
v17 = a1;
v18 = edi15;
v19 = reinterpret_cast<void**>(0);
v20 = reinterpret_cast<void**>(0);
v21 = reinterpret_cast<void**>(0);
v22 = reinterpret_cast<void**>(0);
v23 = reinterpret_cast<void**>(0);
v24 = reinterpret_cast<void**>(0);
v25 = reinterpret_cast<void**>(0);
fun_10001d91(ecx16, a3, v13, v11, v8, v26, v27, v28, v29, v30, v31);
eax39 = fun_10002896(ecx16, v13, v11, v8, v32, v33, v34, v35, v36, v37, v38);
v40 = eax39;
if (!a1)
goto addr_10005d45_2;
if (!(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(a1 + 12)) & 64)) {
eax45 = fun_1000586b(ecx16, a1, v13, v11, v8, v41, v42, v43, v44);
edx46 = reinterpret_cast<void**>(0x1000d950);
if (eax45 == 0xffffffff || eax45 == 0xfffffffe) {
ecx16 = reinterpret_cast<void**>(0x1000d950);
} else {
ecx16 = reinterpret_cast<void**>(((reinterpret_cast<unsigned char>(eax45) & 31) << 6) + reinterpret_cast<uint32_t>(*reinterpret_cast<void****>((reinterpret_cast<signed char>(eax45) >> 5) * 4 + 0x1000fb40)));
}
if (reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(ecx16 + 36)) & 0x7f)
goto addr_10005d45_2;
if (eax45 == 0xffffffff || eax45 == 0xfffffffe) {
eax47 = reinterpret_cast<void**>(0x1000d950);
} else {
ecx16 = reinterpret_cast<void**>(reinterpret_cast<signed char>(eax45) >> 5);
eax47 = reinterpret_cast<void**>(((reinterpret_cast<unsigned char>(eax45) & 31) << 6) + reinterpret_cast<uint32_t>(*reinterpret_cast<void****>(reinterpret_cast<unsigned char>(ecx16) * 4 + 0x1000fb40)));
}
if (reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(eax47 + 36)) & 0x80)
goto addr_10005d45_2;
}
if (!ebx10)
goto addr_10005d45_2;
edx46 = *reinterpret_cast<void***>(ebx10);
v48 = reinterpret_cast<void**>(0);
v49 = reinterpret_cast<void**>(0);
v50 = reinterpret_cast<void**>(0);
v51 = reinterpret_cast<void**>(0);
v52 = edx46;
if (!edx46)
goto addr_100068b8_14;
while (ebx53 = ebx10 + 1, v54 = ebx53, reinterpret_cast<signed char>(v48) >= reinterpret_cast<signed char>(0)) {
eax55 = reinterpret_cast<uint32_t>(edx46 + 0xffffffe0);
if (*reinterpret_cast<unsigned char*>(&eax55) > 88) {
eax56 = 0;
} else {
eax56 = static_cast<uint32_t>(*reinterpret_cast<unsigned char*>(edx46 + 0x1000a6b8)) & 15;
}
ecx16 = v50;
eax57 = *reinterpret_cast<unsigned char*>(reinterpret_cast<uint32_t>(ecx16 + eax56 * 9) + 0x1000a6d8);
eax58 = reinterpret_cast<void**>(eax57 >> 4);
v50 = eax58;
if (eax58 == 8)
goto addr_10005d45_2;
ecx16 = reinterpret_cast<void**>(7);
switch (eax58) {
addr_1000606b_22:
case 0:
v25 = reinterpret_cast<void**>(0);
eax59 = fun_10005acd(7, static_cast<uint32_t>(reinterpret_cast<unsigned char>(edx46)), reinterpret_cast<uint32_t>(ebp5) + 0xfffffdac, v13);
if (!eax59)
goto addr_100060b0_23;
ecx16 = v17;
fun_10005c3a(ecx16, v13, v11, v8, v60, v61);
al62 = *reinterpret_cast<void***>(ebx53);
v54 = ebx53 + 1;
if (!al62)
goto addr_10005d45_2;
addr_100060b0_23:
ecx16 = v17;
fun_10005c3a(ecx16, v13, v11, v8, v60, v61);
goto addr_10006881_25;
case 1:
v22 = reinterpret_cast<void**>(0xffffffff);
v63 = reinterpret_cast<void**>(0);
v24 = reinterpret_cast<void**>(0);
v21 = reinterpret_cast<void**>(0);
v23 = reinterpret_cast<void**>(0);
v20 = reinterpret_cast<void**>(0);
v25 = reinterpret_cast<void**>(0);
goto addr_10006881_25;
case 2:
eax64 = reinterpret_cast<int32_t>(edx46 - 32);
if (!eax64) {
v20 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(v20) | 2);
goto addr_10006881_25;
} else {
eax65 = eax64 - 3;
if (!eax65) {
v20 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(v20) | 0x80);
goto addr_10006881_25;
} else {
eax66 = eax65 - reinterpret_cast<unsigned char>(8);
if (!eax66) {
v20 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(v20) | 1);
goto addr_10006881_25;
} else {
eax67 = eax66 - 1 - 1;
if (!eax67) {
v20 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(v20) | 4);
goto addr_10006881_25;
} else {
if (!(eax67 - 3)) {
v20 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(v20) | reinterpret_cast<unsigned char>(8));
goto addr_10006881_25;
}
}
}
}
}
case 3:
if (!reinterpret_cast<int1_t>(edx46 == 42)) {
ecx16 = reinterpret_cast<void**>(static_cast<int32_t>(reinterpret_cast<signed char>(edx46)));
v21 = reinterpret_cast<void**>(reinterpret_cast<uint32_t>(ecx16 + reinterpret_cast<unsigned char>(v21) * 10) + 0xffffffd0);
goto addr_10006881_25;
} else {
edi68 = edi15 + 4;
v18 = edi68;
edi69 = *(edi68 - 4);
v21 = edi69;
if (reinterpret_cast<signed char>(edi69) < reinterpret_cast<signed char>(0)) {
v20 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(v20) | 4);
v21 = reinterpret_cast<void**>(-reinterpret_cast<unsigned char>(v21));
goto addr_10006881_25;
}
}
case 4:
v22 = reinterpret_cast<void**>(0);
goto addr_10006881_25;
case 5:
if (!reinterpret_cast<int1_t>(edx46 == 42)) {
ecx16 = reinterpret_cast<void**>(static_cast<int32_t>(reinterpret_cast<signed char>(edx46)));
v22 = reinterpret_cast<void**>(reinterpret_cast<uint32_t>(ecx16 + reinterpret_cast<unsigned char>(v22) * 10) + 0xffffffd0);
goto addr_10006881_25;
} else {
edi70 = edi15 + 4;
v18 = edi70;
edi71 = *(edi70 - 4);
v22 = edi71;
if (reinterpret_cast<signed char>(edi71) < reinterpret_cast<signed char>(0)) {
v22 = reinterpret_cast<void**>(0xffffffff);
goto addr_10006881_25;
}
}
case 6:
if (edx46 != 73) {
if (edx46 == 0x68) {
v20 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(v20) | 32);
goto addr_10006881_25;
} else {
if (edx46 == 0x6c) {
if (!reinterpret_cast<int1_t>(*reinterpret_cast<void***>(ebx53) == 0x6c)) {
v20 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(v20) | 16);
goto addr_10006881_25;
} else {
v20 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(v20) | 0x1000);
v54 = ebx53 + 1;
goto addr_10006881_25;
}
} else {
if (reinterpret_cast<int1_t>(edx46 == 0x77)) {
v20 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(v20) | 0x800);
goto addr_10006881_25;
}
}
}
}
if (reinterpret_cast<int1_t>(*reinterpret_cast<void***>(ebx53) == 54) && reinterpret_cast<int1_t>(*reinterpret_cast<void***>(ebx53 + 1) == 52)) {
v20 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(v20) | 0x8000);
v54 = ebx53 + 2;
goto addr_10006881_25;
}
if (reinterpret_cast<int1_t>(*reinterpret_cast<void***>(ebx53) == 51) && reinterpret_cast<int1_t>(*reinterpret_cast<void***>(ebx53 + 1) == 50)) {
v20 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(v20) & 0xffff7fff);
v54 = ebx53 + 2;
goto addr_10006881_25;
}
if (*reinterpret_cast<void***>(ebx53) == 100 || (*reinterpret_cast<void***>(ebx53) == 0x69 || (*reinterpret_cast<void***>(ebx53) == 0x6f || (*reinterpret_cast<void***>(ebx53) == 0x75 || (*reinterpret_cast<void***>(ebx53) == 0x78 || *reinterpret_cast<void***>(ebx53) == 88))))) {
addr_10006881_25:
ebx10 = v54;
al72 = *reinterpret_cast<void***>(ebx10);
v52 = al72;
if (!al72)
goto addr_100068a2_60;
} else {
v50 = reinterpret_cast<void**>(0);
goto addr_1000606b_22;
}
edi15 = v18;
edx46 = al72;
break;
case 7:
eax73 = reinterpret_cast<signed char>(edx46);
if (eax73 > 100) {
if (eax73 > 0x70) {
eax74 = eax73 - 0x73;
if (!eax74) {
addr_10006145_66:
ecx16 = v22;
if (reinterpret_cast<int1_t>(ecx16 == 0xffffffff)) {
ecx16 = reinterpret_cast<void**>(0x7fffffff);
}
} else {
eax75 = eax74 - 1 - 1;
if (!eax75) {
addr_10006334_69:
v76 = reinterpret_cast<void**>(10);
goto addr_1000633e_70;
} else {
if (eax75 - 3)
goto addr_100066a0_72;
edi15 = v18;
v19 = reinterpret_cast<void**>(39);
goto addr_100064f2_74;
}
}
} else {
if (eax73 == 0x70) {
v22 = reinterpret_cast<void**>(8);
goto addr_100064c0_77;
} else {
if (eax73 < 0x65)
goto addr_100066a0_72;
if (eax73 <= 0x67)
goto addr_1000635d_80; else
goto addr_100062aa_81;
}
}
} else {
if (eax73 == 100) {
addr_1000632d_83:
v20 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(v20) | 64);
goto addr_10006334_69;
} else {
if (eax73 > 83) {
eax77 = eax73 - 88;
if (!eax77) {
addr_100064c0_77:
v19 = reinterpret_cast<void**>(7);
goto addr_100064f2_74;
} else {
eax78 = eax77 - 1 - 1;
if (!eax78) {
eax79 = *edi15;
v18 = edi15 + 4;
if (!eax79 || (ecx16 = *reinterpret_cast<void***>(eax79 + 4), ecx16 == 0)) {
eax80 = image_base_;
v81 = eax80;
v82 = eax80;
goto addr_1000627e_89;
} else {
eax83 = reinterpret_cast<void**>(static_cast<int32_t>(reinterpret_cast<int16_t>(*reinterpret_cast<void***>(eax79))));
v81 = ecx16;
if (!(reinterpret_cast<unsigned char>(v20) & 0x800)) {
v25 = reinterpret_cast<void**>(0);
goto addr_1000669a_92;
} else {
__asm__("cdq ");
eax83 = reinterpret_cast<void**>(reinterpret_cast<int32_t>(reinterpret_cast<unsigned char>(eax83) - reinterpret_cast<unsigned char>(edx46)) >> 1);
v25 = reinterpret_cast<void**>(1);
goto addr_1000669a_92;
}
}
} else {
eax84 = eax78 - reinterpret_cast<unsigned char>(7);
if (!eax84) {
addr_10006363_95:
v20 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(v20) | 64);
ebx85 = reinterpret_cast<void**>(reinterpret_cast<uint32_t>(ebp5) + 0xfffffdf4);
v81 = ebx85;
v86 = reinterpret_cast<void**>(0x200);
if (reinterpret_cast<signed char>(v22) >= reinterpret_cast<signed char>(0)) {
if (v22) {
if (reinterpret_cast<signed char>(v22) > reinterpret_cast<signed char>(0x200)) {
v22 = reinterpret_cast<void**>(0x200);
}
if (reinterpret_cast<signed char>(v22) > reinterpret_cast<signed char>(0xa3)) {
esi87 = v22 + 0x15d;
eax91 = fun_10003ae8(7, esi87, v13, v11, v8, v60, v61, v88, v63, v89, v90, 0x200, v40, v51, v24);
edx46 = v52;
ecx16 = esi87;
v51 = eax91;
if (!eax91) {
v22 = reinterpret_cast<void**>(0xa3);
goto addr_10006400_102;
} else {
v81 = eax91;
v86 = esi87;
ebx85 = eax91;
goto addr_10006400_102;
}
}
} else {
if (reinterpret_cast<int1_t>(edx46 == 0x67)) {
v22 = reinterpret_cast<void**>(1);
goto addr_10006400_102;
}
}
} else {
v22 = reinterpret_cast<void**>(6);
goto addr_10006400_102;
}
} else {
if (eax84 - 1 - 1)
goto addr_100066a0_72;
edi15 = v18;
goto addr_100061be_109;
}
}
}
} else {
if (eax73 == 83) {
if (!(reinterpret_cast<unsigned char>(v20) & 0x830)) {
v20 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(v20) | 0x800);
goto addr_10006145_66;
}
}
eax92 = eax73 - 65;
if (!eax92)
goto addr_100060f8_114; else
goto addr_100060e8_115;
}
}
}
edi93 = edi15 + 4;
v18 = edi93;
edi94 = *(edi93 - 4);
v81 = edi94;
if (!(reinterpret_cast<unsigned char>(v20) & 0x810)) {
if (!edi94) {
eax95 = image_base_;
v81 = eax95;
}
eax96 = v81;
while (ecx16 && (--ecx16, !!*reinterpret_cast<void***>(eax96))) {
++eax96;
}
eax83 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(eax96) - reinterpret_cast<unsigned char>(v81));
} else {
if (!edi94) {
eax97 = image_base_;
v81 = eax97;
}
eax98 = v81;
v25 = reinterpret_cast<void**>(1);
while (ecx16 && (--ecx16, !!*reinterpret_cast<void***>(eax98))) {
eax98 = eax98 + 2;
}
eax83 = reinterpret_cast<void**>(reinterpret_cast<int32_t>(reinterpret_cast<unsigned char>(eax98) - reinterpret_cast<unsigned char>(v81)) >> 1);
}
addr_1000669a_92:
v49 = eax83;
goto addr_100066a0_72;
addr_1000633e_70:
ecx16 = v20;
if (reinterpret_cast<unsigned char>(ecx16) & 0x8000 || reinterpret_cast<unsigned char>(ecx16) & 0x1000) {
edi99 = reinterpret_cast<void***>(reinterpret_cast<uint32_t>(edi15) + reinterpret_cast<unsigned char>(8));
eax100 = *(edi99 - 8);
edx46 = *(edi99 - 4);
} else {
edi99 = edi15 + 4;
if (!(*reinterpret_cast<unsigned char*>(&ecx16) & 32)) {
eax100 = *(edi99 - 4);
if (!(*reinterpret_cast<unsigned char*>(&ecx16) & 64)) {
edx46 = reinterpret_cast<void**>(0);
} else {
__asm__("cdq ");
}
} else {
v18 = edi99;
if (!(*reinterpret_cast<unsigned char*>(&ecx16) & 64)) {
eax100 = reinterpret_cast<void**>(static_cast<uint32_t>(reinterpret_cast<uint16_t>(*(edi99 - 4))));
} else {
eax100 = reinterpret_cast<void**>(static_cast<int32_t>(reinterpret_cast<int16_t>(*(edi99 - 4))));
}
__asm__("cdq ");
goto addr_1000656c_138;
}
}
v18 = edi99;
addr_1000656c_138:
if (*reinterpret_cast<unsigned char*>(&ecx16) & 64 && ((less101 = reinterpret_cast<uint1_t>(reinterpret_cast<signed char>(edx46) < reinterpret_cast<signed char>(0)), reinterpret_cast<uint1_t>(less101 | reinterpret_cast<uint1_t>(edx46 == 0))) && (less101 || !1))) {
cf102 = reinterpret_cast<uint1_t>(!!eax100);
eax100 = reinterpret_cast<void**>(-reinterpret_cast<unsigned char>(eax100));
edx46 = reinterpret_cast<void**>(-(reinterpret_cast<unsigned char>(edx46) + cf102));
v20 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(v20) | 0x100);
}
edi103 = edx46;
ebx104 = eax100;
if (!(reinterpret_cast<unsigned char>(v20) & 0x9000)) {
edi103 = reinterpret_cast<void**>(0);
}
if (reinterpret_cast<signed char>(v22) >= reinterpret_cast<signed char>(0)) {
v20 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(v20) & 0xfffffff7);
if (reinterpret_cast<signed char>(v22) > reinterpret_cast<signed char>(0x200)) {
v22 = reinterpret_cast<void**>(0x200);
}
} else {
v22 = reinterpret_cast<void**>(1);
}
eax105 = reinterpret_cast<unsigned char>(ebx104) | reinterpret_cast<unsigned char>(edi103);
if (!eax105) {
v23 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(v23) & eax105);
}
esi106 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(ebp5) + 0xfffffff3);
while ((eax107 = v22, --v22, !reinterpret_cast<uint1_t>(reinterpret_cast<uint1_t>(reinterpret_cast<signed char>(eax107) < reinterpret_cast<signed char>(0)) | reinterpret_cast<uint1_t>(eax107 == 0))) || reinterpret_cast<unsigned char>(ebx104) | reinterpret_cast<unsigned char>(edi103)) {
__asm__("cdq ");
eax108 = fun_10005b20(ebx104, edi103, v76, edx46);
ecx16 = ecx16 + 48;
v86 = ebx104;
ebx104 = eax108;
edi103 = edx46;
if (reinterpret_cast<signed char>(ecx16) > reinterpret_cast<signed char>(57)) {
ecx16 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(ecx16) + reinterpret_cast<unsigned char>(v19));
}
esi106 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(esi106) - 1);
}
eax109 = reinterpret_cast<void**>(reinterpret_cast<uint32_t>(ebp5) + 0xfffffff3 - reinterpret_cast<uint32_t>(esi106));
esi110 = reinterpret_cast<void**>(reinterpret_cast<uint32_t>(esi106) + 1);
v49 = eax109;
v81 = esi110;
if (!(reinterpret_cast<unsigned char>(v20) & 0x200) || eax109 && (ecx16 = esi110, v111 == 48)) {
addr_100066a0_72:
if (v24) {
addr_10006865_155:
if (v51) {
v112 = v51;
fun_10002416(ecx16, v112, v13, v11, v8, v60, v61, v113, v63, v89, v114, v86, v40, v51, v24, v19, v115, v116, v117);
v51 = reinterpret_cast<void**>(0);
ecx16 = v112;
goto addr_10006881_25;
}
} else {
ecx118 = v20;
if (!(*reinterpret_cast<unsigned char*>(&ecx118) & 64))
goto addr_100066ed_158;
if (reinterpret_cast<unsigned char>(ecx118) & 0x100)
goto addr_100066c0_160;
}
} else {
--v81;
ecx16 = v81;
eax83 = eax109 + 1;
goto addr_1000669a_92;
}
if (!(*reinterpret_cast<unsigned char*>(&ecx118) & 1)) {
if (!(*reinterpret_cast<unsigned char*>(&ecx118) & 2)) {
addr_100066ed_158:
eax119 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(v21) - reinterpret_cast<unsigned char>(v49) - reinterpret_cast<unsigned char>(v23));
v86 = eax119;
if (!(*reinterpret_cast<unsigned char*>(&ecx118) & 12)) {
edi120 = eax119;
do {
if (reinterpret_cast<uint1_t>(reinterpret_cast<uint1_t>(reinterpret_cast<signed char>(edi120) < reinterpret_cast<signed char>(0)) | reinterpret_cast<uint1_t>(edi120 == 0)))
break;
ecx118 = v17;
--edi120;
fun_10005c3a(ecx118, v13, v11, v8, v60, v61);
} while (v48 != 0xffffffff);
}
} else {
goto addr_100066e3_168;
}
} else {
goto addr_100066e3_168;
}
ebx121 = v17;
fun_10005c6d(ecx118);
ecx16 = v23;
if (*reinterpret_cast<unsigned char*>(&v20) & 8 && !(*reinterpret_cast<unsigned char*>(&v20) & 4)) {
edi122 = v86;
do {
if (reinterpret_cast<uint1_t>(reinterpret_cast<uint1_t>(reinterpret_cast<signed char>(edi122) < reinterpret_cast<signed char>(0)) | reinterpret_cast<uint1_t>(edi122 == 0)))
break;
ecx16 = ebx121;
--edi122;
fun_10005c3a(ecx16, v13, v11, v8, v60, v61);
} while (v48 != 0xffffffff);
}
if (!v25 || reinterpret_cast<uint1_t>(reinterpret_cast<signed char>(v49) < reinterpret_cast<signed char>(0)) | reinterpret_cast<uint1_t>(v49 == 0)) {
fun_10005c6d(ecx16);
ecx16 = v49;
} else {
esi123 = v81;
v89 = v49;
do {
eax124 = reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(esi123));
--v89;
esi123 = esi123 + 2;
eax125 = fun_10005ab0(ecx16, reinterpret_cast<uint32_t>(ebp5) + 0xfffffd88, reinterpret_cast<uint32_t>(ebp5) + 0xfffffff4, 6, eax124);
if (eax125)
goto addr_10006807_178;
if (v126 == eax125)
goto addr_10006807_178;
fun_10005c6d(ecx16);
ecx16 = v127;
} while (v89);
goto addr_10006805_181;
}
addr_1000682a_182:
if (reinterpret_cast<signed char>(v48) >= reinterpret_cast<signed char>(0) && *reinterpret_cast<unsigned char*>(&v20) & 4) {
edi128 = v86;
do {
if (reinterpret_cast<uint1_t>(reinterpret_cast<uint1_t>(reinterpret_cast<signed char>(edi128) < reinterpret_cast<signed char>(0)) | reinterpret_cast<uint1_t>(edi128 == 0)))
goto addr_10006865_155;
ecx16 = v17;
--edi128;
fun_10005c3a(ecx16, v13, v11, v8, v60, v61);
} while (v48 != 0xffffffff);
goto addr_10006865_155;
}
addr_10006807_178:
v48 = reinterpret_cast<void**>(0xffffffff);
goto addr_1000682a_182;
addr_10006805_181:
goto addr_1000682a_182;
addr_100066e3_168:
v23 = reinterpret_cast<void**>(1);
goto addr_100066ed_158;
addr_100066c0_160:
goto addr_100066e3_168;
addr_100064f2_74:
v76 = reinterpret_cast<void**>(16);
if (*reinterpret_cast<unsigned char*>(&v20) & 0x80) {
v23 = reinterpret_cast<void**>(2);
goto addr_1000633e_70;
}
addr_1000635d_80:
edi15 = v18;
goto addr_10006363_95;
addr_100062aa_81:
if (eax73 == 0x69) {
edi15 = v18;
goto addr_1000632d_83;
} else {
if (eax73 == 0x6e) {
v18 = v18 + 4;
esi129 = *(v18 - 4);
eax130 = fun_100058b4();
if (!eax130)
goto addr_10005d45_2;
if (*reinterpret_cast<unsigned char*>(&v20) & 32)
goto addr_10006304_191;
} else {
if (eax73 != 0x6f)
goto addr_100066a0_72;
edi15 = v18;
v76 = reinterpret_cast<void**>(8);
if (*reinterpret_cast<unsigned char*>(&v20) & 0x80) {
v20 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(v20) | 0x200);
goto addr_1000633e_70;
}
}
}
*reinterpret_cast<void***>(esi129) = v48;
addr_10006318_196:
v24 = reinterpret_cast<void**>(1);
goto addr_10006865_155;
addr_10006304_191:
*reinterpret_cast<void***>(esi129) = v48;
goto addr_10006318_196;
addr_1000627e_89:
eax83 = fun_100058d0(v82, v13, v11, v8, v60, v61, v82, v13, v11, v8, v60, v61);
ecx16 = v82;
goto addr_1000669a_92;
addr_10006400_102:
esi131 = DecodePointer;
edi132 = edi15 + 8;
v60 = *edi15;
v61 = *(edi132 - 4);
v82 = reinterpret_cast<void**>(reinterpret_cast<uint32_t>(ebp5) + 0xfffffdac);
v18 = edi132;
v133 = reinterpret_cast<signed char>(edx46);
v134 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(ebp5) + 0xfffffd80);
v135 = image_base_;
eax136 = reinterpret_cast<int32_t>(esi131(ecx16, v135, v134, ebx85, v86, v133, v22, v63));
eax136(ecx16, v135, v134, ebx85, v86, v133, v22, v63);
edi137 = reinterpret_cast<unsigned char>(v20) & 0x80;
if (edi137 && !v22) {
eax138 = reinterpret_cast<int32_t>(esi131(ecx16));
eax138(ecx16);
ecx16 = ebx85;
}
if (reinterpret_cast<int1_t>(v52 == 0x67) && !edi137) {
eax139 = reinterpret_cast<int32_t>(esi131(ecx16));
eax139(ecx16);
}
if (reinterpret_cast<int1_t>(*reinterpret_cast<void***>(ebx85) == 45)) {
v20 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(v20) | 0x100);
++ebx85;
v81 = ebx85;
}
goto addr_1000627e_89;
addr_100061be_109:
edi140 = edi15 + 4;
v18 = edi140;
if (!(reinterpret_cast<unsigned char>(v20) & 0x810)) {
v49 = reinterpret_cast<void**>(1);
} else {
v141 = reinterpret_cast<uint16_t>(*(edi140 - 4));
eax142 = fun_10005ab0(7, reinterpret_cast<uint32_t>(ebp5) + 0xfffffdd8, reinterpret_cast<uint32_t>(ebp5) + 0xfffffdf4, 0x200, v141);
if (eax142) {
v24 = reinterpret_cast<void**>(1);
}
}
v81 = reinterpret_cast<void**>(reinterpret_cast<uint32_t>(ebp5) + 0xfffffdf4);
goto addr_100066a0_72;
addr_100060f8_114:
edx46 = edx46 + 32;
v63 = reinterpret_cast<void**>(1);
v52 = edx46;
goto addr_10006363_95;
addr_100060e8_115:
eax143 = eax92 - 1 - 1;
if (!eax143) {
if (!(reinterpret_cast<unsigned char>(v20) & 0x830)) {
v20 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(v20) | 0x800);
goto addr_100061be_109;
}
} else {
eax144 = eax143 - 1 - 1;
if (!eax144)
goto addr_100060f8_114;
if (eax144 - 1 - 1)
goto addr_100066a0_72; else
goto addr_100060f8_114;
}
}
}
addr_100068a2_60:
if (!v50 || reinterpret_cast<int1_t>(v50 == 7)) {
addr_100068b8_14:
if (v145) {
v146->f112 = v146->f112 & 0xfffffffd;
}
} else {
addr_10005d45_2:
eax149 = fun_10002896(ecx16, v13, v11, v8, v60, v61, v147, v63, v89, v148, v86);
*reinterpret_cast<void***>(eax149) = reinterpret_cast<void**>(22);
fun_10002844(ecx16);
if (v150) {
*reinterpret_cast<void***>(v151 + 0x70) = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(v151 + 0x70)) & 0xfffffffd);
goto addr_10005d68_213;
}
}
addr_100068d1_215:
ecx152 = reinterpret_cast<void**>(v7 ^ reinterpret_cast<uint32_t>(ebp5));
eax153 = fun_10001cc4(ecx152, v60, ecx152, v60);
return eax153;
addr_10005d68_213:
goto addr_100068d1_215;
}
void fun_100082c6(int32_t ecx) {
goto fun_10007f80;
}
int32_t fun_10007400(struct s58* a1, uint32_t a2) {
int32_t eax3;
void** ecx4;
void** eax5;
void** v6;
void** v7;
void** v8;
uint32_t* v9;
eax3 = 1;
if (a1->f4 & 6) {
ecx4 = reinterpret_cast<void**>(*reinterpret_cast<uint32_t*>(a2 + 8) ^ a2);
eax5 = fun_10001cc4(ecx4, __return_address());
v6 = *reinterpret_cast<void***>(eax5 + 12);
v7 = *reinterpret_cast<void***>(eax5 + 16);
v8 = *reinterpret_cast<void***>(eax5 + 20);
fun_10007370(v8, v7, v6);
*v9 = a2;
eax3 = 3;
}
return eax3;
}
void fun_100075f1(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6) {
void** eax7;
void** eax8;
int32_t ebp9;
int32_t ebp10;
fun_10004570(0x1000c530, 8, __return_address());
eax7 = fun_100036bd(ecx, 0x1000c530, 8, __return_address(), a2, a3, a4, a5, a6);
eax8 = *reinterpret_cast<void***>(eax7 + 0x78);
if (eax8) {
*reinterpret_cast<uint32_t*>(ebp9 - 4) = 0;
eax8();
*reinterpret_cast<int32_t*>(ebp10 - 4) = -2;
}
fun_10008417(0x1000c530, 8, __return_address(), a2, a3);
fun_100045b5(ecx, 0x1000c530, 8, __return_address(), a2, a3);
goto 0x1000c530;
}
void fun_10007615() {
}
void fun_1000798e() {
}
void fun_10008b3b() {
int32_t eax1;
eax1 = g1000ddf0;
if (eax1 != -1 && eax1 != -2) {
CloseHandle(eax1);
}
return;
}
void fun_10008195() {
}
int32_t fun_100083c9() {
int32_t eax1;
void** ecx2;
eax1 = 0;
ecx2 = g0;
if (reinterpret_cast<int1_t>(*reinterpret_cast<void***>(ecx2 + 4) == fun_10008300) && *reinterpret_cast<void***>(ecx2 + 8) == *reinterpret_cast<void***>(*reinterpret_cast<void***>(ecx2 + 12) + 12)) {
eax1 = 1;
}
return eax1;
}
void fun_100083ec(int32_t ecx) {
goto 0x10008400;
}
void fun_100085f5(int32_t ecx) {
}
void fun_10008641(int32_t ecx) {
}
void fun_10008781(int32_t ecx) {
}
void fun_10008d01() {
}
void fun_10008f64() {
}
int32_t fun_10008fa0(int32_t ecx, signed char* a2, signed char* a3) {
int32_t eax4;
signed char* edx5;
signed char* esi6;
int32_t ecx7;
eax4 = 0;
edx5 = a3;
while (*edx5) {
++edx5;
__asm__("bts [esp], eax");
}
esi6 = a2;
ecx7 = -1;
do {
++ecx7;
*reinterpret_cast<signed char*>(&eax4) = *esi6;
if (!*reinterpret_cast<signed char*>(&eax4))
break;
++esi6;
} while (!static_cast<int1_t>(0 >> eax4));
return ecx7;
}
int32_t fun_10009070(unsigned char* a1, unsigned char* a2, int32_t a3) {
int32_t ecx4;
unsigned char* esi5;
unsigned char* edi6;
int32_t ecx7;
unsigned char ah8;
unsigned char al9;
int1_t cf10;
ecx4 = a3;
if (!ecx4)
goto addr_100090ca_2;
esi5 = a1;
edi6 = a2;
ecx7 = ecx4;
do {
ah8 = *esi5;
al9 = *edi6;
if (!ah8)
break;
if (!al9)
break;
++esi5;
++edi6;
if (ah8 >= 65 && ah8 <= 90) {
ah8 = reinterpret_cast<unsigned char>(ah8 + 32);
}
if (al9 >= 65 && al9 <= 90) {
al9 = reinterpret_cast<unsigned char>(al9 + 32);
}
cf10 = ah8 < al9;
if (ah8 != al9)
goto addr_100090c1_11;
--ecx7;
} while (ecx7);
ecx4 = 0;
cf10 = ah8 < al9;
if (ah8 == al9) {
addr_100090ca_2:
return ecx4;
} else {
addr_100090c1_11:
ecx4 = -1;
if (!cf10) {
ecx4 = --1;
goto addr_100090ca_2;
}
}
}
void fun_1000930f() {
signed char* eax1;
signed char* eax2;
signed char al3;
signed char* eax4;
signed char* eax5;
signed char al6;
signed char* eax7;
signed char* eax8;
signed char al9;
signed char* eax10;
signed char* eax11;
signed char al12;
signed char* eax13;
signed char* eax14;
signed char al15;
signed char* eax16;
signed char* eax17;
signed char al18;
signed char* eax19;
signed char* eax20;
signed char al21;
signed char* eax22;
signed char* eax23;
signed char al24;
signed char* eax25;
signed char* eax26;
signed char al27;
signed char* eax28;
signed char* eax29;
signed char al30;
signed char* eax31;
signed char* eax32;
signed char al33;
signed char* eax34;
signed char* eax35;
signed char al36;
signed char* eax37;
signed char* eax38;
signed char al39;
signed char* eax40;
signed char* eax41;
signed char al42;
signed char* eax43;
signed char* eax44;
signed char al45;
signed char* eax46;
signed char* eax47;
signed char al48;
signed char* eax49;
signed char* eax50;
signed char al51;
signed char* eax52;
signed char* eax53;
signed char al54;
signed char* eax55;
signed char* eax56;
signed char al57;
signed char* eax58;
signed char* eax59;
signed char al60;
signed char* eax61;
signed char* eax62;
signed char al63;
signed char* eax64;
signed char* eax65;
signed char al66;
signed char* eax67;
signed char* eax68;
signed char al69;
signed char* eax70;
signed char* eax71;
signed char al72;
signed char* eax73;
signed char* eax74;
signed char al75;
signed char* eax76;
signed char* eax77;
signed char al78;
signed char* eax79;
signed char* eax80;
signed char al81;
signed char* eax82;
signed char* eax83;
signed char al84;
signed char* eax85;
signed char* eax86;
signed char al87;
signed char* eax88;
signed char* eax89;
signed char al90;
signed char* eax91;
signed char* eax92;
signed char al93;
signed char* eax94;
signed char* eax95;
signed char al96;
signed char* eax97;
signed char* eax98;
signed char al99;
signed char* eax100;
signed char* eax101;
signed char al102;
signed char* eax103;
signed char* eax104;
signed char al105;
signed char* eax106;
signed char* eax107;
signed char al108;
signed char* eax109;
signed char* eax110;
signed char al111;
signed char* eax112;
signed char* eax113;
signed char al114;
signed char* eax115;
signed char* eax116;
signed char al117;
signed char* eax118;
signed char* eax119;
signed char al120;
signed char* eax121;
signed char* eax122;
signed char al123;
signed char* eax124;
signed char* eax125;
signed char al126;
signed char* eax127;
signed char* eax128;
signed char al129;
signed char* eax130;
signed char* eax131;
signed char al132;
signed char* eax133;
signed char* eax134;
signed char al135;
signed char* eax136;
signed char* eax137;
signed char al138;
signed char* eax139;
signed char* eax140;
signed char al141;
signed char* eax142;
signed char* eax143;
signed char al144;
signed char* eax145;
signed char* eax146;
signed char al147;
signed char* eax148;
signed char* eax149;
signed char al150;
signed char* eax151;
signed char* eax152;
signed char al153;
signed char* eax154;
signed char* eax155;
signed char al156;
signed char* eax157;
signed char* eax158;
signed char al159;
signed char* eax160;
signed char* eax161;
signed char al162;
signed char* eax163;
signed char* eax164;
signed char al165;
signed char* eax166;
signed char* eax167;
signed char al168;
signed char* eax169;
signed char* eax170;
signed char al171;
signed char* eax172;
signed char* eax173;
signed char al174;
signed char* eax175;
signed char* eax176;
signed char al177;
signed char* eax178;
signed char* eax179;
signed char al180;
signed char* eax181;
signed char* eax182;
signed char al183;
signed char* eax184;
signed char* eax185;
signed char al186;
signed char* eax187;
signed char* eax188;
signed char al189;
signed char* eax190;
signed char* eax191;
signed char al192;
signed char* eax193;
signed char* eax194;
signed char al195;
signed char* eax196;
signed char* eax197;
signed char al198;
signed char* eax199;
signed char* eax200;
signed char al201;
signed char* eax202;
signed char* eax203;
signed char al204;
signed char* eax205;
signed char* eax206;
signed char al207;
signed char* eax208;
signed char* eax209;
signed char al210;
signed char* eax211;
signed char* eax212;
signed char al213;
signed char* eax214;
signed char* eax215;
signed char al216;
signed char* eax217;
signed char* eax218;
signed char al219;
signed char* eax220;
signed char* eax221;
signed char al222;
signed char* eax223;
signed char* eax224;
signed char al225;
signed char* eax226;
signed char* eax227;
signed char al228;
signed char* eax229;
signed char* eax230;
signed char al231;
signed char* eax232;
signed char* eax233;
signed char al234;
signed char* eax235;
signed char* eax236;
signed char al237;
signed char* eax238;
signed char* eax239;
signed char al240;
signed char* eax241;
signed char* eax242;
signed char al243;
signed char* eax244;
signed char* eax245;
signed char al246;
signed char* eax247;
signed char* eax248;
signed char al249;
signed char* eax250;
signed char* eax251;
signed char al252;
signed char* eax253;
signed char* eax254;
signed char al255;
signed char* eax256;
signed char* eax257;
signed char al258;
signed char* eax259;
signed char* eax260;
signed char al261;
signed char* eax262;
signed char* eax263;
signed char al264;
signed char* eax265;
signed char* eax266;
signed char al267;
signed char* eax268;
signed char* eax269;
signed char al270;
signed char* eax271;
signed char* eax272;
signed char al273;
signed char* eax274;
signed char* eax275;
signed char al276;
signed char* eax277;
signed char* eax278;
signed char al279;
signed char* eax280;
signed char* eax281;
signed char al282;
signed char* eax283;
signed char* eax284;
signed char al285;
signed char* eax286;
signed char* eax287;
signed char al288;
signed char* eax289;
signed char* eax290;
signed char al291;
signed char* eax292;
signed char* eax293;
signed char al294;
signed char* eax295;
signed char* eax296;
signed char al297;
signed char* eax298;
signed char* eax299;
signed char al300;
signed char* eax301;
signed char* eax302;
signed char al303;
signed char* eax304;
signed char* eax305;
signed char al306;
signed char* eax307;
signed char* eax308;
signed char al309;
signed char* eax310;
signed char* eax311;
signed char al312;
signed char* eax313;
signed char* eax314;
signed char al315;
signed char* eax316;
signed char* eax317;
signed char al318;
signed char* eax319;
signed char* eax320;
signed char al321;
signed char* eax322;
signed char* eax323;
signed char al324;
signed char* eax325;
signed char* eax326;
signed char al327;
signed char* eax328;
signed char* eax329;
signed char al330;
signed char* eax331;
signed char* eax332;
signed char al333;
signed char* eax334;
signed char* eax335;
signed char al336;
signed char* eax337;
signed char* eax338;
signed char al339;
signed char* eax340;
signed char* eax341;
signed char al342;
signed char* eax343;
signed char* eax344;
signed char al345;
signed char* eax346;
signed char* eax347;
signed char al348;
signed char* eax349;
signed char* eax350;
signed char al351;
signed char* eax352;
signed char* eax353;
signed char al354;
signed char* eax355;
signed char* eax356;
signed char al357;
signed char* eax358;
signed char* eax359;
signed char al360;
*eax1 = reinterpret_cast<signed char>(*eax2 + al3);
*eax4 = reinterpret_cast<signed char>(*eax5 + al6);
*eax7 = reinterpret_cast<signed char>(*eax8 + al9);
*eax10 = reinterpret_cast<signed char>(*eax11 + al12);
*eax13 = reinterpret_cast<signed char>(*eax14 + al15);
*eax16 = reinterpret_cast<signed char>(*eax17 + al18);
*eax19 = reinterpret_cast<signed char>(*eax20 + al21);
*eax22 = reinterpret_cast<signed char>(*eax23 + al24);
*eax25 = reinterpret_cast<signed char>(*eax26 + al27);
*eax28 = reinterpret_cast<signed char>(*eax29 + al30);
*eax31 = reinterpret_cast<signed char>(*eax32 + al33);
*eax34 = reinterpret_cast<signed char>(*eax35 + al36);
*eax37 = reinterpret_cast<signed char>(*eax38 + al39);
*eax40 = reinterpret_cast<signed char>(*eax41 + al42);
*eax43 = reinterpret_cast<signed char>(*eax44 + al45);
*eax46 = reinterpret_cast<signed char>(*eax47 + al48);
*eax49 = reinterpret_cast<signed char>(*eax50 + al51);
*eax52 = reinterpret_cast<signed char>(*eax53 + al54);
*eax55 = reinterpret_cast<signed char>(*eax56 + al57);
*eax58 = reinterpret_cast<signed char>(*eax59 + al60);
*eax61 = reinterpret_cast<signed char>(*eax62 + al63);
*eax64 = reinterpret_cast<signed char>(*eax65 + al66);
*eax67 = reinterpret_cast<signed char>(*eax68 + al69);
*eax70 = reinterpret_cast<signed char>(*eax71 + al72);
*eax73 = reinterpret_cast<signed char>(*eax74 + al75);
*eax76 = reinterpret_cast<signed char>(*eax77 + al78);
*eax79 = reinterpret_cast<signed char>(*eax80 + al81);
*eax82 = reinterpret_cast<signed char>(*eax83 + al84);
*eax85 = reinterpret_cast<signed char>(*eax86 + al87);
*eax88 = reinterpret_cast<signed char>(*eax89 + al90);
*eax91 = reinterpret_cast<signed char>(*eax92 + al93);
*eax94 = reinterpret_cast<signed char>(*eax95 + al96);
*eax97 = reinterpret_cast<signed char>(*eax98 + al99);
*eax100 = reinterpret_cast<signed char>(*eax101 + al102);
*eax103 = reinterpret_cast<signed char>(*eax104 + al105);
*eax106 = reinterpret_cast<signed char>(*eax107 + al108);
*eax109 = reinterpret_cast<signed char>(*eax110 + al111);
*eax112 = reinterpret_cast<signed char>(*eax113 + al114);
*eax115 = reinterpret_cast<signed char>(*eax116 + al117);
*eax118 = reinterpret_cast<signed char>(*eax119 + al120);
*eax121 = reinterpret_cast<signed char>(*eax122 + al123);
*eax124 = reinterpret_cast<signed char>(*eax125 + al126);
*eax127 = reinterpret_cast<signed char>(*eax128 + al129);
*eax130 = reinterpret_cast<signed char>(*eax131 + al132);
*eax133 = reinterpret_cast<signed char>(*eax134 + al135);
*eax136 = reinterpret_cast<signed char>(*eax137 + al138);
*eax139 = reinterpret_cast<signed char>(*eax140 + al141);
*eax142 = reinterpret_cast<signed char>(*eax143 + al144);
*eax145 = reinterpret_cast<signed char>(*eax146 + al147);
*eax148 = reinterpret_cast<signed char>(*eax149 + al150);
*eax151 = reinterpret_cast<signed char>(*eax152 + al153);
*eax154 = reinterpret_cast<signed char>(*eax155 + al156);
*eax157 = reinterpret_cast<signed char>(*eax158 + al159);
*eax160 = reinterpret_cast<signed char>(*eax161 + al162);
*eax163 = reinterpret_cast<signed char>(*eax164 + al165);
*eax166 = reinterpret_cast<signed char>(*eax167 + al168);
*eax169 = reinterpret_cast<signed char>(*eax170 + al171);
*eax172 = reinterpret_cast<signed char>(*eax173 + al174);
*eax175 = reinterpret_cast<signed char>(*eax176 + al177);
*eax178 = reinterpret_cast<signed char>(*eax179 + al180);
*eax181 = reinterpret_cast<signed char>(*eax182 + al183);
*eax184 = reinterpret_cast<signed char>(*eax185 + al186);
*eax187 = reinterpret_cast<signed char>(*eax188 + al189);
*eax190 = reinterpret_cast<signed char>(*eax191 + al192);
*eax193 = reinterpret_cast<signed char>(*eax194 + al195);
*eax196 = reinterpret_cast<signed char>(*eax197 + al198);
*eax199 = reinterpret_cast<signed char>(*eax200 + al201);
*eax202 = reinterpret_cast<signed char>(*eax203 + al204);
*eax205 = reinterpret_cast<signed char>(*eax206 + al207);
*eax208 = reinterpret_cast<signed char>(*eax209 + al210);
*eax211 = reinterpret_cast<signed char>(*eax212 + al213);
*eax214 = reinterpret_cast<signed char>(*eax215 + al216);
*eax217 = reinterpret_cast<signed char>(*eax218 + al219);
*eax220 = reinterpret_cast<signed char>(*eax221 + al222);
*eax223 = reinterpret_cast<signed char>(*eax224 + al225);
*eax226 = reinterpret_cast<signed char>(*eax227 + al228);
*eax229 = reinterpret_cast<signed char>(*eax230 + al231);
*eax232 = reinterpret_cast<signed char>(*eax233 + al234);
*eax235 = reinterpret_cast<signed char>(*eax236 + al237);
*eax238 = reinterpret_cast<signed char>(*eax239 + al240);
*eax241 = reinterpret_cast<signed char>(*eax242 + al243);
*eax244 = reinterpret_cast<signed char>(*eax245 + al246);
*eax247 = reinterpret_cast<signed char>(*eax248 + al249);
*eax250 = reinterpret_cast<signed char>(*eax251 + al252);
*eax253 = reinterpret_cast<signed char>(*eax254 + al255);
*eax256 = reinterpret_cast<signed char>(*eax257 + al258);
*eax259 = reinterpret_cast<signed char>(*eax260 + al261);
*eax262 = reinterpret_cast<signed char>(*eax263 + al264);
*eax265 = reinterpret_cast<signed char>(*eax266 + al267);
*eax268 = reinterpret_cast<signed char>(*eax269 + al270);
*eax271 = reinterpret_cast<signed char>(*eax272 + al273);
*eax274 = reinterpret_cast<signed char>(*eax275 + al276);
*eax277 = reinterpret_cast<signed char>(*eax278 + al279);
*eax280 = reinterpret_cast<signed char>(*eax281 + al282);
*eax283 = reinterpret_cast<signed char>(*eax284 + al285);
*eax286 = reinterpret_cast<signed char>(*eax287 + al288);
*eax289 = reinterpret_cast<signed char>(*eax290 + al291);
*eax292 = reinterpret_cast<signed char>(*eax293 + al294);
*eax295 = reinterpret_cast<signed char>(*eax296 + al297);
*eax298 = reinterpret_cast<signed char>(*eax299 + al300);
*eax301 = reinterpret_cast<signed char>(*eax302 + al303);
*eax304 = reinterpret_cast<signed char>(*eax305 + al306);
*eax307 = reinterpret_cast<signed char>(*eax308 + al309);
*eax310 = reinterpret_cast<signed char>(*eax311 + al312);
*eax313 = reinterpret_cast<signed char>(*eax314 + al315);
*eax316 = reinterpret_cast<signed char>(*eax317 + al318);
*eax319 = reinterpret_cast<signed char>(*eax320 + al321);
*eax322 = reinterpret_cast<signed char>(*eax323 + al324);
*eax325 = reinterpret_cast<signed char>(*eax326 + al327);
*eax328 = reinterpret_cast<signed char>(*eax329 + al330);
*eax331 = reinterpret_cast<signed char>(*eax332 + al333);
*eax334 = reinterpret_cast<signed char>(*eax335 + al336);
*eax337 = reinterpret_cast<signed char>(*eax338 + al339);
*eax340 = reinterpret_cast<signed char>(*eax341 + al342);
*eax343 = reinterpret_cast<signed char>(*eax344 + al345);
*eax346 = reinterpret_cast<signed char>(*eax347 + al348);
*eax349 = reinterpret_cast<signed char>(*eax350 + al351);
*eax352 = reinterpret_cast<signed char>(*eax353 + al354);
*eax355 = reinterpret_cast<signed char>(*eax356 + al357);
*eax358 = reinterpret_cast<signed char>(*eax359 + al360);
}
void** fun_100020a9(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10) {
void** esi11;
void** ebp12;
fun_10002099(ecx, esi11, ebp12, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10);
if (*reinterpret_cast<unsigned char*>(&a2) & 1) {
fun_10001cb9(ecx, ecx, esi11, ebp12, __return_address());
}
return ecx;
}
void fun_10002312() {
}
void** fun_10004a32(void** ecx, void** a2, void** a3, void** a4, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13) {
void** esi14;
void** ebp15;
*reinterpret_cast<void***>(ecx) = reinterpret_cast<void**>("2J");
fun_100049d4(ecx, esi14, ebp15, __return_address(), a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13);
if (*reinterpret_cast<unsigned char*>(&a2) & 1) {
fun_10001cb9(ecx, ecx, esi14, ebp15, __return_address());
}
return ecx;
}
void fun_10002da9() {
}
void fun_10003186() {
goto 0x100031ad;
}
void fun_100037ee() {
}
void fun_100037fa() {
}
struct s137 {
unsigned char f0;
signed char f1;
signed char f2;
signed char f3;
};
int32_t fun_10003a60(unsigned char* a1, struct s137* a2) {
unsigned char* edx3;
struct s137* ecx4;
unsigned char ax5;
unsigned char eax6;
uint32_t eax7;
edx3 = a1;
ecx4 = a2;
if (reinterpret_cast<uint32_t>(edx3) & 3) {
if (!(reinterpret_cast<uint32_t>(edx3) & 1)) {
addr_10003acc_3:
ax5 = *edx3;
edx3 = edx3 + 2;
if (ax5 != ecx4->f0)
goto 0x10003aa4;
} else {
++edx3;
if (*edx3 != ecx4->f0)
goto 0x10003aa4;
ecx4 = reinterpret_cast<struct s137*>(&ecx4->f1);
if (!*edx3)
goto addr_10003aa0_6;
if (!(reinterpret_cast<uint32_t>(edx3) & 2))
goto addr_10003a70_8; else
goto addr_10003acc_3;
}
} else {
do {
addr_10003a70_8:
eax6 = *edx3;
if (eax6 != ecx4->f0)
goto 0x10003aa4;
if (!eax6)
goto addr_10003aa0_6;
if (*reinterpret_cast<signed char*>(&eax6 + 1) != ecx4->f1)
goto 0x10003aa4;
if (!*reinterpret_cast<signed char*>(&eax6 + 1))
goto addr_10003aa0_6;
eax7 = eax6 >> 16;
if (*reinterpret_cast<signed char*>(&eax7) != ecx4->f2)
goto 0x10003aa4;
if (!*reinterpret_cast<signed char*>(&eax7))
goto addr_10003aa0_6;
if (*reinterpret_cast<signed char*>(reinterpret_cast<int32_t>(&eax7) + 1) != ecx4->f3)
goto 0x10003aa4;
++ecx4;
edx3 = edx3 + 4;
} while (*reinterpret_cast<signed char*>(reinterpret_cast<int32_t>(&eax7) + 1));
goto addr_10003a9e_16;
}
if (!ax5) {
addr_10003aa0_6:
return 0;
} else {
if (*reinterpret_cast<signed char*>(&ax5 + 1) != ecx4->f1)
goto 0x10003aa4;
if (!*reinterpret_cast<signed char*>(&ax5 + 1))
goto addr_10003aa0_6;
}
ecx4 = reinterpret_cast<struct s137*>(&ecx4->f2);
goto addr_10003a70_8;
addr_10003a9e_16:
goto addr_10003aa0_6;
}
void fun_100081db(void** ecx) {
fun_10003e6f(ecx, 2);
return;
}
void fun_100068e0(int32_t ecx) {
}
struct s138 {
signed char[4] pad4;
int32_t f4;
};
void fun_100082e0(struct s138* a1) {
fun_100090d2();
goto a1->f4;
}
void fun_10008c28() {
}
int32_t fun_10008300(struct s70* a1, int32_t a2) {
int32_t eax3;
void** ecx4;
uint32_t v5;
void** eax6;
void** v7;
void** v8;
int32_t* v9;
eax3 = 1;
if (a1->f4 & 6) {
ecx4 = reinterpret_cast<void**>(*reinterpret_cast<uint32_t*>(v5 - 4) ^ v5);
eax6 = fun_10001cc4(ecx4, __return_address());
v7 = *reinterpret_cast<void***>(eax6 + 40);
v8 = *reinterpret_cast<void***>(eax6 + 36);
fun_10008345(v8, v7);
*v9 = a2;
eax3 = 3;
}
return eax3;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment