ReC98/th04_maine.asm

11428 lines
182 KiB
NASM
Raw Blame History

This file contains ambiguous Unicode characters

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 : 50C37C4BDDEC04B753524F5D3B030A96
; File Name : th04/MAINE.EXE
; Format : MS-DOS executable (EXE)
; Base Address: 0h Range: 0h-126D0h Loaded length: 10062h
; Entry Point : 0:0
; OS type : MS DOS
; Application type: Executable 16bit
CGROUP00 group seg000
CGROUP01 group seg001
CGROUP02 group seg002
CGROUP03 group seg003
.386
.model large
include ReC98.inc
; ===========================================================================
; Segment type: Pure code
seg000 segment word public 'CODE' use16
assume cs:seg000
assume es:nothing, ss:seg005, ds:dseg, fs:nothing, gs:nothing
include libs/BorlandC/c0.asm
db 0
include libs/master.lib/bfnt_entry_pat.asm
include libs/master.lib/bfnt_extend_header_skip.asm
include libs/master.lib/bfnt_header_read.asm
include libs/master.lib/bfnt_header_analysis.asm
include libs/master.lib/atrtcmod.asm
include libs/master.lib/bcloser.asm
include libs/master.lib/bfill.asm
include libs/master.lib/bfnt_palette_set.asm
include libs/master.lib/bgetc.asm
include libs/master.lib/palette_black_in.asm
include libs/master.lib/palette_black_out.asm
include libs/master.lib/bopenr.asm
include libs/master.lib/bread.asm
include libs/master.lib/bseek.asm
include libs/master.lib/bseek_.asm
include libs/master.lib/dos_axdx.asm
include libs/master.lib/dos_filesize.asm
include libs/master.lib/dos_keyclear.asm
include libs/master.lib/dos_read.asm
include libs/master.lib/dos_seek.asm
include libs/master.lib/dos_setvect.asm
include libs/master.lib/egc.asm
include libs/master.lib/file_append.asm
include libs/master.lib/file_close.asm
include libs/master.lib/file_create.asm
include libs/master.lib/file_exist.asm
include libs/master.lib/file_read.asm
include libs/master.lib/file_ropen.asm
include libs/master.lib/file_seek.asm
include libs/master.lib/file_size.asm
include libs/master.lib/file_write.asm
include libs/master.lib/dos_close.asm
include libs/master.lib/dos_ropen.asm
include libs/master.lib/grcg_byteboxfill_x.asm
include libs/master.lib/grcg_setcolor.asm
include libs/master.lib/gdc_outpw.asm
include libs/master.lib/get_machine_98.asm
include libs/master.lib/get_machine_at.asm
include libs/master.lib/get_machine_dosbox.asm
include libs/master.lib/check_machine_fmr.asm
include libs/master.lib/get_machine.asm
include libs/master.lib/gaiji_backup.asm
include libs/master.lib/gaiji_entry_bfnt.asm
include libs/master.lib/gaiji_putca.asm
include libs/master.lib/gaiji_putsa.asm
include libs/master.lib/gaiji_read.asm
include libs/master.lib/gaiji_write.asm
include libs/master.lib/graph_400line.asm
include libs/master.lib/graph_clear.asm
include libs/master.lib/graph_copy_page.asm
include libs/master.lib/graph_extmode.asm
include libs/master.lib/graph_hide.asm
include libs/master.lib/graph_pi_free.asm
include libs/master.lib/graph_pi_load_pack.asm
include libs/master.lib/graph_pack_put_8.asm
include libs/master.lib/graph_scrollup.asm
include libs/master.lib/graph_show.asm
include libs/master.lib/js_end.asm
include libs/master.lib/palette_show.asm
include libs/master.lib/pfclose.asm
include libs/master.lib/pfgetc.asm
db 0
include libs/master.lib/pfread.asm
include libs/master.lib/pfrewind.asm
include libs/master.lib/pfseek.asm
include libs/master.lib/random.asm
include libs/master.lib/rottbl.asm
include libs/master.lib/smem_release.asm
include libs/master.lib/smem_wget.asm
include libs/master.lib/soundio.asm
include libs/BorlandC/text_clear.asm
include libs/master.lib/vsync.asm
include libs/master.lib/vsync_wait.asm
include libs/master.lib/palette_white_in.asm
include libs/master.lib/palette_white_out.asm
include libs/master.lib/hmem_lallocate.asm
include libs/master.lib/mem_assign_dos.asm
include libs/master.lib/mem_assign.asm
include libs/master.lib/memheap.asm
include libs/master.lib/mem_unassign.asm
include libs/master.lib/super_free.asm
include libs/master.lib/super_entry_pat.asm
include libs/master.lib/super_entry_at.asm
include libs/master.lib/super_entry_bfnt.asm
include libs/master.lib/super_cancel_pat.asm
include libs/master.lib/super_put.asm
dword_2910 dd 0
byte_2914 db 0, 90h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_2916 proc far
arg_0 = dword ptr 6
push bp
mov bp, sp
cld
mov ax, word ptr cs:dword_2910
or ax, word ptr cs:dword_2910+2
jz short loc_2928
jmp loc_29A9
; ---------------------------------------------------------------------------
loc_2928:
push di
push si
push word ptr [bp+arg_0+2]
push word ptr [bp+arg_0]
call file_ropen
push 10h
call hmem_allocbyte
mov di, ax
push ax
push 0
push 10h
call file_read
mov ax, di
mov es, ax
assume es:nothing
mov di, es:0
mov si, es:6
push ax
call hmem_free
push di
call hmem_allocbyte
mov word_FCD0, ax
push ax
push 0
push di
call file_read
call file_close
mov cx, di
mov ax, word_FCD0
mov es, ax
mov ax, si
xor bx, bx
loc_2977:
xor es:[bx], al
sub al, es:[bx]
inc bx
loop loc_2977
pop si
pop di
mov ax, 3521h
int 21h ; DOS - 2+ - GET INTERRUPT VECTOR
; AL = interrupt number
; Return: ES:BX = value of interrupt vector
mov word ptr cs:dword_2910, bx
mov word ptr cs:dword_2910+2, es
mov word_FCCC, 0
mov word_FCCE, 0FFFFh
push ds
push cs
pop ds
assume ds:seg000
mov dx, 2A0Ah
mov ax, 2521h
int 21h ; DOS - SET INTERRUPT VECTOR
; AL = interrupt number
; DS:DX = new vector to be used for specified interrupt
pop ds
assume ds:dseg
loc_29A9:
push si
push di
push ds
mov cx, 0FFFFh
mov al, 0
les di, [bp+arg_0]
repne scasb
not cx
sub di, cx
mov si, di
mov di, 171Ch
push ds
push es
pop ds
pop es
shr cx, 1
rep movsw
adc cx, cx
rep movsb
pop ds
pop di
pop si
pop bp
retf 4
sub_2916 endp
; =============== S U B R O U T I N E =======================================
sub_29D2 proc far
mov ax, word ptr cs:dword_2910
or ax, word ptr cs:dword_2910+2
jz short locret_2A09
push ds
lds dx, cs:dword_2910
mov ax, 2521h
int 21h ; DOS - SET INTERRUPT VECTOR
; AL = interrupt number
; DS:DX = new vector to be used for specified interrupt
pop ds
xor ax, ax
mov word ptr cs:dword_2910, ax
mov word ptr cs:dword_2910+2, ax
cmp word_FCCC, ax
jz short locret_2A09
push word_FCCC
call pfclose
push word_FCD0
call hmem_free
locret_2A09:
retf
sub_29D2 endp
; ---------------------------------------------------------------------------
cmp cs:byte_2914, 0
jz short loc_2A17
jmp cs:dword_2910
; ---------------------------------------------------------------------------
loc_2A17:
pusha
push ds
push es
mov bp, sp
mov di, seg dseg
mov ds, di
inc cs:byte_2914
push word ptr [bp+18h]
popf
mov cs:byte_2A6E, ah
mov si, 2A3Eh
loc_2A32:
add si, 4
cmp ah, cs:[si]
jnz short loc_2A32
mov di, word_FCCE
jmp word ptr cs:[si+2]
; ---------------------------------------------------------------------------
db 3Dh, 0, 72h, 2Ah, 3Eh, 0, 0A7h, 2Ah, 3Fh, 0, 0C5h, 2Ah
db 42h, 0, 0D9h, 2Ah, 46h, 0, 3Ah, 2Bh, 40h, 0, 3Eh, 2Bh
db 45h, 0, 3Eh, 2Bh, 4Ch, 0, 1Ch, 2Bh, 57h, 0, 3Eh, 2Bh
db 5Ch, 0, 3Eh, 2Bh, 44h, 0, 28h, 2Bh
byte_2A6E db 0
db 0
db 42h, 2Bh, 0A8h, 0Fh, 74h, 3, 0E9h, 0C9h, 0, 0Bh, 0FFh
db 78h, 3, 0E9h, 0C2h, 0, 1Eh, 68h, 1Ch, 17h, 0FFh, 76h
db 2, 52h, 0Eh, 0E8h, 0Ch, 1, 0Bh, 0C0h, 75h, 3, 0E9h
db 0AFh, 0, 0A3h, 9Ch, 17h, 8Eh, 0C0h, 26h, 8Eh, 6, 2 dup(0)
db 26h, 0A1h, 2 dup(0), 0A3h, 9Eh, 17h, 0E9h, 0B6h, 0
db 3Bh, 0DFh, 74h, 3, 0E9h, 94h, 0, 0FFh, 36h, 9Ch, 17h
db 0Eh, 0E8h, 40h, 0F0h, 0C7h, 6, 9Ch, 17h, 2 dup(0), 0C7h
db 6, 9Eh, 17h, 2 dup(0FFh), 0E9h, 98h, 0, 3Bh, 0DFh, 75h
db 79h, 0FFh, 76h, 2, 52h, 51h, 0FFh, 36h, 9Ch, 17h, 0Eh
db 0E8h, 0EAh, 0F0h, 0E9h, 84h, 0, 3Bh, 0DFh, 75h, 65h
db 0Bh, 0C9h, 7Ch, 73h, 3Ch, 1, 74h, 28h, 7Ch, 1Ah, 8Eh
db 6, 9Ch, 17h, 26h, 8Bh, 2 dup(16h), 0, 26h, 8Bh, 0Eh
db 18h, 0, 26h, 2Bh, 16h, 12h, 0, 26h, 1Bh, 0Eh, 14h, 0
db 0EBh, 0Ch, 51h, 52h, 0FFh, 36h, 9Ch, 17h, 0Eh, 0E8h
db 0E3h, 0F0h, 5Ah, 59h, 0FFh, 36h, 9Ch, 17h, 51h, 52h
db 0Eh, 0E8h, 13h, 0F1h, 89h, 56h, 0Eh, 0EBh, 41h, 2Eh
db 0C5h, 16h, 10h, 29h, 0B8h, 21h, 25h, 0CDh, 21h, 0EBh
db 1Ah, 8Ah, 0C8h, 0B8h, 1, 0, 0D3h, 0E0h, 2Eh, 85h, 6
db 38h, 2Bh, 75h, 8, 0EBh, 0Ah, 0CFh, 14h, 8Bh, 0CFh, 74h
db 16h, 3Bh, 0DFh, 74h, 12h, 2Eh, 0FEh, 0Eh, 14h, 29h
db 0FFh, 76h, 18h, 9Dh, 7, 1Fh, 61h, 0FAh, 2Eh, 0FFh, 2Eh
db 10h, 29h, 80h, 4Eh, 18h, 1, 0B8h, 1, 0, 0EBh, 4, 80h
db 66h, 18h, 0FEh, 89h, 46h, 12h, 2Eh, 0FEh, 0Eh, 14h
db 29h, 7, 1Fh, 61h, 0CFh, 0
; =============== S U B R O U T I N E =======================================
sub_2B6E proc far
mov cx, 100h
mov dx, 188h
loc_2B74:
in al, dx
inc al
jnz short loc_2B7F
loop loc_2B74
xor ax, ax
jmp short loc_2B93
; ---------------------------------------------------------------------------
loc_2B7F:
pushf
cli
mov bh, 7
call sound_i
and al, 3Fh
or al, 80h
mov bl, al
call sound_o
popf
mov ax, 1
loc_2B93:
mov word_E658, ax
retf
sub_2B6E endp
; ---------------------------------------------------------------------------
nop
enter 0, 0
push si
push di
mov mem_AllocID, 7
push 1Fh
call hmem_allocbyte
jb loc_2CA4
mov si, ax
push word ptr [bp+0Ch]
push word ptr [bp+0Ah]
call bopenr
or ax, ax
jz loc_2C9D
mov es, si
mov es:0, ax
mov ax, word_FCD0
mov fs, ax
xor ax, ax
mov di, ax
loc_2BCF:
mov al, fs:[di]
mov bx, 2
or al, al
jz short loc_2BF1
mov bx, 3
add bx, di
push word ptr [bp+8]
push word ptr [bp+6]
push fs
push bx
call sub_2CB2
jnz short loc_2BF3
add di, 20h ; ' '
jmp short loc_2BCF
; ---------------------------------------------------------------------------
loc_2BF1:
mov ax, bx
loc_2BF3:
mov es, si
mov ax, fs:[di+14h]
mov dx, fs:[di+16h]
mov es:0Eh, ax
mov es:10h, dx
push word ptr es:0
push dx
push ax
push 0
call bseek_
mov ax, 1B6Eh
mov dl, fs:[di+2]
mov es, si
or dl, dl
jz short loc_2C28
mov es:1Eh, dl
mov ax, 1BB2h
loc_2C28:
mov es:4, ax
mov es, cx
mov ax, fs:[di]
mov es, si
cmp ax, 0F388h
jz short loc_2C42
cmp ax, 9595h
jz short loc_2C4C
mov ax, 5
jmp short loc_2C91
; ---------------------------------------------------------------------------
loc_2C42:
mov ax, es:4
mov es:2, ax
jmp short loc_2C61
; ---------------------------------------------------------------------------
loc_2C4C:
mov word ptr es:2, 1B20h
mov word ptr es:1Ah, 0
mov word ptr es:1Ch, 0FFFFh
loc_2C61:
mov bx, fs:[di+10h]
mov dx, fs:[di+12h]
xor ax, ax
mov es:6, bx
mov es:8, ax
mov es:16h, dx
mov es:18h, ax
mov es:0Ah, ax
mov es:0Ch, ax
mov es:12h, ax
mov es:14h, ax
mov ax, si
jmp short loc_2CAB
; ---------------------------------------------------------------------------
loc_2C91:
mov pferrno, ax
push word ptr es:0
call bcloser
loc_2C9D:
push si
call hmem_free
jmp short loc_2CA9
; ---------------------------------------------------------------------------
loc_2CA4:
mov byte ptr pferrno, 3
loc_2CA9:
xor ax, ax
loc_2CAB:
pop di
pop si
leave
retf 8
; ---------------------------------------------------------------------------
db 90h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_2CB2 proc near
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push bp
mov bp, sp
push si
push ds
cld
les bx, [bp+arg_4]
lds si, [bp+arg_0]
loc_2CBE:
mov ah, es:[bx]
inc bx
lodsb
sub al, 61h ; 'a'
cmp al, 19h
ja short loc_2CCB
sub al, 20h ; ' '
loc_2CCB:
sub ah, 61h ; 'a'
cmp ah, 19h
ja short loc_2CD6
sub ah, 20h ; ' '
loc_2CD6:
cmp ah, al
jnz short loc_2CE0
add al, 61h ; 'a'
jnz short loc_2CBE
jmp short loc_2CE2
; ---------------------------------------------------------------------------
loc_2CE0:
xor ax, ax
loc_2CE2:
test ax, ax
pop ds
pop si
pop bp
retn 8
sub_2CB2 endp
; =============== S U B R O U T I N E =======================================
sub_2CEA proc near
mov bh, 0Fh
call sound_o
mov dx, 188h
mov al, 0Eh
out dx, al
inc dx
inc dx
in al, dx
not al
retn
sub_2CEA endp
; ---------------------------------------------------------------------------
nop
; =============== S U B R O U T I N E =======================================
sub_2CFC proc far
pushf
cli
mov bl, 80h
call sub_2CEA
and ax, 3Fh
popf
retf
sub_2CFC endp
; ---------------------------------------------------------------------------
xchg dx, bx
out dx, al
xchg dx, bx
in al, dx
not al
retn
; ---------------------------------------------------------------------------
include libs/master.lib/bgm_bell_org.asm
include libs/master.lib/bgm_mget.asm
include libs/master.lib/bgm_read_sdata.asm
include libs/master.lib/bgm_timer.asm
include libs/master.lib/bgm_pinit.asm
include libs/master.lib/bgm_timerhook.asm
include libs/master.lib/bgm_play.asm
include libs/master.lib/bgm_sound.asm
include libs/master.lib/bgm_effect_sound.asm
include libs/master.lib/bgm_stop_play.asm
include libs/master.lib/bgm_set_tempo.asm
include libs/master.lib/bgm_init_finish.asm
include libs/master.lib/bgm_stop_sound.asm
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_35F2
loc_35EC:
pop di
pop si
pop bp
retf 0Ah
; END OF FUNCTION CHUNK FOR sub_35F2
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_35F2 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
; FUNCTION CHUNK AT 35EC SIZE 00000006 BYTES
push bp
mov bp, sp
push si
push di
mov ax, [bp+arg_6]
mov cx, [bp+arg_0]
sar cx, 3
jle short loc_35EC
mov si, [bp+arg_2]
mov di, [bp+arg_8]
sar di, 3
jns short loc_3618
add cx, di
jle short loc_35EC
shl di, 2
add si, di
xor di, di
loc_3618:
cmp di, 50h ; 'P'
jge short loc_35EC
add cx, di
cmp cx, 50h ; 'P'
jl short loc_3627
mov cx, 50h ; 'P'
loc_3627:
sub cx, di
imul ax, 50h
add di, ax
push ds
mov es, ClipYT_seg
assume es:nothing
mov ds, [bp+arg_4]
mov bp, cx
cld
nop
loc_363A:
mov cl, 2
mov bl, [si]
mov bh, 0
shl bx, cl
mov ax, cs:[bx+1C84h]
mov dx, cs:[bx+1C86h]
inc si
shl ax, cl
shl dx, cl
mov bl, [si]
mov bh, 0
shl bx, cl
or ax, cs:[bx+1C84h]
or dx, cs:[bx+1C86h]
inc si
shl ax, cl
shl dx, cl
mov bl, [si]
mov bh, 0
shl bx, cl
or ax, cs:[bx+1C84h]
or dx, cs:[bx+1C86h]
inc si
shl ax, cl
shl dx, cl
mov bl, [si]
mov bh, 0
shl bx, cl
or ax, cs:[bx+1C84h]
or dx, cs:[bx+1C86h]
inc si
mov es:[di], al
mov bx, es
mov es:[di-8000h], ah
add bh, 10h
mov es, bx
assume es:nothing
mov es:[di], dl
add bh, 28h ; '('
mov es, bx
assume es:nothing
mov es:[di], dh
sub bh, 38h ; '8'
mov es, bx
assume es:nothing
inc di
dec bp
jnz short loc_363A
pop ds
pop di
pop si
pop bp
retf 0Ah
sub_35F2 endp
include libs/master.lib/graph_gaiji_puts.asm
include libs/master.lib/graph_gaiji_putc.asm
include libs/BorlandC/_abort.asm
include libs/BorlandC/stpcpy.asm
include libs/BorlandC/abort.asm
include libs/BorlandC/atexit.asm
include libs/BorlandC/del.asm
include libs/BorlandC/delarray.asm
include libs/BorlandC/dosenv.asm
include libs/BorlandC/dosgdriv.asm
include libs/BorlandC/errormsg.asm
include libs/BorlandC/exit.asm
include libs/BorlandC/getvect.asm
include libs/BorlandC/H_LDIV.ASM
include libs/BorlandC/H_LLSH.ASM
include libs/BorlandC/H_PADD.ASM
include libs/BorlandC/__IOERROR.ASM
include libs/BorlandC/_isatty.asm
include libs/BorlandC/lseek.asm
include libs/BorlandC/new.asm
include libs/BorlandC/N_LXMUL.ASM
include libs/BorlandC/N_PCMP.ASM
include libs/BorlandC/setupio.asm
include libs/BorlandC/tolower.asm
include libs/BorlandC/toupper.asm
include libs/BorlandC/xxas.asm
include libs/BorlandC/xxv.asm
include libs/BorlandC/cputype.asm
include libs/BorlandC/FARHEAP.ASM
include libs/BorlandC/fbrk.asm
include libs/BorlandC/signal.asm
include libs/BorlandC/access.asm
include libs/BorlandC/pathops.asm
include libs/BorlandC/chmoda.asm
include libs/BorlandC/fflush.asm
include libs/BorlandC/flushall.asm
include libs/BorlandC/fseek.asm
include libs/BorlandC/fullpath.asm
include libs/BorlandC/getdcwd.asm
include libs/BorlandC/getenv.asm
include libs/BorlandC/memcmp.asm
include libs/BorlandC/memcpy.asm
include libs/BorlandC/memset.asm
include libs/BorlandC/movmem.asm
include libs/BorlandC/srchenv.asm
include libs/BorlandC/srchstr.asm
include libs/BorlandC/setvbuf.asm
include libs/BorlandC/_strcat.asm
include libs/BorlandC/_strcmp.asm
include libs/BorlandC/_strcpy.asm
include libs/BorlandC/_stricmp.asm
include libs/BorlandC/_strlen.asm
include libs/BorlandC/strrchr.asm
include libs/BorlandC/write.asm
include libs/BorlandC/writea.asm
include libs/BorlandC/xfflush.asm
include libs/BorlandC/xalloc.asm
include libs/BorlandC/xmsg.asm
include libs/BorlandC/xx.asm
include libs/BorlandC/doscmd.asm
include libs/BorlandC/exec.asm
include libs/BorlandC/execl.asm
include libs/BorlandC/setblock.asm
include libs/BorlandC/setenvp.asm
include libs/BorlandC/ctor2.asm
include libs/BorlandC/ctor3.asm
include libs/BorlandC/strings.asm
include libs/BorlandC/loadprog.asm
seg000 ends
; ===========================================================================
; Segment type: Pure code
seg001 segment byte public 'CODE' use16
assume cs:seg001
;org 9
assume es:nothing, ss:nothing, ds:dseg, fs:nothing, gs:nothing
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_A059 proc near
var_A = byte ptr -0Ah
var_4 = word ptr -4
enter 0Ah, 0
push si
push ds
push offset aMiko_cfg ; "MIKO.CFG"
call file_ropen
push ss
lea ax, [bp+var_A]
push ax
push 0Ah
call file_read
call file_close
mov si, [bp+var_4]
mov word ptr dword_F3CE+2, si
mov word ptr dword_F3CE, 0
mov ax, si
pop si
leave
retn
sub_A059 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __stdcall sub_A08A(char *arg0)
sub_A08A proc near
_arg0 = dword ptr 4
push bp
mov bp, sp
call sub_D8CE
call graph_hide
call text_clear
call gaiji_restore
call sub_D3F4
push large 0
push large [bp+_arg0] ; arg0
push large [bp+_arg0] ; path
call _execl
add sp, 0Ch
pop bp
retn 4
sub_A08A endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_A0BD proc near
push bp
mov bp, sp
les bx, dword_F3CE
mov al, es:[bx+12h]
les bx, off_E5C0
mov es:[bx+3], al
les bx, dword_F3CE
mov al, es:[bx+19h]
add al, 30h ; '0'
les bx, off_E5C0
mov es:[bx+4], al
les bx, dword_F3CE
mov al, es:[bx+25h]
les bx, off_E5C0
mov es:[bx+5], al
push word ptr off_E5C0+2
push bx
call sub_A292
call sub_ADFC
call sub_A2D1
pop bp
retn
sub_A0BD endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl main(int argc, const char **argv, const char **envp)
_main proc far
var_4 = dword ptr -4
_argc = word ptr 6
_argv = dword ptr 8
_envp = dword ptr 0Ch
enter 4, 0
mov word ptr [bp+var_4+2], ds
mov word ptr [bp+var_4], 0A8h ; '<27>'
call sub_A059
or ax, ax
jz locret_A290
les bx, dword_F3CE
mov al, es:[bx+12h]
les bx, [bp+var_4]
mov es:[bx+4], al
mov word_10070, 5208h
push ds
push offset aMSzlEd_dat ; "<22><><EFBFBD>z<EFBFBD><7A>ed.dat"
call sub_D43C
call gaiji_backup
push ds
push offset aGameft_bft ; "GAMEFT.bft"
call gaiji_entry_bfnt
les bx, dword_F3CE
mov al, es:[bx+10h]
mov ah, 0
push ax
mov al, es:[bx+18h]
mov ah, 0
push ax
call sub_CFAA
call graph_show
les bx, dword_F3CE
cmp byte ptr es:[bx+30h], 0FEh
jb loc_A1FE
call sub_A0BD
call sub_B44D
call sub_C0F8
les bx, dword_F3CE
cmp byte ptr es:[bx+30h], 0FFh
jz short loc_A187
cmp byte ptr es:[bx+0Fh], 0
jnz short loc_A1E9
loc_A187:
les bx, [bp+var_4]
mov al, es:[bx+5]
les bx, dword_F3CE
add al, es:[bx+0Fh]
les bx, [bp+var_4]
mov es:[bx+5], al
mov dx, 0A6h ; '<27>'
mov al, 1
out dx, al
push 0
push word ptr [bp+var_4+2]
push bx
call sub_CD65
push 0
call sub_CCB8
push large 0
push 0
call sub_CCDD
push ds
push offset unk_FCEA
push large [dword_FCD2]
call graph_pi_free
push 0
call graph_copy_page
push 1
call palette_black_in
push 0
call sub_CE7A
push 4
call palette_black_out
loc_A1E9:
push 204h
call sub_CF8C
push 64h ; 'd'
call sub_CCA3
call sub_C814
jmp loc_A281
; ---------------------------------------------------------------------------
loc_A1FE:
les bx, dword_F3CE
cmp byte ptr es:[bx+30h], 0FDh
jnz short loc_A274
push 64h ; 'd'
call sub_CCA3
call sub_C814
les bx, [bp+var_4]
mov byte ptr es:[bx+5], 34h ; '4'
mov PaletteTone, 0
call far ptr palette_show
mov dx, 0A6h ; '<27>'
mov al, 1
out dx, al
push 0
push large [bp+var_4]
call sub_CD65
push 0
call sub_CCB8
push large 0
push 0
call sub_CCDD
push ds
push offset unk_FCEA
push large [dword_FCD2]
call graph_pi_free
push 0
call graph_copy_page
push 1
call palette_black_in
push 0
call sub_CE7A
push 4
call palette_black_out
jmp short loc_A27E
; ---------------------------------------------------------------------------
loc_A274:
push 64h ; 'd'
call sub_CCA3
call sub_C814
loc_A27E:
call sub_C0F8
loc_A281:
push 204h
call sub_CF8C
push ds
push offset arg0 ; "op"
call sub_A08A
locret_A290:
leave
retf
_main endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_A292 proc near
var_2 = word ptr -2
arg_0 = dword ptr 4
enter 2, 0
call sub_A2D1
push large [bp+arg_0]
call file_ropen
or ax, ax
jnz short loc_A2AD
mov ax, 1
leave
retn 4
; ---------------------------------------------------------------------------
loc_A2AD:
call file_size
mov [bp+var_2], ax
mov word_12478, 1F48h
push ds
push word_12478
push ax
call file_read
call file_close
xor ax, ax
leave
retn 4
sub_A292 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_A2D1 proc near
push bp
mov bp, sp
pop bp
retn
sub_A2D1 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_A2D6 proc near
push bp
mov bp, sp
call egc_on
mov ax, 0FFF0h
mov dx, 4A0h
out dx, ax
mov ax, 0FFh
mov dx, 4A2h
out dx, ax
mov ax, 3100h
mov dx, 4A4h
out dx, ax
mov ax, 0FFFFh
mov dx, 4A8h
out dx, ax
mov ax, 0
mov dx, 4ACh
out dx, ax
mov ax, 0Fh
mov dx, 4AEh
out dx, ax
pop bp
retn
sub_A2D6 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_A30A proc near
var_4 = word ptr -4
var_2 = word ptr -2
arg_0 = word ptr 4
arg_2 = word ptr 6
enter 4, 0
push si
push di
mov ax, [bp+arg_2]
sar ax, 3
mov dx, [bp+arg_0]
shl dx, 6
add ax, dx
mov dx, [bp+arg_0]
shl dx, 4
add ax, dx
mov si, ax
call sub_A2D6
xor di, di
jmp short loc_A368
; ---------------------------------------------------------------------------
loc_A32F:
mov [bp+var_2], 0
jmp short loc_A35E
; ---------------------------------------------------------------------------
loc_A336:
mov dx, 0A6h ; '<27>'
mov al, 0
out dx, al
les bx, dword_FC3C
add bx, si
mov ax, es:[bx]
mov [bp+var_4], ax
mov al, 1
out dx, al
mov bx, word ptr dword_FC3C
add bx, si
mov ax, [bp+var_4]
mov es:[bx], ax
add [bp+var_2], 2
add si, 2
loc_A35E:
cmp [bp+var_2], 28h ; '('
jl short loc_A336
inc di
add si, 28h ; '('
loc_A368:
cmp di, 0C8h
jl short loc_A32F
call egc_off
mov dx, 0A6h ; '<27>'
mov al, 0
out dx, al
pop di
pop si
leave
retn 4
sub_A30A endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_A37F proc near
var_8 = dword ptr -8
var_4 = word ptr -4
var_2 = word ptr -2
arg_0 = word ptr 4
arg_2 = word ptr 6
arg_4 = word ptr 8
arg_6 = word ptr 0Ah
enter 8, 0
push si
push di
mov eax, dword_FCD2
mov [bp+var_8], eax
cmp [bp+arg_2], 1
jnz short loc_A39A
add word ptr [bp+var_8], 0A0h
jmp short loc_A3B2
; ---------------------------------------------------------------------------
loc_A39A:
cmp [bp+arg_2], 2
jnz short loc_A3A7
add word ptr [bp+var_8], 0FA00h
jmp short loc_A3B2
; ---------------------------------------------------------------------------
loc_A3A7:
cmp [bp+arg_2], 3
jnz short loc_A3B2
add word ptr [bp+var_8], 0FAA0h
loc_A3B2:
mov eax, [bp+var_8]
shr eax, 10h
mov dx, word ptr [bp+var_8]
shr dx, 4
add ax, dx
mov dx, word ptr [bp+var_8]
and dx, 0Fh
mov word ptr [bp+var_8+2], ax
mov word ptr [bp+var_8], dx
mov dx, 0A4h
mov al, 1
out dx, al
mov ax, [bp+arg_6]
sar ax, 3
mov dx, [bp+arg_4]
shl dx, 6
add ax, dx
mov dx, [bp+arg_4]
shl dx, 4
add ax, dx
mov si, ax
mov dx, 0A6h ; '<27>'
mov al, 0
out dx, al
xor di, di
jmp loc_A491
; ---------------------------------------------------------------------------
loc_A3F7:
push large 190h
push large [bp+var_8]
push 140h
call sub_35F2
call sub_A2D6
mov ax, 0FFh
mov dx, 4A2h
out dx, ax
mov ax, 3100h
mov dx, 4A4h
out dx, ax
mov ax, 0Fh
mov dx, 4AEh
out dx, ax
mov bx, [bp+arg_0]
shl bx, 3
mov ax, di
and ax, 3
add ax, ax
add bx, ax
mov ax, [bx+60Ch]
mov dx, 4A8h
out dx, ax
mov [bp+var_4], 7D00h
mov [bp+var_2], 0
jmp short loc_A461
; ---------------------------------------------------------------------------
loc_A444:
les bx, dword_FC3C
add bx, [bp+var_4]
mov ax, es:[bx]
mov bx, word ptr dword_FC3C
add bx, si
mov es:[bx], ax
inc [bp+var_2]
add si, 2
add [bp+var_4], 2
loc_A461:
cmp [bp+var_2], 14h
jl short loc_A444
call egc_off
add si, 28h ; '('
add word ptr [bp+var_8], 140h
mov eax, [bp+var_8]
shr eax, 10h
mov dx, word ptr [bp+var_8]
shr dx, 4
add ax, dx
mov dx, word ptr [bp+var_8]
and dx, 0Fh
mov word ptr [bp+var_8+2], ax
mov word ptr [bp+var_8], dx
inc di
loc_A491:
cmp di, 0C8h
jl loc_A3F7
mov dx, 0A4h
mov al, 0
out dx, al
push [bp+arg_6]
push [bp+arg_4]
call sub_A30A
pop di
pop si
leave
retn 8
sub_A37F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_A4AE proc near
var_8 = word ptr -8
var_6 = word ptr -6
var_4 = word ptr -4
var_2 = word ptr -2
enter 8, 0
push si
push di
call sub_A57F
mov dx, 0A6h ; '<27>'
mov al, 0
out dx, al
push 3C00h
call hmem_allocbyte
mov word ptr dword_1247A+2, ax
mov word ptr dword_1247A, 0
xor si, si
mov di, 140h
mov [bp+var_4], 0
jmp loc_A573
; ---------------------------------------------------------------------------
loc_A4DB:
mov [bp+var_2], 50h ; 'P'
mov [bp+var_6], 0
jmp loc_A567
; ---------------------------------------------------------------------------
loc_A4E8:
mov ax, [bp+var_2]
sar ax, 3
mov dx, di
shl dx, 6
add ax, dx
mov dx, di
shl dx, 4
add ax, dx
mov [bp+var_8], ax
les bx, dword_FC3C
add bx, [bp+var_8]
mov ax, es:[bx]
mov dx, si
add dx, dx
les bx, dword_1247A
add bx, dx
mov es:[bx], ax
inc si
les bx, dword_FC40
add bx, [bp+var_8]
mov ax, es:[bx]
mov dx, si
add dx, dx
les bx, dword_1247A
add bx, dx
mov es:[bx], ax
inc si
les bx, dword_FC44
add bx, [bp+var_8]
mov ax, es:[bx]
mov dx, si
add dx, dx
les bx, dword_1247A
add bx, dx
mov es:[bx], ax
inc si
les bx, dword_FC48
add bx, [bp+var_8]
mov ax, es:[bx]
mov dx, si
add dx, dx
les bx, dword_1247A
add bx, dx
mov es:[bx], ax
inc si
add [bp+var_6], 2
add [bp+var_2], 10h
loc_A567:
cmp [bp+var_6], 3Ch ; '<'
jl loc_A4E8
inc [bp+var_4]
inc di
loc_A573:
cmp [bp+var_4], 40h
jl loc_A4DB
pop di
pop si
leave
retn
sub_A4AE endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_A57F proc near
push bp
mov bp, sp
cmp dword_1247A, 0
jz short loc_A59C
push word ptr dword_1247A+2
call hmem_free
mov dword_1247A, 0
loc_A59C:
pop bp
retn
sub_A57F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_A59E proc near
var_6 = word ptr -6
var_4 = word ptr -4
var_2 = word ptr -2
enter 6, 0
push si
push di
xor cx, cx
mov si, 140h
mov [bp+var_4], 0
jmp loc_A641
; ---------------------------------------------------------------------------
loc_A5B1:
mov [bp+var_2], 50h ; 'P'
mov [bp+var_6], 0
jmp short loc_A637
; ---------------------------------------------------------------------------
loc_A5BD:
mov ax, [bp+var_2]
sar ax, 3
mov dx, si
shl dx, 6
add ax, dx
mov dx, si
shl dx, 4
add ax, dx
mov di, ax
mov ax, cx
add ax, ax
les bx, dword_1247A
add bx, ax
mov ax, es:[bx]
les bx, dword_FC3C
add bx, di
mov es:[bx], ax
inc cx
mov ax, cx
add ax, ax
les bx, dword_1247A
add bx, ax
mov ax, es:[bx]
les bx, dword_FC40
add bx, di
mov es:[bx], ax
inc cx
mov ax, cx
add ax, ax
les bx, dword_1247A
add bx, ax
mov ax, es:[bx]
les bx, dword_FC44
add bx, di
mov es:[bx], ax
inc cx
mov ax, cx
add ax, ax
les bx, dword_1247A
add bx, ax
mov ax, es:[bx]
les bx, dword_FC48
add bx, di
mov es:[bx], ax
inc cx
add [bp+var_6], 2
add [bp+var_2], 10h
loc_A637:
cmp [bp+var_6], 3Ch ; '<'
jl short loc_A5BD
inc [bp+var_4]
inc si
loc_A641:
cmp [bp+var_4], 40h
jl loc_A5B1
pop di
pop si
leave
retn
sub_A59E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_A64D proc near
var_2 = byte ptr -2
var_1 = byte ptr -1
arg_0 = dword ptr 4
enter 2, 0
mov bx, word_12478
mov cl, [bx]
inc word_12478
mov bx, word_12478
mov al, [bx]
mov [bp+var_1], al
inc word_12478
mov bx, word_12478
mov al, [bx]
mov [bp+var_2], al
inc word_12478
mov al, cl
mov ah, 0
mov bx, ax
test byte ptr [bx+0B69h], 2
jnz short loc_A694
les bx, [bp+arg_0]
mov ax, word_124C4
mov es:[bx], ax
sub word_12478, 3
leave
retn 4
; ---------------------------------------------------------------------------
loc_A694:
mov al, [bp+var_1]
mov ah, 0
mov bx, ax
test byte ptr [bx+0B69h], 2
jnz short loc_A6B8
mov al, cl
mov ah, 0
add ax, 0FFD0h
les bx, [bp+arg_0]
mov es:[bx], ax
sub word_12478, 2
leave
retn 4
; ---------------------------------------------------------------------------
loc_A6B8:
mov al, [bp+var_2]
mov ah, 0
mov bx, ax
test byte ptr [bx+0B69h], 2
jnz short loc_A6E8
mov al, cl
mov ah, 0
add ax, 0FFD0h
imul ax, 0Ah
mov dl, [bp+var_1]
mov dh, 0
add ax, dx
add ax, 0FFD0h
les bx, [bp+arg_0]
mov es:[bx], ax
dec word_12478
leave
retn 4
; ---------------------------------------------------------------------------
loc_A6E8:
mov al, cl
mov ah, 0
add ax, 0FFD0h
imul ax, 64h
mov dl, [bp+var_1]
mov dh, 0
add dx, 0FFD0h
imul dx, 0Ah
add ax, dx
mov dl, [bp+var_2]
mov dh, 0
add ax, dx
add ax, 0FFD0h
les bx, [bp+arg_0]
mov es:[bx], ax
leave
retn 4
sub_A64D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_A713 proc near
arg_0 = dword ptr 4
push bp
mov bp, sp
mov bx, word_12478
cmp byte ptr [bx], 2Ch ; ','
jnz short loc_A72E
inc word_12478
push large [bp+arg_0]
call sub_A64D
pop bp
retn 4
; ---------------------------------------------------------------------------
loc_A72E:
les bx, [bp+arg_0]
mov ax, word_124C4
mov es:[bx], ax
pop bp
retn 4
sub_A713 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_A73B proc near
push bp
mov bp, sp
add word_124BC, 10h
cmp word_124BC, 230h
jl short loc_A78D
add word_124BE, 10h
mov word_124BC, 90h
cmp word_124BE, 180h
jl short loc_A78D
call sub_A815
cmp byte_1247E, 0
jnz short loc_A76F
push 0
call sub_CE7A
loc_A76F:
mov word_124BC, 50h ; 'P'
mov word_124BE, 140h
mov dx, 0A6h ; '<27>'
mov al, 1
out dx, al
call sub_A59E
mov dx, 0A6h ; '<27>'
mov al, 0
out dx, al
call sub_A59E
loc_A78D:
pop bp
retn
sub_A73B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_A78F proc near
var_2 = word ptr -2
arg_0 = word ptr 4
enter 2, 0
push si
push di
mov cx, 140h
jmp short loc_A809
; ---------------------------------------------------------------------------
loc_A79A:
mov ax, 0FFh
mov dx, 4A2h
out dx, ax
mov ax, 3100h
mov dx, 4A4h
out dx, ax
mov ax, 0Fh
mov dx, 4AEh
out dx, ax
mov bx, [bp+arg_0]
shl bx, 3
mov ax, cx
and ax, 3
add ax, ax
add bx, ax
mov ax, [bx+62Ch]
mov dx, 4A8h
out dx, ax
mov ax, cx
shl ax, 6
mov dx, cx
shl dx, 4
add ax, dx
add ax, 0Ah
mov si, ax
xor di, di
jmp short loc_A802
; ---------------------------------------------------------------------------
loc_A7DB:
mov dx, 0A6h ; '<27>'
mov al, 1
out dx, al
les bx, dword_FC3C
add bx, si
mov ax, es:[bx]
mov [bp+var_2], ax
mov al, 0
out dx, al
mov bx, word ptr dword_FC3C
add bx, si
mov ax, [bp+var_2]
mov es:[bx], ax
add di, 10h
add si, 2
loc_A802:
cmp di, 1E0h
jl short loc_A7DB
inc cx
loc_A809:
cmp cx, 180h
jl short loc_A79A
pop di
pop si
leave
retn 2
sub_A78F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_A815 proc near
push bp
mov bp, sp
push si
call sub_A2D6
cmp byte_1247E, 0
jnz short loc_A83A
xor si, si
jmp short loc_A835
; ---------------------------------------------------------------------------
loc_A827:
push si
call sub_A78F
push word_124C0
call sub_CCA3
inc si
loc_A835:
cmp si, 4
jl short loc_A827
loc_A83A:
push 4
call sub_A78F
call egc_off
pop si
pop bp
retn
sub_A815 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_A847 proc near
var_16 = byte ptr -16h
var_6 = word ptr -6
var_4 = word ptr -4
var_2 = word ptr -2
arg_0 = byte ptr 4
enter 16h, 0
push si
mov al, [bp+arg_0]
mov ah, 0
push ax ; ch
call _tolower
pop cx
mov [bp+arg_0], al
mov ah, 0
mov [bp+var_6], ax
mov cx, 10h ; switch 16 cases
mov bx, offset word_ADBC
loc_A866:
mov ax, cs:[bx]
cmp ax, [bp+var_6]
jz short loc_A876
add bx, 2
loop loc_A866
jmp loc_ADB5 ; default
; ---------------------------------------------------------------------------
loc_A876:
jmp word ptr cs:[bx+20h] ; switch jump
loc_A87A:
add word_124BE, 10h ; jumptable 0000A876 case 110
mov word_124BC, 50h ; 'P'
cmp word_124BE, 180h
jl loc_ADB5 ; default
loc_A88F:
mov bx, word_12478 ; jumptable 0000A876 case 115
mov al, [bx]
mov [bp+arg_0], al
call sub_A815
cmp [bp+arg_0], 2Dh ; '-'
jz short loc_A8C0
mov word_124C4, 0
push ss
lea ax, [bp+var_2]
push ax
call sub_A64D
cmp byte_1247E, 0
jnz short loc_A8C4
push [bp+var_2]
call sub_CE7A
jmp short loc_A8C4
; ---------------------------------------------------------------------------
loc_A8C0:
inc word_12478
loc_A8C4:
mov word_124BC, 50h ; 'P'
mov word_124BE, 140h
mov dx, 0A6h ; '<27>'
mov al, 1
out dx, al
call sub_A59E
mov dx, 0A6h ; '<27>'
mov al, 0
out dx, al
call sub_A59E
jmp loc_ADB5 ; default
; ---------------------------------------------------------------------------
loc_A8E5:
mov word_124C4, 0Fh ; jumptable 0000A876 case 99
push ss
lea ax, [bp+var_2]
push ax
call sub_A64D
mov al, byte ptr [bp+var_2]
mov byte_124C2, al
jmp loc_ADB5 ; default
; ---------------------------------------------------------------------------
loc_A8FC:
mov word_124C4, 2 ; jumptable 0000A876 case 98
push ss
lea ax, [bp+var_2]
push ax
call sub_A64D
mov ax, [bp+var_2]
mov word_EB2C, ax
jmp loc_ADB5 ; default
; ---------------------------------------------------------------------------
loc_A913:
mov bx, word_12478 ; jumptable 0000A876 case 119
mov al, [bx]
mov ah, 0
push ax ; ch
call _tolower
pop cx
mov [bp+arg_0], al
cmp [bp+arg_0], 6Fh ; 'o'
jz short loc_A931
cmp [bp+arg_0], 69h ; 'i'
jnz short loc_A95F
loc_A931:
inc word_12478
mov word_124C4, 1
push ss
lea ax, [bp+var_2]
push ax
call sub_A64D
cmp [bp+arg_0], 69h ; 'i'
jnz short loc_A954
push [bp+var_2]
call palette_white_in
jmp loc_AD2B
; ---------------------------------------------------------------------------
loc_A954:
push [bp+var_2]
call palette_white_out
jmp loc_AD2B
; ---------------------------------------------------------------------------
loc_A95F:
call sub_A815
mov word_124C4, 40h
cmp [bp+arg_0], 6Dh ; 'm'
jz short loc_A994
cmp [bp+arg_0], 6Bh ; 'k'
jnz short loc_A978
inc word_12478
loc_A978:
push ss
lea ax, [bp+var_2]
push ax
call sub_A64D
cmp byte_1247E, 0
jnz loc_ADB5 ; default
push [bp+var_2]
call sub_CCA3
jmp loc_AD2B
; ---------------------------------------------------------------------------
loc_A994:
inc word_12478
mov bx, word_12478
mov al, [bx]
mov [bp+arg_0], al
cmp [bp+arg_0], 6Bh ; 'k'
jnz short loc_A9AB
inc word_12478
loc_A9AB:
push ss
lea ax, [bp+var_2]
push ax
call sub_A64D
push ss
lea ax, [bp+var_4]
push ax
call sub_A713
cmp byte_1247E, 0
jnz loc_ADB5 ; default
push [bp+var_2]
push [bp+var_4]
call sub_D046
jmp loc_ACFF
; ---------------------------------------------------------------------------
loc_A9D2:
mov bx, word_12478 ; jumptable 0000A876 case 118
cmp byte ptr [bx], 70h ; 'p'
jz short loc_A9F2
mov word_124C4, 1
push ss
lea ax, [bp+var_2]
push ax
call sub_A64D
mov ax, [bp+var_2]
mov word_124C0, ax
jmp loc_ADB5 ; default
; ---------------------------------------------------------------------------
loc_A9F2:
inc word_12478
mov word_124C4, 0
push ss
lea ax, [bp+var_2]
push ax
call sub_A64D
mov dx, 0A4h
mov al, byte ptr [bp+var_2]
out dx, al
jmp loc_ADB5 ; default
; ---------------------------------------------------------------------------
loc_AA0E:
mov word_124C4, 64h ; 'd' ; jumptable 0000A876 case 116
push ss
lea ax, [bp+var_2]
push ax
call sub_A64D
cmp byte_1247E, 0
jnz short loc_AA2A
push 1
call sub_CCA3
loc_AA2A:
mov ax, [bp+var_2]
mov PaletteTone, ax
call far ptr palette_show
jmp loc_ADB5 ; default
; ---------------------------------------------------------------------------
loc_AA38:
mov bx, word_12478 ; jumptable 0000A876 case 102
mov al, [bx]
mov [bp+arg_0], al
cmp [bp+arg_0], 6Dh ; 'm'
jz short loc_AA83
cmp [bp+arg_0], 69h ; 'i'
jz short loc_AA55
cmp [bp+arg_0], 6Fh ; 'o'
jnz loc_ADB5 ; default
loc_AA55:
inc word_12478
mov word_124C4, 1
push ss
lea ax, [bp+var_2]
push ax
call sub_A64D
cmp [bp+arg_0], 69h ; 'i'
jnz short loc_AA78
push [bp+var_2]
call palette_black_in
jmp loc_AD2B
; ---------------------------------------------------------------------------
loc_AA78:
push [bp+var_2]
call palette_black_out
jmp loc_AD2B
; ---------------------------------------------------------------------------
loc_AA83:
inc word_12478
mov word_124C4, 1
push ss
lea ax, [bp+var_2]
push ax
call sub_A64D
mov ax, [bp+var_2]
add ax, 200h
push ax
jmp loc_AD26
; ---------------------------------------------------------------------------
loc_AA9F:
mov bx, word_12478 ; jumptable 0000A876 case 103
cmp byte ptr [bx], 61h ; 'a'
jz short loc_AAF2
mov word_124C4, 8
push ss
lea ax, [bp+var_2]
push ax
call sub_A64D
mov [bp+var_4], 0
jmp short loc_AAE0
; ---------------------------------------------------------------------------
loc_AABD:
test byte ptr [bp+var_4], 1
jz short loc_AAC7
push 4
jmp short loc_AACA
; ---------------------------------------------------------------------------
loc_AAC7:
push 18Ch
loc_AACA:
call graph_scrollup
cmp byte_1247E, 0
jnz short loc_AADD
push 1
call sub_CCA3
loc_AADD:
inc [bp+var_4]
loc_AAE0:
mov ax, [bp+var_4]
cmp ax, [bp+var_2]
jle short loc_AABD
push 0
call graph_scrollup
jmp loc_AD2B
; ---------------------------------------------------------------------------
loc_AAF2:
inc word_12478
mov word_124C4, 0
push ss
lea ax, [bp+var_2]
push ax
call sub_A64D
mov dx, 0A6h ; '<27>'
mov al, 1
out dx, al
push word_124BC
push word_124BE
push [bp+var_2]
mov al, byte_124C2
mov ah, 0
push ax
call graph_gaiji_putc
call sub_A73B
jmp loc_ADB5 ; default
; ---------------------------------------------------------------------------
loc_AB26:
mov word_124C4, 0 ; jumptable 0000A876 case 107
push ss
lea ax, [bp+var_2]
push ax
call sub_A64D
cmp byte_1247E, 0
jnz loc_ADB5 ; default
push [bp+var_2]
call sub_CE7A
jmp loc_AD2B
; ---------------------------------------------------------------------------
loc_AB48:
mov dx, 0A6h ; '<27>' ; jumptable 0000A876 case 64
mov al, 1
out dx, al
call graph_clear
mov dx, 0A6h ; '<27>'
mov al, 0
out dx, al
call graph_clear
jmp loc_ADB5 ; default
; ---------------------------------------------------------------------------
loc_AB61:
mov bx, word_12478 ; jumptable 0000A876 case 112
mov al, [bx]
mov [bp+arg_0], al
inc word_12478
cmp [bp+arg_0], 3Dh ; '='
jz short loc_AB7A
cmp [bp+arg_0], 40h
jnz short loc_ABAA
loc_AB7A:
mov dx, 0A6h ; '<27>'
mov al, 1
out dx, al
cmp [bp+arg_0], 3Dh ; '='
jnz short loc_AB8D
push 0
call sub_CCB8
loc_AB8D:
push large 0
push 0
call sub_CCDD
push 0
call graph_copy_page
mov dx, 0A6h ; '<27>'
mov al, 0
out dx, al
call sub_A4AE
jmp loc_ADB5 ; default
; ---------------------------------------------------------------------------
loc_ABAA:
cmp [bp+arg_0], 2Dh ; '-'
jnz short loc_ABC1
push ds
push offset unk_FCEA
push large [dword_FCD2]
call graph_pi_free
jmp loc_ADB5 ; default
; ---------------------------------------------------------------------------
loc_ABC1:
cmp [bp+arg_0], 70h ; 'p'
jnz short loc_ABD1
push 0
call sub_CCB8
jmp loc_AD2B
; ---------------------------------------------------------------------------
loc_ABD1:
cmp [bp+arg_0], 2Ch ; ','
jz short loc_ABDE
dec word_12478
jmp loc_ADB5 ; default
; ---------------------------------------------------------------------------
loc_ABDE:
mov [bp+var_2], 0
jmp short loc_AC12
; ---------------------------------------------------------------------------
loc_ABE5:
mov bx, word_12478
mov al, [bx]
mov [bp+arg_0], al
inc word_12478
mov ah, 0
mov bx, ax
test byte ptr [bx+0B69h], 20h
jnz short loc_AC18
cmp [bp+arg_0], 20h ; ' '
jz short loc_AC18
lea bx, [bp+var_16]
add bx, [bp+var_2]
mov al, [bp+arg_0]
mov ss:[bx], al
inc [bp+var_2]
loc_AC12:
cmp [bp+var_2], 0Ch
jl short loc_ABE5
loc_AC18:
lea bx, [bp+var_16]
add bx, [bp+var_2]
mov byte ptr ss:[bx], 0
push ds
push offset unk_FCEA
push large [dword_FCD2]
call graph_pi_free
push 0
push ss
lea ax, [bp+var_16]
push ax
call sub_CD65
jmp loc_ADB5 ; default
; ---------------------------------------------------------------------------
loc_AC3F:
mov word_124C4, 4 ; jumptable 0000A876 case 61
mov bx, word_12478
mov al, [bx]
mov [bp+arg_0], al
cmp [bp+arg_0], 3Dh ; '='
jz short loc_AC94
push ss
lea ax, [bp+var_2]
push ax
call sub_A64D
mov dx, 0A4h
mov al, 1
out dx, al
mov dx, 0A6h ; '<27>'
mov al, 0
out dx, al
cmp [bp+var_2], 4
jge short loc_AC70
jmp short loc_ACE0
; ---------------------------------------------------------------------------
loc_AC70:
push large 0C00000h
call grcg_setcolor
push large 140040h
push large 3B0107h
call grcg_byteboxfill_x
mov dx, 7Ch ; '|'
mov al, 0
out dx, al
jmp short loc_ACF0
; ---------------------------------------------------------------------------
loc_AC94:
inc word_12478
push ss
lea ax, [bp+var_2]
push ax
call sub_A64D
mov word_124C4, 1
push ss
lea ax, [bp+var_4]
push ax
call sub_A713
xor si, si
jmp short loc_ACCF
; ---------------------------------------------------------------------------
loc_ACB2:
push large 0A00040h
push [bp+var_2]
push si
call sub_A37F
cmp byte_1247E, 0
jnz short loc_ACCE
push [bp+var_4]
call sub_CCA3
loc_ACCE:
inc si
loc_ACCF:
cmp si, 4
jl short loc_ACB2
mov dx, 0A4h
mov al, 1
out dx, al
mov dx, 0A6h ; '<27>'
mov al, 0
out dx, al
loc_ACE0:
push large 0A00040h
push 0
push [bp+var_2]
call sub_CDAB
loc_ACF0:
mov dx, 0A4h
mov al, 0
out dx, al
push large 0A00040h
call sub_A30A
loc_ACFF:
jmp loc_ADB5 ; default
; ---------------------------------------------------------------------------
loc_AD02:
mov bx, word_12478 ; jumptable 0000A876 case 109
mov al, [bx]
mov [bp+arg_0], al
cmp [bp+arg_0], 24h ; '$'
jnz short loc_AD1A
inc word_12478
push 100h
jmp short loc_AD26
; ---------------------------------------------------------------------------
loc_AD1A:
cmp [bp+arg_0], 2Ah ; '*'
jnz short loc_AD2E
inc word_12478
loc_AD24:
push 0
loc_AD26:
call sub_CF8C
loc_AD2B:
; Hack
db 0e9h
db 087h
db 000h
; ---------------------------------------------------------------------------
loc_AD2E:
cmp [bp+arg_0], 2Ch ; ','
; Hack
db 00fh
db 085h
db 07fh
db 000h
inc word_12478
mov [bp+var_2], 0
jmp short loc_AD6E
; ---------------------------------------------------------------------------
loc_AD41:
mov bx, word_12478
mov al, [bx]
mov [bp+arg_0], al
inc word_12478
mov ah, 0
mov bx, ax
test byte ptr [bx+0B69h], 20h
jnz short loc_AD74
cmp [bp+arg_0], 20h ; ' '
jz short loc_AD74
lea bx, [bp+var_16]
add bx, [bp+var_2]
mov al, [bp+arg_0]
mov ss:[bx], al
inc [bp+var_2]
loc_AD6E:
cmp [bp+var_2], 0Ch
jl short loc_AD41
loc_AD74:
lea bx, [bp+var_16]
add bx, [bp+var_2]
mov byte ptr ss:[bx], 0
push 100h
call sub_CF8C
push ss
lea ax, [bp+var_16]
push ax
push 600h
call sub_D112
jmp short loc_AD24
; ---------------------------------------------------------------------------
loc_AD95:
push ss ; jumptable 0000A876 case 101
lea ax, [bp+var_2]
push ax
call sub_A64D
call sub_D594
push [bp+var_2]
call sub_D5A0
call sub_D5DA
jmp short loc_ADB5 ; default
; ---------------------------------------------------------------------------
loc_ADB1:
mov al, 0FFh ; jumptable 0000A876 case 36
jmp short loc_ADB7
; ---------------------------------------------------------------------------
loc_ADB5:
mov al, 0 ; default
loc_ADB7:
pop si
leave
retn 2
sub_A847 endp
; ---------------------------------------------------------------------------
word_ADBC dw 24h, 3Dh, 40h, 62h
dw 63h, 65h, 66h, 67h ; value table for switch statement
dw 6Bh, 6Dh, 6Eh, 70h
dw 73h, 74h, 76h, 77h
dw offset loc_ADB1 ; jump table for switch statement
dw offset loc_AC3F
dw offset loc_AB48
dw offset loc_A8FC
dw offset loc_A8E5
dw offset loc_AD95
dw offset loc_AA38
dw offset loc_AA9F
dw offset loc_AB26
dw offset loc_AD02
dw offset loc_A87A
dw offset loc_AB61
dw offset loc_A88F
dw offset loc_AA0E
dw offset loc_A9D2
dw offset loc_A913
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_ADFC proc near
var_6 = dword ptr -6
var_1 = byte ptr -1
enter 6, 0
mov word ptr [bp+var_6+2], ds
mov word ptr [bp+var_6], 654h
mov word_124BC, 50h ; 'P'
mov word_124BE, 140h
mov word_124C0, 1
mov byte_124C2, 0Fh
mov word_EB2C, 2
call sub_A4AE
mov byte_1247E, 0
loc_AE2D:
call far ptr sub_D48A
test byte ptr word_10072+1, 10h
jz short loc_AE40
mov byte_1247E, 1
jmp short loc_AE45
; ---------------------------------------------------------------------------
loc_AE40:
mov byte_1247E, 0
loc_AE45:
mov bx, word_12478
mov al, [bx]
mov [bp+var_1], al
inc word_12478
mov ah, 0
mov bx, ax
test byte ptr [bx+0B69h], 20h
jnz short loc_AE2D
cmp [bp+var_1], 20h ; ' '
jz short loc_AE2D
cmp [bp+var_1], 5Ch
jnz short loc_AE82
mov bx, word_12478
mov al, [bx]
mov [bp+var_1], al
inc word_12478
push word ptr [bp+var_1]
call sub_A847
cmp al, 0FFh
jnz short loc_AE2D
jmp short loc_AEC8
; ---------------------------------------------------------------------------
loc_AE82:
les bx, [bp+var_6]
mov al, [bp+var_1]
mov es:[bx], al
mov bx, word_12478
mov al, [bx]
mov [bp+var_1], al
mov bx, word ptr [bp+var_6]
mov es:[bx+1], al
inc word_12478
mov dx, 0A4h
mov al, 0
out dx, al
mov dx, 0A6h ; '<27>'
mov al, 1
out dx, al
push word_124BC
push word_124BE
mov al, byte_124C2
mov ah, 0
push ax
push word ptr [bp+var_6+2]
push bx
call far ptr loc_D1FC
call sub_A73B
jmp loc_AE2D
; ---------------------------------------------------------------------------
loc_AEC8:
call sub_A59E
call sub_A57F
leave
retn
sub_ADFC endp
; ---------------------------------------------------------------------------
enter 2, 0
push si
push di
mov si, [bp+4]
or si, si
jnz short loc_AEF1
push word ptr [bp+8]
push word ptr [bp+6]
mov al, byte_124C6
mov ah, 0
push ax
call far ptr loc_D356
jmp loc_B027
; ---------------------------------------------------------------------------
loc_AEF1:
push large 0C0000Fh
call grcg_setcolor
mov bx, 4
mov ax, si
cwd
idiv bx
mov si, ax
push word ptr [bp+8]
push ax
mov al, byte_124C7
mov ah, 0
add ax, ax
mov bx, ax
push word ptr [bx+1F4h]
call sub_CED0
mov di, ax
push word ptr [bp+6]
push si
mov al, byte_124C7
mov ah, 0
add ax, ax
mov bx, ax
push word ptr [bx+174h]
call sub_CED0
mov [bp-2], ax
push di
push ax
mov al, byte_124C6
mov ah, 0
inc ax
push ax
push 0
call far ptr loc_D078
mov al, byte_124C7
add al, 40h
mov byte_124C7, al
push word ptr [bp+8]
push si
mov ah, 0
add ax, ax
mov bx, ax
push word ptr [bx+1F4h]
call sub_CED0
mov di, ax
push word ptr [bp+6]
push si
mov al, byte_124C7
mov ah, 0
add ax, ax
mov bx, ax
push word ptr [bx+174h]
call sub_CED0
mov [bp-2], ax
push di
push ax
mov al, byte_124C6
mov ah, 0
inc ax
push ax
push 1
call far ptr loc_D078
mov al, byte_124C7
add al, 40h
mov byte_124C7, al
push word ptr [bp+8]
push si
mov ah, 0
add ax, ax
mov bx, ax
push word ptr [bx+1F4h]
call sub_CED0
mov di, ax
push word ptr [bp+6]
push si
mov al, byte_124C7
mov ah, 0
add ax, ax
mov bx, ax
push word ptr [bx+174h]
call sub_CED0
mov [bp-2], ax
push di
push ax
mov al, byte_124C6
mov ah, 0
inc ax
push ax
push 2
call far ptr loc_D078
mov al, byte_124C7
add al, 40h
mov byte_124C7, al
push word ptr [bp+8]
push si
mov ah, 0
add ax, ax
mov bx, ax
push word ptr [bx+1F4h]
call sub_CED0
mov di, ax
push word ptr [bp+6]
push si
mov al, byte_124C7
mov ah, 0
add ax, ax
mov bx, ax
push word ptr [bx+174h]
call sub_CED0
mov [bp-2], ax
push di
push ax
mov al, byte_124C6
mov ah, 0
inc ax
push ax
push 3
call far ptr loc_D078
mov al, byte_124C7
add al, 40h
mov byte_124C7, al
mov dx, 7Ch ; '|'
mov al, 0
out dx, al
loc_B027:
pop di
pop si
leave
retn 6
; ---------------------------------------------------------------------------
enter 2, 0
push si
push di
mov si, [bp+4]
or si, si
jnz short loc_B04E
push word ptr [bp+8]
push word ptr [bp+6]
mov al, byte_124C6
mov ah, 0
push ax
call far ptr loc_D356
jmp loc_B13E
; ---------------------------------------------------------------------------
loc_B04E:
push large 0C0000Fh
call grcg_setcolor
mov ax, si
cwd
sub ax, dx
sar ax, 1
mov si, ax
push word ptr [bp+8]
cwd
sub ax, dx
sar ax, 1
push ax
push _CosTable8+192
call sub_CED0
mov di, ax
push word ptr [bp+6]
mov ax, si
cwd
sub ax, dx
sar ax, 1
push ax
push _CosTable8+64
call sub_CED0
mov [bp-2], ax
push di
push ax
mov al, byte_124C6
mov ah, 0
inc ax
push ax
push 0
call far ptr loc_D078
push word ptr [bp+8]
push si
push _CosTable8+128
call sub_CED0
mov di, ax
push word ptr [bp+6]
push si
push _CosTable8
call sub_CED0
mov [bp-2], ax
push di
push ax
mov al, byte_124C6
mov ah, 0
inc ax
push ax
push 1
call far ptr loc_D078
push word ptr [bp+8]
mov ax, si
cwd
sub ax, dx
sar ax, 1
push ax
push _CosTable8+448
call sub_CED0
mov di, ax
push word ptr [bp+6]
mov ax, si
cwd
sub ax, dx
sar ax, 1
push ax
push _CosTable8+320
call sub_CED0
mov [bp-2], ax
push di
push ax
mov al, byte_124C6
mov ah, 0
inc ax
push ax
push 2
call far ptr loc_D078
push word ptr [bp+8]
push si
push _CosTable8+384
call sub_CED0
mov di, ax
push word ptr [bp+6]
push si
push _CosTable8+256
call sub_CED0
mov [bp-2], ax
push di
push ax
mov al, byte_124C6
mov ah, 0
inc ax
push ax
push 3
call far ptr loc_D078
mov dx, 7Ch ; '|'
mov al, 0
out dx, al
loc_B13E:
pop di
pop si
leave
retn 6
; ---------------------------------------------------------------------------
enter 2, 0
push si
push di
mov si, [bp+4]
or si, si
jnz short loc_B165
push word ptr [bp+8]
push word ptr [bp+6]
mov al, byte_124C6
mov ah, 0
push ax
call far ptr loc_D356
jmp loc_B255
; ---------------------------------------------------------------------------
loc_B165:
push large 0C0000Fh
call grcg_setcolor
mov ax, si
cwd
sub ax, dx
sar ax, 1
mov si, ax
push word ptr [bp+8]
cwd
sub ax, dx
sar ax, 1
push ax
push _CosTable8
call sub_CED0
mov di, ax
push word ptr [bp+6]
mov ax, si
cwd
sub ax, dx
sar ax, 1
push ax
push _SinTable8
call sub_CED0
mov [bp-2], ax
push di
push ax
mov al, byte_124C6
mov ah, 0
inc ax
push ax
push 0
call far ptr loc_D078
push word ptr [bp+8]
push si
push _CosTable8
call sub_CED0
mov di, ax
push word ptr [bp+6]
push si
push _SinTable8
call sub_CED0
mov [bp-2], ax
push di
push ax
mov al, byte_124C6
mov ah, 0
inc ax
push ax
push 1
call far ptr loc_D078
push word ptr [bp+8]
mov ax, si
cwd
sub ax, dx
sar ax, 1
push ax
push _CosTable8+256
call sub_CED0
mov di, ax
push word ptr [bp+6]
mov ax, si
cwd
sub ax, dx
sar ax, 1
push ax
push _CosTable8+128
call sub_CED0
mov [bp-2], ax
push di
push ax
mov al, byte_124C6
mov ah, 0
inc ax
push ax
push 2
call far ptr loc_D078
push word ptr [bp+8]
push si
push _CosTable8+256
call sub_CED0
mov di, ax
push word ptr [bp+6]
push si
push _CosTable8+128
call sub_CED0
mov [bp-2], ax
push di
push ax
mov al, byte_124C6
mov ah, 0
inc ax
push ax
push 3
call far ptr loc_D078
mov dx, 7Ch ; '|'
mov al, 0
out dx, al
loc_B255:
pop di
pop si
leave
retn 6
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_B25B proc near
arg_0 = word ptr 4
arg_2 = word ptr 6
arg_4 = word ptr 8
arg_6 = word ptr 0Ah
arg_8 = word ptr 0Ch
push bp
mov bp, sp
push si
mov si, [bp+arg_0]
mov ax, si
cwd
sub ax, dx
sar ax, 1
mov si, ax
mov ax, [bp+arg_8]
sub ax, si
push ax
mov ax, [bp+arg_6]
sub ax, si
push ax
mov ax, si
add ax, ax
add ax, [bp+arg_4]
push ax
mov ax, si
add ax, ax
add ax, [bp+arg_2]
push ax
call far ptr loc_D6F6
pop si
pop bp
retn 0Ah
sub_B25B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_B291 proc near
var_2 = word ptr -2
arg_0 = word ptr 4
arg_2 = word ptr 6
enter 2, 0
push si
push di
mov di, [bp+arg_2]
mov si, 3Fh ; '?'
mov [bp+var_2], 0
mov dx, 0A6h ; '<27>'
mov al, 0
out dx, al
mov dx, 0A4h
mov al, 1
jmp short loc_B30B
; ---------------------------------------------------------------------------
loc_B2AF:
push di
push [bp+arg_0]
mov al, byte_124C6
mov ah, 0
shl ax, 4
mov bx, ax
push word ptr [bx+1B48h]
mov al, byte_124C6
mov ah, 0
shl ax, 4
mov bx, ax
push word ptr [bx+1B4Ah]
lea ax, [si+1]
push ax
call sub_B25B
dec si
mov al, byte_124C7
add al, 8
mov byte_124C7, al
push di
push [bp+arg_0]
push si
call word_124C8
loc_B2E8:
cmp vsync_Count1, 2
jb short loc_B2E8
mov vsync_Count1, 0
mov dx, 0A4h
mov al, byte ptr [bp+var_2]
out dx, al
mov ax, 1
sub ax, [bp+var_2]
mov [bp+var_2], ax
mov dx, 0A6h ; '<27>'
mov al, byte ptr [bp+var_2]
loc_B30B:
out dx, al
or si, si
jg short loc_B2AF
push [bp+var_2]
call graph_copy_page
pop di
pop si
leave
retn 4
sub_B291 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_B31E proc near
var_2 = word ptr -2
arg_0 = word ptr 4
arg_2 = word ptr 6
enter 2, 0
push si
push di
mov di, [bp+arg_2]
xor si, si
mov [bp+var_2], 0
mov dx, 0A6h ; '<27>'
mov al, 0
out dx, al
mov dx, 0A4h
mov al, 1
loc_B339:
out dx, al
push di
push [bp+arg_0]
mov al, byte_124C6
mov ah, 0
shl ax, 4
mov bx, ax
push word ptr [bx+1B48h]
mov al, byte_124C6
mov ah, 0
shl ax, 4
mov bx, ax
push word ptr [bx+1B4Ah]
push si
call sub_B25B
inc si
mov al, byte_124C7
add al, 8
mov byte_124C7, al
cmp si, 40h
jge short loc_B39A
push di
push [bp+arg_0]
push si
call word_124C8
loc_B375:
cmp vsync_Count1, 2
jb short loc_B375
mov vsync_Count1, 0
mov dx, 0A4h
mov al, byte ptr [bp+var_2]
out dx, al
mov ax, 1
sub ax, [bp+var_2]
mov [bp+var_2], ax
mov dx, 0A6h ; '<27>'
mov al, byte ptr [bp+var_2]
jmp short loc_B339
; ---------------------------------------------------------------------------
loc_B39A:
mov ax, 1
sub ax, [bp+var_2]
push ax
call graph_copy_page
pop di
pop si
leave
retn 4
sub_B31E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_B3AC proc near
var_2 = word ptr -2
arg_0 = word ptr 4
arg_2 = word ptr 6
arg_4 = word ptr 8
arg_6 = word ptr 0Ah
enter 2, 0
push si
push di
mov di, [bp+arg_6]
xor si, si
mov [bp+var_2], 0
mov dx, 0A6h ; '<27>'
mov al, 0
out dx, al
mov dx, 0A4h
mov al, 1
loc_B3C7:
out dx, al
push di
push [bp+arg_4]
push word_10098
push word_1009A
push si
call sub_B25B
push [bp+arg_2]
push [bp+arg_0]
push word_10078
push word_1007A
push si
call sub_B25B
inc si
mov al, byte_124C7
add al, 0F8h
mov byte_124C7, al
cmp si, 40h
jge short loc_B43B
mov byte_124C6, 2
push di
push [bp+arg_4]
push si
call word_124C8
mov byte_124C6, 0
push [bp+arg_2]
push [bp+arg_0]
push si
call word_124C8
loc_B416:
cmp vsync_Count1, 2
jb short loc_B416
mov vsync_Count1, 0
mov dx, 0A4h
mov al, byte ptr [bp+var_2]
out dx, al
mov ax, 1
sub ax, [bp+var_2]
mov [bp+var_2], ax
mov dx, 0A6h ; '<27>'
mov al, byte ptr [bp+var_2]
jmp short loc_B3C7
; ---------------------------------------------------------------------------
loc_B43B:
mov ax, 1
sub ax, [bp+var_2]
push ax
call graph_copy_page
pop di
pop si
leave
retn 8
sub_B3AC endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_B44D proc near
push bp
mov bp, sp
mov PaletteTone, 0
call far ptr palette_show
mov dx, 0A6h ; '<27>'
mov al, 1
out dx, al
push 0
push ds
push offset aSff1_pi ; "sff1.pi"
call sub_CD65
push 0
call sub_CCB8
push large 0
push 0
call sub_CCDD
push ds
push offset unk_FCEA
push large [dword_FCD2]
call graph_pi_free
push 0
call graph_copy_page
call sub_D626
push 100h
call sub_CF8C
push ds
push offset aStaff ; "staff"
push 600h
call sub_D112
push 0
call sub_CF8C
push 0Ch
call palette_black_in
push 0
push ds
push offset aSff1_cdg ; "sff1.cdg"
push 0
call sub_D77E
push 1
push ds
push offset aSff1b_cdg ; "sff1b.cdg"
push 0
call far ptr sub_D778
push large 30040h
call sub_D046
mov byte_124C6, 0
mov word_124C8, 0E80h
push large 16000A0h
call sub_B291
push 2
push ds
push offset aSff2_cdg ; "sff2.cdg"
push 0
call sub_D77E
push 3
push ds
push offset aSff2b_cdg ; "sff2b.cdg"
push 0
call far ptr sub_D778
push large 700A0h
call sub_D046
mov word_124C8, 0FDDh
push large 16000A0h
call sub_B31E
mov byte_124C6, 2
mov word_124C8, 10F4h
push large 0C00080h
call sub_B291
mov dx, 0A6h ; '<27>'
mov al, 0
out dx, al
mov byte_124C6, 0
push 0
push ds
push offset aSff3_cdg ; "sff3.cdg"
push 0
call sub_D77E
push 1
push ds
push offset aSff3b_cdg ; "sff3b.cdg"
push 0
call far ptr sub_D778
push large 0B00A0h
call sub_D046
push large 12000C8h
call sub_B291
push large 1300A0h
call sub_D046
mov word_124C8, 0FDDh
push large 0C00080h
push large 12000C8h
call sub_B3AC
push 4
call palette_black_out
call sub_D8CE
mov dx, 0A6h ; '<27>'
mov al, 1
out dx, al
push 0
push ds
push offset aSff2_pi ; "sff2.pi"
call sub_CD65
push 0
call sub_CCB8
push large 0
push 0
call sub_CCDD
push ds
push offset unk_FCEA
push large [dword_FCD2]
call graph_pi_free
push 0
call graph_copy_page
call sub_D626
push 4
call palette_black_in
push 2
push ds
push offset aSff4_cdg ; "sff4.cdg"
push 0
call sub_D77E
push 3
push ds
push offset aSff4b_cdg ; "sff4b.cdg"
push 0
call far ptr sub_D778
push large 1700A0h
call sub_D046
mov byte_124C6, 2
mov word_124C8, 10F4h
push large 200070h
call sub_B291
push 2
call sub_D898
push 4
push ds
push offset aSff5_cdg ; "sff5.cdg"
push 0
call sub_D77E
push 5
push ds
push offset aSff5b_cdg ; "sff5b.cdg"
push 0
call far ptr sub_D778
push large 1B00A0h
call sub_D046
mov byte_124C6, 4
mov word_124C8, 0FDDh
push large 2000B8h
call sub_B291
push 0
push ds
push offset aSff8_cdg ; "sff8.cdg"
push 0
call sub_D77E
push 1
push ds
push offset aSff8b_cdg ; "sff8b.cdg"
push 0
call far ptr sub_D778
push large 1F00A0h
call sub_D046
mov word_124C8, 10F4h
push large 2000B8h
call sub_B31E
mov byte_124C6, 0
push large 4000B8h
call sub_B291
push 4
push ds
push offset aSff9_cdg ; "sff9.cdg"
push 0
call sub_D77E
push 5
push ds
push offset aSff9b_cdg ; "sff9b.cdg"
push 0
call far ptr sub_D778
push large 2300A0h
call sub_D046
mov word_124C8, 0E80h
push large 4000B8h
call sub_B31E
mov byte_124C6, 4
push large 4000B8h
call sub_B291
push 0
push ds
push offset aSff6_cdg ; "sff6.cdg"
push 0
call sub_D77E
push 1
push ds
push offset aSff6b_cdg ; "sff6b.cdg"
push 0
call far ptr sub_D778
push large 2700A0h
call sub_D046
mov word_124C8, 0FDDh
push large 4000B8h
call sub_B31E
mov byte_124C6, 0
push large 2000B8h
call sub_B291
push large 2B00A0h
call sub_D046
mov word_124C8, 10F4h
push large 200070h
push large 2000B8h
call sub_B3AC
push 0
push ds
push offset aSff7_cdg ; "sff7.cdg"
push 0
call sub_D77E
push 1
push ds
push offset aSff7b_cdg ; "sff7b.cdg"
push 0
call far ptr sub_D778
mov byte_124C6, 0
push large 200150h
call sub_B291
push large 3000A0h
call sub_D046
call sub_D6C4
call sub_D8CE
push 4
call palette_black_out
pop bp
retn
sub_B44D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_B787 proc near
var_6 = word ptr -6
var_4 = byte ptr -4
var_3 = byte ptr -3
var_2 = byte ptr -2
var_1 = byte ptr -1
arg_0 = word ptr 4
arg_2 = word ptr 6
arg_4 = word ptr 8
enter 6, 0
push si
xor si, si
mov [bp+var_4], 2
mov ax, [bp+arg_0]
mov bx, 64h ; 'd'
xor dx, dx
div bx
mov [bp+var_6], ax
mov ax, [bp+arg_0]
xor dx, dx
div bx
mov [bp+arg_0], dx
cmp byte_EC73, 0
jnz short loc_B7C5
or si, [bp+var_6]
or si, si
jz short loc_B7C1
mov al, byte ptr [bp+var_6]
add al, 0A0h
mov [bp+var_4], al
jmp short loc_B7C5
; ---------------------------------------------------------------------------
loc_B7C1:
mov [bp+var_4], 2
loc_B7C5:
mov ax, [bp+arg_0]
mov bx, 0Ah
xor dx, dx
div bx
mov [bp+var_6], ax
mov ax, [bp+arg_0]
xor dx, dx
div bx
mov [bp+arg_0], dx
or si, [bp+var_6]
mov al, byte_EC73
mov ah, 0
or si, ax
or si, si
jz short loc_B7F4
mov al, byte ptr [bp+var_6]
add al, 0A0h
mov [bp+var_3], al
jmp short loc_B7F8
; ---------------------------------------------------------------------------
loc_B7F4:
mov [bp+var_3], 2
loc_B7F8:
mov al, byte ptr [bp+arg_0]
add al, 0A0h
mov [bp+var_2], al
mov [bp+var_1], 0
push [bp+arg_4]
push [bp+arg_2]
push 10h
push ss
lea ax, [bp+var_4]
push ax
push 0Eh
call graph_gaiji_puts
pop si
leave
retn 6
sub_B787 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_B81D proc near
var_C = byte ptr -0Ch
var_4 = byte ptr -4
var_2 = byte ptr -2
var_1 = byte ptr -1
enter 0Ch, 0
push si
mov [bp+var_2], 0
xor si, si
jmp short loc_B851
; ---------------------------------------------------------------------------
loc_B82A:
mov ax, 7
sub ax, si
les bx, dword_F3CE
add bx, ax
mov al, es:[bx+1Dh]
mov [bp+var_1], al
or [bp+var_2], al
cmp [bp+var_2], 0
jz short loc_B84C
add al, 0A0h
mov [bp+si+var_C], al
jmp short loc_B850
; ---------------------------------------------------------------------------
loc_B84C:
mov [bp+si+var_C], 2
loc_B850:
inc si
loc_B851:
cmp si, 8
jl short loc_B82A
mov [bp+var_4], 0
push large 0A00060h
push 10h
push ss
lea ax, [bp+var_C]
push ax
push 0Eh
call graph_gaiji_puts
mov [bp+var_2], 1
push large 1200060h
push 0Eh
push ds
push offset aU_ ; "<22>_"
call far ptr loc_D1FC
pop si
leave
retn
sub_B81D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_B886 proc near
var_6 = dword ptr -6
var_2 = word ptr -2
arg_0 = word ptr 4
arg_2 = word ptr 6
arg_4 = word ptr 8
arg_6 = word ptr 0Ah
enter 6, 0
push si
push di
mov si, [bp+arg_6]
mov di, [bp+arg_4]
cmp [bp+arg_2], 0
jz short loc_B8A2
mov [bp+var_6], 0F4240h
jmp short loc_B8AA
; ---------------------------------------------------------------------------
loc_B8A2:
mov [bp+var_6], 0
loc_B8AA:
mov ax, [bp+arg_2]
cmp ax, [bp+arg_0]
jz short loc_B8E3
cmp [bp+arg_2], 0
jz short loc_B8CD
movzx ebx, [bp+arg_2]
mov eax, [bp+var_6]
xor edx, edx
div ebx
mov [bp+var_6], eax
jmp short loc_B8D5
; ---------------------------------------------------------------------------
loc_B8CD:
mov [bp+var_6], 0
loc_B8D5:
movzx eax, [bp+arg_0]
imul eax, [bp+var_6]
mov [bp+var_6], eax
loc_B8E3:
cmp byte_EC4A, 0
jnz short loc_B8F4
mov eax, dword_124CE
add eax, [bp+var_6]
jmp short loc_B8FC
; ---------------------------------------------------------------------------
loc_B8F4:
mov eax, dword_124CE
sub eax, [bp+var_6]
loc_B8FC:
mov dword_124CE, eax
mov eax, [bp+var_6]
mov ebx, 2710h
xor edx, edx
div ebx
mov [bp+var_2], ax
push si
push di
push ax
call sub_B787
mov ebx, 2710h
mov eax, [bp+var_6]
xor edx, edx
div ebx
mov [bp+var_6], edx
mov eax, [bp+var_6]
mov ebx, 64h ; 'd'
xor edx, edx
div ebx
mov [bp+var_2], ax
mov byte_EC73, 1
lea ax, [si+30h]
push ax
push di
push [bp+var_2]
call sub_B787
mov byte_EC73, 0
lea ax, [si+30h]
push ax
push di
push 0Eh
push ds
push offset aBd ; "<22>D"
call far ptr loc_D1FC
lea ax, [si+60h]
push ax
push di
push 0Eh
push ds
push offset aBu ; "<22><>"
call far ptr loc_D1FC
pop di
pop si
leave
retn 8
sub_B886 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_B97B proc near
var_2 = word ptr -2
arg_0 = dword ptr 4
arg_4 = word ptr 8
arg_6 = word ptr 0Ah
enter 2, 0
push si
push di
mov si, [bp+arg_6]
mov di, [bp+arg_4]
mov eax, [bp+arg_0]
mov ebx, 2710h
xor edx, edx
div ebx
mov [bp+var_2], ax
push si
push di
push ax
call sub_B787
mov ebx, 2710h
mov eax, [bp+arg_0]
xor edx, edx
div ebx
mov [bp+arg_0], edx
mov eax, [bp+arg_0]
mov ebx, 64h ; 'd'
xor edx, edx
div ebx
mov [bp+var_2], ax
mov byte_EC73, 1
lea ax, [si+30h]
push ax
push di
push [bp+var_2]
call sub_B787
mov byte_EC73, 0
lea ax, [si+30h]
push ax
push di
push 0Eh
push ds
push offset aBd_0 ; "<22>D"
call far ptr loc_D1FC
pop di
pop si
leave
retn 8
sub_B97B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_B9F2 proc near
var_8 = dword ptr -8
var_4 = dword ptr -4
enter 8, 0
les bx, dword_F3CE
mov eax, es:[bx+14h]
mov random_seed, eax
mov al, es:[bx+0Ch]
mov ah, 0
dec ax
mov bx, ax
cmp bx, 5
ja short loc_BA52
add bx, bx
jmp cs:off_BB75[bx]
loc_BA18:
mov [bp+var_4], 9C4h
jmp short loc_BA52
; ---------------------------------------------------------------------------
loc_BA22:
mov [bp+var_4], 7D0h
jmp short loc_BA52
; ---------------------------------------------------------------------------
loc_BA2C:
mov [bp+var_4], 5DCh
jmp short loc_BA52
; ---------------------------------------------------------------------------
loc_BA36:
mov [bp+var_4], 3E8h
jmp short loc_BA52
; ---------------------------------------------------------------------------
loc_BA40:
mov [bp+var_4], 1F4h
jmp short loc_BA52
; ---------------------------------------------------------------------------
loc_BA4A:
mov [bp+var_4], 0
loc_BA52:
les bx, dword_F3CE
mov al, es:[bx+0Eh]
mov ah, 0
or ax, ax
jz short loc_BA67
cmp ax, 1
jz short loc_BA71
jmp short loc_BA79
; ---------------------------------------------------------------------------
loc_BA67:
add [bp+var_4], 9C4h
jmp short loc_BA79
; ---------------------------------------------------------------------------
loc_BA71:
add [bp+var_4], 5DCh
loc_BA79:
les bx, dword_F3CE
cmp byte ptr es:[bx+49h], 0
jz short loc_BA8C
add [bp+var_4], 7D0h
loc_BA8C:
les bx, dword_F3CE
cmp word ptr es:[bx+38h], 0
jz short loc_BAA5
mov ax, es:[bx+38h]
add ax, ax
movzx eax, ax
add [bp+var_4], eax
loc_BAA5:
mov [bp+var_8], 0F4240h
les bx, dword_F3CE
mov ax, es:[bx+28h]
cmp ax, es:[bx+2Ah]
jz short loc_BAF3
cmp word ptr es:[bx+28h], 0
jz short loc_BAD8
movzx ebx, word ptr es:[bx+28h]
mov eax, [bp+var_8]
xor edx, edx
div ebx
mov [bp+var_8], eax
jmp short loc_BAE0
; ---------------------------------------------------------------------------
loc_BAD8:
mov [bp+var_8], 0
loc_BAE0:
les bx, dword_F3CE
movzx eax, word ptr es:[bx+2Ah]
imul eax, [bp+var_8]
mov [bp+var_8], eax
loc_BAF3:
mov eax, 0F4240h
sub eax, [bp+var_8]
mov [bp+var_8], eax
mov ebx, 64h ; 'd'
xor edx, edx
div ebx
mov [bp+var_8], eax
cmp [bp+var_8], 0
jz short loc_BB2A
call IRand
cwde
xor edx, edx
div [bp+var_8]
add [bp+var_4], edx
loc_BB2A:
mov eax, [bp+var_4]
imul eax, 64h
mov [bp+var_4], eax
cmp [bp+var_4], 0F4240h
jbe short loc_BB48
mov [bp+var_4], 0F4240h
loc_BB48:
mov eax, dword_124CE
add eax, [bp+var_4]
mov dword_124CE, eax
push large 0C00108h
push large [bp+var_4]
call sub_B97B
push large 1200108h
push 0Eh
push ds
push offset aBu_0 ; "<22><>"
call far ptr loc_D1FC
leave
retn
sub_B9F2 endp
; ---------------------------------------------------------------------------
db 0
off_BB75 dw offset loc_BA18
dw offset loc_BA22
dw offset loc_BA2C
dw offset loc_BA36
dw offset loc_BA40
dw offset loc_BA4A
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_BB81 proc near
var_4 = dword ptr -4
enter 4, 0
push si
mov word_EB2C, 2
mov dx, 0A6h ; '<27>'
mov al, 0
out dx, al
mov dx, 0A4h
out dx, al
push large 100030h
push 0Fh
push ds
push offset aB@b@b@b@b@b@b@ ; "<22>@<40>@<40>@<40>@<40>@<40>@<40>@ <20>r<EFBFBD>O<EFBFBD><4F><EFBFBD><EFBFBD>"
call far ptr loc_D1FC
push large 100048h
push 0Fh
push ds
push offset aUqiUx ; "<22><><EFBFBD>Փx"
call far ptr loc_D1FC
push large 100060h
push 0Fh
push ds
push offset aNPiuU_ ; "<22>ŏI<C58F><49><EFBFBD>_"
call far ptr loc_D1FC
push large 100078h
push 0Fh
push ds
push offset aGGxi ; "<22>~<7E>X<EFBFBD><58><EFBFBD><EFBFBD>"
call far ptr loc_D1FC
push large 100090h
push 0Fh
push ds
push offset aGGaogcpi ; "<22>{<7B><><EFBFBD>g<EFBFBD>p<EFBFBD><70><EFBFBD><EFBFBD>"
call far ptr loc_D1FC
push large 1000A8h
push 0Fh
push ds
push offset aGqbGatbrmcj ; "<22>Q<EFBFBD>[<5B><><EFBFBD>B<EFBFBD><42><EFBFBD><EFBFBD>"
call far ptr loc_D1FC
push large 1000C0h
push 0Fh
push ds
push offset aIlcSObcj ; "<22><><EFBFBD><EFBFBD><EFBFBD>ގ<EFBFBD><DE8E><EFBFBD>"
call far ptr loc_D1FC
push large 1000D8h
push 0Fh
push ds
push offset aGagcgegai ; "<22>A<EFBFBD>C<EFBFBD>e<EFBFBD><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
call far ptr loc_D1FC
push large 1000F0h
push 0Fh
push ds
push offset aUU_gagcgeganNv ; "<22><><EFBFBD>_<EFBFBD>A<EFBFBD>C<EFBFBD>e<EFBFBD><65><EFBFBD>ō<EFBFBD><C58D>_<EFBFBD><5F>"
call far ptr loc_D1FC
push large 100108h
push 0Fh
push ds
push offset aLcnzvv ; "<22>C<EFBFBD><43><EFBFBD><EFBFBD>"
call far ptr loc_D1FC
push large 100120h
push 0Fh
push ds
push offset aPicacovCj ; "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
call far ptr loc_D1FC
push large 100150h
push 0Fh
push ds
push offset aVavVVSrso ; "<22><><EFBFBD>Ȃ<EFBFBD><C882>̘r<CC98>O"
call far ptr loc_D1FC
les bx, dword_F3CE
cmp byte ptr es:[bx+11h], 6
jnz short loc_BC71
mov al, 4
jmp short loc_BC79
; ---------------------------------------------------------------------------
loc_BC71:
les bx, dword_F3CE
mov al, es:[bx+0Fh]
loc_BC79:
mov byte_124D2, al
push large 0B00048h
push 10h
push ds
mov ah, 0
shl ax, 3
add ax, offset grEASY
push ax
push 0Eh
call graph_gaiji_puts
call sub_B81D
push large 0F00078h
les bx, dword_F3CE
mov al, es:[bx+31h]
mov ah, 0
push ax
call sub_B787
push large 0F00090h
les bx, dword_F3CE
mov al, es:[bx+32h]
mov ah, 0
push ax
call sub_B787
push large 1200078h
push 0Eh
push ds
push offset aTimes ; "<22><>"
call far ptr loc_D1FC
push large 1200090h
push 0Eh
push ds
push offset aTimes_0 ; "<22><>"
call far ptr loc_D1FC
mov byte_124CC, 1
les bx, dword_F3CE
cmp byte ptr es:[bx+11h], 6
jz short loc_BD0A
cmp byte ptr es:[bx+30h], 0FFh
jnz short loc_BCFF
mov word ptr es:[bx+26h], 0ABE0h
loc_BCFF:
push large 0C000A8h
push 0ABE0h
jmp short loc_BD24
; ---------------------------------------------------------------------------
loc_BD0A:
les bx, dword_F3CE
cmp byte ptr es:[bx+30h], 0FDh
jnz short loc_BD1B
mov word ptr es:[bx+26h], 2EE0h
loc_BD1B:
push large 0C000A8h
push 2EE0h
loc_BD24:
les bx, dword_F3CE
push word ptr es:[bx+26h]
call sub_B886
mov byte_124CC, 0
push large 0C000C0h
les bx, dword_F3CE
push word ptr es:[bx+34h]
push word ptr es:[bx+36h]
call sub_B886
push large 0C000D8h
les bx, dword_F3CE
push word ptr es:[bx+28h]
push word ptr es:[bx+2Ah]
call sub_B886
push large 0C000F0h
les bx, dword_F3CE
push word ptr es:[bx+2Ch]
push word ptr es:[bx+2Eh]
call sub_B886
call sub_B9F2
push large 0C00120h
les bx, dword_F3CE
mov eax, es:[bx+44h]
mov ebx, 0Ah
xor edx, edx
div ebx
push ax
mov bx, word ptr dword_F3CE
mov eax, es:[bx+40h]
mov ebx, 0Ah
xor edx, edx
div ebx
push ax
call sub_B886
mov ebx, 5
mov eax, dword_124CE
cdq
idiv ebx
mov dword_124CE, eax
les bx, dword_F3CE
cmp byte ptr es:[bx+24h], 9
jb short loc_BDD4
add dword_124CE, 927C0h
jmp short loc_BE08
; ---------------------------------------------------------------------------
loc_BDD4:
les bx, dword_F3CE
movzx eax, byte ptr es:[bx+23h]
imul eax, 2710h
add dword_124CE, eax
cmp byte ptr es:[bx+24h], 3
jbe short loc_BE08
mov al, es:[bx+24h]
mov ah, 0
add ax, 0FFFDh
cwde
imul eax, 186A0h
add dword_124CE, eax
loc_BE08:
mov al, byte_124D2
mov ah, 0
mov bx, ax
cmp bx, 4
ja short loc_BE6F
add bx, bx
jmp cs:off_C0EE[bx]
loc_BE1B:
sub dword_124CE, 0C350h
mov [bp+var_4], 0C3500h
jmp short loc_BE6F
; ---------------------------------------------------------------------------
loc_BE2E:
mov [bp+var_4], 0F4240h
jmp short loc_BE6F
; ---------------------------------------------------------------------------
loc_BE38:
add dword_124CE, 249F0h
mov [bp+var_4], 124F80h
jmp short loc_BE6F
; ---------------------------------------------------------------------------
loc_BE4B:
add dword_124CE, 493E0h
mov [bp+var_4], 155CC0h
jmp short loc_BE6F
; ---------------------------------------------------------------------------
loc_BE5E:
add dword_124CE, 6DDD0h
mov [bp+var_4], 16E360h
loc_BE6F:
les bx, dword_F3CE
mov al, es:[bx+0Ch]
mov ah, 0
dec ax
mov bx, ax
cmp bx, 5
ja short loc_BECA
add bx, bx
jmp cs:off_C0E2[bx]
loc_BE88:
add dword_124CE, 0C350h
add [bp+var_4], 186A0h
jmp short loc_BECA
; ---------------------------------------------------------------------------
loc_BE9B:
add dword_124CE, 61A8h
add [bp+var_4], 0C350h
jmp short loc_BECA
; ---------------------------------------------------------------------------
loc_BEAE:
sub [bp+var_4], 61A8h
jmp short loc_BECA
; ---------------------------------------------------------------------------
loc_BEB8:
sub [bp+var_4], 0C350h
jmp short loc_BECA
; ---------------------------------------------------------------------------
loc_BEC2:
sub [bp+var_4], 124F8h
loc_BECA:
les bx, dword_F3CE
mov al, es:[bx+0Eh]
mov ah, 0
or ax, ax
jz short loc_BEDF
cmp ax, 1
jz short loc_BEF2
jmp short loc_BF03
; ---------------------------------------------------------------------------
loc_BEDF:
add dword_124CE, 0C350h
add [bp+var_4], 186A0h
jmp short loc_BF03
; ---------------------------------------------------------------------------
loc_BEF2:
add dword_124CE, 4E20h
add [bp+var_4], 0C350h
loc_BF03:
les bx, dword_F3CE
cmp byte ptr es:[bx+49h], 0
jnz short loc_BF17
sub dword_124CE, 186A0h
loc_BF17:
les bx, dword_F3CE
cmp byte ptr es:[bx+31h], 0Fh
jb short loc_BF2D
sub dword_124CE, 493E0h
jmp short loc_BF43
; ---------------------------------------------------------------------------
loc_BF2D:
les bx, dword_F3CE
movzx eax, byte ptr es:[bx+31h]
imul eax, 4E20h
sub dword_124CE, eax
loc_BF43:
les bx, dword_F3CE
cmp byte ptr es:[bx+32h], 1Eh
jb short loc_BF59
sub dword_124CE, 15F90h
jmp short loc_BF6F
; ---------------------------------------------------------------------------
loc_BF59:
les bx, dword_F3CE
movzx eax, byte ptr es:[bx+32h]
imul eax, 0BB8h
sub dword_124CE, eax
loc_BF6F:
les bx, dword_F3CE
cmp byte ptr es:[bx+30h], 0FDh
jnb short loc_BFA1
cmp byte_124D2, 4
jz short loc_BF96
mov ebx, 2
mov eax, dword_124CE
cdq
idiv ebx
mov dword_124CE, eax
jmp short loc_BFB4
; ---------------------------------------------------------------------------
loc_BF96:
sub dword_124CE, 30D40h
jmp short loc_BFB4
; ---------------------------------------------------------------------------
loc_BFA1:
les bx, dword_F3CE
cmp byte ptr es:[bx+30h], 0FEh
jnz short loc_BFB4
sub [bp+var_4], 186A0h
loc_BFB4:
cmp dword_124CE, 0
jge short loc_BFC7
mov dword_124CE, 0
jmp short loc_BFD9
; ---------------------------------------------------------------------------
loc_BFC7:
mov eax, dword_124CE
cmp eax, [bp+var_4]
jbe short loc_BFD9
mov eax, [bp+var_4]
mov dword_124CE, eax
loc_BFD9:
les bx, dword_F3CE
mov eax, es:[bx+44h]
shr eax, 1
cmp eax, es:[bx+40h]
jbe loc_C0AE
push large 0C00150h
push large [dword_124CE]
call sub_B97B
push large 1200150h
push 0Eh
push ds
push offset aPoint ; "<22>_"
call far ptr loc_D1FC
push ds
push offset a_ude_txt ; "_ude.txt"
call file_ropen
cmp dword_124CE, 16E360h
jge short loc_C084
cmp dword_124CE, 0
jnz short loc_C02E
mov si, 19h
jmp short loc_C074
; ---------------------------------------------------------------------------
loc_C02E:
cmp dword_124CE, 100590h
jge short loc_C051
mov eax, dword_124CE
mov ebx, 0C350h
cdq
idiv ebx
mov dx, 18h
sub dx, ax
mov si, dx
jmp short loc_C074
; ---------------------------------------------------------------------------
loc_C051:
cmp dword_124CE, 124F80h
jge short loc_C061
mov si, 3
jmp short loc_C074
; ---------------------------------------------------------------------------
loc_C061:
cmp dword_124CE, 149970h
jge short loc_C071
mov si, 2
jmp short loc_C074
; ---------------------------------------------------------------------------
loc_C071:
mov si, 1
loc_C074:
mov ax, si
imul ax, 1Eh
cwde
push eax
push 0
call file_seek
loc_C084:
push ds
push offset unk_124D3
push 1Eh
call file_read
mov byte_124EF, 0
call file_close
push 40h
call sub_CCA3
push large 400168h
push 0Fh
push ds
push offset unk_124D3
jmp short loc_C0CB
; ---------------------------------------------------------------------------
loc_C0AE:
push large 0C00150h
push 0Eh
push ds
push offset aBhbhbhbhbhbhu_ ; "<22>H<EFBFBD>H<EFBFBD>H<EFBFBD>H<EFBFBD>H<EFBFBD>H<EFBFBD>_"
call far ptr loc_D1FC
push large 400168h
push 0Fh
push ds
push offset aPicacovVVcvsfT ; "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɂ<EFBFBD><C982><EFBFBD><E994BB><EFBFBD>s<EFBFBD><73>"
loc_C0CB:
call far ptr loc_D1FC
push 0
call sub_CE7A
push 2
call palette_black_out
pop si
leave
retn
sub_BB81 endp
; ---------------------------------------------------------------------------
db 0
off_C0E2 dw offset loc_BE88
dw offset loc_BE9B
dw offset loc_BECA
dw offset loc_BEAE
dw offset loc_BEB8
dw offset loc_BEC2
off_C0EE dw offset loc_BE1B
dw offset loc_BE2E
dw offset loc_BE38
dw offset loc_BE4B
dw offset loc_BE5E
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_C0F8 proc near
push bp
mov bp, sp
mov PaletteTone, 0
call far ptr palette_show
mov dx, 0A6h ; '<27>'
mov al, 1
out dx, al
push 0
push ds
push offset aUde_pi ; "ude.pi"
call sub_CD65
push 0
call sub_CCB8
push large 0
push 0
call sub_CCDD
push ds
push offset unk_FCEA
push large [dword_FCD2]
call graph_pi_free
push 0
call graph_copy_page
push 4
call palette_black_in
call sub_BB81
pop bp
retn
sub_C0F8 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_C149 proc near
var_1 = byte ptr -1
enter 2, 0
push si
mov si, 4
jmp short loc_C176
; ---------------------------------------------------------------------------
loc_C153:
mov al, [si+3FC3h]
mov [bp+var_1], al
mov al, byte_124F3
ror [bp+var_1], 3
xor [bp+var_1], al
mov al, [si+3FC2h]
mov dl, byte_124F2
add dl, [bp+var_1]
add al, dl
mov [si+3FC2h], al
inc si
loc_C176:
cmp si, 0C3h
jl short loc_C153
mov al, byte_124F2
add [si+3FC2h], al
xor cx, cx
mov si, 4
jmp short loc_C193
; ---------------------------------------------------------------------------
loc_C18A:
mov al, [si+3FC2h]
mov ah, 0
add cx, ax
inc si
loc_C193:
cmp si, 0C4h ; '<27>'
jl short loc_C18A
mov al, byte ptr word_124F4
sub al, cl
pop si
leave
retn
sub_C149 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_C1A1 proc near
var_1 = byte ptr -1
enter 2, 0
push si
mov word_124F4, 0
mov si, 4
jmp short loc_C1BC
; ---------------------------------------------------------------------------
loc_C1B1:
mov al, [si+3FC2h]
mov ah, 0
add word_124F4, ax
inc si
loc_C1BC:
cmp si, 0C4h ; '<27>'
jl short loc_C1B1
call IRand
mov byte_124F2, al
call IRand
mov byte_124F3, al
mov [bp+var_1], 0
mov si, 0C3h
jmp short loc_C1FE
; ---------------------------------------------------------------------------
loc_C1DB:
mov al, [si+3FC2h]
mov dl, byte_124F2
add dl, [bp+var_1]
sub al, dl
mov [si+3FC2h], al
mov al, [si+3FC2h]
mov [bp+var_1], al
mov al, byte_124F3
ror [bp+var_1], 3
xor [bp+var_1], al
dec si
loc_C1FE:
cmp si, 4
jge short loc_C1DB
pop si
leave
retn
sub_C1A1 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_C206 proc near
var_1 = byte ptr -1
enter 2, 0
push si
push di
mov [bp+var_1], 0A9h ; '<27>'
xor si, si
jmp short loc_C27A
; ---------------------------------------------------------------------------
loc_C214:
mov byte_125A0, 19h
xor di, di
jmp short loc_C228
; ---------------------------------------------------------------------------
loc_C21D:
mov bx, si
shl bx, 3
mov byte ptr [bx+di+4020h], 0A0h
inc di
loc_C228:
cmp di, 8
jl short loc_C21D
or si, si
jnz short loc_C23D
mov bx, si
shl bx, 3
mov byte ptr [bx+4025h], 0A1h ; '<27>'
jmp short loc_C24C
; ---------------------------------------------------------------------------
loc_C23D:
mov bx, si
shl bx, 3
mov al, [bp+var_1]
mov [bx+4024h], al
dec [bp+var_1]
loc_C24C:
mov ax, si
cwd
sub ax, dx
sar ax, 1
mov dl, 0A5h ; '<27>'
sub dl, al
mov [si+4072h], dl
xor di, di
jmp short loc_C26A
; ---------------------------------------------------------------------------
loc_C25F:
mov bx, si
imul bx, 9
mov byte ptr [bx+di+3FC6h], 0C4h ; '<27>'
inc di
loc_C26A:
cmp di, 8
jl short loc_C25F
mov bx, si
imul bx, 9
mov byte ptr [bx+3FCEh], 0
inc si
loc_C27A:
cmp si, 0Ah
jl short loc_C214
push ds
push offset aGensou_scr ; "GENSOU.SCR"
call file_create
xor si, si
jmp short loc_C29F
; ---------------------------------------------------------------------------
loc_C28C:
call sub_C1A1
push ds
push offset byte_124F2
push 0C4h ; '<27>'
call file_write
call sub_C149
inc si
loc_C29F:
cmp si, 0Ah
jl short loc_C28C
call file_close
pop di
pop si
leave
retn
sub_C206 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_C2AD proc near
arg_0 = byte ptr 4
push bp
mov bp, sp
push ds
push offset aGensou_scr_0 ; "GENSOU.SCR"
call file_exist
or ax, ax
jz short loc_C307
push ds
push offset aGensou_scr_1 ; "GENSOU.SCR"
call file_ropen
mov al, byte_125B7
mov ah, 0
imul ax, 0C4h
movzx eax, ax
push eax
push 0
call file_seek
cmp [bp+arg_0], 0
jz short loc_C2EF
push large 3D4h
push 1
call file_seek
loc_C2EF:
push ds
push offset byte_124F2
push 0C4h ; '<27>'
call file_read
call file_close
call sub_C149
or al, al
jz short loc_C310
loc_C307:
call sub_C206
mov al, 1
pop bp
retn 2
; ---------------------------------------------------------------------------
loc_C310:
mov al, 0
pop bp
retn 2
sub_C2AD endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_C316 proc near
push bp
mov bp, sp
push si
call sub_C1A1
push ds
push offset aGensou_scr_2 ; "GENSOU.SCR"
call file_append
mov al, byte_125B7
mov ah, 0
imul ax, 0C4h
movzx eax, ax
push eax
push 0
call file_seek
cmp byte ptr word_125B8, 0
jz short loc_C350
push large 3D4h
push 1
call file_seek
loc_C350:
push ds
push offset byte_124F2
push 0C4h ; '<27>'
call file_write
xor si, si
jmp short loc_C3A5
; ---------------------------------------------------------------------------
loc_C360:
mov ax, si
imul ax, 0C4h
movzx eax, ax
push eax
push 0
call file_seek
push ds
push offset byte_124F2
push 0C4h ; '<27>'
call file_read
call sub_C149
call sub_C1A1
mov ax, si
imul ax, 0C4h
movzx eax, ax
push eax
push 0
call file_seek
push ds
push offset byte_124F2
push 0C4h ; '<27>'
call file_write
inc si
loc_C3A5:
cmp si, 0Ah
jl short loc_C360
call file_close
pop si
pop bp
retn
sub_C316 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_C3B2 proc near
var_2 = word ptr -2
enter 2, 0
mov [bp+var_2], 9
jmp short loc_C40E
; ---------------------------------------------------------------------------
loc_C3BD:
mov cx, 7
jmp short loc_C407
; ---------------------------------------------------------------------------
loc_C3C2:
les bx, dword_F3CE
add bx, cx
mov al, es:[bx+1Dh]
mov ah, 0
mov bx, [bp+var_2]
shl bx, 3
add bx, cx
mov dl, [bx+4020h]
mov dh, 0
add dx, 0FF60h
cmp ax, dx
jg short loc_C40B
les bx, dword_F3CE
add bx, cx
mov al, es:[bx+1Dh]
mov ah, 0
mov bx, [bp+var_2]
shl bx, 3
add bx, cx
mov dl, [bx+4020h]
mov dh, 0
add dx, 0FF60h
cmp ax, dx
jl short loc_C41B
dec cx
loc_C407:
or cx, cx
jge short loc_C3C2
loc_C40B:
dec [bp+var_2]
loc_C40E:
cmp [bp+var_2], 0
jge short loc_C3BD
mov byte_125B6, 0
jmp short loc_C430
; ---------------------------------------------------------------------------
loc_C41B:
cmp [bp+var_2], 9
jnz short loc_C428
mov byte_125B6, 0FFh
leave
retn
; ---------------------------------------------------------------------------
loc_C428:
mov al, byte ptr [bp+var_2]
inc al
mov byte_125B6, al
loc_C430:
mov [bp+var_2], 8
jmp short loc_C489
; ---------------------------------------------------------------------------
loc_C437:
mov cx, 7
jmp short loc_C455
; ---------------------------------------------------------------------------
loc_C43C:
mov bx, [bp+var_2]
imul bx, 9
add bx, cx
mov al, [bx+3FC6h]
mov bx, [bp+var_2]
imul bx, 9
add bx, cx
mov [bx+3FCFh], al
dec cx
loc_C455:
or cx, cx
jge short loc_C43C
mov cx, 7
jmp short loc_C477
; ---------------------------------------------------------------------------
loc_C45E:
mov bx, [bp+var_2]
shl bx, 3
add bx, cx
mov al, [bx+4020h]
mov bx, [bp+var_2]
shl bx, 3
add bx, cx
mov [bx+4028h], al
dec cx
loc_C477:
or cx, cx
jge short loc_C45E
mov bx, [bp+var_2]
mov al, [bx+4072h]
mov [bx+4073h], al
dec [bp+var_2]
loc_C489:
mov al, byte_125B6
mov ah, 0
cmp ax, [bp+var_2]
jle short loc_C437
mov cx, 7
jmp short loc_C4AA
; ---------------------------------------------------------------------------
loc_C498:
mov al, byte_125B6
mov ah, 0
imul ax, 9
add ax, cx
mov bx, ax
mov byte ptr [bx+3FC6h], 0C4h ; '<27>'
dec cx
loc_C4AA:
or cx, cx
jge short loc_C498
mov cx, 7
jmp short loc_C4D1
; ---------------------------------------------------------------------------
loc_C4B3:
les bx, dword_F3CE
add bx, cx
mov al, es:[bx+1Dh]
add al, 0A0h
mov dl, byte_125B6
mov dh, 0
shl dx, 3
add dx, cx
mov bx, dx
mov [bx+4020h], al
dec cx
loc_C4D1:
or cx, cx
jge short loc_C4B3
les bx, dword_F3CE
cmp byte ptr es:[bx+30h], 0FDh
jb short loc_C4EE
mov al, byte_125B6
mov ah, 0
mov bx, ax
mov byte ptr [bx+4072h], 0E9h
leave
retn
; ---------------------------------------------------------------------------
loc_C4EE:
les bx, dword_F3CE
mov al, es:[bx+11h]
add al, 0A1h ; '<27>'
mov dl, byte_125B6
mov dh, 0
mov bx, dx
mov [bx+4072h], al
leave
retn
sub_C3B2 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_C506 proc near
var_4 = word ptr -4
var_2 = word ptr -2
arg_0 = byte ptr 4
arg_2 = word ptr 6
enter 4, 0
push si
push di
mov si, [bp+arg_2]
or si, si
jnz short loc_C518
mov ax, 60h
jmp short loc_C520
; ---------------------------------------------------------------------------
loc_C518:
mov ax, si
shl ax, 4
add ax, 70h ; 'p'
loc_C520:
mov [bp+var_4], ax
cmp [bp+arg_0], 0
jnz short loc_C52E
mov ax, 0ACh ; '<27>'
jmp short loc_C531
; ---------------------------------------------------------------------------
loc_C52E:
mov ax, 1E0h
loc_C531:
mov di, ax
mov al, byte_125B6
mov ah, 0
cmp ax, si
jnz short loc_C549
mov al, [bp+arg_0]
cmp al, byte ptr word_125B8
jnz short loc_C549
mov al, 0Ah
jmp short loc_C54B
; ---------------------------------------------------------------------------
loc_C549:
mov al, 0
loc_C54B:
mov [bp+arg_0], al
mov bx, si
shl bx, 3
mov al, [bx+4027h]
mov ah, 0
add ax, 0FF60h
cmp ax, 0Ah
jl short loc_C589
lea ax, [di-20h]
push ax
push [bp+var_4]
mov bx, si
shl bx, 3
mov al, [bx+4027h]
mov ah, 0
add ax, 0FF60h
mov bx, 0Ah
cwd
idiv bx
mov dl, [bp+arg_0]
mov dh, 0
add ax, dx
push ax
call super_put
loc_C589:
lea ax, [di-10h]
push ax
push [bp+var_4]
mov bx, si
shl bx, 3
mov al, [bx+4027h]
mov ah, 0
add ax, 0FF60h
mov bx, 0Ah
cwd
idiv bx
mov al, [bp+arg_0]
mov ah, 0
add dx, ax
push dx
call super_put
mov [bp+var_2], 6
jmp short loc_C5E0
; ---------------------------------------------------------------------------
loc_C5B8:
push di
push [bp+var_4]
mov bx, si
shl bx, 3
add bx, [bp+var_2]
mov al, [bx+4020h]
mov ah, 0
mov dl, [bp+arg_0]
mov dh, 0
add ax, dx
add ax, 0FF60h
push ax
call super_put
dec [bp+var_2]
add di, 10h
loc_C5E0:
cmp [bp+var_2], 0
jge short loc_C5B8
pop di
pop si
leave
retn 4
sub_C506 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_C5EC proc near
var_5 = byte ptr -5
var_4 = word ptr -4
var_2 = word ptr -2
arg_0 = word ptr 4
arg_2 = word ptr 6
arg_4 = word ptr 8
enter 6, 0
push si
push di
mov si, [bp+arg_4]
mov di, [bp+arg_2]
mov al, byte_125B6
mov ah, 0
cmp ax, si
jnz short loc_C60E
mov al, byte ptr word_125B8
mov ah, 0
cmp ax, di
jnz short loc_C60E
mov al, 7
jmp short loc_C610
; ---------------------------------------------------------------------------
loc_C60E:
mov al, 0Ch
loc_C610:
mov [bp+var_5], al
or si, si
jnz short loc_C61C
mov ax, 60h
jmp short loc_C624
; ---------------------------------------------------------------------------
loc_C61C:
mov ax, si
shl ax, 4
add ax, 70h ; 'p'
loc_C624:
mov [bp+var_4], ax
or di, di
jnz short loc_C630
mov ax, 124h
jmp short loc_C633
; ---------------------------------------------------------------------------
loc_C630:
mov ax, 258h
loc_C633:
mov [bp+var_2], ax
add ax, 2
push ax
mov ax, [bp+var_4]
add ax, 2
push ax
push [bp+arg_0]
push 0Eh
call graph_gaiji_putc
push [bp+var_2]
push [bp+var_4]
push [bp+arg_0]
mov al, [bp+var_5]
mov ah, 0
push ax
call graph_gaiji_putc
pop di
pop si
leave
retn 6
sub_C5EC endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_C665 proc near
var_2 = word ptr -2
arg_0 = byte ptr 4
arg_2 = byte ptr 6
arg_4 = word ptr 8
enter 2, 0
push si
push di
mov si, [bp+arg_4]
cmp [bp+arg_2], 0
jnz short loc_C679
mov ax, 2
jmp short loc_C67C
; ---------------------------------------------------------------------------
loc_C679:
mov ax, 28h ; '('
loc_C67C:
mov di, ax
or si, si
jnz short loc_C687
mov ax, 6
jmp short loc_C68A
; ---------------------------------------------------------------------------
loc_C687:
lea ax, [si+7]
loc_C68A:
mov [bp+var_2], ax
mov ax, di
shl ax, 3
add ax, 2
push ax
mov ax, [bp+var_2]
shl ax, 4
add ax, 2
push ax
push large 800010h
call sub_CBF3
mov ax, di
shl ax, 3
add ax, 2
push ax
mov ax, [bp+var_2]
shl ax, 4
add ax, 2
push ax
push 10h
mov ax, si
imul ax, 9
add ax, 3FC6h
push ds
push ax
push 0Eh
call graph_gaiji_puts
push di
push [bp+var_2]
mov ax, si
imul ax, 9
add ax, 3FC6h
push ds
push ax
push 41h ; 'A'
call gaiji_putsa
mov al, [bp+arg_0]
mov ah, 0
add ax, ax
add ax, di
push ax
push [bp+var_2]
mov bx, si
imul bx, 9
mov al, [bp+arg_0]
mov ah, 0
add bx, ax
mov al, [bx+3FC6h]
mov ah, 0
push ax
push 45h ; 'E'
call gaiji_putca
pop di
pop si
leave
retn 6
sub_C665 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_C711 proc near
var_2 = word ptr -2
arg_0 = word ptr 4
arg_2 = word ptr 6
enter 2, 0
push si
push di
mov si, [bp+arg_2]
cmp byte ptr [bp+arg_0], 0
jnz short loc_C725
mov ax, 10h
jmp short loc_C728
; ---------------------------------------------------------------------------
loc_C725:
mov ax, 140h
loc_C728:
mov [bp+var_2], ax
or si, si
jnz short loc_C734
mov ax, 60h
jmp short loc_C73C
; ---------------------------------------------------------------------------
loc_C734:
mov ax, si
shl ax, 4
add ax, 70h ; 'p'
loc_C73C:
mov di, ax
mov ax, [bp+var_2]
add ax, 2
push ax
lea ax, [di+2]
push ax
push 10h
mov ax, si
imul ax, 9
add ax, 3FC6h
push ds
push ax
push 0Eh
call graph_gaiji_puts
mov al, byte_125B6
mov ah, 0
cmp ax, si
jnz short loc_C76E
mov al, byte ptr [bp+arg_0]
cmp al, byte ptr word_125B8
jz short loc_C787
loc_C76E:
push [bp+var_2]
push di
push 10h
mov ax, si
imul ax, 9
add ax, 3FC6h
push ds
push ax
push 0Ch
call graph_gaiji_puts
jmp short loc_C7AB
; ---------------------------------------------------------------------------
loc_C787:
mov ax, [bp+var_2]
mov bx, 8
cwd
idiv bx
push ax
mov ax, di
mov bx, 10h
cwd
idiv bx
push ax
mov ax, si
imul ax, 9
add ax, 3FC6h
push ds
push ax
push 41h ; 'A'
call gaiji_putsa
loc_C7AB:
push si
push [bp+arg_0]
call sub_C506
push si
mov al, byte ptr [bp+arg_0]
mov ah, 0
push ax
mov al, [si+4072h]
mov ah, 0
push ax
call sub_C5EC
pop di
pop si
leave
retn 4
sub_C711 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_C7C9 proc near
arg_0 = word ptr 4
push bp
mov bp, sp
push si
xor si, si
jmp short loc_C7D9
; ---------------------------------------------------------------------------
loc_C7D1:
push si
push [bp+arg_0]
call sub_C711
inc si
loc_C7D9:
cmp si, 0Ah
jl short loc_C7D1
pop si
pop bp
retn 2
sub_C7C9 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_C7E3 proc near
arg_0 = word ptr 4
arg_2 = word ptr 6
arg_4 = word ptr 8
push bp
mov bp, sp
push si
push di
mov si, [bp+arg_4]
mov di, [bp+arg_2]
mov ax, si
add ax, ax
add ax, 17h
push ax
lea ax, [di+12h]
push ax
mov bx, di
imul bx, 11h
mov al, [bx+si+82Ch]
mov ah, 0
push ax
push [bp+arg_0]
call gaiji_putca
pop di
pop si
pop bp
retn 6
sub_C7E3 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_C814 proc near
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
enter 0Ah, 0
push si
push di
xor si, si
mov [bp+var_9], 0
mov PaletteTone, 0
call far ptr palette_show
mov dx, 0A6h ; '<27>'
mov al, 1
out dx, al
push 0
push ds
push offset aHi01_pi ; "hi01.pi"
call sub_CD65
push 0
call sub_CCB8
push large 0
push 0
call sub_CCDD
push ds
push offset unk_FCEA
push large [dword_FCD2]
call graph_pi_free
push 0
call graph_copy_page
push ds
push offset aScnum2_bft ; "scnum2.bft"
call super_entry_bfnt
les bx, dword_F3CE
cmp byte ptr es:[bx+11h], 6
jnz short loc_C87A
mov al, 4
jmp short loc_C882
; ---------------------------------------------------------------------------
loc_C87A:
les bx, dword_F3CE
mov al, es:[bx+0Fh]
loc_C882:
mov byte_125B7, al
les bx, dword_F3CE
cmp byte ptr es:[bx+12h], 31h ; '1'
jnz short loc_C895
mov ax, 1
jmp short loc_C897
; ---------------------------------------------------------------------------
loc_C895:
xor ax, ax
loc_C897:
mov byte ptr word_125B8, al
mov al, 1
sub al, byte ptr word_125B8
push ax
call sub_C2AD
mov al, byte ptr word_125B8
mov ah, 0
mov dx, 1
sub dx, ax
push dx
call sub_C7C9
push word_125B8
call sub_C2AD
les bx, dword_F3CE
cmp byte ptr es:[bx+49h], 0
jnz short loc_C8CB
cmp byte_125B7, 4
jnz short loc_C8D9
loc_C8CB:
call sub_C3B2
mov al, byte ptr word_125B8
mov ah, 0
push ax
call sub_C7C9
jmp short loc_C909
; ---------------------------------------------------------------------------
loc_C8D9:
mov byte_125B6, 0FFh
mov al, byte ptr word_125B8
mov ah, 0
push ax
call sub_C7C9
push large 7C00C4h
push 9
push ds
push offset aGxgnbGvbGhvVGv ; "<22>X<EFBFBD><58><EFBFBD>[<5B><><EFBFBD>[<5B>h<EFBFBD>ł̃v<CC83><76><EFBFBD>C<EFBFBD>ł́A<CD81>X<EFBFBD>R<EFBFBD>A<EFBFBD>͋L<CD8B>E...
call far ptr loc_D1FC
push large 7800C0h
push 2
push ds
push offset aGxgnbGvbGhvV_1 ; "<22>X<EFBFBD><58><EFBFBD>[<5B><><EFBFBD>[<5B>h<EFBFBD>ł̃v<CC83><76><EFBFBD>C<EFBFBD>ł́A<CD81>X<EFBFBD>R<EFBFBD>A<EFBFBD>͋L<CD8B>E...
call far ptr loc_D1FC
loc_C909:
les bx, dword_F3CE
cmp byte ptr es:[bx+30h], 0FFh
jz short loc_C922
cmp byte ptr es:[bx+30h], 0FDh
jz short loc_C922
cmp byte_125B7, 0
jnz short loc_C95E
loc_C922:
mov al, byte_125A0
mov [bp+var_A], al
cmp [bp+var_A], 4
jb short loc_C944
les bx, dword_F3CE
cmp byte ptr es:[bx+19h], 0
jnz short loc_C93D
mov al, 1
jmp short loc_C93F
; ---------------------------------------------------------------------------
loc_C93D:
mov al, 2
loc_C93F:
mov [bp+var_A], al
jmp short loc_C958
; ---------------------------------------------------------------------------
loc_C944:
les bx, dword_F3CE
cmp byte ptr es:[bx+19h], 0
jnz short loc_C953
mov al, 1
jmp short loc_C955
; ---------------------------------------------------------------------------
loc_C953:
mov al, 2
loc_C955:
or [bp+var_A], al
loc_C958:
mov al, [bp+var_A]
mov byte_125A0, al
loc_C95E:
push 100h
call sub_CF8C
push ds
push offset aName ; "name"
push 600h
call sub_D112
push 0
call sub_CF8C
push 2
call palette_black_in
cmp byte_125B6, 0FFh
jz loc_CB7F
mov [bp+var_6], 0
jmp short loc_C9CB
; ---------------------------------------------------------------------------
loc_C990:
mov [bp+var_8], 0
jmp short loc_C9C2
; ---------------------------------------------------------------------------
loc_C997:
mov ax, [bp+var_8]
add ax, ax
add ax, 17h
push ax
mov ax, [bp+var_6]
add ax, 12h
push ax
mov bx, [bp+var_6]
imul bx, 11h
add bx, [bp+var_8]
mov al, [bx+82Ch]
mov ah, 0
push ax
push 0E1h
call gaiji_putca
inc [bp+var_8]
loc_C9C2:
cmp [bp+var_8], 11h
jl short loc_C997
inc [bp+var_6]
loc_C9CB:
cmp [bp+var_6], 3
jl short loc_C990
push large 170012h
mov al, gALPHABET
mov ah, 0
push ax
push 85h ; '<27>E
call gaiji_putca
xor di, di
mov [bp+var_2], 0
call far ptr sub_D48A
mov [bp+var_4], 1
loc_C9F6:
call sub_D492
cmp [bp+var_4], 0
jnz loc_CB3B
test byte ptr word_10072, 0Fh
jz short loc_CA6A
push di
push [bp+var_2]
push 0E1h
call sub_C7E3
test byte ptr word_10072, 1
jz short loc_CA1E
dec [bp+var_2]
loc_CA1E:
test byte ptr word_10072, 2
jz short loc_CA28
inc [bp+var_2]
loc_CA28:
test byte ptr word_10072, 4
jz short loc_CA30
dec di
loc_CA30:
test byte ptr word_10072, 8
jz short loc_CA38
inc di
loc_CA38:
cmp [bp+var_2], 0
jge short loc_CA45
mov [bp+var_2], 2
jmp short loc_CA50
; ---------------------------------------------------------------------------
loc_CA45:
cmp [bp+var_2], 2
jle short loc_CA50
mov [bp+var_2], 0
loc_CA50:
or di, di
jge short loc_CA59
mov di, 10h
jmp short loc_CA60
; ---------------------------------------------------------------------------
loc_CA59:
cmp di, 10h
jle short loc_CA60
xor di, di
loc_CA60:
push di
push [bp+var_2]
push 85h ; '<27>E
call sub_C7E3
loc_CA6A:
test byte ptr word_10072, 20h
jnz short loc_CA7A
test byte ptr word_10072+1, 20h
jz loc_CB03
loc_CA7A:
mov bx, [bp+var_2]
imul bx, 11h
mov al, [bx+di+82Ch]
mov [bp+var_A], al
mov ah, 0
sub ax, 0CDh ; '<27>'
mov bx, ax
cmp bx, 8
ja short loc_CABD
add bx, bx
jmp cs:off_CB9E[bx]
loc_CA9A:
mov [bp+var_A], 2
jmp short loc_CABD
; ---------------------------------------------------------------------------
loc_CAA0:
mov al, byte_125B6
mov ah, 0
imul ax, 9
mov bx, ax
mov byte ptr [bx+si+3FC6h], 2
or si, si
jle short loc_CAF5
dec si
jmp short loc_CAF5
; ---------------------------------------------------------------------------
loc_CAB6:
cmp si, 7
jge short loc_CAF5
jmp short loc_CAF4
; ---------------------------------------------------------------------------
loc_CABD:
mov al, byte_125B6
mov ah, 0
imul ax, 9
mov dl, [bp+var_A]
mov bx, ax
mov [bx+si+3FC6h], dl
cmp si, 7
jnz short loc_CAEF
push di
push [bp+var_2]
push 0E1h
call sub_C7E3
mov di, 10h
mov [bp+var_2], 2
push di
push [bp+var_2]
push 85h ; '<27>E
call sub_C7E3
loc_CAEF:
cmp si, 7
jge short loc_CAF5
loc_CAF4:
inc si
loc_CAF5:
mov al, byte_125B6
mov ah, 0
push ax
push word_125B8
push si
call sub_C665
loc_CB03:
test byte ptr word_10072, 10h
jz short loc_CB2C
mov al, byte_125B6
mov ah, 0
imul ax, 9
mov bx, ax
mov byte ptr [bx+si+3FC6h], 2
or si, si
jle short loc_CB1E
dec si
loc_CB1E:
mov al, byte_125B6
mov ah, 0
push ax
push word_125B8
push si
call sub_C665
loc_CB2C:
test byte ptr word_10072+1, 10h
jnz short loc_CB7A
mov ax, word_10072
mov [bp+var_4], ax
jmp short loc_CB6B
; ---------------------------------------------------------------------------
loc_CB3B:
mov ax, word_10072
cmp ax, [bp+var_4]
jnz short loc_CB59
inc [bp+var_9]
cmp [bp+var_9], 1Eh
jbe short loc_CB6B
test [bp+var_9], 1
jnz short loc_CB6B
mov [bp+var_4], 0
jmp short loc_CB6B
; ---------------------------------------------------------------------------
loc_CB59:
cmp word_10072, 0
jz short loc_CB62
jmp short loc_CB67
; ---------------------------------------------------------------------------
loc_CB62:
mov [bp+var_4], 0
loc_CB67:
mov [bp+var_9], 0
loc_CB6B:
call far ptr sub_D48A
push 1
call sub_CCA3
jmp loc_C9F6
; ---------------------------------------------------------------------------
loc_CB7A:
call sub_C316
jmp short loc_CB89
; ---------------------------------------------------------------------------
loc_CB7F:
call sub_C316
push 0
call sub_CE7A
loc_CB89:
call super_free
call text_clear
push 1
call palette_black_out
pop di
pop si
leave
retn
sub_C814 endp
; ---------------------------------------------------------------------------
off_CB9E dw offset loc_CA9A
dw offset loc_CAA0
dw offset loc_CAB6
dw offset loc_CABD
dw offset loc_CABD
dw offset loc_CABD
dw offset loc_CABD
dw offset loc_CABD
dw offset loc_CB7A
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_CBB0 proc near
push bp
mov bp, sp
mov al, 0
out 7Ch, al
mov al, 7
out 6Ah, al ; PC-98 GDC (6a):
;
mov al, 5
out 6Ah, al ; PC-98 GDC (6a):
;
mov al, 80h
out 7Ch, al
mov al, 6
out 6Ah, al ; PC-98 GDC (6a):
;
mov ax, 0FFF0h
mov dx, 4A0h
out dx, ax
mov ax, 0FFh
mov dx, 4A2h
out dx, ax
mov ax, 3100h
mov dx, 4A4h
out dx, ax
mov ax, 0FFFFh
mov dx, 4A8h
out dx, ax
mov ax, 0
mov dx, 4ACh
out dx, ax
mov ax, 0Fh
mov dx, 4AEh
out dx, ax
pop bp
retn
sub_CBB0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_CBF3 proc near
var_8 = word ptr -8
var_6 = word ptr -6
var_4 = word ptr -4
var_2 = word ptr -2
arg_0 = word ptr 4
arg_2 = word ptr 6
arg_4 = word ptr 8
arg_6 = word ptr 0Ah
enter 8, 0
push si
push di
mov di, [bp+arg_2]
call sub_CBB0
mov ax, [bp+arg_6]
sar ax, 3
mov dx, [bp+arg_4]
shl dx, 6
add ax, dx
mov dx, [bp+arg_4]
shl dx, 4
add ax, dx
mov [bp+var_6], ax
mov bx, 10h
mov ax, di
cwd
idiv bx
mov di, ax
mov [bp+var_4], 0
jmp short loc_CC66
; ---------------------------------------------------------------------------
loc_CC29:
mov [bp+var_2], 0
mov si, [bp+var_6]
jmp short loc_CC5A
; ---------------------------------------------------------------------------
loc_CC33:
mov dx, 0A6h ; '<27>'
mov al, 1
out dx, al
les bx, dword_FC3C
add bx, si
mov ax, es:[bx]
mov [bp+var_8], ax
mov al, 0
out dx, al
mov bx, word ptr dword_FC3C
add bx, si
mov ax, [bp+var_8]
mov es:[bx], ax
inc [bp+var_2]
add si, 2
loc_CC5A:
cmp [bp+var_2], di
jl short loc_CC33
inc [bp+var_4]
add [bp+var_6], 50h ; 'P'
loc_CC66:
mov ax, [bp+var_4]
cmp ax, [bp+arg_0]
jl short loc_CC29
call egc_off
pop di
pop si
leave
retn 8
sub_CBF3 endp
seg001 ends
; ===========================================================================
; Segment type: Pure code
seg002 segment byte public 'CODE' use16
assume cs:seg002
;org 9
assume es:nothing, ss:nothing, ds:dseg, fs:nothing, gs:nothing
db 0
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_CC7A proc far
push bp
mov bp, sp
mov dword_FC3C, 0A8000000h
mov dword_FC40, 0B0000000h
mov dword_FC44, 0B8000000h
mov dword_FC48, 0E0000000h
pop bp
retf
sub_CC7A endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_CCA3 proc far
arg_0 = word ptr 6
push bp
mov bp, sp
mov vsync_Count1, 0
loc_CCAC:
mov ax, vsync_Count1
cmp ax, [bp+arg_0]
jb short loc_CCAC
pop bp
retf 2
sub_CCA3 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_CCB8 proc far
arg_0 = word ptr 6
push bp
mov bp, sp
push 30h ; '0' ; n
push ds
mov ax, [bp+arg_0]
imul ax, 48h
add ax, 17D2h
push ax ; src
push ds
push offset Palettes ; dest
call _memcpy
add sp, 0Ah
call far ptr palette_show
pop bp
retf 2
sub_CCB8 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_CCDD proc far
var_6 = word ptr -6
var_4 = dword ptr -4
arg_0 = word ptr 6
arg_2 = word ptr 8
arg_4 = word ptr 0Ah
enter 6, 0
push si
push di
mov si, [bp+arg_2]
mov di, [bp+arg_0]
mov bx, di
shl bx, 2
mov ax, [bx+17A4h]
mov dx, [bx+17A2h]
mov word ptr [bp+var_4+2], ax
mov word ptr [bp+var_4], dx
mov [bp+var_6], 0
jmp short loc_CD51
; ---------------------------------------------------------------------------
loc_CD03:
push [bp+arg_4]
push si
push large [bp+var_4]
mov bx, di
imul bx, 48h
push word ptr [bx+17CEh]
call graph_pack_put_8
inc si
cmp si, 190h
jl short loc_CD24
sub si, 190h
loc_CD24:
mov bx, di
imul bx, 48h
mov ax, [bx+17CEh]
shr ax, 1
add word ptr [bp+var_4], ax
mov eax, [bp+var_4]
shr eax, 10h
mov dx, word ptr [bp+var_4]
shr dx, 4
add ax, dx
mov dx, word ptr [bp+var_4]
and dx, 0Fh
mov word ptr [bp+var_4+2], ax
mov word ptr [bp+var_4], dx
inc [bp+var_6]
loc_CD51:
mov bx, di
imul bx, 48h
mov ax, [bx+17D0h]
cmp ax, [bp+var_6]
ja short loc_CD03
pop di
pop si
leave
retf 6
sub_CCDD endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_CD65 proc far
var_2 = word ptr -2
arg_0 = dword ptr 6
arg_4 = word ptr 0Ah
enter 2, 0
push si
mov si, [bp+arg_4]
mov ax, si
imul ax, 48h
add ax, 17BAh
push ds
push ax
mov bx, si
shl bx, 2
push large dword ptr [bx+17A2h]
call graph_pi_free
push large [bp+arg_0]
mov ax, si
imul ax, 48h
add ax, 17BAh
push ds
push ax
mov ax, si
shl ax, 2
add ax, 17A2h
push ds
push ax
call graph_pi_load_pack
mov [bp+var_2], ax
pop si
leave
retf 6
sub_CD65 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_CDAB proc far
var_6 = word ptr -6
var_4 = dword ptr -4
arg_0 = word ptr 6
arg_2 = word ptr 8
arg_4 = word ptr 0Ah
arg_6 = word ptr 0Ch
enter 6, 0
push si
push di
mov si, [bp+arg_4]
mov di, [bp+arg_0]
mov bx, [bp+arg_2]
shl bx, 2
mov ax, [bx+17A4h]
mov dx, [bx+17A2h]
mov word ptr [bp+var_4+2], ax
mov word ptr [bp+var_4], dx
cmp di, 1
jnz short loc_CDD7
add word ptr [bp+var_4], 0A0h
jmp short loc_CDED
; ---------------------------------------------------------------------------
loc_CDD7:
cmp di, 2
jnz short loc_CDE3
add word ptr [bp+var_4], 0FA00h
jmp short loc_CDED
; ---------------------------------------------------------------------------
loc_CDE3:
cmp di, 3
jnz short loc_CDED
add word ptr [bp+var_4], 0FAA0h
loc_CDED:
mov eax, [bp+var_4]
shr eax, 10h
mov dx, word ptr [bp+var_4]
shr dx, 4
add ax, dx
mov dx, word ptr [bp+var_4]
and dx, 0Fh
mov word ptr [bp+var_4+2], ax
mov word ptr [bp+var_4], dx
mov [bp+var_6], 0
jmp short loc_CE4F
; ---------------------------------------------------------------------------
loc_CE10:
push [bp+arg_6]
push si
push large [bp+var_4]
push 140h
call graph_pack_put_8
inc si
cmp si, 190h
jl short loc_CE2B
sub si, 190h
loc_CE2B:
add word ptr [bp+var_4], 140h
mov eax, [bp+var_4]
shr eax, 10h
mov dx, word ptr [bp+var_4]
shr dx, 4
add ax, dx
mov dx, word ptr [bp+var_4]
and dx, 0Fh
mov word ptr [bp+var_4+2], ax
mov word ptr [bp+var_4], dx
inc [bp+var_6]
loc_CE4F:
cmp [bp+var_6], 0C8h
jl short loc_CE10
pop di
pop si
leave
retf 8
sub_CDAB endp
; ---------------------------------------------------------------------------
push di
xor ax, ax
mov di, 196Ah
xor dl, dl
jmp short loc_CE71
; ---------------------------------------------------------------------------
loc_CE66:
xor dl, dl
mov cx, 8
loc_CE6B:
rol al, 1
rcr dl, 1
loop loc_CE6B
loc_CE71:
mov [di], dl
inc di
inc al
jnz short loc_CE66
pop di
retf
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_CE7A proc far
arg_0 = word ptr 6
push bp
mov bp, sp
push si
push di
mov si, [bp+arg_0]
xor di, di
loc_CE84:
nop
push cs
call sub_D48A
push 1
nopcall sub_CCA3
nopcall sub_D492
cmp word_10072, 0
jnz short loc_CE84
or si, si
jnz short loc_CEC6
mov si, 270Fh
jmp short loc_CEC6
; ---------------------------------------------------------------------------
loc_CEA5:
nop
push cs
call sub_D48A
push 1
nopcall sub_CCA3
nopcall sub_D492
cmp word_10072, 0
jnz short loc_CECA
inc di
cmp si, 270Fh
jnz short loc_CEC6
xor di, di
loc_CEC6:
cmp di, si
jl short loc_CEA5
loc_CECA:
pop di
pop si
pop bp
retf 2
sub_CE7A endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_CED0 proc far
arg_0 = word ptr 6
arg_2 = word ptr 8
arg_4 = word ptr 0Ah
push bp
mov bp, sp
movsx eax, [bp+arg_2]
movsx edx, [bp+arg_0]
imul eax, edx
sar eax, 8
add ax, [bp+arg_4]
pop bp
retf 6
sub_CED0 endp
; ---------------------------------------------------------------------------
push bp
mov bp, sp
push si
mov si, [bp+0Eh]
mov bx, [bp+6]
add bx, bx
movsx eax, word ptr [bp+8]
movsx edx, word ptr [bx+1F4h]
imul eax, edx
sar eax, 8
add ax, [bp+0Ch]
mov [si], ax
movsx eax, word ptr [bp+8]
movsx edx, word ptr [bx+174h]
imul eax, edx
sar eax, 8
add ax, [bp+0Ah]
mov [si+2], ax
pop si
pop bp
retf 0Ah
; =============== S U B R O U T I N E =======================================
sub_CF2E proc far
xor ax, ax
mov byte_FF9A, 60h
mov byte_EAD2, al
mov byte_EAD1, al
mov byte_EAD0, al
mov es, ax
les bx, dword ptr es:[0180h]
assume es:nothing
cmp byte ptr es:[bx+2], 50h ; 'P'
jnz short locret_CF5B
cmp byte ptr es:[bx+3], 4Dh ; 'M'
jnz short locret_CF5B
cmp byte ptr es:[bx+4], 44h ; 'D'
jnz short locret_CF5B
inc ax
locret_CF5B:
retf
sub_CF2E endp
; =============== S U B R O U T I N E =======================================
sub_CF5C proc far
xor ax, ax
mov es, ax
les bx, dword ptr es:[0184h]
assume es:nothing
cmp byte ptr es:[bx+2], 4Dh ; 'M'
jnz short loc_CF88
cmp byte ptr es:[bx+3], 4Dh ; 'M'
jnz short loc_CF88
cmp byte ptr es:[bx+4], 44h ; 'D'
jnz short loc_CF88
mov byte_FF9A, 61h ; 'a'
mov byte_EAD2, 1
mov ax, 1
retf
; ---------------------------------------------------------------------------
loc_CF88:
xor ax, ax
retf
sub_CF5C endp
; ---------------------------------------------------------------------------
nop
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_CF8C proc far
arg_0 = word ptr 6
push bp
mov bp, sp
cmp byte_EAD1, 0
jz short loc_CFA6
mov ax, [bp+arg_0]
cmp byte_EAD1, 3
jz short loc_CFA4
int 60h
jmp short loc_CFA6
; ---------------------------------------------------------------------------
loc_CFA4:
int 61h ; reserved for user interrupt
loc_CFA6:
pop bp
retf 2
sub_CF8C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_CFAA proc far
arg_0 = word ptr 6
arg_2 = word ptr 8
push bp
mov bp, sp
push si
push di
mov si, [bp+arg_2]
mov di, [bp+arg_0]
nopcall sub_CF2E
cmp si, 3
jnz short loc_CFC4
nopcall sub_CF5C
loc_CFC4:
mov ah, 9
int 60h
cmp al, 0FFh
jnz short loc_CFD3
mov byte_EAD1, 0
jmp short loc_CFE3
; ---------------------------------------------------------------------------
loc_CFD3:
or al, al
jnz short loc_CFDE
mov byte_EAD1, 1
jmp short loc_CFE3
; ---------------------------------------------------------------------------
loc_CFDE:
mov byte_EAD1, 2
loc_CFE3:
cmp di, 1
jnz short loc_CFFB
cmp byte_EAD1, 0
jz short loc_CFF4
mov ax, 1
jmp short loc_CFF6
; ---------------------------------------------------------------------------
loc_CFF4:
xor ax, ax
loc_CFF6:
mov byte_EAD0, al
jmp short loc_D00C
; ---------------------------------------------------------------------------
loc_CFFB:
cmp di, 2
jnz short loc_D007
mov byte_EAD0, 2
jmp short loc_D00C
; ---------------------------------------------------------------------------
loc_D007:
mov byte_EAD0, 0
loc_D00C:
or si, si
jnz short loc_D017
mov byte_EAD1, 0
jmp short loc_D03B
; ---------------------------------------------------------------------------
loc_D017:
cmp si, 3
jnz short loc_D02A
cmp byte_EAD2, 0
jz short loc_D02A
mov byte_EAD1, 3
jmp short loc_D03B
; ---------------------------------------------------------------------------
loc_D02A:
cmp si, 1
jnz short loc_D03B
cmp byte_EAD1, 0
jz short loc_D03B
mov byte_EAD1, 1
loc_D03B:
mov al, byte_EAD1
mov ah, 0
pop di
pop si
pop bp
retf 4
sub_CFAA endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_D046 proc far
arg_0 = word ptr 6
arg_2 = word ptr 8
push bp
mov bp, sp
cmp byte_EAD1, 0
jnz short loc_D05C
push [bp+arg_0]
nopcall sub_CCA3
pop bp
retf 4
; ---------------------------------------------------------------------------
loc_D05C:
mov ah, 5
cmp byte_EAD1, 3
jz short loc_D069
int 60h ; - FTP Packet Driver - BASIC FUNC - TERMINATE DRIVER FOR HANDLE
; BX = handle
; Return: CF set on error, DH = error code
; CF clear if successful
jmp short loc_D06E
; ---------------------------------------------------------------------------
loc_D069:
mov dx, 0C0h
int 61h ; reserved for user interrupt
loc_D06E:
cmp ax, [bp+arg_2]
jb short loc_D05C
pop bp
retf 4
sub_D046 endp
; ---------------------------------------------------------------------------
db 0
; ---------------------------------------------------------------------------
loc_D078:
push bp
mov bp, sp
push si
push di
mov si, [bp+8]
shl si, 4
add si, 1B46h
mov cx, [bp+0Ch]
mov di, cx
sar di, 4
shl di, 1
add di, [si+6]
mov ax, [si+8]
shl ax, 1
mov cs:byte_D0DD, al
and cx, 0Fh
mov bx, cx
shl bx, 1
mov bx, [bx+580h]
mov cs:word_D0E4, bx
mov cs:word_D0F1, bx
jmp short $+2
shl ax, 1
add ax, 50h ; 'P'
mov dx, ax
mov ax, [bp+0Ah]
mov bx, ax
shl ax, 2
add ax, bx
add ax, 0A800h
mov es, ax
push ds
mov ax, [si+0Eh]
mov si, [si]
mov ds, ax
mov ax, [bp+6]
mov bp, dx
mul si
mov si, ax
cld
; ---------------------------------------------------------------------------
db 0B5h
byte_D0DD db 80h
db 0ADh, 0D3h, 0C8h, 8Bh, 0D0h, 25h
word_D0E4 dw 1234h
db 33h, 0D0h, 0ABh, 0FEh, 0CDh, 0ADh, 0D3h, 0C8h, 8Bh
db 0D8h, 25h
word_D0F1 dw 1234h
db 33h, 0D8h, 0Bh, 0C2h, 8Bh, 0D3h, 0ABh, 0FEh, 0CDh, 75h
db 0EDh, 0Bh, 0D2h, 74h, 5, 26h, 89h, 15h, 33h, 0D2h, 2Bh
db 0FDh, 79h, 0D1h, 1Fh, 5Fh, 5Eh, 5Dh, 0CAh, 8, 0
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_D112 proc far
arg_0 = word ptr 6
arg_2 = dword ptr 8
push bp
mov bp, sp
push si
xor si, si
jmp short loc_D127
; ---------------------------------------------------------------------------
loc_D11A:
les bx, [bp+arg_2]
add bx, si
mov al, es:[bx]
mov [si+1B32h], al
inc si
loc_D127:
cmp si, 0Dh
jl short loc_D11A
xor si, si
loc_D12E:
inc si
cmp byte ptr [si+1B32h], 0
jnz short loc_D12E
mov byte ptr [si+1B36h], 0
mov byte ptr [si+1B32h], 2Eh ; '.'
inc si
cmp [bp+arg_0], 0B00h
jnz short loc_D17A
mov byte ptr [si+1B32h], 65h ; 'e'
mov byte ptr [si+1B33h], 66h ; 'f'
cmp byte_EAD0, 0
jz loc_D1F7
cmp byte_EAD0, 2
jnz short loc_D173
mov byte ptr [si+1B34h], 73h ; 's'
push ds
push offset unk_10062
call bgm_read_sdata
jmp loc_D1F7
; ---------------------------------------------------------------------------
loc_D173:
mov byte ptr [si+1B34h], 63h ; 'c'
jmp short loc_D1CA
; ---------------------------------------------------------------------------
loc_D17A:
cmp byte_EAD1, 0
jz short loc_D1F7
push 100h
nopcall sub_CF8C
mov al, byte_EAD1
mov ah, 0
shl ax, 2
mov bx, ax
les bx, [bx+5A4h]
mov al, es:[bx]
mov [si+1B32h], al
mov al, byte_EAD1
mov ah, 0
shl ax, 2
mov bx, ax
les bx, [bx+5A4h]
mov al, es:[bx+1]
mov [si+1B33h], al
mov al, byte_EAD1
mov ah, 0
shl ax, 2
mov bx, ax
les bx, [bx+5A4h]
mov al, es:[bx+2]
mov [si+1B34h], al
loc_D1CA:
push ds
mov dx, 1B32h
mov ax, 3D00h
int 21h ; DOS - 2+ - OPEN DISK FILE WITH HANDLE
; DS:DX -> ASCIZ filename
; AL = access mode
; 0 - read
mov bx, ax
mov ax, [bp+arg_0]
cmp ah, 6
jnz short loc_D1E8
cmp byte_EAD1, 3
jnz short loc_D1E8
int 61h ; reserved for user interrupt
jmp short loc_D1EA
; ---------------------------------------------------------------------------
loc_D1E8:
int 60h
loc_D1EA:
mov ax, 3F00h
mov cx, 5000h
int 21h ; DOS - 2+ - READ FROM FILE WITH HANDLE
; BX = file handle, CX = number of bytes to read
; DS:DX -> buffer
pop ds
mov ah, 3Eh
int 21h ; DOS - 2+ - CLOSE A FILE WITH HANDLE
; BX = file handle
loc_D1F7:
pop si
pop bp
retf 6
sub_D112 endp
; ---------------------------------------------------------------------------
loc_D1FC:
push bp
mov bp, sp
push si
push di
push ds
mov dx, [bp+0Ah]
mov al, 0C0h
pushf
cli
out 7Ch, al
popf
shr dx, 1
sbb al, al
out 7Eh, al
shr dx, 1
sbb al, al
out 7Eh, al
shr dx, 1
sbb al, al
out 7Eh, al
shr dx, 1
sbb al, al
out 7Eh, al
mov ax, 0A800h
mov es, ax
assume es:nothing
mov dx, [bp+0Ch]
shl dx, 6
mov di, dx
shr dx, 2
add di, dx
mov cx, [bp+0Eh]
mov al, 0Bh
out 68h, al
mov bx, word_EB2C
add bx, bx
cmp bx, 8
jb short loc_D258
cmp bx, 10h
jnb short loc_D258
mov ax, [bx+5CCh]
mov word ptr cs:loc_D350+3, ax
mov bx, 8
loc_D258:
mov ax, [bx+5C0h]
mov cs:word_D2BB, ax
mov ax, [bx+5CAh]
mov word ptr cs:loc_D30C+1, ax
mov ax, word_EB2E
mov cs:word_D2DA, ax
mov word ptr cs:loc_D320+1, ax
push ds
pop fs
assume fs:dseg
lds si, [bp+6]
lodsb
or al, al
jz short loc_D2E5
loc_D27E:
mov dx, cx
shr dx, 3
add di, dx
and cx, 7
mov ah, 9
test al, 0E0h
jns short loc_D2F7
jp short loc_D2F4
mov ah, al
lodsb
shl ah, 1
cmp al, 9Fh
jnb short loc_D29E
cmp al, 80h
adc ax, 0FEDFh
loc_D29E:
sbb al, 0FEh
and ax, 7F7Fh
out 0A1h, al
mov al, ah
out 0A3h, al
nop
mov al, ch
or al, 20h
out 0A5h, al
in al, 0A9h
mov ah, al
mov al, ch
out 0A5h, al
in al, 0A9h
; ---------------------------------------------------------------------------
db 0E8h
word_D2BB dw 78h
db 8Ah, 0F8h, 0B3h, 0, 0D3h, 0E8h, 0D3h, 0EBh, 86h, 0E0h
db 0ABh, 26h, 88h, 1Dh, 83h, 0C7h, 4Eh, 0FEh, 0C5h, 80h
db 0FDh, 10h, 72h, 0D5h, 81h, 0EFh, 0, 5, 0BAh
word_D2DA dw 1234h
; ---------------------------------------------------------------------------
loc_D2DC:
xor ch, ch
add cx, dx
lodsb
or al, al
jnz short loc_D27E
loc_D2E5:
mov al, 0Ah
out 68h, al
xor al, al
out 7Ch, al
pop ds
pop di
pop si
pop bp
retf 0Ah
; ---------------------------------------------------------------------------
loc_D2F4:
add ax, 80h
loc_D2F7:
cmp al, 20h ; ' '
jz short loc_D320
out 0A1h, al
mov al, ah
out 0A3h, al
nop
loc_D302:
mov al, ch
or al, 20h
out 0A5h, al
in al, 0A9h
xor ah, ah
loc_D30C:
call sub_D335
ror ax, cl
stosw
add di, 4Eh ; 'N'
inc ch
cmp ch, 10h
jb short loc_D302
sub di, 500h
loc_D320:
mov dx, 1234h
shr dx, 1
jmp short loc_D2DC
; ---------------------------------------------------------------------------
nop
mov dx, ax
add dx, dx
or ax, dx
retn
; ---------------------------------------------------------------------------
mov dx, ax
shl dx, 1
or ax, dx
; =============== S U B R O U T I N E =======================================
sub_D335 proc near
mov dx, ax
mov bp, ax
add bp, bp
or ax, bp
xor dx, ax
add dx, dx
not dx
and ax, dx
retn
sub_D335 endp
; ---------------------------------------------------------------------------
call sub_D335
mov bl, ch
and bx, 3
add bx, bx
loc_D350:
and ax, fs:[bx+1234h]
retn
; ---------------------------------------------------------------------------
loc_D356:
push bp
mov bp, sp
push si
push di
push ds
cli
mov al, 0C0h
out 7Ch, al
mov dx, 7Eh ; '~'
xor al, al
out dx, al
out dx, al
out dx, al
out dx, al
sti
mov si, [bp+6]
shl si, 4
add si, 1B46h
mov ax, [si+0Eh]
mov cs:word_D3CE, ax
jmp short $+2
mov ax, [bp+8]
mov bx, ax
shl ax, 2
add ax, bx
add ax, 0A800h
mov es, ax
assume es:nothing
push 0
add ax, 3800h
push ax
sub ax, 2800h
push ax
sub ax, 800h
push ax
mov ax, [bp+0Ah]
shr ax, 3
add ax, [si+6]
mov di, ax
mov bx, ax
mov ax, [si+8]
mov bp, ax
shl ax, 2
add ax, 50h ; 'P'
mov dx, ax
mov ax, [si+0Ch]
mov ds, ax
xor si, si
cld
nop
loc_D3BE:
mov cx, bp
rep movsd
sub di, dx
jns short loc_D3BE
xor al, al
out 7Ch, al
xor si, si
; ---------------------------------------------------------------------------
db 0B8h
word_D3CE dw 1234h
; ---------------------------------------------------------------------------
mov ds, ax
loc_D3D2:
mov di, bx
loc_D3D4:
mov cx, bp
loc_D3D6:
lodsd
or es:[di], eax
add di, 4
loop loc_D3D6
sub di, dx
jns short loc_D3D4
pop ax
mov es, ax
or ax, ax
jnz short loc_D3D2
pop ds
pop di
pop si
pop bp
retf 6
; ---------------------------------------------------------------------------
nop
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_D3F4 proc far
push bp
mov bp, sp
call sub_29D2
mov dx, 0A6h ; '<27>'
mov al, 1
out dx, al
call graph_clear
mov dx, 0A6h ; '<27>'
mov al, 0
out dx, al
call graph_clear
mov dx, 0A6h ; '<27>'
mov al, 0
out dx, al
mov dx, 0A4h
out dx, al
call mem_unassign
call vsync_end
call text_clear
call js_end
call egc_start
call bgm_finish
pop bp
retf
sub_D3F4 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_D43C proc far
arg_0 = dword ptr 6
push bp
mov bp, sp
push word_10070
call mem_assign_dos
or ax, ax
jz short loc_D453
mov ax, 1
pop bp
retf 4
; ---------------------------------------------------------------------------
loc_D453:
mov bbufsiz, 1000h
nopcall sub_CC7A
call vsync_start
call egc_start
call graph_400line
call sub_2B6E
push large [bp+arg_0]
call sub_2916
push 800h
call bgm_init
xor ax, ax
pop bp
retf 4
sub_D43C endp
; ---------------------------------------------------------------------------
db 0
; =============== S U B R O U T I N E =======================================
sub_D48A proc near
xor ax, ax
mov word_10072, ax
mov word_F3F6, ax
sub_D48A endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_D492 proc far
xor ax, ax
mov es, ax
mov ah, byte ptr es:[531h]
test ah, 4
jz short loc_D4A5
or word_10072, 1
loc_D4A5:
test ah, 20h
jz short loc_D4AF
or word_10072, 2
loc_D4AF:
test ah, 8
jz short loc_D4B9
or word_10072, 4
loc_D4B9:
test ah, 10h
jz short loc_D4C3
or word_10072, 8
loc_D4C3:
mov ah, byte ptr es:[533h]
test ah, 1
jz short loc_D4D2
or word_10072, 8
loc_D4D2:
test ah, 4
jz short loc_D4DD
or word_10072, 400h
loc_D4DD:
test ah, 8
jz short loc_D4E7
or word_10072, 2
loc_D4E7:
test ah, 10h
jz short loc_D4F2
or word_10072, 800h
loc_D4F2:
mov ah, byte ptr es:[532h]
test ah, 40h
jz short loc_D501
or word_10072, 4
loc_D501:
test ah, 4
jz short loc_D50C
or word_10072, 100h
loc_D50C:
test ah, 8
jz short loc_D516
or word_10072, 1
loc_D516:
test ah, 10h
jz short loc_D521
or word_10072, 200h
loc_D521:
mov ah, byte ptr es:[52Fh]
test ah, 2
jz short loc_D530
or word_10072, 20h
loc_D530:
test ah, 4
jz short loc_D53A
or word_10072, 10h
loc_D53A:
mov ah, byte ptr es:[52Ch]
test ah, 1
jz short loc_D54A
or word_10072, 4000h
loc_D54A:
mov ah, byte ptr es:[52Ah]
test ah, 1
jz short loc_D55A
or word_10072, 1000h
loc_D55A:
mov ah, byte ptr es:[52Dh]
test ah, 10h
jz short loc_D56A
or word_10072, 2000h
loc_D56A:
mov ah, byte ptr es:[530h]
test ah, 10h
jz short loc_D579
or word_10072, 20h
loc_D579:
mov ah, 2
int 18h ; TRANSFER TO ROM BASIC
; causes transfer to ROM-based BASIC (IBM-PC)
; often reboots a compatible; often has no effect at all
and al, 1
mov byte_10074, al
cmp word_E658, 0
jz short locret_D592
call sub_2CFC
or word_10072, ax
locret_D592:
retf
sub_D492 endp
; ---------------------------------------------------------------------------
nop
; =============== S U B R O U T I N E =======================================
sub_D594 proc far
mov byte_EB31, 0
mov byte_EB30, 0FFh
retf
sub_D594 endp
; ---------------------------------------------------------------------------
nop
; =============== S U B R O U T I N E =======================================
sub_D5A0 proc far
mov bx, sp
mov dx, ss:[bx+4]
cmp byte_EAD0, 0
jz short locret_D5D6
cmp byte_EB30, 0FFh
jnz short loc_D5BB
mov byte_EB30, dl
retf 2
; ---------------------------------------------------------------------------
loc_D5BB:
mov bl, byte_EB30
xor bh, bh
mov al, [bx+55Eh]
mov bx, dx
cmp al, [bx+55Eh]
ja short locret_D5D6
mov byte_EB30, dl
mov byte_EB31, 0
locret_D5D6:
retf 2
sub_D5A0 endp
; ---------------------------------------------------------------------------
nop
; =============== S U B R O U T I N E =======================================
sub_D5DA proc far
cmp byte_EAD0, 0
jz short locret_D625
cmp byte_EB30, 0FFh
jz short locret_D625
cmp byte_EB31, 0
jnz short loc_D607
mov al, byte_EB30
cmp byte_EAD0, 2
jz short loc_D5FF
mov ah, 0Ch
int 60h ; - Banyan VINES, 3com - GET STATION ADDRESS
; Return: AL = status, 00h successful, ES:SI -> 6-byte station address
; 02h semaphore service is unavailable
jmp short loc_D607
; ---------------------------------------------------------------------------
loc_D5FF:
xor ah, ah
push ax
call bgm_sound
loc_D607:
inc byte_EB31
mov bl, byte_EB30
xor bh, bh
mov al, [bx+56Fh]
cmp al, byte_EB31
jnb short locret_D625
mov byte_EB31, 0
mov byte_EB30, 0FFh
locret_D625:
retf
sub_D5DA endp
; =============== S U B R O U T I N E =======================================
sub_D626 proc far
push si
push di
cmp word_EB32, 0
jnz short loc_D65B
push 7D00h
call hmem_allocbyte
mov word_EB32, ax
push 7D00h
call hmem_allocbyte
mov word_EB34, ax
push 7D00h
call hmem_allocbyte
mov word_EB36, ax
push 7D00h
call hmem_allocbyte
mov word_EB38, ax
loc_D65B:
mov dl, 4
push ds
push 0E000h
push word_EB38
push 0B800h
push word_EB36
push 0B000h
push word_EB34
push 0A800h
push word_EB32
loc_D67A:
pop es
assume es:nothing
pop ds
xor si, si
xor di, di
mov cx, 1F40h
rep movsd
dec dl
jnz short loc_D67A
pop ds
pop di
pop si
retf
sub_D626 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
push si
push di
mov dl, 4
push ds
push 0E000h
push word_EB38
push 0B800h
push word_EB36
push 0B000h
push word_EB34
push 0A800h
push word_EB32
loc_D6AF:
pop ds
pop es
xor si, si
xor di, di
mov cx, 1F40h
rep movsd
dec dl
jnz short loc_D6AF
pop ds
pop di
pop si
retf
; ---------------------------------------------------------------------------
nop
; =============== S U B R O U T I N E =======================================
sub_D6C4 proc far
cmp word_EB32, 0
jz short locret_D6F5
push word_EB32
call hmem_free
push word_EB34
call hmem_free
push word_EB36
call hmem_free
push word_EB38
call hmem_free
mov word_EB32, 0
locret_D6F5:
retf
sub_D6C4 endp
; ---------------------------------------------------------------------------
loc_D6F6:
push bp
mov bp, sp
push di
push si
push ds
cld
mov ax, [bp+0Ch]
mov dx, [bp+0Ah]
mov bx, ax
sar bx, 4
shl bx, 1
shl dx, 6
add bx, dx
shr dx, 2
add bx, dx
mov cs:word_D75C, bx
and ax, 0Fh
mov cx, ax
add ax, [bp+8]
shr ax, 4
or cx, cx
jz short loc_D729
inc ax
loc_D729:
mov cs:word_D761, ax
jmp short $+2
mov cx, 28h ; '('
sub cx, ax
shl cx, 1
mov ax, [bp+6]
mov bp, cx
push 0E000h
push word_EB38
push 0B800h
push word_EB36
push 0B000h
push word_EB34
push 0A800h
push word_EB32
mov dl, 4
mov bx, ax
; ---------------------------------------------------------------------------
db 0BFh
word_D75C dw 1234h
db 1Fh, 7, 0B9h
word_D761 dw 1234h
db 8Bh, 0F7h, 0F3h, 0A5h, 3, 0FDh, 4Bh, 79h, 0F4h, 0FEh
db 0CAh, 75h, 0E9h, 1Fh, 5Eh, 5Fh, 5Dh, 0CAh, 8, 0, 90h
; =============== S U B R O U T I N E =======================================
sub_D778 proc near
mov byte_EB3A, 1
nop
sub_D778 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_D77E proc far
arg_0 = word ptr 6
arg_2 = dword ptr 8
arg_6 = word ptr 0Ch
push bp
mov bp, sp
push si
push di
mov di, [bp+arg_6]
push di
nopcall sub_D898
shl di, 4
add di, 1B46h
push large [bp+arg_2]
call file_ropen
push ds
push di
push 10h
call file_read
mov ax, [di]
mov dx, ax
cmp byte ptr [di+0Bh], 0
jz short loc_D7BA
shl ax, 2
cmp byte ptr [di+0Bh], 2
jz short loc_D7BA
add ax, dx
loc_D7BA:
mul [bp+arg_0]
movzx eax, ax
push eax
push 1
call file_seek
call sub_D7DE
call file_close
mov byte_EB3A, 0
pop di
pop si
pop bp
retf 8
sub_D77E endp
; ---------------------------------------------------------------------------
nop
; =============== S U B R O U T I N E =======================================
sub_D7DE proc near
mov al, [di+0Bh]
or al, al
jz short loc_D813
cmp al, 2
jz short loc_D7F0
cmp byte_EB3A, 0
jnz short loc_D806
loc_D7F0:
push word ptr [di]
call hmem_allocbyte
mov [di+0Ch], ax
push ax
push 0
push word ptr [di]
call file_read
jmp short loc_D813
; ---------------------------------------------------------------------------
loc_D806:
movzx eax, word ptr [di]
push eax
push 1
call file_seek
loc_D813:
cmp byte ptr [di+0Bh], 2
jz short locret_D835
mov ax, [di]
shl ax, 2
push ax
call hmem_allocbyte
mov [di+0Eh], ax
push ax
push 0
mov ax, [di]
shl ax, 2
push ax
call file_read
locret_D835:
retn
sub_D7DE endp
; ---------------------------------------------------------------------------
mov byte_EB3A, 1
nop
push bp
mov bp, sp
push si
push di
push large dword ptr [bp+6]
call file_ropen
mov di, [bp+0Ah]
shl di, 4
add di, 1B46h
push ds
push di
push 10h
call file_read
mov si, di
mov bp, [bp+0Ah]
mov al, [si+0Ah]
mov byte_10476, al
push ds
pop es
assume es:dseg
loc_D86A:
push bp
call sub_D898
mov cx, 3
rep movsd
sub si, 0Ch
sub di, 0Ch
call sub_D7DE
inc bp
add di, 10h
dec byte_10476
jnz short loc_D86A
call file_close
mov byte_EB3A, 0
pop di
pop si
pop bp
retf 6
; =============== S U B R O U T I N E =======================================
sub_D898 proc far
mov bx, sp
push di
mov di, ss:[bx+4]
shl di, 4
add di, 1B52h
cmp word ptr [di], 0
jz short loc_D8B6
push word ptr [di]
call hmem_free
mov word ptr [di], 0
loc_D8B6:
add di, 2
cmp word ptr [di], 0
jz short loc_D8C9
push word ptr [di]
call hmem_free
mov word ptr [di], 0
loc_D8C9:
pop di
retf 2
sub_D898 endp
; ---------------------------------------------------------------------------
nop
; =============== S U B R O U T I N E =======================================
sub_D8CE proc far
push si
mov si, 3Fh ; '?'
loc_D8D2:
push si
call sub_D898
dec si
jge short loc_D8D2
pop si
retf
sub_D8CE endp
seg002 ends
; ===========================================================================
; Segment type: Pure code
seg003 segment byte public 'CODE' use16
assume cs:seg003
;org 0Ch
assume es:nothing, ss:nothing, ds:dseg, fs:nothing, gs:nothing
include libs/BorlandC/ctor2[textc].asm
include libs/BorlandC/ctor3[textc].asm
include libs/BorlandC/strings[textc].asm
dd 0, 0, 0
seg003 ends
; ===========================================================================
; Segment type: Pure data
dseg segment para public 'DATA' use16
assume cs:dseg
include libs/BorlandC/c0[data].asm
off_E5C0 dd a_ed000_txt
; "_ED000.TXT"
aMiko_cfg db 'MIKO.CFG',0
a_ed000_txt db '_ED000.TXT',0
aCong00_pi db 'CONG00.pi',0
aMSzlEd_dat db '<27><><EFBFBD>z<EFBFBD><7A>ed.dat',0
aGameft_bft db 'GAMEFT.bft',0
; char arg0[]
arg0 db 'op',0
db 0
include libs/master.lib/atrtcmod[data].asm
include libs/master.lib/bfnt_id[data].asm
include libs/master.lib/clip[data].asm
include libs/master.lib/fil[data].asm
include libs/master.lib/dos_ropen[data].asm
include libs/master.lib/get_machine_98[data].asm
include libs/master.lib/get_machine_at[data].asm
include libs/master.lib/gaiji_backup[data].asm
include libs/master.lib/gaiji_entry_bfnt[data].asm
include libs/master.lib/grp[data].asm
db 0
word_E658 dw 0
dw 0
dw 0
dw 0
include libs/master.lib/machine[data].asm
include libs/master.lib/pal[data].asm
include libs/master.lib/pf[data].asm
db 0
include libs/master.lib/rand[data].asm
include libs/master.lib/sin8[data].asm
include libs/master.lib/tx[data].asm
include libs/master.lib/vs[data].asm
include libs/master.lib/wordmask[data].asm
include libs/master.lib/mem[data].asm
include libs/master.lib/super_entry_bfnt[data].asm
include libs/master.lib/superpa[data].asm
a_exe db '.exe',0
db 0
include libs/master.lib/bgm_timerhook[data].asm
include libs/master.lib/bgm[data].asm
dw 0
db 20h
db 10h
db 2
db 12h
db 12h
db 40h
db 10h
db 11h
db 2
db 12h
db 20h
db 20h
db 20h
db 20h
db 0
db 0
db 0
db 24h ; $
db 10h
db 4
db 10h
db 8
db 30h ; 0
db 50h ; P
db 11h
db 4
db 0Bh
db 50h ; P
db 50h ; P
db 50h ; P
db 20h
db 0
db 0FFh
db 0FFh
db 7Fh
db 0FFh
db 3Fh ; ?
db 0FFh
db 1Fh
db 0FFh
db 0Fh
db 0FFh
db 7
db 0FFh
db 3
db 0FFh
db 1
db 0FFh
db 0
db 0FFh
db 0
db 7Fh
db 0
db 3Fh ; ?
db 0
db 1Fh
db 0
db 0Fh
db 0
db 7
db 0
db 3
db 0
db 1
byte_EAD0 db 0
byte_EAD1 db 0
byte_EAD2 db 0
db 0
dd aM26 ; "m26"
dd aM26 ; "m26"
dd aM86 ; "m86"
dd aMmd ; "mmd"
aM26 db 'm26',0
aM86 db 'm86',0
aMmd db 'mmd',0
db 71h ; q
db 0
db 6Bh ; k
db 0
db 78h ; x
db 0
db 72h ; r
db 0
db 89h
db 0
db 1Fh
db 0
db 19h
db 0
db 26h ; &
db 0
db 20h
db 0
db 37h ; 7
db 0
db 0DCh
db 5
db 0E4h ; <20>E
db 5
db 0ECh
db 5
db 0F4h
db 5
db 88h
db 88h
db 0
db 0
db 22h ; "
db 22h ; "
db 0
db 0
db 88h
db 88h
db 44h ; D
db 44h ; D
db 22h ; "
db 22h ; "
db 11h
db 11h
db 0AAh ; <20>
db 0AAh ; <20>
db 44h ; D
db 44h ; D
db 0AAh ; <20>
db 0AAh ; <20>
db 11h
db 11h
db 0AAh ; <20>
db 0AAh ; <20>
db 55h ; U
db 55h ; U
db 0AAh ; <20>
db 0AAh ; <20>
db 55h ; U
db 55h ; U
word_EB2C dw 2
word_EB2E dw 10h
byte_EB30 db 0FFh
byte_EB31 db 0
word_EB32 dw 0
word_EB34 dw 0
word_EB36 dw 0
word_EB38 dw 0
byte_EB3A db 0
db 0
db 0
db 0
db 11h
db 11h
db 0
db 0
db 44h ; D
db 44h ; D
db 88h
db 88h
db 11h
db 11h
db 22h ; "
db 22h ; "
db 44h ; D
db 44h ; D
db 0AAh ; <20>
db 0AAh ; <20>
db 55h ; U
db 55h ; U
db 0AAh ; <20>
db 0AAh ; <20>
db 55h ; U
db 55h ; U
db 0EEh
db 0EEh
db 77h ; w
db 77h ; w
db 0BBh ; <20>
db 0BBh ; <20>
db 0DDh
db 0DDh
db 88h
db 88h
db 0
db 0
db 22h ; "
db 22h ; "
db 0
db 0
db 88h
db 88h
db 44h ; D
db 44h ; D
db 22h ; "
db 22h ; "
db 11h
db 11h
db 0AAh ; <20>
db 0AAh ; <20>
db 44h ; D
db 44h ; D
db 0AAh ; <20>
db 0AAh ; <20>
db 11h
db 11h
db 0AAh ; <20>
db 0AAh ; <20>
db 44h ; D
db 44h ; D
db 0AAh ; <20>
db 0AAh ; <20>
db 55h ; U
db 55h ; U
db 0FFh
db 0FFh
db 0FFh
db 0FFh
db 0FFh
db 0FFh
db 0FFh
db 0FFh
db 20h
db 20h
db 0
db 0
aSff1_pi db 'sff1.pi',0
aStaff db 'staff',0
aSff1_cdg db 'sff1.cdg',0
aSff1b_cdg db 'sff1b.cdg',0
aSff2_cdg db 'sff2.cdg',0
aSff2b_cdg db 'sff2b.cdg',0
aSff3_cdg db 'sff3.cdg',0
aSff3b_cdg db 'sff3b.cdg',0
aSff2_pi db 'sff2.pi',0
aSff4_cdg db 'sff4.cdg',0
aSff4b_cdg db 'sff4b.cdg',0
aSff5_cdg db 'sff5.cdg',0
aSff5b_cdg db 'sff5b.cdg',0
aSff8_cdg db 'sff8.cdg',0
aSff8b_cdg db 'sff8b.cdg',0
aSff9_cdg db 'sff9.cdg',0
aSff9b_cdg db 'sff9b.cdg',0
aSff6_cdg db 'sff6.cdg',0
aSff6b_cdg db 'sff6b.cdg',0
aSff7_cdg db 'sff7.cdg',0
aSff7b_cdg db 'sff7b.cdg',0
db 0
byte_EC4A db 0
include th04/strings/verdict[data].asm
byte_EC73 db 0
aU_ db '<27>_',0
aBd db '<27>D',0
aBu db '<27><>',0
aBd_0 db '<27>D',0
aBu_0 db '<27><>',0
aB@b@b@b@b@b@b@ db '<27>@<40>@<40>@<40>@<40>@<40>@<40>@ <20>r<EFBFBD>O<EFBFBD><4F><EFBFBD><EFBFBD>',0
aUqiUx db '<27><><EFBFBD>Փx',0
aNPiuU_ db '<27>ŏI<C58F><49><EFBFBD>_',0
aGGxi db '<27>~<7E>X<EFBFBD><58><EFBFBD><EFBFBD>',0
aGGaogcpi db '<27>{<7B><><EFBFBD>g<EFBFBD>p<EFBFBD><70><EFBFBD><EFBFBD>',0
aGqbGatbrmcj db '<27>Q<EFBFBD>[<5B><><EFBFBD>B<EFBFBD><42><EFBFBD><EFBFBD>',0
aIlcSObcj db '<27><><EFBFBD><EFBFBD><EFBFBD>ގ<EFBFBD><DE8E><EFBFBD>',0
aGagcgegai db '<27>A<EFBFBD>C<EFBFBD>e<EFBFBD><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',0
aUU_gagcgeganNv db '<27><><EFBFBD>_<EFBFBD>A<EFBFBD>C<EFBFBD>e<EFBFBD><65><EFBFBD>ō<EFBFBD><C58D>_<EFBFBD><5F>',0
aLcnzvv db '<27>C<EFBFBD><43><EFBFBD><EFBFBD>',0
aPicacovCj db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',0
aVavVVSrso db '<27><><EFBFBD>Ȃ<EFBFBD><C882>̘r<CC98>O',0
aTimes db '<27><>',0
aTimes_0 db '<27><>',0
aPoint db '<27>_',0
a_ude_txt db '_ude.txt',0
aBhbhbhbhbhbhu_ db '<27>H<EFBFBD>H<EFBFBD>H<EFBFBD>H<EFBFBD>H<EFBFBD>H<EFBFBD>_',0
aPicacovVVcvsfT db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɂ<EFBFBD><C982><EFBFBD><E994BB><EFBFBD>s<EFBFBD><73>',0
aUde_pi db 'ude.pi',0
db 0
gALPHABET db 0AAh, 0ABh, 0ACh, 0ADh, 0AEh, 0AFh, 0B0h, 0B1h, 0B2h
db 0B3h, 0B4h, 0B5h, 0B6h, 0B7h, 0B8h, 0B9h, 0BAh, 0BBh
db 0BCh, 0BDh, 0BEh, 0BFh, 0C0h, 0C1h, 0C2h, 0C3h, 0C4h
db 0C5h, 3, 6, 7, 8, 0Ch, 0Fh, 0A0h, 0A1h, 0A2h, 0A3h
db 0A4h, 0A5h, 0A6h, 0A7h, 0A8h, 0A9h, 0E6h, 0E7h, 0E8h
db 0CEh, 0CFh, 0CDh, 0D5h
aGensou_scr db 'GENSOU.SCR',0
aGensou_scr_0 db 'GENSOU.SCR',0
aGensou_scr_1 db 'GENSOU.SCR',0
aGensou_scr_2 db 'GENSOU.SCR',0
aHi01_pi db 'hi01.pi',0
aScnum2_bft db 'scnum2.bft',0
aGxgnbGvbGhvVGv db '<27>X<EFBFBD><58><EFBFBD>[<5B><><EFBFBD>[<5B>h<EFBFBD>ł̃v<CC83><76><EFBFBD>C<EFBFBD>ł́A<CD81>X<EFBFBD>R<EFBFBD>A<EFBFBD>͋L<CD8B>^<5E><><EFBFBD><EFBFBD><EFBFBD>܂<EFBFBD><DC82><EFBFBD>',0
aGxgnbGvbGhvV_1 db '<27>X<EFBFBD><58><EFBFBD>[<5B><><EFBFBD>[<5B>h<EFBFBD>ł̃v<CC83><76><EFBFBD>C<EFBFBD>ł́A<CD81>X<EFBFBD>R<EFBFBD>A<EFBFBD>͋L<CD8B>^<5E><><EFBFBD><EFBFBD><EFBFBD>܂<EFBFBD><DC82><EFBFBD>',0
aName db 'name',0
db 0
include libs/BorlandC/_abort[data].asm
include libs/BorlandC/atexit[data].asm
include libs/BorlandC/exit[data].asm
include libs/BorlandC/files[data].asm
include libs/BorlandC/__IOERROR[data].asm
db 0
include libs/BorlandC/new[data].asm
__stklen dw 1000h
include libs/master.lib/ctype[data].asm
db 0
include libs/BorlandC/xxv[data].asm
include libs/BorlandC/cputype[data].asm
include libs/BorlandC/fbrk[data].asm
include libs/BorlandC/signal[data].asm
include libs/BorlandC/pathops[data].asm
include libs/BorlandC/srchenv[data].asm
include libs/BorlandC/srchstr[data].asm
include libs/BorlandC/setvbuf[data].asm
include libs/BorlandC/sysnerr[data].asm
include libs/BorlandC/xx[data].asm
include libs/BorlandC/setenvp[data].asm
include libs/BorlandC/strings[data].asm
include libs/BorlandC/loadprog[data].asm
InitStart label byte
include libs/BorlandC/new[initdata].asm
include libs/BorlandC/setupio[initdata].asm
include libs/BorlandC/cputype[initdata].asm
include libs/BorlandC/pathops[initdata].asm
include libs/BorlandC/setenvp[initdata].asm
InitEnd label byte
ExitStart label byte
include libs/BorlandC/new[exitdata].asm
ExitEnd label byte
bdata@ label byte
; TODO: Missing clip[bss].asm (8 bytes) somewhere in there...
dword_F3CE dd 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
include libs/master.lib/fil[bss].asm
word_F3F6 dw 0
db 0
db 0
include libs/master.lib/pal[bss].asm
include libs/master.lib/vs[bss].asm
include libs/master.lib/vsync[bss].asm
include libs/master.lib/mem[bss].asm
include libs/master.lib/superpa[bss].asm
dword_FC3C dd 0
dword_FC40 dd 0
dword_FC44 dd 0
dword_FC48 dd 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
word_FCCC dw 0
word_FCCE dw 0
word_FCD0 dw 0
dword_FCD2 dd 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
unk_FCEA db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
byte_FF9A db 0
db 0
include libs/master.lib/bgm[bss].asm
unk_10062 db ? ;
dd ? ;
dd ? ;
dd ? ;
db ? ;
word_10070 dw ?
word_10072 dw ?
byte_10074 db ?
db ? ;
dw ?
word_10078 dw ?
word_1007A dw ?
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
word_10098 dw ?
word_1009A 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 ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
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 ? ;
byte_10476 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 ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
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 ?
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
db ? ;
db ? ;
db ? ;
word_12478 dw ?
dword_1247A dd ?
byte_1247E db ?
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
db ? ;
word_124BC dw ?
word_124BE dw ?
word_124C0 dw ?
byte_124C2 db ?
db ? ;
word_124C4 dw ?
byte_124C6 db ?
byte_124C7 db ?
word_124C8 dw ?
dw ?
byte_124CC db ?
db ? ;
dword_124CE dd ?
byte_124D2 db ?
unk_124D3 db ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
db ? ;
db ? ;
db ? ;
byte_124EF db ?
db ? ;
db ? ;
byte_124F2 db ?
byte_124F3 db ?
word_124F4 dw ?
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
db ? ;
db ? ;
word_12530 dw ?
word_12532 dw ?
dword_12534 dd ?
word_12538 dw ?
word_1253A 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 ? ;
byte_125A0 db ?
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
db ? ;
byte_125B6 db ?
byte_125B7 db ?
word_125B8 dw ?
include libs/BorlandC/atexit[bss].asm
include libs/BorlandC/sigdata[bss].asm
word_1263E dw ?
word_12640 dw ?
include libs/BorlandC/signal[bss].asm
include libs/BorlandC/xx[bss].asm
edata@ label byte
dseg ends
; ===========================================================================
; Segment type: Uninitialized
seg005 segment byte stack 'STACK' use16
assume cs:seg005
assume es:nothing, ss:nothing, ds:dseg, fs:nothing, gs:nothing
db 80h dup(?)
seg005 ends
end startx