<pre>
; Virogen's PE Realinger v0.4, (c)1998 Virogen[NOP]
; http://virogen.cjb.net email:vgen@hotmail.com
; ---------------------------------------------------------------
; 
; This is a simple little utility I whipped up fast to make PEs
; smaller by rebuilding them, changing the file alignment to 200h (if
; it was 1000h) and removing other unnecessary space in the PE. It 
; works on both PE (win32) EXE and DLLs. What it does:
;
; Features:
;   -makes PE exe/dlls smaller
;   -removes unnecessary padding from PEs
;   -removes unncesssary padding from object table
;   -stores new corrrect checksum
;   -does not alter date/time or file attributes
; 
; Explanation:
; For whatever reason (I think perhaps for quicker load time), newer
; win32 executables typically have a file alignment of 1000h (4096).
; What this means is that there is a shitload of wasted space in the
; executable. To explain this, consider an object that has a real 
; physical size of 8050h. Since this physical size must be aligned
; on a file alignment boundary, the end physical size of the object
; is 9000h. This is 0FB0h (4016) bytes of wasted disk space for this
; one object. Now if we change the file alignment to 200h (512) then
; the end physical size of the object is only 8200h, wasting only 1B0h
; (423) bytes of disk space. 
; Vgalign also checks for other wasted space in the PE file and removes
; it.
; 
;  
; Updates:
;   v0.01: Initial release
;   v0.02: Now removes unnecessary padding from PEs. Some assemblers and other compilers
;         may insert unallocated bytes at the end of the EXE to put it on the object
;         alignment boundary. This is not necessary. 
;	  Also displays old/new file size and difference. Whoop!
;   v0.03: Removes unnecessary space from object table.
;   v0.4: Sets total size of header correctly if object table size was adjusted.
;	  converted into console application
;	  accepts wildcards as argument (must be in current directory)
;
; latez
; Virogen[NOP]
</pre>