00000000  EB04              jmp short 0x6



00000002  0000              add [bx+si],al
00000004  0000              add [bx+si],al



00000006  1E                push ds

; free memory (?!)
00000007  B449              mov ah,0x49
00000009  268E062C00        mov es,[es:0x2c]
0000000E  CD21              int 0x21

; get int 0x66 addy into ES:BX into 0x104:0x102
00000010  B86635            mov ax,0x3566
00000013  CD21              int 0x21
00000015  891E0201          mov [0x102],bx
00000019  8CC0              mov ax,es
0000001B  A30401            mov [0x104],ax

; save DS
0000001E  8CD8              mov ax,ds
00000020  2EA31D02          mov [cs:0x21d],ax

; set cs:0x13b as new int 0x66 handler
00000024  BA3B01            mov dx,0x13b
00000027  1E                push ds
00000028  0E                push cs
00000029  1F                pop ds
0000002A  B86625            mov ax,0x2566
0000002D  CD21              int 0x21

; restore DS
0000002F  1F                pop ds

; set AX to 0x250
00000030  E8EC00            call 0x11f

; TSR
00000033  8BD0              mov dx,ax
00000035  B80031            mov ax,0x3100
00000038  CD21              int 0x21

; Bye
0000003A  C3                ret


0000003B  3D3200            cmp ax,0x32
0000003E  7C05              jl 0x45
00000040  2EFF2E0201        jmp far [cs:0x102]
00000045  3D1400            cmp ax,0x14
00000048  7526              jnz 0x70
0000004A  1E                push ds
0000004B  06                push es
0000004C  56                push si
0000004D  B86635            mov ax,0x3566
00000050  CD21              int 0x21
00000052  B449              mov ah,0x49
00000054  CD21              int 0x21
00000056  2EA10401          mov ax,[cs:0x104]
0000005A  8ED8              mov ds,ax
0000005C  2E8B160201        mov dx,[cs:0x102]
00000061  B86625            mov ax,0x2566
00000064  CD21              int 0x21
00000066  BE0B02            mov si,0x20b
00000069  E85100            call 0xbd
0000006C  5E                pop si
0000006D  07                pop es
0000006E  1F                pop ds
0000006F  CB                retf
00000070  9C                pushf
00000071  1E                push ds
00000072  2EFF361D02        push word [cs:0x21d]
00000077  1F                pop ds
00000078  3D0300            cmp ax,0x3
0000007B  7505              jnz 0x82
0000007D  E82004            call 0x4a0
00000080  EB38              jmp short 0xba
00000082  3D0000            cmp ax,0x0
00000085  7505              jnz 0x8c
00000087  E89F00            call 0x129
0000008A  EB2E              jmp short 0xba
0000008C  3D0100            cmp ax,0x1
0000008F  7505              jnz 0x96
00000091  E82F03            call 0x3c3
00000094  EB24              jmp short 0xba
00000096  3D0200            cmp ax,0x2
00000099  750B              jnz 0xa6
0000009B  06                push es
0000009C  52                push dx
0000009D  53                push bx
0000009E  E84E03            call 0x3ef
000000A1  83C406            add sp,byte +0x6
000000A4  EB14              jmp short 0xba
000000A6  3D0400            cmp ax,0x4
000000A9  750F              jnz 0xba
000000AB  52                push dx
000000AC  81E1FF00          and cx,0xff
000000B0  51                push cx
000000B1  53                push bx
000000B2  E89D09            call 0xa52
000000B5  83C406            add sp,byte +0x6
000000B8  EB00              jmp short 0xba
000000BA  1F                pop ds
000000BB  9D                popf
000000BC  CB                retf
000000BD  B40E              mov ah,0xe
000000BF  2E8A04            mov al,[cs:si]
000000C2  46                inc si
000000C3  3C00              cmp al,0x0
000000C5  7407              jz 0xce
000000C7  BB0700            mov bx,0x7
000000CA  CD10              int 0x10
000000CC  EBEF              jmp short 0xbd
000000CE  C3                ret
000000CF  50                push ax
000000D0  B8013D            mov ax,0x3d01
000000D3  BEFD01            mov si,0x1fd
000000D6  CD21              int 0x21
000000D8  A30502            mov [0x205],ax
000000DB  8CC8              mov ax,cs
000000DD  66C1E010          shl eax,0x10
000000E1  58                pop ax
000000E2  66A30702          mov [0x207],eax
000000E6  B440              mov ah,0x40
000000E8  8B1E0502          mov bx,[0x205]
000000EC  B90400            mov cx,0x4
000000EF  BA0702            mov dx,0x207
000000F2  CD21              int 0x21
000000F4  B43E              mov ah,0x3e
000000F6  8B1E0502          mov bx,[0x205]
000000FA  CD21              int 0x21
000000FC  C3                ret




0x102	soundrv int 0x66 offset
0x104	soundrv int 0x66 segment
0x21d	data segment placeholder




000000FD  736E              jnc 0x16d
000000FF  642E7663          cs jna 0x166
00000103  7400              jz 0x105
00000105  0000              add [bx+si],al
00000107  0000              add [bx+si],al
00000109  0000              add [bx+si],al
0000010B  53                push bx
0000010C  6F                outsw
0000010D  756E              jnz 0x17d
0000010F  6420756E          and [fs:di+0x6e],dh
00000113  6C                insb
00000114  6F                outsw
00000115  61                popa
00000116  6465640D0A00      fs or ax,0xa
0000011C  00                db 0x0



; do-nothing thing for loader

0000011F  55                push bp
00000120  8BEC              mov bp,sp
00000122  B85002            mov ax,0x250
00000125  EB00              jmp short 0x127
00000127  5D                pop bp
00000128  C3                ret


00000129  C8040000          enter 0x4,0x0
0000012D  56                push si
0000012E  57                push di
0000012F  68BE13            push word 0x13be
00000132  68B413            push word 0x13b4
00000135  E8720A            call 0xbaa
00000138  83C404            add sp,byte +0x4



;;;; 0x66 new handler

; Do something sound
; Input:
;   AX: fd or zero
; Output:
;   AX: 1 = error


0000013B  8946FE            mov [bp-0x2],ax
0000013E  837EFE00          cmp word [bp-0x2],byte +0x0
00000142  7416              jz 0x15a ; go directly analyze

; fd non-zero, so try to read from it

00000144  FF76FE            push word [bp-0x2] ; fd
00000147  6A12              push byte +0x12  ; buffer length

00000149  1E                push ds	     ; buffer segment
0000014A  68B611            push word 0x11b6 ; buffer offset
0000014D  E8AF0A            call 0xbff       ; read()
00000150  83C408            add sp,byte +0x8 ; forget seg,ofs

00000153  FF76FE            push word [bp-0x2] ; fd
00000156  E87B0A            call 0xbd4       ; close()
00000159  59                pop cx           ; fd

; fd zero

; analyze read data


; if buffer[0,1] == 0x0003   return 1
0000015A  833EB61103        cmp word [0x11b6],byte +0x3
0000015F  7506              jnz 0x167 ; go on
00000161  B80100            mov ax,0x1
00000164  E95802            jmp 0x3bf ; die

00000167  A1C211            mov ax,[0x11c2] ; buffer[12,13] (uninitialized?)
0000016A  A3AA13            mov [0x13aa],ax

; if [0x13aa] > 0x8   [0x13aa] = 0x8
0000016D  833EAA1308        cmp word [0x13aa],byte +0x8
00000172  7E06              jng 0x17a
00000174  C706AA130800      mov word [0x13aa],0x8

; do nothing
0000017A  68C113            push word 0x13c1
0000017D  E8F80A            call 0xc78
00000180  59                pop cx

; do nothing
00000181  FF36AA13          push word [0x13aa]
00000185  E82F0B            call 0xcb7
00000188  59                pop cx

; do nothing
00000189  68CC13            push word 0x13cc
0000018C  E8E90A            call 0xc78
0000018F  59                pop cx

; check again the buffer *yawn*
00000190  833EB61103        cmp word [0x11b6],byte +0x3
00000195  7503              jnz 0x19a
00000197  E92502            jmp 0x3bf

; get int 0x66 handler and save it at 14b6:14b4 (seg:ofs)
0000019A  06                push es
0000019B  56                push si
0000019C  B86635            mov ax,0x3566
0000019F  CD21              int 0x21
000001A1  BEB414            mov si,0x14b4
000001A4  891C              mov [si],bx
000001A6  8CC0              mov ax,es
000001A8  894402            mov [si+0x2],ax
000001AB  5E                pop si
000001AC  07                pop es

; if there is no original handler, die
000001AD  66833EB41400      cmp dword [0x14b4],byte +0x0
000001B3  750B              jnz 0x1c0 ; go on
000001B5  68D113            push word 0x13d1
000001B8  E8BD0A            call 0xc78 ; do nothing
000001BB  59                pop cx
000001BC  33C0              xor ax,ax
000001BE  EBA4              jmp short 0x164 ; die

000001C0  680008            push word 0x800
000001C3  1E                push ds
000001C4  FF36D811          push word [0x11d8]
000001C8  0E                push cs
000001C9  E8ED0D            call 0xfb9 ; call int 0x66

000001CC  83C406            add sp,byte +0x6 ; weed out cs,word,ds

000001CF  0BC0              or ax,ax
000001D1  750E              jnz 0x1e1

; do nothing
000001D3  68EE13            push word 0x13ee
000001D6  E89F0A            call 0xc78
000001D9  59                pop cx

000001DA  8306D8110A        add word [0x11d8],byte +0xa
000001DF  EB02              jmp short 0x1e3

000001E1  EB02              jmp short 0x1e5
000001E3  EBDB              jmp short 0x1c0
000001E5  C70698130000      mov word [0x1398],0x0
000001EB  C7069C130000      mov word [0x139c],0x0
000001F1  C7069A130000      mov word [0x139a],0x0
000001F7  C706CE110004      mov word [0x11ce],0x400
000001FD  A1D811            mov ax,[0x11d8]
00000200  8C1ECC11          mov [0x11cc],ds
00000204  A3CA11            mov [0x11ca],ax
00000207  C706D411112B      mov word [0x11d4],0x2b11
0000020D  6A00              push byte +0x0
0000020F  680008            push word 0x800
00000212  1E                push ds
00000213  FF36D811          push word [0x11d8]
00000217  0E                push cs
00000218  E8830D            call 0xf9e
0000021B  83C408            add sp,byte +0x8
0000021E  6A00              push byte +0x0
00000220  0E                push cs
00000221  E8650D            call 0xf89
00000224  59                pop cx
00000225  C70696130000      mov word [0x1396],0x0
0000022B  0E                push cs
0000022C  E8760C            call 0xea5
0000022F  A90002            test ax,0x200
00000232  7420              jz 0x254
00000234  C70698130100      mov word [0x1398],0x1
0000023A  C7069C130004      mov word [0x139c],0x400
00000240  C706CE110008      mov word [0x11ce],0x800
00000246  6A01              push byte +0x1
00000248  0E                push cs
00000249  E83D0D            call 0xf89
0000024C  59                pop cx
0000024D  680914            push word 0x1409
00000250  E8250A            call 0xc78
00000253  59                pop cx
00000254  6A00              push byte +0x0
00000256  0E                push cs
00000257  E8E40C            call 0xf3e
0000025A  59                pop cx
0000025B  0E                push cs
0000025C  E8460C            call 0xea5
0000025F  A98000            test ax,0x80
00000262  7414              jz 0x278
00000264  682214            push word 0x1422
00000267  E80E0A            call 0xc78
0000026A  59                pop cx
0000026B  6A01              push byte +0x1
0000026D  0E                push cs
0000026E  E8CD0C            call 0xf3e
00000271  59                pop cx
00000272  C70696130100      mov word [0x1396],0x1
00000278  0E                push cs
00000279  E8D70C            call 0xf53
0000027C  8916A013          mov [0x13a0],dx
00000280  A39E13            mov [0x139e],ax
00000283  33FF              xor di,di
00000285  EB56              jmp short 0x2dd
00000287  8BDF              mov bx,di
00000289  C1E302            shl bx,0x2
0000028C  66C787B018000000  mov dword [bx+0x18b0],0x0
         -00
00000295  8BDF              mov bx,di
00000297  D1E3              shl bx,1
00000299  33C0              xor ax,ax
0000029B  89874018          mov [bx+0x1840],ax
0000029F  99                cwd
000002A0  8BDF              mov bx,di
000002A2  C1E302            shl bx,0x2
000002A5  89979218          mov [bx+0x1892],dx
000002A9  89879018          mov [bx+0x1890],ax
000002AD  8BDF              mov bx,di
000002AF  D1E3              shl bx,1
000002B1  C787D218E703      mov word [bx+0x18d2],0x3e7
000002B7  8BDF              mov bx,di
000002B9  D1E3              shl bx,1
000002BB  C7878018FFFF      mov word [bx+0x1880],0xffff
000002C1  8BDF              mov bx,di
000002C3  D1E3              shl bx,1
000002C5  B88000            mov ax,0x80
000002C8  89877018          mov [bx+0x1870],ax
000002CC  8BDF              mov bx,di
000002CE  D1E3              shl bx,1
000002D0  89875018          mov [bx+0x1850],ax
000002D4  8BDF              mov bx,di
000002D6  D1E3              shl bx,1
000002D8  89876018          mov [bx+0x1860],ax
000002DC  47                inc di
000002DD  83FF08            cmp di,byte +0x8
000002E0  7CA5              jl 0x287
000002E2  C706D6110000      mov word [0x11d6],0x0
000002E8  684814            push word 0x1448
000002EB  683D14            push word 0x143d
000002EE  E8B908            call 0xbaa
000002F1  83C404            add sp,byte +0x4
000002F4  8946FE            mov [bp-0x2],ax
000002F7  837EFE00          cmp word [bp-0x2],byte +0x0
000002FB  7503              jnz 0x300
000002FD  E9B800            jmp 0x3b8
00000300  FF76FE            push word [bp-0x2]
00000303  6A04              push byte +0x4
00000305  1E                push ds
00000306  68A213            push word 0x13a2
00000309  E8F308            call 0xbff
0000030C  83C408            add sp,byte +0x8
0000030F  66A1A213          mov eax,[0x13a2]
00000313  66BB08000000      mov ebx,0x8
00000319  6699              cdq
0000031B  66F7FB            idiv ebx
0000031E  A3DA11            mov [0x11da],ax
00000321  8946FC            mov [bp-0x4],ax
00000324  33FF              xor di,di
00000326  E98000            jmp 0x3a9
00000329  6A00              push byte +0x0
0000032B  8BC7              mov ax,di
0000032D  C1E003            shl ax,0x3
00000330  660FBFC0          movsx eax,ax
00000334  6650              push eax
00000336  FF76FE            push word [bp-0x2]
00000339  E8A708            call 0xbe3
0000033C  83C408            add sp,byte +0x8
0000033F  FF76FE            push word [bp-0x2]
00000342  6A04              push byte +0x4
00000344  1E                push ds
00000345  68A213            push word 0x13a2
00000348  E8B408            call 0xbff
0000034B  83C408            add sp,byte +0x8
0000034E  FF76FE            push word [bp-0x2]
00000351  6A04              push byte +0x4
00000353  1E                push ds
00000354  68A613            push word 0x13a6
00000357  E8A508            call 0xbff
0000035A  83C408            add sp,byte +0x8
0000035D  8BDF              mov bx,di
0000035F  C1E302            shl bx,0x2
00000362  66A1A213          mov eax,[0x13a2]
00000366  6689874C16        mov [bx+0x164c],eax
0000036B  8BDF              mov bx,di
0000036D  C1E302            shl bx,0x2
00000370  66A1A613          mov eax,[0x13a6]
00000374  668987BC14        mov [bx+0x14bc],eax
00000379  6A00              push byte +0x0
0000037B  66A1A213          mov eax,[0x13a2]
0000037F  6640              inc eax
00000381  6650              push eax
00000383  FF76FE            push word [bp-0x2]
00000386  E85A08            call 0xbe3
00000389  83C408            add sp,byte +0x8
0000038C  FF76FE            push word [bp-0x2]
0000038F  6A01              push byte +0x1
00000391  1E                push ds
00000392  8BC7              mov ax,di
00000394  05DC17            add ax,0x17dc
00000397  50                push ax
00000398  E86408            call 0xbff
0000039B  83C408            add sp,byte +0x8
0000039E  8A85DC17          mov al,[di+0x17dc]
000003A2  04D0              add al,0xd0
000003A4  8885DC17          mov [di+0x17dc],al
000003A8  47                inc di
000003A9  3B7EFC            cmp di,[bp-0x4]
000003AC  7303              jnc 0x3b1
000003AE  E978FF            jmp 0x329
000003B1  FF76FE            push word [bp-0x2]
000003B4  E81D08            call 0xbd4
000003B7  59                pop cx
000003B8  684B14            push word 0x144b
000003BB  E8BA08            call 0xc78
000003BE  59                pop cx

000003BF  5F                pop di
000003C0  5E                pop si
000003C1  C9                leave
000003C2  C3                ret












000003C3  55                push bp
000003C4  8BEC              mov bp,sp
000003C6  833EB61103        cmp word [0x11b6],byte +0x3
000003CB  7420              jz 0x3ed
000003CD  0E                push cs
000003CE  E81A0B            call 0xeeb
000003D1  833E981300        cmp word [0x1398],byte +0x0
000003D6  7407              jz 0x3df
000003D8  6A00              push byte +0x0
000003DA  0E                push cs
000003DB  E8AB0B            call 0xf89
000003DE  59                pop cx
000003DF  833E961300        cmp word [0x1396],byte +0x0
000003E4  7407              jz 0x3ed
000003E6  6A00              push byte +0x0
000003E8  0E                push cs
000003E9  E8520B            call 0xf3e
000003EC  59                pop cx
000003ED  5D                pop bp
000003EE  C3                ret
000003EF  C8040000          enter 0x4,0x0
000003F3  8B4E04            mov cx,[bp+0x4]
000003F6  833EB61103        cmp word [0x11b6],byte +0x3
000003FB  7502              jnz 0x3ff
000003FD  EB33              jmp short 0x432
000003FF  668B4606          mov eax,[bp+0x6]
00000403  668946FC          mov [bp-0x4],eax
00000407  83F920            cmp cx,byte +0x20
0000040A  7C05              jl 0x411
0000040C  B80100            mov ax,0x1
0000040F  EB21              jmp short 0x432
00000411  8BD9              mov bx,cx
00000413  C1E302            shl bx,0x2
00000416  8B4608            mov ax,[bp+0x8]
00000419  8B5606            mov dx,[bp+0x6]
0000041C  8987E011          mov [bx+0x11e0],ax
00000420  8997DE11          mov [bx+0x11de],dx
00000424  3B0EDC11          cmp cx,[0x11dc]
00000428  7E04              jng 0x42e
0000042A  890EDC11          mov [0x11dc],cx
0000042E  33C0              xor ax,ax
00000430  EBDD              jmp short 0x40f
00000432  C9                leave
00000433  C3                ret
00000434  55                push bp
00000435  8BEC              mov bp,sp
00000437  833E981300        cmp word [0x1398],byte +0x0
0000043C  750D              jnz 0x44b
0000043E  FF7606            push word [bp+0x6]
00000441  FF7604            push word [bp+0x4]
00000444  0E                push cs
00000445  E8CE0A            call 0xf16
00000448  83C404            add sp,byte +0x4
0000044B  5D                pop bp
0000044C  C3                ret
0000044D  55                push bp
0000044E  8BEC              mov bp,sp
00000450  56                push si
00000451  57                push di
00000452  833E981300        cmp word [0x1398],byte +0x0
00000457  7439              jz 0x492
00000459  BE0200            mov si,0x2
0000045C  0E                push cs
0000045D  E8380B            call 0xf98
00000460  8BF8              mov di,ax
00000462  833E9C1300        cmp word [0x139c],byte +0x0
00000467  7411              jz 0x47a
00000469  3B3E9C13          cmp di,[0x139c]
0000046D  7D0B              jnl 0x47a
0000046F  BE0100            mov si,0x1
00000472  C7069C130000      mov word [0x139c],0x0
00000478  EB16              jmp short 0x490
0000047A  833E9C1300        cmp word [0x139c],byte +0x0
0000047F  750F              jnz 0x490
00000481  81FF0004          cmp di,0x400
00000485  7C09              jl 0x490
00000487  BE0100            mov si,0x1
0000048A  C7069C130004      mov word [0x139c],0x400
00000490  EB06              jmp short 0x498
00000492  0E                push cs
00000493  E8930A            call 0xf29
00000496  8BF0              mov si,ax
00000498  8BC6              mov ax,si
0000049A  EB00              jmp short 0x49c
0000049C  5F                pop di
0000049D  5E                pop si
0000049E  5D                pop bp
0000049F  C3                ret
000004A0  C8040000          enter 0x4,0x0
000004A4  833ED61100        cmp word [0x11d6],byte +0x0
000004A9  7503              jnz 0x4ae
000004AB  E98F00            jmp 0x53d
000004AE  833EB61103        cmp word [0x11b6],byte +0x3
000004B3  7503              jnz 0x4b8
000004B5  E98500            jmp 0x53d
000004B8  833E981300        cmp word [0x1398],byte +0x0
000004BD  754C              jnz 0x50b
000004BF  C41E9E13          les bx,[0x139e]
000004C3  26833F00          cmp word [es:bx],byte +0x0
000004C7  7402              jz 0x4cb
000004C9  EB72              jmp short 0x53d
000004CB  0E                push cs
000004CC  E87E0A            call 0xf4d
000004CF  8956FE            mov [bp-0x2],dx
000004D2  8946FC            mov [bp-0x4],ax
000004D5  C45EFC            les bx,[bp-0x4]
000004D8  26833F00          cmp word [es:bx],byte +0x0
000004DC  752B              jnz 0x509
000004DE  81369A130004      xor word [0x139a],0x400
000004E4  E85800            call 0x53f
000004E7  A1D811            mov ax,[0x11d8]
000004EA  8C1ECC11          mov [0x11cc],ds
000004EE  A3CA11            mov [0x11ca],ax
000004F1  A19A13            mov ax,[0x139a]
000004F4  0106CA11          add [0x11ca],ax
000004F8  C706CE110004      mov word [0x11ce],0x400
000004FE  1E                push ds
000004FF  68CA11            push word 0x11ca
00000502  0E                push cs
00000503  E8100A            call 0xf16
00000506  83C404            add sp,byte +0x4
00000509  EB32              jmp short 0x53d
0000050B  E83FFF            call 0x44d
0000050E  3D0100            cmp ax,0x1
00000511  752A              jnz 0x53d
00000513  E82900            call 0x53f
00000516  A1D811            mov ax,[0x11d8]
00000519  8C1ECC11          mov [0x11cc],ds
0000051D  A3CA11            mov [0x11ca],ax
00000520  A19A13            mov ax,[0x139a]
00000523  0106CA11          add [0x11ca],ax
00000527  C706CE110004      mov word [0x11ce],0x400
0000052D  1E                push ds
0000052E  68CA11            push word 0x11ca
00000531  E800FF            call 0x434
00000534  83C404            add sp,byte +0x4
00000537  81369A130004      xor word [0x139a],0x400
0000053D  C9                leave
0000053E  C3                ret
0000053F  C80C0000          enter 0xc,0x0
00000543  56                push si
00000544  57                push di
00000545  A1D811            mov ax,[0x11d8]
00000548  8946FA            mov [bp-0x6],ax
0000054B  A19A13            mov ax,[0x139a]
0000054E  0146FA            add [bp-0x6],ax
00000551  680004            push word 0x400
00000554  6A00              push byte +0x0
00000556  1E                push ds
00000557  FF76FA            push word [bp-0x6]
0000055A  E86708            call 0xdc4
0000055D  83C408            add sp,byte +0x8
00000560  833E961300        cmp word [0x1396],byte +0x0
00000565  7403              jz 0x56a
00000567  E9E000            jmp 0x64a
0000056A  33F6              xor si,si
0000056C  E9CF00            jmp 0x63e
0000056F  8BDE              mov bx,si
00000571  D1E3              shl bx,1
00000573  8B877018          mov ax,[bx+0x1870]
00000577  8946F8            mov [bp-0x8],ax
0000057A  8BDE              mov bx,si
0000057C  C1E302            shl bx,0x2
0000057F  8B879218          mov ax,[bx+0x1892]
00000583  8B979018          mov dx,[bx+0x1890]
00000587  8946FE            mov [bp-0x2],ax
0000058A  8956FC            mov [bp-0x4],dx
0000058D  8BDE              mov bx,si
0000058F  C1E302            shl bx,0x2
00000592  6683BFB01800      cmp dword [bx+0x18b0],byte +0x0
00000598  7503              jnz 0x59d
0000059A  E9A000            jmp 0x63d
0000059D  8BDE              mov bx,si
0000059F  C1E302            shl bx,0x2
000005A2  6681BFB018000400  cmp dword [bx+0x18b0],0x400
         -00
000005AB  7C52              jl 0x5ff
000005AD  8BDE              mov bx,si
000005AF  C1E302            shl bx,0x2
000005B2  6681AFB018000400  sub dword [bx+0x18b0],0x400
         -00
000005BB  FF76F8            push word [bp-0x8]
000005BE  680004            push word 0x400
000005C1  FF76FE            push word [bp-0x2]
000005C4  FF76FC            push word [bp-0x4]
000005C7  1E                push ds
000005C8  FF76FA            push word [bp-0x6]
000005CB  E84B07            call 0xd19
000005CE  83C40C            add sp,byte +0xc
000005D1  8BDE              mov bx,si
000005D3  C1E302            shl bx,0x2
000005D6  818790180004      add word [bx+0x1890],0x400
000005DC  8BDE              mov bx,si
000005DE  C1E302            shl bx,0x2
000005E1  6683BFB01800      cmp dword [bx+0x18b0],byte +0x0
000005E7  7514              jnz 0x5fd
000005E9  8BDE              mov bx,si
000005EB  D1E3              shl bx,1
000005ED  C7878018FFFF      mov word [bx+0x1880],0xffff
000005F3  8BDE              mov bx,si
000005F5  D1E3              shl bx,1
000005F7  C787D218E703      mov word [bx+0x18d2],0x3e7
000005FD  EB3E              jmp short 0x63d
000005FF  FF76F8            push word [bp-0x8]
00000602  8BDE              mov bx,si
00000604  C1E302            shl bx,0x2
00000607  FFB7B018          push word [bx+0x18b0]
0000060B  FF76FE            push word [bp-0x2]
0000060E  FF76FC            push word [bp-0x4]
00000611  1E                push ds
00000612  FF76FA            push word [bp-0x6]
00000615  E80107            call 0xd19
00000618  83C40C            add sp,byte +0xc
0000061B  8BDE              mov bx,si
0000061D  C1E302            shl bx,0x2
00000620  66C787B018000000  mov dword [bx+0x18b0],0x0
         -00
00000629  8BDE              mov bx,si
0000062B  D1E3              shl bx,1
0000062D  C7878018FFFF      mov word [bx+0x1880],0xffff
00000633  8BDE              mov bx,si
00000635  D1E3              shl bx,1
00000637  C787D218E703      mov word [bx+0x18d2],0x3e7
0000063D  46                inc si
0000063E  3B36AA13          cmp si,[0x13aa]
00000642  7D03              jnl 0x647
00000644  E928FF            jmp 0x56f
00000647  E95A01            jmp 0x7a4
0000064A  33F6              xor si,si
0000064C  E94C01            jmp 0x79b
0000064F  8BDE              mov bx,si
00000651  D1E3              shl bx,1
00000653  8B876018          mov ax,[bx+0x1860]
00000657  8946F6            mov [bp-0xa],ax
0000065A  8BDE              mov bx,si
0000065C  D1E3              shl bx,1
0000065E  8B875018          mov ax,[bx+0x1850]
00000662  8946F4            mov [bp-0xc],ax
00000665  8BDE              mov bx,si
00000667  D1E3              shl bx,1
00000669  83BF401800        cmp word [bx+0x1840],byte +0x0
0000066E  740B              jz 0x67b
00000670  8BDE              mov bx,si
00000672  D1E3              shl bx,1
00000674  8B877018          mov ax,[bx+0x1870]
00000678  8946F8            mov [bp-0x8],ax
0000067B  8BDE              mov bx,si
0000067D  C1E302            shl bx,0x2
00000680  8B879218          mov ax,[bx+0x1892]
00000684  8B979018          mov dx,[bx+0x1890]
00000688  8946FE            mov [bp-0x2],ax
0000068B  8956FC            mov [bp-0x4],dx
0000068E  8BDE              mov bx,si
00000690  C1E302            shl bx,0x2
00000693  6683BFB01800      cmp dword [bx+0x18b0],byte +0x0
00000699  7503              jnz 0x69e
0000069B  E9FC00            jmp 0x79a
0000069E  8BDE              mov bx,si
000006A0  C1E302            shl bx,0x2
000006A3  6681BFB018000200  cmp dword [bx+0x18b0],0x200
         -00
000006AC  7C78              jl 0x726
000006AE  8BDE              mov bx,si
000006B0  C1E302            shl bx,0x2
000006B3  6681AFB018000200  sub dword [bx+0x18b0],0x200
         -00
000006BC  8BDE              mov bx,si
000006BE  D1E3              shl bx,1
000006C0  83BF401800        cmp word [bx+0x1840],byte +0x0
000006C5  7418              jz 0x6df
000006C7  FF76F8            push word [bp-0x8]
000006CA  680002            push word 0x200
000006CD  FF76FE            push word [bp-0x2]
000006D0  FF76FC            push word [bp-0x4]
000006D3  1E                push ds
000006D4  FF76FA            push word [bp-0x6]
000006D7  E8B106            call 0xd8b
000006DA  83C40C            add sp,byte +0xc
000006DD  EB19              jmp short 0x6f8
000006DF  FF76F4            push word [bp-0xc]
000006E2  FF76F6            push word [bp-0xa]
000006E5  680002            push word 0x200
000006E8  FF76FE            push word [bp-0x2]
000006EB  FF76FC            push word [bp-0x4]
000006EE  1E                push ds
000006EF  FF76FA            push word [bp-0x6]
000006F2  E85206            call 0xd47
000006F5  83C40E            add sp,byte +0xe
000006F8  8BDE              mov bx,si
000006FA  C1E302            shl bx,0x2
000006FD  818790180002      add word [bx+0x1890],0x200
00000703  8BDE              mov bx,si
00000705  C1E302            shl bx,0x2
00000708  6683BFB01800      cmp dword [bx+0x18b0],byte +0x0
0000070E  7514              jnz 0x724
00000710  8BDE              mov bx,si
00000712  D1E3              shl bx,1
00000714  C7878018FFFF      mov word [bx+0x1880],0xffff
0000071A  8BDE              mov bx,si
0000071C  D1E3              shl bx,1
0000071E  C787D218E703      mov word [bx+0x18d2],0x3e7
00000724  EB74              jmp short 0x79a
00000726  8BDE              mov bx,si
00000728  D1E3              shl bx,1
0000072A  83BF401800        cmp word [bx+0x1840],byte +0x0
0000072F  7423              jz 0x754
00000731  FF76F8            push word [bp-0x8]
00000734  8BDE              mov bx,si
00000736  C1E302            shl bx,0x2
00000739  668B87B018        mov eax,[bx+0x18b0]
0000073E  66D1F8            sar eax,1
00000741  50                push ax
00000742  FF76FE            push word [bp-0x2]
00000745  FF76FC            push word [bp-0x4]
00000748  1E                push ds
00000749  FF76FA            push word [bp-0x6]
0000074C  E83C06            call 0xd8b
0000074F  83C40C            add sp,byte +0xc
00000752  EB24              jmp short 0x778
00000754  FF76F4            push word [bp-0xc]
00000757  FF76F6            push word [bp-0xa]
0000075A  8BDE              mov bx,si
0000075C  C1E302            shl bx,0x2
0000075F  668B87B018        mov eax,[bx+0x18b0]
00000764  66D1F8            sar eax,1
00000767  50                push ax
00000768  FF76FE            push word [bp-0x2]
0000076B  FF76FC            push word [bp-0x4]
0000076E  1E                push ds
0000076F  FF76FA            push word [bp-0x6]
00000772  E8D205            call 0xd47
00000775  83C40E            add sp,byte +0xe
00000778  8BDE              mov bx,si
0000077A  C1E302            shl bx,0x2
0000077D  66C787B018000000  mov dword [bx+0x18b0],0x0
         -00
00000786  8BDE              mov bx,si
00000788  D1E3              shl bx,1
0000078A  C7878018FFFF      mov word [bx+0x1880],0xffff
00000790  8BDE              mov bx,si
00000792  D1E3              shl bx,1
00000794  C787D218E703      mov word [bx+0x18d2],0x3e7
0000079A  46                inc si
0000079B  3B36AA13          cmp si,[0x13aa]
0000079F  7D03              jnl 0x7a4
000007A1  E9ABFE            jmp 0x64f
000007A4  833EC61100        cmp word [0x11c6],byte +0x0
000007A9  7510              jnz 0x7bb
000007AB  680004            push word 0x400
000007AE  688000            push word 0x80
000007B1  1E                push ds
000007B2  FF76FA            push word [bp-0x6]
000007B5  E84506            call 0xdfd
000007B8  83C408            add sp,byte +0x8
000007BB  5F                pop di
000007BC  5E                pop si
000007BD  C9                leave
000007BE  C3                ret
000007BF  55                push bp
000007C0  8BEC              mov bp,sp
000007C2  33D2              xor dx,dx
000007C4  EB12              jmp short 0x7d8
000007C6  8BDA              mov bx,dx
000007C8  C1E302            shl bx,0x2
000007CB  6683BFB01800      cmp dword [bx+0x18b0],byte +0x0
000007D1  7504              jnz 0x7d7
000007D3  8BC2              mov ax,dx
000007D5  EB26              jmp short 0x7fd
000007D7  42                inc dx
000007D8  3B16AA13          cmp dx,[0x13aa]
000007DC  7CE8              jl 0x7c6
000007DE  33D2              xor dx,dx
000007E0  EB10              jmp short 0x7f2
000007E2  8BDA              mov bx,dx
000007E4  D1E3              shl bx,1
000007E6  8B87D218          mov ax,[bx+0x18d2]
000007EA  3B4604            cmp ax,[bp+0x4]
000007ED  7602              jna 0x7f1
000007EF  EBE2              jmp short 0x7d3
000007F1  42                inc dx
000007F2  3B16AA13          cmp dx,[0x13aa]
000007F6  7CEA              jl 0x7e2
000007F8  B8FFFF            mov ax,0xffff
000007FB  EBD8              jmp short 0x7d5
000007FD  5D                pop bp
000007FE  C3                ret
000007FF  55                push bp
00000800  8BEC              mov bp,sp
00000802  56                push si
00000803  57                push di
00000804  33FF              xor di,di
00000806  BEFFFF            mov si,0xffff
00000809  33D2              xor dx,dx
0000080B  EB32              jmp short 0x83f
0000080D  8BDA              mov bx,dx
0000080F  D1E3              shl bx,1
00000811  39BFDE12          cmp [bx+0x12de],di
00000815  7C27              jl 0x83e
00000817  33C9              xor cx,cx
00000819  EB0D              jmp short 0x828
0000081B  8BD9              mov bx,cx
0000081D  D1E3              shl bx,1
0000081F  39978018          cmp [bx+0x1880],dx
00000823  7502              jnz 0x827
00000825  EB07              jmp short 0x82e
00000827  41                inc cx
00000828  3B0EAA13          cmp cx,[0x13aa]
0000082C  7CED              jl 0x81b
0000082E  3B0EAA13          cmp cx,[0x13aa]
00000832  750A              jnz 0x83e
00000834  8BDA              mov bx,dx
00000836  D1E3              shl bx,1
00000838  8BBFDE12          mov di,[bx+0x12de]
0000083C  8BF2              mov si,dx
0000083E  42                inc dx
0000083F  3B16DC11          cmp dx,[0x11dc]
00000843  7EC8              jng 0x80d
00000845  83FEFF            cmp si,byte -0x1
00000848  740A              jz 0x854
0000084A  8BDE              mov bx,si
0000084C  D1E3              shl bx,1
0000084E  C787DE120000      mov word [bx+0x12de],0x0
00000854  8BC6              mov ax,si
00000856  EB00              jmp short 0x858
00000858  5F                pop di
00000859  5E                pop si
0000085A  5D                pop bp
0000085B  C3                ret
0000085C  55                push bp
0000085D  8BEC              mov bp,sp
0000085F  33D2              xor dx,dx
00000861  EB12              jmp short 0x875
00000863  8BDA              mov bx,dx
00000865  D1E3              shl bx,1
00000867  8B879E12          mov ax,[bx+0x129e]
0000086B  3B4604            cmp ax,[bp+0x4]
0000086E  7504              jnz 0x874
00000870  8BC2              mov ax,dx
00000872  EB0C              jmp short 0x880
00000874  42                inc dx
00000875  3B16DC11          cmp dx,[0x11dc]
00000879  7EE8              jng 0x863
0000087B  B8FFFF            mov ax,0xffff
0000087E  EBF2              jmp short 0x872
00000880  5D                pop bp
00000881  C3                ret
00000882  C80A0000          enter 0xa,0x0
00000886  56                push si
00000887  57                push di
00000888  8B7604            mov si,[bp+0x4]
0000088B  8A84DC17          mov al,[si+0x17dc]
0000088F  B400              mov ah,0x0
00000891  A3D018            mov [0x18d0],ax
00000894  FF36D018          push word [0x18d0]
00000898  E81C04            call 0xcb7
0000089B  59                pop cx
0000089C  FF36D018          push word [0x18d0]
000008A0  E81CFF            call 0x7bf
000008A3  59                pop cx
000008A4  A3B814            mov [0x14b8],ax
000008A7  833EB814FF        cmp word [0x14b8],byte -0x1
000008AC  7506              jnz 0x8b4
000008AE  B8FFFF            mov ax,0xffff
000008B1  E99A01            jmp 0xa4e
000008B4  686014            push word 0x1460
000008B7  E8BE03            call 0xc78
000008BA  59                pop cx
000008BB  8B1EB814          mov bx,[0x14b8]
000008BF  D1E3              shl bx,1
000008C1  A1D018            mov ax,[0x18d0]
000008C4  8987D218          mov [bx+0x18d2],ax
000008C8  56                push si
000008C9  E890FF            call 0x85c
000008CC  59                pop cx
000008CD  A3BA14            mov [0x14ba],ax
000008D0  833EBA14FF        cmp word [0x14ba],byte -0x1
000008D5  7403              jz 0x8da
000008D7  E96101            jmp 0xa3b
000008DA  687514            push word 0x1475
000008DD  E89803            call 0xc78
000008E0  59                pop cx
000008E1  689B14            push word 0x149b
000008E4  689014            push word 0x1490
000008E7  E8C002            call 0xbaa
000008EA  83C404            add sp,byte +0x4
000008ED  8BF8              mov di,ax
000008EF  0BFF              or di,di
000008F1  7503              jnz 0x8f6
000008F3  E94201            jmp 0xa38
000008F6  6A00              push byte +0x0
000008F8  8BDE              mov bx,si
000008FA  C1E302            shl bx,0x2
000008FD  668B874C16        mov eax,[bx+0x164c]
00000902  6683C003          add eax,byte +0x3
00000906  6650              push eax
00000908  57                push di
00000909  E8D702            call 0xbe3
0000090C  83C408            add sp,byte +0x8
0000090F  E8EDFE            call 0x7ff
00000912  A3BA14            mov [0x14ba],ax
00000915  833EBA14FF        cmp word [0x14ba],byte -0x1
0000091A  7507              jnz 0x923
0000091C  57                push di
0000091D  E8B402            call 0xbd4
00000920  59                pop cx
00000921  EB8B              jmp short 0x8ae
00000923  C746FE0000        mov word [bp-0x2],0x0
00000928  EB21              jmp short 0x94b
0000092A  8B5EFE            mov bx,[bp-0x2]
0000092D  D1E3              shl bx,1
0000092F  8B878018          mov ax,[bx+0x1880]
00000933  3B06BA14          cmp ax,[0x14ba]
00000937  750F              jnz 0x948
00000939  8B5EFE            mov bx,[bp-0x2]
0000093C  C1E302            shl bx,0x2
0000093F  66C787B018000000  mov dword [bx+0x18b0],0x0
         -00
00000948  FF46FE            inc word [bp-0x2]
0000094B  8B46FE            mov ax,[bp-0x2]
0000094E  3B06AA13          cmp ax,[0x13aa]
00000952  7CD6              jl 0x92a
00000954  689E14            push word 0x149e
00000957  E81E03            call 0xc78
0000095A  59                pop cx
0000095B  FF36BA14          push word [0x14ba]
0000095F  E85503            call 0xcb7
00000962  59                pop cx
00000963  68B114            push word 0x14b1
00000966  E80F03            call 0xc78
00000969  59                pop cx
0000096A  8B1EBA14          mov bx,[0x14ba]
0000096E  D1E3              shl bx,1
00000970  A1D018            mov ax,[0x18d0]
00000973  89875E12          mov [bx+0x125e],ax
00000977  8BDE              mov bx,si
00000979  C1E302            shl bx,0x2
0000097C  668B87BC14        mov eax,[bx+0x14bc]
00000981  66A3A613          mov [0x13a6],eax
00000985  66813EA613409C00  cmp dword [0x13a6],0x9c40
         -00
0000098E  7E09              jng 0x999
00000990  66C706A613409C00  mov dword [0x13a6],0x9c40
         -00
00000999  8B1EBA14          mov bx,[0x14ba]
0000099D  C1E302            shl bx,0x2
000009A0  668B87DE11        mov eax,[bx+0x11de]
000009A5  668946F6          mov [bp-0xa],eax
000009A9  66A1A613          mov eax,[0x13a6]
000009AD  668946FA          mov [bp-0x6],eax
000009B1  66817EFA204E0000  cmp dword [bp-0x6],0x4e20
000009B9  7631              jna 0x9ec
000009BB  57                push di
000009BC  68204E            push word 0x4e20
000009BF  FF76F8            push word [bp-0x8]
000009C2  FF76F6            push word [bp-0xa]
000009C5  E83702            call 0xbff
000009C8  83C408            add sp,byte +0x8
000009CB  68204E            push word 0x4e20
000009CE  FF76F8            push word [bp-0x8]
000009D1  FF76F6            push word [bp-0xa]
000009D4  E84D04            call 0xe24
000009D7  83C406            add sp,byte +0x6
000009DA  668146F6204E0000  add dword [bp-0xa],0x4e20
000009E2  66816EFA204E0000  sub dword [bp-0x6],0x4e20
000009EA  EB27              jmp short 0xa13
000009EC  57                push di
000009ED  FF76FA            push word [bp-0x6]
000009F0  FF76F8            push word [bp-0x8]
000009F3  FF76F6            push word [bp-0xa]
000009F6  E80602            call 0xbff
000009F9  83C408            add sp,byte +0x8
000009FC  FF76FA            push word [bp-0x6]
000009FF  FF76F8            push word [bp-0x8]
00000A02  FF76F6            push word [bp-0xa]
00000A05  E81C04            call 0xe24
00000A08  83C406            add sp,byte +0x6
00000A0B  66C746FA00000000  mov dword [bp-0x6],0x0
00000A13  66837EFA00        cmp dword [bp-0x6],byte +0x0
00000A18  7597              jnz 0x9b1
00000A1A  57                push di
00000A1B  E8B601            call 0xbd4
00000A1E  59                pop cx
00000A1F  8B1EBA14          mov bx,[0x14ba]
00000A23  D1E3              shl bx,1
00000A25  A1A613            mov ax,[0x13a6]
00000A28  89871E13          mov [bx+0x131e],ax
00000A2C  8B1EBA14          mov bx,[0x14ba]
00000A30  D1E3              shl bx,1
00000A32  89B79E12          mov [bx+0x129e],si
00000A36  EB03              jmp short 0xa3b
00000A38  E973FE            jmp 0x8ae
00000A3B  8B1EB814          mov bx,[0x14b8]
00000A3F  D1E3              shl bx,1
00000A41  A1BA14            mov ax,[0x14ba]
00000A44  89878018          mov [bx+0x1880],ax
00000A48  A1BA14            mov ax,[0x14ba]
00000A4B  E963FE            jmp 0x8b1
00000A4E  5F                pop di
00000A4F  5E                pop si
00000A50  C9                leave
00000A51  C3                ret
00000A52  55                push bp
00000A53  8BEC              mov bp,sp
00000A55  56                push si
00000A56  57                push di
00000A57  8B7608            mov si,[bp+0x8]
00000A5A  833EB61103        cmp word [0x11b6],byte +0x3
00000A5F  7505              jnz 0xa66
00000A61  33C0              xor ax,ax
00000A63  E93F01            jmp 0xba5
00000A66  8B4604            mov ax,[bp+0x4]
00000A69  3B06DA11          cmp ax,[0x11da]
00000A6D  7C02              jl 0xa71
00000A6F  EB0C              jmp short 0xa7d
00000A71  FF7604            push word [bp+0x4]
00000A74  E80BFE            call 0x882
00000A77  59                pop cx
00000A78  3DFFFF            cmp ax,0xffff
00000A7B  7505              jnz 0xa82
00000A7D  B80100            mov ax,0x1
00000A80  EBE1              jmp short 0xa63
00000A82  33FF              xor di,di
00000A84  EB09              jmp short 0xa8f
00000A86  8BDF              mov bx,di
00000A88  D1E3              shl bx,1
00000A8A  FF87DE12          inc word [bx+0x12de]
00000A8E  47                inc di
00000A8F  3B3EDC11          cmp di,[0x11dc]
00000A93  7EF1              jng 0xa86
00000A95  8B5E06            mov bx,[bp+0x6]
00000A98  C1FB04            sar bx,0x4
00000A9B  D1E3              shl bx,1
00000A9D  8B875E13          mov ax,[bx+0x135e]
00000AA1  8B1EB814          mov bx,[0x14b8]
00000AA5  D1E3              shl bx,1
00000AA7  89877018          mov [bx+0x1870],ax
00000AAB  833E961300        cmp word [0x1396],byte +0x0
00000AB0  7503              jnz 0xab5
00000AB2  E99B00            jmp 0xb50
00000AB5  F7C68000          test si,0x80
00000AB9  7411              jz 0xacc
00000ABB  83E67F            and si,byte +0x7f
00000ABE  8B1EB814          mov bx,[0x14b8]
00000AC2  D1E3              shl bx,1
00000AC4  C78740180100      mov word [bx+0x1840],0x1
00000ACA  EB0C              jmp short 0xad8
00000ACC  8B1EB814          mov bx,[0x14b8]
00000AD0  D1E3              shl bx,1
00000AD2  C78740180000      mov word [bx+0x1840],0x0
00000AD8  833EC41100        cmp word [0x11c4],byte +0x0
00000ADD  7407              jz 0xae6
00000ADF  B80800            mov ax,0x8
00000AE2  2BC6              sub ax,si
00000AE4  8BF0              mov si,ax
00000AE6  8BDE              mov bx,si
00000AE8  D1E3              shl bx,1
00000AEA  8B876E13          mov ax,[bx+0x136e]
00000AEE  8B1EB814          mov bx,[0x14b8]
00000AF2  D1E3              shl bx,1
00000AF4  03877018          add ax,[bx+0x1870]
00000AF8  8B1EB814          mov bx,[0x14b8]
00000AFC  D1E3              shl bx,1
00000AFE  89876018          mov [bx+0x1860],ax
00000B02  8BDE              mov bx,si
00000B04  D1E3              shl bx,1
00000B06  8B878213          mov ax,[bx+0x1382]
00000B0A  8B1EB814          mov bx,[0x14b8]
00000B0E  D1E3              shl bx,1
00000B10  03877018          add ax,[bx+0x1870]
00000B14  8B1EB814          mov bx,[0x14b8]
00000B18  D1E3              shl bx,1
00000B1A  89875018          mov [bx+0x1850],ax
00000B1E  8B1EB814          mov bx,[0x14b8]
00000B22  D1E3              shl bx,1
00000B24  83BF601808        cmp word [bx+0x1860],byte +0x8
00000B29  7E0C              jng 0xb37
00000B2B  8B1EB814          mov bx,[0x14b8]
00000B2F  D1E3              shl bx,1
00000B31  C78760180800      mov word [bx+0x1860],0x8
00000B37  8B1EB814          mov bx,[0x14b8]
00000B3B  D1E3              shl bx,1
00000B3D  83BF501808        cmp word [bx+0x1850],byte +0x8
00000B42  7E0C              jng 0xb50
00000B44  8B1EB814          mov bx,[0x14b8]
00000B48  D1E3              shl bx,1
00000B4A  C78750180800      mov word [bx+0x1850],0x8
00000B50  8B1EBA14          mov bx,[0x14ba]
00000B54  C1E302            shl bx,0x2
00000B57  8B87E011          mov ax,[bx+0x11e0]
00000B5B  8B97DE11          mov dx,[bx+0x11de]
00000B5F  83C22C            add dx,byte +0x2c
00000B62  8B1EB814          mov bx,[0x14b8]
00000B66  C1E302            shl bx,0x2
00000B69  89879218          mov [bx+0x1892],ax
00000B6D  89979018          mov [bx+0x1890],dx
00000B71  8B1EBA14          mov bx,[0x14ba]
00000B75  D1E3              shl bx,1
00000B77  660FB7871E13      movzx eax,word [bx+0x131e]
00000B7D  6683C0D4          add eax,byte -0x2c
00000B81  8B1EB814          mov bx,[0x14b8]
00000B85  C1E302            shl bx,0x2
00000B88  668987B018        mov [bx+0x18b0],eax
00000B8D  833ED61100        cmp word [0x11d6],byte +0x0
00000B92  7511              jnz 0xba5
00000B94  1E                push ds
00000B95  68CA11            push word 0x11ca
00000B98  0E                push cs
00000B99  E8B402            call 0xe50
00000B9C  83C404            add sp,byte +0x4
00000B9F  C706D6110100      mov word [0x11d6],0x1
00000BA5  5F                pop di
00000BA6  5E                pop si
00000BA7  5D                pop bp
00000BA8  C3                ret
00000BA9  00C8              add al,cl
00000BAB  0000              add [bx+si],al
00000BAD  005253            add [bp+si+0x53],dl
00000BB0  56                push si
00000BB1  32C0              xor al,al
00000BB3  8B7606            mov si,[bp+0x6]
00000BB6  8A1C              mov bl,[si]
00000BB8  80FB72            cmp bl,0x72
00000BBB  7402              jz 0xbbf
00000BBD  FEC0              inc al
00000BBF  8B7604            mov si,[bp+0x4]
00000BC2  8BD6              mov dx,si
00000BC4  B43D              mov ah,0x3d
00000BC6  CD21              int 0x21
00000BC8  7205              jc 0xbcf
00000BCA  5E                pop si
00000BCB  5B                pop bx
00000BCC  5A                pop dx
00000BCD  C9                leave
00000BCE  C3                ret
00000BCF  B80000            mov ax,0x0
00000BD2  EBF6              jmp short 0xbca



; Close file
; Input:
;   Stack: <fd>

00000BD4  C8000000          enter 0x0,0x0
00000BD8  53                push bx
00000BD9  8B5E04            mov bx,[bp+0x4]
00000BDC  B43E              mov ah,0x3e
00000BDE  CD21              int 0x21
00000BE0  5B                pop bx
00000BE1  C9                leave
00000BE2  C3                ret



00000BE3  C8000000          enter 0x0,0x0
00000BE7  53                push bx
00000BE8  51                push cx
00000BE9  06                push es
00000BEA  8B460A            mov ax,[bp+0xa]
00000BED  B442              mov ah,0x42
00000BEF  8B5E04            mov bx,[bp+0x4]
00000BF2  8B5606            mov dx,[bp+0x6]
00000BF5  8B4E08            mov cx,[bp+0x8]
00000BF8  CD21              int 0x21
00000BFA  07                pop es
00000BFB  59                pop cx
00000BFC  5B                pop bx
00000BFD  C9                leave
00000BFE  C3                ret



; Read *thing* from file
; Input:
;   Stack: <buf_ofs> <buf_seg> <buf_len> <fd>
; Output:
;   AX: number of bytes read

00000BFF  C8000000          enter 0x0,0x0
00000C03  1E                push ds
00000C04  B43F              mov ah,0x3f
00000C06  8B5E0A            mov bx,[bp+0xa]
00000C09  8B5604            mov dx,[bp+0x4]
00000C0C  FF7606            push word [bp+0x6]
00000C0F  1F                pop ds
00000C10  6633C9            xor ecx,ecx
00000C13  8B4E08            mov cx,[bp+0x8]
00000C16  CD21              int 0x21
00000C18  7203              jc 0xc1d
00000C1A  1F                pop ds
00000C1B  C9                leave
00000C1C  C3                ret

; Error handling for the read above
00000C1D  B80000            mov ax,0x0
00000C20  EBF8              jmp short 0xc1a




00000C22  C8000000          enter 0x0,0x0
00000C26  52                push dx
00000C27  33C0              xor ax,ax
00000C29  8B5604            mov dx,[bp+0x4]
00000C2C  EC                in al,dx
00000C2D  5A                pop dx
00000C2E  C9                leave
00000C2F  C3                ret



00000C30  C8000000          enter 0x0,0x0
00000C34  52                push dx
00000C35  8B5604            mov dx,[bp+0x4]
00000C38  8B4606            mov ax,[bp+0x6]
00000C3B  EE                out dx,al
00000C3C  5A                pop dx
00000C3D  C9                leave
00000C3E  C3                ret
00000C3F  C8000000          enter 0x0,0x0
00000C43  56                push si
00000C44  57                push di
00000C45  06                push es
00000C46  1E                push ds
00000C47  07                pop es
00000C48  AC                lodsb
00000C49  3C00              cmp al,0x0
00000C4B  7403              jz 0xc50
00000C4D  AA                stosb
00000C4E  EBF8              jmp short 0xc48
00000C50  07                pop es
00000C51  5F                pop di
00000C52  5E                pop si
00000C53  C9                leave
00000C54  C3                ret
00000C55  C8000000          enter 0x0,0x0
00000C59  56                push si
00000C5A  57                push di
00000C5B  8B7E04            mov di,[bp+0x4]
00000C5E  8B7606            mov si,[bp+0x6]
00000C61  8A05              mov al,[di]
00000C63  3C00              cmp al,0x0
00000C65  7403              jz 0xc6a
00000C67  47                inc di
00000C68  EBF7              jmp short 0xc61
00000C6A  8A04              mov al,[si]
00000C6C  8805              mov [di],al
00000C6E  46                inc si
00000C6F  47                inc di
00000C70  3C00              cmp al,0x0
00000C72  75F6              jnz 0xc6a
00000C74  5F                pop di
00000C75  5E                pop si
00000C76  C9                leave
00000C77  C3                ret


00000C78  C8000000          enter 0x0,0x0
00000C7C  6656              push esi
00000C7E  6650              push eax
00000C80  6653              push ebx
00000C82  665B              pop ebx
00000C84  6658              pop eax
00000C86  665E              pop esi
00000C88  C9                leave
00000C89  C3                ret


00000C8A  8B7604            mov si,[bp+0x4]
00000C8D  8A04              mov al,[si]
00000C8F  3C00              cmp al,0x0
00000C91  740C              jz 0xc9f
00000C93  B40E              mov ah,0xe
00000C95  BB0700            mov bx,0x7
00000C98  56                push si
00000C99  CD10              int 0x10
00000C9B  5E                pop si
00000C9C  46                inc si
00000C9D  EBEE              jmp short 0xc8d
00000C9F  665B              pop ebx
00000CA1  6658              pop eax
00000CA3  665E              pop esi
00000CA5  C9                leave
00000CA6  C3                ret
00000CA7  3031              xor [bx+di],dh
00000CA9  3233              xor dh,[bp+di]
00000CAB  3435              xor al,0x35
00000CAD  3637              ss aaa
00000CAF  3839              cmp [bx+di],bh
00000CB1  41                inc cx
00000CB2  42                inc dx
00000CB3  43                inc bx
00000CB4  44                inc sp
00000CB5  45                inc bp
00000CB6  46                inc si



00000CB7  C8000000          enter 0x0,0x0
00000CBB  6650              push eax
00000CBD  6653              push ebx
00000CBF  6651              push ecx
00000CC1  6652              push edx
00000CC3  6656              push esi
00000CC5  665E              pop esi
00000CC7  665A              pop edx
00000CC9  6659              pop ecx
00000CCB  665B              pop ebx
00000CCD  6658              pop eax
00000CCF  C9                leave
00000CD0  C3                ret



00000CD1  8B4604            mov ax,[bp+0x4]
00000CD4  68FFFF            push word 0xffff
00000CD7  B90400            mov cx,0x4
00000CDA  8BF0              mov si,ax
00000CDC  250F00            and ax,0xf
00000CDF  8BD8              mov bx,ax
00000CE1  2E8A97A70D        mov dl,[cs:bx+0xda7]
00000CE6  81E2FF00          and dx,0xff
00000CEA  52                push dx
00000CEB  8BC6              mov ax,si
00000CED  C1E804            shr ax,0x4
00000CF0  E2E8              loop 0xcda
00000CF2  58                pop ax
00000CF3  3DFFFF            cmp ax,0xffff
00000CF6  7409              jz 0xd01
00000CF8  B40E              mov ah,0xe
00000CFA  BB0700            mov bx,0x7
00000CFD  CD10              int 0x10
00000CFF  EBF1              jmp short 0xcf2
00000D01  665E              pop esi
00000D03  665A              pop edx
00000D05  6659              pop ecx
00000D07  665B              pop ebx
00000D09  6658              pop eax
00000D0B  C9                leave
00000D0C  C3                ret
00000D0D  B80008            mov ax,0x800
00000D10  CD21              int 0x21
00000D12  C3                ret
00000D13  B8000B            mov ax,0xb00
00000D16  CD21              int 0x21
00000D18  C3                ret
00000D19  C8000000          enter 0x0,0x0
00000D1D  06                push es
00000D1E  1E                push ds
00000D1F  56                push si
00000D20  57                push di
00000D21  51                push cx
00000D22  6652              push edx
00000D24  8B4E0E            mov cx,[bp+0xe]
00000D27  C57608            lds si,[bp+0x8]
00000D2A  C47E04            les di,[bp+0x4]
00000D2D  8B560C            mov dx,[bp+0xc]
00000D30  0BD2              or dx,dx
00000D32  740A              jz 0xd3e
00000D34  AC                lodsb
00000D35  D2F8              sar al,cl
00000D37  260005            add [es:di],al
00000D3A  47                inc di
00000D3B  4A                dec dx
00000D3C  75F6              jnz 0xd34
00000D3E  665A              pop edx
00000D40  59                pop cx
00000D41  5F                pop di
00000D42  5E                pop si
00000D43  1F                pop ds
00000D44  07                pop es
00000D45  C9                leave
00000D46  C3                ret
00000D47  C8000000          enter 0x0,0x0
00000D4B  06                push es
00000D4C  1E                push ds
00000D4D  56                push si
00000D4E  57                push di
00000D4F  51                push cx
00000D50  6652              push edx
00000D52  8B4610            mov ax,[bp+0x10]
00000D55  8B4E0E            mov cx,[bp+0xe]
00000D58  8AE8              mov ch,al
00000D5A  6633D2            xor edx,edx
00000D5D  C57608            lds si,[bp+0x8]
00000D60  C47E04            les di,[bp+0x4]
00000D63  8B560C            mov dx,[bp+0xc]
00000D66  0BD2              or dx,dx
00000D68  7418              jz 0xd82
00000D6A  AC                lodsb
00000D6B  8AE0              mov ah,al
00000D6D  D2F8              sar al,cl
00000D6F  260005            add [es:di],al
00000D72  47                inc di
00000D73  8AC4              mov al,ah
00000D75  86CD              xchg cl,ch
00000D77  D2F8              sar al,cl
00000D79  260005            add [es:di],al
00000D7C  47                inc di
00000D7D  86CD              xchg cl,ch
00000D7F  4A                dec dx
00000D80  75E8              jnz 0xd6a
00000D82  665A              pop edx
00000D84  59                pop cx
00000D85  5F                pop di
00000D86  5E                pop si
00000D87  1F                pop ds
00000D88  07                pop es
00000D89  C9                leave
00000D8A  C3                ret
00000D8B  C8000000          enter 0x0,0x0
00000D8F  06                push es
00000D90  1E                push ds
00000D91  56                push si
00000D92  57                push di
00000D93  51                push cx
00000D94  6652              push edx
00000D96  8B560E            mov dx,[bp+0xe]
00000D99  6633C9            xor ecx,ecx
00000D9C  C57608            lds si,[bp+0x8]
00000D9F  C47E04            les di,[bp+0x4]
00000DA2  8B4E0C            mov cx,[bp+0xc]
00000DA5  0BC9              or cx,cx
00000DA7  7412              jz 0xdbb
00000DA9  AC                lodsb
00000DAA  F6EA              imul dl
00000DAC  C1E807            shr ax,0x7
00000DAF  260005            add [es:di],al
00000DB2  47                inc di
00000DB3  F6D0              not al
00000DB5  260005            add [es:di],al
00000DB8  47                inc di
00000DB9  E2EE              loop 0xda9
00000DBB  665A              pop edx
00000DBD  59                pop cx
00000DBE  5F                pop di
00000DBF  5E                pop si
00000DC0  1F                pop ds
00000DC1  07                pop es
00000DC2  C9                leave
00000DC3  C3                ret
00000DC4  C8000000          enter 0x0,0x0
00000DC8  06                push es
00000DC9  57                push di
00000DCA  51                push cx
00000DCB  53                push bx
00000DCC  6633C9            xor ecx,ecx
00000DCF  C47E04            les di,[bp+0x4]
00000DD2  8B4E0A            mov cx,[bp+0xa]
00000DD5  8B4608            mov ax,[bp+0x8]
00000DD8  8BD8              mov bx,ax
00000DDA  C1E308            shl bx,0x8
00000DDD  03C3              add ax,bx
00000DDF  66C1E010          shl eax,0x10
00000DE3  03C3              add ax,bx
00000DE5  C1E902            shr cx,0x2
00000DE8  66AB              stosd
00000DEA  E2FC              loop 0xde8
00000DEC  8B4E0A            mov cx,[bp+0xa]
00000DEF  83E103            and cx,byte +0x3
00000DF2  7403              jz 0xdf7
00000DF4  AA                stosb
00000DF5  E2FD              loop 0xdf4
00000DF7  5B                pop bx
00000DF8  59                pop cx
00000DF9  5F                pop di
00000DFA  07                pop es
00000DFB  C9                leave
00000DFC  C3                ret
00000DFD  C8000000          enter 0x0,0x0
00000E01  06                push es
00000E02  57                push di
00000E03  51                push cx
00000E04  6633C9            xor ecx,ecx
00000E07  C47E04            les di,[bp+0x4]
00000E0A  8B4E0A            mov cx,[bp+0xa]
00000E0D  C1E902            shr cx,0x2
00000E10  66B880808080      mov eax,0x80808080
00000E16  66263105          xor [es:di],eax
00000E1A  83C704            add di,byte +0x4
00000E1D  E2F7              loop 0xe16
00000E1F  59                pop cx
00000E20  5F                pop di
00000E21  07                pop es
00000E22  C9                leave
00000E23  C3                ret
00000E24  C8000000          enter 0x0,0x0
00000E28  1E                push ds
00000E29  06                push es
00000E2A  6651              push ecx
00000E2C  56                push si
00000E2D  57                push di
00000E2E  6633C9            xor ecx,ecx
00000E31  8B4E08            mov cx,[bp+0x8]
00000E34  C57604            lds si,[bp+0x4]
00000E37  C47E04            les di,[bp+0x4]
00000E3A  6683F900          cmp ecx,byte +0x0
00000E3E  7408              jz 0xe48
00000E40  AC                lodsb
00000E41  2C80              sub al,0x80
00000E43  D0F8              sar al,1
00000E45  AA                stosb
00000E46  E2F8              loop 0xe40
00000E48  5F                pop di
00000E49  5E                pop si
00000E4A  6659              pop ecx
00000E4C  07                pop es
00000E4D  1F                pop ds
00000E4E  C9                leave
00000E4F  C3                ret
00000E50  55                push bp
00000E51  8BEC              mov bp,sp
00000E53  1E                push ds
00000E54  56                push si
00000E55  B88806            mov ax,0x688
00000E58  C57606            lds si,[bp+0x6]
00000E5B  CD66              int 0x66
00000E5D  B80100            mov ax,0x1
00000E60  5E                pop si
00000E61  1F                pop ds
00000E62  8BE5              mov sp,bp
00000E64  5D                pop bp
00000E65  CB                retf
00000E66  B88906            mov ax,0x689
00000E69  CD66              int 0x66
00000E6B  CB                retf
00000E6C  55                push bp
00000E6D  8BEC              mov bp,sp
00000E6F  1E                push ds
00000E70  56                push si
00000E71  B88A06            mov ax,0x68a
00000E74  C57606            lds si,[bp+0x6]
00000E77  CD66              int 0x66
00000E79  5E                pop si
00000E7A  1F                pop ds
00000E7B  8BE5              mov sp,bp
00000E7D  5D                pop bp
00000E7E  CB                retf
00000E7F  55                push bp
00000E80  8BEC              mov bp,sp
00000E82  1E                push ds
00000E83  56                push si
00000E84  B88B06            mov ax,0x68b
00000E87  C57606            lds si,[bp+0x6]
00000E8A  CD66              int 0x66
00000E8C  5E                pop si
00000E8D  1F                pop ds
00000E8E  8BE5              mov sp,bp
00000E90  5D                pop bp
00000E91  CB                retf
00000E92  55                push bp
00000E93  8BEC              mov bp,sp
00000E95  1E                push ds
00000E96  56                push si
00000E97  B89406            mov ax,0x694
00000E9A  C57606            lds si,[bp+0x6]
00000E9D  CD66              int 0x66
00000E9F  5E                pop si
00000EA0  1F                pop ds
00000EA1  8BE5              mov sp,bp
00000EA3  5D                pop bp
00000EA4  CB                retf
00000EA5  B88C06            mov ax,0x68c
00000EA8  CD66              int 0x66
00000EAA  CB                retf
00000EAB  55                push bp
00000EAC  8BEC              mov bp,sp
00000EAE  06                push es
00000EAF  1E                push ds
00000EB0  56                push si
00000EB1  57                push di
00000EB2  FC                cld
00000EB3  B88C06            mov ax,0x68c
00000EB6  CD66              int 0x66
00000EB8  C47E06            les di,[bp+0x6]
00000EBB  8EDB              mov ds,bx
00000EBD  8BF1              mov si,cx
00000EBF  B9FFFF            mov cx,0xffff
00000EC2  AC                lodsb
00000EC3  AA                stosb
00000EC4  41                inc cx
00000EC5  0AC0              or al,al
00000EC7  75F9              jnz 0xec2
00000EC9  8BC1              mov ax,cx
00000ECB  5F                pop di
00000ECC  5E                pop si
00000ECD  1F                pop ds
00000ECE  07                pop es
00000ECF  8BE5              mov sp,bp
00000ED1  5D                pop bp
00000ED2  CB                retf
00000ED3  B88D06            mov ax,0x68d
00000ED6  CD66              int 0x66
00000ED8  CB                retf
00000ED9  55                push bp
00000EDA  8BEC              mov bp,sp
00000EDC  8B5E06            mov bx,[bp+0x6]
00000EDF  8B5608            mov dx,[bp+0x8]
00000EE2  B88E06            mov ax,0x68e
00000EE5  CD66              int 0x66
00000EE7  8BE5              mov sp,bp
00000EE9  5D                pop bp
00000EEA  CB                retf
00000EEB  B88F06            mov ax,0x68f
00000EEE  CD66              int 0x66
00000EF0  CB                retf
00000EF1  55                push bp
00000EF2  8BEC              mov bp,sp
00000EF4  B89006            mov ax,0x690
00000EF7  8B5E06            mov bx,[bp+0x6]
00000EFA  8B4E08            mov cx,[bp+0x8]
00000EFD  8B560A            mov dx,[bp+0xa]
00000F00  CD66              int 0x66
00000F02  8BE5              mov sp,bp
00000F04  5D                pop bp
00000F05  CB                retf
00000F06  B89106            mov ax,0x691
00000F09  CD66              int 0x66
00000F0B  CB                retf
00000F0C  B88906            mov ax,0x689
00000F0F  CD66              int 0x66
00000F11  0BC0              or ax,ax
00000F13  75F7              jnz 0xf0c
00000F15  CB                retf
00000F16  55                push bp
00000F17  8BEC              mov bp,sp
00000F19  1E                push ds
00000F1A  56                push si
00000F1B  C57606            lds si,[bp+0x6]
00000F1E  B89506            mov ax,0x695
00000F21  CD66              int 0x66
00000F23  5E                pop si
00000F24  1F                pop ds
00000F25  8BE5              mov sp,bp
00000F27  5D                pop bp
00000F28  CB                retf
00000F29  B89606            mov ax,0x696
00000F2C  CD66              int 0x66
00000F2E  CB                retf
00000F2F  55                push bp
00000F30  8BEC              mov bp,sp
00000F32  8B5606            mov dx,[bp+0x6]
00000F35  B89706            mov ax,0x697
00000F38  CD66              int 0x66
00000F3A  8BE5              mov sp,bp
00000F3C  5D                pop bp
00000F3D  CB                retf
00000F3E  55                push bp
00000F3F  8BEC              mov bp,sp
00000F41  8B5606            mov dx,[bp+0x6]
00000F44  B89806            mov ax,0x698
00000F47  CD66              int 0x66
00000F49  8BE5              mov sp,bp
00000F4B  5D                pop bp
00000F4C  CB                retf
00000F4D  B89906            mov ax,0x699
00000F50  CD66              int 0x66
00000F52  CB                retf
00000F53  B89906            mov ax,0x699
00000F56  CD66              int 0x66
00000F58  8BC3              mov ax,bx
00000F5A  CB                retf
00000F5B  33DB              xor bx,bx
00000F5D  B88906            mov ax,0x689
00000F60  CD66              int 0x66
00000F62  8BC3              mov ax,bx
00000F64  CB                retf
00000F65  B89B06            mov ax,0x69b
00000F68  CD66              int 0x66
00000F6A  CB                retf
00000F6B  55                push bp
00000F6C  8BEC              mov bp,sp
00000F6E  B89306            mov ax,0x693
00000F71  8B5606            mov dx,[bp+0x6]
00000F74  CD66              int 0x66
00000F76  8BE5              mov sp,bp
00000F78  5D                pop bp
00000F79  CB                retf
00000F7A  55                push bp
00000F7B  8BEC              mov bp,sp
00000F7D  8B5606            mov dx,[bp+0x6]
00000F80  B89A06            mov ax,0x69a
00000F83  CD66              int 0x66
00000F85  8BE5              mov sp,bp
00000F87  5D                pop bp
00000F88  CB                retf
00000F89  55                push bp
00000F8A  8BEC              mov bp,sp
00000F8C  8B5606            mov dx,[bp+0x6]
00000F8F  B89C06            mov ax,0x69c
00000F92  CD66              int 0x66
00000F94  8BE5              mov sp,bp
00000F96  5D                pop bp
00000F97  CB                retf
00000F98  B89D06            mov ax,0x69d
00000F9B  CD66              int 0x66
00000F9D  CB                retf
00000F9E  55                push bp
00000F9F  8BEC              mov bp,sp
00000FA1  06                push es
00000FA2  1E                push ds
00000FA3  56                push si
00000FA4  57                push di
00000FA5  FC                cld
00000FA6  C47E06            les di,[bp+0x6]
00000FA9  8B460C            mov ax,[bp+0xc]
00000FAC  8B4E0A            mov cx,[bp+0xa]
00000FAF  F3AA              rep stosb
00000FB1  5F                pop di
00000FB2  5E                pop si
00000FB3  1F                pop ds
00000FB4  07                pop es
00000FB5  8BE5              mov sp,bp
00000FB7  5D                pop bp
00000FB8  CB                retf



; Call int 0x66

00000FB9  55                push bp
00000FBA  8BEC              mov bp,sp
00000FBC  06                push es
00000FBD  C45E06            les bx,[bp+0x6]
00000FC0  8B4E0A            mov cx,[bp+0xa]
00000FC3  B89E06            mov ax,0x69e
00000FC6  CD66              int 0x66
00000FC8  07                pop es
00000FC9  8BE5              mov sp,bp
00000FCB  5D                pop bp
00000FCC  CB                retf



00000FCD  E80100            call 0xfd1
00000FD0  CB                retf
00000FD1  1E                push ds
00000FD2  56                push si
00000FD3  BE9801            mov si,0x198
00000FD6  33C0              xor ax,ax
00000FD8  8ED8              mov ds,ax
00000FDA  C534              lds si,[si]
00000FDC  0BF6              or si,si
00000FDE  7443              jz 0x1023
00000FE0  90                nop
00000FE1  90                nop
00000FE2  90                nop
00000FE3  83EE06            sub si,byte +0x6
00000FE6  813C4D49          cmp word [si],0x494d
00000FEA  751E              jnz 0x100a
00000FEC  90                nop
00000FED  90                nop
00000FEE  90                nop
00000FEF  817C024449        cmp word [si+0x2],0x4944
00000FF4  7514              jnz 0x100a
00000FF6  90                nop
00000FF7  90                nop
00000FF8  90                nop
00000FF9  B80107            mov ax,0x701
00000FFC  CD66              int 0x66
00000FFE  0BC0              or ax,ax
00001000  751B              jnz 0x101d
00001002  90                nop
00001003  90                nop
00001004  90                nop
00001005  741C              jz 0x1023
00001007  90                nop
00001008  90                nop
00001009  90                nop
0000100A  813C4B45          cmp word [si],0x454b
0000100E  7513              jnz 0x1023
00001010  90                nop
00001011  90                nop
00001012  90                nop
00001013  817C02524E        cmp word [si+0x2],0x4e52
00001018  7509              jnz 0x1023
0000101A  90                nop
0000101B  90                nop
0000101C  90                nop
0000101D  B80100            mov ax,0x1
00001020  5E                pop si
00001021  1F                pop ds
00001022  C3                ret
00001023  33C0              xor ax,ax
00001025  EBF9              jmp short 0x1020
00001027  0002              add [bp+si],al
00001029  0000              add [bx+si],al
0000102B  0302              add ax,[bp+si]
0000102D  0000              add [bx+si],al
0000102F  55                push bp
00001030  8BEC              mov bp,sp
00001032  06                push es
00001033  1E                push ds
00001034  56                push si
00001035  57                push di
00001036  FC                cld
00001037  8B4606            mov ax,[bp+0x6]
0000103A  8EC0              mov es,ax
0000103C  2D1000            sub ax,0x10
0000103F  26803E030044      cmp byte [es:0x3],0x44
00001045  754A              jnz 0x1091
00001047  90                nop
00001048  90                nop
00001049  90                nop
0000104A  26803E040049      cmp byte [es:0x4],0x49
00001050  753F              jnz 0x1091
00001052  90                nop
00001053  90                nop
00001054  90                nop
00001055  26803E050047      cmp byte [es:0x5],0x47
0000105B  7534              jnz 0x1091
0000105D  90                nop
0000105E  90                nop
0000105F  90                nop
00001060  26803E060050      cmp byte [es:0x6],0x50
00001066  7529              jnz 0x1091
00001068  90                nop
00001069  90                nop
0000106A  90                nop
0000106B  26803E070041      cmp byte [es:0x7],0x41
00001071  751E              jnz 0x1091
00001073  90                nop
00001074  90                nop
00001075  90                nop
00001076  26803E08004B      cmp byte [es:0x8],0x4b
0000107C  7513              jnz 0x1091
0000107E  90                nop
0000107F  90                nop
00001080  90                nop
00001081  2EA32911          mov [cs:0x1129],ax
00001085  2EFF1E2711        call far [cs:0x1127]
0000108A  0BC0              or ax,ax
0000108C  7407              jz 0x1095
0000108E  90                nop
0000108F  90                nop
00001090  90                nop
00001091  33C0              xor ax,ax
00001093  EB03              jmp short 0x1098
00001095  B80100            mov ax,0x1
00001098  5F                pop di
00001099  5E                pop si
0000109A  1F                pop ds
0000109B  07                pop es
0000109C  8BE5              mov sp,bp
0000109E  5D                pop bp
0000109F  CB                retf
000010A0  55                push bp
000010A1  8BEC              mov bp,sp
000010A3  8B4606            mov ax,[bp+0x6]
000010A6  2D1000            sub ax,0x10
000010A9  2EA32D11          mov [cs:0x112d],ax
000010AD  2EFF1E2B11        call far [cs:0x112b]
000010B2  8BE5              mov sp,bp
000010B4  5D                pop bp
000010B5  CB                retf
000010B6  0300              add ax,[bx+si]
000010B8  2002              and [bp+si],al
000010BA  07                pop es
000010BB  0001              add [bx+di],al
000010BD  0004              add [si],al
000010BF  0000              add [bx+si],al
000010C1  0004              add [si],al
000010C3  0000              add [bx+si],al
000010C5  0000              add [bx+si],al
000010C7  004A00            add [bp+si+0x0],cl
000010CA  0000              add [bx+si],al
000010CC  0000              add [bx+si],al
000010CE  0000              add [bx+si],al
000010D0  0000              add [bx+si],al
000010D2  0000              add [bx+si],al
000010D4  0000              add [bx+si],al
000010D6  0000              add [bx+si],al
000010D8  E218              loop 0x10f2
000010DA  0000              add [bx+si],al
000010DC  0000              add [bx+si],al
000010DE  0000              add [bx+si],al
000010E0  0000              add [bx+si],al
000010E2  0000              add [bx+si],al
000010E4  0000              add [bx+si],al
000010E6  0000              add [bx+si],al
000010E8  0000              add [bx+si],al
000010EA  0000              add [bx+si],al
000010EC  0000              add [bx+si],al
000010EE  0000              add [bx+si],al
000010F0  0000              add [bx+si],al
000010F2  0000              add [bx+si],al
000010F4  0000              add [bx+si],al
000010F6  0000              add [bx+si],al
000010F8  0000              add [bx+si],al
000010FA  0000              add [bx+si],al
000010FC  0000              add [bx+si],al
000010FE  0000              add [bx+si],al
00001100  0000              add [bx+si],al
00001102  0000              add [bx+si],al
00001104  0000              add [bx+si],al
00001106  0000              add [bx+si],al
00001108  0000              add [bx+si],al
0000110A  0000              add [bx+si],al
0000110C  0000              add [bx+si],al
0000110E  0000              add [bx+si],al
00001110  0000              add [bx+si],al
00001112  0000              add [bx+si],al
00001114  0000              add [bx+si],al
00001116  0000              add [bx+si],al
00001118  0000              add [bx+si],al
0000111A  0000              add [bx+si],al
0000111C  0000              add [bx+si],al
0000111E  0000              add [bx+si],al
00001120  0000              add [bx+si],al
00001122  0000              add [bx+si],al
00001124  0000              add [bx+si],al
00001126  0000              add [bx+si],al
00001128  0000              add [bx+si],al
0000112A  0000              add [bx+si],al
0000112C  0000              add [bx+si],al
0000112E  0000              add [bx+si],al
00001130  0000              add [bx+si],al
00001132  0000              add [bx+si],al
00001134  0000              add [bx+si],al
00001136  0000              add [bx+si],al
00001138  0000              add [bx+si],al
0000113A  0000              add [bx+si],al
0000113C  0000              add [bx+si],al
0000113E  0000              add [bx+si],al
00001140  0000              add [bx+si],al
00001142  0000              add [bx+si],al
00001144  0000              add [bx+si],al
00001146  0000              add [bx+si],al
00001148  0000              add [bx+si],al
0000114A  0000              add [bx+si],al
0000114C  0000              add [bx+si],al
0000114E  0000              add [bx+si],al
00001150  0000              add [bx+si],al
00001152  0000              add [bx+si],al
00001154  0000              add [bx+si],al
00001156  0000              add [bx+si],al
00001158  0000              add [bx+si],al
0000115A  0000              add [bx+si],al
0000115C  0000              add [bx+si],al
0000115E  E703              out 0x3,ax
00001160  E703              out 0x3,ax
00001162  E703              out 0x3,ax
00001164  E703              out 0x3,ax
00001166  E703              out 0x3,ax
00001168  E703              out 0x3,ax
0000116A  E703              out 0x3,ax
0000116C  E703              out 0x3,ax
0000116E  E703              out 0x3,ax
00001170  E703              out 0x3,ax
00001172  E703              out 0x3,ax
00001174  E703              out 0x3,ax
00001176  E703              out 0x3,ax
00001178  E703              out 0x3,ax
0000117A  E703              out 0x3,ax
0000117C  E703              out 0x3,ax
0000117E  E703              out 0x3,ax
00001180  E703              out 0x3,ax
00001182  E703              out 0x3,ax
00001184  E703              out 0x3,ax
00001186  E703              out 0x3,ax
00001188  E703              out 0x3,ax
0000118A  E703              out 0x3,ax
0000118C  E703              out 0x3,ax
0000118E  E703              out 0x3,ax
00001190  E703              out 0x3,ax
00001192  E703              out 0x3,ax
00001194  E703              out 0x3,ax
00001196  E703              out 0x3,ax
00001198  E703              out 0x3,ax
0000119A  E703              out 0x3,ax
0000119C  E703              out 0x3,ax
0000119E  FF                db 0xFF
0000119F  FF                db 0xFF
000011A0  FF                db 0xFF
000011A1  FF                db 0xFF
000011A2  FF                db 0xFF
000011A3  FF                db 0xFF
000011A4  FF                db 0xFF
000011A5  FF                db 0xFF
000011A6  FF                db 0xFF
000011A7  FF                db 0xFF
000011A8  FF                db 0xFF
000011A9  FF                db 0xFF
000011AA  FF                db 0xFF
000011AB  FF                db 0xFF
000011AC  FF                db 0xFF
000011AD  FF                db 0xFF
000011AE  FF                db 0xFF
000011AF  FF                db 0xFF
000011B0  FF                db 0xFF
000011B1  FF                db 0xFF
000011B2  FF                db 0xFF
000011B3  FF                db 0xFF
000011B4  FF                db 0xFF
000011B5  FF                db 0xFF






0x11b6	file read buffer










000011B6  FF                db 0xFF
000011B7  FF                db 0xFF
000011B8  FF                db 0xFF
000011B9  FF                db 0xFF
000011BA  FF                db 0xFF
000011BB  FF                db 0xFF
000011BC  FF                db 0xFF
000011BD  FF                db 0xFF
000011BE  FF                db 0xFF
000011BF  FF                db 0xFF
000011C0  FF                db 0xFF
000011C1  FF                db 0xFF
000011C2  FF                db 0xFF
000011C3  FF                db 0xFF
000011C4  FF                db 0xFF
000011C5  FF                db 0xFF
000011C6  FF                db 0xFF
000011C7  FF                db 0xFF
000011C8  FF                db 0xFF
000011C9  FF                db 0xFF
000011CA  FF                db 0xFF
000011CB  FF                db 0xFF
000011CC  FF                db 0xFF
000011CD  FF                db 0xFF
000011CE  FF                db 0xFF
000011CF  FF                db 0xFF
000011D0  FF                db 0xFF
000011D1  FF                db 0xFF
000011D2  FF                db 0xFF
000011D3  FF                db 0xFF
000011D4  FF                db 0xFF
000011D5  FF                db 0xFF
000011D6  FF                db 0xFF
000011D7  FF                db 0xFF
000011D8  FF                db 0xFF

0x11d8	blah

000011D9  FF                db 0xFF
000011DA  FF                db 0xFF
000011DB  FF                db 0xFF
000011DC  FF                db 0xFF
000011DD  FF00              inc word [bx+si]
000011DF  0000              add [bx+si],al
000011E1  0000              add [bx+si],al
000011E3  0000              add [bx+si],al
000011E5  0000              add [bx+si],al
000011E7  0000              add [bx+si],al
000011E9  0000              add [bx+si],al
000011EB  0000              add [bx+si],al
000011ED  0000              add [bx+si],al
000011EF  0000              add [bx+si],al
000011F1  0000              add [bx+si],al
000011F3  0000              add [bx+si],al
000011F5  0000              add [bx+si],al
000011F7  0000              add [bx+si],al
000011F9  0000              add [bx+si],al
000011FB  0000              add [bx+si],al
000011FD  0000              add [bx+si],al
000011FF  0000              add [bx+si],al
00001201  0000              add [bx+si],al
00001203  0000              add [bx+si],al
00001205  0000              add [bx+si],al
00001207  0000              add [bx+si],al
00001209  0000              add [bx+si],al
0000120B  0000              add [bx+si],al
0000120D  0000              add [bx+si],al
0000120F  0000              add [bx+si],al
00001211  0000              add [bx+si],al
00001213  0000              add [bx+si],al
00001215  0000              add [bx+si],al
00001217  0000              add [bx+si],al
00001219  0000              add [bx+si],al
0000121B  0000              add [bx+si],al
0000121D  0000              add [bx+si],al
0000121F  0000              add [bx+si],al
00001221  0000              add [bx+si],al
00001223  0000              add [bx+si],al
00001225  0000              add [bx+si],al
00001227  0000              add [bx+si],al
00001229  0000              add [bx+si],al
0000122B  0000              add [bx+si],al
0000122D  0000              add [bx+si],al
0000122F  0000              add [bx+si],al
00001231  0000              add [bx+si],al
00001233  0000              add [bx+si],al
00001235  0000              add [bx+si],al
00001237  0000              add [bx+si],al
00001239  0000              add [bx+si],al
0000123B  0000              add [bx+si],al
0000123D  0000              add [bx+si],al
0000123F  0000              add [bx+si],al
00001241  0000              add [bx+si],al
00001243  0000              add [bx+si],al
00001245  0000              add [bx+si],al
00001247  0000              add [bx+si],al
00001249  0000              add [bx+si],al
0000124B  0000              add [bx+si],al
0000124D  0000              add [bx+si],al
0000124F  0000              add [bx+si],al
00001251  0000              add [bx+si],al
00001253  0000              add [bx+si],al
00001255  0000              add [bx+si],al
00001257  0000              add [bx+si],al
00001259  0000              add [bx+si],al
0000125B  0000              add [bx+si],al
0000125D  0007              add [bx],al
0000125F  00060005          add [0x500],al
00001263  0004              add [si],al
00001265  0003              add [bp+di],al
00001267  0002              add [bp+si],al
00001269  0001              add [bx+di],al
0000126B  0000              add [bx+si],al
0000126D  0000              add [bx+si],al
0000126F  0000              add [bx+si],al
00001271  0000              add [bx+si],al
00001273  0000              add [bx+si],al
00001275  0000              add [bx+si],al
00001277  0001              add [bx+di],al
00001279  0002              add [bp+si],al
0000127B  0004              add [si],al
0000127D  0008              add [bx+si],cl
0000127F  0000              add [bx+si],al
00001281  0008              add [bx+si],cl
00001283  0004              add [si],al
00001285  0002              add [bp+si],al
00001287  0001              add [bx+di],al
00001289  0000              add [bx+si],al
0000128B  0000              add [bx+si],al
0000128D  0000              add [bx+si],al
0000128F  0000              add [bx+si],al
00001291  0000              add [bx+si],al
00001293  0000              add [bx+si],al
00001295  0000              add [bx+si],al
00001297  0000              add [bx+si],al
00001299  0000              add [bx+si],al
0000129B  0000              add [bx+si],al
0000129D  0000              add [bx+si],al
0000129F  0000              add [bx+si],al
000012A1  0000              add [bx+si],al
000012A3  0000              add [bx+si],al
000012A5  0000              add [bx+si],al
000012A7  0000              add [bx+si],al
000012A9  0004              add [si],al
000012AB  0000              add [bx+si],al
000012AD  00800000          add [bx+si+0x0],al
000012B1  0000              add [bx+si],al
000012B3  00736F            add [bp+di+0x6f],dh
000012B6  756E              jnz 0x1326
000012B8  642E636667        arpl [cs:bp+0x67],sp
000012BD  007262            add [bp+si+0x62],dh
000012C0  004275            add [bp+si+0x75],al
000012C3  6666657273        gs o32 jc 0x133b
000012C8  203D              and [di],bh
000012CA  2000              and [bx+si],al
000012CC  0A0D              or cl,[di]
000012CE  0A0D              or cl,[di]
000012D0  004449            add [si+0x49],al
000012D3  47                inc di
000012D4  50                push ax
000012D5  41                inc cx
000012D6  4B                dec bx
000012D7  204472            and [si+0x72],al
000012DA  6976657220        imul si,[bp+0x65],word 0x2072
000012DF  6E                outsb
000012E0  6F                outsw
000012E1  7420              jz 0x1303
000012E3  7072              jo 0x1357
000012E5  657365            gs jnc 0x134d
000012E8  6E                outsb
000012E9  742E              jz 0x1319
000012EB  0A0D              or cl,[di]
000012ED  00444D            add [si+0x4d],al
000012F0  41                inc cx
000012F1  206E6F            and [bp+0x6f],ch
000012F4  7420              jz 0x1316
000012F6  696E203634        imul bp,[bp+0x20],word 0x3436
000012FB  4B                dec bx
000012FC  20626F            and [bp+si+0x6f],ah
000012FF  756E              jnz 0x136f
00001301  6461              fs popa
00001303  7279              jc 0x137e
00001305  2E0A0D            or cl,[cs:di]
00001308  004155            add [bx+di+0x55],al
0000130B  54                push sp
0000130C  4F                dec di
0000130D  49                dec cx
0000130E  4E                dec si
0000130F  49                dec cx
00001310  54                push sp
00001311  44                inc sp
00001312  4D                dec bp
00001313  41                inc cx
00001314  206973            and [bx+di+0x73],ch
00001317  206163            and [bx+di+0x63],ah
0000131A  7469              jz 0x1385
0000131C  7665              jna 0x1383
0000131E  2E0A0D            or cl,[cs:di]
00001321  005354            add [bp+di+0x54],dl
00001324  45                inc bp
00001325  52                push dx
00001326  45                inc bp
00001327  4F                dec di
00001328  20706C            and [bx+si+0x6c],dh
0000132B  61                popa
0000132C  7962              jns 0x1390
0000132E  61                popa
0000132F  636B20            arpl [bp+di+0x20],bp
00001332  656E              gs outsb
00001334  61                popa
00001335  626C65            bound bp,[si+0x65]
00001338  642E0A0D          or cl,[cs:di]
0000133C  007361            add [bp+di+0x61],dh
0000133F  6D                insw
00001340  706C              jo 0x13ae
00001342  652E636174        arpl [cs:bx+di+0x74],sp
00001347  007262            add [bp+si+0x62],dh
0000134A  00536F            add [bp+di+0x6f],dl
0000134D  756E              jnz 0x13bd
0000134F  6420696E          and [fs:bx+di+0x6e],ch
00001353  697469616C        imul si,[si+0x69],word 0x6c61
00001358  697365642E        imul si,[bp+di+0x65],word 0x2e64
0000135D  0A0D              or cl,[di]
0000135F  00476F            add [bx+0x6f],al
00001362  7420              jz 0x1384
00001364  6C                insb
00001365  6F                outsw
00001366  7765              ja 0x13cd
00001368  7220              jc 0x138a
0000136A  7072              jo 0x13de
0000136C  696F726974        imul bp,[bx+0x72],word 0x7469
00001371  790A              jns 0x137d
00001373  0D004E            or ax,0x4e00
00001376  6F                outsw
00001377  7420              jz 0x1399
00001379  7265              jc 0x13e0
0000137B  7369              jnc 0x13e6
0000137D  64656E            gs outsb
00001380  742E              jz 0x13b0
00001382  204D75            and [di+0x75],cl
00001385  7374              jnc 0x13fb
00001387  206C6F            and [si+0x6f],ch
0000138A  61                popa
0000138B  642E0A0D          or cl,[cs:di]
0000138F  007361            add [bp+di+0x61],dh
00001392  6D                insw
00001393  706C              jo 0x1401
00001395  652E636174        arpl [cs:bx+di+0x74],sp
0000139A  007262            add [bp+si+0x62],dh
0000139D  00466F            add [bp+0x6f],al



0x13aa	buffer[12,13] word placeholder


0x14b4	original int 0x66 handler offset
0x14b6	original int 0x66 handler segment




000013A0  756E              jnz 0x1410
000013A2  64207361          and [fs:bp+di+0x61],dh
000013A6  6D                insw
000013A7  706C              jo 0x1415
000013A9  6520736C          and [gs:bp+di+0x6c],dh
000013AD  6F                outsw
000013AE  7420              jz 0x13d0
000013B0  000A              add [bp+si],cl
000013B2  0D                db 0x0D
000013B3  00                db 0x00
