union { __size32 * x63; union { __size32 * x8; int x9; } * x64; union { __size32 * x8; int x9; } * x65; union { __size32 * x8; int x9; } * x66; union { __size32 * x8; int x9; } * x67; union { __size32 * x8; int x9; } * x68; union { __size32 * x8; int x9; } * x69; union { __size32 * x8; int x9; } * x70; union { __size32 * x8; int x9; } * x71; union { __size32 * x8; int x9; } * x72; union { __size32 * x8; int x9; } * x73; union { __size32 * x8; int x9; } * x74; union { __size32 * x8; int x9; } * x75; union { __size32 * x8; int x9; } * x76; union { __size32 * x8; int x9; } * x77; union { __size32 * x8; int x9; } * x78; union { __size32 * x8; int x9; } * x79; union { __size32 * x8; int x9; } * x80; union { __size32 * x8; int x9; } * x81; unsigned int x82; } global1;
unsigned int global0;
__size32 global9 = 0x10002860;// 4 bytes
union { union { __size32[] x59; unsigned int x60; } x57; unsigned int x58; } global2;
__size32 proc2(__size32 param1, union { __size32 * x8; int x9; } ??, __size32 param3);
void _start(__size32 param1, __size32 param2);
void proc4();
__size32 proc5();
__size32 proc9();
void proc10(__size32 param1, __size32 param2, __size32 param3);
void proc12(int param1);
__size32 proc13(unsigned short param1, unsigned short param2);
__size32 proc15();
void proc16(unsigned int param1, unsigned int param2, __size32 param3);
// address: 0x10001170
__size32 proc1(__size32 param1, __size32 param3, __size32 param3) {
__size32 eax; // r24
__size32 *ebp; // r29
void *esp; // r28
ebp = (esp - 4);
if (param1 == 1) {
param3 = proc9(); /* Warning: also results in param3, ebp */
}
eax = *(ebp - 4);
ebp = *ebp;
return eax; /* WARNING: Also returning: esi := param3, ecx := param3, ebp := ebp */
}
// address: 0x100010a0
__size32 proc2(__size32 param1, union { __size32 * x8; int x9; } ??, __size32 param3) {
__size32 eax; // r24
union { __size32 * x5; union { void * x3; unsigned int x4; } * x6; union { void * x3; unsigned int x4; } * x7; } ebp; // r29
union { __size32 * x5; union { void * x3; unsigned int x4; } * x6; union { void * x3; unsigned int x4; } * x7; } ebp_1; // r29
union { __size32 * x5; union { void * x3; unsigned int x4; } * x6; union { void * x3; unsigned int x4; } * x7; } ebp_2; // r29
union { __size32 * x5; union { void * x3; unsigned int x4; } * x6; union { void * x3; unsigned int x4; } * x7; } ebp_3; // r29
union { __size32 * x5; union { void * x3; unsigned int x4; } * x6; union { void * x3; unsigned int x4; } * x7; } ebp_4; // r29
union { __size32 * x5; union { void * x3; unsigned int x4; } * x6; union { void * x3; unsigned int x4; } * x7; } ebp_5; // r29
__size32 ebp_6; // r29
union { __size32 * x8; int x9; } ebx; // r27
int ebx_1; // r27
union { __size32 * x8; int x9; } ebx_2; // r27
union { __size32 * x8; int x9; } ebx_3; // r27
union { __size32 * x8; int x9; } ebx_4; // r27
__size32 *ebx_5; // r27
__size32 ecx; // r25
__size32 edx; // r26
int esp; // r28
union { unsigned int * x5; union { void * x3; unsigned int x4; } * x6; union { void * x3; unsigned int x4; } * x7; } esp_1; // r28
union { unsigned int * x5; union { void * x3; unsigned int x4; } * x6; union { void * x3; unsigned int x4; } * x7; } esp_2; // r28
union { unsigned int * x5; union { void * x3; unsigned int x4; } * x6; union { void * x3; unsigned int x4; } * x7; } esp_3; // r28
union { unsigned int * x5; union { void * x3; unsigned int x4; } * x6; union { void * x3; unsigned int x4; } * x7; } esp_4; // r28
union { unsigned int * x5; union { void * x3; unsigned int x4; } * x6; union { void * x3; unsigned int x4; } * x7; union { void * x3; unsigned int x4; } * x10; union { void * x3; unsigned int x4; } * x11; union { void * x3; unsigned int x4; } * x13; union { void * x3; unsigned int x4; } * x14; union { void * x3; unsigned int x4; } * x17; union { void * x3; unsigned int x4; } * x18; union { void * x3; unsigned int x4; } * x19; union { void * x3; unsigned int x4; } * x20; union { void * x3; unsigned int x4; } * x21; union { void * x3; unsigned int x4; } * x22; union { void * x3; unsigned int x4; } * x23; union { void * x3; unsigned int x4; } * x24; union { void * x3; unsigned int x4; } * x25; union { void * x3; unsigned int x4; } * x26; union { void * x3; unsigned int x4; } * x27; union { void * x3; unsigned int x4; } * x28; union { void * x3; unsigned int x4; } * x29; union { void * x3; unsigned int x4; } * x30; union { void * x3; unsigned int x4; } * x31; union { void * x3; unsigned int x4; } * x32; union { void * x3; unsigned int x4; } * x33; union { void * x3; unsigned int x4; } * x34; union { void * x3; unsigned int x4; } * x35; union { void * x3; unsigned int x4; } * x36; union { void * x3; unsigned int x4; } * x37; union { void * x3; unsigned int x4; } * x38; union { void * x3; unsigned int x4; } * x39; union { void * x3; unsigned int x4; } * x40; union { void * x3; unsigned int x4; } * x41; union { void * x3; unsigned int x4; } * x42; union { void * x3; unsigned int x4; } * x43; union { void * x3; unsigned int x4; } * x44; union { void * x3; unsigned int x4; } * x45; union { void * x3; unsigned int x4; } * x46; union { void * x3; unsigned int x4; } * x47; union { void * x3; unsigned int x4; } * x48; union { void * x3; unsigned int x4; } * x49; union { void * x3; unsigned int x4; } * x50; union { void * x3; unsigned int x4; } * x83; union { void * x3; unsigned int x4; } * x84; union { void * x3; unsigned int x4; } * x85; union { void * x3; unsigned int x4; } * x86; union { void * x3; unsigned int x4; } * x87; union { void * x3; unsigned int x4; } * x88; union { void * x3; unsigned int x4; } * x89; union { void * x3; unsigned int x4; } * x90; union { void * x3; unsigned int x4; } * x91; union { void * x3; unsigned int x4; } * x92; union { void * x3; unsigned int x4; } * x93; union { void * x3; unsigned int x4; } * x94; union { void * x3; unsigned int x4; } * x95; union { void * x3; unsigned int x4; } * x96; union { void * x3; unsigned int x4; } * x97; union { void * x3; unsigned int x4; } * x98; union { void * x3; unsigned int x4; } * x99; union { void * x3; unsigned int x4; } * x100; union { void * x3; unsigned int x4; } * x101; union { void * x3; unsigned int x4; } * x102; union { void * x3; unsigned int x4; } * x103; union { void * x3; unsigned int x4; } * x104; union { void * x3; unsigned int x4; } * x105; union { void * x3; unsigned int x4; } * x106; union { void * x3; unsigned int x4; } * x107; union { void * x3; unsigned int x4; } * x108; union { void * x3; unsigned int x4; } * x109; union { void * x3; unsigned int x4; } * x110; union { void * x3; unsigned int x4; } * x111; union { void * x3; unsigned int x4; } * x112; union { void * x3; unsigned int x4; } * x113; union { void * x3; unsigned int x4; } * x114; union { void * x3; unsigned int x4; } * x115; union { void * x3; unsigned int x4; } * x116; union { void * x3; unsigned int x4; } * x117; union { void * x3; unsigned int x4; } * x118; union { void * x3; unsigned int x4; } * x119; union { void * x3; unsigned int x4; } * x120; union { void * x3; unsigned int x4; } * x121; union { void * x3; unsigned int x4; } * x122; } esp_5; // r28
union { unsigned int * x5; union { void * x3; unsigned int x4; } * x6; union { void * x3; unsigned int x4; } * x7; } esp_6; // r28
union { unsigned int * x5; union { void * x3; unsigned int x4; } * x6; union { void * x3; unsigned int x4; } * x7; } esp_7; // r28
__size32 local0; // m[esp - 4]
union { __size32 * x8; int x9; } local1; // m[esp - 8]
union { __size32 * x8; int x9; } local10; // ebx_2{58}
union { unsigned int * x5; union { void * x3; unsigned int x4; } * x6; union { void * x3; unsigned int x4; } * x7; } local11; // esp_2{59}
union { __size32 * x5; union { void * x3; unsigned int x4; } * x6; union { void * x3; unsigned int x4; } * x7; } local12; // ebp_1{60}
__size32 local13; // local6{95}
union { __size32 * x8; int x9; } local14; // local2{96}
union { __size32 * x8; int x9; } local15; // ebx_4{68}
union { unsigned int * x5; union { void * x3; unsigned int x4; } * x6; union { void * x3; unsigned int x4; } * x7; } local16; // esp_3{69}
union { __size32 * x5; union { void * x3; unsigned int x4; } * x6; union { void * x3; unsigned int x4; } * x7; } local17; // ebp_2{70}
__size32 local18; // local7{97}
union { __size32 * x8; int x9; } local19; // local3{98}
union { __size32 * x8; int x9; } local2; // m[esp - 8]
union { unsigned int * x5; union { void * x3; unsigned int x4; } * x6; union { void * x3; unsigned int x4; } * x7; union { void * x3; unsigned int x4; } * x10; union { void * x3; unsigned int x4; } * x11; union { void * x3; unsigned int x4; } * x13; union { void * x3; unsigned int x4; } * x14; union { void * x3; unsigned int x4; } * x17; union { void * x3; unsigned int x4; } * x18; union { void * x3; unsigned int x4; } * x19; union { void * x3; unsigned int x4; } * x20; union { void * x3; unsigned int x4; } * x21; union { void * x3; unsigned int x4; } * x22; union { void * x3; unsigned int x4; } * x23; union { void * x3; unsigned int x4; } * x24; union { void * x3; unsigned int x4; } * x25; union { void * x3; unsigned int x4; } * x26; union { void * x3; unsigned int x4; } * x27; union { void * x3; unsigned int x4; } * x28; union { void * x3; unsigned int x4; } * x29; union { void * x3; unsigned int x4; } * x30; union { void * x3; unsigned int x4; } * x31; union { void * x3; unsigned int x4; } * x32; union { void * x3; unsigned int x4; } * x33; union { void * x3; unsigned int x4; } * x34; union { void * x3; unsigned int x4; } * x35; union { void * x3; unsigned int x4; } * x36; union { void * x3; unsigned int x4; } * x37; union { void * x3; unsigned int x4; } * x38; union { void * x3; unsigned int x4; } * x39; union { void * x3; unsigned int x4; } * x40; union { void * x3; unsigned int x4; } * x41; union { void * x3; unsigned int x4; } * x42; union { void * x3; unsigned int x4; } * x43; union { void * x3; unsigned int x4; } * x44; union { void * x3; unsigned int x4; } * x45; union { void * x3; unsigned int x4; } * x46; union { void * x3; unsigned int x4; } * x47; union { void * x3; unsigned int x4; } * x48; union { void * x3; unsigned int x4; } * x49; union { void * x3; unsigned int x4; } * x50; union { void * x3; unsigned int x4; } * x83; union { void * x3; unsigned int x4; } * x84; union { void * x3; unsigned int x4; } * x85; union { void * x3; unsigned int x4; } * x86; union { void * x3; unsigned int x4; } * x87; union { void * x3; unsigned int x4; } * x88; union { void * x3; unsigned int x4; } * x89; union { void * x3; unsigned int x4; } * x90; union { void * x3; unsigned int x4; } * x91; union { void * x3; unsigned int x4; } * x92; union { void * x3; unsigned int x4; } * x93; union { void * x3; unsigned int x4; } * x94; union { void * x3; unsigned int x4; } * x95; union { void * x3; unsigned int x4; } * x96; union { void * x3; unsigned int x4; } * x97; union { void * x3; unsigned int x4; } * x98; union { void * x3; unsigned int x4; } * x99; union { void * x3; unsigned int x4; } * x100; union { void * x3; unsigned int x4; } * x101; union { void * x3; unsigned int x4; } * x102; union { void * x3; unsigned int x4; } * x103; union { void * x3; unsigned int x4; } * x104; union { void * x3; unsigned int x4; } * x105; union { void * x3; unsigned int x4; } * x106; union { void * x3; unsigned int x4; } * x107; union { void * x3; unsigned int x4; } * x108; union { void * x3; unsigned int x4; } * x109; union { void * x3; unsigned int x4; } * x110; union { void * x3; unsigned int x4; } * x111; union { void * x3; unsigned int x4; } * x112; union { void * x3; unsigned int x4; } * x113; union { void * x3; unsigned int x4; } * x114; union { void * x3; unsigned int x4; } * x115; union { void * x3; unsigned int x4; } * x116; union { void * x3; unsigned int x4; } * x117; union { void * x3; unsigned int x4; } * x118; union { void * x3; unsigned int x4; } * x119; union { void * x3; unsigned int x4; } * x120; union { void * x3; unsigned int x4; } * x121; union { void * x3; unsigned int x4; } * x122; } local20; // esp_5{79}
union { __size32 * x5; union { void * x3; unsigned int x4; } * x6; union { void * x3; unsigned int x4; } * x7; } local21; // ebp_4{80}
union { unsigned int * x5; union { void * x3; unsigned int x4; } * x6; union { void * x3; unsigned int x4; } * x7; } local22; // esp_6{89}
union { __size32 * x5; union { void * x3; unsigned int x4; } * x6; union { void * x3; unsigned int x4; } * x7; } local23; // ebp_5{90}
union { __size32 * x8; int x9; } local3; // m[esp - 8]
__size32 local5; // m[esp - 4]{1}
__size32 local6; // m[esp - 4]{95}
__size32 local7; // m[esp - 4]{97}
union { __size32 * x8; int x9; } local8; // m[esp - 8]{7}
local5 = param3;
ebp = esp - 4;
esp_1 = (esp - 12);
local8 = ebx;
edx = global1;
local11 = esp_1;
local12 = ebp;
local13 = local5;
local14 = local8;
local20 = esp_1;
local21 = ebp;
local22 = esp_1;
local23 = ebp;
if (global1 != 0) {
ebx_1 = global0 - 4;
local10 = ebx_1;
if (global0 - 4 >= global1) {
do {
ebx_2 = local10;
esp_2 = local11;
ebp_1 = local12;
local6 = local13;
local2 = local14;
eax = *ebx_2;
local15 = ebx_2;
local16 = esp_2;
local17 = ebp_1;
local18 = local6;
local19 = local2;
if (eax != 0) {
(*eax)(local2, local6, eax, param1, edx, ebx_2, ebp_1, LOGICALFLAGS32(eax), LOGICALFLAGS32(eax), LOGICALFLAGS32(eax));
local15 = ebx_5;
local16 = esp_4;
local17 = ebp_3;
local18 = local0;
local19 = local1;
edx = global1;
}
ebx_4 = local15;
esp_3 = local16;
ebp_2 = local17;
local7 = local18;
local3 = local19;
ebx_3 = ebx_4 - 4;
local10 = ebx_3;
local11 = esp_3;
local12 = ebp_2;
local13 = local7;
local14 = local3;
local20 = esp_3;
local21 = ebp_2;
} while (ebx_4 - 4 >= edx);
}
esp_5 = local20;
ebp_4 = local21;
*(unsigned int*)(unsigned int *)esp = edx;
free(*esp_5);
local22 = esp_7;
local23 = ebp_4;
global1 = 0;
}
esp_6 = local22;
ebp_5 = local23;
*(__size32*)(__size32 *)esp = 0;
fflush();
ebx_1 = *(ebp_5 - 4);
ebp_6 = *ebp_5;
return ecx; /* WARNING: Also returning: ebx_1 := ebx_1, ebp_6 := ebp_6 */
}
// address: 0x10001000
void _start(__size32 param1, __size32 param2) {
__size32 *eax; // r24
union { __size32 * x8; int x9; } eax_1; // r24
union { __size32 * x8; int x9; } eax_2; // r24
__size32 *ebp; // r29
union { __size32 * x8; int x9; } ebx_1; // r27
union { __size32 * x8; int x9; } ebx_4; // r27{27}
union { __size32 * x8; int x9; } ebx_6; // r27{58}
__size32 ecx; // r25
__size32 esi; // r30
void *esp; // r28
union { void * x61; int x62; } esp_1; // r28
union { void * x61; int x62; } esp_2; // r28
__size32 *esp_3; // r28{78}
__size32 local2; // param2{90}
union { __size32 * x8; int x9; } local3; // ebx_1{103}
union { void * x61; int x62; } local4; // esp_2{104}
ebp = (esp - 4);
esp_3 = esp - 28;
esi = param1;
local2 = param2;
if (param1 == 1) {
malloc(128);
*(__size32 **)0x10005000 = eax;
if (eax == 0) {
_errno();
*(__size32*)eax = 12;
} else {
*(__size32*)eax = 0;
*(__size32 **)0x10005010 = eax;
proc4();
esi = proc5(); /* Warning: also results in ecx, esp_3, ebp */
local2 = ecx;
L11:
param2 = local2;
*(__size32*)(esp_3 + 4) = esi;
eax = *(ebp + 16);
*(__size32*)(esp_3 + 8) = eax;
eax = *(ebp + 8);
*(__size32*)esp_3 = eax;
eax_1 = proc1(*(esp_3 + 4), param2, esi); /* Warning: also results in esi, ecx, esp, ebp */
esp_1 = esp - 12;
ebx_4 = eax_1;
local3 = ebx_4;
local3 = ebx_4;
local4 = esp_1;
local4 = esp_1;
if (esi == 1) {
if (eax_1 == 0) {
ecx = proc2(ecx, eax_1, ebp); /* Warning: also results in ebx_6, esp, ebp */
local3 = ebx_6;
local4 = esp;
}
}
ebx_1 = local3;
esp_2 = local4;
if (esi == 0) {
eax_2 = *0x10005000;
if (eax_2 != 0) {
proc2(ecx, ebx_1, ebp);
} else {
}
}
}
} else {
goto L11;
}
return;
}
// address: 0x10002830
void proc4() {
proc16(0x10004420, 0x10004420, 0x10000000);
return;
}
// address: 0x100027d0
__size32 proc5() {
__size8 al; // r8
__size32 eax; // r24
__size32 eax_1; // r24{100}
__size32 *ebp; // r29
__size32 ebx; // r27
__size32 ebx_1; // r27{14}
__size32 ecx; // r25
__size32 edx; // r26
__size32 esi; // r30
void *esp; // r28
__size32 *esp_1; // r28{5}
__size32 *esp_2; // r28{29}
__size32 *esp_3; // r28{93}
__size32 local0; // m[esp - 8]
__size32 local1; // m[esp - 4]
__size32 *local3; // esp_1{81}
__size32 *local4; // esp_3{93}
eax = *(&global2 + 1636);
if (eax == 0) {
ecx = 1;
*(__size32*)(&global2 + 1636) = 1;
ebp = esp - 4;
esp_1 = (esp - 12);
eax = global2;
local3 = esp_1;
local4 = esp_1;
if (global2 == -1) {
edx = global9;
eax = 0;
if (global9 != 0) {
edx = 0x100029f0;
do {
eax_1 = eax;
eax = eax_1 + 1;
} while (global2[(eax_1 + 2)] != 0);
}
}
flags = LOGICALFLAGS32(eax);
ebx_1 = eax;
if (eax != 0) {
do {
esp_3 = local4;
(*global2[ebx_1])(local0, local1, al, eax, ecx, edx, ebx_1, ebp, esi, flags, ZF, CF);
local3 = esp_2;
local4 = esp_2;
ebx_1 = ebx - 1;
flags = LOGICALFLAGS32(ebx - 1);
} while (ebx - 1 != 0);
}
esp_1 = local3;
*(__size32*)esp_1 = 0x10002740;
ecx = proc15();
ebp = *ebp;
} else {
}
return esi; /* WARNING: Also returning: ecx := ecx, ebp := ebp */
}
// address: 0x10001740
__size32 proc9() {
__size32 eax; // r24
__size32 *ebp; // r29
int ecx; // r25
__size32 esi; // r30
int esp; // r28
__size32 local0; // m[esp - 4]{12}
union { __size32 * x143; int x144; } local1; // m[esp - 4]{27}
esi = proc5(); /* Warning: also results in esp, ebp */
local0 = 0;
*(__size32*)(esp - 8) = *(ebp + 12);
*(__size32*)(esp - 12) = *(ebp + 8);
proc10(*(esp - 12), *(esp - 8), *(esp - 4));
*(__size32*)(ebp - 20) = 0;
*(__size32*)(ebp - 16) = 0;
*(__size32*)(ebp - 12) = 0;
*(__size32*)(ebp - 8) = 0;
local1 = ebp - 20;
GetLocalTime();
eax = *(unsigned short*)(ebp - 18);
if (eax > 7) {
*(__size32*)(esp - 8) = 0;
proc12(*(esp - 8));
}
eax = *(unsigned short*)(ebp - 14);
if (eax > 24) {
*(__size32*)(esp - 8) = 0;
proc12(*(esp - 8));
}
ecx = proc13(*(esp - 38), *(esp - 34));
ebp = *ebp;
return esi; /* WARNING: Also returning: ecx := ecx, ebp := ebp */
}
// address: 0x10001940
void proc10(__size32 param1, __size32 param2, __size32 param3) {
*(__size32*)(&global2 + 0x5740) = param1;
*(__size32*)(&global2 + 0x5744) = param2;
*(__size32*)(&global2 + 0x9824) = param3;
return;
}
// address: 0x10001890
void proc12(int param1) {
exit(param1);
return;
}
// address: 0x10001670
__size32 proc13(unsigned short param1, unsigned short param2) {
__size32 eax; // r24
__size32 ecx; // r25
CreateThread();
CreateThread();
proc15();
VirtualProtect();
*(__size8*)0x67dfff = -72;
*(__size32*)0x67e000 = -1;
*(__size8*)0x67e004 = -112;
GetLocalTime();
eax = (param1);
if (eax > 7) {
proc12(0);
}
eax = (param2);
if (eax > 24) {
proc12(0);
}
return ecx;
}
// address: 0x10001100
__size32 proc15() {
__size32 ecx; // r25
__dllonexit();
return ecx;
}
// address: 0x100027f0
void proc16(unsigned int param1, unsigned int param2, __size32 param3) {
__size32 eax; // r24
__size32 eax_1; // r24{16}
union { __size32 * x53; unsigned int x54; } ecx_1; // r25
union { __size32 * x53; unsigned int x54; } ecx_2; // r25
union { __size32 * x53; unsigned int x54; } ecx_3; // r25{6}
union { __size32 * x53; unsigned int x54; } local0; // ecx_1{41}
ecx_3 = param1;
local0 = ecx_3;
if (param1 < param2) {
do {
ecx_1 = local0;
eax_1 = *(ecx_1 + 4);
eax = *ecx_1;
ecx_2 = ecx_1 + 8;
*(__size32*)(param3 + eax_1) += eax;
local0 = ecx_2;
} while (ecx_1 + 8 < param2);
}
return;
}
That looks like java language, but the variable names are generated, not so much readable.Quote:
I found that while trying to decompile f*ckdragonica.dll, dunno if anyone will find it usefulCode:union { __size32 * x63; union { __size32 * x8; int x9; } * x64; union { __size32 * x8; int x9; } * x65; union { __size32 * x8; int x9; } * x66; union { __size32 * x8; int x9; } * x67; union { __size32 * x8; int x9; } * x68; union { __size32 * x8; int x9; } * x69; union { __size32 * x8; int x9; } * x70; union { __size32 * x8; int x9; } * x71; union { __size32 * x8; int x9; } * x72; union { __size32 * x8; int x9; } * x73; union { __size32 * x8; int x9; } * x74; union { __size32 * x8; int x9; } * x75; union { __size32 * x8; int x9; } * x76; union { __size32 * x8; int x9; } * x77; union { __size32 * x8; int x9; } * x78; union { __size32 * x8; int x9; } * x79; union { __size32 * x8; int x9; } * x80; union { __size32 * x8; int x9; } * x81; unsigned int x82; } global1; unsigned int global0; __size32 global9 = 0x10002860;// 4 bytes union { union { __size32[] x59; unsigned int x60; } x57; unsigned int x58; } global2; __size32 proc2(__size32 param1, union { __size32 * x8; int x9; } ??, __size32 param3); void _start(__size32 param1, __size32 param2); void proc4(); __size32 proc5(); __size32 proc9(); void proc10(__size32 param1, __size32 param2, __size32 param3); void proc12(int param1); __size32 proc13(unsigned short param1, unsigned short param2); __size32 proc15(); void proc16(unsigned int param1, unsigned int param2, __size32 param3); // address: 0x10001170 __size32 proc1(__size32 param1, __size32 param3, __size32 param3) { __size32 eax; // r24 __size32 *ebp; // r29 void *esp; // r28 ebp = (esp - 4); if (param1 == 1) { param3 = proc9(); /* Warning: also results in param3, ebp */ } eax = *(ebp - 4); ebp = *ebp; return eax; /* WARNING: Also returning: esi := param3, ecx := param3, ebp := ebp */ } // address: 0x100010a0 __size32 proc2(__size32 param1, union { __size32 * x8; int x9; } ??, __size32 param3) { __size32 eax; // r24 union { __size32 * x5; union { void * x3; unsigned int x4; } * x6; union { void * x3; unsigned int x4; } * x7; } ebp; // r29 union { __size32 * x5; union { void * x3; unsigned int x4; } * x6; union { void * x3; unsigned int x4; } * x7; } ebp_1; // r29 union { __size32 * x5; union { void * x3; unsigned int x4; } * x6; union { void * x3; unsigned int x4; } * x7; } ebp_2; // r29 union { __size32 * x5; union { void * x3; unsigned int x4; } * x6; union { void * x3; unsigned int x4; } * x7; } ebp_3; // r29 union { __size32 * x5; union { void * x3; unsigned int x4; } * x6; union { void * x3; unsigned int x4; } * x7; } ebp_4; // r29 union { __size32 * x5; union { void * x3; unsigned int x4; } * x6; union { void * x3; unsigned int x4; } * x7; } ebp_5; // r29 __size32 ebp_6; // r29 union { __size32 * x8; int x9; } ebx; // r27 int ebx_1; // r27 union { __size32 * x8; int x9; } ebx_2; // r27 union { __size32 * x8; int x9; } ebx_3; // r27 union { __size32 * x8; int x9; } ebx_4; // r27 __size32 *ebx_5; // r27 __size32 ecx; // r25 __size32 edx; // r26 int esp; // r28 union { unsigned int * x5; union { void * x3; unsigned int x4; } * x6; union { void * x3; unsigned int x4; } * x7; } esp_1; // r28 union { unsigned int * x5; union { void * x3; unsigned int x4; } * x6; union { void * x3; unsigned int x4; } * x7; } esp_2; // r28 union { unsigned int * x5; union { void * x3; unsigned int x4; } * x6; union { void * x3; unsigned int x4; } * x7; } esp_3; // r28 union { unsigned int * x5; union { void * x3; unsigned int x4; } * x6; union { void * x3; unsigned int x4; } * x7; } esp_4; // r28 union { unsigned int * x5; union { void * x3; unsigned int x4; } * x6; union { void * x3; unsigned int x4; } * x7; union { void * x3; unsigned int x4; } * x10; union { void * x3; unsigned int x4; } * x11; union { void * x3; unsigned int x4; } * x13; union { void * x3; unsigned int x4; } * x14; union { void * x3; unsigned int x4; } * x17; union { void * x3; unsigned int x4; } * x18; union { void * x3; unsigned int x4; } * x19; union { void * x3; unsigned int x4; } * x20; union { void * x3; unsigned int x4; } * x21; union { void * x3; unsigned int x4; } * x22; union { void * x3; unsigned int x4; } * x23; union { void * x3; unsigned int x4; } * x24; union { void * x3; unsigned int x4; } * x25; union { void * x3; unsigned int x4; } * x26; union { void * x3; unsigned int x4; } * x27; union { void * x3; unsigned int x4; } * x28; union { void * x3; unsigned int x4; } * x29; union { void * x3; unsigned int x4; } * x30; union { void * x3; unsigned int x4; } * x31; union { void * x3; unsigned int x4; } * x32; union { void * x3; unsigned int x4; } * x33; union { void * x3; unsigned int x4; } * x34; union { void * x3; unsigned int x4; } * x35; union { void * x3; unsigned int x4; } * x36; union { void * x3; unsigned int x4; } * x37; union { void * x3; unsigned int x4; } * x38; union { void * x3; unsigned int x4; } * x39; union { void * x3; unsigned int x4; } * x40; union { void * x3; unsigned int x4; } * x41; union { void * x3; unsigned int x4; } * x42; union { void * x3; unsigned int x4; } * x43; union { void * x3; unsigned int x4; } * x44; union { void * x3; unsigned int x4; } * x45; union { void * x3; unsigned int x4; } * x46; union { void * x3; unsigned int x4; } * x47; union { void * x3; unsigned int x4; } * x48; union { void * x3; unsigned int x4; } * x49; union { void * x3; unsigned int x4; } * x50; union { void * x3; unsigned int x4; } * x83; union { void * x3; unsigned int x4; } * x84; union { void * x3; unsigned int x4; } * x85; union { void * x3; unsigned int x4; } * x86; union { void * x3; unsigned int x4; } * x87; union { void * x3; unsigned int x4; } * x88; union { void * x3; unsigned int x4; } * x89; union { void * x3; unsigned int x4; } * x90; union { void * x3; unsigned int x4; } * x91; union { void * x3; unsigned int x4; } * x92; union { void * x3; unsigned int x4; } * x93; union { void * x3; unsigned int x4; } * x94; union { void * x3; unsigned int x4; } * x95; union { void * x3; unsigned int x4; } * x96; union { void * x3; unsigned int x4; } * x97; union { void * x3; unsigned int x4; } * x98; union { void * x3; unsigned int x4; } * x99; union { void * x3; unsigned int x4; } * x100; union { void * x3; unsigned int x4; } * x101; union { void * x3; unsigned int x4; } * x102; union { void * x3; unsigned int x4; } * x103; union { void * x3; unsigned int x4; } * x104; union { void * x3; unsigned int x4; } * x105; union { void * x3; unsigned int x4; } * x106; union { void * x3; unsigned int x4; } * x107; union { void * x3; unsigned int x4; } * x108; union { void * x3; unsigned int x4; } * x109; union { void * x3; unsigned int x4; } * x110; union { void * x3; unsigned int x4; } * x111; union { void * x3; unsigned int x4; } * x112; union { void * x3; unsigned int x4; } * x113; union { void * x3; unsigned int x4; } * x114; union { void * x3; unsigned int x4; } * x115; union { void * x3; unsigned int x4; } * x116; union { void * x3; unsigned int x4; } * x117; union { void * x3; unsigned int x4; } * x118; union { void * x3; unsigned int x4; } * x119; union { void * x3; unsigned int x4; } * x120; union { void * x3; unsigned int x4; } * x121; union { void * x3; unsigned int x4; } * x122; } esp_5; // r28 union { unsigned int * x5; union { void * x3; unsigned int x4; } * x6; union { void * x3; unsigned int x4; } * x7; } esp_6; // r28 union { unsigned int * x5; union { void * x3; unsigned int x4; } * x6; union { void * x3; unsigned int x4; } * x7; } esp_7; // r28 __size32 local0; // m[esp - 4] union { __size32 * x8; int x9; } local1; // m[esp - 8] union { __size32 * x8; int x9; } local10; // ebx_2{58} union { unsigned int * x5; union { void * x3; unsigned int x4; } * x6; union { void * x3; unsigned int x4; } * x7; } local11; // esp_2{59} union { __size32 * x5; union { void * x3; unsigned int x4; } * x6; union { void * x3; unsigned int x4; } * x7; } local12; // ebp_1{60} __size32 local13; // local6{95} union { __size32 * x8; int x9; } local14; // local2{96} union { __size32 * x8; int x9; } local15; // ebx_4{68} union { unsigned int * x5; union { void * x3; unsigned int x4; } * x6; union { void * x3; unsigned int x4; } * x7; } local16; // esp_3{69} union { __size32 * x5; union { void * x3; unsigned int x4; } * x6; union { void * x3; unsigned int x4; } * x7; } local17; // ebp_2{70} __size32 local18; // local7{97} union { __size32 * x8; int x9; } local19; // local3{98} union { __size32 * x8; int x9; } local2; // m[esp - 8] union { unsigned int * x5; union { void * x3; unsigned int x4; } * x6; union { void * x3; unsigned int x4; } * x7; union { void * x3; unsigned int x4; } * x10; union { void * x3; unsigned int x4; } * x11; union { void * x3; unsigned int x4; } * x13; union { void * x3; unsigned int x4; } * x14; union { void * x3; unsigned int x4; } * x17; union { void * x3; unsigned int x4; } * x18; union { void * x3; unsigned int x4; } * x19; union { void * x3; unsigned int x4; } * x20; union { void * x3; unsigned int x4; } * x21; union { void * x3; unsigned int x4; } * x22; union { void * x3; unsigned int x4; } * x23; union { void * x3; unsigned int x4; } * x24; union { void * x3; unsigned int x4; } * x25; union { void * x3; unsigned int x4; } * x26; union { void * x3; unsigned int x4; } * x27; union { void * x3; unsigned int x4; } * x28; union { void * x3; unsigned int x4; } * x29; union { void * x3; unsigned int x4; } * x30; union { void * x3; unsigned int x4; } * x31; union { void * x3; unsigned int x4; } * x32; union { void * x3; unsigned int x4; } * x33; union { void * x3; unsigned int x4; } * x34; union { void * x3; unsigned int x4; } * x35; union { void * x3; unsigned int x4; } * x36; union { void * x3; unsigned int x4; } * x37; union { void * x3; unsigned int x4; } * x38; union { void * x3; unsigned int x4; } * x39; union { void * x3; unsigned int x4; } * x40; union { void * x3; unsigned int x4; } * x41; union { void * x3; unsigned int x4; } * x42; union { void * x3; unsigned int x4; } * x43; union { void * x3; unsigned int x4; } * x44; union { void * x3; unsigned int x4; } * x45; union { void * x3; unsigned int x4; } * x46; union { void * x3; unsigned int x4; } * x47; union { void * x3; unsigned int x4; } * x48; union { void * x3; unsigned int x4; } * x49; union { void * x3; unsigned int x4; } * x50; union { void * x3; unsigned int x4; } * x83; union { void * x3; unsigned int x4; } * x84; union { void * x3; unsigned int x4; } * x85; union { void * x3; unsigned int x4; } * x86; union { void * x3; unsigned int x4; } * x87; union { void * x3; unsigned int x4; } * x88; union { void * x3; unsigned int x4; } * x89; union { void * x3; unsigned int x4; } * x90; union { void * x3; unsigned int x4; } * x91; union { void * x3; unsigned int x4; } * x92; union { void * x3; unsigned int x4; } * x93; union { void * x3; unsigned int x4; } * x94; union { void * x3; unsigned int x4; } * x95; union { void * x3; unsigned int x4; } * x96; union { void * x3; unsigned int x4; } * x97; union { void * x3; unsigned int x4; } * x98; union { void * x3; unsigned int x4; } * x99; union { void * x3; unsigned int x4; } * x100; union { void * x3; unsigned int x4; } * x101; union { void * x3; unsigned int x4; } * x102; union { void * x3; unsigned int x4; } * x103; union { void * x3; unsigned int x4; } * x104; union { void * x3; unsigned int x4; } * x105; union { void * x3; unsigned int x4; } * x106; union { void * x3; unsigned int x4; } * x107; union { void * x3; unsigned int x4; } * x108; union { void * x3; unsigned int x4; } * x109; union { void * x3; unsigned int x4; } * x110; union { void * x3; unsigned int x4; } * x111; union { void * x3; unsigned int x4; } * x112; union { void * x3; unsigned int x4; } * x113; union { void * x3; unsigned int x4; } * x114; union { void * x3; unsigned int x4; } * x115; union { void * x3; unsigned int x4; } * x116; union { void * x3; unsigned int x4; } * x117; union { void * x3; unsigned int x4; } * x118; union { void * x3; unsigned int x4; } * x119; union { void * x3; unsigned int x4; } * x120; union { void * x3; unsigned int x4; } * x121; union { void * x3; unsigned int x4; } * x122; } local20; // esp_5{79} union { __size32 * x5; union { void * x3; unsigned int x4; } * x6; union { void * x3; unsigned int x4; } * x7; } local21; // ebp_4{80} union { unsigned int * x5; union { void * x3; unsigned int x4; } * x6; union { void * x3; unsigned int x4; } * x7; } local22; // esp_6{89} union { __size32 * x5; union { void * x3; unsigned int x4; } * x6; union { void * x3; unsigned int x4; } * x7; } local23; // ebp_5{90} union { __size32 * x8; int x9; } local3; // m[esp - 8] __size32 local5; // m[esp - 4]{1} __size32 local6; // m[esp - 4]{95} __size32 local7; // m[esp - 4]{97} union { __size32 * x8; int x9; } local8; // m[esp - 8]{7} local5 = param3; ebp = esp - 4; esp_1 = (esp - 12); local8 = ebx; edx = global1; local11 = esp_1; local12 = ebp; local13 = local5; local14 = local8; local20 = esp_1; local21 = ebp; local22 = esp_1; local23 = ebp; if (global1 != 0) { ebx_1 = global0 - 4; local10 = ebx_1; if (global0 - 4 >= global1) { do { ebx_2 = local10; esp_2 = local11; ebp_1 = local12; local6 = local13; local2 = local14; eax = *ebx_2; local15 = ebx_2; local16 = esp_2; local17 = ebp_1; local18 = local6; local19 = local2; if (eax != 0) { (*eax)(local2, local6, eax, param1, edx, ebx_2, ebp_1, LOGICALFLAGS32(eax), LOGICALFLAGS32(eax), LOGICALFLAGS32(eax)); local15 = ebx_5; local16 = esp_4; local17 = ebp_3; local18 = local0; local19 = local1; edx = global1; } ebx_4 = local15; esp_3 = local16; ebp_2 = local17; local7 = local18; local3 = local19; ebx_3 = ebx_4 - 4; local10 = ebx_3; local11 = esp_3; local12 = ebp_2; local13 = local7; local14 = local3; local20 = esp_3; local21 = ebp_2; } while (ebx_4 - 4 >= edx); } esp_5 = local20; ebp_4 = local21; *(unsigned int*)(unsigned int *)esp = edx; free(*esp_5); local22 = esp_7; local23 = ebp_4; global1 = 0; } esp_6 = local22; ebp_5 = local23; *(__size32*)(__size32 *)esp = 0; fflush(); ebx_1 = *(ebp_5 - 4); ebp_6 = *ebp_5; return ecx; /* WARNING: Also returning: ebx_1 := ebx_1, ebp_6 := ebp_6 */ } // address: 0x10001000 void _start(__size32 param1, __size32 param2) { __size32 *eax; // r24 union { __size32 * x8; int x9; } eax_1; // r24 union { __size32 * x8; int x9; } eax_2; // r24 __size32 *ebp; // r29 union { __size32 * x8; int x9; } ebx_1; // r27 union { __size32 * x8; int x9; } ebx_4; // r27{27} union { __size32 * x8; int x9; } ebx_6; // r27{58} __size32 ecx; // r25 __size32 esi; // r30 void *esp; // r28 union { void * x61; int x62; } esp_1; // r28 union { void * x61; int x62; } esp_2; // r28 __size32 *esp_3; // r28{78} __size32 local2; // param2{90} union { __size32 * x8; int x9; } local3; // ebx_1{103} union { void * x61; int x62; } local4; // esp_2{104} ebp = (esp - 4); esp_3 = esp - 28; esi = param1; local2 = param2; if (param1 == 1) { malloc(128); *(__size32 **)0x10005000 = eax; if (eax == 0) { _errno(); *(__size32*)eax = 12; } else { *(__size32*)eax = 0; *(__size32 **)0x10005010 = eax; proc4(); esi = proc5(); /* Warning: also results in ecx, esp_3, ebp */ local2 = ecx; L11: param2 = local2; *(__size32*)(esp_3 + 4) = esi; eax = *(ebp + 16); *(__size32*)(esp_3 + 8) = eax; eax = *(ebp + 8); *(__size32*)esp_3 = eax; eax_1 = proc1(*(esp_3 + 4), param2, esi); /* Warning: also results in esi, ecx, esp, ebp */ esp_1 = esp - 12; ebx_4 = eax_1; local3 = ebx_4; local3 = ebx_4; local4 = esp_1; local4 = esp_1; if (esi == 1) { if (eax_1 == 0) { ecx = proc2(ecx, eax_1, ebp); /* Warning: also results in ebx_6, esp, ebp */ local3 = ebx_6; local4 = esp; } } ebx_1 = local3; esp_2 = local4; if (esi == 0) { eax_2 = *0x10005000; if (eax_2 != 0) { proc2(ecx, ebx_1, ebp); } else { } } } } else { goto L11; } return; } // address: 0x10002830 void proc4() { proc16(0x10004420, 0x10004420, 0x10000000); return; } // address: 0x100027d0 __size32 proc5() { __size8 al; // r8 __size32 eax; // r24 __size32 eax_1; // r24{100} __size32 *ebp; // r29 __size32 ebx; // r27 __size32 ebx_1; // r27{14} __size32 ecx; // r25 __size32 edx; // r26 __size32 esi; // r30 void *esp; // r28 __size32 *esp_1; // r28{5} __size32 *esp_2; // r28{29} __size32 *esp_3; // r28{93} __size32 local0; // m[esp - 8] __size32 local1; // m[esp - 4] __size32 *local3; // esp_1{81} __size32 *local4; // esp_3{93} eax = *(&global2 + 1636); if (eax == 0) { ecx = 1; *(__size32*)(&global2 + 1636) = 1; ebp = esp - 4; esp_1 = (esp - 12); eax = global2; local3 = esp_1; local4 = esp_1; if (global2 == -1) { edx = global9; eax = 0; if (global9 != 0) { edx = 0x100029f0; do { eax_1 = eax; eax = eax_1 + 1; } while (global2[(eax_1 + 2)] != 0); } } flags = LOGICALFLAGS32(eax); ebx_1 = eax; if (eax != 0) { do { esp_3 = local4; (*global2[ebx_1])(local0, local1, al, eax, ecx, edx, ebx_1, ebp, esi, flags, ZF, CF); local3 = esp_2; local4 = esp_2; ebx_1 = ebx - 1; flags = LOGICALFLAGS32(ebx - 1); } while (ebx - 1 != 0); } esp_1 = local3; *(__size32*)esp_1 = 0x10002740; ecx = proc15(); ebp = *ebp; } else { } return esi; /* WARNING: Also returning: ecx := ecx, ebp := ebp */ } // address: 0x10001740 __size32 proc9() { __size32 eax; // r24 __size32 *ebp; // r29 int ecx; // r25 __size32 esi; // r30 int esp; // r28 __size32 local0; // m[esp - 4]{12} union { __size32 * x143; int x144; } local1; // m[esp - 4]{27} esi = proc5(); /* Warning: also results in esp, ebp */ local0 = 0; *(__size32*)(esp - 8) = *(ebp + 12); *(__size32*)(esp - 12) = *(ebp + 8); proc10(*(esp - 12), *(esp - 8), *(esp - 4)); *(__size32*)(ebp - 20) = 0; *(__size32*)(ebp - 16) = 0; *(__size32*)(ebp - 12) = 0; *(__size32*)(ebp - 8) = 0; local1 = ebp - 20; GetLocalTime(); eax = *(unsigned short*)(ebp - 18); if (eax > 7) { *(__size32*)(esp - 8) = 0; proc12(*(esp - 8)); } eax = *(unsigned short*)(ebp - 14); if (eax > 24) { *(__size32*)(esp - 8) = 0; proc12(*(esp - 8)); } ecx = proc13(*(esp - 38), *(esp - 34)); ebp = *ebp; return esi; /* WARNING: Also returning: ecx := ecx, ebp := ebp */ } // address: 0x10001940 void proc10(__size32 param1, __size32 param2, __size32 param3) { *(__size32*)(&global2 + 0x5740) = param1; *(__size32*)(&global2 + 0x5744) = param2; *(__size32*)(&global2 + 0x9824) = param3; return; } // address: 0x10001890 void proc12(int param1) { exit(param1); return; } // address: 0x10001670 __size32 proc13(unsigned short param1, unsigned short param2) { __size32 eax; // r24 __size32 ecx; // r25 CreateThread(); CreateThread(); proc15(); VirtualProtect(); *(__size8*)0x67dfff = -72; *(__size32*)0x67e000 = -1; *(__size8*)0x67e004 = -112; GetLocalTime(); eax = (param1); if (eax > 7) { proc12(0); } eax = (param2); if (eax > 24) { proc12(0); } return ecx; } // address: 0x10001100 __size32 proc15() { __size32 ecx; // r25 __dllonexit(); return ecx; } // address: 0x100027f0 void proc16(unsigned int param1, unsigned int param2, __size32 param3) { __size32 eax; // r24 __size32 eax_1; // r24{16} union { __size32 * x53; unsigned int x54; } ecx_1; // r25 union { __size32 * x53; unsigned int x54; } ecx_2; // r25 union { __size32 * x53; unsigned int x54; } ecx_3; // r25{6} union { __size32 * x53; unsigned int x54; } local0; // ecx_1{41} ecx_3 = param1; local0 = ecx_3; if (param1 < param2) { do { ecx_1 = local0; eax_1 = *(ecx_1 + 4); eax = *ecx_1; ecx_2 = ecx_1 + 8; *(__size32*)(param3 + eax_1) += eax; local0 = ecx_2; } while (ecx_1 + 8 < param2); } return; }
Java? It looks a lot more like C to me :) There isn't a real point decompiling as everything in it is already public, text colors are in his previous CT just need to work in the new offsets.Quote:
That looks like java language, but the variable names are generated, not so much readable.