; (included from th05_main.asm, don't assemble directly) ; =========================================================================== ; Segment type: Pure code seg003 segment byte public 'CODE' use16 assume cs:seg003 ;org 8 assume es:nothing, ss:nothing, ds:dseg, fs:nothing, gs:nothing ; =============== S U B R O U T I N E ======================================= sub_15288 proc near mov bx, sp mov ax, ss:[bx+2] sar ax, 4 cmp byte_2CE00, 0 jz short loc_1529C add ax, word_2CDFC loc_1529C: cmp ax, 190h jl short loc_152A6 sub ax, 190h jmp short locret_152AD ; --------------------------------------------------------------------------- loc_152A6: or ax, ax jge short locret_152AD add ax, 190h locret_152AD: retn 2 sub_15288 endp ; --------------------------------------------------------------------------- mov bx, sp mov ax, ss:[bx+2] sar ax, 4 add ax, word_2CDFC cmp ax, 190h jl short loc_152C7 sub ax, 190h jmp short locret_152CE ; --------------------------------------------------------------------------- loc_152C7: or ax, ax jge short locret_152CE add ax, 190h locret_152CE: retn 2 ; --------------------------------------------------------------------------- nop ; =============== S U B R O U T I N E ======================================= sub_152D2 proc near mov bx, sp mov bx, ss:[bx+2] mov ax, [bx] mov [bx+4], ax add ax, [bx+8] mov [bx], ax add bx, 2 mov dx, [bx] mov [bx+4], dx add dx, [bx+8] mov [bx], dx retn 2 sub_152D2 endp ; =============== S U B R O U T I N E ======================================= sub_152F2 proc near lea ax, [si+2] push ax call sub_152D2 test byte ptr [si+1Fh], 1 jz short loc_15307 add ax, 100h cmp ax, 1A00h jnb short loc_15319 loc_15307: test byte ptr [si+1Fh], 10h jz short loc_15317 add dx, 100h cmp dx, 1900h jnb short loc_15319 loc_15317: clc retn ; --------------------------------------------------------------------------- loc_15319: inc word_221C2 stc retn sub_152F2 endp ; =============== S U B R O U T I N E ======================================= sub_1531F proc near lea ax, [si+0Ah] push ax push word ptr [si+1Ah] xor ah, ah mov al, [si+16h] push ax call sub_158E2 retn sub_1531F endp ; =============== S U B R O U T I N E ======================================= sub_15330 proc near push es push word ptr [si+2] push word ptr [si+4] push word ptr [si+1Ah] call sub_15A24 mov [si+1Ah], al pop es call sub_1531F retn sub_15330 endp ; =============== S U B R O U T I N E ======================================= sub_15345 proc near push si push di mov cx, 7 add si, 28h ; '(' push es push ds pop es assume es:dseg mov di, 561Ah rep movsw pop es assume es:nothing pop di pop si retn sub_15345 endp ; --------------------------------------------------------------------------- nop ; =============== S U B R O U T I N E ======================================= sub_1535A proc near push si push di mov si, word_2C92A mov es, word_21290 loc_15364: mov di, [si+12h] add di, [si+14h] mov bl, es:[di] mov bh, 0 cmp bx, 3Ah ; ':' ja loc_1575C mov cl, [si+18h] mov al, 1 mov ah, es:[di+1] xor dx, dx add bx, bx jmp cs:off_1575F[bx] loc_15388: mov byte ptr [si], 2 mov al, 1 jmp loc_1575C ; --------------------------------------------------------------------------- loc_15390: or cl, cl jnz short loc_153A1 mov ax, es:[di+1] mov [si+16h], ah mov [si+1Ah], al call sub_1531F loc_153A1: call sub_152F2 jb short loc_15388 mov ah, es:[di+3] mov al, 4 jmp loc_15748 ; --------------------------------------------------------------------------- loc_153AF: or cl, cl jnz short loc_153B6 call sub_1531F loc_153B6: call sub_152F2 jb short loc_15388 mov ah, es:[di+1] mov al, 2 jmp loc_15748 ; --------------------------------------------------------------------------- loc_153C4: or cl, cl jnz short loc_153D2 mov al, es:[di+1] mov [si+16h], al call sub_1531F loc_153D2: call sub_152F2 jb short loc_15388 mov ah, es:[di+2] mov al, 3 jmp loc_15748 ; --------------------------------------------------------------------------- loc_153E0: inc dl loc_153E2: or cl, cl jnz short loc_153F7 mov ax, es:[di+1] mov [si+16h], ah mov [si+1Ah], al mov al, es:[di+3] mov [si+1Bh], al loc_153F7: push dx call sub_1531F pop dx or dl, dl jz short loc_15418 mov al, es:[di+4] cbw add [si+0Ah], ax mov al, es:[di+5] cbw add [si+0Ch], ax mov ah, es:[di+6] mov al, 7 jmp short loc_1541E ; --------------------------------------------------------------------------- loc_15418: mov ah, es:[di+4] mov al, 5 loc_1541E: jmp short loc_15447 ; --------------------------------------------------------------------------- loc_15420: inc dl loc_15422: call sub_1531F or dl, dl jz short loc_15441 mov al, es:[di+1] cbw add [si+0Ah], ax mov al, es:[di+2] cbw add [si+0Ch], ax mov ah, es:[di+3] mov al, 4 jmp short loc_15447 ; --------------------------------------------------------------------------- loc_15441: mov ah, es:[di+1] mov al, 2 loc_15447: push ax call sub_152F2 pop ax jb loc_15388 mov dl, [si+1Bh] add [si+1Ah], dl jmp loc_15748 ; --------------------------------------------------------------------------- loc_15459: or cl, cl jnz short loc_1547D mov eax, [si+2] mov [si+6], eax jmp short loc_1547D ; --------------------------------------------------------------------------- loc_15467: or cl, cl jnz short loc_15470 mov word ptr [si+0Ah], 0 loc_15470: mov ax, word_2CDFE mov [si+0Ch], ax call sub_152F2 jb loc_15388 loc_1547D: mov ah, es:[di+1] mov al, 2 jmp loc_15748 ; --------------------------------------------------------------------------- loc_15486: inc dl loc_15488: or cl, cl jnz short loc_15497 mov byte ptr [si+1Ah], 0 mov al, es:[di+2] mov [si+1Bh], al loc_15497: mov cl, dl movzx eax, byte ptr es:[di+1] mov bl, [si+1Ah] mov bh, 0 add bx, bx movsx edx, _CosTable8[bx] imul eax, edx sar eax, 8 mov [si+0Ah], ax mov al, es:[di+3] cbw mov [si+0Ch], ax or cl, cl jnz short loc_154CF mov dx, [si+0Ah] mov ax, [si+0Ch] mov [si+0Ah], ax mov [si+0Ch], dx loc_154CF: call sub_152F2 jb loc_15388 mov al, [si+1Bh] add [si+1Ah], al mov ah, es:[di+4] mov al, 5 jmp loc_15748 ; --------------------------------------------------------------------------- loc_154E5: mov ax, es:[di+1] mov [si+1Ah], al mov [si+16h], ah call sub_15330 mov al, 3 jmp loc_15740 ; --------------------------------------------------------------------------- loc_154F7: add [si+1Ah], ah jmp short loc_154FF ; --------------------------------------------------------------------------- loc_154FC: add [si+16h], ah loc_154FF: call sub_1531F mov al, 2 jmp loc_15740 ; --------------------------------------------------------------------------- loc_15507: call sub_157D6 mov [si+1Ah], al mov al, 1 jmp loc_15740 ; --------------------------------------------------------------------------- loc_15512: mov dl, 2 jmp short loc_15518 ; --------------------------------------------------------------------------- loc_15516: inc dl loc_15518: mov word_23F60, dx call sub_15345 mov ax, [si+2] add word ptr dword_25FFC, ax mov ax, [si+4] add word ptr dword_25FFC+2, ax push es call fp_25344 mov bx, word_23F60 add bx, bx call off_2129C[bx] pop es mov al, 1 jmp loc_15740 ; --------------------------------------------------------------------------- loc_15542: mov byte ptr [si+23h], 0 mov [si+28h], ah mov ax, es:[di+2] mov [si+2Eh], al mov [si+34h], ah mov ax, es:[di+4] mov [si+35h], al mov [si+29h], ah mov al, 6 jmp loc_15740 ; --------------------------------------------------------------------------- loc_15562: mov [si+28h], ah jmp short loc_1559C ; --------------------------------------------------------------------------- loc_15567: mov eax, es:[di+1] mov [si+2Ah], eax mov al, 5 jmp loc_15740 ; --------------------------------------------------------------------------- loc_15575: mov [si+34h], ah jmp short loc_1559C ; --------------------------------------------------------------------------- loc_1557A: add [si+34h], ah jmp short loc_1559C ; --------------------------------------------------------------------------- loc_1557F: call sub_157D6 mov [si+34h], al mov al, 1 jmp loc_15740 ; --------------------------------------------------------------------------- loc_1558A: mov [si+29h], ah jmp short loc_1559C ; --------------------------------------------------------------------------- loc_1558F: mov [si+35h], ah jmp short loc_1559C ; --------------------------------------------------------------------------- loc_15594: add [si+35h], ah jmp short loc_1559C ; --------------------------------------------------------------------------- loc_15599: mov [si+2Eh], ah loc_1559C: mov al, 2 jmp loc_15740 ; --------------------------------------------------------------------------- loc_155A1: mov al, ah xor ah, ah mov dl, byte_25FEC cmp dl, 20h ; ' ' jbe short loc_155C7 sub dl, 20h ; ' ' mul dl shr ax, 6 xor dh, dh mov dl, es:[di+1] sub dx, ax cmp dl, 10h jnb short loc_155E0 mov dl, 10h jmp short loc_155E0 ; --------------------------------------------------------------------------- loc_155C7: mov cl, 20h ; ' ' sub cl, dl mul cl shr ax, 6 xor dh, dh mov dl, es:[di+1] add dx, ax cmp dx, 100h jb short loc_155E0 mov dl, 0FFh loc_155E0: cmp byte_25FEB, 0 jnz short loc_155E9 mov dl, 0FFh loc_155E9: mov [si+27h], dl jmp short loc_1559C ; --------------------------------------------------------------------------- loc_155EE: inc dl loc_155F0: mov [si+23h], dl jmp loc_15740 ; --------------------------------------------------------------------------- loc_155F6: mov [si+30h], ah mov al, es:[di+2] mov [si+31h], al loc_15600: mov al, 3 jmp loc_15740 ; --------------------------------------------------------------------------- loc_15605: mov [si+32h], ah mov al, es:[di+2] loc_1560C: mov [si+33h], al loc_1560F: jmp short loc_15600 ; --------------------------------------------------------------------------- loc_15611: mov [si+2Fh], ah jmp short loc_1559C ; --------------------------------------------------------------------------- loc_15616: push es mov ax, [si+2] add ax, [si+2Ah] push ax mov ax, [si+4] add ax, [si+2Ch] push ax push word ptr es:[di+1] call sub_15A24 mov [si+34h], al pop es loc_15630: jmp loc_1559C ; --------------------------------------------------------------------------- loc_15633: inc dl mov [si], dl mov [si+17h], ah mov ax, es:[di+2] mov [si+0Eh], ax mov ax, es:[di+4] mov [si+10h], ax mov [si+22h], dl mov [si+24h], dl mov al, 6 jmp loc_15740 ; --------------------------------------------------------------------------- loc_15653: mov byte ptr [si+1Fh], 11h jmp loc_15740 ; --------------------------------------------------------------------------- loc_1565A: or byte ptr [si+1Fh], 1 jmp loc_15740 ; --------------------------------------------------------------------------- loc_15661: or byte ptr [si+1Fh], 10h jmp loc_15740 ; --------------------------------------------------------------------------- loc_15668: mov [si+1Ch], ah mov al, es:[di+2] mov [si+1Dh], al mov al, 3 jmp loc_15740 ; --------------------------------------------------------------------------- loc_15677: mov al, ah mov ah, 0 push ax call sub_14CEE loc_15681: mov al, 2 jmp loc_15740 ; --------------------------------------------------------------------------- loc_15686: mov [si+17h], ah jmp short loc_15681 ; --------------------------------------------------------------------------- loc_1568B: mov [si+22h], dl loc_1568E: mov [si+23h], dl jmp loc_15740 ; --------------------------------------------------------------------------- loc_15694: mov byte ptr [si+22h], 1 cmp byte_25FEB, 3 jnz short loc_1568E inc dl jmp short loc_1568E ; --------------------------------------------------------------------------- loc_156A3: inc dl loc_156A5: mov [si+24h], dl jmp loc_15740 ; --------------------------------------------------------------------------- loc_156AB: mov eax, [si+2] mov [si+6], eax mov eax, es:[di+1] mov [si+2], eax jmp short loc_156D4 ; --------------------------------------------------------------------------- loc_156BE: mov eax, [si+2] mov [si+6], eax mov ax, es:[di+1] add [si+2], ax mov ax, es:[di+3] add [si+4], ax loc_156D4: mov ah, 0 mov al, 5 jmp short loc_15748 ; --------------------------------------------------------------------------- loc_156DA: add [si+17h], ah mov al, 2 jmp short loc_15740 ; --------------------------------------------------------------------------- loc_156E1: mov [si+1Ah], ah mov al, es:[di+2] mov [si+16h], al loc_156EB: call sub_1531F mov al, 3 jmp short loc_15740 ; --------------------------------------------------------------------------- loc_156F2: mov [si+1Ah], ah mov al, es:[di+2] mov [si+16h], al cmp byte ptr [si+25h], 0 jnz short loc_156EB mov al, 80h ; '€' sub al, ah mov [si+1Ah], al jmp short loc_156EB ; --------------------------------------------------------------------------- loc_1570B: mov [si+16h], ah call sub_1531F mov al, 2 jmp short loc_15740 ; --------------------------------------------------------------------------- loc_15715: mov al, [si+19h] cmp al, es:[di+2] jb short loc_15726 mov byte ptr [si+19h], 0 mov al, 3 jmp short loc_15740 ; --------------------------------------------------------------------------- loc_15726: inc byte ptr [si+19h] loc_15729: mov al, ah mov ah, 0 loc_1572D: sub [si+14h], ax jmp loc_15364 ; --------------------------------------------------------------------------- loc_15733: mov al, 3 cmp ah, [si+36h] jz short loc_15740 add al, es:[di+2] jz short $+2 loc_15740: mov ah, 0 add [si+14h], ax jmp loc_15364 ; --------------------------------------------------------------------------- loc_15748: cmp ah, [si+18h] ja short loc_15757 mov ah, 0 mov [si+18h], ah add [si+14h], ax jmp short loc_1575A ; --------------------------------------------------------------------------- loc_15757: inc byte ptr [si+18h] loc_1575A: xor ax, ax loc_1575C: pop di pop si retn sub_1535A endp ; --------------------------------------------------------------------------- off_1575F dw offset loc_15388 dw offset loc_15633 dw offset loc_15390 dw offset loc_153AF dw offset loc_153C4 dw offset loc_153E2 dw offset loc_153E0 dw offset loc_15422 dw offset loc_15420 dw offset loc_15459 dw offset loc_15467 dw offset loc_15486 dw offset loc_15488 dw offset loc_154E5 dw offset loc_154F7 dw offset loc_154FC dw offset loc_15507 dw offset loc_15518 dw offset loc_15542 dw offset loc_15562 dw offset loc_15567 dw offset loc_15575 dw offset loc_1557A dw offset loc_1557F dw offset loc_1558A dw offset loc_1558F dw offset loc_15594 dw offset loc_15599 dw offset loc_155A1 dw offset loc_155EE dw offset loc_155F0 dw offset loc_1557A dw offset loc_155F6 dw offset loc_15605 dw offset loc_1565A dw offset loc_15661 dw offset loc_15653 dw offset loc_15668 dw offset loc_15677 dw offset loc_15686 dw offset loc_1568B dw offset loc_15694 dw offset loc_156A5 dw offset loc_156A3 dw offset loc_156AB dw offset loc_156BE dw offset loc_156DA dw offset loc_156E1 dw offset loc_156F2 dw offset loc_1570B dw offset loc_15715 dw offset loc_15715 dw offset loc_15733 dw offset loc_15729 dw offset loc_153B6 dw offset loc_15512 dw offset loc_15611 dw offset loc_15516 dw offset loc_15616 ; --------------------------------------------------------------------------- nop ; =============== S U B R O U T I N E ======================================= sub_157D6 proc near mov bx, word_24062 mov ax, [bx+3582h] inc byte ptr word_24062 retn sub_157D6 endp ; --------------------------------------------------------------------------- nop ; =============== S U B R O U T I N E ======================================= sub_157E4 proc near mov bx, word_24062 mov ax, [bx+3582h] inc byte ptr word_24062 mov bx, sp and ax, ss:[bx+2] retn 2 sub_157E4 endp ; --------------------------------------------------------------------------- nop ; =============== S U B R O U T I N E ======================================= sub_157FA proc near mov bx, word_24062 mov ax, [bx+3582h] inc byte ptr word_24062 xor dx, dx mov bx, sp div word ptr ss:[bx+2] mov ax, dx retn 2 sub_157FA endp ; --------------------------------------------------------------------------- db 0 ; =============== S U B R O U T I N E ======================================= sub_15814 proc near push si push di mov si, ax mov bx, dx sar ax, 3 shl dx, 6 add ax, dx shr dx, 2 add ax, dx mov di, ax and si, 7 mov ax, si shl si, 4 add si, 8C2h mov cx, 8 cmp bx, 188h ja short loc_15842 xor dx, dx jmp short loc_1584B ; --------------------------------------------------------------------------- loc_15842: mov dx, cx mov cx, 190h sub cx, bx sub dx, cx loc_1584B: or ax, ax jz short loc_15862 nop loc_15850: movsw add di, 4Eh ; 'N' loop loc_15850 loc_15856: or dx, dx jz short loc_1586B sub di, 7D00h xchg cx, dx jmp short loc_15850 ; --------------------------------------------------------------------------- loc_15862: movsb add di, 4Fh ; 'O' inc si loop loc_15862 jmp short loc_15856 ; --------------------------------------------------------------------------- loc_1586B: pop di pop si retn sub_15814 endp ; =============== S U B R O U T I N E ======================================= sub_1586E proc near mov bl, byte_24065 inc byte_24065 cmp bl, 4Fh ; 'O' jb short loc_15880 mov byte_24065, 0 loc_15880: xor bh, bh add bx, 0C8h jmp short loc_1589C sub_1586E endp ; =============== S U B R O U T I N E ======================================= sub_15888 proc near mov bl, byte_24064 mov bh, 0 inc byte_24064 cmp bl, 0C7h jb short loc_1589C mov byte_24064, 0 loc_1589C: shl bx, 4 add bx, 9DA0h mov word ptr [bx], 1 push bp mov bp, sp mov ax, [bp+8] mov [bx+2], ax mov ax, [bp+6] mov [bx+4], ax push si mov si, bx lea ax, [bx+0Eh] push ax push word ptr [bp+4] call sub_1F9BA mov [si+8], ax pop si pop bp retn 6 sub_15888 endp ; --------------------------------------------------------------------------- nop ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_158CC proc far push bp mov bp, sp push word ptr dword_2CEA0 push word ptr dword_2CEA0+2 push 0C00018h call sub_1597C pop bp retf sub_158CC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_158E2 proc near arg_0 = word ptr 4 arg_2 = byte ptr 6 arg_4 = word ptr 8 push bp mov bp, sp movsx edx, [bp+arg_0] mov bl, [bp+arg_2] mov bh, 0 add bx, bx movsx eax, word ptr [bx+4AEh] movsx ecx, word ptr [bx+42Eh] imul eax, edx sar eax, 8 imul edx, ecx sar edx, 8 mov bx, [bp+arg_4] mov [bx], ax mov [bx+2], dx pop bp retn 6 sub_158E2 endp ; --------------------------------------------------------------------------- nop ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1591A proc far arg_0 = word ptr 6 arg_2 = word ptr 8 arg_4 = word ptr 0Ah arg_6 = word ptr 0Ch push bp mov bp, sp cmp [bp+arg_6], 1800h ja short loc_15978 cmp [bp+arg_4], 1700h ja short loc_15978 push si push di mov di, [bp+arg_0] loc_15930: mov si, word_252DC add si, 5986h cmp byte ptr [si], 0 jnz short loc_15960 mov word ptr [si], 1 mov ax, [bp+arg_6] mov [si+2], ax mov ax, [bp+arg_4] mov [si+4], ax push 1Fh call sub_157E4 add ax, [bp+arg_2] lea bx, [si+0Ah] push bx push word ptr [si+0Eh] push ax call sub_158E2 loc_15960: add word_252DC, 10h cmp word_252DC, 400h jb short loc_15973 mov word_252DC, 0 loc_15973: dec di jnz short loc_15930 pop di pop si loc_15978: pop bp retf 8 sub_1591A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1597C proc near arg_0 = word ptr 4 arg_2 = word ptr 6 arg_4 = word ptr 8 arg_6 = word ptr 0Ah push bp mov bp, sp cmp [bp+arg_6], 1800h ja short loc_159E1 cmp [bp+arg_4], 1700h ja short loc_159E1 push si push di mov di, [bp+arg_0] shl di, 8 loc_15995: mov si, word_252DC add si, 5986h cmp byte ptr [si], 0 jnz short loc_159C6 mov word ptr [si], 1 mov ax, [bp+arg_6] mov [si+2], ax mov ax, [bp+arg_4] mov [si+4], ax lea ax, [si+0Ah] push ax xor dx, dx mov ax, di div [bp+arg_0] xor ah, ah push ax push [bp+arg_2] call sub_158E2 loc_159C6: add word_252DC, 10h cmp word_252DC, 400h jb short loc_159D9 mov word_252DC, 0 loc_159D9: sub di, 100h jnz short loc_15995 pop di pop si loc_159E1: pop bp retn 8 sub_1597C endp ; --------------------------------------------------------------------------- nop ; =============== S U B R O U T I N E ======================================= sub_159E6 proc near mov bx, sp mov al, ss:[bx+2] mov bx, ss:[bx+4] add al, 3 cmp bx, 54h ; 'T' jnb short loc_159F9 and al, 7Fh loc_159F9: xor ah, ah shr al, 3 add ax, bx retn 4 sub_159E6 endp ; --------------------------------------------------------------------------- nop ; =============== S U B R O U T I N E ======================================= sub_15A04 proc near cli mov dx, 7Eh ; '~' shr ah, 1 sbb al, al out dx, al shr ah, 1 sbb al, al out dx, al shr ah, 1 sbb al, al out dx, al shr ah, 1 sbb al, al out dx, al sti retn sub_15A04 endp ; --------------------------------------------------------------------------- mov al, 0C0h out 7Ch, al retn ; --------------------------------------------------------------------------- nop ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_15A24 proc near arg_0 = byte ptr 4 arg_2 = word ptr 6 arg_4 = word ptr 8 push bp mov bp, sp mov ax, word ptr dword_2CEA0+2 sub ax, [bp+arg_2] push ax mov ax, word ptr dword_2CEA0 sub ax, [bp+arg_4] push ax call iatan2 add al, [bp+arg_0] pop bp retn 6 sub_15A24 endp ; --------------------------------------------------------------------------- nop ; =============== S U B R O U T I N E ======================================= sub_15A42 proc near shr al, 1 mov cl, al mul byte_25FEC shr ax, 5 add al, cl cmp al, 80h jbe short loc_15A55 mov al, 80h loc_15A55: cmp al, 8 jnb short locret_15A5B mov al, 8 locret_15A5B: retn sub_15A42 endp ; =============== S U B R O U T I N E ======================================= sub_15A5C proc near cmp byte_2C978, 0 jnz short locret_15A6E push word_26006 call loc_15C94 pop word_26006 locret_15A6E: retn sub_15A5C endp ; --------------------------------------------------------------------------- nop ; =============== S U B R O U T I N E ======================================= sub_15A70 proc near cmp byte_2C978, 0 jnz short locret_15A8C mov byte_221C0, 1 push word_26006 call loc_15C94 pop word_26006 mov byte_221C0, 0 locret_15A8C: retn sub_15A70 endp ; --------------------------------------------------------------------------- nop ; =============== S U B R O U T I N E ======================================= sub_15A8E proc near mov byte_25346, 1 call sub_15A5C mov byte_25346, 0 retn sub_15A8E endp ; =============== S U B R O U T I N E ======================================= sub_15A9C proc near mov byte_25346, 1 call sub_15A70 mov byte_25346, 0 retn sub_15A9C endp ; =============== S U B R O U T I N E ======================================= sub_15AAA proc near push si push di xor si, si mov ch, byte_25348 mov cl, byte ptr word_26006+1 loc_15AB6: mov bl, byte_26000 xor bh, bh cmp bx, 0Fh mov di, 1 ja loc_15BF8 xor di, di add bx, bx mov ax, cs:off_15C16[bx] mov bl, byte ptr dword_26002 mov bh, byte ptr dword_26002+2 or bl, bl jnz short loc_15ADD inc bl loc_15ADD: jmp ax ; --------------------------------------------------------------------------- loc_15ADF: inc di jmp loc_15BE2 ; --------------------------------------------------------------------------- loc_15AE3: inc di jmp loc_15BF8 ; --------------------------------------------------------------------------- loc_15AE7: xor ah, ah mov al, ch div bl mov dl, byte ptr dword_26002+3 mul dl add cl, al mov al, bl mul bh dec al cmp al, ch ja short loc_15B00 inc di loc_15B00: xor ah, ah mov al, ch div bl mov ch, ah cmp byte_26000, 0Ah jz short loc_15B83 cmp byte_26000, 0Bh jz short loc_15B83 jmp short loc_15B21 ; --------------------------------------------------------------------------- loc_15B18: mov al, bl dec al cmp al, ch ja short loc_15B21 inc di loc_15B21: xor ah, ah test bl, 1 jz short loc_15B4F or ch, ch jnz short loc_15B33 mov byte_25347, 0 jmp short loc_15B66 ; --------------------------------------------------------------------------- loc_15B33: test ch, 1 jz short loc_15B46 loc_15B38: mov al, byte ptr dword_26002+1 add byte_25347, al mov al, byte_25347 mov si, ax jmp short loc_15B66 ; --------------------------------------------------------------------------- loc_15B46: mov al, byte_25347 neg al mov si, ax jmp short loc_15B66 ; --------------------------------------------------------------------------- loc_15B4F: or ch, ch jnz short loc_15B5F mov al, byte ptr dword_26002+1 shr al, 1 mov byte_25347, al mov si, ax jmp short loc_15B66 ; --------------------------------------------------------------------------- loc_15B5F: test ch, 1 jnz short loc_15B46 jmp short loc_15B38 ; --------------------------------------------------------------------------- loc_15B66: cmp byte_26000, 2 jz loc_15BF8 cmp byte_26000, 8 jz loc_15BF8 jmp short loc_15BE2 ; --------------------------------------------------------------------------- loc_15B7A: mov al, bl dec al cmp al, ch ja short loc_15B83 inc di loc_15B83: xor al, al mov ah, ch div bl xor ah, ah mov si, ax cmp byte_26000, 4 jz short loc_15BF8 cmp byte_26000, 0Ah jz short loc_15BF8 jmp short loc_15BE2 ; --------------------------------------------------------------------------- loc_15B9D: mov si, word_24062 mov al, [si+3582h] inc byte ptr word_24062 and al, 1Fh add cl, al loc_15BAD: inc ch cmp ch, bl jb short loc_15BB4 inc di loc_15BB4: mov si, word_24062 mov si, [si+3582h] and si, 0FFh inc byte ptr word_24062 jmp short loc_15BF8 ; --------------------------------------------------------------------------- loc_15BC6: mov al, byte ptr dword_26002+3 mul ch add cl, al mov al, bh dec al cmp al, ch jle short loc_15BDA cmp cl, 0A0h jb short loc_15BDB loc_15BDA: inc di loc_15BDB: cmp byte_26000, 6 jz short loc_15BF8 loc_15BE2: mov byte ptr word_25349+1, cl push word ptr dword_25FFC push word ptr dword_25FFC+2 push si call sub_15A24 mov cl, byte ptr word_25349+1 mov si, ax loc_15BF8: push 496Bh mov ax, si add al, byte ptr word_26006 push ax mov byte ptr word_25349, al mov byte ptr word_25349+1, cl mov al, cl mov ah, 0 push ax call sub_158E2 mov ax, di pop di pop si retn sub_15AAA endp ; --------------------------------------------------------------------------- off_15C16 dw offset loc_15AE3 dw offset loc_15ADF dw offset loc_15B18 dw offset loc_15B18 dw offset loc_15B7A dw offset loc_15B7A dw offset loc_15BC6 dw offset loc_15BC6 dw offset loc_15AE7 dw offset loc_15AE7 dw offset loc_15AE7 dw offset loc_15AE7 dw offset loc_15BAD dw offset loc_15B9D dw offset loc_15AE3 dw offset loc_15ADF ; =============== S U B R O U T I N E ======================================= sub_15C36 proc near cmp byte_2C979, 0 jz short loc_15C47 cmp byte_2C979, 11h jnb short loc_15C47 loc_15C44: mov al, 1 retn ; --------------------------------------------------------------------------- loc_15C47: mov ax, word ptr dword_25FFC mov dx, word ptr dword_25FFC+2 cmp ax, 0FF80h jle short loc_15C44 cmp ax, 1880h jge short loc_15C44 cmp dx, 0FF80h jle short loc_15C44 cmp dx, 1780h jge short loc_15C44 sub ax, word ptr dword_2CEA0 add ax, 40h cmp ax, 80h ja short loc_15C81 sub dx, word ptr dword_2CEA0+2 add dx, 40h cmp dx, 80h ja short loc_15C81 mov byte_2CEC1, 1 loc_15C81: cmp byte_25346, 0 jnz short loc_15C91 mov al, byte ptr word_26006+1 call sub_15A42 mov byte ptr word_26006+1, al loc_15C91: mov al, 0 retn sub_15C36 endp ; --------------------------------------------------------------------------- loc_15C94: cmp byte ptr word_25FFA, 11h jz short loc_15CA2 cmp byte ptr word_25FFA, 1 jnz short loc_15CE5 loc_15CA2: mov eax, dword_25FFC mov dword_2A722, eax mov dword_2A726, 0 mov word_2A72A, 400h mov byte_2A72F, 2 mov byte_2A72E, 9 mov word_2A72C, 8 push word_25FFA dec byte ptr word_25FFA cmp byte_221C0, 0 jz short loc_15CDD mov byte ptr word_25FFA, 0FEh loc_15CDD: call sub_16999 pop word_25FFA locret_15CE4: retn ; --------------------------------------------------------------------------- loc_15CE5: call sub_15C36 or al, al jnz short locret_15CE4 push si push di cmp byte ptr word_25FFA+1, 0 jnz short loc_15CFD mov si, 7426h mov di, 0B4h jmp short loc_15D03 ; --------------------------------------------------------------------------- loc_15CFD: mov si, 8FA6h mov di, 0DCh loc_15D03: mov dl, 0 mov al, byte ptr word_25FFA and al, 0Fh cmp al, 3 jz short loc_15D16 cmp al, 2 jnz short loc_15D18 mov dl, 4 jmp short loc_15D18 ; --------------------------------------------------------------------------- loc_15D16: mov dl, 3 loc_15D18: cmp byte_221C0, 0 jnz short loc_15D38 mov al, 2 cmp byte ptr word_26006+1, 40h jb short loc_15D2F cmp byte_2C979, 0 jz short loc_15D38 loc_15D2F: test byte ptr word_25FFA, 10h jnz short loc_15D38 xor al, al loc_15D38: mov byte ptr cs:loc_15D52+3, dl mov byte ptr cs:loc_15D65+3, al mov byte_25348, 0 jmp short $+2 loc_15D48: cmp byte ptr [si], 0 jnz loc_15DD7 mov byte ptr [si], 1 loc_15D52: mov byte ptr [si+12h], 7Bh mov eax, dword_25FFC mov [si+2], eax cmp byte_221C0, 0 jnz short loc_15D78 loc_15D65: mov byte ptr [si+13h], 7Bh mov byte ptr [si+16h], 20h ; ' ' mov al, 48h ; 'H' sub al, byte ptr word_26006+1 mov [si+17h], al jmp short loc_15D95 ; --------------------------------------------------------------------------- loc_15D78: mov [si+1Ah], eax mov byte ptr [si+13h], 1 mov word ptr [si+1Eh], 0 mov byte ptr [si+16h], 0 mov al, byte_2C977 mov [si+17h], al mov al, byte_26001 mov [si+14h], al loc_15D95: mov byte ptr [si+1], 0 mov al, byte_26000 mov [si+0Eh], al call sub_15AAA mov cl, al mov al, byte ptr word_25FFA+1 mov ah, 0 cmp al, 34h ; '4' jb short loc_15DB5 push ax push word_25349 call sub_159E6 loc_15DB5: mov [si+18h], ax mov eax, dword_2534B mov [si+0Ah], eax mov al, byte ptr word_25349 mov [si+11h], al mov al, byte ptr word_25349+1 mov [si+15h], al mov [si+10h], al or cl, cl jnz short loc_15DDF inc byte_25348 loc_15DD7: sub si, 20h ; ' ' dec di jnz loc_15D48 loc_15DDF: pop di pop si retn ; =============== S U B R O U T I N E ======================================= sub_15DE2 proc far call sub_15A5C retf sub_15DE2 endp ; =============== S U B R O U T I N E ======================================= sub_15DE6 proc near movzx bx, byte_26000 cmp bl, 2 jb short locret_15E1C cmp bl, 0Dh ja short locret_15E1C sub bl, 2 mov cx, 0B9Eh jmp short loc_15E44 ; --------------------------------------------------------------------------- loc_15DFD: cmp al, 3 jb short locret_15E1C sub byte ptr dword_26002, 2 retn ; --------------------------------------------------------------------------- loc_15E07: shr dh, 2 sub byte ptr dword_26002+3, dh cmp ah, 2 jb short locret_15E1C dec byte ptr dword_26002+2 retn ; --------------------------------------------------------------------------- loc_15E18: shr byte ptr dword_26002, 1 locret_15E1C: retn sub_15DE6 endp ; --------------------------------------------------------------------------- nop ; --------------------------------------------------------------------------- off_15E1E dw offset loc_15DFD dw offset loc_15E18 dw offset loc_15E07 dw offset loc_15DFD dw offset loc_15E18 dw offset loc_15E18 ; =============== S U B R O U T I N E ======================================= sub_15E2A proc near movzx bx, byte_26000 cmp bl, 1 jbe short loc_15E53 cmp bl, 4 jb short locret_15E73 cmp bl, 0Dh ja short locret_15E73 sub bl, 4 mov cx, 0BF8h loc_15E44: mov ax, word ptr dword_26002 mov dx, word ptr dword_26002+2 and bl, 0FEh add bx, cx jmp word ptr cs:[bx] ; --------------------------------------------------------------------------- loc_15E53: add byte_26000, 6 mov word ptr dword_26002+2, 602h retn ; --------------------------------------------------------------------------- loc_15E5F: shr dh, 1 add byte ptr dword_26002+3, dh retn ; --------------------------------------------------------------------------- loc_15E66: shr al, 2 cmp al, 6 jbe short loc_15E6F mov al, 6 loc_15E6F: add byte ptr dword_26002, al locret_15E73: retn ; --------------------------------------------------------------------------- loc_15E74: shr al, 1 jmp short loc_15E6F sub_15E2A endp ; --------------------------------------------------------------------------- off_15E78 dw offset loc_15E66 dw offset loc_15E5F dw offset loc_15E5F dw offset loc_15E66 dw offset loc_15E74 ; =============== S U B R O U T I N E ======================================= sub_15E82 proc near movzx bx, byte_26000 cmp bl, 0Dh ja short locret_15EBE mov cx, 0C40h jmp short loc_15E44 ; --------------------------------------------------------------------------- loc_15E91: add byte_26000, 2 mov word ptr dword_26002, 603h retn ; --------------------------------------------------------------------------- loc_15E9D: shr dh, 1 add byte ptr dword_26002+3, dh inc byte ptr dword_26002+2 retn ; --------------------------------------------------------------------------- loc_15EA8: add byte ptr dword_26002, 2 retn ; --------------------------------------------------------------------------- loc_15EAE: xor ah, ah mov dl, 3 div dl cmp al, 0Ch jbe short loc_15EBA mov al, 0Ch loc_15EBA: add byte ptr dword_26002, al locret_15EBE: retn sub_15E82 endp ; --------------------------------------------------------------------------- nop ; --------------------------------------------------------------------------- dw offset loc_15E91 dw offset loc_15EA8 dw offset loc_15EAE dw offset loc_15E9D dw offset loc_15EA8 dw offset loc_15EAE dw offset loc_15EBA ; =============== S U B R O U T I N E ======================================= sub_15ECE proc near mov al, byte_26000 and al, 0FEh cmp al, 6 jnz short locret_15EF2 mov al, byte_25FEC cmp al, 26h ; '&' jb short loc_15EE3 inc byte ptr dword_26002+2 retn ; --------------------------------------------------------------------------- loc_15EE3: cmp al, 18h ja short locret_15EF2 cmp byte ptr dword_26002+2, 2 jb short locret_15EF2 dec byte ptr dword_26002+2 locret_15EF2: retn sub_15ECE endp ; --------------------------------------------------------------------------- nop ; =============== S U B R O U T I N E ======================================= sub_15EF4 proc near call sub_15ECE call sub_15DE6 retn sub_15EF4 endp ; --------------------------------------------------------------------------- nop ; =============== S U B R O U T I N E ======================================= sub_15EFC proc near call sub_15ECE retn sub_15EFC endp ; =============== S U B R O U T I N E ======================================= sub_15F00 proc near call sub_15ECE call sub_15E2A retn sub_15F00 endp ; --------------------------------------------------------------------------- nop ; =============== S U B R O U T I N E ======================================= sub_15F08 proc near call sub_15ECE call sub_15E82 retn sub_15F08 endp ; --------------------------------------------------------------------------- nop ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_15F10 proc near var_4 = word ptr -4 var_2 = word ptr -2 enter 4, 0 push si push di les bx, dword_23F4A mov di, es:[bx+1] mov ax, es:[bx+3] mov [bp+var_4], ax mov si, 9296h mov [bp+var_2], 0 jmp loc_16000 ; --------------------------------------------------------------------------- loc_15F30: cmp byte ptr [si], 0 jnz loc_15FFA mov byte ptr [si], 3 mov byte ptr [si+1], 0 mov byte ptr [si+18h], 0 mov byte ptr [si+19h], 0 mov word ptr [si+14h], 0 les bx, dword_23F4A mov al, es:[bx] mov ah, 0 add ax, ax mov bx, ax mov ax, [bx+352Ah] mov [si+12h], ax cmp di, 3E70h jnz short loc_15F6D push 1800h call sub_157FA mov di, ax loc_15F6D: mov [si+2], di cmp di, 0C00h jge short loc_15F7A mov al, 1 jmp short loc_15F7C ; --------------------------------------------------------------------------- loc_15F7A: mov al, 0 loc_15F7C: mov [si+25h], al cmp [bp+var_4], 3E70h jnz short loc_15F8F push 1700h call sub_157FA mov [bp+var_4], ax loc_15F8F: mov ax, [bp+var_4] mov [si+4], ax les bx, dword_23F4A mov al, es:[bx+5] mov [si+20h], al mov al, es:[bx+6] mov [si+36h], al mov byte ptr [si+21h], 0 cmp byte_25FEB, 3 jnz short loc_15FB7 mov ax, 1 jmp short loc_15FB9 ; --------------------------------------------------------------------------- loc_15FB7: xor ax, ax loc_15FB9: mov [si+23h], al mov byte ptr [si+1Fh], 0 mov byte ptr [si+1Ch], 1 mov byte ptr [si+1Dh], 4 mov byte ptr [si+1Eh], 0 mov byte ptr [si+22h], 0 mov byte ptr [si+24h], 0 call sub_157D6 mov [si+26h], al mov byte ptr [si+27h], 80h mov byte ptr [si+2Eh], 0Fh mov byte ptr [si+28h], 0 mov byte ptr [si+35h], 2Ah ; '*' mov word ptr [si+2Ah], 0 mov word ptr [si+2Ch], 0 mov byte ptr [si+29h], 0 jmp short loc_16008 ; --------------------------------------------------------------------------- loc_15FFA: inc [bp+var_2] add si, 40h ; '@' loc_16000: cmp [bp+var_2], 20h ; ' ' jl loc_15F30 loc_16008: pop di pop si leave retn sub_15F10 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1600C proc far var_1 = byte ptr -1 enter 2, 0 nop push cs call near ptr sub_17322 les bx, dword_23F4A mov ax, es:[bx] cmp ax, word_25FE0 jnz short locret_16063 add word ptr dword_23F4A, 2 les bx, dword_23F4A mov al, es:[bx] mov [bp+var_1], al inc word ptr dword_23F4A loc_16035: cmp byte_2C98C, 0 jnz short loc_1603F call sub_15F10 loc_1603F: add word ptr dword_23F4A, 8 dec [bp+var_1] cmp [bp+var_1], 0 ja short loc_16035 les bx, dword_23F4A cmp word ptr es:[bx], 0 jnz short locret_16063 setfarfp farfp_2C926, nullsub_1 locret_16063: leave retf sub_1600C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_16065 proc near arg_0 = word ptr 4 push bp mov bp, sp push si push di mov cx, 7 mov si, [bp+arg_0] mov di, 561Ah push ds pop es assume es:dseg rep movsw pop di pop si pop bp retn 2 sub_16065 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1607D proc far var_2 = byte ptr -2 var_1 = byte ptr -1 enter 2, 0 push si push di mov word ptr dword_2C922, 0C190h mov word ptr dword_2C922+2, 0C190h mov word_2CED6, 100h mov word_2CED8, 0C0h mov [bp+var_2], 0 mov si, 9296h xor di, di jmp loc_16251 ; --------------------------------------------------------------------------- loc_160A7: cmp byte ptr [si], 0 jz loc_1624D cmp byte ptr [si], 2 jnz short loc_160B9 mov byte ptr [si], 0 jmp loc_1624D ; --------------------------------------------------------------------------- loc_160B9: mov word_2C92A, si cmp byte ptr [si], 80h jnb loc_16221 call sub_1535A cmp byte ptr [si+24h], 0 jz short loc_160F2 mov ax, [si+2] sub ax, word ptr dword_2CEA0 add ax, 0C0h cmp ax, 180h jnb short loc_160F2 mov ax, [si+4] sub ax, word ptr dword_2CEA0+2 add ax, 0C0h cmp ax, 180h jnb short loc_160F2 mov byte_2CEC1, 1 jmp short loc_16161 ; --------------------------------------------------------------------------- loc_160F2: cmp byte ptr [si+22h], 0 jz loc_161C6 cmp word ptr [si+0Eh], 0FFFFh jz loc_161C6 mov ax, [si+2] add ax, 100h cmp ax, 1A00h jnb loc_161C6 mov ax, [si+4] add ax, 100h cmp ax, 1800h jnb loc_161C6 inc [bp+var_2] mov ax, [si+4] cmp ax, word ptr dword_2C922+2 jle short loc_16134 mov ax, [si+2] mov word ptr dword_2C922, ax mov ax, [si+4] mov word ptr dword_2C922+2, ax loc_16134: mov eax, [si+2] mov dword_2CED2, eax call sub_126B3 mov [bp+var_1], al cmp [bp+var_1], 0 jz short loc_161C6 cmp word ptr [si+0Eh], 0FFFEh jz short loc_161BF mov ah, 0 cmp ax, [si+0Eh] jge short loc_16161 mov al, [bp+var_1] mov ah, 0 sub [si+0Eh], ax jmp short loc_161B9 ; --------------------------------------------------------------------------- loc_16161: mov byte ptr [si], 80h mov byte ptr [si+1Ch], 1 mov byte ptr [si+22h], 0 mov byte ptr [si+24h], 0 mov word ptr [si+0Ah], 0 mov word ptr [si+0Ch], 0 cmp byte ptr [si+20h], 0FEh jz short loc_1618C push word ptr [si+2] push word ptr [si+4] push word ptr [si+20h] call sub_16D84 loc_1618C: push 3 call sub_14CEE movzx eax, word ptr [si+10h] add dword_2CE1A, eax push word ptr [si+2] push word ptr [si+4] push 400007h nopcall sub_1591A inc word_221C2 inc word_221C4 jmp loc_1624D ; --------------------------------------------------------------------------- loc_161B9: mov byte ptr [si+21h], 1 jmp short loc_161C6 ; --------------------------------------------------------------------------- loc_161BF: push 0Ah call sub_14CEE loc_161C6: cmp byte ptr [si+23h], 0 jz short loc_1621C inc byte ptr [si+26h] mov al, [si+26h] cmp al, [si+27h] jb short loc_1621C cmp word ptr [si+4], 1300h jge short loc_1621C mov ax, [si+2] sub ax, word ptr dword_2CEA0 add ax, 300h cmp ax, 600h jnb short loc_161FC mov ax, [si+4] sub ax, word ptr dword_2CEA0+2 add ax, 300h cmp ax, 600h jb short loc_1621C loc_161FC: mov byte ptr [si+26h], 0 lea ax, [si+28h] push ax call sub_16065 mov ax, [si+2] add word ptr dword_25FFC, ax mov ax, [si+4] add word ptr dword_25FFC+2, ax call fp_25344 call sub_15A5C loc_1621C: inc byte ptr [si+1] jmp short loc_1624D ; --------------------------------------------------------------------------- loc_16221: lea ax, [si+2] push ax call sub_152D2 mov al, [si] inc al mov [si], al mov [bp+var_1], al mov ah, 0 add ax, 0FF80h mov bx, 4 cwd idiv bx add al, 4 mov [bp+var_1], al mov [si+17h], al cmp [bp+var_1], 0Ch jb short loc_1624D mov byte ptr [si], 2 loc_1624D: inc di add si, 40h loc_16251: cmp di, 20h ; ' ' jl loc_160A7 cmp word ptr dword_2C922, 0C190h jz short loc_162B9 cmp [bp+var_2], 8 jb short loc_1626C mov [bp+var_2], 50h ; 'P' jmp short loc_16279 ; --------------------------------------------------------------------------- loc_1626C: mov al, [bp+var_2] shl al, 3 mov dl, 90h sub dl, al mov [bp+var_2], dl loc_16279: mov al, byte_25FEA shl al, 4 mov dl, [bp+var_2] sub dl, al mov [bp+var_2], dl cmp [bp+var_2], 90h ja short loc_16293 cmp [bp+var_2], 4 jnb short loc_16297 loc_16293: mov [bp+var_2], 4 loc_16297: mov al, [bp+var_2] mov ah, 0 push ax mov ax, word_25FE0 xor dx, dx pop bx div bx or dx, dx jnz short loc_162B9 cmp byte_2CEC3, 80h jnb short loc_162B9 inc byte_2CEC3 call sub_1059D loc_162B9: pop di pop si leave retf sub_1607D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_162BD proc far push bp mov bp, sp mov byte_2C93C, 0 mov byte_2C94C, 0 pop bp retf sub_162BD endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_162CC proc near arg_0 = word ptr 4 push bp mov bp, sp push si mov si, 0BF5Ch cmp byte ptr [si], 0 jz short loc_162DB add si, 10h loc_162DB: mov byte ptr [si], 1 mov byte ptr [si+1], 0 mov ax, word_26335+1 mov [si+2], ax mov ax, word_26338 mov [si+4], ax mov word ptr [si+6], 8 mov word ptr [si+8], 8 mov word ptr [si+0Ah], 0B0h ; '°' mov word ptr [si+0Ch], 0B0h ; '°' mov byte ptr [si+0Fh], 0 mov bx, [bp+arg_0] dec bx cmp bx, 3 ja short loc_16338 add bx, bx jmp cs:off_16344[bx] loc_16316: mov byte ptr [si+0Fh], 20h ; ' ' jmp short loc_16338 ; --------------------------------------------------------------------------- loc_1631C: mov byte ptr [si+0Fh], 0E0h jmp short loc_16338 ; --------------------------------------------------------------------------- loc_16322: mov word ptr [si+0Ah], 0D0h mov word ptr [si+0Ch], 70h ; 'p' jmp short loc_16338 ; --------------------------------------------------------------------------- loc_1632E: mov word ptr [si+0Ah], 70h ; 'p' mov word ptr [si+0Ch], 0D0h loc_16338: push 0Fh call sub_14CEE pop si pop bp retn 2 sub_162CC endp ; --------------------------------------------------------------------------- off_16344 dw offset loc_16316 dw offset loc_1631C dw offset loc_16322 dw offset loc_1632E ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1634C proc near var_4 = word ptr -4 var_2 = word ptr -2 arg_0 = word ptr 4 enter 4, 0 mov ax, word_26335+1 mov [bp+var_2], ax mov ax, word_26338 mov [bp+var_4], ax mov eax, dword_2634E mov dword ptr word_26335+1, eax push [bp+arg_0] call sub_162CC mov ax, [bp+var_2] mov word_26335+1, ax mov ax, [bp+var_4] mov word_26338, ax leave retn 2 sub_1634C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1637A proc near push bp mov bp, sp push si mov si, 0BF7Ch mov byte ptr [si], 1 mov byte ptr [si+1], 0 mov ax, word_26335+1 mov [si+2], ax mov ax, word_26338 mov [si+4], ax mov word ptr [si+6], 8 mov word ptr [si+8], 8 mov word ptr [si+0Ah], 0C0h mov word ptr [si+0Ch], 0C0h mov byte ptr [si+0Fh], 0 push 0Ch call sub_14CEE pop si pop bp retn sub_1637A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_163B6 proc near var_4 = word ptr -4 var_2 = word ptr -2 enter 4, 0 mov ax, word_26335+1 mov [bp+var_2], ax mov ax, word_26338 mov [bp+var_4], ax mov eax, dword_2634E mov dword ptr word_26335+1, eax call sub_1637A mov ax, [bp+var_2] mov word_26335+1, ax mov ax, [bp+var_4] mov word_26338, ax leave retn sub_163B6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_163DF proc near var_2 = word ptr -2 arg_0 = dword ptr 4 arg_4 = word ptr 8 arg_6 = word ptr 0Ah arg_8 = word ptr 0Ch enter 2, 0 push si mov si, [bp+arg_4] movsx eax, si les bx, [bp+arg_0] assume es:nothing imul eax, es:[bx] mov es:[bx], eax mov eax, es:[bx] mov ebx, 0Ah xor edx, edx div ebx mov bx, word ptr [bp+arg_0] mov es:[bx], eax cmp si, 0Ah jge short loc_16418 mov ax, 41h ; 'A' jmp short loc_1641B ; --------------------------------------------------------------------------- loc_16418: mov ax, 81h loc_1641B: mov [bp+var_2], ax push 6 push [bp+arg_8] push ds mov bx, [bp+arg_6] add bx, bx push word ptr [bx+1896h] push ax call text_putsa pop si leave retn 0Ah sub_163DF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_16438 proc near arg_0 = dword ptr 4 push bp mov bp, sp cmp byte ptr word_2634A+1, 0 jnz short loc_1644D push 140000h push 0 jmp loc_164FD ; --------------------------------------------------------------------------- loc_1644D: les bx, dword_23EF0 mov al, es:[bx+0Dh] mov ah, 0 cmp ax, 4 jz short loc_1647C cmp ax, 5 jz short loc_16472 cmp ax, 6 jz short loc_16468 jmp short loc_1648B ; --------------------------------------------------------------------------- loc_16468: push 120001h push 3 jmp short loc_16484 ; --------------------------------------------------------------------------- loc_16472: push 120002h push 5 jmp short loc_16484 ; --------------------------------------------------------------------------- loc_1647C: push 120003h push 7 loc_16484: pushd [bp+arg_0] call sub_163DF loc_1648B: mov al, byte_2CE0A mov ah, 0 cmp ax, 1 jz short loc_164A1 cmp ax, 2 jz short loc_164AB cmp ax, 3 jz short loc_164B5 jmp short loc_164C4 ; --------------------------------------------------------------------------- loc_164A1: push 130004h push 8 jmp short loc_164BD ; --------------------------------------------------------------------------- loc_164AB: push 130005h push 6 jmp short loc_164BD ; --------------------------------------------------------------------------- loc_164B5: push 130006h push 4 loc_164BD: pushd [bp+arg_0] call sub_163DF loc_164C4: mov al, byte_25FEB mov ah, 0 mov bx, ax cmp bx, 3 ja short loc_16504 add bx, bx jmp cs:off_16508[bx] loc_164D7: push 140007h push 5 jmp short loc_164FD ; --------------------------------------------------------------------------- loc_164E1: push 140008h push 0Ah jmp short loc_164FD ; --------------------------------------------------------------------------- loc_164EB: push 140009h push 0Ch jmp short loc_164FD ; --------------------------------------------------------------------------- loc_164F5: push 14000Ah push 0Eh loc_164FD: pushd [bp+arg_0] call sub_163DF loc_16504: pop bp retn 4 sub_16438 endp ; --------------------------------------------------------------------------- off_16508 dw offset loc_164D7 dw offset loc_164E1 dw offset loc_164EB dw offset loc_164F5 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_16510 proc near var_6 = byte ptr -6 var_5 = byte ptr -5 var_4 = dword ptr -4 enter 6, 0 push si les bx, dword_23EF0 mov al, es:[bx+1Bh] cmp al, byte_22274 jnz short loc_16528 mov ax, 1 jmp short loc_1652A ; --------------------------------------------------------------------------- loc_16528: xor ax, ax loc_1652A: mov [bp+var_5], al les bx, dword_23EF0 mov al, es:[bx+1Bh] mov byte_22274, al mov al, es:[bx+1Ch] cmp al, byte_22275 jnz short loc_1654D cmp [bp+var_5], 0 jz short loc_1654D mov ax, 1 jmp short loc_1654F ; --------------------------------------------------------------------------- loc_1654D: xor ax, ax loc_1654F: mov [bp+var_6], al les bx, dword_23EF0 mov al, es:[bx+1Ch] mov byte_22275, al mov PaletteTone, 3Ch ; '<' call far ptr palette_show push 140004h push ds push offset gpCLEAR_BONUS push 0E1h call gaiji_putsa push 60008h push ds push BONUS_STAGE push 0E1h call text_putsa push 6000Ah push ds push BONUS_DREAM push 0E1h call text_putsa push 6000Ch push ds push GRAZEX50 push 0E1h call text_putsa push 6000Eh push ds push POINT_ITEMS push 0E1h call text_putsa cmp [bp+var_5], 0 jz short loc_165DF push 60010h push ds push BONUS_NOMISS push 0A1h call text_putsa loc_165DF: cmp [bp+var_6], 0 jz short loc_165F8 push 60011h push ds push BONUS_NOBOMB push 0A1h call text_putsa loc_165F8: push 60015h push ds push BONUS_TOTAL push 0E1h call text_putsa mov al, byte_25FEA mov ah, 0 imul ax, 64h add ax, 64h ; 'd' mov si, ax movzx eax, si mov [bp+var_4], eax push 220008h push eax nopcall sub_1FA0E mov al, byte_2CEC3 mov ah, 0 imul ax, 0Ah mov si, ax movzx eax, si add [bp+var_4], eax push 22000Ah push eax nopcall sub_1FA0E mov ax, word_2C97A imul ax, 5 mov si, ax movzx eax, si add [bp+var_4], eax push 22000Ch push eax nopcall sub_1FA0E mov si, word_2CEC6 movzx eax, si imul eax, [bp+var_4] mov [bp+var_4], eax push 28000Eh push si push 0E1h nopcall sub_1F9F4 mov al, byte_25FEA mov ah, 0 imul ax, 1388h add ax, 2710h mov si, ax cmp [bp+var_5], 0 jz short loc_166B2 movzx eax, si add [bp+var_4], eax push 220010h push eax nopcall sub_1FA0E loc_166B2: cmp [bp+var_6], 0 jz short loc_166CD movzx eax, si add [bp+var_4], eax push 220011h push eax nopcall sub_1FA0E loc_166CD: cmp [bp+var_4], 124F80h jb short loc_166DB push 4 jmp short loc_166F5 ; --------------------------------------------------------------------------- loc_166DB: cmp [bp+var_4], 0C3500h jb short loc_166E9 push 2 jmp short loc_166F5 ; --------------------------------------------------------------------------- loc_166E9: cmp [bp+var_4], 7A120h jb short loc_166FC push 1 loc_166F5: call sub_E720 jmp short loc_1671B ; --------------------------------------------------------------------------- loc_166FC: cmp [bp+var_4], 186A0h ja short loc_1670A push 2 jmp short loc_16716 ; --------------------------------------------------------------------------- loc_1670A: cmp [bp+var_4], 30D40h ja short loc_1671B push 1 loc_16716: call sub_E73A loc_1671B: push ss lea ax, [bp+var_4] push ax call sub_16438 push 220015h pushd [bp+var_4] nopcall sub_1FA0E mov eax, [bp+var_4] add dword_2CE1A, eax pop si leave retn sub_16510 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1673E proc near var_A = byte ptr -0Ah var_9 = byte ptr -9 var_8 = dword ptr -8 var_4 = dword ptr -4 enter 0Ah, 0 push si les bx, dword_23EF0 mov al, es:[bx+1Bh] cmp al, byte_22274 jnz short loc_16756 mov ax, 1 jmp short loc_16758 ; --------------------------------------------------------------------------- loc_16756: xor ax, ax loc_16758: mov [bp+var_9], al les bx, dword_23EF0 mov al, es:[bx+1Bh] mov byte_22274, al mov al, es:[bx+1Ch] cmp al, byte_22275 jnz short loc_1677B cmp [bp+var_9], 0 jz short loc_1677B mov ax, 1 jmp short loc_1677D ; --------------------------------------------------------------------------- loc_1677B: xor ax, ax loc_1677D: mov [bp+var_A], al les bx, dword_23EF0 mov al, es:[bx+1Ch] mov byte_22275, al mov PaletteTone, 3Ch ; '<' call far ptr palette_show mov byte_226C4, 0Ah push 130004h push ds push offset gpCONGRATULATION push 0E1h call gaiji_putsa push 60006h push ds push ALL_CLEAR push 0E1h call text_putsa push 60008h push ds push BONUS_DREAM push 0E1h call text_putsa push 6000Ah push ds push GRAZEX50 push 0E1h call text_putsa push 6000Ch push ds push PLAYER_REM push 0E1h call text_putsa push 6000Eh push ds push POINT_ITEMS push 0E1h call text_putsa cmp [bp+var_9], 0 jz short loc_16825 push 60010h push ds push BONUS_NOMISS push 0A1h call text_putsa loc_16825: cmp [bp+var_A], 0 jz short loc_1683E push 60011h push ds push BONUS_NOBOMB push 0A1h call text_putsa loc_1683E: push 60012h push ds push POINT_TOTAL push 0A1h call text_putsa push 60015h push ds push BONUS_TOTAL push 0E1h call text_putsa mov si, 3E8h movzx eax, si mov [bp+var_4], eax push 220006h push eax nopcall sub_1FA0E mov al, byte_2CEC3 mov ah, 0 imul ax, 0Ah mov si, ax movzx eax, si add [bp+var_4], eax push 220008h push eax nopcall sub_1FA0E mov ax, word_2C97A imul ax, 5 mov si, ax movzx eax, si add [bp+var_4], eax push 22000Ah push eax nopcall sub_1FA0E mov al, byte_25350 mov ah, 0 imul ax, 3E8h add ax, 0FC18h mov si, ax movzx eax, si add [bp+var_4], eax push 22000Ch push eax nopcall sub_1FA0E mov si, word_2CEC6 movzx eax, si imul eax, [bp+var_4] mov [bp+var_4], eax push 28000Eh push si push 0E1h nopcall sub_1F9F4 mov [bp+var_8], 0C350h cmp [bp+var_9], 0 jz short loc_1691E mov eax, [bp+var_8] add [bp+var_4], eax push 220010h push eax nopcall sub_1FA0E loc_1691E: cmp [bp+var_A], 0 jz short loc_16939 mov eax, [bp+var_8] add [bp+var_4], eax push 220011h push eax nopcall sub_1FA0E loc_16939: movzx eax, word_22648 imul eax, 0FAh mov [bp+var_8], eax add [bp+var_4], eax push 220012h push eax nopcall sub_1FA0E push ss lea ax, [bp+var_4] push ax call sub_16438 push 220015h pushd [bp+var_4] nopcall sub_1FA0E mov eax, [bp+var_4] add dword_2CE1A, eax pop si leave retn sub_1673E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1697E proc near arg_0 = word ptr 4 push bp mov bp, sp push si push di mov cx, 7 push ds pop es assume es:dseg mov si, 561Ah mov di, [bp+arg_0] add di, 18h rep movsw pop di pop si pop bp retn 2 sub_1697E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_16999 proc near push bp mov bp, sp push si push di mov si, 9A96h xor di, di jmp short loc_169FA ; --------------------------------------------------------------------------- loc_169A5: cmp byte ptr [si], 0 jnz short loc_169F6 mov byte ptr [si], 1 push si call sub_1697E mov ax, word ptr dword_2A722 mov [si+2], ax mov ax, word ptr dword_2A722+2 mov [si+4], ax mov ax, word_2A72A mov [si+0Eh], ax mov [si+14h], ax mov ax, word ptr dword_2A726 mov [si+0Ah], ax mov ax, word ptr dword_2A726+2 mov [si+0Ch], ax mov byte ptr [si+12h], 0 mov al, byte_2A72F mov [si+13h], al mov al, byte_2A72E mov [si+1], al mov ax, word_2A72C mov [si+10h], ax mov ax, word_2A72A mov bx, 20h ; ' ' cwd idiv bx mov [si+16h], ax jmp short loc_169FF ; --------------------------------------------------------------------------- loc_169F6: inc di add si, 26h ; '&' loc_169FA: cmp di, 8 jl short loc_169A5 loc_169FF: pop di pop si pop bp retn sub_16999 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_16A03 proc near push bp mov bp, sp push si mov si, 9A96h xor cx, cx jmp short loc_16A63 ; --------------------------------------------------------------------------- loc_16A0E: cmp byte ptr [si], 0 jnz short loc_16A5F mov byte ptr [si], 1 mov byte ptr [si+18h], 0FFh mov ax, word ptr dword_2A722 mov [si+2], ax mov ax, word ptr dword_2A722+2 mov [si+4], ax mov ax, word_2A72A mov [si+0Eh], ax mov [si+14h], ax mov ax, word ptr dword_2A726 mov [si+0Ah], ax mov ax, word ptr dword_2A726+2 mov [si+0Ch], ax mov byte ptr [si+12h], 0 mov al, byte_2A72F mov [si+13h], al mov al, byte_2A72E mov [si+1], al mov ax, word_2A72C mov [si+10h], ax mov ax, word_2A72A mov bx, 20h ; ' ' cwd idiv bx mov [si+16h], ax jmp short loc_16A68 ; --------------------------------------------------------------------------- loc_16A5F: inc cx add si, 26h ; '&' loc_16A63: cmp cx, 8 jl short loc_16A0E loc_16A68: pop si pop bp retn sub_16A03 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_16A6B proc near arg_0 = byte ptr 4 arg_2 = byte ptr 6 arg_4 = word ptr 8 push bp mov bp, sp mov ax, [bp+arg_4] or ax, ax jz short loc_16A83 cmp ax, 2 jz short loc_16A88 cmp ax, 4 jz short loc_16A8E pop bp retn 6 ; --------------------------------------------------------------------------- loc_16A83: mov al, [bp+arg_2] jmp short loc_16A8B ; --------------------------------------------------------------------------- loc_16A88: mov al, [bp+arg_0] loc_16A8B: mov byte_2A72E, al loc_16A8E: call sub_16A03 pop bp retn 6 sub_16A6B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_16A95 proc near arg_0 = word ptr 4 push bp mov bp, sp push si push di mov cx, 7 push ds pop es mov di, 561Ah mov si, [bp+arg_0] add si, 18h rep movsw pop di pop si pop bp retn 2 sub_16A95 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_16AB0 proc far push bp mov bp, sp push si push di mov si, 9A96h xor di, di jmp short loc_16B1B ; --------------------------------------------------------------------------- loc_16ABC: cmp byte ptr [si], 0 jz short loc_16B17 cmp byte ptr [si], 2 jb short loc_16ACB mov byte ptr [si], 0 jmp short loc_16B17 ; --------------------------------------------------------------------------- loc_16ACB: lea ax, [si+2] push ax call sub_152D2 mov ax, [si+0Eh] mov [si+14h], ax mov ax, [si+16h] sub [si+0Eh], ax mov al, [si+13h] add [si+12h], al cmp word ptr [si+0Eh], 20h ; ' ' jge short loc_16B17 mov byte ptr [si], 2 cmp byte ptr [si+18h], 0FFh jz short loc_16B17 push si call sub_16A95 mov ax, [si+2] mov word ptr dword_25FFC, ax mov ax, [si+4] mov word ptr dword_25FFC+2, ax cmp byte ptr word_25FFA, 0FEh jnb short loc_16B0F call sub_15A5C jmp short loc_16B17 ; --------------------------------------------------------------------------- loc_16B0F: mov byte ptr word_25FFA, 0 call sub_15A70 loc_16B17: inc di add si, 26h ; '&' loc_16B1B: cmp di, 8 jl short loc_16ABC pop di pop si pop bp retf sub_16AB0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_16B24 proc near push bp mov bp, sp cmp word ptr dword_252DE, 0FFC0h jle short loc_16B4A cmp word ptr dword_252DE, 1840h jge short loc_16B4A cmp word ptr dword_252DE+2, 0FFC0h jle short loc_16B4A cmp word ptr dword_252DE+2, 1740h jge short loc_16B4A mov ax, 1 jmp short loc_16B4C ; --------------------------------------------------------------------------- loc_16B4A: xor ax, ax loc_16B4C: pop bp retn sub_16B24 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_16B4E proc far var_4 = byte ptr -4 var_3 = byte ptr -3 var_2 = word ptr -2 enter 4, 0 push si push di mov ax, 0A800h mov es, ax assume es:nothing mov [bp+var_4], 0FFh mov si, 9A96h mov [bp+var_2], 0 jmp short loc_16BCF ; --------------------------------------------------------------------------- loc_16B67: cmp byte ptr [si], 1 jnz short loc_16BC9 mov al, [si+1] cmp al, [bp+var_4] jz short loc_16B7D mov [bp+var_4], al mov ah, [bp+var_4] call sub_15A04 loc_16B7D: xor di, di jmp short loc_16BC4 ; --------------------------------------------------------------------------- loc_16B81: mov ax, di shl ax, 8 cwd idiv word ptr [si+10h] add al, [si+12h] mov [bp+var_3], al push 48FEh push word ptr [si+2] push word ptr [si+4] push word ptr [si+0Eh] mov ah, 0 push ax call sub_14E6C call sub_16B24 or al, al jz short loc_16BC3 mov ax, word ptr dword_252DE+2 add ax, 0C0h push ax call sub_15288 mov dx, ax mov ax, word ptr dword_252DE sar ax, 4 add ax, 1Ch call sub_15814 loc_16BC3: inc di loc_16BC4: cmp [si+10h], di jg short loc_16B81 loc_16BC9: inc [bp+var_2] add si, 26h ; '&' loc_16BCF: cmp [bp+var_2], 8 jl short loc_16B67 pop di pop si leave retf sub_16B4E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_16BD9 proc near arg_0 = word ptr 4 push bp mov bp, sp push si mov si, [bp+arg_0] or si, si jnz short loc_16C35 cmp word_26335+1, 900h jge short loc_16BF5 push 60h call sub_157FA sub al, 30h ; '0' jmp short loc_16C09 ; --------------------------------------------------------------------------- loc_16BF5: cmp word_26335+1, 0F00h jle short loc_16C06 push 60h call sub_157E4 add al, 30h ; '0' jmp short loc_16C09 ; --------------------------------------------------------------------------- loc_16C06: call sub_157D6 loc_16C09: mov byte ptr word_2634A, al cmp byte_2C974, 1 jnz short loc_16C1A cmp byte ptr word_2634A, 80h jb short loc_16C28 loc_16C1A: cmp byte_2C974, 2 jnz short loc_16C30 cmp byte ptr word_2634A, 80h jb short loc_16C30 loc_16C28: mov al, byte ptr word_2634A neg al mov byte ptr word_2634A, al loc_16C30: mov byte_2C974, 0 loc_16C35: or si, si jl loc_16CC5 push 595Eh push word_2634A mov ax, si add ax, ax mov dx, 40h sub dx, ax push dx call sub_158E2 mov ax, word_2633E add word_26335+1, ax mov ax, word_26340 add word_26338, ax cmp word_2633E, 0 jge short loc_16C69 mov al, byte ptr word_2C96E jmp short loc_16C6C ; --------------------------------------------------------------------------- loc_16C69: mov al, byte ptr word_2C970 loc_16C6C: mov byte_26344, al mov ax, word_26338 cmp ax, word_22586 jge short loc_16C85 mov ax, word_22586 mov word_26338, ax mov byte_2C974, 2 jmp short loc_16C99 ; --------------------------------------------------------------------------- loc_16C85: mov ax, word_26338 cmp ax, word_22588 jle short loc_16C99 mov ax, word_22588 mov word_26338, ax mov byte_2C974, 1 loc_16C99: mov ax, word_26335+1 cmp ax, word_22582 jge short loc_16CA7 mov ax, word_22582 jmp short loc_16CB3 ; --------------------------------------------------------------------------- loc_16CA7: mov ax, word_26335+1 cmp ax, word_22584 jle short loc_16CB6 mov ax, word_22584 loc_16CB3: mov word_26335+1, ax loc_16CB6: cmp si, 1Ch jl short loc_16CC5 mov al, byte ptr word_2C972 mov byte_26344, al mov al, 1 jmp short loc_16CC7 ; --------------------------------------------------------------------------- loc_16CC5: mov al, 0 loc_16CC7: pop si pop bp retn 2 sub_16BD9 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_16CCC proc near arg_0 = word ptr 4 arg_2 = word ptr 6 push bp mov bp, sp push si push di mov di, [bp+arg_2] xor si, si mov ax, di sub ax, word_26335+1 mov cx, ax mov bx, 10h cwd idiv bx or ax, ax jz short loc_16CEC mov ax, cx jmp short loc_16CFA ; --------------------------------------------------------------------------- loc_16CEC: mov ax, cx mov bx, 4 cwd idiv bx or ax, ax jz short loc_16D03 mov ax, cx loc_16CFA: cwd idiv bx add word_26335+1, ax jmp short loc_16D08 ; --------------------------------------------------------------------------- loc_16D03: mov word_26335+1, di inc si loc_16D08: or cx, cx jge short loc_16D11 mov al, byte ptr word_2C96E jmp short loc_16D14 ; --------------------------------------------------------------------------- loc_16D11: mov al, byte ptr word_2C970 loc_16D14: mov byte_26344, al mov ax, [bp+arg_0] sub ax, word_26338 mov cx, ax mov bx, 10h cwd idiv bx or ax, ax jz short loc_16D31 mov ax, cx cwd idiv bx jmp short loc_16D43 ; --------------------------------------------------------------------------- loc_16D31: mov ax, cx cwd sub ax, dx sar ax, 1 or ax, ax jz short loc_16D49 mov ax, cx cwd sub ax, dx sar ax, 1 loc_16D43: add word_26338, ax jmp short loc_16D50 ; --------------------------------------------------------------------------- loc_16D49: mov ax, [bp+arg_0] mov word_26338, ax inc si loc_16D50: cmp si, 2 jz short loc_16D59 mov al, 0 jmp short loc_16D61 ; --------------------------------------------------------------------------- loc_16D59: mov al, byte ptr word_2C972 mov byte_26344, al mov al, 1 loc_16D61: pop di pop si pop bp retn 4 sub_16CCC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_16D67 proc far push bp mov bp, sp call IRand and al, 0Fh mov byte_2C98A, al call sub_178D7 mov byte_2264E, 0 mov word_2C986, 0 pop bp retf sub_16D67 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_16D84 proc near arg_0 = byte ptr 4 arg_2 = word ptr 6 arg_4 = word ptr 8 push bp mov bp, sp push si push di cmp byte_2264E, 0 jz short loc_16DA0 cmp [bp+arg_0], 3 jb short loc_16D9C cmp [bp+arg_0], 0FFh jnz short loc_16DA0 loc_16D9C: mov [bp+arg_0], 0 loc_16DA0: cmp [bp+arg_0], 0FFh jnz short loc_16DCA inc byte_2C98A test byte_2C98A, 1 jnz short loc_16E23 mov al, byte_2C98A mov ah, 0 cwd sub ax, dx sar ax, 1 mov bx, 40h cwd idiv bx mov bx, dx mov al, [bx+1BACh] mov [bp+arg_0], al loc_16DCA: mov si, 0AF20h xor di, di jmp short loc_16E1E ; --------------------------------------------------------------------------- loc_16DD1: cmp byte ptr [si], 0 jnz short loc_16E1A mov byte ptr [si], 1 mov byte ptr [si+0Fh], 0 mov ax, [bp+arg_4] mov [si+2], ax mov ax, [bp+arg_2] mov [si+4], ax mov word ptr [si+0Ah], 0 mov word ptr [si+0Ch], 0FFD0h mov al, [bp+arg_0] mov [si+0Eh], al mov ah, 0 add ax, ax mov bx, ax mov ax, [bx+1BEEh] mov [si+10h], ax push [bp+arg_4] push [bp+arg_2] call sub_178F1 mov word ptr [si+12h], 0 inc word_22644 jmp short loc_16E23 ; --------------------------------------------------------------------------- loc_16E1A: inc di add si, 14h loc_16E1E: cmp di, 28h ; '(' jl short loc_16DD1 loc_16E23: pop di pop si pop bp retn 6 sub_16D84 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_16E29 proc far var_A = word ptr -0Ah var_8 = word ptr -8 var_6 = word ptr -6 var_4 = word ptr -4 var_2 = word ptr -2 enter 0Ah, 0 push si push di push 5 call sub_157FA mov [bp+var_6], ax loc_16E37: push 5 call sub_157FA mov [bp+var_A], ax cmp ax, [bp+var_6] jz short loc_16E37 cmp word ptr dword_2CEA0, 800h jge short loc_16E53 mov [bp+var_4], 0 jmp short loc_16E67 ; --------------------------------------------------------------------------- loc_16E53: cmp word ptr dword_2CEA0, 1000h jg short loc_16E62 mov [bp+var_4], 1 jmp short loc_16E67 ; --------------------------------------------------------------------------- loc_16E62: mov [bp+var_4], 2 loc_16E67: xor di, di mov si, 0AF20h mov [bp+var_2], 0 jmp loc_16EF9 ; --------------------------------------------------------------------------- loc_16E74: cmp byte ptr [si], 0 jnz short loc_16EF3 mov byte ptr [si], 1 mov byte ptr [si+0Fh], 0 mov ax, word ptr dword_2CEA0 mov [si+2], ax mov ax, word ptr dword_2CEA0+2 mov [si+4], ax mov bx, [bp+var_4] imul bx, 14h mov ax, di add ax, ax add bx, ax mov ax, [bx+1C70h] mov [si+0Ch], ax mov bx, [bp+var_4] imul bx, 14h mov ax, di add ax, ax add bx, ax mov ax, [bx+1C7Ah] mov [si+0Ah], ax mov word ptr [si+12h], 0 cmp [bp+var_6], di jz short loc_16EC6 push 1 call sub_157E4 mov [bp+var_8], ax jmp short loc_16ECB ; --------------------------------------------------------------------------- loc_16EC6: mov [bp+var_8], 3 loc_16ECB: cmp byte_25350, 1 jnz short loc_16ED7 mov [bp+var_8], 6 loc_16ED7: mov al, byte ptr [bp+var_8] mov [si+0Eh], al mov bx, [bp+var_8] add bx, bx mov ax, [bx+1BEEh] mov [si+10h], ax inc di inc word_22644 cmp di, 5 jge short loc_16F01 loc_16EF3: inc [bp+var_2] add si, 14h loc_16EF9: cmp [bp+var_2], 28h ; '(' jl loc_16E74 loc_16F01: pop di pop si leave retf sub_16E29 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_16F05 proc near push bp mov bp, sp mov al, byte_226C4 mov ah, 0 imul ax, 64h add ax, 64h ; 'd' cmp ax, word_22648 ja short loc_16F52 push 4 call sub_E720 inc byte_226C4 cmp byte_25350, 63h ; 'c' jnb short loc_16F52 inc byte_25350 cmp byte_2C979, 14h jnb short loc_16F3B mov byte_2C979, 14h loc_16F3B: call sub_10407 mov byte_2CE87, 1 mov fp_2CE8A, offset sub_11DEA push 7 call sub_14CEE loc_16F52: pop bp retn sub_16F05 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_16F54 proc near var_3 = byte ptr -3 var_2 = word ptr -2 arg_0 = word ptr 4 enter 4, 0 push si push di mov di, [bp+arg_0] mov [bp+var_3], 0 mov al, [di+0Eh] mov ah, 0 mov bx, ax cmp bx, 6 ja loc_17174 add bx, bx jmp cs:off_171BA[bx] loc_16F76: cmp byte_2CEBE, 80h jnb short loc_16FAA cmp byte_2CEBE, 7Fh jnz short loc_16F9B mov byte_2CE87, 3 mov fp_2CE8A, offset sub_11DEA cmp byte_2C979, 14h jnb short loc_16F9B mov byte_2C979, 14h loc_16F9B: inc byte_2CEBE call sub_E4FC mov si, 1 jmp loc_17174 ; --------------------------------------------------------------------------- loc_16FAA: inc word_22642 cmp word_22642, 2Ah ; '*' jb short loc_16FD1 mov word_22642, 2Ah ; '*' mov [bp+var_3], 1 cmp byte_2264E, 0 jnz short loc_16FD1 cmp byte_2CEC3, 80h jnb short loc_16FD1 inc byte_2CEC3 loc_16FD1: mov bx, word_22642 add bx, bx mov si, [bx+1BFCh] call sub_1059D jmp loc_17174 ; --------------------------------------------------------------------------- loc_16FE3: cmp byte_2CEC3, 80h jnb short loc_17003 mov al, byte_2CEC3 mov ah, 0 imul ax, 18h mov dx, [di+4] sub dx, ax add dx, 0FC80h mov [bp+var_2], dx mov si, 1400h jmp short loc_1700C ; --------------------------------------------------------------------------- loc_17003: mov [bp+var_2], 0 mov si, word_2C988 loc_1700C: cmp [bp+var_2], 0 jg short loc_1704D inc byte_225CC cmp byte_2264E, 0 jnz short loc_17043 mov ax, [di+4] mov bx, 400h cwd idiv bx mov dl, 6 sub dl, al add dl, byte_2CEC3 mov byte_2CEC3, dl cmp byte_2CEC3, 80h jbe short loc_1703E mov byte_2CEC3, 80h loc_1703E: call sub_1059D loc_17043: inc word_2264C mov [bp+var_3], 1 jmp short loc_1705C ; --------------------------------------------------------------------------- loc_1704D: mov ax, [bp+var_2] cwd sub ax, dx sar ax, 1 mov dx, 0AF0h sub dx, ax mov si, dx loc_1705C: inc byte_225CC inc word_22648 inc word_2264A cmp word_2CEC6, 3E7h jnb short loc_17074 inc word_2CEC6 loc_17074: call sub_16F05 call sub_10574 jmp loc_17174 ; --------------------------------------------------------------------------- loc_1707F: cmp byte_2CEC3, 80h jb short loc_1708F mov si, 3200h mov [bp+var_3], 1 jmp short loc_17097 ; --------------------------------------------------------------------------- loc_1708F: mov si, 1 mov byte_2CEC3, 80h loc_17097: call sub_1059D mov al, byte_225CC add al, 2 mov byte_225CC, al cmp byte_2264E, 0 jz loc_17174 add al, 2 mov byte_225CC, al jmp loc_17174 ; --------------------------------------------------------------------------- loc_170B5: cmp byte_2CEBE, 80h jnb short loc_170F2 mov al, byte_2CEBE add al, 0Ah mov byte_2CEBE, al cmp byte_2CEBE, 80h jb short loc_170E7 mov byte_2CEBE, 80h mov byte_2CE87, 3 mov fp_2CE8A, offset sub_11DEA cmp byte_2C979, 14h jnb short loc_170E7 mov byte_2C979, 14h loc_170E7: call sub_E4FC mov si, 1 jmp loc_17174 ; --------------------------------------------------------------------------- loc_170F2: add word_22642, 5 mov bx, word_22642 add bx, bx mov si, [bx+1BFCh] cmp word_22642, 2Ah ; '*' jbe short loc_1710E mov word_22642, 2Ah ; '*' loc_1710E: cmp word_22642, 2Ah ; '*' jnz short loc_17174 mov si, 0A00h mov [bp+var_3], 1 jmp short loc_17174 ; --------------------------------------------------------------------------- loc_1711E: inc byte_25351 mov si, 64h ; 'd' call sub_104BB jmp short loc_17174 ; --------------------------------------------------------------------------- loc_1712C: push 3 call sub_E720 inc byte_25350 call sub_10407 push 7 call sub_14CEE mov byte_2CE87, 1 mov fp_2CE8A, offset sub_11DEA jmp short loc_17171 ; --------------------------------------------------------------------------- loc_17150: cmp byte_2C979, 14h jnb short loc_1715C mov byte_2C979, 14h loc_1715C: mov byte_2CE87, 3 mov fp_2CE8A, offset sub_11DEA mov byte_2CEBE, 80h call sub_E4FC loc_17171: mov si, 64h ; 'd' loc_17174: movzx eax, si add dword_2CE1A, eax cmp [bp+var_3], 0 jnz short loc_1718F push word ptr [di+2] push word ptr [di+4] push si call sub_15888 jmp short loc_17199 ; --------------------------------------------------------------------------- loc_1718F: push word ptr [di+2] push word ptr [di+4] push si call sub_1586E loc_17199: cmp byte_225CC, 20h ; ' ' jb short loc_171AF mov al, byte_225CC add al, 0E0h mov byte_225CC, al push 1 call sub_E720 loc_171AF: inc word_22646 pop di pop si leave retn 2 sub_16F54 endp ; --------------------------------------------------------------------------- db 0 off_171BA dw offset loc_16F76 dw offset loc_16FE3 dw offset loc_1707F dw offset loc_170B5 dw offset loc_1711E dw offset loc_1712C dw offset loc_17150 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_171C8 proc near arg_0 = word ptr 4 push bp mov bp, sp push si mov si, [bp+arg_0] mov al, [si+0Eh] mov ah, 0 cmp ax, 1 jz short loc_171E5 cmp ax, 4 jz short loc_171F9 cmp ax, 5 jz short loc_171FD jmp short loc_17204 ; --------------------------------------------------------------------------- loc_171E5: cmp byte_2CEC3, 1 jbe short loc_17204 cmp byte_2CEC3, 80h jnb short loc_17204 dec byte_2CEC3 jmp short loc_17204 ; --------------------------------------------------------------------------- loc_171F9: push 2 jmp short loc_171FF ; --------------------------------------------------------------------------- loc_171FD: push 4 loc_171FF: call sub_E73A loc_17204: call sub_1059D pop si pop bp retn 2 sub_171C8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1720E proc far var_1 = byte ptr -1 enter 2, 0 push si push di mov si, 0AF20h xor di, di jmp loc_172EC ; --------------------------------------------------------------------------- loc_1721C: cmp byte ptr [si], 0 jz loc_172E8 cmp byte ptr [si], 2 jnz short loc_1722E mov byte ptr [si], 0 jmp loc_172E8 ; --------------------------------------------------------------------------- loc_1722E: cmp byte_2264E, 0 jz short loc_17264 mov byte_21762, 1 mov word ptr [si+12h], 1 mov ax, word ptr dword_2CEA0+2 sub ax, [si+4] push ax mov ax, word ptr dword_2CEA0 sub ax, [si+2] push ax call iatan2 mov [bp+var_1], al lea ax, [si+0Ah] push ax push word ptr [bp+var_1] push 0A0h call sub_158E2 jmp short loc_17279 ; --------------------------------------------------------------------------- loc_17264: cmp word ptr [si+12h], 0 jz short loc_17279 mov word ptr [si+0Ah], 0 mov word ptr [si+0Ch], 0 mov word ptr [si+12h], 0 loc_17279: lea ax, [si+2] push ax call sub_152D2 cmp ax, 0FF80h jle short loc_17290 cmp ax, 1880h jge short loc_17290 cmp dx, 1780h jl short loc_17299 loc_17290: mov byte ptr [si], 2 push si call sub_171C8 jmp short loc_172E8 ; --------------------------------------------------------------------------- loc_17299: cmp dx, 0FF80h jge short loc_172A3 mov word ptr [si+4], 0FF80h loc_172A3: cmp word ptr [si+0Ch], 0 jl short loc_172AE mov word ptr [si+0Ah], 0 loc_172AE: cmp byte_2CEC2, 0 jnz short loc_172E5 mov bx, word ptr dword_2CEA0 add bx, 180h sub bx, ax cmp bx, 300h ja short loc_172E5 mov bx, word ptr dword_2CEA0+2 add bx, 180h sub bx, dx cmp bx, 260h ja short loc_172E5 push si call sub_16F54 push 0Bh call sub_14CEE mov byte ptr [si], 2 jmp short loc_172E8 ; --------------------------------------------------------------------------- loc_172E5: inc word ptr [si+0Ch] loc_172E8: inc di add si, 14h loc_172EC: cmp di, 28h ; '(' jl loc_1721C call sub_17939 mov byte_21762, 0 pop di pop si leave retf sub_1720E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_172FF proc far push bp mov bp, sp mov fp_2C98E, offset nullsub_2 mov fp_2C994, offset nullsub_2 setfarfp farfp_2C990, nullsub_1 mov word_2632E, 0 pop bp retf sub_172FF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_17322 proc far push bp mov bp, sp mov ax, word_2632C cmp ax, word_25FE0 jnz short loc_17352 mov fp_2C98E, offset sub_D032 mov ax, fp_2C99A mov fp_2C994, ax mov eax, farfp_2C996 mov farfp_2C990, eax mov byte_26331, 0 mov word_26332, 0 mov byte_2C98C, 1 loc_17352: pop bp retf sub_17322 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_17354 proc near arg_0 = word ptr 4 arg_2 = word ptr 6 push bp mov bp, sp push si push di mov di, [bp+arg_2] or di, di jg short loc_17364 xor si, si jmp short loc_17389 ; --------------------------------------------------------------------------- loc_17364: cmp di, [bp+arg_0] jl short loc_1736E mov si, 80h jmp short loc_17389 ; --------------------------------------------------------------------------- loc_1736E: movsx eax, di shl eax, 7 movsx ebx, [bp+arg_0] cdq idiv ebx mov si, ax cmp si, 80h jge short loc_17389 inc si loc_17389: cmp word_2268C, si jge short loc_17393 inc word_2268C loc_17393: cmp word_2268C, si jle short loc_1739D mov word_2268C, si loc_1739D: push word_2268C call sub_1065B pop di pop si pop bp retn 4 sub_17354 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_173AC proc near var_4 = word ptr -4 var_2 = word ptr -2 arg_0 = word ptr 4 enter 4, 0 push si push di mov ax, [bp+arg_0] imul ax, 500h movzx eax, ax add dword_2CE1A, eax mov byte_21762, 0 mov ax, word ptr dword_26320 add ax, 0FC00h mov [bp+var_2], ax mov ax, word ptr dword_26320+2 add ax, 0FC00h mov [bp+var_4], ax xor di, di jmp short loc_1740B ; --------------------------------------------------------------------------- loc_173DD: push 800h call sub_157FA add ax, [bp+var_2] mov si, ax or si, si jge short loc_173F0 xor si, si jmp short loc_173F9 ; --------------------------------------------------------------------------- loc_173F0: cmp si, 1800h jle short loc_173F9 mov si, 1800h loc_173F9: push si push 800h call sub_157FA add ax, [bp+var_4] push ax push 500h call sub_1586E inc di loc_1740B: cmp di, [bp+arg_0] jb short loc_173DD pop di pop si leave retn 2 sub_173AC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_17416 proc near var_4 = word ptr -4 var_2 = word ptr -2 arg_0 = word ptr 4 enter 4, 0 push si push di movzx eax, [bp+arg_0] imul eax, 3E8h add dword_2CE1A, eax mov byte_21762, 0 mov ax, word_26335+1 add ax, 0FC00h mov [bp+var_2], ax mov ax, word_26338 add ax, 0FC00h mov [bp+var_4], ax xor di, di jmp short loc_17476 ; --------------------------------------------------------------------------- loc_17448: push 800h call sub_157FA add ax, [bp+var_2] mov si, ax or si, si jge short loc_1745B xor si, si jmp short loc_17464 ; --------------------------------------------------------------------------- loc_1745B: cmp si, 1800h jle short loc_17464 mov si, 1800h loc_17464: push si push 800h call sub_157FA add ax, [bp+var_4] push ax push 3E8h call sub_1586E inc di loc_17476: cmp di, [bp+arg_0] jb short loc_17448 mov byte_229BA, 0 pop di pop si leave retn 2 sub_17416 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_17486 proc near push bp mov bp, sp cmp byte_26331, 0FEh jnz short loc_174C1 cmp word_26332, 1 jnz short loc_174A2 mov word_2CE06, 0Ah mov byte_2C98C, 0 loc_174A2: mov ax, word_26332 mov bx, 10h cwd idiv bx or dx, dx jnz short loc_174C5 inc byte_26330 cmp byte_26330, 0Ch jb short loc_174C5 mov byte_26331, 0FFh pop bp retn ; --------------------------------------------------------------------------- loc_174C1: call sub_172FF loc_174C5: pop bp retn sub_17486 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_174C7 proc near var_2 = word ptr -2 push bp mov bp, sp sub sp, 2 push si push di mov al, byte ptr word_26314 call sub_15A42 mov ah, 0 mov [bp+var_2], ax mov si, 5628h xor di, di jmp short loc_1753F ; --------------------------------------------------------------------------- loc_174E1: cmp byte ptr [si], 0 jnz short loc_1753B mov byte ptr [si], 1 mov word ptr [si+6], 100h mov word ptr [si+8], 100h mov word ptr [si+0Eh], 0 mov ax, word_26318 mov [si+10h], ax mov al, byte_26309 mov [si+1], al mov ax, [bp+var_2] mov [si+0Ch], ax mov byte ptr [si+14h], 6 mov byte ptr [si+0Bh], 6 mov al, byte_26312 mov [si+0Ah], al lea ax, [si+2] push ax push word ptr dword_2630A push word ptr dword_2630A+2 push 80h mov al, byte_26312 mov ah, 0 push ax call sub_14E6C push 5 call sub_14CEE jmp short loc_17544 ; --------------------------------------------------------------------------- loc_1753B: inc di add si, 18h loc_1753F: cmp di, 20h ; ' ' jl short loc_174E1 loc_17544: pop di pop si leave retn sub_174C7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_17548 proc near arg_0 = word ptr 4 push bp mov bp, sp push si mov ax, [bp+arg_0] imul ax, 18h add ax, 5628h mov si, ax cmp byte ptr [si], 0 jnz short loc_1759F mov byte ptr [si], 2 mov eax, dword_2630A mov [si+2], eax mov word ptr [si+6], 100h mov word ptr [si+8], 2260h mov word ptr [si+0Eh], 0 mov ax, word_26318 mov [si+10h], ax mov ax, word_2631A mov [si+12h], ax mov al, byte_26309 mov [si+1], al mov al, byte_26313 mov [si+14h], al mov byte ptr [si+0Bh], 1 mov al, byte_26312 mov [si+0Ah], al push 5 call sub_14CEE loc_1759F: pop si pop bp retn 2 sub_17548 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_175A4 proc near arg_0 = word ptr 4 push bp mov bp, sp push si mov ax, [bp+arg_0] imul ax, 18h add ax, 5628h mov si, ax cmp byte ptr [si], 0 jnz short loc_175F9 mov byte ptr [si], 2 mov eax, dword_2630A mov [si+2], eax mov word ptr [si+6], 100h mov word ptr [si+8], 2260h mov word ptr [si+0Eh], 0 mov word ptr [si+10h], 0FFFFh mov word ptr [si+12h], 0FFFFh mov al, byte_26309 mov [si+1], al mov byte ptr [si+0Bh], 1 mov al, byte_26313 mov [si+14h], al mov al, byte_26312 mov [si+0Ah], al push 5 call sub_14CEE loc_175F9: pop si pop bp retn 2 sub_175A4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_175FE proc near arg_0 = word ptr 4 push bp mov bp, sp push si mov si, [bp+arg_0] mov bx, si imul bx, 18h cmp byte ptr [bx+5628h], 2 jnz short loc_17622 mov bx, si imul bx, 18h mov byte ptr [bx+5628h], 3 push 6 call sub_14CEE loc_17622: pop si pop bp retn 2 sub_175FE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_17627 proc near arg_0 = word ptr 4 push bp mov bp, sp mov ax, [bp+arg_0] mov bx, ax imul bx, 18h cmp byte ptr [bx+5628h], 4 jnz short loc_17647 mov bx, ax imul bx, 18h mov byte ptr [bx+5628h], 5 pop bp retn 2 ; --------------------------------------------------------------------------- loc_17647: mov bx, ax imul bx, 18h cmp byte ptr [bx+5628h], 1 jnz short loc_17661 mov bx, ax imul bx, 18h mov byte ptr [bx+5628h], 7 pop bp retn 2 ; --------------------------------------------------------------------------- loc_17661: mov bx, ax imul bx, 18h cmp byte ptr [bx+5628h], 5 jz short loc_17683 mov bx, ax imul bx, 18h cmp byte ptr [bx+5628h], 7 jz short loc_17683 mov bx, ax imul bx, 18h mov byte ptr [bx+5628h], 0 loc_17683: pop bp retn 2 sub_17627 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_17687 proc near var_4 = word ptr -4 var_2 = word ptr -2 push bp mov bp, sp sub sp, 4 push si push di mov si, 0B2AAh mov [bp+var_4], 0BFC2h mov [bp+var_2], 1 jmp short loc_1771A ; --------------------------------------------------------------------------- loc_1769E: cmp byte ptr [si], 0 jnz short loc_17710 mov bx, [bp+var_4] cmp byte ptr [bx], 0 jnz short loc_17710 mov bx, [bp+var_4] mov byte ptr [bx], 1 mov al, byte ptr word_2BC71 mov [si+1], al mov al, byte_2BC88 mov [si+18h], al lea ax, [si+0Ah] push ax push word ptr [si+1] mov al, [si+18h] mov ah, 0 push ax call sub_158E2 mov bx, [bp+var_4] mov al, byte ptr word_2BC82 mov [bx+1], al push 0 push word ptr [si+1] call sub_159E6 mov ah, 0 mov [si+12h], ax mov eax, dword ptr word_2BC71+1 mov [si+2], eax xor di, di jmp short loc_17709 ; --------------------------------------------------------------------------- loc_176EF: mov bx, di shl bx, 2 add bx, [bp+var_4] mov eax, dword ptr word_2BC71+1 mov [bx+2], eax mov al, [si+12h] mov bx, [bp+var_4] mov [bx+di+42h], al inc di loc_17709: cmp di, 10h jl short loc_176EF jmp short loc_17722 ; --------------------------------------------------------------------------- loc_17710: inc [bp+var_2] add si, 1Ah add [bp+var_4], 52h ; 'R' loc_1771A: cmp [bp+var_2], 8 jl loc_1769E loc_17722: pop di pop si leave retn sub_17687 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_17726 proc near var_6 = byte ptr -6 var_5 = byte ptr -5 var_4 = word ptr -4 var_2 = word ptr -2 push bp mov bp, sp sub sp, 6 push si push di mov si, 0B2AAh mov di, 0BFC2h mov [bp+var_2], 1 jmp loc_178CB ; --------------------------------------------------------------------------- loc_1773C: cmp byte ptr [di], 0 jz loc_178C2 inc word ptr [si+0Eh] mov [bp+var_4], 0Fh jmp short loc_1779C ; --------------------------------------------------------------------------- loc_1774D: mov bx, [bp+var_4] shl bx, 2 mov eax, [bx+di-2] mov bx, [bp+var_4] shl bx, 2 mov [bx+di+2], eax mov bx, [bp+var_4] shl bx, 2 mov ax, [bx+di+2] sub ax, word ptr dword_2CEA0 add ax, 60h cmp ax, 0C0h ja short loc_17790 mov bx, [bp+var_4] shl bx, 2 mov ax, [bx+di+4] sub ax, word ptr dword_2CEA0+2 add ax, 60h cmp ax, 0C0h ja short loc_17790 mov byte_2CEC1, 1 loc_17790: mov bx, [bp+var_4] mov al, [bx+di+41h] mov [bx+di+42h], al dec [bp+var_4] loc_1779C: cmp [bp+var_4], 0 jg short loc_1774D mov eax, [si+2] mov [di+2], eax mov al, [si+12h] mov [di+42h], al cmp word ptr [di+3Eh], 0FF00h jle short loc_177CC cmp word ptr [di+3Eh], 1900h jge short loc_177CC cmp word ptr [di+40h], 0FF00h jle short loc_177CC cmp word ptr [di+40h], 1800h jl short loc_177D5 loc_177CC: mov byte ptr [di], 0 mov byte ptr [si], 0 jmp loc_178C2 ; --------------------------------------------------------------------------- loc_177D5: lea ax, [si+2] push ax call sub_152D2 sub ax, word ptr dword_2CEA0 sub dx, word ptr dword_2CEA0+2 add ax, 80h cmp ax, 100h ja short loc_177FB add dx, 80h cmp dx, 100h ja short loc_177FB mov byte_2CEC1, 1 loc_177FB: cmp byte ptr [di], 1 jnz short loc_17811 dec byte ptr [si+18h] cmp byte ptr [si+18h], 4 ja short loc_1780B inc byte ptr [di] loc_1780B: mov [bp+var_6], 10h jmp short loc_17825 ; --------------------------------------------------------------------------- loc_17811: mov al, [si+18h] add al, byte_25FE2 inc al mov [si+18h], al mov al, [si+18h] add al, 20h ; ' ' mov [bp+var_6], al loc_17825: push word ptr [si+2] push word ptr [si+4] push 0 call sub_15A24 mov dl, [si+1] sub dl, al mov [bp+var_5], dl cmp [bp+var_5], 80h jb short loc_1786E cmp [bp+var_5], 0FEh jnb short loc_17874 mov al, [bp+var_5] mov ah, 0 push ax mov ax, 100h pop dx sub ax, dx mov dl, [bp+var_6] mov dh, 0 push dx cwd pop bx idiv bx mov [bp+var_5], al cmp al, [bp+var_6] jnb short loc_17866 mov [bp+var_5], 1 loc_17866: mov al, [bp+var_5] add [si+1], al jmp short loc_178A5 ; --------------------------------------------------------------------------- loc_1786E: cmp [bp+var_5], 2 ja short loc_17884 loc_17874: push word ptr [si+2] push word ptr [si+4] push 0 call sub_15A24 mov [si+1], al jmp short loc_178A5 ; --------------------------------------------------------------------------- loc_17884: mov al, [bp+var_5] mov ah, 0 mov dl, [bp+var_6] mov dh, 0 push dx cwd pop bx idiv bx mov [bp+var_5], al cmp al, [bp+var_6] jnb short loc_1789F mov [bp+var_5], 1 loc_1789F: mov al, [bp+var_5] sub [si+1], al loc_178A5: lea ax, [si+0Ah] push ax push word ptr [si+1] mov al, [si+18h] mov ah, 0 push ax call sub_158E2 push 0 push word ptr [si+1] call sub_159E6 mov ah, 0 mov [si+12h], ax loc_178C2: inc [bp+var_2] add si, 1Ah add di, 52h ; 'R' loc_178CB: cmp [bp+var_2], 8 jl loc_1773C pop di pop si leave retn sub_17726 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_178D7 proc near push bp mov bp, sp push di mov cx, 28h ; '(' mov ax, ds mov es, ax assume es:dseg xor ax, ax mov di, 0C252h rep stosw mov byte_2CC8C, 0 pop di pop bp retn sub_178D7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_178F1 proc near arg_0 = word ptr 4 arg_2 = word ptr 6 push bp mov bp, sp push si mov al, byte_2CC8C mov ah, 0 imul ax, 0Ah add ax, 0C252h mov si, ax inc byte_2CC8C cmp byte_2CC8C, 8 jb short loc_17912 mov byte_2CC8C, 0 loc_17912: cmp byte ptr [si], 0 jnz short loc_17934 mov byte ptr [si], 1 mov ax, [bp+arg_2] mov [si+2], ax mov ax, [bp+arg_0] mov [si+4], ax mov word ptr [si+6], 20h ; ' ' mov byte ptr [si+1], 10h mov word ptr [si+8], 20h ; ' ' loc_17934: pop si pop bp retn 4 sub_178F1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_17939 proc near push bp mov bp, sp push si mov si, 0C252h xor dx, dx jmp short loc_1796B ; --------------------------------------------------------------------------- loc_17944: cmp byte ptr [si], 0 jz short loc_17967 cmp byte ptr [si], 2 jnz short loc_17953 mov byte ptr [si], 0 jmp short loc_17967 ; --------------------------------------------------------------------------- loc_17953: mov ax, [si+6] mov [si+8], ax add word ptr [si+6], 20h ; ' ' cmp word ptr [si+6], 200h jl short loc_17967 mov byte ptr [si], 2 loc_17967: inc dx add si, 0Ah loc_1796B: cmp dx, 8 jl short loc_17944 pop si pop bp retn sub_17939 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_17973 proc near var_1 = byte ptr -1 arg_0 = word ptr 4 push bp mov bp, sp sub sp, 2 push si mov si, [bp+arg_0] cmp word ptr [si+18h], 34h ; '4' jl short loc_179BC cmp word ptr [si+18h], 44h ; 'D' jge short loc_1798F mov [bp+var_1], 34h ; '4' jmp short loc_179AB ; --------------------------------------------------------------------------- loc_1798F: cmp word ptr [si+18h], 54h ; 'T' jge short loc_1799B mov [bp+var_1], 44h ; 'D' jmp short loc_179AB ; --------------------------------------------------------------------------- loc_1799B: cmp word ptr [si+18h], 74h ; 't' jge short loc_179A7 mov [bp+var_1], 54h ; 'T' jmp short loc_179AB ; --------------------------------------------------------------------------- loc_179A7: mov [bp+var_1], 74h ; 't' loc_179AB: mov al, [bp+var_1] mov ah, 0 push ax push word ptr [si+11h] call sub_159E6 mov ah, 0 mov [si+18h], ax loc_179BC: pop si leave retn 2 sub_17973 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_179C1 proc near arg_0 = word ptr 4 push bp mov bp, sp push si mov si, [bp+arg_0] inc byte ptr [si+16h] mov al, 80h sub al, [si+11h] mov [si+11h], al mov al, [si+16h] cmp al, byte_2C976 jb short loc_179E0 mov byte ptr [si+13h], 2 loc_179E0: lea ax, [si+0Ah] push ax push word ptr [si+11h] mov al, [si+10h] mov ah, 0 push ax call sub_158E2 push si call sub_17973 pop si pop bp retn 2 sub_179C1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_179F9 proc near arg_0 = word ptr 4 push bp mov bp, sp push si mov si, [bp+arg_0] inc byte ptr [si+16h] mov al, [si+11h] neg al mov [si+11h], al mov al, [si+16h] cmp al, byte_2C976 jb short loc_17A18 mov byte ptr [si+13h], 2 loc_17A18: lea ax, [si+0Ah] push ax push word ptr [si+11h] mov al, [si+10h] mov ah, 0 push ax call sub_158E2 push si call sub_17973 pop si pop bp retn 2 sub_179F9 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_17A31 proc near arg_0 = word ptr 4 push bp mov bp, sp push si mov si, [bp+arg_0] mov al, [si+14h] mov ah, 0 dec ax mov bx, ax cmp bx, 9 ja loc_17BEB add bx, bx jmp cs:off_17BF0[bx] loc_17A4E: cmp byte ptr [si+10h], 0 jz short loc_17A56 jmp short loc_17A8D ; --------------------------------------------------------------------------- loc_17A56: inc byte ptr [si+16h] mov ax, word ptr dword_2CEA0+2 sub ax, [si+4] push ax mov ax, word ptr dword_2CEA0 sub ax, [si+2] push ax call iatan2 mov [si+11h], al push si call sub_17973 mov al, [si+15h] mov [si+10h], al mov al, [si+16h] cmp al, byte_2C976 jb loc_17B32 jmp loc_17B2E ; --------------------------------------------------------------------------- loc_17A87: cmp byte ptr [si+10h], 0 jz short loc_17AA3 loc_17A8D: lea ax, [si+0Ah] push ax push word ptr [si+11h] mov al, [si+10h] mov ah, 0 push ax call sub_158E2 dec byte ptr [si+10h] jmp loc_17BEB ; --------------------------------------------------------------------------- loc_17AA3: inc byte ptr [si+16h] mov al, [si+17h] add [si+11h], al push si call sub_17973 mov al, [si+15h] mov [si+10h], al mov al, [si+16h] cmp al, byte_2C976 jb short loc_17B32 jmp short loc_17B2E ; --------------------------------------------------------------------------- loc_17AC1: lea ax, [si+0Ah] push ax push word ptr [si+11h] mov al, [si+10h] mov ah, 0 push ax call sub_158E2 mov al, byte_2C976 add [si+10h], al jmp loc_17BEB ; --------------------------------------------------------------------------- loc_17ADA: cmp byte ptr [si+10h], 0 jz short loc_17B22 lea ax, [si+0Ah] push ax push word ptr [si+11h] mov al, [si+10h] mov ah, 0 push ax call sub_158E2 cmp byte ptr [si+10h], 1 jbe short loc_17B00 mov al, [si+10h] add al, 0FEh mov [si+10h], al jmp short loc_17B04 ; --------------------------------------------------------------------------- loc_17B00: mov byte ptr [si+10h], 0 loc_17B04: cmp byte ptr [si+10h], 20h ; ' ' jnb loc_17BEB mov al, [si+17h] sub al, [si+11h] cbw mov bx, 4 cwd idiv bx add al, [si+11h] mov [si+11h], al jmp loc_17BEB ; --------------------------------------------------------------------------- loc_17B22: mov al, [si+17h] mov [si+11h], al mov al, [si+15h] mov [si+10h], al loc_17B2E: mov byte ptr [si+13h], 2 loc_17B32: lea ax, [si+0Ah] push ax push word ptr [si+11h] mov al, [si+10h] mov ah, 0 push ax call sub_158E2 jmp loc_17BEB ; --------------------------------------------------------------------------- loc_17B45: cmp word ptr [si+2], 0 jle short loc_17B54 cmp word ptr [si+2], 1800h jl loc_17BEB loc_17B54: push si call sub_179C1 jmp loc_17BEB ; --------------------------------------------------------------------------- loc_17B5B: cmp word ptr [si+4], 0 jle short loc_17BA3 cmp word ptr [si+4], 1700h jl loc_17BEB jmp short loc_17BA3 ; --------------------------------------------------------------------------- loc_17B6C: cmp word ptr [si+2], 0 jle short loc_17B79 cmp word ptr [si+2], 1800h jl short loc_17B7D loc_17B79: push si call sub_179C1 loc_17B7D: cmp word ptr [si+4], 0 jle short loc_17BA3 cmp word ptr [si+4], 1700h jl short loc_17BEB jmp short loc_17BA3 ; --------------------------------------------------------------------------- loc_17B8C: cmp word ptr [si+2], 0 jle short loc_17B99 cmp word ptr [si+2], 1800h jl short loc_17B9D loc_17B99: push si call sub_179C1 loc_17B9D: cmp word ptr [si+4], 0 jg short loc_17BEB loc_17BA3: push si call sub_179F9 jmp short loc_17BEB ; --------------------------------------------------------------------------- loc_17BA9: cmp byte_25FE2, 0 jz short loc_17BEB mov al, byte_2C976 mov ah, 0 add [si+0Ch], ax jmp short loc_17BEB ; --------------------------------------------------------------------------- loc_17BBA: mov al, [si+10h] mov ah, 0 add [si+1Eh], ax push 48FEh push word ptr [si+1Ah] push word ptr [si+1Ch] push word ptr [si+1Eh] mov al, [si+11h] mov ah, 0 push ax call sub_14E6C mov ax, word ptr dword_252DE sub ax, [si+2] mov [si+0Ah], ax mov ax, word ptr dword_252DE+2 sub ax, [si+4] mov [si+0Ch], ax loc_17BEB: pop si pop bp retn 2 sub_17A31 endp ; --------------------------------------------------------------------------- off_17BF0 dw offset loc_17A4E dw offset loc_17A87 dw offset loc_17AC1 dw offset loc_17ADA dw offset loc_17B45 dw offset loc_17B5B dw offset loc_17B6C dw offset loc_17B8C dw offset loc_17BA9 dw offset loc_17BBA ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_17C04 proc far 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 push bp mov bp, sp sub sp, 0Ah push si push di mov [bp+var_2], 0 mov word_2CDF8, 0 mov word_2C97E, 0 mov si, 8FA6h cmp byte_2C978, 0 jnz loc_17EC3 xor di, di jmp loc_17E78 ; --------------------------------------------------------------------------- loc_17C2E: cmp byte ptr [si], 0 jz loc_17E74 cmp byte ptr [si], 2 jnz short loc_17C40 mov byte ptr [si], 0 jmp loc_17E74 ; --------------------------------------------------------------------------- loc_17C40: inc [bp+var_2] cmp byte_2C979, 0 jz short loc_17CA3 cmp byte ptr [si+13h], 4 jnb short loc_17C7B mov byte ptr [si+13h], 4 cmp di, 0DCh jge short loc_17C5F mov ax, 0A0h jmp short loc_17C62 ; --------------------------------------------------------------------------- loc_17C5F: mov ax, 9Ch loc_17C62: mov [si+18h], ax cmp byte ptr [si+1], 0 jz short loc_17C73 add dword_2CE1A, 64h ; 'd' jmp short loc_17CA3 ; --------------------------------------------------------------------------- loc_17C73: add dword_2CE1A, 0Ah jmp short loc_17CA3 ; --------------------------------------------------------------------------- loc_17C7B: inc byte ptr [si+13h] cmp byte ptr [si+13h], 14h jb short loc_17C91 lea ax, [si+2] push ax call sub_152D2 mov byte ptr [si], 2 jmp loc_17E74 ; --------------------------------------------------------------------------- loc_17C91: mov al, [si+13h] mov ah, 0 mov bx, 4 cwd idiv bx or dx, dx jnz short loc_17CA3 inc word ptr [si+18h] loc_17CA3: inc byte ptr [si+1] cmp byte ptr [si+12h], 2 jb loc_17D56 cmp byte ptr [si+12h], 2 jnz short loc_17CBB mov byte ptr [si+12h], 0 jmp loc_17D56 ; --------------------------------------------------------------------------- loc_17CBB: cmp byte ptr [si+12h], 3 jnz short loc_17CE1 mov eax, [si+2] mov [si+6], eax mov ax, [si+0Ah] shl ax, 3 sub [si+2], ax mov ax, [si+0Ch] shl ax, 3 sub [si+4], ax mov byte ptr [si+12h], 4 jmp short loc_17D0D ; --------------------------------------------------------------------------- loc_17CE1: cmp byte ptr [si+12h], 4 jnz short loc_17CF0 lea ax, [si+2] push ax call sub_152D2 jmp short loc_17D0D ; --------------------------------------------------------------------------- loc_17CF0: mov eax, [si+2] mov [si+6], eax mov ax, [si+0Ah] mov bx, 3 cwd idiv bx add [si+2], ax mov ax, [si+0Ch] cwd idiv bx add [si+4], ax loc_17D0D: inc byte ptr [si+12h] cmp byte ptr [si+12h], 14h jb short loc_17D3D cmp word ptr [si+4], 0FF80h jl short loc_17D30 cmp word ptr [si+4], 1780h jge short loc_17D30 cmp word ptr [si+2], 0FF80h jl short loc_17D30 cmp word ptr [si+2], 1880h jl short loc_17D36 loc_17D30: mov byte ptr [si], 2 jmp loc_17E74 ; --------------------------------------------------------------------------- loc_17D36: mov byte ptr [si+12h], 2 jmp loc_17E74 ; --------------------------------------------------------------------------- loc_17D3D: cmp di, 0DCh jl loc_17E74 mov bx, word_2CDF8 add bx, bx mov [bx-3D50h], si inc word_2CDF8 jmp loc_17E74 ; --------------------------------------------------------------------------- loc_17D56: cmp byte ptr [si+13h], 1 jnz short loc_17D62 push si call sub_17A31 jmp short loc_17DA3 ; --------------------------------------------------------------------------- loc_17D62: cmp byte ptr [si+13h], 0 jnz short loc_17DA3 dec byte ptr [si+16h] mov al, [si+16h] mov ah, 0 mov dl, [si+17h] mov dh, 0 imul dx mov bx, 20h ; ' ' cwd idiv bx add al, [si+15h] mov [si+10h], al cmp byte ptr [si+16h], 0 jnz short loc_17D93 mov al, [si+15h] mov [si+10h], al mov byte ptr [si+13h], 2 loc_17D93: lea ax, [si+0Ah] push ax push word ptr [si+11h] mov al, [si+10h] mov ah, 0 push ax call sub_158E2 loc_17DA3: lea ax, [si+2] push ax call sub_152D2 cmp ax, 0FF80h jle short loc_17DBF cmp ax, 1880h jge short loc_17DBF cmp dx, 0FF80h jle short loc_17DBF cmp dx, 1780h jl short loc_17DC5 loc_17DBF: mov byte ptr [si], 2 jmp loc_17E74 ; --------------------------------------------------------------------------- loc_17DC5: cmp byte_2C979, 0 jnz loc_17E74 sub ax, word ptr dword_2CEA0 sub dx, word ptr dword_2CEA0+2 cmp byte_2CEBC, 0 jnz short loc_17E41 cmp byte ptr [si+12h], 0 jz short loc_17DFE add ax, 40h cmp ax, 80h ja short loc_17E41 add dx, 40h cmp dx, 80h ja short loc_17E41 mov byte ptr [si], 2 mov byte_2CEC1, 1 jmp short loc_17E74 ; --------------------------------------------------------------------------- loc_17DFE: add ax, 100h cmp ax, 240h ja short loc_17E41 add dx, 160h cmp dx, 2C0h ja short loc_17E41 push word ptr [si+2] push word ptr [si+4] push 200002h nopcall sub_1591A mov byte ptr [si+12h], 1 cmp word_2C97A, 3E7h jnb short loc_17E41 inc word_2C97A call sub_1060E movzx eax, word_2C97C add dword_2CE1A, eax loc_17E41: cmp di, 0DCh jl short loc_17E74 mov ax, [si+2] sar ax, 4 add ax, 1Ch mov bx, word_2C97E shl bx, 2 mov [bx-703Ah], ax mov ax, [si+4] add ax, 0C0h push ax call sub_15288 mov bx, word_2C97E shl bx, 2 mov [bx-7038h], ax inc word_2C97E loc_17E74: inc di sub si, 20h ; ' ' loc_17E78: cmp di, 190h jl loc_17C2E cmp byte_25FF2, 0 jnz loc_17FB7 mov byte_25FF8, 0 mov di, 2Ah ; '*' mov al, byte_25FEB mov ah, 0 shl ax, 3 add di, ax cmp [bp+var_2], di jl short loc_17EAB cmp byte_25FE2, 0 jnz loc_17FB7 jmp short loc_17EB5 ; --------------------------------------------------------------------------- loc_17EAB: lea ax, [di+20h] cmp ax, [bp+var_2] jg loc_17FB7 loc_17EB5: mov word_25FE6, 2 mov byte_25FF8, 1 jmp loc_17FB7 ; --------------------------------------------------------------------------- loc_17EC3: mov al, byte_2C978 mov ah, 0 mov bx, 4 cwd idiv bx add al, 98h mov [bp+var_9], al mov [bp+var_4], 1 mov [bp+var_6], 1 cmp byte_25FEB, 4 jnz short loc_17EE9 mov ax, 640h jmp short loc_17EFA ; --------------------------------------------------------------------------- loc_17EE9: push 3C00500h push 5000500h call sub_E758 loc_17EFA: mov [bp+var_8], ax mov dword_2CE8E, 0 xor di, di jmp loc_17F8D ; --------------------------------------------------------------------------- loc_17F0B: cmp byte ptr [si], 1 jnz short loc_17F89 mov word ptr [si+0Ah], 0 mov word ptr [si+0Ch], 0 lea ax, [si+2] push ax call sub_152D2 cmp [bp+var_9], 4Ch ; 'L' jnb short loc_17F31 mov al, [bp+var_9] mov ah, 0 mov [si+18h], ax jmp short loc_17F86 ; --------------------------------------------------------------------------- loc_17F31: movzx eax, [bp+var_4] add dword_2CE8E, eax add dword_2CE1A, eax push word ptr [si+2] push word ptr [si+4] push [bp+var_4] call sub_15888 mov ax, [bp+var_6] add [bp+var_4], ax add [bp+var_6], 3 mov ax, [bp+var_4] cmp ax, [bp+var_8] jbe short loc_17F64 mov ax, [bp+var_8] mov [bp+var_4], ax loc_17F64: mov byte ptr [si], 2 cmp byte_226C0, 0 jz short loc_17F86 mov ax, [bp+var_2] mov bx, 4 cwd idiv bx or dx, dx jnz short loc_17F86 push word ptr [si+2] push word ptr [si+4] push 1 call sub_16D84 loc_17F86: inc [bp+var_2] loc_17F89: inc di sub si, 20h ; ' ' loc_17F8D: cmp di, 190h jl loc_17F0B cmp dword_2CE8E, 0 jz short loc_17FA8 mov byte_2CE87, 2 mov fp_2CE8A, offset sub_11DEA loc_17FA8: inc byte_2C978 cmp [bp+var_9], 4Ch ; 'L' jb short loc_17FB7 mov byte_2C978, 0 loc_17FB7: cmp byte_2C979, 0 jz short loc_17FC2 dec byte_2C979 loc_17FC2: pop di pop si leave retf sub_17C04 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_17FC6 proc near push bp mov bp, sp mov ax, word ptr dword_26320 mov word ptr dword_26324, ax mov ax, word ptr dword_26320+2 mov word ptr dword_26324+2, ax push 0C00h push word_26328 mov al, byte ptr word_26335 mov ah, 0 add ax, ax mov bx, ax push word ptr [bx+4AEh] call sub_14E50 mov word ptr dword_26320, ax push 600h push word_26328 mov al, byte ptr word_26335 mov ah, 0 add ax, ax mov bx, ax push word ptr [bx+42Eh] call sub_14E50 mov word ptr dword_26320+2, ax mov al, byte ptr word_26335 add al, 0FEh mov byte ptr word_26335, al pop bp retn sub_17FC6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_18017 proc near push bp mov bp, sp push si mov si, 10h cmp word_2632E, 0C8h jg short loc_18029 mov si, 0Ch loc_18029: mov ax, word_26332 cwd idiv si or dx, dx jnz loc_180BC mov byte ptr word_25FFA, 0 mov byte ptr word_25FFA+1, 0 mov byte ptr word_26006+1, 20h ; ' ' mov byte_26000, 2 mov byte_26001, 0Ah mov word ptr dword_26002, 204h mov al, byte ptr word_2634A mov byte ptr word_26006, al add al, 14h mov byte ptr word_2634A, al call fp_25344 call sub_15A70 mov byte_26000, 0 mov byte ptr word_25FFA, 2 mov byte ptr word_26006+1, 18h mov byte ptr word_25FFA+1, 2Ch ; ',' call fp_25344 call sub_157D6 mov byte ptr word_26006, al push word ptr dword_26320 push 200h mov ah, 0 add ax, ax mov bx, ax push word ptr [bx+4AEh] call sub_14E50 mov word ptr dword_25FFC, ax push word ptr dword_26320+2 push 200h mov al, byte ptr word_26006 mov ah, 0 add ax, ax mov bx, ax push word ptr [bx+42Eh] call sub_14E50 mov word ptr dword_25FFC+2, ax call sub_15A5C loc_180BC: pop si pop bp retn sub_18017 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_180BF proc far push bp mov bp, sp mov eax, dword_26320 mov dword_25FFC, eax inc word_26332 mov al, byte_26331 mov ah, 0 mov bx, ax cmp bx, 3 ja loc_181B5 add bx, bx jmp cs:off_181DD[bx] loc_180E3: cmp word_26332, 100h jl loc_181C4 inc byte_26331 mov word_26332, 0 mov byte_26330, 0CCh jmp loc_181C4 ; --------------------------------------------------------------------------- loc_180FF: push 0C000C0h push 0Ah call sub_1FA9D cmp word_26332, 40h jl loc_181C4 inc byte_26331 mov word_26332, 0 mov word_26328, 0 mov byte ptr word_2634A, 0E0h jmp loc_181C4 ; --------------------------------------------------------------------------- loc_1812B: call sub_18017 push 1800180h push 4 call sub_1FA9D mov byte_26334, al mov ah, 0 sub word_2632E, ax mov ax, 3E8h sub ax, word_2632E cwde shl eax, 6 shl eax, 4 mov ebx, 3E8h xor edx, edx div ebx mov word_26328, ax call sub_17FC6 cmp word_26332, 5DCh jge short loc_1818B cmp word_2632E, 0 jg short loc_181C4 mov byte_2C978, 1 push 5 call sub_173AC push word ptr dword_26320 push word ptr dword_26320+2 push 3 call sub_16D84 loc_1818B: mov byte_26331, 0FEh mov byte_26330, 4 mov word_26332, 0 push word ptr dword_26320 push word ptr dword_26320+2 push 800030h call sub_1597C push 0Ch call sub_14CEE jmp short loc_181C4 ; --------------------------------------------------------------------------- loc_181B5: call sub_17486 push word_2632E push 3E8h call sub_17354 pop bp retf ; --------------------------------------------------------------------------- loc_181C4: push word_2632E push 3E8h call sub_17354 mov ax, word ptr dword_26320 mov word ptr dword_2C922, ax mov ax, word ptr dword_26320+2 mov word ptr dword_2C922+2, ax pop bp retf sub_180BF endp ; --------------------------------------------------------------------------- db 0 off_181DD dw offset loc_180E3 dw offset loc_180FF dw offset loc_180FF dw offset loc_1812B ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_181E5 proc near push bp mov bp, sp cmp word_26346, 10h jge short loc_1821C mov ax, word_26346 dec ax push ax push 90008h call sub_16A6B cmp word_26346, 1 jnz short loc_18239 push 8 call sub_14CEE mov byte_2D085, 80h mov byte_2D084, 0 mov byte_2D083, 8 pop bp retn ; --------------------------------------------------------------------------- loc_1821C: mov ax, word_26346 add ax, 0FFF0h push ax call sub_16BD9 or al, al jz short loc_18235 mov word_26346, 0 mov byte_26349, 0 loc_18235: call fp_2CE24 loc_18239: pop bp retn sub_181E5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1823B proc near push bp mov bp, sp mov ax, word_26346 mov bx, 2 cwd idiv bx or dx, dx jnz short loc_18274 mov byte ptr word_25FFA, 2 mov byte ptr word_25FFA+1, 2Ch ; ',' mov byte_26000, 0 mov al, byte_2D085 mov byte ptr word_26006, al mov byte ptr word_26006+1, 18h call fp_25344 call sub_15A5C mov al, byte_2D085 add al, 0F6h mov byte_2D085, al loc_18274: pop bp retn sub_1823B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_18276 proc near push bp mov bp, sp mov ax, word_26346 mov bx, 2 cwd idiv bx or dx, dx jnz short loc_182AF mov byte ptr word_25FFA, 2 mov byte ptr word_25FFA+1, 2Ch ; ',' mov byte_26000, 0 mov al, byte_2D084 mov byte ptr word_26006, al mov byte ptr word_26006+1, 18h call fp_25344 call sub_15A5C mov al, byte_2D084 add al, 0Ah mov byte_2D084, al loc_182AF: pop bp retn sub_18276 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_182B1 proc near push bp mov bp, sp cmp word_26346, 20h ; ' ' jnz short loc_182EB mov byte ptr word_25FFA, 12h mov byte ptr word_25FFA+1, 30h ; '0' mov byte_26000, 9 mov byte ptr word_26006, 0 mov dword_26002, 7051005h mov byte ptr word_26006+1, 10h call fp_25344 call sub_15A5C push 0Fh call sub_14CEE loc_182EB: pop bp retn sub_182B1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_182ED proc near push bp mov bp, sp mov ax, word_26346 mov bx, 8 cwd idiv bx or dx, dx jnz short loc_18339 mov byte ptr word_25FFA, 12h mov byte ptr word_25FFA+1, 30h ; '0' mov byte_26000, 6 mov al, byte ptr word_2634A add al, byte_2D083 add al, 80h mov byte ptr word_26006, al mov word ptr dword_26002+2, 608h mov byte ptr word_26006+1, 10h call fp_25344 call sub_15A5C mov al, byte_2D083 add al, 0F8h mov byte_2D083, al push 0Fh call sub_14CEE loc_18339: pop bp retn sub_182ED endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1833B proc near push bp mov bp, sp cmp word_26346, 20h ; ' ' jge short loc_1837B mov ax, word_26346 add ax, 0FFF0h push ax push 90008h call sub_16A6B cmp word_26346, 10h jnz loc_183F3 push 8 call sub_14CEE mov byte_26344, 0BCh mov byte_2D085, 38h ; '8' mov byte_2D084, 48h ; 'H' mov byte_2D083, 18h pop bp retn ; --------------------------------------------------------------------------- loc_1837B: cmp word_26346, 40h jl short loc_183C4 cmp word_26346, 60h jge short loc_18398 mov ax, word_26346 mov bx, 2 cwd idiv bx or dx, dx jnz short loc_183C8 jmp short loc_183C4 ; --------------------------------------------------------------------------- loc_18398: cmp word_26346, 80h jge short loc_183AF mov ax, word_26346 mov bx, 4 cwd idiv bx or dx, dx jnz short loc_183C8 jmp short loc_183C4 ; --------------------------------------------------------------------------- loc_183AF: cmp word_26346, 0A0h jge short loc_183C8 mov ax, word_26346 mov bx, 8 cwd idiv bx or dx, dx jnz short loc_183C8 loc_183C4: inc byte_26344 loc_183C8: cmp byte_26344, 0C0h jb short loc_183D4 mov byte_26344, 0BCh loc_183D4: call fp_2CE24 mov al, byte_2D07F mov ah, 0 cmp ax, word_26346 jg short loc_183F3 mov word_26346, 0 mov byte_26349, 0 mov byte_26344, 0B4h loc_183F3: pop bp retn sub_1833B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_183F5 proc near push bp mov bp, sp mov ax, word_26346 mov bx, 8 cwd idiv bx or dx, dx jnz short loc_1847B mov byte ptr word_25FFA, 10h mov byte ptr word_25FFA+1, 0 mov byte_26000, 2 mov ax, word_26346 add ax, ax push ax call sub_157FA sub al, byte ptr word_26346 add al, 40h mov byte ptr word_26006, al mov word ptr dword_26002, 303h mov byte_26001, 0Ah push 1Fh call sub_157E4 add al, 10h mov byte ptr word_26006+1, al call fp_25344 call sub_15A70 mov byte ptr word_25FFA, 3 mov byte ptr word_25FFA+1, 2Ch ; ',' mov byte_26000, 0 mov ax, word_26346 add ax, ax push ax call sub_157FA sub al, byte ptr word_26346 add al, 40h mov byte ptr word_26006, al push 1Fh call sub_157E4 add al, 18h mov byte ptr word_26006+1, al call fp_25344 call sub_15A5C push 3 call sub_14CEE loc_1847B: pop bp retn sub_183F5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1847D proc near push bp mov bp, sp mov ax, word_26346 mov bx, 10h cwd idiv bx or dx, dx jnz short loc_184BA mov byte ptr word_25FFA, 2 mov byte ptr word_25FFA+1, 30h ; '0' mov byte_26000, 4 call sub_157D6 mov byte ptr word_26006, al mov byte ptr word_26006+1, 20h ; ' ' mov byte ptr dword_26002, 0Ch call fp_25344 call sub_15A5C push 3 call sub_14CEE loc_184BA: pop bp retn sub_1847D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_184BC proc near push bp mov bp, sp mov ax, word_26346 mov bx, 8 cwd idiv bx or dx, dx jnz short loc_18524 mov byte ptr word_25FFA, 0 mov byte_26000, 4 mov byte ptr dword_26002, 3 mov byte ptr word_25FFA+1, 2Ch ; ',' mov al, byte_2D085 mov byte ptr word_26006, al mov al, byte_2D083 mov byte ptr word_26006+1, al mov ax, word_26346 mov bx, 10h cwd idiv bx or dx, dx jnz short loc_18506 mov al, byte ptr word_26006+1 mov ah, 0 cwd sub ax, dx sar ax, 1 mov byte ptr word_26006+1, al loc_18506: call fp_25344 call sub_15A5C push 3 call sub_14CEE mov al, byte_2D085 add al, 6 mov byte_2D085, al mov al, byte_2D083 add al, 4 mov byte_2D083, al loc_18524: pop bp retn sub_184BC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_18526 proc near push bp mov bp, sp mov ax, word_26346 mov bx, 8 cwd idiv bx or dx, dx jnz short loc_1858E mov byte ptr word_25FFA, 0 mov byte_26000, 4 mov byte ptr dword_26002, 3 mov byte ptr word_25FFA+1, 2Ch ; ',' mov al, byte_2D084 mov byte ptr word_26006, al mov al, byte_2D083 mov byte ptr word_26006+1, al mov ax, word_26346 mov bx, 10h cwd idiv bx or dx, dx jnz short loc_18570 mov al, byte ptr word_26006+1 mov ah, 0 cwd sub ax, dx sar ax, 1 mov byte ptr word_26006+1, al loc_18570: call fp_25344 call sub_15A5C push 3 call sub_14CEE mov al, byte_2D084 add al, 0FAh mov byte_2D084, al mov al, byte_2D083 add al, 4 mov byte_2D083, al loc_1858E: pop bp retn sub_18526 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_18590 proc near push bp mov bp, sp cmp word_26346, 1 jnz short loc_1859F mov byte_26344, 0BCh loc_1859F: cmp word_26346, 20h ; ' ' jnz short loc_185DD mov eax, dword ptr word_26335+1 mov dword_2630A, eax mov byte_26312, 0E0h mov byte_26309, 8 mov byte_26313, 8 push 0 call sub_175A4 mov byte_26312, 0A0h push 1 call sub_175A4 mov byte_2D085, 0 mov byte_2D084, 1 mov byte_2D083, 1 pop bp retn ; --------------------------------------------------------------------------- loc_185DD: cmp word_26346, 20h ; ' ' jle loc_186B4 cmp word_26346, 40h jnz short loc_185F7 push 0 call sub_175FE push 1 call sub_175FE loc_185F7: mov al, byte_2D083 mov ah, 0 push ax mov ax, word_26346 cwd pop bx idiv bx or dx, dx jnz short loc_1863F cmp byte_2602A, 4Ah ; 'J' jbe short loc_1863F mov al, byte_26012 inc al mov byte_26012, al mov al, byte_2602A add al, 0FFh mov byte_2602A, al cmp byte_2602A, 80h jz short loc_1863B cmp byte_2602A, 60h jz short loc_1863B cmp byte_2602A, 58h ; 'X' jz short loc_1863B cmp byte_2602A, 50h ; 'P' jnz short loc_1863F loc_1863B: inc byte_2D083 loc_1863F: cmp byte_25FE5, 0 jnz short loc_1869C mov byte ptr word_25FFA, 10h mov al, byte_2D085 mov byte ptr word_26006, al mov byte_26000, 2 mov byte_26001, 0Ah push 1050106h push 1070108h call sub_E758 mov word ptr dword_26002, ax mov byte ptr word_26006+1, 20h ; ' ' mov byte ptr word_25FFA+1, 0 call sub_15A70 mov byte_26000, 0Dh mov byte ptr word_26006+1, 10h mov al, byte_2D084 mov byte ptr dword_26002, al mov byte ptr word_25FFA+1, 2Ch ; ',' call sub_15A5C mov al, byte_2D085 add al, 0Eh mov byte_2D085, al loc_1869C: mov ax, word_26346 mov bx, 40h cwd idiv bx or dx, dx jnz short loc_186B4 cmp byte_2D084, 8 jnb short loc_186B4 inc byte_2D084 loc_186B4: pop bp retn sub_18590 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_186B6 proc far push bp mov bp, sp mov ax, word_26335+1 mov word ptr dword_2C922, ax mov ax, word_26338 mov word ptr dword_2C922+2, ax inc word_26346 mov byte ptr word_25FFA, 0 mov eax, dword ptr word_26335+1 mov dword_25FFC, eax mov dword_2A722, eax mov al, byte_26345 mov ah, 0 mov bx, ax cmp bx, 4 ja loc_188E9 add bx, bx jmp cs:off_188FB[bx] loc_186EF: cmp word_26346, 1 jnz short loc_18702 mov word_26342, 122Ah mov word_2634C, 9F6h loc_18702: call sub_1FB07 cmp word_26346, 0E0h jl short loc_1874E cmp word_26346, 0E0h jnz short loc_18737 mov ax, word_26335+1 mov word ptr dword_2A722, ax mov ax, word_26338 mov word ptr dword_2A722+2, ax mov word_2A72A, 1400h mov word_2A72C, 20h ; ' ' mov byte_2A72F, 3 mov byte_2A72E, 9 loc_18737: test byte ptr word_26346, 7 jnz short loc_18741 call sub_16A03 loc_18741: cmp word_26346, 0E0h jnz short loc_1874E mov byte_2A72E, 8 loc_1874E: cmp word_26346, 100h jl loc_188EE mov word_2A72A, 400h mov byte_2A72F, 2 mov word_2A72C, 8 inc byte_26345 mov word_26346, 0 push 0Dh call sub_14CEE loc_1877A: mov fp_23F5A, offset sub_D08C jmp loc_188EE ; --------------------------------------------------------------------------- loc_18783: call sub_1FB07 cmp word_26346, 20h ; ' ' jl loc_188EE inc byte_26345 mov word_26346, 0 mov byte_26349, 0 mov byte ptr word_2634A+1, 0 mov byte_2D080, 0FFh mov byte_2D07F, 40h jmp short loc_1877A ; --------------------------------------------------------------------------- loc_187AF: mov al, byte_26349 mov ah, 0 or ax, ax jz short loc_187BA jmp short loc_18800 ; --------------------------------------------------------------------------- loc_187BA: mov al, byte_2D07F mov ah, 0 mov dx, word_26346 sub dx, ax push dx call sub_16BD9 or al, al jz short loc_18819 mov word_26346, 0 inc byte ptr word_2634A+1 cmp byte ptr word_2634A+1, 20h ; ' ' jnb short loc_18827 loc_187DE: push 4 call sub_157FA inc al mov byte_26349, al cmp al, byte_2D080 jz short loc_187DE mov byte_2D080, al mov ah, 0 add ax, ax mov bx, ax mov ax, off_22758[bx-2] mov fp_2CE24, ax jmp short loc_18819 ; --------------------------------------------------------------------------- loc_18800: call sub_181E5 cmp word_26346, 0 jnz short loc_18819 cmp byte_2D07F, 0Ch jbe short loc_18819 mov al, byte_2D07F add al, 0F4h mov byte_2D07F, al loc_18819: call sub_1FADD or al, al jz loc_188EE push 5 call sub_17416 loc_18827: push 101C2h call sub_1FB6E mov byte_2D07F, 50h ; 'P' jmp loc_188EE ; --------------------------------------------------------------------------- loc_18838: mov al, byte_26349 mov ah, 0 or ax, ax jz short loc_18843 jmp short loc_18884 ; --------------------------------------------------------------------------- loc_18843: mov ax, word_26346 add ax, 0FFF0h push ax call sub_16BD9 or al, al jz short loc_1889D mov word_26346, 0 inc byte ptr word_2634A+1 cmp byte ptr word_2634A+1, 18h jnb short loc_188A9 loc_18862: push 4 call sub_157FA inc al mov byte_26349, al cmp al, byte_2D080 jz short loc_18862 mov byte_2D080, al mov ah, 0 add ax, ax mov bx, ax mov ax, off_2275E[bx] mov fp_2CE24, ax jmp short loc_1889D ; --------------------------------------------------------------------------- loc_18884: call sub_1833B cmp word_26346, 0 jnz short loc_1889D cmp byte_2D07F, 0B4h jnb short loc_1889D mov al, byte_2D07F add al, 18h mov byte_2D07F, al loc_1889D: call sub_1FADD or al, al jz short loc_188EE push 5 call sub_17416 loc_188A9: push 20000h call sub_1FB6E jmp short loc_188EE ; --------------------------------------------------------------------------- loc_188B4: call sub_18590 cmp word_26346, 514h jl short loc_188C6 mov byte ptr word_2634A+1, 0 jmp short loc_188D2 ; --------------------------------------------------------------------------- loc_188C6: call sub_1FADD or al, al jz short loc_188EE mov byte ptr word_2634A+1, 1 loc_188D2: push 0 call sub_17627 push 1 call sub_17627 mov word_26346, 0 mov byte_26345, 0FDh jmp short loc_188EE ; --------------------------------------------------------------------------- loc_188E9: push 0Ah call sub_1FBBE loc_188EE: push word_26342 push 122Ah call sub_17354 pop bp retf sub_186B6 endp ; --------------------------------------------------------------------------- db 0 off_188FB dw offset loc_186EF dw offset loc_18783 dw offset loc_187AF dw offset loc_18838 dw offset loc_188B4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_18905 proc near push bp mov bp, sp mov eax, dword_26320 mov dword_26324, eax push 5940h push word_2CE26 push word_2CE28 push word_26328 mov al, byte ptr word_26335 mov ah, 0 push ax call sub_14E6C mov al, byte_2D084 cbw add word_2CE26, ax cmp word_2CE26, 800h jge short loc_18941 mov al, byte_2D084 add al, 2 jmp short loc_1894E ; --------------------------------------------------------------------------- loc_18941: cmp word_2CE26, 1000h jle short loc_18951 mov al, byte_2D084 add al, 0FEh loc_1894E: mov byte_2D084, al loc_18951: cmp byte_2D085, 0 jnz short loc_1896C add word_26328, 10h cmp word_26328, 400h jle short loc_1897D mov byte_2D085, 1 jmp short loc_1897D ; --------------------------------------------------------------------------- loc_1896C: sub word_26328, 10h cmp word_26328, 10h jg short loc_1897D mov byte_2D085, 0 loc_1897D: mov al, byte ptr word_26335 add al, 0FEh mov byte ptr word_26335, al pop bp retn sub_18905 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_18987 proc near push bp mov bp, sp cmp byte_25FE5, 0 jnz short loc_189FA mov byte ptr word_25FFA, 10h mov byte ptr word_25FFA+1, 30h ; '0' mov byte_26000, 6 mov word ptr dword_26002+2, 803h mov byte ptr word_26006+1, 18h call sub_157D6 mov byte ptr word_26006, al call fp_25344 call sub_15A5C mov byte ptr word_25FFA, 12h mov byte ptr word_25FFA+1, 0 mov byte_26000, 0Dh mov byte ptr dword_26002, 3 cmp word_2632E, 258h jg short loc_189DB mov byte ptr dword_26002, 6 jmp short loc_189E8 ; --------------------------------------------------------------------------- loc_189DB: cmp word_2632E, 320h jg short loc_189E8 mov byte ptr dword_26002, 4 loc_189E8: mov byte ptr word_26006+1, 18h call sub_157D6 mov byte ptr word_26006, al call fp_25344 call sub_15A5C loc_189FA: pop bp retn sub_18987 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_189FC proc near push bp mov bp, sp cmp byte_25FE3, 0 jnz short loc_18A2D mov byte ptr word_25FFA, 10h mov byte ptr word_25FFA+1, 2Ch ; ',' mov byte_26000, 6 mov word ptr dword_26002+2, 0F03h mov byte ptr word_26006+1, 18h call sub_157D6 mov byte ptr word_26006, al call fp_25344 call sub_15A5C loc_18A2D: pop bp retn sub_189FC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_18A2F proc far push bp mov bp, sp mov eax, dword_26320 mov dword_25FFC, eax inc word_26332 mov al, byte_26331 mov ah, 0 or ax, ax jz short loc_18A56 cmp ax, 1 jz short loc_18A9F cmp ax, 2 jz loc_18B24 jmp loc_18B91 ; --------------------------------------------------------------------------- loc_18A56: push 5940h call sub_152D2 push 1800180h push 0Ah call sub_1FA9D cmp word_26332, 100h jl loc_18BA0 inc byte_26331 mov word_26332, 0 mov byte ptr word_26335, 0 mov byte_2D085, 0 mov byte_2D084, 20h ; ' ' mov word_26328, 0 mov word_2CE26, 0C00h mov ax, word ptr dword_26320+2 mov word_2CE28, ax jmp loc_18BA0 ; --------------------------------------------------------------------------- loc_18A9F: call sub_18987 call sub_18905 push 1800180h push 4 call sub_1FA9D mov byte_26334, al mov ah, 0 sub word_2632E, ax cmp word_26332, 3E8h jge short loc_18ADC cmp word_2632E, 190h jg loc_18BA0 push 5 call sub_173AC cmp byte_2C979, 14h jnb short loc_18ADC mov byte_2C979, 14h loc_18ADC: inc byte_26331 mov byte_26330, 0CEh mov word_26332, 0 push word ptr dword_26320 push word ptr dword_26320+2 push 400020h call sub_1597C push 0Fh call sub_14CEE push word ptr dword_26320 push word ptr dword_26320+2 push 0C000400h push 0 push ds push offset word_26328 push ds push offset word_2632A push 1 call sub_14B0A jmp short loc_18BA0 ; --------------------------------------------------------------------------- loc_18B24: call sub_189FC push 5940h call sub_152D2 push 1800180h push 4 call sub_1FA9D mov byte_26334, al mov ah, 0 sub word_2632E, ax cmp word_26332, 320h jge short loc_18B67 cmp word_2632E, 0 jg short loc_18BA0 mov byte_2C978, 1 push 0Fh call sub_173AC push word ptr dword_26320 push word ptr dword_26320+2 push 4 call sub_16D84 loc_18B67: mov byte_26331, 0FEh mov byte_26330, 4 mov word_26332, 0 push word ptr dword_26320 push word ptr dword_26320+2 push 800030h call sub_1597C push 0Ch call sub_14CEE jmp short loc_18BA0 ; --------------------------------------------------------------------------- loc_18B91: call sub_17486 push word_2632E push 578h call sub_17354 pop bp retf ; --------------------------------------------------------------------------- loc_18BA0: push word_2632E push 578h call sub_17354 mov ax, word ptr dword_26320 mov word ptr dword_2C922, ax mov ax, word ptr dword_26320+2 mov word ptr dword_2C922+2, ax pop bp retf sub_18A2F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_18BB8 proc near var_1 = byte ptr -1 arg_0 = word ptr 4 arg_2 = word ptr 6 enter 2, 0 cmp word_26346, 1 jnz short loc_18BDC call sub_157D6 mov [bp+var_1], al push ds push offset word_2633E push ds push offset word_26340 push word ptr [bp+var_1] push [bp+arg_2] call sub_14AC4 loc_18BDC: mov ax, word_2633E add word_26335+1, ax mov ax, word_26340 add word_26338, ax cmp word_26335+1, 300h jle short loc_18BFA cmp word_26335+1, 1500h jl short loc_18C04 loc_18BFA: mov ax, 0FFFFh imul word_2633E mov word_2633E, ax loc_18C04: cmp word_26338, 300h jle short loc_18C14 cmp word_26338, 600h jl short loc_18C1E loc_18C14: mov ax, 0FFFFh imul word_26340 mov word_26340, ax loc_18C1E: mov ax, word_26346 cmp ax, [bp+arg_0] jl short loc_18C2C mov al, 1 leave retn 4 ; --------------------------------------------------------------------------- loc_18C2C: mov al, 0 leave retn 4 sub_18BB8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_18C32 proc near arg_0 = word ptr 4 push bp mov bp, sp cmp word_26346, 10h jl short loc_18C8E cmp word_26346, 20h ; ' ' jge short loc_18C68 mov byte_26344, 0B8h mov ax, word_26346 add ax, 0FFF0h push ax push 90008h call sub_16A6B cmp word_26346, 10h jnz short loc_18C8E push 8 call sub_14CEE jmp short loc_18C8E ; --------------------------------------------------------------------------- loc_18C68: cmp word_26346, 20h ; ' ' jnz short loc_18C7A mov byte_26344, 0BCh mov al, 1 pop bp retn 2 ; --------------------------------------------------------------------------- loc_18C7A: mov ax, word_26346 cmp ax, [bp+arg_0] jge short loc_18C88 mov al, 2 pop bp retn 2 ; --------------------------------------------------------------------------- loc_18C88: mov al, 3 pop bp retn 2 ; --------------------------------------------------------------------------- loc_18C8E: mov al, 0 pop bp retn 2 sub_18C32 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_18C94 proc near push bp mov bp, sp push 40h call sub_18C32 mov ah, 0 cmp ax, 1 jz short loc_18CB1 cmp ax, 2 jz short loc_18D07 cmp ax, 3 jz loc_18D42 pop bp retn ; --------------------------------------------------------------------------- loc_18CB1: mov byte ptr word_25FFA, 0 mov byte ptr word_25FFA+1, 2Ch ; ',' mov byte_26000, 2 mov al, byte_2D080 mov byte ptr word_26006+1, al mov word ptr dword_26002, 605h mov byte_26001, 0Ah mov al, 1 sub al, byte_2D085 mov byte_2D085, al cmp byte_2D085, 0 jz short loc_18CE8 mov byte ptr word_26006, 20h ; ' ' jmp short loc_18CED ; --------------------------------------------------------------------------- loc_18CE8: mov byte ptr word_26006, 60h loc_18CED: call fp_25344 push 0Fh call sub_14CEE cmp byte_2D080, 24h ; '$' jnb short loc_18D07 mov al, byte_2D080 add al, 4 mov byte_2D080, al loc_18D07: mov ax, word_26346 mov bx, 2 cwd idiv bx or dx, dx jnz short loc_18D52 call sub_15A5C mov al, byte ptr word_26006 add al, 80h mov byte ptr word_26006, al call sub_15A5C cmp byte_2D085, 0 jz short loc_18D30 mov al, byte ptr word_26006 add al, 87h jmp short loc_18D35 ; --------------------------------------------------------------------------- loc_18D30: mov al, byte ptr word_26006 add al, 79h ; 'y' loc_18D35: mov byte ptr word_26006, al mov al, byte ptr word_26006+1 add al, 4 mov byte ptr word_26006+1, al pop bp retn ; --------------------------------------------------------------------------- loc_18D42: mov byte_26349, 0 mov word_26346, 0 mov byte_26344, 0B4h loc_18D52: pop bp retn sub_18C94 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_18D54 proc near push bp mov bp, sp push 60h call sub_18C32 mov ah, 0 cmp ax, 1 jz short loc_18D6F cmp ax, 2 jz short loc_18D9E cmp ax, 3 jz short loc_18DCD pop bp retn ; --------------------------------------------------------------------------- loc_18D6F: mov byte ptr word_25FFA, 12h mov byte ptr word_25FFA+1, 54h ; 'T' mov byte_26000, 6 mov byte ptr word_26006+1, 20h ; ' ' push 50A050Ch push 60C060Eh call sub_E758 mov word ptr dword_26002+2, ax mov byte ptr word_26006, 0C0h pop bp retn ; --------------------------------------------------------------------------- loc_18D9E: mov ax, word_26346 mov bx, 2 cwd idiv bx or dx, dx jnz short loc_18DDD call sub_15A5C cmp byte_2D085, 0 jz short loc_18DBC mov al, byte ptr word_26006 add al, 0F8h jmp short loc_18DC1 ; --------------------------------------------------------------------------- loc_18DBC: mov al, byte ptr word_26006 add al, 8 loc_18DC1: mov byte ptr word_26006, al push 0Fh call sub_14CEE pop bp retn ; --------------------------------------------------------------------------- loc_18DCD: mov byte_26349, 0 mov word_26346, 0 mov byte_26344, 0B4h loc_18DDD: pop bp retn sub_18D54 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_18DDF proc near var_1 = byte ptr -1 enter 2, 0 push si mov ax, word_26346 mov bx, 20h ; ' ' cwd idiv bx or dx, dx jnz loc_18EBA mov byte ptr word_25FFA, 3 mov byte_26000, 0 mov byte ptr word_25FFA+1, 0 call fp_25344 mov byte ptr word_26006+1, 30h ; '0' mov ax, word_26346 mov bx, 40h cwd idiv bx or dx, dx jnz short loc_18E6A mov byte ptr word_26006, 24h ; '$' xor si, si jmp short loc_18E63 ; --------------------------------------------------------------------------- loc_18E21: mov al, byte ptr word_26006 mov [bp+var_1], al call sub_15A5C mov al, byte ptr word_26006 add al, 80h mov byte ptr word_26006, al call sub_15A5C mov al, 40h sub al, byte ptr word_26006 mov byte ptr word_26006, al call sub_15A5C mov al, byte ptr word_26006 add al, 80h mov byte ptr word_26006, al call sub_15A5C mov al, [bp+var_1] mov byte ptr word_26006, al mov al, byte ptr word_26006+1 add al, 0FBh mov byte ptr word_26006+1, al mov al, byte ptr word_26006 add al, 8 mov byte ptr word_26006, al inc si loc_18E63: cmp si, 8 jl short loc_18E21 jmp short loc_18EBA ; --------------------------------------------------------------------------- loc_18E6A: mov byte ptr word_26006, 64h ; 'd' xor si, si jmp short loc_18EB5 ; --------------------------------------------------------------------------- loc_18E73: mov al, byte ptr word_26006 mov [bp+var_1], al call sub_15A5C mov al, byte ptr word_26006 add al, 80h mov byte ptr word_26006, al call sub_15A5C mov al, 0C0h sub al, byte ptr word_26006 mov byte ptr word_26006, al call sub_15A5C mov al, byte ptr word_26006 add al, 80h mov byte ptr word_26006, al call sub_15A5C mov al, [bp+var_1] mov byte ptr word_26006, al mov al, byte ptr word_26006+1 add al, 0FBh mov byte ptr word_26006+1, al mov al, byte ptr word_26006 add al, 8 mov byte ptr word_26006, al inc si loc_18EB5: cmp si, 8 jl short loc_18E73 loc_18EBA: pop si leave retn sub_18DDF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_18EBD proc near push bp mov bp, sp push 80h call sub_18C32 mov ah, 0 cmp ax, 1 jz short loc_18ED9 cmp ax, 2 jz short loc_18F04 cmp ax, 3 jz short loc_18F4A pop bp retn ; --------------------------------------------------------------------------- loc_18ED9: mov eax, dword ptr word_26335+1 mov dword_2630A, eax mov byte_26313, 6 mov byte_26309, 8 mov byte_26312, 0F0h mov word_26318, 1Eh mov word_26314, 68h ; 'h' push 1 call sub_157E4 mov byte_2D085, al loc_18F04: cmp byte_26312, 0F0h jnb short loc_18F12 cmp byte_26312, 80h ja short loc_18F5A loc_18F12: mov ax, word_26346 mov bx, 4 cwd idiv bx or dx, dx jnz short loc_18F5A cmp byte_2D085, 0 jz short loc_18F2B call sub_174C7 jmp short loc_18F40 ; --------------------------------------------------------------------------- loc_18F2B: mov al, 80h sub al, byte_26312 mov byte_26312, al call sub_174C7 mov al, 80h sub al, byte_26312 mov byte_26312, al loc_18F40: mov al, byte_26312 add al, 0Ah mov byte_26312, al pop bp retn ; --------------------------------------------------------------------------- loc_18F4A: mov byte_26349, 0 mov word_26346, 0 mov byte_26344, 0B4h loc_18F5A: pop bp retn sub_18EBD endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_18F5C proc near push bp mov bp, sp push 40h call sub_18C32 mov ah, 0 cmp ax, 1 jz short loc_18F72 cmp ax, 3 jz short loc_18FD0 pop bp retn ; --------------------------------------------------------------------------- loc_18F72: mov byte ptr word_25FFA, 12h mov byte ptr word_25FFA+1, 54h ; 'T' mov byte_26000, 0Bh mov al, byte_2D080 mov byte ptr word_26006+1, al cmp byte_2D080, 20h ; ' ' jnb short loc_18F93 add al, 4 mov byte_2D080, al loc_18F93: mov dword_26002, 9050818h mov byte ptr word_26006, 0 mov byte_26001, 2 mov byte_2C976, 1 push 1 call sub_157E4 or ax, ax jz short loc_18FBB mov byte_2C977, 20h ; ' ' jmp short loc_18FC0 ; --------------------------------------------------------------------------- loc_18FBB: mov byte_2C977, 0E0h loc_18FC0: call fp_25344 push 0Fh call sub_14CEE call sub_15A70 pop bp retn ; --------------------------------------------------------------------------- loc_18FD0: mov byte_26349, 0 mov word_26346, 0 mov byte_26344, 0B4h pop bp retn sub_18F5C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_18FE2 proc near push bp mov bp, sp mov ax, word_26346 mov bx, 20h ; ' ' cwd idiv bx or dx, dx jnz short loc_19038 mov byte ptr word_25FFA, 12h mov byte_26000, 3 mov byte ptr word_25FFA+1, 0 mov byte_26001, 0Ah mov byte ptr word_26006+1, 20h ; ' ' mov word ptr dword_26002, 220h call fp_25344 mov ax, word_26346 mov bx, 40h cwd idiv bx or dx, dx jnz short loc_19029 mov byte ptr word_26006, 1Fh jmp short loc_1902E ; --------------------------------------------------------------------------- loc_19029: mov byte ptr word_26006, 0E1h loc_1902E: call sub_15A70 push 3 call sub_14CEE loc_19038: pop bp retn sub_18FE2 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1903A proc far push bp mov bp, sp mov ax, word_26335+1 mov word ptr dword_2C922, ax mov ax, word_26338 mov word ptr dword_2C922+2, ax inc word_26346 mov byte ptr word_25FFA, 0 mov eax, dword ptr word_26335+1 mov dword_25FFC, eax mov dword_2A722, eax mov al, byte_26345 mov ah, 0 mov bx, ax cmp bx, 7 ja loc_1925E add bx, bx jmp cs:off_19270[bx] loc_19073: cmp word_26346, 1 jnz short loc_19097 mov word_26342, 1130h mov word_2634C, 0BB8h mov word_2A72A, 400h mov byte_2A72F, 2 mov word_2A72C, 8 loc_19097: call sub_1FB07 cmp word_26346, 80h jl loc_19263 inc byte_26345 mov word_26346, 0 push 0Dh call sub_14CEE mov fp_23F5A, offset sub_D0F4 jmp loc_19263 ; --------------------------------------------------------------------------- loc_190BE: call sub_1FB07 cmp word_26346, 40h jl loc_19263 inc byte_26345 mov word_26346, 0 mov byte_26349, 1 mov byte ptr word_2634A+1, 0 mov byte_2D080, 18h mov byte_2D085, 0 jmp loc_19263 ; --------------------------------------------------------------------------- loc_190EB: mov al, byte_26349 mov ah, 0 or ax, ax jz short loc_19100 cmp ax, 1 jz short loc_1912A cmp ax, 2 jz short loc_1912F jmp short loc_19132 ; --------------------------------------------------------------------------- loc_19100: push 100060h call sub_18BB8 or al, al jz short loc_19132 mov word_26346, 0 inc byte ptr word_2634A+1 mov al, byte ptr word_2634A+1 and al, 1 inc al mov byte_26349, al cmp byte ptr word_2634A+1, 14h jb short loc_19132 jmp short loc_19140 ; --------------------------------------------------------------------------- loc_1912A: call sub_18C94 jmp short loc_19132 ; --------------------------------------------------------------------------- loc_1912F: call sub_18D54 loc_19132: call sub_1FADD or al, al jz loc_19263 push 0Ah call sub_17416 loc_19140: push 1076Ch jmp loc_191FD ; --------------------------------------------------------------------------- loc_19149: call sub_1FADD cmp word_26346, 40h jl loc_19263 jmp loc_1920C ; --------------------------------------------------------------------------- loc_19158: call sub_18DDF push 0E0080h call sub_18BB8 or al, al jz short loc_19179 mov word_26346, 0 inc byte ptr word_2634A+1 cmp byte ptr word_2634A+1, 14h jnb short loc_19187 loc_19179: call sub_1FADD or al, al jz loc_19263 push 0Ah call sub_17416 loc_19187: push 201F4h call sub_1FB6E mov byte_2D084, 0 mov byte_2D080, 14h jmp loc_19263 ; --------------------------------------------------------------------------- loc_1919D: mov al, byte_26349 mov ah, 0 or ax, ax jz short loc_191B2 cmp ax, 1 jz short loc_191E3 cmp ax, 2 jz short loc_191E8 jmp short loc_191EB ; --------------------------------------------------------------------------- loc_191B2: push 300030h call sub_18BB8 or al, al jz short loc_191EB mov al, byte_2D084 inc al mov byte_26349, al mov al, 1 sub al, byte_2D084 mov byte_2D084, al mov word_26346, 0 inc byte ptr word_2634A+1 cmp byte ptr word_2634A+1, 14h jb short loc_191EB jmp short loc_191F7 ; --------------------------------------------------------------------------- loc_191E3: call sub_18EBD jmp short loc_191EB ; --------------------------------------------------------------------------- loc_191E8: call sub_18F5C loc_191EB: call sub_1FADD or al, al jz short loc_19263 push 0Ah call sub_17416 loc_191F7: push 10000h loc_191FD: call sub_1FB6E jmp short loc_19263 ; --------------------------------------------------------------------------- loc_19202: call sub_1FADD cmp word_26346, 40h jl short loc_19263 loc_1920C: mov word_26346, 0 inc byte_26345 mov byte_26344, 0BCh jmp short loc_19263 ; --------------------------------------------------------------------------- loc_1921D: call sub_18FE2 push 80080h call sub_18BB8 or al, al jz short loc_19245 mov word_26346, 0 inc byte ptr word_2634A+1 cmp byte ptr word_2634A+1, 0Ah jb short loc_19245 mov byte ptr word_2634A+1, 0 jmp short loc_19251 ; --------------------------------------------------------------------------- loc_19245: call sub_1FADD or al, al jz short loc_19263 mov byte ptr word_2634A+1, 1 loc_19251: mov word_26346, 0 mov byte_26345, 0FDh jmp short loc_19263 ; --------------------------------------------------------------------------- loc_1925E: push 0Ah call sub_1FBBE loc_19263: push word_26342 push 1130h call sub_17354 pop bp retf sub_1903A endp ; --------------------------------------------------------------------------- db 0 off_19270 dw offset loc_19073 dw offset loc_190BE dw offset loc_190EB dw offset loc_19149 dw offset loc_19158 dw offset loc_1919D dw offset loc_19202 dw offset loc_1921D ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_19280 proc near push bp mov bp, sp test byte ptr word_26332, 3 jnz short loc_192F1 cmp byte_2D085, 0 jnz short loc_192D1 inc byte_26330 cmp byte_26330, 0DCh jb short loc_192F1 mov byte_26330, 0DBh add word ptr dword_26320+2, 0C0h mov ax, word ptr dword_2CEA0 mov word ptr dword_26320, ax cmp word ptr dword_26320, 400h jge short loc_192BD mov word ptr dword_26320, 400h jmp short loc_192CB ; --------------------------------------------------------------------------- loc_192BD: cmp word ptr dword_26320, 1400h jle short loc_192CB mov word ptr dword_26320, 1400h loc_192CB: inc byte_2D085 pop bp retn ; --------------------------------------------------------------------------- loc_192D1: dec byte_26330 cmp byte_26330, 0D4h jnb short loc_192F1 mov byte_26330, 0D0h mov byte_2D085, 0 mov word_26332, 0 mov byte_2D084, 0 loc_192F1: pop bp retn sub_19280 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_192F3 proc near push bp mov bp, sp mov ax, word_26332 dec ax push ax push 0B000Ah call sub_16A6B cmp word_26332, 1 jnz short loc_19319 push 8 call sub_14CEE mov byte_26330, 0D2h pop bp retn ; --------------------------------------------------------------------------- loc_19319: cmp word_26332, 10h jnz short loc_19325 mov byte_26330, 0D3h loc_19325: pop bp retn sub_192F3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_19327 proc near push bp mov bp, sp cmp word_26332, 20h ; ' ' jge short loc_19336 call sub_192F3 pop bp retn ; --------------------------------------------------------------------------- loc_19336: cmp word_26332, 20h ; ' ' jnz short loc_1937A mov byte ptr word_25FFA, 2 mov byte ptr word_25FFA+1, 2Ch ; ',' mov byte ptr word_26006+1, 18h mov byte_26000, 8 mov dword_26002, 8041003h mov byte ptr word_26006, 40h loc_1935F: call fp_25344 call sub_15A5C push 0Fh call sub_14CEE mov ax, word ptr dword_26320+2 mov word ptr dword_26324+2, ax sub word ptr dword_26320+2, 40h pop bp retn ; --------------------------------------------------------------------------- loc_1937A: cmp word_26332, 30h ; '0' jnz short loc_19396 mov byte ptr word_25FFA+1, 30h ; '0' mov byte ptr word_26006+1, 30h ; '0' mov dword_26002, 8040504h jmp short loc_1935F ; --------------------------------------------------------------------------- loc_19396: cmp word_26332, 40h jnz short loc_193B2 mov byte ptr word_25FFA+1, 2Ch ; ',' mov byte ptr word_26006+1, 20h ; ' ' mov dword_26002, 8040A07h jmp short loc_1935F ; --------------------------------------------------------------------------- loc_193B2: cmp word_26332, 60h jl short loc_193BC call sub_19280 loc_193BC: pop bp retn sub_19327 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_193BE proc near push bp mov bp, sp cmp word_26332, 20h ; ' ' jge short loc_193CD call sub_192F3 pop bp retn ; --------------------------------------------------------------------------- loc_193CD: cmp word_26332, 20h ; ' ' jnz short loc_193F5 mov byte ptr word_25FFA, 12h mov byte ptr word_25FFA+1, 2Ch ; ',' mov byte ptr word_26006+1, 18h mov byte_26000, 7 mov word ptr dword_26002+2, 808h mov byte ptr word_26006, 0 jmp short loc_19420 ; --------------------------------------------------------------------------- loc_193F5: cmp word_26332, 30h ; '0' jnz short loc_19437 mov byte_26000, 9 mov byte ptr word_25FFA+1, 30h ; '0' push 1010402h push 3030404h loc_19412: call sub_E758 mov word ptr dword_26002, ax mov word ptr dword_26002+2, 808h loc_19420: call sub_15A5C push 0Fh call sub_14CEE mov ax, word ptr dword_26320+2 mov word ptr dword_26324+2, ax sub word ptr dword_26320+2, 40h pop bp retn ; --------------------------------------------------------------------------- loc_19437: cmp word_26332, 40h jnz short loc_19451 mov byte ptr word_25FFA+1, 2Ch ; ',' push 1010503h push 5040405h jmp short loc_19412 ; --------------------------------------------------------------------------- loc_19451: cmp word_26332, 60h jl short loc_1945B call sub_19280 loc_1945B: pop bp retn sub_193BE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1945D proc near push bp mov bp, sp cmp word_26332, 20h ; ' ' jge short loc_1946C call sub_192F3 pop bp retn ; --------------------------------------------------------------------------- loc_1946C: cmp word_26332, 20h ; ' ' jnz short loc_194B1 mov byte ptr word_25FFA, 12h mov byte ptr word_25FFA+1, 34h ; '4' mov byte ptr word_26006+1, 30h ; '0' mov byte_26000, 2 mov byte ptr dword_26002, 10h mov byte ptr dword_26002+1, 8 mov byte ptr word_26006, 40h loc_19496: call fp_25344 call sub_15A5C push 0Fh call sub_14CEE mov ax, word ptr dword_26320+2 mov word ptr dword_26324+2, ax sub word ptr dword_26320+2, 40h pop bp retn ; --------------------------------------------------------------------------- loc_194B1: cmp word_26332, 30h ; '0' jnz short loc_194C9 mov byte ptr word_26006+1, 30h ; '0' mov byte ptr dword_26002, 15h mov byte ptr dword_26002+1, 4 jmp short loc_19496 ; --------------------------------------------------------------------------- loc_194C9: cmp word_26332, 40h jnz short loc_194DC mov byte ptr dword_26002, 10h mov byte ptr dword_26002+1, 8 jmp short loc_19496 ; --------------------------------------------------------------------------- loc_194DC: cmp word_26332, 60h jl short loc_194E6 call sub_19280 loc_194E6: pop bp retn sub_1945D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_194E8 proc far push bp mov bp, sp mov eax, dword_26320 mov dword_25FFC, eax mov dword_2A722, eax inc word_26332 mov al, byte_26331 mov ah, 0 or ax, ax jz short loc_1950C cmp ax, 1 jz short loc_1954E jmp loc_19604 ; --------------------------------------------------------------------------- loc_1950C: push 5940h call sub_152D2 push 1800180h push 0Ah call sub_1FA9D cmp word_26332, 0C0h jl loc_19613 inc byte_26331 mov word_26332, 0 mov byte ptr word_26335, 0 mov byte_2D085, 0 mov byte_2D084, 1 mov byte_2D083, 1 mov word_26328, 0 jmp loc_19613 ; --------------------------------------------------------------------------- loc_1954E: mov eax, dword_26320 mov dword_26324, eax mov al, byte_2D084 mov ah, 0 mov bx, ax cmp bx, 3 ja short loc_195A1 add bx, bx jmp cs:off_1962C[bx] loc_19569: cmp word_26332, 20h ; ' ' jl short loc_195A1 mov al, byte_2D083 mov ah, 0 mov bx, 3 cwd idiv bx inc dl mov byte_2D084, dl inc byte_2D083 mov word_26332, 0 cmp byte_2D083, 0Dh jb short loc_195A1 jmp short loc_195DA ; --------------------------------------------------------------------------- loc_19594: call sub_19327 jmp short loc_195A1 ; --------------------------------------------------------------------------- loc_19599: call sub_193BE jmp short loc_195A1 ; --------------------------------------------------------------------------- loc_1959E: call sub_1945D loc_195A1: cmp byte_26330, 0D4h jnb short loc_195BC push 1800180h push 4 call sub_1FA9D mov byte_26334, al mov ah, 0 sub word_2632E, ax loc_195BC: cmp word_2632E, 0 jg short loc_19613 mov byte_2C978, 1 push 0Fh call sub_173AC push word ptr dword_26320 push word ptr dword_26320+2 push 5 call sub_16D84 loc_195DA: mov byte_26331, 0FEh mov byte_26330, 4 mov word_26332, 0 push word ptr dword_26320 push word ptr dword_26320+2 push 800030h call sub_1597C push 0Ch call sub_14CEE jmp short loc_19613 ; --------------------------------------------------------------------------- loc_19604: call sub_17486 push word_2632E push 578h call sub_17354 pop bp retf ; --------------------------------------------------------------------------- loc_19613: push word_2632E push 578h call sub_17354 mov ax, word ptr dword_26320 mov word ptr dword_2C922, ax mov ax, word ptr dword_26320+2 mov word ptr dword_2C922+2, ax pop bp retf sub_194E8 endp ; --------------------------------------------------------------------------- db 0 off_1962C dw offset loc_19569 dw offset loc_19594 dw offset loc_19599 dw offset loc_1959E ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_19634 proc near push bp mov bp, sp push 600h push word_2BC80 mov al, byte ptr word_2BC71 mov ah, 0 add ax, ax mov bx, ax push word ptr [bx+4AEh] call sub_14E50 mov word_2BC71+1, ax push 600h push word_2BC80 mov al, byte ptr word_2BC71 mov ah, 0 add ax, ax mov bx, ax push word ptr [bx+42Eh] call sub_14E50 mov word_2BC74, ax mov al, byte ptr word_2BC71 add al, 0FEh mov byte ptr word_2BC71, al sub word_2BC80, 20h ; ' ' push 1200h push word_2BC9A mov al, byte_2BC8B mov ah, 0 add ax, ax mov bx, ax push word ptr [bx+4AEh] call sub_14E50 mov word ptr dword_2BC8C, ax push 600h push word_2BC9A mov al, byte_2BC8B mov ah, 0 add ax, ax mov bx, ax push word ptr [bx+42Eh] call sub_14E50 mov word ptr dword_2BC8C+2, ax mov al, byte_2BC8B add al, 2 mov byte_2BC8B, al sub word_2BC9A, 20h ; ' ' mov eax, dword ptr word_2BC71+1 mov dword_2BC76, eax mov eax, dword_2BC8C mov dword_2BC90, eax pop bp retn sub_19634 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_196D3 proc near var_2 = word ptr -2 enter 2, 0 push si push di mov word_2CED6, 140h mov word_2CED8, 140h mov si, 0B290h mov [bp+var_2], 0 jmp loc_198AB ; --------------------------------------------------------------------------- loc_196F0: cmp byte ptr [si], 0 jz loc_198A5 cmp byte ptr [si], 1 jnz loc_19851 mov eax, [si+2] cmp eax, [si+6] jz short loc_19773 mov ax, [si+6] sub ax, [si+2] mov di, ax mov bx, 20h ; ' ' cwd idiv bx or ax, ax jz short loc_1971E mov ax, di jmp short loc_1972C ; --------------------------------------------------------------------------- loc_1971E: mov ax, di mov bx, 4 cwd idiv bx or ax, ax jz short loc_19734 mov ax, di loc_1972C: cwd idiv bx add [si+2], ax jmp short loc_1973A ; --------------------------------------------------------------------------- loc_19734: mov ax, [si+6] mov [si+2], ax loc_1973A: mov ax, [si+8] sub ax, [si+4] mov di, ax mov bx, 20h ; ' ' cwd idiv bx or ax, ax jz short loc_19750 mov ax, di jmp short loc_1975E ; --------------------------------------------------------------------------- loc_19750: mov ax, di mov bx, 4 cwd idiv bx or ax, ax jz short loc_19766 mov ax, di loc_1975E: cwd idiv bx add [si+4], ax jmp short loc_1976C ; --------------------------------------------------------------------------- loc_19766: mov ax, [si+8] mov [si+4], ax loc_1976C: mov word ptr [si+12h], 0C0h jmp short loc_197DC ; --------------------------------------------------------------------------- loc_19773: mov word ptr [si+12h], 0BEh cmp [bp+var_2], 0 jnz short loc_19785 push si call fp_2CE2A jmp short loc_1978A ; --------------------------------------------------------------------------- loc_19785: push si call fp_2CE2C loc_1978A: mov ah, 0 mov di, ax or di, di jz short loc_197D9 push 1400h call sub_157FA add ax, 200h mov [si+6], ax push 0A00h call sub_157FA add ax, 100h mov [si+8], ax cmp [bp+var_2], 0 jnz short loc_197C2 push 3 call sub_157E4 add ax, ax mov bx, ax mov ax, off_22768[bx] mov fp_2CE2A, ax jmp short loc_197D2 ; --------------------------------------------------------------------------- loc_197C2: push 3 call sub_157E4 add ax, ax mov bx, ax mov ax, off_22768[bx] mov fp_2CE2C, ax loc_197D2: mov word ptr [si+0Eh], 0 jmp short loc_197DC ; --------------------------------------------------------------------------- loc_197D9: inc word ptr [si+0Eh] loc_197DC: mov ax, [si+2] sub ax, word ptr dword_2CEA0 add ax, 0C0h cmp ax, 180h jnb short loc_197FF mov ax, [si+4] sub ax, word ptr dword_2CEA0+2 add ax, 0C0h cmp ax, 180h jnb short loc_197FF mov byte_2CEC1, 1 loc_197FF: cmp byte_2D07F, 3 jz short loc_1984A mov eax, [si+2] mov dword_2CED2, eax call sub_126B3 mov [si+16h], ax cmp word ptr [si+16h], 0 jz short loc_19823 push 4 call sub_14CEE loc_19823: mov ax, [si+16h] sub [si+14h], ax cmp word ptr [si+14h], 0 jge short loc_198A5 inc byte ptr [si] mov word ptr [si+12h], 4 mov word ptr [si+16h], 0 push 0Ch call sub_14CEE add dword_2CE1A, 64h ; 'd' jmp short loc_198A5 ; --------------------------------------------------------------------------- loc_1984A: mov word ptr [si+16h], 0 jmp short loc_198A5 ; --------------------------------------------------------------------------- loc_19851: mov al, [si] mov ah, 0 mov bx, 4 cwd idiv bx or dx, dx jnz short loc_198A3 inc word ptr [si+12h] cmp word ptr [si+12h], 0Ch jl short loc_198A3 mov byte ptr [si], 0 mov word ptr [si+2], 0C00h mov word ptr [si+4], 0F000h mov word ptr [si+6], 0C00h mov word ptr [si+8], 0FF00h mov word ptr [si+14h], 1F4h mov word ptr [si+12h], 0C0h cmp [bp+var_2], 0 jnz short loc_19897 mov fp_2CE2A, offset sub_19AE3 jmp short loc_1989D ; --------------------------------------------------------------------------- loc_19897: mov fp_2CE2C, offset sub_19AE3 loc_1989D: sub word_26342, 12Ch loc_198A3: inc byte ptr [si] loc_198A5: inc [bp+var_2] add si, 1Ah loc_198AB: cmp [bp+var_2], 2 jl loc_196F0 pop di pop si leave retn sub_196D3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_198B7 proc near arg_0 = word ptr 4 push bp mov bp, sp push si mov si, [bp+arg_0] cmp word ptr [si+0Eh], 10h jnz short loc_198CF push word ptr [si+2] push word ptr [si+4] call sub_ECD2 loc_198CF: cmp word ptr [si+0Eh], 20h ; ' ' jb short loc_19921 cmp word ptr [si+0Eh], 40h jnb short loc_19912 cmp byte_25FE2, 0 jz short loc_19912 mov byte ptr word_25FFA+1, 0 mov byte ptr word_25FFA, 10h mov byte ptr word_26006+1, 20h ; ' ' mov byte_26000, 0 mov eax, [si+2] mov dword_25FFC, eax call sub_157D6 mov byte ptr word_26006, al call fp_25344 call sub_15A5C mov word ptr [si+12h], 0C2h jmp short loc_19921 ; --------------------------------------------------------------------------- loc_19912: cmp word ptr [si+0Eh], 60h jb short loc_19921 mov word ptr [si+12h], 0BEh mov al, 1 jmp short loc_19923 ; --------------------------------------------------------------------------- loc_19921: mov al, 0 loc_19923: pop si pop bp retn 2 sub_198B7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_19928 proc near arg_0 = word ptr 4 push bp mov bp, sp push si mov si, [bp+arg_0] cmp word ptr [si+0Eh], 10h jnz short loc_19940 push word ptr [si+2] push word ptr [si+4] call sub_ECD2 loc_19940: cmp word ptr [si+0Eh], 20h ; ' ' jb short loc_19993 mov word ptr [si+12h], 0C2h cmp word ptr [si+0Eh], 20h ; ' ' jnz short loc_19984 mov byte ptr word_25FFA+1, 0 mov eax, [si+2] mov dword_25FFC, eax mov byte ptr word_25FFA, 10h mov byte ptr word_26006+1, 18h mov byte_26000, 9 mov dword_26002, 5051203h mov byte ptr word_26006, 0 call fp_25344 call sub_15A5C jmp short loc_19993 ; --------------------------------------------------------------------------- loc_19984: cmp word ptr [si+0Eh], 60h jb short loc_19993 mov word ptr [si+12h], 0BEh mov al, 1 jmp short loc_19995 ; --------------------------------------------------------------------------- loc_19993: mov al, 0 loc_19995: pop si pop bp retn 2 sub_19928 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1999A proc near arg_0 = word ptr 4 push bp mov bp, sp push si mov si, [bp+arg_0] cmp word ptr [si+0Eh], 10h jnz short loc_199B2 push word ptr [si+2] push word ptr [si+4] call sub_ECD2 loc_199B2: cmp word ptr [si+0Eh], 20h ; ' ' jb short loc_19A08 mov word ptr [si+12h], 0C2h cmp word ptr [si+0Eh], 40h jnb short loc_199F9 test byte ptr [si+0Eh], 7 jnz short loc_199F9 mov byte ptr word_25FFA+1, 0 mov eax, [si+2] mov dword_25FFC, eax mov byte ptr word_25FFA, 10h mov byte ptr word_26006+1, 20h ; ' ' mov byte_26000, 3 mov word ptr dword_26002, 1005h mov byte ptr word_26006, 0 call fp_25344 call sub_15A5C jmp short loc_19A08 ; --------------------------------------------------------------------------- loc_199F9: cmp word ptr [si+0Eh], 60h jb short loc_19A08 mov word ptr [si+12h], 0BEh mov al, 1 jmp short loc_19A0A ; --------------------------------------------------------------------------- loc_19A08: mov al, 0 loc_19A0A: pop si pop bp retn 2 sub_1999A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_19A0F proc near arg_0 = word ptr 4 push bp mov bp, sp push si mov si, [bp+arg_0] cmp word ptr [si+0Eh], 10h jnz short loc_19A27 push word ptr [si+2] push word ptr [si+4] call sub_ECD2 loc_19A27: cmp word ptr [si+0Eh], 20h ; ' ' jb short loc_19A7D mov word ptr [si+12h], 0C2h cmp word ptr [si+0Eh], 40h jnb short loc_19A6E test byte ptr [si+0Eh], 7 jnz short loc_19A6E mov byte ptr word_25FFA+1, 0 mov eax, [si+2] mov dword_25FFC, eax mov byte ptr word_25FFA, 10h mov byte ptr word_26006+1, 20h ; ' ' mov byte_26000, 5 mov word ptr dword_26002, 80Ch mov byte ptr word_26006, 0 call fp_25344 call sub_15A5C jmp short loc_19A7D ; --------------------------------------------------------------------------- loc_19A6E: cmp word ptr [si+0Eh], 60h jb short loc_19A7D mov word ptr [si+12h], 0BEh mov al, 1 jmp short loc_19A7F ; --------------------------------------------------------------------------- loc_19A7D: mov al, 0 loc_19A7F: pop si pop bp retn 2 sub_19A0F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_19A84 proc near arg_0 = word ptr 4 push bp mov bp, sp push si mov si, [bp+arg_0] cmp word ptr [si+0Eh], 10h jnz short loc_19A9C push word ptr [si+2] push word ptr [si+4] call sub_ECD2 loc_19A9C: cmp word ptr [si+0Eh], 20h ; ' ' jb short loc_19ADC mov word ptr [si+12h], 0C2h test byte ptr word_25FE0, 1Fh jnz short loc_19ADC mov byte ptr word_25FFA+1, 0 mov eax, [si+2] mov dword_25FFC, eax mov byte ptr word_25FFA, 10h mov byte ptr word_26006+1, 18h mov byte_26000, 3 mov word ptr dword_26002, 0C07h mov byte ptr word_26006, 0 call fp_25344 call sub_15A5C loc_19ADC: mov al, 0 pop si pop bp retn 2 sub_19A84 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_19AE3 proc near arg_0 = word ptr 4 push bp mov bp, sp push si mov si, [bp+arg_0] cmp word ptr [si+0Eh], 60h jb short loc_19AF4 mov al, 1 jmp short loc_19AF6 ; --------------------------------------------------------------------------- loc_19AF4: mov al, 0 loc_19AF6: pop si pop bp retn 2 sub_19AE3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_19AFB proc near push bp mov bp, sp mov al, 0 pop bp retn 2 sub_19AFB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_19B04 proc near push bp mov bp, sp push si cmp word_26346, 40h jge short loc_19B2F mov ax, word_26346 add ax, 0FFD8h push ax push 90008h call sub_16A6B mov byte_26344, 0B8h cmp word_26346, 28h ; '(' jnz short loc_19B9B push 8 jmp short loc_19B96 ; --------------------------------------------------------------------------- loc_19B2F: cmp word_26346, 40h jnz short loc_19B9B mov byte ptr word_25FFA, 2 mov byte_26000, 0Dh mov byte ptr dword_26002, 2 call fp_25344 xor si, si jmp short loc_19B8A ; --------------------------------------------------------------------------- loc_19B4D: test si, 1 jz short loc_19B57 mov al, 2Ch ; ',' jmp short loc_19B59 ; --------------------------------------------------------------------------- loc_19B57: mov al, 0 loc_19B59: mov byte ptr word_25FFA+1, al push 3Fh ; '?' call sub_157E4 add al, 0Ch mov byte ptr word_26006+1, al push 300h call sub_157FA add ax, word_26335+1 sub ax, 180h mov word ptr dword_25FFC, ax push 300h call sub_157FA add ax, word_26338 sub ax, 200h mov word ptr dword_25FFC+2, ax call sub_15A5C inc si loc_19B8A: cmp si, 20h ; ' ' jl short loc_19B4D mov byte_26344, 0B6h push 0Fh loc_19B96: call sub_14CEE loc_19B9B: pop si pop bp retn sub_19B04 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_19B9E proc near push bp mov bp, sp call sub_19B04 cmp word_26346, 60h jnz short loc_19BB6 mov word_26346, 0 mov byte_26349, 0 loc_19BB6: pop bp retn sub_19B9E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_19BB8 proc near push bp mov bp, sp cmp word_26346, 40h jge short loc_19BE2 mov ax, word_26346 add ax, 0FFD8h push ax push 90008h call sub_16A6B mov byte_26344, 0B8h cmp word_26346, 28h ; '(' jnz short loc_19C32 push 8 jmp short loc_19C19 ; --------------------------------------------------------------------------- loc_19BE2: cmp word_26346, 40h jnz short loc_19C20 mov byte ptr word_25FFA, 12h mov byte_26000, 0Bh mov byte ptr word_25FFA+1, 30h ; '0' mov dword_26002, 804081Ch mov byte ptr word_26006+1, 18h mov byte ptr word_26006, 0 call fp_25344 call sub_15A5C mov byte_26344, 0B4h push 0Fh loc_19C19: call sub_14CEE pop bp retn ; --------------------------------------------------------------------------- loc_19C20: cmp word_26346, 60h jnz short loc_19C32 mov word_26346, 0 mov byte_26349, 0 loc_19C32: pop bp retn sub_19BB8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_19C34 proc near push bp mov bp, sp cmp word_26346, 40h jge short loc_19C5E mov ax, word_26346 add ax, 0FFD8h push ax push 90008h call sub_16A6B mov byte_26344, 0B8h cmp word_26346, 28h ; '(' jnz short loc_19CAE push 8 jmp short loc_19C95 ; --------------------------------------------------------------------------- loc_19C5E: cmp word_26346, 40h jnz short loc_19C9C mov byte ptr word_25FFA, 12h mov byte_26000, 9 mov byte ptr word_25FFA+1, 2Ch ; ',' mov dword_26002, 7050807h mov byte ptr word_26006+1, 18h mov byte ptr word_26006, 0 call fp_25344 call sub_15A5C mov byte_26344, 0B4h push 0Fh loc_19C95: call sub_14CEE pop bp retn ; --------------------------------------------------------------------------- loc_19C9C: cmp word_26346, 60h jnz short loc_19CAE mov word_26346, 0 mov byte_26349, 0 loc_19CAE: pop bp retn sub_19C34 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_19CB0 proc near var_2 = word ptr -2 enter 2, 0 mov eax, dword ptr word_2BC71+1 cmp eax, dword_2BC76 jnz locret_19E10 mov eax, dword_2BC8C cmp eax, dword_2BC90 jnz locret_19E10 inc word_2CE2E cmp word_2CE2E, 10h jb locret_19E10 cmp word_2CE2E, 10h jnz short loc_19CFC mov byte_2D07F, 1 mov ax, 40h mov word_2BC9A, ax mov word_2BC80, ax mov byte_2D07E, 0C4h add word_2CE30, 20h ; ' ' leave retn ; --------------------------------------------------------------------------- loc_19CFC: cmp word_2CE2E, 20h ; ' ' jb locret_19E10 cmp word_2CE2E, 40h jnb short loc_19D22 mov byte_2D07F, 2 mov ax, 40h sub ax, word_2CE2E add ax, ax mov word_2BC9A, ax mov word_2BC80, ax leave retn ; --------------------------------------------------------------------------- loc_19D22: cmp word_2CE2E, 50h ; 'P' jnb short loc_19D56 cmp word_2CE2E, 40h jnz short loc_19D37 push 8 call sub_14CEE loc_19D37: mov byte_2D07F, 3 cmp word_2CE2E, 47h ; 'G' jz short loc_19D4C cmp word_2CE2E, 4Fh ; 'O' jnz locret_19E10 loc_19D4C: mov al, byte_2D07E add al, 2 mov byte_2D07E, al leave retn ; --------------------------------------------------------------------------- loc_19D56: mov byte ptr word_25FFA, 12h mov byte ptr word_25FFA+1, 0 mov byte ptr word_26006+1, 18h mov byte_26000, 0 call fp_25344 mov word_2CED6, 380h mov word_2CED8, 80h mov eax, dword ptr word_2BC71+1 mov dword_2CED2, eax add word ptr dword_2CED2, 400h call sub_12842 mov [bp+var_2], ax cmp [bp+var_2], 0 jz short loc_19D9D push 9 call sub_14CEE loc_19D9D: mov ax, word ptr dword_2CEA0 sub ax, word_2BC71+1 cmp ax, 800h jnb short loc_19DBD mov ax, word_2BC74 sub ax, word ptr dword_2CEA0+2 add ax, 40h cmp ax, 80h jnb short loc_19DBD mov byte_2CEC1, 1 loc_19DBD: mov ax, word_26346 mov bx, 10h cwd idiv bx or dx, dx jnz short locret_19E10 mov ax, word_26346 mov bx, 100h cwd idiv bx cmp dx, word_2CE30 jnb short locret_19E10 mov byte ptr word_25FFA+1, 2Ch ; ',' mov byte_26000, 7 mov byte ptr word_26006, 0 mov ax, word_26335+1 mov word ptr dword_25FFC, ax mov ax, word_26338 add ax, 0FF80h mov word ptr dword_25FFC+2, ax mov word ptr dword_26002+2, 608h mov byte ptr word_26006+1, 20h ; ' ' call fp_25344 call sub_15A5C push 3 call sub_14CEE locret_19E10: leave retn sub_19CB0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_19E12 proc near push bp mov bp, sp cmp word_26346, 40h jge short loc_19E43 mov ax, word_26346 add ax, 0FFD8h push ax push 90008h call sub_16A6B mov byte_26344, 0B8h cmp word_26346, 28h ; '(' jnz loc_19ED8 push 8 call sub_14CEE pop bp retn ; --------------------------------------------------------------------------- loc_19E43: cmp word_26346, 40h jnz short loc_19EC6 mov byte_26309, 6 mov byte_26313, 8 mov eax, dword_25FFC mov dword_2630A, eax mov word_26318, 28h ; '(' mov word_26314, 50h ; 'P' mov ax, word ptr dword_2CEA0+2 sub ax, word ptr dword_2630A+2 push ax mov ax, word ptr dword_2CEA0 sub ax, word ptr dword_2630A push ax call iatan2 mov byte_26312, al call sub_174C7 mov al, byte_26312 add al, 10h mov byte_26312, al call sub_174C7 mov al, byte_26312 add al, 0E0h mov byte_26312, al call sub_174C7 mov byte ptr word_25FFA, 12h mov byte_26000, 0Dh mov byte ptr word_25FFA+1, 2Ch ; ',' mov word ptr dword_26002, 814h mov byte ptr word_26006+1, 18h mov byte ptr word_26006, 0 call fp_25344 call sub_15A5C mov byte_26344, 0B4h pop bp retn ; --------------------------------------------------------------------------- loc_19EC6: cmp word_26346, 60h jnz short loc_19ED8 mov word_26346, 0 mov byte_26349, 0 loc_19ED8: pop bp retn sub_19E12 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_19EDA proc near push bp mov bp, sp cmp word_26346, 40h jge short loc_19F0E mov ax, word_26346 add ax, 0FFD8h push ax push 90008h call sub_16A6B mov byte_26344, 0B8h mov byte_2D085, 8 cmp word_26346, 28h ; '(' jnz short loc_19F73 push 8 call sub_14CEE pop bp retn ; --------------------------------------------------------------------------- loc_19F0E: mov ax, word_26346 mov bx, 4 cwd idiv bx or dx, dx jnz short loc_19F61 mov byte ptr word_25FFA, 12h mov byte_26000, 7 mov byte ptr word_25FFA+1, 2Ch ; ',' mov word ptr dword_26002+2, 708h mov byte ptr word_26006+1, 18h call fp_25344 mov al, byte_2D085 mov byte ptr word_26006, al call sub_15A5C mov al, byte ptr word_26006 neg al mov byte ptr word_26006, al call sub_15A5C mov al, byte_2D085 add al, 5 mov byte_2D085, al mov byte_26344, 0B4h push 0Fh call sub_14CEE loc_19F61: cmp word_26346, 60h jnz short loc_19F73 mov word_26346, 0 mov byte_26349, 0 loc_19F73: pop bp retn sub_19EDA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_19F75 proc near push bp mov bp, sp cmp word_26346, 40h jge short loc_19FA9 mov ax, word_26346 add ax, 0FFD8h push ax push 90008h call sub_16A6B mov byte_26344, 0B8h mov byte_2D085, 0 cmp word_26346, 28h ; '(' jnz short loc_1A003 push 8 call sub_14CEE pop bp retn ; --------------------------------------------------------------------------- loc_19FA9: mov ax, word_26346 mov bx, 4 cwd idiv bx or dx, dx jnz short loc_19FF1 mov byte ptr word_25FFA, 12h mov byte_26000, 4 mov byte ptr word_25FFA+1, 30h ; '0' mov word ptr dword_26002, 714h mov byte ptr word_26006+1, 28h ; '(' call fp_25344 mov al, byte_2D085 mov byte ptr word_26006, al call sub_15A5C mov al, byte_2D085 add al, 2 mov byte_2D085, al mov byte_26344, 0B4h push 3 call sub_14CEE loc_19FF1: cmp word_26346, 60h jnz short loc_1A003 mov word_26346, 0 mov byte_26349, 0 loc_1A003: pop bp retn sub_19F75 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1A005 proc near push bp mov bp, sp mov byte ptr word_25FFA, 10h mov byte_26000, 2 mov byte ptr word_26006, 40h mov byte ptr word_25FFA+1, 54h ; 'T' mov ax, word_26346 mov bx, 20h ; ' ' cwd idiv bx or dx, dx jnz short loc_1A042 mov byte ptr word_26006+1, 20h ; ' ' mov word ptr dword_26002, 0A0Dh call fp_25344 call sub_15A5C push 3 call sub_14CEE loc_1A042: pop bp retn sub_1A005 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1A044 proc far push bp mov bp, sp push si mov ax, word_26335+1 mov word ptr dword_2C922, ax mov ax, word_26338 mov word ptr dword_2C922+2, ax inc word_26346 mov byte ptr word_25FFA, 0 mov ax, word_26335+1 mov word ptr dword_25FFC, ax mov ax, word_26338 add ax, 0FF80h mov word ptr dword_25FFC+2, ax mov eax, dword_25FFC mov dword_2A722, eax mov al, byte_26345 mov ah, 0 mov bx, ax cmp bx, 0Eh ja loc_1A3AD add bx, bx jmp cs:off_1A3D1[bx] loc_1A089: cmp word_26346, 1 jnz short loc_1A0AD mov word_26342, 2580h mov word_2634C, 1CE8h mov word_2A72A, 400h mov byte_2A72F, 2 mov word_2A72C, 8 loc_1A0AD: call sub_1FB07 cmp word_26346, 80h jl loc_1A3B2 inc byte_26345 mov word_26346, 0 push 0Dh call sub_14CEE mov fp_23F5A, offset sub_D180 jmp loc_1A3B2 ; --------------------------------------------------------------------------- loc_1A0D4: call sub_1FB07 cmp word_26346, 40h jl loc_1A3B2 inc byte_26345 mov word_26346, 0 mov byte_26349, 1 mov byte ptr word_2634A+1, 0 mov byte_2D080, 18h mov byte_2D07F, 0 jmp loc_1A3B2 ; --------------------------------------------------------------------------- loc_1A101: call sub_19B04 call sub_1FADD cmp word_26346, 80h jnz short loc_1A15A mov si, 0B290h mov byte ptr [si], 1 mov word ptr [si+12h], 0BEh mov word ptr [si+10h], 1000h mov byte ptr [si+1], 60h mov word ptr [si+14h], 1F4h mov word ptr [si+2], 0C190h add si, 1Ah mov byte ptr [si], 1 mov word ptr [si+12h], 0BEh mov word ptr [si+10h], 1000h mov byte ptr [si+1], 20h ; ' ' mov word ptr [si+14h], 1F4h mov word ptr [si+2], 0C190h mov fp_2CE2A, offset sub_198B7 mov fp_2CE2C, offset sub_198B7 jmp loc_1A3B2 ; --------------------------------------------------------------------------- loc_1A15A: cmp word_26346, 80h jle loc_1A3B2 call sub_19634 cmp word_2BC80, 0 jnz loc_1A3B2 inc byte_26345 mov byte_26349, 0 mov word_26346, 0 mov byte ptr word_2634A+1, 0 mov byte_2D07D, 0 mov word_2CE30, 0A0h jmp loc_1A3B2 ; --------------------------------------------------------------------------- loc_1A192: mov al, byte_26349 mov ah, 0 or ax, ax jz short loc_1A1A2 cmp ax, 1 jz short loc_1A1E3 jmp short loc_1A1E7 ; --------------------------------------------------------------------------- loc_1A1A2: mov ax, word_26346 add ax, 0FFF8h push ax call sub_16BD9 or al, al jz short loc_1A1E7 mov byte_26349, 1 mov word_26346, 0 inc byte ptr word_2634A+1 cmp byte ptr word_2634A+1, 18h jnb short loc_1A1F8 push 3 call sub_157FA add ax, ax mov dl, byte_2D07D mov dh, 0 imul dx, 6 add ax, dx mov bx, ax mov ax, off_22770[bx] mov fp_2CE32, ax jmp short loc_1A1E7 ; --------------------------------------------------------------------------- loc_1A1E3: call fp_2CE32 loc_1A1E7: call sub_1FADD or al, al jz loc_1A3B2 push 7 call sub_17416 call sub_1FB19 loc_1A1F8: inc byte_2D07D cmp byte_2C979, 14h jnb short loc_1A208 mov byte_2C979, 14h loc_1A208: push 1 call sub_162CC inc byte_26345 mov word_26346, 0 mov byte ptr word_2634A+1, 0 mov byte_26349, 0 mov ax, word_2634C mov word_26342, ax cmp byte_26345, 0Ch jnb short loc_1A236 sub word_2634C, 898h jmp short loc_1A23C ; --------------------------------------------------------------------------- loc_1A236: mov word_2634C, 0 loc_1A23C: mov word_2CE2E, 0 jmp loc_1A3B2 ; --------------------------------------------------------------------------- loc_1A245: mov word ptr dword_2BC76, 800h mov word ptr dword_2BC76+2, 800h mov word ptr dword_2BC90, 1000h mov word ptr dword_2BC90+2, 800h mov word_2BC84, 1F4h mov word_2BC9E, 1F4h mov ax, offset sub_19AFB mov fp_2CE2C, ax mov fp_2CE2A, ax push 0C000400h call sub_16CCC or al, al jz loc_1A359 jmp loc_1A34F ; --------------------------------------------------------------------------- loc_1A284: mov word ptr dword_2BC76, 800h mov word ptr dword_2BC76+2, 800h mov word ptr dword_2BC90, 1000h mov word ptr dword_2BC90+2, 800h mov word_2BC84, 1F4h mov word_2BC9E, 1F4h mov ax, offset sub_19AFB mov fp_2CE2C, ax mov fp_2CE2A, ax call sub_19CB0 call sub_1FADD cmp word_26346, 258h jl loc_1A3B2 push 5 call sub_17416 push 1 call sub_162CC cmp byte_2C979, 14h jnb short loc_1A2D7 mov byte_2C979, 14h loc_1A2D7: inc byte_26345 mov word_26346, 0 mov byte_2D07F, 0 mov word ptr dword_2BC76, 1400h mov word ptr dword_2BC76+2, 600h mov word ptr dword_2BC90, 400h mov word ptr dword_2BC90+2, 600h xor ax, ax mov word_2BC98, ax mov word_2BC7E, ax mov fp_2CE2A, offset sub_19928 mov fp_2CE2C, offset sub_19928 jmp loc_1A3B2 ; --------------------------------------------------------------------------- loc_1A315: mov word ptr dword_2BC76, 400h mov word ptr dword_2BC76+2, 800h mov word ptr dword_2BC90, 1400h mov word ptr dword_2BC90+2, 800h mov word_2BC84, 1F4h mov word_2BC9E, 1F4h mov ax, offset sub_19A84 mov fp_2CE2C, ax mov fp_2CE2A, ax push 0C000400h call sub_16CCC or al, al jz short loc_1A359 loc_1A34F: mov word_26346, 0 inc byte_26345 loc_1A359: call sub_1FADD jmp short loc_1A3B2 ; --------------------------------------------------------------------------- loc_1A35E: mov word ptr dword_2BC76, 400h mov word ptr dword_2BC76+2, 800h mov word ptr dword_2BC90, 1400h mov word ptr dword_2BC90+2, 800h mov ax, offset sub_19A84 mov fp_2CE2C, ax mov fp_2CE2A, ax call sub_1A005 cmp word_26346, 3E8h jge short loc_1A396 call sub_1FADD or al, al jz short loc_1A3B2 mov byte ptr word_2634A+1, 1 loc_1A396: mov word_26346, 0 mov byte_26345, 0FDh mov byte_2BC70, 2 mov byte_2BC8A, 2 jmp short loc_1A3B2 ; --------------------------------------------------------------------------- loc_1A3AD: push 0Ah call sub_1FBBE loc_1A3B2: push word_26342 push 2580h call sub_17354 cmp byte_26345, 3 jb short loc_1A3CD cmp byte_26345, 0FEh jnb short loc_1A3CD call sub_196D3 loc_1A3CD: pop si pop bp retf sub_1A044 endp ; --------------------------------------------------------------------------- db 0 off_1A3D1 dw offset loc_1A089 dw offset loc_1A0D4 dw offset loc_1A101 dw offset loc_1A192 dw offset loc_1A245 dw offset loc_1A284 dw offset loc_1A192 dw offset loc_1A245 dw offset loc_1A284 dw offset loc_1A192 dw offset loc_1A245 dw offset loc_1A284 dw offset loc_1A192 dw offset loc_1A315 dw offset loc_1A35E ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1A3EF proc near arg_0 = word ptr 4 arg_2 = word ptr 6 arg_4 = word ptr 8 push bp mov bp, sp push si mov byte_2297E, 1 mov ax, [bp+arg_4] mov word_2CED6, ax mov ax, [bp+arg_2] mov word_2CED8, ax mov eax, dword_2634E mov dword_2CED2, eax call sub_126B3 mov si, ax or si, si jz short loc_1A41F push [bp+arg_0] call sub_14CEE loc_1A41F: mov byte_2297E, 0 mov ax, si pop si pop bp retn 6 sub_1A3EF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1A42B proc near push bp mov bp, sp call sub_1FADD or al, al jz short loc_1A439 mov al, 1 pop bp retn ; --------------------------------------------------------------------------- loc_1A439: push 1800180h push 4 call sub_1A3EF mov byte_26360, al mov ah, 0 sub word_2635A, ax mov ax, word_2635A cmp ax, word_26364 jg short loc_1A45A mov al, 2 pop bp retn ; --------------------------------------------------------------------------- loc_1A45A: mov al, 0 pop bp retn sub_1A42B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1A45E 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_0] cmp [bp+arg_2], 0 jnz short loc_1A4B4 cmp word ptr [si], 900h jge short loc_1A47E push 60h call sub_157FA sub al, 30h ; '0' jmp short loc_1A490 ; --------------------------------------------------------------------------- loc_1A47E: cmp word ptr [si], 0F00h jle short loc_1A48D push 60h call sub_157E4 add al, 30h ; '0' jmp short loc_1A490 ; --------------------------------------------------------------------------- loc_1A48D: call sub_157D6 loc_1A490: mov [si+14h], al cmp byte ptr [di], 1 jnz short loc_1A49E cmp byte ptr [si+14h], 80h jb short loc_1A4A9 loc_1A49E: cmp byte ptr [di], 2 jnz short loc_1A4B1 cmp byte ptr [si+14h], 80h jb short loc_1A4B1 loc_1A4A9: mov al, [si+14h] neg al mov [si+14h], al loc_1A4B1: mov byte ptr [di], 0 loc_1A4B4: cmp [bp+arg_2], 0 jl short loc_1A52E lea ax, [si+8] push ax push word ptr [si+14h] mov ax, [bp+arg_2] add ax, ax mov dx, 64h ; 'd' sub dx, ax push dx call sub_158E2 mov ax, [si+8] add [si], ax mov ax, [si+0Ah] add [si+2], ax cmp word ptr [si+8], 0 jge short loc_1A4E6 mov byte ptr [si+0Eh], 0B6h jmp short loc_1A4EA ; --------------------------------------------------------------------------- loc_1A4E6: mov byte ptr [si+0Eh], 0B5h loc_1A4EA: cmp word ptr [si+2], 180h jge short loc_1A4FB mov word ptr [si+2], 180h mov byte ptr [di], 2 jmp short loc_1A50A ; --------------------------------------------------------------------------- loc_1A4FB: cmp word ptr [si+2], 800h jle short loc_1A50A mov word ptr [si+2], 800h mov byte ptr [di], 1 loc_1A50A: cmp word ptr [si], 200h jge short loc_1A516 mov word ptr [si], 200h jmp short loc_1A520 ; --------------------------------------------------------------------------- loc_1A516: cmp word ptr [si], 1600h jle short loc_1A520 mov word ptr [si], 1600h loc_1A520: cmp [bp+arg_2], 30h ; '0' jl short loc_1A52E mov byte ptr [si+0Eh], 0B4h mov al, 1 jmp short loc_1A530 ; --------------------------------------------------------------------------- loc_1A52E: mov al, 0 loc_1A530: pop di pop si pop bp retn 6 sub_1A45E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1A536 proc near arg_0 = word ptr 4 push bp mov bp, sp push si mov si, [bp+arg_0] push 5956h push si push 0C454h call sub_1A45E push 596Eh push si push 0C455h call sub_1A45E pop si pop bp retn 2 sub_1A536 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1A556 proc near push bp mov bp, sp cmp word_26346, 30h ; '0' jge short loc_1A58D mov eax, dword ptr word_26335+1 mov dword_2A722, eax mov ax, word_26346 add ax, 0FFE8h push ax push 90008h call sub_16A6B mov byte_26344, 0B7h cmp word_26346, 20h ; ' ' jnz short loc_1A5B1 push 8 call sub_14CEE pop bp retn ; --------------------------------------------------------------------------- loc_1A58D: call fp_2CE36 or al, al jnz short loc_1A59C mov byte_26344, 0B8h pop bp retn ; --------------------------------------------------------------------------- loc_1A59C: mov word_26346, 0 mov byte_26349, 0 mov byte_26344, 0B4h mov byte_2635C, 0B4h loc_1A5B1: pop bp retn sub_1A556 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1A5B3 proc near push bp mov bp, sp cmp word_26346, 30h ; '0' jge short loc_1A5DC mov eax, dword_2634E mov dword_2A722, eax mov ax, word_26346 add ax, 0FFE8h push ax push 90008h call sub_16A6B mov byte_2635C, 0B7h pop bp retn ; --------------------------------------------------------------------------- loc_1A5DC: call fp_2CE38 or al, al jnz short loc_1A5E9 mov byte_2635C, 0B8h loc_1A5E9: pop bp retn sub_1A5B3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1A5EB proc near push bp mov bp, sp mov ax, word_26346 mov bx, 6 cwd idiv bx or dx, dx jnz short loc_1A641 mov byte ptr word_25FFA, 12h mov byte_26000, 7 push 3Fh ; '?' call sub_157E4 sub al, 20h ; ' ' mov byte ptr word_26006, al mov byte ptr word_25FFA+1, 2Fh ; '/' mov ax, word_26335+1 mov word ptr dword_25FFC, ax mov ax, word_26338 add ax, 0FF80h mov word ptr dword_25FFC+2, ax mov word ptr dword_26002+2, 602h push 1Fh call sub_157E4 add al, 10h mov byte ptr word_26006+1, al call fp_25344 call sub_15A5C push 3 call sub_14CEE loc_1A641: cmp word_26346, 80h jnz short loc_1A64D mov al, 1 pop bp retn ; --------------------------------------------------------------------------- loc_1A64D: mov al, 0 pop bp retn sub_1A5EB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1A651 proc near push bp mov bp, sp cmp word_26346, 30h ; '0' jnz short loc_1A69C mov byte ptr word_25FFA, 12h mov byte_26000, 3 mov byte_26001, 1 mov byte ptr word_26006, 0 mov byte ptr word_25FFA+1, 74h ; 't' mov ax, word_26335+1 mov word ptr dword_25FFC, ax mov ax, word_26338 add ax, 0FF80h mov word ptr dword_25FFC+2, ax mov word ptr dword_26002, 810h mov byte ptr word_26006+1, 3Ch ; '<' call fp_25344 call sub_15A9C push 3 call sub_14CEE loc_1A69C: cmp word_26346, 60h jnz short loc_1A6A7 mov al, 1 pop bp retn ; --------------------------------------------------------------------------- loc_1A6A7: mov al, 0 pop bp retn sub_1A651 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1A6AB proc near push bp mov bp, sp cmp word_26346, 30h ; '0' jnz short loc_1A6BA mov byte_2D085, 0F0h loc_1A6BA: mov ax, word_26346 mov bx, 4 cwd idiv bx or dx, dx jnz short loc_1A709 mov byte ptr word_25FFA, 12h mov byte_26000, 2 mov al, byte_2D085 mov byte ptr word_26006, al add al, 5 mov byte_2D085, al mov byte ptr word_25FFA+1, 0 mov ax, word_26335+1 mov word ptr dword_25FFC, ax mov ax, word_26338 add ax, 0FF80h mov word ptr dword_25FFC+2, ax mov word ptr dword_26002, 0A05h mov byte ptr word_26006+1, 32h ; '2' call fp_25344 call sub_15A8E push 3 call sub_14CEE loc_1A709: cmp word_26346, 0A0h jnz short loc_1A715 mov al, 1 pop bp retn ; --------------------------------------------------------------------------- loc_1A715: mov al, 0 pop bp retn sub_1A6AB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1A719 proc near push bp mov bp, sp mov ax, word_26346 mov bx, 8 cwd idiv bx or dx, dx jnz short loc_1A765 mov byte ptr word_25FFA, 12h mov byte_26000, 2 mov byte ptr word_26006, 40h mov byte ptr word_25FFA+1, 2Eh ; '.' mov ax, word_26335+1 mov word ptr dword_25FFC, ax mov ax, word_26338 add ax, 0FF80h mov word ptr dword_25FFC+2, ax mov word ptr dword_26002, 0C08h mov byte ptr word_26006+1, 40h call fp_25344 call sub_15A5C push 3 call sub_14CEE loc_1A765: cmp word_26346, 80h jnz short loc_1A771 mov al, 1 pop bp retn ; --------------------------------------------------------------------------- loc_1A771: mov al, 0 pop bp retn sub_1A719 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1A775 proc near var_1 = byte ptr -1 enter 2, 0 cmp word_26346, 30h ; '0' jnz short loc_1A7AF mov eax, dword ptr word_26335+1 mov dword_2630A, eax mov ax, word ptr dword_2CEA0+2 sub ax, word ptr dword_2630A+2 push ax mov ax, word ptr dword_2CEA0 sub ax, word ptr dword_2630A push ax call iatan2 mov byte_26312, al mov byte_26309, 8 mov byte_26313, 8 push 0 call sub_175A4 loc_1A7AF: cmp word_26346, 50h ; 'P' jnz short loc_1A7BB push 0 call sub_175FE loc_1A7BB: mov ax, word_26346 mov bx, 4 cwd idiv bx or dx, dx jnz short loc_1A81A cmp word_26346, 50h ; 'P' jl short loc_1A7D7 cmp word_26346, 90h jl short loc_1A7E4 loc_1A7D7: mov ax, word_26346 mov bx, 8 cwd idiv bx or dx, dx jnz short loc_1A81A loc_1A7E4: mov ax, word ptr dword_2CEA0+2 sub ax, word ptr dword_2630A+2 push ax mov ax, word ptr dword_2CEA0 sub ax, word ptr dword_2630A push ax call iatan2 mov [bp-1], al mov al, byte_26012 sub [bp-1], al cmp byte ptr [bp-1], 0 jle short loc_1A80C inc al jmp short loc_1A817 ; --------------------------------------------------------------------------- loc_1A80C: cmp byte ptr [bp-1], 0 jge short loc_1A81A mov al, byte_26012 add al, 0FFh loc_1A817: mov byte_26012, al loc_1A81A: cmp word_26346, 0A0h jnz short loc_1A82B push 0 call sub_17627 mov al, 1 leave retn ; --------------------------------------------------------------------------- loc_1A82B: mov al, 0 leave retn sub_1A775 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1A82F proc near push bp mov bp, sp cmp word_26346, 30h ; '0' jnz short loc_1A843 mov byte_2D085, 20h ; ' ' mov byte_2D082, 0FCh loc_1A843: mov ax, word_26346 mov bx, 4 cwd idiv bx or dx, dx jnz short loc_1A8B9 mov byte ptr word_25FFA, 10h mov byte_26000, 4 mov al, byte_2D085 mov byte ptr word_26006, al mov al, byte_2D082 add byte_2D085, al mov byte ptr word_25FFA+1, 2Eh ; '.' mov ax, word_26335+1 mov word ptr dword_25FFC, ax mov ax, word_26338 add ax, 0FF80h mov word ptr dword_25FFC+2, ax mov byte ptr dword_26002, 4 mov byte ptr word_26006+1, 26h ; '&' call fp_25344 call sub_15A5C mov ax, word_26346 mov bx, 10h cwd idiv bx or dx, dx jnz short loc_1A8B2 push 7 call sub_157E4 add al, 10h mov dl, byte_2D085 sub dl, al mov byte_2D085, dl mov al, byte_2D082 neg al mov byte_2D082, al loc_1A8B2: push 3 call sub_14CEE loc_1A8B9: cmp word_26346, 100h jnz short loc_1A8C5 mov al, 1 pop bp retn ; --------------------------------------------------------------------------- loc_1A8C5: mov al, 0 pop bp retn sub_1A82F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1A8C9 proc near push bp mov bp, sp mov ax, word_26346 mov bx, 10h cwd idiv bx or dx, dx jnz short loc_1A91D mov byte ptr word_25FFA, 10h mov byte_26000, 3 push 3Fh ; '?' call sub_157E4 sub al, 20h ; ' ' mov byte ptr word_26006, al mov byte ptr word_25FFA+1, 32h ; '2' mov ax, word ptr dword_2634E mov word ptr dword_25FFC, ax mov ax, word ptr dword_2634E+2 add ax, 0FF80h mov word ptr dword_25FFC+2, ax mov word ptr dword_26002, 507h mov byte_26001, 0Ah push 1Fh call sub_157E4 add al, 10h mov byte ptr word_26006+1, al call fp_25344 call sub_15A70 loc_1A91D: mov al, 0 pop bp retn sub_1A8C9 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1A921 proc near push bp mov bp, sp mov ax, word_26346 mov bx, 10h cwd idiv bx or dx, dx jnz short loc_1A966 mov byte ptr word_25FFA, 10h mov byte_26000, 4 call sub_157D6 mov byte ptr word_26006, al mov byte ptr word_25FFA+1, 32h ; '2' mov ax, word ptr dword_2634E mov word ptr dword_25FFC, ax mov ax, word ptr dword_2634E+2 add ax, 0FF80h mov word ptr dword_25FFC+2, ax mov byte ptr dword_26002, 20h ; ' ' mov byte ptr word_26006+1, 28h ; '(' call fp_25344 call sub_15A5C loc_1A966: mov al, 0 pop bp retn sub_1A921 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1A96A proc near push bp mov bp, sp mov ax, word_26346 mov bx, 10h cwd idiv bx or dx, dx jnz short loc_1A9AF mov byte ptr word_25FFA, 10h mov byte_26000, 7 mov byte ptr word_26006, 0 mov byte ptr word_25FFA+1, 32h ; '2' mov ax, word ptr dword_2634E mov word ptr dword_25FFC, ax mov ax, word ptr dword_2634E+2 add ax, 0FF80h mov word ptr dword_25FFC+2, ax mov word ptr dword_26002+2, 408h mov byte ptr word_26006+1, 20h ; ' ' call fp_25344 call sub_15A5C loc_1A9AF: mov al, 0 pop bp retn sub_1A96A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1A9B3 proc near push bp mov bp, sp mov ax, word_26346 mov bx, 8 cwd idiv bx or dx, dx jnz short loc_1A9FF mov byte ptr word_25FFA, 12h mov byte_26000, 2 mov byte ptr word_26006, 40h mov byte ptr word_25FFA+1, 32h ; '2' mov ax, word ptr dword_2634E mov word ptr dword_25FFC, ax mov ax, word ptr dword_2634E+2 add ax, 0FF80h mov word ptr dword_25FFC+2, ax mov word ptr dword_26002, 0C08h mov byte ptr word_26006+1, 40h call fp_25344 call sub_15A5C push 3 call sub_14CEE loc_1A9FF: mov al, 0 pop bp retn sub_1A9B3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1AA03 proc near push bp mov bp, sp mov ax, word_26346 mov bx, 8 cwd idiv bx or dx, dx jnz short loc_1AA48 mov byte ptr word_25FFA, 10h mov byte_26000, 7 mov byte ptr word_26006, 0 mov byte ptr word_25FFA+1, 30h ; '0' mov ax, word ptr dword_2634E mov word ptr dword_25FFC, ax mov ax, word ptr dword_2634E+2 add ax, 0FF80h mov word ptr dword_25FFC+2, ax mov word ptr dword_26002+2, 608h mov byte ptr word_26006+1, 20h ; ' ' call fp_25344 call sub_15A5C loc_1AA48: mov al, 0 pop bp retn sub_1AA03 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1AA4C proc near push bp mov bp, sp mov ax, word_26346 mov bx, 2 cwd idiv bx or dx, dx jnz short loc_1AA97 mov byte ptr word_25FFA, 10h mov byte_26000, 2 call sub_157D6 mov byte ptr word_26006, al mov byte ptr word_25FFA+1, 0 mov ax, word ptr dword_2634E mov word ptr dword_25FFC, ax mov ax, word ptr dword_2634E+2 add ax, 0FF80h mov word ptr dword_25FFC+2, ax mov word ptr dword_26002, 202h push 1Fh call sub_157E4 add al, 18h mov byte ptr word_26006+1, al call fp_25344 call sub_15A5C loc_1AA97: mov al, 0 pop bp retn sub_1AA4C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1AA9B proc near push bp mov bp, sp cmp word_26346, 30h ; '0' jnz short loc_1AAAF mov byte_2D084, 0 mov byte_2D083, 4 loc_1AAAF: mov ax, word_26346 mov bx, 4 cwd idiv bx or dx, dx jnz short loc_1AB1B mov byte ptr word_25FFA, 10h mov byte_26000, 4 mov al, byte_2D084 mov byte ptr word_26006, al mov al, byte_2D083 add byte_2D084, al mov byte ptr word_25FFA+1, 32h ; '2' mov ax, word ptr dword_2634E mov word ptr dword_25FFC, ax mov ax, word ptr dword_2634E+2 add ax, 0FF80h mov word ptr dword_25FFC+2, ax mov byte ptr dword_26002, 4 mov byte ptr word_26006+1, 26h ; '&' call fp_25344 call sub_15A5C mov ax, word_26346 mov bx, 10h cwd idiv bx or dx, dx jnz short loc_1AB1B push 7 call sub_157E4 add al, byte_2D084 add al, 10h mov byte_2D084, al mov al, byte_2D083 neg al mov byte_2D083, al loc_1AB1B: mov al, 0 pop bp retn sub_1AA9B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1AB1F proc near var_1 = byte ptr -1 enter 2, 0 cmp word_26346, 30h ; '0' jz short loc_1AB31 cmp word_26346, 60h jnz short loc_1AB72 loc_1AB31: mov eax, dword_2634E mov dword ptr word_2BC71+1, eax mov word_2BC82, 0Bh mov byte_2BC88, 20h ; ' ' mov ax, word_26335+1 cmp ax, word ptr dword_2634E jl short loc_1AB53 mov [bp+var_1], 40h jmp short loc_1AB57 ; --------------------------------------------------------------------------- loc_1AB53: mov [bp+var_1], 0C0h loc_1AB57: push word_2BC71+1 push word_2BC74 push word ptr [bp+var_1] call sub_15A24 mov byte ptr word_2BC71, al call sub_17687 push 0Fh call sub_14CEE loc_1AB72: mov al, 0 leave retn sub_1AB1F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1AB76 proc near var_1 = byte ptr -1 enter 2, 0 cmp word_26346, 30h ; '0' jz short loc_1AB88 cmp word_26346, 60h jnz short loc_1ABC9 loc_1AB88: mov eax, dword ptr word_26335+1 mov dword ptr word_2BC71+1, eax mov word_2BC82, 9 mov byte_2BC88, 20h ; ' ' mov ax, word_26335+1 cmp ax, word ptr dword_2634E jge short loc_1ABAA mov [bp+var_1], 40h jmp short loc_1ABAE ; --------------------------------------------------------------------------- loc_1ABAA: mov [bp+var_1], 0C0h loc_1ABAE: push word_2BC71+1 push word_2BC74 push word ptr [bp+var_1] call sub_15A24 mov byte ptr word_2BC71, al call sub_17687 push 0Fh call sub_14CEE loc_1ABC9: cmp word_26346, 80h jnz short loc_1ABD6 mov ax, 1 jmp short locret_1ABD8 ; --------------------------------------------------------------------------- loc_1ABD6: xor ax, ax locret_1ABD8: leave retn sub_1AB76 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1ABDA proc far var_4 = word ptr -4 var_2 = word ptr -2 enter 4, 0 push si mov ax, word_26338 cmp ax, word ptr dword_2634E+2 jle short loc_1ABEE mov eax, dword ptr word_26335+1 jmp short loc_1ABF2 ; --------------------------------------------------------------------------- loc_1ABEE: mov eax, dword_2634E loc_1ABF2: mov dword_2C922, eax inc word_26346 mov al, byte_26345 mov ah, 0 mov [bp+var_4], ax mov cx, 6 ; switch 6 cases mov bx, offset word_1AFBC loc_1AC08: mov ax, cs:[bx] cmp ax, [bp+var_4] jz short loc_1AC18 add bx, 2 loop loc_1AC08 jmp loc_1AFA7 ; default ; --------------------------------------------------------------------------- loc_1AC18: jmp word ptr cs:[bx+0Ch] ; switch jump loc_1AC1C: cmp word_26346, 1 ; jumptable 0001AC18 case 0 jnz short loc_1AC5E mov word_26342, 1194h mov word_2634C, 0 mov word_2635A, 1194h mov word_26364, 0 mov word_2A72A, 400h mov byte_2A72F, 2 mov word_2A72C, 8 mov si, 0D4h jmp short loc_1AC58 ; --------------------------------------------------------------------------- loc_1AC51: push si call super_convert_tiny inc si loc_1AC58: cmp si, 0E4h jl short loc_1AC51 loc_1AC5E: call sub_1FB07 push 1800180h push 0Ah call sub_1A3EF cmp word_26346, 80h jl loc_1AFA7 ; default inc byte_26345 mov word_26346, 0 push 0Dh call sub_14CEE mov fp_23F5A, offset sub_D20C jmp loc_1AFA7 ; default ; --------------------------------------------------------------------------- loc_1AC90: call sub_1FB07 ; jumptable 0001AC18 case 1 push 1800180h push 0Ah call sub_1A3EF cmp word_26346, 40h jl loc_1AFA7 ; default inc byte_26345 loc_1ACAB: mov word_26346, 0 mov byte_26349, 1 mov byte ptr word_2634A+1, 0 mov fp_2CE36, offset sub_1A5EB mov fp_2CE38, offset sub_1A8C9 mov fp_2D06C, offset sub_FF79 jmp loc_1AFA7 ; default ; --------------------------------------------------------------------------- loc_1ACD0: mov al, byte_26349 ; jumptable 0001AC18 case 2 mov ah, 0 or ax, ax jz short loc_1ACE3 cmp ax, 1 jz loc_1ADC9 jmp loc_1ADCF ; --------------------------------------------------------------------------- loc_1ACE3: cmp byte ptr word_2634A+1, 9 jz short loc_1ACF1 cmp byte ptr word_2634A+1, 0Eh jnz short loc_1AD20 loc_1ACF1: mov ax, word_26346 add ax, 0FFC0h mov [bp+var_2], ax cmp word_26346, 10h jnz short loc_1AD29 cmp byte_2C979, 14h jnb short loc_1AD0D mov byte_2C979, 14h loc_1AD0D: push 0Fh call sub_14CEE push 1 call sub_162CC push 2 call sub_1634C jmp short loc_1AD29 ; --------------------------------------------------------------------------- loc_1AD20: mov ax, word_26346 add ax, 0FFF0h mov [bp+var_2], ax loc_1AD29: push [bp+var_2] call sub_1A536 or al, al jz loc_1ADCF mov word_26346, 0 inc byte_26349 inc byte ptr word_2634A+1 cmp byte ptr word_2634A+1, 0Ah jnb short loc_1AD6F mov al, byte ptr word_2634A+1 mov ah, 0 and ax, 3 add ax, ax mov bx, ax mov ax, off_22788[bx] mov fp_2CE36, ax mov al, byte ptr word_2634A+1 mov ah, 0 and ax, 3 add ax, ax mov bx, ax mov ax, off_227A0[bx] jmp short loc_1ADB8 ; --------------------------------------------------------------------------- loc_1AD6F: cmp byte ptr word_2634A+1, 0Fh jnb short loc_1AD8E mov fp_2CE36, offset sub_1A775 mov al, byte ptr word_2634A+1 mov ah, 0 and ax, 3 add ax, ax mov bx, ax mov ax, off_227A8[bx] jmp short loc_1ADB8 ; --------------------------------------------------------------------------- loc_1AD8E: cmp byte ptr word_2634A+1, 24h ; '$' jnb short loc_1ADBD mov al, byte ptr word_2634A+1 mov ah, 0 and ax, 3 add ax, ax mov bx, ax mov ax, off_22790[bx] mov fp_2CE36, ax mov al, byte ptr word_2634A+1 mov ah, 0 and ax, 3 add ax, ax mov bx, ax mov ax, off_227B0[bx] loc_1ADB8: mov fp_2CE38, ax jmp short loc_1ADCF ; --------------------------------------------------------------------------- loc_1ADBD: mov byte ptr word_2634A+1, 0 mov [bp+var_2], 1 jmp short loc_1AE2C ; --------------------------------------------------------------------------- loc_1ADC9: call sub_1A556 call sub_1A5B3 loc_1ADCF: mov ax, word_26342 add ax, word_2635A cmp ax, 157Ch jge short loc_1ADF4 cmp byte ptr word_2634A+1, 9 jnb short loc_1ADF4 mov byte_26349, 0 mov word_26346, 0 mov byte ptr word_2634A+1, 9 jmp short loc_1AE17 ; --------------------------------------------------------------------------- loc_1ADF4: mov ax, word_26342 add ax, word_2635A cmp ax, 8CAh jge short loc_1AE17 cmp byte ptr word_2634A+1, 0Eh jnb short loc_1AE17 mov byte_26349, 0 mov word_26346, 0 mov byte ptr word_2634A+1, 0Eh loc_1AE17: call sub_1A42B mov ah, 0 mov [bp+var_2], ax cmp [bp+var_2], 0 jz loc_1AFA7 ; default mov byte ptr word_2634A+1, 1 loc_1AE2C: mov al, byte ptr [bp+var_2] add al, 0FFh mov byte_26363, al mov byte_26345, 0FDh mov word_26346, 0 cmp byte_26008, 0 jz loc_1AFA7 ; default push 0 call sub_17627 jmp short loc_1AE69 ; --------------------------------------------------------------------------- loc_1AE4F: cmp word_26346, 10h ; jumptable 0001AC18 case 253 jnz short loc_1AE6C cmp byte_26363, 0 jnz short loc_1AE64 push 4 call sub_162CC jmp short loc_1AE69 ; --------------------------------------------------------------------------- loc_1AE64: push 4 call sub_1634C loc_1AE69: jmp loc_1AFA7 ; default ; --------------------------------------------------------------------------- loc_1AE6C: cmp word_26346, 20h ; ' ' jnz loc_1AFA7 ; default cmp byte_26363, 0 jnz short loc_1AE8B call sub_1637A mov byte_26344, 4 mov byte_2635C, 0B4h jmp short loc_1AE98 ; --------------------------------------------------------------------------- loc_1AE8B: call sub_163B6 mov byte_2635C, 4 mov byte_26344, 0B4h loc_1AE98: inc byte_26345 mov al, byte ptr word_2634A+1 mov byte_2C978, al mov word_26346, 0 push 0Ch call sub_14CEE mov byte_2CEBC, 0FFh jmp loc_1AFA7 ; default ; --------------------------------------------------------------------------- loc_1AEB7: cmp word_26346, 0Ch ; jumptable 0001AC18 case 254 jge short loc_1AEE2 cmp byte_25FE2, 0 jnz short loc_1AECA mov ax, 0FFFCh jmp short loc_1AECD ; --------------------------------------------------------------------------- loc_1AECA: mov ax, 4 loc_1AECD: mov word_2CE02, ax cmp byte_25FE3, 1 ja short loc_1AEDC mov ax, 0FFFCh jmp short loc_1AEDF ; --------------------------------------------------------------------------- loc_1AEDC: mov ax, 4 loc_1AEDF: mov word_2CE04, ax loc_1AEE2: mov fp_23F5A, offset sub_BBE8 mov word_25FE6, 2 mov ax, word_26346 mov bx, 8 cwd idiv bx or dx, dx jnz loc_1AFA7 ; default cmp byte_26363, 0 jnz short loc_1AF0A inc byte_26344 jmp short loc_1AF0E ; --------------------------------------------------------------------------- loc_1AF0A: inc byte_2635C loc_1AF0E: cmp word_26346, 40h jl loc_1AFA7 ; default inc byte_26345 mov word_26346, 0 jmp loc_1AFA7 ; default ; --------------------------------------------------------------------------- loc_1AF24: mov PaletteTone, 3Ch ; '<' ; jumptable 0001AC18 case 255 mov byte_25FE9, 1 cmp word_26346, 1 jnz short loc_1AFA7 ; default cmp byte_26363, 0 jnz short loc_1AF66 push ds push offset a_dm09_tx2 ; "_DM09.TX2" call sub_ED87 mov word ptr dword_2CE9A+2, ds mov word ptr dword_2CE9A, offset aTH05_10 mov eax, dword_2634E mov dword ptr word_26335+1, eax setfarfp farfp_2D066, sub_1B9F2 jmp short loc_1AF85 ; --------------------------------------------------------------------------- loc_1AF66: push ds push offset a_dm08_tx2 ; "_DM08.TX2" call sub_ED87 mov word ptr dword_2CE9A+2, ds mov word ptr dword_2CE9A, offset aTH05_11 setfarfp farfp_2D066, sub_1C518 loc_1AF85: call sub_F2B4 mov fp_2CE88, offset sub_11CBB mov byte_26345, 0 mov word_26346, 0 mov fp_2D06A, offset sub_10F12 mov word_26342, 1EDCh loc_1AFA7: call sub_17726 ; default mov ax, word_26342 add ax, word_2635A push ax push 2328h call sub_17354 pop si leave retf sub_1ABDA endp ; --------------------------------------------------------------------------- db 0 word_1AFBC dw 0, 1, 2, 0FDh dw 0FEh, 0FFh ; value table for switch statement dw offset loc_1AC1C ; jump table for switch statement dw offset loc_1AC90 dw offset loc_1ACD0 dw offset loc_1AE4F dw offset loc_1AEB7 dw offset loc_1AF24 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1AFD4 proc near push bp mov bp, sp push si cmp word_26332, 10h jl loc_1B09F mov ax, word_26332 add ax, 0FFF0h mov si, ax cmp si, 20h ; ' ' jge short loc_1B039 or si, si jnz short loc_1B004 mov byte_2D085, 0 push 0Dh call sub_14CEE mov ax, word ptr dword_26320 mov word_2CE3A, ax loc_1B004: mov ax, word_2CE3A mov word ptr dword_26320, ax cmp si, 14h jle short loc_1B01C lea ax, [si-14h] cwd sub ax, dx sar ax, 1 add ax, 14h mov si, ax loc_1B01C: cmp byte_25FE2, 0 jz short loc_1B02E mov ax, si shl ax, 5 add word ptr dword_26320, ax jmp short loc_1B09F ; --------------------------------------------------------------------------- loc_1B02E: mov ax, si shl ax, 5 sub word ptr dword_26320, ax jmp short loc_1B09F ; --------------------------------------------------------------------------- loc_1B039: cmp si, 20h ; ' ' jnz short loc_1B058 push 1000h call sub_157FA add ax, 400h mov word_2CE3A, ax push 200h call sub_157FA add ax, 400h mov word ptr dword_26320+2, ax jmp short loc_1B09F ; --------------------------------------------------------------------------- loc_1B058: mov ax, 40h sub ax, si mov si, ax cmp si, 14h jle short loc_1B071 add ax, 0FFECh cwd sub ax, dx sar ax, 1 add ax, 14h mov si, ax loc_1B071: mov ax, word_2CE3A mov word ptr dword_26320, ax cmp byte_25FE2, 0 jz short loc_1B089 mov ax, si shl ax, 5 add word ptr dword_26320, ax jmp short loc_1B092 ; --------------------------------------------------------------------------- loc_1B089: mov ax, si shl ax, 5 sub word ptr dword_26320, ax loc_1B092: or si, si jnz short loc_1B09F mov byte_2D085, 1 mov al, 1 jmp short loc_1B0A1 ; --------------------------------------------------------------------------- loc_1B09F: mov al, 0 loc_1B0A1: pop si pop bp retn sub_1AFD4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1B0A4 proc near push bp mov bp, sp push si cmp word_26332, 10h jnz short loc_1B0CE push 8 call sub_14CEE mov byte ptr word_25FFA, 2 mov byte_26000, 0Dh mov byte ptr dword_26002, 7 call fp_25344 mov byte_26330, 0D4h loc_1B0CE: cmp word_26332, 30h ; '0' jl short loc_1B139 cmp word_26332, 50h ; 'P' jg short loc_1B139 mov ax, word_26332 mov bx, 8 cwd idiv bx or dx, dx jnz short loc_1B139 mov byte ptr word_26006+1, 8 xor si, si jmp short loc_1B12D ; --------------------------------------------------------------------------- loc_1B0F2: test si, 1 jz short loc_1B0FC mov al, 74h ; 't' jmp short loc_1B0FE ; --------------------------------------------------------------------------- loc_1B0FC: mov al, 0 loc_1B0FE: mov byte ptr word_25FFA+1, al push 300h call sub_157FA add ax, word ptr dword_26320 sub ax, 180h mov word ptr dword_25FFC, ax push 300h call sub_157FA add ax, word ptr dword_26320+2 sub ax, 200h mov word ptr dword_25FFC+2, ax call sub_15A8E mov al, byte ptr word_26006+1 add al, 10h mov byte ptr word_26006+1, al inc si loc_1B12D: cmp si, 4 jl short loc_1B0F2 push 0Fh call sub_14CEE loc_1B139: cmp word_26332, 60h jl short loc_1B150 mov byte_26330, 0D0h mov word_26332, 0 mov byte_2D084, 0 loc_1B150: pop si pop bp retn sub_1B0A4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1B153 proc near push bp mov bp, sp cmp word_26332, 10h jnz short loc_1B17C push 8 call sub_14CEE mov byte_26000, 4 mov byte ptr dword_26002, 10h call fp_25344 mov byte_26330, 0D4h mov byte ptr word_25FFA+1, 54h ; 'T' loc_1B17C: cmp word_26332, 30h ; '0' jl short loc_1B1CC cmp word_26332, 50h ; 'P' jg short loc_1B1CC mov ax, word_26332 mov bx, 4 cwd idiv bx or dx, dx jnz short loc_1B1CC mov ax, word_26332 mov bx, 8 cwd idiv bx or dx, dx jnz short loc_1B1B0 mov byte ptr word_26006+1, 38h ; '8' mov byte ptr word_25FFA, 2 jmp short loc_1B1BA ; --------------------------------------------------------------------------- loc_1B1B0: mov byte ptr word_26006+1, 28h ; '(' mov byte ptr word_25FFA, 0 loc_1B1BA: call sub_15A5C mov al, byte ptr word_26006 add al, 4 mov byte ptr word_26006, al push 3 call sub_14CEE loc_1B1CC: cmp word_26332, 60h jl short loc_1B1E3 mov byte_26330, 0D0h mov word_26332, 0 mov byte_2D084, 0 loc_1B1E3: pop bp retn sub_1B153 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1B1E5 proc near push bp mov bp, sp cmp word_26332, 10h jnz short loc_1B221 push 8 call sub_14CEE mov byte ptr word_25FFA, 12h mov byte_26000, 9 mov byte ptr word_26006, 20h ; ' ' mov dword_26002, 4040803h mov byte ptr word_26006+1, 10h mov byte ptr word_25FFA+1, 2Ch ; ',' call fp_25344 mov byte_26330, 0D4h loc_1B221: cmp word_26332, 30h ; '0' jl short loc_1B256 cmp word_26332, 50h ; 'P' jg short loc_1B256 mov ax, word_26332 mov bx, 4 cwd idiv bx or dx, dx jnz short loc_1B256 call sub_15A5C mov al, byte ptr word_26006+1 add al, 0Ch mov byte ptr word_26006+1, al mov al, byte ptr word_26006 add al, 0F8h mov byte ptr word_26006, al push 0Fh call sub_14CEE loc_1B256: cmp word_26332, 60h jl short loc_1B26D mov byte_26330, 0D0h mov word_26332, 0 mov byte_2D084, 0 loc_1B26D: pop bp retn sub_1B1E5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1B26F proc far push bp mov bp, sp mov eax, dword_26320 mov dword_25FFC, eax mov dword_2A722, eax inc word_26332 mov al, byte_26331 mov ah, 0 or ax, ax jz short loc_1B293 cmp ax, 1 jz short loc_1B2DC jmp loc_1B392 ; --------------------------------------------------------------------------- loc_1B293: cmp word_26332, 1 jnz short loc_1B29F mov byte_2D085, 1 loc_1B29F: push 5940h call sub_152D2 push 1800180h push 0Ah call sub_1FA9D cmp word_26332, 0C0h jl loc_1B3A1 inc byte_26331 mov word_26332, 0 mov byte ptr word_26335, 0 mov byte_2D084, 1 mov byte_2D083, 0 mov word_26328, 0 jmp loc_1B3A1 ; --------------------------------------------------------------------------- loc_1B2DC: mov eax, dword_26320 mov dword_26324, eax mov al, byte_2D084 mov ah, 0 mov bx, ax cmp bx, 3 ja short loc_1B32F add bx, bx jmp cs:off_1B3BA[bx] loc_1B2F7: call sub_1AFD4 or al, al jz short loc_1B32F mov word_26332, 0 inc byte_2D083 mov al, byte_2D083 mov ah, 0 mov bx, 3 cwd idiv bx inc dl mov byte_2D084, dl cmp byte_2D083, 10h jb short loc_1B32F jmp short loc_1B368 ; --------------------------------------------------------------------------- loc_1B322: call sub_1B0A4 jmp short loc_1B32F ; --------------------------------------------------------------------------- loc_1B327: call sub_1B153 jmp short loc_1B32F ; --------------------------------------------------------------------------- loc_1B32C: call sub_1B1E5 loc_1B32F: cmp byte_2D085, 0 jz short loc_1B34A push 1800180h push 4 call sub_1FA9D mov byte_26334, al mov ah, 0 sub word_2632E, ax loc_1B34A: cmp word_2632E, 0 jg short loc_1B3A1 mov byte_2C978, 1 push 0Fh call sub_173AC push word ptr dword_26320 push word ptr dword_26320+2 push 4 call sub_16D84 loc_1B368: mov byte_26331, 0FEh mov byte_26330, 4 mov word_26332, 0 push word ptr dword_26320 push word ptr dword_26320+2 push 800030h call sub_1597C push 0Ch call sub_14CEE jmp short loc_1B3A1 ; --------------------------------------------------------------------------- loc_1B392: call sub_17486 push word_2632E push 44Ch call sub_17354 pop bp retf ; --------------------------------------------------------------------------- loc_1B3A1: push word_2632E push 44Ch call sub_17354 mov ax, word ptr dword_26320 mov word ptr dword_2C922, ax mov ax, word ptr dword_26320+2 mov word ptr dword_2C922+2, ax pop bp retf sub_1B26F endp ; --------------------------------------------------------------------------- db 0 off_1B3BA dw offset loc_1B2F7 dw offset loc_1B322 dw offset loc_1B327 dw offset loc_1B32C ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1B3C2 proc near push bp mov bp, sp push si mov si, 0B2AAh mov ax, 1 jmp short loc_1B3D5 ; --------------------------------------------------------------------------- loc_1B3CE: mov byte ptr [si], 0 inc ax add si, 1Ah loc_1B3D5: cmp ax, 40h jl short loc_1B3CE pop si pop bp retn sub_1B3C2 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1B3DD proc near var_2 = word ptr -2 enter 2, 0 push si push di mov al, byte_2BC88 call sub_15A42 mov ah, 0 mov [bp+var_2], ax mov si, 0B2AAh mov di, 1 jmp short loc_1B43D ; --------------------------------------------------------------------------- loc_1B3F6: cmp byte ptr [si], 0 jnz short loc_1B439 mov byte ptr [si], 1 mov eax, dword ptr word_2BC71+1 mov [si+2], eax lea ax, [si+0Ah] push ax push word_2BC71 push [bp+var_2] call sub_158E2 mov al, byte ptr word_2BC71 mov [si+1], al mov al, byte_2BC88 mov [si+18h], al mov ax, word_2BC82 mov [si+12h], ax mov ax, word_2BC84 mov [si+14h], ax mov word ptr [si+16h], 0 mov ax, word_2BC80 mov [si+10h], ax jmp short loc_1B442 ; --------------------------------------------------------------------------- loc_1B439: inc di add si, 1Ah loc_1B43D: cmp di, 40h jl short loc_1B3F6 loc_1B442: pop di pop si leave retn sub_1B3DD endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1B446 proc near var_2 = word ptr -2 enter 2, 0 push si push di mov word_2CED6, 80h mov word_2CED8, 80h mov si, 0B2AAh mov di, 1 jmp loc_1B54C ; --------------------------------------------------------------------------- loc_1B461: cmp byte ptr [si], 0 jz loc_1B548 inc word ptr [si+0Eh] lea ax, [si+2] push ax call sub_152D2 cmp ax, 0FF00h jle short loc_1B488 cmp ax, 1900h jge short loc_1B488 cmp dx, 0FF00h jle short loc_1B488 cmp dx, 1800h jl short loc_1B48B loc_1B488: jmp loc_1B545 ; --------------------------------------------------------------------------- loc_1B48B: cmp byte ptr [si], 2 jz loc_1B535 sub ax, word ptr dword_2CEA0 sub dx, word ptr dword_2CEA0+2 add ax, 80h cmp ax, 100h ja short loc_1B4B1 add dx, 80h cmp dx, 100h ja short loc_1B4B1 mov byte_2CEC1, 1 loc_1B4B1: mov eax, [si+2] mov dword_2CED2, eax call sub_126B3 mov [bp+var_2], ax or ax, ax jz loc_1B548 cmp word ptr [si+12h], 0D4h jz short loc_1B4D2 push 0Ah jmp short loc_1B52E ; --------------------------------------------------------------------------- loc_1B4D2: mov word ptr [si+16h], 1 mov ax, [bp+var_2] sub [si+14h], ax push 4 call sub_14CEE cmp word ptr [si+14h], 0 jge short loc_1B548 inc byte ptr [si] mov word ptr [si+0Eh], 0 mov word ptr [si+12h], 0E0h mov ax, [si+0Ah] mov bx, 4 cwd idiv bx mov [si+0Ah], ax mov ax, [si+0Ch] cwd idiv bx mov [si+0Ch], ax add dword_2CE1A, 226h cmp word ptr [si+10h], 0 jz short loc_1B52C cmp word ptr [si+4], 0F00h jg short loc_1B52C mov eax, [si+2] mov dword_25FFC, eax call sub_15A5C loc_1B52C: push 3 loc_1B52E: call sub_14CEE jmp short loc_1B548 ; --------------------------------------------------------------------------- loc_1B535: test byte ptr [si+0Eh], 3 jnz short loc_1B548 inc word ptr [si+12h] cmp word ptr [si+12h], 0E4h jl short loc_1B548 loc_1B545: mov byte ptr [si], 0 loc_1B548: inc di add si, 1Ah loc_1B54C: cmp di, 40h jl loc_1B461 pop di pop si leave retn sub_1B446 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1B557 proc near push bp mov bp, sp cmp word_26346, 30h ; '0' jnz short loc_1B599 call sub_157D6 mov byte_2D085, al mov byte_2D084, 1 mov byte ptr word_25FFA, 10h mov byte_26000, 4 mov byte_26001, 0Ah mov byte ptr word_25FFA+1, 32h ; '2' mov al, byte_25FEB add al, 5 mov byte ptr dword_26002, al mov byte ptr word_26006+1, 36h ; '6' mov byte_26344, 0D0h call fp_25344 jmp loc_1B624 ; --------------------------------------------------------------------------- loc_1B599: cmp word_26346, 30h ; '0' jle loc_1B624 mov ax, word_26346 mov bx, 2 cwd idiv bx or dx, dx jnz short loc_1B5E2 mov al, byte_2D085 mov byte ptr word_26006, al mov al, byte_2D084 add byte_2D085, al call sub_15A70 mov ax, word_26346 mov bx, 10h cwd idiv bx or dx, dx jnz short loc_1B5DB mov al, byte_2D084 mov ah, 0 imul ax, 0Ch add al, byte_2D085 mov byte_2D085, al loc_1B5DB: push 3 call sub_14CEE loc_1B5E2: cmp word_26346, 0A0h jnz short loc_1B5F2 mov al, byte_2D084 neg al mov byte_2D084, al loc_1B5F2: cmp word_26346, 100h jnz short loc_1B609 mov word_26346, 0 mov byte_26349, 0 mov al, 1 pop bp retn ; --------------------------------------------------------------------------- loc_1B609: cmp byte ptr word_2634A+1, 2 jb short loc_1B624 cmp word_26346, 40h jl short loc_1B624 mov ax, word_26346 mov bx, 40h cwd idiv bx push dx call sub_16BD9 loc_1B624: mov al, 0 pop bp retn sub_1B557 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1B628 proc near push bp mov bp, sp cmp word_26346, 8 jnz short loc_1B64D mov byte ptr word_26006, 80h mov byte ptr word_25FFA, 12h mov byte_26000, 2 mov byte_26344, 0D0h mov byte ptr word_25FFA+1, 30h ; '0' jmp short loc_1B6C0 ; --------------------------------------------------------------------------- loc_1B64D: cmp word_26346, 8 jle short loc_1B6C0 mov ax, word_26346 mov bx, 2 cwd idiv bx or dx, dx jnz short loc_1B68E push 1Fh call sub_157E4 add al, 8 mov byte ptr word_26006+1, al push 7 call sub_157E4 mov byte ptr dword_26002, al mov byte ptr dword_26002+1, 6 call fp_25344 call sub_15A5C mov al, byte ptr word_26006 add al, 6 mov byte ptr word_26006, al push 3 call sub_14CEE loc_1B68E: cmp word_26346, 100h jnz short loc_1B6A5 mov word_26346, 0 mov byte_26349, 0 mov al, 1 pop bp retn ; --------------------------------------------------------------------------- loc_1B6A5: cmp byte ptr word_2634A+1, 2 jb short loc_1B6C0 cmp word_26346, 40h jl short loc_1B6C0 mov ax, word_26346 mov bx, 40h cwd idiv bx push dx call sub_16BD9 loc_1B6C0: mov al, 0 pop bp retn sub_1B628 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1B6C4 proc near push bp mov bp, sp cmp word_26346, 8 jnz short loc_1B6ED mov byte ptr word_25FFA, 12h mov byte_26000, 4 mov byte ptr word_25FFA+1, 0 mov byte ptr dword_26002, 18h call fp_25344 mov byte_26344, 0D0h jmp short loc_1B750 ; --------------------------------------------------------------------------- loc_1B6ED: cmp word_26346, 8 jle short loc_1B750 mov ax, word_26346 mov bx, 10h cwd idiv bx or dx, dx jnz short loc_1B71B call sub_157D6 mov byte ptr word_26006, al push 1Fh call sub_157E4 add al, 20h ; ' ' mov byte ptr word_26006+1, al call sub_15A5C push 0Fh call sub_14CEE loc_1B71B: cmp word_26346, 0A0h jnz short loc_1B732 mov word_26346, 0 mov byte_26349, 0 mov al, 1 pop bp retn ; --------------------------------------------------------------------------- loc_1B732: cmp byte ptr word_2634A+1, 2 jb short loc_1B750 cmp word_26346, 40h jl short loc_1B750 mov ax, word_26346 mov bx, 40h cwd idiv bx add dx, 0FFE0h push dx call sub_16BD9 loc_1B750: mov al, 0 pop bp retn sub_1B6C4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1B754 proc near push bp mov bp, sp cmp word_26346, 20h ; ' ' jge short loc_1B799 mov ax, word_26346 add ax, 0FFF0h push ax push 90008h call sub_16A6B mov byte ptr word_25FFA, 12h mov byte_26000, 3 mov byte ptr word_25FFA+1, 30h ; '0' mov word ptr dword_26002, 0C05h mov byte ptr word_26006, 0 call fp_25344 mov byte_26344, 0D0h mov byte_2BC88, 40h jmp loc_1B82E ; --------------------------------------------------------------------------- loc_1B799: mov ax, word_26346 mov bx, 20h ; ' ' cwd idiv bx or dx, dx jnz short loc_1B7F9 push 1Fh call sub_157E4 add al, 10h mov byte ptr word_26006+1, al call sub_15A5C push word_2BC71+1 push word_2BC74 push 0 call sub_15A24 mov byte ptr word_2BC71, al call sub_1B3DD mov al, byte ptr word_2BC71 add al, 0F4h mov byte ptr word_2BC71, al call sub_1B3DD mov al, byte ptr word_2BC71 add al, 0F4h mov byte ptr word_2BC71, al call sub_1B3DD mov al, byte ptr word_2BC71 add al, 24h ; '$' mov byte ptr word_2BC71, al call sub_1B3DD mov al, byte ptr word_2BC71 add al, 0Ch mov byte ptr word_2BC71, al call sub_1B3DD push 0Fh call sub_14CEE loc_1B7F9: cmp word_26346, 0A0h jnz short loc_1B810 mov word_26346, 0 mov byte_26349, 0 mov al, 1 pop bp retn ; --------------------------------------------------------------------------- loc_1B810: cmp byte ptr word_2634A+1, 2 jb short loc_1B82E cmp word_26346, 40h jl short loc_1B82E mov ax, word_26346 mov bx, 40h cwd idiv bx add dx, 0FFE0h push dx call sub_16BD9 loc_1B82E: mov al, 0 pop bp retn sub_1B754 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1B832 proc near push bp mov bp, sp cmp word_26346, 20h ; ' ' jge short loc_1B858 mov ax, word_26346 add ax, 0FFF0h push ax push 90008h call sub_16A6B mov byte_26344, 0D0h mov byte_2BC88, 20h ; ' ' jmp short loc_1B8C4 ; --------------------------------------------------------------------------- loc_1B858: cmp word_26346, 20h ; ' ' jnz short loc_1B866 push 0Fh call sub_14CEE loc_1B866: mov ax, word_26346 mov bx, 4 cwd idiv bx or dx, dx jnz short loc_1B8A6 call sub_1B3DD mov al, byte ptr word_2BC71 add al, 40h mov byte ptr word_2BC71, al call sub_1B3DD mov al, byte ptr word_2BC71 add al, 40h mov byte ptr word_2BC71, al call sub_1B3DD mov al, byte ptr word_2BC71 add al, 40h mov byte ptr word_2BC71, al call sub_1B3DD mov al, byte ptr word_2BC71 add al, 40h mov byte ptr word_2BC71, al mov al, byte_2D083 add byte ptr word_2BC71, al loc_1B8A6: cmp word_26346, 40h jnz short loc_1B8C4 mov word_26346, 0 mov byte_26349, 0 mov al, byte_2D083 neg al mov byte_2D083, al mov al, 1 pop bp retn ; --------------------------------------------------------------------------- loc_1B8C4: mov al, 0 pop bp retn sub_1B832 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1B8C8 proc near push bp mov bp, sp cmp word_26346, 18h jnz short loc_1B8FC mov byte ptr word_25FFA, 12h mov byte_26000, 6 mov byte ptr word_25FFA+1, 54h ; 'T' mov word ptr dword_26002+2, 608h mov byte ptr word_26006, 10h mov byte ptr word_26006+1, 20h ; ' ' call fp_25344 mov byte_26344, 0D0h jmp short loc_1B96F ; --------------------------------------------------------------------------- loc_1B8FC: cmp word_26346, 18h jl short loc_1B96F mov ax, word_26346 mov bx, 2 cwd idiv bx or dx, dx jnz short loc_1B927 mov al, byte_2D085 mov byte ptr word_26006, al call sub_15A5C mov al, byte_2D084 add byte_2D085, al push 0Fh call sub_14CEE loc_1B927: cmp word_26346, 40h jnz short loc_1B958 mov al, byte_2D084 neg al mov byte_2D084, al cmp byte_2D084, 7Fh jnb short loc_1B944 mov byte_2D085, 10h jmp short loc_1B949 ; --------------------------------------------------------------------------- loc_1B944: mov byte_2D085, 70h ; 'p' loc_1B949: mov word_26346, 0 mov byte_26349, 0 mov al, 1 pop bp retn ; --------------------------------------------------------------------------- loc_1B958: cmp byte ptr word_2634A+1, 2 jbe short loc_1B96F mov ax, word_26346 mov bx, 40h cwd idiv bx add dx, 0FFE7h push dx call sub_16BD9 loc_1B96F: mov al, 0 pop bp retn sub_1B8C8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1B973 proc near push bp mov bp, sp cmp word_26346, 8 jnz short loc_1B9AC mov byte ptr word_25FFA, 10h mov byte_26000, 0Ch mov byte_26001, 3 mov byte_2C976, 1 mov byte ptr word_25FFA+1, 54h ; 'T' mov al, byte_25FEB add al, al add al, 4 mov byte ptr dword_26002, al mov byte_26344, 0D0h mov byte ptr word_26006+1, 20h ; ' ' jmp short loc_1B9EE ; --------------------------------------------------------------------------- loc_1B9AC: cmp word_26346, 8 jle short loc_1B9EE mov ax, word_26346 mov bx, 4 cwd idiv bx or dx, dx jnz short loc_1B9C3 call sub_15A70 loc_1B9C3: cmp word_26346, 80h jl short loc_1B9EE cmp word_26346, 140h jge short loc_1B9E1 mov ax, word_26346 mov bx, 40h cwd idiv bx add dx, 0FFE0h jmp short loc_1B9EA ; --------------------------------------------------------------------------- loc_1B9E1: mov ax, word_26346 mov bx, 40h cwd idiv bx loc_1B9EA: push dx call sub_16BD9 loc_1B9EE: mov al, 0 pop bp retn sub_1B973 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1B9F2 proc far push bp mov bp, sp mov eax, dword ptr word_26335+1 mov dword_2C922, eax mov dword_25FFC, eax mov dword_2A722, eax mov dword ptr word_2BC71+1, eax inc word_26346 mov al, byte_26345 mov ah, 0 mov bx, ax cmp bx, 9 ja loc_1BD02 add bx, bx jmp cs:off_1BD18[bx] loc_1BA22: cmp word_26346, 1 jnz short loc_1BA63 mov word_26342, 1EDCh mov word_2634C, 11F8h mov word_2A72A, 400h mov byte_2A72F, 2 mov word_2A72C, 8 mov byte_26344, 0C4h mov word_2C96E, 0C6h mov word_2C970, 0C5h mov word_2C972, 0C4h mov word_2BC82, 0D8h loc_1BA63: call sub_1FB07 cmp word_26346, 40h jl loc_1BD09 inc byte_26345 mov word_26346, 0 push 0Dh call sub_14CEE mov fp_23F5A, offset sub_D20C jmp loc_1BD09 ; --------------------------------------------------------------------------- loc_1BA89: call sub_1FB07 cmp word_26346, 40h jl loc_1BD09 mov byte_26344, 0CCh inc byte_26345 mov word_26346, 0 mov fp_2D06C, offset sub_10EB2 jmp loc_1BD09 ; --------------------------------------------------------------------------- loc_1BAAD: call sub_1FB07 push 0C000600h call sub_16CCC or al, al jz loc_1BD09 mov byte_26344, 0CCh inc byte_26345 mov word_26346, 0 mov byte_26349, 1 mov byte ptr word_2634A+1, 0 mov ax, word_26335+1 mov word ptr dword_2634E, ax mov ax, word_26338 add ax, 100h mov word ptr dword_2634E+2, ax push word_26335+1 push word_26338 call sub_EC86 push 4 call sub_162CC mov fp_2CE42, offset sub_1B557 mov word_2C96E, 0CEh mov word_2C970, 0CDh mov word_2C972, 0CCh jmp loc_1BD09 ; --------------------------------------------------------------------------- loc_1BB14: mov al, byte_26349 mov ah, 0 or ax, ax jz short loc_1BB24 cmp ax, 1 jz short loc_1BB69 jmp short loc_1BB6D ; --------------------------------------------------------------------------- loc_1BB24: push word ptr dword_2634E push word ptr dword_2634E+2 call sub_16CCC or al, al jz short loc_1BB6D mov ax, word_26335+1 mov word ptr dword_2634E, ax mov word ptr dword_2634E+2, 600h mov word_26346, 0 inc byte_26349 inc byte ptr word_2634A+1 cmp byte ptr word_2634A+1, 0Ch jnb short loc_1BB7B mov al, byte ptr word_2634A+1 mov ah, 0 and ax, 1 add ax, ax mov bx, ax mov ax, off_22806[bx] mov fp_2CE42, ax jmp short loc_1BB6D ; --------------------------------------------------------------------------- loc_1BB69: call fp_2CE42 loc_1BB6D: call sub_1FADD or al, al jz loc_1BD09 push 0Ah call sub_17416 loc_1BB7B: push 10C80h jmp loc_1BC4E ; --------------------------------------------------------------------------- loc_1BB84: call sub_1FADD push 0C000600h call sub_16CCC or al, al jz loc_1BD09 inc byte_26345 mov word_26346, 0 mov fp_2CE42, offset sub_1B6C4 mov byte_26349, 1 jmp loc_1BD09 ; --------------------------------------------------------------------------- loc_1BBAE: mov al, byte_26349 mov ah, 0 or ax, ax jz short loc_1BBBE cmp ax, 1 jz short loc_1BBF6 jmp short loc_1BBFA ; --------------------------------------------------------------------------- loc_1BBBE: push word_26335+1 push 600h call sub_16CCC or al, al jz short loc_1BBFA mov word_26346, 0 inc byte_26349 inc byte ptr word_2634A+1 cmp byte ptr word_2634A+1, 18h jnb short loc_1BC08 mov al, byte ptr word_2634A+1 mov ah, 0 and ax, 1 add ax, ax mov bx, ax mov ax, off_2280A[bx] mov fp_2CE42, ax jmp short loc_1BBFA ; --------------------------------------------------------------------------- loc_1BBF6: call fp_2CE42 loc_1BBFA: call sub_1FADD or al, al jz loc_1BD09 push 0Ah call sub_17416 loc_1BC08: push 204B0h jmp short loc_1BC4E ; --------------------------------------------------------------------------- loc_1BC10: call sub_1FADD push 0C000600h call sub_16CCC or al, al jz loc_1BD09 inc byte_26345 mov word_26346, 0 jmp loc_1BD09 ; --------------------------------------------------------------------------- loc_1BC2F: call sub_1B973 cmp word_26346, 7D0h jge short loc_1BC48 call sub_1FADD or al, al jz loc_1BD09 push 0Ah call sub_17416 loc_1BC48: push 30000h loc_1BC4E: call sub_1FB6E jmp loc_1BD09 ; --------------------------------------------------------------------------- loc_1BC54: call sub_1FADD push 0C000600h call sub_16CCC or al, al jz loc_1BD09 inc byte_26345 mov word_26346, 0 mov fp_2CE42, offset sub_1B832 mov byte_26349, 1 mov byte_2D084, 8 mov byte_2D085, 10h mov byte_2D083, 0F8h jmp short loc_1BD09 ; --------------------------------------------------------------------------- loc_1BC8C: mov al, byte_26349 mov ah, 0 or ax, ax jz short loc_1BC9C cmp ax, 1 jz short loc_1BCD7 jmp short loc_1BCDB ; --------------------------------------------------------------------------- loc_1BC9C: cmp word_26346, 8 jl short loc_1BCDB mov word_26346, 0 inc byte_26349 inc byte ptr word_2634A+1 cmp byte ptr word_2634A+1, 24h ; '$' jb short loc_1BCBF mov byte ptr word_2634A+1, 0 jmp short loc_1BCE7 ; --------------------------------------------------------------------------- loc_1BCBF: mov al, byte ptr word_2634A+1 mov ah, 0 mov bx, 5 cwd idiv bx add dx, dx mov bx, dx mov ax, off_2280E[bx] mov fp_2CE42, ax jmp short loc_1BCDB ; --------------------------------------------------------------------------- loc_1BCD7: call fp_2CE42 loc_1BCDB: call sub_1FADD or al, al jz short loc_1BD09 mov byte ptr word_2634A+1, 1 loc_1BCE7: push 4 call sub_162CC mov word_26346, 0 mov byte_26345, 0FDh call sub_1B3C2 mov fp_2D06C, offset nullsub_2 jmp short loc_1BD09 ; --------------------------------------------------------------------------- loc_1BD02: push 32h ; '2' call sub_1FBBE pop bp retf ; --------------------------------------------------------------------------- loc_1BD09: call sub_1B446 push word_26342 push 1EDCh call sub_17354 pop bp retf sub_1B9F2 endp ; --------------------------------------------------------------------------- off_1BD18 dw offset loc_1BA22 dw offset loc_1BA89 dw offset loc_1BAAD dw offset loc_1BB14 dw offset loc_1BB84 dw offset loc_1BBAE dw offset loc_1BC10 dw offset loc_1BC2F dw offset loc_1BC54 dw offset loc_1BC8C ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1BD2C proc near push bp mov bp, sp push si cmp word_26346, 20h ; ' ' jnz short loc_1BD57 mov byte ptr word_25FFA, 10h mov byte_26000, 2 mov byte ptr word_25FFA+1, 2Eh ; '.' mov byte ptr dword_26002, 2 mov byte ptr word_26006, 40h mov byte_26344, 0C0h jmp short loc_1BDCB ; --------------------------------------------------------------------------- loc_1BD57: cmp word_26346, 20h ; ' ' jle short loc_1BDCB mov ax, word_26346 mov bx, 10h cwd idiv bx or dx, dx jnz short loc_1BD99 mov byte ptr dword_26002+1, 0Ch mov byte ptr word_26006+1, 30h ; '0' xor si, si jmp short loc_1BD8D ; --------------------------------------------------------------------------- loc_1BD79: call sub_15A5C mov al, byte ptr dword_26002+1 add al, 8 mov byte ptr dword_26002+1, al mov al, byte ptr word_26006+1 add al, 6 mov byte ptr word_26006+1, al inc si loc_1BD8D: cmp si, 8 jl short loc_1BD79 push 3 call sub_14CEE loc_1BD99: cmp word_26346, 0A0h jnz short loc_1BDB0 mov word_26346, 0 mov byte_26349, 0 mov al, 1 jmp short loc_1BDCD ; --------------------------------------------------------------------------- loc_1BDB0: cmp byte ptr word_2634A+1, 2 jb short loc_1BDCB cmp word_26346, 40h jl short loc_1BDCB mov ax, word_26346 mov bx, 40h cwd idiv bx push dx call sub_16BD9 loc_1BDCB: mov al, 0 loc_1BDCD: pop si pop bp retn sub_1BD2C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1BDD0 proc near push bp mov bp, sp cmp word_26346, 20h ; ' ' jnz short loc_1BE12 mov byte ptr word_25FFA, 10h mov byte_26000, 6 mov byte_2C976, 1 mov byte_26001, 2 mov byte ptr word_25FFA+1, 74h ; 't' mov al, byte_25FEB add al, 4 mov byte ptr dword_26002+2, al mov byte ptr dword_26002+3, 10h mov byte ptr word_26006+1, 20h ; ' ' mov byte_26344, 0C0h mov byte_2D085, 60h jmp loc_1BE92 ; --------------------------------------------------------------------------- loc_1BE12: cmp word_26346, 20h ; ' ' jle short loc_1BE92 mov ax, word_26346 mov bx, 10h cwd idiv bx or dx, dx jnz short loc_1BE60 mov ax, word_26346 mov bx, 20h ; ' ' cwd idiv bx or dx, dx jnz short loc_1BE40 mov al, byte_2D085 mov byte ptr word_26006, al mov byte_2C977, 0C0h jmp short loc_1BE4E ; --------------------------------------------------------------------------- loc_1BE40: mov al, 80h sub al, byte_2D085 mov byte ptr word_26006, al mov byte_2C977, 40h loc_1BE4E: call sub_15A9C mov al, byte_2D085 add al, 9 mov byte_2D085, al push 3 call sub_14CEE loc_1BE60: cmp word_26346, 0C0h jnz short loc_1BE77 mov word_26346, 0 mov byte_26349, 0 mov al, 1 pop bp retn ; --------------------------------------------------------------------------- loc_1BE77: cmp byte ptr word_2634A+1, 2 jb short loc_1BE92 cmp word_26346, 40h jl short loc_1BE92 mov ax, word_26346 mov bx, 40h cwd idiv bx push dx call sub_16BD9 loc_1BE92: mov al, 0 pop bp retn sub_1BDD0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1BE96 proc near push bp mov bp, sp push si mov ax, word_26346 add ax, 0FFE0h mov bx, 100h cwd idiv bx mov si, dx or si, si jnz short loc_1BED4 mov byte ptr word_25FFA, 12h mov byte_26000, 2 mov byte_26001, 2 mov byte ptr word_25FFA+1, 74h ; 't' mov word ptr dword_26002, 0C03h mov byte ptr word_26006+1, 30h ; '0' mov byte ptr word_26006, 0 call fp_25344 loc_1BED4: cmp si, 80h jg short loc_1BEF1 mov ax, si mov bx, 4 cwd idiv bx or dx, dx jnz short loc_1BEF1 call sub_15A5C mov al, byte ptr word_26006 add al, 6 mov byte ptr word_26006, al loc_1BEF1: pop si pop bp retn sub_1BE96 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1BEF4 proc near push bp mov bp, sp push si mov ax, word_26346 add ax, 0FFE0h mov bx, 100h cwd idiv bx mov si, dx or si, si jnz short loc_1BF31 mov byte ptr word_25FFA, 12h mov byte_26000, 4 mov byte_26001, 2 mov byte ptr word_25FFA+1, 74h ; 't' mov byte ptr dword_26002, 18h mov byte ptr word_26006+1, 30h ; '0' mov byte ptr word_26006, 0 call fp_25344 loc_1BF31: cmp si, 80h jg short loc_1BF4A mov ax, si mov bx, 10h cwd idiv bx or dx, dx jnz short loc_1BF4A call sub_15A5C inc byte ptr word_26006 loc_1BF4A: pop si pop bp retn sub_1BEF4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1BF4D proc near push bp mov bp, sp push si mov ax, word_26346 add ax, 0FFE0h mov bx, 100h cwd idiv bx mov si, dx or si, si jnz short loc_1BF9C mov byte_2BC88, 30h ; '0' mov byte ptr word_2BC71, 80h mov word_2BC84, 18h mov word_2BC80, 1 mov word_2BC82, 0D4h mov byte ptr word_25FFA, 12h mov byte_26000, 0Ch mov byte ptr word_25FFA+1, 0 mov byte ptr dword_26002, 4 mov byte ptr word_26006+1, 20h ; ' ' call fp_25344 loc_1BF9C: cmp si, 80h jg short loc_1BFD7 mov ax, si mov bx, 10h cwd idiv bx or dx, dx jnz short loc_1BFD7 mov al, byte ptr word_2BC71 add al, 10h mov byte ptr word_2BC71, al call sub_1B3DD mov al, byte ptr word_2BC71 add al, 0F0h mov byte ptr word_2BC71, al call sub_1B3DD mov al, byte ptr word_2BC71 add al, 0F0h mov byte ptr word_2BC71, al call sub_1B3DD mov al, byte ptr word_2BC71 add al, 4 mov byte ptr word_2BC71, al loc_1BFD7: pop si pop bp retn sub_1BF4D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1BFDA proc near push bp mov bp, sp push si cmp word_26346, 20h ; ' ' jnz short loc_1C004 mov byte_26344, 0C0h mov byte_2BC88, 30h ; '0' mov word_2BC84, 18h mov word_2BC80, 1 mov word_2BC82, 0D4h jmp loc_1C0DF ; --------------------------------------------------------------------------- loc_1C004: cmp word_26346, 20h ; ' ' jle loc_1C0DF mov ax, word_26346 mov bx, 10h cwd idiv bx or dx, dx jnz loc_1C0AD mov byte ptr word_25FFA, 10h mov byte_26000, 2 mov byte ptr word_25FFA+1, 2Dh ; '-' mov byte ptr dword_26002, 2 mov byte ptr word_26006, 40h mov byte ptr dword_26002+1, 0Ch mov byte ptr word_26006+1, 30h ; '0' xor si, si jmp short loc_1C057 ; --------------------------------------------------------------------------- loc_1C043: call sub_15A5C mov al, byte ptr dword_26002+1 add al, 8 mov byte ptr dword_26002+1, al mov al, byte ptr word_26006+1 add al, 6 mov byte ptr word_26006+1, al inc si loc_1C057: cmp si, 8 jl short loc_1C043 push 3 call sub_14CEE mov byte_26000, 0Ch mov byte ptr word_25FFA+1, 0 mov byte ptr dword_26002, 3 mov byte ptr word_26006+1, 20h ; ' ' mov ax, word_26346 mov bx, 20h ; ' ' cwd idiv bx or dx, dx jnz short loc_1C0AD push word_2BC71+1 push word_2BC74 push 20h ; ' ' call sub_15A24 mov byte ptr word_2BC71, al call sub_1B3DD mov al, byte ptr word_2BC71 add al, 0E0h mov byte ptr word_2BC71, al call sub_1B3DD mov al, byte ptr word_2BC71 add al, 0E0h mov byte ptr word_2BC71, al call sub_1B3DD loc_1C0AD: cmp word_26346, 0E0h jnz short loc_1C0C4 mov word_26346, 0 mov byte_26349, 0 mov al, 1 jmp short loc_1C0E1 ; --------------------------------------------------------------------------- loc_1C0C4: cmp byte ptr word_2634A+1, 2 jb short loc_1C0DF cmp word_26346, 40h jl short loc_1C0DF mov ax, word_26346 mov bx, 40h cwd idiv bx push dx call sub_16BD9 loc_1C0DF: mov al, 0 loc_1C0E1: pop si pop bp retn sub_1BFDA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1C0E4 proc near push bp mov bp, sp cmp word_26346, 20h ; ' ' jnz short loc_1C121 mov byte ptr word_25FFA, 10h mov byte_26000, 8 mov byte_2C976, 1 mov byte_26001, 2 mov byte ptr word_25FFA+1, 74h ; 't' mov dword_26002, 8020802h mov byte ptr word_26006+1, 30h ; '0' mov byte_26344, 0C0h mov byte_2C977, 0B6h jmp short loc_1C190 ; --------------------------------------------------------------------------- loc_1C121: cmp word_26346, 20h ; ' ' jle short loc_1C190 mov ax, word_26346 mov bx, 10h cwd idiv bx or dx, dx jnz short loc_1C15E mov byte ptr word_26006, 80h call sub_15A9C mov al, byte_2C977 neg al mov byte_2C977, al mov byte ptr word_26006, 0 call sub_15A9C mov al, byte_2C977 neg al add al, 8 mov byte_2C977, al push 3 call sub_14CEE loc_1C15E: cmp word_26346, 0C0h jnz short loc_1C175 mov word_26346, 0 mov byte_26349, 0 mov al, 1 pop bp retn ; --------------------------------------------------------------------------- loc_1C175: cmp byte ptr word_2634A+1, 2 jb short loc_1C190 cmp word_26346, 40h jl short loc_1C190 mov ax, word_26346 mov bx, 40h cwd idiv bx push dx call sub_16BD9 loc_1C190: mov al, 0 pop bp retn sub_1C0E4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1C194 proc near push bp mov bp, sp cmp word_26346, 20h ; ' ' jnz short loc_1C1C1 mov byte_26344, 0C0h mov byte_2BC88, 1Ch mov word_2BC84, 6 mov word_2BC80, 1 mov byte ptr word_2BC71, 80h mov word_2BC82, 0D4h jmp short loc_1C239 ; --------------------------------------------------------------------------- loc_1C1C1: cmp word_26346, 20h ; ' ' jle short loc_1C239 cmp word_26346, 80h jg short loc_1C20F mov byte ptr word_25FFA, 10h mov byte_26000, 0Dh mov byte ptr word_25FFA+1, 2Eh ; '.' mov byte ptr dword_26002, 8 mov byte ptr word_26006+1, 18h mov ax, word_26346 mov bx, 4 cwd idiv bx or dx, dx jnz short loc_1C239 mov al, byte_2D080 mov byte ptr word_2BC71, al call sub_1B3DD mov al, byte_2D081 add byte_2D080, al push 3 call sub_14CEE jmp short loc_1C239 ; --------------------------------------------------------------------------- loc_1C20F: mov al, byte_2D081 neg al mov byte_2D081, al cmp byte_2D081, 7Fh jnb short loc_1C225 mov byte_2D080, 0 jmp short loc_1C22A ; --------------------------------------------------------------------------- loc_1C225: mov byte_2D080, 80h loc_1C22A: mov word_26346, 0 mov byte_26349, 0 mov al, 1 pop bp retn ; --------------------------------------------------------------------------- loc_1C239: mov al, 0 pop bp retn sub_1C194 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1C23D proc near var_2 = word ptr -2 enter 2, 0 cmp word_26346, 10h jnz short loc_1C2AB mov byte_26344, 0C0h push 0Fh call sub_157E4 add ax, 10h mov [bp+var_2], ax mov word_26318, 20h ; ' ' mov word_2631A, 5Ah ; 'Z' cwd sub ax, dx sar ax, 1 mov dl, 40h sub dl, byte ptr [bp+var_2] sub dl, al mov byte_26312, dl push 0 call sub_17548 mov al, byte_26312 add al, byte ptr [bp+var_2] mov byte_26312, al push 1 call sub_17548 mov al, byte_26312 add al, byte ptr [bp+var_2] mov byte_26312, al push 2 call sub_17548 mov al, byte_26312 add al, byte ptr [bp+var_2] mov byte_26312, al push 3 call sub_17548 mov byte_2D083, 0F8h jmp loc_1C347 ; --------------------------------------------------------------------------- loc_1C2AB: cmp word_26346, 20h ; ' ' jle loc_1C347 cmp word_26346, 80h jg short loc_1C338 mov ax, word_26346 mov bx, 8 cwd idiv bx or dx, dx jnz short loc_1C31D mov byte ptr word_25FFA, 10h mov byte_26000, 6 mov byte ptr word_25FFA+1, 74h ; 't' mov word ptr dword_26002+2, 608h mov byte ptr word_26006+1, 18h mov byte_26001, 8 mov byte_2C976, 1 mov al, byte_2D083 mov byte ptr word_26006, al call sub_15A70 mov al, 80h sub al, byte_2D083 mov byte ptr word_26006, al call sub_15A70 mov al, byte_2D083 add al, 8 mov byte_2D083, al cmp byte_2D083, 30h ; '0' jbe short loc_1C316 mov byte_2D083, 0F8h loc_1C316: push 3 call sub_14CEE loc_1C31D: mov byte ptr word_25FFA, 10h mov byte_26000, 0Dh mov byte ptr word_25FFA+1, 2Eh ; '.' mov byte ptr dword_26002, 6 mov byte ptr word_26006+1, 18h jmp short loc_1C347 ; --------------------------------------------------------------------------- loc_1C338: mov word_26346, 0 mov byte_26349, 0 mov al, 1 leave retn ; --------------------------------------------------------------------------- loc_1C347: mov al, 0 leave retn sub_1C23D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1C34B proc near var_2 = word ptr -2 enter 2, 0 push si cmp word_26346, 20h ; ' ' jnz short loc_1C3B0 mov byte_26309, 8 mov byte_26313, 8 call sub_157D6 mov [bp+var_2], ax mov al, byte_25FEB mov ah, 0 add ax, 5 mov word_2CE3C, ax xor si, si jmp short loc_1C38B ; --------------------------------------------------------------------------- loc_1C376: mov ax, si shl ax, 8 cwd idiv word_2CE3C add al, byte ptr [bp+var_2] mov byte_26312, al push si call sub_175A4 inc si loc_1C38B: cmp si, word_2CE3C jl short loc_1C376 mov word_2CE40, 0 mov word_2CE3E, 1 mov fp_2CE44, offset sub_1BE96 mov byte_2D085, 1 mov byte_2D080, 0 jmp loc_1C513 ; --------------------------------------------------------------------------- loc_1C3B0: cmp word_26346, 20h ; ' ' jle loc_1C513 mov ax, word_26346 add ax, 0FFE0h mov bx, 100h cwd idiv bx mov [bp+var_2], dx xor si, si jmp short loc_1C3DB ; --------------------------------------------------------------------------- loc_1C3CC: mov bx, si imul bx, 18h mov eax, dword ptr word_26335+1 mov [bx+562Ah], eax inc si loc_1C3DB: cmp si, word_2CE3C jl short loc_1C3CC cmp [bp+var_2], 0A0h jnz short loc_1C3F9 xor si, si jmp short loc_1C3F1 ; --------------------------------------------------------------------------- loc_1C3EC: push si call sub_175FE inc si loc_1C3F1: cmp si, word_2CE3C jl short loc_1C3EC jmp short loc_1C426 ; --------------------------------------------------------------------------- loc_1C3F9: cmp [bp+var_2], 0D4h jnz short loc_1C417 xor si, si jmp short loc_1C40F ; --------------------------------------------------------------------------- loc_1C404: mov bx, si imul bx, 18h mov byte ptr [bx+5628h], 6 inc si loc_1C40F: cmp si, word_2CE3C jl short loc_1C404 jmp short loc_1C426 ; --------------------------------------------------------------------------- loc_1C417: cmp [bp+var_2], 0B4h jnz short loc_1C426 mov al, byte_2D085 neg al mov byte_2D085, al loc_1C426: cmp [bp+var_2], 70h ; 'p' jg short loc_1C445 mov al, byte_25FE2 mov ah, 0 add word_2CE3E, ax cmp word_2CE3E, 80h jle short loc_1C483 mov word_2CE3E, 80h jmp short loc_1C483 ; --------------------------------------------------------------------------- loc_1C445: cmp [bp+var_2], 0C0h jg short loc_1C460 sub word_2CE3E, 2 cmp word_2CE3E, 0 jge short loc_1C483 mov word_2CE3E, 0 jmp short loc_1C483 ; --------------------------------------------------------------------------- loc_1C460: mov al, byte_25FE2 mov ah, 0 add word_2CE3E, ax cmp [bp+var_2], 0D4h jle short loc_1C483 push 1Fh call sub_157E4 or ax, ax jnz short loc_1C483 mov ax, 0FFh sub ax, [bp+var_2] add word_26346, ax loc_1C483: cmp [bp+var_2], 0 jnz short loc_1C4A3 mov al, byte_2D080 mov ah, 0 mov bx, 3 cwd idiv bx add dx, dx mov bx, dx mov ax, off_22818[bx] mov fp_2CE44, ax inc byte_2D080 loc_1C4A3: cmp word_26346, 120h jl short loc_1C4C7 call fp_2CE44 cmp word_26346, 220h jl short loc_1C4C7 cmp [bp+var_2], 60h jg short loc_1C4C7 mov ax, [bp+var_2] add ax, 0FFE0h push ax call sub_16BD9 loc_1C4C7: mov ax, word_2CE3E add word_2CE40, ax cmp word_2CE40, 10h jl short loc_1C513 mov ax, word_2CE40 mov bx, 10h cwd idiv bx mov dl, byte_2D085 mov dh, 0 imul dx mov [bp+var_2], ax mov ax, word_2CE40 cwd idiv bx mov word_2CE40, dx xor si, si jmp short loc_1C50D ; --------------------------------------------------------------------------- loc_1C4F7: mov bx, si imul bx, 18h mov al, [bx+5632h] add al, byte ptr [bp+var_2] mov bx, si imul bx, 18h mov [bx+5632h], al inc si loc_1C50D: cmp si, word_2CE3C jl short loc_1C4F7 loc_1C513: mov al, 0 pop si leave retn sub_1C34B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1C518 proc far push bp mov bp, sp push si mov eax, dword ptr word_26335+1 mov dword_2C922, eax mov dword_25FFC, eax mov dword_2A722, eax mov dword_2630A, eax mov dword ptr word_2BC71+1, eax inc word_26346 mov al, byte_26345 mov ah, 0 mov bx, ax cmp bx, 9 ja loc_1C7FE add bx, bx jmp cs:off_1C816[bx] loc_1C54D: cmp word_26346, 1 jnz short loc_1C58E mov word_26342, 1E78h mov word_2634C, 16A8h mov word_2A72A, 400h mov byte_2A72F, 2 mov word_2A72C, 8 mov byte_26344, 0B4h mov word_2C96E, 0B6h mov word_2C970, 0B5h mov word_2C972, 0B4h mov word_2BC82, 0D4h loc_1C58E: call sub_1FB07 cmp word_26346, 40h jl loc_1C805 inc byte_26345 mov word_26346, 0 push 0Dh call sub_14CEE mov fp_23F5A, offset sub_D20C jmp loc_1C805 ; --------------------------------------------------------------------------- loc_1C5B4: call sub_1FB07 cmp word_26346, 40h jl loc_1C805 mov byte_26344, 0CCh inc byte_26345 mov word_26346, 0 mov fp_2D06C, offset sub_10EB2 jmp loc_1C805 ; --------------------------------------------------------------------------- loc_1C5D8: call sub_1FB07 push 0C000600h call sub_16CCC or al, al jz loc_1C805 mov byte_26344, 0BCh inc byte_26345 mov word_26346, 0 mov byte_26349, 1 mov byte ptr word_2634A+1, 0 push 4 call sub_162CC push word_26335+1 push word_26338 call sub_EC86 mov fp_2CE42, offset sub_1BD2C mov word_2C96E, 0BEh mov word_2C970, 0BDh mov word_2C972, 0BCh jmp loc_1C805 ; --------------------------------------------------------------------------- loc_1C630: mov al, byte_26349 mov ah, 0 or ax, ax jz short loc_1C640 cmp ax, 1 jz short loc_1C678 jmp short loc_1C67C ; --------------------------------------------------------------------------- loc_1C640: mov ax, word_26346 add ax, 0FFE0h push ax call sub_16BD9 or al, al jz short loc_1C67C mov word_26346, 0 inc byte_26349 inc byte ptr word_2634A+1 cmp byte ptr word_2634A+1, 24h ; '$' jnb short loc_1C68A mov al, byte ptr word_2634A+1 mov ah, 0 and ax, 1 add ax, ax mov bx, ax mov ax, off_22826[bx] mov fp_2CE42, ax jmp short loc_1C67C ; --------------------------------------------------------------------------- loc_1C678: call fp_2CE42 loc_1C67C: call sub_1FADD or al, al jz loc_1C805 push 0Ah call sub_17416 loc_1C68A: push 10AF0h jmp loc_1C755 ; --------------------------------------------------------------------------- loc_1C693: call sub_1FADD push 0C000800h call sub_16CCC or al, al jz loc_1C805 inc byte_26345 mov word_26346, 0 jmp loc_1C805 ; --------------------------------------------------------------------------- loc_1C6B2: call sub_1C34B cmp word_26346, 1388h jge short loc_1C6CB call sub_1FADD or al, al jz loc_1C805 push 0Ah call sub_17416 loc_1C6CB: xor si, si jmp short loc_1C6D4 ; --------------------------------------------------------------------------- loc_1C6CF: push si call sub_17627 inc si loc_1C6D4: cmp si, 0Ah jl short loc_1C6CF push 304B0h jmp short loc_1C755 ; --------------------------------------------------------------------------- loc_1C6E1: call sub_1FADD push 0C000600h call sub_16CCC or al, al jz loc_1C805 jmp short loc_1C76D ; --------------------------------------------------------------------------- loc_1C6F5: mov al, byte_26349 mov ah, 0 or ax, ax jz short loc_1C705 cmp ax, 1 jz short loc_1C73D jmp short loc_1C741 ; --------------------------------------------------------------------------- loc_1C705: mov ax, word_26346 add ax, 0FFE0h push ax call sub_16BD9 or al, al jz short loc_1C741 mov word_26346, 0 inc byte_26349 inc byte ptr word_2634A+1 cmp byte ptr word_2634A+1, 24h ; '$' jnb short loc_1C74F mov al, byte ptr word_2634A+1 mov ah, 0 and ax, 1 add ax, ax mov bx, ax mov ax, off_2281E[bx] mov fp_2CE42, ax jmp short loc_1C741 ; --------------------------------------------------------------------------- loc_1C73D: call fp_2CE42 loc_1C741: call sub_1FADD or al, al jz loc_1C805 push 0Ah call sub_17416 loc_1C74F: push 10000h loc_1C755: call sub_1FB6E jmp loc_1C805 ; --------------------------------------------------------------------------- loc_1C75B: call sub_1FADD push 0C000600h call sub_16CCC or al, al jz loc_1C805 loc_1C76D: inc byte_26345 mov word_26346, 0 mov byte_2D080, 80h mov byte_2D081, 0FCh jmp loc_1C805 ; --------------------------------------------------------------------------- loc_1C784: mov al, byte_26349 mov ah, 0 or ax, ax jz short loc_1C794 cmp ax, 1 jz short loc_1C7D3 jmp short loc_1C7D7 ; --------------------------------------------------------------------------- loc_1C794: mov ax, word_26346 add ax, 0FFFCh push ax call sub_16BD9 or al, al jz short loc_1C7D7 mov word_26346, 0 inc byte_26349 inc byte ptr word_2634A+1 cmp byte ptr word_2634A+1, 14h jb short loc_1C7BE mov byte ptr word_2634A+1, 0 jmp short loc_1C7E3 ; --------------------------------------------------------------------------- loc_1C7BE: mov al, byte ptr word_2634A+1 mov ah, 0 and ax, 1 add ax, ax mov bx, ax mov ax, off_22822[bx] mov fp_2CE42, ax jmp short loc_1C7D7 ; --------------------------------------------------------------------------- loc_1C7D3: call fp_2CE42 loc_1C7D7: call sub_1FADD or al, al jz short loc_1C805 mov byte ptr word_2634A+1, 1 loc_1C7E3: push 4 call sub_162CC mov word_26346, 0 mov byte_26345, 0FDh call sub_1B3C2 mov fp_2D06C, offset nullsub_2 jmp short loc_1C805 ; --------------------------------------------------------------------------- loc_1C7FE: push 46h ; 'F' call sub_1FBBE jmp short loc_1C812 ; --------------------------------------------------------------------------- loc_1C805: call sub_1B446 push word_26342 push 1E78h call sub_17354 loc_1C812: pop si pop bp retf sub_1C518 endp ; --------------------------------------------------------------------------- db 0 off_1C816 dw offset loc_1C54D dw offset loc_1C5B4 dw offset loc_1C5D8 dw offset loc_1C630 dw offset loc_1C693 dw offset loc_1C6B2 dw offset loc_1C6E1 dw offset loc_1C6F5 dw offset loc_1C75B dw offset loc_1C784 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1C82A proc near var_2 = word ptr -2 enter 2, 0 push si push di mov al, byte_2BC88 call sub_15A42 mov ah, 0 mov [bp+var_2], ax mov byte_2C92C, 9 mov si, 0B2AAh mov di, 1 jmp short loc_1C89A ; --------------------------------------------------------------------------- loc_1C848: cmp byte ptr [si], 0 jnz short loc_1C896 mov byte ptr [si], 1 mov eax, dword ptr word_2BC71+1 mov [si+2], eax push word_2BC71+1 push word_2BC74 call sub_ECD2 lea ax, [si+0Ah] push ax push word_2BC71 push [bp+var_2] call sub_158E2 mov al, byte ptr word_2BC71 mov [si+1], al push 0C1h push word_2BC71 call sub_159E6 mov ah, 0 mov [si+12h], ax mov al, byte ptr [bp+var_2] mov [si+18h], al mov ax, word_2BC7E mov [si+0Eh], ax jmp short loc_1C89F ; --------------------------------------------------------------------------- loc_1C896: inc di add si, 1Ah loc_1C89A: cmp di, 40h jl short loc_1C848 loc_1C89F: pop di pop si leave retn sub_1C82A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1C8A3 proc near push bp mov bp, sp push si push di mov si, 0B2AAh mov di, 1 jmp loc_1C9B3 ; --------------------------------------------------------------------------- loc_1C8B1: cmp byte ptr [si], 0 jz loc_1C9AF cmp byte_2C979, 0 jz short loc_1C8CC cmp byte ptr [si], 1 jnz short loc_1C8CC mov byte ptr [si], 2 mov word ptr [si+0Eh], 0 loc_1C8CC: cmp word ptr [si+0Eh], 0 jbe short loc_1C920 dec word ptr [si+0Eh] cmp word ptr [si+0Eh], 0 jnz short loc_1C8F2 push 0C1h push word ptr [si+1] call sub_159E6 mov ah, 0 mov [si+12h], ax push 3 call sub_14CEE jmp short loc_1C920 ; --------------------------------------------------------------------------- loc_1C8F2: test di, 1 jz short loc_1C90C add word ptr [si+12h], 2 cmp word ptr [si+12h], 0E1h jl loc_1C9AF sub word ptr [si+12h], 20h ; ' ' jmp loc_1C9AF ; --------------------------------------------------------------------------- loc_1C90C: sub word ptr [si+12h], 2 cmp word ptr [si+12h], 0C1h jge loc_1C9AF add word ptr [si+12h], 20h ; ' ' jmp loc_1C9AF ; --------------------------------------------------------------------------- loc_1C920: lea ax, [si+2] push ax call sub_152D2 cmp ax, 0FF00h jle short loc_1C93D cmp ax, 1900h jge short loc_1C93D cmp dx, 0FF00h jle short loc_1C93D cmp dx, 1800h jl short loc_1C93F loc_1C93D: jmp short loc_1C9AC ; --------------------------------------------------------------------------- loc_1C93F: cmp byte ptr [si], 2 jz short loc_1C969 sub ax, word ptr dword_2CEA0 sub dx, word ptr dword_2CEA0+2 add ax, 70h ; 'p' cmp ax, 0E0h ja short loc_1C967 add dx, 70h ; 'p' cmp dx, 0E0h ja short loc_1C967 mov byte_2CEC1, 1 mov byte ptr [si], 2 jmp short loc_1C9AF ; --------------------------------------------------------------------------- loc_1C967: jmp short loc_1C9AF ; --------------------------------------------------------------------------- loc_1C969: cmp word ptr [si+12h], 0E1h jge short loc_1C992 mov word ptr [si+12h], 0E1h mov ax, [si+0Ah] cwd sub ax, dx sar ax, 1 mov [si+0Ah], ax mov ax, [si+0Ch] cwd sub ax, dx sar ax, 1 mov [si+0Ch], ax mov word ptr [si+14h], 0 jmp short loc_1C9AF ; --------------------------------------------------------------------------- loc_1C992: inc word ptr [si+14h] mov ax, [si+14h] mov bx, 4 cwd idiv bx or dx, dx jnz short loc_1C9AF inc word ptr [si+12h] cmp word ptr [si+12h], 0E5h jl short loc_1C9AF loc_1C9AC: mov byte ptr [si], 0 loc_1C9AF: inc di add si, 1Ah loc_1C9B3: cmp di, 40h jl loc_1C8B1 pop di pop si pop bp retn sub_1C8A3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1C9BE proc near var_1 = byte ptr -1 arg_0 = word ptr 4 arg_2 = word ptr 6 enter 2, 0 cmp word_26346, 1 jnz short loc_1C9E7 call sub_157D6 mov [bp+var_1], al push ds push offset word_2633E push ds push offset word_26340 push word ptr [bp+var_1] push [bp+arg_2] call sub_14AC4 mov byte_26344, 0BCh loc_1C9E7: mov ax, word_2633E add word_26335+1, ax mov ax, word_26340 add word_26338, ax cmp word_26335+1, 300h jle short loc_1CA05 cmp word_26335+1, 1500h jl short loc_1CA0F loc_1CA05: mov ax, 0FFFFh imul word_2633E mov word_2633E, ax loc_1CA0F: cmp word_26338, 300h jle short loc_1CA1F cmp word_26338, 800h jl short loc_1CA29 loc_1CA1F: mov ax, 0FFFFh imul word_26340 mov word_26340, ax loc_1CA29: mov ax, word_26346 cmp ax, [bp+arg_0] jl short loc_1CA3C mov byte_26344, 0B4h mov al, 1 leave retn 4 ; --------------------------------------------------------------------------- loc_1CA3C: mov al, 0 leave retn 4 sub_1C9BE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1CA42 proc near push bp mov bp, sp cmp word_26346, 10h jnz short loc_1CA6B mov byte_26344, 0B8h mov word_2BC7E, 30h ; '0' mov byte_2BC88, 50h ; 'P' mov byte ptr word_2BC71, 70h ; 'p' push 1 call sub_157E4 mov byte_2D085, al pop bp retn ; --------------------------------------------------------------------------- loc_1CA6B: cmp word_26346, 20h ; ' ' jle short loc_1CAD5 mov ax, word_26346 mov bx, 2 cwd idiv bx or dx, dx jnz short loc_1CAD5 cmp byte_2D085, 0 jz short loc_1CA8F mov al, 80h sub al, byte ptr word_2BC71 mov byte ptr word_2BC71, al loc_1CA8F: push 0B292h push word_26335+1 push word_26338 push 300h mov al, byte ptr word_2BC71 mov ah, 0 push ax call sub_14E6C call sub_1C82A cmp byte_2D085, 0 jz short loc_1CABB mov al, 80h sub al, byte ptr word_2BC71 mov byte ptr word_2BC71, al loc_1CABB: mov al, byte ptr word_2BC71 add al, 0FAh mov byte ptr word_2BC71, al cmp byte ptr word_2BC71, 0Ch ja short loc_1CAD5 mov word_26346, 0 mov byte_26349, 0 loc_1CAD5: pop bp retn sub_1CA42 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1CAD7 proc near push bp mov bp, sp cmp word_26346, 20h ; ' ' jge short loc_1CB23 mov ax, word_26346 add ax, 0FFF0h push ax push 70006h call sub_16A6B cmp word_26346, 10h jnz short loc_1CB6F mov byte_26344, 0B8h mov byte ptr word_25FFA, 13h mov byte ptr word_25FFA+1, 30h ; '0' mov byte_26000, 4 mov byte ptr word_26006+1, 3Ch ; '<' mov byte ptr dword_26002, 10h call fp_25344 push 8 call sub_14CEE pop bp retn ; --------------------------------------------------------------------------- loc_1CB23: mov ax, word_26346 mov bx, 4 cwd idiv bx or dx, dx jnz short loc_1CB5D call sub_157D6 mov byte ptr word_26006, al push 561Ch push word_26335+1 push word_26338 push 200h call sub_157FA push ax mov al, byte ptr word_26006 mov ah, 0 push ax call sub_14E6C call sub_15A5C push 3 call sub_14CEE loc_1CB5D: cmp word_26346, 50h ; 'P' jnz short loc_1CB6F mov word_26346, 0 mov byte_26349, 0 loc_1CB6F: pop bp retn sub_1CAD7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1CB71 proc near var_1 = byte ptr -1 enter 2, 0 push si cmp word_26346, 20h ; ' ' jge short loc_1CBD2 mov ax, word_26346 add ax, 0FFF0h push ax push 70006h call sub_16A6B cmp word_26346, 10h jnz loc_1CCD0 mov byte_26344, 0B8h mov byte ptr word_25FFA, 12h mov byte ptr word_25FFA+1, 54h ; 'T' mov byte_26000, 0 mov byte ptr word_26006+1, 60h call fp_25344 push 8 call sub_14CEE mov word_2BC7E, 20h ; ' ' mov byte_2BC88, 4Ch ; 'L' mov byte_2D083, 0 mov byte_2D082, 20h ; ' ' jmp loc_1CCD0 ; --------------------------------------------------------------------------- loc_1CBD2: mov ax, word_26346 mov bx, 40h cwd idiv bx mov si, dx mov al, byte_2D082 mov ah, 0 cmp ax, si jle short loc_1CC3E test si, 1 jnz short loc_1CC3E sub word ptr dword_25FFC, 200h sub word ptr dword_25FFC+2, 100h or si, si jnz short loc_1CC1F push word ptr dword_25FFC push word ptr dword_25FFC+2 push 0 call sub_15A24 mov byte_2D085, al mov ax, word ptr dword_25FFC add ax, 400h push ax push word ptr dword_25FFC+2 push 0 call sub_15A24 mov byte_2D084, al loc_1CC1F: mov al, byte_2D085 mov byte ptr word_26006, al call sub_15A5C add word ptr dword_25FFC, 400h mov al, byte_2D084 mov byte ptr word_26006, al call sub_15A5C push 3 call sub_14CEE loc_1CC3E: mov al, byte_2D076 mov ah, 0 push ax mov ax, word_26346 cwd pop bx idiv bx or dx, dx jnz short loc_1CC7F push 1Fh call sub_157E4 sub al, 0Fh mov [bp+var_1], al push 600h call sub_157FA mov word_2BC74, ax push 1600h call sub_157FA add ax, 100h mov word_2BC71+1, ax push ax push word_2BC74 push word ptr [bp+var_1] call sub_15A24 mov byte ptr word_2BC71, al call sub_1C82A loc_1CC7F: mov ax, word_26342 sub ax, word_2634C cmp ax, 258h jge short loc_1CCD0 cmp byte_2D083, 0 jnz short loc_1CCD0 mov byte_2D083, 1 push 100008h push 40004h call sub_E758 mov byte_2D076, al push 280030h push 340034h call sub_E758 mov byte_2D082, al push 0 call sub_162CC cmp byte_2C979, 14h jnb short loc_1CCD0 mov byte_2C979, 14h loc_1CCD0: pop si leave retn sub_1CB71 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1CCD3 proc near push bp mov bp, sp cmp word_26346, 10h jge short loc_1CD26 mov ax, word_26346 dec ax push ax push 70006h call sub_16A6B cmp word_26346, 4 jnz loc_1CE0B mov byte_26344, 0B8h mov byte ptr word_25FFA, 10h mov byte_26000, 2 mov byte_26001, 0Ah mov byte ptr word_26006+1, 38h ; '8' mov word ptr dword_26002, 205h push 8 call sub_14CEE mov byte_2D085, 60h mov byte_2D084, 40h pop bp retn ; --------------------------------------------------------------------------- loc_1CD26: mov ax, word_26346 mov bx, 8 cwd idiv bx or dx, dx jnz loc_1CDF8 mov byte ptr word_25FFA+1, 2Ch ; ',' push 561Ch push word_26335+1 push word_26338 push 300h mov al, byte_2D085 mov ah, 0 push ax call sub_14E6C mov al, byte_2D085 add al, byte_2D084 mov byte ptr word_26006, al call sub_15A70 push 561Ch push word_26335+1 push word_26338 push 300h mov al, byte_2D085 add al, 80h mov ah, 0 push ax call sub_14E6C mov al, byte ptr word_26006 add al, 80h mov byte ptr word_26006, al call sub_15A70 mov byte ptr word_25FFA+1, 0 mov al, byte_2D085 neg al mov byte_2D085, al push 561Ch push word_26335+1 push word_26338 push 200h mov ah, 0 push ax call sub_14E6C mov al, byte_2D085 sub al, byte_2D084 mov byte ptr word_26006, al call sub_15A70 push 561Ch push word_26335+1 push word_26338 push 200h mov al, byte_2D085 add al, 80h mov ah, 0 push ax call sub_14E6C mov al, byte ptr word_26006 add al, 80h mov byte ptr word_26006, al call sub_15A70 mov al, byte_2D085 neg al mov byte_2D085, al add al, 0F8h mov byte_2D085, al mov al, byte_2D084 add al, 0FAh mov byte_2D084, al push 3 call sub_14CEE loc_1CDF8: cmp word_26346, 100h jnz short loc_1CE0B mov word_26346, 0 mov byte_26349, 0 loc_1CE0B: pop bp retn sub_1CCD3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1CE0D proc near push bp mov bp, sp cmp word_26346, 10h jge short loc_1CE63 mov ax, word_26346 dec ax push ax push 70006h call sub_16A6B cmp word_26346, 4 jnz loc_1CED7 mov byte_26344, 0B8h mov byte ptr word_25FFA, 10h mov byte_26000, 3 mov byte ptr word_26006+1, 38h ; '8' mov byte ptr dword_26002+1, 14h mov byte ptr word_26006, 0 mov byte ptr word_25FFA+1, 44h ; 'D' call fp_25344 push 8 call sub_14CEE mov byte_2D085, 80h pop bp retn ; --------------------------------------------------------------------------- loc_1CE63: mov ax, word_26346 mov bx, 8 cwd idiv bx or dx, dx jnz short loc_1CEC4 push 561Ch push word_26335+1 push word_26338 push 300h mov al, byte_2D085 mov ah, 0 push ax call sub_14E6C mov byte ptr dword_26002, 5 call sub_15A5C push 561Ch push word_26335+1 push word_26338 push 300h mov al, 80h sub al, byte_2D085 mov ah, 0 push ax call sub_14E6C mov byte ptr dword_26002, 4 call sub_15A5C mov al, byte_2D085 add al, 8 mov byte_2D085, al push 3 call sub_14CEE loc_1CEC4: cmp word_26346, 0C0h jnz short loc_1CED7 mov word_26346, 0 mov byte_26349, 0 loc_1CED7: pop bp retn sub_1CE0D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1CED9 proc near var_1 = byte ptr -1 enter 2, 0 push si push di cmp word_26346, 20h ; ' ' jge short loc_1CF57 mov ax, word_26346 add ax, 0FFF0h push ax push 70006h call sub_16A6B cmp word_26346, 10h jnz loc_1D081 mov byte_26344, 0B8h mov byte ptr word_25FFA, 12h mov byte ptr word_25FFA+1, 74h ; 't' mov byte_26000, 0 mov byte ptr word_26006+1, 60h call fp_25344 push 8 call sub_14CEE mov word_26316, 18h mov word_26314, 64h ; 'd' mov byte_26313, 6 mov byte_26309, 8 mov word_26318, 1Ch mov byte_2D083, 0 mov byte_2D082, 20h ; ' ' mov word_2BC7E, 20h ; ' ' mov byte_2BC88, 4Ch ; 'L' jmp loc_1D081 ; --------------------------------------------------------------------------- loc_1CF57: mov ax, word_26346 mov bx, 40h cwd idiv bx mov di, dx mov al, byte_2D082 mov ah, 0 cmp ax, di jle short loc_1CFC3 test di, 1 jnz short loc_1CFC3 sub word ptr dword_25FFC, 200h sub word ptr dword_25FFC+2, 100h or di, di jnz short loc_1CFA4 push word ptr dword_25FFC push word ptr dword_25FFC+2 push 0 call sub_15A24 mov byte_2D085, al mov ax, word ptr dword_25FFC add ax, 400h push ax push word ptr dword_25FFC+2 push 0 call sub_15A24 mov byte_2D084, al loc_1CFA4: mov al, byte_2D085 mov byte ptr word_26006, al call sub_15A5C add word ptr dword_25FFC, 400h mov al, byte_2D084 mov byte ptr word_26006, al call sub_15A5C push 3 call sub_14CEE loc_1CFC3: mov al, byte_2D077 mov ah, 0 push ax mov ax, word_26346 cwd pop bx idiv bx or dx, dx jnz short loc_1D030 mov word ptr dword_2630A+2, 200h push 1000h call sub_157FA add ax, 400h mov word ptr dword_2630A, ax push ax push word ptr dword_2630A+2 push 0 call sub_15A24 mov byte_26312, al call sub_174C7 xor si, si jmp short loc_1D02B ; --------------------------------------------------------------------------- loc_1CFFA: push 1Fh call sub_157E4 sub al, 0Fh mov [bp+var_1], al push 600h call sub_157FA mov word_2BC74, ax push 1600h call sub_157FA add ax, 100h mov word_2BC71+1, ax push ax push word_2BC74 push word ptr [bp+var_1] call sub_15A24 mov byte ptr word_2BC71, al call sub_1C82A inc si loc_1D02B: cmp si, 2 jl short loc_1CFFA loc_1D030: mov ax, word_26342 sub ax, word_2634C cmp ax, 1F4h jge short loc_1D081 cmp byte_2D083, 0 jnz short loc_1D081 mov byte_2D083, 1 push 22001Ch push 140014h call sub_E758 mov byte_2D077, al push 280030h push 340030h call sub_E758 mov byte_2D082, al push 0 call sub_162CC cmp byte_2C979, 14h jnb short loc_1D081 mov byte_2C979, 14h loc_1D081: pop di pop si leave retn sub_1CED9 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1D085 proc near push bp mov bp, sp cmp word_26346, 20h ; ' ' jge loc_1D117 mov ax, word_26346 add ax, 0FFF0h push ax push 70006h call sub_16A6B cmp word_26346, 10h jnz loc_1D1C4 mov byte_26344, 0B8h mov byte ptr word_25FFA, 10h mov byte ptr word_25FFA+1, 34h ; '4' mov byte_26000, 2 mov byte ptr dword_26002, 5 push 180010h push 0C000Ah call sub_E758 mov byte ptr dword_26002+1, al mov byte ptr word_26006+1, 80h push 8 call sub_14CEE mov word_2BC7E, 20h ; ' ' mov byte_2BC88, 40h push 200h call sub_157FA mov word ptr dword_2634E+2, ax push 28001Eh push 180010h call sub_E758 mov byte_2D085, al mov byte_2D084, 0 loc_1D110: mov byte_2D083, 0 pop bp retn ; --------------------------------------------------------------------------- loc_1D117: cmp byte_2D083, 0 jnz short loc_1D17C mov ax, word_26346 mov bx, 8 cwd idiv bx or dx, dx jnz loc_1D1C4 mov al, byte_2D084 mov byte ptr word_2BC71, al cmp byte_2D084, 0 jnz short loc_1D142 mov word_2BC71+1, 100h jmp short loc_1D148 ; --------------------------------------------------------------------------- loc_1D142: mov word_2BC71+1, 1700h loc_1D148: mov ax, word ptr dword_2634E+2 mov word_2BC74, ax call sub_1C82A mov al, byte_2D085 mov ah, 0 shl ax, 4 add word ptr dword_2634E+2, ax mov al, byte_2D084 add al, 80h mov byte_2D084, al cmp word ptr dword_2634E+2, 1780h jl short loc_1D1C4 push 200h call sub_157FA mov word ptr dword_2634E+2, ax inc byte_2D083 pop bp retn ; --------------------------------------------------------------------------- loc_1D17C: mov ax, word_26346 mov bx, 4 cwd idiv bx or dx, dx jnz short loc_1D1C4 cmp byte ptr word_26006+1, 60h jbe short loc_1D1B9 mov byte ptr word_26006+1, 8 push 0Fh call sub_14CEE inc byte_2D083 cmp byte_2D083, 5 ja loc_1D110 push word ptr dword_25FFC push word ptr dword_25FFC+2 push 0 call sub_15A24 mov byte ptr word_26006, al loc_1D1B9: mov al, byte ptr word_26006+1 add al, 8 mov byte ptr word_26006+1, al call sub_15A5C loc_1D1C4: pop bp retn sub_1D085 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1D1C6 proc near push bp mov bp, sp cmp word_26346, 20h ; ' ' jge short loc_1D228 mov ax, word_26346 add ax, 0FFF0h push ax push 70006h call sub_16A6B cmp word_26346, 10h jnz loc_1D269 mov byte_26344, 0B8h mov byte ptr word_25FFA, 10h mov byte ptr word_25FFA+1, 74h ; 't' mov byte_26000, 4 mov byte ptr dword_26002, 12h mov byte_26001, 2 mov byte ptr word_26006+1, 26h ; '&' call fp_25344 push 8 call sub_14CEE mov byte_2D085, 0 mov byte_2C976, 2 mov byte_2D084, 0 pop bp retn ; --------------------------------------------------------------------------- loc_1D228: mov ax, word_26346 mov bx, 10h cwd idiv bx or dx, dx jnz short loc_1D269 mov al, byte_2D084 mov byte ptr word_26006, al test byte_2D085, 1 jz short loc_1D252 mov byte_2C977, 40h mov al, 80h sub al, byte ptr word_26006 mov byte ptr word_26006, al jmp short loc_1D257 ; --------------------------------------------------------------------------- loc_1D252: mov byte_2C977, 0C0h loc_1D257: call sub_15A9C inc byte_2D084 inc byte_2D085 push 3 call sub_14CEE loc_1D269: pop bp retn sub_1D1C6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1D26B proc far push bp mov bp, sp push si mov eax, dword ptr word_26335+1 mov dword_2C922, eax mov dword_25FFC, eax mov dword_2A722, eax mov dword ptr word_2BC71+1, eax inc word_26346 mov al, byte_26345 mov ah, 0 mov bx, ax cmp bx, 0Ah ja loc_1D50C add bx, bx jmp cs:off_1D524[bx] loc_1D29C: cmp word_26346, 1 jnz short loc_1D2EF mov word_26342, 206Ch mov word_2634C, 1D4Ch mov word_2A72A, 400h mov byte_2A72F, 2 mov word_2A72C, 8 mov byte_26344, 0B4h mov word_2633E, 40h mov si, 0C1h jmp short loc_1D2D7 ; --------------------------------------------------------------------------- loc_1D2D0: push si call super_convert_tiny inc si loc_1D2D7: cmp si, 0E5h jl short loc_1D2D0 mov word_2C96E, 0B4h mov word_2C970, 0B4h mov word_2C972, 0B4h loc_1D2EF: cmp word ptr dword_2634E+2, 0FE00h jl short loc_1D320 sub word ptr dword_2634E+2, 10h mov word_2CED6, 180h mov word_2CED8, 180h mov eax, dword_2634E mov dword_2CED2, eax call sub_126B3 or ax, ax jz short loc_1D320 push 0Ah call sub_14CEE loc_1D320: cmp word_26346, 40h jge short loc_1D32D call sub_1FB07 jmp loc_1D513 ; --------------------------------------------------------------------------- loc_1D32D: mov byte_26344, 0BCh add word_26335+1, 20h ; ' ' cmp word_26335+1, 0C00h jl loc_1D513 mov byte_26344, 0B4h inc byte_26345 mov word_26346, 0 push 0Dh call sub_14CEE mov fp_23F5A, offset sub_D29E jmp loc_1D513 ; --------------------------------------------------------------------------- loc_1D360: call sub_1FB07 cmp word_26346, 40h jl loc_1D513 inc byte_26345 mov word_26346, 0 mov byte_26349, 1 mov byte ptr word_2634A+1, 0 mov fp_2CE46, offset sub_1CA42 mov fp_2D06C, offset sub_10F90 jmp loc_1D513 ; --------------------------------------------------------------------------- loc_1D38F: mov al, byte_26349 mov ah, 0 or ax, ax jz short loc_1D39F cmp ax, 1 jz short loc_1D3EF jmp short loc_1D3F3 ; --------------------------------------------------------------------------- loc_1D39F: push 200040h call sub_1C9BE or al, al jz short loc_1D3F3 mov word_26346, 0 inc byte_26349 inc byte ptr word_2634A+1 cmp byte ptr word_2634A+1, 14h jnb short loc_1D40A cmp byte_26345, 2 jnz short loc_1D3DA mov al, byte ptr word_2634A+1 mov ah, 0 and ax, 1 add ax, ax mov bx, ax mov ax, off_2282A[bx] jmp short loc_1D3EA ; --------------------------------------------------------------------------- loc_1D3DA: mov al, byte ptr word_2634A+1 mov ah, 0 and ax, 1 add ax, ax mov bx, ax mov ax, off_22832[bx] loc_1D3EA: mov fp_2CE46, ax jmp short loc_1D3F3 ; --------------------------------------------------------------------------- loc_1D3EF: call fp_2CE46 loc_1D3F3: cmp byte_26349, 0 jz loc_1D513 call sub_1FADD or al, al jz loc_1D513 push 0Ah call sub_17416 loc_1D40A: cmp byte_26345, 2 jnz short loc_1D41A pushd 1644h jmp loc_1D4B7 ; --------------------------------------------------------------------------- loc_1D41A: push 30A8Ch jmp loc_1D4B7 ; --------------------------------------------------------------------------- loc_1D423: call sub_1FADD push 0C000400h call sub_16CCC or al, al jz loc_1D513 inc byte_26345 mov word_26346, 0 cmp byte_26345, 4 jnz short loc_1D44F mov fp_2CE46, offset sub_1CB71 jmp loc_1D513 ; --------------------------------------------------------------------------- loc_1D44F: mov fp_2CE46, offset sub_1CED9 jmp loc_1D513 ; --------------------------------------------------------------------------- loc_1D458: call fp_2CE46 cmp word_26346, 7D0h jge short loc_1D472 call sub_1FADD or al, al jz loc_1D513 push 0Ah call sub_17416 loc_1D472: cmp byte_26345, 4 jnz short loc_1D48A push 11194h call sub_1FB6E mov fp_2CE46, offset sub_1CCD3 jmp short loc_1D493 ; --------------------------------------------------------------------------- loc_1D48A: push 104B0h call sub_1FB6E loc_1D493: mov byte_26349, 1 jmp short loc_1D513 ; --------------------------------------------------------------------------- loc_1D49A: call sub_1D085 cmp word_26346, 7D0h jge short loc_1D4B1 call sub_1FADD or al, al jz short loc_1D513 push 0Ah call sub_17416 loc_1D4B1: push 10000h loc_1D4B7: call sub_1FB6E jmp short loc_1D513 ; --------------------------------------------------------------------------- loc_1D4BC: call sub_1FADD push 0C000600h call sub_16CCC or al, al jz short loc_1D513 inc byte_26345 mov word_26346, 0 mov byte ptr word_2634A+1, 0 jmp short loc_1D513 ; --------------------------------------------------------------------------- loc_1D4DD: call sub_1D1C6 cmp word_26346, 4B0h jge short loc_1D4F4 call sub_1FADD or al, al jz short loc_1D513 mov byte ptr word_2634A+1, 1 loc_1D4F4: push 4 call sub_162CC mov word_26346, 0 mov byte_26345, 0FDh mov fp_2D06C, offset nullsub_2 jmp short loc_1D513 ; --------------------------------------------------------------------------- loc_1D50C: push 41h ; 'A' call sub_1FBBE jmp short loc_1D520 ; --------------------------------------------------------------------------- loc_1D513: call sub_1C8A3 push word_26342 push 206Ch call sub_17354 loc_1D520: pop si pop bp retf sub_1D26B endp ; --------------------------------------------------------------------------- db 0 off_1D524 dw offset loc_1D29C dw offset loc_1D360 dw offset loc_1D38F dw offset loc_1D423 dw offset loc_1D458 dw offset loc_1D38F dw offset loc_1D423 dw offset loc_1D458 dw offset loc_1D49A dw offset loc_1D4BC dw offset loc_1D4DD ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1D53A proc near var_2 = word ptr -2 enter 2, 0 push si push di mov al, byte_2BC88 call sub_15A42 mov ah, 0 mov [bp+var_2], ax mov si, 0B2AAh mov di, 1 jmp short loc_1D582 ; --------------------------------------------------------------------------- loc_1D553: cmp byte ptr [si], 0 jnz short loc_1D57E mov byte ptr [si], 1 mov eax, dword ptr word_2BC71+1 mov [si+2], eax lea ax, [si+0Ah] push ax push word_2BC71 push [bp+var_2] call sub_158E2 mov ax, word_2BC82 mov [si+12h], ax mov word ptr [si+10h], 300h jmp short loc_1D587 ; --------------------------------------------------------------------------- loc_1D57E: inc di add si, 1Ah loc_1D582: cmp di, 40h jl short loc_1D553 loc_1D587: pop di pop si leave retn sub_1D53A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1D58B proc near push bp mov bp, sp push si push di mov si, 0B2AAh mov di, 1 jmp loc_1D65C ; --------------------------------------------------------------------------- loc_1D599: cmp byte ptr [si], 0 jz loc_1D658 cmp byte ptr [si], 1 jnz short loc_1D5B4 sub word ptr [si+10h], 20h ; ' ' cmp word ptr [si+10h], 100h jge loc_1D658 inc byte ptr [si] loc_1D5B4: cmp byte_2C979, 0 jnz short loc_1D5C2 cmp byte_2C978, 0 jz short loc_1D5C5 loc_1D5C2: mov byte ptr [si], 3 loc_1D5C5: inc word ptr [si+0Eh] lea ax, [si+2] push ax call sub_152D2 cmp ax, 0FF00h jle short loc_1D5E5 cmp ax, 1900h jge short loc_1D5E5 cmp dx, 0FF00h jle short loc_1D5E5 cmp dx, 1800h jl short loc_1D5E7 loc_1D5E5: jmp short loc_1D655 ; --------------------------------------------------------------------------- loc_1D5E7: cmp byte ptr [si], 3 jz short loc_1D612 sub ax, word ptr dword_2CEA0 sub dx, word ptr dword_2CEA0+2 add ax, 80h cmp ax, 100h ja short loc_1D610 add dx, 80h cmp dx, 100h ja short loc_1D610 mov byte_2CEC1, 1 mov byte ptr [si], 3 jmp short loc_1D658 ; --------------------------------------------------------------------------- loc_1D610: jmp short loc_1D658 ; --------------------------------------------------------------------------- loc_1D612: cmp word ptr [si+12h], 0CCh jge short loc_1D63B mov word ptr [si+12h], 0CCh mov ax, [si+0Ah] cwd sub ax, dx sar ax, 1 mov [si+0Ah], ax mov ax, [si+0Ch] cwd sub ax, dx sar ax, 1 mov [si+0Ch], ax mov word ptr [si+14h], 0 jmp short loc_1D658 ; --------------------------------------------------------------------------- loc_1D63B: inc word ptr [si+14h] mov ax, [si+14h] mov bx, 4 cwd idiv bx or dx, dx jnz short loc_1D658 inc word ptr [si+12h] cmp word ptr [si+12h], 0D0h jl short loc_1D658 loc_1D655: mov byte ptr [si], 0 loc_1D658: inc di add si, 1Ah loc_1D65C: cmp di, 40h jl loc_1D599 pop di pop si pop bp retn sub_1D58B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1D667 proc near push bp mov bp, sp cmp word_26346, 20h ; ' ' jnz short loc_1D6B2 mov byte ptr word_25FFA, 12h mov byte ptr word_25FFA+1, 2Dh ; '-' mov byte ptr word_26006+1, 20h ; ' ' mov byte_26000, 4 mov byte_26001, 0Ah call sub_157D6 mov byte ptr word_26006, al mov byte ptr dword_26002, 10h push 1 call sub_157E4 or ax, ax jz short loc_1D6A2 mov al, 2 jmp short loc_1D6A4 ; --------------------------------------------------------------------------- loc_1D6A2: mov al, 0FEh loc_1D6A4: mov byte_2D085, al call fp_25344 push 0Fh call sub_14CEE loc_1D6B2: mov ax, word_26346 mov bx, 4 cwd idiv bx or dx, dx jnz short loc_1D6D1 call sub_15A70 mov al, byte ptr word_26006+1 add al, 8 mov byte ptr word_26006+1, al mov al, byte_2D085 add byte ptr word_26006, al loc_1D6D1: cmp word_26346, 3Ch ; '<' jnz short loc_1D6DD mov ax, 1 jmp short loc_1D6DF ; --------------------------------------------------------------------------- loc_1D6DD: xor ax, ax loc_1D6DF: pop bp retn sub_1D667 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1D6E1 proc near push bp mov bp, sp cmp word_26346, 20h ; ' ' jnz short loc_1D719 mov byte ptr word_25FFA, 12h mov byte ptr word_25FFA+1, 2Ch ; ',' mov byte_26000, 4 call sub_157D6 mov byte ptr word_26006, al mov byte ptr dword_26002, 10h push 10000Ch push 80004h call sub_E758 mov byte_2D085, al loc_1D719: mov al, byte_2D085 mov ah, 0 push ax mov ax, word_26346 cwd pop bx idiv bx or dx, dx jnz short loc_1D766 push 561Ch push word_26335+1 push word_26338 push 200h call sub_157FA push ax mov al, byte ptr word_26006 mov ah, 0 push ax call sub_14E6C mov byte ptr word_26006+1, 20h ; ' ' call sub_15A5C mov byte ptr word_26006+1, 40h mov al, byte ptr word_26006 add al, 8 mov byte ptr word_26006, al call sub_15A5C push 3 call sub_14CEE loc_1D766: cmp word_26346, 60h jnz short loc_1D772 mov ax, 1 jmp short loc_1D774 ; --------------------------------------------------------------------------- loc_1D772: xor ax, ax loc_1D774: pop bp retn sub_1D6E1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1D776 proc near push bp mov bp, sp cmp word_26346, 20h ; ' ' jge short loc_1D7C2 mov ax, word_26346 add ax, 0FFF0h push ax push 70006h call sub_16A6B cmp word_26346, 2 jnz short loc_1D7DA mov byte_26344, 0B5h mov byte ptr word_25FFA, 13h mov byte ptr word_25FFA+1, 30h ; '0' mov byte_26000, 4 mov byte ptr word_26006+1, 3Ch ; '<' mov byte ptr dword_26002, 10h call fp_25344 push 8 call sub_14CEE pop bp retn ; --------------------------------------------------------------------------- loc_1D7C2: call fp_2CE48 or al, al jz short loc_1D7DA mov byte_26344, 0B4h mov word_26346, 0 mov byte_26349, 0 loc_1D7DA: pop bp retn sub_1D776 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1D7DC proc near push bp mov bp, sp cmp word_26346, 20h ; ' ' jnz short loc_1D805 mov byte ptr word_25FFA, 12h mov byte ptr word_26006+1, 1Ch mov byte_26000, 0Dh mov byte ptr dword_26002, 3 call fp_25344 push 0Fh call sub_14CEE loc_1D805: mov ax, word_26346 mov bx, 2 cwd idiv bx or dx, dx jnz short loc_1D82E mov byte ptr word_25FFA+1, 34h ; '4' sub word ptr dword_25FFC, 100h call sub_15A5C mov byte ptr word_25FFA+1, 74h ; 't' add word ptr dword_25FFC, 200h call sub_15A5C loc_1D82E: mov ax, word_26346 add ax, 0FFC0h push ax call sub_16BD9 pop bp retn sub_1D7DC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1D83A proc near push bp mov bp, sp cmp word_26346, 20h ; ' ' jnz short loc_1D877 mov byte ptr word_25FFA, 12h mov byte ptr word_25FFA+1, 2Ch ; ',' mov byte_26000, 9 mov byte ptr word_26006, 0 mov word ptr dword_26002, 402h push 0C050C06h push 0D060D07h call sub_E758 mov word ptr dword_26002+2, ax mov byte ptr word_26006+1, 20h ; ' ' loc_1D877: mov ax, word_26346 mov bx, 4 cwd idiv bx or dx, dx jnz short loc_1D88E call sub_15A5C push 0Fh call sub_14CEE loc_1D88E: mov ax, word_26346 add ax, 0FFC0h push ax call sub_16BD9 pop bp retn sub_1D83A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1D89A proc near push bp mov bp, sp push si cmp word_26346, 10h jnz short loc_1D8F7 mov byte_26312, 50h ; 'P' push 0 call sub_175A4 mov byte_26312, 48h ; 'H' push 1 call sub_175A4 mov byte_26312, 40h push 2 call sub_175A4 mov byte_26312, 40h push 3 call sub_175A4 mov byte_26312, 38h ; '8' push 4 call sub_175A4 mov byte_26312, 30h ; '0' push 5 call sub_175A4 push 8 call sub_14CEE mov byte_26344, 0B5h mov byte_2D085, 0 mov byte_2D084, 64h ; 'd' loc_1D8F7: cmp word_26346, 10h jle loc_1DA17 cmp byte_26042, 80h jnb short loc_1D954 cmp byte_25FE2, 0 jz loc_1DA17 mov al, byte_26012 inc al mov byte_26012, al mov al, byte_2602A inc al mov byte_2602A, al mov al, byte_26042 inc al mov byte_26042, al mov al, byte_2605A add al, 0FFh mov byte_2605A, al mov al, byte_26072 add al, 0FFh mov byte_26072, al mov al, byte_2608A add al, 0FFh mov byte_2608A, al mov al, byte_2D084 mov ah, 0 mov PaletteTone, ax mov byte_25FE9, 1 inc byte_2D084 jmp loc_1DA17 ; --------------------------------------------------------------------------- loc_1D954: cmp byte_2D085, 0 jnz short loc_1D9D5 mov byte ptr word_25FFA, 12h mov byte ptr word_25FFA+1, 2Ch ; ',' mov byte_26000, 0 call fp_25344 xor si, si jmp short loc_1D9AE ; --------------------------------------------------------------------------- loc_1D972: push 1000h call sub_157FA add ax, word_26335+1 sub ax, 800h mov word ptr dword_25FFC, ax push 400h call sub_157FA mov dx, word_26338 sub dx, ax add dx, 100h mov word ptr dword_25FFC+2, dx push 60h call sub_157FA add al, 10h mov byte ptr word_26006, al push 3Fh ; '?' call sub_157E4 add al, 18h mov byte ptr word_26006+1, al call sub_15A5C inc si loc_1D9AE: cmp si, 32h ; '2' jl short loc_1D972 mov byte_26344, 0B8h xor si, si jmp short loc_1D9C1 ; --------------------------------------------------------------------------- loc_1D9BC: push si call sub_175FE inc si loc_1D9C1: cmp si, 6 jl short loc_1D9BC push 0Fh call sub_14CEE mov word_2CE06, 8 jmp short loc_1DA13 ; --------------------------------------------------------------------------- loc_1D9D5: cmp byte_25FE2, 0 jz short loc_1D9E4 mov PaletteTone, 96h jmp short loc_1D9EA ; --------------------------------------------------------------------------- loc_1D9E4: mov PaletteTone, 64h ; 'd' loc_1D9EA: mov byte_25FE9, 1 cmp byte_2D085, 8 jb short loc_1DA13 mov PaletteTone, 64h ; 'd' mov byte_25FE9, 1 xor si, si jmp short loc_1DA0A ; --------------------------------------------------------------------------- loc_1DA05: push si call sub_17627 inc si loc_1DA0A: cmp si, 6 jl short loc_1DA05 mov al, 1 jmp short loc_1DA19 ; --------------------------------------------------------------------------- loc_1DA13: inc byte_2D085 loc_1DA17: mov al, 0 loc_1DA19: pop si pop bp retn sub_1D89A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1DA1C proc near push bp mov bp, sp cmp word_26346, 80h jle loc_1DAD0 mov ax, word_26346 mov bx, 8 cwd idiv bx or dx, dx jnz short loc_1DA6A push 1800h call sub_157FA mov word_2BC71+1, ax push 400h call sub_157FA add ax, 200h mov word_2BC74, ax mov byte ptr word_2BC71, 40h push 1Fh call sub_157E4 add al, 30h ; '0' mov byte_2BC88, al mov word_2BC82, 0C8h call sub_1D53A push 3 call sub_14CEE loc_1DA6A: mov ax, word_26346 mov bx, 18h cwd idiv bx or dx, dx jnz short loc_1DAD0 push 1000h call sub_157FA add ax, word_26335+1 sub ax, 800h mov word ptr dword_25FFC, ax push 400h call sub_157FA mov dx, word_26338 sub dx, ax mov word ptr dword_25FFC+2, dx mov byte ptr word_25FFA, 12h mov byte ptr word_25FFA+1, 2Ch ; ',' mov byte_26000, 3 mov byte ptr dword_26002, 5 push 10000Ch push 0A0008h call sub_E758 mov byte ptr dword_26002+1, al mov byte ptr word_26006, 0 mov byte ptr word_26006+1, 30h ; '0' call fp_25344 call sub_15A5C loc_1DAD0: pop bp retn sub_1DA1C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1DAD2 proc near push bp mov bp, sp push si cmp word_26346, 80h jl loc_1DB78 cmp word_26346, 80h jnz short loc_1DB10 push 800030h push 200018h call sub_E758 mov byte_2D084, al push 200028h push 300038h call sub_E758 mov byte_2D085, al loc_1DB10: mov al, byte_2D084 mov ah, 0 push ax mov ax, word_26346 cwd pop bx idiv bx mov si, dx test si, 7 jnz short loc_1DB78 mov byte ptr word_25FFA+1, 2Dh ; '-' mov byte ptr word_25FFA, 12h mov byte_26000, 2 push 1Fh call sub_157E4 add al, 30h ; '0' mov byte ptr word_26006+1, al mov word ptr dword_26002, 806h mov byte ptr word_26006, 68h ; 'h' call sub_15A5C mov byte ptr word_26006, 18h call sub_15A5C or si, si jnz short loc_1DB78 mov word_2BC82, 0Bh mov byte_2BC88, 40h push 3 call sub_157FA shl al, 6 mov byte ptr word_2BC71, al call sub_17687 push 3 call sub_14CEE loc_1DB78: pop si pop bp retn sub_1DAD2 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1DB7B proc near push bp mov bp, sp push si cmp word_26346, 0A0h jge short loc_1DB8C mov al, 0 jmp loc_1DC2C ; --------------------------------------------------------------------------- loc_1DB8C: cmp word_26346, 0C0h jge short loc_1DBB8 cmp word_26346, 80h jnz short loc_1DBA3 push 8 call sub_14CEE loc_1DBA3: test byte ptr word_26346, 1 jz short loc_1DBB1 add word_26338, 20h ; ' ' jmp short loc_1DC1D ; --------------------------------------------------------------------------- loc_1DBB1: sub word_26338, 20h ; ' ' jmp short loc_1DC1D ; --------------------------------------------------------------------------- loc_1DBB8: cmp word_26346, 0C0h jnz short loc_1DC1D mov word_2BC82, 0C9h xor si, si jmp short loc_1DC06 ; --------------------------------------------------------------------------- loc_1DBCA: push 1000h call sub_157FA add ax, word_26335+1 sub ax, 800h mov word_2BC71+1, ax push 400h call sub_157FA mov dx, word_26338 sub dx, ax add dx, 100h mov word_2BC74, dx push 40h call sub_157FA add al, 20h ; ' ' mov byte ptr word_2BC71, al push 3Fh ; '?' call sub_157E4 add al, 20h ; ' ' mov byte_2BC88, al call sub_1D53A inc si loc_1DC06: cmp si, 10h jl short loc_1DBCA mov byte_26344, 0C0h push 0Fh call sub_14CEE mov word_2CE06, 8 loc_1DC1D: cmp word_26346, 0C8h jnz short loc_1DC2A mov ax, 1 jmp short loc_1DC2C ; --------------------------------------------------------------------------- loc_1DC2A: xor ax, ax loc_1DC2C: pop si pop bp retn sub_1DB7B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1DC2F proc near push bp mov bp, sp push si cmp word_26346, 80h jle loc_1DCFD cmp word_26346, 81h jnz short loc_1DC59 push 600020h push 1C0018h call sub_E758 mov byte_2D085, al loc_1DC59: mov ax, word_26346 mov bx, 80h cwd idiv bx mov si, dx mov al, byte_2D085 mov ah, 0 push ax mov ax, word_26346 cwd pop bx idiv bx or dx, dx jnz short loc_1DC93 push word_2BC71+1 push word_2BC74 push 0 call sub_15A24 mov byte ptr word_2BC71, al mov byte_2BC88, 40h mov word_2BC82, 0C9h call sub_1D53A loc_1DC93: mov ax, word_26346 mov bx, 4 cwd idiv bx or dx, dx jnz short loc_1DCFD sub word ptr dword_25FFC, 800h mov byte_26000, 2 mov byte_26001, 0Ah mov word ptr dword_26002, 203h mov byte ptr word_25FFA, 12h mov byte ptr word_26006+1, 28h ; '(' mov byte ptr word_25FFA+1, 54h ; 'T' cmp si, 40h jge short loc_1DCD4 mov ax, si imul ax, 3 mov byte ptr word_26006, al jmp short loc_1DCE1 ; --------------------------------------------------------------------------- loc_1DCD4: mov ax, si imul ax, 3 mov dl, 40h sub dl, al mov byte ptr word_26006, dl loc_1DCE1: call sub_15A70 mov al, 80h sub al, byte ptr word_26006 mov byte ptr word_26006, al add word ptr dword_25FFC, 1000h call sub_15A70 push 0Fh call sub_14CEE loc_1DCFD: pop si pop bp retn sub_1DC2F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1DD00 proc near var_2 = word ptr -2 enter 2, 0 cmp word_26346, 0C0h jl locret_1E020 mov ax, word_26346 add ax, 0FF40h mov [bp+var_2], ax cmp word_26342, 15E0h jle short loc_1DD27 cmp word_26346, 708h jl short loc_1DD72 loc_1DD27: cmp word_22852, 0 jnz short loc_1DD72 mov byte_26313, 6 mov byte_26312, 40h mov byte_26309, 0Eh add word ptr dword_2630A, 600h push 0 call sub_175A4 sub word ptr dword_2630A, 400h push 1 call sub_175A4 sub word ptr dword_2630A, 400h push 2 call sub_175A4 sub word ptr dword_2630A, 400h push 3 call sub_175A4 inc word_22852 push 0 call sub_162CC loc_1DD72: mov ax, word_26346 mov bx, 4 cwd idiv bx or dx, dx jnz loc_1DF48 cmp [bp+var_2], 0 jnz short loc_1DDC3 mov byte_2D084, 20h ; ' ' mov byte_2D085, 0 push 400028h push 20001Ch call sub_E758 mov byte_2D083, al mov byte_2D082, 0 mov byte_2D081, 0 mov byte_2D080, 0 mov byte_2D07E, 40h mov byte_2D07F, 40h mov byte_2D07D, 0 loc_1DDC3: mov byte ptr word_25FFA, 12h mov byte ptr word_25FFA+1, 54h ; 'T' mov byte_26000, 2 cmp byte_2D085, 40h jnz short loc_1DDE4 cmp byte_2D082, 0 jnz short loc_1DDE4 inc byte_2D082 loc_1DDE4: cmp byte_2D082, 0 jnz short loc_1DDF2 mov byte ptr dword_26002, 1 jmp short loc_1DDF7 ; --------------------------------------------------------------------------- loc_1DDF2: mov byte ptr dword_26002, 3 loc_1DDF7: mov byte ptr dword_26002+1, 30h ; '0' mov byte ptr word_26006+1, 70h ; 'p' add word ptr dword_25FFC, 600h mov al, byte_2D085 mov byte ptr word_26006, al call sub_15A8E sub word ptr dword_25FFC, 400h mov al, byte_2D084 mov byte ptr word_26006, al call sub_15A8E sub word ptr dword_25FFC, 400h mov al, 80h sub al, byte_2D084 mov byte ptr word_26006, al call sub_15A8E sub word ptr dword_25FFC, 400h mov al, 80h sub al, byte_2D085 mov byte ptr word_26006, al call sub_15A8E cmp byte_2D082, 0 jnz short loc_1DE5D mov al, byte_2D085 add al, 4 mov byte_2D085, al mov al, byte_2D084 add al, 2 mov byte_2D084, al jmp loc_1DEEA ; --------------------------------------------------------------------------- loc_1DE5D: mov byte ptr word_25FFA+1, 0 mov byte ptr word_25FFA, 10h mov word ptr dword_26002, 3003h mov al, byte_2D085 add al, 80h mov byte ptr word_26006, al add word ptr dword_25FFC, 0C00h call sub_15A8E sub word ptr dword_25FFC, 400h mov al, byte_2D084 add al, 80h mov byte ptr word_26006, al call sub_15A8E sub word ptr dword_25FFC, 400h mov al, 0 sub al, byte_2D084 mov byte ptr word_26006, al call sub_15A8E sub word ptr dword_25FFC, 400h mov al, 0 sub al, byte_2D085 mov byte ptr word_26006, al call sub_15A8E cmp byte_2D081, 0 jnz short loc_1DED3 mov al, byte_2D085 add al, 0FEh mov byte_2D085, al dec byte_2D084 cmp byte_2D085, 30h ; '0' jnz short loc_1DEEA inc byte_2D081 jmp short loc_1DEEA ; --------------------------------------------------------------------------- loc_1DED3: mov al, byte_2D085 add al, 2 mov byte_2D085, al inc byte_2D084 cmp byte_2D085, 40h jnz short loc_1DEEA dec byte_2D081 loc_1DEEA: cmp byte_2D082, 0 jz short loc_1DF41 mov al, byte_2D083 mov ah, 0 push ax mov ax, word_26346 cwd pop bx idiv bx or dx, dx jnz short loc_1DF41 push 1000h call sub_157FA add ax, word_26335+1 sub ax, 800h mov word_2BC71+1, ax push 400h call sub_157FA mov dx, word_26338 sub dx, ax add dx, 100h mov word_2BC74, dx push word_2BC71+1 push dx push 0 call sub_15A24 mov byte ptr word_2BC71, al mov byte_2BC88, 3Ch ; '<' mov word_2BC82, 0C9h call sub_1D53A loc_1DF41: push 3 call sub_14CEE loc_1DF48: cmp word_22852, 0 jz locret_1E020 cmp word_22852, 40h jl short loc_1DF73 cmp word_22852, 40h jnz short loc_1DF79 push 0 call sub_175FE push 1 call sub_175FE push 2 call sub_175FE push 3 call sub_175FE loc_1DF73: inc word_22852 leave retn ; --------------------------------------------------------------------------- loc_1DF79: cmp byte_2D080, 0 jnz short loc_1DF8F cmp byte_2D085, 30h ; '0' jnz locret_1E020 inc byte_2D080 leave retn ; --------------------------------------------------------------------------- loc_1DF8F: mov ax, word_26346 mov bx, 8 cwd idiv bx or dx, dx jnz locret_1E020 mov al, byte_2D07F mov byte_26012, al mov al, byte_2D07E mov byte_2602A, al mov al, 80h sub al, byte_2602A mov byte_26042, al mov al, 80h sub al, byte_26012 mov byte_2605A, al cmp byte_2D07D, 0 jnz short loc_1DFD8 inc byte_2D07F dec byte_2D07E cmp byte_2D07E, 38h ; '8' jnz short loc_1DFEB inc byte_2D07D jmp short loc_1DFEB ; --------------------------------------------------------------------------- loc_1DFD8: dec byte_2D07F inc byte_2D07E cmp byte_2D07E, 41h ; 'A' jnz short loc_1DFEB dec byte_2D07D loc_1DFEB: cmp word_26342, 0ED8h jle short loc_1DFFB cmp word_26346, 9C4h jl short locret_1E020 loc_1DFFB: mov ax, word_22852 inc word_22852 cmp ax, 41h ; 'A' jnz short locret_1E020 push 340014h push 10000Ch call sub_E758 mov byte_2D083, al push 0 call sub_162CC locret_1E020: leave retn sub_1DD00 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1E022 proc near push bp mov bp, sp push si cmp word_26346, 80h jl loc_1E15A cmp word_26346, 80h jnz short loc_1E047 mov byte ptr word_2BC71, 0 mov byte_2D085, 0 mov byte_2D084, 0 loc_1E047: mov ax, word_26346 mov bx, 8 cwd idiv bx or dx, dx jnz short loc_1E0A6 mov word_2BC82, 0C8h push 0B292h push word_26335+1 push word_26338 push 400h mov al, byte ptr word_2BC71 mov ah, 0 push ax call sub_14E6C call sub_1D53A mov al, byte ptr word_2BC71 add al, 80h mov byte ptr word_2BC71, al push 0B292h push word_26335+1 push word_26338 push 400h mov ah, 0 push ax call sub_14E6C call sub_1D53A mov al, byte ptr word_2BC71 add al, 88h mov byte ptr word_2BC71, al push 3 call sub_14CEE loc_1E0A6: cmp word_26346, 100h jl loc_1E13D mov ax, word_26346 mov bx, 100h cwd idiv bx mov si, dx mov ax, word_26346 mov bx, 8 cwd idiv bx or dx, dx jnz short loc_1E0F8 cmp si, 80h jge short loc_1E0F8 mov byte ptr word_25FFA, 12h mov byte_26000, 4 mov al, byte_2D085 mov byte ptr word_26006, al mov byte ptr word_25FFA+1, 54h ; 'T' mov byte ptr word_26006+1, 20h ; ' ' mov byte ptr dword_26002, 0Ch call sub_15A5C mov al, byte_2D085 add al, 0FEh mov byte_2D085, al loc_1E0F8: cmp word_26346, 200h jl short loc_1E13D mov ax, word_26346 mov bx, 8 cwd idiv bx or dx, dx jnz short loc_1E13D cmp si, 80h jl short loc_1E13D mov byte ptr word_25FFA, 12h mov byte_26000, 4 mov al, byte_2D084 mov byte ptr word_26006, al mov byte ptr word_25FFA+1, 0 mov byte ptr word_26006+1, 20h ; ' ' mov byte ptr dword_26002, 0Ch call sub_15A5C mov al, byte_2D084 add al, 4 mov byte_2D084, al loc_1E13D: cmp word_26346, 2D0h jl short loc_1E15A mov ax, word_26346 add ax, 0FD30h mov bx, 80h cwd idiv bx mov si, dx lea ax, [si-60h] push ax call sub_16BD9 loc_1E15A: pop si pop bp retn sub_1E022 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1E15D proc near push bp mov bp, sp cmp byte_25FE3, 0 jnz short loc_1E195 cmp byte_22854, 0 jnz short loc_1E17F inc word_26340 cmp word_26340, 10h jl short loc_1E18E inc byte_22854 jmp short loc_1E18E ; --------------------------------------------------------------------------- loc_1E17F: dec word_26340 cmp word_26340, 0FFF0h jg short loc_1E18E dec byte_22854 loc_1E18E: mov ax, word_26340 add word_26338, ax loc_1E195: pop bp retn sub_1E15D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1E197 proc far push bp mov bp, sp push si push di mov eax, dword ptr word_26335+1 mov dword_2C922, eax mov dword_25FFC, eax mov dword_2A722, eax mov dword_2630A, eax mov dword ptr word_2BC71+1, eax inc word_26346 mov al, byte_26345 mov ah, 0 mov bx, ax cmp bx, 0Ch ja loc_1E522 add bx, bx jmp cs:off_1E53C[bx] loc_1E1CD: cmp word_26346, 1 jnz short loc_1E220 mov word_26342, 5910h mov word_2634C, 5078h mov word_2A72A, 400h mov byte_2A72F, 2 mov word_2A72C, 8 mov byte_26344, 0B4h mov word_26340, 0 mov word_2C96E, 0B7h mov word_2C970, 0B6h mov word_2C972, 0B4h mov si, 0C8h jmp short loc_1E21A ; --------------------------------------------------------------------------- loc_1E213: push si call super_convert_tiny inc si loc_1E21A: cmp si, 0D0h jl short loc_1E213 loc_1E220: call sub_1FB07 cmp word_26346, 0C0h jl loc_1E527 mov word_26346, 0 inc byte_26345 push 0Dh call sub_14CEE mov fp_23F5A, offset sub_DA86 jmp loc_1E527 ; --------------------------------------------------------------------------- loc_1E247: call sub_1FB07 cmp word_26346, 20h ; ' ' jnz short loc_1E265 mov Palettes, 0 mov Palettes+1, 0 mov Palettes+2, 0 mov byte_25FE9, 1 loc_1E265: cmp word_26346, 40h jl loc_1E527 inc byte_26345 mov byte_26349, 1 mov word_26346, 0 mov fp_2CE48, offset sub_1D667 jmp loc_1E36F ; --------------------------------------------------------------------------- loc_1E286: mov al, byte_26349 mov ah, 0 or ax, ax jz short loc_1E296 cmp ax, 1 jz short loc_1E2D9 jmp short loc_1E2DC ; --------------------------------------------------------------------------- loc_1E296: mov ax, word_26346 add ax, 0FFE0h push ax call sub_16BD9 or al, al jz short loc_1E2DC mov word_26346, 0 inc byte ptr word_2634A+1 inc byte_26349 mov al, byte_2D080 mov ah, 0 shl ax, 2 mov dl, byte ptr word_2634A+1 mov dh, 0 and dx, 1 add dx, dx add ax, dx mov bx, ax mov ax, off_2284A[bx] mov fp_2CE48, ax cmp byte ptr word_2634A+1, 10h jb short loc_1E2DC jmp short loc_1E2EA ; --------------------------------------------------------------------------- loc_1E2D9: call sub_1D776 loc_1E2DC: call sub_1FADD or al, al jz loc_1E527 push 0Ah call sub_17416 loc_1E2EA: cmp byte_2D080, 0 jnz short loc_1E308 push 147E0h call sub_1FB6E mov byte_26349, 1 mov fp_2CE48, offset sub_1D7DC jmp loc_1E481 ; --------------------------------------------------------------------------- loc_1E308: push 13908h call sub_1FB6E jmp loc_1E481 ; --------------------------------------------------------------------------- loc_1E314: call sub_1FADD push 0C000500h call sub_16CCC or al, al jz loc_1E527 inc byte_26345 mov word_26346, 0 jmp loc_1E527 ; --------------------------------------------------------------------------- loc_1E333: call sub_1FADD call sub_1D89A or al, al jz loc_1E527 inc byte_26345 mov word_26346, 0 mov word_26340, 0 mov fp_2D06C, offset sub_11073 push 3200230h push 2D00320h call sub_E752 mov word_2D088, ax mov fp_2CE4A, offset sub_1DA1C loc_1E36F: mov byte_2D080, 0 jmp loc_1E527 ; --------------------------------------------------------------------------- loc_1E377: cmp Palettes+2, 80h jnb short loc_1E38E cmp byte_25FE5, 0 jnz short loc_1E389 inc Palettes+2 loc_1E389: mov byte_25FE9, 1 loc_1E38E: call sub_1E15D call fp_2CE4A cmp word_26346, 0BB8h jge short loc_1E3AB call sub_1FADD or al, al jz loc_1E527 push 19h call sub_17416 loc_1E3AB: cmp byte_2D080, 0 jnz short loc_1E3C4 push 22D50h call sub_1FB6E mov fp_2CE4A, offset sub_1DAD2 jmp loc_1E47B ; --------------------------------------------------------------------------- loc_1E3C4: push 32198h call sub_1FB6E jmp loc_1E527 ; --------------------------------------------------------------------------- loc_1E3D0: cmp Palettes+2, 0 jbe short loc_1E3E7 cmp byte_25FE4, 0 jnz short loc_1E3E2 dec Palettes+2 loc_1E3E2: mov byte_25FE9, 1 loc_1E3E7: call sub_1FADD call sub_1DB7B or al, al jz loc_1E527 inc byte_26345 mov word_26346, 0 mov fp_2CE4A, offset sub_1DC2F jmp loc_1E36F ; --------------------------------------------------------------------------- loc_1E406: cmp Palettes+2, 0 jbe short loc_1E41A cmp byte_25FE4, 0 jnz short loc_1E42C dec Palettes+2 jmp short loc_1E42C ; --------------------------------------------------------------------------- loc_1E41A: cmp Palettes, 80h jnb short loc_1E431 cmp byte_25FE5, 0 jnz short loc_1E42C inc Palettes loc_1E42C: mov byte_25FE9, 1 loc_1E431: call sub_1E15D call fp_2CE4A cmp word_26346, 0BB8h jge short loc_1E465 call sub_1FADD mov ah, 0 mov di, ax cmp byte_2429A, 0 jz short loc_1E45A mov al, byte_26348 mov ah, 0 dec ax add word_26342, ax xor di, di loc_1E45A: or di, di jz loc_1E527 push 19h call sub_17416 loc_1E465: cmp byte_2D080, 0 jnz short loc_1E488 push 20AF0h call sub_1FB6E mov fp_2CE4A, offset sub_1DD00 loc_1E47B: mov word_26346, 0 loc_1E481: inc byte_2D080 jmp loc_1E527 ; --------------------------------------------------------------------------- loc_1E488: push 30000h call sub_1FB6E mov word_2CE06, 10h push 0 call sub_17627 push 1 call sub_17627 push 2 call sub_17627 push 3 call sub_17627 jmp short loc_1E527 ; --------------------------------------------------------------------------- loc_1E4AD: call sub_1FADD mov ax, word_26346 mov bx, 2 cwd idiv bx or dx, dx jnz short loc_1E4C5 mov PaletteTone, 96h jmp short loc_1E4CB ; --------------------------------------------------------------------------- loc_1E4C5: mov PaletteTone, 64h ; 'd' loc_1E4CB: mov byte_25FE9, 1 cmp word_26346, 10h jle short loc_1E527 inc byte_26345 mov byte_26344, 0B4h mov word_2D088, 180h mov Palettes, 60h mov Palettes+2, 0 push 0Dh call sub_14CEE jmp short loc_1E527 ; --------------------------------------------------------------------------- loc_1E4F9: call sub_1E022 cmp word_26346, 0BB8h jge short loc_1E510 call sub_1FADD or al, al jz short loc_1E527 mov byte ptr word_2634A+1, 1 loc_1E510: push 4 call sub_162CC mov word_26346, 0 mov byte_26345, 0FDh jmp short loc_1E527 ; --------------------------------------------------------------------------- loc_1E522: push 41h ; 'A' call sub_1FBBE loc_1E527: call sub_1D58B call sub_17726 push word_26342 push 5910h call sub_17354 pop di pop si pop bp retf sub_1E197 endp ; --------------------------------------------------------------------------- db 0 off_1E53C dw offset loc_1E1CD dw offset loc_1E247 dw offset loc_1E286 dw offset loc_1E286 dw offset loc_1E314 dw offset loc_1E333 dw offset loc_1E377 dw offset loc_1E377 dw offset loc_1E3D0 dw offset loc_1E406 dw offset loc_1E406 dw offset loc_1E4AD dw offset loc_1E4F9 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1E556 proc near arg_0 = word ptr 4 push bp mov bp, sp push si mov si, [bp+arg_0] cmp si, 0FFF8h jl loc_1E5F5 or si, si jge short loc_1E570 mov byte_26330, 0DDh jmp loc_1E5F5 ; --------------------------------------------------------------------------- loc_1E570: cmp si, 1Eh jge short loc_1E5C6 or si, si jnz short loc_1E580 push 8 call sub_14CEE loc_1E580: mov ax, 2 imul si mov si, ax push 5948h push word_26335 mov ax, 40h sub ax, si push ax call sub_158E2 push 5940h call sub_152D2 cmp si, 10h jge short loc_1E5A7 mov ax, 1 jmp short loc_1E5A9 ; --------------------------------------------------------------------------- loc_1E5A7: xor ax, ax loc_1E5A9: push ax cmp si, 30h ; '0' jle short loc_1E5B4 mov ax, 1 jmp short loc_1E5B6 ; --------------------------------------------------------------------------- loc_1E5B4: xor ax, ax loc_1E5B6: pop dx or dx, ax jz short loc_1E5BF mov al, 0DEh jmp short loc_1E5C1 ; --------------------------------------------------------------------------- loc_1E5BF: mov al, 0DFh loc_1E5C1: mov byte_26330, al jmp short loc_1E5F5 ; --------------------------------------------------------------------------- loc_1E5C6: cmp si, 28h ; '(' jge short loc_1E5EA cmp si, 1Eh jnz short loc_1E5D7 push 0Fh call sub_14CEE loc_1E5D7: mov eax, dword_26320 mov dword_26324, eax mov byte_26330, 0DDh call off_2285A jmp short loc_1E5F5 ; --------------------------------------------------------------------------- loc_1E5EA: mov byte_26330, 0DCh call off_2285A jmp short loc_1E5F7 ; --------------------------------------------------------------------------- loc_1E5F5: mov al, 0 loc_1E5F7: pop si pop bp retn 2 sub_1E556 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1E5FC proc near push bp mov bp, sp cmp word_26332, 70h ; 'p' jl short loc_1E60A mov al, 1 pop bp retn ; --------------------------------------------------------------------------- loc_1E60A: mov al, 0 pop bp retn sub_1E5FC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1E60E proc near push bp mov bp, sp cmp word_26332, 5Eh ; '^' jnz short loc_1E62A push 1 call sub_157E4 or ax, ax jz short loc_1E625 mov al, 1 jmp short loc_1E627 ; --------------------------------------------------------------------------- loc_1E625: mov al, 0FFh loc_1E627: mov byte_2D083, al loc_1E62A: cmp word_26332, 72h ; 'r' jg short loc_1E65F mov byte ptr word_25FFA, 10h mov byte_2C976, 2 mov byte_26001, 3 mov word ptr dword_26002, 1012h mov byte_26000, 4 mov byte ptr word_26006+1, 8 mov byte ptr word_25FFA+1, 2Fh ; '/' mov al, byte_2D083 add byte ptr word_26006, al call sub_15A70 loc_1E65F: cmp word_26332, 80h jl short loc_1E66B mov al, 1 pop bp retn ; --------------------------------------------------------------------------- loc_1E66B: mov al, 0 pop bp retn sub_1E60E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1E66F proc near push bp mov bp, sp cmp byte_25352, 0 jz short loc_1E696 mov byte ptr word_25FFA, 12h mov byte_26000, 0Dh mov byte ptr word_26006+1, 10h mov word ptr dword_26002, 0A0Ch mov byte ptr word_25FFA+1, 0 call sub_15A5C loc_1E696: cmp word_26332, 80h jl short loc_1E6A2 mov al, 1 pop bp retn ; --------------------------------------------------------------------------- loc_1E6A2: mov al, 0 pop bp retn sub_1E66F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1E6A6 proc near push bp mov bp, sp mov ax, word_26332 mov bx, 10h cwd idiv bx or dx, dx jnz short loc_1E6FE mov byte ptr word_25FFA, 13h mov byte_2C976, 1 mov byte_26001, 2 mov byte_26000, 8 mov dword_26002, 10040805h mov byte ptr word_26006+1, 18h mov byte ptr word_25FFA+1, 2Fh ; '/' mov byte ptr word_26006, 80h mov byte_2C977, 0C8h call sub_15A70 mov byte ptr word_26006, 0 mov byte_2C977, 38h ; '8' call sub_15A70 push 3 call sub_14CEE loc_1E6FE: cmp word_26332, 80h jl short loc_1E70A mov al, 1 pop bp retn ; --------------------------------------------------------------------------- loc_1E70A: mov al, 0 pop bp retn sub_1E6A6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1E70E proc far push bp mov bp, sp mov eax, dword_26320 mov dword_25FFC, eax mov dword_2A722, eax inc word_26332 mov al, byte_26331 mov ah, 0 or ax, ax jz short loc_1E732 cmp ax, 1 jz short loc_1E776 jmp loc_1E855 ; --------------------------------------------------------------------------- loc_1E732: push 1800180h push 0Ah call sub_1FA9D mov byte ptr word_26335, 40h push word_26332 call sub_1E556 or al, al jz loc_1E864 inc byte_26331 mov word_26332, 0 mov byte ptr word_26335, 0 mov byte_2D085, 0 mov byte_2D084, 0 mov byte_2D082, 0 mov off_2285A, 938Eh jmp loc_1E864 ; --------------------------------------------------------------------------- loc_1E776: mov ax, word_26332 add ax, 0FFC0h push ax call sub_1E556 or al, al jz short loc_1E7F2 cmp byte_2D082, 0 jnz short loc_1E7AF cmp word_2632E, 3E8h jge short loc_1E7AF push 0Ah call sub_173AC cmp byte_2C979, 14h jnb short loc_1E7A4 mov byte_2C979, 14h loc_1E7A4: push 0Fh call sub_14CEE inc byte_2D082 loc_1E7AF: mov byte_2D085, 1 mov word_26332, 0 mov al, byte_2D084 mov ah, 0 and ax, 7 mov bx, ax mov al, byte_22868[bx] mov byte ptr word_26335, al inc byte_2D084 mov al, byte_2D082 mov ah, 0 shl ax, 2 mov dl, byte_2D084 mov dh, 0 mov bx, 2 push ax mov ax, dx cwd idiv bx add dx, dx pop bx add bx, dx mov ax, off_2285C[bx] mov off_2285A, ax loc_1E7F2: push 1800180h push 4 call sub_1FA9D mov byte_26334, al mov ah, 0 sub word_2632E, ax cmp byte_2D084, 14h jnb short loc_1E82B cmp word_2632E, 0 jg short loc_1E864 mov byte_2C978, 1 push 1Eh call sub_173AC push word ptr dword_26320 push word ptr dword_26320+2 push 5 call sub_16D84 loc_1E82B: mov byte_26331, 0FEh mov byte_26330, 4 mov word_26332, 0 push word ptr dword_26320 push word ptr dword_26320+2 push 800030h call sub_1597C push 0Ch call sub_14CEE jmp short loc_1E864 ; --------------------------------------------------------------------------- loc_1E855: call sub_17486 push word_2632E push 0BB8h call sub_17354 pop bp retf ; --------------------------------------------------------------------------- loc_1E864: push word_2632E push 0BB8h call sub_17354 mov ax, word ptr dword_26320 mov word ptr dword_2C922, ax mov ax, word ptr dword_26320+2 mov word ptr dword_2C922+2, ax pop bp retf sub_1E70E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1E87C proc near arg_0 = byte ptr 4 arg_2 = word ptr 6 push bp mov bp, sp push si mov si, 0C478h xor dx, dx jmp short loc_1E8A6 ; --------------------------------------------------------------------------- loc_1E887: cmp byte ptr [si], 0 jnz short loc_1E8A2 mov byte ptr [si], 1 mov al, [bp+arg_0] mov [si+1], al mov word ptr [si+2], 10h mov ax, [bp+arg_2] mov [si+4], ax jmp short loc_1E8AB ; --------------------------------------------------------------------------- loc_1E8A2: inc dx add si, 6 loc_1E8A6: cmp dx, 2 jl short loc_1E887 loc_1E8AB: pop si pop bp retn 4 sub_1E87C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1E8B0 proc near push bp mov bp, sp push si mov si, 0C478h xor ax, ax jmp short loc_1E8D2 ; --------------------------------------------------------------------------- loc_1E8BB: cmp byte ptr [si], 0 jz short loc_1E8CE add word ptr [si+2], 4 cmp word ptr [si+2], 260h jl short loc_1E8CE mov byte ptr [si], 0 loc_1E8CE: inc ax add si, 6 loc_1E8D2: cmp ax, 2 jl short loc_1E8BB pop si pop bp retn sub_1E8B0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1E8DA proc near push bp mov bp, sp mov ax, word_26346 add ax, 0FFD0h push ax push 60007h call sub_16A6B cmp word_26346, 30h ; '0' jnz short loc_1E900 mov byte_26344, 0B5h push 8 call sub_14CEE loc_1E900: cmp word_26346, 40h jl short loc_1E91E call fp_2CE66 or al, al jz short loc_1E91E mov word_26346, 0 mov byte_26349, 0 mov al, 1 pop bp retn ; --------------------------------------------------------------------------- loc_1E91E: mov al, 0 pop bp retn sub_1E8DA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1E922 proc near push bp mov bp, sp mov byte ptr word_25FFA, 10h push 1Fh call sub_157E4 add al, 28h ; '(' mov byte ptr word_26006+1, al push 7Fh call sub_157E4 and al, 0F8h sub al, 40h mov byte ptr word_26006, al mov byte_26000, 3 mov byte ptr word_25FFA+1, 54h ; 'T' mov word ptr dword_26002, 0C05h call sub_15A5C mov ax, word_26346 mov bx, 4 cwd idiv bx or dx, dx jnz short loc_1E967 push 3 call sub_14CEE loc_1E967: cmp word_26346, 80h jnz short loc_1E974 mov ax, 1 jmp short loc_1E976 ; --------------------------------------------------------------------------- loc_1E974: xor ax, ax loc_1E976: pop bp retn sub_1E922 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1E978 proc near push bp mov bp, sp cmp word_26346, 40h jnz short loc_1E98B mov al, 1 sub al, byte_2D085 mov byte_2D085, al loc_1E98B: mov ax, word_26346 mov bx, 4 cwd idiv bx or dx, dx jnz short loc_1E9F9 mov byte ptr word_25FFA, 13h mov byte ptr word_26006+1, 40h cmp byte_2D085, 0 jz short loc_1E9B0 mov al, byte ptr word_26006 add al, 2 jmp short loc_1E9B5 ; --------------------------------------------------------------------------- loc_1E9B0: mov al, byte ptr word_26006 add al, 0FEh loc_1E9B5: mov byte ptr word_26006, al mov byte_26000, 4 mov byte_26001, 1 mov byte_2C976, 1 mov word ptr dword_26002, 0A0Ch mov byte ptr word_25FFA+1, 30h ; '0' mov ax, word_26346 mov bx, 8 cwd idiv bx or dx, dx jnz short loc_1E9E4 call sub_15A5C jmp short loc_1E9F2 ; --------------------------------------------------------------------------- loc_1E9E4: mov word ptr dword_26002, 0A08h mov byte ptr word_25FFA+1, 54h ; 'T' call sub_15A70 loc_1E9F2: push 3 call sub_14CEE loc_1E9F9: mov ax, word_26346 add ax, 0FF9Ch push ax call sub_16BD9 cmp word_26346, 80h jnz short loc_1EA10 mov ax, 1 jmp short loc_1EA12 ; --------------------------------------------------------------------------- loc_1EA10: xor ax, ax loc_1EA12: pop bp retn sub_1E978 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1EA14 proc near push bp mov bp, sp cmp word_26346, 40h jnz short loc_1EA2E mov byte_2D084, 40h mov byte_2D083, 0 mov word_2CC8E, 7 loc_1EA2E: mov ax, word_26346 mov bx, 2 cwd idiv bx or dx, dx jnz loc_1EB0C mov ax, word_26346 mov bx, 4 cwd idiv bx or dx, dx jnz loc_1EAE3 mov byte ptr word_25FFA, 10h mov byte ptr word_25FFA+1, 0 mov byte_26000, 3 mov word ptr dword_26002, 605h mov byte ptr word_26006+1, 50h ; 'P' mov al, byte_2D084 mov byte ptr word_26006, al call sub_15A5C mov al, byte ptr word_26006 neg al mov byte ptr word_26006, al call sub_15A5C cmp byte_2D083, 0 jnz short loc_1EA96 mov al, byte_2D084 add al, 0FDh mov byte_2D084, al cmp byte_2D084, 14h ja short loc_1EAA9 inc byte_2D083 jmp short loc_1EAA9 ; --------------------------------------------------------------------------- loc_1EA96: mov al, byte_2D084 add al, 3 mov byte_2D084, al cmp byte_2D084, 40h jb short loc_1EAA9 dec byte_2D083 loc_1EAA9: mov ax, word_26346 mov bx, 10h cwd idiv bx or dx, dx jnz short loc_1EAE3 push 600h call sub_157FA add ax, word ptr dword_25FFC sub ax, 300h mov word_2CE52, ax push 400h call sub_157FA add ax, word ptr dword_25FFC+2 sub ax, 200h mov word_2CE54, ax push word_2CE52 push ax push 0 call sub_15A24 mov byte_2D085, al loc_1EAE3: mov ax, word_2CE52 mov word ptr dword_25FFC, ax mov ax, word_2CE54 mov word ptr dword_25FFC+2, ax mov byte ptr word_25FFA, 12h mov al, byte_2D085 mov byte ptr word_26006, al mov byte_26000, 0 mov byte ptr word_26006+1, 60h mov byte ptr word_25FFA+1, 54h ; 'T' call sub_15A5C loc_1EB0C: mov ax, word_26346 mov bx, 80h cwd idiv bx or dx, dx jnz short loc_1EB39 push bx mov ax, word_26346 mov bx, 100h cwd idiv bx or dx, dx jnz short loc_1EB2C mov ax, 1 jmp short loc_1EB2E ; --------------------------------------------------------------------------- loc_1EB2C: xor ax, ax loc_1EB2E: push ax call sub_1E87C push 0Dh call sub_14CEE loc_1EB39: cmp word_26346, 100h jl short loc_1EB4E mov ax, word_26346 and ax, 7Fh add ax, 0FFA0h push ax call sub_16BD9 loc_1EB4E: mov al, 0 pop bp retn sub_1EA14 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1EB52 proc near push bp mov bp, sp mov ax, word_26346 mov bx, 2 cwd idiv bx or dx, dx jnz loc_1EBF0 mov byte ptr word_25FFA, 10h push 1Fh call sub_157E4 add al, 0Ch mov byte ptr word_26006+1, al push 7Fh call sub_157E4 add al, 80h mov byte ptr word_26006, al mov byte_26000, 2 mov byte_26001, 9 mov byte_2C976, 1 mov byte ptr word_25FFA+1, 2Eh ; '.' mov word ptr dword_26002, 0C03h call sub_15A70 mov ax, word_26346 mov bx, 4 cwd idiv bx or dx, dx jnz short loc_1EBF0 push 3 call sub_14CEE mov byte ptr word_25FFA, 12h push 600h call sub_157FA sub ax, 300h add ax, word ptr dword_25FFC mov word ptr dword_25FFC, ax push 400h call sub_157FA sub ax, 200h add ax, word ptr dword_25FFC+2 mov word ptr dword_25FFC+2, ax mov byte ptr word_25FFA+1, 0 mov byte_26000, 7 mov byte ptr word_26006+1, 30h ; '0' mov word ptr dword_26002+2, 604h mov byte ptr word_26006, 0 call sub_15A5C loc_1EBF0: cmp word_26346, 80h jnz short loc_1EBFD mov ax, 1 jmp short loc_1EBFF ; --------------------------------------------------------------------------- loc_1EBFD: xor ax, ax loc_1EBFF: pop bp retn sub_1EB52 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1EC01 proc near push bp mov bp, sp cmp word_26346, 40h jnz short loc_1EC14 mov al, 1 sub al, byte_2D085 mov byte_2D085, al loc_1EC14: mov ax, word_26346 mov bx, 8 cwd idiv bx or dx, dx jnz short loc_1EC5B mov byte ptr word_25FFA, 13h mov byte ptr word_26006+1, 58h ; 'X' cmp byte_2D085, 0 jz short loc_1EC39 mov al, byte ptr word_26006 add al, 3 jmp short loc_1EC3E ; --------------------------------------------------------------------------- loc_1EC39: mov al, byte ptr word_26006 add al, 0FDh loc_1EC3E: mov byte ptr word_26006, al mov byte_26000, 4 mov word ptr dword_26002, 816h mov byte ptr word_25FFA+1, 34h ; '4' call sub_15A5C push 3 call sub_14CEE loc_1EC5B: cmp word_26346, 80h jnz short loc_1EC68 mov ax, 1 jmp short loc_1EC6A ; --------------------------------------------------------------------------- loc_1EC68: xor ax, ax loc_1EC6A: pop bp retn sub_1EC01 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1EC6C proc near push bp mov bp, sp cmp word_26346, 40h jnz short loc_1EC7B mov byte ptr dword_26002, 8 loc_1EC7B: mov ax, word_26346 mov bx, 10h cwd idiv bx or dx, dx jnz short loc_1ECD0 mov byte ptr word_25FFA+1, 34h ; '4' mov byte ptr word_25FFA, 13h mov byte ptr word_26006+1, 20h ; ' ' mov byte_26000, 4 mov byte_26001, 8 mov ax, word_26346 mov bx, 80h cwd idiv bx or dx, dx jnz short loc_1ECB9 cmp byte ptr dword_26002, 0Eh jnb short loc_1ECB9 inc byte ptr dword_26002 loc_1ECB9: mov byte_2C976, 1 mov al, byte ptr word_26006 add al, 2 mov byte ptr word_26006, al call sub_15A70 push 3 call sub_14CEE loc_1ECD0: mov al, 0 pop bp retn sub_1EC6C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1ECD4 proc near push bp mov bp, sp push si push di mov ax, word_26346 mov bx, 10h cwd idiv bx mov di, dx mov byte_26309, 3 mov byte_26313, 8 mov word_26318, 2Fh ; '/' mov word_2631A, 50h ; 'P' cmp word_26346, 90h jge short loc_1ED67 or di, di jnz short loc_1ED46 push word ptr dword_2630A push word ptr dword_2630A+2 push 30h ; '0' call sub_15A24 mov byte_26312, al mov ax, word_22870 inc word_22870 push ax call sub_17548 mov byte ptr word_25FFA, 10h mov byte ptr word_25FFA+1, 44h ; 'D' mov byte_26000, 4 call sub_157D6 mov byte ptr word_26006, al mov byte ptr word_26006+1, 40h mov word ptr dword_26002, 0A20h call sub_15A5C jmp short loc_1ED67 ; --------------------------------------------------------------------------- loc_1ED46: cmp di, 8 jnz short loc_1ED67 push word ptr dword_2630A push word ptr dword_2630A+2 push 0D0h call sub_15A24 mov byte_26312, al mov ax, word_22870 inc word_22870 push ax call sub_17548 loc_1ED67: and word_22870, 0Fh xor si, si jmp short loc_1EDA4 ; --------------------------------------------------------------------------- loc_1ED70: mov bx, si imul bx, 18h cmp byte ptr [bx+5628h], 2 jnz short loc_1EDA3 test si, 1 jz short loc_1ED8F mov bx, si imul bx, 18h mov al, [bx+5632h] inc al jmp short loc_1ED9A ; --------------------------------------------------------------------------- loc_1ED8F: mov bx, si imul bx, 18h mov al, [bx+5632h] add al, 0FFh loc_1ED9A: mov bx, si imul bx, 18h mov [bx+5632h], al loc_1EDA3: inc si loc_1EDA4: cmp si, 10h jl short loc_1ED70 cmp word_26346, 0D0h jnz short loc_1EDBB mov word_22870, 0 mov al, 1 jmp short loc_1EDBD ; --------------------------------------------------------------------------- loc_1EDBB: mov al, 0 loc_1EDBD: pop di pop si pop bp retn sub_1ECD4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1EDC1 proc near push bp mov bp, sp mov ax, word_26346 mov bx, 2 cwd idiv bx or dx, dx jnz short loc_1EE14 mov byte ptr word_25FFA, 12h mov byte_26000, 3 mov byte_26001, 3 mov byte_2C976, 2 mov byte ptr word_26006+1, 40h mov word ptr dword_26002, 907h mov byte ptr word_25FFA+1, 44h ; 'D' push 300h call sub_157FA sub ax, 180h add ax, word ptr dword_25FFC mov word ptr dword_25FFC, ax mov byte ptr word_26006, 0 call sub_15A70 push 3 call sub_14CEE loc_1EE14: mov ax, word_26346 add ax, 0FF9Ch push ax call sub_16BD9 cmp word_26346, 80h jnz short loc_1EE2B mov ax, 1 jmp short loc_1EE2D ; --------------------------------------------------------------------------- loc_1EE2B: xor ax, ax loc_1EE2D: pop bp retn sub_1EDC1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1EE2F proc near push bp mov bp, sp cmp word_26346, 40h jnz short loc_1EE59 mov byte_26309, 2 mov byte_26313, 6 mov byte_26312, 0 mov word_26318, 1Eh mov word_26314, 58h ; 'X' mov byte_2D085, 0 loc_1EE59: mov ax, word_26346 mov bx, 4 cwd idiv bx or dx, dx jnz short loc_1EEA1 cmp byte_2D085, 0 jnz short loc_1EE83 mov al, byte_26312 add al, 8 mov byte_26312, al cmp byte_26312, 80h jb short loc_1EE9E mov byte_2D085, 1 jmp short loc_1EE9E ; --------------------------------------------------------------------------- loc_1EE83: cmp byte_2D085, 1 jnz short loc_1EEA1 mov al, byte_26312 add al, 0F8h mov byte_26312, al cmp byte_26312, 0 jnz short loc_1EE9E mov byte_2D085, 0 loc_1EE9E: call sub_174C7 loc_1EEA1: cmp word_26346, 100h jl short loc_1EEED mov ax, word_26346 and ax, 3Fh add ax, 0FFE0h push ax call sub_16BD9 cmp word_26346, 200h jl short loc_1EEED mov ax, word_26346 mov bx, 10h cwd idiv bx or dx, dx jnz short loc_1EEED mov byte ptr word_25FFA, 10h mov byte_26000, 5 mov byte ptr word_26006, 0 mov byte ptr word_26006+1, 40h mov word ptr dword_26002, 0A20h mov byte ptr word_25FFA+1, 44h ; 'D' call sub_15A5C loc_1EEED: mov al, 0 pop bp retn sub_1EE2F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1EEF1 proc near push bp mov bp, sp mov ax, word_26346 mov bx, 10h cwd idiv bx or dx, dx jnz short loc_1EF6F mov byte ptr word_26006+1, 38h ; '8' mov byte ptr word_25FFA, 12h mov byte_26000, 3 mov byte ptr word_25FFA+1, 2Fh ; '/' mov byte ptr word_26006, 0 mov word ptr dword_26002, 0F09h call sub_15A5C mov ax, word_26346 mov bx, 40h cwd idiv bx or dx, dx jnz short loc_1EF6F mov word_2BC82, 0Bh mov byte_2BC88, 30h ; '0' mov ax, word_26346 mov bx, 80h cwd idiv bx or dx, dx jnz short loc_1EF54 push word_2BC71+1 push word_2BC74 push 20h ; ' ' jmp short loc_1EF5F ; --------------------------------------------------------------------------- loc_1EF54: push word_2BC71+1 push word_2BC74 push 0E0h loc_1EF5F: call sub_15A24 mov byte ptr word_2BC71, al call sub_17687 push 0Fh call sub_14CEE loc_1EF6F: cmp word_26346, 100h jnz short loc_1EF7C mov ax, 1 jmp short loc_1EF7E ; --------------------------------------------------------------------------- loc_1EF7C: xor ax, ax loc_1EF7E: pop bp retn sub_1EEF1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1EF80 proc near push bp mov bp, sp mov ax, word_26346 mov bx, 8 cwd idiv bx or dx, dx jnz short loc_1EFCF mov word_2BC82, 0Bh mov byte_2BC88, 40h mov ax, word_26346 mov bx, 10h cwd idiv bx or dx, dx jnz short loc_1EFB4 push word_2BC71+1 push word_2BC74 push 40h jmp short loc_1EFBF ; --------------------------------------------------------------------------- loc_1EFB4: push word_2BC71+1 push word_2BC74 push 0C0h loc_1EFBF: call sub_15A24 mov byte ptr word_2BC71, al call sub_17687 push 0Fh call sub_14CEE loc_1EFCF: mov ax, word_26346 mov bx, 20h ; ' ' cwd idiv bx push dx call sub_16BD9 cmp word_26346, 80h jnz short loc_1EFE9 mov ax, 1 jmp short loc_1EFEB ; --------------------------------------------------------------------------- loc_1EFE9: xor ax, ax loc_1EFEB: pop bp retn sub_1EF80 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1EFED proc near push bp mov bp, sp add word ptr dword_25FFC+2, 680h mov ax, word_22872 mov word ptr dword_25FFC, ax mov word ptr dword_2A722, ax cmp word_26346, 40h jnz short loc_1F045 mov byte ptr word_2BC71, 0C4h mov byte ptr word_26006, 20h ; ' ' mov byte_2BC88, 50h ; 'P' mov byte ptr word_26006+1, 30h ; '0' mov byte ptr word_25FFA, 12h mov byte_26000, 2 mov word ptr dword_26002, 803h mov byte ptr word_25FFA+1, 2Fh ; '/' mov byte_2D085, 0 mov byte_2D084, 0 mov byte_2D083, 0 push 8 call sub_14CEE loc_1F045: cmp word_26346, 80h jge short loc_1F08C mov ax, word_26346 mov bx, 8 cwd idiv bx or dx, dx jnz loc_1F137 mov byte_2A72E, 0Eh mov ax, word ptr dword_25FFC+2 mov word ptr dword_2A722+2, ax mov word_2A72A, 1000h mov ax, word_26346 mov bx, 10h cwd idiv bx or dx, dx jnz short loc_1F081 mov byte_2A72F, 2 jmp short loc_1F086 ; --------------------------------------------------------------------------- loc_1F081: mov byte_2A72F, 0FEh loc_1F086: call sub_16A03 jmp loc_1F137 ; --------------------------------------------------------------------------- loc_1F08C: mov ax, word_26346 mov bx, 2 cwd idiv bx or dx, dx jnz loc_1F137 mov ax, word_26346 mov bx, 10h cwd idiv bx or dx, dx jnz short loc_1F0D0 mov ax, word ptr dword_25FFC+2 mov word ptr dword_2A722+2, ax mov word_2A72A, 800h mov ax, word_26346 mov bx, 20h ; ' ' cwd idiv bx or dx, dx jnz short loc_1F0C8 mov byte_2A72F, 2 jmp short loc_1F0CD ; --------------------------------------------------------------------------- loc_1F0C8: mov byte_2A72F, 0FEh loc_1F0CD: call sub_16A03 loc_1F0D0: mov al, 80h sub al, byte ptr word_26006 mov byte ptr word_26006, al call sub_15A8E mov al, 80h sub al, byte ptr word_26006 mov byte ptr word_26006, al call sub_15A8E push 3 call sub_14CEE mov al, byte_2D085 sub byte ptr word_26006, al mov ax, word_26346 mov bx, 20h ; ' ' cwd idiv bx or dx, dx jnz short loc_1F137 mov al, byte_2D084 add byte_2D085, al cmp byte_2D083, 0 jnz short loc_1F122 inc byte_2D084 cmp byte_2D084, 10h jb short loc_1F137 inc byte_2D083 jmp short loc_1F137 ; --------------------------------------------------------------------------- loc_1F122: dec byte_2D084 cmp byte_2D084, 0 jnz short loc_1F137 mov ax, word ptr dword_2CEA0 mov word_22872, ax mov al, 1 pop bp retn ; --------------------------------------------------------------------------- loc_1F137: mov al, 0 pop bp retn sub_1EFED endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1F13B proc near push bp mov bp, sp mov ax, word_26346 add ax, 0FFC0h push ax push 60007h call sub_16A6B cmp word_26346, 40h jnz short loc_1F182 mov byte_26344, 0B5h push 8 call sub_14CEE mov byte ptr word_25FFA+1, 74h ; 't' mov byte_26000, 2 call sub_157D6 mov byte ptr word_26006, al mov word ptr dword_26002, 1505h mov byte_2D085, 0 mov word_2633E, 0 loc_1F182: cmp word_26346, 80h jl loc_1F218 mov ax, word_26346 mov bx, 2 cwd idiv bx or dx, dx jnz short loc_1F1D4 mov ax, 0D48h sub ax, word_26342 cwde shl eax, 6 mov ebx, 0D48h xor edx, edx div ebx add al, 28h ; '(' mov byte ptr word_26006+1, al call sub_15A5C mov al, byte ptr word_26006 add al, 80h mov byte ptr word_26006, al call sub_15A5C mov al, byte ptr word_26006 add al, 87h mov byte ptr word_26006, al push 9 call sub_14CEE loc_1F1D4: push 0C00h push word_2633E mov al, byte_2D085 mov ah, 0 add ax, ax mov bx, ax push word ptr [bx+42Eh] call sub_14E50 mov word_26335+1, ax mov al, byte_2D085 add al, 2 mov byte_2D085, al mov ax, 0D48h sub ax, word_26342 cwde shl eax, 6 shl eax, 4 mov ebx, 0D48h xor edx, edx div ebx mov word_2633E, ax loc_1F218: pop bp retn sub_1F13B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1F21A proc far push bp mov bp, sp cmp byte_2429A, 0 jz short loc_1F229 mov byte_2CE56, 27h ; ''' loc_1F229: cmp byte_2CE56, 0 jnz short loc_1F237 call sub_1FADD mov ah, 0 pop bp retf ; --------------------------------------------------------------------------- loc_1F237: xor ax, ax pop bp retf sub_1F21A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1F23B proc near arg_0 = word ptr 4 arg_2 = word ptr 6 push bp mov bp, sp push si mov si, [bp+arg_2] cmp si, 0FFFFh jz short loc_1F25F push si call sub_162CC cmp byte_229BA, 0 jnz short loc_1F25F mov byte_226C0, 1 mov byte_2C978, 1 call sub_1FB19 loc_1F25F: mov byte_229BA, 1 inc byte_26345 mov word_26346, 0 mov byte_26349, 0 mov byte ptr word_2634A+1, 0 mov ax, word_2634C mov word_26342, ax mov ax, [bp+arg_0] mov word_2634C, ax pop si pop bp retn 4 sub_1F23B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1F289 proc far push bp mov bp, sp push si cmp byte_2CE56, 0 jz short loc_1F298 dec byte_2CE56 loc_1F298: mov eax, dword ptr word_26335+1 mov dword_2C922, eax mov dword_25FFC, eax mov dword_2A722, eax mov dword_2630A, eax mov dword ptr word_2BC71+1, eax inc word_26346 mov al, byte_26345 mov ah, 0 mov bx, ax cmp bx, 11h ja loc_1F660 add bx, bx jmp cs:off_1F689[bx] loc_1F2C9: cmp word_26346, 1 jnz short loc_1F333 mov word_26342, 6784h mov word_2634C, 5CF8h mov word_2A72A, 800h mov byte_2A72F, 2 mov word_2A72C, 8 mov byte_26344, 0B4h mov word_2C96E, 0BAh mov word_2C970, 0B8h mov word_2C972, 0B4h mov byte_2CE56, 0 mov word_22582, 400h mov word_22584, 1400h mov word_22586, 300h mov word_22588, 600h mov si, 0CCh jmp short loc_1F32D ; --------------------------------------------------------------------------- loc_1F326: push si call super_convert_tiny inc si loc_1F32D: cmp si, 0DCh jl short loc_1F326 loc_1F333: call sub_1FB07 cmp word_26346, 0C0h jl loc_1F666 mov word_26346, 0 inc byte_26345 push 0Dh call sub_14CEE mov Palettes, 0 mov Palettes+1, 0 mov Palettes+2, 0 mov byte_25FE9, 1 mov word_2CE64, 0C4h mov fp_23F5A, offset sub_DCDB jmp loc_1F666 ; --------------------------------------------------------------------------- loc_1F374: call sub_1FB07 cmp word_26346, 40h jl loc_1F666 inc byte_26345 mov byte_26349, 1 mov byte ptr word_2634A+1, 0 mov word_26346, 0 mov fp_2D06C, offset sub_11695 mov byte_2D085, 0 mov fp_2CE66, offset sub_1E922 mov byte_2D07F, 0 jmp loc_1F666 ; --------------------------------------------------------------------------- loc_1F3AD: mov al, byte_26349 mov ah, 0 or ax, ax jz short loc_1F3BD cmp ax, 1 jz short loc_1F400 jmp short loc_1F403 ; --------------------------------------------------------------------------- loc_1F3BD: mov ax, word_26346 add ax, 0FFE0h push ax call sub_16BD9 or al, al jz short loc_1F403 mov word_26346, 0 inc byte ptr word_2634A+1 inc byte_26349 mov al, byte_2D07F mov ah, 0 shl ax, 2 mov dl, byte ptr word_2634A+1 mov dh, 0 and dx, 1 add dx, dx add ax, dx mov bx, ax mov ax, off_22874[bx] mov fp_2CE66, ax cmp byte ptr word_2634A+1, 20h ; ' ' jb short loc_1F403 jmp short loc_1F412 ; --------------------------------------------------------------------------- loc_1F400: call sub_1E8DA loc_1F403: call sub_1F21A or ax, ax jz loc_1F666 push 14h call sub_17416 loc_1F412: mov al, byte_2D07F mov ah, 0 mov bx, ax cmp bx, 3 ja loc_1F666 add bx, bx jmp cs:off_1F681[bx] loc_1F427: pushd 5208h call sub_1F23B mov fp_2CE66, offset sub_1EA14 jmp loc_1F666 ; --------------------------------------------------------------------------- loc_1F439: push 13AFCh call sub_1F23B mov fp_2CE66, offset sub_1EC6C jmp loc_1F666 ; --------------------------------------------------------------------------- loc_1F44B: push 22580h call sub_1F23B mov fp_2CE66, offset sub_1EE2F jmp loc_1F666 ; --------------------------------------------------------------------------- loc_1F45D: push 30D48h call sub_1F23B mov fp_2CE66, offset sub_1EFED jmp loc_1F666 ; --------------------------------------------------------------------------- loc_1F46F: cmp Palettes, 60h jnb short loc_1F483 mov al, Palettes add al, 2 mov Palettes, al mov byte_25FE9, 1 loc_1F483: push 0C000400h call sub_16CCC or al, al jz short loc_1F49F mov word_26346, 0 inc byte_26345 mov byte_26349, 1 loc_1F49F: call sub_1F21A jmp loc_1F666 ; --------------------------------------------------------------------------- loc_1F4A6: cmp Palettes, 60h jnb short loc_1F4BA mov al, Palettes add al, 2 mov Palettes, al mov byte_25FE9, 1 loc_1F4BA: call sub_1E8DA cmp word_26346, 0FA0h jg short loc_1F4D4 loc_1F4C5: call sub_1F21A or ax, ax jz loc_1F666 push 14h call sub_17416 loc_1F4D4: mov al, byte_2D07F mov ah, 0 mov bx, ax cmp bx, 3 ja short loc_1F523 add bx, bx jmp cs:off_1F679[bx] loc_1F4E7: push 146B4h call sub_1F23B mov fp_2CE66, offset sub_1EB52 jmp short loc_1F523 ; --------------------------------------------------------------------------- loc_1F4F8: push 23138h call sub_1F23B mov fp_2CE66, offset sub_1ECD4 jmp short loc_1F523 ; --------------------------------------------------------------------------- loc_1F509: push 31A90h call sub_1F23B mov fp_2CE66, offset sub_1EEF1 jmp short loc_1F523 ; --------------------------------------------------------------------------- loc_1F51A: push 40000h call sub_1F23B loc_1F523: mov word_2CC8E, 9 mov word_2CE64, 0C8h inc byte_2D07F jmp loc_1F666 ; --------------------------------------------------------------------------- loc_1F536: cmp Palettes+2, 60h jnb short loc_1F552 mov al, Palettes+2 add al, 2 mov Palettes+2, al mov al, Palettes add al, 0FEh mov Palettes, al mov byte_25FE9, 1 loc_1F552: cmp byte_26345, 5 jnz loc_1F3AD jmp loc_1F483 ; --------------------------------------------------------------------------- loc_1F55E: cmp Palettes, 30h ; '0' jnb short loc_1F572 inc Palettes dec Palettes+2 mov byte_25FE9, 1 loc_1F572: cmp byte_26345, 9 jnz loc_1F3AD jmp loc_1F483 ; --------------------------------------------------------------------------- loc_1F57E: cmp Palettes+1, 40h jnb short loc_1F5A4 cmp Palettes, 0 jbe short loc_1F590 dec Palettes loc_1F590: inc Palettes+1 cmp Palettes+2, 0 jbe short loc_1F59F dec Palettes+2 loc_1F59F: mov byte_25FE9, 1 loc_1F5A4: cmp byte_26345, 0Dh jnz loc_1F3AD jmp loc_1F483 ; --------------------------------------------------------------------------- loc_1F5B0: call sub_1E8DA or al, al jz loc_1F4C5 inc byte ptr word_2634A+1 cmp byte ptr word_2634A+1, 8 jbe loc_1F4C5 jmp loc_1F4D4 ; --------------------------------------------------------------------------- loc_1F5C9: cmp byte_2D080, 0 jnz short loc_1F5DD cmp Palettes+1, 0 jbe short loc_1F621 dec Palettes+1 jmp short loc_1F626 ; --------------------------------------------------------------------------- loc_1F5DD: cmp byte_2D080, 1 jnz short loc_1F606 mov al, Palettes add al, 2 mov Palettes, al inc Palettes+1 mov al, Palettes+2 add al, 2 mov Palettes+2, al cmp Palettes, 80h jb short loc_1F626 mov byte_2D080, 2 jmp short loc_1F626 ; --------------------------------------------------------------------------- loc_1F606: mov al, Palettes add al, 0FEh mov Palettes, al dec Palettes+1 mov al, Palettes+2 add al, 0FEh mov Palettes+2, al cmp Palettes, 0 jnz short loc_1F626 loc_1F621: mov byte_2D080, 1 loc_1F626: mov byte_25FE9, 1 call sub_1F13B cmp word_26346, 1388h jg short loc_1F643 call sub_1F21A or ax, ax jz short loc_1F666 mov byte ptr word_2634A+1, 1 loc_1F643: push 4 call sub_162CC mov word_26346, 0 mov byte_26345, 0FDh mov fp_2D06C, offset nullsub_2 mov byte_226C0, 0 jmp short loc_1F666 ; --------------------------------------------------------------------------- loc_1F660: push 0C8h call sub_1FBBE loc_1F666: call sub_17726 call sub_1E8B0 push word_26342 push 6784h call sub_17354 pop si pop bp retf sub_1F289 endp ; --------------------------------------------------------------------------- off_1F679 dw offset loc_1F4E7 dw offset loc_1F4F8 dw offset loc_1F509 dw offset loc_1F51A off_1F681 dw offset loc_1F427 dw offset loc_1F439 dw offset loc_1F44B dw offset loc_1F45D off_1F689 dw offset loc_1F2C9 dw offset loc_1F374 dw offset loc_1F3AD dw offset loc_1F46F dw offset loc_1F4A6 dw offset loc_1F536 dw offset loc_1F536 dw offset loc_1F483 dw offset loc_1F4BA dw offset loc_1F55E dw offset loc_1F55E dw offset loc_1F483 dw offset loc_1F4BA dw offset loc_1F57E dw offset loc_1F57E dw offset loc_1F483 dw offset loc_1F5B0 dw offset loc_1F5C9 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1F6AD proc near push bp mov bp, sp cmp word_26332, 1 jnz short loc_1F6DC cmp byte_2D085, 0 jz short loc_1F6C5 cmp byte_2D085, 3 jnz short loc_1F6CD loc_1F6C5: mov word_26328, 0FFE0h jmp short loc_1F6D3 ; --------------------------------------------------------------------------- loc_1F6CD: mov word_26328, 20h ; ' ' loc_1F6D3: inc byte_2D085 and byte_2D085, 3 loc_1F6DC: push 5940h call sub_152D2 cmp word_26332, 20h ; ' ' jl short loc_1F6ED mov al, 1 pop bp retn ; --------------------------------------------------------------------------- loc_1F6ED: mov al, 0 pop bp retn sub_1F6AD endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1F6F1 proc near push bp mov bp, sp cmp word_26332, 20h ; ' ' jge short loc_1F744 mov ax, word_26332 add ax, 0FFF0h push ax push 30002h call sub_16A6B cmp word_26332, 10h jnz short loc_1F719 push 8 call sub_14CEE loc_1F719: cmp word_26332, 14h jz short loc_1F72E cmp word_26332, 18h jz short loc_1F72E cmp word_26332, 1Ch jnz short loc_1F732 loc_1F72E: inc byte_26330 loc_1F732: push word ptr dword_26320 push word ptr dword_26320+2 push 0 call sub_15A24 mov byte ptr word_26006, al pop bp retn ; --------------------------------------------------------------------------- loc_1F744: cmp byte_26330, 0DBh jnb short loc_1F75C mov ax, word_26332 mov bx, 4 cwd idiv bx or dx, dx jnz short loc_1F75C inc byte_26330 loc_1F75C: call fp_2CE68 or al, al jz short loc_1F774 mov word_26332, 0 mov byte_2D084, 0 mov byte_26330, 0D4h loc_1F774: pop bp retn sub_1F6F1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1F776 proc near push bp mov bp, sp mov ax, word_26332 mov bx, 4 cwd idiv bx or dx, dx jnz short loc_1F7AA mov byte ptr word_25FFA, 12h mov byte ptr word_25FFA+1, 74h ; 't' mov byte ptr word_26006+1, 58h ; 'X' mov byte_26000, 2 mov word ptr dword_26002, 70Dh call sub_15A5C push 3 call sub_14CEE loc_1F7AA: cmp word_26332, 60h jl short loc_1F7B6 mov ax, 1 jmp short loc_1F7B8 ; --------------------------------------------------------------------------- loc_1F7B6: xor ax, ax loc_1F7B8: pop bp retn sub_1F776 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1F7BA proc near push bp mov bp, sp mov ax, word_26332 mov bx, 4 cwd idiv bx or dx, dx jnz short loc_1F813 mov byte ptr word_25FFA, 10h mov byte ptr word_25FFA+1, 44h ; 'D' mov byte ptr word_26006+1, 20h ; ' ' mov byte_26000, 4 mov byte ptr dword_26002, 10h push 400h call sub_157FA sub ax, 200h add ax, word ptr dword_25FFC mov word ptr dword_25FFC, ax push 400h call sub_157FA sub ax, 200h add ax, word ptr dword_25FFC+2 mov word ptr dword_25FFC+2, ax call sub_157D6 mov byte ptr word_26006, al call sub_15A5C push 3 call sub_14CEE loc_1F813: cmp word_26332, 60h jl short loc_1F81F mov ax, 1 jmp short loc_1F821 ; --------------------------------------------------------------------------- loc_1F81F: xor ax, ax loc_1F821: pop bp retn sub_1F7BA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1F823 proc near push bp mov bp, sp cmp word_26332, 20h ; ' ' jnz short loc_1F86B mov byte ptr word_25FFA, 12h mov byte ptr word_25FFA+1, 0 mov byte_26000, 9 mov byte ptr word_26006, 0 mov dword_26002, 6050A05h mov byte ptr word_26006+1, 20h ; ' ' call sub_15A5C mov byte_26000, 0Bh mov byte ptr dword_26002+3, 4 mov byte ptr dword_26002, 20h ; ' ' call sub_15A5C push 0Fh call sub_14CEE loc_1F86B: cmp word_26332, 40h jl short loc_1F877 mov ax, 1 jmp short loc_1F879 ; --------------------------------------------------------------------------- loc_1F877: xor ax, ax loc_1F879: pop bp retn sub_1F823 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1F87B proc far push bp mov bp, sp mov eax, dword_26320 mov dword_25FFC, eax mov dword_2A722, eax inc word_26332 mov al, byte_26331 mov ah, 0 or ax, ax jz short loc_1F89F cmp ax, 1 jz short loc_1F8E7 jmp loc_1F992 ; --------------------------------------------------------------------------- loc_1F89F: push 5940h call sub_152D2 push 1800180h push 0Ah call sub_1FA9D cmp word_26332, 0C0h jl loc_1F9A1 inc byte_26331 mov word_26332, 0 mov byte ptr word_26335, 0 mov byte_2D085, 0 mov byte_2D084, 1 mov byte_2D083, 0 mov word_2632A, 0 mov fp_2CE68, offset sub_1F776 jmp loc_1F9A1 ; --------------------------------------------------------------------------- loc_1F8E7: mov eax, dword_26320 mov dword_26324, eax mov al, byte_2D084 mov ah, 0 or ax, ax jz short loc_1F8FF cmp ax, 1 jz short loc_1F933 jmp short loc_1F936 ; --------------------------------------------------------------------------- loc_1F8FF: call sub_1F6AD or al, al jz short loc_1F936 mov word_26332, 0 inc byte_2D083 mov al, byte_2D083 mov ah, 0 mov bx, 3 cwd idiv bx add dx, dx mov bx, dx mov ax, off_22884[bx] mov fp_2CE68, ax inc byte_2D084 cmp byte_2D083, 10h jb short loc_1F936 jmp short loc_1F968 ; --------------------------------------------------------------------------- loc_1F933: call sub_1F6F1 loc_1F936: push 1800180h push 4 call sub_1FA9D mov byte_26334, al mov ah, 0 sub word_2632E, ax cmp word_2632E, 0 jg short loc_1F9A1 mov byte_2C978, 1 push 1Eh call sub_173AC push word ptr dword_26320 push word ptr dword_26320+2 push 5 call sub_16D84 loc_1F968: mov byte_26331, 0FEh mov byte_26330, 4 mov word_26332, 0 push word ptr dword_26320 push word ptr dword_26320+2 push 800030h call sub_1597C push 0Ch call sub_14CEE jmp short loc_1F9A1 ; --------------------------------------------------------------------------- loc_1F992: call sub_17486 push word_2632E push 60Eh call sub_17354 pop bp retf ; --------------------------------------------------------------------------- loc_1F9A1: push word_2632E push 60Eh call sub_17354 mov ax, word ptr dword_26320 mov word ptr dword_2C922, ax mov ax, word ptr dword_26320+2 mov word ptr dword_2C922+2, ax pop bp retf sub_1F87B endp ; --------------------------------------------------------------------------- db 0 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1F9BA proc near arg_0 = word ptr 4 arg_2 = word ptr 6 push bp mov bp, sp mov dx, [bp+arg_0] mov bx, [bp+arg_2] push si xor bp, bp mov si, 1FBCh mov cx, 4 loc_1F9CC: mov ax, dx xor dx, dx div word ptr [si] mov [bx], al or al, al jz short loc_1F9DE or bp, bp jnz short loc_1F9DE mov bp, cx loc_1F9DE: dec bx add si, 2 loop loc_1F9CC mov [bx], dl add bp, 2 shl bp, 3 mov ax, bp pop si pop bp retn 4 sub_1F9BA endp ; --------------------------------------------------------------------------- nop ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1F9F4 proc far arg_2 = word ptr 6 arg_4 = word ptr 8 push bp mov bp, sp push di ; Hack?!? What is this I don't even db 08dh db 03eh db 0c9h db 01fh movzx edx, [bp+arg_4] db 08dh db 01eh db 0a8h db 01fh mov ax, [bp+arg_2] mov cx, 4 jmp short loc_1FA27 sub_1F9F4 endp ; --------------------------------------------------------------------------- nop ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1FA0E proc far arg_0 = dword ptr 6 arg_4 = word ptr 0Ah arg_6 = word ptr 0Ch push bp mov bp, sp push di mov edx, [bp+arg_0] mov di, 1FC6h mov ax, 0E1h mov byte ptr dword_229AA+3, 0A0h mov bx, 1FA0h mov cx, 6 loc_1FA27: push [bp+arg_6] push [bp+arg_4] push ds push di push ax mov ax, ds mov es, ax loc_1FA34: mov eax, edx xor edx, edx div dword ptr [bx] or ch, al jz short loc_1FA45 add al, 0A0h jmp short loc_1FA47 ; --------------------------------------------------------------------------- loc_1FA45: mov al, 2 loc_1FA47: stosb add bx, 4 dec cl jnz short loc_1FA34 add dl, 0A0h mov [di], dl call gaiji_putsa pop di pop bp retf 8 sub_1FA0E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1FA5E proc near arg_0 = word ptr 4 arg_2 = word ptr 6 arg_4 = word ptr 8 push bp mov bp, sp push si mov byte_2297E, 1 mov ax, [bp+arg_4] mov word_2CED6, ax mov ax, [bp+arg_2] mov word_2CED8, ax mov eax, dword ptr word_26335+1 mov dword_2CED2, eax call sub_126B3 mov si, ax or si, si jz short loc_1FA8E push [bp+arg_0] call sub_14CEE loc_1FA8E: mov byte_2297E, 0 call sub_1FD62 mov ax, si pop si pop bp retn 6 sub_1FA5E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1FA9D proc near arg_0 = word ptr 4 arg_2 = word ptr 6 arg_4 = word ptr 8 push bp mov bp, sp push si mov byte_2297E, 1 mov ax, [bp+arg_4] mov word_2CED6, ax mov ax, [bp+arg_2] mov word_2CED8, ax mov ax, word ptr dword_26320 mov word ptr dword_2CED2, ax mov ax, word ptr dword_26320+2 mov word ptr dword_2CED2+2, ax call sub_126B3 mov si, ax or si, si jz short loc_1FAD1 push [bp+arg_0] call sub_14CEE loc_1FAD1: mov byte_2297E, 0 mov ax, si pop si pop bp retn 6 sub_1FA9D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1FADD proc near push bp mov bp, sp push word_2D088 push word_2D08A push 4 call sub_1FA5E mov byte_26348, al mov ah, 0 sub word_26342, ax mov ax, word_26342 cmp ax, word_2634C jg short loc_1FB03 mov al, 1 pop bp retn ; --------------------------------------------------------------------------- loc_1FB03: mov al, 0 pop bp retn sub_1FADD endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1FB07 proc near push bp mov bp, sp push word_2D088 push word_2D08A push 0Ah call sub_1FA5E pop bp retn sub_1FB07 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1FB19 proc near var_4 = word ptr -4 var_2 = word ptr -2 enter 4, 0 push si push di cmp byte_2CEBE, 80h jnb short loc_1FB2A xor di, di jmp short loc_1FB2D ; --------------------------------------------------------------------------- loc_1FB2A: mov di, 1 loc_1FB2D: mov ax, word_26335+1 add ax, 0FC00h mov [bp+var_2], ax mov ax, word_26338 add ax, 0FC00h mov [bp+var_4], ax xor si, si jmp short loc_1FB65 ; --------------------------------------------------------------------------- loc_1FB43: push 800h call sub_157FA add ax, [bp+var_2] push ax push 800h call sub_157FA add ax, [bp+var_4] push ax mov bx, di imul bx, 5 mov al, [bx+si+1FD0h] push ax call sub_16D84 inc si loc_1FB65: cmp si, 5 jl short loc_1FB43 pop di pop si leave retn sub_1FB19 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1FB6E proc near arg_0 = word ptr 4 arg_2 = word ptr 6 push bp mov bp, sp push si mov si, [bp+arg_2] cmp si, 0FFFFh jz short loc_1FB94 push si call sub_162CC cmp byte_229BA, 0 jnz short loc_1FB94 cmp byte_2C979, 14h jnb short loc_1FB91 mov byte_2C979, 14h loc_1FB91: call sub_1FB19 loc_1FB94: mov byte_229BA, 1 inc byte_26345 mov word_26346, 0 mov byte_26349, 0 mov byte ptr word_2634A+1, 0 mov ax, word_2634C mov word_26342, ax mov ax, [bp+arg_0] mov word_2634C, ax pop si pop bp retn 4 sub_1FB6E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1FBBE proc near arg_0 = word ptr 4 push bp mov bp, sp push si cmp byte_26345, 0FDh jnz short loc_1FC23 cmp word_26346, 1 jnz short loc_1FBE1 mov byte_26348, 0 push 0 call sub_162CC push 0Dh call sub_14CEE loc_1FBE1: cmp word_26346, 10h jnz short loc_1FBED push 4 call sub_162CC loc_1FBED: cmp word_26346, 20h ; ' ' jnz loc_1FD51 call sub_1637A inc byte_26345 mov al, byte ptr word_2634A+1 mov byte_2C978, al cmp byte ptr word_2634A+1, 0 jz short loc_1FC10 push [bp+arg_0] call sub_17416 loc_1FC10: mov byte_26344, 4 mov word_26346, 0 mov byte_2CEBC, 0FFh jmp loc_1FD51 ; --------------------------------------------------------------------------- loc_1FC23: cmp byte_26345, 0FEh jnz short loc_1FC95 cmp word_26346, 0Ch jge short loc_1FC55 cmp byte_25FE2, 0 jnz short loc_1FC3D mov ax, 0FFFCh jmp short loc_1FC40 ; --------------------------------------------------------------------------- loc_1FC3D: mov ax, 4 loc_1FC40: mov word_2CE02, ax cmp byte_25FE3, 1 ja short loc_1FC4F mov ax, 0FFFCh jmp short loc_1FC52 ; --------------------------------------------------------------------------- loc_1FC4F: mov ax, 4 loc_1FC52: mov word_2CE04, ax loc_1FC55: mov fp_23F5A, offset sub_BBE8 mov word_25FE6, 2 mov ax, word_26346 mov bx, 8 cwd idiv bx or dx, dx jnz loc_1FD5D inc byte_26344 cmp byte_26344, 0Ch jb loc_1FD5D inc byte_26345 mov word_26346, 0 mov byte_2C96C, 1 mov fp_2D06A, offset nullsub_2 jmp loc_1FD5D ; --------------------------------------------------------------------------- loc_1FC95: mov PaletteTone, 3Ch ; '<' mov byte_25FE9, 1 cmp word_26346, 1 jnz short loc_1FCD6 les bx, dword_23EF0 assume es:nothing mov ax, word_2C97A add es:[bx+3Ah], ax cmp byte_25FEA, 5 jz short loc_1FCD1 call sub_F2B4 cmp byte_25FEA, 6 jz short loc_1FCCB call sub_16510 jmp loc_1FD51 ; --------------------------------------------------------------------------- loc_1FCCB: call sub_1673E jmp loc_1FD51 ; --------------------------------------------------------------------------- loc_1FCD1: call sub_1673E jmp short loc_1FD51 ; --------------------------------------------------------------------------- loc_1FCD6: cmp word_26346, 1A0h jnz short loc_1FD35 call sub_14AB1 cmp byte_25FEA, 6 jnb short loc_1FD0B xor si, si jmp short loc_1FD06 ; --------------------------------------------------------------------------- loc_1FCEE: mov al, [si-3BD6h] mov dl, byte_25FEA mov dh, 0 shl dx, 3 les bx, dword_23EF0 add bx, dx mov es:[bx+si+4Ch], al inc si loc_1FD06: cmp si, 8 jl short loc_1FCEE loc_1FD0B: cmp byte_25FEA, 5 jnz short loc_1FD19 call sub_E448 jmp short loc_1FD25 ; --------------------------------------------------------------------------- loc_1FD19: cmp byte_25FEA, 6 jnz short loc_1FD25 call sub_E480 loc_1FD25: mov fp_2CE88, offset sub_119B1 kajacall KAJA_SONG_FADE, 10 jmp short loc_1FD51 ; --------------------------------------------------------------------------- loc_1FD35: cmp word_26346, 1E8h jnz short loc_1FD51 les bx, dword_23EF0 inc byte ptr es:[bx+13h] mov byte_25FE8, 2 push 1 call frame_delay loc_1FD51: mov word ptr dword_2C922, 0C190h mov word ptr dword_2C922+2, 0C190h loc_1FD5D: pop si pop bp retn 2 sub_1FBBE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1FD62 proc near push bp mov bp, sp mov ax, word_26335+1 mov dx, word_26338 sub ax, word ptr dword_2CEA0 sub dx, word ptr dword_2CEA0+2 add dx, 100h cmp dx, 200h ja short loc_1FD8B add ax, 100h cmp ax, 200h ja short loc_1FD8B mov byte_2CEC1, 1 loc_1FD8B: pop bp retn sub_1FD62 endp seg003 ends ; =========================================================================== ; Segment type: Pure code seg004 segment byte public 'CODE' use16 assume cs:seg004 ;org 0Dh 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 dw 0 db 0 seg004 ends