ReC98/th03_op.asm

11341 lines
197 KiB
NASM
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

;
; +-------------------------------------------------------------------------+
; | This file has been generated by The Interactive Disassembler (IDA) |
; | Copyright (c) 2009 by Hex-Rays, <support@hex-rays.com> |
; +-------------------------------------------------------------------------+
;
; Input MD5 : 661F4F8FFAF1F3274F503D154133DEF0
; File Name : th03/OP.EXE
; Format : MS-DOS executable (EXE)
; Base Address: 0h Range: 0h-FD80h Loaded length: E97Ah
; Entry Point : 0:0
; OS type : MS DOS
; Application type: Executable 16bit
.386
.model large
include ReC98.inc
; ===========================================================================
; Segment type: Pure code
seg000 segment word public 'CODE' use16
assume cs:seg000
assume es:nothing, ss:seg005, ds:dseg, fs:nothing, gs:nothing
include libs/BorlandC/c0.asm
db 0
include libs/master.lib/bfnt_entry_pat.asm
include libs/master.lib/bfnt_extend_header_skip.asm
include libs/master.lib/bfnt_header_read.asm
include libs/master.lib/bfnt_header_analysis.asm
include libs/master.lib/bcloser.asm
include libs/master.lib/bfill.asm
include libs/master.lib/bfnt_palette_set.asm
include libs/master.lib/bgetc.asm
include libs/master.lib/palette_black_out.asm
include libs/master.lib/bopenr.asm
include libs/master.lib/bread.asm
include libs/master.lib/bseek.asm
include libs/master.lib/bseek_.asm
include libs/master.lib/dos_axdx.asm
include libs/master.lib/dos_keyclear.asm
include libs/master.lib/dos_puts2.asm
include libs/master.lib/dos_setvect.asm
include libs/master.lib/egc.asm
include libs/master.lib/egc_shift_left_all.asm
include libs/master.lib/file_append.asm
include libs/master.lib/file_close.asm
include libs/master.lib/file_create.asm
include libs/master.lib/file_exist.asm
include libs/master.lib/file_read.asm
include libs/master.lib/file_ropen.asm
include libs/master.lib/file_seek.asm
include libs/master.lib/file_write.asm
include libs/master.lib/dos_close.asm
include libs/master.lib/dos_ropen.asm
include libs/master.lib/grcg_boxfill.asm
include libs/master.lib/grcg_byteboxfill_x.asm
include libs/master.lib/grcg_polygon_c.asm
include libs/master.lib/grcg_pset.asm
include libs/master.lib/grcg_setcolor.asm
include libs/master.lib/gaiji_backup.asm
include libs/master.lib/gaiji_entry_bfnt.asm
include libs/master.lib/gaiji_putsa.asm
include libs/master.lib/gaiji_read.asm
include libs/master.lib/gaiji_write.asm
include libs/master.lib/graph_400line.asm
include libs/master.lib/graph_clear.asm
include libs/master.lib/graph_copy_page.asm
include libs/master.lib/graph_extmode.asm
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_1232 proc far
arg_0 = word ptr 6
arg_2 = dword ptr 8
arg_6 = word ptr 0Ch
arg_8 = word ptr 0Eh
arg_A = word ptr 10h
push bp
mov bp, sp
push si
push di
push ds
mov es, graph_VramSeg
assume es:nothing
mov cx, [bp+arg_A]
mov di, [bp+arg_8]
mov bx, [bp+arg_6]
lds si, [bp+arg_2]
mov dx, [bp+arg_0]
mov bp, bx
mov ax, di
shl ax, 2
add di, ax
shl di, 4
mov al, 0C0h ; '<27>'
pushf
cli
out 7Ch, al
popf
shr dx, 1
sbb al, al
out 7Eh, al
shr dx, 1
sbb al, al
out 7Eh, al
shr dx, 1
sbb al, al
out 7Eh, al
shr dx, 1
sbb al, al
out 7Eh, al
mov al, 0Bh
out 68h, al
loc_127A:
lodsb
or al, al
jz short loc_12CC
mov ah, 0
adc ax, 5680h
and ax, 0FF7Fh
mov bx, cx
and cx, 7
shr bx, 3
add di, bx
out 0A1h, al ; Interrupt Controller #2, 8259A
mov al, ah
out 0A3h, al ; Interrupt Controller #2, 8259A
mov dx, 10h
xor ch, ch
loc_129C:
mov al, ch
or al, 20h
out 0A5h, al ; Interrupt Controller #2, 8259A
in al, 0A9h ; Interrupt Controller #2, 8259A
mov ah, al
mov al, ch
out 0A5h, al ; Interrupt Controller #2, 8259A
in al, 0A9h ; Interrupt Controller #2, 8259A
mov bh, al
mov bl, 0
shr ax, cl
shr bx, cl
xchg al, ah
stosw
mov es:[di], bl
add di, 4Eh ; 'N'
inc ch
dec dx
jnz short loc_129C
sub di, 500h
xor ch, ch
add cx, bp
jmp short loc_127A
; ---------------------------------------------------------------------------
loc_12CC:
mov al, 0Ah
out 68h, al
xor al, al
out 7Ch, al
pop ds
pop di
pop si
pop bp
retf 0Ch
sub_1232 endp
; ---------------------------------------------------------------------------
nop
include libs/master.lib/graph_pi_free.asm
include libs/master.lib/graph_pi_load_pack.asm
include libs/master.lib/graph_pack_put_8.asm
include libs/master.lib/graph_show.asm
include libs/master.lib/graph_start.asm
include libs/master.lib/js_end.asm
include libs/master.lib/keybeep.asm
include libs/master.lib/make_linework.asm
include libs/master.lib/palette_init.asm
include libs/master.lib/palette_show.asm
include libs/master.lib/pfclose.asm
; ---------------------------------------------------------------------------
push bp
mov bp, sp
mov es, word ptr [bp+6]
call word ptr es:2
pop bp
retf 2
; ---------------------------------------------------------------------------
nop
cmp word ptr es:1Ah, 0
jz short loc_1BF6
dec word ptr es:1Ah
add word ptr es:12h, 1
adc word ptr es:14h, 0
mov ax, es:1Ch
retn
; ---------------------------------------------------------------------------
loc_1BF6:
call word ptr es:4
test ah, ah
jnz short locret_1C25
cmp ax, es:1Ch
mov es:1Ch, ax
jnz short locret_1C25
push ax
call word ptr es:4
test ah, ah
jnz short loc_1C24
mov es:1Ah, ax
sub word ptr es:12h, 1
sbb word ptr es:14h, 0
loc_1C24:
pop ax
locret_1C25:
retn
; =============== S U B R O U T I N E =======================================
sub_1C26 proc near
mov ax, es:0Ah
mov dx, es:0Ch
cmp dx, es:8
jb short loc_1C43
ja short loc_1C3F
cmp ax, es:6
jb short loc_1C43
loc_1C3F:
mov ax, 0FFFFh
retn
; ---------------------------------------------------------------------------
loc_1C43:
add ax, 1
adc dx, 0
mov es:0Ah, ax
mov es:0Ch, dx
add word ptr es:12h, 1
adc word ptr es:14h, 0
push es
push word ptr es:0
call bgetc
pop es
retn
sub_1C26 endp
; =============== S U B R O U T I N E =======================================
sub_1C6A proc near
call sub_1C26
or ah, ah
jnz short locret_1C76
xor al, es:1Eh
locret_1C76:
retn
sub_1C6A endp
; ---------------------------------------------------------------------------
db 0
include libs/master.lib/pfread.asm
include libs/master.lib/pfrewind.asm
include libs/master.lib/pfseek.asm
include libs/master.lib/random.asm
include libs/master.lib/palette_entry_rgb.asm
include libs/master.lib/rottbl.asm
include libs/master.lib/smem_release.asm
include libs/master.lib/smem_wget.asm
include libs/master.lib/soundio.asm
include libs/BorlandC/text_clear.asm
include libs/BorlandC/txesc.asm
db 0
include libs/master.lib/text_putsa.asm
include libs/master.lib/vsync.asm
include libs/master.lib/vsync_wait.asm
include libs/master.lib/palette_white_in.asm
include libs/master.lib/hmem_lallocate.asm
include libs/master.lib/mem_assign_dos.asm
include libs/master.lib/mem_assign.asm
include libs/master.lib/memheap.asm
; =============== S U B R O U T I N E =======================================
sub_2676 proc far
cmp mem_TopSeg, 0
jz short loc_2691
mov ax, mem_TopSeg
mov es, ax
xor ax, ax
cmp mem_MyOwn, ax
mov mem_TopSeg, ax
jz short loc_2691
mov ah, 49h
int 21h ; DOS - 2+ - FREE MEMORY
; ES = segment address of area to be freed
loc_2691:
mov ax, 1
retf
sub_2676 endp
; ---------------------------------------------------------------------------
xor ax, ax
stc
retf
include libs/master.lib/super_free.asm
include libs/master.lib/super_entry_pat.asm
include libs/master.lib/super_entry_at.asm
include libs/master.lib/super_entry_bfnt.asm
include libs/master.lib/super_cancel_pat.asm
include libs/master.lib/super_put.asm
; =============== S U B R O U T I N E =======================================
sub_2A8A proc far
push si
push di
mov ah, 52h
int 21h ; DOS - 2+ internal - GET LIST OF LISTS
; Return: ES:BX -> DOS list of lists
cld
mov bx, es:[bx-2]
loc_2A95:
mov es, bx
assume es:nothing
inc bx
mov ax, es:1
or ax, ax
jz short loc_2AAD
mov di, 10h
mov cx, 0Ah
mov si, 5DEh
repe cmpsb
jz short loc_2ABE
loc_2AAD:
mov ax, es:3
add bx, ax
mov al, es:0
cmp al, 4Dh ; 'M'
jz short loc_2A95
mov bx, 0
loc_2ABE:
mov ax, bx
mov ResPalSeg, ax
pop di
pop si
retf
sub_2A8A endp
; =============== S U B R O U T I N E =======================================
sub_2AC6 proc far
push si
push di
nop
push cs
call near ptr sub_2A8A
or ax, ax
mov ax, 2
jnz short loc_2B38
mov ax, 5800h
int 21h ; DOS - 3+ - GET/SET MEMORY ALLOCATION STRATEGY
; AL = function code: get allocation strategy
mov dx, ax
mov ax, 5801h
mov bx, 1
int 21h ; DOS - 3+ - GET/SET MEMORY ALLOCATION STRATEGY
; AL = function code: set allocation strategy
mov ah, 48h ; 'H'
mov bx, 4
int 21h ; DOS - 2+ - ALLOCATE MEMORY
; BX = number of 16-byte paragraphs desired
mov cx, 0
jb short loc_2B2F
mov bx, cs
cmp bx, ax
jnb short loc_2B0A
mov es, ax
assume es:nothing
mov ah, 49h
int 21h ; DOS - 2+ - FREE MEMORY
; ES = segment address of area to be freed
mov ax, 5801h
mov bx, 2
int 21h ; DOS - 3+ - GET/SET MEMORY ALLOCATION STRATEGY
; AL = function code: set allocation strategy
mov ah, 48h ; 'H'
mov bx, 4
int 21h ; DOS - 2+ - ALLOCATE MEMORY
; BX = number of 16-byte paragraphs desired
loc_2B0A:
mov cx, ax
mov ResPalSeg, ax
dec cx
mov es, cx
assume es:nothing
mov ax, 0FFFFh
mov es:1, ax
inc cx
mov es, cx
assume es:nothing
cld
xor di, di
mov si, 5DEh
mov cx, 0Ah
rep movsb
xor ax, ax
stosw
stosw
stosw
mov cx, 1
loc_2B2F:
mov ax, 5801h
mov bx, dx
int 21h ; DOS - 3+ - GET/SET MEMORY ALLOCATION STRATEGY
; AL = function code: set allocation strategy
mov ax, cx
loc_2B38:
pop di
pop si
retf
sub_2AC6 endp
; ---------------------------------------------------------------------------
nop
; =============== S U B R O U T I N E =======================================
sub_2B3C proc far
mov ax, ResPalSeg
or ax, ax
jnz short loc_2B4C
nop
push cs
call near ptr sub_2A8A
or ax, ax
jnz short locret_2B58
loc_2B4C:
mov es, ax
assume es:nothing
mov ah, 49h
int 21h ; DOS - 2+ - FREE MEMORY
; ES = segment address of area to be freed
mov ResPalSeg, 0
locret_2B58:
retf
sub_2B3C endp
; ---------------------------------------------------------------------------
nop
; ---------------------------------------------------------------------------
dword_2B5A dd 0
byte_2B5E db 0
db 90h ; <20>
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_2B60 proc far
arg_0 = dword ptr 6
push bp
mov bp, sp
cld
mov ax, word ptr cs:dword_2B5A
or ax, word ptr cs:dword_2B5A+2
jz short loc_2B72
jmp loc_2BF3
; ---------------------------------------------------------------------------
loc_2B72:
push di
push si
push word ptr [bp+arg_0+2]
push word ptr [bp+arg_0]
call file_ropen
push 10h
call hmem_allocbyte
mov di, ax
push ax
push 0
push 10h
call file_read
mov ax, di
mov es, ax
mov di, es:0
mov si, es:6
push ax
call hmem_free
push di
call hmem_allocbyte
mov word_F290, ax
push ax
push 0
push di
call file_read
call file_close
mov cx, di
mov ax, word_F290
mov es, ax
mov ax, si
xor bx, bx
loc_2BC1:
xor es:[bx], al
sub al, es:[bx]
inc bx
loop loc_2BC1
pop si
pop di
mov ax, 3521h
int 21h ; DOS - 2+ - GET INTERRUPT VECTOR
; AL = interrupt number
; Return: ES:BX = value of interrupt vector
mov word ptr cs:dword_2B5A, bx
mov word ptr cs:dword_2B5A+2, es
mov word_F28C, 0
mov word_F28E, 0FFFFh
push ds
push cs
pop ds
assume ds:seg000
mov dx, 2C54h
mov ax, 2521h
int 21h ; DOS - SET INTERRUPT VECTOR
; AL = interrupt number
; DS:DX = new vector to be used for specified interrupt
pop ds
assume ds:dseg
loc_2BF3:
push si
push di
push ds
mov cx, 0FFFFh
mov al, 0
les di, [bp+arg_0]
repne scasb
not cx
sub di, cx
mov si, di
mov di, 1A1Ch
push ds
push es
pop ds
pop es
shr cx, 1
rep movsw
adc cx, cx
rep movsb
pop ds
pop di
pop si
pop bp
retf 4
sub_2B60 endp
; =============== S U B R O U T I N E =======================================
sub_2C1C proc far
mov ax, word ptr cs:dword_2B5A
or ax, word ptr cs:dword_2B5A+2
jz short locret_2C53
push ds
lds dx, cs:dword_2B5A
mov ax, 2521h
int 21h ; DOS - SET INTERRUPT VECTOR
; AL = interrupt number
; DS:DX = new vector to be used for specified interrupt
pop ds
xor ax, ax
mov word ptr cs:dword_2B5A, ax
mov word ptr cs:dword_2B5A+2, ax
cmp word_F28C, ax
jz short locret_2C53
push word_F28C
call pfclose
push word_F290
call hmem_free
locret_2C53:
retf
sub_2C1C endp
; ---------------------------------------------------------------------------
cmp cs:byte_2B5E, 0
jz short loc_2C61
jmp cs:dword_2B5A
; ---------------------------------------------------------------------------
loc_2C61:
pusha
push ds
push es
mov bp, sp
mov di, seg dseg
mov ds, di
inc cs:byte_2B5E
push word ptr [bp+18h]
popf
mov cs:byte_2CB8, ah
mov si, 2C88h
loc_2C7C:
add si, 4
cmp ah, cs:[si]
jnz short loc_2C7C
mov di, word_F28E
jmp word ptr cs:[si+2]
; ---------------------------------------------------------------------------
db 3Dh, 0, 0BCh, 2Ch, 3Eh, 0, 0F1h, 2Ch, 3Fh, 0, 0Fh, 2Dh
db 42h, 0, 23h, 2Dh, 46h, 0, 84h, 2Dh, 40h, 0, 88h, 2Dh
db 45h, 0, 88h, 2Dh, 4Ch, 0, 66h, 2Dh, 57h, 0, 88h, 2Dh
db 5Ch, 0, 88h, 2Dh, 44h, 0, 72h, 2Dh
byte_2CB8 db 0
db 0
; ---------------------------------------------------------------------------
mov word ptr [di], gs
test al, 0Fh
jz short loc_2CC3
jmp loc_2D8C
; ---------------------------------------------------------------------------
loc_2CC3:
or di, di
js short loc_2CCA
jmp loc_2D8C
; ---------------------------------------------------------------------------
loc_2CCA:
push ds
push offset unk_F20C
push word ptr [bp+2]
push dx
push cs
call near ptr sub_2EF2
or ax, ax
jnz short loc_2CDD
jmp loc_2D8C
; ---------------------------------------------------------------------------
loc_2CDD:
mov word_F28C, ax
mov es, ax
mov es, word ptr es:0
mov ax, es:0
mov word_F28E, ax
jmp loc_2DA7
; ---------------------------------------------------------------------------
cmp bx, di
jz short loc_2CF8
jmp loc_2D8C
; ---------------------------------------------------------------------------
loc_2CF8:
push word_F28C
call pfclose
mov word_F28C, 0
mov word_F28E, 0FFFFh
jmp loc_2DA7
; ---------------------------------------------------------------------------
cmp bx, di
jnz short loc_2D8C
push word ptr [bp+2]
push dx
push cx
push word_F28C
call pfread
jmp loc_2DA7
; ---------------------------------------------------------------------------
cmp bx, di
jnz short loc_2D8C
or cx, cx
jl short loc_2D9E
cmp al, 1
jz short loc_2D57
jl short loc_2D4B
mov es, word_F28C
mov dx, es:16h
mov cx, es:18h
sub dx, es:12h
sbb cx, es:14h
jmp short loc_2D57
; ---------------------------------------------------------------------------
loc_2D4B:
push cx
push dx
push word_F28C
call pfrewind
pop dx
pop cx
loc_2D57:
push word_F28C
push cx
push dx
call pfseek
mov [bp+0Eh], dx
jmp short loc_2DA7
; ---------------------------------------------------------------------------
db 2Eh, 0C5h, 16h, 5Ah, 2Bh, 0B8h, 21h, 25h, 0CDh, 21h
db 0EBh, 1Ah, 8Ah, 0C8h, 0B8h, 1, 0, 0D3h, 0E0h, 2Eh, 85h
db 6, 82h, 2Dh, 75h, 8, 0EBh, 0Ah, 0CFh, 14h, 8Bh, 0CFh
db 74h, 16h, 3Bh, 0DFh, 74h, 12h
; ---------------------------------------------------------------------------
loc_2D8C:
dec cs:byte_2B5E
push word ptr [bp+18h]
popf
pop es
pop ds
popa
cli
jmp cs:dword_2B5A
; ---------------------------------------------------------------------------
loc_2D9E:
or byte ptr [bp+18h], 1
mov ax, 1
jmp short loc_2DAB
; ---------------------------------------------------------------------------
loc_2DA7:
and byte ptr [bp+18h], 0FEh
loc_2DAB:
mov [bp+12h], ax
dec cs:byte_2B5E
pop es
pop ds
popa
iret
; ---------------------------------------------------------------------------
db 0
; =============== S U B R O U T I N E =======================================
sub_2DB8 proc far
mov cx, 100h
mov dx, 188h
loc_2DBE:
in al, dx
inc al
jnz short loc_2DC9
loop loc_2DBE
xor ax, ax
jmp short loc_2DDD
; ---------------------------------------------------------------------------
loc_2DC9:
pushf
cli
mov bh, 7
call sound_i
and al, 3Fh
or al, 80h
mov bl, al
call sound_o
popf
mov ax, 1
loc_2DDD:
mov word_DABC, ax
retf
sub_2DB8 endp
; ---------------------------------------------------------------------------
nop
; =============== S U B R O U T I N E =======================================
sub_2DE2 proc near
mov bh, 0Fh
call sound_o
mov dx, 188h
mov al, 0Eh
out dx, al
inc dx
inc dx
in al, dx
not al
retn
sub_2DE2 endp
; ---------------------------------------------------------------------------
nop
; =============== S U B R O U T I N E =======================================
sub_2DF4 proc far
push bp
push si
push di
xor bp, bp
cmp word_DABC, 0
jz short loc_2E0D
pushf
cli
mov bl, 80h ; '<27>'
call sub_2DE2
and ax, 3Fh
mov si, ax
popf
loc_2E0D:
or word_E9A4, si
pop di
pop si
pop bp
retf
sub_2DF4 endp
; ---------------------------------------------------------------------------
nop
xchg dx, bx
out dx, al
xchg dx, bx
in al, dx
not al
retn
; ---------------------------------------------------------------------------
db 0
; ---------------------------------------------------------------------------
include libs/master.lib/draw_trapezoid.asm
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_2EF2 proc far
arg_0 = word ptr 6
arg_2 = word ptr 8
arg_4 = word ptr 0Ah
arg_6 = word ptr 0Ch
enter 0, 0
push si
push di
mov mem_AllocID, 7
push 1Fh
call hmem_allocbyte
jb loc_2FFE
mov si, ax
push [bp+arg_6]
push [bp+arg_4]
call bopenr
or ax, ax
jz loc_2FF7
mov es, si
mov es:0, ax
mov ax, word_F290
mov fs, ax
xor ax, ax
mov di, ax
loc_2F29:
mov al, fs:[di]
mov bx, 2
or al, al
jz short loc_2F4B
mov bx, 3
add bx, di
push [bp+arg_2]
push [bp+arg_0]
push fs
push bx
call sub_300C
jnz short loc_2F4D
add di, 20h ; ' '
jmp short loc_2F29
; ---------------------------------------------------------------------------
loc_2F4B:
mov ax, bx
loc_2F4D:
mov es, si
mov ax, fs:[di+14h]
mov dx, fs:[di+16h]
mov es:0Eh, ax
mov es:10h, dx
push word ptr es:0
push dx
push ax
push 0
call bseek_
mov ax, 1C26h
mov dl, fs:[di+2]
mov es, si
or dl, dl
jz short loc_2F82
mov es:1Eh, dl
mov ax, offset sub_1C6A
loc_2F82:
mov es:4, ax
mov es, cx
mov ax, fs:[di]
mov es, si
cmp ax, 0F388h
jz short loc_2F9C
cmp ax, 9595h
jz short loc_2FA6
mov ax, 5
jmp short loc_2FEB
; ---------------------------------------------------------------------------
loc_2F9C:
mov ax, es:4
mov es:2, ax
jmp short loc_2FBB
; ---------------------------------------------------------------------------
loc_2FA6:
mov word ptr es:2, 1BD8h
mov word ptr es:1Ah, 0
mov word ptr es:1Ch, 0FFFFh
loc_2FBB:
mov bx, fs:[di+10h]
mov dx, fs:[di+12h]
xor ax, ax
mov es:6, bx
mov es:8, ax
mov es:16h, dx
mov es:18h, ax
mov es:0Ah, ax
mov es:0Ch, ax
mov es:12h, ax
mov es:14h, ax
mov ax, si
jmp short loc_3005
; ---------------------------------------------------------------------------
loc_2FEB:
mov pferrno, ax
push word ptr es:0
call bcloser
loc_2FF7:
push si
call hmem_free
jmp short loc_3003
; ---------------------------------------------------------------------------
loc_2FFE:
mov byte ptr pferrno, 3
loc_3003:
xor ax, ax
loc_3005:
pop di
pop si
leave
retf 8
sub_2EF2 endp
; ---------------------------------------------------------------------------
nop
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_300C proc near
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push bp
mov bp, sp
push si
push ds
cld
les bx, [bp+arg_4]
lds si, [bp+arg_0]
loc_3018:
mov ah, es:[bx]
inc bx
lodsb
sub al, 61h ; 'a'
cmp al, 19h
ja short loc_3025
sub al, 20h ; ' '
loc_3025:
sub ah, 61h ; 'a'
cmp ah, 19h
ja short loc_3030
sub ah, 20h ; ' '
loc_3030:
cmp ah, al
jnz short loc_303A
add al, 61h ; 'a'
jnz short loc_3018
jmp short loc_303C
; ---------------------------------------------------------------------------
loc_303A:
xor ax, ax
loc_303C:
test ax, ax
pop ds
pop si
pop bp
retn 8
sub_300C endp
include libs/BorlandC/__abort.asm
include libs/BorlandC/stpcpy.asm
; =============== S U B R O U T I N E =======================================
; Attributes: library function noreturn
; void abort(void)
_abort proc far
; ___call_terminate+6Ep ...
push si
push di
mov ax, 16h
push ax
nop
call raise
pop cx
nop
push cs
call near ptr __abort
_abort endp
; ---------------------------------------------------------------------------
pop di
pop si
retf
include libs/BorlandC/atexit.asm
include libs/BorlandC/del.asm
include libs/BorlandC/delarray.asm
include libs/BorlandC/dosenv.asm
include libs/BorlandC/dosgdriv.asm
include libs/BorlandC/errormsg.asm
include libs/BorlandC/exit.asm
include libs/BorlandC/f_scopy.asm
include libs/BorlandC/getvect.asm
include libs/BorlandC/H_LDIV.ASM
include libs/BorlandC/H_LLSH.ASM
include libs/BorlandC/H_PADD.ASM
include libs/BorlandC/__IOERROR.ASM
include libs/BorlandC/_isatty.asm
include libs/BorlandC/lseek.asm
include libs/BorlandC/new.asm
include libs/BorlandC/N_LXMUL.ASM
include libs/BorlandC/N_PCMP.ASM
include libs/BorlandC/setupio.asm
include libs/BorlandC/toupper.asm
include libs/BorlandC/xxas.asm
include libs/BorlandC/xxv.asm
include libs/BorlandC/cputype.asm
include libs/BorlandC/FARHEAP.ASM
include libs/BorlandC/fbrk.asm
include libs/BorlandC/signal.asm
; =============== S U B R O U T I N E =======================================
; Attributes: library function bp-based frame
; int __cdecl __far _access(char *pathname, char)
__access proc far
pathname = dword ptr 6
arg_4 = byte ptr 0Ah
push bp
mov bp, sp
push si
push di
xor ax, ax
push ax ; func
push word ptr [bp+pathname+2]
push word ptr [bp+pathname] ; pathname
nop
call __chmod
add sp, 6
mov dx, ax
cmp dx, 0FFFFh
jnz short loc_45D2
jmp short loc_45EA
; ---------------------------------------------------------------------------
loc_45D2:
test [bp+arg_4], 2
jz short loc_45DD
test dl, 1
jnz short loc_45E1
loc_45DD:
xor ax, ax
jmp short loc_45EA
; ---------------------------------------------------------------------------
loc_45E1:
mov _errno, 5
mov ax, 0FFFFh
loc_45EA:
pop di
pop si
pop bp
retf
__access endp
; ---------------------------------------------------------------------------
db 50h, 51h, 52h, 53h, 54h, 55h, 56h, 57h, 1Eh, 6, 8Bh
db 0ECh, 0A1h, 0A4h, 0Fh, 0Bh, 6, 0A6h, 0Fh, 75h, 27h
db 0BEh, 2 dup(0FFh), 1Eh, 0B8h, 0, 63h, 0F8h, 0CDh, 21h
db 8Ch, 0D8h, 1Fh, 72h, 0Bh, 8Ch, 0DAh, 3Bh, 0C2h, 74h
db 5, 83h, 0FEh, 0FFh, 75h, 6, 0BEh, 0A8h, 0Fh, 0B8h
dw seg dseg
; ---------------------------------------------------------------------------
mov word ptr dword_E794, si
mov word ptr dword_E794+2, ax
mov sp, bp
pop es
pop ds
pop di
pop si
pop bp
pop bx
pop bx
pop dx
pop cx
pop ax
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4637 proc far
; sub_4B43+182p ...
arg_0 = byte ptr 6
push bp
mov bp, sp
push si
push di
mov al, [bp+arg_0]
xor cx, cx
les bx, dword_E794
loc_4645:
mov dx, es:[bx]
or dx, dx
jz short loc_4657
cmp al, dl
jb short loc_4657
inc bx
inc bx
cmp al, dh
ja short loc_4645
inc cx
loc_4657:
xchg ax, cx
pop di
pop si
pop bp
retf
sub_4637 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_465C proc far
var_4 = dword ptr -4
arg_0 = word ptr 6
arg_2 = word ptr 8
arg_4 = word ptr 0Ah
push bp
mov bp, sp
sub sp, 4
push si
push di
xor cx, cx
mov dx, [bp+arg_2]
mov ax, [bp+arg_0]
mov word ptr [bp+var_4+2], dx
mov word ptr [bp+var_4], ax
loc_4672:
les bx, [bp+var_4]
cmp byte ptr es:[bx], 0
jnz short loc_467F
xor cx, cx
jmp short loc_46AD
; ---------------------------------------------------------------------------
loc_467F:
cmp cx, 1
jnz short loc_4689
mov cx, 2
jmp short loc_46A0
; ---------------------------------------------------------------------------
loc_4689:
les bx, [bp+var_4]
mov al, es:[bx]
push ax
push cs
call near ptr sub_4637
pop cx
or ax, ax
jz short loc_469E
mov cx, 1
jmp short loc_46A0
; ---------------------------------------------------------------------------
loc_469E:
xor cx, cx
loc_46A0:
mov ax, word ptr [bp+var_4]
cmp ax, [bp+arg_4]
jnb short loc_46AD
inc word ptr [bp+var_4]
jmp short loc_4672
; ---------------------------------------------------------------------------
loc_46AD:
or cx, cx
jnz short loc_46B6
mov ax, 1
jmp short loc_46B8
; ---------------------------------------------------------------------------
loc_46B6:
xor ax, ax
loc_46B8:
pop di
pop si
mov sp, bp
pop bp
retf
sub_465C endp
include libs/BorlandC/chmoda.asm
include libs/BorlandC/fflush.asm
; =============== S U B R O U T I N E =======================================
; Attributes: library function bp-based frame
; int flushall(void)
_flushall proc far
; _fflush+12p
var_8 = word ptr -8
var_6 = word ptr -6
stream = dword ptr -4
push bp
mov bp, sp
sub sp, 8
push si
push di
mov [bp+var_8], 0
mov ax, __nfile
mov [bp+var_6], ax
mov word ptr [bp+stream+2], ds
mov word ptr [bp+stream], 0B20h
jmp short loc_47E9
; ---------------------------------------------------------------------------
loc_47CD:
les bx, [bp+stream]
test byte ptr es:[bx+2], 3
jz short loc_47E5
push word ptr [bp+stream+2]
push bx ; stream
nop
call _fflush
pop cx
pop cx
inc [bp+var_8]
loc_47E5:
add word ptr [bp+stream], 14h
loc_47E9:
mov ax, [bp+var_6]
dec [bp+var_6]
or ax, ax
jnz short loc_47CD
mov ax, [bp+var_8]
pop di
pop si
mov sp, bp
pop bp
retf
_flushall endp
; =============== S U B R O U T I N E =======================================
; Attributes: library function bp-based frame
sub_47FC proc near
var_6 = dword ptr -6
var_2 = word ptr -2
arg_0 = dword ptr 4
push bp
mov bp, sp
sub sp, 6
push si
push di
les bx, [bp+arg_0]
cmp word ptr es:[bx], 0
jge short loc_4819
mov cx, es:[bx+6]
add cx, es:[bx]
inc cx
mov ax, cx
jmp short loc_4826
; ---------------------------------------------------------------------------
loc_4819:
les bx, [bp+arg_0]
mov ax, es:[bx]
cwd
xor ax, dx
sub ax, dx
mov cx, ax
loc_4826:
mov [bp+var_2], ax
les bx, [bp+arg_0]
test byte ptr es:[bx+2], 40h
jnz short loc_487A
les bx, [bp+arg_0]
mov dx, es:[bx+0Eh]
mov ax, es:[bx+0Ch]
mov word ptr [bp+var_6+2], dx
mov word ptr [bp+var_6], ax
cmp word ptr es:[bx], 0
jge short loc_4873
jmp short loc_485B
; ---------------------------------------------------------------------------
loc_484C:
dec word ptr [bp+var_6]
les bx, [bp+var_6]
cmp byte ptr es:[bx], 0Ah
jnz short loc_485B
inc [bp+var_2]
loc_485B:
mov ax, cx
dec cx
or ax, ax
jnz short loc_484C
jmp short loc_487A
; ---------------------------------------------------------------------------
loc_4864:
les bx, [bp+var_6]
inc word ptr [bp+var_6]
cmp byte ptr es:[bx], 0Ah
jnz short loc_4873
inc [bp+var_2]
loc_4873:
mov ax, cx
dec cx
or ax, ax
jnz short loc_4864
loc_487A:
mov ax, [bp+var_2]
pop di
pop si
mov sp, bp
pop bp
retn 4
sub_47FC endp
; =============== S U B R O U T I N E =======================================
; Attributes: library function bp-based frame
; int __cdecl fseek(FILE *stream, __int32 offset, int whence)
_fseek proc far
stream = dword ptr 6
_offset = dword ptr 0Ah
whence = word ptr 0Eh
push bp
mov bp, sp
push si
push di
push word ptr [bp+stream+2]
push word ptr [bp+stream] ; stream
nop
call _fflush
pop cx
pop cx
or ax, ax
jz short loc_48A0
mov ax, 0FFFFh
jmp short loc_4903
; ---------------------------------------------------------------------------
loc_48A0:
cmp [bp+whence], 1
jnz short loc_48BD
les bx, [bp+stream]
cmp word ptr es:[bx], 0
jle short loc_48BD
push word ptr [bp+stream+2]
push bx
call sub_47FC
cwd
sub word ptr [bp+_offset], ax
sbb word ptr [bp+_offset+2], dx
loc_48BD:
les bx, [bp+stream]
and word ptr es:[bx+2], 0FE5Fh
mov word ptr es:[bx], 0
mov dx, es:[bx+0Ah]
mov ax, es:[bx+8]
mov es:[bx+0Eh], dx
mov es:[bx+0Ch], ax
push [bp+whence] ; fromwhere
push word ptr [bp+_offset+2]
push word ptr [bp+_offset] ; offset
mov al, es:[bx+4]
cbw
push ax ; handle
nop
push cs
call near ptr _lseek
add sp, 8
cmp dx, 0FFFFh
jnz short loc_4901
cmp ax, 0FFFFh
jnz short loc_4901
mov ax, 0FFFFh
jmp short loc_4903
; ---------------------------------------------------------------------------
loc_4901:
xor ax, ax
loc_4903:
pop di
pop si
pop bp
retf
_fseek endp
; =============== S U B R O U T I N E =======================================
; Attributes: library function bp-based frame
; __int32 __cdecl ftell(FILE *stream)
_ftell proc far
var_8 = word ptr -8
var_6 = word ptr -6
_offset = dword ptr -4
stream = dword ptr 6
push bp
mov bp, sp
sub sp, 8
push si
push di
mov ax, 1
push ax ; fromwhere
xor ax, ax
push ax
push ax ; offset
les bx, [bp+stream]
mov al, es:[bx+4]
cbw
push ax ; handle
nop
push cs
call near ptr _lseek
add sp, 8
mov word ptr [bp+_offset+2], dx
mov word ptr [bp+_offset], ax
cmp dx, 0FFFFh
jnz short loc_493B
cmp ax, 0FFFFh
jnz short loc_493B
jmp loc_49DC
; ---------------------------------------------------------------------------
loc_493B:
les bx, [bp+stream]
cmp word ptr es:[bx], 0
jl short loc_4947
jmp loc_49CC
; ---------------------------------------------------------------------------
loc_4947:
mov al, es:[bx+4]
cbw
add ax, ax
mov bx, ax
test byte ptr [bx+0CB3h], 8
jz short loc_49BA
mov ax, 2
push ax ; fromwhere
xor ax, ax
push ax
push ax ; offset
mov bx, word ptr [bp+stream]
mov al, es:[bx+4]
cbw
push ax ; handle
nop
push cs
call near ptr _lseek
add sp, 8
mov [bp+var_6], dx
mov [bp+var_8], ax
cmp dx, 0FFFFh
jnz short loc_4982
cmp ax, 0FFFFh
jnz short loc_4982
jmp short loc_49E2
; ---------------------------------------------------------------------------
loc_4982:
xor ax, ax
push ax ; fromwhere
push word ptr [bp+_offset+2]
push word ptr [bp+_offset] ; offset
les bx, [bp+stream]
mov al, es:[bx+4]
cbw
push ax ; handle
nop
push cs
call near ptr _lseek
add sp, 8
cmp dx, 0FFFFh
jnz short loc_49AE
cmp ax, 0FFFFh
jnz short loc_49AE
mov dx, 0FFFFh
mov ax, 0FFFFh
jmp short loc_49E2
; ---------------------------------------------------------------------------
loc_49AE:
mov dx, [bp+var_6]
mov ax, [bp+var_8]
mov word ptr [bp+_offset+2], dx
mov word ptr [bp+_offset], ax
loc_49BA:
push word ptr [bp+stream+2]
push word ptr [bp+stream]
call sub_47FC
cwd
add word ptr [bp+_offset], ax
adc word ptr [bp+_offset+2], dx
jmp short loc_49DC
; ---------------------------------------------------------------------------
loc_49CC:
push word ptr [bp+stream+2]
push word ptr [bp+stream]
call sub_47FC
cwd
sub word ptr [bp+_offset], ax
sbb word ptr [bp+_offset+2], dx
loc_49DC:
mov dx, word ptr [bp+_offset+2]
mov ax, word ptr [bp+_offset]
loc_49E2:
pop di
pop si
mov sp, bp
pop bp
retf
_ftell endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_49E8 proc near
arg_0 = word ptr 4
push bp
mov bp, sp
push si
push di
mov ax, [bp+arg_0]
cmp ax, 5Ch ; '\'
jz short loc_49FA
cmp ax, 2Fh ; '/'
jnz short loc_49FF
loc_49FA:
mov ax, 1
jmp short loc_4A01
; ---------------------------------------------------------------------------
loc_49FF:
xor ax, ax
loc_4A01:
pop di
pop si
pop bp
retn 2
sub_49E8 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4A07 proc near
arg_0 = dword ptr 4
arg_4 = word ptr 8
arg_6 = word ptr 0Ah
push bp
mov bp, sp
push si
push di
les bx, [bp+arg_0]
mov al, es:[bx]
mov ah, 0
push ax
call sub_49E8
or ax, ax
jz short loc_4A39
push word ptr [bp+arg_0+2]
push word ptr [bp+arg_0]
push [bp+arg_6]
push [bp+arg_4]
nop
push cs
call near ptr sub_465C
add sp, 8
or ax, ax
jz short loc_4A39
mov ax, 1
jmp short loc_4A3B
; ---------------------------------------------------------------------------
loc_4A39:
xor ax, ax
loc_4A3B:
pop di
pop si
pop bp
retn 8
sub_4A07 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4A41 proc far
drive = word ptr -12h
var_10 = word ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
s = dword ptr -4
arg_4 = word ptr 0Ah
arg_6 = word ptr 0Ch
push bp
mov bp, sp
sub sp, 12h
push si
push di
mov ax, 0A1h ; '<27>'
push ax
nop
push cs
call near ptr _malloc
pop cx
mov word ptr [bp+s+2], dx
mov word ptr [bp+s], ax
or ax, dx
jnz short loc_4A60
jmp loc_4CA3
; ---------------------------------------------------------------------------
loc_4A60:
mov dx, [bp+arg_6]
mov ax, [bp+arg_4]
mov word ptr [bp+var_C+2], dx
mov word ptr [bp+var_C], ax
les bx, [bp+var_C]
mov al, es:[bx]
cbw
mov bx, ax
test byte ptr [bx+0D51h], 0Ch
jz short loc_4AA0
mov bx, word ptr [bp+var_C]
cmp byte ptr es:[bx+1], 3Ah ; ':'
jnz short loc_4AA0
mov al, es:[bx]
cbw
mov [bp+var_10], ax
push ax ; ch
nop
push cs
call near ptr _toupper
pop cx
add ax, 0FFC0h
mov [bp+drive], ax
add word ptr [bp+var_C], 2
jmp short loc_4AB6
; ---------------------------------------------------------------------------
loc_4AA0:
push ss
lea ax, [bp+drive]
push ax ; drive
nop
call __dos_getdrive
pop cx
pop cx
mov ax, [bp+drive]
add ax, 41h ; 'A'
dec ax
mov [bp+var_10], ax
loc_4AB6:
les bx, [bp+var_C]
mov al, es:[bx]
cbw
push ax
call sub_49E8
or ax, ax
jnz short loc_4B1E
mov ax, 0A1h ; '<27>'
push ax ; len
push word ptr [bp+s+2]
push word ptr [bp+s] ; buf
push [bp+drive] ; drive
nopcall __getdcwd
add sp, 8
or ax, dx
jnz short loc_4AEE
push word ptr [bp+s+2]
push word ptr [bp+s]
nop
push cs
call near ptr _farfree
pop cx
pop cx
jmp loc_4CA3
; ---------------------------------------------------------------------------
loc_4AEE:
push word ptr [bp+s+2]
push word ptr [bp+s] ; s
nop
push cs
call near ptr _strlen
pop cx
pop cx
mov dx, word ptr [bp+s+2]
add ax, word ptr [bp+s]
mov word ptr [bp+var_8+2], dx
mov word ptr [bp+var_8], ax
push dx
push word ptr [bp+s]
dec ax
push dx
push ax
call sub_4A07
or ax, ax
jnz short loc_4B40
les bx, [bp+var_8]
mov byte ptr es:[bx], 5Ch ; '\'
jmp short loc_4B3D
; ---------------------------------------------------------------------------
loc_4B1E:
mov dx, word ptr [bp+s+2]
mov ax, word ptr [bp+s]
mov word ptr [bp+var_8+2], dx
mov word ptr [bp+var_8], ax
les bx, [bp+var_8]
mov al, byte ptr [bp+var_10]
mov es:[bx], al
inc word ptr [bp+var_8]
les bx, [bp+var_8]
mov byte ptr es:[bx], 3Ah ; ':'
loc_4B3D:
inc word ptr [bp+var_8]
loc_4B40:
push word ptr [bp+var_C+2]
sub_4A41 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_4B43 proc far
push word ptr [bp-0Ch] ; src
push word ptr [bp-6]
push word ptr [bp-8] ; dest
nop
push cs
call near ptr _strcpy
add sp, 8
mov dx, [bp-2]
mov ax, [bp-4]
mov [bp-6], dx
mov [bp-8], ax
mov [bp-0Ah], dx
mov [bp-0Ch], ax
loc_4B66:
; sub_4B43+196j ...
les bx, [bp-0Ch]
inc word ptr [bp-0Ch]
mov al, es:[bx]
cbw
mov [bp-0Eh], ax
or ax, ax
jz short loc_4B82
push ax
call sub_49E8
or ax, ax
jnz short loc_4B82
jmp loc_4CB4
; ---------------------------------------------------------------------------
loc_4B82:
les bx, [bp-8]
cmp byte ptr es:[bx-1], 2Eh ; '.'
jnz short loc_4BA9
push word ptr [bp-2]
push word ptr [bp-4]
mov ax, [bp-8]
add ax, 0FFFEh
push word ptr [bp-6]
push ax
call sub_4A07
or ax, ax
jz short loc_4BA9
sub word ptr [bp-8], 2
jmp short loc_4C20
; ---------------------------------------------------------------------------
loc_4BA9:
les bx, [bp-8]
cmp byte ptr es:[bx-1], 2Eh ; '.'
jnz short loc_4C20
cmp byte ptr es:[bx-2], 2Eh ; '.'
jnz short loc_4C20
push word ptr [bp-2]
push word ptr [bp-4]
mov ax, [bp-8]
add ax, 0FFFDh
push word ptr [bp-6]
push ax
call sub_4A07
or ax, ax
jz short loc_4C20
sub word ptr [bp-8], 3
les bx, [bp-8]
cmp byte ptr es:[bx-1], 3Ah ; ':'
jnz short loc_4C09
mov ax, [bp-8]
dec ax
push word ptr [bp-6]
push ax
push word ptr [bp-2]
push word ptr [bp-4]
nop
push cs
call near ptr sub_465C
add sp, 8
or ax, ax
jz short loc_4C09
push word ptr [bp-2]
push word ptr [bp-4]
nop
push cs
call near ptr _farfree
pop cx
pop cx
jmp loc_4CA3
; ---------------------------------------------------------------------------
loc_4C09:
push word ptr [bp-2]
push word ptr [bp-4]
dec word ptr [bp-8]
mov ax, [bp-8]
push word ptr [bp-6]
push ax
call sub_4A07
or ax, ax
jz short loc_4C09
loc_4C20:
cmp word ptr [bp-0Eh], 0
jz short loc_4C29
jmp loc_4CA9
; ---------------------------------------------------------------------------
loc_4C29:
push word ptr [bp-2]
push word ptr [bp-4]
mov ax, [bp-8]
dec ax
push word ptr [bp-6]
push ax
call sub_4A07
or ax, ax
jz short loc_4C41
dec word ptr [bp-8]
loc_4C41:
les bx, [bp-8]
cmp byte ptr es:[bx-1], 3Ah ; ':'
jnz short loc_4C6F
mov ax, [bp-8]
dec ax
push word ptr [bp-6]
push ax
push word ptr [bp-2]
push word ptr [bp-4]
nop
push cs
call near ptr sub_465C
add sp, 8
or ax, ax
jz short loc_4C6F
les bx, [bp-8]
mov byte ptr es:[bx], 5Ch ; '\'
inc word ptr [bp-8]
loc_4C6F:
; sub_4B43+120j
les bx, [bp-8]
mov byte ptr es:[bx], 0
push word ptr [bp-2]
push word ptr [bp-4] ; s
nop
push cs
call near ptr _strlen
pop cx
pop cx
inc ax
mov dx, ax
mov ax, [bp+6]
or ax, [bp+8]
jnz short loc_4C91
jmp loc_4D15
; ---------------------------------------------------------------------------
loc_4C91:
cmp dx, [bp+0Eh]
jbe short loc_4CEE
push word ptr [bp-2]
push word ptr [bp-4]
nop
push cs
call near ptr _farfree
pop cx
pop cx
loc_4CA3:
xor dx, dx
xor ax, ax
jmp short loc_4D24
; ---------------------------------------------------------------------------
loc_4CA9:
les bx, [bp-8]
mov al, [bp-0Eh]
mov es:[bx], al
jmp short loc_4CE8
; ---------------------------------------------------------------------------
loc_4CB4:
les bx, [bp-8]
mov al, [bp-0Eh]
mov es:[bx], al
inc word ptr [bp-8]
push word ptr [bp-0Eh]
nop
push cs
call near ptr sub_4637
pop cx
or ax, ax
jnz short loc_4CD0
jmp loc_4B66
; ---------------------------------------------------------------------------
loc_4CD0:
les bx, [bp-0Ch]
cmp byte ptr es:[bx], 0
jnz short loc_4CDC
jmp loc_4B66
; ---------------------------------------------------------------------------
loc_4CDC:
mov al, es:[bx]
les bx, [bp-8]
mov es:[bx], al
inc word ptr [bp-0Ch]
loc_4CE8:
inc word ptr [bp-8]
jmp loc_4B66
; ---------------------------------------------------------------------------
loc_4CEE:
push word ptr [bp-2]
push word ptr [bp-4] ; src
push word ptr [bp+8]
push word ptr [bp+6] ; dest
nop
push cs
call near ptr _strcpy
push word ptr [bp-2]
push word ptr [bp-4]
nop
push cs
call near ptr _farfree
add sp, 0Ch
mov dx, [bp+8]
mov ax, [bp+6]
jmp short loc_4D24
; ---------------------------------------------------------------------------
loc_4D15:
push dx
push word ptr [bp-2]
push word ptr [bp-4]
nop
push cs
call near ptr _realloc
add sp, 6
loc_4D24:
; sub_4B43+1D0j
pop di
pop si
mov sp, bp
pop bp
retf
sub_4B43 endp ; sp-analysis failed
include libs/BorlandC/getdcwd.asm
; =============== S U B R O U T I N E =======================================
; Attributes: library function bp-based frame
; char *__cdecl getenv(const char *name)
_getenv proc far
; sub_96AE+126p
var_4 = dword ptr -4
_name = dword ptr 6
push bp
mov bp, sp
sub sp, 4
push si
push di
les di, [bp+_name]
mov ax, es
or ax, di
jz short loc_4DF8
mov al, 0
mov ah, es:[di]
mov cx, 0FFFFh
cld
repne scasb
not cx
dec cx
jz short loc_4DF8
les di, environ@
mov word ptr [bp+var_4+2], es
mov bx, es
or bx, di
mov word ptr [bp+var_4], di
jnz short loc_4E05
loc_4DF8:
xor dx, dx
xor ax, ax
jmp short loc_4E31
; ---------------------------------------------------------------------------
loc_4DFE:
add word ptr [bp+var_4], 4
les di, [bp+var_4]
loc_4E05:
les di, es:[di]
mov bx, es
or bx, di
jz short loc_4DF8
mov al, es:[di]
or al, al
jz short loc_4DF8
cmp ah, al
jnz short loc_4DFE
mov bx, cx
cmp byte ptr es:[bx+di], 3Dh ; '='
jnz short loc_4DFE
push ds
lds si, [bp+_name]
repe cmpsb
pop ds
xchg cx, bx
jnz short loc_4DFE
inc di
mov ax, di
mov dx, es
loc_4E31:
pop di
pop si
mov sp, bp
pop bp
retf
_getenv endp
include libs/BorlandC/memcmp.asm
include libs/BorlandC/memcpy.asm
include libs/BorlandC/memset.asm
include libs/BorlandC/movmem.asm
; =============== S U B R O U T I N E =======================================
; Attributes: library function bp-based frame
; void __cdecl _searchenv(const char *file, const char *varname, char *pathname)
__searchenv proc far
var_4 = dword ptr -4
src = dword ptr 6
varname = dword ptr 0Ah
pathname = dword ptr 0Eh
push bp
mov bp, sp
sub sp, 4
push si
push di
push word ptr [bp+varname+2]
push word ptr [bp+varname] ; name
nop
push cs
call near ptr _getenv
pop cx
pop cx
mov word ptr [bp+var_4+2], dx
mov word ptr [bp+var_4], ax
or ax, dx
jnz short loc_4F69
mov word ptr [bp+var_4+2], ds
mov word ptr [bp+var_4], 0FB4h
loc_4F69:
push word ptr [bp+pathname+2]
push word ptr [bp+pathname] ; pathname
push word ptr [bp+var_4+2]
push word ptr [bp+var_4] ; __int32
push word ptr [bp+src+2]
push word ptr [bp+src] ; src
nop
push cs
call near ptr sub_4F89
add sp, 0Ch
pop di
pop si
mov sp, bp
pop bp
retf
__searchenv endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl __far sub_4F89(char *src, __int32, char *pathname)
sub_4F89 proc far
var_4 = word ptr -4
var_2 = word ptr -2
src = dword ptr 6
arg_4 = dword ptr 0Ah
pathname = dword ptr 0Eh
push bp
mov bp, sp
sub sp, 4
push si
push di
mov ax, 50h ; 'P'
push ax ; len
push word ptr [bp+pathname+2]
push word ptr [bp+pathname] ; buf
xor ax, ax
push ax ; drive
nopcall __getdcwd
add sp, 8
or ax, dx
jnz short loc_4FAE
xor dx, dx
jmp short loc_4FBD
; ---------------------------------------------------------------------------
loc_4FAE:
push word ptr [bp+pathname+2]
push word ptr [bp+pathname] ; s
nop
push cs
call near ptr _strlen
pop cx
pop cx
mov dx, ax
loc_4FBD:
les bx, [bp+pathname]
add bx, dx
mov byte ptr es:[bx], 0
or dx, dx
jz short loc_5012
mov bx, dx
add bx, word ptr [bp+pathname]
mov bl, es:[bx-1]
mov al, bl
cmp al, 5Ch ; '\'
jz short loc_4FE3
cmp bl, 2Fh ; '/'
jz short loc_4FE3
cmp bl, 3Ah ; ':'
jnz short loc_4FFF
loc_4FE3:
mov ax, word ptr [bp+pathname]
add ax, dx
dec ax
push word ptr [bp+pathname+2]
push ax
push word ptr [bp+pathname+2]
push word ptr [bp+pathname]
nop
push cs
call near ptr sub_465C
add sp, 8
or ax, ax
jnz short loc_5012
loc_4FFF:
push ds
mov ax, 0FB6h
push ax ; src
push word ptr [bp+pathname+2]
push word ptr [bp+pathname] ; dest
nop
push cs
call near ptr _strcat
add sp, 8
loc_5012:
push word ptr [bp+src+2]
push word ptr [bp+src] ; src
push word ptr [bp+pathname+2]
push word ptr [bp+pathname] ; dest
nop
push cs
call near ptr _strcat
add sp, 8
xor ax, ax
push ax ; char
push word ptr [bp+pathname+2]
push word ptr [bp+pathname] ; pathname
nop
push cs
call near ptr __access
add sp, 6
or ax, ax
jz short loc_5086
les bx, [bp+arg_4]
cmp byte ptr es:[bx], 0
jnz short loc_504D
les bx, [bp+pathname]
mov byte ptr es:[bx], 0
jmp short loc_50C5
; ---------------------------------------------------------------------------
loc_504D:
xor dx, dx
jmp short loc_5065
; ---------------------------------------------------------------------------
loc_5051:
les bx, [bp+pathname]
add bx, dx
push es
les si, [bp+arg_4]
mov al, es:[si]
pop es
mov es:[bx], al
inc word ptr [bp+arg_4]
inc dx
loc_5065:
les bx, [bp+arg_4]
cmp byte ptr es:[bx], 3Bh ; ';'
jz short loc_5074
cmp byte ptr es:[bx], 0
jnz short loc_5051
loc_5074:
les bx, [bp+arg_4]
cmp byte ptr es:[bx], 0
jnz short loc_5080
jmp loc_4FBD
; ---------------------------------------------------------------------------
loc_5080:
inc word ptr [bp+arg_4]
jmp loc_4FBD
; ---------------------------------------------------------------------------
loc_5086:
mov ax, 50h ; 'P'
push ax
push word ptr [bp+pathname+2]
push word ptr [bp+pathname]
xor ax, ax
push ax
push ax
nop
push cs
call near ptr sub_4A41
add sp, 0Ah
mov [bp+var_2], dx
mov [bp+var_4], ax
or ax, dx
jz short loc_50C5
push [bp+var_2]
push [bp+var_4] ; src
push word ptr [bp+pathname+2]
push word ptr [bp+pathname] ; dest
nop
push cs
call near ptr _strcpy
push [bp+var_2]
push [bp+var_4]
nop
push cs
call near ptr _farfree
add sp, 0Ch
loc_50C5:
; sub_4F89+11Bj
pop di
pop si
mov sp, bp
pop bp
retf
sub_4F89 endp
; =============== S U B R O U T I N E =======================================
; Attributes: library function bp-based frame
; int __cdecl setvbuf(FILE *stream, char *buf, int type, size_t size)
_setvbuf proc far
stream = dword ptr 6
buf = dword ptr 0Ah
_type = word ptr 0Eh
_size = word ptr 10h
push bp
mov bp, sp
push si
push di
les bx, [bp+stream]
mov ax, es:[bx+12h]
cmp ax, word ptr [bp+stream]
jz short loc_50DF
jmp loc_51B6
; ---------------------------------------------------------------------------
loc_50DF:
cmp [bp+_type], 2
jle short loc_50E8
jmp loc_51B6
; ---------------------------------------------------------------------------
loc_50E8:
cmp [bp+_size], 7FFFh
jbe short loc_50F2
jmp loc_51B6
; ---------------------------------------------------------------------------
loc_50F2:
cmp word_E7AA, 0
jnz short loc_5108
cmp word ptr [bp+stream], 0B34h
jnz short loc_5108
mov word_E7AA, 1
jmp short loc_511C
; ---------------------------------------------------------------------------
loc_5108:
cmp word_E7A8, 0
jnz short loc_511C
cmp word ptr [bp+stream], 0B20h
jnz short loc_511C
mov word_E7A8, 1
loc_511C:
les bx, [bp+stream]
cmp word ptr es:[bx], 0
jz short loc_5139
mov ax, 1
push ax ; whence
xor ax, ax
push ax
push ax ; offset
push word ptr [bp+stream+2]
push bx ; stream
nop
push cs
call near ptr _fseek
add sp, 0Ah
loc_5139:
les bx, [bp+stream]
test byte ptr es:[bx+2], 4
jz short loc_5152
push word ptr es:[bx+0Ah]
push word ptr es:[bx+8]
nop
push cs
call near ptr _farfree
pop cx
pop cx
loc_5152:
les bx, [bp+stream]
and word ptr es:[bx+2], 0FFF3h
mov word ptr es:[bx+6], 0
mov dx, word ptr [bp+stream+2]
mov ax, word ptr [bp+stream]
add ax, 5
mov es:[bx+0Ah], dx
mov es:[bx+8], ax
mov es:[bx+0Eh], dx
mov es:[bx+0Ch], ax
cmp [bp+_type], 2
jz short loc_51E6
cmp [bp+_size], 0
jbe short loc_51E6
mov word ptr _exitbuf+2, seg seg000
mov word ptr _exitbuf, 54F4h
mov ax, word ptr [bp+buf]
or ax, word ptr [bp+buf+2]
jnz short loc_51BB
push [bp+_size]
nop
push cs
call near ptr _malloc
pop cx
mov word ptr [bp+buf+2], dx
mov word ptr [bp+buf], ax
or ax, dx
jz short loc_51B6
les bx, [bp+stream]
or word ptr es:[bx+2], 4
jmp short loc_51BB
; ---------------------------------------------------------------------------
loc_51B6:
mov ax, 0FFFFh
jmp short loc_51E8
; ---------------------------------------------------------------------------
loc_51BB:
les bx, [bp+stream]
mov dx, word ptr [bp+buf+2]
mov ax, word ptr [bp+buf]
mov es:[bx+0Eh], dx
mov es:[bx+0Ch], ax
mov es:[bx+0Ah], dx
mov es:[bx+8], ax
mov ax, [bp+_size]
mov es:[bx+6], ax
cmp [bp+_type], 1
jnz short loc_51E6
or word ptr es:[bx+2], 8
loc_51E6:
xor ax, ax
loc_51E8:
pop di
pop si
pop bp
retf
_setvbuf endp
include libs/BorlandC/_strcat.asm
include libs/BorlandC/_strcmp.asm
include libs/BorlandC/_strcpy.asm
include libs/BorlandC/_stricmp.asm
include libs/BorlandC/_strlen.asm
include libs/BorlandC/strrchr.asm
include libs/BorlandC/write.asm
include libs/BorlandC/writea.asm
include libs/BorlandC/xfflush.asm
include libs/BorlandC/xalloc.asm
include libs/BorlandC/xmsg.asm
include libs/BorlandC/xx.asm
; =============== S U B R O U T I N E =======================================
; Attributes: library function bp-based frame
; int __stdcall _DOSCMD(int, int, char *s, int, int)
__DOSCMD proc near
dest = dword ptr -0Eh
var_A = dword ptr -0Ah
var_6 = dword ptr -6
var_2 = word ptr -2
arg_0 = word ptr 4
arg_2 = word ptr 6
s = dword ptr 8
arg_8 = word ptr 0Ch
arg_A = word ptr 0Eh
push bp
mov bp, sp
sub sp, 0Eh
push si
push di
mov [bp+var_2], 3
mov ax, word ptr [bp+s]
or ax, word ptr [bp+s+2]
jz short loc_8C66
push word ptr [bp+s+2]
push word ptr [bp+s] ; s
nop
push cs
call near ptr _strlen
pop cx
pop cx
add ax, [bp+var_2]
inc ax
mov [bp+var_2], ax
loc_8C66:
mov dx, [bp+arg_2]
mov ax, [bp+arg_0]
mov word ptr [bp+var_6+2], dx
mov word ptr [bp+var_6], ax
jmp short loc_8C90
; ---------------------------------------------------------------------------
loc_8C74:
les bx, [bp+var_6]
push word ptr es:[bx+2]
push word ptr es:[bx] ; s
nop
push cs
call near ptr _strlen
pop cx
pop cx
add ax, [bp+var_2]
inc ax
mov [bp+var_2], ax
add word ptr [bp+var_6], 4
loc_8C90:
les bx, [bp+var_6]
mov ax, es:[bx]
or ax, es:[bx+2]
jnz short loc_8C74
push [bp+var_2]
nop
push cs
call near ptr _malloc
pop cx
mov word ptr [bp+var_A+2], dx
mov word ptr [bp+var_A], ax
or ax, dx
jnz short loc_8CB6
xor dx, dx
xor ax, ax
jmp loc_8D6C
; ---------------------------------------------------------------------------
loc_8CB6:
mov dx, word ptr [bp+var_A+2]
mov ax, word ptr [bp+var_A]
inc ax
mov word ptr [bp+dest+2], dx
mov word ptr [bp+dest], ax
les bx, [bp+dest]
mov byte ptr es:[bx], 20h ; ' '
inc word ptr [bp+dest]
mov ax, word ptr [bp+s]
or ax, word ptr [bp+s+2]
jz short loc_8CF9
push word ptr [bp+s+2]
push word ptr [bp+s] ; src
push word ptr [bp+dest+2]
push word ptr [bp+dest] ; dest
nop
call _stpcpy
add sp, 8
mov word ptr [bp+dest+2], dx
mov word ptr [bp+dest], ax
les bx, [bp+dest]
mov byte ptr es:[bx], 20h ; ' '
inc word ptr [bp+dest]
loc_8CF9:
mov ax, [bp+arg_8]
or ax, [bp+arg_A]
jz short loc_8D47
mov dx, [bp+arg_2]
mov ax, [bp+arg_0]
mov word ptr [bp+var_6+2], dx
mov word ptr [bp+var_6], ax
jmp short loc_8D3B
; ---------------------------------------------------------------------------
loc_8D0F:
les bx, [bp+var_6]
push word ptr es:[bx+2]
push word ptr es:[bx] ; src
push word ptr [bp+dest+2]
push word ptr [bp+dest] ; dest
nop
call _stpcpy
add sp, 8
mov word ptr [bp+dest+2], dx
mov word ptr [bp+dest], ax
les bx, [bp+dest]
mov byte ptr es:[bx], 20h ; ' '
inc word ptr [bp+dest]
add word ptr [bp+var_6], 4
loc_8D3B:
les bx, [bp+var_6]
mov ax, es:[bx]
or ax, es:[bx+2]
jnz short loc_8D0F
loc_8D47:
les bx, [bp+dest]
mov byte ptr es:[bx-1], 0Dh
mov byte ptr es:[bx], 0
mov ax, word ptr [bp+dest]
xor dx, dx
sub ax, word ptr [bp+var_A]
sbb dx, 0
add al, 0FEh ; '<27>'
les bx, [bp+var_A]
mov es:[bx], al
mov dx, word ptr [bp+var_A+2]
mov ax, word ptr [bp+var_A]
loc_8D6C:
pop di
pop si
mov sp, bp
pop bp
retn 0Ch
__DOSCMD endp
include libs/BorlandC/exec.asm
; =============== S U B R O U T I N E =======================================
; Attributes: library function bp-based frame
; int execl(char *path, char *arg0, ...)
_execl proc far
; sub_9BDF+160P ...
s = dword ptr 6
arg0 = word ptr 0Ah
push bp
mov bp, sp
push si
push di
xor ax, ax
push ax ; int
push ax ; int
push ax ; int
push ss ; int
lea ax, [bp+arg0]
push ax ; int
push word ptr [bp+s+2]
push word ptr [bp+s] ; s
mov ax, 8EDBh
push ax ; int
call sub_96AE
add sp, 10h
pop di
pop si
pop bp
retf
_execl endp
; =============== S U B R O U T I N E =======================================
; Attributes: library function bp-based frame
; int __cdecl setblock(unsigned int __psp, unsigned int newsize)
_setblock proc far
___psp = word ptr 6
newsize = word ptr 8
push bp
mov bp, sp
push si
push di
mov ah, 4Ah ; 'J'
mov bx, [bp+newsize]
mov es, [bp+___psp]
int 21h ; DOS - 2+ - ADJUST MEMORY BLOCK SIZE (SETBLOCK)
; ES = segment address of block to change
; BX = new size in paragraphs
jb short loc_9152
mov ax, 0FFFFh
jmp short loc_9158
; ---------------------------------------------------------------------------
loc_9152:
push bx
push ax
call __IOERROR
pop ax
loc_9158:
pop di
pop si
pop bp
retf
_setblock endp
include libs/BorlandC/setenvp.asm
include libs/BorlandC/ctor2.asm
include libs/BorlandC/ctor3.asm
include libs/BorlandC/strings.asm
; =============== S U B R O U T I N E =======================================
sub_952E proc far
push si
push di
cmp _cFlag, 0
jz short loc_9541
mov _cFlag, 0
mov al, _cChar
jmp short loc_9546
; ---------------------------------------------------------------------------
loc_9541:
mov ax, 700h
int 21h ; DOS - DIRECT STDIN INPUT, NO ECHO
loc_9546:
mov ah, 0
pop di
pop si
retf
sub_952E endp
include libs/BorlandC/kbhit.asm
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_9561 proc far
arg_0 = word ptr 6
push bp
mov bp, sp
push si
push di
mov ax, [bp+arg_0]
cmp ah, 81h ; '<27>'
jb short loc_959B
cmp ah, 0A0h ; '<27>'
jb short loc_957D
cmp ah, 0E0h ; '<27>'
jb short loc_959B
cmp ah, 0F0h ; '<27>'
jnb short loc_959B
loc_957D:
cmp al, 40h ; '@'
jb short loc_959B
cmp al, 0FDh ; '<27>'
jnb short loc_959B
cmp al, 7Fh ; ''
jz short loc_959B
cmp al, 80h ; '<27>'
adc al, 61h ; 'a'
jb short loc_9591
sub al, 0A2h ; '<27>'
loc_9591:
rcl ah, 1
and ah, 7Fh
add ax, 1F21h
jmp short loc_959D
; ---------------------------------------------------------------------------
loc_959B:
xor ax, ax
loc_959D:
pop di
pop si
pop bp
retf
sub_9561 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_95A1 proc far
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = word ptr 6
arg_2 = word ptr 8
arg_4 = word ptr 0Ah
arg_6 = word ptr 0Ch
push bp
mov bp, sp
sub sp, 8
push si
push di
mov dx, [bp+arg_2]
mov ax, [bp+arg_0]
mov word ptr [bp+var_4+2], dx
mov word ptr [bp+var_4], ax
jmp short loc_9612
; ---------------------------------------------------------------------------
loc_95B7:
les bx, [bp+var_4]
mov al, es:[bx]
push ax
nop
push cs
call near ptr sub_4637
pop cx
or ax, ax
jz short loc_95D6
inc word ptr [bp+var_4]
les bx, [bp+var_4]
cmp byte ptr es:[bx], 0
jnz short loc_960F
jmp short loc_961B
; ---------------------------------------------------------------------------
loc_95D6:
mov dx, [bp+arg_6]
mov ax, [bp+arg_4]
mov word ptr [bp+var_8+2], dx
mov word ptr [bp+var_8], ax
jmp short loc_95F5
; ---------------------------------------------------------------------------
loc_95E4:
les bx, [bp+var_4]
mov al, es:[bx]
les bx, [bp+var_8]
cmp al, es:[bx]
jz short loc_95FE
inc word ptr [bp+var_8]
loc_95F5:
les bx, [bp+var_8]
cmp byte ptr es:[bx], 0
jnz short loc_95E4
loc_95FE:
les bx, [bp+var_8]
cmp byte ptr es:[bx], 0
jz short loc_960F
mov dx, word ptr [bp+var_4+2]
mov ax, word ptr [bp+var_4]
jmp short loc_961F
; ---------------------------------------------------------------------------
loc_960F:
inc word ptr [bp+var_4]
loc_9612:
les bx, [bp+var_4]
cmp byte ptr es:[bx], 0
jnz short loc_95B7
loc_961B:
xor dx, dx
xor ax, ax
loc_961F:
pop di
pop si
mov sp, bp
pop bp
retf
sub_95A1 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl __far sub_9625(int, int, char *pathname, char *src, int)
sub_9625 proc far
dest = byte ptr -50h
arg_0 = word ptr 6
arg_2 = word ptr 8
pathname = dword ptr 0Ah
src = dword ptr 0Eh
arg_C = word ptr 12h
push bp
mov bp, sp
sub sp, 50h
push si
push di
push [bp+arg_2]
push [bp+arg_0] ; src
push ss
lea ax, [bp+dest]
push ax ; dest
nop
push cs
call near ptr _strcpy
push word ptr [bp+src+2]
push word ptr [bp+src] ; src
push ss
lea ax, [bp+dest]
push ax ; dest
nop
push cs
call near ptr _strcat
add sp, 10h
cmp [bp+arg_C], 0
jz short loc_9679
push word ptr [bp+pathname+2]
push word ptr [bp+pathname] ; pathname
push ds
mov ax, 113Eh
push ax ; varname
push ss
lea ax, [bp+dest]
push ax ; file
nop
push cs
call near ptr __searchenv
add sp, 0Ch
les bx, [bp+pathname]
cmp byte ptr es:[bx], 0
jz short loc_96A6
jmp short loc_96A1
; ---------------------------------------------------------------------------
loc_9679:
push ss
lea ax, [bp+dest]
push ax ; src
push word ptr [bp+pathname+2]
push word ptr [bp+pathname] ; dest
nop
push cs
call near ptr _strcpy
add sp, 8
mov ax, 4
push ax ; char
push ss
lea ax, [bp+dest]
push ax ; pathname
nop
push cs
call near ptr __access
add sp, 6
or ax, ax
jnz short loc_96A6
loc_96A1:
mov ax, 1
jmp short loc_96A8
; ---------------------------------------------------------------------------
loc_96A6:
xor ax, ax
loc_96A8:
pop di
pop si
mov sp, bp
pop bp
retf
sub_9625 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_96AE(int, char *s, int, int, int, int, int)
sub_96AE proc near
pathname = word ptr -9Ch
var_1A = word ptr -1Ah
var_18 = word ptr -18h
var_16 = word ptr -16h
var_14 = dword ptr -14h
s1 = dword ptr -10h
var_C = word ptr -0Ch
var_A = word ptr -0Ah
var_8 = word ptr -8
var_6 = word ptr -6
var_4 = word ptr -4
var_2 = word ptr -2
arg_0 = word ptr 4
s = dword ptr 6
arg_6 = word ptr 0Ah
arg_8 = word ptr 0Ch
arg_A = word ptr 0Eh
arg_C = word ptr 10h
arg_E = word ptr 12h
push bp
mov bp, sp
sub sp, 9Ch
push si
push di
les bx, [bp+s]
mov al, es:[bx]
cbw
mov dx, ax
cmp ax, 61h ; 'a'
jb short loc_96C8
sub dx, 20h ; ' '
loc_96C8:
cmp dx, 41h ; 'A'
jb short loc_96DC
cmp dx, 5Ah ; 'Z'
ja short loc_96DC
les bx, [bp+s]
cmp byte ptr es:[bx+1], 3Ah ; ':'
jz short loc_96F2
loc_96DC:
push ds
mov ax, 1143h
push ax
push word ptr [bp+s+2]
push word ptr [bp+s]
push cs
call near ptr sub_95A1
add sp, 8
or ax, dx
jz short loc_96F7
loc_96F2:
mov [bp+arg_E], 0
loc_96F7:
mov [bp+var_1A], 0
mov ax, 2Eh ; '.'
push ax ; char
push word ptr [bp+s+2]
push word ptr [bp+s] ; s
nop
push cs
call near ptr strrchr
add sp, 6
mov word ptr [bp+s1+2], dx
mov word ptr [bp+s1], ax
or ax, dx
jz short loc_9756
push [bp+arg_E] ; int
push ds
mov ax, 1146h
push ax ; src
push ss
lea ax, [bp+pathname]
push ax ; pathname
push word ptr [bp+s+2] ; int
push word ptr [bp+s] ; int
push cs
call near ptr sub_9625
add sp, 0Eh
mov [bp+var_18], ax
or ax, ax
jnz short loc_973D
jmp loc_97C1
; ---------------------------------------------------------------------------
loc_973D:
push ds
mov ax, 1147h
push ax ; s2
push word ptr [bp+s1+2]
push word ptr [bp+s1] ; s1
nop
push cs
call near ptr _stricmp
add sp, 8
or ax, ax
jnz short loc_97C1
jmp short loc_97BC
; ---------------------------------------------------------------------------
loc_9756:
push [bp+arg_E] ; int
push ds
mov ax, 114Ch
push ax ; src
push ss
lea ax, [bp+pathname]
push ax ; pathname
push word ptr [bp+s+2] ; int
push word ptr [bp+s] ; int
push cs
call near ptr sub_9625
add sp, 0Eh
mov [bp+var_18], ax
or ax, ax
jnz short loc_97C1
push [bp+arg_E] ; int
push ds
mov ax, 1151h
push ax ; src
push ss
lea ax, [bp+pathname]
push ax ; pathname
push word ptr [bp+s+2] ; int
push word ptr [bp+s] ; int
push cs
call near ptr sub_9625
add sp, 0Eh
mov [bp+var_18], ax
or ax, ax
jnz short loc_97C1
push [bp+arg_E] ; int
push ds
mov ax, 1156h
push ax ; src
push ss
lea ax, [bp+pathname]
push ax ; pathname
push word ptr [bp+s+2] ; int
push word ptr [bp+s] ; int
push cs
call near ptr sub_9625
add sp, 0Eh
mov [bp+var_18], ax
or ax, ax
jz short loc_97C1
loc_97BC:
mov [bp+var_1A], 1
loc_97C1:
cmp [bp+var_18], 0
jz short loc_97E3
cmp [bp+var_1A], 0
jz short loc_97EC
push ds
mov ax, 115Bh
push ax ; name
nop
push cs
call near ptr _getenv
pop cx
pop cx
mov [bp+var_2], dx
mov [bp+var_4], ax
or ax, dx
jnz short loc_97EC
loc_97E3:
mov _errno, 2
jmp loc_98B2
; ---------------------------------------------------------------------------
loc_97EC:
; sub_96AE+133j
cmp [bp+var_1A], 0
jz short loc_9805
push [bp+var_2]
push [bp+var_4]
push ds
mov ax, offset aC ; "/c"
push ax
push [bp+arg_8]
push [bp+arg_6]
jmp short loc_9819
; ---------------------------------------------------------------------------
loc_9805:
push ss ; int
lea ax, [bp+pathname]
push ax ; int
xor ax, ax
push ax
push ax ; s
mov ax, [bp+arg_6]
add ax, 4
push [bp+arg_8] ; int
push ax ; int
loc_9819:
call __DOSCMD
mov [bp+var_6], dx
mov [bp+var_8], ax
mov ax, [bp+var_8]
or ax, [bp+var_6]
jnz short loc_9833
mov _errno, 8
; Hack (jmp loc_98B2)
db 0e9h, 07fh, 000h
; ---------------------------------------------------------------------------
loc_9833:
mov ax, [bp+var_8]
inc ax
push [bp+var_6]
push ax ; s
nop
push cs
call near ptr _strlen
pop cx
pop cx
cmp ax, 80h ; '<27>'
jb short loc_985C
mov _errno, 14h
push [bp+var_6]
push [bp+var_8]
nop
push cs
call near ptr _farfree
pop cx
pop cx
jmp short loc_98B2
; ---------------------------------------------------------------------------
loc_985C:
mov ax, [bp+arg_A]
or ax, [bp+arg_C]
jnz short loc_9871
mov dx, word ptr environ@+2
mov ax, word ptr environ@
mov [bp+arg_C], dx
mov [bp+arg_A], ax
loc_9871:
push [bp+arg_C] ; int
push [bp+arg_A] ; int
cmp [bp+var_1A], 0
jz short loc_9885
mov dx, [bp+var_2]
mov ax, [bp+var_4]
jmp short loc_988B
; ---------------------------------------------------------------------------
loc_9885:
mov dx, ss
lea ax, [bp+pathname]
loc_988B:
push dx
push ax ; s
push ss
lea ax, [bp+var_14]
push ax ; __int32
call __DOSENV
mov [bp+var_A], dx
mov [bp+var_C], ax
or ax, dx
jnz short loc_98B7
mov _errno, 8
push [bp+var_6]
push [bp+var_8]
nop
push cs
call near ptr _farfree
pop cx
pop cx
loc_98B2:
; sub_96AE+182j ...
mov ax, 0FFFFh
jmp short loc_9902
; ---------------------------------------------------------------------------
loc_98B7:
call _exitbuf
push [bp+var_A]
push [bp+var_C]
push [bp+var_6]
push [bp+var_8]
cmp [bp+var_1A], 0
jz short loc_98D5
mov dx, [bp+var_2]
mov ax, [bp+var_4]
jmp short loc_98DB
; ---------------------------------------------------------------------------
loc_98D5:
mov dx, ss
lea ax, [bp+pathname]
loc_98DB:
push dx
push ax
call [bp+arg_0]
add sp, 0Ch
mov [bp+var_16], ax
push word ptr [bp+var_14+2]
push word ptr [bp+var_14]
nop
push cs
call near ptr _farfree
push [bp+var_6]
push [bp+var_8]
nop
push cs
call near ptr _farfree
add sp, 8
mov ax, [bp+var_16]
loc_9902:
pop di
pop si
mov sp, bp
pop bp
retn
sub_96AE endp
seg000 ends
; ===========================================================================
; Segment type: Pure code
seg001 segment byte public 'CODE' use16
assume cs:seg001
;org 8
assume es:nothing, ss:nothing, ds:dseg, fs:nothing, gs:nothing
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_9908 proc near
var_A = word ptr -0Ah
var_8 = byte ptr -8
var_7 = byte ptr -7
var_6 = byte ptr -6
var_3 = word ptr -3
enter 0Ah, 0
push ds
push offset aYume_cfg ; "YUME.CFG"
call file_ropen
push ss
lea ax, [bp+var_8]
push ax
push 8
call file_read
call file_close
mov ax, [bp+var_3]
mov [bp+var_A], ax
mov word ptr dword_FC54+2, ax
mov word ptr dword_FC54, 0
les bx, dword_FC54
mov al, [bp+var_8]
mov es:[bx+15h], al
call sub_BEFA
mov byte_D880, 0
cmp byte_DDCC, 0
jnz short loc_9961
les bx, dword_FC54
mov byte ptr es:[bx+15h], 0
mov byte_D880, 1
jmp short loc_996C
; ---------------------------------------------------------------------------
loc_9961:
cmp [bp+var_8], 0
jnz short loc_996C
mov byte_DDCC, 0
loc_996C:
les bx, dword_FC54
mov al, [bp+var_7]
mov es:[bx+16h], al
mov al, [bp+var_6]
mov es:[bx+0Bh], al
leave
retn
sub_9908 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_9980 proc near
; sub_9BDF+140p ...
var_8 = byte ptr -8
var_7 = byte ptr -7
var_6 = byte ptr -6
enter 8, 0
push ds
push offset aYume_cfg ; "YUME.CFG"
call file_append
push large 0
push 0
call file_seek
les bx, dword_FC54
mov al, es:[bx+15h]
mov [bp+var_8], al
mov al, es:[bx+16h]
mov [bp+var_7], al
mov al, es:[bx+0Bh]
mov [bp+var_6], al
push ss
lea ax, [bp+var_8]
push ax
push 4
call file_write
call file_close
leave
retn
sub_9980 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_99C3 proc near
var_8 = byte ptr -8
var_7 = byte ptr -7
var_6 = byte ptr -6
enter 8, 0
lea ax, [bp+var_8]
push ss
push ax
push ds
push offset unk_D881
mov cx, 8
call SCOPY@
push ds
push offset aYume_cfg ; "YUME.CFG"
call file_append
push large 0
push 0
call file_seek
les bx, dword_FC54
mov al, es:[bx+15h]
mov [bp+var_8], al
mov al, es:[bx+16h]
mov [bp+var_7], al
mov al, es:[bx+0Bh]
mov [bp+var_6], al
push ss
lea ax, [bp+var_8]
push ax
push 8
call file_write
call file_close
leave
retn
sub_99C3 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_9A17 proc near
var_4 = word ptr -4
var_2 = word ptr -2
enter 4, 0
push si
les bx, dword_FC54
mov byte ptr es:[bx+39h], 0
mov byte ptr es:[bx+17h], 0
mov byte ptr es:[bx+33h], 0
mov byte ptr es:[bx+0Eh], 0
mov byte ptr es:[bx+0Fh], 1
mov byte ptr es:[bx+28h], 1
mov byte ptr es:[bx+34h], 2
mov byte ptr es:[bx+35h], 0
mov byte ptr es:[bx+0Dh], 0FFh
call sub_BD9A
or al, al
jz short loc_9A59
mov al, 1
jmp loc_9B9A
; ---------------------------------------------------------------------------
loc_9A59:
; sub_9A17+11Dj
les bx, dword_FC54
mov al, es:[bx+0Ch]
mov ah, 0
dec ax
cwd
sub ax, dx
mov bx, ax
sar bx, 1
mov al, [bx+0A0h]
mov ah, 0
mov [bp+var_4], ax
mov bx, word ptr dword_FC54
mov eax, es:[bx+10h]
mov random_seed, eax
xor si, si
jmp short loc_9ADB
; ---------------------------------------------------------------------------
loc_9A85:
call IRand
mov bx, 7
cwd
idiv bx
mov [bp+var_2], dx
mov bx, [bp+var_2]
cmp byte ptr [bx+99h], 0
jnz short loc_9A85
mov ax, [bp+var_4]
cmp ax, [bp+var_2]
jz short loc_9A85
mov byte ptr [bx+99h], 1
mov ax, [bp+var_2]
add ax, ax
inc ax
mov [bp+var_2], ax
les bx, dword_FC54
add bx, si
mov al, byte ptr [bp+var_2]
mov es:[bx+29h], al
mov bx, word ptr dword_FC54
mov al, es:[bx+0Ch]
mov ah, 0
cmp ax, [bp+var_2]
jnz short loc_9ADA
add bx, si
mov al, byte ptr [bp+var_2]
inc al
mov es:[bx+29h], al
loc_9ADA:
inc si
loc_9ADB:
cmp si, 6
jl short loc_9A85
les bx, dword_FC54
mov al, es:[bx+29h]
mov es:[bx+0Dh], al
mov al, byte ptr [bp+var_4]
add al, al
inc al
mov es:[bx+2Fh], al
mov byte ptr es:[bx+30h], 0Fh
cmp byte ptr es:[bx+0Ch], 0Fh
jnz short loc_9B07
inc byte ptr es:[bx+30h]
loc_9B07:
les bx, dword_FC54
mov byte ptr es:[bx+31h], 11h
cmp byte ptr es:[bx+0Ch], 11h
jnz short loc_9B1B
inc byte ptr es:[bx+31h]
loc_9B1B:
xor si, si
jmp short loc_9B39
; ---------------------------------------------------------------------------
loc_9B1F:
les bx, dword_FC54
add bx, si
mov al, es:[bx+29h]
mov ah, 0
dec ax
cwd
sub ax, dx
sar ax, 1
cmp ax, 9
jge loc_9A59
inc si
loc_9B39:
cmp si, 9
jl short loc_9B1F
xor si, si
jmp short loc_9B4E
; ---------------------------------------------------------------------------
loc_9B42:
les bx, dword_FC54
add bx, si
mov byte ptr es:[bx+18h], 0
inc si
loc_9B4E:
cmp si, 10h
jl short loc_9B42
les bx, dword_FC54
mov byte ptr es:[bx+36h], 3
mov byte ptr es:[bx+37h], 0
mov al, es:[bx+0Bh]
mov ah, 0
imul ax, 19h
add al, 46h ; 'F'
mov es:[bx+38h], al
call sub_9980
call gaiji_restore
push 100h
call sub_C403
call sub_BFC2
push large 0
push ds
push offset path ; "mainl"
push ds
push offset path ; "mainl"
call _execl
add sp, 0Ch
mov al, 0
loc_9B9A:
pop si
leave
retn
sub_9A17 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_9B9D proc near
arg_0 = word ptr 4
arg_2 = word ptr 6
push bp
mov bp, sp
push si
push di
mov di, [bp+arg_2]
mov si, [bp+arg_0]
or di, di
jnz short loc_9BB8
push large 1B0012h
push ds
push offset aIiklmnop ; "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
jmp short loc_9BD3
; ---------------------------------------------------------------------------
loc_9BB8:
cmp di, 1
jnz short loc_9BC9
push large 1B0013h
push ds
push offset aIiklccss ; "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
jmp short loc_9BD3
; ---------------------------------------------------------------------------
loc_9BC9:
push large 1B0014h
push ds
push offset aTufxmnop ; "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
loc_9BD3:
push si
call gaiji_putsa
pop di
pop si
pop bp
retn 4
sub_9B9D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_9BDF proc near
var_2 = word ptr -2
enter 2, 0
push si
xor si, si
les bx, dword_FC54
cmp byte ptr es:[bx+28h], 80h ; '<27>'
jnb loc_9C8B
call text_clear
call sub_B0AF
mov [bp+var_2], 0
push large 0E1h ; '<27>'
call sub_9B9D
push large 10001h
call sub_9B9D
push large 20001h
call sub_9B9D
loc_9C1B:
call sub_C986
or si, si
jnz short loc_9C7E
test byte ptr word_F296, 1
jz short loc_9C4A
push [bp+var_2]
push 1
call sub_9B9D
dec [bp+var_2]
cmp [bp+var_2], 0
jge short loc_9C41
mov [bp+var_2], 2
loc_9C41:
push [bp+var_2]
push 0E1h ; '<27>'
call sub_9B9D
loc_9C4A:
test byte ptr word_F296, 2
jz short loc_9C70
push [bp+var_2]
push 1
call sub_9B9D
inc [bp+var_2]
cmp [bp+var_2], 2
jle short loc_9C67
mov [bp+var_2], 0
loc_9C67:
push [bp+var_2]
push 0E1h ; '<27>'
call sub_9B9D
loc_9C70:
test byte ptr word_F296, 20h
jnz short loc_9C9B
test byte ptr word_F296+1, 20h
jnz short loc_9C9B
loc_9C7E:
mov si, word_F296
push 1
call sub_C19E
jmp short loc_9C1B
; ---------------------------------------------------------------------------
loc_9C8B:
les bx, dword_FC54
mov al, es:[bx+28h]
mov ah, 0
add ax, 0FF80h
mov [bp+var_2], ax
loc_9C9B:
cmp [bp+var_2], 2
jnz short loc_9CA5
mov al, 1
jmp short loc_9CA7
; ---------------------------------------------------------------------------
loc_9CA5:
mov al, 0
loc_9CA7:
les bx, dword_FC54
mov es:[bx+0Eh], al
cmp [bp+var_2], 1
jz short loc_9CB9
mov al, 1
jmp short loc_9CBB
; ---------------------------------------------------------------------------
loc_9CB9:
mov al, 0
loc_9CBB:
les bx, dword_FC54
mov es:[bx+0Fh], al
mov byte ptr es:[bx+39h], 0
mov byte ptr es:[bx+17h], 0
mov byte ptr es:[bx+33h], 0
mov al, byte ptr [bp+var_2]
add al, 80h ; '<27>'
mov es:[bx+28h], al
mov byte ptr es:[bx+35h], 0
cmp [bp+var_2], 1
jnz short loc_9CEF
call sub_BA88
or al, al
jz short loc_9D03
jmp short loc_9CF6
; ---------------------------------------------------------------------------
loc_9CEF:
call sub_BC1F
or al, al
jz short loc_9D03
loc_9CF6:
les bx, dword_FC54
mov byte ptr es:[bx+28h], 0
mov al, 1
jmp short loc_9D49
; ---------------------------------------------------------------------------
loc_9D03:
; sub_9BDF+115j
mov [bp+var_2], 0
jmp short loc_9D19
; ---------------------------------------------------------------------------
loc_9D0A:
les bx, dword_FC54
add bx, [bp+var_2]
mov byte ptr es:[bx+18h], 0
inc [bp+var_2]
loc_9D19:
cmp [bp+var_2], 10h
jl short loc_9D0A
call sub_9980
call gaiji_restore
push 100h
call sub_C403
call sub_BFC2
push large 0
push ds
push offset path ; "mainl"
push ds
push offset path ; "mainl"
call _execl
add sp, 0Ch
mov al, 0
loc_9D49:
pop si
leave
retn
sub_9BDF endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_9D4C proc near
push bp
mov bp, sp
push si
les bx, dword_FC54
mov byte ptr es:[bx+0Eh], 1
mov byte ptr es:[bx+0Fh], 1
inc byte ptr es:[bx+39h]
cmp byte ptr es:[bx+39h], 4
jbe short loc_9D6E
mov byte ptr es:[bx+39h], 1
loc_9D6E:
les bx, dword_FC54
mov byte ptr es:[bx+17h], 0
mov byte ptr es:[bx+33h], 0
mov byte ptr es:[bx+28h], 7Fh ; ''
mov byte ptr es:[bx+35h], 0
mov al, es:[bx+39h]
mov ah, 0
add ax, ax
mov bx, ax
mov al, [bx+0C2h]
mov bx, word ptr dword_FC54
mov es:[bx+0Ch], al
mov al, es:[bx+39h]
mov ah, 0
add ax, ax
mov dx, 0C2h ; '<27>'
inc dx
add ax, dx
mov bx, ax
mov al, [bx]
mov bx, word ptr dword_FC54
mov es:[bx+0Dh], al
mov al, es:[bx+39h]
mov ah, 0
shl ax, 2
mov bx, ax
mov eax, [bx+0C8h]
mov bx, word ptr dword_FC54
mov es:[bx+10h], eax
xor si, si
jmp short loc_9DDF
; ---------------------------------------------------------------------------
loc_9DD3:
les bx, dword_FC54
add bx, si
mov byte ptr es:[bx+18h], 0
inc si
loc_9DDF:
cmp si, 10h
jl short loc_9DD3
push 1
call palette_black_out
call sub_9980
call gaiji_restore
push 100h
call sub_C403
call sub_BFC2
push large 0
push ds
push offset path ; "mainl"
push ds
push offset path ; "mainl"
call _execl
add sp, 0Ch
pop si
pop bp
retn
sub_9D4C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_9E16 proc near
; _main:loc_A4BCp
push bp
mov bp, sp
push si
mov word_F296, 0
xor si, si
jmp short loc_9E43
; ---------------------------------------------------------------------------
loc_9E24:
call sub_C986
les bx, dword_FC54
inc dword ptr es:[bx+10h]
inc si
cmp si, 208h
jle short loc_9E3C
call sub_9D4C
loc_9E3C:
push 1
call sub_C19E
loc_9E43:
cmp word_F296, 0
jz short loc_9E24
push large 0A00100h
push 0
call super_put
mov si, 0B0h ; '<27>'
jmp short loc_9E76
; ---------------------------------------------------------------------------
loc_9E5C:
push si
call sub_B10A
push si
push large 1000002h
call super_put
push 1
call sub_C19E
add si, 8
loc_9E76:
cmp si, 120h
jl short loc_9E5C
pop si
pop bp
retn
sub_9E16 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_9E7F proc near
push bp
mov bp, sp
push si
les bx, dword_FC54
mov byte ptr es:[bx+33h], 0FFh
mov byte ptr es:[bx+35h], 1
mov byte ptr es:[bx+28h], 0
xor si, si
jmp short loc_9EA6
; ---------------------------------------------------------------------------
loc_9E9A:
les bx, dword_FC54
add bx, si
mov byte ptr es:[bx+18h], 0
inc si
loc_9EA6:
cmp si, 10h
jl short loc_9E9A
call sub_9980
call gaiji_restore
push 100h
call sub_C403
call super_free
call sub_BFC2
push large 0
push ds
push offset path ; "mainl"
push ds
push offset path ; "mainl"
call _execl
add sp, 0Ch
mov al, 0
pop si
pop bp
retn
sub_9E7F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_9EDD proc near
arg_0 = word ptr 4
arg_2 = word ptr 6
push bp
mov bp, sp
push si
push di
mov si, [bp+arg_2]
mov di, [bp+arg_0]
or si, si
jnz short loc_9EF8
push large 190011h
push ds
push offset unk_D8CC
jmp short loc_9F4B
; ---------------------------------------------------------------------------
loc_9EF8:
cmp si, 1
jnz short loc_9F09
push large 170012h
push ds
push offset a345678 ; "345678"
jmp short loc_9F4B
; ---------------------------------------------------------------------------
loc_9F09:
cmp si, 2
jnz short loc_9F1A
push large 160013h
push ds
push offset aAbcdefg ; "ABCDEFG"
jmp short loc_9F4B
; ---------------------------------------------------------------------------
loc_9F1A:
cmp si, 3
jnz short loc_9F2B
push large 180014h
push ds
push offset aVgdej ; "<22><><EFBFBD><EFBFBD><EFBFBD>"
jmp short loc_9F4B
; ---------------------------------------------------------------------------
loc_9F2B:
cmp si, 4
jnz short loc_9F3C
push large 190015h
push ds
push offset a?@ ; "=>?@"
jmp short loc_9F4B
; ---------------------------------------------------------------------------
loc_9F3C:
cmp si, 5
jnz short loc_9F51
push large 1A0016h
push ds
push offset aHij ; "HIJ"
loc_9F4B:
push di
call gaiji_putsa
loc_9F51:
pop di
pop si
pop bp
retn 4
sub_9EDD endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_9F57 proc near
arg_0 = word ptr 4
arg_2 = word ptr 6
push bp
mov bp, sp
push si
push di
mov di, [bp+arg_2]
mov si, [bp+arg_0]
or di, di
jnz short loc_9FD6
push large 190011h
push ds
push offset aNop ; "nop"
push si
call gaiji_putsa
push large 250011h
push ds
push offset asc_D965 ; " "
push 0E1h ; '<27>'
call text_putsa
les bx, dword_FC54
mov al, es:[bx+0Bh]
mov ah, 0
mov bx, ax
cmp bx, 3
ja loc_A092
add bx, bx
jmp cs:off_A099[bx]
loc_9FA2:
push large 260011h
push ds
push offset aQrs ; "qrs"
jmp loc_A08C
; ---------------------------------------------------------------------------
loc_9FAF:
push large 250011h
push ds
push offset aTuvw ; "tuvw"
jmp loc_A08C
; ---------------------------------------------------------------------------
loc_9FBC:
push large 260011h
push ds
push offset aXyz ; "xyz"
jmp loc_A08C
; ---------------------------------------------------------------------------
loc_9FC9:
push large 250011h
push ds
push offset asc_D910 ; "{|}~"
jmp loc_A08C
; ---------------------------------------------------------------------------
loc_9FD6:
cmp di, 1
jnz short loc_A02A
push large 190013h
push ds
push offset aKlmn ; "KLMN"
push si
call gaiji_putsa
les bx, dword_FC54
mov al, es:[bx+15h]
mov ah, 0
or ax, ax
jz short loc_A006
cmp ax, 1
jz short loc_A012
cmp ax, 2
jz short loc_A01E
jmp loc_A092
; ---------------------------------------------------------------------------
loc_A006:
push large 230013h
push ds
push offset aZ ; "<22><>Z[<5B><><EFBFBD>"
jmp short loc_A08C
; ---------------------------------------------------------------------------
loc_A012:
push large 230013h
push ds
push offset aOpqr ; "<22>OPQR<51><52>"
jmp short loc_A08C
; ---------------------------------------------------------------------------
loc_A01E:
push large 230013h
push ds
push offset aStuvwxy ; "STUVWXY"
jmp short loc_A08C
; ---------------------------------------------------------------------------
loc_A02A:
cmp di, 2
jnz short loc_A07D
push large 170015h
push ds
push offset a_A ; "\\]^_`a"
push si
call gaiji_putsa
les bx, dword_FC54
mov al, es:[bx+16h]
mov ah, 0
or ax, ax
jz short loc_A059
cmp ax, 1
jz short loc_A065
cmp ax, 2
jz short loc_A071
jmp short loc_A092
; ---------------------------------------------------------------------------
loc_A059:
push large 250015h
push ds
push offset aHilmhi ; "hilmhi"
jmp short loc_A08C
; ---------------------------------------------------------------------------
loc_A065:
push large 250015h
push ds
push offset aJklmhi ; "jklmhi"
jmp short loc_A08C
; ---------------------------------------------------------------------------
loc_A071:
push large 250015h
push ds
push offset aHilmjk ; "hilmjk"
jmp short loc_A08C
; ---------------------------------------------------------------------------
loc_A07D:
cmp di, 3
jnz short loc_A092
push large 200016h
push ds
push offset aHij ; "HIJ"
loc_A08C:
push si
call gaiji_putsa
loc_A092:
pop di
pop si
pop bp
retn 4
sub_9F57 endp
; ---------------------------------------------------------------------------
db 0
off_A099 dw offset loc_9FA2
dw offset loc_9FAF
dw offset loc_9FBC
dw offset loc_9FC9
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_A0A1 proc near
arg_0 = byte ptr 4
arg_2 = byte ptr 6
push bp
mov bp, sp
mov al, byte_D951
cbw
push ax
push 1
call word_E97E
mov al, [bp+arg_0]
add byte_D951, al
cmp byte_D951, 0
jge short loc_A0C3
mov al, [bp+arg_2]
mov byte_D951, al
loc_A0C3:
mov al, byte_D951
cmp al, [bp+arg_2]
jle short loc_A0D0
mov byte_D951, 0
loc_A0D0:
mov al, byte_D951
cbw
push ax
push 0E1h ; '<27>'
call word_E97E
pop bp
retn 4
sub_A0A1 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_A0E0 proc near
push bp
mov bp, sp
push si
cmp byte_D954, 0
jnz short loc_A133
call text_clear
cmp byte_D953, 0
jnz short loc_A0FA
call sub_B0DB
loc_A0FA:
mov byte_D953, 0
mov byte_E97A, 0
xor si, si
jmp short loc_A11E
; ---------------------------------------------------------------------------
loc_A108:
push si
mov al, byte_D951
cbw
cmp ax, si
jnz short loc_A116
mov ax, 0E1h ; '<27>'
jmp short loc_A119
; ---------------------------------------------------------------------------
loc_A116:
mov ax, 1
loc_A119:
push ax
call sub_9EDD
inc si
loc_A11E:
cmp si, 6
jl short loc_A108
mov word_E97E, 5DDh
mov byte_D954, 1
mov byte_E97A, 0
loc_A133:
cmp word_F296, 0
jnz short loc_A13F
mov byte_E97A, 1
loc_A13F:
cmp byte_E97A, 0
jz loc_A1F3
test byte ptr word_F296, 1
jz short loc_A156
push 5
push 0FFFFh
call sub_A0A1
loc_A156:
test byte ptr word_F296, 2
jz short loc_A164
push 5
push 1
call sub_A0A1
loc_A164:
test byte ptr word_F296+1, 20h
jnz short loc_A172
test byte ptr word_F296, 20h
jz short loc_A1DB
loc_A172:
mov al, byte_D951
cbw
mov bx, ax
cmp bx, 5
ja short loc_A1DB
add bx, bx
jmp cs:off_A1F7[bx]
loc_A184:
call sub_9A17
jmp short loc_A19A
; ---------------------------------------------------------------------------
loc_A189:
les bx, dword_FC54
mov byte ptr es:[bx+0Ch], 1
mov byte ptr es:[bx+0Dh], 1
call sub_9BDF
loc_A19A:
call sub_B008
call sub_9E16
call sub_B3C3
mov byte_D954, 0
mov byte_E97A, 0
mov byte_D953, 1
jmp short loc_A1F3
; ---------------------------------------------------------------------------
nop
push cs
call near ptr sub_AC06
jmp short loc_A19A
; ---------------------------------------------------------------------------
call sub_9E7F
jmp short loc_A1DB
; ---------------------------------------------------------------------------
mov byte_D954, 0
mov byte_E97C, 1
mov byte_D951, 0
jmp short loc_A1DB
; ---------------------------------------------------------------------------
mov byte_D954, 0
mov byte_D952, 1
loc_A1DB:
test byte ptr word_F296+1, 10h
jz short loc_A1E7
mov byte_D952, 1
loc_A1E7:
cmp word_F296, 0
jz short loc_A1F3
mov byte_E97A, 0
loc_A1F3:
pop si
pop bp
retn
sub_A0E0 endp
; ---------------------------------------------------------------------------
db 0
off_A1F7 dw offset loc_A184
dw offset loc_A189
db 0B4h, 8, 0BBh, 8, 0C0h, 8, 0D1h, 8
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_A203 proc near
push bp
mov bp, sp
push si
cmp byte_D955, 0
jnz short loc_A24A
call text_clear
call sub_B0AF
mov byte_E97B, 0
xor si, si
jmp short loc_A235
; ---------------------------------------------------------------------------
loc_A21F:
push si
mov al, byte_D951
cbw
cmp ax, si
jnz short loc_A22D
mov ax, 0E1h ; '<27>'
jmp short loc_A230
; ---------------------------------------------------------------------------
loc_A22D:
mov ax, 1
loc_A230:
push ax
call sub_9F57
inc si
loc_A235:
cmp si, 4
jl short loc_A21F
mov word_E97E, 657h
mov byte_D955, 1
mov byte_E97B, 0
loc_A24A:
cmp word_F296, 0
jnz short loc_A256
mov byte_E97B, 1
loc_A256:
cmp byte_E97B, 0
jz loc_A414
test byte ptr word_F296, 1
jz short loc_A26D
push 3
push 0FFFFh
call sub_A0A1
loc_A26D:
test byte ptr word_F296, 2
jz short loc_A27B
push 3
push 1
call sub_A0A1
loc_A27B:
test byte ptr word_F296, 8
jz loc_A31D
mov al, byte_D951
cbw
or ax, ax
jz short loc_A298
cmp ax, 1
jz short loc_A2AE
cmp ax, 2
jz short loc_A2FE
jmp short loc_A312
; ---------------------------------------------------------------------------
loc_A298:
les bx, dword_FC54
inc byte ptr es:[bx+0Bh]
cmp byte ptr es:[bx+0Bh], 3
jbe short loc_A312
mov byte ptr es:[bx+0Bh], 0
jmp short loc_A312
; ---------------------------------------------------------------------------
loc_A2AE:
cmp byte_D880, 0
jnz short loc_A312
les bx, dword_FC54
cmp byte ptr es:[bx+15h], 0
jnz short loc_A2DB
mov byte ptr es:[bx+15h], 1
push 100h
call sub_C403
call sub_BEFA
push 0
call sub_C403
jmp short loc_A2F1
; ---------------------------------------------------------------------------
loc_A2DB:
les bx, dword_FC54
mov byte ptr es:[bx+15h], 0
push 100h
call sub_C403
mov byte_DDCC, 0
loc_A2F1:
mov al, byte_D951
cbw
push ax
push 0E1h ; '<27>'
call sub_9F57
jmp short loc_A312
; ---------------------------------------------------------------------------
loc_A2FE:
les bx, dword_FC54
inc byte ptr es:[bx+16h]
cmp byte ptr es:[bx+16h], 2
jbe short loc_A312
mov byte ptr es:[bx+16h], 0
loc_A312:
mov al, byte_D951
cbw
push ax
push 0E1h ; '<27>'
call sub_9F57
loc_A31D:
test byte ptr word_F296, 4
jz loc_A3CC
mov al, byte_D951
cbw
or ax, ax
jz short loc_A33B
cmp ax, 1
jz short loc_A357
cmp ax, 2
jz short loc_A3A7
jmp loc_A3C1
; ---------------------------------------------------------------------------
loc_A33B:
les bx, dword_FC54
cmp byte ptr es:[bx+0Bh], 0
jnz short loc_A34D
mov byte ptr es:[bx+0Bh], 3
jmp short loc_A3C1
; ---------------------------------------------------------------------------
loc_A34D:
les bx, dword_FC54
dec byte ptr es:[bx+0Bh]
jmp short loc_A3C1
; ---------------------------------------------------------------------------
loc_A357:
cmp byte_D880, 0
jnz short loc_A3C1
les bx, dword_FC54
cmp byte ptr es:[bx+15h], 0
jnz short loc_A384
mov byte ptr es:[bx+15h], 1
push 100h
call sub_C403
call sub_BEFA
push 0
call sub_C403
jmp short loc_A39A
; ---------------------------------------------------------------------------
loc_A384:
les bx, dword_FC54
mov byte ptr es:[bx+15h], 0
push 100h
call sub_C403
mov byte_DDCC, 0
loc_A39A:
mov al, byte_D951
cbw
push ax
push 0E1h ; '<27>'
call sub_9F57
jmp short loc_A3C1
; ---------------------------------------------------------------------------
loc_A3A7:
les bx, dword_FC54
cmp byte ptr es:[bx+16h], 0
jnz short loc_A3B9
mov byte ptr es:[bx+16h], 2
jmp short loc_A3C1
; ---------------------------------------------------------------------------
loc_A3B9:
les bx, dword_FC54
dec byte ptr es:[bx+16h]
loc_A3C1:
; sub_A203+148j ...
mov al, byte_D951
cbw
push ax
push 0E1h ; '<27>'
call sub_9F57
loc_A3CC:
test byte ptr word_F296+1, 20h
jnz short loc_A3DA
test byte ptr word_F296, 20h
jz short loc_A3F2
loc_A3DA:
mov al, byte_D951
cbw
cmp ax, 3
jnz short loc_A3F2
mov byte_D955, 0
mov byte_D951, 4
mov byte_E97C, 0
loc_A3F2:
; sub_A203+1DEj
test byte ptr word_F296+1, 10h
jz short loc_A408
mov byte_D955, 0
mov byte_D951, 4
mov byte_E97C, 0
loc_A408:
cmp word_F296, 0
jz short loc_A414
mov byte_E97B, 0
loc_A414:
; sub_A203+20Aj
pop si
pop bp
retn
sub_A203 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl main(int argc, const char **argv, const char **envp)
_main proc far
_argc = word ptr 6
_argv = dword ptr 8
_envp = dword ptr 0Ch
push bp
mov bp, sp
call graph_400line
call text_clear
call sub_2AC6
cmp graph_VramZoom, 0
jz short loc_A452
push ds
push offset aVfvcvbgngngbgn ; "<22>f<EFBFBD>c<EFBFBD>b<EFBFBD>N<EFBFBD><4E><EFBFBD>b<EFBFBD>N<EFBFBD><4E><EFBFBD>T<EFBFBD>l<EFBFBD>g<EFBFBD><67><EFBFBD>ɂȂ<C982><C882>Ă<EFBFBD><C482>܂<EFBFBD><DC82>"...
call dos_puts2
push ds
push offset aUmx ; "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͂Q<CD82>D<EFBFBD>T<EFBFBD>l<EFBFBD>g<EFBFBD><67><EFBFBD>łȂ<C582><C882>Ɛ<EFBFBD><C690><EFBFBD><EFBFBD>Ƀ"...
call dos_puts2
push ds
push offset aViosrfvVVkvqbd ; "\n<><6E><EFBFBD><EFBFBD>ł<EFBFBD><C582><EFBFBD><EFBFBD>Q<EFBFBD>D<EFBFBD>T<EFBFBD>l<EFBFBD>g<EFBFBD><67><EFBFBD>ɐ؂<C990><D882>ւ<EFBFBD><D682>āA"...
loc_A446:
call dos_puts2
call sub_952E
pop bp
retf
; ---------------------------------------------------------------------------
loc_A452:
push ds
push offset aCOul ; "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1.dat"
call sub_C421
add sp, 4
or ax, ax
jz short loc_A468
push ds
push offset aGbgvgkxsslvVBb ; "\n<><6E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>s<EFBFBD><73><EFBFBD>ł<EFBFBD><C582>B<EFBFBD><42><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>󂫂𑝂₵<F0919D82>Ă<EFBFBD>"...
jmp short loc_A446
; ---------------------------------------------------------------------------
loc_A468:
call gaiji_backup
push ds
push offset aMikoft_bft ; "MIKOFT.bft"
call gaiji_entry_bfnt
call sub_9908
les bx, dword_FC54
cmp byte ptr es:[bx+28h], 80h ; '<27>'
jb short loc_A497
cmp byte ptr es:[bx+39h], 0
jnz short loc_A497
call sub_B38D
call sub_B3EF
call sub_B3C3
call sub_9BDF
loc_A497:
les bx, dword_FC54
cmp byte ptr es:[bx+37h], 0
jnz short loc_A4B0
call sub_ADE2
les bx, dword_FC54
mov byte ptr es:[bx+37h], 1
jmp short loc_A4BC
; ---------------------------------------------------------------------------
loc_A4B0:
les bx, dword_FC54
mov byte ptr es:[bx+37h], 0
call sub_B008
loc_A4BC:
call sub_9E16
mov byte_E97C, 0
mov word_F296, 0
call sub_A0E0
call sub_B3C3
jmp short loc_A4FE
; ---------------------------------------------------------------------------
loc_A4D2:
call sub_C986
mov al, byte_E97C
cbw
or ax, ax
jz short loc_A4E6
cmp ax, 1
jz short loc_A4EB
jmp short loc_A4EE
; ---------------------------------------------------------------------------
loc_A4E6:
call sub_A0E0
jmp short loc_A4EE
; ---------------------------------------------------------------------------
loc_A4EB:
call sub_A203
loc_A4EE:
les bx, dword_FC54
inc dword ptr es:[bx+10h]
push 1
call sub_C19E
loc_A4FE:
cmp byte_D952, 0
jz short loc_A4D2
call sub_99C3
call gaiji_restore
call text_clear
call sub_BEB8
call sub_2B3C
pop bp
retf
_main endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_A51E proc near
var_1 = byte ptr -1
arg_0 = byte ptr 4
arg_2 = byte ptr 6
enter 2, 0
mov al, 1
sub al, byte ptr word_F828+1
mov [bp+var_1], al
mov dx, 0A6h ; '<27>'
out dx, al ; Interrupt Controller #2, 8259A
push 10h
mov al, [bp+arg_2]
mov ah, 0
shl ax, 4
add ax, 28h ; '('
push ax
mov al, [bp+arg_0]
mov ah, 0
or ax, 20h
push ax
mov al, [bp+arg_2]
mov ah, 0
shl ax, 2
mov bx, ax
push large dword ptr [bx+5F2h]
call sub_C6DB
mov dx, 0A6h ; '<27>'
mov al, byte ptr word_F828+1
out dx, al ; Interrupt Controller #2, 8259A
push 10h
mov al, [bp+arg_2]
mov ah, 0
shl ax, 4
add ax, 28h ; '('
push ax
mov al, [bp+arg_0]
mov ah, 0
or ax, 20h
push ax
mov al, [bp+arg_2]
mov ah, 0
shl ax, 2
mov bx, ax
push large dword ptr [bx+5F2h]
call sub_C6DB
leave
retn 4
sub_A51E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_A590 proc near
arg_0 = byte ptr 4
push bp
mov bp, sp
push si
xor si, si
jmp short loc_A5AD
; ---------------------------------------------------------------------------
loc_A598:
push si
mov al, [bp+arg_0]
mov ah, 0
cmp ax, si
jnz short loc_A5A6
mov al, 0Fh
jmp short loc_A5A8
; ---------------------------------------------------------------------------
loc_A5A6:
mov al, 3
loc_A5A8:
push ax
call sub_A51E
inc si
loc_A5AD:
cmp si, 15h
jl short loc_A598
pop si
pop bp
retn 2
sub_A590 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_A5B7 proc near
push bp
mov bp, sp
push si
push 7D00h
call hmem_allocbyte
mov word_F82A, ax
xor si, si
jmp short loc_A5DF
; ---------------------------------------------------------------------------
loc_A5CA:
les bx, dword_F1EA
add bx, si
mov eax, es:[bx]
mov es, word_F82A
mov es:[si], eax
add si, 4
loc_A5DF:
cmp si, 7D00h
jl short loc_A5CA
pop si
pop bp
retn
sub_A5B7 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_A5E8 proc near
push bp
mov bp, sp
push word_F82A
call hmem_free
pop bp
retn
sub_A5E8 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_A5F6 proc near
push bp
mov bp, sp
push si
push di
push ds
mov ax, 0A800h
mov es, ax
assume es:nothing
mov ax, word_F82A
mov ds, ax
xor di, di
xor si, si
mov cx, 3E80h
rep movsw
pop ds
pop di
pop si
pop bp
retn
sub_A5F6 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_A614 proc near
var_3 = byte ptr -3
var_2 = word ptr -2
arg_0 = byte ptr 4
arg_2 = word ptr 6
arg_4 = word ptr 8
arg_6 = word ptr 0Ah
arg_8 = word ptr 0Ch
arg_A = word ptr 0Eh
enter 4, 0
push si
push di
mov di, [bp+arg_A]
sar [bp+arg_6], 4
mov [bp+var_2], 0
jmp short loc_A67F
; ---------------------------------------------------------------------------
loc_A628:
mov ax, [bp+var_2]
shl ax, 8
cwd
idiv [bp+arg_2]
add al, [bp+arg_0]
mov [bp+var_3], al
mov ah, 0
add ax, ax
mov bx, ax
push word ptr [bx+396h]
push [bp+arg_4]
push [bp+arg_8]
call sub_C005
add sp, 6
mov bx, [bp+var_2]
shl bx, 2
mov [bx+di], ax
mov al, [bp+var_3]
mov ah, 0
add ax, ax
mov bx, ax
push word ptr [bx+316h]
push [bp+arg_4]
push [bp+arg_6]
call sub_C005
add sp, 6
mov bx, [bp+var_2]
shl bx, 2
mov [bx+di+2], ax
inc [bp+var_2]
loc_A67F:
mov ax, [bp+var_2]
cmp ax, [bp+arg_2]
jl short loc_A628
mov bx, [bp+var_2]
shl bx, 2
mov ax, [di]
mov [bx+di], ax
mov bx, [bp+var_2]
shl bx, 2
mov ax, [di+2]
mov [bx+di+2], ax
pop di
pop si
leave
retn 0Ch
sub_A614 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_A6A3 proc near
push bp
mov bp, sp
push si
cmp byte_DE82, 0
jnz loc_A752
xor si, si
jmp loc_A746
; ---------------------------------------------------------------------------
loc_A6B5:
call IRand
mov bx, 280h
cwd
idiv bx
mov bx, si
shl bx, 2
mov [bx+1F98h], dx
call IRand
mov bx, 1900h
cwd
idiv bx
mov bx, si
shl bx, 2
mov [bx+1F9Ah], dx
call IRand
and ax, 7
mov dx, 4
sub dx, ax
mov bx, si
shl bx, 2
mov [bx+1FD8h], dx
mov bx, si
shl bx, 2
cmp word ptr [bx+1FD8h], 0
jnz short loc_A70A
mov bx, si
shl bx, 2
mov word ptr [bx+1FD8h], 1
loc_A70A:
call IRand
and ax, 3
shl ax, 4
add ax, 20h ; ' '
mov bx, si
shl bx, 2
mov [bx+1FDAh], ax
call IRand
mov [si+2018h], al
call IRand
and al, 7
mov dl, 4
sub dl, al
mov [si+2028h], dl
cmp byte ptr [si+2028h], 0
jnz short loc_A745
mov byte ptr [si+2028h], 4
loc_A745:
inc si
loc_A746:
cmp si, 10h
jl loc_A6B5
mov byte_DE82, 1
loc_A752:
xor si, si
jmp loc_A88F
; ---------------------------------------------------------------------------
loc_A757:
push 1F70h
mov bx, si
shl bx, 2
push word ptr [bx+1F98h]
mov bx, si
shl bx, 2
push word ptr [bx+1F9Ah]
mov ax, si
and ax, 3
shl ax, 4
add ax, 40h ; '@'
push ax
mov ax, si
mov bx, 4
cwd
idiv bx
add ax, 3
push ax
mov al, [si+2018h]
push ax
call sub_A614
mov bx, si
shl bx, 2
mov ax, [bx+1FD8h]
mov bx, si
shl bx, 2
add [bx+1F98h], ax
mov bx, si
shl bx, 2
mov ax, [bx+1FDAh]
mov bx, si
shl bx, 2
add [bx+1F9Ah], ax
mov al, [si+2028h]
add [si+2018h], al
mov bx, si
shl bx, 2
cmp word ptr [bx+1F98h], 0
jle short loc_A7D1
mov bx, si
shl bx, 2
cmp word ptr [bx+1F98h], 27Fh
jl short loc_A7E3
loc_A7D1:
mov bx, si
shl bx, 2
mov dx, 0FFFFh
mov ax, [bx+1FD8h]
imul dx
mov [bx+1FD8h], ax
loc_A7E3:
mov bx, si
shl bx, 2
cmp word ptr [bx+1F9Ah], 1F40h
jl loc_A879
call IRand
mov bx, 280h
cwd
idiv bx
mov bx, si
shl bx, 2
mov [bx+1F98h], dx
mov bx, si
shl bx, 2
mov word ptr [bx+1F9Ah], 0F9C0h
call IRand
and ax, 0Fh
mov dx, 8
sub dx, ax
mov bx, si
shl bx, 2
mov [bx+1FD8h], dx
mov bx, si
shl bx, 2
cmp word ptr [bx+1FD8h], 0
jnz short loc_A83E
mov bx, si
shl bx, 2
mov word ptr [bx+1FD8h], 1
loc_A83E:
call IRand
and ax, 3
shl ax, 4
add ax, 20h ; ' '
mov bx, si
shl bx, 2
mov [bx+1FDAh], ax
call IRand
mov [si+2018h], al
call IRand
and al, 7
mov dl, 4
sub dl, al
mov [si+2028h], dl
cmp byte ptr [si+2028h], 0
jnz short loc_A879
mov byte ptr [si+2028h], 4
loc_A879:
; sub_A6A3+1CFj
push ds
push offset unk_F760
mov ax, si
mov bx, 4
cwd
idiv bx
add ax, 3
push ax
call grcg_polygon_c
inc si
loc_A88F:
cmp si, 10h
jl loc_A757
pop si
pop bp
retn
sub_A6A3 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_A899 proc near
; sub_AC06+188p ...
push bp
mov bp, sp
call sub_A5F6
push large 0CE000Fh
call grcg_setcolor
call sub_A6A3
call grcg_off
mov dx, 0A4h ; '<27>'
mov al, byte ptr word_F828+1
out dx, al ; Interrupt Controller #2, 8259A
mov al, 1
sub al, byte ptr word_F828+1
mov byte ptr word_F828+1, al
mov dx, 0A6h ; '<27>'
out dx, al ; Interrupt Controller #2, 8259A
push 1
call sub_CB86
pop bp
retn
sub_A899 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_A8CF proc near
var_6 = word ptr -6
var_4 = word ptr -4
var_2 = word ptr -2
enter 6, 0
push si
push di
mov [bp+var_6], 0
jmp short loc_A8F7
; ---------------------------------------------------------------------------
loc_A8DC:
push 3200h
call hmem_allocbyte
mov bx, [bp+var_6]
shl bx, 2
mov [bx+203Eh], ax
mov word ptr [bx+203Ch], 0
inc [bp+var_6]
loc_A8F7:
cmp [bp+var_6], 4
jl short loc_A8DC
xor si, si
mov di, 40h ; '@'
jmp short loc_A97D
; ---------------------------------------------------------------------------
loc_A904:
mov [bp+var_2], 130h
jmp short loc_A975
; ---------------------------------------------------------------------------
loc_A90B:
mov ax, [bp+var_2]
sar ax, 3
mov dx, di
shl dx, 6
add ax, dx
mov dx, di
shl dx, 4
add ax, dx
mov [bp+var_4], ax
les bx, dword_F1EA
assume es:nothing
add bx, [bp+var_4]
mov eax, es:[bx]
les bx, dword ptr unk_F82C
mov es:[bx+si], eax
les bx, dword_F1EE
add bx, [bp+var_4]
mov eax, es:[bx]
les bx, dword ptr unk_F830
mov es:[bx+si], eax
les bx, dword_F1F2
add bx, [bp+var_4]
mov eax, es:[bx]
les bx, dword ptr unk_F834
mov es:[bx+si], eax
les bx, dword_F1F6
add bx, [bp+var_4]
mov eax, es:[bx]
les bx, dword ptr unk_F838
mov es:[bx+si], eax
add si, 4
add [bp+var_2], 20h ; ' '
loc_A975:
cmp [bp+var_2], 270h
jl short loc_A90B
inc di
loc_A97D:
cmp di, 50h ; 'P'
jl short loc_A904
mov di, 50h ; 'P'
jmp short loc_AA00
; ---------------------------------------------------------------------------
loc_A987:
mov [bp+var_2], 130h
jmp short loc_A9F8
; ---------------------------------------------------------------------------
loc_A98E:
mov ax, [bp+var_2]
sar ax, 3
mov dx, di
shl dx, 6
add ax, dx
mov dx, di
shl dx, 4
add ax, dx
mov [bp+var_4], ax
les bx, dword_F1EA
add bx, [bp+var_4]
mov eax, es:[bx]
les bx, dword ptr unk_F82C
mov es:[bx+si], eax
les bx, dword_F1EE
add bx, [bp+var_4]
mov eax, es:[bx]
les bx, dword ptr unk_F830
mov es:[bx+si], eax
les bx, dword_F1F2
add bx, [bp+var_4]
mov eax, es:[bx]
les bx, dword ptr unk_F834
mov es:[bx+si], eax
les bx, dword_F1F6
add bx, [bp+var_4]
mov eax, es:[bx]
les bx, dword ptr unk_F838
mov es:[bx+si], eax
add si, 4
add [bp+var_2], 20h ; ' '
loc_A9F8:
cmp [bp+var_2], 270h
jl short loc_A98E
inc di
loc_AA00:
cmp di, 180h
jl short loc_A987
pop di
pop si
leave
retn
sub_A8CF endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_AA0A proc near
arg_0 = word ptr 4
push bp
mov bp, sp
push si
push ds
push offset aMusic_txt ; "MUSIC.TXT"
call file_ropen
mov ax, [bp+arg_0]
imul ax, 348h
cwde
push eax
push 0
call file_seek
push ds
push offset unk_F83C
push 348h
call file_read
call file_close
xor si, si
jmp short loc_AA49
; ---------------------------------------------------------------------------
loc_AA3E:
mov bx, si
imul bx, 2Ah
mov byte ptr [bx+2074h], 0
inc si
loc_AA49:
cmp si, 14h
jl short loc_AA3E
pop si
pop bp
retn 2
sub_AA0A endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_AA53 proc near
push bp
mov bp, sp
push word_F82E
call hmem_free
push word_F832
call hmem_free
push word_F836
call hmem_free
push word_F83A
call hmem_free
pop bp
retn
sub_AA53 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_AA7C proc near
var_2 = word ptr -2
enter 2, 0
push si
push di
xor cx, cx
mov si, 40h ; '@'
jmp short loc_AB05
; ---------------------------------------------------------------------------
loc_AA89:
mov di, 130h
jmp short loc_AAFE
; ---------------------------------------------------------------------------
loc_AA8E:
mov ax, di
sar ax, 3
mov dx, si
shl dx, 6
add ax, dx
mov dx, si
shl dx, 4
add ax, dx
mov [bp+var_2], ax
les bx, dword ptr unk_F82C
add bx, cx
mov eax, es:[bx]
les bx, dword_F1EA
add bx, [bp+var_2]
mov es:[bx], eax
les bx, dword ptr unk_F830
add bx, cx
mov eax, es:[bx]
les bx, dword_F1EE
add bx, [bp+var_2]
mov es:[bx], eax
les bx, dword ptr unk_F834
add bx, cx
mov eax, es:[bx]
les bx, dword_F1F2
add bx, [bp+var_2]
mov es:[bx], eax
les bx, dword ptr unk_F838
add bx, cx
mov eax, es:[bx]
les bx, dword_F1F6
add bx, [bp+var_2]
mov es:[bx], eax
add cx, 4
add di, 20h ; ' '
loc_AAFE:
cmp di, 270h
jl short loc_AA8E
inc si
loc_AB05:
cmp si, 50h ; 'P'
jl loc_AA89
mov si, 50h ; 'P'
jmp short loc_AB8D
; ---------------------------------------------------------------------------
loc_AB11:
mov di, 130h
jmp short loc_AB86
; ---------------------------------------------------------------------------
loc_AB16:
mov ax, di
sar ax, 3
mov dx, si
shl dx, 6
add ax, dx
mov dx, si
shl dx, 4
add ax, dx
mov [bp+var_2], ax
les bx, dword ptr unk_F82C
add bx, cx
mov eax, es:[bx]
les bx, dword_F1EA
add bx, [bp+var_2]
mov es:[bx], eax
les bx, dword ptr unk_F830
add bx, cx
mov eax, es:[bx]
les bx, dword_F1EE
add bx, [bp+var_2]
mov es:[bx], eax
les bx, dword ptr unk_F834
add bx, cx
mov eax, es:[bx]
les bx, dword_F1F2
add bx, [bp+var_2]
mov es:[bx], eax
les bx, dword ptr unk_F838
add bx, cx
mov eax, es:[bx]
les bx, dword_F1F6
add bx, [bp+var_2]
mov es:[bx], eax
add cx, 4
add di, 20h ; ' '
loc_AB86:
cmp di, 270h
jl short loc_AB16
inc si
loc_AB8D:
cmp si, 180h
jl loc_AB11
pop di
pop si
leave
retn
sub_AA7C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_AB99 proc near
arg_0 = word ptr 4
push bp
mov bp, sp
push si
push di
push [bp+arg_0]
call sub_AA0A
call sub_A5F6
call sub_AA7C
push large 1300040h
push 1Fh
push ds
push offset unk_F83C
call sub_C6DB
mov di, 1
jmp short loc_ABDC
; ---------------------------------------------------------------------------
loc_ABC0:
push 130h
lea ax, [di+4]
shl ax, 4
push ax
push 1Dh
push ds
mov ax, di
imul ax, 2Ah
add ax, 204Ch
push ax
call sub_C6DB
inc di
loc_ABDC:
cmp di, 14h
jl short loc_ABC0
xor si, si
jmp short loc_ABFA
; ---------------------------------------------------------------------------
loc_ABE5:
les bx, dword_F1EA
add bx, si
mov eax, es:[bx]
mov es, word_F82A
mov es:[si], eax
add si, 4
loc_ABFA:
cmp si, 7D00h
jl short loc_ABE5
pop di
pop si
pop bp
retn 2
sub_AB99 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_AC06 proc far
push bp
mov bp, sp
push si
xor si, si
jmp short loc_AC15
; ---------------------------------------------------------------------------
loc_AC0E:
push si
call sub_C69C
inc si
loc_AC15:
cmp si, 20h ; ' '
jl short loc_AC0E
call super_free
call text_clear
mov byte ptr word_F828+1, 1
mov PaletteTone, 0
call far ptr palette_show
mov dx, 0A4h ; '<27>'
mov al, 0
out dx, al ; Interrupt Controller #2, 8259A
mov dx, 0A6h ; '<27>'
out dx, al ; Interrupt Controller #2, 8259A
call graph_clear
mov dx, 0A6h ; '<27>'
mov al, 1
out dx, al ; Interrupt Controller #2, 8259A
push 0
push ds
push offset aOp3_pi ; "op3.pi"
call sub_C940
push 0
call sub_C356
push large 0
push 0
call sub_C37B
push ds
push offset unk_F4B0
push large [dword_F498]
call graph_pi_free
mov al, byte_DE83
mov byte ptr word_F828, al
push word_F828
call sub_A590
push 0
call graph_copy_page
mov dx, 0A6h ; '<27>'
mov al, 1
out dx, al ; Interrupt Controller #2, 8259A
mov dx, 0A4h ; '<27>'
mov al, 0
out dx, al ; Interrupt Controller #2, 8259A
call sub_A5B7
call sub_A8CF
mov dx, 0A6h ; '<27>'
mov al, 1
out dx, al ; Interrupt Controller #2, 8259A
mov al, byte_DE83
mov ah, 0
push ax
call sub_AB99
mov dx, 0A6h ; '<27>'
mov al, 0
out dx, al ; Interrupt Controller #2, 8259A
mov al, byte_DE83
mov ah, 0
push ax
call sub_AB99
mov PaletteTone, 64h ; 'd'
call far ptr palette_show
loc_ACC2:
; sub_AC06+1A0j
call sub_C986
cmp word_F296, 0
jz short loc_ACD3
call sub_A899
jmp short loc_ACC2
; ---------------------------------------------------------------------------
loc_ACD3:
; sub_AC06+1A7j
call sub_C986
test byte ptr word_F296, 1
jz short loc_AD0E
push word_F828
push 3
call sub_A51E
cmp byte ptr word_F828, 0
jbe short loc_ACF5
dec byte ptr word_F828
jmp short loc_ACFA
; ---------------------------------------------------------------------------
loc_ACF5:
mov byte ptr word_F828, 14h
loc_ACFA:
cmp byte ptr word_F828, 13h
jnz short loc_AD05
dec byte ptr word_F828
loc_AD05:
push word_F828
push 0Fh
call sub_A51E
loc_AD0E:
test byte ptr word_F296, 2
jz short loc_AD44
push word_F828
push 3
call sub_A51E
cmp byte ptr word_F828, 14h
jnb short loc_AD2B
inc byte ptr word_F828
jmp short loc_AD30
; ---------------------------------------------------------------------------
loc_AD2B:
mov byte ptr word_F828, 0
loc_AD30:
cmp byte ptr word_F828, 13h
jnz short loc_AD3B
inc byte ptr word_F828
loc_AD3B:
push word_F828
push 0Fh
call sub_A51E
loc_AD44:
test byte ptr word_F296, 20h
jnz short loc_AD52
test byte ptr word_F296+1, 20h
jz short loc_AD9A
loc_AD52:
cmp byte ptr word_F828, 14h
jz short loc_ADB0
push 100h
call sub_C403
push 600h
mov al, byte ptr word_F828
mov ah, 0
shl ax, 2
mov bx, ax
push large dword ptr [bx+646h]
call sub_BF52
add sp, 6
push 0
call sub_C403
mov al, byte ptr word_F828
mov byte_DE83, al
mov ah, 0
push ax
call sub_AB99
call sub_A899
mov al, byte ptr word_F828
mov ah, 0
push ax
call sub_AB99
loc_AD9A:
test byte ptr word_F296+1, 10h
jnz short loc_ADB0
cmp word_F296, 0
jnz loc_ACC2
call sub_A899
jmp loc_ACD3
; ---------------------------------------------------------------------------
loc_ADB0:
; sub_AC06+199j ...
call sub_C986
cmp word_F296, 0
jz short loc_ADC1
call sub_A899
jmp short loc_ADB0
; ---------------------------------------------------------------------------
loc_ADC1:
call sub_A5E8
call sub_AA53
mov dx, 0A4h ; '<27>'
mov al, 0
out dx, al ; Interrupt Controller #2, 8259A
mov dx, 0A6h ; '<27>'
out dx, al ; Interrupt Controller #2, 8259A
call graph_clear
mov dx, 0A6h ; '<27>'
mov al, 1
out dx, al ; Interrupt Controller #2, 8259A
mov al, 0
out dx, al ; Interrupt Controller #2, 8259A
pop si
pop bp
retf
sub_AC06 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_ADE2 proc near
var_3 = byte ptr -3
var_2 = word ptr -2
enter 4, 0
push si
mov [bp+var_2], 0
mov [bp+var_3], 0
push ds
push offset aOpwin_bft ; "opwin.bft"
call super_entry_bfnt
push 100h
call sub_C403
push 600h
push ds
push offset aOp_m ; "op.m"
call sub_BF52
add sp, 6
push 0
push ds
push offset aTl01_pi ; "TL01.PI"
call sub_C940
mov PaletteTone, 0
call far ptr palette_show
mov dx, 0A6h ; '<27>'
mov al, 1
out dx, al ; Interrupt Controller #2, 8259A
push large 0
push 0
call sub_C37B
mov dx, 0A6h ; '<27>'
mov al, 0
out dx, al ; Interrupt Controller #2, 8259A
push 0
call sub_C356
push large 0
push 0
call sub_C37B
push 2
call egc_shift_left_all
mov Palettes+45, 0
mov Palettes+46, 0
mov Palettes+47, 0
call far ptr palette_show
mov Palettes+33, 0
mov Palettes+34, 0
mov Palettes+35, 0
call far ptr palette_show
push ds
push offset unk_F4B0
push large [dword_F498]
call graph_pi_free
push 0
push ds
push offset aTl02_pi ; "TL02.PI"
call sub_C940
mov dx, 0A4h ; '<27>'
mov al, 1
out dx, al ; Interrupt Controller #2, 8259A
mov si, 0A0h ; '<27>'
jmp short loc_AF02
; ---------------------------------------------------------------------------
loc_AEA0:
push 1
call sub_C19E
mov al, byte ptr [bp+var_2]
mov Palettes+45, al
mov Palettes+46, al
mov Palettes+47, al
call far ptr palette_show
cmp [bp+var_2], 80h ; '<27>'
jg short loc_AECB
mov al, byte ptr [bp+var_2]
mov Palettes+33, al
mov Palettes+34, al
mov Palettes+35, al
loc_AECB:
call far ptr palette_show
cmp [bp+var_2], 64h ; 'd'
jg short loc_AEE1
mov ax, [bp+var_2]
mov PaletteTone, ax
call far ptr palette_show
loc_AEE1:
add [bp+var_2], 2
mov dx, 0A4h ; '<27>'
mov al, [bp+var_3]
out dx, al ; Interrupt Controller #2, 8259A
mov al, 1
sub al, [bp+var_3]
mov [bp+var_3], al
mov dx, 0A6h ; '<27>'
out dx, al ; Interrupt Controller #2, 8259A
push 4
call egc_shift_left_all
sub si, 2
loc_AF02:
cmp si, 11h
jg short loc_AEA0
jmp short loc_AF25
; ---------------------------------------------------------------------------
loc_AF09:
mov al, byte ptr [bp+var_2]
mov Palettes+45, al
mov Palettes+46, al
mov Palettes+47, al
call far ptr palette_show
add [bp+var_2], 2
push 1
call sub_C19E
loc_AF25:
cmp [bp+var_2], 0FFh
jl short loc_AF09
mov vsync_Count1, 0
call sub_B3EF
loc_AF35:
cmp vsync_Count1, 10h
jb short loc_AF35
xor si, si
jmp short loc_AF65
; ---------------------------------------------------------------------------
loc_AF40:
mov PaletteTone, 0C8h ; '<27>'
call far ptr palette_show
push 1
call sub_C19E
mov PaletteTone, 64h ; 'd'
call far ptr palette_show
push 1
call sub_C19E
inc si
loc_AF65:
cmp si, 8
jl short loc_AF40
mov PaletteTone, 0C8h ; '<27>'
call far ptr palette_show
push 0
call sub_C403
mov dx, 0A4h ; '<27>'
mov al, 0
out dx, al ; Interrupt Controller #2, 8259A
mov dx, 0A6h ; '<27>'
out dx, al ; Interrupt Controller #2, 8259A
push 0
call sub_C356
push large 0
push 0
call sub_C37B
push 1
call sub_C19E
mov PaletteTone, 64h ; 'd'
call far ptr palette_show
push 1
call sub_C19E
xor si, si
jmp short loc_AFD9
; ---------------------------------------------------------------------------
loc_AFB4:
mov PaletteTone, 0C8h ; '<27>'
call far ptr palette_show
push 1
call sub_C19E
mov PaletteTone, 64h ; 'd'
call far ptr palette_show
push 1
call sub_C19E
inc si
loc_AFD9:
cmp si, 8
jl short loc_AFB4
mov dx, 0A6h ; '<27>'
mov al, 1
out dx, al ; Interrupt Controller #2, 8259A
push large 0
push 0
call sub_C37B
mov dx, 0A6h ; '<27>'
mov al, 0
out dx, al ; Interrupt Controller #2, 8259A
push ds
push offset unk_F4B0
push large [dword_F498]
call graph_pi_free
call sub_B38D
pop si
leave
retn
sub_ADE2 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_B008 proc near
; _main+A2p
push bp
mov bp, sp
push si
push ds
push offset aOpwin_bft ; "opwin.bft"
call super_entry_bfnt
push 100h
call sub_C403
push 600h
push ds
push offset aOp_m ; "op.m"
call sub_BF52
add sp, 6
mov PaletteTone, 0
call far ptr palette_show
push 0
push ds
push offset aTl02_pi ; "TL02.PI"
call sub_C940
mov dx, 0A4h ; '<27>'
mov al, 0
out dx, al ; Interrupt Controller #2, 8259A
call sub_B3EF
mov dx, 0A6h ; '<27>'
mov al, 1
out dx, al ; Interrupt Controller #2, 8259A
push large 0
push 0
call sub_C37B
mov dx, 0A6h ; '<27>'
mov al, 0
out dx, al ; Interrupt Controller #2, 8259A
push 0
call sub_C356
push large 0
push 0
call sub_C37B
mov dx, 0A6h ; '<27>'
mov al, 0
out dx, al ; Interrupt Controller #2, 8259A
push ds
push offset unk_F4B0
push large [dword_F498]
call graph_pi_free
call sub_B38D
push 0
call sub_C403
xor si, si
jmp short loc_B0A7
; ---------------------------------------------------------------------------
loc_B094:
mov PaletteTone, si
call far ptr palette_show
push 1
call sub_C19E
add si, 4
loc_B0A7:
cmp si, 64h ; 'd'
jle short loc_B094
pop si
pop bp
retn
sub_B008 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_B0AF proc near
push bp
mov bp, sp
push si
mov si, 120h
jmp short loc_B0D2
; ---------------------------------------------------------------------------
loc_B0B8:
push si
call sub_B10A
push si
push large 1000002h
call super_put
push 1
call sub_C19E
add si, 8
loc_B0D2:
cmp si, 188h
jl short loc_B0B8
pop si
pop bp
retn
sub_B0AF endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_B0DB proc near
push bp
mov bp, sp
push si
mov si, 180h
jmp short loc_B101
; ---------------------------------------------------------------------------
loc_B0E4:
lea ax, [si+8]
push ax
call sub_B10A
push si
push large 1000002h
call super_put
push 1
call sub_C19E
sub si, 8
loc_B101:
cmp si, 118h
jge short loc_B0E4
pop si
pop bp
retn
sub_B0DB endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_B10A proc near
arg_0 = word ptr 4
push bp
mov bp, sp
push si
push di
mov ax, [bp+arg_0]
shr ax, 3
mov di, 77B0h
add di, ax
mov ax, 0AD00h
mov es, ax
assume es:nothing
loc_B11F:
mov al, 1
out 0A6h, al ; Interrupt Controller #2, 8259A
mov dx, es:[di]
mov ax, 0B500h
mov es, ax
assume es:nothing
mov cx, es:[di]
mov ax, 0BD00h
mov es, ax
assume es:nothing
mov bx, es:[di]
mov ax, 0E500h
mov es, ax
assume es:nothing
mov si, es:[di]
xor al, al
out 0A6h, al ; Interrupt Controller #2, 8259A
mov es:[di], si
mov ax, 0BD00h
mov es, ax
assume es:nothing
mov es:[di], bx
mov ax, 0B500h
mov es, ax
assume es:nothing
mov es:[di], cx
mov ax, 0AD00h
mov es, ax
assume es:nothing
mov es:[di], dx
sub di, 50h ; 'P'
jnb short loc_B11F
pop di
pop si
pop bp
retn 2
sub_B10A endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_B168 proc near
var_4 = word ptr -4
var_1 = byte ptr -1
arg_0 = word ptr 4
enter 4, 0
push si
push di
mov [bp+var_4], 0
call IRand
mov byte_FC50, al
call IRand
mov byte_FC51, al
call IRand
mov byte_FBD7, al
mov si, 2396h
xor di, di
jmp short loc_B19B
; ---------------------------------------------------------------------------
loc_B192:
mov al, [si]
mov ah, 0
add [bp+var_4], ax
inc di
inc si
loc_B19B:
cmp di, 0CCh ; '<27>'
jl short loc_B192
mov ax, [bp+var_4]
mov word_FB84, ax
mov si, 2460h
dec si
mov al, byte_FC51
mov [bp+var_1], al
mov di, 0CBh ; '<27>'
jmp short loc_B1D4
; ---------------------------------------------------------------------------
loc_B1B6:
mov al, [si]
mov dl, byte_FC50
add dl, [bp+var_1]
sub al, dl
mov [si], al
mov al, [si]
mov [bp+var_1], al
mov al, byte_FC51
ror [bp+var_1], 3
xor [bp+var_1], al
dec di
dec si
loc_B1D4:
or di, di
jge short loc_B1B6
push ds
push word_E1F2
call file_append
mov ax, [bp+arg_0]
imul ax, 0CEh
movzx eax, ax
push eax
push 0
call file_seek
push ds
push offset word_FB84
push 0CEh ; '<27>'
call file_write
call file_close
pop di
pop si
leave
retn 2
sub_B168 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_B20D proc near
var_1 = byte ptr -1
enter 2, 0
push si
mov si, 2394h
xor dx, dx
jmp short loc_B235
; ---------------------------------------------------------------------------
loc_B219:
mov al, [si+1]
mov [bp+var_1], al
mov al, byte_FC51
ror [bp+var_1], 3
xor [bp+var_1], al
mov al, byte_FC50
add al, [bp+var_1]
add al, [si]
mov [si], al
inc dx
inc si
loc_B235:
cmp dx, 0CBh ; '<27>'
jl short loc_B219
mov al, byte_FC50
add al, byte_FC51
add al, [si]
mov [si], al
pop si
leave
retn
sub_B20D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_B249 proc near
var_1 = byte ptr -1
enter 2, 0
push si
push di
mov [bp+var_1], 29h ; ')'
xor si, si
jmp short loc_B28A
; ---------------------------------------------------------------------------
loc_B257:
xor di, di
jmp short loc_B266
; ---------------------------------------------------------------------------
loc_B25B:
mov bx, si
shl bx, 3
mov byte ptr [bx+di+2396h], 2Ah ; '*'
inc di
loc_B266:
cmp di, 8
jl short loc_B25B
xor di, di
jmp short loc_B27A
; ---------------------------------------------------------------------------
loc_B26F:
mov bx, si
imul bx, 0Ah
mov byte ptr [bx+di+23E8h], 20h ; ' '
inc di
loc_B27A:
cmp di, 0Ah
jl short loc_B26F
mov byte ptr [si+244Ch], 0
mov byte ptr [si+2456h], 21h ; '!'
inc si
loc_B28A:
cmp si, 0Ah
jl short loc_B257
mov byte_FBDC, 21h ; '!'
mov di, 1
jmp short loc_B2A9
; ---------------------------------------------------------------------------
loc_B299:
mov bx, di
imul bx, 0Ah
mov al, [bp+var_1]
mov [bx+23EBh], al
inc di
dec [bp+var_1]
loc_B2A9:
cmp di, 0Ah
jl short loc_B299
mov byte_FBD6, 12h
xor si, si
jmp short loc_B2BF
; ---------------------------------------------------------------------------
loc_B2B7:
push si
call sub_B168
call sub_B20D
inc si
loc_B2BF:
cmp si, 4
jl short loc_B2B7
pop di
pop si
leave
retn
sub_B249 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_B2C8 proc near
push bp
mov bp, sp
push si
xor cx, cx
mov si, 2396h
xor dx, dx
jmp short loc_B2DD
; ---------------------------------------------------------------------------
loc_B2D5:
mov al, [si]
mov ah, 0
add cx, ax
inc dx
inc si
loc_B2DD:
cmp dx, 0CCh ; '<27>'
jl short loc_B2D5
cmp word_FB84, cx
jz short loc_B2ED
mov al, 1
jmp short loc_B2EF
; ---------------------------------------------------------------------------
loc_B2ED:
mov al, 0
loc_B2EF:
pop si
pop bp
retn
sub_B2C8 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_B2F2 proc near
arg_0 = word ptr 4
push bp
mov bp, sp
push ds
push word_E1F2
call file_exist
or ax, ax
jnz short loc_B314
push ds
push word_E1F2
call file_create
call file_close
jmp short loc_B34D
; ---------------------------------------------------------------------------
loc_B314:
push ds
push word_E1F2
call file_ropen
mov ax, [bp+arg_0]
imul ax, 0CEh
movzx eax, ax
push eax
push 0
call file_seek
push ds
push offset word_FB84
push 0CEh ; '<27>'
call file_read
call file_close
call sub_B20D
call sub_B2C8
or al, al
jz short loc_B357
loc_B34D:
call sub_B249
mov ax, 1
pop bp
retn 2
; ---------------------------------------------------------------------------
loc_B357:
xor ax, ax
pop bp
retn 2
sub_B2F2 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_B35D proc near
var_1 = byte ptr -1
enter 2, 0
push si
mov [bp+var_1], 7
xor si, si
jmp short loc_B382
; ---------------------------------------------------------------------------
loc_B36A:
push si
call sub_B2F2
or ax, ax
jz short loc_B376
mov al, 7
jmp short loc_B38A
; ---------------------------------------------------------------------------
loc_B376:
cmp byte_FBD6, 63h ; 'c'
jnz short loc_B381
mov [bp+var_1], 9
loc_B381:
inc si
loc_B382:
cmp si, 4
jl short loc_B36A
mov al, [bp+var_1]
loc_B38A:
pop si
leave
retn
sub_B35D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_B38D proc near
push bp
mov bp, sp
push si
call sub_CB68
xor si, si
jmp short loc_B3B0
; ---------------------------------------------------------------------------
loc_B39A:
lea ax, [si+2]
push ax
mov bx, si
shl bx, 2
push large dword ptr [bx+0A0Eh]
push 0
call sub_C48A
inc si
loc_B3B0:
cmp si, 3
jl short loc_B39A
push 0Dh
push ds
push offset aSlex_cd2 ; "slex.cd2"
call sub_C680
pop si
pop bp
retn
sub_B38D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_B3C3 proc near
push bp
mov bp, sp
push 1
push ds
push offset a99sl_cdg ; "99sl.cdg"
push 0
call sub_C48A
push 0Bh
push ds
push offset aSlwin_cdg ; "slwin.cdg"
push 0
call sub_C514
push 0Ch
push ds
push offset aSlex_cdg ; "slex.cdg"
push 0
call sub_C514
pop bp
retn
sub_B3C3 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_B3EF proc near
push bp
mov bp, sp
push si
push 0
push large [off_E1FE]
push 0
call sub_C48A
mov si, 3
jmp short loc_B41C
; ---------------------------------------------------------------------------
loc_B406:
lea ax, [si+2]
push ax
mov bx, si
shl bx, 2
push large dword ptr [bx+0A0Eh]
push 0
call sub_C48A
inc si
loc_B41C:
cmp si, 6
jl short loc_B406
pop si
pop bp
retn
sub_B3EF endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_B424 proc near
push bp
mov bp, sp
push si
mov vsync_Count1, 0
push 100h
call sub_C403
push 600h
push ds
push offset aSelect_m ; "select.m"
call sub_BF52
add sp, 6
push 0
call sub_C403
mov word_FC64, 0C8h ; '<27>'
les bx, dword_FC54
assume es:nothing
mov eax, es:[bx+10h]
mov random_seed, eax
call text_clear
call super_free
push ds
push offset aChname_bft ; "chname.bft"
call super_entry_bfnt
mov dx, 0A6h ; '<27>'
mov al, 0
out dx, al ; Interrupt Controller #2, 8259A
call graph_clear
mov dx, 0A6h ; '<27>'
mov al, 1
out dx, al ; Interrupt Controller #2, 8259A
call graph_clear
mov dx, 0A4h ; '<27>'
mov al, 0
out dx, al ; Interrupt Controller #2, 8259A
mov byte_FC5C, 0
push ds
push offset aTlsl_rgb ; "TLSL.RGB"
call palette_entry_rgb
call far ptr palette_show
mov si, 6
jmp short loc_B4BC
; ---------------------------------------------------------------------------
loc_B4A6:
lea ax, [si+2]
push ax
mov bx, si
shl bx, 2
push large dword ptr [bx+0A0Eh]
push 0
call sub_C48A
inc si
loc_B4BC:
cmp si, 9
jl short loc_B4A6
loc_B4C1:
cmp vsync_Count1, 1Eh
jb short loc_B4C1
mov word_FC66, 8
call sub_B35D
mov byte_FC68, al
pop si
pop bp
retn
sub_B424 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_B4D7 proc near
; sub_BA88:loc_BC18p ...
push bp
mov bp, sp
push si
xor si, si
jmp short loc_B4E6
; ---------------------------------------------------------------------------
loc_B4DF:
push si
call sub_C69C
inc si
loc_B4E6:
cmp si, 16h
jl short loc_B4DF
call super_free
pop si
pop bp
retn
sub_B4D7 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_B4F3 proc near
push bp
mov bp, sp
push large 200060h
cmp byte_FC5A, 0
jnz short loc_B50C
mov al, byte_FC58
cbw
add ax, 2
jmp short loc_B50E
; ---------------------------------------------------------------------------
loc_B50C:
xor ax, ax
loc_B50E:
push ax
call sub_C020
push large 1A00060h
cmp byte_FC5B, 0
jnz short loc_B52A
mov al, byte_FC59
cbw
add ax, 2
jmp short loc_B52D
; ---------------------------------------------------------------------------
loc_B52A:
mov ax, 1
loc_B52D:
push ax
call sub_C0D4
pop bp
retn
sub_B4F3 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_B535 proc near
push bp
mov bp, sp
push large 200060h
cmp byte_FC5A, 0
jnz short loc_B54E
mov al, byte_FC58
cbw
add ax, 2
jmp short loc_B550
; ---------------------------------------------------------------------------
loc_B54E:
xor ax, ax
loc_B550:
push ax
call sub_C020
push large 1A00060h
push 1
call sub_C020
pop bp
retn
sub_B535 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_B565 proc near
var_4 = word ptr -4
var_2 = word ptr -2
enter 4, 0
push si
push di
push large 200130h
push 0Bh
call far ptr loc_CAF6
les bx, dword_FC54
cmp byte ptr es:[bx+28h], 1
jz short loc_B590
push large 1A00130h
push 0Bh
call far ptr loc_CAF6
loc_B590:
push large 0C0000Eh
call grcg_setcolor
mov [bp+var_2], 0
mov [bp+var_4], 13Bh
jmp short loc_B625
; ---------------------------------------------------------------------------
loc_B5A7:
mov di, 5
mov si, 8Ch ; '<27>'
jmp short loc_B5C7
; ---------------------------------------------------------------------------
loc_B5AF:
push si
push [bp+var_4]
lea ax, [si+8]
push ax
mov ax, [bp+var_4]
add ax, 0Fh
push ax
call grcg_boxfill
dec di
sub si, 0Bh
loc_B5C7:
mov al, byte_FC58
cbw
imul ax, 3
add ax, [bp+var_2]
mov bx, ax
mov al, [bx+0A32h]
mov ah, 0
cmp ax, di
jl short loc_B5AF
les bx, dword_FC54
cmp byte ptr es:[bx+28h], 1
jz short loc_B61E
mov di, 5
mov si, 20Ch
jmp short loc_B608
; ---------------------------------------------------------------------------
loc_B5F0:
push si
push [bp+var_4]
lea ax, [si+8]
push ax
mov ax, [bp+var_4]
add ax, 0Fh
push ax
call grcg_boxfill
dec di
sub si, 0Bh
loc_B608:
mov al, byte_FC59
cbw
imul ax, 3
add ax, [bp+var_2]
mov bx, ax
mov al, [bx+0A32h]
mov ah, 0
cmp ax, di
jl short loc_B5F0
loc_B61E:
inc [bp+var_2]
add [bp+var_4], 10h
loc_B625:
cmp [bp+var_2], 3
jl loc_B5A7
call grcg_off
pop di
pop si
leave
retn
sub_B565 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_B636 proc near
push bp
mov bp, sp
push si
push di
mov di, 88h ; '<27>'
xor si, si
jmp short loc_B663
; ---------------------------------------------------------------------------
loc_B642:
push 100h
push di
mov ax, si
add ax, ax
push ax
call super_put
push 140h
push di
mov ax, si
add ax, ax
inc ax
push ax
call super_put
inc si
add di, 14h
loc_B663:
mov al, byte_FC68
mov ah, 0
cmp ax, si
jg short loc_B642
pop di
pop si
pop bp
retn
sub_B636 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_B670 proc near
push bp
mov bp, sp
push large 0A00130h
push 0Ch
call far ptr loc_CAF6
push large 0B0013Ch
mov al, byte_FC58
cbw
add ax, 0Dh
push ax
call far ptr loc_CAF6
les bx, dword_FC54
cmp byte ptr es:[bx+28h], 1
jz short loc_B6BE
push large 2200130h
push 0Ch
call far ptr loc_CAF6
push large 230013Ch
mov al, byte_FC59
cbw
add ax, 0Dh
push ax
call far ptr loc_CAF6
loc_B6BE:
pop bp
retn
sub_B670 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_B6C0 proc near
var_7 = byte ptr -7
var_6 = word ptr -6
var_4 = word ptr -4
var_2 = word ptr -2
arg_0 = word ptr 4
arg_2 = word ptr 6
arg_4 = word ptr 8
arg_6 = byte ptr 0Ah
arg_8 = byte ptr 0Ch
enter 8, 0
push si
mov si, [bp+arg_4]
mov [bp+var_6], 0
jmp short loc_B73B
; ---------------------------------------------------------------------------
loc_B6CF:
mov al, byte ptr [bp+var_6]
add al, [bp+arg_8]
mov [bp+var_7], al
mov ah, 0
imul [bp+arg_2]
mov bx, 100h
cwd
idiv bx
mov [bp+var_7], al
mov ah, 0
add ax, ax
mov bx, ax
push word ptr [bx+396h]
push si
push 140h
call sub_C005
add sp, 6
mov [bp+var_2], ax
mov al, byte ptr [bp+var_6]
add al, [bp+arg_6]
mov [bp+var_7], al
mov ah, 0
imul [bp+arg_0]
mov bx, 100h
cwd
idiv bx
mov [bp+var_7], al
mov ah, 0
add ax, ax
mov bx, ax
push word ptr [bx+316h]
push si
push 0C8h ; '<27>'
call sub_C005
add sp, 6
mov [bp+var_4], ax
push [bp+var_2]
push ax
call grcg_pset
inc [bp+var_6]
loc_B73B:
cmp [bp+var_6], 100h
jb short loc_B6CF
pop si
leave
retn 0Ah
sub_B6C0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_B747 proc near
; sub_BC1F:loc_BC69p ...
var_6 = word ptr -6
var_4 = word ptr -4
var_2 = word ptr -2
enter 6, 0
push si
push di
mov al, byte ptr word_FC52
mov ah, 0
mov si, ax
cmp si, 80h ; '<27>'
jl short loc_B761
mov ax, 100h
sub ax, si
mov si, ax
loc_B761:
mov ax, si
add ax, si
add ax, 100h
mov [bp+var_4], ax
add si, 100h
mov ax, si
add ax, si
mov [bp+var_2], ax
push large 0C00006h
call grcg_setcolor
push word_FC52
mov al, byte ptr word_FC52
add al, al
push ax
push 0DCh ; '<27>'
push si
push [bp+var_2]
call sub_B6C0
mov al, 0
sub al, byte ptr word_FC52
push ax
mov al, byte ptr word_FC52
mov ah, 0
cwd
sub ax, dx
sar ax, 1
push ax
push 78h ; 'x'
push [bp+var_4]
push si
call sub_B6C0
push large 0C00005h
call grcg_setcolor
mov ax, word_FC66
cwd
sub ax, dx
sar ax, 1
mov di, ax
test byte ptr word_FC66, 1
jz short loc_B7CD
inc di
loc_B7CD:
mov [bp+var_6], 1
jmp short loc_B824
; ---------------------------------------------------------------------------
loc_B7D4:
mov al, byte ptr [bp+var_6]
add al, al
mov dl, byte ptr word_FC52
sub dl, al
push dx
mov al, byte ptr word_FC52
add al, al
mov dl, byte ptr [bp+var_6]
shl dl, 2
sub al, dl
push ax
push 0DCh ; '<27>'
push si
push [bp+var_2]
call sub_B6C0
mov al, 0
sub al, byte ptr word_FC52
mov dl, byte ptr [bp+var_6]
add dl, dl
add al, dl
push ax
mov al, byte ptr word_FC52
mov ah, 0
mov dx, [bp+var_6]
add dx, dx
sub ax, dx
cwd
sub ax, dx
sar ax, 1
push ax
push 78h ; 'x'
push [bp+var_4]
push si
call sub_B6C0
inc [bp+var_6]
loc_B824:
cmp [bp+var_6], di
jle short loc_B7D4
push large 0C00001h
call grcg_setcolor
lea ax, [di+1]
mov [bp+var_6], ax
jmp short loc_B88C
; ---------------------------------------------------------------------------
loc_B83C:
mov al, byte ptr [bp+var_6]
add al, al
mov dl, byte ptr word_FC52
sub dl, al
push dx
mov al, byte ptr word_FC52
add al, al
mov dl, byte ptr [bp+var_6]
shl dl, 2
sub al, dl
push ax
push 0DCh ; '<27>'
push si
push [bp+var_2]
call sub_B6C0
mov al, 0
sub al, byte ptr word_FC52
mov dl, byte ptr [bp+var_6]
add dl, dl
add al, dl
push ax
mov al, byte ptr word_FC52
mov ah, 0
mov dx, [bp+var_6]
add dx, dx
sub ax, dx
cwd
sub ax, dx
sar ax, 1
push ax
push 78h ; 'x'
push [bp+var_4]
push si
call sub_B6C0
inc [bp+var_6]
loc_B88C:
mov ax, [bp+var_6]
cmp ax, word_FC66
jle short loc_B83C
call grcg_off
mov al, byte ptr word_FC52
add al, 2
mov byte ptr word_FC52, al
pop di
pop si
leave
retn
sub_B747 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_B8A6 proc near
var_2 = word ptr -2
arg_0 = byte ptr 4
arg_2 = word ptr 6
enter 2, 0
push si
push di
mov si, [bp+arg_2]
mov ax, si
shl ax, 4
shl ax, 3
add ax, 0F0h ; '<27>'
mov di, ax
mov al, [si+2468h]
cbw
imul ax, 14h
add ax, 80h ; '<27>'
mov [bp+var_2], ax
push di
push ax
push 10h
push ds
mov ax, si
imul ax, 3
add ax, 0A4Dh
push ax
mov al, [bp+arg_0]
mov ah, 0
push ax
call sub_1232
push di
mov ax, [bp+var_2]
add ax, 10h
push ax
push 10h
push ds
mov ax, si
imul ax, 3
add ax, 0A53h
push ax
mov al, [bp+arg_0]
mov ah, 0
push ax
call sub_1232
pop di
pop si
leave
retn 4
sub_B8A6 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_B908 proc near
var_2 = word ptr -2
arg_0 = word ptr 4
arg_2 = word ptr 6
enter 2, 0
push si
push di
mov di, [bp+arg_2]
mov si, [bp+arg_0]
cmp byte ptr [si+246Ah], 0
jnz loc_BA82
cmp byte ptr [si+0A59h], 0
jz short loc_B932
or di, di
jnz loc_BA82
mov byte ptr [si+0A59h], 0
jmp loc_BA82
; ---------------------------------------------------------------------------
loc_B932:
test di, 1
jz short loc_B951
dec byte ptr [si+2468h]
cmp byte ptr [si+2468h], 0
jge short loc_B94C
mov al, byte_FC68
dec al
mov [si+2468h], al
loc_B94C:
mov byte ptr [si+0A59h], 1
loc_B951:
test di, 2
jz short loc_B974
inc byte ptr [si+2468h]
mov al, [si+2468h]
cbw
mov dl, byte_FC68
mov dh, 0
cmp ax, dx
jl short loc_B96F
mov byte ptr [si+2468h], 0
loc_B96F:
mov byte ptr [si+0A59h], 1
loc_B974:
test di, 20h
; Hack
db 00fh
db 084h
db 07fh
db 000h
mov al, [si+2468h]
cbw
mov [bp+var_2], ax
les bx, dword_FC54
add bx, si
mov al, byte ptr [bp+var_2]
add al, al
inc al
mov es:[bx+0Ch], al
push 1
call palette_white_in
mov bx, 1
sub bx, si
cmp byte ptr [bx+246Ah], 0
jz short loc_B9CC
les bx, dword_FC54
mov al, es:[bx+0Ch]
cmp al, es:[bx+0Dh]
jnz short loc_B9CC
add bx, si
inc byte ptr es:[bx+0Ch]
push si
mov bx, [bp+var_2]
shl bx, 2
push large dword ptr [bx+0A0Eh]
push 1
jmp short loc_B9DA
; ---------------------------------------------------------------------------
loc_B9CC:
push si
mov bx, [bp+var_2]
shl bx, 2
push large dword ptr [bx+0A0Eh]
push 0
loc_B9DA:
call sub_C48A
mov bx, 1
sub bx, si
cmp byte ptr [bx+246Ah], 0
jz short loc_B9F1
mov word_FC62, 0
loc_B9F1:
mov byte ptr [si+246Ah], 1
mov byte ptr [si+0A59h], 1
loc_B9FB:
test di, 10h
; Hack
db 00fh
db 084h
db 07fh
db 000h
mov al, [si+2468h]
cbw
mov [bp+var_2], ax
les bx, dword_FC54
add bx, si
mov al, byte ptr [bp+var_2]
add al, al
add al, 2
mov es:[bx+0Ch], al
push 1
call palette_white_in
mov bx, 1
sub bx, si
cmp byte ptr [bx+246Ah], 0
jz short loc_BA53
les bx, dword_FC54
mov al, es:[bx+0Ch]
cmp al, es:[bx+0Dh]
jnz short loc_BA53
add bx, si
dec byte ptr es:[bx+0Ch]
push si
mov bx, [bp+var_2]
shl bx, 2
push large dword ptr [bx+0A0Eh]
push 0
jmp short loc_BA61
; ---------------------------------------------------------------------------
loc_BA53:
; sub_B908+133j
push si
mov bx, [bp+var_2]
shl bx, 2
push large dword ptr [bx+0A0Eh]
push 1
loc_BA61:
call sub_C48A
mov bx, 1
sub bx, si
cmp byte ptr [bx+246Ah], 0
jz short loc_BA78
mov word_FC62, 0
loc_BA78:
mov byte ptr [si+246Ah], 1
mov byte ptr [si+0A59h], 1
loc_BA82:
pop di
pop si
leave
retn 4
sub_B908 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_BA88 proc near
push bp
mov bp, sp
call sub_B424
call text_clear
les bx, dword_FC54
mov al, es:[bx+0Ch]
mov ah, 0
dec ax
cwd
sub ax, dx
sar ax, 1
mov byte_FC58, al
mov al, es:[bx+0Dh]
mov ah, 0
dec ax
cwd
sub ax, dx
sar ax, 1
mov byte_FC59, al
mov byte_FC5A, 0
mov byte_FC5B, 0
cmp byte ptr es:[bx+16h], 0
jnz short loc_BAD4
mov word ptr dword_FC5E+2, seg seg002
mov word ptr dword_FC5E, 0AFAh
jmp short loc_BAF9
; ---------------------------------------------------------------------------
loc_BAD4:
les bx, dword_FC54
cmp byte ptr es:[bx+16h], 1
jnz short loc_BAED
mov word ptr dword_FC5E+2, seg seg002
mov word ptr dword_FC5E, 0B04h
jmp short loc_BAF9
; ---------------------------------------------------------------------------
loc_BAED:
mov word ptr dword_FC5E+2, seg seg002
mov word ptr dword_FC5E, 0B26h
loc_BAF9:
push 10h
call sub_C19E
mov word_FC62, 0
loc_BB06:
call sub_B747
call sub_B4F3
call sub_B565
call sub_B636
call sub_B670
push 0
cmp byte_FC5A, 0
jz short loc_BB22
mov al, 0Fh
jmp short loc_BB24
; ---------------------------------------------------------------------------
loc_BB22:
mov al, 8
loc_BB24:
push ax
call sub_B8A6
push 1
cmp byte_FC5B, 0
jz short loc_BB35
mov al, 0Fh
jmp short loc_BB37
; ---------------------------------------------------------------------------
loc_BB35:
mov al, 0Ah
loc_BB37:
push ax
call sub_B8A6
call sub_C1B4
call dword_FC5E
push word_F292
push 0
call sub_B908
push word_F294
push 1
call sub_B908
test byte ptr word_F296+1, 10h
jz short loc_BB82
mov dx, 0A6h ; '<27>'
mov al, 0
out dx, al ; Interrupt Controller #2, 8259A
call graph_clear
mov dx, 0A4h ; '<27>'
mov al, 0
out dx, al ; Interrupt Controller #2, 8259A
call text_clear
call sub_B4D7
push 100h
call sub_C403
mov al, 1
pop bp
retn
; ---------------------------------------------------------------------------
loc_BB82:
cmp byte_FC5A, 0
jz short loc_BBB7
cmp byte_FC5B, 0
jz short loc_BBB7
call text_clear
cmp word_FC62, 10h
jb short loc_BBB0
mov ax, word_FC62
imul ax, 6
mov dx, 0C8h ; '<27>'
sub dx, ax
mov PaletteTone, dx
call far ptr palette_show
loc_BBB0:
cmp word_FC62, 20h ; ' '
ja short loc_BC18
loc_BBB7:
; sub_BA88+106j ...
cmp vsync_Count1, 3
jb short loc_BBB7
cmp vsync_Count1, 4
jbe short loc_BBD0
cmp word_FC66, 1
jle short loc_BBD0
dec word_FC66
loc_BBD0:
; sub_BA88+142j
mov vsync_Count1, 0
mov dx, 0A6h ; '<27>'
mov al, byte_FC5C
out dx, al ; Interrupt Controller #2, 8259A
mov al, 1
sub al, byte_FC5C
mov byte_FC5C, al
mov dx, 0A4h ; '<27>'
out dx, al ; Interrupt Controller #2, 8259A
push large 0C00000h
call grcg_setcolor
push large 0
push large 4F018Fh
call grcg_byteboxfill_x
call grcg_off
inc word_FC62
les bx, dword_FC54
inc dword ptr es:[bx+10h]
jmp loc_BB06
; ---------------------------------------------------------------------------
loc_BC18:
call sub_B4D7
mov al, 0
pop bp
retn
sub_BA88 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_BC1F proc near
push bp
mov bp, sp
push si
call sub_B424
les bx, dword_FC54
mov al, es:[bx+0Ch]
mov ah, 0
dec ax
cwd
sub ax, dx
sar ax, 1
mov byte_FC58, al
mov al, es:[bx+0Dh]
mov ah, 0
dec ax
cwd
sub ax, dx
sar ax, 1
mov byte_FC59, al
mov byte_FC5A, 0
mov byte_FC5B, 0
mov word ptr dword_FC5E+2, seg seg002
mov word ptr dword_FC5E, 0AD6h
xor si, si
jmp loc_BD8B
; ---------------------------------------------------------------------------
loc_BC63:
mov word_FC62, 0
loc_BC69:
call sub_B747
call sub_B4F3
call sub_B565
call sub_B636
call sub_B670
call sub_C1B4
call dword_FC5E
push 0
cmp byte_FC5A, 0
jz short loc_BC8E
mov al, 0Fh
jmp short loc_BC90
; ---------------------------------------------------------------------------
loc_BC8E:
mov al, 8
loc_BC90:
push ax
call sub_B8A6
cmp byte_FC5A, 0
jz short loc_BCAE
push 1
cmp byte_FC5B, 0
jz short loc_BCA8
mov al, 0Fh
jmp short loc_BCAA
; ---------------------------------------------------------------------------
loc_BCA8:
mov al, 0Ah
loc_BCAA:
push ax
call sub_B8A6
loc_BCAE:
push word_F296
push si
call sub_B908
test byte ptr word_F296+1, 10h
jz short loc_BCE3
mov dx, 0A6h ; '<27>'
mov al, 0
out dx, al ; Interrupt Controller #2, 8259A
call graph_clear
mov dx, 0A4h ; '<27>'
mov al, 0
out dx, al ; Interrupt Controller #2, 8259A
call text_clear
call sub_B4D7
push 100h
call sub_C403
mov al, 1
jmp loc_BD97
; ---------------------------------------------------------------------------
loc_BCE3:
or si, si
jnz short loc_BCF7
cmp byte_FC5A, 0
jz short loc_BCF7
cmp word_FC62, 0Ch
ja loc_BD8A
loc_BCF7:
or si, si
jz short loc_BD29
cmp byte_FC5B, 0
jz short loc_BD29
call text_clear
cmp word_FC62, 10h
jb short loc_BD22
mov ax, word_FC62
imul ax, 6
mov dx, 0C8h ; '<27>'
sub dx, ax
mov PaletteTone, dx
call far ptr palette_show
loc_BD22:
cmp word_FC62, 20h ; ' '
ja short loc_BD8A
loc_BD29:
cmp vsync_Count1, 3
jb short loc_BD29
cmp vsync_Count1, 4
jbe short loc_BD42
cmp word_FC66, 1
jle short loc_BD42
dec word_FC66
loc_BD42:
; sub_BC1F+11Dj
mov vsync_Count1, 0
mov dx, 0A6h ; '<27>'
mov al, byte_FC5C
out dx, al ; Interrupt Controller #2, 8259A
mov al, 1
sub al, byte_FC5C
mov byte_FC5C, al
mov dx, 0A4h ; '<27>'
out dx, al ; Interrupt Controller #2, 8259A
push large 0C00000h
call grcg_setcolor
push large 0
push large 4F018Fh
call grcg_byteboxfill_x
call grcg_off
inc word_FC62
les bx, dword_FC54
inc dword ptr es:[bx+10h]
jmp loc_BC69
; ---------------------------------------------------------------------------
loc_BD8A:
; sub_BC1F+108j
inc si
loc_BD8B:
cmp si, 2
jl loc_BC63
call sub_B4D7
mov al, 0
loc_BD97:
pop si
pop bp
retn
sub_BC1F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_BD9A proc near
push bp
mov bp, sp
call sub_B424
mov byte_FC58, 0
mov byte_FC5A, 0
mov byte_FC5B, 1
mov word ptr dword_FC5E+2, seg seg002
mov word ptr dword_FC5E, 0AD6h
mov word_FC62, 0
loc_BDC1:
call sub_B747
call sub_B535
call sub_B565
call sub_B636
call sub_B670
push 0
cmp byte_FC5A, 0
jz short loc_BDDD
mov al, 0Fh
jmp short loc_BDDF
; ---------------------------------------------------------------------------
loc_BDDD:
mov al, 8
loc_BDDF:
push ax
call sub_B8A6
call sub_C1B4
call dword_FC5E
push word_F296
push 0
call sub_B908
test byte ptr word_F296+1, 10h
jz short loc_BE21
mov dx, 0A6h ; '<27>'
mov al, 0
out dx, al ; Interrupt Controller #2, 8259A
call graph_clear
mov dx, 0A4h ; '<27>'
mov al, 0
out dx, al ; Interrupt Controller #2, 8259A
call text_clear
call sub_B4D7
push 100h
call sub_C403
mov al, 1
pop bp
retn
; ---------------------------------------------------------------------------
loc_BE21:
cmp byte_FC5A, 0
jz short loc_BE4F
call text_clear
cmp word_FC62, 10h
jb short loc_BE48
mov ax, word_FC62
imul ax, 6
mov dx, 0C8h ; '<27>'
sub dx, ax
mov PaletteTone, dx
call far ptr palette_show
loc_BE48:
cmp word_FC62, 20h ; ' '
ja short loc_BEB0
loc_BE4F:
cmp vsync_Count1, 3
jb short loc_BE4F
cmp vsync_Count1, 4
jbe short loc_BE68
cmp word_FC66, 1
jle short loc_BE68
dec word_FC66
loc_BE68:
mov vsync_Count1, 0
mov dx, 0A6h ; '<27>'
mov al, byte_FC5C
out dx, al ; Interrupt Controller #2, 8259A
mov al, 1
sub al, byte_FC5C
mov byte_FC5C, al
mov dx, 0A4h ; '<27>'
out dx, al ; Interrupt Controller #2, 8259A
push large 0C00000h
call grcg_setcolor
push large 0
push large 4F018Fh
call grcg_byteboxfill_x
call grcg_off
inc word_FC62
les bx, dword_FC54
inc dword ptr es:[bx+10h]
jmp loc_BDC1
; ---------------------------------------------------------------------------
loc_BEB0:
call sub_B4D7
mov al, 0
pop bp
retn
sub_BD9A endp
seg001 ends
; ===========================================================================
; Segment type: Pure code
seg002 segment byte public 'CODE' use16
assume cs:seg002
;org 7
assume es:nothing, ss:nothing, ds:dseg, fs:nothing, gs:nothing
db 0
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_BEB8 proc far
push bp
mov bp, sp
nop
push cs
call near ptr sub_BFC2
call key_beep_on
call text_systemline_show
call text_cursor_show
pop bp
retf
sub_BEB8 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_BED1 proc far
push bp
mov bp, sp
mov dword_F1EA, 0A8000000h
mov dword_F1EE, 0B0000000h
mov dword_F1F2, 0B8000000h
mov dword_F1F6, 0E0000000h
pop bp
retf
sub_BED1 endp
; =============== S U B R O U T I N E =======================================
sub_BEFA proc far
mov ah, 9
int 60h
xor bx, bx
cmp al, 0FFh
jz short loc_BF0C
inc bx
mov byte_F1FA, 1
jmp short loc_BF10
; ---------------------------------------------------------------------------
loc_BF0C:
mov bl, byte_F1FB
loc_BF10:
mov byte_DDCC, bl
mov ax, bx
retf
sub_BEFA endp
; ---------------------------------------------------------------------------
nop
mov byte_F1FC, 60h ; '`'
mov byte_F1FB, 0
mov byte_F1FA, 0
mov byte_F1FD, 0
xor ax, ax
mov es, ax
les bx, dword ptr es:[0180h]
assume es:nothing
cmp byte ptr es:[bx+2], 50h ; 'P'
jnz short loc_BF4E
cmp byte ptr es:[bx+3], 4Dh ; 'M'
jnz short loc_BF4E
cmp byte ptr es:[bx+4], 44h ; 'D'
jnz short loc_BF4E
mov ax, 1
retf
; ---------------------------------------------------------------------------
loc_BF4E:
xor ax, ax
retf
; ---------------------------------------------------------------------------
nop
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_BF52 proc far
; sub_ADE2+26P ...
arg_0 = dword ptr 6
arg_4 = word ptr 0Ah
push bp
mov bp, sp
push si
push ds
mov cx, 0Dh
xor si, si
loc_BF5C:
les bx, [bp+arg_0]
add bx, si
mov al, es:[bx]
mov [si+1A0Eh], al
inc si
loop loc_BF5C
mov ax, [bp+arg_4]
cmp ax, 600h
jnz short loc_BF93
cmp byte_F1FB, 0
jz short loc_BF93
xor bx, bx
loc_BF7C:
inc bx
cmp byte ptr [bx+1A0Eh], 0
jnz short loc_BF7C
mov byte ptr [bx+1A0Eh], 6Dh ; 'm'
mov byte ptr [bx+1A0Fh], 64h ; 'd'
mov byte ptr [bx+1A10h], 0
loc_BF93:
mov dx, 1A0Eh
mov ax, 3D00h
int 21h ; DOS - 2+ - OPEN DISK FILE WITH HANDLE
; DS:DX -> ASCIZ filename
; AL = access mode
; 0 - read
mov bx, ax
mov ax, [bp+arg_4]
cmp ax, 600h
jnz short loc_BFB0
cmp byte_F1FB, 0
jz short loc_BFB0
int 61h ; reserved for user interrupt
jmp short loc_BFB2
; ---------------------------------------------------------------------------
loc_BFB0:
int 60h
loc_BFB2:
mov ax, 3F00h
mov cx, 5000h
int 21h ; DOS - 2+ - READ FROM FILE WITH HANDLE
; BX = file handle, CX = number of bytes to read
; DS:DX -> buffer
pop ds
mov ah, 3Eh
int 21h ; DOS - 2+ - CLOSE A FILE WITH HANDLE
; BX = file handle
pop si
pop bp
retf
sub_BF52 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_BFC2 proc far
; sub_9BDF+150P ...
push bp
mov bp, sp
call sub_2C1C
mov dx, 0A6h ; '<27>'
mov al, 1
out dx, al ; Interrupt Controller #2, 8259A
call graph_clear
mov dx, 0A6h ; '<27>'
mov al, 0
out dx, al ; Interrupt Controller #2, 8259A
call graph_clear
mov dx, 0A6h ; '<27>'
mov al, 0
out dx, al ; Interrupt Controller #2, 8259A
mov dx, 0A4h ; '<27>'
out dx, al ; Interrupt Controller #2, 8259A
call vsync_end
call sub_2676
call text_clear
call js_end
call egc_start
pop bp
retf
sub_BFC2 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_C005 proc far
arg_0 = word ptr 6
arg_2 = word ptr 8
arg_4 = word ptr 0Ah
push bp
mov bp, sp
movsx eax, [bp+arg_2]
movsx edx, [bp+arg_4]
imul eax, edx
sar eax, 8
add ax, [bp+arg_0]
pop bp
retf
sub_C005 endp
; ---------------------------------------------------------------------------
db 0
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_C020 proc far
arg_0 = word ptr 6
arg_2 = word ptr 8
arg_4 = word ptr 0Ah
push bp
mov bp, sp
push si
push di
push large 0C00000h
call grcg_setcolor
mov si, [bp+arg_0]
shl si, 4
add si, 1AA8h
mov ax, [si+0Eh]
mov word ptr cs:loc_C097+1, ax
mov ax, [bp+arg_4]
sar ax, 3
add ax, [si+6]
mov di, ax
mov word ptr cs:loc_C090+1, ax
mov ax, [si+8]
mov word ptr cs:loc_C082+1, ax
mov word ptr cs:loc_C09C+1, ax
shl ax, 2
add ax, 50h ; 'P'
mov word ptr cs:loc_C07E+1, ax
jmp short $+2
mov ax, [bp+arg_2]
mov bx, ax
shl ax, 2
add ax, bx
add ax, 0A800h
mov es, ax
push ds
mov ax, [si+0Ch]
mov ds, ax
xor si, si
loc_C07E:
mov dx, 1234h
cld
loc_C082:
mov cx, 1234h
rep movsd
sub di, dx
jns short loc_C082
xor al, al
out 7Ch, al
loc_C090:
mov bx, 1234h
mov di, bx
xor si, si
loc_C097:
mov ax, 1234h
mov ds, ax
assume ds:nothing
loc_C09C:
mov cx, 1234h
loc_C09F:
mov eax, [si]
or es:[di], eax
add si, 4
add di, 4
loop loc_C09F
sub di, dx
jns short loc_C09C
mov di, bx
mov ax, es
add ax, 800h
mov es, ax
assume es:nothing
cmp ax, 0C000h
jb short loc_C09C
cmp ax, 0C800h
jnb short loc_C0CC
add ax, 2000h
mov es, ax
assume es:nothing
jmp short loc_C09C
; ---------------------------------------------------------------------------
loc_C0CC:
pop ds
assume ds:dseg
pop di
pop si
pop bp
retf 6
sub_C020 endp
; ---------------------------------------------------------------------------
nop
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_C0D4 proc far
arg_0 = word ptr 6
arg_2 = word ptr 8
arg_4 = word ptr 0Ah
push bp
mov bp, sp
push si
push di
push large 0C00000h
call grcg_setcolor
mov si, [bp+arg_0]
shl si, 4
add si, 1AA8h
mov ax, [bp+arg_4]
sar ax, 3
add ax, [si+6]
mov bx, [si+8]
shl bx, 2
add ax, bx
dec ax
mov di, ax
mov word ptr cs:loc_C154+1, ax
mov word ptr cs:loc_C17C+1, ax
mov word ptr cs:loc_C13E+1, bx
mov word ptr cs:loc_C16A+1, bx
mov ax, 50h ; 'P'
sub ax, bx
mov word ptr cs:loc_C13A+1, ax
mov word ptr cs:loc_C166+1, ax
jmp short $+2
mov ax, [bp+arg_2]
mov bx, ax
shl ax, 2
add ax, bx
add ax, 0A800h
mov es, ax
assume es:nothing
mov bx, 1E70h
mov fs, word ptr [si+0Ch]
xor si, si
loc_C13A:
mov dx, 1234h
nop
loc_C13E:
mov cx, 1234h
loc_C141:
mov al, fs:[si]
xlat
mov es:[di], al
inc si
dec di
loop loc_C141
sub di, dx
jns short loc_C13E
xor al, al
out 7Ch, al
loc_C154:
mov di, 1234h
mov si, [bp+arg_0]
shl si, 4
add si, 1AA8h
mov fs, word ptr [si+0Eh]
xor si, si
loc_C166:
mov dx, 1234h
nop
loc_C16A:
mov cx, 4D2h
loc_C16D:
mov al, fs:[si]
xlat
or es:[di], al
inc si
dec di
loop loc_C16D
sub di, dx
jns short loc_C16A
loc_C17C:
mov di, 1234h
mov ax, es
add ax, 800h
mov es, ax
assume es:nothing
cmp ax, 0C000h
jb short loc_C16A
cmp ax, 0C800h
jnb short loc_C197
add ax, 2000h
mov es, ax
assume es:nothing
jmp short loc_C16A
; ---------------------------------------------------------------------------
loc_C197:
pop di
pop si
pop bp
retf 6
sub_C0D4 endp
; ---------------------------------------------------------------------------
nop
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_C19E proc far
arg_0 = word ptr 6
push bp
mov bp, sp
mov vsync_Count1, 0
loc_C1A7:
mov ax, vsync_Count1
cmp ax, [bp+arg_0]
jb short loc_C1A7
pop bp
retf 2
sub_C19E endp
; ---------------------------------------------------------------------------
db 0
; =============== S U B R O U T I N E =======================================
sub_C1B4 proc far
xor ax, ax
mov word_F292, ax
mov word_F294, ax
mov word_F296, ax
mov word_E9A4, ax
jmp short $+2
mov bl, 2
xor ax, ax
mov es, ax
loc_C1CA:
mov ah, byte ptr es:[531h]
test ah, 4
jz short loc_C1D9
or word_F296, 1
loc_C1D9:
test ah, 20h
jz short loc_C1E3
or word_F296, 2
loc_C1E3:
test ah, 8
jz short loc_C1F2
or word_F294, 20h
or word_F296, 4
loc_C1F2:
test ah, 10h
jz short loc_C201
or word_F294, 10h
or word_F296, 8
loc_C201:
mov ah, byte ptr es:[533h]
test ah, 1
jz short loc_C215
or word_F294, 8
or word_F296, 8
loc_C215:
test ah, 4
jz short loc_C226
or word_F294, 200h
or word_F296, 200h
loc_C226:
test ah, 8
jz short loc_C235
or word_F294, 2
or word_F296, 2
loc_C235:
test ah, 10h
jz short loc_C246
or word_F294, 800h
or word_F296, 800h
loc_C246:
mov ah, byte ptr es:[532h]
test ah, 40h
jz short loc_C25A
or word_F294, 4
or word_F296, 4
loc_C25A:
test ah, 4
jz short loc_C26B
or word_F294, 100h
or word_F296, 100h
loc_C26B:
test ah, 8
jz short loc_C27A
or word_F294, 1
or word_F296, 1
loc_C27A:
test ah, 10h
jz short loc_C28B
or word_F294, 400h
or word_F296, 400h
loc_C28B:
mov ah, byte ptr es:[52Fh]
test ah, 2
jz short loc_C29F
or word_F292, 20h
or word_F296, 20h
loc_C29F:
test ah, 4
jz short loc_C2AE
or word_F292, 10h
or word_F296, 10h
loc_C2AE:
test ah, 10h
jz short loc_C2B9
or word_F292, 200h
loc_C2B9:
test ah, 20h
jz short loc_C2C3
or word_F292, 2
loc_C2C3:
test ah, 40h
jz short loc_C2CE
or word_F292, 800h
loc_C2CE:
mov ah, byte ptr es:[52Eh]
test ah, 1
jz short loc_C2DD
or word_F292, 4
loc_C2DD:
test ah, 4
jz short loc_C2E7
or word_F292, 8
loc_C2E7:
mov ah, byte ptr es:[52Ch]
test ah, 8
jz short loc_C2F7
or word_F292, 100h
loc_C2F7:
test ah, 10h
jz short loc_C301
or word_F292, 1
loc_C301:
test ah, 20h
jz short loc_C30C
or word_F292, 400h
loc_C30C:
test ah, 1
jz short loc_C317
or word_F296, 4000h
loc_C317:
mov ah, byte ptr es:[52Ah]
test ah, 1
jz short loc_C327
or word_F296, 1000h
loc_C327:
mov ah, byte ptr es:[52Dh]
test ah, 10h
jz short loc_C337
or word_F296, 2000h
loc_C337:
mov ah, byte ptr es:[530h]
test ah, 10h
jz short loc_C346
or word_F296, 20h
loc_C346:
dec bl
jz short locret_C354
mov cx, 400h
loc_C34D:
out 5Fh, al
loop loc_C34D
jmp loc_C1CA
; ---------------------------------------------------------------------------
locret_C354:
retf
sub_C1B4 endp
; ---------------------------------------------------------------------------
nop
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_C356 proc far
arg_0 = word ptr 6
push bp
mov bp, sp
push 30h ; '0' ; n
push ds
mov ax, [bp+arg_0]
imul ax, 48h
add ax, 1CD8h
push ax ; src
push ds
push offset Palettes ; dest
call _memcpy
add sp, 0Ah
call far ptr palette_show
pop bp
retf 2
sub_C356 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_C37B proc far
var_6 = word ptr -6
var_4 = dword ptr -4
arg_0 = word ptr 6
arg_2 = word ptr 8
arg_4 = word ptr 0Ah
enter 6, 0
push si
push di
mov si, [bp+arg_2]
mov di, [bp+arg_0]
mov bx, di
shl bx, 2
mov ax, [bx+1CAAh]
mov dx, [bx+1CA8h]
mov word ptr [bp+var_4+2], ax
mov word ptr [bp+var_4], dx
mov [bp+var_6], 0
jmp short loc_C3EF
; ---------------------------------------------------------------------------
loc_C3A1:
push [bp+arg_4]
push si
push large [bp+var_4]
mov bx, di
imul bx, 48h
push word ptr [bx+1CD4h]
call graph_pack_put_8
inc si
cmp si, 190h
jl short loc_C3C2
sub si, 190h
loc_C3C2:
mov bx, di
imul bx, 48h
mov ax, [bx+1CD4h]
shr ax, 1
add word ptr [bp+var_4], ax
mov eax, [bp+var_4]
shr eax, 10h
mov dx, word ptr [bp+var_4]
shr dx, 4
add ax, dx
mov dx, word ptr [bp+var_4]
and dx, 0Fh
mov word ptr [bp+var_4+2], ax
mov word ptr [bp+var_4], dx
inc [bp+var_6]
loc_C3EF:
mov bx, di
imul bx, 48h
mov ax, [bx+1CD6h]
cmp ax, [bp+var_6]
ja short loc_C3A1
pop di
pop si
leave
retf 6
sub_C37B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_C403 proc far
; sub_9BDF+14BP ...
arg_0 = word ptr 6
push bp
mov bp, sp
cmp byte_DDCC, 0
jz short loc_C41D
mov ax, [bp+arg_0]
cmp byte_F1FB, 1
jz short loc_C41B
int 60h
jmp short loc_C41D
; ---------------------------------------------------------------------------
loc_C41B:
int 61h ; reserved for user interrupt
loc_C41D:
pop bp
retf 2
sub_C403 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_C421 proc far
arg_0 = dword ptr 6
push bp
mov bp, sp
push 55F0h
call mem_assign_dos
or ax, ax
jz short loc_C435
mov ax, 1
pop bp
retf
; ---------------------------------------------------------------------------
loc_C435:
nop
push cs
call near ptr sub_BED1
call graph_start
mov dx, 0A6h ; '<27>'
mov al, 1
out dx, al ; Interrupt Controller #2, 8259A
call graph_clear
mov dx, 0A6h ; '<27>'
mov al, 0
out dx, al ; Interrupt Controller #2, 8259A
call graph_clear
mov dx, 0A6h ; '<27>'
mov al, 0
out dx, al ; Interrupt Controller #2, 8259A
mov dx, 0A4h ; '<27>'
out dx, al ; Interrupt Controller #2, 8259A
call vsync_start
call key_beep_off
call text_systemline_hide
call text_cursor_hide
call egc_start
call sub_2DB8
push large [bp+arg_0]
call sub_2B60
xor ax, ax
pop bp
retf
sub_C421 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_C48A proc far
var_4 = dword ptr -4
arg_0 = word ptr 6
arg_2 = dword ptr 8
arg_6 = word ptr 0Ch
enter 4, 0
push si
push di
mov di, [bp+arg_6]
push di
nop
push cs
call near ptr sub_C69C
mov ax, di
shl ax, 4
add ax, 1AA8h
mov si, ax
push large [bp+arg_2]
call file_ropen
push ds
push si
push 10h
call file_read
mov ax, [si]
imul ax, 5
movzx eax, ax
mov [bp+var_4], eax
movsx eax, [bp+arg_0]
imul eax, [bp+var_4]
push eax
push 1
call file_seek
push word ptr [si]
call hmem_allocbyte
mov [si+0Ch], ax
push word ptr [si+0Ch]
push 0
push word ptr [si]
call file_read
mov ax, [si]
shl ax, 2
push ax
call hmem_allocbyte
mov [si+0Eh], ax
push word ptr [si+0Eh]
push 0
mov ax, [si]
shl ax, 2
push ax
call file_read
call file_close
pop di
pop si
leave
retf 8
sub_C48A endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_C514 proc far
var_4 = dword ptr -4
arg_0 = word ptr 6
arg_2 = dword ptr 8
arg_6 = word ptr 0Ch
enter 4, 0
push si
push di
mov di, [bp+arg_6]
push di
nop
push cs
call near ptr sub_C69C
mov ax, di
shl ax, 4
add ax, 1AA8h
mov si, ax
push large [bp+arg_2]
call file_ropen
push ds
push si
push 10h
call file_read
mov ax, [si]
imul ax, 5
movzx eax, ax
mov [bp+var_4], eax
movsx eax, [bp+arg_0]
imul eax, [bp+var_4]
push eax
push 1
call file_seek
movzx eax, word ptr [si]
push eax
push 1
call file_seek
mov word ptr [si+0Ch], 0
mov ax, [si]
shl ax, 2
push ax
call hmem_allocbyte
mov [si+0Eh], ax
push word ptr [si+0Eh]
push 0
mov ax, [si]
shl ax, 2
push ax
call file_read
call file_close
pop di
pop si
leave
retf 8
sub_C514 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_C59A proc far
var_2 = word ptr -2
arg_0 = dword ptr 6
arg_4 = word ptr 0Ah
enter 2, 0
push si
push di
push large [bp+arg_0]
call file_ropen
push [bp+arg_4]
nop
push cs
call near ptr sub_C69C
mov ax, [bp+arg_4]
shl ax, 4
add ax, 1AA8h
mov si, ax
push ds
push ax
push 10h
call file_read
mov di, si
mov [bp+var_2], 1
jmp short loc_C5DD
; ---------------------------------------------------------------------------
loc_C5CE:
mov ax, [bp+arg_4]
add ax, [bp+var_2]
push ax
nop
push cs
call near ptr sub_C69C
inc [bp+var_2]
loc_C5DD:
mov al, [di+0Ah]
mov ah, 0
cmp ax, [bp+var_2]
jg short loc_C5CE
mov [bp+var_2], 0
jmp short loc_C669
; ---------------------------------------------------------------------------
loc_C5EE:
mov ax, [di]
mov [si], ax
mov ax, [di+2]
mov [si+2], ax
mov ax, [di+4]
mov [si+4], ax
mov ax, [di+6]
mov [si+6], ax
mov ax, [di+8]
mov [si+8], ax
mov al, [di+0Ah]
mov [si+0Ah], al
mov byte ptr [si+0Bh], 0
cmp byte_DDE0, 0
jnz short loc_C633
push word ptr [si]
call hmem_allocbyte
mov [si+0Ch], ax
push word ptr [si+0Ch]
push 0
push word ptr [si]
call file_read
jmp short loc_C645
; ---------------------------------------------------------------------------
loc_C633:
mov word ptr [si+0Ch], 0
movzx eax, word ptr [si]
push eax
push 1
call file_seek
loc_C645:
mov ax, [si]
shl ax, 2
push ax
call hmem_allocbyte
mov [si+0Eh], ax
push word ptr [si+0Eh]
push 0
mov ax, [si]
shl ax, 2
push ax
call file_read
inc [bp+var_2]
add si, 10h
loc_C669:
mov al, [di+0Ah]
mov ah, 0
cmp ax, [bp+var_2]
jg loc_C5EE
call file_close
pop di
pop si
leave
retf 6
sub_C59A endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_C680 proc far
arg_0 = dword ptr 6
arg_4 = word ptr 0Ah
push bp
mov bp, sp
mov byte_DDE0, 1
push [bp+arg_4]
push large [bp+arg_0]
push cs
call near ptr sub_C59A
mov byte_DDE0, 0
pop bp
retf 6
sub_C680 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_C69C proc far
arg_0 = word ptr 6
push bp
mov bp, sp
push si
push di
mov ax, [bp+arg_0]
shl ax, 4
add ax, 1AA8h
mov di, ax
xor si, si
jmp short loc_C6D0
; ---------------------------------------------------------------------------
loc_C6B0:
mov bx, si
add bx, bx
cmp word ptr [bx+di+0Ch], 0
jz short loc_C6CF
mov bx, si
add bx, bx
push word ptr [bx+di+0Ch]
call hmem_free
mov bx, si
add bx, bx
mov word ptr [bx+di+0Ch], 0
loc_C6CF:
inc si
loc_C6D0:
cmp si, 2
jl short loc_C6B0
pop di
pop si
pop bp
retf 2
sub_C69C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_C6DB proc far
var_32 = byte ptr -32h
var_12 = word ptr -12h
var_10 = word ptr -10h
var_E = word ptr -0Eh
var_C = word ptr -0Ch
var_A = word ptr -0Ah
var_8 = dword ptr -8
var_4 = word ptr -4
var_2 = word ptr -2
arg_0 = dword ptr 6
arg_4 = word ptr 0Ah
arg_6 = word ptr 0Ch
arg_8 = word ptr 0Eh
enter 32h, 0
push si
push di
mov di, [bp+arg_8]
mov ax, [bp+arg_4]
sar ax, 4
and ax, 3
mov [bp+var_E], ax
mov ax, [bp+arg_4]
sar ax, 6
and ax, 7
mov [bp+var_10], ax
push 0C0h ; '<27>'
mov ax, [bp+arg_4]
and ax, 0Fh
push ax
call grcg_setcolor
mov dx, 68h ; 'h'
mov al, 0Bh
out dx, al
jmp loc_C924
; ---------------------------------------------------------------------------
loc_C714:
mov ax, [bp+arg_6]
imul ax, 50h
push ax
mov ax, di
mov bx, 8
cwd
idiv bx
pop dx
add dx, ax
mov word ptr [bp+var_8+2], 0A800h
mov word ptr [bp+var_8], dx
mov ax, di
cwd
idiv bx
mov [bp+var_C], dx
les bx, [bp+arg_0]
assume es:nothing
mov al, es:[bx]
mov ah, 0
mov bx, ax
test byte ptr [bx+103Dh], 4
jz short loc_C769
mov bx, word ptr [bp+arg_0]
mov al, es:[bx]
cbw
shl ax, 8
mov dl, es:[bx+1]
mov dh, 0
add ax, dx
push ax
call sub_9561
pop cx
mov [bp+var_2], ax
add word ptr [bp+arg_0], 2
jmp short loc_C7AF
; ---------------------------------------------------------------------------
loc_C769:
les bx, [bp+arg_0]
mov al, es:[bx]
mov ah, 0
mov bx, ax
test byte ptr [bx+103Dh], 3
jz short loc_C787
mov bx, word ptr [bp+arg_0]
mov al, es:[bx]
mov ah, 0
add ax, 2980h
jmp short loc_C7A2
; ---------------------------------------------------------------------------
loc_C787:
les bx, [bp+arg_0]
mov al, es:[bx]
cbw
mov bx, ax
test byte ptr [bx+0D51h], 5Eh
jz short loc_C7A7
mov bx, word ptr [bp+arg_0]
mov al, es:[bx]
mov ah, 0
add ax, 2900h
loc_C7A2:
mov [bp+var_2], ax
jmp short loc_C7AC
; ---------------------------------------------------------------------------
loc_C7A7:
mov [bp+var_2], 2B21h
loc_C7AC:
inc word ptr [bp+arg_0]
loc_C7AF:
mov al, byte ptr [bp+var_2]
and al, 0FFh
mov dx, 0A1h ; '<27>'
out dx, al ; Interrupt Controller #2, 8259A
mov ax, [bp+var_2]
shr ax, 8
sub al, 20h ; ' '
mov dx, 0A3h ; '<27>'
out dx, al ; Interrupt Controller #2, 8259A
cmp [bp+var_2], 2921h
jb short loc_C810
cmp [bp+var_2], 2B7Eh
ja short loc_C810
cmp di, 278h
jg loc_C92F
mov [bp+var_12], 0
jmp short loc_C803
; ---------------------------------------------------------------------------
loc_C7E1:
mov al, byte ptr [bp+var_12]
or al, 20h
mov dx, 0A5h ; '<27>'
out dx, al ; Interrupt Controller #2, 8259A
mov dx, 0A9h ; '<27>'
in al, dx ; Interrupt Controller #2, 8259A
mov ah, 0
shl ax, 8
mov bx, [bp+var_12]
add bx, bx
lea dx, [bp+var_32]
add bx, dx
mov ss:[bx], ax
inc [bp+var_12]
loc_C803:
cmp [bp+var_12], 10h
jl short loc_C7E1
mov [bp+var_A], 0
jmp short loc_C866
; ---------------------------------------------------------------------------
loc_C810:
cmp di, 270h
jg loc_C92F
mov [bp+var_12], 0
jmp short loc_C85B
; ---------------------------------------------------------------------------
loc_C81F:
mov al, byte ptr [bp+var_12]
or al, 20h
mov dx, 0A5h ; '<27>'
out dx, al ; Interrupt Controller #2, 8259A
mov dx, 0A9h ; '<27>'
in al, dx ; Interrupt Controller #2, 8259A
mov ah, 0
shl ax, 8
mov bx, [bp+var_12]
add bx, bx
lea dx, [bp+var_32]
add bx, dx
mov ss:[bx], ax
mov dx, 0A5h ; '<27>'
mov al, byte ptr [bp+var_12]
out dx, al ; Interrupt Controller #2, 8259A
mov dx, 0A9h ; '<27>'
in al, dx ; Interrupt Controller #2, 8259A
mov ah, 0
mov bx, [bp+var_12]
add bx, bx
lea dx, [bp+var_32]
add bx, dx
add ss:[bx], ax
inc [bp+var_12]
loc_C85B:
cmp [bp+var_12], 10h
jl short loc_C81F
mov [bp+var_A], 1
loc_C866:
mov [bp+var_12], 0
jmp loc_C90B
; ---------------------------------------------------------------------------
loc_C86E:
mov bx, [bp+var_12]
add bx, bx
lea ax, [bp+var_32]
add bx, ax
mov ax, ss:[bx]
mov [bp+var_4], ax
mov ax, [bp+var_E]
cmp ax, 1
jz short loc_C892
cmp ax, 2
jz short loc_C8A8
cmp ax, 3
jz short loc_C89E
jmp short loc_C8BE
; ---------------------------------------------------------------------------
loc_C892:
mov si, [bp+var_4]
mov ax, si
add ax, ax
or [bp+var_4], ax
jmp short loc_C8BE
; ---------------------------------------------------------------------------
loc_C89E:
mov si, [bp+var_4]
mov ax, si
add ax, ax
or [bp+var_4], ax
loc_C8A8:
mov si, [bp+var_4]
mov ax, si
add ax, ax
or [bp+var_4], ax
xor si, [bp+var_4]
mov ax, si
add ax, ax
not ax
and [bp+var_4], ax
loc_C8BE:
; sub_C6DB+1C1j
cmp [bp+var_C], 0
jz short loc_C8F1
mov cl, byte ptr [bp+var_C]
add cl, 8
mov ax, [bp+var_4]
shr ax, cl
les bx, [bp+var_8]
mov es:[bx], al
mov ax, [bp+var_4]
mov cl, byte ptr [bp+var_C]
shr ax, cl
mov es:[bx+1], al
mov cl, 8
sub cl, byte ptr [bp+var_C]
mov al, byte ptr [bp+var_4]
shl al, cl
mov es:[bx+2], al
jmp short loc_C904
; ---------------------------------------------------------------------------
loc_C8F1:
mov ax, [bp+var_4]
shr ax, 8
les bx, [bp+var_8]
mov es:[bx], al
mov al, byte ptr [bp+var_4]
mov es:[bx+1], al
loc_C904:
add word ptr [bp+var_8], 50h ; 'P'
inc [bp+var_12]
loc_C90B:
cmp [bp+var_12], 10h
jl loc_C86E
cmp [bp+var_A], 0
jz short loc_C91C
add di, 8
loc_C91C:
mov ax, [bp+var_10]
add ax, 8
add di, ax
loc_C924:
les bx, [bp+arg_0]
cmp byte ptr es:[bx], 0
jnz loc_C714
loc_C92F:
; sub_C6DB+139j
mov dx, 68h ; 'h'
mov al, 0Ah
out dx, al
call grcg_off
pop di
pop si
leave
retf 0Ah
sub_C6DB endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_C940 proc far
var_2 = word ptr -2
arg_0 = dword ptr 6
arg_4 = word ptr 0Ah
enter 2, 0
push si
mov si, [bp+arg_4]
mov ax, si
imul ax, 48h
add ax, 1CC0h
push ds
push ax
mov bx, si
shl bx, 2
push large dword ptr [bx+1CA8h]
call graph_pi_free
push large [bp+arg_0]
mov ax, si
imul ax, 48h
add ax, 1CC0h
push ds
push ax
mov ax, si
shl ax, 2
add ax, 1CA8h
push ds
push ax
call graph_pi_load_pack
mov [bp+var_2], ax
pop si
leave
retf 6
sub_C940 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_C986 proc far
; sub_9E16:loc_9E24P ...
push bp
mov bp, sp
nop
push cs
call near ptr sub_C1B4
cmp word_DABC, 0
jz short loc_C9A1
call sub_2DF4
mov ax, word_E9A4
or word_F296, ax
loc_C9A1:
mov ax, word_F292
or word_F296, ax
pop bp
retf
sub_C986 endp
; ---------------------------------------------------------------------------
push bp
mov bp, sp
nop
push cs
call near ptr sub_C1B4
pop bp
retf
; ---------------------------------------------------------------------------
push bp
mov bp, sp
nop
push cs
call near ptr sub_C1B4
cmp word_DABC, 0
jz short loc_C9D4
call sub_2DF4
mov ax, word_E9A4
mov word_F292, ax
mov ax, word_F296
mov word_F294, ax
loc_C9D4:
pop bp
retf
; ---------------------------------------------------------------------------
push bp
mov bp, sp
nop
push cs
call near ptr sub_C1B4
cmp word_DABC, 0
jz short loc_C9F6
call sub_2DF4
mov ax, word_E9A4
mov word_F294, ax
mov ax, word_F296
mov word_F292, ax
loc_C9F6:
pop bp
retf
; ---------------------------------------------------------------------------
push bp
mov bp, sp
nop
push cs
call near ptr sub_C1B4
mov ax, word_F296
or word_F292, ax
cmp word_DABC, 0
jz short loc_CA1A
call sub_2DF4
mov ax, word_E9A4
or word_F292, ax
loc_CA1A:
mov word_F294, 0
pop bp
retf
; ---------------------------------------------------------------------------
push bp
mov bp, sp
nop
push cs
call near ptr sub_C1B4
mov ax, word_F296
or ax, word_F292
mov word_F294, ax
cmp word_DABC, 0
jz short loc_CA47
call sub_2DF4
mov ax, word_E9A4
or word_F294, ax
loc_CA47:
mov word_F292, 0
pop bp
retf
; ---------------------------------------------------------------------------
push bp
mov bp, sp
nop
push cs
call near ptr sub_C1B4
test byte ptr word_F296+1, 10h
jnz short loc_CA65
test byte ptr word_F296+1, 20h
jz short loc_CA6B
loc_CA65:
mov word_F296, 1000h
loc_CA6B:
mov word_F292, 0
mov word_F294, 0
pop bp
retf
; ---------------------------------------------------------------------------
push bp
mov bp, sp
nop
push cs
call near ptr sub_C1B4
cmp word_DABC, 0
jz short loc_CA94
call sub_2DF4
mov ax, word_E9A4
or word_F296, ax
loc_CA94:
mov ax, word_F292
or word_F296, ax
mov word_F292, 0
mov word_F294, 0
pop bp
retf
; ---------------------------------------------------------------------------
push bp
mov bp, sp
push si
push di
mov si, [bp+6]
xor di, di
loc_CAB3:
push cs
call near ptr sub_C986
cmp word_F296, 0
jz short loc_CAC7
push 1
nop
push cs
call near ptr sub_C19E
jmp short loc_CAB3
; ---------------------------------------------------------------------------
loc_CAC7:
or si, si
jnz short loc_CAEB
mov si, 270Fh
jmp short loc_CAEB
; ---------------------------------------------------------------------------
loc_CAD0:
push cs
call near ptr sub_C986
cmp word_F296, 0
jnz short loc_CAEF
inc di
push 1
nop
push cs
call near ptr sub_C19E
cmp si, 270Fh
jnz short loc_CAEB
xor di, di
loc_CAEB:
cmp di, si
jl short loc_CAD0
loc_CAEF:
pop di
pop si
pop bp
retf 2
; ---------------------------------------------------------------------------
db 0
; ---------------------------------------------------------------------------
loc_CAF6:
push bp
mov bp, sp
push si
push di
mov si, [bp+6]
shl si, 4
add si, 1AA8h
mov ax, [bp+0Ah]
sar ax, 3
add ax, [si+6]
mov di, ax
mov ax, [si+8]
mov cs:word_CB3D, ax
jmp short $+2
shl ax, 2
add ax, 50h ; 'P'
mov dx, ax
mov ax, [bp+8]
mov bx, ax
shl ax, 2
add ax, bx
add ax, 0A800h
mov es, ax
push ds
mov ax, [si+0Eh]
mov ds, ax
xor si, si
mov bx, di
cld
nop
; ---------------------------------------------------------------------------
db 0B9h
word_CB3D dw 1234h
db 0F3h, 66h, 0A5h, 2Bh, 0FAh, 79h, 0F6h, 8Bh, 0FBh, 8Ch
db 0C0h, 5, 0, 8, 8Eh, 0C0h, 3Dh, 0, 0C0h, 72h, 0E8h, 3Dh
db 0, 0C8h, 73h, 7, 5, 0, 20h, 8Eh, 0C0h, 0EBh, 0DCh, 1Fh
db 5Fh, 5Eh, 5Dh, 0CAh, 6, 0, 90h
; =============== S U B R O U T I N E =======================================
sub_CB68 proc far
push di
xor ax, ax
mov di, 1E70h
xor dl, dl
jmp short loc_CB7D
; ---------------------------------------------------------------------------
loc_CB72:
xor dl, dl
mov cx, 8
loc_CB77:
rol al, 1
rcr dl, 1
loop loc_CB77
loc_CB7D:
mov [di], dl
inc di
inc al
jnz short loc_CB72
pop di
retf
sub_CB68 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_CB86 proc far
arg_0 = word ptr 6
push bp
mov bp, sp
mov vsync_Count1, 0
loc_CB8F:
mov ax, vsync_Count1
cmp ax, [bp+arg_0]
jb short loc_CB8F
pop bp
retf 2
sub_CB86 endp
seg002 ends
; ===========================================================================
; Segment type: Pure code
seg003 segment byte public 'CODE' use16
assume cs:seg003
;org 0Bh
assume es:nothing, ss:nothing, ds:dseg, fs:nothing, gs:nothing
db 0
include libs/BorlandC/ctor2[textc].asm
include libs/BorlandC/ctor3[textc].asm
include libs/BorlandC/strings[textc].asm
dd 0, 0, 0
seg003 ends
; ===========================================================================
; Segment type: Pure data
dseg segment para public 'DATA' use16
assume cs:dseg
include libs/BorlandC/c0[data].asm
byte_D880 db 0
unk_D881 db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 1
db 0
db 0
db 2
db 0
db 3
db 5
db 4
db 6
aIiklmnop db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',0
aIiklccss db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',0
aTufxmnop db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',0
db 3
db 1
db 5
db 0Dh
db 7
db 0Bh
db 9
db 5
db 58h ; X
db 2
db 0
db 0
db 0E8h ; <20>
db 3
db 0
db 0
db 80h ; <20>
db 0Ch
db 0
db 0
db 0F4h ; <20>
db 1
db 0
db 0
unk_D8CC db 30h ; 0
db 31h ; 1
db 32h ; 2
db 0
a345678 db '345678',0
aAbcdefg db 'ABCDEFG',0
aVgdej db '<27><><EFBFBD><EFBFBD><EFBFBD>',0
a?@ db '=>?@',0
aHij db 'HIJ',0
; sub_9F57+132o
aNop db 'nop',0
aKlmn db 'KLMN',0
a_A db '\]^_`a',0
db '<27><><EFBFBD><EFBFBD>',0
aQrs db 'qrs',0
aTuvw db 'tuvw',0
aXyz db 'xyz',0
asc_D910 db '{|}~',0
aZ db '<27><>Z[<5B><><EFBFBD>',0
aOpqr db '<27>OPQR<51><52>',0
aStuvwxy db 'STUVWXY',0
aBcde db 'bcde',0
aBcdf db 'bcdf',0
aBcdg db 'bcdg',0
aHilmhi db 'hilmhi',0
aJklmhi db 'jklmhi',0
aHilmjk db 'hilmjk',0
byte_D951 db 0
byte_D952 db 0
; sub_A0E0+102w ...
byte_D953 db 1
; sub_A0E0:loc_A0FAw ...
byte_D954 db 0
byte_D955 db 0
aYume_cfg db 'YUME.CFG',0
; char path[]
path db 'mainl',0
; sub_9A17+176o ...
asc_D965 db ' ',0
aVfvcvbgngngbgn db '<27>f<EFBFBD>c<EFBFBD>b<EFBFBD>N<EFBFBD><4E><EFBFBD>b<EFBFBD>N<EFBFBD><4E><EFBFBD>T<EFBFBD>l<EFBFBD>g<EFBFBD><67><EFBFBD>ɂȂ<C982><C882>Ă<EFBFBD><C482>܂<EFBFBD><DC82>B',0Ah,0
aUmx db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͂Q<CD82>D<EFBFBD>T<EFBFBD>l<EFBFBD>g<EFBFBD><67><EFBFBD>łȂ<C582><C882>Ɛ<EFBFBD><C690><EFBFBD><EFBFBD>ɃQ<C983>[<5B><><EFBFBD><EFBFBD><EFBFBD>v<EFBFBD><76><EFBFBD>C<EFBFBD>o<EFBFBD><6F><EFBFBD>܂<EFBFBD><DC82><EFBFBD>',0Ah,0
aViosrfvVVkvqbd db 0Ah
db '<27><><EFBFBD><EFBFBD>ł<EFBFBD><C582><EFBFBD><EFBFBD>Q<EFBFBD>D<EFBFBD>T<EFBFBD>l<EFBFBD>g<EFBFBD><67><EFBFBD>ɐ؂<C990><D882>ւ<EFBFBD><D682>āA<C481><41><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD>s<EFBFBD><73><EFBFBD>ĂˁB',0Ah,0
aCOul db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1.dat',0
aGbgvgkxsslvVBb db 0Ah
db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>s<EFBFBD><73><EFBFBD>ł<EFBFBD><C582>B<EFBFBD><42><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>󂫂𑝂₵<F0919D82>Ă<EFBFBD><C482><EFBFBD><EFBFBD><EFBFBD><EFBFBD>s<EFBFBD><73><EFBFBD>Ă<EFBFBD><C482><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',0Ah,0
aMikoft_bft db 'MIKOFT.bft',0
db 0
include libs/master.lib/bfnt_id[data].asm
include libs/master.lib/clip[data].asm
include libs/master.lib/edges[data].asm
include libs/master.lib/fil[data].asm
include libs/master.lib/dos_ropen[data].asm
include libs/master.lib/gaiji_backup[data].asm
include libs/master.lib/gaiji_entry_bfnt[data].asm
include libs/master.lib/grp[data].asm
db 0
word_DABC dw 0
; sub_2DF4+5r ...
db 0
db 0
db 0
db 0
db 0
db 0
include libs/master.lib/pal[data].asm
include libs/master.lib/pf[data].asm
db 0
include libs/master.lib/rand[data].asm
include libs/master.lib/sin8[data].asm
include libs/master.lib/tx[data].asm
include libs/master.lib/vs[data].asm
include libs/master.lib/wordmask[data].asm
include libs/master.lib/mem[data].asm
include libs/master.lib/super_entry_bfnt[data].asm
include libs/master.lib/superpa[data].asm
byte_DDCC db 0
db 0
aPal98Grb db 'pal98 grb',0
include libs/master.lib/draw_trapezoid[data].asm
a_exe db '.exe',0
db 0
byte_DDE0 db 0
db 0
dd aNo_1B@cVOul ; "NO.1 <20>@<40><><EFBFBD>͎<EFBFBD><CD8E><EFBFBD><EFBFBD><EFBFBD><EFBFBD>z<EFBFBD><7A><EFBFBD><EFBFBD> "
dd aNo_2B@B@Select ; "NO.2 <20>@ <20>@ Selection "
dd aNo_3Umx ; "NO.3 <20><><EFBFBD><EFBFBD><EFBFBD>d<EFBFBD><64><EFBFBD>k "
dd aNo_4Reincarnat ; "NO.4 Reincarnation "
dd aNo_5Dim_Dream ; "NO.5 Dim. Dream "
dd aNo_6TabulaRasa ; "NO.6 Tabula rasa<73>@<40>`<60>󔒏<EFBFBD><F394928F><EFBFBD> "
dd aNo_7B@Maniacal ; "NO.7 <20>@ Maniacal Princess "
dd aNo_8CPOBLostDr ; "NO.8 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>`Lost Dream "
dd aNo_9CMCvlyBDre ; "NO.9 <20><><EFBFBD><EFBFBD><EFBFBD>V<EFBFBD>Y <20>`Dream War "
dd aNo_10Cvc@mirab ; "NO.10 <20><><EFBFBD>@<40><><EFBFBD><EFBFBD><EFBFBD>I<EFBFBD>`Fight it out!"
dd aNo_11B@SailorO ; "NO.11 <20>@ Sailor of Time "
dd aNo_12Strawberr ; "NO.12 Strawberry Crisis!! "
dd aNo_13F ; "NO.13 <20>񓝈ꖂ<F1939D88>@<40><><EFBFBD>E<EFBFBD>_ "
dd aNo_14B@cvc@pri ; "NO.14 <09>@<40><><EFBFBD>@<40><><EFBFBD><EFBFBD> "
dd aNo_15B@lviuvC ; "NO.15 <09>@<40>v<EFBFBD><76><EFBFBD>̖<EFBFBD> "
dd aNo_16Umx ; "NO.16 <09><><EFBFBD><EFBFBD><EFBFBD>̐‚<CC90><C282><EFBFBD> "
dd aNo_17IiiuvCumo ; "NO.17 <20>i<EFBFBD><69><EFBFBD>̖<EFBFBD><CC96><EFBFBD> "
dd aNo_18MapleDrea ; "NO.18 Maple Dream... "
dd aNo_19CRlvLxu ; "NO.19 <20><><EFBFBD>l<EFBFBD>̋x<CC8B><78> "
dd aB@b@ ; " <20>@<40>@ "
dd aB@b@vpvxvivf ; " <20>@<40>@<40>p<EFBFBD><70><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "
dd aOp_m_0 ; "op.m"
dd aSelect_m_0 ; "select.m"
dd a00mm_m ; "00mm.m"
dd a01mm_m ; "01mm.m"
dd a02mm_m ; "02mm.m"
dd a03mm_m ; "03mm.m"
dd a04mm_m ; "04mm.m"
dd a05mm_m ; "05mm.m"
dd a06mm_m ; "06mm.m"
dd aDec_m ; "dec.m"
dd a07mm_m ; "07mm.m"
dd a08mm_m ; "08mm.m"
dd aDemo1_m ; "demo1.m"
dd aDemo2_m ; "demo2.m"
dd aDemo3_m ; "demo3.m"
dd aDemo4_m ; "demo4.m"
dd aDemo5_m ; "demo5.m"
dd aEd_m ; "ed.m"
dd aScore_m ; "score.m"
byte_DE82 db 0
byte_DE83 db 0
aNo_1B@cVOul db 'NO.1 <20>@<40><><EFBFBD>͎<EFBFBD><CD8E><EFBFBD><EFBFBD><EFBFBD><EFBFBD>z<EFBFBD><7A><EFBFBD><EFBFBD> ',0
aNo_2B@B@Select db 'NO.2 <20>@ <20>@ Selection ',0
aNo_3Umx db 'NO.3 <20><><EFBFBD><EFBFBD><EFBFBD>d<EFBFBD><64><EFBFBD>k ',0
aNo_4Reincarnat db 'NO.4 Reincarnation ',0
aNo_5Dim_Dream db 'NO.5 Dim. Dream ',0
aNo_6TabulaRasa db 'NO.6 Tabula rasa<73>@<40>`<60>󔒏<EFBFBD><F394928F><EFBFBD> ',0
aNo_7B@Maniacal db 'NO.7 <20>@ Maniacal Princess ',0
aNo_8CPOBLostDr db 'NO.8 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>`Lost Dream ',0
aNo_9CMCvlyBDre db 'NO.9 <20><><EFBFBD><EFBFBD><EFBFBD>V<EFBFBD>Y <20>`Dream War ',0
aNo_10Cvc@mirab db 'NO.10 <20><><EFBFBD>@<40><><EFBFBD><EFBFBD><EFBFBD>I<EFBFBD>`Fight it out!',0
aNo_11B@SailorO db 'NO.11 <20>@ Sailor of Time ',0
aNo_12Strawberr db 'NO.12 Strawberry Crisis!! ',0
aNo_13F db 'NO.13 <20>񓝈ꖂ<F1939D88>@<40><><EFBFBD>E<EFBFBD>_ ',0
aNo_14B@cvc@pri db 'NO.14 <20>@<40><><EFBFBD>@<40><><EFBFBD><EFBFBD> ',0
aNo_15B@lviuvC db 'NO.15 <20>@<40>v<EFBFBD><76><EFBFBD>̖<EFBFBD> ',0
aNo_16Umx db 'NO.16 <20><><EFBFBD><EFBFBD><EFBFBD>̐‚<CC90><C282><EFBFBD> ',0
aNo_17IiiuvCumo db 'NO.17 <20>i<EFBFBD><69><EFBFBD>̖<EFBFBD><CC96><EFBFBD> ',0
aNo_18MapleDrea db 'NO.18 Maple Dream... ',0
aNo_19CRlvLxu db 'NO.19 <20><><EFBFBD>l<EFBFBD>̋x<CC8B><78> ',0
aB@b@ db ' <20>@<40>@ ',0
aB@b@vpvxvivf db ' <20>@<40>@<40>p<EFBFBD><70><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ',0
aOp_m_0 db 'op.m',0
aSelect_m_0 db 'select.m',0
a00mm_m db '00mm.m',0
a01mm_m db '01mm.m',0
a02mm_m db '02mm.m',0
a03mm_m db '03mm.m',0
a04mm_m db '04mm.m',0
a05mm_m db '05mm.m',0
a06mm_m db '06mm.m',0
aDec_m db 'dec.m',0
a07mm_m db '07mm.m',0
a08mm_m db '08mm.m',0
aDemo1_m db 'demo1.m',0
aDemo2_m db 'demo2.m',0
aDemo3_m db 'demo3.m',0
aDemo4_m db 'demo4.m',0
aDemo5_m db 'demo5.m',0
aEd_m db 'ed.m',0
aScore_m db 'score.m',0
aMusic_txt db 'MUSIC.TXT',0
aOp3_pi db 'op3.pi',0
aOpwin_bft db 'opwin.bft',0
aOp_m db 'op.m',0
aTl01_pi db 'TL01.PI',0
aTl02_pi db 'TL02.PI',0
db 0
word_E1F2 dw 0A04h
aYume_nem db 'YUME.NEM',0
db 0
off_E1FE dd a00sl_cd2
; "00SL.CD2"
dd a02sl_cd2 ; "02SL.CD2"
dd a04sl_cd2 ; "04SL.CD2"
dd a06sl_cd2 ; "06SL.CD2"
dd a08sl_cd2 ; "08SL.CD2"
dd a10sl_cd2 ; "10SL.CD2"
dd a12sl_cd2 ; "12SL.CD2"
dd a14sl_cd2 ; "14SL.CD2"
dd a16sl_cd2 ; "16SL.CD2"
db 3
db 1
db 5
db 4
db 4
db 2
db 3
db 4
db 3
db 2
db 3
db 1
db 4
db 1
db 4
db 2
db 2
db 5
db 4
db 5
db 1
db 5
db 2
db 4
db 5
db 5
db 3
db 12h
db 13h
db 0
db 16h
db 17h
db 0
db 14h
db 15h
db 0
db 18h
db 19h
db 0
db 0
db 0
a00sl_cd2 db '00SL.CD2',0
a02sl_cd2 db '02SL.CD2',0
a04sl_cd2 db '04SL.CD2',0
a06sl_cd2 db '06SL.CD2',0
a08sl_cd2 db '08SL.CD2',0
a10sl_cd2 db '10SL.CD2',0
a12sl_cd2 db '12SL.CD2',0
a14sl_cd2 db '14SL.CD2',0
a16sl_cd2 db '16SL.CD2',0
aSlex_cd2 db 'slex.cd2',0
a99sl_cdg db '99sl.cdg',0
aSlwin_cdg db 'slwin.cdg',0
aSlex_cdg db 'slex.cdg',0
aSelect_m db 'select.m',0
aChname_bft db 'chname.bft',0
aTlsl_rgb db 'TLSL.RGB',0
aAS_ db 'A<><41>',0
aAbnormalProgra db 'Abnormal program termination',0Dh,0Ah,0
db 0
include libs/BorlandC/atexit[data].asm
include libs/BorlandC/exit[data].asm
include libs/BorlandC/files[data].asm
include libs/BorlandC/__IOERROR[data].asm
db 0
include libs/BorlandC/new[data].asm
__stklen dw 1000h
include libs/master.lib/ctype[data].asm
db 0
include libs/BorlandC/xxv[data].asm
include libs/BorlandC/cputype[data].asm
include libs/BorlandC/fbrk[data].asm
include libs/BorlandC/signal[data].asm
dword_E794 dd 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 5Ch ; \
db 0
word_E7A8 dw 0
; _setvbuf+4Bw
word_E7AA dw 0
; _setvbuf+35w
include libs/BorlandC/sysnerr[data].asm
include libs/BorlandC/xx[data].asm
include libs/BorlandC/setenvp[data].asm
include libs/BorlandC/strings[data].asm
include libs/BorlandC/kbhit[data].asm
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 8
db 8
db 8
db 8
db 8
db 8
db 8
db 8
db 8
db 8
db 8
db 8
db 8
db 8
db 8
db 8
db 8
db 8
db 8
db 8
db 8
db 8
db 8
db 8
db 8
db 8
db 8
db 8
db 8
db 8
db 8
db 8
db 8
db 8
db 8
db 8
db 8
db 8
db 8
db 8
db 8
db 8
db 8
db 8
db 8
db 8
db 8
db 8
db 8
db 8
db 8
db 8
db 8
db 8
db 8
db 8
db 8
db 8
db 8
db 8
db 8
db 8
db 8
db 0
db 8
db 0Ch
db 0Ch
db 0Ch
db 0Ch
db 0Ch
db 0Ch
db 0Ch
db 0Ch
db 0Ch
db 0Ch
db 0Ch
db 0Ch
db 0Ch
db 0Ch
db 0Ch
db 0Ch
db 0Ch
db 0Ch
db 0Ch
db 0Ch
db 0Ch
db 0Ch
db 0Ch
db 0Ch
db 0Ch
db 0Ch
db 0Ch
db 0Ch
db 0Ch
db 0Ch
db 0Ch
db 8
db 0Ah
db 0Ah
db 0Ah
db 0Ah
db 0Ah
db 9
db 9
db 9
db 9
db 9
db 9
db 9
db 9
db 9
db 9
db 9
db 9
db 9
db 9
db 9
db 9
db 9
db 9
db 9
db 9
db 9
db 9
db 9
db 9
db 9
db 9
db 9
db 9
db 9
db 9
db 9
db 9
db 9
db 9
db 9
db 9
db 9
db 9
db 9
db 9
db 9
db 9
db 9
db 9
db 9
db 9
db 9
db 9
db 9
db 9
db 9
db 9
db 9
db 9
db 9
db 9
db 9
db 9
db 0Ch
db 0Ch
db 0Ch
db 0Ch
db 0Ch
db 0Ch
db 0Ch
db 0Ch
db 0Ch
db 0Ch
db 0Ch
db 0Ch
db 0Ch
db 0Ch
db 0Ch
db 0Ch
db 0Ch
db 0Ch
db 0Ch
db 0Ch
db 0Ch
db 0Ch
db 0Ch
db 0Ch
db 0Ch
db 0Ch
db 0Ch
db 0Ch
db 0Ch
db 0
db 0
db 0
db 0
aPath db 'PATH',0
db '/\',0
db 0
a_bat db '.BAT',0
a_com db '.COM',0
a_exe_0 db '.EXE',0
a_bat_0 db '.BAT',0
aComspec db 'COMSPEC',0
aC db '/c',0
InitStart label byte
include libs/BorlandC/new[initdata].asm
include libs/BorlandC/setupio[initdata].asm
include libs/BorlandC/cputype[initdata].asm
db 0
db 0Fh
db 0EEh ; <20>
db 45h ; E
db 0
db 0
include libs/BorlandC/setenvp[initdata].asm
InitEnd label byte
ExitStart label byte
include libs/BorlandC/new[exitdata].asm
ExitEnd label byte
bdata@ label byte
byte_E97A db ?
byte_E97B db ?
byte_E97C db ?
; sub_A203+1EAw ...
db ?
word_E97E dw ?
include libs/master.lib/clip[bss].asm
include libs/master.lib/fil[bss].asm
word_E9A4 dw ?
; sub_C1B4+Bw ...
db ?
db ? ;
include libs/master.lib/pal[bss].asm
include libs/master.lib/vs[bss].asm
include libs/master.lib/vsync[bss].asm
include libs/master.lib/mem[bss].asm
include libs/master.lib/superpa[bss].asm
dword_F1EA dd ?
; sub_A8CF+53r ...
dword_F1EE dd ?
dword_F1F2 dd ?
dword_F1F6 dd ?
; sub_A8CF+10Fr ...
byte_F1FA db ?
byte_F1FB db ?
; seg002:006Dw ...
byte_F1FC db ?
byte_F1FD db ?
dd ? ;
dd ? ;
dd ? ;
db ? ;
db ? ;
unk_F20C db ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
db ? ;
db ? ;
db ? ;
word_F28C dw ?
word_F28E dw ?
word_F290 dw ?
word_F292 dw ?
word_F294 dw ?
word_F296 dw ?
; sub_9BDF:loc_9C4Ar ...
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dword_F498 dd ?
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
unk_F4B0 db ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
db ? ;
db ? ;
db ? ;
unk_F760 db ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
db ? ;
db ? ;
db ? ;
word_F828 dw ?
word_F82A dw ?
unk_F82C db ? ;
db ? ;
word_F82E dw ?
unk_F830 db ? ;
db ? ;
word_F832 dw ?
unk_F834 db ? ;
; sub_A8CF+107r ...
db ? ;
word_F836 dw ?
unk_F838 db ? ;
; sub_A8CF+11Ar ...
db ? ;
word_F83A dw ?
unk_F83C db ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
db ? ;
db ? ;
db ? ;
word_FB84 dw ?
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
byte_FBD6 db ?
; sub_B35D:loc_B376r
byte_FBD7 db ?
dd ? ;
byte_FBDC db ?
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
db ? ;
db ? ;
db ? ;
byte_FC50 db ?
byte_FC51 db ?
word_FC52 dw ?
dword_FC54 dd ?
byte_FC58 db ?
byte_FC59 db ?
; sub_B565:loc_B608r ...
byte_FC5A db ?
byte_FC5B db ?
byte_FC5C db ?
; sub_BA88+151r ...
db ?
dword_FC5E dd ?
word_FC62 dw ?
; sub_B908+16Aw ...
word_FC64 dw ?
word_FC66 dw ?
byte_FC68 db ?
; sub_B636:loc_B663r ...
db ? ;
include libs/BorlandC/atexit[bss].asm
include libs/BorlandC/sigdata[bss].asm
dd ? ;
include libs/BorlandC/signal[bss].asm
include libs/BorlandC/xx[bss].asm
edata@ label byte
dseg ends
; ===========================================================================
; Segment type: Uninitialized
seg005 segment byte stack 'STACK' use16
assume cs:seg005
assume es:nothing, ss:nothing, ds:dseg, fs:nothing, gs:nothing
db 80h dup(?)
seg005 ends
end startx