fork download
  1. __size32 global2 = 0x44bf19b1;// 4 bytes
  2. int global0 = 0xbb40e64e;
  3.  
  4. void *proc2(int param1, __size32 param2, __size32 param3, __size32 param4);
  5. void _start();
  6.  
  7. // address: 0x4015f1
  8. __size32 proc1(int param1, int param2) {
  9. __size32 eax; // r24
  10. int eax_1; // r24{47}
  11. int ecx; // r25
  12. int ecx_1; // r25{99}
  13. __size32 edi; // r31
  14. __size32 esi; // r30
  15. int esp; // r28
  16. union { __size32 * x13; int x14; } esp_1; // r28
  17. __size32 *esp_3; // r28{56}
  18. int local4; // ecx_1{99}
  19. union { __size32 * x13; int x14; } local5; // esp{107}
  20.  
  21. esp_1 = (esp - 32);
  22. local5 = esp;
  23. if (global0 == 0xbb40e64e || (global0 & 0xffff0000) == 0) {
  24. GetSystemTimeAsFileTime();
  25. GetCurrentThreadId();
  26. GetCurrentProcessId();
  27. QueryPerformanceCounter();
  28. local5 = esp_3;
  29. ecx = param2 ^ param1;
  30. ecx = ecx ^ 0 ^ eax ^ eax_1;
  31. ecx_1 = ecx ^ (esp - 8);
  32. local4 = ecx_1;
  33. if ((ecx ^ esp - 8) != 0xbb40e64e) {
  34. tmp1 = (ecx ^ esp - 8) & 0xffff0000;
  35. if (tmp1 == 0) {
  36. eax = ecx ^ esp - 8 | 0x4711;
  37. ecx = ecx ^ esp - 8 | eax * 0x10000;
  38. local4 = ecx;
  39. }
  40. } else {
  41. ecx = 0xbb40e64f;
  42. local4 = ecx;
  43. }
  44. ecx_1 = local4;
  45. global0 = ecx_1;
  46. global2 = !ecx_1;
  47. } else {
  48. global2 = !global0;
  49. }
  50. esp = local5;
  51. edi = *esp;
  52. esi = *(esp + 4);
  53. return esi; /* WARNING: Also returning: edi := edi */
  54. }
  55.  
  56. // address: 0x401800
  57. void *proc2(int param1, __size32 param2, __size32 param3, __size32 param4) {
  58. __size32 *esp; // r28
  59. __size32 local0; // m[esp]
  60.  
  61. *(__size32*)(esp - param1 - 12) = param2;
  62. *(__size32*)(esp - param1 - 16) = param3;
  63. *(__size32*)(esp - param1 - 20) = param4;
  64. *(int*)(esp - param1 - 24) = global0 ^ (esp + 8);
  65. *(__size32*)(esp - param1 - 28) = local0;
  66. *(union { __size32 * x107; int x108; }*)0 = (esp - 8);
  67. return (esp + 8);
  68. }
  69.  
  70. // address: 0x40130f
  71. void _start() {
  72. __size32 ebx; // r27
  73. __size32 edi; // r31
  74. __size32 esi; // r30
  75. int local1; // m[esp - 28]
  76. int local2; // m[esp - 24]
  77.  
  78. esi = proc1(local1, local2); /* Warning: also results in edi */
  79. proc2(12, ebx, esi, edi);
  80. *(__size32*)(ebp - 4) = 0;
  81. }
  82.  
  83.  
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
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;
                  ^
stdout
Standard output is empty