/*	This file was automatically created by
 *	Reverse Engineering Compiler 1.4a (C) Giampiero Caprino (Nov 22 1998)
 *	Input file: 'hdgO.x'
 */

/* DEST BLOCK NOT FOUND: 08048473 -> 08048458 */
/*	Procedure: 0x08048468 - 0x08048477
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08048468()
{



    goto ( *L08049868);
    (save)0;
    goto L08048458;
}

/* DEST BLOCK NOT FOUND: 08048483 -> 08048458 */
/*	Procedure: 0x08048478 - 0x08048487
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08048478()
{



    goto ( *L0804986c);
    (save)8;
    goto L08048458;
}

/* DEST BLOCK NOT FOUND: 08048493 -> 08048458 */
/*	Procedure: 0x08048488 - 0x08048497
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08048488()
{



    goto ( *L08049870);
    (save)16;
    goto L08048458;
}

/* DEST BLOCK NOT FOUND: 080484a3 -> 08048458 */
/*	Procedure: 0x08048498 - 0x080484A7
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08048498()
{



    goto ( *L08049874);
    (save)24;
    goto L08048458;
}

/* DEST BLOCK NOT FOUND: 080484b3 -> 08048458 */
/*	Procedure: 0x080484A8 - 0x080484B7
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L080484a8()
{



    goto ( *L08049878);
    (save)32;
    goto L08048458;
}

/* DEST BLOCK NOT FOUND: 080484c3 -> 08048458 */
/*	Procedure: 0x080484B8 - 0x080484C7
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L080484b8()
{



    goto ( *L0804987c);
    (save)40;
    goto L08048458;
}

/* DEST BLOCK NOT FOUND: 080484d3 -> 08048458 */
/*	Procedure: 0x080484C8 - 0x080484D7
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L080484c8()
{



    goto ( *L08049880);
    (save)48;
    goto L08048458;
}

/* DEST BLOCK NOT FOUND: 080484e3 -> 08048458 */
/*	Procedure: 0x080484D8 - 0x080484E7
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L080484d8()
{



    goto ( *L08049884);
    (save)56;
    goto L08048458;
}

/* DEST BLOCK NOT FOUND: 080484f3 -> 08048458 */
/*	Procedure: 0x080484E8 - 0x080484F7
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L080484e8()
{



    goto ( *L08049888);
    (save)64;
    goto L08048458;
}

/* DEST BLOCK NOT FOUND: 08048503 -> 08048458 */
/*	Procedure: 0x080484F8 - 0x08048507
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L080484f8()
{



    goto ( *L0804988c);
    (save)72;
    goto L08048458;
}

/* DEST BLOCK NOT FOUND: 08048513 -> 08048458 */
/*	Procedure: 0x08048508 - 0x08048517
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08048508()
{



    goto ( *L08049890);
    (save)80;
    goto L08048458;
}

/* DEST BLOCK NOT FOUND: 08048523 -> 08048458 */
/*	Procedure: 0x08048518 - 0x0804852F
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08048518()
{



    goto ( *L08049894);
    (save)88;
    goto L08048458;
    *eax = *eax + al;
    *eax = *eax + al;
    *eax = *eax + al;
    *eax = *eax + al;
}

/*	Procedure: 0x08048530 - 0x080485AF
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

_start()
{



    (restore)ecx;
    ebx = esp;
    eax = esp;
    esp = esp & -8;
    eax = eax + ecx + ecx + ecx + ecx + 4;
    (save)0;
    (save)0;
    (save)0;
    ebp = esp;
    (save)eax;
    (save)ebx;
    (save)ecx;
    eax = 136;
    ebx = 0;
    asm("int $0x80");
    __environ = *(esp + 8);
    (save)__fpu_control & 65535;
    __setfpucw();
    __libc_init();
    atexit(_fini);
    _init();
    exit(main());
    (restore)ebx;
    eax = 1;
    asm("int $0x80");
    goto done;
}

/*	Procedure: 0x080485B0 - 0x080485DF
 *	Argument size: -4
 *	Local size: 4
 *	Save regs size: 4
 */

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



    ebx = __DTOR_END__;
    if(__DTOR_END__ == 0) {
        return;
    }
L080485c4:
    *( *ebx)();
    ebx = ebx + 4;
    if(*ebx != 0) {
        goto L080485c4;
    }
}

/*	Procedure: 0x080485E0 - 0x080485EF
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

fini_dummy()
{



}

/*	Procedure: 0x080485F0 - 0x080486FF
 *	Argument size: 12
 *	Local size: 88
 *	Save regs size: 12
 */

dumpline(unsigned char * p, unsigned long  offset, int cnt)
{
	char  buff[80];



    sprintf( & buff, "%08lX:", offset);
    if(cnt > 16) {
        cnt = 16;
    }
    ebx = 0;
    if(cnt > 0) {
        edi = & buff;
L08048628:
        sprintf((ebx + ebx * 2) * edi + 9, " %02lX", *(ebx + p) & 255);
        ebx = ebx + 1;
        if(cnt > ebx) {
            goto L08048628;
        }
    }
    eax = ebx;
    ebx = ebx + 1;
    if(eax <= 15) {
        edi = & buff;
L08048658:
        strcat(edi, " ");
        eax = ebx;
        ebx = ebx + 1;
        if(eax <= 15) {
            goto L08048658;
        }
    }
    al = 0;
    edi = & buff;
    asm("cld ");
    asm("repnz scasb %es:(%edi),%al");
    edi = !-1 + -1;
    *(edi * ebp + -80) = *" |";
    ebx = 0;
    if(cnt > 0) {
        Vffffffac = & buff;
L08048698:
        Vffffffa8 = ebx + edi;
        al = *(ebx + esi) + 224;
        dl = 46;
        if(al <= 94) {
            dl = *(ebx + esi);
        }
        *(Vffffffa8 + Vffffffac) = dl;
        ebx = ebx + 1;
        if(cnt > ebx) {
            goto L08048698;
        }
    }
    if(ebx <= 15) {
        edx = & buff;
L080486c8:
        *(ebx + edi + edx) = 32;
        ebx = ebx + 1;
        if(ebx <= 15) {
            goto L080486c8;
        }
    }
    eax = edi + ebp;
    *(ebx * eax + -80) = *"|";
    return(printf("%s\n", & buff));
}

/*	Procedure: 0x08048700 - 0x0804879F
 *	Argument size: 4
 *	Local size: 84
 *	Save regs size: 12
 */

hexdump(char * fname)
{
	unsigned char  buff[16];
	struct _IO_FILE* fp;
	struct stat st;



    ebx = fname;
    if(_xstat(1, ebx, & st) != 0) {
        eax = fopen(ebx, "rb");
        fp = eax;
        if(fp == 0) {
            goto L08048734;
        }
        esi = 0;
        if(st.st_size > 0) {
            edi = & buff;
L0804875c:
            ebx = fread(edi, 1, 16, fp);
            if(ebx != 0) {
                dumpline(edi, esi, ebx);
                esi = esi + ebx;
                if(st.st_size > esi) {
                    goto L0804875c;
                }
            }
        }
        fclose(fp);
        eax = 0;
    } else {
L08048734:
        perror(ebx);
        eax = 1;
    }
}

/*	Procedure: 0x080487A0 - 0x080487DF
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 12
 */

main(int argc, char ** argv)
{



    esi = 0;
    ebx = 1;
    if(1 < edi) {
L080487b4:
        esi = esi + hexdump( *(argv + ebx * 4));
        ebx = ebx + 1;
        if(ebx < edi) {
            goto L080487b4;
        }
    }
    return(esi);
}

/*	Procedure: 0x080487E0 - 0x0804880F
 *	Argument size: -4
 *	Local size: 4
 *	Save regs size: 4
 */

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



    ebx = force_to_data;
    if(force_to_data == -1) {
        return;
    }
L080487f4:
    *( *ebx)();
    ebx = ebx + -4;
    if(*ebx != -1) {
        goto L080487f4;
    }
}

/*	Procedure: 0x08048810 - 0x08048817
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

init_dummy()
{



}

/* address  size  */
/* 0x08048450       1 */ /* unknown */ void 	_init;
/* 0x08048530       0 */ /* unknown */ void 	_start;
/* 0x08048530       0 */ /* unknown */ void 	___crt_dummy__;
/* 0x080485a0       0 */ /* unknown */ void 	done;
/* 0x080485b0      48 */ /* unknown */ void 	__do_global_dtors_aux;
/* 0x080485e0      16 */ /* unknown */ void 	fini_dummy;
/* 0x080485f0       0 */ void 	dumpline(unsigned char *, unsigned long , int);
/* 0x080485f0       0 */ /* unknown */ void 	/g/web/rec/ex386/;
/* 0x080485f0       0 */ /* unknown */ void 	hd.c;
/* 0x08048700     160 */ int	hexdump(char *);
/* 0x080487a0      54 */ int	main(int, char **);
/* 0x080487d6       0 */ /* unknown */ void 	;
/* 0x080487e0      48 */ /* unknown */ void 	__do_global_ctors_aux;
/* 0x08048810       0 */ /* unknown */ void 	init_dummy;
/* 0x08048818       1 */ /* unknown */ void 	_etext;
/* 0x08048820       1 */ /* unknown */ void 	_fini;
/* 0x08049848       4 */ /* unknown */ void 	__environ;
/* 0x08049848       1 */ /* unknown */ void 	environ;
/* 0x0804984c       4 */ /* unknown */ void 	force_to_data;
/* 0x0804984c       0 */ /* unknown */ void 	__CTOR_LIST__;
/* 0x08049850       0 */ /* unknown */ void 	__CTOR_END__;
/* 0x08049854       0 */ /* unknown */ void 	__DTOR_LIST__;
/* 0x08049858       4 */ /* unknown */ void 	__DTOR_END__;
/* 0x0804985c       1 */ /* unknown */ void 	_GLOBAL_OFFSET_TABLE_;
/* 0x08049898       1 */ /* unknown */ void 	_DYNAMIC;
/* 0x08049920       2 */ /* unknown */ void 	__fpu_control;
/* 0x08049920       0 */ /* unknown */ void 	_edata;
/* 0x08049920       1 */ /* unknown */ void 	__bss_start;
/* 0x08049924       1 */ /* unknown */ void 	_end;
#if 0 /* auxiliary information */
# Current option values:
option: -compactcalls
option: +compactexprs
option: +compactifs
option: +compset
option: -dfoproc
option: -disasmonly
option: -displaylabels
option: +docase
option: +dofor
option: +doifs
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: -dumpsblocks
option: -dumpsets
option: -dumpsizes
option: -flag16
option: +fullscreen
option: -getpattern
option: -help
option: -hexconst
option: -html
option: +insertlabels
option: -int16
option: +int32
option: -interactive
option: +locals
option: -nohtmltabs
option: -okclone
option: -outprocs
option: -outrefs
option: -overrule
option: +rdonly
option: -showjump
option: -showlabel
option: -showprotosym
option: -showreg
option: -showstring
option: -silent
option: +simplifyexprs
option: -strallregions
option: -traceall
option: -tracesets
option: -types
option: +usesymtab
option: -validatebr
option: -validatereg
option: +validatestr
#endif