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

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

L080484b8()
{



    goto ( *L08049a08);
    (save)0;
    goto L080484a8;
}

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

L080484c8()
{



    goto ( *L08049a0c);
    (save)8;
    goto L080484a8;
}

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

L080484d8()
{



    goto ( *L08049a10);
    (save)16;
    goto L080484a8;
}

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

L080484e8()
{



    goto ( *L08049a14);
    (save)24;
    goto L080484a8;
}

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

L080484f8()
{



    goto ( *L08049a18);
    (save)32;
    goto L080484a8;
}

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

L08048508()
{



    goto ( *L08049a1c);
    (save)40;
    goto L080484a8;
}

/* DEST BLOCK NOT FOUND: 08048523 -> 080484a8 */
/*	Procedure: 0x08048518 - 0x08048527
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08048518()
{



    goto ( *L08049a20);
    (save)48;
    goto L080484a8;
}

/* DEST BLOCK NOT FOUND: 08048533 -> 080484a8 */
/*	Procedure: 0x08048528 - 0x08048537
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08048528()
{



    goto ( *L08049a24);
    (save)56;
    goto L080484a8;
}

/* DEST BLOCK NOT FOUND: 08048543 -> 080484a8 */
/*	Procedure: 0x08048538 - 0x08048547
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08048538()
{



    goto ( *L08049a28);
    (save)64;
    goto L080484a8;
}

/* DEST BLOCK NOT FOUND: 08048553 -> 080484a8 */
/*	Procedure: 0x08048548 - 0x08048557
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08048548()
{



    goto ( *L08049a2c);
    (save)72;
    goto L080484a8;
}

/* DEST BLOCK NOT FOUND: 08048563 -> 080484a8 */
/*	Procedure: 0x08048558 - 0x08048567
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08048558()
{



    goto ( *L08049a30);
    (save)80;
    goto L080484a8;
}

/* DEST BLOCK NOT FOUND: 08048573 -> 080484a8 */
/*	Procedure: 0x08048568 - 0x08048577
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08048568()
{



    goto ( *L08049a34);
    (save)88;
    goto L080484a8;
}

/* DEST BLOCK NOT FOUND: 08048583 -> 080484a8 */
/*	Procedure: 0x08048578 - 0x08048587
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08048578()
{



    goto ( *L08049a38);
    (save)96;
    goto L080484a8;
}

/* DEST BLOCK NOT FOUND: 08048593 -> 080484a8 */
/*	Procedure: 0x08048588 - 0x0804859F
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

L08048588()
{



    goto ( *L08049a3c);
    (save)104;
    goto L080484a8;
    *eax = *eax + al;
    *eax = *eax + al;
    *eax = *eax + al;
    *eax = *eax + al;
}

/*	Procedure: 0x080485A0 - 0x0804861F
 *	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: 0x08048620 - 0x0804864F
 *	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;
    }
L08048634:
    *( *ebx)();
    ebx = ebx + 4;
    if(*ebx != 0) {
        goto L08048634;
    }
}

/*	Procedure: 0x08048650 - 0x0804865F
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

fini_dummy()
{



}

/*	Procedure: 0x08048660 - 0x080487EF
 *	Argument size: -80
 *	Local size: 92
 *	Save regs size: 4
 */

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



    sprintf( & buff, "%08lX:", offset);
    if(cnt > 16) {
        cnt = 16;
    }
    c = 0;
    while(cnt > c) {
        ecx = c;
        sprintf( & buff + ecx + ecx + ecx + 9, " %02lX", *(p + c) & 255);
        c = c + 1;
    }
L080486d0:
    eax = c;
    c = c + 1;
    if(eax <= 15) {
        strcat( & buff, " ");
        goto L080486d0;
    }
    len = strlen( & buff);
    strcpy( & buff + len, " |");
    c = 0;
    while(cnt > c) {
        eax = len + c;
        edx = & buff;
        if(*(p + c) > 31) {
            if(*(p + c) <= 126) {
                goto L08048765;
            }
        }
        cl = 46;
        goto L08048772;
L08048765:
        cl = *(p + c);
L08048772:
        *(eax + edx) = cl;
        c = c + 1;
    }
    while(c <= 15) {
        *(len + c + & buff) = 32;
        c = c + 1;
    }
    strcpy( & buff + len + c, "|");
    return(printf("%s\n", & buff));
}

/*	Procedure: 0x080487F0 - 0x080488DF
 *	Argument size: -88
 *	Local size: 92
 *	Save regs size: 0
 */

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



    if(stat(fname, & st) != 0) {
        fp = fopen(fname, "rb");
        if(fp != 0) {
            offset = 0;
L08048867:
            if(st.st_size > offset) {
                cnt = fread( & buff, 1, 16, fp);
                if(cnt != 0) {
                    dumpline( & buff, offset, cnt);
                    offset = offset + cnt;
                    goto L08048867;
                }
            } else {
            }
            fclose(fp);
            eax = 0;
        } else {
            perror(fname);
            eax = 1;
        }
    } else {
        perror(fname);
        eax = 1;
    }
}

/*	Procedure: 0x080488E0 - 0x0804894F
 *	Argument size: 0
 *	Local size: 8
 *	Save regs size: 0
 */

main(int argc, char ** argv)
{
	int i;
	int errs;



    errs = 0;
    i = 1;
    while(argc > i) {
        errs = errs + hexdump( *(argv + i * 4));
        i = i + 1;
    }
    eax = errs;
}

/*	Procedure: 0x08048950 - 0x0804897F
 *	Argument size: 8
 *	Local size: 0
 *	Save regs size: 8
 */

stat(char * __path, struct stat* __statbuf)
{



    eax = _xstat(1, __path, __statbuf);
}

/*	Procedure: 0x08048980 - 0x080489AF
 *	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;
    }
L08048994:
    *( *ebx)();
    ebx = ebx + -4;
    if(*ebx != -1) {
        goto L08048994;
    }
}

/*	Procedure: 0x080489B0 - 0x080489B7
 *	Argument size: 0
 *	Local size: 0
 *	Save regs size: 0
 */

init_dummy()
{



}

/* address  size  */
/* 0x080484a0       1 */ /* unknown */ void 	_init;
/* 0x080485a0       0 */ /* unknown */ void 	_start;
/* 0x080485a0       0 */ /* unknown */ void 	___crt_dummy__;
/* 0x08048610       0 */ /* unknown */ void 	done;
/* 0x08048620      48 */ /* unknown */ void 	__do_global_dtors_aux;
/* 0x08048650      16 */ /* unknown */ void 	fini_dummy;
/* 0x08048660       0 */ void 	dumpline(unsigned char *, unsigned long , int);
/* 0x08048660       0 */ /* unknown */ void 	/g/web/rec/ex386/;
/* 0x08048660       0 */ /* unknown */ void 	hd.c;
/* 0x080487f0     240 */ int	hexdump(char *);
/* 0x080488e0     112 */ int	main(int, char **);
/* 0x08048950      41 */ int	stat(char *, struct stat*);
/* 0x08048979       0 */ /* unknown */ void 	;
/* 0x08048980      48 */ /* unknown */ void 	__do_global_ctors_aux;
/* 0x080489b0       0 */ /* unknown */ void 	init_dummy;
/* 0x080489b8       1 */ /* unknown */ void 	_etext;
/* 0x080489c0       1 */ /* unknown */ void 	_fini;
/* 0x080499e8       4 */ /* unknown */ void 	__environ;
/* 0x080499e8       1 */ /* unknown */ void 	environ;
/* 0x080499ec       4 */ /* unknown */ void 	force_to_data;
/* 0x080499ec       0 */ /* unknown */ void 	__CTOR_LIST__;
/* 0x080499f0       0 */ /* unknown */ void 	__CTOR_END__;
/* 0x080499f4       0 */ /* unknown */ void 	__DTOR_LIST__;
/* 0x080499f8       4 */ /* unknown */ void 	__DTOR_END__;
/* 0x080499fc       1 */ /* unknown */ void 	_GLOBAL_OFFSET_TABLE_;
/* 0x08049a40       1 */ /* unknown */ void 	_DYNAMIC;
/* 0x08049ac8       2 */ /* unknown */ void 	__fpu_control;
/* 0x08049ac8       0 */ /* unknown */ void 	_edata;
/* 0x08049ac8       1 */ /* unknown */ void 	__bss_start;
/* 0x08049acc       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