ReC98/th05_res_kso.asm

468 lines
10 KiB
NASM
Raw Normal View History

;
; +-------------------------------------------------------------------------+
; | This file has been generated by The Interactive Disassembler (IDA) |
; | Copyright (c) 2009 by Hex-Rays, <support@hex-rays.com> |
; +-------------------------------------------------------------------------+
;
; Input MD5 : 4985DF302FBB4A988F4F8E85A083BC00
; File Name : th05/ZUN.COM:-S
; Format : MS-DOS COM-file
; Base Address: 0h Range: 100h-1AA4h Loaded length: 19A4h
; OS type : MS DOS
; Application type: Executable 16bit
.286
.model tiny
__TINY__ equ 1
include ReC98.inc
include th05/th05.asm
; ===========================================================================
; Segment type: Pure code
_TEXT segment word public 'CODE' use16
assume cs:_TEXT
assume es:nothing, ss:nothing, ds:_TEXT
include libs/BorlandC/c0.asm
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_367 proc near
var_14 = dword ptr -14h
var_10 = byte ptr -10h
var_F = byte ptr -0Fh
var_E = byte ptr -0Eh
var_D = byte ptr -0Dh
var_C = byte ptr -0Ch
var_B = byte ptr -0Bh
var_7 = byte ptr -7
var_6 = byte ptr -6
arg_0 = word ptr 4
enter 14h, 0
push si
mov si, offset aMiko_cfg ; "miko.cfg"
lea ax, [bp+var_6]
push ss
push ax
push ds
push offset unk_16BF
mov cx, 6
call N_SCOPY@
mov ax, [bp+arg_0]
mov word ptr [bp+var_14+2], ax
mov word ptr [bp+var_14], 0
push si
call file_ropen
or ax, ax
jnz short loc_3CA
loc_391:
push si
call file_create
or ax, ax
jnz short loc_39C
jmp loc_48A
; ---------------------------------------------------------------------------
loc_39C:
push ss
lea ax, [bp+var_6]
push ax
push 6
call file_write
les bx, [bp+var_14]
mov byte ptr es:[bx+11h], 0FFh
mov byte ptr es:[bx+0Fh], 3
mov byte ptr es:[bx+10h], 3
mov byte ptr es:[bx+12h], 1
mov byte ptr es:[bx+15h], 1
mov byte ptr es:[bx+16h], 1
jmp loc_47C
; ---------------------------------------------------------------------------
loc_3CA:
push ss
lea ax, [bp+var_10]
push ax
push 0Ah
call file_read
call file_close
mov al, [bp+var_10]
cbw
push ax
mov al, [bp+var_F]
cbw
pop dx
add dx, ax
mov al, [bp+var_E]
cbw
add dx, ax
mov al, [bp+var_D]
cbw
add dx, ax
mov al, [bp+var_C]
cbw
add dx, ax
mov al, [bp+var_B]
cbw
add dx, ax
mov al, [bp+var_7]
cbw
cmp dx, ax
jnz short loc_391
les bx, [bp+var_14]
mov al, [bp+var_10]
mov es:[bx+11h], al
mov al, [bp+var_F]
mov es:[bx+0Fh], al
mov al, [bp+var_E]
mov es:[bx+10h], al
mov al, [bp+var_D]
mov es:[bx+12h], al
mov al, [bp+var_C]
mov es:[bx+15h], al
mov al, [bp+var_B]
mov es:[bx+16h], al
cmp byte ptr es:[bx+0Fh], 6
jbe short loc_43A
jmp loc_391
; ---------------------------------------------------------------------------
loc_43A:
cmp byte ptr es:[bx+0Fh], 0
jnz short loc_444
jmp loc_391
; ---------------------------------------------------------------------------
loc_444:
les bx, [bp+var_14]
cmp byte ptr es:[bx+10h], 3
jbe short loc_451
jmp loc_391
; ---------------------------------------------------------------------------
loc_451:
les bx, [bp+var_14]
cmp byte ptr es:[bx+12h], 3
jb short loc_45E
jmp loc_391
; ---------------------------------------------------------------------------
loc_45E:
les bx, [bp+var_14]
cmp byte ptr es:[bx+15h], 3
jb short loc_46B
jmp loc_391
; ---------------------------------------------------------------------------
loc_46B:
push si
call file_append
or ax, ax
jz short loc_48A
push 0
push 6
push 0
call file_seek
loc_47C:
push ss
lea ax, [bp+arg_0]
push ax
push 2
call file_write
or ax, ax
jnz short loc_48E
loc_48A:
mov al, 1
jmp short loc_4A6
; ---------------------------------------------------------------------------
loc_48E:
push ds
push offset byte_16BE
push 1
call file_write
push ss
lea ax, [bp+var_7]
push ax
push 1
call file_write
call file_close
mov al, 0
loc_4A6:
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_C = word ptr -0Ch
var_A = dword ptr -0Ah
var_6 = dword ptr -6
var_2 = word ptr -2
_argc = word ptr 4
_argv = word ptr 6
_envp = word ptr 8
enter 0Ch, 0
push si
push di
mov si, [bp+_argv]
mov [bp+var_C], offset aKsoconfig ; "KSOConfig"
push [bp+var_C]
push 9
push 8
call resdata_exist
mov di, ax
push offset aUmx ; "\n\n<><6E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Y<EFBFBD>k<EFBFBD>p<EFBFBD>@ <20><EFBFBD>v<EFBFBD><76><EFBFBD>O<EFBFBD><4F><EFBFBD><EFBFBD><EFBFBD>@ "...
call dos_puts2
call graph_clear
cmp [bp+_argc], 2
jnz short loc_530
mov bx, [si+2]
cmp byte ptr [bx], '-'
jz short loc_4DF
cmp byte ptr [bx], '/'
jnz short loc_505
loc_4DF:
mov bx, [si+2]
cmp byte ptr [bx+1], 'R'
jz short loc_4EE
cmp byte ptr [bx+1], 'r'
jnz short loc_505
loc_4EE:
or di, di
jnz short loc_4F8
push offset aVVVvvVV ; "<22>܂<EFBFBD><DC82><EFBFBD><EFBFBD>܂<EFBFBD><DC82><EFBFBD><EFBFBD>悧\n\n"
jmp loc_58D
; ---------------------------------------------------------------------------
loc_4F8:
push di
call dos_free
push offset aVVsvqvBBavVIqv ; "<22><><EFBFBD><EFBFBD>ˁ[<5B>A<EFBFBD>܂<EFBFBD><DC82><EFBFBD><EF82A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n\n"
call dos_puts2
jmp loc_5B0
; ---------------------------------------------------------------------------
loc_505:
mov bx, [si+2]
cmp byte ptr [bx], '-'
jz short loc_512
cmp byte ptr [bx], '/'
jnz short loc_528
loc_512:
mov bx, [si+2]
cmp byte ptr [bx+1], 'D'
jz short loc_521
cmp byte ptr [bx+1], 'd'
jnz short loc_528
loc_521:
mov byte_16BE, 1
jmp short loc_530
; ---------------------------------------------------------------------------
loc_528:
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_590
; ---------------------------------------------------------------------------
loc_530:
or di, di
jz short loc_53C
push offset aVavVBavVVVvvVV ; "<22><EFBFBD><ED82BD><EFBFBD>A<EFBFBD><41><EFBFBD>łɂ<C582><C982>܂<EFBFBD><DC82>悧\n\n"
call dos_puts2
jmp short loc_590
; ---------------------------------------------------------------------------
loc_53C:
push [bp+var_C]
push 9
push 8
call resdata_create
mov di, ax
or di, di
jnz short loc_554
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"
call dos_puts2
jmp short loc_590
; ---------------------------------------------------------------------------
loc_554:
mov word ptr [bp+var_A+2], di
mov word ptr [bp+var_A], 0
push offset aVivVsvVVBVBb ; "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>܂<EFBFBD><DC82>܁[<5B><><EFBFBD>B\n\n"
call dos_puts2
mov [bp+var_2], 0Ah
jmp short loc_576
; ---------------------------------------------------------------------------
loc_569:
les bx, [bp+var_A]
add bx, [bp+var_2]
mov byte ptr es:[bx], 0
inc [bp+var_2]
loc_576:
cmp [bp+var_2], 80h
jl short loc_569
push di
call sub_367
pop cx
or al, al
jz short loc_595
push di
call dos_free
push offset aGtg@gcglvkpsvl ; "<22>t<EFBFBD>@<40>C<EFBFBD><43><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߂Ȃ<DF82><C882>́`\n\n"
loc_58D:
call dos_puts2
loc_590:
mov ax, 1
jmp short loc_5B2
; ---------------------------------------------------------------------------
loc_595:
mov dx, word ptr [bp+var_A+2]
mov ax, word ptr [bp+var_A]
mov word ptr [bp+var_6+2], dx
mov word ptr [bp+var_6], ax
cmp byte_16BE, 0
jz short loc_5B0
les bx, [bp+var_6]
mov byte ptr es:[bx+17h], 1
loc_5B0:
xor ax, ax
loc_5B2:
pop di
pop si
leave
retn
_main 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_ropen.asm
include libs/master.lib/file_write.asm
include libs/master.lib/file_create.asm
include libs/master.lib/file_seek.asm
include libs/master.lib/file_append.asm
include libs/master.lib/dos_free.asm
include libs/master.lib/dos_axdx.asm
include libs/master.lib/dos_puts2.asm
include libs/master.lib/dos_ropen.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
db 14 dup(0)
; ---------------------------------------------------------------------------
include libs/BorlandC/c0[data].asm
byte_16BE db 0
unk_16BF db 0FFh
db 3
db 3
db 1
db 1
db 1
aMiko_cfg db 'miko.cfg',0
aKsoconfig db 'KSOConfig',0
aUmx db 0Ah
db 0Ah
db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Y<EFBFBD>k<EFBFBD>p<EFBFBD>@ <20><EFBFBD>v<EFBFBD><76><EFBFBD>O<EFBFBD><4F><EFBFBD><EFBFBD><EFBFBD>@ Version1.00 (c)zun 1998',0Ah,0
aVVVvvVV db '<27>܂<EFBFBD><DC82><EFBFBD><EFBFBD>܂<EFBFBD><DC82><EFBFBD><EFBFBD>悧',0Ah
db 0Ah,0
aVVsvqvBBavVIqv db '<27><><EFBFBD><EFBFBD>ˁ[<5B>A<EFBFBD>܂<EFBFBD><DC82><EFBFBD><EF82A6><EFBFBD><EFBFBD><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
aVivVsvVVBVBb db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>܂<EFBFBD><DC82>܁[<5B><><EFBFBD>B',0Ah
db 0Ah,0
aGtg@gcglvkpsvl db '<27>t<EFBFBD>@<40>C<EFBFBD><43><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߂Ȃ<DF82><C882>́`',0Ah
db 0Ah,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
include libs/master.lib/fil[bss].asm
include libs/BorlandC/atexit[bss].asm
edata@ label byte
_TEXT ends
end startx