home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Collection of Hack-Phreak Scene Programs
/
cleanhpvac.zip
/
cleanhpvac
/
B.ZIP
/
BATMAN.EXE
/
PKZIP.LST
< prev
Wrap
File List
|
1992-06-17
|
11KB
|
252 lines
pkzip.lst Sourcer Listing v3.07 17-Jun-92 2:56 pm Page 1
PAGE 59,132
;██████████████████████████████████████████████████████████████████████████
;██ ██
;██ PKZIP ██
;██ ██
;██ Created: 14-Jun-92 ██
;██ Version: ██
;██ Passes: 5 Analysis Options on: QRS ██
;██ Copyright 1991 Borland Intl. ██
;██ ██
;██████████████████████████████████████████████████████████████████████████
.err Target Assembler set to NONE, re-assembly not recomended
.286c
= 0056 data_1e equ 56h ; (0000:0056=70h)
= 0070 data_2e equ 70h ; (0000:0070=53h)
= 028E data_3e equ 28Eh ; (0000:028E=0)
= 0002 data_4e equ 2 ; (9540:0002=0)
= 002C data_5e equ 2Ch ; (9540:002C=0)
= 0057 data_6e equ 57h ; (9540:0057=0)
= 0094 data_7e equ 94h ; (9540:0094=0)
= 009C data_8e equ 9Ch ; (9540:009C=0)
= 00AA data_9e equ 0AAh ; (9540:00AA=0)
= 00AC data_10e equ 0ACh ; (9540:00AC=0)
= 00B2 data_11e equ 0B2h ; (9540:00B2=0)
= 00B4 data_12e equ 0B4h ; (9540:00B4=0)
= 00B6 data_13e equ 0B6h ; (9540:00B6=0)
= 00C0 data_14e equ 0C0h ; (9540:00C0=0)
= 00C4 data_15e equ 0C4h ; (9540:00C4=0)
= 00C6 data_16e equ 0C6h ; (9540:00C6=0)
= 01F2 data_17e equ 1F2h ; (9540:01F2=1E8Bh)
= 01F4 data_18e equ 1F4h ; (9540:01F4=1F2h)
= 021E data_19e equ 21Eh ; (9540:021E=0CD00h)
= 0220 data_20e equ 220h ; (9540:0220=1Ah)
= 027E data_21e equ 27Eh ; (9540:027E=402h)
= 0280 data_22e equ 280h ; (9540:0280=0D480h)
= 0282 data_23e equ 282h ; (9540:0282=4600h)
= 0284 data_24e equ 284h ; (9540:0284=0F7E2h)
= 0286 data_25e equ 286h ; (9540:0286=5C2Dh)
= 0288 data_26e equ 288h ; (9540:0288=740Dh)
= 028E data_27e equ 28Eh ; (9540:028E=2FBAh)
= 02CE data_28e equ 2CEh ; (9540:02CE=7E06h)
= 0094 data_81e equ 94h ; (964D:0094=0)
;-------------------------------------------------------------- seg_a ----
seg_a segment para public
assume cs:seg_a , ds:seg_a , ss:stack_seg_c
;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
; SUBROUTINE
;
pkzip.lst Sourcer Listing v3.07 17-Jun-92 2:56 pm Page 2
; Called from: 9550:02FE
;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
sub_1 proc near
sub_1 endp
;██████████████████████████████████████████████████████████████████████████
;
; Program Entry Point
;
;██████████████████████████████████████████████████████████████████████████
pkzip proc far
9550:0000 start:
9550:0000 BA 9620 mov dx,seg seg_b
9550:0003 2E: 89 16 028D mov word ptr cs:[28Dh],dx ; (9550:028D=0)
9550:0008 B4 30 mov ah,30h ; '0'
9550:000A CD 21 int 21h ; DOS Services ah=function 30h
; get DOS version number ax
9550:000C 8B 2E 0002 mov bp,ds:data_4e ; (9540:0002=0)
9550:0010 8B 1E 002C mov bx,ds:data_5e ; (9540:002C=0)
9550:0014 8E DA mov ds,dx
assume ds:seg_b
9550:0016 A3 0092 mov data_48,ax ; (9620:0092=0)
9550:0019 8C 06 0090 mov data_47,es ; (9620:0090=9540h)
9550:001D 89 1E 008C mov word ptr data_44+2,bx ; (9620:008C=0)
9550:0021 89 2E 00A8 mov data_56,bp ; (9620:00A8=0)
9550:0025 E8 0181 call sub_5 ; (01A9)
9550:0028 C4 3E 008A les di,data_44 ; (9620:008A=0) Load 32 bit ptr
9550:002C 8B C7 mov ax,di
9550:002E 8B D8 mov bx,ax
9550:0030 B9 7FFF mov cx,7FFFh
9550:0033 FC cld ; Clear direction
9550:0034 loc_1: ; xref 9550:003C
9550:0034 F2/ AE repne scasb ; Rep zf=0+cx >0 Scan es:[di] for al
9550:0036 E3 61 jcxz loc_4 ; Jump if cx=0
9550:0038 43 inc bx
9550:0039 26: 38 05 cmp es:[di],al
9550:003C 75 F6 jne loc_1 ; Jump if not equal
9550:003E 80 CD 80 or ch,80h
9550:0041 F7 D9 neg cx
9550:0043 89 0E 008A mov word ptr data_44,cx ; (9620:008A=0)
9550:0047 B9 0001 mov cx,1
9550:004A D3 E3 shl bx,cl ; Shift w/zeros fill
9550:004C 83 C3 08 add bx,8
9550:004F 83 E3 F8 and bx,0FFF8h
9550:0052 89 1E 008E mov data_46,bx ; (9620:008E=0)
9550:0056 8C DA mov dx,ds
9550:0058 2B EA sub bp,dx
9550:005A 8B 3E 027A mov di,data_73 ; (9620:027A=1000h)
9550:005E 81 FF 0200 cmp di,200h
9550:0062 73 07 jae loc_2 ; Jump if above or =
9550:0064 BF 0200 mov di,200h
9550:0067 89 3E 027A mov data_73,di ; (9620:027A=1000h)
pkzip.lst Sourcer Listing v3.07 17-Jun-92 2:56 pm Page 3
9550:006B loc_2: ; xref 9550:0062
9550:006B 81 C7 02D0 add di,2D0h
9550:006F 72 28 jc loc_4 ; Jump if carry Set
9550:0071 03 3E 021C add di,data_69 ; (9620:021C=0)
9550:0075 72 22 jc loc_4 ; Jump if carry Set
9550:0077 B1 04 mov cl,4
9550:0079 D3 EF shr di,cl ; Shift w/zeros fill
9550:007B 47 inc di
9550:007C 3B EF cmp bp,di
9550:007E 72 19 jb loc_4 ; Jump if below
9550:0080 83 3E 027A 00 cmp data_73,0 ; (9620:027A=1000h)
9550:0085 74 07 je loc_3 ; Jump if equal
9550:0087 83 3E 021C 00 cmp data_69,0 ; (9620:021C=0)
9550:008C 75 0E jne loc_5 ; Jump if not equal
9550:008E loc_3: ; xref 9550:0085
9550:008E BF 1000 mov di,1000h
9550:0091 3B EF cmp bp,di
9550:0093 77 07 ja loc_5 ; Jump if above
9550:0095 8B FD mov di,bp
9550:0097 EB 03 jmp short loc_5 ; (009C)
9550:0099 loc_4: ; xref 9550:0036, 006F, 0075, 007E
9550:0099 E9 01DC jmp loc_22 ; (0278)
9550:009C loc_5: ; xref 9550:008C, 0093, 0097
9550:009C 8B DF mov bx,di
9550:009E 03 DA add bx,dx
9550:00A0 89 1E 00A0 mov data_54,bx ; (9620:00A0=0)
9550:00A4 89 1E 00A4 mov data_55,bx ; (9620:00A4=0)
9550:00A8 A1 0090 mov ax,data_47 ; (9620:0090=9540h)
9550:00AB 2B D8 sub bx,ax
9550:00AD 8E C0 mov es,ax
9550:00AF B4 4A mov ah,4Ah ; 'J'
9550:00B1 57 push di
9550:00B2 CD 21 int 21h ; DOS Services ah=function 4Ah
; change mem allocation, bx=siz
9550:00B4 5F pop di
9550:00B5 D3 E7 shl di,cl ; Shift w/zeros fill
9550:00B7 FA cli ; Disable interrupts
9550:00B8 8E D2 mov ss,dx
9550:00BA 8B E7 mov sp,di
9550:00BC FB sti ; Enable interrupts
9550:00BD 33 C0 xor ax,ax ; Zero register
9550:00BF 2E: 8E 06 028D mov es,word ptr cs:[28Dh] ; (9550:028D=0)
9550:00C4 .BF 028E mov di,data_3e ; (0000:028E=0)
9550:00C7 B9 02D0 mov cx,2D0h
9550:00CA 2B CF sub cx,di
9550:00CC FC cld ; Clear direction
9550:00CD F3/ AA rep stosb ; Rep when cx >0 Store al to es:[di]
9550:00CF 83 3E 01F2 14 cmp data_67,14h ; (9620:01F2=14h)
9550:00D4 76 47 jbe loc_8 ; Jump if below or =
9550:00D6 80 3E 0092 03 cmp byte ptr data_48,3 ; (9620:0092=0)
9550:00DB 72 40 jb loc_8 ; Jump if below
9550:00DD 77 07 ja loc_6 ; Jump if above
9550:00DF 80 3E 0093 1E cmp byte ptr data_48+1,1Eh ; (9620:0093=0)
9550:00E4 72 37 jb loc_8 ; Jump if below
9550:00E6 loc_6: ; xref 9550:00DD
9550:00E6 B8 5801 mov ax,5801h
9550:00E9 BB 0002 mov bx,2
pkzip.lst Sourcer Listing v3.07 17-Jun-92 2:56 pm Page 4
9550:00EC CD 21 int 21h ; DOS Services ah=function 58h
; get/set allocation strategy
9550:00EE 72 2A jc loc_7 ; Jump if carry Set
9550:00F0 B4 67 mov ah,67h ; 'g'
9550:00F2 8B 1E 01F2 mov bx,data_67 ; (9620:01F2=14h)
9550:00F6 CD 21 int 21h ; DOS Services ah=function 67h
; set maximum number of handles
9550:00F8 72 20 jc loc_7 ; Jump if carry Set
9550:00FA B4 48 mov ah,48h ; 'H'
9550:00FC BB 0001 mov bx,1
9550:00FF CD 21 int 21h ; DOS Services ah=function 48h
; allocate memory, bx=bytes/16
9550:0101 72 17 jc loc_7 ; Jump if carry Set
9550:0103 40 inc ax
9550:0104 A3 00A8 mov data_56,ax ; (9620:00A8=0)
9550:0107 48 dec ax
9550:0108 8E C0 mov es,ax
9550:010A B4 49 mov ah,49h ; 'I'
9550:010C CD 21 int 21h ; DOS Services ah=function 49h
; release memory block, es=seg
9550:010E 72 0A jc loc_7 ; Jump if carry Set
9550:0110 B8 5801 mov ax,5801h
9550:0113 BB 0000 mov bx,0
9550:0116 CD 21 int 21h ; DOS Services ah=function 58h
; get/set allocation strategy
9550:0118 73 03 jnc loc_8 ; Jump if carry=0
9550:011A loc_7: ; xref 9550:00EE, 00F8, 0101, 010E
9550:011A E9 015B jmp loc_22 ; (0278)
9550:011D loc_8: ; xref 9550:00D4, 00DB, 00E4, 0118
9550:011D B4 00 mov ah,0
9550:011F CD 1A int 1Ah ; Real time clock ah=func 00h
; get system timer count cx,dx
9550:0121 89 16 0096 mov data_51,dx ; (9620:0096=0)
9550:0125 89 0E 0098 mov data_52,cx ; (9620:0098=0)
9550:0129 0A C0 or al,al ; Zero ?
9550:012B 74 0C jz loc_9 ; Jump if zero
9550:012D B8 0040 mov ax,40h
9550:0130 8E C0 mov es,ax
9550:0132 .BB 0070 mov bx,data_2e ; (0000:0070=53h)
9550:0135 26: C6 07 01 mov byte ptr es:[bx],1
9550:0139 loc_9: ; xref 9550:012B
9550:0139 33 ED xor bp,bp ; Zero register
9550:013B 2E: 8E 06 028D mov es,word ptr cs:[28Dh] ; (9550:028D=0)
9550:0140 BE 0288 mov si,288h
9550:0143 BF 028E mov di,28Eh
9550:0146 E8 00D0 call sub_7 ; (0219)
9550:0149 FF 36 0088 push data_43 ; (9620:0088=0)
9550:014D FF 36 0086 push data_42 ; (9620:0086=0)
9550:0151 FF 36 0084 push data_41 ; (9620:0084=0)
9550:0155 E8 0139 call sub_9 ; (0291)
9550:0158 50 push ax
9550:0159 E8 01D8 call sub_11 ; (0334)
pkzip endp
;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
; SUBROUTINE
pkzip.lst Sourcer Listing v3.07 17-Jun-92 2:56 pm Page 5
;
; Called from: 9550:0309
;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
sub_2 proc near
9550:015C 2E: 8E 06 028D mov es,word ptr cs:[28Dh] ; (9550:028D=0)
9550:0161 56 push si
9550:0162 57 push di
9550:0163 BE 028E mov si,28Eh
9550:0166 BF 028E mov di,28Eh
9550:0169 E8 00AD call sub_7 ; (0219)
9550:016C 5F pop di
9550:016D 5E pop si
9550:016E C1 pro