home *** CD-ROM | disk | FTP | other *** search
/ Collection of Hack-Phreak Scene Programs / cleanhpvac.zip / cleanhpvac / B.ZIP / BATMAN.EXE / PKZIP.LST < prev   
File List  |  1992-06-17  |  11KB  |  252 lines

  1.       pkzip.lst                         Sourcer Listing v3.07    17-Jun-92   2:56 pm   Page 1
  2.  
  3.   
  4.                 PAGE  59,132
  5.   
  6.                 ;██████████████████████████████████████████████████████████████████████████
  7.                 ;██                                         ██
  8.                 ;██                    PKZIP                         ██
  9.                 ;██                                         ██
  10.                 ;██      Created:   14-Jun-92                             ██
  11.                 ;██      Version:                                 ██
  12.                 ;██      Passes:    5           Analysis Options on: QRS                 ██
  13.                 ;██      Copyright 1991    Borland Intl.                         ██
  14.                 ;██                                         ██
  15.                 ;██████████████████████████████████████████████████████████████████████████
  16.   
  17.                 .err     Target    Assembler set to NONE, re-assembly not recomended
  18.   
  19.                 .286c
  20.   
  21.      = 0056            data_1e        equ    56h            ; (0000:0056=70h)
  22.      = 0070            data_2e        equ    70h            ; (0000:0070=53h)
  23.      = 028E            data_3e        equ    28Eh            ; (0000:028E=0)
  24.      = 0002            data_4e        equ    2            ; (9540:0002=0)
  25.      = 002C            data_5e        equ    2Ch            ; (9540:002C=0)
  26.      = 0057            data_6e        equ    57h            ; (9540:0057=0)
  27.      = 0094            data_7e        equ    94h            ; (9540:0094=0)
  28.      = 009C            data_8e        equ    9Ch            ; (9540:009C=0)
  29.      = 00AA            data_9e        equ    0AAh            ; (9540:00AA=0)
  30.      = 00AC            data_10e    equ    0ACh            ; (9540:00AC=0)
  31.      = 00B2            data_11e    equ    0B2h            ; (9540:00B2=0)
  32.      = 00B4            data_12e    equ    0B4h            ; (9540:00B4=0)
  33.      = 00B6            data_13e    equ    0B6h            ; (9540:00B6=0)
  34.      = 00C0            data_14e    equ    0C0h            ; (9540:00C0=0)
  35.      = 00C4            data_15e    equ    0C4h            ; (9540:00C4=0)
  36.      = 00C6            data_16e    equ    0C6h            ; (9540:00C6=0)
  37.      = 01F2            data_17e    equ    1F2h            ; (9540:01F2=1E8Bh)
  38.      = 01F4            data_18e    equ    1F4h            ; (9540:01F4=1F2h)
  39.      = 021E            data_19e    equ    21Eh            ; (9540:021E=0CD00h)
  40.      = 0220            data_20e    equ    220h            ; (9540:0220=1Ah)
  41.      = 027E            data_21e    equ    27Eh            ; (9540:027E=402h)
  42.      = 0280            data_22e    equ    280h            ; (9540:0280=0D480h)
  43.      = 0282            data_23e    equ    282h            ; (9540:0282=4600h)
  44.      = 0284            data_24e    equ    284h            ; (9540:0284=0F7E2h)
  45.      = 0286            data_25e    equ    286h            ; (9540:0286=5C2Dh)
  46.      = 0288            data_26e    equ    288h            ; (9540:0288=740Dh)
  47.      = 028E            data_27e    equ    28Eh            ; (9540:028E=2FBAh)
  48.      = 02CE            data_28e    equ    2CEh            ; (9540:02CE=7E06h)
  49.      = 0094            data_81e    equ    94h            ; (964D:0094=0)
  50.   
  51.                 ;--------------------------------------------------------------    seg_a  ----
  52.   
  53.                 seg_a        segment    para public
  54.                         assume cs:seg_a , ds:seg_a , ss:stack_seg_c
  55.   
  56.   
  57.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  58.                 ;                   SUBROUTINE
  59.                 ;
  60.      pkzip.lst                         Sourcer Listing v3.07    17-Jun-92   2:56 pm   Page 2
  61.  
  62.                 ;         Called from:     9550:02FE
  63.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  64.   
  65.                 sub_1        proc    near
  66.                 sub_1        endp
  67.   
  68.   
  69.                 ;██████████████████████████████████████████████████████████████████████████
  70.                 ;
  71.                 ;            Program Entry Point
  72.                 ;
  73.                 ;██████████████████████████████████████████████████████████████████████████
  74.   
  75.   
  76.                 pkzip        proc    far
  77.   
  78. 9550:0000            start:
  79. 9550:0000  BA 9620                mov    dx,seg seg_b
  80. 9550:0003  2E: 89 16 028D            mov    word ptr cs:[28Dh],dx    ; (9550:028D=0)
  81. 9550:0008  B4 30                mov    ah,30h            ; '0'
  82. 9550:000A  CD 21                int    21h            ; DOS Services  ah=function 30h
  83.                                         ;  get DOS version number ax
  84. 9550:000C  8B 2E 0002                mov    bp,ds:data_4e        ; (9540:0002=0)
  85. 9550:0010  8B 1E 002C                mov    bx,ds:data_5e        ; (9540:002C=0)
  86. 9550:0014  8E DA                mov    ds,dx
  87.                         assume    ds:seg_b
  88. 9550:0016  A3 0092                mov    data_48,ax        ; (9620:0092=0)
  89. 9550:0019  8C 06 0090                mov    data_47,es        ; (9620:0090=9540h)
  90. 9550:001D  89 1E 008C                mov    word ptr data_44+2,bx    ; (9620:008C=0)
  91. 9550:0021  89 2E 00A8                mov    data_56,bp        ; (9620:00A8=0)
  92. 9550:0025  E8 0181                call    sub_5            ; (01A9)
  93. 9550:0028  C4 3E 008A                les    di,data_44        ; (9620:008A=0) Load 32 bit ptr
  94. 9550:002C  8B C7                mov    ax,di
  95. 9550:002E  8B D8                mov    bx,ax
  96. 9550:0030  B9 7FFF                mov    cx,7FFFh
  97. 9550:0033  FC                    cld                ; Clear direction
  98. 9550:0034            loc_1:                        ;  xref 9550:003C
  99. 9550:0034  F2/ AE                repne    scasb            ; Rep zf=0+cx >0 Scan es:[di] for al
  100. 9550:0036  E3 61                jcxz    loc_4            ; Jump if cx=0
  101. 9550:0038  43                    inc    bx
  102. 9550:0039  26: 38 05                cmp    es:[di],al
  103. 9550:003C  75 F6                jne    loc_1            ; Jump if not equal
  104. 9550:003E  80 CD 80                or    ch,80h
  105. 9550:0041  F7 D9                neg    cx
  106. 9550:0043  89 0E 008A                mov    word ptr data_44,cx    ; (9620:008A=0)
  107. 9550:0047  B9 0001                mov    cx,1
  108. 9550:004A  D3 E3                shl    bx,cl            ; Shift w/zeros fill
  109. 9550:004C  83 C3 08                add    bx,8
  110. 9550:004F  83 E3 F8                and    bx,0FFF8h
  111. 9550:0052  89 1E 008E                mov    data_46,bx        ; (9620:008E=0)
  112. 9550:0056  8C DA                mov    dx,ds
  113. 9550:0058  2B EA                sub    bp,dx
  114. 9550:005A  8B 3E 027A                mov    di,data_73        ; (9620:027A=1000h)
  115. 9550:005E  81 FF 0200                cmp    di,200h
  116. 9550:0062  73 07                jae    loc_2            ; Jump if above or =
  117. 9550:0064  BF 0200                mov    di,200h
  118. 9550:0067  89 3E 027A                mov    data_73,di        ; (9620:027A=1000h)
  119.      pkzip.lst                         Sourcer Listing v3.07    17-Jun-92   2:56 pm   Page 3
  120.  
  121. 9550:006B            loc_2:                        ;  xref 9550:0062
  122. 9550:006B  81 C7 02D0                add    di,2D0h
  123. 9550:006F  72 28                jc    loc_4            ; Jump if carry Set
  124. 9550:0071  03 3E 021C                add    di,data_69        ; (9620:021C=0)
  125. 9550:0075  72 22                jc    loc_4            ; Jump if carry Set
  126. 9550:0077  B1 04                mov    cl,4
  127. 9550:0079  D3 EF                shr    di,cl            ; Shift w/zeros fill
  128. 9550:007B  47                    inc    di
  129. 9550:007C  3B EF                cmp    bp,di
  130. 9550:007E  72 19                jb    loc_4            ; Jump if below
  131. 9550:0080  83 3E 027A 00            cmp    data_73,0        ; (9620:027A=1000h)
  132. 9550:0085  74 07                je    loc_3            ; Jump if equal
  133. 9550:0087  83 3E 021C 00            cmp    data_69,0        ; (9620:021C=0)
  134. 9550:008C  75 0E                jne    loc_5            ; Jump if not equal
  135. 9550:008E            loc_3:                        ;  xref 9550:0085
  136. 9550:008E  BF 1000                mov    di,1000h
  137. 9550:0091  3B EF                cmp    bp,di
  138. 9550:0093  77 07                ja    loc_5            ; Jump if above
  139. 9550:0095  8B FD                mov    di,bp
  140. 9550:0097  EB 03                jmp    short loc_5        ; (009C)
  141. 9550:0099            loc_4:                        ;  xref 9550:0036, 006F, 0075, 007E
  142. 9550:0099  E9 01DC                jmp    loc_22            ; (0278)
  143. 9550:009C            loc_5:                        ;  xref 9550:008C, 0093, 0097
  144. 9550:009C  8B DF                mov    bx,di
  145. 9550:009E  03 DA                add    bx,dx
  146. 9550:00A0  89 1E 00A0                mov    data_54,bx        ; (9620:00A0=0)
  147. 9550:00A4  89 1E 00A4                mov    data_55,bx        ; (9620:00A4=0)
  148. 9550:00A8  A1 0090                mov    ax,data_47        ; (9620:0090=9540h)
  149. 9550:00AB  2B D8                sub    bx,ax
  150. 9550:00AD  8E C0                mov    es,ax
  151. 9550:00AF  B4 4A                mov    ah,4Ah            ; 'J'
  152. 9550:00B1  57                    push    di
  153. 9550:00B2  CD 21                int    21h            ; DOS Services  ah=function 4Ah
  154.                                         ;  change mem allocation, bx=siz
  155. 9550:00B4  5F                    pop    di
  156. 9550:00B5  D3 E7                shl    di,cl            ; Shift w/zeros fill
  157. 9550:00B7  FA                    cli                ; Disable interrupts
  158. 9550:00B8  8E D2                mov    ss,dx
  159. 9550:00BA  8B E7                mov    sp,di
  160. 9550:00BC  FB                    sti                ; Enable interrupts
  161. 9550:00BD  33 C0                xor    ax,ax            ; Zero register
  162. 9550:00BF  2E: 8E 06 028D            mov    es,word ptr cs:[28Dh]    ; (9550:028D=0)
  163. 9550:00C4 .BF 028E                mov    di,data_3e        ; (0000:028E=0)
  164. 9550:00C7  B9 02D0                mov    cx,2D0h
  165. 9550:00CA  2B CF                sub    cx,di
  166. 9550:00CC  FC                    cld                ; Clear direction
  167. 9550:00CD  F3/ AA                rep    stosb            ; Rep when cx >0 Store al to es:[di]
  168. 9550:00CF  83 3E 01F2 14            cmp    data_67,14h        ; (9620:01F2=14h)
  169. 9550:00D4  76 47                jbe    loc_8            ; Jump if below or =
  170. 9550:00D6  80 3E 0092 03            cmp    byte ptr data_48,3    ; (9620:0092=0)
  171. 9550:00DB  72 40                jb    loc_8            ; Jump if below
  172. 9550:00DD  77 07                ja    loc_6            ; Jump if above
  173. 9550:00DF  80 3E 0093 1E            cmp    byte ptr data_48+1,1Eh    ; (9620:0093=0)
  174. 9550:00E4  72 37                jb    loc_8            ; Jump if below
  175. 9550:00E6            loc_6:                        ;  xref 9550:00DD
  176. 9550:00E6  B8 5801                mov    ax,5801h
  177. 9550:00E9  BB 0002                mov    bx,2
  178.      pkzip.lst                         Sourcer Listing v3.07    17-Jun-92   2:56 pm   Page 4
  179.  
  180. 9550:00EC  CD 21                int    21h            ; DOS Services  ah=function 58h
  181.                                         ;  get/set allocation strategy
  182. 9550:00EE  72 2A                jc    loc_7            ; Jump if carry Set
  183. 9550:00F0  B4 67                mov    ah,67h            ; 'g'
  184. 9550:00F2  8B 1E 01F2                mov    bx,data_67        ; (9620:01F2=14h)
  185. 9550:00F6  CD 21                int    21h            ; DOS Services  ah=function 67h
  186.                                         ;  set maximum number of handles
  187. 9550:00F8  72 20                jc    loc_7            ; Jump if carry Set
  188. 9550:00FA  B4 48                mov    ah,48h            ; 'H'
  189. 9550:00FC  BB 0001                mov    bx,1
  190. 9550:00FF  CD 21                int    21h            ; DOS Services  ah=function 48h
  191.                                         ;  allocate memory, bx=bytes/16
  192. 9550:0101  72 17                jc    loc_7            ; Jump if carry Set
  193. 9550:0103  40                    inc    ax
  194. 9550:0104  A3 00A8                mov    data_56,ax        ; (9620:00A8=0)
  195. 9550:0107  48                    dec    ax
  196. 9550:0108  8E C0                mov    es,ax
  197. 9550:010A  B4 49                mov    ah,49h            ; 'I'
  198. 9550:010C  CD 21                int    21h            ; DOS Services  ah=function 49h
  199.                                         ;  release memory block, es=seg
  200. 9550:010E  72 0A                jc    loc_7            ; Jump if carry Set
  201. 9550:0110  B8 5801                mov    ax,5801h
  202. 9550:0113  BB 0000                mov    bx,0
  203. 9550:0116  CD 21                int    21h            ; DOS Services  ah=function 58h
  204.                                         ;  get/set allocation strategy
  205. 9550:0118  73 03                jnc    loc_8            ; Jump if carry=0
  206. 9550:011A            loc_7:                        ;  xref 9550:00EE, 00F8, 0101, 010E
  207. 9550:011A  E9 015B                jmp    loc_22            ; (0278)
  208. 9550:011D            loc_8:                        ;  xref 9550:00D4, 00DB, 00E4, 0118
  209. 9550:011D  B4 00                mov    ah,0
  210. 9550:011F  CD 1A                int    1Ah            ; Real time clock   ah=func 00h
  211.                                         ;  get system timer count cx,dx
  212. 9550:0121  89 16 0096                mov    data_51,dx        ; (9620:0096=0)
  213. 9550:0125  89 0E 0098                mov    data_52,cx        ; (9620:0098=0)
  214. 9550:0129  0A C0                or    al,al            ; Zero ?
  215. 9550:012B  74 0C                jz    loc_9            ; Jump if zero
  216. 9550:012D  B8 0040                mov    ax,40h
  217. 9550:0130  8E C0                mov    es,ax
  218. 9550:0132 .BB 0070                mov    bx,data_2e        ; (0000:0070=53h)
  219. 9550:0135  26: C6 07 01                mov    byte ptr es:[bx],1
  220. 9550:0139            loc_9:                        ;  xref 9550:012B
  221. 9550:0139  33 ED                xor    bp,bp            ; Zero register
  222. 9550:013B  2E: 8E 06 028D            mov    es,word ptr cs:[28Dh]    ; (9550:028D=0)
  223. 9550:0140  BE 0288                mov    si,288h
  224. 9550:0143  BF 028E                mov    di,28Eh
  225. 9550:0146  E8 00D0                call    sub_7            ; (0219)
  226. 9550:0149  FF 36 0088                push    data_43            ; (9620:0088=0)
  227. 9550:014D  FF 36 0086                push    data_42            ; (9620:0086=0)
  228. 9550:0151  FF 36 0084                push    data_41            ; (9620:0084=0)
  229. 9550:0155  E8 0139                call    sub_9            ; (0291)
  230. 9550:0158  50                    push    ax
  231. 9550:0159  E8 01D8                call    sub_11            ; (0334)
  232.   
  233.                 pkzip        endp
  234.   
  235.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  236.                 ;                   SUBROUTINE
  237.      pkzip.lst                         Sourcer Listing v3.07    17-Jun-92   2:56 pm   Page 5
  238.  
  239.                 ;
  240.                 ;         Called from:     9550:0309
  241.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  242.   
  243.                 sub_2        proc    near
  244. 9550:015C  2E: 8E 06 028D            mov    es,word ptr cs:[28Dh]    ; (9550:028D=0)
  245. 9550:0161  56                    push    si
  246. 9550:0162  57                    push    di
  247. 9550:0163  BE 028E                mov    si,28Eh
  248. 9550:0166  BF 028E                mov    di,28Eh
  249. 9550:0169  E8 00AD                call    sub_7            ; (0219)
  250. 9550:016C  5F                    pop    di
  251. 9550:016D  5E                    pop    si
  252. 9550:016E  C1        pro