ReC98/th01_fuuin.asm

10878 lines
188 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 : 2CAAD6F798E32B912A08DA327A97DDB4
; File Name : th01/FUUIN.EXE
; Format : MS-DOS executable (EXE)
; Base Address: 0h Range: 0h-147E0h Loaded length: 13ED8h
; Entry Point : 0:0
; OS type : MS DOS
; Application type: Executable 16bit
.286 ; Force the .model directive to create 16-bit default segments...
.model large
__LARGE__ equ 1
.386 ; ... then switch to what we actually need.
; And yes, we can't move this to an include file for some reason.
include ReC98.inc
include th01/th01.asm
include libs/BorlandC/regs.inc
option emulator
extern @$bdla$qnv:proc
extern @$bnwa$qui:proc
extern FTOL@:proc
extern F_LUDIV@:proc
extern LUMOD@:proc
extern LXLSH@:proc
extern LXMUL@:proc
extern SCOPY@:proc
extern __fgetc:proc
extern __mbcjmstojis:proc
extern __mbctype:byte
extern __setargv__:proc ; main() needs both to be set
extern __setenvp__:proc
extern _access:proc
extern _close:proc
extern _delay:proc
extern _execl:proc
extern _exit:proc
extern _farfree:proc
extern _farmalloc:proc
extern _fclose:proc
extern _fgetc:proc
extern _filelength:proc
extern _fopen:proc
extern _getvect:proc
extern _int86:proc
extern _intdosx:proc
extern _memcmp:proc
extern _memcpy:proc
extern _memset:proc
extern _open:proc
extern _printf:proc
extern _proc:proc
extern _puts:proc
extern _read:proc
extern _segread:proc
extern _setvect:proc
extern _strcmp:proc
extern _strcpy:proc
extern _vsprintf:proc
extern _write:proc
; ===========================================================================
; Segment type: Pure code
_TEXT segment word public 'CODE' use16
assume cs:_TEXT
assume es:nothing, ds:_DATA, fs:nothing, gs:nothing
include libs/piloadc/piloadc.asm
include libs/master.lib/graph_400line.asm
include libs/master.lib/graph_clear.asm
include libs/master.lib/graph_show.asm
include libs/master.lib/graph_start.asm
include libs/master.lib/graph_scrollup.asm
include libs/master.lib/palette_show.asm
include libs/master.lib/palette_init.asm
include libs/master.lib/respal_exist.asm
include libs/master.lib/respal_free.asm
include libs/master.lib/resdata.asm
include libs/master.lib/file_read.asm
include libs/master.lib/file_close.asm
include libs/master.lib/file_ropen.asm
include libs/master.lib/file_seek.asm
include libs/master.lib/key_sense.asm
include libs/master.lib/dos_ropen.asm
include libs/master.lib/egc.asm
include libs/master.lib/gdc_outpw.asm
db 0
include libs/master.lib/random.asm
_TEXT ends
; ===========================================================================
; Segment type: Pure code
fuuin_01_TEXT segment byte public 'CODE' use16
assume cs:fuuin_01_TEXT
;org 9
assume es:nothing, ss:nothing, ds:_DATA, fs:nothing, gs:nothing
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_9F49 proc far
var_4 = dword ptr -4
enter 4, 0
push si
push di
push ds
push offset aReiidenconfig ; "ReiidenConfig"
push 0Dh
push 5
call resdata_exist
mov di, ax
or di, di
jnz short loc_9F65
jmp loc_A05D
; ---------------------------------------------------------------------------
loc_9F65:
mov word ptr [bp+reiidenconfig+2], di
mov word ptr [bp+reiidenconfig], 0
les bx, [bp+reiidenconfig]
cmp es:[bx+reiidenconfig_t.end_flag], 0
jnz short loc_9F7A
jmp loc_A053
; ---------------------------------------------------------------------------
loc_9F7A:
les bx, [bp+reiidenconfig]
mov dx, word ptr es:[bx+reiidenconfig_t.score+2]
mov ax, word ptr es:[bx+reiidenconfig_t.score]
mov word ptr _score+2, dx
mov word ptr _score, ax
mov word ptr _continues_total+2, 0
mov word ptr _continues_total, 0
les bx, [bp+reiidenconfig]
mov al, es:[bx+reiidenconfig_t.end_flag]
mov byte_14021, al
les bx, [bp+reiidenconfig]
mov al, es:[bx+reiidenconfig_t.rank]
mov _rank, al
les bx, [bp+reiidenconfig]
mov dx, word ptr es:[bx+reiidenconfig_t.score_highest+2]
mov ax, word ptr es:[bx+reiidenconfig_t.score_highest]
mov word ptr _score_highest+2, dx
mov word ptr _score_highest, ax
xor si, si
jmp short loc_A003
; ---------------------------------------------------------------------------
loc_9FC2:
mov ax, si
add ax, ax
les bx, [bp+reiidenconfig]
add bx, ax
mov ax, es:[bx+reiidenconfig_t.continues_per_scene]
mov bx, si
shl bx, 2
mov word ptr [bx+143Eh], 0
mov [bx+143Ch], ax
mov ax, si
add ax, ax
les bx, [bp+reiidenconfig]
add bx, ax
mov es:[bx+reiidenconfig_t.continues_per_scene], 0
mov bx, si
shl bx, 2
mov dx, [bx+143Eh]
mov ax, [bx+143Ch]
add word ptr _continues_total, ax
adc word ptr _continues_total+2, dx
inc si
loc_A003:
cmp si, 4
jl short loc_9FC2
les bx, [bp+reiidenconfig]
mov dx, word ptr es:[bx+reiidenconfig_t.rand+2]
mov ax, word ptr es:[bx+reiidenconfig_t.rand]
mov word ptr random_seed+2, dx
mov word ptr random_seed, ax
les bx, [bp+reiidenconfig]
mov al, es:[bx+reiidenconfig_t.start_lives_extra]
mov byte_14020, al
les bx, [bp+reiidenconfig]
mov word ptr es:[bx+reiidenconfig_t.score+2], 0
mov word ptr es:[bx+reiidenconfig_t.score], 0
les bx, [bp+reiidenconfig]
mov word ptr es:[bx+reiidenconfig_t.continues_total+2], 0
mov word ptr es:[bx+reiidenconfig_t.continues_total], 0
les bx, [bp+reiidenconfig]
mov word ptr es:[bx+reiidenconfig_t.score_highest+2], 0
mov word ptr es:[bx+reiidenconfig_t.score_highest], 0
jmp short loc_A05B
; ---------------------------------------------------------------------------
loc_A053:
push ds
push offset aErrorEnd_flagI ; "ERROR : end_flag is not ture !!"
jmp short loc_A061
; ---------------------------------------------------------------------------
jmp short loc_A069
; ---------------------------------------------------------------------------
loc_A05B:
jmp short loc_A06D
; ---------------------------------------------------------------------------
loc_A05D:
push ds
push offset s ; "ERROR : cfg_id is not alloc!!"
loc_A061:
call _puts
add sp, 4
loc_A069:
xor ax, ax
jmp short loc_A072
; ---------------------------------------------------------------------------
loc_A06D:
mov ax, 1
jmp short $+2
loc_A072:
pop di
pop si
leave
retf
sub_9F49 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_A076 proc far
reiidenconfig = dword ptr -4
enter 4, 0
push si
push di
push ds
push offset aReiidenconfi_0 ; "ReiidenConfig"
push 0Dh
push 5
call resdata_exist
mov di, ax
or di, di
jz short loc_A0EE
mov word ptr [bp+reiidenconfig+2], di
mov word ptr [bp+reiidenconfig], 0
les bx, [bp+reiidenconfig]
mov word ptr es:[bx+reiidenconfig_t.score+2], 0
mov word ptr es:[bx+reiidenconfig_t.score], 0
les bx, [bp+reiidenconfig]
mov word ptr es:[bx+reiidenconfig_t.continues_total+2], 0
mov word ptr es:[bx+reiidenconfig_t.continues_total], 0
les bx, [bp+reiidenconfig]
mov es:[bx+reiidenconfig_t.end_flag], 0
les bx, [bp+reiidenconfig]
mov word ptr es:[bx+reiidenconfig_t.score_highest+2], 0
mov word ptr es:[bx+reiidenconfig_t.score_highest], 0
xor si, si
jmp short loc_A0E0
; ---------------------------------------------------------------------------
loc_A0D0:
mov ax, si
add ax, ax
les bx, [bp+reiidenconfig]
add bx, ax
mov es:[bx+reiidenconfig_t.continues_per_scene], 0
inc si
loc_A0E0:
cmp si, 4
jl short loc_A0D0
les bx, [bp+reiidenconfig]
mov es:[bx+reiidenconfig_t.stage], 0
loc_A0EE:
mov ax, 1
jmp short $+2
pop di
pop si
leave
retf
sub_A076 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)
public _main
_main proc far
_argc = word ptr 6
_argv = dword ptr 8
_envp = dword ptr 0Ch
push bp
mov bp, sp
call sub_EF80
or ax, ax
jnz short loc_A105
pop bp
retf
; ---------------------------------------------------------------------------
loc_A105:
les bx, [bp+_argv]
les bx, es:[bx+4]
mov al, es:[bx]
cbw
cmp ax, 74h ; 't'
jz short loc_A121
call sub_9F49
or ax, ax
jnz short loc_A11F
pop bp
retf
; ---------------------------------------------------------------------------
loc_A11F:
jmp short loc_A13E
; ---------------------------------------------------------------------------
loc_A121:
les bx, [bp+_argv]
les bx, es:[bx+4]
mov al, es:[bx+1]
cbw
cmp ax, 31h ; '1'
jnz short loc_A139
mov byte_14021, 1
jmp short loc_A13E
; ---------------------------------------------------------------------------
loc_A139:
mov byte_14021, 2
loc_A13E:
call _mdrv2_check_board
call sub_CEAD
call sub_B945
call sub_CF1B
push 0
push 0
push ds
push offset arg0 ; "op"
push ds
push offset path ; "op"
call _execl
add sp, 0Ch
pop bp
retf
_main endp
fuuin_01_TEXT ends
; ===========================================================================
; Segment type: Pure code
fuuin_02_TEXT segment byte public 'CODE' use16
assume cs:fuuin_02_TEXT
;org 8
assume es:nothing, ss:nothing, ds:_DATA, fs:nothing, gs:nothing
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_A168 proc far
var_30 = byte ptr -30h
var_8 = word ptr -8
var_6 = word ptr -6
var_4 = word ptr -4
var_2 = word ptr -2
arg_0 = word ptr 6
arg_2 = word ptr 8
arg_4 = word ptr 0Ah
arg_6 = word ptr 0Ch
arg_8 = word ptr 0Eh
arg_A = word ptr 10h
arg_C = word ptr 12h
arg_E = word ptr 14h
arg_10 = word ptr 16h
enter 30h, 0
push si
push di
mov si, [bp+arg_0]
mov [bp+var_6], 0
mov [bp+var_8], 1
lea ax, [bp+var_30]
push ss
push ax
push ds
push offset FULLWIDTH_NUMBERS
mov cx, 28h ; '('
call SCOPY@
xor di, di
jmp short loc_A1A7
; ---------------------------------------------------------------------------
loc_A190:
xor cx, cx
mov bx, 0Ah
mov dx, [bp+var_6]
mov ax, [bp+var_8]
call LXMUL@
mov [bp+var_6], dx
mov [bp+var_8], ax
inc di
loc_A1A7:
cmp di, [bp+arg_6]
jl short loc_A190
loc_A1AC:
push 0
push 0Ah
push [bp+var_6]
push [bp+var_8]
call far ptr F_LUDIV@
mov [bp+var_6], dx
mov [bp+var_8], ax
cmp si, 270h
jle short loc_A1CA
jmp loc_A261
; ---------------------------------------------------------------------------
loc_A1CA:
push 0
push 0Ah
push [bp+var_6]
push [bp+var_8]
push [bp+arg_A]
push [bp+arg_8]
call far ptr F_LUDIV@
push dx
push ax
call far ptr LUMOD@
mov [bp+var_2], ax
push 0
push 0Ah
push [bp+var_6]
push [bp+var_8]
push [bp+arg_E]
push [bp+arg_C]
call far ptr F_LUDIV@
push dx
push ax
call far ptr LUMOD@
mov [bp+var_4], ax
cmp [bp+var_2], 0
jz short loc_A213
mov [bp+arg_10], 1
loc_A213:
cmp [bp+arg_10], 0
jz short loc_A24A
mov ax, [bp+var_2]
cmp ax, [bp+var_4]
jnz short loc_A229
mov ax, [bp+arg_C]
or ax, [bp+arg_E]
jnz short loc_A24A
loc_A229:
mov bx, [bp+var_2]
shl bx, 2
lea ax, [bp+var_30]
add bx, ax
push word ptr ss:[bx+2]
push word ptr ss:[bx]
push [bp+arg_4]
push [bp+arg_2]
push si
call sub_E10C
add sp, 0Ah
loc_A24A:
add si, 10h
cmp [bp+var_6], 0
jbe short loc_A256
jmp loc_A1AC
; ---------------------------------------------------------------------------
loc_A256:
jnz short loc_A261
cmp [bp+var_8], 1
jbe short loc_A261
jmp loc_A1AC
; ---------------------------------------------------------------------------
loc_A261:
pop di
pop si
leave
retf
sub_A168 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_A265 proc far
var_4 = word ptr -4
var_2 = word ptr -2
arg_0 = word ptr 6
enter 4, 0
cmp [bp+arg_0], 1
jnz short loc_A2A5
mov byte_14039, 0
mov byte_1403A, 0
mov byte_1403B, 0
mov byte_1403C, 0
mov byte_1403D, 0
mov byte_1403E, 0
mov byte_1403F, 0
mov byte_14040, 0
mov byte_14041, 0
mov byte_14042, 0
leave
retf
; ---------------------------------------------------------------------------
leave
retf
; ---------------------------------------------------------------------------
loc_A2A5:
push 7
call key_sense
mov [bp+var_2], ax
push 5
call key_sense
mov [bp+var_4], ax
push 7
call key_sense
or [bp+var_2], ax
push 5
call key_sense
or [bp+var_4], ax
mov al, byte_14039
mov ah, 0
mov dx, [bp+var_2]
and dx, 4
cmp ax, dx
jz short loc_A2EE
test byte ptr [bp+var_2], 4
jz short loc_A2E9
mov byte_12BA2, 1
jmp short loc_A2EE
; ---------------------------------------------------------------------------
loc_A2E9:
mov byte_12BA2, 0
loc_A2EE:
mov al, byte ptr [bp+var_2]
and al, 4
mov byte_14039, al
mov al, byte_1403A
mov ah, 0
mov dx, [bp+var_2]
and dx, 20h
cmp ax, dx
jz short loc_A317
test byte ptr [bp+var_2], 20h
jz short loc_A312
mov byte_12BA3, 1
jmp short loc_A317
; ---------------------------------------------------------------------------
loc_A312:
mov byte_12BA3, 0
loc_A317:
mov al, byte ptr [bp+var_2]
and al, 20h
mov byte_1403A, al
mov al, byte_1403B
mov ah, 0
mov dx, [bp+var_2]
and dx, 8
cmp ax, dx
jz short loc_A340
test byte ptr [bp+var_2], 8
jz short loc_A33B
or byte_12B99, 2
jmp short loc_A340
; ---------------------------------------------------------------------------
loc_A33B:
and byte_12B99, 0FDh
loc_A340:
mov al, byte ptr [bp+var_2]
and al, 8
mov byte_1403B, al
mov al, byte_1403C
mov ah, 0
mov dx, [bp+var_2]
and dx, 10h
cmp ax, dx
jz short loc_A369
test byte ptr [bp+var_2], 10h
jz short loc_A364
or byte_12B99, 1
jmp short loc_A369
; ---------------------------------------------------------------------------
loc_A364:
and byte_12B99, 0FEh
loc_A369:
mov al, byte ptr [bp+var_2]
and al, 10h
mov byte_1403C, al
mov al, byte_1403D
mov ah, 0
mov dx, [bp+var_4]
and dx, 2
cmp ax, dx
jz short loc_A392
test byte ptr [bp+var_4], 2
jz short loc_A38D
mov byte_12B9C, 1
jmp short loc_A392
; ---------------------------------------------------------------------------
loc_A38D:
mov byte_12B9C, 0
loc_A392:
mov al, byte ptr [bp+var_4]
and al, 2
mov byte_1403D, al
mov al, byte_1403E
mov ah, 0
mov dx, [bp+var_4]
and dx, 4
cmp ax, dx
jz short loc_A3BB
test byte ptr [bp+var_4], 4
jz short loc_A3B6
mov byte_12BA1, 1
jmp short loc_A3BB
; ---------------------------------------------------------------------------
loc_A3B6:
mov byte_12BA1, 0
loc_A3BB:
mov al, byte ptr [bp+var_4]
and al, 4
mov byte_1403E, al
push 0
call key_sense
mov [bp+var_2], ax
push 3
call key_sense
mov [bp+var_4], ax
push 0
call key_sense
or [bp+var_2], ax
push 3
call key_sense
or [bp+var_4], ax
mov al, byte_1403F
mov ah, 0
mov dx, [bp+var_2]
and dx, 1
cmp ax, dx
jz short loc_A409
test byte ptr [bp+var_2], 1
jz short loc_A409
mov al, 1
sub al, byte_12B9F
mov byte_12B9F, al
loc_A409:
mov al, byte ptr [bp+var_2]
and al, 1
mov byte_1403F, al
mov al, byte_14040
mov ah, 0
mov dx, [bp+var_4]
and dx, 10h
cmp ax, dx
jz short loc_A445
test byte ptr [bp+var_4], 10h
jz short loc_A440
cmp byte_12B9F, 1
jnz short loc_A439
cmp byte_12B9C, 1
jnz short loc_A439
mov byte_12B9D, 1
loc_A439:
mov byte_12BA0, 1
jmp short loc_A445
; ---------------------------------------------------------------------------
loc_A440:
mov byte_12BA0, 0
loc_A445:
mov al, byte ptr [bp+var_4]
and al, 10h
mov byte_14040, al
leave
retf
sub_A265 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_A44F proc far
push bp
mov bp, sp
mov byte_12B99, 0
mov byte_12BA2, 0
mov byte_12BA3, 0
mov byte_12BA0, 0
mov byte_12B9F, 0
mov byte_12B9C, 0
mov byte_12BA1, 0
mov byte_12B9A, 0
mov byte_12B9B, 0
push 1
call sub_A265
pop cx
pop bp
retf
sub_A44F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_A488 proc far
arg_0 = byte ptr 6
push bp
mov bp, sp
mov al, [bp+arg_0]
add al, 9Ch
pop bp
retf
sub_A488 endp
; ---------------------------------------------------------------------------
pop bp
retf
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_A494 proc far
arg_0 = byte ptr 6
push bp
mov bp, sp
mov al, [bp+arg_0]
add al, 64h ; 'd'
pop bp
retf
sub_A494 endp
; ---------------------------------------------------------------------------
pop bp
retf
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_A4A0 proc far
dest = byte ptr -26h
var_16 = word ptr -16h
var_14 = word ptr -14h
var_12 = dword ptr -12h
stream = dword ptr -0Eh
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
enter 26h, 0
push si
mov [bp+var_4], ds
mov [bp+var_6], 1ACh
mov word ptr [bp+var_12+2], ds
mov word ptr [bp+var_12], 1AFh
mov [bp+var_14], ds
mov [bp+var_16], 1C0h
mov al, _rank
mov ah, 0
mov bx, ax
cmp bx, RANK_LUNATIC
ja short loc_A4F5
add bx, bx
jmp cs:off_A614[bx]
loc_A4D0:
push ds
push offset aReyhies_dat ; "REYHIES.DAT"
jmp short loc_A4E6
; ---------------------------------------------------------------------------
loc_A4D6:
push ds
push offset aReyhino_dat ; "REYHINO.DAT"
jmp short loc_A4E6
; ---------------------------------------------------------------------------
loc_A4DC:
push ds
push offset aReyhiha_dat ; "REYHIHA.DAT"
jmp short loc_A4E6
; ---------------------------------------------------------------------------
loc_A4E2:
push ds
push offset src ; "REYHILU.DAT"
loc_A4E6:
push ss
lea ax, [bp+dest]
push ax ; dest
call _strcpy
add sp, 8
jmp short $+2
loc_A4F5:
cli
push ds
push offset aWB ; "wb"
push ss
lea ax, [bp+dest]
push ax ; path
call _fopen
add sp, 8
mov word ptr [bp+stream+2], dx
mov word ptr [bp+stream], ax
or ax, dx
jnz short loc_A517
jmp loc_A610
; ---------------------------------------------------------------------------
jmp loc_A611
; ---------------------------------------------------------------------------
loc_A517:
push 7
push [bp+var_14]
push [bp+var_16]
les bx, [bp+stream]
mov al, es:[bx+4]
cbw
push ax
call _write
add sp, 8
mov [bp+var_2], 0Ah
mov [bp+var_8], 0
mov [bp+var_A], 3E8h
xor si, si
jmp short loc_A55A
; ---------------------------------------------------------------------------
loc_A543:
les bx, [bp+var_12]
add bx, si
mov al, es:[bx]
push ax
call sub_A488
pop cx
les bx, [bp+var_12]
add bx, si
mov es:[bx], al
inc si
loc_A55A:
cmp si, 10h
jl short loc_A543
xor si, si
jmp short loc_A57D
; ---------------------------------------------------------------------------
loc_A563:
push 10h
push word ptr [bp+var_12+2]
push word ptr [bp+var_12]
les bx, [bp+stream]
mov al, es:[bx+4]
cbw
push ax
call _write
add sp, 8
inc si
loc_A57D:
cmp si, 0Ah
jl short loc_A563
xor si, si
jmp short loc_A5B1
; ---------------------------------------------------------------------------
loc_A586:
push 4
push ss
lea ax, [bp+var_A]
push ax
les bx, [bp+stream]
mov al, es:[bx+4]
cbw
push ax
call _write
add sp, 8
mov dx, [bp+var_8]
mov ax, [bp+var_A]
add ax, 0FF9Ch
adc dx, 0FFFFh
mov [bp+var_8], dx
mov [bp+var_A], ax
inc si
loc_A5B1:
cmp si, 0Ah
jl short loc_A586
xor si, si
jmp short loc_A5DA
; ---------------------------------------------------------------------------
loc_A5BA:
push 2
push ss
lea ax, [bp+var_2]
push ax
les bx, [bp+stream]
mov al, es:[bx+4]
cbw
push ax
call _write
add sp, 8
mov ax, [bp+var_2]
dec ax
mov [bp+var_2], ax
inc si
loc_A5DA:
cmp si, 0Ah
jl short loc_A5BA
xor si, si
jmp short loc_A5FD
; ---------------------------------------------------------------------------
loc_A5E3:
push 2
push [bp+var_4]
push [bp+var_6]
les bx, [bp+stream]
mov al, es:[bx+4]
cbw
push ax
call _write
add sp, 8
inc si
loc_A5FD:
cmp si, 0Ah
jl short loc_A5E3
push word ptr [bp+stream+2]
push word ptr [bp+stream] ; stream
call _fclose
add sp, 4
loc_A610:
sti
loc_A611:
pop si
leave
retf
sub_A4A0 endp
; ---------------------------------------------------------------------------
off_A614 dw offset loc_A4D0
dw offset loc_A4D6
dw offset loc_A4DC
dw offset loc_A4E2
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_A61C proc far
dest = byte ptr -46h
s1 = byte ptr -36h
stream = dword ptr -4
enter 46h, 0
push si
mov al, _rank
mov ah, 0
mov bx, ax
cmp bx, RANK_LUNATIC
ja short loc_A659
add bx, bx
jmp cs:off_A7C7[bx]
loc_A634:
push ds
push offset aReyhies_dat_0 ; "REYHIES.DAT"
jmp short loc_A64A
; ---------------------------------------------------------------------------
loc_A63A:
push ds
push offset aReyhino_dat_0 ; "REYHINO.DAT"
jmp short loc_A64A
; ---------------------------------------------------------------------------
loc_A640:
push ds
push offset aReyhiha_dat_0 ; "REYHIHA.DAT"
jmp short loc_A64A
; ---------------------------------------------------------------------------
loc_A646:
push ds
push offset aReyhilu_dat_0 ; "REYHILU.DAT"
loc_A64A:
push ss
lea ax, [bp+dest]
push ax ; dest
call _strcpy
add sp, 8
jmp short $+2
loc_A659:
push 0 ; amode
push ss
lea ax, [bp+dest]
push ax ; path
call _access
add sp, 6
or ax, ax
jz short loc_A670
call sub_A4A0
loc_A670:
cli
push ds
push offset aRb ; "rb"
push ss
lea ax, [bp+dest]
push ax ; path
call _fopen
add sp, 8
mov word ptr [bp+stream+2], dx
mov word ptr [bp+stream], ax
or ax, dx
jnz short loc_A694
push ds
push offset aGtg@gcglvkvVVi ; "<22>t<EFBFBD>@<40>C<EFBFBD><43><EFBFBD><EFBFBD><EFBFBD>݂‚<DD82><C282><EFBFBD><EFBFBD>Ȃ<EFBFBD>"
jmp short loc_A6D5
; ---------------------------------------------------------------------------
jmp short loc_A6DE
; ---------------------------------------------------------------------------
loc_A694:
push 7
push ss
lea ax, [bp+s1]
push ax
les bx, [bp+stream]
mov al, es:[bx+4]
cbw
push ax
call _read
add sp, 8
push 4 ; n
push ds
push offset aHiscore ; "HISCORE"
push ss
lea ax, [bp+s1]
push ax ; s1
call _memcmp
add sp, 0Ah
or ax, ax
jz short loc_A6E4
push word ptr [bp+stream+2]
push word ptr [bp+stream] ; stream
call _fclose
add sp, 4
push ds
push offset format ; "<22>t<EFBFBD>@<40>C<EFBFBD><43><EFBFBD><EFBFBD><EFBFBD><EFBFBD>I"
loc_A6D5:
call _printf
add sp, 4
sti
loc_A6DE:
mov ax, 1
jmp loc_A7C4
; ---------------------------------------------------------------------------
loc_A6E4:
push 0A0h
call @$bnwa$qui
pop cx
mov word ptr font+2, dx
mov word ptr font, ax
push 14h
call @$bnwa$qui
pop cx
mov word ptr off_1402C+2, dx
mov word ptr off_1402C, ax
push 14h
call @$bnwa$qui
pop cx
mov word ptr off_14028+2, dx
mov word ptr off_14028, ax
push 28h ; '('
call @$bnwa$qui
pop cx
mov word ptr off_14034+2, dx
mov word ptr off_14034, ax
push 0A0h
push word ptr font+2
push word ptr font
les bx, [bp+stream]
mov al, es:[bx+4]
cbw
push ax
call _read
add sp, 8
push 28h ; '('
push word ptr off_14034+2
push word ptr off_14034
les bx, [bp+stream]
mov al, es:[bx+4]
cbw
push ax
call _read
add sp, 8
push 14h
push word ptr off_1402C+2
push word ptr off_1402C
les bx, [bp+stream]
mov al, es:[bx+4]
cbw
push ax
call _read
add sp, 8
push 14h
push word ptr off_14028+2
push word ptr off_14028
les bx, [bp+stream]
mov al, es:[bx+4]
cbw
push ax
call _read
add sp, 8
push word ptr [bp+stream+2]
push word ptr [bp+stream] ; stream
call _fclose
add sp, 4
xor si, si
jmp short loc_A7B9
; ---------------------------------------------------------------------------
loc_A7A0:
les bx, font
add bx, si
mov al, es:[bx]
push ax
call sub_A494
pop cx
les bx, font
add bx, si
mov es:[bx], al
inc si
loc_A7B9:
cmp si, 0A0h
jl short loc_A7A0
sti
xor ax, ax
jmp short $+2
loc_A7C4:
pop si
leave
retf
sub_A61C endp
; ---------------------------------------------------------------------------
off_A7C7 dw offset loc_A634
dw offset loc_A63A
dw offset loc_A640
dw offset loc_A646
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_A7CF proc far
arg_0 = word ptr 6
arg_2 = dword ptr 8
push bp
mov bp, sp
xor dx, dx
jmp short loc_A7F2
; ---------------------------------------------------------------------------
loc_A7D6:
mov bx, [bp+arg_0]
shl bx, 4
add bx, dx
mov es, word ptr font+2
add bx, word ptr font
mov al, es:[bx]
les bx, [bp+arg_2]
add bx, dx
mov es:[bx], al
inc dx
loc_A7F2:
cmp dx, 10h
jl short loc_A7D6
les bx, [bp+arg_2]
mov byte ptr es:[bx+10h], 0
pop bp
retf
sub_A7CF endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_A801 proc far
var_2 = word ptr -2
enter 2, 0
push si
push di
mov [bp+var_2], 27h ; '''
mov di, 8282h
mov si, 1
jmp short loc_A84F
; ---------------------------------------------------------------------------
loc_A814:
mov ax, di
and ax, 0FFh
push ax
mov ax, di
shr ax, 8
push ax ; arglist
push ds
push offset aCC ; "%c%c"
push [bp+var_2] ; int
mov ax, si
mov bx, 12h
cwd
idiv bx
imul ax, 18h
add ax, 0F0h
push ax ; int
mov ax, si
mov bx, 12h
cwd
idiv bx
shl dx, 5
add dx, 20h ; ' '
push dx ; int
call sub_E9E4
add sp, 0Eh
inc di
inc si
loc_A84F:
cmp si, 1Ah
jl short loc_A814
push ds
push offset aVb ; "<22><>"
push 823h
push 0F0h
push 20h ; ' '
call sub_E10C
add sp, 0Ah
mov di, 8260h
xor si, si
jmp short loc_A8AA
; ---------------------------------------------------------------------------
loc_A86F:
mov ax, di
and ax, 0FFh
push ax
mov ax, di
shr ax, 8
push ax ; arglist
push ds
push offset aCC_0 ; "%c%c"
push [bp+var_2] ; int
mov ax, si
mov bx, 12h
cwd
idiv bx
imul ax, 18h
add ax, 120h
push ax ; int
mov ax, si
mov bx, 12h
cwd
idiv bx
shl dx, 5
add dx, 20h ; ' '
push dx ; int
call sub_E9E4
add sp, 0Eh
inc di
inc si
loc_A8AA:
cmp si, 1Ah
jl short loc_A86F
xor si, si
jmp short loc_A8F5
; ---------------------------------------------------------------------------
loc_A8B3:
mov bx, si
add bx, bx
mov di, [bx+108h]
mov ax, di
and ax, 0FFh
push ax
mov ax, di
shr ax, 8
push ax ; arglist
push ds
push offset aCC_1 ; "%c%c"
push [bp+var_2] ; int
mov ax, si
mov bx, 12h
cwd
idiv bx
imul ax, 18h
add ax, 150h
push ax ; int
mov ax, si
mov bx, 12h
cwd
idiv bx
shl dx, 5
add dx, 20h ; ' '
push dx ; int
call sub_E9E4
add sp, 0Eh
inc si
loc_A8F5:
cmp si, 12h
jl short loc_A8B3
mov di, 824Fh
xor si, si
jmp short loc_A93C
; ---------------------------------------------------------------------------
loc_A901:
mov ax, di
and ax, 0FFh
push ax
mov ax, di
shr ax, 8
push ax ; arglist
push ds
push offset aCC_2 ; "%c%c"
push [bp+var_2] ; int
mov ax, si
mov bx, 12h
cwd
idiv bx
imul ax, 18h
add ax, 168h
push ax ; int
mov ax, si
mov bx, 12h
cwd
idiv bx
shl dx, 5
add dx, 20h ; ' '
push dx ; int
call sub_E9E4
add sp, 0Eh
inc di
inc si
loc_A93C:
cmp si, 0Ah
jl short loc_A901
push ds
push offset aSp ; "SP"
push [bp+var_2] ; int
mov ax, si
mov bx, 12h
cwd
idiv bx
imul ax, 18h
add ax, 168h
push ax ; int
mov ax, si
mov bx, 12h
cwd
idiv bx
shl dx, 5
add dx, 20h ; ' '
push dx ; int
call sub_E9E4
add sp, 0Ah
mov si, 0Fh
push ds
push offset aBi ; "<22><>"
push [bp+var_2] ; int
mov ax, si
mov bx, 12h
cwd
idiv bx
imul ax, 18h
add ax, 168h
push ax ; int
mov ax, si
mov bx, 12h
cwd
idiv bx
shl dx, 5
add dx, 20h ; ' '
push dx ; int
call sub_E9E4
add sp, 0Ah
inc si
push ds
push offset aBi_0 ; "<22><>"
push [bp+var_2] ; int
mov ax, si
mov bx, 12h
cwd
idiv bx
imul ax, 18h
add ax, 168h
push ax ; int
mov ax, si
mov bx, 12h
cwd
idiv bx
shl dx, 5
add dx, 20h ; ' '
push dx ; int
call sub_E9E4
add sp, 0Ah
inc si
push ds
push offset aPi ; "<22>I"
push [bp+var_2] ; int
mov ax, si
mov bx, 12h
cwd
idiv bx
imul ax, 18h
add ax, 168h
push ax ; int
mov ax, si
mov bx, 12h
cwd
idiv bx
shl dx, 5
add dx, 20h ; ' '
push dx ; int
call sub_E9E4
add sp, 0Ah
inc si
pop di
pop si
leave
retf
sub_A801 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_A9FF proc far
var_12 = byte ptr -12h
arg_0 = word ptr 6
arg_2 = word ptr 8
arg_4 = word ptr 0Ah
arg_6 = word ptr 0Ch
arg_8 = dword ptr 0Eh
arg_C = word ptr 12h
arg_E = word ptr 14h
enter 12h, 0
push si
push di
mov di, [bp+arg_0]
lea ax, [bp+var_12]
push ss
push ax
push ds
push offset aBqbqbqbqbqbqbq ; "<22>Q<EFBFBD>Q<EFBFBD>Q<EFBFBD>Q<EFBFBD>Q<EFBFBD>Q<EFBFBD>Q<EFBFBD>Q"
mov cx, 11h
call SCOPY@
push 0
call _graph_accesspage_func
pop cx
push ds
push offset aB@cB@iB@ ; "<22>@<40><><EFBFBD>@<40>ʁ@"
push 33h ; '3'
push 30h ; '0'
push 20h ; ' '
call sub_E10C
add sp, 0Ah
push ds
push offset aB@b@cB@b@sob@b ; "<22>@<40>@<40><><EFBFBD>@<40>@<40>O<EFBFBD>@<40>@"
push 33h ; '3'
push 30h ; '0'
push 90h
call sub_E10C
add sp, 0Ah
push ds
push offset aB@b@uB@b@u_b@b ; "<22>@<40>@<40><><EFBFBD>@<40>@<40>_<EFBFBD>@<40>@"
push 33h ; '3'
push 30h ; '0'
push 160h
call sub_E10C
add sp, 0Ah
push ds
push offset aGxgebGwbeglbGg ; "<22>X<EFBFBD>e<EFBFBD>[<5B>W<EFBFBD>E<EFBFBD><45><EFBFBD>[<5B>g"
push 33h ; '3'
push 30h ; '0'
push 200h
call sub_E10C
add sp, 0Ah
xor si, si
jmp loc_AD66
; ---------------------------------------------------------------------------
loc_AA71:
mov bx, si
cmp bx, 9
jbe short loc_AA7B
jmp loc_AB4F
; ---------------------------------------------------------------------------
loc_AA7B:
add bx, bx
jmp cs:off_AD72[bx]
loc_AA82:
push ds
push offset aB@sB@r_b@ ; "<22>@<40>ˁ@<40>_<EFBFBD>@"
cmp si, di
jnz short loc_AA8F
mov ax, 3
jmp short loc_AA92
; ---------------------------------------------------------------------------
loc_AA8F:
mov ax, 7
loc_AA92:
jmp loc_AB36
; ---------------------------------------------------------------------------
loc_AA95:
push ds
push offset aSMRgcId ; "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
cmp si, di
jnz short loc_AAA2
mov ax, 3
jmp short loc_AAA5
; ---------------------------------------------------------------------------
loc_AAA2:
mov ax, 7
loc_AAA5:
jmp loc_AB36
; ---------------------------------------------------------------------------
loc_AAA8:
push ds
push offset aB@uvb@rxb@ ; "<22>@<40>V<EFBFBD>@<40><><EFBFBD>@"
cmp si, di
jnz short loc_AAB5
mov ax, 3
jmp short loc_AAB8
; ---------------------------------------------------------------------------
loc_AAB5:
mov ax, 7
loc_AAB8:
jmp short loc_AB36
; ---------------------------------------------------------------------------
loc_AABA:
push ds
push offset aB@r_b@rxb@ ; "<22>@<40>_<EFBFBD>@<40><><EFBFBD>@"
cmp si, di
jnz short loc_AAC7
mov ax, 3
jmp short loc_AACA
; ---------------------------------------------------------------------------
loc_AAC7:
mov ax, 7
loc_AACA:
jmp short loc_AB36
; ---------------------------------------------------------------------------
loc_AACC:
push ds
push offset aB@tnb@rxb@ ; "<22>@<40>n<EFBFBD>@<40><><EFBFBD>@"
cmp si, di
jnz short loc_AAD9
mov ax, 3
jmp short loc_AADC
; ---------------------------------------------------------------------------
loc_AAD9:
mov ax, 7
loc_AADC:
jmp short loc_AB36
; ---------------------------------------------------------------------------
loc_AADE:
push ds
push offset aB@rlb@rxb@ ; "<22>@<40>l<EFBFBD>@<40><><EFBFBD>@"
cmp si, di
jnz short loc_AAEB
mov ax, 3
jmp short loc_AAEE
; ---------------------------------------------------------------------------
loc_AAEB:
mov ax, 7
loc_AAEE:
jmp short loc_AB36
; ---------------------------------------------------------------------------
loc_AAF0:
push ds
push offset aB@rxb@pcb@ ; "<22>@<40><><EFBFBD>@<40><><EFBFBD>@"
cmp si, di
jnz short loc_AAFD
mov ax, 3
jmp short loc_AB00
; ---------------------------------------------------------------------------
loc_AAFD:
mov ax, 7
loc_AB00:
jmp short loc_AB36
; ---------------------------------------------------------------------------
loc_AB02:
push ds
push offset aIab@czb@ot ; "<22>A<EFBFBD>@<40>z<EFBFBD>@<40>t"
cmp si, di
jnz short loc_AB0F
mov ax, 3
jmp short loc_AB12
; ---------------------------------------------------------------------------
loc_AB0F:
mov ax, 7
loc_AB12:
jmp short loc_AB36
; ---------------------------------------------------------------------------
loc_AB14:
push ds
push offset aSB@fB@ot ; "<22>ˁ@<40>}<7D>@<40>t"
cmp si, di
jnz short loc_AB21
mov ax, 3
jmp short loc_AB24
; ---------------------------------------------------------------------------
loc_AB21:
mov ax, 7
loc_AB24:
jmp short loc_AB36
; ---------------------------------------------------------------------------
loc_AB26:
push ds
push offset aPcb@lB@o ; "<22>C<EFBFBD>@<40>Ɓ@<40><>"
cmp si, di
jnz short loc_AB33
mov ax, 3
jmp short loc_AB36
; ---------------------------------------------------------------------------
loc_AB33:
mov ax, 7
loc_AB36:
or ax, 20h
push ax
mov ax, si
shl ax, 4
add ax, 40h
push ax
push 20h ; ' '
call sub_E10C
add sp, 0Ah
jmp short $+2
loc_AB4F:
cmp si, di
jnz short loc_AB5A
mov dx, ss
lea ax, [bp+var_12]
jmp short loc_AB69
; ---------------------------------------------------------------------------
loc_AB5A:
mov ax, si
imul ax, 12h
mov dx, [bp+arg_E]
push ax
mov ax, [bp+arg_C]
pop bx
add ax, bx
loc_AB69:
push dx
push ax
cmp si, di
jnz short loc_AB74
mov ax, 3
jmp short loc_AB77
; ---------------------------------------------------------------------------
loc_AB74:
mov ax, 7
loc_AB77:
or ax, 20h
push ax
mov ax, si
shl ax, 4
add ax, 40h
push ax
push 90h
call sub_E10C
add sp, 0Ah
push 0
push 0
push 0
cmp di, si
jnz short loc_ABA1
mov dx, [bp+arg_4]
mov ax, [bp+arg_2]
jmp short loc_ABB3
; ---------------------------------------------------------------------------
loc_ABA1:
mov ax, si
shl ax, 2
les bx, off_14034
add bx, ax
mov dx, es:[bx+2]
mov ax, es:[bx]
loc_ABB3:
push dx
push ax
push 7
cmp si, di
jnz short loc_ABC0
mov ax, 3
jmp short loc_ABC3
; ---------------------------------------------------------------------------
loc_ABC0:
mov ax, 7
loc_ABC3:
or ax, 30h
push ax
mov ax, si
shl ax, 4
add ax, 40h
push ax
push 160h
call sub_A168
add sp, 12h
cmp si, di
jz short loc_ABEE
mov ax, si
add ax, ax
les bx, off_1402C
add bx, ax
cmp word ptr es:[bx], 28h ; '('
jl short loc_ABF8
loc_ABEE:
cmp si, di
jnz short loc_AC3F
cmp [bp+arg_6], 28h ; '('
jge short loc_AC3F
loc_ABF8:
push 0
push 0
push 0
cmp si, di
jnz short loc_AC07
mov ax, [bp+arg_6]
jmp short loc_AC14
; ---------------------------------------------------------------------------
loc_AC07:
mov ax, si
add ax, ax
les bx, off_1402C
add bx, ax
mov ax, es:[bx]
loc_AC14:
cwd
push dx
push ax
push 2
cmp si, di
jnz short loc_AC22
mov ax, 3
jmp short loc_AC25
; ---------------------------------------------------------------------------
loc_AC22:
mov ax, 7
loc_AC25:
or ax, 20h
push ax
mov ax, si
shl ax, 4
add ax, 40h
push ax
push 210h
call sub_A168
add sp, 12h
jmp loc_ACCD
; ---------------------------------------------------------------------------
loc_AC3F:
cmp si, di
jz short loc_AC53
mov ax, si
add ax, ax
les bx, off_1402C
add bx, ax
cmp word ptr es:[bx], 32h ; '2'
jz short loc_AC5D
loc_AC53:
cmp si, di
jnz short loc_AC87
cmp [bp+arg_6], 32h ; '2'
jnz short loc_AC87
loc_AC5D:
push ds
push offset aCvke ; "<22><><EFBFBD>E"
cmp si, di
jnz short loc_AC6A
mov ax, 3
jmp short loc_AC6D
; ---------------------------------------------------------------------------
loc_AC6A:
mov ax, 7
loc_AC6D:
or ax, 20h
push ax
mov ax, si
shl ax, 4
add ax, 40h
push ax
push 210h
call sub_E10C
add sp, 0Ah
jmp short loc_ACCD
; ---------------------------------------------------------------------------
loc_AC87:
cmp si, di
jz short loc_AC9B
mov ax, si
add ax, ax
les bx, off_1402C
add bx, ax
cmp word ptr es:[bx], 3Ch ; '<'
jz short loc_ACA5
loc_AC9B:
cmp si, di
jnz short loc_ACCD
cmp [bp+arg_6], 3Ch ; '<'
jnz short loc_ACCD
loc_ACA5:
push ds
push offset aTnnc ; "<22>n<EFBFBD><6E>"
cmp si, di
jnz short loc_ACB2
mov ax, 3
jmp short loc_ACB5
; ---------------------------------------------------------------------------
loc_ACB2:
mov ax, 7
loc_ACB5:
or ax, 20h
push ax
mov ax, si
shl ax, 4
add ax, 40h
push ax
push 210h
call sub_E10C
add sp, 0Ah
loc_ACCD:
push ds
push offset aB ; "<22>|"
cmp si, di
jnz short loc_ACDA
mov ax, 3
jmp short loc_ACDD
; ---------------------------------------------------------------------------
loc_ACDA:
mov ax, 7
loc_ACDD:
or ax, 20h
push ax
mov ax, si
shl ax, 4
add ax, 40h
push ax
push 230h
call sub_E10C
add sp, 0Ah
cmp si, di
jnz short loc_ACFE
les bx, [bp+arg_8]
jmp short loc_AD0A
; ---------------------------------------------------------------------------
loc_ACFE:
mov bx, si
add bx, bx
mov es, word ptr off_14028+2
add bx, word ptr off_14028
loc_AD0A:
mov al, es:[bx+1]
cbw
push ax
cmp si, di
jnz short loc_AD19
les bx, [bp+arg_8]
jmp short loc_AD23
; ---------------------------------------------------------------------------
loc_AD19:
mov ax, si
add ax, ax
les bx, off_14028
add bx, ax
loc_AD23:
mov al, es:[bx]
cbw
push ax ; arglist
push ds
push offset aCC_3 ; "%c%c"
cmp si, di
jnz short loc_AD35
mov ax, 3
jmp short loc_AD38
; ---------------------------------------------------------------------------
loc_AD35:
mov ax, 7
loc_AD38:
or ax, 20h
push ax ; int
mov ax, si
shl ax, 4
add ax, 40h
push ax ; int
push 240h ; int
call sub_E9E4
add sp, 0Eh
cmp di, si
jnz short loc_AD65
mov word_14030, 90h
mov ax, si
shl ax, 4
add ax, 40h
mov word_14032, ax
loc_AD65:
inc si
loc_AD66:
cmp si, 0Ah
jge short loc_AD6E
jmp loc_AA71
; ---------------------------------------------------------------------------
loc_AD6E:
pop di
pop si
leave
retf
sub_A9FF endp
; ---------------------------------------------------------------------------
off_AD72 dw offset loc_AA82
dw offset loc_AA95
dw offset loc_AAA8
dw offset loc_AABA
dw offset loc_AACC
dw offset loc_AADE
dw offset loc_AAF0
dw offset loc_AB02
dw offset loc_AB14
dw offset loc_AB26
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_AD86 proc far
var_4 = word ptr -4
var_2 = word ptr -2
arg_0 = word ptr 6
arg_2 = word ptr 8
arg_4 = word ptr 0Ah
enter 4, 0
push si
push di
mov si, [bp+arg_0]
mov di, [bp+arg_2]
mov [bp+var_2], 0
push 10h
push 20h ; ' '
push di
push si
call _egc_copy_rect_1_to_0
add sp, 8
cmp [bp+arg_4], 0
jnz short loc_ADB0
mov ax, 7
jmp short loc_ADB3
; ---------------------------------------------------------------------------
loc_ADB0:
mov ax, 803h
loc_ADB3:
or ax, 20h
mov [bp+var_4], ax
cmp di, 0F0h
jnz short loc_ADD1
lea ax, [si-20h]
mov bx, 20h ; ' '
cwd
idiv bx
add ax, 8281h
mov [bp+var_2], ax
jmp loc_AECD
; ---------------------------------------------------------------------------
loc_ADD1:
cmp di, 108h
jnz short loc_ADE9
lea ax, [si-20h]
mov bx, 20h ; ' '
cwd
idiv bx
add ax, 8293h
mov [bp+var_2], ax
jmp loc_AECD
; ---------------------------------------------------------------------------
loc_ADE9:
cmp di, 120h
jnz short loc_AE01
lea ax, [si-20h]
mov bx, 20h ; ' '
cwd
idiv bx
add ax, 8260h
mov [bp+var_2], ax
jmp loc_AECD
; ---------------------------------------------------------------------------
loc_AE01:
cmp di, 138h
jnz short loc_AE19
lea ax, [si-20h]
mov bx, 20h ; ' '
cwd
idiv bx
add ax, 8272h
mov [bp+var_2], ax
jmp loc_AECD
; ---------------------------------------------------------------------------
loc_AE19:
cmp di, 150h
jnz short loc_AE36
lea ax, [si-20h]
mov bx, 20h ; ' '
cwd
idiv bx
add ax, ax
mov bx, ax
mov ax, [bx+108h]
mov [bp+var_2], ax
jmp loc_AECD
; ---------------------------------------------------------------------------
loc_AE36:
cmp di, 168h
jnz short loc_AE53
cmp si, 160h
jge short loc_AE53
lea ax, [si-20h]
mov bx, 20h ; ' '
cwd
idiv bx
add ax, 824Fh
mov [bp+var_2], ax
jmp short loc_AECD
; ---------------------------------------------------------------------------
loc_AE53:
cmp di, 168h
jnz short loc_AE72
cmp si, 160h
jnz short loc_AE72
push ds
push offset aSp_0 ; "SP"
push [bp+var_4] ; int
push di ; int
push si ; int
call sub_E9E4
add sp, 0Ah
jmp short loc_AECD
; ---------------------------------------------------------------------------
loc_AE72:
cmp di, 168h
jnz short loc_AE91
cmp si, 200h
jnz short loc_AE91
push ds
push offset aBi_1 ; "<22><>"
push [bp+var_4] ; int
push di ; int
push si ; int
call sub_E9E4
add sp, 0Ah
jmp short loc_AECD
; ---------------------------------------------------------------------------
loc_AE91:
cmp di, 168h
jnz short loc_AEB0
cmp si, 220h
jnz short loc_AEB0
push ds
push offset aBi_2 ; "<22><>"
push [bp+var_4] ; int
push di ; int
push si ; int
call sub_E9E4
add sp, 0Ah
jmp short loc_AECD
; ---------------------------------------------------------------------------
loc_AEB0:
cmp di, 168h
jnz short loc_AECD
cmp si, 240h
jnz short loc_AECD
push ds
push offset aPi_0 ; "<22>I"
push [bp+var_4] ; int
push di ; int
push si ; int
call sub_E9E4
add sp, 0Ah
loc_AECD:
cmp [bp+var_2], 0
jz short loc_AEF2
mov ax, [bp+var_2]
and ax, 0FFh
push ax
mov ax, [bp+var_2]
sar ax, 8
push ax ; arglist
push ds
push offset aCC_4 ; "%c%c"
push [bp+var_4] ; int
push di ; int
push si ; int
call sub_E9E4
add sp, 0Eh
loc_AEF2:
pop di
pop si
leave
retf
sub_AD86 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl __far sub_AEF6(int, int, char arglist, int, __int32)
sub_AEF6 proc far
var_14 = byte ptr -14h
var_13 = byte ptr -13h
var_2 = word ptr -2
arg_0 = word ptr 6
arg_2 = word ptr 8
_arglist = byte ptr 0Ah
arg_8 = dword ptr 0Eh
enter 14h, 0
push si
push di
mov si, [bp+arg_0]
mov di, [bp+arg_2]
mov [bp+var_2], 0
lea ax, [bp+var_14]
push ss
push ax
push ds
push offset aB@b@b@b@b@b@b@ ; "<22>@<40>@<40>@<40>@<40>@<40>@<40>@<40>@"
mov cx, 11h
call SCOPY@
cmp di, 0F0h
jnz short loc_AF30
lea ax, [si-20h]
mov bx, 20h ; ' '
cwd
idiv bx
add ax, 8281h
mov [bp+var_2], ax
jmp loc_B021
; ---------------------------------------------------------------------------
loc_AF30:
cmp di, 108h
jnz short loc_AF48
lea ax, [si-20h]
mov bx, 20h ; ' '
cwd
idiv bx
add ax, 8293h
mov [bp+var_2], ax
jmp loc_B021
; ---------------------------------------------------------------------------
loc_AF48:
cmp di, 120h
jnz short loc_AF60
lea ax, [si-20h]
mov bx, 20h ; ' '
cwd
idiv bx
add ax, 8260h
mov [bp+var_2], ax
jmp loc_B021
; ---------------------------------------------------------------------------
loc_AF60:
cmp di, 138h
jnz short loc_AF78
lea ax, [si-20h]
mov bx, 20h ; ' '
cwd
idiv bx
add ax, 8272h
mov [bp+var_2], ax
jmp loc_B021
; ---------------------------------------------------------------------------
loc_AF78:
cmp di, 150h
jnz short loc_AF95
lea ax, [si-20h]
mov bx, 20h ; ' '
cwd
idiv bx
add ax, ax
mov bx, ax
mov ax, [bx+108h]
mov [bp+var_2], ax
jmp loc_B021
; ---------------------------------------------------------------------------
loc_AF95:
cmp di, 168h
jnz short loc_AFB2
cmp si, 160h
jge short loc_AFB2
lea ax, [si-20h]
mov bx, 20h ; ' '
cwd
idiv bx
add ax, 824Fh
mov [bp+var_2], ax
jmp short loc_B021
; ---------------------------------------------------------------------------
loc_AFB2:
cmp di, 168h
jnz short loc_AFC5
cmp si, 160h
jnz short loc_AFC5
mov [bp+var_2], 8140h
jmp short loc_B021
; ---------------------------------------------------------------------------
loc_AFC5:
cmp di, 168h
jnz short loc_AFEA
cmp si, 200h
jnz short loc_AFEA
les bx, [bp+arg_8]
dec word ptr es:[bx]
les bx, [bp+arg_8]
cmp word ptr es:[bx], 0
jge short loc_AFE8
les bx, [bp+arg_8]
mov word ptr es:[bx], 0
loc_AFE8:
jmp short loc_B021
; ---------------------------------------------------------------------------
loc_AFEA:
cmp di, 168h
jnz short loc_B00F
cmp si, 220h
jnz short loc_B00F
les bx, [bp+arg_8]
inc word ptr es:[bx]
les bx, [bp+arg_8]
cmp word ptr es:[bx], 7
jle short loc_B00D
les bx, [bp+arg_8]
mov word ptr es:[bx], 7
loc_B00D:
jmp short loc_B021
; ---------------------------------------------------------------------------
loc_B00F:
cmp di, 168h
jnz short loc_B021
cmp si, 240h
jnz short loc_B021
mov ax, 1
jmp loc_B0D5
; ---------------------------------------------------------------------------
loc_B021:
cmp [bp+var_2], 0
jz short loc_B063
mov ax, [bp+var_2]
sar ax, 8
les bx, [bp+arg_8]
mov dx, es:[bx]
add dx, dx
les bx, dword ptr [bp+_arglist]
add bx, dx
mov es:[bx], al
les bx, [bp+arg_8]
mov bx, es:[bx]
add bx, bx
mov es, word ptr [bp+0Ch]
add bx, word ptr [bp+_arglist]
mov al, byte ptr [bp+var_2]
and al, 0FFh
mov es:[bx+1], al
les bx, [bp+arg_8]
cmp word ptr es:[bx], 7
jge short loc_B063
les bx, [bp+arg_8]
inc word ptr es:[bx]
loc_B063:
push 10h
push 80h
push word_14032
push word_14030
call _egc_copy_rect_1_to_0
add sp, 8
push word ptr [bp+0Ch]
push word ptr [bp+_arglist] ; arglist
push ds
push offset aS ; "%s"
push 23h ; '#' ; int
push word_14032 ; int
push word_14030 ; int
call sub_E9E4
add sp, 0Eh
les bx, [bp+arg_8]
mov bx, es:[bx]
add bx, bx
lea ax, [bp+var_14]
add bx, ax
mov byte ptr ss:[bx], 81h
les bx, [bp+arg_8]
mov bx, es:[bx]
add bx, bx
lea ax, [bp+var_13]
add bx, ax
mov byte ptr ss:[bx], 51h ; 'Q'
push ss
lea ax, [bp+var_14]
push ax ; arglist
push ds
push offset aS_0 ; "%s"
push 3 ; int
push word_14032 ; int
push word_14030 ; int
call sub_E9E4
add sp, 0Eh
xor ax, ax
jmp short $+2
loc_B0D5:
pop di
pop si
leave
retf
sub_AEF6 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl __far sub_B0D9(__int32, __int32, char arglist, int, __int32)
sub_B0D9 proc far
arg_0 = dword ptr 6
arg_4 = dword ptr 0Ah
_arglist = byte ptr 0Eh
arg_A = word ptr 10h
arg_C = dword ptr 12h
push bp
mov bp, sp
cmp byte_12BA2, 1
jz short loc_B0E6
jmp loc_B18F
; ---------------------------------------------------------------------------
loc_B0E6:
push 0
les bx, [bp+arg_4]
push word ptr es:[bx]
les bx, [bp+arg_0]
push word ptr es:[bx]
call sub_AD86
add sp, 6
les bx, [bp+arg_4]
sub word ptr es:[bx], 18h
les bx, [bp+arg_4]
cmp word ptr es:[bx], 0F0h
jge short loc_B114
les bx, [bp+arg_4]
mov word ptr es:[bx], 168h
loc_B114:
les bx, [bp+arg_4]
cmp word ptr es:[bx], 108h
jnz short loc_B130
les bx, [bp+arg_0]
cmp word ptr es:[bx], 120h
jl short loc_B130
les bx, [bp+arg_4]
mov word ptr es:[bx], 0F0h
loc_B130:
les bx, [bp+arg_4]
cmp word ptr es:[bx], 138h
jnz short loc_B14C
les bx, [bp+arg_0]
cmp word ptr es:[bx], 120h
jl short loc_B14C
les bx, [bp+arg_4]
mov word ptr es:[bx], 120h
loc_B14C:
les bx, [bp+arg_4]
cmp word ptr es:[bx], 168h
jnz short loc_B172
les bx, [bp+arg_0]
cmp word ptr es:[bx], 160h
jle short loc_B172
les bx, [bp+arg_0]
cmp word ptr es:[bx], 200h
jge short loc_B172
les bx, [bp+arg_4]
mov word ptr es:[bx], 150h
loc_B172:
push 1
les bx, [bp+arg_4]
push word ptr es:[bx]
les bx, [bp+arg_0]
push word ptr es:[bx]
call sub_AD86
add sp, 6
mov byte_12BA2, 0
jmp loc_B408
; ---------------------------------------------------------------------------
loc_B18F:
cmp byte_12BA3, 1
jz short loc_B199
jmp loc_B242
; ---------------------------------------------------------------------------
loc_B199:
push 0
les bx, [bp+arg_4]
push word ptr es:[bx]
les bx, [bp+arg_0]
push word ptr es:[bx]
call sub_AD86
add sp, 6
les bx, [bp+arg_4]
add word ptr es:[bx], 18h
les bx, [bp+arg_4]
cmp word ptr es:[bx], 168h
jle short loc_B1C7
les bx, [bp+arg_4]
mov word ptr es:[bx], 0F0h
loc_B1C7:
les bx, [bp+arg_4]
cmp word ptr es:[bx], 108h
jnz short loc_B1E3
les bx, [bp+arg_0]
cmp word ptr es:[bx], 120h
jl short loc_B1E3
les bx, [bp+arg_4]
mov word ptr es:[bx], 120h
loc_B1E3:
les bx, [bp+arg_4]
cmp word ptr es:[bx], 138h
jnz short loc_B1FF
les bx, [bp+arg_0]
cmp word ptr es:[bx], 120h
jl short loc_B1FF
les bx, [bp+arg_4]
mov word ptr es:[bx], 150h
loc_B1FF:
les bx, [bp+arg_4]
cmp word ptr es:[bx], 168h
jnz short loc_B225
les bx, [bp+arg_0]
cmp word ptr es:[bx], 160h
jle short loc_B225
les bx, [bp+arg_0]
cmp word ptr es:[bx], 200h
jge short loc_B225
les bx, [bp+arg_4]
mov word ptr es:[bx], 0F0h
loc_B225:
push 1
les bx, [bp+arg_4]
push word ptr es:[bx]
les bx, [bp+arg_0]
push word ptr es:[bx]
call sub_AD86
add sp, 6
mov byte_12BA3, 0
jmp loc_B408
; ---------------------------------------------------------------------------
loc_B242:
cmp byte_12B99, 2
jz short loc_B24C
jmp loc_B2F4
; ---------------------------------------------------------------------------
loc_B24C:
push 0
les bx, [bp+arg_4]
push word ptr es:[bx]
les bx, [bp+arg_0]
push word ptr es:[bx]
call sub_AD86
add sp, 6
les bx, [bp+arg_0]
sub word ptr es:[bx], 20h ; ' '
les bx, [bp+arg_0]
cmp word ptr es:[bx], 20h ; ' '
jge short loc_B279
les bx, [bp+arg_0]
mov word ptr es:[bx], 240h
loc_B279:
les bx, [bp+arg_4]
cmp word ptr es:[bx], 108h
jnz short loc_B295
les bx, [bp+arg_0]
cmp word ptr es:[bx], 120h
jl short loc_B295
les bx, [bp+arg_0]
mov word ptr es:[bx], 100h
loc_B295:
les bx, [bp+arg_4]
cmp word ptr es:[bx], 138h
jnz short loc_B2B1
les bx, [bp+arg_0]
cmp word ptr es:[bx], 120h
jl short loc_B2B1
les bx, [bp+arg_0]
mov word ptr es:[bx], 100h
loc_B2B1:
les bx, [bp+arg_4]
cmp word ptr es:[bx], 168h
jnz short loc_B2D7
les bx, [bp+arg_0]
cmp word ptr es:[bx], 160h
jle short loc_B2D7
les bx, [bp+arg_0]
cmp word ptr es:[bx], 200h
jge short loc_B2D7
les bx, [bp+arg_0]
mov word ptr es:[bx], 160h
loc_B2D7:
push 1
les bx, [bp+arg_4]
push word ptr es:[bx]
les bx, [bp+arg_0]
push word ptr es:[bx]
call sub_AD86
add sp, 6
mov byte_12B99, 0
jmp loc_B408
; ---------------------------------------------------------------------------
loc_B2F4:
cmp byte_12B99, 1
jz short loc_B2FE
jmp loc_B3A6
; ---------------------------------------------------------------------------
loc_B2FE:
push 0
les bx, [bp+arg_4]
push word ptr es:[bx]
les bx, [bp+arg_0]
push word ptr es:[bx]
call sub_AD86
add sp, 6
les bx, [bp+arg_0]
add word ptr es:[bx], 20h ; ' '
les bx, [bp+arg_0]
cmp word ptr es:[bx], 240h
jle short loc_B32C
les bx, [bp+arg_0]
mov word ptr es:[bx], 20h ; ' '
loc_B32C:
les bx, [bp+arg_4]
cmp word ptr es:[bx], 108h
jnz short loc_B348
les bx, [bp+arg_0]
cmp word ptr es:[bx], 120h
jl short loc_B348
les bx, [bp+arg_0]
mov word ptr es:[bx], 20h ; ' '
loc_B348:
les bx, [bp+arg_4]
cmp word ptr es:[bx], 138h
jnz short loc_B364
les bx, [bp+arg_0]
cmp word ptr es:[bx], 120h
jl short loc_B364
les bx, [bp+arg_0]
mov word ptr es:[bx], 20h ; ' '
loc_B364:
les bx, [bp+arg_4]
cmp word ptr es:[bx], 168h
jnz short loc_B38A
les bx, [bp+arg_0]
cmp word ptr es:[bx], 160h
jle short loc_B38A
les bx, [bp+arg_0]
cmp word ptr es:[bx], 200h
jge short loc_B38A
les bx, [bp+arg_0]
mov word ptr es:[bx], 200h
loc_B38A:
push 1
les bx, [bp+arg_4]
push word ptr es:[bx]
les bx, [bp+arg_0]
push word ptr es:[bx]
call sub_AD86
add sp, 6
mov byte_12B99, 0
jmp short loc_B408
; ---------------------------------------------------------------------------
loc_B3A6:
cmp byte_12B9C, 1
jnz short loc_B3DC
push word ptr [bp+arg_C+2]
push word ptr [bp+arg_C] ; __int32
push [bp+arg_A] ; int
push word ptr [bp+_arglist] ; arglist
les bx, [bp+arg_4]
push word ptr es:[bx] ; int
les bx, [bp+arg_0]
push word ptr es:[bx] ; int
call sub_AEF6
add sp, 0Ch
or ax, ax
jz short loc_B3D5
mov ax, 1
pop bp
retf
; ---------------------------------------------------------------------------
loc_B3D5:
mov byte_12B9C, 0
jmp short loc_B408
; ---------------------------------------------------------------------------
loc_B3DC:
cmp byte_12BA1, 1
jnz short loc_B403
push word ptr [bp+arg_C+2]
push word ptr [bp+arg_C] ; __int32
push [bp+arg_A] ; int
push word ptr [bp+_arglist] ; arglist
push 168h ; int
push 200h ; int
call sub_AEF6
add sp, 0Ch
mov byte_12BA1, 0
jmp short loc_B408
; ---------------------------------------------------------------------------
loc_B403:
mov ax, 2
pop bp
retf
; ---------------------------------------------------------------------------
loc_B408:
xor ax, ax
pop bp
retf
sub_B0D9 endp
; ---------------------------------------------------------------------------
pop bp
retf
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_B40E proc far
dest = byte ptr -1Ch
var_C = byte ptr -0Ch
stream = dword ptr -4
enter 1Ch, 0
push si
lea ax, [bp+var_C]
push ss
push ax
push ds
push offset aHiscore_0 ; "HISCORE"
mov cx, 8
call SCOPY@
mov al, _rank
mov ah, 0
mov bx, ax
cmp bx, RANK_LUNATIC
ja short loc_B45C
add bx, bx
jmp cs:off_B533[bx]
loc_B437:
push ds
push offset aReyhies_dat_1 ; "REYHIES.DAT"
jmp short loc_B44D
; ---------------------------------------------------------------------------
loc_B43D:
push ds
push offset aReyhino_dat_1 ; "REYHINO.DAT"
jmp short loc_B44D
; ---------------------------------------------------------------------------
loc_B443:
push ds
push offset aReyhiha_dat_1 ; "REYHIHA.DAT"
jmp short loc_B44D
; ---------------------------------------------------------------------------
loc_B449:
push ds
push offset aReyhilu_dat_1 ; "REYHILU.DAT"
loc_B44D:
push ss
lea ax, [bp+dest]
push ax ; dest
call _strcpy
add sp, 8
jmp short $+2
loc_B45C:
push ds
push offset aWb_0 ; "wb"
push ss
lea ax, [bp+dest]
push ax ; path
call _fopen
add sp, 8
mov word ptr [bp+stream+2], dx
mov word ptr [bp+stream], ax
or ax, dx
jnz short loc_B47A
jmp loc_B530
; ---------------------------------------------------------------------------
loc_B47A:
push 7
push ss
lea ax, [bp+var_C]
push ax
les bx, [bp+stream]
mov al, es:[bx+4]
cbw
push ax
call _write
add sp, 8
xor si, si
jmp short loc_B4AF
; ---------------------------------------------------------------------------
loc_B496:
les bx, font
add bx, si
mov al, es:[bx]
push ax
call sub_A488
pop cx
les bx, font
add bx, si
mov es:[bx], al
inc si
loc_B4AF:
cmp si, 0A0h
jl short loc_B496
push 0A0h
push word ptr font+2
push word ptr font
les bx, [bp+stream]
mov al, es:[bx+4]
cbw
push ax
call _write
add sp, 8
push 28h ; '('
push word ptr off_14034+2
push word ptr off_14034
les bx, [bp+stream]
mov al, es:[bx+4]
cbw
push ax
call _write
add sp, 8
push 14h
push word ptr off_1402C+2
push word ptr off_1402C
les bx, [bp+stream]
mov al, es:[bx+4]
cbw
push ax
call _write
add sp, 8
push 14h
push word ptr off_14028+2
push word ptr off_14028
les bx, [bp+stream]
mov al, es:[bx+4]
cbw
push ax
call _write
add sp, 8
push word ptr [bp+stream+2]
push word ptr [bp+stream] ; stream
call _fclose
add sp, 4
loc_B530:
pop si
leave
retf
sub_B40E endp
; ---------------------------------------------------------------------------
off_B533 dw offset loc_B437
dw offset loc_B43D
dw offset loc_B443
dw offset loc_B449
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_B53B proc far
_arglist = byte ptr -18h
var_8 = byte ptr -8
var_6 = dword ptr -6
arg_0 = word ptr 6
enter 18h, 0
push si
push di
mov word ptr [bp+var_6], 0
mov word ptr [bp-2], 20h ; ' '
mov word ptr [bp+var_6+2], 0F0h
xor si, si
jmp short loc_B559
; ---------------------------------------------------------------------------
loc_B554:
mov [bp+si+_arglist], 20h ; ' '
inc si
loc_B559:
cmp si, 10h
jl short loc_B554
mov [bp+var_8], 0
call sub_A44F
loc_B566:
push 0
call sub_A265
pop cx
push ss
lea ax, [bp+var_6]
push ax ; __int32
push ss ; int
lea ax, [bp+_arglist]
push ax ; arglist
push ss
lea ax, [bp+var_6+2]
push ax ; __int32
push ss
lea ax, [bp-2]
push ax ; __int32
call sub_B0D9
add sp, 10h
mov di, ax
cmp di, 1
jnz short loc_B591
jmp short loc_B5AB
; ---------------------------------------------------------------------------
loc_B591:
cmp byte_12BA0, 0
jz short loc_B59A
jmp short loc_B5AB
; ---------------------------------------------------------------------------
loc_B59A:
cmp di, 2
jnz short loc_B5A1
jmp short loc_B5A9
; ---------------------------------------------------------------------------
loc_B5A1:
push 4
call sub_C82D
pop cx
loc_B5A9:
jmp short loc_B566
; ---------------------------------------------------------------------------
loc_B5AB:
mov byte_12BA0, 0
xor si, si
jmp short loc_B5CB
; ---------------------------------------------------------------------------
loc_B5B4:
mov al, [bp+si+_arglist]
mov bx, [bp+arg_0]
shl bx, 4
add bx, si
mov es, word ptr font+2
add bx, word ptr font
mov es:[bx], al
inc si
loc_B5CB:
cmp si, 10h
jl short loc_B5B4
call sub_B40E
pop di
pop si
leave
retf
sub_B53B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_B5D8 proc far
var_D2 = byte ptr -0D2h
var_D0 = byte ptr -0D0h
var_C0 = byte ptr -0C0h
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 6
arg_2 = word ptr 8
arg_4 = word ptr 0Ah
arg_6 = dword ptr 0Ch
enter 0D0h, 0
push si
push di
mov di, [bp+arg_4]
lea ax, [bp+var_D0]
push ss
push ax
push ds
push offset off_12C1E
mov cx, 10h
call SCOPY@
push 1
call _graph_accesspage_func
pop cx
mov al, _rank
mov ah, 0
shl ax, 2
lea dx, [bp+var_D0]
add ax, dx
mov bx, ax
push word ptr ss:[bx+2]
push word ptr ss:[bx] ; arglist
push ds
push offset aUmx ; "<22><><EFBFBD><EFBFBD><EFBFBD>ˈٓ`<60>@<40><><EFBFBD>҂̋L<CC8B>^<5E>@%s"
push 227h ; int
push 0 ; int
push 0 ; int
call sub_E9E4
add sp, 0Eh
push 0
call _graph_accesspage_func
pop cx
cmp di, 1Eh
jge short loc_B666
push 10h
push 120h
push 180h
push 0
push 0
push 30h ; '0'
call _graph_slow_2xscale_rect_1_to_0
add sp, 0Ch
push 1
push 0
push 180h
push 0
push 190h
push 120h
push 180h
push 0
call sub_E56D
add sp, 10h
jmp short loc_B67B
; ---------------------------------------------------------------------------
loc_B666:
push 10h
push 120h
push 0
push 0
push 0
push 30h ; '0'
call _graph_slow_2xscale_rect_1_to_0
add sp, 0Ch
loc_B67B:
call sub_A61C
or ax, ax
jz short loc_B686
jmp loc_B941
; ---------------------------------------------------------------------------
loc_B686:
mov [bp+var_2], 0
mov [bp+var_4], 0
jmp short loc_B6B2
; ---------------------------------------------------------------------------
loc_B692:
mov ax, [bp+var_4]
imul ax, 12h
lea dx, [bp+var_C0]
add ax, dx
push ss
push ax
push [bp+var_4]
call sub_A7CF
add sp, 6
add [bp+var_4], 1
adc [bp+var_2], 0
loc_B6B2:
cmp [bp+var_2], 0
jl short loc_B692
jnz short loc_B6C0
cmp [bp+var_4], 0Ah
jb short loc_B692
loc_B6C0:
mov [bp+var_2], 0
mov [bp+var_4], 0
jmp short loc_B6F5
; ---------------------------------------------------------------------------
loc_B6CC:
mov ax, [bp+var_4]
shl ax, 2
les bx, off_14034
add bx, ax
mov dx, es:[bx+2]
mov ax, es:[bx]
cmp dx, [bp+arg_2]
jg short loc_B6ED
jnz short loc_B6EB
cmp ax, [bp+arg_0]
ja short loc_B6ED
loc_B6EB:
jmp short loc_B703
; ---------------------------------------------------------------------------
loc_B6ED:
add [bp+var_4], 1
adc [bp+var_2], 0
loc_B6F5:
cmp [bp+var_2], 0
jl short loc_B6CC
jnz short loc_B703
cmp [bp+var_4], 0Ah
jb short loc_B6CC
loc_B703:
call sub_A44F
cmp [bp+var_2], 0
jle short loc_B710
jmp loc_B8BD
; ---------------------------------------------------------------------------
loc_B710:
jl short loc_B71B
cmp [bp+var_4], 0Ah
jb short loc_B71B
jmp loc_B8BD
; ---------------------------------------------------------------------------
loc_B71B:
mov [bp+var_6], 0
mov [bp+var_8], 9
jmp loc_B7D9
; ---------------------------------------------------------------------------
loc_B728:
push ss
mov ax, [bp+var_8]
imul ax, 12h
lea dx, [bp+var_D2]
add ax, dx
push ax ; src
mov ax, [bp+var_8]
imul ax, 12h
lea dx, [bp+var_C0]
add ax, dx
push ss
push ax ; dest
call _strcpy
add sp, 8
mov ax, [bp+var_8]
dec ax
shl ax, 2
les bx, off_14034
add bx, ax
mov dx, es:[bx+2]
mov ax, es:[bx]
mov bx, [bp+var_8]
shl bx, 2
les si, off_14034
add si, bx
mov es:[si+2], dx
mov es:[si], ax
mov ax, [bp+var_8]
dec ax
add ax, ax
les bx, off_1402C
add bx, ax
mov ax, es:[bx]
mov dx, [bp+var_8]
add dx, dx
les bx, off_1402C
add bx, dx
mov es:[bx], ax
mov bx, [bp+var_8]
add bx, bx
mov es, word ptr off_14028+2
add bx, word ptr off_14028
mov al, es:[bx-2]
mov dx, [bp+var_8]
add dx, dx
les bx, off_14028
add bx, dx
mov es:[bx], al
mov bx, [bp+var_8]
add bx, bx
mov es, word ptr off_14028+2
add bx, word ptr off_14028
mov al, es:[bx-1]
mov bx, [bp+var_8]
add bx, bx
mov es, word ptr off_14028+2
add bx, word ptr off_14028
mov es:[bx+1], al
sub [bp+var_8], 1
sbb [bp+var_6], 0
loc_B7D9:
mov dx, [bp+var_6]
mov ax, [bp+var_8]
cmp dx, [bp+var_2]
jle short loc_B7E7
jmp loc_B728
; ---------------------------------------------------------------------------
loc_B7E7:
jnz short loc_B7F1
cmp ax, [bp+var_4]
jbe short loc_B7F1
jmp loc_B728
; ---------------------------------------------------------------------------
loc_B7F1:
mov [bp+var_A], 0
mov [bp+var_C], 9Fh
jmp short loc_B81E
; ---------------------------------------------------------------------------
loc_B7FD:
mov bx, [bp+var_C]
mov es, word ptr font+2
add bx, word ptr font
mov al, es:[bx-10h]
les bx, font
add bx, [bp+var_C]
mov es:[bx], al
sub [bp+var_C], 1
sbb [bp+var_A], 0
loc_B81E:
mov dx, [bp+var_2]
mov ax, [bp+var_4]
mov cl, 4
call far ptr LXLSH@
add ax, 10h
adc dx, 0
cmp dx, [bp+var_A]
jl short loc_B7FD
jg short loc_B83D
cmp ax, [bp+var_C]
jbe short loc_B7FD
loc_B83D:
push ss
lea ax, [bp+var_C0]
push ax
push word ptr [bp+arg_6+2]
push word ptr [bp+arg_6]
push di
push [bp+arg_2]
push [bp+arg_0]
push [bp+var_4]
call sub_A9FF
add sp, 10h
call sub_A801
mov ax, [bp+var_4]
shl ax, 2
les bx, off_14034
add bx, ax
mov dx, [bp+arg_2]
mov ax, [bp+arg_0]
mov es:[bx+2], dx
mov es:[bx], ax
mov ax, [bp+var_4]
add ax, ax
les bx, off_1402C
add bx, ax
mov es:[bx], di
mov ax, [bp+var_4]
add ax, ax
les bx, off_14028
add bx, ax
push es
les si, [bp+arg_6]
mov al, es:[si]
pop es
mov es:[bx], al
les bx, [bp+arg_6]
mov al, es:[bx+1]
mov bx, [bp+var_4]
add bx, bx
mov es, word ptr off_14028+2
add bx, word ptr off_14028
mov es:[bx+1], al
push [bp+var_4]
call sub_B53B
pop cx
jmp short loc_B8FC
; ---------------------------------------------------------------------------
loc_B8BD:
push ss
lea ax, [bp+var_C0]
push ax
push word ptr [bp+arg_6+2]
push word ptr [bp+arg_6]
push di
push [bp+arg_2]
push [bp+arg_0]
push 1Eh
call sub_A9FF
add sp, 10h
mov byte_12BA0, 1
mov byte_12B9C, 1
loc_B8E3:
push 0
call sub_A265
pop cx
cmp byte_12BA0, 0
jz short loc_B8F8
cmp byte_12B9C, 0
jnz short loc_B8FA
loc_B8F8:
jmp short loc_B8FC
; ---------------------------------------------------------------------------
loc_B8FA:
jmp short loc_B8E3
; ---------------------------------------------------------------------------
loc_B8FC:
mov ax, seg fuuin_08_TEXT
mov es, ax
assume es:fuuin_08_TEXT
push word ptr font+2
push word ptr font ; font
call @$bdla$qnv
add sp, 4
push word ptr off_1402C+2
push word ptr off_1402C ; font
call @$bdla$qnv
add sp, 4
push word ptr off_14028+2
push word ptr off_14028 ; font
call @$bdla$qnv
add sp, 4
push word ptr off_14034+2
push word ptr off_14034 ; font
call @$bdla$qnv
add sp, 4
loc_B941:
pop di
pop si
leave
retf
sub_B5D8 endp
fuuin_02_TEXT ends
; ===========================================================================
; Segment type: Pure code
fuuin_03_TEXT segment byte public 'CODE' use16
assume cs:fuuin_03_TEXT
;org 5
assume es:nothing, ss:nothing, ds:_DATA, fs:nothing, gs:nothing
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_B945 proc far
push bp
mov bp, sp
push si
push ds
push offset aIris_mdt ; "iris.mdt"
call _mdrv2_bgm_load
add sp, 4
call _mdrv2_bgm_play
push 0
call sub_C842
push ds
push offset aEd1a_grp ; "ED1A.grp"
call sub_C73A
push 0
call sub_C78B
pop cx
push 6
call sub_C939
push 64h ; 'd'
call sub_C82D
pop cx
push 5
call sub_C960
push 64h ; 'd'
call sub_C82D
pop cx
push 1
call sub_C78B
pop cx
push 64h ; 'd'
call sub_C842
push 0Dh
call sub_C82D
pop cx
push 2
call sub_C78B
pop cx
push 0Dh
call sub_C82D
pop cx
push 3
call sub_C78B
pop cx
push 32h ; '2'
call sub_C82D
pop cx
push ds
push offset aEd1b_grp ; "ED1B.grp"
call sub_C73A
push 0
call sub_C78B
pop cx
push 0Ah
call sub_C82D
pop cx
push 1
call sub_C78B
pop cx
push 0Ah
call sub_C82D
pop cx
push 2
call sub_C78B
pop cx
push 64h ; 'd'
call sub_C82D
pop cx
push 6
call sub_C911
push 0
call _graph_accesspage_func
pop cx
call sub_D2D6
push 64h ; 'd'
call sub_C842
push ds
push offset aEd1c_grp ; "ED1C.GRP"
call sub_C73A
xor si, si
jmp short loc_BA49
; ---------------------------------------------------------------------------
loc_BA28:
push 0
call sub_C78B
pop cx
push 14h
call sub_C82D
pop cx
push 1
call sub_C78B
pop cx
push 14h
call sub_C82D
pop cx
inc si
loc_BA49:
cmp si, 6
jl short loc_BA28
push 0
call sub_C78B
pop cx
push 28h ; '('
call sub_C82D
pop cx
push 2
call sub_C78B
pop cx
push 28h ; '('
call sub_C82D
pop cx
push ds
push offset aEd1d_grp ; "ED1D.GRP"
call sub_C73A
push 3
call sub_C78B
pop cx
push 46h ; 'F'
call sub_C82D
pop cx
xor si, si
jmp loc_BB16
; ---------------------------------------------------------------------------
loc_BA8C:
or si, si
jnz short loc_BA98
push 0
call sub_C78B
pop cx
loc_BA98:
cmp si, 14h
jnz short loc_BAA5
push 1
call sub_C78B
pop cx
loc_BAA5:
cmp si, 18h
jnz short loc_BAB2
push 2
call sub_C78B
pop cx
loc_BAB2:
cmp si, 1Ch
jnz short loc_BABF
push 0
call sub_C78B
pop cx
loc_BABF:
cmp si, 32h ; '2'
jnz short loc_BACC
push 1
call sub_C78B
pop cx
loc_BACC:
cmp si, 36h ; '6'
jnz short loc_BAD9
push 2
call sub_C78B
pop cx
loc_BAD9:
cmp si, 3Ah ; ':'
jnz short loc_BAE6
push 0
call sub_C78B
pop cx
loc_BAE6:
cmp si, 5Ah ; 'Z'
jnz short loc_BAF3
push 1
call sub_C78B
pop cx
loc_BAF3:
cmp si, 5Eh ; '^'
jnz short loc_BB00
push 2
call sub_C78B
pop cx
loc_BB00:
cmp si, 62h ; 'b'
jnz short loc_BB0D
push 0
call sub_C78B
pop cx
loc_BB0D:
push 2
call sub_C82D
pop cx
inc si
loc_BB16:
cmp si, 64h ; 'd'
jge short loc_BB1E
jmp loc_BA8C
; ---------------------------------------------------------------------------
loc_BB1E:
push 3
call sub_C78B
pop cx
push 3Ch ; '<'
call sub_C82D
pop cx
push 0
call sub_C78B
pop cx
push 14h
call sub_C82D
pop cx
push 3
call sub_C78B
pop cx
push 69h ; 'i'
call sub_C842
push ds
push offset aEd1e_grp ; "ED1E.GRP"
call sub_C73A
push 0
call sub_C78B
pop cx
xor si, si
jmp short loc_BB79
; ---------------------------------------------------------------------------
loc_BB62:
mov ax, si
imul ax, 5
add ax, 6Eh ; 'n'
push ax
call sub_C842
push 10h
call sub_C82D
pop cx
inc si
loc_BB79:
cmp si, 4
jl short loc_BB62
xor si, si
jmp short loc_BBB1
; ---------------------------------------------------------------------------
loc_BB82:
push 1
call sub_C78B
pop cx
push 8
call sub_C82D
pop cx
push 2
call sub_C78B
pop cx
push 8
call sub_C82D
pop cx
mov ax, si
imul ax, 5
add ax, 82h
push ax
call sub_C842
inc si
loc_BBB1:
cmp si, 0Fh
jl short loc_BB82
mov ax, word ptr _continues_total
or ax, word ptr _continues_total+2
jnz short loc_BBC7
call sub_BDBD
call sub_C03D
jmp short loc_BBF1
; ---------------------------------------------------------------------------
loc_BBC7:
call sub_BC7C
call _mdrv2_bgm_fade_out_nonblock
push 0Ah
call sub_C911
call sub_D2D6
call _mdrv2_bgm_stop
push ds
push offset aSt1_mdt ; "st1.mdt"
call _mdrv2_bgm_load
add sp, 4
call _mdrv2_bgm_play
loc_BBF1:
nopcall sub_C446
pop si
pop bp
retf
sub_B945 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_BBF9 proc near
arg_0 = word ptr 4
arg_2 = word ptr 6
push bp
mov bp, sp
push si
xor si, si
jmp short loc_BC35
; ---------------------------------------------------------------------------
loc_BC01:
test si, 3
jnz short loc_BC0B
push 8
jmp short loc_BC0D
; ---------------------------------------------------------------------------
loc_BC0B:
push 0
loc_BC0D:
call graph_scrollup
push 1
call sub_C78B
pop cx
push 1
call sub_C82D
pop cx
test si, 1
jz short loc_BC2D
push 0AAh ; '<27>'
jmp short loc_BC2F
; ---------------------------------------------------------------------------
loc_BC2D:
push 64h ; 'd'
loc_BC2F:
call sub_C842
inc si
loc_BC35:
cmp si, [bp+arg_2]
jle short loc_BC01
xor si, si
jmp short loc_BC72
; ---------------------------------------------------------------------------
loc_BC3E:
test si, 3
jnz short loc_BC48
push 8
jmp short loc_BC4A
; ---------------------------------------------------------------------------
loc_BC48:
push 0
loc_BC4A:
call graph_scrollup
push 1
call sub_C78B
pop cx
push 2
call sub_C82D
pop cx
test si, 1
jz short loc_BC69
push 2
jmp short loc_BC6B
; ---------------------------------------------------------------------------
loc_BC69:
push 1
loc_BC6B:
call sub_C78B
pop cx
inc si
loc_BC72:
cmp si, [bp+arg_0]
jle short loc_BC3E
pop si
pop bp
retn 4
sub_BBF9 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_BC7C proc near
push bp
mov bp, sp
push si
push ds
push offset aEd2a_grp ; "ed2a.grp"
call sub_C73A
push 0C8h ; '<27>'
call sub_C842
push 0
call sub_C78B
pop cx
push 5
call sub_C988
push 78h ; 'x'
call sub_C82D
pop cx
cmp byte_14021, 2
jnz short loc_BCFC
push 40h
push 10h
call sub_BBF9
push 20h ; ' '
push 20h ; ' '
call sub_BBF9
push 0
call graph_scrollup
push 32h ; '2'
call sub_C82D
pop cx
push 3
call sub_C78B
pop cx
push 64h ; 'd'
call sub_C82D
pop cx
push 0E8h
push 13Ch
push 16h
push ds
push offset aTryToNoContinu ; "Try to 'No continue'!!"
call sub_C9B0
push 0E8h
push 15Ch
push 16h
push ds
push offset aBadEnding2 ; " Bad Ending2 "
jmp loc_BDAC
; ---------------------------------------------------------------------------
loc_BCFC:
push ds
push offset aEd4a_grp ; "ed4a.grp"
call sub_C73A
xor si, si
jmp short loc_BD2A
; ---------------------------------------------------------------------------
loc_BD09:
push 0
call sub_C78B
pop cx
push 3
call sub_C82D
pop cx
push 1
call sub_C78B
pop cx
push 3
call sub_C82D
pop cx
inc si
loc_BD2A:
cmp si, 14h
jl short loc_BD09
xor si, si
jmp short loc_BD62
; ---------------------------------------------------------------------------
loc_BD33:
push 0
call sub_C78B
pop cx
push 3
call sub_C82D
pop cx
push 1
call sub_C78B
pop cx
push 3
call sub_C82D
pop cx
mov ax, si
imul ax, 5
add ax, 64h ; 'd'
push ax
call sub_C842
inc si
loc_BD62:
cmp si, 14h
jl short loc_BD33
push 2
call sub_C78B
pop cx
push 5
call sub_C988
push 0C8h ; '<27>'
call sub_C82D
pop cx
push 3
call sub_C78B
pop cx
push 64h ; 'd'
call sub_C82D
pop cx
push 0E8h
push 13Ch
push 16h
push ds
push offset aTryToNoConti_0 ; "Try to 'No continue'!!"
call sub_C9B0
push 0E8h
push 15Ch
push 16h
push ds
push offset aBadEnding1 ; " Bad Ending1 "
loc_BDAC:
call sub_C9B0
push 12Ch
call sub_C82D
pop cx
pop si
pop bp
retn
sub_BC7C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_BDBD proc near
push bp
mov bp, sp
push si
push ds
push offset aEd3a_grp ; "ed3a.grp"
call sub_C73A
push 0C8h ; '<27>'
call sub_C842
xor si, si
jmp short loc_BE07
; ---------------------------------------------------------------------------
loc_BDD6:
push 0
call sub_C78B
pop cx
push 8
call sub_C82D
pop cx
push 1
call sub_C78B
pop cx
push 8
call sub_C82D
pop cx
mov ax, si
imul ax, 5
mov dx, 0C8h ; '<27>'
sub dx, ax
push dx
call sub_C842
inc si
loc_BE07:
cmp si, 14h
jl short loc_BDD6
push 64h ; 'd'
call sub_C842
xor si, si
jmp short loc_BE38
; ---------------------------------------------------------------------------
loc_BE17:
push 0
call sub_C78B
pop cx
push 8
call sub_C82D
pop cx
push 1
call sub_C78B
pop cx
push 8
call sub_C82D
pop cx
inc si
loc_BE38:
cmp si, 0Ah
jl short loc_BE17
xor si, si
jmp short loc_BE64
; ---------------------------------------------------------------------------
loc_BE41:
mov ax, si
and ax, 1
push ax
call sub_C78B
pop cx
push 8
call sub_C82D
pop cx
mov ax, si
imul ax, 0Ah
add ax, 64h ; 'd'
push ax
call sub_C842
inc si
loc_BE64:
cmp si, 0Ah
jl short loc_BE41
push 0C8h ; '<27>'
call sub_C842
cmp byte_14021, 1
jnz short loc_BE7D
call sub_BF07
jmp short loc_BE80
; ---------------------------------------------------------------------------
loc_BE7D:
call sub_BE83
loc_BE80:
pop si
pop bp
retn
sub_BDBD endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_BE83 proc near
push bp
mov bp, sp
push ds
push offset aEd3b_grp ; "ed3b.grp"
call sub_C73A
push 0
call sub_C78B
pop cx
push 4
call sub_C988
push 0FAh
call sub_C82D
pop cx
push 1
call sub_C78B
pop cx
push 0C8h ; '<27>'
call sub_C82D
pop cx
push 2
call sub_C78B
pop cx
push 96h
call sub_C82D
pop cx
push 3
call sub_C78B
pop cx
push 96h
call sub_C82D
pop cx
push 100h
push 13Ch
push 10h
push ds
push offset aCongratulation ; "Congratulations!"
call sub_C9B0
push 0E8h
push 15Ch
push 16h
push ds
push offset aGoodEnding2 ; " Good Ending2 "
call sub_C9B0
push 12Ch
call sub_C82D
pop cx
pop bp
retn
sub_BE83 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_BF07 proc near
push bp
mov bp, sp
push si
push ds
push offset aEd5a_grp ; "ed5a.grp"
call sub_C73A
push 0
call sub_C78B
pop cx
push 4
call sub_C988
push 12Ch
call sub_C82D
pop cx
xor si, si
jmp short loc_BF51
; ---------------------------------------------------------------------------
loc_BF30:
push 1
call sub_C78B
pop cx
push 8
call sub_C82D
pop cx
push 2
call sub_C78B
pop cx
push 8
call sub_C82D
pop cx
inc si
loc_BF51:
cmp si, 0Fh
jl short loc_BF30
push ds
push offset aEd5b_grp ; "ed5b.grp"
call sub_C73A
push 0
call sub_C78B
pop cx
push 96h
call sub_C82D
pop cx
push 1
call sub_C78B
pop cx
push 64h ; 'd'
call sub_C82D
pop cx
push 2
call sub_C78B
pop cx
push 64h ; 'd'
call sub_C82D
pop cx
push 3
call sub_C78B
pop cx
push 64h ; 'd'
call sub_C82D
pop cx
push ds
push offset aEd5c_grp ; "ed5c.grp"
call sub_C73A
push 0
call sub_C78B
pop cx
push 64h ; 'd'
call sub_C82D
pop cx
push 1
call sub_C78B
pop cx
push 96h
call sub_C82D
pop cx
push 2
call sub_C78B
pop cx
push 96h
call sub_C82D
pop cx
push 100h
push 13Ch
push 10h
push ds
push offset aCongratulati_0 ; "Congratulations!"
call sub_C9B0
push 0E8h
push 15Ch
push 16h
push ds
push offset aGoodEnding1 ; " Good Ending1 "
call sub_C9B0
push 12Ch
call sub_C82D
pop cx
pop si
pop bp
retn
sub_BF07 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_C009 proc near
arg_0 = word ptr 4
push bp
mov bp, sp
push 96h
call sub_C82D
pop cx
push 5
call sub_C911
call sub_D2D6
push [bp+arg_0]
call sub_C78B
pop cx
push 5
call sub_C939
push 32h ; '2'
call sub_C82D
pop cx
pop bp
retn 2
sub_C009 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_C03D proc near
push bp
mov bp, sp
call _mdrv2_bgm_fade_out_nonblock
push 0Ah
call sub_C911
call sub_D2D6
call _mdrv2_bgm_stop
push ds
push offset aSt1_mdt_0 ; "st1.mdt"
call _mdrv2_bgm_load
add sp, 4
call _mdrv2_bgm_play
cmp byte_14021, 1
jnz short loc_C074
push ds
push offset aEndb_a_grp ; "endb_a.grp"
jmp short loc_C078
; ---------------------------------------------------------------------------
loc_C074:
push ds
push offset aEndb_b_grp ; "endb_b.grp"
loc_C078:
call sub_C73A
push 0
call sub_C78B
pop cx
push 64h ; 'd'
call sub_C842
push 32h ; '2'
call sub_C82D
pop cx
push 110h
push 13Ch
push 0Dh
push ds
push offset aStage5Boss ; "STAGE 5 BOSS"
call sub_C9B0
push 0E8h
push 15Ch
push 16h
push ds
push offset aGatekeeperSing ; "Gatekeeper 'SinGyoku'"
call sub_C9B0
push 1
call sub_C009
cmp byte_14021, 1
jnz short loc_C0E1
push 110h
push 13Ch
push 0Dh
push ds
push offset aStage10Boss ; "STAGE 10 BOSS"
call sub_C9B0
push 0E8h
push 15Ch
push 16h
push ds
push offset aEvileyesYuugen ; "EvilEyes 'YuugenMagan'"
jmp short loc_C0FE
; ---------------------------------------------------------------------------
loc_C0E1:
push 110h
push 13Ch
push 0Dh
push ds
push offset aStage10Boss_0 ; "STAGE 10 BOSS"
call sub_C9B0
push 0E8h
push 15Ch
push 17h
push ds
push offset aRevengefulGhos ; "Revengeful Ghost 'Mima'"
loc_C0FE:
call sub_C9B0
push 2
call sub_C009
cmp byte_14021, 1
jnz short loc_C12E
push 110h
push 13Ch
push 0Dh
push ds
push offset aStage15Boss ; "STAGE 15 BOSS"
call sub_C9B0
push 0E8h
push 15Ch
push 16h
push ds
push offset aInnocenceDevil ; "Innocence Devil 'Elis'"
jmp short loc_C14B
; ---------------------------------------------------------------------------
loc_C12E:
push 110h
push 13Ch
push 0Dh
push ds
push offset aStage15Boss_0 ; "STAGE 15 BOSS"
call sub_C9B0
push 100h
push 15Ch
push 11h
push ds
push offset aHellmoonKikuri ; "HellMoon 'Kikuri'"
loc_C14B:
call sub_C9B0
push 3
call sub_C009
cmp byte_14021, 1
jnz short loc_C17B
push 110h
push 13Ch
push 0Dh
push ds
push offset aStage20Boss ; "STAGE 20 BOSS"
call sub_C9B0
push 0E8h
push 15Ch
push 16h
push ds
push offset aAngelOfDeathSa ; "Angel of Death'Sariel'"
jmp short loc_C198
; ---------------------------------------------------------------------------
loc_C17B:
push 110h
push 13Ch
push 0Dh
push ds
push offset aStage20Boss_0 ; "STAGE 20 BOSS"
call sub_C9B0
push 0E0h
push 15Ch
push 18h
push ds
push offset aAstralKnightKo ; "Astral Knight 'Konngara'"
loc_C198:
call sub_C9B0
push 96h
call sub_C82D
pop cx
pop bp
retn
sub_C03D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_C1A8 proc far
var_2 = word ptr -2
enter 2, 0
push si
push di
xor si, si
cmp word ptr _score+2, 26h ; '&'
jl short loc_C1C6
jnz short loc_C1C1
cmp word ptr _score, 25A0h
jb short loc_C1C6
loc_C1C1:
add si, 0Ah
jmp short loc_C21C
; ---------------------------------------------------------------------------
loc_C1C6:
cmp word ptr _score+2, 1Eh
jl short loc_C1DC
jnz short loc_C1D7
cmp word ptr _score, 8480h
jb short loc_C1DC
loc_C1D7:
add si, 8
jmp short loc_C21C
; ---------------------------------------------------------------------------
loc_C1DC:
cmp word ptr _score+2, 16h
jl short loc_C1F2
jnz short loc_C1ED
cmp word ptr _score, 0E360h
jb short loc_C1F2
loc_C1ED:
add si, 6
jmp short loc_C21C
; ---------------------------------------------------------------------------
loc_C1F2:
cmp word ptr _score+2, 0Fh
jl short loc_C208
jnz short loc_C203
cmp word ptr _score, 4240h
jb short loc_C208
loc_C203:
add si, 4
jmp short loc_C21C
; ---------------------------------------------------------------------------
loc_C208:
cmp word ptr _score+2, 7
jl short loc_C21C
jnz short loc_C219
cmp word ptr _score, 0A120h
jb short loc_C21C
loc_C219:
add si, 2
loc_C21C:
cmp word ptr _score_highest+2, 2Dh ; '-'
jl short loc_C232
jnz short loc_C22D
cmp word ptr _score_highest, 0C6C0h
jb short loc_C232
loc_C22D:
add si, 0Ah
jmp short loc_C288
; ---------------------------------------------------------------------------
loc_C232:
cmp word ptr _score_highest+2, 27h ; '''
jl short loc_C248
jnz short loc_C243
cmp word ptr _score_highest, 0AC40h
jb short loc_C248
loc_C243:
add si, 8
jmp short loc_C288
; ---------------------------------------------------------------------------
loc_C248:
cmp word ptr _score_highest+2, 21h ; '!'
jl short loc_C25E
jnz short loc_C259
cmp word ptr _score_highest, 91C0h
jb short loc_C25E
loc_C259:
add si, 6
jmp short loc_C288
; ---------------------------------------------------------------------------
loc_C25E:
cmp word ptr _score_highest+2, 1Bh
jl short loc_C274
jnz short loc_C26F
cmp word ptr _score_highest, 7740h
jb short loc_C274
loc_C26F:
add si, 4
jmp short loc_C288
; ---------------------------------------------------------------------------
loc_C274:
cmp word ptr _score_highest+2, 15h
jl short loc_C288
jnz short loc_C285
cmp word ptr _score_highest, 5CC0h
jb short loc_C288
loc_C285:
add si, 2
loc_C288:
mov ax, word ptr _continues_total
or ax, word ptr _continues_total+2
jnz short loc_C297
add si, 1Eh
jmp loc_C36C
; ---------------------------------------------------------------------------
loc_C297:
cmp word ptr _continues_total+2, 0
jg short loc_C2AD
jnz short loc_C2A7
cmp word ptr _continues_total, 2
ja short loc_C2AD
loc_C2A7:
add si, 0Ah
jmp loc_C36C
; ---------------------------------------------------------------------------
loc_C2AD:
cmp word ptr _continues_total+2, 0
jg short loc_C2C3
jnz short loc_C2BD
cmp word ptr _continues_total, 4
ja short loc_C2C3
loc_C2BD:
add si, 8
jmp loc_C36C
; ---------------------------------------------------------------------------
loc_C2C3:
cmp word ptr _continues_total+2, 0
jg short loc_C2D9
jnz short loc_C2D3
cmp word ptr _continues_total, 6
ja short loc_C2D9
loc_C2D3:
add si, 6
jmp loc_C36C
; ---------------------------------------------------------------------------
loc_C2D9:
cmp word ptr _continues_total+2, 0
jg short loc_C2EE
jnz short loc_C2E9
cmp word ptr _continues_total, 8
ja short loc_C2EE
loc_C2E9:
add si, 4
jmp short loc_C36C
; ---------------------------------------------------------------------------
loc_C2EE:
cmp word ptr _continues_total+2, 0
jg short loc_C303
jnz short loc_C2FE
cmp word ptr _continues_total, 0Ah
ja short loc_C303
loc_C2FE:
add si, 2
jmp short loc_C36C
; ---------------------------------------------------------------------------
loc_C303:
cmp word ptr _continues_total+2, 0
jg short loc_C315
jnz short loc_C313
cmp word ptr _continues_total, 0Ch
ja short loc_C315
loc_C313:
jmp short loc_C36C
; ---------------------------------------------------------------------------
loc_C315:
cmp word ptr _continues_total+2, 0
jg short loc_C32A
jnz short loc_C325
cmp word ptr _continues_total, 0Eh
ja short loc_C32A
loc_C325:
sub si, 2
jmp short loc_C36C
; ---------------------------------------------------------------------------
loc_C32A:
cmp word ptr _continues_total+2, 0
jg short loc_C33F
jnz short loc_C33A
cmp word ptr _continues_total, 10h
ja short loc_C33F
loc_C33A:
sub si, 4
jmp short loc_C36C
; ---------------------------------------------------------------------------
loc_C33F:
cmp word ptr _continues_total+2, 0
jg short loc_C354
jnz short loc_C34F
cmp word ptr _continues_total, 12h
ja short loc_C354
loc_C34F:
sub si, 6
jmp short loc_C36C
; ---------------------------------------------------------------------------
loc_C354:
cmp word ptr _continues_total+2, 0
jg short loc_C369
jnz short loc_C364
cmp word ptr _continues_total, 14h
ja short loc_C369
loc_C364:
sub si, 8
jmp short loc_C36C
; ---------------------------------------------------------------------------
loc_C369:
sub si, 0Ah
loc_C36C:
cmp _rank, RANK_LUNATIC
jnz short loc_C378
add si, 32h ; '2'
jmp short loc_C39A
; ---------------------------------------------------------------------------
loc_C378:
cmp _rank, RANK_HARD
jnz short loc_C384
add si, 1Eh
jmp short loc_C39A
; ---------------------------------------------------------------------------
loc_C384:
cmp _rank, RANK_NORMAL
jnz short loc_C390
add si, 0Ah
jmp short loc_C39A
; ---------------------------------------------------------------------------
loc_C390:
cmp _rank, RANK_EASY
jnz short loc_C39A
sub si, 0Ah
loc_C39A:
cmp byte_14021, 2
jnz short loc_C3A4
add si, 5
loc_C3A4:
mov al, byte_14020
cbw
cmp ax, 4
jnz short loc_C3B2
sub si, 0Ah
jmp short loc_C3D8
; ---------------------------------------------------------------------------
loc_C3B2:
mov al, byte_14020
cbw
cmp ax, 3
jnz short loc_C3C0
sub si, 5
jmp short loc_C3D8
; ---------------------------------------------------------------------------
loc_C3C0:
mov al, byte_14020
cbw
cmp ax, 1
jnz short loc_C3CE
add si, 5
jmp short loc_C3D8
; ---------------------------------------------------------------------------
loc_C3CE:
cmp byte_14020, 0
jnz short loc_C3D8
add si, 0Ah
loc_C3D8:
call IRand
mov bx, 3
cwd
idiv bx
mov [bp+var_2], dx
cmp si, 50h ; 'P'
jl short loc_C3F0
mov di, 5
jmp short loc_C419
; ---------------------------------------------------------------------------
loc_C3F0:
cmp si, 3Ch ; '<'
jl short loc_C3FA
mov di, 4
jmp short loc_C419
; ---------------------------------------------------------------------------
loc_C3FA:
cmp si, 28h ; '('
jl short loc_C404
mov di, 3
jmp short loc_C419
; ---------------------------------------------------------------------------
loc_C404:
cmp si, 14h
jl short loc_C40E
mov di, 2
jmp short loc_C419
; ---------------------------------------------------------------------------
loc_C40E:
or si, si
jl short loc_C417
mov di, 1
jmp short loc_C419
; ---------------------------------------------------------------------------
loc_C417:
xor di, di
loc_C419:
mov bx, [bp+var_2]
imul bx, 18h
mov ax, di
shl ax, 2
add bx, ax
push word ptr [bx+3DAh]
push word ptr [bx+3D8h] ; arglist
push ds
push offset aS_1 ; "%s"
push 12h ; int
push 180h ; int
push 1E8h ; int
call sub_E9E4
add sp, 0Eh
pop di
pop si
leave
retf
sub_C1A8 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_C446 proc far
var_10 = byte ptr -10h
enter 10h, 0
push si
lea ax, [bp+var_10]
push ss
push ax
push ds
push offset off_12EC0
mov cx, 10h
call SCOPY@
push 0Ah
call sub_C911
push 1
call _graph_accesspage_func
pop cx
push ds
push offset aEndm_a_grp ; "endm_a.grp"
call sub_EB39
add sp, 4
call sub_D349
push 0
call _graph_accesspage_func
pop cx
push 8
call sub_C939
push 190h
push 20h ; ' '
push 5
push ds
push offset aUmx_1 ; "<22><><EFBFBD><EFBFBD><EFBFBD>ˈٓ`"
call sub_C9EE
push 1F0h
push 20h ; ' '
push 3
push ds
push offset aVer ; "ver"
call sub_C9B0
push 210h
push 20h ; ' '
push 4
push ds
push offset a1_10 ; "1.10"
call sub_C9B0
push 1Eh
call sub_C82D
pop cx
mov al, _rank
mov ah, 0
shl ax, 2
lea dx, [bp+var_10]
add ax, dx
mov bx, ax
push word ptr ss:[bx+2]
push word ptr ss:[bx] ; arglist
push ds
push offset aUqiUxb@b@b@b@b ; "<22><><EFBFBD>Փx<D593>@<40>@<40>@<40>@<40>@<40>@<40>@<40>@<40>@<40>@ %s"
push 0Fh ; int
push 40h ; int
push 128h ; int
call sub_E9E4
add sp, 0Eh
push 1Eh
call sub_C82D
pop cx
push word ptr _score_highest+2
push word ptr _score_highest ; arglist
push ds
push offset aNbi ; "<22><><EFBFBD><EFBFBD><EFBFBD>̍ō<CC8D><C58D><EFBFBD><EFBFBD>_<EFBFBD>@<40>@<40>@<40>@<40>@<40>@ %7lu"
push 0Fh ; int
push 60h ; int
push 128h ; int
call sub_E9E4
add sp, 0Eh
push 1Eh
call sub_C82D
pop cx
push word ptr _score+2
push word ptr _score ; arglist
push ds
push offset aNPiuU_b@b@b@b@ ; "<22>ŏI<C58F><49><EFBFBD>_<EFBFBD>@<40>@<40>@<40>@<40>@<40>@<40>@<40>@<40>@ %7lu"
push 0Fh ; int
push 80h ; int
push 128h ; int
call sub_E9E4
add sp, 0Eh
push 1Eh
call sub_C82D
pop cx
push ds
push offset aGrgugegbgjgebI ; "<22>R<EFBFBD><52><EFBFBD>e<EFBFBD>B<EFBFBD>j<EFBFBD><6A><EFBFBD>[<5B><><EFBFBD><EFBFBD>"
push 0Fh ; int
push 0A0h ; int
push 128h ; int
call sub_E9E4
add sp, 0Ah
push 1Eh
call sub_C82D
pop cx
push word_13EDE
push word_13EDC ; arglist
push ds
push offset aB@r_oB@b@b@b@b ; "<22>@<40>_<EFBFBD>Ё@<40>@<40>@<40>@<40>i<EFBFBD>P<EFBFBD>ʁ`<60>T<EFBFBD>ʁj <20>@ %3lu"
push 0Fh ; int
push 0C0h ;int
push 128h ; int
call sub_E9E4
add sp, 0Eh
push 1Eh
call sub_C82D
pop cx
cmp byte_14021, 1
jnz short loc_C590
push word_13EE2
push word_13EE0
push ds
push offset aB@gqbGgb@b@b@b ; "<22>@<40>Q<EFBFBD>[<5B>g<EFBFBD>@<40>@<40>@<40>i<EFBFBD>U<EFBFBD>ʁ`<60>P<EFBFBD>O<EFBFBD>ʁj %3lu"
jmp short loc_C59C
; ---------------------------------------------------------------------------
loc_C590:
push word_13EE2
push word_13EE0 ; arglist
push ds
push offset aB@tkb@b@b@b@b@ ; "<22>@<40>K<EFBFBD>@<40>@<40>@<40>@<40>@<40>i<EFBFBD>U<EFBFBD>ʁ`<60>P<EFBFBD>O<EFBFBD>ʁj %3lu"
loc_C59C:
push 0Fh ; int
push 0E0h ; int
push 128h ; int
call sub_E9E4
add sp, 0Eh
push 1Eh
call sub_C82D
pop cx
cmp byte_14021, 1
jnz short loc_C5C9
push word_13EE6
push word_13EE4
push ds
push offset aGfgbgivFpBivpv ; " <20><><EFBFBD>B<EFBFBD>i<EFBFBD>̔p<CC94>Ёi<D081>P<EFBFBD>P<EFBFBD>ʁ`<60>P<EFBFBD>T<EFBFBD>ʁj%3lu"
jmp short loc_C5D5
; ---------------------------------------------------------------------------
loc_C5C9:
push word_13EE6
push word_13EE4 ; arglist
push ds
push offset aB@ikvXekeb@b@b ; "<22>@<40><><EFBFBD>̕<EFBFBD><CC95>E<EFBFBD>@<40>@<40>i<EFBFBD>P<EFBFBD>P<EFBFBD>ʁ`<60>P<EFBFBD>T<EFBFBD>ʁj%3lu"
loc_C5D5:
push 0Fh ; int
push 100h ; int
push 128h ; int
call sub_E9E4
add sp, 0Eh
push 1Eh
call sub_C82D
pop cx
cmp byte_14021, 1
jnz short loc_C602
push word_13EEA
push word_13EE8
push ds
push offset aSVVVsr_uabivpv ; " <20>‚<EFBFBD><C282><EFBFBD><EFBFBD><EFBFBD><EFBFBD>_<EFBFBD>a<EFBFBD>i<EFBFBD>P<EFBFBD>T<EFBFBD>ʁ`<60>Q<EFBFBD>O<EFBFBD>ʁj%3lu"
jmp short loc_C60E
; ---------------------------------------------------------------------------
loc_C602:
push word_13EEA
push word_13EE8 ; arglist
push ds
push offset aB@rVivVsr_uabi ; "<22>@<40>Â<EFBFBD><C382>Ȃ<EFBFBD><C882>_<EFBFBD>a<EFBFBD>i<EFBFBD>P<EFBFBD>T<EFBFBD>ʁ`<60>Q<EFBFBD>O<EFBFBD>ʁj%3lu"
loc_C60E:
push 0Fh ; int
push 120h ; int
push 128h ; int
call sub_E9E4
add sp, 0Eh
push 1Eh
call sub_C82D
pop cx
cmp byte_14021, 1
jnz short loc_C63B
push word ptr _continues_total+2
push word ptr _continues_total
push ds
push offset aCvkeglbGgsnnzb ; " <20><><EFBFBD>E<EFBFBD><45><EFBFBD>[<5B>g<EFBFBD><67><EFBFBD><EFBFBD><EFBFBD>@<40>@<40>@<40>@<40>@<40>@ %5lu"
jmp short loc_C647
; ---------------------------------------------------------------------------
loc_C63B:
push word ptr _continues_total+2
push word ptr _continues_total ; arglist
push ds
push offset aB@tnncglbGgsnn ; "<22>@<40>n<EFBFBD><6E><EFBFBD><EFBFBD><EFBFBD>[<5B>g<EFBFBD><67><EFBFBD><EFBFBD><EFBFBD>@<40>@<40>@<40>@<40>@<40>@<40>@%5lu"
loc_C647:
push 0Fh ; int
push 140h ; int
push 128h ; int
call sub_E9E4
add sp, 0Eh
push 1Eh
call sub_C82D
pop cx
push 128h
push 160h
push 1Dh
push ds
push offset aThankYouForPla ; " Thank you for Playing !! "
call sub_C9B0
push ds
push offset aBBBVavVVPNjbBB ; "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȃ<EFBFBD><C882>̏̍<CC8F><CC8D><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
push 12h ; int
push 180h ; int
push 108h ; int
call sub_E9E4
add sp, 0Ah
push 32h ; '2'
call sub_C82D
pop cx
call sub_C1A8
xor si, si
push 64h ; 'd'
call sub_C82D
pop cx
call sub_A44F
jmp short loc_C6B1
; ---------------------------------------------------------------------------
loc_C6A1:
push 0
call sub_A265
pop cx
push 1
call sub_C82D
pop cx
loc_C6B1:
mov ax, si
inc si
cmp ax, 7D0h
jge short loc_C6C7
cmp byte_12BA0, 0
jnz short loc_C6C7
cmp byte_12B9C, 0
jz short loc_C6A1
loc_C6C7:
push 1
call _graph_accesspage_func
pop cx
call sub_D349
push 0
call _graph_accesspage_func
pop cx
push 32h ; '2'
call sub_C842
mov byte_134C3, 7
mov byte_134C4, 0Fh
mov byte_134C5, 7
mov byte_134CF, 0Fh
mov byte_134D0, 0Fh
mov byte_134D1, 0Fh
push ds
push offset unk_134BA
call sub_D1D9
add sp, 4
cmp byte_14021, 1
jnz short loc_C71C
push ds
push offset aKo ; "<22><>"
push 32h ; '2'
jmp short loc_C722
; ---------------------------------------------------------------------------
loc_C71C:
push ds
push offset aKo_0 ; "<22><>"
push 3Ch ; '<'
loc_C722:
push word ptr _score+2
push word ptr _score
call sub_B5D8
add sp, 0Ah
call sub_A076
pop si
leave
retf
sub_C446 endp
fuuin_03_TEXT ends
; ===========================================================================
; Segment type: Pure code
fuuin_04_TEXT segment byte public 'CODE' use16
assume cs:fuuin_04_TEXT
;org 0Ah
assume es:nothing, ss:nothing, ds:_DATA, fs:nothing, gs:nothing
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_C73A proc far
arg_0 = word ptr 6
arg_2 = word ptr 8
push bp
mov bp, sp
push 1
call _graph_accesspage_func
pop cx
push [bp+arg_2]
push [bp+arg_0]
call sub_EB39
add sp, 4
pop bp
retf 4
sub_C73A endp
EGC_START_COPY_DEF 1, far
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_C78B proc far
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 6
enter 0Ah, 0
push si
push di
call egc_start_copy_1
mov ax, [bp+arg_0]
mov bx, 2
cwd
idiv bx
imul dx, 140h
mov [bp+var_2], dx
mov ax, [bp+arg_0]
cwd
sub ax, dx
sar ax, 1
imul ax, 0C8h
mov [bp+var_4], ax
mov ax, [bp+var_2]
sar ax, 3
mov dx, [bp+var_4]
shl dx, 6
add ax, dx
mov dx, [bp+var_4]
shl dx, 4
add ax, dx
mov si, ax
mov di, 1F54h
mov [bp+var_8], 0
jmp short loc_C81D
; ---------------------------------------------------------------------------
loc_C7D6:
mov [bp+var_6], 0
jmp short loc_C80E
; ---------------------------------------------------------------------------
loc_C7DD:
push 1
call _graph_accesspage_func
pop cx
les bx, _VRAM_PLANE_B
add bx, si
mov ax, es:[bx]
mov [bp+var_A], ax
push 0
call _graph_accesspage_func
pop cx
les bx, _VRAM_PLANE_B
add bx, di
mov ax, [bp+var_A]
mov es:[bx], ax
add si, 2
add di, 2
inc [bp+var_6]
loc_C80E:
cmp [bp+var_6], 14h
jl short loc_C7DD
add si, 28h ; '('
add di, 28h ; '('
inc [bp+var_8]
loc_C81D:
cmp [bp+var_8], 0C8h ; '<27>'
jl short loc_C7D6
call egc_off
pop di
pop si
leave
retf
sub_C78B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_C82D proc far
arg_0 = word ptr 6
push bp
mov bp, sp
mov _vsync_frame, 0
loc_C836:
mov ax, _vsync_frame
cmp ax, [bp+arg_0]
jnb short loc_C840
jmp short loc_C836
; ---------------------------------------------------------------------------
loc_C840:
pop bp
retf
sub_C82D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_C842 proc far
var_2 = word ptr -2
arg_0 = word ptr 6
enter 2, 0
push si
push di
cmp [bp+arg_0], 0
jge short loc_C855
mov [bp+arg_0], 0
jmp short loc_C861
; ---------------------------------------------------------------------------
loc_C855:
cmp [bp+arg_0], 0C8h ; '<27>'
jle short loc_C861
mov [bp+arg_0], 0C8h ; '<27>'
loc_C861:
mov si, 1
jmp loc_C8F1
; ---------------------------------------------------------------------------
loc_C867:
xor di, di
jmp short loc_C8E8
; ---------------------------------------------------------------------------
loc_C86B:
cmp [bp+arg_0], 64h ; 'd'
jle short loc_C8A9
mov bx, si
imul bx, 3
mov al, [bx+di+170Ah]
cbw
mov dx, 0Fh
sub dx, ax
mov [bp+var_2], dx
mov ax, [bp+arg_0]
add ax, 0FF9Ch
imul [bp+var_2]
mov [bp+var_2], ax
mov bx, 64h ; 'd'
mov ax, [bp+var_2]
cwd
idiv bx
mov [bp+var_2], ax
mov bx, si
imul bx, 3
mov al, [bx+di+170Ah]
add al, byte ptr [bp+var_2]
jmp short loc_C8DE
; ---------------------------------------------------------------------------
loc_C8A9:
mov bx, si
imul bx, 3
mov al, [bx+di+170Ah]
cbw
mov [bp+var_2], ax
mov ax, 64h ; 'd'
sub ax, [bp+arg_0]
imul [bp+var_2]
mov [bp+var_2], ax
mov bx, 64h ; 'd'
mov ax, [bp+var_2]
cwd
idiv bx
mov [bp+var_2], ax
mov bx, si
imul bx, 3
mov al, [bx+di+170Ah]
mov dl, byte ptr [bp+var_2]
neg dl
add al, dl
loc_C8DE:
mov bx, si
imul bx, 3
mov [bx+di+0A1Ah], al
inc di
loc_C8E8:
cmp di, 3
jge short loc_C8F0
jmp loc_C86B
; ---------------------------------------------------------------------------
loc_C8F0:
inc si
loc_C8F1:
cmp si, 10h
jge short loc_C8F9
jmp loc_C867
; ---------------------------------------------------------------------------
loc_C8F9:
mov ax, [bp+arg_0]
mov word_13507, ax
push ds
push offset unk_134BA
call sub_D1D9
add sp, 4
pop di
pop si
leave
retf 2
sub_C842 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_C911 proc far
arg_0 = word ptr 6
push bp
mov bp, sp
push si
push di
mov di, 64h ; 'd'
xor si, si
jmp short loc_C92E
; ---------------------------------------------------------------------------
loc_C91D:
sub di, 5
push di
call sub_C842
push [bp+arg_0]
call sub_C82D
pop cx
inc si
loc_C92E:
cmp si, 14h
jl short loc_C91D
pop di
pop si
pop bp
retf 2
sub_C911 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_C939 proc far
arg_0 = word ptr 6
push bp
mov bp, sp
push si
push di
xor di, di
xor si, si
jmp short loc_C955
; ---------------------------------------------------------------------------
loc_C944:
add di, 5
push di
call sub_C842
push [bp+arg_0]
call sub_C82D
pop cx
inc si
loc_C955:
cmp si, 14h
jl short loc_C944
pop di
pop si
pop bp
retf 2
sub_C939 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_C960 proc far
arg_0 = word ptr 6
push bp
mov bp, sp
push si
push di
mov di, 64h ; 'd'
xor si, si
jmp short loc_C97D
; ---------------------------------------------------------------------------
loc_C96C:
add di, 5
push di
call sub_C842
push [bp+arg_0]
call sub_C82D
pop cx
inc si
loc_C97D:
cmp si, 14h
jl short loc_C96C
pop di
pop si
pop bp
retf 2
sub_C960 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_C988 proc far
arg_0 = word ptr 6
push bp
mov bp, sp
push si
push di
mov di, 0C8h ; '<27>'
xor si, si
jmp short loc_C9A5
; ---------------------------------------------------------------------------
loc_C994:
sub di, 5
push di
call sub_C842
push [bp+arg_0]
call sub_C82D
pop cx
inc si
loc_C9A5:
cmp si, 14h
jl short loc_C994
pop di
pop si
pop bp
retf 2
sub_C988 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_C9B0 proc far
arg_0 = dword ptr 6
arg_4 = word ptr 0Ah
arg_6 = word ptr 0Ch
arg_8 = word ptr 0Eh
push bp
mov bp, sp
push si
xor si, si
jmp short loc_C9E4
; ---------------------------------------------------------------------------
loc_C9B8:
les bx, [bp+arg_0]
add bx, si
mov al, es:[bx]
cbw
push ax ; arglist
push ds
push offset aC ; "%c"
push 0Fh ; int
push [bp+arg_6] ; int
mov ax, si
shl ax, 3
add ax, [bp+arg_8]
push ax ; int
call sub_E9E4
add sp, 0Ch
push 3
call sub_C82D
pop cx
inc si
loc_C9E4:
cmp si, [bp+arg_4]
jl short loc_C9B8
pop si
pop bp
retf 0Ah
sub_C9B0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_C9EE proc far
arg_0 = dword ptr 6
arg_4 = word ptr 0Ah
arg_6 = word ptr 0Ch
arg_8 = word ptr 0Eh
push bp
mov bp, sp
push si
xor si, si
jmp short loc_CA36
; ---------------------------------------------------------------------------
loc_C9F6:
mov bx, si
add bx, bx
mov es, word ptr [bp+arg_0+2]
add bx, word ptr [bp+arg_0]
mov al, es:[bx+1]
cbw
push ax
mov ax, si
add ax, ax
les bx, [bp+arg_0]
add bx, ax
mov al, es:[bx]
cbw
push ax ; arglist
push ds
push offset aCC_5 ; "%c%c"
push 0Fh ; int
push [bp+arg_6] ; int
mov ax, si
shl ax, 4
add ax, [bp+arg_8]
push ax ; int
call sub_E9E4
add sp, 0Eh
push 3
call sub_C82D
pop cx
inc si
loc_CA36:
cmp si, [bp+arg_4]
jl short loc_C9F6
pop si
pop bp
retf 0Ah
sub_C9EE endp
fuuin_04_TEXT ends
; ===========================================================================
; Segment type: Pure code
fuuin_05_TEXT segment byte public 'CODE' use16
extern _vsync_init:proc
extern _vsync_exit:proc
extern _z_vsync_wait:proc
fuuin_05_TEXT ends
; ===========================================================================
fuuin_06_TEXT segment byte public 'CODE' use16
extern _z_text_init:proc
extern _z_text_25line:proc
extern _z_text_setcursor:proc
extern _z_text_clear:proc
extern _z_text_show:proc
extern _z_text_print:proc
fuuin_06_TEXT ends
; ===========================================================================
; Segment type: Pure code
fuuin_07_TEXT segment byte public 'CODE' use16
assume cs:fuuin_07_TEXT
;org 7
assume es:nothing, ss:nothing, ds:_DATA, fs:nothing, gs:nothing
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; void __interrupt sub_CE87()
sub_CE87 proc far
push eax
push ebx
push ecx
push edx
push es
push ds
push esi
push edi
push bp
mov bp, seg _DATA
mov ds, bp
mov bp, sp
pop bp
pop edi
pop esi
pop ds
pop es
pop edx
pop ecx
pop ebx
pop eax
iret
sub_CE87 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_CEAD proc far
push bp
mov bp, sp
cmp byte_134B8, 0
jnz short loc_CEFE
mov byte_134B8, 1
push 6 ; interruptno
call _getvect
pop cx
mov word ptr off_14150+2, dx
mov word ptr off_14150, ax
push seg fuuin_07_TEXT
push offset sub_CF87 ; isr
push 6 ; interruptno
call _setvect
add sp, 6
call _vsync_init
call _z_text_init
call egc_start
call graph_start
call respal_create
call sub_E984
call vram_planes_set
loc_CEFE:
pop bp
retf
sub_CEAD endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_CF00 proc far
push bp
mov bp, sp
cmp byte_134B8, 1
jnz short loc_CF19
mov byte_134B8, 0
nopcall sub_CF48
call respal_free
loc_CF19:
pop bp
retf
sub_CF00 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_CF1B proc far
push bp
mov bp, sp
cmp byte_134B8, 1
jnz short loc_CF46
nopcall sub_CF48
call _z_text_25line
push 0
call _z_text_setcursor
pop cx
call _z_text_clear
call _z_text_show
mov byte_134B8, 0
loc_CF46:
pop bp
retf
sub_CF1B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_CF48 proc far
push bp
mov bp, sp
mov byte_134B8, 0
push seg fuuin_07_TEXT
push offset sub_CE87 ; isr
push 6 ; interruptno
call _setvect
call _vsync_exit
call _z_text_clear
call sub_D4FE
call sub_D094
call egc_start
pushd [off_14150] ; isr
push 6 ; interruptno
call _setvect
add sp, 0Ch
pop bp
retf
sub_CF48 endp
; =============== S U B R O U T I N E =======================================
; Attributes: noreturn bp-based frame
; void __interrupt sub_CF87()
sub_CF87 proc far
push eax
push ebx
push ecx
push edx
push es
push ds
push esi
push edi
push bp
mov bp, seg _DATA
mov ds, bp
mov bp, sp
call sub_CF00
push 0 ; status
call _exit
; ---------------------------------------------------------------------------
pop cx
pop bp
pop edi
pop esi
pop ds
pop es
pop edx
pop ecx
pop ebx
pop eax
iret
sub_CF87 endp
; =============== S U B R O U T I N E =======================================
; Attributes: noreturn bp-based frame
sub_CFB9 proc far
@@buffer = byte ptr -104h
var_4 = word ptr -4
var_2 = word ptr -2
_format = dword ptr 6
_arglist = byte ptr 0Ah
enter 104h, 0
lea ax, [bp+_arglist]
mov [bp+var_2], ss
mov [bp+var_4], ax
push [bp+var_2]
push ax ; arglist
pushd [bp+_format] ; format
push ss
lea ax, [bp+@@buffer]
push ax ; buffer
call _vsprintf
call sub_CF00
push ss
lea ax, [bp+@@buffer]
push ax
call _z_text_print
push 1 ; status
call _exit
; ---------------------------------------------------------------------------
add sp, 12h
leave
retf
sub_CFB9 endp
fuuin_07_TEXT ends
; ===========================================================================
; Segment type: Pure code
fuuin_08_TEXT segment byte public 'CODE' use16
assume cs:fuuin_08_TEXT
;org 4
assume es:nothing, ss:nothing, ds:_DATA, fs:nothing, gs:nothing
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_CFF4 proc far
inregs = REGS ptr -10h
enter 10h, 0
nopcall sub_D0E0
mov byte ptr [bp+inregs+1], 42h ; 'B'
mov byte ptr [bp+inregs+5], 0C0h ; '<27>'
push ss
lea ax, [bp+inregs]
push ax ; outregs
push ss
push ax ; inregs
push 18h ; intno
call _int86
mov dx, 6Ah ; 'j'
mov al, 1
out dx, al ; PC-98 GDC (6a):
;
push ds
push offset unk_134BA
nopcall sub_D1D9
push 0
nopcall _graph_accesspage_func
push 0
nopcall _graph_showpage_func
add sp, 12h
nopcall sub_D300
mov dx, 68h ; 'h'
mov al, 0Ah
out dx, al
GRCG_OFF_CLOBBERING dx
nopcall sub_D0C5
leave
retf
sub_CFF4 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_D04B proc far
inregs = REGS ptr -10h
enter 10h, 0
nopcall sub_D0E0
mov byte ptr [bp+inregs+1], 42h ; 'B'
mov byte ptr [bp+inregs+5], 0C0h ; '<27>'
push ss
lea ax, [bp+inregs]
push ax ; outregs
push ss
push ax ; inregs
push 18h ; intno
call _int86
mov dx, 6Ah ; 'j'
mov al, 1
out dx, al ; PC-98 GDC (6a):
;
push 0
nopcall _graph_accesspage_func
push 0
nopcall _graph_showpage_func
add sp, 0Eh
mov dx, 68h ; 'h'
mov al, 0Ah
out dx, al
GRCG_OFF_CLOBBERING dx
nopcall sub_D0C5
leave
retf
sub_D04B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_D094 proc far
push bp
mov bp, sp
nopcall sub_D431
nopcall sub_D300
push 0
nopcall _graph_accesspage_func
push 0
nopcall _graph_showpage_func
add sp, 4
nopcall sub_D0C5
mov dx, 68h ; 'h'
mov al, 0Ah
out dx, al
GRCG_OFF_CLOBBERING dx
pop bp
retf
sub_D094 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_D0C5 proc far
inregs = REGS ptr -10h
enter 10h, 0
mov byte ptr [bp+inregs+1], 40h
push ss
lea ax, [bp+inregs]
push ax ; outregs
push ss
push ax ; inregs
push 18h ; intno
call _int86
add sp, 0Ah
leave
retf
sub_D0C5 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_D0E0 proc far
inregs = REGS ptr -10h
enter 10h, 0
mov byte ptr [bp+inregs+1], 41h ; 'A'
push ss
lea ax, [bp+inregs]
push ax ; outregs
push ss
push ax ; inregs
push 18h ; intno
call _int86
add sp, 0Ah
leave
retf
sub_D0E0 endp
include th01/hardware/graph_page.asm
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_D119 proc far
arg_0 = byte ptr 6
arg_2 = byte ptr 8
arg_4 = byte ptr 0Ah
arg_6 = byte ptr 0Ch
push bp
mov bp, sp
mov dx, 0A8h ; '<27>'
mov al, [bp+arg_0]
out dx, al
mov dx, 0AAh ; '<27>'
mov al, [bp+arg_4]
out dx, al
mov dx, 0ACh ; '<27>'
mov al, [bp+arg_2]
out dx, al
mov dx, 0AEh ; '<27>'
mov al, [bp+arg_6]
out dx, al
pop bp
retf
sub_D119 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
public _grcg_setcolor_rmw
_grcg_setcolor_rmw proc far
arg_0 = word ptr 6
push bp
mov bp, sp
mov bx, [bp+arg_0]
GRCG_SETMODE_CLOBBERING dx, GC_RMW
test bl, 1
jz short loc_D14F
mov al, 0FFh
jmp short loc_D151
; ---------------------------------------------------------------------------
loc_D14F:
mov al, 0
loc_D151:
mov dx, 7Eh ; '~'
out dx, al
test bl, 2
jz short loc_D15E
mov al, 0FFh
jmp short loc_D160
; ---------------------------------------------------------------------------
loc_D15E:
mov al, 0
loc_D160:
mov dx, 7Eh ; '~'
out dx, al
test bl, 4
jz short loc_D16D
mov al, 0FFh
jmp short loc_D16F
; ---------------------------------------------------------------------------
loc_D16D:
mov al, 0
loc_D16F:
mov dx, 7Eh ; '~'
out dx, al
test bl, 8
jz short loc_D17C
mov al, 0FFh
jmp short loc_D17E
; ---------------------------------------------------------------------------
loc_D17C:
mov al, 0
loc_D17E:
mov dx, 7Eh ; '~'
out dx, al
pop bp
retf
_grcg_setcolor_rmw endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_D184 proc far
arg_0 = word ptr 6
push bp
mov bp, sp
mov bx, [bp+arg_0]
GRCG_SETMODE_CLOBBERING dx, GC_TDW
test bl, 1
jz short loc_D199
mov al, 0FFh
jmp short loc_D19B
; ---------------------------------------------------------------------------
loc_D199:
mov al, 0
loc_D19B:
mov dx, 7Eh ; '~'
out dx, al
test bl, 2
jz short loc_D1A8
mov al, 0FFh
jmp short loc_D1AA
; ---------------------------------------------------------------------------
loc_D1A8:
mov al, 0
loc_D1AA:
mov dx, 7Eh ; '~'
out dx, al
test bl, 4
jz short loc_D1B7
mov al, 0FFh
jmp short loc_D1B9
; ---------------------------------------------------------------------------
loc_D1B7:
mov al, 0
loc_D1B9:
mov dx, 7Eh ; '~'
out dx, al
test bl, 8
jz short loc_D1C6
mov al, 0FFh
jmp short loc_D1C8
; ---------------------------------------------------------------------------
loc_D1C6:
mov al, 0
loc_D1C8:
mov dx, 7Eh ; '~'
out dx, al
pop bp
retf
sub_D184 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
public _grcg_off_func
_grcg_off_func proc far
push bp
mov bp, sp
GRCG_OFF_CLOBBERING dx
pop bp
retf
_grcg_off_func endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_D1D9 proc far
arg_0 = dword ptr 6
push bp
mov bp, sp
push si
xor si, si
jmp short loc_D21A
; ---------------------------------------------------------------------------
loc_D1E1:
mov ax, si
imul ax, 3
les bx, [bp+arg_0]
add bx, ax
mov al, es:[bx+2]
cbw
push ax
mov ax, si
imul ax, 3
mov bx, word ptr [bp+arg_0]
add bx, ax
mov al, es:[bx+1]
cbw
push ax
mov ax, si
imul ax, 3
mov bx, word ptr [bp+arg_0]
add bx, ax
mov al, es:[bx]
cbw
push ax
push si
nopcall sub_D222
add sp, 8
inc si
loc_D21A:
cmp si, 10h
jl short loc_D1E1
pop si
pop bp
retf
sub_D1D9 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_D222 proc far
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
push si
mov si, [bp+arg_0]
cmp [bp+arg_2], 0Fh
jge short loc_D234
mov ax, [bp+arg_2]
jmp short loc_D237
; ---------------------------------------------------------------------------
loc_D234:
mov ax, 0Fh
loc_D237:
or ax, ax
jle short loc_D24B
cmp [bp+arg_2], 0Fh
jge short loc_D246
mov ax, [bp+arg_2]
jmp short loc_D249
; ---------------------------------------------------------------------------
loc_D246:
mov ax, 0Fh
loc_D249:
jmp short loc_D24D
; ---------------------------------------------------------------------------
loc_D24B:
xor ax, ax
loc_D24D:
mov [bp+arg_2], ax
cmp [bp+arg_4], 0Fh
jge short loc_D25B
mov ax, [bp+arg_4]
jmp short loc_D25E
; ---------------------------------------------------------------------------
loc_D25B:
mov ax, 0Fh
loc_D25E:
or ax, ax
jle short loc_D272
cmp [bp+arg_4], 0Fh
jge short loc_D26D
mov ax, [bp+arg_4]
jmp short loc_D270
; ---------------------------------------------------------------------------
loc_D26D:
mov ax, 0Fh
loc_D270:
jmp short loc_D274
; ---------------------------------------------------------------------------
loc_D272:
xor ax, ax
loc_D274:
mov [bp+arg_4], ax
cmp [bp+arg_6], 0Fh
jge short loc_D282
mov ax, [bp+arg_6]
jmp short loc_D285
; ---------------------------------------------------------------------------
loc_D282:
mov ax, 0Fh
loc_D285:
or ax, ax
jle short loc_D299
cmp [bp+arg_6], 0Fh
jge short loc_D294
mov ax, [bp+arg_6]
jmp short loc_D297
; ---------------------------------------------------------------------------
loc_D294:
mov ax, 0Fh
loc_D297:
jmp short loc_D29B
; ---------------------------------------------------------------------------
loc_D299:
xor ax, ax
loc_D29B:
mov [bp+arg_6], ax
mov bx, si
imul bx, 3
mov al, byte ptr [bp+arg_2]
mov [bx+0A1Ah], al
mov bx, si
imul bx, 3
mov al, byte ptr [bp+arg_4]
mov [bx+0A1Bh], al
mov bx, si
imul bx, 3
mov al, byte ptr [bp+arg_6]
mov [bx+0A1Ch], al
push [bp+arg_6]
push [bp+arg_4]
push [bp+arg_2]
push si
call sub_D119
add sp, 8
pop si
pop bp
retf
sub_D222 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_D2D6 proc far
_s = dword ptr -4
enter 4, 0
mov [bp+_s], 0A8000000h
push 0
call _grcg_setcolor_rmw
push 7D0000FFh ; c
pushd [bp+_s] ; s
call _memset
add sp, 0Ah
call _grcg_off_func
leave
retf
sub_D2D6 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_D300 proc far
push bp
mov bp, sp
push 2
call _graph_accesspage_func
call sub_D2D6
push 2
call _graph_accesspage_func
add sp, 4
call sub_D2D6
pop bp
retf
sub_D300 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_D31C proc far
_s = dword ptr -4
arg_0 = byte ptr 6
enter 4, 0
mov [bp+_s], 0A8000000h
mov al, [bp+arg_0]
cbw
push ax
call _grcg_setcolor_rmw
push 7D0000FFh ; c
pushd [bp+_s] ; s
call _memset
add sp, 0Ah
call _grcg_off_func
leave
retf
sub_D31C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_D349 proc far
var_152 = byte ptr -152h
var_102 = byte ptr -102h
var_B2 = byte ptr -0B2h
dest = byte ptr -62h
@@page_other = byte ptr -11h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
_src = dword ptr -4
enter 152h, 0
push si
mov [bp+_src], 0A8000000h
mov [bp+var_8], 0B0000000h
mov [bp+var_C], 0B8000000h
mov [bp+var_10], 0E0000000h
mov al, _graph_page
xor al, 1
mov [bp+@@page_other], al
xor si, si
jmp loc_D426
; ---------------------------------------------------------------------------
loc_D37B:
push 50h ; 'P' ; n
pushd [bp+_src] ; src
push ss
lea ax, [bp+dest]
push ax ; dest
call _memcpy
push 50h ; 'P' ; n
pushd [bp+var_8] ; src
push ss
lea ax, [bp+var_B2]
push ax ; dest
call _memcpy
push 50h ; 'P' ; n
pushd [bp+var_C] ; src
push ss
lea ax, [bp+var_102]
push ax ; dest
call _memcpy
push 50h ; 'P' ; n
pushd [bp+var_10] ; src
push ss
lea ax, [bp+var_152]
push ax ; dest
call _memcpy
graph_accesspage [bp+@@page_other]
push 50h ; 'P' ; n
push ss
lea ax, [bp+dest]
push ax ; src
pushd [bp+_src] ; dest
call _memcpy
add sp, 32h
push 50h ; 'P' ; n
push ss
lea ax, [bp+var_B2]
push ax ; src
pushd [bp+var_8] ; dest
call _memcpy
push 50h ; 'P' ; n
push ss
lea ax, [bp+var_102]
push ax ; src
pushd [bp+var_C] ; dest
call _memcpy
push 50h ; 'P' ; n
push ss
lea ax, [bp+var_152]
push ax ; src
pushd [bp+var_10] ; dest
call _memcpy
add sp, 1Eh
graph_accesspage _graph_page
add word ptr [bp+_src], 50h ; 'P'
add word ptr [bp+var_8], 50h ; 'P'
add word ptr [bp+var_C], 50h ; 'P'
add word ptr [bp+var_10], 50h ; 'P'
inc si
loc_D426:
cmp si, 190h
jl loc_D37B
pop si
leave
retf
sub_D349 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_D431 proc far
push bp
mov bp, sp
push si
xor si, si
jmp short loc_D447
; ---------------------------------------------------------------------------
loc_D439:
pushd 0
push 0
push si
call sub_D119
add sp, 8
inc si
loc_D447:
cmp si, 10h
jl short loc_D439
pop si
pop bp
retf
sub_D431 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_D44F proc far
_s = byte ptr -32h
var_31 = byte ptr -31h
var_30 = byte ptr -30h
var_2 = word ptr -2
enter 32h, 0
push si
push di
push 300000h ; c
push ss
lea ax, [bp+_s]
push ax ; s
call _memset
add sp, 8
mov [bp+var_2], 0
jmp loc_D4F2
; ---------------------------------------------------------------------------
loc_D470:
call _z_vsync_wait
xor si, si
jmp short loc_D4E2
; ---------------------------------------------------------------------------
loc_D479:
xor di, di
jmp short loc_D4A7
; ---------------------------------------------------------------------------
loc_D47D:
mov bx, si
imul bx, 3
add bx, di
lea ax, [bp+_s]
add bx, ax
mov al, ss:[bx]
mov bx, si
imul bx, 3
cmp al, [bx+di+0A1Ah]
jge short loc_D4A6
mov bx, si
imul bx, 3
add bx, di
lea ax, [bp+_s]
add bx, ax
inc byte ptr ss:[bx]
loc_D4A6:
inc di
loc_D4A7:
cmp di, 3
jl short loc_D47D
mov bx, si
imul bx, 3
lea ax, [bp+var_30]
add bx, ax
mov al, ss:[bx]
cbw
push ax
mov bx, si
imul bx, 3
lea ax, [bp+var_31]
add bx, ax
mov al, ss:[bx]
cbw
push ax
mov bx, si
imul bx, 3
lea ax, [bp+_s]
add bx, ax
mov al, ss:[bx]
cbw
push ax
push si
call sub_D119
add sp, 8
inc si
loc_D4E2:
cmp si, 10h
jl short loc_D479
push 0Ah
call _delay
pop cx
inc [bp+var_2]
loc_D4F2:
cmp [bp+var_2], 10h
jl loc_D470
pop di
pop si
leave
retf
sub_D44F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_D4FE proc far
dest = byte ptr -32h
var_31 = byte ptr -31h
var_30 = byte ptr -30h
var_2 = word ptr -2
enter 32h, 0
push si
push di
push 30h ; '0' ; n
push ds
push offset unk_134BA ; src
push ss
lea ax, [bp+dest]
push ax ; dest
call _memcpy
add sp, 0Ah
mov [bp+var_2], 0
jmp short loc_D595
; ---------------------------------------------------------------------------
loc_D51E:
call _z_vsync_wait
xor si, si
jmp short loc_D585
; ---------------------------------------------------------------------------
loc_D527:
xor di, di
jmp short loc_D54A
; ---------------------------------------------------------------------------
loc_D52B:
mov bx, si
imul bx, 3
add bx, di
lea ax, [bp+dest]
add bx, ax
cmp byte ptr ss:[bx], 0
jle short loc_D549
mov bx, si
imul bx, 3
add bx, di
add bx, ax
dec byte ptr ss:[bx]
loc_D549:
inc di
loc_D54A:
cmp di, 3
jl short loc_D52B
mov bx, si
imul bx, 3
lea ax, [bp+var_30]
add bx, ax
mov al, ss:[bx]
cbw
push ax
mov bx, si
imul bx, 3
lea ax, [bp+var_31]
add bx, ax
mov al, ss:[bx]
cbw
push ax
mov bx, si
imul bx, 3
lea ax, [bp+dest]
add bx, ax
mov al, ss:[bx]
cbw
push ax
push si
call sub_D119
add sp, 8
inc si
loc_D585:
cmp si, 10h
jl short loc_D527
push 0Ah
call _delay
pop cx
inc [bp+var_2]
loc_D595:
cmp [bp+var_2], 10h
jl short loc_D51E
pop di
pop si
leave
retf
sub_D4FE endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_D59F proc far
push bp
mov bp, sp
push si
xor si, si
jmp short loc_D5B8
; ---------------------------------------------------------------------------
loc_D5A7:
push 0F000Fh
push 0Fh
push si
call sub_D119
add sp, 8
inc si
loc_D5B8:
cmp si, 10h
jl short loc_D5A7
pop si
pop bp
retf
sub_D59F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_D5C0 proc far
_s = byte ptr -32h
var_31 = byte ptr -31h
var_30 = byte ptr -30h
var_2 = word ptr -2
enter 32h, 0
push si
push di
push 30000Fh ; c
push ss
lea ax, [bp+_s]
push ax ; s
call _memset
add sp, 8
mov [bp+var_2], 0
jmp loc_D663
; ---------------------------------------------------------------------------
loc_D5E1:
call _z_vsync_wait
xor si, si
jmp short loc_D653
; ---------------------------------------------------------------------------
loc_D5EA:
xor di, di
jmp short loc_D618
; ---------------------------------------------------------------------------
loc_D5EE:
mov bx, si
imul bx, 3
add bx, di
lea ax, [bp+_s]
add bx, ax
mov al, ss:[bx]
mov bx, si
imul bx, 3
cmp al, [bx+di+0A1Ah]
jle short loc_D617
mov bx, si
imul bx, 3
add bx, di
lea ax, [bp+_s]
add bx, ax
dec byte ptr ss:[bx]
loc_D617:
inc di
loc_D618:
cmp di, 3
jl short loc_D5EE
mov bx, si
imul bx, 3
lea ax, [bp+var_30]
add bx, ax
mov al, ss:[bx]
cbw
push ax
mov bx, si
imul bx, 3
lea ax, [bp+var_31]
add bx, ax
mov al, ss:[bx]
cbw
push ax
mov bx, si
imul bx, 3
lea ax, [bp+_s]
add bx, ax
mov al, ss:[bx]
cbw
push ax
push si
call sub_D119
add sp, 8
inc si
loc_D653:
cmp si, 10h
jl short loc_D5EA
push 0Ah
call _delay
pop cx
inc [bp+var_2]
loc_D663:
cmp [bp+var_2], 10h
jl loc_D5E1
pop di
pop si
leave
retf
sub_D5C0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_D66F proc far
dest = byte ptr -32h
var_31 = byte ptr -31h
var_30 = byte ptr -30h
var_2 = word ptr -2
enter 32h, 0
push si
push di
push 30h ; '0' ; n
push ds
push offset unk_134BA ; src
push ss
lea ax, [bp+dest]
push ax ; dest
call _memcpy
add sp, 0Ah
mov [bp+var_2], 0
jmp short loc_D706
; ---------------------------------------------------------------------------
loc_D68F:
call _z_vsync_wait
xor si, si
jmp short loc_D6F6
; ---------------------------------------------------------------------------
loc_D698:
xor di, di
jmp short loc_D6BB
; ---------------------------------------------------------------------------
loc_D69C:
mov bx, si
imul bx, 3
add bx, di
lea ax, [bp+dest]
add bx, ax
cmp byte ptr ss:[bx], 0Fh
jge short loc_D6BA
mov bx, si
imul bx, 3
add bx, di
add bx, ax
inc byte ptr ss:[bx]
loc_D6BA:
inc di
loc_D6BB:
cmp di, 3
jl short loc_D69C
mov bx, si
imul bx, 3
lea ax, [bp+var_30]
add bx, ax
mov al, ss:[bx]
cbw
push ax
mov bx, si
imul bx, 3
lea ax, [bp+var_31]
add bx, ax
mov al, ss:[bx]
cbw
push ax
mov bx, si
imul bx, 3
lea ax, [bp+dest]
add bx, ax
mov al, ss:[bx]
cbw
push ax
push si
call sub_D119
add sp, 8
inc si
loc_D6F6:
cmp si, 10h
jl short loc_D698
push 0Ah
call _delay
pop cx
inc [bp+var_2]
loc_D706:
cmp [bp+var_2], 10h
jl short loc_D68F
pop di
pop si
leave
retf
sub_D66F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_D710 proc far
push bp
mov bp, sp
push si
xor si, si
jmp short loc_D742
; ---------------------------------------------------------------------------
loc_D718:
mov bx, si
imul bx, 3
mov al, [bx+0A1Ch]
cbw
push ax
mov bx, si
imul bx, 3
mov al, [bx+0A1Bh]
cbw
push ax
mov bx, si
imul bx, 3
mov al, [bx+0A1Ah]
cbw
push ax
push si
call sub_D119
add sp, 8
inc si
loc_D742:
cmp si, 10h
jl short loc_D718
pop si
pop bp
retf
sub_D710 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_D74A proc far
arg_0 = word ptr 6
arg_2 = word ptr 8
arg_4 = word ptr 0Ah
push bp
mov bp, sp
push [bp+arg_4]
call _grcg_setcolor_rmw
pop cx
mov bx, [bp+arg_2]
imul bx, 50h
mov ax, [bp+arg_0]
sar ax, 3
add bx, ax
mov ax, 0A800h
mov cl, byte ptr [bp+arg_0]
and cl, 7
mov dx, 80h
sar dx, cl
mov es, ax
assume es:nothing
mov es:[bx], dl
call _grcg_off_func
pop bp
retf
sub_D74A endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_D77C proc far
var_2 = word ptr -2
arg_0 = word ptr 6
arg_2 = word ptr 8
enter 2, 0
push si
push di
mov ax, [bp+arg_2]
imul ax, 50h
mov dx, [bp+arg_0]
sar dx, 3
add ax, dx
mov di, ax
mov cl, byte ptr [bp+arg_0]
and cl, 7
mov ax, 80h
sar ax, cl
mov [bp+var_2], ax
xor si, si
mov ax, 0A800h
mov es, ax
mov al, es:[di]
cbw
test [bp+var_2], ax
jz short loc_D7B3
or si, 1
loc_D7B3:
mov ax, 0B000h
mov es, ax
assume es:nothing
mov al, es:[di]
cbw
test [bp+var_2], ax
jz short loc_D7C4
or si, 2
loc_D7C4:
mov ax, 0B800h
mov es, ax
assume es:nothing
mov al, es:[di]
cbw
test [bp+var_2], ax
jz short loc_D7D5
or si, 4
loc_D7D5:
mov ax, 0E000h
mov es, ax
assume es:nothing
mov al, es:[di]
cbw
test [bp+var_2], ax
jz short loc_D7E6
or si, 8
loc_D7E6:
mov ax, si
pop di
pop si
leave
retf
sub_D77C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_D7EC proc far
var_A = dword ptr -0Ah
var_6 = byte ptr -6
var_5 = byte ptr -5
var_4 = word ptr -4
var_2 = word ptr -2
arg_0 = word ptr 6
arg_2 = word ptr 8
arg_4 = word ptr 0Ah
arg_6 = word ptr 0Ch
enter 0Ah, 0
push si
push di
mov di, [bp+arg_4]
mov ax, [bp+arg_0]
cmp ax, [bp+arg_2]
jle short loc_D80C
mov [bp+var_4], ax
mov ax, [bp+arg_2]
mov [bp+arg_0], ax
mov ax, [bp+var_4]
mov [bp+arg_2], ax
loc_D80C:
cmp [bp+arg_0], 0
jge short loc_D81F
cmp [bp+arg_2], 0
jl loc_D8FB
mov [bp+arg_0], 0
loc_D81F:
cmp [bp+arg_2], 27Fh
jle short loc_D834
cmp [bp+arg_0], 27Fh
jg loc_D8FB
mov [bp+arg_2], 27Fh
loc_D834:
mov ax, [bp+arg_2]
mov word_14154, ax
mov word_14156, di
mov ax, di
imul ax, 50h
push ax
mov ax, [bp+arg_0]
mov bx, 8
cwd
idiv bx
pop dx
add dx, ax
mov word ptr [bp+var_A+2], 0A800h
mov word ptr [bp+var_A], dx
mov ax, [bp+arg_2]
cwd
idiv bx
push ax
mov ax, [bp+arg_0]
cwd
idiv bx
pop dx
sub dx, ax
mov [bp+var_2], dx
mov cl, byte ptr [bp+arg_0]
and cl, 7
mov ax, 0FFh
sar ax, cl
mov [bp+var_5], al
mov al, byte ptr [bp+arg_2]
and al, 7
mov cl, 7
sub cl, al
mov al, 0FFh
shl al, cl
mov [bp+var_6], al
cmp byte_134EA, 0
jnz short loc_D898
push [bp+arg_6]
call _grcg_setcolor_rmw
pop cx
loc_D898:
cmp byte_134EA, 0
jz short loc_D8B6
push 1
mov ax, 280h
sub ax, [bp+arg_0]
push ax
push di
push [bp+arg_0]
call _egc_copy_rect_1_to_0
add sp, 8
jmp short loc_D8F0
; ---------------------------------------------------------------------------
loc_D8B6:
cmp [bp+var_2], 0
jnz short loc_D8C7
mov al, [bp+var_5]
and al, [bp+var_6]
les bx, [bp+var_A]
assume es:nothing
jmp short loc_D8ED
; ---------------------------------------------------------------------------
loc_D8C7:
les bx, [bp+var_A]
mov al, [bp+var_5]
mov es:[bx], al
mov si, 1
jmp short loc_D8DF
; ---------------------------------------------------------------------------
loc_D8D5:
les bx, [bp+var_A]
add bx, si
mov byte ptr es:[bx], 0FFh
inc si
loc_D8DF:
cmp si, [bp+var_2]
jl short loc_D8D5
les bx, [bp+var_A]
add bx, [bp+var_2]
mov al, [bp+var_6]
loc_D8ED:
mov es:[bx], al
loc_D8F0:
cmp byte_134EA, 0
jnz short loc_D8FB
call _grcg_off_func
loc_D8FB:
pop di
pop si
leave
retf
sub_D7EC endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_D8FF proc far
var_8 = word ptr -8
var_6 = word ptr -6
var_4 = word ptr -4
var_2 = word ptr -2
arg_0 = word ptr 6
arg_2 = word ptr 8
arg_4 = word ptr 0Ah
arg_6 = word ptr 0Ch
enter 8, 0
push si
push di
mov si, [bp+arg_2]
mov di, [bp+arg_4]
cmp si, di
jle short loc_D917
mov [bp+var_4], si
mov si, di
mov di, [bp+var_4]
loc_D917:
or si, si
jge short loc_D923
or di, di
jl loc_D9BA
xor si, si
loc_D923:
cmp di, 18Fh
jle short loc_D934
cmp si, 18Fh
jg loc_D9BA
mov di, 18Fh
loc_D934:
mov ax, [bp+arg_0]
mov word_14154, ax
mov word_14156, di
cmp byte_134EA, 0
jz short loc_D95A
mov ax, di
sub ax, si
push ax
push 10h
push si
push [bp+arg_0]
call _egc_copy_rect_1_to_0
add sp, 8
jmp short loc_D9BA
; ---------------------------------------------------------------------------
loc_D95A:
mov ax, [bp+arg_0]
sar ax, 3
mov dx, si
shl dx, 6
add ax, dx
mov dx, si
shl dx, 4
add ax, dx
mov [bp+var_8], ax
mov cl, byte ptr [bp+arg_0]
and cl, 7
mov ax, word_134EB
shr ax, cl
mov [bp+var_6], ax
mov al, byte ptr [bp+arg_0]
and al, 7
mov cl, 10h
sub cl, al
mov ax, word_134EB
shl ax, cl
or [bp+var_6], ax
push [bp+arg_6]
call _grcg_setcolor_rmw
pop cx
mov [bp+var_2], si
jmp short loc_D9B1
; ---------------------------------------------------------------------------
loc_D99D:
les bx, _VRAM_PLANE_B
add bx, [bp+var_8]
mov ax, [bp+var_6]
mov es:[bx], ax
add [bp+var_8], 50h ; 'P'
inc [bp+var_2]
loc_D9B1:
cmp [bp+var_2], di
jle short loc_D99D
call _grcg_off_func
loc_D9BA:
pop di
pop si
leave
retf
sub_D8FF endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_D9BE proc far
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
mov byte_134EA, 1
push 7
push [bp+arg_6]
push [bp+arg_4]
push [bp+arg_2]
push [bp+arg_0]
nopcall sub_DA0B
add sp, 0Ah
mov byte_134EA, 0
pop bp
retf
sub_D9BE endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_D9E3 proc far
arg_0 = word ptr 6
arg_2 = word ptr 8
arg_4 = word ptr 0Ah
arg_6 = word ptr 0Ch
arg_8 = word ptr 0Eh
arg_A = word ptr 10h
push bp
mov bp, sp
mov ax, [bp+arg_A]
mov word_134EB, ax
push [bp+arg_8]
push [bp+arg_6]
push [bp+arg_4]
push [bp+arg_2]
push [bp+arg_0]
nopcall sub_DA0B
add sp, 0Ah
mov word_134EB, 80h
pop bp
retf
sub_D9E3 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_DA0B proc far
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = word ptr -18h
var_16 = word ptr -16h
var_14 = word ptr -14h
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 = word ptr -8
var_6 = word ptr -6
var_4 = word ptr -4
var_2 = word ptr -2
arg_0 = word ptr 6
arg_2 = word ptr 8
arg_4 = word ptr 0Ah
arg_6 = word ptr 0Ch
arg_8 = word ptr 0Eh
enter 28h, 0
push si
push di
mov di, [bp+arg_2]
cmp byte_134EA, 0
jnz short loc_DA31
mov ax, [bp+arg_0]
cmp ax, [bp+arg_4]
jnz short loc_DA31
push [bp+arg_8]
push [bp+arg_6]
push di
push ax
call sub_D8FF
jmp short loc_DA4B
; ---------------------------------------------------------------------------
loc_DA31:
cmp byte_134EA, 0
jnz short loc_DA51
cmp di, [bp+arg_6]
jnz short loc_DA51
push [bp+arg_8]
push di
push [bp+arg_4]
push [bp+arg_0]
call sub_D7EC
loc_DA4B:
add sp, 8
jmp loc_DF36
; ---------------------------------------------------------------------------
loc_DA51:
mov ax, [bp+arg_0]
cmp ax, [bp+arg_4]
jle short loc_DA74
mov [bp+var_10], ax
mov ax, [bp+arg_4]
mov [bp+arg_0], ax
mov ax, [bp+var_10]
mov [bp+arg_4], ax
mov [bp+var_10], di
mov di, [bp+arg_6]
mov ax, [bp+var_10]
mov [bp+arg_6], ax
loc_DA74:
cmp [bp+arg_0], 0
jge short loc_DAB2
cmp [bp+arg_4], 0
jl loc_DF36
mov ax, [bp+arg_6]
sub ax, di
mov bx, [bp+arg_4]
sub bx, [bp+arg_0]
cwd
idiv bx
mov [bp+var_18], ax
fild [bp+var_18]
xor ax, ax
sub ax, [bp+arg_0]
mov [bp+var_18], ax
fild [bp+var_18]
fmulp st(1), st
call ftol@
add di, ax
mov [bp+arg_0], 0
loc_DAB2:
cmp [bp+arg_4], 27Fh
jle short loc_DAF4
cmp [bp+arg_0], 27Fh
jg loc_DF36
mov ax, [bp+arg_6]
sub ax, di
mov bx, [bp+arg_4]
sub bx, [bp+arg_0]
cwd
idiv bx
mov [bp+var_18], ax
fild [bp+var_18]
mov ax, [bp+arg_4]
add ax, 0FD81h
mov [bp+var_18], ax
fild [bp+var_18]
fmulp st(1), st
call ftol@
sub [bp+arg_6], ax
mov [bp+arg_4], 27Fh
loc_DAF4:
or di, di
jge short loc_DB2D
cmp [bp+arg_6], 0
jl loc_DF36
mov ax, [bp+arg_4]
sub ax, [bp+arg_0]
mov bx, [bp+arg_6]
sub bx, di
cwd
idiv bx
mov [bp+var_18], ax
fild [bp+var_18]
xor ax, ax
sub ax, di
mov [bp+var_18], ax
fild [bp+var_18]
fmulp st(1), st
call ftol@
add [bp+arg_0], ax
xor di, di
loc_DB2D:
cmp [bp+arg_6], 18Fh
jle short loc_DB6E
cmp di, 18Fh
jg loc_DF36
mov ax, [bp+arg_4]
sub ax, [bp+arg_0]
mov bx, [bp+arg_6]
sub bx, di
cwd
idiv bx
mov [bp+var_18], ax
fild [bp+var_18]
mov ax, [bp+arg_6]
add ax, 0FE71h
mov [bp+var_18], ax
fild [bp+var_18]
fmulp st(1), st
call ftol@
sub [bp+arg_4], ax
mov [bp+arg_6], 18Fh
loc_DB6E:
cmp [bp+arg_6], 0
jge short loc_DBA5
mov ax, [bp+arg_4]
sub ax, [bp+arg_0]
mov bx, [bp+arg_6]
sub bx, di
cwd
idiv bx
mov [bp+var_18], ax
fild [bp+var_18]
xor ax, ax
sub ax, [bp+arg_6]
mov [bp+var_18], ax
fild [bp+var_18]
fmulp st(1), st
call ftol@
add [bp+arg_4], ax
mov [bp+arg_6], 0
loc_DBA5:
cmp di, 18Fh
jle short loc_DBD9
mov ax, [bp+arg_4]
sub ax, [bp+arg_0]
mov bx, [bp+arg_6]
sub bx, di
cwd
idiv bx
mov [bp+var_18], ax
fild [bp+var_18]
lea ax, [di-18Fh]
mov [bp+var_18], ax
fild [bp+var_18]
fmulp st(1), st
call ftol@
sub [bp+arg_0], ax
mov di, 18Fh
loc_DBD9:
mov ax, [bp+arg_4]
mov word_14154, ax
mov ax, [bp+arg_6]
mov word_14156, ax
mov ax, [bp+arg_0]
mov [bp+var_4], ax
mov [bp+var_6], di
cmp di, [bp+arg_6]
jge short loc_DBF8
mov ax, 1
jmp short loc_DBFB
; ---------------------------------------------------------------------------
loc_DBF8:
mov ax, 0FFFFh
loc_DBFB:
mov [bp+var_E], ax
mov ax, [bp+arg_4]
sub ax, [bp+arg_0]
mov [bp+var_8], ax
mov ax, [bp+arg_6]
sub ax, di
imul [bp+var_E]
mov [bp+var_A], ax
mov [bp+var_16], 0
mov ax, [bp+var_4]
sar ax, 3
mov [bp+var_12], ax
mov ax, [bp+var_6]
mov [bp+var_14], ax
cmp byte_134EA, 0
jnz short loc_DC35
push [bp+arg_8]
call _grcg_setcolor_rmw
pop cx
loc_DC35:
mov ax, [bp+var_8]
cmp ax, [bp+var_A]
jle loc_DD69
sar ax, 1
mov [bp+var_C], ax
mov [bp+var_2], 0
jmp loc_DD53
; ---------------------------------------------------------------------------
loc_DC4C:
mov ax, [bp+var_4]
sar ax, 3
cmp ax, [bp+var_12]
jnz short loc_DC61
mov ax, [bp+var_14]
cmp ax, [bp+var_6]
jz loc_DD16
loc_DC61:
mov ax, [bp+var_14]
imul ax, 50h
add ax, [bp+var_12]
mov si, ax
cmp byte_134EA, 0
jnz short loc_DC87
les bx, _VRAM_PLANE_B
add bx, si
mov ax, [bp+var_16]
mov es:[bx], ax
mov [bp+var_16], 0
jmp loc_DD07
; ---------------------------------------------------------------------------
loc_DC87:
dec si
push 1
call _graph_accesspage_func
les bx, _VRAM_PLANE_B
add bx, si
mov eax, es:[bx]
mov [bp+var_28], eax
les bx, _VRAM_PLANE_R
add bx, si
mov eax, es:[bx]
mov [bp+var_24], eax
les bx, _VRAM_PLANE_G
add bx, si
mov eax, es:[bx]
mov [bp+var_20], eax
les bx, _VRAM_PLANE_E
add bx, si
mov eax, es:[bx]
mov [bp+var_1C], eax
push 0
call _graph_accesspage_func
add sp, 4
les bx, _VRAM_PLANE_B
add bx, si
mov eax, [bp+var_28]
mov es:[bx], eax
les bx, _VRAM_PLANE_R
add bx, si
mov eax, [bp+var_24]
mov es:[bx], eax
les bx, _VRAM_PLANE_G
add bx, si
mov eax, [bp+var_20]
mov es:[bx], eax
les bx, _VRAM_PLANE_E
add bx, si
mov eax, [bp+var_1C]
mov es:[bx], eax
loc_DD07:
mov ax, [bp+var_6]
mov [bp+var_14], ax
mov ax, [bp+var_4]
sar ax, 3
mov [bp+var_12], ax
loc_DD16:
mov cl, byte ptr [bp+var_4]
and cl, 7
mov ax, word_134EB
shr ax, cl
or [bp+var_16], ax
mov al, byte ptr [bp+var_4]
and al, 7
mov cl, 10h
sub cl, al
mov ax, word_134EB
shl ax, cl
or [bp+var_16], ax
mov ax, [bp+var_A]
sub [bp+var_C], ax
inc [bp+var_4]
cmp [bp+var_C], 0
jge short loc_DD50
mov ax, [bp+var_8]
add [bp+var_C], ax
mov ax, [bp+var_E]
add [bp+var_6], ax
loc_DD50:
inc [bp+var_2]
loc_DD53:
mov ax, [bp+var_2]
cmp ax, [bp+var_8]
jle loc_DC4C
cmp byte_134EA, 0
jz loc_DF2B
jmp loc_DE93
; ---------------------------------------------------------------------------
loc_DD69:
mov ax, [bp+var_A]
sar ax, 1
mov [bp+var_C], ax
mov [bp+var_2], 0
jmp loc_DE80
; ---------------------------------------------------------------------------
loc_DD79:
mov ax, [bp+var_4]
sar ax, 3
cmp ax, [bp+var_12]
jnz short loc_DD8E
mov ax, [bp+var_14]
cmp ax, [bp+var_6]
jz loc_DE43
loc_DD8E:
mov ax, [bp+var_14]
imul ax, 50h
add ax, [bp+var_12]
mov si, ax
cmp byte_134EA, 0
jnz short loc_DDB4
les bx, _VRAM_PLANE_B
add bx, si
mov ax, [bp+var_16]
mov es:[bx], ax
mov [bp+var_16], 0
jmp loc_DE34
; ---------------------------------------------------------------------------
loc_DDB4:
dec si
push 1
call _graph_accesspage_func
les bx, _VRAM_PLANE_B
add bx, si
mov eax, es:[bx]
mov [bp+var_28], eax
les bx, _VRAM_PLANE_R
add bx, si
mov eax, es:[bx]
mov [bp+var_24], eax
les bx, _VRAM_PLANE_G
add bx, si
mov eax, es:[bx]
mov [bp+var_20], eax
les bx, _VRAM_PLANE_E
add bx, si
mov eax, es:[bx]
mov [bp+var_1C], eax
push 0
call _graph_accesspage_func
add sp, 4
les bx, _VRAM_PLANE_B
add bx, si
mov eax, [bp+var_28]
mov es:[bx], eax
les bx, _VRAM_PLANE_R
add bx, si
mov eax, [bp+var_24]
mov es:[bx], eax
les bx, _VRAM_PLANE_G
add bx, si
mov eax, [bp+var_20]
mov es:[bx], eax
les bx, _VRAM_PLANE_E
add bx, si
mov eax, [bp+var_1C]
mov es:[bx], eax
loc_DE34:
mov ax, [bp+var_6]
mov [bp+var_14], ax
mov ax, [bp+var_4]
sar ax, 3
mov [bp+var_12], ax
loc_DE43:
mov cl, byte ptr [bp+var_4]
and cl, 7
mov ax, word_134EB
shr ax, cl
or [bp+var_16], ax
mov al, byte ptr [bp+var_4]
and al, 7
mov cl, 10h
sub cl, al
mov ax, word_134EB
shl ax, cl
or [bp+var_16], ax
mov ax, [bp+var_8]
sub [bp+var_C], ax
mov ax, [bp+var_E]
add [bp+var_6], ax
cmp [bp+var_C], 0
jge short loc_DE7D
mov ax, [bp+var_A]
add [bp+var_C], ax
inc [bp+var_4]
loc_DE7D:
inc [bp+var_2]
loc_DE80:
mov ax, [bp+var_2]
cmp ax, [bp+var_A]
jle loc_DD79
cmp byte_134EA, 0
jz loc_DF2B
loc_DE93:
mov ax, [bp+var_4]
sar ax, 3
mov dx, [bp+var_6]
shl dx, 6
add ax, dx
mov dx, [bp+var_6]
shl dx, 4
add ax, dx
dec ax
mov si, ax
push 1
call _graph_accesspage_func
les bx, _VRAM_PLANE_B
add bx, si
mov eax, es:[bx]
mov [bp+var_28], eax
les bx, _VRAM_PLANE_R
add bx, si
mov eax, es:[bx]
mov [bp+var_24], eax
les bx, _VRAM_PLANE_G
add bx, si
mov eax, es:[bx]
mov [bp+var_20], eax
les bx, _VRAM_PLANE_E
add bx, si
mov eax, es:[bx]
mov [bp+var_1C], eax
push 0
call _graph_accesspage_func
add sp, 4
les bx, _VRAM_PLANE_B
add bx, si
mov eax, [bp+var_28]
mov es:[bx], eax
les bx, _VRAM_PLANE_R
add bx, si
mov eax, [bp+var_24]
mov es:[bx], eax
les bx, _VRAM_PLANE_G
add bx, si
mov eax, [bp+var_20]
mov es:[bx], eax
les bx, _VRAM_PLANE_E
add bx, si
mov eax, [bp+var_1C]
mov es:[bx], eax
loc_DF2B:
cmp byte_134EA, 0
jnz short loc_DF36
call _grcg_off_func
loc_DF36:
pop di
pop si
leave
retf
sub_DA0B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_DF3A proc far
var_E = dword ptr -0Eh
var_A = byte ptr -0Ah
var_9 = byte ptr -9
var_8 = word ptr -8
var_6 = word ptr -6
var_4 = word ptr -4
var_2 = word ptr -2
arg_0 = word ptr 6
arg_2 = word ptr 8
arg_4 = word ptr 0Ah
arg_6 = word ptr 0Ch
arg_8 = word ptr 0Eh
enter 0Eh, 0
push si
push di
mov si, [bp+arg_2]
mov di, [bp+arg_6]
mov ax, [bp+arg_0]
cmp ax, [bp+arg_4]
jle short loc_DF5D
mov [bp+var_8], ax
mov ax, [bp+arg_4]
mov [bp+arg_0], ax
mov ax, [bp+var_8]
mov [bp+arg_4], ax
loc_DF5D:
cmp si, di
jle short loc_DF69
mov [bp+var_8], si
mov si, di
mov di, [bp+var_8]
loc_DF69:
cmp [bp+arg_0], 0
jge short loc_DF7C
cmp [bp+arg_4], 0
jl loc_E051
mov [bp+arg_0], 0
loc_DF7C:
cmp [bp+arg_4], 27Fh
jle short loc_DF91
cmp [bp+arg_0], 27Fh
jg loc_E051
mov [bp+arg_4], 27Fh
loc_DF91:
or si, si
jge short loc_DF9D
or di, di
jl loc_E051
xor si, si
loc_DF9D:
cmp di, 18Fh
jle short loc_DFAE
cmp si, 18Fh
jg loc_E051
mov di, 18Fh
loc_DFAE:
push [bp+arg_8]
call _grcg_setcolor_rmw
pop cx
mov ax, si
imul ax, 50h
mov dx, [bp+arg_0]
sar dx, 3
add ax, dx
mov word ptr [bp+var_E+2], 0A800h
mov word ptr [bp+var_E], ax
mov [bp+var_4], si
jmp short loc_E048
; ---------------------------------------------------------------------------
loc_DFD0:
mov ax, [bp+arg_4]
sar ax, 3
mov dx, [bp+arg_0]
sar dx, 3
sub ax, dx
mov [bp+var_6], ax
mov cl, byte ptr [bp+arg_0]
and cl, 7
mov ax, 0FFh
sar ax, cl
mov [bp+var_9], al
mov al, byte ptr [bp+arg_4]
and al, 7
mov cl, 7
sub cl, al
mov al, 0FFh
shl al, cl
mov [bp+var_A], al
cmp [bp+var_6], 0
jnz short loc_E010
mov al, [bp+var_9]
and al, [bp+var_A]
les bx, [bp+var_E]
jmp short loc_E03E
; ---------------------------------------------------------------------------
loc_E010:
les bx, [bp+var_E]
mov al, [bp+var_9]
mov es:[bx], al
mov [bp+var_2], 1
jmp short loc_E02D
; ---------------------------------------------------------------------------
loc_E020:
les bx, [bp+var_E]
add bx, [bp+var_2]
mov byte ptr es:[bx], 0FFh
inc [bp+var_2]
loc_E02D:
mov ax, [bp+var_2]
cmp ax, [bp+var_6]
jl short loc_E020
les bx, [bp+var_E]
add bx, [bp+var_6]
mov al, [bp+var_A]
loc_E03E:
mov es:[bx], al
add word ptr [bp+var_E], 50h ; 'P'
inc [bp+var_4]
loc_E048:
cmp [bp+var_4], di
jle short loc_DFD0
call _grcg_off_func
loc_E051:
pop di
pop si
leave
retf
sub_DF3A endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_E055 proc far
arg_0 = word ptr 6
arg_2 = word ptr 8
arg_4 = word ptr 0Ah
arg_6 = word ptr 0Ch
arg_8 = word ptr 0Eh
push bp
mov bp, sp
push si
push di
mov di, [bp+arg_0]
mov si, [bp+arg_8]
push si
push [bp+arg_2]
push [bp+arg_4]
push di
call sub_D7EC
push si
push [bp+arg_6]
push [bp+arg_2]
push di
call sub_D8FF
push si
push [bp+arg_6]
push [bp+arg_2]
push [bp+arg_4]
call sub_D8FF
push si
push [bp+arg_6]
push [bp+arg_4]
push di
call sub_D7EC
add sp, 20h
pop di
pop si
pop bp
retf
sub_E055 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_E099 proc far
arg_0 = word ptr 6
arg_2 = dword ptr 8
push bp
mov bp, sp
push si
push di
xor cx, cx
mov ax, [bp+arg_0]
mov bx, 40h
cwd
idiv bx
mov bx, 8
cwd
idiv bx
mov si, dx
jmp short loc_E0FB
; ---------------------------------------------------------------------------
loc_E0B3:
les bx, [bp+arg_2]
mov al, es:[bx]
mov ah, 0
mov bx, ax
test __mbctype+1[bx], 4
jz short loc_E0F3
mov bx, word ptr [bp+arg_2]
mov al, es:[bx]
cbw
shl ax, 8
mov dl, es:[bx]
mov dh, 0
add ax, dx
mov di, ax
inc word ptr [bp+arg_2]
inc word ptr [bp+arg_2]
cmp di, 8540h
jb short loc_E0E9
cmp di, 869Eh
jbe short loc_E0EE
loc_E0E9:
add cx, 10h
jmp short loc_E0F9
; ---------------------------------------------------------------------------
loc_E0EE:
add cx, 8
jmp short loc_E0F9
; ---------------------------------------------------------------------------
loc_E0F3:
add cx, 8
inc word ptr [bp+arg_2]
loc_E0F9:
add cx, si
loc_E0FB:
les bx, [bp+arg_2]
cmp byte ptr es:[bx], 0
jnz short loc_E0B3
mov ax, cx
sub ax, si
pop di
pop si
pop bp
retf
sub_E099 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_E10C proc far
var_3A = byte ptr -3Ah
var_1A = word ptr -1Ah
var_18 = word ptr -18h
var_16 = word ptr -16h
var_14 = word ptr -14h
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 = word ptr 6
arg_2 = word ptr 8
arg_4 = word ptr 0Ah
arg_6 = dword ptr 0Ch
enter 3Ah, 0
push si
push di
mov si, [bp+arg_0]
mov ax, [bp+arg_4]
mov bx, 10h
cwd
idiv bx
mov bx, 4
cwd
idiv bx
mov [bp+var_E], dx
mov ax, [bp+arg_4]
mov bx, 40h
cwd
idiv bx
mov bx, 8
cwd
idiv bx
mov [bp+var_10], dx
mov ax, [bp+arg_4]
and ax, 200h
mov [bp+var_12], ax
mov ax, [bp+arg_4]
and ax, 400h
mov [bp+var_14], ax
mov ax, [bp+arg_4]
and ax, 800h
mov [bp+var_16], ax
cmp [bp+var_12], 0
jz short loc_E1AB
pushd [bp+arg_6]
push [bp+arg_4]
call sub_E099
add sp, 6
mov [bp+var_18], ax
cmp [bp+var_14], 0
jz short loc_E18E
push 0
mov ax, [bp+arg_2]
add ax, 11h
push ax
mov ax, si
add ax, [bp+var_18]
dec ax
push ax
push [bp+arg_2]
push si
call sub_DF3A
add sp, 0Ah
jmp short loc_E1C2
; ---------------------------------------------------------------------------
loc_E18E:
push 0
mov ax, [bp+arg_2]
add ax, 0Fh
push ax
mov ax, si
add ax, [bp+var_18]
dec ax
push ax
push [bp+arg_2]
push si
call sub_DF3A
add sp, 0Ah
jmp short loc_E1DA
; ---------------------------------------------------------------------------
loc_E1AB:
cmp [bp+var_14], 0
jz short loc_E1DA
pushd [bp+arg_6]
push [bp+arg_4]
call sub_E099
add sp, 6
mov [bp+var_18], ax
loc_E1C2:
push 7
mov ax, [bp+arg_2]
add ax, 11h
push ax
mov ax, si
add ax, [bp+var_18]
dec ax
push ax
push si
call sub_D7EC
add sp, 8
loc_E1DA:
push [bp+arg_4]
call _grcg_setcolor_rmw
pop cx
mov dx, 68h ; 'h'
mov al, 0Bh
out dx, al
jmp loc_E412
; ---------------------------------------------------------------------------
loc_E1EB:
mov ax, [bp+arg_2]
imul ax, 50h
push ax
mov ax, si
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, si
cwd
idiv bx
mov [bp+var_C], dx
les bx, [bp+arg_6]
mov al, es:[bx]
mov ah, 0
mov bx, ax
test __mbctype+1[bx], 4
jz short loc_E240
mov bx, word ptr [bp+arg_6]
mov al, es:[bx]
cbw
shl ax, 8
mov dl, es:[bx+1]
mov dh, 0
add ax, dx
push ax
call __mbcjmstojis
pop cx
mov [bp+var_2], ax
add word ptr [bp+arg_6], 2
jmp short loc_E286
; ---------------------------------------------------------------------------
loc_E240:
les bx, [bp+arg_6]
mov al, es:[bx]
mov ah, 0
mov bx, ax
test __mbctype+1[bx], 3
jz short loc_E25E
mov bx, word ptr [bp+arg_6]
mov al, es:[bx]
mov ah, 0
add ax, 2980h
jmp short loc_E279
; ---------------------------------------------------------------------------
loc_E25E:
les bx, [bp+arg_6]
mov al, es:[bx]
cbw
mov bx, ax
test byte ptr [bx+0EEBh], 5Eh
jz short loc_E27E
mov bx, word ptr [bp+arg_6]
mov al, es:[bx]
mov ah, 0
add ax, 2900h
loc_E279:
mov [bp+var_2], ax
jmp short loc_E283
; ---------------------------------------------------------------------------
loc_E27E:
mov [bp+var_2], 2B21h
loc_E283:
inc word ptr [bp+arg_6]
loc_E286:
mov al, byte ptr [bp+var_2]
and al, 0FFh
mov dx, 0A1h ; '<27>'
out dx, al
mov ax, [bp+var_2]
shr ax, 8
sub al, 20h ; ' '
mov dx, 0A3h ; '<27>'
out dx, al
cmp [bp+var_2], 2921h
jb short loc_E2E7
cmp [bp+var_2], 2B7Eh
ja short loc_E2E7
cmp si, 278h
jg loc_E41D
mov [bp+var_1A], 0
jmp short loc_E2DA
; ---------------------------------------------------------------------------
loc_E2B8:
mov al, byte ptr [bp+var_1A]
or al, 20h
mov dx, 0A5h ; '<27>'
out dx, al
mov dx, 0A9h ; '<27>'
in al, dx
mov ah, 0
shl ax, 8
mov bx, [bp+var_1A]
add bx, bx
lea dx, [bp+var_3A]
add bx, dx
mov ss:[bx], ax
inc [bp+var_1A]
loc_E2DA:
cmp [bp+var_1A], 10h
jl short loc_E2B8
mov [bp+var_A], 0
jmp short loc_E33D
; ---------------------------------------------------------------------------
loc_E2E7:
cmp si, 270h
jg loc_E41D
mov [bp+var_1A], 0
jmp short loc_E332
; ---------------------------------------------------------------------------
loc_E2F6:
mov al, byte ptr [bp+var_1A]
or al, 20h
mov dx, 0A5h ; '<27>'
out dx, al
mov dx, 0A9h ; '<27>'
in al, dx
mov ah, 0
shl ax, 8
mov bx, [bp+var_1A]
add bx, bx
lea dx, [bp+var_3A]
add bx, dx
mov ss:[bx], ax
mov dx, 0A5h ; '<27>'
mov al, byte ptr [bp+var_1A]
out dx, al
mov dx, 0A9h ; '<27>'
in al, dx
mov ah, 0
mov bx, [bp+var_1A]
add bx, bx
lea dx, [bp+var_3A]
add bx, dx
add ss:[bx], ax
inc [bp+var_1A]
loc_E332:
cmp [bp+var_1A], 10h
jl short loc_E2F6
mov [bp+var_A], 1
loc_E33D:
mov [bp+var_1A], 0
jmp loc_E3F9
; ---------------------------------------------------------------------------
loc_E345:
mov bx, [bp+var_1A]
add bx, bx
lea ax, [bp+var_3A]
add bx, ax
mov ax, ss:[bx]
mov [bp+var_4], ax
mov ax, [bp+var_E]
cmp ax, 1
jz short loc_E369
cmp ax, 2
jz short loc_E37F
cmp ax, 3
jz short loc_E375
jmp short loc_E395
; ---------------------------------------------------------------------------
loc_E369:
mov di, [bp+var_4]
mov ax, di
add ax, ax
or [bp+var_4], ax
jmp short loc_E395
; ---------------------------------------------------------------------------
loc_E375:
mov di, [bp+var_4]
mov ax, di
add ax, ax
or [bp+var_4], ax
loc_E37F:
mov di, [bp+var_4]
mov ax, di
add ax, ax
or [bp+var_4], ax
xor di, [bp+var_4]
mov ax, di
add ax, ax
not ax
and [bp+var_4], ax
loc_E395:
cmp [bp+var_16], 0
jz short loc_E3AC
cmp [bp+var_A], 0
jz short loc_E3A7
xor [bp+var_4], 0FFFFh
jmp short loc_E3AC
; ---------------------------------------------------------------------------
loc_E3A7:
xor [bp+var_4], 0FF00h
loc_E3AC:
cmp [bp+var_C], 0
jz short loc_E3DF
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_E3F2
; ---------------------------------------------------------------------------
loc_E3DF:
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_E3F2:
add word ptr [bp+var_8], 50h ; 'P'
inc [bp+var_1A]
loc_E3F9:
cmp [bp+var_1A], 10h
jl loc_E345
cmp [bp+var_A], 0
jz short loc_E40A
add si, 8
loc_E40A:
mov ax, [bp+var_10]
add ax, 8
add si, ax
loc_E412:
les bx, [bp+arg_6]
cmp byte ptr es:[bx], 0
jnz loc_E1EB
loc_E41D:
mov dx, 68h ; 'h'
mov al, 0Ah
out dx, al
call _grcg_off_func
pop di
pop si
leave
retf
sub_E10C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_E42B proc far
var_156 = byte ptr -156h
var_106 = byte ptr -106h
var_B6 = byte ptr -0B6h
dest = byte ptr -66h
var_16 = word ptr -16h
@@page_other = byte ptr -13h
var_12 = dword ptr -12h
var_E = dword ptr -0Eh
var_A = dword ptr -0Ah
_src = dword ptr -6
var_2 = word ptr -2
arg_0 = word ptr 6
arg_2 = word ptr 8
arg_4 = word ptr 0Ah
arg_6 = word ptr 0Ch
enter 156h, 0
push si
push di
mov di, [bp+arg_0]
mov ax, [bp+arg_4]
sub ax, di
mov bx, 8
cwd
idiv bx
mov si, ax
mov ax, [bp+arg_6]
sub ax, [bp+arg_2]
mov [bp+var_2], ax
mov [bp+_src], 0A8000000h
mov [bp+var_A], 0B0000000h
mov [bp+var_E], 0B8000000h
mov [bp+var_12], 0E0000000h
mov al, _graph_page
xor al, 1
mov [bp+@@page_other], al
mov ax, di
cwd
idiv bx
mov dx, [bp+arg_2]
imul dx, 50h
add ax, dx
add word ptr [bp+_src], ax
mov ax, di
cwd
idiv bx
mov dx, [bp+arg_2]
imul dx, 50h
add ax, dx
add word ptr [bp+var_A], ax
mov ax, di
cwd
idiv bx
mov dx, [bp+arg_2]
imul dx, 50h
add ax, dx
add word ptr [bp+var_E], ax
mov ax, di
cwd
idiv bx
mov dx, [bp+arg_2]
imul dx, 50h
add ax, dx
add word ptr [bp+var_12], ax
mov [bp+var_16], 0
jmp loc_E55F
; ---------------------------------------------------------------------------
loc_E4BA:
push si ; n
pushd [bp+_src] ; src
push ss
lea ax, [bp+dest]
push ax ; dest
call _memcpy
push si ; n
pushd [bp+var_A] ; src
push ss
lea ax, [bp+var_B6]
push ax ; dest
call _memcpy
push si ; n
pushd [bp+var_E] ; src
push ss
lea ax, [bp+var_106]
push ax ; dest
call _memcpy
push si ; n
pushd [bp+var_12] ; src
push ss
lea ax, [bp+var_156]
push ax ; dest
call _memcpy
graph_accesspage [bp+@@page_other]
push si ; n
push ss
lea ax, [bp+dest]
push ax ; src
pushd [bp+_src] ; dest
call _memcpy
add sp, 32h
push si ; n
push ss
lea ax, [bp+var_B6]
push ax ; src
pushd [bp+var_A] ; dest
call _memcpy
push si ; n
push ss
lea ax, [bp+var_106]
push ax ; src
pushd [bp+var_E] ; dest
call _memcpy
push si ; n
push ss
lea ax, [bp+var_156]
push ax ; src
pushd [bp+var_12] ; dest
call _memcpy
add sp, 1Eh
graph_accesspage _graph_page
add word ptr [bp+_src], 50h ; 'P'
add word ptr [bp+var_A], 50h ; 'P'
add word ptr [bp+var_E], 50h ; 'P'
add word ptr [bp+var_12], 50h ; 'P'
inc [bp+var_16]
loc_E55F:
mov ax, [bp+var_16]
cmp ax, [bp+var_2]
jl loc_E4BA
pop di
pop si
leave
retf
sub_E42B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_E56D proc far
var_164 = byte ptr -164h
var_114 = byte ptr -114h
var_C4 = byte ptr -0C4h
dest = byte ptr -74h
var_24 = word ptr -24h
var_22 = dword ptr -22h
var_1E = dword ptr -1Eh
var_1A = dword ptr -1Ah
var_16 = dword ptr -16h
var_12 = dword ptr -12h
var_E = dword ptr -0Eh
var_A = dword ptr -0Ah
_src = dword ptr -6
var_2 = word ptr -2
arg_0 = word ptr 6
arg_2 = word ptr 8
arg_4 = word ptr 0Ah
arg_6 = word ptr 0Ch
arg_8 = word ptr 0Eh
arg_A = word ptr 10h
@@page = byte ptr 12h
@@page_other = byte ptr 14h
enter 164h, 0
push si
push di
mov di, [bp+arg_0]
mov ax, [bp+arg_4]
sub ax, di
mov bx, 8
cwd
idiv bx
mov si, ax
mov ax, [bp+arg_6]
sub ax, [bp+arg_2]
mov [bp+var_2], ax
mov [bp+_src], 0A8000000h
mov [bp+var_A], 0B0000000h
mov [bp+var_E], 0B8000000h
mov [bp+var_12], 0E0000000h
mov [bp+var_16], 0A8000000h
mov [bp+var_1A], 0B0000000h
mov [bp+var_1E], 0B8000000h
mov [bp+var_22], 0E0000000h
mov ax, di
cwd
idiv bx
mov dx, [bp+arg_2]
imul dx, 50h
add ax, dx
add word ptr [bp+_src], ax
mov ax, di
cwd
idiv bx
mov dx, [bp+arg_2]
imul dx, 50h
add ax, dx
add word ptr [bp+var_A], ax
mov ax, di
cwd
idiv bx
mov dx, [bp+arg_2]
imul dx, 50h
add ax, dx
add word ptr [bp+var_E], ax
mov ax, di
cwd
idiv bx
mov dx, [bp+arg_2]
imul dx, 50h
add ax, dx
add word ptr [bp+var_12], ax
mov ax, [bp+arg_8]
cwd
idiv bx
mov dx, [bp+arg_A]
imul dx, 50h
add ax, dx
add word ptr [bp+var_16], ax
mov ax, [bp+arg_8]
cwd
idiv bx
mov dx, [bp+arg_A]
imul dx, 50h
add ax, dx
add word ptr [bp+var_1A], ax
mov ax, [bp+arg_8]
cwd
idiv bx
mov dx, [bp+arg_A]
imul dx, 50h
add ax, dx
add word ptr [bp+var_1E], ax
mov ax, [bp+arg_8]
cwd
idiv bx
mov dx, [bp+arg_A]
imul dx, 50h
add ax, dx
add word ptr [bp+var_22], ax
mov [bp+var_24], 0
jmp loc_E70D
; ---------------------------------------------------------------------------
loc_E658:
push si ; n
pushd [bp+_src] ; src
push ss
lea ax, [bp+dest]
push ax ; dest
call _memcpy
push si ; n
pushd [bp+var_A] ; src
push ss
lea ax, [bp+var_C4]
push ax ; dest
call _memcpy
push si ; n
pushd [bp+var_E] ; src
push ss
lea ax, [bp+var_114]
push ax ; dest
call _memcpy
push si ; n
pushd [bp+var_12] ; src
push ss
lea ax, [bp+var_164]
push ax ; dest
call _memcpy
graph_accesspage [bp+@@page_other]
push si ; n
push ss
lea ax, [bp+dest]
push ax ; src
pushd [bp+var_16] ; dest
call _memcpy
add sp, 32h
push si ; n
push ss
lea ax, [bp+var_C4]
push ax ; src
pushd [bp+var_1A] ; dest
call _memcpy
push si ; n
push ss
lea ax, [bp+var_114]
push ax ; src
pushd [bp+var_1E] ; dest
call _memcpy
push si ; n
push ss
lea ax, [bp+var_164]
push ax ; src
pushd [bp+var_22] ; dest
call _memcpy
add sp, 1Eh
graph_accesspage [bp+@@page]
add word ptr [bp+_src], 50h ; 'P'
add word ptr [bp+var_A], 50h ; 'P'
add word ptr [bp+var_E], 50h ; 'P'
add word ptr [bp+var_12], 50h ; 'P'
add word ptr [bp+var_16], 50h ; 'P'
add word ptr [bp+var_1A], 50h ; 'P'
add word ptr [bp+var_1E], 50h ; 'P'
add word ptr [bp+var_22], 50h ; 'P'
inc [bp+var_24]
loc_E70D:
mov ax, [bp+var_24]
cmp ax, [bp+var_2]
jl loc_E658
graph_accesspage _graph_page
pop di
pop si
leave
retf
sub_E56D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_E722 proc far
_s = byte ptr -34h
var_33 = byte ptr -33h
var_32 = byte ptr -32h
var_4 = word ptr -4
var_2 = word ptr -2
arg_0 = byte ptr 6
arg_2 = byte ptr 8
arg_4 = byte ptr 0Ah
arg_6 = dword ptr 0Ch
arg_A = word ptr 10h
enter 34h, 0
push si
push di
push 300000h ; c
push ss
lea ax, [bp+_s]
push ax ; s
call _memset
add sp, 8
xor di, di
jmp loc_E7C1
; ---------------------------------------------------------------------------
loc_E740:
mov ax, di
add ax, ax
les bx, [bp+arg_6]
add bx, ax
cmp word ptr es:[bx], 0
jnz short loc_E77E
mov bx, di
imul bx, 3
lea ax, [bp+_s]
add bx, ax
mov al, [bp+arg_0]
mov ss:[bx], al
mov bx, di
imul bx, 3
lea ax, [bp+var_33]
add bx, ax
mov al, [bp+arg_2]
mov ss:[bx], al
mov bx, di
imul bx, 3
lea ax, [bp+var_32]
add bx, ax
mov al, [bp+arg_4]
jmp short loc_E7BD
; ---------------------------------------------------------------------------
loc_E77E:
mov bx, di
imul bx, 3
lea ax, [bp+_s]
add bx, ax
mov si, di
imul si, 3
mov al, [si+0A1Ah]
mov ss:[bx], al
mov bx, di
imul bx, 3
lea ax, [bp+var_33]
add bx, ax
mov si, di
imul si, 3
mov al, [si+0A1Bh]
mov ss:[bx], al
mov bx, di
imul bx, 3
lea ax, [bp+var_32]
add bx, ax
mov si, di
imul si, 3
mov al, [si+0A1Ch]
loc_E7BD:
mov ss:[bx], al
inc di
loc_E7C1:
cmp di, 10h
jl loc_E740
xor di, di
jmp loc_E89E
; ---------------------------------------------------------------------------
loc_E7CD:
call _z_vsync_wait
mov [bp+var_2], 0
jmp loc_E88C
; ---------------------------------------------------------------------------
loc_E7DA:
mov [bp+var_4], 0
jmp short loc_E849
; ---------------------------------------------------------------------------
loc_E7E1:
mov bx, [bp+var_2]
imul bx, 3
add bx, [bp+var_4]
lea ax, [bp+_s]
add bx, ax
mov al, ss:[bx]
mov bx, [bp+var_2]
imul bx, 3
add bx, [bp+var_4]
cmp al, [bx+0A1Ah]
jz short loc_E846
mov bx, [bp+var_2]
imul bx, 3
add bx, [bp+var_4]
lea ax, [bp+_s]
add bx, ax
mov al, ss:[bx]
mov bx, [bp+var_2]
imul bx, 3
add bx, [bp+var_4]
cmp al, [bx+0A1Ah]
jge short loc_E825
mov al, 1
jmp short loc_E827
; ---------------------------------------------------------------------------
loc_E825:
mov al, 0FFh
loc_E827:
mov bx, [bp+var_2]
imul bx, 3
add bx, [bp+var_4]
lea dx, [bp+_s]
add bx, dx
add al, ss:[bx]
mov bx, [bp+var_2]
imul bx, 3
add bx, [bp+var_4]
add bx, dx
mov ss:[bx], al
loc_E846:
inc [bp+var_4]
loc_E849:
cmp [bp+var_4], 3
jl short loc_E7E1
mov bx, [bp+var_2]
imul bx, 3
lea ax, [bp+var_32]
add bx, ax
mov al, ss:[bx]
cbw
push ax
mov bx, [bp+var_2]
imul bx, 3
lea ax, [bp+var_33]
add bx, ax
mov al, ss:[bx]
cbw
push ax
mov bx, [bp+var_2]
imul bx, 3
lea ax, [bp+_s]
add bx, ax
mov al, ss:[bx]
cbw
push ax
push [bp+var_2]
call sub_D119
add sp, 8
inc [bp+var_2]
loc_E88C:
cmp [bp+var_2], 10h
jl loc_E7DA
push [bp+arg_A]
call _delay
pop cx
inc di
loc_E89E:
cmp di, 10h
jl loc_E7CD
pop di
pop si
leave
retf
sub_E722 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_E8A9 proc far
inregs = REGS ptr -22h
var_12 = byte ptr -12h
segp = SREGS ptr -8
enter 22h, 0
push si
push di
lea ax, [bp+var_12]
push ss
push ax
push ds
push offset aPal98Grb ; "pal98 grb"
mov cx, 0Ah
call SCOPY@
push ss
lea ax, [bp+segp]
push ax ; segp
call _segread
add sp, 4
mov byte ptr [bp+inregs+1], 52h ; 'R'
push ss
lea ax, [bp+segp]
push ax ; segregs
push ss
lea ax, [bp+inregs]
push ax ; outregs
push ss
push ax ; inregs
call _intdosx
add sp, 0Ch
mov bx, word ptr [bp+inregs+2]
sub bx, 2
mov es, [bp+segp+SREGS._es]
mov si, es:[bx]
loc_E8F1:
mov es, si
cmp word ptr es:1, 0
jz short loc_E91A
xor di, di
jmp short loc_E90B
; ---------------------------------------------------------------------------
loc_E8FF:
mov es, si
mov al, es:[di+10h]
cmp al, [bp+di+var_12]
jnz short loc_E910
inc di
loc_E90B:
cmp di, 0Ah
jl short loc_E8FF
loc_E910:
cmp di, 0Ah
jnz short loc_E91A
lea ax, [si+1]
jmp short loc_E933
; ---------------------------------------------------------------------------
loc_E91A:
mov es, si
cmp byte ptr es:0, 4Dh ; 'M'
jz short loc_E928
xor ax, ax
jmp short loc_E933
; ---------------------------------------------------------------------------
loc_E928:
mov es, si
mov ax, es:3
inc ax
add si, ax
jmp short loc_E8F1
; ---------------------------------------------------------------------------
loc_E933:
pop di
pop si
leave
retf
sub_E8A9 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_E937 proc far
var_4 = dword ptr -4
enter 4, 0
push si
push di
call sub_E8A9
mov di, ax
or di, di
jz short loc_E97D
mov word ptr [bp+var_4+2], di
mov word ptr [bp+var_4], 10h
xor si, si
jmp short loc_E974
; ---------------------------------------------------------------------------
loc_E953:
les bx, [bp+var_4]
mov al, es:[bx+2]
cbw
push ax
mov al, es:[bx]
cbw
push ax
mov al, es:[bx+1]
cbw
push ax
push si
call sub_D222
add sp, 8
add word ptr [bp+var_4], 3
inc si
loc_E974:
cmp si, 10h
jl short loc_E953
xor ax, ax
jmp short loc_E980
; ---------------------------------------------------------------------------
loc_E97D:
mov ax, 1
loc_E980:
pop di
pop si
leave
retf
sub_E937 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_E984 proc far
var_4 = dword ptr -4
enter 4, 0
push si
push di
call sub_E8A9
mov di, ax
or di, di
jz short loc_E9DD
mov word ptr [bp+var_4+2], di
mov word ptr [bp+var_4], 10h
xor si, si
jmp short loc_E9D4
; ---------------------------------------------------------------------------
loc_E9A0:
mov bx, si
imul bx, 3
mov al, [bx+0A1Bh]
les bx, [bp+var_4]
mov es:[bx], al
mov bx, si
imul bx, 3
mov al, [bx+0A1Ah]
mov bx, word ptr [bp+var_4]
mov es:[bx+1], al
mov bx, si
imul bx, 3
mov al, [bx+0A1Ch]
mov bx, word ptr [bp+var_4]
mov es:[bx+2], al
add word ptr [bp+var_4], 3
inc si
loc_E9D4:
cmp si, 10h
jl short loc_E9A0
xor ax, ax
jmp short loc_E9E0
; ---------------------------------------------------------------------------
loc_E9DD:
mov ax, 1
loc_E9E0:
pop di
pop si
leave
retf
sub_E984 endp
fuuin_08_TEXT ends
; ===========================================================================
; Segment type: Pure code
fuuin_09_TEXT segment byte public 'CODE' use16
assume cs:fuuin_09_TEXT
;org 4
assume es:nothing, ss:nothing, ds:_DATA, fs:nothing, gs:nothing
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl __far sub_E9E4(int, int, int, char *format, char arglist)
sub_E9E4 proc far
@@buffer = byte ptr -104h
var_4 = word ptr -4
var_2 = word ptr -2
arg_0 = word ptr 6
arg_2 = word ptr 8
arg_4 = word ptr 0Ah
_format = dword ptr 0Ch
_arglist = byte ptr 10h
enter 104h, 0
lea ax, [bp+_arglist]
mov [bp+var_2], ss
mov [bp+var_4], ax
push [bp+var_2]
push ax ; arglist
pushd [bp+_format] ; format
push ss
lea ax, [bp+@@buffer]
push ax ; buffer
call _vsprintf
push ss
lea ax, [bp+@@buffer]
push ax
push [bp+arg_4]
push [bp+arg_2]
push [bp+arg_0]
call sub_E10C
add sp, 16h
leave
retf
sub_E9E4 endp
fuuin_09_TEXT ends
; ===========================================================================
; Segment type: Pure code
fuuin_10_TEXT segment byte public 'CODE' use16
assume cs:fuuin_10_TEXT
;org 0Dh
assume es:nothing, ss:nothing, ds:_DATA, fs:nothing, gs:nothing
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_EA1D proc far
arg_0 = word ptr 6
arg_2 = word ptr 8
push bp
mov bp, sp
push [bp+arg_2]
push [bp+arg_0]
call file_ropen
or ax, ax
jnz short loc_EA34
mov ax, 1
pop bp
retf
; ---------------------------------------------------------------------------
loc_EA34:
push 0
push 12h
push 0
call file_seek
push ds
push offset unk_141AA
push 30h ; '0'
call file_read
push word_13507
call sub_C842
call file_close
xor ax, ax
pop bp
retf
sub_EA1D endp
; ---------------------------------------------------------------------------
pop bp
retf
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_EA5E proc far
arg_0 = word ptr 6
arg_2 = word ptr 8
push bp
mov bp, sp
push [bp+arg_2]
push [bp+arg_0]
call file_ropen
or ax, ax
jnz short loc_EA75
mov ax, 1
pop bp
retf
; ---------------------------------------------------------------------------
loc_EA75:
push 0
push 12h
push 0
call file_seek
push ds
push offset unk_141AA
push 30h ; '0'
call file_read
call file_close
xor ax, ax
pop bp
retf
sub_EA5E endp
; ---------------------------------------------------------------------------
pop bp
retf
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_EA96 proc far
stream = dword ptr 6
push bp
mov bp, sp
push si
push di
les bx, [bp+stream]
dec word ptr es:[bx]
jl short loc_EABB
les bx, [bp+stream]
mov dx, es:[bx+0Eh]
mov si, es:[bx+0Ch]
inc word ptr es:[bx+0Ch]
mov es, dx
mov al, es:[si]
mov ah, 0
jmp short loc_EAC9
; ---------------------------------------------------------------------------
loc_EABB:
push word ptr [bp+stream+2]
push word ptr [bp+stream] ; stream
call __fgetc
add sp, 4
loc_EAC9:
mov di, ax
les bx, [bp+stream]
dec word ptr es:[bx]
jl short loc_EAEB
les bx, [bp+stream]
mov dx, es:[bx+0Eh]
mov si, es:[bx+0Ch]
inc word ptr es:[bx+0Ch]
mov es, dx
mov al, es:[si]
mov ah, 0
jmp short loc_EAF9
; ---------------------------------------------------------------------------
loc_EAEB:
push word ptr [bp+stream+2]
push word ptr [bp+stream] ; stream
call __fgetc
add sp, 4
loc_EAF9:
shl ax, 8
add di, ax
mov ax, di
jmp short $+2
pop di
pop si
pop bp
retf
sub_EA96 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_EB06 proc far
arg_0 = dword ptr 6
push bp
mov bp, sp
xor dx, dx
jmp short loc_EB32
; ---------------------------------------------------------------------------
loc_EB0D:
xor cx, cx
jmp short loc_EB2C
; ---------------------------------------------------------------------------
loc_EB11:
mov ax, dx
imul ax, 3
les bx, [bp+arg_0]
add bx, ax
add bx, cx
mov al, es:[bx]
mov bx, dx
imul bx, 3
add bx, cx
mov [bx+170Ah], al
inc cx
loc_EB2C:
cmp cx, 3
jl short loc_EB11
inc dx
loc_EB32:
cmp dx, 10h
jl short loc_EB0D
pop bp
retf
sub_EB06 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_EB39 proc far
var_1 = byte ptr -1
arg_0 = word ptr 6
arg_2 = word ptr 8
enter 2, 0
push si
xor si, si
push 4000h
call @$bnwa$qui
pop cx
mov word_1464C, dx
mov off_1464A, ax
cmp word_134F8, 1
jnz short loc_EB5A
or si, 2
loc_EB5A:
cmp byte_13509, 1
jnz short loc_EB64
mov si, 0F40h
loc_EB64:
cmp word_134FA, 1
jnz short loc_EB8E
push si
push 64h ; 'd'
push 0
push 0
push 4000h
push word_1464C
push off_1464A
push [bp+arg_2]
push [bp+arg_0]
call _PiLoadL
add sp, 12h
mov [bp+var_1], al
loc_EB8E:
cmp word_134F8, 1
jnz short loc_EBA1
push [bp+arg_2]
push [bp+arg_0]
call sub_EA1D
jmp short loc_EBAB
; ---------------------------------------------------------------------------
loc_EBA1:
push [bp+arg_2]
push [bp+arg_0]
call sub_EA5E
loc_EBAB:
add sp, 4
push word_1464C
push off_1464A ; font
call @$bdla$qnv
add sp, 4
mov al, [bp+var_1]
cbw
jmp short $+2
pop si
leave
retf
sub_EB39 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_EBC7 proc far
var_2 = word ptr -2
arg_0 = word ptr 6
arg_2 = word ptr 8
enter 2, 0
mov word_134F8, 0
push [bp+arg_2]
push [bp+arg_0]
call sub_EB39
add sp, 4
mov [bp+var_2], ax
mov word_134F8, 1
mov ax, [bp+var_2]
leave
retf
sub_EBC7 endp
; ---------------------------------------------------------------------------
leave
retf
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_EBEE proc far
var_2 = word ptr -2
arg_0 = word ptr 6
arg_2 = word ptr 8
enter 2, 0
mov word_134FA, 0
push [bp+arg_2]
push [bp+arg_0]
call sub_EB39
add sp, 4
mov [bp+var_2], ax
mov word_134FA, 1
mov ax, [bp+var_2]
leave
retf
sub_EBEE endp
; ---------------------------------------------------------------------------
leave
retf
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_EC15 proc far
var_2 = word ptr -2
arg_0 = word ptr 6
arg_2 = word ptr 8
enter 2, 0
mov byte_13509, 1
mov word_134F8, 0
push [bp+arg_2]
push [bp+arg_0]
call sub_EB39
add sp, 4
mov [bp+var_2], ax
mov word_134F8, 1
mov byte_13509, 0
mov ax, [bp+var_2]
leave
retf
sub_EC15 endp
fuuin_10_TEXT ends
; ---------------------------------------------------------------------------
; ===========================================================================
fuuin_11_TEXT segment byte public 'CODE' use16
leave
retf
extern VRAM_PLANES_SET:proc
extern _egc_copy_rect_1_to_0:proc
fuuin_11_TEXT ends
; ===========================================================================
; Segment type: Pure code
fuuin_12_TEXT segment byte public 'CODE' use16
extern _graph_slow_2xscale_rect_1_to_0:proc
fuuin_12_TEXT ends
; ===========================================================================
; Segment type: Pure code
fuuin_13_TEXT segment byte public 'CODE' use16
assume cs:fuuin_13_TEXT
assume es:nothing, ss:nothing, ds:_DATA, fs:nothing, gs:nothing
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_EF80 proc far
s2 = byte ptr -1Ch
s1 = byte ptr -10h
var_4 = dword ptr -4
enter 1Ch, 0
push si
lea ax, [bp+s2]
push ss
push ax
push ds
push offset aMdrv2system ; "Mdrv2System"
mov cx, 0Ch
call SCOPY@
xor ax, ax
mov es, ax
movsx eax, word ptr es:[03CAh]
shl eax, 10h
add eax, 102h
shld edx, eax, 10h
mov word ptr [bp+var_4+2], dx
mov word ptr [bp+var_4], ax
xor si, si
jmp short loc_EFC6
; ---------------------------------------------------------------------------
loc_EFBA:
les bx, [bp+var_4]
assume es:nothing
add bx, si
mov al, es:[bx]
mov [bp+si+s1], al
inc si
loc_EFC6:
cmp si, 0Ch
jl short loc_EFBA
push ss
lea ax, [bp+s2]
push ax ; s2
push ss
lea ax, [bp+s1]
push ax ; s1
call _strcmp
add sp, 8
or ax, ax
jz short loc_EFE5
xor ax, ax
jmp short loc_EFE8
; ---------------------------------------------------------------------------
loc_EFE5:
mov ax, 1
loc_EFE8:
pop si
leave
retf
sub_EF80 endp
extern _mdrv2_bgm_load:proc
extern _mdrv2_se_load:proc
extern _mdrv2_bgm_play:proc
extern _mdrv2_bgm_stop:proc
extern _mdrv2_bgm_fade_out_nonblock:proc
extern _mdrv2_check_board:proc
extern _mdrv2_se_play:proc
fuuin_13_TEXT ends
.data
_score dd 100000
_score_highest dd 100000
aReiidenconfig db 'ReiidenConfig',0
aErrorEnd_flagI db 'ERROR : end_flag is not ture !!',0
; char s[]
s db 'ERROR : cfg_id is not alloc!!',0
aReiidenconfi_0 db 'ReiidenConfig',0
; char path[]
path db 'op',0
; char arg0[3]
arg0 db 'op',0
db 0
byte_12B99 db 0
byte_12B9A db 0
byte_12B9B db 0
byte_12B9C db 0
byte_12B9D db 0
db 0
byte_12B9F db 0
byte_12BA0 db 0
byte_12BA1 db 0
byte_12BA2 db 0
byte_12BA3 db 0
dd 0
db 49h ; I
db 81h
db 48h ; H
db 81h
db 94h
db 81h
db 95h
db 81h
db 96h
db 81h
db 98h
db 81h
db 99h
db 81h
db 9Fh
db 81h
db 87h
db 81h
db 88h
db 81h
db 89h
db 81h
db 8Ah
db 81h
db 63h ; c
db 81h
db 67h ; g
db 81h
db 68h ; h
db 81h
db 5Eh ; ^
db 81h
db 44h ; D
db 81h
db 45h ; E
db 81h
FULLWIDTH_NUMBERS dd aFW_0, aFW_1, aFW_2, aFW_3, aFW_4
dd aFW_5, aFW_6, aFW_7, aFW_8, aFW_9
aBqbqbqbqbqbqbq db '<27>Q<EFBFBD>Q<EFBFBD>Q<EFBFBD>Q<EFBFBD>Q<EFBFBD>Q<EFBFBD>Q<EFBFBD>Q',0
aB@b@b@b@b@b@b@ db '<27>@<40>@<40>@<40>@<40>@<40>@<40>@<40>@',0
aHiscore_0 db 'HISCORE',0
off_12C1E dd aB@gcbGwbB@
; "<22>@<40>C<EFBFBD>[<5B>W<EFBFBD>[<5B>@"
dd aB@gmbGGlb@ ; "<22>@<40>m<EFBFBD>[<5B>}<7D><><EFBFBD>@"
dd aB@gnbGhb@b@ ; "<22>@<40>n<EFBFBD>[<5B>h<EFBFBD>@<40>@"
dd aGlgigegbgbgn ; "<22><><EFBFBD>i<EFBFBD>e<EFBFBD>B<EFBFBD>b<EFBFBD>N"
aFW_0 db '<27>O',0
aFW_1 db '<27>P',0
aFW_2 db '<27>Q',0
aFW_3 db '<27>R',0
aFW_4 db '<27>S',0
aFW_5 db '<27>T',0
aFW_6 db '<27>U',0
aFW_7 db '<27>V',0
aFW_8 db '<27>W',0
aFW_9 db '<27>X',0
aC_0 db '<27><>',0
aUmx_0 db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˈٓ`<60>@<40>@',0
aHiscore_1 db 'HISCORE',0
aReyhies_dat db 'REYHIES.DAT',0
aReyhino_dat db 'REYHINO.DAT',0
aReyhiha_dat db 'REYHIHA.DAT',0
; char src[]
src db 'REYHILU.DAT',0
aWB db 'wb',0
aReyhies_dat_0 db 'REYHIES.DAT',0
aReyhino_dat_0 db 'REYHINO.DAT',0
aReyhiha_dat_0 db 'REYHIHA.DAT',0
; char aReyhilu_dat_0[]
aReyhilu_dat_0 db 'REYHILU.DAT',0
; char aRb[]
aRb db 'rb',0
aGtg@gcglvkvVVi db '<27>t<EFBFBD>@<40>C<EFBFBD><43><EFBFBD><EFBFBD><EFBFBD>݂‚<DD82><C282><EFBFBD><EFBFBD>Ȃ<EFBFBD>',0
aHiscore db 'HISCORE',0
; char format[]
format db '<27>t<EFBFBD>@<40>C<EFBFBD><43><EFBFBD><EFBFBD><EFBFBD><EFBFBD>I',0
; char aCC[]
aCC db '%c%c',0
aVb db '<27><>',0
; char aCC_0[]
aCC_0 db '%c%c',0
; char aCC_1[]
aCC_1 db '%c%c',0
; char aCC_2[]
aCC_2 db '%c%c',0
; char aSp[]
aSp db 'SP',0
; char aBi[]
aBi db '<27><>',0
; char aBi_0[]
aBi_0 db '<27><>',0
; char aPi[]
aPi db '<27>I',0
aB@cB@iB@ db '<27>@<40><><EFBFBD>@<40>ʁ@',0
aB@b@cB@b@sob@b db '<27>@<40>@<40><><EFBFBD>@<40>@<40>O<EFBFBD>@<40>@',0
aB@b@uB@b@u_b@b db '<27>@<40>@<40><><EFBFBD>@<40>@<40>_<EFBFBD>@<40>@',0
aGxgebGwbeglbGg db '<27>X<EFBFBD>e<EFBFBD>[<5B>W<EFBFBD>E<EFBFBD><45><EFBFBD>[<5B>g',0
aB@sB@r_b@ db '<27>@<40>ˁ@<40>_<EFBFBD>@',0
aSMRgcId db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',0
aB@uvb@rxb@ db '<27>@<40>V<EFBFBD>@<40><><EFBFBD>@',0
aB@r_b@rxb@ db '<27>@<40>_<EFBFBD>@<40><><EFBFBD>@',0
aB@tnb@rxb@ db '<27>@<40>n<EFBFBD>@<40><><EFBFBD>@',0
aB@rlb@rxb@ db '<27>@<40>l<EFBFBD>@<40><><EFBFBD>@',0
aB@rxb@pcb@ db '<27>@<40><><EFBFBD>@<40><><EFBFBD>@',0
aIab@czb@ot db '<27>A<EFBFBD>@<40>z<EFBFBD>@<40>t',0
aSB@fB@ot db '<27>ˁ@<40>}<7D>@<40>t',0
aPcb@lB@o db '<27>C<EFBFBD>@<40>Ɓ@<40><>',0
aCvke db '<27><><EFBFBD>E',0
aTnnc db '<27>n<EFBFBD><6E>',0
aB db '<27>|',0
; char aCC_3[]
aCC_3 db '%c%c',0
; char aSp_0[]
aSp_0 db 'SP',0
; char aBi_1[]
aBi_1 db '<27><>',0
; char aBi_2[]
aBi_2 db '<27><>',0
; char aPi_0[]
aPi_0 db '<27>I',0
; char aCC_4[]
aCC_4 db '%c%c',0
; char aS[]
aS db '%s',0
; char aS_0[]
aS_0 db '%s',0
aReyhies_dat_1 db 'REYHIES.DAT',0
aReyhino_dat_1 db 'REYHINO.DAT',0
aReyhiha_dat_1 db 'REYHIHA.DAT',0
; char aReyhilu_dat_1[]
aReyhilu_dat_1 db 'REYHILU.DAT',0
; char aWb_0[]
aWb_0 db 'wb',0
aB@gcbGwbB@ db '<27>@<40>C<EFBFBD>[<5B>W<EFBFBD>[<5B>@',0
aB@gmbGGlb@ db '<27>@<40>m<EFBFBD>[<5B>}<7D><><EFBFBD>@',0
aB@gnbGhb@b@ db '<27>@<40>n<EFBFBD>[<5B>h<EFBFBD>@<40>@',0
aGlgigegbgbgn db '<27><><EFBFBD>i<EFBFBD>e<EFBFBD>B<EFBFBD>b<EFBFBD>N',0
; char aUmx[3]
aUmx db '<27><><EFBFBD><EFBFBD><EFBFBD>ˈٓ`<60>@<40><><EFBFBD>҂̋L<CC8B>^<5E>@%s',0
dd aB@gvguglbB@ ; "<22>@<40><><EFBFBD><EFBFBD><EFBFBD>L<EFBFBD>[<5B>@"
dd aB@cRlio ; "<22>@<40>ސl<DE90><6C>"
dd aGzgvgtgsgggugx ; "<22>z<EFBFBD><7A><EFBFBD>T<EFBFBD>s<EFBFBD>G<EFBFBD><47><EFBFBD>X"
dd aB@tRl ; "<22>@<40><><EFBFBD>l"
dd aB@sR_b@ ; "<22>@<40>ː_<CB90>@"
dd aB@r_v ; "<22>@<40>_<EFBFBD>𒴉z"
dd aVioqclgqbGB ; "<22><><EFBFBD>q<EFBFBD>l<EFBFBD>Q<EFBFBD>[<5B>}<7D>["
dd aOcf ; "<22><><EFBFBD><EFBFBD><EFBFBD>X<EFBFBD>R<EFBFBD>A<EFBFBD><41><EFBFBD>["
dd aGGhglgxgrgagib ; "<22>~<7E>h<EFBFBD><68><EFBFBD>X<EFBFBD>R<EFBFBD>A<EFBFBD><41><EFBFBD>["
dd aGngcgxgrgagib ; "<22>n<EFBFBD>C<EFBFBD>X<EFBFBD>R<EFBFBD>A<EFBFBD><41><EFBFBD>["
dd aGxbGpbGqbGB ; "<22>X<EFBFBD>[<5B>p<EFBFBD>[<5B>Q<EFBFBD>[<5B>}<7D>["
dd aGqbGBV ; "<22>Q<EFBFBD>[<5B>}<7D>[<5B>𒴉z"
dd aXevVVViv ; "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>݂<EFBFBD><DD82><EFBFBD>"
dd aGugbgnbGavO ; "<22>U<EFBFBD>b<EFBFBD>N<EFBFBD>[<5B><><EFBFBD>̎<EFBFBD>"
dd aLTfvCMc ; "<22>֒f<D692>̗ь<CC97>"
dd aRvkeo ; "<22><><EFBFBD>E<EFBFBD><45><EFBFBD>̗t"
dd aIitsluucr_tomo ; "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>C<EFBFBD>_<EFBFBD>O<EFBFBD>o"
dd aB@gagagkg ; "<22>@<40>A<EFBFBD><41><EFBFBD><EFBFBD><EFBFBD>^"
off_12EC0 dd aEasy
; " EASY "
dd aNormal ; "NORMAL"
dd aHard ; " HARD "
dd aLunatic ; "LUNATIC"
aB@gvguglbB@ db '<27>@<40><><EFBFBD><EFBFBD><EFBFBD>L<EFBFBD>[<5B>@',0
aB@cRlio db '<27>@<40>ސl<DE90><6C>',0
aGzgvgtgsgggugx db '<27>z<EFBFBD><7A><EFBFBD>T<EFBFBD>s<EFBFBD>G<EFBFBD><47><EFBFBD>X',0
aB@tRl db '<27>@<40><><EFBFBD>l',0
aB@sR_b@ db '<27>@<40>ː_<CB90>@',0
aB@r_v db '<27>@<40>_<EFBFBD>𒴉z',0
aVioqclgqbGB db '<27><><EFBFBD>q<EFBFBD>l<EFBFBD>Q<EFBFBD>[<5B>}<7D>[',0
aOcf db '<27><><EFBFBD><EFBFBD><EFBFBD>X<EFBFBD>R<EFBFBD>A<EFBFBD><41><EFBFBD>[',0
aGGhglgxgrgagib db '<27>~<7E>h<EFBFBD><68><EFBFBD>X<EFBFBD>R<EFBFBD>A<EFBFBD><41><EFBFBD>[',0
aGngcgxgrgagib db '<27>n<EFBFBD>C<EFBFBD>X<EFBFBD>R<EFBFBD>A<EFBFBD><41><EFBFBD>[',0
aGxbGpbGqbGB db '<27>X<EFBFBD>[<5B>p<EFBFBD>[<5B>Q<EFBFBD>[<5B>}<7D>[',0
aGqbGBV db '<27>Q<EFBFBD>[<5B>}<7D>[<5B>𒴉z',0
aXevVVViv db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>݂<EFBFBD><DD82><EFBFBD>',0
aGugbgnbGavO db '<27>U<EFBFBD>b<EFBFBD>N<EFBFBD>[<5B><><EFBFBD>̎<EFBFBD>',0
aLTfvCMc db '<27>֒f<D692>̗ь<CC97>',0
aRvkeo db '<27><><EFBFBD>E<EFBFBD><45><EFBFBD>̗t',0
aIitsluucr_tomo db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>C<EFBFBD>_<EFBFBD>O<EFBFBD>o',0
aB@gagagkg db '<27>@<40>A<EFBFBD><41><EFBFBD><EFBFBD><EFBFBD>^',0
; char aIris_mdt[]
aIris_mdt db 'iris.mdt',0
aEd1a_grp db 'ED1A.grp',0
aEd1b_grp db 'ED1B.grp',0
aEd1c_grp db 'ED1C.GRP',0
aEd1d_grp db 'ED1D.GRP',0
aEd1e_grp db 'ED1E.GRP',0
; char aSt1_mdt[]
aSt1_mdt db 'st1.mdt',0
aEd2a_grp db 'ed2a.grp',0
aTryToNoContinu db 'Try to ',27h,'No continue',27h,'!!',0
aBadEnding2 db ' Bad Ending2 ',0
aEd4a_grp db 'ed4a.grp',0
aTryToNoConti_0 db 'Try to ',27h,'No continue',27h,'!!',0
aBadEnding1 db ' Bad Ending1 ',0
aEd3a_grp db 'ed3a.grp',0
aEd3b_grp db 'ed3b.grp',0
aCongratulation db 'Congratulations!',0
aGoodEnding2 db ' Good Ending2 ',0
aEd5a_grp db 'ed5a.grp',0
aEd5b_grp db 'ed5b.grp',0
aEd5c_grp db 'ed5c.grp',0
aCongratulati_0 db 'Congratulations!',0
aGoodEnding1 db ' Good Ending1 ',0
; char aSt1_mdt_0[]
aSt1_mdt_0 db 'st1.mdt',0
aEndb_a_grp db 'endb_a.grp',0
aEndb_b_grp db 'endb_b.grp',0
aStage5Boss db 'STAGE 5 BOSS',0
aGatekeeperSing db 'Gatekeeper ',27h,'SinGyoku',27h,0
aStage10Boss db 'STAGE 10 BOSS',0
aEvileyesYuugen db 'EvilEyes ',27h,'YuugenMagan',27h,0
aStage10Boss_0 db 'STAGE 10 BOSS',0
aRevengefulGhos db 'Revengeful Ghost ',27h,'Mima',27h,0
aStage15Boss db 'STAGE 15 BOSS',0
aInnocenceDevil db 'Innocence Devil ',27h,'Elis',27h,0
aStage15Boss_0 db 'STAGE 15 BOSS',0
aHellmoonKikuri db 'HellMoon ',27h,'Kikuri',27h,0
aStage20Boss db 'STAGE 20 BOSS',0
aAngelOfDeathSa db 'Angel of Death',27h,'Sariel',27h,0
aStage20Boss_0 db 'STAGE 20 BOSS',0
aAstralKnightKo db 'Astral Knight ',27h,'Konngara',27h,0
; char aS_1[]
aS_1 db '%s',0
aEasy db ' EASY ',0
aNormal db 'NORMAL',0
aHard db ' HARD ',0
aLunatic db 'LUNATIC',0
aEndm_a_grp db 'endm_a.grp',0
aUmx_1 db '<27><><EFBFBD><EFBFBD><EFBFBD>ˈٓ`',0
aVer db 'ver',0
a1_10 db '1.10',0
; char aUqiUxb[]
aUqiUxb@b@b@b@b db '<27><><EFBFBD>Փx<D593>@<40>@<40>@<40>@<40>@<40>@<40>@<40>@<40>@<40>@ %s',0
; char aNbi[3]
aNbi db '<27><><EFBFBD><EFBFBD><EFBFBD>̍ō<CC8D><C58D><EFBFBD><EFBFBD>_<EFBFBD>@<40>@<40>@<40>@<40>@<40>@ %7lu',0
; char aNPiuU_b[]
aNPiuU_b@b@b@b@ db '<27>ŏI<C58F><49><EFBFBD>_<EFBFBD>@<40>@<40>@<40>@<40>@<40>@<40>@<40>@<40>@ %7lu',0
; char aGrgugegbgjgebI[15]
aGrgugegbgjgebI db '<27>R<EFBFBD><52><EFBFBD>e<EFBFBD>B<EFBFBD>j<EFBFBD><6A><EFBFBD>[<5B><><EFBFBD><EFBFBD>',0
; char aB[]
aB@r_oB@b@b@b@b db '<27>@<40>_<EFBFBD>Ё@<40>@<40>@<40>@<40>i<EFBFBD>P<EFBFBD>ʁ`<60>T<EFBFBD>ʁj <20>@ %3lu',0
aB@gqbGgb@b@b@b db '<27>@<40>Q<EFBFBD>[<5B>g<EFBFBD>@<40>@<40>@<40>i<EFBFBD>U<EFBFBD>ʁ`<60>P<EFBFBD>O<EFBFBD>ʁj %3lu',0
; char aB[]
aB@tkb@b@b@b@b@ db '<27>@<40>K<EFBFBD>@<40>@<40>@<40>@<40>@<40>i<EFBFBD>U<EFBFBD>ʁ`<60>P<EFBFBD>O<EFBFBD>ʁj %3lu',0
aGfgbgivFpBivpv db ' <20><><EFBFBD>B<EFBFBD>i<EFBFBD>̔p<CC94>Ёi<D081>P<EFBFBD>P<EFBFBD>ʁ`<60>P<EFBFBD>T<EFBFBD>ʁj%3lu',0
; char aB[]
aB@ikvXekeb@b@b db '<27>@<40><><EFBFBD>̕<EFBFBD><CC95>E<EFBFBD>@<40>@<40>i<EFBFBD>P<EFBFBD>P<EFBFBD>ʁ`<60>P<EFBFBD>T<EFBFBD>ʁj%3lu',0
aSVVVsr_uabivpv db ' <20>‚<EFBFBD><C282><EFBFBD><EFBFBD><EFBFBD><EFBFBD>_<EFBFBD>a<EFBFBD>i<EFBFBD>P<EFBFBD>T<EFBFBD>ʁ`<60>Q<EFBFBD>O<EFBFBD>ʁj%3lu',0
; char aB[]
aB@rVivVsr_uabi db '<27>@<40>Â<EFBFBD><C382>Ȃ<EFBFBD><C882>_<EFBFBD>a<EFBFBD>i<EFBFBD>P<EFBFBD>T<EFBFBD>ʁ`<60>Q<EFBFBD>O<EFBFBD>ʁj%3lu',0
aCvkeglbGgsnnzb db ' <20><><EFBFBD>E<EFBFBD><45><EFBFBD>[<5B>g<EFBFBD><67><EFBFBD><EFBFBD><EFBFBD>@<40>@<40>@<40>@<40>@<40>@ %5lu',0
; char aB[]
aB@tnncglbGgsnn db '<27>@<40>n<EFBFBD><6E><EFBFBD><EFBFBD><EFBFBD>[<5B>g<EFBFBD><67><EFBFBD><EFBFBD><EFBFBD>@<40>@<40>@<40>@<40>@<40>@<40>@%5lu',0
aThankYouForPla db ' Thank you for Playing !! ',0
; char aBBBVavVVPNjbBB[]
aBBBVavVVPNjbBB db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȃ<EFBFBD><C882>̏̍<CC8F><CC8D><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',0
aKo db '<27><>',0
aKo_0 db '<27><>',0
db 0
; char aC[]
aC db '%c',0
; char aCC_5[]
aCC_5 db '%c%c',0
include th01/hardware/vsync[data].asm
include th01/ztext[data].asm
byte_134B8 db 0
db 0
unk_134BA db 0
dd 0
db 0Fh
db 0
db 0Fh
db 0
byte_134C3 db 0
byte_134C4 db 0Fh
byte_134C5 db 0Fh
db 0Fh
db 0
db 0
db 0Fh
db 0
db 0Fh
db 0Fh
db 0Fh
db 0
byte_134CF db 0Fh
byte_134D0 db 0Fh
byte_134D1 db 0Fh
db 8
db 8
db 8
db 0
db 0
db 0Ah
db 0
db 0Ah
db 0
db 0
db 0Ah
db 0Ah
db 0Ah
db 0
db 0
db 0Ah
db 0
db 0Ah
db 0Ah
db 0Ah
db 0
db 0Ch
db 0Ch
db 0Ch
byte_134EA db 0
word_134EB dw 80h
aPal98Grb db 'pal98 grb',0
db 0
word_134F8 dw 1
word_134FA dw 1
dd 0
dd 0
db 0
db 0
db 0
word_13507 dw 64h
byte_13509 db 0
public _mdrv2_have_board
_mdrv2_have_board db 0
db 0
aMdrv2system db 'Mdrv2System',0
include libs/master.lib/version[data].asm
include libs/master.lib/grp[data].asm
include libs/master.lib/pal[data].asm
include libs/master.lib/respal_exist[data].asm
include libs/master.lib/resdata[data].asm
include libs/master.lib/fil[data].asm
include libs/master.lib/dos_ropen[data].asm
include libs/master.lib/clip[data].asm
include libs/master.lib/rand[data].asm
.data?
; TODO: Missing clip[bss].asm (16 bytes) somewhere in there...
_continues_total dd ?
; char word_13EDC[]
word_13EDC dw ?
word_13EDE dw ?
; char word_13EE0[]
word_13EE0 dw ?
word_13EE2 dw ?
; char word_13EE4[]
word_13EE4 dw ?
word_13EE6 dw ?
; char word_13EE8[]
word_13EE8 dw ?
word_13EEA dw ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
byte_14020 db ?
byte_14021 db ?
_rank db ?
db ?
; void (*font)(void)
font dd ?
; void (*off_14028)(void)
off_14028 dd ?
; void (*off_1402C)(void)
off_1402C dd ?
; int word_14030
word_14030 dw ?
; int word_14032
word_14032 dw ?
; void (*off_14034)(void)
off_14034 dd ?
db ? ;
byte_14039 db ?
byte_1403A db ?
byte_1403B db ?
byte_1403C db ?
byte_1403D db ?
byte_1403E db ?
byte_1403F db ?
byte_14040 db ?
byte_14041 db ?
byte_14042 db ?
db ?
include th01/hardware/vsync[bss].asm
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
; void (__interrupt far *off_14150)()
off_14150 dd ?
word_14154 dw ?
word_14156 dw ?
db ? ;
_graph_page db ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
unk_141AA 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 ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
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 ? ;
; void (*off_1464A)(void)
off_1464A dw ?
word_1464C dw ?
include th01/hardware/vram_planes[bss].asm
include libs/master.lib/pal[bss].asm
include libs/master.lib/fil[bss].asm
dd ?
dd ?
dd ?
dd ?
end