

;
; 浜様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様
; 	This file is generated by The Interactive Disassembler (IDA)	    
; 	Copyright (c) 2010 by Hex-Rays SA, <support@hex-rays.com>	    
; 			 Licensed to: Freeware version			    
; 藩様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様
;
; Input	MD5   :	09CCAF75B7A77C230A9EB4F276B0CB2B

; File Name   :	C:\Documents and Settings\Erdoan Tan\Desktop\RUNME.COM
; Format      :	MS-DOS COM-file
; Base Address:	1000h Range: 10100h-10398h Loaded length: 298h

.686p
.mmx
.model tiny


; Segment type:	Pure code
seg000 segment byte public 'CODE' use16
assume cs:seg000
org 100h
assume es:nothing, ss:nothing, ds:seg000, fs:nothing, gs:nothing



public start
start proc near
call	sub_10321
mov	di, 3A3h
mov	cl, 0C8h

loc_10108:
call	sub_10183
mov	[di], dx
mov	[di+4],	ah
add	di, 5
loop	loc_10108
mov	al, 13h
int	10h		; - VIDEO -
mov	ax, 1124h
mov	bl, 1
int	10h		; - VIDEO - TEXT-MODE CHARACTER	GENERATOR FUNCTIONS (PS, EGA, VGA)
			; AL = 00h, 10h: load user-specified patterns
			; AL = 01h, 11h: load ROM monochrome patterns (8 by 14)
			; AL = 02h, 12h: load ROM 8 by 8 double-dot patterns
			; AL = 03h: set	block specifier
mov	ax, 0A000h
mov	es, ax
assume es:nothing

loc_10125:
mov	dx, 3DAh

loc_10128:		; Video	status bits:
in	al, dx		; 0: retrace.  1=display is in vert or horiz retrace.
			; 1: 1=light pen is triggered; 0=armed
			; 2: 1=light pen switch	is open; 0=closed
			; 3: 1=vertical	sync pulse is occurring.
test	al, 8
jz	short loc_10128
mov	di, 3A3h
xor	si, si
mov	cx, 0C8h

loc_10135:
mov	bx, [di]
cmp	byte ptr es:[bx+si], 22h
jz	short loc_10143
mov	al, [di+4]
mov	es:[bx+si], al

loc_10143:
mov	ax, [di+2]
sub	bx, ax
jnb	short loc_10151
add	bx, 140h
call	sub_10183

loc_10151:
mov	[di], bx
mov	ah, es:[bx+si]
mov	[di+4],	ah
or	ah, ah
jnz	short loc_10164
shl	al, 1
add	al, 0Eh
mov	es:[bx+si], al

loc_10164:
add	di, 5
add	si, 140h
loop	loc_10135
call	sub_101AC
call	sub_1027A
mov	ah, 1
int	16h		; KEYBOARD - CHECK BUFFER, DO NOT CLEAR
			; Return: ZF clear if character	in buffer
			; AH = scan code, AL = character
			; ZF set if no character in buffer
jz	short loc_10125
mov	ah, 0
int	16h		; KEYBOARD - READ CHAR FROM BUFFER, WAIT IF EMPTY
			; Return: AH = scan code, AL = character
mov	ax, 3
int	10h		; - VIDEO - SET	VIDEO MODE
			; AL = mode
retn
start endp




sub_10183 proc near
mov	ax, 5B9Ch
rol	ax, 3
add	ax, 7
mov	word ptr sub_10183+1, ax
add	ax, 35B9h
add	word ptr loc_1018F+1, 0A0A5h
ror	word ptr loc_1018F+1, 7
xor	dx, dx
mov	bp, 140h
div	bp
and	ax, 7
inc	ax
mov	[di+2],	ax
retn
sub_10183 endp




sub_101AC proc near
inc	byte ptr ds:78Bh
and	byte ptr ds:78Bh, 3
jnz	short locret_101DF
mov	si, word_101E0
lodsb
or	al, al
jnz	short loc_101C4
mov	si, 220h
lodsb

loc_101C4:
cmp	al, 20h
jnb	short loc_101D4
mov	ah, al
lodsb
mov	dx, ax
mov	ah, 2
xor	bh, bh
int	10h		; - VIDEO - SET	CURSOR POSITION
			; DH,DL	= row, column (0,0 = upper left)
			; BH = page number
lodsb

loc_101D4:
mov	word_101E0, si
mov	bx, 22h
mov	ah, 0Eh
int	10h		; - VIDEO - WRITE CHARACTER AND	ADVANCE	CURSOR (TTY WRITE)
			; AL = character, BH = display page (alpha modes)
			; BL = foreground color	(graphics modes)

locret_101DF:
retn
sub_101AC endp

word_101E0 dw 1E2h
db    4
db  0Fh
db  20h
db  20h
db  20h
db  47h	; G
db 0EEh	; 
db  43h	; C
db 0EEh	; 
db  20h
db  20h
db  20h
db    5
db  0Fh
db  20h
db  20h
db  4Dh	; M
db  92h	; 
db  56h	; V
db 0ADh	; 
db  53h	; S
db 0ADh	; 
db  20h
db  20h
db    6
db  0Ch
db  20h
db  20h
db  20h
db  20h
db  43h	; C
db  41h	; A
db  4Ch	; L
db  4Ch	; L
db  20h
db  4Eh	; N
db  4Fh	; O
db  57h	; W
db  20h
db  20h
db  20h
db  20h
db    7
db  0Ch
db  2Bh	; +
db  39h	; 9
db  30h	; 0
db  2Dh	; -
db  32h	; 2
db  31h	; 1
db  36h	; 6
db  2Dh	; -
db  33h	; 3
db  31h	; 1
db  35h	; 5
db  2Dh	; -
db  32h	; 2
db  32h	; 2
db  33h	; 3
db  33h	; 3
db  20h
db  20h
db    4
db  13h
db  45h	; E
db  43h	; C
db  45h	; E
db  20h
db  20h
db  20h
db    4
db  13h
db  65h	; e
db  43h	; C
db  65h	; e
db  20h
db    4
db  13h
db 0EEh	; 
db  43h	; C
db 0EEh	; 
db  20h
db  20h
db  20h
db    0
db 0E0h	; 
db  20h
db  21h	; !
db    0
db 0C3h	; 
db 0B6h	; 
db 0F5h	; 
db 0F6h	; 
db    3
db    3
db    2
db  40h	; @
db    0
db    0
db    0
db 0FAh	; 
db 0D9h	; 
db  37h	; 7
db    4
db    0
db    0
db    0
db  80h	; 
db  84h	; 
db 0FCh	; 
db    8
db  99h	; 
db  21h	; !
db 0A5h	; 
db  1Eh
db  99h	; 
db  1Bh
db 0A3h	; 
db  18h
db 0A5h	; 
db  15h
db  99h	; 
db  21h	; !
db 0A5h	; 
db  28h	; (
db  99h	; 
db  2Fh	; /
db  7Dh	; }
db 0FEh	; 
db 0FCh	; 
db    4
db  80h	; 
db 0C0h	; 
db  7Dh	; }
db 0FCh	; 
db  10h
db  8Dh	; 
db  90h	; 
db  7Dh	; }
db 0FEh	; 
db  4Fh	; O
db    2
db  4Fh	; O
db    2
db  63h	; c
db    2
db  4Fh	; O
db    2
db  4Dh	; M
db    2
db  63h	; c
db    2



sub_1027A proc near
xor	byte_10393, 1
jnz	short locret_1028C
xor	di, di

loc_10283:
call	sub_1028D
inc	di
cmp	di, 3
jnz	short loc_10283

locret_1028C:
retn
sub_1027A endp




sub_1028D proc near
mov	bx, di
shl	bx, 1
mov	si, [bx+274h]
dec	byte ptr [di+394h]
jnz	short locret_1028C
mov	byte ptr [di+394h], 8

loc_102A0:
lodsb
cmp	al, 7Dh
jnz	short loc_102B1
dec	byte ptr [di+3A0h]
jz	short loc_102A0
mov	si, [bx+39Ah]
jmp	short loc_102A0

loc_102B1:
cmp	al, 0FCh
jnz	short loc_102C0
lodsb
mov	[di+3A0h], al
mov	[bx+39Ah], si
jmp	short loc_102A0

loc_102C0:
cmp	al, 0FEh
jnz	short loc_102CA
mov	si, [bx+26Eh]
jmp	short loc_102A0

loc_102CA:
push	ax
lodsb
rol	al, 1
shr	al, 1
jnb	short loc_102D8
mov	[di+394h], al
jmp	short loc_102DF

loc_102D8:
mov	ah, al
mov	al, 40h
call	sub_10358

loc_102DF:
pop	ax
and	al, 7Fh
jz	short loc_10318
push	ax
mov	ah, [di+397h]
mov	al, 0B0h
call	sub_10358
pop	ax
dec	al
xor	ah, ah
mov	bl, 0Ch
div	bl
mov	bx, ax
shr	bx, 7
shl	ax, 0Ah
or	ax, [bx+370h]
mov	[di+397h], ah
or	ah, 20h
mov	bl, al
mov	al, 0B0h
call	sub_10358
mov	al, 0A0h
mov	ah, bl
call	sub_10358

loc_10318:
shl	di, 1
mov	[di+274h], si
shr	di, 1
retn
sub_1028D endp




sub_10321 proc near
mov	ax, 2001h
call	sub_1035A
mov	ax, 8
call	sub_1035A
mov	ax, 0C0BDh
call	sub_1035A
xor	di, di
mov	si, 237h
call	sub_10345
mov	byte ptr [si+3], 8
call	sub_10345
mov	si, 242h
sub_10321 endp




sub_10345 proc near
xor	bx, bx

loc_10347:
mov	al, [bx+388h]
mov	ah, [bx+si]
call	sub_10358
inc	bx
cmp	bx, 0Bh
jb	short loc_10347
inc	di
retn
sub_10345 endp




sub_10358 proc near
add	ax, di
sub_10358 endp




sub_1035A proc near
mov	dx, 388h
out	dx, al
in	al, dx
in	al, dx
in	al, dx
in	al, dx
inc	dl
mov	al, ah
out	dx, al
dec	dl
mov	cx, 14h

loc_1036C:
in	al, dx
loop	loc_1036C
retn
sub_1035A endp

db  57h	; W
db    1
db  6Bh	; k
db    1
db  81h	; 
db    1
db  98h	; 
db    1
db 0B0h	; 
db    1
db 0CAh	; 
db    1
db 0E5h	; 
db    1
db    2
db    2
db  20h
db    2
db  41h	; A
db    2
db  63h	; c
db    2
db  87h	; 
db    2
db  20h
db  23h	; #
db  40h	; @
db  43h	; C
db  60h	; `
db  63h	; c
db  80h	; 
db  83h	; 
db 0E0h	; 
db 0E3h	; 
db 0C0h	; 
byte_10393 db 0
db    1
db    1
db    1
db  1Ah
seg000 ends


end start
