ReC98/th02_zun_res.asm

858 lines
16 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 : 57FF9283F7BC1A6816D6181BBCEC5975
; File Name : th02/ZUN.COM:ZUN_RES
; Format : MS-DOS COM-file
; Base Address: 0h Range: 100h-1C66h Loaded length: 1B66h
; OS type : MS DOS
; Application type: Executable 16bit
.286 ; Force the .model directive to create 16-bit default segments...
.model tiny
__TINY__ equ 1
.386 ; ... then switch to what we actually need.
; And yes, we can't move this to an include file for some reason.
include ReC98.inc
include th02/th02.asm
; ===========================================================================
; Segment type: Pure code
_TEXT segment word public 'CODE' use16
assume cs:_TEXT
org 100h
assume es:nothing, ss:nothing, ds:_TEXT, fs:nothing, gs:nothing
include libs/BorlandC/c0.asm
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_367 proc near
var_6 = byte ptr -6
arg_0 = byte ptr 4
enter 6, 0
push si
push di
mov di, offset aHuuma_cfg ; "huuma.cfg"
lea ax, [bp+var_6]
push ss
push ax
push ds
push offset unk_183F
mov cx, 5
call N_SCOPY@
push 3D02h
push di
call dos_axdx
mov si, ax
or si, si
jle short loc_398
push ax
push 0
push 5
push 0
call dos_seek
jmp short loc_3AB
; ---------------------------------------------------------------------------
loc_398:
push di
push 20h
call dos_create
mov si, ax
push ax
push ss
lea ax, [bp+var_6]
push ax
push 5
call dos_write
loc_3AB:
push si
push ss
lea ax, [bp+arg_0]
push ax
push 2
call dos_write
push si
push ds
push offset byte_183E
push 1
call dos_write
push si
call dos_close
pop di
pop si
leave
retn
sub_367 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 near
var_8 = dword ptr -8
var_4 = word ptr -4
var_2 = word ptr -2
_argc = word ptr 4
_argv = word ptr 6
_envp = word ptr 8
enter 8, 0
push si
push di
mov si, [bp+_argv]
mov [bp+var_2], offset aMikoconfig ; "MIKOConfig"
push [bp+var_2]
push 0Ah
push 3
call resdata_exist
mov di, ax
push offset aUmx ; "\n\n<><6E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>^<5E>p<EFBFBD>@ <20><EFBFBD>v<EFBFBD><76><EFBFBD>O<EFBFBD><4F><EFBFBD><EFBFBD><EFBFBD>@ZUN_RE"...
call dos_puts2
call graph_clear
call sub_4BA
cmp ax, 1
jnz short loc_3F9
push offset aGngcgxgrgagtg@ ; "<22>n<EFBFBD>C<EFBFBD>X<EFBFBD>R<EFBFBD>A<EFBFBD>t<EFBFBD>@<40>C<EFBFBD><43><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>́A<CC81><41><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>E...
jmp loc_47E
; ---------------------------------------------------------------------------
loc_3F9:
cmp [bp+_argc], 2
jnz short loc_45F
mov bx, [si+2]
cmp byte ptr [bx], 2Dh
jz short loc_40C
cmp byte ptr [bx], 2Fh
jnz short loc_434
loc_40C:
mov bx, [si+2]
cmp byte ptr [bx+1], 52h
jz short loc_41B
cmp byte ptr [bx+1], 72h
jnz short loc_434
loc_41B:
or di, di
jnz short loc_427
push offset aVavVBavVVvvVV ; "<22><EFBFBD><ED82BD><EFBFBD>A<EFBFBD>܂<EFBFBD><DC82><EFBFBD><EFBFBD>܂<EFBFBD><DC82><EFBFBD><EFBFBD>悧\n\n"
call dos_puts2
jmp short loc_481
; ---------------------------------------------------------------------------
loc_427:
push di
call dos_free
push offset aVVcvVcbavVIqvj ; "<22><><EFBFBD><EFBFBD><EFBFBD>Ȃ<EFBFBD><C882>A<EFBFBD>܂<EFBFBD><DC82><EFBFBD><EF82A6><EFBFBD><EFBFBD><E782A2><EFBFBD><EFBFBD>\n\n"
call dos_puts2
jmp loc_4B3
; ---------------------------------------------------------------------------
loc_434:
mov bx, [si+2]
cmp byte ptr [bx], 2Dh
jz short loc_441
cmp byte ptr [bx], 2Fh
jnz short loc_457
loc_441:
mov bx, [si+2]
cmp byte ptr [bx+1], 44h
jz short loc_450
cmp byte ptr [bx+1], 64h
jnz short loc_457
loc_450:
mov byte_183E, 1
jmp short loc_45F
; ---------------------------------------------------------------------------
loc_457:
push offset aVV ; "<22><><EFBFBD><EFBFBD><EFBFBD>ȃI<C883>v<EFBFBD>V<EFBFBD><56><EFBFBD><EFBFBD><EFBFBD>t<EFBFBD><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ă<EFBFBD><C482>A<EFBFBD><41><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ŁE...
call dos_puts2
jmp short loc_481
; ---------------------------------------------------------------------------
loc_45F:
or di, di
jz short loc_46B
push offset aVavVBavVVVvvVV ; "<22><EFBFBD><ED82BD><EFBFBD>A<EFBFBD><41><EFBFBD>łɂ<C582><C982>܂<EFBFBD><DC82>悧\n\n"
call dos_puts2
jmp short loc_481
; ---------------------------------------------------------------------------
loc_46B:
push [bp+var_2]
push 0Ah
push 3
call resdata_create
mov di, ax
or di, di
jnz short loc_486
push offset aNVVVV ; "<22><><EFBFBD><EFBFBD><EFBFBD>܂<EFBFBD><DC82><EFBFBD><EFBFBD>A<EFBFBD><EFBFBD><ED82BD><EFBFBD>̋<EFBFBD><CC8B><EFBFBD><EA8F8A><EFBFBD>Ȃ<EFBFBD><C882>́I\n\n"
loc_47E:
call dos_puts2
loc_481:
mov ax, 1
jmp short loc_4B5
; ---------------------------------------------------------------------------
loc_486:
mov word ptr [bp+var_8+2], di
mov word ptr [bp+var_8], 0
push offset aVVVVBavcvivVnv ; "<22><><EFBFBD><EFBFBD><EFBFBD>ł́A<CD81><41><EFBFBD><EFBFBD><EB82B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E882A2><EFBFBD>܂<EFBFBD>\n\n"
call dos_puts2
mov [bp+var_4], 0Bh
jmp short loc_4A8
; ---------------------------------------------------------------------------
loc_49B:
les bx, [bp+var_8]
add bx, [bp+var_4]
mov byte ptr es:[bx], 0
inc [bp+var_4]
loc_4A8:
cmp [bp+var_4], 30h
jl short loc_49B
push di
call sub_367
pop cx
loc_4B3:
xor ax, ax
loc_4B5:
pop di
pop si
leave
retn
_main endp
; ---------------------------------------------------------------------------
db 0
; =============== S U B R O U T I N E =======================================
sub_4BA proc near
push si
push di
push off_19A8
call file_exist
or ax, ax
jnz short loc_4CD
call sub_6C1
jmp loc_584
; ---------------------------------------------------------------------------
loc_4CD:
mov byte ptr unk_1D1E, 0
jmp loc_57A
; ---------------------------------------------------------------------------
loc_4D5:
call sub_6CC
mov al, 0
mov byte_19AA, al
mov byte_19AB, al
xor ax, ax
mov word_19AD, ax
mov word_19AF, ax
mov word_19B1, ax
mov word_19B3, ax
xor si, si
jmp short loc_502
; ---------------------------------------------------------------------------
loc_4F2:
mov al, [si+1C68h]
mov ah, 0
add word_19B1, ax
adc word_19B3, 0
inc si
loc_502:
cmp si, 0B2h
jl short loc_4F2
xor si, si
jmp short loc_537
; ---------------------------------------------------------------------------
loc_50C:
mov bx, si
shl bx, 2
mov dx, word_1C6C[bx]
mov ax, word_1C6A[bx]
add word_19AD, ax
adc word_19AF, dx
mov bx, si
imul bx, 7
mov al, byte_1C96[bx]
add byte_19AA, al
mov al, byte_1CDD[si]
add byte_19AB, al
inc si
loc_537:
cmp si, 0Ah
jl short loc_50C
mov dx, word_19AF
mov ax, word_19AD
cmp dx, word ptr unk_1C94
jnz short loc_574
cmp ax, word ptr unk_1C92
jnz short loc_574
mov al, byte_19AA
cmp al, byte ptr unk_1CDC
jnz short loc_574
mov al, byte_19AB
cmp al, byte ptr unk_1CE7
jnz short loc_574
mov dx, word_19B3
mov ax, word_19B1
cmp dx, word ptr unk_1D1C
jnz short loc_574
cmp ax, word ptr unk_1D1A
jz short loc_576
loc_574:
jmp short loc_588
; ---------------------------------------------------------------------------
loc_576:
inc byte ptr unk_1D1E
loc_57A:
cmp byte ptr unk_1D1E, 5
jge short loc_584
jmp loc_4D5
; ---------------------------------------------------------------------------
loc_584:
xor ax, ax
jmp short loc_594
; ---------------------------------------------------------------------------
loc_588:
push off_19A8
call file_delete
mov ax, 1
jmp short $+2
loc_594:
pop di
pop si
retn
sub_4BA endp
; ---------------------------------------------------------------------------
nop
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_598 proc near
push bp
mov bp, sp
push si
push di
xor si, si
mov di, 10000
jmp short loc_5F9
; ---------------------------------------------------------------------------
loc_5A4:
mov word ptr bdata@, 0
mov bx, si
shl bx, 2
mov word_1C6C[bx], 0
mov word_1C6A[bx], di
sub di, 1000
mov ax, si
sar ax, 1
mov dl, 5
sub dl, al
mov byte_1CDD[si], dl
mov bx, si
imul bx, 7
mov cx, 6
loc_5D1:
mov byte_1C96[bx], 0DAh
inc bx
loop loc_5D1
mov byte_1C96[bx], 0
mov bx, si
shl bx, 2
mov word_1CE8[bx], 1900
mov byte_1CEA[bx], 1
mov byte_1CEB[bx], 1
mov byte_1D10[si], 1
inc si
loc_5F9:
cmp si, 0Ah
jge short loc_600
jmp short loc_5A4
; ---------------------------------------------------------------------------
loc_600:
pop di
pop si
pop bp
retn
sub_598 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_604 proc near
push bp
mov bp, sp
push si
mov word ptr unk_1C94, 0
mov word ptr unk_1C92, 0
mov byte ptr unk_1CDC, 0
mov byte ptr unk_1CE7, 0
mov word ptr unk_1D1C, 0
mov word ptr unk_1D1A, 0
xor si, si
jmp short loc_659
; ---------------------------------------------------------------------------
loc_62E:
mov bx, si
shl bx, 2
mov dx, word_1C6C[bx]
mov ax, word_1C6A[bx]
add word ptr unk_1C92, ax
adc word ptr unk_1C94, dx
mov bx, si
imul bx, 7
mov al, byte_1C96[bx]
add byte ptr unk_1CDC, al
mov al, byte_1CDD[si]
add byte ptr unk_1CE7, al
inc si
loc_659:
cmp si, 0Ah
jl short loc_62E
xor si, si
jmp short loc_67C
; ---------------------------------------------------------------------------
loc_662:
mov al, bdata@[si]
mov ah, 0
add word ptr unk_1D1A, ax
adc word ptr unk_1D1C, 0
mov al, bdata@[si]
add al, 12h
mov bdata@[si], al
inc si
loc_67C:
cmp si, 0B2h
jl short loc_662
push off_19A8
call file_create
push ds
push offset bdata@
push 0B6h
call file_write
push ds
push offset bdata@
push 0B6h
call file_write
push ds
push offset bdata@
push 0B6h
call file_write
push ds
push offset bdata@
push 0B6h
call file_write
push ds
push offset bdata@
push 0B6h
call file_write
call file_close
pop si
pop bp
retn
sub_604 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_6C1 proc near
push bp
mov bp, sp
call sub_598
call sub_604
pop bp
retn
sub_6C1 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_6CC proc near
push bp
mov bp, sp
push si
push off_19A8
call file_ropen
mov al, byte ptr unk_1D1E
cbw
imul ax, 0B6h
push 0
push ax
push 0
call file_seek
push ds
push offset bdata@
push 0B6h
call file_read
xor si, si
jmp short loc_700
; ---------------------------------------------------------------------------
loc_6F5:
mov al, bdata@[si]
add al, 0EEh
mov bdata@[si], al
inc si
loc_700:
cmp si, 0B2h
jl short loc_6F5
call file_close
pop si
pop bp
retn
sub_6CC endp
include libs/master.lib/graph_clear.asm
include libs/master.lib/resdata.asm
include libs/master.lib/file_read.asm
include libs/master.lib/file_close.asm
include libs/master.lib/file_exist.asm
include libs/master.lib/file_ropen.asm
include libs/master.lib/file_write.asm
include libs/master.lib/file_create.asm
include libs/master.lib/file_delete.asm
include libs/master.lib/file_seek.asm
include libs/master.lib/dos_free.asm
include libs/master.lib/dos_axdx.asm
include libs/master.lib/dos_create.asm
include libs/master.lib/dos_puts2.asm
include libs/master.lib/dos_close.asm
include libs/master.lib/dos_ropen.asm
include libs/master.lib/dos_write.asm
include libs/master.lib/dos_seek.asm
include libs/BorlandC/_abort.asm
include libs/BorlandC/atexit.asm
include libs/BorlandC/errormsg.asm
include libs/BorlandC/exit.asm
include libs/BorlandC/ioerror.asm
include libs/BorlandC/_isatty.asm
include libs/BorlandC/lseek.asm
include libs/BorlandC/n_scopy.asm
include libs/BorlandC/setupio.asm
include libs/BorlandC/brk.asm
include libs/BorlandC/nearheap.asm
include libs/BorlandC/pathops.asm
include libs/BorlandC/fflush.asm
include libs/BorlandC/flushall.asm
include libs/BorlandC/fseek.asm
include libs/BorlandC/setvbuf.asm
include libs/BorlandC/_strlen.asm
include libs/BorlandC/write.asm
include libs/BorlandC/writea.asm
include libs/BorlandC/xfflush.asm
include libs/BorlandC/setargv.asm
; ---------------------------------------------------------------------------
include libs/BorlandC/c0[data].asm
byte_183E db 0
unk_183F db 1
db 1
db 3
db 2
db 0
aHuuma_cfg db 'huuma.cfg',0
aMikoconfig db 'MIKOConfig',0
aUmx db 0Ah
db 0Ah
db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>^<5E>p<EFBFBD>@ <20><EFBFBD>v<EFBFBD><76><EFBFBD>O<EFBFBD><4F><EFBFBD><EFBFBD><EFBFBD>@ZUN_RES.com Version1.01 (c)zun 1997',0Ah,0
aGngcgxgrgagtg@ db '<27>n<EFBFBD>C<EFBFBD>X<EFBFBD>R<EFBFBD>A<EFBFBD>t<EFBFBD>@<40>C<EFBFBD><43><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>́A<CC81><41><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD>s<EFBFBD><73><EFBFBD>ĂˁB',0Ah,0
aVavVBavVVvvVV db '<27><EFBFBD><ED82BD><EFBFBD>A<EFBFBD>܂<EFBFBD><DC82><EFBFBD><EFBFBD>܂<EFBFBD><DC82><EFBFBD><EFBFBD>悧',0Ah
db 0Ah,0
aVVcvVcbavVIqvj db '<27><><EFBFBD><EFBFBD><EFBFBD>Ȃ<EFBFBD><C882>A<EFBFBD>܂<EFBFBD><DC82><EFBFBD><EF82A6><EFBFBD><EFBFBD><E782A2><EFBFBD><EFBFBD>',0Ah
db 0Ah,0
aVV db '<27><><EFBFBD><EFBFBD><EFBFBD>ȃI<C883>v<EFBFBD>V<EFBFBD><56><EFBFBD><EFBFBD><EFBFBD>t<EFBFBD><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ă<EFBFBD><C482>A<EFBFBD><41><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ł<EFBFBD><C582><EFBFBD><EFBFBD><EFBFBD>',0Ah
db 0Ah,0
aVavVBavVVVvvVV db '<27><EFBFBD><ED82BD><EFBFBD>A<EFBFBD><41><EFBFBD>łɂ<C582><C982>܂<EFBFBD><DC82>悧',0Ah
db 0Ah,0
aNVVVV db '<27><><EFBFBD><EFBFBD><EFBFBD>܂<EFBFBD><DC82><EFBFBD><EFBFBD>A<EFBFBD><EFBFBD><ED82BD><EFBFBD>̋<EFBFBD><CC8B><EFBFBD><EA8F8A><EFBFBD>Ȃ<EFBFBD><C882>́I',0Ah
db 0Ah,0
aVVVVBavcvivVnv db '<27><><EFBFBD><EFBFBD><EFBFBD>ł́A<CD81><41><EFBFBD><EFBFBD><EB82B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E882A2><EFBFBD>܂<EFBFBD>',0Ah
db 0Ah,0
db 0
off_19A8 dw offset aHuuhi_dat
; "huuhi.dat"
byte_19AA db 0
byte_19AB db 0
db 0
word_19AD dw 0
word_19AF dw 0
word_19B1 dw 0
word_19B3 dw 0
aHuuhi_dat db 'huuhi.dat',0
db 0
include libs/master.lib/version[data].asm
include libs/master.lib/grp[data].asm
include libs/master.lib/resdata[data].asm
include libs/master.lib/fil[data].asm
include libs/master.lib/dos_ropen[data].asm
include libs/BorlandC/_abort[data].asm
include libs/BorlandC/atexit[data].asm
include libs/BorlandC/exit[data].asm
include libs/BorlandC/files[data].asm
__heaplen dw 0
include libs/BorlandC/ioerror[data].asm
include libs/BorlandC/stklen[data].asm
include libs/BorlandC/nearheap[data].asm
include libs/BorlandC/pathops[data].asm
include libs/BorlandC/setvbuf[data].asm
include libs/BorlandC/sysnerr[data].asm
include libs/BorlandC/setargv[data].asm
InitStart label byte
include libs/BorlandC/setupio[initdata].asm
include libs/BorlandC/pathops[initdata].asm
include libs/BorlandC/setargv[initdata].asm
InitEnd label byte
ExitStart label byte
ExitEnd label byte
bdata@ label byte
db ?
db ? ;
word_1C6A dw ?
word_1C6C dw ?
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
unk_1C92 db ? ;
db ? ;
unk_1C94 db ? ;
db ? ;
byte_1C96 db ?
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
unk_1CDC db ? ;
byte_1CDD db ?
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
unk_1CE7 db ? ;
word_1CE8 dw ?
byte_1CEA db ?
byte_1CEB db ?
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
byte_1D10 db ?
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
db ? ;
unk_1D1A db ? ;
db ? ;
unk_1D1C db ? ;
db ? ;
unk_1D1E db ? ;
db ? ;
include libs/master.lib/fil[bss].asm
include libs/BorlandC/atexit[bss].asm
edata@ label byte
_TEXT ends
end startx