Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

wano.asm text editor program 01/13/2011

2 views
Skip to first unread message

ericmatteson...@hotmail.com

unread,
Jan 13, 2011, 1:57:47 PM1/13/11
to
Why this is marked as abuse? It has been marked as abuse.
Report not abuse
; Will Republicans remember to repeal mandatory health insurance?
; fix this as wano.017
; delete all lines above this line
; delete all lines above this line
; this is the first line of this program
; this wano.asm text editor program
; is written by Eric Matteson. Permission is granted
; to copy this source code file wano.asm and to publish
; it on the Internet and to use it at least for
; non-profit use.
; four function text editor
; ctrl x exit as ^X
; ctrl r readfile as ^R
; ctrl y ylinenumber as ^Y
; ctrl w whereis as ^w
; to assemble with nasm
; nasm -f bin -o wano.dbg wano.asm
; mv wano.dbg wano.exe
; dir -l wano.*
; wano.exe will be exactly 40960 bytes if it is
; assembled correctly
; wine wano.exe
; to run this program on wine + linux
; Also tested on Windows 98 SE
; wano.asm assembler source code is next.
section .bss
org 02000h
hmanyargs resd 1
keysdebugger resd 1
nzsaveskipod resd 1
leftdebugger resd 1
nznormalend resd 1
cmdheight resd 1
nzerror resd 1
keychar5 resd 1
lfdal resd 1
opendell resd 1
chchr40 resd 1
rcmdctr resd 1
yre resd 1
xe resd 1
cmdkeyxctr resd 1
chctr40 resd 1
uppercase resd 1
dagraprvkey resd 1
dagranewkey resd 1
keyclineinit resd 1
; dib section
resb 2
vardib resb 655422
r resd 1
revl resd 4
wmwindclass resd 24
tevl resd 4
wmwindmsg resd 16
rquesize resd 1
rquesave resd 1024
nzshift resd 1
rep0 resd 1
one2 resd 1
fp04 resd 1
fl06 resd 1
eofi resd 1
eofdelay resd 1
a80w resd 1
hv0c resd 1
evrd resb 88
hiskrba resb 16
edhanb resd 2
pose resd 1
hiskwid resd 1
afilelen resd 1
dagrajmpnow resd 1
freddynext resd 1
dagraprvjmp resd 1
onecurwozx resd 1
onecurwozy resd 1
twocurwozx resd 1
twocurwozy resd 1
x resd 1
y resd 1
ypheight resd 1
prindiff resd 1
prinjill resd 1
prindiffprv resd 1
chzerv resd 1
chnext resd 1
chdoc resd 1
alsel resd 1
insel resd 1
marginselect resd 1
moualglobal resd 1
mouallocal resd 1
moux resd 1
mouy resd 1
insertype resd 1
inspg resd 1
evwr resb 2080
crz0160 resb 16384
sandoval resb 2092152
; -----
section .code
bits 32
org 00000000h
; use realative addressing only in .code
db "MZ"
dw 0080h
dw 0001h
dw 0000h
dw 0004h
dw 0000h
dw 0FFFFh
dw 0FFF0h
dw 7ff4h
dw 0000h
dw 0100h
dw 0fff0h
dd 0,0,0,0,0,0,0,0
dd 0
dd 00000080h
db 0c7h, 0c2h, 010h, 01h, 0b4h, 09h, 0cdh, 21h
db 0c7h, 0c0h, 01h, 04ch, 0cdh, 021h, 00h, 00h
db "*** ERROR *** unable to load program$$$$$$$$$$--"
; begin 32-bit console header here at 0080
db "PE"
db 00h, 00h
db 04ch, 01h
hmanysects db 03h, 00h
dd 00000000h
dd 00000000h
dd 00000000h
dd 010600e0h
; - 0098
dd 3702010bh
hcodesize dd 00008000h
hinitdsize dd 00001000h
hramsize dd 00800000h
lphfileIP dd 00001000h
lphramIP dd 00001000h
lphramCONST dd 00809000h
iimagebase dd 00400000h
hsectalign dd 00001000h
hfilealign dd 00001000h
dd 00000004h
dd 00000000h
dd 00000004h
dd 00000000h
iimagesize dd 0080A000h
hddrsize dd 00001000h
checksum dd 00000000h
; 2 or 3 next
hwdllclwsub dd 00000002h
stackreserve dd 00100000h
stackcommit dd 00001000h
heapreserve dd 00100000h
heapcommit dd 00001000h
dd 00000000h
dd 00000010h
; -- 00f8h
; address size
hhjexport dd 00000000h, 00000000h
hhjimport dd 00809000h, 0000054Bh
hhresource dd 00000000h, 00000000h
dd 0, 00000000h
dd 0, 00000000h
dd 0, 00000000h
dd 0, 00000000h
dd 0, 00000000h
dd 0, 00000000h
dd 0, 00000000h
dd 0, 00000000h
dd 0, 00000000h
dd 0, 00000000h
dd 0, 00000000h
dd 0, 00000000h
dd 0, 00000000h
; 0178h
db ".text"
db 00h, 00h, 00h
dd 00008000h
lpcoderam dd 00001000h
llcodesize dd 00008000h
lpcodefill dd 00001000h
dd 00000000h
dd 00000000h
dd 00000000h
codchrs dd 060000020h
; --------------------
db ".bss"
db 00h, 00h, 00h, 00h
dd 00000000h
dd 00009000h
dd 00800000h
dd 00000000h
dd 00000000h
dd 00000000h
dd 00000000h
dd 0C0000080h
; ------------
db ".data"
db 00h, 00h, 00h
dd 00001000h
dd 00809000h
dd 00001000h
dd 00009000h
dd 00000000h
dd 00000000h
dd 00000000h
dd 0C0000040h
; --
dd 00000000h
dd 00000000h
dd 00000000h
dd 00000000h
; 0200h
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
; - 0400
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
; 0600
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
; 0800
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
; - 0a00
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
; 0c00
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
; 0e00
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
; - 1000h
; begin 32-bit code here
firstcode: jmp rncmain125
data0314 db ".xx"
aandy db 07fh, 0bfh, 0dfh, 0efh
db 0f7h, 0fbh, 0fdh, 0feh
chbackground dd 0fc01fe00h
db 03h, 0f8h, 07h, 0f0h, 0fh, 0e0h
db 1fh, 0c0h, 03fh, 080h, 07fh, 00h
dotprevcur db 0ffh, 07fh, 0feh, 0ffh
db 0fdh, 0ffh, 0fbh, 0ffh, 0f7h, 0ffh, 0efh
db 0ffh, 0dfh, 0ffh, 0bfh, 0ffh
db 0ffh, 0bfh, 0ffh, 07fh, 0feh, 0ffh
db 0fdh, 0ffh, 0fbh, 0ffh, 0f7h
db 0ffh, 0efh, 0ffh, 0dfh, 0ffh
db 0ffh, 0dfh, 0ffh, 0bfh, 0ffh, 07fh
db 0feh, 0ffh, 0fdh, 0ffh, 0fbh
db 0ffh, 0f7h, 0ffh, 0efh, 0ffh
db 0ffh, 0efh, 0ffh, 0dfh, 0ffh, 0bfh
db 0ffh, 07fh, 0feh, 0ffh, 0fdh
db 0ffh, 0fbh, 0ffh, 0f7h, 0ffh
db 0ffh, 0f7h, 0ffh, 0efh, 0ffh, 0dfh
db 0ffh, 0bfh, 0ffh, 07fh, 0feh
db 0ffh, 0fdh, 0ffh, 0fbh, 0ffh
db 0ffh, 0fbh, 0ffh, 0f7h, 0ffh, 0efh
db 0ffh, 0dfh, 0ffh, 0bfh, 0ffh
db 07fh, 0feh, 0ffh, 0fdh, 0ffh
db 0ffh, 0fdh, 0ffh, 0fbh, 0ffh, 0f7h
db 0ffh, 0efh, 0ffh, 0dfh, 0ffh,
db 0bfh, 0ffh, 07fh, 0feh, 0ffh
prebh db 00h, 00h
constbh db 42h, 4dh
dd 17558
dd 0
consthdrsize dd 0000003eh
dd 00000028h
biwidth dd 00000240h
biheight dd 0000010eh
dd 00010001h
dd 0
dd 17496
dd 00000ec4h
dd 00000ec4h
dd 0
dd 0
dd 00000000h
dd 00FFFFffh
onefontdir dd 02020200h, 02060204h
dd 020a0208h, 020e020ch
dd 02120210h, 02160214h, 021a0218h, 021e021ch
dd 02220220h, 02260224h, 022a0228h, 022e022ch
dd 02320230h, 02360234h, 023a0238h, 023e023ch
dd 02420240h, 025c024bh, 0282026dh, 02ac0297h
dd 02c202b5h, 02dc02cfh, 02ee02e5h, 02fc02f3h
dd 03120301h, 0330031bh, 034e0341h, 03780363h
dd 03960381h, 03b403abh, 03ca03c1h, 03dc03d3h
dd 040203edh, 04280413h, 044a0435h, 0468045bh
dd 048a047dh, 04a00497h, 04b604adh, 04d404c7h
dd 04fa04e9h, 0520050bh, 053e0535h, 055c054bh
dd 0576056dh, 05900583h, 05a2059dh, 05bc05afh
dd 05cb05c1h, 05f105e0h, 060f05feh, 06310624h
dd 064f0642h, 06650658h, 067b0672h, 0699068ch
dd 06bb06aah, 06d906d0h, 06f706eeh, 070d0704h
dd 0727071eh, 07410734h, 075b0752h, 0779076ch
; --------------------------------------------
dd 02020200h, 02060204h, 020a0208h, 020e020ch
dd 02120210h, 02160214h, 021a0218h, 021e021ch
dd 02220220h, 02260224h, 022a0228h, 022e022ch
dd 02320230h, 02360234h, 023a0238h, 023e023ch
dd 02020200h, 02060204h, 020a0208h, 020e020ch
dd 02120210h, 02160214h, 021a0218h, 021e021ch
dd 02220220h, 02260224h, 022a0228h, 022e022ch
dd 02320230h, 02360234h, 023a0238h, 023e023ch
dd 02020200h, 02060204h, 020a0208h, 020e020ch
dd 02120210h, 02160214h, 021a0218h, 021e021ch
dd 02220220h, 02260224h, 022a0228h, 022e022ch
dd 02320230h, 02360234h, 023a0238h, 023e023ch
dd 02020200h, 02060204h, 020a0208h, 020e020ch
dd 02120210h, 02160214h, 021a0218h, 021e021ch
dd 02220220h, 02260224h, 022a0228h, 022e022ch
dd 02320230h, 02360234h, 023a0238h, 023e023ch
; top of font 5*7 letter on 7*9 box
; xpos 1-5 within 0-6
; ypos 1-7 within 0-8
; x y size drawtype
; drawtype direction
; 1 right
; 2 down
; 3 upperleft lowerright
; 4 lowerleft upperright
twofontdll db "0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-"
db "0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-"
; 32 blank ! doublequotes #
db "0-31423612-"
db "2222422213214321-2172417213511551-"
; 36 $ %
db "11511122125317513172-16543122132153323731-"
; 38 & singlequote ( )
db "13421451175151622334-13111422-133415331332-"
db "313353323734-"
; 42 * + , - . /
db "165412533252-14513252-55114621-"
db "1441-36224622-1654-"
; 48 0 1 2
db "1172517221312731-41622224-"
db "51421442114124312741-"
; 51 3 4 5
db "1141144117415172-114224315172-"
db "11425442214124312731-"
; 54 6 7 8
db "54421172214124312731-"
db "11511654-21312431273151721172-"
; 57 9 : ;
db "21312431273151721142-"
db "33113511-331125213611-"
; 60 < = > ?
db "14441443-13411541-17441143-"
db "3431513211413532-"
; 64 @ A
db "33323533517211511172-"
db "2131243111725172-"
; 66 B C D
db "21432443244127411172-115117511252-"
db "31335322273411721121-"
; 69 E F G
db "2141244127411172-117221412441-"
db "34331421274121411172-"
; 72 H I J K
db "243151721172-213127313252-"
db "17415172-244435331172-"
; 76 L M N
db "27411172-3334113352621262-"
db "233351721172-"
; 79 O P Q
db "13344223544214422731-"
db "2431113151421172-1151124215543333-"
; 82 R S T
db "24311141514211721443-"
db "21213731145154421142-11513262-"
; 85 U V W
db "273151721172-3734144312225232-"
db "1744343351621162-"
; 88 X Y Z [
db "16541253-333411333442-"
db "165411511751-113117311252-"
; 92 \ ] ^ _ graveaccentbackwardssinglequote
db "1253-313137315252-"
db "311122114211-1751-211132111-"
; 97 a b c
db "11411441174115225172-"
db "2431273154421172-244127411442-"
; 100 d e f
db "1442243127315172-"
db "24315142213111722731-214124211162-"
; 103 g h i j
db "1334133351722731-244155321172-"
db "33423111-273153525111-"
; 107 k l m n
db "343434332252-22523631-"
db "3634143315325532-134314325332-"
; 111 o p q
db "1534373415333333-4332232125211352-"
db "11511451514211423342-"
; 114 r s t u
db "14411532-12411232143127341741-"
db "13513352-144254422731-"
; 115 v w x y
db "37341533-3533173414425442-"
db "17441443-353413333532-"
; 122 z { | }
db "174414312731-3131373114213172-"
db "31323532-1131317234311731-"
; 126 ~
db "222131235111-0-0-0-0-0-0-0-"
db "0-0-0-0-0-0-0-0-0-0-0-0-0"
; end of vector font
wdkey000: dd 000000000h, 000000000h
dd 000002008h, 000000d00h
dd 000000000h, 000000000h, 01B000000h, 000000000h
dd 0CFD1C920h, 0CDC8CBC7h, 0000000D0h, 000D3D200h
dd 033323130h, 037363534h, 000003938h, 000000000h
dd 063626100h, 067666564h, 06B6A6968h, 06F6E6D6Ch
dd 073727170h, 077767574h, 0007A7978h, 000000000h
dd 033323130h, 037363534h, 02B2A3938h, 02F2E2D00h
dd 0BEBDBCBBh, 0C2C1C0BFh, 00000C4C3h, 000000000h
dd 000000000h, 000000000h, 000000000h, 000000000h
dd 000000000h, 000000000h, 000000000h, 000000000h
dd 000000000h, 000000000h, 000000000h, 000000000h
dd 000000000h, 000000000h, 03D3B0000h, 02F2E2D2Ch
dd 000000060h, 000000000h, 000000000h, 000000000h
dd 000000000h, 000000000h, 05B000000h, 000275D5Ch
dd 000000000h, 000000000h, 000000000h, 000000000h
dd 000000000h, 000000000h, 000000000h, 000000000h
; --
dd 000000000h, 000000000h, 000000000h, 00000A000h
dd 000000000h, 000000000h, 000000000h, 000000000h
dd 000000020h, 000000000h, 000000000h, 000000000h
dd 023402129h, 0265E2524h, 00000282Ah, 000000000h
dd 043424100h, 047464544h, 04B4A4948h, 04F4E4D4Ch
dd 053525150h, 057565554h, 0005A5958h, 000000000h
dd 000000000h, 000000000h, 000000000h, 000000000h
dd 000000000h, 000000000h, 000000000h, 000000000h
dd 000000000h, 000000000h, 000000000h, 000000000h
dd 000000000h, 000000000h, 000000000h, 000000000h
dd 000000000h, 000000000h, 000000000h, 000000000h
dd 000000000h, 000000000h, 02B3A0000h, 03F3E5F3Ch
dd 00000007Eh, 000000000h, 000000000h, 000000000h
dd 000000000h, 000000000h, 07B000000h, 000227D7Ch
dd 000000000h, 000000000h, 000000000h, 000000000h
dd 000000000h, 000000000h, 000000000h, 000000000h
; --
dd 000000000h, 000000000h, 000002008h, 000000d00h
dd 000000000h, 000000000h, 01B000000h, 000000000h
dd 0CFD1C920h, 0CDC8CBC7h, 0000000D0h, 000D3D200h
dd 033323130h, 037363534h, 000003938h, 000000000h
dd 003020100h, 007060504h, 00B0A0908h, 00F0E0D0Ch
dd 013121110h, 017161514h, 0001A1918h, 000000000h
dd 033323130h, 037363534h, 02B2A3938h, 02F2E2D00h
dd 0BEBDBCBBh, 0C2C1C0BFh, 00000C4C3h, 000000000h
dd 000000000h, 000000000h, 000000000h, 000000000h
dd 000000000h, 000000000h, 000000000h, 000000000h
dd 000000000h, 000000000h, 000000000h, 000000000h
dd 000000000h, 000000000h, 03D3B0000h, 02F2E2D2Ch
dd 000000060h, 000000000h, 000000000h, 000000000h
dd 000000000h, 000000000h, 05B000000h, 000275D5Ch
dd 000000000h, 000000000h, 000000000h, 000000000h
dd 000000000h, 000000000h, 000000000h, 000000000h
; --
amkeydown dd 874
amkeyup dd 875
ampaint dd 633
amdestroy dd 620
amcreate dd 619
fstab1864: dd 01, 01, 01, 01
dd 01, 01, 01, 01
dd 03, 04, 11, 12
dd 03, 03, 03, 03
; fstab1864 8 1928 4 1960 2 1896 1 1880
chdelval dd 2050, 2142, 2142, 2142
dd 2054, 2055, 2156, 2142
dd 2158, 2142, 2142, 2142
dd 2142, 2142, 2142, 2142
; insert litharg here 0555
litharg db "000072.."
db "000000..000064..000128..000192.."
db "000256..000320..000384..000448.."
; begin actual text at
;(last numbers line number + 1) * 8
; estimated starting offset is 72
; 01 656
db "0123456789abcdef wano text edito"
db "r 234567x...Ydef0123y56FL9aBcde!"
; 02
db "^X exit ^R read file ^Y ylin"
db "enumber ^W whereis --!"
; 03 R read
db "Enter name of file to be opened "
db "for reading .!"
; 04 save file ?
db "Save file ? (y or n) answering n"
db " will destroy changes .!"
; 05 name of file to be WRITTEN
db "name of file to BE WRITTEN IS "
db " .!"
; 06
db "Enter line number between 1 and "
db "last line .!"
; 07
db "enter Search term or phrase "
db " .!"
db "...."
; end of litharg
jasonsname db "wano JN"
db 00h, 00h, 00h, 00h
dd 0
scotsname db "32-bit wano text editor"
db 00h
db 00h, 00h, 00h, 00h
dd 0
db "...."
; line 0689
; int nampy(int nasl, int nasr)
; 1004 retad 1008 nasl 1012 nasr
; 992 esi 996 edi 1000 ebp
; 980 ecx 984 edx 988 ebx
; 968 cst32 972 cst1 976 product
nampy: push ebp
mov ebp,esp
sub ebp,1000
push edi
push esi
push ebx
push edx
push ecx
xor eax,eax
push eax
push eax
push eax
xor esi,esi
add esi,1000
mov ecx,esi
sub ecx,968
sub esi,999
mov [ebp+972],esi
mov [ebp+968],ecx
mov edi,[ebp+1008]
mov ebx,[ebp+1012]
xor esi,esi
namlop: mov edx,[ebp+972]
and edx,ebx
jz namzur
add [ebp+976],edi
namzur: shr ebx,1
add edi,edi
or ebx,ebx
jz nambot
add esi,[ebp+972]
cmp esi,[ebp+968]
js namlop
nambot: pop ecx
pop edx
pop eax
pop ecx
pop edx
pop ebx
pop esi
pop edi
pop ebp
ret
; end of nampy
; int smposdiv(int posnu,int posde)
; 2004 retad 2008 posnu 2012 posde
; 1992 esi 1996 edi 2000 ebp
; 1980 ecx 1984 edx 1988 ebx
; 1968 cst32 1972 cst1 1976 frac
smposdiv: push ebp
mov ebp,esp
sub ebp,2000
push edi
push esi
push ebx
push edx
push ecx
xor eax,eax
push eax
push eax
push eax
xor esi,esi
add esi,1000
mov ecx,esi
sub ecx,968
sub esi,999
mov [ebp+1972],esi
mov [ebp+1968],ecx
mov esi,[ebp+2008]
xor ecx,ecx
xor edi,edi
loopdivt: mov edx,[ebp+1976]
clc
adc [ebp+1976],edx
clc
adc esi,esi
adc edi,edi
mov edx,edi
sub edx,[ebp+2012]
jb loopdivz
mov edi,edx
mov ebx,[ebp+1972]
add [ebp+1976],ebx
loopdivz: add ecx,[ebp+1972]
cmp ecx,[ebp+1968]
js loopdivt
pop ecx
pop edx
pop eax
pop ecx
pop edx
pop ebx
pop esi
pop edi
pop ebp
ret
; bottom of smposdiv
; int hdigval(char* hdf, int hds)
; 1004 retad 1008 *hdf 1012 hds
; 988 ebx 992 esi 996 edi 1000 ebp
; 972 0 976 eax 980 ecx 984 edx
; 956 4 960 3 964 2 968 1
; 940 8 944 7 948 6 952 5
; 796 44 800 43
; 780 48 784 47 788 46 792 45 -
; 748 56 752 55
; 732 60 736 59 740 58 744 57
; 700 68 D 704 67 C 708 66 B 712 65 A
; 684 72 H 688 71 G 692 70 F 696 69 E
; 620 88 X 624 87 W
; 604 92 608 91 612 90 Z 616 89 Y
; 572 100 d 576 99 c 580 98 b 584 97 a
; 556 104 h 560 103 g 564 102 f
; 492 120 x
; 476 124 480 123 484 122 z 488 121 y
; 460 128 464 127 468 126 472 espfixer
hdigval: push ebp
mov ebp,esp
sub ebp,1000
push edi
push esi
push ebx
push edx
push ecx
push eax
xor esi,esi
add esi,1130
mov ecx,esi
mov edx,esi
xor edi,edi
sub ecx,1000
sub edx,1129
mov eax,ecx
add eax,eax
add eax,eax
hdigvu: push edi
add edi,edx
sub ecx,edx
push edi
add edi,edx
sub ecx,edx
jnz hdigvu
mov [ebp+472],eax
mov edi,[ebp+460]
mov ebx,[ebp+1008]
sub ebx,2048
xor edx,edx
mov esi,[ebp+1012]
mov dl,[ebx+esi*1+2048]
cmp edx,[ebp+972]
js hlowfail
cmp edx,[ebp+788]
jns hlowfail
mov edi,edx
hlowfail: mov ecx,[ebp+780]
cmp edx,ecx
js htenfail
cmp edx,[ebp+740]
jns htenfail
mov edi,edx
sub edi,ecx
htenfail: xor ecx,ecx
add ecx,[ebp+752]
cmp edx,[ebp+712]
js huhexfail
cmp edx,[ebp+620]
jns huhexfail
mov edi,edx
sub edi,ecx
huhexfail: mov ecx,[ebp+624]
cmp edx,[ebp+584]
js hlhexfail
cmp edx,[ebp+492]
jns hlhexfail
mov edi,edx
sub edi,ecx
hlhexfail: mov [ebp+976],edi
add esp,[ebp+472]
pop eax
pop ecx
pop edx
pop ebx
pop esi
pop edi
pop ebp
ret
; bottom of hdigval
; int rlnvalue(int subd0,char* rlvasewid,char* rlnline)
; 1004 retad 1008 subd0 1012 *rlvasewid 1016 *rlnline
; 988 ebx 992 esi 996 edi 1000 ebp
; 972 0 976 eax 980 ecx 984 edx
; 956 4 960 3 964 2 968 1
; 940 8 944 7 948 6 952 5
; 924 12 928 11 932 10 936 9
; 908 16 912 15 916 14 920 13
; 892 20 896 19 900 18 904 product
; 876 24 880 23 884 22 888
; 860 28 864 27 868 26 872
; 844 32 848 31 852 30 856 width
; 828 36 832 35 836 34 840 base-1
; 812 40 815 39 820 38 824 negind
; 796 44 800 43 804 42 808 espfix
; 780 48 784 47 788 46 792 45 -
rlnvalue: push ebp
mov ebp,esp
sub ebp,1000
push edi
push esi
push ebx
push edx
push ecx
push eax
xor esi,esi
add esi,1050
mov edx,esi
mov ecx,esi
sub ecx,1000
sub edx,1049
mov eax,ecx
add eax,eax
add eax,eax
xor edi,edi
rlnvalpu: push edi
add edi,edx
sub ecx,edx
push edi
add edi,edx
sub ecx,edx
jnz rlnvalpu
mov [ebp+808],eax
xor edx,edx
mov [ebp+904],edx
xor esi,esi
mov [ebp+824],esi
mov ecx,[ebp+928]
mov edx,[ebp+936]
xor edi,edi
mov [ebp+840],edx
mov [ebp+856],ecx
mov ebx,[ebp+1012]
cmp ebx,[ebp+972]
jz rlnvawnull
rlnvawloop: push esi
push ebx
call hdigval
add esp,[ebp+940]
mov [ebp+edi*1+840],eax
add edi,[ebp+908]
add esi,[ebp+968]
cmp esi,[ebp+964]
js rlnvawloop
rlnvawnull: mov edi,[ebp+972]
mov ebx,[ebp+1016]
rlnearly: mov esi,[ebp+972]
add esi,edi
add esi,[ebp+1008]
cmp edi,[ebp+856]
jns rlnrloop
push esi
push ebx
call hdigval
add esp,[ebp+940]
cmp eax,[ebp+792]
jnz rlnposone
mov edx,[ebp+968]
mov [ebp+824],edx
rlnposone: mov edx,[ebp+840]
add edx,[ebp+968]
cmp eax,edx
js rlnrloop
add edi,[ebp+968]
xor edx,edx
jz rlnearly
rlnrloop: mov esi,[ebp+972]
add esi,edi
add esi,[ebp+1008]
cmp edi,[ebp+856]
jns rlnrdone
push esi
push ebx
call hdigval
add esp,[ebp+940]
mov edx,[ebp+840]
add edx,[ebp+968]
cmp eax,edx
jns rlnrdone
mov ecx,eax
mov eax,[ebp+904]
push edx
push eax
call nampy
add esp,[ebp+940]
add ecx,eax
mov [ebp+904],ecx
add edi,[ebp+968]
xor edx,edx
jz rlnrloop
rlnrdone: xor edi,edi
mov esi,[ebp+904]
xor edx,edx
cmp edx,[ebp+824]
jz rlnpostwo
sub edi,esi
mov [ebp+904],edi
rlnpostwo: mov edx,[ebp+904]
mov [ebp+976],edx
add esp,[ebp+808]
pop eax
pop ecx
pop edx
pop ebx
pop esi
pop edi
pop ebp
ret
; bottom of rlnvalue
; chnvalue(*chwv,subv,inchn,*bwv)
; 1020 *bwv 1016 inchn 1012 subv 1008 *chvw
; 1004 retad 1000 ebpsav 996 edisav 992 esisa
; 988 ebxsav 984 edxsav 980 ecxsav 976 eaxsav
; 960 3 964 2 968 1 972 0
; 944 7 948 6 952 5 956 4
; 928 11 932 10 936 9 940 8
; 912 15 916 14 920 13 924 12
; 896 19 900 fixesp 904 17 908 16
; 880 884 22 888 21 892 20
; 864 27 868 26 872 25 876 24
; 848 31 852 30 856 29 860 28
; 832 35 836 34 840 33 844 32
; 816 39 820 824 37 828 36
; 800 804 42 808 41 812 40
; 784 47 788 46 792 45 796 44
; 768 51 772 50 776 49 780 48
; 752 55 756 54 760 53 764 52
; 736 59 740 58 744 57 748 56
; 720 724 62 728 61 732
; 704 67 C 708 66 B 712 65 A 716
; 688 71 G 692 70 F 696 69 E 700 68 D
; 672 75 676 74 680 73 684
; 656 79 660 78 664 77 668 76
; 640 83 644 82 648 81 652 80
; 624 87 628 86 632 85 636 poschn
; 608 91 612 90 Z 616 89 Y 620
; 592 base-1 596 width 600 604
; 576 94 c 580 98 b 584 97 a 588
; 560 103 g 564 102 f 568 101 e 572 100 d
; 464 - 559 96 character buffer
chnvalue: push ebp
mov ebp,esp
sub ebp,1000
push edi
push esi
push ebx
push edx
push ecx
push eax
xor esi,esi
add esi,2128
mov ecx,esi
mov edx,esi
sub ecx,2000
sub edx,2127
xor edi,edi
mov eax,ecx
add eax,eax
add eax,eax
chnvalpu: push edi
add edi,edx
sub ecx,edx
jnz chnvalpu
mov [ebp+900],eax
xor esi,esi
mov ebx,[ebp+1020]
cmp ebx,[ebp+972]
jz wnullbwv
sub ebx,2048
chnlbwv: xor edx,edx
mov edi,esi
mov dl,[ebx+esi*1+2048]
mov ecx,[ebp+972]
cmp edx,[ebp+780]
js keepchnl
mov ecx,[ebp+780]
cmp edx,[ebp+712]
js keepchnl
mov ecx,[ebp+752]
cmp edx,[ebp+584]
js keepchnl
mov ecx,[ebp+624]
keepchnl: sub edx,ecx
mov [ebp+edi*4+592],edx
add esi,[ebp+968]
cmp esi,[ebp+964]
js chnlbwv
xor ecx,ecx
jz chnwgot
wnullbwv: mov ecx,[ebp+912]
mov edx,[ebp+940]
mov [ebp+592],ecx
mov [ebp+596],edx
xor ecx,ecx
jz chnwgot
chnwcrash: jmp chnvpop
chnwgot: mov ecx,[ebp+592]
mov edx,[ebp+596]
cmp ecx,[ebp+968]
js chnwcrash
cmp edx,[ebp+968]
js chnwcrash
cmp ecx,[ebp+844]
jns chnwcrash
cmp edx,[ebp+832]
jns chnwcrash
mov edi,[ebp+1016]
mov esi,[ebp+972]
sub esi,[ebp+968]
mov edx,esi
sub edx,edi
cmp edi,[ebp+972]
js chnawkneg
mov edx,edi
chnawkneg: mov [ebp+636],edx
mov edi,[ebp+596]
chnwdecloop: sub edi,[ebp+968]
cmp edi,[ebp+972]
js chnwdecbot
chnwdecvvop: mov edx,[ebp+592]
add edx,[ebp+968]
mov esi,[ebp+636]
push edx
push esi
call smposdiv
add esp,[ebp+940]
mov [ebp+636],eax
push eax
push edx
call nampy
add esp,[ebp+940]
sub esi,eax
cmp esi,[ebp+972]
jns chnremok
add esi,edx
chnremok: mov eax,[ebp+592]
sub eax,esi
mov ecx,[ebp+1016]
cmp ecx,[ebp+972]
js chnbwkneg
mov eax,esi
chnbwkneg: add eax,[ebp+780]
cmp eax,[ebp+740]
js chndhexw
add eax,[ebp+944]
chndhexw: mov [ebp+edi*1+464],al
jmp chnwdecloop
chnwdecbot: mov edx,[ebp+804]
xor esi,esi
mov ecx,[ebp+636]
chnforward: mov edi,esi
add edi,[ebp+1008]
sub edi,[ebp+968]
add edi,[ebp+1012]
sub edi,512
cmp ecx,[ebp+972]
jnz skipchnzw
mov dl,[ebp+esi*1+464]
skipchnzw: mov [edi+512],dl
add esi,[ebp+968]
cmp esi,[ebp+596]
js chnforward
chnvpop: mov esi,[ebp+900]
add esp,esi
pop eax
pop ecx
pop edx
pop ebx
pop esi
pop edi
pop ebp
ret
; bottom of chnvalue
; int getretad()
getretad: push ebp
mov ebp,esp
sub ebp,300
mov eax,[ebp+304]
pop ebp
ret
; int getreala(int ofthis)
; 362 ofthis 358 retad 354 ebpsave
; 350 esisave
getreala: push ebp
push esi
mov ebp,esp
sub ebp,350
xor eax,eax
lea esi,[eax+getonea]
call getretad
getonea: sub eax,esi
add eax,[ebp+362]
pop esi
pop ebp
ret
; bottom of getreala
; void riedline(struct lnes *rl)
; 1004 retad 1008 *rl
; 992 esi 996 edi 1000 ebpsave
; 980 ecx 984 edx 988 ebx
; 968 972 976 eax
; 956 ctra06 960 ctrd04 964
; 944 rund 948 bund 952 ctrzz
; 932 cst32 936 cst126 940
; 920 cst0 924 cst1 928 cst204
; 908 cst08 912 cst1a 916 cst13
; 896 cst04 900 904 cst0a
; 884 888 892
; 872 876 880 cpa80w
riedline: push ebp
mov ebp,esp
sub ebp,1000
push edi
push esi
push ebx
push edx
push ecx
push eax
xor edi,edi
xor ecx,ecx
add ecx,2026
sub ecx,2000
riedrlpu: push edi
add ecx,1000
sub ecx,1001
jnz riedrlpu
xor esi,esi
add esi,1000
mov ecx,esi
sub ecx,999
mov [ebp+924],ecx
mov ecx,esi
sub ecx,996
mov [ebp+896],ecx
mov ecx,esi
sub ecx,990
mov [ebp+904],ecx
mov ecx,esi
sub ecx,992
mov [ebp+908],ecx
mov ecx,esi
sub ecx,974
mov [ebp+912],ecx
mov ecx,esi
sub ecx,987
mov [ebp+916],ecx
mov ecx,esi
sub ecx,796
mov [ebp+928],ecx
mov ecx,esi
sub ecx,968
mov [ebp+932],ecx
mov ecx,esi
sub ecx,874
mov [ebp+936],ecx
mov ebx,[ebp+1008]
sub ebx,8192
mov ecx,[ebx+a80w]
mov [ebp+880],ecx
xor esi,esi
mov [ebp+960],esi
mov [ebp+956],esi
mov [ebp+952],esi
reedloop01: mov edx,[ebp+956]
cmp edx,[ebp+880]
js chkrep
xor esi,esi
jz afterloop01
chkrep: xor esi,esi
cmp esi,[ebx+rep0]
jnz crepeat
mov esi,[ebp+1008]
push esi
call triadone
add esp,[ebp+896]
crepeat: mov ecx,[ebx+one2]
mov [ebp+948],ecx
xor esi,esi
mov [ebx+rep0],esi
jz cmpxc
afterloop01: xor esi,esi
jz afterloop02
reedloop02: xor esi,esi
jz reedloop01
cmpxc: mov ecx,[ebp+948]
mov [ebp+944],ecx
cmp ecx,[ebp+928]
jz cmpxa1
cmp ecx,[ebp+932]
jns yreedu
mov edx,[ebp+932]
mov [ebp+944],edx
cmp ecx,[ebp+916]
jz cmpxd1
cmp ecx,[ebp+920]
jz cmpxd1
cmp ecx,[ebp+904]
jz cmpxa1
cmp ecx,[ebp+912]
jz cmpxa1
mov esi,[ebp+956]
mov edx,[ebp+944]
mov [ebx+esi*1+evrd],dl
add esi,[ebp+924]
mov [ebp+956],esi
xreedj1: xor esi,esi
jz reedloop02
afterloop02: xor esi,esi
jz afterloop03
cmpxa1: xor esi,esi
jz cmpxa2
cmpxd1: xor esi,esi
jz cmpxd2
yreedu: mov edx,[ebp+944]
mov esi,[ebp+956]
mov [ebx+esi*1+evrd],dl
add esi,[ebp+924]
mov [ebp+956],esi
xor esi,esi
jz xreedj1
cmpxd2: xor esi,esi
jz afterlined
cmpxa2: xor esi,esi
jz afterlinea
afterloop03: xor esi,esi
jz afterloop04
reedloop04: xor esi,esi
jz xreedj1
afterlined: xor esi,esi
jz afterlinea
aftquit01: xor esi,esi
jz blanright1
afterlinea: mov edx,[ebp+948]
cmp edx,[ebp+904]
jz aftquit01
cmp edx,[ebp+912]
jz aftquit01
cmp edx,[ebp+928]
jz aftquit01
xor esi,esi
jz dseek
afterminea: xor esi,esi
jz afterlinea
afterloop04: xor esi,esi
jz afterloop05
reedloop05: xor esi,esi
jz reedloop04
aftquit02: xor esi,esi
jz aftquit01
blanright1: xor esi,esi
jz blanright2
dseek: mov edx,[ebp+948]
cmp edx,[ebp+916]
jz dloopp
cmp edx,[ebp+920]
jz dloopp
mov ecx,[ebp+896]
mov [ebx+rep0],ecx
xor esi,esi
jz aftquit02
dloopp: xor esi,esi
cmp esi,[ebx+eofi]
jz dloop
aftquit03: xor esi,esi
jz aftquit02
afterloop05: xor esi,esi
jz afterloop06
reedloop06: xor esi,esi
jz reedloop05
blanright2: xor esi,esi
jz blanright3
aftermineb: xor esi,esi
jz afterminea
dloop: mov edx,[ebp+1008]
push edx
call triadone
add esp,[ebp+896]
mov edx,[ebx+one2]
mov [ebp+948],edx
xtafterlinea: mov edx,[ebp+960]
add edx,[ebp+924]
mov [ebp+960],edx
cmp edx,[ebp+896]
js atafterlinea
mov edx,[ebp+948]
cmp edx,[ebp+920]
jz reefixdz
cmp edx,[ebp+916]
jz reefixdz
xor esi,esi
jz atafterlinea
reefixdz: xor esi,esi
jz aftquit03
afterloop06: xor esi,esi
jz afterloop07
reedloop07: xor esi,esi
jz reedloop06
blanright3: xor esi,esi
jz blanright4
atafterlinea: xor esi,esi
jz aftermineb
blanright4: mov edx,[ebp+956]
mov [ebp+952],edx
blanlop: mov ecx,[ebp+956]
cmp ecx,[ebp+880]
jns rpopline
mov edi,[ebp+956]
mov edx,[ebp+932]
mov [ebx+edi*1+evrd],dl
add edi,[ebp+924]
mov [ebp+956],edi
xor esi,esi
jz blanlop
aftquit05: xor esi,esi
jz reefixdz
afterloop07: xor esi,esi
jz afterloop08
reedloop08: xor esi,esi
jz reedloop07
ttafterlinea: xor esi,esi
jz atafterlinea
rpopline: mov edx,[ebx+rep0]
mov [ebp+944],edx
xor esi,esi
jz reedret
afterloop08: xor esi,esi
cmp esi,[ebx+eofi]
jz alproca
aftquit06: xor esi,esi
jz aftquit05
alproca: xor esi,esi
jz alprocb
alprocb: mov edx,[ebp+1008]
push edx
call triadone
add esp,[ebp+896]
mov edx,[ebx+one2]
mov [ebp+948],edx
xor esi,esi
cmp esi,[ebx+eofi]
jz rtafterlinea
xor edx,edx
add edx,1008
sub edx,1000
mov [ebp+952],edx
rtafterlinea: xor esi,esi
jz ttafterlinea
reedret: xor edx,edx
add edx,2104
sub edx,2000
add esp,edx
pop eax
pop ecx
pop edx
pop ebx
pop esi
pop edi
pop ebp
ret
; end of riadline
; triadone(lnes* trro)
; 1000 ebp 1004 retad 1008 *trro
; 984 edx 988 ebx 992 esi 996 edi
; 968 1 972 0 976 eax 980 ecx
; 952 5 956 4 960 3 964 2
; 936 9 940 8 944 7 948 6
; 920 whereafr 924 whorrorl 928 whorrorh
; 904 17 908 912 espfix 916 wherewiored03
triadone: push ebp
push edi
push esi
push ebx
push edx
push ecx
push eax
xor esi,esi
add esi,1018
mov edx,esi
mov ecx,esi
sub edx,1017
sub ecx,1000
mov eax,ecx
add eax,eax
add eax,eax
xor edi,edi
triadopu: push edi
add edi,edx
sub ecx,edx
jnz triadopu
mov ebp,esp
sub ebp,904
mov [ebp+912],eax
xor eax,eax
push eax
call getreala
add esp,[ebp+956]
mov ebx,eax
lea esi,[ebx+triadafr]
mov [ebp+920],esi
lea edi,[ebx+wiored03]
mov ecx,[edi+00800000h]
mov [ebp+916],ecx
mov esi,[ebp+1008]
sub esi,8192
mov edi,[esi+fp04]
cmp edi,[esi+fl06]
js trnoteof
mov edx,[ebp+968]
mov [esi+eofi],edx
mov ecx,[ebp+920]
push ecx
ret
trnoteof: lea ebx,[ebp+932]
mov edx,[esi+edhanb]
mov ecx,[ebp+920]
mov eax,[ebp+916]
lea edi,[ebp+924]
mov esi,[ebp+968]
xor ebp,ebp
push ebp
push edi
push esi
push ebx
push edx
push ecx
push eax
ret
triadafr: mov ebp,esp
sub ebp,904
mov esi,[ebp+1008]
sub esi,8192
mov ecx,[ebp+932]
mov [esi+one2],ecx
mov edx,[esi+fp04]
add edx,[ebp+968]
mov [esi+fp04],edx
cmp edx,[esi+fl06]
js triadbot
mov ecx,[ebp+968]
mov [esi+eofi],ecx
triadbot: add esp,[ebp+912]
pop eax
pop ecx
pop edx
pop ebx
pop esi
pop edi
pop ebp
ret
; bottom of triadone
; int wdoskey(int rawkey,int nzzshift)
; 1004 retad 1008 rawkey 1012 nzzshift
; 992 esi 996 edi 1000 ebpsave
; 980 ecx 984 edx 988 ebx
; 968 1 972 0 976 result
; 956 4 960 3 964 2
; 944 7 948 cst255 952 cst127
; 932 10 936 tableloc 940 8
wdoskey: push ebp
mov ebp,esp
sub ebp,1000
push edi
push esi
push ebx
push edx
push ecx
xor eax,eax
push eax
xor edx,edx
add edx,1001
mov ecx,edx
sub edx,1000
sub ecx,990
wdoskepu: push eax
add eax,edx
sub ecx,edx
jnz wdoskepu
xor edi,edi
add edi,1255
mov ecx,edi
sub ecx,1000
mov [ebp+948],ecx
mov ecx,edi
sub ecx,1128
mov [ebp+952],ecx
xor edx,edx
push edx
call getreala
add esp,[ebp+956]
mov esi,eax
lea edx,[esi+wdkey000]
mov [ebp+936],edx
xor ebx,ebx
mov ecx,[ebp+960]
and ecx,[ebp+1012]
jz wdoskeb
add ebx,[ebp+968]
add ebx,[ebp+948]
; 256 = 968 + 948
mov ecx,[ebp+964]
and ecx,[ebp+1012]
jz wdoskeb
add ebx,ebx
wdoskeb: add ebx,[ebp+936]
sub ebx,1000
mov esi,[ebp+1008]
and esi,[ebp+948]
xor edx,edx
mov dl,[ebx+esi*1+1000]
and edx,[ebp+952]
mov [ebp+976],edx
; 2+7+6+6+2+2+2+6+6+6
xor eax,eax
mov al,[ebx+esi*1+1000]
mov edx,[ebp+968]
add edx,[ebp+952]
; 128 = 968 + 952
and edx,eax
jz wdosyorm
xor edx,edx
add edx,3024
sub edx,2000
add [ebp+976],edx
wdosyorm: xor ecx,ecx
add ecx,1044
sub ecx,1000
add esp,ecx
pop eax
pop ecx
pop edx
pop ebx
pop esi
pop edi
pop ebp
ret
; bottom of wdoskey
; void amackpixel(lnes* ampx3,int x2,int y1)
; 1008 *ampx3 1012 x2 1016 y1
; 976 eax 980 ecx 984 edx 988 ebx
; 960 3 964 2 968 1 972 0
; 944 7 948 6 952 5 956 4
; 928 11 932 10 936 9 940 8
; 912 15 916 14 920 13 924 12
; 896 19 900 18 904 17 908 16
; 880 23 884 22 888 21 892 pokevalue
; 864 27 868 26 872 25 876 24
; 848 31 852 30 856 29 860 pokebase
; 832 35 836 34 840 33 844 32
; 816 39 820 38 824 37 828 biwidtha
; 800 43 804 42 808 41 812 40
; 784 47 788 46 792 45 796 biheighta
; 768 51 772 50 776 49 780 48
; 752 55 756 54 760 53 764 andyad
; 736 59 740 58 744 57 748 56
; 720 63 724 62 728 61 732 fixesp
amackpixel: push ebp
mov ebp,esp
sub ebp,1000
push edi
push esi
push ebx
push edx
push ecx
push eax
xor esi,esi
add esi,1064
mov edx,esi
mov ecx,esi
xor edi,edi
sub ecx,1000
mov eax,ecx
add eax,eax
add eax,eax
sub edx,1063
amackpixpu: push edi
add edi,edx
sub ecx,edx
jnz amackpixpu
mov [ebp+732],eax
xor edx,edx
push edx
call getreala
add esp,[ebp+956]
lea esi,[eax+aandy]
mov [ebp+764],esi
mov ebx,[ebp+1008]
sub ebx,8192
lea esi,[ebx+vardib]
sub esi,3000
xor eax,eax
xor edx,edx
mov al,[esi+3018]
mov ah,[esi+3019]
mov dl,[esi+3022]
mov dh,[esi+3023]
mov [ebp+796],edx
mov ecx,[ebp+848]
and ecx,eax
jz widok
mov edi,[ebp+844]
sub edi,ecx
add eax,edi
widok: mov [ebp+828],eax
mov edi,edx
sub edi,[ebp+968]
sub edi,[ebp+1016]
add edi,[ebp+968]
push eax
push edi
call nampy
add esp,[ebp+940]
mov edx,[ebp+1012]
sub edx,[ebp+968]
add edx,eax
shr edx,1
shr edx,1
shr edx,1
mov [ebp+860],edx
mov esi,[ebp+1012]
sub esi,[ebp+968]
and esi,[ebp+944]
add esi,[ebp+764]
sub esi,512
xor edx,edx
mov dl,[esi+512]
mov [ebp+892],edx
mov ecx,[ebp+860]
cmp ecx,[ebp+972]
js endcmack
cmp ecx,655360
jns endcmack
lea edi,[ebx+vardib]
add edi,[ebp+860]
add edi,2062
sub edi,3000
mov eax,[ebp+892]
and [edi+1000],al
endcmack: mov esi,[ebp+732]
add esp,esi
pop eax
pop ecx
pop edx
pop ebx
pop esi
pop edi
pop ebp
ret
; end of amackpixel
; void mackdrawline(lnes* lna261, int dl261xs,
; int dl261ys, int dl261xd, int dl261yd)
; 1016 dl261ys 1020 dl261xd 1024 dl261yd
; 1004 retad 1008 *lna261 1012 dl261xs
; 992 esi 996 edi 1000 ebp
; 976 eax 980 ecx 984 edx 988 ebx
; 960 3 964 2 968 1 972 0
; 944 7 948 6 952 5 956 4
; 928 11 932 10 936 9 940 8
; 912 15 916 14 920 13 924 12
; 896 19 900 18 904 17 908 16
; 888 dxposneg 892 dx972
; 880 espfixer 884 dy972
; 872 876 minpluctr
; 864 868 rx972
; 856 860 ry972
; 848 852 dractr972
; 840 844 ddy972
; 832 836 ddx972
; 824 828
; 816 820
mackdrawline: push ebp
mov ebp,esp
sub ebp,1000
push edi
push esi
push ebx
push edx
push ecx
push eax
xor esi,esi
add esi,1020
mov edx,esi
mov ecx,esi
xor edi,edi
sub edx,1019
sub ecx,1000
mov ebx,ecx
mov eax,ecx
add eax,eax
add eax,eax
add eax,eax
mackdrawupl: push edi
add edi,edx
sub ecx,edx
jnz mackdrawupl
xor edi,edi
mackdrawdpl: push edi
sub ebx,edx
jnz mackdrawdpl
mov [ebp+880],eax
mov ecx,[ebp+1020]
sub ecx,[ebp+1012]
mov [ebp+892],ecx
mov edx,[ebp+1024]
sub edx,[ebp+1016]
mov [ebp+884],edx
mov ecx,[ebp+892]
mov edx,[ebp+884]
mov [ebp+868],ecx
mov [ebp+860],edx
cmp ecx,[ebp+972]
jns mackdxgz
xor edi,edi
sub edi,ecx
mov [ebp+868],edi
mov ebx,[ebp+968]
add [ebp+876],ebx
mackdxgz: cmp edx,[ebp+972]
jns mackdygz
xor edi,edi
sub edi,edx
mov [ebp+860],edi
mov ebx,[ebp+968]
add [ebp+876],ebx
mackdygz: mov esi,[ebp+868]
sub esi,[ebp+860]
jns keepxbotdaw
mov ebx,[ebp+956]
add [ebp+888],ebx
keepxbotdaw: mov esi,[ebp+968]
mov ebx,[ebp+964]
and esi,[ebp+876]
jz keeppozdaw
add [ebp+888],ebx
keeppozdaw: mov esi,[ebp+956]
and esi,[ebp+888]
jz nedzzwfour
mov ecx,[ebp+884]
cmp ecx,[ebp+972]
jns nedposone
mov ebx,[ebp+968]
add [ebp+888],ebx
xor edi,edi
jz nedposone
nedzzwfour: mov ecx,[ebp+892]
cmp ecx,[ebp+972]
jns nedposone
mov ebx,[ebp+968]
add [ebp+888],ebx
nedposone: mov edi,[ebp+1008]
xor esi,esi
; - 000
mov edx,[ebp+972]
mov ecx,[ebp+924]
and ecx,[ebp+888]
cmp edx,ecx
jnz drawinond
drawiz: mov ebx,[ebp+1012]
add ebx,esi
mov ecx,[ebp+968]
and ecx,[ebp+888]
jz maceven2
sub ebx,esi
sub ebx,esi
maceven2: mov edx,[ebp+1016]
mov ecx,[ebp+860]
push esi
push ecx
call nampy
add esp,[ebp+940]
mov ecx,[ebp+868]
push ecx
push eax
call smposdiv
add esp,[ebp+940]
add edx,eax
mov ecx,[ebp+960]
and ecx,[ebp+888]
jz macxnor2
cmp ecx,[ebp+960]
jz macxnor2
sub edx,eax
sub edx,eax
macxnor2: push edx
push ebx
push edi
call amackpixel
add esp,[ebp+924]
add esi,[ebp+968]
cmp esi,[ebp+868]
js drawiz
; - 004
drawinond: mov edx,[ebp+956]
mov ecx,[ebp+924]
and ecx,[ebp+888]
cmp edx,ecx
jnz drawinonh
drawie: mov edx,[ebp+1016]
add edx,esi
mov ecx,[ebp+968]
and ecx,[ebp+888]
jz zaceven6
sub edx,esi
sub edx,esi
zaceven6: mov ebx,[ebp+1012]
mov ecx,[ebp+868]
push esi
push ecx
call nampy
add esp,[ebp+940]
mov ecx,[ebp+860]
push ecx
push eax
call smposdiv
add esp,[ebp+940]
add ebx,eax
mov ecx,[ebp+960]
and ecx,[ebp+888]
jz zacxnor6
cmp ecx,[ebp+960]
jz zacxnor6
sub ebx,eax
sub ebx,eax
zacxnor6: push edx
push ebx
push edi
call amackpixel
add esp,[ebp+924]
add esi,[ebp+968]
cmp esi,[ebp+860]
js drawie
drawinonh: mov edx,[ebp+880]
add esp,edx
pop eax
pop ecx
pop edx
pop ebx
pop esi
pop edi
pop ebp
ret
; - bottom of mackdrawline
; 1 right 2 down 3 lower right 4 upper right
; void bmackdpage(lnes* grpd13,int reqwid,int reqhgt)
; 1008 *grpd13 1012 reqwid 1016 reqhgt
; 992 esi 996 edi 1000 ebp 1004 retad
; 980 ecx 984 edx 988 ebx
; 964 2 968 1 972 0 976 eax
; 948 6 952 5 956 4 960 3
; 932 10 936 9 940 8 944 7
; 916 14 920 13 924 12 928 11
; 900 18 904 17 908 16 912 15
; 884 22 888 taddr 892 20 896 starx
; 868 26 872 25 876 24 880 stary
; 852 ar4 856 tinst 860 28 864 ilctrx
; 836 ar3 840 tleny 844 32 848 olctry
; 820 ar2 824 tlenx 828 36 832 ceilwx
; 804 ar1 808 ty 812 40 816 ceilwy
; 788 46 792 tx 796 44 800 shiftx
; 772 50 776 49 780 48 784 shifty
; 756 54 760 53 764 52 768 wherefont
; 740 58 744 57 748 56 752 denhgty
; 724 62 728 61 732 60 736 denwidx
; 713 66 712 65 716 64 720 fixesp
bmackdpage: push ebp
mov ebp,esp
sub ebp,1000
push edi
push esi
push ebx
push edx
push ecx
push eax
xor esi,esi
add esi,1067
mov edx,esi
mov ecx,esi
xor edi,edi
sub edx,1066
sub ecx,1000
mov eax,ecx
add eax,eax
add eax,eax
bmackdpapu: push edi
add edi,edx
sub ecx,edx
jnz bmackdpapu
mov [ebp+720],eax
mov ebx,[ebp+1008]
sub ebx,02000h
xor edi,edi
push edi
call getreala
add esp,[ebp+956]
lea ecx,[edi+onefontdir]
add ecx,eax
mov [ebp+768],ecx
lea esi,[edi+prebh]
add esi,eax
sub esi,1000
mov ecx,[esi+1012]
mov edi,[esi+1020]
mov edx,[esi+1024]
add edi,[ebp+844]
add edx,[ebp+756]
mov [ebp+736],edi
mov [ebp+752],edx
; denwidx736=biwidth+32+
; denhgty752=biheight+54+
lea edi,[ebx+vardib]
sub edi,1000
xor edx,edx
mov eax,ecx
loadehdr: mov dl,[esi+1002]
mov [edi+1000],dl
add esi,[ebp+968]
add edi,[ebp+968]
sub ecx,[ebp+968]
jnz loadehdr
mov esi,eax
mov edx,[ebp+1012]
add edx,[ebp+944]
shr edx,1
shr edx,1
shr edx,1
; (reqwid + 7) / 8
mov ecx,[ebp+1016]
push edx
push ecx
call nampy
add esp,[ebp+940]
mov ecx,eax
; (((reqwid + 7)/8) * reqhgt)-
xor edx,edx
; change sub ecx,esi
sub ecx,edx
sub edx,[ebp+968]
mov esi,[ebp+968]
loadchdr: mov [edi+1000],dl
add edi,esi
sub ecx,esi
jnz loadchdr
mov eax,[ebp+1012]
mov edx,[ebp+1016]
lea edi,[ebx+vardib]
sub edi,3000
mov [edi+3018],al
mov [edi+3019],ah
mov [edi+3022],dl
mov [edi+3023],dh
xor eax,eax
mov [edi+3020],al
mov [edi+3021],al
mov [edi+3024],al
mov [edi+3025],al
mov edx,[ebp+752]
mov ecx,[ebp+1016]
push edx
push ecx
call smposdiv
add esp,[ebp+940]
mov [ebp+784],eax
; shifty = reqhgt / denhgty
bdpolsy: mov esi,[ebp+784]
sub esi,[ebp+968]
mov [ebp+784],esi
mov edx,[ebp+736]
mov ecx,[ebp+1012]
push edx
push ecx
call smposdiv
add esp,[ebp+940]
mov [ebp+800],eax
; shiftx = reqwid / denwidx
bdpilsx: mov esi,[ebp+800]
sub esi,[ebp+968]
mov [ebp+800],esi
mov edx,[ebp+936]
add edx,[ebp+968]
mov ecx,[ebp+1016]
push edx
push ecx
call nampy
add esp,[ebp+940]
; (9+1)*reqhgt
mov edx,[ebp+752]
push edx
push eax
call smposdiv
add esp,[ebp+940]
mov [ebp+816],eax
; cellwy=((9+1)*reqhgt)/denhgty
mov edx,[ebp+944]
mov ecx,[ebp+1012]
push edx
push ecx
call nampy
add esp,[ebp+940]
; 7 * reqwid
mov edx,[ebp+736]
push edx
push eax
call smposdiv
add esp,[ebp+940]
mov [ebp+832],eax
; cellwx = (7 * reqwid)/denwidx
mov edi,[ebp+972]
mov [ebp+848],edi
bdpolop: mov esi,[ebp+972]
mov [ebp+864],esi
mov edx,[ebp+848]
add edx,[ebp+968]
mov [ebp+848],edx
bdpmlop: mov ecx,[ebp+864]
add ecx,[ebp+968]
mov [ebp+864],ecx
mov edx,[ebp+832]
push ecx
push edx
call nampy
add esp,[ebp+940]
; ilctrx * cellwx
add eax,[ebp+800]
mov [ebp+896],eax
; starx = (ilctrx * cellwx) + shiftx
mov edx,[ebp+848]
sub edx,[ebp+972]
mov ecx,[ebp+816]
push edx
push ecx
call nampy
add esp,[ebp+940]
; (olctry - 0) * cellwy
add eax,[ebp+784]
add eax,[ebp+952]
mov [ebp+880],eax
; stary = ((olctry - 0) * cellwy) + shifty + 5
mov edx,[ebp+848]
sub edx,[ebp+968]
mov ecx,[ebx+a80w]
push edx
push ecx
call nampy
add esp,[ebp+940]
; (olctry - 1) * a80w
add eax,[ebp+864]
sub eax,[ebp+968]
; ((olctry - 1) * a80w) + ilctrx - 1
mov esi,eax
xor edx,edx
mov dl,[ebx+esi*1+evwr]
add edx,edx
mov esi,[ebp+768]
add esi,edx
xor edx,edx
sub esi,512
mov dl,[esi+512]
mov dh,[esi+513]
add edx,[ebp+768]
sub edx,2000
mov [ebp+888],edx
bdpilop: mov esi,[ebp+888]
xor edx,edx
mov dl,[esi+2000]
sub edx,[ebp+780]
cmp edx,[ebp+968]
jns bdpkeep
jmp bdpibot
bdpkeep: mov ecx,[ebp+1012]
push edx
push ecx
call nampy
add esp,[ebp+940]
; t0 * reqwid
mov ecx,[ebp+736]
push ecx
push eax
call smposdiv
add esp,[ebp+940]
; (t0 * reqwid)/denwidx
mov [ebp+792],eax
; tx
xor eax,eax
mov al,[esi+2001]
sub eax,[ebp+780]
mov edx,[ebp+1016]
push eax
push edx
call nampy
add esp,[ebp+940]
; t1 * reqhgt
mov ecx,[ebp+752]
push ecx
push eax
call smposdiv
add esp,[ebp+940]
; (t1 * reqhgt)/denhgty
mov [ebp+808],eax
; ty 808
xor edx,edx
mov dl,[esi+2002]
mov edi,edx
sub edi,[ebp+780]
mov ecx,[ebp+1012]
push edi
push ecx
call nampy
add esp,[ebp+940]
; t2 *reqwid
mov ecx,[ebp+736]
push ecx
push eax
call smposdiv
add esp,[ebp+940]
mov [ebp+824],eax
; tlenx824 = (t2*reqwid)/denwidx
mov ecx,[ebp+1016]
push edi
push ecx
call nampy
add esp,[ebp+940]
; t2 * reqhgt
mov ecx,[ebp+752]
push ecx
push eax
call smposdiv
add esp,[ebp+940]
mov [ebp+840],eax
; tleny840 = (t2 * reqhgt)/denhgty
xor eax,eax
mov al,[esi+2003]
sub eax,[ebp+780]
mov [ebp+856],eax
; tinst856=t3-48
mov edx,[ebp+956]
add [ebp+888],edx
mov ecx,[ebp+896]
mov edx,[ebp+880]
add ecx,[ebp+792]
add edx,[ebp+808]
mov [ebp+804],ecx
mov [ebp+820],edx
mov [ebp+836],ecx
mov [ebp+852],edx
mov ecx,[ebp+968]
cmp ecx,[ebp+856]
jnz bdpnotone
mov esi,[ebp+804]
add esi,[ebp+824]
mov [ebp+836],esi
bdpnotone: mov ecx,[ebp+964]
cmp ecx,[ebp+856]
jnz bdpnottwo
mov edi,[ebp+820]
add edi,[ebp+840]
mov [ebp+852],edi
bdpnottwo: mov ecx,[ebp+960]
cmp ecx,[ebp+856]
jnz bdpnotree
mov esi,[ebp+804]
add esi,[ebp+824]
mov [ebp+836],esi
mov edi,[ebp+820]
add edi,[ebp+840]
mov [ebp+852],edi
bdpnotree: mov ecx,[ebp+956]
cmp ecx,[ebp+856]
jnz bdpnotfor
mov esi,[ebp+804]
add esi,[ebp+824]
mov [ebp+836],esi
mov edi,[ebp+820]
sub edi,[ebp+840]
mov [ebp+852],edi
bdpnotfor: mov edi,[ebp+852]
mov esi,[ebp+836]
mov edx,[ebp+820]
mov ecx,[ebp+804]
mov eax,[ebp+1008]
push edi
push esi
push edx
push ecx
push eax
call mackdrawline
add esp,[ebp+892]
jmp bdpilop
bdpnc: jmp bdpne
bdpibot: mov esi,[ebp+864]
mov edi,[ebp+848]
cmp esi,[ebx+onecurwozx]
jnz bdpnc
cmp edi,[ebx+onecurwozy]
jnz bdpnc
mov ecx,[ebp+968]
add ecx,[ebp+896]
mov [ebp+804],ecx
mov edx,[ebp+936]
mov eax,[ebp+1016]
push edx
push eax
call nampy
add esp,[ebp+940]
; 9 * reqhgt
mov edx,[ebp+752]
push edx
push eax
call smposdiv
add esp,[ebp+940]
; (9 * reqhgt) / denhgty
add eax,[ebp+880]
mov [ebp+820],eax
mov [ebp+852],eax
mov edx,[ebp+952]
mov eax,[ebp+1012]
xor edi,edi
cmp edi,[ebx+insertype]
jnz bdpi027
shr edx,1
bdpi027: push edx
push eax
call nampy
add esp,[ebp+940]
; 5 * reqwid
mov edx,[ebp+736]
push edx
push eax
call smposdiv
add esp,[ebp+940]
; (5 * reqwid) / denwidx
add eax,ecx
; ar3 = ((5 * reqwid) / denwidx) + ar1
mov [ebp+836],eax
mov edi,[ebp+852]
mov esi,[ebp+836]
mov edx,[ebp+820]
mov ecx,[ebp+804]
mov eax,[ebp+1008]
push edi
push esi
push edx
push ecx
push eax
call mackdrawline
add esp,[ebp+892]
bdpne: mov ecx,[ebp+864]
mov esi,[ebp+972]
add esi,[ebx+a80w]
cmp ecx,esi
jns bzaftmlop
jmp bdpmlop
bzaftmlop: mov edx,[ebp+848]
mov edi,[ebp+968]
add edi,[ebx+ypheight]
cmp edx,edi
jns bzaftolop
jmp bdpolop
bzaftolop: mov esi,[ebp+800]
cmp esi,[ebp+968]
js bzaftis
jmp bdpilsx
bzaftis: mov edi,[ebp+784]
cmp edi,[ebp+968]
js bzaftoo
jmp bdpolsy
bzaftoo: mov edx,[ebp+720]
add esp,edx
pop eax
pop ecx
pop edx
pop ebx
pop esi
pop edi
pop ebp
ret
; bottom of bmackdpage
; void pagetodib(struct lnes *pgi)
; 1000 ebpsave 1004 retad 1008 *pgi
; 988 ebx 992 esi 996 edi
; 976 eax 980 ecx 984 edx
; 964 -1 968 -2 972 -3
; 952 2 956 1 960 0
; 940 nineprod 944 4 948 3
; 928 8 932 7 936 6
; 916 ilopct 920 10 924 9
; 904 jlopct 908 olct 912 fromsub
; 892 mlct 896 hgt 900 &fontstart
; 880 20 884 wid 888 bytewid
; 868 addx 872 codeaddr 876 jdesbase
; 856 taddend 860 25 864 24
; 844 size 848 code 852 cst48
; 832 32 836 x 840 y
pagetodib: push ebp
mov ebp,esp
sub ebp,1000
push edi
push esi
push ebx
push edx
push ecx
push eax
xor edi,edi
add edi,1000
mov edx,edi
mov ecx,edi
sub ecx,964
sub edx,999
sub edi,1003
pagedibpu: push edi
add edi,edx
sub ecx,edx
jnz pagedibpu
xor esi,esi
add esi,1048
sub esi,1000
mov [ebp+852],esi
xor edx,edx
push edx
call getreala
add esp,[ebp+944]
mov [ebp+872],eax
mov ebx,[ebp+872]
lea esi,[ebx+prebh]
sub esi,1000
mov ecx,[esi+1012]
mov edi,[esi+1020]
mov edx,[esi+1024]
mov [ebp+884],edi
mov [ebp+896],edx
mov ebx,[ebp+1008]
sub ebx,8192
lea edi,[ebx+vardib]
sub edi,1000
xor edx,edx
loaddhdr: mov dl,[esi+1002]
mov [edi+1000],dl
add esi,[ebp+956]
add edi,[ebp+956]
sub ecx,[ebp+956]
jnz loaddhdr
mov edx,[ebp+884]
shr edx,1
shr edx,1
shr edx,1
mov [ebp+888],edx
xor edx,edx
mov [ebp+912],edx
mov [ebp+908],edx
olopdib: mov ecx,[ebp+920]
mov eax,[ebp+908]
push ecx
push eax
call nampy
add esp,[ebp+928]
mov edx,[ebp+896]
sub edx,[ebp+920]
sub edx,eax
xor ecx,ecx
add ecx,[ebp+888]
push edx
push ecx
call nampy
add esp,[ebp+928]
mov [ebp+940],eax
xor ecx,ecx
mov [ebp+892],ecx
mlopdib: mov ecx,[ebp+932]
mov eax,[ebp+892]
push ecx
push eax
call nampy
add esp,[ebp+928]
add eax,[ebp+940]
add eax,[ebp+956]
mov [ebp+876],eax
xor ecx,ecx
mov [ebp+904],ecx
jlopdib: mov edx,[ebp+904]
add edx,edx
mov esi,[ebp+872]
lea ecx,[esi+chbackground]
add ecx,edx
sub ecx,2000
mov esi,ecx
xor eax,eax
xor ecx,ecx
mov al,[esi+2000]
mov cl,[esi+2001]
lea edi,[ebx+vardib]
add edi,[ebp+904]
add edi,1062
sub edi,2001
add edi,[ebp+876]
mov esi,[ebp+960]
rounddibc: mov edx,[ebp+944]
cmp edx,esi
jnz nondibch
mov [ebp+832],edi
nondibch: or [edi+1000],al
or [edi+1001],cl
xor edx,edx
sub edx,[ebp+888]
add edi,edx
add esi,[ebp+956]
cmp esi,[ebp+920]
js rounddibc
xor ecx,ecx
mov [ebp+916],ecx
mov esi,[ebp+912]
xor eax,eax
mov al,[ebx+esi*1+evwr]
add esi,[ebp+956]
mov [ebp+912],esi
mov esi,[ebp+872]
lea ecx,[esi+onefontdir]
mov esi,ecx
sub esi,1000
add esi,eax
add esi,eax
xor eax,eax
mov al,[esi+1000]
mov ah,[esi+1001]
add ecx,eax
mov [ebp+900],ecx
ilopdib: mov esi,[ebp+900]
xor ecx,ecx
xor edx,edx
xor eax,eax
sub esi,1000
add esi,[ebp+916]
mov al,[esi+1000]
mov cl,[esi+1001]
mov dl,[esi+1002]
sub eax,[ebp+852]
sub ecx,[ebp+852]
sub edx,[ebp+852]
mov [ebp+836],eax
mov [ebp+840],ecx
mov [ebp+844],edx
xor edx,edx
mov dl,[esi+1003]
sub edx,[ebp+852]
mov [ebp+848],edx
cmp eax,[ebp+956]
jns keeilop
xor esi,esi
jmp botilopd
keeilop: mov edx,[ebp+916]
add edx,[ebp+944]
mov [ebp+916],edx
mov edx,[ebp+956]
cmp edx,[ebp+848]
jnz notdibone
xor ecx,ecx
mov [ebp+856],ecx
mov ecx,[ebp+928]
add ecx,ecx
mov [ebp+868],ecx
notdibone: mov edx,[ebp+952]
cmp edx,[ebp+848]
jnz notdibtwo
xor ecx,ecx
sub ecx,[ebp+888]
mov [ebp+856],ecx
xor ecx,ecx
mov [ebp+868],ecx
notdibtwo: mov edx,[ebp+948]
cmp edx,[ebp+848]
jnz notdibthree
xor ecx,ecx
sub ecx,[ebp+888]
mov [ebp+856],ecx
mov ecx,[ebp+928]
add ecx,ecx
mov [ebp+868],ecx
notdibthree: mov edx,[ebp+944]
cmp edx,[ebp+848]
jnz notdibfour
xor ecx,ecx
add ecx,[ebp+888]
mov [ebp+856],ecx
mov ecx,[ebp+928]
add ecx,ecx
mov [ebp+868],ecx
notdibfour: mov edi,[ebp+872]
lea ecx,[edi+dotprevcur]
add ecx,[ebp+904]
add ecx,[ebp+904]
mov esi,[ebp+836]
add esi,esi
add esi,esi
add esi,esi
add esi,esi
sub ecx,1000
add esi,ecx
mov eax,[ebp+840]
xor ecx,ecx
sub ecx,[ebp+888]
push eax
push ecx
call nampy
add esp,[ebp+928]
mov edi,[ebp+960]
sub edi,2001
add edi,1062
add edi,eax
add edi,[ebp+876]
add edi,[ebp+904]
lea ecx,[ebx+vardib]
add edi,ecx
mov ecx,[ebp+844]
dibdraa: xor eax,eax
xor edx,edx
mov al,[esi+1000]
mov dl,[esi+1001]
and [edi+1000],al
and [edi+1001],dl
mov eax,[ebp+832]
add esi,[ebp+868]
add edi,[ebp+856]
sub ecx,[ebp+956]
cmp ecx,[ebp+956]
jns dibdraa
jmp ilopdib
; insert cursor code next
botilopd: mov edx,[ebp+892]
add edx,edx
add edx,edx
add edx,edx
add edx,[ebp+904]
mov ecx,[ebp+908]
add ecx,[ebp+964]
add ecx,[ebp+960]
mov esi,[ebx+onecurwozx]
; get cursor information to compare
mov edi,[ebx+onecurwozy]
add esi,[ebp+964]
add edi,[ebp+964]
; cmp ecx,[ebp+960]
; 956 1 960 0 964 -1
cmp ecx,edi
jnz bbotilopd
cmp edx,esi
jnz bbotilopd
; edx::x
; nineprod=((hgt-9)-(olct*9))*bytewid
; jdesbase=(nineprod+1)+(mlct*7)
; edi=&[ebx+vardib]+jlopct+jdesbase-939
lea edi,[ebx+vardib]
mov eax,[ebp+904]
add edi,eax
add edi,[ebp+888]
sub edi,939
add edi,[ebp+876]
add eax,eax
add eax,[ebp+872]
lea esi,[eax+dotprevcur]
sub esi,1000
mov al,[esi+1000]
mov dl,[esi+1001]
and al,[esi+1032]
and dl,[esi+1033]
xor ecx,ecx
cmp ecx,[ebx+insertype]
jz cbotilvpc
and al,[esi+1064]
and dl,[esi+1065]
cbotilvpc: and [edi+1000],al
and [edi+1001],dl
bbotilopd: mov edx,[ebp+904]
add edx,[ebp+956]
mov [ebp+904],edx
cmp edx,[ebp+928]
jns botjlopd
jmp jlopdib
botjlopd: mov ecx,[ebp+892]
add ecx,[ebp+956]
mov [ebp+892],ecx
cmp ecx,[ebp+920]
jns botmlopd
jmp mlopdib
botmlopd: mov edx,[ebp+908]
add edx,[ebp+956]
mov [ebp+908],edx
cmp edx,[ebp+860]
jns botolopd
jmp olopdib
botolopd: xor ecx,ecx
add ecx,1000
sub ecx,964
add ecx,ecx
add ecx,ecx
add esp,ecx
pop eax
pop ecx
pop edx
pop ebx
pop esi
pop edi
pop ebp
ret
; end of pagetodib
; int fixrect(*rects)
; 1000 ebpsave 1004 retad 1008 *rects
; 988 ebx 992 esi 996 edi
; 976 eax 980 ecx 984 edx
; 964 2 968 1 972 0
; 952 wwcmp 956 4 960 3
; 940 8 944 7 948 6
; 928 whcmp 932 10 936 9
fixrect: push ebp
mov ebp,esp
sub ebp,1000
push edi
push esi
push ebx
push edx
push ecx
xor edi,edi
add edi,1000
mov edx,edi
mov ecx,edi
sub edi,1001
sub edx,999
sub ecx,986
fixrecpu: push edi
add edi,edx
sub ecx,edx
jnz fixrecpu
xor esi,esi
add esi,2000
mov ecx,esi
sub ecx,1950
mov [ebp+928],ecx
sub esi,1800
mov [ebp+952],esi
mov ebx,[ebp+1008]
sub ebx,1000
mov edx,[ebx+1012]
sub edx,[ebx+1004]
mov [ebx+1012],edx
mov edi,[ebx+1008]
sub edi,[ebx+1000]
mov [ebx+1008],edi
xor esi,esi
mov [ebx+1004],esi
mov [ebx+1000],esi
cmp edx,[ebp+928]
js tinyrect
cmp edi,[ebp+952]
js tinyrect
mov ecx,[ebp+968]
mov [ebp+976],ecx
tinyrect: xor ecx,ecx
add ecx,1052
sub ecx,1000
add esp,ecx
pop eax
pop ecx
pop edx
pop ebx
pop esi
pop edi
pop ebp
ret
; rect.left
; rect.top
; rect.right
; rect.bottom
; bottom of fixrect
; void texcbpage(struct lnes *tep,int texhwnd)
; 3000 ebpsave 3004 retad 3008 *tep 3012 texhwnd
; 2984 edx 2988 ebx 2992 esi 2996 edi
; 2968 1 2972 0 2976 eax 2980 ecx
; 2952 5 2956 4 2960 3 2964 2
; 2936 9 2940 8 2944 7 2948 6
; 2920 13 2924 12 2928 11 2932 10
; 2904 17 2908 16 2912 15 2916 14
; 2888 21 2892 20 2896 19 2900 18
; 2872 25 2876 24 2880 23 2884 22
; 2856 bgphdc 2860 codeadr 2864 texlbase 2868 texlctr
; 2756 linebuffer
; 2572 400 2576 texps180
texcbpage: push ebp
mov ebp,esp
sub ebp,3000
push edi
push esi
push ebx
push edx
push ecx
push eax
xor edi,edi
xor edx,edx
add edx,1001
mov ecx,edx
sub edx,1000
sub ecx,900
texcbpugg: push edi
add edi,edx
sub ecx,edx
jnz texcbpugg
xor ecx,ecx
push ecx
call getreala
add esp,[ebp+2956]
mov [ebp+2860],eax
mov edi,[ebp+2860]
lea esi,[edi+texaftbgp]
mov ecx,[ebp+3012]
lea edx,[ebp+2576]
add edi,0800000h
mov eax,[edi+lpbeginpaint]
push edx
push ecx
push esi
push eax
ret
texaftbgp: mov ebp,esp
sub ebp,2572
mov [ebp+2856],eax
mov ebx,[ebp+3008]
sub ebx,8192
mov edi,[ebp+2860]
lea esi,[edi+texaftgwr]
mov ecx,[ebp+3012]
lea edx,[ebx+tevl]
add edi,0800000h
mov eax,[edi+lpgwrect]
push edx
push ecx
push esi
push eax
ret
texaftgwr: mov ebp,esp
sub ebp,2572
mov ebx,[ebp+3008]
sub ebx,8192
lea esi,[ebx+tevl]
push esi
call fixrect
add esp,[ebp+2956]
; cut here
sub esi,2000
mov ecx,[esi+2008]
mov edx,[esi+2012]
; (576+32) * (270+54) 3910
xor eax,eax
jnz tixcbpol
; 576 * 270
cmp ecx,624
js tixcbpol
cmp edx,378
js tixcbpol
mov eax,ecx
shr eax,1
shr eax,1
shr eax,1
push eax
push edx
call nampy
add esp,[ebp+2940]
xor edi,edi
add edi,1000
sub edi,1062
add edi,655422
cmp edi,eax
js tixcbpol
mov eax,[ebp+3008]
push edx
push ecx
push eax
call bmackdpage
add esp,[ebp+2924]
xor edi,edi
jz tixdonedib
tixcbpol: mov ecx,[ebp+2952]
mov edx,[ebp+3008]
push edx
call pagetodib
add esp,[ebp+2956]
tixdonedib: xor eax,eax
lea esi,[ebx+vardib]
sub esi,2000
lea ecx,[esi+2014]
lea edx,[esi+2062]
push eax
push ecx
push edx
lea esi,[ebx+vardib]
sub esi,3002
mov edx,[esi+3020]
mov ecx,[esi+3024]
mov ebx,[ebp+2860]
push ecx
push eax
push eax
push eax
push ecx
push edx
push eax
push eax
mov edi,[ebp+2856]
push edi
lea ecx,[ebx+aftdrawh]
add ebx,00800000h
mov edx,[ebx+lptextout]
push ecx
push edx
ret
aftdrawh: mov ebp,esp
sub ebp,2572
texcc: mov edx,[ebp+3012]
lea ebx,[ebp+2576]
mov edi,[ebp+2860]
lea esi,[edi+afttexep]
add edi,0800000h
mov eax,[edi+lpendpaint]
push ebx
push edx
push esi
push eax
ret
afttexep: xor ecx,ecx
add ecx,404
add esp,ecx
pop eax
pop ecx
pop edx
pop ebx
pop esi
pop edi
pop ebp
ret
; end of texcbpage 3275
; clearline(struct lnes* zzc,int cwch)
; cwch 1012 *zzc 1008 retad 1004
; ebp 1000 edi 996 esi 992
; ebx 988 edx 984 ecx 980
; eax 976 972 0 968 1
; 964 2 960 3 956 4
; 952 5 948 944 7 940 8
clearline: push ebp
mov ebp,esp
sub ebp,1000
push edi
push esi
push ebx
push edx
push ecx
push eax
xor esi,esi
add esi,1000
mov ecx,esi
mov edx,esi
sub edx,999
sub ecx,991
xor edi,edi
cleariiu: push edi
add edi,edx
sub ecx,edx
jnz cleariiu
mov ebx,[ebp+1008]
sub ebx,8192
mov eax,[ebp+1012]
sub eax,[ebp+968]
mov ecx,[ebx+a80w]
push eax
push ecx
call nampy
add esp,[ebp+940]
mov edi,eax
mov edx,esi
sub edx,968
clearllp: mov [ebx+edi*1+crz0160],dl
add edi,[ebp+968]
sub ecx,[ebp+968]
jnz clearllp
mov ecx,esi
sub ecx,964
add esp,ecx
pop eax
pop ecx
pop edx
pop ebx
pop esi
pop edi
pop ebp
ret
; bottom of clearline
; rw8056(lnes* zyc,int zrw56,int bwlocal, int wcy)
; wcy 1020
; retad 1004 *zyc 1008 zrw56 1012 bwlocal 1016
; ebx 988 esi 992 edi 996 ebp 1000
; 972 -4 eax 976 ecx 980 edx 984
; 956 0 960 -1 964 -2 968 -3
; 940 4 944 3 948 2 952 1
; 924 8 928 7 932 6 936 5
; 908 12 912 11 916 10 920 9
; 892 16 896 baselocal 900 basey 904
rw8056: push ebp
mov ebp,esp
sub ebp,1000
push edi
push esi
push ebx
push edx
push ecx
push eax
xor esi,esi
add esi,1000
mov ecx,esi
sub ecx,979
mov edx,esi
sub edx,999
mov edi,esi
sub edi,1004
rwu805: push edi
add edi,edx
sub ecx,edx
jnz rwu805
mov ebx,[ebp+1008]
sub ebx,02000h
mov eax,[ebx+a80w]
mov ecx,[ebp+1016]
sub ecx,[ebp+952]
push eax
push ecx
call nampy
add esp,[ebp+924]
mov [ebp+896],eax
mov eax,[ebx+a80w]
mov ecx,[ebp+1020]
sub ecx,[ebp+952]
cmp ecx,[ebp+956]
; change js rw85fail
js rwfailNE
push eax
push ecx
call nampy
add esp,[ebp+924]
mov [ebp+900],eax
add eax,[ebx+a80w]
add eax,[ebx+a80w]
lea ecx,[ebx+0800000h]
lea edx,[ebx+sandoval]
sub ecx,edx
sub ecx,8192
cmp eax,ecx
js rw85ok
rw85fail: mov ecx,[ebp+952]
mov [ebx+nzerror],ecx
rwfailNE: mov ecx,[ebp+1012]
cmp ecx,[ebp+936]
jnz rw86fail
mov eax,[ebp+1016]
mov ecx,[ebp+1008]
push eax
push ecx
call clearline
add esp,[ebp+924]
rw86fail: jmp rw805zot
rw85ok: mov ecx,[ebp+1012]
cmp ecx,[ebp+936]
jz ron85rex
jmp non85red
ron85rex: mov edx,[ebp+1020]
add edx,[ebp+960]
cmp edx,[ebx+afilelen]
jns rwfailNE
mov eax,[ebp+952]
mov ecx,[ebx+a80w]
mov esi,[ebp+900]
mov edi,[ebp+896]
xor edx,edx
read8055: mov dl,[ebx+esi*1+sandoval]
mov [ebx+edi*1+crz0160],dl
add esi,eax
add edi,eax
sub ecx,eax
jnz read8055
xor esi,esi
cmp esi,[ebx+uppercase]
jz a85red
mov edx,[ebp+1016]
sub edx,[ebp+952]
mov esi,[ebx+a80w]
push edx
push esi
call nampy
add esp,[ebp+924]
lea edi,[ebx+crz0160]
add edi,eax
sub edi,16384
upca8056u: xor eax,eax
mov al,[edi+16384]
xor edx,edx
add edx,1096
sub edx,1000
cmp edx,eax
jns upcb8056u
add edx,[ebp+952]
cmp edx,[ebx+uppercase]
jnz upcb8056u
sub eax,[ebp+892]
sub eax,[ebp+892]
mov [edi+16384],al
upcb8056u: mov edx,[ebp+952]
add edi,edx
sub esi,edx
jnz upca8056u
a85red: jmp rw86fail
non85red: cmp ecx,[ebp+932]
jz ron86rex
jmp rw86fail
ron86rex: lea ecx,[ebx+sandoval]
mov edx,[ebp+1020]
add edx,[ebp+960]
cmp edx,[ebp+956]
jns ron87minw
jmp rw85fail
ron87minw: xor esi,esi
cmp esi,[ebx+uppercase]
jz rw804zot
mov edx,[ebp+1016]
sub edx,[ebp+952]
mov esi,[ebx+a80w]
push edx
push esi
call nampy
add esp,[ebp+924]
lea edi,[ebx+crz0160]
add edi,eax
sub edi,16384
upca8056l: xor eax,eax
mov al,[edi+16384]
xor edx,edx
add edx,1096
sub edx,1000
cmp edx,eax
jns upcb8056l
add edx,[ebp+952]
cmp edx,[ebx+uppercase]
jnz upcb8056l
sub eax,[ebp+892]
sub eax,[ebp+892]
mov [edi+16384],al
upcb8056l: mov edx,[ebp+952]
add edi,edx
sub esi,edx
jnz upca8056l
rw804zot: mov eax,[ebp+952]
mov ecx,[ebx+a80w]
mov edi,[ebp+900]
mov esi,[ebp+896]
xor edx,edx
write866: mov dl,[ebx+esi*1+crz0160]
mov [ebx+edi*1+sandoval],dl
add esi,eax
add edi,eax
sub ecx,eax
jnz write866
rw805zot: xor edx,edx
add edx,2084
sub edx,2000
add esp,edx
pop eax
pop ecx
pop edx
pop ebx
pop esi
pop edi
pop ebp
ret
; bottom of rw8056
; lalocal12(struct lnes* zlal)
; retad 1004 *zlal 1008
; ebx 988 esi 992 edi 996 ebp 1000
; 972 0 976 eax 980 ecx 984 edx
; 956 4 960 3 964 2 968 1
; 940 8 944 ycmp 948 6 952 5
lalocal12: push ebp
mov ebp,esp
sub ebp,1000
push edi
push esi
push ebx
push edx
push ecx
push eax
xor esi,esi
add esi,1000
mov ecx,esi
sub ecx,991
xor edi,edi
mov edx,esi
sub edx,999
xor edi,edi
lalocpu12: push edi
add edi,edx
sub ecx,edx
jnz lalocpu12
mov ebx,[ebp+1008]
sub ebx,8192
mov ecx,[ebx+y]
add ecx,[ebp+968]
mov [ebp+944],ecx
mov edx,[ebx+y]
cmp edx,[ebp+972]
js lalcone
mov ecx,[ebx+afilelen]
cmp ecx,[ebp+944]
jns lalctwo
lalcone: mov edx,[ebp+964]
mov ecx,[ebp+1008]
push edx
push ecx
call clearline
add esp,[ebp+940]
lalctwo: mov ecx,[ebx+y]
cmp ecx,[ebp+972]
js lalcthree
mov ecx,[ebx+afilelen]
cmp ecx,[ebp+944]
js lalcthree
mov edi,[ebp+944]
mov edx,[ebp+964]
mov ecx,[ebp+952]
mov eax,[ebp+1008]
push edi
push edx
push ecx
push eax
call rw8056
add esp,[ebp+940]
add esp,[ebp+940]
lalcthree: mov edx,[ebx+y]
cmp edx,[ebp+968]
js lalcfour
mov ecx,[ebx+afilelen]
cmp ecx,[ebx+y]
jns lalcfive
lalcfour: mov edx,[ebp+968]
mov ecx,[ebp+1008]
push edx
push ecx
call clearline
add esp,[ebp+940]
lalcfive: mov ecx,[ebx+y]
cmp ecx,[ebp+968]
js lalcsix
mov edx,[ebx+afilelen]
cmp edx,[ebx+y]
js lalcsix
mov edi,[ebx+y]
mov edx,[ebp+968]
mov ecx,[ebp+952]
mov eax,[ebp+1008]
push edi
push edx
push ecx
push eax
call rw8056
add esp,[ebp+940]
add esp,[ebp+940]
lalcsix: mov edx,esi
sub edx,964
add esp,edx
pop eax
pop ecx
pop edx
pop ebx
pop esi
pop edi
pop ebp
ret
; bottom of lalocal12
; laput12(lnes* lput)
; 1000 ebp 1004 retad 1008 *lput
; 988 ebx 992 esi 996 edi
; 976 eax 980 ecx 984 edx
; 964 2 968 1 972 0
; 952 5 956 4 960 putae
; 940 8 944 948 6
; 928 932 936
; 916 920 924 12
laput12: push ebp
mov ebp,esp
sub ebp,1000
push edi
push esi
push ebx
push edx
push ecx
push eax
xor esi,esi
add esi,1000
mov ecx,esi
mov edx,esi
xor edi,edi
sub ecx,985
sub edx,999
laww12pu: push edi
add edi,edx
sub ecx,edx
jnz laww12pu
mov ebx,[ebp+1008]
sub ebx,8192
mov edi,[ebx+y]
add edi,[ebp+968]
mov [ebp+960],edi
cmp edi,[ebp+964]
jns laput13
jmp nonput48
laput13: mov ecx,[ebx+chnext]
cmp ecx,[ebp+972]
jz nonput36
laput15: mov edi,[ebp+960]
mov edx,[ebp+964]
mov ecx,[ebp+948]
mov eax,[ebp+1008]
push edi
push edx
push ecx
push eax
call rw8056
add esp,[ebp+940]
add esp,[ebp+940]
mov ecx,[ebx+afilelen]
mov edx,[ebp+960]
cmp ecx,edx
jns nonput36
mov [ebx+afilelen],edx
nonput36: mov edi,[ebx+y]
mov edx,[ebp+968]
mov ecx,[ebp+948]
mov eax,[ebp+1008]
push edi
push edx
push ecx
push eax
call rw8056
add esp,[ebp+940]
add esp,[ebp+940]
mov edi,[ebx+y]
mov edx,[ebx+afilelen]
cmp edx,edi
jns nonput48
mov [ebx+afilelen],edi
nonput48: mov edi,[ebp+972]
mov [ebx+chnext],edi
mov [ebx+chzerv],edi
mov ecx,esi
sub ecx,940
add esp,ecx
pop eax
pop ecx
pop edx
pop ebx
pop esi
pop edi
pop ebp
ret
; bottom of laput12
; int dlenval(lnes *den,int leub)
; 1004 retad 1008 *den 1012 leub
; 992 esi 996 edi 1000 ebp
; 980 ecx 984 edx 988 ebx
; 968 1 972 0 976 eax
; 956 4 960 3 964 2
; 944 7 948 6 952 5
; 932 cst32 936 940 8
; 920 13 924 12 928 spfixlast
dlenval: push ebp
mov ebp,esp
sub ebp,1000
push edi
push esi
push ebx
push edx
push ecx
xor edi,edi
add edi,1000
mov ecx,edi
mov edx,edi
xor ebx,ebx
push ebx
sub ecx,986
sub edx,999
mov eax,ecx
add eax,eax
add eax,eax
dlenpu: push ebx
add ebx,edx
sub ecx,edx
jnz dlenpu
mov [ebp+928],eax
mov ecx,edi
sub ecx,968
mov [ebp+932],ecx
mov edi,[ebp+1008]
sub edi,8192
lea ebx,[edi+crz0160]
sub ebx,2048
mov edx,[ebp+1012]
sub edx,[ebp+968]
jns dlen18
dlen16: xor ecx,ecx
jz dlenbot
dlen18: mov ecx,[edi+a80w]
push edx
push ecx
call nampy
add esp,[ebp+940]
add ebx,eax
mov [ebp+976],ecx
dlenloop: mov esi,[ebp+976]
sub esi,[ebp+968]
js dlen16
xor edx,edx
xor ecx,ecx
mov dl,[ebx+esi*1+2048]
mov ecx,[ebp+932]
cmp ecx,edx
js dlen16
mov [ebp+976],esi
xor esi,esi
jz dlenloop
dlenbot: add esp,[ebp+928]
pop eax
pop ecx
pop edx
pop ebx
pop esi
pop edi
pop ebp
ret
; bottom of dlenval
; aptinsert(lnes* sera,int inserdata)
; 1004 retad 1008 *sera 1012 inserdata
; 992 esi 996 edi 1000 ebp
; 980 ecx 984 edx 988 ebx
; 968 1 972 0 976 eax
; 956 4 960 3 964 2
; 944 7 948 6 952 5
; 932 10 936 9 940 8
; 920 yl 924 yh 928 flnext
; 908 16 912 15 916 14
aptinsert: push ebp
mov ebp,esp
sub ebp,1000
push edi
push esi
push ebx
push edx
push ecx
push eax
xor edi,edi
add edi,1000
mov ecx,edi
mov edx,edi
xor esi,esi
sub ecx,983
sub edx,999
aptinsrpu: push esi
add esi,edx
sub ecx,edx
jnz aptinsrpu
mov ebx,[ebp+1008]
sub ebx,8192
mov ecx,[ebx+y]
cmp ecx,[ebp+968]
jns aptveltop
jmp aptinsfail
aptveltop: mov edx,[ebp+1012]
cmp edx,[ebp+972]
js aptdelvop
jmp aptinstop
aptdelvop: mov ecx,[ebx+y]
mov edx,[ebx+afilelen]
mov [ebp+928],edx
cmp edx,ecx
jns dvl3646
jmp aptdvldone
dvl3646: sub edx,[ebp+968]
mov [ebp+928],edx
mov [ebp+920],ecx
aptdvlcmp: mov ecx,[ebp+920]
cmp ecx,[ebx+afilelen]
; js aptdvlzop
jns aptdvldone
aptdvlzop: mov esi,[ebp+920]
add esi,[ebp+968]
mov edx,[ebp+956]
mov ecx,[ebp+952]
mov eax,[ebp+1008]
push esi
push edx
push ecx
push eax
call rw8056
add esp,[ebp+908]
mov esi,[ebp+920]
mov edx,[ebp+956]
mov ecx,[ebp+948]
mov eax,[ebp+1008]
push esi
push edx
push ecx
push eax
call rw8056
add esp,[ebp+908]
mov esi,[ebp+968]
add [ebp+920],esi
xor ecx,ecx
jz aptdvlcmp
aptdvldone: mov edx,[ebp+928]
mov [ebx+afilelen],edx
jmp aptinsfail
aptinstop: mov edx,[ebx+afilelen]
mov [ebp+920],edx
aptinscmp: mov ecx,[ebp+920]
cmp ecx,[ebx+y]
js aptinsdone
aptinszop: mov edx,[ebp+920]
add edx,[ebp+968]
mov [ebp+924],edx
mov esi,[ebp+920]
mov edx,[ebp+956]
mov ecx,[ebp+952]
mov eax,[ebp+1008]
push esi
push edx
push ecx
push eax
call rw8056
add esp,[ebp+908]
mov esi,[ebp+924]
mov edx,[ebp+956]
mov ecx,[ebp+948]
mov eax,[ebp+1008]
push esi
push edx
push ecx
push eax
call rw8056
add esp,[ebp+908]
mov edx,[ebp+920]
sub edx,[ebp+968]
mov [ebp+920],edx
jmp aptinscmp
aptinsdone: mov ecx,[ebx+afilelen]
add ecx,[ebp+968]
mov [ebx+afilelen],ecx
mov esi,[ebx+y]
mov edx,[ebp+1012]
mov ecx,[ebp+948]
mov eax,[ebp+1008]
push esi
push edx
push ecx
push eax
call rw8056
add esp,[ebp+908]
mov ecx,[ebx+y]
add ecx,[ebp+968]
mov [ebx+y],ecx
aptinsfail: sub edi,932
add esp,edi
pop eax
pop ecx
pop edx
pop ebx
pop esi
pop edi
pop ebp
ret
; bottom of aptinsert
; void ikx1864(lnes* rayloc5,int keychr1,int alselone)
; 1004 retad 1008 *rayloc5 1012 keychr1 1016 alselone
; 988 ebx 992 esi 996 edi 1000 ebp
; 972 -1 976 eax 980 ecx 984 edx
; 956 3 960 2 964 1 968 0
; 940 7 944 6 948 5 952 4
; 924 11 928 10 932 9 936 8
; 908 15 912 albase1 916 fixespikx 920 12
; 892 19 896 lval1 900 iisubc 904 16
; 876 23 880 cc1 884 filtkeychr 888 20
; 860 ikxchoose 864 ikxcontinue 868 oneikxj 872 24
; 844 31 848 ikxdex 852 raylocwhere 856 28
; 828 35 832 ikxcode 836 fstabrez 840 32
; 812 816 820 824 36
; 796 800 804 808 40
; 780 47 784 788 792 44
ikx1864: push ebp
mov ebp,esp
sub ebp,1000
push edi
push esi
push ebx
push edx
push ecx
push eax
xor esi,esi
add esi,1049
mov edx,esi
mov ecx,esi
mov edi,esi
sub edi,1050
sub edx,1048
sub ecx,1000
mov eax,ecx
add eax,eax
add eax,eax
ikx186pu: push edi
add edi,edx
sub ecx,edx
jnz ikx186pu
mov [ebp+916],eax
mov esi,[ebp+1008]
sub esi,8192
lea edx,[esi+crz0160]
sub edx,1024
mov [ebp+852],edx
mov ecx,[ebp+1016]
mov [esi+alsel],ecx
xor edx,edx
mov [ebp+848],edx
mov edx,[esi+alsel]
mov ecx,[ebp+1008]
push edx
push ecx
call dlenval
add esp,[ebp+936]
mov [ebp+896],eax
mov edx,[esi+insertype]
cmp edx,[ebp+968]
jz ikxnon8
mov ecx,[ebp+936]
add [ebp+848],ecx
ikxnon8: mov edx,[ebp+948]
cmp edx,[esi+alsel]
jns ikxnon4
mov ecx,[ebp+952]
add [ebp+848],ecx
ikxnon4: mov edx,[esi+a80w]
sub edx,[ebp+964]
cmp edx,[ebp+896]
jns ikxnon2
mov ecx,[ebp+960]
add [ebp+848],ecx
ikxnon2: mov edx,[esi+a80w]
sub edx,[ebp+964]
cmp edx,[esi+x]
jns ikxnon1
mov ecx,[ebp+964]
add [ebp+848],ecx
ikxnon1: xor edx,edx
push edx
call getreala
add esp,[ebp+952]
mov [ebp+832],eax
xor edi,edi
lea ebx,[edi+fstab1864]
add ebx,[ebp+832]
sub ebx,3000
mov edi,[ebp+848]
mov ecx,[ebx+edi*4+3000]
mov [ebp+836],ecx
mov edx,[esi+alsel]
cmp edx,[ebp+964]
jnz notikx1408
mov edx,[ebp+960]
mov ecx,[ebp+1008]
push edx
push ecx
call clearline
add esp,[ebp+936]
mov ecx,[ebp+964]
mov [esi+chdoc],ecx
notikx1408: xor edi,edi
mov [esi+inspg],edi
mov edx,[esi+alsel]
mov ecx,[ebp+948]
cmp ecx,edx
jns nonikx1409
sub edx,[ebp+964]
mov ecx,[esi+a80w]
push edx
push ecx
call nampy
add esp,[ebp+936]
add edi,eax
nonikx1409: mov [ebp+912],edi
add edi,[esi+x]
sub edi,[ebp+964]
mov [ebp+900],edi
mov ecx,[ebp+964]
mov [esi+chzerv],ecx
mov edx,[ebp+968]
mov [esi+chnext],edx
mov ecx,[ebp+836]
and ecx,[ebp+936]
jz ikxvot8
xor edx,edx
add edx,3255
sub edx,3000
mov ecx,[ebp+1008]
push edx
push ecx
call iek2000
add esp,[ebp+936]
mov edx,[ebp+964]
mov [esi+inspg],edx
ikxvot8: mov ecx,[ebp+836]
and ecx,[ebp+952]
jnz ikxisfour
ikxrot4: jmp ikxvot4
ikxisfour: mov edx,[esi+x]
cmp edx,[esi+a80w]
js ikxrot4
mov ecx,[ebp+840]
mov edx,[ebp+1012]
mov [ebp+884],ecx
cmp edx,ecx
js ikxorange
xor ecx,ecx
add ecx,1127
sub ecx,1000
cmp edx,ecx
jns ikxorange
mov [ebp+884],edx
ikxorange: mov ebx,[ebp+852]
mov edi,[ebp+900]
mov edx,[ebp+884]
mov [ebx+edi*1+1024],dl
mov edx,[ebp+960]
mov ecx,[ebp+1008]
push edx
push ecx
call gek2040
add esp,[ebp+936]
mov ecx,[ebp+964]
mov [esi+insel],ecx
mov edx,[ebp+964]
mov ecx,[ebp+1008]
push edx
push ecx
call clearline
add esp,[ebp+936]
mov edx,[esi+insel]
mov ecx,[ebp+1008]
push edx
push ecx
call aptinsert
add esp,[ebp+936]
mov ecx,[esi+y]
sub ecx,[ebp+964]
mov [esi+y],ecx
mov edx,[ebp+964]
mov [esi+inspg],edx
ikxvot4: mov ecx,[ebp+836]
and ecx,[ebp+960]
jz ikxvot2
mov ecx,[ebp+896]
mov [ebp+880],ecx
ikxloop4: mov edx,[ebp+880]
cmp edx,[esi+x]
js ikxvot2
mov edi,[ebp+912]
add edi,[ebp+880]
sub edi,[ebp+964]
mov ebx,[ebp+852]
xor edx,edx
mov dl,[ebx+edi*1+1024]
add edi,[ebp+964]
mov [ebx+edi*1+1024],dl
mov ecx,[ebp+880]
sub ecx,[ebp+964]
mov [ebp+880],ecx
xor edx,edx
jz ikxloop4
ikxvot2: mov ecx,[ebp+836]
and ecx,[ebp+964]
jz ikxvot1
ikxvoot93: mov ecx,[ebp+840]
mov edx,[ebp+1012]
mov [ebp+884],ecx
cmp edx,ecx
js ikxgreen
xor ecx,ecx
add ecx,1127
sub ecx,1000
cmp edx,ecx
jns ikxgreen
mov [ebp+884],edx
ikxgreen: mov ebx,[ebp+852]
mov edi,[ebp+900]
mov edx,[ebp+884]
mov [ebx+edi*1+1024],dl
mov ecx,[ebp+964]
add [esi+x],ecx
mov edx,[ebp+948]
cmp edx,[esi+alsel]
js ikxvot1
mov ecx,[ebp+1008]
push ecx
call laput12
add esp,[ebp+952]
ikxvot1: xor edi,edi
add esp,[ebp+916]
pop eax
pop ecx
pop edx
pop ebx
pop esi
pop edi
pop ebp
ret
; bottom of ikx1864
; iek2000(lnes* rayloc2, int nzkey)
; 1004 retad 1008 *rayloc2 1012 nzkey
; 992 esi 996 edi 1000 ebp
; 980 ecx 984 edx 988 ebx
; 968 1 972 0 976 eax
; 956 4 960 3 964 2
; 944 7 948 6 952 5
; 932 10 936 9 940 8
; 920 erxsub 924 12 928 erd
; 908 16 912 ercmp 916 erchk
; 896 fixspiek 900 raywhere 904 albase2
; 884 22 888 21 892 20
iek2000: push ebp
mov ebp,esp
sub ebp,1000
push edi
push esi
push ebx
push edx
push ecx
push eax
xor esi,esi
add esi,1023
mov ecx,esi
mov edx,esi
xor ebx,ebx
sub ecx,1000
sub edx,1022
mov eax,ecx
add eax,eax
add eax,eax
iek20pu: push ebx
add ebx,edx
sub ecx,edx
jnz iek20pu
mov [ebp+896],eax
mov esi,[ebp+1008]
sub esi,8192
lea ecx,[esi+crz0160]
sub ecx,2048
mov [ebp+900],ecx
xor edx,edx
mov [ebp+904],edx
mov ecx,[esi+a80w]
mov [ebp+928],ecx
mov edx,[esi+x]
sub edx,[ebp+968]
mov [ebp+920],edx
mov edx,[ebp+964]
mov ecx,[ebp+1008]
push edx
push ecx
call clearline
add esp,[ebp+940]
mov edx,[ebp+968]
mov [esi+alsel],edx
xor ecx,ecx
mov [ebp+916],ecx
iek22loop: mov edx,[ebp+920]
cmp edx,[esi+a80w]
jns iek22bot
xor edx,edx
mov ebx,[ebp+900]
mov edi,[ebp+920]
mov dl,[ebx+edi*1+2048]
mov [ebp+912],edx
mov ecx,[ebp+932]
add ecx,[ebp+884]
cmp ecx,[ebp+912]
jz iek21bot
mov ecx,[ebp+968]
mov [ebp+916],ecx
xor ecx,ecx
jz iek21bot
iek4304: xor edx,edx
jz iek22loop
iek22bot: xor ecx,ecx
jz iek23bot
iek21bot: mov edx,[ebp+912]
mov edi,[ebp+928]
mov ebx,[ebp+900]
mov [ebx+edi*1+2048],dl
mov edi,[ebp+920]
mov edx,[ebp+932]
add edx,[ebp+884]
mov [ebx+edi*1+2048],dl
mov ecx,[ebp+968]
mov edx,ecx
add [ebp+928],ecx
add [ebp+920],edx
xor edx,edx
jz iek4304
iek23bot: mov edx,[ebp+1012]
cmp edx,[ebp+972]
jz iek25top
mov edx,[ebp+916]
cmp edx,[ebp+972]
jnz iek25top
jmp iek30bot
iek25top: mov edx,[ebp+968]
add [esi+y],edx
mov ecx,[ebp+964]
mov [esi+insel],ecx
mov edx,[esi+insel]
mov ecx,[ebp+1008]
push edx
push ecx
call aptinsert
add esp,[ebp+940]
mov edx,[esi+insel]
mov ecx,[ebp+1008]
push edx
push ecx
call dlenval
add esp,[ebp+940]
cmp eax,[ebp+972]
jz iek27
mov ecx,[ebp+968]
mov [esi+marginselect],ecx
iek27: mov edx,[ebp+964]
mov ecx,[ebp+1008]
push edx
push ecx
call clearline
add esp,[ebp+940]
mov edx,[esi+y]
sub edx,[ebp+964]
mov [esi+y],edx
mov ecx,[ebp+968]
mov [esi+alsel],ecx
iek30bot: xor edi,edi
add esp,[ebp+896]
pop eax
pop ecx
pop edx
pop ebx
pop esi
pop edi
pop ebp
ret
; bottom of iek2000
; gek2040(lnes* rayloc4,int zurtwo)
; 1004 retad 1008 *rayloc4 1012 zurtwo
; 992 esi 996 edi 1000 ebp
; 980 ecx 984 edx 988 ebx
; 968 1 972 0 976 eax
; 956 4 960 3 964 2
; 944 7 948 gekspfix 952 5
; 932 10 936 rr2040 940 8
gek2040: push ebp
mov ebp,esp
sub ebp,1000
push edi
push esi
push ebx
push edx
push ecx
push eax
xor esi,esi
add esi,1000
mov ecx,esi
mov edx,esi
xor edi,edi
sub ecx,989
mov eax,ecx
add eax,eax
add eax,eax
sub edx,999
gek204pu: push edi
add edi,edx
sub ecx,edx
jnz gek204pu
mov [ebp+948],eax
mov ebx,[ebp+1008]
sub ebx,8192
mov ecx,[ebp+1012]
cmp ecx,[ebp+972]
jnz noniek2041
mov edx,[ebp+972]
mov ecx,[ebp+1008]
push edx
push ecx
call iek2000
add esp,[ebp+940]
noniek2041: mov edx,[ebp+972]
mov [ebx+chnext],edx
mov ecx,[ebp+1008]
push ecx
call laput12
add esp,[ebp+956]
mov ecx,[ebx+marginselect]
mov [ebx+x],ecx
mov edx,[ebp+968]
add [ebx+y],edx
add esp,[ebp+948]
pop eax
pop ecx
pop edx
pop ebx
pop esi
pop edi
pop ebp
ret
; bottom of gek2040
; dkx2050(lnes *rayloc4, int deltype44)
; 1004 retad 1008 *rayloc4 1012 deltype44
; 988 ebx 992 esi 996 edi 1000 ebp
; 972 0 976 eax 980 ecx 984 edx
; 956 4 960 3 964 2 968 1
; 940 8 944 7 948 6 952 5
; 924 12 928 11 932 10 936 9
; 908 16 912 15 916 14 920 13
; 892 20 896 ix4 900 lval4 904 fixdkxsp
; 876 24 880 deldisp 884 cc4 888 tnydeltype
; 860 28 864 dd4 868 26 872 deltype
; 844 32 848 delgcm 852 30 856 delgtl
; 828 36 832 albase4 836 isi4 840 iisub4
; 812 40 816 39 820 38 824 whereray4
; 796 44 800 43 804 42 808 41
; 780 48 784 47 788 46 792 45
dkx2050: push ebp
mov ebp,esp
sub ebp,1000
push edi
push esi
push ebx
push edx
push ecx
push eax
xor esi,esi
add esi,1049
mov ecx,esi
mov edx,esi
xor edi,edi
sub ecx,1000
mov eax,ecx
add eax,eax
add eax,eax
sub edx,1048
dkx205pu: push edi
add edi,edx
sub ecx,edx
jnz dkx205pu
mov [ebp+904],eax
mov esi,[ebp+1012]
mov [ebp+872],esi
mov ebx,[ebp+908]
push ebx
push esi
call smposdiv
add esp,[ebp+940]
push eax
push ebx
call nampy
add esp,[ebp+940]
sub esi,eax
mov [ebp+888],esi
xor esi,esi
lea ebx,[esi+chdelval]
xor ecx,ecx
push ecx
call getreala
add esp,[ebp+956]
add ebx,eax
sub ebx,512
mov edi,[ebp+888]
mov ecx,[ebx+edi*4+512]
mov [ebp+856],ecx
mov esi,[ebp+1008]
sub esi,8192
lea ecx,[esi+crz0160]
sub ecx,2048
mov [ebp+824],ecx
mov edx,[ebp+856]
cmp edx,2156
jnz non2156
mov ecx,[ebp+968]
mov [esi+alsel],ecx
mov [esi+chdoc],ecx
xor edi,edi
add edi,2142
mov [ebp+856],edi
mov ecx,[ebp+968]
cmp ecx,[esi+x]
js isdkxe2158
cmp ecx,[esi+y]
jns non2156
isdkxe2158: xor edi,edi
add edi,2158
mov [ebp+856],edi
non2156: mov edx,[ebp+856]
cmp edx,2158
jnz non2158
mov edi,[esi+x]
sub edi,[ebp+968]
mov [esi+x],edi
xor ebx,ebx
mov [esi+inspg],ebx
mov [ebp+832],ebx
add ebx,2054
mov [ebp+856],ebx
mov ecx,[esi+x]
cmp ecx,[ebp+968]
jns non2158
xor edx,edx
add edx,2162
mov [ebp+856],edx
mov ecx,[ebp+968]
mov [esi+x],ecx
non2158: mov edx,[ebp+856]
cmp edx,2162
jnz non2162
mov edi,[ebp+968]
mov [esi+inspg],edi
xor ecx,ecx
add ecx,2167
mov [ebp+856],ecx
cmp edi,[esi+y]
js non2162
mov [esi+x],edi
mov [esi+y],edi
xor ecx,ecx
add ecx,2055
mov [ebp+856],ecx
non2162: mov edx,[ebp+856]
cmp edx,2167
jnz non2167
mov ecx,[esi+y]
mov edi,[ebp+968]
sub ecx,edi
mov [esi+y],ecx
mov ebx,[ebp+1008]
push ebx
call lalocal12
add esp,[ebp+956]
mov edx,[esi+alsel]
push edx
push ebx
call dlenval
add esp,[ebp+940]
mov [ebp+900],eax
add eax,edi
mov [esi+x],eax
mov ecx,[ebp+888]
mov [ebp+872],ecx
xor edx,edx
add edx,2055
mov [ebp+856],edx
mov ecx,[esi+a80w]
cmp ecx,[esi+x]
jns non2167
mov [esi+x],ecx
non2167: mov edx,[ebp+856]
cmp edx,2050
jnz non2050
mov edx,[ebp+968]
mov [esi+alsel],edx
xor ecx,ecx
add ecx,2054
mov [ebp+856],ecx
non2050: mov edx,[ebp+856]
cmp edx,2054
jnz non2054
xor ebx,ebx
mov [esi+inspg],ebx
xor ecx,ecx
add ecx,2055
mov [ebp+856],ecx
non2054: mov edx,[ebp+856]
cmp edx,2055
jz isdk2055
jmp non2055
isdk2055: mov edi,[ebp+968]
mov [esi+chzerv],edi
xor ebx,ebx
mov [ebp+832],ebx
mov [esi+chnext],ebx
mov ecx,[ebp+832]
add ecx,[esi+x]
sub ecx,edi
mov [ebp+840],ecx
xor ecx,ecx
add ecx,2067
mov [ebp+856],ecx
mov edx,[ebp+952]
cmp edx,[esi+alsel]
js setdk2070
cmp ebx,[esi+insertype]
jz skipkx2070
setdk2070: xor edx,edx
add edx,2070
mov [ebp+856],edx
skipkx2070: mov ecx,[ebp+856]
cmp ecx,2067
jnz non2055
mov ebx,[ebp+824]
mov edx,[ebp+844]
mov edi,[ebp+840]
mov [ebx+edi*1+2048],dl
non2055: mov edx,[ebp+856]
cmp edx,2070
jz isdk2070
jmp non2070
isdk2070: mov edx,[esi+alsel]
mov ecx,[ebp+1008]
push edx
push ecx
call dlenval
add esp,[ebp+940]
mov [ebp+900],eax
xor ecx,ecx
add ecx,2075
mov [ebp+856],ecx
mov edx,[ebp+952]
mov ecx,[ebp+780]
add ecx,[ebp+912]
cmp edx,[esi+alsel]
js setdk2076
cmp ecx,[ebp+872]
jns skipkx2076
setdk2076: xor edx,edx
add edx,2076
mov [ebp+856],edx
skipkx2076: mov ecx,[ebp+856]
cmp ecx,2075
jnz skipkx2096
mov edx,[ebp+900]
cmp edx,[esi+x]
jns skipkx2096
xor ecx,ecx
add ecx,2096
mov [ebp+856],ecx
skipkx2096: mov edx,[ebp+856]
cmp edx,2095
jns skipkx2084
xor ecx,ecx
add ecx,2084
mov [ebp+856],ecx
skipkx2084: mov edx,[ebp+856]
cmp edx,2084
jz startik2084
ron2084: jmp non2084
startik2084: mov ecx,[esi+x]
mov [ebp+896],ecx
loop2084top: mov ecx,[ebp+856]
cmp ecx,2084
jnz ron2084
mov edx,[ebp+832]
add edx,[ebp+896]
sub edx,[ebp+968]
mov [ebp+836],edx
mov ecx,[ebp+896]
cmp ecx,[ebp+900]
js skipkx2090
xor edx,edx
add edx,2090
mov [ebp+856],edx
skipkx2090: mov edx,[ebp+856]
cmp edx,2084
jnz ron2084
mov ebx,[ebp+824]
xor edx,edx
mov edi,[ebp+836]
mov ecx,[ebp+968]
add edi,ecx
mov dl,[ebx+edi*1+2048]
sub edi,ecx
mov [ebx+edi*1+2048],dl
add [ebp+896],ecx
xor ecx,ecx
jz loop2084top
non2084: mov edx,[ebp+856]
cmp edx,2090
jnz non2070
mov ebx,[ebp+824]
mov edx,[ebp+844]
mov edi,[ebp+836]
mov [ebx+edi*1+2048],dl
xor ecx,ecx
add ecx,2067
mov [ebp+856],ecx
non2070: mov edx,[ebp+856]
cmp edx,2096
jz isk2096
jmp non2096
isk2096: mov ecx,[ebp+968]
add ecx,[esi+a80w]
sub ecx,[esi+x]
mov [ebp+880],ecx
mov edx,[ebp+968]
mov [esi+alsel],edx
xor ebx,ebx
mov [ebp+832],ebx
mov edx,[esi+x]
mov [ebp+896],edx
xor ecx,ecx
add ecx,2106
mov [ebp+856],ecx
loop2106: mov edx,[ebp+856]
cmp edx,2106
jz isdk2106
ron2106: jmp non2106
isdk2106: mov ecx,[ebp+896]
sub ecx,[ebp+968]
mov [ebp+884],ecx
add ecx,[ebp+880]
mov [ebp+864],ecx
xor ecx,ecx
add ecx,2112
mov [ebp+856],ecx
mov edx,[ebp+884]
cmp edx,[esi+a80w]
jns check22106
xor ecx,ecx
add ecx,2106
mov [ebp+856],ecx
check22106: mov edx,[ebp+856]
cmp edx,2106
jnz ron2106
mov ecx,[ebp+832]
add ecx,[ebp+864]
mov [ebp+836],ecx
xor edx,edx
mov ebx,[ebp+824]
mov edi,[ebp+836]
mov dl,[ebx+edi*1+2048]
mov edi,[ebp+832]
add edi,[ebp+884]
mov [ebx+edi*1+2048],dl
mov ecx,[ebp+968]
add [ebp+896],ecx
jmp loop2106
non2106: mov ecx,[ebp+880]
mov [ebp+896],ecx
loop2107: mov ecx,[ebp+896]
cmp ecx,[ebp+972]
jz bot2107
mov edx,[ebp+832]
add edx,[ebp+884]
mov [ebp+836],edx
mov eax,[ebp+844]
mov ebx,[ebp+824]
mov edi,[ebp+836]
mov [ebx+edi*1+2048],al
mov ecx,[ebp+968]
add [ebp+884],ecx
mov edx,[ebp+896]
sub edx,[ebp+968]
mov [ebp+896],edx
xor ecx,ecx
jz loop2107
bot2107: xor edx,edx
mov [ebp+896],edx
add edx,2122
mov [ebp+856],edx
loop2122: mov edx,[ebp+856]
cmp edx,2122
jz isdk2122
jmp non2122
isdk2122: mov ecx,[esi+a80w]
add ecx,[ebp+896]
mov [ebp+884],ecx
add ecx,[ebp+832]
mov [ebp+836],ecx
xor edx,edx
add edx,2130
mov [ebp+856],edx
xor edx,edx
mov ebx,[ebp+824]
mov edi,[ebp+836]
mov dl,[ebx+edi*1+2048]
mov [ebp+848],edx
cmp edx,[ebp+844]
jz skip2108
mov ecx,[ebp+968]
mov [esi+inspg],ecx
mov [esi+chnext],ecx
xor edx,edx
add edx,2067
mov [ebp+856],edx
skip2108: mov edx,[ebp+856]
cmp edx,2130
jnz non2130
mov edx,[ebp+896]
add edx,[ebp+968]
mov [ebp+896],edx
xor ecx,ecx
add ecx,2135
mov [ebp+856],ecx
mov edx,[ebp+896]
cmp edx,[esi+a80w]
jns non2130
xor ecx,ecx
add ecx,2122
mov [ebp+856],ecx
non2130: jmp loop2122
non2122: mov edx,[ebp+856]
cmp edx,2135
jnz non2096
mov edi,[esi+y]
add edi,[ebp+968]
mov [esi+y],edi
xor edx,edx
sub edx,[ebp+968]
mov ecx,[ebp+1008]
push edx
push ecx
call aptinsert
add esp,[ebp+940]
mov edi,[ebp+968]
mov [esi+inspg],edi
mov ecx,[esi+y]
sub ecx,edi
mov [esi+y],ecx
xor edx,edx
add edx,2067
mov [ebp+856],edx
non2096: mov ecx,[ebp+856]
cmp ecx,2067
jnz non2067
mov edx,[ebp+952]
cmp edx,[esi+alsel]
; value of alsel
js non2067
mov ecx,[ebp+1008]
push ecx
call laput12
add esp,[ebp+956]
non2067: xor ebx,ebx
add esp,[ebp+904]
pop eax
pop ecx
pop edx
pop ebx
pop esi
pop edi
pop ebp
ret
; end of dkx2050
; pairprline(lnes* tinyroy,int tinyboy,int rprlnumber,
; int curposone, int curpostwo);
; 1024 curpostwo
; 1012 tinyboy 1016 rprlnumber 1020 curposone
; 1000 ebp 1004 retad 1008 * tinyroy
; 984 edx 988 ebx 992 esi 996 edi
; 968 1 972 0 976 eax 980 ecx
; 952 5 956 4 960 3 964 2
; 936 9 940 8 944 948 rprtargline
; 920 13 924 12 928 932 rprtargad
; 904 17 908 16 912 wherecrz 916 rprsrcad
; 888 21 892 20 896 19 900 whereevwr
pairprline: push ebp
mov ebp,esp
sub ebp,1000
push edi
push esi
push ebx
push edx
push ecx
push eax
xor esi,esi
add esi,1022
mov edx,esi
mov ecx,esi
sub edx,1021
sub ecx,1000
xor edi,edi
pairprpuli: push edi
add edi,edx
sub ecx,edx
jnz pairprpuli
mov ebx,[ebp+1008]
sub ebx,8192
lea ecx,[ebx+crz0160]
lea edx,[ebx+evwr]
mov [ebp+912],ecx
mov [ebp+900],edx
mov edi,[ebp+1012]
add edi,[ebp+892]
sub edi,[ebp+888]
add edi,[ebp+972]
mov [ebp+948],edi
mov edx,[ebp+948]
mov ecx,[ebx+a80w]
push edx
push ecx
call nampy
add esp,[ebp+940]
mov [ebp+932],eax
mov edx,[ebp+1016]
sub edx,[ebp+968]
mov ecx,[ebx+a80w]
push edx
push ecx
call nampy
add esp,[ebp+940]
mov [ebp+916],eax
mov esi,[ebp+916]
mov edi,[ebp+932]
sub esi,500
sub edi,500
add esi,[ebp+912]
add edi,[ebp+900]
mov ecx,[ebx+a80w]
xor edx,edx
pairprloop: mov dl,[esi+500]
mov [edi+500],dl
add esi,[ebp+968]
add edi,[ebp+968]
sub ecx,[ebp+968]
jnz pairprloop
mov ecx,[ebp+1016]
cmp ecx,[ebp+952]
jnz norpcursor
mov edx,[ebp+972]
cmp edx,[ebp+1020]
jns norpcursor
mov edi,[ebp+1012]
mov ecx,[ebp+1020]
mov [ebx+onecurwozx],ecx
mov [ebx+onecurwozy],edi
mov ecx,[ebp+972]
cmp ecx,[ebx+moualglobal]
jz norpcursor
cmp ecx,[ebx+mouallocal]
jz norpcursor
mov edx,[ebp+1024]
mov [ebx+twocurwozx],edx
mov [ebx+twocurwozy],edi
norpcursor: xor edi,edi
add edi,1088
sub edi,1000
add esp,edi
pop eax
pop ecx
pop edx
pop ebx
pop esi
pop edi
pop ebp
ret
; bottom of pairprline
; paicvgcline(lnes* icvgcine,
; int sslselfive, int sposboy, int howmany);
; 1012 sslselfive 1016 sposboy 1020 howmany
; 1000 ebp 1004 retad 1008 *icvgcine
; 984 edx 988 ebx 992 esi 996 edi
; 968 1 972 0 976 eax 980 ecx
; 952 5 956 4 960 3 964 2
; 936 9 940 8 944 7 948 6
; 920 13 924 12 928 mcp 932 moucursorpos
; 904 17 908 16 912 shift 916 z80widthx
; 888 21 892 20 896 yzz 900 ypplh
; 872 25 876 24 880 xzz 884 concolor
; 856 29 860 28 864 868 cvgcpen
; 840 33 844 32 848 fixesp4919 852
paicvgcline: push ebp
mov ebp,esp
sub ebp,1000
push edi
push esi
push ebx
push edx
push ecx
push eax
xor esi,esi
add esi,1034
mov edx,esi
sub edx,1033
mov ecx,esi
sub ecx,1000
xor edi,edi
mov eax,ecx
add eax,eax
add eax,eax
pcicvgliu: push edi
add edi,edx
sub ecx,edx
jnz pcicvgliu
mov [ebp+848],eax
mov ecx,[ebp+972]
mov [ebp+932],ecx
mov [ebp+928],ecx
mov edx,[ebp+1016]
mov [ebp+912],edx
mov [ebp+868],ecx
mov [ebp+884],ecx
mov ebx,[ebp+1008]
sub ebx,8192
mov edx,[ebp+1012]
cmp edx,[ebp+952]
jz gclistart
jmp gcliskipone
gclistart: mov edx,[ebx+prindiff]
mov edi,[ebp+972]
cmp edx,edi
jns cvglin11
mov [ebx+prindiff],edi
cvglin11: mov edx,[ebx+y]
sub edx,[ebx+prindiff]
mov [ebx+prinjill],edx
mov edx,[ebx+ypheight]
sub edx,[ebx+nznormalend]
cmp edx,[ebx+prinjill]
jns cvglin14
mov edx,[ebx+y]
add edx,[ebx+nznormalend]
sub edx,[ebx+ypheight]
mov [ebx+prindiff],edx
cvglin14: mov edx,[ebx+prinjill]
cmp edx,[ebp+968]
jns cvglin16
mov edx,[ebx+y]
sub edx,[ebp+968]
mov [ebx+prindiff],edx
cvglin16: mov edx,[ebx+prindiff]
add edx,[ebp+1016]
mov [ebp+900],edx
mov edx,[ebp+1020]
cmp edx,[ebp+968]
js cvglin20
cmp edx,[ebp+960]
jns cvglin20
mov edx,[ebx+y]
cmp edx,[ebp+900]
jnz cvglin20
mov edx,[ebp+968]
mov [ebp+868],edx
mov edx,[ebx+x]
mov [ebp+928],edx
cvglin20: mov edi,[ebp+968]
cmp edi,[ebp+1020]
jns cvglin26
mov [ebp+868],edi
cvglin26: mov edi,[ebp+972]
cmp edi,[ebp+868]
jnz cvglin28
cvglin27: jmp gcliskipone
cvglin28: mov edi,[ebp+900]
mov edx,[ebp+952]
mov ecx,[ebp+952]
mov eax,[ebp+1008]
push edi
push edx
push ecx
push eax
call rw8056
add esp,[ebp+908]
mov edx,[ebp+1020]
cmp edx,[ebp+960]
jns cvglin27
mov edi,[ebp+972]
cmp edi,[ebx+moualglobal]
jz cvglin27
mov edi,[ebx+prindiff]
sub edi,[ebx+prindiffprv]
add edi,[ebx+mouy]
mov [ebx+mouy],edi
mov edx,[ebx+prindiff]
mov [ebx+prindiffprv],edx
mov ecx,[ebx+mouy]
sub ecx,[ebp+900]
cmp ecx,[ebp+972]
jnz gcliskipone
mov edx,[ebx+moux]
cmp edx,[ebp+968]
js gcliskipone
mov edx,[ebx+moux]
add edx,[ebp+972]
mov [ebp+932],edx
gcliskipone: mov edx,[ebp+1012]
sub edx,[ebp+968]
cmp edx,[ebp+936]
jns cvglin40
cmp edx,[ebp+952]
js cvglin40
mov edx,[ebp+968]
mov [ebp+868],edx
cvglin40: mov ecx,[ebp+868]
cmp ecx,[ebp+972]
jz cvgclin70
bvgclin70: mov edx,[ebp+1012]
cmp edx,[ebp+936]
jns cvgclin50
cmp edx,[ebp+948]
js cvgclin50
mov ecx,[ebx+x]
mov [ebp+928],ecx
cvgclin50: mov edi,[ebp+932]
xor edx,edx
cmp edx,[ebx+insertype]
jnz cvgclin53
mov edi,[ebp+972]
cvgclin53: mov edx,[ebp+928]
mov ecx,[ebp+1012]
mov eax,[ebp+912]
mov esi,[ebp+1008]
push edi
push edx
push ecx
push eax
push esi
call pairprline
add esp,[ebp+892]
cvgclin70: xor edi,edi
add esp,[ebp+848]
pop eax
pop ecx
pop edx
pop ebx
pop esi
pop edi
pop ebp
ret
; bottom of paicvgcline
; pachrvgapage(lnes* ghowage, int ghowmany);
; 1000 ebp 1004 ret 1008 *ghowage 1012 ghowmany
; 984 edx 988 ebx 992 esi 996 edi
; 968 1 972 0 976 eax 980 ecx
; 952 5 956 4 960 3 964 2
; 936 9 940 8 944 7 948 6
; 920 13 924 12 928 fixesp5090 932 10
; 904 17 908 16 912 15 916 pavpagectr
pachrvgapage: push ebp
mov ebp,esp
sub ebp,1000
push edi
push esi
push ebx
push edx
push ecx
push eax
xor esi,esi
add esi,1018
mov edx,esi
sub edx,1017
mov ecx,esi
sub ecx,1000
mov eax,ecx
add eax,eax
add eax,eax
xor edi,edi
pachrvgapgu: push edi
add edi,edx
sub ecx,edx
jnz pachrvgapgu
mov [ebp+928],eax
mov ebx,[ebp+1008]
sub ebx,8192
mov ecx,[ebp+968]
mov [ebp+916],ecx
pachvploop: mov edi,[ebx+ypheight]
sub edi,[ebx+nznormalend]
cmp edi,[ebp+916]
js pachvpbot
mov esi,[ebp+1012]
mov edx,[ebp+916]
mov ecx,[ebp+952]
mov eax,[ebp+1008]
push esi
push edx
push ecx
push eax
call paicvgcline
add esp,[ebp+908]
mov ecx,[ebp+916]
add ecx,[ebp+968]
mov [ebp+916],ecx
xor edi,edi
jz pachvploop
pachvpbot: xor edi,edi
add esp,[ebp+928]
pop eax
pop ecx
pop edx
pop ebx
pop esi
pop edi
pop ebp
ret
; bottom of pachrvgapage
; udregkey2176(lnes* udbpoint, int udbkeychr)
; 1004 retad 1008 *udbpoint 1012 udbkeychr
; 988 ebx 992 esi 996 edi 1000 ebp
; 972 0 976 eax 980 ecx 984 edx
; 956 4 960 3 964 2 968 1
; 940 8 944 7 948 6 952 5
; 924 12 928 11 932 10 936 9
; 908 16 912 15 916 fixesp 920 peter8max
; 892 20 896 19 900 *bwv2176 904 pete8len
; 876 24 880 23 884 22 888 petro8ctr
; 860 28 864 27 868 872 udregkeyjmp
; 844 32 848 31 852 856 udrkeytype
; 828 36 832 35 836 840 udrkeychr
; 812 40 816 39 820 824 rlkey
; 796 44 800 43 804 808 crzwhere-2048
; 780 48 784 47 788 792 ninewhere
udregkey2176: push ebp
mov ebp,esp
sub ebp,1000
push edi
push esi
push ebx
push edx
push ecx
push eax
xor esi,esi
add esi,1049
mov edx,esi
sub edx,1048
mov ecx,esi
sub ecx,1000
xor edi,edi
mov eax,ecx
add eax,eax
add eax,eax
udregpu2176: push edi
add edi,edx
sub ecx,edx
jnz udregpu2176
mov [ebp+916],eax
mov ecx,[ebp+780]
mov [ebp+856],ecx
xor edi,edi
add edi,53098
mov esi,[ebp+1008]
sub esi,8192
lea edx,[esi+crz0160]
sub edx,2048
mov [ebp+808],edx
mov [esi+dagrajmpnow],edi
xor edi,edi
add edi,52645
mov [esi+freddynext],edi
xor ecx,ecx
cmp ecx,[esi+nznormalend]
jnz usr000
jmp udr009
usr000: mov ecx,[ebp+964]
add ecx,[ebp+908]
cmp ecx,[ebp+1012]
jnz udr000
; ctrl R
xor edi,edi
add edi,52733
mov ecx,[ebp+940]
mov eax,[ebp+1008]
push ecx
push eax
call dlenval
add esp,[ebp+940]
cmp eax,[ebp+968]
js udvr00
add edi,[ebp+960]
udvr00: mov [esi+freddynext],edi
udr000: mov ecx,[ebp+876]
cmp ecx,[ebp+1012]
jnz udr001
; ctrl X
xor edi,edi
add edi,52782
mov [esi+freddynext],edi
udr001: mov ecx,[ebp+968]
add ecx,[ebp+876]
cmp ecx,[ebp+1012]
; ctrl Y
jnz udr002
xor edi,edi
add edi,53072
mov [esi+freddynext],edi
udr002: mov ecx,[ebp+876]
sub ecx,[ebp+968]
cmp ecx,[ebp+1012]
jnz udr003
; ctrl W Whereis
xor edi,edi
add edi,52860
mov [esi+freddynext],edi
udr003: xor edi,edi
add edi,52645
cmp edi,[esi+freddynext]
jz udr009
mov ecx,[esi+freddynext]
mov [esi+dagrajmpnow],ecx
mov ecx,[esi+y]
mov [esi+yre],ecx
xor ecx,ecx
mov [esi+onecurwozx],ecx
mov [esi+onecurwozy],ecx
jmp udrnot2190
udr009: xor ecx,ecx
add ecx,2176
mov [ebp+872],ecx
xor edi,edi
add edi,3255
sub edi,3000
mov ecx,[ebp+1012]
mov eax,ecx
and eax,edi
mov [ebp+840],eax
cmp edi,ecx
js udr012
mov eax,[ebp+968]
add eax,[ebp+780]
mov [ebp+856],eax
udr012: xor edx,edx
add edx,1024
and edx,ecx
jz udr014
mov eax,[ebp+964]
add eax,[ebp+780]
mov [ebp+856],eax
udr014: mov eax,[ebp+780]
cmp eax,[ebp+856]
jns udr016
xor edx,edx
add edx,2192
mov [ebp+872],edx
udr016: mov edx,[ebp+800]
mov ecx,[ebp+796]
cmp edx,ecx
jnz udr018
mov edx,[ebp+1008]
push edx
call lalocal12
add esp,[ebp+956]
udr018: mov edx,[ebp+872]
sub edx,2192
jnz udrnodel30
mov edx,[ebp+840]
cmp edx,[ebp+940]
jnz udrnodel30
mov edx,[ebp+844]
add edx,[ebp+844]
add edx,[ebp+948]
mov eax,[ebp+1008]
push edx
push eax
call dkx2050
add esp,[ebp+940]
mov edx,[ebp+968]
mov [esi+chdoc],edx
add edx,2175
mov [ebp+872],edx
xor ecx,ecx
cmp ecx,[esi+inspg]
jnz udrnodel30
add edx,[ebp+944]
add edx,[ebp+944]
mov [ebp+872],edx
udrnodel30: mov edx,[ebp+840]
mov eax,[ebp+948]
add eax,[ebp+944]
cmp edx,eax
jz udr029
cmp edx,[ebp+864]
jnz udr028a
cmp edx,[esi+dagraprvkey]
jnz udr028a
mov edi,edx
jmp udr14g
udr028a: cmp edx,[ebp+932]
jnz udrnoent40
udr029: mov edx,[ebp+872]
sub edx,2192
jnz udrnoent40
mov edx,[ebp+972]
mov ecx,[ebp+1008]
push edx
push ecx
call gek2040
add esp,[ebp+940]
mov ecx,[ebp+968]
mov [esi+chdoc],ecx
mov edx,[esi+marginselect]
mov [esi+x],edx
xor ecx,ecx
add ecx,2176
mov [ebp+872],ecx
udrnoent40: mov edx,[ebp+872]
cmp edx,2192
jnz udr037
mov edx,[ebp+840]
cmp edx,[ebp+864]
jnz udr037
xor ecx,ecx
add ecx,2190
mov [ebp+872],ecx
udr037: mov edx,[ebp+872]
cmp edx,2192
jnz udr039
mov ecx,[ebp+968]
add ecx,[ebp+780]
cmp ecx,[ebp+856]
jz udr040
udr039: jmp noudr1864
udr040: mov edi,[ebp+840]
mov [ebp+824],edi
mov ebx,[ebp+844]
xor edx,edx
add edx,1127
sub edx,1000
cmp edi,ebx
js udr045
cmp edi,edx
jns udr045
xor eax,eax
jz udr046
udr045: mov [ebp+824],ebx
udr046: mov eax,[ebp+968]
mov edx,[ebp+824]
mov ecx,[ebp+1008]
push eax
push edx
push ecx
call ikx1864
add esp,[ebp+924]
mov ecx,[esi+afilelen]
cmp ecx,[esi+y]
jns udr051
mov edx,[ebp+968]
mov ecx,[ebp+1008]
push edx
push ecx
call dlenval
add esp,[ebp+940]
mov edx,[ebp+972]
cmp edx,eax
jns udr051
mov ecx,[esi+afilelen]
add ecx,[ebp+968]
mov [esi+afilelen],ecx
udr051: xor edx,edx
add edx,2176
mov [ebp+872],edx
mov ecx,[ebp+972]
cmp ecx,[esi+inspg]
jnz noudr1864
sub edx,[ebp+932]
add edx,[ebp+876]
mov [ebp+872],edx
noudr1864: mov ecx,[ebp+856]
mov edx,[ebp+780]
add edx,[ebp+964]
cmp ecx,edx
jnz udr056
mov ecx,[ebp+872]
cmp ecx,2192
jz udr057
udr056: jmp noudrjumps
udr057: xor ebx,ebx
add ebx,2192
mov edi,[ebp+840]
add edi,2000
cmp edi,2080
jnz udr060
xor ebx,ebx
add ebx,2231
udr060: cmp edi,2072
jnz udr062
xor ebx,ebx
add ebx,2234
udr062: cmp edi,2073
jnz udr064
xor ebx,ebx
add ebx,2238
udr064: cmp edi,2081
jnz udr066
xor ebx,ebx
add ebx,2242
udr066: cmp edi,2077
jnz udr068
xor ebx,ebx
add ebx,2246
udr068: cmp edi,2075
jnz udr070
xor ebx,ebx
add ebx,2252
udr070: cmp edi,2079
; 79 is O end key
jnz udr072
xor edx,edx
cmp edx,[esi+nznormalend]
jz urr071
xor ebx,ebx
add ebx,2261
xor edx,edx
jz udr072
urr071: xor ebx,ebx
add ebx,2263
udr072: cmp edi,2082
jnz udr074
xor ebx,ebx
add ebx,2274
udr074: cmp edi,2083
jnz udd075
xor ebx,ebx
add ebx,2290
udd075: cmp edi,2071
jnz udr080
udr076: xor edx,edx
cmp edx,[esi+nznormalend]
jz udr14g
xor ebx,ebx
add ebx,2265
xor edx,edx
jz udr080
udr14g: xor ebx,ebx
add ebx,2176
xor edx,edx
add edx,11019
mov [esi+dagrajmpnow],edx
xor edx,edx
add edx,11019
mov [esi+freddynext],edx
udr080: cmp edi,2060
jnz udr082
xor ebx,ebx
add ebx,2176
udr082: mov [ebp+872],ebx
cmp ebx,2192
jnz noudrjumps
xor ebx,ebx
add ebx,2176
mov [ebp+872],ebx
noudrjumps: mov ebx,[ebp+872]
cmp ebx,2231
jnz udr088
; 2231 downarrow P
mov ecx,[esi+y]
add ecx,[ebp+968]
mov [esi+y],ecx
xor ebx,ebx
add ebx,2176
mov [ebp+872],ebx
udr088: cmp ebx,2234
jnz udr091
; 2234 uparrow H
mov ecx,[esi+y]
sub ecx,[ebp+968]
mov [esi+y],ecx
xor ebx,ebx
add ebx,2176
mov [ebp+872],ebx
udr091: cmp ebx,2238
jnz udr093
; 2238 pageup I
mov edx,[ebp+956]
add edx,[esi+y]
add edx,[esi+nznormalend]
sub edx,[esi+ypheight]
mov [esi+y],edx
xor ebx,ebx
add ebx,2176
mov [ebp+872],ebx
udr093: cmp ebx,2242
jnz udr096
; 2242 page down Q
mov edx,[esi+y]
add edx,[esi+ypheight]
sub edx,[esi+nznormalend]
sub edx,[ebp+956]
mov [esi+y],edx
xor ebx,ebx
add ebx,2176
mov [ebp+872],ebx
udr096: cmp ebx,2246
jnz udr101
; 2246 rightarrow M
mov ecx,[esi+x]
add ecx,[ebp+968]
mov [esi+x],ecx
xor ebx,ebx
add ebx,2190
mov [ebp+872],ebx
mov ecx,[esi+a80w]
cmp ecx,[esi+x]
jns udr101
mov edx,[ebp+968]
mov [esi+x],edx
mov ecx,[esi+y]
add ecx,edx
mov [esi+y],ecx
xor ebx,ebx
add ebx,2176
mov [ebp+872],ebx
udr101: cmp ebx,2252
jz udr103
; 2252 leftarrow K
udr102: jmp udrnot2252
udr103: mov edx,[esi+x]
mov edi,[ebp+968]
sub edx,edi
mov [esi+x],edx
xor ebx,ebx
add ebx,2190
mov [ebp+872],ebx
cmp edx,edi
jns udr102
cmp edi,[esi+y]
jns udr108
mov ecx,[esi+y]
sub ecx,edi
mov [esi+y],ecx
udr108: mov ecx,[ebp+1008]
push ecx
call lalocal12
add esp,[ebp+956]
push edi
push ecx
call dlenval
add esp,[ebp+940]
add eax,edi
mov [esi+x],eax
mov ecx,[esi+a80w]
cmp ecx,[esi+x]
jns udr112
mov edx,[esi+a80w]
mov [esi+x],edx
udr112: xor ebx,ebx
add ebx,2176
mov [ebp+872],ebx
udrnot2252: cmp ebx,2261
jnz udrnot2261
mov ecx,[ebp+1008]
push ecx
call lalocal12
add esp,[ebp+956]
mov edi,[ebp+968]
push edi
push ecx
call dlenval
add esp,[ebp+940]
mov [esi+x],edi
add edi,eax
mov edx,[esi+a80w]
cmp edx,edi
js udrbot2260
mov [esi+x],edi
udrbot2260: xor ebx,ebx
add ebx,2190
mov [ebp+872],ebx
udrnot2261: cmp ebx,2263
jnz udr116
; 2263 endkey O
mov edi,[ebp+968]
cmp edi,[esi+x]
jns udr116
mov [esi+x],edi
xor ebx,ebx
add ebx,2190
mov [ebp+872],ebx
udr116: cmp ebx,2263
jnz udr120
mov edi,[ebp+968]
cmp edi,[esi+x]
jnz udr120
mov ecx,[esi+y]
add edi,[esi+afilelen]
cmp ecx,edi
jns udr119
mov [esi+y],edi
xor ebx,ebx
add ebx,2176
mov [ebp+872],ebx
xor eax,eax
jz udr120
udr119: mov edx,[ebp+968]
mov [esi+y],edx
xor ebx,ebx
add ebx,2176
mov [ebp+872],ebx
udr120: cmp ebx,2265
jnz udr121
mov edx,[ebp+968]
mov [esi+x],edx
xor ebx,ebx
add ebx,2190
mov [ebp+872],ebx
udr121: cmp ebx,2274
jnz udr124
; 2274 insertkey R
mov edx,[ebp+968]
sub edx,[esi+insertype]
mov [esi+insertype],edx
xor ebx,ebx
add ebx,2190
mov [ebp+872],ebx
udr124: cmp ebx,2290
jnz udr130
; 2290 deletekey S
mov edi,[ebp+972]
mov edx,[ebp+1008]
push edi
push edx
call dkx2050
add esp,[ebp+940]
mov edx,[ebp+968]
mov [esi+chdoc],edx
xor ebx,ebx
add ebx,2176
mov [ebp+872],ebx
cmp edi,[esi+inspg]
jnz udr130
xor ebx,ebx
add ebx,2190
mov [ebp+872],ebx
udr130: cmp ebx,2176
jz udr132
; 2176 repaint page
jmp udrnot2176
udr132: mov edi,[ebp+968]
mov edx,[esi+afilelen]
mov ecx,[esi+y]
cmp edx,ecx
jns udr135
add edx,edi
mov [esi+y],edx
mov ecx,edx
udr135: cmp ecx,edi
jns udr137
mov [esi+y],edi
udr137: mov ecx,[esi+x]
mov edx,[esi+a80w]
cmp edx,ecx
jns udr139
mov ecx,edx
mov [esi+x],ecx
udr139: cmp ecx,edi
jns udr141
mov [esi+x],edi
udr141: mov ecx,[ebp+1008]
push ecx
call lalocal12
add esp,[ebp+956]
mov edx,[ebp+964]
push edx
push ecx
call pachrvgapage
add esp,[ebp+940]
xor ebx,ebx
add ebx,2190
mov [ebp+872],ebx
udrnot2176: cmp ebx,2190
jz udr146
; 2190 repaint line
jmp udrnot2190
udr146: mov edi,[ebp+968]
mov edx,[esi+afilelen]
mov ecx,[esi+y]
cmp edx,ecx
jns udr155
add edx,edi
mov [esi+y],edx
mov ecx,edx
udr155: cmp ecx,edi
jns udr157
mov [esi+y],edi
udr157: mov ecx,[esi+x]
mov edx,[esi+a80w]
cmp edx,ecx
jns udr159
mov ecx,edx
mov [esi+x],ecx
udr159: cmp ecx,edi
jns udr161
mov [esi+x],edi
udr161: mov ecx,[ebp+1008]
push ecx
call lalocal12
add esp,[ebp+956]
mov edi,[ebp+972]
mov edx,[esi+y]
sub edx,[esi+prindiff]
mov eax,[ebp+952]
push edi
push edx
push eax
push ecx
call paicvgcline
add esp,[ebp+908]
; forgot print line 9
mov edx,[ebp+960]
add edx,[ebp+780]
xor ecx,ecx
cmp ecx,[esi+nznormalend]
jz udv162
and edx,[ebp+972]
udv162: add edx,[ebp+968]
mov ecx,[ebp+1008]
push edx
push ecx
call litrlsput
add esp,[ebp+940]
; uses chnvalue(*chwvEBX subvEDI inchnEDX *bwv96ECX)
mov edx,[ebp+936]
sub edx,[ebp+968]
mov ecx,[esi+a80w]
push edx
push ecx
call nampy
add esp,[ebp+940]
sub eax,[ebp+972]
add eax,[ebp+808]
mov [ebp+792],eax
mov edx,[ebp+936]
add edx,[ebp+780]
mov [ebp+900],edx
mov edi,[ebp+812]
add edi,[ebp+964]
mov ebx,[ebp+792]
add ebx,2048
lea ecx,[ebp+900]
mov edx,[ebp+960]
add edx,[ebp+780]
mov [ebp+901],dl
mov edx,[esi+x]
push ecx
push edx
push edi
push ebx
call chnvalue
add esp,[ebp+908]
mov edx,[ebp+944]
add edx,[ebp+780]
mov [ebp+901],dl
add edi,[ebp+956]
mov edx,[esi+y]
push ecx
push edx
push edi
push ebx
call chnvalue
add esp,[ebp+908]
mov edx,[ebp+964]
add edx,[ebp+780]
mov [ebp+901],dl
mov edx,[esi+y]
sub edx,[esi+prindiff]
add edi,[ebp+940]
push ecx
push edx
push edi
push ebx
call chnvalue
add esp,[ebp+908]
mov edx,[ebp+944]
add edx,[ebp+780]
mov [ebp+901],dl
add edi,[ebp+956]
mov edx,[esi+afilelen]
push ecx
push edx
push edi
push ebx
call chnvalue
add esp,[ebp+908]
mov edx,[ebp+884]
add edx,[ebp+780]
mov [ebp+900],edx
mov edx,[ebp+780]
add edx,[ebp+940]
mov [ebp+901],dl
mov edi,ebx
sub edi,5500
xor edx,edx
mov dl,[edi+5500]
cmp edx,[ebp+844]
jnz skipleft2176
mov edi,[ebp+964]
mov edx,[esi+leftdebugger]
or dh,dl
jz skipleft2176
mov edx,[esi+leftdebugger]
push ecx
push edx
push edi
push ebx
call chnvalue
add esp,[ebp+908]
skipleft2176: mov edx,[esi+keysdebugger]
or dh,dh
jz skiplebb2177
mov edx,[esi+keysdebugger]
mov edi,[ebp+780]
add edi,[ebp+892]
push ecx
push edx
push edi
push ebx
call chnvalue
add esp,[ebp+908]
skiplebb2177: mov ebx,[ebp+1008]
mov edi,[ebp+956]
mov edx,[esi+ypheight]
sub edx,[esi+nznormalend]
add edx,[ebp+968]
mov ecx,[ebp+936]
push edi
push edx
push ecx
push ebx
call paicvgcline
add esp,[ebp+908]
; 9 to ypheight+1
mov edx,[ebp+940]
mov ecx,[ebp+1008]
push edx
push ecx
call dlenval
add esp,[ebp+940]
mov [ebp+904],eax
mov ecx,[ebp+908]
sub ecx,[ebp+972]
mov [ebp+920],ecx
mov ebx,[ebp+792]
sub ebx,[esi+a80w]
cmp eax,[ebp+920]
jns udr090
cmp eax,[ebp+952]
js udr090
xor ecx,ecx
xor edx,edx
udr085: mov edi,ecx
mov dl,[ebx+edi*1+2048]
add edi,[esi+a80w]
mov [ebx+edi*1+2048],dl
add ecx,[ebp+968]
cmp ecx,[ebp+904]
js udr085
add ebx,[esi+a80w]
mov edx,[ebp+844]
udr087: mov edi,ecx
mov [ebx+edi*1+2048],dl
add ecx,[ebp+968]
cmp ecx,[ebp+920]
js udr087
udr090: mov ebx,[ebp+1008]
mov edi,[ebp+956]
mov edx,[esi+ypheight]
sub edx,[esi+nznormalend]
add edx,[ebp+968]
mov ecx,[ebp+936]
push edi
push edx
push ecx
push ebx
call paicvgcline
add esp,[ebp+908]
; 9 ypheight+1
xor edi,edi
cmp edi,[esi+nznormalend]
jz udr092
mov edx,[ebp+972]
add edx,[ebp+972]
add edx,[ebp+964]
push edx
push ebx
call litrlsput
add esp,[ebp+940]
mov edi,[ebp+956]
mov edx,[esi+ypheight]
sub edx,[esi+nznormalend]
add edx,[ebp+964]
mov ecx,[ebp+936]
push edi
push edx
push ecx
push ebx
call paicvgcline
add esp,[ebp+908]
; 9 ypheight+2
udr092: mov edi,[ebp+964]
mov edx,[esi+y]
sub edx,[esi+prindiff]
mov ecx,[ebp+952]
push edi
push edx
push ecx
push ebx
call paicvgcline
add esp,[ebp+908]
; 5 y-prindiff
udrnot2190: xor edi,edi
add esp,[ebp+916]
pop eax
pop ecx
pop edx
pop ebx
pop esi
pop edi
pop ebp
ret
; bottom of udregkey2176
; litrlsput(lnes* rlslinal, int rlsindex)
; rlsindex >= 1 && rlsindex < 6000 for normal litharg line
; rlsindex == -11 send from crz0160(11);
; rlsindex is 52 for send to crz0160(9)
; rlsindex is > 6000 to put (rlsindex - 6000) to
; crz0160(3)
; if evwr is destination then scroll and put
; new line at ypheight+1
; 1004 retad 1008 *rlslinal 1012 rlsindex
; 988 ebx 992 esi 996 edi 1000 ebp
; 972 0 976 eax 980 ecx 984 edx
; 956 4 960 3 964 2 968 1
; 940 8 944 7 948 6 952 5
; 924 12 928 11 932 10 936 9
; 908 16 912 15 916 cst96 920
; 892 20 896 19 900 904 scrollsize
; 876 24 880 23 884 888 wherecrz0160-512
; 860 28 864 27 868 872 whereevwr-512
; 844 32 848 31 852 856 evwrset
; 828 36 832 35 836 highl 840 33
; 812 40 816 39 820 fixesp 824 wherelit
; 164 = 41 * 4
; 300 512 = 128 * 4 300 - 808 line of text
litrlsput: push ebp
mov ebp,esp
sub ebp,1000
push edi
push esi
push ebx
push edx
push ecx
push eax
xor esi,esi
xor edi,edi
add esi,1041
mov edx,esi
sub edx,1040
mov ecx,esi
sub ecx,1000
mov ebx,ecx
add ebx,ebx
add ebx,ebx
litrlsdpu: push edi
add edi,edx
sub ecx,edx
jnz litrlsdpu
xor eax,eax
mov ecx,[ebp+956]
mov edx,esi
sub edx,785
litmpylop: push edx
push eax
call nampy
add esp,[ebp+940]
add eax,[ebp+844]
sub ecx,[ebp+968]
jnz litmpylop
mov ecx,esi
sub ecx,913
litrlsepu: push eax
add ebx,[ebp+956]
sub ecx,[ebp+968]
jnz litrlsepu
mov [ebp+820],ebx
xor esi,esi
push esi
call getreala
add esp,[ebp+956]
lea ecx,[esi+litharg]
add ecx,eax
mov [ebp+824],ecx
mov ebx,[ebp+1008]
sub ebx,8192
mov ecx,[ebx+ypheight]
sub ecx,[ebx+nznormalend]
add ecx,[ebp+968]
mov [ebp+836],ecx
lea edx,[ebx+evwr]
sub edx,512
mov [ebp+872],edx
lea ecx,[ebx+crz0160]
sub ecx,512
mov [ebp+888],ecx
mov ecx,[ebx+a80w]
mov edx,[ebp+836]
add edx,[ebp+864]
sub edx,[ebp+860]
push edx
push ecx
call nampy
add esp,[ebp+940]
mov [ebp+856],eax
xor esi,esi
add esi,13881
mov [ebp+916],esi
xor ecx,ecx
add ecx,[ebp+972]
lea edx,[ebp+916]
mov esi,[ebp+824]
push esi
push edx
push ecx
call rlnvalue
add esp,[ebp+924]
mov edi,eax
mov edx,[ebp+1012]
xor ecx,ecx
add ecx,6000
cmp edx,ecx
js litr017
sub edx,ecx
litr017: cmp edx,[ebp+968]
jns litr020
jmp skiprlsget
litr020: sub edx,[ebp+972]
mov ecx,[ebp+940]
push edx
push ecx
call nampy
add esp,[ebp+940]
mov esi,[ebp+824]
lea ecx,[ebp+916]
push esi
push ecx
push eax
call rlnvalue
add esp,[ebp+924]
mov esi,eax
add esi,edi
add esi,[ebp+824]
sub esi,4096
xor edi,edi
xor ecx,ecx
litr024: xor edx,edx
mov dl,[esi+4096]
cmp edx,[ebp+840]
jz skiprlsget
mov [ebp+edi*1+300],dl
add esi,[ebp+968]
add edi,[ebp+968]
add ecx,[ebp+968]
cmp ecx,[ebx+a80w]
js litr024
skiprlsget: mov edx,[ebp+928]
sub edx,[ebp+968]
mov ecx,[ebx+a80w]
push edx
push ecx
call nampy
add esp,[ebp+940]
mov esi,eax
add esi,[ebp+888]
mov ecx,[ebx+a80w]
xor edi,edi
xor edx,edx
sub edx,[ebp+928]
cmp edx,[ebp+1012]
jnz skiprlsm11
litr031: xor edx,edx
mov dl,[esi+512]
mov [ebp+edi*1+300],dl
add esi,[ebp+968]
add edi,[ebp+968]
sub ecx,[ebp+968]
jnz litr031
skiprlsm11: mov edx,[ebp+936]
sub edx,[ebp+968]
mov ecx,[ebx+a80w]
push edx
push ecx
call nampy
add esp,[ebp+940]
mov edi,eax
add edi,[ebp+888]
xor esi,esi
mov edx,[ebp+1012]
xor ecx,ecx
cmp ecx,[ebx+nznormalend]
jz litr035
mov ecx,[ebp+968]
cmp ecx,edx
jz litr037
mov ecx,[ebp+964]
cmp ecx,edx
jz litr037
litr035: xor ecx,ecx
add ecx,1027
; ecx is location of line for nine 27+25
sub ecx,975
cmp edx,ecx
jnz skiprlsnine
litr037: xor edx,edx
mov dl,[ebp+esi*1+300]
mov [edi+512],dl
add esi,[ebp+968]
add edi,[ebp+968]
cmp esi,[ebx+a80w]
js litr037
jmp litrlsend
skiprlsnine: xor ecx,ecx
add ecx,6000
mov edx,[ebp+1012]
cmp edx,ecx
js skiprlsrine
mov edx,[ebp+960]
sub edx,[ebp+968]
mov ecx,[ebx+a80w]
push edx
push ecx
call nampy
add esp,[ebp+940]
mov edi,eax
add edi,[ebp+888]
xor esi,esi
mov eax,[ebp+968]
xor edx,edx
jz litr045
skiprlsrine: mov edx,[ebx+ypheight]
; get scroll size 904
sub edx,[ebx+nznormalend]
xor ecx,ecx
cmp ecx,[ebp+1012]
jz lir0042
xor ecx,ecx
cmp ecx,[ebx+nznormalend]
jnz lir0044
lir0042: mov ecx,[ebx+a80w]
push edx
push ecx
call nampy
add esp,[ebp+940]
mov [ebp+904],eax
mov edi,[ebp+872]
mov esi,edi
add esi,[ebx+a80w]
mov eax,[ebp+968]
mov ecx,[ebp+904]
litr043: xor edx,edx
mov dl,[esi+512]
mov [edi+512],dl
add esi,eax
add edi,eax
sub ecx,eax
jnz litr043
lir0044: mov edi,[ebp+856]
add edi,[ebp+872]
xor esi,esi
mov eax,[ebp+968]
litr045: xor edx,edx
mov dl,[ebp+esi*1+300]
mov [edi+512],dl
add edi,eax
add esi,eax
cmp esi,[ebx+a80w]
js litr045
litrlsend: xor edi,edi
add esp,[ebp+820]
pop eax
pop ecx
pop edx
pop ebx
pop esi
pop edi
pop ebp
ret
; bottom of litrlsput
; int readol(lnes* rolfes,int rolfnwhere,int nzhex)
; 1008 *rolfes 1012 rolfnwhere 1016 nzhex
; 992 esi 996 edi 1000 ebp 1004 retad
; 976 eax 980 ecx 984 edx 988 ebx
; 960 2 964 1 968 0 972 -1
; 944 6 948 5 952 4 956 3
; 928 10 932 9 936 8 940 7
; 912 14 916 13 920 12 924 readolres
; 896 18 900 wherecode 904 16 908 elevwhere
; 880 22 884 fixesp 888 20 892 readolallow
; 864 26 868 25 872 24 876
; 764 - 863 25 number buffer
readol: push ebp
mov ebp,esp
sub ebp,1000
push edi
push esi
push ebx
push edx
push ecx
push eax
xor esi,esi
add esi,1028
mov edx,esi
sub edx,1027
mov ecx,esi
sub ecx,1000
mov edi,esi
sub edi,1029
mov eax,ecx
add eax,eax
add eax,eax
readou: push edi
add edi,edx
sub ecx,edx
jnz readou
xor edi,edi
mov ecx,esi
sub ecx,1003
readzu: push edi
sub ecx,edx
jnz readzu
mov ecx,esi
sub ecx,928
add eax,ecx
mov [ebp+884],eax
mov ebx,[ebp+1008]
sub ebx,8192
xor edi,edi
push edi
call getreala
add esp,[ebp+952]
mov [ebp+900],eax
mov edx,[ebp+920]
sub edx,[ebp+960]
mov ecx,[ebx+a80w]
push edx
push ecx
call nampy
add esp,[ebp+936]
lea esi,[ebx+crz0160]
add esi,eax
sub esi,2048
mov [ebp+908],esi
xor edi,edi
mov [ebp+924],edi
mov [ebp+892],edi
mov [ebx+fp04],edi
mov [ebx+fl06],edi
mov [ebx+eofi],edi
mov [ebx+eofdelay],edi
mov [ebx+rep0],edi
mov esi,[ebp+904]
mov [ebx+hiskwid],esi
mov [ebx+pose],esi
mov edi,[ebp+1012]
add edi,[ebp+972]
mov esi,[ebx+a80w]
push edi
push esi
call nampy
add esp,[ebp+936]
lea esi,[ebx+crz0160]
add esi,eax
mov edx,[ebp+1012]
mov ecx,[ebp+1008]
push edx
push ecx
call dlenval
add esp,[ebp+936]
xor edi,edi
sub esi,1024
mov ecx,[ebp+964]
cmp eax,ecx
js readj026
readl017: xor edx,edx
mov dl,[esi+1024]
mov [ebp+edi*1+764],dl
add esi,ecx
add edi,ecx
sub eax,ecx
jnz readl017
xor eax,eax
jz readl026
readj026: jmp notreadol
readl026: xor edi,edi
mov esi,[ebp+956]
mov edx,[ebp+964]
xor ecx,ecx
add ecx,40000000h
add ecx,40000000h
lea eax,[ebp+764]
push edi
push edi
push esi
push edi
push edx
push ecx
push eax
mov edi,[ebp+900]
lea edx,[edi+readl040]
add edi,00800000h
mov ecx,[edi+wiocrn85]
push edx
push ecx
ret
readl040: mov [ebx+edhanb],eax
or eax,eax
jnz readl042
readl041: jmp notreadol
readl042: cmp eax,[ebp+964]
js readl041
mov edi,[ebp+900]
xor eax,eax
mov esi,[ebx+edhanb]
lea edx,[edi+readl050]
add edi,00800000h
mov ecx,[edi+wiosfp19]
mov edi,[ebp+960]
push edi
push eax
push eax
push esi
push edx
push ecx
ret
readl050: mov [ebx+fl06],eax
mov edi,[ebp+900]
mov esi,[ebx+edhanb]
lea edx,[edi+readl061]
add edi,00800000h
mov ecx,[edi+wiosfp19]
xor edi,edi
push edi
push edi
push edi
push esi
push edx
push ecx
ret
readl061: xor edi,edi
cmp edi,[ebx+fl06]
jns readl063
mov edx,[ebp+964]
mov [ebp+892],edx
readl063: mov ecx,[ebp+940]
cmp ecx,[ebp+1012]
jns readl070wh
mov esi,[ebx+afilelen]
add esi,[ebp+964]
mov [ebx+y],esi
readl070wh: mov ecx,[ebp+892]
cmp ecx,[ebp+968]
jz readl075wb
mov edx,[ebx+eofdelay]
cmp edx,[ebp+968]
jz readl076
readl075wb: jmp readl101wb
readl076: mov eax,[ebx+eofi]
mov [ebx+eofdelay],eax
readl077: mov ecx,[ebp+1008]
push ecx
call riedline
add esp,[ebp+952]
xor edx,edx
cmp edx,[ebx+rep0]
jnz readl079
mov edi,[ebx+eofi]
mov [ebx+eofdelay],edi
readl079: mov ecx,[ebx+a80w]
lea esi,[ebx+evrd]
sub esi,512
mov edi,[ebp+908]
mov eax,[ebp+964]
readl080: xor edx,edx
mov dl,[esi+512]
mov [edi+2048],dl
add esi,eax
add edi,eax
sub ecx,eax
jnz readl080
xor edx,edx
jz readl090
readl090: mov edx,[ebp+920]
add edx,[ebp+972]
mov ecx,[ebp+1008]
push edx
push ecx
call aptinsert
add esp,[ebp+936]
mov eax,[ebp+964]
mov [ebp+924],eax
jmp readl070wh
readl101wb: mov esi,[ebx+edhanb]
mov edi,[ebp+900]
lea edx,[edi+readl150]
add edi,00800000h
mov ecx,[edi+wiocls06]
push esi
push edx
push ecx
ret
readl150: mov ecx,[ebp+1012]
cmp ecx,[ebp+936]
js readl155
mov edx,[ebp+1016]
cmp edx,[ebp+968]
jz readl158
readl155: mov esi,[ebp+1008]
push ecx
push esi
call clearline
add esp,[ebp+936]
readl158: mov esi,[ebp+1012]
cmp esi,[ebp+940]
js notreadol
cmp esi,[ebp+932]
jns notreadol
xor edi,edi
add edi,1084
mov ecx,[ebp+1008]
push edi
push ecx
call udregkey2176
add esp,[ebp+936]
notreadol: mov esi,[ebp+924]
mov [ebp+976],esi
add esp,[ebp+884]
pop eax
pop ecx
pop edx
pop ebx
pop esi
pop edi
pop ebp
ret
; bottom of readol
; void eightsaveas(lnes* eisavls)
; 1000 ebp 1004 retad 1008 *eisavls
; 984 edx 988 ebx 992 esi 996 edi
; 968 1 972 0 976 eax 980 ecx
; 952 5 956 4 960 3 964 2
; 936 9 940 8 944 7 948 6
; 920 13 924 12 928 11 932 10
; 904 17 908 16 912 15 916 14
; 888 21 892 20 896 19 900 18
; 872 25 876 24 880 23 884 wrone
; 856 29 860 28 864 27 868 savedhr
; 840 33 844 32 848 shan 852 savewid
; 824 37 828 36 832 prdex 836 saveinner
; 808 41 812 40 816 codeloc 820 saveasctr
; 800 fixesp 804 5where
; 792 outrashl 796 outrashh
; 776 49 780 48 784 fnlen 788 8where
; 676 - 775 width 100 fn 676
; 576 - 675 width 100 obuffer 576
eightsaveas: push ebp
mov ebp,esp
sub ebp,1000
push edi
push esi
push ebx
push edx
push ecx
push eax
xor esi,esi
add esi,1050
mov edx,esi
sub edx,1049
mov ecx,esi
sub ecx,1000
mov ebx,ecx
mov eax,ebx
add eax,eax
xor edi,edi
add eax,eax
eightsaveru: push edi
add edi,edx
sub ecx,edx
jnz eightsaveru
xor edi,edi
eightsavepu: push edi
sub ebx,edx
jnz eightsavepu
mov [ebp+800],eax
xor edi,edi
push edi
call getreala
add esp,[ebp+956]
mov [ebp+816],eax
mov ebx,[ebp+1008]
sub ebx,8192
mov edx,[ebp+940]
sub edx,[ebp+968]
mov edi,[ebx+a80w]
push edx
push edi
call nampy
add esp,[ebp+940]
mov [ebp+788],eax
mov ecx,[ebp+952]
mov [ebp+832],ecx
mov edx,[ebp+832]
sub edx,[ebp+968]
push edx
push edi
call nampy
add esp,[ebp+940]
mov [ebp+804],eax
lea esi,[ebx+crz0160]
add [ebp+788],esi
add [ebp+804],esi
mov edx,[ebp+940]
mov ecx,[ebp+1008]
push edx
push ecx
call dlenval
add esp,[ebp+940]
mov [ebp+784],eax
cmp eax,[ebp+968]
jns eigsa016
eigsa015: jmp eightsavnot
eigsa016: xor edi,edi
mov esi,[ebp+788]
sub esi,1024
mov ecx,[ebp+968]
eigsa017: xor edx,edx
mov dl,[esi+1024]
mov [ebp+edi*1+676],dl
add esi,ecx
add edi,ecx
sub eax,ecx
jnz eigsa017
xor edi,edi
cmp edi,[ebx+afilelen]
jns eigsa015
xor esi,esi
add esi,1128
sub esi,1000
mov edx,[ebp+964]
xor ecx,ecx
add ecx,40000000h
lea eax,[ebp+676]
push edi
push esi
push edx
push edi
push edi
push ecx
push eax
mov edi,[ebp+816]
lea edx,[edi+eigsa030]
add edi,00800000h
mov ecx,[edi+wiocrn85]
push edx
push ecx
ret
eigsa030: mov [ebp+848],eax
xor edi,edi
mov [ebp+820],edi
eigsaolop: mov edx,[ebp+820]
cmp edx,[ebx+afilelen]
js eigsa033
jmp eightsavclo
eigsa033: add edx,[ebp+968]
mov [ebp+820],edx
mov edi,[ebp+820]
mov esi,[ebp+832]
mov edx,[ebp+952]
mov ecx,[ebp+1008]
push edi
push esi
push edx
push ecx
call rw8056
add esp,[ebp+908]
mov edx,[ebp+832]
mov ecx,[ebp+1008]
push edx
push ecx
call dlenval
add esp,[ebp+940]
mov [ebp+852],eax
xor edi,edi
mov ecx,[ebp+968]
mov esi,[ebp+804]
sub esi,4096
eigsa038: cmp edi,[ebp+852]
jns eigsa045
mov dl,[esi+4096]
mov [ebp+edi*1+576],dl
add esi,ecx
add edi,ecx
xor edx,edx
jz eigsa038
eigsa045: mov eax,[ebp+920]
mov edx,[ebp+932]
mov [ebp+edi*1+576],al
mov [ebp+edi*1+577],dl
xor eax,eax
mov [ebp+836],eax
cmp eax,[ebx+nzsaveskipod]
jz eigsailop
mov [ebp+edi*1+576],dl
eigsailop: mov esi,[ebp+836]
xor edx,edx
mov dl,[ebp+esi*1+576]
mov [ebp+884],edx
xor edi,edi
lea esi,[ebp+792]
mov edx,[ebp+968]
lea ecx,[ebp+884]
mov eax,[ebp+848]
push edi
push esi
push edx
push ecx
push eax
mov edi,[ebp+816]
lea edx,[edi+eigsa060]
add edi,00800000h
mov ecx,[edi+wiowrt04]
xor edi,edi
push edx
push ecx
ret
eigsa060: mov edx,[ebp+836]
mov ecx,[ebp+964]
sub ecx,[ebx+nzsaveskipod]
add ecx,[ebp+852]
add edx,[ebp+968]
mov [ebp+836],edx
cmp edx,ecx
js eigsailop
eigsa070: jmp eigsaolop
eightsavclo: mov edi,[ebp+816]
mov esi,[ebp+848]
lea edx,[edi+eightsavrot]
add edi,00800000h
mov ecx,[edi+wiocls06]
push esi
push edx
push ecx
ret
eightsavrot: mov edx,[ebp+832]
mov ecx,[ebp+1008]
push edx
push ecx
call clearline
add esp,[ebp+940]
eightsavnot: xor esi,esi
add esp,[ebp+800]
add esp,[ebp+800]
pop eax
pop ecx
pop edx
pop ebx
pop esi
pop edi
pop ebp
ret
; bottom of eightsaveas
; boolean findoneeq(lnes* ijstes, int ijstsix,
; int isixskip, int iftwod, int idiy)
; 1016 isixskip 1020 iftwod 1024 idiy
; 1004 retad 1008 *ijstes 1012 ijstsix
; 988 ebx 992 esi 996 edi 1000 ebp
; 972 0 976 eax 980 ecx 984 edx
; 956 4 960 3 964 2 968 1
; 940 8 944 7 948 6 952 5
; 924 12 928 11 932 10 936 9
; 908 16 912 15 916 14 920 13
; 892 20 896 19 900 904
; 876 24 880 23 884 888 bigsixskipzur
; 860 28 864 27 868 872 checkftw
; 844 32 848 31 852 856 checkfdw
; 828 36 832 35 836 fdilop 840 fdile
; 812 40 816 39 820 fdolop 824 fdices
; 796 44 800 43 804 808 six80wid
; 780 48 784 47 788 bisix 792 skipzur
; 764 52 768 51 772 6where 776 fdiri
; 748 56 752 55 756 3where 760 where160
; 732 60 736 59 740 fixesp 744 findonebr
; 716 64 720 63 724 728
findoneeq: push ebp
mov ebp,esp
sub ebp,1000
push edi
push esi
push ebx
push edx
push ecx
push eax
xor esi,esi
add esi,1065
mov edx,esi
sub edx,1064
mov ecx,esi
sub ecx,1000
mov eax,ecx
add eax,eax
add eax,eax
xor edi,edi
findonepu: push edi
add edi,edx
sub ecx,edx
jnz findonepu
mov [ebp+740],eax
mov ebx,[ebp+1008]
sub ebx,8192
lea ecx,[ebx+crz0160]
mov [ebp+760],ecx
xor edi,edi
mov [ebp+888],edi
mov edx,[ebp+928]
cmp edx,[ebp+1012]
jnz findne008
mov edx,[ebp+1016]
mov [ebp+888],edx
findne008: mov ecx,[ebx+a80w]
sub ecx,[ebp+888]
mov [ebp+808],ecx
xor edi,edi
mov [ebp+744],edi
mov edx,[ebp+1012]
mov ecx,[ebp+1008]
push edx
push ecx
call dlenval
add esp,[ebp+940]
sub eax,[ebp+888]
mov [ebp+856],eax
xor edi,edi
cmp edi,eax
js findne012
jmp findneolobot
findne012: xor edi,edi
mov [ebp+820],edi
findolopwh: mov esi,[ebp+820]
mov edi,[ebp+808]
sub edi,[ebp+856]
cmp esi,edi
js findne015
jmp findneolobot
findne015: mov edi,[ebp+1024]
mov esi,[ebp+960]
mov edx,[ebp+952]
mov ecx,[ebp+1008]
push edi
push esi
push edx
push ecx
call rw8056
add esp,[ebp+908]
mov edx,[ebp+1012]
sub edx,[ebp+968]
mov edi,[ebx+a80w]
push edx
push edi
call nampy
add esp,[ebp+940]
add eax,[ebp+760]
mov [ebp+772],eax
mov edx,[ebp+960]
sub edx,[ebp+968]
push edx
push edi
call nampy
add esp,[ebp+940]
add eax,[ebp+760]
mov [ebp+756],eax
mov edx,[ebp+960]
mov ecx,[ebp+1008]
push edx
push ecx
call dlenval
add esp,[ebp+940]
sub eax,[ebp+820]
mov [ebp+872],eax
cmp eax,[ebp+856]
jns findne024
jmp findne050
findne024: mov edx,[ebp+968]
mov [ebp+824],edx
mov ecx,[ebp+972]
mov [ebp+836],ecx
findilopwh: mov esi,[ebp+836]
cmp esi,[ebp+856]
jns findne042
findne027: mov esi,[ebp+772]
sub esi,2048
add esi,[ebp+836]
add esi,[ebp+888]
xor edx,edx
mov dl,[esi+2048]
mov [ebp+840],edx
mov esi,[ebp+756]
add esi,[ebp+836]
add esi,[ebp+820]
sub esi,4096
xor edx,edx
mov dl,[esi+4096]
mov [ebp+776],edx
mov ecx,[ebp+840]
cmp edx,ecx
jz findne040
cmp ecx,[ebp+844]
jz findne040
xor edi,edi
mov [ebp+824],edi
findne040: mov ecx,[ebp+836]
add ecx,[ebp+968]
mov [ebp+836],ecx
jmp findilopwh
findne042: mov edi,[ebp+972]
cmp edi,[ebp+824]
jz findne050
mov edx,[ebp+968]
mov [ebp+744],edx
findne050: mov ecx,[ebp+744]
cmp ecx,[ebp+972]
jnz findne055
mov edx,[ebp+972]
cmp edx,[ebp+1020]
jnz findne060
findne055: mov ecx,[ebp+808]
add ecx,[ebp+968]
mov [ebp+820],ecx
findne060: mov ecx,[ebp+820]
add ecx,[ebp+968]
mov [ebp+820],ecx
jmp findolopwh
findneolobot: mov esi,[ebp+744]
mov [ebp+976],esi
add esp,[ebp+740]
pop eax
pop ecx
pop edx
pop ebx
pop esi
pop edi
pop ebp
ret
; bottom of findoneeq
; void tinypcl(lnes* neeeta, int nexsta,
; int prwih, int gtonec, int actma)
; 1016 prwih 1020 gtonec 1024 actma
; 1004 retad 1008 *neeeta 1012 nexsta
; 988 ebx 992 esi 996 edi 1000 ebp
; 972 0 976 eax 980 ecx 984 edx
; 956 4 960 3 964 2 968 1
; 940 8 944 7 948 6 952 5
; 924 12 928 11 932 10 936 fixesp
; 908 16 912 15 916 14 920 13
tinypcl: push ebp
mov ebp,esp
sub ebp,1000
push edi
push esi
push ebx
push edx
push ecx
push eax
xor esi,esi
add esi,3017
mov ecx,esi
sub ecx,3000
mov edx,esi
sub edx,3016
xor edi,edi
mov eax,ecx
add eax,eax
add eax,eax
tinypul: push edi
add edi,edx
sub ecx,edx
jnz tinypul
mov [ebp+936],eax
mov ebx,[ebp+1008]
sub ebx,8192
mov edi,[ebp+1024]
cmp edi,[ebx+dagrajmpnow]
jz tinypbl
jmp tinysetl
tinypbl: mov ecx,[ebp+968]
cmp ecx,[ebp+1020]
jns tinypel
mov eax,[ebp+1008]
tinypel: mov edx,[ebp+1016]
mov eax,[ebp+1008]
push edx
push eax
call litrlsput
add esp,[ebp+940]
mov edx,[ebp+968]
mov [ebx+keyclineinit],edx
xor esi,esi
mov ecx,[ebp+1008]
push esi
push ecx
call litrlsput
add esp,[ebp+940]
tinypgl: mov edx,[ebp+1012]
mov [ebx+freddynext],edx
xor ecx,ecx
add ecx,53098
mov [ebx+dagrajmpnow],ecx
tinysetl: mov ecx,[ebp+1020]
cmp ecx,[ebp+968]
jns tinyseel
mov edx,[ebx+freddynext]
mov [ebx+dagrajmpnow],edx
tinyseel: mov edi,[ebp+936]
add esp,edi
pop eax
pop ecx
pop edx
pop ebx
pop esi
pop edi
pop ebp
ret
; bottom of tinypcl
; void new2608(lnes* lsnew)
; 1000 ebp 1004 retad 1008 *lsnew
; 984 edx 988 ebx 992 esi 996 edi
; 968 1 972 0 976 eax 980 ecx
; 952 5 956 4 960 3 964 2
; 936 9 940 8 944 7 948 6
; 920 13 924 12 928 11 932 10
; 904 17 908 16 912 15 916 14
; 888 21 892 20 896 19 900 fixesp
new2608: push ebp
mov ebp,esp
sub ebp,1000
push edi
push esi
push ebx
push edx
push ecx
push eax
xor ecx,ecx
add ecx,922
sub ecx,900
xor edx,edx
add edx,902
sub edx,901
mov eax,ecx
add eax,eax
add eax,eax
xor ebx,ebx
new26pu: push ebx
add ebx,edx
sub ecx,edx
jnz new26pu
mov [ebp+900],eax
mov ebx,[ebp+1008]
sub ebx,8192
xor esi,esi
mov edi,[ebp+968]
mov ecx,[ebp+924]
add ecx,ecx
mov [ebx+ypheight],ecx
mov edx,[ebp+944]
xor ecx,ecx
add ecx,480
sub ecx,400
mov [ebx+a80w],ecx
mov edx,[ebp+936]
mov [ebx+cmdheight],edx
add edx,[ebp+968]
mov [ebx+keysdebugger],esi
mov [ebx+leftdebugger],esi
mov [ebx+nznormalend],edi
mov [ebx+nzshift],esi
mov [ebx+x],edi
mov [ebx+y],edi
mov [ebx+nzsaveskipod],esi
mov [ebx+prindiff],esi
mov [ebx+prinjill],esi
mov [ebx+nzerror],esi
mov [ebx+afilelen],esi
mov [ebx+chnext],esi
mov [ebx+chdoc],esi
mov [ebx+chzerv],esi
mov [ebx+insertype],edi
mov [ebx+inspg],esi
mov [ebx+marginselect],edi
mov [ebx+prindiffprv],esi
mov [ebx+mouallocal],esi
mov [ebx+moualglobal],esi
mov [ebx+yre],edi
mov [ebx+xe],edi
mov [ebx+uppercase],esi
mov [ebx+rep0],esi
mov eax,[ebp+968]
mov edx,[ebp+908]
add edx,edx
xor edi,edi
new7058: mov [ebx+edi*1+evwr],dl
add edi,eax
cmp edi,2080
js new7058
xor edi,edi
new7063: mov [ebx+edi*1+crz0160],dl
add edi,eax
cmp edi,16384
js new7063
mov [ebx+eofi],esi
mov [ebx+onecurwozx],esi
mov [ebx+onecurwozy],esi
mov ecx,[ebp+908]
add ecx,ecx
mov [ebx+dagraprvkey],ecx
xor edx,edx
add edx,927
sub edx,900
mov ecx,[ebp+1008]
push edx
push ecx
call litrlsput
add esp,[ebp+940]
add esp,[ebp+900]
pop eax
pop ecx
pop edx
pop ebx
pop esi
pop edi
pop ebp
ret
; end of new2608
; void cdgetcoml(lnes* cgcttn,int cgctln,int ncjmp,
; int lopcjmp);
; 1012 cgctln 1016 ncjmp 1020 lopcjmp
; 1000 ebp 1004 retad 1008 *cgcttn
; 984 edx 988 ebx 992 esi 996 edi
; 968 1 972 0 976 eax 980 ecx
; 952 5 956 4 960 3 964 2
; 936 9 940 8 944 7 948 6
; 920 13 924 12 928 11 932 10
; 904 17 908 16 912 15 916 fixesp
; 888 21 892 20 896 19 900
; 872 25 876 24 880 23 884
; 856 29 860 28 864 27 868
; 840 33 844 32 848 31 852 gclnc
; 824 37 828 36 832 35 836 cgctla
; 808 41 812 40 816 39 820 cfiltkey
; 792 45 796 44 800 43 804
; 776 49 780 48 784 47 788
; 760 53 764 52 768 51 772 50
; 744 57 748 56 752 55 756 54
; 728 61 732 60 736 59 740 58
; 712 65 A 716 64 720 63 724
; 696 69 E 700 68 D 704 67 C 708 66 B
; 680 73 I 684 72 H 688 71 G 692 70 F
; 664 77 M 668 76 L 672 75 K 676 74 J
; 648 81 Q 652 80 P 656 79 O 660 78 N
; 632 85 U 636 84 T 640 83 S 644 82 R
; 616 89 Y 620 88 X 624 87 W 628 86 V
; 600 93 604 92 608 91 612 90 Z
; 584 97 a 588 96 592 95 596
; 568 101 e 572 100 d 576 99 c 580 98 b
; 552 105 i 556 104 h 560 103 g 564 102 f
; 536 109 m 540 108 d 544 107 k 548 106 j
; 520 113 q 524 112 p 528 111 o 532 110 n
; 504 117 v 508 116 t 512 115 s 516 114 r
; 488 121 y 492 120 x 496 119 w 500 118 v
; 472 125 476 124 480 123 484 122 z
; 456 129 460 128 464 127 468 126
; 440 133 444 132 448 131 452 130
cdgetcoml: push ebp
mov ebp,esp
sub ebp,1000
push edi
push esi
push ebx
push edx
push ecx
push eax
xor esi,esi
add esi,1134
mov edx,esi
sub edx,1133
mov ecx,esi
sub ecx,1000
mov eax,ecx
add eax,eax
add eax,eax
xor edi,edi
cdgetcopu: push edi
add edi,edx
sub ecx,edx
jnz cdgetcopu
mov [ebp+916],eax
mov ebx,[ebp+1008]
sub ebx,8192
mov ecx,[ebp+1020]
cmp ecx,[ebx+dagrajmpnow]
jz cdgetstart
jmp cdgetnotl
cdgetstart: xor edi,edi
add edi,53098
mov [ebx+dagrajmpnow],edi
mov [ebx+freddynext],ecx
mov edx,[ebp+1012]
sub edx,[ebp+968]
mov ecx,[ebx+a80w]
push edx
push ecx
call nampy
add esp,[ebp+940]
lea edi,[ebx+crz0160]
add edi,eax
mov [ebp+836],edi
mov edx,[ebp+972]
cmp edx,[ebx+keyclineinit]
jz cdnoninit
mov edx,[ebp+1012]
mov ecx,[ebp+1008]
push edx
push ecx
call clearline
add esp,[ebp+940]
mov ecx,[ebp+968]
mov [ebx+cmdkeyxctr],ecx
cdnoninit: xor edi,edi
mov [ebx+keyclineinit],edi
mov [ebp+852],edi
mov edx,[ebx+dagranewkey]
mov ecx,[ebp+464]
add ecx,[ebp+460]
and edx,ecx
mov [ebp+820],edx
cmp edx,[ebp+940]
jnz cdnonback
mov esi,[ebx+cmdkeyxctr]
sub esi,[ebp+968]
cmp esi,[ebp+968]
js cdnonback
mov [ebx+cmdkeyxctr],esi
sub esi,[ebp+968]
add esi,[ebp+836]
mov edx,[ebp+844]
sub esi,512
mov [esi+512],dl
cdnonback: mov edx,[ebx+dagranewkey]
cmp edx,[ebp+844]
js cdnondkey
cmp edx,[ebp+464]
jns cdnondkey
mov edi,[ebx+cmdkeyxctr]
sub edi,[ebp+968]
js cdnondkey
cmp edi,[ebx+a80w]
jns cdnondkey
mov esi,edi
add edi,[ebp+836]
sub edi,2048
mov [edi+2048],dl
add esi,[ebp+964]
mov [ebx+cmdkeyxctr],esi
cmp esi,[ebx+a80w]
js cdnondkey
mov ecx,[ebp+968]
mov [ebp+852],ecx
mov edx,[ebx+a80w]
mov [ebx+cmdkeyxctr],edx
cdnondkey: mov edx,[ebx+dagranewkey]
cmp edx,[ebp+932]
jz cdisda
cmp edx,[ebp+920]
jnz cdnotda
cdisda: mov ecx,[ebp+968]
mov [ebp+852],ecx
cdnotda: xor edi,edi
cmp edi,[ebp+852]
jz cdnotchg
mov ecx,[ebp+1016]
mov [ebx+dagrajmpnow],ecx
cdnotchg: mov edx,[ebx+ypheight]
sub edx,[ebx+nznormalend]
sub edx,[ebp+968]
add edx,[ebp+460]
sub edx,[ebp+464]
mov ecx,[ebx+a80w]
push edx
push ecx
call nampy
add esp,[ebp+940]
lea edi,[ebx+evwr]
add edi,eax
mov esi,[ebp+836]
sub esi,2048
sub edi,1024
mov eax,[ebp+968]
cdgetpr: mov dl,[esi+2048]
mov [edi+1024],dl
add esi,eax
add edi,eax
sub ecx,eax
jnz cdgetpr
cdgetnotl: mov edi,[ebp+916]
add esp,edi
pop eax
pop ecx
pop edx
pop ebx
pop esi
pop edi
pop ebp
ret
; bottom of replacement cdgetcoml
; void ron52640(lnes* lnron)
; implied argument is (*(lnron)).dagranewkey
; 1000 ebp 1004 retad 1008 *lnron
; 984 edx 988 ebx 992 esi 996 edi
; 968 1 972 0 976 eax 980 ecx
; 952 5 956 4 960 3 964 2
; 936 9 940 8 944 7 948 6
; 920 13 924 12 928 11 932 10
; 904 17 908 16 912 15 916 14
; 888 21 892 20 896 19 900 18
; 872 25 876 24 880 23 884 22
; 856 29 860 28 864 27 868 26
; 840 33 844 32 848 31 852
; 824 37 828 36 832 35 836
; 808 41 812 40 816 39 820
; 792 45 796 44 800 43 804 42
; 776 49 780 48 784 47 788 46
; 760 53 764 52 768 51 772 50
; 744 57 748 56 752 55 756 54
; 728 61 732 60 736 59 740 58
; 712 65A 716 64 720 63 724 62
; 696 69E 700 68D 704 67C 708 66B
; 680 73I 684 72H 688 71G 692 70F
; 664 77M 668 76L 672 75K 676 74J
; 648 81Q 652 80P 656 79O 660 78N
; 632 85U 636 84T 640 83S 644 82R
; 616 89Y 620 88X 624 87W 628 86V
; 600 93 604 92 608 91 612 90Z
; 584 97 588 96 592 95 596 fixesp
; 568 101 572 100 576 99 580
; 552 105 556 104 560 103 564
; 536 109 540 108 544 107 548
; 520 113 524 112 528 111 532
; 504 117 508 116 512 115 516
; 488 121 492 120 496 119 500
; 472 125 476 124 480 123 484
; 456 129 460 128 464 127 468 126
ron52640: push ebp
mov ebp,esp
sub ebp,1000
push edi
push esi
push ebx
push edx
push ecx
push eax
xor edi,edi
xor esi,esi
add esi,1130
mov edx,esi
sub edx,1129
mov ecx,esi
sub ecx,1000
mov eax,ecx
add eax,eax
add eax,eax
ron526pu: push edi
add edi,edx
sub ecx,edx
jnz ron526pu
mov [ebp+596],eax
mov ebx,[ebp+1008]
sub ebx,8192
xor edi,edi
notrox52640: xor ecx,ecx
add ecx,52642
cmp ecx,[ebx+dagrajmpnow]
jnz notron52642
mov ecx,[ebx+xe]
mov edx,[ebx+yre]
mov [ebx+x],ecx
mov [ebx+y],edx
xor ecx,ecx
add ecx,52645
mov [ebx+dagrajmpnow],ecx
notron52642: xor ecx,ecx
add ecx,52645
cmp ecx,[ebx+dagrajmpnow]
jnz notron52645
mov edx,[ebx+dagranewkey]
mov ecx,[ebp+1008]
push edx
push ecx
call udregkey2176
add esp,[ebp+940]
notron52645: xor ecx,ecx
notron52661: xor edx,edx
add edx,52708
cmp edx,[ebx+dagrajmpnow]
jnz notron52708
mov ecx,[ebp+968]
; 52708 t top
mov [ebx+yre],ecx
mov [ebx+xe],ecx
xor ecx,ecx
add ecx,52642
xor edx,edx
add edx,53098
mov [ebx+freddynext],ecx
mov [ebx+dagrajmpnow],edx
notron52708: xor ecx,ecx
add ecx,52714
; 52714 b bot
cmp ecx,[ebx+dagrajmpnow]
jnz notron52731
mov edx,[ebp+968]
mov [ebx+xe],edx
add edx,[ebx+afilelen]
mov [ebx+yre],edx
xor ecx,ecx
add ecx,52642
xor edx,edx
add edx,53098
mov [ebx+freddynext],ecx
mov [ebx+dagrajmpnow],edx
; @@TOP of 52733 O open
notron52731: xor ecx,ecx
add ecx,52733
cmp ecx,[ebx+dagrajmpnow]
jnz notron52733
mov edx,[ebp+964]
mov [ebx+opendell],edx
mov ecx,[ebx+afilelen]
add ecx,[ebp+968]
mov [ebx+y],ecx
xor edi,edi
add edi,52733
mov esi,[ebp+972]
mov edx,[ebp+960]
xor ecx,ecx
add ecx,52734
mov eax,[ebp+1008]
push edi
push esi
push edx
push ecx
push eax
call tinypcl
add esp,[ebp+892]
notron52733: xor ecx,ecx
add ecx,52734
cmp ecx,[ebx+dagrajmpnow]
jz isr52734
jmp not52734
isr52734: mov edx,[ebp+972]
mov ecx,[ebp+1008]
push edx
push ecx
call litrlsput
add esp,[ebp+940]
xor edx,edx
mov ecx,[ebp+1008]
push edx
push ecx
call litrlsput
add esp,[ebp+940]
mov edx,[ebp+948]
add edx,[ebx+opendell]
sub edx,[ebp+968]
mov ecx,[ebx+a80w]
push edx
push ecx
call nampy
add esp,[ebp+940]
lea esi,[ebx+crz0160]
mov edi,esi
add esi,eax
mov edx,[ebp+928]
sub edx,[ebp+968]
push edx
push ecx
call nampy
add esp,[ebp+940]
add edi,eax
sub esi,4096
sub edi,2048
mov eax,[ebp+968]
ron52734fnl: mov dl,[esi+4096]
mov [edi+2048],dl
add esi,eax
add edi,eax
sub ecx,eax
jnz ron52734fnl
xor ecx,ecx
add ecx,53098
xor edx,edx
add edx,52742
mov [ebx+dagrajmpnow],ecx
mov [ebx+freddynext],edx
xor edi,edi
mov [ebx+twocurwozy],edi
mov [ebx+twocurwozx],edi
mov ecx,[ebx+ypheight]
sub ecx,[ebx+nznormalend]
mov [ebx+onecurwozy],ecx
cmp ecx,[ebx+cmdheight]
jns ron52734cy
mov edx,[ebx+cmdheight]
mov [ebx+onecurwozy],edx
ron52734cy: mov ecx,[ebp+968]
add [ebx+onecurwozy],ecx
mov [ebx+onecurwozx],ecx
mov edx,[ebp+964]
cmp edx,[ebx+opendell]
jnz not52734
mov edx,[ebp+948]
add edx,[ebx+opendell]
mov ecx,[ebp+1008]
push edx
push ecx
call dlenval
add esp,[ebp+940]
add eax,[ebp+968]
mov [ebx+onecurwozx],eax
not52734: xor ecx,ecx
add ecx,52736
cmp ecx,[ebx+dagrajmpnow]
jnz notron52736
mov ecx,[ebp+968]
mov [ebx+opendell],ecx
xor edi,edi
add edi,52736
mov esi,[ebp+968]
mov edx,[ebp+960]
xor ecx,ecx
add ecx,52742
mov eax,[ebp+1008]
push edi
push esi
push edx
push ecx
push eax
call tinypcl
add esp,[ebp+892]
notron52736: xor ecx,ecx
add ecx,52742
cmp ecx,[ebx+dagrajmpnow]
jnz notror52742
mov edi,ecx
mov esi,edi
add esi,[ebp+968]
mov edx,[ebp+948]
add edx,[ebx+opendell]
mov ecx,[ebp+1008]
push edi
push esi
push edx
push ecx
call cdgetcoml
add esp,[ebp+908]
notror52742: xor ecx,ecx
add ecx,52743
cmp ecx,[ebx+dagrajmpnow]
jz isr52743
jmp notron52743
isr52743: mov edx,[ebp+948]
add edx,[ebx+opendell]
mov ecx,[ebp+1008]
push edx
push ecx
call dlenval
add esp,[ebp+940]
xor edi,edi
cmp edi,eax
jns ronsk52743
xor edi,edi
cmp edi,[ebx+afilelen]
js isch52743
cmp edi,[ebx+uppercase]
jz isdh52743
isch52743: mov edx,[ebp+968]
mov [ebx+chdoc],edx
isdh52743: mov edx,[ebp+972]
mov ecx,[ebp+948]
add ecx,[ebx+opendell]
mov eax,[ebp+1008]
push edx
push ecx
push eax
call readol
add esp,[ebp+924]
ronsk52743: mov edx,[ebx+opendell]
cmp edx,[ebp+964]
jnz notyre52743
mov ecx,[ebp+968]
add ecx,[ebx+afilelen]
xor edx,edx
cmp edx,[ebx+nznormalend]
jz notxre52743
mov ecx,[ebp+968]
notxre52743: mov [ebx+yre],ecx
mov [ebx+y],ecx
notyre52743: xor ecx,ecx
add ecx,53098
xor edx,edx
add edx,52642
mov [ebx+dagrajmpnow],ecx
mov [ebx+freddynext],edx
notron52743: xor ecx,ecx
; @@BOTTOM 52642 end of o open
notron36588: xor ecx,ecx
; @@TOP of 52782 E exit
add ecx,52782
cmp ecx,[ebx+dagrajmpnow]
jnz notron52782
xor edi,edi
cmp edi,[ebx+chdoc]
jnz rondch52782
xor ecx,ecx
add ecx,52800
mov [ebx+dagrajmpnow],ecx
xor ecx,ecx
jz notron52782
rondch52782: xor edi,edi
add edi,52782
mov esi,[ebp+968]
mov edx,[ebp+956]
xor ecx,ecx
add ecx,52793
mov eax,[ebp+1008]
push edi
push esi
push edx
push ecx
push eax
call tinypcl
add esp,[ebp+892]
notron52782: xor ecx,ecx
add ecx,52793
cmp ecx,[ebx+dagrajmpnow]
jnz notron52793
xor edx,edx
add edx,53098
xor ecx,ecx
add ecx,52642
mov [ebx+freddynext],ecx
mov ecx,[ebp+460]
add ecx,[ebp+464]
and ecx,[ebx+dagranewkey]
cmp ecx,[ebp+480]
jns lcron52793
cmp ecx,[ebp+584]
js lcron52793
sub ecx,[ebp+844]
lcron52793: cmp ecx,[ebp+660]
jnz ronvn52793
xor edx,edx
add edx,52800
ronvn52793: cmp ecx,[ebp+616]
jnz ronvy52793
xor edx,edx
add edx,52797
ronvy52793: mov [ebx+dagrajmpnow],edx
notron52793: xor edi,edi
add edi,52797
cmp edi,[ebx+dagrajmpnow]
jnz notron52797
xor esi,esi
mov edx,[ebp+952]
xor ecx,ecx
add ecx,36583
mov eax,[ebp+1008]
push edi
push esi
push edx
push ecx
push eax
call tinypcl
add esp,[ebp+892]
notron52797: xor edi,edi
add edi,36583
cmp edi,[ebx+dagrajmpnow]
jz isr36583
jmp notron36583
isr36583: xor edx,edx
mov ecx,[ebp+1008]
push edx
push ecx
call litrlsput
add esp,[ebp+940]
mov edx,[ebp+940]
sub edx,[ebp+968]
mov ecx,[ebx+a80w]
push edx
push ecx
call nampy
add esp,[ebp+940]
lea esi,[ebx+crz0160]
sub esi,512
mov edi,esi
add esi,eax
mov edx,[ebp+928]
sub edx,[ebp+968]
push edx
push ecx
call nampy
add esp,[ebp+940]
add edi,eax
xor edx,edx
mov eax,[ebp+968]
lop36583r: mov dl,[esi+512]
mov [edi+512],dl
add esi,eax
add edi,eax
sub ecx,eax
jnz lop36583r
mov edx,[ebp+972]
sub edx,[ebp+928]
mov ecx,[ebp+1008]
push edx
push ecx
call litrlsput
add esp,[ebp+940]
mov edx,[ebp+972]
sub edx,[ebp+972]
mov ecx,[ebp+1008]
push edx
push ecx
call litrlsput
add esp,[ebp+940]
xor ecx,ecx
add ecx,53098
xor edx,edx
add edx,52798
mov [ebx+dagrajmpnow],ecx
mov [ebx+freddynext],edx
xor edi,edi
mov [ebx+twocurwozy],edi
mov [ebx+twocurwozx],edi
mov esi,[ebx+ypheight]
sub esi,[ebx+nznormalend]
mov [ebx+onecurwozy],esi
mov esi,[ebx+cmdheight]
mov edx,[ebx+ypheight]
sub edx,[ebx+nznormalend]
cmp edx,esi
jns notrco36583
mov [ebx+onecurwozy],esi
notrco36583: mov edx,[ebp+968]
add [ebx+onecurwozy],edx
mov edx,[ebp+940]
mov ecx,[ebp+1008]
push edx
push ecx
call dlenval
add esp,[ebp+940]
cmp eax,[ebp+972]
jz notrco3658v3
xor edi,edi
mov [ebx+keyclineinit],edi
notrco3658v3: add eax,[ebp+968]
mov [ebx+onecurwozx],eax
mov [ebx+cmdkeyxctr],eax
notron36583: xor edi,edi
add edi,52798
cmp edi,[ebx+dagrajmpnow]
jnz notron52798
xor esi,esi
add esi,52799
mov edx,[ebp+940]
mov ecx,[ebp+1008]
push edi
push esi
push edx
push ecx
call cdgetcoml
add esp,[ebp+908]
notron52798: xor edi,edi
add edi,52799
cmp edi,[ebx+dagrajmpnow]
jnz notron52799
mov ecx,[ebp+1008]
push ecx
call eightsaveas
add esp,[ebp+956]
xor edi,edi
mov [ebx+chdoc],edi
add edi,52800
mov [ebx+dagrajmpnow],edi
notron52799: xor edi,edi
add edi,52776
cmp edi,[ebx+dagrajmpnow]
jnz notron52776
xor esi,esi
mov edx,[ebp+952]
xor ecx,ecx
add ecx,36581
mov eax,[ebp+1008]
push edi
push esi
push edx
push ecx
push eax
call tinypcl
add esp,[ebp+892]
notron52776: xor edi,edi
add edi,36581
cmp edi,[ebx+dagrajmpnow]
jz isr36581
jmp notron36581
isr36581: mov edx,[ebp+972]
mov ecx,[ebp+1008]
push edx
push ecx
call litrlsput
add esp,[ebp+940]
mov edx,[ebp+940]
sub edx,[ebp+968]
mov ecx,[ebx+a80w]
push edx
push ecx
call nampy
add esp,[ebp+940]
lea esi,[ebx+crz0160]
sub esi,512
mov edi,esi
add esi,eax
mov edx,[ebp+928]
sub edx,[ebp+968]
push edx
push ecx
call nampy
add esp,[ebp+940]
add edi,eax
mov eax,[ebp+968]
lopr36581: mov dl,[esi+512]
mov [edi+512],dl
add esi,eax
add edi,eax
sub ecx,eax
jnz lopr36581
xor ecx,ecx
add ecx,53098
xor edx,edx
add edx,52777
mov [ebx+dagrajmpnow],ecx
mov [ebx+freddynext],edx
xor edi,edi
mov [ebx+twocurwozy],edi
mov [ebx+twocurwozx],edi
mov esi,[ebx+ypheight]
sub esi,[ebx+nznormalend]
mov [ebx+onecurwozy],esi
mov edx,[ebx+cmdheight]
cmp esi,edx
jns cmdy36581
mov [ebx+onecurwozy],edx
cmdy36581: mov ecx,[ebp+968]
add [ebx+onecurwozy],ecx
mov edx,[ebp+940]
mov ecx,[ebp+1008]
push edx
push ecx
call dlenval
add esp,[ebp+940]
add eax,[ebp+968]
mov [ebx+onecurwozx],eax
notron36581: xor edi,edi
add edi,52777
cmp edi,[ebx+dagrajmpnow]
jnz notron52777
mov esi,edi
add esi,[ebp+968]
mov edx,[ebp+940]
mov ecx,[ebp+1008]
push edi
push esi
push edx
push ecx
call cdgetcoml
add esp,[ebp+908]
notron52777: xor edi,edi
add edi,52778
cmp edi,[ebx+dagrajmpnow]
jnz notron52778
mov ecx,[ebp+1008]
push ecx
call eightsaveas
add esp,[ebp+956]
xor edi,edi
mov [ebx+chdoc],edi
xor ecx,ecx
add ecx,53098
xor edx,edx
add edx,52642
mov [ebx+dagrajmpnow],ecx
mov [ebx+freddynext],edx
notron52778: xor edi,edi
add edi,52800
cmp edi,[ebx+dagrajmpnow]
jnz notron52800
; removed c learpage
xor ecx,ecx
add ecx,53098
xor edx,edx
add edx,11019
mov [ebx+dagrajmpnow],ecx
mov [ebx+freddynext],edx
notron52800: xor edi,edi
; @@BOTTOM of E exit
; @@TOP 52860
notron52815: xor edi,edi
add edi,52860
cmp edi,[ebx+dagrajmpnow]
jnz notron52860
mov esi,[ebp+968]
mov edx,[ebp+944]
mov ecx,edi
add ecx,[ebp+956]
mov eax,[ebp+1008]
push edi
push esi
push edx
push ecx
push eax
call tinypcl
add esp,[ebp+892]
notron52860: xor edi,edi
add edi,52864
cmp edi,[ebx+dagrajmpnow]
jnz notron52864
mov esi,edi
add esi,[ebp+960]
mov edx,[ebp+948]
mov ecx,[ebp+1008]
push edi
push esi
push edx
push ecx
call cdgetcoml
add esp,[ebp+908]
notron52864: xor ecx,ecx
add ecx,52867
cmp ecx,[ebx+dagrajmpnow]
jz isr52867
jmp notron52867
isr52867: xor edi,edi
mov [ebx+lfdal],edi
mov ecx,[ebx+dagraprvkey]
cmp ecx,[ebp+844]
jnz rnb52867
mov edx,[ebp+968]
mov [ebx+lfdal],edx
rnb52867: mov ecx,[ebx+yre]
mov [ebx+rcmdctr],ecx
mov edx,[ebp+968]
mov [ebx+dagraprvkey],edx
whtop52867: mov ecx,[ebx+rcmdctr]
sub ecx,[ebp+968]
cmp ecx,[ebx+afilelen]
jns wbt52867
xor edi,edi
cmp edi,[ebx+dagraprvkey]
jz wbt52867
mov edi,[ebx+rcmdctr]
mov esi,[ebx+lfdal]
mov edx,[ebp+972]
mov ecx,[ebp+948]
mov eax,[ebp+1008]
push edi
push esi
push edx
push ecx
push eax
call findoneeq
add esp,[ebp+892]
xor edi,edi
cmp edi,eax
jz fr52867
mov [ebx+dagraprvkey],edi
fr52867: xor esi,esi
cmp esi,[ebx+dagraprvkey]
jz wbt52867
mov ecx,[ebp+968]
add [ebx+rcmdctr],ecx
xor ecx,ecx
jz whtop52867
wbt52867: mov ecx,[ebx+rcmdctr]
mov [ebx+yre],ecx
xor ecx,ecx
add ecx,53098
xor edx,edx
add edx,52642
mov [ebx+dagrajmpnow],ecx
mov [ebx+freddynext],edx
xor edi,edi
cmp edi,[ebx+dagraprvkey]
jz notron52867
xor ecx,ecx
add ecx,52642
mov [ebx+freddynext],ecx
notron52867: xor ecx,ecx
; @@BOTTOM of end of find whereis
; @@TOP of 53072 Y ylinenumber
notron53054: xor edi,edi
add edi,53072
cmp edi,[ebx+dagrajmpnow]
jnz notron53072
mov esi,[ebp+968]
mov edx,[ebp+948]
xor ecx,ecx
add ecx,53071
mov eax,[ebp+1008]
push edi
push esi
push edx
push ecx
push eax
call tinypcl
add esp,[ebp+892]
notron53072: xor edi,edi
add edi,53071
cmp edi,[ebx+dagrajmpnow]
jnz notron53071
mov esi,edi
sub esi,[ebp+968]
mov edx,[ebp+948]
mov ecx,[ebp+1008]
push edi
push esi
push edx
push ecx
call cdgetcoml
add esp,[ebp+908]
notron53071: xor edi,edi
add edi,53070
cmp edi,[ebx+dagrajmpnow]
jz isr53070
jmp notron53070
isr53070: mov edx,[ebp+948]
sub edx,[ebp+968]
mov ecx,[ebx+a80w]
push edx
push ecx
call nampy
add esp,[ebp+940]
lea esi,[ebx+crz0160]
add esi,eax
xor edi,edi
add edi,14393
mov [ebx+y],edi
lea edx,[ebx+y]
mov ecx,[ebp+972]
push esi
push edx
push ecx
call rlnvalue
add esp,[ebp+924]
mov [ebx+rcmdctr],eax
mov ecx,[ebx+rcmdctr]
mov edx,[ebx+afilelen]
cmp edx,ecx
jns iir53070
add edx,[ebp+968]
mov [ebx+rcmdctr],edx
iir53070: mov esi,[ebp+968]
mov edx,[ebx+rcmdctr]
cmp edx,esi
jns ihr53070
mov [ebx+rcmdctr],esi
ihr53070: mov edx,[ebx+rcmdctr]
mov [ebx+y],edx
mov [ebx+yre],edx
xor edi,edi
mov [ebx+rcmdctr],edi
xor ecx,ecx
add ecx,53098
xor edx,edx
add edx,52642
mov [ebx+dagrajmpnow],ecx
mov [ebx+freddynext],edx
; @@BOTTOM OF 53072
notron53070: xor edi,edi
add edi,36154
cmp edi,[ebx+dagrajmpnow]
jnz notron36154
mov esi,[ebp+584]
sub esi,[ebx+uppercase]
mov [ebx+uppercase],esi
xor ecx,ecx
add ecx,53098
xor edx,edx
add edx,52642
mov [ebx+dagrajmpnow],ecx
mov [ebx+freddynext],edx
notron36154: xor ecx,ecx
add ecx,36155
cmp ecx,[ebx+dagrajmpnow]
jnz notron36155
mov esi,[ebp+940]
sub esi,[ebx+marginselect]
mov [ebx+marginselect],esi
xor ecx,ecx
add ecx,53098
xor edx,edx
add edx,52642
mov [ebx+dagrajmpnow],ecx
mov [ebx+freddynext],edx
notron36155: xor ecx,ecx
; @@53098 12438
notrox36326: xor edi,edi
add edi,53098
cmp edi,[ebx+dagrajmpnow]
jz jrr53098
jmp notron53098
; cut here at duplicate 12373 12530
; @@52648
jrr53098: xor ecx,ecx
; @@52642
jjb53098: xor ecx,ecx
add ecx,52642
cmp ecx,[ebx+freddynext]
jnz jjx53098
mov esi,[ebx+xe]
mov edx,[ebx+yre]
mov [ebx+x],esi
mov [ebx+y],edx
mov ecx,[ebp+968]
mov eax,[ebp+844]
; removed c learpage
xor esi,esi
ron8332: mov [ebx+esi*1+evwr],al
add esi,ecx
cmp esi,2080
js ron8332
xor esi,esi
add esi,1084
mov ecx,[ebp+1008]
push esi
push ecx
call udregkey2176
add esp,[ebp+940]
xor ecx,ecx
add ecx,52645
mov [ebx+freddynext],ecx
jjx53098: mov esi,[ebx+freddynext]
mov edi,[ebx+dagraprvjmp]
mov edx,[ebx+dagrajmpnow]
mov [ebx+dagraprvjmp],edx
mov [ebx+dagrajmpnow],esi
mov edx,[ebx+dagranewkey]
mov [ebx+dagraprvkey],edx
xor edi,edi
cmp edi,[ebx+nzerror]
jz notron53098
xor ecx,ecx
add ecx,11019
mov [ebx+freddynext],ecx
mov [ebx+dagrajmpnow],ecx
notron53098: xor edi,edi
add esp,[ebp+596]
pop eax
pop ecx
pop edx
pop ebx
pop esi
pop edi
pop ebp
ret
; bottom of ron52640
; agcapen(lnes* gcae)
; 1000 ebp 1004 retad 1008 *gcae
; 984 edx 988 ebx 992 esi 996 edi
; 968 1 972 0 976 eax 980 ecx
; 952 5 956 4 960 3 964 2
; 936 9 940 8 944 7 948 6
; 920 13 924 12 928 11 932 10
; 904 17 908 16 912 15 916 fixesp
; 888 21 892 20 896 19 900 argaddr
; 872 25 876 24 880 23 884 other
; 856 29 860 28 864 27 868
; 840 33 844 32 848 31 852
; 704 line of data
agcapen: push ebp
mov ebp,esp
sub ebp,1000
push edi
push esi
push ebx
push edx
push ecx
push eax
xor edi,edi
add edi,1033
mov ecx,edi
mov edx,edi
sub ecx,999
sub edx,1032
mov eax,ecx
add eax,eax
add eax,eax
add eax,eax
mov ebx,ecx
xor esi,esi
agcapeu: push esi
add esi,edx
sub ecx,edx
jnz agcapeu
xor esi,esi
agcapel: push esi
sub ebx,edx
jnz agcapel
mov [ebp+916],eax
xor esi,esi
add esi,[ebp+1008]
sub esi,8192
mov eax,[esi+hmanyargs]
xor ecx,ecx
xor edi,edi
mov esi,eax
add esi,[ebp+968]
mov [ebp+900],esi
mov edx,[ebp+844]
add edx,edx
add edx,edx
mov ebx,[ebp+968]
cmp esi,[ebp+972]
jz agcalobt
sub esi,1024
agcalopt: xor eax,eax
mov al,[esi+1024]
cmp eax,[ebp+840]
js agcalobs
add esi,ebx
add ecx,ebx
cmp ecx,edx
js agcalopt
xor ebx,ebx
jz agcalobt
agcalobs: add esi,ebx
agcalobe: cmp ecx,edx
jns agcalobt
xor eax,eax
mov al,[esi+1024]
cmp al,[ebp+840]
js agcalobt
mov [ebp+edi*1+704],al
add esi,ebx
add edi,ebx
add ecx,ebx
cmp ecx,edx
js agcalobe
agcalobt: mov ebx,[ebp+1008]
sub ebx,8192
xor eax,eax
mov al,[ebp+704]
cmp eax,[ebp+840]
jns agcaea
jmp agcabop
agcaea: xor edx,edx
add edx,2018
sub edx,2000
mov [ebx+dagranewkey],edx
mov ecx,[ebp+1008]
push ecx
call ron52640
add esp,[ebp+956]
agcalopl: xor esi,esi
mov ecx,[ebp+844]
add ecx,ecx
add ecx,ecx
mov edi,[ebp+968]
agcalapl: xor edx,edx
mov dl,[ebp+esi*1+704]
cmp edx,[ebp+840]
js agcaboo
mov [ebx+dagranewkey],edx
mov eax,[ebp+1008]
push eax
call ron52640
add esp,[ebp+956]
add esi,edi
cmp esi,ecx
js agcalapl
agcaboo: xor edx,edx
add edx,2010
sub edx,2000
mov [ebx+dagranewkey],edx
mov ecx,[ebp+1008]
push ecx
call ron52640
add esp,[ebp+956]
agcabop: xor ecx,ecx
add ecx,[ebp+916]
add esp,ecx
pop eax
pop ecx
pop edx
pop ebx
pop esi
pop edi
pop ebp
ret
; bottom of agcapen
; int cbwindlnc(hw,kpc,keyr,lp)
; 1012 kpc 1016 keyr 1020 lp
; 1000 ebpsave 1004 retad 1008 hw
; 988 ebx 992 esi 996 edi
; 976 eaxrez 980 ecx 984 edx
; 964 2 968 1 972 0
; 952 5 956 4 960 3
; 940 8 944 7 948 cst160
; 928 11 932 10 936 9
; 916 cst26A 920 selcase 924 12
; 904 17 908 16 912 cst255
; 892 20 896 ramadr 900 rdwrdw513
; 880 23 884 codeadr 888 21
cbwindlnc: push ebp
mov ebp,esp
sub ebp,1000
push edi
push esi
push ebx
push edx
push ecx
xor eax,eax
push eax
xor edi,edi
xor esi,esi
add esi,1024
mov ecx,esi
sub ecx,1000
sub esi,1023
cbwindlpu: push edi
add edi,esi
sub ecx,esi
jnz cbwindlpu
xor ecx,ecx
add ecx,1255
sub ecx,1000
mov [ebp+912],ecx
xor ecx,ecx
add ecx,2025
sub ecx,512
sub ecx,1000
mov [ebp+900],ecx
xor ecx,ecx
add ecx,2160
sub ecx,2000
mov [ebp+948],ecx
xor ecx,ecx
push ecx
call getreala
add esp,[ebp+956]
mov [ebp+884],eax
mov esi,[ebp+884]
lea edx,[esi+lastcode]
add edx,[ebp+968]
mov [ebp+896],edx
xor ecx,ecx
add ecx,616
add ecx,616
sub ecx,614
mov [ebp+916],ecx
mov edx,[ebp+1012]
add edx,[ebp+916]
mov [ebp+920],edx
mov ebx,[ebp+896]
mov edi,[ebp+884]
sub ebx,8192
mov ecx,[ebp+920]
cmp ecx,[edi+amcreate]
; early crash
jnz nocreate
xor edx,edx
jmp fmcreate
nocreate: mov ecx,[edi+amkeydown]
cmp ecx,[ebp+920]
jnz nokeydown
xor edx,edx
jmp fmkeydown
nokeydown: mov ecx,[edi+amkeyup]
cmp ecx,[ebp+920]
jnz nokeyup
xor edx,edx
jz fmkeyup
nokeyup: mov ecx,[edi+ampaint]
cmp ecx,[ebp+920]
jnz nopaint
xor edx,edx
jmp fmpaint
nopaint: mov ecx,[edi+amdestroy]
cmp ecx,[ebp+920]
jnz nodestroy
xor edx,edx
jmp fmdestroy
nodestroy: mov ecx,[ebp+1020]
push ecx
mov ecx,[ebp+1016]
push ecx
mov ecx,[ebp+1012]
push ecx
mov ecx,[ebp+1008]
push ecx
mov edi,[ebp+884]
lea edx,[edi+aftcbdwp]
add edi,0800000h
mov ecx,[edi+lpdefwproc]
push edx
push ecx
ret
aftcbdwp: mov ebp,esp
sub ebp,880
mov [ebp+976],eax
jmp quitwindlnc
fmkeyup: mov ecx,[ebp+1016]
and ecx,[ebp+912]
cmp ecx,[ebp+948]
jz isresetkey
mov edx,[ebp+908]
cmp ecx,edx
jz isresetkey
add edx,[ebp+968]
cmp ecx,edx
jnz noresetkey
isresetkey: mov edx,[ebp+972]
mov [ebx+nzshift],edx
noresetkey: jmp quitwindlnc
fmkeydown: mov ecx,[ebp+968]
add ecx,[ebp+912]
mov edi,[ebx+keysdebugger]
push ecx
push edi
call nampy
add esp,[ebp+940]
mov al,[ebp+1016]
mov [ebx+keysdebugger],eax
mov esi,[ebp+1016]
mov ecx,esi
and ecx,[ebp+912]
mov edi,[ebp+968]
cmp ecx,[ebp+948]
jz rsekey
mov edx,[ebp+908]
cmp ecx,edx
jz rsekey
add edx,edi
cmp ecx,edx
jnz usekey
add edi,edi
rsekey: mov [ebx+nzshift],edi
jmp quitwindlnc
usekey: mov edi,[ebx+nzshift]
push edi
push esi
call wdoskey
add esp,[ebp+940]
mov [ebx+dagranewkey],eax
mov ecx,[ebp+896]
push ecx
call ron52640
add esp,[ebp+956]
cbkaftced: mov ecx,[ebx+freddynext]
mov [ebx+dagrajmpnow],ecx
; ** warning duplicate entry dagrajmpnow=freddynext
cmp ecx,11019
jnz keepcbrun
cbpostqk: mov edx,[ebp+972]
mov edi,[ebp+884]
lea esi,[edi+keepcbrun]
add edi,0800000h
mov ecx,[edi+lppqmessage]
push edx
push esi
push ecx
ret
keepcbrun: mov ebp,esp
sub ebp,880
mov ebx,[ebp+896]
sub ebx,8192
lea ecx,[ebx+revl]
push ecx
mov ebx,[ebp+1008]
push ebx
mov edi,[ebp+884]
lea esi,[edi+reepcbrun]
add edi,0800000h
mov ecx,[edi+lpgwrect]
push esi
push ecx
ret
reepcbrun: mov ebp,esp
sub ebp,880
mov ebx,[ebp+896]
sub ebx,8192
lea esi,[ebx+revl]
push esi
call fixrect
add esp,[ebp+956]
cmp eax,[ebp+968]
jns stillruncb
notcbrun: jmp quitwindlnc
stillruncb: mov edx,[ebx+dagrajmpnow]
cmp edx,11019
jz notcbrun
mov ecx,[ebp+900]
push ecx
mov edx,[ebp+972]
push edx
lea ecx,[ebx+revl]
push ecx
mov edx,[ebp+1008]
push edx
mov edi,[ebp+884]
lea edx,[edi+aftredraw]
add edi,0800000h
mov ecx,[edi+lprdwindow]
push edx
push ecx
ret
aftredraw: mov ebp,esp
sub ebp,880
xor ecx,ecx
jz totcbrun
rotcbrun: xor ecx,ecx
jz notcbrun
totcbrun: mov ebx,[ebp+896]
sub ebx,8192
lea esi,[ebx+revl]
sub esi,1000
mov edx,[ebp+1012]
mov ebx,[esi+1008]
mov edi,[esi+1012]
xor ecx,ecx
jz rotcbrun
fmcreate: mov ecx,[ebp+896]
push ecx
call new2608
add esp,[ebp+956]
xor ecx,ecx
add ecx,52642
mov [ebx+dagrajmpnow],ecx
mov [ebx+freddynext],ecx
mov ecx,[ebp+972]
add ecx,1084
mov [ebx+dagranewkey],ecx
xor ecx,ecx
mov [ebx+nzshift],ecx
mov edx,[ebp+896]
push edx
call ron52640
add esp,[ebp+956]
mov edx,[ebp+896]
push edx
call agcapen
add esp,[ebp+956]
xor ecx,ecx
jz cbkc
cbkc: jmp cbkaftced
fmpaint: mov esi,[ebp+1008]
mov edx,[ebp+896]
push esi
push edx
call texcbpage
add esp,[ebp+940]
jmp notcbrun
fmdestroy: xor ecx,ecx
add ecx,11019
mov [ebx+dagrajmpnow],ecx
jmp cbpostqk
quitwindlnc: xor ecx,ecx
add ecx,1096
sub ecx,1000
add esp,ecx
pop eax
pop ecx
pop edx
pop ebx
pop esi
pop edi
pop ebp
ret
; end of cbwindlnc
rncmain125: push ebp
mov ebp,esp
sub ebp,300
; 0300 ebp 0304 retad
push edi
push esi
push ebx
push edx
push ecx
xor edi,edi
push edi
push edi
push edi
push edi
; 276 272 268 264
xor eax,eax
push eax
call getreala
xor ecx,ecx
add ecx,304
sub ecx,300
add esp,ecx
reforeinit: mov esi,eax
mov [ebp+268],esi
lea ebx,[esi+lastcode]
add ebx,1001
sub ebx,1000
mov [ebp+272],ebx
sub ebx,8192
xor edi,edi
mov [ebx+rquesize],edi
lea edi,[esi+aftargcall]
add esi,00800000h
mov ecx,[esi+wiogetar]
push edi
push ecx
ret
aftargcall: mov esi,[ebp+268]
mov [ebx+hmanyargs],eax
mov edi,eax
lea edi,[esi+aftinitw]
add esi,00800000h
mov ecx,[esi+asminitw]
xor eax,eax
push eax
push edi
push ecx
ret
aftinitw: mov edi,eax
xor ecx,ecx
add ecx,1000
sub ecx,999
xor edx,edx
xor eax,eax
push ecx
push edx
push edx
push edi
call wmwindlnc
xor ecx,ecx
add ecx,316
sub ecx,300
add esp,ecx
xor edi,edi
add edi,1016
sub edi,1000
add esp,edi
pop ecx
pop edx
pop ebx
pop esi
pop edi
pop ebp
ret
; return to system here
; int WINAPI wmwindlnc(bhinstance,-,-,-)
; 1012 prevstance 1016 lpcmdline 1020 ncmdshow
; 1000 ebpsave 1004 retad 1008 bhinstance
; 988 ebx 992 esi 996 edi
; 976 eaxrc 980 ecx 984 edx
; 964 0 968 -1 972 -2
; 952 3 956 2 960 1
; 940 6 944 5 948 4
; 928 9 932 8 936 7
; 916 12 920 11 924 10
; 904 15 908 nzgm 912 13
; 892 18 896 17 900 16
; 880 21 884 20 888 19
; 868 24 872 23 876 22
; 856 27 860 26 864 cst32512
; 844 ramaddr 848 codeaddr 852 28
; 832 33 836 32 840 31
; 820 36 824 &wmwindclass 828 34
; 808 39 812 &wmwindmsg 816 37
; 796 42 800 mhwnd 804 40
; 784 45 788 44 792 43
wmwindlnc: push ebp
mov ebp,esp
sub ebp,1000
push edi
push esi
push ebx
push edx
push ecx
xor edi,edi
add edi,1049
mov ecx,edi
mov edx,edi
sub edx,1048
sub ecx,1000
sub edi,1052
wmwindpu: push edi
add edi,edx
sub ecx,edx
jnz wmwindpu
xor ecx,ecx
push ecx
call getreala
add esp,[ebp+948]
mov esi,eax
lea ebx,[esi+lastcode]
add ebx,[ebp+960]
mov [ebp+844],ebx
mov [ebp+848],esi
sub ebx,8192
lea edi,[ebx+wmwindclass]
mov [ebp+824],edi
sub edi,1000
lea ecx,[ebx+wmwindmsg]
mov [ebp+812],ecx
mov edx,[ebp+952]
mov [edi+1000],edx
mov esi,[ebp+848]
lea ecx,[esi+cbwindlnc]
mov [edi+1004],ecx
mov ecx,[ebp+964]
mov [edi+1008],ecx
mov edx,[ebp+964]
mov [edi+1012],edx
mov ecx,[ebp+1008]
mov [edi+1016],ecx
set864: xor ecx,ecx
add ecx,32512
mov [ebp+864],ecx
xor edx,edx
cmp edx,[ebp+964]
jnz beficon
beficon: xor edx,edx
push ecx
push edx
mov esi,[ebp+848]
lea edx,[esi+afticon]
add esi,0800000h
mov ecx,[esi+lploadicon]
push edx
push ecx
ret
afticon: mov ebp,esp
sub ebp,784
xor ecx,ecx
cmp ecx,[ebp+964]
jnz aftjcon
aftjcon: mov edi,[ebp+824]
sub edi,1000
mov [edi+1020],eax
mov esi,[ebp+848]
mov eax,[ebp+864]
xor ebx,ebx
lea edx,[esi+aftcursor]
add esi,00800000h
mov ecx,[esi+lploadcursor]
push eax
push ebx
push edx
push ecx
ret
aftcursor: mov ebp,esp
sub ebp,784
xor ecx,ecx
cmp ecx,[ebp+964]
jnz aftbursor
aftbursor: mov edi,[ebp+824]
sub edi,1000
mov [edi+1024],eax
mov ecx,[ebp+940]
mov [edi+1028],ecx
xor ebx,ebx
mov [edi+1032],ebx
mov esi,[ebp+848]
lea ecx,[esi+jasonsname]
mov [edi+1036],ecx
mov eax,[ebp+824]
lea edx,[esi+aftrclass]
add esi,00800000h
mov ecx,[esi+lprclass]
push eax
push edx
push ecx
ret
aftrclass: mov ebp,esp
sub ebp,784
xor ecx,ecx
cmp ecx,[ebp+964]
jnz afteclass
afteclass: mov esi,[ebp+848]
lea edi,[esi+prebh]
sub edi,1000
mov ecx,[ebp+964]
mov edx,[ebp+1008]
push ecx
push edx
push ecx
push ecx
mov ecx,[edi+1024]
mov edx,[edi+1020]
add edx,[ebp+836]
add ecx,[ebp+788]
add ecx,[ebp+924]
push ecx
push edx
mov edi,[ebp+824]
sub edi,1000
mov ecx,[ebp+964]
push ecx
mov edx,[ebp+932]
push edx
xor edx,edx
add edx,0CF0000h
push edx
lea ecx,[esi+scotsname]
mov edx,[edi+1036]
push ecx
push edx
mov edx,[ebp+964]
add edx,8768
sub edx,8000
sub edx,768
push edx
; -- call sequence after arguments
lea edx,[esi+aftcreatew]
add esi,0800000h
mov ecx,[esi+lpcwindow]
push edx
push ecx
ret
aftcreatew: mov ebp,esp
sub ebp,784
mov [ebp+800],eax
xor ecx,ecx
jz aftcreateu
jmp aftrclass
aftcreateu: mov esi,[ebp+848]
mov eax,[ebp+1020]
mov ecx,[ebp+800]
lea edx,[esi+aftswind]
add esi,0800000h
mov ebx,[esi+lpswindow]
push eax
push ecx
push edx
push ebx
ret
aftswind: mov ebp,esp
sub ebp,784
mov esi,[ebp+848]
mov eax,[ebp+800]
lea ecx,[esi+aftuwind]
add esi,0800000h
mov edx,[esi+lpuwindow]
push eax
push ecx
push edx
ret
aftuwind: mov ebp,esp
sub ebp,784
whigmlop: mov edi,[ebp+812]
mov esi,[ebp+848]
mov edx,[ebp+964]
push edx
push edx
push edx
push edi
lea edx,[esi+aftgm]
add esi,0800000h
mov ecx,[esi+lpgm]
push edx
push ecx
ret
aftgm: mov ebp,esp
sub ebp,784
mov edi,[ebp+812]
mov esi,[ebp+848]
mov [ebp+908],eax
xor ecx,ecx
cmp ecx,[ebp+908]
jnz keepgm
skipwhigm: xor ecx,ecx
jz quitgm
keepgm: lea ecx,[esi+afttrm]
add esi,0800000h
mov edx,[esi+lptm]
push edi
push ecx
push edx
ret
afttrm: mov ebp,esp
sub ebp,784
mov edi,[ebp+812]
mov esi,[ebp+848]
lea ecx,[esi+aftdm]
add esi,0800000h
mov edx,[esi+lpdm]
push edi
push ecx
push edx
ret
aftdm: mov ebp,esp
sub ebp,784
xor ecx,ecx
jmp whigmlop
quitgm: mov edi,[ebp+812]
sub edi,1000
mov edx,[edi+1008]
mov [ebp+976],edx
xor ecx,ecx
add ecx,1192
sub ecx,1000
add esp,ecx
pop eax
pop ecx
pop edx
pop ebx
pop esi
pop edi
pop ebp
ret
; end of wmwindlnc
; end of winmain program
db "....xxx"
inconstr db "CONIN$"
db 00h
otconstr db "CONOUT$"
db 00h
db ".x"
db "....xxxx....crashx."
dd 0
dd 0,0,0,0,0,0,0,0
; ------------------
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
; ------------------ 8F00
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
; ------------------ 9000
; 9000 list of lists and dllname
; break here --------------------------
; Insert uninitialized data region here
; in destination memory only.
; break here --------------------------
wioat9000 dd 00809060h
dd 00000000h
dd 00000000h
dd 00809220h
dd 00809070h
; -------------- 9014
relatE000 dd 00809080h
dd 00000000h
lpwforward dd 00000000h
lpwiodllname dd 00809340h
lpwioreloc dd 008090C0h
; ------------ 9028
dd 00809100h
dd 00000000h
dd 00000000h
dd 00809540h
dd 00809180h
; ------------ 903c
dd 00000000h
dd 00000000h
dd 00000000h
dd 00000000h
dd 00000000h
dd 00000000h
dd 00000000h
dd 00000000h
dd 00000000h
; 9060
wioat9060 dd 00809200h
dd 00000000h
dd 00000000h
dd 00000000h
lptextout dd 00809200h
dd 00000000h
dd 00000000h
dd 00000000h
; ---------- 9080
liocls06 dd 00809230h
liocrn85 dd 00809240h
dd 00809250h
dd 00809270h
liored03 dd 008092C0h
liosfp19 dd 008092E0h
liowrt04 dd 00809320h
; ----
dd 00000000h
dd 00000000h
dd 00000000h
dd 00000000h
dd 00000000h
dd 00000000h
dd 0, 0, 0
; second relocatable list at 8090C0
wiocls06 dd 00809230h
wiocrn85 dd 00809240h
wiogetar dd 00809250h
asminitw dd 00809270h
wiored03 dd 008092C0h
wiosfp19 dd 008092E0h
wiowrt04 dd 00809320h
; ----
dd 00000000h
dd 00000000h
dd 00000000h
dd 00000000h
dd 00000000h
dd 00000000h
dd 0, 0, 0
; 809100
dd 00809360h
dd 00809380h
dd 008093A0h
dd 008093C0h
dd 008093E0h
dd 00809400h
dd 00809420h
dd 00809440h
dd 00809460h
dd 00809480h
dd 008094A0h
dd 008094C0h
dd 008094E0h
dd 00809500h
dd 00809520h
dd 00000000h
dd 00000000h
dd 00000000h
dd 00000000h
dd 00000000h
dd 00000000h
dd 00000000h
dd 00000000h
dd 00000000h
dd 00000000h
dd 00000000h
dd 00000000h
dd 00000000h
dd 00000000h
dd 00000000h
dd 00000000h
dd 00000000h
; 809180
lpbeginpaint dd 00809360h
lpcwindow dd 00809380h
lpdefwproc dd 008093A0h
lpdm dd 008093C0h
lpendpaint dd 008093E0h
lpgm dd 00809400h
lpgwrect dd 00809420h
lploadcursor dd 00809440h
lploadicon dd 00809460h
lppqmessage dd 00809480h
lprdwindow dd 008094A0h
lprclass dd 008094C0h
lpswindow dd 008094E0h
lptm dd 00809500h
lpuwindow dd 00809520h
dd 00000000h
dd 00000000h
dd 00000000h
dd 00000000h
dd 00000000h
dd 00000000h
dd 00000000h
dd 00000000h
dd 00000000h
dd 00000000h
dd 00000000h
dd 00000000h
dd 00000000h
dd 00000000h
dd 00000000h
dd 00000000h
dd 00000000h
; 809200
db 028h, 00h
db "SetDIBitsToDevice"
db 00h
dd 00000000h
dd 0, 0
; 809220
db "gdi32.dll"
db 00h, 00h, 00h
dd 00000000h
; remove dd 0, 0, 0, 0
; 809230
; relocating names to below this line
wioat9230 db 27h, 00h
db "CloseHandle"
db 00h, 01h, 00h
wioat9240 db 42h, 00h
db "CreateFileA"
db 00h, 00h, 00h
insarg250 db 0edh, 00h
db "GetCommandLineA"
db 00h, 00h, 00h
dd 0, 0, 0
init9270 db 070h, 01h
db "GetModuleHandleA"
db 00h, 00h
dd 0, 0, 0
wioat9290RR db 00h, 00h
db "------------"
db 00h, 00h
wioat92a0 db 00h, 00h
db "------------"
db 00h, 04h
db "xxxx----xxxx----"
wioat92c0 db 05Ch, 02h
db "ReadFile"
db 00h, 05h, 00h, 00h, 00h, 00h
db "----xxxx----xxxx"
wioat92e0 db 0A8h, 02h
db "SetFilePointer"
db 00h, 06h, 00h, 00h
db "xxxx----xxxx"
wioat9300 db 00h, 00h
db "-------------"
db 00h, 07h, 00h, 00h, 00h
db "----xxxx----"
wioat9320 db 01Dh, 03h
db "WriteFile"
db 00h, 08h, 00h, 00h, 00h
db "----------------"
wioat9340 db "kernel32.dll"
db 00h, 00h, 00h, 00h
dd 0, 0, 0, 0
; 809360
db 01h, 00h
db "BeginPaint"
dd 00000000h
dd 0, 0, 0, 0
db 02h, 00h
db "CreateWindowExA"
db 00h, 00h, 00h
dd 0, 0, 0
db 084h, 00h
db "DefWindowProcA"
dd 0, 0, 0, 0
db 092h, 00h
db "DispatchMessageA"
db 00h, 00h
dd 0, 0, 0
db 093h, 00h
db "EndPaint"
db 00h, 00h
dd 00000000h
dd 0, 0, 0, 0
db 022h, 01h
db "GetMessageA"
db 00h, 00h, 00h
dd 0, 0, 0, 0
db 023h, 01h
db "GetWindowRect"
db 00h
dd 0, 0, 0, 0
db 024h, 01h
db "LoadCursorA"
db 00h, 00h, 00h
dd 0, 0, 0, 0
db 094h, 01h
db "LoadIconA"
db 00h
dd 00000000h
dd 0, 0, 0, 0
db 0d0h, 01h
db "PostQuitMessage"
db 00h, 00h, 00h
dd 0, 0, 0
db 0d1h, 01h
db "RedrawWindow"
db 00h, 00h
dd 0, 0, 0, 0
db 0d2h, 01h
db "RegisterClassA"
db 00h, 00h, 00h, 00h
dd 0, 0, 0
db 045h, 02h
db "ShowWindow"
db 00h, 00h, 00h, 00h
dd 0, 0, 0, 0
db 05dh, 02h
db "TranslateMessage"
db 00h, 00h
dd 0, 0, 0
db 069h, 02h
db "UpdateWindow"
db 00h, 00h
dd 0, 0, 0, 0
; 0809540
db "user32.dll"
db 00h, 00h
dd 00000000h
dd 0, 0, 0, 0
; 809560
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
; 0600
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
;------------- 0800
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
; ------------ 0a00
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
; ------------ 0c00
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
; ------------ 0e00
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
dd 0,0,0,0,0,0,0,0
; short
db "xxxxxxxx----------------xxxxxxy"
lastcode db "z"
; end of data section
; bottom of file
; delete all lines below this line
; delete all lines below this line
0 new messages