__size32 global2 = 0x44bf19b1;// 4 bytes int global0 = 0xbb40e64e; void *proc2(int param1, __size32 param2, __size32 param3, __size32 param4); void _start(); // address: 0x4015f1 __size32 proc1(int param1, int param2) { __size32 eax; // r24 int eax_1; // r24{47} int ecx; // r25 int ecx_1; // r25{99} __size32 edi; // r31 __size32 esi; // r30 int esp; // r28 union { __size32 * x13; int x14; } esp_1; // r28 __size32 *esp_3; // r28{56} int local4; // ecx_1{99} union { __size32 * x13; int x14; } local5; // esp{107} esp_1 = (esp - 32); local5 = esp; if (global0 == 0xbb40e64e || (global0 & 0xffff0000) == 0) { GetSystemTimeAsFileTime(); GetCurrentThreadId(); GetCurrentProcessId(); QueryPerformanceCounter(); local5 = esp_3; ecx = param2 ^ param1; ecx = ecx ^ 0 ^ eax ^ eax_1; ecx_1 = ecx ^ (esp - 8); local4 = ecx_1; if ((ecx ^ esp - 8) != 0xbb40e64e) { tmp1 = (ecx ^ esp - 8) & 0xffff0000; if (tmp1 == 0) { eax = ecx ^ esp - 8 | 0x4711; ecx = ecx ^ esp - 8 | eax * 0x10000; local4 = ecx; } } else { ecx = 0xbb40e64f; local4 = ecx; } ecx_1 = local4; global0 = ecx_1; global2 = !ecx_1; } else { global2 = !global0; } esp = local5; edi = *esp; esi = *(esp + 4); return esi; /* WARNING: Also returning: edi := edi */ } // address: 0x401800 void *proc2(int param1, __size32 param2, __size32 param3, __size32 param4) { __size32 *esp; // r28 __size32 local0; // m[esp] *(__size32*)(esp - param1 - 12) = param2; *(__size32*)(esp - param1 - 16) = param3; *(__size32*)(esp - param1 - 20) = param4; *(int*)(esp - param1 - 24) = global0 ^ (esp + 8); *(__size32*)(esp - param1 - 28) = local0; *(union { __size32 * x107; int x108; }*)0 = (esp - 8); return (esp + 8); } // address: 0x40130f void _start() { __size32 ebx; // r27 __size32 edi; // r31 __size32 esi; // r30 int local1; // m[esp - 28] int local2; // m[esp - 24] esi = proc1(local1, local2); /* Warning: also results in edi */ proc2(12, ebx, esi, edi); *(__size32*)(ebp - 4) = 0; }
Standard input is empty
prog.c:1:1: error: unknown type name '__size32' __size32 global2 = 0x44bf19b1;// 4 bytes ^ prog.c:4:25: error: unknown type name '__size32' void *proc2(int param1, __size32 param2, __size32 param3, __size32 param4); ^ prog.c:4:42: error: unknown type name '__size32' void *proc2(int param1, __size32 param2, __size32 param3, __size32 param4); ^ prog.c:4:59: error: unknown type name '__size32' void *proc2(int param1, __size32 param2, __size32 param3, __size32 param4); ^ prog.c:8:1: error: unknown type name '__size32' __size32 proc1(int param1, int param2) { ^ prog.c: In function 'proc1': prog.c:9:5: error: unknown type name '__size32' __size32 eax; // r24 ^ prog.c:13:5: error: unknown type name '__size32' __size32 edi; // r31 ^ prog.c:14:5: error: unknown type name '__size32' __size32 esi; // r30 ^ prog.c:16:13: error: unknown type name '__size32' union { __size32 * x13; int x14; } esp_1; // r28 ^ prog.c:17:5: error: unknown type name '__size32' __size32 *esp_3; // r28{56} ^ prog.c:19:13: error: unknown type name '__size32' union { __size32 * x13; int x14; } local5; // esp{107} ^ prog.c:21:11: error: incompatible types when assigning to type 'union <anonymous>' from type 'int' esp_1 = (esp - 32); ^ prog.c:22:12: error: incompatible types when assigning to type 'union <anonymous>' from type 'int' local5 = esp; ^ prog.c:24:9: warning: implicit declaration of function 'GetSystemTimeAsFileTime' [-Wimplicit-function-declaration] GetSystemTimeAsFileTime(); ^ prog.c:25:9: warning: implicit declaration of function 'GetCurrentThreadId' [-Wimplicit-function-declaration] GetCurrentThreadId(); ^ prog.c:26:9: warning: implicit declaration of function 'GetCurrentProcessId' [-Wimplicit-function-declaration] GetCurrentProcessId(); ^ prog.c:27:9: warning: implicit declaration of function 'QueryPerformanceCounter' [-Wimplicit-function-declaration] QueryPerformanceCounter(); ^ prog.c:28:16: error: incompatible types when assigning to type 'union <anonymous>' from type 'int *' local5 = esp_3; ^ prog.c:33:24: warning: suggest parentheses around arithmetic in operand of '^' [-Wparentheses] if ((ecx ^ esp - 8) != 0xbb40e64e) { ^ prog.c:34:13: error: 'tmp1' undeclared (first use in this function) tmp1 = (ecx ^ esp - 8) & 0xffff0000; ^ prog.c:34:13: note: each undeclared identifier is reported only once for each function it appears in prog.c:34:31: warning: suggest parentheses around arithmetic in operand of '^' [-Wparentheses] tmp1 = (ecx ^ esp - 8) & 0xffff0000; ^ prog.c:36:33: warning: suggest parentheses around arithmetic in operand of '^' [-Wparentheses] eax = ecx ^ esp - 8 | 0x4711; ^ prog.c:36:27: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] eax = ecx ^ esp - 8 | 0x4711; ^ prog.c:37:33: warning: suggest parentheses around arithmetic in operand of '^' [-Wparentheses] ecx = ecx ^ esp - 8 | eax * 0x10000; ^ prog.c:37:27: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ecx = ecx ^ esp - 8 | eax * 0x10000; ^ prog.c:50:9: error: incompatible types when assigning to type 'int' from type 'union <anonymous>' esp = local5; ^ prog.c:51:11: error: invalid type argument of unary '*' (have 'int') edi = *esp; ^ prog.c:52:11: error: invalid type argument of unary '*' (have 'int') esi = *(esp + 4); ^ prog.c:16:40: warning: variable 'esp_1' set but not used [-Wunused-but-set-variable] union { __size32 * x13; int x14; } esp_1; // r28 ^ prog.c:13:14: warning: variable 'edi' set but not used [-Wunused-but-set-variable] __size32 edi; // r31 ^ prog.c: At top level: prog.c:57:25: error: unknown type name '__size32' void *proc2(int param1, __size32 param2, __size32 param3, __size32 param4) { ^ prog.c:57:42: error: unknown type name '__size32' void *proc2(int param1, __size32 param2, __size32 param3, __size32 param4) { ^ prog.c:57:59: error: unknown type name '__size32' void *proc2(int param1, __size32 param2, __size32 param3, __size32 param4) { ^ prog.c: In function '_start': prog.c:72:5: error: unknown type name '__size32' __size32 ebx; // r27 ^ prog.c:73:5: error: unknown type name '__size32' __size32 edi; // r31 ^ prog.c:74:5: error: unknown type name '__size32' __size32 esi; // r30 ^ prog.c:79:5: warning: implicit declaration of function 'proc2' [-Wimplicit-function-declaration] proc2(12, ebx, esi, edi); ^ prog.c:80:7: error: '__size32' undeclared (first use in this function) *(__size32*)(ebp - 4) = 0; ^ prog.c:80:16: error: expected expression before ')' token *(__size32*)(ebp - 4) = 0; ^ prog.c:80:18: error: 'ebp' undeclared (first use in this function) *(__size32*)(ebp - 4) = 0; ^
Standard output is empty